JP2924004B2 - Instruction code transfer method - Google Patents

Instruction code transfer method

Info

Publication number
JP2924004B2
JP2924004B2 JP27086789A JP27086789A JP2924004B2 JP 2924004 B2 JP2924004 B2 JP 2924004B2 JP 27086789 A JP27086789 A JP 27086789A JP 27086789 A JP27086789 A JP 27086789A JP 2924004 B2 JP2924004 B2 JP 2924004B2
Authority
JP
Japan
Prior art keywords
address
bus
data
memory
cpu
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 - Fee Related
Application number
JP27086789A
Other languages
Japanese (ja)
Other versions
JPH03130830A (en
Inventor
博昭 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP27086789A priority Critical patent/JP2924004B2/en
Publication of JPH03130830A publication Critical patent/JPH03130830A/en
Application granted granted Critical
Publication of JP2924004B2 publication Critical patent/JP2924004B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、CPUとメモリの間の命令コード転送方式に
おいて、特にデータ・バスとは独立なアドレス・バスを
CPU−メモリ間で接続した場合の命令コードの転送方式
に関する。
DETAILED DESCRIPTION OF THE INVENTION [Industrial Application Field] The present invention relates to an instruction code transfer method between a CPU and a memory, and particularly to an address bus independent of a data bus.
The present invention relates to an instruction code transfer method when a connection is made between a CPU and a memory.

〔従来の技術〕[Conventional technology]

情報処理装置の制御装置および演算装置(以下総称し
てCPUと呼ぶ)と、記憶装置(以下メモリと呼ぶ)の間
は、メモリに格納されている命令コードやオペランド・
データをCPU内部へリードしたり、あるいは逆にCPUから
データをメモリにライトするために、オペランド・デー
タを転送するためのデータ・バスだけでなく、メモリの
アドレスを指定するためのアドレス・バスで結ばれてい
る。第3図に、従来の並列データ転送方式を用いたCPU
とメモリ間の構成を示す。CPU301とメモリ302の間は、
双方向性データ・バスD、CPUよりアドレスを通知する
アドレス・バスA、データの転送方向(CPUからメモ
リ:ライト、又はメモリからCPU:リード)、データの転
送期間、転送の開始タイミングを示すタイミング等を示
すための複数の信号線から構成されるCPU301からメモリ
302へ出力される信号線群Cが接続されている。CPU301
がメモリ302内のデータに対してリードするためには、
バス・サイクル中の所定のタイミングで、前記アドレス
・バスA、信号線群Cを駆動してやる必要がある。また
はライトするためには、バス・サイクル中の所定のタイ
ミングで、アドレス・バスA、データ・バスD、信号線
群Cを駆動してやる必要がある。すなわち、プログラム
がメモリ・オペランドのデータをリード参照する命令に
達すると、メモリ・オペランドの格納されているアドレ
スXRに対しアドレス・バスA、および信号線群Cの駆動
によりリード・バス・サイクルMRを発生する。また、プ
ログラムがメモリ・オペランドのデータをライト参照す
る命令に達すると、メモリ・オペランドの格納されてい
るアドレスXWに対しアドレス・バスA、データ・バス
D、および信号線群Cの駆動によりライト・バス・サイ
クルMWを発生する。
Instruction codes and operands stored in the memory are provided between a control device and an arithmetic device (hereinafter, collectively referred to as a CPU) of the information processing device and a storage device (hereinafter, referred to as a memory).
In order to read data into the CPU or write data from the CPU to memory, not only the data bus for transferring operand data, but also the address bus for specifying memory addresses Tied. Fig. 3 shows a CPU using the conventional parallel data transfer method.
And a configuration between the memory and the memory. Between the CPU 301 and the memory 302,
Bidirectional data bus D, address bus A for notifying address from CPU, data transfer direction (CPU to memory: write, or memory to CPU: read), data transfer period, timing indicating transfer start timing From the CPU 301 consisting of multiple signal lines to indicate etc.
A signal line group C output to 302 is connected. CPU301
To read the data in the memory 302,
It is necessary to drive the address bus A and the signal line group C at a predetermined timing during a bus cycle. To write data, it is necessary to drive the address bus A, the data bus D, and the signal line group C at a predetermined timing during a bus cycle. That is, when the program reaches an instruction to read and reference the data of the memory operand, the address bus A and the signal line group C drive the read bus cycle MR for the address XR at which the memory operand is stored. Occur. When the program reaches an instruction to write-reference the data of the memory operand, the address bus A, the data bus D and the signal line group C drive the address XW where the memory operand is stored. Generates a bus cycle MW.

メモリ・オペランドに対するリードおよびライトのな
い場合、CPU301はプログラム中の実行すべき命令を実行
すべく、命令コードの格納されているアドレスM,M+1,M
+2,……と連続したアドレスに対しアドレス・バスA、
および信号線群Cの駆動によりリード・バス・サイクル
F0,F1,F2,……を順次発生する(命令コードのリードの
ためのリード・バス・サイクルをフェッチ・バス・サイ
クルと呼ぶ)。直前のフェッチ・バス・サイクルに対し
て、メモリ・アドレスが連続的でないのは、CPU301が分
岐命令を実行した場合だけである。しかしながら、これ
ら分岐命令の出現頻度は、CPU301のアーキテクチャや実
行するソフトウェアの性質により左右されるが、連続し
たアドレスに対して命令コードのアクセスが行われる確
率がかなり高いと言える。一般に、バス・サイクルの発
生確率は、フェッチ>リード>ライトの順であることが
よく知られている。
When there is no read or write for the memory operand, the CPU 301 executes the instruction to be executed in the program, so that the addresses M, M + 1, M where the instruction codes are stored are executed.
+2,... Address bus A,
And read bus cycle by driving signal line group C
F0, F1, F2,... Are sequentially generated (a read bus cycle for reading an instruction code is called a fetch bus cycle). The memory address is not continuous with respect to the immediately preceding fetch bus cycle only when CPU 301 executes a branch instruction. However, the frequency of occurrence of these branch instructions depends on the architecture of the CPU 301 and the nature of the software to be executed, but it can be said that the probability that an instruction code is accessed for consecutive addresses is considerably high. In general, it is well known that the occurrence probability of a bus cycle is in the order of fetch>read> write.

〔発明が解決しようとする課題〕[Problems to be solved by the invention]

近年マイクロプロセッサを含めたCPUの発生するバス
・サイクルのサイクル・タイムは、動作周波数の向上に
より安価なメモリ・デバイスのアクセス・タイムと比較
して高速になる傾向が続いている。情報処理装置として
高速なCPU自体の性能を余すところなく引き出すため
に、1回のバス・サイクルで伝送できるメモリ・オペラ
ンドの情報量(ビット数)の増加が必要となってくる。
これを実現させるためには、CPU−メモリ間のデータ・
バスのビット幅を2のべき乗で増加させるために、デー
タ・バス接続による信号線や、端子の増加を必要とし、
装置規模の増大、コスト・アップに通じてしまう欠点が
あった。
In recent years, the cycle time of a bus cycle generated by a CPU including a microprocessor tends to be faster than the access time of an inexpensive memory device due to an increase in the operating frequency. In order to fully exploit the performance of a high-speed CPU itself as an information processing device, it is necessary to increase the amount of information (the number of bits) of a memory operand that can be transmitted in one bus cycle.
In order to realize this, data between CPU and memory
In order to increase the bit width of the bus by a power of 2, it is necessary to increase the number of signal lines and terminals by the data bus connection,
There is a drawback that leads to an increase in apparatus scale and cost.

本発明の目的は、信号線や端子の増加をすることなく
1回のバス・サイクルで転送できる命令コードを増加す
ることが可能な命令コード転送方式を提供することにあ
る。
An object of the present invention is to provide an instruction code transfer method capable of increasing the number of instruction codes that can be transferred in one bus cycle without increasing the number of signal lines and terminals.

〔課題を解決するための手段〕[Means for solving the problem]

本発明は、アドレス・バス、およびデータ・バスで接
続されたメモリからCPUに命令コードを転送する方式に
おいて、前記CPU内にあって、分岐命令を実行すること
を検知する手段、前記検知手段による検知状態に基づ
き、分岐命令直後の命令コードを転送すること、および
分岐命令直後以外の命令コードを転送することを前記メ
モリに通知する手段、前記アドレス・バス上のデータを
内部データ・バスに接続する手段、前記メモリ内にあっ
て、前記データ・バスに選択的に接続される第一のメモ
リ・バンク、前記データ・バスあるいは前記アドレス・
バスに選択的に接続される第二のメモリ・バンク、前記
通知手段によって通知された状態、および前記アドレス
・バスを介して前記CPUから通知されるアドレス情報に
従って、前記2つのメモリ・バンクに対するアドレス情
報を生成する手段で構成されることを特徴とする。
The present invention relates to a method for transferring an instruction code from a memory connected by an address bus and a data bus to a CPU, wherein the means for detecting execution of a branch instruction in the CPU is provided by the detecting means. Means for notifying the memory that the instruction code immediately after the branch instruction is to be transferred and transferring the instruction code other than immediately after the branch instruction based on the detection state, and connecting the data on the address bus to the internal data bus A first memory bank in the memory, selectively connected to the data bus, the data bus or the address bus.
Addresses for the two memory banks according to a second memory bank selectively connected to a bus, a state notified by the notifying unit, and address information notified from the CPU via the address bus. It is characterized by comprising information generating means.

〔実施例〕〔Example〕

以下図面を参照して、本発明の構成および動作を詳細
に説明する。
Hereinafter, the configuration and operation of the present invention will be described in detail with reference to the drawings.

第1図は、本発明の一実施例を説明するためのブロッ
ク図である。同図に示すように、16ビット処理のCPU10
1、命令コードおよびオペランド・データを格納し偶数
アドレス・バンク103、および奇数アドレス・バンク104
を持つメモリ102、前記CPU101とメモリ102の間を接続す
る16ビットの双方向性データ・バスD15−D0、24ビット
の双方向性アドレス・バスA23−A0、データの転送方向
を示すR/W(−)信号、データの転送期間を示す有効信
号DS(−)、アドレス・バスA23−A0の使用状態を示す
状態信号ADREN(−)、CPU101が分岐動作直後の命令フ
ェッチを行うことを示す状態信号FLASH(−)が接続さ
れている。さらにメモリ102の内部において、偶数アド
レス・バンク103は、16ビットのデータ・バッファ105を
介してデータ・バスD15−D0と接続される。また、奇数
アドレス・バンク104は、16ビットのデータ・バッファ1
06を介してデータ・バスD15−D0、あるいは16ビットの
データ・バッファ107を介してアドレス・バスA23−A0
下位16ビット(A15−A0)と接続される。アドレス生成
器108は、偶数アドレス・バンク103、および奇数アドレ
ス104に対してそれぞれのバンクを構成しているメモリ
素子に入力されるアドレスAm(22ビット)を生成する演
算器(+1または保持)、制御回路109は、データ・バ
ッファ105,106,107およびアドレス生成器108を制御する
回路である。またCPU101の内部には、24ビットのアドレ
ス・バッファ111、16ビットのデータ・ラッチ112,113を
持ち、データ・ラッチ112を介してデータ・バスD15−D0
と32ビットの内部データ・バスの下位16ビットと、デー
タ・ラッチ113を介してアドレス・バスA15−A0と32ビッ
トの内部データ・バスの上位16ビットと接続される。ア
ドレス・バスA23−A0に出力されるメモリ・アドレス
は、アドレス・バッファ111を介して内部アドレス・バ
ス上のデータが出力される。命令コード・キュー121
は、32ビットの内部データ・バスに接続され、データ・
バスD15−D0、およびアドレス・バスの下位1ビットA15
−A0からリードされる16ビットまたは32ビット幅の命令
コードを格納する複数の32ビット幅のレジスタから構成
されるレジスタ群である。命令コード・キュー121へ
は、内部データ・バスの上位/下位16ビットを上位ある
いは下位の16ビットへライトすることと、内部データ・
バス上の32ビットをまとめてライトすることができる。
第1図では示していないが、分岐命令検出器122は命令
コード・キュー121から取り出される32ビット単位の命
令コードを解釈する命令デコーダの一部として位置付け
られるものであり、CPU101がジャンプ,コール,リター
ン等の分岐命令を実行しようとすることを検知する回路
である。制御回路123は、データ・ラッチ112,113、およ
びアドレス・バッファ111を制御するとともに、CPU101
の外部に対してADREN(−)、FLASH(−)信号を発生さ
せる回路である。
FIG. 1 is a block diagram for explaining an embodiment of the present invention. As shown in FIG.
1. Stores instruction code and operand data and stores even address bank 103 and odd address bank 104
Memory 102 with the CPU101 and 16 bits that connects the memory 102 bidirectional data bus D 15 -D 0, 24-bit bi-directional address bus A 23 -A 0, the data transfer direction shows R / W (-) signal, valid signal indicating the transfer period of data DS (-), the address bus a 23-state signal indicating the state of use of -A 0 ADREN (-), CPU101 instruction fetch immediately after the branch operation Is connected. In still within memory 102, even address bank 103 is connected to data bus D 15 -D 0 through 16 bits of the data buffer 105. The odd-numbered address bank 104 has a 16-bit data buffer 1
Through 06 are connected to the data bus D 15 -D 0 or via the 16-bit data buffer 107 address bus A 23 lower 16 bits of -A 0, (A 15 -A 0 ). The address generator 108 generates an address Am (22 bits) to be input to the memory element constituting each bank for the even address bank 103 and the odd address 104 (+1 or holding). The control circuit 109 is a circuit for controlling the data buffers 105, 106, 107 and the address generator. The CPU 101 has a 24-bit address buffer 111 and 16-bit data latches 112 and 113, and a data bus D 15 -D 0 via the data latch 112.
And the lower 16 bits of the 32-bit internal data bus, the address bus A 15 -A 0 via the data latch 113 and the upper 16 bits of the 32-bit internal data bus. As for the memory address output to the address bus A 23 -A 0 , data on the internal address bus is output via the address buffer 111. Instruction code queue 121
Is connected to the 32-bit internal data bus
Bus D 15 -D 0, and lower address bus bit A 15
-A A register group including a plurality of 32-bit width registers for storing a 16-bit or 32-bit width instruction code read from 0 . The instruction code queue 121 writes the upper / lower 16 bits of the internal data bus to the upper or lower 16 bits, and
32 bits on the bus can be written together.
Although not shown in FIG. 1, the branch instruction detector 122 is positioned as a part of an instruction decoder that interprets instruction codes in 32-bit units fetched from the instruction code queue 121. This circuit detects an attempt to execute a branch instruction such as return. The control circuit 123 controls the data latches 112 and 113 and the address buffer 111, and controls the CPU 101
Is a circuit for generating ADREN (-) and FLASH (-) signals to the outside.

次に、CPU101からメモリ102に対するアクセス動作に
ついて説明する。まず、オペランド・データのリード/
ライト・アクセス動作について説明する。CPU101からメ
モリ102に対してリードまたはライト・アクセスが行わ
れること、すなわちバス・サイクルが発生することは、
DS(−)信号が発生することでタイミングが示される。
同時にバス・サイクルに同期して、オペランド・アドレ
スがアドレス・バスA23−A0に出力される。DS(−)信
号が発生する時、R/W(−)信号が“0"の場合はCPU101
からメモリ102へのライト、“1"の場合はメモリ102から
CPU101へのリード・アクセスであることが示される。リ
ード・アクセスでは、DS(−)信号がアクティブの期間
(“0")、アドレス・バスA23−A0で指定されたメモリ1
02内のデータがデータ・バスD15−D0に出力され、DS
(−)信号がアクティブ(“0")からインアクティブ
(“1")に戻る時点でCPU101内部に必要なデータが取り
込まれる。一方、ライト・アクセスでは、バス・サイク
ルに同期して、CPU101からオペランド・データがデータ
・バスD15−D0に出力される。DS(−)信号がアクティ
ブ(“0")からインアクティブ(“1")に戻る時点でメ
モリ102のアドレス・バスA23−A0で指定されたアドレス
にデータ・バスD15−D0上のデータが書き込まれる。
Next, an access operation from the CPU 101 to the memory 102 will be described. First, read operand data /
The write access operation will be described. The read or write access from the CPU 101 to the memory 102, that is, the occurrence of a bus cycle,
The generation of the DS (-) signal indicates the timing.
At the same time in synchronism with the bus cycle, the operand address is output to the address bus A 23 -A 0. When the DS (-) signal is generated and the R / W (-) signal is "0", the CPU 101
Write to memory 102 from memory 102, if "1", from memory 102
This indicates a read access to the CPU 101. In the read access, DS (-) period signal is active ( "0"), the memory 1, which is specified by the address bus A 23 -A 0
02 is output on data bus D 15 -D 0
When the (-) signal returns from active ("0") to inactive ("1"), necessary data is taken into the CPU 101. On the other hand, in the write access, in synchronism with the bus cycle, operand data is output to the data bus D 15 -D 0 from CPU 101. DS (-) signal is active ( "0") from the inactive ( "1") specified by the address bus A 23 -A 0 of the memory 102 at the time of return to the address data to the bus D 15 -D 0 above Is written.

偶数アドレス・バンク103およびデータ・バッファ105
のペアは、アドレス・バスA23−A0のうちA1が“0"の時
に、奇数アドレス・バンク104およびデータ・バッファ1
06のペアは、アドレス・バスA23−A0のうちA1が“1"の
時に選択される。これらの動作の様子を第5図に示す。
第5図は、メモリ102におけるリード・データならびに
アドレスの流れを示した図面である。第5図(a)はア
クセス時にA1が“0"である時の流れを示し、データ・バ
ッファ105の選択信号LWENがアクティブになることで、
偶数アドレス・バンク103内のデータがデータ・バッフ
ァ105を介してデータ・バスD15−D0にリードされる。ま
た、第5図(b)はアクセス時にA1が“1"である時の流
れを示し、データ・バッファ106の選択信号HWENがアク
ティブになることで、奇数アドレス・バンク104内のデ
ータがデータ・バッファ106を介してデータ・バスD15
D0にリードされる。ライト・アクセス時も同様なデータ
の流れが生じる。
Even address bank 103 and data buffer 105
The pair when A 1 of the address bus A 23 -A 0 is "0", the odd bank address 104 and the data buffer 1
06 of the pair, A 1 of the address bus A 23 -A 0 is selected when the "1". The state of these operations is shown in FIG.
FIG. 5 is a diagram showing the flow of read data and addresses in the memory 102. 5 (a) shows a flow when A 1 is "0" at the time of access, by selected signal LWEN the data buffer 105 is activated,
Data in the even address bank 103 is read to the data bus D 15 -D 0 via the data buffer 105. Further, FIG. 5 (b) shows the flow of when A 1 is "1" at the time of access, by selected signal HWEN the data buffer 106 is activated, data of the odd-numbered bank address 104 is data Data bus D 15 − via buffer 106
It is lead to D 0. A similar data flow occurs during a write access.

次に命令コードのフェッチ・アクセス動作について説
明する。フェッチ・アクセスでは常にメモリ102からCPU
101へのデータ転送が行われるため、基本的な動作はリ
ード・アクセスと同様である(R/W(−)信号は常にイ
ンアクティブ(“1")である)。ただし、バス・サイク
ルに同期してADREN(−)信号とFLASH(−)信号が発生
する場合がある(前記リード・アクセスおよびライト・
アクセスでは、これらの信号はインアクティブのままで
ある)。CPU101がジャンプ,コールあるいはリターン等
の分岐命令の実行時、分岐先アドレスの命令コードをフ
ェッチする際に発生するバス・サイクルを説明する。分
岐動作1回に対して1回だけ発生するFLASH(−)信号
がアクティブ(“0")になると、フェッチ・アクセスの
ためのバス・サイクルでは、データおよびアドレスの流
れは第5図(a)及び(b)に示すようなリード・アク
セスのためのバス・サイクルと同様になる。すなわち、
この時ADREN(−)信号がインアクティブ(“1")であ
り、アドレス・バスA23−A0にCPU101からメモリ102に対
して24ビット幅のアドレスAmが出力される。この時にア
ドレス・バスA23−A0の上位22ビット(A23−A2)に出力
されているアドレスAmが、アドレス生成器108の内部に
保持される。実際の偶数アドレス・バンク103,奇数アド
レス・バンク104のアクセスにもアドレス・バンクA23
A2上のアドレスAmが用いられる。フェッチ・アクセスの
ためのバス・サイクルが終了する際、引続くフェッチ・
アクセスに備えて、アドレス生成器108に保持されたア
ドレスAmが1インクリメントされる。次のフェッチ・ア
クセスがあった際には、アドレス生成器108で更新され
たアドレスAm+1が、偶数アドレス・バンク103,奇数アド
レス・バンク104のアクセスに用いられる。
Next, the fetch / access operation of the instruction code will be described. For fetch access always from memory 102 to CPU
Since the data transfer to 101 is performed, the basic operation is the same as the read access (the R / W (-) signal is always inactive ("1")). However, the ADREN (-) signal and the FLASH (-) signal may be generated in synchronization with the bus cycle (the read access and the write
On access, these signals remain inactive). A bus cycle that occurs when the CPU 101 fetches the instruction code at the branch destination address when executing a branch instruction such as a jump, call, or return will be described. When the FLASH (-) signal generated only once for one branch operation becomes active ("0"), the data and address flows in the bus cycle for fetch access are as shown in FIG. And a bus cycle for read access as shown in FIG. That is,
At this time ADREN (-) signal is inactive ( "1"), the address A m of 24-bit width from the CPU101 to the memory 102 to the address bus A 23 -A 0 is output. Address A m that is output at this time in the upper 22 bits of the address bus A 23 -A 0 (A 23 -A 2) is held in the internal address generator 108. Address bank A 23 − for actual access to even address bank 103 and odd address bank 104
Address A m on A 2 is used. At the end of the bus cycle for a fetch access,
In preparation for access, the address A m stored in the address generator 108 is incremented by one. When the next fetch access occurs, the address Am + 1 updated by the address generator 108 is used for accessing the even address bank 103 and the odd address bank 104.

次に、分岐命令の実行時のフェッチ・サイクルが終了
して連続したアドレスのアクセスに対応するバス・サイ
クルについて説明する。この時ADREN(−)信号はアク
ティブ(“0")となり、アドレス・バスA23−A0の下位1
6ビット(A15−A0)にはメモリ102からCPU101に対して1
6ビット幅のデータが出力されることになる。この時、
第5図(c)に示すようにデータ・バッファ105の選択
信号LWENがアクティブになることで、偶数アドレス・バ
ンク103内のデータがデータ・バッファ105を介してデー
タ・バスD15−D0にリードされ、同時にデータ・バッフ
ァ107の選択信号AWENがアクティブになることで、奇数
アドレス・バンク104内のデータがデータ・バッファ107
を介してアドレス・バスA15−A0にリードされる。この
場合、偶数アドレス・バンク103、および奇数アドレス
・バンク104に対するアドレスは、アドレス・バスA23
A0を介さずに、後述するアドレス生成器108によりメモ
リ102の内部で生成される。
Next, a description will be given of a bus cycle corresponding to an access to a continuous address after a fetch cycle at the time of execution of a branch instruction. At this time, ADREN (-) signal is active ( "0"), and the lower one of the address bus A 23 -A 0
6 bits (A 15 -A 0 ) are 1 from memory 102 to CPU 101
6-bit data is output. At this time,
When the selection signal LWEN of the data buffer 105 is activated as shown in FIG. 5C, the data in the even address bank 103 is transferred to the data bus D 15 -D 0 via the data buffer 105. When data is read and the selection signal AWEN of the data buffer 107 is activated at the same time, the data in the odd address
Via address bus A 15 -A 0 . In this case, the addresses for the even-numbered address bank 103 and the odd-numbered address bank 104 are assigned to the address bus A 23
It not through the A 0, is generated inside the memory 102 by the address generator 108 to be described later.

連続したフェッチ・アクセスでは、下位ワード・デー
タ(16ビット幅)を偶数アドレス・バンク103からデー
タ・バスD15−D0へ、上位ワード・データ(16ビット
幅)を奇数アドレス・バンク104からアドレス・バスA15
−A0へ出力される。すなわち、分岐命令直後のフェッチ
・アクセスは常に2ワード(32ビット)、あるいは別の
表現で4バイト単位に行われ、しかも2ワードの境界
(アドレスの下位2ビットが00b)をアドレスとする単
位でアクセスする必要がある。
The sequential fetch access, address the lower word data (16 bits wide) from the even address bank 103 to the data bus D 15 -D 0, the upper word data (16 bits wide) from the odd address bank 104・ Bus A 15
It is output to the -A 0. In other words, the fetch access immediately after the branch instruction is always performed in units of 2 words (32 bits) or 4 bytes in another expression, and is performed in units of a boundary between two words (the lower 2 bits of the address are 00b). Need access.

したがって、分岐命令直後のフェッチ・アクセスが偶
数ワード(アドレス・バスA23−A0のビット1すなわちA
1が“0")の場合、次に必要な命令コードは2ワードの
境界に無い(奇数ワード)のため、次のフェッチ・アク
セスのためにアドレス生成器108に一時保持された22ビ
ット・アドレスAmを1インクリメントしない制御が必要
である。
Therefore, the fetch access immediately after the branch instruction is an even word (bit 1 of address bus A 23 -A 0 , that is, A 1
If 1 is "0"), the next necessary instruction code is not on the boundary of two words (odd word), so the 22-bit address temporarily held in the address generator 108 for the next fetch access it is necessary to control not incremented by one a m.

このように連続したフェッチ・アクセスにおいて、ア
ドレス・バス経由でデータを転送すれば、データ・バス
と合わせて従来のデータ・バスのビット幅の少なくとも
2倍のデータ転送を1回のバス・サイクルで行うことが
でき、すなわち2倍の転送レートを得ることができる。
In such a continuous fetch access, if data is transferred via the address bus, data transfer at least twice the bit width of the conventional data bus together with the data bus can be performed in one bus cycle. Can be performed, that is, a double transfer rate can be obtained.

次に、具体的な各部分の構成例について説明する。第
4図は、アドレス生成器108の具体的な構成を示す図面
である。アドレス・マルチプレクサ(AMPX)131は22ビ
ットのマルチプレクサであり、選択信号ASELによりアド
レス・レジスタ132の出力、またはアドレス・バスの下
位22ビットA23−A2を選択的に出力する(ASELが“1"な
らばA23−A0を、“0"ならばアドレス・レジスタ132の出
力が選択される)。アドレス・レジスタ132は22ビット
のレジスタであり、ストローブ信号ASTBによりアドレス
・バス下位22ビットA23−A2を、ストローブ信号AINCに
より本アドレス・レジスタ132の値を1インクリメント
する22ビット幅のインクリメンタ(INC)133の出力をラ
ッチする。すなわち、ストローブ信号ASTBの発生により
A23−A2の値に初期化、ストローブ信号AINCの発生によ
り内容を1インクリメントすることができる。
Next, a specific configuration example of each part will be described. FIG. 4 is a diagram showing a specific configuration of the address generator 108. Address multiplexer (AMPX) 131 is a 22-bit multiplexer selectively outputs the lower 22 bits A 23 -A 2 output or address bus, the address register 132 by the selection signal ASEL (ASEL is "1 "If the a 23 -A 0," 0 "if the output of the address register 132 is selected). Address register 132 is a 22-bit register, the address bus low-order 22 bits A 23 -A 2 by the strobe signal ASTB, incrementer 22-bit width increments the value of the address register 132 by the strobe signal AINC (INC) Latch the output of 133. That is, by the generation of the strobe signal ASTB,
Initialized to a value of A 23 -A 2, it can be incremented by one content by the generation of the strobe signal AINC.

第6図は、制御回路109のうちアドレス生成器108の制
御信号に関する部分の具体的な構成を示す図面である。
選択信号ASELは、ADREN信号がそのまま用いられる。2
入力ANDゲート144は、分岐動作直後のフェッチ・アクセ
スのためバス・サイクルが発生したことを検知し、スト
ローブ信号ASTBを発生する。ストローブ信号AINCは、2
入力ORゲート147の出力を用いているが、連続したフェ
ッチ・アクセスのためのバス・サイクルが発生したこと
を2入力ANDゲート145の出力で、また分岐直後のフェッ
チ・サイクルのためのバス・サイクルが奇数ワードに対
して行われたことを2入力ANDゲート146の出力で検知し
ている。立下り検出器141は分岐動作直後のフェッチ・
アクセスのためのバス・サイクルが終了したことを検知
し、シリーズに接続されているパルス発生器142によ
り、1クロック幅のパルスが発生する。ディレイ素子14
3は、立下り検出器141、およびパルス発生器142によっ
て分岐動作直後のフェッチ・アクセスのためのバス・サ
イクルが終了した時に発生する1クロック幅のパルスが
発生した時に、このバス・サイクルが奇数ワードに対す
るアクセスであったことの情報(A1)が有効であるよう
に保持するために用いている。
FIG. 6 is a diagram showing a specific configuration of a part related to a control signal of the address generator 108 in the control circuit 109.
As the selection signal ASEL, the ADREN signal is used as it is. 2
Input AND gate 144 detects that a bus cycle has occurred for fetch access immediately after the branch operation, and generates strobe signal ASTB. The strobe signal AINC is 2
Although the output of the input OR gate 147 is used, the output of the two-input AND gate 145 indicates that a bus cycle for continuous fetch access has occurred, and the bus cycle for the fetch cycle immediately after branching. Is detected by the output of the two-input AND gate 146. The falling detector 141 detects the fetch
The end of the bus cycle for access is detected, and the pulse generator 142 connected to the series generates a pulse of one clock width. Delay element 14
3 is an odd-numbered bus cycle when a one-clock-width pulse is generated by the falling detector 141 and the pulse generator 142 when the bus cycle for fetch access immediately after the branch operation is completed. It is used to hold that information (A 1 ) indicating that the access was to a word is valid.

ここでは省略したが、データ・バッファ105,106,107
の制御信号LWEN,HWEN,AWENは、フェッチ・アクセスのた
めのバス・サイクルに関しては、以下の論理式を満足す
る組合せ回路によって実現される。
Although omitted here, the data buffers 105, 106, 107
The control signals LWEN, HWEN, and AWEN are realized by a combinational circuit that satisfies the following logical expression with respect to a bus cycle for fetch access.

LWEN=DS.and((not(ADREN).and.not(A1)).or.ADREN); HWEN=DS.and.(not(ADREN).and.A1); AWEN=DS.and.(ADREN); さらに、CPU101側の制御回路123のフェッチ・アクセ
スのためのバス・サイクルの発生制御について示す。第
7図は、制御回路123のフェッチ・アクセスのためのバ
ス・サイクル制御動作を示すフロー・チャートであり、
制御の結果発生される信号ADREN,FLASH,A1の状態、およ
び命令コード・キュー121への命令コードの格納方法を
図面下部に示している。同図において、リメインは連続
したフェッチ・アクセスの準備が完了していないこと
(直前のフェッチ・アクセスのためのバス・サイクルが
偶数ワードに対するものであったこと)を記憶しておく
フラグであり、連続フェッチ・アクセスのためのバス・
サイクル終了時に、内部データ・バスの上位16ビットに
出力されている奇数ワードの命令コードを、命令コード
・キュー121の上位16ビットにのみライトすることを制
御するために用いている。また、図7において図面最下
部に示している命令コードの格納方法において、点々で
示してあるのはデータ・バスD15−D0を経由して転送さ
れるワード単位の命令コードを、斜線で示してあるのは
アドレス・バスA15−ADを経由して転送されるワード単
位の命令コードを意味する。制御の流れは、リメインが
セットされているか、分岐命令直後のフェッチ・アクセ
スであるか、分岐命令直後のフェッチ・アクセスである
場合は偶数ワードに対するものであるかどうかで動作が
分岐する。
LWEN = DS.and ((not (ADREN ) .and.not (A 1)) or.ADREN.);. HWEN = DS.and (not (ADREN) .and.A 1); AWEN = DS.and. (ADREN) Further, generation control of a bus cycle for fetch access of the control circuit 123 of the CPU 101 will be described. FIG. 7 is a flow chart showing a bus cycle control operation for fetch access of the control circuit 123;
Control of results generated by the signal ADREN, shows FLASH, the state of A 1, and a method for storing the instruction code to the instruction code queue 121 in the drawings below. In the figure, a flag is a flag for storing that preparation for continuous fetch access is not completed (the bus cycle for the immediately preceding fetch access was for an even word). Bus for continuous fetch access
At the end of the cycle, it is used to control the writing of the odd word instruction code output to the upper 16 bits of the internal data bus to only the upper 16 bits of the instruction code queue 121. Further, in the method of storing the instruction codes are shown in the drawings the bottom in FIG. 7, the instruction code word unit of is shown by dots are transferred via the data bus D 15 -D 0, in the shaded It illustrates the relationship between the mean instruction code word unit that is transferred via the address bus a 15 -A D. The operation branches depending on whether the control is set, whether the fetch access is immediately after the branch instruction, or if the fetch access is immediately after the branch instruction, whether the operation is for an even word.

従来連続した分岐命令を実行するまでに8回(8ワー
ド,16バイト)のフェッチ・アクセスのためのバス・サ
イクルを必要とするような命令実行シーケンスにおい
て、本発明を用いることで5回のバス・サイクルで実現
することができ、バス・サイクルの数は約63%へ低減で
きる。さらに、16ワード分のフェッチ・アクセスでは9
回のバス・サイクルで約56%へ低減、32ワード分のフェ
ッチ・アクセスでは17回のバス・サイクルで約53%へ低
減と、分岐命令の出願頻度が低くなればなるほど、従来
に対してバス・サイクルの数を最小1/2(50%)に低減
することができる。
In the conventional instruction execution sequence in which a bus cycle for fetch access of eight times (8 words, 16 bytes) is required until a continuous branch instruction is executed, the present invention uses five buses. • Can be implemented in cycles, reducing the number of bus cycles to about 63%. Furthermore, 9 for fetch access for 16 words
Reduced to about 56% in one bus cycle, and reduced to about 53% in 17 bus cycles for fetch access for 32 words. -The number of cycles can be reduced to a minimum of 1/2 (50%).

次に、本発明の他の実施例について説明する。第2図
に本実施例の構成を示す。本実施例ではCPU201は、命令
コード専用のデータ・バスID、アドレス・バスIA、制御
信号群IC、およびオペランド・データ専用のデータ・バ
スDD,アドレス・バスDA,制御信号群DCを持ち、それぞれ
命令コード専用メモリ203とオペランド・データ専用メ
モリ202と接続されることが特徴である。
Next, another embodiment of the present invention will be described. FIG. 2 shows the configuration of this embodiment. In this embodiment, the CPU 201 has a data bus ID dedicated to instruction codes, an address bus IA, a control signal group IC, and a data bus DD dedicated to operand data, an address bus DA, and a control signal group DC. It is characterized in that it is connected to the instruction code dedicated memory 203 and the operand data dedicated memory 202.

本構成の場合、命令コード専用メモリ203へ接続され
るアドレス・バスIAは、オペランド・データのアクセス
のためのアドレスが出力されることが全く無いため、ア
ドレス・バスIAを命令コードの転送のために使用できる
可能性は、飛躍的に向上する。
In the case of this configuration, since the address bus IA connected to the instruction code dedicated memory 203 does not output any address for accessing the operand data, the address bus IA is used to transfer the instruction code. The possibility of using this for the purpose is dramatically improved.

〔発明の効果〕〔The invention's effect〕

以上説明したように、本発明を用い命令コードをアク
セスする際に、CPUとメモリの間に接続されたアドレス
・バスを補助的なデータ・バスとして用いることで、少
ない端子数、配線量のままで、単位時間あたり従来より
も最大2倍の命令コードをメモリからCPUへ転送するこ
とができる。
As described above, when accessing the instruction code using the present invention, by using the address bus connected between the CPU and the memory as an auxiliary data bus, the number of terminals and the wiring amount can be reduced. Thus, it is possible to transfer a maximum of twice the number of instruction codes per unit time from the memory to the CPU as compared with the related art.

【図面の簡単な説明】[Brief description of the drawings]

第1図は本発明の第1の実施例を説明するための構成
図、第2図は本発明の他の実施例を説明するための構成
図、第3図は従来の命令コード転送方式の構成を示す
図、第4図は第1の実施例におけるアドレス生成器の構
成を具体的に示す図、第5図は第1の実施例におけるデ
ータおよびアドレスの流れを示す図、第6図は第1の実
施例におけるメモリ側の制御回路の構成を具体的に示す
図、第7図は第1の実施例におけるCPU側の制御回路の
動作の流れを示す図である。 101,201,301……CPU、102,302……メモリ、202……オペ
ランド・データ専用メモリ、203……命令コード専用メ
モリ、103……偶数アドレス・バンク、104……奇数アド
レス・バンク、105,106,107……データ・バッファ、108
……アドレス生成器、109……制御回路、111……アドレ
ス・バッファ、112,113……データ・ラッチ、121……命
令コード・キュー、122……分岐命令検出器、123……制
御回路、131……アドレス・マルチプレクサ、132……ア
ドレス・ラッチ、133……インクリメンタ、141……立下
り検出器、142……パルス発生器、143……ディレイ素
子、144,145,146……2入力ANDゲート、147……2入力O
Rゲート。
FIG. 1 is a block diagram for explaining a first embodiment of the present invention, FIG. 2 is a block diagram for explaining another embodiment of the present invention, and FIG. 3 is a diagram showing a conventional instruction code transfer system. FIG. 4 is a diagram specifically showing the configuration of the address generator in the first embodiment, FIG. 5 is a diagram showing the flow of data and addresses in the first embodiment, and FIG. FIG. 7 is a diagram specifically showing the configuration of the control circuit on the memory side in the first embodiment, and FIG. 7 is a diagram showing the flow of operation of the control circuit on the CPU side in the first embodiment. 101, 201, 301 ... CPU, 102, 302 ... memory, 202 ... operand data dedicated memory, 203 ... instruction code dedicated memory, 103 ... even address bank, 104 ... odd address bank, 105, 106, 107 ... data buffer, 108
... Address generator, 109 control circuit, 111 address buffer, 112, 113 data latch, 121 instruction code queue, 122 branch instruction detector, 123 control circuit, 131 ... Address multiplexer, 132 ... Address latch, 133 ... Incrementer, 141 ... Fall detector, 142 ... Pulse generator, 143 ... Delay element, 144,145,146 ... 2-input AND gate, 147 ... 2 inputs O
R gate.

フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 9/38 G06F 13/16 G06F 12/02 Continuation of the front page (58) Field surveyed (Int.Cl. 6 , DB name) G06F 9/38 G06F 13/16 G06F 12/02

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】CPUとアドレス・バスおよびデータ・バス
で接続されたメモリから前記CPUに命令コードを転送す
る方式において、前記CPU内は、分岐命令を検知する手
段と、前記検知手段により分岐命令を検知した時はその
分岐命令直後のアドレス情報を前記アドレスバスに供給
する手段と、分岐命令直後以外の時は前記アドレスバス
にアドレス情報を供給することなく前記アドレスバス及
び前記CPUの状態の情報を前記メモリに通知する手段
と、前記分岐命令直後以外の時前記アドレス・バス上の
データを内部データ・バスに接続する手段と、前記メモ
リ内は、前記データ・バスに接続されるメモリ手段と、
前記CPUからの前記通知手段によって通知された情報に
より前記アドレス・バスを介して前記CPUから通知され
るアドレス情報又は、そのアドレス情報に従って生成し
た新たなアドレス情報を前記メモリ手段に供給するアド
レス生成手段とを有し、分岐命令直後には前記アドレス
・バス上のアドレス情報をそのまま前記メモリ手段に供
給しそれに対応した前記メモリ手段からのデータを前記
データ・バスのみを経由して前記CPUに転送し、分岐命
令直後以外の場合には前記アドレス生成手段によって生
成されたアドレス情報を前記メモリ手段に供給しそれに
対応した前記メモリ手段からのデータを前記データ・バ
スおよび前記アドレス・バスの双方を経由して前記CPU
に転送することを特徴とする命令コード転送方式。
In a system for transferring an instruction code from a memory connected to a CPU via an address bus and a data bus to the CPU, the CPU includes means for detecting a branch instruction, and a branch instruction detected by the detection means. Means for supplying address information immediately after the branch instruction to the address bus when detecting the address bus, and information on the state of the address bus and the CPU without supplying address information to the address bus other than immediately after the branch instruction. Means for notifying the memory of the data, a means for connecting data on the address bus to an internal data bus other than immediately after the branch instruction, and a memory means connected to the data bus in the memory. ,
Address generation means for supplying address information notified from the CPU via the address bus by the information notified by the notification means from the CPU or new address information generated according to the address information to the memory means. Immediately after the branch instruction, the address information on the address bus is supplied to the memory means as it is, and the corresponding data from the memory means is transferred to the CPU via the data bus only. In the case other than immediately after the branch instruction, the address information generated by the address generating means is supplied to the memory means, and the corresponding data from the memory means is transmitted via both the data bus and the address bus. The CPU
An instruction code transfer method, wherein the instruction code is transferred to a computer.
JP27086789A 1989-10-17 1989-10-17 Instruction code transfer method Expired - Fee Related JP2924004B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27086789A JP2924004B2 (en) 1989-10-17 1989-10-17 Instruction code transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27086789A JP2924004B2 (en) 1989-10-17 1989-10-17 Instruction code transfer method

Publications (2)

Publication Number Publication Date
JPH03130830A JPH03130830A (en) 1991-06-04
JP2924004B2 true JP2924004B2 (en) 1999-07-26

Family

ID=17492076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27086789A Expired - Fee Related JP2924004B2 (en) 1989-10-17 1989-10-17 Instruction code transfer method

Country Status (1)

Country Link
JP (1) JP2924004B2 (en)

Also Published As

Publication number Publication date
JPH03130830A (en) 1991-06-04

Similar Documents

Publication Publication Date Title
US9032185B2 (en) Active memory command engine and method
EP1324190B1 (en) Data processing system having a read-modify-write unit
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
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
KR100210205B1 (en) Apparatus and method for providing a stall cache
EP0497485A2 (en) Computer for implementing two-operand instructions
JPH04188229A (en) Floating-point arithmetic processing unit
JPS63193239A (en) Instruction sequence monitoring apparatus and method
JP2924004B2 (en) Instruction code transfer method
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
EP0374598B1 (en) Control store addressing from multiple sources
KR920002573B1 (en) Data processor
US4737908A (en) Buffer memory control system
US5321842A (en) Three-state driver with feedback-controlled switching
KR100204616B1 (en) Information processing system
JP3476314B2 (en) Microprocessor
JP2511063B2 (en) Pipeline control method
JPH0736166B2 (en) Data transfer method
JPH05225122A (en) Burst transfer system of dma
JP3242474B2 (en) Data processing device
KR930002336B1 (en) Tas instruction control circuit
JP2545594B2 (en) Operand data prefetching method
JP2622026B2 (en) Register writing control method in central processing unit
JPH0635787A (en) Write buffer control system
JPS6221130B2 (en)

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090507

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees