JPH0658629B2 - Data processing device - Google Patents

Data processing device

Info

Publication number
JPH0658629B2
JPH0658629B2 JP60072646A JP7264685A JPH0658629B2 JP H0658629 B2 JPH0658629 B2 JP H0658629B2 JP 60072646 A JP60072646 A JP 60072646A JP 7264685 A JP7264685 A JP 7264685A JP H0658629 B2 JPH0658629 B2 JP H0658629B2
Authority
JP
Japan
Prior art keywords
instruction
word
data processing
instruction word
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.)
Expired - Lifetime
Application number
JP60072646A
Other languages
Japanese (ja)
Other versions
JPS61231632A (en
Inventor
博之 木田
英雄 前島
郁朗 増田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP60072646A priority Critical patent/JPH0658629B2/en
Priority to DE3650602T priority patent/DE3650602T2/en
Priority to EP86104747A priority patent/EP0199173B1/en
Priority to DE3689595T priority patent/DE3689595T2/en
Priority to EP91120043A priority patent/EP0476722B1/en
Priority to KR1019860002654A priority patent/KR900003591B1/en
Publication of JPS61231632A publication Critical patent/JPS61231632A/en
Priority to US07/951,772 priority patent/US5455955A/en
Publication of JPH0658629B2 publication Critical patent/JPH0658629B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はマイクロコンピュータの処理方式に係り、特に
マイクロプログラム制御方式のマイクロコンピュータに
好適な命令解読方式を具備するデータ処理装置に関す
る。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a microcomputer processing system, and more particularly to a data processing apparatus having an instruction decoding system suitable for a microcomputer of a micro program control system.

〔発明の背景〕[Background of the Invention]

マイクロコンピュータの分野では、高集積化に伴ない論
理の複雑さが生じるため、規則的な構造の論理回路によ
って集積回路を実現する方法が主流になりつつある。そ
の1つがマイクロプログラム制御方式である。マイクロ
プログラム制御方式のデータ処理装置としては、命令語
からマイクロプログラムROMのアドレスを生成する命
令デコーダを用いて構成されているものが一般的であ
る。この命令デコーダを省略したマイクロプログラム制
御方式が特開昭57−203141号公報に記載されて
いるが、この方式は命令語を直接マイクロプログラムR
OMのアドレス情報の一部に置数する為、命令語の語長
が8,16,32ビットと増大するにつれてマイクロプ
ログラムROMのアドレス長が命令語長と共に長くな
り、マイクロプログラムROMのアドレスデコーダが増
大するが、この点については特に配慮がなされていなか
った。
In the field of microcomputers, the complexity of logic arises with higher integration, so that a method of realizing an integrated circuit by a logic circuit having a regular structure is becoming mainstream. One of them is a micro program control method. As a data processing device of the micro program control system, it is general that it is configured by using an instruction decoder that generates an address of a micro program ROM from an instruction word. A microprogram control system in which this instruction decoder is omitted is described in Japanese Patent Application Laid-Open No. 57-203141. In this system, an instruction word is directly sent to the microprogram R.
Since the number is registered as a part of the address information of the OM, the address length of the microprogram ROM increases with the instruction word length as the word length of the instruction word increases to 8, 16 and 32 bits. Although there is an increase, no particular consideration was given to this point.

〔発明の目的〕 本発明の目的は、主記憶装置に格納された命令語を読み
出し、解読して実行するデータ処理装置において、種々
の命令形式に対応できる命令解読方式を備えたデータ処
理装置を提供することにある。
[Object of the Invention] An object of the present invention is to provide a data processing device which reads an instruction word stored in a main storage device, decodes the instruction word, and executes the instruction word. To provide.

〔発明の概要〕[Outline of Invention]

前記目的を達成する為、本発明では機械命令語をハード
ウェアの構成に適したオーソゴナルな中間機械語に再配
列し、これを実行するようにした命令解読方式を採る。
In order to achieve the above object, the present invention adopts an instruction decoding method in which a machine instruction word is rearranged into an orthodox intermediate machine language suitable for a hardware configuration and executed.

〔発明の実施例〕Example of Invention

以下に本発明の一実施例を図面に従って説明する。 An embodiment of the present invention will be described below with reference to the drawings.

第2図は本発明の一実施例を示すもので、一つの半導体
基板に構築されたシングルチップ・マイコン10の構成
図であり、データ処理装置となる中央処理装置101を
核として、主記憶装置102,タイマ機能や入出力機能
を有する周辺装置103,ダイレクト・メモリ・アクセ
ス装置104,アドレス変換装置105から成る。第2
図中の破線で示したプロセッサ20の部分は、第1図及
び第3図以降に詳細に説明する。
FIG. 2 shows an embodiment of the present invention, and is a block diagram of a single-chip microcomputer 10 constructed on one semiconductor substrate, with a central processing unit 101 serving as a data processing unit serving as a core, and a main storage unit. 102, a peripheral device 103 having a timer function and an input / output function, a direct memory access device 104, and an address translation device 105. Second
The portion of the processor 20 indicated by the broken line in the figure will be described in detail with reference to FIGS.

第1図は、本発明の一実施例を示すプロセッサ20の部
分の構成図であり、命令語記憶・変換ユニット201,
マイクロプログラムROM(Read Only Memory)を主要
素とするマイクロプログラム記憶・制御ユニット20
2,デコーダユニット203,演算ユニット204,バ
スインタフェースユニット205,読み出しと書き込み
が可能な第1の主記憶装置206,読み出しが可能な第
2の主記憶装置207,アドレスの入出力バッファ20
82,データの入出力バッファ2083,クロック供給
及び電源供給バッファ2084,アドレス・データ・ク
ロック,電源以外の信号でプロセッサ20の部分と第2
図に於ける他の装置103,104,105等とを結ぶ
信号線の入出力バッファ2081から成る。第1図によ
り、命令フェッチから実行までの動作を説明する。
FIG. 1 is a block diagram of a portion of a processor 20 showing an embodiment of the present invention. The instruction word storage / conversion unit 201,
Micro program storage / control unit 20 having micro program ROM (Read Only Memory) as a main element
2, decoder unit 203, arithmetic unit 204, bus interface unit 205, readable and writable first main memory device 206, readable second main memory device 207, address input / output buffer 20
82, a data input / output buffer 2083, a clock supply / power supply buffer 2084, an address / data clock, and a signal other than the power supply to the processor 20 and the second part.
It is composed of an input / output buffer 2081 of a signal line connecting with other devices 103, 104, 105 and the like in the figure. The operation from instruction fetch to execution will be described with reference to FIG.

(1)命令フェッチ バスインタフェースユニット205内のプログラム(命
令)フェッチ用レジスタ(命令アドレスレジスタ)の内
容がバス212を介してプロセッサ20内の第1の主記
憶装置206,第2の主記憶装置207に印加される一
方、アドレスの入出力バッファ2082にも出力され、
プロセッサ20外のバス222へ供給される。このアド
レスに対応した命令語が第1の主記憶装置206或は第
2の主記憶装置207からバス213へ印加されるか或
は、バス223,データの入出力バッファ2083を経
由して、バス213に印加される。バス213の内容は
命令語記憶・変換ユニット201に供給される。
(1) Instruction fetch The contents of the program (instruction) fetch register (instruction address register) in the bus interface unit 205 are stored in the first main storage device 206 and the second main storage device 207 in the processor 20 via the bus 212. Is also applied to the address input / output buffer 2082,
It is supplied to the bus 222 outside the processor 20. An instruction word corresponding to this address is applied from the first main memory device 206 or the second main memory device 207 to the bus 213, or via the bus 223 and the data input / output buffer 2083. 213 is applied. The contents of the bus 213 are supplied to the instruction word storage / conversion unit 201.

(2)命令語記憶及び変換 命令語記憶・変換ユニット201に印加された命令語は
一時記憶されると共に解読され、マイクロプログラム記
憶・制御ユニット202の入力となる情報に変換され
る。
(2) Command word storage and conversion The command word applied to the command word storage / conversion unit 201 is temporarily stored and decoded, and converted into information to be input to the microprogram storage / control unit 202.

(3)マイクロ命令読出し マイクロプログラム記憶・制御ユニット202では、命
令語記憶・変換ユニット201で命令語から変換された
情報を必要に応じてバス231を介して入力し、マイク
ロ命令列としてバス232に出力する。
(3) Microinstruction reading In the microprogram storage / control unit 202, the information converted from the instruction word in the instruction word storage / conversion unit 201 is input as necessary via the bus 231 and is input to the bus 232 as a microinstruction string. Output.

(4)マイクロ命令解読 マイクロプログラム記憶・制御ユニット202からバス
232を経由してマイクロ命令がデコーダユニット20
3に印加されて解読され、演算ユニット204を直接制
御する信号群233及びバスインターフェースユニット
205を直接制御する信号群234が出力される。
(4) Microinstruction decoding Microinstructions are transmitted from the microprogram storage / control unit 202 via the bus 232 to the microinstruction unit 20.
A signal group 233 for directly controlling the arithmetic unit 204 and a signal group 234 for directly controlling the bus interface unit 205 are output.

(5)演算実行 演算ユニット204では、信号群233に従って所望の
データ演算を行なう。又、バスインタフェースユニット
205では、プロセッサ20と他の装置間のデータ転送
やプロセッサ20内でのデータ転送のタイミングの制御
をバス211,入出力バッファ2081,バス221及
び信号線235,236を介して行なう。
(5) Calculation Execution The calculation unit 204 performs desired data calculation according to the signal group 233. The bus interface unit 205 controls the timing of data transfer between the processor 20 and other devices and the timing of data transfer within the processor 20 via the bus 211, the input / output buffer 2081, the bus 221, and the signal lines 235 and 236. To do.

一方、バッファ2084に供給されたクロック及び電源
は信号線214を介して各ユニットへ供給される。
On the other hand, the clock and power supplied to the buffer 2084 are supplied to each unit via the signal line 214.

第3図は第1図の命令語記憶・変換ユニット201,マ
イクロプログラム記憶・制御ユニット202,デコーダ
ユニット203,演算ユニット204の構成の一例を示
したものである。バス213を経由して命令語記憶・変
換ユニット201に転送された命令語は命令語記憶手段
である命令語記憶部301に一時記憶されて命令解読手
段となる命令解読部302に転送される。
FIG. 3 shows an example of the configuration of the instruction word storage / conversion unit 201, the microprogram storage / control unit 202, the decoder unit 203, and the arithmetic unit 204 of FIG. The instruction word transferred to the instruction word storage / conversion unit 201 via the bus 213 is temporarily stored in the instruction word storage unit 301 which is the instruction word storage unit and transferred to the instruction decoding unit 302 which is the instruction decoding unit.

ここで、命令語記憶部301に読み込まれる命令語の代
表的な命令フォーマットの例を第4図に示す。
Here, FIG. 4 shows an example of a typical instruction format of an instruction word read into the instruction word storage unit 301.

(1)演算命令 第1のオペランドコードで指定した第1のオペランドの
内容と第2のオペランドで指定した第2のオペランドの
内容を演算し、結果を第2オペランドの位置に格納す
る。オペレーションコード内の演算のタイプは算術演算
や論理演算等の演算の種類を規定する。
(1) Arithmetic instruction The contents of the first operand specified by the first operand code and the contents of the second operand specified by the second operand are operated, and the result is stored in the position of the second operand. The type of operation in the operation code defines the type of operation such as arithmetic operation and logical operation.

(2)分岐命令 オペレーションコード内の分岐条件で指定されたコンデ
ィションが満足した場合は第1のオペランドで指定する
オペランドの内容が示すプログラムアドレスに分岐す
る。コンディションが満足しない場合は次の命令語を実
行する。
(2) Branch instruction When the condition specified by the branch condition in the operation code is satisfied, the operation branches to the program address indicated by the content of the operand specified by the first operand. If the condition is not satisfied, execute the next command.

(3)ビット操作命令 第2のオペランドコードで指定する第2オペランド内の
第1オペランドであるビット番号が示すビット位置の内
容をテストし、そのビットの状態を記憶する。テストの
後、そのビットの内容をオペレーションコード内のビッ
ト操作のタイプで示す動作(クリア,セット,チェン
ジ,テスト)を実行し、必要に応じ第2オペランドの対
応するビット位置に格納する。
(3) Bit manipulation instruction The contents of the bit position indicated by the bit number which is the first operand in the second operand designated by the second operand code is tested and the state of the bit is stored. After the test, an operation (clear, set, change, test) indicating the content of the bit by the type of bit operation in the operation code is executed, and stored in the corresponding bit position of the second operand as necessary.

上記命令語(1),(2),(3)は本来盛り込みたい
機能をある一定の規則に基づき、限定されたビット内に
おさめた結果、命令が一命令のビット長の制約からオー
ソゴナリティを犠性にして体系化している。
The above instruction words (1), (2), and (3) have functions originally desired to be included in a limited number of bits based on a certain rule, and as a result, the instruction has an orthogonality due to the limitation of the bit length of one instruction. Is systematized as a sacrifice.

第3図に示す本実施例は、命令語記憶部301から読み
出した命令語を命令解読部302において解読し、命令
実行に必要な各種情報を完全なオーソゴナルコード体系
を有する命令(以下中間機械語と呼ぶ)に変換する。即
ち、実行されるべきオペレーションを指定するオペレー
ションコードと、オペランドを含む主記憶装置の位置を
識別するオペランド指定子を表現する情報ビットを独立
に持つ。変換後の中間機械語は記憶部303に格納さ
れ、マイクロプログラム記憶・制御ユニット202及び
デコーダユニット203へ行く。中間機械語のあるもの
は少なくとも1つのオペランド指定子を含んでおり、そ
のオペランド指定子が示すオペランドがソースオペラン
ドであるか、デスティネーションオペランドであかの情
報は、全てオペレーションコードに表現されている。
又、オペレーションコード及びオペランド指定子を表現
する情報において、マイクロプログラム記憶・制御ユニ
ット202で解読を必要とする情報3031以外の中間
機械語の各情報は、マイクロ命令のバス232で制御で
きるデコーダユニット203内の各デコーダ2031,
2032,2033,2034,2035の入力と1対
1に対応している(第3図)。デコーダユニット203
内の各種デコーダで生成された制御信号群233は演算
ユニット204を制御し、中間機械語が示す所望の演算
処理を実行する。
In this embodiment shown in FIG. 3, an instruction word read from the instruction word storage unit 301 is decoded by an instruction decoding unit 302, and various information necessary for executing the instruction is stored in an instruction having a complete orthogonal code system (hereinafter, an intermediate instruction). Called machine language). That is, it independently has an operation code that specifies the operation to be executed and an information bit that represents an operand specifier that identifies the location of the main storage device that contains the operand. The converted intermediate machine language is stored in the storage unit 303, and goes to the microprogram storage / control unit 202 and the decoder unit 203. Some of the intermediate machine languages include at least one operand specifier, and all the information indicating whether the operand indicated by the operand specifier is a source operand or a destination operand is expressed in the operation code.
Further, in the information expressing the operation code and the operand designator, each information of the intermediate machine language other than the information 3031 which needs to be decoded by the micro program storage / control unit 202 can be controlled by the micro instruction bus 232. Each decoder 2031 in
There is a one-to-one correspondence with the inputs 2032, 2033, 2034, 2035 (Fig. 3). Decoder unit 203
The control signal group 233 generated by the various decoders inside controls the arithmetic unit 204 and executes desired arithmetic processing indicated by the intermediate machine language.

