JP7506576B2 - Semiconductor Device - Google Patents

Semiconductor Device Download PDF

Info

Publication number
JP7506576B2
JP7506576B2 JP2020172947A JP2020172947A JP7506576B2 JP 7506576 B2 JP7506576 B2 JP 7506576B2 JP 2020172947 A JP2020172947 A JP 2020172947A JP 2020172947 A JP2020172947 A JP 2020172947A JP 7506576 B2 JP7506576 B2 JP 7506576B2
Authority
JP
Japan
Prior art keywords
semiconductor device
memory
circuit
processor
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020172947A
Other languages
Japanese (ja)
Other versions
JP2022064364A (en
Inventor
伊知朗 紺野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2020172947A priority Critical patent/JP7506576B2/en
Publication of JP2022064364A publication Critical patent/JP2022064364A/en
Application granted granted Critical
Publication of JP7506576B2 publication Critical patent/JP7506576B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、半導体装置に関する。 The present invention relates to a semiconductor device.

SoC(System on Chip)の起動時において動作不良が発生した場合に備えて、いずれのプロセスにおいて不良が生じているのかを解析する技術が重要となっている。 In case a malfunction occurs during startup of a SoC (System on Chip), it is becoming increasingly important to have technology that can analyze which process is causing the malfunction.

特開2009-211625号公報JP 2009-211625 A

特許文献1には、初期化処理を行なうプログラムの実行中に、タイムアウトが発生した処理番号を不揮発性メモリに保存する技術が開示されている。しかし、特許文献1記載の技術であると、複数のプロセッサが並列処理を行なう場合等に対応することが困難である。 Patent document 1 discloses a technique for saving the process number where a timeout occurs in a non-volatile memory while a program that performs initialization processing is being executed. However, the technique described in patent document 1 has difficulty in dealing with cases where multiple processors perform parallel processing.

本発明の一形態は、動作不良の解析精度を向上可能な半導体装置を提供する。 One aspect of the present invention provides a semiconductor device that can improve the accuracy of analyzing operational failures.

本発明の一形態の半導体装置は、第1プロセッサと、第1プロセッサと並列に動作可能な第2プロセッサと、不良解析回路とを備える。不良解析回路は、第1メモリと、半導体装置への電源投入時に動作を開始するタイマーと、半導体装置への電源投入に応答して実行される第1プロセス及び第2プロセスの開始情報を第1プロセッサ及び第2プロセッサからそれぞれ受信し、開始情報と、開始情報を受信した際におけるタイマーのカウント値に基づく情報とを、互いに対応付けて第1メモリに書き込む制御回路と、半導体装置の外部から第1メモリへのアクセスを可能とするインターフェース回路とを備える。 A semiconductor device according to one embodiment of the present invention includes a first processor, a second processor operable in parallel with the first processor, and a failure analysis circuit. The failure analysis circuit includes a first memory, a timer that starts operating when the semiconductor device is powered on, a control circuit that receives start information for a first process and a second process that are executed in response to the semiconductor device being powered on from the first processor and the second processor, respectively, and writes the start information and information based on the count value of the timer when the start information is received in association with each other in the first memory, and an interface circuit that enables access to the first memory from outside the semiconductor device.

第1実施形態に係る半導体装置のブロック図。1 is a block diagram of a semiconductor device according to a first embodiment. 第1実施形態に係る半導体装置の動作を示すフローチャート。4 is a flowchart showing the operation of the semiconductor device according to the first embodiment. 第1実施形態に係る半導体装置の起動時における処理の流れを示すフローチャート。5 is a flowchart showing a process flow at the time of starting up the semiconductor device according to the first embodiment. 第1実施形態に係る半導体装置の起動時において記録される情報の一例を示すダイアグラム。4 is a diagram showing an example of information recorded at the start-up of the semiconductor device according to the first embodiment. 第2実施形態に係る半導体装置の起動時における処理の流れを示すフローチャート。10 is a flowchart showing a process flow at the time of starting up the semiconductor device according to the second embodiment. 第2実施形態に係る半導体装置の起動時において記録される情報の一例を示すダイアグラム。13 is a diagram showing an example of information recorded at the start-up of the semiconductor device according to the second embodiment. 第3実施形態に係るテレビシステム制御回路のブロック図。FIG. 13 is a block diagram of a television system control circuit according to a third embodiment. 第1乃至第3実施形態に係る半導体装置の起動時における動作の一例を示すフローチャート。4 is a flowchart showing an example of an operation at the start-up of the semiconductor device according to the first to third embodiments. 第1乃至第3実施形態の第1変形例に係る半導体装置の起動時において記録される情報の一例を示すダイアグラム。13 is a diagram showing an example of information recorded at the start-up of the semiconductor device according to the first modification of the first to third embodiments. 第1乃至第3実施形態の第2変形例に係る半導体装置の備える不良解析回路のブロック図。FIG. 13 is a block diagram of a failure analysis circuit included in a semiconductor device according to a second modification of the first to third embodiments.

以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。 Embodiments of the present invention will be described below with reference to the drawings. Note that in the drawings, identical or equivalent elements are given the same reference numerals, and duplicate descriptions will be omitted.

(第1実施形態)
この発明の第1実施形態に係る半導体装置につき説明する。本実施形態は、複数のプロセッサを備えたSoC(System on Chip)の構成に関し、またSoCへの電源投入時における動作に関する。
First Embodiment
A semiconductor device according to a first embodiment of the present invention will be described. This embodiment relates to the configuration of a SoC (System on Chip) having a plurality of processors, and also to the operation of the SoC when power is applied.

<構成について>
図1は、本実施形態に係るSoCのブロック図である。図示するようにSoC1は、複数のプロセッサ100(本例では4つのCPU100-1~100-4)、ROM200、RAM300、電源検出回路400、及び不良解析回路500を備えている。
<About the composition>
1 is a block diagram of an SoC according to this embodiment. As shown in the figure, the SoC 1 includes a plurality of processors 100 (in this example, four CPUs 100-1 to 100-4), a ROM 200, a RAM 300, a power supply detection circuit 400, and a failure analysis circuit 500.

CPU100-1~100-4は、SoC1内部において必要な情報処理を実行し、並列動作が可能である。本例では、SoC1が4つのCPU100-1~100-4を備える例について示しているが、4つに限らず、2つ以上であればよく、またCPUに限らず、その少なくとも一部はGPU(Graphics Processing Unit)等の他のプロセッサであってもよい。また以下の記述において、CPU100-1~100-4を区別しない場合には、単にCPU100と呼ぶ。 CPUs 100-1 to 100-4 execute the necessary information processing within SoC1 and are capable of parallel operation. In this example, an example is shown in which SoC1 has four CPUs 100-1 to 100-4, but the number is not limited to four, as long as there are two or more, and at least some of the CPUs may be other processors such as GPUs (Graphics Processing Units) rather than CPUs. In the following description, when there is no need to distinguish between CPUs 100-1 to 100-4, they will simply be referred to as CPUs 100.

ROM200は、CPU100により実行されるプログラムや必要なデータを保持する。具体的には、例えばSoC1へ電源が投入された際においてSoC1の起動に必要な処理を行なうための起動プログラム201や、SoC1が動作するためのオペレーティングシステム202を保持する。またRAM300は、CPU100の作業領域として機能する。SoC1外部からのRAM300へのアクセスは、例えばオペレーティングシステム起動後に可能となる。 ROM 200 stores the programs executed by CPU 100 and necessary data. Specifically, it stores a startup program 201 for performing the processes required to start up SoC1 when power is applied to SoC1, and an operating system 202 for running SoC1. RAM 300 also functions as a working area for CPU 100. Access to RAM 300 from outside SoC1 becomes possible, for example, after the operating system has started up.

電源検出回路400は、SoC1への電源投入を検出し、その旨の信号を例えばCPU100及び不良解析回路500へ送信する。 The power supply detection circuit 400 detects when power is applied to the SoC1 and transmits a signal to that effect, for example, to the CPU 100 and the failure analysis circuit 500.

不良解析回路500はSoC1を構成する回路の一部であり、SoC1の起動時において起動不良が発生した際に、それを解析するために用いられる。不良解析回路500は、大まかにはリセット回路510、タイマー回路520、メモリ部530、及びインターフェース回路540を備えている。 The failure analysis circuit 500 is part of the circuitry that constitutes SoC1, and is used to analyze any startup failures that occur when SoC1 is started up. The failure analysis circuit 500 broadly comprises a reset circuit 510, a timer circuit 520, a memory unit 530, and an interface circuit 540.

リセット回路510は、電源検出回路400から電源検出の旨の信号を受信すると、リセット信号を生成する。そして、生成したリセット信号を、タイマー回路520及びメモリ部530に供給する。 When the reset circuit 510 receives a signal indicating power detection from the power detection circuit 400, it generates a reset signal. Then, it supplies the generated reset signal to the timer circuit 520 and the memory unit 530.

タイマー回路520は、例えば図示せぬクロック生成回路から与えられるクロック信号に基づいて、カウントアップを行なう。より具体的には、タイマー回路520は、リセット回路510からリセット信号を受信すると、カウント値をリセット(例えばゼロ)すると共に、リセット信号をトリガとしてカウントアップを開始する。本例では、一例として、タイマー回路520のカウント値が、カウントを開始してからの経過時間に相当する場合を例に説明する。なお、タイマー回路520はカウントアップの代わりにカウントダウンを行なってもよく、そのカウント値が上記経過時間に対応していれば限定されない。 The timer circuit 520 counts up, for example, based on a clock signal provided from a clock generation circuit (not shown). More specifically, when the timer circuit 520 receives a reset signal from the reset circuit 510, it resets the count value (for example, to zero) and starts counting up, triggered by the reset signal. In this example, a case is described in which the count value of the timer circuit 520 corresponds to the elapsed time since the start of counting. Note that the timer circuit 520 may count down instead of counting up, and is not limited as long as the count value corresponds to the elapsed time.

メモリ部530は、読み出し/書き込み制御回路531、RAM532、及びアドレスカウンタ533を保持している。メモリ部530は、SoC1の電源投入時においてCPU100の実行するプロセスのログを記憶し、インターフェース回路540を介して、SoC1外部へ出力可能とされている。 The memory unit 530 holds a read/write control circuit 531, a RAM 532, and an address counter 533. The memory unit 530 stores a log of the process executed by the CPU 100 when the SoC1 is powered on, and can output the log to the outside of the SoC1 via the interface circuit 540.

読み出し/書き込み制御回路531は、大まかには書き込み回路600と読み出し回路610とを備えている。 The read/write control circuit 531 roughly comprises a write circuit 600 and a read circuit 610.

書き込み回路600は、書き込み制御部601、キャッシュメモリ602、及び加算部603(603-1~603-4)を備えている。加算部603-1~603-4の各々は、CPU100-1~100-4に対応付けられている。そして加算部603-1~603-4はそれぞれ、CPU100-1~100-4につきコールされたプロセス番号と、当該プロセス内における処理(サブプロセス)の処理番号に関する情報(開始情報)をCPU100-1~100-4から受信し、またタイマー回路520からカウント値(すなわち経過時間情報)を受信する。そして、これらのデータを、書き込み制御部601の制御に基づいて、キャッシュメモリ602に書き込む。キャッシュメモリ602は、複数の加算部603からの開始情報を同時に受信した時でも、受信データを取りこぼすことなくRAM532に書き込むため、加算部603から受信したデータを一時的に保持する。書き込み制御部601は、上記キャッシュメモリ602及び加算部603を制御する。また書き込み制御部601は、アドレスカウンタ533のカウンタ値をカウントアップ(またはカウントダウン)させる。アドレスカウンタ533のカウンタ値は、RAM532におけるアドレスを指定する。そして書き込み制御部601は、アドレスカウンタ533で指定されるRAM532におけるアドレスに、キャッシュメモリ602に保持されるデータを書き込むよう制御する。また読み出し回路610は、インターフェース回路540からの要求に応じて、RAM532からデータを読み出し、これをインターフェース回路540に転送する。この際、読み出し回路610は、アドレスカウンタ533のカウンタ値をカウントアップ(またはカウントダウン)させることにより、所望のアドレスにアクセスすることができる。 The write circuit 600 includes a write control unit 601, a cache memory 602, and an adder unit 603 (603-1 to 603-4). Each of the adders 603-1 to 603-4 is associated with a CPU 100-1 to 100-4. The adders 603-1 to 603-4 receive information (start information) on the process number called for the CPU 100-1 to 100-4 and the process number of the process (sub-process) within the process from the CPU 100-1 to 100-4, respectively, and also receive a count value (i.e., elapsed time information) from the timer circuit 520. These data are then written to the cache memory 602 under the control of the write control unit 601. The cache memory 602 temporarily holds the data received from the adder unit 603 in order to write the received data to the RAM 532 without missing any data, even when start information is received simultaneously from multiple adders 603. The write control unit 601 controls the cache memory 602 and the adder unit 603. The write control unit 601 also counts up (or counts down) the counter value of the address counter 533. The counter value of the address counter 533 specifies an address in the RAM 532. The write control unit 601 then controls to write data held in the cache memory 602 to the address in the RAM 532 specified by the address counter 533. The read circuit 610 also reads data from the RAM 532 in response to a request from the interface circuit 540 and transfers it to the interface circuit 540. At this time, the read circuit 610 can access the desired address by counting up (or counting down) the counter value of the address counter 533.

RAM532は、例えばSRAMであり、書き込み回路600の命令に従って、キャッシュメモリ602から転送されるデータを保持する。また、読み出し回路610の命令に従って、保持するデータを読み出し、これを読み出し回路610に転送する。なおRAM532は、リセット回路510からのリセット信号を受信した際に、保持するデータを全て消去するように構成されていてもよい。この際、CPU100による起動プログラム実行時のログデータ(詳細は後述する)のみを消去する場合であってもよい。 RAM 532 is, for example, an SRAM, and holds data transferred from cache memory 602 according to commands from write circuit 600. It also reads out the held data according to commands from read circuit 610 and transfers it to read circuit 610. RAM 532 may be configured to erase all held data when it receives a reset signal from reset circuit 510. At this time, it may be the case that only log data (details of which will be described later) from when CPU 100 executes the startup program is erased.

アドレスカウンタ533は、RAM532内の特定の領域を指定するためのアドレスを生成する。前述のようにアドレスカウンタ533は、書き込み回路600及び読み出し回路610からの命令に従って、生成するアドレスをインクリメント(またはデクリメント)して、新たなアドレスを生成可能である。そして、生成したアドレスをRAM532に転送する。またアドレスカウンタ533のカウント値(アドレス)は、リセット回路510からのリセット信号を受信した際にリセットされる(例えば“0x00”とされる)。なお、本明細書において先頭に“0x”を付記した数字は16進数表記であることを示す。 The address counter 533 generates an address for specifying a specific area in the RAM 532. As described above, the address counter 533 can increment (or decrement) the address it generates to generate a new address in accordance with instructions from the write circuit 600 and read circuit 610. It then transfers the generated address to the RAM 532. The count value (address) of the address counter 533 is reset (for example, to "0x00") when it receives a reset signal from the reset circuit 510. Note that in this specification, numbers preceded by "0x" indicate that they are in hexadecimal notation.

次に、インターフェース回路540について説明する。インターフェース回路540は、SoC1外部と不良解析回路500との間の信号の送受信を司る。より具体的には、SoC1外部の例えばテスター等から、前述の起動プログラム実行時のログデータの読み出し命令を受信すると、その旨を読み出し回路610に転送する。そして、読み出し回路610により読み出されたログデータをテスターに送信する。インターフェース回路540は、例えばCPU100等の他の回路とは独立して、SoC1外部から不良解析回路500にアクセス可能とするものであり、その一例はJTAG(Joint Test Action Group)インターフェースである。 Next, the interface circuit 540 will be described. The interface circuit 540 is responsible for transmitting and receiving signals between the outside of SoC1 and the failure analysis circuit 500. More specifically, when the interface circuit 540 receives a command to read log data during execution of the above-mentioned startup program from, for example, a tester outside SoC1, it transfers this command to the read circuit 610. Then, it transmits the log data read by the read circuit 610 to the tester. The interface circuit 540 allows the failure analysis circuit 500 to be accessed from the outside of SoC1 independently of other circuits such as the CPU 100. One example of the interface circuit 540 is the JTAG (Joint Test Action Group) interface.

<動作について>
次に、上記構成のSoC1の電源投入時における動作につき、不良解析回路500に着目して、以下説明する。図2は、SoC1の電源投入時における動作を示すフローチャートである。
<About operation>
Next, the operation of the SoC1 configured as described above when power is applied will be described with reference to the failure analysis circuit 500. Figure 2 is a flow chart showing the operation of the SoC1 when power is applied.

図示するように、まず電源検出回路400がSoC1への電源投入を検知する(ステップS10)と、その旨を知らせる検知信号をCPU100や不良解析回路500に送信する。 As shown in the figure, the power supply detection circuit 400 first detects that power has been applied to the SoC1 (step S10), and then transmits a detection signal to the CPU 100 and the failure analysis circuit 500 to inform them of this.

検知信号を受信した不良解析回路500では、リセット回路510がリセット信号を発行し、これをタイマー回路520、RAM532、及びアドレスカウンタ533に送信する。この結果、タイマー回路520、RAM532、及びアドレスカウンタ533がリセットされる(ステップS11)。より具体的には、タイマー回路520におけるカウント値が例えばゼロ(換言すれば、時刻が00時00分00秒000ミリ秒)とされ、RAM532内部のデータ(例えばログデータ)が消去され、アドレスカウンタ533におけるアドレスがゼロ(例えば“0x00”)とされる。もちろん、これらの値は一例に過ぎず、リセット値はその他の値であってもよい。 In the failure analysis circuit 500 that has received the detection signal, the reset circuit 510 issues a reset signal and sends it to the timer circuit 520, the RAM 532, and the address counter 533. As a result, the timer circuit 520, the RAM 532, and the address counter 533 are reset (step S11). More specifically, the count value in the timer circuit 520 is set to zero (in other words, the time is 00 hours, 00 minutes, 00 seconds, 000 milliseconds), data in the RAM 532 (e.g., log data) is erased, and the address in the address counter 533 is set to zero (e.g., "0x00"). Of course, these values are merely examples, and the reset value may be other values.

そしてタイマー回路520は、リセット信号をトリガとしてカウントを開始する(ステップS12)。すなわち、実質的に電源投入直後からの経過時間を計測する。また、CPU100は、ROM200から起動プログラム201を読み出し、これを実行する(ステップS13)。なお、図1の例では、起動プログラム201とオペレーティングシステム202とが同一のROM200内に保持されている場合を示しているが、起動プログラム201は別の起動専用のROMに格納されていてもよい。また、オペレーティングシステム等の他のアプリケーションプログラムと同一のROM200に格納される場合には、電源投入時に最初に読み出しアクセスされる専用の領域に保持されていてもよい。 Then, the timer circuit 520 starts counting with the reset signal as a trigger (step S12). In other words, it essentially measures the elapsed time from immediately after power-on. The CPU 100 also reads the startup program 201 from the ROM 200 and executes it (step S13). Note that, although the example in FIG. 1 shows a case where the startup program 201 and the operating system 202 are stored in the same ROM 200, the startup program 201 may be stored in a separate ROM dedicated to startup. Also, when stored in the same ROM 200 as other application programs such as the operating system, the startup program 201 may be stored in a dedicated area that is first read and accessed when power is turned on.

起動プログラム201は、複数のプロセスを含み、複数のCPU100は各々が実行すべきプロセスを指定された順番で実行する。また、各プロセスは複数の処理を含む。そして各CPU100は、各々がコールしたプロセスと、当該プロセスにおいて実行予定の番号の処理の開始通知を、不良解析回路500の加算部603に通知する(ステップS14)。 The startup program 201 includes multiple processes, and the multiple CPUs 100 each execute the processes they are to execute in a specified order. Each process includes multiple operations. Each CPU 100 then notifies the addition unit 603 of the failure analysis circuit 500 of the start of the process it has called and the operation with the number scheduled to be executed in that process (step S14).

加算部603は、書き込み制御部601の命令に応答して、対応するCPU100から受信したプロセス及び処理番号と、タイマー回路520から受信したカウント数、すなわち経過時間とを対応付けて、これらのデータをキャッシュメモリ602に書き込む。更に書き込み制御部601は、キャッシュメモリ602に書き込まれたデータをRAM532に書き込む。この際、データは、アドレスカウンタ533で生成されたアドレスに対応した領域に書き込まれる(ステップS15)。 In response to an instruction from the write control unit 601, the addition unit 603 associates the process and processing number received from the corresponding CPU 100 with the count number received from the timer circuit 520, i.e., the elapsed time, and writes these data to the cache memory 602. Furthermore, the write control unit 601 writes the data written to the cache memory 602 to the RAM 532. At this time, the data is written to an area corresponding to the address generated by the address counter 533 (step S15).

書き込み回路600は、上記ステップS14及びS15の処理を、起動プログラムの処理が終了するまで(ステップS16、NO)、または処理がタイムアウトするまで、アドレスカウンタ533の生成するアドレスをインクリメントしつつ(ステップS17)、繰り返す。なお、上記ステップS14及びS15の詳細については、具体例を用いて後述する。 The write circuit 600 repeats the above steps S14 and S15 while incrementing the address generated by the address counter 533 (step S17) until the startup program processing is completed (step S16, NO) or the processing times out. Details of steps S14 and S15 will be described later using a specific example.

起動プログラムの処理が終了した後(ステップS16、YES)、SoC1外部の例えばテスターからログデータの読み出し要求を受信すると(ステップS18、YES)、読み出し回路610がRAM532からログデータを読み出し、インターフェース回路540を介してログデータをテスターに出力する(ステップS19)。すなわち、インターフェース回路540から読み出し要求を受信した読み出し回路610は、アドレスカウンタ533に対して、ログデータが記憶されている領域の先頭アドレスを指定するよう命令し、その後、アドレスをインクリメントさせつつ、データをRAM532から読み出す。なお、外部から要求されているログデータが、その全てではなく一部であった場合には、読み出し回路610は当該領域のみを指定するようにアドレスカウンタ533に命令してもよい。 After the startup program is finished (step S16, YES), when a request to read log data is received from, for example, a tester outside the SoC1 (step S18, YES), the read circuit 610 reads the log data from the RAM 532 and outputs the log data to the tester via the interface circuit 540 (step S19). That is, upon receiving a read request from the interface circuit 540, the read circuit 610 instructs the address counter 533 to specify the top address of the area in which the log data is stored, and then reads the data from the RAM 532 while incrementing the address. Note that if only a portion of the log data is requested from the outside, the read circuit 610 may instruct the address counter 533 to specify only that area.

<<具体例について>>
上記ステップS14及びS15において、CPU100の動作とRAM532に記憶されるデータの具体例につき、図3及び図4を用いて説明する。図3は、電源投入直後において起動プログラム201を実行するCPU100の処理の流れを示している。図中の表記「プロセスPi-j」において、本例ではiは1~6の整数であり、それぞれが起動プログラム201に含まれるプロセスの番号(順番)を示し、jは1~4の整数であり、対応するプロセスがCPU100-1~100-4であることを示す。したがって、例えばプロセスP1-1は、起動プログラム201におけるプロセスP1がCPU100-1によって実行されることを示している。また、説明の簡単化のため、各プロセスPにおける処理(サブプロセス)数は2つとし、それぞれの処理番号を“S”及び“E”と呼ぶ。
<<Specific examples>>
3 and 4, a specific example of the operation of the CPU 100 and the data stored in the RAM 532 in steps S14 and S15 will be described. FIG. 3 shows the flow of processing by the CPU 100 that executes the startup program 201 immediately after power-on. In the notation "process Pi-j" in the figure, in this example, i is an integer from 1 to 6, each of which indicates the number (order) of a process included in the startup program 201, and j is an integer from 1 to 4, indicating that the corresponding process is the CPU 100-1 to 100-4. Therefore, for example, process P1-1 indicates that process P1 in the startup program 201 is executed by the CPU 100-1. Also, for the sake of simplicity, the number of processes (sub-processes) in each process P is two, and the respective process numbers are called "S" and "E".

図3の例であると、電源投入直後、まずプロセスP1-1がコールされ、これがCPU100-1によって実行される。プロセスP1-1が完了すると、次にプロセスP1-1によりプロセスP2-1及びP2-3がコールされ、これらがCPU100-1及び100-3によってそれぞれ実行される。 In the example of Figure 3, immediately after power-on, process P1-1 is called first and executed by CPU 100-1. When process P1-1 is completed, process P1-1 then calls processes P2-1 and P2-3, which are then executed by CPUs 100-1 and 100-3, respectively.

引き続き、プロセスP2-1が完了すると、次にプロセスP2-1によりプロセスP3-1及びP3-2がコールされ、これらがCPU100-1及び100-2によって実行される。また、プロセスP2-3が完了すると、次にプロセスP2-3によりプロセスP3-3及びP3-4がコールされ、これらがCPU100-3及び100-4によって実行される。 Subsequently, when process P2-1 is completed, process P2-1 calls processes P3-1 and P3-2, which are then executed by CPUs 100-1 and 100-2. Furthermore, when process P2-3 is completed, process P2-3 calls processes P3-3 and P3-4, which are then executed by CPUs 100-3 and 100-4.

更に、プロセス3-1が完了すると、次にプロセス3-1によりプロセスP4-1がコールされ、CPU100-1によって実行される。プロセスP3-2及びP4-1が完了すると、プロセスP3-2及びP4-1の各々によりプロセスP5-1がコールされ、CPU100-1によって実行される。なお、プロセスP5-1は、プロセスP3-2とP4-1の両方からコールされなければ実行開始されない。同様に、プロセスP3-3及びP3-4の両方からプロセスP5-3がコールされると、プロセスP5-3はCPU100-3によって実行される。 Furthermore, when process 3-1 is completed, process P4-1 is called by process 3-1, which is then executed by CPU 100-1. When processes P3-2 and P4-1 are completed, processes P3-2 and P4-1 each call process P5-1, which is then executed by CPU 100-1. Note that process P5-1 will not begin execution unless it is called by both processes P3-2 and P4-1. Similarly, when process P5-3 is called by both processes P3-3 and P3-4, process P5-3 is executed by CPU 100-3.

その後、プロセスP5-1及びP5-3が完了し、これらによってプロセスP6-1がコールされると、CPU100-1によってプロセスP6-1が実行される。以上によりSoC1の起動処理が完了する。 After that, processes P5-1 and P5-3 are completed, and when they call process P6-1, process P6-1 is executed by CPU 100-1. This completes the startup process of SoC1.

上記の例において、例えばプロセスP3-1において不具合が発生し、処理が完了しない場合を仮定する。この場合に、RAM532に記憶されるログデータを示しているのが図4である。 In the above example, assume that a problem occurs in process P3-1 and the processing does not complete. Figure 4 shows the log data stored in RAM 532 in this case.

図示するように、電源投入からの経過時間00:00:00:010にプロセスP1-1がコールされると、CPU100-1は当該プロセスP1-1に関する処理の開始通知(上記で述べた開始情報に対応)を書き込み回路600に送信する。この開始通知には、開始されるプロセスのプロセス名(本例ではP1-1)と、当該プロセスにおける処理対象の処理(サブプロセス)の処理番号(本例では“S”)とが含まれる。すると書き込み回路600は、受信したプロセス名P1-1と、処理番号“S”とを、RAM532におけるアドレス“0x00”に書き込む。引き続きCPU100-1は、処理番号“S”の処理を完了すると、電源投入からの経過時間00:00:00:100に、プロセスP1-1の処理番号“E”の処理の開始通知を書き込み回路600に送信し、これらのデータが、RAM532におけるアドレス“0x01”に書き込まれる。なお、プロセスP1-1の処理番号“E”の処理は、プロセスP1-1の処理番号“S”の処理が完了した後に実行される。したがって、プロセスP1-1の処理番号“E”についての開始通知が発行されたということは、プロセスP1-1の処理番号“S”の処理が正常に終了したことを示す。 As shown in the figure, when process P1-1 is called at 00:00:00:010 elapsed time after power-on, CPU 100-1 sends a processing start notification (corresponding to the above-mentioned start information) for process P1-1 to write circuit 600. This start notification includes the process name of the process to be started (P1-1 in this example) and the processing number ("S" in this example) of the processing target (sub-process) in that process. Then, write circuit 600 writes the received process name P1-1 and processing number "S" to address "0x00" in RAM 532. Next, when CPU 100-1 completes processing of processing number "S", it sends a processing start notification of process P1-1 processing number "E" to write circuit 600 at 00:00:00:100 elapsed time after power-on, and these data are written to address "0x01" in RAM 532. Note that the processing of process P1-1 with process number "E" is executed after the processing of process P1-1 with process number "S" is completed. Therefore, the issuance of a start notification for process P1-1 with process number "E" indicates that the processing of process P1-1 with process number "S" has ended normally.

引き続き、電源投入からの経過時間00:00:00:110に、プロセスP2-1及びP2-3の処理番号“S”の開始通知が、CPU100-1及び100-3から書き込み回路600に送信され、これらのデータが、RAM532におけるアドレス“0x02”及び“0x03”に書き込まれる。プロセスP2-1及びP2-3は、共にプロセスP1-1によってコールされるので、これらのプロセスP2-1及びP2-3がコールされたということは、プロセスP1-1が正常に終了したことを示す。 Next, at 00:00:00:110, which is the elapsed time from power-on, CPUs 100-1 and 100-3 send start notifications for process number "S" of processes P2-1 and P2-3 to write circuit 600, and these data are written to addresses "0x02" and "0x03" in RAM 532. Since processes P2-1 and P2-3 are both called by process P1-1, the fact that these processes P2-1 and P2-3 have been called indicates that process P1-1 has ended normally.

その後、アドレス“0x04”及び“0x05”には、プロセスP2-1及びP2-2の処理番号“E”に関する情報が書き込まれ、更にアドレス“0x06”にはプロセスP3-1の処理番号“S”に関する情報が書き込まれる。また、“0x07”~“0x09”には、プロセスP3-2、P3-3、及びP3-4の処理番号“S”に関する情報が順次書き込まれ、更に“0x0A”~“0x0C”には、プロセスP3-2、P3-3、及びP3-4の処理番号“E”に関する情報が順次書き込まれる。 After that, information about process number "E" of processes P2-1 and P2-2 is written to addresses "0x04" and "0x05", and information about process number "S" of process P3-1 is written to address "0x06". Information about process number "S" of processes P3-2, P3-3, and P3-4 is written sequentially to "0x07" to "0x09", and information about process number "E" of processes P3-2, P3-3, and P3-4 is written sequentially to "0x0A" to "0x0C".

更に、アドレス“0x0D”には、プロセスP5-1の処理番号“S”に関する情報が書き込まれ、更にアドレス“0x0E”及び“0x0F”には、プロセスP5-3の処理番号“S”及び“E”に関する情報が書き込まれる。そして最後に、アドレス“0x10”に、プロセスP6-1の処理番号“S”に関する情報が書き込まれる。 Furthermore, information regarding process number "S" of process P5-1 is written to address "0x0D", and information regarding process numbers "S" and "E" of process P5-3 is written to addresses "0x0E" and "0x0F". And finally, information regarding process number "S" of process P6-1 is written to address "0x10".

図4のログデータによれば、アドレス“0x06”にプロセスP3-1の処理番号“S”の処理が記録されているが、当該プロセスP3-1の処理番号“E”の処理は記録されていない。また図3に示されるように、プロセスP4-1はプロセスP3-1の処理完了後にコールされる。この点、本例ではプロセスP3-1で不具合が発生しているため、プロセスP4-1はコールされず、図4のログデータにもプロセスP4-1の処理が記録されていない。更に、プロセスP5-1はプロセスP3-2の処理とプロセスP4-1の処理完了後に実行される。この点、本例ではプロセスP4-1がコールされていないため、プロセスP5-1は実行されず、そのためプロセスP5-1に関しては処理番号“S”のみが記録され、処理番号“E”は記録されない。プロセスP6-1についても同様である。 According to the log data in FIG. 4, the processing of process P3-1 with processing number "S" is recorded at address "0x06", but the processing of process P3-1 with processing number "E" is not recorded. Also, as shown in FIG. 3, process P4-1 is called after the processing of process P3-1 is completed. In this example, since a malfunction has occurred in process P3-1, process P4-1 is not called, and the processing of process P4-1 is not recorded in the log data in FIG. 4. Furthermore, process P5-1 is executed after the processing of process P3-2 and process P4-1 is completed. In this example, since process P4-1 is not called, process P5-1 is not executed, and therefore only the processing number "S" is recorded for process P5-1, and not the processing number "E". The same is true for process P6-1.

そして、電源投入からの経過時間に基づいて各プロセスの実行順序が分かるため、プロセスP3-1内においてまず不具合が発生したことが分かる。また、プロセスP3-1内の不具合により、プロセスP4-1、P5-1、及びP6-1が実行されなかったことが分かる。 Then, because the execution order of each process can be determined based on the elapsed time since power was turned on, it can be seen that a malfunction occurred in process P3-1 first. It can also be seen that processes P4-1, P5-1, and P6-1 were not executed due to the malfunction in process P3-1.

<本実施形態に係る効果>
上記のように、本実施形態に係るSoC1によれば、不良解析回路500は、SoC1の起動時においてCPU100により実行されるプロセスの各々に関する情報を、電源投入からの経過時間と共に記録する。よって、起動時の処理の最中に不良が発生した場合に、どのプロセスで不良が発生したのかを特定することが容易となり、不良の解析精度を向上できる。また書き込み回路600はキャッシュメモリ602を保持しており、データをRAM532に書き込む前にキャッシュメモリ602に書き込む。したがって、同時刻に複数のプロセッサからプロセスの開始通知を受信した場合であっても、一時的にキャッシュメモリ602でデータを保持し、その後、それぞれのプロセスに関する情報をRAM532に順次書き込むことができる。そのため、ログデータを高精度に記録することができる。
<Effects of this embodiment>
As described above, according to the SoC1 of this embodiment, the failure analysis circuit 500 records information about each process executed by the CPU 100 when the SoC1 is started, together with the elapsed time from power-on. Therefore, when a failure occurs during processing at the start, it becomes easy to identify which process the failure occurred in, and the accuracy of failure analysis can be improved. In addition, the write circuit 600 holds a cache memory 602, and writes data to the cache memory 602 before writing data to the RAM 532. Therefore, even if process start notifications are received from multiple processors at the same time, the data can be temporarily held in the cache memory 602, and then information about each process can be written sequentially to the RAM 532. Therefore, the log data can be recorded with high accuracy.

更に本実施形態では、不良解析回路500はSoC1外部との通信を司るインターフェース回路540を備える。インターフェース回路540は、CPU100とは独立して読み出し/書き込み制御回路531によって動作可能である。したがって、オペレーティングシステムが起動されない場合であっても、RAM532からログデータを読み出すことが可能となり、不良解析をより容易なものとすることができる。 Furthermore, in this embodiment, the failure analysis circuit 500 includes an interface circuit 540 that controls communication with the outside of the SoC1. The interface circuit 540 can be operated by the read/write control circuit 531 independently of the CPU 100. Therefore, even if the operating system is not started, it is possible to read the log data from the RAM 532, making failure analysis easier.

(第2実施形態)
次に、この発明の第2実施形態に係る半導体装置につき説明する。本実施形態は、上記第1実施形態の図3及び図4で説明したケースとは異なる不具合が発生した場合の具体例に関するものである。よって、本実施形態に係るSoC1の構成や動作は第1実施形態と同様であるので、その説明は省略する。
Second Embodiment
Next, a semiconductor device according to a second embodiment of the present invention will be described. This embodiment relates to a specific example of a case where a defect occurs different from the case described in Figures 3 and 4 of the first embodiment. Therefore, the configuration and operation of the SoC1 according to this embodiment are similar to those of the first embodiment, and therefore a description thereof will be omitted.

<起動処理の具体例について>
図5は、電源投入直後において起動プログラム201を実行するCPU100の処理の流れを示しており、第1実施形態で説明した図3に対応する。図5の例が図3と異なる点は、プロセスP5-3が、プロセスP3-1の結果310を参照する点にある。したがって、プロセスP3-1が正常に終了する前にプロセスP5-3が終了した場合、プロセスP5-3は正しくない結果を出力する可能性が非常に高い。図6は、そのような場合におけるログデータの例であり、第1実施形態で説明した図4に対応する。
<Specific examples of startup processing>
Fig. 5 shows the flow of processing by the CPU 100 that executes the startup program 201 immediately after power-on, and corresponds to Fig. 3 described in the first embodiment. The example in Fig. 5 differs from Fig. 3 in that process P5-3 references the result 310 of process P3-1. Therefore, if process P5-3 ends before process P3-1 ends normally, there is a very high possibility that process P5-3 will output an incorrect result. Fig. 6 shows an example of log data in such a case, and corresponds to Fig. 4 described in the first embodiment.

図示するように、第1実施形態と同様に、電源投入からの経過時間00:00:00:310と共にプロセスP3-1の処理番号“S”がアドレス“0x06”に記録されている。そして本例であると、経過時間00:00:00:530と共にプロセスP3-1の処理番号“E”がアドレス“0x10”に記録されている。したがって、プロセスP3-1は正常に終了した可能性が高い。 As shown in the figure, similar to the first embodiment, the processing number "S" of process P3-1 is recorded at address "0x06" along with the elapsed time from power-on, 00:00:00:310. In this example, the processing number "E" of process P3-1 is recorded at address "0x10" along with the elapsed time, 00:00:00:530. Therefore, it is highly likely that process P3-1 has terminated normally.

しかし、プロセスP3-1が終了するより前の時刻00:00:00:510及び00:00:00:520に、既にプロセスP5-3の処理番号“S”及び“E”が、アドレス“0x0E”及び“0x0F”に記録されている。このことから、プロセスP5-3は、プロセスP3-1の正常な処理結果310を参照することなく実行されていることが分かる。 However, at times 00:00:00:510 and 00:00:00:520, before process P3-1 was terminated, the process numbers "S" and "E" of process P5-3 were already recorded at addresses "0x0E" and "0x0F." This shows that process P5-3 was executed without referencing the normal processing result 310 of process P3-1.

<本実施形態に係る効果>
上記のように、本実施形態によれば、あるプロセスが他のプロセスの処理結果を参照する場合においても、ログデータにおける経過時間を見ることにより、当該プロセスが正常に実行されているか否かを知ることができる。
<Effects of this embodiment>
As described above, according to this embodiment, even when a process refers to the processing results of another process, it is possible to know whether the process is being executed normally by looking at the elapsed time in the log data.

(第3実施形態)
次に、この発明の第3実施形態に係る半導体装置につき説明する。本実施形態は、上記第1または第2実施形態を、テレビシステムに適用すると共に、ログデータの読み出しインターフェースにJTAGの代わりにEDID読み出し制御回路を用いたものである。以下では、第1及び第2実施形態と異なる点についてのみ説明する。
Third Embodiment
Next, a semiconductor device according to a third embodiment of the present invention will be described. In this embodiment, the first or second embodiment is applied to a television system, and an EDID read control circuit is used instead of JTAG for the log data read interface. Only the differences from the first and second embodiments will be described below.

図7は、本実施形態に係るテレビシステム2のブロック図である。テレビシステム2は、例えばテレビ受像機である。図示するようにテレビシステム2は、第1実施形態で説明したSoC1、フラッシュメモリ3、LCD(Liquid Crystal Display)制御部4、オーディオプロセッサ5、電源ユニット6、及びHDMI(High-Definition Multimedia Interface)コネクタ7などを備えている。フラッシュメモリ3は、例えばSoC1が実行するためのアプリケーションプログラム8を保持する。LCD制御部4は、SoC1の制御に基づいて、映像信号を液晶ディスプレイに画像として表示する。オーディオプロセッサ5は、音声信号をオーディオ機器から音声として出力する。電源ユニット6は、例えば外部から与えられる電圧を昇圧または降圧して、テレビシステム2の各ユニットに必要な電圧を生成する。HDMIコネクタ7は、HDMI規格に従って外部と信号の送受信を行なう。 Figure 7 is a block diagram of a television system 2 according to this embodiment. The television system 2 is, for example, a television receiver. As shown in the figure, the television system 2 includes the SoC 1 described in the first embodiment, a flash memory 3, an LCD (Liquid Crystal Display) control unit 4, an audio processor 5, a power supply unit 6, and an HDMI (High-Definition Multimedia Interface) connector 7. The flash memory 3 holds, for example, an application program 8 for execution by the SoC 1. The LCD control unit 4 displays a video signal as an image on the liquid crystal display based on the control of the SoC 1. The audio processor 5 outputs an audio signal as sound from an audio device. The power supply unit 6 generates a voltage required for each unit of the television system 2 by, for example, stepping up or stepping down a voltage provided from the outside. The HDMI connector 7 transmits and receives signals to and from the outside according to the HDMI standard.

また本実施形態に係るSoC1は、第1実施形態で説明したCPU100、ROM200、RAM300、電源検出回路400、及び不良解析回路500に加えて、EDID(Extended Display Identification Data)用メモリ700、EDID読み出し制御回路800、フラッシュインターフェース回路900、及び内部インターフェース回路1000を備えている。 The SoC1 according to this embodiment also includes an EDID (Extended Display Identification Data) memory 700, an EDID read control circuit 800, a flash interface circuit 900, and an internal interface circuit 1000, in addition to the CPU 100, ROM 200, RAM 300, power supply detection circuit 400, and failure analysis circuit 500 described in the first embodiment.

内部インターフェース回路1000は、テレビシステム2内部においてSoC1とLCD制御部4、オーディオプロセッサ5、及び電源ユニット6との間の信号の送受信を司る。例えば、SoC1内のCPU100の命令を各ユニットに送信し、あるいは各ユニットからの信号を受信してCPU100に転送する。 The internal interface circuit 1000 is responsible for transmitting and receiving signals between the SoC 1 and the LCD control unit 4, audio processor 5, and power supply unit 6 within the television system 2. For example, it transmits commands from the CPU 100 in the SoC 1 to each unit, or receives signals from each unit and transfers them to the CPU 100.

フラッシュインターフェース900は、上記内部インターフェース回路1000を介することなく、フラッシュメモリ3にアクセスする。そして、SoC1内で必要なアプリケーションプログラム8を例えばRAM300等に転送し、またCPU100の処理結果をフラッシュメモリ3へ転送する。 The flash interface 900 accesses the flash memory 3 without going through the internal interface circuit 1000. It then transfers the application program 8 required within the SoC 1 to, for example, the RAM 300, and also transfers the processing results of the CPU 100 to the flash memory 3.

EDID用メモリ700は、EDIDを保持する。EDIDは、例えばテレビシステム2におけるディスプレイの画面サイズ、対応解像度、リフレッシュレート、色特性、及び製造元などの情報を含む。 The EDID memory 700 holds the EDID. The EDID includes information such as the screen size, supported resolution, refresh rate, color characteristics, and manufacturer of the display in the television system 2.

EDID読み出し制御回路800は、EDID用メモリからのEDIDの読み出し、及び不良解析回路500からのログデータの読み出しを制御する。そしてEDID読み出し制御回路800は、DDC(Display Data Channel)ラインによってHDMIコネクタ7と接続されている。 The EDID read control circuit 800 controls the reading of EDID from the EDID memory and the reading of log data from the failure analysis circuit 500. The EDID read control circuit 800 is connected to the HDMI connector 7 via a DDC (Display Data Channel) line.

上記構成において、不良解析回路500にはスレーブアドレスとして例えば“0xB0”が割り当てられ、EDID用メモリ700には例えば“0xA0”が割り当てられている。そして、HDMIコネクタ7を介してテレビシステム2に接続される外部機器は、スレーブアドレスを指定することによって、不良解析回路500またはEDID用メモリ700にアクセスする。 In the above configuration, the failure analysis circuit 500 is assigned a slave address of, for example, "0xB0", and the EDID memory 700 is assigned a slave address of, for example, "0xA0". An external device connected to the television system 2 via the HDMI connector 7 accesses the failure analysis circuit 500 or the EDID memory 700 by specifying the slave address.

例えば、外部機器がレコーダ等の場合には、外部機器はスレーブアドレスとして“0xA0”を指定して、DDCラインを介してEDID読み出し制御回路800に対してデータを要求する。するとEDID読み出し制御回路800は、受信したスレーブアドレスに従って、EDID用メモリにアクセスしてEDIDを読み出し、外部機器に出力する。他方で、外部機器がテスターなどの起動情報読み出し装置10であった場合には、外部機器はスレーブアドレスとして“0xB0”を指定して、DDCラインを介してEDID読み出し制御回路800に対してデータを要求する。するとEDID読み出し制御回路800は、受信したスレーブアドレスに従って、不良解析回路500にアクセスしてログデータを読み出し、外部機器に出力する。 For example, if the external device is a recorder or the like, the external device specifies "0xA0" as the slave address and requests data from the EDID read control circuit 800 via the DDC line. The EDID read control circuit 800 then accesses the EDID memory according to the received slave address, reads the EDID, and outputs it to the external device. On the other hand, if the external device is a startup information reading device 10 such as a tester, the external device specifies "0xB0" as the slave address and requests data from the EDID read control circuit 800 via the DDC line. The EDID read control circuit 800 then accesses the failure analysis circuit 500 according to the received slave address, reads the log data, and outputs it to the external device.

<本実施形態に係る効果>
上記のように、第1及び第2実施形態で説明したSoC1は、テレビシステムに適用することができる。この際、HDMIを用いることにより、不良解析回路500とEDID用メモリ700とのいずれかを選択することができる。これにより、テレビシステム2における不良解析を簡易且つ高精度に実施できる。
<Effects of this embodiment>
As described above, the SoC 1 described in the first and second embodiments can be applied to a television system. In this case, by using HDMI, it is possible to select either the failure analysis circuit 500 or the EDID memory 700. This allows failure analysis in the television system 2 to be performed easily and with high accuracy.

<変形例など>
以上のように、上記第1乃至第3実施形態で説明した構成によれば、不良解析回路500は、起動中の各プロセスの処理番号を、起動開始からの経過時間情報と共に、SoC1内部のメモリ532に保存する。このメモリ532は、SoC1外部から直接にアクセス可能であり、例えばJTAGなどのインターフェースを用いてアクセスできる。したがって、SoC1が起動できていない状態であっても、メモリ532からログデータを外部に読み出すことができ、起動処理のどの時点において不具合が発生しているかを特定することができる。
<Modifications, etc.>
As described above, according to the configurations described in the first to third embodiments, the failure analysis circuit 500 stores the process number of each process being started, together with information on the elapsed time from the start of the start-up, in the memory 532 inside the SoC1. This memory 532 can be directly accessed from outside the SoC1, for example, by using an interface such as JTAG. Therefore, even if the SoC1 cannot be started, the log data can be read out from the memory 532 to the outside, and it is possible to identify at what point in the start-up process the failure occurred.

また、第3実施形態で説明したように、不良解析回路500は、例えば8KプロセッサなどのCPUを内蔵したLSIの起動不良解析にも適用できる。一例として、LSIの起動不良によって出荷できなかった場合、当該LSIは修理対象となり、不良個所を特定できなければ修理不能となり廃棄される。しかし上記実施形態に係る不良解析回路500を用いることで、起動に深くかかわるSoC、フラッシュメモリ、DDRメモリ、及びその他の周辺デバイスのどこに不具合があるかの特定が容易となる。また、ログデータに記録された経過時間から、各プロセスにおける処理の順番や、処理に要した時間を特定できるため、ハードウェアにおける不良だけでなく、ソフトウェアにおける不具合の特定も容易となる。その結果、修理対象となったLSI部品交換などで救済できる可能性を向上できる。 As described in the third embodiment, the failure analysis circuit 500 can also be applied to the startup failure analysis of an LSI incorporating a CPU such as an 8K processor. As an example, if an LSI cannot be shipped due to a startup failure, the LSI becomes a repair target, and if the defective part cannot be identified, it becomes unrepairable and is discarded. However, by using the failure analysis circuit 500 according to the above embodiment, it becomes easy to identify where the defect is in the SoC, flash memory, DDR memory, and other peripheral devices that are deeply involved in startup. In addition, since the order of processing in each process and the time required for processing can be identified from the elapsed time recorded in the log data, it becomes easy to identify not only hardware defects but also software defects. As a result, the possibility of salvaging the LSI to be repaired by replacing parts can be improved.

なお、実施形態は上記説明した形態に限定されず、種々の変形が可能である。例えば、起動時の処理の一例としては、図8に示す例があり得る。図8は、SoC1の起動処理のフローチャートである。図示するように、SoC1に電源が投入されると、まずBIOSが起動され(ステップS20)、CPU100はハードウェアのチェックなどを行ない、MBR(Master Boot Record)からブートローダを起動する(ステップS21)。ブートローダは、例えばブート用のメモリからカーネルをRAMに読み出し、CPU100がカーネルを起動する(ステップS22)。カーネルは、メモリの初期化やシステムクロックの設定などを行ない、initプロセスを起動する(ステップS23)。Initプロセスは、システムの初期化スクリプトを実行し、ランレベル(runlevel)に応じたサービスを実行し、その結果オペレーティングシステムが起動して、起動処理が完了する。上記のステップS20~S23の各々が、図3及び図5で説明したプロセスP1~P6に対応する。 Note that the embodiment is not limited to the above-described form, and various modifications are possible. For example, an example of the process at the time of startup may be as shown in FIG. 8. FIG. 8 is a flowchart of the startup process of SoC1. As shown in the figure, when power is applied to SoC1, the BIOS is started first (step S20), and the CPU 100 checks the hardware and starts the boot loader from the MBR (Master Boot Record) (step S21). The boot loader reads the kernel from the boot memory, for example, to the RAM, and the CPU 100 starts the kernel (step S22). The kernel initializes the memory and sets the system clock, and starts the init process (step S23). The init process executes the system initialization script and executes the service according to the runlevel, which results in the operating system starting and the startup process being completed. Each of the above steps S20 to S23 corresponds to the processes P1 to P6 described in FIG. 3 and FIG. 5.

もちろん、起動処理は図8に限定されるものではなく、例えば第3実施形態で説明したテレビシステムの場合には、テレビ受像機に電源投入されてから、ディスプレイに画像が正常に表示され、スピーカから音声が正常に出力されるまでのあらゆる処理であってもよい。また、上記第1及び第2実施形態で説明した不良解析回路500は、起動処理に限らず、起動後におけるあらゆる処理に関するプロセッサ100の処理結果をログデータとして記録してもよい。 Of course, the startup process is not limited to that shown in FIG. 8, and in the case of the television system described in the third embodiment, for example, it may be any process from when the television receiver is turned on until an image is normally displayed on the display and sound is normally output from the speaker. Furthermore, the failure analysis circuit 500 described in the first and second embodiments above may record the processing results of the processor 100 related to any process after startup as log data, not limited to the startup process.

また、上記実施形態では、不良解析回路500がCPU100から各プロセス内の処理(サブプロセス)の開始通知を受けて、これに基づいてログデータをRAM532に記録する場合を例に説明した。前述のとおり、複数のプロセスからのコールを必要とするプロセス(例えば図3におけるプロセスP5-1、P5-3、及びP6-1)は、必要とする全てのプロセスからコールされなければ実際の処理は開始されない。この点、例えば不良解析回路500は、開始通知の代わりに、処理が正常に終了したことを示す完了通知を受信する場合であってもよい。すなわち、CPU100は、各プロセスの処理を正常に終了すると、その旨を不良解析回路500に通知し、正常に終了できなかった場合には何らの通知も行わないか、あるいは正常に終了できなかった旨の通知を行なう。この場合のログデータの例を図9に示す。図9は図4に対応する。図示するように、プロセスP3-1は正常に処理を完了できなかったため、ログデータには記録されない。また、プロセスP5-1及びP6-1も処理を開始できないため、ログデータには記録されない。このような場合であっても、不良個所の特定が可能である。また、不良解析回路500が開始通知を受信する場合であっても、実際にサブプロセスの処理の実行が開始された際に、開始通知が出力される場合であってもよい。この場合、例えば第1実施形態の例では、プロセスP3-1の処理番号“S”の処理は不具合により正常に終了できないが、処理自体は実際に開始されるので、図4の例のようにアドレス“0x06”にプロセスP3-1が記録されるが、実際の処理が開始されないプロセスP5-1及びP6-1は記録されない。 In the above embodiment, the fault analysis circuit 500 receives a notification of the start of processing (sub-process) in each process from the CPU 100, and records log data in the RAM 532 based on this notification. As described above, a process that requires a call from multiple processes (for example, processes P5-1, P5-3, and P6-1 in FIG. 3) does not start actual processing unless it is called from all the processes that require it. In this regard, for example, the fault analysis circuit 500 may receive a completion notification indicating that processing has ended normally, instead of a start notification. That is, when the CPU 100 ends the processing of each process normally, it notifies the fault analysis circuit 500 of this fact, and when the processing of each process cannot be ended normally, it does not notify the fault analysis circuit 500 or notifies the fault analysis circuit 500 of the fact that the processing cannot be ended normally. An example of log data in this case is shown in FIG. 9. FIG. 9 corresponds to FIG. 4. As shown in the figure, the process P3-1 cannot be completed normally, so it is not recorded in the log data. Furthermore, the processes P5-1 and P6-1 cannot start processing, so they are not recorded in the log data. Even in such a case, it is possible to identify the defective part. Also, even if the failure analysis circuit 500 receives a start notification, the start notification may be output when the execution of the sub-process actually starts. In this case, for example, in the example of the first embodiment, the process of process number "S" of process P3-1 cannot be completed normally due to a malfunction, but the process itself actually starts, so that process P3-1 is recorded at address "0x06" as in the example of FIG. 4, but processes P5-1 and P6-1, which do not actually start processing, are not recorded.

また上記実施形態では、読み出し回路610がログデータを外部に出力する場合を例に説明した。しかし、読み出し回路610が不良個所を特定して、その情報を外部出力する場合であってもよい。このような場合の不良解析回路500の例を図10に示す。図示するように本例に係る不良解析回路500は、第1実施形態で説明した図1の構成において、読み出し回路610が、読み出し制御部611及び不良解析部612を備える。読み出し制御部611は、インターフェース回路540から受信した要求に応答して、RAM532からログデータを読み出し、これを不良解析部612に転送する。不良解析部612は、受信したログデータを参照し、経過時間やプロセスの順番に基づいて、どのプロセスにおいて不良が発生しているかを特定する。そして、特定された不良情報を、インターフェース回路540を介して外部に出力する。 In the above embodiment, the read circuit 610 outputs the log data to the outside. However, the read circuit 610 may identify the defective part and output the information to the outside. An example of the defect analysis circuit 500 in such a case is shown in FIG. 10. As shown in the figure, in the defect analysis circuit 500 according to this example, the read circuit 610 in the configuration of FIG. 1 described in the first embodiment includes a read control unit 611 and a defect analysis unit 612. In response to a request received from the interface circuit 540, the read control unit 611 reads the log data from the RAM 532 and transfers it to the defect analysis unit 612. The defect analysis unit 612 refers to the received log data and identifies in which process the defect occurs based on the elapsed time and the order of the process. Then, the identified defect information is output to the outside via the interface circuit 540.

また上記実施形態では、書き込み回路600は、タイマー回路520から受信したカウント値が、電源投入からの経過時間に対応する場合を例に説明した。具体的には、例えばタイマー回路520がカウント値を経過時間に変換して、これを加算部603に出力してもよいし、またはタイマー回路520から加算部603に与えられたカウント値を、例えば書き込み制御部601が経過時間に変換してもよい。しかしながら、ログデータとして記録される経過時間は、必ずしも電源投入からの経過時間に限らず、例えばカウント値そのものであってもよい。この場合であってもカウント値に基づいて各プロセスの処理順序を特定できる。または、タイマー回路520は、例えばSoC内部に設けられたバッテリで動作する時計機能を有していてもよい。そしてタイマー回路520は現在時刻を加算部603に送信し、書き込み制御部601は、電源投入からの経過時間の代わりに現在時刻と共に各プロセスの情報をRAM532に記録してもよい。この場合であっても、各プロセスに対応する時刻情報に基づいて、各プロセスの処理順序を特定できる。更に、タイマー回路520は、SoC1外部に設けられていてもよい。すなわち、SoC1が、時刻に関する情報を何らかの形で外部から受信できればよい。 In the above embodiment, the write circuit 600 has been described with reference to an example in which the count value received from the timer circuit 520 corresponds to the elapsed time since power-on. Specifically, for example, the timer circuit 520 may convert the count value into the elapsed time and output it to the adder 603, or the count value given to the adder 603 from the timer circuit 520 may be converted into the elapsed time by, for example, the write control unit 601. However, the elapsed time recorded as log data is not necessarily limited to the elapsed time since power-on, and may be, for example, the count value itself. Even in this case, the processing order of each process can be specified based on the count value. Alternatively, the timer circuit 520 may have a clock function that operates on, for example, a battery provided inside the SoC. Then, the timer circuit 520 may transmit the current time to the adder 603, and the write control unit 601 may record information on each process in the RAM 532 together with the current time instead of the elapsed time since power-on. Even in this case, the processing order of each process can be specified based on the time information corresponding to each process. Furthermore, the timer circuit 520 may be provided outside the SoC1. In other words, SoC1 needs to be able to receive information about the time from outside in some form.

また、上記実施形態では複数のプロセッサを備える場合を例に説明した。しかし、単一のプロセッサが複数のプロセスを同時実行可能な場合には、複数のプロセッサを備える場合に限定されない。更に、上記実施形態はSoCに限らず、半導体装置全般に適用可能であり、また第3実施形態で説明したテレビシステム以外のあらゆるアプリケーションに適用できる。更に、上記実施形態で説明したフローチャートの処理の順番は、可能な限り入れ替えることができる。 In addition, the above embodiment has been described with reference to an example in which multiple processors are provided. However, in cases where a single processor can execute multiple processes simultaneously, the present invention is not limited to the case in which multiple processors are provided. Furthermore, the above embodiment is not limited to SoCs, but can be applied to semiconductor devices in general, and can be applied to any application other than the television system described in the third embodiment. Furthermore, the order of the processes in the flowcharts described in the above embodiment can be changed as much as possible.

上記では、本発明のいくつかの実施形態を説明したが、上述した形態に限定されるものではなく、適宜変形可能である。そして上記の構成は、実質的に類似の構成、類似の作用効果を奏する構成または類似の目的を達成できる構成で置き換えることができる。 Although several embodiments of the present invention have been described above, the present invention is not limited to the above-mentioned forms and can be modified as appropriate. Furthermore, the above configurations can be replaced with substantially similar configurations, configurations that provide similar effects, or configurations that can achieve similar purposes.

1…SoC、2…テレビシステム、3…フラッシュメモリ、4…LCD制御部、5…オーディオプロセッサ、6…電源ユニット、7…HDMIコネクタ、10…起動情報読み出し装置、100…CPU、200…ROM、201…起動プログラム、202…オペレーティングシステム、300、532…RAM、400…電源検出回路、500…不良解析回路、510…リセット回路、520…タイマー回路、530…メモリ部、531…読み出し/書き込み制御回路、533…アドレスカウンタ、540…インターフェース回路、1000…内部インターフェース回路、600…書き込み回路、601…書き込み制御部、602…キャッシュメモリ、603…加算部、610…読み出し回路、611…読み出し制御部、612…不良解析部、700…EDID用メモリ、800…EDID読み出し制御回路、900…フラッシュインターフェース回路 1...SoC, 2...TV system, 3...Flash memory, 4...LCD control unit, 5...Audio processor, 6...Power supply unit, 7...HDMI connector, 10...Boot information reading device, 100...CPU, 200...ROM, 201...Boot program, 202...Operating system, 300, 532...RAM, 400...Power supply detection circuit, 500...Failure analysis circuit, 510...Reset circuit, 520...Timer circuit, 530...Memory unit, 531...Read/write control circuit, 533...Address counter, 540...Interface circuit, 1000...Internal interface circuit, 600...Write circuit, 601...Write control unit, 602...Cache memory, 603...Adder, 610...Read circuit, 611...Read control unit, 612...Failure analysis unit, 700...EDID memory, 800...EDID read control circuit, 900...Flash interface circuit

Claims (9)

第1プロセッサと、
前記第1プロセッサと並列に動作可能な第2プロセッサと、
不良解析回路と
を具備する半導体装置であって、前記不良解析回路は、
第1メモリと、
前記半導体装置への電源投入時に動作を開始するタイマーと、
前記半導体装置への電源投入に応答して実行される第1プロセス及び第2プロセスの開始情報を前記第1プロセッサ及び第2プロセッサからそれぞれ受信し、前記開始情報と、当該開始情報を受信した際における前記タイマーのカウント値に基づく情報とを、互いに対応付けて前記第1メモリに書き込む制御回路と、
前記半導体装置の外部から前記第1メモリへのアクセスを可能とするインターフェース回路と
を備える半導体装置。
A first processor;
a second processor operable in parallel with the first processor;
A semiconductor device comprising:
A first memory;
a timer that starts operating when power is applied to the semiconductor device;
a control circuit that receives from the first processor and the second processor start information of a first process and a second process that are executed in response to power-on of the semiconductor device, respectively, and writes the start information and information based on a count value of the timer at the time the start information is received in the first memory in association with each other;
and an interface circuit that enables access to the first memory from outside the semiconductor device.
前記制御回路は、前記第1プロセッサ及び前記第2プロセッサから、前記第1プロセスがコールされた旨の通知、または前記第2プロセスがコールされた旨の通知を、前記開始情報として受信し、
前記タイマーのカウント値に基づく情報は、前記半導体装置に電源が投入されてから、前記通知を受信するまでの経過時間に対応する、請求項1記載の半導体装置。
the control circuit receives, as the start information, a notification that the first process has been called or a notification that the second process has been called from the first processor and the second processor;
2. The semiconductor device according to claim 1, wherein the information based on the count value of said timer corresponds to an elapsed time from when said semiconductor device is powered on until said notification is received.
前記開始情報は、前記コールされたプロセスのプロセス名と、当該プロセスに含まれるサブプロセスの番号とを含み、
前記制御回路は、前記プロセス名、前記サブプロセスの番号、及び前記経過時間を関連付けて、前記第1メモリに書き込む、請求項2記載の半導体装置。
The start information includes a process name of the called process and a number of a sub-process included in the process;
3. The semiconductor device according to claim 2, wherein said control circuit writes said process name, said sub-process number, and said elapsed time in said first memory in association with each other.
前記第1プロセス及び前記第2プロセスは、前記半導体装置の起動処理の少なくとも一部である、請求項1乃至3いずれか1項記載の半導体装置。 The semiconductor device according to any one of claims 1 to 3, wherein the first process and the second process are at least a part of the startup process of the semiconductor device. 前記制御回路は、前記起動処理に含まれるプロセスであっても、前記第1プロセッサまたは前記第2プロセッサから当該プロセスの開始情報を受信しない場合には、当該プロセスに関する情報を前記第1メモリに書き込まない、請求項4記載の半導体装置。 The semiconductor device according to claim 4, wherein the control circuit does not write information about a process included in the startup process to the first memory if the control circuit does not receive start information about the process from the first processor or the second processor. 前記起動処理は、前記半導体装置に電源が投入されてから、オペレーティングシステムが起動するまでに必要な処理である、請求項4または5記載の半導体装置。 The semiconductor device according to claim 4 or 5, wherein the startup process is a process required from when the semiconductor device is powered on until the operating system starts up. 前記インターフェース回路は、前記半導体装置の起動が未完了である状態においても、前記外部とアクセス可能である、請求項1乃至6いずれか1項記載の半導体装置。 The semiconductor device according to any one of claims 1 to 6, wherein the interface circuit is accessible to the outside even when the startup of the semiconductor device is incomplete. 前記半導体装置は、テレビ受像機を制御し、
前記起動処理は、前記テレビ受像機が映像をディスプレイに表示し、音声をスピーカから出力可能となるまでに必要な処理を含む、請求項4または5記載の半導体装置。
The semiconductor device controls a television receiver,
6. The semiconductor device according to claim 4, wherein the start-up process includes processes required for the television receiver to display an image on a display and output an audio from a speaker.
EDIDを保持する第2メモリと、
前記第1メモリ及び前記第2メモリからデータを読み出し可能な読み出し回路と
を更に備え、
前記インターフェース回路には第1アドレスが割り当てられ、前記第2メモリには第2アドレスが割り当てられ、
前記読み出し回路は、DDC(Display Data Channel)を介して前記第1アドレスまたは前記第2アドレスを指定されることにより、前記第1メモリと前記第2メモリのいずれかからデータを読み出す、請求項8記載の半導体装置。
A second memory for storing an EDID;
a read circuit capable of reading data from the first memory and the second memory,
the interface circuit is assigned a first address and the second memory is assigned a second address;
9. The semiconductor device according to claim 8, wherein the read circuit reads data from either the first memory or the second memory by specifying the first address or the second address via a DDC (Display Data Channel).
JP2020172947A 2020-10-14 2020-10-14 Semiconductor Device Active JP7506576B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020172947A JP7506576B2 (en) 2020-10-14 2020-10-14 Semiconductor Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020172947A JP7506576B2 (en) 2020-10-14 2020-10-14 Semiconductor Device

Publications (2)

Publication Number Publication Date
JP2022064364A JP2022064364A (en) 2022-04-26
JP7506576B2 true JP7506576B2 (en) 2024-06-26

Family

ID=81385989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020172947A Active JP7506576B2 (en) 2020-10-14 2020-10-14 Semiconductor Device

Country Status (1)

Country Link
JP (1) JP7506576B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211625A (en) 2008-03-06 2009-09-17 Ricoh Co Ltd Start log storage method for information processor
JP2017111642A (en) 2015-12-17 2017-06-22 富士通株式会社 Power consumption calculation method and power consumption calculation system
JP2017530464A (en) 2014-09-12 2017-10-12 インテル コーポレイション System on chip (SoC) and low power debug architecture for systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211625A (en) 2008-03-06 2009-09-17 Ricoh Co Ltd Start log storage method for information processor
JP2017530464A (en) 2014-09-12 2017-10-12 インテル コーポレイション System on chip (SoC) and low power debug architecture for systems
JP2017111642A (en) 2015-12-17 2017-06-22 富士通株式会社 Power consumption calculation method and power consumption calculation system

Also Published As

Publication number Publication date
JP2022064364A (en) 2022-04-26

Similar Documents

Publication Publication Date Title
WO2020207040A1 (en) On-chip debugging device and method
US9218893B2 (en) Memory testing in a data processing system
JP5509568B2 (en) Computer apparatus, processor diagnosis method, and processor diagnosis control program
WO2022151717A1 (en) Memory repair method and apparatus after encapsulation, storage medium, and electronic device
TW201237749A (en) Diagnosing code using single step execution
JP7506576B2 (en) Semiconductor Device
JP2007012021A (en) Method and apparatus for processing information, and program
US11437071B2 (en) Multi-session concurrent testing for multi-actuator drive
CN111651308B (en) Method and device for acquiring debugging data of DP-HDMI chip and intelligent device
CN113160726A (en) Power-on self-detection method and power-on self-detection device
TWI245987B (en) Automatic error-detection voice device on motherboard
US20230289253A1 (en) Automated recovery mechanism from a system crash
CN114443442B (en) Log storage method and electronic equipment
US20140181586A1 (en) Method and apparatus for performing host based diagnostics using a service processor
WO2021157448A1 (en) Data processing system, data transfer device, and context switching method
TW201301018A (en) System and method for recovering a master boot record of a disk
CN100340995C (en) Fault self-detecting phonetic device on computer mainboard
JP3159357B2 (en) Multicomputer debugger
US11822936B2 (en) Display device and display method thereof
TWI845166B (en) Display method for memory module fatal error
WO2021088668A1 (en) Display method of display apparatus, display apparatus, and spliced screen system
WO2021249308A1 (en) Data acquiring method, device, terminal, and storage medium
JP2010211595A (en) Data processor
CN113918250A (en) Vehicle-mounted instrument display test analysis method and system
JP2005275451A (en) Program starting method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240614