説明

情報処理装置及びベクトル型情報処理装置

【課題】レジスタ・リネーミング機構を実装するプロセッサを備えた情報処理装置におい、プログラムを最適化するだけの手段では回避できないメモリアクセスやレジスタの解放待ち時間を回避すること。
【解決手段】レジスタ・リネーミング機構を実装すると共に、図1(a)に示すレジスタの使用状況の下で、ユーザ(プログラマ等)は、命令セットに導入した専用命令(論理レジスタに割り当てが可能な未使用の仮想レジスタの数を増加または減少させる命令)を発行し、実行させる。これにより、未使用の仮想レジスタの数を図1(b)、図1(c)に示すように変更できるので、ソフトウェアによって、それ自身のプログラム特性に最適化したレジスタの利用を図ることが可能となる。また、レジスタ上のデータをメモリへ退避するようなメモリアクセスの発生や、レジスタの解放待ち時間の発生が抑制されるので、処理性能を向上させることができるようになる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置及びベクトル型情報処理装置に係り、特に、レジスタ・リネーミング機構を実装するプロセッサを備えると共に、その処理性能を高める情報処理装置及びベクトル型情報処理装置に関する。
【背景技術】
【0002】
以下、情報処理装置のアーキテクチャにおいて、ソフトウェアに公開されているレジスタ(即ち、タイミングによってはソフトウェア側から参照可能であったり、更新可能であったりするレジスタ)をSVR(Software Visible Register) とし、そのうち、ソフトウェアが現在使用可能なレジスタをSUR(Software Usable Register)とする。また、ハードウェア上に実装されたレジスタをHR(Hardware Register) とし、そのうちSURの物理的な格納先となるレジスタをSR(Software Register) とし、レジスタ・リネーミングに用いられるレジスタをRR(Renaming Register) とする。
【0003】
レジスタ・リネーミング機構を実装するプロセッサを備えた情報処理装置であっても、周知のコンピュータ・アーキテクチャでは、SURの数やRRの数は変えることができず、プログラムの処理速度を向上させるには、プログラムの方をハードウェアに合わせて最適化していくしかなかった。しかし、プログラムの方をハードウェアに適合させる最適化手段にも限界があり、即ち、レジスタ不足の場合にはデータのメモリへの退避が必要となるため、この退避のためのメモリアクセス命令の実行に要するアクセス時間や、前述のRRの不足によるレジスタの解放待ち時間といった無駄時間が生じてしまうという問題点があった。
【0004】
なお、他の関連技術として、歴史的には、ユーザが作成したプログラム(ソースプログラム)を実行プログラム(オブジェクトプログラム)へと変換する過程で、論理レジスタの使用状況を管理し、システムによって、その最適化を図る最適化技術が有り、既に周知の技術として実施されている。この技術は、OS(オペレーティング・システム)の1構成要素であるコンパイラなどで、最適化フェーズを設けて実施されている。しかし、コンパイラの場合は、プログラム全体を見渡すことができるので、論理レジスタの参照ステップなどを全体的に解析することで最適化することが可能となるが、常駐のOSや、ハードウェアで、この技術を実施することは、命令系列の実行というメインの仕事を抱えているので、ともすればオーバーヘッドを招来する可能性が有り、困難とされている。
【0005】
近年、特にスループット向上の要求が高まったことを背景に、例えば、ベクトルプロセッサ等でパイプライン処理が採用されており、ユーザがソフトウェア・パイプライニングを組むことによって命令スループットの性能を向上させる技術も公知となっている。この技術の場合は、プログラムステップに複数のループが存在する場合、場合によっては、各ループでそれぞれ異なる仮想レジスタを割り当てる必要があるため、実行プログラムにおいて命令数が増大し、また、ユーザは、オーバーラップして実行される各ループにおいて、論理レジスタがぶつからないように指定しなければならないという煩わしさがある。
【0006】
ここで、ユーザとは、主として命令(マシン語)の元となるプログラムを作成したプログラマーを指すが、広くは、コンパイラレベルの最適化を行うコンパイラ等や、ハードウェアを制御するOS(オペレーティング・システム)を指すこともある。
【0007】
なお、スループットの向上のためにパイプライン処理を採用する情報処理装置では、ハードウェア上にレジスタ・リネーミング機構を設けることが不可欠となっている。この機構の設置は、多少のオーバーヘッドにはなっても、論理レジスタと物理レジスタとの対応付けを、前後の処理ステップで齟齬が生じないように管理するためには不可欠である。
【0008】
レジスタ・リネーミング機構に関する技術としては、例えば、特許文献1に、物理レジスタ番号と論理レジスタ番号との対応付けを行うと共に、命令セットに、レジスタリネーム命令を設けた情報処理装置が開示されているが、その目的はレジスタのリネーミングに限られており、即ち、ユーザであるプログラマに、物理レジスタ番号と論理レジスタ番号との対応付けを任意に設定変更できる手段を与えるだけのものであり、よって、前記命令セットには、物理レジスタ番号と論理レジスタ番号との対応付けを変える命令は含まれていても、本発明のようなレジスタ開放命令までは含まれておらず、よって、本発明のように前述のRRの数を変更することまではできない。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特許第3817436号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、上記背景技術で述べた周知の情報処理装置にあっては、前述のとおり、SURとRRの個数はハードウェア仕様に依存する固定値であって、ユーザであるプログラマは、ソフトウェア(即ち、該プログラマが作成するプログラム)を介して任意に変更することができなかったので、例えば、ハードウェアとしてはレジスタの記憶容量に空きが有る場合にも、前述のSURとRRとを増加させることができず、よって、情報処理装置のハードウェア性能をフルに発揮させることができないという問題点があった。
【0011】
本発明は、上記従来の問題点に鑑みてなされたものであって、プログラムを最適化するだけの手段(即ち、プログラムをハードウェアに合わせて最適化するだけの手段)では回避できないメモリアクセスやレジスタの解放待ち時間を回避することを可能とし、即ち、ハードウェアの方をプログラムに適合させる方向への最適化手段を備えた情報処理装置及びベクトル型情報処理装置を提供することを目的としている。
【0012】
本発明の他の目的は、命令セットに専用命令を設けることを可能にすることで、未使用の物理レジスタの数をソフトウェアによって増減させる手段を与え、プログラム特性に適合したレジスタの利用を図ることが可能な情報処理装置及びベクトル型情報処理装置を提供することにある。
【課題を解決するための手段】
【0013】
上記の課題を解決すべく、本発明の情報処理装置として、物理レジスタへの論理レジスタの割り付けを実行することで管理し、未使用の論理レジスタが所定の命令セットに属する命令で指定された際に、未使用の物理レジスタに対し関連付けを実施することの出来るレジスタ・リネーミング手段を備えた情報処理装置であって、所定の命令セットに属する専用命令として、前記論理レジスタの物理レジスタへの割り付けに対し、指定される論理レジスタの物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタのリネーム先として使用できる物理レジスタ量を変更、最適化することが出来ることを特徴とする情報処理装置が提供される。
【0014】
また、情報処理装置として、物理レジスタへの論理レジスタの割り付けを実行することで管理し、未使用の論理レジスタが所定の命令セットに属する命令で指定された際に、未使用の物理レジスタに対し関連付けを実施することの出来るレジスタ・リネーミング手段を備えた情報処理装置であって、所定の命令セットに属する専用命令として、前記論理レジスタの物理レジスタへの割り付けに対し、指定される未使用の論理レジスタを未使用の物理レジスタに対し全て割り付けを実施させるものと、所定の命令セットに属する専用命令として、前記論理レジスタの物理レジスタへの割り付けに対し、指定される論理レジスタの物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタのリネーム先として使用できる物理レジスタ量を変更、最適化することが出来ることを特徴とする情報処理装置が提供される。
【0015】
更に、情報処理装置として、物理レジスタへの論理レジスタの割り付けを実行し、管理するリネーミング手段を備えた情報処理装置であって、所定の命令セットに属する専用命令として、前記論理レジスタの物理レジスタへの割り付けに対し、指定される未使用の論理レジスタを未使用の物理レジスタに対し全て割り付けを実施させるものと、所定の命令セットに属する専用命令として、前記論理レジスタの物理レジスタへの割り付けに対し、指定される論理レジスタの物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタのリネーム先として使用できる物理レジスタ量を変更、最適化することが出来ることを特徴とする情報処理装置が提供される。
【0016】
更に、ベクトル型情報処理装置として、物理レジスタへの論理レジスタの要素毎の割り付けを実行することで管理し、未使用の論理レジスタが所定の命令セットに属する命令で指定された際に、該論理レジスタの各要素を未使用の物理レジスタに対し関連付けを実施することの出来るレジスタ・リネーミング手段を備えたベクトル型の情報処理装置であって、所定の命令セットに属する専用命令として、前記論理レジスタの各要素と物理レジスタの割り付けに対し、指定される使用中論理レジスタの各要素の物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタの要素毎のリネーム先として使用できる物理レジスタ量を変更、最適化することができることを特徴とするベクトル型情報処理装置が提供される。
【0017】
更に、ベクトル型情報処理装置として、物理レジスタへの論理レジスタの要素毎の割り付けを実行することで管理し、未使用の論理レジスタが所定の命令セットに属する命令で指定された際に、該論理レジスタの各要素を未使用の物理レジスタに対し関連付けを実施することの出来るレジスタ・リネーミング手段を備えたベクトル型の情報処理装置であって、所定の命令セットに属する専用命令として、前記論理レジスタの各要素の物理レジスタへの割り付けに対し、指定される未使用論理レジスタの各要素を未使用の物理レジスタに対して全て割り付けを実施させるものと、所定の命令セットに属する専用命令として、前記論理レジスタの各要素と物理レジスタの割り付けに対し、指定される使用中論理レジスタの各要素の物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタの要素毎のリネーム先として使用できる物理レジスタ量を変更、最適化することができることを特徴とするベクトル型情報処理装置が提供される。
【0018】
更に、ベクトル型情報処理装置として、物理レジスタへの論理レジスタの要素毎の割り付けを実行し、管理するリネーミング手段を備えたベクトル型の情報処理装置であって、所定の命令セットに属する専用命令として、前記論理レジスタの各要素の物理レジスタへの割り付けに対し、指定される未使用論理レジスタの各要素を未使用の物理レジスタに対して全て割り付けを実施させるものと、所定の命令セットに属する専用命令として、前記論理レジスタの各要素の物理レジスタへの割り付けに対し、指定される使用中論理レジスタ内の各要素の物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタ内の各要素のリネーム先として使用できる物理レジスタ量を変更、最適化することができることを特徴とするベクトル型情報処理装置が提供される。
【発明の効果】
【0019】
以上説明したように、本発明の情報処理装置及びベクトル型情報処理装置によれば、プログラムを最適化するだけの周知の手段に代えて、未使用の物理レジスタの数をソフトウェアによって増減させる手段が与えられるので、プログラム特性に適合したレジスタの利用を図ることが可能となると共に、メモリアクセスやレジスタの解放待ち時間を回避することが可能となる効果がある。
【図面の簡単な説明】
【0020】
【図1】本発明の実施形態に係る情報処理装置におけるレジスタの特徴的な使用方法を例示する説明図である。
【図2】周知の関連技術において、レジスタを元とする集合間の対応関係を示す説明図である。
【図3】本発明の実施形態に係る情報処理装置において、レジスタを元とする集合間の対応関係を示す説明図である。
【図4】本発明の実施形態に係る情報処理装置の全体構成を示す構成図である。
【図5】SURとSRとの対応付けを行うためのリネーミング・テーブルの記憶領域構成を示す構成図である。
【図6】論理レジスタ解放指示を受けたリネーミング・テーブル52の変化を示す説明図である。
【図7】論理レジスタ確保指示を受けた場合のリネーミング方法を示す説明図である。
【図8】メモリアクセス命令を削減することによって処理性能の向上が図れることを示すタイムチャート図であり、図8(a)は比較のための周知の情報処理装置のタイムチャートを示し、図8(b)は本実施形態に係る情報処理装置のタイムチャートを示す。
【図9】レジスタ解放待ち時間を無くすことによって処理性能の向上が図れることを示すタイムチャート図であり、図9(a)は比較のための周知の情報処理装置のタイムチャートを示し、図9(b)は本実施形態に係る情報処理装置のタイムチャートを示す。
【図10】本発明の他の実施形態に係る情報処理装置(ベクトル計算機)の全体構成を示す構成図である。
【発明を実施するための形態】
【0021】
以下、本発明の情報処理装置及び情報処理装置のレジスタ量最適化方法について、図面を参照して詳細に説明する。
但し、以下の説明においても、レジスタをカテゴライズする符号は前述のとおりとし、即ち、アーキテクチャとしてソフトウェアに公開されているレジスタをSVR(Software Visible Register) とし、そのうちソフトウェアが現在使用可能なレジスタをSUR(Software Usable Register)とする。また、ハードウェア上に実装されたレジスタをHR(Hardware Register) とし、そのうちSURの物理的な格納先となるレジスタをSR(Software Register) 、レジスタ・リネーミングに用いられるレジスタをRR(Renaming Register) とする。
【0022】
本発明は、レジスタ・リネーミング機構を実装するプロセッサにおいて、上記SURの数及びRRの数を、実行処理するソフトウェア(プログラム)によってフレシキブルに変更できるようにしたことを特徴としている。
例えば、RR数を増やすことで、レジスタの解放待ち時間を少なくし、処理性能を向上させることができる。また、SURの数も、ソフトウェアが任意のタイミングで変更することができるので、プログラム全体の特性や、プログラム内の局所的な特性に適合させてSR及びRRの比率を細かく決定する最適化が実施できることになり、高い実行性能を期待することができるようになる。
【0023】
図1は、本発明の実施形態に係る情報処理装置におけるレジスタの特徴的な使用方法を例示する説明図である。
同図に示すように、ハードウェア上に実装されたレジスタは、ソフトウェアが使用するレジスタSRと、ハードウェアがレジスタ・リネーミングとして使用するレジスタRRとに分類される。図1(a)では、ハードウェア上に実装されている20個のHRのうち、16個がSRとしてソフトウェアで使用されており、ソフトウェアが使用していない残りの4個のレジスタがRRとして使用されることを示している。
【0024】
例えば、図1(a)に示すレジスタの使用状況の下で、ユーザ(プログラマ等)は、本実施形態で命令セットに導入した専用命令(SVRやHRを増加または減少させる命令)を発行して、この命令を実行させることにより、SRの数を図1(b)、図1(c)に示すように変更できるので、ソフトウェアによって、それ自身のプログラム特性に最適化したレジスタの利用を図ることが可能となる。これにより、レジスタ上のデータをメモリへ退避するようなメモリアクセスの発生や、レジスタの解放待ち時間の発生が抑制されるので、処理性能を向上させることができるようになる。
【0025】
以下、本発明の原理的な側面を、集合論の用語を含めた関係式を用いて説明する。
本発明の課題は、SURの数を変更できるようにすることであったが、以下、これについて説明する。
以下では、SSVRをSVRの集合とし、SSURをSURの集合とする。また、SSVRを構成する元である各SURは、ハードウェア上に実装された全レジスタの集合Hを構成する元Rに対し、全単射の写像f(後述するように、具体的には対応テーブル)によって対応付けられるものとする。
【0026】
また、写像fによってSSURに対応付けられたハードウェア上のレジスタの集合をHSRとする。さらに、HHR上でHSRに含まれないレジスタは、リネーミングに使用可能なレジスタであるものとして、これをHRRとする。この定義によれば、レジスタ・リネーミング機能とは、写像fを操作することで、SSUR上の或る元SURとHSR上の或る元SRとの対応関係を、HRRの或る元RRへと付け替えることであると考えることができる。
【0027】
図2は、周知の関連技術において、レジスタを元とする集合間の対応関係を示す説明図である。
この関係は、下記の(1)式〜(5)式で表現することができる。
SVR={SVR|ハードウェアがソフトウェアに見せるレジスタの集合の元} …………………………………………(1)
HR={R|ハードウェアが実装しているレジスタの集合の元} ……………………………………………………………(2)
SUR=SSVR ………………(3)
HR=HSR+HRR …………(4)
f:SSUR→HSR …………(5)
ここで、SSVR及びHHRはハードウェア構成から一意的に決まる不変な集合であるものとする。
【0028】
ちなみに、周知の関連技術においては、(3)式と(5)式との関係から、HSRの元SRの個数は定数となっていた。さらに、周知の関連技術においては、HHRを構成する元HRの個数がハードウェア構成から決まる定数であることから、(4)式よりHRRの集合を構成する元RRの個数も定数となっている。換言すると、集合HSRと集合HRRとを構成するレジスタの個数は常に一定であり、その個数を変えることはできなかったと言える。
そこで、本発明では上記の各集合を示す関係式を下記の(6)〜(8)式のように書き換えることで、HSRやHRRの元の数の変更を可能にする
【0029】
図3は、本発明の実施形態に係る情報処理装置において、レジスタを元とする集合間の対応関係を示す説明図である。
SUR⊆SSVR ………………(6)
HR=HSR+HRR …………(7)
f:SSUR→HSR ……………(8)
【0030】
(6)式より、SSURは、SSVRの部分集合であるが、その集合の元の数は上記の関係式からは定まらず、不定となっている。さらに、(8)式より、SSURの元の数は不定であるため、HSRの元の数もまた不定となる。そして、(7)式と(8)式とからHRRを構成する元の数も、また、不定となることになる。換言すると、SSURの元の数が決まれば、HSR及びHRRの元の数が決まることになる。そこで、そのSSURの元の数を操作するために、ソフトウェアが自ら使用するSURの数を操作するための命令を設けることで、SSURの元の数、さらには、HSR、SRRの元の数を操作することが可能となる。
【0031】
図4は、本発明の実施形態に係る情報処理装置の全体構成を示す構成図である。
同図に示す情報処理装置は、リネーム前命令バッファ1と、リネーミング処理部2と、発行待ち命令バッファ3と、命令発行部4と、リネーミング・テーブル制御部5と、を備えて構成されている。
リネーミング処理部2は、命令解析&リクエスト生成部21と、レジスタ番号リネーム部22と、投機レベル管理部23と、を備える。
リネーミング・テーブル制御部5は、使用中物理レジスタ管理部51と、リネーミング・テーブル52と、を備える。
【0032】
図4に示す情報処理装置において、本発明に係るリネーミング機能は、リネーミング処理部2と、リネーミング・テーブル制御部5に実装されており、リネーミング処理部2及びリネーミング・テーブル制御部5によって実現されるが、リネーミング機能を実現する構成は、必ずしも、図4に示す構成に限定されるものではなく、相当する構成要素を有してさえいれば、既成の他の一般的なリネーミング機構を採用してもよい。
【0033】
以下、本発明の実施形態に係る情報処理装置の機能を説明する。
リネーム前命令バッファ1は、CPUの主制御部(図示は省略)がフェッチした命令を蓄える。
リネーミング処理部2は、リネーム前命令バッファ1に蓄えられた命令に対し、レジスタのリネーミングを実施する。
発行待ち命令バッファ3は、リネーミング処理部2によってレジスタ・リネーミングされた命令を蓄える。
命令発行部4は、発行待ち命令バッファ3に蓄えられた命令を発行する。
リネーミング・テーブル制御部5は、リネーミング・テーブル52を制御する。
以下、リネーミング・テーブル52の機能について、さらに説明する。
【0034】
図5は、SURとSRとの対応付けを行うためのリネーミング・テーブルの記憶領域構成を示す構成図である。
リネーミング・テーブル52は、集合SSURの集合HSRへの写像fの役割を担う対応テーブルを有する構成要素である。つまり、リネーミング・テーブル52は、SURとSRとの対応付けを行い、またSURのレジスタ番号から、対応付けられたSRのレジスタ番号を求める機能を有する。
以下の説明において、例えば、符号P(×××)と示した箇所は、情報×××または信号×××を示すものとする。
【0035】
(動作の説明)
以下、本発明の実施形態に係る情報処理装置の動作を説明する。
まず、図4を参照し、基本的な動作であるレジスタ・リネーミングの動作について説明する。
リネーム前命令バッファ1に蓄えられた命令は、P1(リネーム前命令)に含められてリネーミング処理部2の命令解析&リクエスト生成部21へ送出される。
命令解析&リクエスト生成部21は、上記の命令から、P11(物理レジスタ新規確保リクエスト)を、リネーミング・テーブル制御部5の使用中物理レジスタ管理部51に送出する。ここで、P11(物理レジスタ新規確保リクエスト)は、抽出したライト先の論理レジスタの番号(書き込みアクセスする論理レジスタの番号)を含む情報である。
【0036】
また、命令解析&リクエスト生成部21は、上記の命令から、この命令上で指定されている論理レジスタ(前述のSUR)番号を抽出する。次に、命令解析&リクエスト生成部21は、P10(物理レジスタ番号リクエスト)を、リネーミング・テーブル制御部5のリネーミング・テーブル52に送出する。ここで、P10(物理レジスタ番号リクエスト)は、抽出したリード先の論理レジスタ(前述のHR)の番号(読み取りアクセスする論理レジスタの番号)を含む情報である。
【0037】
P11(物理レジスタ新規確保リクエスト)を受けたリネーミング・テーブル制御部5の使用中物理レジスタ管理部51は、物理レジスタの使用状況を調べ、P11(物理レジスタ新規確保リクエスト)に含まれる論理レジスタ番号及び未使用の物理レジスタ番号をP12(リネーミング・テーブル更新指示)に含めて、リネーミング・テーブル52に送出する。
【0038】
P12(リネーミング・テーブル更新指示)を受けたリネーミング・テーブル52は、通知された論理レジスタ番号に対して、同じく通知された未使用の物理レジスタ番号との関連付けを行う。また、それまで関連付けられていた物理レジスタが有れば、該物理レジスタのレジスタ番号をP13(物理レジスタ解放指示)に含めて、使用中物理レジスタ管理部51へと送出する。このP13(物理レジスタ解放指示)を受け取った使用中物理レジスタ管理部51は、指示された物理レジスタを解放する。
【0039】
一方、P10(物理レジスタ番号リクエスト)を受けたリネーミング・テーブル52は、通知された論理レジスタ番号から、該番号に対応する物理レジスタ番号を求める。その後、リネーミング・テーブル52は、P11(物理レジスタ新規確保リクエスト)、及びP10(物理レジスタ番号リクエスト)に対する応答として、レジスタ番号リネーム部22に対し、P6(物理レジスタ番号リプライ)を送出し、これらの物理レジスタ番号を通知する。
【0040】
レジスタ番号リネーム部22では、命令解析&リクエスト生成部21から論理レジスタ番号抽出後の命令を受け取る。また、リネーミング・テーブル52からのP6(物理レジスタ番号リプライ)を受けて、前記命令上の論理レジスタ番号を物理レジスタ番号へと書き換えた上で、該命令をP7(リネーム済み命令)として発行待ち命令バッファ3へと送出する。
発行待ち命令バッファ3に蓄えられた命令は、命令発行部4より、P9(発行命令)として、Out-of-Orderで発行されて行く。
【0041】
(新設の命令セット)
本発明は、前述のとおり、レジスタ・リネーミング機構を実装するプロセッサにおいて、上記SUR及びRRの数を、実行処理するソフトウェア(プログラム)によってフレシキブルに変更できるようにしたことを特徴としている。
本発明ではSUR及びRRの数を変更するために、命令セットに新設の専用命令を含めており、この専用命令を発行することにより、上記のSUR及びRRの数を変更できるようにしている。
【0042】
ここで、前述の、実行処理するソフトウェア(プログラム)は、実行形式のプログラム(機械語で書かれたオブジェクト・プログラム)とするが、ソースプログラムの場合は、コンパイラ等を含むOSを介して、最終的には実行形式のプログラムに翻訳されるので、ソースプログラムであってもよい。前述の専用命令は、ソースプログラムを書く一般ユーザ、ソースプログラムを相対形式のオブジェクトプログラムに翻訳するコンパイラ等、及びハードウェアを制御する常駐のOSの、いずれもが直接的または間接的に発行することができるので、上記のいずれによっても、上記SURの数及びRRの数を変更することができる。
【0043】
以下、この専用命令の機能について説明する。ここでは、SURの数を増加または減少させるための命令の機能について説明する。この命令のうち、SURの数を増加させるための命令は、必ずしも設ける必要はなく、最低限、SURの数を減少させるための命令だけを設けるものとする。
a.専用命令−1
この専用命令は、命令のオペランドにおいて、SUR上の任意のレジスタ番号を指定する。指定されたレジスタ番号以降のレジスタは全て解放され、どのSRとも関連付けられない未使用の状態にする。なお、未使用の状態のレジスタに対するリードは許されない。本専用命令は、SURの数を減らさせるだけの機能を有する。
【0044】
b.専用命令−2
この専用命令は、専用命令−1と同様、SUR上の任意のレジスタ番号をオペランドにて指定する。本専用命令では、指定されたSURレジスタのみを解放し、これを未使用な状態にするものとする。専用命令−1と同様、未使用の状態のレジスタに対するリードは許されず、本命令もまた、SURを減らすのみである。
【0045】
c.専用命令−3
この専用命令も、オペランドにて任意のレジスタ番号をオペランドにて指定する。さらに、オペランドには「解放」動作または「確保」動作のいずれか1つを指示するためのビット情報も指定する。
「解放」動作が指示された場合には、専用命令−1と同様に、オペランドにて指定されたレジスタ以降のレジスタを解放する。但し、解放された未使用の状態のレジスタに対するリードは許されない。
他方、「確保」動作が指示された場合には、指定されたSURレジスタ番号までに存在する未使用なSURレジスタに対し、SR上のレジスタへの関連付けを行わさせる。なお、関連付けられはしたが、未だデータを書き込んでいない状態でレジスタをリードした場合には、その値は不定とする。
【0046】
d.専用命令−4
本専用命令も、オペランドにて任意のレジスタ番号を指定する。さらに、オペランドには「解放」及び「確保」を識別するビットを有する。「解放」動作においては、専用命令−2と同様に、オペランドにて指定されたレジスタに対してのみレジスタの解放動作を実施する。また、「確保」動作においても同様に、指定されたSUR上のレジスタに対してのみSRとの関連付けを実施する。なお、既に解放されているSURレジスタへの解放指示、及び、既に確保されているレジスタへの確保指示に対しては、ノーオペレーションとなり、何も動作しないものとする。
【0047】
以下、図4を参照し、SURを減らす場合の動作について説明する。
SUR数を減らすには、例えば、前述のレジスタ開放の専用命令−1を発行する。リネーム前命令バッファ1を介して、このレジスタ解放の専用命令を受けた命令解析&リクエスト生成部21は、リネーミング・テーブル52に対し、P5(論理レジスタ解放指示)を送出する。
【0048】
図6は、論理レジスタ解放指示を受けたリネーミング・テーブル52の変化を示す説明図である。
このP5(論理レジスタ解放指示)を受けたリネーミング・テーブル52は、図6に示すように、それ以降のレジスタを解放し、さらに使用中物理レジスタ管理部51へと、P13(物理レジスタ解放指示)を送出し、解放された論理レジスタに関連付けられていた仮想レジスタSRを未使用な状態へと変更させる。以上の動作によって、SURが減り、その結果、SRが減り、RRを増やすことができる。他の専用命令(専用命令−2〜専用命令−4)を発行する場合においても、1つの専用命令で解放するレジスタの数が1つか、それとも複数かの違いが有る以外は、上記と同様の動作となる。
【0049】
以下、図4を参照し、SURを増やす場合の動作について説明する。
この場合、例えば、前述のレジスタ開放の専用命令−3を発行する。
リネーム前命令バッファ1を介して、このレジスタ解放の専用命令を受けた命令解析&リクエスト生成部21は、前述のリネーミングの動作を利用する。即ち、前述のリネーミングの動作では、SURとSRとの関連付けは書き込み先レジスタとしてSUR が指定される度に行われる。このことを利用し、未使用なSURレジスタを選んで、書き込みを行う命令の書き込み先レジスタとして指定されたSURを、該未使用のSURレジスタにリネームする。
【0050】
図7は、論理レジスタ確保指示を受けた場合のリネーミング方法を示す説明図である。
同図に示すように、SURレジスタとSRとの関連付けが行われることでSURが増え、結果としてSRを増やし、RRを減らすことができるようになる。
なお、上記の説明では、分岐命令が無いケースで説明したが、本実施形態に係る情報処理装置は、分岐命令が有る場合の最適化機能(即ち、投機実行を制御する機能)も備えている。
【0051】
以下、投機実行を制御する機能について、簡単に説明する。
投機とは、分岐の際に分岐先を予測し、分岐先が決定する前に予測した先の分岐先の命令を実行するものである。周知の技術として、一般的に実施されている技術であるため、ここでは投機に関する詳細な説明は省くが、本実施形態では、この投機実行に備えて、投機レベルを設けて制御している。
【0052】
投機レベル管理部23(図4)において、非投機時はレベル0、投機中はレベル1、投機中にさらに投機が発生するとレベル2,3,……、と上がっていく投機レベルの管理を行っている。よって、リネーミング・テーブル52は、この投機レベル毎にSURとHRとの対応関係を保持している。リネーミング・テーブル52は、投機レベルが上がったときは、前の投機レベルの状態をコピーし、投機成功(分岐予測先が正しい)場合には、リネーミング・テーブル52上の投機レベル0の状態を破棄し、投機レベル1以降の対応関係を1つ下のレベルへとシフトする。また、投機失敗(分岐予測先が間違い)の場合には、失敗した投機レベル以降のレベルの関連付けを全て解放する。
【0053】
前述の専用命令が発行された場合の動作の説明は、投機レベルがレベル0の場合であるが、投機レベルがレベル1,2,3,……、と上がった場合には、SURの増減の操作は、この上がった投機レベルに対してのみ行うものとする。
本実施形態に係る情報処理装置によれば、メモリアクセス命令を削減することで、処理性能の向上が図れる効果が得られる。以下、この効果について、更に詳細に説明する。
【0054】
図8は、メモリアクセス命令を削減することによって処理性能の向上が図れることを示すタイムチャート図であり、図8(a)は比較のための周知の情報処理装置のタイムチャートを示し、図8(b)は本実施形態に係る情報処理装置のタイムチャートを示す。
図8(a)の右端に示す命令列(左側のタイムチャートに対応)では、SUR数(=SR数)が不足のため、命令列上でレジスタ上のデータ退避のためのLoad/Store命令が発生している。
そこで、本実施形態に係る情報処理装置では、図8(b)に示すように、SUR数(=SR数)を増やすことができる。
【0055】
ここでは、SUR数が増えたために、上記のプログラムが図8(b)の右端のように書き換えるられる。この命令列(左側のタイムチャートに対応)を見れば分かる通り、Load/Store命令が使用されていない。この結果、メモリアクセス命令を削減し、処理性能を向上させることができる。
また、本実施形態に係る情報処理装置によれば、レジスタ解放待ち時間が無くなることで、性能向上が図れる効果が有る。
【0056】
図9は、レジスタ解放待ち時間を無くすことによって処理性能の向上が図れることを示すタイムチャート図であり、図9(a)は比較のための周知の情報処理装置のタイムチャートを示し、図9(b)は本実施形態に係る情報処理装置のタイムチャートを示す。
図9(a)の右端に示す命令列(左側のタイムチャートに対応)は、小さな命令列のループとなっており、RRを利用した投機実行が行われている。しかし、RRが不足しているために、レジスタの解放待ち時間が発生している。
そこで、本実施形態に係る情報処理装置では、図9(b)に示すように、SUR数(=SR数)を増やすことができる。
【0057】
ここでは、SUR数が増えたために、上記と同じプログラムであっても、レジスタの解放待ち時間が無くなり、処理性能を向上させることができる。
また、本実施形態に係る情報処理装置によれば、SURの数をソフトウェアによって任意のタイミングで変更可能であるため、プログラム全体の特性や、プログラム内の局所的な特性に合わせてSR及びRRの比率を細かく最適化できることになり、高い実行性能が得られる効果がある。
【0058】
また、本実施形態に係る情報処理装置によれば、関連する周知の情報処理装置と同じだけのSR及びRRを、より少ないハードウェアリソースで実現できるようになる効果がある。関連する周知の情報処理装置が採用している技術では、SR+RRの数を賄うことができるハードウェアリソースが必要であったが、本発明で同量のRR数を用意するにはRR<SRであれば、最低限SR分だけのハードウェアリソースで実現可能であり、また、RR>SRの場合であっても、最低限RR数+αのサイズのハードウェアリソースがありさえすれば実現可能であるため、ハードウェアリソースを削減することができる効果が得られる。
さらに、本実施形態に係る情報処理装置によれば、上記の効果に関連し、ハードウェアリソースが削減されるため、消費電力を減らすことができる効果も生じる。
【0059】
(他の実施形態)
本発明に係る情報処理装置は、ベクトル計算機としても実現することができる。
図10は、本発明の他の実施形態に係る情報処理装置(ベクトル計算機)の全体構成を示す構成図である。
同図に示す情報処理装置(ベクトル計算機)は、前述の実施形態に係る情報処理装置(図4)に、ポインタ・リスト制御部25が追加された構成を備える。
ポインタ・リスト制御部25は、使用中物理レジスタ管理部251と、ポインタ・リスト252と、を備える。
また、便宜的にリネーミング・テーブル制御部の管理するレジスタを仮想ベクトルレジスタとし、51を使用中仮想レジスタ管理部とする。
【0060】
図10において、P14はポインタ送出指示、P15は物理ベクトルレジスタ新規領域確保リクエスト、P16は物理ベクトルレレジスタ開放指示、P17は物理ベクトルレジスタ新規領域確保通知、P18はポインタ更新指示を、それぞれ示す。
使用中物理レジスタ管理部251の機能及び動作は、前述の使用中仮想レジスタ管理部51の機能及び動作に準ずるものである。
また、使用中ポインタ・リスト252には、仮想ベクトルレジスタと物理レジスタとの対応関係(仮想ベクトルレジスタ中の各要素の物理レジスタへの割り付け状況)を示すテーブル(図示は省略)が備えられている。
【0061】
この実施形態によれば、SURを減らす際には、仮想ベクトルレジスタの解放の他、ポインタ・リスト上のエントリの削除、及び物理ベクトルレジスタの解放も実施される。
前述の各実施形態では、最も標準的なレジスタ・リネーミング機構の構成を示したが、レジスタ・リネーミング機構を実現する構成は、これまでに様々な手法が考えられており、また、その構成自体は本発明の本質とは直接関係しないので、前述の集合論の符号による関係式で説明できる構成でありさえすればよく、その実現方法は特に限定されない。
【産業上の利用可能性】
【0062】
本発明は、情報処理装置の構築に適用可能であり、特に、レジスタ・リネーミング機構を実装し、パイプライン処理等で一層高い処理能力が求められる情報処理装置の構築に好適である。
また、本発明は、オブジェクトがパイプライン処理されることを前提とするコンパイラ等が実行する最適化方法としても好適である。
【符号の説明】
【0063】
1 リネーム前命令バッファ
2 リネーミング処理部
3 発行待ち命令バッファ
4 命令発行部
5 リネーミング・テーブル制御部
21 命令解析&リクエスト生成部
22 レジスタ番号リネーム部
23 投機レベル管理部
25 ポインタ・リスト制御部
51 使用中物理レジスタ管理部
52 リネーミング・テーブル

【特許請求の範囲】
【請求項1】
物理レジスタへの論理レジスタの割り付けを実行することで管理し、未使用の論理レジスタが所定の命令セットに属する命令で指定された際に、未使用の物理レジスタに対し関連付けを実施することの出来るレジスタ・リネーミング手段を備えた情報処理装置であって、
所定の命令セットに属する専用命令として、前記論理レジスタの物理レジスタへの割り付けに対し、指定される論理レジスタの物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、
論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタのリネーム先として使用できる物理レジスタ量を変更、最適化することが出来ることを特徴とする情報処理装置。
【請求項2】
物理レジスタへの論理レジスタの割り付けを実行することで管理し、未使用の論理レジスタが所定の命令セットに属する命令で指定された際に、未使用の物理レジスタに対し関連付けを実施することの出来るレジスタ・リネーミング手段を備えた情報処理装置であって、
所定の命令セットに属する専用命令として、前記論理レジスタの物理レジスタへの割り付けに対し、指定される未使用の論理レジスタを未使用の物理レジスタに対し全て割り付けを実施させるものと、
所定の命令セットに属する専用命令として、前記論理レジスタの物理レジスタへの割り付けに対し、指定される論理レジスタの物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、
論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタのリネーム先として使用できる物理レジスタ量を変更、最適化することが出来ることを特徴とする情報処理装置。
【請求項3】
物理レジスタへの論理レジスタの割り付けを実行し、管理するリネーミング手段を備えた情報処理装置であって、
所定の命令セットに属する専用命令として、前記論理レジスタの物理レジスタへの割り付けに対し、指定される未使用の論理レジスタを未使用の物理レジスタに対し全て割り付けを実施させるものと、
所定の命令セットに属する専用命令として、前記論理レジスタの物理レジスタへの割り付けに対し、指定される論理レジスタの物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、
論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタのリネーム先として使用できる物理レジスタ量を変更、最適化することが出来ることを特徴とする情報処理装置。
【請求項4】
物理レジスタへの論理レジスタの割り付けを実行し、管理するリネーミング手段を備えた情報処理装置であって、
命令セットアーキテクチャとしてソフトウェアに対し公開される論理レジスタ数が、実装されている物理レジスタ数と等しいことを特徴とする、請求項1乃至請求項3記載の情報処理装置。
【請求項5】
物理レジスタへの論理レジスタの要素毎の割り付けを実行することで管理し、未使用の論理レジスタが所定の命令セットに属する命令で指定された際に、該論理レジスタの各要素を未使用の物理レジスタに対し関連付けを実施することの出来るレジスタ・リネーミング手段を備えたベクトル型の情報処理装置であって、
所定の命令セットに属する専用命令として、前記論理レジスタの各要素と物理レジスタの割り付けに対し、指定される使用中論理レジスタの各要素の物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、
論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタの要素毎のリネーム先として使用できる物理レジスタ量を変更、最適化することができることを特徴とするベクトル型情報処理装置。
【請求項6】
物理レジスタへの論理レジスタの要素毎の割り付けを実行することで管理し、未使用の論理レジスタが所定の命令セットに属する命令で指定された際に、該論理レジスタの各要素を未使用の物理レジスタに対し関連付けを実施することの出来るレジスタ・リネーミング手段を備えたベクトル型の情報処理装置であって、
所定の命令セットに属する専用命令として、前記論理レジスタの各要素の物理レジスタへの割り付けに対し、指定される未使用論理レジスタの各要素を未使用の物理レジスタに対して全て割り付けを実施させるものと、
所定の命令セットに属する専用命令として、前記論理レジスタの各要素と物理レジスタの割り付けに対し、指定される使用中論理レジスタの各要素の物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、
論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタの要素毎のリネーム先として使用できる物理レジスタ量を変更、最適化することができることを特徴とするベクトル型情報処理装置。
【請求項7】
物理レジスタへの論理レジスタの要素毎の割り付けを実行し、管理するリネーミング手段を備えたベクトル型の情報処理装置であって、
所定の命令セットに属する専用命令として、前記論理レジスタの各要素の物理レジスタへの割り付けに対し、指定される未使用論理レジスタの各要素を未使用の物理レジスタに対して全て割り付けを実施させるものと、
所定の命令セットに属する専用命令として、前記論理レジスタの各要素の物理レジスタへの割り付けに対し、指定される使用中論理レジスタ内の各要素の物理レジスタへの割り付けを全て解除させ、未使用の論理レジスタ及び物理レジスタとするものを備え、
論理レジスタのうちソフトウェアで使用するレジスタの量及び、リネーミング時に論理レジスタ内の各要素のリネーム先として使用できる物理レジスタ量を変更、最適化することができることを特徴とするベクトル型情報処理装置。
【請求項8】
物理レジスタへの論理レジスタの要素毎の割り付けを実行し、管理するリネーミング手段を備えたベクトル型の情報処理装置であって、
命令セットアーキテクチャとしてソフトウェアに対し公開される論理レジスタ内の各要素の総数が、実装されている物理レジスタ数と等しいことを特徴とする、請求項5乃至請求項7記載のベクトル型情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−18120(P2011−18120A)
【公開日】平成23年1月27日(2011.1.27)
【国際特許分類】
【出願番号】特願2009−160931(P2009−160931)
【出願日】平成21年7月7日(2009.7.7)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】