JPH0210452B2 - - Google Patents

Info

Publication number
JPH0210452B2
JPH0210452B2 JP63145987A JP14598788A JPH0210452B2 JP H0210452 B2 JPH0210452 B2 JP H0210452B2 JP 63145987 A JP63145987 A JP 63145987A JP 14598788 A JP14598788 A JP 14598788A JP H0210452 B2 JPH0210452 B2 JP H0210452B2
Authority
JP
Japan
Prior art keywords
size
register
code
microinstruction
decoding
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
JP63145987A
Other languages
English (en)
Other versions
JPS6446135A (en
Inventor
Buruusu Batsutsu Junia Eichi
Enu Katsutoraa Deibitsuto
Chaaruzu Shunooa Piitaa
Teii Shooto Robaato
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPS6446135A publication Critical patent/JPS6446135A/ja
Publication of JPH0210452B2 publication Critical patent/JPH0210452B2/ja
Granted 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/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30181Instruction operation extension or modification
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Hardware Redundancy (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Paper (AREA)
  • Motorcycle And Bicycle Frame (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
  • Advance Control (AREA)
  • Communication Control (AREA)

Description

【発明の詳細な説明】
[産業上の利用分野] 本発明は、デイジタル・コンピユータ用の中央
処理装置に関する。 [従来の技術] 近年、仮想メモリ管理システム、32ビツト・デ
ータ・パス、データ・キヤツシユ、種々のデー
タ・タイプ及びアドレツシング・モードの使用能
力、可変長命令フオーマツト並びにその他の進歩
した特徴を備えた、多数のデイジタル・コンピユ
ータが開発されている。しかしながら、今日ま
で、そのような特徴を具備させた結果は、高価格
で物理的サイズの大きいコンピユータである。例
えば、上記した属性を具備するコンピユータの中
央処理装置は500立方インチもの回路板空間を占
めるといつても過言ではない。結果として、その
ようなコンピユータを多くの用途に用いるのは不
可能であり、実際的ではない。 [発明の概要] 本発明は、小型で経済的であるばかりか、32ビ
ツト・データ・パス、可変長命令、種々のアドレ
ツシング・モード及びその他の優れた特徴を備え
るデイジタル・コンピユータ用中央処理装置を提
示する。その中央処理装置は、パイプ・ライン及
びマイクロプログラムの設計を採用し、非常にコ
ンパクトなマイクロコードで強力な機能の実行を
許容するハードウエア上の多数の特徴を備えてい
る。 本発明の好ましい実施例では、中央処理装置
は、1個のサイズ・レジスタと、マクロ命令演算
コードの解読の間に動作する手段であつて、マク
ロ命令で特定されるデータ・サイズを示すコード
をサイズ・レジスタにロードするものとを含む。
マクロ命令の実行の間、サイズ・レジスタは、デ
ータ・パス中のエレメントの数を決定するため
に、種々の時点で利用される。 本発明のこれら及びその他の特徴は、添付図面
を参照する以下の説明から明らかとなるであろ
う。 [実施例] 第1図は、本発明の中央処理装置の好ましい実
施例を含むコンピユータ・システムを示す。この
コンピユータ・システムは、中央処理装置
(CPU)10、システム・バス20、メモリ・ア
レイ22及びコンソール・ターミナル24を具備
する。このコンピユータ・システムはまた、例え
ばデイスク制御装置やネツトワーク・インターフ
エースのような、システム・バス20に連結する
種々の周辺装置(図示せず)を具備する。コンソ
ール・ターミナル24は、もしも適当なインター
フエース、例えばローカル・エリア・ネツトワー
クへのインターフエースがシステム・バス20上
に用意されるならば、除去してもよい。CPU1
0は、メモリ制御モジユール12とデータ・パ
ス・モジユール14からなる。プログラム命令の
実際の実行は、データ・パス・モジユール14に
よつて制御され、メモリ制御モジユール12は、
一般的には、データ・パス・モジユール14とシ
ステム・バス20との間のインターフエースとし
て作用する。メモリ制御モジユール12及びデー
タ・パス・モジユール14は、メモリ制御バス1
6及びメモリ・データ・バス18を介して通信す
る。 メモリ制御モジユール12は、データ・パス・
モジユール14に関して非同期的に動作するマイ
クロプログラムされた装置である。メモリ制御モ
ジユール12は、CPU10とシステム・バス2
0との間のインターフエースを与えるだけでな
く、データ・パス・モジユール14のためのアド
レス翻訳機能、命令プリフエツチ機能及びデー
タ・キヤツシユ機能を与える。アドレス翻訳は、
データ・パス・モジユール14によつて特定され
る仮想アドレスの実際の物理アドレスへの翻訳又
は変換を云う。データ・キヤツシユの語は、
CPU内の高速メモリ・アレイで最近使われるよ
うになつた記憶装置をいう。 第2図において、メモリ制御モジユール12
は、送受信器30、バス32,34、翻訳バツフ
ア/キヤツシユ40、物理アドレス・レジスタ4
2、システム・バス・インターフエース44、マ
ージ/回転ユニツト48、マイクロシーケンサ/
制御記憶装置50、バス制御装置52及び命令プ
リフエツチ・ユニツト56を具備する。メモリ制
御ユニツトの機能については、データが特定の仮
想アドレスから読出されるべきことをデータ・パ
ス・モジユール14が要求するときに生じる一連
の動作を概観することによつて説明する。デー
タ・パス・モジユール14は、仮想アドレスをバ
ス・ラツチ64に置き、その仮想アドレスはその
ポイントからメモリ・データ・バス18を介して
メモリ制御モジユール12に送出される。そのア
ドレスは、送受信器30を通つてバス32に至
る。バス32上の仮想アドレスは翻訳バツフア/
キヤツシユ40に現われ、もしも要求された翻訳
エントリが存在する(例えば、キヤツシユ・ヒツ
ト)ならば、対応する物理アドレスがバス34上
に作り出される。バス34から、物理アドレスは
物理アドレス・レジスタ42にロードされ、そこ
からバス32上にロードされる。バス32上の物
理アドレスはそれで、翻訳バツフア/キヤツシユ
40及びシステム・バス・インターフエース・ユ
ニツト44に同時に提示される。もしも要求され
たデータがキヤツシユ中にある場合には、翻訳バ
ツフア/キヤツシユ40は、次のマシーン・サイ
クルでバス34上に要求されたデータを送出す
る。もしもキヤツシユ・ミスが生じたならば、要
求されたデータをメモリ・アレイ22から取り出
すために、システム・バス・サイクルが実行され
る。データがメモリから受け取られると、それ
は、システム・バス・インターフエース44から
バス34上に至る。一旦、キヤツシユ又はメモリ
からデータがバス34上に受信されると、そのデ
ータは、マージ/回転ユニツト48を介してバス
32にロードされる。要求されたデータは、送受
信器30及びメモリ・データ・バス18を介して
データ・パス・モジユール14に至り、仮想読出
サイクルが完了する。メモリ制御動作の上記シー
ケンスは、マイクロシーケンサ/制御記憶装置5
0から出る制御信号によつて実行され、統御され
る。 マイクロシーケンサ/制御記憶装置50によつ
て実行される特定のマイクロプログラムは、デー
タ・パス・モジユール14によつてメモリ制御モ
ジユール12にメモリ制御バス16を介して送り
出されるメモリ制御コマンド28により選択され
る。このコマンド28は、仮想アドレスがメモ
リ・データ・バス18上に置かれるのと同じ時点
に送出される。システム・バス20の利用を必要
とする、メモリ制御モジユール12のマイクロプ
ログラムのためには、マイクロプログラムは、バ
ス制御装置52を経て動作する。 メモリ制御モジユール12によつて実行される
付加的な機能は、データ・パス・モジユール14
による実行のための命令のプリフエツチである。
プリフエツチされた命令は命令プリフエツチ・ユ
ニツト56に収容され、必要とされる際に1度に
1バイトずつメモリ制御バス16を介して、デー
タ・パス・モジユール14に送られる。メモリ制
御バス16はそれ故、2つの異なる機能、即ち、
メモリ制御モジユール12からデータ・パス・モ
ジユール14への命令の転送と、データ・パス・
モジユール14からメモリ制御モジユール12へ
のメモリ制御コマンドの転送とを果たす。 データ・パス・モジユール14によつて実行さ
れる各マクロ命令は、一般に、演算コード(OP
コード)と、それに従う1又は2以上のオペラン
ド指定子(スペシフアイアー)とからなる。オペ
ランド指定子は、データ又はマクロ命令が作用す
べきデータの位置を指定する。前者の場合、オペ
ランド指定子に含まれるデータをリテラル
(literal)と呼ぶ。後者の場合、オペランド指定
子は、アドレツシング・モード及びレジスタの番
号(例えばアドレス)を示す。アドレツシング・
モードの例として、指定レジスタがデータを収容
している直接モード及び、指定レジスタがデータ
のアドレスを収容している間接モードがある。例
えば、レジスタ3及びレジスタ4の内容を加算す
るマクロ命令では、OPコードは加算を指定し、
2つのオペランド指定子は、レジスタ3直接及び
レジスタ4直接をそれぞれ指定する。ここで説明
する好ましい実施例では、各OPコード及びオペ
ランド指定子は、1バイト又は2バイト以上を含
み、そのマクロ命令のバイトは、データ・パス・
モジユール14によつて受信され、一度に1バイ
トずつ処理される。 第2図のデータ・パス・モジユール14を参照
する。マクロ命令の実行は、制御論理ユニツト6
0によつて実行されるマイクロ命令によつて遂行
される。制御論理ユニツト60は、ALU、汎用
目的のレジスタ、2つのポインタ・レジスタ、マ
クロプログラム・カウンタ及び以下に説明するそ
の他の要素を具備する。各マクロ命令に対して、
制御論理ユニツト60は、制御記憶装置62に収
容された一連のマクロ命令を実行する。新しいマ
クロ命令のOPコードがメモリ制御バス16から
命令レジスタ70にロードされた時に、マクロ命
令のシーケンスが開始する。OPコードの値及び
現在のマイクロ命令の部分は、解読ROM74で
の記憶場所をアドレスするために使用される。そ
れに応じて、解読ROM74は、多数の出力、即
ち、マクロ命令のOPコードに対応する最初のマ
イクロ命令の制御記憶装置62でのアドレスを指
定する次マイクロアドレスと、マクロ命令が作用
すべきデータのバイト長を示すSIZE信号と、以
下に説明する機能のCC CLASS(コンデイシヨ
ン・コード クラス)信号とを出力する。命令レ
ジスタ70がオペランド指定子を含むとき、解読
ROM74は、追加的に、アドレツシング・モー
ドが直接か否かを示す、REGISTER信号を出力
する。 解読ROM74によつて出力される次のマイク
ロアドレスは、マイクロシーケンサ76を介して
制御記憶アドレス・レジスタ78に至る。制御記
憶アドレス・レジスタ78に収容されたアドレス
は、制御記憶装置62でアクセスされるマイクロ
命令を指定する。アクセスされたマイクロ命令の
部分は、多数の指定装置に発送される。或る部分
は、実行のために制御論理ユニツト60へ行く。
第二の部分はマイクロシーケンサ76へ行き、そ
こでは、次のマイクロ命令のアドレスを決定する
ために利用される。或る状況では、制御記憶装置
62はまた、メモリ制御信号28と、サイズ・レ
ジスタ88及びCC論理ユニツト90にロードさ
れるべき値を供給する。第1のマイクロ命令が実
行を開始した後、マイクロシーケンサ76は、次
のマイクロ命令のアドレスを制御記憶アドレス・
レジスタ78に置かせ、シーケンスは、マクロ命
令に対応する全てのマイクロ命令が実行されてし
まうまで続く。マイクロスタツク80は、制御記
憶装置62のマイクロプログラムでマイクロサブ
ルーチン及びマイクロトラツプの利用を可能にす
るために設けられる。マイクロスタツク80の動
作は、以下に詳細に説明する。 データ・パス・モジユール14に含まれる他の
エレメントは、バス・ラツチ64、バス82,8
4、ラツチ86、サイズ・レジスタ88、CC(コ
ンデイシヨン・コード)論理ユニツト90、イン
デツクス・レジスタ92、コンソール・インター
フエース94、割込制御論理ユニツト96及び命
令レジスタ・バツフア98である。バス82及び
同84は、種々の前後関係でデータ・パス・モジ
ユール14のエレメント間でデータを通すために
使われる。ラツチ86は、バス82とバス84と
の間の隔離を与える。サイズ・レジスタ88は、
制御論理ユニツト60のための既定データ・パス
幅を示すコード(通常は、解読ROM74又は制
御記憶装置62からのSIZE信号から導出され
る。)を保持するために利用される。コンデイシ
ヨン・コード論理ユニツト90は、制御論理ユニ
ツト60の出力に基づくマクロレベルのコンデイ
シヨン・コードのセツテイングを制御するために
利用される。インデツクス・レジスタ92は、次
マイクロアドレスを決定するためにマイクロシー
ケンサ76によつて利用され得る4ビツト・レジ
スタである。コンソール・インターフエース94
は、コンソール・ターミナル24(第1図)とデ
ータ・パス・モジユール14との間をインターフ
エースするために使われるシリアル・ポートであ
る。割込制御論理ユニツト96は、割込を起こす
べきかどうかを決定するため、システム・バス2
0からの任意の割込をCPUの現在状態と比較す
る。命令レジスタ・バツフア98は、バス82を
介して命令レジスタ70の内容を制御論理ユニツ
ト60に送る手段を提供する。 マイクロシーケンサ76の機能は、マイクロ命
令が制御論理ユニツト60によつて実行されるシ
ーケンスを決定することである。所与のマイクロ
命令の実行の間に、次のマイクロ命令の制御記憶
装置62でのアドレスを決定して、そのアドレス
を制御記憶アドレス・レジスタ78に置くことに
よつて、マイクロシーケンサ76は、これを達成
する。マイクロシーケンサ76は、現在のマイク
ロ命令にコード化された情報並びに種々のステー
タス・ライン及び制御ライン上の信号に基づき、
次マイクロ命令のアドレスを決定する。 第3図は、マイクロシーケンサ76をより詳細
に示す。次マイクロアドレスは、MUX(マルチ
プレクサ)200の出力によつて決定される。
MUX200への入力は、ページ・レジスタ20
1、マイクロプログラム・カウンタ202及び
ORゲート204である。これらの入力の間の選
択は、JUMP MUX206及び後述の他の制御
信号によつて決定される。ページ・レジスタ20
1は、現時マイクロ命令アドレスの高位ビツト
(複数)を保持する。マイクロプログラム・カウ
ンタ202は、現時マイクロ命令アドレスの低位
ビツト(複数)に1を加えたものを保持する。ペ
ージ・レジスタ201及びマイクロプログラム・
カウンタ202はそれ故、一緒になつて、次の連
続するマイクロ命令アドレスを指し示す。MUX
200によるこれら入力の選択は、コンピユー
タ・システムが一連にマイクロ命令を実行する簡
単な場合を表わす。 ORゲート204は、OR MUX208の出力
とバス210上のアドレスとの間で論理OR演算
を行なう。バス210は、解読ROM74、ジヤ
ンプ・レジスタ212又はマイクロスタツク80
のいずれかによつて決定されたアドレスを収容す
る。マイクロ命令のOPコード又は1バイトのオ
ペランド指定子が解読される場合には、解読
ROM74からバス210上のアドレスが導出さ
れる。この場合、解読ROM74は、このマクロ
命令バイトによつて特定される機能を実行するた
めに必要とされる最初のマクロ命令のアドレスの
全部又は一部のいずれかを供給する。非連続的な
ジヤンプ又はブランチがマイクロ命令のシーケン
スで生じる場合には、一般に、ジヤンプ・レジス
タ212がバス210上のアドレスのソースであ
る。ブランチしようとするアドレスは、制御記憶
装置62中の現時マイクロ命令の内容から導出さ
れ、ジヤンプ・レジスタ212に置かれる。最後
に、マイクロサブルーチン又はマイクロトラツプ
からの復帰(リターン)が生じる場合には、マイ
クロスタツク80がバス210上のアドレスのソ
ースである。復帰アドレスは、元のサブルーチ
ン・コール又はトラツプが生じた時にマイクロス
タツク80に収容される。復帰アドレスは、サブ
ルーチン・コールに対してページ・レジスタ20
1の内容及びマイクロプログラム・カウンタ20
2の内容によるか、又は、トラツプに対して、ペ
ージ・レジスタ201の内容及びマイクロプログ
ラム・カウンタ202の内容マイナス1(即ち、
現在のマイクロアドレス)によるかのどちらかで
決定される。後者の場合、条件付デクレメンタ2
14が、マイクロプログラム・カウンタ202の
内容から1を減ずるために使われる。 制御記憶装置62に収容される各マイクロ命令
は、データ・パス制御フイールド、コンデイシヨ
ン・コード/サイズ・フイールド及び次アドレス
制御フイールドの3個のフイールドを具備する。
データ・パス制御フイールドは、制御論理ユニツ
ト60(第2図)によるマイクロ命令の実行を制
御するために使われる。コンデイシヨン・コー
ド/サイズ・フイールドは、後で説明する。次ア
ドレス制御フイールドは、次のマイクロ命令のア
ドレスを決定するためにマイクロシーケンサ76
によつて使われる。次アドレス制御フイールド
は、概念的には、次のように4個のサブフイール
ドに分割できる。即ち、 タイプ ジヤンプ・コンデイシヨン オア ジヤンプ・アドレス サブフイールド「タイプ」は、表1に列記し以
下に詳細に説明するブランチ・タイプの1つを特
定する。サブフイールド「ジヤンプ・コンデイシ
ヨン」は、非連続的なブランチがマイクロ命令の
シーケンスで生じたか否かを決定するためにテス
トすべきコンデイシヨンを特定する。第3図を参
照すると、サブフイールド「ジヤンプ・コンデイ
シヨン」は部分的に、MUX200の制御のため
にJUMP MUX206への入力のどれを選択す
べきかを決定する。選択され得る典型的なジヤン
プ・コンデイシヨンは、ALUコンデイシヨン・
コード、割込又はコンソール・ホールドが受信さ
れたか否か、OR MUX208の出力がゼロか否
か及び信号IR INVALIDが出されたか否か、で
ある。IR INVALID信号は、命令レジスタ70
が有効な情報を含まないときには何時でも、命令
プリフエツチ・ユニツト56から出力される。一
般に、選択されたコンデイシヨンが真であるなら
ば、MUX200は、ORゲート204から供給
されるアドレスを選択し、ブランチが生じる。も
しもコンデイシヨンが偽ならば、MUX200は
ページ・レジスタ201及びマイクロプログラ
ム・カウンタ202から供給される次の連続アド
レスを選択する。 ORゲート204によつて行なわれるオア演算
は、バス210上のアドレスの低位ビツトに作用
する。このコンピユータ・システムの好ましい実
施例では、OR MUX208の出力は4ビツト幅
であり、或るマイクロ命令のブランチ・タイプで
は、これらの4ビツトが、バス210上の下位4
ビツトと論理和をとられる。OR MUX208は
このように、多重指定ブランチ(即ち、ケーシン
グ)を行なうことができる。OR MUX208の
出力は、現時マイクロ命令のサブフイールド「オ
ア」によつて制御される。表2は、サブフイール
ド「オア」を3ビツト幅に拡げ、8セツトの4ビ
ツト入力までから選択し得るようにした、本発明
の好ましい実施例を示す。サブフイールド「オ
ア」の値0乃至7に対応する各選択に関し、表2
は、OR MUX208の出力ビツトORMUX3乃
至ORMUX0の各々に対する値を列配した。ゼロ
のサブフイールド値に対し、OR MUX208の
全出力ビツトはゼロである。値1では、もしも
IR INVALID信号が出ているならばORMUXO
が1にセツトされる。値2では、ORMUX1が1
にセツトされる。この値は、マイクロサブルーチ
ンからの多重復帰(リターン)を与えるために使
うと便利である。値3は、OR MUX208の出
力は、表に示した4本のメモリ制御ステータス・
ライン上の信号によつて決定される。MEM
ERRは、メモリ制御モジユール12からの雑多
のエラー信号を云う。PAGE CROSSINGは、
512バイトのページ境界を越えるデータをアクセ
スする試みを示す。TB MISSは、要求された仮
想アドレスに対する翻訳エントリが翻訳バツフ
ア/キヤツシユ40に発見されなかつたことを示
す。MODIFY REFUSEは、メモリ書込動作が、
その対応する翻訳バツフアのエントリにモデイフ
アイ・ビツトがセツトされていなかつたために行
なわれなかつたことを示す。コード値4ではOR
MUX208の出力は、IR INVALID信号及び
BR FALSE信号によつて決定される。BR
FALSE信号は、マクロレベルのブランチが起こ
るだろうか否かを示す。コード値5では、OR
MUX208の出力は、列記したスタータス信号
によつて決定される。OVERFLOWは、以下に
説明するPSL Vコードをいう。INTERRUPT
及びCONSOLE HALTは、それぞれ、割込制御
論理ユニツト96及びコンソール・インターフエ
ース94からの信号をいう。コード値6では、
OR MUX208の出力は、インデツクス・レジ
スタ92(第2図)の内容に等しい。コード値7
では、OR MUX208の出力は、サイズ・レジ
スタ88の内容によつて決定される。 表1は、マイクロシーケンサ76が次のマイク
ロアドレスを選択する方法をまとめたものであ
る。現時マイクロ命令のサブフイールド「タイ
プ」は、表1の第1欄に列記したブランチ・タイ
プの一つを指定する。これらのタイプの動作は次
の段落で説明する。表1において、記号μPCは、
マイクロプログラム・カウンタ202を表わす。 ブランチ・タイプがジヤンプ又はサブルーチ
ン・ジヤンプであるときは、現時マイクロ命令の
サブフイールド「ジヤンプ・アドレス」は、ジヤ
ンプ・レジスタ213にロードされる。このアド
レスは、バス210上に置かれ、このポイントか
ら、それは変更なしにORゲート204及び
MUX200を通過する。次マイクロアドレスは
それ故、現時マイクロ命令のサブフイールド「ジ
ヤンプ・アドレス」によつて完全に決定される。
ジヤンプ及びサブルーチン・ジヤンプのブラン
チ・タイプは、マイクロ命令のフローにおける無
条件(アンコンデイシヨンナル)ブランチを起こ
させるために利用される。サブルーチン・ジヤン
プが実行されると、ページ・レジスタ201及び
マイクロプログラム・カウンタ202の内容は、
マイクロスタツク80にプツシユされる。 ブランチというブランチ・タイプは、現ページ
内でマイクロアドレスへの条件付ジヤンプを行な
うために使われる。表1に示すように、次マイク
ロアドレスの上位5ビツトは、ページ・レジスタ
によつて決定され、下位8ビツトはジヤンプ・コ
ンデイシヨンに基づいて決定される。もしもジヤ
ンプ・コンデイシヨンが真ならば、下位ビツト
は、現時マイクロ命令のサブフイールド「ジヤン
プ・アドレス」の下位からジヤンプ・レジスタ2
12を介して導出される。もしもジヤンプ・コン
デイシヨンが偽ならば、ジヤンプは生じず、下位
ビツトはマイクロプログラム・カウンタ202か
ら導出される。ジヤンプ・コンデイシヨンは、現
時マイクロ命令のサブフイールド「ジヤンプ・コ
ンデイシヨン」に基づきJUMP MUX206に
よつて選択された信号に等しい。 ケース(Case)のブランチ・タイプは、ジヤ
ンプ・コンデイシヨンが真である場合に次マイク
ロアドレスの下位ビツトがOR MUX208の出
力との組合せでジヤンプ・レジスタ212によつ
て決定されることを除いて、ブランチに類似して
いる。特に、OR MUX208の4個の出力(表
2)は、ORゲート204によつてジヤンプ・レ
ジスタ212の下位4ビツトと論理和をとられ
る。 サブルーチン・ブランチ及びトラツプのブラン
チ・タイプは、ジヤンプ・コンデイシヨンが真で
ある場合に次マイクロアドレスの高位ビツトがゼ
ロに強制され、且つ次の連続するマイクロアドレ
ス(サブルーチン・ブランチの場合)又は現時マ
イクロアドレス(トラツプの場合)の何れかがマ
イクロスタツク80にプツシユされることを除い
て、ケースに類似している。 リターンのブランチ・タイプは、マイクロスタ
ツク80にプツシユされた任意のマイクロアドレ
スへ復帰するために使われる。リターンのブラン
チ・タイプは条件付であり、ジヤンプ・コンデイ
シヨンが真である場合には単に戻るだけである。
偽のジヤンプ・コンデイシヨンは、次の連続する
マイクロアドレスがマイクロシーケンサ76によ
つて選択されるようにする。 表1はまた、命令レジスタ70中のOPコード
又はオペランド指定子の解読を命令するマイクロ
命令を制御論理ユニツト60が実行する時に、次
マイクロアドレスが決定される方法を示す。OP
コードの解読に対しても、もしも特定されたジヤ
ンプ・コンデイシヨンが偽ならば、次マイクロア
ドレスは、解読ROM74から供給されるアドレ
スによつて決定される。この場合、次マイクロア
ドレスの高位ビツトは、ゼロにセツトされる。た
だし、もしも特記されたジヤンプ・コンデイシヨ
ンが真であるならば、次マイクロアドレスは、完
全に、OR MUX208の4ビツト出力によつて
決定され、現時マイクロアドレスは、マイクロス
タツク80にプツシユされる。一般に、OPコー
ド解読のマイクロ命令で特記されるジヤンプ・コ
ンデイシヨンは、IR INVALID信号である。結
果として、データ・パス・モジユール14が、命
令レジスタ70で未だ有効でないOPコードを復
号又は解読しようとする場合、命令プリフエツ
チ・ユニツト56が追いつくのを待つサブルーチ
ンの存在する低位マイクロアドレスにトラツプが
生じる。 オペランド指定子解読のマイクロ命令が実行さ
れると、次マイクロアドレスは、IR INVALID
信号及び解読ROM74からのREGISTER信号と
いう2つの信号によつて決定され、REGISTER
信号は、オペランド指定子のアドレツシング・モ
ードが直接であるかどうかを示す。もしも命令レ
ジスタ(IR)が有効であり、且つモードが直接
であるならば、次の連続するマイクロアドレスが
選択される。もしも命令レジスタ(IR)が有効
であり、且つモードが間接であるならば、マイク
ロプログラムは、高位部分がジヤンプ・レジスタ
212の高位ビツトによつて決定され且つ低位部
分が解読ROM74からのマイクロアドレスに等
しいアドレスにあるサブルーチンにジヤンプす
る。ジヤンプ・レジスタ212のアドレスは、現
時マイクロ命令のサブフイールド「ジヤンプ・ア
ドレス」から導出される。結局、IR INVALD信
号が出される場合には、マイクロプログラムは、
OR MUX208の出力(この場合には、1に等
しい値にセツトされる。)によつて指定されるア
ドレスのサブルーチンにトラツプする。 表1に示した最後の状況は、パワー・アツプ又
はパリテイー・エラーである。この場合、デー
タ・パス・モジユール14はゼロ・アドレスのマ
イクロ命令を実行し始める。 第4図は、制御論理ユニツト60をより詳細に
示す。制御論理ユニツト60は、バス100,1
02、ALU104、結果レジスタ106,10
7、バレル・シフタ108及び関連のシフト・カ
ウント・レジスタ110並びに結果レジスタ11
2、ポインタ・レジスタ120,122、レジス
タ・フアイル124、プログラム・カウンタ12
6、定数ROM130、レジスタ・セーブ・スタ
ツク132、I/Oポート134並びに制御記憶
レジスタ140を含む。 制御論理ユニツト60によるマイクロ命令の実
行は、マイクロ命令のデータ・パス制御フイール
ドが制御記憶装置62から制御記憶レジスタ14
0にロードされた時に始まる。一般に、データ・
パス制御フイールドは、1個のマイクロOPコー
ドと、2個のマイクロ・オペランド指定子を含
む。マイクロOPコードが代数演算又は論理演算
(例えば、加算、論理積、マスク、比較)を指定
する場合、その演算はALU104によつて行な
われる。2つの必要なオペランドは、バス100
及び同102を介して供給され、演算の結果は、
現時マイクロ命令に含まれるビツトに従い、結果
レジスタ106又は同107に置かれる。 バレル・シフタ108は、シフト演算のために
使われる。シフト・カウントは、シフト・カウン
ト・レジスタ110に収容してもよいし、マイク
ロ命令中のリテラルとして供給してもよい。シフ
ト演算の結果は、結果レジスタ112に収容す
る。 レジスタ・フアイル124は、マクロレベルの
プログラムにアクセス可能な多数の汎用レジスタ
と、汎用及び専用の両用のマイクロレベル・レジ
スタを持つ。汎用レジスタの語は、以下、レジス
タ・フアイル124におけるマクロレベルの汎用
レジスタ及びマイクロレベルの汎用レジスタの両
方をさすものとする。各レジスタは、バス100
又は同102の何れからも読み出すことができる
が、バス102からのみ書き込むことができる。
レジスタ・フアイル124の各レジスタは、関連
する固有のレジスタ・アドレスを具備し、そのレ
ジスタ・アドレスは、以下に説明するように、マ
イクロ命令の実行の間レジスタを指定するために
使われる。 サイズ・レジスタ88は、制御論理ユニツト6
0によつて利用されるデータ・パスの幅を制御す
るためと、表2に示すマイクロプログラムのブラ
ンチングを制御するために利用される。このコン
ピユータ・システムの好ましい実施例では、デー
タ・パスは32ビツト幅まで拡げることができる
が、特定のマクロ命令は、バイト(8ビツト)及
びワード(16ビツト)のようなより狭いデータ・
パスを指定できる。例えば、マクロ命令は、1バ
イトが特定の仮想メモリ・アドレスから取り出さ
れて汎用レジスタ3(即ち、レジスタ・フアイル
124中のこの汎用レジスタはレジスタ・アドレ
ス3を採つている。)にロードされることを指定
することができる。このマクロ命令は、汎用レジ
スタ3の下位8ビツトにのみ影響し、高位24ビツ
トをそのままに放置する。フル32ビツトのデー
タ・ブロツクは、ロングワードと呼ぶことにす
る。 サイズ・レジスタ88には、マクロ命令のOP
コードが解読されるときに解読ROM74から直
接2ビツト・コードがロードされる。好ましい実
施例では、コーデイング・スキームは、 0……バイト 1……ワード 2……不使用 3……ロングワード である。即ち、OPコードによつて特定されるデ
ータ・パス幅は、マスキングのためのALU演算
の使用無しに、且つレジスタのどんな移動
(move)、回転又はリフレツシユ無しに、そのOP
コードに対する全実行シーケンスの間、制御論理
ユニツトに(信号SIZE0及びSIZE1として)有効
であるように作ることができる。 サイズ・レジスタ88の内容は、オペランド指
定子の解読を行なうマイクロ命令を実行するとき
に、改められ得る。そのようなマイクロ命令が実
行されるとき、マイクロ命令のコンデイシヨン・
コード/サイズ・フイールドは、そのフイールド
の値がゼロ(バイト)、1(ワード)又は3(ロン
グワード)ならば、制御記憶装置62からサイ
ズ・レジスタ88にロードされる。もしも値が2
ならば、サイズ・レジスタ88は影響を受けず、
先行するOPコードによつて特定されるサイズを
そのままにしておく。 解読のマイクロ命令の他に、サイズ・レジスタ
88は、デステイネーシヨン・オペランドとして
サイズ・レジスタを明示的に指定する移動
(move)マイクロ命令によつてのみ修正されう
る。解読以外のマイクロ命令は、しかしながら、
それらのコンデイシヨン・コード/サイズ・フイ
ールドによつて実行の間にデータ・パス幅を制御
する。ALU及びシフトのマイクロ命令に対して
は、後でコンデイシヨン・コード/サイズのコー
デイングを説明する。他のマイクロ命令(即ち、
移動、メモリ要求)については、コンデイシヨ
ン・コード/サイズ・フイールドのコーデイング
は、 0……バイト 1……ワード 2……サイズ・レジスタを使用 3……ロングワード である。即ち、与えられたマイクロ命令は、自身
のデータ・パス幅を指定できるか又は、サイズ・
レジスタを指定し、それ故、先行するOPコード
又はオペランド指定子によつて指定される幅を使
用できるかのどちらかである。その結果、サイ
ズ・レジスタ88の利用によつて得られる効率
は、現在のコンピユータ・システムのマイクロプ
ログラミングでの柔軟性に何らの対応する損失も
もたらさない。 ポインタ・レジスタ120及び同122は、
各々2つの機能を奏し得る6ビツト・レジスタで
ある。即ち、ポインタ・レジスタ120,122
は、レジスタ・フアイル124の特定の汎用レジ
スタのアドレス(即ち、そのレジスタへのポイン
ト)を収容でき、又は、オペランド指定子から導
出されたリテラル値を収容できる。ポインタ・レ
ジスタ120,122は、バス100,112か
ら読み取ることができ、バス102から書き込む
ことができる。2つのポインタ・レジスタ10
0,102の利用は、多数のマクロ命令の実行ス
ピードに著しい利益を与える。例えば、汎用レジ
スタR1及びR2の内容を加算するマクロ命令
は、結果を汎用レジスタR2に置くとして、次の
ようにコード化できる。即ち、 OPコード ―加算(Add) オペランド指定子1 ―R1、直接モード オペランド指定子2 ―R2、直接モード ただし、各オペランド指定子は、アドレツシン
グモードを指定するモード・フイールドと、(上
記の如く)レジスタのアドレスを収容するレジス
タ・フイールド又はリテラルの何れかとを含む。
本発明のポインタ・レジスタを使用しなければ、
このマクロ命令に対するマイクロ命令のシーケン
スは、次のように7ステツプ必要とする。即ち、 1 OPコードを解読 2 オペランド指定子1を解読 3 R1をTEMP1に移動 4 オペランド指定子2を解読 5 R2をTEMP2に移動 6 加算TEMP3=TEMP1+TEMP2 7 TEMP3をR2に移動 ここで、TEMP1、TEMP2及びTEMP3
は、マイクロレベルの汎用レジスタを意味する。
2つのポインタ・レジスタの利用は、必要なステ
ツプ数を5に減らす。即ち、 1 OPコードを解読 2 オペランド指定子1を解読し、R1のアドレ
スをPTR1に置く 3 オペランド指定子2を解読し、R2のアドレ
スをPTR2に置く 4 加算TEMP1=@PTR1+@PTR2 5 TEMP1を@PTR2に移動 ここで、記号@Xは、アドレスがレジスタX中
にある記憶場所(即ち、レジスタ)を示し、
PTR1及びPTR2は、ポインタ・レジスタ12
0及び同122を示す。上記ステツプ2及び3に
示したように、オペランド指定子の解読は、オペ
ランド指定子によつて指定されるレジスタの番号
をポインタ・レジスタ120又は122の一方に
ロードさせる。ポインタ・レジスタのこのロード
は、オペランド指定子によつて指定されるアドレ
ツシング・モードに関わりなく生じる。オペラン
ド指定子がリテラルを収容する場合、そのリテラ
ルは同様にポインタ・レジスタにロードされる。
全ての場合に、オペランド指定子の解読を実行す
るマイクロ命令の1ビツトは、どのポインタ・レ
ジスタ(120又は122)がロードされるかを
決定する。第2図に示すように、ポインタ・レジ
スタは、命令レジスタ70から命令レジスタ・バ
ツフア98、バス82、ラツチ86、I/Oポー
ト134及びバス102を通つてロードされる。 上記の第2の例のステツプ4及び5における加
算のマイクロ命令及び移動のマイクロ命令は、ポ
インタ・レジスタを使つてレジスタR1及び同R
2を間接的にアドレスする。そのようなアドレツ
シング方法を実施するため、2つのレジスタ・ア
ドレス、即ち直接アドレス及び間接アドレスがポ
インタ・レジスタの各々に割当てられる。ポイン
タ・レジスタの直接アドレスは、レジスタ・フア
イル124のレジスタのアドレスに全く類似して
おり、レジスタの内容を特定するために利用され
る。例えば、第1及び第2のマイクロ・オペラン
ド指定子がレジスタ・フアイル124中のアドレ
スが3及び4であるレジスタを指定するMove
3,4というようなマイクロ命令では、その結果
として、レジスタ3の内容がレジスタ4に移動す
る。ポインタ・レジスタ120及び同122は、
同じ結果を達成する相違した一般的により効率的
な方法を与える。各ポインタ・レジスタには、任
意のレジスタの直接アドレスとは異なる固有の間
接アドレスが割当てられる。間接アドレスがマイ
クロ・オベランド指定子によつて指定されると、
実際にアクセスされるレジスタは、間接的にアド
レスされたポインタ・レジスタの内容によつて決
定される。例えば、もしもポインタ・レジスタ1
20及び122が、54及び55という間接アド
レスを割当てられ、且つ数値3及び4を収容して
いたとすると、マイクロ命令Move54,55
は、Move3,4と等価である。 プログラム・カウンタ126は、実行されるべ
き次のマクロ命令のアドレスを収容するレジスタ
である。ポインタ・レジスタ120,122及び
レジスタ・フアイル124中のレジスタと同様
に、プログラム・カウンタ126もバス100又
は同102の何れかから読み出しでき、バス10
2から書き込みできる。プログラム・カウンタ1
26は、次のいずれかが生じる時に自動的に、
1,2又は4だけインクリメントされる。 (1) 1個のOPコード解読マイクロ命令が実行さ
れる時、 (2) オペランド指定子解読マイクロ命令が実行さ
れる時、 (3) 現時マイクロ命令が、1つのマイクロ命令オ
ペランドの記憶場所として命令レジスタ70を
指定する時、 (4) マクロ命令の命令ストリームからのデータの
再生を支持するマイクロ命令が実行される時、 ケース(1)及び(2)については既に説明した。プロ
グラム・カウンタ126は、プログラム・カウン
タ126中のアドレスが新しいマクロ命令のバイ
トの仮想アドレスに対応するように、新しいマク
ロ命令のバイトが命令レジスタ70から計数され
たときには何時でも1だけインクリメントされ
る。ケース(3)の例としては、マクロ命令ストリー
ム中の1バイトがリテラル・データを含む場合で
ある。例えば、或るタイプのオペランド指定子
は、ベース・アドレスを収容するレジスタと、そ
のレジスタ中に発見されるベース・アドレスに加
算されるべき固定オフセツトとを指定することに
よつてオペランドのアドレスを特定する。この状
況ではオペランド指定子は2バイトからなり、第
1のバイトはレジスタ・アドレス(例えば、レジ
スタ2)及びアドレツシング・モードを指定し、
第2のバイトは、固定オフセツト(即ち、リテラ
ル)を収容する。そのようなオペランドをアクセ
スするマイクロ命令は、オペランド指定子の第1
バイトを解読して値2(レジスタ・アドレス)を
ポインタ・レジスタ120に置くことによつて始
まる。次のマイクロ命令は、命令レジスタ70に
収容されたリテラルに、ポインタ・レジスタ12
0によつて指定される値を加算する。このマイク
ロ命令は、命令レジスタ70に割当てられた固有
のレジスタ・アドレスを指定することによつて命
令レジスタ70を参照する。リテラルは、命令レ
ジスタ70から命令レジスタ・バツフア98、バ
ス82、ラツチ86、バス84、I/Oポート1
34及びバス102を通つて、ALU104に達
する。オペランドとして命令レジスタ70のアド
レスを指定する加算マイクロ命令の実行は、プロ
グラム・カウンタ126を1だけインクリメント
させる。 上記のケース(4)は、命令ストリーム・メモリ要
求と呼ばれる。そのようなマイクロ命令が実行さ
れるとき、制御記憶装置62からメモリ制御バス
16を介してメモリ制御モジユール12に制御信
号が送られる。同時に、プログラム・カウンタ1
26のインクリメントされていない内容が、バス
102及びI/Oポート134を介してバス84
上に送り出され、そこからメモリ・データ・バス
18を介してメモリ制御モジユール12に送り出
される。プログラム・カウンタ126はそれか
ら、命令ストリーム・メモリ要求のマイクロ命令
が1バイト、1ワード又は1ロングワードを指定
するかどうかに従い、1,2又は4だけインクリ
メントされる。メモリ制御モジユール12(第2
図)上では、命令プリフエツチ・ユニツト56
が、マクロ命令ストリームのバイトで満たされた
プリフエツチ・バツフアを維持する。命令ストリ
ーム・メモリ要求はまず、プリフエツチ・バツフ
アをクリアし、翻訳バツフア/キヤツシユ40又
はメモリ・アレイ22から1バイト、1ワード又
は1ロングワードを読み、結果データをメモリ・
データ・バス18を介してデータ・パス・モジユ
ール14に送る。命令プリフエツチ・ユニツト5
6は、データ・パス・モジユール14に送られる
データに続くマクロ命令ストリーム中の次の及び
以降のバイトでプリフエツチ・バツフアを再充填
する。 レジスタ・セーブ・スタツク132は、指定レ
ジスタの内容を一時的に収容するために使われる
LIFOスタツクである。スタツク上の各エントリ
は、レジスタの内容と、そのレジスタのアドレス
(番号)とからなる。レジスタ・セーブ・スタツ
クの利用法の説明例としては、自動インクリメン
トのアドレツシング・モードを指定するオペラン
ドの解読がある。そのようなモードでは、指定レ
ジスタの内容はまず、オペランドにアクセスする
ためのアドレスとして利用され、そのレジスタ
は、それから自動的に1,2又は4だけインクリ
メントされる。オート・インクリメント・モード
のオペランド指定子が解読されるとき、レジスタ
のインクリメントされない内容は、自動的にレジ
スタ・スタツク132にプツシユされる。もしも
試みられたメモリ・アクセスがエラー状態に終わ
ると、そのレジスタは、スタツクをポツプするこ
とによつて先に存在した状態に戻される。プツシ
ユ動作は現時マイクロ命令によつて制御され、そ
のマイクロ命令は、プツシユを起こすべきか否か
を決定する1ビツトを含む。もしもプツシユが生
じるべきときには、マイクロ・オペランド指定子
の1つは、レジスタのアドレスを含む。 コンデイシヨン・コード論理ユニツト90は、
2セツトのコンデイシヨン・コード、即ち、マイ
クロプログラム・レベル(ALU)のコンデイシ
ヨン・コード及びマクロプログラム・レベル
(PSL)のコンデイシヨン・コードを収容及び制
御するために使われる。4個のコンデイシヨンが
各レベルで与えられる。 N……ネガテイブ Z……ゼロ V……オーバーフロー C……キヤリー ALUコンデイシヨン・コードは制御論理ユニ
ツト60によつて実行された最後のマイクロ命令
の結果を反映し、それは、ALUコンデイシヨ
ン・コードがロードされるべきコンデイシヨン・
コード/サイズ・フイールドで特定する。ALU
コンデイシヨン・コードは、JUMP MUX20
6(第3図)への4個の入力からなる。ALUコ
ンデイシヨン・コードはそれ故、表1に示したよ
うに、マイクロ命令によつてジヤンプ制御信号と
して利用され得る。PSLコンデイシヨン・コード
は、マクロプログラム・レベルに有効なコンデイ
シヨン・コードであり、マクロブランチを起こす
べきか否かを決定するためにマクロプログラムに
よつて利用される。 OPコードが解読ROM74によつて解読される
とき、2ビツトのコンデイシヨン・コード・クラ
ス信号が作り出され、コンデイシヨン・コード論
理ユニツト90中のコンデイシヨン・コード・ク
ラス・レジスタ(図示せず)に直接送り込まれ
る。コンデイシヨン・コード・クラス・レジスタ
の内容は、ALUコードが下記の如くPSLコード
にどのように転写されるかを決定する。 コンデイシヨン・ コード・クラス・ クラス レジスタ 0 論 理 ALU NをPSL Nへ ALU ZをPSL Zへ ALU VをPSL Vへ ALU CをPSL Cへ 1 代 数 ALU NをPSL Nへ ALU ZをPSL Zへ ALU VをPSL Vへ ALU CをPSL Cへ 2 比 較 ALU NをPSL Nへ ALU ZをPSL Zへ PSL Vをクリア ALU CをPSL Cへ 3 浮動小数点 ALU NをPSL Nへ ALU ZをPSL Zへ ALU VをPSL Vへ PSL Cをクリア 与えられたマイクロ命令によるコンデイシヨ
ン・コードの実際のセツテイングは、そのマイク
ロ命令のコンデイシヨン・コード/サイズ・フイ
ールドによつて決定される。先に説明したよう
に、或るタイプのマイクロ命令(例えば、移動、
メモリ要求、解読)は、データ・パス幅を指定す
るためにコンデイシヨン・コード/サイズ・フイ
ールドを利用し、これらのマイクロ命令では、コ
ンデイシヨン・コードは決してセツトされない。
他のマイクロ命令(例えば、加算、論理積、シフ
ト)では、コンデイシヨン・コード/サイズ・フ
イールドは、データ・パス幅及びコンデイシヨ
ン・コードのセツテイングを次のように制御す
る。即ち、 コンデイシヨン・ コード/サイズ・ データ・パス幅 フイールド値 0 ロングワード コンデイシヨン・コードは影
響なし 1 ロングワード ALUをコンデイシヨン・コ
ードをセツト 2 ロングワード ALU及びPSLのコンデイシ
ヨン・コードをセツト 3 サイズ・レジスタ毎 ALU及びPSLのコン
デイシヨン・コードをセツト このようなマイクロ命令では、コンデイシヨ
ン・コード/サイズ・フイールドの内容は、制御
記憶装置62からCC論理ユニツト90に直接送
られる。
【表】
【表】
【表】 【図面の簡単な説明】
第1図は、本発明の中央処理装置を組み込んだ
コンピユータ・システムのブロツク・ダイアグラ
ムである。第2図は、本発明の中央処理装置の一
実施例のブロツク・ダイアグラムである。第3図
は、本発明の中央処理装置と共に使用するマイク
ロシーケンサのブロツク・ダイアグラムである。
第4図は、本発明の中央処理装置の制御論理ユニ
ツトを詳細に示すブロツク・ダイアグラムであ
る。 10…CPU、12…メモリ制御モジユール、
14…データ・パス・モジユール、16…メモリ
制御バス、18…メモリ・データ・バス、20…
システム・バス、22…メモリ・アレイ、24…
コンソール・ターミナル、28…メモリ制御コマ
ンド、30…送受信器、32…バス、34…バ
ス、40…翻訳バツフア/キヤツシユ、42…物
理アドレス・レジスタ、44…システム・バス・
インターフエース、48…マージ/回転ユニツ
ト、50…マイクロシーケンサ/制御記憶装置、
52…バス制御装置、56…命令プリフエツチ・
ユニツト、60…制御論理ユニツト、62…制御
記憶装置、64…バス・ラツチ、70…命令レジ
スタ、74…解読ROM、76…マイクロシーケ
ンサ、78…制御記憶アドレス・レジスタ、80
…マイクロスタツク、82…バス、84…バス、
86…ラツチ、88…サイズ・レジスタ、90…
CC論理ユニツト、92…インデツクス・レジス
タ、94…コンソール・インターフエース、96
…割込制御論理ユニツト、98…命令レジスタ・
バツフア、100…バス、102…バス、104
…ALU、106…結果レジスタ、107…結果
レジスタ、108…バレル・シフタ、110…シ
フト・カウント・レジスタ、112…結果レジス
タ、120…ポインタ・レジスタ、122…ポイ
ンタ・レジスタ、124…レジスタ、フアイル、
126…プログラム・カウンタ、130…定数
ROM、132…レジスタ・セーブ・スタツク、
134…I/Oポート、140…制御記憶レジス
タ、200…マルチプレクサ(MUX)、201
…ページ・レジスタ、202…マイクロプログラ
ム・カウンタ、204…ORゲート、206…
JUMP MUX、208…OR MUX、210…バ
ス、212…ジヤンプ・レジスタ、214…条件
付デクレメンタ。

Claims (1)

  1. 【特許請求の範囲】 1 それぞれ演算コードを含む一連のマクロ命令
    を解読・実行すべく動作するデイジタルコンピユ
    ータ用中央処理装置であつて、 サイズ・レジスタと、 演算コードが解読されるときに動作する手段で
    あつて、解読される演算コードによつて特定され
    るデータのサイズを指定するサイズ・コードを前
    記サイズ・レジスタにロードする手段を含むマク
    ロ命令を解読する解読手段と、 (i) それぞれ二進信号を運び得る複数の並列デー
    タ・パス・エレメント、及び (ii) 各マイクロ命令を実行するために使われるデ
    ータ・パス・エレメントの数を選択するサイズ
    選択手段であつて、所定のマイクロ命令の実行
    の間に動作して、前記サイズ・レジスタ中のサ
    イズ・コードに基づきデータ・パス・エレメン
    トの数を選択する手段 を具備し、各マクロ命令の解読に応答して一連の
    マイクロ命令を実行すべくなした制御論理ユニツ
    トと、 からなることを特徴とするデイジタルコンピユー
    タ用中央処理装置。 2 所定のマクロ命令が、マクロ命令が作用すべ
    きデータを特定する1又は2以上のオペランド指
    定子を含み、中央処理装置が、まず演算コードを
    解読し、次に連続的に1又は2以上のオペランド
    指定子を解読することによつて、該マクロ命令を
    解読すべく動作し、中央処理装置が、オペランド
    指定子が解読されるときに動作してサイズ・レジ
    スタにサイズ・コードを選択的にロードする手段
    を含むこと、とを特徴とする特許請求の範囲第1
    項に記載のデイジタルコンピユータ用中央処理装
    置。 3 各マイクロ命令がサイズ・フイールドを含
    み、前記サイズ選択手段は、各マイクロ命令の実
    行の間に動作して、前記サイズ・コード及び当該
    サイズ・フイールドのいずれか一方に基づきデー
    タ・パス・エレメントの数を選択し、その選択は
    当該サイズ・フイールドの値に依存することを特
    徴とする特許請求の範囲第2項に記載のデイジタ
    ルコンピユータ用中央処理装置。 4 それぞれ演算コードを含む一連のマクロ命令
    を解読・実行すべく動作するデイジタルコンピユ
    ータ用中央処理装置であつて、 マイクロ命令を収容する制御記憶装置と、 サイズ・レジスタと、 マクロ命令を解読する解読手段であつて、マク
    ロ命令の演算コードに対応する第1のマイクロ命
    令の制御記憶装置内にアドレスを提供する手段
    と、 前記演算コードで特定されたデータのサイズを
    示すサイズ・コードを前記サイズ・レジスタにロ
    ードする手段と を含む解読手段と、 各マクロ命令の解読に応答して一連のマイクロ
    命令を実行する制御論理ユニツトであつて、 (i) 並列デイジタル・データを運ぶ複数のデー
    タ・パス・エレメントと、 (ii) 各マイクロ命令を実行するために使用するデ
    ータ・パス・エレメントの数を前記サイズ・レ
    ジスタ内のサイズ・コードに基づいて選択する
    サイズ選択手段と を含む制御論理ユニツトと、 からなることを特徴とするデイジタルコンピユー
    タ用中央処理装置。 5 それぞれ演算コードを含む一連のマクロ命令
    を解読・実行すべく動作するデイジタルコンピユ
    ータ用中央処理装置であつて、 マクロ命令がオペランド指定子を含み、 オペランド指定子を解読するマイクロ命令を含
    むマイクロ命令を収容する制御記憶装置と、 サイズ・レジスタと、 マクロ命令を解読する解読手段であつて、演算
    コードに対応する第1のマクロ命令の制御記憶装
    置内にアドレスを提供すべく前記演算コードを解
    読する手段と、 前記演算コードで特定されたデータのサイズを
    示すサイズ・コードを前記サイズ・レジスタにロ
    ードする手段と を含む解読手段と、 各マイクロ命令の解読に応答して一連のマイク
    ロ命令を実行する制御論理ユニツトであつて、 (i) 並列デイジタル・データを運ぶ複数のデー
    タ・パス・エレメントと、 (ii) 各マイクロ命令を実行するために使用するデ
    ータ・パス・エレメントの数を前記サイズ・レ
    ジスタ内のサイズ・コードに基づいて選択する
    サイズ選択手段と を含む制御論理ユニツトと、 からなることを特徴とするデイジタルコンピユー
    タ用中央処理装置。 6 前記制御記憶装置内に収容されている各マイ
    クロ命令がマイクロ命令サイズ・コードを含むフ
    イールドを含んでおり、前記サイズ選択手段が前
    記フイールド内にマイクロ命令・サイズ・コード
    が含まれていないときには各マイクロ命令用のデ
    ータ・パス・エレメントの数をサイズ・コードに
    基づいて選択し、前記フイールド内にマイクロ命
    令サイズ・コードが含まれているときにはマイク
    ロ命令サイズ・コードに基づいて選択することを
    特徴とする特許請求の範囲第5項に記載のデイジ
    タルコンピユータ用中央処理装置。 7 前記サイズ選択手段が、前記フイールドの内
    容に基づいてオペランド指定子を解読するため
    に、マイクロ命令の実行中にサイズ・コードを修
    正する手段を含んでいることを特徴とする特許請
    求の範囲第6項に記載のデイジタルコンピユータ
    用中央処理装置。 8 各マクロ命令が、該マクロ命令を作動させる
    所与のサイズのデータを特定する演算コードを含
    み、各マクロ命令が、各々が二進信号を運び得る
    複数の並列データ・パス・エレメントを使用して
    一連の所定のマイクロ命令を実行することで中央
    論理装置によつて実行されるようにしてあるデイ
    ジタルコンピユータ用中央処理装置内の一連のマ
    クロ命令を解読・実行する方法であつて、 マクロ命令を解読する段階と、 対応する解読された演算コードで特定されたデ
    ータのサイズを示すサイズ・コードをサイズ・レ
    ジスタにロードする段階と、 各マイクロ命令を実行するために使用するデー
    タ・パス・エレメントの数を前記サイズ・レジス
    タにロードされた前記サイズ・コードに基づいて
    選択する段階と、 前記選択されたデータ・パス・エレメントの数
    を使用して前記マクロ命令に対応する一連のマイ
    クロ命令を実行する段階と、 からなることを特徴とするデイジタルコンピユー
    タ用中央処理装置を使用しての一連のマクロ命令
    を解読・実行する方法。 9 前記マクロ命令の或るものがマクロ命令を作
    動させる前記データを特定するオペランド指定子
    を含み、前記マクロ命令の解読が、まず最初に対
    応演算コードを解読し次に前記オペランド指定子
    を逐次解読することで行なわれ、前記サイズ・レ
    ジスタへのロードが、オペランド指定子が解読さ
    れる毎にサイズ・コードを前記サイズ・レジスタ
    へ選択的にロードすることを含んでいることを特
    徴とする特許請求の範囲第8項に記載のデイジタ
    ルコンピユータ用中央処理装置を使用しての一連
    のマクロ命令を解読・実行する方法。 10 前記所定のマイクロ命令の各々がサイズ・
    フイールドを含み、前記マイクロ命令の実行中に
    使用されるデータ・パス・エレメントの数を、前
    記サイズ・コードまたは前記サイズ・フイールド
    のいずれかに基づいて選択し、該選択が前記サイ
    ズ・フイールドの値に従うものであることを特徴
    とする特許請求の範囲第9項に記載のデイジタル
    コンピユータ用中央処理装置を使用しての一連の
    マクロ命令を解読・実行する方法。
JP63145987A 1983-10-03 1988-06-15 Central processor for digital computer Granted JPS6446135A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/538,373 US4586130A (en) 1983-10-03 1983-10-03 Central processing unit for a digital computer

Publications (2)

Publication Number Publication Date
JPS6446135A JPS6446135A (en) 1989-02-20
JPH0210452B2 true JPH0210452B2 (ja) 1990-03-08

Family

ID=24146659

Family Applications (3)

Application Number Title Priority Date Filing Date
JP59204201A Granted JPS60107138A (ja) 1983-10-03 1984-10-01 デイジタル・コンピユ−タ用中央処理装置
JP63145987A Granted JPS6446135A (en) 1983-10-03 1988-06-15 Central processor for digital computer
JP63145988A Granted JPS6446136A (en) 1983-10-03 1988-06-15 Central processor for digital computer

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP59204201A Granted JPS60107138A (ja) 1983-10-03 1984-10-01 デイジタル・コンピユ−タ用中央処理装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP63145988A Granted JPS6446136A (en) 1983-10-03 1988-06-15 Central processor for digital computer

Country Status (6)

Country Link
US (1) US4586130A (ja)
EP (2) EP0415461B1 (ja)
JP (3) JPS60107138A (ja)
AT (2) ATE125374T1 (ja)
CA (1) CA1230181A (ja)
DE (2) DE3486085T2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4812971A (en) * 1983-10-03 1989-03-14 Digital Equipment Corporation Central processing unit for a digital computer
US5034879A (en) * 1984-10-01 1991-07-23 Unisys Corp. (Formerly Burroughs Corp.) Programmable data path width in a programmable unit having plural levels of subinstruction sets
JPS6282402A (ja) * 1985-10-07 1987-04-15 Toshiba Corp シ−ケンス制御装置
JPH0827716B2 (ja) * 1985-10-25 1996-03-21 株式会社日立製作所 データ処理装置及びデータ処理方法
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
US4811266A (en) * 1986-11-05 1989-03-07 Honeywell Bull Inc. Multifunction arithmetic indicator
KR950006590B1 (ko) * 1986-11-14 1995-06-19 가부시기가이샤 히다찌세이사꾸쇼 캐시 메모리를 갖는 마이크로 프로세서
JP2577023B2 (ja) * 1987-12-28 1997-01-29 株式会社日立製作所 情報処理装置のアドレス拡張制御方式
JPH01230125A (ja) * 1988-03-10 1989-09-13 Nec Corp レジスタの部分的更新機能を持つデータ処理装置
EP0349124B1 (en) * 1988-06-27 1996-10-09 Digital Equipment Corporation Operand specifier processing
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置
US5321823A (en) * 1988-07-20 1994-06-14 Digital Equipment Corporation Digital processor with bit mask for counting registers for fast register saves
US5590293A (en) * 1988-07-20 1996-12-31 Digital Equipment Corporation Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US5023828A (en) * 1988-07-20 1991-06-11 Digital Equipment Corporation Microinstruction addressing in high-speed CPU
US5119483A (en) * 1988-07-20 1992-06-02 Digital Equipment Corporation Application of state silos for recovery from memory management exceptions
US5006980A (en) * 1988-07-20 1991-04-09 Digital Equipment Corporation Pipelined digital CPU with deadlock resolution
US5019967A (en) * 1988-07-20 1991-05-28 Digital Equipment Corporation Pipeline bubble compression in a computer system
US5117487A (en) * 1988-08-26 1992-05-26 Kabushiki Kaisha Toshiba Method for accessing microprocessor and microinstruction control type microprocessor including pointer register
US4994962A (en) * 1988-10-28 1991-02-19 Apollo Computer Inc. Variable length cache fill
CA1325288C (en) * 1989-02-03 1993-12-14 Ricky C. Hetherington Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
US5148528A (en) * 1989-02-03 1992-09-15 Digital Equipment Corporation Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length
US5179691A (en) * 1989-04-12 1993-01-12 Unisys Corporation N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
JPH03271829A (ja) * 1990-03-20 1991-12-03 Fujitsu Ltd 情報処理装置
US5448707A (en) * 1991-10-29 1995-09-05 Intel Corporation Mechanism to protect data saved on a local register cache during inter-subsystem calls and returns
US5715421A (en) * 1992-10-16 1998-02-03 Seiko Epson Corporation Apparatus and method of addressing paged mode memory including adjacent page precharging
US5832533A (en) * 1995-01-04 1998-11-03 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indexed addressing mode
US7376814B1 (en) 1999-09-07 2008-05-20 Nxp B.V. Method for forming variable length instructions in a processing system
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7162621B2 (en) * 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7711763B2 (en) * 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7620057B1 (en) * 2004-10-19 2009-11-17 Broadcom Corporation Cache line replacement with zero latency
FR2951938B1 (fr) 2009-10-30 2012-01-06 Oreal Utilisation d'un extrait de punica granatum pour lutter contre la canitie

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5484943A (en) * 1977-10-25 1979-07-06 Digital Equipment Corp Cpu for executing variable length command
JPS54102928A (en) * 1978-01-31 1979-08-13 Fujitsu Ltd Data reading out control system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5040738B1 (ja) * 1970-06-11 1975-12-26
US3725868A (en) * 1970-10-19 1973-04-03 Burroughs Corp Small reconfigurable processor for a variety of data processing applications
US4104718A (en) * 1974-12-16 1978-08-01 Compagnie Honeywell Bull (Societe Anonyme) System for protecting shared files in a multiprogrammed computer
JPS5178150A (ja) * 1974-12-27 1976-07-07 Fujitsu Ltd
US4156927A (en) * 1976-08-11 1979-05-29 Texas Instruments Incorporated Digital processor system with direct access memory
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
JPS5578343A (en) * 1978-12-11 1980-06-12 Toshiba Corp Information processing unit
US4347566A (en) * 1978-12-11 1982-08-31 Tokyo Shibaura Denki Kabushiki Kaisha Data processor with register file and arithmetic logic circuit on one chip and register means directly connected to the chip
US4293907A (en) * 1978-12-29 1981-10-06 Bell Telephone Laboratories, Incorporated Data processing apparatus having op-code extension register
US4258419A (en) * 1978-12-29 1981-03-24 Bell Telephone Laboratories, Incorporated Data processing apparatus providing variable operand width operation
JPS5847053B2 (ja) * 1979-11-19 1983-10-20 株式会社日立製作所 デ−タ処理装置
JPS575153A (en) * 1980-06-10 1982-01-11 Nippon Telegr & Teleph Corp <Ntt> Information processor
AU556521B2 (en) * 1981-06-11 1986-11-06 Data General Corporation Arithmetic unit
US4450523A (en) * 1981-09-11 1984-05-22 Data General Corporation Apparatus for deriving the current length of varying-length data items in a digital data processing system
US4491908A (en) * 1981-12-01 1985-01-01 Honeywell Information Systems Inc. Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5484943A (en) * 1977-10-25 1979-07-06 Digital Equipment Corp Cpu for executing variable length command
JPS54102928A (en) * 1978-01-31 1979-08-13 Fujitsu Ltd Data reading out control system

Also Published As

Publication number Publication date
JPS6446136A (en) 1989-02-20
JPS60107138A (ja) 1985-06-12
EP0138419B1 (en) 1993-03-03
DE3486085T2 (de) 1993-10-14
ATE86401T1 (de) 1993-03-15
CA1250666C (ja) 1989-02-28
JPH0128415B2 (ja) 1989-06-02
ATE125374T1 (de) 1995-08-15
JPS6446135A (en) 1989-02-20
JPS6339931B2 (ja) 1988-08-09
EP0415461B1 (en) 1995-07-19
EP0415461A3 (en) 1991-08-07
DE3486399D1 (de) 1995-08-24
EP0415461A2 (en) 1991-03-06
EP0138419A2 (en) 1985-04-24
CA1230181A (en) 1987-12-08
US4586130A (en) 1986-04-29
DE3486399T2 (de) 1996-04-18
DE3486085D1 (de) 1993-04-08
EP0138419A3 (en) 1988-08-10

Similar Documents

Publication Publication Date Title
US4586130A (en) Central processing unit for a digital computer
US5781750A (en) Dual-instruction-set architecture CPU with hidden software emulation mode
US5293592A (en) Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
US5944841A (en) Microprocessor with built-in instruction tracing capability
US4853849A (en) Multi-tasking register set mapping system which changes a register set pointer block bit during access instruction
US5249280A (en) Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
US5404560A (en) Microprocessor having external control store
KR100462951B1 (ko) Risc 구조를 갖는 8 비트 마이크로콘트롤러
US4591972A (en) Data processing system with unique microcode control
US4569018A (en) Digital data processing system having dual-purpose scratchpad and address translation memory
JP2018500657A (ja) 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック
JP3543181B2 (ja) データ処理装置
KR100272937B1 (ko) 마이크로프로세서및멀티프로세서시스템
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
US5619663A (en) Computer instruction prefetch system
JPH01214932A (ja) データ処理装置
US4347566A (en) Data processor with register file and arithmetic logic circuit on one chip and register means directly connected to the chip
US4812971A (en) Central processing unit for a digital computer
JPH07120278B2 (ja) データ処理装置
EP0349124B1 (en) Operand specifier processing
US4893235A (en) Central processing unit for a digital computer
JP2004086837A (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
KR20010007093A (ko) 마이크로 명령을 기초로 프로그램 가능한 명령을 실행하는하드웨어 장치
JPH0769806B2 (ja) データ処理装置