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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent 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個の
読取りポートを含む。サブバンクは、書込みポートによ
ってインタリーブされ、かつインタリーブされない読取
りポートを有する。
びN重スーパースカラー・プロセッサとともに使用する
ための高速レジスタ・ファイルを提供する。 【解決手段】 高速レジスタ・ファイルは、汎用レジス
タ(GPR)ビルディング・ブロックの選択した個数の
コピーを含む。GPRビルディング・ブロックは、レジ
スタの少なくとも2個のインタリーブされたサブバンク
を含む。各サブバンクは、N個の書込みポートとM個の
読取りポートを含む。サブバンクは、書込みポートによ
ってインタリーブされ、かつインタリーブされない読取
りポートを有する。
Description
【0001】
【発明の属する技術分野】本発明は、複数の読取りポー
トと書込みポートまたは複数のポート・レジスタ・ファ
イルを有するランダム・アクセス読取り書込みメモリ
(RAM)装置に関し、さらに詳細には、64個または
それ以上のポートを含み、VLIW(Very Long Instru
ction Word)プロセッサおよびN重スーパースカラー・
プロセッサとともに使用するようになされた高速レジス
タ・ファイルに関する。
トと書込みポートまたは複数のポート・レジスタ・ファ
イルを有するランダム・アクセス読取り書込みメモリ
(RAM)装置に関し、さらに詳細には、64個または
それ以上のポートを含み、VLIW(Very Long Instru
ction Word)プロセッサおよびN重スーパースカラー・
プロセッサとともに使用するようになされた高速レジス
タ・ファイルに関する。
【0002】
【従来の技術】周知の複数レジスタ・ファイルまたはマ
ルチポート・レジスタ・ファイルは、VLIWプロセッ
サおよびN重スーパースカラー・プロセッサとともに使
用するには不十分である。VLIWプロセッサは、命令
の複数の部分を同時に実行できる一連の演算論理装置ま
たは機能ユニットから構成される。8個、16個または
それ以上のパイプライン機能ユニットを有するVLIW
プロセッサおよびN重スーパースカラー・プロセッサ
は、恐らく64ポートまたはそれ以上の要件のためにパ
イプライン当たり3個または4個のポートを準備しなけ
ればならない通信用の中央レジスタ・ファイルを必要と
する。現在の技術では、特にアクセス時間要件および書
込み時間要件が非常に厳しい場合に、そのような多数の
ポートの直接の物理的実施態様を構成することは到底不
可能である。現在物理的に配線可能な最多ポートは、2
0個以下である。
ルチポート・レジスタ・ファイルは、VLIWプロセッ
サおよびN重スーパースカラー・プロセッサとともに使
用するには不十分である。VLIWプロセッサは、命令
の複数の部分を同時に実行できる一連の演算論理装置ま
たは機能ユニットから構成される。8個、16個または
それ以上のパイプライン機能ユニットを有するVLIW
プロセッサおよびN重スーパースカラー・プロセッサ
は、恐らく64ポートまたはそれ以上の要件のためにパ
イプライン当たり3個または4個のポートを準備しなけ
ればならない通信用の中央レジスタ・ファイルを必要と
する。現在の技術では、特にアクセス時間要件および書
込み時間要件が非常に厳しい場合に、そのような多数の
ポートの直接の物理的実施態様を構成することは到底不
可能である。現在物理的に配線可能な最多ポートは、2
0個以下である。
【0003】
【発明が解決しようとする課題】本発明の主要な目的
は、VLIWプロセッサおよびN重スーパースカラー・
プロセッサとともに使用するための改善された複数ポー
ト・レジスタ・ファイルを提供することである。
は、VLIWプロセッサおよびN重スーパースカラー・
プロセッサとともに使用するための改善された複数ポー
ト・レジスタ・ファイルを提供することである。
【0004】
【課題を解決するための手段】要するに、VLIWプロ
セッサおよびN重スーパースカラー・プロセッサととも
に使用するための高速レジスタ・ファイルが提供され
る。高速レジスタ・ファイルは、汎用レジスタ(GP
R)ビルディング・ブロックの選択した個数のコピーを
含む。GPRビルディング・ブロックは、レジスタの少
なくとも2個のインタリーブされたサブバンクを含む。
各サブバンクは、N個の書込みポートとM個の読取りポ
ートを含む。サブバンクは、書込みポートによってイン
タリーブされ、かつインタリーブされない読取りポート
を有する。
セッサおよびN重スーパースカラー・プロセッサととも
に使用するための高速レジスタ・ファイルが提供され
る。高速レジスタ・ファイルは、汎用レジスタ(GP
R)ビルディング・ブロックの選択した個数のコピーを
含む。GPRビルディング・ブロックは、レジスタの少
なくとも2個のインタリーブされたサブバンクを含む。
各サブバンクは、N個の書込みポートとM個の読取りポ
ートを含む。サブバンクは、書込みポートによってイン
タリーブされ、かつインタリーブされない読取りポート
を有する。
【0005】
【発明の実施の形態】次に図面を参照すると、図1は、
全体的に参照記号50で示した本発明による28ポート
汎用レジスタ(GPR)ファイル論理ビルディング・ブ
ロックを示す。本発明の一特徴によれば、書込みポート
のインタリービング、具体的には、書込みポートから見
てレジスタの偶数サブバンク内および奇数サブバンク内
への書込みポートのインタリービングが使用される。3
2列のGPRレジスタ・ファイル・ビルディング・ブロ
ック50では、合計16個の使用可能な書込みポートと
合計12個の使用可能な読取りポートが実現される。
全体的に参照記号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個の物理読取りポートを含む。
ク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命令が緊密に符
号化されている場合、各命令パーセルは、永久的に割り
当てられた偶数(偶数パーセル)または奇数のターゲッ
ト・オペランド・レジスタ・ファイル・ポートを有し、
したがってレジスタ・アドレスの最終ビットを命令内で
符号化する必要がなくなる。
ジスタ・ファイル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個のコピーの全領域を物理的に
走査しなければならないことである。
の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個の追加の書込みポー
トが必要なので、実用的ではない。
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のどちらかに制限されるようにする。
的に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からの結果を
見る必要がある場合、またはその逆の場合、コンパイラ
は、レジスタ移動命動作をスケジュールし、かつレジス
タ参照を適切にスケジュールしてこれによるパイプの停
止が完全に回避されるようにする。
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個のサイクル・パスであるなら、バス遅延はわずかし
か変化しない。
含む、全体的に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回の書込
みが可能な論理レジスタ・ファイルをもたらす。
論理ビルディング・ブロック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に印加される。
ディング・ブロック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パイプへの高速読取りポートを
提供する。
徴を示す。各レジスタ・ファイル・コピー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から読取
りポートへの例示的接続を示す。
論理ビルディング・ブロック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つの間に、例示
的接続線が示されている。
ル論理ビルディング・ブロック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倍の
ワイヤを備えるデコード/制御域との間に、例示的ワイ
ヤが示されている。
セッサ・ユニットの例示的レイアウトを示す概略図であ
る。図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)に記載の高速レジスタ・フ
ァイル。
グ・ブロックと、前記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)ファイル物理ビルディング・ブロックを示す
ブロック図である。
(GPR)ファイル物理ビルディング・ブロックを示す
ブロック図である。
【図2】図1の28ポート論理GPRファイル論理ビル
ディング・ブロックの4個のコピーを含む64ポート・
レジスタ・ファイルを示すブロック図である。
ディング・ブロックの4個のコピーを含む64ポート・
レジスタ・ファイルを示すブロック図である。
【図3】図1のGPRファイル・ビルディング・ブロッ
クを使用した書込みポート区分化配置を示すブロック図
である。
クを使用した書込みポート区分化配置を示すブロック図
である。
【図4】図1のGPRファイル・ビルディング・ブロッ
クを使用した、本発明の他の縮小された書込みポート区
分化レジスタ・ファイル配置を示すブロック図である。
クを使用した、本発明の他の縮小された書込みポート区
分化レジスタ・ファイル配置を示すブロック図である。
【図5】図4の64ポート・レジスタ・ファイルを含む
超長ワード命令(VLIW)プロセッサ・ユニットを示
すブロック図である。
超長ワード命令(VLIW)プロセッサ・ユニットを示
すブロック図である。
【図6】図1の28ポート・レジスタ・ファイル・ビル
ディング・ブロックの4個のコピーを含む72ポート・
レジスタ・ファイルを示すブロック図である。
ディング・ブロックの4個のコピーを含む72ポート・
レジスタ・ファイルを示すブロック図である。
【図7】図1のレジスタ・ファイル・ビルディング・ブ
ロックのセルをアドレス・デコードおよび演算論理装置
(ALU)加算器とともに示す概略図である。
ロックのセルをアドレス・デコードおよび演算論理装置
(ALU)加算器とともに示す概略図である。
【図8】図1のGPRファイル・ビルディング・ブロッ
クの本発明による可変性能読取りアクセスを示す概略図
である。
クの本発明による可変性能読取りアクセスを示す概略図
である。
【図9】図1(ビット0)のGPRファイル・ビルディ
ング・ブロックの例示的レイアウトである。
ング・ブロックの例示的レイアウトである。
【図10】本発明による代替読取りポートのレイアウト
を示す、図1(ビット0)のGPRファイル・ビルディ
ング・ブロックの他の例示的レイアウトである。
を示す、図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 バイパス選択機構
ロック 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】汎用レジスタ(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〜1
5が前記4個のコピーのうちの他の2個に書き込むこと
を特徴とする、請求項4に記載の高速レジスタ・ファイ
ル。 - 【請求項6】前記GPRビルディング・ブロックを画定
する前記レジスタの前記少なくとも2個のインタリーブ
されたサブバンクの前記M個の読取りポートが互いに論
理和されて、前記GPRビルディング・ブロックにM個
の読取りポートを提供することを特徴とする、請求項1
に記載の高速レジスタ・ファイル。 - 【請求項7】前記汎用レジスタ(GPR)ビルディング
・ブロックが前記M個の読取りポートを含み、前記コピ
ーの前記選択した個数が4個であり、合計M×4個の読
取りポートを提供することを特徴とする、請求項1に記
載の高速レジスタ・ファイル。 - 【請求項8】前記M個の読取りポートが12個であり、
合計48個の読取りポートを提供することを特徴とす
る、請求項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個のコピーすべてにC
ACHEロード書込みを行うためにCACHEメモリに
結合されることを特徴とする、請求項10に記載の高速
レジスタ・ファイル。 - 【請求項12】前記VLIWプロセッサが16個のパイ
プライン0〜15を含み、前記選択したコピーの個数が
コピー1、コピー2、コピー3、コピー4の4個であ
り、前記コピー1とコピー2が前記パイプライン0〜7
に接続され、前記コピー3とコピー4が前記パイプライ
ン8〜15に接続されることを特徴とする、請求項1に
記載の高速レジスタ・ファイル。 - 【請求項13】前記コピーがそれぞれ、8個の書込みポ
ートによって前記パイプラインに接続されることを特徴
とする、請求項12に記載の高速レジスタ・ファイル。 - 【請求項14】前記M個の前記読取りポートが、ライト
・スルー・ポートと非ライト・スルー・ポートの両方を
含むことを特徴とする、請求項1に記載の高速レジスタ
・ファイル。
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011238271A (ja) * | 2004-07-13 | 2011-11-24 | Nvidia Corp | 低ポート数メモリーを用いたマルチポートメモリーのシミュレート |
Families Citing this family (64)
| 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)
| 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 |
-
1995
- 1995-06-02 US US08/459,490 patent/US5644780A/en not_active Expired - Fee Related
- 1995-10-07 TW TW084110575A patent/TW289103B/zh active
-
1996
- 1996-05-07 CN CN96106203A patent/CN1081359C/zh not_active Expired - Fee Related
- 1996-05-07 EP EP96480056A patent/EP0745933A3/en not_active Withdrawn
- 1996-05-18 KR KR1019960016802A patent/KR100195661B1/ko not_active Expired - Fee Related
- 1996-05-22 JP JP12669996A patent/JP3177156B2/ja not_active Expired - Fee Related
Cited By (1)
| 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 |