JPH0844565A - レジスタファイル装置及びレジスタファイルアクセス方法 - Google Patents
レジスタファイル装置及びレジスタファイルアクセス方法Info
- Publication number
- JPH0844565A JPH0844565A JP7025821A JP2582195A JPH0844565A JP H0844565 A JPH0844565 A JP H0844565A JP 7025821 A JP7025821 A JP 7025821A JP 2582195 A JP2582195 A JP 2582195A JP H0844565 A JPH0844565 A JP H0844565A
- Authority
- JP
- Japan
- Prior art keywords
- window
- register
- registers
- write
- read
- 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
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000008569 process Effects 0.000 claims abstract description 5
- 210000004027 cell Anatomy 0.000 description 38
- 239000000872 buffer Substances 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 210000000352 storage cell Anatomy 0.000 description 7
- 238000012937 correction Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 101001084254 Homo sapiens Peptidyl-tRNA hydrolase 2, mitochondrial Proteins 0.000 description 3
- 102100030867 Peptidyl-tRNA hydrolase 2, mitochondrial Human genes 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- YCLAMANSVUJYPT-UHFFFAOYSA-L aluminum chloride hydroxide hydrate Chemical compound O.[OH-].[Al+3].[Cl-] YCLAMANSVUJYPT-UHFFFAOYSA-L 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F9/30138—Extension of register space, e.g. register cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
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)
Abstract
ファイル方法及びその装置。 【構成】 レジスタファイルは複数のレジスタから形成
されている。レジスタは複数の論理ウィンドウにグルー
プ化されている。ウィンドウ選択論理は論理ウィンドウ
の中から選択し、それにより、任意の時点でアクセスを
選択された論理ウィンドウに制限する。
Description
関し、特に、マイクロプロセッサにおいてレジスタファ
イルをアクセスするための論理演算装置に関わる装置及
び方法に関する。
置(ALU)と、1つのレジスタファイルとして編成さ
れる複数のレジスタとを含む。演算命令、論理命令又は
ロード/ストア命令などのいくつかの命令によって、A
LUはレジスタファイル中の1つ又は複数のレジスタか
らデータを読取り、その命令により定義されている演算
を実行し、次にその結果をレジスタファイル中の1つ又
は複数の指定のレジスタにライトバックする。このシー
ケンスは実質的には命令ごとに起こるので、システムの
総合的なデータ処理速度を考える上でレジスタファイル
のアクセス時間は最も重要な問題である。
スタアクセス回路のブロック線図が示されている。レジ
スタアクセスブロック線図300はALU310と、レ
ジスタメモリアレイ330と、仮想/物理アドレス変換
器320と、読取りデータ経路340と、書込みデータ
経路350とを含む。読取りデータ経路340と書込み
データ経路350はALU310と、レジスタメモリア
レイ330とにそれぞれ結合している。
リアレイ330は本発明の譲受人であるSun Mic
rosystems,Inc.が開発したSPARCマ
イクロプロセッサのシリーズの中で使用されているよう
なウィンドウ形レジスタアレイである。SPARCシリ
ーズの様々なマイクロプロセッサには、40個から52
0個までのレジスタがある。全てのSPARCマイクロ
プロセッサは共通のレジスタファイル編成を共用してい
る。全レジスタのうち8つは大域レジスタとして専用の
レジスタである。残るレジスタは各16個よりなるレジ
スタセットにグループ分けされている。各セットに含ま
れる16個のレジスタのうち8つはLOCALレジスタ
として指定され、8つはOUTレジスタとして指定され
ている。レジスタセットはさらに複数のウィンドウに編
成されている。各ウィンドウは8つの大域レジスタと、
8つのINレジスタと、8つのLOCALレジスタと、
8つのOUTレジスタとを含む。ウィンドウは、1つの
ウィンドウのOUTレジスタが隣接ウィンドウのINレ
ジスタと物理的に同一のレジスタであるように配列され
ている。2つの隣接ウィンドウが共用する共通レジスタ
は異なる仮想アドレスを有するが、実際にはレジスタメ
モリアレイ中の物理アドレスは共通である。さらに、ど
のウィンドウも同じ組の大域レジスタを共用する。従っ
て、物理レジスタの数は仮想レジスタの数より少なくな
る。この件に関する詳細については、カリフォルニア州
メンロパークのSPARC Internationa
lより入手可能であるSPARC Architect
ure Monualを参照。
ると、個々のレジスタ20(1) から20(m) はマイクロ
プロセッサチップにトップダウン方式でSRAM配列さ
れるのが典型的である。各レジスタ20(1) から20
(m) は(n)ビット幅であり、(n)個のメモリセルを
含む。ビット線22(1)〜22(n)はメモリアレイの高さ
に沿って伸びている。各レジスタ20(1) から20(m)
からの1つのセルは特定のビット線に結合しており、そ
の特定のビット線を同様の位置にあるメモリセルと互い
に共用し合う。すなわち、たとえば、各レジスタ20
(1) から20(m) からの第5のメモリセルはビット線2
2(5) に結合しているのである。
330は図1には1つの読取りポートと、1つの書込み
ポートのみを有するものとして示されている。ところ
が、典型的には、LAU310は命令ごとに2つ(以
上)のデータ語をレジスタメモリアレイ330から読取
る。ALU310がスーパスカラプロセッサである場
合、ALUは一度に2つ以上の命令を実行することが可
能であるので、この能力を支援するために、レジスタメ
モリアレイ330は典型的にはいくつかの読取りポート
と、いくつかの書込みポートとを有する。さらに、AL
U310がパイプライン化されている場合、すなわち、
同時にいくつかの命令の異なる部分について動作する場
合には、いずれかの任意の時点で、ALU310が読取
っているレジスタのウィンドウはALU310が書込ん
でいるレジスタの同じウィンドウではないということに
もなるであろう。従って、パイプライン化プロセッサに
おけるいずれかの任意の時点で、レジスタメモリアレイ
330からの実行パイプラインの開始時に1つの命令に
関わる入力を読取るための現在ウィンドウポインタは、
メモリアレイ330への実行パイプラインの終了時に命
令の結果を書込むための現在ウィンドウとは異なる値を
有することもありうるだろう。
ンドウ15とアドレス指定された16個のウィンドウが
ある。各々のウィンドウは、32個のレジスタをアドレ
ス指定できる。レジスタはプログラマにより、現在ウィ
ンドウとは無関係である仮想レジスタ番号を使用してア
ドレス指定される。この実施例においては、8つの大域
レジスタをレジスタ0からレジスタ7としてアドレス指
定する。同様に、8つのOUTレジスタをレジスタ8か
らレジスタ15としてアドレス指定し、8つのLOCA
Lレジスタをレジスタ16からレジスタ23としてアド
レス指定し、8つのINレジスタはレジスタ24からレ
ジスタ31としてアドレス指定する。この実施例のウィ
ンドウは16個であり、また、各々のウィンドウは32
個のレジスタをアドレス指定することができるので、メ
モリアレイ330が512個のレジスタを有していなけ
ればならないことは明白であろう。しかしながら、レジ
スタは重複使用されるため、メモリアレイ330にある
物理レジスタの数は512個より少ない。この例では、
8つの大域レジスタに加えて、ウィンドウ16個分のレ
ジスタ(ウィンドウごとに8つのLOCALレジスタ
と、8つのIN/OUTレジスタがある)があるので、
メモリアレイ330の中の物理レジスタの総数は実際に
は264である。
指定した仮想レジスタ番号からメモリアレイ330中の
物理レジスタ番号への変換を実行する。現在ウィンドウ
番号(すなわち、ウィンドウ0から15)と、そのウィ
ンドウの中における仮想レジスタ番号(すなわち、仮想
レジスタ0から31)とを与えられると、変換器論理3
20は対応する物理レジスタ番号(すなわち、物理レジ
スタ0から264)を与える。尚、16個のウィンドウ
があるので、1つのウィンドウを4ビット数によって指
定できる(24 =16)ことに注意する。さらに、1つ
のウィンドウの中には32個のレジスタがあるので、ウ
ィンドウ内の特定の1つのレジスタを5ビット仮想レジ
スタ番号によって指定できる(25 =32)。また、メ
モリアレイ330には264個の物理レジスタがあるの
で、1つの物理レジスタを9ビットの物理レジスタ番号
によって指定できる(29 =512,512>26
4)。
変換を実行するためにステアリング論理と、加算器とを
使用する。この実施例においては、メモリアレイ330
は初めの8つのレジスタが大域レジスタであるような構
造をもつ。そこで、メモリアレイ330の次の256個
のレジスタは特定ウィンドウ所属レジスタとなる。それ
らの特定ウィンドウ所属レジスタはメモリアレイ330
の中で昇順ウィンドウ番号によってグループ化されると
共に、各ウィンドウの中では昇順仮想レジスタ番号によ
ってさらにグループ化される。この構成では、変換すべ
き仮想レジスタ番号が大域レジスタの仮想レジスタ番号
(すなわち、0から7)であるならば、変換論理320
が与える物理レジスタ番号は仮想レジスタ番号と同じに
なる。これに対し、変換すべき仮想レジスタ番号が特定
ウィンドウ所属レジスタの仮想レジスタ番号である場合
には、変換器320が実行する仮想/物理レジスタ変換
計算はより複雑になる。まず、変換器320は現在ウィ
ンドウポインタを左へ場所4つだけシフトし、次に、シ
フト後の現在ウィンドウポインタを変換すべき仮想レジ
スタ番号に加算する。最後に、変換器320はその結果
の和を取り上げ、モジュロ256演算を実行して、変換
すべき仮想レジスタ番号に対応する物理レジスタ番号を
得る。尚、256はウィンドウの数(16)に各ウィン
ドウ中の実際の物理レジスタの数(16)を乗算した数
である。ウィンドウの数又は1つのウィンドウの中のレ
ジスタの数が異なる実施例においては、モジュロ演算の
基底を相応して調整することになるであろう。
ジスタを読取るために、ALU310は読取るべきレジ
スタのウィンドウと、読取るべきレジスタの仮想レジス
タ番号とを現在ウィンドウポインタ(読取り)バス36
5及び仮想レジスタ番号(読取り)バス360を各々使
用して、変換器論理320に指定する。次に、変換器論
理320は読取るべきレジスタのウィンドウと、読取る
べきレジスタの仮想レジスタ番号とを物理レジスタ番号
に変換し、この物理レジスタ番号を物理レジスタ番号
(読取り)バス370を使用してメモリアレイ330に
指定する。読取るべき物理レジスタ番号を受けると、ア
クセスすべきレジスタの個々のメモリセルのデータ内容
が各々のビット線22(1)から22(n)に置かれ、読取り
データ経路340によってALU310へ転送される。
スタに書込むときには、ALUである機能ユニット31
0は現在ウィンドウポインタ(書込み)バス385及び
仮想レジスタ番号(書込み)バス380を使用して、書
込むべきウィンドウと、書込むべきレジスタの仮想レジ
スタ番号とを変換器論理320にそれぞれ指定する。次
に、変換器論理320は書込むべきウィンドウとレジス
タの仮想レジスタ番号を物理レジスタ番号に変換し、こ
のレジスタを物理レジスタ番号(書込み)バス390を
使用してメモリアレイ330に指定する。書込むべきレ
ジスタの物理レジスタ番号を受けると、メモリアレイ3
30は機能ユニット310から書込みデータ経路350
を介してデータの語を受ける。書込むべきこのデータの
語をビット線22(1)から22(n)に置いて、次に、指定
のレジスタのメモリセルに記憶させる。
成に関連して、いくつかの問題がある。仮想/物理変換
の時間とレジスタメモリアレイ330のアクセス時間は
非常に長い。これら2つの要因はコンピュータシステム
のプロセッサ処理能力を著しくそこなわせる。
むとき、変換器論理320が現在ウィンドウポインタと
仮想レジスタ番号を物理レジスタ番号に変換している間
に必ず遅延が起こる。典型的な命令は読取るべき2つの
レジスタと、書込むべき1つのレジスタとを指定するの
で、典型的には命令ごとに3回の変換が要求され、各々
の変換はそれ独自の遅延を導入する。
から22(n)は非常に長く、各ビット線に結合するセル
の数の関係上、その容量性負荷は大きい。ビット線の容
量性負荷が大きいほど、特定のレジスタから読取るのに
要する時間又は特定のレジスタに書込むのに要する時間
は長くなる。さらに、ビット線の容量性負荷が大きいほ
ど、書込み動作中にレジスタへデータを駆動するために
要求されるドライバは大きくなり、また、読取り動作中
にレジスタからのデータ出力を感知するために要求され
るセンス増幅器は大きくなる。
規なレジスタウィンドウファイル方法とその装置を提供
するのが本発明の課題である。
のレジスタから形成されている。それらのレジスタは複
数の論理ウィンドウにグループ化されている。ウィンド
ウ選択論理は論理ウィンドウの中から選択し、それによ
り、任意の時点における選択された論理ウィンドウへの
アクセスを制限する。
限定するので、個々のレジスタの仮想レジスタ番号を指
定することにより、そのレジスタを選択できる。従っ
て、レジスタをアクセスするときに仮想アドレス番号か
ら物理アドレス番号に変換する必要はない。すなわち、
従来の技術の仮想レジスタ番号/物理レジスタ番号変換
論理は不要になるのである。従って、以前は変換論理が
占めていた集積回路チップ上の領域は必要ではなくな
る。さらに、変換論理により命令ごとに導入される変換
遅延も排除される。
の他のレジスタと読取り線及び書込み線を共用するだけ
である。従って、レジスタファイルの各ビット線と関連
する容量性負荷は、各々のレジスタがレジスタファイル
の1つおきのレジスタとビット線を共用していた従来の
技術の容量性負荷より著しく小さい。単一のウィンドウ
のレジスタの中からのみ選択を実行するので、レジスタ
ファイルにデータを書込むとき及びレジスタファイルか
らデータを読取るときにそれぞれ必要とされるドライバ
とセンス増幅器はより小型で、それほど強力でないもの
で良い。本発明の方法及び装置の目的、特徴及び利点は
以下の本発明の詳細な説明から明白になるであろう。
のみを読取り可能とし且つ任意の時点で唯一つのウィン
ドウのレジスタのみに書込み可能にするという利点をも
つウィンドウ形レジスタファイルを実現する方法及び装
置を開示する。このようにすると、仮想索引番号を使用
してレジスタを直接にアドレス指定することができ、各
メモリセルは相対的に短い読取り線と書込み線を有す
る。従って、レジスタファイルのレジスタに対するアク
セスは従来の技術の類似のサイズのレジスタファイルの
場合より速い。
ために、説明の便宜上、特定の数、材料及び構成を挙げ
る。しかしながら、それらの特定の詳細がなくとも本発
明を実施できることは当業者には明白であろう。別の場
合には、本発明を無用にわかりにくくしないために、周
知のシステムを概略図又はブロック線図の形態で示す。
つのウィンドウのレジスタだけをアクセスするためのセ
レクタの使用を示している。図2では、大域レジスタ4
05と、非大域レジスタ(420,425,430,4
35,480,485,490,495など)とは一体
となってウィンドウ形レジスタファイルを形成する。簡
潔を期するため、図2に示す実施例においては、ウィン
ドウ形レジスタファイルは1つの読取りポートと、1つ
の書込みポートのみを有する。
は、物理的には、大域レジスタ405がまとまって位置
し且つ非大域レジスタもまとまって位置しているように
グループ化されている。さらに、非大域レジスタは物理
的にはウィンドウによってグループ化されており、各々
のウィンドウの中では、1つのウィンドウのLOCAL
レジスタがまとまって位置し且つそのウィンドウのOU
Tレジスタもまとまって位置しているようにグループ化
されている。さらに、ウィンドウ0を除いて、ウィンド
ウのLOCALレジスタは物理的にはそのウィンドウの
OUTレジスタと、論理的に先行するウィンドウのOU
Tレジスタとの間に「はさまって」いる。
レジスタは物理的には論理的に先行するウィンドウのO
UTレジスタと同じである。従って、図2の構成では、
各ウィンドウのINレジスタと、LOCALレジスタ
と、OUTレジスタとは、ウィンドウ0を除いて、物理
的にはまとまってグループ化されている。たとえば、ウ
ィンドウ0のOUTレジスタ425はウィンドウ1のI
Nレジスタである。そこで、この図にはINレジスタは
示されていない。従って、ウィンドウ1の非大域レジス
タはウィンドウ0のOUTレジスタ425(すなわち、
ウィンドウ1のINレジスタ)と、ウィンドウ1のLO
CALレジスタ430と、ウィンドウ1のOUTレジス
タ435とにより形成されることになる。
ドウが論理的には円形の構成を成して配列されている
が、物理的には矩形アレイとして表現されることであ
る。従って、ウィンドウ0は論理的にはウィンドウ15
に隣接しているのであるが、それらのウィンドウの間に
は物理的不連続が存在している。そのため、ウィンドウ
15のOUTレジスタ495は実際にはウィンドウ0の
INレジスタであるが、ウィンドウ15のOUTレジス
タ495を物理的にウィンドウ0のLOCALレジスタ
420と、ウィンドウ15のLOCALレジスタ490
の双方に隣接して配置することはできない。
あり且つ各ウィンドウのレジスタは8つの大域レジスタ
と、8つのLOCALレジスタと、8つのINレジスタ
と、8つのOUTレジスタとにより形成されているよう
な実施例を提示している。別の実施例においては、ウィ
ンドウの数と、1つのウィンドウの中の各々の型のレジ
スタの数は図2に提示した数とは異なる。実際、代替実
施例の1つでは、大域レジスタは存在せず、別の実施例
にはLOCALレジスタがなく、さらに別の実施例には
IN/OUTレジスタがない。さらに、交代する大域レ
ジスタの組があり、非大域レジスタのウィンドウの中か
ら選択するために使用される方式に類似する方式で特定
の1組の大域レジスタを選択するような実施例がある。
また、その時点で選択されていない全てのウィンドウの
レジスタセットをエネルギー節約用パワーダウンモード
に置く実施例もある。しかしながら、それら全ての実施
例を統合する概念がある。この概念は、任意の時点でア
クセスできるレジスタの数を利用可能なレジスタの総数
のうちの1サブセットに制限することにより個々のレジ
スタに対するアクセスをスピードアップする能力であ
る。
のレジスタのウィンドウを含んでいるが、任意の時点で
読取られるレジスタのウィンドウは唯一つ(すなわち、
現在読取りウィンドウ)であり、任意の時点で書込まれ
るレジスタのウィンドウも唯一つ(すなわち、現在書込
みウィンドウ)である。任意の時点でアクセスできるレ
ジスタの数は少なくなっており、また、任意の時点でア
クセスできるレジスタの大部分は物理的にまとまってグ
ループ化されているので、レジスタをアクセスするため
に使用される線路を短縮することができ、従って、従来
の構成で見られたより容量性負荷を少なくすることがで
きる。そのため、本発明のレジスタファイルのレジスタ
は同じ数のレジスタを有する従来の技術のレジスタファ
イルのレジスタと比較してより高速でアクセス可能であ
る。
スタは現在読取りウィンドウに属し、書込み中であるレ
ジスタは現在書込みウィンドウに属している。従って、
現在読取りウィンドウと現在書込みウィンドウをウィン
ドウ選択論理に対して暗示することにより、1回のアク
セスで指定される物理レジスタ番号をそのアクセスを発
生させる命令において指定される仮想レジスタ番号と同
一にすることができる。その結果、ウィンドウ及び仮想
レジスタの番号を物理レジスタ番号に変換する過程が省
略されるので、レジスタへのアクセスは従来の技術と比
べて速くなる。
ァイルに書込むべきデータ語はDATA WORD I
N510としてバス515を介して書込みレジスタマル
チプレクサ(mux)525に提示される。ウィンドウ
レジスタmux525の各々の入力端子と出力端子は、
1語幅である。書込みレジスタmux525は、1つの
入力端子と、1つのウィンドウの中に存在している論理
レジスタの数と同じ数の出力端子とを有するマルチプレ
クサである。制御バスにアサートされた信号−仮想レジ
スタ番号(書込み)520は書込みレジスタmux52
5の出力を選択する。各ウィンドウが32個の論理レジ
スタを有する実施例では、仮想レジスタ番号(書込み)
520は書込むべきレジスタの5ビット仮想レジスタ番
号を書込みレジスタmux525に提供する5ビット
(25 =32)制御線である。この実施例において、大
域レジスタが8つある場合、仮想レジスタ番号(書込
み)制御線520にアサートされる0から7の値はDA
TA WORD IN510を出力バス529を介して
大域レジスタ405のうちの適切なレジスタに提示させ
る。ところが、仮想レジスタ番号(書込み)制御線52
0に8から31の値がアサートされた場合には、DAT
A WORD IN510は24個の入力端子のうちの
適切な1つの入力端子を介して書込みウィンドウmux
535に提示される。
ィンドウの非大域レジスタごとに1つずつの入力端子を
有する。概念の上では、書込みウィンドウmux535
の入力端子ごとに、ウィンドウの数と同じ数の出力端子
が存在する。すなわち、ウィンドウが16個あり且つ各
々のウィンドウがいずれも24個の非大域レジスタを有
するような実施例では、書込みウィンドウmux535
は24個の入力端子と、概念上は384個(ウィンドウ
の数16×ウィンドウごとの非大域レジスタの数24=
384)の出力端子とを有することになる。しかしなが
ら、実際には、1つのウィンドウのINレジスタの数は
物理的には論理的に先行しているウィンドウのOUTレ
ジスタの数と同じであるので、それらの出力端子を組合
わせることができる。従って、1つのウィンドウの中に
24個の非大域レジスタがあり且つそれらのレジスタが
8つのINレジスタと、8つのLOCALレジスタと、
8つのOUTレジスタとに分割されているような実施例
においては、書込みウィンドウmux535は実際には
256個(ウィンドウの数16×ウィンドウごとの(L
OCALレジスタの数8+IN/OUTレジスタの数
8)=256)の出力端子しかもたない。
タ(書込み)530は、書込みウィンドウmux535
に対する各々の入力が現在書込みウィンドウについて適
切な出力端子へチャネリングされるように書込みウィン
ドウmux535を制御する。すなわち、16個のウィ
ンドウがある先の実施例では、現在ウィンドウポインタ
(書込み)530はそれら16個のウィンドウの中から
選択するために使用される4ビット信号となる。たとえ
ば、現在書込みウィンドウがウィンドウ3である場合、
書込みウィンドウmux535はその入力のうち8つを
ウィンドウ3の8つのOUTレジスタへチャネリング
し、入力のうち8つをウィンドウ3の8つのLOCAL
レジスタへチャネリングすると共に、入力のうち8つを
論理的に先行しているウィンドウ(すなわち、ウィンド
ウ2)のOUTレジスタへチャネリングする。次に、論
理的に先行するウィンドウの8つのOUTレジスタを現
在書込みウィンドウの8つのINレジスタとしてアドレ
ス指定する。現在書込みウィンドウがSAVE指令の実
行によって論理的に次に続くウィンドウ(すなわち、ウ
ィンドウ4)に変更されるか、あるいは、RESTOR
E指令の実行によって論理的に先行するウィンドウ(す
なわち、ウィンドウ2)に変更されるまで、書込みウィ
ンドウmux535はウィンドウ3にセットされたまま
である。
のレジスタからの選択は書込み時の選択に類似している
が、書込み時に対しては鏡像関係となっている。制御信
号、すなわち現在ウィンドウポインタ(読取り)560
は、読取りウィンドウmux565に対して、制御信
号、すなわち現在ウィンドウポインタ(書込み)530
が書込みウィンドウmux535に対して示すのと同様
の制御機能を有する。読取りウィンドウmux565は
書込みウィンドウmux535の出力端子540と同じ
数の入力端子550を有する。さらに、読取りウィンド
ウmux565は書込みウィンドウmux535の入力
端子528と同じ数の出力端子567を有する。すなわ
ち、書込みウィンドウmux535は入力を現在書込み
ウィンドウに基づいて非大域レジスタ410のいくつか
のレジスタの中の1つへファンアウトするために使用さ
れ、読取りウィンドウmux565は現在読取りウィン
ドウに基づいて非大域レジスタ410のいくつかのレジ
スタの中の1つから出力を選択するために使用されるの
である。
取り)570は読取りレジスタmux575に対して、
制御信号、すなわち仮想レジスタ番号(書込み)520
が書込みレジスタmux525に対して示すのと同様の
制御機能を有する。読取りレジスタmux575は書込
みレジスタmux525の出力端子(529及び52
8)と同じ数の入力端子(567及び555)を有す
る。さらに、読取りレジスタmux575は単一の出力
端子580を有し、書込みレジスタmux525は単一
の入力端子515を有する。すなわち、書込みレジスタ
mux525は単一の入力を仮想レジスタ番号(書込
み)520に基づいて1つのウィンドウのいくつかのレ
ジスタの中の1つへファンアウトするために使用され、
読取りレジスタmux575は仮想レジスタ番号(読取
り)570に基づいてウィンドウのいくつかのレジスタ
の中の1つから単一の出力を選択するために使用される
のである。
ドウによってグループ化されるような実施例を示してい
るが、異なる方式でレジスタをグループ化することは可
能である。別の実施例では、どのウィンドウの類似のレ
ジスタも全て物理的にまとまってグループ化されるよう
に非大域レジスタを配列する。すなわち、たとえば、各
ウィンドウの第1のLOCALレジスタの組の後には各
ウィンドウの次のLOCALレジスタの組が必ず続き、
この配列は各ウィンドウの最後のOUTレジスタの組か
ら構成されるレジスタ群に至るまで続いて行くであろ
う。このようなレジスタの交互編成によって、どのウィ
ンドウの類似のレジスタの間でも読取り線と書込み線を
共用できると共に、共用される線ごとに最小限の長さの
線路を使用することができる。
る読取り線と書込み線の共用を示す。図3は、共用読取
り線に対して複数の読取りポートが設けられていること
と、共用書込み線に対して複数の書込みポートが設けら
れていることをさらに示している。図3は、図2を大幅
に簡略化した構成であり、ウィンドウが3つしかなく各
々のウィンドウは単一の1ビットレジスタから構成され
ている。図3では、バッファ・インバータ対610及び
615は一体となって、ウィンドウ0に関わる1ビット
レジスタである1ビットセルを形成している。同様に、
バッファ・インバータ対620及び625はウィンドウ
1に関わる1ビットレジスタである1ビットセルを形成
し、バッファ・インバータ対630及び635は一体と
なって、ウィンドウ2に関わる1ビットレジスタである
1ビットセルを形成している。
幅器として動作し、共用読取り線695により各々の1
ビットセルに結合されている。詳細にいえば、ウィンド
ウ0に関わる(バッファ及びインバータ610及び61
5により形成される)1ビットセルは、トランジスタ6
40により共用読取り線695に結合されている。現在
読取りウィンドウがウィンドウ0であるとき、信号RE
AD W0_ENがアサートされて、トランジスタ64
0をターンオンするので、ウィンドウ0に関わる1ビッ
トセルに記憶されているビット値を共用読取り線695
を介してセンス増幅器690に供給することができる。
さらに、ウィンドウ1に関わる(バッファ及びインバー
タ620及び625により形成されている)1ビットセ
ルは、トランジスタ650により共用読取り線695に
結合されている。現在読取りウィンドウがウィンドウ1
であるとき、信号READ W1_ENがアサートさ
れ、トランジスタ650をターンオンするので、ウィン
ドウ1に関わる1ビットセルに記憶されているビット値
を共用読取り線695を介してセンス増幅器690に供
給することができる。最後に、ウィンドウ2に関わる
(バッファ及びインバータ630及び635により形成
されている)1ビットセルは、トランジスタ660によ
り共用読取り線695に結合されている。現在読取りウ
ィンドウがウィンドウ2であるとき、信号READ W
2_ENがアサートされて、トランジスタ660をター
ンオンするので、ウィンドウ2に関わる1ビットセルに
記憶されているビット値を共用読取り線695を介して
センス増幅器690に供給することができる。従って、
特定の時点で唯一つのウィンドウが読取られるという事
実を利用することにより、いくつかのメモリセルの間で
単一の読取り線695を共用することができるのであ
る。尚、センス増幅器690もいくつかのビットセルに
より共用され、それにより、メモリセルごとに別個のセ
ンス増幅器を設ける必要をなくしていることに注意す
る。別の実施例では、RAM編成にビットインタリービ
ングを追加することにより、共用ワイヤ長さをさらに短
縮できる。
一体となって現在読取りウィンドウに関わるデコーダ論
理を形成し、所定の時点でトランジスタ640,650
及び660のうち多くとも1つのトランジスタがイネー
ブルされるように保証する。従って、所定の時点で共用
読取り線695により読取られるのは唯一つのビットセ
ル、すなわち、選択された読取りウィンドウのビットセ
ルのみである。図3においては可能な読取りウィンドウ
は3つだけであるので、現在読取りウィンドウを2ビッ
ト信号(22 =4)として符号化することができる。信
号CRW(2:2)と信号CRW(1:1)は、それぞ
れ、現在読取りウィンドウの最上位ビットと、最下位ビ
ットである。そのため、現在読取りウィンドウが0(2
進値で00)である場合には、(ANDゲート642か
ら出力される)信号READ W0_ENがアサートさ
れ、トランジスタ640がターンオンされることがわか
る。さらに、現在読取りウィンドウが1(2進値で0
1)である場合には、(ANDゲート652から出力さ
れる)信号READ W1_ENがアサートされ、トラ
ンジスタ650がターンオンされる。最後に、現在読取
りウィンドウが2(2進値で10)である場合には、
(ANDゲート662から出力される)信号READ
W2_ENがアサートされ、トランジスタ660がター
ンオンされる。
の読取りポートに結合している。詳細にいえば、センス
増幅器690はトランジスタ680によりREAD P
ORT0に結合され、センス増幅器690はトランジス
タ685によりREAD PORT1に結合されてい
る。すなわち、信号RP0_ENをアサートして、トラ
ンジスタ680をターンオンすることにより、READ
PORT0を介してセンス増幅器690の出力を読取
ることができるのである。他方、信号RP1_ENをア
サートして、トランジスタ685をターンオンすること
により、READPORT1を介してセンス増幅器69
0の出力を読取れる。センス増幅器690にトランジス
タ680及び685と並列に追加のトランジスタを結合
することにより、図3に追加の読取りポートを追加でき
る。現在ウィンドウレジスタは頻繁には変わらないの
で、センス増幅器690の出力端子でレジスタの値、こ
の場合には単一のビットを利用することが可能であり、
その値を読取るための時間はさらに短縮される。
90などのセンス増幅器の使用を要求しないという点を
除いて、読取りと同様の方式で実行される。詳細にいえ
ば、ウィンドウ0に関わる(バッファ及びインバータ6
10及び615により形成されている)1ビットセル
は、トランジスタ645により共用書込み線605に結
合されている。現在書込みウィンドウがウィンドウ0で
あるとき、信号WRITE W0_ENがアサートされ
ると、トランジスタ645がターンオンするので、ウィ
ンドウ0に関わる1ビットセルに共用書込み線605を
介して供給される1ビット値を記憶させることができ
る。さらに、ウィンドウ1に関わる(バッファ及びイン
バータ620及び625により形成されている)1ビッ
トセルは、トランジスタ655により共用書込み線60
5に結合されている。現在書込みウィンドウがウィンド
ウ1であるとき、信号WRITE W1_ENがアサー
トされると、トランジスタ655がターンオンするの
で、ウィンドウ1に関わる1ビットセルに共用書込み線
605を介して供給される1ビット値を記憶することが
可能になる。また、ウィンドウ2に関わる(バッファ及
びインバータ630及び635により形成されている)
1ビットセルはトランジスタ665により共用書込み線
605に結合されている。現在書込みウィンドウがウィ
ンドウ2であるとき、信号WRITE W2_ENがア
サートされると、トランジスタ665をターンオンする
ので、ウィンドウ2に関わる1ビットセルに共用書込み
線605を介して供給される1ビット値を記憶すること
が可能になる。従って、特定の時点で書込まれるウィン
ドウは唯一つであるという事実を利用することにより、
いくつかのメモリセルの間で単一の書込み線605を共
用できるのである。
一体となって現在書込みウィンドウに関わるデコーダ論
理を形成し、所定の時点でトランジスタ645,655
及び665のうち多くとも1つがイネーブルされるよう
に保証する。従って、所定の時点で共用書込み線605
を使用して書込まれるのは唯一つのビットセル、すなわ
ち、選択された書込みウィンドウのビットセルだけであ
る。図3において、可能な書込みウィンドウは3つしか
存在していないので、現在書込みウィンドウを2ビット
信号(22 =4)として符号化することができる。信号
CWW(2:2)と信号CWW(1:1)は、それぞ
れ、現在書込みウィンドウの最上位ビットと、最下位ビ
ットである。そこで、現在書込みウィンドウが0(2進
値で00)であるとき、(ANDゲート647から出力
される)信号WRITE W0_ENがアサートされ、
トランジスタ645がターンオンされることがわかる。
さらに、現在書込みウィンドウが1(2進値で01)で
あるときには、(ANDゲート657から出力される)
信号WRITE W1_ENがアサートされ、トランジ
スタ655がターンオンされる。最後に、現在書込みウ
ィンドウが2(2進値で10であるときには、(AND
ゲート667から出力される)信号WRITEW2_E
Nがアサートされ、トランジスタ665がターンオンさ
れる。
込みポートに結合している。詳細にいえば、共用書込み
線605はトランジスタ670によりWRITE PO
RT0に結合されると共に、トランジスタ675により
WRITE PORT1に結合されている。すなわち、
信号WP0_ENをアサートして、トランジスタ670
をターンオンすることにより、WRITE PORT0
を介する書込みが可能である。他方、信号WP1_EN
をアサートして、トランジスタ675をターンオンする
ことにより、WRITE PORT1を介する書込みが
可能である。共用書込み線605にトランジスタ670
及び675と並列に追加トランジスタを結合することに
より、図3に追加の書込みポートを追加できる。
ルは図2の非大域レジスタに対応していることがわか
る。図3のトランジスタ640,650及び660と、
ANDゲート642,652及び662は図2の読取り
ウィンドウmux565に相当する。図3のトランジス
タ645,655及び665と、ANDゲート647,
657及び667は図2の書込みウィンドウmux53
5に相当する。この対応付けは、選択された読取りウィ
ンドウに基づいて、一度に1つのビットセルしか読取り
できず且つ選択された書込みウィンドウに基づいて、一
度に1つのビットセルしか書込みできないために成立す
るのである。図3には、1つのウィンドウの中の特定の
1つのレジスタを選択するために使用され、従って、図
2の読取りレジスタmux575又は書込みレジスタm
ux525に相当する素子はない。これは、図3がウィ
ンドウごとに単一の1ビットレジスタしかないきわめて
簡略化された構成であるためである。
ンドウがあり、各々のウィンドウは2つのレジスタを有
し且つ各レジスタは2つのビットを記憶する本発明のさ
らに複雑な実施例を示す。ウィンドウの選択及び選択さ
れたウィンドウの中におけるレジスタの選択の概念をき
わだたせるために、図4からは不要な詳細を省略してあ
る。従って、図4においては、バッファ・インバータ対
として1ビットセルを示すのではなく、各々の1ビット
セルはブロック線図の形(すなわち、ブロック710,
720,730,740,750,760,770及び
780として)示されている。さらに、読取りと書込み
は対称であるため、書込み選択論理のみを示した。復号
と多重ポート選択の論理も図4には示されていない。
である。従って、各レジスタは2つの1ビット記憶セル
により形成されており、一方の1ビット記憶セルはレジ
スタの最下位ビット(すなわち、ビット0)を記憶し、
他方の1ビット記憶セルは最上位ビット(すなわち、ビ
ット1)を記憶する。すなわち、ブロック710はウィ
ンドウ0に関わるレジスタ0のビット0を記憶する1ビ
ット記憶セルであり、ブロック730は対応するビット
1を記憶する1ビット記憶セルである。ブロック720
とブロック740は一体となってウィンドウ1のレジス
タ0を形成し、ブロック720はビット0を記憶し、ブ
ロック740はビット1を記憶している。同様に、ブロ
ック750はウィンドウ0に関わるレジスタ1のビット
0を記憶する1ビット記憶セルであり、また、ブロック
770は対応するビット1を記憶する1ビット記憶セル
である。ブロック760とブロック780は一体となっ
てウィンドウ1のレジスタ1を形成し、ブロック760
はビット0を記憶し、ブロック780はビット1を記憶
している。
ル(すなわち、ブロック710,720,730,74
0,750,760,770及び780)は図2の非大
域レジスタ410に相当することがわかる。図4のトラ
ンジスタ715,725,735,745,765,7
75及び785は図2の書込みウィンドウmux535
に相当する。図4のトランジスタ790,792,79
4及び798は図2の書込みレジスタmux525に相
当する。従って、選択された書込みウィンドウと、選択
された書込みウィンドウの中の選択されたレジスタとに
基づいて、一度に1つのレジスタを書込むことしかでき
ない。このことは例によって最も良く示される。
る場合、信号WINDOW0_ENはアサートされるで
あろうが、信号WINDOW1_ENはアサートされな
いであろう。そのため、トランジスタ715,755,
735及び775はターンオンするであろうが、トラン
ジスタ725,765,745及び785はターンオフ
するであろう。ウィンドウ0のレジスタ0に書込むべき
であれば、信号REGISTER0_ENはアサートさ
れるが、信号REGISTER1_ENはアサートされ
ないであろう。その結果、トランジスタ790及び79
2はターンオンし、トランジスタ794及び796はタ
ーンオフするであろう。従って、共用書込み線791の
BIT0値はブロック710に記憶され、共用書込み線
793のBIT1値はブロック730に記憶されるであ
ろう。そこで、ウィンドウ0のレジスタ1に書込むこと
が望まれると、信号REGISTER1_ENはアサー
トされるが、信号REGISTER0_ENはアサート
されないであろう。この結果、トランジスタ794及び
796はターンオンし、トランジスタ790及び792
はターンオフするであろう。従って、共用書込み線79
1のBIT0値はブロック750に記憶され、共用書込
み線793のBIT1値はブロック770に記憶される
であろう。
わった場合、信号WINDOW1_ENはアサートされ
るが、信号WINDOW0_ENはアサートされないで
あろう。従って、トランジスタ725,765,745
及び785はターンオンし、トランジスタ715,75
5,735及び775はターンオフするであろう。ウィ
ンドウ1のレジスタ0に書込むべきであるならば、信号
REGISTER0_ENはアサートされるが、信号R
EGISTER1_ENはアサートされないであろう。
この結果、トランジスタ790及び792はターンオン
し、トランジスタ794及び796はターンオフするで
あろう。従って、共用書込み線791のBIT0値はブ
ロック720に記憶され、共用書込み線793のBIT
1値はブロック740に記憶されるであろう。そこで、
ウィンドウ1のレジスタ1への書込みが望まれたなら
ば、信号REGISTER1_ENはアサートされる
が、信号REGISTER0_ENはアサートされない
であろう。この結果、トランジスタ794及び796は
ターンオンし、トランジスタ790及び792はターン
オフするであろう。従って、共用書込み線791のBI
T0値はブロック760に記憶され、共用書込み線79
3のBIT1値はブロック780に記憶されるであろ
う。
ドウでのみアクセス可能であるので、レジスタはLOC
ALレジスタであるかのように機能する。図5は、1つ
のウィンドウのINレジスタを論理的に先行するウィン
ドウのOUTレジスタとしてアドレス指定する技法を示
す。この図においても、ある1つの時点で活動している
のは1つのウィンドウのレジスタのみであるという意味
で、1つのレジスタを1つのウィンドウのINレジスタ
として処理すると共に、別のウィンドウのOUTレジス
タとして処理する概念をきわ立たせるために、不要な詳
細を省略してある。従って、図5では、1ビットセルを
バッファ・インバータ対として示すのではなく、各々の
1ビットセルをブロック線図の形で(すなわち、ブロッ
ク810,820及び830として)示している。さら
に、読取りと書込みは対称であるため、書込み選択論理
のみを示す。復号と多重ポート選択の論理も図5には示
されていない。
なわち、ウィンドウ0,ウィンドウ1及びウィンドウ
2)あり、各々のウィンドウは2つのレジスタ(すなわ
ち、INレジスタ及びOUTレジスタ)を有し、各レジ
スタは1つのビットのみを記憶する。1つのウィンドウ
のINレジスタは論理上先行しているウィンドウのOU
Tレジスタである。図5の実施例のような3つのウィン
ドウを含む例においては、ウィンドウ2は論理の上でウ
ィンドウ0に先行し、ウィンドウ0は論理の上でウィン
ドウ1に先行し、ウィンドウ1は論理の上でウィンドウ
2に先行している。従って、図5では、ブロック810
は現在書込みウィンドウがウィンドウ0であるときはウ
ィンドウ0のINレジスタとして扱われ、現在書込みウ
ィンドウがウィンドウ2であるときにはウィンドウ2の
OUTレジスタとして扱われるのである。さらに、ブロ
ック820は現在書込みウィンドウがウィンドウ1であ
るときはウィンドウ1のINレジスタとして扱われ、現
在書込みウィンドウがウィンドウ0であるときにはウィ
ンドウ0のOUTレジスタとして扱われる。最後に、ブ
ロック830は現在書込みウィンドウがウィンドウ2で
あるときはウィンドウ2のINレジスタとして扱われ、
現在書込みウィンドウがウィンドウ1であるときにはウ
ィンドウ1のOUTレジスタとして扱われる。
がウィンドウ0であれば、信号WINDOW0_ENは
アサートされ、信号WINDOW1_EN及びWIND
OW2_ENはアサートされない。従って、現在書込み
ウィンドウがウィンドウ0であれば、トランジスタ81
3及び827(WINDOW0_ENにより制御され
る)はターンオンし、トランジスタ823及び837
(WINDOW1_ENにより制御される)と、トラン
ジスタ833及び817(WINDOW2_ENにより
制御される)とはターンオフする。したがって現在書込
みウィンドウがウィンドウ0であるとき、信号IN_E
Nをアサートし且つ信号OUT_ENをアサートしない
と、ウィンドウ0のINレジスタをアクセスすることに
なる。すなわち、トランジスタ850(IN_ENによ
り制御される)はターンオンし、トランジスタ840
(OUT_ENにより制御される)はターンオフするの
で、BIT0がどのような値を有していても、その値は
ブロック810に記憶される。これに対し、現在書込み
ウィンドウがウィンドウ0であるときに、信号OUT_
ENをアサートし且つ信号IN_ENをアサートしない
と、ウィンドウ0のOUTレジスタをアクセスすること
になる。すなわち、トランジスタ840(OUT_EN
により制御される)はターンオンし、トランジスタ85
0(IN_ENにより制御される)はターンオフするの
で、BIT0がどのような値を有していても、その値は
ブロック820に記憶される。
ウ1であるときには、信号WINDOW1_ENはアサ
ートされるが、信号WINDOW2_EN及びWIND
OW0_ENはアサートされない。従って、現在書込み
ウィンドウがウィンドウ1であるときには、トランジス
タ823及び837(WINDOW1_ENにより制御
される)はターンオンし、トランジスタ833及び81
7(WINDOW2_ENにより制御される)と、トラ
ンジスタ813及び827(WINDOW0_ENによ
り制御される)とはターンオフする。現在書込みウィン
ドウがウィンドウ1であるときに、信号IN_ENをア
サートし且つ信号OUT_ENをアサートしないと、ウ
ィンドウ1のINレジスタをアクセスする。トランジス
タ850(IN_ENにより制御される)はターンオン
し、トランジスタ840(OUT_ENにより制御され
る)はターンオフする。従って、BIT0がどのような
値を有していても、その値はブロック820に記憶され
る。これに対し、現在書込みウィンドウがウィンドウ1
であるときに、信号OUT_ENをアサートし且つ信号
IN_ENをアサートしないと、ウィンドウ1のOUT
レジスタをアクセスする。すなわち、トランジスタ84
0(OUT_ENにより制御される)はターンオンし、
トランジスタ850(IN_ENにより制御される)は
ターンオフして、BIT0がどのような値を有していて
も、その値はブロック830に記憶される。
ウ2であるときには、信号WINDOW2_ENはアサ
ートされるが、信号WINDOW0_EN及びWIND
OW1_ENはアサートされない。従って、現在書込み
ウィンドウがウィンドウ2であるとき、トランジスタ8
33及び817(WINDOW2_ENにより制御され
る)はターンオンし、トランジスタ813及び827
(WINDOW0_ENにより制御される)と、トラン
ジスタ823及び837(WINDOW1_ENにより
制御される)とはターンオフする。現在書込みウィンド
ウがウィンドウ2であるとき、信号IN_ENをアサー
トし且つ信号OUT_ENをアサートしないと、ウィン
ドウ2のINレジスタをアクセスする。すなわち、トラ
ンジスタ850(IN_ENにより制御される)はター
ンオンし、トランジスタ(OUT_EN)はターンオフ
して、BIT0がどのような値を有していても、その値
はブロック830に記憶される。これに対し、現在書込
みウィンドウがウィンドウ2であるとき、信号OUT_
ENをアサートし且つ信号IN_ENをアサートしない
と、ウィンドウ2のOUTレジスタをアクセスする。す
なわち、トランジスタ840(OUT_ENにより制御
される)はターンオンし、トランジスタ850(IN_
ENにより制御される)はターンオフしてBIT0がど
のような値を有していても、その値はブロック810に
記憶される。
しい実施例及び代替実施例によって説明したが、本発明
を特許請求の範囲の趣旨の範囲内で変形及び変更を伴っ
て実施しうることは当業者には認められるであろう。従
って、明細書及び図面は限定的な意味をもつのではな
く、例示としてみなされるべきである。
ジスタから成るメモリアレイからデータを読取り且つメ
モリアレイにデータを書込む論理演算装置のブロック線
図。
タのウィンドウをアクセスするためのセレクタの使用を
示す図。
るウィンドウのレジスタによる共用と、複数の書込みポ
ートを有する書込み線の異なるウィンドウのレジスタに
よる共用とを示す図。
ィンドウの中における異なるウィンドウの選択とを示す
図。
先行しているウィンドウのOUTレジスタとしてのアク
セスを示す図。
0,435,480,485,490,495…非大域
レジスタ、515…バス、520…仮想レジスタ番号
(書込み)、525…書込みレジスタmux、530…
現在ウィンドウポインタ(書込み)、535…書込みウ
ィンドウmux、560…現在ウィンドウポインタ(読
取り)、565…読取りウィンドウmux、570…仮
想レジスタ番号(読取り)、575…読取りレジスタm
ux。
Claims (13)
- 【請求項1】 複数の論理ウィンドウにグループ化され
ている複数のレジスタと;論理ウィンドウの中から選択
し、それにより、任意の時点でアクセスを第1の選択さ
れた論理ウィンドウに制限する第1のウィンドウ選択論
理とを具備するレジスタファイル装置。 - 【請求項2】 第1の選択された論理ウィンドウのレジ
スタの中から選択する第1のレジスタ選択論理をさらに
具備する請求項1記載の装置。 - 【請求項3】 第1の選択された論理ウィンドウは書込
みによりアクセスされ、装置は、 論理ウィンドウの中から選択し、それにより、任意の時
点でアクセスを第2の選択された論理ウィンドウを制限
する第2のウィンドウ選択論理をさらに具備し、第2の
選択された論理ウィンドウは読取りによりアクセスされ
る請求項1記載の装置。 - 【請求項4】 第1の選択された論理ウィンドウのレジ
スタの中から選択する第1のレジスタ選択論理と;第2
の選択された論理ウィンドウのレジスタの中から選択す
る第2のレジスタ選択論理とをさらに具備する請求項3
記載の装置。 - 【請求項5】 任意の時点でアクセス可能である少なく
とも1つの大域レジスタをさらに具備する請求項1記載
の装置。 - 【請求項6】 一体となってレジスタファイルを形成す
る複数のレジスタを設ける過程と;レジスタを複数の論
理ウィンドウにグループ化する過程と;論理ウィンドウ
の中から選択し、任意の時点でアクセスを第1の選択さ
れた論理ウィンドウに制限する過程とから成るレジスタ
ファイルアクセス方法。 - 【請求項7】 第1の選択された論理ウィンドウのレジ
スタの中から第1のアクセスレジスタを選択する過程を
さらに含む請求項6記載の方法。 - 【請求項8】 第1の選択された論理ウィンドウは書込
みによりアクセスされ、 論理ウィンドウの中から選択し、それにより、任意の時
点でアクセスを第2の選択された論理ウィンドウに制限
する過程をさらに含み、第2の選択された論理ウィンド
ウは読取りによりアクセスされる請求項6記載の方法。 - 【請求項9】 第1の選択された論理ウィンドウのレジ
スタの中から第1のアクセスレジスタを選択する過程
と;第2の選択された論理ウィンドウのレジスタの中か
ら第2のアクセスレジスタを選択する過程とをさらに含
む請求項8記載の方法。 - 【請求項10】 少なくとも1つの大域レジスタを設け
る過程と;大域レジスタを任意の時点で必要に応じてア
クセスする過程とをさらに含む請求項6記載の方法。 - 【請求項11】 複数の論理ウィンドウにグループ化さ
れている複数のレジスタと;論理ウィンドウの中から選
択し、それにより、任意の時点で書込みアクセスを論理
ウィンドウの中の1つの選択された書込みウィンドウに
制限する書込みウィンドウ選択論理と;論理ウィンドウ
の中から選択し、それにより、任意の時点で読取りアク
セスを論理ウィンドウの中の1つの選択された読取りウ
ィンドウに制限する読取りウィンドウ選択論理とを具備
するレジスタファイル装置。 - 【請求項12】 選択された読取りウィンドウのレジス
タの中から読取るべき読取りレジスタを選択する読取り
レジスタ選択論理と;選択された書込みウィンドウのレ
ジスタの中から書込むべき書込みレジスタを選択する書
込みレジスタ選択論理とをさらに具備する請求項11記
載の装置。 - 【請求項13】 選択された読取りウィンドウ及び選択
された書込みウィンドウとは無関係にアクセス可能であ
る少なくとも1つの大域レジスタをさらに具備する請求
項11記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18404494A | 1994-01-21 | 1994-01-21 | |
US184044 | 1994-01-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0844565A true JPH0844565A (ja) | 1996-02-16 |
JP3676411B2 JP3676411B2 (ja) | 2005-07-27 |
Family
ID=22675354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02582195A Expired - Fee Related JP3676411B2 (ja) | 1994-01-21 | 1995-01-23 | レジスタファイル装置及びレジスタファイルアクセス方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5721868A (ja) |
JP (1) | JP3676411B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093110B2 (en) | 2001-12-28 | 2006-08-15 | Fujitsu Limited | Register file in the register window system and controlling method thereof |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890199A (en) * | 1996-10-21 | 1999-03-30 | Ramtron International Corporation | Data processor incorporating a ferroelectric memory array selectably configurable as read/write and read only memory |
US6233599B1 (en) * | 1997-07-10 | 2001-05-15 | International Business Machines Corporation | Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers |
US6105123A (en) * | 1998-03-10 | 2000-08-15 | Hewlett-Packard Company | High speed register file organization for a pipelined computer architecture |
US6134653A (en) * | 1998-04-22 | 2000-10-17 | Transwitch Corp. | RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit |
US6192442B1 (en) * | 1998-04-29 | 2001-02-20 | Intel Corporation | Interrupt controller |
US6175892B1 (en) * | 1998-06-19 | 2001-01-16 | Hitachi America. Ltd. | Registers and methods for accessing registers for use in a single instruction multiple data system |
US7117342B2 (en) * | 1998-12-03 | 2006-10-03 | Sun Microsystems, Inc. | Implicitly derived register specifiers in a processor |
US6343348B1 (en) | 1998-12-03 | 2002-01-29 | Sun Microsystems, Inc. | Apparatus and method for optimizing die utilization and speed performance by register file splitting |
US6718457B2 (en) * | 1998-12-03 | 2004-04-06 | Sun Microsystems, Inc. | Multiple-thread processor for threaded software applications |
US6279100B1 (en) | 1998-12-03 | 2001-08-21 | Sun Microsystems, Inc. | Local stall control method and structure in a microprocessor |
US6615338B1 (en) | 1998-12-03 | 2003-09-02 | Sun Microsystems, Inc. | Clustered architecture in a VLIW processor |
US6205543B1 (en) | 1998-12-03 | 2001-03-20 | Sun Microsystems, Inc. | Efficient handling of a large register file for context switching |
US7114056B2 (en) | 1998-12-03 | 2006-09-26 | Sun Microsystems, Inc. | Local and global register partitioning in a VLIW processor |
US6341347B1 (en) | 1999-05-11 | 2002-01-22 | Sun Microsystems, Inc. | Thread switch logic in a multiple-thread processor |
US6938147B1 (en) | 1999-05-11 | 2005-08-30 | Sun Microsystems, Inc. | Processor with multiple-thread, vertically-threaded pipeline |
US6542991B1 (en) | 1999-05-11 | 2003-04-01 | Sun Microsystems, Inc. | Multiple-thread processor with single-thread interface shared among threads |
US6507862B1 (en) | 1999-05-11 | 2003-01-14 | Sun Microsystems, Inc. | Switching method in a multi-threaded processor |
US6351808B1 (en) | 1999-05-11 | 2002-02-26 | Sun Microsystems, Inc. | Vertically and horizontally threaded processor with multidimensional storage for storing thread data |
US6625634B1 (en) | 1999-10-01 | 2003-09-23 | Sun Microsystems, Inc. | Efficient implementation of multiprecision arithmetic |
US6915356B1 (en) * | 1999-12-07 | 2005-07-05 | Advanced Micro Devices, Inc. | Register addresses optimum access |
US6665793B1 (en) * | 1999-12-28 | 2003-12-16 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for managing access to out-of-frame Registers |
US6320813B1 (en) | 2000-03-02 | 2001-11-20 | Sun Microsystems, Inc. | Decoding of a register file |
US7284092B2 (en) * | 2004-06-24 | 2007-10-16 | International Business Machines Corporation | Digital data processing apparatus having multi-level register file |
KR101927255B1 (ko) * | 2011-12-27 | 2018-12-12 | 한국전자통신연구원 | 레지스터 윈도우 오버플로우/언더플로우 처리 장치 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4777589A (en) * | 1985-06-28 | 1988-10-11 | Hewlett-Packard Company | Direct input/output in a virtual memory system |
US4777588A (en) * | 1985-08-30 | 1988-10-11 | Advanced Micro Devices, Inc. | General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance |
US5159680A (en) * | 1988-07-28 | 1992-10-27 | Sun Microsystems, Inc. | Risc processing unit which selectively isolates register windows by indicating usage of adjacent register windows in status register |
US5083263A (en) * | 1988-07-28 | 1992-01-21 | Sun Microsystems, Inc. | BISC with interconnected register ring and selectively operating portion of the ring as a conventional computer |
JPH02187825A (ja) * | 1989-01-13 | 1990-07-24 | Mitsubishi Electric Corp | コンピュータ |
US5179681A (en) * | 1989-11-16 | 1993-01-12 | Sun Microsystems, Inc. | Method and apparatus for current window cache with switchable address and out cache registers |
US5179682A (en) * | 1990-05-15 | 1993-01-12 | Sun Microsystems, Inc. | Method and apparatus for improved current window cache with switchable address in, out, and local cache registers |
US5226142A (en) * | 1990-11-21 | 1993-07-06 | Ross Technology, Inc. | High performance register file with overlapping windows |
US5438669A (en) * | 1991-11-20 | 1995-08-01 | Hitachi, Ltd. | Data processor with improved loop handling utilizing improved register allocation |
US5437043A (en) * | 1991-11-20 | 1995-07-25 | Hitachi, Ltd. | Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers |
JP2823767B2 (ja) * | 1992-02-03 | 1998-11-11 | 松下電器産業株式会社 | レジスタファイル |
US5440714A (en) * | 1992-12-14 | 1995-08-08 | Industrial Technology Research Institute | Method and system configuration for simplifying the decoding system for access to an register file with overlapping windows |
-
1995
- 1995-01-23 JP JP02582195A patent/JP3676411B2/ja not_active Expired - Fee Related
-
1996
- 1996-07-25 US US08/687,293 patent/US5721868A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093110B2 (en) | 2001-12-28 | 2006-08-15 | Fujitsu Limited | Register file in the register window system and controlling method thereof |
Also Published As
Publication number | Publication date |
---|---|
US5721868A (en) | 1998-02-24 |
JP3676411B2 (ja) | 2005-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0844565A (ja) | レジスタファイル装置及びレジスタファイルアクセス方法 | |
US7663963B2 (en) | Apparatus and method for providing multiple reads/writes using a 2Read/2Write register file array | |
US4654781A (en) | Byte addressable memory for variable length instructions and data | |
JPH05282147A (ja) | レジスタファイル | |
EP0507208A2 (en) | A data processing system with combined static and dynamic masking of information in an operand | |
US7490190B2 (en) | Method and system for local memory addressing in single instruction, multiple data computer system | |
JP2002288038A (ja) | アドレス変換装置および方法 | |
JPH11161547A (ja) | データ処理装置用記憶装置、および記憶場所にアクセスする方法 | |
US5630099A (en) | Non-volatile memory array controller capable of controlling memory banks having variable bit widths | |
JPH07120312B2 (ja) | バッファメモリ制御装置 | |
US5991848A (en) | Computing system accessible to a split line on border of two pages within one cycle | |
JPS63201851A (ja) | バッファ記憶アクセス方法 | |
US6115294A (en) | Method and apparatus for multi-bit register cell | |
GB2108737A (en) | Byte addressable memory for variable length instructions and data | |
US8605098B2 (en) | Memory structure for optimized image processing | |
JP2860655B2 (ja) | 並列命令実行型プロセッサ | |
JP2659886B2 (ja) | プロセッサシステム | |
JPH0285943A (ja) | データ処理装置 | |
JP2954988B2 (ja) | 情報処理装置 | |
JPH06266647A (ja) | アドレスバス拡張装置 | |
JPS6230653B2 (ja) | ||
JPH1124926A (ja) | 情報処理装置 | |
JPS61279933A (ja) | マイクロプログラム制御装置 | |
JPH06337847A (ja) | マルチプロセッサ装置 | |
JPS63313251A (ja) | アドレッシング回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040818 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040907 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20041207 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20041210 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050302 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050329 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050428 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090513 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |