[go: up one dir, main page]

JPS5919379B2 - data generation device - Google Patents

data generation device

Info

Publication number
JPS5919379B2
JPS5919379B2 JP51138181A JP13818176A JPS5919379B2 JP S5919379 B2 JPS5919379 B2 JP S5919379B2 JP 51138181 A JP51138181 A JP 51138181A JP 13818176 A JP13818176 A JP 13818176A JP S5919379 B2 JPS5919379 B2 JP S5919379B2
Authority
JP
Japan
Prior art keywords
data
instruction
operand
register
address
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
Application number
JP51138181A
Other languages
Japanese (ja)
Other versions
JPS5362439A (en
Inventor
良成 中崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP51138181A priority Critical patent/JPS5919379B2/en
Publication of JPS5362439A publication Critical patent/JPS5362439A/en
Publication of JPS5919379B2 publication Critical patent/JPS5919379B2/en
Expired legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 この発明は命令を処理する際にオペランド取出し部と実
行部とを含む複数の処理部に分割して処理する装置にお
ける前記実行部での処理を行ない易いデータを生成する
データ生成装置に関する。
DETAILED DESCRIPTION OF THE INVENTION The present invention generates data that can be easily processed by the execution unit in a device that processes an instruction by dividing it into a plurality of processing units including an operand extraction unit and an execution unit. The present invention relates to a data generation device.

従来、命令実行過程ごとに複数処理部に分割して処理す
るパイプライン型の命令実行装置において、PL/1や
FORTRANなどの高級言語の多くはいくつかの機械
語命令に翻訳されて実行されている。例えば、第1図に
PL/1で書かれた代入文の例と、この代入文が機械語
命令に翻訳された例を示している。第1図において、P
L/1で記述された代入文は10進固定小数点データで
あるsを送り側データとして、2進固定小数点データで
あるRAと10進固定小数点データであるRBとで示さ
れる2つの受け側データに送ることを指示する。
Conventionally, in pipeline-type instruction execution devices that divide each instruction execution process into multiple processing units, many high-level languages such as PL/1 and FORTRAN are translated into several machine language instructions and executed. There is. For example, FIG. 1 shows an example of an assignment statement written in PL/1 and an example of this assignment statement translated into a machine language instruction. In Figure 1, P
The assignment statement written in L/1 uses s, which is decimal fixed-point data, as the sending data, and two receiving data, indicated by RA, which is binary fixed-point data, and RB, which is decimal fixed-point data. Instruct to send to.

同時に、受け側データに転送する際には、受け側データ
の種類に従つて送り側データのデータ変換を行なうこと
を指示する。こめ代人文を機械語命令に翻訳した 1図
の例では、最初に移送命令(MOVES、WA、)のs
で指示される送り側データの内容をWAで示されるワー
クメモリ(あるいはレジスタ)に移送する。このとき、
送り側データの内、容には特別な変換を施さないでWA
に転送するので、このワークメモリ(レジスタ)に転送
されたデータのタイプはsで指示されたデータのタイプ
と同じ10進数である。次に、データ変換命令(DTB
WA、WR、)ではWAで指示されるワークメモリ(レ
ジスタ)の10進数データを2進数に変換して、WRで
指示される受け側のワークメモリ(レジスタ)に移送す
る。次に、移送命令(MOVEWR、RA、)ではWR
で指示されるワークメモリ(レジスタ)の2進数に変換
されたデータをRAで指示される主記憶装置内の位置に
格納する。最後に、移送命令(MOVEWA、RB、)
ではWAで指示されるワークメモリ(レジスタ)の10
進数のデータを送り側データとして、RBで指示される
主記憶装置内の位置に格納する。このときには、RBの
データは高級言語で書かれたプログラムにおいて10進
数であることが指定されているので送り側データはデー
タ変換されない。以上の4命令によつて高級言語で表現
されたように1つのデータを2つの受け側データに移送
する処理が行なわれる。以上の機械語命令を実行するた
めに設計された複数の処理部を有する従来のデータ処理
装置のプロツク図を第2図に示す。
At the same time, when transferring data to the receiving side, an instruction is given to perform data conversion of the sending side data according to the type of the receiving side data. In the example in Figure 1, which translated human language into machine language instructions, first the s of the move command (MOVES, WA,)
The content of the sending data indicated by is transferred to the work memory (or register) indicated by WA. At this time,
WA without any special conversion to the content of the data on the sending side.
Therefore, the type of data transferred to this work memory (register) is the same decimal number as the type of data indicated by s. Next, the data conversion instruction (DTB
WA, WR, ) converts the decimal data in the work memory (register) indicated by WA into a binary number and transfers it to the receiving work memory (register) indicated by WR. Next, in the move command (MOVEWR, RA,), WR
The data converted into binary numbers in the work memory (register) indicated by RA is stored in the location in the main memory indicated by RA. Finally, the transfer command (MOVEWA, RB,)
Now, 10 of the work memory (registers) specified by WA
The base number data is stored as sending data in the location in the main memory indicated by RB. At this time, since the RB data is specified to be a decimal number in the program written in a high-level language, the sending data is not converted. The above four commands perform a process of transferring one data to two receiving data as expressed in a high-level language. FIG. 2 shows a block diagram of a conventional data processing device having a plurality of processing units designed to execute the above machine language instructions.

この第2図の装置は、機械語命令列およびデータを格納
する主記憶装置1と、この主記憶装置1中の命令を取り
出し、同時に主記憶装置1中のデータ位置を示すために
オペランドのアドレス展開を行なう命令取出し部2と、
主記憶装置1などから取り出されたデータを処理する実
行部3と、アドレス展開を行なうときに使われるベース
レジスタやインデツクスレジスタあるいは機械語命令で
指定可能な処理結果格納用レジスタとして使われる汎用
レジスタ群4とを備えている。主記憶装置1よりこれか
ら処理される機械語命令列が命令バツフア5に取り出さ
れ、次に、この命令バツフア5から命令レジスタ6に一
命令づつ格納される。格納された命令について図示して
いない通常のデコーダにより命令のオペランドのタイプ
が検出される。この結果、主記憶装置1中のデータに関
するオペランドであることが検出されると、アドレス演
算器7を使い、このオペランドのアドレスが計算され、
アドレスレジスタ8に格納される。次に、アドレスレジ
スタ8で指示される主記憶装置1内のデータは実行部3
・中のオペランドレジスタ9に格納される。命令レジス
タ6中の命令が実行部3で処理できる状態になると、命
令取出し部2は命令レジスタ6中の命令コードを実行部
3の実行命令コードレジスタ10に送る。この結果、実
行部3では、命令コードに従い、オペランドレジスタ9
や汎用レジスタ群4を用いて、演算、比較、データ変換
およびこれらの処理結果の格納操作を行う。この装置を
用いて第1図に示した機械語命令を実行すると、命令取
出し部2と実行部3とが独立して動作することにより次
のような利点がある。つまり、1つの処理部だけで命令
を処理する場合に比べ命令を処理する速度が速くなる。
一方、従来例に示したデータ処理装置の問題点として次
のことが挙げられる。すなわち、一つ一つの機械語命令
の機能が低く単純な操作を記述できるにすぎないので、
第1図に示したようなある程度複雑な高級言語の文を機
械語命令に翻訳すると、冗長なオペランドが必要とされ
、そのオペランドに伴う操作が必要とされることである
。例えば、第1図の機械語命令のオペランドであるWA
およびWRはPL/1の代入文「RA,RB=S;」の
中では指示されていないデータを指示しており、前記代
入文を実行するためには本質的に必要とされるオペラン
ドではない。前記代入文に適した適当な機械語命令を定
義すれば前記の2オペランドは省略できる。このように
定義された機械語命令に比べて第1図に示した機械語命
令では、代入文を実行するために必要な命令の占める記
憶容量が大きくなる。同時に、命令取出し時間およびオ
ペランド取出し時間が増大する。さらに、第1図および
第2図に示した従来例の問題点として、機械語命令の機
能が低いことから、実行部3に至るまでに命令の先取り
を十分に行なうことができないことが挙げられる。つま
り、先取りを行なう処理装置においては、実行部3に先
だつて互いに独立して先取り動作を行なう処理部を多く
して、各処理部が命令処理を行なう動作時間を均等にす
ることにより装置全体としての処理速度を向上させるこ
とができる。ところが、機械語命令の機能が低い場合に
は、第2図に示した処理装置の処理部を増加させて、2
つから3つにすることは各処理部間の情報の受け渡しに
要する時間が増大することによる命令処理速度の改善が
困難になり、第1図の機械語命令を先取りのために分割
処理することが困難になる。高級言語に適した機能の高
い機械語命令を備えたデータ処理装置としてはBurr
Oughs社製Bl7OO計算機が挙げられる。
The device shown in FIG. 2 includes a main memory 1 for storing machine language instruction sequences and data, and an operand address for retrieving instructions from the main memory 1 and at the same time indicating the data position in the main memory 1. an instruction retrieval unit 2 that performs expansion;
An execution unit 3 that processes data retrieved from the main memory 1, etc., and a general-purpose register used as a base register or index register used when performing address expansion, or as a processing result storage register that can be specified with machine language instructions. Group 4. A sequence of machine language instructions to be processed from the main memory 1 is taken out into an instruction buffer 5, and then stored one instruction at a time into an instruction register 6 from the instruction buffer 5. A conventional decoder (not shown) for the stored instruction detects the type of operands of the instruction. As a result, when it is detected that the operand is related to data in the main memory device 1, the address of this operand is calculated using the address calculator 7,
It is stored in the address register 8. Next, the data in the main memory 1 specified by the address register 8 is transferred to the execution unit 3.
- Stored in operand register 9 inside. When the instruction in the instruction register 6 becomes ready to be processed by the execution unit 3, the instruction fetching unit 2 sends the instruction code in the instruction register 6 to the execution instruction code register 10 of the execution unit 3. As a result, in the execution unit 3, according to the instruction code, the operand register 9
Arithmetic operations, comparisons, data conversions, and storage of these processing results are performed using the general-purpose register group 4. When this device is used to execute the machine language instructions shown in FIG. 1, the following advantages arise because the instruction fetch section 2 and execution section 3 operate independently. In other words, the speed at which instructions are processed becomes faster than when instructions are processed by only one processing unit.
On the other hand, problems with the data processing device shown in the conventional example include the following. In other words, each machine language instruction has a low function and can only describe simple operations.
When a somewhat complex high-level language sentence as shown in FIG. 1 is translated into machine language instructions, redundant operands are required and operations associated with the operands are required. For example, WA, which is the operand of the machine language instruction in Figure 1,
and WR indicates data that is not indicated in the assignment statement "RA, RB=S;" of PL/1, and is not an operand that is essentially required to execute the assignment statement. . The two operands can be omitted by defining an appropriate machine language instruction suitable for the assignment statement. Compared to the machine language instructions defined in this way, the machine language instructions shown in FIG. 1 require a larger storage capacity for the instructions required to execute the assignment statement. At the same time, instruction fetch time and operand fetch time increase. Furthermore, a problem with the conventional example shown in FIGS. 1 and 2 is that because the machine language instructions have low functionality, it is not possible to sufficiently prefetch the instructions until they reach the execution unit 3. . In other words, in a processing device that performs prefetching, by increasing the number of processing units that perform prefetching operations independently of each other prior to the execution unit 3, and making the operating time for each processing unit equal for processing instructions, the entire device can be improved. The processing speed can be improved. However, if the functionality of machine language instructions is low, the number of processing units in the processing device shown in FIG.
Reducing the number from one to three makes it difficult to improve the instruction processing speed due to the increased time required to transfer information between each processing unit, and it is necessary to divide the machine language instructions in Figure 1 to pre-process them. becomes difficult. Burr is a data processing device equipped with highly functional machine language instructions suitable for high-level languages.
An example is the Bl7OO calculator manufactured by Oughs.

この装置においては、命令は1つの処理装置で実行され
る。第3図には、第1図に示した1つの送り側データを
2つの受け側データに送ることを指定した高級言語を機
能の高い機械語命令に翻訳した例を示す。第3図の機械
語命令は命令コーヴ部と、代入文における受け側データ
の個数を示す受け側データ数指示部と、送り側データを
指示するオペランド部と、受け側データを指示する2つ
のナペランド部とから成る。第3図の命令コード部はM
MVNで示され、複数の受け側データに送り側データを
数字転送することを示す。受け側データ数指示部の値は
受け側データの数に等しいので2である。送り側データ
のオペランド部Sデータを示すオペランドであり、受け
側データのオペランド部はRAおよびRBを示すオペラ
ンドである。この機械語命令では、第1図に示した機械
語命令に比べ冗長なオペランドを不要にすることができ
る。すなわち、第1図のWAおよびWRで示すオペラン
ドが不要になる。同時に、高級言語の文が翻訳された機
械誤命令の占有記憶容量を減少させることができ、さら
に処理速度を向上させることができる。しかしながら、
機械語命令を1つのデータ処理装置で実行するので、第
2図に示したパイプライン型のデータ処理装置で第3図
に示すような高い機能を有する機械語命令を実行できる
ようにした場合と比べ処理速度は遅い。この発明の目的
は機能の高い機械語命令を命令の処理過程に応じて互い
に独立して動作する複数の処理部で処理し実行部に先だ
つて行なう先取り処理としてオペランド生成を行なうこ
とにより上記欠点を解決し各処理部における処理量を均
等に配分できるようにして命令処理速度を向上させるこ
とができるデータ生成装置を提供することにある。
In this device, instructions are executed by one processing unit. FIG. 3 shows an example in which the high-level language that specifies sending one sending data to two receiving data shown in FIG. 1 is translated into highly functional machine language instructions. The machine language instruction in Figure 3 consists of an instruction cove section, a receiver data number indicator section that indicates the number of receiver data in an assignment statement, an operand section that indicates the sender data, and two napelands that indicate the receiver data. It consists of a department. The instruction code part in Figure 3 is M
It is indicated by MVN and indicates the numerical transfer of sender data to multiple receiver data. The value of the number of data on the receiving side is 2 because it is equal to the number of data on the receiving side. The operand part of the sending data is an operand indicating S data, and the operand part of the receiving data is an operand indicating RA and RB. This machine language instruction can eliminate the need for redundant operands compared to the machine language instruction shown in FIG. That is, the operands indicated by WA and WR in FIG. 1 become unnecessary. At the same time, it is possible to reduce the storage capacity occupied by the machine's erroneous instructions into which high-level language sentences are translated, and further improve the processing speed. however,
Machine language instructions are executed by one data processing device, so if the pipeline type data processing device shown in FIG. 2 is able to execute machine language instructions with high functionality as shown in FIG. The processing speed is comparatively slow. The purpose of this invention is to solve the above-mentioned drawbacks by processing highly functional machine language instructions in a plurality of processing units that operate independently of each other according to the instruction processing process, and by generating operands as prefetch processing that is performed prior to the execution unit. It is an object of the present invention to provide a data generation device that can improve the instruction processing speed by evenly distributing the amount of processing in each processing unit.

すなわち、本発明は、命令を処理する際に複数の処理部
に分割して処理するデータ処理装置におけるデータ生成
装置であり、オペランドがくり返し操作される対象とな
るオペランドとこのオペランドのこのくり返し操作回数
を指定する操作回数指示部とを含む機械語命令であるか
否かを判別する命令デコーダと、記憶装置から取り出し
た前記オペランドにより指示されるデータを一時記憶す
る一時記憶装置と、前記操作回数指示部で示されたオペ
ランドにより指示されるデータの生成回数を監視するデ
ータ数レジスタと前記一時記憶装置のデータを異なつた
性質のデータに変換するデータ変換器と前記命令デコー
ダでオペランドにより指示されるデータの生成回数が複
数回ある命令であることが解読されると前記データ数レ
ジスタで許される回数だけ前記一時記憶装置中のデータ
を前記データ変換器で変換生成させるよう制御動作を行
なう制御装置とから構成されている。
That is, the present invention is a data generation device in a data processing device that divides an instruction into a plurality of processing units when processing an instruction, and provides information on an operand to be repeatedly operated and the number of times this operand is repeatedly operated. an instruction decoder that determines whether the instruction is a machine language instruction, including an operation count instruction section that specifies the operation count instruction; a temporary storage device that temporarily stores data specified by the operand retrieved from the storage device; a data count register for monitoring the number of times data is generated as specified by the operand indicated by the part; a data converter for converting the data in the temporary storage device into data of different nature; and the data specified by the operand in the instruction decoder. a control device that performs a control operation to cause the data converter to convert and generate the data in the temporary storage device as many times as allowed by the data number register when it is decoded to be an instruction that has been generated multiple times; It consists of

次にこの発明について図面を参照して詳細に説明する。Next, the present invention will be explained in detail with reference to the drawings.

第4図には第1図に示した高級言語を翻訳した機械語命
令の例を示す。
FIG. 4 shows an example of a machine language instruction translated from the high-level language shown in FIG.

命令コードの8ビツトにはMMOVEが指定され、送り
側データが1つで受け側データは受け側データ数指示部
(操作回数指示部)で示される数だけ存在する転送命令
を指示する。受け側データはRAおよびRBで示される
2つのデータであるので受け側データ数指示部の値は2
である。Sで示される送り側データとRAおよびRBで
示される受け側データの属性はいずれも固定小数点でか
つ実数であるので、以下に示す第5図のオペランドの型
で機械語命令が構成され、それぞれのオペランドは第4
図に0S8,0SRAおよび0SRBで示される。
MMOVE is specified in 8 bits of the instruction code, indicating a transfer command in which there is one data on the sending side and the number of data on the receiving side is equal to the number indicated by the receiving side data number indicating section (operation number indicating section). Since the receiving side data is two pieces of data indicated by RA and RB, the value of the receiving side data number indicator is 2.
It is. The attributes of the sending data indicated by S and the receiving data indicated by RA and RB are both fixed point and real numbers, so a machine language instruction is constructed with the operand type shown in Figure 5 below, and each The operand of
They are indicated in the figure as 0S8, 0SRA and 0SRB.

第5図にデータ属性が固定小数点である算術データのオ
ペランド(0S)の例を示し、オペランド中の各フイー
ルドを以下に示す。
FIG. 5 shows an example of an arithmetic data operand (0S) whose data attribute is a fixed point, and each field in the operand is shown below.

オペランドのビツトOおよびビツト1の2ビツトでこの
オペランドの型を示す。その種類としては、オペランド
中にそのまま処理対象データとして利用される定数を備
えるリテラル型(00)、基本的なデータ属性を有する
データが存在する位置をオペランドが直接示す直接型(
01)および間接型(10)がある。間接型は配列長デ
ータまたは可変長データまたは編集データなどの複雑な
データを示すために用いられるデータデイスクリプタの
存在する位置がオペランドによつて指示され、処理対象
データが存在する位置がこのデータデイスクリプタによ
つて指示される場合に用いられる。ここでは直接型のオ
ペランドについて説明する。オペランドのビツト2から
ビツト4までの3ビツトはデータのタイプを示し、算術
データ、ストリングデータおよびラベルデータなどのデ
ータの種類を示す。第5図では3ビツトのパターンが゜
“010″で示される算術データの場合について説明す
る。オペランドのビツト5からビツト7までの3ビツト
はそれぞれ算術データのタイプを示す。ビツト5はこの
オペランドで示されるデータが実数あるいは虚数のいず
れであるかを示すモードビツトであり、この1直がOの
ときには実数、1のときには虚数であることを示す。ビ
ツト6はこのオペランドで示されるデータが2進数ある
いは10進数のいずれであるかを示すべースビツトであ
り、この値がOのときには2進数、1のときには10進
数であることを示す。ビツト7はこのオペランドで示さ
れるデータが固定小数点あるいは浮動小数点であるかを
示すスケールビツトであり、この値がOのときには固定
小数点、1のときには浮動小数点であることを示す。第
5図にはこのスケールビツトがOである場合すなわち固
定小数点データである場合を示す。オペランドのビツト
8からビツト23までで、この固定小数点データの精度
を示し、その中のビツト8からビツト15までの8ビツ
トでこのデータの総桁数を示し、ビツト16からビツト
23までの8ビツトでこのデータの小数点以下の桁数を
示す。オペランドのビツト28からビツト47までの2
0ビツトはこの固定小数点算術データの主記憶装置内で
の位置を示すアドレス情報である。この情報はインデツ
クスレジスタ、ベースレジスタを示す各ポインタといく
つかのプロツクに分割された主記憶装置でプロツク内で
のアドレスを示す変位とから成る。第6図は本発明の一
実施例のプロツク図であり第6図の装置全体は高級言語
が翻訳された機械語命令列およびデータなどを格納する
主記憶装置15と、命令の取出しを行なう命令取出し部
16と、データの取出しとオペランドにより指示される
データの生成を行なうデータ生成部17と、実行部18
とから構成されている。
Two bits, bit 0 and bit 1, of the operand indicate the type of this operand. The types include the literal type (00), which has a constant in the operand that is used as data to be processed, and the direct type (00), in which the operand directly indicates the location where data with basic data attributes exists.
01) and indirect type (10). The indirect type is used to indicate complex data such as array length data, variable length data, or edited data.The position of the data descriptor is specified by the operand, and the position of the data to be processed is specified in this data descriptor. Used when directed by the scripter. Here, we will explain the direct type operand. Three bits from bit 2 to bit 4 of the operand indicate the type of data, such as arithmetic data, string data, and label data. In FIG. 5, a case will be explained in which the 3-bit pattern is arithmetic data indicated by 010. Three bits from bit 5 to bit 7 of the operand each indicate the type of arithmetic data. Bit 5 is a mode bit indicating whether the data indicated by this operand is a real number or an imaginary number; when the 1st value is O, it is a real number, and when it is 1, it is an imaginary number. Bit 6 is a base bit indicating whether the data indicated by this operand is a binary number or a decimal number; when this value is O, it is a binary number, and when it is 1, it is a decimal number. Bit 7 is a scale bit that indicates whether the data indicated by this operand is fixed point or floating point; when this value is O, it is fixed point, and when it is 1, it is floating point. FIG. 5 shows a case where this scale bit is O, that is, a case where it is fixed point data. Bits 8 to 23 of the operand indicate the precision of this fixed-point data, 8 bits from bit 8 to 15 indicate the total number of digits of this data, and 8 bits from bit 16 to bit 23 indicate the precision of this fixed-point data. indicates the number of digits to the right of the decimal point for this data. 2 from bit 28 to bit 47 of the operand
The 0 bit is address information indicating the location of this fixed-point arithmetic data in the main memory. This information consists of an index register, each pointer indicating a base register, and a displacement indicating an address within a main memory which is divided into several blocks. FIG. 6 is a block diagram of one embodiment of the present invention, and the entire device shown in FIG. 6 includes a main memory 15 for storing machine language instruction strings translated from high-level languages, data, etc., and an instruction for fetching instructions. An extraction unit 16, a data generation unit 17 that extracts data and generates data specified by operands, and an execution unit 18.
It is composed of.

命令取出し部16からデータ生成部17への情報とデー
タの伝達およびデータ生成部17から実行部18への情
報とデータの伝達には、最も早い時期に入力されたもの
を出力する機能を有するFIFO(FirstinFi
rstOut)バツフア(第6図に波線Mで示す)が使
われる。各FIFOバツフアは4〜8ワードで構成され
ており、これらのFIFOバツフアにより、数命令まで
は互いに独立して各処理部での j処理を行なうことが
できる。命令取出し部16ではこれら実行される命令列
を主記憶装置15から命令バツフア20に読み出す。
For transmitting information and data from the instruction fetching section 16 to the data generating section 17 and from the data generating section 17 to the executing section 18, a FIFO having a function of outputting the earliest input is used. (First in Fi
rstOut) buffer (indicated by the dashed line M in FIG. 6) is used. Each FIFO buffer is composed of 4 to 8 words, and these FIFO buffers allow up to several instructions to be processed independently in each processing unit. The instruction retrieval unit 16 reads out the sequence of instructions to be executed from the main storage device 15 to the instruction buffer 20.

命令バツフア20の先頭に位置する命令は命令レジスタ
21に格納される。この命令中のオペなランドがリテラ
ル型(すなわち、命令のオペランド中に定数が格納され
ているもの)であれば、オペランド内の定数がそのまま
リテラルデータバツフア41を介してデータ生成部17
に出力される。オペランドが直接型あるいは間接型であ
れば、オペランドが指示する主記憶装置15内の位置を
求めるためにオペランド中のアドレス情報を使つてアド
レス展開が行なわれる。このアドレス展開はアドレス情
報の各ポインタによつて指示されるアドレス修飾レジス
タ群22中のベースレジスタとインデツクスレジスタの
各内容およびアドレス情報の変位をアドレス計算器23
で計算することによつて行なわれる。オペランドが直接
型である場合には、ここで得たアドレス展開結果が処理
対象データを指示しているのでIFアドレスバツフア4
0を介してデータ生成部17に出力される。オペランド
が間接型である場合には、アドレス展開結果に従つて指
示されるデータデイスクリプタを主記憶装置15から読
み出して処理対象データを直接指示するこのデイスクリ
プタ中のアドレス情報が直接型と同様に、IFアドレス
バツフア40を介してデータ生成部17に出力される。
命令レジスタ21中のオペランド内にあるデータタイプ
モード、ベース、スケールおよびデータ長などのデータ
記述情報はIFタイプバツフア42を介して対応するデ
ータのアドレス信号や定数データと対になつてデータ生
成部17に出力される。命令レジスタ21中の命令コー
ドや命令に付属する情報はIF命令バツフア43を介し
てデータ生成部17に出力される。データ生成部17で
は、新たな命令のデータ処理を行なうことができる状態
になるとIF命令バツフア43中で格納された時期が最
も古い命令や命令付属情報が命令コードレジスタに読み
出される。オペランドアドレスレジスタ24はIFアド
レスバツフア40中の最も古いアドレスが格納される。
送り側データのようにこのオペランドアドレスレジスタ
24で示される位置にある主記憶装置15内のデータの
内容が命令の処理に必要とされる場合には、主記憶装置
15からデータを取り出すために使われる。受け側デー
タのようにデータの位置だけが必要とされる場合にはオ
ペランドアドレスレジスタ24内のアドレスはそのまま
0Gアドレスバツフア44を介して実行部18に出力さ
れる。受け側データ数指示部を備える命令であればデー
タ数レジスタ26には前記指示部の値が格納される。デ
ータ数レジスタ26はデータ生成部17で送り側データ
を生成して実行部18に送るごとに1づつ減じられる。
制御装置32はこのデータ数レジスタ26の値がOにな
るのを検出して送り側データの生成を終了させるよう動
作する。命令デコーダ27は命令コードレジスタ25の
命令コードに従つてデータ生成部17でオペランドに指
示されたデータの処理を指定するために十分ないくつか
の処理タイプに命令を分類する。ここでの分類作業は1
つ1つの命令を分類分けしてデコードする必要はなく、
同じようなデータの取出しおよび生成を行なう命令単位
で分類する。タイプレジスタS28およびタイプレジス
タD29にはIFタイプバツフア42から読み出したデ
ータ記述情報が格納される。一時記憶装置30にはオペ
ランドアドレスレジスタ24によつて指示されるデータ
でかつ送り側データのようにデータの内容が処理対象と
なつているのでデータ生成部17で主記憶装置15から
読み出す必要のあるデータが格納される。データ変換器
31は一時記憶装置30のデータを制御装置32で指定
されるタイプに変換する。変換操作を指定するために制
御装置32は命令デコーダ27の出力信号によりオペラ
ンドに指示されたデータの処理タイプを分類した結果と
同時にタイプレジスタS28およびタイプレジスタD2
9のデータ記述情報を参照する。制御装置32からデー
タ変換器31への変換指定は変換信号線50を介して行
なわれる。変換操作の種類としては2進数から10進数
への変換、10進数から2進数への変換および実行部で
の内部演算を行なうときに便利なようにパツク10進数
への変換などの高級言語の処理に必要なデータ変換があ
り、さらに、一時記憶装置30に格納されているデータ
タイプのまま出力する操作がある。データ変換器31の
出力は0Gデータバツフア45を介して実行部18へ送
られる。同時にこのデータに対応するデータ記述情報を
持つタイプレジスタS28あるいはタイプレジスタD2
9の内容が0Gタイプバツフア46を介して実行部18
に送られる。命令コードレジスタ25の内容は0G命令
バツフア47を介して実行部18に送られる。制御装置
32はこれまでに説明したデータ生成部17の操作を制
御する機能を備え、通常のマイクロプログラムを用いる
ことにより実現されている。制御装置32の詳細な構成
および動作については本発明の要旨に直接関係ないので
省略する。なお、マイクロプログラムを用いた制御装置
の例としてはIBM社がすでに販売している電子計算機
360シリーズに用いられている。実行部18は新な命
令を実行できる状態になると0G命令バツフア47中の
格納された時期が最も古い命令コード等を命令実行コー
ドレジスタ33に格納する。この命令実行コードレジス
タ33の内容に従つて0Gタイプバツフア46からのデ
ータ記述情報と0Gデータバツフア45からのデータお
よびアドレスバツフア44からのアドレスをもとに命令
を実行する。次に第4図の機械語命令が第6図のプロツ
ク図に示した構成のデータ生成装置を含む複数の処理装
置で処理するときの動作を第4図、第5図および第7図
を参照しながら説明する。
The instruction located at the head of the instruction buffer 20 is stored in the instruction register 21. If the operand land in this instruction is a literal type (that is, a constant is stored in the operand of the instruction), the constant in the operand is directly transferred to the data generation unit 17 via the literal data buffer 41.
is output to. If the operand is a direct or indirect type, address expansion is performed using the address information in the operand to find the location in the main memory 15 pointed to by the operand. This address expansion is performed by using the address calculator 23 to calculate the contents of the base register and index register in the address modification register group 22 indicated by each pointer of the address information and the displacement of the address information.
This is done by calculating. If the operand is a direct type, the address expansion result obtained here indicates the data to be processed, so the IF address buffer 4
0 to the data generation unit 17. When the operand is an indirect type, the data descriptor specified according to the address expansion result is read from the main memory 15 and the address information in this descriptor that directly specifies the data to be processed is the same as in the direct type. , are output to the data generation section 17 via the IF address buffer 40.
Data description information such as data type mode, base, scale, and data length in the operand in the instruction register 21 is paired with the address signal and constant data of the corresponding data via the IF type buffer 42 and sent to the data generation unit 17. Output. The instruction code in the instruction register 21 and information attached to the instruction are output to the data generation section 17 via the IF instruction buffer 43. In the data generation unit 17, when the data generation unit 17 becomes ready for data processing of a new instruction, the oldest instruction and instruction attached information stored in the IF instruction buffer 43 are read out to the instruction code register. The operand address register 24 stores the oldest address in the IF address buffer 40.
When the contents of the data in the main memory 15 at the location indicated by this operand address register 24, such as sending data, are required for processing the instruction, the data is used to retrieve the data from the main memory 15. be exposed. When only the location of the data is required, such as for receiving data, the address in the operand address register 24 is output as is to the execution unit 18 via the 0G address buffer 44. If the instruction includes a receiving side data number instruction section, the value of the instruction section is stored in the data number register 26. The data number register 26 is decremented by 1 each time the data generation section 17 generates sending data and sends it to the execution section 18.
The control device 32 operates to detect that the value of the data number register 26 becomes O and terminate the generation of the sending data. The instruction decoder 27 classifies the instruction into several processing types sufficient to specify the processing of data specified by the operand in the data generation section 17 according to the instruction code in the instruction code register 25. The classification work here is 1
There is no need to classify and decode each instruction,
Classify by instruction unit that retrieves and generates similar data. Data description information read from the IF type buffer 42 is stored in the type register S28 and the type register D29. Since the temporary storage device 30 contains data specified by the operand address register 24 and the content of the data is to be processed like the sending data, it is necessary to read it from the main storage device 15 by the data generation unit 17. Data is stored. The data converter 31 converts the data in the temporary storage device 30 into a type specified by the control device 32. In order to designate a conversion operation, the control device 32 classifies the processing type of the data specified by the operand using the output signal of the instruction decoder 27, and simultaneously records the results in the type register S28 and the type register D2.
Refer to the data description information in 9. Conversion designation from the control device 32 to the data converter 31 is performed via a conversion signal line 50. Types of conversion operations include high-level language processing such as conversion from binary to decimal, conversion from decimal to binary, and conversion to packed decimal for convenience when performing internal calculations in the execution unit. In addition, there is an operation to output the data type stored in the temporary storage device 30 as it is. The output of the data converter 31 is sent to the execution unit 18 via the 0G data buffer 45. At the same time, type register S28 or type register D2 has data description information corresponding to this data.
The contents of 9 are sent to the execution unit 18 via the 0G type buffer 46.
sent to. The contents of the instruction code register 25 are sent to the execution unit 18 via the 0G instruction buffer 47. The control device 32 has the function of controlling the operation of the data generation section 17 described above, and is realized by using a normal microprogram. The detailed configuration and operation of the control device 32 will be omitted since they are not directly related to the gist of the present invention. An example of a control device using a microprogram is the computer 360 series already sold by IBM. When the execution unit 18 becomes ready to execute a new instruction, it stores the oldest stored instruction code in the 0G instruction buffer 47 into the instruction execution code register 33. According to the contents of the instruction execution code register 33, an instruction is executed based on the data description information from the 0G type buffer 46, the data from the 0G data buffer 45, and the address from the address buffer 44. Next, refer to FIGS. 4, 5, and 7 for the operation when the machine language instruction in FIG. I will explain while doing so.

第4図の機械語命令が記憶装置15から命令バツフア2
0にいくつかの命令とともに格納された後、この命令が
命令取出し部16での処理対象になると命令レジスタ2
1にシフトされる。次に第4図に示すように命令コード
としてはMMOVEであることを示し受け側データの数
は受け側データ数指示部で示されるように2つである。
したがつて、送り側データを示すオペランドと受け側デ
ータを示すオペランドは合計3つであることが検出され
、各オペランドのアドレス展開操作を開始する。同時に
命令レジスタ21から命令コードと受け側データ指示部
の16ビツトがIF命令バツフア43に送られる。第7
図に各オペランドを示す。第7図の各オペランドは直接
型でありかつ算術データであるので、各オペランドのビ
ツトOおよびビツト1の2ビツトば゜01゛で示されか
つビツト2からビツト4までの3ビツトぱ゛010゛で
示される。
The machine language instructions in FIG. 4 are transferred from the storage device 15 to the instruction buffer 2.
After being stored in the instruction register 2 along with several instructions, when this instruction becomes a processing target in the instruction fetching unit 16, the instruction register 2
Shifted to 1. Next, as shown in FIG. 4, the instruction code is MMOVE, and the number of receiving side data is two as indicated by the receiving side data number indicator.
Therefore, it is detected that there are a total of three operands indicating sending data and receiving data, and an address expansion operation for each operand is started. At the same time, the instruction code and 16 bits of the receiving side data instruction part are sent from the instruction register 21 to the IF instruction buffer 43. 7th
The figure shows each operand. Since each operand in FIG. 7 is of direct type and is arithmetic data, the two bits of each operand, bit O and bit 1, are represented by 01, and the three bits from bit 2 to bit 4 are represented by 010. It is indicated by.

送り側データは実数で10進数かつ固定小数点であるの
で第7図aのオペランドのビツト5からビツト7までモ
ード、ベースおよびスケールの各ビツトば010゛とな
る。このデータの桁数は10進数の4桁で、第7図aの
ビツト8からビツト15までの8ビツトの値で示される
。また小数点以下の桁数はOでビツト16からビツト2
3までの8ビツトの値で示される。この送り側データの
アドレス情報としてはインデツクスレジスタOとベース
レジスタ3を指示する各ポインタとDSPsである変位
を含むことがビツト28からビツト47までの3つのフ
イールドで示される。最初の受け側データRAを示す第
7図bのオペランドではビツト5からビツト47までの
情報として、実数、2進数、固定小数点、2進数10桁
、小数点以下の桁数0、インデツクスレジスタ1、ベー
スレジスタ2および変位がDSPRAであることが示さ
れる。二番目の受け側データRBを示す第7図cのオペ
ランドではビツト5からビツト47までの情報として、
実数、10進数、固定小数点、10進数6桁、小数点以
下の桁数1、インデツクスレジスタO、ベースレジスタ
3および変位がDSPRBであることが示される。これ
らのオペランドのアドレス展開は、命令内での出現順に
行なわれ、最初にオペランド0Ssのアドレス展開が行
なわれる。第7図aのインデツクスレジスタおよびベー
スレジスタを指示する各ポインタの値0および3によつ
て第6図のアドレス修飾レジスタ群22のインデツクス
レジスタ0とベースレジスタ3の内容と命令レジスタ2
1中の第7図aの変位DISPsの値をアドレス計算器
23の入力として送り側データのアドレスを計算する。
このオペランドは直接型であるのでここで得たアドレス
計算器の結果の値が送り側データの格納されている主記
憶装置15内の位置を示すので、この値がIFアドレス
バツフア40に送られる。同時に、第7図aのビツトO
からビツト23までのデータ属性を示すデータ記述情報
が命令レジスタ21からIFタイプバツフア42に送ら
れる。送り側データのオペランド0S8に関する命令取
出し部16での処理が終了し、次に命令取出し部16で
は最初の受け側データのオペランド0SRAが処理され
る。このオペランドのアドレス展開は送り側データのオ
ペランド0Ssと同様に行なわれ、アドレス修飾レジス
タ群22中のインデツクスレジスタ1とベースレジスタ
2の内容と変位DSPRAの値をアドレス計算器23で
計算した結果がIFアドレスバツフア40に送られる。
同時に第7図ビツト0からビツト23までのデータ属性
を示すデータ記述情報が命令レジスタ21からIFタイ
プバツフア42に送られる。次に二番目の受け側データ
のオペランド0SRBが命令取り出し部16で処理され
る。その結果1Fアドレスバツフア40に 4RB受け
側データのアドレスが送られ、IFタイプバツフア42
に第7図cのビツトOからビツト23までのデータ属性
に関するデータ記述情報が送られる。第4図に示すMM
OVE命令の命令取り出し部での処理を終了したこの時
点におけるIFタイプバツフア42とIFアドレスバツ
フア40の状態を第8図に示す。データ生成部17では
MMOVE命令に先行する命令の処理を終えて、MMO
VE命令のオペランドによつて指示されたデータの処理
が可能になると、このときまでにはIF命令バツフア4
3の中で最も古い時期に格納された命令となつているM
MOVE命令関係の命令コードと受け側データ数指示部
の値であることをデータ生成部17中の命令コードレジ
スタ25に格納する。それからMMOVE命令に関する
データ処理を開始すると同時にMMOVE命令関係情報
を持つ命令コードレジスタ25の内容は0G命令バツフ
ア47に送られる。命令コードレジスタ25の命令コー
ドは命令デコーダ27でデータ処理の特定のタイプに分
類される。MMOVEに関してはこのデコーダ結果に従
い、受け側データ数指示部を備えかつこの指示部で指定
された回数だけデータ生成が必要な命令であることが制
御装置32によつて検出されると、命令コードレジスタ
25の受け側データ数指示部がデータ数レジスタ26に
格納される。タイプレジスタS28にはIFタイプバツ
フア42の中でこのときまでには最も古い時期に格納さ
れた情報となつている送り側データSのデータ記述情報
が格納される。このとき第7図aのビツトOとビツト1
で示されるオペランドの型を示す2ビツトに対応するI
Fタイプバツフア42中のビツトを調べる。その結果゛
゜01゛で示される直接型のオペランドであることから
IFアドレスバツフア40に送り側データSに対応する
アドレスが格納されていることが判明し、オペランドア
ドレスレジスタ24にIFアドレスバツフア40の中の
送り側データSの位置を示すアドレスが格納される。こ
のアドレスは送り側データのアドレスであるのでデータ
生成部17ではオペランドアドレスレジスタ24で指示
される主記憶装置15内の位置から送り側データSの内
容を読み出してその内容は一時記憶装置30に格納され
る。このとき読み出される数字の桁数はタイプレジスタ
S28内に格納されているデータの属性に関するデータ
記述情報の総桁数の値により4桁である。またこのデー
タは10進数であり、1桁の10進数字は1バイトで表
示され、10進数字データの前には1バイトで符号が表
示されているので、主記憶装置15から読み出されるバ
イト数は5バイトである。次に、IFタイプバツフア4
2のデータ記述情報の中で最も古い情報となつている受
け側データRAに関する第7図bのビツト0からビツト
23までのビツトで示される情 .1報がタイプレジス
タD29に格納される。同時に前記送り側データのアド
レスと同様にIFアドレスバツフアから受け側データR
Aに対応するアドレスがオペランドアドレスレジスタ2
4に格納される。タイプレジスタS28とタイプレジス
タDl29に格納された第5図のデータタイプ、モード
、ベースおよびスケールの各情報により制御装置32は
データ変換タイプを決定する。第7図aと第7図bの各
オペランドのベースビツトの値が゛1゛と“゜0゛より
送り側データが10進数で受け側データが2進数である
ので10進数から2進数への変換が決定される。この変
換決定に従い一時記憶装置30に格納されている10進
数の送り側データが10進数から2進数に変換されるよ
うに制御装置32からデータ変換器31に変換信号線5
0二を介して指示される。変換された2進数は0Gデー
タバツフア45に送られる。同時に送り側データSに関
するデータ記述情報がタイプレジスタS28から0Gタ
イプバツフア46に送られる。このときにはデータ記述
情報として第7図aのオペランドのオペランドの型を示
すビツトOとビツト1は除かれあらたに変換後のデータ
タイプ、モード、ベースおよびスケールを示す情報がつ
け加えられる。次にオペランドアドレスレジスタ24の
現在の内容になつている受け側データRAのアドレスが
そのまま0Gアドレスバツフア44に送られる。
Since the data on the sending side is a real number, a decimal number, and a fixed point, the mode, base, and scale bits from bit 5 to bit 7 of the operand in FIG. 7a are 010. The number of digits of this data is four decimal digits, and is shown as an 8-bit value from bit 8 to bit 15 in FIG. 7a. The number of digits after the decimal point is O, from bit 16 to bit 2.
It is indicated by an 8-bit value up to 3. It is shown in three fields from bit 28 to bit 47 that the address information of this sending data includes pointers pointing to index register O and base register 3, and displacements which are DSPs. In the operand of FIG. 7b showing the first receiving data RA, the information from bit 5 to bit 47 includes a real number, binary number, fixed point, 10 digits in binary, number of digits after the decimal point 0, index register 1, Base register 2 and displacement are shown to be DSPRA. In the operand of FIG. 7c showing the second receiving data RB, the information from bit 5 to bit 47 is as follows:
It is shown that the real number, decimal number, fixed point, 6 decimal digits, 1 decimal place, index register O, base register 3, and displacement are DSPRB. Address expansion of these operands is performed in the order of appearance within the instruction, with address expansion of operand 0Ss being performed first. The contents of index register 0 and base register 3 of address modification register group 22 of FIG. 6 and instruction register 2 are determined by the values 0 and 3 of each pointer pointing to the index register and base register of FIG.
The address of the sending data is calculated by inputting the value of the displacement DISPs in FIG. 7a in FIG. 1 to the address calculator 23.
Since this operand is of direct type, the value of the address calculator result obtained here indicates the location in the main memory 15 where the sending data is stored, so this value is sent to the IF address buffer 40. . At the same time, bit O in Figure 7a
Data description information indicating data attributes from bit 23 to bit 23 is sent from the instruction register 21 to the IF type buffer 42. The processing in the instruction fetch unit 16 regarding the operand 0S8 of the sending data is completed, and then the instruction fetch unit 16 processes the operand 0SRA of the first receiving data. The address expansion of this operand is performed in the same way as the operand 0Ss of the sending data, and the result of calculating the contents of index register 1 and base register 2 in the address modification register group 22 and the value of displacement DSPRA by the address calculator 23 is It is sent to the IF address buffer 40.
At the same time, data description information indicating data attributes from bit 0 to bit 23 in FIG. 7 is sent from the instruction register 21 to the IF type buffer 42. Next, the second receiving side data operand 0SRB is processed by the instruction retrieval unit 16. As a result, the address of the 4RB receiving side data is sent to the 1F address buffer 40, and the IF type buffer 42
The data description information regarding the data attributes from bit 0 to bit 23 in FIG. 7c is sent. MM shown in Figure 4
FIG. 8 shows the states of the IF type buffer 42 and the IF address buffer 40 at the time when the OVE instruction has been processed by the instruction fetch section. The data generation unit 17 completes the processing of the instruction preceding the MMOVE instruction, and then
By this time, when the data specified by the operand of the VE instruction can be processed, the IF instruction buffer 4
M, which is the oldest stored instruction among the 3
The instruction code related to the MOVE instruction and the value of the receiving side data number indicator are stored in the instruction code register 25 in the data generation section 17. Then, at the same time as starting data processing regarding the MMOVE instruction, the contents of the instruction code register 25 having MMOVE instruction related information are sent to the 0G instruction buffer 47. The instruction codes in instruction code register 25 are classified by instruction decoder 27 into specific types of data processing. Regarding MMOVE, in accordance with this decoder result, when the control device 32 detects that the instruction is provided with a receiving side data number instruction section and requires data generation the number of times specified by this instruction section, the instruction code register is 25 receiving side data number instruction parts are stored in the data number register 26. The type register S28 stores data description information of the sending data S, which is the oldest information stored in the IF type buffer 42 by this time. At this time, bit O and bit 1 in Figure 7a
I corresponding to the 2 bits indicating the type of operand indicated by
Examine the bits in F-type buffer 42. As a result, since it is a direct type operand indicated by ゛゜01゛, it is found that the address corresponding to the sending data S is stored in the IF address buffer 40, and the IF address buffer 40 is stored in the operand address register 24. An address indicating the position of the sending data S in is stored. Since this address is the address of the sending data, the data generation unit 17 reads the content of the sending data S from the location in the main storage device 15 specified by the operand address register 24 and stores the content in the temporary storage device 30. be done. The number of digits of the number read at this time is four digits, depending on the total number of digits of the data description information regarding the data attribute stored in the type register S28. Also, this data is a decimal number, and one decimal digit is displayed in 1 byte, and a code is displayed in 1 byte before the decimal digit data, so the number of bytes read from the main memory 15 is 5 bytes. Next, IF type buffer 4
The information shown by bits 0 to 23 in FIG. 7b regarding the receiving side data RA, which is the oldest information among the data description information of . One report is stored in type register D29. At the same time, the receiving side data R is transferred from the IF address buffer to the address of the sending side data.
The address corresponding to A is operand address register 2
It is stored in 4. The control device 32 determines the data conversion type based on the data type, mode, base, and scale information shown in FIG. 5 stored in the type register S28 and the type register D129. Since the base bit values of each operand in Figures 7a and 7b are ``1'' and ``0'', the sending data is a decimal number and the receiving data is a binary number, so convert from decimal to binary. According to this conversion decision, a conversion signal line 5 is sent from the control device 32 to the data converter 31 so that the decimal sending data stored in the temporary storage device 30 is converted from decimal to binary.
Directed via 02. The converted binary number is sent to the 0G data buffer 45. At the same time, data description information regarding the sending data S is sent from the type register S28 to the 0G type buffer 46. At this time, bits 0 and 1 indicating the operand type of the operand shown in FIG. 7a are removed as data description information, and information indicating the data type, mode, base and scale after conversion is added. Next, the address of the receiving data RA, which is the current content of the operand address register 24, is sent as is to the 0G address buffer 44.

同時に受け側データRAに関するデータ記述情報がタイ
プレジスタD29から0Gタイプバツフア46に送られ
る。このとき、データ記述情報として第7図bのオペラ
ンドのオペランドの型を示すビツトOとビツト1は除か
れる。以上の操作が行なわれると制御装置32によつて
データ数レジスタ26の値が1減じられ、その結果値が
1になる。これまでの操作により最初のデータ生成に関
連した処理を終了する。次にIFタイプバツフア42の
中の受側データRBのデータ記述情報がタイプレジスタ
D29に格納される。そのときに送り側データSの場合
と同様にIFアドレスバツフアから受け側データRBに
対応するアドレスがオペランドアドレスレジスタ24に
格納される。タイプレジスタS28に格納されている送
り側データSに関するデータ記述情報とタイプレジスタ
D29に格納された情報により制御装置32はデータ変
換タイプを決定する。第7図aと第7図cの各オペラン
ドのビツト2からビツト23までのデータ記述情報は全
く同じであるので、一時記憶装置30に格納されている
10進数の送り側データがそのままデータ変換器31の
出力となるように制御装置32からデータ変換器31に
変換信号線50を介して指示される。データ変換器31
の10進数出力データは0Gデータバツフア45に送ら
れる。同時に送り側データSに関するデータ記述情報が
タイプレジスタS28から0Gタイプバツフア46に送
られる。このときのデータ記述情報の作成は前記最初の
データ生成の場合と同様に行なわれる。次にオペランド
アドレスレジスタ24の受け側データRBのアドレスが
そのまま0Gアドレスバツフア44に送られる。同時に
受け側データRBに関するデータ記述情報が前記受け側
データがRAである場合と同様にタイプレジスタD29
から0Gタイプバツフア46に送られる。以上の操作が
行なわれると制御装置32によつてデータ数レジスタ2
6の値が1減じられ、その結果値がOになる。これまで
の操作により二回目のデータ生成が終了する。データ数
レジスタ26の出力を受けて制御装置32では前記出力
が0になつたことにより受け側データの数に応じたデー
タ生成は終了したことが検出される。これによつて第4
図のMMOVE命令に関するデータ生成部17での処理
を終了する。続いてデータ生成部17ではMMOVE命
令に続いているIF命令バツフア43中の命令オペラン
ド処理を開始する。第9図に第4図のMMOVE命令を
データ生成部で処理したときのデータ生成部17から0
Gタイプバツフア46と0Gデータバツフア45と0G
アドレスバツフア44とに送られる記述情報、生成デー
タおよびアドレスのそれぞれの出力タイミングを示す。
At the same time, data description information regarding the receiving side data RA is sent from the type register D29 to the 0G type buffer 46. At this time, bits 0 and 1 indicating the operand type of the operand shown in FIG. 7b are removed as data description information. When the above operation is performed, the value of the data number register 26 is decreased by 1 by the control device 32, so that the value becomes 1. The operations related to the first data generation are completed by the operations so far. Next, the data description information of the receiving side data RB in the IF type buffer 42 is stored in the type register D29. At this time, the address corresponding to the receiving side data RB is stored in the operand address register 24 from the IF address buffer as in the case of the sending side data S. The control device 32 determines the data conversion type based on the data description information regarding the sending data S stored in the type register S28 and the information stored in the type register D29. Since the data description information from bit 2 to bit 23 of each operand in FIG. 7a and FIG. The control device 32 instructs the data converter 31 via the conversion signal line 50 to output the signal 31. Data converter 31
The decimal output data is sent to the 0G data buffer 45. At the same time, data description information regarding the sending data S is sent from the type register S28 to the 0G type buffer 46. Creation of data description information at this time is performed in the same manner as in the case of the first data generation. Next, the address of the receiving data RB in the operand address register 24 is sent as is to the 0G address buffer 44. At the same time, the data description information regarding the receiving side data RB is stored in the type register D29 as in the case where the receiving side data is RA.
from there to the 0G type buffer 46. When the above operations are performed, the control device 32 controls the data number register 2.
The value of 6 is subtracted by 1, resulting in a value of 0. The second data generation is completed by the operations so far. In response to the output of the data number register 26, the control device 32 detects that the output has become 0, and that data generation corresponding to the number of receiving side data has been completed. This makes the fourth
The processing in the data generation unit 17 regarding the MMOVE command shown in the figure is completed. Subsequently, the data generation unit 17 starts processing the instruction operands in the IF instruction buffer 43 following the MMOVE instruction. FIG. 9 shows the data generation section 17 to 0 when the MMOVE instruction of FIG. 4 is processed by the data generation section.
G type buffer 46 and 0G data buffer 45 and 0G
The output timings of descriptive information, generated data, and addresses sent to the address buffer 44 are shown.

オペランド関係の情報としては最初(時刻T。)に10
進数であつた送り側データSをデータ生成部17で2進
数に変換して生成した生成データとこのデータに対応し
ているデータ記述情報を出力する。このデータ記述情報
はデータ生成部17で生成データに関する情報がつけ加
えられた情報である。これらの出力が終了する(時刻t
1)と前記2進数データの受け側データRAのアドレス
と同時にデータ記述情報としてRAのデータ記述情報を
出力する。次に受け側データRBのデータタイプによつ
て決定された変換タイプに従つて10進数であつた送り
側データSをタイプ変換しないで時刻T2に生成データ
として出力する。同時(T2)にこのデータに対応する
データ記述情報として変換結果の情報などを加えて出力
する。これらの出力が紙了する(時刻T3)と前記10
進数データの受け側データRBのアドレスと同時にデー
タ記述情報としてRBのデータ記述情報を出力する。実
行部18では0G命令バッファ47中に格納されたMM
OVE命令が実行可能になると命令実行コードレジスタ
33に命令コードと受け側データ数指示部の値を格納し
てMMOVE命令の実行を開始する。
The operand-related information is 10 at the beginning (time T).
The data generator 17 converts the sending data S, which is a base number, into a binary number and outputs generated data and data description information corresponding to this data. This data description information is information to which information regarding the generated data is added by the data generation unit 17. These outputs end (time t
1) and the address of the receiving side data RA of the binary data, and simultaneously output data description information of RA as data description information. Next, according to the conversion type determined by the data type of the receiving data RB, the sending data S, which is a decimal number, is output as generated data at time T2 without type conversion. At the same time (T2), information on the conversion result and the like is added as data description information corresponding to this data and output. When these outputs are completed (time T3), the above 10
At the same time as the address of the data RB on the receiving side of the hexadecimal data, data description information of the RB is output as data description information. In the execution unit 18, the MM stored in the 0G instruction buffer 47
When the OVE instruction becomes executable, the instruction code and the value of the receiving side data number instruction part are stored in the instruction execution code register 33, and the execution of the MMOVE instruction is started.

実行部18における処理は、0Gタイプバツフア46か
ら送り側データとなる2進数データに関する情報を取り
出し、続いて受け側データとなつているRAのデータ記
述情報をとり出して、0Gデータバツフア45からとり
出される2進数データを0Gアドレスバツフア44から
とり出される受け側データRAのアドレスで示され二る
主記憶装置15内の位置に送る。次に10進数データを
受け側データRBのアドレスで示すされる主記憶装置1
5内の位置に送る操作を前記操作と同様に行なつてMM
OE命令を終了する。主記憶装置15にデータを移送す
る際にはデータ記こ述情報によつて次のような操作を行
なう。つまり、送り側データと受け側データの小数点位
置を合わせる操作と、主記憶装置に格納するときにゼロ
づめを行なう操作あるいは桁あふれをチエツクする操作
を行なう。 5以上
のように、本発明のデータ生成装置を用いると、実行部
に先行して受け側データに応じた適切なデータの生成お
よび変換を行なうことにより実行部でのデータ管理を簡
単にすることができる。したがつて、本発明では、従来
例の複数処理部で4構成されたデータ処理装置を使つて
機能の高い機械語命令を実行すると実行部での処理が多
大になり、複数処理部で構成した装置としては性能が向
上しないという欠点も解決できる。さらに、本発明では
、実行部に先行する処理をいくつかの処理部に分割して
それらの処理部での処理量をほぼ等しくして、各処理部
の有効利用を計り、命令の実行速度を速くすることがで
きる。
The processing in the execution unit 18 is to extract information regarding binary data, which is the sending data, from the 0G type buffer 46, and then extract data description information of the RA, which is the receiving data, from the 0G data buffer 45. The binary data is sent to the location in the main memory 15 indicated by the address of the receiving data RA taken out from the 0G address buffer 44. Next, the main memory 1 is indicated by the address of the decimal data receiving side data RB.
MM by performing the same operation as above to send the MM
End the OE command. When transferring data to the main storage device 15, the following operations are performed depending on the data description information. That is, an operation is performed to match the decimal point positions of the sending data and receiving data, and an operation to perform zero padding or check for overflow when storing data in the main memory. As described above, when the data generation device of the present invention is used, data management in the execution unit can be simplified by generating and converting appropriate data according to the receiving data prior to the execution unit. I can do it. Therefore, in the present invention, if a highly functional machine language instruction is executed using a conventional data processing device configured with four multiple processing units, a large amount of processing will be required in the execution unit. This also solves the drawback that the performance of the device is not improved. Furthermore, in the present invention, the processing that precedes the execution unit is divided into several processing units, and the amount of processing in each processing unit is approximately equalized, thereby making effective use of each processing unit and increasing the instruction execution speed. It can be done quickly.

