JP5416257B2 - Multi-core LSI - Google Patents

Multi-core LSI Download PDF

Info

Publication number
JP5416257B2
JP5416257B2 JP2012165655A JP2012165655A JP5416257B2 JP 5416257 B2 JP5416257 B2 JP 5416257B2 JP 2012165655 A JP2012165655 A JP 2012165655A JP 2012165655 A JP2012165655 A JP 2012165655A JP 5416257 B2 JP5416257 B2 JP 5416257B2
Authority
JP
Japan
Prior art keywords
cpu
output
shared bus
access
interrupt
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.)
Active
Application number
JP2012165655A
Other languages
Japanese (ja)
Other versions
JP2012248205A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012165655A priority Critical patent/JP5416257B2/en
Publication of JP2012248205A publication Critical patent/JP2012248205A/en
Application granted granted Critical
Publication of JP5416257B2 publication Critical patent/JP5416257B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)

Description

本発明は、複数のCPUを同一のLSI上に搭載したマルチコアLSIに関する。   The present invention relates to a multi-core LSI in which a plurality of CPUs are mounted on the same LSI.

複数のCPUを同一のLSI上に搭載したマルチコアLSIにおいて、複数のCPUがそれぞれ独立に動作するようなソフトウェアのデバッグをしている時に、プログラムの暴走(意図しない領域へのアクセスなど)により共有バスがハングアップした場合、どのCPUのどのアクセスによりハングアップしたかを特定できず、ソフトウェアのデバッグが困難になる。   In a multi-core LSI with multiple CPUs mounted on the same LSI, when debugging software that allows multiple CPUs to operate independently, a shared bus is caused by program runaway (access to unintended areas, etc.) When CPU hangs up, it is difficult to identify which CPU hangs up by which access, and software debugging becomes difficult.

他のCPUが正常に動作する中で或るCPUが暴走して共有バスをハングアップさせた場合が、上記の場合に該当する。この場合では、共有バスのハングアップにより、デバッグ対象のCPUが停止するだけでなく、他の正常なCPUもアクセスができなくなり停止する。そのため、マルチコアLSIでは、これまでのシングルコアLSI(1個のCPUを搭載したLSI)でのデバッグの手法を用いても、有効にソフトウエアのデバッグができなかった。   The case where a certain CPU runs away and hangs up the shared bus while other CPUs operate normally corresponds to the above case. In this case, due to the hang-up of the shared bus, not only the CPU to be debugged but also other normal CPUs cannot access and stop. For this reason, in multi-core LSIs, software debugging cannot be performed effectively even if the conventional debugging technique of single-core LSIs (LSIs equipped with one CPU) is used.

シングルコアLSIでのデバッグの技術として、下記(1)(2)が知られている。   The following (1) and (2) are known as debugging techniques in a single core LSI.

(1)システムコントローラによって、共有バスを監視して所定時間経過してもアクセスが終了しない場合(即ちCPUが暴走した場合)は、それを検出して、共有バスに疑似応答信号を出力して、アクセス中のCPUの当該アクセスを終了させると同時に、CPUに割込処理を入れる。その後、そのCPUの動作を解析して、その割込処理がプログラムのどの箇所で処理されたかを確認することで、CPUがプログラムの何処で暴走したかを特定する(従来技術1)。   (1) If the system controller monitors the shared bus and the access is not completed even after a predetermined time has elapsed (that is, if the CPU runs away), it is detected and a pseudo response signal is output to the shared bus. At the same time as the access of the CPU being accessed is terminated, an interrupt process is put into the CPU. Thereafter, by analyzing the operation of the CPU and confirming in which part of the program the interrupt processing is performed, it is specified where the CPU has runaway in the program (prior art 1).

(2)ソフトウェア上の処理の中の一定の処理期間に対するタイムアウトを検出する機能として、WDT(ウォッチドックタイマ)が知られている。この場合は、WDTによって、タイムアウトを検出してCPUに割込処理を入れることで、CPUがプログラムの何処で暴走したかを特定する(従来技術2)。   (2) A WDT (watchdog timer) is known as a function for detecting a timeout for a certain processing period in software processing. In this case, the time-out is detected by the WDT and the CPU is interrupted to specify where the CPU has runaway in the program (prior art 2).

尚、タイムアウトを検出する先行技術文献としては、特許文献1が知られている。   Note that Patent Document 1 is known as a prior art document for detecting a timeout.

特開2001−167067号公報JP 2001-167067 A

上記の従来技術1をマルチコアLSIに拡張した場合は、割込処理の要求信号をどの様に各々のCPUに出力するか、どのCPUのアクセスによりハングアップしたのかをどのように特定するのかという点において、現在では有効な手法が無い状況である。   When the above prior art 1 is extended to a multi-core LSI, how to output a request signal for interrupt processing to each CPU and how to identify which CPU has hung up However, there is currently no effective method.

また上記の従来技術2をマルチコアLSIに使用した場合は、そもそも共有バスがハングアップした場合に、WDTによって、それを検出して他の正常なCPUに割込処理をさせようとしても、デバッグ対象のCPUがバス権の開放を行わない限り、その正常なCPUは割込処理を実行できない。   Also, when the above prior art 2 is used for a multi-core LSI, if the shared bus hangs up in the first place, even if it is detected by WDT and other normal CPUs try to perform interrupt processing, Unless the CPU releases the bus right, the normal CPU cannot execute the interrupt process.

以上の事から、従来では、マルチコアLSIにおいて、共有バスのハングアップが発生しても、そのハングアップが、どのCPUのどのアクセスにより発生したかの特定ができないので、プログラムの開発効率が良くないという問題点があった。   As described above, conventionally, even if a shared bus hang-up occurs in a multi-core LSI, it is impossible to specify which CPU and which access caused the hang-up, so the program development efficiency is not good. There was a problem.

また、或るCPUが暴走して共有バスをハングアップすると、他の正常なCPUがアクセスできなくなって他の正常なCPUも停止するので、LSIの動作上の安定性が良くないという問題点があった。   In addition, if a certain CPU runs away and hangs up the shared bus, other normal CPUs cannot be accessed and other normal CPUs are also stopped. Therefore, there is a problem that the operational stability of the LSI is not good. there were.

この発明は、上記のような問題点を解決するためになされたものであり、第1に、動作の安定性を向上できるマルチコアLSIを提供すること、第2に、更に、プログラムの開発効率を向上できるマルチコアLSIを提供する目的としている。   The present invention has been made to solve the above-described problems. First, it provides a multi-core LSI capable of improving operational stability, and secondly, further improves the efficiency of program development. The purpose is to provide a multi-core LSI that can be improved.

上記課題を解決する為に、本発明の第1の形態は、第1の共有バスに接続された複数のCPUと、第2の共有バスに接続された1個以上のモジュールと、前記第1の共有バスと前記第2の共有バスとの間に接続され、前記複数のCPUの前記モジュールへのアクセスを調停する共有バス制御部と、アクセス先の前記モジュールから、前記CPUのアクセス要求信号に対する応答信号が出力されたか否かを監視するシステムコントローラとを備え、前記システムコントローラは、前記共有バス制御部から前記第2の共有バスに前記アクセス要求信号が出力されてから所定時間経過しても、アクセス先の前記モジュールから前記応答信号が出力されない場合は、前記共有バス制御部を介して前記第1の共有バスに疑似応答信号を出力して、アクセス中の前記CPUの当該アクセスを終了させると共に、異なる割込処理を其々実行可能な前記アクセス中のCPUと他のCPUとの其々に対して、其々が前記異なる割込処理を実行するための割込み通知の発行を可能とするものである。 In order to solve the above-described problem, a first aspect of the present invention provides a plurality of CPUs connected to a first shared bus, one or more modules connected to a second shared bus, and the first A shared bus control unit connected between the shared bus and the second shared bus for arbitrating access to the module by the plurality of CPUs, and an access request signal for the CPU from the accessed module A system controller that monitors whether or not a response signal is output, and the system controller is configured to receive a predetermined time after the access request signal is output from the shared bus control unit to the second shared bus. If the response signal is not output from the accessed module, a pseudo response signal is output to the first shared bus via the shared bus control unit. The causes terminate the access of the CPU in for其's different interrupt processes其s executable CPU and other CPU in the access, executes the different interrupt process其s It is possible to issue an interrupt notification for this purpose .

本発明の第1の形態によれば、システムコントローラは、共有バス制御部から第2の共有バスにアクセス要求信号が出力されてから所定時間経過するまでに、アクセス先のモジュールから応答信号が出力されない場合は、共有バス制御部を介して第1の共有バスに疑似応答信号を出力して、アクセス中のCPUの当該アクセスを終了させる。これにより、バグ等の発生により、アクセス先のモジュールから応答信号が出力されない場合でも、アクセス中のCPUが共有バスを長期に占有してマルチコアLSIの動作が停止する事を防止でき、マルチコアLSIの動作の安定性を向上できる。   According to the first aspect of the present invention, the system controller outputs a response signal from the access destination module until a predetermined time elapses after the access request signal is output from the shared bus control unit to the second shared bus. If not, a pseudo response signal is output to the first shared bus via the shared bus control unit, and the access of the CPU being accessed is terminated. As a result, even when a response signal is not output from the access destination module due to the occurrence of a bug or the like, it is possible to prevent the accessing CPU from occupying the shared bus for a long time and stop the operation of the multicore LSI. The stability of operation can be improved.

実施の形態1に係るマルチコアLSIの構成図である。1 is a configuration diagram of a multi-core LSI according to a first embodiment. 図1のシステムコントローラ9の構成概略図である。FIG. 2 is a schematic configuration diagram of a system controller 9 in FIG. 1. 図2の制御部9gのうちのノンマスカブル割込処理の要求信号を出力する部分の論理回路の構成概略図である。FIG. 3 is a schematic configuration diagram of a logic circuit of a part that outputs a request signal for non-maskable interrupt processing in the control unit 9 g of FIG. 2. 図2の割り込み制御レジスタ9d,9eの仕様を説明する図である。It is a figure explaining the specification of the interrupt control registers 9d and 9e of FIG. 図2の割り込み制御レジスタ9d,9eへの設定データの設定例を説明する図である。It is a figure explaining the example of a setting data setting to the interrupt control registers 9d and 9e of FIG. 従来型のマルチコアLSIの正常時の動作の概要を説明する図である。It is a figure explaining the outline | summary of operation | movement at the time of normal of the conventional multi-core LSI. 従来型のマルチコアLSIのタイムアウト発生時(バグ発生時)の動作の概要を説明する図である。It is a figure explaining the outline | summary of operation | movement at the time of timeout occurrence (at the time of bug occurrence) of the conventional multi-core LSI. 従来型のマルチコアLSIの正常時およびタイムアウト発生時の動作の概要を説明する他の図である。It is another figure explaining the outline | summary of operation | movement at the time of normal time and time-out occurrence of the conventional multi-core LSI. 実施の形態1に係るマルチコアLSIの動作を説明する図である。FIG. 6 is a diagram for explaining the operation of the multi-core LSI according to the first embodiment.

実施の形態1.
<全体構成>
この実施の形態に係るマルチコアLSI1は、図1の様に、複数(例えば2個)のCPU#0,#1と、各CPU#0,#1のアクセスを調停する共有バス制御部3と、それら各構成要素#0,#1,3が接続された共有バスb1と、ROMやRAM等の1個以上(例えばn個)のモジュールm1〜mnと、外部バスgbとのインターフェースである外部バス制御部5と、各CPU#0,#1に割込処理を発生させる割り込みコントローラ7と、それら各構成要素m1〜mn,3,5が接続された共有バスb2と、共有バスb2を監視するシステムコントローラ9とを備える。
Embodiment 1 FIG.
<Overall configuration>
As shown in FIG. 1, the multi-core LSI 1 according to this embodiment includes a plurality of (for example, two) CPUs # 0 and # 1, and a shared bus control unit 3 that arbitrates accesses of the CPUs # 0 and # 1, An external bus that is an interface between the shared bus b1 to which these constituent elements # 0, # 1, and 3 are connected, one or more (eg, n) modules m1 to mn such as ROM and RAM, and the external bus gb The control unit 5, the interrupt controller 7 that causes the CPUs # 0 and # 1 to generate interrupt processing, the shared bus b2 to which the respective components m1 to mn, 3, and 5 are connected, and the shared bus b2 are monitored. And a system controller 9.

各共有バスb1,b2はそれぞれ、アクセス先のアドレスが送信されるアドレスバスと、コマンド(例えば読み出し(read)、書き込み(write)および応答信号など)が送信されるコマンドバスと、データが送信されるデータバスと、アクセス元のCPU#0,#1のIDが送信されるCPUIDバスとから構成される。   Each of the shared buses b1 and b2 transmits data to an address bus to which an access destination address is transmitted, a command bus to which commands (for example, read, write, and response signals) are transmitted. And a CPU ID bus to which the IDs of the access source CPUs # 0 and # 1 are transmitted.

各CPU#0,#1は、一般的なものであって、デバッグ機能dbと、1次キャッシュL1と、システムコントローラ9からの各種の割込処理の要求信号である、NMI(ノンマスカブル割り込み)、INT(マスカブル割り込み)、およびDBI(デバッグ割り込み)を備える。   Each of the CPUs # 0 and # 1 is a general one, and includes a debug function db, a primary cache L1, and various interrupt processing request signals from the system controller 9, NMI (non-maskable interrupt), It includes INT (maskable interrupt) and DBI (debug interrupt).

デバッグ機能dbは、一般的なデバッグ機能であって、例えば、当該CPU#0,#1のプログラムの実行制御、ブレークポイント制御、CPU内部レジスタ表示や、外部からの要求信号に応じて当該CPU#0,#1の実行履歴を外部に出力する機能などといった、プログラムのデバッグに必要な機能を、外部装置と通信を行い実現するものである。   The debug function db is a general debug function. For example, the CPU # 0 and # 1 execute program control, breakpoint control, CPU internal register display, and the CPU # in response to an external request signal. Functions necessary for debugging a program, such as a function of outputting the execution history of 0 and # 1 to the outside, are realized by communicating with an external device.

入力信号NMIは、ノンマスカブル割込処理(Non-maskable Interrupt)の要求信号を表している。入力信号DBIは、デバッグ割込処理(Debug Interrupt)の要求信号を表している。入力信号INTは、マスカブル割込処理(maskable Interrupt)の要求信号を表している。各CPU#0,#1はそれぞれ、各入力部NMI,DBI,INTに入力された要求信号に応じて各種の割込処理を実行する。   The input signal NMI represents a request signal for non-maskable interrupt processing. The input signal DBI represents a request signal for debug interrupt processing (Debug Interrupt). The input signal INT represents a request signal for maskable interrupt processing. Each of the CPUs # 0 and # 1 executes various interrupt processes according to request signals input to the input units NMI, DBI, and INT.

各CPU#0,#1は、各モジュールm1〜mnまたは外部バスgbに接続された各外部デバイスgd1,gd2にアクセスする場合は、アクセス要求信号として、共有バスb1のアドレスバス、コマンドバス、CPUIDバスにそれぞれアクセス先のアドレス、読み出しまたは書き込みのコマンド、アクセス元のCPU#0または#1のID(CPUID)を出力すると共に前記コマンドが書き込みの場合は更に共有バスb1のデータバスに書込対象のデータを出力する。   When the CPUs # 0 and # 1 access the external devices gd1 and gd2 connected to the modules m1 to mn or the external bus gb, as the access request signal, the address bus, command bus, and CPUID of the shared bus b1 are used. The address of the access destination, the read or write command, and the ID (CPUID) of the access source CPU # 0 or # 1 are output to the bus, respectively. Output the data.

また各CPU#0,#1は、アクセス要求信号の共有バスb1への出力でアクセスを開始し、そのアクセス要求信号に対する応答信号を共有バスb1を通じて取得すると、そのアクセスを終了する。   Each of the CPUs # 0 and # 1 starts access by outputting the access request signal to the shared bus b1, and ends the access when acquiring a response signal to the access request signal through the shared bus b1.

共有バス制御部3は、2次キャッシュL2を備えることも可能である。以降は2次キャッシュL2を備えた場合について説明する。   The shared bus control unit 3 can also include a secondary cache L2. Hereinafter, the case where the secondary cache L2 is provided will be described.

また共有バス制御部3は、共有バスb1を通じて各CPU#0または#1からのアクセス要求信号を受信すると、2次キャッシュL2にアクセスして、その読出対象のデータが2次キャッシュL2に保存されているかを確認する。そして保存されている場合は、アクセス元のCPU#0または#1に対して、アクセス要求信号のコマンドが読み出しの場合は、その保存されているデータを共有バスb1を通じて出力すると共にそのアクセス要求信号に対する応答信号を共有バスb1を通じて出力し、アクセス要求信号のコマンドが書き込みの場合は、L2キャッシュに書き込みをすると共に、そのアクセス要求信号に対する応答信号を共有バスb1を通じて出力する。   When the shared bus control unit 3 receives an access request signal from each CPU # 0 or # 1 through the shared bus b1, the shared bus control unit 3 accesses the secondary cache L2, and the data to be read is stored in the secondary cache L2. Make sure that If the access request signal command is read from the access source CPU # 0 or # 1, the stored data is output through the shared bus b1 and the access request signal is stored. When the command of the access request signal is a write, the response signal for the access request signal is written to the L2 cache and the response signal for the access request signal is output via the shared bus b1.

また共有バス制御部3は、その対象のデータが2次キャッシュに保存されていない場合、共有バスb1を通じて受信した当該アクセス要求信号を共有バスb2に出力する。   Further, when the target data is not stored in the secondary cache, the shared bus control unit 3 outputs the access request signal received through the shared bus b1 to the shared bus b2.

また共有バス制御部3は、共有バスb2から、各モジュールm1〜mnまたは外部バス制御部5からの応答信号および読出対象のデータを受信した場合、その応答信号および読出対象のデータを共有バスb1に出力する。   When shared bus control unit 3 receives a response signal and data to be read from each of modules m1 to mn or external bus control unit 5 from shared bus b2, it transmits the response signal and the data to be read to shared bus b1. Output to.

また共有バス制御部3は、システムコントローラ9から専用配線12を通じて後述の疑似応答信号が入力されると、その疑似応答信号を、共有バスb1に出力して、その際にアクセス中のCPU#0または#1に受信させて当該アクセスを強制的に終了させる。尚、上記の疑似応答信号とは、アクセス要求信号のアクセス先が応答信号を出力しない場合に、システムコントローラ9が、その代わりに出力する応答信号である。   When a pseudo response signal (to be described later) is input from the system controller 9 through the dedicated wiring 12, the shared bus control unit 3 outputs the pseudo response signal to the shared bus b1, and the CPU # 0 being accessed at that time Alternatively, # 1 is received and the access is forcibly terminated. The pseudo response signal is a response signal that the system controller 9 outputs instead when the access destination of the access request signal does not output a response signal.

各モジュールm1〜mnは、共有バスb2を通じて自身へのアクセス要求信号を受信すると、そのアクセス要求信号に対する応答信号を共有バスb2に出力すると共に、専用配線11を通じてシステムコントローラ9にも応答信号を出力する。   When each module m1 to mn receives an access request signal to itself through the shared bus b2, it outputs a response signal to the access request signal to the shared bus b2 and also outputs a response signal to the system controller 9 through the dedicated wiring 11. To do.

尚、専用配線11は、例えば、OR回路11aを備え、OR回路11aの複数の入力部には、各モジュールm1〜mnおよび外部バス制御部5の各々の応答信号出力部が配線接続され、OR回路11aの出力部には、システムコントローラ9の応答信号入力部が配線接続されて構成されている。OR回路11aは、その複数の入力部のうちの何れかに応答信号が入力されると、その出力部から応答信号を出力する。   The dedicated wiring 11 includes, for example, an OR circuit 11a, and the response signal output units of each of the modules m1 to mn and the external bus control unit 5 are connected to a plurality of input units of the OR circuit 11a. A response signal input section of the system controller 9 is connected to the output section of the circuit 11a by wiring. When the response signal is input to any of the plurality of input units, the OR circuit 11a outputs the response signal from the output unit.

外部バス制御部5は、外部バスgbに接続された外部デバイスgd1,gd2と、各CPU#0,#1nとの間の通信を中継する。   The external bus control unit 5 relays communication between the external devices gd1 and gd2 connected to the external bus gb and the CPUs # 0 and # 1n.

割り込みコントローラ7は、各モジュールm1〜mnまたは外部デバイス(不図示)から各種の割込処理の要求信号が入力されると、システムコントローラ9を介して各CPU#0,#1の各入力信号NMI,DBI,INTを出力して、各CPU#0,#1に当該各種の割込処理を実行させる。   When various interrupt processing request signals are input from the modules m1 to mn or an external device (not shown), the interrupt controller 7 receives the input signals NMI of the CPUs # 0 and # 1 via the system controller 9. , DBI, INT are output to cause each of the CPUs # 0, # 1 to execute various interrupt processes.

システムコントローラ9は、共有バスb2中のアクセス要求信号を監視する。そしてシステムコントローラ9は、共有バス制御部3から共有バスb2にアクセス要求信号が出力されてから所定時間経過するまでに、そのアクセス要求信号のアクセス先から共有バスb2にそのアクセス要求信号に対する応答信号が出力されたか否かを監視する。   The system controller 9 monitors an access request signal in the shared bus b2. The system controller 9 sends a response signal to the access request signal from the access destination of the access request signal to the shared bus b2 until a predetermined time elapses after the access request signal is output from the shared bus control unit 3 to the shared bus b2. Monitor whether or not is output.

そしてシステムコントローラ9は、上記の所定時間経過するまでに当該応答信号が共有バス2に出力されない場合は、上記の所定時間経過したときに(即ちタイムアウトが発生したときに)、バグ等の発生により共有バスb1,b2がハングアップしたと判定し、下記の処理(1)(2)(3)を行う。   If the response signal is not output to the shared bus 2 until the predetermined time elapses, the system controller 9 causes a bug or the like when the predetermined time elapses (that is, when a timeout occurs). It is determined that the shared buses b1 and b2 are hung up, and the following processes (1), (2), and (3) are performed.

即ち処理(1)として、疑似応答信号を例えば専用配線12を介して共有バス制御部3に出力し、その疑似応答信号を、共有バス制御部3から共有バスb1に出力させてアクセス元のCPU#0または#1に取得させ、そのアクセスを強制的に終了させる。   That is, as a process (1), a pseudo response signal is output to the shared bus control unit 3 via, for example, the dedicated wiring 12, and the pseudo response signal is output from the shared bus control unit 3 to the shared bus b1 to be the access source CPU. # 0 or # 1 is acquired and the access is forcibly terminated.

また処理(2)として、アクセス中のCPU#0,#1が当該アクセスの際に出力したCPUID、読み出しまたは書き込みのコマンド、およびアドレスのうちの少なくとも1つを保存する。   In the process (2), at least one of the CPU ID, the read or write command, and the address output by the accessing CPUs # 0 and # 1 at the time of the access is stored.

また処理(3)として、CPU#0,#1の入力信号MNI,DBI,INTに信号を出力してCPU#0,#1に各種の割込処理を実行させる。これにより、バグの発生箇所を推定することが可能となる。   In process (3), signals are output to the input signals MNI, DBI, and INT of the CPUs # 0 and # 1, and the CPUs # 0 and # 1 execute various interrupt processes. This makes it possible to estimate the location where the bug occurs.

またシステムコントローラ9は、外部装置からの終了要求信号が入力されると、疑似応答信号を共有バス制御部3に出力して、上記の所定時間経過する前でも、アクセス中のCPU#0,#1の当該アクセスを強制的に終了させる。   Further, when an end request signal is input from an external device, the system controller 9 outputs a pseudo response signal to the shared bus control unit 3, and the CPUs # 0 and # 0 that are being accessed even before the predetermined time elapses. 1 forcibly terminates the access.

<システムコントローラ9の構成>
システムコントローラ9は、図2の様に、アドレスレジスタ9aと、コマンドレジスタ9bと、CPUIDレジスタ9cと、各CPU#0,#1毎に設けられた割り込み制御レジスタ9d,9eと、カウンタ9fと、制御部9gとを備える。
<Configuration of system controller 9>
As shown in FIG. 2, the system controller 9 includes an address register 9a, a command register 9b, a CPUID register 9c, interrupt control registers 9d and 9e provided for each of the CPUs # 0 and # 1, a counter 9f, And a control unit 9g.

アドレスレジスタ9aは、共有バスb2のアドレスバスq1に接続され、コマンドレジスタ9bは、共有バスb2のコマンドバスq2に接続され、CPUIDレジスタ9cは、共有バスb2のCPUIDバスq3に接続され、割り込み制御レジスタ9d,9eは、共有バスb2のデータバスq4に接続されている。   The address register 9a is connected to the address bus q1 of the shared bus b2, the command register 9b is connected to the command bus q2 of the shared bus b2, and the CPUID register 9c is connected to the CPUID bus q3 of the shared bus b2. The registers 9d and 9e are connected to the data bus q4 of the shared bus b2.

各レジスタ9a,9b,9cはそれぞれ、制御部9fの制御に応じて、共有バス制御部3から共有バスb2に出力されたアクセス要求信号のアドレス,コマンド,CPUIDを格納する。   Each of the registers 9a, 9b, and 9c stores the address, command, and CPUID of the access request signal output from the shared bus control unit 3 to the shared bus b2 according to the control of the control unit 9f.

制御部9gは、共有バスb2のコマンドバスq2にアクセス要求信号のコマンド(読み出しまたは書き込みのコマンド)が出力されたか否かを監視する。そして制御部9gは、共有バスb2のコマンドバスq2にアクセス要求信号のコマンドが出力された事を検知すると、共有バス制御部3から共有バスb2にアクセス要求信号が出力されたと判定して、カウント9fに所定時間の計時を開始させる。   The controller 9g monitors whether or not an access request signal command (read or write command) has been output to the command bus q2 of the shared bus b2. When the control unit 9g detects that the access request signal command is output to the command bus q2 of the shared bus b2, the control unit 9g determines that the access request signal is output from the shared bus control unit 3 to the shared bus b2, and counts In 9f, the timing of a predetermined time is started.

そして制御部9gは、カウンタ9fが所定時間を計時し終えるまでに、専用配線11を通じて自身に当該アクセス要求信号のアクセス先から応答信号が入力されたか否か(即ちアクセス先から共有バスb2に当該アクセス要求信号に対する応答信号が出力されたか否か)を監視する。   Then, the control unit 9g determines whether or not a response signal has been input to the shared bus b2 from the access destination to the shared bus b2 through the dedicated wiring 11 until the counter 9f finishes counting the predetermined time. Whether or not a response signal to the access request signal is output is monitored.

そして制御部9gは、カウンタ9fが所定時間を計時し終えるまでに、専用配線11を通じて応答信号が自身に入力された場合は、アクセス先から共有バスb2に当該アクセス要求信号に対する応答信号が出力された(即ちバグの発生無し)と判定し、カウンタ9による所定時間の計時を中止させる。   When the response signal is input to the control unit 9g through the dedicated wiring 11 before the counter 9f finishes counting the predetermined time, the response signal for the access request signal is output from the access destination to the shared bus b2. (I.e., no bug has occurred) and the counting of the predetermined time by the counter 9 is stopped.

他方、制御部9gは、専用配線11を通じて応答信号が自身に入力される前にカウンタ9fが所定時間を計時し終えた場合(即ちタイムアウトが発生した場合)は、バグ等が発生して共有バスb1,b2がハングアップしたと判定し、下記の処理(1)(2)(3)を行う。   On the other hand, when the counter 9f finishes measuring a predetermined time before the response signal is input to the control unit 9g through the dedicated wiring 11 (that is, when a timeout occurs), a bug or the like occurs and the shared bus It is determined that b1 and b2 are hung up, and the following processes (1), (2), and (3) are performed.

即ち処理(1)として、制御部9gは、例えば専用配線12を介して疑似応答信号を共有バス制御部3に出力し、その疑似応答信号を、共有バス制御部3から共有バスb1に出力させてアクセス中のCPU#0,#1に取得させ、そのアクセスを強制的に終了させる。   That is, as the process (1), the control unit 9g outputs, for example, a pseudo response signal to the shared bus control unit 3 via the dedicated wiring 12, and outputs the pseudo response signal from the shared bus control unit 3 to the shared bus b1. The CPUs # 0 and # 1 that are being accessed are acquired and the access is forcibly terminated.

また処理(2)として、制御部9gは、共有バスb2から当該アクセス要求信号のアドレス,読み出しまたは書き込みのコマンド、およびCPUIDを取得し、それらをそれぞれ各レジスタ9a,9b,9cに格納する。尚、この格納されたアドレス、コマンドおよびCPUIDは、どのCPU#0,#1のどのアクセスによりバグ等が発生したかを特定するのに役立てられる。   Further, as the process (2), the control unit 9g acquires the address of the access request signal, the read or write command, and the CPUID from the shared bus b2, and stores them in the registers 9a, 9b, and 9c, respectively. The stored address, command, and CPUID are useful for specifying which access of which CPU # 0, # 1 caused a bug or the like.

また処理(3)として、制御部9gは、CPUIDレジスタ9cに格納された上記のCPUIDおよび割り込み制御レジスタ9d,9eに予め格納された設定データに応じて、各CPU#0,#1に対して割込処理の要求信号NMI,DBI,INTを出力して、各CPU#0,#1に各種の割込処理を実行させる。   Further, as the process (3), the control unit 9g applies to the CPUs # 0 and # 1 in accordance with the CPUID stored in the CPUID register 9c and the setting data stored in the interrupt control registers 9d and 9e in advance. Interrupt processing request signals NMI, DBI, and INT are output to cause the CPUs # 0 and # 1 to execute various interrupt processing.

尚、割り込み制御レジスタ9d,9eに格納された設定データを変更することで、バグ発生時に各CPU#0,#1に実行させる割込処理の種類を変更できる。割り込み制御レジスタ9d,9eに格納された設定データの変更は、例えば、外部から割り込みコントローラ7およびシステムコントローラ9を介してCPU#0または#1の入力部NMI,DBI,INTに割込処理の要求信号を出力し、そのCPU#0または#1の割込処理により行われる。   By changing the setting data stored in the interrupt control registers 9d and 9e, it is possible to change the type of interrupt processing to be executed by the CPUs # 0 and # 1 when a bug occurs. The setting data stored in the interrupt control registers 9d and 9e can be changed by, for example, externally requesting interrupt processing to the input units NMI, DBI, and INT of the CPU # 0 or # 1 via the interrupt controller 7 and the system controller 9. A signal is output, and the interrupt processing is performed by the CPU # 0 or # 1.

<制御部9bの構成>
図3は、制御部9gに於ける、CPU#0,#1の割込処理の要求信号NMIの出力を制御する部分の論理回路10aを示した図である。
<Configuration of control unit 9b>
FIG. 3 is a diagram showing the logic circuit 10a of the part that controls the output of the interrupt request signal NMI of the CPUs # 0 and # 1 in the controller 9g.

この論理回路10aは、OR回路13aと、AND回路14a,15aと、出力回路16とを備える。   The logic circuit 10a includes an OR circuit 13a, AND circuits 14a and 15a, and an output circuit 16.

出力回路16は、1つの入力部t1と2つの出力部t2,t3とを有し、入力部t1には、CPUIDレジスタ9c内のCPUID(#0または#1)が入力され、そのCPUIDが#0の場合は、各出力部t2,t3からそれぞれ「0」,「1」が出力され、他方、そのCPUIDが#1の場合は、各出力部t2,t3からそれぞれ「1」,「0」が出力される。   The output circuit 16 has one input unit t1 and two output units t2 and t3. The CPUID (# 0 or # 1) in the CPUID register 9c is input to the input unit t1, and the CPUID is ## In the case of 0, “0” and “1” are output from the output units t2 and t3, respectively. On the other hand, when the CPU ID is # 1, “1” and “0” are output from the output units t2 and t3, respectively. Is output.

AND回路14aは、1つの出力部t4と3つの入力部t5〜t7を有し、入力部t5には、割り込み制御レジスタ9b内の所定のビット位置(例えばb5)のビット値(「0」または「1」)が入力され、入力部t6には、出力回路16の出力部t2からの出力が入力され、入力部t7には、カウンタ9fの出力が入力される。尚、カウンタ9fの出力は、カウンタ9fが所定時間を計時し終えるまでは「0」を出力し、カウンタ9fが所定時間を計時し終えると(即ちタイムアップが発生すると)「1」を出力する。   The AND circuit 14a has one output unit t4 and three input units t5 to t7. The input unit t5 has a bit value (“0” or a bit value of a predetermined bit position (for example, b5) in the interrupt control register 9b. "1") is input, the output from the output unit t2 of the output circuit 16 is input to the input unit t6, and the output of the counter 9f is input to the input unit t7. The counter 9f outputs “0” until the counter 9f finishes measuring the predetermined time, and outputs “1” when the counter 9f finishes measuring the predetermined time (that is, when time-up occurs). .

AND回路15aは、1つの出力部t8と3つの入力部t9〜t11を有し、入力部t9には、割り込み制御レジスタ9b内の所定のビット位置(例えばb0)のビット値(「0」または「1」)が入力され、入力部t10には、出力回路16の出力部t3からの出力が入力され、入力部t11には、カウンタ9fの出力が入力される。   The AND circuit 15a has one output unit t8 and three input units t9 to t11. The input unit t9 has a bit value (“0” or “0” or a predetermined bit position (for example, b0) in the interrupt control register 9b). “1”) is input, the output from the output unit t3 of the output circuit 16 is input to the input unit t10, and the output of the counter 9f is input to the input unit t11.

OR回路13aは、1つの出力部t12と3つの入力部t13〜t15とを有し、出力部t12の出力は、CPU#0の入力部NMIに出力され、各入力部t13,t14にはそれぞれ、AND回路14a,15aの出力部t4,t8からの出力が入力され、入力部t15には、割り込みコントローラ7からのノンマスカブル(NMI)割込処理の要求信号が入力される(尚、NMI割込処理の要求信号の入力が有る場合は「1」が入力され、NMI割込処理の要求信号の入力が無い場合「0」が入力される)。   The OR circuit 13a has one output unit t12 and three input units t13 to t15, and the output of the output unit t12 is output to the input unit NMI of the CPU # 0, and the input units t13 and t14 have respective outputs. The outputs from the output units t4 and t8 of the AND circuits 14a and 15a are input, and a request signal for non-maskable (NMI) interrupt processing from the interrupt controller 7 is input to the input unit t15 (note that the NMI interrupt “1” is input when there is a processing request signal input, and “0” is input when there is no NMI interrupt processing request signal input).

同様に、CPU#1の割込処理の要求信号NMIの出力を制御する部分の論理回路10bは、OR回路13bと、AND回路14b,15bと、出力回路16とを備える。   Similarly, the logic circuit 10b that controls the output of the interrupt processing request signal NMI of the CPU # 1 includes an OR circuit 13b, AND circuits 14b and 15b, and an output circuit 16.

AND回路14bは、1つの出力部t16と3つの入力部t17〜t19とを有し、入力部t17には、割り込み制御レジスタ9e内の所定のビット位置(例えばb3)のビット値(「0」または「1」)が入力され、入力部t18には、出力回路16の出力部t3の出力が入力され、出力部t19には、カウンタ9fの出力が入力される。   The AND circuit 14b includes one output unit t16 and three input units t17 to t19. The input unit t17 has a bit value (“0”) of a predetermined bit position (for example, b3) in the interrupt control register 9e. Or “1”) is input, the output of the output unit t3 of the output circuit 16 is input to the input unit t18, and the output of the counter 9f is input to the output unit t19.

AND回路15bは、1つの出力部t20と3つの入力部t21〜t23とを有し、入力部t21には、割り込み制御レジスタ9e内の所定のビット位置(例えばb0)のビット値(「0」または「1」)が入力され、出力部t22には、出力回路16の出力部t2の出力が入力され、出力部t23には、カウンタ9fの出力が入力される。   The AND circuit 15b includes one output unit t20 and three input units t21 to t23. The input unit t21 receives a bit value (“0”) of a predetermined bit position (for example, b0) in the interrupt control register 9e. Or “1”) is input, the output of the output unit t2 of the output circuit 16 is input to the output unit t22, and the output of the counter 9f is input to the output unit t23.

OR回路13bは、1つの出力部t24と3つの入力部t25〜t27とを有し、出力部t24の出力は、CPU#1の割込処理の要求信号NMIに出力され、各入力部t25,t26にはそれぞれ、AND回路14b,15bの出力部t16,t20の出力が入力され、入力部t27には、割り込みコントローラ7からのノンマスカブル(NMI)割込処理の要求信号の出力が入力される。   The OR circuit 13b has one output unit t24 and three input units t25 to t27. The output of the output unit t24 is output to the interrupt processing request signal NMI of the CPU # 1, and each input unit t25, Outputs of the output units t16 and t20 of the AND circuits 14b and 15b are input to t26, respectively, and an output of a non-maskable (NMI) interrupt processing request signal from the interrupt controller 7 is input to the input unit t27.

またCPU#0の入力部INTへの割込処理の要求信号の出力を制御する部分の論理回路は、図示省略するが、論理回路10aにおいて、下記(1a)〜(4a)の変更を行って他の部分を同様に構成することで、構成される。
(1a)OR回路13aの出力部t12の出力をCPU#0の割込処理の要求信号INTに入力する。
(2a)AND回路14aの入力部t5には、割り込み制御レジスタ9dのビット位置b4のビット値を入力する。
(3a)AND回路15aの入力部t9には、割り込み制御レジスタ9dのビット位置b1のビット値を入力する。
(4a)OR回路13aの入力部t15には、割り込みコントローラ7からのマスカブル(INT)割込処理の要求信号が入力される(尚、INT割込処理の要求信号の入力が有る場合は「1」が入力され、INT割込処理の要求信号の入力が無い場合「0」が入力される)。
The logic circuit of the part that controls the output of the interrupt processing request signal to the input part INT of CPU # 0 is omitted in the figure, but the following (1a) to (4a) are changed in the logic circuit 10a. It is configured by configuring other parts in the same manner.
(1a) The output of the output unit t12 of the OR circuit 13a is input to the interrupt processing request signal INT of the CPU # 0.
(2a) The bit value at the bit position b4 of the interrupt control register 9d is input to the input unit t5 of the AND circuit 14a.
(3a) The bit value at the bit position b1 of the interrupt control register 9d is input to the input unit t9 of the AND circuit 15a.
(4a) A request signal for maskable (INT) interrupt processing from the interrupt controller 7 is input to the input section t15 of the OR circuit 13a (in addition, if there is an input of a request signal for INT interrupt processing, “1 ”Is input, and“ 0 ”is input when no request signal for INT interrupt processing is input).

またCPU#1の割込処理の要求信号INTへの割込処理の要求信号の出力を制御する部分の論理回路は、図示省略するが、論理回路10bにおいて、下記(1b)〜(4b)の変更を行って他の部分を同様に構成することで、構成される。
(1b)OR回路13bの出力部t24の出力をCPU#1の割込処理の要求信号INTに入力する。
(2b)AND回路14bの入力部t17には、割り込み制御レジスタ9eのビット位置b4のビット値を入力する。
(3b)AND回路15bの入力部t21には、割り込み制御レジスタ9eのビット位置b1のビット値を入力する。
(4b)OR回路13bの入力部t27には、割り込みコントローラ7からのマスカブル(INT)割込処理の要求信号が入力される。
Although the logic circuit of the part that controls the output of the interrupt processing request signal to the interrupt processing request signal INT of the CPU # 1 is not shown, in the logic circuit 10b, the following (1b) to (4b) It is configured by changing and configuring the other parts in the same way.
(1b) The output of the output unit t24 of the OR circuit 13b is input to the interrupt processing request signal INT of the CPU # 1.
(2b) The bit value at the bit position b4 of the interrupt control register 9e is input to the input unit t17 of the AND circuit 14b.
(3b) The bit value at the bit position b1 of the interrupt control register 9e is input to the input part t21 of the AND circuit 15b.
(4b) A request signal for maskable (INT) interrupt processing from the interrupt controller 7 is input to the input section t27 of the OR circuit 13b.

またCPU#0の割込処理の要求信号DBIへの出力を制御する部分の論理回路は、図示省略するが、論理回路10aにおいて、下記(1c)〜(4c)の変更を行って他の部分を同様に構成することで、構成される。
(1c)OR回路13aの出力部t12の出力をCPU#0の割込処理の要求信号DBIに入力する。
(2c)AND回路14aの入力部t5には、割り込み制御レジスタ9dのビット位置b5のビット値を入力する。
(3c)AND回路15aの入力部t9には、割り込み制御レジスタ9dのビット位置b2のビット値を入力する。
(4c)OR回路13aの入力部t15には、割り込みコントローラ7からのデバッグ(DBI)割込処理の要求信号が入力される(尚、DBI割込処理の要求信号の入力が有る場合は「1」が入力され、DBI割込処理の要求信号の入力が無い場合「0」が入力される)。
The logic circuit of the part that controls the output of the interrupt signal request signal DBI of CPU # 0 is not shown, but in the logic circuit 10a, the following (1c) to (4c) are changed and other parts are changed. Are configured in the same manner.
(1c) The output of the output unit t12 of the OR circuit 13a is input to the interrupt request signal DBI of the CPU # 0.
(2c) The bit value at the bit position b5 of the interrupt control register 9d is input to the input unit t5 of the AND circuit 14a.
(3c) The bit value at the bit position b2 of the interrupt control register 9d is input to the input unit t9 of the AND circuit 15a.
(4c) A request signal for debug (DBI) interrupt processing from the interrupt controller 7 is input to the input unit t15 of the OR circuit 13a (Note that if there is an input of a request signal for DBI interrupt processing, “1 ”Is input, and“ 0 ”is input when there is no DBI interrupt processing request signal input).

またCPU#1の割込処理の要求信号DBIへの出力を制御する部分の論理回路は、図示省略するが、論理回路10bにおいて、下記(1d)〜(4d)の変更を行って他の部分を同様に構成することで、構成される。
(1d)OR回路13bの出力部t24の出力をCPU#1の割込処理の要求信号DBIに入力する。
(2d)AND回路14bの入力部t17には、割り込み制御レジスタ9eのビット位置b5のビット値を入力する。
(3d)AND回路15bの入力部t21には、割り込み制御レジスタ9eのビット位置b2のビット値を入力する。
(4d)OR回路13bの入力部t27には、割り込みコントローラ7からのデバッグ(DBI)割込処理の要求信号の出力が入力される。
Although the logic circuit of the part that controls the output to the request signal DBI of the interrupt processing of CPU # 1 is not shown, other parts are changed by changing the following (1d) to (4d) in the logic circuit 10b. Are configured in the same manner.
(1d) The output of the output part t24 of the OR circuit 13b is input to the interrupt processing request signal DBI of the CPU # 1.
(2d) The bit value at the bit position b5 of the interrupt control register 9e is input to the input unit t17 of the AND circuit 14b.
(3d) The bit value at the bit position b2 of the interrupt control register 9e is input to the input unit t21 of the AND circuit 15b.
(4d) The output of the request signal for the debug (DBI) interrupt processing from the interrupt controller 7 is input to the input unit t27 of the OR circuit 13b.

尚、各AND回路14a,15a,14b,15bはそれぞれ、その全ての入力部に「1」が入力された場合のみ、その出力部から「1」を出力する。各OR回路13a,13bはそれぞれ、その各入力部のうちの1つ以上のものに「1」が入力された場合のみ、その出力部から「1」を出力する。各CPU#0,#1は、その割込処理の要求信号NMIに「1」が入力されると、ノンマスカブル割込処理を実行し、またその割込処理の要求信号INTに「1」が入力されると、マスカブル割込処理を実行し、またその割込処理の要求信号DBIに「1」が入力されると、デバッグ割込処理を実行する。   Each AND circuit 14a, 15a, 14b, 15b outputs "1" from its output unit only when "1" is input to all its input units. Each of the OR circuits 13a and 13b outputs "1" from its output unit only when "1" is input to one or more of its input units. When “1” is input to the interrupt processing request signal NMI, each CPU # 0, # 1 executes non-maskable interrupt processing, and “1” is input to the interrupt processing request signal INT. Then, the maskable interrupt process is executed, and when “1” is input to the request signal DBI of the interrupt process, the debug interrupt process is executed.

この構成により、例えば、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0のビット値を001,000と設定し、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0のビット値を001,000と設定した場合(モード1)は、以下の動作する。即ちCPUIDレジスタ9cにCPUIDとして#0が格納され、且つカウンタ9fが所定時間を計時し終えて「1」を出力すると、OR回路13bの出力部t24のみから「1」が出力され、その出力がCPU#1の割込処理の要求信号NMIに入力されて、CPU#1によりノンマスカブル割込処理が実行される。他方、CPUIDレジスタ9cにCPUIDとして#1が格納され、且つカウンタ9fが所定時間を計時し終えて「1」を出力すると、OR回路13aの出力部t12のみから「1」が出力され、その出力がCPU#0の割込処理の要求信号NMIに入力されて、CPU#0によりノンマスカブル割込処理が実行される。   With this configuration, for example, the bit values of the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9d are set to 001,000, and the bit values of the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9e are set. When 00 is set to 001,000 (mode 1), the following operation is performed. That is, when the CPU ID register 9c stores # 0 as the CPU ID and the counter 9f finishes measuring the predetermined time and outputs “1”, “1” is output only from the output unit t24 of the OR circuit 13b, and the output is The CPU # 1 is input to the interrupt request signal NMI of the CPU # 1, and the non-maskable interrupt process is executed by the CPU # 1. On the other hand, when # 1 is stored as the CPUID in the CPUID register 9c and the counter 9f finishes measuring the predetermined time and outputs “1”, “1” is output only from the output part t12 of the OR circuit 13a, and its output Is input to the interrupt signal request signal NMI of the CPU # 0, and the non-maskable interrupt process is executed by the CPU # 0.

<割り込み制御レジスタ9d,9eの仕様>
割り込み制御レジスタ9d,9eは、図4の様に、32ビットのデータが格納可能に構成されている。割り込み制御レジスタ9d,9eのビット位置b31〜b6にはそれぞれ、例えば0が固定で設定されている。各ビット位置b31〜b6は、読み出し(R)および書き込み(W)もできない様になっている。ビット位置b5〜b3には、000,001,010,100の何れかのビット列が格納される。各ビット位置b5〜b3は、読み出し(R)および書き込み(W)が可能になっている。
<Specifications of interrupt control registers 9d and 9e>
The interrupt control registers 9d and 9e are configured to store 32-bit data as shown in FIG. For example, 0 is fixedly set in the bit positions b31 to b6 of the interrupt control registers 9d and 9e. Each bit position b31 to b6 cannot be read (R) and written (W). In the bit positions b5 to b3, any bit string of 000,001,010,100 is stored. Each bit position b5 to b3 can be read (R) and written (W).

尚、ビット位置b5〜b3に000,001,010または100が格納された場合に実行される割込処理およびその割込処理を実行するCPUは、図4の機能の欄の通りである。またビット位置b2〜b0に000,001,010または100が格納された場合に実行される割込処理およびその割込処理を実行するCPUも、図4の機能の欄の通りである。   The interrupt process executed when 000,001,010 or 100 is stored in bit positions b5 to b3 and the CPU that executes the interrupt process are as shown in the function column of FIG. The interrupt processing executed when 000,001,010 or 100 is stored in bit positions b2 to b0 and the CPU that executes the interrupt processing are also as shown in the function column of FIG.

<割り込み制御レジスタ9d,9eへの設定データの設定例>
図5は、割り込み制御レジスタ9d,9eの各ビット位置b5〜b3,b2〜b0に設定するビット値(設定データ)の例と、それら各設定の場合に実行される割込処理の種類およびその割込処理を実行するCPUとの対応表を示したものである。
<Example of setting data to interrupt control registers 9d and 9e>
FIG. 5 shows examples of bit values (setting data) set in the bit positions b5 to b3 and b2 to b0 of the interrupt control registers 9d and 9e, types of interrupt processing executed in the case of each setting, and The correspondence table | surface with CPU which performs an interruption process is shown.

モード1では、上述の通り、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には001,000が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には001,000が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセス中で発生した場合は、CPU#0のみにノンマスカブル割込要求信号を出力し、(他のCPU#1には割込要求信号を出力しない。)、他方、CPU#1のアクセス中で発生した場合は、CPU#1のみにノンマスカブル割込要求信号を出力する(他のCPU#0には割込要求信号を出力しない。)。   In mode 1, as described above, 001,000 is set in the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9d, and 001 is set to the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9e. , 000 is set. In this mode, when the counter 9f finishes counting the predetermined time, if it occurs during the access of the CPU # 0, a non-maskable interrupt request signal is output only to the CPU # 0 (the other CPU # 1 is interrupted). On the other hand, if it occurs during the access of CPU # 1, a non-maskable interrupt request signal is output only to CPU # 1 (an interrupt request signal is output to other CPU # 0) do not do.).

モード2では、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には010,000が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には010,000が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセス中で発生した場合は、CPU#0のみにマスカブル割込要求信号を出力し(他のCPU#1には割込要求信号を出力しない。)、他方、CPU#1のアクセス中で発生した場合は、CPU#1にのみにマスカブル割込要求信号を出力する(他のCPU#0には割込要求信号を出力しない。)。   In mode 2, 010,000 is set to the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9d, and 010,000 is set to the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9e. Is done. In this mode, when the counter 9f finishes counting the predetermined time, if it occurs during the access of the CPU # 0, a maskable interrupt request signal is output only to the CPU # 0 (the other CPU # 1 has an interrupt). On the other hand, if it occurs during the access of CPU # 1, a maskable interrupt request signal is output only to CPU # 1 (an interrupt request signal is output to other CPU # 0) do not do.).

モード3では、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には100,000が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には100,000が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセス中で発生した場合は、CPU#0のみにデバッグ割込要求信号を出力し(他のCPU#1には割込要求信号を出力しない。)、他方、CPU#1のアクセスで発生した場合は、CPU#1にデバッグ割込要求信号を出力する(他のCPU#0には割込要求信号を出力しない。)。   In mode 3, 100,000 is set to each bit position b5 to b3 and b2 to b0 of the interrupt control register 9d, and 100,000 is set to each bit position b5 to b3 and b2 to b0 of the interrupt control register 9e. Is done. In this mode, when the counter 9f finishes counting the predetermined time, if it occurs during the access of the CPU # 0, a debug interrupt request signal is output only to the CPU # 0 (the other CPU # 1 has an interrupt). On the other hand, if it occurs due to access by CPU # 1, a debug interrupt request signal is output to CPU # 1 (no interrupt request signal is output to other CPU # 0). .

モード4では、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には001,001が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には001,001が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセスで発生した場合も、CPU#1のアクセスで発生した場合も、全てのCPU#0,#1にノンマスカブル割込要求信号を出力する。   In mode 4, 001,001 is set in the bit positions b5-b3, b2-b0 of the interrupt control register 9d, and 001,001 is set in the bit positions b5-b3, b2-b0 of the interrupt control register 9e. Is done. In this mode, when the counter 9f finishes counting the predetermined time, a non-maskable interrupt request is issued to all the CPUs # 0 and # 1 regardless of whether the access is caused by the access from the CPU # 0 or the access from the CPU # 1. Output a signal.

モード5では、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には010,010が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には010,010が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセスで発生した場合も、CPU#0のアクセスで発生した場合も、全てのCPU#0,#1にマスカブル割込要求信号を出力する。   In mode 5, 010 and 010 are set to the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9d, and 010 and 010 are set to the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9e. Is done. In this mode, when the counter 9f finishes measuring the predetermined time, a maskable interrupt request is issued to all the CPUs # 0 and # 1 regardless of whether the access is caused by the access of the CPU # 0 or the access of the CPU # 0. Output a signal.

モード6では、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には100,100が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には100,100が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセスで発生した場合も、CPU#1のアクセスで発生した場合も、全てのCPU#0,#1にデバッグ割込要求信号を出力する。   In mode 6, 100 and 100 are set to the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9d, and 100 and 100 are set to the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9e. Is done. In this mode, when the counter 9f finishes counting the predetermined time, a debug interrupt request is issued to all the CPUs # 0 and # 1 regardless of whether the access is caused by the access from the CPU # 0 or the access from the CPU # 1. Output a signal.

モード7では、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には001,010が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には001,010が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセスで発生した場合は、CPU#0にはノンマスカブル割込要求信号を出力し、他のCPU#1にはマスカブル割込要求信号を出力し、他方、CPU#1のアクセスで発生した場合は、CPU#1にはノンマスカブル割込要求信号を出力し、他のCPU#0にはマスカブル割込要求信号を出力する。   In mode 7, 001,010 is set to each bit position b5 to b3, b2 to b0 of the interrupt control register 9d, and 001,010 is set to each bit position b5 to b3, b2 to b0 of the interrupt control register 9e. Is done. In this mode, when the counter 9f finishes measuring the predetermined time, if it occurs due to the access of CPU # 0, a non-maskable interrupt request signal is output to CPU # 0 and a maskable interrupt is sent to the other CPU # 1. When a request signal is output and, on the other hand, the CPU # 1 generates an access, a non-maskable interrupt request signal is output to the CPU # 1, and a maskable interrupt request signal is output to the other CPU # 0.

モード8では、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には100,010が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には100,010が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセスで発生した場合は、CPU#0にはデバッグ割込要求信号を出力し、他のCPU#1にはマスカブル割込要求信号を出力し、他方、CPU#1のアクセスで発生した場合は、CPU#1もはデバッグ割込要求信号を出力し、他のCPU#0にはマスカブル割込要求信号を出力する。   In mode 8, 100 and 010 are set to the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9d, and 100 and 010 are set to the bit positions b5 to b3 and b2 to b0 of the interrupt control register 9e. Is done. In this mode, when the counter 9f finishes measuring the predetermined time, if it occurs due to the access of CPU # 0, a debug interrupt request signal is output to CPU # 0, and a maskable interrupt is sent to the other CPU # 1. When a request signal is output, on the other hand, when the CPU # 1 is accessed, the CPU # 1 also outputs a debug interrupt request signal, and outputs a maskable interrupt request signal to the other CPU # 0.

