JPS58103041A - Microprogram controller - Google Patents
Microprogram controllerInfo
- Publication number
- JPS58103041A JPS58103041A JP20119881A JP20119881A JPS58103041A JP S58103041 A JPS58103041 A JP S58103041A JP 20119881 A JP20119881 A JP 20119881A JP 20119881 A JP20119881 A JP 20119881A JP S58103041 A JPS58103041 A JP S58103041A
- Authority
- JP
- Japan
- Prior art keywords
- address
- microprogram
- clock
- instruction
- time
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Abstract
Description
【発明の詳細な説明】
本発明はマイクロプログラムを使用して制御を行うマイ
クロプログラム制御装置に関し、特に、(1)
マイクロプログラムの進行を制御するクロックの制御手
段の改良に関する。DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a microprogram control device that performs control using a microprogram, and particularly relates to (1) improvement of a clock control means for controlling the progress of a microprogram.
一般にマイクロプログラムを使用した1h制御装置のy
ノ1作は、(1)マイクロ命令の取り出し、(2)マイ
クロ命令の実行、の2つの動作に大別される。(1)の
動作では、指定されたアドレスのマイクロ命令をマイク
ロプログラムメモリから取り出し、(2)の動作では、
(1)の動作で取り出したマイクロ命令に従って制御対
象の動作を制御する。この際、1つの命令に対して(1
) 、 (2)の動作を順番に行い、それから次の命令
の(1)の動作を行うと時間がかかるので、一般には前
の命令を実行すると同時に次の命令の取り出しも行う。y of a 1h control device that generally uses a microprogram.
No. 1 is roughly divided into two operations: (1) fetching of microinstructions and (2) execution of microinstructions. In operation (1), the microinstruction at the specified address is retrieved from the microprogram memory, and in operation (2),
The operation of the controlled object is controlled according to the microinstruction extracted in operation (1). At this time, for one instruction (1
), (2) in order and then the next instruction's operation (1) takes time, so generally the next instruction is fetched at the same time as the previous instruction is executed.
即ち、マイクロプログラムメモリとii制御対象の間に
パイプラインレジスタを置キ、パイプラインレジスタ内
のマイクロ命令を実行スると同時に次に実行すべきマイ
クロ命令をマイクロプログラムメモリから取り83 L
パイプラインレジスタにセットする。この動作の単位を
1ステツプとし、ステップ暎位にマイクロ命令が実行さ
れる。マイクロプログラム制御装置の動作の基本単位は
、このマイクロ命令の1ステツプであり、総ての動作は
このステップの動作の積重ねからなる。That is, a pipeline register is placed between the microprogram memory and the controlled object, and at the same time as the microinstruction in the pipeline register is executed, the next microinstruction to be executed is taken from the microprogram memory.
Set in pipeline register. The unit of this operation is one step, and a microinstruction is executed at the time of each step. The basic unit of operation of a microprogram control device is one step of this microinstruction, and all operations consist of a stack of operations of this step.
従って、このステップの動作速度を少しでも上げること
が装置の性能を向上する大きな要因となる。Therefore, increasing the operating speed of this step even a little is a major factor in improving the performance of the device.
マイクロ命令の上記ステップを制御しているのはクロッ
クであり、このクロックの周期は、マイクui−N令の
取り出しに必要な時間と、マイクロ命令の実行に必要な
時間の2つの要因によって決定される。最も簡単な方法
として、それらの動作の総てを保証しうるように、最も
長い時間ヲ要する動作に合せて周期を設定することが考
えられる。The above steps of the microinstruction are controlled by a clock, and the period of this clock is determined by two factors: the time required to retrieve the microphone ui-N instruction and the time required to execute the microinstruction. Ru. The simplest method is to set the period according to the operation that requires the longest time so that all of these operations can be guaranteed.
しかし、この方法は、クロックの周期が一定なのでハー
ドウェアは簡単になるが、速い命令の実行の際やマイク
ロメモリからパイプラインレジスタへの転送時間が異な
る場合には無駄時間が生じ、全体の実行速度が遅くなる
。However, although this method simplifies the hardware because the clock period is constant, it results in wasted time when executing fast instructions or when the transfer time from the micromemory to the pipeline register is different, which reduces the overall execution time. The speed will be slower.
そこでこれを解決する為に、従来においてはステップの
周期を、実行する命令の種類によって制御する方式や、
マイクロ命令を塩9出す場合にマイクロメモリからの応
答を待ってクロックを進める方式が採用されている。し
かし、前者の方式はマイクロ命令毎に実行時間を指示す
る必要がありその為には、マイクロ命令の一部に時間指
定用のビットパターンを設定するか、或いは命令を解読
して周期を制御するかしなければならず、必要なハード
ウェアが増加し 命令毎に時間設定用のデータを作成し
なければならない欠点がある。丑だ、後者の場合は、使
用するメモリの抽類毎に応答制御を行う必豊かあシ、ク
ロック制御側とメモリ制御側の両刀にハードウェアの増
設が必要となる欠点がある。然も、水平型のマイクロプ
ログラムと垂直型のマイクロプログラムが同一装置内で
実行される場合には、それぞれの処理に必要な時間が異
なり、メモリとの応答制御では対応できなくなる。この
ようにクロックの無駄時間を省略しようとすると、従来
においてはハードウェアが複雑化するといった欠点があ
った。To solve this problem, conventional methods have been used to control the step cycle depending on the type of instruction to be executed.
When issuing a microinstruction, a method is adopted in which the clock is advanced after waiting for a response from the micromemory. However, in the former method, it is necessary to specify the execution time for each microinstruction, and to do so, it is necessary to set a bit pattern for time specification in a part of the microinstruction, or to control the cycle by decoding the instruction. This has the disadvantage that the necessary hardware increases and time setting data must be created for each instruction. Unfortunately, in the latter case, there is a disadvantage that response control must be performed for each type of memory used, and additional hardware is required for both the clock control side and the memory control side. However, when a horizontal microprogram and a vertical microprogram are executed in the same device, the time required for each process is different, and response control with memory cannot handle this. Attempting to eliminate clock waste time in this way has conventionally had the disadvantage of complicating the hardware.
本発明の目的は、このような従来の欠点を簡単なハード
ウェアの追加によ!ll解決しようとするところにある
。本発明を簡単に説明すると、本発明(3)
は、マイクロプログラムメモリを複数のアドレスブロッ
クに分け、速度の異なるメそりやマイクロプログラムを
異なるアドレスブロックに割当て、マイクロ命令を処理
するとき、その命令の実行に必要な時間をその命令のア
ドレスによって判定しクロックを制御するようにしたも
のである。以下実施例について詳細に説明する。The purpose of the present invention is to solve these conventional drawbacks by adding simple hardware! I'm trying to solve it. Briefly explaining the present invention, the present invention (3) divides the microprogram memory into a plurality of address blocks, allocates memory and microprograms with different speeds to different address blocks, and when processing microinstructions, The clock is controlled by determining the time required to execute the instruction based on the address of the instruction. Examples will be described in detail below.
第1図は、本発明実施例装置の要部ブロック図である。FIG. 1 is a block diagram of main parts of an apparatus according to an embodiment of the present invention.
同図において、lは、マイクロプログラムメモリであり
、記憶領域を符号1−1〜1−4の4つのアドレスブロ
ックに分けた場合を示しである。例えば、アドレスが0
番〜100番まであるとき0査〜25番まではアドレス
ブロック1−1に割当て、他のアドレスを残りのアドレ
スブロックに分配するものである。本実施例では、アド
レスブロック1−1゜1−2に水平型のマイクロプログ
ラムを格納し、アドレスブロック1−3 、1−4に垂
直型のマイクロプログラムを格納している。尚、DOは
データ出力端子、Aはアドレス入力端子である。In the figure, 1 is a microprogram memory, and the storage area is divided into four address blocks 1-1 to 1-4. For example, if the address is 0
When there are numbers 0 to 100, addresses 0 to 25 are allocated to address block 1-1, and other addresses are distributed to the remaining address blocks. In this embodiment, horizontal microprograms are stored in address blocks 1-1 and 1-2, and vertical microprograms are stored in address blocks 1-3 and 1-4. Note that DO is a data output terminal, and A is an address input terminal.
(4)
2は、マイクロプログラムメモリlのアドレスを指定す
るマイクロプログラムカウンタであり、マイクロ命令が
マイクロプログラムメモリ1から取り出される毎にカウ
ントアツプし、マイクロプログラムの進行を制御する。(4) A microprogram counter 2 specifies the address of the microprogram memory 1, and counts up every time a microinstruction is taken out from the microprogram memory 1, thereby controlling the progress of the microprogram.
3は、マイクロプログラムカウンタ2から出力されるア
ドレスがマイクロプログラムメモリ1のどのアドレスブ
ロックを指示しているかを判別し、クロック制御回路4
に制御信号(判別信号)′fr:送出するアドレス判別
回路である。アドレスがどのアドレスブロックにあるの
かを判別すれば良いの単な構成で済む。クロック制御回
路4は、アドレス判別回路3からの制御信号に従ってク
ロックの発生周期を制御し、パイプラインレジスタ7や
制御対象8にクロック信号を送出するものである。3 determines which address block of the microprogram memory 1 is indicated by the address output from the microprogram counter 2, and the clock control circuit 4
Control signal (discrimination signal) 'fr: This is an address discriminating circuit that sends out a control signal (discrimination signal). All you need to do is determine which address block an address is in. The clock control circuit 4 controls the generation cycle of the clock according to the control signal from the address discrimination circuit 3, and sends the clock signal to the pipeline register 7 and the controlled object 8.
又、5−1 、5−2は、マイクロプログラムメモリl
から出力される垂直型のマイクロ命令を水平型の命令に
変換するコードコンバータである。Further, 5-1 and 5-2 are micro program memories l.
This is a code converter that converts vertical micro-instructions output from the .
6は、谷マイクロメモリブロックからの出力(一部はコ
ードコンバータを経由して与えられる)の一つを選択す
るセレクタであり、どれを選択するかの選択情報はアド
レス判別回路3からの制御情報による。パイプラインレ
ジスタ7は、マイクロ命令をセットするレジスタで、セ
レクタ6によって選択されたマイクロ命令がセットされ
、このレジスタの出力によって制御対象8が制御される
。6 is a selector that selects one of the outputs from the valley micromemory block (some of which are given via the code converter), and the selection information for which one to select is based on control information from the address discrimination circuit 3. by. The pipeline register 7 is a register for setting microinstructions, and the microinstructions selected by the selector 6 are set therein, and the controlled object 8 is controlled by the output of this register.
上記構成において、水平型のマイクロプログラムを実行
する場合には、マイクロプログラムカウンタ2によって
マイクロプログラムメモ1月のアドレスブロック1−1
、1−2のいずれかが選択され、その出力が直接にセ
レクタ6に転送される。セレクタ6はアドレス判別回路
3の出力に応じてアドレスブロック1−1 、1−2の
いずれか一万〇111に切り変っており、マイクロ命令
はこのセレクタ6を介してパイプラインレジスタ7に転
送される。また垂直型のマイクロプログラムを実行する
場合は、マイクロプログラムカウンタ2によってマイク
ロプログラムメモリ1のアドレスブロックl−3,T−
4(7)
のいずれかが選択され、その出力がコードコンバータ5
−1またけコードコンバータ5−2にて水平型の命令に
変換され、セレクタ6に転送される。そして、セレクタ
6でコードコンバータ5−1 、5−2の出力の一万が
選択されてパイプラインレジスタ7に転送される。In the above configuration, when executing a horizontal microprogram, the address block 1-1 of the microprogram memo January is counted by the microprogram counter 2.
, 1-2 is selected, and its output is directly transferred to the selector 6. The selector 6 switches to either address block 1-1 or 1-2, 10,0111, according to the output of the address discrimination circuit 3, and the microinstruction is transferred to the pipeline register 7 via this selector 6. Ru. Furthermore, when executing a vertical microprogram, the address blocks l-3, T-3 of the microprogram memory 1 are counted by the microprogram counter 2.
4 (7) is selected and its output is sent to the code converter 5.
It is converted into a horizontal type instruction by the -1 spanning code converter 5-2 and transferred to the selector 6. Then, the selector 6 selects 10,000 outputs from the code converters 5-1 and 5-2 and transfers them to the pipeline register 7.
この例で示すように、水平型のマイクロ命令の転送ルー
トはマイクロプログラムメモリl→セレクタ6→パイプ
ラインレジスタ7であり、垂直型のマイクロ命令の転送
ルートは、マイクロプログラムメモリ1→コードコンバ
ータ5−1 、5−2→セレクタ6→パイプラインレジ
スタ7であるので、転送に要する両者の時間は異なる。As shown in this example, the transfer route for horizontal microinstructions is microprogram memory 1 → selector 6 → pipeline register 7, and the transfer route for vertical microinstructions is microprogram memory 1 → code converter 5 - 1, 5-2→selector 6→pipeline register 7, the time required for transfer is different between the two.
この転送時間の相違は、アドレス判別回路3においてマ
イクロプログラムカウンタ2の出力(アドレス出力)に
よって判別されている。即ち、アドレス判別回路3はア
ドレスがアドレスブロック1−1 、12 f指示する
ものであれば水平型命令に応じた周期のクロックを発生
する旨の制御信号をクロック制御回路4に送出し、−万
アドレスがアドレスブロック(8)
1−3 、1−4 i指示するものであれば垂直型命令
に応じた周期のクロックを発生する旨の制御信号をクロ
ック制御回路4に送出するものであり、クロイブライン
レジスタ7や制御対象8に送出する。This difference in transfer time is determined by the address determination circuit 3 based on the output (address output) of the microprogram counter 2. That is, if the address indicates the address block 1-1, 12f, the address discrimination circuit 3 sends a control signal to the clock control circuit 4 to generate a clock with a period corresponding to the horizontal type instruction. If the address indicates address block (8) 1-3, 1-4i, it sends a control signal to the clock control circuit 4 to generate a clock with a period corresponding to the vertical type instruction. It is sent to the brine register 7 and the controlled object 8.
従って、転送時間に応じた最適な周期のクロックでマイ
クロ命令の転送が行われるので、無駄時間は発生しない
。Therefore, since the microinstruction is transferred using a clock having an optimum cycle depending on the transfer time, no wasted time occurs.
第2図は第1図示装置のタイムチャートの一例を示す線
図であり、水平型の命令H1〜H4の取り川し及びその
実行は、例えば第3図(A)に示すようにメモリアクセ
スタイムt1とセレクタ6の遅れ時間t2との和である
周期τhのクロックで行われ、垂直型の命令V1〜V3
の取り出し及びその実行は、例えば第3図(B)に示す
ようにメモリアクセスタイムt1とコード変換時間t3
とセレクタ6の遅れ時間t2との和である周期τVのク
ロックで行われる。従って、水平型の命令の実行時にお
いて、コード変換に豐する時間だけ処理速度を向上する
ことができる。FIG. 2 is a diagram showing an example of a time chart of the device shown in FIG. Vertical instructions V1 to V3 are executed using a clock with a period τh, which is the sum of t1 and the delay time t2 of the selector 6.
For example, as shown in FIG. 3(B), the retrieval and execution of
and the delay time t2 of the selector 6. Therefore, when executing horizontal instructions, the processing speed can be improved by the amount of time required for code conversion.
以上の実施例では、マイクロプログラムメモリlとパイ
プラインレジスタ7との間にセレクタ6を設けたが、マ
イクロプログラムメモリ1及びコードコンバータ5−1
. 、5−2の出力がワイアードオア接続できる場合は
、セレクタ6は省略することができる。また、垂直型の
マイクロプログラムを取り出してパイプラインレジスタ
7にセットする前に水平型の命令に変換したが、パイプ
ラインレジスタにセットした後に水平型に変更しても良
い。In the above embodiment, the selector 6 is provided between the microprogram memory 1 and the pipeline register 7, but the microprogram memory 1 and the code converter 5-1
.. , 5-2 can be wired-OR connected, the selector 6 can be omitted. Further, although the vertical type microprogram is extracted and converted into a horizontal type instruction before being set in the pipeline register 7, it may be changed to the horizontal type after being set in the pipeline register.
この場”合には、命令を実行するときに合せてクロック
の制御を行えば良い。更に、本実施例では水平型と垂直
型のマイクロプログラムが混在する場合を例にあげ/こ
が、本発明は、マイクロプログラムをブロックに分割で
き、ブロックのプログラムの実行速度が異なるような総
ての場合に適用できるものである。勿論マイクロプログ
ラム用のメモリの動作時間が異なる場合でも本発明は有
効である。In this case, it is sufficient to control the clock according to the execution of the instruction.Furthermore, in this embodiment, an example will be given where horizontal and vertical microprograms are mixed. The invention can be applied to all cases where a microprogram can be divided into blocks and the programs in the blocks have different execution speeds.Of course, the invention is also effective even when the operating times of memories for microprograms are different. be.
以上の説明から判るように、本発明によれば、マイクロ
プログラムメモリta数のアドレスブロックに分割し、
命令を実行するとき、命令がどのアドレスブロックのも
のであるのかを判別することにより、アドレスブロック
単位に、命令実行の周期を決めるクロックを制御するよ
うにしたものであり、アドレスブロック単位毎に命令実
行の周期を決めるのでアドレス判別回路等ハードウェア
の構成が簡略になり、また実行時間の指定も各マイクロ
命令毎に行う必要がないので容易となる利点がある。As can be seen from the above explanation, according to the present invention, the microprogram memory is divided into ta number of address blocks,
When executing an instruction, the clock that determines the instruction execution cycle is controlled for each address block by determining which address block the instruction belongs to. Since the execution cycle is determined, the configuration of hardware such as an address discrimination circuit is simplified, and there is an advantage that the execution time can be easily specified since it is not necessary to specify it for each microinstruction.
第1図は本発明実施例装置の一例を示す要部ブロック図
、第2図は第1図示装置のタイムチャートの一例を示す
線図、第3図は水平型及び垂直型命令に用いるクロック
の内容を説明する為の線図である。
1はマイクロプログラムメモリ、1−1〜l−4はアド
レスブロック、2けマイクロプログラムカウンタ、3は
アドレス判別回路、4はクロック制御回路、5−1 、
5−2はコードコンバータ、6はセレ(11)
フタ、7はパイプラインレジスタ、8は制御対象である
。
特許出願人 富士電機製造株式会社(外1名)代理人弁
理士 玉 蟲 久 五 部(外3名)(12)
第゛図 1
(
第2図
第3図
一一一一一−t・−+FIG. 1 is a block diagram of main parts showing an example of the device according to the present invention, FIG. 2 is a line diagram showing an example of a time chart of the device shown in FIG. 1, and FIG. 3 is a diagram of the clock used for horizontal and vertical instructions. It is a line diagram for explaining the contents. 1 is a micro program memory, 1-1 to l-4 are address blocks, 2-digit micro program counter, 3 is an address discrimination circuit, 4 is a clock control circuit, 5-1,
5-2 is a code converter, 6 is a selector (11) lid, 7 is a pipeline register, and 8 is an object to be controlled. Patent applicant: Fuji Electric Seizo Co., Ltd. (1 other person) Representative patent attorney: Hisashi Tamamushi (3 others) (12) +
Claims (1)
クロプログラムメモリと、マイクロ10グラムの進行を
制御するマイクロプログラムカウンタと、該マイクロプ
ログラムカウンタから出力されるアドレスが前記アドレ
スブロックのどのブロックを指示しているか判別するア
ドレス判別回路と、該アドレス判別回路からの判別出力
に応じてマイクロ命令のステップを進行するクロックの
周期を制御するクロック制御回路と、該クロック制御回
路からのクロックに同期して前記マイクロプログラムメ
モリからのマイクロ命令をセットするパイプラインレジ
スタとを具備したことを特徴とするマイクロプログラム
制御装置。A microprogram memory formed by dividing a storage area into a plurality of address blocks, a microprogram counter that controls the progress of micro 10 grams, and which block of the address blocks is indicated by the address output from the microprogram counter. an address discriminating circuit for discriminating whether or not there is an address discriminating circuit; a clock control circuit for controlling the cycle of a clock for advancing the step of a microinstruction according to a discriminating output from the address discriminating circuit; A microprogram control device comprising a pipeline register for setting microinstructions from a program memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20119881A JPS58103041A (en) | 1981-12-14 | 1981-12-14 | Microprogram controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20119881A JPS58103041A (en) | 1981-12-14 | 1981-12-14 | Microprogram controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS58103041A true JPS58103041A (en) | 1983-06-18 |
Family
ID=16436967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20119881A Pending JPS58103041A (en) | 1981-12-14 | 1981-12-14 | Microprogram controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS58103041A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5771376A (en) * | 1995-10-06 | 1998-06-23 | Nippondenso Co., Ltd | Pipeline arithmetic and logic system with clock control function for selectively supplying clock to a given unit |
-
1981
- 1981-12-14 JP JP20119881A patent/JPS58103041A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5771376A (en) * | 1995-10-06 | 1998-06-23 | Nippondenso Co., Ltd | Pipeline arithmetic and logic system with clock control function for selectively supplying clock to a given unit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR880001168B1 (en) | Digital signal processing system | |
US3792441A (en) | Micro-program having an overlay micro-instruction | |
US4499536A (en) | Signal transfer timing control using stored data relating to operating speeds of memory and processor | |
EP0010188B1 (en) | Computer instruction prefetch circuit | |
JPS6230651B2 (en) | ||
CN1117318A (en) | Multiprocessor data memory sharing | |
JPH0578051B2 (en) | ||
US5247624A (en) | Microprogram controller including leading microinstruction from a generator executed while succeeding microinstruction from memory is read out | |
EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
JPS58103041A (en) | Microprogram controller | |
JPH05189232A (en) | Automated apparatus and operating method thereof | |
JPS5828609B2 (en) | Tokushiyumei Reishiori Sochi | |
JPS6041138A (en) | Interruption control device | |
JPS5819953A (en) | Microprogram controlling system | |
JP2819733B2 (en) | Information processing device | |
JP2845780B2 (en) | Data transfer control circuit | |
JP2564624B2 (en) | Stack method | |
SU636603A1 (en) | Exchange arrangement | |
JPH0527893B2 (en) | ||
JPH0778730B2 (en) | Information processing equipment | |
JPS5851377A (en) | Information processing device | |
JPS6031646A (en) | Data processor | |
JPH0456349B2 (en) | ||
JPS6057603B2 (en) | arithmetic processing unit | |
JPS5847054B2 (en) | Data processing equipment for digital signal processing |