JP2737724B2 - NMI communication device between processors and system bus controller - Google Patents

NMI communication device between processors and system bus controller

Info

Publication number
JP2737724B2
JP2737724B2 JP7287963A JP28796395A JP2737724B2 JP 2737724 B2 JP2737724 B2 JP 2737724B2 JP 7287963 A JP7287963 A JP 7287963A JP 28796395 A JP28796395 A JP 28796395A JP 2737724 B2 JP2737724 B2 JP 2737724B2
Authority
JP
Japan
Prior art keywords
nmi
mpu
interrupt
register
processor
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
JP7287963A
Other languages
Japanese (ja)
Other versions
JPH09106361A (en
Inventor
幸一 種田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP7287963A priority Critical patent/JP2737724B2/en
Publication of JPH09106361A publication Critical patent/JPH09106361A/en
Application granted granted Critical
Publication of JP2737724B2 publication Critical patent/JP2737724B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明はエッジトリガのNM
I(Non−Maskable Interrupt)
端子を備えたマイクロプロセッサのプロセッサ間NMI
通信装置およびシステムバスコントローラに関し、特に
NMIを用いたマイクロプロセッサ間のコマンドのやり
とりおよび障害情報の収集を行うプロセッサ間NMI通
信装置およびシステムバスコントローラに関する。
The present invention relates to an edge-triggered NM.
I (Non-Maskable Interrupt)
NMI between microprocessors with terminals
The present invention relates to a communication device and a system bus controller, and more particularly to an inter-processor NMI communication device and a system bus controller that exchange commands between microprocessors and collect fault information using an NMI.

【0002】[0002]

【従来の技術】NMIを用いたプロセッサの暴走監視機
構としては、特開昭60−176147号公報に開示さ
れた「異常処理状態制御方式」,特開昭63−1231
38号公報に開示された「マイコン暴走検知回路」,特
開平4−69746号公報に開示された「メモリダンプ
方式」,特開平4−88448号公報に開示された「プ
ログラムエリアの保護装置」等がある。
2. Description of the Related Art As a runaway monitoring mechanism of a processor using an NMI, an "abnormal processing state control system" disclosed in Japanese Patent Application Laid-Open No. Sho 60-176147 and Japanese Patent Application Laid-Open No. 63-1231 are disclosed.
No. 38, “Microcomputer runaway detection circuit”, JP-A-4-69746, “Memory dump method”, JP-A-4-88448, “Program area protection device”, and the like. There is.

【0003】これに対して、NMI端子を備えたマイク
ロプロセッサで構成された密結合マルチプロセッサ方式
の情報処理装置におけるプロセッサ間通信では、NMI
は用いられておらず、エラー割り込みより一段低い割り
込みレベルが用いられるのが一般的であった。というの
は、NMIでは、ソフトウェアでのマスクができないた
めである。すなわち、通常のソフトウェアでは、プロセ
ッサ間通信中に他のプロセッサからのプロセッサ間通信
を受ける競合を考慮し、プロセッサヘの割り込みを発行
するシステムコール実行中は、プロセッサからの割り込
みを処理する割り込みハンドラとの排他制御のために、
プロセッサ間の割り込みをマスクする方法が採られるた
めである。
On the other hand, in the inter-processor communication in a tightly-coupled multiprocessor type information processing apparatus constituted by a microprocessor having an NMI terminal, the NMI
Is not used, and an interrupt level one step lower than the error interrupt is generally used. This is because NMI cannot perform masking by software. That is, in ordinary software, an interrupt handler that processes an interrupt from a processor is executed during execution of a system call that issues an interrupt to a processor, in consideration of contention for receiving an interprocessor communication from another processor during an interprocessor communication. For exclusive control of
This is because a method of masking an interrupt between processors is adopted.

【0004】一方、従来のシングルプロセッサのプロセ
ッサ暴走監視のために用いられているウォッチドッグタ
イマのランアウトの通知は、一般にNMIが用いられて
いる(例えば、特開昭61−271545号公報参
照)。これは、プロセッサの暴走停止にはNMIが最も
効果的であるためである。つまり、通常のマスク可能の
割り込みでは、ソフトウェアが割り込みをマスクした状
態で暴走したケースでは暴走を停止することが不可能に
なってしまうためである。暴走停止後は、一般的には、
メモリダンプ等の障害情報の収集のために、そのプロセ
ッサが使用されている。また、障害情報の収集が不要な
安価な制御用プロセッサの場合には、ウォッチドッグタ
イマのランアウト信号をプロセッサのリセット信号とし
て入力し、プロセッサを再スタートさせる方法もある。
On the other hand, NMI is generally used to notify the runout of a watchdog timer used for monitoring the runaway of a conventional single processor (see, for example, Japanese Patent Application Laid-Open No. 61-271545). This is because NMI is most effective for stopping the runaway of the processor. In other words, with a normal maskable interrupt, it is impossible to stop the runaway in the case where the software runs away while masking the interrupt. After a runaway stop,
The processor is used for collecting fault information such as a memory dump. In the case of an inexpensive control processor that does not need to collect fault information, there is a method of inputting a run-out signal of a watchdog timer as a reset signal of the processor and restarting the processor.

【0005】[0005]

【発明が解決しようとする課題】上述した従来のプロセ
ッサ間通信割り込みでは、異常時には、例えば、他のプ
ロセッサの暴走を別のプロセッサが検出し、その暴走し
たプロセッサを強制的にストップしたい場合,デバッグ
時にソフトウェアの暴走をストップさせたい場合などに
は、最優先処理(エラー処理以上の優先度で)でプロセ
ッサ間の通信を行いたい場合が存在するのもかかわら
ず、これを行うことができないという問題点があった。
In the above-described conventional inter-processor communication interrupt, in the event of an abnormality, for example, when another processor detects a runaway of another processor and wants to forcibly stop the runaway processor, it is necessary to perform debugging. Sometimes when you want to stop software runaway, you may not be able to do so despite the fact that you want to communicate between processors with the highest priority processing (with a priority higher than error processing). There was a point.

【0006】また、従来のウォッチドッグタイマの割り
込みでは、エラーを検出する側が非インテリジェントな
デバイスであったため、NMIを受信するプロセッサは
自分自身での暴走の停止,メモリダンプ等の障害情報の
収集を行う必要があるという問題点があった。しかし、
マルチプロセッサの場合、暴走したプロセッサを使用せ
ずに、別の正常なプロセッサで障害情報の収集およびエ
ラーのリカバリを行った方がよいケースが多い。プロセ
ッサ自身の障害の場合は、特にそうである。
Also, in the conventional watchdog timer interrupt, since the side that detects an error is a non-intelligent device, the processor that receives the NMI stops its own runaway and collects fault information such as a memory dump. There was a problem that it was necessary to do it. But,
In the case of a multiprocessor, in many cases, it is better to collect failure information and recover an error with another normal processor without using the runaway processor. This is especially true in the case of a failure of the processor itself.

【0007】本発明の目的は、上述の点に鑑み、プロセ
ッサ間通信でNMIを発生させ、如何なるソフトウェア
の暴走であれ、1台のMPUが異常を検出することがで
きれば、全MPUを停止させ、そのときのMPU状態を
引き出すことができるようにしたプロセッサ間NMI通
信装置およびシステムバスコントローラを提供すること
にある。
SUMMARY OF THE INVENTION In view of the above, it is an object of the present invention to generate an NMI in inter-processor communication and stop any MPU if one MPU can detect an abnormality in any software runaway. An object of the present invention is to provide an inter-processor NMI communication device and a system bus controller capable of extracting an MPU state at that time.

【0008】[0008]

【課題を解決するための手段】本発明のプロセッサ間N
MI通信装置は、エッジトリガのNMI端子を有するM
PUを1台以上と、上記全てのMPUからアクセス可能
な共有メモリとがシステムバスを介して接続されてなる
情報処理装置において、前記MPUの1つが割り込みコ
ードと割り込み通知先MPUを指示するデータとを書き
込むことにより前記システムバス上に割り込みトランザ
クションを発生させるプロセッサ間割り込み発生ポート
と、自MPU宛の割り込みトランザクションを前記シス
テムバスから受信することによりセットまたはリセット
される割り込み要因レジスタと、この割り込み要因レジ
スタにNMI要因がセットされるとセットされてNMI
信号を前記割り込み通知先MPUのNMI端子に入力し
てNMIを発生させ、前記割り込み要因レジスタのNM
I要因がリセットされてもリセットされないNMIフリ
ッププロップと、前記割り込み通知先MPUがダミーデ
ータを書き込むことにより前記NMIフリップフロップ
をリセットして前記NMI信号の駆動を停止させ、前記
割り込み通知先MPUが次のNMIを受け付け可能にす
るNMIフリップフロップリセットポートとを有し、前
記共有メモリ上にMPU制御テーブルを備え、前記割り
込みトランザクションを発行するMPUにおいて、前記
MPU制御テーブルにコマンドテーブルを書き込み前記
コマンドテーブルによって指定されたMPU宛にNMI
の割り込みコードを指示するデータを前記プロセッサ間
割り込み発生ポートに書き込むNMI発生手段を有し、
前記割り込み通知先MPUにおいて、NMI発生後のM
PUの障害情報をセーブする障害情報収集手段と、前記
コマンドテーブルのコマンドを参照して該当するコマン
ド処理を実行するプロセッサ間NMI処理手段と、前記
割り込み要因レジスタをチェックし、NMI要因がセッ
トされていたならば前記プロセッサ間NMI処理手段に
制御を移行しセットされていなかった場合にセットされ
るまでチェックし続けるポーリング手段とを有する。
According to the present invention, an inter-processor N is provided.
The MI communication apparatus has an M having an edge triggered NMI terminal.
In an information processing apparatus in which one or more PUs and a shared memory accessible from all the MPUs are connected via a system bus, one of the MPUs includes an interrupt code and data indicating an interrupt notification destination MPU. , An inter-processor interrupt generation port for generating an interrupt transaction on the system bus by writing the same, an interrupt factor register set or reset by receiving an interrupt transaction addressed to the own MPU from the system bus, and an interrupt factor register Is set when the NMI factor is set in
A signal is input to the NMI terminal of the interrupt notification destination MPU to generate an NMI, and NM of the interrupt factor register is generated.
An NMI flip-flop that is not reset even if the I factor is reset, and that the interrupt notification destination MPU resets the NMI flip-flop by writing dummy data to stop driving the NMI signal. An NMI flip-preset port enabling reception of an NMI, an MPU control table provided on the shared memory, and a command table written in the MPU control table in the MPU that issues the interrupt transaction, designated by the command table. NMI addressed to MPU
NMI generating means for writing data indicating an interrupt code of
At the interrupt notification destination MPU, M
Fault information collecting means for saving PU fault information, inter-processor NMI processing means for executing the corresponding command processing by referring to the command in the command table, and checking the interrupt factor register, and setting the NMI factor. And a polling means for transferring control to the inter-processor NMI processing means and continuing to check if it has not been set.

【0009】また、本発明のシステムバスコントローラ
は、エッジトリガのNMI端子を有するMPUを1台以
上と、上記全てのMPUからアクセス可能な共有メモリ
とがシステムバスを介して接続されてなる情報処理装置
において、前記MPUの1つが割り込みコードと割り込
み通知先MPUを指示するデータとを書き込むことによ
り前記システムバス上に割り込みトランザクションを発
生させるプロセッサ間割り込み発生ポートと、自MPU
宛の割り込みトランザクションを前記システムバスから
受信することによりセットまたはリセットされる割り込
み要因レジスタと、この割り込み要因レジスタにNMI
要因がセットされるとセットされてNMI信号を前記割
り込み通知先MPUのNMI端子に入力してNMIを発
生させ、前記割り込み要因レジスタのNMI要因がリセ
ットされてもリセットされないNMIフリッププロップ
と、前記割り込み通知先MPUがダミーデータを書き込
むことにより前記NMIフリップフロップをリセットし
て前記NMI信号の駆動を停止させ、前記割り込み通知
先MPUが次のNMIを受け付け可能にするNMIフリ
ップフロップリセットポートとを有する。
Further, the system bus controller of the present invention is an information processing system comprising at least one MPU having an NMI terminal for edge trigger and a shared memory accessible from all the MPUs via a system bus. An MPU for generating an interrupt transaction on the system bus by one of the MPUs writing an interrupt code and data designating an interrupt notification destination MPU;
An interrupt factor register that is set or reset by receiving an interrupt transaction addressed to the system bus from the system bus;
When the cause is set, an NMI signal is set and input to the NMI terminal of the interrupt notification destination MPU to generate an NMI, and the NMI flip-flop which is not reset even if the NMI cause of the interrupt cause register is reset; An NMI flip-flop preset port that resets the NMI flip-flop by writing dummy data by the notification destination MPU to stop driving the NMI signal, and enables the interrupt notification destination MPU to receive the next NMI.

【0010】[0010]

【発明の実施の形態】次に、本発明について図面を参照
して詳細に説明する。
Next, the present invention will be described in detail with reference to the drawings.

【0011】[0011]

【実施例】図2は、本発明の一実施例に係るプロセッサ
間NMI通信装置が適用された情報処理装置の構成を示
すブロック図である。この情報処理装置は、エッジトリ
ガのNMI端子を備えたマイクロプロセッサ(以下、M
PUと略記する)1と、システムバス4とMPU1とを
接続するシステムバスコントローラ(以下、SBCと略
記する)2と、MPU1からアクセス可能なローカルメ
モリ3と、システムバス4と、共有メモリ5とから、そ
の主要部が構成されている。
FIG. 2 is a block diagram showing a configuration of an information processing apparatus to which an inter-processor NMI communication apparatus according to one embodiment of the present invention is applied. This information processing apparatus includes a microprocessor (hereinafter referred to as M) having an NMI terminal for an edge trigger.
A PU 1), a system bus controller (hereinafter abbreviated as SBC) 2 for connecting the system bus 4 to the MPU 1, a local memory 3 accessible from the MPU 1, a system bus 4, and a shared memory 5. , The main part is constituted.

【0012】MPU1は、コプロセッサ10を内蔵して
いる。MPUlは、それぞれ自分のMPU番号を持って
いる。本実施例の場合、MPU1の最大台数は16台で
あるので、MPU番号は0から15までの数である。な
お、本実施例では、MPU1として、MIPS社のR4
000を想定している。R4000では、R4000内
部にアドレス変換テーブル(TLB)11を内蔵してお
り、障害発生時にはTLB11の内容のダンプが有効に
なることが多い。また、R4000は、32本の汎用レ
ジスタと、32本のコプロセッサレジスタを有してお
り、これも障害発生時の情報としては有効である。ただ
し、汎用レジスタの待避のためには、最低1レジスタを
破壊しなければならないので、その場合はkl(r2
6)レジスタを破壊することとする。
The MPU 1 has a coprocessor 10 built therein. Each MPU has its own MPU number. In the case of the present embodiment, the maximum number of MPUs 1 is 16, so the MPU numbers are numbers from 0 to 15. In the present embodiment, the MPU 1 is M4 R4.
000 is assumed. In the R4000, the address translation table (TLB) 11 is built in the R4000, so that when a failure occurs, dumping of the contents of the TLB 11 is often effective. The R4000 has 32 general-purpose registers and 32 coprocessor registers, which are also effective as information when a failure occurs. However, at least one register must be destroyed in order to save the general-purpose register. In this case, kl (r2
6) The register is destroyed.

【0013】ローカルメモリ3は、MPU1毎に設けら
れ、該当MPU1からしかアクセスを許可されないよう
にSBC2により制御される。このようにすることで、
他のMPU1や入出力装置(図示せず)の誤動作から該
当MPU1のデータを保護でき、システムバス4や共有
メモリ5の障害でも該当MPU1のデータの保護が可能
となる。
The local memory 3 is provided for each MPU 1 and is controlled by the SBC 2 so that access is permitted only from the MPU 1. By doing this,
The data of the corresponding MPU 1 can be protected from a malfunction of another MPU 1 and an input / output device (not shown), and the data of the corresponding MPU 1 can be protected even if a failure of the system bus 4 or the shared memory 5 occurs.

【0014】ローカルメモリ3上には、NMI発行手段
31,障害情報収集手段32,ポーリング手段33およ
びプロセッサ間NMI処理手段34を含む制御プログラ
ム30がロードされている。
A control program 30 including an NMI issuing unit 31, a failure information collecting unit 32, a polling unit 33, and an inter-processor NMI processing unit 34 is loaded on the local memory 3.

【0015】また、ローカルメモリ3は、ROM(Re
ad Only Memory)部とRAM(Rand
om Access Memory)部とを持つ。RA
M部は、揮発性RAMの場合と不揮発性RAM(nvR
AM)の場合とがある。通常、電源オン時に最初に実行
される制御プログラム30は、ROM部あるいはRAM
部に格納される。nvRAMの場合のメリットは、プロ
グラムがロードされると電源を落としても消えないこと
にある。制御プログラム30の一部は、nvRAMに格
納されることもある。用途は、制御プログラム30のワ
ークエリアである。その場合、一度ロードされると電源
オフされても消えないので、ROMと同じように使用で
き、かつ制御プログラム30の書き換えも可能であるの
で制御プログラム30のバージョンアップが容易に行え
るというメリットがある。
The local memory 3 has a ROM (Re
ad Only Memory) and RAM (Rand)
om Access Memory) section. RA
The M section is composed of a volatile RAM and a non-volatile RAM (nvR
AM). Normally, the control program 30 that is executed first when the power is turned on includes a ROM unit or a RAM.
Stored in the department. The advantage of the nvRAM is that it does not disappear even if the power is turned off when the program is loaded. Part of the control program 30 may be stored in the nvRAM. The application is a work area of the control program 30. In this case, once loaded, the data is not erased even if the power is turned off, so that it can be used in the same manner as a ROM, and the control program 30 can be rewritten, so that the control program 30 can be easily upgraded. .

【0016】共有メモリ5上には、MPU制御テーブル
50が確保されている。
On the shared memory 5, an MPU control table 50 is secured.

【0017】図1は、SBC2のより詳しい構成を示す
回路ブロック図である。SBC2は、アドレスバスおよ
びデータバス分離のローカルバス6を有しており、バッ
ファ201と、デコーダ202と、割り込み要因レジス
タ203と、NMIフリップフロップ204と、NMI
フリップフロップリセットポート207と、プロセッサ
間割り込み発生ポート208と、アドレス制御部209
とを含んで構成されている。なお、図1中、符号205
はINT(割り込み)信号、206はNMI信号、21
0はNMIリセット信号をそれぞれ示す。
FIG. 1 is a circuit block diagram showing a more detailed configuration of SBC2. The SBC 2 has a local bus 6 for separating an address bus and a data bus, and includes a buffer 201, a decoder 202, an interrupt factor register 203, an NMI flip-flop 204, and an NMI flip-flop 204.
Flip-flop preset port 207, inter-processor interrupt generation port 208, address control unit 209
It is comprised including. Note that in FIG.
Is an INT (interrupt) signal, 206 is an NMI signal, 21
0 indicates an NMI reset signal.

【0018】割り込み要因レジスタ203は、自MPU
1宛の割り込みトランザクションデータをシステムバス
4からバッファ201およびデコーダ202を介して受
信することによりセットまたはリセットされる。
The interrupt factor register 203 stores its own MPU
It is set or reset by receiving the interrupt transaction data addressed to 1 from the system bus 4 via the buffer 201 and the decoder 202.

【0019】NMIフリッププロップ204は、割り込
み要因レジスタ203にNMI要因がセットされるとセ
ットされてNMI信号206を割り込み通知先のMPU
1のNMI端子に入力してNMIを発生させる。なお、
NMIフリッププロップ204は、割り込み要因レジス
タ203のNMI要因がリセットされてもリセットされ
ない。
The NMI flip prop 204 is set when the NMI factor is set in the interrupt factor register 203, and sends the NMI signal 206 to the MPU of the interrupt notification destination.
The NMI is input to the NMI terminal No. 1 to generate an NMI. In addition,
The NMI flip prop 204 is not reset even if the NMI factor of the interrupt factor register 203 is reset.

【0020】NMIフリップフロップリセットポート2
07は、割り込み通知先のMPU1がダミーデータを書
き込むことによりNMIフリップフロップ204をリセ
ットしてNMI信号206の駆動を停止させ、割り込み
通知先のMPU1が次のNMIを受け付け可能にする。
NMI flip preset port 2
In step 07, the MPU 1 of the interrupt notification destination resets the NMI flip-flop 204 by writing the dummy data to stop driving the NMI signal 206, and the MPU 1 of the interrupt notification destination can receive the next NMI.

【0021】プロセッサ間割り込み発生ポート208
は、MPU1の1つが割り込みコードと割り込み通知先
MPU指定フィールドとを含む割り込みトランザクショ
ンデータを書き込むことによりシステムバス4上に割り
込みトランザクションを発生させる。
Inter-processor interrupt generation port 208
Causes one of the MPUs 1 to write an interrupt transaction data including an interrupt code and an interrupt notification destination MPU designation field to generate an interrupt transaction on the system bus 4.

【0022】アドレス制御部209は、MPU1が出力
するアドレスを監視し、アドレスに応じてローカルメモ
リ3,システムバス4,プロセッサ間割り込み発生ポー
ト208またはNMIフリップフロップリセットポート
207を選択する。
The address control unit 209 monitors the address output from the MPU 1 and selects the local memory 3, the system bus 4, the inter-processor interrupt generation port 208 or the NMI flip preset port 207 according to the address.

【0023】図3は、プロセッサ間割り込みポート20
8にMPU1がライトするデータであると同時に、シス
テムバス4のアドレス上に出力される割り込みトランザ
クションの形式でもあり、またバッファ201に取り込
まれる形式でもある割り込みトランザクションデータの
フォーマットを示す図である。ビット0〜15までがど
のMPU1に対する割り込みであるかを示すビットから
なる割り込み先通知先MPU指定フィールドである。割
り込みコードは、ビット16〜22の7ビットあり、値
0〜63までが通常の割り込み、値64〜79までがプ
ロセッサ間NMIと定義する。また、割り込みオペレー
ションビットOPが1のときに割り込み要因のセットで
あり、割り込みオペレーションビットOPが2のときに
割り込み要因のリセットである。なお、ビット24〜3
1は、RFU(Reservefor Future
Use)である。
FIG. 3 shows an inter-processor interrupt port 20.
8 is a diagram showing the format of the interrupt transaction data which is the format of the interrupt transaction output on the address of the system bus 4 at the same time as the data to be written by the MPU 1 to 8, and which is also the format to be taken into the buffer 201. Bits 0 to 15 are an interrupt destination notification destination MPU designation field including bits indicating which MPU 1 is an interrupt. The interrupt code has 7 bits of bits 16 to 22, and values 0 to 63 are defined as a normal interrupt, and values 64 to 79 are defined as an NMI between processors. When the interrupt operation bit OP is 1, the interrupt factor is set, and when the interrupt operation bit OP is 2, the interrupt factor is reset. Note that bits 24 to 3
1 is an RFU (Reservefor Future)
Use).

【0024】MPU1がプロセッサ間割り込み発生ポー
ト208に対して、割り込みトランザクションデータを
書き込むと、SBC2は、システムバス4のアドレス上
にそのデータを出力し、これにより割り込みトランザク
ションが発生する。MPU1は、自MPU1宛の割り込
みトランザクションを発生することも可能である。この
割り込みトランザクションは、システムバス4からSB
C2を経由して割り込み通知先のMPU1に通知され
る。本実施例のケースでは、SBC2は、システムバス
4のアドレスをバッファ201に取り込んで常時監視
し、割り込みトランザクションデータのビット0〜15
によりその割り込みトランザクションが自MPU1宛で
あることを認識すると、ビット16〜22の割り込みコ
ードをデコーダ202でデコードし、割り込み要因レジ
スタ203に保持する。このとき、割り込みオペレーシ
ョンビットOPが1のときは割り込み要因のセットとな
って1が保持され、0のときは割り込み要因のリセット
となって0が保持される。
When the MPU 1 writes the interrupt transaction data to the inter-processor interrupt generation port 208, the SBC 2 outputs the data on the address of the system bus 4 to generate an interrupt transaction. MPU1 can also generate an interrupt transaction addressed to its own MPU1. This interrupt transaction is sent from the system bus 4 to the SB
It is notified to the interrupt notification destination MPU1 via C2. In the case of this embodiment, the SBC 2 fetches the address of the system bus 4 into the buffer 201 and constantly monitors it,
Recognizes that the interrupt transaction is destined for the own MPU 1, the decoder 202 decodes the interrupt code of bits 16 to 22 and holds it in the interrupt factor register 203. At this time, when the interrupt operation bit OP is 1, the interrupt factor is set and 1 is held, and when it is 0, the interrupt factor is reset and 0 is held.

【0025】通常のプロセッサ間割り込み要因はNMI
ではなく通常の割り込みであるが、割り込みコードのい
くつかをNMI要因と定義し、このNMI要因のビット
が1になった場合は、NMIフリッププロップ204を
セットし、NMI信号206を駆動して、MPU1のN
MI端子に入力する。割り込み要因レジスタ203の通
常割り込みのビットがセットされると、INT信号20
5が駆動されて割り込みがMPU1に対して通知され
る。
The normal interrupt factor between processors is NMI
However, it is a normal interrupt, but some of the interrupt codes are defined as NMI factors. When the bit of this NMI factor becomes 1, the NMI flip-prop 204 is set and the NMI signal 206 is driven. MPU1 N
Input to MI terminal. When the normal interrupt bit of the interrupt factor register 203 is set, the INT signal 20
5 is driven and an interrupt is notified to the MPU 1.

【0026】割り込み要因レジスタ203のリセット
は、プロセッサ間割り込み発生ポート208に対して、
自MPU1宛にリセットしたい割り込みコードと値0の
割り込みオペレーションビットOPを含む割り込みトラ
ンザクションデータをライトすることにより行える。ま
た、NMIフリッププロップ204のリセットは、NM
Iフリッププロップリセットポート207に対してダミ
ーデータをライトすることによってのみ行うことができ
る。
The reset of the interrupt factor register 203 is performed with respect to the inter-processor interrupt generation port 208.
This can be performed by writing the interrupt code to be reset to the own MPU 1 and the interrupt transaction data including the interrupt operation bit OP having the value 0. Also, the reset of the NMI flip prop 204 is performed by NM
This can be performed only by writing dummy data to the I flip-flop preset port 207.

【0027】NMIは、名前の示す通り、マスクできな
い割り込みである。しかしながら、NMIが連続して発
生したならばNMI処理をソフトウェアで行うことがで
きなくなるので、ごく一般的なMPUは、NMI端子を
エッジトリガにして、一度NMI信号がアクティブにな
った場合、次のNMI処理をソフトウェアが受け付け可
能な状態となるまでは、このNMI信号をリセットしな
いことによって、次のNMIが発生することを防ぐこと
ができる。本発明においても、NMI信号203を割り
込み要因レジスタ203直接出力せずに、NMIフリッ
プフロップ204を介して出力している理由は、このN
MI信号206のリセットを割り込み要因レジスタ20
3のリセットとは別に行うことにより、次のNMIの発
生をマスクできるようにするためである。
The NMI is, as the name implies, an interrupt that cannot be masked. However, since NMI processing cannot be performed by software if NMIs occur continuously, a very common MPU uses the NMI terminal as an edge trigger and once the NMI signal becomes active, the next By not resetting the NMI signal until the NMI processing can be accepted by the software, the occurrence of the next NMI can be prevented. Also in the present invention, the reason why the NMI signal 203 is output via the NMI flip-flop 204 instead of directly outputting the interrupt factor register 203 is that N
The reset of the MI signal 206 is performed by the interrupt factor register 20.
3 is performed separately from the reset so that the occurrence of the next NMI can be masked.

【0028】図4は、共有メモリ5内に置かれたMPU
制御テーブル50の内容を示す図である。MPU制御テ
ーブル50は、MPU1の台数分のMPU制御ブロック
から成り立っている。各MPU制御ブロックは、実行ス
テータスとNMI発行元のMPU1の台数分のコマンド
テーブルとから成り立っている。
FIG. 4 shows an MPU placed in the shared memory 5.
FIG. 4 is a diagram showing the contents of a control table 50. The MPU control table 50 includes MPU control blocks for the number of MPUs 1. Each MPU control block is composed of an execution status and command tables for the number of MPUs 1 that issue NMIs.

【0029】図5に示すように、MPU制御ブロック内
の実行ステータスは、MPU1の現在の状態を表す。−
1(dead状態)は、MPU1が致命的なエラーを検
出して、システムバス4へのアクセスを停止しているこ
とを表す。0(none状態)は、MPU制御ブロック
が対応するMPU1が存在しないことを示す。1(id
le状態)は、MPU1が他のMPU1からのNMIを
ポーリングして待っている状態であることを示してい
る。すなわち、ポーリング手段33が実行中であること
を示す。2(busy状態)は、MPU1が他のMPU
1からのNMIによりプロセッサ間NMI処理手段34
を実行中であることを示す。idle状態およびbus
y状態の場合は、NMI端子のレベルは割り込み状態で
あるので、次のNMIは抑止されている。run状態と
busy状態との違いは、run状態ではNMI信号2
06が駆動されていないので、次のNMIが受け付け可
能であるということである。
As shown in FIG. 5, the execution status in the MPU control block indicates the current state of the MPU 1. −
1 (dead state) indicates that the MPU 1 has detected a fatal error and has stopped accessing the system bus 4. 0 (none state) indicates that there is no MPU1 corresponding to the MPU control block. 1 (id
The “le state” indicates that the MPU 1 is in a state of polling and waiting for an NMI from another MPU 1. That is, it indicates that the polling unit 33 is being executed. 2 (busy state) indicates that MPU 1
NMI processing means 34 by means of NMI from processor 1
Is being executed. idle state and bus
In the case of the y state, since the level of the NMI terminal is in the interrupt state, the next NMI is suppressed. The difference between the run state and the busy state is that the NMI signal 2
06 is not driven, so that the next NMI can be accepted.

【0030】図6は、MPU制御ブロック内のコマンド
テーブルの内容を詳細に示す図である。コマンドテーブ
ルには、フラグ,ST,CMD,MPU#,REG#,
上位32ビットデータ,下位32ビットデータ,転送ア
ドレス(nvRAMオフセット)および転送長(バイト
数)が格納されている。コマンドテーブルは、MPU1
の台数の2乗分存在する。それは、あるMPU1から他
のMPU1へのNMIを発行する場合の数がMPU1の
台数の2乗分あり、その1つ1つに対してコマンドテー
ブルを持つからである。NMIを発行するMPU1は、
NMI発行先のMPU1のMPU制御ブロックの中の自
MPU1のMPU番号に該当するコマンドテーブルにコ
マンド構造体(図24参照)をセットした後で、NMI
を発行する。また、コマンドテーブル内のMPU#は、
必ずNMIを受け付けたMPU1自身のMPU番号と一
致しているはずである。なお、MPU#が0xff(先
頭2桁の0xは下2桁の数字が16進数であることを示
す。以下同様)のときは、全MPU1に対する割り込み
である。
FIG. 6 is a diagram showing in detail the contents of the command table in the MPU control block. The command table includes flags, ST, CMD, MPU #, REG #,
Upper 32-bit data, lower 32-bit data, a transfer address (nvRAM offset), and a transfer length (byte number) are stored. The command table is MPU1
There are the squares of the number. This is because the number of NMIs issued from one MPU 1 to another MPU 1 is the square of the number of MPUs 1 and a command table is provided for each one. MPU 1 that issues NMI
After setting the command structure (see FIG. 24) in the command table corresponding to the MPU number of the own MPU1 in the MPU control block of the MPU1 to which the NMI is issued,
Issue The MPU # in the command table is
It must match the MPU number of the MPU 1 that has always received the NMI. Note that when MPU # is 0xff (the first two digits 0x indicate that the last two digits are hexadecimal numbers; the same applies hereinafter), it is an interrupt for all MPUs 1.

【0031】図7に示すように、コマンドテーブル内の
フラグは、1でNMI要求中を示し、0でNMI要求が
ないことを示す。NMIを発行するMPU1は、ここに
必ず1をセットしてNMIを発行する。その後、NMI
を発行したMPU1は、このフラグがNMIを受け付け
たMPU1が0にリセットしてNMI処理を終了するま
で待つことになる。
As shown in FIG. 7, the flag in the command table is 1 to indicate that an NMI request is being made, and 0 indicates that there is no NMI request. The MPU 1 that issues the NMI always sets 1 here and issues the NMI. After that, NMI
Is waiting until the MPU 1 that has received the NMI flag resets it to 0 and ends the NMI process.

【0032】図8は、NMIを受け付けたMPU1が実
行する障害情報収集手段32の処理を示す流れ図であ
る。図8を参照すると、障害情報収集手段32の処理
は、汎用レジスタ待避ステップS201と、コプロセッ
サレジスタ待避ステップS202と、TLBダンプステ
ップS203とからなる。
FIG. 8 is a flowchart showing the processing of the failure information collecting means 32 executed by the MPU 1 having received the NMI. Referring to FIG. 8, the processing of the failure information collecting means 32 includes a general-purpose register saving step S201, a coprocessor register saving step S202, and a TLB dumping step S203.

【0033】図9は、NMIを受け付けたMPU1が実
行するポーリング手段33の処理を示す流れ図である。
図9を参照すると、ポーリング手段33の処理は、SB
C内レジスタリードステップS301と、プロセッサ間
NMI発生判断ステップS302とからなる。
FIG. 9 is a flowchart showing the processing of the polling means 33 executed by the MPU 1 having received the NMI.
Referring to FIG. 9, the processing of polling means 33
It consists of a register read step S301 in C and an inter-processor NMI occurrence determination step S302.

【0034】図10ないし図16は、プロセッサ間NM
I処理手段34の処理を示す流れ図である。本実施例で
は、割り込みコードの64〜79までがNMI要因であ
るので、割り込みコードと発行元のMPU番号との対応
を、図17に示すように定義している。したがって、割
り込み要因レジスタ203をリードして、割り込みコー
ドを認識するだけで、どのMPU1からのNMIである
かを認識することができる。なお、MPU1間のNMI
のレベルが1つだけであったとしても、NMIを受け取
ったMPU1は、自分のMPU制御ブロック内のコマン
ドテーブルを検索できれば、そのコマンドテーブルの位
置からNMI発行元のMPU番号を認識することも可能
である。
FIGS. 10 to 16 show NM between processors.
5 is a flowchart showing the processing of the I processing means 34. In this embodiment, since the interrupt codes 64 to 79 are NMI factors, the correspondence between the interrupt codes and the MPU numbers of the issuers is defined as shown in FIG. Therefore, only by reading the interrupt factor register 203 and recognizing the interrupt code, it is possible to recognize which MPU 1 is the NMI. The NMI between the MPUs 1
Even if there is only one level, the MPU 1 that has received the NMI can recognize the MPU number of the NMI issuer from the position of the command table if it can search the command table in its own MPU control block. It is.

【0035】図10を参照すると、プロセッサ間NMI
処理手段34のメイン処理は、NMIビットリセットス
テップS401と、MPU制御ブロックリードステップ
S402と、イニシャライズコマンド判定ステップS4
03と、レジスタリードコマンド判定ステップS404
と、レジスタライトコマンド判定ステップS405と、
nvRAMリードコマンド判定ステップS406と、n
vRAMライトコマンド判定ステップS407と、ST
不正コマンドセットステップS408と、実行ステータ
スidle設定ステップS409とからなる。
Referring to FIG. 10, the NMI between processors
The main processing of the processing means 34 includes an NMI bit reset step S401, an MPU control block read step S402, and an initialize command determination step S4.
03 and register read command determination step S404
And register write command determination step S405;
nvRAM read command determination step S406, n
vRAM write command determination step S407 and ST
It comprises an unauthorized command setting step S408 and an execution status idle setting step S409.

【0036】図11を参照すると、プロセッサ間NMI
処理手段34のイニシャライズコマンド処理は、レジス
タ待避エリア初期化ステップS410と、TLB初期化
ステップS411と、TLBダンプエリア初期化ステッ
プS412と、ST正常終了セットステップS413と
からなる。
Referring to FIG. 11, the NMI between processors
The initialization command processing of the processing means 34 includes a register save area initialization step S410, a TLB initialization step S411, a TLB dump area initialization step S412, and an ST normal end setting step S413.

【0037】図12を参照すると、プロセッサ間NMI
処理手段34のレジスタリードコマンド処理は、レジス
タ待避エリア情報上位/下位データエリアセットステッ
プS414と、ST正常終了セットステップS415と
からなる。
Referring to FIG. 12, the NMI between processors
The register read command processing of the processing means 34 includes a register save area information upper / lower data area setting step S414 and an ST normal end setting step S415.

【0038】図13および図14を参照すると、プロセ
ッサ間NMI処理手段34のレジスタライトコマンド処
理は、REG#判定ステップS416と、上位/下位デ
ータレジスタ待避エリアセットステップS417と、S
T正常終了セットステップS418と、CRC(Cyc
lic Redundancy Check)ビット判
定ステップS419と、CRCビットセットステップS
420と、COUNTビット判定ステップS421と、
COUNTレジスタ0ライトステップS422と、TL
BCLRビット判定ステップS423と、TLBおよび
TLBダンプエリア初期化ステップS424と、SCF
CLRビット判定ステップS425と、制御プログラム
エリア初期化ステップS426と、ST正常終了セット
ステップS429と、EXECビット判定ステップS4
30と、コプロセッサレジスタ復帰ステップS431
と、NMIリセットステップS432と、汎用レジスタ
等復帰ステップS433と、eret(excepti
on return)命令実行ステップS434とから
なる。
Referring to FIGS. 13 and 14, the register write command processing of the inter-processor NMI processing means 34 includes a REG # determination step S416, an upper / lower data register save area setting step S417, and
T normal end setting step S418 and CRC (Cyc
Like Redundancy Check) bit determination step S419 and CRC bit setting step S419
420, a COUNT bit determination step S421,
COUNT register 0 write step S422, TL
BCLR bit determination step S423, TLB and TLB dump area initialization step S424, SCF
CLR bit determination step S425, control program area initialization step S426, ST normal end setting step S429, EXEC bit determination step S4
30, and the coprocessor register return step S431
, NMI reset step S432, general-purpose register etc. return step S433, and eret (excepti
(on return) instruction execution step S434.

【0039】図15を参照すると、プロセッサ間NMI
処理手段34のnvRAMリードコマンド処理は、ロー
カルメモリからのデータ転送ステップS435と、ST
正常終了セットステップS436とからなる。
Referring to FIG. 15, the NMI between processors
The processing of the nvRAM read command by the processing means 34 includes a step S435 for transferring data from the local memory and a step ST435.
It comprises a normal end setting step S436.

【0040】図16を参照すると、プロセッサ間NMI
処理手段34のnvRAMライトコマンド処理は、ロー
カルメモリへのデータ転送ステップS437と、ST正
常終了セットステップS438とからなる。
Referring to FIG. 16, the NMI between processors
The nvRAM write command processing of the processing means 34 includes a step S437 for transferring data to the local memory and a step ST438 for setting the normal end of the ST.

【0041】図18は、コマンドテーブル内のCMDの
種類を示す図である。本実施例では、CMDとして5種
類のコマンドが定義されている。0x0fは、イニシャ
ライズを示すコマンドであり、障害情報収集手段32に
よってローカルメモリ3内に待避したレジスタ,TLB
およびTLBダンプエリアを全て初期化するコマンドで
ある。0x12は、レジスタリードを示すコマンドであ
り、障害情報収集手段32によってローカルメモリ3内
に待避したレジスタのうち、コマンドテーブル内のRE
G#で示されるレジスタ番号のレジスタの内容を、コマ
ンドテーブル内の上位32ビットデータおよび下位32
ビットデータにコピーするコマンドである。0x13
は、0x12の逆で、レジスタライトを示すコマンドで
あり、コマンドテーブル内の上位32ビットデータおよ
び下位32ビットデータの内容を、障害情報収集手段3
2によってローカルメモリ3内に待避するエリアの中の
コマンドテーブル内のREG#で示されるレジスタ番号
の待避エリアにコピーするコマンドである。0x02
は、コマンドテーブル内の転送アドレスで示されるロー
カルメモリ3内のオフセットアドレスから、転送長(バ
イト数)で示されるバイト数だけ、下位32ビットデー
タで示される共有メモリ5内に転送するコマンドであ
る。0x03は、0x02の逆で、コマンドテーブル内
の下位32ビットデータで示される共有メモリ5から、
転送長(バイト数)で示されるバイト数だけ、転送アド
レスで示されるローカルメモリ3内のオフセットアドレ
スに転送するコマンドである。これらのコマンドはロー
カルメモリ3内に制御プログラム30をロードしたり、
あるいはローカルメモリ3の内容をダンプしたりするの
に有効である。
FIG. 18 is a diagram showing the types of CMD in the command table. In this embodiment, five types of commands are defined as CMD. 0x0f is a command indicating initialization, the register saved in the local memory 3 by the fault information collecting means 32, the TLB
And a command for initializing all the TLB dump areas. 0x12 is a command indicating a register read, and among the registers saved in the local memory 3 by the fault information collecting means 32, the RE in the command table
The contents of the register of the register number indicated by G # are stored in the upper 32 bits of data and lower 32 bits in the command table.
This is a command to copy to bit data. 0x13
Is a command indicating register write, which is the reverse of 0x12, and stores the contents of the upper 32 bits data and lower 32 bits data in the command table in the fault information collecting means 3.
2 is a command for copying to the save area of the register number indicated by REG # in the command table in the area saved in the local memory 3 in the local memory 3. 0x02
Is a command to transfer from the offset address in the local memory 3 indicated by the transfer address in the command table by the number of bytes indicated by the transfer length (number of bytes) into the shared memory 5 indicated by the lower 32-bit data. . 0x03 is the reverse of 0x02, and from the shared memory 5 indicated by the lower 32 bits of data in the command table,
This is a command for transferring the number of bytes indicated by the transfer length (number of bytes) to the offset address in the local memory 3 indicated by the transfer address. These commands load the control program 30 into the local memory 3,
Alternatively, it is effective for dumping the contents of the local memory 3.

【0042】図19は、コマンドテーブル内のREG#
の内容を示す図である。ビット0〜4は0〜31のレジ
スタ番号を示し、ビット5〜7は値0のときにR400
0レジスタを、値4のときにcp0(システム制御)レ
ジスタを、値5のときにcp1(浮動少数点)レジスタ
をそれぞれ示す。レジスタ一覧は、図20に示す通りで
ある。
FIG. 19 shows REG # in the command table.
It is a figure which shows the content of. Bits 0 to 4 indicate a register number of 0 to 31, and bits 5 to 7 are R400 when the value is 0.
A 0 register indicates a cp0 (system control) register when the value is 4, and a cp1 (floating point) register when the value is 5. The register list is as shown in FIG.

【0043】図21は、プロセッサ間NMI処理手段3
4がコマンドテーブルに格納するSTの内容を説明する
図である。0x00はコマンドが正常終了したことを示
し、0x07はコマンドが異常終了したことを示し、0
x0Aは未定義コマンドが発行されたことを示す。
FIG. 21 shows the NMI processing means 3 between processors.
FIG. 4 is a diagram for explaining the contents of ST stored in the command table. 0x00 indicates that the command ended normally, 0x07 indicates that the command ended abnormally,
x0A indicates that an undefined command has been issued.

【0044】図22は、NMI発行手段31のメイン処
理を示す流れ図である。NMIを発行する手順もサブル
ーチンとしてまとめておいた方がソフトウェアで使用す
る場合、便利なことが多い。図23がそのサブルーチン
(NMI発行サブルーチン)の処理を示す流れ図であ
る。また、NMI発生手段31のコールの方法を図式化
したのが、図24である。
FIG. 22 is a flowchart showing the main processing of the NMI issuing means 31. It is often convenient to summarize the procedure for issuing the NMI as a subroutine when using it in software. FIG. 23 is a flowchart showing the processing of the subroutine (NMI issuing subroutine). FIG. 24 schematically shows a method of calling the NMI generating means 31.

【0045】図22を参照すると、NMI発行手段31
のメイン処理は、コマンド構造体作成ステップS101
と、共有メモリアドレスセットステップS102と、N
MI発行サブルーチン呼出しステップS103とからな
る。
Referring to FIG. 22, NMI issuing means 31
Main processing of the command structure creation step S101
, Shared memory address setting step S102, N
It comprises an MI issuing subroutine call step S103.

【0046】図23を参照すると、NMI発行サブルー
チンの処理は、MPU#正常判定ステップS104と、
実行ステータスnone/dead判定ステップS10
5と、ST不正MPU番号セットステップS106と、
実行ステータスbusy判定ステップS107と、ST
ビジーセットステップS108と、フラグリセットステ
ップS109と、コマンド構造体コピーステップS11
0と、ST0xffセットステップS111と、NMI
発生ステップS112と、ST0xff変化判定ステッ
プS113と、10ms経過判定ステップS114と、
フラグ0設定ステップS115と、実行ステータスde
ad設定ステップS116と、ST0x30セットステ
ップS117と、コマンドテーブルコピーステップS1
18とからなる。
Referring to FIG. 23, the processing of the NMI issuing subroutine includes an MPU # normality determination step S104,
Execution status none / dead determination step S10
5, ST invalid MPU number setting step S106,
Execution status busy determination step S107 and ST
Busy set step S108, flag reset step S109, command structure copy step S11
0, ST0xff set step S111, NMI
Generation step S112, ST0xff change determination step S113, 10 ms elapsed determination step S114,
Flag 0 setting step S115 and execution status de
ad setting step S116, ST0x30 setting step S117, command table copying step S1
18

【0047】図25は、NMI発行手段31がコマンド
テーブルに格納するSTの内容を説明する図である。0
x10はビジー状態を示し、0x20は不正MPU番号
を示し、0x30はタイムアウトを示す。
FIG. 25 is a diagram for explaining the contents of the ST stored in the command table by the NMI issuing means 31. 0
x10 indicates a busy state, 0x20 indicates an invalid MPU number, and 0x30 indicates a timeout.

【0048】図26は、レジスタ0へのライトを説明す
る図である。本実施例のプロセッサ間NMI通信装置で
は、レジスタ番号0のレジスタ(以下、レジスタ0と表
記する)へのライトは特別な意味を持たせている。通常
R4000では、レジスタ0はゼロレジスタと呼ばれ、
リードしても0が読め、ライトしても無視される特殊な
レジスタである。しかし、プロセッサ間NMIを通し
て、相手のMPU1のレジスタ0へのライトは、図26
に示すような意味がある。
FIG. 26 is a diagram for explaining writing to the register 0. In the inter-processor NMI communication device of the present embodiment, writing to the register of register number 0 (hereinafter referred to as register 0) has a special meaning. Normally in R4000, register 0 is called a zero register,
This is a special register that can read 0 when read and is ignored even if it is written. However, writing to the register 0 of the partner MPU 1 through the inter-processor NMI is performed as shown in FIG.
There is a meaning as shown in

【0049】すなわち、上位32ビットデータのビット
31のEXECビットに1を立てたデータをライトする
ことにより、相手のMPU1に対して、待避したレジス
タを全て復帰した後で、ErrorEPCレジスタの示
すアドレスからスタートすることを指示することができ
る。ErrorEPCレジスタは、NMIが発生したと
きのプログラムカウンタを保持するレジスタである。具
体的にいえば、コプロセッサ10の内容をローカルメモ
リ3のレジスタ待避エリアから復帰し、その後で汎用レ
ジスタを復帰し、さらにNMIが受け付けられるよう
に、eret命令を実行することにより、ErrorE
PCレジスタの内容がプログラムカウンタにロードさ
れ、そこから命令が実行されることになる。
That is, by writing data in which the EXEC bit of bit 31 of the upper 32 bits of data is set to 1, after restoring all the saved registers to the other MPU 1, the address indicated by the Error EPC register is restored. You can tell it to start. The ErrorEPC register is a register that holds a program counter when an NMI occurs. More specifically, by returning the contents of the coprocessor 10 from the register save area of the local memory 3 and then restoring the general-purpose registers, and further executing the eret instruction so that the NMI can be accepted, the ErrorE is executed.
The contents of the PC register are loaded into the program counter from which the instruction is executed.

【0050】この機能を使えば、あるMPU1は、プロ
セッサ間NMIで相手のMPU1をストップさせて、そ
のときのレジスタの値を自由に得ることができると同時
に、相手のMPU1をまた元のプログラムに復帰させる
ことも可能となる。この機能は、マルチプロセッサデバ
ッギングに威力を発揮する。すなわち、ブレーク命令を
実行したMPU1が全MPU1に対してNMIを発行す
ることにより、他のMPU1に命令実行をストップさ
せ、自分自身はデバッグモニタを実行し、デバッグモニ
タから他のMPU1にレジスタをリード/ライトするこ
とにより、他のMPU1の実行状態を知ることができ、
その後、デバッグモニタからのコマンドにより、NMI
発生以前の命令から再スタートする機能を実現すること
が可能となる。
By using this function, a certain MPU 1 can stop the partner MPU 1 by the NMI between the processors and freely obtain the value of the register at that time, and simultaneously copy the partner MPU 1 to the original program. It is also possible to return. This feature is very useful for multiprocessor debugging. That is, the MPU 1 that has executed the break instruction issues an NMI to all the MPUs 1 to cause the other MPUs 1 to stop executing instructions, execute the debug monitor itself, and read registers from the debug monitor to the other MPUs 1. By writing / writing, the execution state of another MPU 1 can be known,
After that, NMI is issued by a command from the debug monitor.
It is possible to realize a function of restarting from an instruction before occurrence.

【0051】また、本実施例では、レジスタ0へのライ
トで、nvRAM上の制御プログラム30のCRC機能
を実現している。これは、ローカルメモリ3のnvRA
M上に制御プログラム30を格納した場合で、制御プロ
グラム30が正常にロードされているか否かを判断する
ために、制御プログラム30の最終番地の2バイトにC
RCコードを埋め込んでおき、各MPU1にCRCを行
わせることで、制御プログラム30をロードする必要が
あるかないかを判断するために使用できる。CRCの結
果は、レジスタ0へのリードを行い、上位32ビットデ
ータのCRCビットをチェックすることで行える。
In this embodiment, the CRC function of the control program 30 in the nvRAM is realized by writing to the register 0. This corresponds to nvRA of the local memory 3.
In the case where the control program 30 is stored on M, in order to determine whether or not the control program 30 is normally loaded, the last two bytes of the control program 30 are stored in the 2 bytes.
By embedding an RC code and causing each MPU 1 to perform a CRC, it can be used to determine whether it is necessary to load the control program 30 or not. The CRC result can be obtained by reading the register 0 and checking the CRC bit of the upper 32 bits of data.

【0052】レジスタ0へのライトだけは、自MPU1
への発行が可能である。本発明がMPU1が1台しか存
在しない場合でも成立する理由はここにある。これは、
コマンド構造体のMPU#に自MPU番号を格納してN
MI発行手段31を呼び出すことで実現できる。例え
ば、コマンド構造体内のREG#に0を設定し、MPU
#に自分のMPU#を設定し、上位32ビットデータ
に、図26で示すCRCビットとEXECビットとをと
もに1であるデータをセットして、NMI発行手段31
を呼び出すと、図23のNMI発行サブルーチン内のス
テップS112の直後で、自分自身にNMIが発生す
る。NMIは、マスク不可であるので、NMI発行手段
31自体も途中で中断される。その後、NMIによって
障害情報収集手段32,ポーリング手段33およびプロ
セッサ間NMI処理手段34が実行される。CRCビッ
トが1であることにより、プロセッサ間NMI処理手段
34内のステップS419およびS420によりCRC
チェックが行われ、その後、EXECビットが1である
ことにより、ステップS431,S432,S433お
よびS434によりプロセッサ間NMI処理手段34を
終了し、中断されたNMI前の状態に復帰し、ステップ
S113から処理を再開する。NMI発行手段31内の
ステップS429により、STには正常終了がセットさ
れているので、NMI発行手段31は、ステップS11
8を実行して処理を終了することになる。
Only writing to register 0 is performed by own MPU 1
Can be issued to This is the reason why the present invention is established even when only one MPU 1 exists. this is,
Stores own MPU number in MPU # of command structure and returns N
This can be realized by calling the MI issuing unit 31. For example, REG # in the command structure is set to 0, and the MPU
# Is set to its own MPU #, and the upper 32 bits are set to the data in which both the CRC bit and the EXEC bit shown in FIG.
Is called, an NMI is generated in itself immediately after step S112 in the NMI issuing subroutine of FIG. Since the NMI cannot be masked, the NMI issuing means 31 itself is interrupted halfway. Thereafter, the NMI executes the fault information collecting means 32, the polling means 33, and the inter-processor NMI processing means 34. Since the CRC bit is 1, the CRC bit is set in steps S419 and S420 in the inter-processor NMI processing means 34.
A check is performed, and thereafter, since the EXEC bit is 1, the inter-processor NMI processing means 34 is terminated in steps S431, S432, S433, and S434, the state is returned to the state before the interrupted NMI, and the processing from step S113 is performed. Resume. Since the normal end is set in ST in step S429 in the NMI issuing unit 31, the NMI issuing unit 31 proceeds to step S11.
8 and the process ends.

【0053】また、レジスタ0へのライトだけは、全M
PU1への一斉ライトが可能である。例えば、レジスタ
0へのライトでCOUNTレジスタの初期化を行うこと
ができる。COUNTレジスタとは、各MPU1が1ク
ロック毎にカウントアップしていくレジスタであり、イ
ンターバールタイマとして、R4000が使用すること
ができるレジスタである。この値はリセット時には、ま
ちまちの値をとるため、一斉に初期化してやる方法が必
要となる。この場合にもレジスタ0へのライトを全MP
U1に対して一斉に行うことで、一斉にCOUNTレジ
スタを0に初期化することが可能である。
Only writing to register 0 is performed for all M
Simultaneous writing to PU1 is possible. For example, the COUNT register can be initialized by writing to the register 0. The COUNT register is a register in which each MPU 1 counts up every clock, and is a register that can be used by the R4000 as an interval timer. Since this value takes various values at the time of resetting, a method of initializing all at once is required. In this case as well, writing to register 0 is performed for all MPs.
By simultaneously performing the operations on U1, it is possible to initialize the COUNT register to 0 all at once.

【0054】さらに、レジスタ0へのライトにより、T
LBエリアのクリアや、nvRAM上の制御プログラム
エリアのクリアも可能である。
Further, by writing to register 0, T
It is also possible to clear the LB area and the control program area on the nvRAM.

【0055】レジスタレジスタ0へのリードは、上位3
2ビットデータはnvRAM上のCRCビットを、下位
32ビットデータは制御プログラム30のレビジョンを
読むのに使用される。
Reading the register 0
The 2-bit data is used to read the CRC bit on the nvRAM, and the lower 32 bit data is used to read the revision of the control program 30.

【0056】次に、このように構成された本実施例のプ
ロセッサ間NMI通信装置の動作について説明する。
Next, the operation of the thus-configured inter-processor NMI communication device of this embodiment will be described.

【0057】NMI発行手段31は、共有メモリ5上に
コマンド構造体を作成し(ステップS101)、コマン
ド構造体が格納された共有メモリアドレスをr4レジス
タにセットし(ステップS102)、NMI発行サブル
ーチンを呼び出す(ステップS103)。すると、r4
レジスタを引数として、共有メモリ5上にあるコマンド
構造体の先頭アドレスがNMI発行サブルーチンに渡さ
れる。
The NMI issuing means 31 creates a command structure on the shared memory 5 (step S101), sets the shared memory address where the command structure is stored in the r4 register (step S102), and executes an NMI issuing subroutine. Call (step S103). Then, r4
With the register as an argument, the head address of the command structure on the shared memory 5 is passed to the NMI issuing subroutine.

【0058】NMI発行サブルーチンでは、NMI発行
手段31は、まずコマンド構造体内のMPU#が0〜1
5の間または0xffであるかどうかをチェックする
(ステップS104)。もしそれ以外の値だった場合
は、不正MPU番号(0x20)をコマンド構造体内の
STにセットして(ステップS106)、リターンす
る。コマンド構造体内のMPU#が0〜15の間または
0xffであった場合には、NMI発行手段31は、共
有メモリ5内の該当するMPU制御ブロックの実行ステ
ータスをチェックし(ステップS105)、実行ステー
タスがdeadまたはnoneであった場合は、不正M
PU番号(0x20)をコマンド構造体内のSTにセッ
トして(ステップS106)、リターンする。実行ステ
ータスがbusyであった場合は(ステップS10
7)、NMI発行手段31は、ビジー(0x10)をコ
マンド構造体内のSTにセットして(ステップS10
8)、リターンする。実行ステータスがidleまたは
runの場合は、NMIが発行可能であるので、NMI
発行手段31は、該当するコマンドテーブル内のMPU
#で示されるMPU1のMPU制御ブロック内の自MP
U#に相当するコマンドテーブル内のフラグを1にリセ
ットし(ステップS109)、コマンド構造体の内容を
当該コマンドテーブルにコピーする(ステップS11
0)。なお、MPU#が0xffの場合には、MPU番
号が0〜15までの全てのMPU1に関するコマンドテ
ーブルのフラグを1にセットし、コマンド構造体の内容
をコピーする。
In the NMI issuing subroutine, the NMI issuing means 31 first sets MPU # in the command structure to 0-1.
It is checked whether it is between 5 or 0xff (step S104). If the value is any other value, the illegal MPU number (0x20) is set to ST in the command structure (step S106), and the process returns. If the MPU # in the command structure is between 0 and 15 or 0xff, the NMI issuing unit 31 checks the execution status of the corresponding MPU control block in the shared memory 5 (step S105), and Is dead or none, invalid M
The PU number (0x20) is set to ST in the command structure (step S106), and the process returns. If the execution status is busy (step S10
7), the NMI issuing unit 31 sets busy (0x10) to ST in the command structure (step S10).
8) Return. If the execution status is idle or run, an NMI can be issued.
The issuing unit 31 is configured to execute the MPU in the corresponding command table.
# Own MP in the MPU control block of MPU1 indicated by #
The flag in the command table corresponding to U # is reset to 1 (step S109), and the contents of the command structure are copied to the command table (step S11).
0). If the MPU # is 0xff, the flags of the command tables for all the MPUs 1 with MPU numbers 0 to 15 are set to 1, and the contents of the command structure are copied.

【0059】次に、NMI発行手段31は、コマンドテ
ーブル内のSTを0xffにセットし(ステップS11
1)、該当MPU1に対してNMIを発生させる(ステ
ップS112)。詳しくは、MPU1は、プロセッサ間
割り込み発生ポート208に割り込みトランザクション
データを書き込む。プロセッサ間割り込み発生ポート2
08に書きこまれた割り込みトランザクションデータ
は、システムバス4を介して割り込み通知先のMPU1
に接続されたSBC2のバッファ201に取り込まれ、
デコーダ202でデコードされて、割り込み要因レジス
タ203に設定される。これにより、NMIフリップフ
ロップ204がセットされて、NMI信号206が駆動
されMPU1にNMIが発生する。
Next, the NMI issuing means 31 sets ST in the command table to 0xff (step S11).
1), an NMI is generated for the MPU 1 (step S112). Specifically, the MPU 1 writes the interrupt transaction data to the inter-processor interrupt generation port 208. Inter-processor interrupt generation port 2
08 is transferred via the system bus 4 to the interrupt notification destination MPU 1
Is taken into the buffer 201 of the SBC2 connected to
The data is decoded by the decoder 202 and set in the interrupt factor register 203. As a result, the NMI flip-flop 204 is set, the NMI signal 206 is driven, and an NMI is generated in the MPU 1.

【0060】NMIを受け付けたMPU1では、障害情
報収集手段32が、まずk1レジスタを除く汎用レジス
タの内容をローカルメモリ3に待避し(ステップS20
1)、引き続きコプロセッサレジスタの内容を汎用レジ
スタを使用してローカルメモリ3に待避し(ステップS
202)、TLBの内容を汎用レジスタおよびコプロセ
ッサレジスタを使用してローカルメモリ3にダンプする
(ステップS203)。この後、障害情報収集手段32
は、コプロセッサ10の内容を初期化して、ポーリング
手段33に制御を移す。
In the MPU 1 that has received the NMI, the failure information collecting means 32 first saves the contents of the general-purpose registers except the k1 register in the local memory 3 (step S20).
1) Subsequently, the contents of the coprocessor register are saved in the local memory 3 using the general-purpose register (step S).
202), dump the contents of the TLB to the local memory 3 using the general-purpose register and the coprocessor register (step S203). Thereafter, the failure information collecting means 32
Initializes the contents of the coprocessor 10 and transfers control to the polling means 33.

【0061】ポーリング手段33は、SBC2の割り込
み要因レジスタ203をリードして(ステップS30
1)、割り込みオペレーションビットOPが1で割り込
みコードが64〜79のプロセッサ間NMIが発生する
までチェックし続け(ステップS302)、プロセッサ
間NMIが発生していた場合には、プロセッサ間NMI
処理手段34に制御を移す。
The polling means 33 reads the interrupt cause register 203 of the SBC 2 (step S30).
1) Checking continues until an inter-processor NMI with an interrupt operation bit OP of 1 and an interrupt code of 64 to 79 occurs (step S302). If an inter-processor NMI has occurred, the inter-processor NMI
The control is transferred to the processing means 34.

【0062】プロセッサ間NMI処理手段34は、ま
ず、割り込み要因レジスタ203内の該当MPU1内の
NMI割り込みコードをリセットし(ステップS40
1)、割り込みコードに相当するMPU1のMPU制御
ブロックをリードする(ステップS402)。次に、プ
ロセッサ間NMI処理手段34は、NMI発行手段31
が書き込んだコマンドテーブル内のCMDをリードして
コマンドを認識する(ステップS403〜S407)。
The inter-processor NMI processing means 34 first resets the NMI interrupt code in the corresponding MPU 1 in the interrupt factor register 203 (step S40).
1), the MPU control block of MPU1 corresponding to the interrupt code is read (step S402). Next, the inter-processor NMI processing means 34 is
The command is recognized by reading the CMD in the command table written in (steps S403 to S407).

【0063】ステップS403で、CMDがイニシャラ
イズ(0x0f)の場合には、プロセッサ間NMI処理
手段34は、NMIのレジスタ退避エリアを初期化する
(ステップS410)。すなわち、汎用レジスタをすべ
て0し、コプロセッサレジスタのステータスレジスタを
初期設定する。次に、プロセッサ間NMI処理手段34
は、TLB11を初期化し(ステップS411)、TL
Bダンプエリアを初期化する(ステップS412)。続
いて、プロセッサ間NMI処理手段34は、コマンドテ
ーブル内のSTに正常終了(0x00)をセットし(ス
テップS413)、実行ステータスをidleにして
(ステップS409)、処理を終了する。
If the CMD is initialized (0x0f) in step S403, the inter-processor NMI processing means 34 initializes the NMI register save area (step S410). That is, all the general-purpose registers are set to 0, and the status register of the coprocessor register is initialized. Next, the inter-processor NMI processing means 34
Initializes the TLB 11 (step S411),
The B dump area is initialized (Step S412). Subsequently, the inter-processor NMI processing unit 34 sets the normal end (0x00) to ST in the command table (step S413), changes the execution status to idle (step S409), and ends the processing.

【0064】ステップS404で、CMDがレジスタリ
ード(0x12)の場合には、プロセッサ間NMI処理
手段34は、REG#に相当するレジスタ待避エリア内
の情報をコマンドテーブル内の上位/下位32ビットデ
ータエリアにセットする(ステップS414)。ただ
し、レジスタ番号0ならば、図26に示すように、上位
32ビットデータエリアにCRCビットをセットし、下
位32ビットデータエリアに制御プログラム30のレビ
ジョンをセットする。なお、リードオンリーのレジスタ
(Random,Count,PRid)に関しては、
コプロセッサ10から直接リードしてセットする。続い
て、プロセッサ間NMI処理手段34は、コマンドテー
ブル内のSTに正常終了(0x00)をセットし(ステ
ップS415)、実行ステータスをidleにして(ス
テップS409)、処理を終了する。
If the CMD is a register read (0x12) in step S404, the inter-processor NMI processing means 34 stores information in the register save area corresponding to REG # in the upper / lower 32-bit data area in the command table. (Step S414). However, if the register number is 0, as shown in FIG. 26, the CRC bit is set in the upper 32-bit data area, and the revision of the control program 30 is set in the lower 32-bit data area. As for the read-only registers (Random, Count, PRid),
It is read directly from the coprocessor 10 and set. Subsequently, the inter-processor NMI processing unit 34 sets the normal end (0x00) to ST in the command table (step S415), changes the execution status to idle (step S409), and ends the processing.

【0065】CMDがレジスタライト(0x13)の場
合には、プロセッサ間NMI処理手段34は、REG#
が0ならば(ステップS416)、ステップS419に
制御を移す。REG#が0以外ならば、プロセッサ間N
MI処理手段34は、REG#に相当するレジスタ待避
エリア内のコマンドテーブル内の上位32ビットデータ
のデータをレジスタ待避エリア37にセットし、MPU
制御ブロック内の下位32ビットデータのデータをレジ
スタ待避エリアにセットする(ステップS417)。続
いて、プロセッサ間NMI処理手段34は、コマンドテ
ーブル内のSTに正常終了(0x00)をセットし(ス
テップS418)、実行ステータスをidleにして
(ステップS409)、処理を終了する。ステップS4
19では、CRCビットがセットされていかどうかをチ
ェックし、セットされていれば、プロセッサ間NMI処
理手段34は、コマンドテーブル内の転送アドレスから
コマンドテーブル内のバイト長分のCRCを行い、結果
をCRCビットにセットする(ステップS420)。次
に、プロセッサ間NMI処理手段34は、COUNTビ
ットがセットされているかどうかをチェックし(ステッ
プS421)、セットされていなければ、COUNTレ
ジスタに直接0のデータをライトする(ステップS42
2)。続いて、プロセッサ間NMI処理手段34は、T
LBCLRビットがセットされているかどうかをチェッ
クし(ステップS423)、セットされていれば、TL
B11およびTLBダンプエリアを初期化する(ステッ
プS424)。
When the CMD is a register write (0x13), the inter-processor NMI processing means 34 outputs REG #
Is 0 (step S416), the control is transferred to step S419. If REG # is other than 0, N between processors
The MI processing means 34 sets the upper 32-bit data in the command table in the register save area corresponding to REG # in the register save area 37, and
The lower 32-bit data in the control block is set in the register save area (step S417). Subsequently, the inter-processor NMI processing unit 34 sets normal end (0x00) to ST in the command table (step S418), changes the execution status to idle (step S409), and ends the processing. Step S4
In step 19, it is checked whether or not the CRC bit is set. If the CRC bit is set, the inter-processor NMI processing means 34 performs a CRC for the byte length in the command table from the transfer address in the command table and returns the result. The CRC bit is set (step S420). Next, the inter-processor NMI processing means 34 checks whether or not the COUNT bit is set (step S421), and if it is not set, writes 0 data directly to the COUNT register (step S42).
2). Subsequently, the inter-processor NMI processing means 34
It is checked whether the LBCLR bit is set (step S423).
The B11 and the TLB dump area are initialized (step S424).

【0066】次に、プロセッサ間NMI処理手段34
は、SCFCLRビットがセットされているかどうかを
チェックし(ステップS425)、セットされていれ
ば、制御プログラムエリアを初期化し、nvRAMを無
効とする(ステップS426)。次に、プロセッサ間N
MI処理手段34は、コマンドテーブル内のSTに正常
終了(0x00)をセットし(ステップS429)、E
XECビットがセットされているかどうかをチェックし
(ステップS433)、セットされていなければ処理を
終了する。EXECビットがセットされていれば、プロ
セッサ間NMI処理手段34は、コプロセッサレジスタ
0のRandom,Count,PRid,Cache
Err,EPC,Status以外の全レジスタをレジ
スタ待避エリアから復帰させ(ステップS431)、N
MIをリセットし(ステップS432)、klを除く汎
用レジスタとEPC,Statusを復帰し(ステップ
S433)、eret命令を実行して(ステップS43
4)、処理を終了する。
Next, the inter-processor NMI processing means 34
Checks whether the SCFCLR bit is set (step S425), and if so, initializes the control program area and invalidates the nvRAM (step S426). Next, between processors N
The MI processing means 34 sets normal termination (0x00) to ST in the command table (step S429),
It is checked whether or not the XEC bit has been set (step S433), and if not, the process ends. If the EXEC bit is set, the inter-processor NMI processing means 34 sets the Random, Count, PRid, Cache
All registers other than Err, EPC, and Status are restored from the register save area (step S431).
The MI is reset (step S432), the general-purpose registers other than kl, the EPC, and the status are restored (step S433), and the eret instruction is executed (step S43).
4), end the process.

【0067】ステップS406で、CMDがnvRAM
リード(0x02)の場合には、プロセッサ間NMI処
理手段34は、コマンドテーブル内の転送アドレスで示
されるローカルメモリアドレスからバイト長分のデータ
をコマンドテーブル内の下位32ビットデータで示され
るメモリアドレスに転送し(ステップS435)、コマ
ンドテーブル内のSTに正常終了(0x00)をセット
し(ステップS436)、処理を終了する。
In step S406, CMD is set to nvRAM
In the case of the read (0x02), the inter-processor NMI processing means 34 converts the data of the byte length from the local memory address indicated by the transfer address in the command table to the memory address indicated by the lower 32 bit data in the command table. The transfer is performed (step S435), the normal end (0x00) is set in the ST in the command table (step S436), and the process ends.

【0068】ステップS407で、CMDがnvRAM
ライト(0x03)の場合には、プロセッサ間NMI処
理手段34は、コマンドテーブル内の下位データで示さ
れるメモリアドレスから、コマンドテーブル内の転送ア
ドレスで示されるローカリメモリアドレスにバイト長分
のデータを転送し(ステップS437)、コマンドテー
ブル内のSTに正常終了(0x00)をセットして(ス
テップS438)、処理を終了する。
In step S407, CMD is set to nvRAM
In the case of a write (0x03), the inter-processor NMI processing means 34 transfers the data of the byte length from the memory address indicated by the lower data in the command table to the local memory address indicated by the transfer address in the command table. The transfer is performed (step S437), the normal end (0x00) is set in the ST in the command table (step S438), and the process ends.

【0069】なお、コマンド処理中に例外を検出し、コ
マンド処理を継続できなくなってしまった場合には、プ
ロセッサ間NMI処理手段34は、STに異常終了コー
ドをセットして、処理を終了する。
If an exception is detected during command processing and the command processing cannot be continued, the inter-processor NMI processing means 34 sets an abnormal end code to ST and ends the processing.

【0070】CMDが上記5種類以外であった場合は、
プロセッサ間NMI処理手段34は、MPU制御ブロッ
クのSTに不正コマンドをセットし(ステップS40
8)、コマンドテーブルのフラグを0にリセットし、ポ
ーリング手段33に制御を戻す。
When the CMD is other than the above five types,
The inter-processor NMI processing means 34 sets an invalid command in the ST of the MPU control block (step S40).
8) The flag of the command table is reset to 0, and the control is returned to the polling means 33.

【0071】NMI発行元のNMI発行手段31は、ス
テップS112でNMIを発生させた後、コマンドテー
ブル内のSTが0xff以外に変化するのを待っており
(ステップS113)、例えば、10msec待っても
STが0xffから変化せず(ステップS114)、ま
た実行ステータスもbusyに変化しない場合には、コ
マンドテーブル内のフラグを0にクリアし(ステップS
115)、MPU制御ブロックの実行ステータスをde
adに書き換えて(ステップS116)、コマンドテー
ブル内のSTにタイムアウト(0x30)をセットして
(ステップS117)、処理を終了する。ステップS1
13でコマンドテーブル内のSTが0xffから変化し
た場合には、NMI発行手段31は、コマンドテーブル
からコマンド構造体に内容をコピーして(ステップS1
18)、処理を終了する。
After generating the NMI in step S112, the NMI issuing unit 31 of the NMI issuing source waits for ST in the command table to change to a value other than 0xff (step S113). If ST does not change from 0xff (step S114) and the execution status does not change to busy, the flag in the command table is cleared to 0 (step S114).
115), change the execution status of the MPU control block to de
It is rewritten to ad (step S116), a timeout (0x30) is set to ST in the command table (step S117), and the process ends. Step S1
If the ST in the command table changes from 0xff in step 13, the NMI issuing unit 31 copies the contents from the command table to the command structure (step S1).
18), end the process.

【0072】以上のように、NMIプロセッサ間通信機
能を用いることによって、ソフトウェア暴走を停止させ
そのときのレジスタ類を採取する機能、マルチプロセッ
サのデバッグ時における全MPUのスタート/ストップ
機能,各MPUのインターバルカウンタの同時設定機能
等の様々な機能をその上に実現することが可能である。
As described above, by using the communication function between NMI processors, the function of stopping software runaway and collecting registers at that time, the start / stop function of all MPUs at the time of debugging of the multiprocessor, the function of each MPU, Various functions such as a simultaneous setting function of the interval counter can be realized thereon.

【0073】[0073]

【発明の効果】以上説明したように本発明は、プロセッ
サ間割り込み発生ポート,割り込み要因レジスタ,NM
Iフリッププロップ,NMIフリップフロップリセット
ポート,MPU制御テーブル,NMI発行手段,障害情
報収集手段,プロセッサ間NMI処理手段およびポーリ
ング手段を設けたことにより、以下のような効果があ
る。
As described above, according to the present invention, the inter-processor interrupt generation port, the interrupt factor register, the NM
The provision of the I flip prop, the NMI flip preset port, the MPU control table, the NMI issuing means, the fault information collecting means, the inter-processor NMI processing means and the polling means has the following effects.

【0074】(1) プロセッサ間通信でNMI割り込
みを発生可能なため、如何なるソフトウェアの暴走であ
れ、1台のMPUが異常を検出することができれば、全
MPUをNMI発行手段によりNMIで停止させ、NM
Iを受け付けたMPUは、そのときのMPU状態を障害
情報収集手段によりセーブさせ、ポーリング手段に移行
させることができる。その後、異常を検出したMPU
が、再びNMI発行手段によりコマンド構造体で指示を
出すことにより、ポーリング手段を実行中のMPUから
障害情報収集手段によりセーブされた情報を引き出すこ
とが可能になる。
(1) Since an NMI interrupt can be generated in inter-processor communication, if one MPU can detect an abnormality in any software runaway, all MPUs are stopped by the NMI issuing means by the NMI issuing means. NM
The MPU that has received I can cause the MPU state at that time to be saved by the fault information collection unit and be transferred to the polling unit. After that, the MPU that detected the abnormality
However, when the NMI issuing unit issues an instruction using a command structure again, the information saved by the failure information collecting unit can be extracted from the MPU executing the polling unit.

【0075】(2) マルチプロセッサシステムのデバ
ッガにおいて、1台のプロセッサがブレーク命令を実行
してデバッガにエントリした際、全MPUをNMI発行
手段によりNMIで停止させ、障害情報収集手段により
MPUの内部レジスタをセーブさせ、ポーリング手段に
移行させることが可能となる。以前は、例外処理中など
の割り込み禁止状態のときにMPUをストップすること
ができなかった。その後、コマンド構造体に書き換えた
レジスタを指定して、NMI発行手段を呼び出すことに
より、1台のMPUから全てのMPUのレジスタ状態を
参照および変更することが可能となる。また、MPU#
として0xffを指定し、REG#として0を指定し、
上位32ビットデータのEXECビットを1としたコマ
ンド構造体をNMI発行手段に渡すことにより、全MP
Uに対しての実行の再開を指示することが可能となる。
(2) In the debugger of the multiprocessor system, when one processor executes a break instruction and enters the debugger, all MPUs are stopped by the NMI issuing means by the NMI issuing means, and the fault information collecting means stops the MPU. It is possible to save the register and shift to the polling means. Previously, the MPU could not be stopped when interrupts were disabled, such as during exception handling. After that, by specifying the rewritten register in the command structure and calling the NMI issuing means, it is possible to refer to and change the register states of all the MPUs from one MPU. Also, MPU #
Is specified as 0xff, REG # is specified as 0,
By passing the command structure in which the EXEC bit of the upper 32 bits data is set to 1 to the NMI issuing means, all MP
It is possible to instruct U to resume execution.

【0076】(3) コマンド構造体で、MPU#とし
て0xffを指定し、REG#として0を指定し、上位
32ビットデータのCOUNTビットとEXECビット
とを1としたデータを指定し、NMI発行手段を呼び出
すことにより、NMIを受信したMPUごとに存在する
タイマカウンタをプロセッサ間NMI処理手段により同
時に設定することが可能となる。
(3) In the command structure, 0xff is specified as MPU #, 0 is specified as REG #, data in which the COUNT bit and EXEC bit of the upper 32 bits are set to 1 is specified, and the NMI issuing means is specified. , It is possible to simultaneously set the timer counter existing for each MPU that has received the NMI by the inter-processor NMI processing means.

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

【図1】本発明の一実施例のプロセッサ間NMI通信装
置で使用されるSBCの構成を示す回路ブロック図であ
る。
FIG. 1 is a circuit block diagram showing a configuration of an SBC used in an inter-processor NMI communication device according to an embodiment of the present invention.

【図2】本実施例に係るプロセッサ間NMI通信装置の
構成を示すブロック図である。
FIG. 2 is a block diagram illustrating a configuration of an NMI communication device between processors according to the embodiment;

【図3】図1中のプロセッサ間割り込みポートにMPU
がライトするデータであると同時に、システムバスのア
ドレス上に出力される割り込みトランザクションの形式
であり、またバッファに取り込まれる形式でもある割り
込みトランザクションデータのフォーマットを示す図で
ある。
FIG. 3 shows an MPU in an inter-processor interrupt port in FIG.
FIG. 4 is a diagram showing the format of interrupt transaction data which is the format of an interrupt transaction output on the address of the system bus at the same time as the data to be written, and which is also the format taken into the buffer.

【図4】図2中の共有メモリ内に置かれたMPU制御テ
ーブルの内容を示す図である。
FIG. 4 is a diagram showing contents of an MPU control table placed in a shared memory in FIG. 2;

【図5】図4中の実行ステータスを説明する図である。FIG. 5 is a diagram illustrating an execution status in FIG.

【図6】図4中のコマンドテーブルの内容を詳細に示す
図である。
FIG. 6 is a diagram showing details of a command table in FIG. 4;

【図7】図6中のコマンドテーブル内のフラグを説明す
る図である。
FIG. 7 is a diagram illustrating flags in a command table in FIG. 6;

【図8】図2中の障害情報収集手段の処理を示す流れ図
である。
FIG. 8 is a flowchart showing a process of a fault information collecting unit in FIG. 2;

【図9】図2中のポーリング手段の処理を示す流れ図で
ある。
FIG. 9 is a flowchart showing the processing of the polling means in FIG. 2;

【図10】図2中のプロセッサ間NMI処理手段のメイ
ン処理を示す流れ図である。
FIG. 10 is a flowchart showing main processing of an inter-processor NMI processing means in FIG. 2;

【図11】図2中のプロセッサ間NMI処理手段のイニ
シャライズコマンド処理を示す流れ図である。
FIG. 11 is a flowchart showing an initialization command process of the inter-processor NMI processing means in FIG. 2;

【図12】図2中のプロセッサ間NMI処理手段のレジ
スタリードコマンド処理を示す流れ図である。
FIG. 12 is a flowchart showing a register read command process of an inter-processor NMI processing means in FIG. 2;

【図13】図2中のプロセッサ間NMI処理手段のレジ
スタライトコマンド処理の前半部を示す流れ図である。
13 is a flowchart showing the first half of the register write command processing of the inter-processor NMI processing means in FIG. 2;

【図14】図2中のプロセッサ間NMI処理手段のレジ
スタライトコマンド処理の後半部を示す流れ図である。
14 is a flowchart showing the latter half of the register write command processing of the inter-processor NMI processing means in FIG. 2;

【図15】図2中のプロセッサ間NMI処理手段のnv
RAMリードコマンド処理を示す流れ図である。
FIG. 15 shows nv of the inter-processor NMI processing means in FIG. 2;
It is a flowchart which shows RAM read command processing.

【図16】図2中のプロセッサ間NMI処理手段のnv
RAMライトコマンド処理を示す流れ図である。
FIG. 16 shows nv of the inter-processor NMI processing means in FIG. 2;
It is a flowchart which shows a RAM write command process.

【図17】本実施例のプロセッサ間NMI通信装置にお
けるNMIを発行するMPUの番号と使用する割り込み
コードとの対応を示す図である。
FIG. 17 is a diagram showing the correspondence between the number of the MPU issuing the NMI and the interrupt code to be used in the inter-processor NMI communication device of the embodiment.

【図18】図6中のコマンドテーブル内のCMDに格納
されるコマンドの種類を示す図である。
18 is a diagram illustrating types of commands stored in CMD in the command table in FIG.

【図19】図6中のコマンドテーブル内のREG#に格
納されるレジスタの種類を示す図である。
19 is a diagram showing types of registers stored in REG # in the command table in FIG.

【図20】図19中のREG#により定義されるレジス
タ一覧表を示す図である。
20 is a diagram showing a register list defined by REG # in FIG. 19;

【図21】図2中のプロセッサ間NMI処理手段が格納
するSTの内容を説明する図である。
21 is a diagram for explaining the contents of ST stored by the inter-processor NMI processing means in FIG. 2;

【図22】図2中のNMI発行手段のメイン処理を示す
流れ図である。
FIG. 22 is a flowchart showing a main process of an NMI issuing unit in FIG. 2;

