JPS5831014B2 - 命令先取り装置 - Google Patents

命令先取り装置

Info

Publication number
JPS5831014B2
JPS5831014B2 JP54136025A JP13602579A JPS5831014B2 JP S5831014 B2 JPS5831014 B2 JP S5831014B2 JP 54136025 A JP54136025 A JP 54136025A JP 13602579 A JP13602579 A JP 13602579A JP S5831014 B2 JPS5831014 B2 JP S5831014B2
Authority
JP
Japan
Prior art keywords
signal
circuit
register
line
instruction
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
Application number
JP54136025A
Other languages
English (en)
Other versions
JPS5559553A (en
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.)
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 JPS5559553A publication Critical patent/JPS5559553A/ja
Publication of JPS5831014B2 publication Critical patent/JPS5831014B2/ja
Expired 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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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 or look ahead
    • G06F9/3802Instruction prefetching

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)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 本発明の技術分野 本発明はディジタル・コンピュータに関し、更に具体的
にはコンピュータが命令コードの使用を要求する前に、
主記憶装置から命令コードを検索する回路に関する。
背景の技術 高パフォーマンス低コストのコンピュータは一般的に高
速マイクロプロセッサを有し、このマイクロプロセッサ
は非常に遅いサイクル速度の主記憶装置を利用する。
主記憶装置は、マイクロプロセッサの他に多数の入出力
チャネルからの多くの独立した要求を処理しなげればな
らず、動的記憶装置においては主記憶装置の内容を維持
するためリフレッシュ論理回路を処理しなげればならな
い。
大容量主記憶装置を合理的なコストで実現するために、
サイクル・タイムは比較的低速度でなげればならない。
主記憶装置はマイクロプロセッサと非同期的に動作し、
従ってメモリ・アクセス要求は各要求後の時間量を変化
させることによって戻される。
次のユーザー命令を必要とする時間に、マイクロプロセ
ッサが主記憶装置へアクセスするようなコンピュータ・
システムは、マイクロプロセッサ時間のかなりの部分を
浪費する。
それは主記憶装置の低速動作のため、又は他の源による
主記憶装置の要求と干渉を生じる可能性があるためであ
る。
主記憶装置がメモリ・アクセス要求を処理している間に
、しばしば多くのマイクロプロセッサ・サイクルが無駄
になる。
従って、比較的軽微な活動時間に主記憶装置へアクセス
し、後続サイクルでマイクロプロセッサによって動作さ
れるユーザー命令を抽出しておくことのできるマイクロ
プロセッサ先取り回路が必要となる。
更に、マイクロプロセッサによって命令が利用されるま
で、主記憶装置から検索された命令をバッファ記憶領域
に保持できる必要がある。
本発明の開示 本発明は、ユーザー命令が連続的に記憶されている主記
憶装置へアクセスするディジタル・コンピュータにおけ
る先取り論理回路に関する。
コンピュータはマイクロ命令の集合を含む制御記憶装置
を有する。
これらマイクロ命令は、コンピュータで実行するためユ
ーザー命令によって選択的に呼出される。
本発明の先取り論理回路は、コンピュータで命令が使用
される前に、主記憶装置から命令コードを検索する。
先取り論理回路は第1及び第2のレジスタを含み、これ
らレジスタは主記憶装置から命令コードを受取り、それ
をコンピュータへ入力するまで保持する。
命令アドレス・レジスタは、主記憶装置から検索すべき
次の命令のアドレスを維持し、アドレス更新のために主
記憶検索動作によって増進される。
レジスタ中に記憶された命令コードの有効性を表示する
ため、レジスタのための状態ラッチが設けられる。
第2レジスタ中の命令は第2レジスタへシフトされ、第
2レジスタは命令をコンピュータへ与える。
レジスタを充填するために実行されねばならないメモリ
・アクセス動作の数をカウントするカウンタが設けられ
る。
マイクロ命令の成るものは、先取り論理回路を能動化す
る指令を発生し、必要に応じてバッファを充填するよう
に進行する。
先取り論理回路は、カウンタによって指示された数だけ
メモリ・アクセス動作を実行し、命令アドレス・レジス
タによって指示された主記憶ロケーションにアクセスし
て順次の命令レジスタへ転送する。
ブランチ・マイクロ命令がコンピュータによって実行さ
れるべきであれば、先取り論理回路はレジスタ中に記憶
された命令コードを無効にし、カウンタをセットして複
数の主記憶アクセス動作が実行されねばならないことを
指示する。
この充填動作は、マイクロ命令から充填指令を受取ると
直ちに開始される。
ブランチ命令アドレスが命令アドレス・レジスタへ与え
られ、ブランチ先ロケーションにある命令がコンピュー
タ処理のために命令レジスタへ転送される。
第1図は本発明を実施したコンピュータの略図を示す。
第1図に示されたコンピュータは仮想アドレス変換器1
0、主記憶装置12、マイクロプロセッサ14を含む。
主記憶装置のアクセス・タイムはマイクロプロセッサ1
4のサイクル・タイムよりもかなり遅い。
更に、主記憶装置12は、定期的にリフレッシュされね
ばならないようにダイナミックな設計になっている。
主記憶装置12はマイクロプロセッサ14と非同期的に
動作する。
通常の動作において、コンピュータの操作者は主記憶装
置12へ高レベル命令(マクロ命令)及びオペランドの
如きデータを与える。
高レベル命令及びオペランドは、マイクロプロセッサ1
4からの指令に応答して、主記憶装置からフェッチされ
る。
次いで、高レベル命令はマイクロプロセッサ内で実行さ
れる。
指令又は他のデータは、マイクロプロセッサ14から主
記憶装置12へ仮想アドレス変換器10を使用して転送
される。
仮想アドレス変換器10の主たる機能は、マイクロプロ
セッサ14から受取った仮想アドレスを、主記憶装置1
2中のデータへアクセスする場合に使用される実アドレ
スへ変換することである。
高レベル命令の実行は、通常■段階及びE段階と呼ばれ
る2つの段階で、マイクロプロセッサ中で行なわれる。
■段階は、E段階の直前に起る。■段階では、マイクロ
プロセッサは複数のマイク口命令を実行し、高レベル命
令によって指定された演算動作又は論理動作の実行準備
を行なう。
例えば■段階において、高レベル命令がデコードされ、
主記憶装置12からオペランドがフェッチされ、マイク
ロプロセッサ14へ転送される。
E段階において、高レベル命令によって指定されたオペ
ランド上で演算又は論理動作が実行される。
マイクロプロセッサ14は高レベル命令を受取るための
命令バッファ(IB)レジスタ16及び命令ストリーム
(Is )レジスタ18を含む。
IBレジスタ16は命令を受取り、それを並列シフトで
ISレジスタ18へ転送する。
レジスタ20.22,24,26は主記憶装置12から
オペランドを受取る。
レジスタ16,1B、20゜22.24,26はマイク
ロプロセッサ中で後に使用する情報を一時的に保持する
バッファとして機能する。
主記憶装置12に対してマイクロプロセッサ14を早く
動作させるためバッファが必要である。
高レベル命令によって指定された演算又は論理動作を実
行するために、オペランドは演算論理ユニット(ALU
)28ヘゲートされる。
マイクロプロセッサにおける高レベル命令の実行、及び
マイクロプロセッサの一般的動作は、主として制御記憶
装置30中に記憶されたマイクロ命令によって制御され
る。
第1図は概略的なものであり、本発明の完全な理解を助
けるためにコンピュータ動作の概略を与えるものである
説明を明瞭にするために、成る通信線は太線で表わされ
る。
それはこれらの線が主記憶装置から受取られた情報に直
接対応するデータを搬送することを示す。
従って、太線はオペランド又は高レベル命令データの成
るフィールドを搬送する。
コンピュータ構成要素間の細い線は、マイクロプロセッ
サ14の動作を制御する信号を搬送する制御線を表わす
今後、太線はデータ・パスと呼び、細線は制御線と呼ぶ
ことにする。
1本のデータ・パス及び1本の制御線は、実際には1つ
又はそれ以上の導通路を示すことに注意されたい。
主データ・パス32は主記憶装置へ接続され、情報がマ
イクロプロセッサ14へ転送されるデータ・パスを表わ
す。
IBレジスタ16(32ビツトのデータ及び4ビツトの
パリティを含む36ビツト・レジスタ)は、主記憶装置
12からデータ・パス34を介して高レベル命令を受取
る。
IBレジスタ16からのデータは、データ・パス38を
介してISレジスタ18へスイッチ又は転送される。
ISレジスタ18は36ビツト・レジスタである。
レジスタ16及び18は、主記憶装置12からの高レベ
ル命令を、ALU28で使用される前に受取るよう機能
する。
IBレジスタ16のデータ出力はデータ・パス38を介
してパリティ・チェック回路40へ印加される。
パリティ・チェック回路40は、IBレジスタ16によ
って受取られた情報のエラーを検出する。
もしパリティ・エラーが検出されると、回路40はエラ
ー信号を制御線42を介してOR回路44へ印加する。
IBレジスタ16及びISレジスタ18の動作は、後に
詳細に説明する。
ISレジスタ18はデータ・パス48を介してセレクタ
46へ接続される。
制御信号に応答して、セレクタ46はISレジスタ18
中に記憶されたデータのフィールドを選択し、データ・
パス50を介してALU2Bの右方入力51ヘデータを
シフトする。
ALU28は一時に1個又は2個のバイトしか処理する
ことができないから、ALU28中で処理するためには
、ISレジスタ18から1バイト又は2バイトのフィー
ルドを選択することが必要である。
セレクタ46によって選択されるデータ・フィールドは
、Oかも3までを計数する2ビツト命令(I)ポインタ
52によって制御される。
■ポインタ52の出力はセレクタ4Gへ印加され、IS
レジスタ18中の4バイトのうちいずれの1バイト又は
2バイトが選択され、データ・パス50を介してALU
2Bヘゲートされるかが指定される。
高レベル命令は2バイト、4バイト、又は6バイトの長
さを有するから、ISレジスタ18は高レベル命令全体
を含むには十分に大きいとは云えない。
従って、後にISレジスタ18ヘシフトされる高レベル
命令を保持するため、IBレジスタ16が設げられる。
ISレジスタ18とIBレジスタ16とは組合せられて
、マイクロプロセッサ14の残りの構成要素に対して8
バイト・レジスタの如き外観を呈する。
5A−Llレジスタ20及び5A−L2レジスタ22は
、第1図においてレジスタ16及び18の左方にある。
レジスタ20及び22は共に36ビット(32ビツトの
データ及び4ビツトのパリティ)記憶レジスタである。
これらレジスタの主たる目的は、主記憶装置12からオ
ペランドの如きデータをバッファすることである。
オペランドは主記憶装置12からデータ・パス53を介
してレジスタ200Å力へ印加される。
レジスタ20の出力はデータ・パス54によってパリテ
ィ・チェック回路56、レジスタ22、セレクタ58へ
接続される。
パリティ・チェック回路56はレジスタ20中のエラー
・データを検出し、制御線60を介してORゲート44
ヘエラー信号を選択的に印加する。
セレクタ58は、レジスタ20中に記憶されるデータの
4バイトのうち1バイトを、ALU28の左方人力61
ヘデータ・パス62を介してゲートするように動作する
セレクタ58は前述したセレクタ46と同じように機能
する。
2ビツトのAレジスタ64は0から3までを計数し、レ
ジスタ20中に記憶された4バイトのうちいずれの1バ
イトが左方のALU入力61ヘゲートされるべきかを決
定する。
5A−L2レジスタ22中に記憶されたデータは、デー
タ・パス66を介して主記憶装置12へ転送されてよい
更に、レジスタ22中に記憶されたデータは、データ・
パス68を介して制御記憶装置30へ印加されてよい。
この構成において、マイクロ命令又は他ノデータは、主
記憶装置12中に記憶されてよく、レジスタ20及び2
2を介して制御記憶装置30へ転送されてよい。
従って、使用頻度の少ないマイクロ命令は、主記憶装置
12中に記憶され、まれにマイクロプロセッサ14中で
使用するために制御記憶装置30へ転送されてよい。
第1図において、5B−Llレジスタ24及びS B
−L 2レジスタ26はレジスタ16及び18の右方に
置かれている。
レジスタ24及び26は36ビツト(32ビツトのデー
タ及び4ビツトのパリティ)レジスタであり、それぞれ
レジスタ20及び22に類似した機能を実行する。
オペランド及びデータは、主記憶装置12からS B−
L ルジスタ24ヘデータ・パス70を介して転送され
てよい。
レジスタ24の出力はデータ・パス76を介してパリテ
ィ・チェック回路72、レジスタ26、セレクタ74へ
接続される。
パリティ・チェック回路72はパリティ・チェック回路
40及び56と実質的に同様なものである。
パリティ・チェック回路72はレジスタ24中のエラー
情報を検出し、制御線78上にエラー信号を発生する。
制御線78はORゲート44の入力へ接続される。
セレクタ74はセレクタ46及び58と同じように機能
する。
セレクタ74はレジスタ24中に記憶されたデータの4
バイトのうち1バイトを選択し、選択されたバイトは右
方ALU人力51ヘデータ・パス80を介してゲートさ
れる。
2ビツトのBレジスタ82はOから3までを計数し、B
レジスタ82の出力はセレクタ74へ接続されて、レジ
スタ24中のデータの4バイトのうちいずれのバイトが
ALU28ヘゲートされるべきかを決定する。
5B−L2レジスタ26は5A−L2レジスタ22と同
じように機能する。
5B−L2レジスタ26の出力は、データ・パス77を
介して制御記憶装置30へ印加され、データ通路79を
介して主記憶装置12へ印加される。
Mレジスタ84は第1図においてレジスタ24及び26
の右方に示される。
Mレジスタ84は汎用の8ビツト・ワーク・レジスタで
あり、その入力はデータ・パス86によってALU28
の出力87へ接続される。
Mレジスタ84の出力はデータ・パス88を介してAN
D回路90へ接続される。
AND回路90は8個の個別的ANDゲートを表わし、
各ANDゲートはMレジスタ84の各ビットに対応して
いる。
AND回路90はMレジスタ84の出力を右方ALU入
力51ヘデータ・パス92を介して選択的にゲートする
従って、Mレジスタ84はALU28に対して源及び宛
先として使用されてよい。
Mレジスタ84の1つの使用法は、オペランド・フィー
ルドの1個の主記憶装置アドレスを計算するのに必要な
データを記憶することである。
レジスタ16,20,24もALU出力87へ接続され
ている。
IBレジスタ16はALU28からデータ・パス89を
介してデータを受取ってよく、IBレジスタからのデー
タはISレジスタ18及びセレクタ46を介して右方A
LU入力51へ転送される。
5A−Llレジスタ20はALU28からデータ・パス
91を介してデータを選択的に受取り、セレクタ58を
介して左方ALU入力61ヘデータを転送してよい。
同様に、S B −L ルジスタ24はデータ・パス9
3を介してALU28からデータを選択的に受取ってよ
く、セレクタ74を介してALU入力51ヘデータを転
送してよい。
ここで第1図の左側を参照すると、そこにはILレジス
タ95及びIARレジスタ97が示される。
これらレジスタはそれぞれデータ・パス99及び94を
介してALU28の出力87からデータを受取る。
ILレジスタ95は3ビツト・レジスタであり、マイク
ロプロセッサ中で実行されている高レベル命令のバイト
長を含む。
IARレジスタ97は、通常マイクロプロセッサ14中
で実行される次の高レベル命令のアドレスを計算するデ
ータを含む。
ILレジスタ95及びIARレジスタ97の出力は、加
算器101中で選択的に加算され、その結果はIARレ
ジスタ97へ戻される。
更に、ILレジスタ95の出力はデータ・パス98を介
j7て左方ALU入力61へ印加されてよく、IARレ
ジスタ97の出力はデータ・パス100を介してAND
回路102へ印加される。
AND回路102は、実際にはデータ・パス104を介
してIARレジスタ97の出力を左方ALU入力61へ
選択的に印加する16個の別個のANDゲートを表わす
Gレジスタ106はマイクロプロセッサ14の各種の動
作を制御するために使用される特別な制御ラッチの集合
である。
Gレジスタ106のゼロ・ビットは、マイクロプロセッ
サ14中でエラーが生じた場合に、命令が再実行可能な
時点を決定する。
Gレジスタ106のビット4及び6は、後に説明するレ
ジスタへの入力として使用される。
Gレジスタ106の入力はデータ・パス108によって
ALU出力87へ接続され、レジスタ106の出力はデ
ータ・パス110を介してAND回路112へ印加され
る。
AND回路112は、8個の独立したANDゲートを表
わし、Gレジスタ106中のデータを左方ALU入力6
1ヘデータ・パス114を介して選択的にゲートする。
Lレジスタ116は、データ・パス118を介してAL
U28の出力87へ接続され、通常特定ノ高レベル命令
の実行中に使用されるべきオペランドの長さを記憶する
Lレジスタ116は8ビツト・レジスタ又は2個の独立
した4ビツト・レジスタとして使用されてよい。
2個のレジスタとして使用される時、Lレジスタ116
は2つのオペランド長を記憶してよい。
Gレジスタ106のビット6は、Lレジスタ116が1
個の8ビツト・レジスタとして使用されるか、又は2個
の4ビツト・レジスタとして使用されるかを決定する。
もしLレジスタ116が2個の4ビツト・レジスタとし
て使用されるべきことをGレジスタ106のビット6が
指定すると、Lレジスタがマイクロ命令によって源とし
て選択される時、L28ラッチ120はレジスタ中の2
個の4ビツト・フィールドのいずれがゲートされるべき
かを決定する。
Lレジスタ116の出力はデータ・パス122を介して
セレクタ124へ接続される。
セレクタ124はLレジスタ116の所定のフィールド
を左方ALU入力61ヘデータ・パス126を介し1
てゲートする。
Pレジスタ128は8ビツト・レジスタであり、データ
・パス130によってALU出力87へ接続される。
それは主として後に説明する局部記憶装置の間接アドレ
シングを行なうために使用される。
Pレジスタ128の出力はデータ・パス132を介して
セレクタ134へ印加される。
セレクタ134はPレジスタから成るデータ・フィール
ドを選択し、そのデータ・フィールドを左方ALU入力
61ヘデータ・パス136を介して印1 加する。
局部記憶装置138は128バイトより成り、データ・
パス140を介してALU出力87へ接続される。
局部記憶装置138の各バイトは読取り及び書込みのた
めに個別的にアドレス可能である。
局部記憶装置138へのアドレスは後述するような方法
で直接に発生されるか、又は間接的にPレジスタ128
を使用して発生される。
局部記憶装置138のアドレスの高順位ビットは、成る
条件の下でGレジスタ106のビット4によって決定さ
れる。
局部記憶装置138の出力はデータ・パス142を介し
てAND回路144へ印加される。
AND回路144は局部記憶装置138からのデータを
左方ALU入力61ヘデータ・パス146を介して印加
する。
AND回路144はデータなALU2Bヘゲートする複
数個の独立したANDゲートを表わす。
ALU28は主記憶装置12から与えられたデータ上で
演算論理動作を実行する。
出力をALU入力51又は61のいずれかへ接続された
前述のレジスタは、ALU28のデータ源として選択さ
れてよい。
同様に、入力をALU出力87へ接続されたレジスタは
ALUからのデータの宛先となってよい。
2個のレジスタからのデータはマイクロプロセッサ14
0マイクロ命令によって選択され、処理のためにALU
を通る。
ALUはバイト上で論理及び2進演算動作を実行する。
ALU28の機能は直接にマイクロ命令で指定されてよ
く、又はデータ・パス150によってALU2Bの出力
へ接続された入力を有するFレジスタ148によって間
接的に指定されてよい。
Fレジスタ148は、制御線152を介してALU 2
8へ印加される信号によりALU28の動作を制御して
よい。
演算論理動作を実行する外に、ALU2Bはデータ・パ
スとして使用されてよい。
この機能を実行するに当り、ALU入力51又は61で
受取られたデータはALU28を介してALU出力87
へ通される。
ALU28がデータ・パスとして使用される目的は、選
択された能力又は機能を達成するため、必要なデータ・
パスの数を減少することによってコストを軽減するため
である。
8ビツトのSレジスタ154はデータ・パス156を介
してALU28の出力87へ接続され、Sレジスタの出
力はテ゛−タ・パス158を介して左方ALU入力61
へ接続される。
Sレジスタ154はALU条件コード及び一時的マイク
ロプログラム・フラグを含む。
ALU条件コードは制御線160上をALU28からS
レジスタ154へ印加される。
Sレジスタ154のビット0〜3は通常フラグのために
使用され、ビット4〜γは通常ALU条件コードを含む
ために使用される。
マイクロプログラムはSレジスタ15408個のビット
の各々に基づいてブランチすることができる。
ネキスト・アドレス論理装置162はデータ・パス16
1を介してALU28の出力87へ接続される。
マイクロプロセッサ14の各種の部分から受取られたデ
ータに応答してネキスト・アドレス論理装置162はネ
キスト・アドレス・コードを形成する。
このコードは後に現在実行されているマイクロ命令の実
行に続いて実行されるべきマイクロ命令を制御記憶装置
30から選択するために使用される。
ネキスト・アドレス論理装置162の出力データは、制
御線165を介して32ビツトの制御記憶アドレス・レ
ジスタ(C8AR)164へ印加される。
アドレス・レジスタ164ヘロードされたアドレスは制
御記憶装置30中に記憶されたマイクロ命令を選択する
このマイクロ命令は制御記憶出力レジスタ(C8OR)
166へロードされる。
出力レジスタ166は32ビツト・レジスタであり、制
御記憶装置30中の各制御ワードは32ビツトの長さで
ある。
制御記憶装置30の別個の部分(又は独立した部分)は
異なった速度で動作し、それによってマイクロプロセッ
サ14の動作速度は、制御記憶装置30のいずれの部分
が特定の時間に使用されているかに従って制限される。
更に、前述した如くマイクロ命令は、主記憶装置12か
らレジスタ22及び26を介して制御記憶装置30へ転
送されてよい。
制御記憶出力レジスタ166の成るフィールドは制御線
168を介してネキスト・アドレス論理装置162へ印
加され、かつデータ・パス172を介してマイクロ命令
解読兼制御ユニット170へ印加される。
制御ユニット170は制御線174を介してネキスト・
アドレス論理装置162ヘフオーマツト信号を印加する
フォーマット信号は現在実行されているマイクロ命令の
種類又はフォーマットを示すデータをネキスト・アドレ
ス論理装置162へ転送する。
アドレス・レジスタ164ヘロードされるネキスト・ア
ドレス・コードは、ネキスト・アドレス論理装置162
中で制御線168及び174上で受取られるデータ、及
びデータ・パス161上で受取られるデータから選択的
に形成される。
制御ユニット170は、Bレジスタ82中の値を増進す
るため制御線116上にB制御信号を印加し、それによ
ってセレクタT4は5B−Llレジスタ24中の次のバ
イトを選択することができる。
セレクタ74がゲート制御信号を受取る時、レジスタ2
4中の選択されたバイトはALU28ヘゲートされる。
右方ALU源信号は選択されたレジスタからALU28
の右方入力へデータをゲートするため制御線178上に
発生される。
右方ALU源信号はAND回路90、セレクタ74又は
セレクタ46を能動化し、それぞれMレジスタ84、S
B−L ルジスタ24又はISレジスタ18からのデ
ータをALU28の右方入力51ヘゲートする。
一時に1個だけのレジスタが右方ALU入力51ヘゲー
トされることに注意されたい。
制御ユニット170は■ポインタ52中の値を増進する
ために制御線180上に■制御信号を発生する。
■ポインタの増進は、Bレジスタ82に関して説明した
のと同じようにして、ISレジスタ18中の次のバイト
をセレクタ46によって指定又は選択せしめる。
直接ALU機能信号は、ALU28の演算論理機能を決
定するために、制御線182上に発生される。
直接ALU機能信号によって選択されてよい1つの機能
は、Fレジスタ148中で指定された機能をALU28
によって実行させることである。
従って、直接ALU機能信号はALU28の機能を直接
指定するか、又はFレジスタ148を介して機能を間接
的に指定してよい。
制御ワード発生信号は制御ワード170によってデータ
・パス184上に発生され、左方ALU入力61へ印加
される。
ALU28は制御ワード発生信号を出力87へ通し、デ
ータ・パス150を介してFレジスタ148へロードす
る。
このようにしてFレジスタ148は、ALU28の機能
を制御するため制御ユニット170によって条件づゆら
れる。
A制御信号は、Aレジスタ64中の値を増進するために
、制御ユニット170によって制御線186上に発生さ
れる。
Aレジスタ64が増進されると、セレクタ58は5A−
Llレジスタ20中の次のバイトを指定又は選択する。
セレクタ58が能動化される時、選択されたバイトはA
LU28の左方人力61ヘゲートされる。
制御線188上では、制御ユニット170はSレジスタ
発生信号を発生する。
この信号はSレジスタ154中のビット0〜3をロード
する。
LSR直接アドレス信号は、局部記憶装置138を直接
にアドレスするため、制御線190上を転送される。
制御線192上に発生されたL28ランチ制御制御味、
L28ランチの状態を制御するため、L28ラッチ12
0へ印加される。
Gレジスタ106のビット0 、4 、6の状態を決定
するために、Gレジスタ・ビット制御信号が制御ユニッ
ト170によって制御線194上に発生される。
制御線196上にはIAR増進信号が発生される。
この信号は加算器101へ印加され、ILレジスタ95
中のデータをIARレジスタ97中のデータへ加算し、
その結果をIARレジスタ97に置く。
制御ユニット170はマイクロ命令から複数個の解読指
令を発生し、制御線197を介してこれらの指令を主記
憶インターフェイス制御装置212へ印加する。
制御ユニット170は、1個のレジスタのデータを左方
ALU人力61ヘゲートするために、制御線198上に
左方ALU源信号を発生する。
右方ALU入力51と同じように、一時に1個だけのレ
ジスタが左方ALU入力61ヘゲートされてよい。
左方ALU源信号はAND回路102゜112.144
又はセレクタ124,134゜58へ印加される。
この構成において、制御ユニット170は次の構成要素
の1個からALU28の左方人力61ヘデータをゲート
するIARレジスタ97、Gレジスタ106、Lレジス
タ116、Pレジスタ128、局部記憶装置138、S
ALルジスタ20゜ 記憶指令信号は制御ユニット170から制御線200を
介して仮想アドレス変換器10及びインターフェイス制
御装置212へ印加される。
そのような記憶指令信号は、マイクロプロセッサ14中
で使用するための高レベル命令、オペランドその他のデ
ータを主記憶装置12からフェッチする場合の制御信号
となる。
マイクロプロセッサ14の動作は主として制御記憶装置
30からのマイクロ命令によって制御されることが分る
このマイクロ命令はマイクロ命令解読兼制御ユニット1
70中で解読される。
制御ユニット170は本発明の重要な部分を構成し、マ
イクロプロセッサ140安価で効率的かつ柔軟性ある動
作を実行する論理ユニットである。
第1図に続く図面を参照しつつ、本発明に関連したマイ
クロ命令解読兼制御ユニット170を後に詳細に説明す
る。
タイミング・ユニット202は複数のクロック信号を発
生する。
これらの信号は線204を介して転送される。
更にタイミング・ユニット202は制御線206上に第
1半サイクル信号を発生する。
この信号は制御ユニット170によって受取られる。
成る種のマイクロ命令の実行にあたっては、1個のマイ
クロ命令の実行中に同一のデータ・パス又は制御線を2
度使用することが望まれるかも知れない。
選択されたデータ・パスはマイクロ命令実行サイクルの
初めの半分で第1の機能のために使用され、終りの半分
で第2の機能のために使用される。
第1半サイクル信号は、制御ユニット110に対して最
初の半サイクルの終りを示し、それによって1つの実行
サイクル中、1本のデータ・パス又は制御線を2つの別
個の目的又は機能のために使用することを可能ならしめ
る。
短サイクル信号は制御ユニット170からタイミング・
ユニット202へ制御線208を介して印加され、実行
されている特定のマイクロ命令が通常のマイクロ命令の
実行サイクルよりも短い実行サイクルを有することを示
す。
短サイクル信号に応答して、タイミング・ユニット20
2は実行サイクルごとに少数のタイミング・クロック信
号を発生する。
ネキスト・アドレス論理装置162は制御線210を介
してタイミング・ユニット202へ低速制御記憶信号を
印加する。
この低速制御記憶信号はタイミング・ユニットをして実
行サイクル当り多数のタイミング・クロック信号を発生
せしめる。
マイクロ命令が制御記憶装置30の低速部分からフェッ
チされつつある時、この長いサイクルを発生することが
必要である。
タイミング・ユニット202によって発生される2つの
他の制御信号は出力レジスタ166を順序づげるための
C8ORロード信号と、制御記憶装置30へ接続された
カード選択信号である。
制御ユニット170、タイミング・ユニット202、仮
想アドレス変換器10、主記憶装置12から受取られた
信号に応答して、主記憶インターフェイス制御装置21
2はマイクロプロセッサ14と主記憶装置12との間の
インターフェイスを制御する。
マイクロ命令アドレス指令は主記憶インターフェイス制
御装置212によってネキスト・アドレス論理装置16
2への制御線213上に発生される。
次の構成要素へデータをロードするために、ロード信号
が制御線214上に選択的に発生される。
5A−Llレジスタ20.5AL2レジスタ22、IB
レジスタ16、ISレジスタ18.5B−Llレジスタ
24.5BL2レジスタ26o同一のデータを2個以上
のレジスタヘロードすることが望まれる場合を除いて、
一時にレジスタ16 、20 、24の1個のみが主記
憶装置12からデータをロードされるべきであることが
解る。
レジスタ16,20,24は主記憶装置12からマイク
ロプロセッサ14への同一の主データ・パス32を共有
する。
同様に、一時にレジスタ16,20,2401個のみが
ALU出力87からロードされるべきである。
主記憶インターフェイス制御装置212は線200を介
して制御ユニット170かも記憶指令を受取り、制御線
216を介して主記憶装置12からデータ準備完了信号
を受取る。
制御信号は線218を介して仮想アドレス変換器10か
らインターフェイス制御装置212によって受取られ、
複数のクロック信号は制御線204上で受取られる。
データ準備完了信号は、データが主記憶装置12の出力
でマイクロプロセッサ14へ転送される準備が完了して
いることをインターフェイス制御装置212へ知らせる
線218上の制御信号は、主記憶装置のフェッチ動作が
完了したのか、又は記憶動作が完了したのかを知らせる
もしフェッチ動作の完了であれば、線218上の制御信
号はレジスタ16,20,240いずれがデータを受取
るべきかを示す。
線218上の他の制御信号は、仮想アドレス変換器10
中で変換が完了したこと、及び主記憶装置へのアクセス
が開始されていることを示す。
更に、線218上の制御信号は、仮想アドレス変換器1
0中の完全な変換がなされ得ないことを示すことができ
る。
命令バッファ充填(FI B )要求信号は、IBレジ
スタ16をロードするために、インターフェイス制御装
置212により仮想アドレス変換器10へ発生される。
主記憶インターフェイス制御装置212は制御線220
を介してORゲート44から主記憶エラー信号を受取る
主記憶エラー信号は、エラー又は無効のデータがパリテ
ィ・チェック回路56540.72によって検出された
時に発生される。
主記憶エラー信号に応答して、インターフェイス制御装
置212はマイクロプロセッサ14がエラー・データを
用いて動作するのを防止する。
最後に、主記憶インターフェイス制御装置212は、タ
イミング・ユニット202へ接続された制御線222上
に停止信号を発生する。
この停止信号は、タイミング・ユニット202をして、
マイクロ命令の実行に必要なりロック・タイミング信号
の発生を停止させる。
停止信号の目的は、成る条件の下でマイクロ命令の実行
を一時的に停止することである。
マイクロ命令解読兼制御ユニット170は第2図に詳細
に示される。
制御記憶出力レジスタ166中に記憶されたマイクロ命
令は2つの部分に分割される。
第1の部分はフォーマット解読器230によって使用さ
れ、第2の部分は複数の解読ユニットへの入力となる。
第2部分を受取るユニットは源解読器232、宛先解読
器234、状態解読器236、記憶制御解読器238を
含む。
フォーマット解読器はフォーマット信号を源解読器23
2、宛先解読器234、状態解読器236、記憶制御解
読器238へ転送する。
源解読器232はレジスタ16,20,22゜24.2
6からの命令又はデータをゲートするため、複数の指令
を線178上に発生する。
宛先解読器234は一部の宛先信号を線242゜244
.246上に発生する。
これらの信号は入力線を介してデータ又は命令を受取る
ようにレジスタ16 、20 、24を能動化する。
記憶制御解読器238は、第1図で一般的に線200と
して示される制御線上に複数の主記憶指令を発生する。
具体的な指令としては、レジスタ20(SA−Ll)へ
の主記憶(MS )読出し、レジスタ24(SB−Ll
)への主記憶読出し、レジスタ22(SA−L2)から
の主記憶書込み、レジスタ26(SB−L2)からの主
記憶書込み、レジスタ20及び22への8バイト読出し
、レジスタ24及び26への8バイト読出しがある。
IBレジスタ16への主記憶読出しを示すため、未決ア
クセス信号が記憶制御解読器238によって発生される
記憶制御解読器238によって発生された指令の各々は
、線200を介して仮想アドレス変換器10へ記憶指令
として与えられる。
ブリフェッチ停止回路250は主記憶インターフェイス
制御装置212の一部である。
この回路への入力は線252上の未決アクセス・ラッチ
(L)2信号、線254上のノット■Sレジスタ有効(
VI S )信号を含む。
命令バッファ充填(FIB)要求信号は線219上をブ
リフェッチ停止回路250へ転送される。
最後の人力は、線258上を回路250へ転送される主
記憶ビジィ1信号である。
これら信号の機能は後に説明する。ブリフェッチ停止回
路250は、線200及び線252上の信号を入力とし
て有するAND回路260を含む。
第2のAND回路262は第1人力として線178(指
令信号群)からの命令ストリーム(IS)レジスタ源信
号を有し、第2人力として線254上の信号を有する。
第3のAND回路264は第1入力として宛先解読器2
34によって発生された線242上の命令バッファ(I
B)レジスタ宛先指令を有し、第2人力としてOR回路
266の出力を有する。
OR回路266は線219上の信号を与えられる。
OR回路266への第2人力は線258上の主記憶ビジ
ィ1信号である。
AND回路260,262゜264の各々の出力はOR
回路268の入力の1つへ接続される。
OR回路268は線222上にブリフェッチ停止信号を
発生する。
この停止信号は第1図に示されるマイクロプロセッサ1
4の動作を中断する。
線222上のブリフェッチ停止信号に応答するコンピュ
ータの動作を後に詳細に説明する。
状態解読器236は、成る種のマイクロ命令が制御記憶
出力レジスタ166中にある時、一群の出力信号を発生
する。
そのような信号としては線271上の・・−フワード・
モード信号、線272上のリセット・イン・ユース(R
INS)信号、線273上のI+1信号、線274上の
I+2信号、線275上のFIB状態制御信号がある。
線242上のIB宛先信号は制御線197中の線271
−275上の信号と共に伝送される。
これら信号を利用する動作について後に説明する。
本発明のブリフェッチ回路は第3図のブロック図で示さ
れる。
ブリフェッチ回路は第1図に示される主記憶インターフ
ェイス制御装置212の一部として含まれる。
ブリフェッチ回路は、主記憶装置12ヘアクセスするに
は時間を必要とするにも拘らず、主記憶装置からALU
28への命令の流れを最小の遅延で維持するように、I
B及びISレジスタ16及び18の動作を制御する。
第3図は命令ポインタ回路282を含む。
これはISレジスタ18中に記憶された命令の4バイト
のうちいずれのバイトが次にALU28へ転送されるべ
きかを指示する。
ポインタ回路282は線274上のI+2信号によって
2バイトだけ増進される。
I+2信号は所与のマイクロ命令の指令に基づいて状態
解読器236によって発生される。
他方、成る種のマイクロ命令は線273上のI+1を発
生することができる。
これはポインタ回路282を1バイトだけ増進する。
命令ポインタ回路282はリング・カウンタとして機能
し、それが最大状態に達した時ゼロへ循環的にバックす
る。
オーバフロー検出回路284はポインタ回路282を監
視し、ポインタ回路がその最大値から最小値へ戻る時に
命令ポインタ巻帰り信号(IWRAP)を発生する。
巻帰り信号は線286上に発生される。
回路282及び284は一緒になって第1図の命令(I
)ポインタ52を構成する。
IB及びISレジスタ16及び18には有効ラッチがつ
いており、このラッチは、レジスタ中の命令が有効であ
る時にセットされ、無効である時にリセットされる。
これらのラッチは命令レジスタ有効ラッチ回路288中
に含まれる。
この回路への第1人力はOR回路44から来る線220
上の主記憶エラー信号である。
この信号は、主記憶転送動作中にパリティ・エラー(無
効データ)が検出された時に能動化される。
第2の人力は線216上のデータ準備完了信号である。
この信号は、データが検索されレジスタへ転送される準
備が終った後、主記憶装置12によって発生される。
第3の入力は線286上の信号であるっ最後の入力はリ
セット信号であり、これは線252上の信号である。
命令レジスタ有効ラッチ回路288は出力として線25
4上のノットVIS信号、線294上のIBレジスタ1
60−ド信号、線296上のISレジスタ180−ド信
号、線298上の「vIS及びIWRAPJ信号、線3
00上の「vIB及びIWRAPJ信号を発生する。
更に第3図のブリフェッチ論理回路は命令バッファ充填
カウンタ302を含む。
カウンタ302はIB及びISレジスタ16及び18を
充たすために発生されねばならない主記憶指令の数を指
示する。
カウンタ302への第1人力は線304上の「2へのセ
ット」指令である。
これはカウンタをその最大値2ヘセツトする。
線306上には増進指令が与えられ、線308a上には
逓減指令が入力される。
線308a上の逓減指令は仮想アドレス変換器(VAT
)命令バッファ充填(FIB)リセット指令である。
この指令は、アドレス変換が成功裏に完了した時、第1
図に示される仮想アドレス変換器10によって発生され
る。
カウンタ302の状態をゼロヘセットするため、線31
0及び312上にリセット指令が与えられる。
カウンタ302の第1出力は線314上の信号である。
この信号はカウンタ302が1に等しい(FIBカウン
タ=1)ことを示す。
第2出力は線219上の命令バッファ充填要求信号であ
る。
これハ命令バッファ充填カウンタがゼロでない時に発生
される。
線318上にあるカウンタ302の最後の出力は、命令
バッファ充填カウンタがゼロに等しいことを示す。
更にブリフェッチ論理回路は未決アクセス制御回路32
0を含む。
この回路は、ISレジスタ18中で処理されているユー
ザーの命令ストリーム中にブランチ命令が来た時、主記
憶装置12から正しい命令コードを得るためのものであ
る。
未決アクセス制御回路320への第1人力は線200上
の未決アクセス信号である。
これは第2図に示される記憶制御解読器238から与え
られる。
回路320への第2人力は主記憶装置12(第1図)か
ら線216へ転送されるデータ準備完了信号である。
回路320は線310上にFIBカウンタ・リセット信
号を発生する。
この信号は命令バッファ充填カウンタ302をリセット
するように動作する。
回路320の第2出力は線324上の準備完了禁止信号
である。
この信号はデータ準備完了信号を禁止する。
制御回路320の最後の出力は線252上の未決アクセ
スL2信号である。
この信号は命令レジスタ有効ラッチ回路288をリセッ
トする。
第3図に示されるブリフェッチ論理回路の他の構成要素
は主記憶ビジィ制御回路326である。
この回路は一対の信号を発生する。
これらの信号は、主記憶装置がメモリから命令コードを
フェッチされる過程にあるが未だ命令コードをレジスタ
16及び18へ与えていないことを示す。
回路326への第1人力は命令バッファ充填(FIB)
リセット信号である。
この信号は仮想アドレス変換器10によって発生され、
線308上を伝送される。
回路326への第2人力は主記憶装置12から線216
を介して与えられるデータ準備完了信号である。
リセット指令は線312を介して回路326へ入力され
る。
最後の入力は準備完了禁止信号であり、これは線324
を介して与えられる。
回路326の第1出力は線258上を伝送されるビジィ
1信号である。
この信号は、主記憶装置が命令指令を検索するためにフ
ェッチ動作を実行していることを示す。
回路326の第2出力は線330上のビジィ2信号であ
る。
この信号は、主記憶装置が第1及び第2の7エツチ要求
を処理していることを示す。
更に第3図において、ブリフェッチ論理回路は命令バッ
ファ充填カウンタ符号器332を含む。
符号器332は命令バッファ充填カウンタ302を駆動
する指令信号を発生する。
線258及び330上のビジィ1及びビジィ2信号は符
号器332への入力である。
線298上のVIS/IWRAP信号及び線300上の
VIB/IWRAP信号は符号器332へ入力として転
送される。
更に入力として与えられる信号は、線252上の未決ア
クセスL2信号及び線275上のFIB状態制御指令で
ある。
カウンタ302の2つの出力は符号器332への入力と
して与えられる。
これら出力は、線314上のIF I Bカウンター1
」信号、及び線318上のIF I BカウンターO」
信号である。
符号器332によって2つの出力信号が発生される。
第1出力信号は線304上に発生され、命令バッファ充
填カウンタを2の値ヘセットスる。
この実施例において、2の値は最大値である。
符号器332の第2出力は線306上の増進信号である
この信号はカウンタ302を単一ステップだけ増進する
仮想アドレス変換器10が要求されたアドレスを仮想ア
ドレスから実アドレスへ変換することができない場合を
処理するため、ブリフェッチ・ミス制御回路338がブ
リフェッチ論理回路中に含まれる。
2つの入力信号が制御回路338へ与えられる。
第1の人力信号は記憶制御解読器238から来る線20
0上の未決アクセス信号であり、第2の人力信号は第1
図に示される通信パス218を介して与えられる仮想ア
ドレス変換器(VAT)ブリフェッチ・ミス信号である
回路338の出力はリセット信号としてカウンタ302
及び回路326へ与えられる。
更に、回路338は入力をトラップ制御回路340へ与
える。
第2人力は線243を介して源解読器232から与えら
れるIS源信号である。
回路340の出力は線342上のブリフェッチ・ミス・
トラップ信号である。
線342上のトラップ信号は、仮想アドレス変換器10
が必要な実アドレスを主記憶装置へ与えることができな
い時に生じる。
線342上のトラップ信号は、回路338からの信号が
アクチブである間、マイクロプロセッサがISレジスタ
18を右方ALU入力源として選択する時に発生される
命令レジスタ有効ラッチ回路288の論理回路は第4図
に示される。
ここに示された回路の論理動作を順序づげるために、多
数のクロック入力が与えられる。
これらのクロック信号はCI、C2゜TX、T2.T3
.T4.T5.T6の記号を有している。
これらのクロック信号は定期的に与えられ、相互に固定
した関係を有する。
第4図に示される回路は、レジスタ16及び18に含ま
れるデータの有効性を表示する機能を有する。
ラッチ回路288はラッチ344を含む。ラッチ344
はデータ入力として線216上にデータ準備完了信号を
有しかつC2クロック入力を有する。
本明細書で説明される他のラッチと同じように、ラッチ
344は、クロック入力線が能動化される時点で、ラッ
チ・ブロックの下方右側にある出力線上にデータ論理レ
ベルを与える。
ラッチ344の出力は線346上のCPUデータ準備完
了信号である。
CPUデータ準備完了信号はランチ348のデータ入力
へ与えられ、かつAND回路350へ第1人力として与
えられる。
AND回路350への第2人力はフェッチ信号である。
この信号は仮想アドレス変換器10によって発生され、
フェッチ動作が完了したことを示すため、データ準備完
了信号と共に線218上を転送される。
AND回路350への第3人力はIB信号である。
この信号は仮想アドレス変換器10によって発生され、
主データ・パス32上のデータがIBレジスタ16ヘロ
ードされるべきことを示すため、データ準備完了信号と
共に線218上を転送される。
第4人力はC1クロック信号である。
4つの信号がAND回路350中でAND結合されると
、線214上にIBロード信号が発生される。
この信号は主記憶装置12から命令を受取るようレジス
タ16を能動化する。
この信号は線214上を転送される多数の信号の1つで
ある。
ランチ348の出力にはAND回路356が設けられて
いる。
AND回路356は3つの入力を有し、最初の入力はラ
ンチ348の出力である。
他の入力は線218上のフェッチ信号及び線242上の
IB信号である。
AND回路356の出力は線358上のIBデータ準備
完了ゲート(IB DRG)信号である。
更にAND回路356の出力にはAND回路360が接
続される。
即ち、線358上のIBDRG信号はAND回路360
の第1人力であり、ランチ362の出力はその第2人力
である。
線220上の主記憶エラー信号はインバータ364を通
され、AND回路360の第3人力として与えられる。
線365上の未決アクセス・ラッチ1信号はインバータ
366を通され、AND回路360への第4人力となる
線358上のIB DRG信号はインバータ368を
通され、AND回路370への第1人力となる。
回路370への第2人力はAND回路372の出力をイ
ンバータ374へ通したものである。
AND回路370への第3人力は宛先解読器234から
来る線244上のIB宛先信号である。
AND回路370への第4人力は線365上にある未決
アクセスL1信号の反転である。
AND回路372への第1人力は線358上にあるIB
DRG信号の反転であり、それはインバータ368
から来る。
AND回路374への第2人力はANDゲート3γ2の
反転された出力であり、第3人力は線286からインバ
ータ376を介して転送される命令ポインタ巻帰り (IWRAP )信号の反転である。
ANDゲート312への第4人力は線365上の未決ア
クセスL1信号の反転である。
AND回路360.370.372の出力はOR回路3
78への3つの人力を形成する。
OR回路378はIBレジスタ16有効ラッチ380へ
のデータ入力を発生する。
ランチ380のクロック信号はOR回路382によって
与えられる。
ラッチ380からの真の出力はIBレジスタ16中の命
令が有効であることを示し、虚の出力は命令が有効でな
くALU28によって使用できないことを示す。
命令レジスタ有効ラッチ回路288の他の構成要素とし
てAND回路384がある。
それは第1人力として線286上のIWRAP信号を有
する。
第2人力はクロック信号T6である。
AND回路386は第1人力として線244上のIB宛
先信号を有し、第2人力としてクロック信号T4を有す
る。
AND回路388は第1人力としてクロックC2を有し
、第2人力としてOR回路390の出力を有する。
ORゲート390は線365上の未決アクセスL1信号
及びAND回路372の出力を受取り、AND回路38
8への第2人力を発生する。
AND回路384,386,388の出力はOR回路3
92へ接続され、OR回路392はOR回路382へ第
1人力として与えられる信号を発生する。
AND回路394はその入力として線358上のIB
DRG信号及びクロック信号C2を有し、ORゲート
382への第2人力を発生する。
ランチ380によって発生された命令バッファ・レジス
タ16有効信号はラッチ396へのデータ入力として与
えられる。
ラッチ396はクロック信号C1によって能動化される
第4図において、AND回路398の第1人力は線28
6からのIWRAPの反転を与えられ、第2人力は命令
ストリーム・レジスタ18有効ラツチ400の出力を与
えられる。
AND回路402は線286上のI WRA P信号を
第1人力として有し、ラッチ380の出力を第2人力と
して有する。
回路398及び402のAND結合された出力は、線2
98上にVIS/IWRAP信号ヲ発生するためにOR
回路404へ導かれる。
VIS/IWRAPの反転を表わす信号は、線298の
VI S/IWRAP信号をインバータ408へ通すこ
とにより発生されろ。
AND回路410の第1入力は/ ツ)IWRAP信号
を受取り、第2人力はラッチ380の出力へ接続される
AND回路410の出力は線300上のVIB/IWR
AP信号である。
線300上の信号はインバータ414を通され、線41
6上にVIB/IWRAPの反転信号が発生される。
VIB/IWRAP信号及びVIS/IWRAP信号は
、次の命令転送がレジスタ18からALU28へなされ
た後、それぞれレジスタ16及び18について有効状態
を予想している。
命令レジスタ有効ラッチ回路288の他の構成要素とし
てAND回路418がある。
AND回路418は第1人力として線220上に主記憶
エラー信号の反転を有する。
第2人力はラッチ362の出力をインバータ420へ通
したものである。
AND回路418への第3人力は線358上のIB
DRG信号であり、最後の入力は線365上の未決アク
セスLl信号の反転である。
AND回路418に隣接したAND回路422は、第1
人力として線358上のIB DRG信号の反転を有
する。
第2人力は線244上のIB宛先信号であり、最後の入
力は線365上の未決アクセスし1信号の反転である。
AND回路424は第1人力として線358上のIB
DRG信号の反転を有する。
その第2人力はOR回路426の出力であり、第3人力
は線365上の未決アクセス孔1信号の反転である。
AND回路418,422,424の出力は3つの入力
としてOR回路428へ与えられる。
OR回路428はISレジスタ18のためにデータ有効
ラッチ400へのデータ信号入力を発生する。
このラッチはOR回路430の出力によって刻時される
OR回路430は入力としてOR回路392の出力とA
ND回路432の出力を有する。
ラッチ400によって発生された真の信号は、ISレジ
スタ18中の命令が有効でありALU28によって使用
できることを示す。
ラッチ400からの虚の出力はISレジスタ18中の命
令が有効でなく使用できないことを示す。
ラッチ400によって発生される信号はISレジスタ有
効(VI S )信号と呼ばれ、この信号の反転はVI
S信号をインバータ434へ通すことによって発生され
る。
反転信号ノツl−’¥ISは線436上に発生される。
AND回路438へは線286上のI WRA P信号
及びランチ396の出力が接続され、OR回路426へ
の第2人力が発生される。
AND回路372の出力はOR回路426への第1入力
を与える。
ラッチ396の出力はAND回路372への第一2人力
となる。
第4図に示される命令レジスタ有効ラッチ回路の他の論
理回路群として、OR回路444へ入力を与えるAND
回路440及び442がある。
AND回路440への第1人力はランチ3620反転さ
れた出力であり、AND回路442への第1人力は線2
86上のIWRAP信号である。
AND回路440はクロック信号C2によって駆動され
、AND回路442はクロック信号T6によって駆動さ
れる。
OR回路444は線214上にISロード信号を発生す
る。
この信号が発生される時、IBレジスタ16中の命令は
ISレジスタ18ヘシフトされる。
ここで第5図を参照すると、そのには第3図に示される
機能エレメントを表わす他の論理回路が示される。
そこで示される機能エレメントは命令充填カウンタ30
2、未決アクセス制御回路320、主記憶ビジィ制御回
路326、ブリフェッチ・ミス制御回路338、トラッ
プ制御回路340がある。
第5図の上部中央にあるAND回路454゜456.4
58はOR回路460への入力を与える。
OR回路460はラッチ462のためにクロック信号を
発生する。
線298上のVATプリフェッチ・ミス信号は、AND
回路454への第1人力及びランチ462へのデータ入
力として与えられる。
クロック信号C2はAND回路454への第2人力とし
て与えられる。
記憶制御解読器238から来る線200上の未決アクセ
ス信号はAND回路456への第1人力となる。
クロックT4はAND回路456への第2人力として与
えられ、かつAND回路458への第1人力となる。
AND回路458への他の入力は線242上のIB宛先
信号である。
ラッチ462は線464上にブリフェッチ・ミス信号を
発生する。
線464はAND回路466の第1人力へ接続される。
AND回路466への第2人力はノットVIS信号であ
り、第3人力は源解読器232によって線178上に発
生されるIS源指令である。
AND回路466は第3図に示されるように線342上
にブリフェッチ・ミス・トラップ信号を発生する。
未決アクセスL1及びL2信号を発生する回路はAND
回路468を含む。
AND回路468は第1人力としてラッチ470によっ
て発生された線324上のデータ準備完了禁止信号の反
転された出力を有する。
AND回路468への第2人力はAND回路472の出
力である。
AND回路472へ与えられる信号は線346上のCP
Uデータ準備完了信号、線218上のIB信号、同じく
線218上のフェッチ信号である。
線272上のRINS信号はインバータ474を通して
AND回路476の第1人力へ与えられる。
AND回路468の出力はインバータ478を通され、
AND回路476へ第2人力として与えられる。
AND回路476はデータ入力を未決アクセス・ランチ
480へ発生する。
AND回路482はAND回路472の出力信号を第1
人力として受取り、ラッチ4700反転された出力を第
2人力として受取る。
クロック信号C1はAND回路482への第3人力とな
る。
クロックT5はOR回路486の出力と同じくAND回
路484への入力となる。
OR回路486は線272上のRINS信号及び線20
0上の未決アクセス信号によって駆動される。
OR回路488はAND回路482及び484の出力を
与えられ、未決アクセス・ラッチ480のためにクロッ
ク信号を発生する。
このラッチの出力が真の状態にある時、IBレジスタ1
6を介してISレジスタ18へなされる主記憶装置のフ
ェッチが、制御記憶装置30からのマイクロ命令によっ
て開始される。
これはIB及びISレジスタ16及び18中の逐次に引
出された命令が無効であることを示す。
何故ならば、ユーザー・ブランチ命令は逐次に発生され
た命令ではない命令を必要とするからである。
第2未決アクセス・ラッチ490は未決アクセス・ラン
チ480の出力をデータ入力として与えられ、クロック
信号C2によって駆動される。
ラッチ490は線252上に未決アクセス孔2信号を発
生する。
この信号の反転はラッチ490の出力をインバータ49
2へ通すことによって発生される。
ノット未決アクセスL2信号は線290上に与えられる
未決アクセス孔2信号は遅延した未決アクセスL1信号
であり、論理回路中で競合の危険を防止するために使用
される。
第5図において、線358上のIB DRG信号及び
C2クロック信号はAND回路494への入力として与
えられる。
線200上の未決アクセス信号及びクロック信号T4は
AND回路496への入力として与えられる。
AND回路494及び496の出力はOR回路498へ
与えられ、OR回路498はラッチ470ヘクロツク入
力を発生する。
線358上のIB DRG信号はインバータ500を
通され、AND回路502への第1人力として与えられ
る。
回路502への第2人力はラッチ504によって与えら
れる。
ラッチ470は線324上にデータ準備完了禁止信号を
発生する。
この信号は、ユーザーのブランチ命令がISレジスタ1
8中に来た時、ブリフェッチ論理装置をして主記憶装置
からのデータ準備完了信号を無視させる。
何故ならば、IBレジスタ16ヘプリフエツチされつつ
ある命令は、主記憶装置におけるブランチ先ロケーショ
ンにある命令ではな(順序通りの命令であるからである
ラッチ470の出力はインバータ506を通され、AN
D回路468及び482への入力として与えられる。
第5図の右方を参照して、ビジィ1及びビジィ2信号の
発生について説明する。
線308上のF I B ’J上セツト号はAND回路
508への第1人力として与えられる。
第2人力はブリフェッチ・ミス・ラッチ462の出力を
インバータ510へ通したものである。
AND回路512はその入力としてインバータ514の
出力を有する。
インバータ514はその入力をAND回路472の出力
へ接続される。
回路512の第2人力はランチ516の出力である。
回路508及び512の出力はラッチ518の出力と共
にOR回路520への入力となる。
OR回路520はデータ入力をラッチ504へ与える。
ラッチ504へのクロック入力はOR回路522によっ
て発生される。
ラッチ516はクロック信号C2と共にラッチ504の
刻時された出力を受取り、線258上にビジィ1信号を
発生する。
AND回路522はラッチ470の反転された出力と共
に線258上のビジィ1信号を受取る。
AND回路522の出力は線524上に反転されたビジ
ィ1信号を発生するために反転される。
ここで第5図の中央部分にあるビジィ2信号を発生する
論理回路に注目すると、AND回路526は線308上
のVAT FIBリセット信号を第1人力として受取
り、クロック信号C1を第2人力として受取る。
AND回路528はAND回路472の出力、ラッチ4
70の出力、クロック信号C1を受取る。
AND回路530はその入力としてAND回路472の
出力、ラッチ4900反転された出力、クロック信号C
1を受取る。
AND回路526,528,530の出力はOR回路5
22へ転送され、主記憶ビジィ2ラツチ532のクロッ
ク入力を発生する。
ラッチ532のデータ入力はAND回路533によって
与えられる。
AND回路533は第1人力としてランチ516の出力
を有する。
第2人力はラッチ462の反転された出力である。
第3人力はインバータ514の出力である。
ランチ518は主記憶ビジィ・ラッチ532の出力及び
クロック信号C2を受取り、線330上にビジィ2信号
を発生する。
この信号は線535上に反転されたビジィ2信号を発生
するためにインバータ534を通される。
第5図のラッチ536はそのデータ端子にラッチ490
の出力を受取り、そのクロック端子にクロック信号C1
を受取る。
ラッチ538はラッチ536の出力及びクロック信号C
2を受取り、その出力をインバータ540へ通してAN
D回路542の第1人力へ与える。
AND回路542の第2人力はラッチ490の出力から
与えられる。
AND回路542は線310上にFIBカウンタ・リセ
ット信号を発生する(第3図)。
第3図の命令バッファ充填カウンタ符号器332の群細
な論理回路は第6図に示される。
線275上のFIB状態制御信号はラッチ543のデー
タ入力へ接続され、ラッチ543はその出力信号をラッ
チ544のデータ入力へ与える。
ラッチ544はクロック信号C1によって刻時される。
AND回路545はラッチ544の出力とC2クロック
信号とを受取る。
OR回路546はAND回路545の出力とT4クロッ
ク信号とを受取る。
ラッチ543の出力はAND回路547,548゜54
9.550,551の第1人力として与えられる。
AND回路547への他の入力は線318上のrFIB
カウンターO」信号、線416上のノットVIB/IW
RAP信号、線298上のVIS/IWRAP信号、線
524上のノット・ビジィ1信号である。
AND回路548は線318上のIF I Bカウンタ
=OJ信号、線416上のノットvIB/IWRAP信
号、線415上のノットvIS/IWRAP信号、線3
28上のビジィ1信号、線535上のノット・ビジィ2
信号、線290上のノット未決アクセスL2信号を受取
る。
AND回路549は線314上の1−FIBカウンタ=
1」信号、線416上のノットVIB/IWRAP信号
、線415上のノットVIS/IWRAP信号、線52
4上のノット・ビジィ1信号、線290上のノット未決
アクセスL2信号を受取る。
第6図のAND回路550は線318上のIF I B
カウンターO」信号、線524上のノット・ビジィ1信
号、線252上の未決アクセスL2信号を受取る。
第6図のAND回路551は線318上のIF I B
カウンター0」信号、線416上のノットVIB/IW
RAP信号、線415上のノットVIS/IWRAP信
号、線524上のノット・ビジィl信号、線290上の
ノット未決アクセスL2信号を受取る。
回路551は線304上に「2へのセット」信号を発生
する。
この信号は命令バッファ充填カウンタ302への入力と
なる。
AND回路547,548,549,550の出力はO
R回路552へ与えられ、線306上に増進信号を発生
する。
この信号は命令バッファ充填カウンタ302へ与えられ
る。
命令ポインタ回路282及びオーバフロー検出回路28
4の論理回路は第7図に示される。
線273上のI+1信号はAND回路560の第1人力
として印加される。
第2人力はラッチ562の出力であり、第3人力はイン
バータ564の出力である。
AND回路566は入力として線273上のI+1信号
及びラッチ5620反転された出力を有する。
回路566への第3人力はランチ568の出力である。
AND回路570は第1人力としてラッチ5620反転
された出力を有し、第2人力として線274上のI+2
信号を有する。
AND回路560,566.570はOR回路572へ
入力を与える。
OR回路572はラッチ574へのデータ入力を発生す
る。
ラッチ574へのクロック入力はAND回路576によ
って与えられる。
ラッチ562へのデータ入力はラッチ574によって与
えられる。
更にランチ562はTXクロック入力を与えられる。
インバータ578はラッチ562の出力を受取る。
ラッチ5620反転出力はAND回路580゜582.
584,586の入力として与えられる。
ランチ5620反転されない出力はAND回路588.
590.592.594の第1人力として与えられる。
AND回路580.588はランチ568の反転出力を
第2人力として受取る。
AND回路584.592はラッチ568の非反転出力
を受取る。
AND回路582,586,590゜594は線271
上のハーフワード・モード指令を状態解読器236から
受取る。
AND回路580及び582はOR回路583への入力
を発生する。
OR回路583はISレジスタ18中のバイト0に対す
るIポインタ信号を発生する。
AND回路584及び586はISレジスタ中のバイト
1へ■ポインタを指向するためOR回路587を駆動す
る。
AND回路588及び590はOR回路591へ入力を
与え、ISレジスタ中のバイト2へIポインタを指向す
る。
同様に、AND回路592及び594はその出力をOR
回路595へ与え、ISレジスタ18中のバイト3へ■
ポインタを指向する。
線273上のI+1信号はラッチ568の反転出力と共
にAND回路596へ入力として与えられる。
AND回路598は線274上のI+2信号及びランチ
568の非反転出力を受取る。
AND回路596及び598はOR回路600へ入力を
与える。
OR回路600はラッチ601のためにデータ信号を発
生する。
線273及び274上のI+1及びI+2信号はOR回
路602へ与えられる。
OR回路602はAND回路576へ1つの人力を与え
る。
クロック信号T6はAND回路576へ第2の入力とし
て与えられる。
AND回路576の出力はラッチ574及び601ヘク
ロツク信号を与える。
ランチ568はそのデータ端子にラッチ601の出力を
受取り、そのクロック入力にクロック信号TXを受取る
第3図に示されるオーバフロー検出回路284はAND
回路604及び606、OR回路608を含む。
AND回路604はラッチ562の出力及び線274上
のI+2信号を入力として受取る。
AND回路606はラッチ562及び568の出力、及
び線273上のI+1信号を入力として受取る。
回路604及び606はOR回路608へ入力を与え、
OR回路608は線286上にIWRAP信号を発生す
る。
この信号はISレジスタ18中の命令が全てALU28
へ転送されたことを示す。
第3図の命令バッファ充填カウンタ302の群細は第8
図に示される。
第5図から来る線464上のブリフェッチ・ミス信号及
び線310上のFIBカウンタ・リセット信号はOR回
路6140入力として与えられる。
OR回路614はリセット信号を出力として発生する。
OR回路614からのリセット信号はOR回路616へ
の第1人力として与えられる。
第2人力は線304上の「2へのセット」信号である。
回路616への他の入力は線306上の増進信号及び線
308上のVAT FIB’Jセット信号である。
AND回路618はその入力として線306上の増進信
号及び線308上のVAT FIBIJセット信号を
有する。
AND回路618の出力はインバータ620を通され、
AND回路622へ第1人力として与えられる。
AND回路622への他の入力はOR回路616の出力
、クロック信号CI、インバータ623の出力である。
インバータ623はAND回路624の出力を受取る。
AND回路624はその入力としてランチ6330反転
出力、ラッチ6320反転出力、線308上のVAT
FIBIJセット信号を有する。
AND回路622の出力はラッチ625のクロック端子
へ与えられる。
ラッチ625へのデータ入力は、線304上の「2への
セット」信号を入力として有するOR回路626、及び
AND回路628の出力によって与えられる。
AND回路628はその入力としてOR回路614の出
力をインバータ630へ通じたもの、ラッチ632の出
力、線306上の増進信号を有する。
ラッチ625の出力はラッチ633ヘデータ入力を与え
る。
更に、ラッチ633はクロック信号C2人力を受取る。
ラッチ633は出力を発生し、この出力はインバータ6
34を介して転送され、ANDゲート636への第1人
力として与えられる。
AND回路636への第2人力はラッチ632の非反転
出力によって与えられる。
AND回路636は線314上にrFIBカウンター1
」信号を発生する。
線306上の増進信号及びインバータ630の出力はA
ND回路638への入力として与えられる。
AND回路640はインバータ630の出力、ラッチ6
33の出力、線308上のVAT FIBリセット信号
をインバータ642へ通したものを与えられる。
AND回路638及び640の出力は線304上の「2
へのセット」信号と共にOR回路644へ入力として与
えられる。
OR回路644はラッチ646のためにデータ信号を発
生する。
ラッチ646はAND回路622の出力をクロック入力
として有する。
ランチ646の出力はラッチ632ヘデータ入力を与え
る。
ラッチ632はクロック信号C2によってクロックされ
る。
ラッチ632の出力はインバータ648を通され、線3
18上に「F I Bカウンタ=01信号を発生する。
ラッチ632の非反転出力は線219上のFIB要求信
号である。
この信号はカウンタ302がゼロ以外の値ヘセットされ
、IBレジスタ16の充填要求がなされねばならないこ
とを示す。
本発明の回路で使用される各種のクロック信号は第9図
に示される論理回路によって発生される。
システムは第10図の上部に示される基本クロック信号
C1及びC2に基づいて動作する。
クロック信号C1及びC2を発生する発振器は示されて
いない。
これらのクロック信号は同じ速度で動作するが、180
度だけ位相がずれている。
クロック信号C1及びC2はサブクロック信号を発生す
るために一連のリング・ラッチへ与えられる。
サブクロック信号はマイクロプロセッサ・サイクルの間
特定のクロック・パルスを発生するために使用される。
第9図に示されるように、クロック信号C1及びC2は
ラッチ660,662゜664.668,670,67
2,674゜676.678への入力となる。
これらのラッチは第10図に示されるようなりロック信
号を発生する。
クロック信号の番号はそれを発生するラッチの番号に対
応する。
これらのクロック信号は一連のAND回路680.68
2,684.686゜688.690へ与えられクロッ
ク信号TX。
T2.T3.T4.T5.T6が発生される。
これらのクロック信号は第10図に示されている。
第9図の下部にあるランチ700はそのデータ入力が線
222上のブリフェッチ停止信号を受取るように接続さ
れる。
この信号は第2図のブリフェッチ停止回路250から誘
導される。
ラッチ700はそのクロック端子へクロック信号TXを
与えられる。
主記憶装置12のフェッチが完了するまでそれ以上のス
テップを取ることのできない動作地点へマイクロプロセ
ッサ14が到達した時に、線222上のブリフェッチ停
止信号が発生される。
線222上のブリフェッチ停止信号は、主記憶装置のフ
ェッチが完了するまで、第9図に示されるクロック回路
を無能化する。
フェッチが完了した時に、クロックの発生が再開され、
マイクロプロセッサ14は動作を継続する。
ここで、第1図を参照して本発明のブリフェッチ論理回
路の動作を説明する。
主記憶装置12はマイクロプロセッサ14によって使用
される大容量記憶装置である。
しかし経済的な理由により、主記憶装置12はマイクロ
プロセッサ14よりもはるかに遅い速度で動作する。
更に、主記憶装置はマイクロプロセッサ14を除く他の
システムによってもアクセスされる。
一般的に、主記憶装置はダイナミック・メモリであるか
ら、メモリの内容を定期的にリフレッシュする手段が設
けられねばならない。
端末装置及びリフレッシュ論理装置は主記憶装置の時間
の一部を利用し、マイクロプロセッサ14が主記憶装置
へアクセスするチャンスを少なくする。
しかし、マイクロプロセッサ14が機能するためには、
それは主記憶装置中に記憶された高レベル命令及びオペ
ランドを取出さなければならない。
マイクロプロセッサ14が主記憶装置に対してデータの
要求を行なう時、マイクロプロセッサの動作を停止し、
要求したデータが戻されるまで待機するようであれば、
相当の時間が無駄になり、コンピュータ・システムは非
能率的に動作することになる。
本発明の目的である命令のブリフェッチは、マイクロプ
ロセッサ14が高レベル命令の使用を要求する前に、主
記憶装置からそれを検索することである。
検索は、マイクロプロセッサによってアクセスが要求さ
れない時に主記憶装置を利用するよう時間調節されてい
る。
このようにして得られた命令は、高速のレジスタ16及
び18中に記憶され、これらのレジスタは要求に応じて
命令をALU28へ転送する。
レジスタからALUへの命令転送は、主記憶装置へアク
セスするよりも数倍速い。
従って、もしレジスタ16及び18が入来する命令で常
に充填され、マイクロプロセッサの動作を妨害すること
なく、命令をメモリからフェッチすることができれば、
マイクロプロセッサ・システムの全体的動作を実質的に
速くし効率的にすることができる。
第1図及び第2図を参照するに、本発明のブリフェッチ
論理回路は、選択されたマイクロ命令が制御記憶出力レ
ジスタ166中で実行されている時、そのマイクロ命令
によって能動化される。
ユーザーにより主記憶装置12へ与えられた高レベル命
令で指定される動作を実行するため、相当数のマイクロ
命令が制御記憶装置30中に記憶される。
本発明を実施したコンピュータで使用するマイクロ命令
の例が第11図に示される。
これらのマイクロ命令は32ビツトの長さを有し、特定
の目的を達成するフィールドへ分割される。
例えば、GA命令は一般的な演算動作を実行する。
この命令はビット位置4〜7にブランチ条件を含み、ビ
ット位置8〜12に次のアドレスを含む。
ALU28の機能はビット位置13〜15で指定される
ビット位置17〜20にある状態制御フィールドは本発
明のブリフェッチ論理回路を能動化する指令コードを含
む。
もし状態制御フィールド中で成るビットがセットされて
いれば、ブリフェッチ論理回路が能動化され、マイクロ
プロセッサによって実行される命令を主記憶装置から検
索するプロセスが開始される。
マイクロ命令中のビット位置21〜23及び26〜31
はオペランド源を指定し、ビット位置24〜25は結果
の宛先を指定する。
SH及びM2マイクロ命令において、同様の状態制御フ
ィールドがビット位置16〜20に示される。
状態制御フィールドを有するこれらマイクロ命令の各々
について、マイクロコード・プログラマはIBレジスタ
16及びISレジスタ18をロードするためにいずれの
マイクロコードによってフェッチ論理回路を起動するか
を選択することができる。
状態制御フィールドにある特定のコードは、5A−Ll
レジスタ20又は5B−Llレジスタ24へ命令オペラ
ンドをフェッチするためマイクロプロセッサによって主
記憶装置が使用されていない時、ブリフェッチ論理回路
を起動し関連したメモリ・アクセスを開始するコードで
ある。
主記憶装置が使用されていない時は、主として各高レベ
ル命令の実行位相中である。
従って、ブリフェッチ論理回路の能動時点は、マイクロ
命令中の状態制御ビットを使用することによってマイク
ロプログラマにより選択可能である。
次に第1図及び第2図を参照して、本発明のブリフェッ
チ論理回路の全体的動作を説明する。
成るマイクロ命令が制御記憶出力レジスタ166中に存
在すると、FIB状態制御信号が状態解読器236によ
って線275上に発生される。
線275は解読指令の制御線197に含まれる。
FIB状態制御信号は主記憶インターフェイス制御装置
212及びその中に含まれる第3図のブリフェッチ論理
回路へ転送される。
ブリフェッチ論理回路はマイクロプロセッサ14中の各
種の条件を検査し、これらの条件が満足されIBレジス
タ16が空であれば、FIB要求信号が線219上を仮
想アドレス変換器10へ送られる。
FIB要求信号を受取ると、仮想アドレス変換器10は
直ちに内部命令アドレス・レジスタ(図示せず)を検査
し、マイクロプロセッサ14によって使用される次の命
令の仮想アドレスを決定する。
次いでこの仮想アドレスは実アドレスを発生するために
変換テーブルと照合される。
実アドレスは主記憶装置12へ転送され、仮想アドレス
変換器10は次の命令を発生するために主記憶装置12
からのフェッチ指令を起動する。
仮想アドレス変換器10による仮想アドレスから実アド
レスへの変換が成功すると、フェッチ動作が進行中であ
ることを示すため、リセット指令が線218を介して主
記憶インターフェイス制御装置のブリフェッチ論理回路
へ送られる。
更に、仮想アドレス変換器10は、進行中の動作がフェ
ッチであること、デ−タがIBレジスタ16へ与えられ
ようとしていることを示すため、制御線218上の他の
信号を能動化する。
主記憶装置12が仮想アドレス変換器10によって要求
された命令の検索を完了した時、その命令はパス32を
介して転送されるために出力バッファ(図示せず)に置
かれる。
この命令が出力バッファにある時、要求された命令の転
送準備が完了していることをブリフェッチ論理回路へ知
らせるため、データ準備完了信号が線216上に与えら
れる。
データ準備完了信号を受取ると、ブリフェッチ論理回路
は直ちに仮想アドレス変換器10からのフェッチ信号及
びIB信号を検査する。
そして主記憶装置12の出力レジスタ中にある命令をI
Bレジスタ16へ転送するために、IBロード信号が線
214を介して送られる。
IBレジスタ16に記憶された命令は、迅速な転送を可
能とする並列シフトでISレジスタ18へ転送される。
この実施例において、ISレジスタ18は4バイトの長
さを有するが、ALU28は各動作において1バイト又
は2バイトを受取ることができるにすぎない。
どのバイトをALU28へ転送するかの選択は、■ポイ
ンタ52及びセレクタ46によって達成される。
■ポインタは、ISレジスタ18中に記憶された命令の
1バイト又は2バイトを、選択的にALU28ヘゲ−ト
スるようセレクタ46を動作させる。
第3図及び第7図を参照すると、そこには■ポインタ回
路282及びオーバーフロー検出回路284が詳細に示
される。
線273及び274上のI+1及びI+2信号は、マイ
クロ命令に応答して状態解読器236によって発生され
る。
制御記憶装置30かものマイクロ命令がISレジスタ1
8中のユーザー命令を解読し処理する時、マイクロ命令
は同時に■ポインタを増進する。
従ってISレジスタ18がマイクロ命令によって次に照
合される時、現在のユーザー命令又は実行されるべき次
のユーザー命令のバイトが与えられる。
命令ポインタ回路282は実際には4ビツト・カウンタ
であり、それは線273及び274上の■+1又はI+
2信号によって1ステツプ又は2ステツプだけ増進され
る。
命令ポインタ回路が増進される時、OR回路583,5
87,59L59501つが能動化され、ISレジスタ
18から適当なバイトが選択される。
・・−フワード・モードで動作している時、特定のマイ
クロ命令指令に応答して線271が能動化される。
従って2個のバイトが各々の特定の時間にALU28へ
転送するために能動化される。
オーバフロー検出回路284は命令ポインタ回路の歩進
を監視する。
それが最大値から最小値へ(本実施例では3からOへ)
遷移する時点で、オーバフロー検出回路は線286上に
IWRAP信号を発生し、ISレジスタ18中の命令が
ALU28へ転送され、そのレジスタが今や空であるこ
とを知らせる。
更にI WRA P信号は、IBレジスタ16中に記憶
された命令を直ちにISレジスタ18へ転送するよう機
能する。
ここでIB及びIS有効ラッチの動作を説明するため、
第3図及び第4図を参照する。
IB及びIsレジスタ16及び18は関連したランチを
有し、これらのラッチはレジスタ中に記憶されたデータ
の有効性を示す信号を発生する。
第4図において、IBレジスタ16の有効性はランチ3
80の出力によって表示され、ISレジスタ18の有効
性はラッチ400の出力によって表示される。
一般的には、ラッチの出力が高である時、レジスタ中の
命令は有効である。
しかしデータ・レベルが低である時、命令は無効であり
、マイクロプロセッサによって使用されることはできな
い。
主データ・パス32から無エラーのデータがロードされ
る時、適当な有効ラッチがセットされる。
データは常にIBレジスタ16ヘロードされ、もしその
データが無エラーであれば、ラッチ380がセットされ
る。
データが主記憶装置から到着した時、ラッチ400がリ
セットされていれば、データはIBレジスタ16を介し
てISレジスタ18へ通される。
ランチ400は有効データを示すためにセットされ、ラ
ッチ380は他のフェッチが要求されていることを示す
ためにリセットされたままである。
ISレジスタ18に関して云えば、一度命令がALU2
8へ読出され、新しい命令がIBレジスタ16から受取
られていない時、ISレジスタ18中の命令は無効とさ
れる。
これはIWRAP信号によって明白に示される。
即ちIWRAP信号は■ポインタが命令フィールドの掃
引を完了したことを示す。
従って、各IWRAP信号は、新しい命令が受取られる
まで、ISレジスタ18の有効ラッチを無効にセットす
る。
もしIWRAP信号が生じた時にランチ380がセット
されていれば、ラッチ400はセットされたままである
が、ランチ380はリセットされる。
これはIBレジスタ16の内容をISレジスタ18へ直
ちに転送することを意味する。
もしIWRAP信号が生じた時にランチ380がリセッ
トされていれば、ラッチ400は新しい命令が到着しI
Bレジスタ16を介してISレジスタ18へロードされ
る時までリセットされる。
更に、ブランチ命令が生じてユーザー・プログラム中の
次のステップとして非順次の命令を使用する必要がある
時、ISレジスタ18中の命令は無効にされる。
これはIBレジスタ16のために未決アクセスを開始す
るマイクロ命令を介してブリフェッチ論理回路へ知らせ
られる。
同様に、IBレジスタ16中の命令はISレジスタ18
へ転送された後に無効にされる。
主記憶装置からの転送がパリティ・エラーを起し、それ
がハリティ検査回路40によって検出された時、線22
0上の主記憶エラー信号はIBレジスタ16の有効ラッ
チをセットする。
同様にレジスタ16中に記憶された命令は、ISレジス
タ18中のユーザー命令中にブランチ命令があり、その
ブランチによって非順次の命令を使用しなげればならな
い時無効にされる。
これはIBレジスタ16のために未決アクセスを開始す
るマイクロ命令を介してブリフェッチ論理回路へ知らせ
られる。
ここで第3図及び第5図を参照すると、そこには主記憶
ビジィ制御回路326が示される。
この制御回路は、IBレジスタ16へ転送する命令をフ
ェッチする場合に、主記憶装置12の動作を監視する。
制御回路326は線258上にビジィ1信号を発生する
これは主記憶装置12がIBレジスタ16へ転送される
4バイトの命令を検索中であることを示す。
更に制御回路326は線330上にビジィ2信号を発生
する。
これはIBレジスタ16の入力となりISレジスタ18
へ転送される2フロツクの命令を検索するため、2つの
フェッチ要求が処理されていることを示す。
FIB要求が第3図のブリフェッチ論理回路によって仮
想アドレス変換器10へ出された時、線308上のFI
Bリセット指令が仮想アドレス変換器から主記憶ビジィ
制御回路326へ送られる。
命令が出カバソファに置かれIBレジスタ16へ転送さ
れる準備が完了した時、主記憶装置12はデータ準備完
了指令を発生する。
この指令は線216を介して主記憶ビジィ制御回路32
6へ与えられる。
制御回路326はこれら2本の線上で受取られた信号の
数及びタイミングを計数し、主記憶装置12によって処
理されつつある未処理のフェッチ要求の数を決定する。
命令バッファ充填カウンタ302は第3図及び第8図に
示される。
このカウンタはその状態を示す制御信号を発生する。
即ち、カウンタの状態は仮想アドレス変換器10へ送る
必要がある命令要求の数を示す。
カウンタ302は3つの出力状態を有する。
これらの状態は0,1.2である。O状態は、未処理の
要求の全てが仮想アドレス変換器10によって変換され
たことを示す。
しかし、主記憶装置のフェッチは完了していないかも知
れない。
この事実はビジィ制御回路326によって示される。
マイクロ命令が状態解読器236を介して線275上に
FIB状態制御指令を発生する時、カウンタ302はF
IBカウンタ符号器332によってセットされ、IBレ
ジスタ16及びISレジスタ18を有効データで充填す
るのに必要な主記憶装置のフェッチの数を示す。
FIBカウンタ符号器332はカウンタ302中の現在
の値、ビジィ制御回路326の状態、有効ラッチ回路2
88の状態を検査することによって必要なフェッチの数
を決定する。
IBレジスタ16の有効ラッチが無効ヘセットされ、I
Sレジスタ18の有効ラッチが有効ヘセットされ、カウ
ンタ302がゼロ状態にあり、ビジィ制御回路326が
リセットされている時、命令バッファ充填カウンタ30
2はOから1へ増進される。
これは、命令レジスタを充填するために、1つのメモリ
・フェッチが必要であることを示す。
更に、これは線219上のFIB要求信号を能動化し、
次の順次の命令を検索するためにメモリ・フェッチを開
始させる。
もし有効ラッチ380及び400の双方がリセットされ
ており、ラッチ516がセットされており、カウンタ3
02の現在の値が1であれば、FIBカウンタ符号器3
32は信号を発生しない。
何故ならば、2つのフェッチが既に要求されたからであ
る。
1つのフェッチはラッチ516で示されるように主記憶
装置中で処理されており、他のフェッチはカウンタ30
2の値1によって示されるように仮想アドレス変換器1
0中で処理されている。
従って、概略的に云えば、第3図のブリフェッチ論理回
路は常にIB及びISレジスタ16及び18を充填する
のに必要なメモリ・フェッチの数を決定する。
しかし状態解読器236を介してフェッチ指令がマイク
ロ命令コードによって発生されない限り、そのような指
令は線219上へ送られない。
更に、命令メモリ・フェッチが必要でなげれば、解読器
によって発生されメモリ・アクセスを要求する指令は無
視される。
FIB要求指令が命令バッファ充填カウンタ302から
仮想アドレス変換器10へ送られ、アドレスが利用可能
である限り、仮想アドレス変換器は主記憶装置へアクセ
スし、線308上のF I B !J上セツト号をブリ
フェッチ論理回路へ戻し、フェッチが進行中であること
を表示する。
更に、この信号は命令バッファ充填カウンタ302を1
単位だけ減少させ、未処理要求の実際の数をカウンタに
表示させる。
もしカウンタ302がゼロヘセットされていなければ、
他のFIB要求信号が送られ、第2のF I B IJ
上セツト号が仮想アドレス変換器10から受取られる。
しかし、最初のF I B !J上セツト令が仮想アド
レス変換器10から受取られた後に、カウンタ302が
ゼロヘセットされると、それ以上のFIB要求信号は送
られない。
F I B IJ上セツト号が第3図の主記憶ビジィ制
御回路326によって受取られると、ビジィ1信号がセ
ットされる。
線216上のデータ準備完了信号が制御回路326によ
って受取られると、ビジィ1信号がリセットされる。
しかし、ビジィ1信号がリセットされる前に第2のFI
Bリセット信号が送られると、ビジィ2信号がセットさ
れて、2つの未処理のメモリ・フェッチ要求が残ってお
り、それらが未だ完了していないことを示す。
従って、上記の説明から解るように、ブリフェッチ論理
回路はメモリ・フェッチ指令を発生し、マイクロプロセ
ッサの通常の動作に有害な影響を与えることなく、マイ
クロプロセッサによって命令が迅速に処理できるように
、IB及びISレジスタ16及び18を充填しておくこ
とができ、メモリ・フェッチを待機するためにマイクロ
プロセッサが動作を停止する必要はない。
事象の通常のシーケンスにおいて、IBレジスタ16へ
のフェッチは主記憶装置12の順次のロケーションから
なされる。
フェッチのためのアドレス・ロケーションは、仮想アド
レス変換器10内に含まれる増進カウンタによって決定
される。
しかし、ユーザー命令が新しい命令アドレス・ロケーシ
ョンへ命令ストリームをジャンプさせるフランチ動作を
指定する時、命令の逐次的な流れは中断される。
このような事態が生じた時、以前にフェッチされてIB
及びISレジスタ16及び18中に記憶された命令はも
はや有効ではない。
何故ならばそれらは逐次動作のために引き出されたもの
だからである。
ブランチ条件が生じた時、処理を継続するために、命令
レジスタ16及び18はブランチ先アドレスにある命令
を充填されねばならない。
ブランチ条件は線200上の未決アクセス信号の発生に
よって示される。
この信号は、ユーザーのブランチ命令を解読し、実行し
ているマイクロ命令中の成るコードに応答する記憶制御
解読器238によっ つで発生される。
線200上の未決アクセス信号は第3図及び第5図に示
される未決アクセス制御回路320へ転送される。
未決アクセス信号の第1の効果は、線310上にFIB
カウンタ・リセット信号を発生することである。
FIBカウンタ・リセット信号ハ命令バッファ充填カウ
ンタ302をゼロへセットし、仮想アドレス変換器10
によって未だ処理されていない命令バッファ充填要求を
除去する。
更に線−200上の未決アクセス信号は、線365;
上に未決アクセス孔1信号を発生するラッチをセットす
る。
この信号は第4図の有効ラッチ380及び440をリセ
ットするように働き、IB及びISレジスタ16及び1
8中の命令が無効であることを表示する。
未決アクセス信号が生じた時、ビジィ・ラッチ504が
アクチブであれば、線324上にデータ準備完了禁止信
号を発生するためラッチ470がセットされ、主記憶ビ
ジィ制御回路326及び未決アクセス制御回路320を
して、主記憶装置12によって発生された次のデー夕準
備完了信号を無視させる。
データ準備完了信号が無視されねばならない理由は、未
決アクセス信号が生じた時に主記憶装置12によって処
理されていたフェッチ要求が元の逐次的命令サイクルに
基づいており、発生したブランチ命令と共に使用できな
いからである。
この時点において、唯1つのフェッチのみを主記憶装置
で処理することができる。
何故ならば、前述した如く、FIB要求信号を除去する
ため、カウンタ302は直ちにリセットされたからであ
る。
一度上記の条件が未決アクセス信号によって設定される
と、第3図のブリフェッチ論理回路はIB及びISレジ
スタ16及び18を充填する命令を検索するため、2つ
のメモリ・アクセス指令を発生するようにセットされる
これらのフェッチ動作は、制御記憶出力レジスタ166
中に含まれるマイクロ命令中のコードに応答して、FI
B状態制御指令が線275上に発生される時に開始され
る。
ブランチ動作を含むマイクロ命令は、必要な次の命令が
与えられるようにブリフェッチ論理回路を起動する指令
を制御フィールドに含む。
ブランチ命令のブランチ先アドレスは、ISレジスタ1
8中のブランチ命令中に含まれる。
アドレスはISレジスタ18からALU28を通ってバ
ス87へ達し、仮想アドレス変換器10へ転送される。
そして変換器内のアドレス・レジスタは次の命令のアド
レスへセットされる。
次いでアドレス・レジスタは、この地点から他のブラン
チ命令が発生するまで増進する。
前述した如く、仮想アドレス変換器10は仮想アドレス
を受取り、テーブルを利用して、主記憶装置12の命令
へアクセスするための実アドレスへ上記仮想アドレスを
変換する。
変換チーフルは、主記憶装置のメモリ部分へ迅速にアク
セスするため、仮想アドレス変換器中に含まれる。
しかし、仮想アドレス変換器10の中に記憶できる変換
テーブルを用いては、全体のメモリの小部分しかアクセ
スすることができない。
変換テーブルは、通常主記憶装置中の主たるユーザー・
プログラムが前金できる程度の大きさに維持される。
通常の場合、ブリフェッチ論理回路からのフェッチ命令
は所望の命令を得るように変換されるが、変換アドレス
がテーブルの中に含まれなげれば、仮想アドレス変換器
10は所望の命令を検索することができない。
このような事態は多くの場合に生じる。例えば、アドレ
ス・レジスタを増進することによって、又は変換テーブ
ル内に含まれないアドレスを選択するブランチ命令に基
づく仮想アドレスを入力することによって、テーブルの
ページ境界を越える場合がある。
仮想アドレス変換器10が線219上のFIB要求指令
に対して仮想アドレスから実アドレスへ変換することが
できない時、変換器10は線218上のVATプリフェ
ッチ・ミス指令信号によって主記憶インターフェイス制
御装置に応答する。
これはIBレジスタ16のために命令を検索する主記憶
装置のフェッチが完了しないことをプノフエツチ論理装
置へ表示する。
これは必ずしもマイクロプロセッサ14の動作を停止し
ない。
何故ならば、要求されている命令は将来使用するための
ものであり、ISレジスタ18中の命令に関連する現在
の動作は継続することができるからである。
アドレスが変換不能の場合、ISレジスタ18中に含ま
れる命令が完全に処理されてしまうまで、ブリフェッチ
論理回路は行動を起さない。
もしISレジスタ18中の命令がブランチ動作を要求す
るならば、IBレジスタ16の内容は必要とされず、線
200上の未決アクセス信号はブリフェッチ・ミス・ラ
ンチ462をリセットし、前述したようにしてブランチ
動作が行なわれる。
この動作は仮想アドレス変換器10におけるアドレス変
換の失敗を無視する。
何故ならば、要求されたアドレス変換は、ブランチ動作
が生じたために、もはや必要とされないからである。
しかし、ISレジスタ18がブランチ命令を含まず、そ
の内容が処理されてしまったならば、ISレジスタ18
の有効ラッチはリセットされ、このレジスタの内容が無
効であることを表示する。
この場合、ユーザー・プログラムの処理を継続するため
、マイクロ命令がISレジスタ18中の他の命令を参照
すると、ハードウェア・トラップ動作が生じる。
ハードウェア・トラップ回路は第5図の上部に示される
ラッチ462はVATプリフェッチ・ミス指令によって
セットされる。
この指令は、アドレス変換を完了することができない時
、仮想アドレス変換器によって発生される。
このラッチはAND回路466へ第1人力を与える。
線463上のノツ)VIS信号が高であることによって
ISレジスタの有効が表示され、線178上のIS源信
号によってマイクロ命令によるISレジスタ18へのア
クセス探索が表示される時、回路466はブリフェッチ
・ミス・トラップ信号を発生する。
AND回路466によって発生されたブリフェッチ・ミ
ス・トラップ信号は、制御記憶装置30中のマイクロプ
ログラムを呼出す。
このプログラムは主記憶装置中に記憶されたマスター・
テーブルを参照し、前に仮想アドレス変換器によって変
換できなかった仮想アドレスを正しく変換する。
このプログラムは、変換を行なうことができるように、
仮想アドレス変換器のレジスタを更新する。
この更新が行なわれた後、前述したようにコンピュータ
の通常の動作が再開される。
仮想アドレス変換器10の変換テーブル内に含まれない
メモリ要求に対して変換を達成する以上の動作は、要求
された命令が実際にマイクロプロセッサによって実行さ
れようとしている場合を除き、マイクロプロセッサの動
作がブリフェッチ・ミスによって遅くなることはないの
で特に重要な意味を持つ。
多くの場合、変換ミスを生じる命令は実際には使用され
ない。
何故ならば、現在実行されているユーザー命令によって
ブランチがとられるからである。
この場合、使用されない変換アドレスを得る際に時間が
無駄になることはない。
従って、不必要なアドレス変換はなされず、マイクロプ
ロセッサの動作効率は低下しない。
IB及びISレジスタ16及び18の有効ラッチがリセ
ットされて、それらレジスタ中の命令が無効であること
が表示される時、前述したようなトラップは、ブリフェ
ッチ・ミス・ラッチ462がセットされ仮想アドレス変
換器10がアドレス変換を行なうことができない時にの
み起る。
もしアドレス変換の失敗が起らなければ、主記憶装置1
2から命令がフェッチされるよりも早(、マイクロプロ
セッサは命令を実行することができる。
この場合、ISレジスタ18中の命令は無効であるから
、そのレジスタから次の命令をフェッチするマイクロプ
ロセッサの試みは防止されねばならない。
これは第2図のブリフェッチ停止回路250によって達
成される。
上記の条件が満足された時、線222上にブリフェッチ
停止信号が発生される。
この信号は第9図に示されるクロック回路網への入力と
なる。
ブリフェッチ停止信号はALU28及び制御記憶装置3
0に対するクロック信号の発生を中止する。
主記憶装置12及び仮想アドレス変換器10によって実
行されているメモリ・フェッチ動作は継続し、ISレジ
スタ18を充填する命令の転送がなされた時、線222
上のブリフェッチ停止信号が除去され、第9図のクロッ
ク回路網によるクロック信号の発生が再開され、プロセ
ッサ動作が継続する。
第9図のクロック回路網は第10図に示される複数のク
ロック信号を発生する。
プリンエッチ論理回路は高速クロック信号と共に動作し
、マイクロプロセッサは高速クロック信号から低減され
たクロック信号に基づいてサイクルを進める。
ブリフェッチ停止信号が線222上に現われてもブリフ
ェッチ論理回路の動作は停止されない。
ブリフェッチ論理回路の動作は、主記憶装置へアクセス
してISレジスタ18中へ記憶すべき命令を検索してい
る間高速で継続している。
従って、マイクロプロセッサはISレジスタ18中に有
効な命令が受取られると直ちに起動される。
マイクロプロセッサはそのサイクルを遅延させる必要は
ない。
何故ならば、マイクロプロセッサは高速クロックの任意
のC1クロック・パルスで動作を再開することができる
からである。
要するに、本発明は高速マイクロプロセッサ及び低速非
同期主記憶装置の効率を最大ならしめる命令ブリフェッ
チ回路に関する。
速度及び効率の増大は、マイクロプログラマ及び高レベ
ル・ユーザーに対して全体のブリフェッチ処理をトラン
スペアレントに維持しつつ達成される。
一度マイクロ命令によって能動化されると、プリンエッ
チ動作は完全にハードウェアによって制御され、プログ
ラミングに左右されない。
【図面の簡単な説明】
第1図は本発明を実施したコンピュータの概略的ブロッ
ク図、第2図は第1図に示されるマイクロ命令解読兼制
御ユニット170及び主記憶インターフェイス制御装置
212に含まれるブリフェッチ停止回路250の詳細図
、第3図は主記憶インターフェイス制御装置及びIポイ
ンタ52の詳細図、第4図は第3図に示される命令レジ
スタ有効ラッチ回路288の論理図、第5図は第3図の
機能ブロックとして示される未決アクセス制御回路32
0、主記憶ビジィ制御回路326、ブリフェッチ・トラ
ップ制御回路340、ブリフェッチ・ミス制御回路33
8の論理図、第6図は第3図に示される命令バッファ充
填カウンタ符号器332の論理図、第7図は第3図に示
される命令ポインタ回路282及びオーバフロー検出回
路284の論理図、第8図は第3図に示される命令バッ
ファ充填カウンタ302の論理図、第9図はコンピュー
タで使用される各種のクロック信号を発生するタイミン
グ回路の論理図、第10図は第9図に示される回路によ
って発生されるクロック信号を示すタイミング図、第1
1図は本発明のブリフェッチ回路を能動化する代表的マ
イクロ命令を示す図である。 10・・・・・・仮想アドレス変換器、12・・・・・
・主記憶装置、14・・・・・・マイクロプロセッサ、
16・・・・・・命令バッファ・レジスタ、18・・・
・・・命令ストリーム・レジスタ、20,22,24,
26・・・・・・レジスタ、28・・・・・・演算論理
ユニット、30・・・・・・制御記憶装置、162・・
・・・・ネキスト・アドレス論理装置、170・・・・
・・マイクロ命令解読兼制御ユニット、202・・・・
・・タイミング・ユニット、212・・・・・・主記憶
インターフェイス制御装置。

Claims (1)

    【特許請求の範囲】
  1. 1 計算ユニットによって処理すべき複数の命令を順次
    に記憶する主記憶装置と、選択された1群の仮想アドレ
    スを上記主記憶装置をアクセスするために使用される実
    アドレスへ変換するための変換テーブルを有する仮想ア
    ドレス変換装置とを備え、該仮想アドレス変換装置は上
    記主記憶装置から先取りすべき次の命令の仮想アドレス
    を与えられてそのアドレス変換を行うとともに、アドレ
    ス変換を行うことができない場合は変換ミス信号を発生
    するように横取されており、さらに上記主記憶装置は完
    全な主変換テーブルを保持するように編成すれているコ
    ンピュータにおいて、上記主記憶装置から先取りされた
    命令を受取り且つ該命令を上記計算ユニットへ順次に転
    送するように接続されたレジスタ手段を設け、上記変換
    ミス信号が発生され且つ上記レジスタ手段から上記計算
    ユニットへ転送される先取り命令にブランチ命令が検出
    されたことに応答してそのブランチ先命令の仮想アドレ
    スを上記仮想アドレス変換装置へ与える手段と、上記変
    換ミス信号が発生され且つ上記レジスタ手段から上記計
    算ユニットへ転送される先取り命令にブランチ命令が検
    出されなかったことに応答して上記変換ミス信号を生せ
    しめた仮想アドレスを上記主記憶装置に保持された上記
    主変換テーブルへ与える手段とを具備する命令先取り装
    置。
JP54136025A 1978-10-23 1979-10-23 命令先取り装置 Expired JPS5831014B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/954,068 US4298927A (en) 1978-10-23 1978-10-23 Computer instruction prefetch circuit

Publications (2)

Publication Number Publication Date
JPS5559553A JPS5559553A (en) 1980-05-06
JPS5831014B2 true JPS5831014B2 (ja) 1983-07-02

Family

ID=25494888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54136025A Expired JPS5831014B2 (ja) 1978-10-23 1979-10-23 命令先取り装置

Country Status (4)

Country Link
US (1) US4298927A (ja)
EP (1) EP0010188B1 (ja)
JP (1) JPS5831014B2 (ja)
DE (1) DE2965935D1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4616331A (en) * 1980-02-25 1986-10-07 Tsuneo Kinoshita Information processing system consisting of an arithmetic control unit formed into a one-chip typed by application of a highly-integrated semiconductor device
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
USRE32493E (en) * 1980-05-19 1987-09-01 Hitachi, Ltd. Data processing unit with pipelined operands
JPS57185545A (en) * 1981-05-11 1982-11-15 Hitachi Ltd Information processor
DE3120713A1 (de) * 1981-05-25 1982-12-09 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung fuer ein prozessorsystem
EP0411679B1 (en) * 1982-08-23 1996-05-01 Western Electric Company, Incorporated Apparatus for dynamically adding a next address field to the instructions of a computer system.
JPH061441B2 (ja) * 1983-09-12 1994-01-05 モトロ−ラ・インコ−ポレ−テツド 先取り確認装置
JPS6225302A (ja) * 1985-07-25 1987-02-03 Fanuc Ltd 数値制御装置
US4761731A (en) * 1985-08-14 1988-08-02 Control Data Corporation Look-ahead instruction fetch control for a cache memory
US4722047A (en) * 1985-08-29 1988-01-26 Ncr Corporation Prefetch circuit and associated method for operation with a virtual command emulator
US4853840A (en) * 1986-01-07 1989-08-01 Nec Corporation Instruction prefetching device including a circuit for checking prediction of a branch instruction before the instruction is executed
US4797817A (en) * 1986-12-10 1989-01-10 Ncr Corporation Single cycle store operations in a virtual memory
JPS63181005A (ja) * 1987-01-23 1988-07-26 Fanuc Ltd 数値制御装置の並列処理方式
US5119484A (en) * 1987-02-24 1992-06-02 Digital Equipment Corporation Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction
JPS63317828A (ja) * 1987-06-19 1988-12-26 Fujitsu Ltd マイクロコ−ド読み出し制御方式
US5058007A (en) * 1987-11-05 1991-10-15 Raytheon Company Next microinstruction generator in a microprogram control unit
JPH02190930A (ja) * 1988-12-29 1990-07-26 Internatl Business Mach Corp <Ibm> ソフトウエア命令実行装置
JPH02306341A (ja) * 1989-02-03 1990-12-19 Nec Corp マイクロプロセッサ
US5329621A (en) * 1989-10-23 1994-07-12 Motorola, Inc. Microprocessor which optimizes bus utilization based upon bus speed
US5537552A (en) * 1990-11-27 1996-07-16 Canon Kabushiki Kaisha Apparatus for selectively comparing pointers to detect full or empty status of a circular buffer area in an input/output (I/O) buffer
JP2839730B2 (ja) * 1991-02-25 1998-12-16 株式会社東芝 エミュレーション装置及び半導体装置
JPH05173779A (ja) * 1991-12-25 1993-07-13 Toshiba Corp デジタル演算集積回路
US5367657A (en) * 1992-10-01 1994-11-22 Intel Corporation Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems
JP2596712B2 (ja) * 1993-07-01 1997-04-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 近接した分岐命令を含む命令の実行を管理するシステム及び方法
JPH07182170A (ja) * 1993-12-24 1995-07-21 Ricoh Co Ltd マイクロプロセッサ
US5734856A (en) * 1994-04-05 1998-03-31 Seiko Epson Corporation System and method for generating supplemental ready signals to eliminate wasted cycles between operations
US6401192B1 (en) 1998-10-05 2002-06-04 International Business Machines Corporation Apparatus for software initiated prefetch and method therefor
KR20150071373A (ko) * 2013-12-18 2015-06-26 삼성디스플레이 주식회사 디스플레이 드라이버 및 이를 포함하는 영상 신호 처리 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4838642A (ja) * 1971-09-17 1973-06-07
JPS5024044A (ja) * 1973-07-04 1975-03-14

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3162841A (en) * 1961-11-14 1964-12-22 Ibm Instruction counter system
US3293616A (en) * 1963-07-03 1966-12-20 Ibm Computer instruction sequencing and control system
US3426330A (en) * 1966-02-14 1969-02-04 Burroughs Corp Central data processor
US3559183A (en) * 1968-02-29 1971-01-26 Ibm Instruction sequence control
US3593306A (en) * 1969-07-25 1971-07-13 Bell Telephone Labor Inc Apparatus for reducing memory fetches in program loops
BE789583A (fr) * 1971-10-01 1973-02-01 Sanders Associates Inc Appareil de controle de programme pour machine de traitement del'information
US3811114A (en) * 1973-01-11 1974-05-14 Honeywell Inf Systems Data processing system having an improved overlap instruction fetch and instruction execution feature
FR2226079A5 (ja) * 1973-04-13 1974-11-08 Honeywell Bull Soc Ind
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
IT993428B (it) * 1973-09-26 1975-09-30 Honeywell Inf Systems Unita di controllo di calcolatore microprogrammato con microprogram mi residenti in memoria e sovrap posizioni delle fasi interpretati ve di una microistruzione con la fase esecutiva della precedente microistruzione
US4050058A (en) * 1973-12-26 1977-09-20 Xerox Corporation Microprocessor with parallel operation
US3972024A (en) * 1974-03-27 1976-07-27 Burroughs Corporation Programmable microprocessor
US4032896A (en) * 1974-10-30 1977-06-28 Motorola, Inc. Microprocessor having index register coupled to serial-coupled address bus sections and to data bus
US4004281A (en) * 1974-10-30 1977-01-18 Motorola, Inc. Microprocessor chip register bus structure
DE2557787C2 (de) * 1975-12-22 1982-09-09 Siemens AG, 1000 Berlin und 8000 München Vorausladeeinrichtung zum mikroprogrammierten und verdeckten Bereitstellen von Maschinenbefehlen unterschiedlichen Formats in einem Prozessor eines datenverarbeitenden Systems
US4062058A (en) * 1976-02-13 1977-12-06 The United States Of America As Represented By The Secretary Of The Navy Next address subprocessor
US4084227A (en) * 1976-09-24 1978-04-11 Sperry Rand Corporation Virtual address translator
US4153941A (en) * 1976-11-11 1979-05-08 Kearney & Trecker Corporation Timing circuit and method for controlling the operation of cyclical devices
US4079455A (en) * 1976-12-13 1978-03-14 Rca Corporation Microprocessor architecture
US4149245A (en) * 1977-06-09 1979-04-10 International Business Machines Corporation High speed store request processing control
US4179737A (en) * 1977-12-23 1979-12-18 Burroughs Corporation Means and methods for providing greater speed and flexibility of microinstruction sequencing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4838642A (ja) * 1971-09-17 1973-06-07
JPS5024044A (ja) * 1973-07-04 1975-03-14

Also Published As

Publication number Publication date
JPS5559553A (en) 1980-05-06
EP0010188B1 (en) 1983-07-20
EP0010188A1 (en) 1980-04-30
US4298927A (en) 1981-11-03
DE2965935D1 (en) 1983-08-25

Similar Documents

Publication Publication Date Title
JPS5831014B2 (ja) 命令先取り装置
JP3120152B2 (ja) コンピューターシステム
CA1325285C (en) Method and apparatus for ordering and queueing multiple memory requests
US4574349A (en) Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
EP0057788B1 (en) Data processing system with external microcode control unit
EP0381447B1 (en) Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
EP0213842A2 (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
JPH0429093B2 (ja)
US5249280A (en) Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
JPH0128415B2 (ja)
JPH04309131A (ja) 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置
US5717910A (en) Operand compare/release apparatus and method for microinstrution sequences in a pipeline processor
JPH0766365B2 (ja) コ・プロセツサ制御方式
JPS6158853B2 (ja)
EP0010196B1 (en) Control circuit and process for digital storage devices
US5619667A (en) Method and apparatus for fast fill of translator instruction queue
US4430708A (en) Digital computer for executing instructions in three time-multiplexed portions
US5404471A (en) Method and apparatus for switching address generation modes in CPU having plural address generation modes
US5363490A (en) Apparatus for and method of conditionally aborting an instruction within a pipelined architecture
US5590293A (en) Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US5864690A (en) Apparatus and method for register specific fill-in of register generic micro instructions within an instruction queue
JP2680828B2 (ja) ディジタル装置
CA1193738A (en) Pre-execution next address calculating mechanism
GB2390179A (en) Improved stack architecture
US7594103B1 (en) Microprocessor and method of processing instructions for responding to interrupt condition