JP5416257B2 - Multi-core LSI - Google Patents
Multi-core LSI Download PDFInfo
- 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
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
上記の従来技術1をマルチコアLSIに拡張した場合は、割込処理の要求信号をどの様に各々のCPUに出力するか、どのCPUのアクセスによりハングアップしたのかをどのように特定するのかという点において、現在では有効な手法が無い状況である。
When the above
また上記の従来技術2をマルチコアLSIに使用した場合は、そもそも共有バスがハングアップした場合に、WDTによって、それを検出して他の正常なCPUに割込処理をさせようとしても、デバッグ対象のCPUがバス権の開放を行わない限り、その正常なCPUは割込処理を実行できない。
Also, when the above
以上の事から、従来では、マルチコア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.
<全体構成>
この実施の形態に係るマルチコア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とを備える。
<Overall configuration>
As shown in FIG. 1, the
各共有バス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
各CPU#0,#1は、一般的なものであって、デバッグ機能dbと、1次キャッシュL1と、システムコントローラ9からの各種の割込処理の要求信号である、NMI(ノンマスカブル割り込み)、INT(マスカブル割り込み)、およびDBI(デバッグ割り込み)を備える。
Each of the
デバッグ機能dbは、一般的なデバッグ機能であって、例えば、当該CPU#0,#1のプログラムの実行制御、ブレークポイント制御、CPU内部レジスタ表示や、外部からの要求信号に応じて当該CPU#0,#1の実行履歴を外部に出力する機能などといった、プログラムのデバッグに必要な機能を、外部装置と通信を行い実現するものである。
The debug function db is a general debug function. For example, the
入力信号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
各CPU#0,#1は、各モジュールm1〜mnまたは外部バスgbに接続された各外部デバイスgd1,gd2にアクセスする場合は、アクセス要求信号として、共有バスb1のアドレスバス、コマンドバス、CPUIDバスにそれぞれアクセス先のアドレス、読み出しまたは書き込みのコマンド、アクセス元のCPU#0または#1のID(CPUID)を出力すると共に前記コマンドが書き込みの場合は更に共有バスb1のデータバスに書込対象のデータを出力する。
When the
また各CPU#0,#1は、アクセス要求信号の共有バスb1への出力でアクセスを開始し、そのアクセス要求信号に対する応答信号を共有バスb1を通じて取得すると、そのアクセスを終了する。
Each of the
共有バス制御部3は、2次キャッシュL2を備えることも可能である。以降は2次キャッシュL2を備えた場合について説明する。
The shared
また共有バス制御部3は、共有バスb1を通じて各CPU#0または#1からのアクセス要求信号を受信すると、2次キャッシュL2にアクセスして、その読出対象のデータが2次キャッシュL2に保存されているかを確認する。そして保存されている場合は、アクセス元のCPU#0または#1に対して、アクセス要求信号のコマンドが読み出しの場合は、その保存されているデータを共有バスb1を通じて出力すると共にそのアクセス要求信号に対する応答信号を共有バスb1を通じて出力し、アクセス要求信号のコマンドが書き込みの場合は、L2キャッシュに書き込みをすると共に、そのアクセス要求信号に対する応答信号を共有バスb1を通じて出力する。
When the shared
また共有バス制御部3は、その対象のデータが2次キャッシュに保存されていない場合、共有バスb1を通じて受信した当該アクセス要求信号を共有バスb2に出力する。
Further, when the target data is not stored in the secondary cache, the shared
また共有バス制御部3は、共有バスb2から、各モジュールm1〜mnまたは外部バス制御部5からの応答信号および読出対象のデータを受信した場合、その応答信号および読出対象のデータを共有バスb1に出力する。
When shared
また共有バス制御部3は、システムコントローラ9から専用配線12を通じて後述の疑似応答信号が入力されると、その疑似応答信号を、共有バスb1に出力して、その際にアクセス中のCPU#0または#1に受信させて当該アクセスを強制的に終了させる。尚、上記の疑似応答信号とは、アクセス要求信号のアクセス先が応答信号を出力しない場合に、システムコントローラ9が、その代わりに出力する応答信号である。
When a pseudo response signal (to be described later) is input from the
各モジュール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
尚、専用配線11は、例えば、OR回路11aを備え、OR回路11aの複数の入力部には、各モジュールm1〜mnおよび外部バス制御部5の各々の応答信号出力部が配線接続され、OR回路11aの出力部には、システムコントローラ9の応答信号入力部が配線接続されて構成されている。OR回路11aは、その複数の入力部のうちの何れかに応答信号が入力されると、その出力部から応答信号を出力する。
The
外部バス制御部5は、外部バスgbに接続された外部デバイスgd1,gd2と、各CPU#0,#1nとの間の通信を中継する。
The external
割り込みコントローラ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
システムコントローラ9は、共有バスb2中のアクセス要求信号を監視する。そしてシステムコントローラ9は、共有バス制御部3から共有バスb2にアクセス要求信号が出力されてから所定時間経過するまでに、そのアクセス要求信号のアクセス先から共有バスb2にそのアクセス要求信号に対する応答信号が出力されたか否かを監視する。
The
そしてシステムコントローラ9は、上記の所定時間経過するまでに当該応答信号が共有バス2に出力されない場合は、上記の所定時間経過したときに(即ちタイムアウトが発生したときに)、バグ等の発生により共有バスb1,b2がハングアップしたと判定し、下記の処理(1)(2)(3)を行う。
If the response signal is not output to the shared
即ち処理(1)として、疑似応答信号を例えば専用配線12を介して共有バス制御部3に出力し、その疑似応答信号を、共有バス制御部3から共有バスb1に出力させてアクセス元のCPU#0または#1に取得させ、そのアクセスを強制的に終了させる。
That is, as a process (1), a pseudo response signal is output to the shared
また処理(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
また処理(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
またシステムコントローラ9は、外部装置からの終了要求信号が入力されると、疑似応答信号を共有バス制御部3に出力して、上記の所定時間経過する前でも、アクセス中のCPU#0,#1の当該アクセスを強制的に終了させる。
Further, when an end request signal is input from an external device, the
<システムコントローラ9の構成>
システムコントローラ9は、図2の様に、アドレスレジスタ9aと、コマンドレジスタ9bと、CPUIDレジスタ9cと、各CPU#0,#1毎に設けられた割り込み制御レジスタ9d,9eと、カウンタ9fと、制御部9gとを備える。
<Configuration of
As shown in FIG. 2, the
アドレスレジスタ9aは、共有バスb2のアドレスバスq1に接続され、コマンドレジスタ9bは、共有バスb2のコマンドバスq2に接続され、CPUIDレジスタ9cは、共有バスb2のCPUIDバスq3に接続され、割り込み制御レジスタ9d,9eは、共有バスb2のデータバスq4に接続されている。
The
各レジスタ9a,9b,9cはそれぞれ、制御部9fの制御に応じて、共有バス制御部3から共有バスb2に出力されたアクセス要求信号のアドレス,コマンド,CPUIDを格納する。
Each of the
制御部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
そして制御部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
そして制御部9gは、カウンタ9fが所定時間を計時し終えるまでに、専用配線11を通じて応答信号が自身に入力された場合は、アクセス先から共有バスb2に当該アクセス要求信号に対する応答信号が出力された(即ちバグの発生無し)と判定し、カウンタ9による所定時間の計時を中止させる。
When the response signal is input to the control unit 9g through the
他方、制御部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
また処理(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
また処理(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
尚、割り込み制御レジスタ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
<制御部9bの構成>
図3は、制御部9gに於ける、CPU#0,#1の割込処理の要求信号NMIの出力を制御する部分の論理回路10aを示した図である。
<Configuration of
FIG. 3 is a diagram showing the
この論理回路10aは、OR回路13aと、AND回路14a,15aと、出力回路16とを備える。
The
出力回路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
AND回路14aは、1つの出力部t4と3つの入力部t5〜t7を有し、入力部t5には、割り込み制御レジスタ9b内の所定のビット位置(例えばb5)のビット値(「0」または「1」)が入力され、入力部t6には、出力回路16の出力部t2からの出力が入力され、入力部t7には、カウンタ9fの出力が入力される。尚、カウンタ9fの出力は、カウンタ9fが所定時間を計時し終えるまでは「0」を出力し、カウンタ9fが所定時間を計時し終えると(即ちタイムアップが発生すると)「1」を出力する。
The AND
AND回路15aは、1つの出力部t8と3つの入力部t9〜t11を有し、入力部t9には、割り込み制御レジスタ9b内の所定のビット位置(例えばb0)のビット値(「0」または「1」)が入力され、入力部t10には、出力回路16の出力部t3からの出力が入力され、入力部t11には、カウンタ9fの出力が入力される。
The AND
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#1の割込処理の要求信号NMIの出力を制御する部分の論理回路10bは、OR回路13bと、AND回路14b,15bと、出力回路16とを備える。
Similarly, the
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
AND回路15bは、1つの出力部t20と3つの入力部t21〜t23とを有し、入力部t21には、割り込み制御レジスタ9e内の所定のビット位置(例えばb0)のビット値(「0」または「1」)が入力され、出力部t22には、出力回路16の出力部t2の出力が入力され、出力部t23には、カウンタ9fの出力が入力される。
The AND
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#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
(1a) The output of the output unit t12 of the OR circuit 13a is input to the interrupt processing request signal INT of the
(2a) The bit value at the bit position b4 of the interrupt
(3a) The bit value at the bit position b1 of the interrupt
(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
(1b) The output of the output unit t24 of the OR circuit 13b is input to the interrupt processing request signal INT of the
(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
(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
(1c) The output of the output unit t12 of the OR circuit 13a is input to the interrupt request signal DBI of the
(2c) The bit value at the bit position b5 of the interrupt
(3c) The bit value at the bit position b2 of the interrupt
(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
(1d) The output of the output part t24 of the OR circuit 13b is input to the interrupt processing request signal DBI of the
(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
(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
この構成により、例えば、割り込み制御レジスタ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
<割り込み制御レジスタ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
The interrupt
尚、ビット位置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
FIG. 5 shows examples of bit values (setting data) set in the bit positions b5 to b3 and b2 to b0 of the interrupt
モード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
モード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
モード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
モード4では、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には001,001が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には001,001が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセスで発生した場合も、CPU#1のアクセスで発生した場合も、全てのCPU#0,#1にノンマスカブル割込要求信号を出力する。
In
モード5では、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には010,010が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には010,010が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセスで発生した場合も、CPU#0のアクセスで発生した場合も、全てのCPU#0,#1にマスカブル割込要求信号を出力する。
In
モード6では、割り込み制御レジスタ9dの各ビット位置b5〜b3,b2〜b0には100,100が設定され、割り込み制御レジスタ9eの各ビット位置b5〜b3,b2〜b0には100,100が設定される。このモードでは、カウンタ9fが所定時間を計時し終えると、CPU#0のアクセスで発生した場合も、CPU#1のアクセスで発生した場合も、全てのCPU#0,#1にデバッグ割込要求信号を出力する。
In
モード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
モード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
<マルチコアLSI1の動作説明>
まず本発明の特徴を理解するための参考として、図6〜図8に基づき、例えば2個のCPU#0,#1を有する従来型のマルチコアLSIの動作の概要を説明する。
<Description of operation of
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
ここでは、CPU#0による処理A、CPU#1による処理B、CPU#0による処理C、CPU#1による処理Dがこの順に行われる場合で説明する。
Here, a case will be described where processing A by
尚、処理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
この様な従来型のマルチコア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
また従来型のマルチコア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
次に図1および図9に基づき、この実施の形態に係るマルチコアLSI1の動作を説明する。
Next, based on FIG. 1 and FIG. 9, the operation of the
上述と同様、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
まず処理AがCPU#0により実行される。即ちCPU#0から共有バスb1に、アクセス要求信号として、CPUIDとして#0、コマンドとして読み出し(read)、アドレスとしてAAが出力される(図9のS1)。
First, the process A is executed by the
そして共有バス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
そしてカウンタ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
また、アドレス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
そして次の処理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
そして、アドレス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
そしてこの判定により、システムコントローラ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
また上記の判定により、システムコントローラ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
そしてシステムコントローラ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
この様に、この実施の形態に係るマルチコアLSI1では、従来型のマルチコアLSIと比べて、アクセス要求信号が共有バスb2に出力されてから所定時間経過するまでに、アクセス先のモジュールから当該アクセス要求信号に対する応答信号が出力されない場合は、システムコントローラ9から疑似応答信号が出力され、その疑似応答信号によりアクセス中のCPU#0,#1の当該アクセスが強制的に終了させられて次の処理が実行されるので、マルチコアLSI1の動作が停止する事を防止できる。
As described above, in the
また疑似応答信号の他に、システムコントローラ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
<主要な効果>
以上の様に構成されたマルチコアLSI1によれば、システムコントローラ9は、共有バス制御部3から共有バスb2にアクセス要求信号が出力されてから所定時間経過するまでに、アクセス先のモジュールm1〜mnまたは外部バス制御部9から応答信号が出力されない場合は、共有バス制御部3を介して共有バスb1に疑似応答信号を出力して、アクセス中のCPU#0または#1の当該アクセスを終了させる。これにより、バグ等の発生により、アクセス先のモジュールから応答信号が出力されない場合でも、アクセス中のCPU#0または#1が共有バスb1,b2を長期に占有してマルチコアLSI1の動作が停止する事を防止でき、マルチコアLSIの動作の安定性を向上できる。
<Main effects>
According to the
またシステムコントローラ9は、共有バス制御部3から共有バスb2にアクセス要求信号が出力されてから所定時間経過するまでに、アクセス先のモジュールm1〜mnまたは外部バス制御部9から応答信号が出力されない場合は、更に、当該アクセス中のCPU#0または#1に割込処理を実行させる。これにより、当該CPU#0または#1によるその割込処理の実行箇所を確認することで、バグ等が発生して共有バスb1,b2がハングアップした場合に、どのCPU#0,#1のどのアクセスによりバグ等が発生したかを特定でき、プログラムの開発効率を向上できる。
Further, the
またシステムコントローラ9は、割込処理として、当該アクセス中のCPU#0または#1にノンマスカブル割込処理、マスカブル割込処理またはデバック割込処理を実行させる。これにより、割込処理の種類に応じて割込処理の優先度を設定できる。
Further, the
またシステムコントローラ9は、共有バス制御部3から共有バスb2にアクセス要求信号が出力されてから所定時間経過するまでに、アクセス先のモジュールm1〜mnまたは外部バス制御部9から応答信号が出力されない場合は、全てのCPU#0,#1に割込処理を実行させる。これにより、バグ等が発生したCPUだけでなく正常なCPUによるその割込処理の実行箇所を確認することで、バグ等が発生して共有バスb1,b2がハングアップした場合に、どのCPU#0,#1のどのアクセスによりバグ等が発生したかを一層容易に特定でき、プログラムの開発効率を向上できる。
Further, the
またシステムコントローラ9において、上記の割込処理として、当該アクセス中のCPU#0または#1にはノンマスカブル割込処理を実行させ、他のCPU#1または#0にはマスカブル割込処理を実行させる様に設定できる。これにより、バグ等の発生したCPUかまたは正常なCPUかに応じて、割込処理の優先度を変えることができる。
In the
またシステムコントローラ9において、上記の割込処理として、当該アクセス中のCPU#0または#1にはデバッグ割込処理を実行させ、他のCPU#1または#0にはマスカブル割込処理を実行させる様にできる。これにより、バグ等の発生したCPUかまたは正常なCPUかに応じて、割込処理の優先度を変えることができる。
Further, in the
またシステムコントローラ9において、共有バス制御部3から共有バスb2にアクセス要求信号が出力されてから所定時間経過するまでに、アクセス先のモジュールm1〜mnまたは外部バス制御部5から応答信号が出力されない場合は、更に、アクセス中のCPU#0または#1が当該アクセスの際に出力したCPUID、読み出し・書き込みのコマンドおよびアドレスのうちの少なくとも1つ(動作説明では例えば3つとも保存する場合で説明した。)を保存する。これにより、バグ等が発生して共有バスb1,b2がハングアップした場合に、その保存したCPUID、コマンドまたはアドレスにより、どのCPU#0,#1のどのアクセスによりバグ等が発生したかを一層容易に特定でき、プログラムの開発効率を向上できる。
In the
またシステムコントローラ9は、所定の外部装置からの終了要求信号を受けた場合には、カウンタ9fによる当該所定時間が経過する前でも、共有バス制御部3を介して共有バスb1に疑似応答信号を出力して、アクセス中のCPU#0または#1の当該アクセスを終了させる。これにより、所定の外部装置からの終了要求信号により、当該所定時間が経過する前でも、アクセス中のCPU#0または#1の当該アクセスを強制終了させる事ができる。
When the
実施の形態2.
上記のマルチコアLSIの構成は、共有バスb1,b2がパケットトランザクション又はスプリットトランザクションのバス構成である場合においても有効である。
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へのメモリアクセスが不正なアドレスへのアクセスであり、上記の共有バス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
システムコントローラ9がCPU#0でのメモリアクセスに対して擬似応答信号を発行することによりCPU#0が停止状態から回復し、CPU#0は正しいアドレスを指定してのメモリアクセスの再発行を行うことが可能となり、マルチコアLSI全体としてのシステム安定を維持することが可能になる。またそのような不正なメモリアクセスが頻発していることがその保存したCPUID、コマンドまたはアドレスにより判明することから、どのCPU#0,#1のどのアクセスによりバグ等が発生したかを一層容易に特定でき、プログラムの開発効率を向上できる。
When the
この発明は、複数の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
Claims (4)
第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 .
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)
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 |
-
2012
- 2012-07-26 JP JP2012165655A patent/JP5416257B2/en active Active
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 |