JPH07248919A - Data processor - Google Patents
Data processorInfo
- Publication number
- JPH07248919A JPH07248919A JP6040003A JP4000394A JPH07248919A JP H07248919 A JPH07248919 A JP H07248919A JP 6040003 A JP6040003 A JP 6040003A JP 4000394 A JP4000394 A JP 4000394A JP H07248919 A JPH07248919 A JP H07248919A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- data
- data processing
- storage unit
- 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.)
- Withdrawn
Links
Landscapes
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】(目次) 産業上の利用分野 従来の技術(図8〜図10) 発明が解決しようとする課題(図8,図10) 課題を解決するための手段(図1〜図4) 作用(図1〜図4) 実施例 (a)第1実施例の説明(図5,図6) (b)第2実施例の説明(図7) 発明の効果(Table of Contents) Industrial Application Field of the Prior Art (FIGS. 8 to 10) Problems to be Solved by the Invention (FIGS. 8 and 10) Means for Solving the Problems (FIGS. 1 to 4) (FIGS. 1 to 4) Embodiment (a) Description of the first embodiment (FIGS. 5 and 6) (b) Description of the second embodiment (FIG. 7)
【0002】[0002]
【産業上の利用分野】本発明は、共通の主記憶部から同
一データを読み出し同一処理動作を行なうデータ処理部
(マイクロプロセッサ,CPU)を複数そなえるととも
に、各データ処理部に、主記憶部から読み出されたデー
タ(命令コード,オペランド)を一時的に格納するバッ
ファ記憶部(以下、キャッシュという)をそなえてなる
データ処理装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention is provided with a plurality of data processing units (microprocessors, CPUs) for reading the same data from a common main storage unit and performing the same processing operation. The present invention relates to a data processing device including a buffer storage unit (hereinafter, referred to as a cache) that temporarily stores read data (instruction code, operand).
【0003】[0003]
【従来の技術】近年、コンピュータシステムの高信頼性
が要求されることから、同一動作を行なうマイクロプロ
セッサを複数個搭載して多重化したコンピュータ装置
(データ処理装置)が開発されている。このようなコン
ピュータ装置では、例えば、図8に示すように、複数の
CPU(データ処理部)1が、メモリ制御部(以下、M
CUという)2を介して共通のメモリ〔主記憶部(MS
U)〕3に接続され、各CPU1は、MCU2を介して
メモリ3から同一データを読み出し、同一処理動作を行
なっている。なお、図8中、4はメモリ3に対して外部
からアクセスすための入出力部(I/O)である。2. Description of the Related Art In recent years, a computer system (data processing device) has been developed in which a plurality of microprocessors performing the same operation are mounted and multiplexed, because a high reliability of a computer system is required. In such a computer device, for example, as shown in FIG. 8, a plurality of CPUs (data processing units) 1 are connected to a memory control unit (hereinafter referred to as M
Common memory [main memory (MS
U)] 3, each CPU 1 reads the same data from the memory 3 via the MCU 2 and performs the same processing operation. In FIG. 8, reference numeral 4 is an input / output unit (I / O) for externally accessing the memory 3.
【0004】そして、上述のようなコンピュータ装置に
おいて用いられるCPU1は、例えば図9に示すよう
に、命令実行部10,命令キャッシュ/TLB(Transl
ationLookaside Buffer;変換索引バッファ)部11お
よびオペランドキャッシュ/TLB部12を有して構成
されている。ここで、命令実行部10は、メモリ3に対
し、メモリ制御部2を介してアクセスすることにより、
メモリ3から所定の命令コードおよびオペランドを読み
出し、その命令コードおよびオペランドに基づいて所定
の命令処理を実行するものである。The CPU 1 used in the computer device as described above includes an instruction execution unit 10, an instruction cache / TLB (Transl), as shown in FIG. 9, for example.
ationLookaside Buffer; conversion index buffer) section 11 and operand cache / TLB section 12. Here, the instruction execution unit 10 accesses the memory 3 via the memory control unit 2,
A predetermined instruction code and operand are read from the memory 3 and predetermined instruction processing is executed based on the instruction code and operand.
【0005】また、命令キャッシュ/TLB部11およ
びオペランドキャッシュ/TLB部12は、CPU1に
おける命令実行部10とメモリ3との間に設けられるも
ので、メモリ3よりも小容量であるが高速処理が可能で
あり、命令実行部10とメモリ3との間の処理速度差を
緩和する機能を有している。つまり、命令実行部10に
おいてメモリ3から読み出されて使用されたデータは、
読出後、再度使用される可能性が高いことから、命令キ
ャッシュ/TLB部11およびオペランドキャッシュ/
TLB部12は、それぞれ、命令実行部10からのアク
セス要求によりメモリ3から読み出された命令コードお
よびオペランドを一時的に格納しておくように構成され
ている。The instruction cache / TLB unit 11 and the operand cache / TLB unit 12 are provided between the instruction execution unit 10 and the memory 3 in the CPU 1 and have a smaller capacity than the memory 3, but high speed processing. It is possible and has a function of reducing the difference in processing speed between the instruction execution unit 10 and the memory 3. That is, the data read from the memory 3 and used by the instruction execution unit 10 is
Since it is likely to be used again after reading, the instruction cache / TLB unit 11 and the operand cache /
Each of the TLB units 12 is configured to temporarily store an instruction code and an operand read from the memory 3 in response to an access request from the instruction execution unit 10.
【0006】そして、命令キャッシュ/TLB部11
は、命令アドレスレジスタ35,命令キャッシュ(バッ
ファ記憶部)36,TLB37,レジスタ38,タグ比
較部39,セレクタ40,バイパス線41,キャッシュ
制御部42および命令レジスタ43を含んで構成されて
いる。なお、図9において、オペランドキャッシュ/T
LB部12は、命令キャッシュ/TLB部11とほぼ同
様に構成されているので、その詳細な構成の図示は省略
されている。The instruction cache / TLB unit 11
Is composed of an instruction address register 35, an instruction cache (buffer storage unit) 36, a TLB 37, a register 38, a tag comparison unit 39, a selector 40, a bypass line 41, a cache control unit 42 and an instruction register 43. In FIG. 9, operand cache / T
Since the LB unit 12 is configured almost the same as the instruction cache / TLB unit 11, its detailed configuration is not shown.
【0007】命令アドレスレジスタ35は、後述する命
令フェッチ要求により命令実行部10から出力されたフ
ェッチ要求アドレスを格納するものであり、命令キャッ
シュ36は、最近、メモリ3から読み出されたデータ
(命令コード)を、そのアドレスの一部(物理アドレ
ス)をキーとしてエントリに一時的に格納するもので、
キャッシュデータ部36A,キャッシュディレクトリ部
36Bおよびレジスタ36Cから構成されている。The instruction address register 35 stores a fetch request address output from the instruction execution unit 10 in response to an instruction fetch request to be described later, and the instruction cache 36 stores data (instruction) recently read from the memory 3. Code) that temporarily stores a part of the address (physical address) as a key in the entry.
It comprises a cache data section 36A, a cache directory section 36B and a register 36C.
【0008】キャッシュデータ部36Aは、前記キーに
応じてデータ(命令コード)格納するものである。キャ
ッシュディレクトリ部36Bは、前記キーに応じて、そ
のデータ(命令コード)のアドレスの他の一部(物理ア
ドレス,PTAG)を格納するとともに、そのデータ
(命令コード)の有効/無効を示す情報Valid(有
効である場合に“1”となり無効である場合に“0”)
を格納するものである。レジスタ36Cは、キャッシュ
ディレクトリ部36Bから読み出されたデータ(PTA
GおよびValid)を一旦格納するものである。The cache data section 36A stores data (instruction code) according to the key. The cache directory unit 36B stores another part (physical address, PTAG) of the address of the data (instruction code) in accordance with the key, and information Valid indicating whether the data (instruction code) is valid or invalid. (“1” if valid, “0” if invalid)
Is stored. The register 36C stores data (PTA) read from the cache directory unit 36B.
G and Valid) are temporarily stored.
【0009】そして、命令アドレスレジスタ35に命令
実行部10からのアドレスが格納されると、命令キャッ
シュ36は、そのアドレスのキー(物理アドレス)に対
応する部分に基づいて検索を行ない、そのキーに対応す
るデータ(命令コード)が存在する場合には、キャッシ
ュデータ部36Aからそのデータ(命令コード)を読み
出して、後述するセレクタ41を介して命令レジスタ4
3に格納すると同時に、キャッシュディレクトリ36B
からPTAGおよびValidを読み出してレジスタ3
6Cに格納するようになっている。When the address from the instruction execution unit 10 is stored in the instruction address register 35, the instruction cache 36 performs a search based on the portion of the address corresponding to the key (physical address), and the key is searched. If the corresponding data (instruction code) exists, the data (instruction code) is read from the cache data unit 36A and the instruction register 4 is read via the selector 41 described later.
Cache directory 36B
Read PTAG and Valid from register 3
It is designed to be stored in 6C.
【0010】TLB37は、動的アドレス変換を行なう
ためのもので、最近、読み出されたデータ(命令コー
ド)のアドレスについて、論理アドレス(LTAG)と
物理アドレス(PTAG)との変換対を、そのアドレス
の一部をキーとして一時的に格納するものであり、レジ
スタ38は、TLB37から読み出されたデータ(LT
AGおよびPTAG)を一旦格納するものである。The TLB 37 is for performing dynamic address translation. For the address of the data (instruction code) read recently, the translation pair of the logical address (LTAG) and the physical address (PTAG) is used. A part of the address is temporarily stored as a key, and the register 38 stores the data (LT) read from the TLB 37.
AG and PTAG) are temporarily stored.
【0011】そして、命令キャッシュ36と同様、命令
アドレスレジスタ35に命令実行部10からのアドレス
が格納されると、TLB37は、そのアドレスのキーに
対応する部分に基づいて検索を行ない、そのキーに対応
する変換対が存在する場合には、その変換対を読み出し
てレジスタ38に格納するようになっている。タグ比較
部39は、命令キャッシュ36のレジスタ36Cに読み
出されたValidが“1”である場合(つまりアドレ
スの一部をキーとして得られるデータが有効である場
合)に動作し、命令アドレスレジスタ35に格納されて
いるアドレスに対応するデータ(命令コード)が、実際
にキャッシュデータ部36Aに格納されているか否か
(キャッシュヒットかキャッシュミスヒットか)を判定
するものである。Then, like the instruction cache 36, when the address from the instruction execution unit 10 is stored in the instruction address register 35, the TLB 37 performs a search based on the portion of the address corresponding to the key, and the key is stored in the key. When the corresponding conversion pair exists, the conversion pair is read out and stored in the register 38. The tag comparison unit 39 operates when the Valid read in the register 36C of the instruction cache 36 is "1" (that is, when the data obtained using a part of the address as a key is valid), and the instruction address register It is determined whether or not the data (instruction code) corresponding to the address stored in 35 is actually stored in the cache data unit 36A (whether cache hit or cache miss hit).
【0012】このタグ比較部39は、2つの比較器39
A,39BとAND回路39Cとから構成されている。
ここで、比較器39Aは、命令アドレスレジスタ35に
格納されているアドレスの一部(論理アドレス)と、T
LB37から読み出されレジスタ38に格納されている
LTAGとを比較し、一致する場合に“0”から“1”
に立ち上がる信号を出力するものである。The tag comparison unit 39 has two comparators 39.
It is composed of A and 39B and an AND circuit 39C.
Here, the comparator 39A uses a part of the address (logical address) stored in the instruction address register 35 and T
The LTAG read from the LB 37 and stored in the register 38 is compared, and if they match, “0” to “1”
It outputs a signal to rise.
【0013】また、比較器39Bは、TLB37から読
み出されレジスタ38に格納されているPTAGと、キ
ャッシュディレクトリ部36Bから読み出されレジスタ
36Cに格納されているPTAGとを比較し、一致する
場合に“0”から“1”に立ち上がる信号を出力するも
のである。そして、AND回路39Cは、比較器39A
からの信号と比較器39Bからの信号との論理積をとっ
て、その論理積結果をキャッシュヒット/ミスヒット
(HIT/MISS)信号として出力するものである。Further, the comparator 39B compares the PTAG read from the TLB 37 and stored in the register 38 with the PTAG read from the cache directory unit 36B and stored in the register 36C. A signal that rises from "0" to "1" is output. Then, the AND circuit 39C is connected to the comparator 39A.
AND the signal from the comparator 39B, and outputs the logical product result as a cache hit / miss hit (HIT / MISS) signal.
【0014】セレクタ40は、後述のキャッシュ制御部
42により切換制御されることで、命令キャッシュ36
のキャッシュデータ部36Aから読み出されたデータ
(命令コード)と、命令アドレスレジスタ35のアドレ
スについてメモリ3から読み出されバイパス線(命令キ
ャッシュを迂回する線)41を通して入力されるデータ
(命令コード)とのいずれか一方を選択して、命令レジ
スタ43へ出力するものである。そして、命令レジスタ
43は、セレクタ40からのデータ(命令コード)を一
旦格納するものである。The selector 40 is switch-controlled by a cache control unit 42, which will be described later, so that the instruction cache 36 can be controlled.
Data (instruction code) read from the cache data unit 36A of the same, and data (instruction code) read from the memory 3 for the address of the instruction address register 35 and input through the bypass line (line bypassing the instruction cache) 41. One of the two is selected and output to the instruction register 43. The instruction register 43 temporarily stores the data (instruction code) from the selector 40.
【0015】キャッシュ制御部42は、命令キャッシュ
36およびセレクタ40の動作を制御するものである。
このキャッシュ制御部42は、セレクタ40を、通常は
命令キャッシュ36のキャッシュデータ部36Aからの
データを選択するように切り換えておき、タグ比較部3
9からキャッシュミスヒット(MISS)信号が出力さ
れた場合、および、CPU1における内部キャッシュを
使用しないモード設定になっている場合(後述するNI
Cフラグにより設定されるモード)には、セレクタ40
に対するバイパスセレクト信号を“0”から“1”に立
ち上げることにより、バイパス線41(メモリ3)から
のデータを選択するように切り換えるものである。The cache controller 42 controls the operations of the instruction cache 36 and the selector 40.
The cache control unit 42 switches the selector 40 so as to normally select the data from the cache data unit 36A of the instruction cache 36, and the tag comparison unit 3
When a cache miss hit (MISS) signal is output from the CPU 9, and when the mode setting is such that the internal cache is not used in the CPU 1 (NI described later)
The mode set by the C flag) includes selector 40
By raising the bypass select signal for the signal from "0" to "1", it is switched to select the data from the bypass line 41 (memory 3).
【0016】また、キャッシュ制御部42は、タグ比較
部39からキャッシュミスヒット(MISS)信号が出
力された場合には、メモリ3から読み出されたデータ
(命令コード)を命令キャッシュ36のキャッシュデー
タ部36Aに書き込むとともに、そのデータ(命令コー
ド)に対応するディレクトリ情報を命令キャッシュ36
のキャッシュディレクトリ部36Bに書き込む機能も有
している。Further, the cache control unit 42 uses the data (instruction code) read from the memory 3 as the cache data of the instruction cache 36 when the cache mishit (MISS) signal is output from the tag comparison unit 39. The directory information corresponding to the data (instruction code) is written in the unit 36A and the instruction cache 36
It also has a function of writing to the cache directory unit 36B of the.
【0017】なお、セレクタ40,バイパス線41およ
びキャッシュ制御部42により、バイパス転送部(後述
する図2〜図4の符号56参照)が構成されている。つ
まり、バイパス転送部は、後述するNICフラグにより
命令キャッシュ36の不使用モードが設定された場合、
または、自CPU1所望の命令コードが命令キャッシュ
36のキャッシュデータ部36Aに格納されていない場
合(キャッシュミスヒットの場合)には、当該命令コー
ドをメモリ3から読み出し命令キャッシュ36をバイパ
スして転送するものである。The selector 40, the bypass line 41, and the cache control unit 42 constitute a bypass transfer unit (see reference numeral 56 in FIGS. 2 to 4 described later). That is, when the unused mode of the instruction cache 36 is set by the NIC flag described later, the bypass transfer unit
Alternatively, when the instruction code desired by the own CPU 1 is not stored in the cache data unit 36A of the instruction cache 36 (in the case of a cache miss), the instruction code is read from the memory 3 and transferred by bypassing the instruction cache 36. It is a thing.
【0018】一方、命令実行部10は、機能的には図9
に示すように構成されている。即ち、命令実行部10
は、デコーダ15,汎用レジスタ〔以下、GR(Genera
l Register)という〕読出部16,ALU(Atithmetic
Logic Unit)17,GR書込部18,レジスタ19〜2
1,PC(Program Counter)22,TADR(Target A
dder)23,PFPC(Pre-Fetch Program Counter)2
4,分岐制御部25,出力部26,27,NOT回路2
8およびAND回路29を含んで構成されている。On the other hand, the instruction executing section 10 is functionally shown in FIG.
It is configured as shown in. That is, the instruction execution unit 10
Is a decoder 15, a general-purpose register [hereinafter, GR (Genera
read register 16, ALU (Atithmetic)
Logic Unit) 17, GR writing unit 18, registers 19-2
1, PC (Program Counter) 22, TADR (Target A
dder) 23, PFPC (Pre-Fetch Program Counter) 2
4, branch control unit 25, output units 26 and 27, NOT circuit 2
8 and an AND circuit 29.
【0019】デコーダ15は、命令キャッシュ/TLB
部11を介して入力される命令コードを解読してレジス
タ19に格納するものであり、GR読出部16は、命令
キャッシュ/TLB部11を介して入力される命令コー
ドに応じてその命令に対応する処理に必要なデータ(オ
ペランド等)をGR(図示せず)から読み出してレジス
タ20に格納するものである。The decoder 15 has an instruction cache / TLB.
An instruction code input via the unit 11 is decoded and stored in the register 19. The GR read unit 16 responds to the instruction according to the instruction code input via the instruction cache / TLB unit 11. The data (operands, etc.) necessary for the processing to be performed is read from GR (not shown) and stored in the register 20.
【0020】ALU17は、レジスタ20に格納された
データに対して、レジスタ19に格納されたデコーダ1
5による命令コードのデコード結果に応じた所定の論理
演算処理を施してレジスタ21に格納するものであり、
GR書込部18は、レジスタ21に格納されたALU1
7による処理結果をGRに書き込むものである。PC2
2は、図10により後述するDステージの処理に際して
用いられるプログラムカウンタであり、TADR23お
よびPFPC24は、Dステージ処理中に次に必要とさ
れるデータを先読み(予測アクセス)すべく、その次の
データのアドレスを予測・生成するためのものである。The ALU 17 is provided for the decoder 1 stored in the register 19 with respect to the data stored in the register 20.
5 performs predetermined logical operation processing according to the result of decoding the instruction code by 5 and stores it in the register 21.
The GR writing unit 18 uses the ALU1 stored in the register 21.
The processing result of 7 is written in GR. PC2
Reference numeral 2 denotes a program counter used in the processing of the D stage, which will be described later with reference to FIG. 10, and the TADR 23 and the PFPC 24 read the next data in order to read ahead (predictive access) the data required next during the D stage processing. It is for predicting and generating the address of.
【0021】つまり、TADR23は、現在、Dステー
ジでデコード中の命令コードが条件付き分岐命令やサブ
ルーチンコール命令などの飛び越しを行なうものである
場合に、PC22による現在のカウント値に、命令コー
ドで与えられるオフセットを加算し、その加算値を、次
に読み出すべきデータのアドレスとして出力(分岐命令
フェッチ要求)するものである。That is, the TADR 23 gives an instruction code to the current count value by the PC 22 when the instruction code currently being decoded at the D stage is an interlace such as a conditional branch instruction or a subroutine call instruction. The offset to be added is added, and the added value is output as the address of the data to be read next (branch instruction fetch request).
【0022】また、PFPC24は、飛び越し等に関係
なく、通常の命令処理動作時にPC22よりも進んだカ
ウントを行ない、そのカウント値を次に読み出すべきデ
ータのアドレスとして出力するものである。分岐制御部
25は、TADR23およびPFPC24からの出力の
いずれか一方を選択して出力するためのもので、命令キ
ャッシュ/TLB部11を介して入力される命令コード
が条件付き分岐命令やサブルーチンコール命令などの分
岐命令に相当するものである否かを検出する分岐命令検
出部25Aと、この分岐命令検出部25Aからの出力信
号(分岐命令検出時に“0”から“1”に立ち上がる信
号)を反転させるNOT回路25Bとから構成されてい
る。The PFPC 24 counts ahead of the PC 22 during a normal instruction processing operation regardless of jumping and the like, and outputs the count value as an address of data to be read next. The branch control unit 25 is for selecting and outputting one of the outputs from the TADR 23 and the PFPC 24, and the instruction code input via the instruction cache / TLB unit 11 is a conditional branch instruction or a subroutine call instruction. A branch instruction detecting unit 25A that detects whether or not the branch instruction corresponds to a branch instruction, and an output signal from the branch instruction detecting unit 25A (a signal that rises from "0" to "1" when a branch instruction is detected) is inverted. And a NOT circuit 25B.
【0023】出力部26,27は、それぞれ、TADR
23およびPFPC24の出力側に設けられ、分岐制御
部25から入力される信号が“1”に立ち上がった場合
に、TADR23,PFPC24におけるデータを命令
キャッシュ/TLB部11の命令アドレスレジスタ35
へ出力(命令フェッチアドレス切換)するものである。The output units 26 and 27 are respectively TADR
23 and the output side of the PFPC 24, when the signal input from the branch control unit 25 rises to “1”, the data in the TADR 23 and PFPC 24 are transferred to the instruction address register 35 of the instruction cache / TLB unit 11.
Output to (instruction fetch address switching).
【0024】ここで、出力部26には、分岐命令検出部
25Aからの信号が直接入力され、これにより、命令キ
ャッシュ/TLB部11を介して入力される命令コード
が分岐命令に相当するものである場合に、TADR23
におけるデータ(予測アドレス)が出力部26を通じて
出力されるようになっている。また、出力部27に、分
岐命令検出部25Aの出力信号をNOT回路25Bによ
り反転した信号が入力され、これにより、命令キャッシ
ュ/TLB部11を介して入力される命令コードが分岐
命令以外のものである場合に、PFPC24におけるデ
ータ(予測アドレス)が出力部27を通じて出力される
ようになっている。Here, the signal from the branch instruction detecting section 25A is directly input to the output section 26, whereby the instruction code input via the instruction cache / TLB section 11 corresponds to a branch instruction. In some cases, TADR23
The data (predicted address) in (1) is output through the output unit 26. A signal obtained by inverting the output signal of the branch instruction detection unit 25A by the NOT circuit 25B is input to the output unit 27, whereby the instruction code input via the instruction cache / TLB unit 11 is other than the branch instruction. In this case, the data (predicted address) in the PFPC 24 is output through the output unit 27.
【0025】NOT回路28は、命令キャッシュ/TL
B部11(タグ比較部39)からのキャッシュヒット/
ミスヒット(HIT/MISS)信号を反転させるもの
であり、AND回路29は、分岐命令検出部25Aから
の信号とNOT回路28からの信号との論理積をとり、
その論理積結果を、TADR23による分岐命令フェッ
チ要求を取り消すためのキャンセル信号として出力する
ものである。The NOT circuit 28 uses an instruction cache / TL.
Cache hit from part B 11 (tag comparison part 39) /
The AND circuit 29 inverts the mishit (HIT / MISS) signal, and the AND circuit 29 takes the logical product of the signal from the branch instruction detection unit 25A and the signal from the NOT circuit 28,
The logical product result is output as a cancel signal for canceling the branch instruction fetch request by the TADR 23.
【0026】つまり、AND回路29からの出力信号
は、命令キャッシュ/TLB部11を介して入力された
命令コードが分岐命令に相当するものであり、且つ、そ
の命令コードについてのキャッシュ検索結果がミスヒッ
ト(“0”値信号)である場合に“0”から“1”に立
ち上がり、その分岐命令フェッチ要求を取り消すように
なっている。That is, in the output signal from the AND circuit 29, the instruction code input through the instruction cache / TLB unit 11 corresponds to a branch instruction, and the cache search result for the instruction code is missed. When it is a hit (a "0" value signal), it rises from "0" to "1" and cancels the branch instruction fetch request.
【0027】なお、命令実行部10には、CPU1内に
おける各種制御状態(制御モード)を設定する情報をフ
ラグとして格納するプログラムステータスワード(以
下、PSWという)30がそなえられている。例えば、
内部キャッシュ(命令キャッシュ36等)を使用しない
モード(つまりセレクタ40を常にバイパス線41側に
切り換えておくモード)を設定する場合には、PSW3
0におけるNIC(Not-use Internal Cache)フラグ3
0Aを“1”に設定するほか、アドレス変換が有効なモ
ード(つまりTLB37を使用するモード)を設定する
場合には、PSW30におけるVAフラグ30Bを
“1”に設定するようになっている。The instruction execution unit 10 is provided with a program status word (hereinafter referred to as PSW) 30 for storing information for setting various control states (control modes) in the CPU 1 as a flag. For example,
When setting the mode in which the internal cache (instruction cache 36 or the like) is not used (that is, the mode in which the selector 40 is always switched to the bypass line 41 side), PSW3
NIC (Not-use Internal Cache) flag 3 in 0
In addition to setting 0A to "1", when setting a mode in which address translation is effective (that is, a mode in which the TLB 37 is used), the VA flag 30B in the PSW 30 is set to "1".
【0028】上述のごとく構成されたCPU1では、命
令実行部10からメモリ3に対するフェッチ要求がある
と、そのフェッチ要求対象となる命令コードのアドレス
(命令アドレス)が命令キャッシュ/TLB部11の命
令アドレスレジスタ35に格納される。そして、命令ア
ドレスレジスタ35に格納されたアドレスに基づいて命
令キャッシュ36およびTLB37を検索し、タグ比較
部39により、そのアドレスに対応するデータ(命令コ
ード)がキャッシュデータ部36Aに格納されていると
判定された場合には、キャッシュヒット(HIT)信号
が出力され、命令実行部10のデコーダ15によるデコ
ード結果(レジスタ19の内容)およびGR読出部16
による読出結果(レジスタ20の内容)が有効なものに
なる。In the CPU 1 configured as described above, when there is a fetch request from the instruction execution unit 10 to the memory 3, the address (instruction address) of the instruction code targeted for the fetch request is the instruction address of the instruction cache / TLB unit 11. It is stored in the register 35. Then, the instruction cache 36 and the TLB 37 are searched based on the address stored in the instruction address register 35, and the tag comparison unit 39 stores the data (instruction code) corresponding to the address in the cache data unit 36A. If it is determined, a cache hit (HIT) signal is output, the decoding result of the decoder 15 of the instruction executing unit 10 (contents of the register 19) and the GR reading unit 16 are output.
The read result (contents of the register 20) becomes valid.
【0029】一方、タグ比較部39により、そのアドレ
スに対応するデータ(命令コード)がキャッシュデータ
部36Aに格納されていないと判定された場合には、キ
ャッシュミスヒット(MISS)信号が出力され、キャ
ッシュ制御部42によりセレクタ40がバイパス線41
側に切り換えられ、命令アドレスレジスタ35に格納さ
れたアドレスに応じて、メモリ3から読み出されたデー
タ(命令コード)が命令レジスタ43に格納される。On the other hand, when the tag comparison unit 39 determines that the data (instruction code) corresponding to the address is not stored in the cache data unit 36A, a cache mishit (MISS) signal is output, The cache control unit 42 causes the selector 40 to bypass the bypass line 41.
The data (instruction code) read from the memory 3 is stored in the instruction register 43 according to the address stored in the instruction address register 35.
【0030】次に、命令キャッシュ36を使用する場合
(PSW30のNICフラグ30Aが“0”設定の場
合)のCPU1のパイプライン処理動作について、図1
0により詳細に説明する。なお、図10は、処理タイミ
ングに、その処理を行なうCPU1の構成部分を対応さ
せて示すタイミングチャートであり、各処理ステージと
しては、IF−req(Instruction Fetch request;命
令フェッチ要求) ステージ,IF(命令フェッチ)ステ
ージ,D(Decord;デコード)ステージ,E(Execute;
実行)ステージおよびW(Write;書込)ステージの5つ
の処理ステージがある。Next, FIG. 1 shows the pipeline processing operation of the CPU 1 when the instruction cache 36 is used (when the NIC flag 30A of the PSW 30 is set to "0").
0 will be described in detail. FIG. 10 is a timing chart showing the processing timings in correspondence with the constituent parts of the CPU 1 that performs the processing. The IF-req (Instruction Fetch request) stage and the IF ( Instruction fetch) stage, D (Decord; decode) stage, E (Execute;
There are five processing stages, an execution stage and a W (Write) stage.
【0031】まず、IF−reqステージでは、前述し
たように、命令実行部10からメモリ3に対するフェッ
チ要求を行ない、そのフェッチ要求対象となる命令コー
ドのアドレス(命令アドレス)を命令アドレスレジスタ
35に格納する。IFステージでは、命令アドレスレジ
スタ35に格納されたアドレスに基づいて、命令キャッ
シュ36のキャッシュデータ部36Aおよびキャッシュ
ディレクトリ部36Bと、TLB37とを同時に検索
し、検索された結果をそれぞれ命令レジスタ43および
レジスタ36C,38に格納する。First, in the IF-req stage, as described above, the instruction execution unit 10 makes a fetch request to the memory 3, and the address (instruction address) of the instruction code to be the fetch request target is stored in the instruction address register 35. To do. In the IF stage, the cache data section 36A and the cache directory section 36B of the instruction cache 36 and the TLB 37 are searched at the same time based on the address stored in the instruction address register 35, and the searched results are respectively registered in the instruction register 43 and the register. 36C and 38.
【0032】ここでは、命令キャッシュ36はダイレク
トマップ方式を採用しており、命令アドレスが命令アド
レスレジスタ35に与えられると、唯一エントリが選択
されて読み出される。このとき、前述した通り、キャッ
シュデータ部36Aとキャッシュディレクトリ部36B
とからデータ(命令コード)およびディレクトリ情報が
同時に読み出され、データ(命令コード)はそのまま命
令レジスタ43に格納されている。Here, the instruction cache 36 employs a direct map method, and when an instruction address is given to the instruction address register 35, only one entry is selected and read. At this time, as described above, the cache data unit 36A and the cache directory unit 36B
The data (instruction code) and the directory information are simultaneously read from and, and the data (instruction code) is stored in the instruction register 43 as it is.
【0033】そして、Dステージでは、デコーダ15に
より命令レジスタ43に格納された命令コードを解読
し、そのデコード結果(function)をレジスタ19に格
納する。また、このデコード処理と並行して、命令キャ
ッシュ36のレジスタ36Cに読み出されたValid
が“1”でありアドレス変換モード(PSW30のVA
フラグ30Bが“1”設定)である場合、タグ比較部3
9により、レジスタ36C,38に読み出されたデータ
〔ディレクトリ情報(PTAG),LTAG等〕と命令
アドレスレジスタ35に格納された命令アドレスとに基
づいて、その命令アドレスに対応する命令コードが実際
にキャッシュデータ部36Aに格納されているか否か
(キャッシュヒットかキャッシュミスヒットか)を判定
する。Then, in the D stage, the decoder 15 decodes the instruction code stored in the instruction register 43 and stores the decoding result (function) in the register 19. Further, in parallel with this decoding process, the Valid read in the register 36C of the instruction cache 36 is read.
Is "1" and the address translation mode (VA of PSW30
When the flag 30B is "1" setting), the tag comparison unit 3
9, based on the data [directory information (PTAG), LTAG, etc.] read to the registers 36C and 38 and the instruction address stored in the instruction address register 35, the instruction code corresponding to the instruction address is actually It is determined whether or not it is stored in the cache data unit 36A (whether it is a cache hit or a cache miss hit).
【0034】さらに、上述のデコード処理とキャッシュ
ヒット/ミス判定処理と並行して、GR読出部16によ
り、命令レジスタ43の命令コードに応じてその命令に
対応する処理に必要なデータ(オペランドキャッシュ/
TLB部12を介してGRに格納されたオペランド等)
をGRから読み出してレジスタ20に格納する。また、
分岐制御部25の分岐命令検出部25Aにより、命令レ
ジスタ43の命令コードが分岐命令に相当するものであ
るか否かを検出し、分岐命令に相当するものである場合
には、出力部26へ“1”信号を出力することにより、
TADR23におけるデータ(分岐命令に対応した予測
アドレス)を命令アドレスレジスタ35へ出力する。一
方、命令コードが分岐命令以外のもである場合には、出
力部27へ“1”信号を出力することにより、PFPC
24におけるデータ(予測アドレス)を命令アドレスレ
ジスタ35へ出力する。Further, in parallel with the above-described decoding process and cache hit / miss determination process, the GR reading unit 16 performs data (operand cache / operator cache / data required for the process corresponding to the instruction according to the instruction code of the instruction register 43).
Operands stored in GR via TLB unit 12)
Is read from GR and stored in register 20. Also,
The branch instruction detection unit 25A of the branch control unit 25 detects whether or not the instruction code of the instruction register 43 corresponds to the branch instruction, and when it corresponds to the branch instruction, the output unit 26 is output. By outputting a "1" signal,
The data in TADR 23 (predicted address corresponding to the branch instruction) is output to the instruction address register 35. On the other hand, when the instruction code is other than the branch instruction, the PFPC is output by outputting the "1" signal to the output unit 27.
The data in 24 (predicted address) is output to the instruction address register 35.
【0035】Dステージにおいて、タグ比較部39によ
る比較の結果、キャッシュヒットであった場合には、こ
のタグ比較部39からのキャッシュヒット(HIT)信
号に応じて、命令実行部10のデコーダ15によるデコ
ード結果(レジスタ19の内容)およびGR読出部16
による読出結果(レジスタ20の内容)が有効なものに
なり、Eステージへ移行するとともに、TADR23ま
たはPFPC24から出力された予測アドレスに基づく
IF−req処理およびIF処理が実行される。In the D stage, if the result of comparison by the tag comparison unit 39 is a cache hit, the decoder 15 of the instruction execution unit 10 responds to the cache hit (HIT) signal from the tag comparison unit 39. Decoding result (contents of register 19) and GR reading unit 16
The read result (contents of the register 20) becomes valid, the process moves to the E stage, and the IF-req process and the IF process based on the predicted address output from the TADR 23 or the PFPC 24 are executed.
【0036】Eステージでは、ALU17により、レジ
スタ20に格納されているデータ(オペランド)に対し
て、レジスタ19に格納されている命令コードのデコー
ド結果(function)に応じた所定の論理演算処理を施
し、その結果をレジスタ21に書き込み、Wステージで
は、GR書込部18により、レジスタ21に格納されて
いる論理演算結果をGRに書き込んで一連の処理を終了
する。At the E stage, the ALU 17 performs a predetermined logical operation process on the data (operand) stored in the register 20 according to the decoding result (function) of the instruction code stored in the register 19. The result is written in the register 21, and in the W stage, the GR writing unit 18 writes the result of the logical operation stored in the register 21 in GR, and the series of processes is ended.
【0037】一方、タグ比較部39による比較の結果、
キャッシュミスヒットであった場合には、命令実行部1
0のデコーダ15によるデコード結果(レジスタ19の
内容)およびGR読出部16による読出結果(レジスタ
20の内容)は無効化され、Eステージに移行しない。
そして、命令アドレスレジスタ35に格納されている命
令アドレスに対応する真のデータ(命令コード)がメモ
リ3から読み出され、命令レジスタ43に格納するのを
待つことになる。On the other hand, as a result of comparison by the tag comparison unit 39,
If there is a cache miss hit, the instruction execution unit 1
The result of decoding by the decoder 15 of 0 (contents of the register 19) and the result of reading by the GR reading unit 16 (contents of the register 20) are invalidated, and the E stage is not entered.
Then, it waits until the true data (instruction code) corresponding to the instruction address stored in the instruction address register 35 is read from the memory 3 and stored in the instruction register 43.
【0038】このとき、メモリ3から読み出された命令
コードは、キャッシュ制御部42により、バイパス線4
1,セレクタ40を介して命令レジスタ43に格納され
るとともに、その命令アドレスの一部をキーとして命令
キャッシュ36に格納される。また、上述のように、タ
グ比較部39による比較の結果、キャッシュミスヒット
であった場合で、その時、命令レジスタ43に格納され
ていた命令コードが分岐命令に相当するものであった場
合には、図9により前述したAND回路29からの出力
信号(キャンセル信号)が“0”から“1”に立ち上が
り、TADR23から出力された予測アドレスに基づく
分岐命令フェッチ要求が取り消される。At this time, the instruction code read from the memory 3 is processed by the cache control unit 42 into the bypass line 4
1, stored in the instruction register 43 via the selector 40, and also stored in the instruction cache 36 using a part of the instruction address as a key. Further, as described above, when the result of the comparison by the tag comparison unit 39 is a cache mishit, and when the instruction code stored in the instruction register 43 at that time corresponds to a branch instruction, 9, the output signal (cancellation signal) from the AND circuit 29 described above rises from "0" to "1", and the branch instruction fetch request based on the predicted address output from the TADR 23 is canceled.
【0039】[0039]
【発明が解決しようとする課題】ところで、分岐命令の
検出など早めに検出することが性能上要求されるような
制御では、タグ比較部39からのヒット信号を待ってか
ら、分岐制御(命令フェッチアドレスとしてTADR2
3のデータを選択する制御等)を行なっていては、制御
処理が遅くなってしまう。By the way, in the control that requires early detection such as detection of a branch instruction in terms of performance, wait for a hit signal from the tag comparison unit 39 before performing branch control (instruction fetch). TADR2 as address
3), the control process becomes slower.
【0040】このため、図10にて説明したように、I
Fステージにおいて、命令アドレスレジスタ35に格納
されている命令アドレスの一部をキーとして、ダイレク
トマップ方式で命令キャッシュ36のキャッシュデータ
部36Aおよびキャッシュディレクトリ部36BとTL
B37とから同時にデータを読み出すと、直ちに、Dス
テージで、デコーダ15により命令コードのデコードを
行なっている。Therefore, as described with reference to FIG.
In the F stage, the cache data section 36A and the cache directory section 36B and the TL of the instruction cache 36 are directly mapped by using a part of the instruction address stored in the instruction address register 35 as a key.
When the data is read from B37 and the data at the same time, the decoder 15 immediately decodes the instruction code in the D stage.
【0041】また、これと同時に、TADR23による
分岐命令フェッチ要求や、分岐制御部25による命令フ
ェッチアドレス切換などを行なうとともに、キャッシュ
ディレクトリ部36B,TLB37からのデータ(タグ
情報)に基づいてタグ比較部39によりキャッシュヒッ
ト/ミス判定を行なっている。上述の処理方式では、デ
コーダ15,GR読出部16,TADR23,分岐制御
部25へ与えられるデータ(命令コード)よりも、タグ
比較部39によるキャッシュヒット/ミス判定の結果の
方が遅くなってしまう。At the same time, the branch instruction fetch request by the TADR 23, the instruction fetch address switching by the branch control unit 25, and the like are performed, and the tag comparison unit based on the data (tag information) from the cache directory units 36B and TLB 37. The cache hit / miss judgment is made by 39. In the above processing method, the cache hit / miss determination result by the tag comparison unit 39 is slower than the data (instruction code) given to the decoder 15, GR read unit 16, TADR 23, and branch control unit 25. .
【0042】そして、ミスヒットの場合、後でAND回
路29からのキャンセル信号により分岐命令フェッチ要
求を取り消している。このような処理は、単一のチップ
(CPU1)での動作としては問題はない。しかしなが
ら、同一のCPU1を複数個搭載し、各CPU1が、共
通のメモリ3から同一データを読み出して同一処理動作
を行ない、動作比較や多数決論理をとることにより、信
頼性を高めるシステム(図8参照)では、電源投入直後
等に、命令キャッシュ36の内容が初期化されておらず
その値を予測できず、各CPU1の命令キャッシュ36
に格納されるデータ内容は一致していない場合が生じ
る。In the case of a mishit, the branch instruction fetch request is canceled later by a cancel signal from the AND circuit 29. Such processing does not cause any problem in the operation of a single chip (CPU1). However, a system in which a plurality of the same CPUs 1 are mounted, each CPU 1 reads the same data from the common memory 3 and performs the same processing operation, and performs operation comparison and majority logic to improve reliability (see FIG. 8). ), The contents of the instruction cache 36 are not initialized immediately after the power is turned on and the value thereof cannot be predicted, so that the instruction cache 36 of each CPU 1 cannot be predicted.
There may be cases where the data contents stored in are not consistent.
【0043】例えば、各CPU1の命令キャッシュ36
のデータ内容が異なるために、一方のCPU1の命令レ
ジスタ43に分岐命令についての命令コードが読み出さ
れ、他方のCPU1の命令レジスタ43に分岐命令以外
の命令についての命令コードが読み出されるような場
合、Dステージにおいて、一方のCPU1では分岐命令
に応じた処理(命令デコード,GR読出,分岐制御,タ
グ比較,アドレス計算)が行なわれ、他方のCPU1で
は分岐命令以外の命令に応じた処理が行なわれることに
なり、タグ比較部39によりキャッシュミスヒット判定
がなされるまでの間、これらのCPU1は同一の処理動
作を行なうことができなくなり、システム(データ処理
装置)の信頼性の低下を招くなどの課題があった。For example, the instruction cache 36 of each CPU 1
When the instruction code for the branch instruction is read to the instruction register 43 of one CPU 1 and the instruction code for the instruction other than the branch instruction is read to the instruction register 43 of the other CPU 1 because the data content of , D stage, one CPU 1 performs processing (instruction decoding, GR reading, branch control, tag comparison, address calculation) according to a branch instruction, and the other CPU 1 performs processing according to an instruction other than a branch instruction. These CPUs 1 cannot perform the same processing operation until the tag comparison unit 39 makes a cache miss hit determination, leading to a decrease in the reliability of the system (data processing device). There was a problem.
【0044】本発明は、このような課題に鑑み創案され
たもので、キャッシュヒット/ミス判定により命令コー
ドのデコード結果を有効化/無効化するまでの間に、各
CPU(データ処理部)が異なった動作をするのを防止
し、信頼性の向上をはかったデータ処理装置を提供する
ことを目的とする。The present invention was devised in view of such a problem, and each CPU (data processing unit) has a function to enable / disable the decoding result of the instruction code by the cache hit / miss determination. It is an object of the present invention to provide a data processing device that prevents different operations and improves reliability.
【0045】[0045]
【課題を解決するための手段】図1は第1の発明の原理
ブロック図で、この図1において、51はデータ処理
部、52は複数のデータ処理部51により共用される主
記憶部で、これらのデータ処理部51および主記憶部5
2により構成される本発明のデータ処理装置では、複数
のデータ処理部51が、主記憶部52から同一データを
読み出して同一処理動作を行なうとともに、各データ処
理部51に、主記憶部52から読み出された命令コード
を一時的に格納するバッファ記憶部53と、バッファ記
憶部53から読み出された命令コードを解読するデコー
ダ54とそなえられている。FIG. 1 is a block diagram of the principle of the first invention. In FIG. 1, 51 is a data processing unit, 52 is a main memory unit shared by a plurality of data processing units 51, These data processing unit 51 and main storage unit 5
In the data processing device of the present invention configured by two, the plurality of data processing units 51 read the same data from the main storage unit 52 and perform the same processing operation, and at the same time, each data processing unit 51 stores the same data from the main storage unit 52. A buffer storage unit 53 for temporarily storing the read instruction code and a decoder 54 for decoding the instruction code read from the buffer storage unit 53 are provided.
【0046】そして、各データ処理部51に、バッファ
記憶部53から読み出された命令コードについてのディ
レクトリ部に有効フラグが設定されている場合にデコー
ダ54による当該命令コードのデコード処理を許可する
デコード許可判定部55がそなえられている(請求項
1)。図2は第2の発明の原理ブロック図で、この図2
に示すように、第2の発明も図1に示した第1の発明と
同様に構成されているが、この第2の発明では、各デー
タ処理部51に、自データ処理部51所望の命令コード
がバッファ記憶部53に格納されていない場合には当該
命令コードを主記憶部52から読み出しバッファ記憶部
53をバイパスして転送するバイパス転送部56が追加
され、デコーダ54は、主記憶部52またはバッファ記
憶部53から読み出された命令コードを解読するように
なっている。Then, in each data processing section 51, when a valid flag is set in the directory section for the instruction code read from the buffer storage section 53, a decoding for permitting the decoding processing of the instruction code by the decoder 54 is performed. A permission determination unit 55 is provided (Claim 1). FIG. 2 is a block diagram of the principle of the second invention.
As shown in FIG. 2, the second invention is also configured in the same manner as the first invention shown in FIG. 1, but in the second invention, each data processing unit 51 is instructed to its own data processing unit 51. If the code is not stored in the buffer storage unit 53, a bypass transfer unit 56 that transfers the instruction code from the main storage unit 52 by bypassing the buffer storage unit 53 is added, and the decoder 54 includes the main storage unit 52. Alternatively, the instruction code read from the buffer storage unit 53 is decoded.
【0047】そして、各データ処理部51には、バッフ
ァ記憶部53から読み出された命令コードについてのデ
ィレクトリ部に有効フラグが設定されている場合、また
は、バイパス転送部56により主記憶部52から命令コ
ードを読み出した場合に、デコーダ54による当該命令
コードのデコード処理を許可するデコード許可判定部5
7がそなえられている(請求項2)。Then, in each data processing unit 51, when a valid flag is set in the directory portion for the instruction code read from the buffer storage unit 53, or by the bypass transfer unit 56 from the main storage unit 52. When the instruction code is read, the decoding permission determination unit 5 that permits the decoding process of the instruction code by the decoder 54.
7 is provided (Claim 2).
【0048】図3は第3の発明の原理ブロック図で、こ
の図3に示すように、第2の発明も図2に示した第2の
発明と同様に構成されているが、この第3の発明では、
各データ処理部51に、さらに、バッファ記憶部53を
使用するか否かを設定するフラグ58がそなえられ、バ
イパス転送部56が、フラグ58によりバッファ記憶部
53の不使用モードが設定された場合、または、自デー
タ処理部51所望の命令コードがバッファ記憶部53に
格納されていない場合に、当該命令コードを主記憶部5
2から読み出しバッファ記憶部53をバイパスしてデコ
ーダ54へ転送するようになっている。FIG. 3 is a block diagram showing the principle of the third invention. As shown in FIG. 3, the second invention has the same structure as the second invention shown in FIG. In the invention of
When each data processing unit 51 is further provided with a flag 58 for setting whether or not to use the buffer storage unit 53, and the bypass transfer unit 56 sets the unused mode of the buffer storage unit 53 by the flag 58. Alternatively, when the desired instruction code of the own data processing unit 51 is not stored in the buffer storage unit 53, the instruction code is stored in the main storage unit 5.
2, the read buffer storage unit 53 is bypassed and the data is transferred to the decoder 54.
【0049】そして、各データ処理部51には、フラグ
58によりバッファ記憶部53の使用モードが設定され
且つバッファ記憶部53から読み出された命令コードに
ついてのディレクトリ部に有効フラグが設定されている
場合、または、バイパス転送部56により主記憶部52
から命令コードを読み出した場合に、デコーダ54によ
る当該命令コードのデコード処理を許可するデコード許
可判定部59がそなえられている(請求項3)。In each data processing unit 51, the use mode of the buffer storage unit 53 is set by the flag 58, and the valid flag is set in the directory unit for the instruction code read from the buffer storage unit 53. Case, or by the bypass transfer unit 56, the main storage unit 52
When the instruction code is read from, the decoder 54 is provided with a decoding permission determination unit 59 that permits the decoding process of the instruction code.
【0050】なお、図1〜図3に示した各データ処理部
51に、デコーダ54によるデコード処理対象の命令コ
ードが分岐命令である場合にデコード許可判定部55,
57,59からのデコード許可信号に応じて当該分岐命
令の次の命令に対する読出要求を実行する分岐制御部を
そなえて構成してもよい(請求項4)。図4は第4の発
明の原理ブロック図で、この図4に示すように、第4の
発明も図3に示した第2の発明と同様に、主記憶部52
から同一データを読み出して同一の処理動作を行なう複
数のデータ処理部51をそなえ、各データ処理部51
に、バッファ記憶部53,フラグ58,バイパス転送部
56,デコーダ54がそなえられている。In each of the data processing units 51 shown in FIGS. 1 to 3, when the instruction code to be decoded by the decoder 54 is a branch instruction, the decoding permission determining unit 55,
A branch control unit for executing a read request for the instruction next to the branch instruction in response to the decode enable signals from 57 and 59 may be provided (claim 4). FIG. 4 is a block diagram of the principle of the fourth invention. As shown in FIG. 4, the fourth invention is the same as the second invention shown in FIG.
Each data processing unit 51 includes a plurality of data processing units 51 that read the same data from the same and perform the same processing operation.
In addition, a buffer storage unit 53, a flag 58, a bypass transfer unit 56, and a decoder 54 are provided.
【0051】そして、各データ処理部51には、電源投
入時もしくはフラグ58によるバッファ記憶部53の不
使用モードから使用モードへの切換時に、フラグ58に
よりバッファ記憶部53の不使用モードを所定期間だけ
保持して、バッファ記憶部53におけるディレクトリ部
の有効フラグとデータ部の命令コードとを初期化する初
期化手段60がそなえられている(請求項5)。In each data processing unit 51, when the power is turned on or when the flag 58 is used to switch the non-use mode of the buffer storage unit 53 to the use mode, the flag 58 sets the non-use mode of the buffer storage unit 53 for a predetermined period. An initialization means 60 for holding only the above and initializing the valid flag of the directory section and the instruction code of the data section in the buffer storage section 53 is provided (Claim 5).
【0052】なお、初期化手段60が、所定パターンの
初期化データを生成する初期化データ生成部を有し、初
期化データ生成部により生成された初期化データをバッ
ファ記憶部53におけるデータ部に書き込むことにより
命令コードを初期化するように構成してもよい(請求項
6)。また、バッファ記憶部53の初期化すべきエント
リと当該エントリに書き込むべき初期化データとを指定
して初期化する初期化命令を予め定義し、初期化手段6
0が、初期化命令により指定される前記エントリに、初
期化命令により指定される前記初期化データを書き込む
ことにより命令コードを初期化するように構成してもよ
い(請求項7)。The initialization means 60 has an initialization data generating section for generating initialization data of a predetermined pattern, and the initialization data generated by the initialization data generating section is stored in the data section of the buffer storage section 53. The instruction code may be initialized by writing (claim 6). In addition, an initialization command for designating an entry to be initialized in the buffer storage unit 53 and initialization data to be written in the entry is defined in advance, and the initialization means 6 is provided.
0 may be configured to initialize the instruction code by writing the initialization data designated by the initialization instruction into the entry designated by the initialization instruction (claim 7).
【0053】[0053]
【作用】上述した第1の発明のデータ処理装置(請求項
1)では、バッファ記憶部53から読み出された命令コ
ードについてのディレクトリ部に有効フラグが設定され
ている場合、バッファ記憶部53からの命令コードが後
でミスヒット判定となるとしても、そのエントリについ
て全てのデータ処理部51のバッファ記憶部53には同
じ内容が保持されているので、そのような場合、各デー
タ処理部51のバッファ記憶部53からデコーダ54へ
読み出すと同時に、各データ処理部51のデコード許可
判定部55にてデコーダ54による当該命令コードのデ
コード処理を許可することで、その命令コードのバッフ
ァ記憶部53からの読出後にヒット/ミスヒット判定が
得られるまでの間、全てのデータ処理部51における処
理動作は同一になる。In the data processor of the first invention described above (claim 1), if the valid flag is set in the directory section for the instruction code read from the buffer storage section 53, Even if the instruction code of the above becomes a mishit judgment later, the same contents are held in the buffer storage units 53 of all the data processing units 51 for that entry. At the same time as reading from the buffer storage unit 53 to the decoder 54, the decoding permission determination unit 55 of each data processing unit 51 permits the decoding process of the instruction code by the decoder 54, so that the instruction storage unit 53 stores the instruction code from the buffer storage unit 53. Until the hit / miss hit judgment is obtained after reading, the processing operations in all the data processing units 51 are the same. .
【0054】また、上述した第2の発明のデータ処理装
置(請求項2)では、前述のように有効フラグ設定時の
ほか、ミスヒット判定によりバイパス転送部56を介し
主記憶部52から命令コードを読み出した場合には、主
記憶部52から各データ処理部51へ転送され、各デー
タ処理部51のデコーダ54により解読される命令コー
ドは同一であるので、そのような場合も、各データ処理
部51のデコード許可判定部57にてデコーダ54によ
る当該命令コードのデコード処理を許可することで、そ
の命令コードのバッファ記憶部53からの読出後にヒッ
ト/ミスヒット判定が得られるまでの間、全てのデータ
処理部51における処理動作は同一になる。Further, in the data processor of the second invention described above (claim 2), the instruction code is sent from the main memory unit 52 via the bypass transfer unit 56 not only when the valid flag is set as described above but also when the mishit is judged. Is read, the instruction code transferred from the main memory unit 52 to each data processing unit 51 and decoded by the decoder 54 of each data processing unit 51 is the same. Therefore, even in such a case, each data processing By permitting the decoding process of the instruction code by the decoder 54 in the decoding permission determination unit 57 of the unit 51, all the operations are performed until the hit / miss hit determination is obtained after the instruction code is read from the buffer storage unit 53. The processing operation of the data processing unit 51 is the same.
【0055】さらに、上述した第3の発明のデータ処理
装置(請求項3)では、フラグ58によりバッファ記憶
部53の使用モードが設定され且つバッファ記憶部53
から読み出された命令コードについてのディレクトリ部
に有効フラグが設定されている場合のほか、ミスヒット
判定により、もしくは、フラグ58にてバッファ記憶部
53の不使用モードを設定することにより、バイパス転
送部56を介し主記憶部52から命令コードを読み出し
た場合にも、主記憶部52から各データ処理部51へ転
送され、各データ処理部51のデコーダ54により解読
される命令コードは同一であるので、そのような場合
も、各データ処理部51のデコード許可判定部59にて
デコーダ54による当該命令コードのデコード処理を許
可することで、その命令コードのバッファ記憶部53か
らの読出後にヒット/ミスヒット判定が得られるまでの
間、全てのデータ処理部51における処理動作は同一に
なる。Further, in the above-described data processor of the third invention (claim 3), the use mode of the buffer memory 53 is set by the flag 58 and the buffer memory 53 is set.
In addition to the case where the valid flag is set in the directory section for the instruction code read from, the bypass transfer is performed by the mishit determination or by setting the non-use mode of the buffer storage section 53 by the flag 58. Even when the instruction code is read from the main storage unit 52 via the unit 56, the instruction code transferred from the main storage unit 52 to each data processing unit 51 and decoded by the decoder 54 of each data processing unit 51 is the same. Therefore, even in such a case, by allowing the decoding processing of the instruction code by the decoder 54 in the decoding permission determination section 59 of each data processing section 51, hit / hit after reading the instruction code from the buffer storage section 53. Until the mishit determination is obtained, the processing operation in all the data processing units 51 is the same.
【0056】なお、デコーダ54によるデコード処理対
象の命令コードが分岐命令である場合には、分岐制御部
により、デコード許可判定部55,57,59からのデ
コード許可信号に応じて当該分岐命令の次の命令に対す
る読出要求を実行することで(請求項4)、その命令コ
ードのバッファ記憶部53からの読出後にヒット/ミス
ヒット判定が得られるまでの間に、当該分岐命令の次の
命令に対する読出要求も、全てのデータ処理部51内で
同一の処理動作で行なわれることになる。When the instruction code to be decoded by the decoder 54 is a branch instruction, the branch control unit follows the branch instruction according to the decode permission signals from the decode permission decision units 55, 57 and 59. By executing the read request for the instruction of (4), the instruction for the next instruction of the branch instruction is read until the hit / miss hit judgment is obtained after the instruction code is read from the buffer storage unit 53. The request is also made by the same processing operation in all the data processing units 51.
【0057】また、上述した第4の発明のデータ処理装
置(請求項5)では、各データ処理装置51において、
電源投入時や、フラグ58によりバッファ記憶部53を
不使用モードから使用モードへ切り換える時には、初期
化手段60により、フラグ58にてバッファ記憶部53
の不使用モードを所定期間だけ保持し、その間にバッフ
ァ記憶部53におけるディレクトリ部の有効フラグとデ
ータ部の命令コードとを初期化することにより、全ての
データ処理部51において、バッファ記憶部53を使用
する直前に、そのバッファ記憶部53に同じデータを書
き込むことができ、初期化後の各データ処理部51によ
る処理動作は全て同一になる。Further, in the above-mentioned data processor of the fourth invention (claim 5), in each data processor 51,
When the power is turned on or when the flag 58 is used to switch the buffer storage unit 53 from the non-use mode to the use mode, the initialization unit 60 causes the buffer storage unit 53 to use the flag 58.
The non-use mode is held for a predetermined period, and the valid flag of the directory section and the instruction code of the data section in the buffer storage section 53 are initialized during that period, so that the buffer storage sections 53 are stored in all the data processing sections 51. Just before use, the same data can be written in the buffer storage unit 53, and the processing operation by each data processing unit 51 after initialization becomes the same.
【0058】このとき、初期化手段60の初期化データ
生成部により生成された所定パターンの初期化データを
書き込むことにより(請求項6)、命令コードを初期化
することができる。また、バッファ記憶部53の初期化
すべきエントリと当該エントリに書き込むべき初期化デ
ータとを指定して初期化する初期化命令を予め定義して
おき、初期化手段60により、初期化命令の指定エント
リに初期化命令の指定データを書き込むことで(請求項
7)、任意のエントリにおけるデータ(命令コード)を
自由に設定することができる。At this time, the instruction code can be initialized by writing the initialization data of the predetermined pattern generated by the initialization data generator of the initialization means 60 (claim 6). Further, an initialization command for designating an entry to be initialized in the buffer storage unit 53 and initialization data to be written in the entry is defined in advance, and the initialization unit 60 causes the initialization instruction to specify the entry. By writing the designated data of the initialization instruction in (7), the data (instruction code) in any entry can be freely set.
【0059】[0059]
【実施例】以下、図面を参照して本発明の実施例を説明
する。 (a)第1実施例の説明 図5は本発明の第1実施例としてのデータ処理装置にお
けるデータ処理部(CPU)の構成を機能的に示すブロ
ック図である。なお、本実施例のデータ処理装置も、全
体構成としては図8に示すものと同様に構成されてお
り、複数のCPU(データ処理部)1がMCU2を介し
て共通のメモリ(主記憶部)3に接続され、各CPU1
は、MCU2を介してメモリ3から同一データを読み出
し、同一処理動作を行なっている。Embodiments of the present invention will be described below with reference to the drawings. (A) Description of First Embodiment FIG. 5 is a block diagram functionally showing the configuration of a data processing unit (CPU) in a data processing apparatus as a first embodiment of the present invention. The data processing device of this embodiment is also configured as shown in FIG. 8 as an overall configuration, and a plurality of CPUs (data processing units) 1 share a common memory (main storage unit) via the MCU 2. 3 connected to each CPU 1
Read the same data from the memory 3 via the MCU 2 and perform the same processing operation.
【0060】そして、第1実施例における各CPU1は
図5に示すように構成されている。この図5に示すよう
に、本実施例の各CPU1は、図7により前述したもの
とほぼ同様に構成されているが、この第1実施例では、
図5に示すように、命令キャッシュ/TLB部11にデ
ータバリッド信号生成回路(デコード許可判定部)44
が新たにそなえられるとともに、命令実行部10の分岐
制御部25にAND回路25Cが新たにそなえられてい
る。これらのデータバリッド信号生成回路44およびA
ND回路25C以外の部分については、図7に示したも
のと同様に構成されている。なお、図5中、既述の符号
と同一の符号は同一部分を示しているので、その説明は
省略する。Each CPU 1 in the first embodiment is constructed as shown in FIG. As shown in FIG. 5, each CPU 1 of the present embodiment has substantially the same configuration as that described above with reference to FIG. 7, but in the first embodiment,
As shown in FIG. 5, the instruction validating / TLB unit 11 includes a data valid signal generation circuit (decoding permission determination unit) 44.
Is newly provided, and the branch control section 25 of the instruction execution section 10 is newly provided with an AND circuit 25C. These data valid signal generation circuits 44 and A
The parts other than the ND circuit 25C are configured similarly to those shown in FIG. In FIG. 5, the same reference numerals as those used above indicate the same parts, and a description thereof will be omitted.
【0061】ここで、命令キャッシュ/TLB部11に
新たに設けられたデータバリッド信号生成回路(デコー
ド許可判定部)44は、情報Valid(有効/無効フ
ラグ),NICフラグ30Aおよびバイパスセレクト信
号に基づいて、命令レジスタ43に格納されている命令
コードに対しデコーダ15によるデコード処理を許可す
るか否かを判定し、許可するものと判定した場合に、
“0”から“1”に立ち上がるDATA−V信号(デー
タバリッド信号,デコード許可信号)を出力するもので
ある。Here, the data valid signal generation circuit (decoding permission determination unit) 44 newly provided in the instruction cache / TLB unit 11 is based on the information Valid (valid / invalid flag), the NIC flag 30A and the bypass select signal. Then, it is determined whether or not the decoding process by the decoder 15 is permitted for the instruction code stored in the instruction register 43, and if it is determined that the instruction code is permitted,
The DATA-V signal (data valid signal, decode enable signal) rising from "0" to "1" is output.
【0062】ここで、有効/無効フラグ(情報Vali
d)は、キャッシュディレクトリ部36Bから読み出さ
れるもので、“1”の場合に有効となり“0”の場合に
無効となるフラグである。また、NICフラグ30A
は、命令実行部10のPSW30に設定されるもので、
命令キャッシュ36を使用しないモード(つまりセレク
タ40を常にバイパス線41側に切り換えておくモー
ド)を設定する場合に“1”に設定され、命令キャッシ
ュ36を使用するモード(ミスヒット判定の場合のみセ
レクタ40をバイパス線41側に切り換えるモード)を
設定する場合に“0”にされるものである。Here, the valid / invalid flag (information Vali
The d) is a flag that is read from the cache directory section 36B and is a flag that is valid when it is "1" and invalid when it is "0". Also, the NIC flag 30A
Is set in the PSW 30 of the instruction execution unit 10,
Set to "1" when setting the mode in which the instruction cache 36 is not used (that is, the mode in which the selector 40 is always switched to the bypass line 41 side), and the mode in which the instruction cache 36 is used (selector only in the case of a miss hit determination This is set to "0" when setting the mode in which 40 is switched to the bypass line 41 side).
【0063】さらに、バイパスセレクト信号は、キャッ
シュ制御部42からセレクタ40へ出力される切換制御
信号で、“1”の時、バイパス線41(メモリ3)から
のデータを選択し、“0”の時、命令キャッシュからの
データを選択するものである。そして、データバリッド
信号生成回路44は、NOT回路44A,AND回路4
4BおよびOR回路44Cから構成されている。Further, the bypass select signal is a switching control signal output from the cache control unit 42 to the selector 40. When the bypass select signal is "1", the data from the bypass line 41 (memory 3) is selected, and the bypass select signal is "0". Sometimes it selects data from the instruction cache. The data valid signal generation circuit 44 includes the NOT circuit 44A and the AND circuit 4
4B and OR circuit 44C.
【0064】NOT回路44Aは、命令実行部10のP
SW30に設定されているNICフラグ30Aを反転す
るものであり、AND回路44Bは、キャッシュディレ
クトリ部36Bからの有効/無効フラグと、NOT回路
44AからのNICフラグ30Aの反転信号との論理積
を出力するものであり、OR回路44Cは、AND回路
44Bによる論理積結果とキャッシュ制御部42からの
バイパスセレクト信号との論理和をDATA−V信号と
して出力するものである。The NOT circuit 44A is connected to the P of the instruction execution unit 10.
The AND flag 44B outputs the logical product of the valid / invalid flag from the cache directory section 36B and the inverted signal of the NIC flag 30A from the NOT circuit 44A. The OR circuit 44C outputs the logical sum of the logical product result of the AND circuit 44B and the bypass select signal from the cache control unit 42 as a DATA-V signal.
【0065】従って、CPU1の外部つまりメモリ3か
ら取り込んだデータを、バイパス線41により命令キャ
ッシュ36をバイパスして命令レジスタ43に格納した
場合、もしくは、命令キャッシュ36の有効モード(つ
まり使用モード,NICフラグ30Aが“0”)で且つ
キャッシュディレクトリ部36Bに有効フラグ〔Val
id(バリッドビット)が“1”〕を設定した命令コー
ドを命令キャッシュ36のキャッシュデータ部36Aか
ら命令レジスタ43に格納した場合のいずれかの場合
に、データバリッド信号生成回路44は、デコード許可
信号としてのDATA−V信号を“0”から“1”に立
ち上げ出力するものである。Therefore, when data fetched from the outside of the CPU 1, that is, from the memory 3, is stored in the instruction register 43 by bypassing the instruction cache 36 by the bypass line 41, or in the valid mode (that is, use mode, NIC) of the instruction cache 36. The flag 30A is "0") and the valid flag [Val
When the instruction code in which id (valid bit) is set to "1"] is stored in the instruction register 43 from the cache data section 36A of the instruction cache 36, the data valid signal generation circuit 44 determines that the decode enable signal is generated. The DATA-V signal is raised from "0" to "1" and output.
【0066】そして、本実施例では、データバリッド信
号生成回路44からのDATA−V信号が“1”になっ
た場合のみ、デコーダ15による命令レジスタ43の命
令コードのデコード処理,GR読出部16による命令レ
ジスタ43の命令コードに対応するデータの読出処理,
後述する分岐制御部25による分岐制御が許可されるよ
うになっている。In this embodiment, only when the DATA-V signal from the data valid signal generation circuit 44 becomes "1", the decoder 15 decodes the instruction code of the instruction register 43, and the GR reading section 16 operates. Data read processing corresponding to the instruction code of the instruction register 43,
Branch control by a branch control unit 25, which will be described later, is permitted.
【0067】一方、本実施例の命令実行部10の分岐制
御部25は、図9により前述したものと同様に、TAD
R23およびPFPC24からの出力のいずれか一方を
選択して出力するためのものであるが、本実施例では、
デコーダ15によるデコード処理対象の命令コード(つ
まり命令レジスタ43に格納された命令コード)が分岐
命令である場合にデータバリッド信号生成回路44から
のDATA−V信号に応じて当該分岐命令の次の命令に
対する読出要求を実行すべく、分岐命令検出部25A,
AND回路25CおよびNOT回路25Bから構成され
ている。On the other hand, the branch control unit 25 of the instruction execution unit 10 of this embodiment is similar to the one described above with reference to FIG.
This is for selecting and outputting one of the outputs from the R23 and the PFPC 24, but in the present embodiment,
When the instruction code to be decoded by the decoder 15 (that is, the instruction code stored in the instruction register 43) is a branch instruction, the instruction next to the branch instruction according to the DATA-V signal from the data valid signal generation circuit 44. To execute a read request to the branch instruction detection unit 25A,
It is composed of an AND circuit 25C and a NOT circuit 25B.
【0068】ここで、分岐命令検出部25Aは、命令レ
ジスタ43に格納された命令コードが条件付き分岐命令
やサブルーチンコール命令などの分岐命令に相当するも
のである否かを検出するものである。また、AND回路
25Cは、分岐命令検出25Aからの出力信号(分岐命
令検出時に“0”から“1”に立ち上がる信号)と、デ
ータバリッド信号生成回路44からのDATA−V信号
との論理積を出力するものである。このAND回路25
Cにより、分岐制御部25による分岐制御(TADR2
3の選択制御動作)が、DATA−V信号の立ち上がり
時のみ有効化(許可)されるようになっている。Here, the branch instruction detecting section 25A detects whether the instruction code stored in the instruction register 43 corresponds to a branch instruction such as a conditional branch instruction or a subroutine call instruction. Further, the AND circuit 25C performs a logical product of the output signal from the branch instruction detection 25A (a signal rising from “0” to “1” when the branch instruction is detected) and the DATA-V signal from the data valid signal generation circuit 44. It is what is output. This AND circuit 25
C, the branch control by the branch control unit 25 (TADR2
The selection control operation 3) is enabled (permitted) only when the DATA-V signal rises.
【0069】さらに、NOT回路25Bは、AND回路
25Cからの論理積出力を反転させるものである。従っ
て、本実施例では、出力部26にはAND回路25Cか
らの論理積出力を直接入力することにより、命令キャッ
シュ/TLB部11を介して入力される命令コードが分
岐命令に相当するものであり且つデータバリッド信号生
成回路44からのDATA−V信号が立ち上がった場合
に、TADR23におけるデータ(予測アドレス)が出
力部26を通じて出力されるようになっている。Further, the NOT circuit 25B is for inverting the logical product output from the AND circuit 25C. Therefore, in this embodiment, by directly inputting the logical product output from the AND circuit 25C to the output unit 26, the instruction code input via the instruction cache / TLB unit 11 corresponds to a branch instruction. Moreover, when the DATA-V signal from the data valid signal generation circuit 44 rises, the data (predicted address) in the TADR 23 is output through the output unit 26.
【0070】また、出力部27に、AND回路25Cか
らの論理積信号をNOT回路25Bにより反転した信号
を入力することにより、命令キャッシュ/TLB部11
を介して入力される命令コードが分岐命令以外のもので
ある場合、もしくは、データバリッド信号生成回路44
からのDATA−V信号が“0”(無効化時,不許可
時)である場合には、PFPC24におけるデータ(予
測アドレス)が出力部27を通じて出力されるようにな
っている。Further, by inputting a signal obtained by inverting the logical product signal from the AND circuit 25C by the NOT circuit 25B to the output unit 27, the instruction cache / TLB unit 11
If the instruction code input via the instruction is other than a branch instruction, or the data valid signal generation circuit 44
When the DATA-V signal from is 0 (invalidation, non-permission), the data (predicted address) in the PFPC 24 is output through the output unit 27.
【0071】さらに、本実施例のAND回路29は、A
ND回路25Cからの論理積信号とNOT回路28から
の信号との論理積をとり、その論理積結果を、TADR
23による分岐命令フェッチ要求を取り消すためのキャ
ンセル信号として出力するものである。つまり、AND
回路29からの出力信号は、命令レジスタ43の命令コ
ードが分岐命令に相当するものであり、データバリッド
信号生成回路44からのDATA−V信号が立ち上がっ
り、且つ、その命令コードについてのキャッシュ検索結
果がミスヒット(“0”値信号)である場合に“0”か
ら“1”に立ち上がり、その分岐命令フェッチ要求を取
り消して無効化操作を行なうようになっている。Further, the AND circuit 29 of this embodiment is
The logical product of the logical product signal from the ND circuit 25C and the signal from the NOT circuit 28 is calculated, and the logical product result is TADR.
It is output as a cancel signal for canceling the branch instruction fetch request by 23. That is, AND
The output signal from the circuit 29 is such that the instruction code of the instruction register 43 corresponds to a branch instruction, the DATA-V signal from the data valid signal generation circuit 44 rises, and the cache search result for the instruction code. Is a mishit ("0" value signal), it rises from "0" to "1" and cancels the branch instruction fetch request to perform the invalidation operation.
【0072】なお、本実施例の各CPU1の命令キャッ
シュ36は、そのキャッシュディレクトリ部36Bにお
けるValid(バリッドビット)を電源投入時にハー
ドウエア的に初期化できるリセット付きのものとして構
成されている。ところで、上述のようなCPU1を図8
に示すように多重化した場合、メモリ3から各CPU1
へのデータは全て同じもの与えられるので、メモリ3か
らのデータをバイパスした場合、命令レジスタ43に転
送されるデータは、全CPU1において同じになる。The instruction cache 36 of each CPU 1 of this embodiment is constructed with a reset capable of hardware initialization of the Valid (valid bit) in the cache directory section 36B when the power is turned on. By the way, the CPU 1 as described above is installed in FIG.
In case of multiplexing as shown in FIG.
Since the same data is given to all the CPUs 1, the data transferred to the instruction register 43 becomes the same in all the CPUs 1 when the data from the memory 3 is bypassed.
【0073】また、全CPU1が同じ処理動作を行なっ
ていれば、命令キャッシュ36に登録されるデータも同
じになるので、キャッシュディレクトリ部36Bのバリ
ッドビット(Valid)が“1”の時にキャッシュデ
ータ部36Aから読み出されるデータは全CPU1にお
いて同じとなる。本実施例のデータバリッド信号生成回
路44からのDATA−V信号は、これらの場合のみ
“1”になるので、全CPU1が同じデータ(命令コー
ド)を命令レジスタ43に保持する場合のみ、デコーダ
15による命令レジスタ43の命令コードのデコード処
理,GR読出部16による命令レジスタ43の命令コー
ドに対応するデータの読出処理,分岐制御部25による
分岐制御処理を許可(有効化)することで、各CPU1
での処理動作の不一致は生じない。Further, if all CPUs 1 perform the same processing operation, the data registered in the instruction cache 36 will be the same, so when the valid bit (Valid) of the cache directory section 36B is "1", the cache data section The data read from 36A is the same in all CPUs 1. Since the DATA-V signal from the data valid signal generation circuit 44 of the present embodiment becomes "1" only in these cases, the decoder 15 can be used only when all the CPUs 1 hold the same data (instruction code) in the instruction register 43. By permitting (validating) the decoding process of the instruction code of the instruction register 43 by the CPU, the reading process of the data corresponding to the instruction code of the instruction register 43 by the GR reading unit 16, and the branch control process by the branch control unit 25, each CPU 1
There is no discrepancy in processing operations in.
【0074】これらの処理は、タグ比較部39によりキ
ャッシュミスヒットと判定されることで無効化される場
合もあるが、その場合でも、前述したDATA−V信号
による各処理の許可を行なうことで、全CPU1が同一
データ(命令コード)により同一処理を行なうことは保
証される。また、このとき、データバリッド信号生成回
路44により生成されるDATA−V信号は、命令キャ
ッシュ/TLB部11のタグ比較部39からのキャッシ
ュヒット/ミスヒット信号と異なり、命令コードを命令
レジスタ43に格納すると同時(図6にて説明するDス
テージへの移行とほぼ同時)に得られるものであるの
で、このDATA−V信号によりデコード処理等を有効
化することは容易である。These processes may be invalidated by the tag comparing unit 39 when it is judged as a cache mishit, but even in that case, by permitting each process by the DATA-V signal described above. , All CPUs 1 are guaranteed to perform the same processing with the same data (instruction code). At this time, the DATA-V signal generated by the data valid signal generation circuit 44 differs from the cache hit / miss hit signal from the tag comparison unit 39 of the instruction cache / TLB unit 11 in that the instruction code is stored in the instruction register 43. Since it is obtained at the same time when it is stored (almost at the same time as the shift to the D stage described in FIG. 6), it is easy to validate the decoding process and the like by this DATA-V signal.
【0075】次に、命令キャッシュ36を使用する場合
(PSW30のNICフラグ30Aが“0”設定の場
合)の本実施例のCPU1のパイプライン処理動作につ
いて、図6により詳細に説明する。なお、図6は、図1
0と同様に、処理タイミングに、その処理を行なうCP
U1の構成部分を対応させて示すタイミングチャート
で、IF−reqステージ,IFステージ,Dステー
ジ,EステージおよびWステージの5つの処理ステージ
がある。Next, the pipeline processing operation of the CPU 1 of this embodiment when the instruction cache 36 is used (when the NIC flag 30A of the PSW 30 is set to "0") will be described in detail with reference to FIG. Note that FIG. 6 corresponds to FIG.
As with 0, the CP that performs the processing at the processing timing
It is a timing chart showing the constituent parts of U1 in association with each other, and there are five processing stages of IF-req stage, IF stage, D stage, E stage and W stage.
【0076】まず、IF−reqステージでは、命令実
行部10からメモリ3に対するフェッチ要求を行ない、
そのフェッチ要求対象となる命令コードのアドレス(命
令アドレス)を命令アドレスレジスタ35に格納する。
IFステージでは、命令アドレスレジスタ35に格納さ
れたアドレスに基づいて、命令キャッシュ36のキャッ
シュデータ部36Aおよびキャッシュディレクトリ部3
6Bと、TLB37とを同時に検索し、検索された結果
をそれぞれ命令レジスタ43およびレジスタ36C,3
8に格納する。First, in the IF-req stage, the instruction execution unit 10 issues a fetch request to the memory 3,
The address (instruction address) of the instruction code to be the fetch request target is stored in the instruction address register 35.
In the IF stage, the cache data unit 36A and the cache directory unit 3 of the instruction cache 36 are based on the address stored in the instruction address register 35.
6B and TLB 37 are searched at the same time, and the searched results are respectively returned to the instruction register 43 and the registers 36C and 3C.
Store in 8.
【0077】ここでは、命令キャッシュ36はダイレク
トマップ方式を採用しており、命令アドレスが命令アド
レスレジスタ35に与えられると、唯一エントリが選択
されて読み出される。このとき、前述した通り、キャッ
シュデータ部36Aとキャッシュディレクトリ部36B
とからデータ(命令コード)およびディレクトリ情報が
同時に読み出され、データ(命令コード)はそのまま命
令レジスタ43に格納されている。Here, the instruction cache 36 employs a direct map method, and when an instruction address is given to the instruction address register 35, only one entry is selected and read. At this time, as described above, the cache data unit 36A and the cache directory unit 36B
The data (instruction code) and the directory information are simultaneously read from and, and the data (instruction code) is stored in the instruction register 43 as it is.
【0078】そして、本実施例では、この時点で、デー
タバリッド信号生成回路44により、デコーダ15によ
る命令レジスタ43の命令コードのデコード処理,GR
読出部16による命令レジスタ43の命令コードに対応
するデータの読出処理,分岐制御部25による分岐制御
処理を許可(有効化)するか否かを判定する。つまり、
前述した通り、メモリ3からデータ(命令コード)をバ
イパスして命令レジスタ43に格納した場合、もしく
は、命令キャッシュ36の使用モードで且つ命令レジス
タ43の命令コードがキャッシュディレクトリ部36B
で有効フラグを設定されたものである場合のいずれかの
場合に、データバリッド信号生成回路44からのDAT
A−V信号は“0”から“1”に立ち上がり、各処理を
許可する。In this embodiment, at this point, the data valid signal generation circuit 44 decodes the instruction code of the instruction register 43 by the decoder 15 and GR.
It is determined whether the reading process of the data corresponding to the instruction code of the instruction register 43 by the reading unit 16 and the branch control process by the branch control unit 25 are permitted (validated). That is,
As described above, when the data (instruction code) is bypassed from the memory 3 and stored in the instruction register 43, or when the instruction cache 36 is in the use mode and the instruction code of the instruction register 43 is the cache directory section 36B.
DAT from the data valid signal generation circuit 44 in any of the cases where the valid flag is set in
The AV signal rises from "0" to "1" and permits each processing.
【0079】図6に示す例では、命令キャッシュ36の
使用モードで、且つ、命令レジスタ43の命令コードが
キャッシュディレクトリ部36Bで有効フラグを設定さ
れているものとすると、NICフラグ30Aが“0”で
且つキャッシュディレクトリ部36BのValidが
“1”であるので、データバリッド信号生成回路44か
らのDATA−V信号は、図6に示すように、Dステー
ジに移行するとほぼ同時に“0”から“1”に立ち上が
り、デコーダ15,GR読出部16,分岐制御部25に
よる各処理が許可(有効化)される。In the example shown in FIG. 6, assuming that the instruction cache 36 is in the use mode and the instruction code of the instruction register 43 has the valid flag set in the cache directory section 36B, the NIC flag 30A is "0". Moreover, since the Valid of the cache directory unit 36B is "1", the DATA-V signal from the data valid signal generation circuit 44 shifts from "0" to "1" at almost the same time when it shifts to the D stage as shown in FIG. ", The respective processes by the decoder 15, the GR reading unit 16, and the branch control unit 25 are permitted (validated).
【0080】従って、以降、図10に前述した例と同様
に、Dステージでは、デコーダ15により命令レジスタ
43に格納された命令コードを解読し、そのデコード結
果(function)をレジスタ19に格納する。また、この
デコード処理と並行して、命令キャッシュ36のレジス
タ36Cに読み出されたValidが“1”でありアド
レス変換モード(PSW30のVAフラグ30Bが
“1”設定)である場合、タグ比較部39により、レジ
スタ36C,38に読み出されたデータ〔ディレクトリ
情報(PTAG),LTAG等〕と命令アドレスレジス
タ35に格納された命令アドレスとに基づいて、その命
令アドレスに対応する命令コードが実際にキャッシュデ
ータ部36Aに格納されているか否か(キャッシュヒッ
トかキャッシュミスヒットか)を判定する。Therefore, thereafter, similarly to the example described above with reference to FIG. 10, in the D stage, the decoder 15 decodes the instruction code stored in the instruction register 43 and stores the decoding result (function) in the register 19. Further, in parallel with this decoding process, when the Valid read in the register 36C of the instruction cache 36 is "1" and the address conversion mode is set (the VA flag 30B of the PSW 30 is set to "1"), the tag comparison unit Based on the data [directory information (PTAG), LTAG, etc.] read to the registers 36C and 38 and the instruction address stored in the instruction address register 35, the instruction code corresponding to that instruction address is actually It is determined whether or not it is stored in the cache data unit 36A (whether it is a cache hit or a cache miss hit).
【0081】さらに、上述のデコード処理とキャッシュ
ヒット/ミス判定処理と並行して、GR読出部16によ
り、命令レジスタ43の命令コードに応じてその命令に
対応する処理に必要なデータ(オペランドキャッシュ/
TLB部12を介してGRに格納されたオペランド等)
をGRから読み出してレジスタ20に格納する。また、
分岐制御部25の分岐命令検出部25Aにより、命令レ
ジスタ43の命令コードが分岐命令に相当するものであ
るか否かを検出し、分岐命令に相当するものである場合
には、AND回路25Cを介して出力部26へ“1”信
号を出力することにより、TADR23におけるデータ
(分岐命令に対応した予測アドレス)を命令アドレスレ
ジスタ35へ出力する。一方、命令コードが分岐命令以
外のもである場合には、AND回路25CおよびNOT
回路25Bを介して出力部27へ“1”信号を出力する
ことにより、PFPC24におけるデータ(予測アドレ
ス)を命令アドレスレジスタ35へ出力する。Further, in parallel with the above-mentioned decoding process and cache hit / miss determination process, the GR read unit 16 performs data (operand cache / operator cache / data required for the process corresponding to the instruction code of the instruction register 43 according to the instruction code.
Operands stored in GR via TLB unit 12)
Is read from GR and stored in register 20. Also,
The branch instruction detection unit 25A of the branch control unit 25 detects whether or not the instruction code of the instruction register 43 corresponds to a branch instruction. If the instruction code corresponds to a branch instruction, the AND circuit 25C is activated. The data (predicted address corresponding to the branch instruction) in the TADR 23 is output to the instruction address register 35 by outputting the “1” signal to the output unit 26 via the output unit 26. On the other hand, when the instruction code is other than the branch instruction, the AND circuit 25C and NOT
The data (predicted address) in the PFPC 24 is output to the instruction address register 35 by outputting the “1” signal to the output unit 27 via the circuit 25B.
【0082】Dステージにおいて、タグ比較部39によ
る比較の結果、キャッシュヒットであった場合には、こ
のタグ比較部39からのキャッシュヒット(HIT)信
号に応じて、命令実行部10のデコーダ15によるデコ
ード結果(レジスタ19の内容)およびGR読出部16
による読出結果(レジスタ20の内容)が有効なものに
なり、Eステージへ移行するとともに、TADR23ま
たはPFPC24から出力された予測アドレスに基づく
IF−req処理およびIF処理が実行される。In the D stage, if the result of the comparison by the tag comparison unit 39 is a cache hit, the decoder 15 of the instruction execution unit 10 responds to the cache hit (HIT) signal from the tag comparison unit 39. Decoding result (contents of register 19) and GR reading unit 16
The read result (contents of the register 20) becomes valid, the process moves to the E stage, and the IF-req process and the IF process based on the predicted address output from the TADR 23 or the PFPC 24 are executed.
【0083】Eステージでは、ALU17により、レジ
スタ20に格納されているデータ(オペランド)に対し
て、レジスタ19に格納されている命令コードのデコー
ド結果(function)に応じた所定の論理演算処理を施
し、その結果をレジスタ21に書き込み、Wステージで
は、GR書込部18により、レジスタ21に格納されて
いる論理演算結果をGRに書き込んで一連の処理を終了
する。At the E stage, the ALU 17 performs a predetermined logical operation process on the data (operand) stored in the register 20 according to the decoding result (function) of the instruction code stored in the register 19. The result is written in the register 21, and in the W stage, the GR writing unit 18 writes the result of the logical operation stored in the register 21 in GR, and the series of processes is ended.
【0084】一方、タグ比較部39による比較の結果、
キャッシュミスヒットであった場合には、命令実行部1
0のデコーダ15によるデコード結果(レジスタ19の
内容)およびGR読出部16による読出結果(レジスタ
20の内容)は無効化され、Eステージに移行しない。
そして、命令アドレスレジスタ35に格納されている命
令アドレスに対応する真のデータ(命令コード)がメモ
リ3から読み出され、命令レジスタ43に格納するのを
待つことになる。On the other hand, as a result of comparison by the tag comparison unit 39,
If there is a cache miss hit, the instruction execution unit 1
The result of decoding by the decoder 15 of 0 (contents of the register 19) and the result of reading by the GR reading unit 16 (contents of the register 20) are invalidated, and the E stage is not entered.
Then, it waits until the true data (instruction code) corresponding to the instruction address stored in the instruction address register 35 is read from the memory 3 and stored in the instruction register 43.
【0085】このとき、メモリ3から読み出された命令
コードは、キャッシュ制御部42により、バイパス線4
1,セレクタ40を介して命令レジスタ43に格納され
るとともに、その命令アドレスの一部をキーとして命令
キャッシュ36に格納される。また、上述のように、タ
グ比較部39による比較の結果、キャッシュミスヒット
であった場合で、その時、命令レジスタ43に格納され
ていた命令コードが分岐命令に相当するものであった場
合には、AND回路29からの出力信号(キャンセル信
号)が“0”から“1”に立ち上がり、TADR23か
ら出力された予測アドレスに基づく分岐命令フェッチ要
求が取り消される。At this time, the instruction code read from the memory 3 is processed by the cache control unit 42 into the bypass line 4
1, stored in the instruction register 43 via the selector 40, and also stored in the instruction cache 36 using a part of the instruction address as a key. Further, as described above, when the result of the comparison by the tag comparison unit 39 is a cache mishit, and when the instruction code stored in the instruction register 43 at that time corresponds to a branch instruction, The output signal (cancellation signal) from the AND circuit 29 rises from “0” to “1”, and the branch instruction fetch request based on the predicted address output from the TADR 23 is canceled.
【0086】このように、本発明の第1実施例によれ
ば、全CPU1が同一の命令コードを命令レジスタ43
に保持する状態となる場合のみ、データバリッド信号生
成回路44により、デコード処理等を許可するDATA
−V信号をDステージへの移行とほぼ同時に出力できる
ので、キャッシュヒット/ミス判定結果がタグ比較部3
9から得られるまでの間(Dステージ期間中)も、全C
PU1が同一の命令コードに応じて同一の処理動作を行
なうことができ、各CPU1が異なった動作をするのを
確実に防止でき、多重化されたデータ処理装置の信頼性
を大幅に向上することができる。As described above, according to the first embodiment of the present invention, all the CPUs 1 output the same instruction code to the instruction register 43.
The data valid signal generation circuit 44 allows DATA to permit decoding processing only when the data is held in
Since the -V signal can be output almost at the same time as the transition to the D stage, the cache hit / miss determination result is the tag comparison unit 3.
During the period from 9th (D stage period), all C
The PU1 can perform the same processing operation according to the same instruction code, can reliably prevent each CPU1 from performing different operations, and greatly improve the reliability of the multiplexed data processing device. You can
【0087】なお、上述した実施例では、セレクタ4
0,バイパス線41,キャッシュ制御部42からなるバ
イパス転送部をそなえ、且つ、NICフラグ30Aによ
り命令キャッシュ36の使用モード/不使用モードを設
定する場合について説明したが、これらのバイパス転送
部によるバイパスやNICフラグ30Aによる使用モー
ド/不使用モード設定を行なわない場合(例えば図1参
照)にも、本発明は適用される。In the above embodiment, the selector 4
0, the bypass line 41, the bypass control unit including the cache control unit 42, and the use mode / non-use mode of the instruction cache 36 is set by the NIC flag 30A have been described. The present invention is also applied to the case where the use mode / non-use mode setting by the NIC flag 30A is not performed (see, for example, FIG. 1).
【0088】この場合も、全CPU1が同じ処理動作を
行なっていれば、命令キャッシュ36に登録されるデー
タも同じになるので、キャッシュディレクトリ部36B
のバリッドビット(Valid)が“1”の時にキャッ
シュデータ部36Aから読み出されるデータは全CPU
1において同じとなる。従って、データバリッド信号生
成回路(デコード許可判定部,例えば図1の符号55参
照)により、命令レジスタ43の命令コードについてキ
ャッシュディレクトリ部36Bに有効フラグ(Vali
d=1)が設定されている場合にDATA−V信号(デ
コード許可信号)を立ち上げることで、上述した実施例
と同様の作用効果が得られる。Also in this case, if all CPUs 1 perform the same processing operation, the data registered in the instruction cache 36 will be the same, so the cache directory section 36B will be the same.
Data read from the cache data unit 36A when the valid bit (Valid) is "1"
It becomes the same in 1. Therefore, the data valid signal generation circuit (decoding permission determination unit, for example, refer to reference numeral 55 in FIG. 1) causes the cache directory unit 36B to store the valid flag (Vali) for the instruction code of the instruction register 43.
By raising the DATA-V signal (decoding permission signal) when d = 1) is set, the same operational effect as the above-described embodiment can be obtained.
【0089】また、上記バイパス転送部によるバイパス
は行なうが、NICフラグ30Aによる使用モード/不
使用モード設定を行なわない場合(例えば図2参照)に
も、本発明は適用される。この場合、全CPU1が同じ
処理動作を行なっていれば、命令キャッシュ36に登録
されるデータも同じになるほか、メモリ3からのデータ
をバイパスした時も命令レジスタ43に転送されるデー
タは全CPU1において同じになるので、命令レジスタ
43の命令コードについてキャッシュディレクトリ部3
6Bに有効フラグ(Valid=1)が設定されている
場合、または、キャッシュ制御部42にてバイパス線4
1側を選択している場合(バイパスセレクト信号=
“1”)に、データバリッド信号生成回路(デコード許
可判定部,例えば図2の符号57参照)により、DAT
A−V信号(デコード許可信号)を立ち上げることで、
上述した実施例と同様の作用効果が得られる。The present invention is also applied to the case where the bypass transfer unit performs the bypass but does not set the use mode / non-use mode by the NIC flag 30A (see FIG. 2, for example). In this case, if all the CPUs 1 perform the same processing operation, the data registered in the instruction cache 36 will be the same, and the data transferred to the instruction register 43 even when the data from the memory 3 is bypassed. Therefore, the instruction code of the instruction register 43 is the same in the cache directory unit 3
6B has a valid flag (Valid = 1) set, or the cache controller 42 bypasses the bypass line 4
When 1 side is selected (bypass select signal =
"1"), the data valid signal generation circuit (decoding permission determination unit, for example, reference numeral 57 in FIG. 2) causes the DAT
By raising the AV signal (decoding enable signal),
The same effect as that of the above-described embodiment can be obtained.
【0090】(b)第2実施例の説明 図7は本発明の第2実施例としてのデータ処理装置にお
けるデータ処理部(CPU)の構成を機能的に示すブロ
ック図である。なお、本実施例のデータ処理装置も、全
体構成としては図8に示すものと同様に構成されてお
り、複数のCPU(データ処理部)1がMCU2を介し
て共通のメモリ(主記憶部)3に接続され、各CPU1
は、MCU2を介してメモリ3から同一データを読み出
し、同一処理動作を行なっている。(B) Description of Second Embodiment FIG. 7 is a block diagram functionally showing the structure of a data processing unit (CPU) in a data processing apparatus as a second embodiment of the present invention. The data processing device of this embodiment is also configured as shown in FIG. 8 as an overall configuration, and a plurality of CPUs (data processing units) 1 share a common memory (main storage unit) via the MCU 2. 3 connected to each CPU 1
Read the same data from the memory 3 via the MCU 2 and perform the same processing operation.
【0091】そして、第2実施例における各CPU1は
図7に示すように構成されているが、本実施例のCPU
1は、図9に示したものとほぼ同様に構成されているの
で、ここで、図7には、新たに追加された第2実施例の
特徴となる部分と、その関連構成部分とを示し、図9に
示すものと同一部分には同一の符号を付し、その詳細な
説明は省略する。Each CPU 1 in the second embodiment is constructed as shown in FIG.
1 is configured almost the same as that shown in FIG. 9, and therefore, FIG. 7 shows a characteristic part of the newly added second embodiment and its related constituent parts. 9, the same parts as those shown in FIG. 9 are designated by the same reference numerals, and detailed description thereof will be omitted.
【0092】図7に示すように、本実施例の各CPU1
には、汎用レジスタ(RG)45,一時記憶用レジスタ
(TMPREG;Temporary Register)46,セレクタ
47,初期化データ生成部(初期化手段)48およびセ
レクタ49,50が新たにそなえられるほか、命令キャ
ッシュ36の初期化すべきエントリを指定するととも
に、当該エントリに書き込むべき初期化データをオペラ
ンドとして指定し、初期化を行なうフラッシュキャッシ
ュ命令(初期化命令,図7の命令レジスタ43内参照)
が予め定義されている。As shown in FIG. 7, each CPU 1 of this embodiment
In addition to a general-purpose register (RG) 45, a temporary storage register (TMPREG; Temporary Register) 46, a selector 47, an initialization data generation unit (initialization means) 48, and selectors 49 and 50, an instruction cache is also provided. A flash cache instruction that initializes 36 entries by specifying the entry to be initialized and the initialization data to be written to the entry as an operand (initialization instruction, see instruction register 43 in FIG. 7)
Is defined in advance.
【0093】ここで、汎用レジスタ45は、命令レジス
タ43にフラッシュキャッシュ命令が格納された場合
に、その命令中に設定される、命令キャッシュ36の初
期化すべきエントリを与えるための情報GRbを格納す
るものである。また、一時記憶用レジスタ46は、汎用
レジスタ45の情報GRbとフラッシュキャッシュ命令
中のオフセット(OFFSET)とのALU17による
加算結果、つまり命令キャッシュ36の初期化すべきエ
ントリを一時的に格納するものである。Here, the general-purpose register 45 stores information GRb for giving an entry to be initialized in the instruction cache 36, which is set in the instruction cache 43 when the instruction is stored in the instruction register 43. It is a thing. The temporary storage register 46 temporarily stores the addition result by the ALU 17 of the information GRb of the general-purpose register 45 and the offset (OFFSET) in the flash cache instruction, that is, the entry to be initialized of the instruction cache 36. .
【0094】セレクタ47は、図5,図9により前述し
た出力部26,27としての機能を併せもち、通常時は
出力部26,27と同様にTADR23,PFPC24
の選択制御を行なう一方、フラッシュキャッシュ命令を
受けた場合には、一時記憶用レジスタ46のデータ(指
定エントリ,命令アドレス)を選択して命令キャッシュ
36のキャッシュデータ部36Aおよびキャッシュディ
レクトリ部36Bへ出力するものである。The selector 47 also has the functions as the output units 26 and 27 described above with reference to FIGS. 5 and 9, and normally, the TADR 23 and the PFPC 24 are the same as the output units 26 and 27.
On the other hand, when a flash cache instruction is received, the data (designated entry, instruction address) of the temporary storage register 46 is selected and output to the cache data section 36A and the cache directory section 36B of the instruction cache 36. To do.
【0095】初期化データ生成部(初期化手段)48
は、フラッシュキャッシュ命令を受けた場合に、その命
令中の指定エントリに書き込むべき初期化データを一旦
保持する汎用レジスタ48Aを有しており、命令キャッ
シュ36の初期化時には、その汎用レジスタ48Aのデ
ータを、キャッシュデータ部36Aへ書き込むことによ
り、キャッシュデータ部36Aにおける命令コードを初
期化するものである。Initialization data generation unit (initialization means) 48
Has a general-purpose register 48A that temporarily retains initialization data to be written in a designated entry in the instruction when the flash cache instruction is received. When the instruction cache 36 is initialized, the data of the general-purpose register 48A is stored. Is written in the cache data unit 36A to initialize the instruction code in the cache data unit 36A.
【0096】セレクタ49は、通常、外部のメモリ3か
らのデータを選択してキャッシュデータ部36Aへ書込
入力する一方、フラッシュキャッシュ命令を受けた場合
には、キャッシュ制御部42の指示により初期化データ
生成部48側へ切り換えられ、初期化データ生成部48
からの初期化データを選択してキャッシュデータ部36
Aへ書込入力するものである。The selector 49 normally selects the data from the external memory 3 and writes and inputs it to the cache data section 36A. On the other hand, when receiving the flash cache instruction, the selector 49 initializes it by the instruction of the cache control section 42. The initialization data generation unit 48 is switched to the data generation unit 48 side.
Select the initialization data from the cache data section 36
The data is input to A.
【0097】セレクタ50は、通常、キャッシュ制御部
42からの登録データについてのディレクトリ情報を選
択してキャッシュディレクトリ部36Bへ書込入力する
一方、フラッシュキャッシュ命令を受けた場合には、キ
ャッシュ制御部42の指示により初期化データ(Val
id=“0”)を選択してキャッシュディレクトリ部3
6Bへ書込入力するものである。The selector 50 normally selects the directory information about the registration data from the cache control unit 42 and writes and inputs it to the cache directory unit 36B. On the other hand, when the flash cache command is received, the cache control unit 42 is selected. The initialization data (Val
Select id = "0") and select cache directory section 3
6B is input by writing.
【0098】そして、本実施例では、電源投入時もしく
はNICフラグ30Aによる命令キャッシュ36の不使
用モードから使用モードへの切換時に、命令実行部10
のPSW30におけるNICフラグ30Aを所定期間だ
け“1”にして命令キャッシュ36の不使用モードを保
持した後、命令実行部10のPSW30におけるNIC
フラグ30Aを“0”にして命令キャッシュ36の使用
モードに切り換えるようになっている。In this embodiment, when the power is turned on or when the instruction flag 36 is switched from the non-use mode to the use mode by the NIC flag 30A, the instruction executing section 10 is used.
The NIC flag 30A in the PSW 30 is set to "1" for a predetermined period to hold the non-use mode of the instruction cache 36, and then the NIC in the PSW 30 of the instruction execution unit 10
The flag 30A is set to "0" to switch to the instruction cache 36 usage mode.
【0099】また、本実施例のキャッシュ制御部42
は、命令バッファ43に格納された命令コードのOPC
ODEがデコーダ15によりフラッシュキャッシュ命令
であると解読されると、命令キャッシュ36の不使用モ
ード期間中に、セレクタ49,50をそれぞれ初期化デ
ータ生成部48,初期化データ(Valid=“0”)
側に切り換え、汎用レジスタ48Aの初期化データおよ
びValid=“0”を、一時記憶用レジスタ46の指
定エントリに応じて、それぞれキャッシュデータ部36
Aおよびキャッシュディレクトリ部36Bに書き込むよ
うに切換制御するものである。Further, the cache control unit 42 of the present embodiment.
Is the OPC of the instruction code stored in the instruction buffer 43.
When the ODE is decoded by the decoder 15 as a flash cache instruction, the selectors 49 and 50 are set to the initialization data generation unit 48 and initialization data (Valid = "0") during the non-use mode of the instruction cache 36, respectively.
To the cache data section 36 according to the designated entry of the temporary storage register 46 and the initialization data of the general-purpose register 48A and Valid = "0".
The switching control is performed so that the data is written in A and the cache directory unit 36B.
【0100】上述の構成により、フラッシュキャッシュ
命令による初期化指令時には、電源投入時もしくはNI
Cフラグ30Aによる命令キャッシュ36の不使用モー
ドから使用モードへの切換時には、命令実行部10のP
SW30におけるNICフラグ30Aを所定期間だけ
“1”にして命令キャッシュ36の不使用モードを保持
する。With the above configuration, when the initialization command is issued by the flash cache command, the power is turned on or the NI
When the instruction cache 36 is switched from the nonuse mode to the use mode by the C flag 30A, the P of the instruction execution unit 10 is changed.
The NIC flag 30A in the SW 30 is set to "1" only for a predetermined period to keep the instruction cache 36 in the non-use mode.
【0101】また、命令レジスタ43に格納されたフラ
ッシュキャッシュ命令に応じて、その命令中の情報(G
Rb,OFFSET)に基づいて初期化対象となる命令
キャッシュ36の指定エントリをALU17にて演算し
て一時記憶用レジスタ46に格納するとともに、その指
定エントリに格納すべき初期化データを初期化データ生
成部48の汎用レジスタ48Aに格納する。In addition, according to the flash cache instruction stored in the instruction register 43, the information (G
Rb, OFFSET), the specified entry of the instruction cache 36 to be initialized is calculated by the ALU 17 and stored in the temporary storage register 46, and the initialization data to be stored in the specified entry is generated as initialization data. The data is stored in the general-purpose register 48A of the unit 48.
【0102】そして、デコーダ15による解読結果(f
lash)を受けたキャッシュ制御部42により、命令
キャッシュ36の不使用モード期間中に、セレクタ4
9,50がそれぞれ初期化データ生成部48,初期化デ
ータ(Valid=“0”)側に切り換えられ、汎用レ
ジスタ48Aの初期化データおよびValid=“0”
が、一時記憶用レジスタ46の指定エントリに応じて、
それぞれキャッシュデータ部36Aおよびキャッシュデ
ィレクトリ部36Bに書き込まれ、命令キャッシュ36
内のデータ(命令コード,ディレクトリ情報)が初期化
される。Then, the decoding result (f
The cache control unit 42 that has received the "lash" causes the selector 4 to operate during the unused mode period of the instruction cache 36.
Reference numerals 9 and 50 are switched to the initialization data generation unit 48 and the initialization data (Valid = "0") side, respectively, and the initialization data of the general-purpose register 48A and Valid = "0".
Depending on the designated entry of the temporary storage register 46,
The instruction cache 36 is written in the cache data unit 36A and the cache directory unit 36B, respectively.
The internal data (instruction code, directory information) is initialized.
【0103】このような初期化処理を終了すると、命令
実行部10のPSW30におけるNICフラグ30Aが
“0”に切り換えられて命令キャッシュ36の使用モー
ドに切り換えられる。このように、本発明の第2実施例
によれば、命令キャッシュ36を使用する直前に、各C
PU1においてキャッシュディレクトリ部36Bの有効
フラグ(Valid)とキャッシュデータ部36Aの命
令コードとが初期化されるため、全CPU1の命令キャ
ッシュ36に同じデータ(命令コード)を書き込むこと
ができ、第1実施例と同様に、全CPU1が同一の命令
コードに応じて同一の処理動作を行なうことができ、各
CPU1が異なった動作をするのを確実に防止でき、多
重化されたデータ処理装置の信頼性を大幅に向上するこ
とができる。Upon completion of such initialization processing, the NIC flag 30A in the PSW 30 of the instruction executing section 10 is switched to "0" and the instruction cache 36 is switched to the usage mode. As described above, according to the second embodiment of the present invention, each C immediately before the instruction cache 36 is used.
Since the valid flag (Valid) of the cache directory unit 36B and the instruction code of the cache data unit 36A are initialized in PU1, the same data (instruction code) can be written in the instruction caches 36 of all CPUs 1. Similar to the example, all CPUs 1 can perform the same processing operation in accordance with the same instruction code, each CPU 1 can be surely prevented from performing different operations, and the reliability of the multiplexed data processing device can be improved. Can be greatly improved.
【0104】また、命令キャッシュ36の初期化すべき
エントリとそのエントリに書き込むべき初期化データと
をフラッシュキャッシュ命令により指定することができ
るので、任意のエントリにおけるデータ(命令コード)
を自由に初期化設定することができ、初期化データのパ
ターンを任意に設定でき、各CPU1についてのテスト
を行なう場合などに極めて便利である。Further, since the entry to be initialized in the instruction cache 36 and the initialization data to be written in the entry can be designated by the flash cache instruction, the data (instruction code) in any entry can be specified.
Can be freely initialized and the initialization data pattern can be arbitrarily set, which is extremely convenient when performing a test on each CPU 1.
【0105】なお、上述した第2実施例では、命令キャ
ッシュ36の初期化すべきエントリとそのエントリに書
き込むべき初期化データとをフラッシュキャッシュ命令
により指定する場合について説明したが、初期化時に
は、初期化データ生成部48で所定パターンの初期化デ
ータ(例えばオール“0”)を生成し、その初期化デー
タをキャッシュデータ部36Aの全エントリに書込入力
するとともに、キャッシュディレクトリ部36Bの全エ
ントリにValid=“0”を書込入力するように構成
してもよい。In the above-described second embodiment, the case where the entry to be initialized in the instruction cache 36 and the initialization data to be written in the entry are specified by the flash cache instruction has been described. The data generation unit 48 generates initialization data of a predetermined pattern (for example, all “0”), writes the initialization data into all the entries of the cache data unit 36A, and inputs the Valid data in all the entries of the cache directory unit 36B. You may comprise so that == "0" may be written in and input.
【0106】[0106]
【発明の効果】以上詳述したように、本発明のデータ処
理装置(請求項1)によれば、バッファ記憶部から読み
出された命令コードについてのディレクトリ部に有効フ
ラグが設定されている場合、各データ処理部のデコード
許可判定部によりデコーダのデコード処理を許可するこ
とで、その命令コードのバッファ記憶部からの読出後に
ヒット/ミスヒット判定が得られるまでの間、全てのデ
ータ処理部が同一の命令コードに応じて同一の処理動作
を行なうことができ、各データ処理部が異なった動作を
するのを確実に防止でき、データ処理装置の信頼性向上
に大きく寄与する効果がある。As described in detail above, according to the data processor of the present invention (claim 1), when the valid flag is set in the directory section for the instruction code read from the buffer storage section. By permitting the decoding process of the decoder by the decoding permission determination unit of each data processing unit, all the data processing units are operated until the hit / miss hit determination is obtained after the instruction code is read from the buffer storage unit. The same processing operation can be performed according to the same instruction code, each data processing unit can be reliably prevented from performing different operations, and there is an effect that it greatly contributes to the improvement of the reliability of the data processing device.
【0107】また、本発明のデータ処理装置(請求項
2)によれば、バッファ記憶部から読み出された命令コ
ードについてのディレクトリ部に有効フラグが設定され
ている場合、または、ミスヒット判定によりバイパス転
送部を介し主記憶部から命令コードを読み出した場合
に、各データ処理部のデコード許可判定部によりデコー
ダのデコード処理を許可することで、その命令コードの
バッファ記憶部からの読出後にヒット/ミスヒット判定
が得られるまでの間、全てのデータ処理部が同一の命令
コードに応じて同一の処理動作を行なうことができ、各
データ処理部が異なった動作をするのを確実に防止で
き、データ処理装置の信頼性向上に大きく寄与する効果
がある。Further, according to the data processor of the present invention (claim 2), when the valid flag is set in the directory section for the instruction code read from the buffer storage section, or when the mishit judgment is made. When the instruction code is read from the main storage unit via the bypass transfer unit, the decoding permission determination unit of each data processing unit permits the decoding process of the decoder, so that a hit / hit occurs after the instruction code is read from the buffer storage unit. Until a mishit judgment is obtained, all data processing units can perform the same processing operation according to the same instruction code, and it is possible to reliably prevent each data processing unit from operating differently. This has the effect of greatly contributing to the improvement of the reliability of the data processing device.
【0108】さらに、本発明のデータ処理装置(請求項
3)によれば、フラグによりバッファ記憶部の使用モー
ドを設定し且つバッファ記憶部から読み出された命令コ
ードについてのディレクトリ部に有効フラグが設定され
ている場合、または、ミスヒット判定やフラグにてバッ
ファ記憶部の不使用モード設定によりバイパス転送部を
介し主記憶部から命令コードを読み出した場合に、各デ
ータ処理部のデコード許可判定部によりデコーダのデコ
ード処理を許可することで、その命令コードのバッファ
記憶部からの読出後にヒット/ミスヒット判定が得られ
るまでの間、全てのデータ処理部が同一の命令コードに
応じて同一の処理動作を行なうことができ、各データ処
理部が異なった動作をするのを確実に防止でき、データ
処理装置の信頼性向上に大きく寄与する効果がある。Further, according to the data processing apparatus of the present invention (claim 3), the use mode of the buffer storage unit is set by the flag, and the valid flag is set in the directory unit for the instruction code read from the buffer storage unit. If it is set, or if the instruction code is read from the main storage unit via the bypass transfer unit due to the mishit determination or the unused mode setting of the buffer storage unit using the flag, the decoding permission determination unit of each data processing unit By permitting the decoding process of the decoder by all the data processing units according to the same instruction code until the hit / miss hit judgment is obtained after the instruction code is read from the buffer storage unit. The operation of the data processing unit can be reliably prevented from operating differently, and the reliability of the data processing device can be improved. There is a large effect of contributing to the above.
【0109】このとき、デコーダによるデコード処理対
象の命令コードが分岐命令である場合には、分岐制御部
により、デコード許可判定部からのデコード許可信号に
応じて当該分岐命令の次の命令に対する読出要求を実行
することで(請求項4)、その命令コードのバッファ記
憶部からの読出後にヒット/ミスヒット判定が得られる
までの間の当該分岐命令の次命令に対する読出要求につ
いても、全てのデータ処理部内で同一の処理動作で行な
わせることができる。At this time, when the instruction code to be decoded by the decoder is a branch instruction, the branch control unit issues a read request for the instruction next to the branch instruction in response to the decode permission signal from the decode permission determination unit. (Claim 4), all data processing is performed even for a read request for the next instruction of the branch instruction until a hit / miss hit determination is obtained after the instruction code is read from the buffer storage unit. The same processing operation can be performed within the department.
【0110】また、本発明のデータ処理装置(請求項
5)によれば、バッファ記憶部を使用する直前に、初期
化手段により、各データ処理部においてディレクトリ部
の有効フラグとキャッシュデータ部の命令コードとを初
期化するように構成したので、全てのデータ処理部のバ
ッファ記憶部に同じデータ(命令コード)が書き込ま
れ、全てのデータ処理部が同一の命令コードに応じて同
一の処理動作を行なうことができ、各データ処理部が異
なった動作をするのを確実に防止でき、データ処理装置
の信頼性向上に大きく寄与する効果がある。Further, according to the data processing apparatus of the present invention (claim 5), immediately before the buffer storage section is used, the initialization means causes each data processing section to instruct the validity flag of the directory section and the instruction of the cache data section. Since the code is initialized, the same data (instruction code) is written in the buffer storage units of all the data processing units, and all the data processing units perform the same processing operation according to the same instruction code. This can be performed, and each data processing unit can be reliably prevented from operating differently, which has the effect of greatly contributing to the improvement of the reliability of the data processing device.
【0111】このとき、初期化手段の初期化データ生成
部により生成された所定パターンの初期化データを書き
込むことにより(請求項6)、所定パターンの命令コー
ドを初期化データとして書き込むことができる。また、
バッファ記憶部の初期化すべきエントリとそのエントリ
に書き込むべき初期化データとを初期化命令により指定
することにより(請求項7)、任意のエントリにおける
データ(命令コード)を自由に初期化設定でき、各デー
タ処理部についてのテストを行なう場合などに極めて便
利であるなどの効果もある。At this time, by writing the initialization data of the predetermined pattern generated by the initialization data generation unit of the initialization means (claim 6), the instruction code of the predetermined pattern can be written as the initialization data. Also,
Data (instruction code) in any entry can be freely initialized and set by designating the entry to be initialized in the buffer storage section and the initialization data to be written in the entry by the initialization instruction (claim 7). There is also an effect that it is extremely convenient when testing each data processing unit.
【図1】第1の発明の原理ブロック図である。FIG. 1 is a principle block diagram of a first invention.
【図2】第2の発明の原理ブロック図である。FIG. 2 is a principle block diagram of a second invention.
【図3】第3の発明の原理ブロック図である。FIG. 3 is a principle block diagram of a third invention.
【図4】第4の発明の原理ブロック図である。FIG. 4 is a principle block diagram of a fourth invention.
【図5】本発明の第1実施例としてのデータ処理装置に
おけるデータ処理部(CPU)の構成を機能的に示すブ
ロック図である。FIG. 5 is a block diagram functionally showing a configuration of a data processing unit (CPU) in the data processing device as the first embodiment of the present invention.
【図6】第1実施例の動作を説明すべく、処理タイミン
グに、その処理を行なう装置構成部分を対応させて示す
タイミングチャートである。FIG. 6 is a timing chart showing the processing timing in association with the processing timing in order to explain the operation of the first embodiment.
【図7】本発明の第2実施例としてのデータ処理装置に
おけるデータ処理部(CPU)の構成を機能的に示すブ
ロック図である。FIG. 7 is a block diagram functionally showing a configuration of a data processing unit (CPU) in a data processing device as a second embodiment of the present invention.
【図8】多重化された一般的なデータ処理装置を示すブ
ロック図である。FIG. 8 is a block diagram showing a general multiplexed data processing device.
【図9】一般的なデータ処理装置におけるデータ処理部
(CPU)の構成を機能的に示すブロック図である。FIG. 9 is a block diagram functionally showing a configuration of a data processing unit (CPU) in a general data processing device.
【図10】一般的なデータ処理装置におけるデータ処理
部の動作を説明すべく、処理タイミングに、その処理を
行なう装置構成部分を対応させて示すタイミングチャー
トである。FIG. 10 is a timing chart showing, in order to explain the operation of a data processing unit in a general data processing apparatus, the processing timing in correspondence with the apparatus configuration section for performing the processing.
1 CPU(データ処理部) 2 MCU(メモリ制御部) 3 メモリ(主記憶部) 4 入出力部(I/O) 10 命令実行部 11 命令キャッシュ/TLB部 12 オペランドキャッシュ/TLB部 15 デコーダ 16 GR読出部 17 ALU 18 GR書込部 19〜21 レジスタ 22 PC(プログラムカウンタ) 23 TADR(ターゲットアダー) 24 PFPC(プリフェッチプログラムカウンタ) 25 分岐制御部 25A 分岐命令検出部 25B NOT回路 25C AND回路 26,27 出力部 28 NOT回路 29 AND回路 30 PSW(プログラムステータスワード) 30A NICフラグ 30B VAフラグ 35 命令アドレスレジスタ 36 命令キャッシュ(バッファ記憶部) 36A キャッシュデータ部 36B キャッシュディレクトリ部 36C レジスタ 37 TLB(変換索引バッファ) 38 バッファ 39 タグ比較部 39A,39B 比較回路(CMP) 39C AND回路 40 セレクタ(バイパス転送部) 41 バイパス線(バイパス転送部) 42 キャッシュ制御部(バイパス転送部) 43 命令レジスタ 44 データバリッド信号生成回路(デコード許可判定
部) 44A NOT回路 44B AND回路 44C OR回路 45 汎用レジスタ(GR) 46 一時記憶用レジスタ(TMPREG) 47 セレクタ 48 初期化データ生成部(初期化手段) 48A 汎用レジスタ(GR) 49,50 セレクタ 51 データ処理部 52 主記憶部 53 バッファ記憶部 54 デコーダ 55 デコード許可判定部 56 バイパス転送部 57 デコード許可判定部 58 フラグ 59 デコード許可判定部 60 初期化手段1 CPU (data processing unit) 2 MCU (memory control unit) 3 memory (main storage unit) 4 input / output unit (I / O) 10 instruction execution unit 11 instruction cache / TLB unit 12 operand cache / TLB unit 15 decoder 16 GR Read unit 17 ALU 18 GR write unit 19 to 21 register 22 PC (program counter) 23 TADR (target adder) 24 PFPC (prefetch program counter) 25 branch control unit 25A branch instruction detection unit 25B NOT circuit 25C AND circuit 26, 27 Output unit 28 NOT circuit 29 AND circuit 30 PSW (program status word) 30A NIC flag 30B VA flag 35 instruction address register 36 instruction cache (buffer storage unit) 36A cache data unit 36B cache memory Reference unit 36C register 37 TLB (translation index buffer) 38 buffer 39 tag comparison unit 39A, 39B comparison circuit (CMP) 39C AND circuit 40 selector (bypass transfer unit) 41 bypass line (bypass transfer unit) 42 cache control unit (bypass transfer) 43) instruction register 44 data valid signal generation circuit (decoding permission determination unit) 44A NOT circuit 44B AND circuit 44C OR circuit 45 general-purpose register (GR) 46 temporary storage register (TMPREG) 47 selector 48 initialization data generation unit (initial) 48A General register (GR) 49, 50 Selector 51 Data processing unit 52 Main storage unit 53 Buffer storage unit 54 Decoder 55 Decode permission determination unit 56 Bypass transfer unit 57 Decode permission determination unit 58 Flag 5 Decoding permission determining unit 60 initialization means
Claims (7)
のデータ処理部(51)により共用される主記憶部(5
2)とをそなえ、 該複数のデータ処理部(51)が、該主記憶部(52)
から同一データを読み出して同一処理動作を行なうとと
もに、 各データ処理部(51)が、該主記憶部(52)から読
み出された命令コードを一時的に格納するバッファ記憶
部(53)と、該バッファ記憶部(53)から読み出さ
れた命令コードを解読するデコーダ(54)とをそなえ
てなるデータ処理装置において、 前記の各データ処理部(51)に、 該バッファ記憶部(53)から読み出された命令コード
についてのディレクトリ部に有効フラグが設定されてい
る場合、該デコーダ(54)による当該命令コードのデ
コード処理を許可するデコード許可判定部(55)がそ
なえられていることを特徴とする、データ処理装置。1. A plurality of data processing units (51) and a main storage unit (5) shared by the plurality of data processing units (51).
2), the plurality of data processing units (51) are connected to the main storage unit (52).
The same data is read from the same to perform the same processing operation, and each data processing section (51) includes a buffer storage section (53) for temporarily storing the instruction code read from the main storage section (52), A data processing device comprising a decoder (54) for decoding an instruction code read from the buffer storage section (53), wherein each of the data processing sections (51) is provided with a buffer (53). When a valid flag is set in the directory section for the read instruction code, a decoding permission judging section (55) for permitting decoding processing of the instruction code by the decoder (54) is provided. And a data processing device.
のデータ処理部(51)により共用される主記憶部(5
2)とをそなえ、 該複数のデータ処理部(51)が、該主記憶部(52)
から同一データを読み出して同一処理動作を行なうとと
もに、 各データ処理部(51)が、 該主記憶部(52)から読み出された命令コードを一時
的に格納するバッファ記憶部(53)と、 自データ処理部(51)所望の命令コードが該バッファ
記憶部(53)に格納されていない場合には当該命令コ
ードを該主記憶部(52)から読み出し該バッファ記憶
部(53)をバイパスして転送するバイパス転送部(5
6)と、 該主記憶部(52)または該バッファ記憶部(53)か
ら読み出された命令コードを解読するデコーダ(54)
とをそなえてなるデータ処理装置において、 前記の各データ処理部(51)に、 該バッファ記憶部(53)から読み出された命令コード
についてのディレクトリ部に有効フラグが設定されてい
る場合、または、該バイパス転送部(56)により該主
記憶部(52)から命令コードを読み出した場合に、該
デコーダ(54)による当該命令コードのデコード処理
を許可するデコード許可判定部(57)がそなえられて
いることを特徴とする、データ処理装置。2. A plurality of data processing units (51) and a main storage unit (5) shared by the plurality of data processing units (51).
2), the plurality of data processing units (51) are connected to the main storage unit (52).
The same data is read from the same to perform the same processing operation, and each data processing unit (51) includes a buffer storage unit (53) for temporarily storing the instruction code read from the main storage unit (52), Own data processing unit (51) When the desired instruction code is not stored in the buffer storage unit (53), the instruction code is read from the main storage unit (52) and bypasses the buffer storage unit (53). By-pass transfer unit (5
6) and a decoder (54) for decoding the instruction code read from the main storage unit (52) or the buffer storage unit (53)
In the data processing device comprising: a data processing unit (51), when a valid flag is set in the directory unit for the instruction code read from the buffer storage unit (53), or A decoding permission determination unit (57) that permits the decoding process of the instruction code by the decoder (54) when the instruction code is read from the main storage unit (52) by the bypass transfer unit (56) is provided. A data processing device characterized by the above.
のデータ処理部(51)により共用される主記憶部(5
2)とをそなえ、 該複数のデータ処理部(51)が、該主記憶部(52)
から同一データを読み出して同一処理動作を行なうとと
もに、 各データ処理部(51)が、 該主記憶部(52)から読み出された命令コードを一時
的に格納するバッファ記憶部(53)と、 該バッファ記憶部(53)を使用するか否かを設定する
フラグ(58)と、 該フラグ(58)により該バッファ記憶部(53)の不
使用モードが設定された場合、または、自データ処理部
(51)所望の命令コードが該バッファ記憶部(53)
に格納されていない場合には、当該命令コードを該主記
憶部(52)から読み出し該バッファ記憶部(53)を
バイパスして転送するバイパス転送部(56)と、 該主記憶部(52)または該バッファ記憶部(53)か
ら読み出された命令コードを解読するデコーダ(54)
とをそなえてなるデータ処理装置において、 前記の各データ処理部(51)に、 該フラグ(58)により該バッファ記憶部(53)の使
用モードが設定され且つ該バッファ記憶部(53)から
読み出された命令コードについてのディレクトリ部に有
効フラグが設定されている場合、または、該バイパス転
送部(56)により該主記憶部(52)から命令コード
を読み出した場合に、該デコーダ(54)による当該命
令コードのデコード処理を許可するデコード許可判定部
(59)がそなえられていることを特徴とする、データ
処理装置。3. A plurality of data processing units (51) and a main storage unit (5) shared by the plurality of data processing units (51).
2), the plurality of data processing units (51) are connected to the main storage unit (52).
The same data is read from the same to perform the same processing operation, and each data processing unit (51) includes a buffer storage unit (53) for temporarily storing the instruction code read from the main storage unit (52), A flag (58) for setting whether or not to use the buffer storage unit (53), and a case where a non-use mode of the buffer storage unit (53) is set by the flag (58), or own data processing (51) The desired instruction code is the buffer storage section (53).
If it is not stored in the main storage unit (52), the instruction code is read from the main storage unit (52) and bypasses the buffer storage unit (53) and transferred. Alternatively, a decoder (54) for decoding the instruction code read from the buffer storage section (53)
In the data processing device comprising the above, in each of the data processing units (51), the use mode of the buffer storage unit (53) is set by the flag (58) and read from the buffer storage unit (53). The decoder (54) when the valid flag is set in the directory section for the issued instruction code, or when the instruction code is read from the main storage section (52) by the bypass transfer section (56). A data processing device, comprising: a decoding permission judging section (59) for permitting decoding processing of the instruction code according to the above.
ドが分岐命令である場合には、該デコード許可判定部
(55,57,59)からのデコード許可信号に応じ
て、当該分岐命令の次の命令に対する読出要求を実行す
る分岐制御部がそなえられていることを特徴とする、請
求項1〜3のいずれかに記載のデータ処理装置。4. When the instruction code to be decoded by the decoder (54) is a branch instruction, the decoding permission judging section (55, 57, 59) is provided to each of the data processing sections (51). 4. The data processing device according to claim 1, further comprising: a branch control unit that executes a read request for an instruction next to the branch instruction according to the decode enable signal.
のデータ処理部(51)により共用される主記憶部(5
2)とをそなえ、 該複数のデータ処理部(51)が、該主記憶部(52)
から同一データを読み出して同一処理動作を行なうとと
もに、 各データ処理部(51)が、 該主記憶部(52)から読み出された命令コードを一時
的に格納するバッファ記憶部(53)と、 該バッファ記憶部(53)を使用するか否かを設定する
フラグ(58)と、 該フラグ(58)により該バッファ記憶部(53)の不
使用モードが設定された場合、または、自データ処理部
(51)所望の命令コードが該バッファ記憶部(53)
に格納されていない場合には、当該命令コードを該主記
憶部(52)から読み出し該バッファ記憶部(53)を
バイパスして転送するバイパス転送部(56)と、 該主記憶部(52)または該バッファ記憶部(53)か
ら読み出された命令コードを解読するデコーダ(54)
とをそなえてなるデータ処理装置において、 前記の各データ処理部(51)に、 電源投入時、もしくは、該フラグ(58)による該バッ
ファ記憶部(53)の不使用モードから使用モードへの
切換時には、該フラグ(58)により該バッファ記憶部
(53)の不使用モードを所定期間だけ保持して、該バ
ッファ記憶部(53)におけるディレクトリ部の有効フ
ラグとデータ部の命令コードとを初期化する初期化手段
(60)がそなえられていることを特徴とする、データ
処理装置。5. A plurality of data processing units (51) and a main storage unit (5) shared by the plurality of data processing units (51).
2), the plurality of data processing units (51) are connected to the main storage unit (52).
The same data is read from the same to perform the same processing operation, and each data processing unit (51) includes a buffer storage unit (53) for temporarily storing the instruction code read from the main storage unit (52), A flag (58) for setting whether or not to use the buffer storage unit (53), and a case where a non-use mode of the buffer storage unit (53) is set by the flag (58), or own data processing (51) The desired instruction code is the buffer storage section (53).
If it is not stored in the main storage unit (52), the instruction code is read from the main storage unit (52) and bypasses the buffer storage unit (53) and transferred. Alternatively, a decoder (54) for decoding the instruction code read from the buffer storage section (53)
In the data processing device comprising the above, each data processing unit (51) is switched from the non-use mode of the buffer storage unit (53) to the use mode when the power is turned on or by the flag (58). Sometimes, the flag (58) holds the unused mode of the buffer storage unit (53) for a predetermined period, and initializes the valid flag of the directory unit and the instruction code of the data unit in the buffer storage unit (53). A data processing device, characterized in that it is provided with an initialization means (60) for
の初期化データを生成する初期化データ生成部を有し、
該初期化データ生成部により生成された初期化データを
該バッファ記憶部(53)におけるデータ部に書き込む
ことにより命令コードを初期化することを特徴とする、
請求項5記載のデータ処理装置。6. The initialization means (60) has an initialization data generation unit for generating initialization data of a predetermined pattern,
The instruction code is initialized by writing the initialization data generated by the initialization data generation unit into the data unit of the buffer storage unit (53).
The data processing device according to claim 5.
きエントリと当該エントリに書き込むべき初期化データ
とを指定して初期化する初期化命令が定義され、 該初期化手段(60)が、該初期化命令により指定され
る前記エントリに、該初期化命令により指定される前記
初期化データを書き込むことにより命令コードを初期化
することを特徴とする、請求項5記載のデータ処理装
置。7. An initialization command for initializing by designating an entry to be initialized in the buffer storage section (53) and initialization data to be written in the entry is defined, and the initialization means (60) is 6. The data processing apparatus according to claim 5, wherein the instruction code is initialized by writing the initialization data specified by the initialization instruction into the entry specified by the initialization instruction.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6040003A JPH07248919A (en) | 1994-03-10 | 1994-03-10 | Data processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6040003A JPH07248919A (en) | 1994-03-10 | 1994-03-10 | Data processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07248919A true JPH07248919A (en) | 1995-09-26 |
Family
ID=12568746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6040003A Withdrawn JPH07248919A (en) | 1994-03-10 | 1994-03-10 | Data processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07248919A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009505177A (en) * | 2005-08-08 | 2009-02-05 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | Method and apparatus for controlling access to a storage device in a computer system having at least two instruction execution units |
-
1994
- 1994-03-10 JP JP6040003A patent/JPH07248919A/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009505177A (en) * | 2005-08-08 | 2009-02-05 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | Method and apparatus for controlling access to a storage device in a computer system having at least two instruction execution units |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5125083A (en) | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system | |
JP5837126B2 (en) | System, method and software for preloading instructions from an instruction set other than the currently executing instruction set | |
US5822778A (en) | Microprocessor and method of using a segment override prefix instruction field to expand the register file | |
US6029228A (en) | Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions | |
US4701844A (en) | Dual cache for independent prefetch and execution units | |
EP0381470B1 (en) | Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer | |
US5768574A (en) | Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor | |
JP3713312B2 (en) | Data processing device | |
US5247639A (en) | Microprocessor having cache bypass signal terminal | |
JP3907809B2 (en) | A microprocessor with complex branch prediction and cache prefetching. | |
US6266755B1 (en) | Translation lookaside buffer with virtual address conflict prevention | |
JP2539357B2 (en) | Data processing device | |
US5461722A (en) | Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions | |
JPH10198563A (en) | Dynamically loadable pattern history chart in microprocessor | |
JP2000231549A (en) | Microprocessor | |
US5958045A (en) | Start of access instruction configured to indicate an access mode for fetching memory operands in a microprocessor | |
US4740889A (en) | Cache disable for a data processor | |
US5909566A (en) | Microprocessor circuits, systems, and methods for speculatively executing an instruction using its most recently used data while concurrently prefetching data for the instruction | |
WO1996027833A1 (en) | Information processor | |
CN107122128B (en) | Data storage | |
US5274776A (en) | Information processing system having mode signal holding means and selecting operand access mode based on mode signal indicating type of currently executed instruction | |
JPH04251352A (en) | Selective locking of memory position in on-chip cache of microprocessor | |
US5381532A (en) | Microprocessor having branch aligner between branch buffer and instruction decoder unit for enhancing initiation of data processing after execution of conditional branch instruction | |
US5680578A (en) | Microprocessor using an instruction field to specify expanded functionality and a computer system employing same | |
US5819080A (en) | Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20010605 |