(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-04
(54)【発明の名称】メモリ組込み自己テストコントローラを用いる読み出し専用メモリのテスト
(51)【国際特許分類】
G06F 11/36 20060101AFI20220328BHJP
【FI】
G06F11/36 188
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021523596
(86)(22)【出願日】2019-10-29
(85)【翻訳文提出日】2021-06-25
(86)【国際出願番号】 US2019058619
(87)【国際公開番号】W WO2020092406
(87)【国際公開日】2020-05-07
(32)【優先日】2019-02-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-12-28
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-10-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390020248
【氏名又は名称】日本テキサス・インスツルメンツ合同会社
(71)【出願人】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【上記1名の代理人】
【識別番号】100098497
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】プラカシュ ナラヤナン
(72)【発明者】
【氏名】ニキタ ナレシュ
(72)【発明者】
【氏名】プラシユシャ テジャ イヌガンティ
(72)【発明者】
【氏名】ラケシュ チャンナバサッパ ヤラドゥヤシナハリ
(72)【発明者】
【氏名】アラヴィンダ アチャリャ
(72)【発明者】
【氏名】ジャスビル シンハ
(72)【発明者】
【氏名】ナヴィーン アンバラメティル ナラヤナン
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA33
5B042GB08
5B042HH49
5B042JJ36
(57)【要約】
システムが、揮発性ストレージデバイス(106)、読み出し専用メモリ(ROM、104)、メモリ組込み自己テスト(BIST)コントローラ(110)、及び中央処理装置(CPU、102)を含む。CPU(102)は、リセット事象が生じると、ROM(104)からの第1の命令を実行して、CPU(102)にROM(104)内の或る範囲のアドレスから揮発性ストレージデバイス(106)に命令をコピーさせる。また、CPU(102)は、ROM(104)からの第2の命令を実行してプログラムカウンタを変更する。CPU(102)は更に、プログラムカウンタを用いて、揮発性ストレージデバイス(106)からの命令を実行する。CPU(102)は、揮発性ストレージデバイス(106)から命令を実行するとき、ROM(104)にテストモードに入らせ、メモリBISTコントローラ(110)をROM(104)をテストするように構成させる。
【特許請求の範囲】
【請求項1】
システムであって、
揮発性ストレージデバイス、
読み出し専用メモリ(ROM)、
メモリ組込み自己テスト(BIST)コントローラ、及び
中央処理装置(CPU)、
を含み、
初期化事象が生じた際、前記CPUが、
前記ROMからの第1の命令を実行して、前記CPUに、前記ROMにおける或る範囲のアドレスからの複数の命令を前記揮発性ストレージデバイスにコピーさせ、
前記ROMからの第2の命令を実行してプログラムカウンタを変更し、
前記プログラムカウンタを用いて前記揮発性ストレージデバイスからの前記複数の命令を実行し、前記複数の命令を前記CPUが複数の命令を実行する際、前記CPUが、前記ROMをテストモードに入らせ、前記メモリBISTコントローラが前記ROMをテストするように構成されるようにする、
システム。
【請求項2】
請求項1に記載のシステムであって、
前記ROMが、前記CPUに結合される第1のポートと、前記メモリBISTコントローラに結合される第2のポートとを有し、
前記CPUが前記ROMを前記テストモードに入らせるとき、前記ROMが、前記第1のポートをディセーブルし、前記第2のポートをイネーブルする、
システム。
【請求項3】
請求項1に記載のシステムであって、前記CPUが更に、前記複数の命令を実行するとき、前記ROMに前記テストモードから出るようにさせる、システム。
【請求項4】
請求項3に記載のシステムであって、前記CPUが、前記複数の命令を実行するとき、前記メモリBISTコントローラが前記ROMの前記テストを完了する際に、前記ROMに前記テストモードから出るようにさせる、システム。
【請求項5】
請求項3に記載のシステムであって、前記ROMに前記テストモードから出るようにさせる際、前記ROMの第1のポートがイネーブルされ、前記ROMの第2のポートがディセーブルされる、システム。
【請求項6】
請求項1に記載のシステムであって、前記CPUが更に、前記複数の命令を実行するとき、前記CPUに、前記ROMにおけるアドレスに対応する新しい値に前記プログラムカウンタを再び変更させるようにする、システム。
【請求項7】
請求項6に記載のシステムであって、前記プログラムカウンタの前記新しい値が、前記第1の複数の命令のアドレスの前記範囲に続くROMアドレスに対応する、システム。
【請求項8】
請求項7に記載のシステムであって、前記CPUが、前記ROMからの第2の命令を実行して、前記ROMが前記メモリBISTコントローラによるテストに合格したか否かを前記CPUに判定させる、システム。
【請求項9】
命令を格納する非一時的ストレージデバイスであって、中央処理装置(CPU)によって実行されるとき、前記CPUに、
前記非一時的ストレージデバイス内の或る範囲のアドレスからの複数の命令を揮発性ストレージデバイスにコピーさせ、
前記非一時ストレージデバイスからの第1の命令を実行させて、前記揮発性ストレージデバイスにおけるアドレスに対応するようにプログラムカウンタを変更し、
前記非一時的ストレージデバイスからの第2の命令を実行させて、前記非一時的ストレージデバイスが第2のデバイスによって実施されるテストに合格したかどうかを検査するようにする、
非一時的ストレージデバイス。
【請求項10】
請求項9に記載の非一時的ストレージデバイスであって、前記第2のデバイスが組込み自己テストコントローラを含む、非一時的ストレージデバイス。
【請求項11】
請求項9に記載の非一時的ストレージデバイスであって、前記揮発性ストレージデバイスにコピーされる前記複数の命令が、前記非一時的ストレージデバイスに、前記CPUに結合されるポートをディセーブルさせ、前記非一時的ストレージデバイスに、前記第2デバイスに結合されるポートをイネーブルさせる命令を含む、非一時的ストレージデバイス。
【請求項12】
請求項9に記載の非一時的ストレージデバイスであって、前記揮発性ストレージデバイスにコピーされる前記複数の命令が、前記第2のデバイスが前記非一時的ストレージデバイスをテストするように構成されるようにするための命令を含む、非一時的ストレージデバイス。
【請求項13】
請求項9に記載の非一時的ストレージデバイスであって、前記揮発性ストレージデバイスにコピーされる前記複数の命令が、前記CPUに、前記第2のデバイスが前記非一時的ストレージデバイスの前記テストを完了するのを待機させる命令を含む、非一時的ストレージデバイス。
【請求項14】
請求項9に記載の非一時的ストレージデバイスであって、前記揮発性ストレージデバイスにコピーされる前記複数の命令が、前記非一時的ストレージデバイスに、前記CPUに結合された前記ポートイネーブルさせ、前記第2のデバイスに結合された前記ポートをディセーブルさせるための命令を含む、非一時的ストレージデバイス。
【請求項15】
請求項9に記載の非一時的ストレージデバイスであって、前記揮発性ストレージデバイスにコピーされる前記複数の命令が、前記複数の命令に続く前記ROMにおけるアドレスに対応するように前記プログラムカウンタを変更するための命令を含む、非一時的ストレージデバイス。
【請求項16】
方法であって、
読み出し専用メモリ(ROM)内の或る範囲のアドレスから揮発性ストレージデバイスに複数の命令をコピーすること、
前記複数の命令の先頭の前記揮発性ストレージデバイス内のアドレスに対応するようにプログラムカウンタの値を変更すること、
前記揮発性ストレージデバイスからの前記複数の命令を実行することであって、前記複数の命令が、前記ROM内の前記複数の命令の終わりに続く前記ROM内のアドレスに対応するように前記プログラムカウンタの値を変更するための命令を含む、前記複数の命令を実行すること、及び
前記ROM内の或る命令を実行して、前記ROMがテストに合格したかどうかを判定すること、
を含む、方法。
【請求項17】
請求項16に記載の方法であって、前記ROMの前記テストをメモリ組込み自己テストコントローラによって実施することを更に含む、方法。
【請求項18】
請求項16に記載の方法であって、前記揮発性ストレージデバイスからの前記複数の命令を実行することが、
中央処理装置に結合される前記ROMの第1のポートをディセーブルすること、及び
メモリ組込み自己テストコントローラに結合される前記ROMの第2のポートをイネーブルすること、
を含む、方法。
【請求項19】
請求項18に記載の方法であって、前記ROMの前記テストが完了すると、前記ROMの前記第1のポートをイネーブルし、前記第2のポートをディセーブルすることを更に含む、方法。
【請求項20】
請求項16に記載の方法であって、前記揮発性ストレージデバイスからの前記複数の命令を実行することが、前記ROMをテストするためにメモリ組込み自己テストコントローラ上で待機することを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
電子機器システムの多くは、メモリからのコードを実行するマイクロプロセッサを含む。このようなシステムには大抵、読み出し専用メモリ(ROM)及びランダムアクセスメモリ(RAM)が含まれる。こういったシステムのためのブートプロセスの間に実行されるコードを格納するために、「ブート」ROMがシステムに含まれ得る。多くのシステムは、ブートプロセスの間、及び/又は、ブートプロセスが完了した後のアイドル時間の間、RAM及びROMをテストして、そういったメモリが構造的に損なわれていないか、また、格納されたデータに信頼性があるかを確認する。
【発明の概要】
【0002】
一例において、或るシステムが、揮発性ストレージデバイス、読み出し専用メモリ(ROM)、メモリ組込み自己テストコントローラ(BIST)、及び中央処理装置(CPU)を含む。CPUは、リセット事象が生じると、ROMからの第1の命令を実行して、CPUに、ROMにおける或る範囲のアドレスから揮発性ストレージデバイスに複数の命令をコピーさせる。また、CPUは、ROMからの第2の命令を実行してプログラムカウンタを変更する。CPUは更に、プログラムカウンタを用いて、揮発性ストレージデバイスからの複数の命令を実行する。CPUは、揮発性ストレージデバイスからの複数の命令を実行する際、ROMをテストモードに入らせ、また、メモリBISTコントローラが、ROMをテストするように構成されるようにする。
【0003】
別の例において、或る方法が、読み出し専用メモリ(ROM)内の或る範囲のアドレスから揮発性ストレージデバイスに複数の命令をコピーすること、及び、複数の命令の先頭にある揮発性ストレージデバイス内のアドレスに対応するようにプログラムカウンタの値を変更することを含む。この方法は更に、揮発性ストレージデバイスからの複数の命令を実行することを含む。こういった命令には、ROM内の複数の命令の終わりに続くROM内のアドレスに対応するようにプログラムカウンタの値を変更させるための命令が含まれる。また、この方法は、ROM内の命令を実行して、ROMがテストに合格したかどうかを判定する。
【図面の簡単な説明】
【0004】
【
図1】ROMをテストするための例示のシステムを図示する。
【0005】
【
図2】メモリ組込み自己テストテスト(MBIST)コントローラによるROMのテストを開始するため、RAMからの実行のための、ROMからRAMへのコードのコピーを図示する。
【0006】
【
図3】MBISTコントローラを用いてROMをテストするためのタイムラインを図示する。
【0007】
【
図4】ROMをテストするためのシステムの別の例を示す。
【0008】
【
図5】ROMをテストするための方法のフローチャートである。
【発明を実施するための形態】
【0009】
上述のように、ROMの内容はブートプロセスの間に検証される。ROMの内容を検証するために、巡回冗長検査(CRC)手法がよく用いられる。CRC手法は時間がかかり、幾つかの応用例には厳しいタイミング要件がある場合がある。例えば、ROMを含む回路が含まれ得るオートモーティブ用途では、特にROMが安全上重要な回路の一部であるとき、ROMの内容が比較的最小限の時間ウィンドウ内で検証される必要がある。例えば、運転手が自動車を始動する度に、自動車内の一つ又は複数のROMの内容が検証される必要がある場合がある。しかしながら、運転手は、自動車を始動した直後に自動車を駆動し、自動車を安全に動作させ得ることを期待している。
【0010】
本明細書において記載する実施例は、ROMの内容を迅速に検証するための回路アーキテクチャを提供する。こういったアーキテクチャは、システムのRAMとROMの両方をテストするメモリ組込み自己テストコントローラ(MBIST)を含む。ブートプロセス間の初期段階で、中央処理装置(CPU)は、CPUに、或る命令をROMからRAM(又は他のタイプの揮発性ストレージデバイス)にコピーさせる、ROMからの命令を実行する。その後、CPUは、RAMからのそれらの特定の命令の実行を続行する。RAMからの実行されたコピーされた命令は、CPUにROMをテストモードに遷移させ、CPUに、ROMをテストするようにMBISTコントローラに指示させる。ROMテストの役割をMBISTコントローラにオフロードすることで、CPUは、他の有用なブート及び初期化機能を実施するために利用可能となり、そのため、ブートプロセスが迅速化され得る。また、システムによっては、ROMのCPUによる連続的読み出しアクセスが不可能な場合があり、連続的読み出しが可能な場合に比べてROMのテストが遅くなる。また、ROMをテストするためにCRCプロセスが用いられた場合、CPUの演算論理ユニット(ALU)及びレジスタを用いる演算サイクルは、テストされる各ROM位置毎に10~15サイクルを含み得る。本明細書に記載されるアーキテクチャは、ROMをより効率的かつ高速にテストする。本明細書に記載される実施例は、ROMのテストを支援するためのRAMの使用に関連するが、他のタイプの揮発性ストレージデバイスをRAM(例えば、レジスタ)の代わりに用いることもできる。
【0011】
図1は、CPU102、ROM104、RAM106、MBISTコントローラ110を含むシステム100の例を示す。一実装において、システム100は、
図1に示される構成要素が一般的な半導体ダイ上に製造された、システムオンチップ(SoC)を含む。ROM104は、非一時的ストレージデバイスである。この例では一つのCPU102が示されているが、他の例において複数のCPUが含まれていてもよい。この例では、CPU102は、アドレス及びデータバス(BUS1)を介してROM104にアクセスすることができ、CPU102は、異なるアドレス及びデータバス(BUS2)を介してRAM106にアクセスすることができる。CPU102は、プログラムカウンタ(PC)103に対応するメモリ位置に位置するコードを実行する。PC103の値は、そこから命令をフェッチするためのRAM106又はROM104内のアドレスであるか、又は、メモリアドレスを導出するために用いられる値(例えば、メモリアドレスを生成するためにオフセットに付加される値)である。同様に、MBISTコントローラ110は、それぞれ、アドレス及びデータバスBUS3及びBUS4を介してROM104及びRAM106に通信可能に結合される。
【0012】
実行可能命令(「コード」とも称する)が、ROM104に格納され、CPU102による実行のためにROM104から検索され得る。こういったコードは、システム100のリセット(例えば、ハードリセット又はソフトリセット)の際に実行されるブートコードを含み得る。ブートコードは、CPU102に、例えば、種々のレジスタを構成すること、システムに存在するインタフェースをテストすることなど、種々の初期化機能を実施させ得る。RAM106は、ランタイムの間用いられるデータ又はコードの一時的なストレージのためのスクラッチパッドストレージとして用いることができる。ROM104からのコードは、RAM106からの実行のためにRAM106に転送され得る。
【0013】
RAM106は、一つ又は複数のメモリデバイスを含み得、デュアルポートメモリデバイスである。一つのポート106aを介して、CPU102がRAM106にアクセスすることができる。別のポート106bを介して、MBISTコントローラ110がRAM106にアクセスすることができる。RAM TEST MODE信号115が第1の論理状態にアサートされ得、RAM106を、CPU102がRAM106を用いることのできる第1の実行モード(「ランタイム実行モード」と称する)にし、又は、RAM TEST MODE信号115は第2の論理状態にアサートされ得、RAM106を、MBISTコントローラ110がRAM106にアクセスすることのできる第2のモード(「テストモード」と称する)にする。ランタイム実行モードでは、ポート106aがクティブであり(そしてポート106bがイナクティブであり)、CPU102に、BUS2を介してRAM106にアクセスさせ得る。テストモードでは、ポート106bがアクティブであり(そしてポート106aがイナクティブであり)、MBISTコントローラ110を、BUS4を介してRAMにアクセスさせ得る。テストモードにある間、MBISTコントローラ110はRAM106をテストすることができる。例えば、BUS4を介して、MBISTコントローラ110は、あらかじめ定義されたビットパターンをRAM106に書き込むことができ、その後、RAMを読み出して、読み出したデータがRAMに書き込まれたものと一致することを確認することができる。一例では、CPU102は、MBISTコントローラ110に一つ又は複数の制御レジスタを書き込んで、MBISTコントローラ110をトリガして、RAM106のテストを開始する。
【0014】
ROM104もデュアルポートメモリデバイスであり、ポート104a及び104bを含む。ポート104aはCPU102に結合され、ポート104bはメモリBISTコントローラ110に結合される。RAM106と同様に、ROM TEST MODE 111が、メモリBISTコントローラ110によって第1の論理状態にアサートされ得、ROM104を、CPU102がROM104にアクセス(例えば、コードをフェッチ)できる「ランタイム」実行モードとし、又は、第2の論理状態において、ROM104を、メモリBISTコントローラ110がROMにアクセスできる「テストモード」にする。ランタイム実行モードでは、ポート104aがアクティブであり(そしてポート104bがイナクティブであり)、CPU102がBUS1を介してROM104にアクセスできる。テストモードでは、ポート104bがアクティブであり(そしてポート104aがイナクティブであり)、BUS3を介してROM104にアクセスできる。
【0015】
ROM104をテストするために、
図2に記載される例示の手順が実施され得る。
図2を参照すると、ROM104及びRAM106の少なくとも一部の内容が示されている。ROM104は、実行可能コード202、204、206、208、210、及び212を含む。コード202及び212は、システムのブートを支援するとともに、ランタイムの間のシステムを動作させる支援する(例えば、より上位レベルのアプリケーションに代わって下位レベルのハードウェア構成要素へのアクセスを提供する)ための機能ROMコードを含む。ブートプロセスの間、CPU102は、例えばROM_ADDR_0において、機能ROMコード202の実行を開始する。すなわち、プログラムカウンタ103にROM_ADDR_0に対応する値がロードされ、CPU102はROM内のそのアドレスにおける命令の実行を開始する。PC103は、ROM104からフェッチされた各コード命令(又は命令のグループ)に対して増分される。
【0016】
PC103は、最終的にはROM104内のコード204の位置に対応する値となる。コード204は命令を含み、この命令は、CPU102に、破線によって示されるように、ROM_ADDR_bとROM_ADDR_cとの間のアドレスからのROMコード208を、RAM_ADDR_xとRAM_ADDR_yとの間のRAMアドレスにコピーさせる。RAM106のうち、ROMコード208を受信するために用いられる部分は、そうでなければ用いられなかったRAMの部分220である。RAM106に受信されたROMコード208は、
図2ではRAMコード222として示されている。
【0017】
ROMコード208がRAM106にコピーされると、PCはROM_ADDR_aに再び増分される。その位置のコードが、CPU102を、RAMアドレスRAM_ADDR_x(ROM104からのコード208を含むRAMコード222の開始アドレス)に対応する値にPC103を変更させる。CPU102はその後、ROMコード208の命令を実行するが、RAM(コード222)からのそれらの命令のコピーを実行する。命令には、命令208a~208dが含まれる。命令208aは、CPU102に、ROM104をテストモード用に構成させる。一例では、テストモード用にROM104を構成することは、メモリBISTコントローラ110が、ROM104をそのポート104bがイネーブルされる(及びポート104aがディスエーブルされる)テストモードに入らせる論理状態にROM TEST MODE信号111(
図1)をアサートすることを含む。その後、命令208bが実行されて、CPU102に、ROM104をテストするようにMBISTコントローラ110を構成させる。一例では、CPU102は、MBISTコントローラ110に一つ又は複数の制御レジスタを書き込んで、MBISTコントローラ110をトリガして、ROM104のテストを開始する。任意の適切な不揮発性メモリテストプロセスを用いて、ROM104をテストすることもできる。
【0018】
次いで、CPU102は命令208cを実行して、MBISTコントローラ110がROM104のテストを完了するのを待機するように、CPU102を休止状態にさせる。MBISTコントローラ110がそのROMテストプロセスを完了すると、MBISTコントローラ110は、CPU102に割り込みをアサートして、CPUにROMテストが完了したことを通知し得る。CPU102は休止状態を出て、その後、命令208dを実行する。命令208dにより、CPU102は、ROM104がそのテストモードから出て、ランタイム実行モードに入るようにし、それにより、CPU102がポート104aを介してROMからの命令を再び検索し得るようにする。この動作は、MBISTコントローラがROM TEST MODE信号111の論理状態を、ポート104aがイネーブルされポート104bがディスエーブルされるランタイム実行モードに対応する論理状態に変更することによって実装され得る。その後、RAM106からの命令208eが実行され、命令208eにより、CPUは、以前にRAM106にコピーされていたコード208に続くROMアドレスであるROM_ADDR_dに対応する値にPC103を変更する。
【0019】
MBISTコントローラ110は、ROMテストの結果を示す値を含むROM状態レジスタ117を含む。一例では、ROM状態レジスタは、合否表示を含む。新たに変更されたPC103が、ROM_ADDR_dに対応する値に戻ると、CPU102は、RAM106ではなくROM104からの命令をフェッチする。そのため、命令210が、フェッチされ、CPU102にROMテストの結果についてMBIST状態レジスタ117を検査させる。また、命令210は、ROM104がそのテストに合格した場合、コード実行を機能ROMコード212において継続させ得る。ROM104がそのテストに合格しなかった場合、命令210はエラー応答を開始し得る。エラー応答の例には、例えば、CPU102への割り込みの発生、エラー状態機械による出力信号のアサート等がある。
【0020】
図3は、ROM104がどのようにテストされるかを図示するタイムラインの一例を提供する。RAM106がMBISTコントローラ110によってテストされる前又は後(そのため、RAM TEST MODE115が
図3の例では論理「0」などの論理状態にある)、ROM TEST MODE信号111はROMのランタイム実行モードに対応する論理状態(302に示すように
図3では「0」)にあり、CPU102が実行のためにROM104からコードをフェッチすることが可能となる。306において、コード208がCPU102によってROM104からRAM106にコピーされる。その後、ROM TEST MODE信号111の論理状態は、ROM104をテストモードにする状態(この例では論理「1」)に変更されて、MBISTコントローラ110がテストのためにポート104bにアクセスすることを可能にする。コピーされたROMコード208(現在はRAM106内)は、RAMから実行される。コピーされたROMコード208は、例えば、ROM104をテストするようにMBISTコントローラ110を構成して、CPU102に上述のオペレーションを実施させる。313において、ROM TEST MODE信号111は、以前の状態に戻るようにアサートされて、ROM104がランタイム実行モードに戻され、そのため、312においてCPU102により実行されるROM104からのコードのフェッチが継続し得る。
【0021】
図4は、上述したROMテストパラダイムを実装するシステム400の例示のアーキテクチャである。例示のシステム400は、CPU402(これはARMコアを含み得る)、ブートROM404、RAM406、及びMBISTコントローラ410を含む。
図4の例におけるシステム400は、例えば、ダイレクトメモリアクセス(DMA)コントローラ412、付加的なROM428、及びハードウェアCRC420などの付加的な構成要素も含む。CPU402、DMA412、MBISTコントローラ410、ハードウェアCRC420、ROM428、及びRAM406は、バス405を介して共に結合される。一例では、バス405はアドバンストエクステンシブルインタフェース(AXI)を含むが、他の実装における他の規格にも適応し得る。ブートROM404(これは、
図2に示すROMコードを含む)は、密結合メモリ(TCM)インタフェース(ITCM及びDTCM)を介してCPU402に結合される。MBISTコントローラ410は、図示のように、それぞれ、インタフェース413、425、及び427を介して、ブートROM404、ROM428、RAM406に結合される。CPU102、及び
図1のROM104及びRAM106に対するMBISTコントローラ110によって実施されるオペレーションは、
図4のROM404及びRAM406に対して、CPU402及びMBISTコントローラ410によって実施される。
【0022】
図5は、例示に従った方法のフローチャートを示す。オペレーションは、示される順で又は異なる順で実施され得る。また、こういったオペレーションは逐次的に行ってもよいし、二つ以上のオペレーションを同時に行ってもよい。
【0023】
502において、再設定事象が成される。システム100、400への電力がイネーブルされ得、或いは、ソフト又はハードリセット事象が成され得る。504において、CPUは、ROM(例えば、ROM104、ROM404)からのコードの実行を開始する。ROM命令の一つが、506において、CPUにROMのコードの一部をRAMにコピーさせる。508で、コピーされたROMコードの先頭に対応するRAM内のアドレスに対応するようにPCが変更される。その後、CPUは、RAMからのコピーされたコードを実行し始め、その際、510において、ROMをテストモードに構成する。MBISTコントローラ(例えば、MBISTコントローラ110、410)は、CPUによって、512においてROMをテストするように構成され、その後、MBISTコントローラがROMのテストを開始する(514)。
【0024】
516において、CPUは、MBISTコントローラがROMテストを完了するまで待機する。ROMテストが完了すると、518において、ROMは、CPUがROMから命令をフェッチし続けることを可能にするために、ランタイム実行モードに戻るように構成される。PCは、以前にコピーされたROMコードに続くROM内のアドレスに変更される(520)。この方法は、522において、ROMがテストに合格したかどうかを判定することを含む。このオペレーションは、CPUがレジスタ内の値(例えば、合否フラグ)を読み出すことを含み得る。ROMがテストに合格した場合、この方法は、ブートプロセスが終了し、システムがランタイム環境に入る(例えば、一つ又は複数のランタイムアプリケーションが実行される)526で継続する。しかしながら、ROMがそのテストに合格しなかったと判定された場合、524において、上述のような適切な方式でROMエラーが処理される。
【0025】
本記載において、「結合する」という用語は、間接的又は直接的な有線又はワイヤレス接続のいずれかを意味する。そのため、第1のデバイスが第2のデバイスに結合する場合、その接続は、直接的接続を介するもの、又は、他のデバイス及び接続を介した間接的接続を介するものであり得る。「~に基づく」という記載は、「~に少なくとも部分的に基づく」ことを意味する。従って、XがYに基づく場合、Xは、Y及び任意の数の他の要因の関数であり得る。
【0026】
本発明の特許請求の範囲内で、記載した例示の実施例に改変が成され得、他の実施例が可能である。
【国際調査報告】