JP2782471B2 - Data transfer retry control method - Google Patents

Data transfer retry control method

Info

Publication number
JP2782471B2
JP2782471B2 JP2231296A JP23129690A JP2782471B2 JP 2782471 B2 JP2782471 B2 JP 2782471B2 JP 2231296 A JP2231296 A JP 2231296A JP 23129690 A JP23129690 A JP 23129690A JP 2782471 B2 JP2782471 B2 JP 2782471B2
Authority
JP
Japan
Prior art keywords
bus
micro
macro
microinstruction
transfer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2231296A
Other languages
Japanese (ja)
Other versions
JPH04112254A (en
Inventor
哲仁 渡辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2231296A priority Critical patent/JP2782471B2/en
Publication of JPH04112254A publication Critical patent/JPH04112254A/en
Application granted granted Critical
Publication of JP2782471B2 publication Critical patent/JP2782471B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔概要〕 マイクロプログラム制御のCPUを有するプロセッサに
おけるバスを介するメモリ・I/O等へのデータ転送のリ
トライ制御方式に関し、 データ転送を高速にでき、かつマイクロプログラムメ
モリの使用容量を減少可能なデータ転送のリトライ制御
方式を提供することを目的とし、 マクロプログラムが格納されるマクロプログラムメモ
リ、該マクロプログラムメモリのアドレスを指定するマ
クロプログラムカウンタ、マイクロプログラムが格納さ
れるマイクロプログラムメモリ、該マイクロプログラム
メモリのアドレスを指定するマイクロシーケンサ、前記
マイクロプログラムメモリから読み出されるマイクロ命
令に基づいて動作を行うCPUを有するプロセッサにおけ
るデータ転送のリトライ制御方式において、所定のマク
ロ命令を解読実行するマイクロプログラムのマイクロ命
令の実行によりバス転送エラーが発生した場合、前記CP
Uのリードデータの取り込み動作、及びデータの転送ア
ドレスの更新並びに前記マイクロシーケンサの指定する
アドレスの更新をアボートして前記所定のマクロ命令を
解読実行するマイクロプログラムのマイクロ命令を再実
行することにより、上記バス転送を再実行するを、バス
転送エラーが解消されない場合、所定回数まで繰り返す
ように構成する。
DETAILED DESCRIPTION OF THE INVENTION [Summary] The present invention relates to a retry control method for data transfer to a memory / I / O via a bus in a processor having a microprogram-controlled CPU. A macro program memory for storing a macro program, a macro program counter for designating an address of the macro program memory, and a micro memory for storing a micro program. In a retry control method of data transfer in a processor having a program memory, a micro sequencer designating an address of the micro program memory, and a CPU operating based on a micro instruction read from the micro program memory, a predetermined When a bus transfer error occurs due to execution of a micro instruction of a micro program that decodes and executes a macro instruction, the CP
By re-executing the micro-instruction of the micro-program for decoding and executing the predetermined macro-instruction by aborting the operation of capturing the read data of U, updating the transfer address of the data, and updating the address specified by the micro-sequencer, The bus transfer is re-executed up to a predetermined number of times if the bus transfer error is not resolved.

〔産業上の利用分野〕[Industrial applications]

本発明は、マイクロプログラム制御のCPUを有するプ
ロセッサにおけるバスを介するメモリ・I/O等へのデー
タ転送のリトライ制御方式に関する。
The present invention relates to a retry control method for data transfer to a memory / I / O via a bus in a processor having a microprogram-controlled CPU.

〔従来の技術〕[Conventional technology]

第9図は、従来のプロセッサを用いた情報処理装置の
構成例を示す図である。各種コンピュータ及びプログラ
マブル・コントローラ等の情報処理装置は、一般に第9
図に示すように、プロセッサ100、メモリ200、I/O装置
(入出力装置)300、伝送インターフェース400等で構成
される。プロセッサ100は、これらのメモリ200、I/Oデ
バイス300、伝送インターフェース400等と情報交換を行
う際、システムバス500を介してデータ転送を行う。プ
ロセッサ100は、マイクロプログラム制御方式を採用し
ており、FORTRAN,COBOL等の高級言語もしくはプログラ
ム・コントローラ用のコントローラ言語等で記述された
ソースプログラムをコンパイルまたはアセンブルして得
られるマクロ命令から成るマクロプログラムの実行を、
マイクロプログラムにより解読して行う。
FIG. 9 is a diagram showing a configuration example of an information processing apparatus using a conventional processor. Information processing devices such as various computers and programmable controllers are generally ninth
As shown in the figure, it comprises a processor 100, a memory 200, an I / O device (input / output device) 300, a transmission interface 400 and the like. The processor 100 performs data transfer via the system bus 500 when exchanging information with the memory 200, the I / O device 300, the transmission interface 400, and the like. The processor 100 employs a microprogram control method, and is a macro program including macro instructions obtained by compiling or assembling a source program described in a high-level language such as FORTRAN or COBOL or a controller language for a program controller. The execution of
Decoding is performed by a microprogram.

プロセッサ100は、マイクロ命令から成るマイクロプ
ログラムを格納しているマイクロプログラムメモリ101
(以下、μ−MEM101と略称する)、そのμ−MEM101に対
し一定期間(マイクロサイクル)毎にアドレスを供給す
るマイクロシーケンサ102(以下、μ−SQC102と略称す
る)、上記μ−MEM101から読み出されたマイクロ命令を
保持すると共に、そのマイクロ命令から各種制御信号を
出力するパイプラインレジスタ103(以下、PLR103と略
称する)、該PLR103から読み出したマイクロ命令に指示
された各種演算を行い、その結果としてサイン符号
(S)、ゼロ検出(Z)、キャリー検出(CY)、オーバ
ーフロー検出(OVF)等の各種フラグを出力するCPU(中
央処理装置)104、システムバス500上のバスデータの入
力時はバスデータのパリティチェックを行い、システム
バス500へのデータ出力時は、パリティジェネレートを
行うバスパリティチェッカ/ジェネレータ121とバスア
クセスの時間監視を行うバスアクセス時間監視回路122
とシステムバス500を介する転送先のスレーブ側デバイ
スの異常状態を常時監視するスレーブデバイス異常信号
判定回路123とから成るバス転送エラー検出回路120、上
記マクロプログラムが格納されているマクロプログラム
メモリ105、該マクロプログラムメモリ105にアドレスを
供給するマクロプログラム・カウンタ106(以下、MPC10
6と略称する)、前記マクロプログラムメモリ105から読
み出されたマクロ命令のアドレスオペランドから物理ア
ドレスを生成する物理アドレス生成回路107、該物理ア
ドレス生成回路107から加わる転送データのアドレスを
保持する転送アドレスレジスタ108、及び上記バス転送
エラー検出回路120から加わるバスエラー信号またはCPU
104から加わる上記、S,Z,C,Y,もしくはOVFの各フラグの
値をμ−SQC102に選択出力するテストコンディション選
択回路109とから成っている。
Processor 100 includes a microprogram memory 101 that stores a microprogram of microinstructions.
(Hereinafter abbreviated as μ-MEM101), a micro-sequencer 102 (hereinafter abbreviated as μ-SQC102) for supplying an address to the μ-MEM101 at regular intervals (microcycles), and read from the μ-MEM101. A pipeline register 103 (hereinafter, abbreviated as PLR103) that holds the read microinstruction and outputs various control signals from the microinstruction, performs various operations instructed by the microinstruction read from the PLR103, and as a result CPU (central processing unit) 104 that outputs various flags such as sine code (S), zero detection (Z), carry detection (CY), overflow detection (OVF), etc., when inputting bus data on system bus 500 A bus parity checker / generator 121 that performs parity generation performs a parity check of bus data and outputs data to the system bus 500. Bus access time monitoring circuit 122 for monitoring access time
A bus transfer error detection circuit 120 including a slave device abnormality signal determination circuit 123 that constantly monitors an abnormality state of a slave device at a transfer destination via the system bus 500; a macro program memory 105 storing the macro program; A macro program counter 106 (hereinafter referred to as MPC10) that supplies an address to the macro program memory 105
6), a physical address generation circuit 107 for generating a physical address from an address operand of a macro instruction read from the macro program memory 105, and a transfer address for holding an address of transfer data added from the physical address generation circuit 107. A register 108 and a bus error signal or CPU added from the bus transfer error detection circuit 120.
And a test condition selection circuit 109 for selectively outputting the value of each flag of S, Z, C, Y or OVF added to 104 to the μ-SQC 102.

尚、バス転送エラー検出回路120は、バスパリティチ
ェッカ/ジェネレータ121検出によるパリティエラー発
生、及びバスアクセス時間監視回路122検出によるバス
アクセス時間異常、及びスレーブデバイス異常信号判定
回路123検出によるデータ転送時のスレーブデバイス異
常のどれかの要因により、バスエラー信号を出力する。
そして、前記MPC106、転送アドレスレジスタ108は、そ
れぞれプログラムカウント・イネーブル信号(PCE)、
アドレスラッチ・イネーブル信号(ALE)がアクティブ
になったときに、アドレス信号がセットされる。また、
上記CPU104は、ローカルデータバス130を介し、前記シ
ステムバス500に接続されている。
The bus transfer error detection circuit 120 detects the occurrence of a parity error by detecting the bus parity checker / generator 121, the bus access time abnormality by detecting the bus access time monitoring circuit 122, and the data transfer by detecting the slave device abnormality signal determination circuit 123. A bus error signal is output due to any factor of slave device abnormality.
The MPC 106 and the transfer address register 108 respectively provide a program count enable signal (PCE),
The address signal is set when the address latch enable signal (ALE) becomes active. Also,
The CPU 104 is connected to the system bus 500 via a local data bus 130.

上記構成において、MPC106によりアドレッシングされ
たマクロプログラムメモリ105内のマクロ命令は、MAP処
理によりμ−SQC102を介してμ−MEM101に格納されてい
る対応する複数のマイクロ命令から成るインタプリタに
よって、解読・実行される。マクロ命令の転送命令に
は、その転送モードによりいくつかの種類があり、例え
ば、32ビット長のリード/ライト転送、16ビット長のリ
ード/ライト転送、8ビット長のリード/ライト転送、
及び16/8ビット長の符号付転送(転送時に符号拡張して
32ビット長に変換する)等がある。そして、μ−MEM101
内にはこれらの各マクロ命令に対応したインタプリタが
格納されている。
In the above configuration, the macro instruction in the macro program memory 105 addressed by the MPC 106 is decoded and executed by the interpreter composed of a plurality of corresponding micro instructions stored in the μ-MEM 101 via the μ-SQC 102 by MAP processing. Is done. There are several types of macro instruction transfer instructions depending on the transfer mode. For example, 32-bit read / write transfer, 16-bit read / write transfer, 8-bit read / write transfer,
And signed transfer of 16/8 bit length (with sign extension during transfer)
Convert to 32-bit length). And μ-MEM101
An interpreter corresponding to each of these macro instructions is stored therein.

上記各転送命令の実行時には、このμ−MEM101内の当
該インタプリタの起動と同時に、マクロプログラムメモ
リ105から読み出されているマクロ命令中のアドレスオ
ペランドを物理アドレス生成回路107により物理アドレ
スである転送アドレスに変換した後、ALE信号をアクテ
ィブにすることにより、転送アドレスレジスタ108にラ
ッチされる。そして、上記インタプリタの起動によりCP
U104がシステムバス500を介するデータ転送を開始する
とき、転送アドレスレジスタ108から転送アドレスがシ
ステムバス500に出力され、該当するメモリ200もしくは
I/O装置300等と情報交換が行われる。
At the time of execution of each transfer instruction, at the same time when the interpreter in the μ-MEM 101 is started, the address operand in the macro instruction read from the macro program memory 105 is transferred by the physical address generation circuit 107 to the transfer address as a physical address. After that, the ALE signal is activated to be latched in the transfer address register 108. Then, by starting the interpreter, CP
When U104 starts data transfer via the system bus 500, a transfer address is output from the transfer address register 108 to the system bus 500, and the corresponding memory 200 or
Information is exchanged with the I / O device 300 and the like.

このシステムバス500を介するデータ転送において
は、バス転送エラー検出回路120により、システムバス5
00上のバスデータのパリティチェック、バスアクセスの
時間監視、及びデータ転送先のスレーブ側装置の異常状
態が常にチェックされ、異常時には一過性の不良動作を
切り捨てるためにリトライ処理を行う。そして、リトラ
イ処理が失敗した時は、その旨をシステム管理プログラ
ム内のRAS処理ルーチンに通知し、システム見地で縮退
による継続運転またはシステムの停止等の決定を行う。
In the data transfer via the system bus 500, the bus transfer error detection circuit 120 causes the system bus 5
The parity check of the bus data on 00, the time monitoring of the bus access, and the abnormal state of the slave device at the data transfer destination are always checked, and in the event of an abnormality, a retry process is performed in order to cut off a temporary defective operation. Then, when the retry processing has failed, the RAS processing routine in the system management program is notified of the failure, and a decision is made from the viewpoint of the system such as continuous operation or system stop due to degeneration.

次に、第10図及び第11図のフローチャートを参照しな
がら、上記従来例におけるバスを介するデータ転送のリ
トライ制御方式を説明する。尚、リトライカウンタRTC
(以後、単にRTCと記述する)の値はリトライ回数を決
定する。この例ではリトライ回数を3回に設定している
ものとする。
Next, a retry control method for data transfer via a bus in the above conventional example will be described with reference to the flowcharts of FIGS. Note that the retry counter RTC
The value of (hereinafter simply referred to as RTC) determines the number of retries. In this example, it is assumed that the number of retries is set to three.

まず、第10図(a)に示す32ビットデータのリードイ
ンタプリタにおいては、システムバス500を介して32ビ
ットのデータをリードした後(SA1)、バス転送エラー
検出回路120により、バスエラーが発生したか否かを判
別し(SA2)、バスエラー発生時には32ビット長のデー
タリード専用のリトライサブルーチンをコールする(SA
3)。
First, in the 32-bit data read interpreter shown in FIG. 10 (a), after reading 32-bit data via the system bus 500 (SA1), the bus transfer error detection circuit 120 generates a bus error. Is determined (SA2), and when a bus error occurs, a 32-bit length data read-only retry subroutine is called (SA
3).

一方、上記バスエラーが発生せず、データ転送が正常
に行われた時には、MAP処理によりMPC106がカウントア
ップされ、次のマクロ命令へ処理が移る。
On the other hand, when the bus error does not occur and the data transfer is normally performed, the MPC 106 is counted up by the MAP processing, and the processing shifts to the next macro instruction.

上記処理SA2におけるバスエラー判定は、第9図に示
すバス転送エラー検出回路120が、上記32ビットデータ
転送において検出したバスエラー信号をテストコンディ
ション選択回路109を介してμ−SQC102に出力すること
により、μ−SQC102が行う。
The bus error determination in the process SA2 is performed by the bus transfer error detection circuit 120 shown in FIG. 9 outputting the bus error signal detected in the 32-bit data transfer to the μ-SQC 102 via the test condition selection circuit 109. , Μ-SQC102.

第10図(b)は32ビット長データのリード専用のリト
ライサブルーチンを示すフローチャートであり、この32
ビット長データのリード専用リトライサブルーチンは、
リトライ回数を3回に設定した例である。
FIG. 10 (b) is a flowchart showing a retry subroutine exclusively for reading 32-bit length data.
The bit-length data read-only retry subroutine
This is an example in which the number of retries is set to three.

次に、このサブルーチンの処理を以下に示す〜に
より説明する。
Next, the processing of this subroutine will be described with reference to the following.

まず、リトライカウンタ(RTC)に4を格納する(S
B1)。
First, 4 is stored in the retry counter (RTC) (S
B1).

RTCの値を「1」減算する(SB2)。 Subtract "1" from the RTC value (SB2).

RTCの値が「0」に等しいか否か判別し(SB3)、
「0」に等しくなければ32ビットデータを再び読み出す
(SB4)。
Determine whether the value of RTC is equal to "0" (SB3),
If it is not equal to "0", the 32-bit data is read again (SB4).

次に、バスエラーの判定を行い(SB5)、バスエラ
ーが発生していれば再び前記処理SB2に戻り、再び32ビ
ットデータの読み出しを行う。
Next, a bus error is determined (SB5). If a bus error has occurred, the process returns to the process SB2 again to read out the 32-bit data again.

一方、上記処理SB5でバスエラーが発生していない
場合には、リトライリードの成功となり、本サブルーチ
ンをリターンで抜けインタプリタに戻りMAP処理を行
い、次のマクロ命令の解読実行へと処理を継続してい
く。
On the other hand, if a bus error has not occurred in the above process SB5, the retry read has succeeded, this subroutine is exited by return, the process returns to the interpreter, and the MAP process is performed. To go.

また、上記処理SB4で32ビットデータの再読み出し
が失敗した時には、上記処理SB2〜SB5を最大3回繰り返
し、バスエラーが解消しない場合には、上記判別処理SB
3でRTC=0と判別し、システム管理プログラムのRAS処
理を起動させた後、本サブルーチンをリターンで抜け、
割り込みによりシステム管理プログラム処理へ移行す
る。
When the re-reading of the 32-bit data fails in the above process SB4, the above processes SB2 to SB5 are repeated up to three times.
After determining that RTC = 0 in 3 and starting the RAS processing of the system management program, exit this subroutine by return,
The processing shifts to the system management program processing by interruption.

また、16ビットリードインタプリタにおいても、第11
図(a)に示す16ビットリードインタプリタ並びに同図
(b)に示す16ビットリード専用リトライサブルーチン
により、上記32ビットデータの読み出しと同様な処理が
行われる。また、他の各種データビット長及び各種転送
モードのリード/ライトにおいても、それらの転送処理
を行うインタプリタとそれらのインタプリタ毎に用意さ
れた専用のリトライサブルーチンにより同様な処理が行
われる。
Also, in the 16-bit read interpreter, the eleventh
By the 16-bit read interpreter shown in FIG. 7A and the 16-bit read-only retry subroutine shown in FIG. Also, in reading / writing of other various data bit lengths and various transfer modes, similar processing is performed by an interpreter for performing the transfer processing and a dedicated retry subroutine prepared for each of the interpreters.

〔発明が解決しようとする課題〕[Problems to be solved by the invention]

上述したように、従来の1つのマクロ命令に対応する
インタプリタによるバスを介するデータ転送処理におい
ては、メモリのリード・ライト等のデータ転送処理後に
必ずバスエラーが発生したか否かをチェックするステッ
プが必要であり、1つのマクロ命令を解読実行するマイ
クロプログラムのステップ数が少ない場合、処理速度の
遅延に大きく影響していた。(1つのマクロ命令を解読
実行するマイクロプログラムが1ステップの場合は、転
送命令の処理時間は2倍になる) また、データ転送のアクセスモードが複数個ある場合
(例えば、32ビットリード・16ビットリード・8ビット
リード・32ビットライド・16ビットライト・8ビットラ
イト等)は、それらの各アクセスモードに対応して、リ
トライ処理ルーチンも複数個用意しなければならず、マ
イクロプログラムメモリの使用容量が大きくなってしま
うという欠点があった。
As described above, in the conventional data transfer processing via a bus by an interpreter corresponding to one macro instruction, a step of always checking whether a bus error has occurred after data transfer processing such as memory read / write is performed. This is necessary, and when the number of steps of the microprogram for decoding and executing one macro instruction is small, the processing speed is greatly affected. (If the microprogram that decodes and executes one macro instruction is one step, the processing time of the transfer instruction is doubled.) Also, if there are a plurality of data transfer access modes (for example, 32-bit read / 16-bit Read, 8-bit read, 32-bit ride, 16-bit write, 8-bit write, etc.), a plurality of retry processing routines must be prepared for each of these access modes. However, there is a disadvantage that the size of the image becomes large.

本発明は、データ転送を高速にでき、かつマイクロプ
ログラムメモリの使用容量を減少可能なデータ転送のリ
トライ制御方式を提供することを目的とする。
SUMMARY OF THE INVENTION It is an object of the present invention to provide a data transfer retry control method that can speed up data transfer and reduce the used capacity of a microprogram memory.

〔課題を解決するための手段〕[Means for solving the problem]

第1図は、本発明の原理説明図である。 FIG. 1 is a diagram illustrating the principle of the present invention.

本発明は、マクロプログラムが格納されるマクロプロ
グラムメモリ1、該マクロプログラムメモリ1のアドレ
スを指定するマクロプログラムカウンタ2、マイクロプ
ログラムが格納されるマイクロプログラムメモリ3、該
マイクロプログラムメモリ3のアドレスを指定するマイ
クロシーケンサ4、前記マイクロプログラムメモリ3か
ら読み出されるマイクロ命令に基づいて動作を行うCPU5
を有するプロセッサにおけるデータ転送のリトライ制御
方式を前提とする。
According to the present invention, a macro program memory 1 for storing a macro program, a macro program counter 2 for specifying an address of the macro program memory 1, a micro program memory 3 for storing a micro program, and specifying an address of the micro program memory 3 A micro sequencer 4 and a CPU 5 that operates based on micro instructions read from the micro program memory 3
Is assumed to be a data transfer retry control method in a processor having

本発明のデータ転送のリトライ制御方式においては、
所定のマクロ命令を解読実行するマイクロプログラムの
マイクロ命令の実行によりバス転送エラーが発生した場
合、CPU5のリードデータの取り込み動作、及びデータの
転送アドレスの更新並びにマイクロシーケンサ4の指定
するアドレスの更新をアボートして、マクロ命令を解読
実行するマイクロプログラムのマイクロ命令を再実行す
ることにより、上記バス転送を再実行するを、バス転送
エラーが解消されない場合、所定回数まで繰り返す。
In the data transfer retry control method of the present invention,
When a bus transfer error occurs due to execution of a microinstruction of a microprogram that decodes and executes a predetermined macroinstruction, the CPU 5 reads the read data, updates the data transfer address, and updates the address specified by the microsequencer 4. If the bus transfer error is not eliminated by aborting and re-executing the micro-instruction of the micro-program for decoding and executing the macro-instruction, the above-described bus transfer is repeated up to a predetermined number of times.

上記所定のマクロ命令を解読実行するマイクロプログ
ラムのマイクロ命令の再実行の繰り返し回数の計数は、
例えば、請求項2記載のようにバス転送エラー発生後に
起動されるマイクロプログラムメモリ3に格納された割
り込み処理ルーチン3aの実行により行われる。
The repetition count of the re-execution of the micro-instruction of the micro-program for decoding and executing the predetermined macro-instruction is:
For example, this is performed by executing the interrupt processing routine 3a stored in the microprogram memory 3 started after the occurrence of the bus transfer error.

また、上記割り込み処理ルーチン3aは、例えば請求項
3記載のように、起動される毎に、今回のバス転送エラ
ー時のマクロプログラムカウンタ2の値と前回のバス転
送エラー時のマクロプログラムカウンタ2の値とを比較
することにより、同一マクロ命令の実行によるバス転送
エラーであるか否かを判別し、同一マクロ命令が実行さ
れたものと判別したときのみ、前記マクロ命令を解読実
行するマイクロプログラムのマイクロ命令の再実行回数
の計数を行うようにしてもよい。
Further, the interrupt processing routine 3a is configured such that each time it is activated, the value of the macro program counter 2 at the time of the current bus transfer error and the value of the macro program counter 2 at the time of the previous bus transfer error are set. By comparing the value with the value, it is determined whether or not there is a bus transfer error due to the execution of the same macro instruction, and only when it is determined that the same macro instruction has been executed, the microprogram for decoding and executing the macro instruction is executed. The number of re-executions of the microinstruction may be counted.

さらに、割り込み処理ルーチン3aは、請求項4記載の
ように前記バス転送エラーを引き起こしたマクロ命令を
解読実行するマイクロプログラムのマイクロ命令を前記
所定回数だけ再実行させても、バス転送エラーが解消し
ない場合には、前記データの転送アドレスをマイクロプ
ログラム・オペレーティング・システムの管理下のバス
転送エラーの発生しないダミーアドレスに変更して復帰
するようにしてもよい。
Further, even if the interrupt processing routine 3a re-executes the microinstruction of the microprogram for decoding and executing the macroinstruction causing the bus transfer error by the predetermined number of times, the bus transfer error is not eliminated. In this case, the transfer address of the data may be changed to a dummy address under which the bus transfer error under the control of the microprogram operating system does not occur, and the process may return.

また、請求項5記載のように、1つのマイクロ命令に
おいて、バス転送動作と同時にカウンタ7のインクリメ
ント/デクリメントなどの処理を行う場合、前記マイク
ロプログラムメモリ3から出力された該マイクロ命令を
パイプラインレジスタ6へラッチすると同時にカウンタ
7のインクリメント/デクリメントなどの処理を実行す
る(すなわち、同一マイクロ命令で記述されているが、
カウンタ7のインクリメント/デクリメントなどの処理
のみは、バス転送動作よりも1クロックサイクル先に実
行する。)ようなマイクロ命令の実行時においてバス転
送エラーが発生した場合、そのときの前記カウンタ7に
対するカウント操作等の情報を記憶する記憶手段8とを
さらに有するマイクロプログラム制御方式のプロセッサ
においては、バス転送エラー発生時には、上記記憶手段
8に記憶されている該マイクロ命令がパイプラインレジ
スタ6へラッチされると同時に処理されたカウント操作
等の情報に基づいて、前記カウンタ7等の値を前記マイ
クロ命令実行前の状態に戻した後、前記マイクロ命令の
再実行を行うようにしてもよい。
In a case where processing such as increment / decrement of the counter 7 is performed simultaneously with the bus transfer operation in one microinstruction, the microinstruction output from the microprogram memory 3 is stored in a pipeline register. At the same time as latching to 6, a process such as increment / decrement of the counter 7 is executed (that is, although described by the same microinstruction,
Only processing such as increment / decrement of the counter 7 is executed one clock cycle ahead of the bus transfer operation. If a bus transfer error occurs during the execution of such a microinstruction, a microprogram control type processor further comprising storage means 8 for storing information such as a count operation for the counter 7 at that time. When an error occurs, the microinstruction stored in the storage means 8 is latched into the pipeline register 6 and, at the same time, the value of the counter 7 or the like is read based on the processed information such as the count operation. After returning to the previous state, the micro-instruction may be re-executed.

〔作用〕[Action]

前記マイクロプログラム制御方式のプロセッサのCPU5
により所定のマクロ命令を解読実行するマイクロプログ
ラムのマイクロ命令が実行された際、バス転送エラーが
発生すると、CPU5のリードデータの取り込み動作、及び
データの転送アドレスの更新がアボートされ、また、マ
イクロシーケンサ4のマイクロプログラムカウンタ(μ
−PC)の更新もアボートされ、バス転送エラー割込みに
よるリトライ制御処理の後に、前記所定のマクロ命令を
解読実行するマイクロプログラムのマイクロ命令が命令
実行前の状態で再び実行される。そして、このマイクロ
命令の再実行による上記バス転送の再実行を、バス転送
エラーが解消されない場合、所定回数まで繰り返す。
CPU5 of the microprogram control type processor
If a bus transfer error occurs when a microinstruction of a microprogram that decodes and executes a predetermined macroinstruction is executed, the CPU 5 aborts the read data fetch operation and the update of the data transfer address, and the microsequencer 4 microprogram counter (μ
-PC) is also aborted, and after the retry control processing by the bus transfer error interrupt, the microinstruction of the microprogram for decoding and executing the predetermined macroinstruction is executed again in a state before the instruction execution. The re-execution of the bus transfer by the re-execution of the microinstruction is repeated up to a predetermined number of times if the bus transfer error is not eliminated.

前記バス転送エラー割込みによるリトライ制御処理に
おいて、リトライ失敗と判定した場合に、転送アドレス
をマイクロプログラムのオペレーティングシステムに変
更して割込み復帰することにより、前記マイクロ命令を
バスエラーが発生しないで強制的に抜けることができ
る。
In the retry control process by the bus transfer error interrupt, when it is determined that the retry has failed, the transfer instruction is changed to the operating system of the microprogram and the interrupt is returned, thereby forcibly executing the microinstruction without causing a bus error. You can get out.

また、1つのマイクロ命令において、バス転送動作と
同時にカウンタ7のインクリメント/デクリメントなど
の処理を行う場合、前記マイクロプログラムメモリ3か
ら出力された該マイクロ命令をパイプラインレジスタ6
へラッチすると同時にカウンタ7のインクリメント/デ
クリメントなどの処理を実行する(すなわち、同一マイ
クロ命令で記述されているが、カウンタ7のインクリメ
ント/デクリメントなどの処理のみは、バス転送動作よ
りも1クロックサイクル先に実行する。)ようなマイク
ロ命令の実行時にバス転送エラーが発生したならば、そ
の時の上記カウンタ7のカウント操作等の情報を記憶手
段8に記憶させておき、バス転送エラー割込み処理にお
いて、上記記憶手段8に記憶されているカウント操作等
の情報に基づいて、前記カウンタ7等の値を前記マイク
ロ命令の実行前の状態に戻した後、前記マイクロ命令の
再実行を行う。この場合も、前記マイクロ命令の再実行
は、所定回数だけ繰り返される。
When processing such as increment / decrement of the counter 7 is performed simultaneously with the bus transfer operation in one microinstruction, the microinstruction output from the microprogram memory 3 is transferred to the pipeline register 6.
At the same time as latching the counter 7 and executing the processing such as increment / decrement of the counter 7 (that is, although described by the same microinstruction, only the processing such as increment / decrement of the counter 7 is one clock cycle ahead of the bus transfer operation). If a bus transfer error occurs during the execution of such a microinstruction, information such as the count operation of the counter 7 at that time is stored in the storage means 8, and in the bus transfer error interrupt processing, After the values of the counter 7 and the like are returned to the state before the execution of the microinstruction based on the information such as the count operation stored in the storage unit 8, the microinstruction is executed again. Also in this case, the re-execution of the microinstruction is repeated a predetermined number of times.

このように任意のマクロ命令を解読実行するマイクロ
プログラムのマイクロ命令の実行によりバス転送エラー
が発生した場合、自動的に上記マイクロ命令が所定回数
繰り返されてデータ転送のリトライが行われるので、従
来のように各種データ転送用のマクロ命令に対応したマ
イクロプログラムのインタプリタ毎に、専用のリトライ
サブルーチンを設ける必要がなくなる。また、バス転送
エラーが発生しない場合には、直ちに次のマクロ命令を
実行することができる。
As described above, when a bus transfer error occurs due to execution of a microinstruction of a microprogram that decodes and executes an arbitrary macroinstruction, the microinstruction is automatically repeated a predetermined number of times and a data transfer retry is performed. As described above, it is not necessary to provide a dedicated retry subroutine for each microprogram interpreter corresponding to various data transfer macro instructions. If no bus transfer error occurs, the next macro instruction can be executed immediately.

〔実施例〕〔Example〕

以下、図面を参照しながら本発明の実施例について説
明する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.

第2図は本発明の一実施例であるプロセッサのシステ
ム構成図である。尚、同図において、前記第9図に示す
ブロックと同一のブロックには同一番号を付し、詳しい
説明は省略する。
FIG. 2 is a system configuration diagram of a processor according to one embodiment of the present invention. In the figure, the same blocks as those shown in FIG. 9 are denoted by the same reference numerals, and detailed description thereof will be omitted.

マイクロシーケンサ(μ−SQC)150は、各種割込みベ
クタが格納されている割込みベクタレジスタ151、PLR
(パイプラインレジスタ)103から出力されるブランチ
オペレーション命令(BOP)、バス転送エラー検出回路1
20から出力されるバスエラー信号、及びテストコンディ
ション選択回路109から出力される信号をデコードして
各種制御信号を出力するブランチ制御回路152、マイク
ロプログラムメモリ(μ−MEM)101に一定期間(マイク
ロサイクル)ごとにそのアドレスを供給するマイクロプ
ログラムカウンタ(μ−PC)153、そのμ−PC153の値を
所定ワード数スタックするマイクロスタック(μ−スタ
ック)154、前記割込ベクタレジスタ151から出力される
割込みベクタアドレス、パイプラインレジスタ103から
出力されるジャンプアドレス、マクロプログラムメモリ
105から出力されるマクロ命令を解読実行するマイクロ
インプリンタ(μ−インプリンタ)の先頭アドレス、及
びμ−PC153並びにμ−スタック154から出力されるμ−
MEM101のアドレスの中からいずれか1つを選択して、そ
の選択した信号をマイクロプログラムメモリ101にアド
レス信号として供給するマルチプレクサ155とから成っ
ている。
The micro sequencer (μ-SQC) 150 includes an interrupt vector register 151 storing various interrupt vectors, and a PLR.
(Pipeline register) Branch operation instruction (BOP) output from 103, bus transfer error detection circuit 1
A branch control circuit 152 that decodes the bus error signal output from 20 and the signal output from the test condition selection circuit 109 and outputs various control signals, and a micro program memory (μ-MEM) 101 for a predetermined period (micro cycle) ), A microprogram counter (μ-PC) 153 for supplying the address, a microstack (μ-stack) 154 for stacking the value of the μ-PC 153 by a predetermined number of words, and an interrupt output from the interrupt vector register 151. Vector address, jump address output from pipeline register 103, macro program memory
The head address of the micro-imprinter (μ-imprinter) that decodes and executes the macro instruction output from 105, and the μ-output from μ-PC 153 and μ-stack 154.
A multiplexer 155 selects one of the addresses of the MEM 101 and supplies the selected signal to the microprogram memory 101 as an address signal.

また、CPU160は、キャッシュメモリ161から出力され
るデータADとデータBDに対し算術・論理演算を行うALU
(Arithmetic Logic Unit)162、そのALU162の出力をロ
ーカルデータバス600に出力すると共にローカルデータ
バス600上のデータを入出力する入出力バッファ163、AL
U162の出力もしくは入出力バッファ163の出力のいずれ
かを選択してキャッシュメモリ161に出力するマルチプ
レクサ164、及び前記バスエラー信号とキャッシュメモ
リ161に対する書込信号WTが加わり、前記バスエラー信
号がアクティブのときに、上記書込信号WTがキャッシュ
メモリ161に出力されることを禁止して、キャッシュメ
モリのライト動作を禁止するゲート165とから成ってい
る。
In addition, the CPU 160 performs an arithmetic and logic operation on the data AD and the data BD output from the cache memory 161 by using an ALU.
(Arithmetic Logic Unit) 162, an input / output buffer 163 for outputting the output of the ALU 162 to the local data bus 600 and inputting / outputting data on the local data bus 600, AL
A multiplexer 164 for selecting either the output of the U162 or the output of the input / output buffer 163 and outputting it to the cache memory 161 and the bus error signal and the write signal WT for the cache memory 161 are added, and the bus error signal is activated. Sometimes, the write signal WT is prohibited from being output to the cache memory 161, and the gate 165 is configured to prohibit the write operation of the cache memory.

また、バスエラー信号及びアドレスラッチ・イネーブ
ル信号ALEが加わり、バスエラー信号がアクティブのと
きに、転送アドレスレジスタ108に対するアドレスラッ
チ・イネーブル信号ALEの出力を禁止して、バスエラー
時に転送アドレスのラッチを禁止するゲート171、バス
エラー信号及びプログラムカウント・イネーブル信号PC
Eが加わり、バスエラー信号がアクティブのときにプロ
グラムカウント・イネーブル信号PCEがマクロ・プログ
ラム・カウンタMP106に出力されることを禁止して、バ
スエラー時にMPC106のカウントを禁止するゲート172、
及びバスエラー信号と動作許可信号が加わり、バスエラ
ー信号がアクティブのときに、レジスタ及びカウンタに
より構成される各種実行回路174へ動作許可信号を出力
することを禁止して、バスエラー時に各種実行回路174
の動作を禁止するゲート173とから成っている。尚、キ
ャッシュメモリ161に対するアドレス信号A,Bは、PLR103
から出力される。また、CPU160に対する制御信号CPU
も、PLR103から出力される。
Further, when the bus error signal and the address latch enable signal ALE are added and the bus error signal is active, the output of the address latch enable signal ALE to the transfer address register 108 is inhibited, and the transfer address is latched in the event of a bus error. Gate 171 to be prohibited, bus error signal and program count enable signal PC
A gate 172 that prohibits the program count enable signal PCE from being output to the macro program counter MP106 when E is added and the bus error signal is active, and prohibits the MPC 106 from counting when a bus error occurs.
When the bus error signal and the operation permission signal are added and the bus error signal is active, the output of the operation permission signal to the various execution circuits 174 constituted by the register and the counter is prohibited, and the various execution circuits 174
And a gate 173 that prohibits the operation. The address signals A and B for the cache memory 161 are
Output from In addition, a control signal for the CPU 160
Are also output from the PLR 103.

上記構成の実施例において、μ−インタプリタにより
マクロ命令を解読・実行してデータのバス転送を行う動
作とそのデータ転送時のバスエラーを検出する動作は、
前述した従来例と同様であり、その説明は省略する。CP
U160は、PLR103から出力されるCPU制御信号(CPUC)に
より各種演算・転送制御、キャッシュメモリ161のアド
レス信号A並びにB、キャッシュメモリ161に対するラ
イト動作が指示される。
In the embodiment of the above configuration, the operation of performing the bus transfer of data by decoding and executing the macro instruction by the μ-interpreter and the operation of detecting the bus error during the data transfer are as follows.
This is the same as the above-described conventional example, and a description thereof will be omitted. CP
U160 is instructed by a CPU control signal (CPUC) output from the PLR 103 to perform various operations / transfer controls, and write operations to the address signals A and B of the cache memory 161 and the cache memory 161.

バスエラーが発生した場合は、バス転送エラー検出回
路120からバスエラー信号が出力され、ゲート165により
キャッシュメモリ161に対するリードデータの書き込み
が禁止される。また、ゲート171により次に実行される
マクロ命令の転送アドレスの転送アドレスレジスタ108
に対する書き込みが禁止され、さらにゲート172によりM
PC106のカウント動作が禁止される。また、ゲート173に
より各種実行回路174の動作が禁止される。また、同じ
くバスエラー信号により、μ−SQC150においては、ブラ
ンチ制御回路152を介し、μ−PC153のカウント動作が禁
止され更新されない状態のμ−PC153の値が、μ−スタ
ック154に格納される。そして、マルチプレクサ155は、
マクロプログラムメモリ105から読み出されるマクロ命
令のMAPアドレスを選択しないで割込ベクタレジスタ151
から出力されるリトライ処理ルーチンのアドレスを選択
し、μ−PC153並びにμ−MEM101に出力する。このこと
により、μ−MEM101に格納されているリトライ処理ルー
チンが実行される。また、上述したように、バスエラー
が発生した場合、更新されないμ−PC153の値が、μ−
スタック154に格納されるので、バスエラー割込により
起動されるリトライ処理ルーチンから、リターン命令で
復帰するときは、μ−スタック154内に格納されている
前記バスエラーを起こした転送命令のμアドレスを選択
することにより、再びバス転送のリトライを行うことが
できる。
When a bus error occurs, a bus error signal is output from the bus transfer error detection circuit 120, and writing of read data to the cache memory 161 is prohibited by the gate 165. The transfer address register 108 of the transfer address of the macro instruction to be executed next by the gate 171
Is prohibited, and M
The count operation of the PC 106 is prohibited. Further, the operation of the various execution circuits 174 is prohibited by the gate 173. Similarly, the μ-SQC 150 stores the value of the μ-PC 153 in the μ-stack 154 in a state where the count operation of the μ-PC 153 is prohibited and is not updated via the branch control circuit 152 in the μ-SQC 150. And the multiplexer 155 is
The interrupt vector register 151 is selected without selecting the MAP address of the macro instruction read from the macro program memory 105.
The address of the retry processing routine output from is selected and output to the μ-PC 153 and the μ-MEM 101. As a result, the retry processing routine stored in the μ-MEM 101 is executed. Also, as described above, when a bus error occurs, the value of μ-PC 153 that is not updated
Since the data is stored in the stack 154, when returning from the retry processing routine started by the bus error interrupt with a return instruction, the μ-address of the transfer instruction causing the bus error stored in the μ-stack 154 is stored. , The bus transfer can be retried again.

第3図及び第4図は、それぞれ第1実施例のマイクロ
プログラムにより行われる32ビット,16ビットのバス転
送処理におけるルーチンを示すフローチャートである。
FIGS. 3 and 4 are flowcharts showing routines in the 32-bit and 16-bit bus transfer processes performed by the microprogram of the first embodiment, respectively.

上記32ビットリードインタプリタおよび16ビットリー
ドインタプリタは、どちらもそれぞれの転送動作と同時
にMAPの処理を行うために、1クロックでマクロ命令の
インタプリタを終了する。
Since the 32-bit read interpreter and the 16-bit read interpreter perform the MAP process simultaneously with their respective transfer operations, the macro instruction interpreter ends in one clock.

次に、第5図は、バスエラー発生時のリトライ制御用
の割込処理を説明するフローチャートである。尚、リト
ライ回数は3回とした例とする為同図のフローチャート
が実行される前に、RTCには「4」が初期設定されてい
るものとして、以下説明を行う。
Next, FIG. 5 is a flowchart illustrating an interrupt process for retry control when a bus error occurs. Since the number of retries is assumed to be three, the following description is made on the assumption that "4" is initially set in the RTC before the flowchart of FIG.

また、第1実施例においては、破線の矩形で示す処理
SC4は行われない。
In the first embodiment, the processing indicated by the broken-line rectangle
SC4 is not performed.

第3図に示す32ビットリードインタプリタのデータ転
送動作においてバスエラーが発生した場合、上述したよ
うに、マルチプレクサ155により、割込みベクタレジス
タ151に格納されているバス転送エラーに対応する割込
みベクタの示すリトライ制御処理ルーチンの先頭アドレ
スが選択され、その先頭アドレスがμ−MEM101に供給さ
れることにより、第5図のフローチャートに示すデータ
転送のリトライ制御用の割込処理ルーチが起動される。
When a bus error occurs in the data transfer operation of the 32-bit read interpreter shown in FIG. 3, the multiplexer 155 causes the multiplexer 155 to retry the interrupt vector indicated by the interrupt vector corresponding to the bus transfer error stored in the interrupt vector register 151, as described above. The start address of the control processing routine is selected, and the start address is supplied to the μ-MEM 101, whereby the interrupt processing routine for retry control of data transfer shown in the flowchart of FIG. 5 is started.

この割込処理ルーチンにおいて、 現在のマイクロプログラムカウンタ(以後、MPCと
記す)と前回のMPCが等しいか否かの判別を行い(SC
1)、等しい場合は処理SC2へ、等しくない場合は処理SC
5へ移行する。
In this interrupt processing routine, it is determined whether or not the current microprogram counter (hereinafter referred to as MPC) is equal to the previous MPC (SC
1) If equal, go to process SC2; if not equal, go to process SC
Move to 5.

処理SC2において、RTCを「1」減算する。 In process SC2, “1” is subtracted from RTC.

次に、RTCが「0」に等しいか否か判別し(SC3)、
RTCが「0」に等しくなければリターン命令(RET)によ
り第3図に示すインタプリタの32ビットリードの実行に
よるリトライを行い、バスエラーが発生せずリトライが
成功した場合には、同時実行するMAP処理により、次の
マクロ命令の解読実行へと処理を継続していく。また、
上記32ビットリードのリトライで再びエラーが発生した
場合には、再び、割込処理により上記処理SC1へ移行す
る。
Next, it is determined whether the RTC is equal to “0” (SC3),
If the RTC is not equal to "0", a retry is performed by executing a 32-bit read of the interpreter shown in FIG. 3 by a return instruction (RET). If a bus error does not occur and the retry succeeds, the MAP to be executed simultaneously is executed. By the processing, the processing is continued to decode and execute the next macro instruction. Also,
If an error occurs again in the retry of the 32-bit read, the process shifts to the process SC1 again by the interrupt process.