<マルチコアLSI1の動作説明>
まず本発明の特徴を理解するための参考として、図6〜図8に基づき、例えば2個のCPU#0,#1を有する従来型のマルチコアLSIの動作の概要を説明する。
<Description of operation of multi-core LSI 1>
First, as a reference for understanding the features of the present invention, an outline of the operation of a conventional multi-core LSI having, for example, two CPUs # 0 and # 1 will be described with reference to FIGS.

ここでは、CPU#0による処理A、CPU#1による処理B、CPU#0による処理C、CPU#1による処理Dがこの順に行われる場合で説明する。   Here, a case will be described where processing A by CPU # 0, processing B by CPU # 1, processing C by CPU # 0, and processing D by CPU # 1 are performed in this order.

尚、処理Aは、アドレスAAのモジュールに保存されたデータDAを読み出す処理である。処理Bは、アドレスABのモジュールにデータDBを書き込む処理である。処理Cは、アドレスACのモジュールにデータDCを書き込む処理である。処理Dは、アドレスADのモジュールに保存されたデータDDを読み出す処理である。   The process A is a process of reading the data DA stored in the module at the address AA. The process B is a process for writing the data DB into the module at the address AB. Process C is a process of writing data DC to the module of address AC. The process D is a process for reading the data DD stored in the module at the address AD.

まず図6に基づき正常時の動作を説明する。まず処理AがCPU#0により実行される。即ちCPU#0から共有バスに、アクセス要求信号として、CPUIDとして#0、コマンドとして読み出し(Read)、アドレスとしてAAが出力される(図6のT1)。そして、そのアクセス要求信号がアドレスAAのモジュールに取得されると(図6のT2)、そのモジュールから共有バスに、読出対象のデータDAおよびそのアクセス要求信号に対する応答信号r1が出力され(図6のT3)、そのデータDAと共に応答信号r1がCPU#0に取得されると、処理Aが終了し、次の処理BがCPU#1により同様に実行される。そしてアドレスABのモジュールから、処理Bのアクセス要求信号に対する応答信号r2が出力されると(図6のT4)、処理Bの処理が終了して次の処理Cが同様に実行され、処理Cのアクセス要求信号a3に対する応答信号r3が出力されると、処理Cの処理が終了して次の処理Dが同様に実行される(図8(a)参照)。   First, the normal operation will be described with reference to FIG. First, the process A is executed by the CPU # 0. That is, the CPU # 0 outputs # 0 as the CPUID, Read as the command (Read), and AA as the address (T1 in FIG. 6) as an access request signal to the shared bus. When the access request signal is acquired by the module at address AA (T2 in FIG. 6), the data DA to be read and the response signal r1 to the access request signal are output from the module to the shared bus (FIG. 6). T3), when the response signal r1 is acquired by the CPU # 0 together with the data DA, the process A ends, and the next process B is similarly executed by the CPU # 1. When the response signal r2 to the access request signal for the process B is output from the module at the address AB (T4 in FIG. 6), the process B is completed and the next process C is executed in the same manner. When the response signal r3 to the access request signal a3 is output, the process C is finished and the next process D is executed in the same manner (see FIG. 8A).

この様な従来型のマルチコアLSIでは、図7および図8(b)の様に、例えば処理BがCPU#1により実行された場合において、その際のアクセス要求信号に対する応答信号r2が、バグ等の何らかの原因によりアクセス先のモジュールから出力されない場合は、処理Bが終了できず、次の処理Cが実行できなくなり、動作が停止する。この様に、バグ等を含む処理が実行されてアクセス先から応答信号が出力されないと、その処理を実行したCPU(例えば#1)が共有バスを長期に占有し、他の問題の無いCPU(例えば#0)が次の処理を実行できなくなり、当該マルチコアLSIの動作が停止する。   In such a conventional multi-core LSI, as shown in FIG. 7 and FIG. 8B, for example, when the process B is executed by the CPU # 1, the response signal r2 to the access request signal at that time is a bug or the like. If it is not output from the access destination module for some reason, the process B cannot be completed, the next process C cannot be executed, and the operation stops. In this way, if a process including a bug or the like is executed and a response signal is not output from the access destination, the CPU (for example, # 1) that executed the process occupies the shared bus for a long time, and other CPUs that have no problem ( For example, # 0) cannot execute the next process, and the operation of the multi-core LSI stops.

また従来型のマルチコアLSIでは、上記の様に動作が停止した場合、CPUが複数有るので、シングルコアLSIの様に簡単に、どのCPU#0,#1のどのアクセスにより動作が停止したのか(即ちバグ等が発生したのか)を特定するのが困難である。   In the conventional multi-core LSI, when the operation is stopped as described above, since there are a plurality of CPUs, which CPU # 0, # 1 has stopped the operation as easily as in the single-core LSI ( That is, it is difficult to specify whether a bug or the like has occurred.

次に図1および図9に基づき、この実施の形態に係るマルチコアLSI1の動作を説明する。   Next, based on FIG. 1 and FIG. 9, the operation of the multi-core LSI 1 according to this embodiment will be described.

上述と同様、CPU#0による処理A、CPU#1による処理B、CPU#0による処理C、CPU#1による処理Dがこの順に行われる場合で説明する。各処理A,B,C,Dの内容は、上述と同じである。   As described above, the case where the process A by the CPU # 0, the process B by the CPU # 1, the process C by the CPU # 0, and the process D by the CPU # 1 are performed in this order will be described. The contents of each process A, B, C, D are the same as described above.

まず処理AがCPU#0により実行される。即ちCPU#0から共有バスb1に、アクセス要求信号として、CPUIDとして#0、コマンドとして読み出し(read)、アドレスとしてAAが出力される(図9のS1)。   First, the process A is executed by the CPU # 0. In other words, the CPU # 0 outputs # 0 as the CPU ID, read as the command, and AA as the address as an access request signal to the shared bus b1 (S1 in FIG. 9).

そして共有バスb1に出力された前記アクセス要求信号は、共有バス制御部3に取得されて共有バスb2に出力される。そして共有バスb2に出力された前記アクセス要求信号は、アドレスAAのモジュール(例えばm1)に取得されると共に、そのコマンド(read)がシステムコントローラ9により取得される。そしてシステムコントローラ9では、上記のコマンドの取得により、カウンタ9fによる所定時間の計時が開始される(ここでは15から0まで計時される)(図9のS2)。   The access request signal output to the shared bus b1 is acquired by the shared bus control unit 3 and output to the shared bus b2. The access request signal output to the shared bus b2 is acquired by the module (for example, m1) at the address AA, and the command (read) is acquired by the system controller 9. Then, the system controller 9 starts counting a predetermined time by the counter 9f by acquiring the above command (here, counting from 15 to 0) (S2 in FIG. 9).

そしてカウンタ9fが所定時間を計時し終える前に、アドレスAAのモジュールm1から、共有バスb2に前記アクセス要求信号に対する応答信号および読出対象のデータDAが出力されると共に専用配線11を通じてシステムコントローラ9に応答信号が出力されると(図9のS3)、 その応答信号が入力されたシステムコントローラ9では、バグ等による共有バスb1,b2のハングアップは無いと判定され、カウンタ9fによる所定時間の計時が中止される(図9のS4)。   Before the counter 9f finishes counting the predetermined time, the response signal to the access request signal and the data DA to be read are output to the shared bus b2 from the module m1 at the address AA and to the system controller 9 through the dedicated wiring 11. When the response signal is output (S3 in FIG. 9), the system controller 9 to which the response signal is input determines that there is no hang-up of the shared buses b1 and b2 due to a bug or the like, and counts a predetermined time by the counter 9f. Is canceled (S4 in FIG. 9).

また、アドレスAAのモジュールm1から共有バスb2に出力された応答信号およびデータDAは、共有バス制御部3に取得されて共有バスb1に出力されてアクセス中のCPU#0に取得され、処理Aが終了する。   The response signal and the data DA output from the module m1 at the address AA to the shared bus b2 are acquired by the shared bus control unit 3 and output to the shared bus b1, and are acquired by the accessing CPU # 0 to process A. Ends.

そして次の処理BがCPU#1により実行される。即ち処理Aと同様に、CPU#1から共有バスb1にアクセス要求信号が出力される(図9のS5)。そのアクセス要求信号は、共有バス制御部3に取得されて共有バスb2に出力され、アドレスABのモジュール(例えはm2)に取得されると共に、そのコマンド(write)がシステムコントローラ9により取得される。そしてシステムコントローラ9では、上記のコマンドの取得により、カウンタ9fによる所定時間の計時が開始される(図9のS6)。   Then, the next process B is executed by CPU # 1. That is, similarly to the process A, an access request signal is output from the CPU # 1 to the shared bus b1 (S5 in FIG. 9). The access request signal is acquired by the shared bus control unit 3 and output to the shared bus b2, and is acquired by the module (eg, m2) of the address AB, and the command (write) is acquired by the system controller 9. . The system controller 9 starts counting a predetermined time by the counter 9f by acquiring the above command (S6 in FIG. 9).

そして、アドレスABのモジュールm2から、共有バスb2に前記アクセス要求信号に対する応答信号および読出対象のデータDAが出力されると共に専用配線11を通じてシステムコントローラ9に応答信号が出力される前に、カウンタ9fにより所定時間が計時し終わると(図9のS7)、その旨の信号(タイムアウト信号)がカウンタ9gから出力され(図9のS8)、その出力により、システムコントローラ9により、バグ等の発生により共有バスb1,b2がハングアップしたと判定される。   Then, before the response signal to the access request signal and the data DA to be read are output to the shared bus b2 from the module m2 at the address AB and before the response signal is output to the system controller 9 through the dedicated wiring 11, the counter 9f When the predetermined time has been counted (S7 in FIG. 9), a signal to that effect (timeout signal) is output from the counter 9g (S8 in FIG. 9), and due to the output, the system controller 9 causes a bug or the like. It is determined that the shared buses b1 and b2 are hung up.

そしてこの判定により、システムコントローラ9から共有バス制御部3に例えば専用配線12を通じて疑似応答信号が出力され(図9のS9)、その疑似応答信号が共有バス制御部3から共通バスb1に出力されてアクセス中のCPU#1に取得され、処理Bが強制的に終了される。そして次の処理CがCPU#0により実行される(図9のS12)。   Based on this determination, a pseudo response signal is output from the system controller 9 to the shared bus control unit 3 through, for example, the dedicated wiring 12 (S9 in FIG. 9), and the pseudo response signal is output from the shared bus control unit 3 to the common bus b1. Is obtained by the accessing CPU # 1, and the process B is forcibly terminated. Then, the next process C is executed by the CPU # 0 (S12 in FIG. 9).

