JPH0566939A - Block operating instruction executing device for integrated circuit microprocessor - Google Patents

Block operating instruction executing device for integrated circuit microprocessor

Info

Publication number
JPH0566939A
JPH0566939A JP30727991A JP30727991A JPH0566939A JP H0566939 A JPH0566939 A JP H0566939A JP 30727991 A JP30727991 A JP 30727991A JP 30727991 A JP30727991 A JP 30727991A JP H0566939 A JPH0566939 A JP H0566939A
Authority
JP
Japan
Prior art keywords
instruction
block
bus
unit
integrated circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP30727991A
Other languages
Japanese (ja)
Inventor
Takeshi Sato
武 佐藤
Masamichi Izumida
正道 泉田
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.)
V M TECHNOL KK
VM TECHNOLOGY KK
Original Assignee
V M TECHNOL KK
VM TECHNOLOGY KK
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 V M TECHNOL KK, VM TECHNOLOGY KK filed Critical V M TECHNOL KK
Priority to JP30727991A priority Critical patent/JPH0566939A/en
Publication of JPH0566939A publication Critical patent/JPH0566939A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To carry out an instruction called a block operation or a string operation which repeats the same operation with high efficiency by carrying out each unit operation on a pipeline for the block operation instruction. CONSTITUTION:An instruction decoding means can decode a block operation instruction which has the contents to carry out repetitively the same unit operation. An instruction executing means repeats the unit operations forming the block operation instruction in a pipeline control system based on the decoding result of the instruction decoding means. Then the continuous unit operations, e.g. the unit operations (1) and (2) are turned into a pipeline when a microprocessor carries out a block comparison instruction. As a result, the availability is improved for a bus device where an integrated circuit microprocessor is connected to an external storage and an input device. Then the total throughput of the integrated circuit microprocessor is improved.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は集積回路マイクロプロセ
ッサに関し、さらに詳しくは、同一の動作を複数回繰り
返すことを内容とする「ブロック操作」命令を実行可能
な命令実行装置に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an integrated circuit microprocessor and, more particularly, to an instruction execution device capable of executing a "block operation" instruction, which is characterized by repeating the same operation a plurality of times.

【0002】[0002]

【従来の技術】多くの集積回路マイクロプロセッサは、
「ストリング操作」あるいは「ブロック操作」と呼ばれ
る命令あるいは命令群を持っている。このような命令
は、一つの命令で同一の操作を繰り返し実施することを
内容とするものである。本明細書の全体を通じて、この
ような命令を「ブロック操作命令」と呼ぶものとする。
また、この「ブロック操作命令」における繰り返し実施
される同一の操作を「単位操作」と呼ぶものとする。こ
れらの命令の実行においては、同一の処理を内容とする
命令を繰り返し実行する場合とは異なり、1命令毎の命
令フェッチ動作、命令デコード動作等が不要となる。従
って、ブロック操作命令は、主として、主記憶装置上に
あるマイクロプロセッサの通常処理できるバイト、ワー
ド等のデータに比べて大きなデータ構造、例えば文字
列、バッファ、データ・フレームなどを1命令で操作す
る場合に適しており、ブロック転送と呼ばれる単なるデ
ータ構造の移動から、文字列比較、ブロック入出力と呼
ばれるデータの一括入出力まで数々のものが実用に供さ
れている。
BACKGROUND OF THE INVENTION Many integrated circuit microprocessors include
It has an instruction or group of instructions called "string operation" or "block operation". Such an instruction has the content that the same operation is repeatedly performed by one instruction. Throughout this specification, such instructions will be referred to as "block manipulation instructions."
Further, the same operation that is repeatedly executed in this "block operation instruction" is referred to as a "unit operation". In executing these instructions, unlike the case of repeatedly executing the instructions having the same processing, the instruction fetch operation and instruction decode operation for each instruction are not necessary. Therefore, the block operation instruction mainly operates a data structure, such as a character string, a buffer, or a data frame, which is larger than the data such as bytes and words which can be normally processed by the microprocessor in the main memory, by one instruction. It is suitable for various cases, and various things are practically used, from simple data structure movement called block transfer to character string comparison and batch data input / output called block input / output.

【0003】このように、ブロック操作命令は1つの命
令で同一の単位操作を繰り返し実施するために、命令を
組み合わせた場合に比べて、命令フェッチ動作および命
令デコード動作等による速度の低下がなく、非常に効率
的な処理となる。
As described above, since the block operation instruction repeatedly executes the same unit operation with one instruction, there is no reduction in speed due to the instruction fetch operation and instruction decode operation as compared with the case where the instructions are combined, It is a very efficient process.

【0004】[0004]

【発明が解決しようとする課題】しかしながら、ブロッ
ク操作命令の実行を、バス動作の点から考慮した場合に
は、必ずしも効率的ではない。すなわち、繰り返される
操作が単純な場合には、その実行のための演算処理など
には多くの時間を要しないので、バスはその性能限界ま
で使用され、使用効率が高い。しかし、繰り返される操
作が複雑な場合には、その実行のための演算処理等に多
くの時間が掛り、この処理時間の間はバスが未使用の状
態に放置されるので、その分バスの使用効率が低くな
る。この結果、集積回路マイクロプロセッサ全体として
のスループットも低下してしまう。
However, when the execution of the block operation instruction is considered from the viewpoint of bus operation, it is not always efficient. That is, when the repeated operation is simple, a lot of time is not required for the arithmetic processing for its execution, so that the bus is used up to its performance limit and the usage efficiency is high. However, if the repeated operation is complicated, it takes a lot of time to perform the arithmetic processing for its execution, and the bus is left unused during this processing time. Efficiency is low. As a result, the throughput of the integrated circuit microprocessor as a whole is also reduced.

【0005】本発明の課題は、この点に着目し、ブロッ
ク操作命令を実行する場合において、集積回路マイクロ
プロセッサと外部の主記憶装置および入出力装置とを結
合しているバス装置の使用効率を高めることにより、集
積回路マイクロプロセッサ全体としてのスループットの
向上を図ることにある。
In view of this point, an object of the present invention is to improve the efficiency of use of a bus device connecting an integrated circuit microprocessor with an external main memory device and an input / output device when executing a block operation instruction. By increasing it, it is intended to improve the throughput of the integrated circuit microprocessor as a whole.

【0006】[0006]

【課題を解決するための手段】上記の課題を解決するた
めに、本発明者はパイプライン制御方式に着目し、この
制御方式を利用してブロック操作命令の実行を効率良く
実行することを可能にしている。
In order to solve the above problems, the present inventor has paid attention to a pipeline control system, and can utilize this control system to efficiently execute a block operation instruction. I have to.

【0007】ここに、一般的に行われているパイプライ
ン制御方式では、命令の実行過程を、例えば命令コード
の読み出し(命令フェッチ)、動作の解読(デコー
ド)、命令実行および命令実行に伴うバス入出力動作の
4つに分けて、これらの部分処理を独立した装置に担当
させることにより、各装置を1つの命令に対する部分処
理に専念させて、全体として4つの連続した命令を同時
並行して実行させるようにしている。このようにする
と、集積回路マイクロプロセッサ全体としてのスループ
ットを、パイプライン処理を行わない場合に比べて、命
令の並行処理、同時処理が達成される分、この例では最
大4倍まで高めることができる。このようなパイプライ
ン制御方式は重要な高速化手法として確立しており、そ
の標準的手法は、処理の細分化、細分化された処理の装
置としての独立性、装置相互の結合であり、入力される
処理すべきデータを細分化された多段の装置に対して前
段側から順次に通過させることによって処理を施し、処
理済みのデータを次々に最終段の装置から出力させるよ
うに構成することである。ここで注意すべき点は、高速
化手法として確立されているパイプライン制御方式は、
命令単位で行われるものであり、一つの命令内における
各動作を対象とするものではない。
[0007] Here, in the pipeline control method which is generally performed, an instruction execution process is performed by, for example, reading an instruction code (instruction fetch), decoding an operation (decoding), executing an instruction, and executing a bus accompanying instruction execution. By dividing each of the input / output operations into four parts and letting these partial processes be handled by an independent device, each device is dedicated to the partial process for one instruction, and as a whole, four consecutive commands are simultaneously executed in parallel. I'm trying to run it. By doing so, the throughput of the integrated circuit microprocessor as a whole can be increased up to four times in this example by the amount that parallel processing of instructions and simultaneous processing are achieved as compared with the case where pipeline processing is not performed. .. Such a pipeline control method has been established as an important speed-up method, and its standard methods are subdivision of processing, independence of subdivided processing as a device, and connection between devices, and By performing processing by sequentially passing the data to be processed to the subdivided multi-stage device from the front stage side, the processed data is output from the last stage device one after another. is there. The point to be noted here is that the pipeline control method established as a speed-up method is
It is performed in units of instructions, and does not target each operation in one instruction.

【0008】本発明においては、このパイプライン制御
方式をブロック操作命令内における繰り返し実施される
単位操作に対して適用することによって、ブロック操作
命令を効率良く実行可能としている。そのために、本発
明による集積回路マイクロプロセッサの命令実行装置
は、同一の単位操作を繰り返し実施することを内容とす
る「ブロック操作」命令をデコード可能な命令デコード
手段と、前記命令デコード手段によるデコード結果に基
づき、ブロック操作命令を構成する前記単位操作をパイ
プライン制御方式により繰り返し実施する命令実行手段
とを有することを特徴としている。
In the present invention, the pipeline operation method is applied to the unit operation repeatedly executed in the block operation instruction, whereby the block operation instruction can be efficiently executed. To this end, the instruction execution device of the integrated circuit microprocessor according to the present invention is capable of decoding a "block operation" instruction having the content of repeatedly executing the same unit operation, and a decoding result by the instruction decoding means. And an instruction executing means for repeatedly executing the unit operation constituting the block operation instruction by a pipeline control method.

【0009】[0009]

【実施例】以下に図面を参照して、CMOS集積回路上
に実現した集積回路マイクロプロセッサに本発明を適用
した例を説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An example in which the present invention is applied to an integrated circuit microprocessor realized on a CMOS integrated circuit will be described below with reference to the drawings.

【0010】図1には、本例の集積回路マイクロプロセ
ッサにおける命令実行装置の部分を中心に示してある。
この図において、1はアドレス・バス、2は制御バス、
3はデータ・バスであり、それぞれバス・インタフェー
ス装置4に接続されている。バス・インタフェース装置
4は内部アドレス・バス装置5などを介して命令実行装
置6に接続されている。これら各部分の構成を以下に説
明する。
FIG. 1 mainly shows the part of the instruction execution device in the integrated circuit microprocessor of this embodiment.
In this figure, 1 is an address bus, 2 is a control bus,
A data bus 3 is connected to the bus interface device 4. The bus interface unit 4 is connected to the instruction execution unit 6 via the internal address bus unit 5 and the like. The configuration of each of these parts will be described below.

【0011】アドレス・バス1 集積回路マイクロプロセッサから外部の記憶装置、入出
力装置(共に図示せず)に向かう単方向に情報を伝達可
能な25ビットの信号線群である。このうち23ビット
が真のアドレス信号であり、2ビットがバイト操作用出
力である。本例の集積回路マイクロプロセッサはバイト
(8ビット)単位にアドレスを割り振っているが、後述
のようにデータ・バス3を16ビット幅に設定してある
ので、データ・バス3の上位あるいは下位8ビットのそ
れぞれの有効無効を示すバイト操作用出力を持ってい
る。23ビットのアドレスにより16Mバイト(8Mワ
ード)の主記憶装置にアクセス可能である。本例の集積
回路マイクロプロセッサの場合には、内部では32ビッ
トのアドレスを生成しているが、組み立て技術上、2ビ
ットのバイト操作用出力を加えた合計24ビット相当分
のアドレスのみ出力している。24ビット相当のアドレ
スの下位16ビット相当分のみを使用して入出力装置の
アドレスも指定可能である。アドレスが主記憶装置アド
レスおよび入出力装置アドレスの何れであるのかは、後
述の制御バス2の制御入出力のうちの出力信号MEM/
IO#を用いて判別される。なお、アドレス・バス1
は、集積回路マイクロプロセッサ外部のバス・マスタ
(図示せず)からバス・ホールド要求が到着し、これが
バス・インタフェース装置4に受け付けられた場合に、
高インピーダンス状態となるように、トライステート型
の駆動回路を使用している。
Address bus 1 is a 25-bit signal line group capable of transmitting information unidirectionally from an integrated circuit microprocessor to an external storage device and an input / output device (both not shown). Of these, 23 bits are a true address signal and 2 bits are a byte operation output. The integrated circuit microprocessor of this example allocates addresses in units of bytes (8 bits), but since the data bus 3 is set to have a 16-bit width as described later, the upper or lower 8 of the data bus 3 is It has an output for manipulating bytes that indicates the validity of each of the bits. A 23-bit address makes it possible to access a 16-Mbyte (8-Mword) main memory. In the case of the integrated circuit microprocessor of this example, a 32-bit address is internally generated, but due to the assembly technique, only the address corresponding to a total of 24 bits including the 2-bit byte operation output is output. There is. The address of the input / output device can be designated by using only the lower 16 bits of the address of 24 bits. Whether the address is the main memory device address or the input / output device address is determined by the output signal MEM / of the control input / output of the control bus 2 described later.
It is determined using IO #. Address bus 1
When a bus hold request arrives from a bus master (not shown) outside the integrated circuit microprocessor and this is accepted by the bus interface device 4,
A tristate drive circuit is used so that a high impedance state is achieved.

【0012】制御バス2 バス動作の種別を示す出力信号群WR/RD#、DAT
/C#、MEM/IO#の3ビットと、アドレス・バ
ス、データ・バスなどの出力タイミングを示す出力信号
群RWT#、ASSTB#、DCS#の3ビットと、外
部よりバス・サイクルの長さおよびタイミングを制御す
るための入力信号群NXTA#、BREADY#の2ビ
ットと、バス・ホールド要求を受け付ける入力信号HL
DREQおよび要求を受け付けたことを示す出力信号H
LDACKの2ビットとを有している。制御バス2は、
集積回路マイクロプロセッサ外部のバス・マスタからバ
ス・ホールド要求が到着してバス・インタフェース装置
4によって受け付けられた場合、出力信号HLDACK
を除く6ビットの出力信号を高インピーダンス状態にで
きるようにトライステート型の駆動回路を使用してい
る。
Control bus 2 Output signal group WR / RD #, DAT indicating the type of bus operation
/ C #, MEM / IO #, 3 bits of output signal group RWT #, ASSTB #, DCS # indicating output timing of address bus, data bus, etc., and bus cycle length from the outside And 2 bits of input signal groups NXTA # and BREADY # for controlling timing, and an input signal HL for accepting a bus hold request.
Output signal H indicating acceptance of DREQ and request
It has 2 bits of LDACK. The control bus 2 is
When a bus hold request arrives from a bus master external to the integrated circuit microprocessor and is accepted by the bus interface device 4, an output signal HLDACK is output.
A tri-state type drive circuit is used so that the 6-bit output signal other than that can be put in a high impedance state.

【0013】データ・バス3 双方向に情報を伝達可能な16ビットの信号線群であ
る。情報の伝送方向は、上述したように、上記の制御入
出力信号群のうちの出力信号WR/RD#により指定さ
れる。本例の集積回路マイクロプロセッサでは内部が3
2ビット構成になっているので、内部の32ビット・デ
ータは外部バスの2バス・サイクルを使用して処理され
る。また、8ビット・データの処理の場合には、16ビ
ットのうち下位または上位の8ビットのみが使用され
る。上位下位のうちのいずれのバイトを使用するのか
は、上述したアドレス・バス1のバイト操作用出力によ
って指定される。なお、データ・バス3のバス駆動回路
はトライステート型の回路から構成され、外部のバス・
マスタから供給される入力信号HLDREQによってバ
ス・ホールド要求が到着し、これがバス・インタフェー
ス装置4によって受付られた場合に、データ・バス3を
高インピーダンス状態に設定できるようになっている。
Data bus 3 is a 16-bit signal line group capable of bidirectionally transmitting information. The information transmission direction is specified by the output signal WR / RD # of the control input / output signal group, as described above. In the integrated circuit microprocessor of this example, the internal number is 3
Due to the 2-bit configuration, the internal 32-bit data is processed using 2 bus cycles of the external bus. In the case of processing 8-bit data, only the lower or upper 8 bits of 16 bits are used. Which of the upper and lower bytes to use is specified by the byte operation output of the address bus 1 described above. The bus drive circuit of the data bus 3 is composed of a tri-state type circuit, and
When the bus hold request arrives by the input signal HLDREQ supplied from the master and is accepted by the bus interface device 4, the data bus 3 can be set to the high impedance state.

【0014】バス・インタフェース装置4 「バス・サイクル」と呼ばれる分割出来ない一続きの動
作を単位として、上記のアドレス・バス1、制御バス2
およびデータ・バス3を統合して操作し、集積回路マイ
クロプロセッサと外部の主記憶装置および入出力装置と
の間でのデータ送受を行う。また、他のマイクロプロセ
ッサ等のバス・マスタ装置との間でバス装置を共有する
ために必要な操作も行う。本例のバス・インタフェース
装置4は通常必要とされる以下のバスサイクルから
までを持っている。
Bus interface device 4 The address bus 1 and the control bus 2 described above are taken as a unit of a series of indivisible operations called "bus cycle".
And the data bus 3 are integrated and operated to perform data transmission / reception between the integrated circuit microprocessor and the external main memory and input / output device. It also performs the operations required to share the bus device with other bus master devices such as microprocessors. The bus interface device 4 of this example has the following bus cycles normally required.

【0015】主記憶装置読み出しバス・サイクル 主記憶装置書き込みバス・サイクル 入出力装置読み出しバス・サイクル 入出力装置書き込みバス・サイクル ホールド応答バス・サイクル 割り込み応答バス・サイクル プロセッサ停止バス・サイクルMain Memory Read Bus Cycle Main Memory Write Bus Cycle I / O Device Read Bus Cycle I / O Device Write Bus Cycle Hold Response Bus Cycle Interrupt Response Bus Cycle Processor Stop Bus Cycle

【0016】これらに加えて、ブロック操作命令を効率
良く実行するために、上記の、の変形バス・サイク
ルとして、以下のから▲10▼までのバス・サイクル
を有している。
In addition to these, in order to efficiently execute the block operation instruction, the above-mentioned modified bus cycles have the following bus cycles from (10) to (10).

【0017】ブロック読み出し書き込みサイクル ブロック入出力サイクル ▲10▼読み出し変更書き込みサイクルBlock read / write cycle Block input / output cycle (10) Read change write cycle

【0018】バス・インタフェース装置4は、データ・
バス制御用PLA装置およびアドレス・バス制御用PL
A装置を中心に構成されるバス制御ステートマシンを備
えており、これによって、上記の各バス・サイクルを制
御する。各バス・サイクルは、それぞれのPLAに特有
のビット列からなる論理項として実現される。
The bus interface unit 4 is a data interface.
Bus control PLA device and address bus control PL
A bus control state machine centered on the A unit is provided to control each bus cycle described above. Each bus cycle is implemented as a logical term consisting of bit strings unique to each PLA.

【0019】内部アドレス・バス装置5 命令実行装置6からバス・インタフェース装置4へのア
ドレス転送を目的とする32ビットの内部バス装置であ
る。
Internal address bus device 5 A 32-bit internal bus device for the purpose of address transfer from the instruction execution device 6 to the bus interface device 4.

【0020】命令実行装置6 命令実行を司る装置である。以下の説明においては、ブ
ロック操作命令内のパイプライン処理に関連のある部分
のみを説明する。その他の構成部分は一般的な集積回路
マイクロプロセッサと同様に構成することができる。
Instruction Execution Device 6 This device controls instruction execution. In the following description, only the part related to the pipeline processing in the block operation instruction will be described. The other components can be configured similarly to a general integrated circuit microprocessor.

【0021】命令実行装置6は、アドレス生成装置60
1、カウンタ装置602、レジスタ装置603およびA
LU装置604を備えている。これらの各部分は、それ
ぞれ第1の制御装置611、第2の制御装置612、第
3の制御装置613および第4の制御装置614によっ
て制御される。これらの第1乃至第4の制御装置61
1、612、613、614のうち、第1乃至第3の制
御装置611、612、613は、それぞれ第1乃至第
3のパイプライン・レジスタ装置621、622、62
3を介して、第1のステートマシン605によって駆動
制御される。また、第4の制御装置614は、第4のパ
イプライン・レジスタ装置624を介して第2のステー
トマシン606によって駆動制御される。上記のアドレ
ス生成装置601、カウンタ装置602、レジスタ装置
603およびALU装置604は、内部バス装置607
を介して相互に接続されている。さらに、命令実行装置
6は、カウンタ装置602におけるカウント動作を検出
するための検出装置608を備えている。以下に、これ
ら各部分の構成および動作を更に説明する。
The instruction execution unit 6 is an address generation unit 60.
1, counter device 602, register device 603 and A
The LU device 604 is provided. Each of these parts is controlled by the first control device 611, the second control device 612, the third control device 613, and the fourth control device 614, respectively. These first to fourth control devices 61
Of the first, 612, 613 and 614, the first to third control devices 611, 612 and 613 are the first to third pipeline register devices 621, 622 and 62, respectively.
Drive control is performed by the first state machine 605 via the control unit 3 of FIG. Further, the fourth controller 614 is drive-controlled by the second state machine 606 via the fourth pipeline register device 624. The address generation device 601, the counter device 602, the register device 603, and the ALU device 604 are the internal bus device 607.
Are connected to each other via. Further, the instruction execution device 6 includes a detection device 608 for detecting the counting operation of the counter device 602. The configuration and operation of each of these parts will be further described below.

【0022】(アドレス生成装置601)命令によって
指示され、レジスタ装置603から供給されるレジスタ
値に基づき命令実行に必要なアドレスを生成する。この
アドレス生成装置601は、32ビット加算器を中心に
構成され、この加算器の入出力を一旦蓄える4本の32
ビット・テンポラリ・レジスタと、命令によって指示さ
れなくとも常に加算される10本の32ビット・ベース
・アドレス・レジスタと、生成アドレスの検証を行う1
0本の32ビット・アトリビュート・レジスタを含んで
いる。
(Address generation device 601) Generates an address required for instruction execution based on the register value supplied from the register device 603 instructed by the instruction. The address generator 601 is mainly composed of a 32-bit adder, and four 32 bits that temporarily store the input and output of the adder are provided.
Bit temporary register, 10 32-bit base address registers that are always added even if not instructed by an instruction, and verification of generated address 1
It contains zero 32-bit attribute registers.

【0023】(第1の制御装置611)アドレス生成装
置601の加算器、レジスタなどを制御する装置であ
り、ランダム論理回路から構成される。この第1の制御
装置611に対する制御指令は第1のパイプラン・レジ
スタ装置621を経由して、第1のステートマシン60
5から供給される。
(First control device 611) This is a device for controlling the adder, the register, etc. of the address generation device 601, and is composed of a random logic circuit. The control command to the first control device 611 is sent via the first pipeline register device 621 to the first state machine 60.
It is supplied from 5.

【0024】(第1のパイプライン・レジスタ装置62
1)第1のステートマシン605から出力される第1の
制御装置611に対する制御指令を一旦蓄え、必要な時
点で第1の制御装置611に引き渡すための一時記憶装
置である。
(First Pipeline Register Unit 62
1) A temporary storage device for temporarily storing a control command for the first control device 611 output from the first state machine 605 and delivering it to the first control device 611 at a necessary time.

