JP2549256B2 - 浮動小数点プロセッサへデータを転送する方法及び装置 - Google Patents

浮動小数点プロセッサへデータを転送する方法及び装置

Info

Publication number
JP2549256B2
JP2549256B2 JP5276514A JP27651493A JP2549256B2 JP 2549256 B2 JP2549256 B2 JP 2549256B2 JP 5276514 A JP5276514 A JP 5276514A JP 27651493 A JP27651493 A JP 27651493A JP 2549256 B2 JP2549256 B2 JP 2549256B2
Authority
JP
Japan
Prior art keywords
data
floating point
point processor
address
fpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5276514A
Other languages
English (en)
Other versions
JPH07200324A (ja
Inventor
リチャード・エドムンド・フライ
トロイ・ニール・ヒックス
ラリー・エドワード・サッチャー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07200324A publication Critical patent/JPH07200324A/ja
Application granted granted Critical
Publication of JP2549256B2 publication Critical patent/JP2549256B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は浮動小数点ユニット(F
PU)と固定小数点ユニット(FXU)との間のデータ
・ロード動作中の同期プロトコルに係り、更に詳細に説
明すれば、キャッシュ・ミスが生じた際に、順序外 (ou
t of order) のロード動作を許容することにより、プロ
セッサ・システムの性能を向上させることに係る。
【0002】
【従来の技術】FXUとFPUとを結合して、FXUを
浮動小数点データのロード及び記憶動作用の制御ユニッ
トとして動作させることは、当該技術分野では公知であ
る(以下、特に明記した場合を除き、この「浮動小数点
データ」を「データ」と略称し、「浮動小数点命令」を
「命令」と略称する)。この点については、本明細書で
援用する刊行物 "IBM RISC System/6000 Technology",
First Edition, published 1990, pp.24-30 を参照され
たい。例えば、IBM RISCシステム/6000ワ
ークステーションでは、FXUがFPU用のアドレス生
成手段として使用されているために、FXUがデータ・
キャッシュ・ユニット(DCU)のデータをアドレスす
る場合にのみ、このデータがFPUへロードされるよう
になっている。しかしながら、FPUとFXUとは同期
的な態様で動作しているから、キャッシュ・ミスが生じ
た場合には、該当するデータをFPUへロードする前に
複数の機械サイクルが徒過し得る、という問題がある。
このような状況では、FPUは複数の機械サイクルの間
はアイドル状態に留まるから、プロセッサ・システムの
効率が実質的に低下せざるを得ないのである。
【0003】本明細書で援用する米国特許第4,961,
162号は、浮動小数点演算に必要なデータのメモリ・
アドレスを計算するために、固定小数点プロセッサを使
用することを開示する。米国特許第4,763,294号
には、他の従来技術の例として、FPUを中央処理ユニ
ット(CPU)へ結合し、FPUが命令を実行している
間に、CPUで或る幾つかの非浮動小数点演算を並行し
て実行するようにしたシステムを開示する。しかしなが
ら、このFPUには、単一のデータ・ポートが設けられ
ているに過ぎないから、データ・ロード・ミスが生ずる
と、FPUはこのミスを訂正するに必要な機械サイクル
の間はアイドル状態に留まることになる。米国特許第
5,150,470号に開示された命令実行回路は、解読
済みの命令に対応するデータが利用可能になるとき、こ
れらの命令に実行用のタグを付すようにしている。本明
細書で援用する米国特許第5,075,840号は、2台
のプロセッサが実行すべき複数の命令を格納するバッフ
ァを開示する。 IBM Technical Disclosure Bulletin,
Vol. 32, No. 12, May 1990, pp. 132-133 は、固定小
数点ユニットから命令キャッシュ・ユニットへ同期パル
スを送ること及びロード又は書き込み中のワードについ
て変換エラーを予測するための方法を開示する。
【0004】IBM Technical Disclosure Bulletin, Vo
l. 35, No. 1B, June 1992, pp. 398-399 は、或る種の
固定小数点命令に関して固定小数点及び浮動小数点命令
の実行を調整及び制御するためのカウンタを開示する。
このカウンタがゼロより大きい数を有する場合のみ、F
PUは一の浮動小数点命令を完了することができるよう
にされているので、実行された浮動小数点命令が取り消
されることはない。しかしながら、この刊行物には、キ
ャッシュ・ユニットとFPUとの間に複数のデータ・ポ
ートを設けることは全く開示されていない。
【0005】
【発明が解決しようとする課題】前述の内容から明らか
なように、データ・ロード・ミスの存在に拘わりなく、
浮動小数点ユニット(FPU)上で命令の実行を実質的
に連続して行うことを可能にするようなプロセッサ・シ
ステムを提供することが望ましい。
【0006】
【課題を解決するための手段】本発明によれば、FPU
上の命令の実行を連続的に行うことができるように、デ
ータ・キャッシュと浮動小数点ユニット(FPU)との
間に2つのデータ・ポート及びデータ・バスが設けら
れ、またこれに対応する2つのアドレス・バスが設けら
れる。更に、キャッシュ・ミスが生ずる際に順序外のロ
ードが行われるように、アドレスを供給する固定小数点
ユニット(FXU)とFPUとの間の同期が与えられ
る。
【0007】一般的に説明すれば、本発明のFPUに
は、2つのデータ・ポートに加えて、これに対応するデ
ータ・レジスタ、データ・バス及びデータ回転手段が設
けられる。これらの回転手段には、複数の浮動小数点レ
ジスタが接続される。FPUとデータ・キャッシュ・ユ
ニット(DCU)との間でデータを転送することができ
るように、FPUのデータ・ポートは、それぞれ別個の
データ・バスを介してDCU上の対応するデータ・ポー
トへ接続される。FPUへ入力されつつあるデータのア
ドレスをDCUへ供給するように、FXUは、前記デー
タ・バスに対応する2つのアドレス・バスを通してDC
Uと相互接続される。更に、DCUからのデータがFP
Uへ連続的に入力されるように、FXUからFPUへ同
期信号が供給され、従ってFXUとFPUとは互いに通
信関係にある。この同期によれば、いずれか一方のデー
タ・バス上に存在し得るエラー状態(キャッシュ・ミ
ス)とは関係なく、DCUからFPUへデータを転送す
ることができるようになる。もし、一方のデータ・バス
に影響を与えるようなキャッシュ・ミスが生ずるなら、
このデータに対応する命令が保留される。その後、前記
キャッシュ・ミスによって影響されない他方のデータ・
バスを介して、後続のデータがFPUへ供給される。こ
のようにして、順序外の命令の実行がFPUで実現され
るのである。
【0008】同期信号は、FPUへ入力されつつあるデ
ータの状況を通知する信号を含んでいる。例えば、「ロ
ード可」(LD1 RDY)信号は、FPUに対し、入
力データが第1のデータ・ポートに対応するデータ・バ
ス上にあって、FPUへロードする準備が完了している
ことを通知する。それとは逆に、「ロード不可」(LD
NRDY)信号は、浮動小数点ロードがFXUで成
功裏に実行されたが、キャッシュ・ミスのようなエラー
が存在するために、FPUはこのデータをその第1のデ
ータ・ポートでまだ利用できないことを通知する。他の
「データ・レジスタ・ロード」(LD1 DREG)信
号は、FPUに対し、第1のデータ・ポートから対応す
るデータ・レジスタへデータをロードするように通知す
る。またFXUは、FPUに対し、データ・レジスタ中
にあるロード済みのデータを回転して正しいフォーマッ
トへ整列させるように、すなわち最上位(most signifi
cant)のデータ・ワードを最上位のワード位置へシフト
して浮動小数点レジスタに置くように指示する。
【0009】前述の各同期信号をFXUからFPUへ送
るようにすると、FPUへのデータの定常的な流れを保
証することが可能となり、かくてプロセッサ・システム
の効率及び性能を向上させることができる。
【0010】
【実施例】図1は、RISCシステム/6000のよう
なワークステーション用のプロセッサ・チップ・セット
を示す。このチップ・セットは、メモリ7、データ・キ
ャッシュ・ユニット(DCU)5、固定小数点ユニット
(FXU)3及び浮動小数点ユニット(FPU)1を含
む。図1はこれらの機能要素をそれぞれ別個のチップと
して示しているが、必要に応じてこれらの機能要素を単
一のチップ上に搭載しても良い。メモリ7はRAM形式
のものであり、バス53を介してDCU 5と通信す
る。このようにして、メモリ7からDCU 5へデータ
が供給される。このデータは浮動小数点形式のものであ
り、DCU 5からデータ・バス31及び33を介して
FPU 1へ通信される。本発明に従って、浮動小数点
データを転送するための2つのデータ・バス31及び3
3が設けられ、順序外のデータ・ロード及び命令の実行
を行うことができるように、これらのデータ・バスが交
互に制御される。データ・バス31及び33は、対応す
るデータ・ポート32及び34(ポート0及び1)を通
して、FPU 1へデータをそれぞれ供給する。データ
・バス31及び33は、2つの128ビット・バスとし
て動作するように、4つの32ビット・データ・ワード
をそれぞれ通信することができる。データ・レジスタ1
9及び17は、データ・ポート32及び34からデータ
・ワードをそれぞれ受け取るとともに、これらのデータ
・ワードを一時的に格納する。必要に応じて、データ・
レジスタ19及び17からのデータ・ワードが回転手段
13及び15でそれぞれ回転されて、浮動小数点レジス
タ11に置かれる。DCU 5からFPU 1へ単一ワ
ードが移動されている場合、このワードを浮動小数点レ
ジスタ11中の最上位のワード位置へ回転させる必要が
ある。勿論、FPU 1で「ダブルワード・ロード」が
生ずる場合は、後の実行に備えてこのデータを浮動小数
点レジスタ11へ移動させる前に、「ロード・ダブル回
転」を行うことによって2つの単一ワードが最上位の2
つのワード位置に置かれる。データの回転については、
以下で詳述する。
【0011】データが浮動小数点レジスタ11に置かれ
た後、FPU 1及びFXU 3によって浮動小数点命
令が同期的に実行される。これらの命令は、命令キャッ
シュ・ユニット57から命令バス51を介してFPU
1及びFXU 3へ通信される。命令キャッシュ・ユニ
ット57は、これらの命令をメモリ7から受け取る。浮
動小数点演算は、これを必要とする(適用業務プログラ
ム、オペレーテイング・システム又は他のルーチンのよ
うな)プロセスによって使用される。
【0012】FXU 3は、FPU 1へ入力すべきデ
ータ・ワードのアドレス情報を、DCU 5へ供給す
る。このアドレス情報は、本発明の順序外命令機構が動
作することを可能にする。アドレス・バス41及び43
は、アドレス情報をDCU 5へ供給する。アドレス・
バス41及び43は、FXU 3のアドレス・ポート4
2及び44(ポート0及び1)にそれぞれ対応する(な
お、後者のポート0及び1は、FPU 1のポート0及
び1にそれぞれ対応する)。アドレス・ポート42及び
44に対応するアドレス生成手段21及び23は、DC
U 5中に置かれているデータの実際のFPUアドレス
を供給する。アドレス生成手段21又は23のどちらも
このアドレスを生成し得るが、アドレス・バス41又は
43のどちらにこのアドレスが供給されるかということ
に応じて、FPU 1へデータを送るべきデータ・バス
31又は33が決まる。一層具体的に説明すると、アド
レス・バス41とデータ・バス31は互いに関連してい
て、FXU 3からアドレス・バス41を介してDCU
5へアドレスが供給される場合は、データ・バス31
を介してFPU 1のデータ・ポート32へデータが送
られるようになっている。同様に、アドレス・バス43
を介してアドレスが供給される場合には、データ・バス
33を介してFPU 1のデータ・ポート34へデータ
が送られる。従って、FXU 3からの生成済みアドレ
スをアドレス・バス41又は43のどちらが転送するか
ということに応じて、DCU 5中のデータをFPU
1のデータ・ポート32又は34のいずれかへ入力する
ことができる。このように、データ・バス31又は33
を介してデータが転送されるので、FXU 3とFPU
1との間の動作を調整することが必要となる。このた
め、両者間に同期バス55を設けて、FPU 1へ同期
信号を供給しなければならない。同期バス55は、デー
タを受け取るべきデータ・ポートをFPU 1に知らし
めるように、FXU3からFPU 1へ同期信号を転送
する。FXU 3とFPU 1との間の同期について
は、図3を参照して以下で詳述する。
【0013】図2は、本発明に従ってFPU 1へデー
タをロードするために、順番に生じなければならない複
数の事象のシーケンスを示す。最初に、FXU 3中の
アドレス生成手段21又は23がアドレスを計算し、次
いで、これをアドレス・バス41又は43を介してDC
U 5へ加える。このアドレスを転送するアドレス・バ
ス41又は43が決まると、該当データをFPU 1へ
転送するために使用されるデータ・バス31又は33が
決まり、ひいてはこのデータを受け取るべきデータ・ポ
ート32又は34が決まる。次に、このデータはFPU
1へ供給され、そのデータ・レジスタ17又は19へ
ロードされる。次に、このデータの位置合わせが行われ
て、このデータが最上位のワード位置にシフトされる。
最後に、位置合わせ済みのデータが浮動小数点レジスタ
11へ移動される。
【0014】以下では、FXU 3から同期バス55を
介してFPU 1へ通信されるような同期信号を示す図
3を参照して、本発明を一層詳細に説明する。ここで、
データ・バス31及び33並びにそれらに関連するFP
U 1のデータ・ポート32及び34の各々毎に1組の
同期信号が利用されている、という点に注意すべきであ
る。
【0015】図示された最初の同期信号は、「浮動小数
点ロード可」(XOU FL LDx RDY)信号で
ある。本発明の同期信号の全てに設けられた位置「x」
の内容は、FPU 1のデータ・ポート32及び34の
うちどちらがデータを受け取るかということを指示す
る。図1に示すように、データ・ポート32及び34
は、FPU 1上で「ポート0」及び「ポート1」とし
てそれぞれ表記されている。かくて、もしこの「浮動小
数点ロード可」信号がポート1へ入力されつつあるデー
タに対応するのであれば、この信号は実際には(XOU
FL LD1 RDY)のように構成される。この場
合の「1」は、ポート1に対応する。勿論、「1」の代
わりに「0」を持つ同じ信号は、ポート0へ転送中のデ
ータに対応する。
【0016】この「浮動小数点ロード可」信号は、FP
U 1に対し、データ・キャッシュ・ユニット(DC
U)5中のデータがアドレス・バス41又は43のどち
らからアクセスされたかに応じて、このデータが対応す
るデータ・バス31又は33のいずれかに現に置かれて
いることを通知する。このアドレスが与えられると、D
CU 5中のデータがアドレスされ、次いで関連する適
当なデータ・バス31又は33上に置かれる。
【0017】FXU 3からFPU 1へ「浮動小数点
ロード不可」(XOU FL LDx NRDY)信号
が供給されるのは、DCU 5中でキャッシュ・ミスが
検出されたために、FPU 1へロードすべきデータが
まだ該当するデータ・バス上に現れていないような場合
である。この信号は、FPU 1に対し、当該キャッシ
ュ・ミスが依然として存在している間に、次に続く浮動
小数点ロード命令が生ずるような場合には、そのデータ
が他方のデータ・ポートに到着するようになっているこ
とを通知する。この「浮動小数点ロード不可」信号につ
いて注意すべきは、これがFPU 1に対し次のこと、
すなわちデータを受け取ると予測されたデータ・バスが
使用中であって、しかも当該キャッシュ・ミスが存在す
る間に他のデータ・ロードが生じる場合には、次のデー
タが(当該キャッシュ・ミスによって影響されない)他
方のデータ・バスに受け取られるようになっているこ
と、を通知するという点である。通常の場合、FXU
3はかかる命令を実行し、FPU 1はデータをかかる
命令と関連付ける。「浮動小数点ロード不可」信号を受
け取ると、FPU 1は、キャッシュ・ミスに起因して
データが転送されないことを確認する。この場合、FP
U 1は、このキャッシュ・ミスが影響を与えているデ
ータ・バス上のデータに関連するような命令格納バッフ
ァ59に当該命令を保留する。この命令が保留されるの
は、該当する「浮動小数点ロード可」信号が受け取られ
るまでである。その間、FPU 1は、かかる保留済み
の命令及びその関連データをキャッシュ・ミスの解決後
に処理する前に、他方のデータ・バスに受け取られるデ
ータに関連する命令を実行する(順序外の実行及びデー
タ・ロード)。例えば、DCU 5からデータ・バス3
1及び33へデータがロードされている間に、データ・
バス31へロードすべきデータについてDCU 5中で
キャッシュ・ミスが生ずるなら、データ・バス31(ポ
ート0)に該当する「浮動小数点ロード不可」信号は、
FPU 1に対し、このデータに関連する命令を保留す
るように通知する。この場合、当該キャッシュ・ミスが
解決される前に、FPU 1に対する他のデータ・ロー
ドが生ずるなら、そのデータはデータ・バス33(ポー
ト1)に到着することになろう。このように、データ・
バス31上のデータ及び関連する命令がキャッシュ・ミ
スの期間中は保留されるようになっているから、キャッ
シュ・ミスの解決前にFPU 1に対する他のロードが
生ずる場合は、次のデータがデータ・バス33に置かれ
て、その関連する命令が順序外で実行されることにな
る。
【0018】「浮動小数点データ・レジスタ・ロード」
(XOU FL LDx DREG)信号は、FPU
1中に設けられたデータ・レジスタ17及び19へのロ
ーデイングを制御する。この信号は、FPU 1に対
し、データ・ポート32及び34からデータ・レジスタ
19及び17へそれぞれデータを移動するように通知す
る。ポート0及び1に対応して4つの32ビット・デー
タ・レジスタ17a−17d及び19a−19dがそれ
ぞれ設けられていて、その各々はデータ・バス31及び
33の各々から32ビットのデータ・ワードをそれぞれ
受け取るようにされている(図3及び図4参照)。因み
に、データ・バス31及び33の各々は、4つの32ビ
ット・バス0−3をそれぞれ含んでいる(図3及び図4
参照)。各ポートに加えられる4ビットは、当該ポート
に関連する4つのデータ・レジスタを制御する。すなわ
ち、16進数の信号が、それぞれのポートからどのデー
タ・レジスタへデータがロードされるかということを指
示する。例えば、(XOU FL LDx DREG
(0...3)=B’0011’)という信号は、12
8ビット幅のデータ・バス31又は33からデータ・レ
ジスタ2及び3(例えば、17c及び17d)へ対応す
る複数のデータ・ワードをロードさせるように作用す
る。
【0019】前述のように、FPU 1へ供給されるデ
ータは位置合わせされなければならない。「浮動小数点
データ回転」(XOU FL ROT LF)信号は、
データが浮動小数点レジスタ11に置かれるとき、かか
るデータのシフテイングを制御して、最上位のデータ・
ワードが最初の、すなわち最上位のワード位置に置かれ
るようにする。かかるデータを回転させるために使用さ
れる制御信号は、2進数の00、01、10及び11で
あり、これらは回転量0、1、2及び3にそれぞれ対応
する。かくて、このデータ回転信号は、回転量をも指示
する。例えば、(XOU FL ROT LFx
(0...3)=B’01’)という信号は、データ・
ワードを1ワード位置だけ回転させる。これらの同期信
号の実際の機能については、本発明の全体的な動作の説
明と関連付けて以下で詳述する。
【0020】次に、図4を参照して、FXU 3からF
PU 1へ供給されるデータ回転制御信号を説明する。
ここで、DCU 5からデータ・バス31又は33及び
対応するデータ・ポート32又は34を介してFPU
1へ供給されるデータは、同一の態様で回転されること
に注意されたい。従って、図4のデータ・バスには、図
面の内容を簡潔にするため、図1のデータ・バスと同じ
参照番号31及び33が一括して付されている。レジス
タ17a−17d及び19a−19dは、データ・レジ
スタ17及び19を構成するような4つの32ビット・
データ・レジスタである。128ビット幅のデータ・バ
ス31及び33の各々はそれぞれ4つの32ビット・デ
ータ・バス(0−3)を含んでおり、その各々はデータ
・レジスタ17a−17d及び19a−19dの1つに
それぞれ対応する。これらの32ビット・バスの各々
は、DCU 5からの単一データ・ワードをそれぞれ転
送する。かくて、32ビット・バス0−3の各々がデー
タ・ワードをそれぞれ含む場合は、クワッド・ロード動
作が生ずることになる。FPU 1に設けられた回転手
段13及び15は、図1に加えて図4にも図示されてい
る。図4は、単一のロード動作を示す。すなわち、1デ
ータ・ワードがレジスタ17c又は19cから供給され
ている。このデータ・ワードを適当なワード位置に置く
ために、FXU3はFPU 1へデータ回転用の信号を
送ることにより、このデータ・ワードを最上位のデータ
・ワード位置へ回転させる。図示の例の場合、(XOU
FLROT LF(0...1)=B’10’)信号
が、FPU 1へ与えられる。この信号中の2進数10
は、FPU 1に対し、このデータを2ワード位置だけ
回転するように通知する。かくて、レジスタ17c又は
19c中にあるデータは、これが浮動小数点レジスタ1
1へ入力されるとき、2ワード位置だけ回転されて最上
位のワード位置に置かれるのである。
【0021】図5は、前述の動作を、プロセッサ・シス
テム内の機械サイクルと関係付けて示したものである。
サイクル1では、単一のデータ・ワードを浮動小数点レ
ジスタ11にロードするための「浮動小数点シングル・
ロード動作」(LFS OP)が、FXU 3によって
開始される。また、サイクル1の間には、FXU 3が
実効アドレス(E/A)を生成して、このアドレスをD
CU 5のアドレス・バス41又は43(図1参照)に
置く。かくて、サイクル1の間、FXU 3は「浮動小
数点シングル・ロード動作」を開始し、DCU 5中の
データに対するアドレスを生成するとともに、これをD
CU 5中のデータに適用するのである。このアドレス
は該当するデータをアクセスして、これをそのアドレス
・バス(当該アドレスを転送したアドレス・バス)に関
連するデータ・バスに置く。このようにして、このデー
タを、DCU 5からFPU 1のポート32又は34
へ送ることができるのである。前述のように、アドレス
・バス41及び43はデータ・バス31及び33とそれ
ぞれ関連しているから、アドレス・バス41を介してア
ドレスが到着する場合は、これに関連するデータ・バス
31を介してFPU1へデータが送られることになる。
同様に、アドレス・バス43を介してアドレスが到着す
る場合は、データ・バス33を介してデータが送られ
る。
【0022】サイクル2では、FXU 3からFPU
1へ同期信号が転送される(図面を簡潔にするため、各
同期信号は簡略的に示されている)。この例では、キャ
ッシュ・ミスが存在しないものと仮定しているから、
「ロード不可」(LDx NRDY)信号は使用されな
い。FXU 3はFPU 1へ「ロード可」(LDx
DY)信号を送ることにより、FPU 1に対し、デー
タ・バス31又は33上の現データがデータ・レジスタ
19又は17へ移動可能であることを通知する。「デー
タ・レジスタ・ロード」(LDx DREG)信号がF
PU 1へ送られると、DCU 5からデータ・バス3
1又は33に置かれたデータがデータ・レジスタ17又
は19へロードされる。次の「ロード・回転」(LDx
ROT)信号は、データが浮動小数点レジスタ11へ
ロードされる際、最上位のデータ・ワードが第1のワー
ド位置にくるようにこのデータを回転手段13又は15
により位置合わせさせる。勿論、図3に示すように、デ
ータ・ポート32及び34に対応する2組の同期信号を
使用すると、DCU 5からデータ・バス31及び33
を介してFPU 1へデータを並列に移動させることが
できる。かくて、DCU 5からFPU 1へデータが
2機械サイクル以内に移動される。
【0023】次に、図6を参照して、データ・キャッシ
ュ(DC)ミスが生ずる場合の本発明の動作を説明す
る。
【0024】サイクル1において、FXU 3は「浮動
小数点シングル・ロード動作」(LFS OP)を開始
し、実効アドレス(E/A)を生成するとともに、この
アドレスをDCU 5に至るアドレス・バス41又は4
3に置く。次のサイクル2の間には、DCU 5の内部
でDCミスが生ずるので、データ・バス31又は33に
データを置くことはできない。一般に、キャッシュ・ミ
スとは、キャッシュ・ユニット中に要求データが存在し
ないことを意味する。かくて、このDCミスに基づい
て、FXU 3からFPU 1へ「ロード不可」(LD
NRDY)信号を供給することにより、FPU 1
に対し、このポート(1又は0)には保留中のロードが
存在すること、及び他の命令に遭遇するときに当該DC
ミスが依然として存在する場合には、他のポートを調べ
て次のデータを獲得すべきことを通知する。かくて、F
PU 1は、受け取るべき次のデータ・ワードとして、
順序外のロードを取ることになる。
【0025】サイクルnでは、データ・キャッシュ(D
C)ミスが解決されているから、「ロード可」(LDx
RDY)信号がFPU 1へ与えられる。次いで、F
PU1は、このDCミスに関連するデータ・バス31又
は33でデータを待機する。次いで、「データ・レジス
タ・ロード」(LDx DREG)信号がFPU1へ供
給されて、データがFPU 1中のデータ・レジスタ1
7又は19へ移動される。次の「ロード・回転」(LD
ROT)信号は、データ・レジスタ17又は19中
のデータの位置合わせを行わしめる。これが行われた
後、このデータをFPU 1へ移動させて、命令キャッ
シュ・ユニット57から命令バス51を介して受け取ら
れる浮動小数点命令に関連してこのデータが使用される
ようにする。後続のDCミスが存在しないものと仮定す
ると、本発明のプロセッサ・システムは、「ロード
可」、「データ・レジスタ・ロード」及び「ロード・回
転」信号を使用することにより、FPU 1へのローデ
イングを継続する。このようにして、FPU 1は、順
序外のデータ・ロード及び命令の実行を行うことができ
る。もし、DCミスが依然として存在している間に他の
浮動小数点ロード命令に遭遇すると、FPU 1は他の
データ・バス(31又は33)からデータを獲得する。
この場合、アドレス生成手段21又は23は、DCミス
によって影響されない一方のデータ・バス31又は33
に対応するアドレス・バス41又は43上にアドレスを
置いている筈である。かくて、本発明が順序外のロード
実行をどのように行うかということが理解されよう。
【0026】図7は、データ・ポート32及び34(ポ
ート0及び1)の双方が同時に使用されており且つデー
タ・バス31に置くべきデータについてデータ・キャッ
シュ(DC)ミスが生ずる場合の、関連するデータ・バ
ス31及びアドレス・バス41並びにデータ・バス33
及びアドレス・バス43上の一連の動作を示す。サイク
ル1において、FXU 3は、データ・バス31及び3
3からFPU 1へデータをロードするための、2つの
「浮動小数点シングル・ロード動作」(LFS0及びL
FS1)を開始する。またFXU 3は、これらの2組
のデータに対する実効アドレス(E/A)を生成し、こ
れをアドレス・バス41及び43を介してDCU 5へ
加えることにより、DCU 5からのデータがデータ・
バス31及び33を介してFPU 1のデータ・ポート
32及び34の双方へ転送されるようにする。サイクル
2では、FXU 3からFPU 1へ「ロード不可」
(LD NRDY0)信号が送られ、データ・バス31
(ポート0)に置くべきデータについてデータ・キャッ
シュ(DC)ミスのようなエラーが生じたことを指示す
る。この「ロード不可」(LD NRDY0)信号は、
FPU 1に対し、次の「浮動小数点シングル・ロード
動作」(LFS)を開始している間にDCミスが依然と
して存在している場合は、次のデータがデータ・バス3
3からポート1に受け取られることを通知する。またサ
イクル2では、データ・バス33上の第1のデータに対
する「ロード可」(LD RDY1)信号が、「データ
・レジスタ・ロード」(LD1 DREG1)及び「ロ
ード・回転」(LD ROT1)信号とともに、FPU
1へ送られる。サイクル3では、DCミスは依然とし
て未解決であり、従ってデータ・バス31上のデータに
ついては何の変化も生じない。しかしながら、サイクル
2の間の「ロード可」(LD RDY1)信号に基づい
て、浮動小数点レジスタ11は第1のデータをロードさ
れる。同時に、サイクル3では、データ・バス33上の
第2のデータに対応する他の「ロード可」(LD RD
Y2)信号が、「データ・レジスタ・ロード」(LD
DREG2)及び「ロード・回転」(LD ROT2)
信号とともに送られる。また、サイクル3の間には、第
3のデータについて第3の「浮動小数点シングル・ロー
ド動作」(LFS3)が開始される。
【0027】サイクル4では、「第2のデータを浮動小
数点レジスタにロードする動作」(LD FPR2)
が、第3のデータに対する「ロード可」(LD RDY
3)、「データ・レジスタ・ロード」(LD DREG
3)及び「ロード・回転」(LD ROT3)信号とと
もに生じる。これらの信号は、データ・バス33上のデ
ータについて、FXU 3からFPU 1へ供給される
ものである。サイクル5では、データ・バス31につい
てDCミスが解決され、そして「ロード可」(LD
DY0)、「データ・レジスタ・ロード」(LD DR
EG0)及び「ロード・回転」(LD ROT0)信号
がFPU 1へ供給されて、このデータ・バス31上に
データが存在することを指示する。更に、浮動小数点レ
ジスタ11は、データ・バス33から第3のデータをロ
ードされる(LD FPR3)。データ・バス31から
のデータは、サイクル6の間に、浮動小数点レジスタ1
1へロードされる(LD FPR)。
【0028】次に、図8を参照して、図3及び図7に示
した種々の信号間の同期を説明する。図8の各サイクル
は、図7の各サイクルに対応する。サイクル2では、デ
ータ・バス31に対する「ロード不可」(LD0 NR
DY)信号は2進の1にあって、該当データが(DCミ
スに起因して)ロード不能であることを指示する。この
場合、かかるデータをデータ・バス31に置く準備はで
きていないから、「データ・レジスタ・ロード」(LD
DREG)及び「ロード・回転」(ROT LF0)
信号は無効にされる。すなわち、データ・レジスタ31
については、どのデータ・レジスタにロードすべきか又
はこのデータをどれだけ回転すべきか、ということを指
示するデータは存在しないのである。これに対し、デー
タ・バス3については、「ロード可」(LD1 RD
Y)信号は活動的であるから、これに応じて「データ・
レジスタ・ロード」(LD1 DREG)及び「ロード
・回転」(ROT LF1)信号が有効にされる。すな
わち、これらの機能に関係するデータが存在するのであ
る。サイクル3では、DCミスが依然として存在するか
ら、データ・バス31からロードすべきデータについて
は同期信号が存在しない。データ・バス33に関して言
えば、「ロード可」(LD1 RDY)信号が活動的で
あるから、「データ・レジスタ・ロード」(LD1
REG)及び「ロード・回転」(ROT LF1)信号
はいずれも有効である。サイクル3とサイクル4との間
では、プロセッサ・システムには如何なる変化も見られ
ない。というのは、データ・バス31上にはDCミスが
依然として存在しており、しかも他の「ロード可」(L
D1 RDY)信号が活動的であるからである。サイク
ル5では、DCミスが解決され、これに対応して「デー
タ・レジスタ・ロード」(LD0 DREG)及び「ロ
ード・回転」(ROT LF0)信号が有効となる。更
に、後続のサイクル6では、アイドル状況に戻る。
【0029】
【発明の効果】以上のように、本発明によれば、データ
・ロード・ミスの存在に拘わりなく、浮動小数点ユニッ
ト(FPU)上で命令の実行を実質的に連続して行うこ
とが可能となる。
【図面の簡単な説明】
【図1】本発明に従った浮動小数点ユニット(FP
U)、固定小数点ユニット(FXU)、データ・キャッ
シュ・ユニット(DCU)及びメモリの相互接続を示す
概略ブロック図である。
【図2】浮動小数点ユニット(FPU)への通常のデー
タ・ロードを行うために、固定小数点ユニット(FX
U)及び浮動小数点ユニット(FPU)で行われる一連
の事象を示す図である。
【図3】データ・キャッシュ・ユニット(DCU)から
のデータのローデイングを同期させるために、固定小数
点ユニット(FXU)から浮動小数点ユニット(FP
U)へ送られる各同期信号を示す図である。
【図4】浮動小数点レジスタへ単一のデータ・ワードを
ロードする前に、浮動小数点ユニット(FPU)の内部
で行われるデータの回転を示す図である。
【図5】2機械サイクル中の同期信号の流れを示す図で
ある。
【図6】キャッシュ・ミスが生ずる場合の、nサイクル
中の同期信号の流れを示す図である。
【図7】データ・キャッシュ(DC)ミスが複数の機械
サイクルにわたって継続するような場合の、同期信号の
流れを示す図である。
【図8】6機械サイクル中の種々の同期信号の状況を示
す図である。
【符号の説明】
1・・・・・・浮動小数点ユニット(FPU) 3・・・・・・固定小数点ユニット(FXU) 5・・・・・・データ・キャッシュ・ユニット(DC
U) 7・・・・・・メモリ 11・・・・・・浮動小数点レジスタ 13、15・・・回転手段 17、19・・・データ・レジスタ 21、23・・・アドレス生成手段 31、33・・・データ・バス 32、34・・・データ・ポート 41、43・・・アドレス・バス 42、44・・・アドレス・ポート 51・・・・・・命令バス 53・・・・・・バス 55・・・・・・同期バス 57・・・・・・命令キャッシュ・ユニット 59・・・・・・命令格納バッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トロイ・ニール・ヒックス アメリカ合衆国テキサス州78727、オー スチン、テインバーサイド・ドライブ 12804番地 (72)発明者 ラリー・エドワード・サッチャー アメリカ合衆国テキサス州78759、オー スチン、デイー・ケー・ランチ・ロード 11507番地

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】第1のデータ経路を介して浮動小数点プロ
    セッサ上の第1のデータ・ポートへ第1のデータを供給
    するステップと;前記第1のデータ経路とは独立に、第 2のデータ経路を
    介して前記浮動小数点プロセッサ上の第2のデータ・ポ
    ートへ第2のデータを供給するステップと; 前記第1及び第2のデータ経路上で前記第1及び第2の
    データが利用不能状態にあるか否かを各別に検出するス
    テップと;前記第1及び第2のデータのうち何れか一方のデータが
    利用不能状態にあることを検出した場合には、前記浮動
    小数点プロセッサが当該一方のデータよりも時間的に先
    行して他方のデータをこれに対応するデータ経路を介し
    て受け取るように、固定小数点プロセッサから前記浮動
    小数点プロセッサへ同期用の制御信号を供給するステッ
    とを含む;浮動小数点プロセッサへデータを転送する
    方法。
  2. 【請求項2】前記一方のデータに対応する命令を格納
    るステップと; 前記他方のデータに対応する命令を実行するステップ
    と; 前記一方のデータの利用不能状態が解決されたときに
    該一方のデータに対応する前記格納済みの命令を実行す
    るステップとを更に含む;請求項1記載の浮動小数点プ
    ロセッサへデータを転送する方法。
  3. 【請求項3】前記第1のデータを供給するステップが、
    前記第1のデータ用の第1のアドレスを前記固定小数点
    プロセッサによって生成し且つ当該第1のアドレスを前
    記第1のデータ経路に対応する第1のアドレス・バスへ
    加えるステップを含み; 前記第2のデータを供給するステップが、前記第2のデ
    ータ用の第2のアドレスを前記固定小数点プロセッサに
    よって生成し且つ当該第2のアドレスを前記第2のデー
    タ経路に対応する第2のアドレス・バスへ加えるステッ
    プを含む;請求項1記載の浮動小数点プロセッサへデー
    タを転送する方法。
  4. 【請求項4】前記同期用の制御信号を供給するステップ
    が、 前記浮動小数点プロセッサへロード可信号を供給するこ
    とにより、前記利用不能状態を検出されていない前記第
    1又は第2のデータ経路からのデータがロード可能であ
    ることを通知するステップと; 前記利用不能状態が検出されたことに応答して前記浮
    動小数点プロセッサへロード不可信号を供給することに
    より、当該利用不能状態を検出されている前記第1又は
    第2のデータ経路からのデータがロード不能であること
    を通知するステップとを更に含む;請求項1記載の浮動
    小数点プロセッサへデータを転送する方法。
  5. 【請求項5】前記ロード不可信号を供給するステップ
    が、前記利用不能状態が存続している間は後続データ
    が前記利用不能状態を検出されていない前記第1又は第
    2のデータ経路を介して前記浮動小数点プロセッサへ供
    給されることを指示するステップを含む;請求項4記
    の浮動小数点プロセッサへデータを転送する方法。
  6. 【請求項6】第1のデータ経路を介して浮動小数点プロ
    セッサ上の第1のデータ・ポートへ第1のデータを供給
    する手段と;前記第1のデータ経路とは独立に、第 2のデータ経路を
    介して前記浮動小数点プロセッサ上の第2のデータ・ポ
    ートへ第2のデータを供給する手段と; 前記第1及び第2のデータ経路上で前記第1及び第2の
    データが利用不能状態にあるか否かを各別に検出する手
    段と;前記第1及び第2のデータのうち何れか一方のデータが
    利用不能状態にあることを検出した場合には、前記浮動
    小数点プロセッサが当該一方のデータよりも時間的に先
    行して他方のデータをこれに対応するデータ経路を介し
    て受け取るように、固定小数点プロセッサから前記浮動
    小数点プロセッサへ同期用の制御信号を供給する手段
    を含む、浮動小数点プロセッサへデータを転送する装
    置。
  7. 【請求項7】前記一方のデータに対応する命令を格納
    る手段と; 前記他方のデータに対応する命令を実行する手段と; 前記一方のデータの利用不能状態が解決されたときに
    該一方のデータに対応 する前記格納済みの命令を実行す
    る手段とを更に含む;請求項6記載の浮動小数点プロセ
    ッサへデータを転送する装置。
  8. 【請求項8】前記第1のデータを供給する手段が、前記
    第1のデータ用の第1のアドレスを生成する手段及び当
    該第1のアドレスを前記第1のデータ経路に対応する第
    1のアドレス・バスへ加える手段を含み; 前記第2のデータを供給する手段が、前記第2のデータ
    用の第2のアドレスを生成する手段及び当該第2のアド
    レスを前記第2のデータ経路に対応する第2のアドレス
    ・バスへ加える手段を含む;請求項6記載の浮動小数点
    プロセッサへデータを転送する装置。
  9. 【請求項9】前記同期用の制御信号を供給する手段が、 前記浮動小数点プロセッサへロード可信号を供給するこ
    とにより、前記利用不能状態を検出されていない前記第
    1又は第2のデータ経路からのデータがロード可能であ
    ることを通知する手段と; 前記利用不能状態が検出されたことに応答して前記浮
    動小数点プロセッサへロード不可信号を供給することに
    より、当該利用不能状態を検出されている前記第1又は
    第2のデータ経路からのデータがロード不能であること
    を通知する手段とを更に含む;請求項6記載の浮動小数
    点プロセッサへデータを転送する装置。
  10. 【請求項10】前記ロード不可信号を供給する手段が、
    前記利用不能状態が存続している間は、後続データが前
    記利用不能状態を検出されていない前記第1又は第2の
    データ経路を介して前記浮動小数点プロセッサへ供給さ
    れることを指示する手段を含む;請求項9記載の浮動小
    数点プロセッサへデータを転送する装置。
JP5276514A 1992-12-01 1993-11-05 浮動小数点プロセッサへデータを転送する方法及び装置 Expired - Lifetime JP2549256B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US98393092A 1992-12-01 1992-12-01
US983930 1992-12-01

Publications (2)

Publication Number Publication Date
JPH07200324A JPH07200324A (ja) 1995-08-04
JP2549256B2 true JP2549256B2 (ja) 1996-10-30

Family

ID=25530190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5276514A Expired - Lifetime JP2549256B2 (ja) 1992-12-01 1993-11-05 浮動小数点プロセッサへデータを転送する方法及び装置

Country Status (2)

Country Link
US (1) US5506957A (ja)
JP (1) JP2549256B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729724A (en) * 1995-12-20 1998-03-17 Intel Corporation Adaptive 128-bit floating point load and store operations for quadruple precision compatibility
US5761713A (en) * 1996-03-01 1998-06-02 Hewlett-Packard Co. Address aggregation system and method for increasing throughput to a multi-banked data cache from a processor by concurrently forwarding an address to each bank
US5878242A (en) * 1997-04-21 1999-03-02 International Business Machines Corporation Method and system for forwarding instructions in a processor with increased forwarding probability
JP3564041B2 (ja) * 1998-01-20 2004-09-08 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システム
US6381678B2 (en) * 1998-10-30 2002-04-30 Intel Corporation Processing ordered data requests to a memory
JP3676237B2 (ja) * 1999-01-20 2005-07-27 株式会社ルネサステクノロジ データ処理装置及び演算器
US6791564B1 (en) 2000-05-05 2004-09-14 Ipfirst, Llc Mechanism for clipping RGB value during integer transfer
US7496114B2 (en) * 2003-04-16 2009-02-24 Fujitsu Limited IP image transmission apparatus
US7308527B2 (en) * 2005-01-24 2007-12-11 International Business Machines Corporation System for indicating a plug position for a memory module in a memory system
US20060179286A1 (en) * 2005-02-09 2006-08-10 International Business Machines Corporation System and method for processing limited out-of-order execution of floating point loads
US9201801B2 (en) 2010-09-15 2015-12-01 International Business Machines Corporation Computing device with asynchronous auxiliary execution unit

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4573118A (en) * 1983-03-31 1986-02-25 Fairchild Camera & Instrument Corporation Microprocessor with branch control
US4630195A (en) * 1984-05-31 1986-12-16 International Business Machines Corporation Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
US4763294A (en) * 1985-12-19 1988-08-09 Wang Laboratories, Inc. Method and apparatus for floating point operations
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5202972A (en) * 1988-12-29 1993-04-13 International Business Machines Corporation Store buffer apparatus in a multiprocessor system
US4961162A (en) * 1989-01-13 1990-10-02 International Business Machines Corporation Multiprocessing system for performing floating point arithmetic operations
US5075840A (en) * 1989-01-13 1991-12-24 International Business Machines Corporation Tightly coupled multiprocessor instruction synchronization
US5150470A (en) * 1989-12-20 1992-09-22 International Business Machines Corporation Data processing system with instruction queue having tags indicating outstanding data status
US5295249A (en) * 1990-05-04 1994-03-15 International Business Machines Corporation Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
US5260952A (en) * 1991-04-30 1993-11-09 Ibm Corporation Fault tolerant logic system

Also Published As

Publication number Publication date
US5506957A (en) 1996-04-09
JPH07200324A (ja) 1995-08-04

Similar Documents

Publication Publication Date Title
US6594713B1 (en) Hub interface unit and application unit interfaces for expanded direct memory access processor
JP4045062B2 (ja) ロード命令を実行する方法、プロセッサ、およびシステム
US4796176A (en) Interrupt handling in a multiprocessor computing system
US5070475A (en) Floating point unit interface
US4942518A (en) Cache store bypass for computer
JP2539199B2 (ja) デジタルプロセッサ制御装置
EP0377990B1 (en) Data processing systems
JP2549256B2 (ja) 浮動小数点プロセッサへデータを転送する方法及び装置
JPH02224055A (ja) 命令の多機能ユニットへの同時ディスパッチのための方法及び装置
JP2000099406A (ja) L1デ―タ・キャッシュ・パリティ・エラ―のための回復方法及びシステム
JP4098241B2 (ja) プロセッサをコプロセッサに接続する方法及び装置
JPH06223209A (ja) 処理装置との間にデータ転送のためのバスを有するsimdアーキテクチャ
JP2002509312A (ja) 不整列データ・アクセスを実行するためのデータ整列バッファを有するディジタル信号プロセッサ
JPH076151A (ja) オンチップメモリデバイスのアクセスのために最適化されたcpuコアバス
US6237066B1 (en) Supporting multiple outstanding requests to multiple targets in a pipelined memory system
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
EP2132645B1 (en) A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled
JPH11161595A (ja) 汎用アドレス指定を有するマイクロプロセッサ
EP1091301B1 (en) Method and apparatus for transmitting operation packets between functional modules of a processor
EP0902360B1 (en) Apparatus for read/write-access to registers in a central processing unit
KR19990037572A (ko) 뱅크 어드레스 값을 공급하는 다중 소스를 구비하는 프로세서구조 설계 및 그 설계방법
JP2001117858A (ja) データ処理装置
EP0917048B1 (en) Address generator and method for single-cycle indirect addressing
EP1125204B1 (en) Explicit state copy in a fault tolerant system using a remote write operation
EP1746509B1 (en) Apparatus and method for ordering transaction beats in a data transfer