JP2006107040A - Semiconductor integrated circuit - Google Patents
Semiconductor integrated circuit Download PDFInfo
- Publication number
- JP2006107040A JP2006107040A JP2004291561A JP2004291561A JP2006107040A JP 2006107040 A JP2006107040 A JP 2006107040A JP 2004291561 A JP2004291561 A JP 2004291561A JP 2004291561 A JP2004291561 A JP 2004291561A JP 2006107040 A JP2006107040 A JP 2006107040A
- Authority
- JP
- Japan
- Prior art keywords
- program
- external terminal
- rom
- code
- key code
- 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.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
- Microcomputers (AREA)
Abstract
Description
本発明は、半導体集積回路、さらにはそれにおけるセキュリティ技術に関し、例えばマイクロコンピュータに適用して有効な技術に関する。 The present invention relates to a semiconductor integrated circuit, and further to a security technique therefor, for example, a technique effective when applied to a microcomputer.
一つの半導体基板に形成されたマイクロコンピュータはCPU(中央処理装置)の他に、プログラム格納用ROM(リードオンリーメモリ)、演算用RAM(ランダムアクセスメモリ)及びタイマ,A/D(アナログ/ディジタル)変換器,D/A(ディジタル/アナログ)変換器等の周辺機能を1個の半導体チップ上に収容した比較的小規模のコントローラに使われるマイクロコンピュータである(例えば特許文献1)。ROMとしては、多くの場合マスクROMであるが、フィールドプログラム可能なプログラマブルROMも使われる。このためアドレスバス、データバス等のバスは信号ピンとして外部に引き出されておらず、外部ピンは電源、一部のコントロール信号等以外は周辺機能とマイクロコンピュータ外のシステムとのシステムインタフェース信号ピンに割り当てられる。 The microcomputer formed on one semiconductor substrate is a CPU (Central Processing Unit), ROM (Read Only Memory) for program storage, RAM (Random Access Memory) and timer, A / D (Analog / Digital) This is a microcomputer used for a comparatively small-scale controller in which peripheral functions such as a converter and a D / A (digital / analog) converter are accommodated on one semiconductor chip (for example, Patent Document 1). The ROM is often a mask ROM, but a programmable ROM capable of field programming is also used. For this reason, buses such as the address bus and data bus are not drawn out as signal pins, and the external pins are used as system interface signal pins for peripheral functions and systems outside the microcomputer except for power supply and some control signals. Assigned.
マイクロコンピュータは、CPUに含まれるプログラムカウンタのデフォルト値に従って内蔵ROMの先頭アドレスからプログラムを実行して起動する(これを「通常ブート」という)モードと、ユーザプログラムのデバッグの便宜を図るための機能として、内蔵ROM無効モードを有している。ここで、通常ブートモードと内蔵ROM無効モードとの違いについて説明する。 The microcomputer executes a program from the top address of the built-in ROM according to the default value of the program counter included in the CPU and starts it (this is called “normal boot”), and a function for the convenience of debugging the user program As an internal ROM invalid mode. Here, the difference between the normal boot mode and the built-in ROM invalid mode will be described.
図3には、通常ブートの流れが示される。 FIG. 3 shows a normal boot flow.
通常ブートにおいては、電源投入によるパワーオンリセットが行われ、それが解除されると(ST1)、CPU12に含まれるプログラムカウンタのデフォルト値に従って内蔵ROM19の先頭アドレスからユーザプログラムデータ(命令・オペランド)がフェッチされ(ST2)、それが実行される(ST3)。また、PCIバスやROM/SRAMバスのような外部拡張バス上に、ユーザプログラムが格納された拡張ROM20が結合されている場合、外部拡張ROM20の拡張ユーザプログラムデータ(命令・オペランド)がCPU12によって実行可能とされる。この場合、常に、内蔵ROM19内のブートプログラムを実行しなくてはならないので、外部にブートプログラムを置いて、それを自由に利用することはできない。
In a normal boot, a power-on reset is performed by turning on the power. When the power-on reset is canceled (ST1), user program data (instruction / operand) is read from the start address of the built-in
図4には、内蔵ROM無効モードの流れが示される。 FIG. 4 shows the flow of the built-in ROM invalid mode.
内蔵ROM無効モードにおいては、内蔵ROM19を無効にする外部端子が内蔵ROM無効モード選択信号によってイネーブル状態にセットされることによって、CPU12内のプログラムカウンタの値が拡張ROM20の先頭アドレスを指示するように変更され(ST11)、パワーオンリセット状態が解除されると(ST12)、CPU12によって、拡張ROM20の先頭アドレスからプログラムが実行されることによって起動される(ST13,ST14)。このモードによれば、内蔵ROM19の制約を受けることなく、外部メモリ空間に置かれたプログラムを利用することができる。しかしながら、外部モード端子のみの設定で内蔵ROM19の制約を受けずに外部メモリ空間を利用できるため、悪意を持ったエンドユーザにシステム上にある個人情報や著作権情報を入手するための手段を与えてしまう危険性がある。
In the internal ROM invalid mode, the external terminal for invalidating the
このようにデバッグの便宜のための内蔵ROM無効モードにおいては、外部モード端子のみで容易に内蔵ROMを無効にして、外部空間からブートすることが可能であるため、システムデバッグに便利とされる反面、システム製造者以外の最終エンドユーザにとっても外部空間を利用することができることから、内蔵ROM無効機能がシステム上、セキュリティホールになる虞がある。これによりセキュリティ情報の取得など、悪意あるプログラムを外部空間において利用される可能性がある。 As described above, in the internal ROM invalid mode for the convenience of debugging, the internal ROM can be easily invalidated and booted from the external space only by the external mode terminal, which is convenient for system debugging. Since the end space other than the system manufacturer can use the external space, the built-in ROM invalidation function may become a security hole in the system. As a result, a malicious program such as acquisition of security information may be used in the external space.
本発明の目的は、セキュリティ情報の取得など、悪意あるプログラムの外部空間での利用を排除するための技術を提供することにある。 An object of the present invention is to provide a technique for eliminating the use of a malicious program in an external space, such as acquisition of security information.
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。 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.
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。 The following is a brief description of an outline of typical inventions disclosed in the present application.
すなわち、通常ブートで実行される第1プログラムが記憶された第1記憶エリアと、デバッグ時のブートで実行される第2プログラムが記憶された第2記憶エリアと、上記第1プログラムと上記第2プログラムとを選択的に指定可能な第1外部端子と、キーコードの外部入力を可能とする第2外部端子と、上記第1外部端子からの指定に応じて上記第1プログラムと上記第2プログラムとを選択的に実行可能な中央処理装置とを含み、上記第2プログラムが実行された上記中央処理装置は、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致するか否かを判別する第1機能と、上記第1機能によって、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致すると判断された場合に、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムを実行する第2機能とを含む。 That is, a first storage area storing a first program executed in normal boot, a second storage area storing a second program executed in boot at the time of debugging, the first program and the second A first external terminal capable of selectively designating a program; a second external terminal capable of externally inputting a key code; and the first program and the second program according to designation from the first external terminal A central processing unit that can selectively execute the second program, and the central processing unit that executes the second program has a key code fetched via the second external terminal as a preset code. When it is determined by the first function that determines whether or not they match, and the key code fetched via the second external terminal matches the preset code by the first function , And a second function of executing a program stored in a memory provided outside of the semiconductor integrated circuit.
上記の手段によれば、上記第1機能は、上記第2プログラムの実行によって、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致するか否かを判別し、上記第2機能は、上記第1機能によって、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致すると判断された場合に、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムを実行する。これにより、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムを実行することはない。このことが、セキュリティ情報の取得など、悪意あるプログラムの外部空間での利用を排除する。 According to said means, said 1st function discriminate | determines whether the key code taken in via said 2nd external terminal corresponds with the code set beforehand by execution of said 2nd program. The second function is arranged outside the semiconductor integrated circuit when it is determined by the first function that the key code taken in via the second external terminal matches a preset code. The program stored in the stored memory is executed. As a result, unless the key code fetched via the second external terminal matches the preset code, the program stored in the memory arranged outside the semiconductor integrated circuit is executed. Absent. This eliminates the use of malicious programs in the external space, such as security information acquisition.
上記中央処理装置は、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り上記第2プログラムを無限ループで実行するように構成することができる。 The central processing unit can be configured to execute the second program in an infinite loop as long as the key code fetched via the second external terminal does not match a preset code.
上記中央処理装置は、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない場合には、上記第1外部端子からの指定にかかわらず、上記第1プログラムを実行するように構成することができる。 When the key code fetched via the second external terminal does not match a preset code, the central processing unit executes the first program regardless of designation from the first external terminal. It can be configured to execute.
上記第1記憶エリアと、上記第2記憶エリアとは、同一の半導体メモリにおいて互いに異なるアドレスに形成されることで、ハードウェア構成の簡素化を達成する。 The first storage area and the second storage area are formed at different addresses in the same semiconductor memory, thereby simplifying the hardware configuration.
このとき、上記半導体メモリをアクセスするためのアドレス信号の形成に、第1外部端子の論理状態を関与させるための論理ゲートを設けることができる。 At this time, it is possible to provide a logic gate for involving the logic state of the first external terminal in the formation of the address signal for accessing the semiconductor memory.
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。 The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.
すなわち、セキュリティ情報の取得など、悪意あるプログラムの外部空間での利用を排除するための技術を提供することができる。 That is, it is possible to provide a technique for eliminating the use of a malicious program in the external space, such as acquisition of security information.
図10には、本発明にかかる半導体集積回路の一例であるマイクロコンピュータが示される。このマイクロコンピュータ10は、特に制限されないが、内部バスコントローラ11、CPU12、シリアルインタフェース及びタイマ並びに割り込みコントローラ13、外部バスコントローラ14、入力ポート29、DMAC(ダイレクト・メモリ・アクセス・コントローラ)15,18、バスブリッジ17,21、ROM19、割り込みコントローラ20、オーディオコントローラ23、ディスプレイコントローラ24、グラフィックエンジン25、MPEG(Moving Picture Coding Experts Group)アクセラレータ26、DDR(ダブル・データ・レート)メモリバスコントローラ27、ロジック回路30、PLL(フェーズ・ロックド・ループ)回路31、リセット回路32を含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。上記CPU12、上記シリアルインタフェース及びタイマ並びに割り込みコントローラ13、上記外部バスコントローラ14、上記入力ポート29、上記DMAC15、上記バスブリッジ17,21は、バス16によって、互いにデータのやり取りが可能に結合される。また、上記バスブリッジ17、上記DMAC18、二つのROM19A,19B、割り込みコントローラ20、オーディオコントローラ23、ディスプレイコントローラ24、グラフィックエンジン25、MPEGアクセラレータ26は、バス22によって互いにデータのやり取りが可能に結合される。上記ROM19Aには、通常ブートのためのプログラム(これを「通常ブートプログラム」という)が格納される。この通常ブートプログラムが本発明における第1プログラムに対応する。上記ROM19Bには、デバッグ時のブートに実行されるブートジャンプコードが格納されている。ここで、上記ブートジャンプコードが本発明に於ける第2プログラムに対応する。上記オーディオコントローラ23、ディスプレイコントローラ24、グラフィックエンジン25、MPEGアクセラレータ26は、上記DDRメモリバスコントローラ27に結合されている。特に制限されないが、上記入力ポート29は、入力端子T4を介して複数ビット構成のパラレルデータの入力を可能とするもので、入力端子T4は、上記入力ポート29のビット構成に対応する複数の端子を含む。上記入力端子T4はマイクロコンピュータ10の通常動作においてはデータの入出力のために用いられ、後述するように内蔵ROM無効モードにおいてはキーコードの入力に用いられる。上記バス16とバス22は、バスブリッジ17によって結合される。また、上記バス16と上記DDRメモリバスコントローラ27とはバスブリッジ21によって結合される。
FIG. 10 shows a microcomputer as an example of a semiconductor integrated circuit according to the present invention. The
上記CPU12は、予め定められたプログラムに従って所定の演算処理を行う。上記内部バスコントローラ11は、上記バス16を介してデータのやり取りが行われる際のウェイト挿入などのバス制御を行う。シリアルインタフェース及びタイマ並びに割り込みコントローラ13は、外部との間でシリアルデータのやり取りを可能にするシリアルインタフェース部と、時間計測のためのタイマ部と、外部からの割り込み要求を所定の優先順位に従って処理する割り込みコントロール部とを含む。上記外部バスコントローラ14は、PCIバス、SRAMバス、あるいはROMバスなど、外部接続された各種バスを介して外部との間でデータやり取りを可能とするための所定のバス制御を行う。DMAC15,18は、上記CPU12の介在なしにデータのやり取りを可能とするDMA制御を行う。内蔵ROM19は、ブートジャンプのためのコードが格納される。ブートジャンプモードでは内蔵ROMからのブートが無効とされる。割り込みコントローラ20は各種内部モジュールからの割り込み要求を所定の優先順位に従って制御する。DDRメモリバスコントローラ27は、外部に結合されたDDRメモリとの間で、クロック信号の立ち上がりと立ち下がりの両方を利用した高速データ転送を実現する。上記オーディオコントローラ23は上記DDRメモリバスコントローラ27を介して取り込まれた音声データの音声出力制御を行う。上記オーディオコントローラ23の制御下で音声データが外部出力される。ディスプレイコントローラ24は、上記DDRメモリバスコントローラ27を介して取り込まれた画像データの表示のための外部出力制御を行う。グラフィックエンジン25は、上記DDRメモリバスコントローラ27を介して取り込まれた画像データの各種演算処理を行う。MPEGアクセラレータ26は、上記DDRメモリバスコントローラ27を介して取り込まれた動画データを専用のハードウェアによって高速処理する。上記ロジック回路30は、ブートジャンプモード端子T1を介してブートジャンプモード信号を取り込み、それに基づいて上記CPU12に対するブートプログラムの選択制御を行う。上記PLL回路31は、クロック入力端子T2を介して外部から入力されたクロック信号に同期して所定の内部クロック信号を形成する。リセット回路32は、パワーオンリセット端子T3を介して入力されたパワーオンリセット信号を取り込んで、上記CPU12に対してリセットのための割り込み要求を行う。
The
上記構成の動作を説明する。 The operation of the above configuration will be described.
図1には、上記マイクロコンピュータにおける主要部と、そこでやり取りされる信号との関係が示される。 FIG. 1 shows the relationship between the main part of the microcomputer and signals exchanged there.
マイクロコンピュータ10は、ユーザシステムに搭載された状態でユーザプログラムを実行することによってユーザシステムの動作制御を可能とする通常動作における通常ブートとは別に、ユーザプログラムのデバッグの便宜を図るための機能として、内蔵ROMを無効にし、且つ、外部空間ROMを有効にすることを許可又は禁止するためのブートジャンプモードを有する。そして上記ブートジャンプモードにおいて、外部空間にアクセスするか否かの判別を可能とするため、入力端子T4を介して取り込まれるキーコードをチェックしている。実際の実行手順は以下のようになる。
The
先ず、ブートジャンプモード信号によりブートジャンプモード端子T1がハイ(H)レベルにされることでROM19Aが無効にセットされる(ST21)。そして、パワーオンリセット状態が解除されると(ST22)、ブートジャンプコードを含むROM19Bからプログラムデータがフェッチされる(ST23)。そして、CPU12によってブートジャンプコードが実行され(ST24)、入力ポート29の設定、入力ポート29の状態読み出し、キーコード(外部空間にあるROM20にアクセスするための許可コード)比較処理が行われる。入力ポート29の読み出しやキーコード比較のためのコードは、CPU12において無限ループで実行され、拡張ROM20へのアクセスがブロックされる。参照キーコード情報はROM19Bに格納されている。この参照キーコード情報と、上記入力端子T4を介して入力されたキーコードとが一致しない限り、ROM20にはアクセスしないため、ROM20は、システム上ロックしているように見える。
First, the boot jump mode terminal T1 is set to a high (H) level by the boot jump mode signal, so that the
具体的には、入力端子T4を介してキーコードが入力されると。CPU12は、入力ポート29を介してキーコードの取り込みを行う(ST25)。キーコードは、特に制限されないが、例えば16ビットポートならば「H’5A5A」などとされる。このキーコードは長いほど、セキュリティレベルは向上する。入力端子T4を介して取り込まれたキーコードが、予め定められているコードと一致したら、CPU12により、デバッグプログラムが置いてあるROM20の先頭アドレスから命令データがフェッチされ(ST27)、それがCPU12で実行される(ST28)。
Specifically, when a key code is input via the input terminal T4. The
ブートジャンプコードの処理内容は限られており、コードサイズがとても小さくて済む。そのため、ROM19Bは、ROM19Aとは異なり、記憶容量が少なくて良く、レジスタとすることができる。
The processing content of the boot jump code is limited, and the code size can be very small. Therefore, unlike the
次に、ブートジャンプモード信号によりブートジャンプモード端子T1がロー(L)レベルにされてROM19Aが有効とされた状態では、非ブートジャンプモードが指定される。すなわち、図2に示されるようにブートジャンプモード端子T1がローレベルとされて、ROM19Aが有効とされ(ST21)、パワーオンリセット信号によりパワーオンリセット状態が解除された場合には、CPU12によって内蔵ROM19Aの先頭アドレスからユーザプログラムデータ(命令・オペランド)がフェッチされ(ST23)、それがCPU12で実行される(ST24)。また、内蔵ROM19A内のユーザプログラムの実行において、ROM20の先頭アドレスから拡張ユーザプログラムデータ(命令・オペランド)がフェッチされ(ST25)、それがCPU12により実行される場合もある(ST26)。尚、ブートジャンプモード端子T1がローレベルにされてROM19Aが有効とされた状態においてROM19Bは未使用とされる。
Next, when the boot jump mode terminal T1 is set to a low (L) level by the boot jump mode signal and the
上記例によれば、以下の作用効果を得ることができる。 According to the above example, the following operational effects can be obtained.
(1)CPU12は、上記ブートジャンプコードの実行によって、入力端子T4を介して取り込まれたキーコードが、予め設定されたコードと一致するか否かを判別し、その判別結果に応じての外部に配置されたメモリに記憶されているプログラムをフェッチして実行する。これにより、入力端子T4を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムをフェッチして実行することはない。このことが、セキュリティ情報の取得など、悪意あるプログラムの外部空間での利用を排除する。
(1) The
(2)上記中央処理装置は、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り上記ブートジャンプコードを無限ループで実行するように構成することができる。拡張ROM20へのアクセスがブロックされる。参照キーコード情報はROM19Bに格納されている。このとき、上記入力端子を介して入力されたキーコードが、予め設定されたコードと一致しない限り、ROM20にはアクセスしないため、ROM20は、システム上ロックしているように見える。
(2) The central processing unit can be configured to execute the boot jump code in an infinite loop as long as the key code fetched via the second external terminal does not match a preset code. . Access to the
(3)通常ブートユーザプログラムの記憶エリアと、ブートジャンプコードの記憶エリアとを一つのROM内に形成することによってハードウェア構成を単純化することが可能である。 (3) The hardware configuration can be simplified by forming the storage area for the normal boot user program and the storage area for the boot jump code in one ROM.
図5には、上記マイクロコンピュータ10の別の構成例が示される。
FIG. 5 shows another configuration example of the
図1及び図2に示される構成では、キーコードをチェックするために無限ループを使用したため、システム上ロックしているように見えた。図5に示される例では、一回のキーコード比較で失敗した場合、通常の内蔵ROMからのブートするようにしている。基本的に、ブートジャンプモードに入ってキーコードが一致した場合と、非ブートモードの処理は、それぞれ図1及び図2に示される場合と同じであるが、キーコード比較で失敗したときの動作が図1及び図2に示される場合と異なり、ユーザからは、見かけ上通常ブートと何ら異ならないように見える。このため、仮にブートジャンプ端子T1をハイレベルに設定しても、ブートジャンプモードの存在自体が知られ難くなる。以下、本例を具体的に説明する。 In the configuration shown in FIGS. 1 and 2, since an infinite loop was used to check the key code, it appeared to be locked on the system. In the example shown in FIG. 5, when the key code comparison fails once, the boot from the normal built-in ROM is performed. Basically, when the key code is matched after entering the boot jump mode, the processing in the non-boot mode is the same as the case shown in FIGS. 1 and 2, but the operation when the key code comparison fails Unlike the case shown in FIG. 1 and FIG. 2, it seems to the user that it does not differ from a normal boot. For this reason, even if the boot jump terminal T1 is set to a high level, it is difficult to know the existence of the boot jump mode itself. Hereinafter, this example will be specifically described.
先ず、ブートジャンプモード信号によりブートジャンプモード端子T1がハイレベルにされることでROM19Aが無効にセットされる(ST31)。ここでは、入力端子T4に、誤ったキーコードが入力される(ST32)。そして、パワーオンリセット状態が解除されると(ST33)、ブートジャンプコードを含むROM19Bからプログラムデータがフェッチされる(ST34)。そして、CPU12によってブートジャンプコードが実行され、入力ポート29の設定、入力ポート29の状態読み出される(ST35)。入力ポート29の状態読み出しが行われる(ST36)。本例では、入力端子T4に誤ったキーコードが入力されているため、CPU12のキーコード比較処理では、入力されたキーコードが誤っていると判断され、ROM19Aにアクセスされる(ST37)。これにより、ROM19Aの先頭アドレスから通常ブートユーザプログラム・データがCPU12にフェッチされ、それがCPU12で実行される(ST38)。尚、ブートジャンプモードに入ってキーコードが一致した場合と、非ブートモード時の処理は、それぞれ図1及び図2に示される場合と同じであるため、ここではそれについての説明を省略する。
First, the boot jump mode terminal T1 is set to the high level by the boot jump mode signal, so that the
図6には、上記マイクロコンピュータ10の別の構成例が示される。
FIG. 6 shows another configuration example of the
上記の例では、通常ブートユーザプログラム用のROM19Aと、ブートジャンプコード用のROM19Bとを別個に備えるものについて説明したが、通常ブートユーザプログラムの記憶エリアと、ブートジャンプコードの記憶エリアとを一つのROM内に形成することによってハードウェア構成を単純化することが可能である。図6に示されるマイクロコンピュータ10においては、通常ブートユーザプログラムの記憶エリアを有するROM19A内に、ブートジャンプコードの記憶エリアを形成することによって、通常ブートユーザプログラムの記憶エリアとブートジャンプコードの記憶エリアとを一つのROM19A内に形成している。かかる構成において、ステップST41からST48までの処理は、それぞれ図1におけるステップST1からST8に対応する。一つのROM19A内に通常ブートユーザプログラム記憶エリアとブートジャンプコード記憶エリアとを形成する場合、最小現の論理規模でブート先選択することが可能となる。
In the above example, the
図7には、図6に示される構成におけるアドレス信号の形成とROMのアドレスマップが示される。論理ゲート71,72でROM19Aのアドレスの1ビットと、ブートジャンプモード信号との論理演算を行い、その出力を上記ROM19Aのアドレスの1ビットと置き換えることで、通常ブートアドレス以外からブートするようにする。パワーオンリセット直後、ブートジャンプ端子がローレベルの時は、A4=‘L’がROM19Aに入るので、0番地から通常ブートされる。逆にブートジャンプ端子がハイレベルの時は、A4=‘H’がROM19Aに入るので、ブートジャンプコードが置いてある16番地からプログラムの実行が開始される。
FIG. 7 shows the formation of the address signal and the ROM address map in the configuration shown in FIG. The
上記の例では、キーコードをパラレル形式で取り込むための入力ポート29を設けたが、キーコードをシリアル通信によって取り込むようにしても良い。さらに、マイクロコンピュータ10に直接入る部分のデータを予め暗号化しておけば、さらにセキュリティも向上する。この場合、図8に示されるように、キーコードを暗号化機能付シリアルインタフェース81で処理することにより、暗号化されたシリアルデータに変換してから入力端子T4を介してマイクロコンピュータ10に供給する(ST56)。そして、マイクロコンピュータ10の内部には、上記キーコードを暗号化機能付シリアルインタフェース81の出力信号を復号可能な復号化機能付シリアルインタフェース82を設ける。キーコードを暗号化してシリアル形式で取り込む点を除く他の処理(ST51〜ST55、ST57,ST58)ついては、図1に示されるマイクロコンピュータ10での処理(ST21〜ST25、ST27,ST28)と同じである。
In the above example, the
図9には、上記マイクロコンピュータ10の別の構成例が示される。図9に示されるマイクロコンピュータ10が、図8に示されるのと大きく相違するのは、復号化機能付シリアルインタフェース82に代えて、アクセス履歴情報の蓄積エリアを備えたシリアルインタフェース92を備える点である。アクセス履歴情報の蓄積エリアは、特に制限されないが、フラッシュメモリなどの不揮発性メモリによって形成され、外部からのキーコード入力回数や、入力されたキーコード判定時のパス/フェイル情報が含まれる。入力端子T4を介してキーコード入力が行われる毎に、アクセス履歴情報が記録される(ST66)。上記アクセス履歴情報によれば、システムで不正にアクセスしようとした人がいたか否かを容易に判別することができる。尚、他の処理(ST61〜ST65、ST67,ST68)ついては、図1に示されるマイクロコンピュータ10での処理(ST21〜ST25、ST27,ST28)と同じである。
FIG. 9 shows another configuration example of the
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。 Although the invention made by the present inventor has been specifically described above, the present invention is not limited thereto, and it goes without saying that various changes can be made without departing from the scope of the invention.
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体集積回路に広く適用することができる。 In the above description, the case where the invention made by the present inventor is applied to the microcomputer which is the field of use that has been used as the background has been described. However, the present invention is not limited thereto, and is widely applied to various semiconductor integrated circuits. Can be applied.
本発明は、少なくとも中央処理装置を含むことを条件に適用することができる。 The present invention can be applied on condition that at least a central processing unit is included.
10 マイクロコンピュータ
12 CPU
14 外部バスコントローラ
19A,19B ROM
29 入力ポート
T1 ブートジャンプモード端子
T3 パワーオンリセット端子
T4 入力端子
10
14
29 Input port T1 Boot jump mode terminal T3 Power-on reset terminal T4 Input terminal
Claims (5)
デバッグ時のブートで実行される第2プログラムが記憶された第2記憶エリアと、
上記第1プログラムと上記第2プログラムとを選択的に指定可能な第1外部端子と、
キーコードの外部入力を可能とする第2外部端子と、
上記第1外部端子からの指定に応じて上記第1プログラムと上記第2プログラムとを選択的に実行可能な中央処理装置と、を含み、
上記第2プログラムが実行された上記中央処理装置は、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致するか否かを判別する第1機能と、
上記第1機能によって、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致すると判断された場合に、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムを実行する第2機能と、を含んで成る半導体集積回路。 A first storage area in which a first program executed in normal boot is stored;
A second storage area in which a second program to be executed at the time of debugging is stored;
A first external terminal capable of selectively designating the first program and the second program;
A second external terminal enabling external input of a key code;
A central processing unit capable of selectively executing the first program and the second program in accordance with designation from the first external terminal,
The central processing unit that has executed the second program has a first function for determining whether or not a key code fetched via the second external terminal matches a preset code;
When it is determined by the first function that the key code fetched via the second external terminal matches the preset code, the key code is stored in a memory arranged outside the semiconductor integrated circuit. A semiconductor integrated circuit comprising: a second function for executing the program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004291561A JP2006107040A (en) | 2004-10-04 | 2004-10-04 | Semiconductor integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004291561A JP2006107040A (en) | 2004-10-04 | 2004-10-04 | Semiconductor integrated circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006107040A true JP2006107040A (en) | 2006-04-20 |
Family
ID=36376720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004291561A Withdrawn JP2006107040A (en) | 2004-10-04 | 2004-10-04 | Semiconductor integrated circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006107040A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009544069A (en) * | 2006-07-14 | 2009-12-10 | マーベル ワールド トレード リミテッド | System-on-a-chip (SoC) test interface security |
-
2004
- 2004-10-04 JP JP2004291561A patent/JP2006107040A/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009544069A (en) * | 2006-07-14 | 2009-12-10 | マーベル ワールド トレード リミテッド | System-on-a-chip (SoC) test interface security |
JP2012155732A (en) * | 2006-07-14 | 2012-08-16 | Marvell World Trade Ltd | System-on-a-chip (soc), disk player, and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6433198B2 (en) | System and method for secure boot ROM patch | |
US8296528B2 (en) | Methods and systems for microcode patching | |
JP2013250980A (en) | Processor resource and execution protection methods and apparatus | |
JP4833907B2 (en) | Semiconductor device | |
US11586779B2 (en) | Embedded system and method | |
JPH10187642A (en) | Microprocessor and multiprocessor system | |
JPH09171488A (en) | Microcontroller for restriction of access to internal memory | |
JP5622429B2 (en) | Microcomputer | |
TWI804703B (en) | Computer apparatus and authority management method based on trust chain | |
TW201241742A (en) | System, apparatus, and method for segment register read and write regardless of privilege level | |
JP5322567B2 (en) | Data processing system and semiconductor integrated circuit | |
JP2006107040A (en) | Semiconductor integrated circuit | |
JP2006221606A (en) | Data processor | |
JPH04305735A (en) | Microprogram control circuit | |
JPH05334459A (en) | Microcomputer | |
CN112836245A (en) | Access control device and processor comprising same | |
JP2002541582A (en) | Method and system for updating user memory in an emulator system | |
JP5012562B2 (en) | Microcomputer | |
JP2005209105A (en) | Multi-thread processor | |
JP2004021422A (en) | Microcomputer | |
JP5823000B2 (en) | Microcomputer | |
JP2006202034A (en) | Semiconductor integrated circuit device | |
JPH0816434A (en) | Runaway detection device | |
CN117170754A (en) | Multi-core processor start control system, method, electronic device and storage medium | |
JP2570438B2 (en) | Interrupt controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071204 |