JPS61221826A - ストアド・プログラム型デイジタル・コンピユ−タの増速方法および装置 - Google Patents

ストアド・プログラム型デイジタル・コンピユ−タの増速方法および装置

Info

Publication number
JPS61221826A
JPS61221826A JP1666986A JP1666986A JPS61221826A JP S61221826 A JPS61221826 A JP S61221826A JP 1666986 A JP1666986 A JP 1666986A JP 1666986 A JP1666986 A JP 1666986A JP S61221826 A JPS61221826 A JP S61221826A
Authority
JP
Japan
Prior art keywords
microinstruction
branch
instruction
address
stack
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.)
Pending
Application number
JP1666986A
Other languages
English (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.)
EMC Corp
Original Assignee
Data General 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 Data General Corp filed Critical Data General Corp
Publication of JPS61221826A publication Critical patent/JPS61221826A/ja
Pending 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/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • G06F9/267Microinstruction selection based on results of processing by instruction selection on output of storage
    • 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/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel

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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (関連出願) 本願は、本願と同じ日付で出願された「コンピュータの
メモリーをアドレス指定する改善方法」なる名称の米国
特許出願と関連するものである。
(発明の背景) 発明の分野 本発明は、ディジタル・コンピュータに関シ、特に記憶
装置に格納された一連の命令またはそのサブセットまた
はレベル(即ち、マイクロ命令、マクロ命令等)に応答
するディジタル・コンピュータに関する。このような一
連の命令は一般に、命令が記憶装置内に順序付けされる
即ち配列されているシーケンス以外のシーケンスで「分
岐するJ即ち命令を実行することができる命令を含んで
いる。
本文に述べる概念は、マイクロ命令および他の命令のサ
ブセット即ちレベルに等しく適用するものである。
従来技術の説明 ストアト・プログラム方式のコンピュータは、一般に、
中央処理装置によって実行されるべき次の命令のメモリ
ー・アドレスもしくはその相等物を格納する装置を含み
、この装置は通常レジスタの形態をとり、一般に「プロ
グラム・カウンタ」即ちrPcJと呼ばれる。このプロ
グラム・カウンタは一般に、ある所要のシーケンスの命
令の開始アドレスでロードされ、以降の命令の連続する
アドレスを「指示する」ポイントから増分される。
実行されるべき次の命令は、一般に記憶装置における次
の順次の命令である。しかし、この命令のあるものは命
令の「分岐」または「飛越し」であり、その結果法の順
次の命令とは異なる命令の次の実行をもたらすことにな
る。このような他の命令は1つの分岐の「目的」命令と
して知られている。
「条件付き分岐」命令は、もしある指示された条件(機
械のある状態の条件またはある値に等しい変数等)が満
たされるならば目的命令(次の順次の命令以外の)は実
行されることになる。もしこの指示された条件が満たさ
れなければ、次の順次の命令が実行される。
初歩的なディジタル・コンピュータにおいテハ、実行さ
れるべき命令はプログラム・カウンタにより示される記
憶場所から取出(フェッチ・fetch )される。こ
のプログラム・カウンタは、この時取出されるべき次の
順次の命令を指示するため増分される。もしその時の命
令の実行が分岐が生じつつあることを表示するならば、
プログラム・カウンタの内容はその時の分岐命令により
指示される分岐アドレスによって重書きされる。次の命
令のメモリーにおけるアドレスを表示するためプログラ
ム・カウンタを用いて、正しい次の命令が取出される。
命令がメモリー内で配置される順序以外の順序で命令が
実行される別の状態は、サブルーチンの呼出しおよび戻
りと関連して生じる。繰返して必要とされる命令のサブ
シーケンスは「サブルーチン」として書込むことができ
る。従って、1つのこのようなサブシーケンスを実行す
ることが要求される時、ある「呼出し」命令が命令シー
ケンスにおいて現われ、この呼出し命令が次に実行され
るべき命令としてサブルーチンの開始アドレスを指示す
る。サブルーチンにおける最後の命令は「戻り」命令で
あって、これはサブルーチンが終りまで実行したこと、
およびこのサブルーチンを呼出したシーケンスがこの時
[呼出しJ命令(このサブルーチンを呼出した命令)の
直後の命令において再開されることを表示する。
呼出しおよび戻り命令を容易にするため、コンピュータ
は一般に、戻りアドレス(戻りアドレスを実行した後に
実行が再開されるべきアドレスである呼出し命令に続く
命令のアドレス)を格納するために通常「スタック」と
呼ばれるLIFO(後出し先入れ)メモリーを使用する
。ある呼出し命令を実行中、前記プログラム・カウンタ
は、上記の如く呼出し命令の取出しくフェッチ、 fe
tch)に用いられた後に増分された次の順次の命令の
アドレスを保有する。この時、プログラム・カウンタの
内容は通常スタックにおける次に使用できる記憶場所(
しばしば「スタックの最上部」と呼ばれる)に置かれる
。プログラム・カウンタには、サブルーチンの開始アド
レスとして呼出し命令において指定されるアドレスがロ
ードされ、サブルーチンの実行はこれから進行する。戻
り命令に遭遇すると、プログラム・カウンタには、実行
が再開される命令のアドレス、即ちサブルーチンを呼出
した呼出し命令に続く命令のアドレスがロードされる。
このアドレスは、スタックの最上部に見出されるが、こ
れは呼出し命令の実行の一部として置かれたためである
前記スタックと関連するのは、一般に1だけ増減させる
ための多重ピット・レジスタである「スタック・ポイン
タ」である。ある項目のアドレスを含むレジスタは一般
にこの項目を「指示」すると言われる。このスタック・
ポインタは、最初にスタックにおける第1の場所を指定
し、スタック上に何かが置かれると常に1だけ増分され
、スタックから何かが検索されると常に1だけ減分され
る。このように、スタック・ポインタは常にスタックに
おける次に使用できる場所を指定する。この方式は、「
ネストされたサブルーチン呼出し」、即ちあるサブルー
チンが別のサブルーチンを呼出すことを可能にする。例
えば、もしある命令のシーケンスがサブルーチンBを呼
出したサブルーチンAを呼出したとすれば、サブルーチ
ンBは1つの戻り命令と遭遇し、サブルーチンAにおい
て戻るベキアドレスがスタックの最上部から検索され、
スタック・ポインタは1だげ減分され、サブルーチンA
がある戻り命令と遭遇する時は、主要シーケンスにおい
て戻るべきアドレスがスタック・ポインタが所定位置に
減分された場所であるスタックの「新たな」最上部から
検索される。呼出しはスタックにおいて使用できる場所
と同じレベルだけネストすることができる。
従来技術の機械のスタック・ポインタは、一般に、スタ
ックにおいてアクセスされるべき次の記憶場所のアドレ
スを保持する。メモリーのアクセス毎に、スタック・ポ
インタの内容は対応する記憶場所を選択するため復号さ
れねばならない(通常は、ゲート・ロジックにより行な
われる)。スタックがオーバーフロー状態(即ち、その
容量を越える試みがなされた)となったかあるいはアン
ダーフロー(即ち、存在しない内容の検索についての試
みがなされた)状態となったかを判定するために、別の
ゲート動作を用いなければならない。
本文においては、用語「分岐」とは実行されるべき次の
命令がこれがある分岐命令、呼出し命令または戻り命令
の故であるかどうかに拘らず次の順位のもの以外である
場合に存在する状況を表示するために用いられる。
ディジタル・コンピュータの動作を増速する研究は、そ
の時の命令が依然として実行中である間に実行されるべ
き次の命令がメモリーから取出される「命令の先取出し
くブリフエツチング+prefetching)Jの如
き改善を含んでいる。このため、1つの命令の実行は前
の命令の実行の完了と同時に開始することができ、中央
処理装置はメモリーのアクセス、パスの変更等が生じる
間遅延させられることばない。
命令の先取出しから全ての利点を抽出することにおける
1つの問題は、条件付き分岐命令と関連して生じる。条
件付き分岐命令の実行の終り付近のある時点まで条件付
き分岐が生じるかどうかは通常知ることができず、この
時までに次の順次の命令(目的命令ではない)が既に取
出され(フェッチ、 fetch)ていなげればならな
い。この時、ある遅れが目的命令の取出し中に生じる。
目的命令の取出中のこの遅れを制限するための色々な試
みがなされており、例えば、ある条件付き分岐の結果の
予測(例えば、5andの米国特許第443070fS
号)、あるいは条件付き分岐が常に生じる(あるいは決
して生じない)とする仮定、およびプログラマがそのプ
ログラムをできるだけ過程に一致するように構成するこ
とを要求する機構の如きである。(例えば、200回行
されるループのコード化において、プログラマは20回
行なわれず次いで1回行なわれる出口分岐、あるいは2
0回行なわれた後1回行なわれない戻り分岐を使用する
ことができる。) これらの色々な試みにも拘らず、予測または仮定は常に
正確ではなく、即ち誤った命令が事前に取出され、次の
正確な命令を取出す間遅れが生じる。
(発明の要約) 本発明は、条件付き分岐命令を含み得るマイクロ命令を
格納するための制御ストアを含むマイクロ命令で制御さ
れるマイクロコンピュータにおいて実施される。本発明
は、ある分岐マイクロ命令によって指定される次の順位
のマイクロ命令と目的マイクロ命令の双方を先取出しす
るための二重の先取出し経路を提供するものである。本
発明はまた、条件付き分岐命令の実行の完了に先立って
2つの先取出しされたマイクロ命令のどれが次に実行さ
れるべきかを選択するものである。このため、条件付き
分岐命令が存在する場合でさえ、次のマイクロ命令の取
出しに起因する遅れを生じることな(マイクロ命令の実
行を可能にするものである。
従って、本発明の一目的は改善されたディジタル・コン
ピュータの提供にある。
本発明の別の目的は、速度が比較的早いディジタル・コ
ンピュータの提供にある。
本発明の更に別の目的は、ある命令の実行中適正な次の
命令の実行が即時開始できるようにするため次に可能な
両方の命令が先取出しされるコンピュータの提供にある
本発明の他の目的については、望ましい実施態様の記述
および図面を照合すれば当業者には理解されるであろう
(詳細な説明) 表1は、本文全体において例示するため用いられる仮想
マイクロ命令ス) IJ−ムの関連部分の概要を示して
いる。即ち 表  1 1皿        δ−−−−蔓 100  条件:400へ分岐  (行なわれないと仮
定)101  条件=200へ分岐  (行なわれると
仮定)102  (マイクロ命令)   (到達せず)
斎 謝 亜 200  条件:500へ分岐 201  (マイクロ命令) 魔 朋 寮 第1図は、命令の先取出しを用いる従来技術の機械のマ
イクロ命令取出しおよび実行部分を示す。
プログラム・カウンタ(PC)101は最初に、初期ロ
ード装置102によって所要のマイクロ命令シーケンス
の開始アドレスがロードされる。制御ストア104はマ
イクロ命令のシーケンスを保有する。
マイクロ命令サイクルの間、PClolの内容が制御ス
トア104へ前送りされ、これがそのアドレスがPCI
 01から受取られた場所からマイクロ命令を取出し、
この取出されたマイクロ命令を先取出しレジスタ105
に前送する。増分装置106は、PClolが次の取出
しにおいて次の順次のマイクロ命令のアドレス指定の用
意ができるようにPClolを増分する。
次のマイクロ命令サイクルの間、先取出しレジスタ10
5からのマイクロ命令がマイクロ命令レジスタ106に
対して転送され、ここでこのマイクロ命令は復号され、
次いでALUl 08 (rALUJは、命令により指
定される操作を実際に行なうコンピュータの中央処理装
置の部分である「演算論理装置」を意味する。)により
実行される。
その時マイクロ命令レジスタ106におけるマイクロ命
令の実行と同時に、次の順次のマイクロ命令が前項に述
べた手段によって先取出しされる。
もしマイクロ命令が分岐であれば(これが無条件分岐を
指示するためか、あるいはこれが条件付き分岐を指示し
条件が満たされる故のいずれか)、分岐マイクロ命令の
フィールド内に含まれるかこれにより指示された分岐ア
ドレスが回線109上をPClolへ入力され、その結
果次の先取出しが分岐マイクロ命令により指示される目
的マイクロ命令となる。
第2図は、第1図に示される従来技術の機械が表1のマ
イクロ命令シーケンスを実行する時生じるタイミングを
示す。マイクロ命令100がサイクル1に先立って先取
出しされたものとすれば、この命令はマイクロ命令レジ
スタ106内にあってサイクル1の間実行されることに
なる。また、サイクル10間、マイクロ命令101がP
Clolの制御下で制御ストア104から先取出しされ
るが、これは前述の如(マイクロ命令100を取出した
後101に増分された状態にある。マイクロ命令101
が先取出しされた後、PClol が102に増分され
る。マイクロ命令101は先取出しレジスタ105に置
かれる。サイクル2の開始時に、マイクロ命令101が
先取出しレジスタ105からマイクロ命令レジスタ10
6へ送うれる。これはサイクル2の間に実行される。ま
たサイクル20間に、マイクロ命令102が先取出しさ
れ、pcioiは106に増分されることになる。
マイクロ命令101の実行中、ALU108が、指示さ
れた条件付き分岐が生じること、即ち実行されるべき次
のマイクロ命令がマイクロ命令200であることを判定
する。マイクロ命令101の分岐アドレス・フィールド
からの数値r200JはPClolに対してロードされ
、これが前に増分された数値r103Jに重書きする。
マイクロ命令200は先取出しされず、マイクロ命令1
02は200への分岐が生じるサイクル2の初めにおい
ては未知であったため先取出しされる。(指示された条
件は、サイクル2の間のある点まで検査することができ
ない。)このため、サイクル6がALU108に対して
失われるが、これはサイクル3の間に実行すべきマイク
ロ命令が制御ストア104から未だ取出されなかったた
めである。サイクル3は、制御ストア104からの事前
取出しマイクロ命令200に専用化されねばならない。
PC’10’1は201へ増分され、これがサイクル4
0間に取出される命令である。マイクロ命令200は、
サイクル40間にALU108によって実行されるサイ
クル4の初めにマイクロ命令レジスタ106へ転送され
る。
条件付き分岐の不適正な先取出しのため失われる命令サ
イクルの問題を排除する本発明の先取出し方式は、第6
図の高レベルのブロック図に示されている。(以降の図
において更に詳細に示す)従来技術と本発明との間の主
な相違は、先取出しレジスタ308と先取出しバッファ
609からなる二重先取出し経路である。
本実施態様においては、各マイクロ命令が条件付き分岐
、条件付き呼出し、または条件付き戻りのマイクロ命令
である。このため、各命令はその実行における後続命令
として2つの命令の内のいずれか一方を指定する可能性
を有する。従って、2つのマイクロ命令が各マイクロ命
令サイクルの間に先取出しされる。あるマイクロ命令が
この可能性を持たない実施態様においては、これらのマ
イクロ命令の実行中に唯1つのマイクロ命令しか先取出
しを行なわないことがあり得る。
あるマイクロ命令の実行サイクルの最初の半分において
、先取出しレジスタ608は制御ストア307から次の
順次のマイクロ命令を受取り、2番目の半分において先
取出しバッファ609が制御ストア607から分岐目的
マイクロ命令を受取る。先取出しレジスタ608または
先取出しバッファ309のいずれかが、分岐が行なわれ
るかどうかについてその時の実行中に行なわれた判定に
従って次に実行されるべきマイクロ命令でマイクロワー
ド・レジスタ610をロードすることができる。
マイクロ命令の先取出しに用いられるアドレスは、次の
3つのソースのどれかからアドレスを得ることができる
マルチプレクサ606によって制御ストア607に対し
て与えられる。 即ち、(1)マイクロワード・レジス
タ610におけるその時のマイクロ命令(a)、または
1つが選択されて分岐マルチプレクサ602および前送
回路316へ送られるスタック315 (b)から得る
分岐アドレス、(2)分岐+1加算器604により増分
される如き分岐ラッチ614に格納されてPCマルチプ
レクサ605に送られる前の分岐アドレス、または(3
)PC+1加算器603により増分されてPCマルチプ
レクサ305に送られる如きPC(プログラム・カウン
タ)601である。PCマルチプレクサ305は、次に
使用の用意のためPC601をロードすることができ、
これをPC+1加算器606により増分される如きその
前のカウンタまたは分岐+1加算器304により増分さ
れる如き分岐ラッチ614からの分岐アドレスのいずれ
かでロードする。これらの6つのアドレス・ソース経路
とPCロード経路の間の対話については以下において詳
細に論述する。
呼出し命令を実行中、PC301の内容は、PC301
に保持されることに加え以降の戻り命令により使用され
るためスタック615において保持される。スタック6
16は、更に論述するようにスタック615のアドレス
指定動作を制御する。
制御ストア607により取出されたマイクロ命令は、前
述の如く、先取出しバッファ309または先取出しレジ
スタ608のいずれかを経てマイクロワード・レジスタ
610に対して与えられる。
一旦マイクロワード・レジスタ610に入ると1、これ
らのマイクロ命令はALU312によって実行される。
マイクロワード・レジスタ610に保持されたマイクロ
命令を実行するALU312は従来周知のALUでよく
、本文では記述しない。
制御ストア607はマイクロ命令サイクル毎に2度アク
セスされる。即ち、1回はその時実行中のマイクロ命令
の後に順次格納されるマイクロ命令の先取出しの際、ま
た1回はその時実行中のマイクロ命令の分岐目的マイク
ロ命令の先取出しの際である。条件付き分岐が生じるか
どうかが知られる時点であるその時のマイクロ命令の実
行の終りに、両方の可能な次のマイクロ命令が先取出し
され、この2つの適正な方の実行が異なるマイクロ命令
の取出しのため如何なる遅れもなく開始することができ
る。
次の順次のマイクロ命令の先取出しは、マイクロ命令の
実行サイクルの最初の半分において行なわれ、その時実
行中のマイクロ命令に前のマイクロ命令から順次到達し
たか、あるいはある分岐目的であることにより到達した
かに従って2つの経路の一方を進む。この識別のための
理由は、分岐が行なわれる方法についての論議において
明らかになるであろう。
第一に、その時実行中のマイクロ命令は分岐目的マイク
ロ命令であるためにこのマイクロ命令に達した場合につ
いて考えよう。そのアドレスは、以下に述べる理由から
分岐ラッチ614において格納される。その時分岐ラッ
チ614に格納されるその時実行中のマイクロ命令のア
ドレスは、その時実行中のマイクロ命令の後経路にある
次の順次のマイクロ命令を示すため分岐+1加算器60
4により1つずつ増分される。この増分されたアドレス
は、タイミング信号に応答してPCマルチプレクサ30
5によって選択されて制御ストア607に対するマルチ
プレクサ306に送られるが、これが次の順次のマイク
ロ命令を先取出しするためこのアドレスを使用すること
になる。
第二釦、その時実行中のマイクロ命令が分岐の結果では
なく前のマイクロ命令から順次到達した場合について考
えよう。そのアドレスは記述が進むにつれて以下に述べ
る理由によりPC30iに格納される。PC+1加算器
306は、次の順次のマイクロ命令を示すため1だけア
ドレスを増分する。この増分されたアドレスは、タイミ
ング信号に応答してPCマルチプレクサ305によって
選択されてマルチプレクサ306を経て制御ストア30
7に対して送られ、これが次の順次のマイクロ命令を先
取出しするためこのアドレスを使用する。
次の順次のマイクロ命令は、そのアドレスが分岐ラッチ
614とPC301のいずれから得られたかに拘らず、
先取出しレジスタ608に格納されてその時実行中のマ
イクロ命令が以下に述べるように分岐するかの判定を保
留する。
その時実行中のマイクロ命令の分岐目的マイクロ命令の
先取出しは、その時のマイクロ命令サイクルの後半にお
いて行なわれる。マイクロワード・レジスタ610に保
持されあるいはスタック315から得られるその時実行
中のマイクロ命令において指定される分岐アドレス61
1は、(ALUに応答してかつその時実行中のマイクロ
命令に基づいて)分岐アドレスの適当な1つを選択する
分岐マルチプレクサ602に対して前送され、これを分
岐アドレス前送回路313およびマルチプレクサ306
を介して制御ストア307に対するアドレス入力として
前送する。制御ストア307は、96ビツトの分岐目的
マイクロ命令を取出してこれを先取出しバッファ309
の入力に対して与える。この時、分岐目的マイクロ命令
は、これが要求される場合、即ちこの時実行中のマイク
ロ命令において指示される条件付き分岐が行なわれる場
合に、先取出しバッファ309を通ってゲートされるよ
うに使用可能である。分岐アドレス前送回路616から
の分岐アドレスは、次のマイクロ命令サイクルの最初の
半分において使用される可能性のため分岐ラッチ314
に保持される。
この時のマイクロ命令サイクルの終り付近で、ALU3
12はその時の条件からこの時実行中のマイクロ命令が
分岐するかどうかを判定する。もしそうであれば、この
暁光取出しバッファ609の入力側において得られる分
岐目的マイクロ命令は先取出しバッファ609を通って
マイクロワード・レジスタ310に対して送られ、ここ
でALU312がこれを次のサイクルの間実行すること
になる。
あるいはまた、もしその時のマイクロ命令が分岐を行な
わなければ、前述の如く、先取出しレジスタ308に格
納された次の順次のマイクロ命令がマイクロワード・レ
ジスタ310ヘゲートされ、ここでALU312が次の
作動サイクルの間にこれを実行することになる。また、
もしその時のマイクロ命令が分岐を行なわなければ、こ
の時PCマルチプレクサ305はPC301を次の順次
のマイクロ命令のアドレスでロードするが、これは前述
の如く1だけ増分された分岐ラッチ614の内容かある
いは1だけ増分された元のPC301の内容の(1ずれ
かである。このため、次のマイクロ命令の実行の開始時
に、もしこれに順次に達しているならばそのアドレスは
PC301に含まれる。
従って反対に次のマイクロ命令が分岐目的であったなら
ば、PC301の内容は無視されてマイクロ命令のアド
レスが分岐ラッチ314において前述の如(見出される
ことになろう。この時点からの順次の実行がPC301
または分岐ラッチ314のアドレスのいずれかから然る
べく進行することになる。
第4図は、本発明を用いたマイクロコンピュータにおい
て表1のマイクロ命令クーケンスを実行する時のタイミ
ングを示している。マイクロ命令サイクル1においては
、マイクロ命令100が実行中である。(本実施態様に
おいては、マイクロ命令サイクルが持続時間においてそ
れぞれ140ナノ秒である。)前述の如くサイクル1の
最初の70ナノ秒間にマイクロ命令101(次の順次の
マイクロ命令)が先取出しレジスタ608に対して先取
出しされる。サイクル1の最後の70ナノ秒間に、マイ
クロ命令400(マイクロ命令100の条件付き分岐の
対象となる)が前述の如(先取出しバッファ609に対
して先取出しされる。サイクル1の終りに、実行ロジッ
クが(前に述べたように)400への条件付き分岐が行
なわれないことを判定し、このためマイクロ命令101
は先取出しレジスタ308からマイクロワード・レジス
タ610に対して転送されることになり、これは次のサ
イクルであるサイクル2において実行されるべきマイク
ロ命令となる。先取出しノ(ツファ609を介して得ら
れるマイクロ命令は無視される。
サイクル2の最初の70ナノ秒間に、マイクロ命令10
2(次の順次のマイクロ命令)が先取出しレジスタ30
8に対して先取出しされ、この70ナノ秒間にマイクロ
命令200(条件付き分岐の対象マイクロ命令)が先取
出し・くツファ609に対して先取出しされる。サイク
ル2の終りに、実行ロジックはマイクロ命令200に対
する条件付き分岐が行なわれるべきことを判定し、マイ
クロ命令200は先取出しバッファ609を介してマイ
クロワード−レジスタ310に対して転送され、サイク
ル乙において実行されることになる。先取出しレジスタ
308におけるマイクロ命令102は無視される。不適
正な先取出しの故に、マイクロ命令サイクル間で時間の
損失が生ぜず、1つの分岐の両方の可能性は常に先に取
出される。
次に、本発明を盛込んだ論理回路を示す第4図乃至第1
5図の詳細な記述が続く。これらの図面について述べる
間、第6図特に第6図に示される基準信号を照合された
い。この論議においてはあるタイミング信号について述
べることになろう。
タイミングの制約条件については先に論議済みであり、
第16図に関連して更に論議がなされよう。
上記の制約条件に合致するタイミング信号の生成につい
ては文献において周知であり、本文においては論議しな
い。
第5図および第6図は一緒に分岐マルチプレクサ302
のロジックを示している。複数の信号の1つを選択する
ための装置がMUX(「−rルチプレクサ」に対する一
般的な略記)である。分岐MUX302は分岐アドレス
311の1つを選択するため使用される。制御ストア3
07は4096個の記憶場所の容量を有するため、これ
らの場所のどれかをアドレス指定するためVCl2ビッ
トのアドレスが要求される。従って分岐MUX302は
、複数の12ビツトの分岐アドレスの1つを選択する能
力を有する。第5図および第6図は、00乃至110番
号が付された各々が必須の12ビツトの異なるものを取
扱う12の同様な形態のロジック・グループを示してい
る。第5図におけるグループ501(ビット02の取扱
いのための)は12のロジック・グループを表わすもの
と見做され、これは多(の入力を有し、これらの入力は
マイクロフード・レジスタ30のビット位置から、ある
いは以下において更に論述するようにスタック315か
ら始まる各分岐アドレス6110ピツト02である。ゲ
ート動作により、グループ501は信号BRADRO2
として出力するものとしての1つを選択する。分岐アド
レスを指示する方法を含む命令の組をレイアウトする方
法は文献において周知であり、本文では論述しない。複
数の入力の1つを選択する組合せゲート動作のための構
成も同様に周知であり、本文においては同様に論述しな
い。グループ501が信号BRADRO2を生じる方法
においては、12の全ての一致して動作するロジック・
グアレープは12ビツトの分岐アドレスBRADROO
乃至BRADR,11を生じ、これは第10図に示され
る分岐アドレス前送回路′515に対して入力される。
第7図は分岐ラッチ614および分岐+1加算器604
からなるロジックを示す。要素701乃至707は分岐
ラッチ314を構成する。701および702は信号ラ
ッチ回路であり、703乃至707は二重ラッチ回路で
あり、12ビツトのアドレスを包含するための合計で1
2のラッチ回路を生じる。(1つのラッチは、そのクロ
ック入力が論理値ハイである時データ出力に対してその
データ入力の状態を単に送り、そのクロック入力が論理
値ローに変移する時データ入力の状態を格納する双方向
安定回路である。)分岐ラッチ304に対する12ビツ
トの入力は分岐アドレス前送回路313(第10図)か
らのアドレスBRADOO乃至BRAD11であり、こ
れに分岐ラッチ614に格納され次いで信号回線BRL
OO乃至BRL11上に現われる。これらの信号回線は
、分岐+1加算器304を構成する半加算器708乃至
718に対して入力される。半加算器の動作については
文献において公知であり、本文では論述しない。
分岐+1加算器604の出力は11アドレス・ビットの
BRPADnO乃至BRPADloである。ビット11
(最下位ビット)は、2進数の1だけの加算が最下位ビ
ットを単にトグルする(相補する)ため、増分計算には
含まれない。このトグル動作は、第9図に関して論述す
るPCMUX305の入力側において行なわれるビット
00乃至10の内容はビット1101つのトグルされた
状態と関連して、共に分岐ラッチ514における12ビ
ツトのアドレスより1だけ大きな12ビツトのアドレス
を表わす。このアドレスはPCMUX305 (第9図
)に対して出力される。
306を構成する半加算器813乃至823を示してい
る。(フリップフロップとは、そのクロック入力が変換
を行なう時1つの2進ビツトの状態を格納する双方向安
定回路である。)入力はPMUX305からのアドレス
PCADR[][]乃至PCPCADRll第9図)で
ある。動作は分岐ラッチ614および分岐+1加算器6
04のそれと類似している。出力PCPADOO乃至P
CPADIOはPCMUX305に対して入力される(
第9図)。
第9図はPCMUX305の論理図である。2:IMU
X901.902.905は各々12ビツトφアドレス
の4つのビットを取扱う。2つの12ビツトのアドレス
が入力、即ちPC301およびPC+1加算器306か
らのPCPADOO乃至PCPADloおよびPCRl
l、および分岐ラッチ614および分岐+1加算器60
4からのBRPADOO乃至BRLllとして表わされ
る。信号PCPADおよびBRPADの逆の状態が2 
: IMUXK対して入力されるが、PCRllおよび
BRLllの非逆状態が入力され(2: IMUX90
5のピンA6およびB5)、これが1の増分と関連して
上記の最下位ビットのトグル動作を行なう。2つの12
ビツト・アドレスが前に述べた条件に従って選択され、
12ビツトのアドレスPCADDROO乃至PCADD
R11(第11図)として、またPC301に対する1
2ビツトのアドレスPCADROO乃至PCADR11
(第8図)として出力される。
第10図は、分岐アドレス前送回路613のロジック図
を示す。この回路は、分岐MUX302(第5図および
第6図)から12ビツトの分岐アドレスBRADROO
乃至BRADR11を受取り、従来周知のゲート装#に
よりMUX306 (第11図)に対して12ビツトの
分岐アドレスBRADDR00乃至BRADDR11を
生成し、分岐ラッチ314(第7図)K対して12ビツ
トの分岐アドレスBRADOO乃至BRAD11を生成
する。この出力アドレスは入力アドレスと同じ値を有す
るが、前述の必要なタイミング関係において確立される
第11図は、6つの8ビツトの5916バツフア回線駆
動回路1101.1102.1106から構成されるM
UX306のロジック図を示す。これらの各々は、2:
IMUXとして機能する能力を有し、即チヒン1におけ
る論理値のローの状態はピン2.4.6.8においてそ
れぞれ出力ビン18.16.14.12に対して送られ
る信号を生じ、ピン19における論理値ローはピン11
.15.15.17における入力信号をそれぞれ出力ピ
ン9.7.5.6に対して送らせる。24の出力ピンは
120対に一緒に接続されている。(例えば、バッファ
回線駆動回路1102のピン18は信号名UADDRO
Oを有し、バッファ回線駆動回路1106のピン9は同
じ信号を有する。これは、これらの2つのピンが一緒に
ワイアドされていることを明確に示す。)このため、信
号UIRCLK1101の状態(第16図の論議におい
て更に詳細に述べる)Vc従って、12ビツトのアドレ
スBRADDROO乃至BRADDR11または12ビ
ツトのアドレスPCADDROO乃至PCADDR11
は、制御ストア607(第12図)に対するアドレス入
力として処理する回線UADDROO乃至UADDR1
1に対してゲートされる。
第12図は、4Kx100ビツトのストアを生じる結果
となる4に×4ビットのRAMチップを構成する制御ス
トア607のロジック図である。
12ビツトのアドレスUADDROO乃至UADDR1
1&″S、並列で25の各チップに対して加えられるが
、これは信号CWRITnが「誤り」であるとすれば、
それぞれ前記アドレスにより指示された場所のビットの
4つを出力する。(CWRITEn&工、本文において
は論述しない制御ストア607をロードする時のみ「真
」となる。)200の出力回線csoo乃至C899は
′507の100ビツト出力を構成する。96ビツトの
C3OO乃至C895のみが本実施態様においてこの時
使用される。
第16図および第14図はそれぞれ先取出しレジスタ6
08および先取出しバッファ609のロジック図であり
、これは−緒に本発明の二重先取出し経路を構成する。
先取出しレジスタ508は12の8進数の(即ち、パッ
ケージ当り8つの回路)フリップフロップ−チップとし
てパッケージされた96ビツトのレジスタを構成する。
これは、前述の如(、もしその時のマイクロ命令が分岐
しなければ次を実行すべきマイクロ命令でロードされ、
制御ストア307に現わハるマイクロ命令は、「真」と
なる信号LAST70CLKnにより制御されるように
140ナノ秒のマイクロ命令サイクルの最初070ナノ
秒の終りにcso o乃至C895を出力する。96の
出力5ELUIROO乃至5ELUIR95(出力可能
信号TESTPASSEDnの為「偽」の状態により使
用可能となる時)は、マイクロワード・レジスタ610
に対する入力となる。もしその時のマイクロ命令が分岐
しなければ、先取出しレジスタ608からのマイクロ命
令はこのためマイクロワード・レジスタ610に対して
転送され、次の実行マイクロ命令となる。
先取出しバッファ309は、12の8進数のバッファ回
線駆動回路からなる。これらは7リツブフロツブではな
いこと、またこのため先取出しバッファ309はレジス
タでないこと(即ち、これが制御ストア607の出力は
格納せず、これら出力をマイクロワード・レジスタ61
0に対して通すのみであること)を留意さハたい。信号
TESTPASSEDnの「真」の状態により使用可能
状態になる時、先取出しバッファ609は分岐対象マイ
クロ命令を通し、その時のマイクロ命令サイクルの終り
に96の制御ストア307出力C895上に現われ、回
線5ELUIROO乃至5ELUIR95上でマイクロ
ワード・レジスタ510の入力に至る。もしその時のマ
イクロ命令が分岐するならば、これはこの経路を通って
対象マイクロ命令が次の実行マイクロ命令となる。
第15図は、2504ビツトのシフトレジスタsチップ
を構成するマイクロワード・レジスタ510のロジック
図である。入力は、もしこのマイクロ命令が分岐しなげ
れば前述の如(先取出しレジスタ308から、またもし
このマイクロ命令が分岐するならば先取出しバッファ3
09を通る96の回線5ELUIROO乃至S ELU
 I R95である。5ELUIROO乃至5ELUI
R95は信号UIRCLKn15[]1の「真」の変換
によりマイクロワード・レジスタ310に対してクロッ
クされることになる。マイクロワード・レジスタ610
の出力はマイクロ命令の処理要素(即ち、ALU612
)を直接制御し、このためマイクロワード・レジスタ6
10に対してロードされるマイクロ命令か実行するマイ
クロ命令となる。
第16図は、表1の命令ンーケンスのための制御ストア
307、先取出しレジスタ508、先取出しバッファ5
09およびマイクロワード・レジスタ510間の対話の
詳細なタイミングを示している。回線1601は3つの
連続するマイクロ命令サイクルを規定し、回線1602
はこれらをナノ秒のタイミングと関連付ける。マイクロ
命令100(表1からの)はサイクル10間に実行され
るものとする。次に、このマイクロ命令1ooが行なわ
れることがないと仮定さハる400への条件付き分岐で
あるとして、サイクル2においてマイクロ命令101(
次の順位のマイクロ命令)がどのように実行されるかに
ついて考える。
その時実行中のマイクロ命令であるマイクロ命令100
は前に実行されたマイクロ命令に対する次の順位の命令
のマイクロ命令であることによって到達したものとする
。前に述べたように、そのアドレス(100)はこの時
PC301に保持される。(分岐目標としてこれに達し
たならば、そのアドレスは前述の如く分岐ラッチ614
にあることになる。)前述の如く、サイクル1の最初の
7゜ナノ秒の間に、マイクロ命令100のアドレス(1
00)はPCMUX305およびMUX306を経て制
御ストア507に対して送られるPC+1加算器303
を介し101へ1だけ増分される。
サイクル1の最初の70ナノ秒の間の終りに、場所10
1からのマイクロ命令は回線16o7により示されるよ
うに制御ストアの出力側において得ることができる。回
線1604が示すように、信号LAST70CLKはこ
の時「真」となり、先取出しレジスタ608(第16図
参照)におけるマイクロ命令を格納する。回線1608
が示すように、マイクロ命令101は140ナノ秒後の
LAST70CLKの次の「真」の変換まで先取出しレ
ジスタ308に格納された状態のままである。サイクル
1の最後の70ナノ秒の間、制御ストア307はこの時
実行中のマイクロ命令から得られるように対象マイクロ
命令の分岐アドレスによりアクセスされる。前述の如(
、これは分岐MUX302およの終りにC8出力側にお
いて得ることができる。
第14図によれば、制御ストアの出力が先取出しバッフ
ァ309に対して入力されるが、これらは信号TEST
PASSEDが真でない(回線1606)であるため、
この特売取出しバッファ509を通されることはないこ
とが判る。もしその時のマイクロ命令が分岐であるなら
ばTESTPASSEDは真となり、その仮定はこの時
のマイクロ命令100は分岐しないことである。一方、
第16図においては、TESTPASSED1401の
偽の状態は、先取出しレジスタ308の内容(これらの
内容はマイクロ命令101である)を回線1609上に
示されるように回線5ELUIRに対してゲートされる
ことを可能にする。140ナノ秒の時点において、信号
UIRCLKが真の状態になる(回線1605)。
第15図によれば、UIRCLKのこの変換が回線5E
LUIRをマイクロワード・レジスタ310にクロック
する(回線1611)。このため、マイクロ命令101
は前記マイクロワードΦレジスタを占有し、サイクル2
の間にその時実行中の命令である。値「101」は信号
回線PCADROO乃至PCADRII上のPCMUX
305からサイクル2の間に生じることになる取出しに
おいて用いられるPC5012m変換される。
表1はマイクロ命令101が行なわれるべき200への
条件付き分岐を含むことを前提とするため、マイクロ命
令200はサイクル60間マイクロワード・レジスタを
占有することになる。
サイクル1と同様に、次の順位の制御ストアの場所(場
所102、即ちPCり01から値101をとることによ
り得てこれをPC+1加算器603において102へ増
分することにより得られるアドレス)がサイクル2の最
初の70ナノ秒の間にアクセスされ(回線1603)、
マイクロ命令102がLAST70CLKによって先取
出しレジスタに対しゲートされる(回線1608)時点
において制御ストアの出力において得ることができる(
回線1607)。増分されたアドレス102は、PC3
01に格納される。制御ストアの場所200(マイクロ
命令101から得られる目標ア製レス)はサイクル20
2番目の70ナノ秒の間にアクセスされ(回線1603
)、分岐目標マイクロ命令200はサイクル2の終りに
制御ストアの出力側および先取出しバッファの入力側に
おいて得ることができる(回線1607)。値200は
、分岐ラッチ′514において格納される。この分岐が
行なわれるべきことを判定したALU312は信号TE
STPASSEDを生じる(回線1606)。第16図
においては、TESTPASSEDは先取出しレジスタ
から回線5ELUIRに対する次の順位のマイクロ命令
102のゲート動作を禁止しく回線1609)、第14
図においては、TESTPASSEDが先取出しバッフ
ァを経て回線5ELUIRに対する分岐目標マイクロ命
令200のゲート動作を可能にする。時点280ナノ秒
においては、UIRCLKが真の状態に変換する(回線
1605)。第15図においては、この状態は分岐目標
マイクロ命令200を回線S ELU I Rからマイ
クロワード・レジスタ610ヘクロツクする。このため
、分岐目標マイクロ命令200はサイクル乙の間に実行
される。
サイクル6の最初の半分において、マイクロ命令210
が先取出しされる(回線1607 )。その時実行中の
マイクロ命令(200)は分岐の目標であった故にこれ
に達するため、PC301は活動状態にはならず、値2
00が分岐ラッチ614に格納され、分岐+1加算器3
04は所要のアドレス201まで増分する。
サイクル乙の最後の半分において、実行中のマイクロ命
令200がその目標アドレスとして500を指示し、マ
イクロ命令500が事前に取出される。この2つの内の
一方が本文には説明しないサイクル4において実行する
ように選択される。
次に、スタック615とスタック−ポインタ316につ
いて論述する。
あるスタックをアドレス指定するための従来技術の方式
が第17図に示される。スタック1706は、ある数の
記憶場所、本例では4つの記憶場所を有する記憶装置で
ある。スタック拳ポインタ1701は、アクセスが要求
されるスタック17015における場所のアドレスを含
むためのフリップフロップ・レジスタである。増分/減
分装置1705は、スタック・ポインタ1701の内容
を1つだけ加減算することができる。(スタック場所は
順次アドレス指定されるため、ランダム・アクセス・メ
モリーにおける場合のようにスタック・ポインタ170
1を任意の内容でロードすることは必要でない。)スタ
ック−ポインタ1701は、スタック1706における
記憶場所と同数の値を保有することができなければなら
ない。スタック1706は4つの場合を有するため、ス
タック・ポインタ1701の2ビツトの場所は4つの組
合せ、即ち00.01.10および11にわたって増分
することができる。
スタック1705における4つの場所の特定の1つを選
択するためには、スタック・ポインタ1701の内容を
復号することにより1つの「アドレス選択回線」を使用
可能の状態にすることが一般に必要である。デコーダ1
702は、スタック・ポインタ1701の可能な各内容
を認識する組合せのゲート動作を含み、4つのアドレス
選択回線1706の対応する1つを使用可能状態にし、
その結果スタック1703の対応する場所とバス170
4間におけるデータの転送を生じることになる。
(記憶装置の動作については文献において公知であり、
本文では論述しない。) 別のゲート動作は「オーバーフロー」および「アンダー
フロー」の状態を検出するためデコーダ1702に含め
ることができる。(定義として、スタックの容量を越え
るある試みが行なわれる時スタックはオーバーフローす
るといわれ、データが前にスタックに格納されなかった
時スタックからデータを検索する試みが行なわれる時ア
ンダーフローするといわれる。) 第18図は、本発明のスタック・アドレス方式の概略図
を示す。スタック315は、その各々がアドレス選択回
線1802の1つにより使用可能状態にされる4つの1
2ビツトの記憶場所を保有する。アドレス選択回線18
02の各々は、従来技術における如く増分/減分レジス
タではな(1つのシフトレジスタであるスタック・ポイ
ンタ616の出力側である。スタック・ポインタ616
は、少な(ともスタック315の記憶場所と同数の段を
持たなければならない。(本実施例においては、スタッ
ク・ポインタ316における段数はスタック615にお
ける記憶場所の数より2つ多い。以下に述べるように、
この2つの余分な段数はオーバーフローの検出において
その助けを行なう。)スタック・ポインタ616は最初
その最も右側段(段5)における1つの1ビツトでロー
ドされ、そして、残りは0ビツトで満される。この1ビ
ツトは、各スタック書込みの後左側にシフトされ、各ス
タックの読出しの後右ヘシフトされる。ある時点におい
て1ビツトを含む段はその出力を真の状態に保持し、ス
タック・ポインタ616の出力回線は実際にアドレス選
択回線1802であるため、適正なアドレス選択回線は
従来技術の方式が必要とするゲート動作または復号動作
のいずれも必要とすることなく真となる。多くの用途に
おいてスタックを迅速に動作させることが必要であるた
め、ゲート動作と関連する遅延を排除されることは有利
となる。ビットのシフトは前述の如(左から右方である
が、この方向は逆にすることもでき、依然として本文に
述べた本発明を利用する結果となる。
本実施例では、戻りマイクロ命令により後に使用される
ため呼出しマイクロ命令に続くマイクロ命令のアドレス
を唯一の目的のため、即ちこれを格納するためにスタッ
ク615を使用する。例えば、もしマイクロ命令700
があるサブルーチンを呼出す呼出しマイクロ命令である
ならば、アドレス7D1(前述の如(、PC+1加算器
305において700を増分してこれをPCマルチプレ
クサ305を介して回線PCADROO乃至PCADR
11に対して送り、これをPC301にロードすること
により得られる)はPC301から出力されてスタック
の最上部に格納される。このサブルーチンが戻りマイク
ロ命令を実行する時、アドレス701は前記スタックの
最上部から検索され、次のマイクロ命令アドレスとして
分岐マルチプレクサ302に対し入力される。このよう
に、実行は呼出しマイクロ命令に続くマイクロ命令に戻
る。
本実施例においては、PC301の内容はマイクロ命令
サイクル毎に次に使用可能なスタックの場所に対して書
込まれる。しかし、その時のマイクロ命令が条件付き呼
出しマイクロ命令でありまた指示された条件が満たされ
るだけで、スタック・ポインタ316&工左方ヘシフト
される。従って、実際に分岐を生じる呼出しマイクロ命
令の戻りアドレスであるPC301の内容のみが他の全
てのマイクロ命令に対してスタック内に保持され、スタ
ック・ポインタ616をシフトできないと選択された各
々スタック315の場所を保持する結果となり、その内
容が次のマイクロ命令サイクルの間に重書きされること
になる。
前述の如(、スタック・ポインタ616は最初に段5に
おける1ビツトを除いて全て0のビットに対してセット
される。段5における10ピツトは場所3を選択する。
場所3がある呼出しマイクロ命令に対して書込まれる時
、この1ビツトが場所2を選択する段4にあるようにス
タック・ポインタ316が1段0ヘシフトされる。更に
3つの呼出しマイクロ命令が場所2.1.0の充填を生
じ、前記の1つのビットを段3.3.1へそれぞれシフ
トし、この時スタックが充填状態となる。
スタック515においである戻りアドレスを格納しよう
とする他の試みがこの1ビツトを段0ヘシフトする。実
際にはスタックへの書込みは行なわれず、スタック・ポ
インタ516の段1と関連するスタック場所は存在しな
い。このためオーバーフローを生じるが、本実施例は書
込むことができないデータを検索するための試みが行な
われるまでオーバーフローの検出は行なわない。スタッ
ク315から読出すための次の試み(書込むことができ
ないデータを読戻す試み)はゲー)1803か−ら信号
0VERFLOWを生じる。
スタックが空の時(このスタックには何も書込まれなか
ったか、あるいはこのスタックに書込まれた全てが読戻
されたか9いずれかの理由で)、1つのビットがシフト
レジスタ316の段5にある。この時スタックを読出す
試みはスタック・ポインタ616のシフトは行なわない
が、ゲート1804から信号UNDERFLOW を生
じることになる。
第19図は、スタック・ポインタ316のロジック図を
示す。これは6つのD型フリツブワロツブからなる。(
D型フリップフロップは入力CLKが論理値ハイの状態
に変移する時D(データ)入力の状態を捕捉してこれを
格納する。)段0は最上部(要素1903 ) (従来
は「左方」と呼んだ)において示され、段5(スタック
′515の最初の場所と関連する)は最下部(要素19
04)(従来は「右方」と呼んだ)に示される。ゲート
・グループ1901は、条件付き呼出しマイクロ命令を
指定する01と等しいその時マイクロ命令のビットBR
TYPKより、また必要条件が満たされることを示す信
号TSTCNDOによって使用可能状態となり、呼出し
マイクロ命令が行なわれることを示す信号C5TKCを
生じる。同様に、11およびTSTCNDOK等しいビ
ットBRTYPが、戻りマイクロ命令が行なわれるべき
ことを示すゲート動作グループ1902からの信号R5
TKCを生じる。
ある呼出しマイクロ命令と同時に、信号C5TKCは(
「左方」への変換により)シフト・スタック・ポインタ
316を比較的小さな番号の段へシフトして、以降のス
タックの場所を示す。例えば、ゲート1905はC5T
KCおよび5TCKC5(段3の状態)によって使用可
能状態となり、この状態を段2ヘゲートする。
同様に、戻りマイクロ命令と同時に、R8TKCはスタ
ック・ポインタ616を更に大きな番号の段(「右方」
)ヘシフトする。グー)1906は、例えば、段2の状
態を段3ヘシフトする。
5TKC2,5TKC5,5TKC4および5TKC5
(それぞれ、段2乃至段5の出力)は信号R,ESTO
REにより使用可能状態にされた2:1MUX1907
を経て、それぞれアドレス選択回線1802である5T
KWO1STKWI、5TKW2および5TKW5に対
して送られる。
スタック315を構成する回路を第20図に示す。4つ
の場所の各々は、6つの二重り型フリップフロップから
構成されている。(二重り型フリップフロップは2つの
D型フリップフロップを1つのパッケージに組合せたも
のである。)例えば、要素2011は場所0のビット0
および1を格納し、ピン1および6&′f−それぞれビ
ット0および1に対する入力であり、ピン7および9は
それぞれビットOおよび1に対する出力である。要素2
011は、これが場所Oの一部であるため、ピン4にお
けるアドレス選択回線1802の5TKWOを要求する
4つの場所2001.2002.2006.2004の
各々は、それぞれ5TKWO1STKWI、5TKW2
.5TKW5により使用可能状態にされる。
スタック515は、前述の如<PC501の内容を格納
するため使用される。PC301の出力即ちPCROO
乃至PCRllは、信号RESTOREの制御下で2 
: I MUX2012.2016.2014  を通
って回線5TK100乃至5TK111に対し送られる
が、これらは4つのスタックの各場所と並列に入力され
、前述の如くアドレス選択回線1802によりその時使
用可能状態にある1つの場所に格納される。
PC301の回路はマイクロ命令サイクル毎にスタック
り15に格納されるが、前述の如(スタック・ポインタ
616は呼出しマイクロ命令が実行される時を除いて左
方ヘクフトされないことに注目されたい。従って、スタ
ック!115に対して書込まれた状報は呼出しマイクロ
命令を除いて保管されず、もしスタック・ポインタ61
6がシフトされなければ、あるマイクロ命令サイクルに
おいてスタックの場所に書込まれたデータは次のマイク
ロ命令サイクルに重書きされることになる。
第21図は、戻りマイクロ命令の構成のため分岐MUX
302および分岐アドレス前送回路313によって要求
される信号を生成するだめの論理回路を示す。ゲート2
101.2102.2106.2104は、戻りマイク
ロ命令を示す11と等しいその時実行中のマイクロ命令
のビットBRTYPにより使用可能状態にされる。各々
はシフトレジスタ316の段の1つにより使用可能状態
にされ、前述の如くスタック315におけるある場所を
示す。
例えば、ゲート2106は5TKC3によって使用可能
状態にされ、スタックの場所1がその時書込まれるよう
に選択されることを意味する。この状態は更に、スタッ
クの場所2がこれに格納されたある戻りアドレスを有す
る最後のスタックの場所であることを意味する。従って
、グー)2105は信号5TK2 BRを生じ、スタッ
ク場所2に含まれるアドレスがこの時分岐目標アドレス
として使用されることを示す。
そのアドレスがスタック場所2に保持される場所に対す
る分岐動作は、分岐MUX302によって始められる(
第5図および第6図)。ビット02を一例として用いて
第5図を照合すると、ゲート502は(今述べた許りの
)信号5TK2 BHによって使用可能状態にされ、信
号5TKO2(第20図においてはスタック場所2のビ
ット02として示される)を通す。ロジック・グループ
501はこの時BRADRn2を出力する。同様に、第
5図および第6図に示された他の11のロジック−グル
ープは、グループ501と共に12ビツトのアドレスB
RADROO乃至BRADR11を出力し、前述の如(
その結果このアドレスへの分岐を生じることになる。
マイクロワードにおけるエラーがスタックのオーバーフ
ローまたはアンダーフローを生じる場合には、丁度述べ
た許りのように分岐MUXによって生じたアドレスが不
確定であり、このような不確定のアドレスへの分岐の試
みは不確定な結果を生じることになる。このような場合
には、コンピュータは一般に「トラップ」状態を生じ、
即ち機械をできるだけ正常にエラーから回復させるシー
ケンスの開始にマイクロ命令の実行を強制する。
構成上の規定によれば、本実施例においては、もしスタ
ックのオーバーフローが検出されるならば、制御ストア
307の場所1におけるマイクロ命令に対し、またアン
ダーフローが検出される場には場所2におけるマイクロ
命令に対してトラップする。次に、これらのトラップが
構成される方法についての論述を行なう。
オーバーフローの状態は、第21図において詳細に示さ
れたグー)18031によって検出される。
戻りマイクロ命令を示す11と等しいビットBRTYP
、および前述の如くスタック615における使用可能な
場所を越えて書込みを行なう従来の試みを示す5TKC
Oは、オーバーフローを示す信号5TKOVFLを生じ
る。戻りマイクロ命令を指示するビットBRTYPに応
答するゲート1804と、スタックが前述の如(空であ
ることを示す5TKC5はアンダーフローを示す信号5
TKUNFLを生じる。これらの信号のいずれかはゲー
ト21[]5をして信号5TKERRを生じさせる。
次に、第10図の分岐アドレス前送回路313について
述べる。ゲート1001乃至1012の各々によれば、
アドレスBRADDROO乃至BRADI)Ftllが
回線BRADDROO乃至BRADDR11に対して送
られるためには、信号5TKERR,5TKUNFLお
よび5TKOVFLは全てあってはならない。もし5T
KUNFLおよび5TKERRが存在すると、12の全
ての出力ビットはSゲート1011を可能状態にする5
TKUNFLの故vc1となるBRADDRloを除い
て0となる。
同様に、もLSTKOVFLおよび5TKERRが存在
するならば、5TKOVFLがゲート1012を使用可
能状態にするため1となるBRAD−DRllを除いて
12の全てのビットが0となる。このビット構成は必要
なアドレス1を表わす。
本発明はその主旨または特有の特性から逸脱することな
く更に他のいくつかの形態において実施することができ
る。このため、本文の実施態様は全ての観点から例示で
あって限定ではないと見做すべきであり、本発明の範囲
は本文の記述よりも頭書の特許請求の範囲によって示さ
れ、従って特許請求の範囲の相等内容の童味および範囲
内に該当する全ての変更は本発明に包含されるべきもの
である。
【図面の簡単な説明】
第1図はマイクロ命令を使用する従来技術の機械のマイ
クロコード制御方式を示すブロック図、第2図は第1図
の従来技術の機械において実行する仮定されたあるマイ
クロ命令のシーケンスのタイミングを示すタイミング・
チャート、第5図は本発明のマイクロ命令取出し方式を
示す概略図、第4図は本発明を実施した機械において実
行するある仮定されたマイクロ命令のシーケンスのタイ
ミングを示すタイミング・チャート、第5図および第6
図は本発明の分岐アドレス峰マルチプレクサを含む回路
を示す図、第7図は本発明の分岐ランチおよび分岐アド
レス増分装置からなる回路を示す図、第8図は本発明の
プログラム・カウンタとプログラム・カウンタ増分装置
を含む回路を示す図、第9図は本発明のプログラム・カ
ウンタ入カマルチブレクサを構成する回路図、第10図
は本発明の分岐アドレス前送りのための回路を示す図、
第11図は本発明の制御ストアのアドレス人カマルチブ
レクサを示す図、第12図は本発明のマイクロ命令制御
ストアを示す図、第16図は本発明のマイクロ命令の先
取出しレジスタを示す図1、第14図は本発明のマイク
ロ命令の先取出しバッファを示す図、第15図は本発明
のマイクロワード・レジスタを示す図、第16図は本発
明の機械において実行する仮想マイクロ命令シーケンス
の詳細なタイミング・チャート、第17図は従来技術の
メモリーアドレス指定方式を示す図、第18図は本発明
のスタック・アドレス指定方式の高レベルの概略図、第
19図は本発明のスタック・ポインク回路を示す図、第
20図は本発明のスタックを示す図、および第21図は
本発明のあるゲート回路を示す図である。 301・・・プログラム・カウンタ(PC)、302・
・・分岐マルチプレクサ、 306・・・pc+i加算
器、 504・・・分岐+1加算器、 505・・・P
CCマルチフレフサMUX)、  306・・・マルチ
プレクサ、 307・・・制御ストア、 60B・・・
先取出しレジスタ、  609・・・先方出しバッファ
、310・・・マイクロワード・レジスタ、 611・
・・分岐アドレス、  312・・・ALU、   5
16・・・分岐アドレス前送回路、 614・・・分岐
ラッチ、315・・・スタック、  316・・・スタ
ック・ポインタ、  1001〜1012.1802・
・・アドレス選択回線、  1806.1804.19
06.1904.1905.1906.2101.21
02.2106.2104・・・ゲート、  1901
.1902・・・ゲート・グループ、図面の浄書(内容
に変更なL1 FIG、15  ¥ の3 FIG、20 +の2 に3−+ −に工l =に3: に3−( o、t  200B ;3 −4.5 2007 FIG、20−′fの4 ↑ LOGATIO/V  2 手続補正書く方式) 昭和61年 4月24日 特許庁長官   宇 賀 1口 部  殿     嫉
61、事件の表示 昭和61年特許願第16669丹 2、発明の名称 ストアト・プログラム型ディジタル・コンピュータの増
速方法li7装置 3、補正をする者 事件との関係   出 願 人 住所 名 称  データー・ゼネラル・コーポレーション4、
代理人 住 所  東京都千代田区大手町二丁目2番1号新大手
町ピル 206号室 5、補正命令の日付  昭和61年 3月25日 (発
送日)6、補正の対象 C−!kRτΔ)rb ン! 手  続  補  正  書 昭和61年4月4日 か

Claims (1)

  1. 【特許請求の範囲】 1、予め定めたシーケンスにおいてディジタル・コンピ
    ュータにより実行される命令を格納し、予め定めた該シ
    ーケンスに従つて前記の格納された命令の1つをフェッ
    チし、 分岐命令である前に取出された格納命令に応答して前記
    の格納された命令の別のものをフェッチし、 第1の一時記憶場所に前記の別の前にフェッチされた格
    納命令を格納し、 第2の一時記憶場所に前記の別の前にフェッチされた格
    納命令を格納し、 前記の第1と第2の一時記憶場所に格納された前にフェ
    ッチされた命令からディジタル・コンピュータによつて
    実行される次の順位の命令を選択する工程を含み、該選
    択は分岐命令である前にフェッチされた前記命令によつ
    て判定され、 前記の選択された次の順位の命令を実行する工程を含む
    ことを特徴とするディジタル・コンピュータの操作方法
    。 2、各々が処理装置内の制御ストア装置に格納される命
    令に応答してディジタル・データを処理する処理装置を
    含むディジタル・コンピュータ・システムにおいて、 前記制御ストア装置から前記命令を受取る二重先取出し
    装置を設け、該二重先取出し装置は、(a)前の順位の
    命令の実行サイクル期間に、前記制御ストア装置から次
    の順位の命令を受取つてこれを格納する先取出しレジス
    タ装置と、 (b)前記の前の順位の命令の同じ実行サイクルの期間
    に、前記制御ストア装置から分岐目標命令を受取る先取
    出しバッファ装置とを含み、 前記命令を前記先取出しレジスタ装置または前記先取出
    しバッファ装置のいずれかから選択するマイクロワード
    ・レジスタを設け、該選択は前の順位の命令に応答する
    ことを特徴とするディジタル・コンピュータ・システム
JP1666986A 1985-01-28 1986-01-28 ストアド・プログラム型デイジタル・コンピユ−タの増速方法および装置 Pending JPS61221826A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69559185A 1985-01-28 1985-01-28
US695591 1985-01-28

Publications (1)

Publication Number Publication Date
JPS61221826A true JPS61221826A (ja) 1986-10-02

Family

ID=24793645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1666986A Pending JPS61221826A (ja) 1985-01-28 1986-01-28 ストアド・プログラム型デイジタル・コンピユ−タの増速方法および装置

Country Status (2)

Country Link
EP (1) EP0190484A3 (ja)
JP (1) JPS61221826A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3855065T2 (de) * 1987-11-05 1996-10-02 Raytheon Co Folgemikrobefehlserzeuger in einer Mikroprogrammsteuereinheit
KR970005453B1 (ko) * 1987-12-25 1997-04-16 가부시기가이샤 히다찌세이사꾸쇼 고속처리에 적합한 데이타 처리장치
US5155818A (en) * 1988-09-28 1992-10-13 Data General Corporation Unconditional wide branch instruction acceleration
US7010675B2 (en) * 2001-07-27 2006-03-07 Stmicroelectronics, Inc. Fetch branch architecture for reducing branch penalty without branch prediction

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0116600B1 (en) * 1982-08-23 1991-04-10 Western Electric Company, Incorporated Pre-execution next address calculating mechanism

Also Published As

Publication number Publication date
EP0190484A2 (en) 1986-08-13
EP0190484A3 (en) 1988-09-21

Similar Documents

Publication Publication Date Title
US4594682A (en) Vector processing
US4574349A (en) Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
US4187539A (en) Pipelined data processing system with centralized microprogram control
US4701842A (en) Method and apparatus for avoiding excessive delay in a pipelined processor during the execution of a microbranch instruction
US4118773A (en) Microprogram memory bank addressing system
US4305124A (en) Pipelined computer
US4166289A (en) Storage controller for a digital signal processing system
EP0111407A2 (en) Microprogrammed control unit for handling the intermixed occurences of microprogram branches and interrupts
JPH0731603B2 (ja) Forth特定言語マイクロプロセサ
JPH11504458A (ja) スーパースカラマイクロプロセッサにおける分岐予測正確度向上のための装置および方法
US4636943A (en) Enhanced CPU microbranching architecture
EP0062658A1 (en) STACKING REGISTER FOR DATA PROCESSOR.
JPH01310441A (ja) データ処理装置
US5765007A (en) Microinstruction sequencer having multiple control stores for loading different rank registers in parallel
EP0592404A1 (en) Apparatus and method for providing a stall cache
US4884244A (en) Method of addressing a computer memory
EP0010196B1 (en) Control circuit and process for digital storage devices
JPS61221826A (ja) ストアド・プログラム型デイジタル・コンピユ−タの増速方法および装置
US5526500A (en) System for operand bypassing to allow a one and one-half cycle cache memory access time for sequential load and branch instructions
US4872109A (en) Enhanced CPU return address stack
JPS63228225A (ja) ディジタルコンピュータシステム
US4870567A (en) Microprogram control system
EP0061586A2 (en) Data processing apparatus with extended general purpose registers
JP2680828B2 (ja) ディジタル装置
EP0116600A1 (en) MECHANISM FOR CALCULATING THE FOLLOWING ADDRESS OF AN INSTRUCTION BEFORE ITS EXECUTION.