JPH0810431B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH0810431B2
JPH0810431B2 JP61164749A JP16474986A JPH0810431B2 JP H0810431 B2 JPH0810431 B2 JP H0810431B2 JP 61164749 A JP61164749 A JP 61164749A JP 16474986 A JP16474986 A JP 16474986A JP H0810431 B2 JPH0810431 B2 JP H0810431B2
Authority
JP
Japan
Prior art keywords
result
pipeline
circuit
arithmetic
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 - Lifetime
Application number
JP61164749A
Other languages
English (en)
Other versions
JPS6320537A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP61164749A priority Critical patent/JPH0810431B2/ja
Publication of JPS6320537A publication Critical patent/JPS6320537A/ja
Publication of JPH0810431B2 publication Critical patent/JPH0810431B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はパイプライン化した情報処理装置に関し,特
に複数の命令を並列に実行するパイプライン化した情報
処理装置に関する。
〔従来の技術〕
一般に,高性能を追求した情報処理装置に於ては,独
立した各種演算器をパイプライン化し同種の演算につい
ては同じ演算器に対して連続的にオペランドを送り込ん
でパイプライン処理し,異なった演算については別の演
算器に対して連続的にオペランドを送り込んで並列に処
理することが行なわれている。また,各種演算器は,性
能向上の為,それぞれ最も少ないパイプライン段数で実
現している。
〔発明が解決しようとする問題点〕
ところが同一演算器については,パイプライン処理の
為,演算結果が入力順に順次出力されるが,異なった演
算器からの結果の出力は,各演算器へのオペランドの投
入タイミング,各演算器のパイプライン段数の違いによ
り,同一タイミングに競合する可能性がある。演算結果
は一般にソフトウェア可視レジスタ群(以下,演算レジ
スタと呼ぶ)の中の一つに格納されるが,これは普通メ
モリ化されている為,同一タイミングに複数の結果を格
納することは出来ない。
これを避ける為,各演算器のパイプラインの段数から
逆算して結果の出力タイミングが競合する場合には,各
演算器へのオペランドの投入タイミング,即ち命令の実
行起動を適当に遅らせている。命令の実行起動が与えら
れた命令列の順にしか出来ない制御方式を採用している
装置では,1命令の実行起動を遅らせることにより後続の
命令も順次遅れることになり,性能の低下を招いてい
る。
〔問題点を解決するための手段〕
本発明の情報処理装置はパイプライン化した機能の異
なる演算器を複数個持つ情報処理装置において,各演算
に必要なパイプライン段数が異なる場合,各演算器に対
してその後段に単に結果の転送のみを行なうパイプライ
ン用のレジスタを各演算系パイプラインの段数が等しく
なるように必要な段数だけ付加し,前記付加したパイプ
ライン用のレジスタの任意のレジスタからも演算結果を
出力出来る切替手段と,全結果出力のうちから1つを選
択しようとして異なる演算系間で競合する場合には,結
果を早く必要とするものがあればこれを優先し,さもな
ければ演算に最低必要なパイプライン段数の長い演算器
系からの出力を優先させる制御手段とを含んで構成され
る。
〔実施例〕
次に本発明について図面を参照して説明する。
第1図及び第2図は本発明の一実施例のブロック図及
びその一部詳細図である。第1図に於いて,乗算回路1,
加減算回路2,論理演算回路3はそれぞれ各段が1マシン
サイクルで動作するパイプライン化された演算器であ
り,1マシンサイクル毎に異なったオペランドの演算をパ
イプライン式に処理することが出来る。また各演算に必
要なオペランドが入力オペランドパス1001,1002で与え
られると,それぞれ7マシンサイクル,4マシンサイク
ル,2マシンサイクル後に演算結果を出力することが出来
る。
加減算回路2及び論理演算回路3のパイプライン段数
はそれぞれ4段,2段であり,乗算回路1のパイプライン
段数は7段であるから,その差分,つまり3段及び5段
分のパイプライン用レジスタ4〜6,7〜11が加減算回路
2及び論理演算回路3に接続されている。
切替回路12は加減算回路2の出力,パイプライン用レ
ジスタ4〜6の出力のうち,いずれかを選択して出力す
る回路であり,切替回路13は論理演算回路3の出力,パ
イプライン用レジスタ7〜11の出力のうち,いずれかを
選択して出力する回路である。また切替回路14は乗算回
路1,切替回路12,13の出力のうちいずれかを選択して,
演算レジスタ16への書込みパス1003に出力する回路であ
る。
本実施例には乗算回路1にはパイプライン用レジスタ
を設けていないが,これは説明を簡単にする為であり,
加減算回路2,論理演算回路3と同様に後段にパイプライ
ン用レジスタを適当な段数だけ設けても良い。この場合
乗算回路に設けたパイプライン用レジスタの段数だけ,
加減算回路,論理演算回路のパイプライン用レジスタの
段数を共に増やすことになる。
制御回路15は切替回路12,13,14の選択を制御する回路
である。まず,切替回路14の選択制御は,各演算回路系
の間で結果の出力の競合が発生したときにどの演算回路
系からの出力を優先するかを決めるものであり,特に結
果を早く出力したいものが無い場合は,優先順は乗算回
路系,加減算回路系,論理演算回路系の順である。これ
は例えば乗算回路にはパイプライン用レジスタが無いの
で結果が求まった時点ですぐに演算レジスタ16に転送し
なければ結果が失われてしまうので最優先にするもので
あり,以下同様の考え方で演算に最低必要なパイプライ
ン段数が多いものをより優先的にしている。また,特に
結果を早く出力したいものがある場合,例えばその結果
をオペランドとして使う命令が実行待ちになっている場
合には,すぐに結果を演算レジスタ16に格納し,読み出
して実行に入らなければ性能の低下を招くので,これよ
りも前記優先度の高い演算系に演算レジスタ16に転送出
来る結果が残っている場合でも,差しつかえない限りこ
れを追い越して演算レジスタ16に格納する制御を行なっ
ている。
次に切替回路12の選択制御は,加減算回路系の結果の
最大4ケースの出力の競合がある場合にどれを優先する
かを決めるものであり,優先度はパイプライン上のより
後段の出力を高くしている。これは,例えば最後段のパ
イプライン用レジスタ6に結果がある場合は,これを優
先して演算レジスタ16に転送しなければ結果が失なわれ
てしまうので最優先にするものであり,以下同様の考え
方で後段側をより優先度を高くしている。切替回路13に
ついても切替回路12と同様である。
フリップフロップ101〜107,201〜207,301〜307はそれ
ぞれ乗算回路系,加減算回路系,論理演算回路系の各パ
イプラインステージに有効データが存在することを表わ
す有効ビットすなわち有効フラッグを表わすものであ
り,これと制御回路15の詳細を示すと第2図のようにな
っている。
第2図は主に加減算回路2に注目して詳細が記されて
いる。加減算回路2にオペランドが与えられると,パイ
プライン式に演算が進むにつれてフリップフロップ201,
202,203が順に“1"となり,演算結果が求まると同時に
フリップフロップ204が“1"になる。この時に求まった
結果を演算レジスタ16に転送できる場合は,転送が行な
われてしまうため,フリップフロップ204は“1"→“0"
になり,フリップフロップ205は“1"にならずに終了す
る。他との競合があり優先度が低くて転送できない場合
は,結果をパイプライン用レジスタ4に入れると同時に
フリップフロップ204は“1"→“0",フリップフロップ20
5は“0"→“1"になり,結果が演算レジスタ16に転送さ
れずにパイプライン用レジスタ4に移ったことを示す。
以下パイプライン用レジスタ5,6,フリップフロップ206,
207も同様である。
切替回路12の制御はこのフリップフロップ204〜207と
加減算回路系の結果を優先して出力できることを指示す
る信号1402によって行なわれる。信号1402が“1"であれ
ばフリップフロップ207,206,205,204の順に見て例えば
最初に“1"のあるフリップフロップが206であるとする
と,これに対応するパイプライン用レジスタ5の結果を
演算レジスタ16に転送するため,ANDゲート217〜214のう
ち対応するANDゲート216の出力信号1206が“1"となり,
切替回路12ではパイプライン用レジスタ5が選択されて
結果の転送が行なわれることになる。
信号1402が“0"であれば加減算回路系の結果は演算レ
ジスタ16に転送できないのでANDゲート217〜214のいず
れの出力(1207〜1204)も“0"となり,従って信号1306
〜1304は全て“1"となるのでフリップフロップ204〜206
の内容がそのままフリップフロップ205〜207に移され
る。
次に切替回路14の選択制御について説明する。この制
御は,各演算回路系から演算レジスタ16に転送すべき結
果が1つでも存在することを表わす信号1501,1502,1503
と,各演算回路系から早く出力したい結果があることを
表わす信号(優先出力要求信号)1701,1702,1703とで行
なわれる。信号1501,1502,1503はそれぞれフリップフロ
ップ107の出力,フリップフロップ204〜207の出力の論
理和,フリップフロップ302〜307の出力の論理和であ
る。
優先出力要求信号1701〜1703については,第2図に詳
細に記されている加減算回路系からの信号1702を例とし
て以下に説明する。
格納アドレスレジスタ221〜226は加減算結果を演算レ
ジスタ16に格納する場合の格納アドレスを持ち回るレジ
スタであり,オペランドアドレスレジスタ231,232はそ
れぞれ今から演算を開始しようとしている命令の2オペ
ランドの演算レジスタアドレスを保持するレジスタで,
現在実行中の命令の結果を待っている場合は実行に入れ
ずこのレジスタに保持され続けるものである。
オペランドアドレスレジスタ231,232の内容は格納ア
ドレスレジスタ226,225,224と比較器241などで比較さ
れ,一致するものがあれば各パイプラインステージ対応
に一致信号1601,1602,1603が“1"となる。
信号1702はパイプラインステージの後方から見てフリ
ップフロップ207,206,205,204の最初に“1"のあるパイ
プラインステージに一致信号がある場合に“1"となり,
早く結果を出力したいことを表わすものである。但し,
最後段のステージに対応するフリップフロップ207が
“1"のときは後続パイプラインステージが無いので,ア
ドレス一致とは関係なく無条件に信号1702は“1"とな
る。
信号1701,1703もこの加減算回路系の信号1702と同様
の信号であり,説明は省略する。なお信号1701について
は,本実施例では説明の簡単化の為に乗算回路1の後段
に転送用のパイプラインレジスタを持っていないので,
フリップフロップ107の出力信号そのものであり,従っ
てこのままでは意味のない信号であるが,乗算回路1の
後段に転送用のパイプラインレジスタを持たせた場合は
必要となるものである。
次に信号1501,1502,1503と信号1701,1702,1703による
切替回路14の選択について説明する。先ず優先出力要求
信号1701,1702,1703が共に“0"従って優先度変更信号18
01,1802が共に“1"の場合,つまり特別早く出力したい
ものが無い場合についてみると,信号1501,1502,1503を
入力し,優先順位つまり乗算回路系,加減算回路系,論
理演算系の順に従って,乗算回路系の出力を選ぶ信号14
01,加減算回路系の出力を選ぶ信号1402,論理演算系の出
力を選ぶ信号1403を作成し,これによって切替回路14の
選択制御を行なっている。次に優先出力要求がある場合
についてみると,優先出力要求信号1701,1702,1703と優
先度変更信号1801,1802の論理テーブルは次の様になっ
ている。
つまり,乗算回路系にある演算結果により加減算回路
系又は論理演算回路系にある結果が早く欲しい場合は,
信号1701を抑える信号1801を“0"にし,加減算回路系に
ある演算結果より論理演算回路系にある結果が早く欲し
い場合は,信号1702を抑える信号1802を“0"にする論理
となっている。従って,例えば乗算回路系には転送した
い結果が無く(信号1501=0,信号1701=0),加減算回
路系には転送したい結果はあるが特に早く出力したい場
合では無く(信号1502=1,信号1702=0),論理演算系
回路には転送したい結果がありしかも特に早く出力した
い(信号1503=1,信号1703=1)場合には,(単なる演
算回路系の優先度のみから選択するとすれば信号1402が
“1"となり,加減算回路系が選択されるところである
が)優先度変更信号1802が“0"となることによって信号
1403が“1"となり,論理演算回路系が加減算回路系より
優先されて選択されて出力される。
第3図は結果待ちが無い場合の高速化の一例を説明す
る為の命令列である。の命令は演算レジスタ1の内容
と,演算レジスタ2の内容を乗算し結果を演算レジスタ
3に格納することを意味する。〜についても同様で
ある。
第4−A図は,第3図の命令列に於ける従来の装置,
即ち,第1図に於けるパイプライン用レジスタ4〜11,
切替回路12,13が無い場合の命令実行のタイムチャート
である。命令の実行起動がマシンサイクル毎に1命令
で,与えられた命令列順にのみ行なえる場合,〜の
命令については1マシンサイクルずれで乗算回路1,加減
算回路2,加減算回路2に演算を指示し,それぞれ7サイ
クル目,4サイクル目,4サイクル目に演算結果が求まるの
で,演算レジスタ16への書込みパス103にはの命
令順に結果が得られる。結果の命令順が変わってもこの
場合何ら問題はない。ところがの命令については,タ
イミング4から実行開始させたとすると(第4−A図の
点線),加減算である為4マシンサイクル後のタイミン
グ7で結果が求まり,の命令の結果が求まるタイミン
グと一致し,不具合が生じる。従っての命令の実行開
始を1マシンサイクル遅らせ,タイミング5から実行さ
せることによってこれを避けるようにする(第3−A図
の実線)。の命令についても同様である。こうして7
命令を実行させると,全体で16マシンサイクルを必要と
する。
第4〜B図は第3図の命令列に於ける本発明の装置,
即ち第1図でのタイムチャートである。この場合〜
の命令すべてについて,前記の従来の場合とは異なり演
算結果の競合を気にせず,1マシンサイクルずれで実行開
始させる。タイミング6でとの命令の結果が競合す
るが,優先順に従っての命令の結果が切替回路12,14
で選択され,演算レジスタ16に転送される。の命令の
結果は演算レジスタ16には転送されず,パイプライン用
レジスタ7に移される。次にタイミング7ではとと
との命令の結果が競合するが,優先順に従っての
命令の結果が切替回路14で選択され,演算レジスタ16に
転送される。の命令の結果はパイプライン用レジスタ
4に移され,,の命令の結果はそれぞれパイプライ
ン用レジスタ8,7に移される。次にタイミング8では
ととの命令の結果が競合するが,優先順に従って
の命令の結果がパイプライン用レジスタ4から切替回路
12,14を通して演算レジスタ16に転送される。との
命令の結果はそれぞれパイプライン用レジスタ9,8に移
される。次にタイミング9ではとの命令の結果が競
合するが,優先順に従っての命令の結果がパイプライ
ン用レジスタ9から切替回路13,14を通して演算レジス
タ16に転送される。の命令の結果はパイプライン用レ
ジスタ9に移される。タイミング10では競合なくの命
令の結果がパイプライン用レジスタ9から切替回路13,1
4を通して演算レジスタ16に転送される。の命令の結
果はタイミング13で競合なく結果の格納が行なわれ,結
果的には7命令の実行に13マシンサイクルで済むので高
速化されることが理解されよう。
尚,パイプラインの長さを同じ長さに合わせているの
は,パイプラインの長さがすべて同じであれば1マシン
サイクル毎の入力に対し必ず出力の競合なしに1マシン
サイクル毎に出力を得ることが出来るためであり,単に
転送の為のパイプライン用レジスタの任意の出力から結
果を取り出す構成にしているのは,競合さえなければ出
来るだけ早く演算レジスタを更新し,この結果をオペラ
ンドとして使用する命令が後続の命令の中にあれば早く
実行に移らせるためである。
第5図は結果待ちを行なう場合の一例を説明する為の
命令列である。記述方法は第3図と同様の為,説明は省
略する。
第6−A図は,第5図の命令列に於けるタイムチャー
トを優先変更回路が無いと仮定した場合のタイムチャー
トであり,,,の命令は順次タイミング9,10,11
で結果の転送が行なわれる。の命令はの命令の結果
が演算レジスタ16へ転送され読み出されて(タイミング
12)はじめてタイミング13から実行開始される。これに
対して,本発明の装置に於ける優先変更回路により,第
6−B図のタイムチャートに示すように,,の命
令の結果の転送はタイミング9でアドレス一致による優
先出力要求信号1703が“1"になる為,,の順に行
なわれ,の命令はタイミング11から実行開始され,高
速化が計られているのが理解されよう。
〔発明の効果〕
以上説明したように本発明は,パイプライン化した機
能の異なる演算器を複数個持つ情報処理装置に於て,各
演算に最低必要なパイプライン段数が異なる場合,各演
算器に対して,その後段に単に結果の転送のみを行なう
パイプライン用のレジスタを必要な段数だけ付加するこ
とによって各演算系パイプラインの段数を等しくし,付
加したパイプライン用レジスタの任意のレジスタからも
演算結果を出力出来るように構成し,全結果出力のうち
から1つを選択しようとして,異なる演算系間で競合す
る場合,結果を早く必要とするものがあればこれを優先
しさもなければ演算に最低必要なパイプライン段数の長
い演算器系からの出力を優先させることによって,必要
なマシンサイクルを減少し動作を高速化される効果があ
る。
【図面の簡単な説明】 第1図は本発明の一実施例を示すブロック図,第2図は
第1図の一部を詳細に示した図,第3図,第5図は本発
明の効果を説明する為の命令列例,第4−A図,第4−
B図,第6−A図,第6−B図は本発明の効果を説明す
る為のタイムチャートである。 記号の説明: 1……乗算回路,2……加減算回路,3……論理演算回路,4
〜11……パイプライン用レジスタ,12〜14……切替回路,
15……制御回路,16……演算レジスタ,101〜107,201〜20
7,301〜307……フリップフロップ(有効フラグ),214〜
217……AND回路,221〜223……結果アドレスレジスタ,22
4〜226……格納アドレスレジスタ,231,232……オペラン
ドアドレスレジスタ,241……比較器,1001,1002……オペ
ランド供給パス,1003……結果格納パス,1204〜1207……
選択回路12に於ける選択信号,1401〜1403……選択回路1
4に於ける選択信号,1501〜1503……各演算系に格納すべ
き結果があることを示す制御信号,1601〜1603……結果
アドレス/オペランドアドレス一致信号,1701,1702,170
3……優先出力要求信号,1801,1802……優先度変更信
号。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】パイプライン化した,機能の異なる演算器
    を複数個持つ情報処理装置に於て,各演算に最低必要な
    パイプライン段数が異なる場合,各演算器に対してその
    後段に単に結果の転送のみを行なうパイプライン用のレ
    ジスタを各演算系パイプラインの段数が等しくなるよう
    に必要な段数だけ付加し,前記付加したパイプライン用
    のレジスタの任意のレジスタからも演算結果を出力出来
    る切替手段と,全結果出力のうちから1つを選択しよう
    として異なる演算系間で競合する場合には,結果を早く
    必要とするものがあればこれを優先し,さもなければ演
    算に最低必要なパイプライン段数の長い演算器系からの
    出力を優先させる制御手段とを含むことを特徴とする情
    報処理装置。
