Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2656765B2 - Data processing device - Google Patents
[go: Go Back, main page]

JP2656765B2 - Data processing device - Google Patents

Data processing device

Info

Publication number
JP2656765B2
JP2656765B2 JP8004514A JP451496A JP2656765B2 JP 2656765 B2 JP2656765 B2 JP 2656765B2 JP 8004514 A JP8004514 A JP 8004514A JP 451496 A JP451496 A JP 451496A JP 2656765 B2 JP2656765 B2 JP 2656765B2
Authority
JP
Japan
Prior art keywords
instruction
address
line
data
operand
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
Application number
JP8004514A
Other languages
Japanese (ja)
Other versions
JPH08249230A (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.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
Hitachi 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 Hitachi Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Priority to JP8004514A priority Critical patent/JP2656765B2/en
Publication of JPH08249230A publication Critical patent/JPH08249230A/en
Application granted granted Critical
Publication of JP2656765B2 publication Critical patent/JP2656765B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、高速に命令処理可能な
データ処理装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing apparatus capable of processing instructions at high speed.

【0002】[0002]

【従来の技術】従来データ処理装置は、図1に示すよう
に記憶装置5との間でデータ授受を行うインターフェイ
ス回路7と、実行すべき命令の制御を行う命令実行ユニ
ット3と、命令を実行する命令実行ユニット4とを有し
ている。記憶装置5から読み出された命令が線73、イ
ンターフェイス回路7、線11を経由して命令制御ユニ
ット3に転送されると、命令制御ユニット3は転送され
た命令を解析し、その結果を命令実行ユニット4に線1
5を介し転送する。命令実行ユニット4は、解析の結
果、各種の制御信号を発生させ、それらの制御信号によ
り命令実行ユニット4内の各ゲートを開閉して演算,格
納,シフト等の処理を行わせる。命令によっては線1
4,線74を介してアドレスを指示し主記憶5からデー
タを線13,線74を介し読み出したり、又主記憶5へ
演算結果を書込む。命令制御ユニット3は、次の命令の
読み出しアドレスを線12、インターフェイス回路7,
線74を介して記憶装置5に指示する。これらの一連の
動作を繰り返すことにより、データ処理装置1は、記憶
装置5に格納されているプログラムを実行する。
2. Description of the Related Art As shown in FIG. 1, a conventional data processing apparatus includes an interface circuit 7 for exchanging data with a storage device 5, an instruction execution unit 3 for controlling an instruction to be executed, and an instruction execution unit. And an instruction execution unit 4. When the instruction read from the storage device 5 is transferred to the instruction control unit 3 via the line 73, the interface circuit 7, and the line 11, the instruction control unit 3 analyzes the transferred instruction and outputs the result to the instruction control unit 3. Line 1 to execution unit 4
5 via The instruction execution unit 4 generates various control signals as a result of the analysis, and opens and closes each gate in the instruction execution unit 4 with the control signals to perform processing such as calculation, storage, and shift. Line 1 depending on the command
4. An address is designated via the line 74, and data is read from the main memory 5 via the lines 13 and 74, and the operation result is written into the main memory 5. The instruction control unit 3 sends the read address of the next instruction to the line 12, the interface circuit 7,
Instruct storage device 5 via line 74. The data processing device 1 executes the program stored in the storage device 5 by repeating these series of operations.

【0003】本データ処理装置は、命令制御ユニット3
と命令実行ユニット4とが並列的に動作することが可能
であり、パイプライン制御が行なわれる。
[0003] The data processing apparatus comprises an instruction control unit 3
And the instruction execution unit 4 can operate in parallel, and pipeline control is performed.

【0004】この従来装置においては、主記憶5からの
データの高速読出しの為に、キャッシュメモリ71を有
している。キャッシュメモリ71は線73上のアドレス
で検索され、ヒットした場合には該当エントリのデータ
が読み出され、主記憶5へのアクセスは行なわない。し
たがって、ヒットした場合において、主記憶へのアクセ
ス時間を省略することができ、高速なデータ読出しが可
能となる。
The conventional device has a cache memory 71 for reading data from the main memory 5 at a high speed. The cache memory 71 is searched by the address on the line 73, and when a hit is found, the data of the corresponding entry is read, and the access to the main memory 5 is not performed. Therefore, in the case of a hit, the access time to the main memory can be omitted, and high-speed data reading can be performed.

【0005】このような装置の例として、例えば、岩波
講座マイクロエレクトロニクス「マイクロコンピュータ
のハードウェア」昭和59年11月発行第144〜14
8頁に記憶されたデータ処理装置がある。
[0005] As an example of such a device, for example, Iwanami Koza Microelectronics "Hardware of Microcomputer", November 144, 1984, Nos. 144-14.
There is a data processing device stored on page 8.

【0006】しかし、このようにキャッシュメモリを有
するデータ処理装置においては、種々の場合にキャッシ
ュの無効化、すなわち、キャッシュの内容へのアクセス
禁止が必要となる。例えば、主記憶に格納された命令も
しくはオペランドデータの内容が新しい内容に更新され
た場合、もしくは命令キャッシュメモリもしくはオペラ
ンドキャッシュメモリに格納された論理アドレスと主記
憶の物理アドレスとの対応が保証されなくなった場合な
ど、命令キャッシュメモリもしくはオペランドキャッシ
ュメモリに格納された命令もしくはオペランドデータの
内容が主記憶に格納された命令もしくはオペランドデー
タの内容と不一致となった場合などに、このようなキャ
ッシュメモリの無効化が必要となる。
However, in such a data processing device having a cache memory, it is necessary to invalidate the cache, that is, to prohibit access to the contents of the cache in various cases. For example, when the content of the instruction or operand data stored in the main memory is updated to a new content, or the correspondence between the logical address stored in the instruction cache memory or the operand cache memory and the physical address of the main memory is not guaranteed. Such as when the contents of the instruction or operand data stored in the instruction cache memory or operand cache memory do not match the contents of the instruction or operand data stored in the main memory, Is required.

【0007】なお、キャッシュの無効化については、特
表昭60−500187及び特願昭60−68210
(特開昭60−225262)にも開示がされている。
The invalidation of the cache is described in Japanese Patent Application Laid-Open No. 60-500187 and Japanese Patent Application No. 60-68210.
It is also disclosed in (JP-A-60-225262).

【0008】さて、現在のシステムでは、チップ内で作
成されたアドレスと、外部の装置に実際につけられたア
ドレスとが相違することがあり、データ処理装置内で作
成されたアドレスを論理アドレス、外部の装置に実際に
与えられたアドレスを物理アドレスということがある。
一般に、論理アドレスと物理アドレスとの変換は、アド
レス変換機構という特別なハードウェアをデータ処理装
置のチップ内出力部、あるいは外部に設けることにより
行う。例えば前掲書第145頁に示されている。
In the current system, the address created in the chip may be different from the address actually assigned to an external device, and the address created in the data processing device may be referred to as a logical address or an external address . The address actually given to the device may be called a physical address.
In general, conversion between a logical address and a physical address is performed by providing special hardware called an address conversion mechanism in an output unit in a chip of a data processing device or outside. For example, it is shown on page 145 of the above-mentioned book.

【0009】しかし、チップ内において論理アドレスを
参照しているデータ処理装置の外部にアドレス変換機構
を付けるシステムを構成した場合には、物理アドレスで
参照する主記憶のアドレスと論理アドレスで参照するチ
ップ中のキャッシュメモリのアドレスとが相異なる可能
性がある。
However, when a system is provided in which an address conversion mechanism is provided outside the data processing device which refers to the logical address in the chip, the address of the main memory referred to by the physical address and the chip referred to by the logical address are used. The address of the cache memory inside may be different.

【0010】特に、主記憶上のアドレス空間を別のアド
レス空間に切換えたとき、データ処理装置1内のキャッ
シュメモリに保持している情報のアドレスと、実際の主
記憶のアドレスとの間の対応が保障できなくなる。
In particular, when the address space on the main memory is switched to another address space, the correspondence between the address of the information held in the cache memory in the data processor 1 and the actual address of the main memory is changed. Cannot be guaranteed.

【0011】したがって、アドレス変換機構をシステム
に設けた場合は、該アドレス変換機構のアドレス空間が
切換ったことをパージ信号をアサートしてデータ処理装
置に教える必要がある。
Therefore, when the address translation mechanism is provided in the system, it is necessary to assert the purge signal to inform the data processing device that the address space of the address translation mechanism has been switched.

【0012】なお、キャッシュの無効化については、特
表昭60−500187では、上記問題点が考慮されて
いないため、キャッシュの一部であるキャッシュライン
を無効化する命令を使用するにとどまり、また、特願昭
60−68210(特開昭60−225262)では、
直接メモリアクセス(DMA)書き込み動作が行われた際に
無効化する(注:無効化命令の記載はない)という開示
にとどまっている。
As regards the invalidation of the cache, Japanese Patent Application Laid-Open No. S60-500187 does not consider the above-mentioned problems, and therefore uses only an instruction for invalidating a cache line which is a part of the cache. In Japanese Patent Application No. 60-68210 (JP-A-60-225262),
It only discloses that it is invalidated when a direct memory access (DMA) write operation is performed (note: there is no description of the invalidation instruction).

【0013】[0013]

【課題を解決する手段】そこで、命令アドレス(l31)を
発生する命令アドレス発生部(32)と、複数の命令アドレ
スと該複数の命令アドレスに対応した複数の命令とを格
納する複数のエントリーを有する命令キャッシュメモリ
(31)と、上記命令アドレス発生部(32)から発生された命
令アドレスに従って上記命令キャッシュメモリ(31)若し
くは他のメモリから読み出された命令を解読し解読結果
を生じる命令デコーダ(35)と、 上記命令デコーダの出力
に従いオペランドアドレスを発生するオペランドアドレ
ス発生部(45)と、複数のオペランドアドレスと該複数の
オペランドアドレスに対応した複数のオペランドデータ
とを格納する複数のエントリーを有するオペランドキャ
ッシュメモリ(21)と 上記命令アドレス発生部が生成し
論理アドレスを物理アドレスに変換するアドレス変換
回路とを具備するデータ処理装置において、上記命令デ
コーダの出力に従い、上記命令キャッシュメモリの複数
のエントリー又は上記オペランドキャッシュメモリの複
数のエントリーの何れかを指定して無効化を行うことと
した。
Therefore, an instruction address generator (32) for generating an instruction address (l31) and a plurality of entries for storing a plurality of instruction addresses and a plurality of instructions corresponding to the plurality of instruction addresses are provided. Instruction cache memory
(31) and the instruction generated from the instruction address generator (32).
Instruction cache memory (31) according to the instruction address
Or the instruction read from another memory and the decoding result
And the output of the instruction decoder
An operand address generator (45) for generating an operand address according to the above , an operand cache memory (21) having a plurality of entries for storing a plurality of operand addresses and a plurality of operand data corresponding to the plurality of operand addresses, Generated by the instruction address generator
A data processing apparatus comprising an address conversion circuit for converting a logical address into a physical address, the instruction de
According to the output of the coder, invalidation is performed by designating any of a plurality of entries of the instruction cache memory or a plurality of entries of the operand cache memory.

【0014】具体的に言い換えれば、データ処理装置が
事前にパージ命令を発行して内部のキャッシュメモリ
(連想メモリ)を無効にすることとしたものである。
In other words, the data processor issues a purge command in advance to invalidate the internal cache memory (associative memory).

【0015】[0015]

【作用】アドレス変換機構のアドレス空間が切換ったこ
とに対応して、命令キャッシュメモリを無効化できるの
で、データ処理装置内のキャッシュメモリに保持してい
る情報のアドレスと、実際の主記憶のアドレスとの間の
対応が保障できるようになる。
The instruction cache memory can be invalidated in response to the switching of the address space of the address translation mechanism, so that the address of the information held in the cache memory in the data processing device and the actual main memory can be saved. Correspondence with addresses can be guaranteed.

【0016】本発明のその他の目的と特徴は、以下の実
施例から明らかとなろう。
[0016] Other objects and features of the present invention will be apparent from the following examples.

【0017】[0017]

【実施例】本発明の実施例を図面を用いて詳細に説明す
る。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiments of the present invention will be described in detail with reference to the drawings.

【0018】以下の説明では、まず本実施例のデータ処
理装置に用いられる命令を説明し、その後装置構成を説
明し、最後に動作説明を行なう。
In the following description, first, instructions used in the data processing device of the present embodiment will be described, then the device configuration will be described, and finally the operation will be described.

【0019】1)命令 基本命令フォーマット 図2に本実施例の命令フォーマットを示す。1) Instruction Basic instruction format FIG. 2 shows an instruction format of this embodiment.

【0020】命令は、演算の種類(ビット15〜1
2)、アドレッシングモード等を指定するオペレーショ
ンワード(ビット11〜0)、アドレス計算用のデータ
を与える拡張部とからなり、長さは32ビットである。
An instruction is an operation type (bits 15 to 1).
2) An operation word (bits 11 to 0) for designating an addressing mode and the like, and an extension for giving data for address calculation, and are 32 bits in length.

【0021】指定するアドレッシングモードの種類によ
っては、拡張部を伴なわない場合もある。
Depending on the type of addressing mode to be specified, there may be no extension.

【0022】オペレーションワードのビット11ないし
9は、演算の一方のオペランドとして使用するデータを
保持するデータレジスタの番号を示す。他方のオペラン
ドは、オペレーションワードのビット5ないし0によっ
て指定される。すなわち、ビット2ないし0は、このオ
ペランドの取得のために参照すべきレジスタの番号を示
し、ビット5ないし3は、アドレッシングモードを示
す。
Bits 11 to 9 of the operation word indicate the number of a data register that holds data used as one operand of an operation. The other operand is specified by bits 5-0 of the operation word. That is, bits 2 to 0 indicate the number of the register to be referred to for acquiring this operand, and bits 5 and 3 indicate the addressing mode.

【0023】本実施例においては、後で示すようにデー
タレジスタを8本、アドレスレジスタを8本有してい
る。
This embodiment has eight data registers and eight address registers as described later.

【0024】ビット5ないし3のビットパターンとアド
レッシングモードの対応は、図2(b)に示されてい
る。同図において、「データレジスタ」モード及び「ア
ドレスレジスタ」モードは、それぞれ、指定されたデー
タレジスタ及びアドレスレジスタの内容がそのままオペ
ランドとなるモードである。「アドレスレジスタ間接」
モードは、指定されたアドレスレジスタの内容がオペラ
ンドのメモリアドレスとして使用されるモードである。
「ポストインクリメント」モード及び「プリデクリメン
ト」モードは、基本的にはアドレスレジスタ間接モード
と同じであるが、オペランドのストア又はフェッチのそ
れぞれ直後及び直前に、当該アドレスレジスタの内容を
それぞれ+1及び−1する点が異なる。したがって本モ
ードは、一続きのアドレスに格納されたオペランドデー
タを次々に読み出して演算することになる。
FIG. 2B shows the correspondence between the bit patterns of bits 5 and 3 and the addressing mode. In the figure, a “data register” mode and an “address register” mode are modes in which the contents of a designated data register and address register are used as operands as they are. "Address register indirect"
The mode is a mode in which the content of the specified address register is used as a memory address of an operand.
The “post-increment” mode and the “pre-decrement” mode are basically the same as the address register indirect mode, except that the contents of the address register are respectively +1 and −1 immediately before and immediately before the store or fetch of the operand, respectively. Is different. Therefore, in this mode, operand data stored in a series of addresses is read out one after another and operated.

【0025】「ディスプレイスメント付アドレスレジス
タ間接」モードは、指定されたアドレスレジスタの内容
に拡張部の内容を加えた値をオペランドのメモリアドレ
スとして使用するモードであり、「ディスプレイスメン
ト付プログラムカウンタ相対」モードは、当該命令のア
ドレス(プログラムカウンタの内容)に拡張部の内容を
加えた値をオペランドのメモリアドレスとして使用する
モードである。そして、「絶対番地」モードは、拡張部
の内容をそのままオペランドのメモリアドレスとして使
用するモードである。
The "address register with displacement indirect" mode is a mode in which the value obtained by adding the contents of the extension to the contents of the designated address register is used as the memory address of the operand. The mode is a mode in which a value obtained by adding the content of the extension to the address of the instruction (contents of the program counter) is used as the memory address of the operand. The “absolute address” mode is a mode in which the content of the extension is used as it is as the memory address of the operand.

【0026】 基本命令の中のスタック命令 さて現在のプログラムは高級言語で書かれる為、そのデ
ータ構造としてスタックを有している。特に、サブルー
チンを用いる場合には、メインルーチンで用いる変数、
サブルーチンで用いる変数を夫々別々の一団としてスタ
ックに格納しておく必要がある。この一団をフレームと
いう。
Stack Instructions Among Basic Instructions Since a current program is written in a high-level language, it has a stack as its data structure. In particular, when using a subroutine, the variables used in the main routine,
The variables used in the subroutine need to be stored on the stack as separate groups. This group is called a frame.

【0027】スタックは、主記憶の一部と、スタックポ
インタとからなる。スタックポインタとは変数を下位の
アドレスから次々に主記憶に格納していくためのアドレ
スを格納しておくレジスタである。
The stack includes a part of the main memory and a stack pointer. The stack pointer is a register for storing addresses for storing variables in the main memory one after another from lower addresses.

【0028】サブルーチンを呼び出す場合には、スタッ
クポインタの値をフレームポインタに移す。フレームポ
インタとは、一フレームの最上位のアドレスを記憶する
ためのレジスタである。本実施例では、8本のアドレス
レジスタのうち一本をスタックポインタとし、他の一本
をフレームポインタとしている。
When calling a subroutine, the value of the stack pointer is moved to the frame pointer. The frame pointer is a register for storing the highest address of one frame. In this embodiment, one of the eight address registers is used as a stack pointer, and the other is used as a frame pointer.

【0029】スタックへのアクセスは、命令の2ビット
〜0ビットにおいてフレームポインタ又はスタックポイ
ンタを指定し、命令5〜3ビットのアドレッシングモー
ドとして、「アドレスレジスタ間接」、「ポストインク
リメント」、「プリデクリメント」又は「ディスプレイ
スメント付アドレスレジスタ間接」のうちの、いずれか
を用いて実行される。これらのスタックへのアクセスの
態様を総称して、スタックアクセスモードと呼びこれら
の命令をスタック命令ということにする。
To access the stack, a frame pointer or a stack pointer is designated by bits 2 to 0 of the instruction, and the addressing mode of the instruction 5 to 3 bits is "address register indirect", "post increment", "pre-decrement". Or "indirect address register with displacement". These access modes to the stack are collectively called a stack access mode, and these instructions are called stack instructions.

【0030】上記のように、本装置ではスタックポイン
タをあらかじめ一つのレジスタに定めているので、その
レジスタをスタックポインタとして指定しないプログラ
ムでは性能が低下するおそれがある。
As described above, in the present apparatus, the stack pointer is determined in advance for one register, so that a program that does not designate the register as the stack pointer may have a reduced performance.

【0031】 制御命令 さらに、本実施例のデータ処理装置では、上記一般命令
とは異なるフォーマットを有する制御命令を有する。
Control Instruction The data processing apparatus of the present embodiment further has a control instruction having a format different from that of the general instruction.

【0032】本実施例は、パージ(PURGE)命令と
いい、専ら本データ処理装置が自ら発行する命令であ
る。ただし、上述の基本命令と伴に主記憶から読み出す
場合もある。本命令の機能は、データ処理装置が内蔵す
る連想メモリ21,31又は36,37,38を無効に
することである。
This embodiment is called a purge (PURGE) instruction, which is issued exclusively by the data processing apparatus itself. However, it may be read from the main memory together with the basic instruction described above. The function of this instruction is to invalidate the associative memories 21, 31 or 36, 37, 38 incorporated in the data processing device.

【0033】本命令が存在する理由は次のとおりであ
る。
The reason why this instruction exists is as follows.

【0034】本データ処理装置1は、一つのチップの中
におさめられる。このチップ内で作成されたアドレスで
外部へアクセスするものである。しかし乍ら、現在のシ
ステムでは、チップ内で作成されたアドレスと、外部の
装置に実際につけられたアドレスとが相違することがあ
り、データ処理装置内で作成されたアドレスを論理アド
レス、外部の装置に実際に与えられたアドレスを物理
ドレスということがある。一般に、論理アドレスと物理
アドレスとの変換は、アドレス変換機構という特別なハ
ードウェアをデータ処理装置のチップ内出力部、あるい
は外部に設けることにより行う。例えば前掲書第145
頁に示されている。
The data processing device 1 is contained in one chip. This is to access the outside with the address created in this chip. However, in the current system, the address created in the chip may differ from the address actually assigned to an external device, and the address created in the data processing device is logically added to the address.
Less, sometimes an address actually given to the external device physically A <br/> that address. In general, conversion between a logical address and a physical address is performed by providing special hardware called an address conversion mechanism in an output unit in a chip of a data processing device or outside. For example, op.
It is shown on the page.

【0035】本実施例のデータ処理装置は、後述するよ
うにチップ内において論理アドレスのみを参照している
ので、外部にアドレス変換機構を付けるシステムを構成
した場合には、物理アドレスで参照する主記憶のアドレ
スと論理アドレスで参照するチップ中の連想メモリのア
ドレスとが相異なる可能性がある。
Since the data processing apparatus of this embodiment refers only to the logical address in the chip as described later, when a system having an external address conversion mechanism is configured, the data is referred to by the physical address. The address of the memory and the address of the associative memory in the chip referenced by the logical address may be different.

【0036】特に、主記憶上のアドレス空間を別のアド
レス空間に切換えたとき、データ処理装置1内の連想メ
モリに保持している情報のアドレスと、実際の主記憶の
アドレスとの間の対応が保障できなくなる。
In particular, when the address space on the main memory is switched to another address space, the correspondence between the address of the information held in the associative memory in the data processing device 1 and the actual address of the main memory is changed. Cannot be guaranteed.

【0037】この矛盾は、データ処理装置が事前にパー
ジ命令を発行して内部の連想メモリを無効にすることに
より解決できる。
This inconsistency can be solved by the data processor issuing a purge command in advance to invalidate the internal associative memory.

【0038】したがって、アドレス変換機構をシステム
に設けた場合は、該アドレス変換機構アドレス空宇間
が切換ったことをパージ信号をアサートしてデータ処理
装置に教える必要がある。
Therefore, when the address translation mechanism is provided in the system, it is necessary to assert the purge signal to inform the data processing device that the address space of the address translation mechanism has been switched.

【0039】本データ処理装置では、パージ制御回路の
項で後述するように、アドレス変換機構からのパージ信
号とパージ命令に基きパージ命令を発行するように構成
されている。
The present data processing apparatus is configured to issue a purge command based on a purge signal and a purge command from an address conversion mechanism, as described later in the section of the purge control circuit.

【0040】以上がパージ命令を設けた理由である。The above is the reason why the purge command is provided.

【0041】次に、図3(a)においてパージ命令のフ
ォーマットについて説明する。
Next, the format of the purge command will be described with reference to FIG.

【0042】パージ命令において、内容を無効にすべき
メモリの指定は、パージコード(PURGE COD
E)による。その対応を図3(b)に示す。パージコー
ドのビット7,6が「00」のときは、無効にしない。
パージコードが「01000000」のときは、データ
系の連想メモリを無効にする。データ系の連想メモリと
は、後述する連想メモリ21が該当する。
In the purge instruction, the memory whose contents are to be invalidated is specified by a purge code (PURGE COD).
According to E). The correspondence is shown in FIG. When bits 7 and 6 of the purge code are "00", they are not invalidated.
When the purge code is "01000000", the associative memory of the data system is invalidated. The data-based associative memory corresponds to the associative memory 21 described later.

【0043】パージコードが「10000000」のと
きは、命令系の連想メモリを無効にする。命令系の連想
メモリとしては、後述する連想メモリ31,36,37
および38が該当する。
When the purge code is "10000000", the instruction-based associative memory is invalidated. Instruction-type associative memories include associative memories 31, 36, and 37 described later.
And 38 apply.

【0044】パージコードが「11111111」のと
きは、すべての内部連想メモリを無効とする。
When the purge code is "11111111", all internal associative memories are invalidated.

【0045】2)次に、本装置構成について詳細に説明
する。
2) Next, the configuration of the present apparatus will be described in detail.

【0046】図4において1はデータ処理装置で、主記
憶5とのデータのやりとりを行なうインターフェイスユ
ニット2と、インターフェイスユニットからのデータの
解析を行なう命令制御ユニット3と、および命令制御ユ
ニットからの解析命令の実行を行なうための命令実行ユ
ニットからなる。
In FIG. 4, reference numeral 1 denotes a data processing device, an interface unit 2 for exchanging data with the main memory 5, an instruction control unit 3 for analyzing data from the interface unit, and an analysis from the instruction control unit. It comprises an instruction execution unit for executing an instruction.

【0047】主記憶5からは1度のアクセスで4バイト
(32ビット)のデータが読める。命令実行ユニット4
は、命令実行に必要なデータをインターフェイスユニッ
ト2を介して主記憶から読出す。
From the main memory 5, data of 4 bytes (32 bits) can be read by one access. Instruction execution unit 4
Reads out data necessary for instruction execution from the main memory via the interface unit 2.

【0048】命令制御ユニット3と命令実行ユニット4
とは並列動作が可能でパイプライン制御が行なわれる。
Instruction control unit 3 and instruction execution unit 4
Can be operated in parallel and pipeline control is performed.

【0049】以下、各回路について説明する。Hereinafter, each circuit will be described.

【0050】 命令制御ユニット3 アドレス発生回路32は、プリフェッチアドレス更新信
号を線l34を介して入力し、分岐先アドレスを線l3
3を介して入力し、プリフェッチアドレスおよびフェッ
チ要求を線l31に出力し、命令実行ユニット4で実行
中の命令のアドレスを線l32に出力する回路である。
The instruction control unit 3 receives the prefetch address update signal via the line 134 and inputs the branch destination address to the line l3.
3, a prefetch address and a fetch request are output to a line l31, and an address of an instruction being executed by the instruction execution unit 4 is output to a line l32.

【0051】図5に、アドレス発生回路32の詳細を示
す。
FIG. 5 shows the details of the address generation circuit 32.

【0052】323は選択回路で、通常はレジスタ32
1からのプリフェッチアドレスを選択し、分岐アドレス
が線l332を介して与えられたときには該分岐アドレ
スを選択する。
Reference numeral 323 denotes a selection circuit, which is normally a register 32.
1 is selected, and when a branch address is provided via line l332, the branch address is selected.

【0053】325は加算器で、選択回路323からの
命令アドレスに、定数発生回路324から与えられる数
を加算する。定数発生回路324が発生する数は、読み
出すべき命令の長さに対応する。
An adder 325 adds the number given from the constant generation circuit 324 to the instruction address from the selection circuit 323. The number generated by the constant generation circuit 324 corresponds to the length of the instruction to be read.

【0054】レジスタ321は、線l342からの信号
により、加算器325の出力をラッチする。したがっ
て、線l34から信号を受ける毎にレジスタ321は更
新され、線l31内の線l312にプリフェッチアドレ
スが出力されることになる。尚、線l34の更新信号は
線l31の線l311からフェッチ要求として出力され
る。
The register 321 latches the output of the adder 325 according to the signal from the line l342. Therefore, each time a signal is received from the line l34, the register 321 is updated, and the prefetch address is output to the line l312 in the line l31. The update signal of the line l34 is output as a fetch request from the line l311 of the line l31.

【0055】326は選択回路で、通常は加算器329
からの出力を選択し、分岐アドレスが線l332を介し
て与えられたときには該分岐アドレスを選択する。レジ
スタ327は、選択回路323からの命令アドレスをラ
ッチし、線l32に命令アドレスを出力する。
326 is a selection circuit, which is usually an adder 329.
Is selected, and when a branch address is given via line l332, the branch address is selected. Register 327 latches the instruction address from selection circuit 323, and outputs the instruction address to line l32.

【0056】加算器329は、線l32上の命令アドレ
スに定数発生回路328から与えられる数を加算する。
定数発生回路328が発生する数は、実行されるべき命
令の長さに対応する。
The adder 329 adds the number given from the constant generation circuit 328 to the instruction address on the line l32.
The number generated by the constant generation circuit 328 corresponds to the length of the instruction to be executed.

【0057】連想メモリ31は、命令アドレスと、その
命令アドレスに対応する命令とを同一のエントリに記憶
しておくメモリである。
The associative memory 31 is a memory for storing an instruction address and an instruction corresponding to the instruction address in the same entry.

【0058】連想メモリ31の構成を図6に示す。全体
で64エントリで構成され、各エントリは検索フィール
ド311,有効ビット312およびデータフィールド3
13により構成される。
FIG. 6 shows the structure of the associative memory 31. A total of 64 entries are formed, each entry being a search field 311, a valid bit 312 and a data field 3.
13.

【0059】検索フィールドは線l312を介して与え
られる命令アドレスを格納するフィールドである。有効
ビットはデータフィールド313に格納されたデータが
有効か否かを示すビットである。データフィールド31
3は線l35を介して与えられる命令を格納するための
フィールドで4バイト(32ビット)の長さを有する。
The search field is a field for storing an instruction address given via the line 1312. The valid bit is a bit indicating whether the data stored in the data field 313 is valid. Data field 31
Reference numeral 3 denotes a field for storing an instruction given via a line 135 and has a length of 4 bytes (32 bits).

【0060】連想メモリ31への検索は、線l31を介
して与えられる命令アドレスで行なう。命令アドレスが
存在し、かつ有効ビットがセットされている場合、該当
エントリのデータフィールドに格納された命令を線l3
52に出力する。又、線l351にフェッチ終了信号も
出力する。又、ヒットした場合線l26上の信号がオン
し選択回路22により主記憶5へのアクセスが禁止され
る。
The search to the associative memory 31 is performed by the instruction address given via the line l31. If the instruction address is present and the valid bit is set, the instruction stored in the data field of the entry is
52. Also, a fetch end signal is output to a line l351. When a hit occurs, the signal on the line 126 is turned on, and the access to the main memory 5 is prohibited by the selection circuit 22.

【0061】連想メモリ31の更新は、線l31からの
命令アドレスが格納されたエントリが存在せず、又有効
ビットがリセットされているとき行なわれる。主記憶5
からの線l351のフェッチ終了信号がオンしたときに
読出された命令が線l35を介して入力され線l31か
らの命令アドレスと伴に、最も古く書換えられたエント
リに書込まれる。新しく書換えられたエントリの有効ビ
ット312はセットされる。
The associative memory 31 is updated when there is no entry storing the instruction address from the line l31 and the valid bit is reset. Main memory 5
The instruction read out when the fetch end signal of line l351 is turned on is input via line l35 and written into the oldest rewritten entry along with the instruction address from line l31. The valid bit 312 of the newly rewritten entry is set.

【0062】連想メモリ31は、パージ命令の実行によ
り無効にされる。パージ命令が実行されたときには命令
実行ユニット4からの信号線(図示せず)により、有効
ビット312が全エントリにつき、リセットされる。
The associative memory 31 is invalidated by executing the purge command. When the purge command is executed, the valid bit 312 is reset for all entries by a signal line (not shown) from the command execution unit 4.

【0063】ファーストイン,ファーストアウトのメモ
リ34は、線l351のフェッチ終了信号がオンした時
線l352を介して与えられる命令を複数個記憶するた
めのメモリであって、最も古く書込まれた命令を最も早
く読み出すメモリである。
The first-in / first-out memory 34 is a memory for storing a plurality of instructions given via the line l352 when the fetch end signal of the line l351 is turned on, and is the oldest written instruction. Is the memory that reads out the fastest.

【0064】制御回路33は、メモリ34に空きがある
場合であって線l351のフェッチ終了信号がオフした
場合に、次の命令を読み出させる為に、線l34を介し
てアドレス発生回路32にプリフェッチアドレス更新信
号送出する回路である。
When the memory 34 has a vacancy and the fetch end signal of the line l351 is turned off, the control circuit 33 sends the address generation circuit 32 via the line l34 to read the next instruction. This is a circuit for sending a prefetch address update signal.

【0065】デコーダ35は、メモリ34からの命令を
解析し、マイクロプログラムの命令アドレスに変換して
線l36に出力する。
The decoder 35 analyzes the instruction from the memory 34, converts it into the instruction address of the microprogram, and outputs it to the line 136.

【0066】連想メモリ36,37および38は、パイ
プラインでの乱れを押える働きをするバッファで、分岐
元アドレス、分岐先命令、デコード結果を同一のエント
リに記憶する。
The associative memories 36, 37 and 38 are buffers for suppressing disturbances in the pipeline, and store a branch source address, a branch destination instruction and a decoding result in the same entry.

【0067】連想メモリ36,37,38の構成を図7
に示す。全体で4エントリで構成され、各エントリは検
索フィールド361,有効ビット362およびデータフ
ィールド363,37,38により構成される。
The structure of the associative memories 36, 37 and 38 is shown in FIG.
Shown in The whole is composed of four entries, and each entry is composed of a search field 361, a valid bit 362 and data fields 363, 37, 38.

【0068】検索フィールド361は線l32を介して
与えられる分岐元アドレスを格納するフィールドであ
る。有効ビットフィールド362はデータフィールド3
63,37,38に格納されたデータが有効か否かを示
すビットである。データフィールドの一部363は、線
l38を介して与えられる分岐先次命令を格納するフィ
ールドである。データフィールドの他の一部38は、線
l38を介して与えられる分岐先命令自体を格納するフ
ィールドである。データフィールドの他の一部37は、
線l36を介して与えられるマイクロ命令アドレスを格
納するフィールドである。尚、図4の全体構成図では、
連想メモリ36はアドレス発生回路32とデコーダ35
の間に設けられ、連想メモリ37はデコーダ35と命令
実行ユニット4の間に設けられる。その理由は、連想メ
モリ36に格納される種々の情報の発生源の位置と、連
想メモリ37に格納される情報の発生源の位置とが異な
っているからである。このように連想メモリ36,37
に分割することにより、情報発生源と連想メモリ間の距
離を短かくすることができ、その間の配線によるチップ
専有面積を少なくできる。連想メモリ36と37は、線
l37を介して接続されており、連想メモリ36におい
て選ばれたエントリのアドレスが連想メモリ37,38
に線l37を介して与えられ、両者同一のエントリが選
ばれることになる。
The search field 361 is a field for storing a branch source address given via the line l32. The valid bit field 362 is the data field 3
This bit indicates whether the data stored in 63, 37, and 38 is valid. A part 363 of the data field is a field for storing a branch destination next instruction given via the line l38. Another part 38 of the data field is a field for storing the branch target instruction itself given via the line l38. The other part 37 of the data field is
This is a field for storing a microinstruction address given via a line l36. Incidentally, in the overall configuration diagram of FIG.
The associative memory 36 includes an address generation circuit 32 and a decoder 35.
The associative memory 37 is provided between the decoder 35 and the instruction execution unit 4. The reason is that the positions of the sources of various information stored in the associative memory 36 and the positions of the sources of information stored in the associative memory 37 are different. Thus, the associative memories 36, 37
, The distance between the information source and the associative memory can be shortened, and the area occupied by the chips between them can be reduced. The associative memories 36 and 37 are connected via a line 137, and the address of the entry selected in the associative memory 36 is stored in the associative memories 37 and 38.
Via the line l37, and the same entry is selected.

【0069】連想メモリ36,37,38への検索は、
線l32を介して与えられる分岐元アドレスで行なう。
分岐元アドレスが存在し、かつ有効ビット362がセッ
トされている場合、該当エントリのデータフィルド36
3,37,38に格納された情報が夫々線l35,線l
39および線l40に出力される。
The search to the associative memories 36, 37, 38
This is performed at the branch source address given via the line l32.
If the branch source address exists and the valid bit 362 is set, the data field 36
The information stored in the lines 3, 37, and 38 is a line 135 and a line l, respectively.
39 and line 140.

【0070】連想メモリ36,37,38の更新は、線
l32からの分岐元アドレスが格納されたエントリが存
在せず、又有効ビット362がリセットされているとき
に行なわれる。このとき、分岐元アドレス,分岐先アド
レス,分岐先命令デコード結果分岐先次命令が伴に、最
も古く書換えられたエントリに書込まれる。新しく書換
えられたエントリの有効ビット362はセットされる。
The associative memories 36, 37 and 38 are updated when there is no entry storing the branch source address from the line l32 and the valid bit 362 is reset. At this time, the oldest rewritten entry is written together with the branch source address, the branch destination address, and the branch destination next instruction. The valid bit 362 of the newly rewritten entry is set.

【0071】連想メモリ36,37,37は、バージ命
令を実行した際に無効にされる。バージ命令が実行され
たときには、命令実行ユニット4からの信号線(図示せ
ず)により有効ビット362が全エントリにつき、リセ
ットされる。
The associative memories 36, 37 and 37 are invalidated when the barge instruction is executed. When the barge instruction is executed, the valid bit 362 is reset for all entries by a signal line (not shown) from the instruction execution unit 4.

【0072】選択回路47は、線l45を介して与えら
れる分岐成功信号を受けたときは、線l39を選択す
る。分岐失敗信号を受けたときは、線l36を選択す
る。
When receiving the branch success signal provided via the line l45, the selection circuit 47 selects the line l39. When the branch failure signal is received, the line 136 is selected.

【0073】選択回路46は、線l45を介して与えら
れる分岐成功信号を受けたときは、線l38を選択す
る。分岐失敗信号を受けたときは、線l40を選択す
る。
The selection circuit 46 selects the line l38 when receiving the branch success signal given via the line l45. When the branch failure signal is received, the line 140 is selected.

【0074】レジスタ38は、デコーダ37からのマイ
クロ命令アドレスを、線l41を介して与えられる次命
令要求信号によりラッチする。そして、該ラッチしたマ
イクロ命令アドレスを命令実行ユニットに送出する。た
だし、線l62を介して、バージ指令信号と、線l41
の次命令要求信号が与えられたときは、デコーダ37か
らのマイクロ命令アドレスではなく、線l63を介して
パージ命令をラッチする。
Register 38 latches the microinstruction address from decoder 37 in response to a next instruction request signal provided via line 141. Then, the latched microinstruction address is sent to the instruction execution unit. However, the barge command signal and the line l41 are transmitted via the line l62.
When the next instruction request signal is given, the purge instruction is latched via the line 163 instead of the micro instruction address from the decoder 37.

【0075】レジスタ40は、線l41を介して次命令
要求信号を受けたときに、選択回路46からの信号をラ
ッチする。
Register 40 latches the signal from selection circuit 46 when receiving the next command request signal via line 141.

【0076】 命令実行ユニット4 ROM41は、線l40を介して与えられる時間軸に配
列されたマイクロ命令列の各マイクロ命令をアドレスと
して順次取込み、対応するアドレスに格納してある制御
情報を順次読出して、線l42に出力する。
The instruction execution unit 4 ROM 41 sequentially fetches, as an address, each microinstruction of a microinstruction sequence arranged on a time axis given via a line 140 and sequentially reads out control information stored at a corresponding address. , Line 142.

【0077】処理回路45は、線l42上の制御情報に
基き、演算を行なう。オペランドデータを主記憶から得
るためのアドレスを線l33を介して出力し、読出され
たオペランドデータを線l43を介して入力する。又線
l44を介して命令自体が入力される。線l41には命
令実行が終了した際に次命令要求信号が出力される。
又、分岐命令を実行した際に分岐が成功したならば線l
45へ分岐成功信号を、分岐が失敗したならば分岐失敗
信号を出力する。
The processing circuit 45 performs an operation based on the control information on the line 142. An address for obtaining operand data from main memory is output via line 133, and the read operand data is input via line 134. The command itself is input via a line 144. Upon completion of the instruction execution, a next instruction request signal is output to line l41.
If the branch was successful when the branch instruction was executed, the line l
A branch success signal is output to 45, and a branch failure signal is output if the branch has failed.

【0078】図8は処理回路45の構造を示す図であ
る。l46,l47およびl48は、内部データバス
である。レジスタ群452は8本のデータレジスタ、8
本のアドレスレジスタからなる。レジスタ群452は線
l422により一又は二つのレジスタが指定され、バス
l46,l47へのデータ読出し、又はバスl48から
のデータ読込みを行なう。
FIG. 8 is a diagram showing the structure of the processing circuit 45. Lines l46, l47 and l48 are internal data buses. The register group 452 includes eight data registers, eight
It consists of a book address register. One or two registers of the register group 452 are designated by a line l422, and data is read from the buses l46 and l47 or data is read from the bus l48.

【0079】アドレスレジスタの8本のうち、スタック
ポインタ,フレームポインタを含む。スタックポインタ
は、主記憶へのデータ格納のため、用いられる毎にずつ
内容が減算され、読み出しに用いられる毎に1ずつ増加
する。
The address pointer includes a stack pointer and a frame pointer among eight address registers. The contents of the stack pointer are decremented each time it is used for storing data in the main memory, and incremented by one each time it is used for reading.

【0080】453は演算回路であり、バスl46,l
47上の信号を、線l423からの指示に基き加算,除
算等を行ない、演算結果を内部データバスl48に出力
する。又、演算回路453は、一つの命令に対する制御
情報が線l42からすべて入力した後であって演算終了
後l41に次命令要求信号を出力する。
An arithmetic circuit 453 includes buses 146 and l46.
The signal on the line 47 is subjected to addition, division and the like based on the instruction from the line l423, and outputs the operation result to the internal data bus l48. Further, the arithmetic circuit 453 outputs the next instruction request signal to 141 after all the control information for one instruction is input from the line 142 and after the operation is completed.

【0081】又、分岐命令を実行した際に、コンデショ
ンコードC.Cを参照し、分岐命令で定める条件を満た
している場合には分岐成功信号を、満たしていない場合
には分岐失敗信号を線l45に出力する。
When the branch instruction is executed, the condition code C. With reference to C, a branch success signal is output to a line l45 if the condition defined by the branch instruction is satisfied, and if not, a branch failure signal is output to a line l45.

【0082】パージ命令を実行した際には、まず、パー
ジクリア信号を線l49に出力し、パージコードで示さ
れる連想メモリの有効ビットを図示していない信号線を
介しリセットする。
When the purge command is executed, first, a purge clear signal is output to a line 149, and the effective bit of the associative memory indicated by the purge code is reset via a signal line (not shown).

【0083】454はデータ指定回路であり、ポストイ
ンクレメントモード,プリデクレメントモードの実行の
際に、線l424を介して受けるオペランドサイズ(命
令により、1バイト,2バイト,4バイトが指定され
る)に基き、線l33上のアドレスの下位2ビットをデ
コードして線l43上の32ビットデータのうち、オペ
ランドとして必要なデータであってオペランドサイズの
長さを有するデータを線l50を介してインターフェイ
ス451に指定する。
A data designating circuit 454 designates an operand size (1 byte, 2 bytes, 4 bytes specified by the instruction) received via the line l424 when the post-increment mode or the pre-decrement mode is executed. ), The lower 2 bits of the address on line l33 are decoded, and among the 32-bit data on line l43, data required as an operand and having a length of the operand size is interfaced via line l50. 451.

【0084】インターフェイス451は線l421上の
制御情報に基き、線l431のフェッチ終了信号がオン
した時線l432からのデータを内部データバスl4
7,l48に出力し、線l431上のフェッチ要求信号
をオフする。又内部データバスl47,l48からのデ
ータを線l432に出力しフェッチ要求信号を線l43
1に出力する。線l50で読み出すべきデータのビット
位置および長を指定されたときには、それに基きデータ
を切出す。
The interface 451 transmits data from the line l432 to the internal data bus l4 when the fetch end signal of the line l431 is turned on based on the control information on the line l421.
7, 148 to turn off the fetch request signal on line l431. The data from the internal data buses l47 and l48 are output to the line l432, and the fetch request signal is output to the line l43.
Output to 1. When the bit position and length of the data to be read are designated by the line 150, the data is cut out based on the designated bit position and length.

【0085】連想メモリ21は、オペランドデータを記
憶しておくためのオペランドバッファ24およびバイト
データを記憶しておくためのラインバッファ25からな
る。
The associative memory 21 includes an operand buffer 24 for storing operand data and a line buffer 25 for storing byte data.

【0086】オペランドバッファ24の構成を図9に示
す。全体で22エントリで構成され、各エントリは検索
フィールド241,有効ビット242およびデータフィ
ールド243により構成される。
FIG. 9 shows the configuration of the operand buffer 24. Each entry is composed of a search field 241, a valid bit 242, and a data field 243.

【0087】検索フィールドは線l33を介して与えら
れるオペランドデータのアドレスを格納するためフィー
ルドである。有効ビット242はデータフィールドに格
納されたオペランドデータが有効か否かを示すビットで
ある。データフィールド243は、線l21を介して与
えられるオペランドデータを格納するためのフィールド
である。
The search field is a field for storing the address of the operand data given via the line 133. The valid bit 242 is a bit indicating whether the operand data stored in the data field is valid. The data field 243 is a field for storing the operand data given via the line l21.

【0088】オペランドバッファ24の更新・検索は、
命令実行ユニット4で実行すべき命令に基いて次の2種
の制御がされる。
The update / search of the operand buffer 24
The following two types of control are performed based on the instruction to be executed by the instruction execution unit 4.

【0089】(イ)スタックアクセスモードであって、命
令により指定されたアドレスレジスタの内容がオペラン
ドデータのアドレスとして線l332に出力されたとき
は、オペランドバッファ24は該オペランドデータアド
レスで検索される。オペランドデータアドレスが存在
し、かつ有効ビット242がセットされている場合、該
当エントリのデータフィールドに格納されているオペラ
ンドデータが線l432に出力される。この時線l43
1のフェッチ終了信号をオンする。又、ヒットしたと
き、線l25を介して選択回路22により、主記憶5へ
のアクセスが禁止される。又、検索の結果ミスヒットし
たときには、主記憶5から読出されたオペランドデータ
が線l21を介して入力され、線l33からのオペラン
ドアドレス伴に、最も古く書換えられたエントリに書込
まれる。新しく書換えたエントリの有効ビット242は
セットされる。
(A) In the stack access mode, when the contents of the address register specified by the instruction are output to the line l332 as the address of the operand data, the operand buffer 24 is searched by the operand data address. When the operand data address exists and the valid bit 242 is set, the operand data stored in the data field of the entry is output to the line l432. At this time, line l43
1 is turned on. When a hit occurs, access to the main memory 5 is prohibited by the selection circuit 22 via the line 125. When a miss occurs as a result of the search, the operand data read from the main memory 5 is input via the line l21, and is written into the oldest rewritten entry along with the operand address from the line l33. The valid bit 242 of the newly rewritten entry is set.

【0090】(ロ)命令実行結果が得られ、線l43に
該実行結果が出力され、線l332に該実行結果を格納
すべき主記憶5上のアドレスが出力されたときには、オ
ペランドバッファ24はそのアドレスで検索される。そ
のアドレスが存在し、かつ有効ビット242がセットさ
れている場合、該当エントリのデータフィールドのデー
タが線l332上の実行結果に書換えられる。有効ビッ
ト242はセットされる。この時ヒットしたとしても、
線l25には何も出力しない。したがって、選択回路2
2は主記憶5へのアクセスを禁止されない。又、検索の
結果、ミスヒットした場合には、オペランドバッファの
データ書換えは行なわない。
(B) When an instruction execution result is obtained, the execution result is output on a line l43, and an address in the main memory 5 where the execution result is to be stored is output on a line l332, the operand buffer 24 Search by address. If the address exists and the valid bit 242 is set, the data of the data field of the entry is rewritten to the execution result on the line l332. Valid bit 242 is set. Even if you hit at this time,
Nothing is output on line 125. Therefore, the selection circuit 2
2 is not prohibited from accessing the main memory 5. If the search results in a miss, the data in the operand buffer is not rewritten.

【0091】上記(イ)(ロ)以外の場合にはオペラン
ドバッファの検索書換えはなされない。
In cases other than the above (a) and (b), the search and rewrite of the operand buffer are not performed.

【0092】(イ)の場合は、スタックの更新、スタッ
クからのデータ読出しに関する場合である。(イ)の場
合にオペランドバッファの更新・書換えが行なわれる為
オペランドバッファはスタックデータの格納用の内部メ
モリであるといえる。
The case (a) relates to updating of the stack and reading of data from the stack. In case (a), the operand buffer is updated and rewritten, so that the operand buffer can be said to be an internal memory for storing stack data.

【0093】(ロ)の場合は、命令によってはスタック
を直接アドレス指定して、データ書換えを起す場合があ
るので、これに対処するための処置である。
In the case of (b), the data may be rewritten by directly specifying the address of the stack depending on the instruction. This is a measure to cope with this.

【0094】オペランドバッファ24は、パージ信号に
より無効にされる。パージ信号が入力されたときには、
有効ビット242の全ビットにつき、リセットされる。
The operand buffer 24 is invalidated by a purge signal. When the purge signal is input,
All the valid bits 242 are reset.

【0095】ラインバッファ25はポストインクレメン
トモード,プリデクレメントモード時に、オペランドサ
イズで指定される長さのバイトデータの読出しにおいて
一度に主記憶5から読出された連続アドレスの4バイト
を保持しておき、以後の命令で連続したオペランドアド
レスへのアクセスを高速化するためのメモリである。
In the post-increment mode and the pre-decrement mode, the line buffer 25 holds 4 bytes of a continuous address read from the main memory 5 at a time when reading byte data of a length specified by the operand size. This is a memory for accelerating access to successive operand addresses in subsequent instructions.

【0096】ラインバッファ25の構成を図10に示
す。ラインバッファ25は、8本のアドレスレジスタの
うち、スタックポインタ・フレームポインタを除いた6
本のレジスに一対一に対応したエントリを有する。した
がって、全部で6本のエントリによって構成されること
になる。
FIG. 10 shows the configuration of the line buffer 25. The line buffer 25 has 6 address registers, excluding the stack pointer and the frame pointer, out of the 8 address registers.
It has an entry corresponding to a book registry on a one-to-one basis. Therefore, it consists of a total of six entries.

【0097】各エントリは、検索フィールド251,4
つの有効ビット252〜255および4つのデータフィ
ールド256〜259から構成される。有効ビット25
2〜255は、データフィールド256〜259と夫々
対応しており、夫々対応するデータフィールドのデータ
が有効か否かを示す。一つのエントリの4つのデータフ
ィールドには、主記憶5から1度に読み出された連続ア
ドレスの4バイトのデータが夫々格納される。
Each entry has search fields 251 and 4
It consists of two valid bits 252 to 255 and four data fields 256 to 259. Valid bit 25
2 to 255 correspond to the data fields 256 to 259, respectively, and indicate whether the data of the corresponding data field is valid or not. In the four data fields of one entry, 4-byte data of a continuous address read from the main memory 5 at a time is stored, respectively.

【0098】ラインバッファ25の検索は、アドレス間
接モードのうち、ポストインクレメントおよびプリディ
クレメントモードのときに行なう。
[0098] of the line buffer 25 search of the address indirect mode, carried out at the time of the post-increment and pre-decrement mode.

【0099】ポストインクレメントおよびプリデクレメ
ントモードは、アドレスレジスタの値を1ずつ加算又は
減算し、連続したアドレスに格納されているデータを次
々に読み出し処理するモードである。
The post-increment and pre-decrement modes are modes in which the value of the address register is incremented or decremented by one, and data stored at consecutive addresses are read out one after another.

【0100】本モードにおいて、最初のデータを読み出
す場合、ラインバッファを検索しても該当エントリが存
在しないのが通常である。したがって、主記憶5へ線l
33を介してアドレスを送出する。このとき、主記憶5
から4バイトのデータが1度に読み出され、線l21を
介して本モードの命令で指定されたアドレスレジスタに
対応するエントリに書込まれる。同時に、データは選択
回路22から線l43へ出力される。
In this mode, when the first data is read out, it is normal that the corresponding entry does not exist even if the line buffer is searched. Therefore, the line l
The address is sent out via 33. At this time, the main memory 5
Is read out at a time, and written to the entry corresponding to the address register specified by the instruction in this mode via the line l21. At the same time, the data is output from the selection circuit 22 to the line 143.

【0101】このとき、線l43へは32ビットのデー
タが送られるが、オペランドとして必要なデータはオペ
ランドサイズで指定されるバイト数のデータである。こ
のデータの切出しは、前述のデータ指定回路454,お
よびインターフェイス451により行なわれる。
At this time, although 32-bit data is sent to the line 143, the data required as an operand is data of the number of bytes specified by the operand size. The extraction of the data is performed by the data designating circuit 454 and the interface 451 described above.

【0102】最初のデータの処理が済むと、本モードの
命令で指定されるアドレスレジスタの内容が1増加、又
は減少し、次のデータを読み出す。このとき線l33に
出力されるアドレスは、先に出力したアドレスに連続し
たアドレスであるので、先にラインバッファに記憶した
データの中に該当アドレスが存在する確率が極めて高
い。検索の結果ヒットした場合には、主記憶5へはデー
タを読み出しに行かず、該当エントリの4バイトのデー
タを線l43に出力する。又、線l25へ出力を出し、
選択回路22の主記憶5へのアクセスを禁止させる。
When the processing of the first data is completed, the contents of the address register designated by the instruction in this mode increases or decreases by 1, and the next data is read. At this time, the address output to the line l33 is an address that is consecutive to the previously output address. Therefore, there is an extremely high probability that the corresponding address exists in the data previously stored in the line buffer. If the search results in a hit, the data is not read out to the main memory 5 but the 4-byte data of the corresponding entry is output to the line l43. Also, output is output to line 125,
The access to the main memory 5 of the selection circuit 22 is prohibited.

【0103】尚、命令実行ユニット4において、命令実
行結果が得られ、線l43に該実行結果が出力され、線
l33に該実行結果を格納すべき主記憶5上のアドレス
が出力されたときには、ラインバッファ25はそのアド
レスで検索される。そのアドレスが存在し、かつ有効ビ
ットがセットされている場合、該当エントリのデータフ
ィールドのデータが線l33上の実行結果に書換えられ
る。有効ビットはセットされる。この時ヒットしたとし
ても、線l25には何も出力しない。したがって選択回
路22は主記憶5へのアクセスを禁止されない。又、検
索の結果、ミスヒットした場合には、ラインバッファ2
5のデータ書換えは行なわない。この操作もオペランド
バッファと同様、ラインバッファの内容を主記憶5の内
容と一致させておくための処置である。
In the instruction execution unit 4, when an instruction execution result is obtained, the execution result is output on a line l43, and an address on the main memory 5 where the execution result is to be stored is output on a line l33, The line buffer 25 is searched by the address. If the address exists and the valid bit is set, the data in the data field of the entry is rewritten to the execution result on line l33. The valid bit is set. Even if a hit occurs at this time, nothing is output to the line 125. Therefore, access to the main memory 5 of the selection circuit 22 is not prohibited. If the search results in a mishit, the line buffer 2
5 is not rewritten. This operation is also a process for keeping the contents of the line buffer coincident with the contents of the main memory 5 as in the case of the operand buffer.

【0104】以上のように、ラインバッファ25を用い
ることにより、ポストインクリメント・プリデクレメン
トモードにおいては、平均4バイトに1回の割りで主記
憶へアクセスすればよいことになり、高速読み出しが可
能となる。特にオペランドサイズが1バイトと指定され
た場合には、オペランドデータを4つ処理する間に、一
回のみ主記憶へアクセスすればよいことになる。
As described above, by using the line buffer 25, in the post-increment / pre-decrement mode, it is sufficient to access the main memory once every four bytes on average, and high-speed reading is possible. Becomes In particular, when the operand size is designated as 1 byte, the main memory needs to be accessed only once during the processing of four operand data.

【0105】 インターフェイスユニット2 選択回路22は、線l31を介して与えられた命令アド
レス又は線l33を介して与えられたオペランドデータ
アドレスのいずれか一方を線l23を介して主記憶5へ
送出するものである。
The interface unit 2 selection circuit 22 sends one of the instruction address given via the line l31 and the operand data address given via the line l33 to the main memory 5 via the line l23. It is.

【0106】図11に選択回路の構成図を示す。線l3
11は読出し要求信号、線l312はアドレス信号で線
l31を構成する。線l331はフェッチ要求信号、線
l332はアドレス信号で線l33を構成する。AND
回路222は線l311および線l26上の信号の論理
積を求め、連想メモリ31がヒットしたときに命令制御
回路3から主記憶5へのアクセスを禁止する信号を出力
する。AND回路226は線l331および線l25上
の信号の論理積を求め、連想メモリ21がヒットしたと
きに命令実行ユニット4からの主記憶5へのアクセスを
禁止する信号を出力する。
FIG. 11 shows a configuration diagram of the selection circuit. Line l3
11 is a read request signal, and line l312 is an address signal, constituting line l31. A line l331 is a fetch request signal, and a line l332 is a line l33 with an address signal. AND
The circuit 222 obtains the logical product of the signals on the lines l311 and l26, and outputs a signal for inhibiting the access from the instruction control circuit 3 to the main memory 5 when the associative memory 31 hits. The AND circuit 226 calculates the logical product of the signals on the lines l331 and l125, and outputs a signal for inhibiting the instruction execution unit 4 from accessing the main memory 5 when the associative memory 21 hits.

【0107】AND回路223および227は、命令実
行ユニット4からのアクセス要求を優先させるための回
路である。AND回路223および227により、フリ
ップフロップ224あるいは228のいずれか一方がセ
ットされる。セレクタ221はフリップフロップ224
あるいは228により選ばれた一方のアドレス信号を線
l232に出力する回路である。
The AND circuits 223 and 227 are circuits for giving priority to an access request from the instruction execution unit 4. One of flip-flops 224 and 228 is set by AND circuits 223 and 227. The selector 221 has a flip-flop 224
Alternatively, it is a circuit that outputs one address signal selected by 228 to a line l232.

【0108】OR回路230は、フリップフロップ22
4,228の出力の論理和を求め、フェッチ要求信号を
線l231に出力する回路である。線l231およびl
232により線l23を構成する。
The OR circuit 230 is connected to the flip-flop 22
This circuit calculates the logical sum of the outputs of 4,228 and outputs a fetch request signal to a line l231. Lines l231 and l
232 constitutes a line 123.

【0109】主記憶5からのデータは線l24を介して
得られる。線l241はフェッチ終了(読出し終了)信
号であり、データの用意が整ったことを知らせる。線l
242上にはデータ自体が入力される。
Data from main memory 5 is obtained via line 124. A line l241 is a fetch end (readout end) signal, which indicates that data is ready. Line l
The data itself is input on 242.

【0110】AND回路225および229は、線l2
31にフェッチ要求を出したのが命令制御ユニット3で
あるか命令実行ユニット4であるかを判定し、要求を出
した方の線(l351あるいはl211)へフェッチ終
了信号によりデータの準備ができたことを知らせる。命
令制御ユニット3,命令実行ユニット4は、夫々線l3
5内のl351あるいは線l21内のl211を見てフ
ェッチ要求に対する応答があったか否か判断し、フェッ
チ要求をオフすることになる。
AND circuits 225 and 229 are connected to line l2
It is determined whether the instruction control unit 3 or the instruction execution unit 4 has issued the fetch request to the line 31, and the data is ready by the fetch end signal to the line (l351 or l211) that issued the request. Let them know. The instruction control unit 3 and the instruction execution unit 4 each have a line l3.
By looking at l351 in line 5 or l211 in line l21, it is determined whether or not there is a response to the fetch request, and the fetch request is turned off.

【0111】 パージ制御回路6 パージ制御回路6は、パージ信号を線l61から入力さ
れると、線l62にパージ指令信号を出力し、又線l6
3にパージ命令を出力する。
Purge control circuit 6 The purge control circuit 6 outputs a purge command signal to a line 162 when a purge signal is input from a line 161, and outputs a purge command signal to a line 162.
3 to output a purge command.

【0112】パージ制御回路6の構成図を図12に示
す。パージ制御回路6の入力、線l61及びl64は図
4から明らかなとおり、データ処理装置1の外部から入
力される信号線であり、l61にはパージ信号が入力さ
れ、l64にはレジスタ66に格納するパージ命令が入
力される。また、パージ制御回路6の入力、線l41及
びl49は、図8に示された命令実効ユニット4内の処
理回路45から入力される信号線であり、l41には次
命令要求信号が入力され、l49にはパージクリア信号
が入力される。
FIG. 12 shows a configuration diagram of the purge control circuit 6. The inputs of the purge control circuit 6, lines l61 and l64 are
As is clear from FIG.
The purge signal is input to l61.
The purge command stored in the register 66 is input to l64.
Is forced. Further, the input of the purge control circuit 6, the line
And 149 are processes in the instruction execution unit 4 shown in FIG.
Signal line input from the logic circuit 45,
A command request signal is input, and a purge clear signal is provided at l49.
Is entered.

【0113】パージ信号を線l61から入力すると、A
ND回路64を介してフリップフロップ65のD端子を
highにする。次命令要求信号が線l41を介して入
力されると、そのタイミングでD端子の入力をラッチ
し、線l62のパージ指令信号をオンする。したがっ
て、線l64を介してあらかじめパージ命令を記憶した
レジスタ66の内容が、線l63を介してレジスタ38
1(図4)にラッチされる。又このとき、フリップフロ
ップ62もセットされる。命令実行ユニット4にてパー
ジ命令が実行されると、まずパージクリア信号が線l4
9に出力される。これによりフリップフロップ62をリ
セットする。遅延回路63,AND回路64を介してフ
リップフロップ65のD入力をLowにする。パージ命
令の実行が終了すると、線l41の次命令要求信号がオ
ンする。これによりフリップフロップ62はセットされ
フリップフロップ65はリセットされる。フリップフロ
ップ62の出力は遅延回路63に入力される。この間に
レジスタ381は、選択回路47からの命令デコード結
果がラッチされることになる。その後、遅延回路63か
らの出力がhighになる。このとき線l61がまだパ
ージ信号を出力している場合には、フリップフロップ6
5のD入力はhighになっている。したがって、次命
令要求信号が入力されると、再び線l62にパージ指令
信号を出力する。
When a purge signal is input from line l61, A
The D terminal of the flip-flop 65 is set high through the ND circuit 64. When the next command request signal is input via the line l41, the input of the D terminal is latched at that timing, and the purge command signal on the line l62 is turned on. Therefore, the contents of the register 66 in which the purge command is stored in advance via the line l64 are stored in the register 38 via the line l63.
1 (FIG. 4) . At this time, the flip-flop 62 is also set. When a purge command is executed by the command execution unit 4, first, a purge clear signal is output from a line l4.
9 is output. Thereby, the flip-flop 62 is reset. The D input of the flip-flop 65 is set to Low via the delay circuit 63 and the AND circuit 64. When the execution of the purge command is completed, the next command request signal on line l41 turns on. As a result, the flip-flop 62 is set and the flip-flop 65 is reset. The output of the flip-flop 62 is input to the delay circuit 63. During this time, the register 381 latches the instruction decode result from the selection circuit 47. Thereafter, the output from the delay circuit 63 becomes high. At this time, if the line l61 is still outputting the purge signal, the flip-flop 6
The D input of 5 is high. Therefore, when the next command request signal is input, a purge command signal is output again on line l62.

【0114】線l61およびl63には、図示しないア
ドレス変換回路を接続することができる。
An address conversion circuit (not shown) can be connected to lines l61 and l63.

【0115】アドレス変換回路は前述のように、データ
処理装置内で用いるアドレスと、データ処理装置外の装
置に与えられるアドレスが異なるシステムに用いるもの
である。
As described above, the address conversion circuit is used for a system in which an address used in the data processing device is different from an address given to a device outside the data processing device.

【0116】尚、本実施例においては、パージ命令をレ
ジスタ381に交互にラッチさせることができるように
しているが、これは、データ処理装置に通常の命令を一
ステップずつ実行させ、プログラムのチェックを行なう
ためである。
In the present embodiment, the purge instruction can be alternately latched in the register 381. This is because the data processor executes the normal instruction one step at a time and checks the program. In order to carry out.

【0117】3)動作説明 次に本データ処理装置における動作について説明する。3) Description of Operation Next, the operation of the data processing apparatus will be described.

【0118】図13に本データ処理装置において実行さ
れる命令列の一例を示す。
FIG. 13 shows an example of an instruction sequence executed in the data processing apparatus.

【0119】命令はNo.1からNo.11まで主記憶上
の連続したアドレスに格納されている。
The instructions are stored at consecutive addresses in the main memory from No. 1 to No. 11.

【0120】命令No.1,No.2はスタックポインタが
示すアドレスのデータを、夫々の命令で指定するデータ
レジスタへ格納する命令である。
Instructions No. 1 and No. 2 are instructions for storing the data at the address indicated by the stack pointer in the data register specified by each instruction.

【0121】命令No.3は、命令No.1,No.2で夫々
データが格納されたレジスタの内容を加算し、その結果
をいずれかのデータレジスタに格納する命令である。
The instruction No. 3 is an instruction for adding the contents of the registers storing the data in the instructions No. 1 and No. 2, respectively, and storing the result in one of the data registers.

【0122】命令No.4は、命令で指定されたデータレ
ジスタの内容を、命令で指定されたアドレスレジスタで
指示されるアドレスに格納される命令である。
Instruction No. 4 is an instruction for storing the contents of the data register specified by the instruction at the address specified by the address register specified by the instruction.

【0123】命令No.5は、命令で指定されたアドレス
レジスタで指示されるアドレスの命令へジャンプする命
令である。本例の場合は、命令No.10へジャンプする
ものとしている。
The instruction No. 5 is an instruction for jumping to the instruction at the address specified by the address register specified by the instruction. In the case of this example, it is assumed that the processing jumps to the instruction No. 10.

【0124】命令No.10は、命令で指定される2つの
データレジスタの内容を加算する命令である。
The instruction No. 10 is an instruction for adding the contents of two data registers specified by the instruction.

【0125】以上の命令列を実行した場合の、タイムチ
ャートを図14(a)に示す。
FIG. 14A shows a time chart when the above-described instruction sequence is executed.

【0126】 サイクルT1 アドレス発生回路32は、線l31へ命令No.1のアド
レスを出力する。連想メモリ31は、該アドレスで検索
されるが、ヒットしない場合は主記憶5へデータを読み
に行く。主記憶5から読まれたデータは連想メモリ31
へ格納されると伴に、メモリ34へ格納される。
The cycle T 1 address generation circuit 32 outputs the address of the instruction No. 1 to the line l31. The associative memory 31 is searched at the address. If no hit is found, the data is read to the main memory 5. Data read from the main memory 5 is stored in the associative memory 31.
Is also stored in the memory 34.

【0127】 サイクルT2 メモリ34に空きがあるので、アドレス発生回路32は
命令No.2のアドレスを出力する。連想メモリ31は、
先の命令No.1と同様に該アドレスで検索され、ヒット
しない場合は主記憶5からのデータを書込む。又、読ま
れたデータはメモリ34へ格納される。
Since there is free space in the cycle T 2 memory 34, the address generation circuit 32 outputs the address of the instruction No. 2. The associative memory 31
Similar to the instruction No. 1, the address is searched for, and if no hit is found, the data from the main memory 5 is written. The read data is stored in the memory 34.

【0128】デコーダ35は、メモリ34からの命令N
o.1を解析し、解析結果をレジスタ38へ格納する。
The decoder 35 receives the instruction N from the memory 34
o.1 is analyzed, and the analysis result is stored in the register 38.

【0129】レジスタ38へ格納された命令No.1のマ
イクロ命令列は、命令実行ユニット4において実行が開
始される。
The micro instruction sequence of the instruction No. 1 stored in the register 38 is started to be executed in the instruction execution unit 4.

【0130】実行時において、データレジスタへ格納す
るためのオペランドデータのアドレスを線l33へ出力
するが、本命令はスタック命令であるので、連想メモリ
24内に該当するエントリが存在する可能性が高い。し
たがって命令制御ユニット3からの命令No.2の読み出
し要求と、命令実行ユニット4からのオペランドデータ
の読み出し要求が競合することが少なくなる。
At the time of execution, the address of the operand data to be stored in the data register is output to line 133. Since this instruction is a stack instruction, there is a high possibility that the corresponding entry exists in associative memory 24. . Therefore, the conflict between the read request of the instruction No. 2 from the instruction control unit 3 and the read request of the operand data from the instruction execution unit 4 is reduced.

【0131】又、逆に、連想メモリ31に命令No.2が
存在する場合には、連想メモリ24にオペランドデータ
が存在するか否かにかかわらず、命令制御ユニット3と
命令実行ユニット4との主記憶5への読み出し要求は競
合しない。
On the other hand, when the instruction No. 2 exists in the associative memory 31, regardless of whether the associative memory 24 has operand data or not, the instruction control unit 3 and the instruction execution unit 4 Read requests to the main memory 5 do not conflict.

【0132】 サイクルT3 命令No.3が命令No.1,2と同様にして主記憶5から
読み出され、メモリ34へ格納される。
The cycle T 3 instruction No. 3 is read from the main memory 5 in the same manner as the instructions No. 1 and No. 2 and stored in the memory 34.

【0133】デコーダ35においては、命令No.2の解
析が行なわれる。
In the decoder 35, the instruction No. 2 is analyzed.

【0134】命令実行ユニット4では、命令No.1の実
行が終了し、命令No.2の実行が開始される。
In the instruction execution unit 4, the execution of the instruction No. 1 is completed, and the execution of the instruction No. 2 is started.

【0135】命令No.2は、命令No.1と同様スタック
命令であり、連想メモリ24の検索が行なわれ、ミスヒ
ットの時には主記憶5へオペランドデータを読みに行
く。この場合における命令制御ユニット3と命令実行ユ
ニット4と競合については、命令No.1の場合と同様で
ある。
The instruction No. 2 is a stack instruction similar to the instruction No. 1, and the associative memory 24 is searched. When there is a mishit, the operand data is read to the main memory 5. The conflict between the instruction control unit 3 and the instruction execution unit 4 in this case is the same as that of the instruction No. 1.

【0136】 サイクルT4 命令No.4が命令No.1等と同様にして主記憶5から読
出され、メモリ34へ格納される。
Cycle T 4 Instruction No. 4 is read from the main memory 5 and stored in the memory 34 in the same manner as the instruction No. 1 and the like.

【0137】デコーダ35においては、命令No.3の解
析が行なわれる。
In the decoder 35, the instruction No. 3 is analyzed.

【0138】命令実行ユニット4では、命令No.2の実
行が終了し、命令No.3の実行が開始される。
In the instruction execution unit 4, the execution of the instruction No. 2 is completed, and the execution of the instruction No. 3 is started.

【0139】命令No.3は、命令実行ユニット4内のデ
ータレジスタを用いて演算する命令であるため、主記憶
5へのオペランドデータを読出しに行くことはない。
The instruction No. 3 is an instruction which performs an operation using the data register in the instruction execution unit 4, and therefore does not go to read the operand data to the main memory 5.

【0140】 サイクルT5 命令No.5が命令No.1と同様にして主記憶5から読出
され、メモリ34へ格納される。
Cycle T 5 Instruction No. 5 is read from main memory 5 and stored in memory 34 in the same manner as Instruction No. 1.

【0141】デコーダ35においては、命令No.4の解
析が行なわれる。
At the decoder 35, the instruction No. 4 is analyzed.

【0142】命令実行ユニット4では、命令No.3の実
行が終了し、命令No.4の実行が開始される。
In the instruction execution unit 4, the execution of the instruction No. 3 is completed, and the execution of the instruction No. 4 is started.

【0143】命令No.4は、主記憶へデータレジスタの
データを書込む命令である。線l33にはデータを書込
む先のアドレスが出力される。オペランドバッファ24
は、本アドレスがスタックの内容を書換えるものか否か
をチェックし、書換えるものであるときは、オペランド
バッファの内容を線l43上のデータに書換える。線l
43上のデータは、主記憶5へ送出される。
Instruction No. 4 is an instruction for writing the data of the data register to the main memory. The address to which data is to be written is output to the line l33. Operand buffer 24
Checks whether or not this address is for rewriting the contents of the stack, and if so, rewrites the contents of the operand buffer to the data on line l43. Line l
The data on 43 is sent to the main memory 5.

【0144】 サイクルT6 命令No.6が命令No.1と同様にして主記憶5から読出
され、メモリ34へ格納される。
Cycle T 6 Instruction No. 6 is read from main memory 5 and stored in memory 34 in the same manner as Instruction No. 1.

【0145】デコーダ35においては、命令No.5の解
析が行なわれる。
In the decoder 35, the instruction No. 5 is analyzed.

【0146】一方、アドレス発生回路36は、線l32
に命令実行ユニットが実行している命令No.5のアドレ
スを出力する。連想メモリ36は、該アドレスで検索さ
れる。該当するエントリが存在しない場合には、連想メ
モリ37,38からの出力はない。該当するエントリが
存在する場合には、後述する(10)以降のタイムチャート
となる。
On the other hand, the address generating circuit 36
To the address of the instruction No. 5 being executed by the instruction execution unit. The associative memory 36 is searched by the address. If there is no corresponding entry, there is no output from the associative memories 37 and 38. If the corresponding entry exists, the time chart after (10) will be described later.

【0147】命令実行ユニット4では、命令No.4の実
行が終了し、命令No.5の実行が開始される。
In the instruction execution unit 4, the execution of the instruction No. 4 is completed, and the execution of the instruction No. 5 is started.

【0148】 サイクルT7 命令No.7が命令No.1と同様にして主記憶5から読出
され、メモリ34へ格納される。
Cycle T 7 Instruction No. 7 is read from main memory 5 and stored in memory 34 in the same manner as Instruction No. 1.

【0149】デコーダ35においては、命令No.6の解
析が行われる。
In the decoder 35, the instruction No. 6 is analyzed.

【0150】命令実行ユニット4では、命令No.10の
アドレスを線l33に出力する。
The instruction execution unit 4 outputs the address of the instruction No. 10 to the line 133.

【0151】又、命令実行ユニット4は、分岐が成功し
たために、メモリ34の内容をクリアする。
The instruction execution unit 4 clears the contents of the memory 34 because the branch was successful.

【0152】 サイクルT8 アドレス発生回路32は、線l33上の命令No.10の
アドレスを取込み、線l31へ命令No.10のアドレス
を出力する。命令No.10は、命令No.1と同様にし
て、メモリ34へ格納される。
The cycle T 8 address generation circuit 32 takes in the address of the instruction No. 10 on the line l33 and outputs the address of the instruction No. 10 to the line l31. The instruction No. 10 is equivalent to the instruction No. 1 is stored in the memory 34.

【0153】デコーダ35においては、メモリ34の内
容がサイクルT7においてクリアされてしまったので何
もしない。
[0153] In the decoder 35, the contents of the memory 34 is not nothing since had been cleared in cycle T 7.

【0154】命令実行ユニット4においても実行すべき
命令が解読されていないので何も行なわない。
In the instruction execution unit 4, nothing is performed because the instruction to be executed has not been decoded.

【0155】連想メモリ38に命令No.10自体が格納
される。
The instruction No. 10 itself is stored in the associative memory 38.

【0156】 サイクルT9 命令No.11が命令No.1と同様にして主記憶5から読
み出され、メモリ34へ格納される。
Cycle T 9 The instruction No. 11 is read from the main memory 5 and stored in the memory 34 in the same manner as the instruction No. 1.

【0157】デコーダ35においては命令No.10の解
析が行なわれる。解析結果は、連想メモリ37へ格納さ
れる。又、命令No.11自体も連想メモリ36へ格納さ
れる。このとき連想メモリ36には、命令実行ユニット
4で最後に実行した命令No.5のアドレスが格納され
る。したがって、同一のエントリに、分岐元アドレス、
分岐先命令,分岐先命令解析結果分岐先次命令が格納さ
れることになる。
In the decoder 35, the instruction No. 10 is analyzed. The analysis result is stored in the associative memory 37. The instruction No. 11 itself is also stored in the associative memory 36. At this time, the address of the instruction No. 5 executed last by the instruction execution unit 4 is stored in the associative memory 36. Therefore, the same entry contains the branch source address,
The branch destination instruction and the branch destination instruction analysis result store the branch destination next instruction.

【0158】命令実行ユニット4においては、命令No.
10の解析終了をまって、実行が行なわれる。
In the instruction execution unit 4, the instruction No.
At the end of the analysis at 10, execution is performed.

【0159】(10) サイクルT7 サイクルT6において、連想メモリ36に該当するエン
トリが存在すると、図14(b)のように直ちに連想メ
モリ37および38より命令No.10の解析結果、命令
自体が読出される。又、連想メモリ36からは命令No.
11も読出されメモリ34へ格納される。
(10) Cycle T 7 In cycle T 6 , if the corresponding entry exists in the associative memory 36, the analysis results of the instruction No. 10 and the instruction itself are immediately transmitted from the associative memories 37 and 38 as shown in FIG. Is read. The instruction No. is output from the associative memory 36.
11 is also read and stored in the memory 34.

【0160】サイクルT7において、アドレス発生回路
32は、線l33を介して与えられる命令No.10のア
ドレスに対し、命令No.10およびNo.11の長さ分加
算して命令No.12のアドレスを作り線l31へ出力す
る。読み出された命令No.12はメモリ34へ格納され
る。
In cycle T 7 , the address generation circuit 32 adds the address of the instruction No. 10 given via the line 133 to the address of the instruction No. 10 and adds the length of the instruction No. An address is created and output to line l31. The read instruction No. 12 is stored in the memory 34.

【0161】デコーダ35においては、命令No.11の
解析が行なわれている。
In the decoder 35, the instruction No. 11 is analyzed.

【0162】命令実行ユニット4は、命令No.5の実行
終了後直ちに、連想メモリ37および38から読み出さ
れた命令No.10を実行する。
The instruction execution unit 4 executes the instruction No. 10 read from the associative memories 37 and 38 immediately after the execution of the instruction No. 5 is completed.

【0163】[0163]

【発明の効果】以上のように本発明によれば、命令制御
ユニットと、命令実行ユニットが並列動作したとして
も、主記憶へのデータ読出しの競合がおこりにくくな
り、命令処理の高速化が図れる。
As described above, according to the present invention, even if the instruction control unit and the instruction execution unit operate in parallel, competition for reading data from the main memory hardly occurs, and the speed of instruction processing can be increased. .

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

【図1】従来のデータ処理装置の回路図。FIG. 1 is a circuit diagram of a conventional data processing device.

【図2】本発明の実施例に用いる命令フォーマットを示
す図。
FIG. 2 is a diagram showing an instruction format used in an embodiment of the present invention.

【図3】実施例に用いる特殊命令のフォーマットを示す
図。
FIG. 3 is a diagram showing a format of a special instruction used in the embodiment.

【図4】実施例の構成図。FIG. 4 is a configuration diagram of an embodiment.

【図5】実施例に用いるアドレス発生回路32の構成
図。
FIG. 5 is a configuration diagram of an address generation circuit 32 used in the embodiment.

【図6】実施例に用いる連想メモリ31の構成図。FIG. 6 is a configuration diagram of an associative memory 31 used in the embodiment.

【図7】実施例に用いる連想メモリ36,37,38の
構成図。
FIG. 7 is a configuration diagram of associative memories 36, 37, and 38 used in the embodiment.

【図8】実施例に用いる処理回路35の構成図。FIG. 8 is a configuration diagram of a processing circuit 35 used in the embodiment.

【図9】実施例に用いるオペランドバッファ24の構成
図。
FIG. 9 is a configuration diagram of an operand buffer 24 used in the embodiment.

【図10】実施例に用いるラインバッファの構成図。FIG. 10 is a configuration diagram of a line buffer used in the embodiment.

【図11】実施例に用いる選択回路21の構成図。FIG. 11 is a configuration diagram of a selection circuit 21 used in the embodiment.

【図12】実施例に用いるパージ制御回路6の構成図。FIG. 12 is a configuration diagram of a purge control circuit 6 used in the embodiment.

【図13】実施例の装置で実行される命令列を示す図。FIG. 13 is a view showing an instruction sequence executed by the apparatus according to the embodiment.

【図14】図13で示した命令列を実施例の装置で実行
させたときのタイムチャート。
FIG. 14 is a time chart when the instruction sequence shown in FIG. 13 is executed by the apparatus of the embodiment.

【符号の説明】[Explanation of symbols]

1…データ処理装置、2…インターフェイスユニット、
3…命令制御ユニット、4…命令実行ユニット、5…主
記憶、6…パージ制御回路。
1. Data processing device 2. Interface unit
3. Command control unit, 4 command execution unit, 5 main memory, 6 purge control circuit.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 内山 邦男 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 川崎 郁也 東京都小平市上水本町1450番地 株式会 社日立製作所武蔵工場内 (72)発明者 花輪 誠 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭50−138728(JP,A) 実開 昭57−15494(JP,U) ──────────────────────────────────────────────────続 き Continuing from the front page (72) Kunio Uchiyama, Inventor 1-280, Higashi Koikebo, Kokubunji-shi, Tokyo Inside Central Research Laboratory, Hitachi, Ltd. (72) Ikuya Kawasaki 1450, Josuihoncho, Kodaira-shi, Tokyo Inside the Musashi Factory (72) Inventor Makoto Hanawa 1-280 Higashi Koikekubo, Kokubunji-shi, Tokyo Inside the Central Research Laboratory, Hitachi, Ltd. (56) References JP-A-50-138728 (JP, A) JP, U)

Claims (3)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】命令アドレスを発生する命令アドレス発生
部と、 複数の命令アドレスと該複数の命令アドレスに対応した
複数の命令とを格納する複数のエントリーを有する命令
キャッシュメモリと、上記命令アドレス発生部から発生された命令アドレスに
従って上記命令キャッシュメモリ若しくは他のメモリか
ら読み出された命令を解読し解読結果を生じる命令デコ
ーダと、 上記命令デコーダの出力に従い オペランドアドレスを発
生するオペランドアドレス発生部と、 複数のオペランドアドレスと該複数のオペランドアドレ
スに対応した複数のオペランドデータとを格納する複数
のエントリーを有するオペランドキャッシュメモリと 上記命令アドレス発生部が生成した 論理アドレスを物理
アドレスに変換するアドレス変換回路とを具備するデー
タ処理装置において、上記命令デコーダの出力 に従い、上記命令キャッシュメ
モリの複数のエントリー又は上記オペランドキャッシュ
メモリの複数のエントリーの何れかを指定して無効化せ
しめることを特徴とするデータ処理装置。
An instruction address generator for generating an instruction address; an instruction cache memory having a plurality of entries for storing a plurality of instruction addresses and a plurality of instructions corresponding to the plurality of instruction addresses; To the instruction address generated by the
Therefore, the instruction cache memory or other memory
Decode instructions that decode instructions read from
And an operand address generator for generating an operand address in accordance with the output of the instruction decoder, and an operand cache memory having a plurality of entries for storing a plurality of operand addresses and a plurality of operand data corresponding to the plurality of operand addresses When, in the data processing apparatus comprising an address conversion circuit for converting a logical address in which the instruction address generating unit has generated a physical address in accordance with the output of the instruction decoder, a plurality of entries of the instruction cache memory or the operand cache memory A data processing apparatus for designating any one of the plurality of entries to invalidate the data.
【請求項2】上記データ処理装置はLSIチップに形成
されたマイクロプロセッサであり、上記命令キャッシュ
メモリは上記チップ内に形成されてなることを特徴とす
る請求項1に記載のデータ処理装置。
2. The data processing device according to claim 1, wherein said data processing device is a microprocessor formed on an LSI chip, and said instruction cache memory is formed in said chip.
【請求項3】上記命令キャッシュメモリは連想メモリで
あることを特徴とする請求項1または請求項2に記載の
データ処理装置。
3. The data processing apparatus according to claim 1, wherein said instruction cache memory is an associative memory.
JP8004514A 1996-01-16 1996-01-16 Data processing device Expired - Lifetime JP2656765B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8004514A JP2656765B2 (en) 1996-01-16 1996-01-16 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8004514A JP2656765B2 (en) 1996-01-16 1996-01-16 Data processing device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP60050512A Division JP2539357B2 (en) 1985-03-15 1985-03-15 Data processing device

Publications (2)

Publication Number Publication Date
JPH08249230A JPH08249230A (en) 1996-09-27
JP2656765B2 true JP2656765B2 (en) 1997-09-24

Family

ID=11586171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8004514A Expired - Lifetime JP2656765B2 (en) 1996-01-16 1996-01-16 Data processing device

Country Status (1)

Country Link
JP (1) JP2656765B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002169724A (en) * 2000-12-01 2002-06-14 Oki Electric Ind Co Ltd Partial invalidation device in cache memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging
JPS5591594A (en) * 1978-12-28 1980-07-11 Fuoresuto Electric Co Dc stabilized starter circuit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002169724A (en) * 2000-12-01 2002-06-14 Oki Electric Ind Co Ltd Partial invalidation device in cache memory

Also Published As

Publication number Publication date
JPH08249230A (en) 1996-09-27

Similar Documents

Publication Publication Date Title
JP2539357B2 (en) Data processing device
EP0380859B1 (en) Method of preprocessing multiple instructions
US6240484B1 (en) Linearly addressable microprocessor cache
US5367705A (en) In-register data manipulation using data shift in reduced instruction set processor
US5652900A (en) Data processor having 2n bits width data bus for context switching function
US5535350A (en) Cache memory unit including a replacement address register and address update circuitry for reduced cache overhead
JP3639927B2 (en) Data processing device
EP0380846A2 (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipeline computer system
JPS6323586B2 (en)
US5446849A (en) Electronic computer which executes squash branching
JPH10198563A (en) Dynamically loadable pattern history chart in microprocessor
EP0173981A2 (en) Cache memory control circuit
US6684319B1 (en) System for efficient operation of a very long instruction word digital signal processor
US5226169A (en) System for execution of storage-immediate and storage-storage instructions within cache buffer storage
US5313613A (en) Execution of storage-immediate and storage-storage instructions within cache buffer storage
JPH05120013A (en) Data processor with branch instruction buffer
US5206945A (en) Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses
US5740418A (en) Pipelined processor carrying out branch prediction by BTB
JPH08221324A (en) Access to cache memory
US6757809B1 (en) Data processor having 2n bits width data bus for context switching functions
JP2656765B2 (en) Data processing device
US5269008A (en) Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
US5361338A (en) Pipelined system for decomposing instruction into two decoding parts and either concurrently generating two operands addresses of merging decomposing decoding codes based upon the second operand
KR920002573B1 (en) Data processor
JPH02214937A (en) Data processor

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19970506

EXPY Cancellation because of completion of term
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370