【0025】(内部バス装置607)2個の32ビット
の内部バス装置から構成され最大64ビットまでのデー
タを一度に転送可能な内部バス装置であり、プリチャー
ジ方式を採用している。
(Internal Bus Device 607) This is an internal bus device which is composed of two 32-bit internal bus devices and is capable of transferring data of up to 64 bits at a time, and employs a precharge system.

【0026】(カウンタ装置602)「ブロック操作」
命令に特有な繰り返し動作を制御するための装置であ
る。ブロック操作命令はレジスタ装置603に以下のデ
ータをおくことにより起動される。
(Counter device 602) "Block operation"
It is a device for controlling repetitive operations peculiar to an instruction. The block operation instruction is activated by placing the following data in the register device 603.

【0027】ブロック操作回数 必要ならば転送先となる第1の主記憶アドレスの開始
番地 必要ならば転送元になる第2の主記憶アドレスの開始
番地
Number of block operations Start address of the first main memory address that is the transfer destination if necessary Start address of the second main memory address that is the transfer source if necessary

【0028】本例のカウンタ装置602は、のブロッ
ク操作回数に関する情報を受け取ってブロック操作命令
の単位操作を1回行う毎にカウント・ダウンを行う。
The counter device 602 of this example receives the information regarding the number of block operations, and counts down each time a unit operation of a block operation instruction is performed.

【0029】ここで、ブロック操作の各単位操作をパイ
プライン化すると、上記ののブロック操作回数は内部
バス装置607を介してカウンタ装置602に送られた
段階で検出装置608により吟味され、単位操作に先立
ってカウント・ダウンする必要が生ずる場合がある。こ
れは、対象となるブロック操作命令の種類によっては、
パイプライン化のために単位操作の発動と完了との間に
時間がかかり、検出装置608が最後の単位操作の発動
後に、その単位操作が最後の繰り返しに係る単位操作で
あることを検出しても、次の単位操作の発動を止めるこ
とができないためである。
Here, if each unit operation of the block operation is pipelined, the above-mentioned number of block operations is examined by the detection device 608 at the stage when it is sent to the counter device 602 via the internal bus device 607, and the unit operation is performed. It may be necessary to count down in advance. This depends on the type of target block operation instruction,
Due to the pipelining, it takes time between the activation and completion of the unit operation, and the detection device 608 detects that the unit operation is the unit operation related to the last repetition after the activation of the last unit operation. This is because the activation of the next unit operation cannot be stopped.

【0030】(第2の制御装置612)カウンタ装置6
02に対する上記のブロック操作回数に関する情報を含
むデータのロード、そのカウント・ダウン動作を制御す
るための装置であり、ランダム論理回路により構成され
ている。この第2の制御装置612に対する制御指令は
第2のパイプライン・レジスタ装置622を介して第1
のステートマシン605から供給される。
(Second control device 612) Counter device 6
This is a device for controlling the load of the data including the information on the number of times of the block operation for 02 and the count down operation thereof, and is configured by a random logic circuit. The control command to the second control unit 612 is sent to the first control unit via the second pipeline register unit 622.
State machine 605.

【0031】(第2のパイプライン・レジスタ装置62
2)第1のステートマシン605から出力される第2の
制御装置612に対する制御指令を一旦蓄え、必要な時
点で第2の制御装置612の側に引き渡すための一時記
憶装置である。
(Second pipeline register device 62
2) It is a temporary storage device for temporarily storing the control command output from the first state machine 605 to the second control device 612 and delivering it to the second control device 612 side at a necessary time.

【0032】(検出装置608)カウンタ装置602が
規定回数のカウント・ダウンを終了したことを検出する
ための装置であり、プリチャージ方式の回路を中心に構
成されている。すなわち、ロードされたブロック操作回
数のカウント・ダウンの終了を検出する。この終了を検
出すると、最終終了信号2Sを第1のステートマシン6
05に出力する。
(Detection Device 608) This is a device for detecting that the counter device 602 has finished counting down the specified number of times, and is mainly composed of a precharge type circuit. That is, the end of the countdown of the number of loaded block operations is detected. When this end is detected, the final end signal 2S is sent to the first state machine 6
Output to 05.

【0033】(レジスタ装置603)34本の32ビッ
ト・レジスタから構成される記憶装置でり、同時に2本
のレジスタからの読み出し、同一でない1本のレジスタ
からの読み出しと1本のレジスタに対する書き込み、ま
たは1本のレジスタに対する読み出し、または1本のレ
ジスタに対する書き込みのいずれかの動作を行なわせる
ことが可能である。前述したように、ブロック操作命令
は、このレジスタ装置603に以下のデータを置くこと
により起動される。
(Register device 603) A memory device composed of 34 32-bit registers. Reading from two registers at the same time, reading from one register which is not the same and writing into one register, Alternatively, it is possible to perform either the read operation for one register or the write operation for one register. As described above, the block operation instruction is activated by placing the following data in this register device 603.

【0034】ブロック操作回数 必要ならば転送先となる第1の主記憶アドレスの開始
番地 必要ならば転送元になる第2の主記憶アドレスの開始
番地
Number of block operations Start address of the first main memory address that is the transfer destination if necessary Start address of the second main memory address that is the transfer source if necessary

【0035】(第3の制御装置613)レジスタ装置6
03に対するアドレス・デコード装置および読み書き制
御装置から構成される。ランダム論理回路により構成さ
れており、第3の制御装置613に対する制御指令は、
第3のパイプライン・レジスタ装置623を介して第1
のステートマシン605から供給される。
(Third control device 613) Register device 6
It is composed of an address decoding unit for 03 and a read / write control unit. It is composed of a random logic circuit, and the control command to the third controller 613 is
The first via the third pipeline register unit 623
State machine 605.

【0036】(第3のパイプライン・レジスタ装置62
3)第1のステートマシン605から出力された第3の
制御装置613に対する制御指令を一旦蓄え、必要な時
点でこの第3の制御装置613に引き渡すための一時記
憶装置である。
(Third pipeline register device 62
3) A temporary storage device for temporarily storing a control command for the third control device 613 output from the first state machine 605 and delivering it to the third control device 613 at a necessary time.

【0037】(ALU装置604)算術論理演算を行う
ALU本体と入出力データを一旦蓄えるための6つの一
時記憶レジスタと特定の条件の検出および保持を行う回
路部分から構成される。一時記憶レジスタに対して最大
3つの32ビットのデータと1つの5ビット・データを
受け入れて、四則演算、論理演算を行うことが可能であ
る。ALU装置604は、第4の制御装置614によっ
て設定された特定の条件を検出し、フラグとしてその内
部に保持すると共にブロック操作の中断条件信号1Sを
発生する。この中断条件信号1Sは、ブロック操作命令
中に特定の条件を検出してブロック操作を中断させるた
めに使用される。
(ALU device 604) It is composed of an ALU main body for arithmetic and logic operations, six temporary storage registers for temporarily storing input / output data, and a circuit portion for detecting and holding a specific condition. It is possible to accept a maximum of three 32-bit data and one 5-bit data for the temporary storage register and perform arithmetic operations and logical operations. The ALU device 604 detects a specific condition set by the fourth control device 614, holds it as a flag therein, and generates a block operation interruption condition signal 1S. The interruption condition signal 1S is used to detect a specific condition in the block operation instruction and interrupt the block operation.

【0038】(第4の制御装置614)ALU装置60
4に対して一時記憶レジスタ操作、ALU演算種類や検
出条件を制御するものである。この第4の制御装置61
4に対する制御指令は第4のパイプライン・レジスタ6
24を介して第2のステートマシン606から供給され
る。
(Fourth Control Device 614) ALU Device 60
4 controls the temporary storage register operation, ALU calculation type and detection condition. This fourth control device 61
4 is the fourth pipeline register 6
It is supplied from the second state machine 606 via 24.

【0039】(第2のステートマシン606)PLA回
路と、この入出力に接続された入出力レジスタと、入出
力レジスタ間を接続するフィードバック回路から構成さ
れる。このステートマシンはALU装置604を制御す
るためのものである。加算、減算、論理和、論理積等の
単純な演算は制御指令を送るだけの1動作で行える。こ
れに対して、乗算、除算、シフト、ローテート演算など
は幾つかの制御指令を組み合わせ、またALU装置60
4からのブロック操作の中断条件信号を判断した上での
制御を行う。ブロック操作命令の実行中は、ブロック操
作の単位操作の繰り返しに伴うALU動作を制御する。
このALU動作の制御は、ブロック操作の中断終了条件
の検出を主要な目的としている。
(Second state machine 606) It is composed of a PLA circuit, an input / output register connected to this input / output, and a feedback circuit connecting the input / output registers. This state machine is for controlling the ALU device 604. Simple operations such as addition, subtraction, logical sum, logical product, etc. can be performed in one operation by sending a control command. On the other hand, multiplication, division, shift, rotate operation, etc. combine some control commands, and the ALU device 60
The control is performed after judging the interruption condition signal of the block operation from 4. During execution of the block operation instruction, the ALU operation associated with the repetition of the block operation unit operation is controlled.
The control of this ALU operation has the main purpose of detecting the interruption end condition of the block operation.

【0040】(第1のステートマシン605)PLA回
路と、これの入出力に接続する入出力レジスタと、入出
力レジスタ間を接続するフィードバック回路から構成さ
れる。このステートマシンは、ALU装置604を除く
第1から第3の制御装置611、612、613を制御
すると共に、バス・インタフェース装置4と通信するこ
とを目的とする装置である。ブロック操作命令の実行中
は、ブロック操作の単位操作の繰り返しの大もとを制御
する。この場合、ALU装置604を制御する第2のス
テートマシン606との協調動作が必要となるので、こ
の第2のステートマシンに対しても同期信号を送出す
る。ブロック操作の場合、その最終終了条件は検出装置
608が検出する終了条件であるが、中断終了条件とし
てALU装置604が検出する条件もあり、第1のステ
ートマシン605はこれらの双方を受け取る。
(First state machine 605) A PLA circuit, an input / output register connected to the input / output of the PLA circuit, and a feedback circuit connecting the input / output registers. This state machine is a device intended to control the first to third control devices 611, 612 and 613 except the ALU device 604 and to communicate with the bus interface device 4. During execution of the block operation instruction, the source of repetition of the unit operation of the block operation is controlled. In this case, since it is necessary to cooperate with the second state machine 606 that controls the ALU device 604, the synchronization signal is also sent to this second state machine. In the case of a block operation, the final end condition is an end condition detected by the detection device 608, but there is also a condition detected by the ALU device 604 as an interruption end condition, and the first state machine 605 receives both of them.

【0041】次に、図に示す各信号の内容を列記する。Next, the contents of each signal shown in the figure will be listed.

【0042】符号 内容 1S ブロック操作の中断終了条件の成立を示すブロック操作の中断条件 信号である。本例の場合、中断終了条件は、ALU装置604にお ける比較の一致または不一致であって、中断終了条件の内容は第2 のステートマシン606によって決定される。 2S ブロック操作の最終終了条件の成立を示すブロック操作の終了条件 である。本例では、最終終了条件はカウンタ装置602におけるカ ウント結果が零になることである。 3S 第3のパイプライン・レジスタ装置623への信号群であり、第3 の制御装置613への制御指令と、パイプライン・レジスタ装置6 23に対するタイミング制御信号からなる。 4S 第2のパイプライン・レジスタ装置622への信号群であり、第2 の制御装置612への制御指令と、パイプライン・レジスタ装置6 22に対するタイミング制御信号からなる。 5S 第1のパイプライン・レジスタ装置621への信号群であり、第1 の制御装置611への制御指令と、パイプライン・レジスタ装置6 21に対するタイミング制御信号からなる。 6S バス・インタフェース装置4に対する信号群であり、バス・インタ フェース装置4に対する各種バス・サイクル動作の要求を示す信号 群と、バス動作の完了、バス・インタフェース装置のビジー等のバ ス・インタフェース装置のステータスを示す信号群からなる。 Code Content 1S This is a block operation interrupt condition signal indicating that the block operation interrupt termination condition is satisfied. In the case of this example, the interruption end condition is a match or a non-match of comparison in the ALU device 604, and the content of the interruption end condition is determined by the second state machine 606. It is the end condition of the block operation indicating that the final end condition of the 2S block operation is satisfied. In this example, the final termination condition is that the count result in the counter device 602 becomes zero. 3S A signal group to the third pipeline register device 623, which is composed of a control command to the third controller 613 and a timing control signal to the pipeline register device 623. 4S A signal group to the second pipeline register device 622, which is composed of a control command to the second controller 612 and a timing control signal to the pipeline register device 622. 5S A signal group to the first pipeline register device 621, which is composed of a control command to the first controller 611 and a timing control signal to the pipeline register device 621. A group of signals for the 6S bus interface device 4, a group of signals indicating a request for various bus cycle operations to the bus interface device 4, and a bus interface device such as completion of bus operation, busy of the bus interface device, etc. It consists of a signal group indicating the status of.

【0043】次に、ブロック操作命令のうち、「ブロッ
ク比較」命令を例に挙げて、本発明の装置の動作を説明
する。「ブロック比較」は主記憶装置中にある2つの
「ブロック」に格納されているそれぞれのデータを「ブ
ロック」の先頭番地より逐次比較し、比較結果が不一致
となるか、「ブロック」の長さの比較を完了するかの何
れかの条件の成立をもって実行を終了する命令である。
そのために、「ブロック比較」命令は2つの「ブロッ
ク」の先頭番地と「ブロック」の長さをオペランドとし
て取る。本例の場合、全てのオペランドは、レジスタ装
置603の中に格納されている必要がある。ブロック長
さを示す数は、カウンタ装置602にセットされる。
「ブロック比較」の単位操作は、「ブロック」中のデー
タ1対に対する比較であり、以下にようにして実行され
る。
Next, the operation of the device of the present invention will be described by taking the "block comparison" instruction as an example of the block operation instructions. The "block comparison" sequentially compares the respective data stored in the two "blocks" in the main storage device from the start address of the "block", and the comparison result shows a mismatch or the length of the "block". Is an instruction that terminates execution when either of the conditions for completing the comparison is satisfied.
Therefore, the "block comparison" instruction takes the start address of two "blocks" and the length of the "block" as operands. In the case of this example, all operands need to be stored in the register device 603. The number indicating the block length is set in the counter device 602.
The unit operation of “block comparison” is a comparison for a pair of data in the “block” and is executed as follows.

【0044】第1の「ブロック」(以下、ブロックA
と呼ぶ)のデータを読み込むために主記憶装置の物理ア
ドレスAを生成する。 物理アドレスAのデータを読む。 第2の「ブロック」(以下、ブロックBと呼ぶ)のデ
ータを読み込むために主記憶装置の物理アドレスBを生
成する。 物理アドレスBのデータを読み込む。 比較を行う。不一致ならば終了する。 ブロック長を示す数をカウント・ダウンする。すなわ
ち、カウンタ装置602の内容をカウント・ダウンす
る。この内容が零ならば終了する。それ以外ならばに
戻って上記の動作を繰り返す。
The first "block" (hereinafter block A
(Referred to as)) to generate the physical address A of the main storage device. Read the data at physical address A. The physical address B of the main memory is generated in order to read the data of the second "block" (hereinafter referred to as block B). The data of the physical address B is read. Make a comparison. If they do not match, the process ends. Count down the number indicating the block length. That is, the contents of the counter device 602 are counted down. If this content is zero, the process ends. Otherwise, return to and repeat the above operation.

【0045】この「ブロック比較」命令を、従来におけ
るようにして実行した場合と、本例の装置を用いて実行
した場合を、それぞれ図2および図3に示してある。な
お、これらの図において、括弧内の数字nは、各回の単
位操作を示すものであり、上記のからまでの各ステ
ップを次にように表現してある。
FIGS. 2 and 3 show the case of executing this "block comparison" instruction as in the conventional case and the case of using the apparatus of this example, respectively. In these figures, the number n in parentheses indicates each unit operation, and each step from the above to is expressed as follows.

【0046】 ・・・アドレスA(n) ・・・A(n)READ ・・・アドレスB(n) ・・・B(n)READ ・・・比較(n) ・・・カウント(n)Address A (n) A (n) READ Address B (n) B (n) READ Comparison (n) Count (n)

【0047】また、図2および図3において、横軸を時
間として各ステップの時間的な関係を示している。
Further, in FIGS. 2 and 3, the horizontal axis represents time, and the temporal relationship of each step is shown.

【0048】図2に示す従来の動作においては、アドレ
ス生成とデータの読み出しとがパイプライン化されてい
るが、これは1単位操作の中でものである。しかし、以
下の関係は崩せないのでこれ以上の時間短縮は不可能で
ある。
In the conventional operation shown in FIG. 2, the address generation and the data reading are pipelined, but this is one of the unit operations. However, since the following relationships cannot be broken, it is impossible to further reduce the time.

【0049】 アドレスA(n)はA(n)READに先立って行う
必要がある。 アドレスB(n)はB(n)READに先立って行う
必要がある。 A(n)READおよびB(n)READは比較
(n)に先立って行う必要がある。
Address A (n) needs to be preceded by A (n) READ. The address B (n) needs to be performed prior to B (n) READ. A (n) READ and B (n) READ must be done prior to the comparison (n).

【0050】これに対して、本例の動作を示す図3にお
いては、各単位操作が相互に重なった状態で実施され
る。各単位操作毎に見ると、その実施に必要な時間は、
パイプライン化しない図2に場合と同一であるが、一つ
の単位操作の終了を待たずに後続の単位操作が開始して
いる。従って、各装置の無駄な待ち時間が少なく、両図
を比較すれば明らかなように、従来における2単位操作
に必要な時間で3単位操作が実現される。
On the other hand, in FIG. 3 showing the operation of this example, the unit operations are carried out in a state where they overlap each other. Looking at each unit operation, the time required for its implementation is
As in the case of FIG. 2 which is not pipelined, the subsequent unit operation is started without waiting for the end of one unit operation. Therefore, the wasteful waiting time of each device is small, and as is clear from a comparison of both figures, 3 unit operations can be realized in the time required for the conventional 2 unit operations.

【0051】[0051]

【発明の効果】以上説明したように、本発明の集積回路
マイクロプロセッサの命令実行装置においては「ブロッ
ク操作」命令における各単位操作をパイプライン化して
実施するように構成してある。従って、従来の命令実行
装置に比べて、ブロック操作命令の実行に必要な時間を
短縮することができ、その分集積回路マイクロプロセッ
サ全体のスループットを改善することが可能になる。
As described above, in the instruction execution device of the integrated circuit microprocessor of the present invention, each unit operation in the "block operation" instruction is pipelined and executed. Therefore, as compared with the conventional instruction execution device, the time required to execute the block operation instruction can be shortened, and the throughput of the entire integrated circuit microprocessor can be improved accordingly.

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

【図1】本発明の一実施例である集積回路マイクロプロ
セッサにおける主要部分の構成を示す部分構成図であ
る。
FIG. 1 is a partial configuration diagram showing a configuration of a main part in an integrated circuit microprocessor which is an embodiment of the present invention.

【図2】従来の方式により「ブロック比較」命令を実行
した場合の各部分の動作を示すための説明図である。
FIG. 2 is an explanatory diagram showing an operation of each part when a “block comparison” instruction is executed by a conventional method.

【図3】図1に示す装置により「ブロック比較」命令を
実行した場合の各部分の動作を示すための説明図であ
る。
FIG. 3 is an explanatory diagram showing the operation of each part when a “block comparison” instruction is executed by the device shown in FIG.

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

1・・・アドレス・バス 2・・・制御バス 3・・・データ・バス 4・・・バス・インタフェース装置 5・・・内部アドレス・バス装置 6・・・命令実行装置 601・・・アドレス生成装置 602・・・カウンタ装置 603・・・レジスタ装置 604・・・ALU装置 605・・・第1のステートマシン 606・・・第2のステートマシン 607・・・内部バス装置 608・・・検出装置 611・・・第1の制御装置 612・・・第2の制御装置 613・・・第3の制御装置 614・・・第4の制御装置 621・・・第1のパイプライン・レジスタ装置 622・・・第2のパイプライン・レジスタ装置 623・・・第3のパイプライン・レジスタ装置 624・・・第4のパイプライン・レジスタ装置 1 ... Address Bus 2 ... Control Bus 3 ... Data Bus 4 ... Bus Interface Device 5 ... Internal Address Bus Device 6 ... Instruction Execution Device 601 ... Address Generation Device 602 ... Counter device 603 ... Register device 604 ... ALU device 605 ... First state machine 606 ... Second state machine 607 ... Internal bus device 608 ... Detection device 611 ... 1st control apparatus 612 ... 2nd control apparatus 613 ... 3rd control apparatus 614 ... 4th control apparatus 621 ... 1st pipeline register apparatus 622 ... ..Second pipeline register device 623 ... Third pipeline register device 624 ... Fourth pipeline register device

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】 同一の単位操作を繰り返し実行すること
を内容とするブロック操作命令をデコード可能な命令デ
コード手段と、前記命令デコード手段によるデコード結
果に基づき、ブロック操作命令を構成する前記単位操作
をパイプライン方式により繰り返し実施する命令実行手
段とを有することを特徴とする集積回路マイクロプロセ
ッサのブロック操作命令実行装置。
1. An instruction decoding unit capable of decoding a block operation instruction having the content of repeatedly executing the same unit operation, and the unit operation constituting a block operation instruction based on a decoding result by the instruction decoding unit. A block operation instruction execution device for an integrated circuit microprocessor, comprising: an instruction execution means that is repeatedly executed by a pipeline method.
JP30727991A 1991-09-09 1991-09-09 Block operating instruction executing device for integrated circuit microprocessor Pending JPH0566939A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30727991A JPH0566939A (en) 1991-09-09 1991-09-09 Block operating instruction executing device for integrated circuit microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30727991A JPH0566939A (en) 1991-09-09 1991-09-09 Block operating instruction executing device for integrated circuit microprocessor

Publications (1)

Publication Number Publication Date
JPH0566939A true JPH0566939A (en) 1993-03-19

Family

ID=17967218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30727991A Pending JPH0566939A (en) 1991-09-09 1991-09-09 Block operating instruction executing device for integrated circuit microprocessor

Country Status (1)

Country Link
JP (1) JPH0566939A (en)

Similar Documents

Publication Publication Date Title
US4745547A (en) Vector processing
JPS6028015B2 (en) information processing equipment
CN1099633C (en) Execution of data processing instructions
JP2620511B2 (en) Data processor
US20100281238A1 (en) Execution of instructions directly from input source
JPH01177127A (en) Information processor
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US20070192575A1 (en) Microloop computer instructions
JPH0566939A (en) Block operating instruction executing device for integrated circuit microprocessor
EP0933705A2 (en) Data processor with robust interrupt branching and method of operation
US7107478B2 (en) Data processing system having a Cartesian Controller
JPH03158952A (en) Dma controller and information processing system
JP2556083B2 (en) Complex arithmetic pipeline circuit
JPH0228828A (en) Maximum value and minimum value detecting circuit
JPS5838437Y2 (en) Program computer display control device
JP2881023B2 (en) Instruction buffer configuration method
JPS61221965A (en) Vector data processor
JPS60144874A (en) Vector data processor
JPH052485A (en) Pipeline control system
JPH0271327A (en) Sorting processor
JP2001243066A (en) Pipe line processing method and pipe line processor using the method
JPH03154929A (en) Central processing unit
JPH0766325B2 (en) Pipeline control equipment
JPS60134939A (en) Data processor
JPH07248917A (en) Arithmetic processing system