JPH08328858A - 高速レジスタ・ファイル - Google Patents

高速レジスタ・ファイル

Info

Publication number
JPH08328858A
JPH08328858A JP8126699A JP12669996A JPH08328858A JP H08328858 A JPH08328858 A JP H08328858A JP 8126699 A JP8126699 A JP 8126699A JP 12669996 A JP12669996 A JP 12669996A JP H08328858 A JPH08328858 A JP H08328858A
Authority
JP
Japan
Prior art keywords
copy
write
ports
register file
copies
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.)
Granted
Application number
JP8126699A
Other languages
English (en)
Other versions
JP3177156B2 (ja
Inventor
David Arnold Luick
デービッド・アーノルド・ルイック
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 JPH08328858A publication Critical patent/JPH08328858A/ja
Application granted granted Critical
Publication of JP3177156B2 publication Critical patent/JP3177156B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 超長ワード命令(VLIW)プロセッサおよ
びN重スーパースカラー・プロセッサとともに使用する
ための高速レジスタ・ファイルを提供する。 【解決手段】 高速レジスタ・ファイルは、汎用レジス
タ(GPR)ビルディング・ブロックの選択した個数の
コピーを含む。GPRビルディング・ブロックは、レジ
スタの少なくとも2個のインタリーブされたサブバンク
を含む。各サブバンクは、N個の書込みポートとM個の
読取りポートを含む。サブバンクは、書込みポートによ
ってインタリーブされ、かつインタリーブされない読取
りポートを有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の読取りポー
トと書込みポートまたは複数のポート・レジスタ・ファ
イルを有するランダム・アクセス読取り書込みメモリ
(RAM)装置に関し、さらに詳細には、64個または
それ以上のポートを含み、VLIW(Very Long Instru
ction Word)プロセッサおよびN重スーパースカラー・
プロセッサとともに使用するようになされた高速レジス
タ・ファイルに関する。
【0002】
【従来の技術】周知の複数レジスタ・ファイルまたはマ
ルチポート・レジスタ・ファイルは、VLIWプロセッ
サおよびN重スーパースカラー・プロセッサとともに使
用するには不十分である。VLIWプロセッサは、命令
の複数の部分を同時に実行できる一連の演算論理装置ま
たは機能ユニットから構成される。8個、16個または
それ以上のパイプライン機能ユニットを有するVLIW
プロセッサおよびN重スーパースカラー・プロセッサ
は、恐らく64ポートまたはそれ以上の要件のためにパ
イプライン当たり3個または4個のポートを準備しなけ
ればならない通信用の中央レジスタ・ファイルを必要と
する。現在の技術では、特にアクセス時間要件および書
込み時間要件が非常に厳しい場合に、そのような多数の
ポートの直接の物理的実施態様を構成することは到底不
可能である。現在物理的に配線可能な最多ポートは、2
0個以下である。
【0003】
【発明が解決しようとする課題】本発明の主要な目的
は、VLIWプロセッサおよびN重スーパースカラー・
プロセッサとともに使用するための改善された複数ポー
ト・レジスタ・ファイルを提供することである。
【0004】
【課題を解決するための手段】要するに、VLIWプロ
セッサおよびN重スーパースカラー・プロセッサととも
に使用するための高速レジスタ・ファイルが提供され
る。高速レジスタ・ファイルは、汎用レジスタ(GP
R)ビルディング・ブロックの選択した個数のコピーを
含む。GPRビルディング・ブロックは、レジスタの少
なくとも2個のインタリーブされたサブバンクを含む。
各サブバンクは、N個の書込みポートとM個の読取りポ
ートを含む。サブバンクは、書込みポートによってイン
タリーブされ、かつインタリーブされない読取りポート
を有する。
【0005】
【発明の実施の形態】次に図面を参照すると、図1は、
全体的に参照記号50で示した本発明による28ポート
汎用レジスタ(GPR)ファイル論理ビルディング・ブ
ロックを示す。本発明の一特徴によれば、書込みポート
のインタリービング、具体的には、書込みポートから見
てレジスタの偶数サブバンク内および奇数サブバンク内
への書込みポートのインタリービングが使用される。3
2列のGPRレジスタ・ファイル・ビルディング・ブロ
ック50では、合計16個の使用可能な書込みポートと
合計12個の使用可能な読取りポートが実現される。
【0006】GPRファイル論理ビルディング・ブロッ
ク50は、1対の20ポートGPRファイル物理ビルデ
ィング・ブロック52を含む。20ポートGPRファイ
ル物理ビルディング・ブロック52は、偶数GPRサブ
バンク52と奇数GPRサブバンク52のインタリーブ
された書込みポートを含む。GPRサブバンク52で
は、32個の偶数レジスタのあるサブバンク用に12個
の読取りポートと8個の書込みポートが実現され、32
個の奇数レジスタの別のサブバンク用に8個の書込みポ
ートが実現される。GPRレジスタ・ファイル・ビルデ
ィング・ブロック50は、図2に60で全体的に示し
た、優れた性能特性を有する64ポートGPR論理レジ
スタ・ファイルを構成するのに使用される16個の物理
書込みポートと12個の物理読取りポートを含む。
【0007】次に図2を参照すると、64ポート汎用レ
ジスタ・ファイル60は、図1の28ポート・レジスタ
・ファイル論理ビルディング・ブロック50の4個のコ
ピーを含む。GPRファイル論理ビルディング・ブロッ
ク50を4回複写すると、読取りポートが4倍に増加し
て、所要の合計48個の読取りポートが実現される。6
4列レジスタ・ファイル60では、64個のレジスタ
は、32個の偶数番号レジスタのグループと、32個の
奇数番号レジスタのグループの2つのグループに分割さ
れる。使用に際して、このレジスタ・ファイル配置60
では、コンパイラが、レジスタ割振り/名前変更アルゴ
リズムのある組合せによって、ほぼ等しい個数の奇数番
号ターゲット・レジスタ・オペランドと偶数番号ターゲ
ット・レジスタ・オペランドとを有する命令の基本ブロ
ックを発生することができる。VLIW命令が緊密に符
号化されている場合、各命令パーセルは、永久的に割り
当てられた偶数(偶数パーセル)または奇数のターゲッ
ト・オペランド・レジスタ・ファイル・ポートを有し、
したがってレジスタ・アドレスの最終ビットを命令内で
符号化する必要がなくなる。
【0008】インタリーブされないレジスタ・ファイル
の16重書込み選択と比較して、インタリーブ・レジス
タ・ファイル60では、ターゲット・レジスタ内で書込
みが実行される前に8重書込み選択しか必要でないの
で、書込み性能が改善される。しかし、すべてのコピー
が有効なコピーとして残るためにすべての書込みを受け
取るので、複写により書込みポートが増加することはな
い。またGPR64ポート・レジスタ・ファイル60で
は、コピー1、2、3、4をそれが駆動するパイプライ
ン・データ・フローの最も近くに配置するので、レジス
タ・ファイルの実際の読取りポート性能が改善される。
このコピー戦略の欠点は、ターゲット・オペランドが、
図2のレジスタ・ファイル60内のGPR論理ビルディ
ング・ブロック50の4個のコピーの全領域を物理的に
走査しなければならないことである。
【0009】図3は、GPRビルディング・ブロック5
0の4個のコピーを使用する、全体的に68で示した書
込みポート区分化レジスタ・ファイル配置を示すブロッ
ク図である。各ブロック70は、各セルへの8個の追加
の書込みパスまたはポートを有する2個のGPRビルデ
ィング・ブロック52を含む。レジスタ・ファイル68
では、どのロードもすべてのコピー1、2、3、4を同
時に書き込むことができ、またどのALUもすべてのコ
ピー1、2、3、4を同時に書き込むことができる。配
置68は、16個のALU書込みポートと8個のロード
書込みポートを実現するために8個の追加の書込みポー
トが必要なので、実用的ではない。
【0010】図4は、4個のブロック80を含む、全体
的に78で示した他の縮小書込みポート区分化レジスタ
・ファイル配置を示す。各ブロック80は、2個の1/
2ブロックまたはサブバンク52、または1個のブロッ
ク50を含む。コピー1および2では、一方のサブバン
ク52は、ALU書込みパイプ0〜7用に使用され、他
方のサブバンク52は、8個のロード書込みポート用に
使用される。コピー3および4では、一方のサブバンク
52は、ALU書込みパイプ8〜15用に使用され、他
方のサブバンク52は、8個のロード書込みポート用に
使用される。図4の区分化配置78は、合計24個の書
込みポートを必要とする図3の非実用的な配置68と異
なり、合計16個の書込みポートを必要とする実用的な
解決法となる。高性能コンパイラは、所与のサイクル中
に4個のコピー80のうちの2個のコピーのみにターゲ
ット書込みを制限することができる。ALUの動作がレ
ジスタ・ファイル78に書き込む必要のあるターゲット
結果を生成する場合、コンパイラは、基本ブロックの仕
事の全部または大部分が、VLIWプロセッサ内の合計
16個のパイプライン・スロットまたはパイプのうちの
第1の8個のパイプライン0〜7か第2の8個のパイプ
ライン8〜15のどちらかに制限されるようにする。
【0011】レジスタ・ファイル78の2個のコピー8
0からなる各グループは、16個のパイプの1/2、す
なわち8個のパイプ0〜7または8個のパイプ8〜15
からALUターゲット結果を受け取るだけでよく、必要
な書込みポートの総数がコピー当たり8個減少する。追
加の読取りポートは、特に費用がかからないが、追加の
大域書込みポートは、余分の入力ポートによりすべての
コピー1、2、3、4に影響を及ぼすので、非常に費用
がかかる。パイプ8〜15がパイプ0〜7からの結果を
見る必要がある場合、またはその逆の場合、コンパイラ
は、レジスタ移動命動作をスケジュールし、かつレジス
タ参照を適切にスケジュールしてこれによるパイプの停
止が完全に回避されるようにする。
【0012】図5は、64ポートGPRファイル78を
含む、全体的に82で示したVLIWプロセッサ・ユニ
ットを示すブロック図である。図5に示したALUター
ゲット区分化方式の他の重要な利点は、書込みポートへ
のALU結果を得るのに必要なバス・ワイヤの全長が大
幅に減少すること、ならびに書込みポートを区分化せず
に2対4の割合でロード要件が減ることである。線84
は、区分化されたレジスタ・ファイル78に必要な最長
ALU書込みバス・ワイヤを表す。点線86は、区分化
されていないレジスタ・ファイル60に必要な最長AL
U書込みバス・ワイヤを表す。区分化されたALUター
ゲット・レジスタ・ファイル78では、最悪の場合で
も、ALUは、区分化されていない配置ではその次に隣
接するコピーに駆動するのとは異なり、それ自体と、隣
接するレジスタ・ファイル・コピーとに駆動するだけで
よい。またこれにより、潜在的に、これらのバス・ワイ
ヤの太さを2倍にし、かつ幅を2倍にすることが可能と
なる。ワイヤが太く幅が広くなるほど、抵抗が小さくな
り、よりよい性能が得られ、またバス・ワイヤは、区分
化されていないレジスタ・ファイル配置と比較して、約
1/2の長さしか走らない。書込みポート・ターゲット
区分化は、明らかにキャッシュ・データ・ロード書込み
ポートには使用されない。これは一部には、商業環境で
は、性能がALUの個数によってではなく、使用できる
ロード・パイプの個数によって制限されることが多いか
らである。したがって、ALU動作は、少ない妨害で各
ALUターゲット区画内に複写でき、ロードは複写でき
ない。また、多数のロード依存性の事例、例えば連係リ
ストが存在し、したがって待ち時間が非常に重要であ
る。キャッシュ・データ・ロードの事例では、データ・
バスがすでに高電流ドライバを有する長いワイヤである
ので、サイクル時間またはワイヤ遅延の差はほとんどな
い。わずか2個のレジスタ・ファイルのコピーに対して
4個のコピーを駆動しても、特にロード・パスがすでに
2個のサイクル・パスであるなら、バス遅延はわずかし
か変化しない。
【0013】図6は、図1の28ポートGPRファイル
論理ビルディング・ブロック50の4個のコピーを含
む、全体的に90で示した72ポート・レジスタ・ファ
イルを示す。図6では、完成したレジスタ・ファイルの
レイアウトは、8個の基本20ポートGPRサブバンク
52を含み、非常に速い読取りアクセスとライト・スル
ー性能能力を有する合計72個の論理ポートに対して、
サイクル当たり最大48回の読取りおよび24回の書込
みが可能な論理レジスタ・ファイルをもたらす。
【0014】図7は、図1のレジスタ・ファイル・ビル
ディング・ブロック52のセルを示す概略図である。D
CACHEデータ入力は、その出力において4重マルチ
プレクサ(MUX)102に接続された8重バイト整合
機構100に印加される。MUX102は、2重マルチ
プレクサ(MUX)104に接続され、セル106内に
含まれる8重MUX機能をともに定義する。セル106
は、L1ラッチおよびL2ラッチまたはシフト・レジス
タ・ラッチとして示される1対のラッチを含む。L1ラ
ッチは、8重MUX108に接続され、MUX108は
その出力において8重MUX110に接続される。全体
的に112で示したGPRアドレス・デコーダは、1対
のアドレス・バッファ114、116と、アドレスL1
ラッチ118、120を含み、アドレス信号をMUX1
08および110に印加する。C1クロック出力は、L
1ラッチ118およびL2ラッチ120用のアドレス・
バッファ114、116を設定するのに使用される。M
UX110の出力は、関連する演算論理装置(ALU)
のL2*ラッチ124に接続された加算器122に印加
される。L2*ラッチ124の出力は、大域ネットワー
ク・ワイヤ128を介して2重MUX104に接続され
た4重MUX126に印加される。6つのレベルのメタ
ライゼーションを有する相補形金属酸化物半導体(CM
OS)集積回路の実施態様では、大域ネットワーク・ワ
イヤ128は、第5レベルの金属とし、例えば標準配線
幅の2倍の太さで製造することができる。L2ラッチの
セル出力106は、復元パスを提供する64重MUX1
30に印加される。
【0015】図8は、本発明の可変読取りポート性能特
徴を示す。各レジスタ・ファイル・コピー50では、1
2個の読取りポートがすべて同じ性能要件を有するとは
限らない。読取りポートのうちの8個のポートは、ライ
ト・スルー・ポートでありかつできるだけ高速である必
要がある。高速読取りポートのうちの4個のポートは、
ALUの右側の入力に供給し、したがって減算用の真補
数関数およびその他の関数を有する必要がある。他の4
個の高速読取りポートは、他のALU入力(補数化され
ない)とCACHE論理(マシン・クリティカル・パ
ス)に供給し、やはりできるだけ高速に製造される。L
1ラッチ142は、−PHASEと+PHASEの2つ
のラッチ位相を提供する。L1ラッチ+PHASEは、
複数の読取りポート・セレクタ144および146を駆
動して、高速L1ライト・スルー・ポートを提供するの
に使用される。ライト・スルー・ポートは、同じクロッ
ク・サイクル中に書込みポートから読取りポートへデー
タを渡す。またコンパイラは、せいぜい2個の出力読取
りセレクタしか、所与のサイクル上で同じレジスタにア
クセスしないことを保証し、したがって提供すべき電流
を制限し、性能をさらに改善する。L1ラッチ−PHA
SEは、1対のセレクタ150、152に接続されたバ
ッファ148を駆動して、どちらも厳密なタイミングを
必要としないストア・レジスタのデータ・アクセスまた
は例外セーブ復元レジスタのロードに使用されるため、
非ライト・スルーでありかつ性能要件が厳しくない、4
個の低速L2読取りポートを提供するのに使用される。
4個の低速読取りポートは、より長く、より細く、より
不整なワイヤ・ブッシングに耐えられ、設計者に追加の
自由度を与える。書込みポートに接続されたバイパス選
択機構154は、ALUパイプへの高速読取りポートを
提供する。
【0016】図9は図1(ビット0)のGPRファイル
論理ビルディング・ブロック50の例示的レイアウトで
ある。レイアウトの中央付近に、32個の奇数セル10
6と32個の偶数セル106に分割された64個のGP
Rレジスタ・セルが示されている。4重MUX102、
126および2重MUX104を画定する8:1マルチ
プレクサの隣接する列は、例えば線160によって示さ
れる複数の書込み線によって偶数および奇数セル106
に接続される。8個のL1読取りポートと4個のL2読
取りポートが示されており、線は、セル106から読取
りポートへの例示的接続を示す。
【0017】図10を参照すると、図1のGPRファイ
ル論理ビルディング・ブロック50の他の例示的レイア
ウトでは、本発明による他の読取りポートのレイアウト
が示されている。図8に関して記述し説明したように、
GPRファイル論理ビルディング・ブロック50は、8
個の高速L1読取りポートと4個の低速L2読取りポー
トを含む。書込みデコード、クロッキング、バッファリ
ングおよびテスト・ブロックと、第1の4個の8重書込
みMUXとの間に、4個の高速L1読取りポートが設け
られる。第2の4個の8重書込みMUXと4個の低速L
2読取りポートの間に、4個の高速L1読取りポートが
設けられる。8個の書込みポート入力と第1の4個の8
重MUXの間、これらの8重MUXとセルの間、および
セルと4個の低速L2読取りポートの1つの間に、例示
的接続線が示されている。
【0018】図11は、GPRファイル78を含むプロ
セッサ・ユニットの例示的レイアウトを示す概略図であ
る。図11では、レジスタ/レジスタ(RR)パイプ0
〜7の上、レジスタ/記憶装置(RS)パイプ0〜5お
よび関連するDECACHEディレクトリ(DDIR)
とセグメント検索バッファ(SLB)0〜7の下のほぼ
中心に区分化されたGPRファイル78が示されてい
る。偶数および奇数GPRの1/2コピー1(図1のサ
ブバンク52)と、太いワイヤ、例えば標準幅の2倍の
ワイヤを備えるデコード/制御域との間に、例示的ワイ
ヤが示されている。
【0019】本発明について、図面に示した本発明の実
施形態の詳細を参照して説明したが、これらの詳細は、
添付の特許請求の範囲に記載した本発明の範囲を限定す
るものではない。
【0020】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0021】(1)汎用レジスタ(GPR)ビルディン
グ・ブロックと、前記GPRビルディング・ブロックの
選択した個数のコピーとを含む、VLIWプロセッサお
よびN重スーパースカラー・プロセッサとともに使用す
るための高速レジスタ・ファイルにおいて、前記GPR
ビルディング・ブロックがレジスタの少なくとも2個の
インタリーブされたサブバンクを含み、前記サブバンク
がそれぞれN個の書込みポートとM個の読取りポートを
含み、前記サブバンクが書込みポートによってインタリ
ーブされかつインタリーブされない読取りポートを有す
る高速レジスタ・ファイル。 (2)前記汎用レジスタ(GPR)ビルディング・ブロ
ックが、前記N個の奇数書込みポートを含むレジスタの
奇数サブバンクと、前記N個の偶数書込みポートを含む
レジスタの偶数サブバンクとを含むことを特徴とする、
上記(1)に記載の高速レジスタ・ファイル。 (3)前記選択した個数の前記コピーが所定のグループ
に組み合わされることを特徴とする、上記(1)に記載
の高速レジスタ・ファイル。 (4)VLIWプロセッサが、16個の演算論理装置
(ALU)0〜15を含み、第1の8個のALU0〜7
と第2の8個のALU8〜15のどちらかが、前記所定
のグループのうちの予め定義されたグループに書き込む
ことを特徴とする、上記(3)に記載の高速レジスタ・
ファイル。 (5)前記コピーの前記選択した個数が4個であり、前
記第1の8個のALU0〜7が前記コピーのうちの2個
に書き込み、かつ前記第2の8個のALU8〜15が前
記4個のコピーのうちの他の2個に書き込むことを特徴
とする、上記(4)に記載の高速レジスタ・ファイル。 (6)前記GPRビルディング・ブロックを画定する前
記レジスタの前記少なくとも2個のインタリーブされた
サブバンクの前記M個の読取りポートが互いに論理和さ
れて、前記GPRビルディング・ブロックにM個の読取
りポートを提供することを特徴とする、上記(1)に記
載の高速レジスタ・ファイル。 (7)前記汎用レジスタ(GPR)ビルディング・ブロ
ックが前記M個の読取りポートを含み、前記コピーの前
記選択した個数が4個であり、合計M×4個の読取りポ
ートを提供することを特徴とする、上記(1)に記載の
高速レジスタ・ファイル。 (8)前記M個の読取りポートが12個であり、合計4
8個の読取りポートを提供することを特徴とする、上記
(7)に記載の高速レジスタ・ファイル。 (9)前記汎用レジスタ(GPR)ビルディング・ブロ
ックが、前記N×2個の書込みポートを含むことを特徴
とする、上記(1)に記載の高速レジスタ・ファイル。 (10)前記選択したコピーの個数がコピー1、コピー
2、コピー3、コピー4の4個であり、VLIWプロセ
ッサが16個の演算論理装置(ALU)0〜15を含
み、第1の8個のALU0〜7がコピー1とコピー2に
書き込み、第2の8個のALU8〜15がコピー3とコ
ピー4に書き込むことを特徴とする、上記(1)に記載
の高速レジスタ・ファイル。 (11)コピー1、コピー2、コピー3、コピー4の前
記4個のコピーが、前記4個のコピーすべてにCACH
Eロード書込みを行うためにCACHEメモリに結合さ
れることを特徴とする、上記(10)に記載の高速レジ
スタ・ファイル。 (12)前記VLIWプロセッサが16個のパイプライ
ン0〜15を含み、前記選択したコピーの個数がコピー
1、コピー2、コピー3、コピー4の4個であり、前記
コピー1とコピー2が前記パイプライン0〜7に接続さ
れ、前記コピー3とコピー4が前記パイプライン8〜1
5に接続されることを特徴とする、上記(1)に記載の
高速レジスタ・ファイル。 (13)前記コピーがそれぞれ、8個の書込みポートに
よって前記パイプラインに接続されることを特徴とす
る、上記(12)に記載の高速レジスタ・ファイル。 (14)前記M個の前記読取りポートが、ライト・スル
ー・ポートと非ライト・スルー・ポートの両方を含むこ
とを特徴とする、上記(1)に記載の高速レジスタ・フ
ァイル。
【図面の簡単な説明】
【図1】本発明による1対の20ポート汎用レジスタ
(GPR)ファイル物理ビルディング・ブロックを示す
ブロック図である。
【図2】図1の28ポート論理GPRファイル論理ビル
ディング・ブロックの4個のコピーを含む64ポート・
レジスタ・ファイルを示すブロック図である。
【図3】図1のGPRファイル・ビルディング・ブロッ
クを使用した書込みポート区分化配置を示すブロック図
である。
【図4】図1のGPRファイル・ビルディング・ブロッ
クを使用した、本発明の他の縮小された書込みポート区
分化レジスタ・ファイル配置を示すブロック図である。
【図5】図4の64ポート・レジスタ・ファイルを含む
超長ワード命令(VLIW)プロセッサ・ユニットを示
すブロック図である。
【図6】図1の28ポート・レジスタ・ファイル・ビル
ディング・ブロックの4個のコピーを含む72ポート・
レジスタ・ファイルを示すブロック図である。
【図7】図1のレジスタ・ファイル・ビルディング・ブ
ロックのセルをアドレス・デコードおよび演算論理装置
(ALU)加算器とともに示す概略図である。
【図8】図1のGPRファイル・ビルディング・ブロッ
クの本発明による可変性能読取りアクセスを示す概略図
である。
【図9】図1(ビット0)のGPRファイル・ビルディ
ング・ブロックの例示的レイアウトである。
【図10】本発明による代替読取りポートのレイアウト
を示す、図1(ビット0)のGPRファイル・ビルディ
ング・ブロックの他の例示的レイアウトである。
【図11】図1のGPRファイル・ビルディング・ブロ
ックを含むプロセッサ・ユニットの例示的レイアウトを
示す概略図である。
【符号の説明】
50 28ポートGPRファイル論理ビルディング・ブ
ロック 52 20ポートGPRファイル物理ビルディング・ブ
ロック 60 64ポート汎用レジスタ・ファイル 68 書込みポート区分化レジスタ・ファイル配置 70 ブロック 78 書込みポート区分化レジスタ・ファイル配置 80 ブロック 82 VLIWプロセッサ・ユニット 90 72ポート・レジスタ・ファイル 100 8重バイト整合機構 102 4重マルチプレクサ(MUX) 104 2重MUX 106 セル 108 8重MUX 110 8重MUX 114 アドレス・バッファ 118 アドレスL1ラッチ 122 加算器 124 L2*ラッチ 126 4重MUX 128 大域ネットワーク・ワイヤ 130 64重MUX 142 L1ラッチ 144 読取りポート・セレクタ 146 読取りポート・セレクタ 148 バッファ 150 セレクタ 152 セレクタ 154 バイパス選択機構

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】汎用レジスタ(GPR)ビルディング・ブ
    ロックと、 前記GPRビルディング・ブロックの選択した個数のコ
    ピーとを含む、VLIWプロセッサおよびN重スーパー
    スカラー・プロセッサとともに使用するための高速レジ
    スタ・ファイルにおいて、前記GPRビルディング・ブ
    ロックがレジスタの少なくとも2個のインタリーブされ
    たサブバンクを含み、前記サブバンクがそれぞれN個の
    書込みポートとM個の読取りポートを含み、前記サブバ
    ンクが書込みポートによってインタリーブされかつイン
    タリーブされない読取りポートを有する高速レジスタ・
    ファイル。
  2. 【請求項2】前記汎用レジスタ(GPR)ビルディング
    ・ブロックが、前記N個の奇数書込みポートを含むレジ
    スタの奇数サブバンクと、前記N個の偶数書込みポート
    を含むレジスタの偶数サブバンクとを含むことを特徴と
    する、請求項1に記載の高速レジスタ・ファイル。
  3. 【請求項3】前記選択した個数の前記コピーが所定のグ
    ループに組み合わされることを特徴とする、請求項1に
    記載の高速レジスタ・ファイル。
  4. 【請求項4】VLIWプロセッサが、16個の演算論理
    装置(ALU)0〜15を含み、第1の8個のALU0
    〜7と第2の8個のALU8〜15のどちらかが、前記
    所定のグループのうちの予め定義されたグループに書き
    込むことを特徴とする、請求項3に記載の高速レジスタ
    ・ファイル。
  5. 【請求項5】前記コピーの前記選択した個数が4個であ
    り、前記第1の8個のALU0〜7が前記コピーのうち
    の2個に書き込み、かつ前記第2の8個のALU8〜1
    5が前記4個のコピーのうちの他の2個に書き込むこと
    を特徴とする、請求項4に記載の高速レジスタ・ファイ
    ル。
  6. 【請求項6】前記GPRビルディング・ブロックを画定
    する前記レジスタの前記少なくとも2個のインタリーブ
    されたサブバンクの前記M個の読取りポートが互いに論
    理和されて、前記GPRビルディング・ブロックにM個
    の読取りポートを提供することを特徴とする、請求項1
    に記載の高速レジスタ・ファイル。
  7. 【請求項7】前記汎用レジスタ(GPR)ビルディング
    ・ブロックが前記M個の読取りポートを含み、前記コピ
    ーの前記選択した個数が4個であり、合計M×4個の読
    取りポートを提供することを特徴とする、請求項1に記
    載の高速レジスタ・ファイル。
  8. 【請求項8】前記M個の読取りポートが12個であり、
    合計48個の読取りポートを提供することを特徴とす
    る、請求項7に記載の高速レジスタ・ファイル。
  9. 【請求項9】前記汎用レジスタ(GPR)ビルディング
    ・ブロックが、前記N×2個の書込みポートを含むこと
    を特徴とする、請求項1に記載の高速レジスタ・ファイ
    ル。
  10. 【請求項10】前記選択したコピーの個数がコピー1、
    コピー2、コピー3、コピー4の4個であり、VLIW
    プロセッサが16個の演算論理装置(ALU)0〜15
    を含み、第1の8個のALU0〜7がコピー1とコピー
    2に書き込み、第2の8個のALU8〜15がコピー3
    とコピー4に書き込むことを特徴とする、請求項1に記
    載の高速レジスタ・ファイル。
  11. 【請求項11】コピー1、コピー2、コピー3、コピー
    4の前記4個のコピーが、前記4個のコピーすべてにC
    ACHEロード書込みを行うためにCACHEメモリに
    結合されることを特徴とする、請求項10に記載の高速
    レジスタ・ファイル。
  12. 【請求項12】前記VLIWプロセッサが16個のパイ
    プライン0〜15を含み、前記選択したコピーの個数が
    コピー1、コピー2、コピー3、コピー4の4個であ
    り、前記コピー1とコピー2が前記パイプライン0〜7
    に接続され、前記コピー3とコピー4が前記パイプライ
    ン8〜15に接続されることを特徴とする、請求項1に
    記載の高速レジスタ・ファイル。
  13. 【請求項13】前記コピーがそれぞれ、8個の書込みポ
    ートによって前記パイプラインに接続されることを特徴
    とする、請求項12に記載の高速レジスタ・ファイル。
  14. 【請求項14】前記M個の前記読取りポートが、ライト
    ・スルー・ポートと非ライト・スルー・ポートの両方を
    含むことを特徴とする、請求項1に記載の高速レジスタ
    ・ファイル。
JP12669996A 1995-06-02 1996-05-22 高速レジスタ・ファイル Expired - Fee Related JP3177156B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/459,490 US5644780A (en) 1995-06-02 1995-06-02 Multiple port high speed register file with interleaved write ports for use with very long instruction word (vlin) and n-way superscaler processors
US459490 1995-06-02

Publications (2)

Publication Number Publication Date
JPH08328858A true JPH08328858A (ja) 1996-12-13
JP3177156B2 JP3177156B2 (ja) 2001-06-18

Family

ID=23824998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12669996A Expired - Fee Related JP3177156B2 (ja) 1995-06-02 1996-05-22 高速レジスタ・ファイル

Country Status (6)

Country Link
US (1) US5644780A (ja)
EP (1) EP0745933A3 (ja)
JP (1) JP3177156B2 (ja)
KR (1) KR100195661B1 (ja)
CN (1) CN1081359C (ja)
TW (1) TW289103B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011238271A (ja) * 2004-07-13 2011-11-24 Nvidia Corp 低ポート数メモリーを用いたマルチポートメモリーのシミュレート

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924117A (en) * 1996-12-16 1999-07-13 International Business Machines Corporation Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto
JPH1131137A (ja) * 1997-07-11 1999-02-02 Nec Corp レジスタファイル
US6041387A (en) * 1997-09-12 2000-03-21 Siemens Aktiengesellschaft Apparatus for read/write-access to registers having register file architecture in a central processing unit
US6343356B1 (en) * 1998-10-09 2002-01-29 Bops, Inc. Methods and apparatus for dynamic instruction controlled reconfiguration register file with extended precision
US6301653B1 (en) 1998-10-14 2001-10-09 Conexant Systems, Inc. Processor containing data path units with forwarding paths between two data path units and a unique configuration or register blocks
US6654870B1 (en) * 1999-06-21 2003-11-25 Pts Corporation Methods and apparatus for establishing port priority functions in a VLIW processor
US7401205B1 (en) * 1999-08-13 2008-07-15 Mips Technologies, Inc. High performance RISC instruction set digital signal processor having circular buffer and looping controls
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6668317B1 (en) * 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6427196B1 (en) 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
US7546444B1 (en) 1999-09-01 2009-06-09 Intel Corporation Register set used in multithreaded parallel processor architecture
AU7340400A (en) 1999-09-01 2001-03-26 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
US6629232B1 (en) * 1999-11-05 2003-09-30 Intel Corporation Copied register files for data processors having many execution units
US6532509B1 (en) * 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6625654B1 (en) 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6631430B1 (en) 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6307789B1 (en) 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6584522B1 (en) 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6976095B1 (en) 1999-12-30 2005-12-13 Intel Corporation Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US6704855B1 (en) 2000-06-02 2004-03-09 International Business Machines Corporation Method and apparatus for reducing encoding needs and ports to shared resources in a processor
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US7020871B2 (en) 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7225281B2 (en) 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7126952B2 (en) 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
EP1442362A1 (en) 2001-10-24 2004-08-04 Telefonaktiebolaget LM Ericsson (publ) An arrangement and a method in processor technology
US7158964B2 (en) 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US6934951B2 (en) 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US7181594B2 (en) 2002-01-25 2007-02-20 Intel Corporation Context pipelines
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7149226B2 (en) 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7120780B2 (en) * 2002-03-04 2006-10-10 International Business Machines Corporation Method of renaming registers in register file and microprocessor thereof
US7437724B2 (en) 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US7471688B2 (en) 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7337275B2 (en) 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7433307B2 (en) 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
US6987686B2 (en) * 2003-12-11 2006-01-17 International Business Machines Corporation Performance increase technique for use in a register file having dynamically boosted wordlines
US7213099B2 (en) 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US8713286B2 (en) 2005-04-26 2014-04-29 Qualcomm Incorporated Register files for a digital signal processor operating in an interleaved multi-threaded environment
US20060265555A1 (en) * 2005-05-19 2006-11-23 International Business Machines Corporation Methods and apparatus for sharing processor resources
US7366032B1 (en) * 2005-11-21 2008-04-29 Advanced Micro Devices, Inc. Multi-ported register cell with randomly accessible history
US20070239970A1 (en) * 2006-04-06 2007-10-11 I-Tao Liao Apparatus For Cooperative Sharing Of Operand Access Port Of A Banked Register File
WO2007138532A1 (en) * 2006-05-25 2007-12-06 Nxp B.V. Unified multi-ported register-file with uniform read and selective write ports
US7840783B1 (en) * 2007-09-10 2010-11-23 Netlogic Microsystems, Inc. System and method for performing a register renaming operation utilizing hardware which is capable of operating in at least two modes utilizing registers of multiple widths
WO2011007562A1 (ja) 2009-07-16 2011-01-20 コニカミノルタビジネステクノロジーズ株式会社 画像読取装置
US8533435B2 (en) * 2009-09-24 2013-09-10 Nvidia Corporation Reordering operands assigned to each one of read request ports concurrently accessing multibank register file to avoid bank conflict
US10514911B2 (en) * 2014-11-26 2019-12-24 International Business Machines Corporation Structure for microprocessor including arithmetic logic units and an efficiency logic unit
US11163568B2 (en) * 2018-09-06 2021-11-02 International Business Machines Corporation Implementing write ports in register-file array cell
CN110046105B (zh) * 2019-04-26 2021-10-22 中国科学院微电子研究所 一种3D NAND Flash

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128883A (en) * 1977-09-30 1978-12-05 Ncr Corporation Shared busy means in a common bus environment
US4554645A (en) * 1983-03-10 1985-11-19 International Business Machines Corporation Multi-port register implementation
US4558433A (en) * 1983-05-31 1985-12-10 International Business Machines Corporation Multi-port register implementations
US4652993A (en) * 1984-04-02 1987-03-24 Sperry Corporation Multiple output port memory storage module
JPS618785A (ja) * 1984-06-21 1986-01-16 Fujitsu Ltd 記憶装置アクセス制御方式
US4766535A (en) * 1985-12-20 1988-08-23 International Business Machines Corporation High-performance multiple port memory
US4811296A (en) * 1987-05-15 1989-03-07 Analog Devices, Inc. Multi-port register file with flow-through of data
NL8800053A (nl) 1988-01-11 1989-08-01 Philips Nv Videoprocessorsysteem, alsmede afbeeldingssysteem en beeldopslagsysteem, voorzien van een dergelijk videoprocessorsysteem.
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US5206944A (en) * 1990-06-07 1993-04-27 The United States Of America As Represented By The Secretary Of The Air Force High speed analog to digital converter board for an IBM PC/AT
US5204841A (en) * 1990-07-27 1993-04-20 International Business Machines Corporation Virtual multi-port RAM
US5111431A (en) * 1990-11-02 1992-05-05 Analog Devices, Inc. Register forwarding multi-port register file
JP2823767B2 (ja) 1992-02-03 1998-11-11 松下電器産業株式会社 レジスタファイル
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
US5289427A (en) * 1992-07-20 1994-02-22 Motorola, Inc. Multiport memory with write priority detector
US5481736A (en) * 1993-02-17 1996-01-02 Hughes Aircraft Company Computer processing element having first and second functional units accessing shared memory output port on prioritized basis
US5481495A (en) * 1994-04-11 1996-01-02 International Business Machines Corporation Cells and read-circuits for high-performance register files

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011238271A (ja) * 2004-07-13 2011-11-24 Nvidia Corp 低ポート数メモリーを用いたマルチポートメモリーのシミュレート

Also Published As

Publication number Publication date
JP3177156B2 (ja) 2001-06-18
KR100195661B1 (ko) 1999-06-15
EP0745933A2 (en) 1996-12-04
CN1081359C (zh) 2002-03-20
TW289103B (en) 1996-10-21
KR970003267A (ko) 1997-01-28
US5644780A (en) 1997-07-01
CN1148207A (zh) 1997-04-23
EP0745933A3 (en) 2001-01-24

Similar Documents

Publication Publication Date Title
JP3177156B2 (ja) 高速レジスタ・ファイル
US6002880A (en) VLIW processor with less instruction issue slots than functional units
US6687810B2 (en) Method and apparatus for staggering execution of a single packed data instruction using the same circuit
US7694109B2 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
US6668316B1 (en) Method and apparatus for conflict-free execution of integer and floating-point operations with a common register file
JP2001256105A (ja) 非整列循環アドレス指定を用いるマイクロプロセッサ
US5619664A (en) Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms
WO1996012228A1 (en) Redundant mapping tables
US7308559B2 (en) Digital signal processor with cascaded SIMD organization
JPH0776923B2 (ja) 並列コンピュータ・システム
JPH07191846A (ja) プロセッサ
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
US5752273A (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
US4348724A (en) Address pairing apparatus for a control store of a data processing system
US3790960A (en) Right and left shifter and method in a data processing system
US5848284A (en) Method of transferring data between moderately coupled integer and floating point units
US7111155B1 (en) Digital signal processor computation core with input operand selection from operand bus for dual operations
US5961575A (en) Microprocessor having combined shift and rotate circuit
US5924128A (en) Pseudo zero cycle address generator and fast memory access
WO2000068783A2 (en) Digital signal processor computation core
US6820189B1 (en) Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
US7107302B1 (en) Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units
US6003119A (en) Memory circuit for reordering selected data in parallel with selection of the data from the memory circuit
US6859872B1 (en) Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation
EP0992897A2 (en) Stack pointer management

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080406

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080406

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090406

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees