JP3180175B2 - 命令レベルの並列処理制御方法およびプロセッサ - Google Patents

命令レベルの並列処理制御方法およびプロセッサ

Info

Publication number
JP3180175B2
JP3180175B2 JP02394095A JP2394095A JP3180175B2 JP 3180175 B2 JP3180175 B2 JP 3180175B2 JP 02394095 A JP02394095 A JP 02394095A JP 2394095 A JP2394095 A JP 2394095A JP 3180175 B2 JP3180175 B2 JP 3180175B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
parallel
register
issued
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
JP02394095A
Other languages
English (en)
Other versions
JPH08221273A (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
Original Assignee
Hitachi 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 filed Critical Hitachi Ltd
Priority to JP02394095A priority Critical patent/JP3180175B2/ja
Priority to US08/596,628 priority patent/US5894582A/en
Publication of JPH08221273A publication Critical patent/JPH08221273A/ja
Application granted granted Critical
Publication of JP3180175B2 publication Critical patent/JP3180175B2/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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理計算機等に
おける命令レベルの並列処理制御方法およびプロセッサ
に関する。
【0002】
【従来の技術】データ処理計算機の技術が向上するにつ
れ、命令レベルの並列処理を行って処理速度を高め、こ
れにより性能を向上させる技術が一般的になっている。
このような命令レベルの並列処理制御方法の従来技術に
ついて、図13〜18に示した動作タイムチャートを用
いて説明する。ここで、説明で用いるプログラム列を図
4に示す。同図に示すように、プログラム列は図示順序
で実行される複数の命令1e、1o、2e、2o、3
e、3o、4e、4oを含んでなり、1eと1oは並列
処理可能、1oと2eは並列処理不能、2eと2oは並
列処理不能、2oと3eは並列処理可能、3eと3oは
並列処理不能、3oと4eは並列処理可能、4eと4o
は並列処理可能とする。
【0003】(第1の従来例)第1の従来例は、図4の
プログラム列を実行させる際の命令レベルの並列処理可
否の判定を、命令をデコードするステージで行うもので
あり、その動作のタイムチャートを図13に示す。
【0004】図13の横軸は時間の経過を示し、1枡が
1マシンサイクルに対応する。縦軸の枡は、ハードウェ
アの処理ステージを表し、PCステージでは命令キャッ
シュの登録、IFステージでは命令キャッシュの参照、
Dステージでは命令のデコードと発行、Eステージでは
演算器による演算等の命令実行を行う。図中の円は、P
CステージとIFステージでは命令フェッチ単位の命令
を示し、DステージとEステージでは命令発行単位の命
令を表す。以後、動作のタイムチャートにおいては、2
つの命令をフェッチし、最大2つの命令を発行する例を
示すが、3つ以上の命令を並列処理する場合も同様であ
る。
【0005】命令フェッチ1は、命令1eと命令1oか
らなり、マシンサイクル301、302と時間が経過す
るにつれて、PCステージ、IFステージのように処理
が進む。そして、マシンサイクル303にてDステージ
に入ったところで、命令1eと命令1oが並列処理可能
か否か判定され、それらの命令は並列処理可能であるこ
とから、命令1eと命令1oが発行される。また、マシ
ンサイクル304では、命令フェッチ2がDステージに
入り、命令2eと命令2oが並列処理不能であると判定
され、命令2eのみが発行されることになる。図におい
て、ハッチングされている命令が発行されていない命令
を表している。マシンサイクル305では、命令フェッ
チ3がDステージに入り、命令2oと命令3eが並列処
理可能であると判定され、またマシンサイクル306で
は命令フェッチ4がDステージに入り、命令3oと命令
4eが並列処理可能であると判定され、それぞれ発行さ
れる。
【0006】(第2の従来例)第2の従来例は、命令レ
ベルの並列処理可否の判定を、命令レジスタとデコード
ステージの間に並列可否判定用のステージを追加し、そ
のステージで並列処理できるか否かを判定するものであ
り、その動作のタイムチャートを図14に示す。
【0007】同図に示すように、並列可否判定専用のD
1ステージが追加され、D2がデコードステージとなっ
ている。マシンサイクル403において、命令フェッチ
1がD1ステージに入り、命令1eと命令1oの並列処
理可否の判定が行われる。この例の場合は、並列可能で
あると判定され、命令1eと命令1oが発行される。つ
いで、マシンサイクル404では、命令フェッチ2がD
1ステージに入り、命令2eと命令2oが並列処理不能
であると判定されるから、命令2eのみが発行される。
以下、同様に、マシンサイクル405,406で、命令
2oと命令3e、命令3oと命令4eが、それぞれ並列
処理可能であると判定されて発行される。
【0008】(第3の従来例)第3の従来例は、第1の
従来例に加えてフェッチした命令を発行するまで保持し
ておく命令バッファを組み合わせたもので、命令バッフ
ァで命令をバッファした後、デコードを行うステージで
並列処理できるか否かを判定する競合判定を行うように
したものである。この従来例の動作のタイムチャートを
図15に示す。
【0009】図において、IBRステージは命令バッフ
ァが動作するステージである。図示のように、マシンサ
イクル1103において命令フェッチ1がDステージに
入ったところで、命令1eと命令1oの並列処理の可否
が判定され、並列処理可能であると判定されて、命令1
eと命令1oが発行される。一方、マシンサイクル11
04では、命令フェッチ2がDステージに入り、命令2
eと命令2oが並列処理不能であると判定され、命令2
eのみが発行される。以下、同様である。
【0010】(第4の従来例)第4の従来例は、第2の
従来例に加えてフェッチした命令を発行するまで保持し
ておく命令バッファを組み合わせたもので、命令バッフ
ァで命令をバッファした後、命令レジスタとデコードス
テージの間に並列可否判定用のステージを追加したもの
である。図16に第4の実施例の動作を表すタイムチャ
ートを示す。
【0011】同図に示すように、第2実施例と同様、並
列可否判定専用のD1ステージが追加され、D2がデコ
ードステージとなっている。マシンサイクル1203に
おいて命令フェッチ1がD1ステージに入ると、命令1
eと命令1oの並列処理可否が判定され、その結果並列
処理可能と判定されて命令1eと命令1oが発行され
る。また、マシンサイクル1204では、命令フェッチ
2がD1ステージに入り、命令2eと命令2oが並列処
理不能であると判定され、命令2eのみが発行される。
以下、同様である。
【0012】(第5の従来例)上記の第1から第4の従
来例は、いずれも命令レジスタから並列可否判定を行な
う方式であり、並列可否判定を行なった後に、命令の実
行が開始される方式である。
【0013】第5の従来例は、特願昭63−28367
3や特願平5−7795に記載のように、命令キャッシ
ュに書き込む前に並列処理可否の競合判定を行なう方式
である。つまり、命令キャッシュに書き込む命令に対し
並列処理できるか否かを判定する並列可否判定部と、命
令キャッシュの中に並列可否の判定結果を登録しておく
判定結果登録部を持ち、命令キャッシュの読み出し時に
判定結果を同時に読み出し、その結果を用いて命令レベ
ルの並列処理を行なうものである。
【0014】図18に第5の従来例の動作タイムチャー
トを示す。同図に示すように、マシンサイクル502に
おいて命令フェッチ1が命令キャッシュから読み出さ
れ、同時に命令1eと命令1oが並列処理可能であると
いう判定結果が読み出される。そして、マシンサイクル
503において命令1eと命令1oが同時に発行され
る。また、マシンサイクル503では、命令フェッチ2
が命令キャッシュから読み出され、同時に命令2eと命
令2oが並列処理不能であるとという判定結果が読み出
され、マシンサイクル504で命令2eのみが発行され
る。そして、マシンサイクル505で命令2oのみが発
行される。
【0015】このとき、命令2oと命令3eの間の並列
可否判定はされていない。したがって、命令2oと命令
3eは同時に発行されることはない。マシンサイクル5
05では、命令フェッチ3が命令キャッシュから読み出
され、同時に命令3eと命令3oが並列処理不能である
という判定結果が命令キャッシュから読み出され、マシ
ンサイクル506、507において、それぞれ命令3e
のみ、命令3oのみが発行される。
【0016】
【発明が解決しようとする課題】しかしながら、上記従
来技術によれば、次のような問題がある。第1と第3の
従来例は、命令レジスタから並列可否判定を行ない、並
列可否判定を行なってから命令のデコードを開始し、実
行を開始するという一連の動作を1マシンサイクル内で
行わなければならないため、1マシンサイクルが長くな
り、動作周波数が下がってしまうという欠点がある。
【0017】第2と第4の従来例は、並列可否判定用の
専用ステージを設けているから、動作周波数を下げずに
命令レベルの並列処理が可能である。しかし、専用ステ
ージの追加により分岐命令等の命令実行が遅くなり、そ
の分ペナルティが増加して性能が低下するとい欠点があ
る。
【0018】このペナルティについて図17を用いて説
明する。いま命令leが分岐命令であったとすると、マ
シンサイクル2005で命令leを実行して分岐先の命
令アドレスを計算してから分岐先の命令フェッチを開始
する。そして、図示のように、分岐命令leを実行して
から分岐先命令が実行される迄、3マシンサイクルのペ
ナルティがかかってしまう。
【0019】第5の従来例は、命令キャッシュに書き込
む前に並列可否判定を行なうようにしているから、動作
周波数を下げず、ステージも追加しなくてもすむから、
第1〜4の従来技術の問題は生じない。しかし、命令が
並列処理できるか否かを判定できるのは、命令キャッシ
ュの同一ライン内の命令に限られるという欠点がある。
つまり、命令キャッシュの異なるラインにある2つの命
令については、並列処理可否の判定ができないため、並
列処理できるケースが他の方式よりも減少し、処理速度
が劣る。例えば、図13〜16に示す第1〜4の従来例
においては、命令1eから命令3oの実行までに4マシ
ンサイクルですむのに対し、第5の従来例によれば、図
18に示したように命令1eから命令3oの実行までに
5マシンサイクルかかっている。
【0020】本発明は、連続して実行されるすべての命
令の組み合わせに対し、動作周波数を下げたり処理ステ
ージを新たに追加したりすることなく、命令レベルで並
列処理可能か否かの判定を行なうことができる命令レベ
ルの並列処理方法およびその方法を適用してなるプロセ
ッサを実現することを解決課題とする。
【0021】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、フェッチした命令を発行するまで命令バ
ッファに実行順に保持しておき、その命令バッファから
実行順に複数の演算器用命令レジスタに命令を順次格納
し、それぞれの演算器用命令レジスタから対応する複数
の演算器に命令を同時に発行してそれらの複数の命令を
並列処理させるにあたり、前記複数の命令を並列処理さ
せるか否かを制御する命令レベルの並列処理制御方法に
おいて、前記命令バッファと前記演算器用命令レジスタ
実行順に保持される未発行の命令のうち、次に発行さ
れる複数の演算器の数に対応する数の複数の命令につい
て、実行順が先の命令と後の命令とが並列処理可能か否
かを判定し、並列処理可能な場合はそれら複数の命令を
同時に発行し、並列処理不能な命令が有る場合は、当該
不能に係る命令より前の実行順の命令を発行し、当該不
能の命令とその後の実行順の命令の実質的発行を阻止す
る制御を行なうことを特徴とする。
【0022】本発明は、フェッチされる命令が命令キャ
ッシュを介して命令バッファに格納される場合であっ
て、その命令キャッシュに命令が書き込まれる際に、命
令フェッチ単位に含まれる複数の命令について並列処理
可能か否かを判定し、その判定結果に基づいて複数の演
算器による並列処理を制御するように構成された命令レ
ベルの並列処理制御方法にも適用できる。
【0023】この場合は、命令バッファと演算器用命令
レジスタに保持されている未発行の命令が演算器の数未
満のときは、命令キャッシュに書き込まれる際に判定し
た並列可否判定結果に基づいて並列処理の制御を行う。
また、命令バッファと演算器用命令レジスタに未発行の
命令が演算器の数以上保持されているときは、第2の並
列可否判定部の判定結果に基づいて、複数命令の並列処
理の実行を制御するもの命令バッファと演算器用命令レ
ジスタに未発行の命令が演算器の数以上保持されている
ときは、それらの未発行命令について並列処理可能か否
かを判定し、その判定結果に基づいて複数命令の並列処
理の実行を制御する。
【0024】並列処理可否の判定結果が不能のときは、
実行順に従って並列処理不能の命令以降の命令について
の演算の実行を実質的に阻止する。この演算の実質的な
阻止は、演算結果の出力をゲートなどにより阻止するこ
とができる。
【0025】
【作用】上記の解決手段によれば、命令バッファ又は演
算器用命令レジスタに格納されている次に発行される予
定の複数の命令に対して並列処理可否の判定を行い、並
列処理不能の場合は演算器の演算結果の出力を阻止する
ことにより、並列処理を制御していることから、命令レ
ジスタからは命令の発行のみを行えばよい。その結果、
デコードと並列処理可否の判定とを同一のマシンサイク
ルで行わずにすむから、動作周波数を低下させることが
ない。
【0026】また、並列処理可否判定の専用ステージを
設ける必要がないから、分岐命令等の命令実行に伴うマ
シンサイクル増加を抑えることができる。
【0027】さらに、命令バッファ又は演算器用命令レ
ジスタに格納されている次に発行される予定の複数の命
令に対し、一律に並列処理可否の判定を行えることか
ら、命令キャッシュに格納される命令フェッチ単位(1
ライン単位)の命令同士だけでなく、異なる命令フェッ
チ間の連続する2つの命令が並列処理可能か否かを判定
できる。その結果、並列処理できる連続する複数の命令
の全てについて、並列処理を実行させることができるか
ら、並列処理できるケースを増加させて、処理性能を向
上させることができる。
【0028】つまり、命令レジスタの後で並列処理でき
るか否かを判定する必要がないため高い動作周波数を達
成することが可能となり、新しいステージを追加するこ
とによる性能低下も生じず、命令キャッシュの同一ライ
ン内でなければ並列可否判定できないといった制約もな
く、命令バッファに保持している命令に対し並列処理で
きるか否かを、命令レジスタの前で未発行のまま命令バ
ッファ又は演算器用命令レジスタの中に実行順序で並ん
でいるすべての命令に対し並列処理できるか否かを判定
することができる。
【0029】一方、上記解決手段では、命令バッファと
演算器用命令レジスタに次に発行されるべき複数の命令
(演算器の数と同一の命令数)が保持されていないとき
は、並列処理可否の判定がてきないので、1命令ずつ逐
次発行されることになる。この点、命令キャッシュに書
き込む際に並列可否の判定を行うことを併せて行えば、
その判定結果を用いて、命令バッファと演算器用命令レ
ジスタに次に発行されるべき所定数の命令が保持されて
いないときでも、命令フェッチ単位で並列処理制御を行
うことが可能である。その結果、上記解決手段に比べて
並列処理を実行できる可能性を増やし、処理性能を向上
させることができる。
【0030】
【実施例】以下、本発明の実施例を図面を用いて説明す
る。 (第1実施例)図1〜7を用いて、本発明に係る命令レ
ベル並列処理を適用してなる第1の実施例のプロセッサ
を説明する。図1は、プロセッサのうち、命令レベル並
列処理に関係する主要部の全体構成を示し、図2,3
は、それぞれ主要部の詳細構成を示している。図4〜7
は、動作説明図である。
【0031】図1は、本発明に係る命令レベル並列処理
を実施するに好適なプロセッサの主要部を示しており、
本実施例は2つの命令を並列に処理する場合の例であ
る。図示のように、メインメモリ1に格納されている命
令は、まず命令キャッシュ2に登録される。命令キャッ
シュ2に登録された命令の命令コードは、線102を介
してFIFO方式の命令バッファ3に実行順に格納され
る。命令バッファ3に格納された命令コードは、最下段
の命令コードから順に線103を介して命令レジスタ4
に供給される。なお、プロセッサの起動初期等におい
て、命令レジスタ4に命令コードが格納されていない場
合は、命令バッファ3を介さず線102を介して直接、
命令キャッシュ2から命令レジスタ4に命令コードが供
給される。本実施例の命令レジスタ4は、第1演算器用
命令レジスタ5と、第2演算器用命令レジスタ6とを有
して構成される。第1演算器用命令レジスタ5は第1演
算器7に対応して設けられ、第2演算器用命令レジスタ
6は第2演算器8に対応して設けられている。各演算器
7,8は、入力部に命令コードのデコーダを有し、デー
コード結果に基づいて線110,111を介して必要な
データをレジスタ9から取り込んで演算を実行し、演算
結果を線108,109を介してレジスタ9に格納する
ように形成されている。
【0032】本発明の特徴に係る並列可否判定部10
は、判定対象の2つの命令コードを取り込み、それらの
命令の内容(加算、減算、乗算、分岐等の演算の種別)
及びそのレジスタ依存関係に基づいて、周知の方法によ
り並列処理可能か否かを判断し、その並列可否判定結果
Paを線107を介してレジスタ9に出力する。並列可
否判定の対象となる2つの命令コードは、前サイクルの
並列可否判断において命令レジスタ5,6に格納された
2つの命令コードが、並列処理可能と判断された場合
と、不可能と判断された場合の2つのケースがある。
【0033】前者のケースは、命令レジスタ5,6に格
納された2つの命令コードは、それぞれ演算器7,8に
供給されて演算が実行されるものである。そこで、その
次に実行すべき2つの命令コード、すなわち命令バッフ
ァ3の最下段の命令コード(例えば、図4に示した1
e)と一段上の段の命令コード(例えば、1o)との間
で並列処理可否の判定を行う。
【0034】一方、後者のケースは、命令レジスタ5,
6に格納された2つの命令コードのうち、第2演算器用
命令レジスタ6に格納されている命令コードは発行され
ずに残っているので、前の演算サイクルで第2演算器用
命令レジスタ6に格納された命令コード(例えば、2
o)と命令バッファ3の最下段の命令コード(例えば、
3e)との間で並列処理可否の判定をする。
【0035】上記2つのケースにおいて、判定対象の命
令コードは、それぞれ線103,104,106を介し
て並列可否判定部10に入力される。
【0036】なお、本実施例は、演算器を2つ有して2
命令を並列処理できる例であるが、本発明はこれに限ら
れるものではなく、演算器用命令レジスタと演算器をそ
れぞれ3つ以上設け、3以上の命令を並列処理するもの
に適用することができる。
【0037】図2に、図1実施例における命令バッファ
3と命令レジスタ4の詳細な構成の一例を示す。図示の
ように、本例の命令バッファ3は6つのセレクタ11〜
16と、これに対応させて設けられたバッファレジスタ
21〜26を有して形成され、これにより6つの命令コ
ードを格納できるようになっている。本例の命令バッフ
ァ3は、基本的には周知の構成であり、例えば、命令バ
ッファ3のセレクタ11は、線102の命令コード又は
バッファレジスタ21の出力,バッファレジスタ22の
出力、バッファレジスタ23の出力の1つをセレクトし
て、バッファレジスタ21に出力するようになってい
る。本例で、線102は2本の線102a,bからな
り、それらの線に2つのオペコード(例えば、図4のl
e,lo)が実行順に乗るようになっている。また、他
のセレクタ12〜16もセレクタ11と同様に形成され
ている。バッファレジスタ21の出力は、線103を介
して命令レジスタ5,6及び並列可否判定部10に送ら
れる。バッファレジスタ22の出力は、線104を介し
て命令レジスタ6及び並列可否判定部10に送られる。
【0038】また、命令レジスタ4は、図2に示すよう
に、命令バッファ3と同様に2つのセレクタ17,18
と、これに対応して設けられたバッファレジスタ27,
28を有し、命令バッファ3の最下段を実質的に延長し
た形に形成されている。ここで、セレクタ17とバッフ
ァレジスタ27の組みが第1演算器用命令レジスタ5に
相当し、セレクタ18とバッファレジスタ28の組みが
第2演算器用命令レジスタ6に相当する。セレクタ17
は、命令キャッシュ2に接続された線102と、第1演
算器用命令レジスタ5のバッファレジスタ27と、第2
演算器用命令レジスタ6のバッファレジスタ28の命令
コードをセレクトして、バッファレジスタ27に出力す
る。同様に、セレクタ18は、命令キャッシュ2に接続
された線102と、第2演算器用命令レジスタ6のバッ
ファレジスタ28の命令コードをセレクトして、バッフ
ァレジスタ28に出力する。
【0039】このように形成される命令バッファ3と命
令レジスタ4によれば、命令キャッシュ2から実行順に
供給される命令コードは、第1演算器用命令レジスタ
5、第2演算器用命令レジスタ6、命令バッファ3の再
下段から上位段に向って、順次格納されることになる。
命令バッファと命令レジスタ4に有効な命令が格納さ
れている場合には、その命令を発行数に応じてバッファ
レジスタ26,25,……,22,21,28,27の
順に下方にシフトする。有効な命令が格納されていない
場合には、命令キャッシュ2からの命令コードを新たに
格納するように、セレクタ11〜18を制御する。
【0040】命令バッファ3の最下段のバッファレジス
タ21に格納されている命令コードは、線103を介し
て並列可否判定部10に入力され、その上の段のバッフ
ァレジスタ22に格納されている命令コードは、線10
4を介して並列可否判定部10に入力される。また、第
2演算器用命令レジスタ6のバッファレジスタ28に格
納されている命令コードは、線106を介して並列可否
判定部10に入力される。
【0041】図3に、図1実施例における並列可否判定
部10の詳細構成の一例を示す。図示のように、本実施
例の並列可否判定部10は、第1命令用セレクタ31
と、第2命令用セレクタ32と、並列可否判定回路33
と、並列可否判定結果セレクタ34と、判定結果ラッチ
35と、未発行命令数制御部36とを有して形成されて
いる。
【0042】第1命令用セレクタ31は、線103,1
06を介して入力される命令コードを、判定結果ラッチ
35に格納されている前回の並列可否判定結果Paに基
づいてセレクトする。つまり、Paが”0”のときは前
回判定した2つの命令を並列処理しているので、命令バ
ッファ3の最下段の命令コード(線103)を選択す
る。Paが”1”のときは前回判定した2つの命令を並
列処理していないので、第2演算器用命令バッファ6の
命令コード(線106)を選択する。
【0043】これに合わせて、第2命令用セレクタ32
は、線103,104を介して入力される命令コード
を、並列可否判定結果Paに基づいてセレクトする。つ
まり、Paが”0”のときは命令バッファ3の最下段の
上の段の命令コード(線104)を選択し、Paが”
1”のときは命令バッファ3の最下段の命令コード(線
103)を選択する。
【0044】並列可否判定回路33は、セレクタ31,
32によりセレクトされた2つの命令コードが並列処理
可能か否かを判定する。この判定は、それらの命令の内
容(加算、減算、乗算等の演算の種別)及びそのレジス
タ依存関係に基づいて、周知の方法により並列処理可能
か否かを判断する。この判定結果Poは、前述と同様、
2命令が並列処理可能なときは”0”、並列処理不可能
なときは”1”とする。
【0045】並列可否判定結果セレクタ34は、並列可
否判定回路33の出力である並列可否判定結果Poと論
理値”1”の一方を、未発行命令数制御部36の出力1
17に基づいてセレクトし、並列可否判定結果Paとし
て出力する。判定結果ラッチ35は、セレクタ34の出
力Paをラッチするものである。未発行命令数制御部3
6は、命令キャッシュ2から読み出せた命令数及び有効
な命令として発行できた命令数、すなわち並列可否判定
結果Paを取り込み、これに基づいて命令バッファ3内
の未発行の命令数を算出して未発行命令数117を出力
する。セレクタ34は未発行命令数117によってセレ
クト動作する。本実施例の場合、未発行命令数が”0”
個のときは、並列可否判定回路33は無効な命令との間
で判定を行っているため”1”を選択し、Paを並列処
理不能を示すものにする。また、未発行命令数が”1”
個以上のときは、並列可否判定回路33の出力PoをP
aとするようにする。
【0046】次に、このように構成される第1の実施例
の動作を説明する。命令レジスタ4は、命令バッファ3
に有効な命令コードが2つ以上保持されている場合、命
令バッファ3から線103を介してそれら2つの命令コ
ードを順次受け取り、先に実行すべき命令コードを第1
演算器用命令レジスタ5に、後に実行すべき命令コード
を第2演算器用命令レジスタ6にセットする。
【0047】一方、命令バッファ3に有効な命令コード
が2つ以上保持されていない場合、命令レジスタ4は、
線102を介して命令キャッシュ2から2つの命令コー
ドを順次受け取り、上記と同様に実行順序の先のものか
ら第1演算器用命令レジスタ5と第2演算器用命令レジ
スタ6にセットする。
【0048】次に、並列可否判定部10の動作を説明す
る。まず、前サイクルで並列処理可能な2つの命令が発
行されたとき、判定結果ラッチ35に”1”がラッチさ
れている。これにより、第1,2命令用セレクタ31,
32は、それぞれ線103、104の命令コードをセレ
クトする。つまり、命令バッファ3内の最下段とその上
の段の2つの命令の間で、並列可否の判定を行って並列
可否判定結果114を生成する。
【0049】また、前サイクルで並列処理が不可能なた
め、1つの命令コードしか発行されなかったときは、未
発行の命令コードが第2演算器用命令レジスタ6に残っ
ており、また判定結果ラッチ35に”0”がラッチされ
ている。これにより、第1,2命令用セレクタ31,3
2は、それぞれ線106、103の命令コードをセレク
トする。つまり、第2演算器用命令レジスタ6に格納さ
れている命令コードと、命令バッファ3内の最下段の命
令コードとの間で、並列処理可否の判定を行って並列可
否判定結果Poを生成する。
【0050】レジスタ9は、並列可否判定結果Paに基
づいて、第2演算器8の演算結果をレジスタ9に書き込
む処理を制御する。つまり、2つの命令コードを発行し
て並列処理できた場合は、第1、2演算器7,8の結果
を線108,109を介してレジスタ9への書き込みを
許容し、1命令しか発行できなかったときは、入力部に
設けたゲート等を制御して、第2演算器8の演算結果の
みについてレジスタ9への書き込みを阻止する。これに
より、第2演算器用命令レジスタ8に格納されていた命
令の発行が実質的に阻止される。
【0051】なお、上記の説明で、1命令しか発行され
なかったときは、第2演算器8の演算結果についてレジ
スタ9への書き込みを、レジスタ9の入力部においてゲ
ート等により阻止するものについて説明したが、これに
代えて第2演算器用命令レジスタ6から第2演算器8へ
の命令コードの供給を阻止するようにしてもよい。要
は、第2演算器用命令レジスタ6に格納されている命令
を実質的に実行させないようにすればよい。
【0052】以上の動作を、図4に示した具体的なプロ
グラム例に基づいて説明する。図4に示すように、プロ
グラムは、命令1e、1o、2e、2o、……、4e、
4oの順序で実行されるものとする。それぞれ、1eと
1oは並列処理可能、1oと2eは並列処理不能、2e
と2oは並列処理不能、2oと3eは並列処理可能、3
eと3oは並列処理不能、3oと4eは並列処理可能、
4eと4oは並列処理可能となっているものとする。
【0053】このようなプログラムを図1〜3に示した
プロセッサで処理した場合のタイムチャートを図5,6
に示す。それらの図において、横軸方向は、時間軸であ
り、1枡が1マシンサイクルに相当する。立軸方向は、
ハードウエアによる処理ステージを示している。
【0054】PCステージはメインメモリ1から命令キ
ャッシュ2への命令の登録、IFステージは命令キャッ
シュ2の参照、Dステージは命令の発行と演算器7,8
における命令のデコード、Eステージでは演算器7,8
における演算等の命令の実行をそれぞれ行う。また、I
BRステージは、6命令分の格納エリアを有する命令バ
ッファ3が動作するステージである。
【0055】図5に示すように、命令フェッチ1,2,
3,4は、マシンサイクル602、603、604、6
05…の順に、命令バッファ3に積まれていく。マシン
サイクル604において、命令バッファ3の最下段とそ
の上の段には、次に発行される命令コードとして命令コ
ード1eと命令コード1oが保持されている。このと
き、並列可否判定部10の判定対象は命令コード1e,
1oである。命令コード1e,1oは並列処理できるこ
とから、並列可否判定部10から並列可否判定結果Pa
として”0”が出力される。
【0056】これにより、マシンサイクル605におい
て、レジスタ9の動作により、命令コード1eと命令コ
ード1oが同時に第1,2演算器7,8に発行される。
つまり、第1,2演算器用レジスタ5,6からそれぞれ
対応する第1,2演算器7,8に供給され、デコードが
行われる。
【0057】また、マシンサイクル605において、命
令バッファ3の最下段とその上の段には、次に発行され
る命令として命令コード2eと命令コード2oが保持さ
れている。このとき、並列可否判定部10により命令コ
ード2eと命令コード2oは並列処理できないと判定さ
れる。その結果、マシンサイクル606において、命令
コード2eのみが有効な命令として実質的に発行され
る。
【0058】一方、有効な命令として発行されないで第
2演算器用命令レジスタ6に残っている命令コード2o
は、マシンサイクル606において、命令バッファ3の
最下段に格納されている命令3eとの間で、並列処理可
否の判定が行われ、並列処理可の判定結果Pa(=0)
が出力される。ついで、マシンサイクル607〜607
において、第2演算器用命令レジスタ6に残っている命
令コード2oが第1演算器用命令レジスタ5に転送され
ると同時に、第2演算器用命令レジスタ6に命令バッフ
ァ3の最下段に格納されていた命令コード3eが転送さ
れ、マシンサイクル607においてデコードされ、マシ
ンサイクル607においてそれらの命令2o,3eが並
列処理により実行される。
【0059】図6は、第1の実施例において図のプロ
グラム列を実行させる際、命令バッファに未発行命令が
保持されていない時の動作を示すタイムチャートであ
る。マシンサイクル701、702、703、704、
705、706、707、708の順に時間が進んでい
く。
【0060】命令バッファ3に未発行命令が保持されて
いないとき、命令フェッチ1は線102のパスを用いて
命令レジスタ5に送られるてしまうから、並列処理可否
の判定はできない。したがって、マシンサイクル70
3、704では、命令1e、命令1oが1命令ずつ発行
される。命令フェッチ2、3、4は、マシンサイクル7
03、704、705のように、順に命令バッファ3に
積まれていく。マシンサイクル704において、命令バ
ッファ3の最下段とその上の段には、次に発行される命
令として命令2eと命令2oが保持されている。このと
きは、並列可否判定部10の動作により命令2eと命令
2oは並列処理できないと判定され、マシンサイクル7
05で命令2eのみが発行される。
【0061】一方、マシンサイクル705においては、
命令バッファ3の最下段とその上の段には、次に発行さ
れる命令として命令2oと命令3eが保持されている。
このとき、並列可否判定部10において命令2oと命令
3eが並列処理できると判定される。そして、マシンサ
イクル706でそれらの命令2o、3eが発行される。
また、マシンサイクル706、707において、命令
バッファ3の最下段とその上の段には、次に発行される
命令として命令2oと命令3e、及び命令3oと命令4
eが保持されている。このとき、並列可否判定部10で
命令2oと命令3e、命令3oと命令4eが並列処理で
きると判定され、それらの2つの命令が同時に発行され
ることになる。
【0062】以上説明したように、第1の実施例によれ
ば、並列可否判定部10を設け、命令バッファ3又は演
算器用の命令レジスタ4に格納されている次に発行され
る予定の2つの命令に対して並列処理可否の判定を行
い、並列処理不能の場合は第2演算器8の演算結果のレ
ジスタ9への書き込みを阻止することにより、並列処理
を制御していることから、命令レジスタからは命令の発
行のみを行えばよい。
【0063】したがって、デコードと並列処理可否の判
定とを同一のマシンサイクルで行わずにすむから、動作
周波数を低下させることがない。
【0064】また、並列処理可否判定の専用ステージを
設ける必要がないから、分岐命令等の命令実行に伴うマ
シンサイクル増加を抑えることができる。例えば、第
2,4の従来技術のように専用の並列可否判定ステージ
を設けた場合は、図21を用いて説明したように、分岐
命令などにより3マシンサイクルのペナルティが発生し
たが、第1の実施例によれば図7に示すように、2マシ
ンサイクルのペナルティに低減できる。
【0065】さらに、本実施例によれば、命令バッファ
3又は演算器用の命令レジスタ4に格納されている次に
発行される予定の2つの命令に対し、一律に並列処理可
否の判定を行えることから、第5の従来技術のように命
令キャッシュに格納される命令フェッチ単位(1ライン
単位)の命令同士だけでなく、異なる命令フェッチ間の
連続する2つの命令が並列処理可能か否かを判定でき
る。これにより、並列処理できる連続する2つの命令の
全てについて、並列処理を実行させることができるか
ら、並列処理できるケースを増加させて、処理性能を向
上させることができる。
【0066】(第2実施例)図8〜12を用いて、本発
明に係る命令レベル並列処理を適用してなる第2の実施
例のプロセッサを説明する。図8は、プロセッサのう
ち、命令レベル並列処理に関係する主要部の全体構成を
示し、図9,10は、主要部の詳細構成を示している。
図11,12は、動作説明図である。
【0067】前述した図1の実施例は、命令バッファ3
と命令レジスタ4に格納されている有効な2つの命令に
ついて並列処理可否の判定をする例であるから、命令バ
ッファ3と命令レジスタ4に有効な命令が2つ以上格納
されていない場合は適用できない。つまり、命令キャッ
シュ2から命令バッファ3と命令レジスタ4に転送され
ていない2つの命令間の並列処理可否は判定できない。
【0068】本実施例は、そのような場合であっても、
並列処理可否を判定可能にするものであり、図8に示す
ように、図1実施例と同一構成の並列可否判定部A40
に加えて、並列可否判定部B41と並列可否判定結果登
録部42を設けた点が特徴であり、他の構成は図1実施
例と同一である。
【0069】並列可否判定部B41は、メインメモリ1
から命令キャッシュ2に転送される命令コードを取り込
み、命令フェッチ単位の2つの命令(命令キャッシュの
同一ラインに格納される2つの命令)について並列処理
可能か否かを判定し、その判定結果Pbを線121を介
して並列可否判定結果登録部42に登録するようになっ
ている。並列可否判定結果登録部42に格納された並列
可否判定結果Pbは線122を介して並列可否判定部A
40に転送されるようになっている。この転送タイミン
グは、並列可否判定結果Pbに対応する命令フェッチが
命令キャッシュから命令レジスタ4に転送されるタイミ
ングである。
【0070】並列可否判定部B41及び並列可否判定結
果登録部42のメモリ構成、書き込み、読み出し制御部
は、図9に示すように構成されている。並列可否判定部
B41は図3に示した並列可否判定回路33と同一に構
成されており、メインメモリ1から線101を介して2
つの命令コードを受け取り、前述と同様に、それらの2
つの命令の内容及びそのレジスタ依存関係に基づいて並
列処理可能か否かを判断し、その並列可否判定結果Pb
を線121を介して命令キャッシュ2内の並列可否判定
結果登録部42に登録する。並列可否判定結果登録部4
2は、命令キャッシュ2の2つの命令に対応する1ビッ
トとして構成され、2つの命令が書き込まれる際に同時
に書き込まれ、またそれらの2つの命令が読み出される
ときに同時に読み出されるようになっている。
【0071】並列可否判定結果Pbを並列可否判定結果
登録部42に登録する際、並列可否判定結果Pbは、そ
のもととなる2つの命令コードと同一のエントリに登録
するようにする。これにより、次に命令キャッシュ2か
ら2つの命令が線102a,bに読み出される際に、そ
の2つの命令に対応する並列可否判定結果Pb122を
同時に読み出すことができる。
【0072】なお、本実施例では、並列可否判定結果登
録部42を命令キャッシュ2の中に設けた例を示してい
るが、これに限られるものではなく、判定結果Pbを順
次登録可能なメモリであればよい。
【0073】ここで、第2実施例の動作を説明する。命
令レジスタ4は、命令バッファ3に有効な命令が2つ以
上保持されているときは、線103を介してそられ2つ
の命令を受け取り、先に実行すべき命令を第1演算器用
命令レジスタ5に、後に実行すべき命令を第2演算器用
命令レジスタ6にセットする。なお、命令バッファ3に
有効な命令が2つ以上保持されていない場合は、命令キ
ャッシュ2から線102を介して2つの命令を受取る。
【0074】並列可否判定部A40は、図10に示すよ
うに構成されており、基本的な動作は図3の例と同様で
ある。つまり、命令バッファ3と命令レジスタ4に有効
な未発行命令が2つ以上格納されている場合は、現サイ
クルで命令バッファ3から発行される2つの命令が並列
処理可能か否か、又は第2演算器用命令レジスタ6に残
っている命令と命令バッファ3の最下段の命令が並列処
理可能か否かを判定し、その判定結果Paを出力する。
【0075】しかし、命令バッファ3と第2演算器用命
令レジスタ6に存在する有効な未発行命令の数が0又は
1のときは上記のような判定はできない。この場合、未
発行命令数制御部36はセレクタ34を制御して、並列
可否判定結果登録部42から与えられる並列可否判定結
果Pbを選択し、これを並列可否判定結果Paとする。
【0076】並列可否判定結果Paを受けたレジスタ9
は、発行できた命令数に応じてレジスタ9への書き込み
を制御する。つまり、本実施例の場合は、Paが”0”
の場合は2つの命令が発行できたのであるから、第1,
2演算器7,8の結果をレジスタ9に書き込み、Pa
が”1”の場合は1つの命令しか発行できなかったので
あるから、第2演算器8の演算結果の書き込みを阻止す
る。
【0077】図11、図12に示したタイムチャートに
より、第2の実施例の動作を説明する。図11は、第2
の実施例により図4のプログラム列を実行させる場合で
あって、命令バッファ3および命令レジスタ4に未発行
命令が保持されているときの動作を示すタイムチャート
であり、並列処理可否の判定は専ら並列可否判定部A4
0の機能により行われる。したがって、第1実施例の動
作と全く同一であり、図5のタイムチャートと同じであ
るから、説明を省略する。
【0078】図12は、第2の実施例により図4のプロ
グラム列を実行させる場合であって、命令バッファ3に
未発行命令が保持されていないときの動作を示すタイム
チャートであり、本実施例の特徴にかかるものである。
マシンサイクル901、902、…、908の順に時間
が進んでいく。命令フェッチ1、2は、命令バッファ3
に未発行命令が保持されていないため、線102のパス
を用いて命令レジスタ4に直接送られる。これと同時に
命令キャッシュ2の中の並列可否判定結果登録部42か
ら対応する2つの命令の並列可否判定結果Pbが読み出
され、並列可否判定部A40を介し、並列可否判定結果
Paとしてレジスタ9に与えられる。例えば、命令フェ
ッチ1については、並列処理可能であるからマシンサイ
クル903で命令1eと命令1oが同時に発行される。
そして、命令フェッチ2については、並列処理不可能で
あるから、マシンサイクル904で命令2eのみが有効
な命令として実質的に発行される。一方、命令フェッチ
3、4は、それぞれマシンサイクル905、906で順
に命令バッファ3に積まれていく。マシンサイクル90
5においては、命令バッファ3の最下段とその上の段
に、次に発行される命令として命令3eと命令3oが保
持されている。このとき、並列可否判定部A40におい
て、命令3eと命令3oは並列処理できないと判定さ
れ、マシンサイクル906で命令3eのみが有効な命令
として実質的に発行される。マシンサイクル906にお
いては、命令バッファ3の最下段とその上の段には、次
に発行される命令として命令3oと命令4eが保持され
ている。このとき、並列可否判定部A40で命令3oと
命令4eが並列処理できると判定され、マシンサイクル
907において命令3o、4eが発行される。
【0079】このようにして、第2の実施例によれば、
第1実施例と同様に、命令バッファ3と命令レジスタ4
に格納される2つの命令に対して並列可否の判定をする
ようにしているから、命令レジスタ4からは発行のみを
行えばよくなる。
【0080】また、第1の実施例の場合、命令バッファ
3と命令レジスタ4に次に発行されるべき2つの命令が
保持されていないときは、並列処理可否の判定がてきな
いので、1命令ずつ逐次発行されることになる。この
点、第2の実施例では、命令バッファ3と命令レジスタ
4に次に発行されるべき2つの命令が保持されていない
ときでも、並列可否判定部B41により命令キャッシュ
2に書き込む際に行った並列可否判定結果Pbを用い
て、命令フェッチ単位で並列処理制御を行うことが可能
である。その結果、第2実施例によれば、第1実施例に
比べて、並列処理を実行できる可能性を増やし、処理性
能を向上させることができる。
【0081】
【発明の効果】以上説明したように、本発明によれば、
動作周波数を落としたりステージを追加したりすること
なく、命令バッファに実行順序に並んでいるすべての命
令に対し並列処理できるか否かを判定することができる
から、処理速度を向上させて、性能を高めることができ
る。
【図面の簡単な説明】
【図1】本発明の第1の実施例にかかるプロセッサの主
要部の構成図である。
【図2】第1の実施例の命令バッファと命令レジスタの
詳細を示す構成図である。
【図3】第1の実施例の特徴部である並列可否判定部の
詳細を示す構成図である。
【図4】並列処理対象のプログラムの一例を示す。
【図5】第1の実施例の並列処理動作の一例を説明する
タイムチャートである。
【図6】第1の実施例の並列処理動作の他の例を説明す
るタイムチャートである。
【図7】第1の実施例の分岐命令に対する動作を説明す
るタイムチャートである。
【図8】本発明の第2の実施例にかかるプロセッサの主
要部の構成図である。
【図9】第2の実施例にかかる並列可否判定部B41と
並列可否判定結果登録部42の詳細を説明する図であ
る。
【図10】第2の実施例の特徴部である並列可否判定部
Aの詳細を示す構成図である。
【図11】第2の実施例の並列処理動作の一例を説明す
るタイムチャートである。
【図12】第2の実施例の並列処理動作の他の一例を説
明するタイムチャートである。
【図13】第1の従来例の並列処理動作を説明するタイ
ムチャートである。
【図14】第2の従来例の並列処理動作を説明するタイ
ムチャートである。
【図15】第3の従来例の並列処理動作を説明するタイ
ムチャートである。
【図16】第4の従来例の並列処理動作を説明するタイ
ムチャートである。
【図17】第4の従来例の分岐命令に対する動作を説明
するタイムチャートである。
【図18】第5の従来例の並列処理動作を説明するタイ
ムチャートである。
【符号の説明】
1 メインメモリ 2 命令キャッシュ 3 命令バッファ 4 命令レジスタ 5 第1演算器用命令レジスタ 6 第2演算器用命令レジスタ 7 第1演算器 8 第2演算器 9 レジスタ 10 並列可否判定部 11〜18 セレクタ 21〜28 バッファレジスタ 31 第1命令用セレクタ 32 第2命令用セレクタ 33 並列可否判定回路 34 並列可否判定結果セレクタ 35 判定結果ラッチ 36 未発行命令数制御部 40 並列可否判定部A 41 並列可否判定部B 42 並列可否判定結果登録部
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−88892(JP,A) 特開 平3−141429(JP,A) 特開 平4−96825(JP,A) 特開 平2−130634(JP,A) 特開 平7−105002(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 フェッチした命令を発行するまで命令バ
    ッファに実行順に保持しておき、その命令バッファから
    実行順に複数の演算器用命令レジスタに命令を順次格納
    し、それぞれの演算器用命令レジスタから対応する複数
    の演算器に命令を同時に発行してそれらの複数の命令を
    並列処理させるにあたり、前記複数の命令を並列処理さ
    せるか否かを制御する命令レベルの並列処理制御方法に
    おいて、前記命令バッファと前記演算器用命令レジスタ
    実行順に保持される未発行の命令のうち、次に発行さ
    れる複数の演算器の数に対応する数の複数の命令につい
    て、実行順が先の命令と後の命令とが並列処理可能か否
    かを判定し、並列処理可能な場合はそれら複数の命令を
    同時に発行し、並列処理不能な命令が有る場合は、当該
    不能に係る命令より前の実行順の命令を発行し、当該不
    能の命令とその後の実行順の命令の実質的発行を阻止す
    る制御を行なうことを特徴とする命令レベルの並列処理
    制御方法。
  2. 【請求項2】 フェッチした命令を発行するまで命令キ
    ャッシュを介して命令バッファに実行順に保持してお
    き、その命令バッファから実行順に複数の演算器用命令
    レジスタに命令を順次格納し、それぞれの演算器用命令
    レジスタから対応する複数の演算器に命令を発行してそ
    れらの複数の命令を並列処理させるにあたり、前記命令
    キャッシュに書き込まれる際に、実行順に従って複数の
    命令について並列処理可能か否かを判定し、その判定結
    果を前記命令キャッシュに登録し、前記命令バッファと
    前記演算器用命令レジスタに実行順に保持される未発行
    の命令のうち、次に発行される複数の演算器の数に対応
    する数の複数の命令について、前記判定結果に基づいて
    並列処理可能な場合はそれら複数の命令を同時に発行
    し、並列処理不能な命令が有る場合は、当該不能に係る
    命令より前の実行順の命令を発行し、当該不能の命令と
    その後の実行順の命令の実質的発行を阻止する制御を行
    なうことを特徴とする命令レベルの並列処理制御方法。
  3. 【請求項3】 フェッチした命令を発行するまで実行順
    保持する命令バッファと、その命令バッファから実行
    順に命令が格納される複数の演算器用命令レジスタと、
    それぞれの演算器用命令レジスタに対応させて設けられ
    それぞれの演算器用命令レジスタから発行される命令を
    それぞれ実行する複数の演算器と、それらの複数の演算
    器に発行される複数の命令が並列処理可能か否かを判定
    し、その判定結果に基づいて前記複数の命令の並列処理
    を制御する並列可否判定部を備えたプロセッサにおい
    て、前記並列可否判定部は、前記命令バッファと前記演
    算器用命令レジスタに実行順に保持される未発行の命令
    のうち、次に発行される複数の演算器の数に対応する数
    の複数の命令について、実行順が先の命令と後の命令と
    が並列処理可能か否かを判定し、並列処理可能な場合は
    それら複数の命令を同時に発行し、並列処理不能な命令
    が有る場合は、当該不能に係る命令より前の実行順の命
    令を発行し、当該不能の命令とその後の実行順の命令の
    実質的発行を阻止する制御を行なうことを特徴とするプ
    ロセッサ。
  4. 【請求項4】 フェッチした命令を格納する命令キャッ
    シュと、その命令キャッシュからフェッチした命令を発
    行するまで実行順に保持する命令バッファと、その命令
    バッファから実行順に命令が格納される複数の演算器用
    命令レジスタと、それぞれの演算器用命令レジスタに対
    応させて設けられそれぞれの演算器用命令レジスタから
    発行される命令をそれぞれ実行する複数の演算器と、そ
    れらの複数の演算器に発行される複数の命令が並列処理
    可能か否かを判定し、その判定結果に基づいて前記複数
    の命令の並列処理を制御する並列可否判定部を備えたプ
    ロセッサにおいて、前記並列可否判定部は、前記命令キ
    ャッシュに書き込まれる複数の命令について並列処理可
    能か否かを判定する第1の並列可否判定部と、前記命令
    バッファと前記演算器用命令レジスタに保持される未発
    行の命令について並列処理可能か否かを判定する第2の
    並列可否判定部とを備えてなり、前記命令バッファと前
    記演算器用命令レジスタに保持されている未発行の命令
    が前記演算器の数未満のときは、前記第1の並列可否判
    定部の判定結果に基づき、前記命令バッファと前記演算
    器用命令レジスタに未発行の命令が前記演算器の数以上
    保持されているときは、第2の並列可否判定部の判定結
    果に基づいて、並列処理可能な場合はそれら複数の命令
    を同時に発行し、並列処理不能な命令が有る場合は、当
    該不能に係る命令より前の実行順の命令を発行し、当該
    不能の命令とその後の実行順の命令の実質的発行を阻止
    する制御を行なうものであることを特徴とするプロセッ
    サ。
JP02394095A 1995-02-13 1995-02-13 命令レベルの並列処理制御方法およびプロセッサ Expired - Fee Related JP3180175B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP02394095A JP3180175B2 (ja) 1995-02-13 1995-02-13 命令レベルの並列処理制御方法およびプロセッサ
US08/596,628 US5894582A (en) 1995-02-13 1996-02-05 Method of controlling parallel processing at an instruction level and processor for realizing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02394095A JP3180175B2 (ja) 1995-02-13 1995-02-13 命令レベルの並列処理制御方法およびプロセッサ

Publications (2)

Publication Number Publication Date
JPH08221273A JPH08221273A (ja) 1996-08-30
JP3180175B2 true JP3180175B2 (ja) 2001-06-25

Family

ID=12124537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02394095A Expired - Fee Related JP3180175B2 (ja) 1995-02-13 1995-02-13 命令レベルの並列処理制御方法およびプロセッサ

Country Status (2)

Country Link
US (1) US5894582A (ja)
JP (1) JP3180175B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3841967B2 (ja) * 1999-01-19 2006-11-08 株式会社ルネサステクノロジ マイクロプロセッサ
JP4651790B2 (ja) * 2000-08-29 2011-03-16 株式会社ガイア・システム・ソリューション データ処理装置
JP2002149402A (ja) * 2000-11-14 2002-05-24 Pacific Design Kk データ処理装置およびその制御方法
JP4783527B2 (ja) * 2001-01-31 2011-09-28 株式会社ガイア・システム・ソリューション データ処理システム、データ処理装置およびその制御方法
US20020152061A1 (en) * 2001-04-06 2002-10-17 Shintaro Shimogori Data processing system and design system
JP5372307B2 (ja) * 2001-06-25 2013-12-18 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
JP2003005958A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP4865960B2 (ja) * 2001-06-25 2012-02-01 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
US6993674B2 (en) * 2001-12-27 2006-01-31 Pacific Design, Inc. System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
US20030163674A1 (en) * 2002-02-26 2003-08-28 Mitsumasa Yoshimura Data processing apparatus, processor unit and debugging unit
CN101180607B (zh) * 2005-06-15 2011-08-03 松下电器产业株式会社 处理器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2810068B2 (ja) * 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
WO1991004536A1 (en) * 1989-09-20 1991-04-04 Dolphin Server Technology A/S Instruction cache architecture for parallel issuing of multiple instructions
CA2123442A1 (en) * 1993-09-20 1995-03-21 David S. Ray Multiple execution unit dispatch with instruction dependency

Also Published As

Publication number Publication date
JPH08221273A (ja) 1996-08-30
US5894582A (en) 1999-04-13

Similar Documents

Publication Publication Date Title
JP3098071B2 (ja) 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム
JP4829541B2 (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
EP0605875B1 (en) Method and system for single cycle dispatch of multiple instruction in a superscalar processor system
US5297281A (en) Multiple sequence processor system
US5428807A (en) Method and apparatus for propagating exception conditions of a computer system
US5898882A (en) Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage
JPH0778738B2 (ja) ディジタル・コンピュータ・システム
JP3180175B2 (ja) 命令レベルの並列処理制御方法およびプロセッサ
JP3797570B2 (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
JPH02227730A (ja) データ処理システム
JPH07104784B2 (ja) デジタルデータ処理装置
EP1025484A1 (en) Autonomously cycling data processing architecture
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
US5729723A (en) Data processing unit
JP3146077B2 (ja) プロセッサ
US5276853A (en) Cache system
EP0292188B1 (en) Cache system
JPS60178580A (ja) 命令制御方式
JP3534987B2 (ja) 情報処理装置
JP2783285B2 (ja) 情報処理装置
JP3169878B2 (ja) メモリ制御回路
JP2824484B2 (ja) パイプライン処理計算機
JPH06131180A (ja) 命令処理方式および命令処理装置
KR100246465B1 (ko) 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees