JP3501761B2 - 大規模データパス・アーキテクチャの実行機構 - Google Patents

大規模データパス・アーキテクチャの実行機構

Info

Publication number
JP3501761B2
JP3501761B2 JP2001022117A JP2001022117A JP3501761B2 JP 3501761 B2 JP3501761 B2 JP 3501761B2 JP 2001022117 A JP2001022117 A JP 2001022117A JP 2001022117 A JP2001022117 A JP 2001022117A JP 3501761 B2 JP3501761 B2 JP 3501761B2
Authority
JP
Japan
Prior art keywords
register
execution
instruction
unit
execution unit
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 - Fee Related
Application number
JP2001022117A
Other languages
English (en)
Other versions
JP2002229780A (ja
Inventor
英彦 田中
修一 坂井
秀典 辻
雄一郎 安島
Original Assignee
株式会社半導体理工学研究センター
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 株式会社半導体理工学研究センター filed Critical 株式会社半導体理工学研究センター
Priority to JP2001022117A priority Critical patent/JP3501761B2/ja
Publication of JP2002229780A publication Critical patent/JP2002229780A/ja
Application granted granted Critical
Publication of JP3501761B2 publication Critical patent/JP3501761B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば高性能マイ
クロプロセッサに適用される大規模データパス(Very L
arge Data Path、以下、VLDPと称す)・アーキテク
チャの実行機構に係わり、特に、レジスタアクセスを階
層化することによる分散レジスタの効率化に関する。
【0002】
【従来の技術】従来、計算機の処理装置として、レジス
タ・リネーミング技術がある。このレジスタ・リネーミ
ング技術は、プログラマに目視可能な論理レジスタより
も多くの物理レジスタを処理装置に実装し、これら論理
レジスタに値を代入する度に、論理レジスタに未使用の
物理レジスタが割り当てられる。この論理レジスタに未
使用の物理レジスタを割り当てることをレジスタ・リネ
ーミングと呼んでいる。このレジスタ・リネーミングに
より、プログラムの異なる部分で同じ論理レジスタを使
用する演算が、異なる物理レジスタをアクセスすること
により可能となる。これにより、プログラム中の異なる
部分の演算を同時且つ並列的に実効可能となる。すなわ
ち、命令レベルの並列実行が可能となる。
【0003】また、同一の論理レジスタに対してデータ
が書き込まれた場合においても、物理レジスタの異なる
アドレスにデータが書き込まれている。このため、障害
が発生した場合、プログラムの検証、及び復帰処理を高
速に行なうことができる。
【0004】
【発明が解決しようとする課題】しかし、従来の集中型
の物理レジスタ・ファイルとレジスタ・リネーミング技
術、及び命令発行技術は、大規模な命令レベルの並列実
行が困難である。この理由は、第1に、大規模な並列実
行では単位時間内のレジスタ参照回数、レジスタ・リネ
ーミングの回数が増加すること、第2に、命令発行機構
が大規模な並列実行を行なおうとして命令ウィンドウを
広げると、回路規模が2乗オーダーで増加し、動作速度
が低下することなどが挙げられる。
【0005】このように、従来のレジスタ・リネーミン
グと集中型物理レジスタによる実行方式では、単一レジ
スタ・ファイルへのアクセス集中とレジスタ・リネーミ
ング操作回数の増加、大規模な命令発行機構を実装する
ことが技術的に困難であった。このため、処理の高速化
が困難であった。
【0006】本発明は、上記課題を解決するためになさ
れたものであり、その目的とするところは、回路規模の
増大を防止するとともに、処理速度の高速化を図ること
が可能な大規模データパス・アーキテクチャの実行機構
を提供しようとするものである。
【0007】
【課題を解決するための手段】本発明の大規模データパ
ス・アーキテクチャの実行機構は、上記課題を解決する
ため、複数の命令により構成され、レジスタの入力情報
及び出力情報が付加された命令ブロックを保持する第1
のバッファと、前記命令ブロックを並列に実行する複数
の実行ユニットと、前記各実行ユニットに設けられ、各
実行ユニットの演算結果を保存する分散レジスタ・ファ
イルと、前記各実行ユニットに接続され、各実行ユニッ
トの前記分散レジスタ・ファイルに記憶された演算結果
を読み出し、他の実行ユニットに供給するデータ・ネッ
トワークと、プログラムに記述された論理レジスタと前
記分散レジスタ・ファイルとを対応付けるレジスタ・マ
ップを保持する第2のバッファと、前記第2のバッファ
に保持されたレジスタ・マップと前記命令ブロックに付
加されたレジスタの入力情報に応じて、命令ブロックが
割り当てられる実行ユニットに対してどの論理レジスタ
の値を送るかを示すレジスタ要求情報を発生するレジス
タ要求生成回路と、前記命令ブロックに付加された前記
レジスタの出力情報に応じて、前記命令ブロックの実行
後のレジスタ・マップを生成し、前記第2のバッファに
供給するレジスタ・マップ更新回路とを具備している。
【0008】すなわち、本発明におけるVLDPアーキ
テクチャは、スーパースカラ、複数の命令を同時に実行
するVLIW(Very long Instruction Word)などの従
来のアーキテクチャの延長ではなく、新しいアーキテク
チャである。VLDPは、大規模にハードウェア資源を
利用することでマイクロプロセッサの性能を大幅に向上
させ、性能目標として実効IPC(Instructions Per C
ycle)8の達成を目指している。
【0009】本発明のVLDPアーキテクチャの主な特
徴は、複数パス実行による大規模な投機的実行、32命
令幅の命令ブロックを実行単位とする高スループット処
理、多数の機能ユニットによる命令の並列実行、レジス
タを介さないデータアクセスである。本発明はこれらを
実現する実行機構を提案する。
【0010】本発明は、複数の実行ユニットに分散レジ
スタ・ファイルをそれぞれ設けることにより、レジスタ
アクセスを分散化させ、プロセッサの処理能力を飛躍的
に増大させることを可能としている。
【0011】また、レジスタ・リネーミングに相当する
レジスタ・マップの更新も多数の命令に対して一括して
行ない、プロセッサ内のデータストリームのバンド幅を
増大させることができる。
【0012】さらに、命令を実行する命令発行回路及び
機能ユニットは、分散レジスタ・ファイルに対応して実
行ユニット毎に分散化し、個々の発火機構の規模を小さ
くしている。このため、実行オーバーヘッドを大幅に低
減させることができる。
【0013】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して説明する。
【0014】先ず、本発明について、概略的に説明す
る。VLDPアーキテクチャではサイクル当たりの高い
処理スループットを得るため、最大32命令をまとめる
命令ブロック(Instruction Block)IBを処理単位と
して各種処理を高速化する。
【0015】一方、1サイクルにフェッチする命令ブロ
ックIBは最大1つとし、各種処理を簡単化している。
命令ブロックIBを実行する実行ユニット(Execution
Unit)EUは複数用意されている。これら実行ユニット
によって複数の命令ブロックIBを並列に実行すること
により、多数の命令を並列処理する。
【0016】大規模な投機的実行は、十分な演算資源を
確保するために大きなレジスタ・ファイルが必要とな
る。しかし、レジスタ・ファイルへの負荷集中を避ける
ため、本発明のVLDPでは分散したレジスタ・ファイ
ル構成としている。すなわち、各実行ユニットは分散レ
ジスタ・ファイルを有し、これら実行ユニットの演算結
果は、その実行ユニットの分散レジスタ・ファイルにの
み保存される。
【0017】また、命令ブロックIB内部で一時的に使
われ、レジスタに格納する必要のない値は、この値を生
成する命令を指定することにより、分散レジスタ・ファ
イルを介さずアクセスされる。
【0018】レジスタ・マップ・セット(Register Map
Set)RMSは、プログラムに記述された論理レジスタ
の値を格納する分散レジスタ・ファイル上の番地を保持
する。すなわち、このレジスタ・マップ・セットRMS
は、論理レジスタ番号と、値が格納されている分散レジ
スタ・ファイルの位置とを結び付ける機能を有してい
る。各実行ユニットは、レジスタ・マップ・セットRM
Sを参照することにより、分散レジスタ・ファイルから
必要な値を得ることができる。なお、初期型VLDPの
論理レジスタは64本と定められている。
【0019】本発明のVLDPにおいて、複数パスを実
行するため、実行中の全命令の処理前後におけるレジス
タ・マップ・セットはRMSバッファに格納される。こ
のRMSバッファに格納されたレジスタ・マップ・セッ
トのうち、フェッチした命令ブロックIBに対応するレ
ジスタ・マップ・セットがRMSバッファから読み出さ
れる。この読み出されたレジスタ・マップ・セットと共
に、命令ブロックIBを実行部に供給することにより、
VLDPは毎サイクル、複数の実行パスから任意のフェ
ッチ先を選んで実行できる。
【0020】また、実行中の多数の命令から特定のパス
の命令だけをまとめて削除するため、命令ブロックIB
には分岐履歴タグ(Branch History Tag、以下BHTと
記す)が付加される。尚、分岐制御を簡単化するため、
命令ブロックIBを8命令ずつの4つのフィールドに分
割し、各フィールドの末尾にのみ分岐命令を許してい
る。
【0021】さらに、命令ブロックIBには、レジスタ
の入出力情報として、更新値テーブル(Output Registe
r Map Table、以下、OMapと記す)、出力レジスタ・
マスク(Output Register Mask、以下、OMaskと記
す)、及びレジスタ要求を高速に生成するために要求レ
ジスタ・マスク(Input Register Mask、以下、IMask
と記す)が付加されている。これらレジスタの入出力情
報を用いて、レジスタ・マップ・セットRMSを高速に
更新可能としている。
【0022】図1は、本発明に係わるVLDPの構成を
概略的に示している。このVLDPは、制御部11、実
行部12、メモリ部13により構成されている。
【0023】制御部11は、パス管理ユニット14、及
びこのパス管理ユニット14に接続されたBHT管理ユ
ニット15、RMSバッファ16、IBバッファ17、
及びこのIBバッファ17に接続されたストリームバッ
ファ18を有している。
【0024】パス管理ユニット14は、主として分岐予
測に基づき、命令ブロックIBのフェッチ制御を行な
う。BHT管理ユニット15は分岐履歴タグBHTを管
理する。RMSバッファ16はレジスタ・マップ・セッ
トRMSを格納する。IBバッファ17はパス管理ユニ
ット14から供給されるパス制御信号PCに応じて、ス
トリームバッファ18から供給される命令ブロックIB
を保持する。ストリームバッファ18は、後述するキャ
ッシュメモリ23からプログラムに記述された順序で読
み出される命令ブロックIBを受ける。
【0025】前記実行部12は、EU管理ユニット1
9、デコーダ20、複数の実行ユニット(EU)2
、21〜2115、及びデータ・ネットワーク2
2により構成されている。この実行部12は、複数の実
行ユニット21、21〜21 による命令ブロッ
クIBの実行、レジスタ・マップ・セットRMSの更
新、分散レジスタ・ファイルのアクセス制御を行なう。
【0026】EU管理ユニット19は、デコーダ20を
介して複数の実行ユニット21、21〜2115
実行を管理する。デコーダ20は、BHT管理ユニット
15からの分岐履歴タグBHT、RMSバッファ16か
らのレジスタ・マップ・セットRMS、IBバッファ1
7からの命令ブロックIBを受け取り、実行ユニット2
、21〜2115に情報を分配する。さらに、こ
のデコーダ20は、受け取った命令ブロックIBの抜け
出し点のレジスタ・マップ・セットRMSを生成し、こ
のレジスタ・マップ・セットRMSを制御部11に返す
とともに、後述するレジスタ・マップ・セットRMSの
待ち行列RMSQに供給する。各実行ユニット21
21〜2115は、データ・ネットワーク22を介し
て接続され、他の実行ユニットと交信可能とされてい
る。実行部20の詳細については後述する。
【0027】前記メモリ部13は、実行中の命令による
メモリ・アクセスを仮想化し、ストア命令による書き込
みを命令が引き渡されるまで遅らせる。このメモリ部1
3は、キャッシュメモリ23、データバッファ24、ロ
ード・ストア・ユニット25により構成されている。
【0028】キャッシュメモリ23には演算対象として
の命令及びデータが記憶される。このキャッシュメモリ
23には前記ストリームバッファ18が接続されるとと
もに、データバッファ24、及びロード・ストア・ユニ
ット25を介して実行ユニット21、21〜21
15に接続される。これらロード・ストア・ユニット2
5、及びデータバッファ24を介して実行ユニット21
、21〜2115とキャッシュメモリ24との間で
データの授受が行われる。
【0029】さらに、前記EU管理ユニット19、実行
ユニット21、21〜2115、及びロード・スト
ア・ユニット25はパス管理ユニット14に接続されて
いる。
【0030】(実行部の機能)次に、実行部12に要求
される機能について説明する。
【0031】制御部11は、IBバッファ17からフェ
ッチした命令ブロックIBにレジスタ・マップ・セット
RMSと分岐履歴タグBHTを付加し、実行部12に供
給する。実行部12はこれらを解釈し、命令ブロックI
Bの各抜け出し点1〜4箇所におけるレジスタ・マップ
・セットRMSを生成する。さらに、分岐命令の種別を
判定し、前記生成したレジスタ・マップ・セットRMS
とともに制御部11に通知する。同時に既に供給された
命令ブロックIBを並列に実行し、メモリ・アクセスや
分岐結果を制御部11にフィード・バックする。制御部
11は分岐結果を受けて、特定パスの無効化(インバリ
デイト:Invalidate)やコレクト・パス(Correct Pat
h)が確定した命令ブロックIBのコミット(commit)
を指示する。これらインバリデイトやコミットは、分岐
履歴タグBHTに付加されている。実行部12はコミッ
ト指示に従い、演算資源の解放、再利用、メモリ・アク
セスの無効化、確定、例外発生(Exception、図にはE
XCPと記す)を制御部11に通知する。
【0032】図2は、前記実行部12の構成を具体的に
示しており、図1と同一部分には同一符号を付してい
る。
【0033】図2において、デコーダ20には、レジス
タ・マスク・セットRMSの待ち行列RMSQ26、レ
ジスタ要求生成部27、及びバッファ回路28が接続さ
れている。
【0034】デコーダ20は、制御部11から、命令ブ
ロックIB、レジスタ・マスク・セットRMS、分岐履
歴タグBHTを受け取り、実行部12内の各実行ユニッ
ト21、21〜2115に情報を分配する。また、
デコーダ20は、受け取った命令ブロックIBの抜け出
し点のレジスタ・マスク・セットRMSを生成し、前述
したように、制御部11に返すとともにRMSQ26に
格納する。さらに、デコーダ20は制御部11の指示に
より、RMSQ26からレジスタ・マスク・セットRM
Sを得る場合がある。
【0035】EU管理ユニット19は、実行ユニット2
、21〜2115、及び各実行ユニット内の分散
レジスタ・ファイルの使用状況を管理し、実行ユニット
21 、21〜2115、分散レジスタ・ファイルの
割り当て、及び無効化を制御する。このEU管理ユニッ
ト19の内部にはEU状態テーブル(EU Status Tabl
e、図2にEUSTと記す)19a、BHTテーブル
(図2にBHTTと記す)19b、OMaskテーブル
(以下、OMT)19c、及び分散レジスタ・ファイル
・ロック・バッファ(図2にDRFLBと記す)19d
を有している。
【0036】レジスタ要求生成部27は、前記レジスタ
・マップ・セットRMSと前記命令バッファIBに付加
された要求レジスタ・マスクIMaskに応じて、レジス
タ要求信号としてのレジスタ要求マップ(Register Req
uest Map、以下、RRMと記す)を生成する。このレジ
スタ要求マップRRMは、後述するように、そのサイク
ルで命令ブロックIBが割り当てられる実行ユニットに
対してどの論理レジスタの値を送るかを示している。こ
のレジスタ要求マップRRMは実行ユニット別に生成さ
れ、それぞれの実行ユニットに供給される。
【0037】実行ユニット21、21〜21
15は、命令ブロックIBが割り当てられると演算を開
始し、演算結果をその内部の分散レジスタ・ファイルに
書き込んで待機状態に戻る。レジスタ要求に基づくレジ
スタ値の送信は常に行なう。
【0038】バッファ回路28は、命令デコード・ビッ
ト列やレジスタ・マップ・セットRMSの一部など、ビ
ット幅の広いデータを各実行ユニットへ送信するための
中継器である。
【0039】また、実行ユニット21、21〜21
15は、メモリ・アクセス・バス29を介して前記メモ
リ部13のロード・ストア・ユニット25に接続されて
いる。
【0040】尚、図2において、パスの調停や実行ユニ
ットへ命令ブロックIBを割り当てるためなどの制御線
は省略している。
【0041】次に、実行ユニット21、21〜21
15の構成を説明する。実行ユニット21、21
2115は、同一構成であるため、実行ユニット21
を例として説明する。
【0042】図3は、実行ユニット21の構成を示し
ている。実行ユニット21は、レジスタ要求バッファ
30、命令発行回路31、ネットワーク・インターフェ
ース・ユニット32、機能ユニット33、分散レジスタ
・ファイルDRF、ローカル結果バス35、グローバル
結果バス36を有している。
【0043】前記命令発行回路31は、前記バッファ回
路28から供給されるデコードされた命令ブロックIB
を受け取り、オベランドをバッファする。各命令の発火
条件を調べ、発火可能なものから機能ユニット33に供
給する。また、命令発行回路31は、実行ユニットでの
実行状態(BUSY、EXCP)を前記EU管理ユニッ
ト19に通知する。機能ユニット33は、各命令に対応
した演算処理回路の集合体であり、各命令を演算処理す
る。この機能ユニット33の演算結果はグローバル結果
バス36、又はローカル結果バス35に出力される。グ
ローバル結果バス36に出力された演算結果は、分散レ
ジスタ・ファイルDRFに供給され、ローカル結果バス
35に出力された演算結果は命令発行回路31に供給さ
れる。演算内容によっては分岐結果バス37やメモリ・
アクセス・バス29がアクセスされる。
【0044】分散レジスタ・ファイルDRFは、グロー
バル結果バス36に出力された演算結果を保存し、命令
発行回路31はローカル結果バス35に出力された演算
結果を取り込む。分散レジスタ・ファイルDRFはバン
ク構成とされており、1バンクのエントリ数は命令ブロ
ックIBの最大命令数32となっている。
【0045】レジスタ要求バッファ30は、デコーダ2
0から供給されるレジスタ要求マップRRMとレジスタ
・マップ・セットRMSの一部を受け取り、送り先の実
行ユニット別にレジスタ要求のリストを保存する。
【0046】ネットワーク・インターフェース・ユニッ
ト32は、レジスタ要求バッファ30を参照して、分散
レジスタ・ファイルDRFから演算結果を読み出し、デ
ータ・ネットワーク22に供給する。また、ネットワー
ク・インターフェース・ユニット32は、外部からレジ
スタ値を受け取った場合、これをローカル結果バス35
を経由して命令発行回路31に供給する。
【0047】なお、初期型VLDPにおいて、実行ユニ
ットの数は例えば16ユニット、各実行ユニット内の分
散レジスタ・ファイルは例えば8バンクとされる。した
がって、分散レジスタ・ファイルの総バンク数は128
である。しかし、実行ユニットの数、分散レジスタ・フ
ァイルの数は、これに限定されるものではない。
【0048】分散レジスタ・ファイルの総バンク数は、
実行ユニットの総数と論理レジスタ数の和より多ければ
良いため、47バンクが余剰である。この余剰分のバン
クは、使用済みバンクの偏りによる実行ユニットの飽和
を緩和するために設けられている。
【0049】(実行部の動作)図4乃至図10を参照し
て、上記実行部12の動作について説明する。
【0050】(レジスタ・マップ・セットRMSの生
成)デコーダ20は、命令ブロックIBの先頭でのレジ
スタ・マップ・セットRMSから各抜け出し点における
レジスタ・マップ・セットRMSを生成し、制御部11
に返す。レジスタ・マップ・セットRMSの生成では、
命令ブロックIBに含まれる更新値テーブルOMap、及
び出力レジスタマスクOMaskを用いて先頭レジスタ・
マップ・セットRMSの該当のエントリを一括置換す
る。
【0051】図4は、レジスタ・マップ・セットRMS
を生成する仕組みを示している。
【0052】デコーダ20は、先ずEU管理ユニット1
9より、命令ブロックIBを割り当てる実行ユニット番
号(EUID)と分散レジスタ番号(BN)を得る。図
4は、実行ユニット番号(EUID)として“8”、分
散レジスタ番号(BN)として“4”が設定されてい
る。これらはレジスタ・マスク・セットRMSの実行ユ
ニット番号(EUID)フィールド、分散レジスタ番号
(BN)フィールドの置換に使用される。レジスタ・マ
スク・セットRMSの命令番号(IN)フィールドの置
換は、更新値テーブルOMapが使用される。図4に示す
更新値テーブルOMapには、論理レジスタR2、R3に
対応して、例えば置換する命令番号“28”“9”が設
定されている。出力レジスタ・マスクOMaskには、マ
スクする論理レジスタ及び置換する論理レジスタが設定
される。図4に示す出力レジスタ・マスクOMaskは、
論理レジスタR2、R3を置換する場合を示している。
【0053】デコーダ20は、これら実行ユニット番号
(EUID)、分散レジスタ番号(BN)、更新値テー
ブルOMap、出力レジスタ・マスクOMaskの情報に基
づき、レジスタ・マスク・セットRMSのレジスタR
2、R3に対応する実行ユニット番号(EUID)フィ
ールド、分散レジスタ番号(BN)フィールド、及び命
令番号(IN)フィールドの内容が置換する。
【0054】(レジスタ要求マップRRMの生成)レジ
スタ要求生成部27は、デコーダ20から供給されるレ
ジスタ・マップ・セットRMS、及び要求レジスタ・マ
スクIMaskに応じて、各実行ユニットに供給するレジ
スタ要求マップRRMを生成する。レジスタ要求マップ
RRMは、そのサイクルで新しく命令ブロックIBを割
り当てられる実行ユニットに対してどの論理レジスタの
値を送るかを示している。レジスタ要求マップRRMの
各ビットは、レジスタ・マップ・セットRMSで該当実
行ユニットに値があるとされ、かつ要求レジスタマスク
IMaskにより送信先命令ブロックIBが要求している
レジスタのみが“1”、それ以外は“0”となる。
【0055】図5は、レジスタ要求マップRRMの生成
方法を示している。先ず、レジスタ・マップ・セットR
MSのEUIDフィールドの全エントリをデコードし、
各実行ユニットに対応するビットを取り出すことによ
り、該当実行ユニットに値があることを示すレジスタ・
マップを生成する。図5は、EU(2)(図2の2
)のマップを取り出す場合を示している。このマッ
プと要求レジスタマスクIMaskとの論理積を取ること
により、該当実行ユニットのRRMを得ることができ
る。
【0056】(レジスタ値転送)新しい命令ブロックI
Bがいずれかの実行ユニットに割り当てられる毎に、全
ての実行ユニットにレジスタ要求マップRRMと、共通
のレジスタ・マップ・セットRMS(BN、INフィー
ルドのみ)がそれぞれ供給される。これらの情報は各実
行ユニット内のレジスタ要求バッファ30に格納され、
実行ユニット内のネットワーク・インターフェース・ユ
ニット32によって読み出される。
【0057】図6は、レジスタ要求バッファ30の構成
及び動作を示している。(尚、図6乃至図9において、
EU(0)〜EU(15)は、実行ユニット21、2
〜2115に対応する。) レジスタ要求バッファ30のエントリは、送り先EUI
Dに関連付けられており、MSRフィールドにはレジス
タ・マップ・セットRMSのBN、INフィールド、R
RMフィールドにはRRMが格納される。ネットワーク
・インターフェース・ユニット32は、レジスタ要求マ
ップRRMに“1”が立っているビットを探し、MSR
を参照して分散レジスタ・ファイルにアクセスする。も
しくはグローバル結果バス36を監視して値を得る。
【0058】ネットワーク・インターフェース・ユニッ
ト32は、得られた値をデータ・ネットワーク22を介
して送り先実行ユニットに転送する。受信側の実行ユニ
ットにおいて、データ・ネットワーク22は受けた値を
一旦バッファし、ローカル結果バス35を介して命令発
行回路31に値を供給する。
【0059】上記データ・ネットワーク22は、新しい
命令ブロックIBが実行ユニットに割り当てられる度に
他の実行ユニットから一斉にデータが送られるというト
ラフィックの特徴がある。データ・ネットワーク構造、
及び命令ブロックIB割り当て方法は、この特徴を踏ま
えて設計する必要がある。
【0060】(実行ユニット管理及び完了処理)EU管
理ユニットは、実行ユニット及び分散レジスタ・ファイ
ルの使用状況を管理し、実行ユニット及び分散レジスタ
・ファイルの割り当て、及び解放の処理を行なう。先
ず、実行ユニットで実行中の命令ブロックIBについ
て、各フィールド末尾での出力レジスタ・マスクOMas
k、及び分岐履歴タグBHTを、図7に示すOMask テ
ーブルOMT、図8に示すBHTテーブルBHTTにそ
れぞれ保存する。なお、末尾が抜け出し点でないフィー
ルドの出力レジスタ・マスクOMaskは保存しなくてよ
い。出力レジスタ・マスクOMaskは完了による分散レ
ジスタ・ファイルの解放に使用し、分岐履歴タグBHT
は無効化による分散レジスタ・ファイルなどの演算資源
の解放に使用する。
【0061】また、実行ユニットの状態は、図9に示す
EU状態テーブルEUSTに保持する。図9において、
アクティブ(active)ビットはEU管理ユニット19
が、既に命令ブロックIBを割り当てた実行ユニットで
あり、“1”にセットされる。バンク・バリッド(bank
valid)ビットは、実行ユニット内の各分散レジスタ・
ファイルの使用状況を表している。BNはアクティブな
実行ユニットがどの分散レジスタファイルバンクに書き
込むかをバンク番号で格納する。これは割当時に、バン
ク・バリッドを参照して決定される。コミット(commi
t)・ビットには、制御部11からコレクト・パス(Cor
rect Path)であることが通知された命令ブロックIB
を処理している実行ユニットのエントリがセットされ
る。制御部11からは分岐履歴タグBHTでコレクト・
パスが通知されるため、命令ブロックIBの途中までが
正しいパスで、途中から無効なパスである場合がある。
EU管理ユニット19は、BHTTを参照し、どのフィ
ールドまでが正しいパスであるかを判定してEU状態テ
ーブルEUSTのレベル(level)フィールドに書き込
む。
【0062】実行ユニットが命令ブロックIBの処理を
完了すると、実行ユニットから出力されるビジー信号B
USYが“1”から“0”に設定される。EU管理ユニ
ット19はこれを検出し、アクティブな実行ユニットで
ある場合は命令ブロックIBの処理実行が終了したとみ
なす。この時、例外発生信号EXCPがアクティブでな
ければ、EU管理ユニット19は命令ブロックIBの完
了処理を行なう。
【0063】すなわち、EU管理ユニット19は、EU
状態テーブルEUSTのコミット・ビットを読み出し、
該当命令ブロックIBが正しいパスに含まれているかを
検査する。コミット・ビットが立っていない時は、引き
渡されるか命令ブロックIBが無効化されるまで待つ。
命令ブロックIBの処理実行が終了し、かつ引き渡され
ている場合、EU管理ユニット19は、EU状態テーブ
ルEUSTのアクティブ・ビットをリセットし、実行ユ
ニットを解放する。
【0064】また、全実行ユニットのレジスタ要求バッ
ファ30から、解放する実行ユニットへのレジスタ要求
マップRRMをクリアする。同時に、アクティブになっ
ていた分散レジスタ・ファイルのバンクを分散レジスタ
ファイル・ロック・バッファ19dに登録し、ロックす
る。これは演算が終了しても後続の命令が演算結果の格
納された分散レジスタ・ファイルにアクセスすることが
あるため、これを防止するためである。
【0065】図10は、分散レジスタファイル・ロック
・バッファ19dの一例を示している。分散レジスタフ
ァイル・ロック・バッファ19dにはロックする分散レ
ジスタ・ファイルのEUID、BNとともに正しいパス
の抜け出し点における出力レジスタマスクOMaskが保
存される。
【0066】ここで、保存すべき出力レジスタ・マスク
OMaskは、EU状態テーブルEUSTのレベルフィー
ルドを使用して更新値テーブルOMapを参照することに
より得られる。新しい分散レジスタ・ファイルが分散レ
ジスタ・ファイル・ロック・バッファ19dに追加され
る時、全エントリの出力レジスタ・マスクOMaskが、
新しい分散レジスタ・ファイルの出力レジスタ・マスク
OMaskとの論理積に更新される。これは、新しく追加
した分散レジスタ・ファイルに含まれるレジスタ値によ
って、古い分散レジスタ・ファイルが参照される可能性
がなくなるのをチェックするためである。この更新によ
って出力レジスタ・マスクOMaskのビットが全て
“0”になると、そのエントリは分散レジスタファイル
・ロック・バッファ19dから取り除かれ、対応するE
U状態テーブルEUSTのバンク・バリッド・ビットが
リセットされる。これにより、分散レジスタ・ファイル
の再利用が可能になる。
【0067】(命令無効化手順)制御部11より命令の
無効化(インバリデイト)が指定された場合、EU管理
ユニット19は、指定された分岐履歴タグBHTとその
子孫に対応する実行中の命令ブロックIBを全て無効化
し、実行ユニットから取り除く。無効化の操作は、EU
管理ユニット19から各実行ユニットを個別に制御す
る。無効化される実行ユニットは演算の停止とメモリ・
アクセスの無効化を行ない、無効化されない実行ユニッ
トでは無効化される実行ユニットへのレジスタ要求マッ
プRRMをクリアする。その後、各実行ユニットの無効
化操作の終了時点で、無効化した実行ユニットに対応す
るEU状態テーブルEUSTのアクティブ・ビットがリ
セットされ、実行ユニットが再利用可能になる。
【0068】また、命令ブロックIBの途中までがコミ
ットされた場合、その命令ブロックIBのコミットされ
なかった部分を無効化する。この場合、無効化部分の演
算停止とメモリ・アクセスの無効化のみが行なわれ、後
はコミット操作によって処理される。
【0069】(分岐結果のフィード・バック)実行ユニ
ットにおける分岐命令処理の結果により、実行パスの選
択が行なわれる。この結果を制御部11に渡すことによ
り、正しいパスの実行が継続される。分岐命令の結果が
出ると、図2に示すように、実行ユニットはアドレスA
DRを出力し、EU管理ユニット19はBHTTを参照
して該当の分岐履歴タグBHTを出力する。これら分岐
履歴タグBHTとアドレスADRの情報を合わせて制御
部11に転送する。単純には1サイクル、1命令ブロッ
クのスループットより、1サイクルに4程度の分岐結果
を返すことができればよいと予想される。
【0070】また、VLDPでは分岐予測及び分岐確信
度予測により、投機的に実行を進めるため、分岐命令の
存在、種別を早い段階で制御部11に通知することによ
って効率的な命令フェッチを行なえる。このため、デコ
ーダ20は命令ブロックIBのデコード時に分岐命令の
存在と種別を即座に制御部11に返す。
【0071】上記実施形態によれば、命令ブロックIB
単位で、レジスタ・マップを更新するため、従来の命令
単位のレジスタ・リネーミング技術に比べてレジスタ・
マップの操作回数を削減することができる。このため、
命令処理のスループットを向上できる。
【0072】しかも、命令ブロックIB毎にレジスタ・
マップを切り換えているため、実行中の複数のプログラ
ムから供給される命令ブロックIBを交互、且つ不連続
に処理することが可能である。
【0073】また、命令実行時に、演算結果をレジスタ
に格納する必要がない場合、機能ユニット33はローカ
ル結果バス35を介して演算結果を命令発行回路31に
直接供給している。このため、この演算結果を使用する
命令に対して、レジスタを使用せずに演算結果を直接転
送することができる。したがって、従来のように、レジ
スタを介して演算結果を参照する場合に比べて、プログ
ラムの記述におけるレジスタの使用数を削減することが
できるとともに、処理を高速化することができる。
【0074】さらに、各実行ユニットで分散してレジス
タを参照するため、実行ユニットの数を増加することに
より、これに比例して物理レジスタの総数、及び総参照
ポート数を増加することができる。このため、従来の集
中型物理レジスタ構造に比べて構成を簡単化することが
可能である。
【0075】また、命令発行回路31は、各実行ユニッ
トに分散して配置されているため、実行ユニットの数を
増加することにより、同時に発行できる命令の検出範囲
を容易に拡大することができる。したがって、従来の単
一命令ウィンドウ構成では回路構成が複雑で回路規模が
拡大する問題を有していたが、本実施形態は、回路規模
を大幅に削減できる利点を有している。
【0076】また、命令ブロックIBは、更新値テーブ
ルOMap、及び出力レジスタ・マスクOMaskを有して
おり、これら更新値テーブルOMap、及び出力レジスタ
・マスクOMaskを用いてレジスタ・マップ・セットR
MSの所定のエントリを一括して置換している。したが
って、高速にレジスタ・マップ・セットRMSを更新す
ることができる。
【0077】さらに、命令ブロックIBは、要求レジス
タ・マスクIMaskを有し、レジスタ要求生成部27
は、デコーダ20から供給されるレジスタ・マップ・セ
ットRMS、及び要求レジスタ・マスクIMaskに応じ
て、各実行ユニットに送るレジスタ要求をレジスタ要求
マップRRMとして一括して生成している。したがっ
て、レジスタ要求を高速に生成することができる。
【0078】尚、本発明は、上記実施形態に限定される
ものではなく、本発明の要旨を変えない範囲において種
々変形実施可能なことは勿論である。
【0079】
【発明の効果】以上、詳述したように本発明によれば、
回路規模の増大を防止するとともに、処理速度の高速化
を図ることが可能な大規模データパス・アーキテクチャ
の実行機構を提供できる。
【図面の簡単な説明】
【図1】本発明の実施形態を示す構成図。
【図2】図1に示す実行部を具体的に示す構成図。
【図3】図2に示す実行ユニットの一例を示す構成図。
【図4】レジスタ・マップ・セットRMSを生成する仕
組みを説明するために示す図。
【図5】レジスタ要求マップRRMの生成方法を説明す
るために示す図。
【図6】レジスタ要求バッファ30の構成及び動作を説
明するために示す図。
【図7】出力レジスタマスクテーブルOMTの一例を示
す図。
【図8】分岐履歴タグテーブルBHTTの一例を示す
図。
【図9】EU状態テーブルEUSTの一例を示す図。
【図10】分散レジスタファイル・ロック・バッファD
RFLBの一例を示す図。
【符号の説明】
11…制御部、 12…実行部、 13…メモリ部、 19…EU管理ユニット、 19a…実行ユニット状態テーブル(EUST)、 19b…分岐履歴タグテーブル(BHTT)、 19c…OMaskテーブル(OMT)、 19d…分散レジスタファイル・ロック・バッファ(D
RFLB)、 20…デコーダ、 21、21〜2115…実行ユニット、 22…データ・ネットワーク、 27…レジスタ要求生成部、 30…レジスタ要求バッファ、 31…命令発行回路、 32…ネットワーク・インターフェース・ユニット、 33…機能ユニット、 DRF…分散レジスタ・ファイル、 IB…命令ブロック、 RMS…レジスタ・マップ・セット、 BHT…分岐履歴タグ、 OMap…更新値テーブル、 OMask…出力レジスタ・マスク。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平8−212070(JP,A) 特開 平8−44564(JP,A) 特開 平4−230527(JP,A) 特表2002−521761(JP,A) 国際公開00/07096(WO,A1) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/38

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の命令により構成され、レジスタの
    入力情報及び出力情報が付加された命令ブロックを保持
    する第1のバッファと、 前記命令ブロックを並列に実行する複数の実行ユニット
    と、 前記各実行ユニットに設けられ、各実行ユニットの演算
    結果を保存する分散レジスタ・ファイルと、 前記各実行ユニットに接続され、各実行ユニットの前記
    分散レジスタ・ファイルに記憶された演算結果を読み出
    し、他の実行ユニットに供給するデータ・ネットワーク
    と、 プログラムに記述された論理レジスタと前記分散レジス
    タ・ファイルとを対応付けるレジスタ・マップを保持す
    る第2のバッファと、 前記第2のバッファに保持されたレジスタ・マップと前
    記命令ブロックに付加されたレジスタの入力情報に応じ
    て、命令ブロックが割り当てられる実行ユニットに対し
    てどの論理レジスタの値を送るかを示すレジスタ要求情
    報を発生するレジスタ要求生成回路と、 前記命令ブロックに付加された前記レジスタの出力情報
    に応じて、前記命令ブロックの実行後のレジスタ・マッ
    プを生成し、前記第2のバッファに供給するレジスタ・
    マップ更新回路とを具備することを特徴とする大規模デ
    ータパス・アーキテクチャの実行機構。
  2. 【請求項2】 前記各実行ユニットは、前記命令ブロッ
    クの各命令に対応した演算処理回路の集合体からなり、
    各命令を演算処理する機能ユニットと、 前記機能ユニットに接続され、前記第1のバッファから
    供給される命令ブロックを受け、発火可能な命令を前記
    機能ユニットに供給する命令発行回路と、 前記機能ユニットの演算処理結果を前記命令発行回路に
    帰還する帰還回路とをさらに具備し、 プログラムは前記命令ブロックを単位として記述され、
    命令ブロック内部では、前記機能ユニットの演算結果が
    前記帰還回路を介して前記命令発行回路に直接供給され
    ることを特徴とする請求項1記載の大規模データパス・
    アーキテクチャの実行機構。
  3. 【請求項3】 前記実行ユニットは、前記分散レジスタ
    ・ファイルから指定された値を読み出し、前記データ・
    ネットワークを介して他の実行ユニットに供給するネッ
    トワーク・インターフェース・ユニットをさらに具備す
    ることを特徴とする請求項2記載の大規模データパス・
    アーキテクチャの実行機構。
  4. 【請求項4】 前記各実行ユニットと前記分散レジスタ
    ・ファイルの使用状況を管理し、前記各実行ユニットと
    前記分散レジスタ・ファイルの割り当て、無効化を制御
    する実行ユニット管理部をさらに具備することを特徴と
    する請求項1記載の大規模データパス・アーキテクチャ
    の実行機構。
  5. 【請求項5】 前記レジスタ・マップは、論理レジスタ
    に対応して、前記実行ユニットを識別する識別番号と、
    分散レジスタ・ファイルを識別する分散レジスタ番号、
    及び命令番号を有し、 前記レジスタ・マップ更新回路は、前記レジスタの出力
    情報で指示された論理レジスタに対して、前記実行ユニ
    ット管理部から受けた命令ブロックを割り当てる実行ユ
    ニットの識別番号と分散レジスタ番号に基づき、前記レ
    ジスタ・マップの前記実行ユニットの識別番号と分散レ
    ジスタ番号を更新し、前記レジスタの出力情報に基づ
    き、前記レジスタ・マップの命令番号を更新することを
    特徴とする請求項4記載の大規模データパス・アーキテ
    クチャの実行機構。
  6. 【請求項6】 前記命令ブロックは、実行中の多数の命
    令から特定のパスの命令を削除するための分岐履歴タグ
    を有することを特徴とする請求項5記載の大規模データ
    パス・アーキテクチャの実行機構。
JP2001022117A 2001-01-30 2001-01-30 大規模データパス・アーキテクチャの実行機構 Expired - Fee Related JP3501761B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001022117A JP3501761B2 (ja) 2001-01-30 2001-01-30 大規模データパス・アーキテクチャの実行機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001022117A JP3501761B2 (ja) 2001-01-30 2001-01-30 大規模データパス・アーキテクチャの実行機構

Publications (2)

Publication Number Publication Date
JP2002229780A JP2002229780A (ja) 2002-08-16
JP3501761B2 true JP3501761B2 (ja) 2004-03-02

Family

ID=18887571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001022117A Expired - Fee Related JP3501761B2 (ja) 2001-01-30 2001-01-30 大規模データパス・アーキテクチャの実行機構

Country Status (1)

Country Link
JP (1) JP3501761B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1685310A (zh) * 2002-09-24 2005-10-19 皇家飞利浦电子股份有限公司 在一个超长指令字处理器中启动加载立即指令的处理的装置、方法和编译器
WO2004034247A1 (ja) * 2002-10-10 2004-04-22 Fujitsu Limited 前置処理装置
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
US9395988B2 (en) * 2013-03-08 2016-07-19 Samsung Electronics Co., Ltd. Micro-ops including packed source and destination fields

Also Published As

Publication number Publication date
JP2002229780A (ja) 2002-08-16

Similar Documents

Publication Publication Date Title
US7213248B2 (en) High speed promotion mechanism suitable for lock acquisition in a multiprocessor data processing system
US6829698B2 (en) Method, apparatus and system for acquiring a global promotion facility utilizing a data-less transaction
US7082601B2 (en) Multi-thread execution method and parallel processor system
US6829762B2 (en) Method, apparatus and system for allocating and accessing memory-mapped facilities within a data processing system
Franklin et al. The expandable split window paradigm for exploiting fine-grain parallelsim
US7290261B2 (en) Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor
Cintra et al. Eliminating squashes through learning cross-thread violations in speculative parallelization for multiprocessors
Kim et al. Warped-preexecution: A GPU pre-execution approach for improving latency hiding
JP2001236221A (ja) マルチスレッドを利用するパイプライン並列プロセッサ
US8255591B2 (en) Method and system for managing cache injection in a multiprocessor system
US20140164732A1 (en) Translation management instructions for updating address translation data structures in remote processing nodes
KR19980079702A (ko) 저장 인스트럭션의 결과의 전달하는 방법 및 이를 구현한 프로세서
KR20080043378A (ko) 복수의 병렬 클러스터들을 포함하는 계층 프로세서의스케쥴링 메카니즘
CN106537329B (zh) 用于为多线程执行锁保护处理操作的数据处理装置及方法
US6920514B2 (en) Method, apparatus and system that cache promotion information within a processor separate from instructions and data
JP4608099B2 (ja) ジョブ信号を処理する多数の処理ユニットを有する処理システムにおけるジョブ信号処理方法および処理システム
JP2000047887A (ja) 投機的マルチスレッド処理方法および投機的マルチスレッド処理装置
JP2002530735A5 (ja)
KR100437227B1 (ko) 다중 처리 시스템에서 개선된 결과 처리 방법 및 장치
US6925551B2 (en) Method, apparatus and system for accessing a global promotion facility through execution of a branch-type instruction
JP3501761B2 (ja) 大規模データパス・アーキテクチャの実行機構
Ohmacht et al. IBM Blue Gene/Q memory subsystem with speculative execution and transactional memory
US11314509B2 (en) Processing of plural-register-load instruction
Belayneh et al. A discussion on non-blocking/lockup-free caches
JPH07105091A (ja) キャッシュの制御装置および制御方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20031125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20031202

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081212

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081212

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091212

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091212

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101212

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees