JPH0520065A - 並列演算処理装置 - Google Patents
並列演算処理装置Info
- Publication number
- JPH0520065A JPH0520065A JP3171004A JP17100491A JPH0520065A JP H0520065 A JPH0520065 A JP H0520065A JP 3171004 A JP3171004 A JP 3171004A JP 17100491 A JP17100491 A JP 17100491A JP H0520065 A JPH0520065 A JP H0520065A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- bus
- instructions
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 スーパースカラの命令処理速度の向上。
【構成】 整数演算ユニット40は、与えられた命令を
実行するとともに、与えられた命令がロード/ストア命
令の場合アドレス計算を行なう実行ステージEXCと、
実行ステージのデータをバイトアラインユニット71へ
伝達するバスMC BUS,MA BUSおよびMS B
USを含む。この整数演算ユニットのライトバックステ
ージWBはまた実行ステージEXCからのデータまたは
バイトアラインユニット71からのデータを受ける。バ
イトアラインユニット71は、実行ステージEXCから
与えられたデータに従って、命令がロード/ストア命令
の場合データメモリ6へアクセスし、データメモリ6か
ら読出されたデータは、もとの整数演算ユニットへバス
MD BUS,ML BUSを介して伝達される。 【効果】 機能ユニットを整数演算ユニットとメモリア
クセスユニットと同一構成とすることができ、発行でき
る命令の組合わせに柔軟性を持たすことができ、並列処
理可能な命令の組を数多く形成することができ、スーパ
ースカラの処理性能が向上する。
実行するとともに、与えられた命令がロード/ストア命
令の場合アドレス計算を行なう実行ステージEXCと、
実行ステージのデータをバイトアラインユニット71へ
伝達するバスMC BUS,MA BUSおよびMS B
USを含む。この整数演算ユニットのライトバックステ
ージWBはまた実行ステージEXCからのデータまたは
バイトアラインユニット71からのデータを受ける。バ
イトアラインユニット71は、実行ステージEXCから
与えられたデータに従って、命令がロード/ストア命令
の場合データメモリ6へアクセスし、データメモリ6か
ら読出されたデータは、もとの整数演算ユニットへバス
MD BUS,ML BUSを介して伝達される。 【効果】 機能ユニットを整数演算ユニットとメモリア
クセスユニットと同一構成とすることができ、発行でき
る命令の組合わせに柔軟性を持たすことができ、並列処
理可能な命令の組を数多く形成することができ、スーパ
ースカラの処理性能が向上する。
Description
【0001】
【産業上の利用分野】この発明は並列演算処理装置に関
し、特に、スーパースカラにおけるパイプラインの構成
およびパイプラインへの命令発行方式に関する。
し、特に、スーパースカラにおけるパイプラインの構成
およびパイプラインへの命令発行方式に関する。
【0002】
【従来の技術】スーパースカラとは、以下の特徴を備え
るプロセサである: (1) 命令を複数個同時にフェッチする。
るプロセサである: (1) 命令を複数個同時にフェッチする。
【0003】(2) 複数の機能ユニットを備え、複数
の命令を同時に実行することができる。
の命令を同時に実行することができる。
【0004】(3) 同時にフェッチされた複数の命令
から同時に実行可能な命令を見出し、この同時に実行可
能な命令を関連の機能ユニットへ投入する。
から同時に実行可能な命令を見出し、この同時に実行可
能な命令を関連の機能ユニットへ投入する。
【0005】図2はスーパースカラの一般的な構成を示
す図である。図2において、1は命令を蓄えるための命
令メモリ、2は命令メモリに対し、フェッチする命令の
アドレスを送出するとともに命令メモリ1から複数の命
令をフェッチする命令フェッチステージ(IFステー
ジ)、3は命令フェッチステージでフェッチされた複数
の命令のデコード、レジスタファイルの読出し、および
分岐命令の実行を行なう命令デコードステージ(IDス
テージ)。
す図である。図2において、1は命令を蓄えるための命
令メモリ、2は命令メモリに対し、フェッチする命令の
アドレスを送出するとともに命令メモリ1から複数の命
令をフェッチする命令フェッチステージ(IFステー
ジ)、3は命令フェッチステージでフェッチされた複数
の命令のデコード、レジスタファイルの読出し、および
分岐命令の実行を行なう命令デコードステージ(IDス
テージ)。
【0006】この命令デコード・ステージ3は、また、
デコードした複数の命令の中から同時に実行可能な命令
を見出し、これらの同時に実行可能な命令を関連の機能
ユニット4a,4bおよび5へ投入する。機能ユニット
4a,4bおよび5は並列に設けられており、またパイ
プライン化されている。機能ユニット4aおよび4bは
整数加算等を実行する整数演算ユニットであり、機能ユ
ニット5は、データメモリ6へのデータのロードまたは
ストアを実行する。データメモリ6はデータを格納す
る。
デコードした複数の命令の中から同時に実行可能な命令
を見出し、これらの同時に実行可能な命令を関連の機能
ユニット4a,4bおよび5へ投入する。機能ユニット
4a,4bおよび5は並列に設けられており、またパイ
プライン化されている。機能ユニット4aおよび4bは
整数加算等を実行する整数演算ユニットであり、機能ユ
ニット5は、データメモリ6へのデータのロードまたは
ストアを実行する。データメモリ6はデータを格納す
る。
【0007】7はレジスタファイルであり、データを一
時的に格納するためのメモリであり、命令デコードステ
ージ3、機能ユニット4a,4bおよび5からアクセス
することができる。機能ユニット4aおよび4bは、命
令デコードステージ(IDステージ)3から与えられた
命令を実行する実行ステージEXC、および実行ステー
ジEXCで実行された結果に従ってマシン状態の変更
(レジスタファイルへのデータの書込み、データメモリ
のロードなど)を実行するライトバックステージWBを
含む。
時的に格納するためのメモリであり、命令デコードステ
ージ3、機能ユニット4a,4bおよび5からアクセス
することができる。機能ユニット4aおよび4bは、命
令デコードステージ(IDステージ)3から与えられた
命令を実行する実行ステージEXC、および実行ステー
ジEXCで実行された結果に従ってマシン状態の変更
(レジスタファイルへのデータの書込み、データメモリ
のロードなど)を実行するライトバックステージWBを
含む。
【0008】機能ユニット5は、メモリアクセスユニッ
トであり、命令デコードステージ(IDステージ)3か
らの命令に従ってアドレスを計算するステージADR、
ステージADRで計算されたアドレスに従ってデータメ
モリ6へアクセスするステージMEM、およびこのデー
タ・メモリ6からロードされたデータのレジスタファイ
ル7への書込みを実行するライトバックステージWBを
含む。
トであり、命令デコードステージ(IDステージ)3か
らの命令に従ってアドレスを計算するステージADR、
ステージADRで計算されたアドレスに従ってデータメ
モリ6へアクセスするステージMEM、およびこのデー
タ・メモリ6からロードされたデータのレジスタファイ
ル7への書込みを実行するライトバックステージWBを
含む。
【0009】スーパースカラは通常TクロックおよびL
クロックと呼ばれる2相の互いに重なり合わないクロッ
ク信号に応答して動作しており、各ステージは互いに重
なり合いながら命令を実行する。
クロックと呼ばれる2相の互いに重なり合わないクロッ
ク信号に応答して動作しており、各ステージは互いに重
なり合いながら命令を実行する。
【0010】スーパースカラにおいては複数の命令が同
時にフェッチされ、また同時実行可能な命令は並列に実
行されるため、通常のプロセサに比べて処理速度の向上
が図れる。
時にフェッチされ、また同時実行可能な命令は並列に実
行されるため、通常のプロセサに比べて処理速度の向上
が図れる。
【0011】図3に、整数演算を行なう機能ユニット
(4aまたは4b)のパイプライン構造を示す。整数演
算ユニット4(4aまたは4b)は、前述のごとく、実
行ステージEXCおよびレジスタ・ファイル書込みステ
ージWBを備える。実行ステージEXCには、ALU
(算術論理演算装置)9およびシフタ10が設けられ
る。この実行ステージEXCにおいては、ALU9によ
り演算が行なわれるかまたはシフタ10においてデータ
のシフトが行なわれる。
(4aまたは4b)のパイプライン構造を示す。整数演
算ユニット4(4aまたは4b)は、前述のごとく、実
行ステージEXCおよびレジスタ・ファイル書込みステ
ージWBを備える。実行ステージEXCには、ALU
(算術論理演算装置)9およびシフタ10が設けられ
る。この実行ステージEXCにおいては、ALU9によ
り演算が行なわれるかまたはシフタ10においてデータ
のシフトが行なわれる。
【0012】実行ステージEXCは、命令デコードステ
ージから与えられるデータを格納するデータレジスタ1
1ないし17を含む。データレジスタ11および12が
各々格納するデータEXC AS1およびEXC AS
2はALU9へ与えられる。データレジスタ14が格納
するデータEXC DRはシフタ10へ与えられる。A
LU9は、レジスタ13にラッチされたALU制御コー
ドEXC aluに従って、レジスタ11および12か
ら与えられたデータに対しある演算を行なう。
ージから与えられるデータを格納するデータレジスタ1
1ないし17を含む。データレジスタ11および12が
各々格納するデータEXC AS1およびEXC AS
2はALU9へ与えられる。データレジスタ14が格納
するデータEXC DRはシフタ10へ与えられる。A
LU9は、レジスタ13にラッチされたALU制御コー
ドEXC aluに従って、レジスタ11および12か
ら与えられたデータに対しある演算を行なう。
【0013】シフタ10は、レジスタ14に格納された
データEXC DRを、レジスタ15に格納されたシフ
ト制御コードEXC shiftに従ってシフトする。
このシフタ10がシフトするビット数はシフタ制御コー
ドEXC shiftにより決定される。
データEXC DRを、レジスタ15に格納されたシフ
ト制御コードEXC shiftに従ってシフトする。
このシフタ10がシフトするビット数はシフタ制御コー
ドEXC shiftにより決定される。
【0014】ALU9およびセレクタ10の出力がセレ
クタ16により選択されるとともに書込みステージWB
へ送出される。このセレクタ16の選択制御経路は明確
には示していないが、制御レジスタにIDステージによ
り設定されたデータに従って選択の制御が行なわれる。
クタ16により選択されるとともに書込みステージWB
へ送出される。このセレクタ16の選択制御経路は明確
には示していないが、制御レジスタにIDステージによ
り設定されたデータに従って選択の制御が行なわれる。
【0015】レジスタ17は、この実行結果(セレクタ
16の出力)を書込むレジスタ・ファイル9のアドレス
EXC rdを保持する。このレジスタ17の保持して
いるアドレスEXC rdはライトバック(書込み)ス
テージWBのレジスタ19へ伝達される。
16の出力)を書込むレジスタ・ファイル9のアドレス
EXC rdを保持する。このレジスタ17の保持して
いるアドレスEXC rdはライトバック(書込み)ス
テージWBのレジスタ19へ伝達される。
【0016】ライトバックステージWBは、レジスタ・
ファイル書込みアドレスWB rdを保持するためのレ
ジスタ19と、セレクタ16の出力EXC selをラッ
チするレジスタ18を含む。レジスタ19に格納された
レジスタファイル書込みアドレスWB rdに従ってレ
ジスタファイル9の対応の位置へレジスタ18に格納さ
れたデータWB DRが書込まれる。
ファイル書込みアドレスWB rdを保持するためのレ
ジスタ19と、セレクタ16の出力EXC selをラッ
チするレジスタ18を含む。レジスタ19に格納された
レジスタファイル書込みアドレスWB rdに従ってレ
ジスタファイル9の対応の位置へレジスタ18に格納さ
れたデータWB DRが書込まれる。
【0017】なお上述の説明において、各符号の前に示
されている“EXC”および“WB”はそれぞれ各信号
またはデータが実行ステージWXCおよびライトバック
ステージWBに存在していることを現わす。
されている“EXC”および“WB”はそれぞれ各信号
またはデータが実行ステージWXCおよびライトバック
ステージWBに存在していることを現わす。
【0018】図4に、ロード/ストアを行なうユニット
5のパイプライン構造を示す。ロード/ストア・ユニッ
トは、前述のごとくパイプライン化されており、命令デ
コード・ステージから与えられた命令に従ってアドレス
を計算するアドレス計算ステージADR、アドレス計算
ステージADRで計算されたアドレスに従ってデータメ
モリ6へアクセスするメモリアクセスステージMEM、
およびデータメモリからロードされたデータのレジスタ
ファイル9への書込みを行なうレジスタファイル書込み
ステージWBを備える。
5のパイプライン構造を示す。ロード/ストア・ユニッ
トは、前述のごとくパイプライン化されており、命令デ
コード・ステージから与えられた命令に従ってアドレス
を計算するアドレス計算ステージADR、アドレス計算
ステージADRで計算されたアドレスに従ってデータメ
モリ6へアクセスするメモリアクセスステージMEM、
およびデータメモリからロードされたデータのレジスタ
ファイル9への書込みを行なうレジスタファイル書込み
ステージWBを備える。
【0019】アドレス計算ステージADRは、データメ
モリ6の、アクセスされるべきアドレスを計算する加算
器23と、データ・メモリ6へストアされるべきデータ
をラッチするレジスタ26を備える。
モリ6の、アクセスされるべきアドレスを計算する加算
器23と、データ・メモリ6へストアされるべきデータ
をラッチするレジスタ26を備える。
【0020】加算器23は、データレジスタ24および
25が格納するデータADR AS1およびADR A
S2を加算し、該加算結果をメモリアクセスステージM
EMへ送出する。
25が格納するデータADR AS1およびADR A
S2を加算し、該加算結果をメモリアクセスステージM
EMへ送出する。
【0021】レジスタ27はデータメモリ6からロード
されるデータを書込むレジスタファイル9のアドレスA
DR RDを保持する。このレジスタ27の保持するア
ドレスADR RDはメモリアクセスステージMEMへ
送出される。レジスタ28および29は、各々、このア
ドレス計算ステージADRに存在する命令がロード命令
であることを示す信号ADR loadおよびストア命
令であることを示す信号ADR storeをラッチす
る。
されるデータを書込むレジスタファイル9のアドレスA
DR RDを保持する。このレジスタ27の保持するア
ドレスADR RDはメモリアクセスステージMEMへ
送出される。レジスタ28および29は、各々、このア
ドレス計算ステージADRに存在する命令がロード命令
であることを示す信号ADR loadおよびストア命
令であることを示す信号ADR storeをラッチす
る。
【0022】メモリアクセスステージMEMは、加算器
23の出力をラッチするレジスタ35と、レジスタ26
からのデータADR DRをラッチするレジスタ36を
含む。レジスタ35のラッチするデータMEM MAR
は、データメモリ6へアドレスとして送出される。
23の出力をラッチするレジスタ35と、レジスタ26
からのデータADR DRをラッチするレジスタ36を
含む。レジスタ35のラッチするデータMEM MAR
は、データメモリ6へアドレスとして送出される。
【0023】メモリアクセスステージMEMはさらに、
レジスタファイル9へのデータの書込みアドレスMEM
rdを格納するレジスタ32と、このメモリアクセス
ステージにある命令がロード命令であることを示す信号
MEM loadおよびストア命令であることを示す信
号MEM storeを各々ラッチするレジスタ33お
よび34を含む。レジスタ32,33および34は、ア
ドレス計算ステージADRのレジスタ27,28および
29の出力をクロック信号に応答してラッチする。この
レジスタ33および34のデータはそれぞれ読出し指示
信号および書込み指示信号としてデータメモリ6へ与え
られるとともに、シフト制御回路43へ与えられる。
レジスタファイル9へのデータの書込みアドレスMEM
rdを格納するレジスタ32と、このメモリアクセス
ステージにある命令がロード命令であることを示す信号
MEM loadおよびストア命令であることを示す信
号MEM storeを各々ラッチするレジスタ33お
よび34を含む。レジスタ32,33および34は、ア
ドレス計算ステージADRのレジスタ27,28および
29の出力をクロック信号に応答してラッチする。この
レジスタ33および34のデータはそれぞれ読出し指示
信号および書込み指示信号としてデータメモリ6へ与え
られるとともに、シフト制御回路43へ与えられる。
【0024】データメモリ6からロードされたデータ
は、データバスMD BUSを介して伝達され、セレク
タ40へ与えられる。セレクタ40は、ロード命令の場
合データメモリ6からのデータを選択し、シフタ41へ
与える。セレクタ40の選択出力MEM selはシフ
タ41へ与えられる。メモリシフタ41は、シフト制御
回路43からの制御に従ってセレクタ40から与えられ
たデータを必要に応じてシフトしてライトバックステー
ジ(レジスタファイル書込みステージWB)へ伝達す
る。
は、データバスMD BUSを介して伝達され、セレク
タ40へ与えられる。セレクタ40は、ロード命令の場
合データメモリ6からのデータを選択し、シフタ41へ
与える。セレクタ40の選択出力MEM selはシフ
タ41へ与えられる。メモリシフタ41は、シフト制御
回路43からの制御に従ってセレクタ40から与えられ
たデータを必要に応じてシフトしてライトバックステー
ジ(レジスタファイル書込みステージWB)へ伝達す
る。
【0025】シフタ31は、このデータメモリ6から与
えられたデータがバイト・データまたはハーフ・データ
(16ビットデータ)の場合所定ビットは下位ビット方
向へシフトする。レジスタファイルのレジスタは下位バ
イトにデータを格納するためである。
えられたデータがバイト・データまたはハーフ・データ
(16ビットデータ)の場合所定ビットは下位ビット方
向へシフトする。レジスタファイルのレジスタは下位バ
イトにデータを格納するためである。
【0026】メモリアクセスステージMEMに存在する
命令がストア命令の場合、レジスタ36に格納されたデ
ータMEM MDRがセレクタ40およびシフタ41な
らびにトライステートバッファ70を介してデータバス
MD BUS上へ送出される。このデータバスMD B
US上に送出されたデータがデータメモリ6の対応の位
置へ書込まれる。このストア命令の場合においても、レ
ジスタ36に格納されたデータのバイトデータ、ハーフ
・データ等に従ってシフタ41により所定ビット上位方
向へシフトされる。
命令がストア命令の場合、レジスタ36に格納されたデ
ータMEM MDRがセレクタ40およびシフタ41な
らびにトライステートバッファ70を介してデータバス
MD BUS上へ送出される。このデータバスMD B
US上に送出されたデータがデータメモリ6の対応の位
置へ書込まれる。このストア命令の場合においても、レ
ジスタ36に格納されたデータのバイトデータ、ハーフ
・データ等に従ってシフタ41により所定ビット上位方
向へシフトされる。
【0027】レジスタファイル書込みステージWBは、
メモリアクセスステージMEMのレジスタ32にラッチ
されたレジスタファイル書込みアドレスMEM rdをラ
ッチするレジスタ45と、メモリアクセスステージME
Mに設けられたシフタ41の出力をラッチするレジスタ
44を含む。このレジスタ45に格納されたレジスタフ
ァイル書込みアドレスWB rdに従ってレジスタファ
イル9の対応の位置へレジスタ44に格納されたデータ
WB DRが書込まれる。
メモリアクセスステージMEMのレジスタ32にラッチ
されたレジスタファイル書込みアドレスMEM rdをラ
ッチするレジスタ45と、メモリアクセスステージME
Mに設けられたシフタ41の出力をラッチするレジスタ
44を含む。このレジスタ45に格納されたレジスタフ
ァイル書込みアドレスWB rdに従ってレジスタファ
イル9の対応の位置へレジスタ44に格納されたデータ
WB DRが書込まれる。
【0028】各ステージADR,MEMおよびWBの動
作サイクルはクロック信号により決定されており、各ス
テージADR,MEMおよびWBは互いにオーバーラッ
プして命令を実行することができる。
作サイクルはクロック信号により決定されており、各ス
テージADR,MEMおよびWBは互いにオーバーラッ
プして命令を実行することができる。
【0029】
【発明が解決しようとする課題】J.Henness
y,D.A.Patterson,“Computer
Architecture:A Quantitati
ve Approach”,p.C−5,FIGURE
C.4によれば、RISC(縮小命令セットコンピュ
ータ:スーパースカラの元となるプロセサ)における命
令の出現頻度は、ほぼ、 制御命令 14% 整数演算命令 39% ロード/ストア命令 26% 浮動小数点演算命令 4% である。このことから、整数演算命令とロード/ストア
命令の出現頻度は、ほぼ3:2であることがわかる。
y,D.A.Patterson,“Computer
Architecture:A Quantitati
ve Approach”,p.C−5,FIGURE
C.4によれば、RISC(縮小命令セットコンピュ
ータ:スーパースカラの元となるプロセサ)における命
令の出現頻度は、ほぼ、 制御命令 14% 整数演算命令 39% ロード/ストア命令 26% 浮動小数点演算命令 4% である。このことから、整数演算命令とロード/ストア
命令の出現頻度は、ほぼ3:2であることがわかる。
【0030】しかし、現在の、商用化されているスーパ
ースカラ、たとえばインテル社のi960CAは、整数
演算パイプライン(REGユニット)、ロード/ストア
・パイプライン(MEMユニット)を1つずつ備える。
すなわち、図2に示すような構成においては、整数演算
命令とロード/ストア命令を1つずつしか同時には実行
できない。この実行形態は、整数演算命令とロード/ス
トア命令の出現頻度が3:2であるという実情に合致し
ていない。
ースカラ、たとえばインテル社のi960CAは、整数
演算パイプライン(REGユニット)、ロード/ストア
・パイプライン(MEMユニット)を1つずつ備える。
すなわち、図2に示すような構成においては、整数演算
命令とロード/ストア命令を1つずつしか同時には実行
できない。この実行形態は、整数演算命令とロード/ス
トア命令の出現頻度が3:2であるという実情に合致し
ていない。
【0031】さらに、整数演算命令とロード/ストア命
令が都合よく対をなして出現することが頻繁に生じると
は言えない。このため、パイプラインが2本設けられて
いたとしても、その並列処理性能を十分に生かすことが
できず、パイプラインが1本の構成のプロセサの2倍の
性能を引出すことはできない。
令が都合よく対をなして出現することが頻繁に生じると
は言えない。このため、パイプラインが2本設けられて
いたとしても、その並列処理性能を十分に生かすことが
できず、パイプラインが1本の構成のプロセサの2倍の
性能を引出すことはできない。
【0032】この問題は、整数演算パイプラインを2本
に増加させれば、解決することは可能である。しかしな
がら、ハードウェアの著しい増加を招く。また、たと
え、パイプラインの本数を増加させることを許容して
も、各パイプラインへ命令を分配するために必要とされ
るハードウェアも比例して増加する。
に増加させれば、解決することは可能である。しかしな
がら、ハードウェアの著しい増加を招く。また、たと
え、パイプラインの本数を増加させることを許容して
も、各パイプラインへ命令を分配するために必要とされ
るハードウェアも比例して増加する。
【0033】命令・デコードステージIDの命令を機能
ユニットに分配する機能の構成を図5に示す。命令レジ
スタ36に保持される命令(図5においては3つの命
令)は、命令デコーダ37でデコードされる。この命令
デコーダ37でデコードされた命令は、命令バス38を
介して対応の機能ユニットへ分配される。この機能ユニ
ットへの分配の制御は命令分配制御ユニット72により
実行される。
ユニットに分配する機能の構成を図5に示す。命令レジ
スタ36に保持される命令(図5においては3つの命
令)は、命令デコーダ37でデコードされる。この命令
デコーダ37でデコードされた命令は、命令バス38を
介して対応の機能ユニットへ分配される。この機能ユニ
ットへの分配の制御は命令分配制御ユニット72により
実行される。
【0034】命令バス38には、明確に示していない
が、命令のアドレス、命令に付随する種々のフラグ、た
とえば命令の有効性を示すフラグ等のデータを送るため
の信号線が必要とされ、1命令あたり100ビット近い
バスが必要とされる。
が、命令のアドレス、命令に付随する種々のフラグ、た
とえば命令の有効性を示すフラグ等のデータを送るため
の信号線が必要とされ、1命令あたり100ビット近い
バスが必要とされる。
【0035】命令分配制御ユニット72は、命令デコー
ダ37から与えられた命令の種類に従って、分配すべき
機能ユニットを決定し、命令デコーダ37の出力等を命
令バス38に出力するためのトライステートバッファ3
9のイネーブル端子を制御する。
ダ37から与えられた命令の種類に従って、分配すべき
機能ユニットを決定し、命令デコーダ37の出力等を命
令バス38に出力するためのトライステートバッファ3
9のイネーブル端子を制御する。
【0036】したがって、パイプラインの数が増加する
に伴って、命令を分配するためのハードウェア(命令バ
ス及びトライステートバッファ等)が増加し、ハードウ
ェアが大幅に増加する。
に伴って、命令を分配するためのハードウェア(命令バ
ス及びトライステートバッファ等)が増加し、ハードウ
ェアが大幅に増加する。
【0037】また上述の構成においては、同時にフェッ
チされる命令の数とパイプラインの数とは同一とされて
いる。しかしながら、たとえばパイプラインの数が3で
あり、同時にフェッチされる命令の数が4つのようなス
ーパースカラも存在する。
チされる命令の数とパイプラインの数とは同一とされて
いる。しかしながら、たとえばパイプラインの数が3で
あり、同時にフェッチされる命令の数が4つのようなス
ーパースカラも存在する。
【0038】この場合、コンパイラの性能,命令メモリ
のアライメント(4ワードの境界からしか同時に連続し
て4命令を読出すことができない)という命令のアライ
メント等の問題により、同時にフェッチされた複数の命
令の中に、機能ユニット(パイプライン)へ発行する必
要のない命令(NOP命令など)が存在する可能性が高
い。
のアライメント(4ワードの境界からしか同時に連続し
て4命令を読出すことができない)という命令のアライ
メント等の問題により、同時にフェッチされた複数の命
令の中に、機能ユニット(パイプライン)へ発行する必
要のない命令(NOP命令など)が存在する可能性が高
い。
【0039】特に、機能ユニット(パイプライン)の本
数以上の命令を解析する構成の場合、既に発行する必要
のない命令が機能ユニットの本数を超えたところに存在
する場合がある。
数以上の命令を解析する構成の場合、既に発行する必要
のない命令が機能ユニットの本数を超えたところに存在
する場合がある。
【0040】たとえば、前述のごとく、機能ユニット
(パイプライン)の本数が3であり、命令デコーダ37
で解析する命令の数が4(命令#1,命令#2,命令#
3および命令#4)の構成のスーパースカラを考える。
今、命令#1,命令#2,命令#3は同時に発行可能で
あり、命令#4が発行する必要のない命令(NOP命
令)である場合を考える。
(パイプライン)の本数が3であり、命令デコーダ37
で解析する命令の数が4(命令#1,命令#2,命令#
3および命令#4)の構成のスーパースカラを考える。
今、命令#1,命令#2,命令#3は同時に発行可能で
あり、命令#4が発行する必要のない命令(NOP命
令)である場合を考える。
【0041】この機能ユニットの数が3であり、同時に
フェッチされる命令の数が4である場合の命令デコード
ステージの内部構成の概略を図6に示す。図6におい
て、110は、命令メモリから同時にフェッチされた複
数の命令を命令レジスタに格納するとともに、格納され
た命令を命令デコード・解析部ユニット111へ送出す
るための命令レジスタ管理ユニットである。命令デコー
ド・解析ユニット111は、命令レジスタ管理ユニット
110から、解析する数の命令を受取り、この受取った
命令を解析し、同時に機能ユニットへ発行することので
きる命令を見出す。次いで、この同時に発行可能な命令
のデコードを行なう。このデコードされた命令が機能ユ
ニットへ発行可能である場合には、命令を対応のユニッ
トへ投入する。
フェッチされる命令の数が4である場合の命令デコード
ステージの内部構成の概略を図6に示す。図6におい
て、110は、命令メモリから同時にフェッチされた複
数の命令を命令レジスタに格納するとともに、格納され
た命令を命令デコード・解析部ユニット111へ送出す
るための命令レジスタ管理ユニットである。命令デコー
ド・解析ユニット111は、命令レジスタ管理ユニット
110から、解析する数の命令を受取り、この受取った
命令を解析し、同時に機能ユニットへ発行することので
きる命令を見出す。次いで、この同時に発行可能な命令
のデコードを行なう。このデコードされた命令が機能ユ
ニットへ発行可能である場合には、命令を対応のユニッ
トへ投入する。
【0042】命令レジスタ管理ユニット110は、命令
キューを備えており、命令メモリからフェッチされた命
令を格納する。すなわち、この構成では、今、命令プリ
フェッチ方式のスーパースカラを考える。この場合、命
令レジスタ管理ユニット110からは、命令デコード・
解析ユニット111に対し、常にそのサイクルにおいて
解析されるべき命令が送出される。
キューを備えており、命令メモリからフェッチされた命
令を格納する。すなわち、この構成では、今、命令プリ
フェッチ方式のスーパースカラを考える。この場合、命
令レジスタ管理ユニット110からは、命令デコード・
解析ユニット111に対し、常にそのサイクルにおいて
解析されるべき命令が送出される。
【0043】命令レジスタ管理ユニット110から命令
#1,命令#2、命令#3および命令#4が命令デコー
ド・解析ユニット111へ与えられる。今このサイクル
をサイクル1と呼ぶ。
#1,命令#2、命令#3および命令#4が命令デコー
ド・解析ユニット111へ与えられる。今このサイクル
をサイクル1と呼ぶ。
【0044】命令デコード・解析ユニット111は、こ
の与えられた命令、命令#1〜命令#4から、命令#
1、命令#2および命令#3が同時に発行可能であるこ
とを検出すると、この同時発行可能な命令、命令#1〜
命令#3をデコードし、その命令に対応する操作コード
を対応の機能ユニットへ投入する。
の与えられた命令、命令#1〜命令#4から、命令#
1、命令#2および命令#3が同時に発行可能であるこ
とを検出すると、この同時発行可能な命令、命令#1〜
命令#3をデコードし、その命令に対応する操作コード
を対応の機能ユニットへ投入する。
【0045】次のサイクル(サイクル2)においては、
図7に示すように、命令デコード・解析ユニット111
へは、命令#4〜命令#7が命令レジスタ管理ユニット
110から命令デコード・解析ユニット111へ与えら
れる。
図7に示すように、命令デコード・解析ユニット111
へは、命令#4〜命令#7が命令レジスタ管理ユニット
110から命令デコード・解析ユニット111へ与えら
れる。
【0046】命令デコード・解析ユニット111は、命
令#4と、命令#5〜命令#7のうち発行可能な命令を
対応の機能ユニットへ発行する。今、命令#5、命令#
6および命令#7が同時に発行可能な命令であるとす
る。この場合においては、機能ユニットの数が3つであ
るため、命令#4、命令#5および命令#6が機能ユニ
ットに投入される。したがって、命令#4が発行する必
要のない命令(命令NOPは何ら動作を行なわないこと
を指令する命令)であっても、命令#7を発行すること
ができない。
令#4と、命令#5〜命令#7のうち発行可能な命令を
対応の機能ユニットへ発行する。今、命令#5、命令#
6および命令#7が同時に発行可能な命令であるとす
る。この場合においては、機能ユニットの数が3つであ
るため、命令#4、命令#5および命令#6が機能ユニ
ットに投入される。したがって、命令#4が発行する必
要のない命令(命令NOPは何ら動作を行なわないこと
を指令する命令)であっても、命令#7を発行すること
ができない。
【0047】すなわちこの命令#7は次のサイクルで対
応の機能ユニットへ投入されることになる。したがっ
て、この命令#4の存在により、命令#7の実行が1サ
イクル遅れることになる。これは、処理速度を低下させ
てしまう。
応の機能ユニットへ投入されることになる。したがっ
て、この命令#4の存在により、命令#7の実行が1サ
イクル遅れることになる。これは、処理速度を低下させ
てしまう。
【0048】それゆえ、第1の発明の目的は価格対性能
比の向上された並列演算処理装置を提供することであ
る。
比の向上された並列演算処理装置を提供することであ
る。
【0049】第1の発明の他の目的は、整数パイプライ
ンの数とロード/ストアパイプラインの数のバランスと
れた並列処理装置を提供することである。
ンの数とロード/ストアパイプラインの数のバランスと
れた並列処理装置を提供することである。
【0050】第1の発明のさらに他の目的は、命令分配
を実行するためのハードウェア量が低減された並列処理
装置を提供することである。
を実行するためのハードウェア量が低減された並列処理
装置を提供することである。
【0051】第2の発明の目的は、プロセッサの命令実
行速度を向上することのできる並列演算処理装置を提供
することである。
行速度を向上することのできる並列演算処理装置を提供
することである。
【0052】
【課題を解決するための手段】第1の発明に係る並列演
算処理装置は、ロード/ストア命令および整数演算命令
を、任意の機能ユニット(パイプライン)で処理するよ
うにしたものである。
算処理装置は、ロード/ストア命令および整数演算命令
を、任意の機能ユニット(パイプライン)で処理するよ
うにしたものである。
【0053】すなわち第1の発明に係る並列演算処理装
置は、命令デコードステージから命令発行を受け、与え
られた命令を実行する複数の機能ユニットと、命令デコ
ードステージからの命令発行を受けず、データメモリへ
のアクセスの制御のみを実行する機能ユニットとを備え
る。
置は、命令デコードステージから命令発行を受け、与え
られた命令を実行する複数の機能ユニットと、命令デコ
ードステージからの命令発行を受けず、データメモリへ
のアクセスの制御のみを実行する機能ユニットとを備え
る。
【0054】第2の発明に係る並列演算処理装置は、機
能ユニットの数を超える命令が与えられ、与えられた命
令から、機能ユニットに投入する必要のない命令を検出
する手段と、この検出された、投入する必要のない命令
を禁止するとともに、投入を擬制する手段を備える。
能ユニットの数を超える命令が与えられ、与えられた命
令から、機能ユニットに投入する必要のない命令を検出
する手段と、この検出された、投入する必要のない命令
を禁止するとともに、投入を擬制する手段を備える。
【0055】
【作用】第1の発明に従えば、ロード/ストア命令およ
び整数演算命令を任意のパイプライン(機能ユニット)
で処理することができるため、プロセッサにおける実際
の命令の出現頻度に応じたパイプラインの使用形態を実
現することが可能となり、並列演算処理装置の性能の向
上が得られる。
び整数演算命令を任意のパイプライン(機能ユニット)
で処理することができるため、プロセッサにおける実際
の命令の出現頻度に応じたパイプラインの使用形態を実
現することが可能となり、並列演算処理装置の性能の向
上が得られる。
【0056】第2の発明に従えば、機能ユニットへ投入
する必要のないたとえばNOP命令は、機能ユニットへ
投入されず、その命令の実行(投入)が終了したと擬制
されるため、機能ユニット数以上の命令を同時に実行す
ることが可能となり、発行する必要のない命令が処理速
度を低下させることがなくなる。
する必要のないたとえばNOP命令は、機能ユニットへ
投入されず、その命令の実行(投入)が終了したと擬制
されるため、機能ユニット数以上の命令を同時に実行す
ることが可能となり、発行する必要のない命令が処理速
度を低下させることがなくなる。
【0057】
【実施例】ロード/ストア・パイプラインと整数演算パ
イプライン(機能ユニット)との違いは、大まかに言え
ば、前者にはアドレス計算のための加算器が設けられて
いるが、後者には整数演算を行なうためのALUが設け
られていることである。また、ロード/ストアパイプラ
インには、バイトデータまたはハーフデータをシフトす
るためのシフト回路(バイトライナ)が設けられている
が、整数演算パイプラインにはこのようなシフト回路は
設けられていないということである。
イプライン(機能ユニット)との違いは、大まかに言え
ば、前者にはアドレス計算のための加算器が設けられて
いるが、後者には整数演算を行なうためのALUが設け
られていることである。また、ロード/ストアパイプラ
インには、バイトデータまたはハーフデータをシフトす
るためのシフト回路(バイトライナ)が設けられている
が、整数演算パイプラインにはこのようなシフト回路は
設けられていないということである。
【0058】ALU(算術論理演算装置)の大部分は加
算器で構成されている。したがって、ロード/ストアパ
イプライン(機能ユニット)のアドレス計算のための加
算器をALUで構成すれば、ハードウェアの大幅な増加
なしに、ロード/ストアパイプライン(機能ユニット)
で整数演算を行なうことが可能となる。
算器で構成されている。したがって、ロード/ストアパ
イプライン(機能ユニット)のアドレス計算のための加
算器をALUで構成すれば、ハードウェアの大幅な増加
なしに、ロード/ストアパイプライン(機能ユニット)
で整数演算を行なうことが可能となる。
【0059】さらに、バイトアライナを、各パイプライ
ン共通に利用可能なようにパイプラインの外部に設ける
構成とすれば、ロード/ストア命令、整数演算命令の区
別なく、命令をパイプラインへ投入することができる。
ン共通に利用可能なようにパイプラインの外部に設ける
構成とすれば、ロード/ストア命令、整数演算命令の区
別なく、命令をパイプラインへ投入することができる。
【0060】図1に第1の発明の一実施例であるスーパ
ースカラの概略構成を示す。図1を参照して以下、簡単
に第1の発明の動作について説明する。
ースカラの概略構成を示す。図1を参照して以下、簡単
に第1の発明の動作について説明する。
【0061】命令レジスタ36から、整数演算ユニット
40(40a,40b,40c)へは、命令分配のハー
ドウェアを介することなく、直接命令が送出される。
40(40a,40b,40c)へは、命令分配のハー
ドウェアを介することなく、直接命令が送出される。
【0062】整数演算ユニット40(たとえば40c)
は、整数演算とロード/ストア命令のアドレス計算を行
なうための実行ステージEXCと、バイトアライナが設
けられたバイトアラインユニット71に接するメモリア
クセスステージMEMと、レジスタファイルへのデータ
の書込みを行なうライトバックステージWBを備える。
は、整数演算とロード/ストア命令のアドレス計算を行
なうための実行ステージEXCと、バイトアライナが設
けられたバイトアラインユニット71に接するメモリア
クセスステージMEMと、レジスタファイルへのデータ
の書込みを行なうライトバックステージWBを備える。
【0063】整数演算命令は、従来の場合と同様に、実
行ステージEXC、メモリアクセスステージMEMおよ
びライトバックステージWBという経路で進み、各ステ
ージにおいて命令の実行が行なわれる。ただし、整数演
算命令の場合、メモリアクセスステージMEMにおいて
は、何ら実行は行なわれず、単に命令が通過するだけで
ある。
行ステージEXC、メモリアクセスステージMEMおよ
びライトバックステージWBという経路で進み、各ステ
ージにおいて命令の実行が行なわれる。ただし、整数演
算命令の場合、メモリアクセスステージMEMにおいて
は、何ら実行は行なわれず、単に命令が通過するだけで
ある。
【0064】ロード命令の場合、実行ステージEXC
で、アドレス計算がALUを用いて行なわれる。このA
LUで計算されたアドレスはメモリアクセスステージM
EMを貫くアドレスバスMA BUSを経由してバイト
アライン部71へ伝達される。
で、アドレス計算がALUを用いて行なわれる。このA
LUで計算されたアドレスはメモリアクセスステージM
EMを貫くアドレスバスMA BUSを経由してバイト
アライン部71へ伝達される。
【0065】バイトアラインユニット71はアドレスバ
スMA BUS上のアドレスをデータメモリ6へ送出
し、データメモリ6から対応のデータを読出す。読出さ
れたデータは必要があればシフトされた後、メモリアク
セスステージMEMを貫く(即ち、3つのパイプライン
に共通に設けられている)データバスML BUSを介
してもとの機能ユニットへ戻される。
スMA BUS上のアドレスをデータメモリ6へ送出
し、データメモリ6から対応のデータを読出す。読出さ
れたデータは必要があればシフトされた後、メモリアク
セスステージMEMを貫く(即ち、3つのパイプライン
に共通に設けられている)データバスML BUSを介
してもとの機能ユニットへ戻される。
【0066】データメモリ6から読出されたデータを与
えられた機能ユニットは、そのデータをライトバックス
テージWBへ送出する。その後、レジスタファイルへこ
のデータメモリ6からのデータが書込まれる。
えられた機能ユニットは、そのデータをライトバックス
テージWBへ送出する。その後、レジスタファイルへこ
のデータメモリ6からのデータが書込まれる。
【0067】ストア命令の場合、実行ステージEXCで
アドレス計算がALUを用いて行なわれる。アドレス
は、上述のロード命令の場合と同様、各パイプラインの
メモリアクセスステージMEM共通に設けられたアドレ
スバスMA BUSを経由してバイトアラインユニット
71へ伝達される。
アドレス計算がALUを用いて行なわれる。アドレス
は、上述のロード命令の場合と同様、各パイプラインの
メモリアクセスステージMEM共通に設けられたアドレ
スバスMA BUSを経由してバイトアラインユニット
71へ伝達される。
【0068】この命令がストア命令であることを示す制
御信号は、各パイプラインメモリアクセスステージME
M共通に設けられた制御バスMC BUSを介してバイ
トアラインユニット71へ伝達される。
御信号は、各パイプラインメモリアクセスステージME
M共通に設けられた制御バスMC BUSを介してバイ
トアラインユニット71へ伝達される。
【0069】さらに、データメモリ6への書込みデータ
は、各パイプラインのメモリアクセスステージMEMに
共通に設けられたバスMS BUSを介してバイトアラ
インユニット71へ伝達される。
は、各パイプラインのメモリアクセスステージMEMに
共通に設けられたバスMS BUSを介してバイトアラ
インユニット71へ伝達される。
【0070】バイトアラインユニット71は、アドレス
バスMA BUS上のアドレスデータ、およびデータバ
スMS BUSのデータ(必要ならばシフトされる)を
データメモリ6へ送出する。さらにこの図1に示す構成
においては、命令レジスタ36には、同時に3つの命令
が格納されており、この命令対応にそれぞれ同一構成を
備えるパイプライン40a,40bおよび40cが並列
に設けられている。以下により詳しい動作について説明
する。
バスMA BUS上のアドレスデータ、およびデータバ
スMS BUSのデータ(必要ならばシフトされる)を
データメモリ6へ送出する。さらにこの図1に示す構成
においては、命令レジスタ36には、同時に3つの命令
が格納されており、この命令対応にそれぞれ同一構成を
備えるパイプライン40a,40bおよび40cが並列
に設けられている。以下により詳しい動作について説明
する。
【0071】図9に、1本の整数演算ユニット(ロード
/ストアユニットを兼ねる)とバイトアラインユニット
71の具体的な構成の一例を示す。実行ステージEXC
は、命令がロード命令であることを示すための制御信号
EXC loadを格納するレジスタ28と、命令がス
トア命令であることを示す制御信号EXC store
を格納するレジスタ29と、命令がALU演算であるこ
とを示す制御信号EXC aluを格納するレジスタ1
3と、整数演算データEXC AS1およびEXC A
S2を格納するレジスタ11および12と、データメモ
リへのデータEXC DRを格納するレジスタ14と、
データEXC DRのシフト量を示すデータEXC s
hiftを格納するレジスタ15を含む。
/ストアユニットを兼ねる)とバイトアラインユニット
71の具体的な構成の一例を示す。実行ステージEXC
は、命令がロード命令であることを示すための制御信号
EXC loadを格納するレジスタ28と、命令がス
トア命令であることを示す制御信号EXC store
を格納するレジスタ29と、命令がALU演算であるこ
とを示す制御信号EXC aluを格納するレジスタ1
3と、整数演算データEXC AS1およびEXC A
S2を格納するレジスタ11および12と、データメモ
リへのデータEXC DRを格納するレジスタ14と、
データEXC DRのシフト量を示すデータEXC s
hiftを格納するレジスタ15を含む。
【0072】データレジスタ11および12の出力に対
してはALU9が設けられ、データレジスタ14の出力
に対してはシフタ10が設けられる。ALU9の出力と
シフタ10の出力は選択回路16へ伝達される。
してはALU9が設けられ、データレジスタ14の出力
に対してはシフタ10が設けられる。ALU9の出力と
シフタ10の出力は選択回路16へ伝達される。
【0073】さらに、実行ステージEXCは、バイトア
ラインユニット71へ制御信号を伝達するための制御バ
スMC BUS、データメモリのアドレスを伝達するア
ドレスバスMA BUS、およびストアデータを伝達す
るデータバスMS BUSを備える。
ラインユニット71へ制御信号を伝達するための制御バ
スMC BUS、データメモリのアドレスを伝達するア
ドレスバスMA BUS、およびストアデータを伝達す
るデータバスMS BUSを備える。
【0074】メモリアクセスステージMEMは、実行ス
テージEXCのセレクタ16の出力EXC selを保
持するレジスタ18と、実行ステージEXCのレジスタ
17の出力EXC rdを保持するレジスタ32と、実
行ステージEXCのレジスタ28の出力EXC loa
dを保持するレジスタ33と、バイトアラインユニット
71からロードデータが伝達されるデータバスML BU
Sと、データバスML BUS上のデータとレジスタ1
8の出力MEM DRの一方を選択するセレクタ47を
含む。
テージEXCのセレクタ16の出力EXC selを保
持するレジスタ18と、実行ステージEXCのレジスタ
17の出力EXC rdを保持するレジスタ32と、実
行ステージEXCのレジスタ28の出力EXC loa
dを保持するレジスタ33と、バイトアラインユニット
71からロードデータが伝達されるデータバスML BU
Sと、データバスML BUS上のデータとレジスタ1
8の出力MEM DRの一方を選択するセレクタ47を
含む。
【0075】レジスタファイル書込みステージ(ライト
バックステージ)WBの構成は図3および図4に示す従
来のものと同様である。
バックステージ)WBの構成は図3および図4に示す従
来のものと同様である。
【0076】バイトアラインユニット71は、制御バス
MC BUS上のデータを保持するレジスタ48および
49と、アドレスバスMA BUS上のデータを保持す
るレジスタ50と、ストアデータバスMS BUS上の
データを保持するレジスタ51を含む。
MC BUS上のデータを保持するレジスタ48および
49と、アドレスバスMA BUS上のデータを保持す
るレジスタ50と、ストアデータバスMS BUS上の
データを保持するレジスタ51を含む。
【0077】バイトアラインユニット71はさらに、デ
ータメモリ6からの読出しデータまたは書込みデータが
伝達されるデータバスMD BUSと、データバスMD
BUS上のデータとレジスタ51の出力LS MDR
の一方を選択するセレクタ53と、セレクタ53の出力
を受け、受けたデータを必要に応じてシフトするための
シフタ54と、シフタ54のシフト動作を制御するため
のシフト制御回路55を含む。
ータメモリ6からの読出しデータまたは書込みデータが
伝達されるデータバスMD BUSと、データバスMD
BUS上のデータとレジスタ51の出力LS MDR
の一方を選択するセレクタ53と、セレクタ53の出力
を受け、受けたデータを必要に応じてシフトするための
シフタ54と、シフタ54のシフト動作を制御するため
のシフト制御回路55を含む。
【0078】命令は、命令レジスタから機能ユニット
(パイプライン)に投入される際、命令デコードステー
ジにおいてデコードされる。制御信号EXC loa
d、EXC store、EXC alu、EXC s
hiftがこの命令に応じてセットされる。
(パイプライン)に投入される際、命令デコードステー
ジにおいてデコードされる。制御信号EXC loa
d、EXC store、EXC alu、EXC s
hiftがこの命令に応じてセットされる。
【0079】整数演算命令の場合、レジスタ13に格納
された制御信号EXC aluおよびレジスタ15に格納
されたシフト制御信号EXC shiftに従って、A
LU9における演算またはシフタ10においてシフト動
作が行なわれる。ALU9の出力およびシフタ10の出
力の一方がセレクタ16で選択される。このセレクタ1
6における選択の制御経路は図示していないが、レジス
タ13および15に設定された制御信号の活性状態(オ
ン状態)の制御信号に従って選択動作が実行される。セ
レクタ16の出力はレジスタ34へ伝達される。
された制御信号EXC aluおよびレジスタ15に格納
されたシフト制御信号EXC shiftに従って、A
LU9における演算またはシフタ10においてシフト動
作が行なわれる。ALU9の出力およびシフタ10の出
力の一方がセレクタ16で選択される。このセレクタ1
6における選択の制御経路は図示していないが、レジス
タ13および15に設定された制御信号の活性状態(オ
ン状態)の制御信号に従って選択動作が実行される。セ
レクタ16の出力はレジスタ34へ伝達される。
【0080】レジスタ34の出力MEM DRは、セレ
クタ47へ伝達される。整数演算命令であるため、セレ
クタ47は、このレジスタ34から与えられたデータを
選択してレジスタファイル書込みステージ(ライトバッ
クステージ)WBのレジスタ18へ通過させる。
クタ47へ伝達される。整数演算命令であるため、セレ
クタ47は、このレジスタ34から与えられたデータを
選択してレジスタファイル書込みステージ(ライトバッ
クステージ)WBのレジスタ18へ通過させる。
【0081】レジスタ18の格納するデータWB DR
は、レジスタ19に格納されたレジスタファイルアドレ
スWB rdに従って、レジスタファイル9の対応のレ
ジスタへ書込まれる。
は、レジスタ19に格納されたレジスタファイルアドレ
スWB rdに従って、レジスタファイル9の対応のレ
ジスタへ書込まれる。
【0082】ロード命令の場合、実行ステージEXCに
おいては、アドレス計算として、ALU9において加算
が実行される。ALU9における加算結果はトライステ
ートバッファ56を介してアドレスバスMA BUSへ
伝達される。トライステートバッファ56をイネーブル
するための制御信号は、制御信号EXC loadと制
御信号EXC storeの論理和信号で作成される。
おいては、アドレス計算として、ALU9において加算
が実行される。ALU9における加算結果はトライステ
ートバッファ56を介してアドレスバスMA BUSへ
伝達される。トライステートバッファ56をイネーブル
するための制御信号は、制御信号EXC loadと制
御信号EXC storeの論理和信号で作成される。
【0083】一般に、命令デコードステージ(IDステ
ージ)から命令を機能ユニットに発行する際に、同一サ
イクルでデータメモリをアクセス(ロードおよびストア
両者)しないように発行の制御が行なわれる。したがっ
て、実行ステージEXCにおいては、制御信号EXC
loadと制御信号EXC storeの論理和信号で
トライステートバッファ56のイネーブル/ディスエー
ブルを制御する構成とすればよい。
ージ)から命令を機能ユニットに発行する際に、同一サ
イクルでデータメモリをアクセス(ロードおよびストア
両者)しないように発行の制御が行なわれる。したがっ
て、実行ステージEXCにおいては、制御信号EXC
loadと制御信号EXC storeの論理和信号で
トライステートバッファ56のイネーブル/ディスエー
ブルを制御する構成とすればよい。
【0084】また、制御信号EXC loadおよびE
XC storeは、バイトアラインユニット71にお
ける動作制御信号として、制御バスMC BUSを介し
てバイトアラインユニット71のレジスタ48および4
9へ格納される。この格納経路として、レジスタ28お
よび29の出力とコントロールバスMC BUSとの間
にトライステートバッファ57および58が設けられ
る。このトライステートバッファ57および58の制御
は制御信号EXC loadと制御信号EXC store
の論理和信号により作成される。
XC storeは、バイトアラインユニット71にお
ける動作制御信号として、制御バスMC BUSを介し
てバイトアラインユニット71のレジスタ48および4
9へ格納される。この格納経路として、レジスタ28お
よび29の出力とコントロールバスMC BUSとの間
にトライステートバッファ57および58が設けられ
る。このトライステートバッファ57および58の制御
は制御信号EXC loadと制御信号EXC store
の論理和信号により作成される。
【0085】バイトアラインユニット71においては、
レジスタ48および49に制御信号LS loadおよ
びLS storeがそれぞれ格納される。また、レジ
スタ50はアドレスバスMA BUS上のデータを格納
する。レジスタ48に格納された制御信号LS loa
dはデータメモリ6からのデータ読出しを示す制御信号
として用いられる。レジスタ49に格納された制御信号
LS storeはデータメモリ6への書込み動作を示
す制御信号として用いられる。レジスタ50に格納され
たアドレスLS MARはデータメモリ6のアドレスと
して用いられる。
レジスタ48および49に制御信号LS loadおよ
びLS storeがそれぞれ格納される。また、レジ
スタ50はアドレスバスMA BUS上のデータを格納
する。レジスタ48に格納された制御信号LS loa
dはデータメモリ6からのデータ読出しを示す制御信号
として用いられる。レジスタ49に格納された制御信号
LS storeはデータメモリ6への書込み動作を示
す制御信号として用いられる。レジスタ50に格納され
たアドレスLS MARはデータメモリ6のアドレスと
して用いられる。
【0086】今、与えられた命令がロード命令の場合を
考えている。したがって、レジスタ48に格納された制
御信号LS loadの値に従って、データメモリ6へ
データ読出し(リード)が指示される。
考えている。したがって、レジスタ48に格納された制
御信号LS loadの値に従って、データメモリ6へ
データ読出し(リード)が指示される。
【0087】データメモリ6から読出されたデータは、
データバスMD BUS上へ伝達され、このデータバス
MD BUS上のデータはセレクタ53へ与えられる。
セレクタ53は、命令がロード命令であるため、このデ
ータバスMD BUS上のデータを選択してシフタ54
へ伝達する。シフタ54は、セレクタ53からの出力L
S selの出力をシフト制御回路55の制御のもとに
必要に応じてシフトし、データバスML BUS上へ伝
達する。
データバスMD BUS上へ伝達され、このデータバス
MD BUS上のデータはセレクタ53へ与えられる。
セレクタ53は、命令がロード命令であるため、このデ
ータバスMD BUS上のデータを選択してシフタ54
へ伝達する。シフタ54は、セレクタ53からの出力L
S selの出力をシフト制御回路55の制御のもとに
必要に応じてシフトし、データバスML BUS上へ伝
達する。
【0088】データML BUS上のデータは、セレク
タ47へ与えられる。セレクタ47は、ロード命令であ
るため、このデータバスML BUS上のデータを選択
してライトバックステージWBのレジスタ18へ伝達す
る。このレジスタ18のデータは、さらにレジスタファ
イル9の対応のレジスタへ書込まれる。
タ47へ与えられる。セレクタ47は、ロード命令であ
るため、このデータバスML BUS上のデータを選択
してライトバックステージWBのレジスタ18へ伝達す
る。このレジスタ18のデータは、さらにレジスタファ
イル9の対応のレジスタへ書込まれる。
【0089】ストア命令の場合においては、実行ステー
ジEXCにおいて、ロード命令と同様アドレス計算のた
め、ALU9において加算が行なわれる。このALU9
における加算結果は、トライステートバッファ56を介
してアドレスバスMA BUS上に出力される。
ジEXCにおいて、ロード命令と同様アドレス計算のた
め、ALU9において加算が行なわれる。このALU9
における加算結果は、トライステートバッファ56を介
してアドレスバスMA BUS上に出力される。
【0090】データメモリ6に書込むべきデータはレジ
スタ14に格納されている。このレジスタ14に格納さ
れたデータEXC DRは、シフタ10を介してセレク
タ16へ与えられる。このとき、シフタ10においては
シフト動作は実行されない。(シフトはバイトアライン
ユニット71で実行される。)セレクタ16は、このシ
フタ10からのデータを選択する。セレクタ16の出力
EXC selはトライステートバッファ59を介して
データバスMS BUS上へ伝達される。
スタ14に格納されている。このレジスタ14に格納さ
れたデータEXC DRは、シフタ10を介してセレク
タ16へ与えられる。このとき、シフタ10においては
シフト動作は実行されない。(シフトはバイトアライン
ユニット71で実行される。)セレクタ16は、このシ
フタ10からのデータを選択する。セレクタ16の出力
EXC selはトライステートバッファ59を介して
データバスMS BUS上へ伝達される。
【0091】制御信号EXC loadおよびEXC
storeはともにバイトアラインユニット71におけ
る制御信号として利用されるため、制御バスMC BU
Sを介してバイトアラインユニット71のレジスタ48
および49へ格納される。この場合においても、トライ
ステートバッファ56、57および58のイネーブル信
号は、制御信号EXC loadと制御信号EXC s
torとの論理和信号により作成される。
storeはともにバイトアラインユニット71におけ
る制御信号として利用されるため、制御バスMC BU
Sを介してバイトアラインユニット71のレジスタ48
および49へ格納される。この場合においても、トライ
ステートバッファ56、57および58のイネーブル信
号は、制御信号EXC loadと制御信号EXC s
torとの論理和信号により作成される。
【0092】バイトアラインユニット71は、制御バス
MC BUS上の制御信号をレジスタ48および49に
格納し、かつアドレスバスMA BUS上のデータをレ
ジスタ50に格納し、かつデータバスMS BUS上の
ストアデータをレジスタ51に格納する。
MC BUS上の制御信号をレジスタ48および49に
格納し、かつアドレスバスMA BUS上のデータをレ
ジスタ50に格納し、かつデータバスMS BUS上の
ストアデータをレジスタ51に格納する。
【0093】今、命令がストア命令の場合を考えてい
る。この場合、レジスタ49に格納された制御信号LS
storeの値に従ってデータメモリ6へのデータの
書込み(ライト)が指示される。
る。この場合、レジスタ49に格納された制御信号LS
storeの値に従ってデータメモリ6へのデータの
書込み(ライト)が指示される。
【0094】レジスタ50に格納されたアドレスLS
MARは、データメモリ6をアクセスするアドレスとし
てデータメモリ6へ出力される。
MARは、データメモリ6をアクセスするアドレスとし
てデータメモリ6へ出力される。
【0095】レジスタ51に格納されたデータLS M
DRは、セレクタ53を介してシフタ54へ伝達され
る。シフタ54は、必要がある場合にはシフト動作を行
なう(バイトデータまたはハーフデータの場合のよう
に、データメモリへのデータバスとの整合をとる必要が
ある場合)、データバスML BUS上へ伝達される。
データバスML BUS上のデータはトライステートバ
ッファ59を介してデータバスMD BUS上へ伝達さ
れる。このデータバスMD BUS上のデータがデータ
メモリ6のアドレスLS MARが指定する位置に書込
まれる。
DRは、セレクタ53を介してシフタ54へ伝達され
る。シフタ54は、必要がある場合にはシフト動作を行
なう(バイトデータまたはハーフデータの場合のよう
に、データメモリへのデータバスとの整合をとる必要が
ある場合)、データバスML BUS上へ伝達される。
データバスML BUS上のデータはトライステートバ
ッファ59を介してデータバスMD BUS上へ伝達さ
れる。このデータバスMD BUS上のデータがデータ
メモリ6のアドレスLS MARが指定する位置に書込
まれる。
【0096】トライステートバッファ59は、レジスタ
49に格納された制御信号LS storeがオン状態
にあり、ストアを示している場合にはイネーブル状態と
される。
49に格納された制御信号LS storeがオン状態
にあり、ストアを示している場合にはイネーブル状態と
される。
【0097】上述の構成を用いることにより性能が改善
されることを以下に具体的に示す。今、2つの場合を考
える。
されることを以下に具体的に示す。今、2つの場合を考
える。
【0098】
従来:整数演算ユニット1本、ロード/ストアユニット
1本 本発明:整数演算ユニット2本およびバイトアラインユ
ニット1つ 場合(1):整数演算命令数2 発行可能命令数 従来…1;本発明…2 場合(2):整数演算命令数1かつロードストア命令数
1 発行可能命令数 従来…2;本発明…2 場合(3):ロード/ストア命令数2 発行可能命令数:従来…1;本発明…1 上述の場合分けにおいては、命令レジスタに格納された
2つの命令の組合わせに対して、機能ユニットへ発行す
ることのできる命令の数を示す。この上述の場合分けか
ら明らかなように、本発明による構成によれば、発行可
能命令の組合わせに従来よりも柔軟性を持たせることが
できる。すなわち、整数演算命令とロード/ストア命令
の出現頻度に応じて機能ユニット(パイプライン)を命
令に割当てることができ、命令の処理速度を向上させる
ことができる。
1本 本発明:整数演算ユニット2本およびバイトアラインユ
ニット1つ 場合(1):整数演算命令数2 発行可能命令数 従来…1;本発明…2 場合(2):整数演算命令数1かつロードストア命令数
1 発行可能命令数 従来…2;本発明…2 場合(3):ロード/ストア命令数2 発行可能命令数:従来…1;本発明…1 上述の場合分けにおいては、命令レジスタに格納された
2つの命令の組合わせに対して、機能ユニットへ発行す
ることのできる命令の数を示す。この上述の場合分けか
ら明らかなように、本発明による構成によれば、発行可
能命令の組合わせに従来よりも柔軟性を持たせることが
できる。すなわち、整数演算命令とロード/ストア命令
の出現頻度に応じて機能ユニット(パイプライン)を命
令に割当てることができ、命令の処理速度を向上させる
ことができる。
【0099】最後に、第1の発明の構成におけるデータ
バイパスの方法を示す。一般にパイプライン方式に従う
計算機においては、命令実行のステージと、実行結果の
書込みステージとが異なる。したがって、先に実行され
た命令の直後のサイクルにおいては、その命令の実行結
果を利用することができない。
バイパスの方法を示す。一般にパイプライン方式に従う
計算機においては、命令実行のステージと、実行結果の
書込みステージとが異なる。したがって、先に実行され
た命令の直後のサイクルにおいては、その命令の実行結
果を利用することができない。
【0100】たとえば、
R1←R2+R3 IF ID EXC WB
R4←R1+R5 IF ID ID ID EXC WB
の命令実行シーケンスを考える。一番目の命令は、レジ
スタR2とレジスタR3の内容を加算し、該加算結果を
レジスタR1に書込む命令である。2番目の命令は、レ
ジスタR1の内容とレジスタR5の内容とを加算し、該
加算結果をレジスタR4へ格納する命令である。
スタR2とレジスタR3の内容を加算し、該加算結果を
レジスタR1に書込む命令である。2番目の命令は、レ
ジスタR1の内容とレジスタR5の内容とを加算し、該
加算結果をレジスタR4へ格納する命令である。
【0101】この場合、1番目の命令がライトバックス
テージWBに入るまでは、2番目の命令は1番目の命令
の結果R1を利用することができない。このため、命令
デコードステージIDにおいて2サイクルの待合わせが
生じる。
テージWBに入るまでは、2番目の命令は1番目の命令
の結果R1を利用することができない。このため、命令
デコードステージIDにおいて2サイクルの待合わせが
生じる。
【0102】先に実行された命令の直後のサイクルにお
いても、その結果が利用可能なようにする機構のことを
「データのバイパス」と呼ぶ。この「データのバイパス
方式」を採用すれば、上述の命令実行シーケンスは下の
ように改善される。
いても、その結果が利用可能なようにする機構のことを
「データのバイパス」と呼ぶ。この「データのバイパス
方式」を採用すれば、上述の命令実行シーケンスは下の
ように改善される。
【0103】
R1←R2+R3 IF ID EXC WB
R4←R1+R5 IF ID EXC WB
したがって、このバイパス方式に従えば、命令デコード
ステージIDにおける待合わせが生じることはないた
め、命令を高速で実行することができる。
ステージIDにおける待合わせが生じることはないた
め、命令を高速で実行することができる。
【0104】図10に、このデータバイパスを行なうた
めの一般的な論理の一例を示す。図10においては、メ
モリアクセスステージMEMからのデータのバイパスを
示す。信号ID rsは、命令デコードステージIDに
存在する命令がレジスタファイルから命令を読出すレジ
スタの番号を示す情報(レジスタアドレス)である。比
較器62は、この命令デコードステージIDからのレジ
スタアドレスID rsと、メモリアクセスステージM
EMに存在する命令の結果を書込むべきレジスタアドレ
スMEM rdとを比較する。もし両者が一致した場合
には、レジスタファイル9から読出されたデータがバス
S1 BUS上へトライステートバッファ63を介して
伝達される。両者が一致した場合には、メモリアクセス
ステージMEMに存在するデータMEM dataがト
ライステートバッファ64を介してソースバスS1 B
US上へ出力される。このソースバスS1 BUS上の
データは実行ステージEXCに含まれるレジスタ24に
格納される。
めの一般的な論理の一例を示す。図10においては、メ
モリアクセスステージMEMからのデータのバイパスを
示す。信号ID rsは、命令デコードステージIDに
存在する命令がレジスタファイルから命令を読出すレジ
スタの番号を示す情報(レジスタアドレス)である。比
較器62は、この命令デコードステージIDからのレジ
スタアドレスID rsと、メモリアクセスステージM
EMに存在する命令の結果を書込むべきレジスタアドレ
スMEM rdとを比較する。もし両者が一致した場合
には、レジスタファイル9から読出されたデータがバス
S1 BUS上へトライステートバッファ63を介して
伝達される。両者が一致した場合には、メモリアクセス
ステージMEMに存在するデータMEM dataがト
ライステートバッファ64を介してソースバスS1 B
US上へ出力される。このソースバスS1 BUS上の
データは実行ステージEXCに含まれるレジスタ24に
格納される。
【0105】本発明による構成においてデータバイパス
を行なうための構成を図11に示す。この図11に示す
構成もメモリアクセスステージMEMからのデータのバ
イパスを行なう構成を示す。命令デコードステージID
にある命令のレジスタアドレスID rsは、メモリア
クセスステージMEMに存在する命令の実行結果を書込
むレジスタアドレスMEM rdと比較器62において
比較される。比較器62の比較結果はゲート回路61お
よび65へ与えられるとともに、インバータ630を介
してトライステートバッファ63の制御入力へ伝達され
る。
を行なうための構成を図11に示す。この図11に示す
構成もメモリアクセスステージMEMからのデータのバ
イパスを行なう構成を示す。命令デコードステージID
にある命令のレジスタアドレスID rsは、メモリア
クセスステージMEMに存在する命令の実行結果を書込
むレジスタアドレスMEM rdと比較器62において
比較される。比較器62の比較結果はゲート回路61お
よび65へ与えられるとともに、インバータ630を介
してトライステートバッファ63の制御入力へ伝達され
る。
【0106】ゲート回路61はその他方入力に制御信号
MEM loadを受ける。ゲート回路65は制御信号
MEM loadの反転信号と比較器62の出力とを受
ける。ゲート回路61の出力はトライステートバッファ
66の制御端子へ与えられ、ゲート回路65の出力信号
はトライステートバッファ64の制御端子へ与えられ
る。トライステートバッファ66はデータLS dat
aをソースバスS1 BUS上へ伝達する。トライステ
ートバッファ64は、データMEM dataをソース
バスS1 BUS上へ送出する。
MEM loadを受ける。ゲート回路65は制御信号
MEM loadの反転信号と比較器62の出力とを受
ける。ゲート回路61の出力はトライステートバッファ
66の制御端子へ与えられ、ゲート回路65の出力信号
はトライステートバッファ64の制御端子へ与えられ
る。トライステートバッファ66はデータLS dat
aをソースバスS1 BUS上へ伝達する。トライステ
ートバッファ64は、データMEM dataをソース
バスS1 BUS上へ送出する。
【0107】比較器62の出力が不一致を示す場合、ト
ライステートバッファ63がイネーブルされ、レジスタ
ファイル9から読出されたデータがソースバスS1 B
US上へ伝達される。
ライステートバッファ63がイネーブルされ、レジスタ
ファイル9から読出されたデータがソースバスS1 B
US上へ伝達される。
【0108】比較器62の出力が一致を示す場合には、
トライステートバッファ63はディスエーブル状態とさ
れる。この場合、メモリアクセスステージMEMに存在
する命令がロード命令でない場合、すなわち制御信号M
EM loadがオフであれば、メモリアクセスステー
ジMEMに存在するデータMEM dataがトライス
テートバッファ64を介してソースバスS1−BUS上
へ送出される。メモリアクセスステージMEMに存在す
る命令がロード命令であれば、すなわち制御信号MEM
loadがオンであれば、トライステートバッファ6
6がイネーブルされ、シフタ54の出力LS data
がソースバスS1上に出力される。
トライステートバッファ63はディスエーブル状態とさ
れる。この場合、メモリアクセスステージMEMに存在
する命令がロード命令でない場合、すなわち制御信号M
EM loadがオフであれば、メモリアクセスステー
ジMEMに存在するデータMEM dataがトライス
テートバッファ64を介してソースバスS1−BUS上
へ送出される。メモリアクセスステージMEMに存在す
る命令がロード命令であれば、すなわち制御信号MEM
loadがオンであれば、トライステートバッファ6
6がイネーブルされ、シフタ54の出力LS data
がソースバスS1上に出力される。
【0109】シフタ54の出力を受けるバッファ67
(図9参照)を設けておけば、シフタ54の出力がデー
タバスML BUSおよびLS dataの両者をドラ
イブする必要がなくなる。したがって、シフタ54の出
力LS shifterがソースバスS1 BUSへ伝
達される場合に生じる信号遅延を短縮することができ
る。
(図9参照)を設けておけば、シフタ54の出力がデー
タバスML BUSおよびLS dataの両者をドラ
イブする必要がなくなる。したがって、シフタ54の出
力LS shifterがソースバスS1 BUSへ伝
達される場合に生じる信号遅延を短縮することができ
る。
【0110】図1に示す構成においては同一構成のパイ
プライン(機能ユニット)が3本設けられており、命令
レジスタには同時に3つの命令が格納される。
プライン(機能ユニット)が3本設けられており、命令
レジスタには同時に3つの命令が格納される。
【0111】この場合、命令レジスタに4つの命令を同
時に格納し、この4つの命令のうち同時に実行可能の命
令(最大3個)を検出する構成とすれば、より多くの並
列処理のスケジューリングが実現される。並列処理され
る命令の数が多くなれば、処理速度が増加する。このと
き、図7および図8を参照して説明したように、投入す
る必要のない命令(たとえばNOP命令)を投入する場
合が生じると、NOP命令を投入されたパイプラインに
空きが生じ、処理速度が低下する。以下、このNOP命
令が存在する場合においても処理速度の低下が生じない
構成について説明する。
時に格納し、この4つの命令のうち同時に実行可能の命
令(最大3個)を検出する構成とすれば、より多くの並
列処理のスケジューリングが実現される。並列処理され
る命令の数が多くなれば、処理速度が増加する。このと
き、図7および図8を参照して説明したように、投入す
る必要のない命令(たとえばNOP命令)を投入する場
合が生じると、NOP命令を投入されたパイプラインに
空きが生じ、処理速度が低下する。以下、このNOP命
令が存在する場合においても処理速度の低下が生じない
構成について説明する。
【0112】図12は、この発明のさらに他の実施例で
ある並列演算処理装置の命令デコードステージの概略構
成を示す図である。図12において、命令デコードステ
ージは、命令メモリからフェッチされた命令を格納する
とともにこの格納された命令の書込みおよび読出しを管
理する命令レジスタ管理ユニット121を含む。管理ユ
ニット121は、命令メモリ(図示せず)からフェッチ
された命令を格納するキューメモリとこのキューメモリ
に格納された命令から4つの命令を同時に読出し、この
読出した4つの命令inst1、inst2、inst
3およびinst4を出力する。また命令レジスタ管理
ユニット121のキューメモリへは、命令メモリから同
時にフェッチされた4つの命令が同時に格納される。こ
の命令レジスタ管理ユニット121に含まれるキューメ
モリはそれぞれデータの書込み経路と読出し経路とが別
々に設けられており、非同期でデータの書込みおよび読
出しが実行可能である。
ある並列演算処理装置の命令デコードステージの概略構
成を示す図である。図12において、命令デコードステ
ージは、命令メモリからフェッチされた命令を格納する
とともにこの格納された命令の書込みおよび読出しを管
理する命令レジスタ管理ユニット121を含む。管理ユ
ニット121は、命令メモリ(図示せず)からフェッチ
された命令を格納するキューメモリとこのキューメモリ
に格納された命令から4つの命令を同時に読出し、この
読出した4つの命令inst1、inst2、inst
3およびinst4を出力する。また命令レジスタ管理
ユニット121のキューメモリへは、命令メモリから同
時にフェッチされた4つの命令が同時に格納される。こ
の命令レジスタ管理ユニット121に含まれるキューメ
モリはそれぞれデータの書込み経路と読出し経路とが別
々に設けられており、非同期でデータの書込みおよび読
出しが実行可能である。
【0113】命令デコード解析ユニット122は、命令
レジスタ管理ユニット121から与えられた4つの命令
をデコードし、該デコード結果を示すコードを生成す
る。命令デコード解析ユニット122はさらに、この命
令レジスタ管理ユニット121から与えられた命令in
st1〜inst4を解析し、同時に実行可能な命令
(最大3個)を検出し、検出された命令を発行する。同
時に、この命令デコード解析ユニット122はさらに、
命令レジスタ管理ユニット121から与えられた命令i
nst4のオペコード部inst4.opをNOP命令
解析回路123へ送出する。
レジスタ管理ユニット121から与えられた4つの命令
をデコードし、該デコード結果を示すコードを生成す
る。命令デコード解析ユニット122はさらに、この命
令レジスタ管理ユニット121から与えられた命令in
st1〜inst4を解析し、同時に実行可能な命令
(最大3個)を検出し、検出された命令を発行する。同
時に、この命令デコード解析ユニット122はさらに、
命令レジスタ管理ユニット121から与えられた命令i
nst4のオペコード部inst4.opをNOP命令
解析回路123へ送出する。
【0114】NOP命令解析回路123は命令デコード
解析ユニット122から命令inst4のオペコード部
inst4.opを受け、この命令がNOP命令である
か否かの判定を行ない、該判定結果を示す信号nopを
命令デコード解析ユニット122へ返送する。
解析ユニット122から命令inst4のオペコード部
inst4.opを受け、この命令がNOP命令である
か否かの判定を行ない、該判定結果を示す信号nopを
命令デコード解析ユニット122へ返送する。
【0115】命令デコード解析ユニット122はこのN
OP命令解析回路123からの信号nopがNOP命令
を示している場合、命令デコード・解析ユニット122
においては、同時実行可能な命令の解析終了時におい
て、命令inst4の発行を禁止するとともに、この命
令をinst4を発行済みとみなすとともに、残りの命
令inst1〜inst3のうちの同時に実行可能な命
令を出力する。
OP命令解析回路123からの信号nopがNOP命令
を示している場合、命令デコード・解析ユニット122
においては、同時実行可能な命令の解析終了時におい
て、命令inst4の発行を禁止するとともに、この命
令をinst4を発行済みとみなすとともに、残りの命
令inst1〜inst3のうちの同時に実行可能な命
令を出力する。
【0116】ここで図12に示す構成においてパイプラ
イン(機能ユニット)としては、図1に示すように同一
構成のパイプラインが想定されている。また、命令デコ
ード解析ユニット122から出力される命令は、アドレ
スの小さい順に出力される。したがって、命令inst
1が、機能ユニット(パイプライン)において命令実行
可能な場合には、そのサイクルにおいて必ず機能ユニッ
ト(パイプライン)へ投入される。残りの命令inst
2〜inst4については、inst1との同時実行性
すなわち並列処理可能か否かが検出される。この場合、
たとえば命令inst1と命令inst2とが並列処理
可能でない場合には、命令inst1のみが対応のパイ
プライン(機能ユニット)へ投入される。
イン(機能ユニット)としては、図1に示すように同一
構成のパイプラインが想定されている。また、命令デコ
ード解析ユニット122から出力される命令は、アドレ
スの小さい順に出力される。したがって、命令inst
1が、機能ユニット(パイプライン)において命令実行
可能な場合には、そのサイクルにおいて必ず機能ユニッ
ト(パイプライン)へ投入される。残りの命令inst
2〜inst4については、inst1との同時実行性
すなわち並列処理可能か否かが検出される。この場合、
たとえば命令inst1と命令inst2とが並列処理
可能でない場合には、命令inst1のみが対応のパイ
プライン(機能ユニット)へ投入される。
【0117】このような構成の場合、命令デコード解析
ユニット122から出力される命令と機能ユニットとは
その接続関係が最短距離を与えるように各命令(デコー
ド回路、命令レジスタ)とパイプラインとが対応して配
置される。また上述のような4命令が命令レジスタ管理
ユニット121から与えられる構成の場合、命令ins
t4がNOP命令である可能性が高い。このため、命令
inst4がコンパイラの性能、命令メモリのアライメ
ント等の点からNOP命令である可能性が高い。このた
め、命令inst4に対してのみ、NOP命令であるか
否かの解析が実行される。
ユニット122から出力される命令と機能ユニットとは
その接続関係が最短距離を与えるように各命令(デコー
ド回路、命令レジスタ)とパイプラインとが対応して配
置される。また上述のような4命令が命令レジスタ管理
ユニット121から与えられる構成の場合、命令ins
t4がNOP命令である可能性が高い。このため、命令
inst4がコンパイラの性能、命令メモリのアライメ
ント等の点からNOP命令である可能性が高い。このた
め、命令inst4に対してのみ、NOP命令であるか
否かの解析が実行される。
【0118】図13は図12に示すNOP命令解析回路
123の回路構成を示す図である。図13において、N
OP命令解析回路123は、命令inst4のオペラン
ド部inst4.opとNOPコードを比較する比較器
140を含む。比較器14oから命令instがNOP
命令であるか否かを示す信号nopが出力される。次に
動作について簡単に説明する。
123の回路構成を示す図である。図13において、N
OP命令解析回路123は、命令inst4のオペラン
ド部inst4.opとNOPコードを比較する比較器
140を含む。比較器14oから命令instがNOP
命令であるか否かを示す信号nopが出力される。次に
動作について簡単に説明する。
【0119】今、命令inst1、命令inst2およ
び命令inst3が同時に発行可能であり、命令ins
t4が発行する必要のない命令(NOP命令)である場
合を考える。命令デコード解析ユニット122は命令i
nst1〜inst4を同時に受けて解析する。命令デ
コード解析ユニット122は、命令inst1〜ins
t4を解析し、命令inst1〜inst3が同時に実
行可能であると解析する。命令デコード解析ユニット1
22はまた命令inst4をNOP命令解析回路123
へ与える。NOP命令解析回路123は命令inst4
のオペランド部inst4.opをNOPコードと比較
し、この命令inst4がNOP命令であるか否かを判
定する。
び命令inst3が同時に発行可能であり、命令ins
t4が発行する必要のない命令(NOP命令)である場
合を考える。命令デコード解析ユニット122は命令i
nst1〜inst4を同時に受けて解析する。命令デ
コード解析ユニット122は、命令inst1〜ins
t4を解析し、命令inst1〜inst3が同時に実
行可能であると解析する。命令デコード解析ユニット1
22はまた命令inst4をNOP命令解析回路123
へ与える。NOP命令解析回路123は命令inst4
のオペランド部inst4.opをNOPコードと比較
し、この命令inst4がNOP命令であるか否かを判
定する。
【0120】命令デコード解析ユニット122は、同時
に発行可能な命令inst1〜inst3を発行すると
ともに、NOP命令解析回路123からの信号nopに
従って命令inst4が機能ユニット(パイプライン)
へ投入されたとみなす。この命令inst4を発行済み
と処理される(図14参照)。
に発行可能な命令inst1〜inst3を発行すると
ともに、NOP命令解析回路123からの信号nopに
従って命令inst4が機能ユニット(パイプライン)
へ投入されたとみなす。この命令inst4を発行済み
と処理される(図14参照)。
【0121】この命令が発行済みであるか否かの判別
は、以下のようにして行なわれる。対応のパイプライン
(機能ユニット)へ命令(操作コード)とともにこの命
令が有効であることを示すフラグinst avail
がリンクされて出力される。この有効性フラグinst
availは対応の命令と平行して各パイプラインス
テージを伝達される。命令デコード・解析ユニット12
2は、この命令に付随する有効性フラグinst av
ailがオン状態であり有効性を示しているフラグの数
をカウントし、発行命令数を知る。この発行命令数に従
って、命令レジスタ管理ユニット121に含まれるキュ
ーメモリの読出しアドレスを変更する。したがって、こ
の命令inst4がNOP命令であり、発行済みとされ
る場合は、命令inst4に対応する有効性フラグin
st avail4がオン状態と設定されることに対応
する。この場合、したがって、パイプライン(機能ユニ
ット)へ投入された発行命令数は実際には3であるもの
の、4と擬制され、命令レジスタ管理ユニット121に
含まれるキューの読出しアドレスが4変更される。した
がって、この場合、図7および図8に対応して参照する
と、図7に示すサイクル1においては、命令#1〜命令
#3が対応のパイプライン(機能ユニット)へ投入さ
れ、命令#4は機能ユニット(パイプライン)へ投入さ
れたとみなされ、発行済みとみなされる。
は、以下のようにして行なわれる。対応のパイプライン
(機能ユニット)へ命令(操作コード)とともにこの命
令が有効であることを示すフラグinst avail
がリンクされて出力される。この有効性フラグinst
availは対応の命令と平行して各パイプラインス
テージを伝達される。命令デコード・解析ユニット12
2は、この命令に付随する有効性フラグinst av
ailがオン状態であり有効性を示しているフラグの数
をカウントし、発行命令数を知る。この発行命令数に従
って、命令レジスタ管理ユニット121に含まれるキュ
ーメモリの読出しアドレスを変更する。したがって、こ
の命令inst4がNOP命令であり、発行済みとされ
る場合は、命令inst4に対応する有効性フラグin
st avail4がオン状態と設定されることに対応
する。この場合、したがって、パイプライン(機能ユニ
ット)へ投入された発行命令数は実際には3であるもの
の、4と擬制され、命令レジスタ管理ユニット121に
含まれるキューの読出しアドレスが4変更される。した
がって、この場合、図7および図8に対応して参照する
と、図7に示すサイクル1においては、命令#1〜命令
#3が対応のパイプライン(機能ユニット)へ投入さ
れ、命令#4は機能ユニット(パイプライン)へ投入さ
れたとみなされ、発行済みとみなされる。
【0122】したがって、図8に示すサイクル2におい
ては、命令#5〜命令#8が従来の場合と異なり、命令
レジスタ管理ユニットから命令デコード解析ユニット1
22へ伝達される。このとき、命令#5,#6および#
7が同時に発行可能な場合、この3命令#5、命令#6
および命令#7が発行される。したがって、図8の処理
動作と異なり、命令#7の発行が1クロック早くなり、
処理速度が改善される。
ては、命令#5〜命令#8が従来の場合と異なり、命令
レジスタ管理ユニットから命令デコード解析ユニット1
22へ伝達される。このとき、命令#5,#6および#
7が同時に発行可能な場合、この3命令#5、命令#6
および命令#7が発行される。したがって、図8の処理
動作と異なり、命令#7の発行が1クロック早くなり、
処理速度が改善される。
【0123】なお上述の構成においては、パイプライン
がすべて同一構成の機能ユニットを備えている場合が示
されているが、これは構成が異なる機能ユニットであっ
ても上記実施例と同様の効果を得ることができる。
がすべて同一構成の機能ユニットを備えている場合が示
されているが、これは構成が異なる機能ユニットであっ
ても上記実施例と同様の効果を得ることができる。
【0124】命令#1と命令#2とが同時実行可能であ
り命令#4がNOP命令の場合、命令プリフェッチ方式
では、次のサイクルで命令#3は与えられず、再びNO
P命令がフェッチされる。命令#4がNOP命令となる
のは、命令#1〜命令#3が同時発行可能な時が多い。
命令#4がNOP命令で実際の発行命令数が2以下は極
めてまれである。このような場合に、命令#4のNOP
命令が悪影響を及ぼさないように、実際の発行命令数が
3のときに信号nopによる制御を実行する構成を設け
てもよい。
り命令#4がNOP命令の場合、命令プリフェッチ方式
では、次のサイクルで命令#3は与えられず、再びNO
P命令がフェッチされる。命令#4がNOP命令となる
のは、命令#1〜命令#3が同時発行可能な時が多い。
命令#4がNOP命令で実際の発行命令数が2以下は極
めてまれである。このような場合に、命令#4のNOP
命令が悪影響を及ぼさないように、実際の発行命令数が
3のときに信号nopによる制御を実行する構成を設け
てもよい。
【0125】また、上述の構成においては、命令ins
t4がNOP命令であるか否かの判別が行なわれてい
る。この場合、命令inst1〜inst4のすべてに
対してNOP命令であるか否かの判別が行なわれる構成
であってもよい。この場合、命令NOPとみなされた命
令に対する解析は終了され機能ユニットへの発行は行な
われない。
t4がNOP命令であるか否かの判別が行なわれてい
る。この場合、命令inst1〜inst4のすべてに
対してNOP命令であるか否かの判別が行なわれる構成
であってもよい。この場合、命令NOPとみなされた命
令に対する解析は終了され機能ユニットへの発行は行な
われない。
【0126】また、上述実施例においては、命令ins
t1と同時に発行可能な命令の検出が行なわれており、
アドレスの小さい順にその命令発行が実行されている。
この場合、命令プリフェッチ方式ではなく、同時にフェ
ッチされた命令のうち常に並列処理可能な命令の検出が
行なわれる構成であっても上記実施例と同様の効果を得
ることができる。
t1と同時に発行可能な命令の検出が行なわれており、
アドレスの小さい順にその命令発行が実行されている。
この場合、命令プリフェッチ方式ではなく、同時にフェ
ッチされた命令のうち常に並列処理可能な命令の検出が
行なわれる構成であっても上記実施例と同様の効果を得
ることができる。
【0127】また、上述の説明においては。命令ins
t1〜inst3が命令デコード・解析ユニット122
において格納される位置と、投入されるパイプラインと
がレイアウトにおいて対応する位置に設けられていると
して説明した。しかしながら、これは、たとえばトライ
ステートバッファなどを用いて、各命令の投入されるパ
イプライン位置がシフトされる構成であってもよい。す
なわち、命令プリフェッチ方式ではなく、同時にフェッ
チされた4命令がすべて発行されるまで次の命令のフェ
ッチが行なわれない構成において、同時に発行可能な命
令を各対応の機能ユニット(個々に機能が異なる)へ投
入する構成であってもよい。この場合、単に同時発行可
能な命令の位置を示す回路(たとえば命令分配機能を備
える回路)を解析ユニットに設けておき、この解析結果
に従って命令のシフトが実行される。
t1〜inst3が命令デコード・解析ユニット122
において格納される位置と、投入されるパイプラインと
がレイアウトにおいて対応する位置に設けられていると
して説明した。しかしながら、これは、たとえばトライ
ステートバッファなどを用いて、各命令の投入されるパ
イプライン位置がシフトされる構成であってもよい。す
なわち、命令プリフェッチ方式ではなく、同時にフェッ
チされた4命令がすべて発行されるまで次の命令のフェ
ッチが行なわれない構成において、同時に発行可能な命
令を各対応の機能ユニット(個々に機能が異なる)へ投
入する構成であってもよい。この場合、単に同時発行可
能な命令の位置を示す回路(たとえば命令分配機能を備
える回路)を解析ユニットに設けておき、この解析結果
に従って命令のシフトが実行される。
【0128】さらに上記実施例においては、機能ユニッ
トへ投入する必要のない命令としてNOP命令を示した
が、これはパイプラインにおいて何ら実行される必要の
ない無意味な命令であればよい。
トへ投入する必要のない命令としてNOP命令を示した
が、これはパイプラインにおいて何ら実行される必要の
ない無意味な命令であればよい。
【0129】さらに上記実施例のすべてにおいては、並
列演算処理装置としてスーパースカラ型プロセッサが示
されているが、これは複数の命令が並列処理される処理
装置であればいずれの上記実施例において適用されても
よい。
列演算処理装置としてスーパースカラ型プロセッサが示
されているが、これは複数の命令が並列処理される処理
装置であればいずれの上記実施例において適用されても
よい。
【0130】
【発明の効果】以上のように、第1の発明によれば、機
能ユニットをすべて演算機能とアドレス計算機能とを併
せ持つことにより任意の命令の発行を受ける機能ユニッ
トとし、かつ命令へのアクセスのみを実行する機能ユニ
ットを設けたため、同一構成の機能ユニットが複数個並
列に設けられることになり、発行可能な命令の組合わせ
を柔軟に決定することができ、並列処理性能を向上させ
ることができる。
能ユニットをすべて演算機能とアドレス計算機能とを併
せ持つことにより任意の命令の発行を受ける機能ユニッ
トとし、かつ命令へのアクセスのみを実行する機能ユニ
ットを設けたため、同一構成の機能ユニットが複数個並
列に設けられることになり、発行可能な命令の組合わせ
を柔軟に決定することができ、並列処理性能を向上させ
ることができる。
【0131】さらに、機能ユニットに対しては整数演算
命令およびロード/ストア命令いずれをも発行すること
が可能となるため、命令分配機構は不必要となり、ハー
ドウェアを低減することができる。
命令およびロード/ストア命令いずれをも発行すること
が可能となるため、命令分配機構は不必要となり、ハー
ドウェアを低減することができる。
【0132】第2の発明に従えば、並列に設けられた機
能ユニットの数以上の命令を解析する場合、機能ユニッ
トへ投入する必要のないたとえばNOP命令は、機能ユ
ニットに投入することなしに発行済みとみなされるた
め、続くサイクルで実行する必要がなくなる。これによ
り、次のサイクルにおいては、最大、機能ユニット数の
有効な命令を発行することが可能となる。この結果、命
令処理速度が改善され、並列処理装置の性能が向上す
る。
能ユニットの数以上の命令を解析する場合、機能ユニッ
トへ投入する必要のないたとえばNOP命令は、機能ユ
ニットに投入することなしに発行済みとみなされるた
め、続くサイクルで実行する必要がなくなる。これによ
り、次のサイクルにおいては、最大、機能ユニット数の
有効な命令を発行することが可能となる。この結果、命
令処理速度が改善され、並列処理装置の性能が向上す
る。
【図1】この発明の一実施例である並列演算処理装置の
概念的構成を示す図である。
概念的構成を示す図である。
【図2】スーパースカラの一般的な構成を示す図であ
る。
る。
【図3】従来のスーパースカラにおける整数演算を行な
う機能ユニットのパイプライン構成を示す図である。
う機能ユニットのパイプライン構成を示す図である。
【図4】従来のスーパースカラにおけるロード/ストア
を行なう機能ユニットのパイプラインの構造を示す図で
ある。
を行なう機能ユニットのパイプラインの構造を示す図で
ある。
【図5】命令デコードステージから命令を各機能ユニッ
トへ分配する構成を概略的に示す図である。
トへ分配する構成を概略的に示す図である。
【図6】従来のスーパースカラにおける命令デコードス
テージの構成を概略的に示す図である。
テージの構成を概略的に示す図である。
【図7】従来のスーパースカラにおける命令発行方式の
問題点を示す図である。
問題点を示す図である。
【図8】従来のスーパースカラにおける命令発行方式の
問題点を説明するための図である。
問題点を説明するための図である。
【図9】この発明の一実施例であるスーパースカラにお
ける要部の構成を示す図である。
ける要部の構成を示す図である。
【図10】従来のデータバイパス回路の構成を示す図で
ある。
ある。
【図11】この発明に従って図9に示す構成において用
いられるバイパス回路の構成を示す図である。
いられるバイパス回路の構成を示す図である。
【図12】第2の発明に従う命令デコードステージの構
成を示す図である。
成を示す図である。
【図13】図12に示すNOP命令解析回路の構成を示
す図である。
す図である。
【図14】第2の発明に従うスーパースカラにおける命
令発行の態様を示す図である。
令発行の態様を示す図である。
1 命令メモリ
2 命令フェッチ・ステージ(IFステージ)
3 命令デコードステージ(IDステージ)
4 整数演算ユニット
5 ロード/ストア実行ユニット
6 データメモリ
EXC 実行ステージ
WB レジスタファイル書込みステージ
9 ALU
10 シフタ
40 メモリアクセス機能を備え整数演算ユニット
MEM メモリアクセスステージ
71 バイトアラインユニット
MC BUS 制御バス
MA BUS アドレスバス
MS BUS データバス
MD BUS データメモリのデータバス
ML BUS データバス
121 命令レジスタ管理ユニット
122 命令デコード解析ユニット
123 NOP命令解析回路
Claims (2)
- 【請求項1】 同時にフェッチされた複数の命令から同
時に実行可能な命令を見出すデコード手段を備える並列
処理装置であって、 前記デコード手段からの命令発行を受け、与えられた命
令を実行する複数の機能ユニット、前記複数の機能ユニ
ットは並列に設けられており、 前記デコード手段からの命令の発行を受けず、データメ
モリへのアクセス動作の実行の制御のみを行なう機能ユ
ニットを備える、並列演算処理装置。 - 【請求項2】 複数の機能ユニットを備え、命令を命令
メモリから複数個同時にフェッチし、該フェッチされた
複数の命令から同時に実行可能な命令を見出し、関連の
機能ユニットへ該同時実行可能な命令を投入することに
より、複数の命令を同時に実行する並列演算処理装置で
あって、 前記機能ユニットの数以上の数の命令を受け、該与えら
れた命令を並列に解析する手段、 該解析されるべき命令中に、前記複数の機能ユニットの
いずれへも投入する必要のない命令を検出する手段、お
よび 該検出された、投入する必要のない命令を、前記複数の
機能ユニットのいずれかへ投入したように設定する手段
とを備える、並列演算処理装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3171004A JPH0520065A (ja) | 1991-07-11 | 1991-07-11 | 並列演算処理装置 |
| DE4222786A DE4222786C2 (de) | 1991-07-11 | 1992-07-10 | Superscalarrechner mit Pipelinestruktur |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3171004A JPH0520065A (ja) | 1991-07-11 | 1991-07-11 | 並列演算処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0520065A true JPH0520065A (ja) | 1993-01-29 |
Family
ID=15915323
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3171004A Withdrawn JPH0520065A (ja) | 1991-07-11 | 1991-07-11 | 並列演算処理装置 |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JPH0520065A (ja) |
| DE (1) | DE4222786C2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012150589A (ja) * | 2011-01-18 | 2012-08-09 | Toshiba Corp | 演算装置 |
-
1991
- 1991-07-11 JP JP3171004A patent/JPH0520065A/ja not_active Withdrawn
-
1992
- 1992-07-10 DE DE4222786A patent/DE4222786C2/de not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012150589A (ja) * | 2011-01-18 | 2012-08-09 | Toshiba Corp | 演算装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| DE4222786A1 (de) | 1993-04-01 |
| DE4222786C2 (de) | 1997-08-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5530817A (en) | Very large instruction word type computer for performing a data transfer between register files through a signal line path | |
| US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
| US5636353A (en) | Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating results bypassing | |
| US7007154B2 (en) | Method and apparatus for interfacing a processor to a coprocessor | |
| US5561775A (en) | Parallel processing apparatus and method capable of processing plural instructions in parallel or successively | |
| US4740893A (en) | Method for reducing the time for switching between programs | |
| KR100267097B1 (ko) | 슈퍼스칼라 프로세서에서 간단한 비의존성 파이프라인 인터록 제어로서 판독되는 지연된 저장 데이터 | |
| EP0543415B1 (en) | Controlling register read operations | |
| JPS59114641A (ja) | 割込処理装置 | |
| US6145074A (en) | Selecting register or previous instruction result bypass as source operand path based on bypass specifier field in succeeding instruction | |
| JPH11272464A (ja) | 投機的境界不整列ロ―ド操作方法及び装置 | |
| US5778248A (en) | Fast microprocessor stage bypass logic enable | |
| US6192461B1 (en) | Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle | |
| US4992932A (en) | Data processing device with data buffer control | |
| US5522084A (en) | Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus | |
| EP0378415A2 (en) | Multiple instruction dispatch mechanism | |
| US5226166A (en) | Parallel operation processor with second command unit | |
| EP0223150B1 (en) | Information processing apparatus | |
| JP2779557B2 (ja) | 並列演算処理装置 | |
| US6670895B2 (en) | Method and apparatus for swapping the contents of address registers | |
| JPH1185513A (ja) | プロセッサ | |
| KR100241970B1 (ko) | 파이프라인 처리를 수행하는 데이터 처리 장치 | |
| US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
| US7111152B1 (en) | Computer system that operates in VLIW and superscalar modes and has selectable dependency control | |
| US7275146B2 (en) | Instruction control device and method therefor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19981008 |