JP3560482B2 - 命令制御装置 - Google Patents
命令制御装置 Download PDFInfo
- Publication number
- JP3560482B2 JP3560482B2 JP35898598A JP35898598A JP3560482B2 JP 3560482 B2 JP3560482 B2 JP 3560482B2 JP 35898598 A JP35898598 A JP 35898598A JP 35898598 A JP35898598 A JP 35898598A JP 3560482 B2 JP3560482 B2 JP 3560482B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- control unit
- issuance
- issued
- register
- 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
Links
Images
Landscapes
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は命令制御装置に関し、特にリザベーションステーションを有する情報処理装置において、異なった演算サイクル数で演算を行う演算器群が入力レジスタと出力レジスタを共用しながら並行に動作することを可能とする命令制御装置に関するものである。
【0002】
【従来の技術】
命令処理を高速に実行するために順序を外れた命令実行を可能とする情報処理装置においては、命令の解読サイクルの後にリザベーションステーションと呼ばれる解読済命令格納手段に解読済命令を格納し、ソースオペランドが使用可能となった命令が解読順序に関係なく選ばれてリザベーションステーションから演算器に命令が発行される。
【0003】
ここで、順序を外れた命令実行 (out−of−order) とは、プログラムにより指示された命令順序とは異なった順序で、入力データがそろった命令から随時実行する処理をいう。命令の実行は任意の順序であるが、プログラムからアクセス可能な資源、すなわち記憶域、レジスタ内容等はプログラム順序で更新参照されたように命令は実行される。
【0004】
図1は、従来の命令発行及び演算実行のパイプライン処理例を示したものである。
図1の(a)は、リザベーションステーションを介した基本的なパイプライン処理の一例を示したものであり、ここでDサイクルは命令デコードサイクル、Pサイクルはリザベーションステーション上で発行すべき命令が選択されるサイクル、Bサイクルはソースオペランド読み出しサイクル、Xサイクルは演算実行サイクル、そしてUサイクルはレジスタ更新サイクルである。
【0005】
図1の(a)によれば、命令1のPサイクルで命令1の更新すべきレジスタ番号に相当するソースオペランド使用可能表示が有効化され、ただちに次のBサイクルでそのレジスタをソースオペランドとして使用する命令2が発行される。命令1の演算結果は図1の(a)に点線で示すように命令2へフォワーディングされ、命令1及び命令2が順次パイプライン処理される。
【0006】
図1の(b)は、演算に必要なサイクル数が異なった演算処理の一例を示したものである。図1の(b)に示すように、浮動小数点の乗算には4つの演算実行サイクル(X1〜X4)が必要である。一方、浮動小数点の加算には2つの演算実行サイクル(X1及びX2)が必要である。このように演算実行サイクル数が異なる演算をパイプライン処理する場合には、従来において以下に示す処理を行っていた。
【0007】
すなわち、常にPサイクルでソースオペランド使用可能表示を有効化することを前提に、先行する命令が演算サイクルが長い命令、例えば浮動小数点乗算のような命令、を実行する場合には、後続命令の演算開始を一括して抑止し、その演算結果を後の所定のタイミングで後続の命令にフォワーディングする処理をおこなっていた。図1の(b)の例では、先行する乗算命令の演算が終了する4番目の演算実行サイクルX4で、その演算結果が後続の加算命令にフォワーディングされる。
【0008】
【発明が解決しようとする課題】
その結果、従来のパイプライン処理においては乗算命令後の命令発行が一律に遅延するという問題が存在し、それは例えば科学計算のように乗算と加算が頻繁に繰り返される積和演算等の演算効率を大きく低下させる要因になっていた。
【0009】
ところで、本来順序を外れた命令実行を可能とする情報処理においては、各命令間でレジスタ干渉が存在する場合は別として、レジスタ干渉が存在しない場合には図1の(b’)に示すようにそれぞれ独立に命令が実行されるべきである。また、CPU内部の乗算器や加算器はそれぞれ別箇のハードウェアとして備えられており、それぞれ並列動作が可能である。
【0010】
そこで本発明の目的は、上記問題点に鑑み、入出力レジスタを共用し、且つ演算に必要なサイクル数が異なった演算処理を順次実行する際に、各演算を適切なタイミングで並列実行させることで演算遅延を低減し、高速なパイプライン処理を可能とする命令制御装置を提供することにある。
【0011】
【課題を解決するための手段】
本発明によれば、複数個の解読済命令を格納するリザベーションステーションでソースオペランドが使用可能となった命令の演算部に対する発行制御を行う発行命令制御部と、前記発行命令制御部で発行された命令をその各命令サイクルに対応して格納するレジスタ群、及び前記レジスタ群の各レジスタ毎に設けられ、前記発行された命令の種別に応じて前記更新タイミング信号及び/又は発行抑止信号を適宜生成するデコーダを含み、前記デコーダで解読した命令の種別に応じてその後続命令に対するソースオペランド使用可能情報の更新タイミング信号及び発行抑止信号を生成する演算パイプライン制御部と、を具備し、前記発行命令制御部は、前記演算パイプライン制御部からの更新タイミング信号及び発行抑止信号に従って、前記後続命令の発行を適宜制御する命令制御装置が提供される。
【0012】
前記発行命令制御部は、前記リザベーションステーションから与えられた命令のソースオペランド使用可能情報を表示するテーブルを有し、それを参照して前記ソースレジスタの使用可/不可情報を出力するソースオペランド使用可能表示部と、前記リザベーションステーションから与えられた命令のオペコードの発行可/抑止情報を出力する命令発行抑止制御部と、前記ソースオペランド使用可能表示部からソースレジスタの使用可情報が与えられ、且つ前記命令発行抑止制御部からオペコードの発行可情報が与えられたときに前記演算器に命令を発行する命令発行部と、を有する。前記ソースオペランド使用可能情報は前記更新タイミング信号によって更新され、そして前記オペコードの発行可/抑止情報の出力タイミングは前記発行抑止信号によって制御される。
【0013】
【発明の実施の形態】
図2は、本発明による命令制御装置の基本構成例を示したものである。
図2において、命令レジスタ(IWR)11は、図示しない命令キャッシュから命令をフェッチし、その解読済命令がリザベーションステーション(RES)12に格納される。リザベーションステーション12の各エントリー上の命令は、ソースオペランドが使用可能となったものから順次命令発行制御部13により選択され、演算器14へ発行される。
【0014】
その発行命令(OPCODE)は、同時に演算パイプライン制御部15にも送られる。演算パイプライン制御部15では、前記発行命令から後続命令のためのソースオペランド使用可能表示更新制御信号(WE1、WA1、WE2、WA2)と命令発行抑止信号(INH1、INH2)とを生成し、それを命令発行制御部13に返送する。命令発行制御部13では前記ソースオペランド使用可能表示更新制御信号及び命令発行抑止信号を使って、前記後続命令の発行タイミングを先行命令の種別に基づき適宜制御する。以下、本発明を実現する各構成要素について詳述する。
【0015】
図3は、図2のリザベーションステーション12の一構成例を示したものである。
図3において、リザベーションステーション12の各エントリー(RSE0、RSE1、...)には命令レジスタ11で解読された命令が逐次格納される。各エントリーで、OPCODEは演算の種類を示すコード部であり、R1及びR2はソースレジスタ番号を、そしてR3は書き込みレジスタ番号を示している。
【0016】
図4は、図2の命令発行制御部13の一構成例を示したものである。
図4に示すように、命令発行制御部13は、ソースオペランド使用可能表示部21、命令発行抑止制御部22、及び命令発行部23を含む。前記リザベーションステーション12上のあるエントリーから発行されたソースレジスタ番号R1,R2はソースオペランド使用可能表示部21に、そしてそのOPCODEは命令発行抑止制御部22にそれぞれ与えられる。
【0017】
ソースオペランド使用可能表示部21では、その内部に備えたソースオペランド使用可能表示テーブルを参照して与えられたソースレジスタ番号R1の使用可/不可信号24及びソースレジスタ番号R2の使用可/不可信号25を出力する。また、命令発行抑止制御部22では与えられたOPCODEの発行可/抑止を指示する信号26を出力する。命令発行部23は、ソースレジスタR1,R2が使用可能で且つOPCODEが発行可能の時、すなわち前記各信号24〜26の論理積によってその命令が発行可能であることを示す信号27を出力する。
【0018】
前記各信号24〜26の出力は、図2の演算パイプライン制御部15から与えられる信号によって制御される。演算パイプライン制御部15は発行された命令を基に更新レジスタアドレス(WA1、WA2)を含むその更新タイミング信号(WE1、WE2)を生成し、それによって命令発行制御部13ではソースオペランド使用可能表示部21の前記ソースオペランド使用可能表示テーブルが更新される。同様に、演算パイプライン制御部15は先行する発行命令を基に命令に依存する命令発行抑止信号(INH1、INH2)を生成し、それによって命令発行抑止制御部22は後続命令の発行抑止タイミングを制御する。
【0019】
図5は、命令発行制御部13の命令発行制御フローの一例を示したものである。
図5のステップS101では、リザベーションステーション12に格納された解読済命令のうちソースレジスタが使用可能な命令が発行対象として選択される。次に、選択された命令が浮動小数点加算命令か否かが判断され(S102)、浮動小数点加算命令の場合には加算の発行を抑止する命令発行抑止信号INH1の有無が判断される(S103)。
【0020】
INH1=1の場合にはINH1=0となるまでその命令の発行が抑止され、INH1=0となった時点で命令が発行される。また、その発行された浮動小数点加算命令のBサイクルでオペランド使用可能表示テーブルが更新される(S104)。INH1=0の場合には、従来どおり発行された先行命令のPサイクルの後直ちに後続の浮動小数点加算命令が発行される。
【0021】
選択された命令が浮動小数点乗算命令の場合には、乗算の発行を抑止する命令発行抑止信号INH2の有無が判断される(S105及び106)。INH2=1の場合にはINH2=0となるまで命令が抑止され、INH2=0となった時点で命令が発行される。また、その発行された浮動小数点乗算命令のX2サイクルでオペランド使用可能表示テーブルが更新される(S107)。INH2=0の場合には、従来どおり前記発行命令のPサイクルの後直ちに後続の浮動小数点乗算命令が発行される。
【0022】
選択された命令が浮動小数点加算命令及び浮動小数点乗算命令以外の命令(1サイクル演算命令)の場合には、前記INH1=0且つINH2=0の時に、従来どおり先行命令のPサイクルの後直ちに後続命令が発行される。また、その発行命令のPサイクルでオペランド使用可能表示テーブルが更新される(S108及び109)。INH1=1又はINH2=1の時にはINH1=0且つINH2=0となるまで後続の命令発行が抑止される(S108)。
【0023】
図6及び図7は、図2の演算パイプライン制御部15の一構成例を示したものである。
図6において、命令発行制御部13で発行されたOPCODEは、その命令の各命令サイクル(P、B、X1、X2、...)毎に対応するレジスタ31〜35へ順次シフトされる。そして各レジスタ31〜35毎に設けられたOPECODEのデコーダにより発行命令の種別に対応してその更新タイミング信号(WE1、WE2)及び命令発行抑止信号(INH1、INH2)が生成される。また、図示しない書き込みレジスタ番号R3も同様にシフトレジスタに保持され、更新レジスタアドレス(WA1、WA2)が適宜生成される。
【0024】
具体的には、図7に示すようにPサイクルではP_OPCODEレジスタ31に入力されたは発行命令(OPCODE)がPデコーダ36で解読され、命令が1サイクル演算命令の時には更新タイミング信号WE1が出力される(図5のS109)。次にBサイクルでは、前記P_OPCODEレジスタ31からB_OPCODEレジスタ32へシフトされたは発行命令がBデコーダ36で解読され、命令が浮動少数点加算命令の時には更新タイミング信号WE1が出力され(図5のS104)、又は浮動少数点乗算命令の時には命令発行抑止信号INH2が出力される。
【0025】
以降の各命令サイクルにおけるシフト及びデコード動作も上記と同様であり、X1サイクルではX1デコーダ38により浮動少数点乗算命令の時に命令発行抑止信号INH1及びINH2が出力される。また、X2サイクルではX2デコーダ39により浮動少数点乗算命令の時に更新タイミング信号WE1が出力される(図5のS107)。
【0026】
このように、加算や乗算等の各演算に対応する命令発行の抑止タイミングを生成することで共用する出力レジスタ使用の際の調停が行われ、同時並列に各演算器による演算が可能となる。また、各演算に対応する演算器群毎にソースオペランド使用可能の指示と出力レジスタ使用の際の抑止タイミングとを組み合わせることにより、演算実行結果を異なったタイミングで後続命令へ適宜フォワーディングすることが可能となる。
【0027】
図8には、これまでの説明の一例として浮動小数点乗算命令に続く後続命令の動作タイムチャート例を示している。
図8の(a)には、図6及び7で説明した演算パイプライン制御部15に浮動少数点乗算命令が入力されそれが各レジスタでデコードされ、B及びX1サイクルで乗算の発行を抑止するINH2を出力し、またX1サイクルで加算の発行を抑止するINH1を出力し、さらにX2サイクルでソースオペランド使用可能表示の更新タイミング及びアドレス信号WE1、WA1を出力する場合を示している。
【0028】
図8の(b)は、前記発行された浮動少数点乗算命令と後続の浮動少数点加算命令とが相互にレジスタ干渉を有しない場合の動作の一例を示している。従来は一律に後続命令の処理が遅延させられていたのに対し、本例ではレジスタ干渉がない時に後続の加算命令は乗算のPサイクル後のBサイクルで直ちに発行可能となる。
【0029】
一方、図8の(c)は、先行する乗算命令とレジスタ干渉を有する後続の加算命令の動作例を示したものである。この場合には先行する乗算命令によりオペランド使用可能表示テーブルが更新されるX2サイクル後のX3サイクルで命令発行が可能となる。従って、この場合は従来一律に更新を遅延させていた場合と同様となる( 図1の(b)参照)。
【0030】
図8の(d)は、先行する浮動少数点乗算命令の後続命令も浮動少数点乗算命令の場合を示している。この場合、INH2=0となった後のX2サイクルで直ちに命令が発行される。これは乗算器の資源が互いにオーバラップして干渉するのを防ぐためである。従来は一律にX3サイクルで命令発行が成されていたのに対し、それよりも1命令サイクル早く適宜フォワーディング処理がなされる。
【0031】
【発明の効果】
以上説明したように、本発明によれば、命令発行制御部13が演算パイプライン制御部15からの先行命令に関する情報(レジスタの更新情報及び遅延処理タイミング情報)を入手し、それに基づいて後続命令の発行タイミングを適宜制御するため、入出力レジスタを共用し且つ演算に必要なサイクル数が異なる演算処理間の遅延を最小化し高速にパイプライン処理することが可能となる。
【図面の簡単な説明】
【図1】従来の命令発行及び演算実行のパイプライン処理例を示した図である。
【図2】本発明による命令制御装置の基本構成例を示した図である。
【図3】リザベーションステーションの一構成例を示した図である。
【図4】命令発行制御部の一構成例を示した図である。
【図5】命令発行制御部の命令発行制御フローの一例を示した図である。
【図6】演算パイプライン制御部の一構成例(1)を示した図である。
【図7】演算パイプライン制御部の一構成例(2)を示した図である。
【図8】浮動小数点乗算命令に続く後続命令の動作タイムチャートの一例を示した図である。
【符号の説明】
11…命令レジスタ
12…リザベーションステーション
13…命令発行制御部
14…演算器
15…演算パイプライン制御部
21…ソースオペランド使用可能表示部
22…命令発行抑止制御部
23…命令発行部
31〜35…シストレジスタ
36〜39…デコーダ
Claims (3)
- 複数個の解読済命令を格納するリザベーションステーションでソースオペランドが使用可能となった命令の演算部に対する発行制御を行う発行命令制御部と、
前記発行命令制御部で発行された命令をその各命令サイクルに対応して格納するレジスタ群、及び前記レジスタ群の各レジスタ毎に設けられ、前記発行された命令の種別に応じて前記更新タイミング信号及び/又は発行抑止信号を適宜生成するデコーダを含み、前記デコーダで解読した命令の種別に応じてその後続命令に対するソースオペランド使用可能情報の更新タイミング信号及び発行抑止信号を生成する演算パイプライン制御部と、を具備し、
前記発行命令制御部は、前記演算パイプライン制御部からの更新タイミング信号及び発行抑止信号に従って、前記後続命令の発行を適宜制御することを特徴とする命令制御装置。 - 前記発行命令制御部は、
前記リザベーションステーションから与えられた命令のソースオペランド使用可能情報を表示するテーブルを有し、それを参照して前記ソースレジスタの使用可/不可情報を出力するソースオペランド使用可能表示部と、
前記リザベーションステーションから与えられた命令のオペコードの発行可/抑止情報を出力する命令発行抑止制御部と、
前記ソースオペランド使用可能表示部からソースレジスタの使用可情報が与えられ、且つ前記命令発行抑止制御部からオペコードの発行可情報が与えられたときに前記演算器に命令を発行する命令発行部と、を有する請求項1記載の命令制御装置。 - 前記ソースオペランド使用可能情報は前記更新タイミング信号によって更新され、そして前記オペコードの発行可/抑止情報の出力タイミングは前記発行抑止信号によって制御される請求項2記載の命令制御装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35898598A JP3560482B2 (ja) | 1998-12-17 | 1998-12-17 | 命令制御装置 |
US09/461,429 US6807624B1 (en) | 1998-12-17 | 1999-12-16 | Instruction control device and method therefor |
US10/747,286 US7127591B2 (en) | 1998-12-17 | 2003-12-30 | Instruction control device and method therefor |
US10/747,291 US7313674B2 (en) | 1998-12-17 | 2003-12-30 | Instruction control device and method therefor |
US10/747,138 US7275146B2 (en) | 1998-12-17 | 2003-12-30 | Instruction control device and method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35898598A JP3560482B2 (ja) | 1998-12-17 | 1998-12-17 | 命令制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000181705A JP2000181705A (ja) | 2000-06-30 |
JP3560482B2 true JP3560482B2 (ja) | 2004-09-02 |
Family
ID=18462145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35898598A Expired - Fee Related JP3560482B2 (ja) | 1998-12-17 | 1998-12-17 | 命令制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3560482B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101681261B (zh) | 2007-06-20 | 2014-07-16 | 富士通株式会社 | 运算处理装置及其控制方法 |
JP2011008732A (ja) * | 2009-06-29 | 2011-01-13 | Fujitsu Ltd | プライオリティ回路、演算処理装置及び演算処理方法 |
-
1998
- 1998-12-17 JP JP35898598A patent/JP3560482B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000181705A (ja) | 2000-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
US20020169942A1 (en) | VLIW processor | |
US7454598B2 (en) | Controlling out of order execution pipelines issue tagging | |
US8429384B2 (en) | Interleaved hardware multithreading processor architecture | |
TWI764966B (zh) | 用於控制矢量記憶體存取之資料處理裝置及方法 | |
US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
US20070180220A1 (en) | Processor system | |
JP3560482B2 (ja) | 命令制御装置 | |
JPH06266556A (ja) | データ処理装置 | |
US6981130B2 (en) | Forwarding the results of operations to dependent instructions more quickly via multiplexers working in parallel | |
JP2008299729A (ja) | プロセッサ | |
TW201823972A (zh) | 向量產生指令 | |
JP3534987B2 (ja) | 情報処理装置 | |
JP2636192B2 (ja) | 情報処理装置 | |
JP2812610B2 (ja) | パイプライン制御方式 | |
JP2925842B2 (ja) | パイプライン処理装置 | |
JPH07244588A (ja) | データ処理装置 | |
JP3405106B2 (ja) | プログラマブルコントローラ | |
JP2591325B2 (ja) | 分岐制御装置 | |
JP2924735B2 (ja) | パイプライン演算装置及びデコーダ装置 | |
JP3017866B2 (ja) | 割込み処理方式 | |
JP3743155B2 (ja) | パイプライン制御型計算機 | |
JP2636566B2 (ja) | パイプライン制御方式 | |
JP2000003279A (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
JP2503966B2 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040405 |
|
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: 20040427 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040525 |
|
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: 20090604 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100604 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110604 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120604 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120604 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130604 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140604 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |