JPS60167034A - Auxiliary control memory for upgrading performance of cpu pipeline - Google Patents

Auxiliary control memory for upgrading performance of cpu pipeline

Info

Publication number
JPS60167034A
JPS60167034A JP59203896A JP20389684A JPS60167034A JP S60167034 A JPS60167034 A JP S60167034A JP 59203896 A JP59203896 A JP 59203896A JP 20389684 A JP20389684 A JP 20389684A JP S60167034 A JPS60167034 A JP S60167034A
Authority
JP
Japan
Prior art keywords
microcode
control store
bus
macroinstruction
control
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.)
Granted
Application number
JP59203896A
Other languages
Japanese (ja)
Other versions
JPH071479B2 (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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPS60167034A publication Critical patent/JPS60167034A/en
Publication of JPH071479B2 publication Critical patent/JPH071479B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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/261Microinstruction address formation
    • 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

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)
  • Control Of Non-Positive-Displacement Pumps (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)

Abstract

g An entry control store in a central processing unit (CPU) is addressed by the next macroinstruction to be executed by the CPU and fetches the microcode for the first line of that macroinstruction.The apparatus includes an entry point table (42) and a control store (58) wherein, in macroinstruction access a pointer in the entry point table is used to obtain microcode from the control store (58) and place it on a bus (62) connected to output lines of the control store (58). An auxilliary control store (48), containing the first line of microcode for each macroinstruction, is accessed by the microinstructions and has output lines which are selectably connected to the bus (62) by bus selection means (84) for selectively disconnecting the output lines of the control store (58) from the bus (62) when the output lines of auxilliary control store (48) are selectably connected to the bus (62). The selection means (84) are arranged to respond to microcode indicia (80) indicating whether the control store (58) or the auxilliary control store (48) are to be connected to the bus (62).

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はデータプロセッサ及びデータプロセッサ中に存
在する中央処理装置に関する。特に本発明は、パイプラ
イン式のマイクロ命令実行方式で一連のマイクロ命令を
使ってマクロ命令を実行する際に使われる制御記憶装置
のアーキテクチャに関するものである。
DETAILED DESCRIPTION OF THE INVENTION Field of the Invention The present invention relates to data processors and central processing units present in data processors. In particular, the present invention relates to a control storage architecture used in executing a macroinstruction using a series of microinstructions in a pipelined microinstruction execution scheme.

(従来技術) 一連のマイクロ命令を用いパイプライン化した形でマク
ロ命令を実行する中央処理装置(CPtJ)は、当該分
野で周知である。パイプライン式マイクロ命令の実行で
は一般に、第1命令の遅い位相又はランクが実行されて
いる間に、第2命令の早いランクの実行を開始できるた
め、全体を通じた命令実行がより速められる。
BACKGROUND OF THE INVENTION Central processing units (CPtJs) that execute macroinstructions in a pipelined manner using a series of microinstructions are well known in the art. Pipelined microinstruction execution generally allows execution of an earlier rank of a second instruction to begin while a later phase or rank of a first instruction is being executed, resulting in faster overall instruction execution.

従来のパイプライン式制御記憶装置は通常、マクロ命令
をデコードして第1マイクロ命令へのポインタを発生す
るエントリポイントテーブルをソースとしている。その
ポインタはホールドレジスタ内に置かれ、そこから制御
記憶装置をアクセスするのに使われる。その後のマイク
ロ命令は、各クロック周期毎にホールドレジスタ中に保
持された値をインクレメントするか、あるいは次及びそ
れ以後のマイクロ命令をアドレスするための第1マイク
ロ命令のマイクロコード内におけるフィールドを用いて
アドレスされる。
Conventional pipelined control storage devices are typically sourced from an entry point table that decodes the macroinstruction and generates a pointer to the first microinstruction. The pointer is placed in a hold register from which it is used to access control storage. Subsequent microinstructions either increment the value held in the hold register each clock period, or use fields in the microcode of the first microinstruction to address the next and subsequent microinstructions. address.

マイクロ命令をフェッチするのにマクロ命令が使われる
プロセスは、2ランクマイクロコ一ド方式の場合、通常
3クロック周期である。第1のクロック周期がエントリ
ポイントテーブルの値をホールドレジスタ内にセントし
、第2のクロック周期がランク1のマイクロコードフィ
ールドをレジスタ内にセットし、更に第3のクロック周
期がランク2のマイクロコードフィールドをレジスタ内
にセットする。次いで、レジスタ値がマイクロコード機
能を実行し、命令を実際に実行するのに使われる。3又
はそれより高いランク等、上記の連続したクロックサイ
クル後に実行されるマイクロコードの部分も、同様に実
行される。
The process by which macroinstructions are used to fetch microinstructions is typically three clock periods for a two-rank microcode scheme. A first clock period sets the value of the entry point table into the hold register, a second clock period sets the rank 1 microcode field in the register, and a third clock period sets the rank 2 microcode field into the register. Set a field into a register. The register values are then used to perform microcode functions and actually execute instructions. Portions of the microcode that are executed after said consecutive clock cycles, such as ranks 3 or higher, are executed similarly.

パイプライン方式の性質上、シングルラインのマイクロ
コード実行のため複数のクロック周期が必要である。命
令実行におけるこの点が、データ処理システムでの命令
スループ・ノドを決めるファクタの1つである。データ
処理システムにおいてスループットとスピードは重要な
考慮点であるから、データ処理システムの命令実行部分
における改良はシステム性能の向上をもたらす。
Due to the nature of pipelining, multiple clock periods are required for a single line of microcode execution. This point in instruction execution is one of the factors that determines the instruction loop node in a data processing system. Because throughput and speed are important considerations in data processing systems, improvements in the instruction execution portion of data processing systems result in improved system performance.

従って、現在マクロ命令を実行するのに必要な数より少
いクロック数でマクロ命令を実行できる制御記憶装置が
められている。
Therefore, there is currently a need for control storage devices that can execute macro instructions in fewer clocks than are required to execute the macro instructions.

(発明の目的) 従って本発明の目的は、現在周知のシステムで可能な数
より少いクロック周期で、バイプライ・ン化CPUにお
けるマクロ命令の第1ラインのマイクロコードを実行で
きる制御記憶装置を提供することにある。
OBJECTS OF THE INVENTION It is therefore an object of the present invention to provide a control storage device capable of executing the microcode of the first line of macroinstructions in a bilined CPU in fewer clock periods than is possible with currently known systems. It's about doing.

本発明の別の目的は、現在のシステムを使って得られる
のより早く第1ラインのマイクロコードへクロック周期
を与えるための追加エントリ部を備えた制御記憶装置を
提供することにある。
Another object of the invention is to provide a control store with additional entries for providing clock periods to the first line of microcode earlier than is available using current systems.

本発明の上記又はその他の目的は、詳細な説明、添付の
図面及び請求の範囲を参照すればより明解に理解される
であろう。
These and other objects of the invention will be more clearly understood upon reference to the detailed description, accompanying drawings, and claims.

(発明の構成) エントリポイントテーブルに次命令用レジスタ又は同様
の装置からマクロ命令が与えられ、同テーブルがマクロ
命令の第2ライン用のマイクロコードを含む制御記憶装
置へポインタを供給するような制御記憶装置が得られる
(Structure of the Invention) Control such that an entry point table is provided with a macro instruction from a next instruction register or similar device, and the table provides a pointer to a control storage containing microcode for a second line of the macro instruction. A storage device is obtained.

又、エントリポイントテーブルへアドレスする情報は、
各マクロ命令について第1マイクロ命令用の情報を含む
エントリ制御記憶装置へもアドレスする。制御記憶装置
は、各マクロ命令についてその後のマイクロ命令用のマ
イクロコードを全て含む。
Also, the information addressing the entry point table is
Each macroinstruction also addresses an entry control store containing information for the first microinstruction. The control store contains, for each macroinstruction, all the microcode for subsequent microinstructions.

好ましくは各マクロ命令の最終ラインのマイクロコード
に続いて位置するビットフィールドが、通常の制御記憶
装置でなくエントリ制御記憶装置を、後者の内容が所定
マクロ命令用マイクロコードの第1ラインを実行する必
要がある時にのみ、共用バスへ接続するように機構を作
動させる。このようにして、各マクロ命令の実行を従来
の制御記憶装置の構成を用いた場合より、1クロック周
期だけ早く開始できる。
Preferably, the bit field located following the last line of microcode of each macroinstruction provides entry control storage rather than normal control storage, the contents of the latter executing the first line of microcode for a given macroinstruction. Activate the mechanism to connect to the shared bus only when necessary. In this manner, execution of each macroinstruction can begin one clock period earlier than with conventional control storage configurations.

(発明の実施例) まず第1図を参照すると、代表的な従来の制御記憶装置
のブロック図が示しである。次命令レジスタ10が命令
のマイクロコードの第1ラインを指すアドレスを発生す
るエントリポイントテーブル12でデコードされる命令
を保持する。エントリポイントテーブル12の出力は、
次命令レジスタ10の有効な内容が利用可能になった後
に続くシステムクロック16からのクロックパルスで、
制御記憶装置のアドレスレジスタ14へ加えられる。そ
のクロックパルス後、コード化マイクロコードの第1ラ
インが、制御記憶装置18に含まれるマイクロコードへ
のポインタとして利用可能となる。第1ラインのマイク
ロコードが、ビットフィールド20として模式的に示し
である。マクロ命令用マイクロコードのその後のライン
をアクセスするため、レジスタ14はそれが保持する値
を各クロック周期毎にインクレメントするように構成し
てもよい。あるいはその他の方法で制御記憶装置18を
アドレスするための追加のソースを与えるようにしても
よい。例えば、制御記憶装置18は従来周知のように、
制御記憶装置のアドレスレジスタ14をソースとしたマ
ルチプレクサ、復帰スタック及び分岐を制御するマイク
ロコードからのビットフィールドによって駆動できる。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring first to FIG. 1, a block diagram of a typical conventional control storage device is shown. A next instruction register 10 holds the instruction to be decoded with an entry point table 12 which generates an address pointing to the first line of the instruction's microcode. The output of the entry point table 12 is
On subsequent clock pulses from the system clock 16 after the valid contents of the next instruction register 10 are available,
Added to address register 14 of control store. After that clock pulse, the first line of encoded microcode is available as a pointer to the microcode contained in control store 18. The first line of microcode is shown schematically as a bit field 20. To access subsequent lines of microcode for macroinstructions, register 14 may be configured to increment the value it holds every clock period. Alternatively, additional sources for addressing control storage 18 may be provided in other ways. For example, control storage 18 may include, as is well known in the art,
It can be driven by a multiplexer sourced from the control store address register 14, a return stack, and a bit field from the microcode that controls the branch.

当該分野で周知のごとく、制御記憶装置18とビットフ
ィールド20の間に1つ又はそれより多くのレジスタ(
図示せず)を介設でき、特にパイプライン方式が使われ
る場合には、少(とも2個のレジスタ、ランク1用のレ
ジスタ及びランク2用のレジスタが使われる。従って、
ランク2の情報がランク2レジスタの出力に得られるま
でに、最小3つのクロック周期を必要とする。
As is well known in the art, one or more registers (
(not shown) can be interposed, and especially if a pipeline method is used, at least two registers are used, one for rank 1 and one for rank 2. Therefore,
A minimum of three clock periods is required before rank 2 information is available at the output of the rank 2 register.

次に第2図を参照すると、本発明による制御記憶装置の
ブロック図が示しである。
Referring now to FIG. 2, a block diagram of a control storage device in accordance with the present invention is shown.

次命令レジスタ40が、エントリポイントテーブル42
でデコードされる命令を含む。すなわち、次命令レジス
タ40の内容がライン46を介してエントリポイントテ
ーブル42をアドレスする。
The next instruction register 40 is the entry point table 42
Contains instructions decoded by . That is, the contents of next instruction register 40 address entry point table 42 via line 46.

しかし従来例と異り、エントリポイントテーブル42は
、実行されているマクロ命令用マイクロコードの第1ラ
インを指すポインタを含んでいない。
However, unlike the conventional example, the entry point table 42 does not include a pointer pointing to the first line of microcode for the macro instruction being executed.

その代りに、実行されているマクロ命令用マイクロコー
ドの第2ラインを指すポインタを含んでいる。エントリ
ポイントテーブル42は当該分野で周知のごとく、続出
専用メモリ、ランダムアクセスメモリ又はプログラマブ
ルロジックアレイで構成できる。
Instead, it contains a pointer to the second line of microcode for the macroinstruction being executed. Entry point table 42 may be comprised of sequential dedicated memory, random access memory, or a programmable logic array, as is well known in the art.

各マクロ命令用マイクロコードの第1ラインはエントリ
制御記憶装置48に含まれており、これがエントリポイ
ントテーブル42と同様ライン46を介して次命令レジ
スタ40の内容へアクセスする。あるいは第2図のシス
テムは、本願と同じ出願人に譲渡され、こ\に参考文献
として含める1983年9月29日に申請された審査中
の米国特許出願第537.429号に記載されクレーム
された制御記憶装置によっても動作可能である。
The first line of microcode for each macroinstruction is contained in entry control storage 48, which accesses the contents of next instruction register 40 via line 46 as well as entry point table 42. Alternatively, the system of FIG. 2 is described and claimed in pending U.S. patent application Ser. It can also be operated with additional control storage.

マイクロコードの第2及びその後のラインの実行を以下
説明し、次いで従来の構成で可能な時点よりも早くマイ
クロコードの第1ラインをパイプライン中へ入れる方法
について説明する。
The execution of the second and subsequent lines of microcode will now be described, followed by a description of how to bring the first line of microcode into the pipeline earlier than is possible with conventional arrangements.

第1のクロック周期で、エントリポイントテーブル42
の出力がライン52とシステムクロック56からのクロ
ックライン54を介して制御記憶装置のアドレスレジス
タ50ヘクロツク入力される。必要なアクセスタイ右の
経過後、垂直制御記憶装置58内アドレスへのポインタ
である上記出力が、ライン60を介して垂直制御記憶装
置58へ加えられる。その後のマイクロ命令は当該分野
で周知のごとく3、システムクロック56からのクロッ
クパルスを用い制御記憶装置アドレスレジスタ50内に
格納された値をインクレメントするが、あるいは制御記
憶装置アドレスレジスタ50の出力を入力中に含むマル
チプレクサ(図示せず)、更には復帰スタック及び分岐
を制御するマイクロコードからのビットフィールドでラ
イン6oを駆動することによって得られる。次いで必要
なアクセスタイム後、垂直制御記憶装置58の出力がラ
イン64を介し制御記憶装置の出力ライン62へ与えら
れ、そこでシステムクロック56からのクロックパルス
により第2のクロック周期でランクlレジスタへクロッ
ク入力される。
In the first clock period, the entry point table 42
The output of is clocked into the control storage address register 50 via line 52 and clock line 54 from the system clock 56. After the required access time has elapsed, the above output, which is a pointer to an address within vertical control store 58, is applied to vertical control store 58 via line 60. Subsequent microinstructions 3 use clock pulses from system clock 56 to increment the value stored in control storage address register 50, or to increment the output of control storage address register 50, as is well known in the art. This is obtained by driving line 6o with a multiplexer (not shown) included in the input, as well as a bit field from the microcode that controls the return stack and branches. After the required access time, the output of the vertical control store 58 is then provided via line 64 to the control store output line 62 where it is clocked into the rank l register in a second clock period by a clock pulse from the system clock 56. is input.

ランクルシスタロ6の出力におけるビットフィールドの
一部が部分的に又は完全にデコードされたマイクロコー
ドで、マイクロコードビットフィールド700ランク1
マイクロコードフイールド部68を形成する。好ましい
実施例では、ランクlレジスタ66の出力中の別の部分
がランク74を介し水平制御記憶装置72ヘアドレスす
るためのポインタとして使えるが、当業者であればこの
点は本発明が正しく機能するのに特別必要でないことを
理解し得よう。必要なアクセスタイム後、水平制御記憶
装置72の出力がライン78を介しランク2レジスタ7
6の入力へ印加可能となる。そしてライン54を介した
システムクロック56からの第3クロック周期で、水平
制御記憶装置72の出力がランク2レジスタ76へ加え
ラレ、マイクロコードビットフィールド7oのランク2
部分78として利用可能となる。但し当業者であれば、
上記の第3クロツクN期でランク2レジスタにより実行
されているのは、マイクロコードの第1ラインのランク
2情報でなくその第2ランクであることを理解し得よう
Some of the bit fields in the output of Rankle Cistero 6 are partially or fully decoded microcode, microcode bit field 700 rank 1
A microcode field section 68 is formed. In the preferred embodiment, another portion of the output of rank I register 66 is used as a pointer to address horizontal control store 72 through rank 74, but one skilled in the art will appreciate that the present invention functions properly. Understand that there is no special need for this. After the required access time, the output of horizontal control store 72 is routed via line 78 to rank 2 register 7.
It becomes possible to apply to the input of 6. Then, on the third clock period from system clock 56 via line 54, the output of horizontal control store 72 is applied to rank 2 register 76, which registers rank 2 of microcode bit field 7o.
It will be available as part 78. However, if you are a person skilled in the art,
It will be appreciated that in the third clock period N described above, it is the second rank of the first line of microcode that is being executed by the rank two register, rather than the rank two information.

マイクロコードフィールド7oにおけるランク1ビツト
フイールド68中の1個又はそれより多いビットから成
る選定ビットフィールド8oが、エントリ制御記憶袋?
148と協働してマイクロコードの第1ラインを実行す
るのに使われる。必要ならデコードされた選定ビットフ
ィールドの状態が、システムクロック56からの各クロ
ック周期毎に、ライン82を介してエントリ制御記憶装
置エネイブル(EC3)レジスタ84へ加えられる。
Selected bit field 8o consisting of one or more bits in rank 1 bit field 68 in microcode field 7o is an entry control storage bag?
148 to execute the first line of microcode. The state of selected bit fields, decoded if necessary, is applied to an entry control storage enable (EC3) register 84 via line 82 each clock period from system clock 56.

エントリ制御記憶装置エネイブルレジスタ84の出力は
ライン86を介し、エントリ制御記憶装置48と垂直制
御記憶装置58の各エネイブル入力へ与えられる。エン
トリ制御記憶装置48の入力EN88はロジック低で動
作し、垂直制御記憶装置58の入力EN90はロジック
高で動作する。
The output of entry control store enable register 84 is provided via line 86 to each enable input of entry control store 48 and vertical control store 58. Input EN88 of entry control store 48 operates at a logic low and input EN90 of vertical control store 58 operates at a logic high.

エントリ制御記憶装置48と垂直制御記憶装置58は共
に制御記憶装置の出力バス62を共用しているので、そ
れぞれの入力ENとENは、任意の所定時に一方だけが
バスの制御を支配することを保証する。この点は当該分
野で周知のごとく、両者をバス62上で多重化させるか
、あるいは垂直制御記憶装置58及びエントリ制御記憶
装置48の一方又は他方の出力ドライバを選択的に動作
不能とすることによって行われる。大部分の時間、垂直
制御記憶装置58がバスの制御を支配し、これはフィー
ルド80によってECSレジスタ84がロジック高レベ
ル(つまり“1″)を含むことを意味する。しかし、次
のマクロ命令が次命令レジスタ40内へ格納されると、
一般に現在実行されているマクロ命令の第2から最後ま
でのマイクロ命令の実行中に、エントリ制御記憶装置4
8が制御記憶装置出力バス62の制御を支配し、次のマ
クロ命令用マイクロコードの第1ラインを制御記憶装置
出力バス62へ与える。このプロセスは、エントリポイ
ントテーブル42の出力からパイプラインへ入る場合に
第1ラインが出力バスへ入るのよりも早いクロック周期
で生ずる。このような場合、命令はエントリポイントテ
ーブル42でデコードされる必要があり、ポインタは制
御記憶装置アドレスレジスタ5oへ加えられるのに次の
クロックサイクルを待たねばならない。その後ポインタ
が垂直制御記憶装置58からマイクロコードをアクセス
し、次いでランクルシスタロ6内へクロック入力可能と
なる前に、制御記憶装置出力ライン62に与えられる。
Since entry control store 48 and vertical control store 58 both share control store output bus 62, their respective inputs EN and EN ensure that only one has control of the bus at any given time. Guarantee. This can be done, as is well known in the art, by multiplexing the two on bus 62 or by selectively disabling the output drivers of one or the other of vertical control store 58 and entry control store 48. It will be done. Most of the time, vertical control store 58 assumes control of the bus, which means that field 80 causes ECS register 84 to contain a logic high level (ie, "1"). However, when the next macro instruction is stored into the next instruction register 40,
Generally, during the execution of the second to last microinstruction of the currently executed macroinstruction, the entry control storage 4
8 takes control of the control store output bus 62 and provides the first line of microcode for the next macroinstruction onto the control store output bus 62. This process occurs at a faster clock period than the first line enters the output bus when entering the pipeline from the output of entry point table 42. In such a case, the instruction must be decoded in the entry point table 42 and the pointer must wait for the next clock cycle to be added to the control storage address register 5o. A pointer is then applied to the control store output line 62 before accessing the microcode from the vertical control store 58 and then allowing clocking into the runcle system 6.

別の選定ビットフィールド91がライン93を介し、次
の命令が格納されるべき周期の間を除き、クロックパル
スが次命令レジスタ4oへ入るのを禁止すべく作用する
。これは、ビットフィールド80がエントリ制御記憶装
置t48をエネーブルする前に、1つ又はそれより多い
クロックパルスを発生させる。タイミイグは命令に依存
しているため、当業者であれば上記エネーブルが所定の
命令シーケンスに関していつ生じねばならないかを認識
し得よう。
Another selection bit field 91 operates via line 93 to inhibit clock pulses from entering the next instruction register 4o except during the period in which the next instruction is to be stored. This generates one or more clock pulses before bit field 80 enables entry control storage t48. Since timing is instruction dependent, those skilled in the art will recognize when the enable must occur for a given sequence of instructions.

マイクロ分岐を容易化するため、エントリ制御記憶装置
レジスタ48の動作は、垂直制御記憶装置58からのマ
イクロ命令の実行を継続するように禁止できる。好まし
い実施例では、模式的に92で示したマイクロ分岐の決
定を行うのに使われるテストの結果を、エントリ制御記
憶装置レジスタ84がエントリ制御記憶装W48を選択
するのを禁止するのに使うことができる。
To facilitate microbranching, operation of entry control store register 48 can be inhibited to continue execution of microinstructions from vertical control store 58. In a preferred embodiment, the results of the test used to make the micro-branch decision, shown schematically at 92, are used to inhibit entry control storage register 84 from selecting entry control storage W48. I can do it.

この特徴は、3ラインより少いマ・イクロ命令を含むマ
クロ命令を実行する上で最も重要である。
This feature is most important in executing macroinstructions containing less than three lines of macroinstructions.

マイクロ命令のライン数が3以上の場合、次のマクロ命
令をフェッチし次いでそれを次命令レジスタ内で1つの
マイクロ命令ラインに加える指令を与えることによって
、システムのマイクロコーダーがパイプライン化を改善
できる。しかしこれは勿論、3より少いラインを有する
命令については成し得ない。
If the number of lines of microinstructions is three or more, the system's microcoder can improve pipelining by providing instructions to fetch the next macroinstruction and then add it to one microinstruction line in the next instruction register. . But this, of course, cannot be done for instructions with fewer than three lines.

本発明によれば、2ラインのマイクロコードを有するマ
クロ命令でも、垂直制御記憶装置58内で命令の解読を
行うためマイクロコードの第1ラインに対する第1ポイ
ンタが制御記憶装置アドレスレジスタ50を通って進行
している間に、NOPスペースフィラーを挿入して実質
上システムを停止する必要なく実行できる。
According to the present invention, even for a macroinstruction having two lines of microcode, a first pointer to the first line of microcode is passed through the control storage address register 50 to decode the instruction in the vertical control storage 58. While in progress, NOP space fillers can be inserted and performed with virtually no system downtime.

当業者であれば、マクロ命令の実行時間を減少できるそ
の同じ装置は、マクロ命令のブランチを実行するのに必
要な時間も減少できることを認識し得よう。
Those skilled in the art will recognize that the same apparatus that can reduce the execution time of a macroinstruction can also reduce the time required to execute a branch of the macroinstruction.

マクロブランチを実施する場合、ブランチターゲットが
次命令レジスタ40へ格納されるが、ターゲットマクロ
命令は、その第1ライイのマイクロモードのランク1部
分が制御記憶装置出力ライン62上に現われるまで、タ
ーゲットマクロ命令の実行は始まり得ない。本発明によ
れば、上記の場合エントリ制御記憶装置48のアクセス
に1クロック周期しか必要としない。本発明以外では、
まずエントリポイントテーブル42ヘアクセスし、その
後火の周期で垂直制御記憶装置58へアクセスするのに
2クロック周期が必要である。
When performing a macro branch, the branch target is stored in the next instruction register 40, but the target macro instruction is stored in the target macro until the rank 1 portion of its first micromode appears on the control storage output line 62. Execution of the instruction cannot begin. According to the invention, accessing entry control storage 48 in the above case requires only one clock period. Other than the present invention,
Two clock periods are required to first access entry point table 42 and then to access vertical control storage 58 in one cycle.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は代表的な従来の制御記憶装置の構成を示すブロ
ック図である。 第2図は本発明に従って構成れれた制御記憶装置のブロ
ック図である。 42・・・エントリポイントテーブル、 4日・・・補
助的(エントリ)制御記憶装置、 58・・・制御記憶
装置、 62・・・制御記憶装置出力バス、 8゜・・
・マイクロコード表示(選定ビットフィールド)、84
・・・バス選定手段(エントリ制御記憶装置エネイブル
レジスタ。 手続補正書(方式) 1.事件の表示 昭和59年特許願第203896号2
、発明の名称 cPUパイプラインの性能向上用補助的
制御記憶装置 3、補正をする者 事件との関係 出願人 名称 タンデム コンピューターズ インコーポレーテッド 4、代理人
FIG. 1 is a block diagram showing the configuration of a typical conventional control storage device. FIG. 2 is a block diagram of a control storage device constructed in accordance with the present invention. 42... Entry point table, 4th... Auxiliary (entry) control storage device, 58... Control storage device, 62... Control storage device output bus, 8°...
・Microcode display (selected bit field), 84
...Bus selection means (entry control storage device enable register. Procedural amendment (method) 1. Display of incident Patent Application No. 203896 of 1983 2
, Title of the invention: Auxiliary control storage device for improving the performance of cPU pipeline 3, Relationship with the amended party case: Applicant name: Tandem Computers Incorporated 4, Agent

Claims (1)

【特許請求の範囲】 fil エントリポイントテーブルと少くとも1つの制
御記憶装置を含む、命令実行用のハードウェアを有する
中央処理装置で、上記制御記憶装置からマイクロコード
を得てそれを制御記憶装置の出力ラインへ接続されたバ
スへ与えるのに使われるエントリポイントテーブル中の
ポインタへマクロ命令がアクセスするものにおいて: 各マクロ命令用マイクロコードの第1ラインを含み、上
記マイクロ命令によってアクセスされ、又補助的制御記
憶装置の出力ラインが選択的に上記バスへ接続されると
き、上記制御記憶装置の出力ラインを上記バスから選択
的に切り離すためのバス選択手段へ選択的に接続される
出力ラインを有する補助的制御記憶装置で、上記バス選
択手段が、上記制御記憶装置又は補助的制御記憶装置の
いずれが上記バスへ接続されるべきかを示すマイクロコ
ードの表示に対応する補助的制御記憶装置。
Claims: fil A central processing unit having hardware for executing instructions, including an entry point table and at least one control memory, which obtains microcode from the control memory and stores it in the control memory. Where a macroinstruction accesses a pointer in an entry point table used to feed a bus connected to an output line: Contains the first line of microcode for each macroinstruction, accessed by said microinstruction, and in which an auxiliary an output line selectively connected to bus selection means for selectively disconnecting the output line of the control storage device from the bus when the output line of the control storage device is selectively connected to the bus; An auxiliary control store, wherein said bus selection means corresponds to an indication in microcode indicating which of said control store or an auxiliary control store is to be connected to said bus.
JP59203896A 1983-09-29 1984-09-28 Central processing unit control store and method for providing micro-instructions for execution to an execution unit Expired - Lifetime JPH071479B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/537,038 US4574344A (en) 1983-09-29 1983-09-29 Entry control store for enhanced CPU pipeline performance
US537038 1983-09-29

Publications (2)

Publication Number Publication Date
JPS60167034A true JPS60167034A (en) 1985-08-30
JPH071479B2 JPH071479B2 (en) 1995-01-11

Family

ID=24140919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59203896A Expired - Lifetime JPH071479B2 (en) 1983-09-29 1984-09-28 Central processing unit control store and method for providing micro-instructions for execution to an execution unit

Country Status (8)

Country Link
US (1) US4574344A (en)
EP (1) EP0136183B1 (en)
JP (1) JPH071479B2 (en)
AT (1) ATE54212T1 (en)
AU (1) AU571010B2 (en)
CA (1) CA1227578A (en)
DE (1) DE3482607D1 (en)
NO (1) NO843893L (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104034A (en) * 2007-10-25 2009-05-14 Furukawa Electric Co Ltd:The Optical fiber cutting device

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4800486A (en) * 1983-09-29 1989-01-24 Tandem Computers Incorporated Multiple data patch CPU architecture
US4812972A (en) * 1984-06-20 1989-03-14 Convex Computer Corporation Microcode computer having dispatch and main control stores for storing the first and the remaining microinstructions of machine instructions
US4794527A (en) * 1986-01-29 1988-12-27 Digital Equipment Corporation Microprogrammed data processing system using latch circuits to access different control stores with the same instruction at different times
US4890218A (en) * 1986-07-02 1989-12-26 Raytheon Company Variable length instruction decoding apparatus having cross coupled first and second microengines
US5235686A (en) * 1987-02-24 1993-08-10 Texas Instruments Incorporated Computer system having mixed macrocode and microcode
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
US5333287A (en) * 1988-12-21 1994-07-26 International Business Machines Corporation System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters
JPH0769791B2 (en) * 1988-12-21 1995-07-31 三菱電機株式会社 Microprocessor
EP0388735A3 (en) * 1989-03-10 1993-01-13 Nec Corporation Microprogram controller having fixed-instruction generator and microprogram memory
US5293592A (en) * 1989-04-07 1994-03-08 Intel Corporatino Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
GB2230116B (en) * 1989-04-07 1993-02-17 Intel Corp An improvement for pipelined decoding of instructions in a pipelined processor
CA2030404A1 (en) * 1989-11-27 1991-05-28 Robert W. Horst Microinstruction sequencer
US5377335A (en) * 1991-08-30 1994-12-27 Unisys Corporation Multiple alternate path pipelined microsequencer and method for controlling a computer
JP3497516B2 (en) * 1992-02-20 2004-02-16 株式会社ルネサステクノロジ Data processor
US5471626A (en) * 1992-05-06 1995-11-28 International Business Machines Corporation Variable stage entry/exit instruction pipeline
DE69423085T2 (en) * 1993-12-28 2000-06-21 Sony Corp., Tokio/Tokyo Devices for the transmission of information
US5790825A (en) * 1995-11-08 1998-08-04 Apple Computer, Inc. Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions
US5860025A (en) * 1996-07-09 1999-01-12 Roberts; David G. Precharging an output peripheral for a direct memory access operation
US7334115B1 (en) * 2000-06-30 2008-02-19 Intel Corporation Detection, recovery and prevention of bogus branches
EP2099014B1 (en) 2008-03-07 2014-06-18 Barco NV A method and device to enhance image quality in digital video processing systems using dithering
US11052579B2 (en) 2015-12-08 2021-07-06 Whirlpool Corporation Method for preparing a densified insulation material for use in appliance insulated structure

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57209542A (en) * 1981-06-19 1982-12-22 Toshiba Corp Microprogram controlling system
JPS58146943A (en) * 1982-02-22 1983-09-01 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Microword generation mechanism for data processor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3800293A (en) * 1972-12-26 1974-03-26 Ibm Microprogram control subsystem
US4173041A (en) * 1976-05-24 1979-10-30 International Business Machines Corporation Auxiliary microcontrol mechanism for increasing the number of different control actions in a microprogrammed digital data processor having microwords of fixed length
JPS55110347A (en) * 1979-02-16 1980-08-25 Toshiba Corp Microprogram control system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57209542A (en) * 1981-06-19 1982-12-22 Toshiba Corp Microprogram controlling system
JPS58146943A (en) * 1982-02-22 1983-09-01 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Microword generation mechanism for data processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104034A (en) * 2007-10-25 2009-05-14 Furukawa Electric Co Ltd:The Optical fiber cutting device

Also Published As

Publication number Publication date
JPH071479B2 (en) 1995-01-11
AU3359484A (en) 1985-04-04
DE3482607D1 (en) 1990-08-02
NO843893L (en) 1985-04-01
AU571010B2 (en) 1988-03-31
CA1227578A (en) 1987-09-29
EP0136183B1 (en) 1990-06-27
ATE54212T1 (en) 1990-07-15
EP0136183A3 (en) 1986-02-26
US4574344A (en) 1986-03-04
EP0136183A2 (en) 1985-04-03

Similar Documents

Publication Publication Date Title
JPS60167034A (en) Auxiliary control memory for upgrading performance of cpu pipeline
US4875160A (en) Method for implementing synchronous pipeline exception recovery
US5235686A (en) Computer system having mixed macrocode and microcode
US6061779A (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
US4734852A (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
US3760369A (en) Distributed microprogram control in an information handling system
US6611909B1 (en) Method and apparatus for dynamically translating program instructions to microcode instructions
US4980819A (en) Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system
US4179731A (en) Microprogrammed control system
US4156925A (en) Overlapped and interleaved control store with address modifiers
US5446849A (en) Electronic computer which executes squash branching
NZ201809A (en) Microprocessor
US4348724A (en) Address pairing apparatus for a control store of a data processing system
US4251862A (en) Control store organization in a microprogrammed data processing system
US4223381A (en) Lookahead memory address control system
KR920007253B1 (en) Controlling apparatus for micro-program
KR940011594B1 (en) Multiprocessor controller having time shared control store
US4635188A (en) Means for fast instruction decoding for a computer
US4430708A (en) Digital computer for executing instructions in three time-multiplexed portions
JPH0581119A (en) General-purpose memory-access system using register indirect mode
US5526500A (en) System for operand bypassing to allow a one and one-half cycle cache memory access time for sequential load and branch instructions
US6161171A (en) Apparatus for pipelining sequential instructions in synchronism with an operation clock
US5363490A (en) Apparatus for and method of conditionally aborting an instruction within a pipelined architecture
JP2680828B2 (en) Digital device
EP0181462B1 (en) Microcode control of a parallel architecture microprocessor

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term