JP3220881B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP3220881B2
JP3220881B2 JP36006792A JP36006792A JP3220881B2 JP 3220881 B2 JP3220881 B2 JP 3220881B2 JP 36006792 A JP36006792 A JP 36006792A JP 36006792 A JP36006792 A JP 36006792A JP 3220881 B2 JP3220881 B2 JP 3220881B2
Authority
JP
Japan
Prior art keywords
register
pointer
queue
physical
logical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP36006792A
Other languages
English (en)
Other versions
JPH06202866A (ja
Inventor
啓明 藤井
泰弘 稲上
茂雄 武内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co Ltd
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 Hitachi Ltd, Hitachi ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP36006792A priority Critical patent/JP3220881B2/ja
Priority to US08/172,170 priority patent/US6049839A/en
Publication of JPH06202866A publication Critical patent/JPH06202866A/ja
Application granted granted Critical
Publication of JP3220881B2 publication Critical patent/JP3220881B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register 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)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のレジスタを備え
る情報処理装置に係り、特に多数のレジスタを利用可能
にして命令実行の高速化を図った情報処理装置に関す
る。
【0002】
【従来の技術】近年のLSI技術の進展にともなって、
演算プロセッサはその演算処理能力を高めてきた。この
ような演算プロセッサは、例えばマイクロプロセッサと
してエンジニアリングワ−クステ−ションに用いること
ができる。あるいは、このような演算プロセッサを多数
用いてマルチプロセッサを構成することもできる。演算
プロセッサの演算処理能力は、その演算プロセッサの動
作周波数の向上や、演算プロセッサ内の並列処理によっ
て比較的容易に向上できる。一方、メモリ性能すなわち
メモリと演算プロセッサ内の演算器との間のデータ転送
能力は、配線遅延やデータ転送路に用いるLSIピン数
の制約からそれほどの向上を望むことができない。この
ため、演算処理能力に比べてデータ転送処理能力が相対
的に低くなるので、データ転送処理能力がボトルネック
になり、演算プロセッサの演算処理能力を最大限に引き
出せなくなる。
【0003】この問題をある程度解決する方法として、
キャッシュメモリの導入が考えられる。しかし、非常に
大きなデータ領域を扱う大規模数値計算のような応用に
とっては、キャッシュメモリはほとんど役に立たない。
そこで、次に考えられる方法が演算プロセッサ内のレジ
スタ数を増やすという方法である。この方法により、例
えばレジスタ数不足から生じる演算の中間結果のメモリ
への退避および回復の作業の頻度が減り、その作業にと
もなう性能低下を防止することができる。ところが、レ
ジスタは演算プロセッサの命令語中にあるレジスタ指定
フィールドにより指定されるため、レジスタ指定フィー
ルドで指定できるレジスタ数がアーキテクチャ上のレジ
スタ数の上限になり、これを越えるレジスタ数を用意し
活用するためには、アーキテクチャ上の何らかの拡張が
必要になる。この種の技術としては、次の3種類が知ら
れている。第1の種類の技術は、従来技術によるプロセ
ッサに、ベクトル処理ユニットを付加した処理系で用い
られるベクトルレジスタである。ベクトルレジスタは、
数百のデータをまとめて格納できる。この処理系は、ベ
クトル命令という命令によりベクトルレジスタの数百の
データを1命令で処理できる。ベクトルレジスタにアク
セスできるのはベクトル命令のみであり、従来の命令か
らはアクセスできない。この種の技術は、例えば(株)
日立製作所のスーパーコンピュータS−820に採用さ
れている。また、この第1の種類の技術の改良技術も1
992年のInternational Confer
ence on SUPERCOMPUTINGにおい
て九州大学の弘中らが”Benchmarking a
Vector−Processor Prototy
pe Based on Multithreaded
Streaming/FIFO Vector(MS
FV) Architecture”の発表の中で提案
している。このMSFV方式に基づくプロセッサでは、
ベクトルレジスタが格納するベクトル長を可変とするこ
とで使い易さの向上を達成し、さらにこのベクトル長を
1としたときにベクトル命令が実質的にスカラ命令(上
記で述べたところの従来命令)となる。第2の種類の技
術は、レジスタ指定フィールドで指定できるレジスタ数
よりも多くのレジスタを演算プロセッサ内部に用意し、
これらのレジスタをレジスタ指定フィールドで指定可能
な数ずつ組にしておき、この組を切り替えながら使用す
るレジスタウインドウと呼ばれる技術である。この種の
技術は、例えば、J.L.HennessyおよびD.
A.Pattersonの共著による”Compute
r Architecture: A Quantit
ative Approach”(Morgan Ka
ufmann Publishers,Inc.(19
90))に記載がある。第3の種類の技術は、レジスタ
指定フィールドを拡大して命令で指定できるレジスタ数
を増やす技術である。
【0004】
【発明が解決しようとする課題】上記第1の種類の技術
に基づく処理系は、従来型のプロセッサにベクトル処理
ユニットを付加し、ベクトル処理ユニットのための命令
を追加するため、従来型のプロセッサのために作られた
プログラムの実行も可能である。そのため、プログラム
互換性面では問題はない。しかし、その実現には非常に
大規模なハードウェアが必要になる。さらに、プログラ
ムのベクトル処理を行なえない部分については、従来技
術によるプロセッサ内で処理が行なわれることになり、
この部分でのレジスタ数不足の解消にはベクトルレジス
タは貢献できない。また、従来技術によるプロセッサで
演算した結果得られる1個のデータ(スカラデータ)を
ベクトル処理ユニットで使用する場合には、従来技術に
よるプロセッサの内部にあるレジスタからベクトル処理
ユニットの内部にあるスカラレジスタへのデータ転送が
必要になり、この処理はオーバヘッドとなる。ただし、
この問題は上記第1の種類の技術の改良技術であるMS
FV方式に基づくプロセッサにおいてはある程度解決で
きるものと考えられる。
【0005】上記第2の種類の技術は、サブルーチン呼
出し時のレジスタ退避や、サブルーチンからの復帰時の
レジスタ回復に必要なメモリアクセスにともなうオーバ
ヘッドの削減を可能としているが、プロセッサ内のレジ
スタ数を増やしたにもかかわらず、ひとつのサブルーチ
ンを実行しているときには、使用可能なレジスタ数は元
のままであるため、計算の中間結果のメモリへの一時的
書き込みや読み出しのためのメモリアクセスを減らすこ
とはできない。そのため、この技術によっては、サブル
ーチン呼出しの多いプログラムについては性能向上が可
能であるが、大規模数値計算のようにサブルーチン呼出
しの頻度が低く、大規模配列の各要素について同一の計
算を繰り返すようなループの実行が実行時間の大部分を
占めるプログラムにおいては性能向上が不可能である。
特に、演算処理の高速化のためにパイプライン演算器を
持つようにした演算プロセッサにおいては、配列計算を
繰り返すループの処理における演算器使用率向上のため
にパイプライン演算器のステージ数(nとする)と同じ
だけのループアンローリング(ソースコードのループ部
分の展開)を行なうことが望ましいが、この場合には配
列要素を格納するためのレジスタ数がアンロ−リングを
行なわない場合のn倍必要になり、ループの1回当りの
実行で使用できるレジスタ数が実質的にレジスタ数のn
分の1になる。上記第2の種類の技術は、先述のとお
り、演算プロセッサ内のレジスタ数をn倍に増やしたに
もかかわらず、ある時点で使用できるレジスタ数は依然
として以前のままであるので、この問題を解決できな
い。
【0006】上記第3の種類の技術においては、命令語
中のレジスタ指定フィールドを拡大するために命令セッ
トの大幅な変更が必要となる。そのため、従来型のプロ
セッサのために作られたプログラムを実行できなくなる
というプログラム互換性面での問題が生じる。
【0007】本発明の目的は、従来アーキテクチャとの
互換性を保った上で、通常の命令からアクセスできる物
理的なレジスタの数を増やし、これを活用させることに
よって大規模な科学技術計算の高速処理を実現する演算
プロセッサを、大規模なハードウェアの追加なく実現す
ることにある。
【0008】
【課題を解決するための手段】上記目的は、ノイマン型
のプロセッサにおいて、命令のレジスタ指定フィールド
で指定できる数より多いレジスタからなるレジスタ群を
設け、レジスタ群は複数の物理レジスタからなる複数の
レジスタキューとして構成し、命令のレジスタ指定フィ
ールドのそれぞれに対応して、そのレジスタ指定フィー
ルドで指定される論理的なレジスタ番号毎に対応するレ
ジスタキューと該レジスタキューから物理レジスタを指
定する物理レジスタ番号生成部を設け、該レジスタ指定
フィールドで指定される論理的なレジスタ番号および、
命令の種類とその命令における該レジスタ指定フィール
ドの位置によって生成されるレジスタへの読み書き制御
信号を用いてレジスタキュー内の物理レジスタを指定す
る手段を用意している。また、前記レジスタ指定フィー
ルドにキュー制御情報を設け、該キュー制御情報の内容
に応じてレジスタキュー内の物理レジスタの指定態用を
変えるようにしている。
【0009】
【作用】命令のレジスタ指定フィールドに論理レジスタ
番号が指定されていると、該論理レジスタ番号に対応す
る物理レジスタ番号生成部に論理レジスタセレクト信
号、読み書き制御信号が供給され、これらの信号に基づ
きレジスタキュー内の物理レジスタが選択される。ま
た、前記レジスタ指定フィールドにキュー制御情報が設
けられていて、キュー制御信号も供給される場合には、
読み出し時と書き込み時で異なる物理レジスタが選択さ
れる。このため、1つの論理レジスタが指定されたと
き、対応するレジスタキューの複数の物理レジスタから
1つの物理レジスタが選択されるため、指定可能なレジ
スタ数より実際に使用可能なレジスタ数を多くすること
ができる。
【0010】
【実施例】本発明の実施例を図によって説明する。図1
は、本発明の実施例に係るプロセッサの構成を示す図で
ある。図1において、1は、大容量のレジスタ群であ
る。2は、命令レジスタである。3(3−1,3−2,
3−3)は、命令レジスタ2の中のレジスタ指定フィー
ルドである。レジスタ指定フィールド3は、命令レジス
タ2に格納される命令の種類によって、その位置および
指定個数が異なることがある。また、レジスタ指定フィ
ールド3で指定されるレジスタへのアクセスが「読み出
し」/「書き込み」のいずれであるかは、命令の種類と
その命令における該レジスタ指定フィールド3の位置に
よって決まる。
【0011】レジスタ指定フィールド3(3−1,3−
2,3−3)は、4(4−1,4−2,4−3)の論理
レジスタ番号指定フィールドおよび5(5−1,5−
2,5−3)のキュー制御ビットに分けられる。論理レ
ジスタ番号指定フィールドの4−1,4−2,4−3は
それぞれ例えば5ビットからなり、また、キュー制御ビ
ットの5−1,5−2,5−3は例えば1ビットであ
る。論理レジスタ番号指定フィールド4(4−1,4−
2,4−3)で指定するレジスタ番号(例えば“000
00”)は、従来型のプロセッサにおけるレジスタ番号
と同じ意味を持つが、実際にはいくつかのレジスタを組
にしたグループ(以降で説明するように本発明では、こ
のグループはキュー構成となっている)の番号である。
キュー制御ビット5は、論理レジスタ番号指定フィール
ド4が指定するキュー構成のレジスタグループへのアク
セス方法を指定する。キュー制御ビット5が示す情報に
よって指定されるキュー構成のレジスタグループへのア
クセス方法には、通常アクセスモードとキューアクセス
モードの2種類が存在する。通常アクセスモードでのレ
ジスタアクセスは、レジスタグループの中のキューの先
頭にあたるレジスタに対してのみ行なわれ、キューアク
セスモードでは、「読み出し」はキューの先頭から値を
取り出した後にその値をキューから取り除き、「書き込
み」はキューの最後尾に値を追加する。
【0012】6は、命令制御部であり、命令レジスタ2
からの信号L1を受け取り、その内容を解読し、命令レ
ジスタ2が保持している命令の操作に係るプロセッサ内
の各部に対して制御信号を送る。
【0013】7は、物理レジスタ番号生成部であり、物
理レジスタ番号生成部7は論理レジスタ番号対応に用意
されている各レジスタキュー用の物理レジスタ番号生成
部20(20−0,・・・,20−n)からなる。20
−0はR0レジスタキュー用の物理レジスタ番号生成
部、20−nはRnレジスタキュー用の物理レジスタ番
号生成部である。論理レジスタ番号指定フィールドの4
−1,4−2,4−3が5ビットからなる場合、レジス
タキュー用の物理レジスタ番号生成部の数は32個にな
る。物理レジスタ番号生成部7は、レジスタ指定フィー
ルド3の論理レジスタ番号指定フィールド4とキュー制
御ビット5が保持する情報である論理レジスタ番号とキ
ュー制御情報、および命令種とその命令中でのレジスタ
指定フィールド3の位置によって定まるレジスタへのア
クセスが読み出し/書き込みのいずれであるかという情
報を用いてレジスタ指定フィールド3が指定することに
なる物理レジスタを決定し、さらに、それらの情報と、
命令制御部6が生成するポインタ更新タイミング信号L
5を用いて各論理レジスタに対応するキューの管理・制
御を行なう。なお、論理レジスタ番号は、命令制御部6
において解読され、論理レジスタセレクト信号L4(L
4−1,L4−2,L4−3)として物理レジスタ番号
生成部7に伝えられ、同様にしてキュー制御情報は命令
制御部6において解読され、キュー制御信号L3(L3
−1,L3−2,L3−3)として物理レジスタ番号生
成部7に伝えられる。また、レジスタアクセスの読み出
し/書き込みの判定のための信号である読み/書き信号
L2も命令制御部6によって生成され、物理レジスタ番
号生成部7に伝えられる。すなわち、命令制御部6から
は、1つの論理レジスタ番号毎に各論理レジスタ番号指
定フィールド4−1,4−2,4−3対応に1本、都合
3本の論理レジスタセレクト信号線が各論理レジスタ番
号に対応するレジスタキュー用の物理レジスタ番号生成
部へ延びている。各論理レジスタ番号指定フィールドが
5ビットからなる場合、32個のレジスタキュー用の物
理レジスタ番号生成部にそれぞれ専用の3本1組の論理
レジスタセレクト信号線が配線される。この様子を説明
する図を図9として示す。また、前記信号L2、L3、
L5は各レジスタキュー用の物理レジスタ番号生成部の
全てに共通に送られる。物理レジスタ番号生成部7が決
定した物理レジスタ番号は、物理レジスタセレクト信号
L6として物理レジスタ群1に伝えられる。
【0014】上記各レジスタキュー用物理レジスタ番号
生成部20は、第1のポインタを生成する回路30、第
2のポインタを生成する回路31、ポインタ更新制御回
路32、ポインタセレクタ33、番号選択部37などか
ら構成され、実施例では第1のポインタ、第2のポイン
タをそれぞれTopポインタ、Bottomポインタと
呼び、上記回路31、32をそれぞれTopポインタ生
成回路、Bottomポインタ生成回路と呼ぶ。そし
て、上記各レジスタキュー用物理レジスタ番号生成部2
0は、それぞれ命令制御部6からの信号であるL2,L
3,L4,L5を入力とし、物理レジスタ番号生成部7
の最終出力である信号L6を出力する。なお、L2,L
3はそれぞれ3本づつ各レジスタキュー用の物理レジス
タ番号生成部20に共通に入っており、L4は各レジス
タキュー用の物理レジスタ番号生成部20毎にそれぞれ
専用に3本づつ入っているが、これはそれぞれ命令レジ
スタ2中に3つ存在するレジスタ指定フィールド3のそ
れぞれ、すなわち命令中の3つのオペランド(論理レジ
スタ)のそれぞれに対応している。したがって、このL
2,L3,L4は同じオペランド(論理レジスタ)に係
るものどうしが組となって働く。
【0015】各レジスタキュー用物理レジスタ番号生成
部20の詳しい構成については、後ほど図3によって説
明する。ここでは、図2によって、物理レジスタ番号生
成部7によって実現されている内容を概念的に説明す
る。図2は、物理レジスタ番号生成部7がどのような役
割を担っているかを概念的に示す図である。8(8−
0,・・・,8−n)は、それぞれレジスタキューとそ
の制御に係る構成要素の集まりであり、実際には物理レ
ジスタ群1に存在する複数のレジスタ9(9−0,・・
・,9−n)、キューの先頭を指すポインタ10(10
−0,・・・,10−n)、キューの最後尾を指すポイ
ンタ11(11−0,・・・,11−n)およびキュー
を管理・制御するキュー制御部12(12−0,・・
・,12−n)から構成される。キュー制御部12は、
概述のL2,L3,L4,L5の各信号を用いて物理レ
ジスタセレクト信号L6を生成する。
【0016】説明を図1に戻す。本発明に係るプロセッ
サは、上記の他に演算部13、アドレス変換部14、メ
モリアクセス制御部15、メモリ制御部16、メモリ1
7などからなる。これらの構成要素は従来型のプロセッ
サにも存在し、同等の技術によって実現できる。本発明
に係るプロセッサと従来型のプロセッサとの大きな違い
の1つは、物理レジスタ番号生成部7の有無である。従
来型のプロセッサでは、論理レジスタ番号と物理レジス
タ番号が完全に1対1に対応するため、本発明に係るプ
ロセッサにおけるような物理レジスタ番号生成部7のよ
うな装置が不要である。したがって、従来型のプロセッ
サでは、図1の論理レジスタセレクト信号L4に相当す
る信号がそのまま図1における物理レジスタセレクト信
号L6として物理レジスタ群1に伝えられる。
【0017】図3は、複数ある各レジスタキュー用物理
レジスタ番号生成部20のうちの1つであるRiレジス
タキュー用の物理レジスタ番号生成部の構成を示す。3
0は、Topポインタ生成回路であり、図2の10のキ
ューの先頭を示すTopポインタを含む回路である。T
opポインタ生成回路30では、常にそのレジスタキュ
ーにおける先頭のレジスタの番号をTopポインタとし
て相対値により保持している。具体的には、例えばその
レジスタキューが6個のレジスタからなっている場合、
Topポインタは、0から5の値をとる。さらに、To
pポインタ生成回路30は、そのレジスタキューへのア
クセス形態に応じてTopポインタの値を更新する。同
様に、31は、Bottomポインタ生成回路であり、
図2の11のキューの最後尾を示すBottomポイン
タを含む回路である。Bottomポインタ生成回路3
1では、常にそのレジスタキューにおける最後尾のレジ
スタの番号をBottomポインタとして相対値により
保持している。具体的には、例えばそのレジスタキュー
が6個のレジスタからなっている場合、Bottomポ
インタは、0から5の値をとる。さらに、Bottom
ポインタ生成回路31は、そのレジスタキューへのアク
セス形態に応じてBottomポインタの値を更新す
る。
【0018】32は、ポインタ更新制御回路であり、こ
のレジスタキュー用の物理レジスタ番号生成部20が管
理するレジスタキューがキューアクセスモードでアクセ
スされたか否かによってTopポインタ生成回路30ま
たはBottomポインタ生成回路31に対して、その
ポインタの更新を促す信号L30(L30−1,L30
−2)を発生する。ポインタ更新制御回路32は、読み
/書き信号L2、キュー制御信号L3、論理レジスタセ
レクト信号L4を入力とする。ここで、3つある論理レ
ジスタ番号指定フィールドのそれぞれに対応して1づつ
存在する読み/書き信号は、読み出しのとき“1”とな
り、書き込みのとき“0”となる。同じく、3つある論
理レジスタ番号指定フィールドのそれぞれに対応して1
づつ存在するキュー制御信号は、キューアクセスモード
のとき“1”となり、通常アクセスモードのとき“0”
となる。また、3つある論理レジスタ番号指定フィール
ドのそれぞれに対応して1づつ存在する論理レジスタセ
レクタ信号は、対応する論理レジスタ番号指定フィール
ドにおいて当Riレジスタキュー用の物理レジスタ番号
生成部20に割り当てられている論理アドレス番号が指
定されていれば“1”となり、指定されていなければ
“0”となる。
【0019】3つ存在する命令のオペランドのいずれか
あるいはすべてについて、L2が「読み出し」、すなわ
ち“1”を示し、L3がキューアクセスモード、すなわ
ち“1”を示し、L4が当Riレジスタキュー用の物理
レジスタ番号生成部に割り当てられた論理レジスタを選
択していること、すなわち“1”を示しており、かつポ
インタ更新タイミング信号L5が有効な信号、すなわち
“1”を伝達したときにL30−1のポインタ更新信号
をTopポインタ生成回路30に伝達する。L30−1
のポインタ更新信号を受け取ったTopポインタ生成回
路30は内部に持つTopポインタの値を更新する。同
様に、3つ存在する命令のオペランドのいずれかあるい
はすべてについて、L2が「書き込み」、すなわち
“0”を示し、L3がキューアクセスモード、すなわち
“1”を示し、L4が当Riレジスタキュー用の物理レ
ジスタ番号生成部に割り当てられた論理レジスタを選択
していること、すなわち“1”を示しており、かつポイ
ンタ更新タイミング信号L5が有効な信号すなわち
“1”を伝達したときにL30−2のポインタ更新信号
をBottomポインタ生成回路31に伝達する。L3
0−2のポインタ更新信号を受け取ったBottomポ
インタ生成回路31は内部に持つBottomポインタ
の値を更新する。有効なポインタ更新タイミング信号L
5は、物理レジスタ番号生成部7における論理レジスタ
番号から物理レジスタ番号への変換が完了するタイミン
グで、図1の命令制御部6から伝達される。
【0020】Topポインタの更新およびBottom
ポインタの更新は、それぞれTopポインタ生成回路3
0内のTopポインタおよびBottomポインタ生成
回路31内のBottomポインタの値を1増す(実現
方法によっては1減じる)ことで達成される。なお、例
えばレジスタキューが6つのレジスタからなり、ポイン
タの値が更新前に5であったときには、更新後は0とな
る。これもポインタの値を1づつ減じていくという実現
方法の場合には、更新前に0であった場合に更新後5と
なるようにする。
【0021】ポインタセレクタ33(33−1,33−
2,33−3)は、ある論理レジスタへのアクセスにお
いて、レジスタキューのどのレジスタをアクセスすべき
かを決定する回路である。この回路も命令のオペランド
ごとに用意され、そのオペランドに対応する読み/書き
信号L2とキュー制御信号L3を入力とし、さらにTo
pポインタ生成回路30の出力であるTopポインタの
値とBottomポインタ生成回路31の出力であるB
ottomポインタの値を選択値として入力し、図3の
33中に示すような表に基づいてアクセスすべきレジス
タのレジスタキュー中での相対番号であるポインタ値を
選択し出力する。出力されたポインタ値は、34(34
−1,34−2,34−3)の加算器で、そのレジスタ
キューを構成するレジスタの物理レジスタ番号のうちベ
ースになる値であり、各レジスタキュー用の物理レジス
タ番号生成部毎に割り当てられたベース物理レジスタ番
号36と足し合わされる。結果として加算器34は、オ
ペランドごとの物理レジスタ番号を出力し、これがオペ
ランドごとのレジスタセレクタ35(35−1,35−
2,35−3)に入力される。レジスタセレクタ35
は、オペランド対応の論理レジスタセレクト信号L4が
有効であれば、もう1方の入力である物理レジスタ番号
に対応する物理レジスタに対するセレクト信号L6を有
効にする。なお、1つのレジスタキューを構成する物理
レジスタの物理レジスタ番号は連続しているものとし、
ベース物理レジスタ番号36は、そのレジスタキューを
構成する物理レジスタの物理レジスタ番号の中で最小の
値である。
【0022】図3の33中の表に示したとおり、ポイン
タセレクタ33では、キューアクセスモードで論理レジ
スタに書き込みを行なうときだけBottomポインタ
の値が選択され、それ以外の場合、すなわち通常アクセ
スモードでの読み書きおよびキューアクセスモードでの
読み出し時には、Topポインタの値が選択される。
【0023】なお、上述の説明では、レジスタ指定フィ
ールドにキュー制御ビットを設けた場合について説明し
たが、キュー制御ビットを“0”固定として動作させる
場合には、キュー制御ビットを設けなくてもよく、この
場合には、Bottomポインタ生成回路とポインタセ
レクタを設けなくてもよい。またこの場合、番号選択部
の加算器は1個にしてもよい。また、上述の説明では、
番号選択部に加算器とベース物理レジスタ番号が設けら
れているが、各レジスタキュー用の物理レジスタ番号生
成部のTopポインタおよびBottomポインタにそ
れぞれ異なる所定の値を与えるようにすれば、番号選択
部に加算器とベース物理レジスタ番号を設ける必要はな
い。
【0024】以上、本発明に係るプロセッサの構成につ
いて述べた。なお、本実施例においてオペランド数を3
としたのは1例であって、オペランド数は特に限定しな
い。
【0025】続いて本発明の中心的な特徴の1つである
レジスタキューの動作について説明する。図4は、通常
アクセスモードにおけるレジスタ読み書きの様子を示し
ている。R0,R1,...Rnの各論理レジスタへの
アクセスは、それぞれに対応するレジスタキューの先頭
レジスタ41(41−0,41−1,・・・,41−
n)に対してのみ行なわれる。先頭レジスタ41は、常
にTopポインタL41(L41−0,L41−1,・
・・,L41−n)によって指定される。
【0026】図5は、キューアクセスモードでのレジス
タ読み出しの様子を示している。図5の上半分で示すよ
うに、今、R0論理レジスタのキューアクセスモードで
の読み出しが起こったとすると、R0論理レジスタに対
応するレジスタキューの先頭レジスタ51の読み出しが
起こる。先頭レジスタ51は、TopポインタL41−
0によって指定される。読み出しのあと、図5の下半分
に示すように、TopポインタL41−0は、レジスタ
キューにおいてレジスタ51につづくレジスタ52を指
すようになる。すなわちレジスタ52が先頭レジスタと
なる。
【0027】図6は、キューアクセスモードでのレジス
タへの書き込みの様子を示している。図6の上半分で示
すように、今、R0論理レジスタへのキューアクセスモ
ードでの書き込みが起こったとすると、R0論理レジス
タに対応するレジスタキューの最後尾のレジスタ61に
対して書き込みがなされる。最後尾のレジスタ61は、
BottomポインタL42−0によって指定される。
書き込みが終了すると、図6の下半分に示すように、B
ottomポインタL42−0は、レジスタキューにお
いてレジスタ61につづくレジスタ62を指すようにな
る。すなわちレジスタ62が最後尾のレジスタとなる。
【0028】図4から図6で示したレジスタキューの基
本的な動作パターンを利用すると、本発明に係るプロセ
ッサは、プログラムの実行に際して、メモリレイテンシ
(メモリにアクセスしてからメモリからデータが読み出
され、レジスタにセットされるまでに時間がかかること
を意味する)の影響をうまく隠蔽する形で効率の良い処
理を行なうことができる可能性がある。例えば、図7に
示したフローチャートのように、(1)20個のデータ
をメモリから順次別々の論理レジスタに読み出し、
(2)論理レジスタ上の20個のデータを用いて一連の
計算を行ない、(3)最終的な結果をメモリに書き込
む;という3つのステップを繰り返すプログラム、すな
わち、20個の論理レジスタに1個づつデータが読み出
され、個々の論理レジスタのデータに対してそれぞれ別
々に計算が行なわれ、それぞれの結果をメモリに書き込
み、次いで、また、20個の論理レジスタに1個づつデ
ータが読み出され、個々の論理レジスタに今までに格納
されたデータに対してそれぞれ別々に計算が行なわれ、
それぞれの結果をメモリに書き込み、以下、この繰返し
が行なわれるプログラムにおいて、(1)のメモリから
の読み出しの実行の流れと、(2),(3)の演算実行
および結果のメモリへの書き込みの実行の流れを分けて
考え、メモリレイテンシの影響を隠蔽する目的で、
(1)の実行の流れを(2),(3)の実行の流れより
先行して行なわせる。さらに、(1)の実行流が使用す
るレジスタアクセスのモードを常にキューアクセスモー
ドとする。これはコンパイラによっても行ないうる。
【0029】このようにすることで、図8のタイムチャ
ートに例示したように、メモリからのデータは(1)の
実行を繰り返すごとに物理レジスタのレジスタキューに
溜っていく。各論理レジスタ対応のレジスタキューに
は、それぞれ、先頭から順に(1)の1回目の実行の結
果メモリから読み出されてきたデータ、(1)の2回目
の実行の結果メモリから読み出されてきたデー
タ、...というように値が格納される。図8では例と
して論理レジスタRiに対するレジスタキューの様子を
示した。このレジスタキュー81に対するデータの書き
込みポインタが(1)の実行を繰り返すごとに1つずつ
下に移っているのは、(1)のレジスタアクセスがキュ
ーアクセスモードで行なわれているためである。一方、
(2),(3)の実行流は、(1)の実行流に遅れる形
でレジスタキューに溜っているデータを利用していく。
図8のタイムチャートに例示したように、(2),
(3)の実行は、繰返しの回ごとにレジスタキューへの
アクセスポイントが異なる。すなわち、(2),(3)
の1回目の実行はレジスタキューの先頭の物理レジスタ
に対してアクセスを行ない、2回目の実行はその次の物
理レジスタに対してアクセスを行なうといった具合にな
る。図8には、例として論理レジスタRiのアクセスの
様子を示した。(2),(3)の実行流において、レジ
スタキュー81のアクセスポイントを下げていくには、
キューアクセスモードで論理レジスタをアクセスすれば
良いが、すべてのレジスタアクセスをキューアクセスモ
ードで行なう必要はない。むしろ、(2),(3)の各
回の一連の計算においては通常アクセスモードでのレジ
スタアクセスが必要である。そこで、(2),(3)の
各回の実行において、それぞれの論理レジスタに対する
アクセスのうち最後のアクセスのみをキューアクセスモ
ードで行なう。このようにすることで、レジスタキュー
へのアクセスポイントを下げていくことができるが、こ
こで重要な点は、このようなレジスタキューへのポイン
タの更新を論理レジスタごとに実現できる点である。こ
れによって、例えば、(2),(3)の1回目の実行の
途中で、ある論理レジスタに関しては、(2),(3)
の2回目の実行に用いるべきデータを参照することがで
きる。この性質を利用すると図8のタイムチャートの
(2),(3)の実行流の各回の実行を重ね合わせてう
まくスケジューリングすることでより効率の良いプログ
ラム実行が可能となる。なお、この(1),(2),
(3)の実行に際して、レジスタキューとしての構造を
活用しないでよい論理レジスタももちろん存在する可能
性はある。このような論理レジスタに対しては、常に通
常アクセスモードでのアクセスを行なうとよい。
【0030】図7,図8を用いて説明した例では、
(1)の実行流を(2),(3)の実行流よりも先行さ
せたが、この先行の度合いをメモリレイテンシの影響を
隠蔽できる程度にすることで、効率の良いプログラム実
行が期待できる。また、プロセッサにおいて命令レベル
並列処理を実現すれば、さらに効率の良いプログラム実
行が期待できる。さらに、本発明に係るプロセッサは、
レジスタキューの機構を利用して、演算レイテンシの影
響を隠蔽することも可能である。例えば、数マシンサイ
クルを要する演算命令の実行結果の論理レジスタへの書
き込みをキューアクセスモードで行なうことによって、
この書き込みを行なう論理レジスタが数マシンサイクル
分使えないまま占有されていまうことを防ぐ。このよう
にして演算結果を書き込んだレジスタは、その演算結果
が使用可能かつ必要になる時点までにレジスタキューの
先頭にくればよく、そのようにスケジューリングを行な
うことは可能である。このような操作の繰返しを重ねあ
わせることで、プロセッサの演算レイテンシの影響によ
る無駄な動作を無くすことができる。また、本発明に係
るプロセッサは、従来型のプロセッサであればレジスタ
数が足りないために、しかるべき後には必要となるレジ
スタ上の値を、一旦メモリへ書き込み、その後必要にな
った時点で読み出すというような処理を行なう場合であ
っても、キューアクセスモードでのレジスタへの書き込
みを利用することで必要な値をレジスタに置いておくこ
とができ、しかるべきレジスタのアクセスのスケジュー
リングを行なうことで、この値を再利用することができ
る。このようにすることで、プログラム実行におけるメ
モリアクセスの回数を減らすことができ、効率の良い処
理が期待できる。
【0031】
【発明の効果】本発明によれば、実際に使用可能なレジ
スタ数が指定可能なレジスタ数よりも多くなるため、数
値計算などで問題となるレジスタ数不足の問題を解決す
ることができる。また、数多いレジスタの一部を一時的
な記憶領域として利用することで、メモリレイテンシの
影響による性能低下を小さくすることも可能にする。し
かも、本発明に係るプロセッサは、従来技術に基づくプ
ロセッサのアーキテクチャとの互換性を保ち、また、そ
のハードウェア規模も、マイクロプロセッサで実現可能
なレベルに留めることができる。
【図面の簡単な説明】
【図1】本発明に係るプロセッサの構成を示す図であ
る。
【図2】物理レジスタ番号生成部の役割を説明する概念
図である。
【図3】レジスタキュー用の物理レジスタ番号生成部の
構成を示す図である。
【図4】通常アクセスモードでのレジスタアクセスの様
子を説明する図である。
【図5】キューアクセスモードでのレジスタからの値の
読み出しの様子を説明する図である。
【図6】キューアクセスモードでのレジスタへの値の書
き込みの様子を説明する図である。
【図7】本発明に係るプロセッサで実行するプログラム
の例を示す流れ図である。
【図8】本発明に係るプロセッサでの図7に示すプログ
ラムの実行の様子を説明する図である。
【図9】論理レジスタセレクト信号線の配線の様子を説
明する図である。
【符号の説明】
1 物理レジスタ群 2 命令レジスタ 3 レジスタ指定フィールド 4 論理レジスタ番号指定フィールド 5 キュー制御ビット 6 命令制御部 7 物理レジスタ番号生成部 8 レジスタキューおよびレジスタキュー制御部 9 レジスタキュー 10 Topポインタ 11 Bottomポインタ 12 レジスタキュー制御部 13 演算部 14 アドレス変換部 15 メモリアクセス制御部 16 メモリ制御部 17 メモリ 20 各レジスタキュー用物理レジスタ番号生成部 L2 読み/書き信号 L3 キュー制御信号 L4 論理レジスタセレクト信号 L5 ポインタ更新タイミング信号 L6 物理レジスタセレクト信号 30 Topポインタ生成回路 31 Bottomポインタ生成回路 32 ポインタ更新回路 33 ポインタセレクタ 34 加算器 35 レジスタセレクタ 36 ベース物理レジスタ番号 37 番号選択部 L30 ポインタ更新信号 81 Riレジスタキュー
フロントページの続き (72)発明者 武内 茂雄 東京都小平市上水本町5丁目20番1号 日立超エル・エス・アイ・エンジニアリ ング株式会社内 (56)参考文献 特開 昭57−166649(JP,A) 特開 平4−290128(JP,A) 特開 昭61−136131(JP,A) 特開 昭51−75340(JP,A) 米国特許6049839(US,A) 藤井啓明ほか「命令並列処理機構を意 識したスケジューリングを支援するレジ スタ構成とその効果」情報処理学会論文 誌 Vol.35 No.4(Apr. 1994)平成6年4月 p.628−635 (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 データレジスタ群と、演算器と、命令制
    御部を備える情報処理装置において、 命令には少なくとも1つの論理レジスタ番号指定フィー
    ルドを有し、 前記データレジスタ群は、複数の物理レジスタからなる
    レジスタキューを論理レジスタ対応に有し、 前記命令制御部には、各論理レジスタ対応に用意された
    物理レジスタ番号生成部が接続され、 前記物理レジスタ番号生成部は、前記論理レジスタに対
    応する前記レジスタキュ−から物理レジスタを指定する
    ためのポインタを、書き込み済みで未読み出しのレジス
    タの先頭レジスタが読み出しのために指定され、かつ書
    き込み済みのレジスタにつづく末尾レジスタが書き込み
    のために指定されるように更新し、該ポインタに基づき
    前記物理レジスタを選択する手段を備えたことを特徴と
    する情報処理装置。
  2. 【請求項2】 請求項1記載の情報処理装置において、 前記物理レジスタ番号生成部は、ポインタ更新制御回路
    と、ポインタ生成回路と、番号選択部を有し、 前記ポインタ更新制御回路は、前記論理レジスタセレク
    ト信号に基づきポインタ更新信号を作成する手段を有
    し、 前記ポインタ生成回路は、前記ポインタ更新信号を受け
    てポインタを更新する手段を有し、 前記番号選択部は、前記論理レジスタ番号指定フィール
    ド対応にレジスタセレクタを有し、各レジスタセレクタ
    は前記論理レジスタセレクト信号とポインタを入力とし
    て物理レジスタ番号を出力することを特徴とする情報処
    理装置。
  3. 【請求項3】 請求項2記載の情報処理装置において、 前記番号選択部は、ベース物理レジスタ番号を保持する
    手段と加算手段を有し、該加算手段は前記ポインタと前
    記ベース物理レジスタ番号を加算し、その結果を前記レ
    ジスタセレクタに出力するようにしたことを特徴とする
    情報処理装置。
  4. 【請求項4】 データレジスタ群と、演算器と、命令制
    御部を備える情報処理装置において、 命令には少なくとも1つのレジスタ指定フィールドが設
    けられ、該レジスタ指定フィールドは論理レジスタ番号
    指定フィールドと該論理レジスタ番号指定フィールドと
    対をなすキュー制御情報を有し、 前記データレジスタ群は、複数の物理レジスタからなる
    レジスタキューを論理レジスタ対応に有し、 前記命令制御部には、各論理レジスタ対応に用意された
    物理レジスタ番号生成部が接続され、 前記命令制御部は、前記命令レジスタの命令を解読して
    前記物理レジスタ番号生成部に前記レジスタ指定フィー
    ルド対応に読み/書き信号、論理レジスタセレクト信号
    およびキュー制御信号を生成出力する手段を備え、 前記物理レジスタ番号生成部は、前記読み/書き信号、
    論理レジスタセレクト信号およびキュー制御信号に基づ
    き、論理レジスタに対応する前記レジスタキューから物
    理レジスタを指定するためのポインタを更新し、該ポイ
    ンタに基づき前記物理レジスタを選択する手段を備えた
    ことを特徴とする情報処理装置。
  5. 【請求項5】 請求項4記載の情報処理装置において、 前記物理レジスタ番号生成部は、ポインタ更新制御回路
    と、第1のポインタ生成回路と、第2のポインタ生成回
    路と、前記レジスタ指定フィールド対応に設けられたポ
    インタセレクタと、番号選択部を有し、 前記ポインタ更新制御回路は、前記読み/書き信号と、
    前記キュー制御信号と、論理レジスタセレクト信号に基
    づき第1のポインタ更新信号および/または第2のポイ
    ンタ更新信号を作成する手段を有し、 前記第1のポインタ生成回路と第2のポインタ生成回路
    は、前記第1のポインタ更新信号と第2のポインタ更新
    信号を夫々受けて第1のポインタと第2のポインタを更
    新する手段を有し、 前記ポインタセレクタは、前記読み/書き信号およびキ
    ュー制御信号に基づき第1のポインタ、第2のポインタ
    のいずれか一方を選択出力する手段を有し、 前記番号選択部は、前記レジスタ指定フィールド対応に
    レジスタセレクタを有し、各レジスタセレクタは対応す
    る前記論理レジスタ番号指定フィールドの論理レジスタ
    セレクト信号と対応する前記ポインタセレクタから出力
    されたポインタを入力として物理レジスタ番号を出力す
    ることを特徴とする情報処理装置。
  6. 【請求項6】 請求項5記載の情報処理装置において、 前記番号選択部は、ベース物理レジスタ番号を保持する
    手段と前記各ポインタセレクタ対応に設けられた加算手
    段を有し、該加算手段は対応するポインタセレクタから
    出力されたポインタと前記ベース物理レジスタ番号を加
    算し、その結果を前記レジスタセレクタに出力するよう
    にしたことを特徴とする情報処理装置。
  7. 【請求項7】 請求項1乃至請求項6のいずれかの請求
    項記載の情報処理装置において、 前記命令制御部は、前記物理レジスタ番号生成部のポイ
    ンタを更新するタイミングを決定するポインタ更新タイ
    ミング信号を生成し、前記物理レジスタ番号生成部に出
    力する手段を備えたことを特徴とする情報処理装置。
JP36006792A 1992-12-29 1992-12-29 情報処理装置 Expired - Fee Related JP3220881B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP36006792A JP3220881B2 (ja) 1992-12-29 1992-12-29 情報処理装置
US08/172,170 US6049839A (en) 1992-12-29 1993-12-23 Data processor with multiple register queues

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36006792A JP3220881B2 (ja) 1992-12-29 1992-12-29 情報処理装置

Publications (2)

Publication Number Publication Date
JPH06202866A JPH06202866A (ja) 1994-07-22
JP3220881B2 true JP3220881B2 (ja) 2001-10-22

Family

ID=18467742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36006792A Expired - Fee Related JP3220881B2 (ja) 1992-12-29 1992-12-29 情報処理装置

Country Status (2)

Country Link
US (1) US6049839A (ja)
JP (1) JP3220881B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2889845B2 (ja) * 1995-09-22 1999-05-10 松下電器産業株式会社 情報処理装置
JPH1011352A (ja) * 1996-06-19 1998-01-16 Hitachi Ltd データ処理装置およびそのレジスタアドレス変換方法
JPH1097423A (ja) * 1996-09-20 1998-04-14 Hitachi Ltd ループ処理の並列実行制御に適したレジスタ構成を有するプロセッサ
DE69727465T2 (de) 1997-01-09 2004-12-23 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Rechnersystem mit Speichersteuerung für Stossbetrieb-Übertragung
US7383424B1 (en) 2000-06-15 2008-06-03 Hewlett-Packard Development Company, L.P. Computer architecture containing processor and decoupled coprocessor
JP3817436B2 (ja) * 2000-09-28 2006-09-06 株式会社東芝 プロセッサおよびリネーミング装置
US7275148B2 (en) * 2003-09-08 2007-09-25 Freescale Semiconductor, Inc. Data processing system using multiple addressing modes for SIMD operations and method thereof
JP2006004042A (ja) * 2004-06-16 2006-01-05 Renesas Technology Corp データ処理装置
US7631171B2 (en) * 2005-12-19 2009-12-08 Sun Microsystems, Inc. Method and apparatus for supporting vector operations on a multi-threaded microprocessor
GB2442499B (en) * 2006-10-03 2011-02-16 Advanced Risc Mach Ltd Register renaming in a data processing system
KR102213258B1 (ko) * 2019-07-29 2021-02-08 한국전자기술연구원 효율적인 명령어 처리를 위한 프로세싱-인-메모리 제어 방법 및 이를 적용한 연산장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3750171T2 (de) * 1986-08-28 1995-02-02 Nippon Electric Co Multiaufgabenverarbeitungsgerät.
JPH02159624A (ja) * 1988-12-13 1990-06-19 Nec Corp 先入れ先出しレジスタ装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
藤井啓明ほか「命令並列処理機構を意識したスケジューリングを支援するレジスタ構成とその効果」情報処理学会論文誌 Vol.35 No.4(Apr.1994)平成6年4月 p.628−635

Also Published As

Publication number Publication date
JPH06202866A (ja) 1994-07-22
US6049839A (en) 2000-04-11

Similar Documents

Publication Publication Date Title
US6269440B1 (en) Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US6041399A (en) VLIW system with predicated instruction execution for individual instruction fields
US6356994B1 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
US5809274A (en) Purge control for ON-chip cache memory
US5446849A (en) Electronic computer which executes squash branching
JP3220881B2 (ja) 情報処理装置
US5307300A (en) High speed processing unit
JPH02227730A (ja) データ処理システム
EP0496407A2 (en) Parallel pipelined instruction processing system for very long instruction word
KR100309861B1 (ko) 마이크로프로세서, 연산 처리 실행 방법 및 기억 매체
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing
JPH0461390B2 (ja)
JP3490005B2 (ja) 命令制御装置及びその方法
US5774712A (en) Instruction dispatch unit and method for mapping a sending order of operations to a receiving order
JPH03204030A (ja) コンピュータ用プロセツサ
JP2883465B2 (ja) 電子計算機
JPH02197924A (ja) 中央演算処理装置
JP2885197B2 (ja) 演算処理装置及び演算処理方法
KR960016401B1 (ko) 레지스터 페이지 포인터를 이용한 레지스터 페이지간의 페이지 선택회로
JP2001265593A (ja) 情報処理装置
US7010631B2 (en) Controller based hardware device and method for setting the same
JPH08263289A (ja) 複数命令流パイプライン計算機
JPH01243123A (ja) 情報処理装置
JP2001092658A (ja) データ処理回路及びデータ処理装置

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010710

LAPS Cancellation because of no payment of annual fees