JPH0318210B2 - - Google Patents

Info

Publication number
JPH0318210B2
JPH0318210B2 JP61163943A JP16394386A JPH0318210B2 JP H0318210 B2 JPH0318210 B2 JP H0318210B2 JP 61163943 A JP61163943 A JP 61163943A JP 16394386 A JP16394386 A JP 16394386A JP H0318210 B2 JPH0318210 B2 JP H0318210B2
Authority
JP
Japan
Prior art keywords
microinstruction
microinstructions
storage
alu
storage means
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
JP61163943A
Other languages
English (en)
Other versions
JPS6285338A (ja
Inventor
Toomasu Orunoitsuchi Hawaado
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS6285338A publication Critical patent/JPS6285338A/ja
Publication of JPH0318210B2 publication Critical patent/JPH0318210B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • G06F9/265Microinstruction selection based on results of processing by address selection on input of storage

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)

Description

【発明の詳細な説明】 A 産業上の利用分野 本発明はコンピユータシステムに関し、より具
体的に言えば、2方向条件付きブランチ(分岐)
マイクロ命令を実行することの出来るパイプライ
ン式マイクロプロセツサにおいて、マイクロブラ
ンチ自身の実行に加えて、ただ1つの遅延サイク
ルを有し、その付加的な1つの遅延サイクルはパ
イプラインの方向を変更するために必要とされる
ような方式のパイプライン・マイクロプロセツサ
に関する。
B 従来技術及び発明が解決しようとする問題点 主メモリ中に記憶されたマクロ命令は複数個の
マイクロ命令を含んでいる。マクロ命令が実行さ
れる時、各マイクロ命令は順番に実行される。複
数個のマイクロ命令のうちの最後の命令が実行さ
れた時、マクロ命令の実行が完了する。主メモリ
がアドレスされた時、マクロ命令は検索され、命
令デコードユニツト中の開始マイクロ命令のアド
レスにデコードされる。複数個のマイクロ命令は
命令デコードユニツトに接続されている読み取り
専用メモリ(ROM)中に、マイクロコードの形
で通常記憶されている。主メモリからマクロ命令
を検索することは、マクロ命令に応答して、
ROMからマイクロ命令の検索を必らず必要と
し、マイクロ命令は演算論理ユニツト(ALU)
により、順番に実行される。
大規模集積回路の導入の結果として、集積回路
チツプ上に回路が設けられる。技術の進歩に伴つ
て、より多くの回路がこれらの集積回路チツプ上
に設けられるよう要望されている。これらの回路
はチツプ上に回路設置スペース(「土地」(real
estate)とも称される)を必要とするが、これら
とチツプ上の利用可能のスペースは限られてい
る。従つて、集積回路チツプ上に作られるべき回
路の数が増加すればする程、チツプ上の「土地」
は乏しくなる。
集積回路チツプ上により多くのスペースを必要
とする結果、多くの場合、マイクロ命令を記憶す
るためのROMのサイズを減少することが必要で
ある。ROMのサイズを減少するために、ROM
は2つの部分、即ちマイクロ命令記憶装置とナノ
命令記憶装置とに分割される。
ROMを2つの部分に分割することは1つの問
題、即ちチツプ上の利用可能な「土地」の要求の
問題を解決する。然しながら、ROMの分割は他
の問題、即ち、ALUがマイクロブランチ命令を
実行する際に、余分な遅延サイクルが導入される
という問題を生ずる。
マイクロブランチ命令とは、決定の結果に従つ
て2つの方向のうちの1方へブランチ(分岐)す
る命令である。例えば、A割るBの場合、若しB
が0でないとすれば、割り算の結果は「1つの方
法」により決められねばならず、これに対して、
若しBが0であるとすれば、割り算の結果は「他
の方法」によつて決められねばならない。
多段階に亘つてパイプライン処理されるプロセ
ツサにおいて、若し、ROMがマイクロ命令を記
憶するのに使われているならば、マイクロブラン
チ命令がALUにより実行される時、1サイクル
の遅延が生じ、そしてALUは現在の決定による
解答(結果)によつて、「他の方法」へブランチ
する。然しながら、若し、マイクロ命令記憶装置
及びナノ命令記憶装置がROMの代りに一団とし
てマイクロ命令を記憶しているとすれば、マイク
ロブランチ命令がALUによつて実行される時に、
2サイクルの遅延が生じ、そしてALUは、現在
の決定による解答の結果として「他の方法」に分
岐する。
その結果、集積回路チツプ上の「土地」をより
多く利用するためには、性能を犠牲にする必要が
ある。
本発明の目的は集積回路チツプ上の回路の性能
を著しく低下させずに、集積回路チツプ上の「土
地」を有効に利用することにある。
本発明の他の目的は、集積回路チツプ上のプロ
セツサがマイクロブランチ命令を実行している時
に生ずる遅延サイクルの数の増加による、チツプ
上の回路の性能の著しい低下をもたらすことな
く、チツプ上のマイクロ命令の記憶手段のサイズ
を小さくすることによつてチツプ上の「土地」を
より多く利用することにある。
C 問題点を解決するための手段 本発明の上述の目的は非操作(no−op)/事
前取り出し(prefetch)装置を使用することによ
つて達成される。本発明に従つた、マイクロ命令
記憶装置−ナノ命令記憶装置−ALUパイプライ
ン中の非操作(no−op)/事前取り出し装置は、
マイクロブランチ命令がパイプラインのALUに
より遂行されている時に、パイプラインにより実
行されている命令ストリーム中に非操作(no−
op)命令を強制導入し、遅延の最初のサイクル
に続く実行の間で2つのブランチオプシヨンを事
前取り出しする装置であつて、非操作命令はマイ
クロブランチ命令の実行に続く遅延の最初のサイ
クルを表わし、そして実行されるべきブランチオ
プシヨンはマイクロブランチ命令の実行の結果と
して行われるブランチ決定に依存する。
D 実施例 第2図を参照すると、マクロ命令の実行が示さ
れている。第2図において、マクロ命令は主メモ
リ10に記憶されている。主メモリ10がアドレ
スされると、命令は主メモリから検索されて、マ
クロ命令デコードユニツト15でデコードされ
る。命令デコードユニツト15は複数個のマイク
ロコードを記憶している読み取り専用メモリ
(ROM)20をアクセスする。マクロ命令は
ROM20から一組のマイクロ命令を検索し、そ
してそのマイクロ命令は演算論理回路(ALU)
30の中で順番に実行される。
第2図のマクロ命令実行システムは集積回路チ
ツプ上に設けられている。多くのアプリケーシヨ
ンにおいて、チツプ上により多くの回路設置場
処、即ち「土地」を与えるためには、チツプ上に
ある第2図の要素、即ちコンポーネントのサイズ
を小さくする必要がある。チツプ上のROM20
のサイズを小さくするために、ROMは他の2つ
のより小さいコンポーネントで置換され、そして
これらの小さいコンポーネントのサイズは集積回
路チツプ上の利用可能な「土地」を大きくするよ
うデザインされる。
第6図に他のマクロ命令実行システムが示され
ており、このシステムは第2図のROM20と置
き換えた他の2つの小さなコンポーネントを含ん
でいる。第6図において、一方の小さなコンポー
ネント、即ちマイクロ命令記憶装置20aは他方
の小さなコンポーネント、即ちナノ命令記憶装置
20bに接続されている。従つて、第6図のマク
ロ命令実行システムは命令デコードユニツト15
に接続され、命令デコードユニツト15はマイク
ロ命令記憶装置20aに接続され、マイクロ命令
記憶装置20aはナノ命令記憶装置20bに接続
され、そしてナノ命令記憶装置はALU30に接
続されている。
第6図のマクロ命令実行システムの機能動作を
以下の項で説明する。
先づ、主メモリ10がアドレスされる。これに
応答して、主メモリ10はマクロ命令を表わす出
力信号を発生する。マクロ命令は命令デコードユ
ニツト15中でデコードされ、そしてマイクロ命
令記憶装置20aをアクセスする。マイクロ命令
記憶装置20aは各マクロ命令に対応する1以上
のマイクロ命令アドレスを含んでおり、これらの
マイクロ命令アドレスは順番にナノ命令記憶装置
20bに供給される。換言すれば、マイクロ命令
アドレスはナノ命令記憶装置20bをアドレスす
るためのアドレス手段として作用する。主メモリ
10からのマクロ命令によるアクセスに応答し
て、マイクロ命令記憶装置20aはナノ命令記憶
装置20bに一連のマイクロ命令アドレスを与え
る。
マイクロ命令記憶装置20aにより遂行される
アドレス動作に応答して、ナノ命令記憶装置20
bは、主メモリ10から検索されたマクロ命令に
対応する一組のマイクロ命令を表わす出力信号を
発生する。この一組のマイクロ命令はALU30
により実行される。
第2図及び第6図のマクロ命令実行システムは
パイプラインシステムである。パイプラインシス
テムの概念を第2図及び第6図を参照して以下の
項で説明する。
第2図において、各マクロ命令はその実行に際
してただ1個のマイクロ命令を必要とし、一方
ALU30は最初のマクロ命令に対応するマイク
ロ命令を実行中であると仮定すると、ROM20
は第2のマクロ命令に関連したマイクロ命令をア
クセスしている。ROM20が第2のマイクロ命
令をアクセスしている間に、命令ユニツト15は
第3のマクロ命令をデコードしており、且つメモ
リ10は第4のマクロ命令の検索のための準備に
アクセスされつつある。第6図において、ALU
30が最初のマクロ命令に対応するマイクロ命令
を実行している間に、ナノ命令記憶装置20bは
マイクロ命令記憶装置20aの出力によつてアク
セスされており、且つナノ命令記憶装置20bは
第2のマクロ命令に対応するマイクロ命令を表わ
す出力の発生を準備している。
ナノ命令記憶装置20bがアクセスされている
間に、マイクロ命令記憶装置20aは第3のマク
ロ命令を表わすマイクロ命令についてアクセスさ
れている。
通常はそうであるように、マクロ命令に関連し
た一組のマイクロ命令があつた場合、パイプライ
ン動作は以下のように遂行される。即ち、ALU
30は上述のマクロ命令のため第1マイクロ命令
を実行しており、ナノ命令記憶装置20bは第2
マイクロ命令をアクセスしており、マイクロ命令
記憶装置20aは第3マイクロ命令のアドレスを
アクセスしており、そして、命令デコーダ15
は、上述のマクロ命令のための一組のマイクロ命
令がマイクロ命令記憶装置20aからすべてアク
セスされてしまうまで、上述のマクロ命令の次に
実行されるべきマイクロ命令を待ち受けている。
若し、ALU30により実行される命令が2方
向条件付きブランチマイクロ命令を含む一組のマ
イクロ命令であつたとすれば、2方向条件付きブ
ランチマイクロ命令の実行が完了した時、条件付
きブランチマイクロ命令の出力に応じて、2つの
マイクロ命令のうちの1つのマイクロ命令が実行
される。条件付きブランチマイクロ命令が実行さ
れた時、若し、2つのマイクロ命令のうちの第1
のマイクロ命令を実行するように決定されたとす
れば、パイプライン中のマイクロ命令は順番に実
行される。パイプラインは乱されない。然しなが
ら、条件付きブランチマイクロ命令が実行された
時、若し、2つのマイクロ命令のうちの第2のマ
イクロ命令を実行するよう決定されたとすれば、
パイプライン中のマイクロ命令は順番に遂行され
ない。パイプラインは乱される。
多段階に亘つてパイプライン処理が行われるプ
ロセツサにおいて、若し、2つのマイクロ命令の
うちの第2のマイクロ命令を実行するよう決定さ
れ、且つパイプライン中のマイクロ命令が第2図
において順番を外れて実行されるならば、ALU
30による条件付きブランチマイクロ命令の実行
の完了と、ALU30による2つのマイクロ命令
のうちの第2のマイクロ命令の実行の完了との間
で、1サイクルの遅延が生ずる。然しながら、第
6図のシステムにおいては、ALU30による条
件付きブランチマイクロ命令の実行の完了と、
ALUによる2つの条件付きブランチマイクロ命
令のうちの第2のマイクロ命令の実行との間で、
2サイクルの遅延が生ずる。第2図のシステムは
ROM20があるため1サイクルの遅延が生じ、
これに対して、第6図のシステムは、ALU30
におけるマイクロブランチ決定がマイクロ命令記
憶装置に反映されねばならないので、マイクロ命
令記憶装置20a及びナノ命令記憶装置20bが
あるために、2サイクルの遅延が生ずる。
その結果、第6図のマクロ命令実行システムを
利用することによつて、より多い「土地」が集積
回路チツプ上に与えられるけれども、遅延のサイ
クル数が増加するので、第2図のシステムに比較
して第2のシステムの性能は著しく低下する。第
2図に比較して、第6図の性能低下に関するこの
現象は第3図乃至第5図を参照して以下の項で、
より詳しく説明する。
第3図を参照すると、第2図のマクロ命令実行
システムに関連したパイプライン段階が示されて
いる。このシステムは1サイクル遅延を有してい
るが、利用可能な「土地」は、第2図のシステム
が設置されている集積回路チツプ上では狭い。第
3図において、パイプライン段階は、マシンサイ
クル1,2,3及び4の間でROM20及びALU
30中で実行されている命令に関する情報を含ん
でいる。例えば、マイクロ命令10及びマイクロ
命令9はマシンサイクル1の期間中、夫々ROM
20及びALU30に関連されている。ここで、
マイクロ命令10は条件付きブランチマイクロ命
令であると仮定する。マシンサイクル2の間で、
ALU30は条件付きブランチマイクロ命令を実
行している。マイクロ命令11はこの期間で
ROM20と関連されている。マシンサイクル3
の間で、マイクロ命令11はALU30により実
行されている。マイクロブランチの結果がALU
30で未だ判明していないので、マイクロ命令1
1は、パイプライン動作を続行するための基本的
には不使用マイクロコーダ、即ち充填用マイクロ
コーダである。然しながら、マイクロ命令200
か、又はマイクロ命令12の何れかがこの時間で
ROM20と関連されている。マイクロ命令20
0か又はマイロ命令12の何れか1つのマイクロ
命令は、マシンサイクル2の期間でのマイクロ命
令10の実行の結果に従つて、マシンサイクル4
の期間中で実行される。ALU30での1サイク
ルの遅延は、マシンサイクル2の間でのALU3
0による条件付きブランチマイクロ命令の実行の
完了と、マシンサイクル4の間でのALU30に
よるマイクロ命令12か又は、マイクロ命令20
0の何れかの実行の完了との間のマシンサイクル
3で生ずる。
第4図を参照すると、第6図のマクロ命令実行
システムのパイプライン段階が示されている。こ
のシステムは2サイクルの遅延を生ずるが、然し
第2図に比較して、第6図のシステムが設けられ
た集積回路上に、より広い「土地」が利用可能で
ある。第4図において、パイプライン段階は、マ
シンサイクル1乃至6の間において、マイクロ命
令記憶装置20a、ナノ命令記憶装置20b及び
ALU30によつて実行されているマイクロ命令
に関する情報を含んでいる。マシンサイクル1の
間で、マイクロ命令8,9及び10は夫々ALU
30、ナノ命令記憶装置20b及びマイクロ命令
記憶装置20aと関連付けられている。マイクロ
命令10が条件付きブランチマイクロ命令である
と仮定する。マシンサイクル2の間で、マイクロ
命令9,10及び11はALU30、ナノ命令記
憶装置20b及びマイクロ命令記憶装置20aと
関連付けられている。マシンサイクル3の間で、
マイクロ命令10,11及び12はALU30、
ナノ命令記憶装置20b及びマイクロ命令記憶装
置20aと関連付けられている。マイクロ命令1
0は条件付きブランチマイクロ命令なので、マシ
ンサイクル3の間でALU30は、マシンサイク
ル4の間でマイクロ命令記憶装置20aと関連し
ていたマイクロ命令がマイクロ命令13か又はマ
イクロ命令200の何れかであるかを決定する。
ALU30において、マシンサイクル4及び5は
遅延サイクルであり、これらの不使用のサイクル
は、マイクロ命令13か又はマイクロ命令200
の何れかがALU30により、マシンサイクル6
の間で、実行される前に、徒過しなければならな
い。サイクル4及び5は2サイクルの遅延を表わ
すことは注意を喚起する必要がある。マシンサイ
クル4の間で、マイクロ命令13又は200はマ
イクロ命令記憶装置20aに関連付けられてい
る。マシンサイクル5の間で、マイクロ命令13
及び200はナノ命令記憶装置20bと関連付け
られている。
第5図を参照すると、本発明に従つた非操作
(no−op)/事前取り出し(prefetch)装置を使
用した第6図のマクロ命令実行システムのパイプ
ライン段階が示されている。このシステムは1サ
イクルの遅延しか生じない。更に、第5図のシス
テムは、第6図のシステムが設けられている集積
回路チツプの上に、第2図のシステムより広い
「土地」が利用可能である。第5図において、パ
イプライン段階は、マイクロ命令記憶装置20
a、ナノ命令記憶装置20b及びALU30によ
つて、マシンサイクル1乃至5の間で実行される
命令に関する情報を含んでいる。マシンサイクル
1の間で、マイクロ命令8,9及び10はALU
30、ナノ命令記憶装置20b及びマイクロ命令
記憶装置20aに関連されている。マイクロ命令
10が条件付きブランチマイクロ命令であると仮
定する。マシンサイクル2において、マイクロ命
令9,10及び11はALU30、ナノ命令記憶
装置20b及びマイクロ命令記憶装置20aに関
連されている。マシンサイクル3の間で、条件付
きブランチマイクロ命令10がALU30により
実行されている。マシンサイクル3の間で、ナノ
命令記憶装置20bにマイクロ命令11を関連さ
せる代りにナノ命令記憶装置20bに関連したパ
イプライン中に、no−op命令を強制的に導入す
る。マイクロ命令11はマイクロ命令記憶装置2
0aと関連付けられたままであるが、然し、加え
て、マイクロ命令200の事前取り出しがあり、
この事前取り出しがマイクロ命令11と共にマイ
クロ命令記憶装置20aと関連付けられる。従つ
て、マイクロ命令のオプシヨン11及び200は
マイクロ命令記憶装置20aに関連付けられる。
マシンサイクル4の間で、ALU30はアイドル
して、no−opマイクロ命令がALU30と関連付
けられる。マイクロブランチは解決され、そし
て、マイクロブランチの結果に従つてマイクロ命
令オプシヨン11か又は200の何れかがナノ命
令記憶装置20bに関連付けられるように選ば
れ、そして、このようにして、マイクロ命令のオ
プシヨン12又は201がマイクロ命令記憶装置
20aに関連付けられる。マシンサイクル5の間
で、ALU30は、マシンサイクル3の間のALU
30による条件付きブランチマイクロ命令の実行
の結果に従つて、マイクロ命令11か又は200
の何れかを実行する。若し、ALU30がマイク
ロ命令200を実行したとすれば、マイクロ命令
201がサイクル5でナノ命令記憶装置20bに
関連付けられる。若し、ALU30がマイクロ命
令11を実行したとすれば、マイクロ命令12が
サイクル5でナノ命令記憶装置20bに関連付け
られる。
第1図を参照すると、本発明に従つた非操作/
事前取り出し装置を含むマイクロ命令記憶装置−
ナノ命令記憶装置−ALUパイプラインが示され
ている。
第1図において、主メモリ10は、マクロ命令
デコードユニツト15に接続され、そして命令デ
コードユニツト15は更に本発明に従つた非操
作/事前取り出し装置50の一部を経て、マイク
ロ命令記憶装置20aに接続されている。マイク
ロ命令記憶装置20aは非操作/事前取り出し装
置50の他の部分を経てナノ命令記憶装置20b
に接続されている。ナノ命令記憶装置20bはマ
イクロ制御レジスタ40を介して実行ユニツト
(又はALU)30へ接続されている。
非操作/事前取り出し装置50はマイクロブラ
ンチ制御ロジツク50aを含んでいる。制御ロジ
ツク50aはALU30から「マイクロブランチ
遂行」信号と、「マイクロブランチ非遂行」信号
を受け取る。マイクロブランチ制御ロジツク50
aは「選択」ラインを介してマルチプレクサ
(MUX)50bへ接続される。MUX50bの出
力はナノ命令記憶装置20bへ接続されている。
MUX50bの一方の入力は非操作命令のアドレ
スを受け取る。MUX50bの他方の入力はマイ
クロ命令記憶装置出力レジスタ50cの出力へ接
続されている。マイクロブランチ制御ロジツク5
0aからの「選択」ライン上の信号は、MUX5
0bの何れか一方の入力がMUX50bの出力へ
接続される選択を行う。マイクロ命令記憶装置出
力レジスタ50cの入力はマイクロ命令記憶装置
20aに接続されている。マイクロ命令記憶装置
出力レジスタ50cからの出力は「マイクロブラ
ンチ順位」ラインを介してマイクロブランチ制御
ロジツク50aへ接続される。マイクロブランチ
制御ロジツク50aは「ロード禁止」(ブランチ
非遂行)ラインを介してマイクロ命令記憶装置出
力レジスタ50cへ接続される。更に、マイクロ
ブランチ制御ロジツク50aは「ロード」
(LOAD)ライン及び「歩進」ラインを介してブ
ランチアドレスカウンタ50dへ接続される。ま
たマイクロ命令記憶装置出力レジスタ50cから
の出力は「アドレスへブランチ」ラインを介して
ブランチアドレスカウンタ50dへ接続される。
ブランチアドレスカウンタ50dはマイクロシー
ケンサ50eの入力端子へ接続され、且つ他のマ
ルチプレクサ(MUX)50fの第2の入力端子
に接続されている。マイクロシーケンサ50eの
第1入力端子は「新規開始のマイクロ命令アドレ
ス」ラインを介してマクロ命令デコードユニツト
15へ接続される。マイクロシーケンサ50eの
出力はMUX50fの第1入力端子へ接続され
る。マイクロブランチ制御ロジツク50eは「選
択」ラインを介してMUX50fへ接続されてお
り、MUX50fへの「選択」ラインの信号はマ
イクロシーケンサ50eの出力か、又はブランチ
アドレスカウンタ50dの出力の何れかをMUX
50fの出力端子へ接続するのを選択する。
MUX50fの出力端子はマイクロ命令記憶装置
20aの入力へ接続される。
マイクロ命令記憶装置−ナノ命令記憶装置−
ALUパイプラインと関連した本発明に従つた非
操作/事前取り出し装置の動作の機能的な説明は
第5図及び第1図を参照して以下の項で説明す
る。
マシンサイクル2の間で、実行ユニツト
(ALU)30は与えられたマイクロ命令に関連し
た一組のマイクロ命令中のマイクロ命令9を実行
している。従つて、、マイクロ命令9はマイクロ
制御レジスタ40中に記憶されている。条件付き
ブランチマイクロ命令10はマイクロ命令記憶装
置出力レジスタ50c中に記憶されている。マイ
クロ命令11はマイクロシーケンサ50eの中に
記憶されている。ここで、条件付きブランチマイ
クロ命令10の実行の結果に従つて、マイクロ命
令11か又はマイクロ命令200の何れかがマシ
ンサイクル5の間でALUにより実行されること
を想起する必要がある。マシンサイクル1の間
で、マイクロ命令10はマイクロ命令記憶装置2
0aからアクセスされてしまつて、マシンサイク
ル2の始め でマイクロ命令記憶装置出力レジスタ50c中に
記憶されている。マシンサイクル2の間で、マイ
クロ命令10は、レジスタ50cとロジツク50
aとを接続している「マイクロブランチ順位」ラ
インを介してマイクロ命令10が条件付きブラン
チマイクロ命令の順位であることをマイクロブラ
ンチ制御ロジツク50aに通報する。加えて、マ
シンサイクル2の間で、マイクロ命令10の一部
として定義されたマイクロブランチのための代換
えのマイクロプログラムアドレス200が、「ア
ドレスへブランチ」ラインを経て並列に、レジス
タ50cからブランチアドレスカウンタ50dへ
転送される。また、マシンサイクル2の間で、
MUX50bが自身の第1入力端子を選択するよ
うセツトされるので、マイクロ命令記憶装置出力
レジスタ50c中のマイクロ命令10はナノ命令
記憶装置20bをアドレスし、これによりナノ命
令記憶装置に関連するマイクロ命令を選択する。
マシンサイクル3の間で、マイクロ命令10、即
ちマイクロブランチはALU30により実行され
る。このマシンサイクルの間でマイクロ命令10
の実行が開始された時、マイクロ命令11はマイ
クロ命令記憶装置出力レジスタ50c中に記憶さ
れる。然しながら、マイクロブランチ制御ロジツ
ク50aは「選択」ラインを介してMUX50b
の第2入力端子を選択させる。従つて、マイクロ
命令11はナノ命令記憶装置20bをアドレスせ
ず、非操作命令のアドレスがMUX50bの第2
入力端子を介してナノ命令記憶装置20bをアド
レスする。マイクロ命令11はマイクロ命令記憶
装置出力レジスタ50c中に記憶し残される。こ
の時点で同時に、マシンサイクル2の間でマイク
ロ命令200のアドレスでロードされていたブラ
ンチアドレスカウンタ50dがMUX50fの第
2入力端子として選択される。従つて、マイクロ
命令200のアドレスがMUX50fの第2入力
端子を介して、マイクロ命令記憶装置20aへ送
られる。
マシンサイクル4の間で、非操作命令がALU
30により実行される。非操作命令の実行と同時
に、若し、条件付きブランチマイクロ命令の実行
の結果がマイクロ命令200へマイクロブランチ
すべきであることを示したとすれば、「ロード禁
止」ライン上の、マイクロブランチ制御ロジツク
50aからの信号は低位にあり、これにより、マ
イクロ命令200のアドレスを、マイクロ命令記
憶装置出力レジスタ50c中に記憶されているマ
イクロ命令11のアドレスに重ね書きさせる。従
つて、非操作命令の実行の間で、マイクロ命令2
00に関連したナノアドレスはMUX50bを介
してナノ命令記憶装置20bをアドレスし、そし
て、マシンサイクル5の間でALUユニツト30
により実行されるマイクロ命令を検索する。サイ
クル4の間の同じ時点で、ブランチアドレスカウ
ンタ50d中のアドレス200は201に歩進さ
れ、これはマイクロシーケンサ50eへ第2入力
として供給され、従つて、マイクロ命令12のア
ドレスと置換する。かくして、マイクロブランチ
制御ロジツク50a及びブランチアドレスカウン
タ50dの機能は完了し、マイクロシーケンサ5
0eが各マシンサイクルでアドレス201を歩進
しながら通常の動作を続行する。
然しながら、若し、条件付きブランチマイクロ
命令の実行の結果がマイクロ命令200へマイク
ロブランチさせるべきでないことを示したとすれ
ば、「ロード禁止」ライン上の、マイクロブラン
チ制御ロジツク50aからの信号は高位にあり、
これにより、マイクロ命令200のナノアドレス
を、マイクロ命令記憶装置出力レジスタ50c中
に記憶されているマイクロ命令11のアドレスに
重ね書きするのを禁止する。従つて、サイクル4
で非操作命令を実行している間で、マイクロ命令
11に関連しているナノアドレスはMUX50b
を介してナノ命令記憶装置20bをアドレスし
て、マシンサイクル5の間でALU30により実
行されるマイクロ命令を検索する。同時に、マシ
ンサイクル4の間でマイクロシーケンサ50eに
記憶されているマイクロ命令アドレス12は変え
られず(アドレス201で書き重ねられない)、
マイクロ命令記憶装置20aに供給される。動作
は通常の状態で続行される。
F 発明の効果 マイクロブランチ命令を実行することの出来る
パイプラインマイクロプロセッサが設けられてい
る集積回路チツプにおいて、マイクロブランチ機
能を遂行する際に生ずる遅延のマシンサイクル数
をただ1サイクルに止め、なお且つチツプ上の
「土地」の有効な利用を計ることが出来る。
【図面の簡単な説明】
第1図は本発明に従つた非操作/事前取り出し
装置を含むマイクロ命令記憶装置−ナノ命令記憶
装置−ALUパイプラインを示す図、第2図は代
表的なパイプラインマイクロ命令実行システムの
ブロツク図、第3図は第2図のマイクロ命令実行
システムのパイプライン段階を説明するための
図、第4図は本発明に従つた非操作/事前取り出
し装置を使用しない第6図のマイクロ命令実行シ
ステムのパイプライン段階を説明するための図、
第5図は本発明に従つた非操作/事前取り出し装
置を使用したマイクロ命令実行システムのパイプ
ライン段階を説明するための図、第6図は集積回
路チツプ上の利用可能な「土地」の使用を最小限
にするようデザインされ、改良されたマイクロ命
令記憶手段を有する他の型のパイプライン式マイ
クロ命令実行システムのブロツク図である。 10……主メモリ、15……マクロ命令デコー
ドユニツト、20……読み取り専用メモリ
(ROM)、20a……マイクロ命令記憶装置、2
0b……ナノ命令記憶装置、30……演算ロジツ
クユニツト(ALU)、50……非操作/事前取り
出し装置。

Claims (1)

  1. 【特許請求の範囲】 1 主メモリ10と、前記主メモリに記憶された
    マクロ命令によつて指定される順序付けされたマ
    イクロ命令のアドレスを記憶する第1の記憶手段
    20Aと、前記マイクロ命令のアドレスに対応す
    るマイクロ命令を記憶する第2の記憶手段20B
    と、前記第2の記憶手段に接続されてそこから受
    取るマイクロ命令を実行するための実行手段30
    とを有する少なくとも3段階のパイプライン式命
    令実行システムにおいて、 前記実行手段が条件付きブランチのマイクロ命
    令を受取つたか否かに応答して、前記主メモリと
    第1の記憶手段との間、及び前記第1の記憶手段
    と第2の記憶手段の間の接続関係を制御するため
    の制御手段50を配設し、 前記制御手段は、前記実行手段が条件付きブラ
    ンチのマイクロ命令を受取つたことに応答して、
    前記第1の記憶手段からのマイクロ命令アドレス
    が前記第2の記憶手段をアクセスしないように阻
    止すると共に、非操作マイクロ命令を前記第2の
    記憶手段に対して強制的に与え、その非操作マイ
    クロ命令の処理中に前記条件付きブランチのマイ
    クロ命令に後続する次順序のマイクロ命令アドレ
    スの取出しと次順序以外の非順序的な予定のマイ
    クロ命令アドレスの事前取出しを行わせることに
    よつて、前記条件付きブランチのマイクロ命令に
    後続して選択的に実行される2つのマイクロ命令
    が何れも1マシンサイクルの遅延で実行できるよ
    うにしたことを特徴とする、パイプライン式命令
    実行システム。
JP61163943A 1985-10-04 1986-07-14 パイプライン式命令実行システム Granted JPS6285338A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/784,073 US4701842A (en) 1985-10-04 1985-10-04 Method and apparatus for avoiding excessive delay in a pipelined processor during the execution of a microbranch instruction
US784073 1985-10-04

Publications (2)

Publication Number Publication Date
JPS6285338A JPS6285338A (ja) 1987-04-18
JPH0318210B2 true JPH0318210B2 (ja) 1991-03-12

Family

ID=25131265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61163943A Granted JPS6285338A (ja) 1985-10-04 1986-07-14 パイプライン式命令実行システム

Country Status (3)

Country Link
US (1) US4701842A (ja)
EP (1) EP0217023A3 (ja)
JP (1) JPS6285338A (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
US5019967A (en) * 1988-07-20 1991-05-28 Digital Equipment Corporation Pipeline bubble compression in a computer system
US5590293A (en) * 1988-07-20 1996-12-31 Digital Equipment Corporation Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
US5329621A (en) * 1989-10-23 1994-07-12 Motorola, Inc. Microprocessor which optimizes bus utilization based upon bus speed
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5524222A (en) * 1992-03-27 1996-06-04 Cyrix Corporation Microsequencer allowing a sequence of conditional jumps without requiring the insertion of NOP or other instructions
JP3499252B2 (ja) * 1993-03-19 2004-02-23 株式会社ルネサステクノロジ コンパイル装置及びデータ処理装置
US5379442A (en) * 1993-03-31 1995-01-03 Intel Corporation Fast primary and feedback path in a programmable logic circuit
US5928357A (en) * 1994-09-15 1999-07-27 Intel Corporation Circuitry and method for performing branching without pipeline delay
US5619408A (en) * 1995-02-10 1997-04-08 International Business Machines Corporation Method and system for recoding noneffective instructions within a data processing system
US5847929A (en) * 1996-06-28 1998-12-08 International Business Machines Corporation Attaching heat sinks directly to flip chips and ceramic chip carriers
US6924538B2 (en) 2001-07-25 2005-08-02 Nantero, Inc. Devices having vertically-disposed nanofabric articles and methods of making the same
US6643165B2 (en) 2001-07-25 2003-11-04 Nantero, Inc. Electromechanical memory having cell selection circuitry constructed with nanotube technology
US6835591B2 (en) 2001-07-25 2004-12-28 Nantero, Inc. Methods of nanotube films and articles
US6706402B2 (en) 2001-07-25 2004-03-16 Nantero, Inc. Nanotube films and articles
US7259410B2 (en) 2001-07-25 2007-08-21 Nantero, Inc. Devices having horizontally-disposed nanofabric articles and methods of making the same
US7566478B2 (en) 2001-07-25 2009-07-28 Nantero, Inc. Methods of making carbon nanotube films, layers, fabrics, ribbons, elements and articles
US6574130B2 (en) 2001-07-25 2003-06-03 Nantero, Inc. Hybrid circuit having nanotube electromechanical memory
US6911682B2 (en) 2001-12-28 2005-06-28 Nantero, Inc. Electromechanical three-trace junction devices
US6919592B2 (en) 2001-07-25 2005-07-19 Nantero, Inc. Electromechanical memory array using nanotube ribbons and method for making same
US7176505B2 (en) 2001-12-28 2007-02-13 Nantero, Inc. Electromechanical three-trace junction devices
US6784028B2 (en) 2001-12-28 2004-08-31 Nantero, Inc. Methods of making electromechanical three-trace junction devices
US7335395B2 (en) 2002-04-23 2008-02-26 Nantero, Inc. Methods of using pre-formed nanotubes to make carbon nanotube films, layers, fabrics, ribbons, elements and articles
US7560136B2 (en) 2003-01-13 2009-07-14 Nantero, Inc. Methods of using thin metal layers to make carbon nanotube films, layers, fabrics, ribbons, elements and articles
US9043579B2 (en) 2012-01-10 2015-05-26 International Business Machines Corporation Prefetch optimizer measuring execution time of instruction sequence cycling through each selectable hardware prefetch depth and cycling through disabling each software prefetch instruction of an instruction sequence of interest

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1426749A (en) * 1973-06-05 1976-03-03 Burroughs Corp Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets
US4099229A (en) * 1977-02-14 1978-07-04 The United States Of America As Represented By The Secretary Of The Navy Variable architecture digital computer
US4128873A (en) * 1977-09-20 1978-12-05 Burroughs Corporation Structure for an easily testable single chip calculator/controller
US4415969A (en) * 1980-02-07 1983-11-15 Intel Corporation Macroinstruction translator unit for use in a microprocessor
US4373180A (en) * 1980-07-09 1983-02-08 Sperry Corporation Microprogrammed control system capable of pipelining even when executing a conditional branch instruction
GB2081944A (en) * 1980-08-12 1982-02-24 Technology Marketing Inc Microinstruction sequence control
US4390946A (en) * 1980-10-20 1983-06-28 Control Data Corporation Lookahead addressing in a pipeline computer control store with separate memory segments for single and multiple microcode instruction sequences
US4507732A (en) * 1981-10-05 1985-03-26 Burroughs Corporation I/O subsystem using slow devices
JPS60183634A (ja) * 1984-03-02 1985-09-19 Hitachi Ltd マイクロプログラム制御方式

Also Published As

Publication number Publication date
EP0217023A2 (en) 1987-04-08
US4701842A (en) 1987-10-20
EP0217023A3 (en) 1989-07-26
JPS6285338A (ja) 1987-04-18

Similar Documents

Publication Publication Date Title
JPH0318210B2 (ja)
CA1320275C (en) Pipeline bubble compression in a computer system
US5235686A (en) Computer system having mixed macrocode and microcode
EP0114304B1 (en) Vector processing hardware assist and method
EP0138419B1 (en) Central processing unit for a digital computer
US5101341A (en) Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
US6581152B2 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
US5006980A (en) Pipelined digital CPU with deadlock resolution
US5131086A (en) Method and system for executing pipelined three operand construct
JP3242508B2 (ja) マイクロコンピュータ
JPS6058490B2 (ja) 命令ブランチ機構
EP0352082B1 (en) Microinstruction addressing in a pipeline-CPU (operating method, addressing method, memory stack and CPU )
US5097407A (en) Artificial intelligence processor
US4521858A (en) Flexible addressing and sequencing system for operand memory and control store using dedicated micro-address registers loaded solely from alu
US6026486A (en) General purpose processor having a variable bitwidth
US5434986A (en) Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction
US4893235A (en) Central processing unit for a digital computer
US4812970A (en) Microprogram control system
US5590293A (en) Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
JPH031231A (ja) マイクロプログラム制御装置
JPH0640303B2 (ja) デ−タ処理装置
JP2680828B2 (ja) ディジタル装置
US6334179B1 (en) DSP coprocessor having control flags mapped to a dual port section of memory for communicating with the host
US6874080B2 (en) Context processing by substantially simultaneously selecting address and instruction of different contexts
JPS6217773B2 (ja)