また上記の判定により、システムコントローラ9により、共有バスb2から前記アクセス要求信号のアドレス(AB)、コマンド(書き込み(write))およびCPUID(#1)が取得され、それぞれシステムコントローラ9の各レジスタ9a,9b,9cに格納される(図9のS10)。   Also, by the above determination, the address (AB), command (write) and CPUID (# 1) of the access request signal are acquired from the shared bus b2 by the system controller 9, and each register 9a of the system controller 9 is obtained. , 9b, 9c (S10 in FIG. 9).

そしてシステムコントローラ9により、CPUIDレジスタ9cに格納された上記のCPUIDおよび割り込み制御レジスタ9d,9eに予め格納された設定データに応じて、各CPU#0,#1の割り込み入力信号であるNMI,DBI,INTに対して割込処理の要求信号が出力される(図9のS11)。そして、この割込要求信号により、CPU#0,#1に各種の割込処理が実行される。そして同様にして順次次の処理C,Dが実行される。   Then, according to the CPUID stored in the CPUID register 9c and the setting data stored in the interrupt control registers 9d and 9e in advance by the system controller 9, NMI, DBI which are interrupt input signals of the CPUs # 0 and # 1 , INT, an interrupt processing request signal is output (S11 in FIG. 9). Then, various interrupt processes are executed on the CPUs # 0 and # 1 by this interrupt request signal. Similarly, the following processes C and D are sequentially executed.

この様に、この実施の形態に係るマルチコアLSI1では、従来型のマルチコアLSIと比べて、アクセス要求信号が共有バスb2に出力されてから所定時間経過するまでに、アクセス先のモジュールから当該アクセス要求信号に対する応答信号が出力されない場合は、システムコントローラ9から疑似応答信号が出力され、その疑似応答信号によりアクセス中のCPU#0,#1の当該アクセスが強制的に終了させられて次の処理が実行されるので、マルチコアLSI1の動作が停止する事を防止できる。   As described above, in the multi-core LSI 1 according to this embodiment, the access request module receives the access request from the access-destination module until a predetermined time elapses after the access request signal is output to the shared bus b2, as compared with the conventional multi-core LSI. When a response signal to the signal is not output, a pseudo response signal is output from the system controller 9, and the access of the CPUs # 0 and # 1 being accessed is forcibly terminated by the pseudo response signal, and the next processing is performed. Since it is executed, it is possible to prevent the operation of the multi-core LSI 1 from stopping.

また疑似応答信号の他に、システムコントローラ9からCPU#0,#1に各種の割込処理の要求信号が出力されるので、CPU#0,#1によるその割込処理の実行箇所を確認することで、バグ等の発生により共有バスb1,b2がハングアップした場合に、どのCPU#0,#1のどのアクセスによりハングアップが発生したかを特定できる。   In addition to the pseudo response signal, various interrupt processing request signals are output from the system controller 9 to the CPUs # 0 and # 1, so that the execution locations of the interrupt processing by the CPUs # 0 and # 1 are confirmed. Thus, when the shared buses b1 and b2 hang up due to the occurrence of a bug or the like, it is possible to specify which access of which CPU # 0 and # 1 caused the hangup.

<主要な効果>
以上の様に構成されたマルチコアLSI1によれば、システムコントローラ9は、共有バス制御部3から共有バスb2にアクセス要求信号が出力されてから所定時間経過するまでに、アクセス先のモジュールm1〜mnまたは外部バス制御部9から応答信号が出力されない場合は、共有バス制御部3を介して共有バスb1に疑似応答信号を出力して、アクセス中のCPU#0または#1の当該アクセスを終了させる。これにより、バグ等の発生により、アクセス先のモジュールから応答信号が出力されない場合でも、アクセス中のCPU#0または#1が共有バスb1,b2を長期に占有してマルチコアLSI1の動作が停止する事を防止でき、マルチコアLSIの動作の安定性を向上できる。
<Main effects>
According to the multi-core LSI 1 configured as described above, the system controller 9 allows the access destination modules m1 to mn until a predetermined time elapses after the access request signal is output from the shared bus control unit 3 to the shared bus b2. Alternatively, if no response signal is output from the external bus control unit 9, a pseudo response signal is output to the shared bus b1 via the shared bus control unit 3, and the access of the CPU # 0 or # 1 being accessed is terminated. . As a result, even when a response signal is not output from the access destination module due to the occurrence of a bug or the like, the accessing CPU # 0 or # 1 occupies the shared buses b1 and b2 for a long time and the operation of the multicore LSI 1 is stopped Can be prevented, and the operation stability of the multi-core LSI can be improved.

またシステムコントローラ9は、共有バス制御部3から共有バスb2にアクセス要求信号が出力されてから所定時間経過するまでに、アクセス先のモジュールm1〜mnまたは外部バス制御部9から応答信号が出力されない場合は、更に、当該アクセス中のCPU#0または#1に割込処理を実行させる。これにより、当該CPU#0または#1によるその割込処理の実行箇所を確認することで、バグ等が発生して共有バスb1,b2がハングアップした場合に、どのCPU#0,#1のどのアクセスによりバグ等が発生したかを特定でき、プログラムの開発効率を向上できる。   Further, the system controller 9 does not output a response signal from the access destination modules m1 to mn or the external bus control unit 9 until a predetermined time elapses after the access request signal is output from the shared bus control unit 3 to the shared bus b2. In this case, the CPU # 0 or # 1 that is being accessed is further caused to execute an interrupt process. As a result, by checking the execution location of the interrupt processing by the CPU # 0 or # 1, when a bug or the like occurs and the shared bus b1 or b2 hangs up, which CPU # 0 or # 1 It is possible to identify which access caused a bug and improve program development efficiency.

またシステムコントローラ9は、割込処理として、当該アクセス中のCPU#0または#1にノンマスカブル割込処理、マスカブル割込処理またはデバック割込処理を実行させる。これにより、割込処理の種類に応じて割込処理の優先度を設定できる。   Further, the system controller 9 causes the accessing CPU # 0 or # 1 to execute non-maskable interrupt processing, maskable interrupt processing, or debug interrupt processing as the interrupt processing. Thereby, the priority of an interruption process can be set according to the kind of interruption process.

またシステムコントローラ9は、共有バス制御部3から共有バスb2にアクセス要求信号が出力されてから所定時間経過するまでに、アクセス先のモジュールm1〜mnまたは外部バス制御部9から応答信号が出力されない場合は、全てのCPU#0,#1に割込処理を実行させる。これにより、バグ等が発生したCPUだけでなく正常なCPUによるその割込処理の実行箇所を確認することで、バグ等が発生して共有バスb1,b2がハングアップした場合に、どのCPU#0,#1のどのアクセスによりバグ等が発生したかを一層容易に特定でき、プログラムの開発効率を向上できる。   Further, the system controller 9 does not output a response signal from the access destination modules m1 to mn or the external bus control unit 9 until a predetermined time elapses after the access request signal is output from the shared bus control unit 3 to the shared bus b2. In this case, all CPUs # 0 and # 1 are caused to execute an interrupt process. As a result, by checking not only the CPU in which the bug etc. has occurred but also the execution location of the interrupt processing by a normal CPU, when the bug etc. occurs and the shared buses b1, b2 hang up, which CPU # It is possible to more easily identify which access of 0 and # 1 caused a bug and the like, and improve program development efficiency.

またシステムコントローラ9において、上記の割込処理として、当該アクセス中のCPU#0または#1にはノンマスカブル割込処理を実行させ、他のCPU#1または#0にはマスカブル割込処理を実行させる様に設定できる。これにより、バグ等の発生したCPUかまたは正常なCPUかに応じて、割込処理の優先度を変えることができる。   In the system controller 9, as the above-described interrupt processing, the CPU # 0 or # 1 that is being accessed is caused to execute non-maskable interrupt processing, and the other CPU # 1 or # 0 is caused to execute maskable interrupt processing. Can be set as follows. As a result, the priority of interrupt processing can be changed depending on whether the CPU has a bug or the like or is a normal CPU.

またシステムコントローラ9において、上記の割込処理として、当該アクセス中のCPU#0または#1にはデバッグ割込処理を実行させ、他のCPU#1または#0にはマスカブル割込処理を実行させる様にできる。これにより、バグ等の発生したCPUかまたは正常なCPUかに応じて、割込処理の優先度を変えることができる。   Further, in the system controller 9, as the above-described interrupt processing, the CPU # 0 or # 1 being accessed executes debug interrupt processing, and the other CPU # 1 or # 0 executes maskable interrupt processing. I can do it. As a result, the priority of interrupt processing can be changed depending on whether the CPU has a bug or the like or is a normal CPU.

またシステムコントローラ9において、共有バス制御部3から共有バスb2にアクセス要求信号が出力されてから所定時間経過するまでに、アクセス先のモジュールm1〜mnまたは外部バス制御部5から応答信号が出力されない場合は、更に、アクセス中のCPU#0または#1が当該アクセスの際に出力したCPUID、読み出し・書き込みのコマンドおよびアドレスのうちの少なくとも1つ(動作説明では例えば3つとも保存する場合で説明した。)を保存する。これにより、バグ等が発生して共有バスb1,b2がハングアップした場合に、その保存したCPUID、コマンドまたはアドレスにより、どのCPU#0,#1のどのアクセスによりバグ等が発生したかを一層容易に特定でき、プログラムの開発効率を向上できる。   In the system controller 9, no response signal is output from the access destination modules m 1 to mn or the external bus control unit 5 until a predetermined time elapses after the access request signal is output from the shared bus control unit 3 to the shared bus b 2. In this case, at least one of the CPU ID, the read / write command, and the address output by the accessing CPU # 0 or # 1 at the time of the access (in the description of operation, for example, the case where all three are stored is described). Saved). Thus, when a bug or the like occurs and the shared buses b1 and b2 hang up, it is further determined which access of which CPU # 0 and # 1 caused the bug or the like by the stored CPUID, command or address. It can be easily identified and program development efficiency can be improved.

またシステムコントローラ9は、所定の外部装置からの終了要求信号を受けた場合には、カウンタ9fによる当該所定時間が経過する前でも、共有バス制御部3を介して共有バスb1に疑似応答信号を出力して、アクセス中のCPU#0または#1の当該アクセスを終了させる。これにより、所定の外部装置からの終了要求信号により、当該所定時間が経過する前でも、アクセス中のCPU#0または#1の当該アクセスを強制終了させる事ができる。   When the system controller 9 receives an end request signal from a predetermined external device, the system controller 9 sends a pseudo response signal to the shared bus b1 via the shared bus control unit 3 even before the predetermined time by the counter 9f elapses. The access is terminated by the CPU # 0 or # 1 being accessed. Thus, the access of the CPU # 0 or # 1 being accessed can be forcibly terminated even by the end request signal from the predetermined external device even before the predetermined time has elapsed.

実施の形態2.
上記のマルチコアLSIの構成は、共有バスb1,b2がパケットトランザクション又はスプリットトランザクションのバス構成である場合においても有効である。
Embodiment 2. FIG.
The above-described multi-core LSI configuration is effective even when the shared buses b1 and b2 are packet transaction or split transaction bus configurations.

これらのバス構成では、例えばCPU#0が共有バスb1を介してメモリ等にアクセスをする場合、メモリへのアクセスコマンドの発行をする際に共有バスb1のバス権を確保してアクセスコマンドを発行し、一旦共有バスb1のバス権を開放する。そのため、他のCPU#1はバス権解放後の共有バスb1にアクセスをすることが可能になる。   In these bus configurations, for example, when CPU # 0 accesses a memory or the like via the shared bus b1, when issuing an access command to the memory, the bus right of the shared bus b1 is secured and the access command is issued. Then, the bus right of the shared bus b1 is once released. Therefore, the other CPU # 1 can access the shared bus b1 after the bus right is released.

この場合、CPU#0へのメモリアクセスが不正なアドレスへのアクセスであり、上記の共有バスb1又はb2がハングアップするような場合であっても、CPU#1は共有バスb1及びb2へアクセスをすることが可能である。しかしながらかかる場合であっても、例えばSMP(Symmetric Multi Processing)構成である場合は、CPU#0がメモリからの応答待ちとして停止しているためにCPU#0の処理が完了せず、CPU#1で実行する処理にも影響を生じることになる。   In this case, even if the memory access to the CPU # 0 is an illegal address access and the shared bus b1 or b2 hangs up, the CPU # 1 accesses the shared buses b1 and b2. It is possible to However, even in such a case, for example, in the case of an SMP (Symmetric Multi Processing) configuration, the processing of CPU # 0 is not completed because CPU # 0 is stopped waiting for a response from the memory. This also has an effect on the processing to be executed.

システムコントローラ9がCPU#0でのメモリアクセスに対して擬似応答信号を発行することによりCPU#0が停止状態から回復し、CPU#0は正しいアドレスを指定してのメモリアクセスの再発行を行うことが可能となり、マルチコアLSI全体としてのシステム安定を維持することが可能になる。またそのような不正なメモリアクセスが頻発していることがその保存したCPUID、コマンドまたはアドレスにより判明することから、どのCPU#0,#1のどのアクセスによりバグ等が発生したかを一層容易に特定でき、プログラムの開発効率を向上できる。   When the system controller 9 issues a pseudo response signal to the memory access by the CPU # 0, the CPU # 0 recovers from the stopped state, and the CPU # 0 reissues the memory access by designating a correct address. This makes it possible to maintain system stability as a whole multi-core LSI. In addition, since it is found from the stored CPUID, command, or address that such illegal memory accesses frequently occur, it is easier to determine which CPU # 0, # 1 caused a bug or the like. It can be identified and program development efficiency can be improved.

この発明は、複数のCPUを同一のLSI上に搭載したマルチコアLSIに利用可能であり、デバッガによるデバッグ時だけでなく、通常動作時にも有効である。   The present invention can be used in a multi-core LSI in which a plurality of CPUs are mounted on the same LSI, and is effective not only during debugging by a debugger but also during normal operation.

1 マルチコアLSI、3 共有バス制御部、5 外部バス制御部、7 割り込みコントローラ、9 システムコントローラ、9a アドレスレジスタ、9b コマンドレジスタ、9c CPUIDレジスタ、9d,9e 割り込み制御レジスタ、9f カウンタ、9g 制御部、10a CPU#0の入力部NMIへの割込処理の要求信号の出力を制御する部分の論理回路、10b CPU#1の入力部NMIへの割込処理の要求信号の出力を制御する部分の論理回路、11,12 専用配線、13a,13b OR回路、14a,14b,15a,15b AND回路、#0,#1 CPU、b1,b2 共有バス、gb 外部バス、m1〜mn モジュール、L1 1次キャッシュ、L2 2次キャッシュ、q1 アドレスバス、q2 コマンドバス、q3 データバス、q4 CPUIDバス。   1 multi-core LSI, 3 shared bus control unit, 5 external bus control unit, 7 interrupt controller, 9 system controller, 9a address register, 9b command register, 9c CPUID register, 9d, 9e interrupt control register, 9f counter, 9g control unit, 10a Logic circuit for controlling the output of a request signal for interrupt processing to the input unit NMI of CPU # 0, 10b Logic for the portion controlling the output of a request signal for interrupt processing to the input unit NMI of CPU # 1 Circuit, 11, 12 dedicated wiring, 13a, 13b OR circuit, 14a, 14b, 15a, 15b AND circuit, # 0, # 1 CPU, b1, b2 shared bus, gb external bus, m1-mn module, L1 primary cache L2 secondary cache, q1 address bus, q2 command bus, 3 data bus, q4 CPUID bus.

Claims (4)

第1の共有バスに接続された複数のCPUと、
第2の共有バスに接続された1個以上のモジュールと、
前記第1の共有バスと前記第2の共有バスとの間に接続され、前記複数のCPUの前記モジュールへのアクセスを調停する共有バス制御部と、
アクセス先の前記モジュールから、前記CPUのアクセス要求信号に対する応答信号が出力されたか否かを監視するシステムコントローラとを備え、
前記システムコントローラは、前記共有バス制御部から前記第2の共有バスに前記アクセス要求信号が出力されてから所定時間経過するまでに、前記アクセス先のモジュールから前記応答信号が出力されない場合は、前記共有バス制御部を介して前記第1の共有バスに疑似応答信号を出力して、アクセス中の前記CPUの当該アクセスを終了させると共に、異なる割込処理を其々実行可能な前記アクセス中のCPUと他のCPUとの其々に対して、其々が前記異なる割込処理を実行するための割込み通知の発行を可能とすることを特徴とするマルチコアLSI。
A plurality of CPUs connected to the first shared bus;
One or more modules connected to the second shared bus;
A shared bus control unit that is connected between the first shared bus and the second shared bus and arbitrates access to the modules of the plurality of CPUs;
A system controller that monitors whether a response signal to the CPU access request signal is output from the access destination module;
The system controller, when the response signal is not output from the access destination module until a predetermined time has elapsed after the access request signal is output from the shared bus control unit to the second shared bus, The accessing CPU that outputs a pseudo response signal to the first shared bus via the shared bus control unit, terminates the access of the CPU being accessed, and can execute different interrupt processing. And a multi-core LSI, each of which can issue an interrupt notification for executing the different interrupt processing .
前記システムコントローラは、前記割込処理として、前記アクセス中のCPUにノンマスカブル割込処理、マスカブル割込処理またはデバック割込処理を実行させることを特徴とする請求項1に記載のマルチコアLSI。   The multi-core LSI according to claim 1, wherein the system controller causes the accessing CPU to execute a non-maskable interrupt process, a maskable interrupt process, or a debug interrupt process as the interrupt process. 前記システムコントローラは、前記割込処理として、前記アクセス中のCPUにはデバッグ割込処理を実行させ、他の前記CPUにはマスカブル割込処理を実行させることを特徴とする請求項2に記載のマルチコアLSI。   3. The system controller according to claim 2, wherein the system controller causes the accessing CPU to execute a debug interrupt process and causes the other CPUs to execute a maskable interrupt process as the interrupt process. Multi-core LSI. 前記システムコントローラは、前記共有バス制御部から前記第2の共有バスに前記アクセス要求信号が出力されてから所定時間経過するまでに、前記アクセス先のモジュールから前記応答信号が出力されない場合は、更に、前記アクセス中のCPUが当該アクセスの際に出力したCPUID、読み出し・書き込みのコマンドおよびアドレスのうちの少なくとも1つを保存することを特徴とする請求項1乃至請求項3のいずれかに記載のマルチコアLSI。   The system controller may further include a case where the response signal is not output from the access destination module until a predetermined time elapses after the access request signal is output from the shared bus control unit to the second shared bus. 4. The storage device according to claim 1, wherein at least one of a CPU ID, a read / write command, and an address output by the accessing CPU at the time of the access is stored. Multi-core LSI.
JP2012165655A 2012-07-26 2012-07-26 Multi-core LSI Active JP5416257B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012165655A JP5416257B2 (en) 2012-07-26 2012-07-26 Multi-core LSI

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012165655A JP5416257B2 (en) 2012-07-26 2012-07-26 Multi-core LSI

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008033030A Division JP5054558B2 (en) 2008-02-14 2008-02-14 Multi-core LSI

Publications (2)

Publication Number Publication Date
JP2012248205A JP2012248205A (en) 2012-12-13
JP5416257B2 true JP5416257B2 (en) 2014-02-12

Family

ID=47468527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012165655A Active JP5416257B2 (en) 2012-07-26 2012-07-26 Multi-core LSI

Country Status (1)

Country Link
JP (1) JP5416257B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01138144U (en) * 1988-03-15 1989-09-21
JPH02289020A (en) * 1989-03-17 1990-11-29 Fujitsu Ltd Time-out processing system for information processor
JPH0581059A (en) * 1991-09-24 1993-04-02 Toshiba Corp Multiprocessor system
JPH1196084A (en) * 1997-09-16 1999-04-09 Anritsu Corp Fault detector

Also Published As

Publication number Publication date
JP2012248205A (en) 2012-12-13

Similar Documents

Publication Publication Date Title
CN100592271C (en) Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine
JP4222370B2 (en) Program for causing a computer to execute a debugging support apparatus and a debugging processing method
US8700835B2 (en) Computer system and abnormality detection circuit
US8495344B2 (en) Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
US9575816B2 (en) Deadlock/livelock resolution using service processor
JP6382446B2 (en) Method and circuit for deadlock avoidance
JP5054558B2 (en) Multi-core LSI
US20130061005A1 (en) Method for power optimized multi-processor synchronization
JP5756554B2 (en) Semiconductor device
JP2018538628A (en) Replay of partially executed instruction blocks in a processor-based system using a block atomic execution model
JP2006309276A (en) Debugging mechanism and debugging register
JP5416257B2 (en) Multi-core LSI
JP5269067B2 (en) Program execution device and control method thereof
US7552269B2 (en) Synchronizing a plurality of processors
US8032673B2 (en) Transaction ID filtering for buffered programmed input/output (PIO) write acknowledgements
US11392406B1 (en) Alternative interrupt reporting channels for microcontroller access devices
JP4818820B2 (en) Bus system, bus slave and bus control method
JP6089492B2 (en) SYSTEM CONTROL DEVICE, INFORMATION PROCESSING SYSTEM, SYSTEM CONTROL DEVICE CONTROL METHOD, AND SYSTEM CONTROL DEVICE CONTROL PROGRAM
JP6992295B2 (en) Electronic device
JP2006185365A (en) Semiconductor device and debugging method
US9342359B2 (en) Information processing system and information processing method
JP2011180840A (en) Processor, multiprocessor system, and method of detecting illegal memory access
JPH04199336A (en) Microcomputer
Abburi et al. Reusable and scalable verification environment for memory controllers
JP2012118769A (en) In-circuit emulator

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130709

TRDD Decision of grant or rejection written
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131114

R150 Certificate of patent or registration of utility model

Ref document number: 5416257

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350