JP2006107040A - Semiconductor integrated circuit - Google Patents

Semiconductor integrated circuit Download PDF

Info

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
Application number
JP2004291561A
Other languages
Japanese (ja)
Inventor
Mitsuhiro Miyazaki
光弘 宮崎
Takashi Miyamoto
崇 宮本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2004291561A priority Critical patent/JP2006107040A/en
Publication of JP2006107040A publication Critical patent/JP2006107040A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Microcomputers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reject the malicious utilization of a program, such as the acquisition, etc. of security information in an external space. <P>SOLUTION: A central processing unit (12) constitutes a first function of distinguishing whether a keycode captured through a second external terminal (T4) coincides with a preset code by the execution of a boot jump code, and a second function of fetching and executing a program stored in an external memory (20) when it is judged that the keycode captured through the second external terminal by this first function coincides with the preset code. Since the program stored in a memory arranged outside of a semiconductor integrated circuit is not fetched and executed unless the keycode captured through the second external terminal coincides with the preset code, the malicious utilization of the program in the external space can be rejected. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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.

特開平6−348867号公報(第2段落)JP-A-6-348867 (second paragraph)

マイクロコンピュータは、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 ROM 19 according to the default value of the program counter included in the CPU 12. It is fetched (ST2) and executed (ST3). When an expansion ROM 20 storing a user program is connected to an external expansion bus such as a PCI bus or a ROM / SRAM bus, the expansion user program data (instructions / operands) of the external expansion ROM 20 is executed by the CPU 12. It is possible. In this case, since the boot program in the internal ROM 19 must always be executed, the boot program cannot be placed outside and used freely.

図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 internal ROM 19 is set to the enable state by the internal ROM invalid mode selection signal so that the value of the program counter in the CPU 12 indicates the start address of the expansion ROM 20. When it is changed (ST11) and the power-on reset state is released (ST12), the CPU 12 is activated by executing the program from the top address of the expansion ROM 20 (ST13, ST14). According to this mode, a program placed in the external memory space can be used without being restricted by the internal ROM 19. However, since the external memory space can be used without being restricted by the internal ROM 19 by setting only the external mode terminal, a malicious end user is provided with a means for obtaining personal information and copyright information on the system. There is a risk that

このようにデバッグの便宜のための内蔵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 microcomputer 10 is not particularly limited, but includes an internal bus controller 11, a CPU 12, a serial interface and timer and an interrupt controller 13, an external bus controller 14, an input port 29, DMAC (direct memory access controller) 15, 18, Bus bridge 17, 21, ROM 19, interrupt controller 20, audio controller 23, display controller 24, graphic engine 25, MPEG (Moving Picture Coding Experts Group) accelerator 26, DDR (double data rate) memory bus controller 27, logic circuit 30, a PLL (Phase Locked Loop) circuit 31, a reset circuit 32, and a single crystal silicon substrate by a known semiconductor integrated circuit manufacturing technique Is formed to which a single semiconductor substrate. The CPU 12, the serial interface and timer, the interrupt controller 13, the external bus controller 14, the input port 29, the DMAC 15, and the bus bridges 17 and 21 are coupled to each other via the bus 16 so as to exchange data. The bus bridge 17, the DMAC 18, the two ROMs 19 </ b> A and 19 </ b> B, the interrupt controller 20, the audio controller 23, the display controller 24, the graphic engine 25, and the MPEG accelerator 26 are coupled to each other via the bus 22 so as to exchange data. . The ROM 19A stores a normal boot program (referred to as “normal boot program”). This normal boot program corresponds to the first program in the present invention. The ROM 19B stores a boot jump code executed for booting during debugging. Here, the boot jump code corresponds to the second program in the present invention. The audio controller 23, display controller 24, graphic engine 25, and MPEG accelerator 26 are coupled to the DDR memory bus controller 27. Although not particularly limited, the input port 29 enables input of parallel data having a plurality of bits through the input terminal T4. The input terminal T4 has a plurality of terminals corresponding to the bit configuration of the input port 29. including. The input terminal T4 is used for data input / output in the normal operation of the microcomputer 10, and is used for key code input in the built-in ROM invalid mode as described later. The bus 16 and the bus 22 are connected by a bus bridge 17. The bus 16 and the DDR memory bus controller 27 are coupled by a bus bridge 21.

上記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 CPU 12 performs predetermined arithmetic processing according to a predetermined program. The internal bus controller 11 performs bus control such as wait insertion when data is exchanged via the bus 16. The serial interface, timer, and interrupt controller 13 process a serial interface unit that enables serial data exchange with the outside, a timer unit for time measurement, and external interrupt requests according to a predetermined priority order. Including an interrupt control unit. The external bus controller 14 performs predetermined bus control for enabling data exchange with the outside via various externally connected buses such as a PCI bus, an SRAM bus, or a ROM bus. The DMACs 15 and 18 perform DMA control that enables data exchange without the intervention of the CPU 12. The built-in ROM 19 stores a code for boot jump. In the boot jump mode, booting from the built-in ROM is invalidated. The interrupt controller 20 controls interrupt requests from various internal modules according to a predetermined priority. The DDR memory bus controller 27 realizes high-speed data transfer using both rising and falling of a clock signal with an externally coupled DDR memory. The audio controller 23 performs audio output control of audio data taken in via the DDR memory bus controller 27. Audio data is externally output under the control of the audio controller 23. The display controller 24 performs external output control for displaying image data captured via the DDR memory bus controller 27. The graphic engine 25 performs various arithmetic processes on the image data taken in via the DDR memory bus controller 27. The MPEG accelerator 26 processes the moving image data taken in via the DDR memory bus controller 27 at a high speed using dedicated hardware. The logic circuit 30 takes in the boot jump mode signal via the boot jump mode terminal T1, and performs control for selecting the boot program for the CPU 12 based thereon. The PLL circuit 31 forms a predetermined internal clock signal in synchronization with a clock signal input from the outside via the clock input terminal T2. The reset circuit 32 takes in a power-on reset signal input via the power-on reset terminal T3, and issues an interrupt request for resetting to the CPU 12.

上記構成の動作を説明する。   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 microcomputer 10 is a function for the convenience of debugging the user program separately from the normal boot in the normal operation that allows the user system to control the operation of the user system by executing the user program while mounted in the user system. , Has a boot jump mode for enabling or disabling enabling the internal ROM and enabling the external space ROM. In the boot jump mode, the key code fetched via the input terminal T4 is checked in order to determine whether or not to access the external space. The actual execution procedure is as follows.

先ず、ブートジャンプモード信号によりブートジャンプモード端子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 ROM 19A is set invalid (ST21). When the power-on reset state is released (ST22), program data is fetched from the ROM 19B including the boot jump code (ST23). Then, the boot jump code is executed by the CPU 12 (ST24), and the setting of the input port 29, the reading of the state of the input port 29, and the key code (permission code for accessing the ROM 20 in the external space) are compared. Codes for reading the input port 29 and comparing key codes are executed in an infinite loop in the CPU 12 and access to the expansion ROM 20 is blocked. The reference key code information is stored in the ROM 19B. Since the ROM 20 is not accessed unless the reference key code information matches the key code input via the input terminal T4, the ROM 20 appears to be locked on the system.

具体的には、入力端子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 CPU 12 takes in the key code via the input port 29 (ST25). The key code is not particularly limited. For example, in the case of a 16-bit port, “H′5A5A” is set. The longer the key code, the higher the security level. If the key code fetched via the input terminal T4 matches the predetermined code, the CPU 12 fetches the instruction data from the head address of the ROM 20 where the debug program is placed (ST27). It is executed (ST28).

ブートジャンプコードの処理内容は限られており、コードサイズがとても小さくて済む。そのため、ROM19Bは、ROM19Aとは異なり、記憶容量が少なくて良く、レジスタとすることができる。   The processing content of the boot jump code is limited, and the code size can be very small. Therefore, unlike the ROM 19A, the ROM 19B may have a small storage capacity and can be a register.

次に、ブートジャンプモード信号によりブートジャンプモード端子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 ROM 19A is enabled, the non-boot jump mode is designated. That is, as shown in FIG. 2, when the boot jump mode terminal T1 is set to the low level, the ROM 19A is enabled (ST21), and the power-on reset state is released by the power-on reset signal, the CPU 12 incorporates it. User program data (instruction / operand) is fetched from the head address of the ROM 19A (ST23), and is executed by the CPU 12 (ST24). In executing the user program in the built-in ROM 19A, the extended user program data (instruction / operand) is fetched from the head address of the ROM 20 (ST25) and executed by the CPU 12 (ST26). Note that the ROM 19B is unused when the boot jump mode terminal T1 is set to the low level and the ROM 19A is enabled.

上記例によれば、以下の作用効果を得ることができる。   According to the above example, the following operational effects can be obtained.

(1)CPU12は、上記ブートジャンプコードの実行によって、入力端子T4を介して取り込まれたキーコードが、予め設定されたコードと一致するか否かを判別し、その判別結果に応じての外部に配置されたメモリに記憶されているプログラムをフェッチして実行する。これにより、入力端子T4を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り、上記半導体集積回路の外部に配置されたメモリに記憶されているプログラムをフェッチして実行することはない。このことが、セキュリティ情報の取得など、悪意あるプログラムの外部空間での利用を排除する。   (1) The CPU 12 determines whether or not the key code fetched through the input terminal T4 matches the preset code by executing the boot jump code, and the external code corresponding to the determination result The program stored in the memory arranged in is fetched and executed. Thereby, unless the key code fetched via the input terminal T4 matches the preset code, the program stored in the memory arranged outside the semiconductor integrated circuit is fetched and executed. There is no. This eliminates the use of malicious programs in the external space, such as security information acquisition.

(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 expansion ROM 20 is blocked. The reference key code information is stored in the ROM 19B. At this time, since the ROM 20 is not accessed unless the key code input through the input terminal matches the preset code, the ROM 20 appears to be locked on the system.

(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 microcomputer 10.

図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 ROM 19A is set invalid (ST31). Here, an incorrect key code is input to the input terminal T4 (ST32). When the power-on reset state is released (ST33), program data is fetched from the ROM 19B including the boot jump code (ST34). Then, the boot jump code is executed by the CPU 12, and the setting of the input port 29 and the state of the input port 29 are read (ST35). The state of the input port 29 is read (ST36). In this example, since an incorrect key code is input to the input terminal T4, in the key code comparison process of the CPU 12, it is determined that the input key code is incorrect, and the ROM 19A is accessed (ST37). As a result, the normal boot user program data is fetched from the head address of the ROM 19A to the CPU 12, and is executed by the CPU 12 (ST38). Note that the processing in the boot jump mode when the key codes coincide with each other and the processing in the non-boot mode are the same as those shown in FIGS. 1 and 2, respectively, so description thereof will be omitted here.

図6には、上記マイクロコンピュータ10の別の構成例が示される。   FIG. 6 shows another configuration example of the microcomputer 10.

上記の例では、通常ブートユーザプログラム用のROM19Aと、ブートジャンプコード用のROM19Bとを別個に備えるものについて説明したが、通常ブートユーザプログラムの記憶エリアと、ブートジャンプコードの記憶エリアとを一つのROM内に形成することによってハードウェア構成を単純化することが可能である。図6に示されるマイクロコンピュータ10においては、通常ブートユーザプログラムの記憶エリアを有するROM19A内に、ブートジャンプコードの記憶エリアを形成することによって、通常ブートユーザプログラムの記憶エリアとブートジャンプコードの記憶エリアとを一つのROM19A内に形成している。かかる構成において、ステップST41からST48までの処理は、それぞれ図1におけるステップST1からST8に対応する。一つのROM19A内に通常ブートユーザプログラム記憶エリアとブートジャンプコード記憶エリアとを形成する場合、最小現の論理規模でブート先選択することが可能となる。   In the above example, the ROM 19A for the normal boot user program and the ROM 19B for the boot jump code are separately provided. However, the storage area for the normal boot user program and the storage area for the boot jump code are combined into one. It is possible to simplify the hardware configuration by forming it in the ROM. In the microcomputer 10 shown in FIG. 6, a boot jump code storage area and a boot jump code storage area are formed in a ROM 19A having a normal boot user program storage area. Are formed in one ROM 19A. In such a configuration, the processes from steps ST41 to ST48 correspond to steps ST1 to ST8 in FIG. 1, respectively. When a normal boot user program storage area and a boot jump code storage area are formed in one ROM 19A, it becomes possible to select a boot destination with a minimum current logical scale.

図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 logic gates 71 and 72 perform a logical operation on one bit of the address of the ROM 19A and the boot jump mode signal, and the output is replaced with one bit of the address of the ROM 19A, thereby booting from other than the normal boot address. . Immediately after the power-on reset, when the boot jump terminal is at a low level, A4 = 'L' enters the ROM 19A, so that the normal boot is performed from address 0. On the contrary, when the boot jump terminal is at the high level, A4 = 'H' enters the ROM 19A, so that the execution of the program is started from address 16 where the boot jump code is placed.

上記の例では、キーコードをパラレル形式で取り込むための入力ポート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 input port 29 for capturing the key code in parallel format is provided, but the key code may be captured by serial communication. Furthermore, if the data of the part directly entering the microcomputer 10 is previously encrypted, the security is further improved. In this case, as shown in FIG. 8, the key code is processed by the serial interface 81 with an encryption function to be converted into encrypted serial data and then supplied to the microcomputer 10 via the input terminal T4. (ST56). Inside the microcomputer 10, a serial interface 82 with a decryption function capable of decrypting the output signal of the serial interface 81 with the encryption function is provided. Other processes (ST51 to ST55, ST57, ST58) except that the key code is encrypted and captured in the serial format are the same as the processes (ST21 to ST25, ST27, ST28) in the microcomputer 10 shown in FIG. is there.

図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 microcomputer 10. The microcomputer 10 shown in FIG. 9 is greatly different from that shown in FIG. 8 in that a serial interface 92 having an access history information storage area is provided instead of the serial interface 82 with a decoding function. is there. The storage area of the access history information is not particularly limited, but is formed by a non-volatile memory such as a flash memory, and includes the number of key code inputs from the outside, and pass / fail information at the time of input key code determination. Each time a key code is input through the input terminal T4, access history information is recorded (ST66). According to the access history information, it is possible to easily determine whether or not there has been a person who tried to gain unauthorized access in the system. The other processes (ST61 to ST65, ST67, ST68) are the same as the processes (ST21 to ST25, ST27, ST28) in the microcomputer 10 shown in FIG.

以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。   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.

本発明にかかる半導体集積回路の一例であるマイクロコンピュータにおける主要部の構成例ブロック図である。1 is a block diagram illustrating a configuration example of a main part of a microcomputer as an example of a semiconductor integrated circuit according to the present invention. 上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。It is another example of a block diagram of the principal part in the said microcomputer. 上記マイクロコンピュータの比較対象とされる構成を示すブロック図である。It is a block diagram which shows the structure used as the comparison object of the said microcomputer. 上記マイクロコンピュータの比較対象とされる構成を示すブロック図である。It is a block diagram which shows the structure used as the comparison object of the said microcomputer. 上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。It is another example of a block diagram of the principal part in the said microcomputer. 上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。It is another example of a block diagram of the principal part in the said microcomputer. 図6に示される構成におけるアドレス信号の形成とROMのアドレスマップとの説明図である。It is explanatory drawing of formation of the address signal in the structure shown by FIG. 6, and the address map of ROM. 上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。It is another example of a block diagram of the principal part in the said microcomputer. 上記マイクロコンピュータにおける主要部の別の構成例ブロック図である。It is another example of a block diagram of the principal part in the said microcomputer. 上記マイクロコンピュータの全体的な構成例ブロック図である。It is a block diagram of an example of the overall configuration of the microcomputer.

符号の説明Explanation of symbols

10 マイクロコンピュータ
12 CPU
14 外部バスコントローラ
19A,19B ROM
29 入力ポート
T1 ブートジャンプモード端子
T3 パワーオンリセット端子
T4 入力端子
10 Microcomputer 12 CPU
14 External bus controller 19A, 19B ROM
29 Input port T1 Boot jump mode terminal T3 Power-on reset terminal T4 Input terminal

Claims (5)

通常ブートで実行される第1プログラムが記憶された第1記憶エリアと、
デバッグ時のブートで実行される第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.
上記中央処理装置は、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない限り上記第2プログラムを無限ループで実行する請求項1記載の半導体集積回路。 2. The semiconductor integrated circuit according to claim 1, wherein said central processing unit executes said second program in an infinite loop unless a key code fetched through said second external terminal matches a preset code. 上記中央処理装置は、上記第2外部端子を介して取り込まれたキーコードが、予め設定されたコードと一致しない場合には、上記第1外部端子からの選択にかかわらず、上記第1プログラムを実行する請求項1記載の半導体集積回路。 If the key code fetched through the second external terminal does not match a preset code, the central processing unit executes the first program regardless of the selection from the first external terminal. The semiconductor integrated circuit according to claim 1 to be executed. 上記第1記憶エリアと、上記第2記憶エリアとは、同一の半導体メモリにおいて互いに異なるアドレスに形成された請求項3又は4記載の半導体集積回路。 5. The semiconductor integrated circuit according to claim 3, wherein the first storage area and the second storage area are formed at different addresses in the same semiconductor memory. 上記半導体メモリをアクセスするためのアドレス信号の形成に、第1外部端子の論理状態を関与させるための論理ゲートを含む請求項4記載の半導体集積回路。 5. The semiconductor integrated circuit according to claim 4, further comprising a logic gate for causing the logic state of the first external terminal to participate in forming an address signal for accessing the semiconductor memory.
JP2004291561A 2004-10-04 2004-10-04 Semiconductor integrated circuit Withdrawn JP2006107040A (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009544069A (en) * 2006-07-14 2009-12-10 マーベル ワールド トレード リミテッド System-on-a-chip (SoC) test interface security

Cited By (2)

* Cited by examiner, † Cited by third party
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