【図23】図22中で呼び出されるNMI発行サブルー
チンの処理を示す流れ図である。
FIG. 23 is a flowchart showing processing of an NMI issuing subroutine called in FIG. 22;

【図24】図6のコマンドテーブルに格納されるコマン
ド構造体の内容を説明する図である。
FIG. 24 is a diagram illustrating the contents of a command structure stored in the command table of FIG. 6;

【図25】図2中のNMI発行手段が格納するSTの内
容を説明する図である。
FIG. 25 is a diagram for explaining the contents of an ST stored by the NMI issuing unit in FIG. 2;

【図26】本実施例のプロセッサ間NMI通信装置にお
けるレジスタ0へのライトを説明する図である。
FIG. 26 is a diagram illustrating writing to a register 0 in the inter-processor NMI communication device of the present embodiment.

【符号の説明】[Explanation of symbols]

1 マイクロプロセッサ(MPU) 2 システムバスコントローラ(SBC) 3 ローカルメモリ 4 システムバス 5 共有メモリ 6 ローカルバス 10 コプロセッサ 11 アドレス変換テーブル(TLB) 30 制御プログラム 31 NMI発行手段 32 障害情報収集手段 33 ポーリング手段 34 プロセッサ間NMI処理手段 50 MPU制御テーブル 201 バッファ 202 デコーダ 203 割り込み要因レジスタ 204 NMIフリップフロップ 205 INT信号 206 NMI信号 207 NMIフリップフロップリセットポート 208 プロセッサ間割り込み発生ポート 209 アドレス制御部 210 NMIリセット信号 DESCRIPTION OF SYMBOLS 1 Microprocessor (MPU) 2 System bus controller (SBC) 3 Local memory 4 System bus 5 Shared memory 6 Local bus 10 Coprocessor 11 Address conversion table (TLB) 30 Control program 31 NMI issuing means 32 Fault information collecting means 33 Polling means 34 NMI processing means between processors 50 MPU control table 201 Buffer 202 Decoder 203 Interrupt cause register 204 NMI flip-flop 205 INT signal 206 NMI signal 207 NMI flip-preset port 208 Inter-processor interrupt occurrence port 209 Address control unit 210 NMI reset signal

Claims (5)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 エッジトリガのNMI端子を有するMP
Uを1台以上と、上記全てのMPUからアクセス可能な
共有メモリとがシステムバスを介して接続されてなる情
報処理装置において、 前記MPUの1つが割り込みコードと割り込み通知先M
PUを指示するデータとを書き込むことにより前記シス
テムバス上に割り込みトランザクションを発生させるプ
ロセッサ間割り込み発生ポートと、 自MPU宛の割り込みトランザクションを前記システム
バスから受信することによりセットまたはリセットされ
る割り込み要因レジスタと、 この割り込み要因レジスタにNMI要因がセットされる
とセットされてNMI信号を前記割り込み通知先MPU
のNMI端子に入力してNMIを発生させ、前記割り込
み要因レジスタのNMI要因がリセットされてもリセッ
トされないNMIフリッププロップと、 前記割り込み通知先MPUがダミーデータを書き込むこ
とにより前記NMIフリップフロップをリセットして前
記NMI信号の駆動を停止させ、前記割り込み通知先M
PUが次のNMIを受け付け可能にするNMIフリップ
フロップリセットポートとを有し、 前記共有メモリ上にMPU制御テーブルを備え、 前記割り込みトランザクションを発行するMPUにおい
て、前記MPU制御テーブルにコマンドテーブルを書き
込み前記コマンドテーブルによって指定されたMPU宛
にNMIの割り込みコードを指示するデータを前記プロ
セッサ間割り込み発生ポートに書き込むNMI発生手段
を有し、 前記割り込み通知先MPUにおいて、NMI発生後のM
PUの障害情報をセーブする障害情報収集手段と、前記
コマンドテーブルのコマンドを参照して該当するコマン
ド処理を実行するプロセッサ間NMI処理手段と、前記
割り込み要因レジスタをチェックし、NMI要因がセッ
トされていたならば前記プロセッサ間NMI処理手段に
制御を移行しセットされていなかった場合にセットされ
るまでチェックし続けるポーリング手段とを有するプロ
セッサ間NMI通信装置。
An MP having an edge triggered NMI terminal.
U, and an information processing apparatus in which a shared memory accessible from all the MPUs is connected via a system bus, wherein one of the MPUs has an interrupt code and an interrupt notification destination M
An inter-processor interrupt generation port that generates an interrupt transaction on the system bus by writing data designating a PU; and an interrupt factor register that is set or reset by receiving an interrupt transaction addressed to its own MPU from the system bus When an NMI factor is set in this interrupt factor register, the NMI signal is set and the interrupt notification destination MPU
To generate an NMI, resetting the NMI flip-flop by writing dummy data by the interrupt notification destination MPU, The driving of the NMI signal is stopped by the
A PU having an NMI flip preset port enabling the PU to receive the next NMI, an MPU control table provided on the shared memory, and a command table written in the MPU control table in the MPU issuing the interrupt transaction. NMI generating means for writing data indicating an NMI interrupt code addressed to the MPU specified by the table to the inter-processor interrupt generation port.
Fault information collecting means for saving PU fault information, inter-processor NMI processing means for executing the corresponding command processing with reference to the command in the command table, and checking the interrupt factor register, and setting the NMI factor. And a polling means for transferring control to said inter-processor NMI processing means and continuing to check if it has not been set.
【請求項2】 前記MPUが、各MPU専用のローカル
メモリを備える請求項1記載のプロセッサ間NMI通信
装置。
2. The inter-processor NMI communication device according to claim 1, wherein the MPU includes a local memory dedicated to each MPU.
【請求項3】 前記MPU制御テーブルにMPUの台数
分のMPU制御ブロックが設けられ、各MPU制御ブロ
ックにMPUの台数分のコマンドテーブルが設けられて
いる請求項1記載のプロセッサ間NMI通信装置。
3. The inter-processor NMI communication device according to claim 1, wherein the MPU control table includes MPU control blocks for the number of MPUs, and each MPU control block includes a command table for the number of MPUs.
【請求項4】 前記NMI発生手段が、前記MPUのレ
ジスタ番号0のレジスタに対して、上位32ビットデー
タのビット31のEXECビットに1を立てたデータを
ライトすることにより、相手のMPU1に対して待避し
たレジスタを全て復帰した後で、ErrorEPCレジ
スタの示すアドレスからスタートすることを指示する請
求項1記載のプロセッサ間NMI通信装置。
4. The NMI generating means writes data in which the EXEC bit of bit 31 of the upper 32 bits data is set to 1 to the register of register number 0 of the MPU, so that the other MPU 1 2. The inter-processor NMI communication device according to claim 1, wherein after returning all the saved registers, an instruction is given to start from the address indicated by the ErrorEPC register.
【請求項5】 エッジトリガのNMI端子を有するMP
Uを1台以上と、上記全てのMPUからアクセス可能な
共有メモリとがシステムバスを介して接続されてなる情
報処理装置において、 前記MPUの1つが割り込みコードと割り込み通知先M
PUを指示するデータとを書き込むことにより前記シス
テムバス上に割り込みトランザクションを発生させるプ
ロセッサ間割り込み発生ポートと、 自MPU宛の割り込みトランザクションを前記システム
バスから受信することによりセットまたはリセットされ
る割り込み要因レジスタと、 この割り込み要因レジスタにNMI要因がセットされる
とセットされてNMI信号を前記割り込み通知先MPU
のNMI端子に入力してNMIを発生させ、前記割り込
み要因レジスタのNMI要因がリセットされてもリセッ
トされないNMIフリッププロップと、 前記割り込み通知先MPUがダミーデータを書き込むこ
とにより前記NMIフリップフロップをリセットして前
記NMI信号の駆動を停止させ、前記割り込み通知先M
PUが次のNMIを受け付け可能にするNMIフリップ
フロップリセットポートとを有することを特徴とするシ
ステムバスコントローラ。
5. An MP having an NMI terminal for an edge trigger.
U, and an information processing apparatus in which a shared memory accessible from all the MPUs is connected via a system bus, wherein one of the MPUs has an interrupt code and an interrupt notification destination M
An inter-processor interrupt generation port that generates an interrupt transaction on the system bus by writing data designating a PU; and an interrupt factor register that is set or reset by receiving an interrupt transaction addressed to its own MPU from the system bus When an NMI factor is set in this interrupt factor register, the NMI signal is set and the interrupt notification destination MPU
To generate an NMI, resetting the NMI flip-flop by writing dummy data by the interrupt notification destination MPU, The driving of the NMI signal is stopped by the
A system bus controller having an NMI flip-flop preset port that enables the PU to accept the next NMI.
JP7287963A 1995-10-09 1995-10-09 NMI communication device between processors and system bus controller Expired - Fee Related JP2737724B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7287963A JP2737724B2 (en) 1995-10-09 1995-10-09 NMI communication device between processors and system bus controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7287963A JP2737724B2 (en) 1995-10-09 1995-10-09 NMI communication device between processors and system bus controller

Publications (2)

Publication Number Publication Date
JPH09106361A JPH09106361A (en) 1997-04-22
JP2737724B2 true JP2737724B2 (en) 1998-04-08

Family

ID=17724023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7287963A Expired - Fee Related JP2737724B2 (en) 1995-10-09 1995-10-09 NMI communication device between processors and system bus controller

Country Status (1)

Country Link
JP (1) JP2737724B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5093986B2 (en) * 2005-01-19 2012-12-12 富士通株式会社 Interprocessor communication method and interprocessor communication apparatus
JP4222370B2 (en) 2006-01-11 2009-02-12 セイコーエプソン株式会社 Program for causing a computer to execute a debugging support apparatus and a debugging processing method
JP2011070655A (en) * 2009-08-24 2011-04-07 Toshiba Corp Information processing apparatus, memory dump system and memory dump method
JP5733389B2 (en) * 2011-04-22 2015-06-10 富士通株式会社 Information processing apparatus and processing method of information processing apparatus

Also Published As

Publication number Publication date
JPH09106361A (en) 1997-04-22

Similar Documents

Publication Publication Date Title
TWI230860B (en) Integrated system management memory for system management interrupt handler independent of BIOS and operating system
US6948094B2 (en) Method of correcting a machine check error
US5745770A (en) Method and apparatus for servicing simultaneous I/O trap and debug traps in a microprocessor
JP3697178B2 (en) Method, system and computer program product for managing hardware devices
JP3628372B2 (en) Computer system, parallel port circuit for interfacing peripheral devices to computer system, and operation method thereof
US6779132B2 (en) Preserving dump capability after a fault-on-fault or related type failure in a fault tolerant computer system
JP3093293B2 (en) Information processing device interrupt method
CN113821257B (en) Method and device for inquiring information of processor kernel call stack
JP2737724B2 (en) NMI communication device between processors and system bus controller
EP0477385B1 (en) Method of resetting adapter module at failing time and computer system executing said method
JP2522158B2 (en) Program debugging method for multiprocessor system
US6697959B2 (en) Fault handling in a data processing system utilizing a fault vector pointer table
JPH03175537A (en) Error controller for debugging microprocessor
JPH07105023A (en) Method and apparatus for detection of spurious interrupt at inside of data processing system
US6687845B2 (en) Fault vector pointer table
JPH0833840B2 (en) Error recovery procedure notification system
JP3124788B2 (en) Exception handling method of embedded multitasking operating system
JPS6158054A (en) Run away detection of program
KR19980014207A (en) Apparatus and method for processing data protocol of a multiprocessor system
SU959079A1 (en) Multiprogram control device
JPH02114364A (en) Abnormality processing system in multiprocessor system
JPH11143732A (en) Microcomputer and emulator
JP2870083B2 (en) Microcomputer with built-in watchdog timer
JPH0248739A (en) Micro processor for debugging
JPH04364545A (en) Memory dumping system

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080116

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090116

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100116

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110116

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees