JP2011159192A - Semiconductor integrated circuit device and program debugging method - Google Patents
Semiconductor integrated circuit device and program debugging method Download PDFInfo
- Publication number
- JP2011159192A JP2011159192A JP2010021930A JP2010021930A JP2011159192A JP 2011159192 A JP2011159192 A JP 2011159192A JP 2010021930 A JP2010021930 A JP 2010021930A JP 2010021930 A JP2010021930 A JP 2010021930A JP 2011159192 A JP2011159192 A JP 2011159192A
- Authority
- JP
- Japan
- Prior art keywords
- input
- memory
- execution mode
- debug
- output
- 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.)
- Pending
Links
- 239000004065 semiconductor Substances 0.000 title claims description 84
- 238000000034 method Methods 0.000 title claims description 23
- 238000004891 communication Methods 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims description 101
- 230000006870 function Effects 0.000 claims description 51
- 238000012905 input function Methods 0.000 claims 23
- 238000004458 analytical method Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 10
- 238000012546 transfer Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005674 electromagnetic induction Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012536 packaging technology Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】プログラムデバッグの容易化又はプログラムデバッグの低コスト化を実現する。
【解決手段】同一構成となる複数のCPUブロック(CPUBK[0],CPUBK[1],…,CPUBK[n−1],CPUBK[n])500aを設け、モード設定レジスタ(MREG)210によってCPUBK[0],CPUBK[n−1]をプログラム実行用モードで動作させ、CPUBK[1],CPUBK[n]をデバッグ実行用モードで動作させる。CPUBK[0],CPUBK[n−1]からのデバッグ情報は、それぞれ、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220を介して出力され、CPUBK[1],CPUBK[n]のDIMACを介して収集される。CPUBK[1],CPUBK[n]のDIMACは、リング接続に伴う通信径路を持ち、互いにデバッグ情報等の送受信が可能となっている。
【選択図】図1An object of the present invention is to facilitate program debugging or reduce the cost of program debugging.
A plurality of CPU blocks (CPUBK [0], CPUBK [1],..., CPUBK [n−1], CPUBK [n]) 500a having the same configuration are provided, and a CPUBK is set by a mode setting register (MREG) 210. [0], CPUBK [n−1] are operated in the program execution mode, and CPUBK [1], CPUBK [n] are operated in the debug execution mode. The debug information from CPUBK [0] and CPUBK [n-1] is output via the debug information storage device access controller (DIMAC) 220, and collected via the DIMAC of CPUBK [1] and CPUBK [n]. Is done. The DIMACs of CPUBK [1] and CPUBK [n] have a communication path associated with ring connection, and can transmit / receive debug information and the like to each other.
[Selection] Figure 1
Description
本発明は、マイクロプロセッサおよびプログラム開発支援用デバッグ装置を含む半導体集積回路装置に関し、それを用いたデバッグ機能の実現ならびに実装方法に関して有効な技術に関する。 The present invention relates to a semiconductor integrated circuit device including a microprocessor and a debugging device for supporting program development, and relates to a technique effective for realizing a debugging function and mounting method using the same.
年々大規模化・複雑化するアプリケーションを開発する上で、デバッグ装置によるプログラム開発の支援は必須である。現在一般的には、CPU(Central Processing Unit)内に、プログラム実行時のデバッグ情報を取得するためのデバッグ回路を組み込み、チップ辺縁部に設けた出力端子を通じてそれらの情報を外部のPC(Personal Computer)等に取り出し、外部のPC上でプログラムの挙動を解析することが行われている。この際、通常チップ内部のデータはチップ辺縁部からピン端子を介してチップ外部へ出力されるが、チップ辺縁部に設置できるピン端子数の制約等により、チップ端子部がデータ出力帯域のボトルネックとなって出力帯域が不足し、それゆえCPUから取得したデバッグ情報の全てを外部に取り出すことができず、情報の一部しか外部へ取り出せない、という問題が生じている。プロセッサのマルチコア/メニイコア化が進み、一つのCPUに多数のCPUコアが搭載されるようになった現在、この出力帯域不足の問題はますます深刻化している。これに関連して非特許文献1には、ワイヤレスインターコネクト技術を用いてチップ内部のデータをチップ上面からチップ外部へデータを出力する技術が記載される。この技術ではチップ上面部を使用することにより従来のボトルネックを回避し、従来よりも広いデータ出力帯域を確保することに成功している。
Support for program development by a debugging device is indispensable for developing applications that become larger and more complex year by year. Currently, a debugging circuit for acquiring debugging information at the time of program execution is incorporated in a CPU (Central Processing Unit), and the information is sent to an external PC (Personal) through an output terminal provided at the edge of the chip. Computer) etc. and analyzing the behavior of the program on an external PC. At this time, the data inside the chip is usually output from the chip edge to the outside of the chip via the pin terminals. However, due to restrictions on the number of pin terminals that can be installed on the chip edge, the chip terminal part has a data output band There is a problem that the output bandwidth is insufficient due to a bottleneck, and therefore all of the debug information acquired from the CPU cannot be extracted to the outside, and only a part of the information can be extracted to the outside. With the progress of multi-core / many-core processors, and the fact that a large number of CPU cores are mounted on a single CPU, the problem of insufficient output bandwidth is becoming increasingly serious. In this regard, Non-Patent
前記背景技術の非特許文献1で説明した内容は、外部出力帯域を拡大するアプローチである。しかし1つのマイクロプロセッサ内に実装されるCPU数が年々増大の一途を辿っている現状では、外部出力帯域の拡大速度よりもCPU数の増大速度が上回るような状況であり、外部出力帯域の拡大だけでは問題を解決することが困難である。
The content described in
一般にマルチコア/メニイコアプロセッサのデバッグにおいて、多数のCPUからリアルタイムに得られる膨大なデバッグ情報を、漏れなくチップ外部に出力することは極めて困難である。また仮に出力できたとしても、膨大なデバッグ情報の中から真にバグ解析、あるいは性能チューニングに必要な情報をユーザが見つけ出すことも非常に困難である。 In general, in debugging of a multi-core / many-core processor, it is extremely difficult to output a large amount of debug information obtained from a large number of CPUs in real time to the outside of the chip without omission. Even if it can be output, it is very difficult for the user to find out information necessary for true bug analysis or performance tuning from a large amount of debug information.
またマルチCPUにおいては、一つの処理プロセスが複数のCPUに分散して実行されることが一般的であるが、これもデバッグを困難なものとする。一つの処理プロセスが複数のCPUでばらばらに実行されているため、1つのCPUから得られるデバッグ情報だけではあるプロセスがどのように実行されたかの全貌を知ることはできず、断片だけしか知り得ない。全貌を知るためには複数のCPUからデバッグ情報を得たうえで、それら複数のCPUに分散しているデバッグ情報をプロセス毎にまとめ上げる必要があるが、これは現行の技術では困難である。 In a multi-CPU, one processing process is generally distributed and executed by a plurality of CPUs, but this also makes debugging difficult. Since one processing process is executed separately by multiple CPUs, it is not possible to know the whole picture of how a certain process was executed with only debug information obtained from one CPU, and only a fragment. . In order to know the whole picture, it is necessary to obtain debug information from a plurality of CPUs and collect the debug information distributed to the plurality of CPUs for each process, which is difficult with the current technology.
また1つのマイクロプロセッサ内に実装されるCPU数が爆発的に増えたことは、デバッグモジュールのハードウェア実装コストを増大させている。非常に多数のCPUからリアルタイムで出力される大量のデバッグ情報をまとめてチップ外部に出力するためには膨大な配線の引き回しが必要であり、それだけで多大なハードウェアコストと実装コストが必要となる。 In addition, the explosive increase in the number of CPUs mounted in one microprocessor increases the hardware mounting cost of the debug module. In order to collect a large amount of debug information output from a large number of CPUs in real time and output them to the outside of the chip, it is necessary to route a huge amount of wiring, which alone requires a great amount of hardware cost and mounting cost. .
本発明は、このようなことを鑑みてなされたものであり、その目的の一つは、プログラムデバッグの容易化またはプログラムデバッグの低コスト化などを実現可能な半導体集積回路装置を提供することにある。具体的には、例えば、膨大なデバッグ情報の中から重要度の高い真に必要なデバッグ情報のみを取り出して出力する技術を提供することにある。更にその実現のために、コストの高い大量の専用ハードウェア論理を追加することなく、すでにある回路にわずかなハードウェアを追加するだけで上記技術を実現可能とする手段を提供することにある。本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。 The present invention has been made in view of the above, and one of its purposes is to provide a semiconductor integrated circuit device capable of facilitating program debugging or reducing the cost of program debugging. is there. Specifically, for example, it is to provide a technique for extracting and outputting only truly necessary debug information having high importance from a large amount of debug information. Furthermore, it is to provide means for realizing the above technique by adding a small amount of hardware to an existing circuit without adding a large amount of expensive dedicated hardware logic. The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。 Of the inventions disclosed in the present application, the outline of a typical embodiment will be briefly described as follows.
本実施の形態による半導体集積回路装置は、複数のCPUを備え、各CPUに対して「プログラム実行用モード」と「デバッグ実行用モード」の2つのモードを定義可能な構成となっている。ここで「プログラム実行用モード」とは通常のCPUとして動作するモードであり、「デバッグ実行用モード」とはデバッグ実行用CPUとして動作するモードである。各CPUには、これら2つの動作モードのうちどちらのモードで動作するかを設定するためのモード設定レジスタを設ける。これによりモード設定レジスタの設定を切り替えるだけで、同一のCPUを、プログラム実行用CPUとしても、デバッグ実行用CPUとしても、切り替えて使用することが可能になる。 The semiconductor integrated circuit device according to the present embodiment includes a plurality of CPUs, and has a configuration in which two modes of “program execution mode” and “debug execution mode” can be defined for each CPU. Here, the “program execution mode” is a mode operating as a normal CPU, and the “debug execution mode” is a mode operating as a debug execution CPU. Each CPU is provided with a mode setting register for setting which one of these two operation modes to operate. As a result, the same CPU can be switched and used as both a program execution CPU and a debug execution CPU simply by switching the setting of the mode setting register.
また、各CPUに対して、デバッグ情報を入出力するための、2つの入力径路と2つの出力径路を付け加える。各々2つ付け加えたデバッグ情報の入出力径路のうち一組は、プログラム実行用CPUと、そのプロセッサのデバッグを行うデバッグ実行用CPUとの間でデバッグ情報を入出力するために使用するものである。他方の一組は、デバッグ実行用CPUとして動作している際に、デバッグ実行用CPU間でデバッグ情報を入出力するために使用するものである。 Further, two input paths and two output paths for inputting / outputting debug information are added to each CPU. One set of debug information input / output paths added to each two is used for inputting / outputting debug information between the program execution CPU and the debug execution CPU for debugging the processor. . The other set is used to input / output debug information between the debug execution CPUs when operating as a debug execution CPU.
すなわち各CPUは、(1)デバッグ実行用モード動作時にプログラム実行用CPUからの情報を受信するための入力径路、(2)デバッグ実行用モード動作時に、自分以外のデバッグ実行用CPUからの情報を受信するための入力径路、(3)プログラム実行用モード動作時に、デバッグ実行用CPUへ情報を送信するための出力径路、(4)デバッグ実行用モード動作時に、自分以外のデバッグ実行用CPUへ情報を送信するための出力径路、の4つを備えている。デバッグ実行用モード動作時には入力径路(1)(2)ならびに出力径路(4)を使用し、出力径路(3)は使用しない。逆にプログラム実行用モード動作時には、出力径路(3)のみを使用し、入力径路(1)(2)ならびに出力径路(4)は使用しない。これらの入出力径路を設けることにより、あるCPUが、プログラム実行用CPU動作時も、デバッグ実行用CPU動作時も、必要なデバッグ情報(あるいは性能チューニング用情報)を専用径路にて送受信することが可能になる。 That is, each CPU (1) input path for receiving information from the program execution CPU during the debug execution mode operation, and (2) information from other debug execution CPUs during the debug execution mode operation. An input path for receiving, (3) an output path for transmitting information to the debug execution CPU during the program execution mode operation, and (4) information to a debug execution CPU other than itself during the debug execution mode operation. The output path for transmitting the data is provided. During the debug execution mode operation, the input paths (1) and (2) and the output path (4) are used, and the output path (3) is not used. Conversely, during the program execution mode operation, only the output path (3) is used, and the input paths (1) and (2) and the output path (4) are not used. By providing these input / output paths, a certain CPU can transmit / receive necessary debug information (or performance tuning information) through a dedicated path during both the program execution CPU operation and the debug execution CPU operation. It becomes possible.
デバッグ実行時には、全てのCPUのうち、例えば、半数をプログラム実行用モード、残りの半数をデバッグ実行用モードで動作させる。全てのプログラム実行用CPUに対して、対となるデバッグ実行用CPUが定義され、プログラム実行用CPUの出力径路(3)とデバッグ実行用CPUの入力径路(1)が接続される。また、各デバッグ実行用CPUは、隣接するデバッグ実行用CPU間が順次接続され、全体として大きな一つのリング状に接続される。各デバッグ実行用CPUの出力径路(4)は隣接するデバッグ実行用CPUの入力径路(2)に接続される。このような形態でプログラム実行用CPUとデバッグ実行用CPUを接続することで、わずかな追加ハードウェアコストにより、全てのプログラム実行用CPUから、全てのデバッグ実行用CPUにデバッグ情報を送信することが可能となる。 At the time of debug execution, for example, half of all the CPUs are operated in the program execution mode and the other half are operated in the debug execution mode. A pair of debug execution CPUs are defined for all the program execution CPUs, and the output path (3) of the program execution CPU and the input path (1) of the debug execution CPU are connected. In addition, each debug execution CPU is sequentially connected between adjacent debug execution CPUs, and is connected in a large ring shape as a whole. The output path (4) of each debug execution CPU is connected to the input path (2) of the adjacent debug execution CPU. By connecting the program execution CPU and the debug execution CPU in such a form, debug information can be transmitted from all the program execution CPUs to all the debug execution CPUs with a small additional hardware cost. It becomes possible.
さらにこの大きな一つのリング状のデータ送受信径路は、少なくとも一か所で外部出力端子と接続される。このような形態でデバッグ実行用CPUと外部出力端子を接続することで、わずかな追加ハードウェアコストにより、全てのデバッグ実行用CPUは、外部出力端子との接続部分を介して、チップ外部へとデバッグ実行結果を(あるいは性能チューニング用情報)を出力することが可能になる。 Furthermore, this large ring-shaped data transmission / reception path is connected to an external output terminal at least at one place. By connecting the debug execution CPU and the external output terminal in such a form, all the debug execution CPUs can be connected to the outside of the chip via the connection portion with the external output terminal at a slight additional hardware cost. Debug execution results (or performance tuning information) can be output.
デバッグ実行時には(a)情報収集モード、(b)情報転送モード、(c)情報出力モード、の3つの情報送受信モードが定義される。(a)の情報収集モードでは、前述したプログラム実行用CPUの出力径路(3)からデバッグ実行用CPUの入力径路(1)への接続径路を用いて、プログラム実行用CPUからデバッグ実行用CPUへデバッグ情報が送信される。このモードにより、プログラム実行用CPUからデバッグ実行用CPUへ、デバッグ情報を収集することが可能である。(b)の情報転送モードでは、前述したデバッグ実行用CPUの出力径路(4)からデバッグ実行用CPUの入力径路(2)への接続径路を用いて、デバッグ実行用CPUからデバッグ実行用CPUへデバッグ情報が送信される。(c)の情報出力モードでは、(b)と同様な形の接続であるが、転送されたデバッグ情報は最終的には他のデバッグ実行用CPUに書き込まれるのではなく、外部出力端子からチップ外部へ出力される。 When executing debugging, three information transmission / reception modes are defined: (a) information collection mode, (b) information transfer mode, and (c) information output mode. In the information collection mode (a), from the program execution CPU to the debug execution CPU using the connection path from the output path (3) of the program execution CPU to the input path (1) of the debug execution CPU described above. Debug information is sent. In this mode, debug information can be collected from the program execution CPU to the debug execution CPU. In the information transfer mode (b), from the debug execution CPU to the debug execution CPU, the connection path from the output path (4) of the debug execution CPU to the input path (2) of the debug execution CPU described above is used. Debug information is sent. In the information output mode of (c), the connection is in the same form as in (b), but the transferred debug information is not finally written to another CPU for debug execution, but from the external output terminal. Output to the outside.
前述のように全てのデバッグ実行用CPUは大きな一つのリング状に接続されているため、(a)の情報収集モードで収集したデバッグ情報は、あらゆる任意のデバッグ実行用CPUに転送することが可能である。デバッグ実行用CPUは、その名の通りそれ自体が通常の汎用CPUであるため、高いデータ処理能力をデバッグのために活用することが可能となる。 Since all the debug execution CPUs are connected in a large ring as described above, the debug information collected in the information collection mode (a) can be transferred to any arbitrary debug execution CPU. It is. Since the CPU for debug execution itself is a normal general-purpose CPU as its name suggests, it is possible to utilize high data processing capability for debugging.
さらに、本実施の形態による半導体集積回路装置は、所謂三次元実装技術と組み合わせることで、非常に強力なデバッグ装置を構成することが可能となる。具体的には、複数のCPU、および各CPUに対して前述した各種径路(1)〜(4)を構築するための付加回路から構成されるチップを、三次元的に複数枚重ね、それらを貫通ビアあるいはワイヤレスインターコネクト技術によって接続する。そして、隣接するチップのうち片方のチップのCPUをプログラム実行用モード、他方のチップのCPUをデバッグ実行用モードで動作させる。これにより、高性能なデバッグ機能を備えた三次元チップを容易に構成することが可能となる。 Furthermore, the semiconductor integrated circuit device according to the present embodiment can be combined with a so-called three-dimensional mounting technique to constitute a very powerful debugging device. Specifically, a plurality of chips composed of a plurality of CPUs and additional circuits for constructing the various paths (1) to (4) described above for each CPU are stacked in a three-dimensional manner. Connect via vias or wireless interconnect technology. Then, the CPU of one of the adjacent chips is operated in the program execution mode, and the CPU of the other chip is operated in the debug execution mode. Thereby, a three-dimensional chip having a high-performance debugging function can be easily configured.
また、複数のCPUならびに前述した付加回路から構成される全く同一のチップを、プログラム実行用、デバッグ実行用、という異なる二つの用途に使用することで、チップ作製コストを削減することが可能になる。すなわち従来は、高性能なデバッグ機能を実現するために高性能なデバッグ専用回路を作製する必要があったが、本実施の形態を用いることで高性能なデバッグ専用回路の作成は不要になる。さらに従来は、高性能なデバッグ機能を実現するためには、チップの中に高性能なデバッグ専用回路を組み込む必要があり、チップ面積の面で大きな負担となっていたが、本実施の形態を用いるとチップ内にそのような回路は不要となる。さらに三次元接続することで、たとえば実際に顧客に提供する製品にはデバッグ機能は不要であるのでチップ1層のみの製品を出荷し、デバッグ機能を必要とする開発者向けにのみ、チップを2層重ねたデバッグ機能を持つ開発者向けの製品を出荷する、といった対応が可能となる。さらに三次元実装技術において、貫通ビア技術ではなくワイヤレスインターコネクト技術を用いれば、全てのチップをチップ1層のみで出荷してプログラム実行用モードで動作させ、デバッグ機能が必要になった場合のみ、もう1つのチップを重ね合わせてワイヤレスインターコネクト技術で接続し、重ねたチップをデバッグ実行用モードで動作させることで、必要なときのみ、非常に簡易な手段で、高性能なデバッグ機能を実現することが可能になる。 Further, by using the same chip composed of a plurality of CPUs and the above-described additional circuit for two different uses for program execution and debug execution, it is possible to reduce chip manufacturing costs. . That is, conventionally, it has been necessary to produce a high-performance debug circuit in order to realize a high-performance debug function. However, the use of this embodiment makes it unnecessary to create a high-performance debug circuit. Furthermore, in the past, in order to realize a high-performance debugging function, it was necessary to incorporate a high-performance debugging dedicated circuit into the chip, which was a heavy burden in terms of chip area. If used, such a circuit is not required in the chip. Further, by connecting in three dimensions, for example, products that are actually provided to customers do not require a debugging function, so a product having only one chip layer is shipped, and only two chips are provided for developers who need the debugging function. It is possible to respond such as shipping products for developers with multiple debugging functions. Furthermore, in the 3D packaging technology, if wireless interconnect technology is used instead of through via technology, all chips are shipped with only one layer and operated in the program execution mode, and only when the debugging function is required. By stacking one chip and connecting with wireless interconnect technology, and operating the stacked chip in debug execution mode, a high-performance debugging function can be realized by a very simple means only when necessary. It becomes possible.
本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、プログラムデバッグの容易化またはプログラムデバッグの低コスト化が実現可能となる。 Of the inventions disclosed in the present application, the effects obtained by the representative embodiments will be briefly described. This makes it possible to facilitate program debugging or reduce the cost of program debugging.
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that components having the same function are denoted by the same reference symbols throughout the drawings for describing the embodiment, and the repetitive description thereof will be omitted.
(実施の形態1)
図1は、本発明の実施の形態1による半導体集積回路装置において、その全体構成例を示すブロック図である。図1の半導体集積回路装置は、複数のCPUブロック(CPUBK)500aを備え、その一例として、図1には4個のCPUブロックCPUBK[0],CPUBK[1],…,CPUBK[n−1],CPUBK[n](n=3,5,…)が示されている。各CPUブロック(CPUBK)500aは、中央処理装置(CPU)100ならびデバッグ装置構築用の付加回路(AM)200を備える。中央処理装置(CPU)100は、デバッグ機能を実現するために、コントロールレジスタ(CREG)110、デバッグ情報生成装置(DIG)120、ならびにデバッグ情報記憶装置(DIM)130を有している。
(Embodiment 1)
FIG. 1 is a block diagram showing an example of the overall configuration of a semiconductor integrated circuit device according to
コントロールレジスタ(CREG)110は、レジスタに書き込まれた値に従って、実行中の中央処理装置(CPU)100からどのようなトレース情報を取得するのかを設定する機能を有する。デバッグ情報生成装置(DIG)120は、コントロールレジスタ(CREG)110の設定に従って、動作中の中央処理装置(CPU)100からデバッグ用の情報を取り出す機能を有する。デバッグ情報記憶装置(DIM)130は、デバッグ情報生成装置(DIG)120が取り出したデバッグ情報を中央処理装置(CPU)100内部で一時的に保存するための記憶保持機能を有する。 The control register (CREG) 110 has a function of setting what kind of trace information is to be acquired from the central processing unit (CPU) 100 being executed according to the value written in the register. The debug information generation device (DIG) 120 has a function of taking out debug information from the central processing unit (CPU) 100 in operation according to the setting of the control register (CREG) 110. The debug information storage device (DIM) 130 has a storage holding function for temporarily storing the debug information extracted by the debug information generation device (DIG) 120 inside the central processing unit (CPU) 100.
付加回路(AM)200は、モード設定レジスタ(MREG)210、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220、デバッグ情報入力径路1(DI1)230、デバッグ情報出力径路1(DO1)240、デバッグ情報入力径路2(DI2)250、デバッグ情報出力径路2(DO2)260、から構成される。モード設定レジスタ(MREG)210は、中央処理装置(CPU)100に対して「プログラム実行用モード」と「デバッグ実行用モード」の2つのモードのうちどちらで動作するのかを設定する機能を有する。プログラム実行用モードが選択されている場合は、中央処理装置(CPU)100は、モード設定レジスタ(MREG)210を持たない状態と同様に、与えられたプログラムに従って演算処理動作を実行する。デバッグ実行用モードが選択されている場合は、中央処理装置(CPU)100は、通常のプログラムではなくデバッグ実行用のプログラムを実行する。デバッグ情報記憶装置アクセスコントローラ(DIMAC)220は、デバッグ情報記憶装置(DIM)130、ならびにデバッグ情報入力径路1(DI1)230、デバッグ情報出力径路1(DO1)240、デバッグ情報入力径路2(DI2)250、ならびにデバッグ情報出力径路2(DO2)260の各々の間のデバッグ情報の入出力を制御する機能を有する。 The additional circuit (AM) 200 includes a mode setting register (MREG) 210, a debug information storage device access controller (DIMAC) 220, a debug information input path 1 (DI1) 230, a debug information output path 1 (DO1) 240, and a debug information input. A path 2 (DI2) 250 and a debug information output path 2 (DO2) 260 are included. The mode setting register (MREG) 210 has a function of setting which of the two modes of “program execution mode” and “debug execution mode” to the central processing unit (CPU) 100 to operate. When the program execution mode is selected, the central processing unit (CPU) 100 executes an arithmetic processing operation in accordance with a given program in the same manner as when the mode setting register (MREG) 210 is not provided. When the debug execution mode is selected, the central processing unit (CPU) 100 executes a debug execution program instead of a normal program. The debug information storage device access controller (DIMAC) 220 includes a debug information storage device (DIM) 130, a debug information input path 1 (DI1) 230, a debug information output path 1 (DO1) 240, and a debug information input path 2 (DI2). 250 and a debug information output path 2 (DO2) 260 each having a function of controlling input / output of debug information.
デバッグ情報入力径路1(DI1)230は、プログラム実行用モードで動作する中央処理装置(CPU)100のデバッグ情報を、デバッグ実行用モードで動作する別の中央処理装置(CPU)100へ転送するときの入力径路としての機能を有する。デバッグ情報出力径路(DO1)240は、プログラム実行用モードで動作する中央処理装置(CPU)100のデバッグ情報を、デバッグ実行用モードで動作する別の中央処理装置(CPU)100へ転送する時の出力径路としての機能を有する。デバッグ情報入力径路2(DI2)250は、デバッグ実行用モードで動作する中央処理装置(CPU)100のデバッグ情報を、同様にデバッグ実行用モードで動作する別の中央処理装置(CPU)100へ転送するときの入力径路としての機能を有する。デバッグ情報出力径路2(DO2)260は、デバッグ実行用モードで動作する中央処理装置(CPU)100のデバッグ情報を、同様にデバッグ実行用モードで動作する別の中央処理装置(CPU)100へ転送するときの出力径路としての機能を有する。 The debug information input path 1 (DI1) 230 is used to transfer the debug information of the central processing unit (CPU) 100 operating in the program execution mode to another central processing unit (CPU) 100 operating in the debug execution mode. Function as an input path. The debug information output path (DO1) 240 is used for transferring debug information of the central processing unit (CPU) 100 operating in the program execution mode to another central processing unit (CPU) 100 operating in the debug execution mode. It functions as an output path. The debug information input path 2 (DI2) 250 transfers debug information of the central processing unit (CPU) 100 that operates in the debug execution mode to another central processing unit (CPU) 100 that also operates in the debug execution mode. It has a function as an input path. The debug information output path 2 (DO2) 260 transfers debug information of the central processing unit (CPU) 100 that operates in the debug execution mode to another central processing unit (CPU) 100 that also operates in the debug execution mode. It has a function as an output path when
また、図1の半導体集積回路装置の例では、偶数番となるCPUブロック(CPUBK[0],…,CPUBK[n−1])500aがプログラム実行用モード(PMOD)に設定され、奇数番となるCPUブロック(CPUBK[1],…,CPUBK[n])500aがデバッグ実行用モード(DMOD)に設定されている。そして、偶数番となるCPUBK[0]におけるデバッグ情報出力径路1(DO1)240が奇数番となるCPUBK[1]におけるデバッグ情報入力径路1(DI1)230に接続され、以降同様にして、CPUBK[n−1]におけるデバッグ情報出力径路1(DO1)240がCPUBK[n]におけるデバッグ情報入力径路1(DI1)230に接続される。 In the example of the semiconductor integrated circuit device of FIG. 1, even-numbered CPU blocks (CPUBK [0],..., CPUBK [n−1]) 500a are set in the program execution mode (PMOD), CPU block (CPUBK [1],..., CPUBK [n]) 500a is set to the debug execution mode (DMOD). The debug information output path 1 (DO1) 240 in the even-numbered CPUBK [0] is connected to the debug information input path 1 (DI1) 230 in the odd-numbered CPUBK [1]. Debug information output path 1 (DO1) 240 at n−1] is connected to debug information input path 1 (DI1) 230 at CPUBK [n].
デバッグ実行用モードに設定された奇数番となるCPUブロック(CPUBK[1],…,CPUBK[n])500aでは、隣接するCPUブロック(CPUBK[m],CPUBK[m+2])(mは奇数)で、CPUBK[m]のデバッグ情報出力径路2(DO2)260がCPUBK[m+2]のデバッグ情報入力径路2(DI2)250に順次接続される。そして、CPUブロック(CPUBK[n])のデバッグ情報出力径路2(DO2)260がCPUブロック(CPUBK[1])のデバッグ情報入力径路2(DI2)250に接続されることで、デバッグ実行用モードに設定された各CPUブロックは、全体として一つのリング状に接続される。このリング内の任意の箇所には、外部出力端子(EOT)400が設けられる。外部出力端子(EOT)400は、デバッグ実行用モードで動作する中央処理装置(CPU)100のデバッグ情報を、デバッグ情報出力径路2(DO2)260を通じて最終的にチップ外部に出力するための機能を有する。 In the odd-numbered CPU block (CPUBK [1],..., CPUBK [n]) 500a set in the debug execution mode, adjacent CPU blocks (CPUBK [m], CPUBK [m + 2]) (m is an odd number) Thus, the debug information output path 2 (DO2) 260 of the CPUBK [m] is sequentially connected to the debug information input path 2 (DI2) 250 of the CPUBK [m + 2]. The debug information output path 2 (DO2) 260 of the CPU block (CPUBK [n]) is connected to the debug information input path 2 (DI2) 250 of the CPU block (CPUBK [1]), so that the debug execution mode is set. Each CPU block set to 1 is connected in a ring shape as a whole. An external output terminal (EOT) 400 is provided at an arbitrary position in the ring. The external output terminal (EOT) 400 has a function for finally outputting debug information of the central processing unit (CPU) 100 operating in the debug execution mode to the outside of the chip through the debug information output path 2 (DO2) 260. Have.
図2および図3は、図1に示したCPUブロック(CPUBK)500aにおける特徴的な構成要素を示すものである。図2に示すCPUブロック500aは、付加回路(AM)200内にモード設定レジスタ(MREG)210を備えている。このMREGの設定によって、当該CPUブロック内の中央処理装置(CPU)100をプログラム実行用モードで動作させるかデバッグ実行用モードで動作させるかを任意に選択できる。すなわち、同一の中央処理装置(CPU)100を、プログラム実行用のみならずデバッグ実行用としても活用することができ、別途専用のデバッグ実行用回路等を設けずともデバッグを実行可能になる。これによって、ハードウェアコストの低減が図れる。また、プログラム実行用としても用いられる高性能なCPUをデバッグ実行用として活用しているため、デバッグ処理能力の向上も図れる。
2 and 3 show characteristic components in the CPU block (CPUBK) 500a shown in FIG. A
図3に示すCPUブロック500aは、付加回路(AM)200内にモード設定レジスタ(MREG)210に加えてデバッグ情報記憶装置アクセスコントローラ(DIMAC)220を備えている。デバッグ情報記憶装置アクセスコントローラ(DIMAC)220は、デバッグ情報記憶装置(DIM)130との間のアクセス径路を持つ他に、次の4個の径路を持っている。まず、デバッグ情報入力径路1(DI1)230を持つことで、プログラム実行用モードで動作する他のCPUブロックからのデバッグ情報を受け、そのデバッグ情報に対して自身のCPUブロックの中央処理装置(CPU)100を用いて解析等を行うことができる。反対に、デバッグ情報出力径路1(DO1)240を持つことで、自身のプログラム実行に伴うデバッグ情報の解析等を、デバッグ実行用モードで動作する他のCPUブロックに依頼することができる。また、デバッグ情報入力径路2(DI2)250およびデバッグ情報出力径路2(DO2)260を持つことで、デバッグ実行用モードで動作するCPUブロック間でデータの受け渡しを行うことができる。すなわち、例えば、デバッグ実行用モードで動作する他のCPUブロックのデバッグ情報を分担して解析したり、あるいは逆に分担を依頼することなどが可能となる。
The
図4(a)〜(d)は、図1に示したCPUブロック(CPUBK)500aが備える4種類の動作モードを示した説明図である。図4(a)には、プログラム実行用モード(PMOD)に設定されたCPUブロック500aの動作内容が示されている。ここでは、中央処理装置(CPU)100内のデバッグ情報生成装置(DIG)120がコントロールレジスタ(CREG)110に応じた内容のデバッグ情報を取得し、それをデバッグ情報記憶装置(DIM)130に格納する。そして、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220は、このデバッグ情報記憶装置(DIM)130に格納されたデバッグ情報をデバッグ情報出力径路1(DO1)240を介して出力する。
4A to 4D are explanatory views showing four types of operation modes provided in the CPU block (CPUBK) 500a shown in FIG. FIG. 4A shows the operation content of the
図4(b)には、デバッグ実行用モード(DMOD)に設定され、図4(a)で述べたようなデバッグ情報出力径路1(DO1)240を介して出力されたデバッグ情報を収集する際のCPUブロック500aの動作内容が示されている。ここでは、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220が、他のプログラム実行用のCPUブロックからのデバッグ情報をデバッグ情報入力径路1(DI1)230を介して収集し、それをデバッグ情報記憶装置(DIM)130に格納する。中央処理装置(CPU)100は、デバッグ情報記憶装置(DIM)130に格納されたデバッグ情報に対して所定の解析等を行う。
FIG. 4B shows a case where the debug information output through the debug information output path 1 (DO1) 240 as set in the debug execution mode (DMOD) and described in FIG. 4A is collected. The operation contents of the
図4(c)には、デバッグ実行用モード(DMOD)に設定され、他のデバッグ実行用モード(DMOD)に設定されたCPUブロック間でデータ転送を行う際のCPUブロック500aの動作内容が示されている。ここでは、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220が、他のデバッグ実行用のCPUブロックから出力されたデバッグ情報や解析結果等をデバッグ情報入力径路2(DI2)250を介して受信し、それをデバッグ情報記憶装置(DIM)130に格納する。これによって、中央処理装置(CPU)100は、例えば、他のデバッグ実行用のCPUブロックからのデバッグ情報を対象に解析等を行うことができる。また、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220は、デバッグ情報記憶装置(DIM)130に格納されたデバッグ情報または解析結果等を受信し、それを、デバッグ情報出力径路2(DO2)260を介して他のデバッグ実行用のCPUブロックへ転送する。これによって、中央処理装置(CPU)100は、例えば、他のデバッグ実行用のCPUブロックに対してデバッグ情報の解析等を依頼することができる。
FIG. 4C shows the operation contents of the
図4(d)には、デバッグ実行用モード(DMOD)に設定され、図4(c)で述べたような解析等を終えたのち、それを外部出力端子(EOT)400を介して出力する際のCPUブロック500aの動作内容が示されている。ここでは、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220が、デバッグ情報記憶装置(DIM)130に格納された解析結果等を受信し、それをデバッグ情報出力径路2(DO2)260を介して外部出力端子(EOT)400に向けて出力する。また、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220は、同様にして他のデバッグ実行用のCPUブロックで得られた解析結果等をデバッグ情報入力径路2(DI2)250を介して受信し、それをデバッグ情報出力径路2(DO2)260を介して外部出力端子(EOT)400に向けて出力する。
In FIG. 4 (d), the debug execution mode (DMOD) is set, and after the analysis and the like described in FIG. 4 (c) is finished, it is output via the external output terminal (EOT) 400. The operation contents of the
図5は、図1の半導体集積回路装置において、プログラム実行用モードに設定されたCPUブロックとデバッグ実行用モードに設定されたCPUブロックとの間の接続例を示す説明図である。図5に示すように、プログラム実行用モード(PMOD)に設定されたCPUブロック(CPUBK[n−1])500aのデバッグ情報出力径路1(DO1)240が、デバッグ実行用モード(DMOD)に設定されたCPUブロック(CPUBK[n])500aのデバッグ情報入力径路1(DI1)230に接続される。このように、CPUBK[n−1]にCPUBK[n]を1対1で接続してデバッグを行うことで、デバッグの処理能力を向上させることが可能となる。 FIG. 5 is an explanatory diagram showing a connection example between the CPU block set in the program execution mode and the CPU block set in the debug execution mode in the semiconductor integrated circuit device of FIG. As shown in FIG. 5, the debug information output path 1 (DO1) 240 of the CPU block (CPUBK [n-1]) 500a set to the program execution mode (PMOD) is set to the debug execution mode (DMOD). Connected to the debug information input path 1 (DI1) 230 of the CPU block (CPUBK [n]) 500a. In this way, debugging can be performed by connecting CPUBK [n] to CPUBK [n−1] in a one-to-one manner and performing debugging.
図6は、図1の半導体集積回路装置において、デバッグ実行用モードに設定されたCPUブロック間の接続例を示す説明図である。図6に示すように、デバッグ実行用のCPUブロック(CPUBK[1],…,CPUBK[n])は、そのデバッグ情報入力径路2(DI2)250およびデバッグ情報出力径路2(DO2)260がリング状に接続されると共に、そのリング内の一部から外部出力端子(EOT)400に出力可能となっている。このようにリング接続を介して外部出力端子(EOT)400に接続することで、例えば、各CPUブロックに外部出力端子を設けずとも、各CPUブロックにおける解析結果等を外部出力端子に出力することが可能となる。また、リング接続によって、例えば、あるCPUブロックにおける解析結果等を複数のCPUブロックに分散したり、あるいは複数のCPUブロックにおける解析結果等を一つのCPUブロックに統合したりすることが可能となり、高性能なデバッグが実現可能となる。さらに、リング接続を用いると、このような情報のやり取りをバス接続で行う場合と比べて、配線を簡略化することができ、また、バスの調停に伴う帯域低下等も抑制できる。 FIG. 6 is an explanatory diagram showing a connection example between CPU blocks set in the debug execution mode in the semiconductor integrated circuit device of FIG. As shown in FIG. 6, the debug execution CPU block (CPUBK [1],..., CPUBK [n]) includes a debug information input path 2 (DI2) 250 and a debug information output path 2 (DO2) 260. Are connected to each other, and can be output to an external output terminal (EOT) 400 from a part of the ring. By connecting to the external output terminal (EOT) 400 through the ring connection in this manner, for example, the analysis result in each CPU block can be output to the external output terminal without providing the external output terminal in each CPU block. Is possible. Also, the ring connection makes it possible, for example, to distribute analysis results in a certain CPU block to a plurality of CPU blocks, or to integrate analysis results in a plurality of CPU blocks into one CPU block. Performance debugging can be realized. Furthermore, when ring connection is used, wiring can be simplified compared to the case where such information exchange is performed by bus connection, and a reduction in bandwidth associated with bus arbitration can be suppressed.
次に、図7〜図11を用いて、図1の半導体集積回路装置の具体的な使用例について説明する。まず、図7に示すように、モード設定レジスタ(MREG)210を介してプログラム実行用モードに設定されたCPUブロック(CPUBK[0],CPUBK[n−1])500aに対して、コントロールレジスタ(CREG)110を用いて取得したいデバッグ情報を指定する。そうすると、CPUBK[0],CPUBK[n−1]のそれぞれにおいて、指定されたデバッグ情報がデバッグ情報生成装置(DIG)120によってデバッグ情報記憶装置(DIM)130に格納され、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220が、この格納されたデバッグ情報をデバッグ情報出力径路1(DO1)240に出力する。 Next, a specific use example of the semiconductor integrated circuit device of FIG. 1 will be described with reference to FIGS. First, as shown in FIG. 7, a control register (CPUBK [0], CPUBK [n-1]) 500a set in a program execution mode via a mode setting register (MREG) 210 is controlled by a control register ( CREG) 110 is used to specify debug information to be acquired. Then, in each of the CPUBK [0] and CPUBK [n−1], the designated debug information is stored in the debug information storage device (DIM) 130 by the debug information generation device (DIG) 120, and the debug information storage device access controller. (DIMAC) 220 outputs the stored debug information to debug information output path 1 (DO1) 240.
一方、モード設定レジスタ(MREG)210を介してデバッグ実行用モードに設定されたCPUブロック(CPUBK[1])500aは、CPUBK[0]から出力されたデバッグ情報をデバッグ情報記憶装置アクセスコントローラ(DIMAC)220のデバッグ情報入力径路1(DI1)230を介して収集する。同様にして、デバッグ実行用モードに設定されたCPUブロック(CPUBK[n])500aも、CPUBK[n−1]から出力されたデバッグ情報を収集する。 On the other hand, the CPU block (CPUBK [1]) 500a set to the debug execution mode via the mode setting register (MREG) 210 receives the debug information output from the CPUBK [0] as the debug information storage device access controller (DIMAC). ) 220 debug information input path 1 (DI1) 230. Similarly, the CPU block (CPUBK [n]) 500a set to the debug execution mode also collects debug information output from the CPUBK [n−1].
ここで、例えば、CPUBK[0]が、仕事Aの一部と仕事Bの一部のプログラム処理を実行し、CPUBK[n−1]が、仕事Aの他の一部と仕事Bの他の一部のプログラム処理を実行したものとする。この場合、図8に示すように、CPUBK[1]の中央処理装置(CPU)100は、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220に対して、例えば仕事Bの一部に関するデバッグ情報をデバッグ情報記憶装置(DIM)130から取得させる。また、CPUBK[n]の中央処理装置(CPU)100は、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220に対して、例えば仕事Aの他の一部に関するデバッグ情報をデバッグ情報記憶装置(DIM)130から取得させる。 Here, for example, CPUBK [0] executes program processing of a part of work A and a part of work B, and CPUBK [n−1] It is assumed that some program processing has been executed. In this case, as shown in FIG. 8, the central processing unit (CPU) 100 of the CPUBK [1] sends debug information related to a part of the work B to the debug information storage device access controller (DIMAC) 220, for example, as debug information. Obtained from the storage device (DIM) 130. In addition, the central processing unit (CPU) 100 of the CPUBK [n] sends, for example, debug information related to another part of the work A to the debug information storage device access controller (DIMAC) 220, the debug information storage device (DIM) 130. To get from.
続いて、図9に示すように、CPUBK[1]の中央処理装置(CPU)100は、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220を用いて、仕事Bの一部に関するデバッグ情報をリング接続を介してCPUBK[n]に転送する。同様に、CPUBK[n]の中央処理装置(CPU)100は、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220を用いて、仕事Aの他の一部に関するデバッグ情報をリング接続を介してCPUBK[1]に転送する。次いで、CPUBK[1]のデバッグ情報記憶装置アクセスコントローラ(DIMAC)220は、リング接続を介して転送されてきた仕事Aの他の一部に関するデバッグ情報をデバッグ情報記憶装置(DIM)130に格納する。同様に、CPUBK[n]のデバッグ情報記憶装置アクセスコントローラ(DIMAC)220は、リング接続を介して転送されてきた仕事Bの一部に関するデバッグ情報をデバッグ情報記憶装置(DIM)130に格納する。そして、CPUBK[1]の中央処理装置(CPU)100は、前述した仕事Aの一部と他の一部に関するデバッグ情報を対象に解析等を行い、CPUBK[n]の中央処理装置(CPU)100は、前述した仕事Bの一部と他の一部に関するデバッグ情報を対象に解析等を行う。 Subsequently, as shown in FIG. 9, the central processing unit (CPU) 100 of the CPUBK [1] uses a debug information storage device access controller (DIMAC) 220 to ring-connect debug information related to a part of the work B. To CPUBK [n]. Similarly, the central processing unit (CPU) 100 of the CPUBK [n] uses the debug information storage device access controller (DIMAC) 220 to send debug information about another part of the work A to the CPUBK [1 via the ring connection. ]. Next, the debug information storage device access controller (DIMAC) 220 of the CPUBK [1] stores the debug information related to the other part of the work A transferred via the ring connection in the debug information storage device (DIM) 130. . Similarly, the debug information storage device access controller (DIMAC) 220 of CPUBK [n] stores the debug information related to a part of the work B transferred via the ring connection in the debug information storage device (DIM) 130. Then, the central processing unit (CPU) 100 of the CPUBK [1] performs analysis or the like on the debug information regarding part of the work A and the other part, and the central processing unit (CPU) of the CPUBK [n]. 100 performs an analysis or the like on the debug information regarding a part of the work B and the other part described above.
解析結果等が得られると、図10に示すように、CPUBK[1]の中央処理装置(CPU)100は、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220に対して、仕事Aに関する解析結果等をデバッグ情報記憶装置(DIM)130から取得させる。また、CPUBK[n]の中央処理装置(CPU)100は、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220に対して、仕事Bに関する解析結果等をデバッグ情報記憶装置(DIM)130から取得させる。そして、図11に示すように、CPUBK[1]の中央処理装置(CPU)100は、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220を用いて、仕事Aに関する解析結果等をリング接続を介して外部出力端子(EOT)400に出力する。同様に、CPUBK[n]の中央処理装置(CPU)100は、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220を用いて、仕事Bに関する解析結果等をリング接続を介して外部出力端子(EOT)400に出力する。 When the analysis result or the like is obtained, as shown in FIG. 10, the central processing unit (CPU) 100 of CPUBK [1] sends the analysis result or the like regarding the work A to the debug information storage device access controller (DIMAC) 220. It is acquired from the debug information storage device (DIM) 130. Further, the central processing unit (CPU) 100 of the CPUBK [n] causes the debug information storage device access controller (DIMAC) 220 to obtain the analysis result and the like regarding the work B from the debug information storage device (DIM) 130. Then, as shown in FIG. 11, the central processing unit (CPU) 100 of the CPUBK [1] uses the debug information storage device access controller (DIMAC) 220 to send the analysis result and the like regarding the work A to the outside via the ring connection. Output to an output terminal (EOT) 400. Similarly, the central processing unit (CPU) 100 of the CPUBK [n] uses the debug information storage device access controller (DIMAC) 220 to send the analysis result and the like regarding the work B to the external output terminal (EOT) 400 via the ring connection. Output to.
これにより、一つの処理プロセスが複数のCPUに分散して実行された場合でも、そのデバッグが容易に実現可能となる。なお、ここでは、仕事Aと仕事Bに関する解析等を行い、それぞれの解析結果等を全て出力する場合を例としたが、勿論、重要度に応じて仕事Aのみを対象に解析等を行い、その解析結果等を出力させるようなことも可能である。 Thereby, even when one processing process is distributed and executed on a plurality of CPUs, debugging thereof can be easily realized. In addition, here, the case where the analysis on the work A and the work B is performed and the respective analysis results are all output is taken as an example, but of course, the analysis is performed only on the work A according to the importance, It is also possible to output the analysis result and the like.
以上のように、本実施の形態1の半導体集積回路装置を用いることで、代表的には、プログラムデバッグの容易化またはプログラムデバッグの低コスト化などを実現可能となる。すなわち、ごくわずかなハードウェアの追加により、単一のCPUを、通常演算用プロセッサとしても、デバッグ実行用プロセッサとしても動作させることができる。同様に、ごくわずかなハードウェアの追加により、(1)複数のCPUから出力される膨大なデバッグ用情報/性能チューニング用情報を収集し、(2)それらの情報を必要に応じて複数のデバッグ実行用CPUに配分し、(3)収集した膨大なデバッグ用情報/性能チューニング用情報の中から重要度の高い情報のみを取り出して出力したり、情報を加工して出力することが可能な、従来手法よりもはるかに強力なデバッグ能力/性能チューニング能力を持つ半導体集積回路装置を実現することができる。さらに、以上の効果が実現できるにもかかわらず、これらを実現するために必要なハードウェアコストならびに実装コストは、従来手法と比較して大幅に削減することができる。 As described above, by using the semiconductor integrated circuit device according to the first embodiment, typically, it is possible to facilitate program debugging or reduce the cost of program debugging. That is, with the addition of a very small amount of hardware, a single CPU can be operated as both a normal arithmetic processor and a debug execution processor. Similarly, with the addition of very little hardware, (1) a large amount of debugging information / performance tuning information output from multiple CPUs is collected, and (2) such information is debugged as needed. (3) It is possible to extract and output only highly important information from the huge amount of debugging information / performance tuning information collected, or to process and output the information. It is possible to realize a semiconductor integrated circuit device having much stronger debugging capability / performance tuning capability than the conventional method. Furthermore, although the above effects can be realized, the hardware cost and the implementation cost necessary to realize these can be greatly reduced as compared with the conventional method.
(実施の形態2)
図12は、本発明の実施の形態2による半導体集積回路装置において、それに含まれる各CPUブロックの構成例を示すブロック図である。図12に示すCPUブロック500bは、図3に示したCPUブロック500aと比較して、付加回路(AM)200内の構成が異なっている。それ以外の構成に関しては、図3と同様であるため詳細な説明は省略する。
(Embodiment 2)
FIG. 12 is a block diagram showing a configuration example of each CPU block included in the semiconductor integrated circuit device according to the second embodiment of the present invention. The
図12に示す付加回路(AM)200は、モード設定レジスタ(MREG)210、デバッグ情報記憶装置アクセスコントローラ(DIMAC)220、デバッグ情報入力径路1(DI1)230、デバッグ情報出力径路1(DO1)240、デバッグ情報入力径路2(DI2)250、デバッグ情報出力径路2(DO2)260、入出力インタフェース(IOIF)300から構成される。モード設定レジスタ(MREG)210は、中央処理装置(CPU)100に対して「プログラム実行用モード」と「デバッグ実行用モード」の2つのモードのうちどちらで動作するのかを設定する機能を有する。プログラム実行用モードが選択されている場合は、中央処理装置(CPU)100は、モード設定レジスタ(MREG)210を持たない状態と同様に、与えられたプログラムに従って演算処理動作を実行する。デバッグ実行用モードが選択されている場合は、中央処理装置(CPU)100は、通常のプログラムではなくデバッグ実行用のプログラムを実行する。 An additional circuit (AM) 200 shown in FIG. 12 includes a mode setting register (MREG) 210, a debug information storage device access controller (DIMAC) 220, a debug information input path 1 (DI1) 230, and a debug information output path 1 (DO1) 240. , Debug information input path 2 (DI2) 250, debug information output path 2 (DO2) 260, and input / output interface (IOIF) 300. The mode setting register (MREG) 210 has a function of setting which of the two modes of “program execution mode” and “debug execution mode” to the central processing unit (CPU) 100 to operate. When the program execution mode is selected, the central processing unit (CPU) 100 executes an arithmetic processing operation in accordance with a given program in the same manner as when the mode setting register (MREG) 210 is not provided. When the debug execution mode is selected, the central processing unit (CPU) 100 executes a debug execution program instead of a normal program.
デバッグ情報記憶装置アクセスコントローラ(DIMAC)220は、デバッグ情報記憶装置(DIM)130、ならびにデバッグ情報入力径路1(DI1)230、デバッグ情報出力径路1(DO1)240、デバッグ情報入力径路2(DI2)250、ならびにデバッグ情報出力径路2(DO2)260の各々の間のデバッグ情報の入出力を制御する機能を有する。デバッグ情報入力径路1(DI1)230は、プログラム実行用モードで動作する中央処理装置(CPU)100のデバッグ情報を、デバッグ実行用モードで動作する別の中央処理装置(CPU)100へ転送するときの入力径路としての機能を有する。デバッグ情報出力径路1(DO1)240は、プログラム実行用モードで動作する中央処理装置(CPU)100のデバッグ情報を、デバッグ実行用モードで動作する別の中央処理装置(CPU)100へ転送する時の出力径路としての機能を有する。デバッグ情報入力径路2(DI2)250は、デバッグ実行用モードで動作する中央処理装置(CPU)100のデバッグ情報を、同様にデバッグ実行用モードで動作する別の中央処理装置(CPU)100へ転送するときの入力径路としての機能を有する。デバッグ情報出力径路2(DO2)260は、デバッグ実行用モードで動作する中央処理装置(CPU)100のデバッグ情報を、同様にデバッグ実行用モードで動作する別の中央処理装置(CPU)100へ転送するときの出力径路としての機能を有する。 The debug information storage device access controller (DIMAC) 220 includes a debug information storage device (DIM) 130, a debug information input path 1 (DI1) 230, a debug information output path 1 (DO1) 240, and a debug information input path 2 (DI2). 250 and a debug information output path 2 (DO2) 260 each having a function of controlling input / output of debug information. The debug information input path 1 (DI1) 230 is used to transfer the debug information of the central processing unit (CPU) 100 operating in the program execution mode to another central processing unit (CPU) 100 operating in the debug execution mode. Function as an input path. The debug information output path 1 (DO1) 240 is used to transfer debug information of the central processing unit (CPU) 100 operating in the program execution mode to another central processing unit (CPU) 100 operating in the debug execution mode. Function as an output path. The debug information input path 2 (DI2) 250 transfers debug information of the central processing unit (CPU) 100 that operates in the debug execution mode to another central processing unit (CPU) 100 that also operates in the debug execution mode. It has a function as an input path. The debug information output path 2 (DO2) 260 transfers debug information of the central processing unit (CPU) 100 that operates in the debug execution mode to another central processing unit (CPU) 100 that also operates in the debug execution mode. It has a function as an output path when
入出力インタフェース(IOIF)300は、入出力セレクタ(IOSEL)310ならびに入出力コネクタ(IOC)320から構成される。入出力セレクタ(IOSEL)310は、デバッグ情報入力径路1(DI1)230とデバッグ情報出力径路1(DO1)240のいずれかを選択して入出力コネクタ(IOC)320に接続する機能を有する。入出力コネクタ(IOC)320は、入出力セレクタ(IOSEL)310によって選択されたデバッグ情報入力径路1(DI1)230もしくはデバッグ情報出力径路1(DO1)240を、他の中央処理装置(CPU)100の入出力コネクタ(IOC)に入力もしくは出力する機能を有する。 The input / output interface (IOIF) 300 includes an input / output selector (IOSEL) 310 and an input / output connector (IOC) 320. The input / output selector (IOSEL) 310 has a function of selecting either the debug information input path 1 (DI1) 230 or the debug information output path 1 (DO1) 240 and connecting it to the input / output connector (IOC) 320. The input / output connector (IOC) 320 is connected to the debug information input path 1 (DI1) 230 or the debug information output path 1 (DO1) 240 selected by the input / output selector (IOSEL) 310 to another central processing unit (CPU) 100. Input / output connector (IOC).
図13は、本発明の実施の形態2による半導体集積回路装置において、その全体構成例を示すブロック図である。図13に示す半導体集積回路装置は、前述した図1の半導体集積回路装置とほぼ同様な構成となっているが、図1のCPUブロック(CPUBK)500aが図12のCPUブロック(CPUBK)500bに置き換わったことに伴い各CPUブロック間の配線が若干異なっている。すなわち、図13では、プログラム実行用モード(PMOD)に設定されたCPUブロック(CPUBK[0])500bの入出力コネクタ(IOC)320が、デバッグ実行用モード(DMOD)に設定されたCPUブロック(CPUBK[1])500bの入出力コネクタ(IOC)320に電気的に結合される。同様に、プログラム実行用モード(PMOD)に設定されたCPUブロック(CPUBK[n−1])500b(n=3,5,…)の入出力コネクタ(IOC)320は、デバッグ実行用モード(DMOD)に設定されたCPUブロック(CPUBK[n])500bの入出力コネクタ(IOC)320に電気的に結合される。なお、デバッグ実行用のCPUブロック(CPUBK[1],…,CPUBK[n])間におけるリング接続に関しては、図1の構成例と同様である。 FIG. 13 is a block diagram showing an example of the overall configuration of a semiconductor integrated circuit device according to the second embodiment of the present invention. The semiconductor integrated circuit device shown in FIG. 13 has substantially the same configuration as the semiconductor integrated circuit device shown in FIG. 1, but the CPU block (CPUBK) 500a in FIG. 1 is replaced with the CPU block (CPUBK) 500b in FIG. With the replacement, the wiring between the CPU blocks is slightly different. That is, in FIG. 13, the input / output connector (IOC) 320 of the CPU block (CPUBK [0]) 500b set to the program execution mode (PMOD) is set to the CPU block (DMOD) set to the debug execution mode (DMOD). CPUBK [1]) is electrically coupled to an input / output connector (IOC) 320 of 500b. Similarly, the input / output connector (IOC) 320 of the CPU block (CPUBK [n−1]) 500b (n = 3, 5,...) Set in the program execution mode (PMOD) is in the debug execution mode (DMOD). ) Is electrically coupled to the input / output connector (IOC) 320 of the CPU block (CPUBK [n]) 500b set to (). The ring connection between the CPU blocks (CPUBK [1],..., CPUBK [n]) for debug execution is the same as the configuration example of FIG.
図14(a)は、図13の半導体集積回路装置における実装形態の一例を示す概略図であり、図14(b)は、図14(a)における入出力コネクタ(IOC)320の構成例を示す回路図である。図14(a)に示す半導体集積回路装置は、例えば、2枚の半導体チップ(CP1,CP2)600が三次元的に積層搭載された構成となっている。CP1には、図13に示したプログラム実行用のCPUブロック(CPUBK[0],…,CPUBK[n−1])500bが形成され、CP2には、図13に示したデバッグ実行用のCPUブロック(CPUBK[1],…,CPUBK[n])500bが形成される。 14A is a schematic diagram showing an example of a mounting form in the semiconductor integrated circuit device of FIG. 13, and FIG. 14B is a configuration example of the input / output connector (IOC) 320 in FIG. 14A. FIG. The semiconductor integrated circuit device shown in FIG. 14A has a configuration in which, for example, two semiconductor chips (CP1, CP2) 600 are three-dimensionally stacked and mounted. A CPU block (CPUBK [0],..., CPUBK [n−1]) 500b for program execution shown in FIG. 13 is formed in CP1, and a CPU block for debug execution shown in FIG. (CPUBK [1],..., CPUBK [n]) 500b is formed.
前述したCPUBK[0],…,CPUBK[n−1]内の入出力コネクタ(IOC)320と、CPUBK[1],…,CPUBK[n]内の入出力コネクタ(IOC)320との結合は、図14(b)に示すように、ワイヤレスインターコネクト技術や、あるいは貫通ビア技術によって構築される。すなわち、図14(b)に示すように、例えば半導体チップCP1上に入出力コネクタ(IOCa1)を設け、半導体チップCP2上に入出力コネクタ(IOCa2)を設けると、IOCa1とIOCa2間で電磁誘導結合(M)を用いたワイヤレス通信が行える。また、例えば半導体チップCP1上に入出力コネクタ(IOCb1)を設け、半導体チップCP2上に入出力コネクタ(IOCb2)を設けると、IOCb1とIOCb2間で静電誘導結合(C)を用いたワイヤレス通信が行える。さらに、例えば半導体チップCP1上に入出力コネクタ(IOCc1)を設け、半導体チップCP2上に入出力コネクタ(IOCc2)を設けると、IOCc1とIOCc2間で貫通ビア(VIA)を介した有線通信が行える。 The above-described input / output connector (IOC) 320 in CPUBK [0],..., CPUBK [n−1] and input / output connector (IOC) 320 in CPUBK [1],. As shown in FIG. 14B, it is constructed by wireless interconnect technology or through via technology. That is, as shown in FIG. 14B, for example, when an input / output connector (IOCa1) is provided on the semiconductor chip CP1 and an input / output connector (IOCa2) is provided on the semiconductor chip CP2, electromagnetic induction coupling is performed between IOCa1 and IOCa2. Wireless communication using (M) can be performed. For example, when an input / output connector (IOCb1) is provided on the semiconductor chip CP1 and an input / output connector (IOCb2) is provided on the semiconductor chip CP2, wireless communication using electrostatic induction coupling (C) is performed between the IOCb1 and the IOCb2. Yes. Further, for example, when an input / output connector (IOCc1) is provided on the semiconductor chip CP1 and an input / output connector (IOCc2) is provided on the semiconductor chip CP2, wired communication can be performed between the IOCc1 and the IOCc2 via a through via (VIA).
図15は、図13の半導体集積回路装置において、プログラム実行用モードに設定されたCPUブロックとデバッグ実行用モードに設定されたCPUブロックとの間の接続例を示す説明図である。図15に示すように、プログラム実行用モード(PMOD)に設定されたCPUブロック(CPUBK[n−1])500bでは、デバッグ情報出力径路1(DO1)240が入出力セレクタ(IOSEL)310を介して入出力コネクタ(IOC)320に接続される。一方、デバッグ実行用モード(DMOD)に設定されたCPUブロック(CPUBK[n])500bでは、デバッグ情報入力径路1(DI1)230が入出力セレクタ(IOSEL)310を介して入出力コネクタ(IOC)320に接続される。この2個の入出力コネクタ(IOC)320を電気的に結合することで、CPUBK[n−1]のデバッグ情報出力径路1(DO1)240がCPUBK[n]のデバッグ情報入力径路1(DI1)230に接続される。 FIG. 15 is an explanatory diagram showing a connection example between the CPU block set in the program execution mode and the CPU block set in the debug execution mode in the semiconductor integrated circuit device of FIG. As shown in FIG. 15, in the CPU block (CPUBK [n−1]) 500 b set in the program execution mode (PMOD), the debug information output path 1 (DO1) 240 passes through the input / output selector (IOSEL) 310. To the input / output connector (IOC) 320. On the other hand, in the CPU block (CPUBK [n]) 500b set to the debug execution mode (DMOD), the debug information input path 1 (DI1) 230 is connected to the input / output connector (IOC) via the input / output selector (IOSEL) 310. 320 is connected. By electrically coupling the two input / output connectors (IOC) 320, the debug information output path 1 (DO1) 240 of the CPUBK [n-1] becomes the debug information input path 1 (DI1) of the CPUBK [n]. 230.
このように、デバッグ情報入力径路1(DI1)230とデバッグ情報出力径路1(DO1)240への接続を兼用した入出力コネクタ(IOC)320を用いることで、プログラム実行用のCPUブロックとデバッグ実行用のCPUブロックとの間の通信径路を簡略化できる。デバッグ期間中、プログラム実行用のCPUブロックの入出力コネクタ(IOC)320からは常時出力が行われ、デバッグ実行用のCPUブロックの入出力コネクタ(IOC)320からは常時入力が行われ、入力と出力の切り替えは特に生じないため、このような入出力コネクタ(IOC)320を用いても、通信効率の低下等は生じない。 Thus, by using the input / output connector (IOC) 320 that is also used for connection to the debug information input path 1 (DI1) 230 and the debug information output path 1 (DO1) 240, the CPU block for program execution and the debug execution It is possible to simplify the communication path with the CPU block. During the debugging period, output is always performed from the input / output connector (IOC) 320 of the CPU block for program execution, and input is always performed from the input / output connector (IOC) 320 of the CPU block for debug execution. Since output switching does not occur in particular, the use of such an input / output connector (IOC) 320 does not cause a reduction in communication efficiency.
図16は、図13の半導体集積回路装置において、デバッグ実行用モードに設定されたCPUブロック間の接続例を示す説明図である。図16に示すように、デバッグ実行用のCPUブロック(CPUBK[1],…,CPUBK[n])は、そのデバッグ情報入力径路2(DI2)250およびデバッグ情報出力径路2(DO2)260がリング状に接続されると共に、そのリング内の一部から外部出力端子(EOT)400に出力可能となっている。これによって、図6等と同様の効果が得られる。 FIG. 16 is an explanatory diagram showing a connection example between CPU blocks set in the debug execution mode in the semiconductor integrated circuit device of FIG. As shown in FIG. 16, the debug execution CPU block (CPUBK [1],..., CPUBK [n]) includes a debug information input path 2 (DI2) 250 and a debug information output path 2 (DO2) 260. Are connected to each other, and can be output to an external output terminal (EOT) 400 from a part of the ring. As a result, the same effect as in FIG.
以上のように、本実施の形態2の半導体集積回路装置を用いることで、実施の形態1の場合と同様に、代表的には、プログラムデバッグの容易化またはプログラムデバッグの低コスト化などを実現可能となる。また、これらの効果を、実施の形態1の場合と比べて、更に向上させることが可能となる。すなわち、図14に示したように、同一構成となる2個の半導体チップCP1,CP2を作製し、例えば、プログラム開発用の装置として、それらを貫通ビア(VIA)で接続した半導体集積回路装置を作製する。そして、CP2をデバッグモジュールとしてCP1を用いたプログラム開発のデバッグを行い、最終的に、この開発したプログラムと積層を行わない1個の半導体チップ(CP1またはCP2)を市場に提供する。このような方式を用いると、従来のように、各製品毎にデバッグモジュールを新たに開発する必要はなく、また、従来のように、デバッグモジュールをCP1自身に組み込む必要もない。したがって、更なるプログラムデバッグの容易化またはプログラムデバッグの低コスト化が可能となり、加えて半導体チップ自体の低コスト化も図れる。 As described above, by using the semiconductor integrated circuit device of the second embodiment, as in the case of the first embodiment, typically, it is possible to facilitate program debugging or reduce the cost of program debugging. It becomes possible. Further, these effects can be further improved as compared with the case of the first embodiment. That is, as shown in FIG. 14, two semiconductor chips CP1 and CP2 having the same configuration are manufactured, and for example, a semiconductor integrated circuit device in which they are connected by through vias (VIA) as a device for program development. Make it. Then, debugging of program development using CP1 using CP2 as a debug module is performed, and finally, one semiconductor chip (CP1 or CP2) not stacked with the developed program is provided to the market. When such a method is used, it is not necessary to newly develop a debug module for each product as in the prior art, and it is not necessary to incorporate the debug module into CP1 itself as in the prior art. Therefore, it is possible to further facilitate program debugging or to reduce the cost of program debugging, and to reduce the cost of the semiconductor chip itself.
また、前述した貫通ビア(VIA)を備えたデバッグ用の半導体集積回路装置を作製する代わりに、図14(b)に示したようなワイヤレスインターコネクト技術を備えた半導体チップCP1,CP2を作製する。そして、CP1上にCP2を重ね合わせ、この状態で、CP2をデバッグモジュールとしてCP1を用いたプログラム開発のデバッグを行う。このような方式を用いると、前述した貫通ビア(VIA)の場合の効果に加えて、更に、CP1,CP2を物理的に接続せずともデバッグが実行可能となるため、必要なときのみ、非常に簡易な手段で、高性能なデバッグを実現することが可能になる。 Further, instead of manufacturing the semiconductor integrated circuit device for debugging having the above-described through via (VIA), the semiconductor chips CP1 and CP2 having the wireless interconnect technology as shown in FIG. 14B are manufactured. Then, CP2 is superimposed on CP1, and in this state, program development using CP1 is debugged using CP2 as a debug module. If such a method is used, in addition to the effect of the above-described through via (VIA), it is possible to execute debugging without physically connecting CP1 and CP2, so only when necessary It is possible to realize high-performance debugging with simple means.
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。 As mentioned above, the invention made by the present inventor has been specifically described based on the embodiments. However, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the invention.
100 中央処理装置(CPU)
110 コントロールレジスタ(CREG)
120 デバッグ情報生成装置(DIG)
130 デバッグ情報記憶装置(DIM)
200 付加回路(AM)
210 モード設定レジスタ(MREG)
220 デバッグ情報記憶装置アクセスコントローラ(DIMAC)
230 デバッグ情報入力径路1(DI1)
240 デバッグ情報出力径路1(DO1)
250 デバッグ情報入力径路2(DI2)
260 デバッグ情報出力径路2(DO2)
300 入出力インタフェース(IOIF)
310 入出力セレクタ(IOSEL)
320 入出力コネクタ(IOC)
400 外部出力端子(EOT)
500 CPUブロック(CPUBK)
600 半導体チップ(CP)
100 Central processing unit (CPU)
110 Control register (CREG)
120 Debug information generator (DIG)
130 Debug information storage (DIM)
200 Additional circuit (AM)
210 Mode setting register (MREG)
220 Debug information storage device access controller (DIMAC)
230 Debug information input path 1 (DI1)
240 Debug information output path 1 (DO1)
250 Debug information input path 2 (DI2)
260 Debug information output path 2 (DO2)
300 Input / output interface (IOIF)
310 Input / output selector (IOSEL)
320 Input / output connector (IOC)
400 External output terminal (EOT)
500 CPU blocks (CPUBK)
600 Semiconductor chip (CP)
Claims (16)
前記第1中央演算処理回路をプログラム実行用モードで動作させるかデバッグ実行用モードで動作させるかを設定する第1モードレジスタと、
第1入力ノードおよび第1出力ノードを持ち、前記第1入力ノードに入力されたデータを前記第1メモリに書き込む第1入力機能と、前記第1メモリから読み出したデータを前記第1出力ノードに出力する第1出力機能を含んだ第1コントローラと、
処理データを格納する第2メモリを含んだ第2中央演算処理回路と、
前記第2中央演算処理回路を前記プログラム実行用モードで動作させるか前記デバッグ実行用モードで動作させるかを設定する第2モードレジスタと、
第2入力ノードおよび第2出力ノードを持ち、前記第2入力ノードに入力されたデータを前記第2メモリに書き込む第2入力機能と、前記第2メモリから読み出したデータを前記第2出力ノードに出力する第2出力機能を含んだ第2コントローラと、
第1通信径路とを備え、
前記第1中央演算処理回路は、前記第1モードレジスタの設定に応じて前記プログラム実行用モードで動作し、
前記第1コントローラは、前記第1中央演算処理回路が前記プログラム実行用モードで動作する際に、前記第1出力機能を用いて前記第1メモリのデータを前記第1通信径路に伝送し、
前記第2中央演算処理回路は、前記第2モードレジスタの設定に応じて前記デバッグ実行用モードで動作し、
前記第2コントローラは、前記第2中央演算処理回路が前記デバッグ実行用モードで動作する際に、前記第2入力機能を用いて、前記第1通信径路を介して伝送された前記第1メモリのデータを前記第2メモリに伝送することを特徴とする半導体集積回路装置。 A first central processing circuit including a first memory for storing processing data;
A first mode register for setting whether to operate the first central processing circuit in a program execution mode or a debug execution mode;
A first input function having a first input node and a first output node, and writing data input to the first input node to the first memory; and data read from the first memory to the first output node A first controller including a first output function for outputting;
A second central processing circuit including a second memory for storing processing data;
A second mode register for setting whether to operate the second central processing circuit in the program execution mode or the debug execution mode;
A second input function having a second input node and a second output node, and writing data input to the second input node to the second memory; and data read from the second memory to the second output node A second controller including a second output function for outputting;
A first communication path;
The first central processing circuit operates in the program execution mode according to the setting of the first mode register,
The first controller transmits the data in the first memory to the first communication path using the first output function when the first central processing circuit operates in the program execution mode.
The second central processing circuit operates in the debug execution mode according to the setting of the second mode register,
When the second central processing circuit operates in the debug execution mode, the second controller uses the second input function to transmit the first memory transmitted via the first communication path. A semiconductor integrated circuit device, wherein data is transmitted to the second memory.
処理データを格納する第3メモリを含んだ第3中央演算処理回路と、
前記第3中央演算処理回路を前記プログラム実行用モードで動作させるか前記デバッグ実行用モードで動作させるかを設定する第3モードレジスタと、
第3入力ノードおよび第3出力ノードを持ち、前記第3入力ノードに入力されたデータを前記第3メモリに書き込む第3入力機能と、前記第3メモリから読み出したデータを前記第3出力ノードに出力する第3出力機能を含んだ第3コントローラと、
処理データを格納する第4メモリを含んだ第4中央演算処理回路と、
前記第4中央演算処理回路を前記プログラム実行用モードで動作させるか前記デバッグ実行用モードで動作させるかを設定する第4モードレジスタと、
第4入力ノードおよび第4出力ノードを持ち、前記第4入力ノードに入力されたデータを前記第4メモリに書き込む第4入力機能と、前記第4メモリから読み出したデータを前記第4出力ノードに出力する第4出力機能を含んだ第4コントローラと、
第2通信径路とを備え、
前記第3中央演算処理回路は、前記第3モードレジスタの設定に応じて前記プログラム実行用モードで動作し、
前記第3コントローラは、前記第3中央演算処理回路が前記プログラム実行用モードで動作する際に、前記第3出力機能を用いて前記第3メモリのデータを前記第2通信径路に伝送し、
前記第4中央演算処理回路は、前記第4モードレジスタの設定に応じて前記デバッグ実行用モードで動作し、
前記第4コントローラは、前記第4中央演算処理回路が前記デバッグ実行用モードで動作する際に、前記第4入力機能を用いて、前記第2通信径路を介して伝送された前記第3メモリのデータを前記第4メモリに伝送し、
前記第2コントローラは、さらに、
第5入力ノードおよび第5出力ノードと、
前記第2中央演算処理回路が前記デバッグ実行用モードで動作する際に、前記第5入力ノードに入力されたデータを前記第2メモリに書き込む第5入力機能と、
前記第2中央演算処理回路が前記デバッグ実行用モードで動作する際に、前記第2メモリから読み出したデータを前記第5出力ノードに出力する第5出力機能とを備え、
前記第4コントローラは、さらに、
第6入力ノードおよび第6出力ノードと、
前記第4中央演算処理回路が前記デバッグ実行用モードで動作する際に、前記第6入力ノードに入力されたデータを前記第4メモリに書き込む第6入力機能と、
前記第4中央演算処理回路が前記デバッグ実行用モードで動作する際に、前記第4メモリから読み出したデータを前記第6出力ノードに出力する第6出力機能とを備え、
前記第5入力ノードは、前記第6出力ノードとの間で第3通信径路を持ち、
前記第6入力ノードは、前記第5出力ノードとの間で第4通信径路を持つことを特徴とする半導体集積回路装置。 2. The semiconductor integrated circuit device according to claim 1, further comprising:
A third central processing circuit including a third memory for storing processing data;
A third mode register for setting whether to operate the third central processing circuit in the program execution mode or the debug execution mode;
A third input node having a third input node and a third output node; a third input function for writing data input to the third input node to the third memory; and data read from the third memory to the third output node A third controller including a third output function for outputting;
A fourth central processing circuit including a fourth memory for storing processing data;
A fourth mode register for setting whether to operate the fourth central processing circuit in the program execution mode or the debug execution mode;
A fourth input function having a fourth input node and a fourth output node and writing data input to the fourth input node to the fourth memory; and data read from the fourth memory to the fourth output node A fourth controller including a fourth output function for outputting;
A second communication path,
The third central processing circuit operates in the program execution mode according to the setting of the third mode register,
When the third central processing circuit operates in the program execution mode, the third controller transmits the data in the third memory to the second communication path using the third output function,
The fourth central processing circuit operates in the debug execution mode according to the setting of the fourth mode register,
When the fourth central processing circuit operates in the debug execution mode, the fourth controller uses the fourth input function to transmit the third memory transmitted through the second communication path. Transmitting data to the fourth memory;
The second controller further includes:
A fifth input node and a fifth output node;
A fifth input function for writing data input to the fifth input node to the second memory when the second central processing circuit operates in the debug execution mode;
A fifth output function for outputting data read from the second memory to the fifth output node when the second central processing circuit operates in the debug execution mode;
The fourth controller further includes:
A sixth input node and a sixth output node;
A sixth input function for writing data input to the sixth input node to the fourth memory when the fourth central processing circuit operates in the debug execution mode;
A sixth output function for outputting data read from the fourth memory to the sixth output node when the fourth central processing circuit operates in the debug execution mode;
The fifth input node has a third communication path with the sixth output node;
The semiconductor integrated circuit device, wherein the sixth input node has a fourth communication path between the sixth input node and the fifth output node.
前記半導体集積回路装置は、さらに、前記プログラム実行用モードに設定されるN個(Nは整数)の中央演算処理回路と、これと1対1で対応するように、前記デバッグ実行用モードに設定されるN個の中央演算処理回路とを有する半導体集積回路装置。 The semiconductor integrated circuit device according to claim 2.
The semiconductor integrated circuit device is further set in the debug execution mode so as to correspond one-to-one with the N (N is an integer) central processing circuits set in the program execution mode. A semiconductor integrated circuit device having N central processing circuits.
前記第3通信径路および前記第4通信径路は、1個のリング配線径路内に構築されることを特徴とする半導体集積回路装置。 The semiconductor integrated circuit device according to claim 2.
The semiconductor integrated circuit device, wherein the third communication path and the fourth communication path are constructed in one ring wiring path.
前記リング配線径路の一部に接続された外部出力端子を有することを特徴とする半導体集積回路装置。 5. The semiconductor integrated circuit device according to claim 4, further comprising:
A semiconductor integrated circuit device having an external output terminal connected to a part of the ring wiring path.
前記第1および第3中央演算処理回路、前記第1および第3モードレジスタ、および前記第1および第3コントローラは、第1半導体チップに形成され、
前記第2および第4中央演算処理回路、前記第2および第4モードレジスタ、および前記第2および第4コントローラは、第2半導体チップに形成され、
前記第1半導体チップと前記第2半導体チップは、三次元的に積層搭載されることを特徴とする半導体集積回路装置。 The semiconductor integrated circuit device according to claim 2.
The first and third central processing circuits, the first and third mode registers, and the first and third controllers are formed in a first semiconductor chip,
The second and fourth central processing circuits, the second and fourth mode registers, and the second and fourth controllers are formed in a second semiconductor chip,
The semiconductor integrated circuit device, wherein the first semiconductor chip and the second semiconductor chip are three-dimensionally stacked and mounted.
前記第1半導体チップと前記第2半導体チップ間の通信径路となる第1および第2通信径路とを備え、
前記第1半導体チップは、
処理データを格納する第1メモリを含んだ第1中央演算処理回路と、
前記第1中央演算処理回路をプログラム実行用モードで動作させるかデバッグ実行用モードで動作させるかを設定する第1モードレジスタと、
第1入力ノードおよび第1出力ノードを持ち、前記第1入力ノードに入力されたデータを前記第1メモリに書き込む第1入力機能と、前記第1メモリから読み出したデータを前記第1出力ノードに出力する第1出力機能を含んだ第1コントローラと、
処理データを格納する第3メモリを含んだ第3中央演算処理回路と、
前記第3中央演算処理回路を前記プログラム実行用モードで動作させるか前記デバッグ実行用モードで動作させるかを設定する第3モードレジスタと、
第3入力ノードおよび第3出力ノードを持ち、前記第3入力ノードに入力されたデータを前記第3メモリに書き込む第3入力機能と、前記第3メモリから読み出したデータを前記第3出力ノードに出力する第3出力機能を含んだ第3コントローラとを有し、
前記第2半導体チップは、
処理データを格納する第2メモリを含んだ第2中央演算処理回路と、
前記第2中央演算処理回路を前記プログラム実行用モードで動作させるか前記デバッグ実行用モードで動作させるかを設定する第2モードレジスタと、
第2入力ノードおよび第2出力ノードを持ち、前記第2入力ノードに入力されたデータを前記第2メモリに書き込む第2入力機能と、前記第2メモリから読み出したデータを前記第2出力ノードに出力する第2出力機能を含んだ第2コントローラと、
処理データを格納する第4メモリを含んだ第4中央演算処理回路と、
前記第4中央演算処理回路を前記プログラム実行用モードで動作させるか前記デバッグ実行用モードで動作させるかを設定する第4モードレジスタと、
第4入力ノードおよび第4出力ノードを持ち、前記第4入力ノードに入力されたデータを前記第4メモリに書き込む第4入力機能と、前記第4メモリから読み出したデータを前記第4出力ノードに出力する第4出力機能を含んだ第4コントローラとを有し、
前記第1および第3中央演算処理回路は、前記第1および第3モードレジスタの設定に応じて前記プログラム実行用モードで動作し、
前記第2および第4中央演算処理回路は、前記第2および第4モードレジスタの設定に応じて前記デバッグ実行用モードで動作し、
前記第1コントローラは、前記第1出力機能を用いて前記第1メモリのデータを前記第1通信径路に伝送し、
前記第2コントローラは、前記第2入力機能を用いて、前記第1通信径路を介して伝送された前記第1メモリのデータを前記第2メモリに伝送し、
前記第3コントローラは、前記第3出力機能を用いて前記第3メモリのデータを前記第2通信径路に伝送し、
前記第4コントローラは、前記第4入力機能を用いて、前記第2通信径路を介して伝送された前記第3メモリのデータを前記第4メモリに伝送することを特徴とする半導体集積回路装置。 A first semiconductor chip and a second semiconductor chip which are three-dimensionally stacked and mounted;
A first communication path and a second communication path serving as a communication path between the first semiconductor chip and the second semiconductor chip;
The first semiconductor chip is
A first central processing circuit including a first memory for storing processing data;
A first mode register for setting whether to operate the first central processing circuit in a program execution mode or a debug execution mode;
A first input function having a first input node and a first output node, and writing data input to the first input node to the first memory; and data read from the first memory to the first output node A first controller including a first output function for outputting;
A third central processing circuit including a third memory for storing processing data;
A third mode register for setting whether to operate the third central processing circuit in the program execution mode or the debug execution mode;
A third input node having a third input node and a third output node; a third input function for writing data input to the third input node to the third memory; and data read from the third memory to the third output node A third controller including a third output function for outputting,
The second semiconductor chip is
A second central processing circuit including a second memory for storing processing data;
A second mode register for setting whether to operate the second central processing circuit in the program execution mode or the debug execution mode;
A second input function having a second input node and a second output node, and writing data input to the second input node to the second memory; and data read from the second memory to the second output node A second controller including a second output function for outputting;
A fourth central processing circuit including a fourth memory for storing processing data;
A fourth mode register for setting whether to operate the fourth central processing circuit in the program execution mode or the debug execution mode;
A fourth input function having a fourth input node and a fourth output node and writing data input to the fourth input node to the fourth memory; and data read from the fourth memory to the fourth output node A fourth controller including a fourth output function for outputting,
The first and third central processing circuits operate in the program execution mode according to the settings of the first and third mode registers,
The second and fourth central processing circuits operate in the debug execution mode according to the settings of the second and fourth mode registers,
The first controller transmits the data of the first memory to the first communication path using the first output function,
The second controller transmits the data of the first memory transmitted through the first communication path to the second memory using the second input function,
The third controller transmits the data of the third memory to the second communication path using the third output function,
The semiconductor integrated circuit device, wherein the fourth controller uses the fourth input function to transmit the data in the third memory transmitted through the second communication path to the fourth memory.
前記第2コントローラは、さらに、
第5入力ノードおよび第5出力ノードと、
前記第5入力ノードに入力されたデータを前記第2メモリに書き込む第5入力機能と、
前記第2メモリから読み出したデータを前記第5出力ノードに出力する第5出力機能とを備え、
前記第4コントローラは、さらに、
第6入力ノードおよび第6出力ノードと、
前記第6入力ノードに入力されたデータを前記第4メモリに書き込む第6入力機能と、
前記第4メモリから読み出したデータを前記第6出力ノードに出力する第6出力機能とを備え、
前記第5入力ノードは、前記第6出力ノードとの間で第3通信径路を持ち、
前記第6入力ノードは、前記第5出力ノードとの間で第4通信径路を持つことを特徴とする半導体集積回路装置。 The semiconductor integrated circuit device according to claim 7,
The second controller further includes:
A fifth input node and a fifth output node;
A fifth input function for writing data input to the fifth input node into the second memory;
A fifth output function for outputting data read from the second memory to the fifth output node;
The fourth controller further includes:
A sixth input node and a sixth output node;
A sixth input function for writing data input to the sixth input node into the fourth memory;
A sixth output function for outputting data read from the fourth memory to the sixth output node;
The fifth input node has a third communication path with the sixth output node;
The semiconductor integrated circuit device, wherein the sixth input node has a fourth communication path between the sixth input node and the fifth output node.
前記第3通信径路および前記第4通信径路は、前記第2半導体チップ上に形成された1個のリング配線径路内に構築されることを特徴とする半導体集積回路装置。 The semiconductor integrated circuit device according to claim 8.
The semiconductor integrated circuit device, wherein the third communication path and the fourth communication path are constructed in one ring wiring path formed on the second semiconductor chip.
前記第2半導体チップは、さらに、前記リング配線径路の一部に接続された外部出力端子を有することを特徴とする半導体集積回路装置。 The semiconductor integrated circuit device according to claim 9.
The semiconductor integrated circuit device, wherein the second semiconductor chip further has an external output terminal connected to a part of the ring wiring path.
前記第1および第2通信径路は、貫通ビアによって構築されることを特徴とする半導体集積回路装置。 The semiconductor integrated circuit device according to claim 7,
The semiconductor integrated circuit device, wherein the first and second communication paths are constructed by through vias.
前記第1および第2通信径路は、ワイヤレス通信によって構築されることを特徴とする半導体集積回路装置。 The semiconductor integrated circuit device according to claim 7,
The semiconductor integrated circuit device, wherein the first and second communication paths are constructed by wireless communication.
前記第1〜第4プロセッサブロックのそれぞれは、プログラム実行用モードかデバッグ実行用モードかを設定するレジスタと、中央演算処理回路と、前記中央演算処理回路の処理データを格納するメモリと、第1入力機能および第1出力機能を持つコントローラとを備え、
前記第1出力機能は、前記プログラム実行用モードに設定された際に有効となり、前記メモリ上のデータを第1出力ノードに伝送し、
前記第1入力機能は、前記デバッグ実行用モードに設定された際に有効となり、第1入力ノードのデータを前記メモリへ伝送し、
前記第1プロセッサブロックの前記第1出力ノードは、前記第3プロセッサブロックの前記第1入力ノードとの間に第1通信径路を持ち、
前記第2プロセッサブロックの前記第1出力ノードは、前記第4プロセッサブロックの前記第1入力ノードとの間に第2通信径路を持ち、
前記第1および第2プロセッサブロックの前記レジスタが前記プログラム実行用モードに設定され、前記第3および第4プロセッサブロックの前記レジスタが前記デバッグ実行用モードに設定されることで、前記第3プロセッサブロックが、前記第1プロセッサブロックの前記第1出力機能と前記第3プロセッサブロックの前記第1入力機能を用いて前記第1プロセッサブロックのプログラム実行に伴うデバッグ情報を収集し、前記第4プロセッサブロックが、前記第2プロセッサブロックの前記第1出力機能と前記第4プロセッサブロックの前記第1入力機能を用いて前記第2プロセッサブロックのプログラム実行に伴うデバッグ情報を収集することを特徴とするプログラムのデバッグ方法。 A method for debugging a program distributed and implemented in a first processor block and a second processor block using a third processor block and a fourth processor block,
Each of the first to fourth processor blocks includes a register for setting a program execution mode or a debug execution mode, a central processing circuit, a memory for storing processing data of the central processing circuit, and a first processing block. A controller having an input function and a first output function;
The first output function becomes effective when the program execution mode is set, and transmits data on the memory to the first output node;
The first input function is enabled when the debug execution mode is set, and transmits data of the first input node to the memory.
The first output node of the first processor block has a first communication path with the first input node of the third processor block;
The first output node of the second processor block has a second communication path with the first input node of the fourth processor block;
The third processor block is configured such that the registers of the first and second processor blocks are set to the program execution mode, and the registers of the third and fourth processor blocks are set to the debug execution mode. Collects debug information associated with program execution of the first processor block using the first output function of the first processor block and the first input function of the third processor block, and the fourth processor block Debugging a program, wherein debug information associated with program execution of the second processor block is collected using the first output function of the second processor block and the first input function of the fourth processor block Method.
前記第1〜第4プロセッサブロックに含まれる前記コントローラは、更に、第2入力機能および第2出力機能を備え、
前記第2入力機能は、前記デバッグ実行用モードに設定された際に有効となり、第2入力ノードのデータを前記メモリへ伝送し、
前記第2出力機能は、前記デバッグ実行用モードに設定された際に有効となり、前記メモリ上のデータを第2出力ノードへ伝送し、
前記第3プロセッサブロックの前記第2出力ノードは、前記第4プロセッサブロックの前記第2入力ノードとの間に第3通信径路を持ち、
前記第4プロセッサブロックの前記第2出力ノードは、前記第3プロセッサブロックの前記第2入力ノードとの間に第4通信径路を持ち、
前記第3プロセッサブロックが、前記第3プロセッサブロックの前記第2出力機能と前記第4プロセッサブロックの前記第2入力機能を用いて前記第1プロセッサブロックから収集した前記デバッグ情報の一部または全部を前記第4プロセッサブロックに転送することを特徴とするプログラムのデバッグ方法。 A program debugging method according to claim 13, comprising:
The controller included in the first to fourth processor blocks further includes a second input function and a second output function,
The second input function is enabled when the debug execution mode is set, and transmits data of a second input node to the memory.
The second output function becomes effective when the debug execution mode is set, and transmits data on the memory to a second output node.
The second output node of the third processor block has a third communication path with the second input node of the fourth processor block;
The second output node of the fourth processor block has a fourth communication path with the second input node of the third processor block;
A part or all of the debug information collected from the first processor block by the third processor block using the second output function of the third processor block and the second input function of the fourth processor block. A program debugging method comprising transferring the program to the fourth processor block.
前記第1および第2プロセッサブロックは、第1半導体チップに形成され、
前記第3および第4プロセッサブロックは、第2半導体チップに形成され、
前記第1半導体チップと前記第2半導体チップが三次元的に積層搭載されることで、前記第1および第2通信径路が構築されることを特徴とするプログラムのデバッグ方法。 A program debugging method according to claim 13, comprising:
The first and second processor blocks are formed in a first semiconductor chip,
The third and fourth processor blocks are formed in a second semiconductor chip;
A program debugging method, wherein the first and second communication paths are constructed by three-dimensionally stacking and mounting the first semiconductor chip and the second semiconductor chip.
前記第1および第2通信径路は、無線通信によって構築されることを特徴とするプログラムのデバッグ方法。 The program debugging method according to claim 15, comprising:
The method for debugging a program, wherein the first and second communication paths are constructed by wireless communication.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010021930A JP2011159192A (en) | 2010-02-03 | 2010-02-03 | Semiconductor integrated circuit device and program debugging method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010021930A JP2011159192A (en) | 2010-02-03 | 2010-02-03 | Semiconductor integrated circuit device and program debugging method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011159192A true JP2011159192A (en) | 2011-08-18 |
Family
ID=44591071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010021930A Pending JP2011159192A (en) | 2010-02-03 | 2010-02-03 | Semiconductor integrated circuit device and program debugging method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011159192A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013250848A (en) * | 2012-06-01 | 2013-12-12 | Toshiba Corp | Multiprocessor |
US9542285B2 (en) | 2014-01-16 | 2017-01-10 | Fujitsu Limited | Memory device, storage method and control device |
-
2010
- 2010-02-03 JP JP2010021930A patent/JP2011159192A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013250848A (en) * | 2012-06-01 | 2013-12-12 | Toshiba Corp | Multiprocessor |
US9063915B2 (en) | 2012-06-01 | 2015-06-23 | Kabushiki Kaisha Toshiba | Multiprocessor with a plurality of debug modules and debug ring units connected to generate a ring |
US9542285B2 (en) | 2014-01-16 | 2017-01-10 | Fujitsu Limited | Memory device, storage method and control device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6856612B2 (en) | Processing system with distributed processors by multi-layer interconnection | |
TWI746878B (en) | High bandwidth memory system and logic die | |
US11726812B2 (en) | Dynamic reconfiguration of applications on a multi-processor embedded system | |
TWI507979B (en) | Apparatus and method for integrating arm-based ips and computing device | |
US12249018B2 (en) | Game engine on a chip | |
EP3400688A1 (en) | Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications | |
CN104598405A (en) | Expansion chip and expandable chip system and control method | |
CN102521190A (en) | Hierarchical bus system applied to real-time data processing | |
CN114385327A (en) | Thread-based processor suspension | |
JP6680454B2 (en) | LSI chip stacking system | |
CN114761936B (en) | Memory modules with computing capabilities | |
CN111210012B (en) | Data processing method and device and related products | |
JP2011159192A (en) | Semiconductor integrated circuit device and program debugging method | |
CN113129205A (en) | Electronic equipment and computer system | |
CN111767995A (en) | Computing method, device and related products | |
CN112801277B (en) | Data processing method, processor, chip and electronic device | |
Wächter et al. | HeMPS-S: A homogeneous NoC-based MPSoCs framework prototyped in FPGAs | |
KR20250009885A (en) | Three dimensional universal chiplet interconnect as on-package interconnect | |
CN111832714A (en) | Computing method and device | |
CN111382847A (en) | Data processing devices and related products | |
CN104699575B (en) | Fpga chip and fpga system | |
Wächter et al. | An open-source framework for heterogeneous MPSoC generation | |
CN105224497A (en) | The extendible treating apparatus of serial line interface and method | |
Li et al. | A Multidimensional Configurable Processor Array—Vocalise | |
Kumar B et al. | A novel utilization-aware and power-delay-aware intelligent DMA controller for video streaming used in AI applications |