JPS61220034A - Microprocessor - Google Patents
MicroprocessorInfo
- Publication number
- JPS61220034A JPS61220034A JP6148385A JP6148385A JPS61220034A JP S61220034 A JPS61220034 A JP S61220034A JP 6148385 A JP6148385 A JP 6148385A JP 6148385 A JP6148385 A JP 6148385A JP S61220034 A JPS61220034 A JP S61220034A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- mcm
- memory
- microprocessor
- executed
- 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/24—Loading of the microprogram
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)
Abstract
Description
【発明の詳細な説明】
〔発明の技術分野〕
この発明は、マイクロキャッシュ付のマイクロプロセッ
サに関するもので、特にそのアーキテクチャに係わる。DETAILED DESCRIPTION OF THE INVENTION [Technical Field of the Invention] The present invention relates to a microprocessor with a microcache, and particularly to its architecture.
従来、マイクロプロセッサの命令を高速で実行する手段
として、「命令の先読み込み」および「キャッジ、メモ
リ」等の方法が広く知られている。上記命令の先読み込
みは、命令の実行中に次に使われる命令コードを予め°
読み込んでおくことによシ高速化を図るものである。t
た、キャッジ、メモリを使う方法は、一度読み込んだ命
令を内部に蓄えておくことによシ、もう一度同じ命令を
実行する時には再び読み込まなくても良いようにして高
速化を図るものである。Conventionally, methods such as "instruction preloading" and "catch, memory" are widely known as means for executing microprocessor instructions at high speed. The preloading of the above instruction means that the instruction code to be used next is read in advance while the instruction is being executed.
By loading the file in advance, it is possible to speed up the process. t
In addition, the method of using cache and memory improves speed by storing once-read instructions internally, so that when the same instruction is executed again, it does not need to be read again.
しかし、命令の先読み込みの機能を持りていても、必ず
しも命令の実行中に次の命令が読み込めるとは限らない
、また、命令の先読み込みのために現在の命令の実行が
遅れる場合もある。However, even if there is a function for preloading instructions, it is not always possible to read the next instruction while the instruction is being executed, and the execution of the current instruction may be delayed due to preloading of instructions. .
一方、キャッジ、メモリを使う方法は、キャッジ、メモ
リの容量に制限があるため、蓄えておける命令コードの
量が限られ、再度命令を実行しようとした時には別の命
令コードに変わっている場合も多く、必ずしも動作速度
の高速化に結びつかない欠点がある。また、蓄えられて
いる命令コードのアドレスも記憶しておく必要があるた
め、アドレス記憶用のメモリおよびアドレスの一致を取
るための比較回路等も必要となシ、ハードウェア量が多
くなって安価なマイクロプロセッサには不向きである。On the other hand, with the method of using cache and memory, the amount of instruction code that can be stored is limited because the cache and memory capacity is limited, and when you try to execute the instruction again, the instruction code may have changed to a different instruction code. There are many drawbacks that do not necessarily lead to higher operating speeds. In addition, since the address of the stored instruction code also needs to be memorized, a memory for storing the address and a comparison circuit to match the addresses are also required, which increases the amount of hardware and reduces the cost. It is not suitable for microprocessors.
この発明は上記のような事情に鑑みてなされたもので、
その目的とするところは、動作速度の高速化が図れ、且
つハードウェア量も増大しないマイクロプロセッサを提
供することである。This invention was made in view of the above circumstances,
The purpose is to provide a microprocessor that can operate at higher speeds and that does not require an increase in the amount of hardware.
すなわち、この発明においては、上記の目的を達成する
ために、マイクロプロセッサ内に命令列を蓄えておくメ
モリ(マイクロキャッジ。That is, in the present invention, in order to achieve the above object, a memory (micro cache) is used to store instruction sequences within a microprocessor.
メモリと呼ぶ)を設け、このマイクロキャッジ晶メそリ
ヘ命令を読み込む命令とこれを実行する命令とを外部メ
モリに用意することによりニプログラマが実行したい命
令列を自由に指定できるようにしたものである。By providing an instruction to read this microcage crystal memory instruction and an instruction to execute it in external memory, the programmer can freely specify the instruction sequence he or she wants to execute. It is.
以下、この発明の一実施例について図面を参照して説明
する。第1図において、11はマイクロプロセッサ、1
2は外部メモリで、上記マイクロプロセッサ11内には
、外部メモリー2のプログラムアドレスを指定するプロ
グラムカウンタ(PC)23(第2のレジスタ)、外部
メモリー2からの命令が入力される命令人力バッファ1
4.マイクロプロセツサ11を動かす命令列が記憶され
るマイクロキャッシュメモリ(fl)15、このMCM
15のアドレスを指定するマイクロキャッシュメモリ
カウンタ(MCMC)J 6 (第1のレジスタ)、上
記MCM J 5の出力あるいは上記命令人力バッファ
14の出力を選択する選択回路17、この選択回路17
の出力が供給される命令デコーダ18、この命令デコー
ダ18の出力が供給され命令を実行する命令実行部19
、命令実行部19の出力が供給され、上記MCM I
Sから命令を読み出すか否かを上記選択回路17および
命令実行部19に、マイクロキャッシュメモリモードフ
ラグとして示すフリッグフロッ7’ (F/F) 26
などが収納されている。An embodiment of the present invention will be described below with reference to the drawings. In FIG. 1, 11 is a microprocessor;
2 is an external memory, and the microprocessor 11 includes a program counter (PC) 23 (second register) that specifies the program address of the external memory 2, and an instruction manual buffer 1 into which instructions from the external memory 2 are input.
4. A microcache memory (fl) 15 in which a sequence of instructions for operating the microprocessor 11 is stored, this MCM
a micro cache memory counter (MCMC) J 6 (first register) that specifies the address of MCMC 15; a selection circuit 17 that selects the output of MCM J 5 or the output of the instruction manual buffer 14;
an instruction decoder 18 to which the output of the instruction decoder 18 is supplied, and an instruction execution unit 19 to which the output of the instruction decoder 18 is supplied and executes the instruction.
, the output of the instruction execution unit 19 is supplied, and the MCM I
F/F 7' (F/F) 26 which indicates whether or not to read an instruction from S to the selection circuit 17 and instruction execution unit 19 as a microcache memory mode flag.
etc. are stored.
一方、外部メモリ12には、マイクロプロセッサ11を
作動せしめる命令として、命令列をMCM 15にロー
ドするためのロードMCM命令、MCM 15に記憶さ
れた命令を先頭から実行するエクスキ、−トMCM命令
を設ける。上記ロードMCM命令は、その命令に続く命
令をMCM 15にロードし、その終了がエンドMCM
命令で示される。エクスキュートMCM命令は、MCM
15に記憶された命令を先頭から実行し、エンドMC
M命令を実行すると、エフスキ、 −) MCM命令の
次の命令を実行する。なお、MCM 15にロードされ
る命令としては、プログラムヵウンタフェッf (PC
7エツチ)命令が許され、このPCフェッチ命令がMC
M15中で実行されると、その命令コードの代わ〕にP
Cl3が示すエクスキュー ) MCM命令の次の命令
を読み込んで実行する。On the other hand, the external memory 12 contains, as instructions for operating the microprocessor 11, a load MCM instruction for loading an instruction sequence into the MCM 15, and an extract MCM instruction for executing instructions stored in the MCM 15 from the beginning. establish. The above load MCM instruction loads the instruction following the instruction into the MCM 15, and its end is the end MCM.
indicated in the command. Execute MCM instruction is MCM
15 is executed from the beginning, and the end MC
When the M instruction is executed, the instruction following the Evski, -) MCM instruction is executed. Note that the instructions loaded into the MCM 15 include the program counter f (PC
7) instruction is allowed, and this PC fetch instruction is
When executed in M15, P is written instead of the instruction code.
Excue indicated by Cl3) Read and execute the next instruction after the MCM instruction.
この実行のたびにPCl3はカウントアツプされるので
、PCフェッチ命令が複数個あっても良く、エフスキ、
−) MCM命令に続く命令コードが順に読み込まれ、
エンドMCM命令で次の命令へ実行が移る。Since PCl3 is counted up each time this is executed, there may be multiple PC fetch instructions,
-) The instruction codes following the MCM instruction are read in order,
Execution moves to the next instruction with the end MCM instruction.
次に動作を説明する。外部メモリ12のロードMCM命
令によって、次に続く命令をエンドMCM命令が来るま
でPCl3をカウントアツプしながらマイクロプロセッ
サ11内に読み込み、MCM 15にMCMC1gの指
定するアドレスに従って書き込む、この時、MCMCI
6は初期値″0′から順にカウントアツプして行くの
で、MCM l 5には上記MCM 15の先頭アドレ
スから順に命令が書き込まれる。そして、書き込みが終
了すると、PCl3は、エンドMCM命令の次のアドレ
スを指しておシ、このPCl3に示されたアドレスから
命令が実行される。この状態でエフスキ、 −) MC
M命令が実行されると、通常は非動作状態となっている
MCMモードフラグを示すフリップフロップ20が動作
状態となシ、このフリップフ筒ツゾ20の出力に基づい
て選択回路12によfi MCM 15の出力が選択さ
れる。従って、次の命令はMCM 15から読み出され
る。この時、MCMCI gはエフスキ、 −) MC
M命令の先頭で初期化されて“0#となりておシ、命令
が読み出される毎にカウントアツプされるので。Next, the operation will be explained. By the load MCM command of the external memory 12, the next instruction is read into the microprocessor 11 while counting up PCl3 until the end MCM command is received, and written to the MCM 15 according to the address specified by MCMC1g.At this time, the MCMCI
6 counts up sequentially from the initial value "0", so instructions are written to MCM 15 in order from the top address of MCM 15. When the writing is completed, PCl3 starts the next MCM instruction after the end MCM instruction. Pointing to the address, the instruction is executed from the address indicated in PCl3. In this state, Efski, -) MC
When the M instruction is executed, the flip-flop 20 indicating the MCM mode flag, which is normally inactive, becomes active, and the selection circuit 12 selects the fi MCM based on the output of the flip-flop 20. 15 outputs are selected. Therefore, the next instruction is read from MCM 15. At this time, MCMCI g is Evski, -) MC
It is initialized to "0#" at the beginning of the M instruction and is counted up every time the instruction is read.
MCM l 5の先頭アドレスから順次命令が読み出さ
れ、命令デコーダ18にニジデコードされて命令実行部
19によシ命令が実行される。そして、 MCMモード
状態でエンドMCM命令が実行されるとMCMそ−ドか
ら抜は出し、PCl3によシ外部メモリ12のプログラ
ムが実行されるようになる。一方、MCMモード状態で
PCフェッチ命令が実行されると、PCl3が示すアド
レスの外部メモリ12から命令(またはその−劫が)ぐ
ラメータとしてマイクロプロセッサ11に読み込まれて
実行される。この時、PCl3の値は読み込まれた命令
の数だけカウントアツプされる。その後の命令は、MC
MC16が示すアドレスのMCM J 5から読み出さ
れて実行される。Instructions are sequentially read from the first address of the MCM 1 5, decoded by the instruction decoder 18, and executed by the instruction execution unit 19. Then, when the end MCM command is executed in the MCM mode state, the MCM code is extracted and the program in the external memory 12 is executed by the PCl3. On the other hand, when a PC fetch instruction is executed in the MCM mode, the instruction (or its derivation) is read as a parameter from the external memory 12 at the address indicated by PCl3 and executed by the microprocessor 11. At this time, the value of PCl3 is counted up by the number of instructions read. Subsequent orders are from MC.
It is read from MCM J5 at the address indicated by MC16 and executed.
なお、MCM 1 lの命令にジャンプ命令がある場合
で、相対アドレスジャンプの場合はMCMCI6の値に
一/ヤング相対値を加えることによって次に実行される
MCM J j内のアドレスを決める。Note that if there is a jump instruction among the instructions in MCM 1 l, and in the case of a relative address jump, the next address in MCM J j to be executed is determined by adding the 1/Young relative value to the value of MCMCI6.
一方、絶対アドレスジヤングの場合やサブルーチンの呼
び出し、あるいはサブルーチンからの復帰命令の場合は
、 MCMモードから抜は出した上でその命令を実行す
る。ここで、 MCMモードではない時のPCフェッチ
命令やMCMモードにおけるロードMCM命令は意味が
ないので、ロードMCM命令とエンドMCM命令を同じ
命令コードにし、PCフェッチ命令とエクスキ、−トM
CM命令を同じ命令コードにしても良い。On the other hand, in the case of absolute addressing, calling a subroutine, or returning from a subroutine, the instruction is executed after exiting the MCM mode. Here, since the PC fetch instruction when not in MCM mode and the load MCM instruction in MCM mode have no meaning, the load MCM instruction and the end MCM instruction are made the same instruction code, and the PC fetch instruction and the executable -to MCM instruction are set to the same instruction code.
The CM instructions may have the same instruction code.
このような構成によれば、マイクロプロセッサ11内の
にマイクロキャッシュメモリ15を設け、命令を読み込
む命令とこの命令を実行する命令とを外部メモリに用意
し、グログツマが実行したい命令列を自由に指定できる
ようkしたので、上記マイクロキャッシュメモリを無駄
危く利用でき、命令の先読み込みを行なう方法に比べて
高速な命令の実行が行なえ、キャッジ、メモリを用いる
方法に比べて高速で動作させたい命令のみを確実に実行
することができる。According to such a configuration, a microcache memory 15 is provided in the microprocessor 11, an instruction for reading an instruction and an instruction for executing this instruction are prepared in the external memory, and the grog-tsuma can freely specify a sequence of instructions that it wants to execute. Since the above-mentioned microcache memory can be used without waste, instructions can be executed faster than a method that preloads instructions, and instructions that need to be executed faster than a method that uses cache memory. can only be carried out reliably.
また、ハードウェア量の増大も比較的少なくて済む。Further, the increase in hardware amount is also relatively small.
第2図は命令の先読み込み機能を持つマイク112fロ
セツサの命令実行時間と前記第1図に示したマイクロプ
ロセッサの命令実行時間とを比較して示している。(&
)図は命令の先読み込み方法、(b)図は本発明による
命令実行時間である。FIG. 2 shows a comparison between the instruction execution time of the microphone 112f processor having an instruction preloading function and the instruction execution time of the microprocessor shown in FIG. (&
) The figure shows a method for preloading instructions, and the figure (b) shows the instruction execution time according to the present invention.
今、実行するプログラムがメモリを@′0”にクリアす
る場合を想定し、例えば次に示すようなプログラムを実
行するものとする。Now, suppose that the program to be executed clears the memory to @'0'', and for example, the following program is executed.
5TART : INCAREGステップICLRAR
EGステッf2
DECCREGステッf3
JNZ 5TART、*テラグイ
このプログラムではステップ1でAREG (′0”に
クリアするメモリアドレスの入ったレジスタ)を1つ増
し、ステップ2でAREGで示したアドレスをクリアす
る。ステップ3ではクリアする数の入ったCREGを1
つ減らし、ステラf4でCREG−が@″O”でなけれ
ばステラf1へ戻る。5TART: INCAREG step ICLRAR
EG step f2 DECCREG step f3 JNZ 5TART, *TERAGUI In this program, in step 1, AREG (the register containing the memory address to be cleared to '0') is incremented by one, and in step 2, the address indicated by AREG is cleared.Step In 3, select 1 CREG containing the number to be cleared.
If CREG- is not @"O" in Stella f4, the process returns to Stella f1.
(、)図において、斜線部が命令の先読み時間を示して
hる。ここで、ステップ2でステプf3の命令の先読み
込みが実行されてい々いのは、ステップ2ではメモリへ
の書き込みが実行され、バスが占有されているからでお
る。また、ステプf1の命令はステップ4からジャンプ
してくるため、前もって命令を読み込むことはできない
。(,) In the figure, the shaded area indicates the instruction prefetch time h. Here, the reason why the pre-reading of the instruction in step f3 is executed in step 2 is because in step 2, writing to the memory is executed and the bus is occupied. Furthermore, since the instruction at step f1 jumps from step 4, it is not possible to read the instruction in advance.
命令はいずれも4サイクルでフェッチできるものとし、
ステップ1,3のレジスタの値の変更は2サイクル、メ
モリへの書き込みは4サイクル、ジャンプは6サイクル
かかるものとすると、命令の先読み込みを行なわなけれ
ば全体で30サイクルかかる。そして、命令の先読み込
み機能を用いることにより26サイクルに短縮できる。Assume that each instruction can be fetched in 4 cycles,
Assuming that changing register values in steps 1 and 3 takes 2 cycles, writing to memory takes 4 cycles, and jumping takes 6 cycles, it takes a total of 30 cycles unless preloading of instructions is performed. By using the instruction preload function, the cycle can be shortened to 26 cycles.
これに対し、前記第1図のような構成を用いることによ
り、命令のフェッチサイクルが不要なため14サイクル
で済むととKなる。On the other hand, by using the configuration shown in FIG. 1, no instruction fetch cycle is required, so 14 cycles are required.
もちろん、プログラムの先頭でロードMCM 命令によ
シ命令をロードする時間が必要であるが、上記プログラ
ムのループ回数が多い場合はこれを無視できる。Of course, time is required to load the load MCM instruction at the beginning of the program, but this can be ignored if the program loops many times.
以上説明したようにこの発明によれば、動作速度の高速
化が図れ、且つハードウェア量も増大しないマイクロプ
ロセッサが得られる。As described above, according to the present invention, a microprocessor can be obtained which can increase the operating speed and does not require an increase in the amount of hardware.
第1図はこの発明の一実施例に係わるマイクロプロセッ
サについて説明するための図、第2図は命令の先読み込
みを行なうマイクロプロセッサのプログラム実行時間と
上記第1図のマイクロプロセッサのプログラム実行時間
芒士七1樗とを比較して示す図である。
11・・・マイクロプロセッサ、12・・・外部メモリ
、13・・・プログラムカウンタ(第2のレジスfi)
、15・・・マイクロキャッシュメモリ、16・・・マ
イクロキャッシュメモリカウンタ(第2のレジスタ)、
17・・・選択回路、18・・・命令デコーダ、19・
・・命令実行部、20・・・フリップ70ツブ。FIG. 1 is a diagram for explaining a microprocessor according to an embodiment of the present invention, and FIG. 2 shows the program execution time of a microprocessor that preloads instructions and the program execution time of the microprocessor shown in FIG. FIG. 11...Microprocessor, 12...External memory, 13...Program counter (second register fi)
, 15... Micro cache memory, 16... Micro cache memory counter (second register),
17... Selection circuit, 18... Instruction decoder, 19.
...Instruction execution section, 20...Flip 70 knobs.
Claims (2)
と、このマイクロキャッシュメモリへの命令コードの書
き込みおよび読み出しのアドレスを設定する第1のレジ
スタと、上記マイクロキャッシュメモリへ命令コードを
読み込む命令およびこの命令を実行する命令とが記憶さ
れる外部メモリと、この外部メモリの読み出しアドレス
を設定する第2のレジスタと、実行すべき命令を上記マ
イクロキャッシュメモリから読み出すか否かを示すフリ
ップフロップと、このフリップフロップの出力に基づい
て上記マイクロキャッシュメモリに記憶された命令コー
ドあるいは上記外部メモリに記憶されたデータを選択す
る選択回路と、この選択回路の出力を識別する命令デコ
ーダと、この命令デコーダの出力に基づいて命令を実行
する命令実行部とを具備することを特徴とするマイクロ
プロセッサ。(1) A microcache memory that stores instruction codes, a first register that sets addresses for writing and reading instruction codes into this microcache memory, an instruction to read instruction codes into the microcache memory, and an instruction to read this instruction. an external memory that stores instructions to be executed; a second register that sets a read address of the external memory; a flip-flop that indicates whether or not instructions to be executed are read from the microcache memory; a selection circuit that selects an instruction code stored in the microcache memory or data stored in the external memory based on the output of the instruction decoder; an instruction decoder that identifies the output of the selection circuit; 1. A microprocessor comprising: an instruction execution section that executes instructions using a microprocessor.
実行する命令列の最後を示す命令とがさらに記憶される
ことを特徴とする特許請求の範囲第1項記載のマイクロ
プロセッサ。(2) The microprocessor according to claim 1, wherein the external memory further stores an instruction indicating the end of loading and an instruction indicating the end of the instruction sequence to be executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6148385A JPS61220034A (en) | 1985-03-26 | 1985-03-26 | Microprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6148385A JPS61220034A (en) | 1985-03-26 | 1985-03-26 | Microprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS61220034A true JPS61220034A (en) | 1986-09-30 |
Family
ID=13172367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6148385A Pending JPS61220034A (en) | 1985-03-26 | 1985-03-26 | Microprocessor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61220034A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1063502A (en) * | 1996-08-16 | 1998-03-06 | Kagaku Gijutsu Shinko Jigyodan | Instruction cache memory system fetching instruction according to program |
-
1985
- 1985-03-26 JP JP6148385A patent/JPS61220034A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1063502A (en) * | 1996-08-16 | 1998-03-06 | Kagaku Gijutsu Shinko Jigyodan | Instruction cache memory system fetching instruction according to program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4323963A (en) | Hardware interpretive mode microprocessor | |
US4879646A (en) | Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging | |
US8589664B2 (en) | Program flow control | |
CN104978284B (en) | Processor subroutine cache | |
US5032983A (en) | Entry point mapping and skipping method and apparatus | |
WO1982001429A1 (en) | Stack for a data processor | |
US6996813B1 (en) | Frameworks for loading and execution of object-based programs | |
JP2000200196A (en) | Central processing unit having extended instruction word | |
US6205539B1 (en) | Method for manipulating a stack pointer with post increment/decrement operation | |
JPH03233630A (en) | Information processor | |
US5991870A (en) | Processor for executing an instructions stream where instruction have both a compressed and an uncompressed register field | |
JPS61220034A (en) | Microprocessor | |
US6345353B2 (en) | Stack pointer with post increment/decrement allowing selection from parallel read/write address outputs | |
KR100321745B1 (en) | A micro controller unit for external memory access | |
US6978456B1 (en) | Methods and apparatus for numeric constant value inlining in virtual machines | |
JP2758624B2 (en) | Speed control method of micro program | |
KR950006585B1 (en) | Micro program control apparatus and control method thereof | |
AU540728B2 (en) | Stack for a data processor | |
JPS6250855B2 (en) | ||
JPH04130925A (en) | Information processor | |
JPH05189014A (en) | Programmable controller | |
JPS5852261B2 (en) | Program processing method | |
JPS5694438A (en) | Microprogram control type data processing device | |
JPH05189015A (en) | Programmable controller | |
JPH01166131A (en) | Next micro-command generator of micro-program controller |