JPS5835642A - Data processing device handling undefined length instruction - Google Patents
Data processing device handling undefined length instructionInfo
- Publication number
- JPS5835642A JPS5835642A JP13271681A JP13271681A JPS5835642A JP S5835642 A JPS5835642 A JP S5835642A JP 13271681 A JP13271681 A JP 13271681A JP 13271681 A JP13271681 A JP 13271681A JP S5835642 A JPS5835642 A JP S5835642A
- Authority
- JP
- Japan
- Prior art keywords
- operand
- instruction
- specifier
- address
- end information
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
【発明の詳細な説明】
本発明は、オペランドのアドレッシングモードを指定す
るオペランド指定子が処理の種類およびオペランド数を
指定するオペコード部分から独立している不定長命令を
扱うデータ処理装置に関するものである。DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a data processing device that handles undefined length instructions in which an operand specifier that specifies the addressing mode of an operand is independent of an opcode portion that specifies the type of processing and the number of operands. .
オペランド指定子の長さは、アドレッシングモードに対
応して任意に変り、命令の長さが可変であることからこ
のような命令を可変長命令と呼ぶこともある。The length of the operand specifier changes arbitrarily depending on the addressing mode, and since the length of the instruction is variable, such an instruction is sometimes called a variable length instruction.
「不定長命令」と「可変長命令」との間には特別の意味
上の差異はなく、「不定長命令」なる用語を「可変長命
令」なる用語に置き換えても同一の意味を持つ。しかし
、ここでは、便宜上、本願発明が扱う命令を不定長命令
、従来の命令を可変長命令と称している。There is no particular difference in meaning between "undefined length instructions" and "variable length instructions," and even if the term "undefined length instructions" is replaced with the term "variable length instructions," they have the same meaning. However, here, for convenience, the instructions handled by the present invention are referred to as indefinite length instructions, and the conventional instructions are referred to as variable length instructions.
可変長のオペランド指定子を持つ命令体系として、公知
の代表的な2つの例を次に示す。Two typical examples of well-known instruction systems having variable-length operand specifiers are shown below.
1つはバロース社(Burroughs Corpor
ationの計算機B1700をC0BOL / RP
G向きのアーキテクチャとした時の命令フォーマット
であり、これは、rB1700 C0BOL/RPG
−8−Language 、1058823−015.
Copyright1973、13urroughs
CorporationJに示されている。One is Burroughs Corporation.
ation calculator B1700 to C0BOL/RP
This is the instruction format for G-oriented architecture, and this is rB1700 C0BOL/RPG
-8-Language, 1058823-015.
Copyright1973, 13urroughs
CorporationJ.
今1つの例は、DEC社(1)igital Equi
pmentCorporation ) cr)計算
機VAXI l/ 780のアーキテクチャが有する可
変長となるオペランド指定子を持つ命令体系であり、こ
れは、「VAXIIArchitecture )(a
ndbook 、 (:opyright 1g7g
JおよびUSPA4236206に示されている。Another example is DEC (1) digital Equi.
pmentCorporation) CR) It is an instruction system with variable length operand specifiers that the computer VAXI l/780 architecture has.
ndbook, (:opyright 1g7g
J and USPA 4,236,206.
ここに示した従来の2つの命令体系では、オペランドの
形式、アドレッシングモードを指定する部分が、可変長
のオペランド指定子で規定され、オペコードから独立で
あるといった特徴がある。The two conventional instruction systems shown here are characterized in that the part that specifies the operand format and addressing mode is defined by a variable-length operand specifier and is independent of the opcode.
しかしながら、従来の可変長命令では、処理するオペラ
ンドの数と、処理するオペランドのアドレッシングモー
ドを指定するオペランド指定子が1対1に対応づけられ
ており、例えば、A十B→B
A十B→C
という2つの処理(オペレーション)ニ対シ、2つのオ
ペコードを割当てる必要があった。However, in conventional variable-length instructions, there is a one-to-one correspondence between the number of operands to be processed and the operand specifier that specifies the addressing mode of the operands to be processed. For example, A0B → B A0B → It was necessary to allocate two opcodes to two operations (C).
つまり、A十B→Bという処理では、2つのオペランド
を処理し、2つ目のオペランドに対しては、これを2度
使用するということを、オペコードで特別に規定する必
要があるからである。In other words, in the process A0B→B, it is necessary to specifically specify in the opcode that two operands are processed and the second operand is used twice. .
もし、A十B−)Bという処理で、オペランド数を3と
し、オペランド指定子を3つ用意すれば、A+B→Bと
、A十B−)Cの区別を意識する必要はないが、A−1
−B−+Bの処理では、全く同一のオペランド指定子を
2つ設ける必要があり、これは、オペランド指定子その
ものが、複数バイト(一般に長いものは7バイト)をと
る時、メモリの実装効率を著しく低下し、好ましくない
。If the number of operands is 3 and three operand specifiers are prepared in the process A0B-)B, there is no need to be aware of the distinction between A+B→B and A0B-)C, but A -1
-B-+B processing requires two identical operand specifiers, which reduces memory implementation efficiency when the operand specifier itself takes multiple bytes (generally long ones are 7 bytes). It is markedly lowered and is not desirable.
そもそも、A十B−)Bと、A+B−)Cの処理を区別
することはメモリの実装効率を高める為になされたもの
である。(A十B−+Bではオペランド指定子を2つで
済むようにした)
このように、従来の方式では、同一のオペランドを複数
回使用する処理に対しては、他の同機能の処理と区別す
る必要があり、オペコードで指定可能な処理数に制限が
あった。In the first place, the process of A+B-)B and A+B-)C was distinguished in order to improve memory implementation efficiency. (In A1B-+B, only two operand specifiers are required.) In this way, in the conventional method, processes that use the same operand multiple times are distinguished from other processes with the same function. There was a limit to the number of operations that could be specified using the opcode.
尚A+B→Bという例で説明したが、これはA−B−)
Bという処理も同様であり、AとBの演lをし、その結
果をBに格納するという例の全てにいえることである。I explained using the example of A+B→B, but this is A-B-)
The same goes for the process B, and applies to all examples in which operations are performed on A and B and the results are stored in B.
一般にこれをAOB→Bと表現してい、る。Generally, this is expressed as AOB→B.
本発明の目的は、複数個の処理するオペランド数に対し
、オペランド指定子を共用できる不定長命令を扱うデー
タ処理装置を提供するにある。SUMMARY OF THE INVENTION An object of the present invention is to provide a data processing device that handles undefined length instructions that can share operand specifiers for a plurality of operands to be processed.
つ壕り、上記の例では、2つの処理に対し、1つの命令
コードで、これを区別して処理することが可能な不定長
命令を扱うデータ処理装置を提供しようとするものであ
る。In other words, the above example is intended to provide a data processing device that handles an indefinite length instruction that can distinguish and process two processes using one instruction code.
本発明の特徴は、オペランドのアドレッシングモードを
指定する各オペランド指定子に対応してそれぞれオペラ
ンド指定子の終了情報(以下フラッグと称す)を付加し
、最終のオペランド指定子にめみ終了フラッグを“1”
にセットし、この終了フラッグが′1“にセットされて
いることを検出した場合、当該オペランド指定子までを
もって1つの命令が形成されていると判断し、処理を行
うようにしていることである。A feature of the present invention is that operand specifier end information (hereinafter referred to as a flag) is added to each operand specifier that specifies the addressing mode of the operand, and an end flag is added to the final operand specifier. 1”
, and if it is detected that this end flag is set to ``1'', it is determined that one instruction is formed including the operand specifier, and processing is performed. .
具体的には、後述するが、オペコードデコード手段がオ
ペランドの最終であることを示す信号を出力する前に、
終了フラッグのセットが検出された場付、(当該オペラ
ンド指定子が最後であることを示している場合)同一の
オペランドを再度使用するようにしていることであろう
この場合、オペコードで指定されたオペランドの数に達
するまで、最終のオペランドは何回も使用される。Specifically, as will be described later, before the operation code decoding means outputs a signal indicating that it is the last of the operands,
In this case, if the end flag is found set, the same operand specified in the opcode would be used again (if the operand specifier in question indicates that it is the last). The final operand is used many times until the number of operands is reached.
以下、本発明を図面を参照して詳細に説明する。Hereinafter, the present invention will be explained in detail with reference to the drawings.
第1図は本発明が適用されるデータ処理7ステムの基本
的な概念図である。FIG. 1 is a basic conceptual diagram of seven data processing systems to which the present invention is applied.
メモリ装置1と、複数の中央処理装置2が共通バス3で
接続されており、共通バス3を介して相互の間の情報交
換が可能となっている。A memory device 1 and a plurality of central processing units 2 are connected by a common bus 3, and information can be exchanged between them via the common bus 3.
メモリ装置1は、命令および命令が扱うオペランドを格
納するメモリ部11と、この命令およびオペランドの読
み出し、書き込みを制御するメモリ制御部12で構成さ
れ、メモリ部11とメモリ制御部12はメモリバス13
で接続されている。The memory device 1 includes a memory unit 11 that stores instructions and operands handled by the instructions, and a memory control unit 12 that controls reading and writing of the instructions and operands.
connected with.
メモリ装置1・の動作については、特願昭55−160
758号明細書に詳細に記載しているか、本発明の要部
とは直接関係ないので、この部分の詳細説明は省略する
。Regarding the operation of the memory device 1, please refer to Japanese Patent Application No. 55-160.
Since it is described in detail in the specification of No. 758, and is not directly related to the main part of the present invention, a detailed explanation of this part will be omitted.
中央処理装置2は世道バス3に複数台接続可能で、(図
示では2台)それぞれ、メモリ装置1より命令及びオペ
ランドをアクセスして11月次命令の処理をしていく。A plurality of central processing units 2 can be connected to the world bus 3, and each of them (two in the figure) accesses instructions and operands from the memory device 1 and processes the November instructions.
ここでは高速化のため、一度読み出された命令、オペラ
ンドをそれぞれコピーしている命令キャツ/ユ21(高
速バッファメモリ)およびオペランドキャッシュ22(
高速バッファメモリ)を有し、また命令のフェッチデコ
ード及びオペランドアドレス演算を行うIユニット23
と、オペランドの7エツチおよび命令の実行を行うEユ
ニットを有し、それぞれがパイプライン処理を行う例を
示しているう
このような、命令キャッシュ、オペランドキャッシュの
使い方、或いは、■ユニットとEユニットがパイプライ
ン処理すること自体は公知である。Here, in order to increase speed, the instruction cache 21 (high-speed buffer memory) and operand cache 22 (high-speed buffer memory) that copy the instructions and operands that have been read once are used.
an I unit 23 which has a high-speed buffer memory) and performs fetch decoding of instructions and operand address operations;
This example shows an example of how to use the instruction cache and operand cache, or how to use the instruction cache and operand cache, or ■ unit and E unit. It is well known that pipeline processing is performed.
さて、第2図囚は、中央処理装置2が扱う不定長命台の
フォーマットを示している。Now, FIG. 2 shows the format of the indefinite-length life table handled by the central processing unit 2.
1つの命令は、1ないし数バイトで構成されるオペレー
ションコート(コレハ通称、オペコードと呼ばれている
)OFと、終了フラッグSを伴った1ないしamバイト
のオペランド指定子O81゜082・・・・・・O20
から構成されている。One instruction consists of an operation code (commonly called an opcode) OF consisting of 1 to several bytes, and an operand specifier of 1 to am bytes with an end flag S O81゜082...・・O20
It consists of
オペコードOPでは、その命令の処理内容(処理の種類
)、処理に必要なオペランドの数およびオペランドの属
性(データ長、リード/ライトの区別、データタイプ:
固足小数点/浮動小数点・・・等)が示される。The operation code OP describes the processing content of the instruction (processing type), the number of operands required for processing, and the operand attributes (data length, read/write distinction, data type:
fixed-footed point/floating point, etc.) are shown.
オペコードOPO後には、当該オペコードOPで示され
るオペランドの数以下のオペランド指定子(081,0
82・・・・・・)が示されていて、1つの命令(正式
には甜令語:インストラクション・ワード)が構成され
る。After the opcode OPO, an operand specifier (081,0
82...) is shown, and constitutes one instruction (formally, an instruction word).
オペランド指定子は、該当命令で使用されるオペランド
のj一番に並んでいて、最後のオペランド指定子のみ、
終了フラッグSが「1」にセットされている。もし、オ
ペランド指定子の数が、オペコードOPで指定されるオ
ペランド数より少ない場合は、最後のオペランド指定子
に対応するオペランドが繰返し、使用される。The operand specifier is the first operand specifier used in the relevant instruction, and only the last operand specifier is
The end flag S is set to "1". If the number of operand specifiers is less than the number of operands specified by the opcode OP, the operand corresponding to the last operand specifier is used repeatedly.
同一のオペランドを繰返し使用するには、いろいろな実
現方法があるが、最も望ましい方法Vま、最後のオペラ
ンド指定子を繰返し使用することであろうっこの点につ
いては後で詳細に述べる。There are various ways to use the same operand repeatedly, but the most desirable method is to use the last operand specifier repeatedly, which will be discussed in detail later.
オペコードOPで指定するオペランド数と、オペランド
指定子の数が不一致の例を次に説明する。An example in which the number of operands specified by the operation code OP and the number of operand specifiers do not match will be described next.
例えば、オペコードOPが加算処理の場合、そのファン
クションは、
A+B−C
で、3つのオペランドを必要とするが、オペランド指定
子が1つの場合は、
A + A−)A
2つの場合は、
A十B−+B
という処理が、同一のオペコードで可能となる。For example, if the opcode OP is an addition operation, the function is A+B-C, which requires three operands, but if there is one operand specifier, A + A-)A, and if there are two, A Processing B-+B is possible with the same opcode.
オペランド指定子の具体的な例を第2図[F])に示し
ている。A specific example of the operand specifier is shown in FIG. 2 [F]).
ここでは、扁1〜A24の例を示し、そのフォーマット
と、これに対応するオペランドを1対l対応で示してい
る。Here, examples of flats 1 to A24 are shown, and their formats and corresponding operands are shown in a 1:1 correspondence.
第2図(E3)において、オペランドの()は、()内
の唾をアドレスとしたメモリの内容であることを示して
いる。In FIG. 2 (E3), the parentheses of the operand indicate the contents of the memory whose address is the address in the parentheses.
また、フォーマット中、DISPは、変位を、IMはイ
ミーディエット(データ直接)を示し、添字はその大き
さをピット数で示している。Further, during formatting, DISP indicates displacement, IM indicates immediate (data direct), and the subscript indicates the size in terms of the number of pits.
更に、Rxはインデックスレジスタ、Rアはジェネラル
レジスタを′示し、Lはオペランドの大きさをバイト単
位で示したものである。Furthermore, Rx represents an index register, Ra represents a general register, and L represents the size of the operand in bytes.
第2図面において、そのフォーマットとオペランドの関
係は、成程度理解できると思われるが、以下、簡単に説
明する。Although the relationship between the format and the operands in the second drawing can be understood to a certain degree, a brief explanation will be provided below.
A11d、lzレジスタ接のアドレス指定で、Rゎで示
されるジェネラルレジスタそのものが、直接オペランド
となるものである。In the addressing of A11d and lz registers, the general register itself indicated by R becomes a direct operand.
屋2以下は、全て、メモリをオペランドとするもので、
そのアドレス計算がオペランドの欄に示された形で行な
われる。2 and below all use memory as an operand,
The address calculation is performed in the form shown in the operand column.
A2は、間接アドレス指定で、Rfiで示されるジェネ
ラルレジスタの内容がオペランドのアドレスとなるもの
である。A2 is indirect addressing, in which the contents of the general register indicated by Rfi become the address of the operand.
A3,5.7では、allで示されるジェネラルレジス
タの内容に、DISPで示される値が加算されて、これ
がオペランドのアドレスになっている。In A3, 5.7, the value indicated by DISP is added to the contents of the general register indicated by all, and this becomes the address of the operand.
屋4,6.8では、屋3,5.7で求められたアドレス
のメモリの内容が、オペランドのアドレスとなるもので
ある。In case 4, 6.8, the contents of the memory at the address determined in case 3, 5.7 become the address of the operand.
A9〜llI′i、イは−デイエットデータで、I I
’vi++ 、 I M+a、I Ms□の値そのもの
がオペランドとなっている。A9~llI'i, A is -diet data, I I
The values of 'vi++, I M+a, and I Ms□ are themselves operands.
A12〜17は、ジェネラルレジスタR4の代りにプロ
グラムカウンタPCが1史用されることが、A3〜8と
は異なるだけである。PCは、デコードするオペランド
指定子の次にアドレスを保持している。A12-17 differ from A3-8 only in that the program counter PC is used for one cycle instead of the general register R4. The PC holds the address next to the operand specifier to decode.
7;18〜24は、届3〜8にさらにインデックレジス
タR8の値が加算されることが異なり、またインテック
スレジスタ比工の値は、オペランドのデータ長り分乗算
された値が加算される。7; 18 to 24 are different in that the value of index register R8 is further added to notifications 3 to 8, and the value of index register Riko is added by a value multiplied by the data length of the operand.
これは、データ長にかかわらず、インデックスレジスタ
R0の値を、先頭からの変位としてセットできるように
するため必要となる処理である。This is necessary processing in order to be able to set the value of index register R0 as a displacement from the beginning, regardless of the data length.
つまり、L(データ長を示す)を乗算すること−により
、インデックスレジスタ比工は、データ長にかかわらず
、先頭から何番目のデータであるかを示す値を入れてお
けばよいことになる。In other words, by multiplying by L (indicating the data length), the index register ratio may contain a value indicating the number of data from the beginning, regardless of the data length.
例えば、インデックスレジスタ比工に「lO」が入って
いると、これは先頭から10番目のデータで、そのアド
レスは、バイトの場合は10を加算(L=1)、ワード
の場合は20を加算(L=2)、ロングワード責LOr
1g Word)では40を自動的に加算しくL=4
)、ユーザはデータ長にかかわらず、インデックスレジ
スタ比工の値をセットできる。For example, if the index register Hiko contains "lO", this is the 10th data from the beginning, and its address is 10 if it is a byte (L=1), and 20 if it is a word. (L=2), long word responsibility LOr
1g Word), 40 is automatically added to L = 4.
), the user can set the value of the index register ratio regardless of the data length.
第3図は、第1図の中央処理装置2のより具体的なブロ
ック構成図である。FIG. 3 is a more specific block diagram of the central processing unit 2 shown in FIG. 1.
第1図における■ユニット23は、第3図において、命
令フェッチユニット(■FU)25、アライナ(ALI
G)26、デコードユニット(DU)27およびアドレ
ス計算ユニツ)(AU)28部分がこれに対応し、Eユ
ニット24にはオペランドフェッチユニット(OFU)
29、実行ユニット(EtJ)30が対応している。The unit 23 in FIG. 1 is the instruction fetch unit (FU) 25 and the aligner (ALI) in FIG.
G) 26, decode unit (DU) 27 and address calculation unit (AU) 28 correspond to this, and E unit 24 has an operand fetch unit (OFU).
29, and the execution unit (EtJ) 30 corresponds.
第1図では、■ユニット23とEユニット24がパイプ
ライン処理を行う旨述べたが、それぞれのユニットは第
3図に示すように更に命令フェッチユニットIFtJ2
5、デコードユニットDU27、アドレス計算ユニット
AU28、オペランドフェッチユニット0FU29、実
行ユニツ)30に分割され、それぞれがパイプライン処
理をする例を示している。In FIG. 1, it was mentioned that the unit 23 and the E unit 24 perform pipeline processing, but each unit further includes an instruction fetch unit IFtJ2 as shown in FIG.
5, a decode unit DU27, an address calculation unit AU28, an operand fetch unit 0FU29, and an execution unit) 30, each of which performs pipeline processing.
しかしながら、本願発明の要旨は、このようなパイプラ
イン処理そのものとは直接関係ないので、パイプライン
処理については詳細な説明は省略している。尚、パイプ
ライン処理そのものは周知であるが、U S P 4.
025.771 号には、パイプライン高速信号プロセ
ッサが示されている。However, since the gist of the present invention is not directly related to such pipeline processing itself, a detailed explanation of pipeline processing is omitted. Incidentally, the pipeline processing itself is well known, but it is described in USP 4.
No. 025.771 shows a pipelined high speed signal processor.
ところで、第3図において、命令フェッチユニット25
は、命令を先行してフェッチするためのプログラムカウ
ンタ50を有し、命令キャッシュ21より次に実行され
るであろう命令を先行して読み出す処理を行なっている
。By the way, in FIG. 3, the instruction fetch unit 25
The program counter 50 has a program counter 50 for fetching instructions in advance, and performs a process of reading an instruction that will be executed next from the instruction cache 21 in advance.
アドレスライン100により、読み出したいアドレスが
命令キャッシュ21に送られ対応する命令4バイト分が
データライン101により命令フエツチュニツ)IFU
25に送出される。The address to be read is sent to the instruction cache 21 via the address line 100, and the corresponding 4 bytes of the instruction are sent to the instruction cache 21 via the data line 101.
Sent on 25th.
命令キャッシュ21に、対応する命令がなかった場合は
、共通パス3を介して、メモリ1から該当の命令を読み
出し、この命令は命令キャッシュ21にストアされる。If there is no corresponding instruction in the instruction cache 21, the corresponding instruction is read from the memory 1 via the common path 3, and this instruction is stored in the instruction cache 21.
キャッシュの・、ツカ1には周知であり、例えば、l’
A GUIde to Tne IB&fSyst
em /37Q Model 168jに示されている
。of the cache, is well known to the head 1, for example, l'
A GUIde to Tne IB&fSyst
em/37Q Model 168j.
命令4バイト分が命令フェッチユニット25に送出され
ると、プログラムカウンタ50はプラス4(+4)され
、次の命令の送出要求を命令キャッシュ21に出力する
。When four bytes of instructions are sent to the instruction fetch unit 25, the program counter 50 is incremented by four (+4), and a request for sending the next instruction is output to the instruction cache 21.
この動作は、命令フェッチユニットIFU25内にある
バッファ(図示せずンが満杯になるまで続けられる。This operation continues until a buffer (not shown) in the instruction fetch unit IFU 25 becomes full.
命令フェッチユニットIPU25からは、)(ス103
を介して、あらかじめ読み出しておいた命令がアライナ
(ALIG)26に送出される。From the instruction fetch unit IPU25, )(S103
The command read out in advance is sent to the aligner (ALIG) 26 via the aligner (ALIG) 26.
アライナ26は、デコードユニットDU27からの信号
[102に指示されたバイト数だけンフト処理を行い、
バス104に該当命令を送出する。The aligner 26 performs the shift processing by the number of bytes specified by the signal [102] from the decoding unit DU27,
The corresponding command is sent to the bus 104.
信号線102の値を適当に操作することで、バス104
には第5図に示すように命令の第1オペランド指定子処
理時には、左端にオペコードOPが、続いて第1番目の
オペランド指定子が並ぶように、2番目以降のオペラン
ド指定子処理時には、1バイトのダミーをおいてオペラ
ンド指定子が配置して出力される。By appropriately manipulating the value of the signal line 102, the bus 104
As shown in Figure 5, when processing the first operand specifier of an instruction, the operation code OP is placed at the left end, followed by the first operand specifier, and when processing the second and subsequent operand specifiers, the operation code OP is placed at the left end. Operand specifiers are placed and output with dummy bytes.
上記旬書は、後で詳しく説明する。The above books will be explained in detail later.
デコードユニット(DU)27a、アライナ26 (A
LIG)より送出されたオペコード及びオペランド指定
子をデコードして、アドレス計算ユニノ)AU28へ下
記の情報を送る。Decode unit (DU) 27a, aligner 26 (A
It decodes the opcode and operand specifier sent from LIG) and sends the following information to address calculation unit AU28.
(1) ハス105を介してアドレッシングモードを
送る。(1) Send the addressing mode via the lotus 105.
アドレッシングモードには、先に説明の如く、次の(a
)〜(h)があり、このうちの1つが指定される。The addressing mode includes the following (a) as explained above.
) to (h), one of which is specified.
(a) レジスタ直接・・・・・・A1(b) R
,・・・・・・A2
(C) a、+DIsPタイプ・・・・・・A3,5
.7(d) l’t、+DIsPインダイレクトタイ
プ・・・・・・・・・扁4,6.8
(e) イミーデイエット・・・・・・A9. I
O,l 1(f) PC+DISPタイプ・・・・
・・扁12,14.16(g) PC+DISPイン
ダイレクトタイプ・・・・・・・・・A13,15.1
7
(h) (b)−w(d)でインテックス付タイプ・
・・A18〜24伺扁1〜屋24は第2図ら)に示すオ
ペランド指定子フォーマットの扁1〜24に対応してい
る。(a) Direct register...A1(b) R
,...A2 (C) a, +DIsP type...A3,5
.. 7(d) l't, +DIsP indirect type...Ban 4,6.8 (e) Immediate...A9. I
O, l 1(f) PC+DISP type...
・・Flat size 12, 14.16 (g) PC+DISP indirect type・・・・・・・・・A13, 15.1
7 (h) (b) - w (d) with Intex type.
...A18-24 The numbers 1-24 correspond to the numbers 1-24 of the operand specifier format shown in Fig. 2, et al.
(2)バス106を介して、DISPまたはイi−ティ
エツトデータを32ビツトで送る。。(2) Send DISP or IoT data in 32 bits via bus 106; .
(3)バス107を介してジェネラルレジスタR4のア
ドレスを送る。(3) Send the address of general register R4 via bus 107.
(4)バス108を介してインデックスレジスタRヨの
アドレス、
および
(5)バス116を介してアドレス演算に使用するプロ
グラムカウンタの値を送る。(4) The address of the index register R is sent via the bus 108, and (5) the value of the program counter used for address calculation is sent via the bus 116.
アドレス計算ユニットAU28H、バス105によって
示されたアドレッシングモードに従い、上記(a)、
(e)以外の時は、オペランドのアドレス計算を行い、
バス309に計算後のアドレスを送出する。Address calculation unit AU28H, according to the addressing mode indicated by bus 105, the above (a),
In cases other than (e), calculate the address of the operand,
The calculated address is sent to the bus 309.
一方、(a)の場合は、バス107の内容を、その1ま
バス113に送出し、(e)の場合はバス106をバス
109に送出する。On the other hand, in the case of (a), the contents of the bus 107 are sent to the bus 113, and in the case of (e), the contents of the bus 106 are sent to the bus 109.
オペランドフェッチユニット0FU29ij、上記(a
)、(e)以外の時は、送られたアドレスが示されてい
るバス109の内容を、バス110に送出し、オペラン
ドがリード時には、オペランドキャッシュ22にリード
処理を要求する。Operand fetch unit 0FU29ij, above (a
), (e), the contents of the bus 109 indicating the sent address are sent to the bus 110, and when the operand is read, a read process is requested to the operand cache 22.
リードオペランドが、オペランドキャッシュ22からバ
ス111に送出されると、オペランドフェッチユニット
0FU29は、バス112を介して実行ユニツ)Eu2
Oに、読み出されたオペランドを送出し、またオペラン
ドがそろった旨を連絡する。When the read operand is sent from the operand cache 22 to the bus 111, the operand fetch unit 0FU29 sends the read operand to the execution unit Eu2 via the bus 112.
Sends the read operands to O, and notifies O that the operands are complete.
オペランドがライト時は、実行ユニットEU30からの
書き込みデータが、バス111に出力されるまで、オペ
ランドフェッチユニット0FLI29は、アドレスをバ
ス110に送出し続ける。When the operand is written, the operand fetch unit 0FLI29 continues to send the address to the bus 110 until the write data from the execution unit EU30 is output to the bus 111.
一方、上記(a)に対しては、オペランドフェッチユニ
ット0FU29は、アドレス計算ユニットAU28より
送出されたレジスタアドレス113により、自身が有す
るジェネラルレジスタ(図示せず)のアクセスを行う。On the other hand, for (a) above, the operand fetch unit 0FU29 accesses its own general register (not shown) using the register address 113 sent from the address calculation unit AU28.
(a)以外と異なるのは、メモリをアクセスするか、レ
ジスタをアクセスするかの差異のみである。The only difference from (a) is whether memory is accessed or registers are accessed.
(e)に対しては、バス109の内容をそのまま、バス
111に送出し、実行ユニッ)Eu2Oにオペランドが
そろった旨を連絡する。また、実行ユニットEU30は
、デコードユニットDU27からオペコードバス114
を介して送出されたマイクロプログラムの先頭アドレス
を受信し、リード時は、バス112のオペランドを用い
て、ライト時は、オペランド(データ)をバス111に
出力して順次、命令の処理を行う。For (e), the contents of the bus 109 are sent as they are to the bus 111, and the execution unit () Eu2O is notified that the operands are complete. In addition, the execution unit EU30 is connected to the operation code bus 114 from the decode unit DU27.
It receives the start address of the microprogram sent via the microprogram, uses the operands on the bus 112 when reading, and outputs the operands (data) to the bus 111 when writing, and sequentially processes instructions.
また、命令が分岐命令の場合は、バス115を用いて、
新たなプログラムカウンタ値を命令フェッチユニットI
FU25のプログラムカウンタ50や、後述するデコー
ドユニツ)DU27内のDPレジスタ69にセットする
と同時に、ノくイブライン処理で先行的に処理されてい
たオペランドの各ユニットにおける処理結果をキャンセ
ルさせる。Furthermore, if the instruction is a branch instruction, the bus 115 is used to
The new program counter value is sent to the instruction fetch unit I.
At the same time, it is set in the program counter 50 of the FU 25 and the DP register 69 in the DU 27 (decode unit (to be described later)), and at the same time, the processing results in each unit of the operands that were previously processed in the nocturnal line processing are canceled.
以上が、1つのオペランド指定子に対する処理の概略で
、各ユニット(25〜30)は1パイプライン処理で、
順次オペランド指定子の処理を並列に処理していく。The above is an outline of the processing for one operand specifier, and each unit (25 to 30) is processed by one pipeline,
Processing of sequential operand specifiers is performed in parallel.
次に、本発明の要旨に関係するデコードユニット27に
ついて、具体例を示し詳細に説明する。Next, the decoding unit 27 related to the gist of the present invention will be described in detail with reference to a specific example.
第4図は、第3図に示すデコードユニツ)DU27の具
体的な実施例を示すブロック図である。FIG. 4 is a block diagram showing a specific embodiment of the decoding unit DU 27 shown in FIG. 3.
DPレジスタ69は、デコードユニットDU27がデコ
ードする命令の先頭を示しており、第1番目のオペラン
ド指定子デコード時は、オペコードのアドレスを、第2
番目以下のデコード時は、該当オペランド指定子の先頭
−1のアドレスを示している。The DP register 69 indicates the beginning of the instruction to be decoded by the decode unit DU27, and when decoding the first operand specifier, the address of the opcode is
When decoding the th and below, it indicates the first address of the corresponding operand specifier.
上記アドレスは、バス102を介して第3図に示すアラ
イナALIG26、命令フェッチユニットIFU25に
送出されているため、バス104には、第5図に示すよ
うに、1バイト目には、第1オペランド指定子の読み出
しの場合は、囚に示すよウニ、オペコードOP1第2オ
ペランド指定子以下の読み出しの場合は、(B)に示す
ように、ダミーのデータ、第2バイト目には、終了フラ
ッグSを含んだオペランド指定子の先頭バイトが、第3
バイト目から第7バイト目には、オペランド指定子のそ
の他の情報が出力される。Since the above address is sent to the aligner ALIG 26 and instruction fetch unit IFU 25 shown in FIG. 3 via the bus 102, the first byte contains the first operand as shown in FIG. In the case of reading the specifier, as shown in the figure below, in the case of reading the operation code OP1 and below the second operand specifier, as shown in (B), dummy data, and the end flag S is stored in the second byte. The first byte of the operand specifier containing
Other information of the operand specifier is output from the 7th byte to the 7th byte.
バス204は、第何番目のオペランドの処理をしている
かを示す情報で、本情報が全オペランド処理終了を示し
ている時、バス104の第1バイトはオペコードレジス
タ64にセットされる。The bus 204 is information indicating which operand is being processed, and when this information indicates that all operands have been processed, the first byte of the bus 104 is set in the operation code register 64.
オペコードレジスタ64の出力は、該当命名・の実行ユ
ニットEU30のマイクロプログラムの先頭アドレスを
求めるオペコードデコードユニット61と、該当命令の
オペランドに対する情報を有するオペランド情報R,0
M63に送られる。The output of the operation code register 64 is sent to the operation code decoding unit 61 which obtains the start address of the microprogram of the execution unit EU30 of the corresponding naming, and the operand information R,0 having information about the operand of the corresponding instruction.
Sent to M63.
ROM61の出力結果201は先頭アドレスレジスタ6
2にセットされ、オペコードパス114を介して、第1
オペランドがオペランドフエツチュニツ)OFU29か
ら実行二二ツ)Eu2Oに渡されるのに同期して、Eu
2Oに送出される。The output result 201 of the ROM 61 is the start address register 6
2 and, via opcode path 114, the first
At the same time that the operand is passed from OFU29 to Eu2O,
Sent to 2O.
ROM63は、鉤えば第6図に示す構成で、その中には
、第6図に示すよう°な情報があらかじめ入力されてお
り、オペコードと第何番目のオペランドの処理であるか
の情報をアドレスとして読み出される。The ROM 63 has the configuration shown in Fig. 6, in which information as shown in Fig. 6 is input in advance, and the information on the operation code and the number of the operand to be processed is stored in the address. It is read as .
すなワチ、オペコードレジスタ64に、第1ノ(イト目
がセットされた時には、セレクタ5EL81でバス20
0側が這ばれるため、オペコードをアドレスとして、そ
の第1オペランドに関する情報が読み出される。In other words, when the first value is set in the operation code register 64, the selector 5EL81 selects the bus 20.
Since the 0 side is crawled, information regarding the first operand is read using the opcode as an address.
読み出された情報としては、
(1)オペランドの属性、すなわち、リードオペランド
であるか、ライトオペランドであるかの情報R/Wや、
オペランドのデータ長L(バイト、ワード、°ロングワ
ード)を示す情報、(2)オペランドの最終であること
を示すフラッグ、および
(3)同一命令の次オペランドの情報が入っているアド
レス、
がある。The information read out includes: (1) Attributes of the operand, that is, information R/W on whether it is a read operand or a write operand;
There is information indicating the data length L (byte, word, longword) of the operand, (2) a flag indicating the end of the operand, and (3) an address containing information about the next operand of the same instruction. .
(1)はパス105−1に出力され、アドレス計算ユニ
ツ)AU28に出力され、また(2)は、パス203に
出力され、デコード処理終了バイト数検出器65に送出
される。(1) is output to the path 105-1 and is output to the address calculation unit (AU) 28, and (2) is output to the path 203 and sent to the decoding completed byte number detector 65.
また、(2)、 (3)の情報は、レジスタ83にラッ
チされた後、パス204に出力され、次のオペランドを
読み出すアドレスとして使用される。Furthermore, the information in (2) and (3) is latched in the register 83, then output to the path 204, and used as an address for reading the next operand.
(4各の情報のラッチ情報が、セレクタ81の選択端子
Sに入力されるため、(2)の情報が“l”の場合は、
オペコードレジスタ64の内容(200)が使用され、
“0”の場合は(3)の情報が使用される。(Since the latch information of each of the four pieces of information is input to the selection terminal S of the selector 81, if the information of (2) is “l”,
The contents of the opcode register 64 (200) are used,
If it is "0", the information in (3) is used.
一方、バスト04の中で、終了フラッグSを示出器65
に送出される。Meanwhile, in the bust 04, the end flag S is displayed on the indicator 65.
will be sent to.
また、オペランド指定子の先頭7ビツトは、パス206
により、オペランド指定子デコーダ66に送られる。Also, the first 7 bits of the operand specifier are the path 206
is sent to the operand specifier decoder 66.
7ビツトの情報によりオペランド指定子のデコードを行
うが、その例を第7図により説明する。The operand specifier is decoded using 7-bit information, and an example thereof will be explained with reference to FIG.
たとえば、第2図口のA3に示す(R,+D I S
P8)のオペランド指定子が送られると第7図囚のよう
に上位7ビツトの中の東に3ビツトが010であること
を検出して、下記情報が出力できる。For example, (R, +D I S
When the operand specifier P8) is sent, it is detected that the eastern 3 bits of the upper 7 bits are 010, as shown in Figure 7, and the following information can be output.
(1)2バイト長のオペランド指定子であること。(1) Must be an operand specifier with a length of 2 bytes.
(2)パス208の内容をパス106へ出力する場合、
DISPの桁合せを行うため3バイトの右シフトが必要
であること。(2) When outputting the contents of path 208 to path 106,
A 3-byte right shift is required to align the DISP digits.
(3) D I S P値として4バイト化を図るた
め、上位3バイトについては、DISP、lの最上位ピ
ットを符号拡張して出力すること。(3) In order to convert the DISP value into 4 bytes, the most significant pit of DISP,l should be sign-extended and output for the upper 3 bytes.
(4) R,+DISPでもってオペランドのアドレ
スが計算できること。(4) The address of the operand can be calculated using R, +DISP.
(5) R,の情報は1バイト目の下位4ピツトに存
在すること。(5) The information for R must exist in the lower four pits of the first byte.
の5つである。同様に、第2図(B)のA7の(R。There are five. Similarly, (R) of A7 in FIG. 2(B).
+DI8P32)が送られてくると、第7図口に示すよ
うに上位7ビツトが110110 であることを検出し
て、下記情報が出力できる。+DI8P32) is sent, it detects that the upper 7 bits are 110110 as shown at the beginning of Figure 7, and the following information can be output.
(1)6バイト長のオペランド指定子であること、(2
〕 パス208の内容をパス106へ出力する場合、
DISPの桁合せを行うため1バイト左シフトが必要で
あること、
(3) DISPは32ビツト全てが指定されている
ためそのまま出力しなければならないこと、(4)
R,、+DISPでもってオペランドのアドレスが計算
できること、
(5)Raの情報は、オペランド指定子の2バイト目の
下位4ピツトに存在すること、
の5つである。(1) It is a 6-byte operand specifier, (2
] When outputting the contents of path 208 to path 106,
(3) All 32 bits of DISP are specified, so it must be output as is.(4)
The address of the operand can be calculated using R, , +DISP, and (5) the information on Ra is present in the lower four pits of the second byte of the operand specifier.
以上2つの例につき示したがこれらをまとめてみると次
のようになる。The two examples above have been shown, but if we summarize them, we get the following.
オペランド指定子デコーダ66は、送られてきたオペラ
ンド指定子をデコードし、次にあげる情報をそれぞれ出
力する。The operand specifier decoder 66 decodes the received operand specifier and outputs the following information.
(1)パス215へは、オペランド指定子の長さをバイ
ト単位で出力する。例えば、第2図(至)の扁3のオペ
ランド指定子で、(FL 、+ DISP、 )のオペ
ランド指定子が送られてきた時は、′″2′″を出力す
る。(1) The length of the operand specifier is output in bytes to the path 215. For example, when an operand specifier of (FL, + DISP, ) is sent in the operand specifier of level 3 in FIG. 2 (to), ``2'' is output.
(2)ハス211へハ、ティスプレースメント(D’l
5P)/イミーデイエット(IM)データ用アライナ6
7に対するシフトバイト数を出力する。(2) To Lotus 211, Tis Placement (D'l
5P)/IM data aligner 6
Outputs the number of shift bytes for 7.
例えば、(FL、+DISPa )のオペランド指定子
の場合は、第7図囚に示した如く3バイト右/フトを、
(R1+n工5psz)の場合は、第7図0に示した如
く1バイト左シフトを指示する。For example, in the case of the operand specifier (FL, +DISPa), as shown in Figure 7, 3 bytes right/left,
In the case of (R1+n 5 psz), a 1-byte left shift is instructed as shown in FIG. 70.
(3)パス212へは、アライナ67に対するマスクバ
イトの指示データを出力する。(3) Mask byte instruction data for the aligner 67 is output to the path 212 .
これは、アライナ67に対し、パス106に出力する4
バイトのデータ中、上位2バイト、又は3バイトのマス
クを指示することで、1バイトや2バイトのDISP、
IM情報の符号拡張による4バイト化を図るためのもの
である。This corresponds to the 4 outputs to the path 106 for the aligner 67.
By instructing the mask of the upper 2 or 3 bytes of byte data, 1 or 2 bytes of DISP,
This is to convert the IM information into 4 bytes by sign extension.
例えば、DISP8の時には、第7図囚に示す如く3バ
イトシフト、DISP3□の時は第7図の)の如く前に
「−R5」という余分な1バイトがあるため、1バイト
左7フトする。For example, for DISP8, there is a 3-byte shift as shown in Figure 7, and for DISP3□, there is an extra byte called "-R5" in front of () in Figure 7, so one byte is shifted 7 feet to the left. .
これは、DISP、の時、上3バイトにはDISPaの
符号ビットを拡張して入れておかないと、32ピツトの
正常なアドレス計算ができないからである。(バス21
2はその指疋のためのもの)
(4) バス105−2へはアドレッシングモートラ
出力し、これによってアドレス計算ユニットAU28の
動作モードを指示する。This is because in the case of DISP, unless the sign bit of DISPa is expanded and inserted into the upper 3 bytes, normal address calculation of 32 pits cannot be performed. (Bus 21
2 is for that instruction) (4) An addressing controller is output to the bus 105-2, thereby instructing the operating mode of the address calculation unit AU28.
アドレッシングモードについてU、第3図のアドレス計
算ユニッ)AU28の説明に関連して、(a)〜(h)
の8つのモードがあることを既に説明した。(a) to (h) regarding the addressing mode (U, address calculation unit (address calculation unit) AU28 in FIG. 3).
It has already been explained that there are eight modes.
(5)バス216へはジェネラルレジスタR4の存在す
る位置が、1バイト目か2バイト目かを示す情報を出力
する。(5) Information indicating whether the general register R4 is located in the first byte or the second byte is output to the bus 216.
(R,+DjSP&)時は1バイト目、(R−+DI
5P32 )の時は2バイト目が指示される。(R, +DjSP&), the 1st byte, (R-+DI
5P32), the second byte is specified.
一方、バス108へは、オペランド指定子の中のインデ
ックスレジスタR,の部分を出力する。On the other hand, the index register R in the operand specifier is output to the bus 108.
また、セレクタ68は、信号216で指定されたジェネ
ラルレジスタR1の存在する位置(1)くイト目か2バ
イト目かの信号)によって、R−に対応する部分(バス
207の内容或いは)(ス210の内容)をバス107
へ出力する。Also, the selector 68 selects the portion corresponding to R- (the contents of the bus 207 or 210 contents) to bus 107
Output to.
アライナ67は、前述したように、オペランド指定子の
2バイト目から7バイト目までがノくス208によって
与えられるため、信号線211で与えられたシフト数だ
けシフト処理を行い、且つ信号線212で与えられたマ
スク部に対しては、符号の拡張を行い、バス106に4
ノくイトのデータとして出力する。As described above, the aligner 67 receives the second byte to the seventh byte of the operand specifier by the node 208, so it performs shift processing by the number of shifts given by the signal line 211, and also by the number of shifts given by the signal line 211. For the mask part given by , sign extension is performed and 4
Output as Nokuito data.
これらは、第7図囚′、■に示した通りである。These are as shown in Figure 7, Figure 7.
次に、デコード処理終了バイト数検出器65について説
明する。Next, the decoding completed byte number detector 65 will be explained.
この部分は、本発明になる不定長命令(Sビット付加し
たもの)を扱う場合の要部でもある。This part is also the main part when handling an undefined length instruction (one with S bit added) according to the present invention.
デコード処理終了バイト数検出器65には、前述した如
く、オペランド終了フラッフEを示す信号線203、オ
ペランド指定子のストップヒ゛ットSを示す信号l!i
ji!205及びオペランド指定子の・くイト数(08
B )を示す信号線215の3つの信号線が入力されて
おり、信号腓214へは、次のオペランド指定子のアド
レスを示すため、DP69の加算値DPINCBをバイ
ト単位で出力する。As described above, the decoding end byte number detector 65 includes the signal line 203 indicating the operand end fluff E, and the signal l! indicating the stop hit S of the operand specifier. i
ji! 205 and the number of operand specifiers (08
The three signal lines 215 representing DP69 are input to the signal line 215, and the added value DPINCB of DP69 is output in byte units to the signal line 214 to indicate the address of the next operand specifier.
この場合のアルゴニズムは次の通りである。The algorithm in this case is as follows.
E=1であれば、
D′pINCm =08B
これ以外で、S−0であれば、
DPINC11=O8B 1
また、S−1であれば、
DP I NCB = 0
すなわち、
(1)オペランドの終了フラッグEが1°′の場合は、
該当命令の処理は終了したため、次の命令の先頭をさす
ように、DPレジスタ69がオペランド指定子のバイト
数分(08B )加算されるよう信号線214に出力さ
れる。If E=1, D'pINCm =08B Otherwise, if S-0, DPINC11=O8B 1 Also, if S-1, DPINCB = 0 That is, (1) Operand end flag If E is 1°', then
Since the processing of the relevant instruction has been completed, the signal is output to the signal line 214 so that the DP register 69 is incremented by the number of bytes of the operand specifier (08B) so as to point to the beginning of the next instruction.
(2) (1)でなく、また終了フラッグSがセット
されていない場合は、次のオペランド指定子が1バイト
タミーを先頭バイトにおいて、バス104に出力させる
ため、(オペランド指定子のバイト数:08m)−1の
値が加算されるよう信号線214に出力される。(2) If (1) is not met and the end flag S is not set, the next operand specifier outputs the 1-byte tummy to the bus 104 as the first byte, so (number of bytes of operand specifier: 08m)-1 is output to the signal line 214 so as to be added.
(3) (1)でなく、また終了フラッグSがセット
されている場合は、DPレジスタ69が、そのままのイ
直をとるよう、”0”が出力される。これによって、同
一のオペランド指定子を、次のオペランドに対する処理
にも使用することになり、同一のオペランドが繰返し使
用されることになる。(3) If (1) is not satisfied and the end flag S is set, "0" is outputted so that the DP register 69 takes the same action. As a result, the same operand specifier is used to process the next operand, and the same operand is used repeatedly.
第8図は、デコード処理終了バイト数検出器65におけ
る上記アルゴニズムを実現するノ1−ドウエア構成を示
している。FIG. 8 shows a hardware configuration for realizing the above algorithm in the decoding completed byte number detector 65.
つまり、E−1の場合は、出力ゲート301が開き、バ
ス214にはバス215の内容O8Bが出力され、E=
oの時は、s=oのとき出力ゲート303が開き、08
BIを出力し、またS二1のとき出力ゲー)302が開
き、“0”が出力されるようになっている。In other words, in the case of E-1, the output gate 301 is opened, the content O8B of the bus 215 is output to the bus 214, and E=
o, the output gate 303 opens when s=o, and 08
When BI is output and S21, the output gate 302 is opened and "0" is output.
また、Eが1の時、Sビットが1でなければ、オペラン
ド数より多いオペランド指定子が有ることが検出される
ことを意味し、第8図ではアンドゲート304がオンと
なり信号105−3を出力し、アドレス計算ユニッ)A
U28に対し、該当エラー発生を連絡するようになって
いる。Also, when E is 1, if the S bit is not 1, it means that it is detected that there are more operand specifiers than the number of operands, and in FIG. 8, AND gate 304 is turned on and signal 105-3 is detected. Output and address calculation unit)A
U28 is notified of the occurrence of the corresponding error.
アドレス計算ユニットAU28では、符 105−3を
以下のユニット(オペランドフェッチュニツ)OFU2
9)に連絡し、最終的に実行ユニッ)Eu2Oにエラー
発生が連絡されるようになっている。In the address calculation unit AU28, the code 105-3 is assigned to the following unit (operand fetch unit) OFU2.
9), and finally the execution unit () Eu2O is notified of the error occurrence.
尚第8図において、304,305はインバータ、30
6,307はアンドゲート、308は減算器である。In FIG. 8, 304 and 305 are inverters, and 30
6, 307 is an AND gate, and 308 is a subtracter.
加算器71は、現在のDPレジスタ69の値と、信号線
214の値を加算し、セレクタ70を介して、DPレジ
スタ69にセットすることで次のオペランド指定子のア
ドレスをバス102に出力することが可能となる。これ
により、アライトAL I G26は・、次のオペラン
ド指定子を第5図囚。The adder 71 adds the current value of the DP register 69 and the value of the signal line 214, and outputs the address of the next operand specifier to the bus 102 by setting it in the DP register 69 via the selector 70. becomes possible. As a result, AL I G26 sets the next operand specifier as shown in Figure 5.
(B)に示すフォーマットでバス104に出力できる。It can be output to the bus 104 in the format shown in (B).
一方、セレクタ70によって、バス115の内容を選択
してDPレジスタ69にセットすることで前述した分岐
命令におけるDPレジスタ69の変更も可能となる。On the other hand, by selecting the contents of the bus 115 and setting them in the DP register 69 using the selector 70, it is also possible to change the DP register 69 in the aforementioned branch instruction.
尚、加算器72は、DPレジスタ69の値に、該当オペ
ランド指定子の長さを示す信号線215の値(08m
)を加え、さらにキャリー人力″′1”を加えることで
、デコードしているオペランド指定子の次のアドレスを
バス116に出力する。Note that the adder 72 adds the value of the signal line 215 (08m) indicating the length of the corresponding operand specifier to the value of the DP register 69.
) and the carry input ``'1'' outputs the next address of the operand specifier being decoded to the bus 116.
アドレス計算ユニツ)AU28U、バス116の内容を
アドレス計算に使用するプログラムカウンタPCの値と
して利用する。Address calculation unit) AU 28U uses the contents of the bus 116 as the value of the program counter PC used for address calculation.
このように、本発明によれば、オペコードとオペランド
指定子が独立で、オペランド指定子の長さを任意に設定
できる特徴を有しながら、且つ1つのオペコードにより
、A○B−+Cタイプの命令もA■B’ −+ Bタイ
プの命令をも、それぞれの命令の情報量を最適にして表
わすことができ、同一長さのオペコードで指定可能な命
令数が増〃lする。As described above, according to the present invention, the operation code and the operand specifier are independent, and the length of the operand specifier can be set arbitrarily, and one operation code can be used to write an A○B-+C type instruction. Both types of instructions, such as A, B' - + B, can be expressed by optimizing the amount of information for each instruction, increasing the number of instructions that can be specified with an opcode of the same length.
つまり、オペコード長が同一の場合は、本発明によれば
、より多くの高域能命会を付加できることになる。In other words, when the opcode lengths are the same, according to the present invention, more high frequency functions can be added.
また、オペランド数とオペランド指定子の個数の合理性
チェックを行うことにより、エラー検出率を向上させる
ことができる。Furthermore, by checking the rationality of the number of operands and the number of operand specifiers, the error detection rate can be improved.
同上記実施例においては、終了フラッグSはオペランド
指定子の最上位ビットに付加されているが、必ずしもこ
の部分に限定する必要はなく、オペランド指定子のどこ
かに終了フラッグを設ければよい。In the above embodiment, the end flag S is added to the most significant bit of the operand specifier, but it is not necessarily limited to this part, and the end flag may be provided somewhere in the operand specifier.
また、同一の、オペランドを複数回繰返し、利用するの
に、上記実施例では、DPレジスタ69の内容を更新さ
せずに、同一のオペランド指定子を繰返しデコードする
ことによりこれを実現しているが、これ以外にもデコー
ドユニットから実行ユニットEU30に特別な信号を送
り、先に求められたオペランドを繰返し利用するように
指示してもよい。Furthermore, in the above embodiment, the same operand is repeatedly used multiple times, but this is achieved by repeatedly decoding the same operand specifier without updating the contents of the DP register 69. In addition to this, a special signal may be sent from the decoding unit to the execution unit EU30 to instruct it to repeatedly use the previously obtained operand.
第1図は本発明が適用されるデータ処理システムの基本
的な概念図、第2図囚、(2)は本発明に使用される不
定長命令のフォーマット及び、オペランド指定子のフォ
ーマットを示す図、第3図は第1図の中央処理装置の具
体的な一実施例ブロック構成図、第4図は、本発明の要
部である第3図のデコードユニットの具体的な一実施例
ブロック図、第5図は第4図の説明に用いられるオペラ
ンド指定子のフォーマット、第6図は第4図のオペラン
ド情報ROM63の内容を説明するための説明図、第7
図は第4図のオペランド指定子デコーダ66の動作説明
に用いる説明図、第8図は、第4図のデコード処理終了
バイト数検出器65のハード構成を示す一実施例図であ
る。
27・・・デコードユニット、61・・・オペコートテ
コードユニット、63・・・オペランド情報ROM。
65・・・デコード処理終了バイト数検出器、66・・
・オペランド指定子デコータ、205・・・終了情報1
1 呂
296−
′#l 2 ε
(A)
馬 3 z
第40
躬 5 口
(3) 、5 0,3 a人15
こ 2
204 1t)J3バイト
マスク
105−.3
第1頁の続き
0発 明 者 加藤猛
日立重大みか町5丁目2番1号
株式会社日立製作所大みか工場
内
0発 明 者 中西宏明
日立重大みか町5丁目2番1号
株式会社日立製作所大みか工場
内
0発 明 者 河上哲也
日立市幸町3丁目2番1号日立
エンジニアリング株式会社内
@出 願 人 日立エンジニアリング株式会社日立市幸
町3丁目2番1号
299−Figure 1 is a basic conceptual diagram of a data processing system to which the present invention is applied, Figure 2 (2) is a diagram showing the format of an indefinite length instruction and the format of an operand specifier used in the present invention. , FIG. 3 is a block diagram of a specific embodiment of the central processing unit of FIG. 1, and FIG. 4 is a block diagram of a specific embodiment of the decoding unit of FIG. 3, which is the main part of the present invention. , FIG. 5 is the format of the operand specifier used to explain FIG. 4, FIG. 6 is an explanatory diagram for explaining the contents of the operand information ROM 63 in FIG. 4, and FIG.
This figure is an explanatory diagram used to explain the operation of the operand specifier decoder 66 in FIG. 4, and FIG. 8 is an embodiment diagram showing the hardware configuration of the decoding process completed byte number detector 65 in FIG. 4. 27...Decode unit, 61...Operation code unit, 63...Operand information ROM. 65...Decoding processing completed byte number detector, 66...
・Operand specifier decoder, 205...End information 1
1 ro 296- '#l 2 ε (A) horse 3 z 40th 謬 5 mouth (3), 5 0,3 a person 15
2 204 1t) J3 byte mask 105-. 3 Continued from page 1 0 Inventor: Takeshi Kato, 5-2-1, Hitachi Omika-cho, Hitachi, Ltd. Omika Factory, Hitachi, Ltd. 0 Author: Hiroaki Nakanishi, 5-2-1, Omika-cho, Hitachi, Ltd. Hitachi, Ltd. 0 inventions in the factory Author Tetsuya Kawakami 3-2-1 Saiwai-cho, Hitachi City Hitachi Engineering Co., Ltd. Applicant Hitachi Engineering Co., Ltd. 3-2-1 Saiwai-cho, Hitachi City 299-
Claims (1)
ランド指定子が処理の種類およびオペランドの数を指定
するオペコード部分から独立している命令を扱うデータ
処理装置において、該命令は、少なくともオペランド指
定子に対応して付加されたオペランド指定子の終了情報
を含み、デコード手段は、少なくともオペコードデコー
ド手段と、オペランド指定子デコード手段とオペランド
指定子に付加された終了情報の検出を行う終了情報検出
手段を有し、該終了情報検出手段が終了情報がセットさ
れていることを検出した場合、当該オペランド指定子ま
でをもって1つの命令が形成されていると判断し、命令
の処理を行うようにしたことを特徴とする不定長命令を
扱うデータ処理装置。 2 オペコードデコード手段がオペランドの最終である
ことを示す信号を出力する前に、該終了情報検出手段が
終了情報がセットされていることを検出した場合、同一
のオペランドを再度使用するようにしたことを特徴とす
る特許請求の範囲第1項記載の不定長命令を扱うデータ
処理装置。 3、 オペコードデコード手段がオペランドの最終であ
ることを示す信号を出力する前に、終了情報検出手段が
終了情報のセットを検出した場合、次にデコード手段に
読み出すべきオペランド指定子のアドレスとして現在使
用中のアドレスを再度使用することにより、同一のオペ
ランドを再度使用するようにしたことを特徴とする特許
請求の範囲第2項記載の不定長命令を扱うデータ処理装
置。[Scope of Claims] 1. In a data processing device that handles an instruction in which an operand specifier that specifies the addressing mode of an operand is independent of an opcode portion that specifies the type of processing and the number of operands, the instruction The decoding means includes at least operation code decoding means, operand specifier decoding means, and end information detection for detecting the end information added to the operand specifier. When the end information detection means detects that end information is set, it is determined that one instruction is formed including the operand specifier, and the instruction is processed. A data processing device that handles undefined length instructions. 2. If the end information detection means detects that end information is set before the operation code decoding means outputs a signal indicating that the operand is the last, the same operand is used again. A data processing device that handles an indefinite length instruction according to claim 1. 3. If the end information detection means detects a set of end information before the operation code decoding means outputs a signal indicating that it is the last of the operands, the end information detection means detects the set of end information, which is currently used as the address of the operand specifier to be read out to the decoding means next. 3. A data processing device for handling indefinite length instructions according to claim 2, wherein the same operand is reused by reusing an address therein.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13271681A JPS5835642A (en) | 1981-08-26 | 1981-08-26 | Data processing device handling undefined length instruction |
US06/408,924 US4530050A (en) | 1981-08-26 | 1982-08-17 | Central processing unit for executing instructions of variable length having end information for operand specifiers |
EP82107598A EP0073424B1 (en) | 1981-08-26 | 1982-08-19 | Central processing unit for executing instructions of variable length |
DE8282107598T DE3278442D1 (en) | 1981-08-26 | 1982-08-19 | Central processing unit for executing instructions of variable length |
KR8203773A KR880000297B1 (en) | 1981-08-26 | 1982-08-23 | Central processing unit for executing instructions of variable length |
CA000410221A CA1186801A (en) | 1981-08-26 | 1982-08-26 | Central processing unit for executing instructions of variable length |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13271681A JPS5835642A (en) | 1981-08-26 | 1981-08-26 | Data processing device handling undefined length instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5835642A true JPS5835642A (en) | 1983-03-02 |
JPS6149692B2 JPS6149692B2 (en) | 1986-10-30 |
Family
ID=15087903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13271681A Granted JPS5835642A (en) | 1981-08-26 | 1981-08-26 | Data processing device handling undefined length instruction |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5835642A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS623332A (en) * | 1985-06-28 | 1987-01-09 | Yokogawa Hewlett Packard Ltd | Information processor having instruction containing direct value field |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0570795U (en) * | 1991-02-13 | 1993-09-24 | 広島アルミニウム工業株式会社 | Empty can press machine |
JPH0677992U (en) * | 1992-07-10 | 1994-11-01 | 株式会社東洋アイデック | Simple type can pressing device |
-
1981
- 1981-08-26 JP JP13271681A patent/JPS5835642A/en active Granted
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS623332A (en) * | 1985-06-28 | 1987-01-09 | Yokogawa Hewlett Packard Ltd | Information processor having instruction containing direct value field |
Also Published As
Publication number | Publication date |
---|---|
JPS6149692B2 (en) | 1986-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6889318B1 (en) | Instruction fusion for digital signal processor | |
EP0220684B1 (en) | Data processing system | |
US4179731A (en) | Microprogrammed control system | |
JP3203401B2 (en) | Data processing device | |
JPS6015746A (en) | Data processor | |
JPS6312029A (en) | Information processor | |
JPS592143A (en) | Operation controlling system | |
JP2002229777A (en) | Processor device | |
JPH0348537B2 (en) | ||
US6055623A (en) | Specialized millicode instruction for editing functions | |
US6058470A (en) | Specialized millicode instruction for translate and test | |
US6067617A (en) | Specialized millicode instructions for packed decimal division | |
JPS5835642A (en) | Data processing device handling undefined length instruction | |
US20050177707A1 (en) | Method and apparatus for recoding instructions | |
JP2748957B2 (en) | Data processing device | |
JPH027097B2 (en) | ||
EP0936537B1 (en) | Cyclic redundancy check in a computer system | |
US6055624A (en) | Millicode flags with specialized update and branch instructions | |
JPS623336A (en) | Conditional branch system | |
JP2520882B2 (en) | Data processing device and data processing method | |
JPS5835643A (en) | Data processing device for error detection of undefined length instruction | |
IE57932B1 (en) | Microcode control system for digital data processing system | |
JPS58149542A (en) | Data processing device | |
JPS5844539A (en) | Data processor handling instruction of unfixed length | |
US5774740A (en) | Central processing unit for execution of orthogonal and non-orthogonal instructions |