【図面の簡単な説明】 第1図はPL/1言語による代入文命令の例と従来の機
械語命令の例を示す図、第2図は複数の処理部を備えて
命令を実行する従来のデータ処理装置を示す図、第3図
は高い機能を有する機械語命令の例を示す図、第4図は
本発明に用いる高い機能を備えた機械語命令の例を示す
図、第5図は本発明に用いる高い機能を備えた機械語命
令におけるオペランドの例を示す図、第6図は本発明の
一実施例を示すプロツク図、第7図は第4図に示した機
械語命令の各オペランドの例を示す図、第8図は第6図
の命令取出し部16で第4図に示した機械語命令の処理
を終了したときのIFタイプバツフアおよびIFアドレ
スバツフアを示す図および第9図はデータ生成部で第4
図の機械語命令を処理したときの出力タイミングを示す
図である。 第6図において、15・・・主記憶装置、.16・・・
命令取出し部、17・・・データ生成部、18・・・実
行部、20・・・命令バツフア、21・・・命令レジス
タ、22・・・アドレス修飾レジスタ群、23・・・ア
ドレス計算器、24・・・オペランドアドレスレジスタ
、25・・・命令コードレジスタ、26・・・データ数
レジスタ、27・・・命令デコーダ、28・・・タイプ
レジスタS,29・・・タイプレジスタD,3O・・・
一時記憶装置、31・・・データ変換器、32・・・制
御装置、33・・・命令実行コードレジスタ、40・・
・IFアドレスバツフア、41・・・リテラルデータバ
ツフア、42・・・IFタイプバツフア、43・・・I
F命令バツフア、44・・・0Gアドレスバツフア、4
5・・・0Gデータバツフア、46・・・0Gタイプバ
ツフア、47・・・0G命令バツフア、50・・・変換
信号線。
[Brief Description of the Drawings] Figure 1 is a diagram showing an example of an assignment statement instruction in the PL/1 language and an example of a conventional machine language instruction. FIG. 3 is a diagram showing an example of a machine language instruction with advanced functionality; FIG. 4 is a diagram showing an example of a machine language instruction with advanced functionality used in the present invention; FIG. 5 is a diagram showing an example of a machine language instruction with advanced functionality. A diagram showing an example of operands in a machine language instruction with advanced functions used in the present invention, FIG. 6 is a block diagram showing an embodiment of the present invention, and FIG. 7 shows each of the machine language instructions shown in FIG. FIG. 8 is a diagram showing an example of an operand, and FIG. 9 is a diagram showing an IF type buffer and an IF address buffer when the instruction fetch unit 16 in FIG. 6 finishes processing the machine language instruction shown in FIG. 4. is the fourth in the data generation section.
FIG. 3 is a diagram showing output timing when processing the machine language instruction shown in the figure. In FIG. 6, 15...main storage device, . 16...
Instruction fetch unit, 17...Data generation unit, 18...Execution unit, 20...Instruction buffer, 21...Instruction register, 22...Address modification register group, 23...Address calculator, 24... Operand address register, 25... Instruction code register, 26... Data number register, 27... Instruction decoder, 28... Type register S, 29... Type register D, 3O...・
Temporary storage device, 31... Data converter, 32... Control device, 33... Instruction execution code register, 40...
・IF address buffer, 41... Literal data buffer, 42... IF type buffer, 43...I
F instruction buffer, 44...0G address buffer, 4
5...0G data buffer, 46...0G type buffer, 47...0G instruction buffer, 50...conversion signal line.

Claims (1)

【特許請求の範囲】[Claims] 1 命令を処理する際に複数の処理部に分割して処理す
るデータ処理装置におけるデータ生成装置において、オ
ペランドがくり返し操作される対象となるオペランドと
このオペランドの操作回数を指定する操作回数指示部と
を含む機械語命令であるか否かを判別する命令デコーダ
と、記憶装置から取り出した前記オペランドにより指示
されるデータを一時記憶する一時記憶装置と、前記操作
回数指示部で示されたオペランドにより指示されるデー
タの生成回数を監視するデータ数レジスタと、前記一時
記憶装置のデータを異なつた性質のデータに変換するデ
ータ変換器と、前記命令デコーダでオペランドにより指
示されるデータの生成回数が複数回である命令であるこ
とが解読される前記データ数レジスタで許される回数だ
け前記一時記憶装置中のくり返し生成する対象になるデ
ータを前記データ変換器で変換生成させるよう制御動作
を行なう制御装置とから構成され、前記一時記憶装置に
格納された生成対象データを前記機械語命令の前記操作
回数指示部で指定された回数だけ前記機械語命令の処理
に必要なデータ変換を伴つてくり返し生成することを特
徴とするデータ生成装置。
1. In a data generation device of a data processing device that processes an instruction by dividing it into multiple processing units, the operand is a target for repeated operations and an operation count instruction unit that specifies the number of operations of this operand. an instruction decoder that determines whether or not the instruction is a machine language instruction that includes a machine language instruction; a temporary storage device that temporarily stores data specified by the operand retrieved from a storage device; a data count register that monitors the number of times data is generated, a data converter that converts the data in the temporary storage device into data with different properties, and a data count register that monitors the number of times the data is generated as instructed by the operand in the instruction decoder. a control device that performs a control operation to cause the data converter to convert and generate data to be repeatedly generated in the temporary storage device as many times as permitted by the data number register, which is decoded to be an instruction that is a command; configured to repeatedly generate the generation target data stored in the temporary storage device as many times as specified by the operation count instruction part of the machine language instruction, with data conversion necessary for processing the machine language instruction. Characteristic data generation device.
JP51138181A 1976-11-16 1976-11-16 data generation device Expired JPS5919379B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP51138181A JPS5919379B2 (en) 1976-11-16 1976-11-16 data generation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP51138181A JPS5919379B2 (en) 1976-11-16 1976-11-16 data generation device

Publications (2)

Publication Number Publication Date
JPS5362439A JPS5362439A (en) 1978-06-03
JPS5919379B2 true JPS5919379B2 (en) 1984-05-04

Family

ID=15215935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51138181A Expired JPS5919379B2 (en) 1976-11-16 1976-11-16 data generation device

Country Status (1)

Country Link
JP (1) JPS5919379B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0277940A (en) * 1988-09-14 1990-03-19 Hitachi Ltd Data processor
JP2668456B2 (en) * 1991-01-22 1997-10-27 三菱電機株式会社 Bit search circuit and data processing device having the same

Also Published As

Publication number Publication date
JPS5362439A (en) 1978-06-03

Similar Documents

Publication Publication Date Title
US4205370A (en) Trace method and apparatus for use in a data processing system
EP0136656B1 (en) A nibble and word addressable memory to accessing consecutive data units for supporting decimal arithmetic operations
JP2992223B2 (en) Computer system, instruction bit length compression method, instruction generation method, and computer system operation method
JP2616182B2 (en) Data processing device
US5408626A (en) One clock address pipelining in segmentation unit
US5347636A (en) Data processor which efficiently accesses main memory and input/output devices
CN1144934A (en) Data processor with execution unit for executing instruction sending and its operation method
EP0352082B1 (en) Microinstruction addressing in a pipeline-CPU (operating method, addressing method, memory stack and CPU )
US4620274A (en) Data available indicator for an exhausted operand string
JP2669158B2 (en) Data processing device
JPS6124729B2 (en)
JP3004108B2 (en) Information processing device
US4608633A (en) Method for decreasing execution time of numeric instructions
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
US4691282A (en) 16-bit microprocessor system
KR900010587A (en) High performance instruction execution method and device in production line
EP0140158B1 (en) Apparatus and method for converting a number in binary format to a decimal format
JPH0786875B2 (en) Vector processor
US4575795A (en) Apparatus for detecting a predetermined character of a data string
JPS5919379B2 (en) data generation device
US3735364A (en) Data handling system for handling data in compliance with normal and special descriptors
JP2668456B2 (en) Bit search circuit and data processing device having the same
JPH09152971A (en) Data processor
US5519881A (en) Priority encoder for accessing multiple registers simultaneously and a data processing system which uses it
JPH02278424A (en) Normalizer