第5図は他の実施例を示すもので、命令語記憶部301
に一時記憶した命令語を解読し中間機械語を生成する命
令語解読部が2つ存在する場合の例を示している。
FIG. 5 shows another embodiment, which is an instruction word storage unit 301.
2 shows an example in which there are two instruction word decoding units for decoding the instruction word temporarily stored in and generating an intermediate machine language.

ユーザプログラムが格納されている主記憶装置に異なっ
た2種類の命令体系A,Bで表現した命令語が格納され
ている場合、即ち2進の命令コードが同一であっても命
令の処理内容(命令機能)が異なっている時、命令体系
Aの命令語を解読する命令解読部302と、命令体系B
の命令語を解読する命令解読部502とを備える。命令
解読部302で生成された情報は、バス3021を介し
てマルチプレクサ503に送られる。同様に命令解読部
502で生成された情報はバス5021を介してマルチ
プレクサ503に送られる。マルチプレクサ503は、
フリップ・フロップ504の内容に基づいてバス302
1の内容とバス5021の内容のいずれか一方を選択
し、記憶部303に格納する。この時2つの命令解読部
302,502は、命令体系Aの命令コードで表現され
た命令の命令体系Bの命令コードで表現された命令の各
々の2進コードが異なっている場合でも命令の処理内容
が同じであれば、全く同一の中間機械語を生成する。即
ち、命令体系が異なった命令語であっても命令機能が同
じであれば、記憶部303に格納される情報が同じであ
ることから、中間機械語で制御されるプロセッサ20内
の大部分のハードウェア500(第2図では、命令語記
憶・変換ユニット201を除くプロセッサ20内のハー
ドウェアを指す)は、命令体系が異なっていても共通に
制御できる。
When the main memory device in which the user program is stored stores the command words represented by two different command systems A and B, that is, even if the binary command codes are the same, the processing content of the command ( When the instruction function) is different, the instruction decoding unit 302 that decodes the instruction word of the instruction system A and the instruction system B
And an instruction decoding unit 502 that decodes the instruction word. The information generated by the instruction decoding unit 302 is sent to the multiplexer 503 via the bus 3021. Similarly, the information generated by the instruction decoding unit 502 is sent to the multiplexer 503 via the bus 5021. The multiplexer 503 is
Bus 302 based on the contents of flip-flop 504
Either the content of 1 or the content of the bus 5021 is selected and stored in the storage unit 303. At this time, the two instruction decoding units 302 and 502 process the instruction even if the binary code of the instruction represented by the instruction code of the instruction system A is different from the binary code of the instruction represented by the instruction code of the instruction system B. If the contents are the same, the exact same intermediate machine language is generated. That is, if the instruction functions are the same even if the instruction systems have different instruction systems, since the information stored in the storage unit 303 is the same, most of the processor 20 controlled by the intermediate machine language has the same information. The hardware 500 (in FIG. 2, indicates the hardware in the processor 20 excluding the instruction word storage / conversion unit 201) can be commonly controlled even if the instruction system is different.

一方、フリップ・フロップ504は、プロセッサ20の
リセット時にあらかじめ定めておいた端子505に入力
された信号のレベルを制御手段となる制御回路506で
検出し、結果をセットできる構成となっている。端子5
05は、アドレスバスの最下位ビットの端子と兼用して
いる。
On the other hand, the flip-flop 504 is configured to detect the level of a signal input to a predetermined terminal 505 when the processor 20 is reset by the control circuit 506 serving as control means and set the result. Terminal 5
Reference numeral 05 also serves as the least significant bit terminal of the address bus.

第6図は他の実施例を示すもので、第5図で示すバス2
13を介して命令語記憶部301に読み込む命令語と命
令解読部302及び命令解読部502で生成した記憶部
303に格納する中間機械語を主記憶装置600に混在
して格納した場合の命令語記憶・変換ユニット201の
構成を示している。主記憶装置には2つの命令体系を有
する命令コードが格納されており、一方は命令語記憶部
301を経て命令解読部302で中間機械語に変換され
バス3021を経由してマルチプレクサ603で選択さ
れ記憶部303に格納され、他方は命令語記憶部60
1、バス6011を経由してマルチプレクサ603で選
択され記憶部303に格納される。マルチプレクサ60
3は、フリップ・フロップ604の内容に基づいて第1
のバスとなるバス3021の内容と第2のバスとなるバ
ス6011の内容のいずれか一方を選択する。又、主記
憶装置600に格納する命令語には、マルチプレクサ6
03を互いにスイッチできる命令が定義されており、、
該命令を実行すれば制御線6041を介してフリップ・
フロップ604を制御できる。一方、第7図に示す様
に、端子605に入力された信号のレベルを制御回路6
06で検出することでフリップ・フロップ604を制御
しても良い。
FIG. 6 shows another embodiment of the bus 2 shown in FIG.
A command word when the command word to be read into the command word storage unit 301 via 13 and the intermediate machine language to be stored in the storage unit 303 generated by the command decoding unit 302 and the command decoding unit 502 are mixedly stored in the main storage device 600. The configuration of the storage / conversion unit 201 is shown. An instruction code having two instruction systems is stored in the main memory, and one of them is converted into an intermediate machine language by an instruction decoding section 302 via an instruction word storage section 301 and is selected by a multiplexer 603 via a bus 3021. The other is stored in the storage unit 303, and the other is the instruction word storage unit 60.
1, selected by the multiplexer 603 via the bus 6011 and stored in the storage unit 303. Multiplexer 60
3 is the first based on the contents of the flip-flop 604.
One of the contents of the bus 3021 serving as the second bus and the contents of the bus 6011 serving as the second bus is selected. Further, the instruction word stored in the main storage device 600 includes the multiplexer 6
An instruction that can switch 03 with each other is defined,
If the command is executed, the flip
The flop 604 can be controlled. On the other hand, as shown in FIG. 7, the level of the signal input to the terminal 605 is controlled by the control circuit 6
The flip-flop 604 may be controlled by detecting at 06.

マルチプレクサ603及び記憶部303は、命令語記憶
部601の内容をバイト(8ビット)単位で制御できる
構造になっており、命令語記憶部601を必要としない
応用例については、バス213のビット幅でマルチプレ
クサ603に入力できる構造となっている。
The multiplexer 603 and the storage unit 303 have a structure capable of controlling the content of the instruction word storage unit 601 in units of bytes (8 bits). For an application example that does not require the instruction word storage unit 601, the bit width of the bus 213 is set. The structure allows input to the multiplexer 603.

第8図は、第3図における命令語記憶・変換ユニット2
01の機能を細分化したブロック図である。各ブロック
の特徴を次に示す。
FIG. 8 is an instruction word storage / conversion unit 2 in FIG.
It is the block diagram which subdivided the function of 01. The features of each block are shown below.

(1)命令語記憶部301 主記憶装置よりバス213を経由して読み出された命令
語を一時記憶するバッファ・メモリである。高速のパイ
プライン処理を可能とする為命令語の先読みがされる。
(1) Command word storage unit 301 This is a buffer memory for temporarily storing command words read from the main storage device via the bus 213. The instruction word is prefetched to enable high-speed pipeline processing.

(2)コード照合手段802 命令語によってオペレーションコードとオペランドコー
ドの配置が異なっている。この為、命令語記憶部301
よりバス3011に読み出した命令語をコード照合手段
802内にあらかじめ定義して置いたコードパターンと
照合しその一致を検出する。
(2) Code collating means 802 The arrangement of the operation code and the operand code differs depending on the instruction word. Therefore, the command word storage unit 301
The instruction word read out to the bus 3011 is collated with the code pattern defined and placed in the code collating means 802 to detect the coincidence.

(3)コード再配列情報記憶手段803 命令語をオーソゴナルな命令フォーマットを有する中間
機械語に変換するためのコードの再配列情報を定義し記
憶する。定義した再配列情報は、コード照合手段802
からの信号8021に従って読み出されバス8031に
送られる。
(3) Code rearrangement information storage means 803 Defines and stores code rearrangement information for converting an instruction word into an intermediate machine language having an orthogonal instruction format. The defined rearrangement information is code collating means 802.
Is read out according to the signal 8021 from the device and sent to the bus 8031.

(4)再配列手段804 バス3011を経由して入力された命令コードをオーソ
ゴナルな命令フォーマットを有する中間機械語に変換す
る為、バス8031の内容に従って命令コードの再配列
を行なう。変換後の中間機械語は、実行されるべきオペ
レーションを指定するオペレーションコードと、オペラ
ンドを含むメモリ位置を識別するオペランド指定子が各
々独立なビット位置に配列される。オペランドを必要と
しない命令を除くいくつかの命令は、少なくとも1つの
オペランド指定子を含んでいる。
(4) Rearrangement means 804 In order to convert the instruction code input via the bus 3011 into an intermediate machine language having an orthogonal instruction format, the instruction code is rearranged according to the contents of the bus 8031. In the converted intermediate machine language, an operation code that specifies an operation to be executed and an operand specifier that identifies a memory location containing an operand are arranged in independent bit positions. Some instructions, except those that require no operands, include at least one operand specifier.

第9図は第8図で示す命令語記憶・変換ユニットの一実
施例を示すもので、メモリ部となるファーストイン・フ
ァーストアウト(First-In First-Out)型メモリ901
(以下FIFOと略す)及びFIFO901の制御部で
ある制御回路911を主な構成要素とする命令語記憶部
301と、プログラマブル・ロジック・アレイ(Progra
mmable Logic Array;以下PLAと略す)を主な構成要
素とするコード照合手段802及びコード再配列情報記
憶手段803と、例えば、Metal-Oxide-Semiconductor
(以下MOSと略す)トランジスタを使用したスイッチ
アレイを主要素とする再配列情報手段804で構成して
いる。第9図に於けるaからJまでの信号に関して、そ
のタイミングを基本クロックφ,φと並置して第1
0図に示す。
FIG. 9 shows an embodiment of the instruction word storage / conversion unit shown in FIG. 8, which is a first-in first-out type memory 901 serving as a memory section.
(Hereinafter, abbreviated as “FIFO”) and a control circuit 911 which is a control unit of the FIFO 901, and a command word storage unit 301 having a programmable logic array (Progra).
mmable Logic Array (hereinafter abbreviated as PLA) as a main component, a code collating unit 802 and a code rearrangement information storing unit 803, and, for example, Metal-Oxide-Semiconductor
The rearrangement information means 804 is composed mainly of a switch array using transistors (hereinafter abbreviated as MOS). Regarding the signals from a to J in FIG. 9, their timings are arranged in parallel with the basic clocks φ 1 and φ 2 .
It is shown in FIG.

まず、主記憶装置より読み出された命令はバスaを介し
て基本クロックφのタイミングでデータバッファbに
ラッチされる。ラッチされたデータは、基本クロックφ
のタイミングでバス213を介してFIFO901に
転送される。この時、制御回路911はバス213より
データをFIFOに書き込む制御を信号線9110を介
して行なっている。同時にバスcには実行すべき命令が
FIFO901より読み出されFIFOバッファ921
にラッチされる。コード照合手段802及びコード再配
列情報記憶手段803は、プリチャージ回路及びドライ
バを除けば全てNMOSトランジスタのみから構成され
るダイナミックPLA(902,903)で構成してい
る。従って入力ラッチ912及び出力ラッチ913,9
14が付加されている。信号dがラッチ912に入力さ
れてから、ラッチ913の出力h及びラッチ914の出
力iが決定するまでのタイミングは第10図に示す通り
である。信号hは再配列前の命令コードであり、信号i
は再配列情報である。再配列手段804では、信号iに
従って信号hの内容を配列し直すことで信号jを得る。
First, the instruction read from the main memory is latched in the data buffer b via the bus a at the timing of the basic clock φ 1 . The latched data is the basic clock φ
It is transferred to the FIFO 901 via the bus 213 at the timing of 2 . At this time, the control circuit 911 controls the writing of data from the bus 213 to the FIFO via the signal line 9110. At the same time, an instruction to be executed is read from the FIFO 901 to the bus c and is transferred to the FIFO buffer 921.
Latched on. The code collating means 802 and the code rearrangement information storing means 803 are all composed of dynamic PLA (902, 903) which is composed of only NMOS transistors except for the precharge circuit and the driver. Therefore, input latch 912 and output latches 913, 9
14 is added. The timing from the input of the signal d to the latch 912 to the determination of the output h of the latch 913 and the output i of the latch 914 is as shown in FIG. The signal h is the instruction code before rearrangement, and the signal i
Is rearrangement information. The rearrangement unit 804 rearranges the contents of the signal h according to the signal i to obtain the signal j.

第11図は、第9図の命令語記憶部301の詳細図であ
る。
FIG. 11 is a detailed diagram of the instruction word storage unit 301 of FIG.

FIFO901は1ポートのランダム・アクセス・メモ
リ〔(Randam Access Memory)(以下RAMと略す)〕
で構成されている。データ線1100は基本クロックφ
の期間にプリチャージ回路によって充電されており、
基本クロックφの期間にデータのアクセスを行なう様
になっている。センスアンプは、アクセスされたデータ
の増幅を行なう為に付加されておる。制御回路911
は、命令語をバス213よりFIFO901に書き込む
際に書き込み位置を指定するライトポインタ(第11図
ではWPで示す)、FIFO901に書き込まれた命令
語を読み出す際に読み出し位置を指定するリードポイン
タ(第11図ではRPで示す)、及び前記各々のポイン
タの値を増加するインクリメンタで構成されている。
The FIFO 901 is a 1-port random access memory [(Randam Access Memory) (hereinafter abbreviated as RAM)].
It is composed of. Data line 1100 is the basic clock φ
It is charged by the precharge circuit in the period of 2 ,
Data is accessed during the period of the basic clock φ 2 . The sense amplifier is added to amplify the accessed data. Control circuit 911
Is a write pointer (indicated by WP in FIG. 11) that specifies a write position when writing an instruction word to the FIFO 901 from the bus 213, and a read pointer (first position that specifies a read position when reading the instruction word written in the FIFO 901). (Indicated by RP in FIG. 11), and an incrementer that increases the value of each pointer.

第12図は第11図で示す制御回路911の詳細な論理
回路図であり、FIFO901が8ワード(1ワードは
バス213のビット長に相当する)の場合、即ち、ライ
トポインタ、リードポインタが共に3ビットの場合の実
施例を示している。バス9111はライトポインタ及び
リードポインタの内容を読み出して転送するバスであ
る。両者のポインタは▲▼信号によって内部
状態をクリアできる。▲▼信号はプロセッサ
20のリセット時にFIFO901をクリアする場合や
分岐命令を実行しプログラムの分岐が行なわれた時にF
IFO901に先読みした命令語が無効になった場合に
アクティブになる信号である。又信号1200は主記憶
装置からFIFO901に命令語を読み込むことのでき
るメモリ空間が存在しない事、即ちFIFO901が論
理的に空きが無く先読みした命令語で満たされている事
を示す信号である。又信号1201は主記憶装置からF
IFO901に命令語を読み込むことのできるメモリ空
間が8ワード存在する事、即ち先読みした命令語がFI
FO901に1つも存在しない事を示す信号である。信
号1202はライトポインタのインクリメント信号、信
号1203はリードポインタのインクリメント信号、信
号1204はライトポインタの内容をバス9111へ出
力する信号、信号1205はリードポインタの内容をバ
ス9111へ出力する信号である。
FIG. 12 is a detailed logic circuit diagram of the control circuit 911 shown in FIG. 11. When the FIFO 901 has 8 words (1 word corresponds to the bit length of the bus 213), that is, both the write pointer and the read pointer are An example in the case of 3 bits is shown. The bus 9111 is a bus for reading and transferring the contents of the write pointer and the read pointer. Both pointers can clear the internal state by the signal. The signal ▲ indicates F when clearing the FIFO 901 when the processor 20 is reset or when a branch instruction is executed and a program is branched.
It is a signal that becomes active when the instruction word prefetched to the IFO 901 becomes invalid. Further, the signal 1200 is a signal indicating that there is no memory space in which the instruction word can be read from the main storage device to the FIFO 901, that is, the FIFO 901 is logically free and is filled with the instruction word read in advance. Further, the signal 1201 is sent from the main storage device to F
There are 8 words of memory space which can read the instruction word in IFO901, that is, the pre-read instruction word is FI.
This is a signal indicating that there is no one in FO901. A signal 1202 is a write pointer increment signal, a signal 1203 is a read pointer increment signal, a signal 1204 is a signal for outputting the contents of the write pointer to the bus 9111, and a signal 1205 is a signal for outputting the contents of the read pointer to the bus 9111.

第13図は第9図の命令語記憶部301の他の実施例を
示すもので、FIFO901をPLAで制御した場合に
構成例である。主記憶装置から命令語を32ビットのバ
スを介してFIFOに取り込む制御とFIFOの内容を
命令解読部へ16ビット長で転送できる制御を同時に行
なっている。FIFOへのデータの入出力を制御してい
るPLAは、第14図に示すFIFO制御ステート・ダ
イアグラムを満足する。PLA1300の状態は第14
図に示す状態SからS10までの10通りの状態を遷
移するが、全ての状態においてFIFO・Reset信号が
入力するとSの状態になる。状態S及びSはFI
FO1301が空の状態(Enpty:第14図ではEで示
す)、即ち命令語がフェッチされていない状態を示して
いる。又、状態S,S,S及びS10は新たにフ
ェッチされる命令語を格納する領域がFIFO1301
内に存在しない事を示す状態(Full:第14図ではFで
示す)である。
FIG. 13 shows another embodiment of the instruction word storage unit 301 of FIG. 9, which is a configuration example when the FIFO 901 is controlled by the PLA. At the same time, control for fetching an instruction word from the main storage device to the FIFO via a 32-bit bus and control for transferring the contents of the FIFO to the instruction decoding unit with a 16-bit length are performed. The PLA controlling the input / output of data to / from the FIFO satisfies the FIFO control state diagram shown in FIG. The state of PLA1300 is 14th
The state transits from 10 states S 1 to S 10 shown in the figure, but in all states, when the FIFO / Reset signal is input, the state becomes S 1 . States S 1 and S 6 are FI
The FO 1301 shows an empty state (Enpty: indicated by E in FIG. 14), that is, a state in which no instruction word has been fetched. Further, in the states S 3 , S 5 , S 8 and S 10, the area for storing the newly fetched instruction word is the FIFO 1301.
It is a state (Full: indicated by F in FIG. 14) indicating that it does not exist inside.

一方、各ステート(S〜S10)は状態記憶部130
2内に格納されており、新しい状態がPLA1300よ
り出力されると信号13002によってその状態を状態
記憶部1302にセットするしくみになっている。
On the other hand, each state (S 1 to S 10 ) has a state storage unit 130.
2 is stored in the status storage unit 1302, and when the new status is output from the PLA 1300, the status is set in the status storage unit 1302 by the signal 13002.

第15図は第11図に示すFIFO901の他の実施例
を示すもので、FIFO901にデータを入力するビッ
ト長(バス213のビット数)とFIFO901に格納
されたデータを読み出すビット長を2:1なる読み出し
及び書き込みの制御を行なった場合のFIFO901の
構成例を示したものである。メモリセル1110の読み
出し、書き込みを制御するワード線が2つ(1500
1,15002)で構成されている。
FIG. 15 shows another embodiment of the FIFO 901 shown in FIG. 11, in which the bit length for inputting data to the FIFO 901 (the number of bits of the bus 213) and the bit length for reading out the data stored in the FIFO 901 are 2: 1. 2 shows an example of the configuration of the FIFO 901 when read and write control is performed. There are two word lines (1500) that control reading and writing of the memory cell 1110.
1, 15002).

第16図は第15図のFIFO1500の入出力を制御
する制御回路1510の詳細な論理回路図である。第1
2図に比較して、リードポインタが2つ存在している
(RP,RP)点が特徴であり、この2つのリード
ポインタRP,RPによってFIFO内のデータを
1/2ワード長としても1ワード長としても取り扱うこ
とができる。
FIG. 16 is a detailed logic circuit diagram of the control circuit 1510 for controlling the input / output of the FIFO 1500 shown in FIG. First
Compared to FIG. 2, the feature is that there are two read pointers (RP H , R PL), and the data in the FIFO is ½ word long by these two read pointers R P H , R P L. Can also be handled as a 1-word length.

第17図はFIFO1500内のデータを1/2ワード
長で取り扱った場合にデータの先頭を常に上位側のビッ
トから定めるための制御回路の構成例を示したものであ
る。先ずFIFO1500及び制御回路1510のリセ
ットと同時にフリップ・フロップ1700を信号170
01によってリセットする(状態0)。リセット後、フ
リップ・フロップ1700はラッチ1702を選択す
る。FIFO1500内のデータを1/2ワード長で取
り扱った場合は信号17002によってフリップ・フロ
ップ1700をセットする(状態1)。この時フリップ
・フロップの出力信号はラッチ1701を選択する。更
に、FIFO1500の内のデータを1/2ワード長で
取り扱った場合は信号17002によってフリップ・フ
ロップ1700をリセットする(状態0)。以上の動作
を繰り返す事でデータの先頭を知ることができる。
FIG. 17 shows an example of the configuration of a control circuit for always defining the head of data from the upper bits when the data in the FIFO 1500 is handled in a 1/2 word length. First, the flip-flop 1700 is set to the signal 170 at the same time as the reset of the FIFO 1500 and the control circuit 1510.
Reset by 01 (state 0). After reset, flip-flop 1700 selects latch 1702. When the data in the FIFO 1500 is handled with a length of 1/2 word, the flip-flop 1700 is set by the signal 17002 (state 1). At this time, the output signal of the flip-flop selects the latch 1701. Further, when the data in the FIFO 1500 is handled in a half word length, the flip-flop 1700 is reset by the signal 17002 (state 0). By repeating the above operation, the beginning of the data can be known.

第18図は第17図に示すフリップ・フロップの一部の
詳細図であり、第19図はそのタイミングチャートを示
している。
FIG. 18 is a detailed diagram of a part of the flip-flop shown in FIG. 17, and FIG. 19 is its timing chart.

第20図は、第8図及び第9図で示すコード照合手段8
02、コード再配列情報記憶手段803、再配列手段8
04の構成の一実施例を示したものである。各信号線
d,e,f,g,h,i及びjは第9図で示す対応する
信号と同じものであり、そのタイミングチャートは第1
0図で示す如くである。コード照合手段802はAND
型のダイナミックPLAで構成しており、コード再配列
情報記憶手段803はOR型のダイナミックPLAで構
成している。再配列手段804はNチャンネル型MOS
トランジスタを用いて図の如く構成している。本構成の
中で最も特徴とすべき事は、マイクロプログラム記憶・
制御ユニット202、デコーダユニット203の入力と
なるべき信号、即ち、記憶部303に格納すべき情報j
を生成する際に、命令語(信号線d)をデコードして命
令語と全く異なる新たな2進コード(情報jに相当)を
生成するのでなく、命令語を表現している2進コードの
一部を使用するか或は全てを再配列し直して情報jを生
成している点である。更に命令語の2進コードを再配列
する為に、命令語のコードが全く異なっていても再配列
の形式が全く同じ手順の命令語は同じ配列となる様な再
配列情報を定義している点である。本実施例によれば、
従来命令語からマイクロプログラム記憶・制御ユニット
の入力であるマイクロプログラムアドレスを生成してい
た命令デコーダの機能を実現でき、加えて該デコーダに
比べて約1/5〜1/10程度のハードウェアで同機能
を実現できる。
FIG. 20 shows the code collating means 8 shown in FIGS. 8 and 9.
02, code rearrangement information storage means 803, rearrangement means 8
This shows an example of the configuration of 04. Each signal line d, e, f, g, h, i and j is the same as the corresponding signal shown in FIG. 9, and its timing chart is
It is as shown in FIG. Code matching means 802 is AND
Type dynamic PLA, and the code rearrangement information storage unit 803 is configured by an OR type dynamic PLA. The rearrangement means 804 is an N channel type MOS.
A transistor is used as shown in the figure. The most important feature of this configuration is the microprogram storage /
Signals to be input to the control unit 202 and the decoder unit 203, that is, information j to be stored in the storage unit 303
When generating, the command word (signal line d) is not decoded to generate a new binary code (corresponding to information j) which is completely different from the command word, but the binary code expressing the command word The information j is generated by using some or rearranging all of them. Further, in order to rearrange the binary code of the command word, even if the code of the command word is completely different, the rearrangement information is defined so that the command words of the procedure in which the rearrangement format is completely the same are the same array. It is a point. According to this embodiment,
It is possible to realize the function of an instruction decoder that has conventionally generated a microprogram address that is an input of a microprogram storage / control unit from an instruction word, and in addition, with about 1/5 to 1/10 the hardware of the decoder. The same function can be realized.

第21図は、第20図の再配列手段804の他の実施例
であり、第20図と異なる点はPLAのORアレイ(コ
ード再配列情報記憶手段803)の出力に従って情報j
を任意に指定できる点にある。第20図の実施例は、命
令コードの一部或は全てを並べ替えて情報jを得るが、
本実施例は命令コードと独立なコードを情報jとする事
ができる。即ち、コード再配列情報記憶手段803の内
容を変えるだけで、命令語を表現している2進コードが
いかなる場合でも任意のコードパターンを有する情報j
を得ることができる。
FIG. 21 shows another embodiment of the rearrangement means 804 of FIG. 20. The difference from FIG. 20 is that information j is output according to the output of the OR array (code rearrangement information storage means 803) of PLA.
The point is that can be specified arbitrarily. In the embodiment of FIG. 20, some or all of the instruction codes are rearranged to obtain the information j.
In this embodiment, a code independent of the instruction code can be used as the information j. That is, the information j having an arbitrary code pattern regardless of the binary code expressing the command word can be obtained only by changing the contents of the code rearrangement information storage unit 803.
Can be obtained.

第22図は第8図のコード照合手段802の内容をダイ
ナミックに変換できる様に読み出し、書き込み可能なメ
モリセルで構成した場合の例を示す。
FIG. 22 shows an example in which the contents of the code collating means 802 shown in FIG. 8 are constituted by memory cells which can be read and written so that they can be dynamically converted.

命令コードを照合する為の情報をバス22001を介し
てメモリセル2210内に順次1ワードずつ定義してゆ
く。メモリセル2210の全ビットを定義した後、照合
したい命令語をバスdを介してデータ線22101に入
力する。メモリセル2210は定義した内容とデータ線
22101の内容を比較し、一致していなかった時信号
線22102をLowレベルにドライブする。1ワード
内の全ビットが一致した時、信号線22102はHig
hレベルを維持する。一致検出された信号線22102
の少なくとも1つの信号線は後段のコード再配列情報記
憶手段803を駆動する。
Information for collating the instruction code is sequentially defined word by word in the memory cell 2210 via the bus 22001. After defining all the bits of the memory cell 2210, the command word to be collated is input to the data line 22101 via the bus d. The memory cell 2210 compares the defined content with the content of the data line 22101 and drives the signal line 22102 to the low level when they do not match. When all the bits in one word match, the signal line 22102 goes High.
Maintain the h level. Matched signal line 22102
At least one of the signal lines drives the rearranged code rearrangement information storage unit 803.

第23図は第22図のメモリセル2210の一例の詳細
図である。
FIG. 23 is a detailed view of an example of the memory cell 2210 of FIG.

メモリセル2210にデータを書き込む時は信号線Wに
よって制御する。またデータ線D及びは極性が反転す
るが、プリチャージサイクル中はHighレベルにドラ
イブされる。この時信号線CはLowレベルにドライブ
される為、プリチャージの動作はコード再配列情報記憶
手段803にとって好ましい。
When data is written in the memory cell 2210, it is controlled by the signal line W. Further, although the polarities of the data lines D and are inverted, they are driven to the High level during the precharge cycle. At this time, since the signal line C is driven to the Low level, the precharge operation is preferable for the code rearrangement information storage unit 803.

第24図はマイクロプログラム記憶・制御ユニット20
2の構成の一実施例を示す図である。
FIG. 24 shows a microprogram storage / control unit 20.
It is a figure which shows one Example of a structure of 2.

マイクロプログラムアドレスレジスタ2403にセット
すべきマイクロプログラムアドレスの一部をセレクタ2
402で選択し、選択された信号2402aとマイクロ
命令レジスタ2406の出力の一部である信号2406
eを合成して、前記マイクロプログラムアドレスレジス
タ2403に格納する。マイクロプログラムアドレスレ
ジスタ2403の出力はアドレスデコーダ2404に送
られる一方、マイクロプログラムインクリメンタ240
8で1の増加をし信号2408aとしてセレクタ240
2に送られる。アドレスデコーダ2404では、マイク
ロプログラムアドレスをデコードし、その結果をマイク
ロ命令記憶部2405に送る。マイクロ命令記憶部24
05では指定されたマイクロ命令を読み出して、マイク
ロ命令レジスタ2406に格納する。マイクロ命令レジ
スタ2406の出力は3つに大別され、信号2406a
はデコーダユニット203及び演算ユニット204を制
御する信号であり、信号2406bはマイクロプログラ
ムで分岐が生じた場合に分岐先アドレスを指定する信号
であり、信号2406cはマイクロプログラムの次のア
ドレスを制御する信号である。制御回路2407は信号
2406cに従ってセレクタ2402を制御する信号2
407a及びマイクロプログラムアドレスを退避するス
タック2409を制御する信号2407bを生成する制
御回路である。
A part of the microprogram address to be set in the microprogram address register 2403 is selected by the selector 2
Signal 2402a selected by 402 and signal 2406 which is part of the output of microinstruction register 2406
e is combined and stored in the microprogram address register 2403. The output of the micro program address register 2403 is sent to the address decoder 2404, while the micro program incrementer 240
8 is incremented by 1 and the signal is output as a signal 2408a.
Sent to 2. The address decoder 2404 decodes the micro program address and sends the result to the micro instruction storage unit 2405. Micro instruction storage unit 24
At 05, the designated micro instruction is read out and stored in the micro instruction register 2406. The output of the micro instruction register 2406 is roughly classified into three, and a signal 2406a
Is a signal for controlling the decoder unit 203 and the arithmetic unit 204, a signal 2406b is a signal for designating a branch destination address when a branch occurs in the microprogram, and a signal 2406c is a signal for controlling the next address of the microprogram. Is. The control circuit 2407 controls the signal 2406c according to the signal 2406c.
407a is a control circuit for generating a signal 2407b for controlling the stack 2409 for saving the microprogram address.

第25図(a)は第24図におけるマイクロプログラム
アドレスレジスタ2403、アドレスデコーダ240
4、マイクロ命令記憶部2405及びマイクロ命令レジ
スタ2406の一実施例を示すものである。
FIG. 25A shows the microprogram address register 2403 and the address decoder 240 shown in FIG.
4, an example of the microinstruction storage unit 2405 and the microinstruction register 2406 is shown.

マイクロプログラムアドレスレジスタ2403の1ビッ
トは例えば、第25図(b)に示す様にフリップ・フロ
ップ2503で示す構成となっている。またアドレスデ
コーダ2404はAND型のダイナミックPLAであり
マイクロ命令記憶部はOR型のダイナミックPLAで構
成されている。また、マイクロ命令レジスタ2406は
ダイナミックラッチで構成されている。
One bit of the microprogram address register 2403 has a configuration shown by a flip-flop 2503 as shown in FIG. 25 (b), for example. The address decoder 2404 is an AND type dynamic PLA, and the microinstruction storage unit is an OR type dynamic PLA. The micro instruction register 2406 is composed of a dynamic latch.

第26図に各信号のタイミングを基本クロックφ及び
φと並置して示す。第26図で明らかな様に、マイク
ロプログラムアドレスレジスタ2403の出力2403
aが確定してからマイクロ命令レジスタ2406の出力
を得るまで1クロックサイクル必要とする。
FIG. 26 shows the timing of each signal alongside the basic clocks φ 1 and φ 2 . As is apparent from FIG. 26, the output 2403 of the microprogram address register 2403
It takes one clock cycle until the output of the micro instruction register 2406 is obtained after a is determined.

第27図は基本クロックφ及びφを停止させること
なく、マイクロプログラム記憶・制御ユニット202を
停止させた場合の各信号のタイミングを示している。信
号24Aはマイクロプログラム記憶・制御ユニット20
2に停止を与える信号であり、該信号がHighレベル
になると、マイクロプログラムアドレスレジスタ240
3の更新を停止すると共にマイクロ命令レジスタ240
6の出力が全てLowレベルとなる。この時のマイクロ
命令レジスタの固有の値(全てLowレベルである事)
を被制御系にとって見かけ上何もしない状態(いわゆる
No OPeration状態)とする事で、マイクロプログラム記
憶・制御ユニット202を見かけ上停止させることがで
きる。第27図の例はマイクロ命令2(図ではμIR2
で表現)とマイクロ命令3(図ではμIR3で表現)の
各サイクルの間に1クロックサイクル分の停止を与えた
場合(図ではNopと表示)のタイミングを示してい
る。
FIG. 27 shows the timing of each signal when the microprogram storage / control unit 202 is stopped without stopping the basic clocks φ 1 and φ 2 . The signal 24A is the microprogram storage / control unit 20.
2 is a signal that gives a stop to the microprogram address register 240.
3 is stopped and the micro instruction register 240 is stopped.
The outputs of 6 are all at low level. Unique value of the micro instruction register at this time (all must be Low level)
Is a state in which the controlled system apparently does nothing (so-called
By setting the No OPeration state), the microprogram storage / control unit 202 can be apparently stopped. The example of FIG. 27 shows the microinstruction 2 (μIR2 in the figure).
2) and the microinstruction 3 (expressed by μIR3 in the figure) for one clock cycle (indicated as Nop in the figure).

第28図はデコーダユニット203内の演算制御デコー
ダ2030の構成を示したものであり、デコーダコント
ロールラッチ2800、レジスタ制御第1デコーダ28
10、レジスタ制御第2デコーダ2820、演算回路制
御デコーダ2840及び遅延回路2830,2850か
ら成る。レジスタ制御第1デコーダ2810は演算すべ
きデータが格納されているソースレジスタを指定する部
分であり、レジスタ制御第2デコーダ2820は演算結
果を格納するデスティネーションレジスタを指定する部
分であり、演算回路制御デコーダ2840は演算の種類
(加算,減算,論理和,論理積,排他論理和)を指定す
る。演算すべきソースレジスタを読み出して演算を行な
ってから結果を確定するまで1クロックサイクルを必要
とする為、遅延回路2830で信号2801を1クロッ
クサイクル遅延させている。演算回路制御デコーダ28
40の出力信号2841及び2842は使用するタイミ
ングが異なるため、遅延回路2850で信号2842を
遅延させている。
FIG. 28 shows the configuration of the operation control decoder 2030 in the decoder unit 203. The decoder control latch 2800 and the register control first decoder 28 are shown in FIG.
10, a register control second decoder 2820, an arithmetic circuit control decoder 2840, and delay circuits 2830 and 2850. The register control first decoder 2810 is a part that specifies a source register in which data to be calculated is stored, and the register control second decoder 2820 is a part that specifies a destination register in which a calculation result is stored. The decoder 2840 specifies the type of operation (addition, subtraction, logical sum, logical product, exclusive logical sum). Since one clock cycle is required from the reading of the source register to be operated and the operation to the determination of the result, the delay circuit 2830 delays the signal 2801 by one clock cycle. Arithmetic circuit control decoder 28
Since the output signals 2841 and 2842 of 40 use different timings, the delay circuit 2850 delays the signal 2842.

第29図は第28図のデコーダコントロールラッチ28
00、レジスタ制御第1デコーダ2810、レジスタ制
御第2デコーダ2820及び遅延回路2830の構成の
一実施例を示したものである。
FIG. 29 shows the decoder control latch 28 of FIG.
00, the first register control decoder 2810, the second register control decoder 2820, and the delay circuit 2830.

本実施例の最も特徴とする事は、レジスタ制御第1デコ
ーダ2810及びレジスタ制御第2デコーダをAND型
のダイナミックPLAで構成し、該PLAの出力線28
12をPチャネル型MOSトランジスタでプリチャージ
し、プリチャージ期間に出力される信号2812の固有
のレベル(本実施例ではHighレベル)をレジスタの
入出力に対し全て非選択の状態とし、プリチャージ期間
が終了後PLAの論理が成立した信号線2812のみテ
ィチャージを行ないレジスタの入出力信号線2813を
レジスタの選択状態にしている点である。
The most characteristic feature of this embodiment is that the register control first decoder 2810 and the register control second decoder are constituted by AND type dynamic PLA, and the output line 28 of the PLA is formed.
12 is precharged by a P-channel type MOS transistor, and the peculiar level (High level in this embodiment) of the signal 2812 output during the precharge period is set to a non-selected state with respect to the input / output of the register, and the precharge period After completion of the above, only the signal line 2812 for which the logic of PLA is established is charged, and the input / output signal line 2813 of the register is brought into the selected state of the register.

第30図はレジスタ制御第1デコーダ2810の各信号
のタイミングを基本クロックと並置して示してある。デ
コーダコントロールラッチ2800の出力2801が決
定してからレジスタの読み出し制御信号2811が決定
しレジスタの内容が読み出されるまでが1クロックサイ
クルで行なわれている。即ち本実施例によれば、スタテ
ィックPLAに比べて約1/3のハードウェア量で実現
でき、信号線2812の電荷の流出は選択された信号線
のみである為消費電力が小さくなり、従来のスタティッ
クデコーダと同等のレジスタアクセスのタイミングで動
作可能となる。
FIG. 30 shows the timing of each signal of the register control first decoder 2810 alongside the basic clock. It takes one clock cycle from the determination of the output 2801 of the decoder control latch 2800 to the determination of the register read control signal 2811 and the reading of the contents of the register. That is, according to this embodiment, the amount of hardware can be reduced to about 1/3 that of the static PLA, and the outflow of charges from the signal line 2812 is reduced only in the selected signal line. It becomes possible to operate at the same register access timing as the static decoder.

また、前記PLAの出力線の論理和が必要とする場合
は、出力線同志を直結したワイアードオア構成とする事
で論理和が得られる。
When the logical sum of the output lines of the PLA is required, the logical sum can be obtained by forming a wired OR configuration in which the output lines are directly connected.

第31図は演算ユニット204の構成の一例を示したも
ので、データを一時記憶するテンポラリレジスタ310
0、演算結果の状態を格納するステイタスレジスタ31
10、演算回路3120、演算すべきデータを一時記憶
するソースラッチ3130、演算結果を左1ビット或は
右1ビットシフトできるシフト回路3140、演算結果
を一時記憶するデスティネーションラッチ3150、バ
ス213から読み込んだデータを一時記憶するリードデ
ータレジスタ3160、バス213へ出力するデータを
一時記憶するライトデータレジスタ3170から成る。
FIG. 31 shows an example of the configuration of the arithmetic unit 204, which is a temporary register 310 for temporarily storing data.
0, status register 31 that stores the status of the operation result
10, an arithmetic circuit 3120, a source latch 3130 for temporarily storing data to be operated, a shift circuit 3140 for shifting the operation result to the left 1 bit or the right 1 bit, a destination latch 3150 for temporarily storing the operation result, and a read from the bus 213 And a write data register 3170 for temporarily storing the data to be output to the bus 213.

先ず、演算すべきデータの一方をバス31Aを介してソ
ースラッチ3130へ送る。この時、ソースラッチ31
30の内容とリードデータレジスタ3160の内容が演
算回路へ入力され、信号線2823で指定した演算が行
なわれる。演算結果はデスティネーションラッチ315
0で一時記憶され、バス31Bを介して信号2813で
指定されたレジスタへ書き込まれる。一方、演算結果に
従って該結果の符号を示す信号、該結果がゼロであった
事を示す信号、演算結果のキャリー(ボロー)を示す信
号、演算時のオーバーフローを示す信号は全て信号線3
1Cを経てステイタス制御回路3180に入力され、マ
イクロ命令の一部である信号2803で指定された前記
信号の状態をステイタスレジスタ3110に格納する。
First, one of the data to be calculated is sent to the source latch 3130 via the bus 31A. At this time, the source latch 31
The contents of 30 and the contents of the read data register 3160 are input to the arithmetic circuit, and the arithmetic designated by the signal line 2823 is performed. The operation result is the destination latch 315.
It is temporarily stored at 0 and written to the register designated by the signal 2813 via the bus 31B. On the other hand, the signal indicating the sign of the result according to the operation result, the signal indicating that the result was zero, the signal indicating the carry (borrow) of the operation result, and the signal indicating the overflow at the time of operation are all signal line 3
It is input to the status control circuit 3180 via 1C and the state of the signal designated by the signal 2803 which is a part of the microinstruction is stored in the status register 3110.

第32図,第33図及び第34図は第31図に示す演算
ユニット204の各構成要素の詳細回路図の一例を示し
たものである。
32, 33 and 34 show an example of a detailed circuit diagram of each component of the arithmetic unit 204 shown in FIG.

バス31A,31Bは基本クロックφがHighレベ
ルの期間にプリチャージされ、基本クロックφがHi
ghレベルの期間にデータの転送がされる。
The buses 31A and 31B are precharged while the basic clock φ 1 is at the high level, and the basic clock φ 2 is Hi.
Data is transferred during the gh level period.

(1)テンポラリレジスタ3100の1ビット構成 テンポラリレジスタ3100の1ビットの構成は、最下
位ビットで示すと、バス31B−0に接続された書き込
み用ゲート3101−0、ドライブ用ゲート3103−
0、帰還用ゲート3102−0、バス31A−0に接続
された読み出し用ゲート3104−0から成る。テンポ
ラリレジスタの書き込み動作は制御信号3200aをH
ighとすることにより、書き込み用ゲート31B−0
の内容を書き込み用ゲート3101−0を通過して行な
われる。一方、読み出し動作は制御信号3200bをH
ighとすることにより、ドライブ用ゲート3103−
0の出力が読み出し用ゲート3104−0を介して読み
出しバス31A−0に印加される。
(1) 1-bit Configuration of Temporary Register 3100 The 1-bit configuration of the temporary register 3100 is, in terms of the least significant bit, a write gate 3101-0 and a drive gate 3103-connected to the bus 31B-0.
0, a feedback gate 3102-0, and a read gate 3104-0 connected to the bus 31A-0. The write operation of the temporary register sets the control signal 3200a to H level.
By setting to high, the writing gate 31B-0
Is passed through the write gate 3101-0. On the other hand, in the read operation, the control signal 3200b is set to H level.
drive gate 3103-
The output of 0 is applied to the read bus 31A-0 via the read gate 3104-0.

(2)ステイタス制御回路3180及びステイタスレジ
スタ3110 ステイタス制御回路3180はマイクロ命令2803及
び演算結果のステイタス情報31Cを入力とし、ステイ
タスレジスタへ書き込むセット信号3281及び書き込
むべきデータ3282を出力とするPLAである。ステ
イタスレジスタ3110は最下位ビットで示すと、テン
ポラリレジスタ3100の最下位ビットに比べて、入力
ゲート3110−0を付加した構成である。ここで注目
すべき点は、ゲート3110−0を通過してデータ32
82を書き込む動作が演算ユニット204内のバス31
A及び31Bのプリチャージ期間で行なわれている事に
ある。
(2) Status Control Circuit 3180 and Status Register 3110 The status control circuit 3180 is a PLA that receives the microinstruction 2803 and the status information 31C of the operation result, and outputs the set signal 3281 to be written to the status register and the data 3283 to be written. The status register 3110 has a structure in which an input gate 3110-0 is added, as compared with the least significant bit of the temporary register 3100, in terms of the least significant bit. The point to be noted here is that data 32 is passed through the gate 3110-0.
The operation of writing 82 is the bus 31 in the arithmetic unit 204.
It is being done in the precharge period of A and 31B.

(3)ソースラッチ3130 演算データを一時記憶するダイナミックラッチであり、
制御信号2813に従ってデータを反転して入力でき
る。
(3) Source latch 3130 A dynamic latch that temporarily stores operation data,
Data can be inverted and input according to the control signal 2813.

(4)演算回路3120 3本の制御線3321に従って、加算,論理和,論理
積,排他的論理和を得ることができる。
(4) Operation circuit 3120 According to the three control lines 3321, addition, logical sum, logical product, and exclusive logical sum can be obtained.

(5)シフト回路3140 信号線3341に従って左右1ビットのシフトができ
る。信号線3341RをHighにすることで1ビット
の右シフト、信号線3341LをHighにすることで
1ビットの左シフトとなる。
(5) Shift circuit 3140 The left and right 1 bit can be shifted according to the signal line 3341. By setting the signal line 3341R to High, 1-bit right shift is performed, and by setting the signal line 3341L to High, 1-bit left shift is performed.

(6)デスティネーションラッチ3150 シフト回路3140の出力を一時記憶するダイナミック
ラッチである。バス31Bへデータを出力できる唯一の
ソースである。
(6) Destination latch 3150 This is a dynamic latch that temporarily stores the output of the shift circuit 3140. It is the only source that can output data to the bus 31B.

(7)リードデータレジスタ3160及びライトデータ
レジスタ3170 リードデータレジスタ3160はバス213の内容を一
時記憶するもので、その内容は演算回路3120の入力
の一方に成るか或はバス31Aへ転送される。一方、ラ
イトデータレジスタ3170はバ213へ出力するデー
タを一時記憶するもので、その内容は演算結果を経由す
るバス31Bより入力される。
(7) Read Data Register 3160 and Write Data Register 3170 The read data register 3160 temporarily stores the content of the bus 213, and the content is either one of the inputs of the arithmetic circuit 3120 or is transferred to the bus 31A. On the other hand, the write data register 3170 temporarily stores the data to be output to the bus 213, and the content thereof is input from the bus 31B via the operation result.

第34図はバス213が16ビットであり、リードデー
タレジスタ3160及びライトデータレジスタ3170
が32ビットの場合の構成を示したもので、バス213
への入出力を制御する信号236a,236b,236
c,236dは、前記2つのレジスタの入出力を下位1
6ビット、上位16ビットと独立に制御する。
In FIG. 34, the bus 213 has 16 bits, the read data register 3160 and the write data register 3170.
Is a 32-bit configuration, the bus 213
Signals 236a, 236b, 236 for controlling input / output to / from
c and 236d are the lower 1 of the input / output of the two registers.
6 bits and upper 16 bits are controlled independently.

第35図は、少なくとも読み出し操作が可能な主記憶装
置3500を備えたプロセッサ20の一実施例を示すも
のである。
FIG. 35 shows an embodiment of the processor 20 including the main memory 3500 capable of at least read operation.

プロセッサ20のリセット時、端子3530のレベルを
レベル検出・記憶回路3531で検出し、その内容を記
憶する。
When the processor 20 is reset, the level detection / storage circuit 3531 detects the level of the terminal 3530 and stores the content.

動作例を次の2つの場合に分けて説明する。The operation example will be described separately for the following two cases.

(1)レベル検出・記憶回路3531の出力3532が
Lowレベルであった時の動作 メモリアドレスレジスタ1(第35図ではMAR1で表
示)の内容をバス213に転送し、バッファ3520を
介して端子3521に転送する。マルチプレクサ2(図
ではMPX2で表示)3530はバス213の内容を選
択し主記憶装置3500に印加する。バス212の内物
がプロセッサ20外の主記憶装置のアドレスを示してい
る場合は、端子3511より入力されたバス213の内
容をバッファ3510で選択する。一方、バス213の
内容がコンピュータ内の主記憶装置のアドレスを示して
いる場合は、バス3501の内容をバッファ3510で
選択する。バッファ3510はバス212の内容である
アドレスが、プロセッサ20内の主記憶装置3500を
示しているか否かをデコードするデコーダ3560の出
力3561で制御される。バッファ3510の出力35
12はマルチプレクサ1(図ではMPX1で表示)35
40で選択され命令語記憶部301に転送される。
(1) Operation when the output 3532 of the level detection / storage circuit 3531 is at the Low level The content of the memory address register 1 (indicated by MAR1 in FIG. 35) is transferred to the bus 213, and the terminal 3521 is transferred via the buffer 3520. Transfer to. The multiplexer 2 (displayed as MPX2 in the figure) 3530 selects the content of the bus 213 and applies it to the main storage device 3500. When the internal contents of the bus 212 indicate the address of the main storage device outside the processor 20, the contents of the bus 213 input from the terminal 3511 are selected by the buffer 3510. On the other hand, when the content of the bus 213 indicates the address of the main storage device in the computer, the content of the bus 3501 is selected by the buffer 3510. The buffer 3510 is controlled by the output 3561 of the decoder 3560 which decodes whether or not the address, which is the content of the bus 212, indicates the main memory device 3500 in the processor 20. Output 35 of buffer 3510
12 is a multiplexer 1 (indicated by MPX1 in the figure) 35
It is selected at 40 and transferred to the command word storage unit 301.

(i)命令のフェッチ 命令のフェッチはメモリアドレスレジスタ1(MAR
1)に命令アドレスレジスタ(IAR)の内容をセット
し、主記憶装置の読み出しを行なう。
(I) Instruction fetch The instruction fetch is performed in the memory address register 1 (MAR
The contents of the instruction address register (IAR) are set in 1) and the main memory is read.

(ii)データのリード及びライト デーのリード及びライトはデータアドレスレジスタ(D
AR)の内容をメモリアドレスレジスタ1(MAR1)
にセットして、主記憶装置の読み出し及び書き込みを行
なう。この時のデータアドレスレジスタ(DAR)には
演算ユニット204で既に実効アドレス計算されてお
り、その内容がDARにセットされている。
(Ii) Data read and write Data read and write are performed by the data address register (D
AR) contents are stored in memory address register 1 (MAR1)
, And the main memory is read and written. The arithmetic unit 204 has already calculated the effective address in the data address register (DAR) at this time, and the content thereof is set in the DAR.

(2)レベル検出・記憶回路3531の出力3532が
Highレベルであった時の動作 (i)命令のフェッチ メモリアドレスレジスタ2(MAR2)に命令アドレス
レジスタ(IAR)の内容をセットし、バス3502を
介してマルチプレクサ2(MPX2)3550に転送す
るマルチプレクサ2(MPX2)ではバス3502の内
容を選択し、主記憶装置3500に印加する。一方、主
記憶装置3500の出力はバス3501を介してマルチ
プレクサ1(MPX1)で選択され命令語記憶部301
に転送される。
(2) Operation when the output 3532 of the level detection / storage circuit 3531 is at the high level (i) Instruction fetch The contents of the instruction address register (IAR) are set in the memory address register 2 (MAR2), and the bus 3502 is connected. The content of the bus 3502 is selected by the multiplexer 2 (MPX2) which is transferred to the multiplexer 2 (MPX2) 3550 via the multiplexer 2 (MPX2) and applied to the main storage device 3500. On the other hand, the output of the main storage device 3500 is selected by the multiplexer 1 (MPX1) via the bus 3501 and the instruction word storage unit 301
Transferred to.

(ii)データのリード及びライト 既に演算ユニット204で計算されたデータアドレスレ
ジスタ(DAR)内の実効アドレスをメモリアドレスレ
ジスタ1(MAX1)に転送し、バス212を介してバ
ッファ3520に転送する。バッファ3520の内容は
端子3521を介してプロセッサ20外の主記憶装置に
印加される。一方、リード或いはライトすべきデータは
端子3511及びバス213を介してプロセッサ20内
の演算ユニット204とプロセッサ20外の主記憶装
置、或いはバス213に接続されているプロセッサ20
内の主記憶装置との間で授受される。
(Ii) Data Read and Write The effective address in the data address register (DAR) already calculated by the arithmetic unit 204 is transferred to the memory address register 1 (MAX1) and transferred to the buffer 3520 via the bus 212. The contents of the buffer 3520 are applied to the main memory outside the processor 20 via the terminal 3521. On the other hand, data to be read or written, via the terminal 3511 and the bus 213, the arithmetic unit 204 in the processor 20 and the main storage device outside the processor 20, or the processor 20 connected to the bus 213.
It is sent and received to and from the main storage device inside.

即ち、レベル検出・記憶回路3531の出力3522が
Highレベルの場合は、命令のフェッチはプロセッサ
20内に具備された主記憶装置3500から行ない、デ
ータのリード及びライトは主記憶装置3500以外の主
記憶装置と行ない、命令のフェッチとデータのリード及
びライトが同時に行なわれることを特徴としている。従
って本実施例によれば、命令のフェッチとデータのリー
ド及びライトが同時に行なうことが可能となるため、命
令語の処理時間が短縮される。
That is, when the output 3522 of the level detection / storage circuit 3531 is at the high level, the instruction fetch is performed from the main storage device 3500 included in the processor 20, and the reading and writing of data is performed by the main storage device other than the main storage device 3500. It is characterized in that it operates with a device, and fetches instructions and reads and writes data at the same time. Therefore, according to the present embodiment, the instruction fetch and the data read / write can be performed at the same time, so that the instruction word processing time is shortened.

第36図はメモリをアクセスするサイクル(命令フェッ
チサイクル、データリードサイクル、データライトサイ
クルを指す)を可変とするプロセッサ20の一実施例を
示すものである。
FIG. 36 shows an embodiment of the processor 20 in which the memory access cycle (instruction fetch cycle, data read cycle, data write cycle) is variable.

命令で読み出し及び書き込み操作のできるレジスタ36
00の内容に従ってメモリのアクセスサイクルを可変に
している。第37図はレジスタ3600内の値に従って
メモリのアクセスサイクルを変化させた例を示す。第3
7図の(a)で示すレジスタ値0の場合に最も高速なメ
モリのアクセスを行なう。従ってこの場合に適合したマ
イクロプログラム記憶・制御ユニット202を構成する
ことで、レジスタ値が1の場合はメモリアクセス制御回
路より信号24Aにマイクロプログラム記憶・制御ユニ
ット202へ1クロックサイクル分の停止を行ないメモ
リアクセスが3クロックを実現できる。
Register 36 that can be read and written by instructions
The access cycle of the memory is made variable according to the contents of 00. FIG. 37 shows an example in which the memory access cycle is changed according to the value in the register 3600. Third
When the register value is 0 as shown in FIG. 7A, the fastest memory access is performed. Therefore, by configuring the microprogram storage / control unit 202 adapted to this case, when the register value is 1, the memory access control circuit stops the microprogram storage / control unit 202 for the signal 24A for one clock cycle. Memory access can realize 3 clocks.

即ち、本実施例によればプロセッサ20と組み合わせて
使用される主記憶装置のアクセスのサイクルを、命令で
レジスタの値を指定することで変えることができ、使用
する主記憶装置が変わりそのアクセスサイクルが変わっ
ても、プロセッサ20外に余分な制御回路を付加するこ
となく適応できる。
That is, according to this embodiment, the access cycle of the main memory used in combination with the processor 20 can be changed by designating the value of the register by the instruction, and the main memory used changes its access cycle. Even if the value changes, it can be adapted without adding an extra control circuit outside the processor 20.

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

本発明によれば、処理する命令語の命令形式が変わって
も、命令語記憶・変換ユニットを除く、プロセッサ内の
全てのハードウェアを変更、追加することなく対応で
き、命令語を解読するハードウエア規模が、従来の命令
デコーダ方式の1/5〜1/10で実現できる。
According to the present invention, even if the instruction format of an instruction word to be processed is changed, it is possible to deal with it without changing or adding all the hardware in the processor except the instruction word storage / conversion unit, and the hardware for decoding the instruction word can be handled. The wear scale can be realized by 1/5 to 1/10 of the conventional instruction decoder system.

更に本発明の他の特徴によれば、少なくとも2種類以上
の命令形式を持つ命令語を処理することができる。
Further, according to another feature of the present invention, it is possible to process an instruction word having at least two types of instruction formats.

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

第1図は本発明の一実施例を示すプロセッサの構成図、
第2図は本発明の一実施例を示すシングルチップマイコ
ンの構成図、第3図から第23図は本発明の実施例を示
す命令語記憶・変換ユニットの構成図、第24図から第
27図はマイクロプログラム記憶・制御ユニットの構成
図の一例を示す図、第28図から第30図はデコーダユ
ニットの構成の一例を示す図、第31図から第34図は
演算ユニットの構成の一例を示す図、第35図から第3
7図はメモリのアクセスに関する説明図である。 20……プロセッサ、201……命令語記憶・変換ユニ
ット、202……マイクロプログラム記憶・変換ユニッ
ト、203……デコーダユニット、204……演算ユニ
ット、205……バスインタフェースユニット。
FIG. 1 is a block diagram of a processor showing an embodiment of the present invention,
FIG. 2 is a block diagram of a single chip microcomputer showing an embodiment of the present invention, FIGS. 3 to 23 are block diagrams of an instruction word storing / converting unit showing an embodiment of the present invention, and FIGS. 24 to 27. The figure shows an example of the configuration of the microprogram storage / control unit, FIGS. 28 to 30 show an example of the configuration of the decoder unit, and FIGS. 31 to 34 show an example of the configuration of the arithmetic unit. Figure, Figures 35 to 3
FIG. 7 is an explanatory diagram relating to memory access. 20 ... Processor, 201 ... Command word storage / conversion unit, 202 ... Microprogram storage / conversion unit, 203 ... Decoder unit, 204 ... Arithmetic unit, 205 ... Bus interface unit.

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】実行されるべきオペレーションを指定する
オペレーション情報を含む命令語の少なくとも一つは、
オペランドを含む主記憶装置の位置を識別するオペラン
ド指定情報を少なくとも1つ含んでいる命令語であっ
て、前記命令語に応答してオペランドを処理するデータ
処理装置において、 相続き入力される命令語を通常順次検索して記憶できる
命令語記憶手段と、 前記命令語記憶手段に接続されており、命令語に含まれ
ているオペレーション情報とオペランド指定情報の位置
を検出して、オペレーション情報及びオペランド指定情
報を独立に抽出できる命令解読手段と、 前記命令語記憶手段に接続されており、オペレーション
情報及びオペランド指定情報が格納されるビット位置が
あらかじめ定められている記憶部とを備えており、 前記命令語に含まれるオペレーション情報とオペランド
指定情報を抽出し、前記記憶部の定められたビット位置
に配列し直して格納して、該記憶部の内容に従って処理
を行なう事を特徴とするデータ処理装置。
1. At least one of the command words including operation information designating an operation to be executed,
An instruction word including at least one operand designation information for identifying the position of the main storage device including the operand, the instruction word being successively input in a data processing device which processes the operand in response to the instruction word. And an instruction word storage unit that is connected to the instruction word storage unit and detects the positions of the operation information and operand designation information included in the instruction word to specify the operation information and the operand designation. The instruction decoding means capable of independently extracting information, and a storage portion connected to the instruction word storage means and having a predetermined bit position for storing operation information and operand designation information are provided. The operation information and the operand designation information included in the word are extracted, and the defined bit position of the storage unit is extracted. A data processing device, characterized in that the data is re-arranged in a storage unit and stored, and processing is performed according to the contents of the storage unit.
【請求項2】特許請求の範囲第1項記載のデータ処理装
置において、前記命令語が、命令の機能が同じでも命令
を表現する2進コードが異なる少なくとも2種類の命令
形式を持つ命令語で表現され、前記少なくとも2種類の
命令形式を持つ命令語に応答してオペランドを処理する
場合には、 前記命令解読手段として、前記命令語に含まれているオ
ペレーション情報とオペランド指定情報の位置を検出し
て、オペレーション情報及びオペランド指定情報を独立
に抽出し、かつ前記主記憶装置内の命令語の複数の命令
形式に対応した複数個の前記命令解読手段を備え、さら
に 前記複数個の命令解読手段のいずれか1つの出力を選択
するマルチプレクサと、 前記マルチプレクサを制御する制御手段とを備えてお
り、 前記主記憶装置から読み出された少なくとも2種類の命
令形式を持つ命令語に対応して処理を行なう事を特徴と
するデータ処理装置。
2. The data processing device according to claim 1, wherein the instruction word is an instruction word having at least two instruction formats having different binary codes expressing the instruction even though the instruction functions are the same. When the operand is processed in response to an instruction word expressed and having the at least two types of instruction formats, the instruction decoding means detects the position of the operation information and the operand designation information included in the instruction word. The operation information and the operand designation information are independently extracted, and the plurality of instruction decoding means corresponding to the plurality of instruction formats of the instruction word in the main memory are provided, and the plurality of instruction decoding means are further provided. A multiplexer for selecting any one of the outputs and a control unit for controlling the multiplexer. A data processing device, characterized in that processing is performed corresponding to an instruction word having at least two types of instruction formats.
【請求項3】特許請求の範囲第1項記載のデータ処理装
置において、前記命令語が、命令の機能が同じでも命令
を表現する2進コードが異なる少なくとも2種類の命令
形式を持つ命令語で表現され、前記少なくとも2種類の
命令形式を持つ命令語に応答してオペランドを処理する
場合には、 前記命令語記憶手段として、前記主記憶装置から相続き
入力される命令語を通常順次検索して記憶し、かつ前記
主記憶装置内の命令語の複数の命令形式に対応した複数
個の前記命令語記憶手段を備え、さらに 前記主記憶装置から読み出した命令語に含まれるオペレ
ーション情報とオペランド指定情報を前記記憶部の定め
られたビット位置に格納するため抽出し配列し直した情
報を転送する第1のバスと、 前記記憶部と主記憶装置を結ぶ第2のバスと、 前記第1のバスか前記第2のバスのいずれか一方を選択
できるマルチプレクサと、 前記マルチプレクサを制御できる制御手段とを備えてお
り、 前記主記憶装置から読み出された少なくとも2種類の命
令形式を持つ命令語に対応して処理を行なう事を特徴と
するデータ処理装置。
3. The data processing device according to claim 1, wherein the instruction word is an instruction word having at least two instruction formats having different binary codes expressing the instruction even though the function of the instruction is the same. In the case of processing the operand in response to the instruction word expressed and having the at least two types of instruction formats, the instruction word storage means normally retrieves the instruction words successively input from the main storage device. And a plurality of instruction word storage means corresponding to a plurality of instruction formats of instruction words in the main storage device, and further, operation information and operand designation included in the instruction word read from the main storage device. A first bus for transferring the information extracted and rearranged for storing the information in a predetermined bit position of the storage unit; a second bus connecting the storage unit and the main storage device; A multiplexer that can select either the first bus or the second bus and a control unit that can control the multiplexer are provided, and at least two types of instruction formats read from the main storage device are provided. A data processing device characterized by performing processing corresponding to a command word that it has.
【請求項4】特許請求の範囲第2または3項記載のデー
タ処理装置において、前記マルチプレクサを制御する制
御手段は、前記主記憶装置内の命令あるいは他から与え
られた命令を実行することで、該制御手段を制御できる
事を特徴とするデータ処理装置。
4. The data processing device according to claim 2 or 3, wherein the control means for controlling the multiplexer executes an instruction in the main memory or an instruction given from another, A data processing device capable of controlling the control means.
【請求項5】特許請求の範囲第1項記載のデータ処理装
置において、前記命令解読手段は、 あらかじめ定めておいた情報と命令コードとを照合しそ
の一致を検出できるコード照合手段と、 前記コード照合手段の結果を受けて、命令コードの全て
あるいは一部の配列を変える為の配列情報が定義できる
コード再配列情報記憶手段と、 前記コード再配列情報記憶手段に接続され、前記配列情
報に従って命令コードを配列し直す再配列手段とから構
成され、 前記命令コードに対応した再配列手段の結果をマイクロ
プログラムメモリのアドレスとしたことを特徴とするデ
ータ処理装置。
5. The data processing device according to claim 1, wherein the instruction decoding means collates predetermined information with an instruction code and detects the coincidence, and the code. A code rearrangement information storage means capable of defining arrangement information for changing the arrangement of all or part of the instruction code in response to the result of the collating means, and an instruction according to the arrangement information connected to the code rearrangement information storage means And a rearrangement means for rearranging codes, wherein a result of the rearrangement means corresponding to the instruction code is used as an address of a microprogram memory.
【請求項6】特許請求の範囲第5項記載のデータ処理装
置において、前記コード照合手段かコード再配列情報記
憶手段の少なくとも一方が、プログラム可能な記憶素子
(Programmable Logic Array)で構成されている事を特
徴とするデータ処理装置。
6. A data processing apparatus according to claim 5, wherein at least one of the code collating means and the code rearrangement information storing means is composed of a programmable storage element (Programmable Logic Array). A data processing device that features things.
【請求項7】特許請求の範囲第5項記載のデータ処理装
置において、前記コード照合手段は、随時読み出し及び
書き込みが可能な記憶素子(Random Access Memory)で
記憶素子の内容とデータ線の内容の一致が検出できるメ
モリセルで構成した事を特徴とするデータ処理装置。
7. The data processing device according to claim 5, wherein the code collating means is a storage element (Random Access Memory) capable of being read and written at any time, and stores the content of the storage element and the content of the data line. A data processing device comprising a memory cell capable of detecting a match.
【請求項8】特許請求の範囲第1項記載のデータ処理装
置において、前記命令語記憶手段は、 前記命令語を記憶するメモリ部と、 前記メモリ部に対するデータの読み出し及び書き込みを
制御する制御部とから成り、 1回の書き込み操作で取り扱うデータ長の半分のデータ
長を読み出す事ができる事を特徴とするデータ処理装
置。
8. The data processing device according to claim 1, wherein the instruction word storage unit includes a memory unit that stores the instruction word, and a control unit that controls reading and writing of data with respect to the memory unit. And a data processing device characterized by being capable of reading out a data length that is half the data length handled in one write operation.
【請求項9】特許請求の範囲第8項記載のデータ処理装
置において、前記メモリ部を制御する制御部を、プログ
ラム可能な記憶素子(Programmable Logic Array)で構
成した事を特徴とするデータ処理装置。
9. The data processing device according to claim 8, wherein the control unit for controlling the memory unit is composed of a programmable storage element (Programmable Logic Array). .
【請求項10】特許請求の範囲第1、2、3、5または
8項記載のデータ処理装置において、前記命令及びオペ
ランドを記憶する主記憶装置と、前記データ処理装置と
が1チップの半導体基板上に構成されていることを特徴
とするデータ処理装置。
10. A data processor according to claim 1, 2, 3, 5 or 8, wherein a main memory for storing said instruction and operand and said data processor are one-chip semiconductor substrates. A data processing device configured as described above.
JP60072646A 1985-04-08 1985-04-08 Data processing device Expired - Lifetime JPH0658629B2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP60072646A JPH0658629B2 (en) 1985-04-08 1985-04-08 Data processing device
DE3650602T DE3650602T2 (en) 1985-04-08 1986-04-08 Data processing system
EP86104747A EP0199173B1 (en) 1985-04-08 1986-04-08 Data processing system
DE3689595T DE3689595T2 (en) 1985-04-08 1986-04-08 Data processing system.
EP91120043A EP0476722B1 (en) 1985-04-08 1986-04-08 Data processing system
KR1019860002654A KR900003591B1 (en) 1985-04-08 1986-04-08 Data processor devices
US07/951,772 US5455955A (en) 1985-04-08 1992-09-28 Data processing system with device for arranging instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60072646A JPH0658629B2 (en) 1985-04-08 1985-04-08 Data processing device

Publications (2)

Publication Number Publication Date
JPS61231632A JPS61231632A (en) 1986-10-15
JPH0658629B2 true JPH0658629B2 (en) 1994-08-03

Family

ID=13495356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60072646A Expired - Lifetime JPH0658629B2 (en) 1985-04-08 1985-04-08 Data processing device

Country Status (1)

Country Link
JP (1) JPH0658629B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100484247B1 (en) * 2000-12-28 2005-04-20 매그나칩 반도체 유한회사 An instruction decoder for a RCI MCU

Also Published As

Publication number Publication date
JPS61231632A (en) 1986-10-15

Similar Documents

Publication Publication Date Title
US4878174A (en) Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions
US5455955A (en) Data processing system with device for arranging instructions
US5574942A (en) Hybrid execution unit for complex microprocessor
KR100346515B1 (en) Temporary pipeline register file for a superpipe lined superscalar processor
KR100462951B1 (en) Eight-bit microcontroller having a risc architecture
NZ201809A (en) Microprocessor
US4347566A (en) Data processor with register file and arithmetic logic circuit on one chip and register means directly connected to the chip
JP2001504959A (en) 8-bit microcontroller with RISC architecture
US6012138A (en) Dynamically variable length CPU pipeline for efficiently executing two instruction sets
GB2402764A (en) Instruction endcoding within a data processing apparatus having multiple instruction sets
US20030033503A1 (en) Single instruction having opcode and stack control field
US5034879A (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
JPS623461B2 (en)
JP2690406B2 (en) Processor and data processing system
US4975837A (en) Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets
US6564312B1 (en) Data processor comprising an arithmetic logic unit
JP2567134B2 (en) Bit field logical operation processing device and monolithic microprocessor having the same
KR920002573B1 (en) Data processor
JPH0658629B2 (en) Data processing device
KR100278136B1 (en) Data processing device and data processing method
JPH03204030A (en) Processor for computor
US5187782A (en) Data processing system
JP2861560B2 (en) Data processing device
EP0305752A2 (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
JPH0222413B2 (en)