JPH0797319B2 - Microcomputer system - Google Patents
Microcomputer systemInfo
- Publication number
- JPH0797319B2 JPH0797319B2 JP61054245A JP5424586A JPH0797319B2 JP H0797319 B2 JPH0797319 B2 JP H0797319B2 JP 61054245 A JP61054245 A JP 61054245A JP 5424586 A JP5424586 A JP 5424586A JP H0797319 B2 JPH0797319 B2 JP H0797319B2
- Authority
- JP
- Japan
- Prior art keywords
- bus
- data
- instruction
- cycle
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Bus Control (AREA)
- Microcomputers (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロコンピュータシステムに係わり、特
に、マイクロプロセッサによる命令実行の効率化を図っ
たマイクロコンピュータシステムに関する。Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a microcomputer system, and more particularly, to a microcomputer system in which instruction execution by a microprocessor is made efficient.
第8図に示す従来のマイクロコンピュータシステムは、
データの入出力処理,演算処理及びマイクロコンピュー
タシステム全体を制御する、16ビット幅の入出力端子80
0-1を有するマイクロプロセッサ800と、マイクロプロセ
ッサ800の入出力端子800-1から入出力されるマルチプレ
クスされたアドレス情報と命令コード及び入出力データ
をデマルチプレクスする為のアドレスラッチ101と、マ
イクロプロセッサ800が実行するプログラムが格納され
たプログラムメモリ801と、マイクロプロセッサ800の処
理データを格納するデータメモリ103と、外部とマイク
ロプロセッサ800とのデータ入出力をインターフェイス
する周辺入出力装置104とを含んで構成れており、これ
らのユニット800,101,801,103,104が、アドレス情報と
命令コード及び入出力データがマルチプレクスされた16
ビット幅のアドレス/データバス106(以下ADバスと記
す)と、ADバス106からアドレスラッチ101によってデマ
ルチプレクスされた16ビット幅のアドレスバス107(以
下Aバスと記す)とによって接続されている。The conventional microcomputer system shown in FIG.
16-bit wide input / output terminal 80 for controlling data input / output processing, arithmetic processing, and the entire microcomputer system
A microprocessor 800 having 0-1 and an address latch 101 for demultiplexing multiplexed address information, instruction code and input / output data input / output from the input / output terminal 800-1 of the microprocessor 800, A program memory 801 in which a program executed by the microprocessor 800 is stored, a data memory 103 in which processing data of the microprocessor 800 is stored, and a peripheral input / output device 104 that interfaces data input / output between the outside and the microprocessor 800. These units 800, 101, 801, 103, 104 are 16 units in which address information, instruction code and input / output data are multiplexed.
It is connected by a bit-width address / data bus 106 (hereinafter referred to as an AD bus) and a 16-bit width address bus 107 (hereinafter referred to as an A bus) demultiplexed from the AD bus 106 by the address latch 101. .
マイクロプロセッサ800の入出力端子800−1は、前述の
様にマルチプレクスされたアドレス情報と命令コード及
び入出力データをADバス106に送出している。マイクロ
プロセッサ800は、アドレス幅が16ビットなので64Kバイ
トのメモリ空間を持ち、ADバス106を通して8ビットあ
るいは16ビット単位で命令コードの読み出し及びデータ
の読み出し/書き込みを行なう。The input / output terminal 800-1 of the microprocessor 800 sends the multiplexed address information, instruction code, and input / output data to the AD bus 106 as described above. Since the microprocessor 800 has an address width of 16 bits, it has a memory space of 64 Kbytes, and reads an instruction code and reads / writes data in units of 8 bits or 16 bits through the AD bus 106.
マイクロプロセッサ800への入力制御信号としては、マ
イクロプロセッサ800内のハードウェアの初期設定を行
なう為のリセット信号800−2があり、マイクロプロセ
ッサ800からの出力制御信号としては、アドレスラッチ1
01がADバス106上のアドレス情報をラッチするタイミン
グを与えるアドレスラッチイネーブル信号800−3(以
下ALE信号と記す)と、マイクロプロセッサ800がデータ
メモリ103,周辺入出力装置104からのデータ読み出し及
びプログラムメモリ801からの命令コードフェッチを行
なう為のリード信号800−4と、データメモリ103,周辺
入出力装置104へのデータ書き込みを行なう為のライト
信号800−5がある。ここでは、周辺入出力装置104はメ
モリ空間にマッピングされているものとしており、マイ
クロプロセッサ800のデータアクセス時に於けるデータ
メモリ103と周辺入出力装置104を区別する信号は必要と
しない。An input control signal to the microprocessor 800 is a reset signal 800-2 for initializing hardware in the microprocessor 800, and an output control signal from the microprocessor 800 is an address latch 1
01 is an address latch enable signal 800-3 (hereinafter referred to as ALE signal) that gives a timing for latching address information on the AD bus 106, and the microprocessor 800 reads data from the data memory 103 and the peripheral input / output device 104 and executes a program. There are a read signal 800-4 for fetching an instruction code from the memory 801, and a write signal 800-5 for writing data to the data memory 103 and the peripheral input / output device 104. Here, the peripheral input / output device 104 is assumed to be mapped in the memory space, and a signal for distinguishing the data memory 103 from the peripheral input / output device 104 when the microprocessor 800 accesses the data is not required.
次に第9図に示されているマイクロプロセッサ800内の
ハードウェア構成を説明する。Next, the hardware configuration in the microprocessor 800 shown in FIG. 9 will be described.
マイクロプロセッサ800は、次に実行する命令コードが
格納されているプログラムメモリ801内のアドレスを指
すプログラムカウンタ900(以下PCと記す)と、PC900を
インクリメントするインクリメンタ901と、プログラム
メモリ801から先読みした命令コードを蓄えておく命令
キュー902と、命令キュー902から読み出した命令コード
を保持するインストラクションレジスタ903(以下IRと
記す)と、IR903に格納された命令コードをデコードし
て命令実行に係わる各種制御信号を出力するインストラ
クションデコーダ904と、インストラクションデコーダ9
04からの制御信号を受けて命令処理を実行する処理実行
部905と、マイクロプロセッサ800全体の動作を制御する
実行制御部906から構成されている。The microprocessor 800 pre-reads from a program counter 900 (hereinafter referred to as a PC) that points to an address in the program memory 801 in which an instruction code to be executed next, an incrementer 901 that increments the PC 900, and the program memory 801. An instruction queue 902 that stores instruction codes, an instruction register 903 (hereinafter referred to as IR) that holds the instruction code read from the instruction queue 902, and various controls related to instruction execution by decoding the instruction code stored in the IR903. Instruction decoder 904 that outputs signals and instruction decoder 9
It is composed of a process execution unit 905 which receives a control signal from 04 and executes an instruction process, and an execution control unit 906 which controls the overall operation of the microprocessor 800.
処理実行部905から実行制御部906へは、命令実行に伴う
データメモリ103あるいは周辺入出力装置104とのデータ
リード/ライトサイクルの起動を要求するバスリクエス
ト信号905−1(以下BRQ信号と記す)が出力される。実
行制御部906は、BRQ信号905−1による処理実行部905か
らのデータリード/ライトサイクルの起動要求を受付け
ると、処理実行部905へアクノリッジ信号906−1(以下
ACK信号と記す)を出力する。また、命令キュー902から
実行制御部906へは、命令キュー902に適当数の命令コー
ドが入っている事を示すキューレディ信号902−1と命
令キュー902が一杯である事を示すキューフル信号902−
2が出力される。次に第8図に示すマイクロコンピュー
タシステムのバスサイクル動作に関して述べる。From the process execution unit 905 to the execution control unit 906, a bus request signal 905-1 (hereinafter referred to as a BRQ signal) requesting activation of a data read / write cycle with the data memory 103 or the peripheral input / output device 104 accompanying instruction execution. Is output. When the execution control unit 906 receives a data read / write cycle activation request from the process execution unit 905 by the BRQ signal 905-1, the execution control unit 906 sends an acknowledge signal 906-1 (hereinafter referred to as an acknowledge signal) to the process execution unit 905.
ACK signal). In addition, from the instruction queue 902 to the execution control unit 906, a queue ready signal 902-1 indicating that the instruction queue 902 contains an appropriate number of instruction codes and a queue full signal 902-indicating that the instruction queue 902 is full.
2 is output. Next, the bus cycle operation of the microcomputer system shown in FIG. 8 will be described.
マイクロプロセッサ800のバスサイクルは、複数のクロ
ックから成る3つの基本動作ステート及び空きステート
から構成されており、実行制御部906がバスサイクルの
基本タイミング信号であるB1,B2,B3の3つの動作信号及
びバスサイクルが空き状態である事を示すB1信号を出力
する事によって、命令実行によるデータメモリ103ある
いは周辺入出力装置104とのデータリード/ライトサイ
クルと、プログラムメモリ801からの命令コードフェッ
チサイクルのバスサイクルを制御している。The bus cycle of the microprocessor 800 is composed of three basic operation states consisting of a plurality of clocks and an empty state, and the execution control unit 906 has three operation signals B1, B2, B3 which are the basic timing signals of the bus cycle. By outputting the B1 signal indicating that the bus cycle is empty, the data read / write cycle with the data memory 103 or the peripheral input / output device 104 by the instruction execution and the instruction code fetch cycle from the program memory 801 can be performed. It controls the bus cycle.
次に、 (1) 命令コードフェッチサイクル (2) データリード/ライトサイクル の2つの基本バスサイクルのタイミングチャートを示
し、各ユニットの動作を説明する。命令コードフェッチ
サイクルのタイミングチャートを第10図に、データリー
ドサイクルのタイミングチャートを第11図(A)に、デ
ータライトサイクルのタイミングチャートを第11図
(B)に示す。Next, a timing chart of two basic bus cycles of (1) instruction code fetch cycle (2) data read / write cycle will be shown to explain the operation of each unit. A timing chart of the instruction code fetch cycle is shown in FIG. 10, a timing chart of the data read cycle is shown in FIG. 11 (A), and a timing chart of the data write cycle is shown in FIG. 11 (B).
(1) 命令コードフェッチサイクル 命令コードフェッチサイクルは、B1,B2,B3の3タイミン
グから成る。B1タイミングでマイクロプロセッサ800はA
Dバス106を通してプログラムメモリ801内に格納された
次に読み出すべき命令コードの16ビットのアドレス情報
を出力すると共に、ALE信号800−3をアクティブハイに
する。これによりアドレスラッチ101は、ADバス106上の
アドレス情報をラッチして、Aバス107上に出力する。(1) Instruction code fetch cycle The instruction code fetch cycle consists of three timings B1, B2 and B3. Microprocessor 800 is A at B1 timing
The 16-bit address information of the instruction code to be read next stored in the program memory 801 is output through the D bus 106, and the ALE signal 800-3 is set to active high. As a result, the address latch 101 latches the address information on the AD bus 106 and outputs it on the A bus 107.
B2タイミング及びB3タイミングでは、Aバス107上に
は、アドレスラッチ101を介して16ビットのアドレス情
報が出力されている。マイクロプロセッサ800は、B2タ
イミング前半でフェッチサイクル準備の為にADバス106
をフローティング状態にした後、B2タイミング後半及び
B3タイミングでリード信号800−4をアクティブハイに
する。これによりAバス107上のアドレス情報で指され
たプログラムメモリ801から、ADバス106上に命令コード
が出力され始める。そして、マイクロプロセッサ800
は、ADバス106上の命令コードが有効になるB3タイミン
グ内の所定のクロックで、ADバス106上の命令コードを
命令キュー902に取り込む。At the B2 timing and the B3 timing, 16-bit address information is output to the A bus 107 via the address latch 101. The microprocessor 800 uses the AD bus 106 to prepare for the fetch cycle in the first half of the B2 timing.
After floating the
Set the read signal 800-4 to active high at the B3 timing. As a result, the instruction code starts to be output on the AD bus 106 from the program memory 801 pointed to by the address information on the A bus 107. And a microprocessor 800
Captures the instruction code on the AD bus 106 in the instruction queue 902 at a predetermined clock within the B3 timing when the instruction code on the AD bus 106 becomes valid.
(2) データリード/ライトサイクル データリード/ライトサイクルは、B1,B2,B3の3タイミ
ングから成る。B1タイミングでマイクロプロセッサ800
は、ADバス106を通してデータリード/ライトの為の16
ビットのアドレス情報を出力すると共に、ALE信号800−
3をアクティブハイにする。これによりアドレスラッチ
101は、ADバス106上のアドレス情報をラッチして、Aバ
ス107上に出力する。B2タイミング及びB2タイミングで
は、Aバス107上には、アドレスラッチ101を介して16ビ
ットのアドレス情報が出力されている。(2) Data read / write cycle The data read / write cycle consists of three timings B1, B2, and B3. Microprocessor 800 with B1 timing
16 for data read / write through AD bus 106
Bit address information is output and ALE signal 800-
Set 3 to active high. This enables address latch
101 latches the address information on the AD bus 106 and outputs it on the A bus 107. At the B2 timing and the B2 timing, 16-bit address information is output to the A bus 107 via the address latch 101.
データリードサイクルの場合には、マイクロプロセッサ
800が、B2タイミング前半でリードサイクル準備の為にA
Dバス106でフローティング状態にした後、B2タイミング
後半及びB3タイミングでリード信号800−4をアクティ
ブハイにする。これによりAバス107上のアドレス情報
で指されたデータメモリ103あるいは周辺入出力装置104
からADバス106上にデータが出力され始める。そして、
マイクロプロセッサ800は、ADバス106上のデータが有効
になるB3タイミング内の所定のクロックで、ADバス106
上のデータを取り込む。Microprocessor for data read cycles
800 A to prepare for read cycle in the first half of B2 timing
After the floating state on the D bus 106, the read signal 800-4 is set to active high in the latter half of B2 timing and B3 timing. As a result, the data memory 103 or the peripheral input / output device 104 pointed to by the address information on the A bus 107
Starts outputting data from AD bus 106. And
The microprocessor 800 uses the predetermined clock within the B3 timing when the data on the AD bus 106 becomes valid.
Capture the above data.
データライトサイクルの場合には、マイクロプロセッサ
800が、B2タイミング後半及びB3タイミングでライト信
号800−5をアクティブハイにすると共にADバス106上に
書き込みデータを出力する。そしてADバス106上のデー
タが有効になるB3タイミング内の所定のクロックで、AD
バス106上のデータはAバス107上のアドレス情報で指さ
れたデータメモリ103あるいは周辺入出力装置104へ書き
込まれる。Microprocessor for data write cycle
The 800 sets the write signal 800-5 to active high at the latter half of the B2 timing and the B3 timing, and outputs the write data on the AD bus 106. Then, at the specified clock within B3 timing when the data on AD bus 106 becomes valid, AD
The data on the bus 106 is written to the data memory 103 or the peripheral input / output device 104 designated by the address information on the A bus 107.
この様に、命令実行によるデータメモリ103あるいは周
辺入出力装置104とのデータリード/ライトサイクル
と、プログラムメモリ801からの命令コードフェッチサ
イクルは、同一のバスサイクル数で実行され、B1,B2,B3
から成る1回のバスサイクルで、データリード,データ
ライト,命令コードフェッチのいずれか1つが行なわれ
る。In this way, the data read / write cycle with the data memory 103 or the peripheral I / O device 104 by the instruction execution and the instruction code fetch cycle from the program memory 801 are executed with the same number of bus cycles, and B1, B2, B3
Any one of data read, data write, and instruction code fetch is performed in one bus cycle consisting of.
実行制御部906は、命令キュー902からのキュレディ信号
902−1,キューフル信号902−2と、処理実行部905から
のBRQ信号905−1の状態によって、B1,B2,B3,…,BIの基
本タイミング信号の出力タイミングを制御すると共に、
データリード/ライトサイクルと命令コードフェッチサ
イクルの起動の優先順位を制御しており、この実行制御
部906の制御についてタイミングチャートを示して述べ
る。The execution control unit 906 uses the queue ready signal from the instruction queue 902.
902-1, cue full signal 902-2, and the output timing of the basic timing signals of B1, B2, B3, ..., BI according to the state of the BRQ signal 905-1 from the processing execution unit 905, and
The start priority of the data read / write cycle and the instruction code fetch cycle is controlled, and the control of the execution control unit 906 will be described with reference to a timing chart.
キューレディ信号902−1がアクティブの場合を第12図
に、キューレディ信号902−1がインアクティブの場合
を第13図に示す。FIG. 12 shows the case where the cue ready signal 902-1 is active, and FIG. 13 shows the case where the cue ready signal 902-1 is inactive.
(1) キューレディ信号902−1がアクティブの場合 BRQ信号905−1がインアクティブの場合は、命令キュー
902からキューフル信号902−2が出力されて命令キュー
902内の命令コードが一杯になる迄、連続的に命令コー
ドフェッチサイクルを起動する。命令キュー902からの
キューフル信号902−2がアクティブになった場合に
は、実行制御部906は、BRQ905−1がアクティブになる
か、あるいはキューフル信号902−2が再びインアクテ
ィブになる迄BIを出力し、バスサイクルをアイドル状態
に保つ。第12図に示されているようにBRQ信号905−1が
アクティブになった場合には、データリード/ライトサ
イクルの起動優先順位が命令コードフェッチサイクルの
起動優先順位より高い為、現在実行中のバスサイクル
(もしあれば)終了後、直ちにデータリード/ライトサ
イクルを起動する。(1) When the queue ready signal 902-1 is active When the BRQ signal 905-1 is inactive, the instruction queue
Queue full signal 902-2 is output from 902
The instruction code fetch cycle is continuously activated until the instruction code in 902 is full. When the cue full signal 902-2 from the instruction queue 902 becomes active, the execution control unit 906 outputs BI until the BRQ 905-1 becomes active or the cue full signal 902-2 becomes inactive again. And keep the bus cycle idle. As shown in FIG. 12, when the BRQ signal 905-1 becomes active, the start priority of the data read / write cycle is higher than the start priority of the instruction code fetch cycle, so A data read / write cycle is activated immediately after the end of the bus cycle (if any).
第12図は、BIサイクル中のデータライトサイクルが受付
けられた場合を示す。FIG. 12 shows the case where the data write cycle in the BI cycle is accepted.
(2) キューレディ信号902−1がインアクティブに
なった場合 BRQ信号905−1の状態に係わりなく、連続的に命令コー
ドフェッチサイクルを起動する。この場合には、命令コ
ードフェッチサイクルの起動優先順位がデータリード/
ライトサイクルの起動優先順位より高い為、BRQ信号905
−1がアクティブになっても、命令コードフェッチによ
って、キューレディ信号902−1がアクティブになる
迄、データリード/ライトサイクルの起動は、待たされ
る。(2) When the queue ready signal 902-1 becomes inactive The instruction code fetch cycle is continuously activated regardless of the state of the BRQ signal 905-1. In this case, the start priority of the instruction code fetch cycle is data read / read.
BRQ signal 905 because it is higher than the start priority of the write cycle.
Even if -1 becomes active, the activation of the data read / write cycle is delayed until the queue ready signal 902-1 becomes active by the instruction code fetch.
第13図は、キューレディ信号902−1がアクティブにな
る迄、データライトサイクルの起動が待たされている場
合を示している。FIG. 13 shows the case where the activation of the data write cycle is kept waiting until the queue ready signal 902-1 becomes active.
上述した従来のマイクロコンピュータシステムにおいて
は、1つのデータバス上で命令コードフェッチとデータ
リード/ライトを逐次に行なっている為、1つのバスサ
イクルの遅れがバスネックとなって、システム全体の性
能を落としてしまう。また、マイクロプロセッサとメモ
リあるいは周辺入出力装置とのデータアクセス回数が頻
繁になると第12図に関し説明いたようにデータバスがデ
ータリード/ライトの処理にその都度占有されてしま
い、命令コードを命令キューに読み込む空きのバスサイ
クルが減少してしまう。その結果、命令キューに具えた
ことによる命令コードの先取り効果が得られないばかり
でなく、第13図に関して説明したように命令キュー内の
命令コードの不足によって、マイクロプロセッサが命令
コードフェッチサイクルの起動を優先させる為に、命令
実行に伴うデータリード/ライトサイクルの起動が待た
され、その結果命令実行時間が長くなる、という問題点
が生じる。In the above-described conventional microcomputer system, instruction code fetch and data read / write are sequentially performed on one data bus, so that the delay of one bus cycle becomes a bus neck, and the performance of the entire system is improved. I will drop it. Further, if the number of times of data access between the microprocessor and the memory or the peripheral input / output device becomes frequent, the data bus is occupied by the data read / write processing each time as described with reference to FIG. 12, and the instruction code is transferred to the instruction queue. The number of empty bus cycles to be read into will be reduced. As a result, not only the instruction code prefetching effect due to the provision of the instruction queue cannot be obtained, but also the lack of the instruction code in the instruction queue as described with reference to FIG. 13 causes the microprocessor to start the instruction code fetch cycle. In order to give priority to, the start of the data read / write cycle accompanying the instruction execution is delayed, and as a result, the instruction execution time becomes long.
本発明のマイクロコンピュータシステムは、マイクロプ
ロセッサと、データメモリと、プログラムメモリと、前
記マイクロプロセッサと前記データメモリとを接続する
第1のバスと、前記マイクロプロセッサと前記プログラ
ムメモリとを接続する第2のバスと、前記第1のバスと
アドレスラッチを介して前記データメモリ及び前記プロ
グラムメモリとを共通接続する第3のバスとを有し、前
記マイクロプロセッサには前記プログラムメモリからリ
ードされたプログラムを記憶するキューメモリを内蔵せ
しめ、前記プログラムメモリには前記アドレスラッチを
介して転送されたアドレスを初期値としてこれを歩進す
るインクリメンタを内蔵せしめることにより、前記デー
タメモリをアクセスしてデータのリード/ライトを行な
う前記第1のバスと前記インクリメンタの内容に応じて
前記プログラムメモリからリードされるプログラムの転
送を行なう前記第2のバスとを並列に使用し、前記プロ
グラムメモリからリードされたプログラムは前記キュー
メモリに記憶するようにしたことを特徴とする。かかる
構成のマイクロコンピュータシステムにあっては、デー
タ処理手段がすでに受け入れているプログラム命令に基
づき上記第1転送手段を使用し上記データ情報手段と関
連しつつデータの情報の処理を実行しているときでも、
これと並行してプログラム供給手段からプログラム命令
に順次新たに受け入れることができる。したがって、プ
ログラム命令の受け入れのためにデータ情報手段と関連
したデータ情報の処理を中断する必要がなくなり、ま
た、プログラム命令の受け入れ中にデータ情報手段と関
連したデータ情報の処理が必要となり、プログラム命令
の受け入れを中断することもなくなる。その結果、プロ
グラム命令の実行中に待ち時間が無くなり、データ情報
の処理速度を向上させることができる。A microcomputer system of the present invention is a microprocessor, a data memory, a program memory, a first bus connecting the microprocessor and the data memory, and a second bus connecting the microprocessor and the program memory. Bus and a third bus that connects the data memory and the program memory in common via the first bus and an address latch, and the microprocessor reads a program read from the program memory. A queue memory that stores the data is included, and an incrementer that increments the address transferred through the address latch as an initial value is included in the program memory to access the data memory and read the data. / Said first bus for writing The second bus for transferring the program read from the program memory is used in parallel according to the content of the incrementer, and the program read from the program memory is stored in the queue memory. It is characterized by In the microcomputer system having such a structure, when the information processing of the data is executed in association with the data information means by using the first transfer means based on the program command already accepted by the data processing means. But
In parallel with this, new program instructions can be sequentially accepted from the program supply means. Therefore, it is not necessary to interrupt the processing of the data information associated with the data information means for receiving the program instruction, and it is necessary to process the data information associated with the data information means during the acceptance of the program instruction. The acceptance of will not be interrupted. As a result, the waiting time is eliminated during the execution of the program instruction, and the processing speed of the data information can be improved.
次に、本発明の実施例について図面を参照して説明す
る。Next, embodiments of the present invention will be described with reference to the drawings.
第1図は本発明によるマイクロコンピュータシステムの
一実施例の構成を示すブロック図を示す。FIG. 1 is a block diagram showing the configuration of an embodiment of a microcomputer system according to the present invention.
第1図に示すマイクロコンピュータシステムは、データ
の入出力処理,演算処理及びマイクロコンピュータシス
テム全体を制御する、16ビット幅の入出力端子100−1
と8ビット幅の入出力端子100−8を有するマイクロプ
ロセッサ100と、マイクロプロセッサ100の入出力端子10
0−1から入出力されるマルチプレクスされたアドレス
情報と入出力データとをデマルチプレクスする為のアド
レスラッチ101と、マイクロプロセッサ100が実行するプ
ログラムが格納されているメモリ部102−1,次にマイク
ロプロセッサ100が実行する命令コードが格納されてい
るメモリ部102−1のアドレスを指すインストラクショ
ンポインタ102−2(以下IPと記す),IP102−2をイン
クリメントするインクリメンタ102−3より成るプログ
ラムメモリ102と、マイクロプロセッサ100の処理データ
を格納するデータメモリ103と、外部とマイクロプロセ
ッサ100とのデータ入出力をインターフェイスする周辺
入出力装置104から構成され、これらのユニットが、命
令コードが出力される8ビット幅のインストラクション
バス105(以下Iバスと記す)と、マルチプレクスされ
たアドレス情報と入出力データとを送出うるための16ビ
ット幅のアドレス/データバス106(以下ADバスと記
す)と、ADバス106を介してアドレスラッチ101によって
ラッチされたデマルチプレクスされたアドレスを送出す
る16ビット幅のアドレスバス107(以下Aバスと記す)
によって接続されている。The microcomputer system shown in FIG. 1 is a 16-bit wide input / output terminal 100-1 for controlling data input / output processing, arithmetic processing, and the entire microcomputer system.
And a microprocessor 100 having an 8-bit wide input / output terminal 100-8, and an input / output terminal 10 of the microprocessor 100.
0-1, an address latch 101 for demultiplexing multiplexed address information and input / output data, a memory unit 102-1 in which a program executed by the microprocessor 100 is stored, A program memory including an instruction pointer 102-2 (hereinafter referred to as IP) that points to an address of a memory unit 102-1 in which an instruction code executed by the microprocessor 100 is stored, and an incrementer 102-3 that increments the IP 102-2. 102, a data memory 103 for storing processing data of the microprocessor 100, and a peripheral input / output device 104 for interfacing data input / output between the outside and the microprocessor 100, and these units output an instruction code. 8-bit wide instruction bus 105 (hereinafter referred to as I-bus) and multiple 16-bit wide address / data bus 106 (hereinafter referred to as AD bus) for transmitting the address information and input / output data, and demultiplexed latched by address latch 101 via AD bus 106. 16-bit wide address bus 107 (hereinafter referred to as A bus)
Connected by.
マイクロプロセッサ100の16ビット幅の入出力端子100−
1は、アドレス情報と入出力データがマルチプレクスさ
れたADバス106に接続されており、8ビット幅の入力端
子100−8は、命令コードが出力されるIバス105に接続
されている。マイクロプロセッサ100は、アドレス幅が1
6ビットなので64Kバイトのメモリ空間を持ち、Iバス10
5とADバス106を通して8ビット単位での命令コードの読
み出し及び8ビットあるいは16ビット単位でのデータの
読み出し/書き込みを行なう。16-bit wide input / output terminal 100 of microprocessor 100-
1 is connected to an AD bus 106 in which address information and input / output data are multiplexed, and an 8-bit wide input terminal 100-8 is connected to an I bus 105 for outputting an instruction code. The microprocessor 100 has an address width of 1
Since it is 6 bits, it has a memory space of 64 Kbytes and I bus 10
5 and the AD bus 106 are used to read an instruction code in 8-bit units and read / write data in 8-bit or 16-bit units.
マイクロプロセッサ100への入力制御信号としては、マ
イクロプロセッサ100内のハードウェアの初期設定を行
なう為のリセット信号100−2があり、マイクロプロセ
ッサ100からの出力制御信号としては、アドレスラッチ1
01がADバス106上のアドレス情報をラッチするタイミン
グを与えるアドレスラッチイネーブル信号100−3(以
下ALE信号と記す)と、マイクロプロセッサ100がデータ
メモリ103,周辺入出力装置104からデータ読み出しを行
なう為のリード信号100−4と、データメモリ103,周辺
入出力装置104へのデータ書込みを行なう為のライト信
号100−5と、命令コードフェッチの為、プログラムメ
モリ102内のメモリ部102−2から命令コードを読み出す
為のインストラクションリード信号100−6(以下IRD信
号と記す)と、分岐処理等の時プログラムメモリ102内
のIP102−2へ命令コードの読み出しアドレスを書き込
む為のインストラクションポインタライト信号100−7
(以下IPWR信号と記す)とがある。ここでは、周辺入出
力装置104はメモリ空間にマッピングしているものとし
ており、マイクロプロセッサ100のデータアクセス時に
於けるデータメモリ103と周辺入出力装置104を区別する
信号は必要としない。An input control signal to the microprocessor 100 is a reset signal 100-2 for initializing the hardware in the microprocessor 100, and an output control signal from the microprocessor 100 is an address latch 1
When 01 is an address latch enable signal 100-3 (hereinafter referred to as an ALE signal) that gives a timing for latching address information on the AD bus 106, the microprocessor 100 reads data from the data memory 103 and the peripheral input / output device 104. Read signal 100-4, a write signal 100-5 for writing data to the data memory 103 and the peripheral input / output device 104, and an instruction from the memory unit 102-2 in the program memory 102 for instruction code fetching. Instruction read signal 100-6 (hereinafter referred to as IRD signal) for reading the code and instruction pointer write signal 100-7 for writing the read address of the instruction code to the IP 102-2 in the program memory 102 at the time of branch processing etc.
(Hereinafter referred to as IPWR signal). Here, the peripheral input / output device 104 is assumed to be mapped in the memory space, and a signal for distinguishing the data memory 103 and the peripheral input / output device 104 at the time of data access of the microprocessor 100 is not required.
次に第2図にマイクロプロセッサ100内のハードウェア
構成を示す。Next, FIG. 2 shows a hardware configuration in the microprocessor 100.
マイクロプロセッサ100は、次に実行する命令コードが
格納されているプログラムメモリ102内のアドレスを指
すプログラムカウンタ200(以下PCと記す)と、PC200を
インクリメントするインクリメンタ201と、プログラム
メモリ102から先読みした命令コードを蓄えておく命令
キュー202と、命令キュー202から読み出した命令コード
を保持するインストラクションレジスタ203(以下IRと
記す)と、IR203に格納された命令コードをデコードし
て命令実行に係わる各種制御信号を出力するインストラ
クションデコーダ204と、インストラクションデコーダ2
04からの制御信号を受けて命令処理を実行する処理実行
部205と、マイクロプロセッサ100全体の動作を制御する
実行制御部206とから構成されている。The microprocessor 100 prefetches from the program memory 102, a program counter 200 (hereinafter referred to as a PC) that points to an address in the program memory 102 in which an instruction code to be executed next is stored, an incrementer 201 that increments the PC 200, and the program memory 102. An instruction queue 202 that stores instruction codes, an instruction register 203 (hereinafter referred to as IR) that holds the instruction code read from the instruction queue 202, and various controls related to instruction execution by decoding the instruction code stored in the IR 203 Instruction decoder 204 for outputting signals and instruction decoder 2
It is composed of a process execution unit 205 which receives a control signal from 04 and executes an instruction process, and an execution control unit 206 which controls the overall operation of the microprocessor 100.
処理実行部205から実行制御部206へは、命令実行に伴う
データメモリ103あるいは周辺入出力装置104とのデータ
リード/ライトサイクルの起動を要求するバスリクエス
ト信号205−1(以下BRQと記す)と、分岐処理サイクル
の起動を要求するブランチ信号205−2(以下BRCH信号
と記す)が出力され、実行制御部206は、データリード
/ライトサイクルの起動要求あるいは分岐略サイクルの
起動要求を受付けると、処理実行部205へアクノリッジ
信号206−1(以下ACK信号と記す)を出力する。また、
命令キュー202から実行制御部206へは、命令キュー202
に適当数の命令コードが入っている事を示すキューレデ
ィ信号202−1と命令キュー202が一杯である事を示すキ
ューフル信号202−2が出力される。From the process execution unit 205 to the execution control unit 206, a bus request signal 205-1 (hereinafter referred to as BRQ) requesting activation of a data read / write cycle with the data memory 103 or the peripheral input / output device 104 accompanying instruction execution, , A branch signal 205-2 (hereinafter referred to as a BRCH signal) requesting activation of a branch processing cycle is output, and the execution control unit 206 receives a data read / write cycle activation request or a branch approximate cycle activation request, An acknowledge signal 206-1 (hereinafter referred to as an ACK signal) is output to the processing execution unit 205. Also,
From the instruction queue 202 to the execution control unit 206, the instruction queue 202
A cue ready signal 202-1 indicating that an appropriate number of instruction codes are stored in and a cue full signal 202-2 indicating that the instruction queue 202 is full are output.
次に第1図に示すマイクロコンピュータシステムのバス
サイクル動作に関して述べる。Next, the bus cycle operation of the microcomputer system shown in FIG. 1 will be described.
マイクロプロセッサ100のバスサイクルは、複数のクロ
ックから成る3つの基本動作ステート及び空きステート
から構成されており、実行制御部206がバスサイクルの
基本タイミング信号であるT1,T2,T3の3つの動作信号及
びバスサイクルが空き状態である事を示すTI信号を出力
する事によって、命令実行によるデータメモリ103ある
いは周辺入出力装置104とのデータリード/ライトサイ
クルと、プログラムメモリ102からの命令コードフェッ
チサイクルのバスサイクルを制御している。The bus cycle of the microprocessor 100 is composed of three basic operation states consisting of a plurality of clocks and an empty state, and the execution control unit 206 has three operation signals of T1, T2 and T3 which are the basic timing signals of the bus cycle. Also, by outputting a TI signal indicating that the bus cycle is empty, a data read / write cycle with the data memory 103 or the peripheral I / O device 104 by instruction execution and an instruction code fetch cycle from the program memory 102 can be performed. It controls the bus cycle.
次に (1) 命令コードフェッチサイクル (2) データリード/ライトサイクル (3) 分岐略サイクル の3つの基本バスサイクルのタイミングチャートを示
し、各ユニットの動作を説明する。命令コードフェッチ
サイクルのタイミングチャートを第3図に、データリー
ドサイクルのタイミングチャートを第4図(A)に、デ
ータライトサイクルのタイミングチャートを第4図
(B)に、分岐処理さるのタイミングチャートを第5図
にそれぞれ示す。Next, a timing chart of three basic bus cycles of (1) instruction code fetch cycle, (2) data read / write cycle, and (3) branch branch cycle will be shown to explain the operation of each unit. The timing chart of the instruction code fetch cycle is shown in FIG. 3, the timing chart of the data read cycle is shown in FIG. 4 (A), the timing chart of the data write cycle is shown in FIG. 4 (B), and the timing chart of branch processing is shown. Each is shown in FIG.
(1) 命令コードフェッチサイクル 命令コードフェッチサイクルは、T2,T3の2タイミング
から成る。マイクロプロセッサ100は、T2タイミング後
半からT3タイミングでIRD信号100−6をアクティブハイ
にする。IP102−2は、IRD信号100−6の立ち下がりで
インクリメンタ102−3によりインクリメントされた結
果を、IRD信号100−6の立ち上がりでメモリ部102−1
に出力する。これによりプログラムメモリ102は、イン
クリメントされたIP102−2で指されているメモリ部102
−1より命令コードを、T2タイミングの後半からIバス
105に出力す。マイクロプロセッサ100は、プログラムメ
モリ102からIバス105上に読み出された命令コードが、
有効になるT3タイミング内の所定のクロックで、Iバス
105上の命令コードを命令キュー202に取り込む。(1) Instruction code fetch cycle The instruction code fetch cycle consists of two timings T2 and T3. The microprocessor 100 makes the IRD signal 100-6 active high from the latter half of the T2 timing to the T3 timing. The IP 102-2 uses the result incremented by the incrementer 102-3 at the falling edge of the IRD signal 100-6 and the memory unit 102-1 at the rising edge of the IRD signal 100-6.
Output to. As a result, the program memory 102 becomes the memory unit 102 pointed to by the incremented IP 102-2.
Instruction code from -1, I bus from the latter half of T2 timing
Output to 105. In the microprocessor 100, the instruction code read out from the program memory 102 onto the I bus 105 is
I bus with a predetermined clock within the valid T3 timing
The instruction code on 105 is fetched into the instruction queue 202.
(2) データリード/ライトサイクル データリード/ライトサイクルは、T1,T2,T3の3タイミ
ングから成る。T1タイミングでマイクロプロセッサ100
は、ADバス106を通してデータリード/ライトの為の16
ビットのアドレス情報を出力すると共に、ALE信号100−
3をアクティブハイにする。これによりアドレスラッチ
101は、ADバス106上のアドレス情報をラッチして、Aバ
ス107上に出力する。T2タイミング及びT3タイミングで
は、Aバス107上には、アドレスラッチを介して16ビッ
トのアドレス情報が出力されている。(2) Data read / write cycle The data read / write cycle consists of three timings T1, T2 and T3. Microprocessor 100 at T1 timing
16 for data read / write through AD bus 106
Bit address information is output and ALE signal 100-
Set 3 to active high. This enables address latch
101 latches the address information on the AD bus 106 and outputs it on the A bus 107. At the T2 timing and the T3 timing, 16-bit address information is output to the A bus 107 via the address latch.
データリードサイクルの場合には、マイクロプロセッサ
100が、T2タイミング前半でリードサイクルの準備の為
にADバス106をフローティング状態にした後、T2タイミ
ング後半及びT3タイミングでリード信号100−4をアク
ティブハイにする。これによりAバス107上のアドレス
情報で指されたデータメモリ103あるいは周辺入出力装
置104から、ADバス106上にデータが出力され始める。そ
して、マイクロプロセッサ100は、ADバス106上に読み出
されたデータが有効になるT3タイミング内の所定のクロ
ックで、ADバス106上のデータを読み込む。Microprocessor for data read cycles
100 sets the AD bus 106 to a floating state in preparation for a read cycle in the first half of T2 timing, and then sets the read signal 100-4 to active high in the second half of T2 timing and T3 timing. As a result, the data memory 103 or the peripheral input / output device 104 pointed to by the address information on the A bus 107 starts to output data on the AD bus 106. Then, the microprocessor 100 reads the data on the AD bus 106 at a predetermined clock within T3 timing when the data read on the AD bus 106 becomes valid.
データライトサイクルの場合には、マイクロプロセッサ
100が、T2タイミング後半及びT3タイミングでライト信
号100−5をアクティブハイにすると共にADバス106上に
書き込みデータを出力する。そして、ADバス106上のデ
ータが有効になるT3タイミング内の所定のクロックで、
ADバス106上のデータはAバス107上のアドレス情報で指
されたデータメモリ103あるいは周辺入出力装置104へ書
き込まれる。Microprocessor for data write cycle
100 sets the write signal 100-5 to active high at the latter half of T2 timing and T3 timing, and outputs write data on the AD bus 106. Then, at a predetermined clock within the T3 timing when the data on the AD bus 106 becomes valid,
The data on the AD bus 106 is written to the data memory 103 or the peripheral input / output device 104 designated by the address information on the A bus 107.
更に、データリード/ライトサイクルにおいて、キュー
フル信号202−2がインアクティブで命令キュー202内の
命令コードに余裕がある場合には、データリード/ライ
トサイクルと並列にT2,T3のタイミングで、(1)で述
べた命令コードフェッチサイクルが起動され、プログラ
ムメモリ102から命令コードが読み出されて、命令キュ
ー202に格納される。キューフル信号202−2がアクティ
ブの場合には、データリード/ライトサイクルのみが起
動される。Further, in the data read / write cycle, when the queue full signal 202-2 is inactive and there is a margin in the instruction code in the instruction queue 202, (1 is set at the timing of T2 and T3 in parallel with the data read / write cycle. The instruction code fetch cycle described in 1) is activated, the instruction code is read from the program memory 102, and is stored in the instruction queue 202. When the cue full signal 202-2 is active, only the data read / write cycle is activated.
(3) 分岐処理サイクル 分岐処理サイクルは、T1,T2,T3の3タイミングから成
る。(3) Branch processing cycle The branch processing cycle consists of three timings T1, T2, and T3.
T1タイミングでマイクロプロセッサ100は、ADバス106を
通して分岐先の16ビットのアドレス情報を出力すると共
に、IPWR信号100−7及びALE信号100−3をアクティブ
にする。これによりアドレスラッチ101は、ADバス106上
の分岐先アドレスをラッチしてAバス107上に出力し、
プログラムメモリ102は、Aバス107上に出力された16ビ
ットの分岐先アドレスを読み込んでIP102−2に格納す
る。At the T1 timing, the microprocessor 100 outputs 16-bit address information of the branch destination through the AD bus 106 and activates the IPWR signal 100-7 and the ALE signal 100-3. As a result, the address latch 101 latches the branch destination address on the AD bus 106 and outputs it on the A bus 107,
The program memory 102 reads the 16-bit branch destination address output on the A bus 107 and stores it in the IP 102-2.
次んマイクロプロセッサ100は、T2タイミング後半からT
3タイミングでIRD信号100−6をアクティブにする。IP1
02−2は、格納された分岐先アドレスを、IRD信号100−
6の立ち上がりでメモリ部102−1に出力する。この時
には、インクリメンタ102−3からの出力をIP102−2に
ラッチする信号は、IPWR信号100−7によって抑えられ
る。これによりプログラムメモリ102は、IP102−2で指
されているメモリ部102−1より命令コードを、T2タイ
ミングの後半からIバス105に出力する。マイクロプロ
セッサ100は、プログラムメモリ102からIバス105上に
読み出された命令コードが有効になるT3タイミング内の
所定のクロックで、Iバス105上の命令コードが命令キ
ュー202に取り込む。The next microprocessor 100 starts from the second half of T2 timing to T
IRD signal 100-6 is activated at 3 timings. IP1
02-2 shows the stored branch destination address as IRD signal 100-
At the rising edge of 6, the data is output to the memory unit 102-1. At this time, the signal that latches the output from the incrementer 102-3 to the IP 102-2 is suppressed by the IPWR signal 100-7. As a result, the program memory 102 outputs the instruction code from the memory unit 102-1 designated by the IP 102-2 to the I bus 105 from the latter half of the T2 timing. The microprocessor 100 fetches the instruction code on the I bus 105 into the instruction queue 202 at a predetermined clock within the T3 timing when the instruction code read from the program memory 102 onto the I bus 105 becomes valid.
次に実際に実行制御部206が、命令キュー202からキュー
レディ信号202−1,キューフル信号202−2と、処理実行
部205からのBRQ信号205−1の状態によって、T1,T2,T3,
TIの基本タイミング信号の出力タイミングをどの様に制
御しているかについて、タイミングチャートを示して述
べる。Next, the execution control unit 206 actually receives T1, T2, T3, depending on the states of the queue ready signal 202-1, the queue full signal 202-2 from the instruction queue 202 and the BRQ signal 205-1 from the processing execution unit 205.
How to control the output timing of the TI basic timing signal will be described by showing a timing chart.
BRQ信号205−1がインアクティブの場合を第6図に、BR
Q信号205−1がアクティブになった場合を第7図に示
す。Fig. 6 shows the case where the BRQ signal 205-1 is inactive.
FIG. 7 shows the case where the Q signal 205-1 becomes active.
(1) BRQ信号205−1がインアクティブの場合 命令キュー202からキューフル信号202−2が出力されて
命令キュー202内の命令コードが一杯になる迄、連続的
に命令コードフェッチサイクルを起動する。命令キュー
202からのキューフル信号202−2がアクティブになった
場合には、実行制御部206は、BRQ205−1がアクティブ
になるか、あるいはキューフル信号202−2が再びイン
アクティブになる迄TIを出力し、バスサイクルをアイド
ル状態に保つ。(1) When the BRQ signal 205-1 is inactive The instruction code fetch cycle is continuously activated until the instruction queue 202 outputs the queue full signal 202-2 and the instruction code in the instruction queue 202 becomes full. Instruction queue
When the cue full signal 202-2 from 202 becomes active, the execution control unit 206 outputs TI until the BRQ 205-1 becomes active or the cue full signal 202-2 becomes inactive again, Keep the bus cycle idle.
(2) BRQ信号205−1がアクティブになった場合 現在実行中のバスサイクル(もしあれば)終了後、キュ
ーレディ信号202−1の状態によらず、ACK信号206−1
をアクティブにして、データリード/ライトサイクルの
起動要求を受付けた事を処理実行部205に通知し、直ち
にデータリード/ライトサイクルを起動する。この様
に、データリード/ライトと命令コードフェッチが並列
に実行される為、実行制御部206はキューレディ信号202
−1の状態に係わりなくBRQ信号205−1によるデータリ
ード/ライトサイクルの起動要求を受ける。(2) When the BRQ signal 205-1 becomes active After the currently executed bus cycle (if any) is completed, the ACK signal 206-1 is generated regardless of the state of the queue ready signal 202-1.
Is activated to notify the processing execution unit 205 that the data read / write cycle activation request has been received, and immediately activates the data read / write cycle. In this way, since the data read / write and the instruction code fetch are executed in parallel, the execution control unit 206 sets the queue ready signal 202
A data read / write cycle activation request is received by the BRQ signal 205-1 regardless of the state of -1.
第7図は、命令コードフェッチサイクル中にデータライ
トサイクルの起動要求が受付けられて、データライトと
命令コードフェッチが並列に行なわれている場合を示し
ている。FIG. 7 shows a case in which a data write cycle activation request is accepted during an instruction code fetch cycle, and data writing and instruction code fetch are performed in parallel.
次に第1図のマイクロコンピュータシステムのバスサイ
クル動作を含む全体の動作を、 (1) リセット時の動作 (2) 通常の命令実行時の動作 (3) 分岐処理時の動作 の場合について述べる。Next, the overall operation including the bus cycle operation of the microcomputer system of FIG. 1 will be described in the case of (1) operation during reset (2) operation during normal instruction execution (3) operation during branch processing.
(1) リセット時の動作 外部からのリセット入力によりマイクロプロセッサ100
のリセット信号100−2がアクティブになると、実行制
御部206は、PC200の初期設定を行なう。バスサイクルの
制御については、リセット信号100−2がインアクティ
ブになる迄TI信号を出力し、バスサイクルはアイドル状
態になる。また、命令キュー202はフラッシュされて中
は空になっており、キューレディ信号202−1はインア
クティブになっている。(1) Operation at reset Microprocessor 100 by external reset input
When the reset signal 100-2 is activated, the execution control unit 206 initializes the PC 200. For bus cycle control, the TI signal is output until the reset signal 100-2 becomes inactive, and the bus cycle becomes idle. The instruction queue 202 has been flushed and is empty, and the queue ready signal 202-1 is inactive.
リセット信号100−2がインアクティブにあると、実行
制御部206は、分岐先の命令コードフェッチを含む分岐
処理サイクルを起動する。この時は、分岐先アドレスと
してPC200の初期値が、入出力端子100−1を通してADバ
ス106に出力される。実行制御部206は、分岐処理サイク
ル終了後、連続的に命令コードフェッチサイクルを起動
して、命令キュー内に命令コードを読み込む。When the reset signal 100-2 is inactive, the execution control unit 206 activates the branch processing cycle including the instruction code fetch of the branch destination. At this time, the initial value of the PC 200 as the branch destination address is output to the AD bus 106 through the input / output terminal 100-1. After the branch processing cycle ends, the execution control unit 206 continuously activates instruction code fetch cycles to read the instruction code in the instruction queue.
(2) 通常の命令実行時の動作 マイクロプロセッサ100は、命令キュー202からのキュー
レディがアクティブになると、命令キュー202の先頭か
ら命令コードを読み出し、IR203にフェッチする。PC200
の値は、命令キュー202からの命令コードの読み出しに
よって、インクリメンタ201によりインクリメントされ
る。IR203にフェッチされた命令コードは、インストラ
クションデコーダ204によってデコードされ、インスト
ラクションデコーダ204から出力される制御信号によっ
て、処理実行部205が命令を実行する。(2) Operation during normal instruction execution When the queue ready from the instruction queue 202 becomes active, the microprocessor 100 reads the instruction code from the head of the instruction queue 202 and fetches it into the IR203. PC200
The value of is incremented by the incrementer 201 by reading the instruction code from the instruction queue 202. The instruction code fetched by the IR 203 is decoded by the instruction decoder 204, and the processing execution unit 205 executes the instruction by the control signal output from the instruction decoder 204.
処理実行部205は、命令実行に於いてデータメモリ103あ
るいは周辺入出力装置104との処理データのリード/ラ
イトが必要になるとアドレス計算終了後、BRQ信号205−
1をアクティブにして、実行制御部206にデータリード
/ライトサイクルの起動を要求する。When it is necessary to read / write processing data from / to the data memory 103 or the peripheral input / output device 104 in executing the instruction, the processing execution unit 205 finishes the address calculation and then outputs the BRQ signal 205-
1 is activated and the execution control unit 206 is requested to activate the data read / write cycle.
実行制御部206は、現在実行中のバスサイクル(もしあ
れば)終了後、ACK信号206−1をアクティブにして起動
要求を受付け、直ちに命令コードのフェッチサイクルを
含むデータリード/ライトサイクルを起動する。The execution control unit 206 activates the ACK signal 206-1 and accepts the activation request after the end of the currently executed bus cycle (if any), and immediately activates the data read / write cycle including the instruction code fetch cycle. .
(3) 分岐処理時の動作 処理実行部205は、分岐命令の場合には分岐先アドレス
の計算と分岐先への分岐判断を行ない、分岐と判断した
場合にはPC200に分岐先アドレスを書き込むと共にBRCH
信号205−2をアクティブにして、実行制御部206に分岐
処理サイクルの起動を要求する。実行制御部206は、現
在実行中のバスサイクル(もしあれば)終了後、ACK信
号206−1をアクティブにして分岐処理サイクルの起動
要求を受付け、直ちに分岐先の命令コードフェッチを含
む分岐処理サイクルを起動する。(3) Operation during branch processing The processing execution unit 205 calculates the branch destination address and determines the branch to the branch destination in the case of a branch instruction, and writes the branch destination address to the PC 200 when it determines that the branch is taken. BRCH
The signal 205-2 is activated to request the execution control unit 206 to start the branch processing cycle. After the end of the currently executed bus cycle (if any), the execution control unit 206 activates the ACK signal 206-1 to accept the start request of the branch processing cycle, and immediately receives the branch processing cycle including the instruction code fetch of the branch destination. To start.
また、命令キュー202はフラッシュされて中は空になる
為、キューレディ信号202−1はインアクティブにな
る。Further, since the instruction queue 202 is flushed and becomes empty, the queue ready signal 202-1 becomes inactive.
実行制御部206は、分岐処理サイクル終了後、連続的に
命令コードフェッチサイクルを起動し、分岐先の命令コ
ードを命令キュー202に取り込む。After the end of the branch processing cycle, the execution control unit 206 continuously activates the instruction code fetch cycle and fetches the instruction code of the branch destination into the instruction queue 202.
この様に、通常の命令実行時の動作に於いては、命令実
行によるデータメモリ103あるいは周辺入出力装置104と
のデータリード/ライトと、プログラムメモリ102から
の命令コードフェッチの並列処理が、リセット時あるい
は分岐略時の動作に於いては、プログラムメモリ102内
のIP102−2への書き込みと、書き込まれたIP102−2に
よって指されたメモリ部102−1からの命令コードフェ
ッチの並列処理が行なわれる。As described above, in the normal operation at the time of executing an instruction, the parallel processing of the data read / write with the data memory 103 or the peripheral input / output device 104 by the instruction execution and the parallel processing of the instruction code fetch from the program memory 102 is reset. In the operation at the time or at the time of branching, the parallel processing of the writing to the IP 102-2 in the program memory 102 and the instruction code fetch from the memory unit 102-1 pointed to by the written IP 102-2 is performed. Be done.
また、データリード/ライトサイクル及び分岐処理サイ
クルの場合には、Aバス107上のアドレス情報が必要な
為、T1,T2,T3の3タイミングを要するが、命令コードフ
ェッチサイクルは、命令コードのフェッチ先のアドレス
情報をプログラムメモリ102内のIP102−2が保持してい
る為、T2,T3の2タイミングで終了する。In the case of the data read / write cycle and the branch processing cycle, since the address information on the A bus 107 is required, three timings of T1, T2, and T3 are required, but the instruction code fetch cycle is the instruction code fetch. Since the IP 102-2 in the program memory 102 retains the previous address information, it ends at two timings T2 and T3.
以上説明した様に本発明の一実施例では、マイクロプロ
セッサとメモリと周辺入出力装置から構成されるマイク
ロコンピュータシステムにおいて、アドレス情報とデー
タをマルチプレクスしたバスの他に、命令コード読み出
し用の専用バス及び命令コードを格納したメモリに対す
る読み出し用のカウンタを設ける事により、以下の効果
が得られる。As described above, according to one embodiment of the present invention, in a microcomputer system including a microprocessor, a memory, and a peripheral input / output device, in addition to a bus in which address information and data are multiplexed, a dedicated instruction code read By providing a reading counter for the bus and the memory storing the instruction code, the following effects can be obtained.
(1) 命令コードを格納したメモリに対する読み出し
用のカウンタを設けている為、命令コードフェッチサイ
クルにおいて、マイクロプロセッサはフェッチ先のアド
レスを出力するバスサイクルを起動する必要がない。こ
のバスサイクル数の減少により、命令コードフェッチサ
イクルが高速化し、システム全体の命令実行速度が向上
する。(1) Since the counter for reading the memory storing the instruction code is provided, the microprocessor does not need to start the bus cycle for outputting the address of the fetch destination in the instruction code fetch cycle. This reduction in the number of bus cycles speeds up the instruction code fetch cycle and improves the instruction execution speed of the entire system.
(2) 同一のバスサイクル内で、命令実行に伴うマイ
クロプロセッサとメモリあるいは周辺入出力装置とのデ
ータリード/ライトと、マイクロプロセッサの命令コー
ドフェッチが並列に行なわれる為、命令実行に伴うデー
タリード/ライトサイクルが頻繁に起動される場合にお
いても、常に命令コードがフェッチされており、命令キ
ューを備える事による命令コードの先取り効果が、非常
に有効になる。(2) In the same bus cycle, data read / write between the microprocessor and the memory or the peripheral input / output device accompanying instruction execution and instruction code fetch of the microprocessor are performed in parallel, so data read associated with instruction execution Even when the / write cycle is activated frequently, the instruction code is always fetched, and the instruction code prefetching effect by providing the instruction queue becomes very effective.
(3) データリード/ライトと命令コードフェッチが
並列に行なわれる為、マイクロプロセッサが、命令キュ
ー内の命令コードの不足により、データリード/ライト
サイクルの起動を待たせて、強制的に命令コードフェッ
チサイクルを起動する。という制御を行なう必要がな
い。これにより、命令実行に伴うデータリード/ライト
サイクルの起動要求は、命令キュー内の状態に係わりな
く常に受付けられ、バスサイクルを伴う命令の平均実行
時間が高速化する。また、命令キューの状態により、デ
ータリード/ライトサイクルの起動要求と、命令コード
フェッチサイクルの起動要求の優先順位を制御する為の
ハードウェアが不要となる。(3) Since the data read / write and the instruction code fetch are performed in parallel, the microprocessor waits for the activation of the data read / write cycle due to the shortage of the instruction code in the instruction queue, and the instruction code is forcibly fetched. Start the cycle. There is no need to control. As a result, the data read / write cycle activation request accompanying instruction execution is always accepted regardless of the state in the instruction queue, and the average execution time of instructions involving bus cycles is shortened. Further, depending on the state of the instruction queue, hardware for controlling the priority of the data read / write cycle activation request and the instruction code fetch cycle activation request becomes unnecessary.
(4) 通常の命令処理時に於いては、命令実行による
データリード/ライトと、命令コードフェッチの並列処
理が、リセット時あるいは分岐処理時に於いては、命令
コードを格納したメモリに対する読み出し用のカウンタ
への書き込みと、書き込まれたカウンタによって指され
たメモリからの命令コードフェッチの並列処理が行なわ
れる為、バスのアクセス効率が向上しバスネックが減少
して、マイクロコンピュータシステム全体の性能を向上
する。(4) During normal instruction processing, parallel processing of data read / write by instruction execution and instruction code fetch is performed, and at the time of reset or branch processing, a read counter for the memory storing the instruction code. Is performed and the instruction code fetch from the memory pointed to by the written counter is performed in parallel, so the bus access efficiency is improved and the bus neck is reduced, improving the overall performance of the microcomputer system. .
この様に本発明は、ハードウェア上の負担を大きく増す
事なく、データリード/ライトサイクルと命令コードフ
ェッチサイクルを並列に実行する事により、バスのメモ
リアクセス効率を向上させ、見掛けのメモリアクセス時
間を高速化すると共に、パイプライン方式で用いられる
命令コードの先取り効果を高めており、実用的な重要性
が高い。As described above, the present invention improves the memory access efficiency of the bus and executes the apparent memory access time by executing the data read / write cycle and the instruction code fetch cycle in parallel without significantly increasing the load on the hardware. It has a high practical importance because it speeds up the process and improves the prefetching effect of the instruction code used in the pipeline system.
第1図は本発明の一実施例の構成を示すブロック図、第
2図は第1図のマイクロプロセッサの構成を示すブロッ
ク図、第3図,第4図(A),第4図(B),第5図,
第6図,第7図は一実施例の各モードにおけるタイミン
グチャート図、第8図は従来例のブロック図、第9図は
第8図中のマイクロプロセッサを示すブロック図、第10
図,第11図(A),第11図(B),第12図,第13図は従
来例の各モードにおけるタイミングチャート図である。 100……データ処理手段(マイクロプロセッサ)、102…
…プログラム供給手段(プログラムメモリ)、103,104
……データ情報手段(データメモリ、周辺入出力装
置)、105……第2転送手段(Iバス)、106,107……第
1転送手段(ADバス,Aバス)。FIG. 1 is a block diagram showing the configuration of an embodiment of the present invention, FIG. 2 is a block diagram showing the configuration of the microprocessor of FIG. 1, FIG. 3, FIG. 4 (A), and FIG. 4 (B). ), Fig. 5,
FIGS. 6 and 7 are timing charts in each mode of one embodiment, FIG. 8 is a block diagram of a conventional example, FIG. 9 is a block diagram showing the microprocessor in FIG.
FIG. 11, FIG. 11 (A), FIG. 11 (B), FIG. 12 and FIG. 13 are timing charts in each mode of the conventional example. 100 ... Data processing means (microprocessor), 102 ...
... Program supply means (program memory), 103, 104
... data information means (data memory, peripheral input / output device), 105 ... second transfer means (I bus), 106,107 ... first transfer means (AD bus, A bus).
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭60−33634(JP,A) 特開 昭58−139386(JP,A) 特開 昭55−123739(JP,A) 特開 昭55−160382(JP,A) 特開 昭58−225440(JP,A) 実開 昭57−166241(JP,U) ─────────────────────────────────────────────────── ─── Continuation of front page (56) Reference JP-A-60-33634 (JP, A) JP-A-58-139386 (JP, A) JP-A-55-123739 (JP, A) JP-A-55- 160382 (JP, A) JP 58-225440 (JP, A) Actual development 57-166241 (JP, U)
Claims (1)
プログラムメモリと、前記マイクロプロセッサと前記デ
ータメモリとを接続する第1のバスと、前記マイクロプ
ロセッサと前記プログラムメモリとを接続する第2のバ
スと、前記第1のバスとアドレスラッチを介して前記デ
ータメモリ及び前記プログラムメモリとを共通接続する
第3のバスとを有し、前記マイクロプロセッサには前記
プログラムメモリからリードされたプログラムを記憶す
るキューメモリを内蔵せしめ、前記プログラムメモリに
は前記アドレスラッチを介して転送されたアドレスを初
期値としてこれを歩進するインクリメンタを内蔵せしめ
ることにより、前記データメモリをアクセスしてデータ
のリード/ライトを行なう前記第1のバスと前記インク
リメンタの内容に応じて前記プログラムメモリからリー
ドされるプログラムの転送を行なう前記第2のバスとを
並列に使用し、前記プログラムメモリからリードされた
プログラムは前記キューメモリに記憶するようにしたこ
とを特徴とするマイクロコンピュータシステム。1. A microprocessor, a data memory,
A program memory, a first bus connecting the microprocessor and the data memory, a second bus connecting the microprocessor and the program memory, the first bus and an address latch, and A third bus that connects the data memory and the program memory in common, the microprocessor has a queue memory for storing the program read from the program memory, and the program memory has the address latch By incorporating an incrementer that increments the address transferred via the address as an initial value, the contents of the first bus and the incrementer for accessing the data memory to read / write data are set. According to the program read from the program memory Microcomputer system the second uses a bus in parallel, the read program from the program memory, characterized in that so as to store in the queue memory to perform the transfer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61054245A JPH0797319B2 (en) | 1986-03-11 | 1986-03-11 | Microcomputer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61054245A JPH0797319B2 (en) | 1986-03-11 | 1986-03-11 | Microcomputer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62210543A JPS62210543A (en) | 1987-09-16 |
JPH0797319B2 true JPH0797319B2 (en) | 1995-10-18 |
Family
ID=12965155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61054245A Expired - Lifetime JPH0797319B2 (en) | 1986-03-11 | 1986-03-11 | Microcomputer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0797319B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101919903B1 (en) * | 2012-09-14 | 2018-11-19 | 삼성전자 주식회사 | EMBEDDED MULTIMEDIA CARD(eMMC), HOST FOR CONTROLLING THE eMMC, AND METHODS FOR OPERATING THE eMMC AND THE HOST |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6033634A (en) * | 1983-08-04 | 1985-02-21 | Nec Corp | Data processing device |
-
1986
- 1986-03-11 JP JP61054245A patent/JPH0797319B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS62210543A (en) | 1987-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5930523A (en) | Microcomputer having multiple bus structure coupling CPU to other processing elements | |
US6728845B2 (en) | SRAM controller for parallel processor architecture and method for controlling access to a RAM using read and read/write queues | |
US6317819B1 (en) | Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction | |
US6668317B1 (en) | Microengine for parallel processor architecture | |
US6606704B1 (en) | Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode | |
US20090024804A1 (en) | Memory controllers for processor having multiple programmable units | |
US20070234009A1 (en) | Processor having a dedicated hash unit integrated within | |
JPS6331813B2 (en) | ||
JPS6297036A (en) | Calculator system | |
US6507899B1 (en) | Interface for a memory unit | |
US5924120A (en) | Method and apparatus for maximizing utilization of an internal processor bus in the context of external transactions running at speeds fractionally greater than internal transaction times | |
US6738837B1 (en) | Digital system with split transaction memory access | |
JP4437881B2 (en) | Microcontroller with debug support unit | |
US6487617B1 (en) | Source-destination re-timed cooperative communication bus | |
EP0361497B1 (en) | Program/data memory employed in microcomputer system | |
US5898815A (en) | I/O bus interface recovery counter dependent upon minimum bus clocks to prevent overrun and ratio of execution core clock frequency to system bus clock frequency | |
JPH0797319B2 (en) | Microcomputer system | |
JP2666839B2 (en) | Microcomputer system | |
JPH051504B2 (en) | ||
US5704056A (en) | Cache-data transfer system | |
JP2668987B2 (en) | Data processing device | |
JPS6356732A (en) | Microcomputer system | |
US7594103B1 (en) | Microprocessor and method of processing instructions for responding to interrupt condition | |
JP3039391B2 (en) | Memory system | |
JP2673041B2 (en) | Instruction execution control method |