JP61164749A 1986-07-15 1986-07-15 情報処理装置 Expired - Lifetime JPH0810431B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61164749A JPH0810431B2 (ja) 1986-07-15 1986-07-15 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61164749A JPH0810431B2 (ja) 1986-07-15 1986-07-15 情報処理装置

Publications (2)

Publication Number Publication Date
JPS6320537A JPS6320537A (ja) 1988-01-28
JPH0810431B2 true JPH0810431B2 (ja) 1996-01-31

Family

ID=15799186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61164749A Expired - Lifetime JPH0810431B2 (ja) 1986-07-15 1986-07-15 情報処理装置

Country Status (1)

Country Link
JP (1) JPH0810431B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2458487B (en) * 2008-03-19 2011-01-19 Imagination Tech Ltd Pipeline processors

Also Published As

Publication number Publication date
JPS6320537A (ja) 1988-01-28

Similar Documents

Publication Publication Date Title
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US4675806A (en) Data processing unit utilizing data flow ordered execution
US5353418A (en) System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
US4507728A (en) Data processing system for parallel processing of different instructions
JP2539974B2 (ja) 情報処理装置におけるレジスタの読出制御方式
JPS6254342A (ja) ディジタル命令プロセッサ制御装置および1サイクル内で分岐を実行する方法
EP0093430A2 (en) Pipeline data processing system
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
JP2518293B2 (ja) デ−タフロ−プロセツサ
JPH10143365A (ja) 並列処理装置及びその命令発行方式
JP2503984B2 (ja) 情報処理装置
JPH0810431B2 (ja) 情報処理装置
US6981130B2 (en) Forwarding the results of operations to dependent instructions more quickly via multiplexers working in parallel
JP2503983B2 (ja) 情報処理装置
JPH0248932B2 (ja)
JP2513765B2 (ja) パイプライン処理における条件分岐制御方式
JPH01500065A (ja) 複数制御ストアを有するミクロプログラム情報処理システムの装置と方法
JPH0810432B2 (ja) 情報処理装置
JPS6134186B2 (ja)
JP3526773B2 (ja) マルチプロセッサ装置およびその制御方法
EP0183877B1 (en) Microcomputer for time dependent processes
JP2503966B2 (ja) 情報処理装置
JP2819733B2 (ja) 情報処理装置
JP2804485B2 (ja) 記憶制御方式
JPH08137690A (ja) プログラム実行制御方法