また、上記処理SC1で現在のMPCが前回のMPCに等し
くない場合は、同一マクロ命令を解読実行するマイクロ
プログラムのインタプリタによるバス転送命令でないた
め、リトライ制御をクリアするため、現在のMPCを前回
のMPC領域に格納した後(SC5)、RTCを「4」に初期設
定する(SC6)。
Also, if the current MPC is not equal to the previous MPC in the above process SC1, the current MPC is cleared by the previous MPC to clear the retry control because it is not a bus transfer instruction by the interpreter of the microprogram that decodes and executes the same macro instruction. After storing in the MPC area (SC5), the RTC is initialized to "4" (SC6).

データ転送のリトライが失敗した時は、上記処理32
ビットリード→SC1→SC2→SC3の処理が3回繰り返され
た後、上記処理SC3でRTCが「0」となり、システム管理
プログラムのRAS処理起動後に(SC7)、マイクロプログ
ラム・オペレーティングシステムのダミーアドレスを転
送アドレスレジスタ108に格納してリターンすることに
より(SC8)、バスエラーの起きないダミー転送を行わ
せて、前記第3図に示す32ビットデータ転送マイクロプ
ログラムステップを強制的に終結し、システム管理プロ
グラム処理へ割込により移行する。
If the data transfer retry fails,
After the process of bit read → SC1 → SC2 → SC3 is repeated three times, the RTC becomes “0” in the above process SC3, and after starting the RAS process of the system management program (SC7), the dummy address of the microprogram operating system is changed. By storing the data in the transfer address register 108 and returning (SC8), the dummy transfer without causing a bus error is performed and the 32-bit data transfer microprogram step shown in FIG. Move to program processing by interruption.

16ビットリードにおいても、第4図のフローチャート
に示す16ビットリードインタプリタの転送処理と上述し
た第5図のフローチャートに示すバスエラー時のリトラ
イ制御用の割込処理が、上記32ビットリードと同様にし
て行われる。また、その他の各種ビットおよび各種転送
モードのリード/ライトにおいても、それらのデータ転
送を行うインタプリタの実行並びに第5図のフローチャ
ートに示すバスエラー発生時のリトライ制御用の割込処
理ルーチンの実行が同様に行われる。
In the 16-bit read, the transfer process of the 16-bit read interpreter shown in the flowchart of FIG. 4 and the interrupt process for retry control at the time of a bus error shown in the flowchart of FIG. Done. Also, in the read / write of other various bits and various transfer modes, execution of an interpreter for transferring the data and execution of an interrupt processing routine for retry control when a bus error occurs as shown in the flowchart of FIG. The same is done.

ところで、バス転送命令をパイプラインレジスタにラ
ッチすると同時に実行される動作を伴ったバス転送のマ
イクロ命令(μ命令)を実行するプロセッサにおいて
は、上記第1の実施例では完全にアボードできない。以
下、このような動作を伴った場合に対応する第2実施例
について説明する。
By the way, in the processor which executes the microinstruction (μ instruction) of the bus transfer accompanied by the operation simultaneously executed by latching the bus transfer instruction in the pipeline register, the first embodiment cannot completely abort. Hereinafter, a second embodiment corresponding to the case where such an operation is involved will be described.

第6図は、本発明に係わる第2実施例のCPU180の構成
を示す図である。
FIG. 6 is a diagram showing a configuration of the CPU 180 of the second embodiment according to the present invention.

データスタックポインタ(以下、DSPと称す)181は、
キャッシュメモリ182をスタック構造で使用するときの
ポインタであり、マイクロプログラムメモリ(μ−ME
M)191から読み出されたマイクロ命令がパイプラインレ
ジスタ(PLR)192にセットされると同時に、μ−MEM191
から出力されるカウントイネーブル信号CTEとカウント
アップ/ダウン信号UP/▲▼により、カウントアッ
プ/ダウン動作を行う。アンドゲート183は、PLR192か
ら出力されるカウントイネーブル信号CTEXとカウントア
ップ/ダウン信号UP/▲▼Xにより、バスエラー時
のDSP181のカウントアップ条件を生成するANDゲートで
あり、その出力はJKフリップフロップ(JK−F/F)184に
記憶される。
The data stack pointer (hereinafter referred to as DSP) 181 is
This is a pointer when the cache memory 182 is used in a stack structure, and is a microprogram memory (μ-ME
M) The microinstruction read from 191 is set in the pipeline register (PLR) 192, and at the same time, the μ-MEM191 is read.
The count-up / down operation is performed by the count enable signal CTE and the count-up / down signal UP / ▲ ▼ output from the CPU. The AND gate 183 is an AND gate that generates a count-up condition of the DSP 181 at the time of a bus error by using the count enable signal CTEX and the count-up / down signal UP / ▲ X output from the PLR 192. The output of the AND gate 183 is a JK flip-flop. (JK-F / F) 184 is stored.

また、アンドゲート185は、バスエラー時のDSP181の
カウントダウン条件を生成するANDゲートであり、その
出力はJKフリップフロップ(JK−F/F)186に記憶され
る。
The AND gate 185 is an AND gate for generating a countdown condition of the DSP 181 at the time of a bus error, and its output is stored in a JK flip-flop (JK-F / F) 186.

コマンドレジスタ(CMR)187は、マイクロプログラム
の実行によりALU188から出力される前記JK−F/F184,186
がバスエラー時に記憶しているDSP181のカウンタアップ
/ダウン情報をクリア(リセット)するためのコマンド
を格納するレジスタである。
The command register (CMR) 187 stores the JK-F / F 184, 186 output from the ALU 188 by executing the microprogram.
Is a register for storing a command for clearing (resetting) the counter up / down information of the DSP 181 stored at the time of a bus error.

続いて、上記構成のCPU180、μ−MEM191、及びPLR192
を有する第2実施例の動作を説明する。
Subsequently, the CPU 180, μ-MEM191, and PLR192 having the above configuration
The operation of the second embodiment having the above will be described.

まず、バス転送を行うと同時に、DSP181のカウントア
ップを行う動作が実行された際に、バスエラーが発生し
た場合の動作を、第7図のタイミングチャートを参照し
ながら説明する。尚、バス転送によりバスエラーが発生
したときの、特に図示していないマイクロシーケンサ
(μ−SQC)及びCPU180の各アボート動作は、前述した
第2図に示す第1実施例と同様である。
First, the operation when a bus error occurs when the operation of performing the count-up of the DSP 181 is performed at the same time as performing the bus transfer will be described with reference to the timing chart of FIG. Incidentally, when a bus error occurs due to the bus transfer, the abort operations of the microsequencer (μ-SQC) and the CPU 180 (not shown) are the same as those of the first embodiment shown in FIG.

第7図のタイミングチャートに示すように、時刻TA
おけるクロックのタイミングAで、μ−MEM191から出力
されるデータ転送命令がPLR192にセットされると同時
に、DSP181は、同じくμ−MEM191から出力されるカウン
トイネーブル信号CTEとカウントアップ/ダウン信号UP/
▲▼によりカウントアップ動作を行いカウント値が
“5"から“6"に変化する。そして、次のクロックのタイ
ミングBでデータ転送が行われたときにバスエラーが発
生した場合は、PLR192から出力されるカウントイネーブ
ル信号CTEX、カウントアップ/ダウン信号UP/▲▼
X、及びバスエラー信号がアクティブとなるので、ゲー
ト183を介して、JK−F/F184にバスエラー時のDSP181の
カウントアップ情報が記憶される。この時、データ転送
のリトライ動作を、前記第1の実施例と同様にして行っ
た場合には、DSP181がすでにカウントアップされている
のでアボートすることができないが、前記第5図のフロ
ーチャートに示す割込処理ルーチンの処理SC3でRTCが
「0」に等しくないと判別された後に、第6図に示すJK
−F/F184の出力に基づいてバスエラー時のDSP181のカウ
ントアップ指令の有無を判定する第8図の処理を、処理
SC4として組み込むことにより同等の機能を実現でき
る。
As shown in the timing chart of FIG. 7, at the timing A of the clock at the time T A, the data transfer instruction output from the μ-MEM 191 is set in the PLR 192, and at the same time, the DSP 181 is also output from the μ-MEM 191. Count enable signal CTE and count up / down signal UP /
The count-up operation is performed by ▲ ▼, and the count value changes from “5” to “6”. If a bus error occurs when data is transferred at the timing B of the next clock, the count enable signal CTEX output from the PLR 192 and the count up / down signal UP / ▲ ▼
Since the X and the bus error signal become active, the count-up information of the DSP 181 at the time of the bus error is stored in the JK-F / F 184 via the gate 183. At this time, if the retry operation of the data transfer is performed in the same manner as in the first embodiment, the DSP 181 has already counted up and cannot be aborted. However, as shown in the flowchart of FIG. After it is determined in step SC3 of the interrupt processing routine that the RTC is not equal to "0", the JK shown in FIG.
-The processing of FIG. 8 for determining the presence or absence of the DSP 181 count-up command at the time of a bus error based on the output of the F / F 184 is performed.
By incorporating it as SC4, equivalent functions can be realized.

すなわち、第8図のフローチャートにおいて、JK−F/
F184、186の出力を読み出して、バスエラー時のカウン
トアップ指令有のときは、DSP181のカウント値を“1"デ
クリメント(減算)して(SD2)、DSP181の値を上記デ
ータ転送命令の実行前のカウント値「5」に戻した状態
とし、さらにJK−F/F184の出力をコマンドレジスタ187
を介してリセットさせた後(SD5)、リターン命令によ
り元のインタプリタの転送命令の実行へ移行しリトライ
を行う。
That is, in the flowchart of FIG. 8, JK-F /
Read the outputs of F184 and 186, and if there is a count-up command at the time of a bus error, decrement (subtract) the count value of DSP181 by "1" (SD2) and change the value of DSP181 before executing the data transfer instruction. And the output of JK-F / F184 is returned to the command register 187.
(SD5), the process returns to the execution of the transfer command of the original interpreter by the return command, and the retry is performed.

一方、データ転送命令と同時にDSP181のカウントダウ
ンを行う場合も、ゲート185とJK−F/F186により、上記
と同様にしてバスエラー時にJK−F/F184、186の出力を
読み出して、バスエラー時のカウントダウン指令有を認
識してDSP181のカウント値を「1」インクリメント(増
加)して(SD4)、DSP181の値を上記データ転送命令の
実行前のカウント値に戻してからリトライすることがで
きる。以上により、バスエラーが発生した際に、DSP181
の値をデータ転送実行前に戻して、リトライ処理を行う
ことができる。
On the other hand, when the DSP 181 counts down simultaneously with the data transfer instruction, the gate 185 and the JK-F / F 186 read the outputs of the JK-F / F 184 and 186 at the time of a bus error in the same manner as described above, and Recognizing that the countdown command is present, the DSP 181 increments (increases) the count value of the DSP 181 by "1" (SD4), and can retry after returning the value of the DSP 181 to the count value before the execution of the data transfer instruction. As described above, when a bus error occurs, the DSP181
Can be returned before the data transfer is executed, and the retry processing can be performed.

尚、上記第2実施例はDSP181のカウントアップ/ダウ
ンの例であるが、バス転送命令をパイプラインレジスタ
へラッチすると同時に実行される各種の動作を伴ったバ
ス転送のマイクロ命令においても、バスエラー信号の発
生タイミングでその動作があったことを記憶する複数の
F/Fを備えることにより、バスエラー割込処理の中でリ
トライする前にF/Fの出力を確認し、その動作をデータ
転送の実行前に戻すことが可能である。
Although the second embodiment is an example of counting up / down of the DSP 181, a bus error is also generated in a bus transfer microinstruction accompanied by various operations executed simultaneously with latching a bus transfer instruction into a pipeline register. A plurality of signals that memorize the operation at the timing of signal generation
By providing the F / F, it is possible to check the output of the F / F before retrying in the bus error interrupt processing, and to return the operation to before executing the data transfer.

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

以上説明したように、本発明は、データ転送のマクロ
命令を解読実行するマイクロプログラムのマイクロ命令
の実行により、バス転送エラーが発生した場合、同一の
マイクロ命令のステップを所定回数繰り返して再実行さ
せるようにしたので、インタプリタ内で転送命令を実行
するマイクロ命令の実行後に、バスエラー判定用の同じ
くマイクロ命令から成るステップを実行することが不要
となり、バスエラーの無い時のデータ転送のマクロ命令
を高速にマイクロプログラムで解読実行することができ
る。またモードの異なる複数のデータ転送用のマクロ命
令に対しては、各マクロ命令を解読実行するマイクロプ
ログラムのマイクロ命令上でリトライする為マクロ命令
毎に、リトライ用のサブルーチンを用意することも不要
となるので、マイクロプログラムメモリの使用容量を減
少することができる。
As described above, according to the present invention, when a bus transfer error occurs due to execution of a microinstruction of a microprogram for decoding and executing a macroinstruction for data transfer, the steps of the same microinstruction are repeated a predetermined number of times and re-executed. Therefore, it is not necessary to execute a step consisting of the same micro-instruction for determining a bus error after executing the micro-instruction for executing the transfer instruction in the interpreter. It can be decrypted and executed with a microprogram at high speed. In addition, for a plurality of macro instructions for data transfer in different modes, it is not necessary to prepare a retry subroutine for each macro instruction because retry is performed on the micro instruction of the micro program that decodes and executes each macro instruction. Therefore, the used capacity of the microprogram memory can be reduced.

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

第1図は本発明の原理説明図、 第2図は一実施例のプロセッサのシステム構成図、 第3図は32ビットリードインタプリタの転送処理を説明
するフローチャート、 第4図は16ビットリードインタプリタの転送処理を説明
するフローチャート、 第5図はバス転送エラー発生時に行われる割込処理を説
明するフローチャート、 第6図は本発明に係わる第2実施例のCPUの回路構成
図、 第7図はパイプライン処理を行うプロセッサの回路の動
作を説明するタイミングチャート、 第8図は上記パイプライン処理を行うプロセッサのバス
転送エラー発生時の動作を説明するフローチャート、 第9図は従来のプロセッサの一構成例を示す図、 第10図(a)は従来の32ビットリードインタプリタ処理
を説明するフローチャート、 第10図(b)は従来の32ビットリードインタプリタ専用
のリトライサブルーチンの処理を説明するフローチャー
ト、 第11図(a)は従来の16ビットリードインタプリタの処
理を説明するフローチャート、 第11図(b)は従来の16ビットリードインタプリタ専用
のリトライサブルーチンの処理を説明するフローチャー
トである。 1,105……マクロプログラムメモリ、 2,106……マクロプログラムカウンタ、 3,101,191……マイクロプログラムメモリ、 3a……割込処理ルーチン、 4,150,102……マイクロシーケンサ、 5,104,160,180……CPU、 6,103,192……パイプラインレジスタ(PLR)、 7……カウンタ、 8……記憶手段、 107……物理アドレス生成回路、 108……転送アドレスレジスタ、 109……テストコンディション選択回路、 120……バス転送エラー検出回路、 121……バスパリティチェッカ/ジェネレータ、 122……バスアクセス時間監視回路、 123……スレーブデバイス異常信号判定回路、 151……割込ベクタレジスタ、 152……ブランチ制御回路、 153……マイクロプログラムカウンタ(μ−PC)、 154……マイクロスタック(μ−スタック)、 155……マルチプレクサ、 161,182……キャッシュメモリ、 162、188……演算器(ALU)、 163……データ入出力バッファ、 164……マルチプレクサ、 165……バスエラー時キャッシュメモリライト禁止アン
ドゲート、 171……バスエラー時アドレスラッチ禁止アンドゲー
ト、 172……バスエラー時MPCカウント禁止アンドゲート、 173……バスエラー時各種レジスタ動作禁止アンドゲー
ト、 174……各種実行回路、 181……データスタックポインタ、 183,185……アンドゲート、 184,186……JK−F/F、 187……コマンドレジスタ.
FIG. 1 is a diagram illustrating the principle of the present invention, FIG. 2 is a system configuration diagram of a processor according to an embodiment, FIG. 3 is a flowchart illustrating a transfer process of a 32-bit read interpreter, and FIG. 5 is a flowchart illustrating a transfer process, FIG. 5 is a flowchart illustrating an interrupt process performed when a bus transfer error occurs, FIG. 6 is a circuit configuration diagram of a CPU according to a second embodiment of the present invention, and FIG. FIG. 8 is a timing chart illustrating the operation of the circuit of the processor that performs the line processing. FIG. 8 is a flowchart illustrating the operation of the processor that performs the pipeline processing when a bus transfer error occurs. FIG. 9 is a configuration example of a conventional processor. FIG. 10 (a) is a flowchart illustrating a conventional 32-bit read interpreter process, and FIG. 10 (b) is a conventional 32-bit read interpreter process. FIG. 11 (a) is a flowchart illustrating processing of a conventional 16-bit read interpreter, and FIG. 11 (b) is a flowchart illustrating processing of a conventional 16-bit read interpreter. 6 is a flowchart for explaining the processing of FIG. 1,105 macro program memory, 2,106 macro program counter, 3,101,191 micro program memory, 3a interrupt processing routine, 4,150,102 micro sequencer, 5,104,160,180 ... CPU, 6,103,192 pipeline register (PLR), 7: Counter, 8: Storage means, 107: Physical address generation circuit, 108: Transfer address register, 109: Test condition selection circuit, 120: Bus transfer error detection circuit, 121: Bus parity checker / Generator 122 Bus access time monitoring circuit 123 Slave device abnormality signal determination circuit 151 Interrupt vector register 152 Branch control circuit 153 Microprogram counter (μ-PC) 154 … Micro stack (μ-stack), 155 …… Multiplexer, 161,182 …… Cache memory , 162, 188… ALU, 163… Data I / O buffer, 164… Mux, 165… Cache memory write inhibit and gate at bus error, 171… Address latch inhibit and gate at bus error 172: MPC count prohibition AND gate at bus error 173: Various register operation prohibition AND gate at bus error 174 Various execution circuits 181 Data stack pointer 183,185 AND gate 184,186 JK −F / F, 187 …… Command register.

Claims (5)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】マクロプログラムが格納されるマクロプロ
グラムメモリ(1)、該マクロプログラムメモリ(1)
のアドレスを指定するマクロプログラムカウンタ
(2)、マイクロプログラムが格納されるマイクロプロ
グラムメモリ(3)、該マイクロプログラムメモリ
(3)のアドレスを指定するマイクロシーケンサ
(4)、前記マイクロプログラムメモリ(3)から読み
出されるマイクロ命令に基づいて動作を行なうCPU
(5)を有するプロセッサにおけるデータ転送のリトラ
イ制御方式において、 所定のマクロ命令を解読実行するマイクロプログラムの
マイクロ命令の実行によりバス転送エラーが発生した場
合、前記CPU(5)のリードデータの取り込み動作、及
びデータの転送アドレスの更新並びに前記マイクロシー
ケンサ(4)の指定するアドレスの更新をアボートして
前記所定のマクロ命令を解読実行するマイクロプログラ
ムのマイクロ命令を再実行することにより、前記バス転
送を再実行する処理を、バス転送エラーが解消されない
場合、所定回数まで繰り返すことを特徴とするデータ転
送のリトライ制御方式。
A macro program memory (1) for storing a macro program, said macro program memory (1)
Macro program counter (2) for specifying the address of the micro program memory (3) for storing the micro program, micro sequencer (4) for specifying the address of the micro program memory (3), the micro program memory (3) CPU that operates based on microinstructions read from
In the retry control method of data transfer in the processor having (5), when a bus transfer error occurs due to execution of a microinstruction of a microprogram that decodes and executes a predetermined macroinstruction, the CPU (5) reads the read data. Aborting the update of the data transfer address and the update of the address designated by the microsequencer (4), and re-executing the microinstruction of the microprogram for decoding and executing the predetermined macroinstruction, thereby executing the bus transfer. A retry control method for data transfer, wherein the re-executing process is repeated up to a predetermined number of times if a bus transfer error is not eliminated.
【請求項2】前記所定のマクロ命令を解読実行するマイ
クロプログラムのマイクロ命令の再実行の繰り返し回数
の計数は、バス転送エラー発生後に起動される前記マイ
クロプログラムメモリ(3)に格納された割り込み処理
ルーチン(3a)の実行により行われることを特徴とする
請求項1記載のデータ転送のリトライ制御方式。
2. The method according to claim 1, wherein the counting of the number of re-executions of the micro-instruction of the micro-program for decoding and executing the predetermined macro-instruction is performed by an interrupt process stored in the micro-program memory started after a bus transfer error occurs. 2. The data transfer retry control method according to claim 1, wherein the retry control is performed by executing a routine (3a).
【請求項3】前記割り込み処理ルーチン(3a)は、起動
される毎に、今回のバス転送エラー時のマクロプログラ
ムカウンタ(2)の値と前回のバス転送エラー時のマク
ロプログラムカウンタ(2)との値とを比較することに
より、同一マクロ命令の実行によるバス転送エラーであ
るか否かを判別し、同一マクロ命令が実行されたものと
判別したときのみ、前記マクロ命令を解読実行するマイ
クロプログラムのマイクロ命令の再実行回数の計数を行
うことを特徴とする請求項2記載のデータ転送のリトラ
イ制御方式。
Each time the interrupt processing routine (3a) is started, the value of the macro program counter (2) at the time of the current bus transfer error and the value of the macro program counter (2) at the time of the previous bus transfer error are determined. A micro-program for decoding and executing the macro instruction only when it is determined that there is a bus transfer error due to the execution of the same macro instruction, and only when it is determined that the same macro instruction has been executed. 3. The data transfer retry control method according to claim 2, wherein the number of re-executions of the micro instruction is counted.
【請求項4】前記割り込み処理ルーチン(3a)は、前記
バス転送エラーを引き起こしたマクロ命令を解読実行す
るマイクロプログラムのマイクロ命令を前記所定回数だ
け再実行させても、バス転送エラーが解消しない場合に
は、前記データの転送アドレスをマイクロプログラム・
オペレーティング・システムの管理下のバス転送エラー
の発生しないダミーアドレスに変更して復帰することを
特徴とする請求項3記載のデータ転送のリトライ制御方
式。
4. The interrupt processing routine according to claim 1, wherein the bus transfer error is not resolved even if the microinstruction of the microprogram for decoding and executing the macroinstruction causing the bus transfer error is re-executed the predetermined number of times. The microprogram
4. The data transfer retry control method according to claim 3, wherein the operation is changed to a dummy address under which a bus transfer error under the control of the operating system does not occur and the operation is restored.
【請求項5】1つのマイクロ命令において、バス転送動
作と同時にカウンタ(7)のインクリメント/デクリメ
ントなどの処理を行う場合、前記マイクロプログラムメ
モリ(3)から出力された該マイクロ命令をパイプライ
ンレジスタ(6)へラッチすると同時にカウンタ(7)
のインクリメント/デクリメントなどの処理を実行する
ようなマイクロ命令の実行時においてバス転送エラーが
発生した場合、そのときの前記カウンタ(7)に対する
カウント操作等の情報を記憶する記憶手段(8)とをさ
らに有し、 前記バス転送エラー発生時には、上記記憶手段(8)に
記憶されているカウント操作等の情報に基づいて前記カ
ウンタ(7)等の値を前記マイクロ命令の実行前の状態
に戻した後、前記マイクロ命令の再実行を行うことを特
徴とする請求項1,2,3または4記載のデータ転送のリト
ライ制御方式。
5. When performing a process such as increment / decrement of a counter (7) simultaneously with a bus transfer operation in one microinstruction, the microinstruction output from the microprogram memory (3) is transferred to a pipeline register (3). Latch to 6) and counter (7)
And a storage means (8) for storing information such as a count operation for said counter (7) when a bus transfer error occurs during execution of a microinstruction for executing processing such as increment / decrement. When the bus transfer error occurs, the value of the counter (7) or the like is returned to the state before the execution of the microinstruction based on the information such as the count operation stored in the storage means (8). 5. The data transfer retry control method according to claim 1, wherein the microinstruction is re-executed thereafter.
JP2231296A 1990-08-31 1990-08-31 Data transfer retry control method Expired - Fee Related JP2782471B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2231296A JP2782471B2 (en) 1990-08-31 1990-08-31 Data transfer retry control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2231296A JP2782471B2 (en) 1990-08-31 1990-08-31 Data transfer retry control method

Publications (2)

Publication Number Publication Date
JPH04112254A JPH04112254A (en) 1992-04-14
JP2782471B2 true JP2782471B2 (en) 1998-07-30

Family

ID=16921391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2231296A Expired - Fee Related JP2782471B2 (en) 1990-08-31 1990-08-31 Data transfer retry control method

Country Status (1)

Country Link
JP (1) JP2782471B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5924347A (en) * 1982-07-30 1984-02-08 Hitachi Ltd Executing and controlling method of microinstruction

Also Published As

Publication number Publication date
JPH04112254A (en) 1992-04-14

Similar Documents

Publication Publication Date Title
US4016545A (en) Plural memory controller apparatus
CA2082408C (en) System and method for preserving source instruction atomicity in translated program code
US4074353A (en) Trap mechanism for a data processing system
JP4703718B2 (en) Selective subroutine return structure
JPH02232737A (en) Method and apparatus for detecting and correcting error in pipeline type computer system
US4991083A (en) Method and system for extending address space for vector processing
JPS6250934A (en) Interrupting control system of processor
JP2782471B2 (en) Data transfer retry control method
CA1304823C (en) Apparatus and method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US4991130A (en) Normalization control system for floating point arithmetic operation
JP3171615B2 (en) Data transfer retry control method
JPH0192843A (en) Data processing apparatus and method
JPH0147818B2 (en)
TW201734769A (en) Processing vector instructions
JP2562838B2 (en) Processor and store buffer control method
JPH0424836A (en) Microprocessor
JP3585940B2 (en) calculator
JPS6161412B2 (en)
JPH0519820A (en) Programmable controller
Dearnley The development of user-level microprograms for the Data General Eclipse computer
JPH04353923A (en) Parallel instruction execution system for electronic computer
JPS58115559A (en) Program overrun detecting circuit
JPS6083149A (en) Computer
JPS6155731A (en) Processor provided with condition code discriminating function
JPH01147773A (en) Vector processor

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090522

Year of fee payment: 11

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090522

Year of fee payment: 11

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090522

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100522

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees