(57)【要約】      （修正有）【課題】多様な状況で検証動作が遂行されるシステムオンチップ及びその検証方法を提供する。【解決手段】システムオンチップに含まれたプロセッサによってテスト生成器及び例外処理器を受信する段階と、テストテンプレートに基づいて例外誘発命令語を含むテストプログラムを生成する段階と、テストプログラムの実行によって第１動作状態で第１命令語を遂行する段階と、テストプログラムを実行する間に例外誘発命令語を遂行する場合、テストプログラムの実行を中止する段階と、例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、固定された命令語シークェンスを遂行した後、変更された第２動作状態で、例外誘発命令語アドレスのすぐ次のアドレスに対応する第２命令語からテストプログラムの実行を再開する段階と、を含む。【選択図】図１６
2015201208.tif 000002
【特許請求の範囲】
【請求項１】
システムオンチップの検証方法において、
前記システムオンチップに含まれたプロセッサによってテスト生成器及び例外処理器を受信する段階と、
テストテンプレートに基づいて前記テスト生成器を含む前記プロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、
前記テストプログラムの実行によって第１動作状態で前記プロセッサによって第１命令語を遂行する段階と、
前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、
前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、
前記固定された命令語シークェンスを遂行した後、変更された第２動作状態で、前記例外誘発命令語アドレスのすぐ次のアドレスに対応する第２命令語から前記テストプログラムの実行を再開する段階と、を含む検証方法。
【請求項２】
前記第１動作状態から前記第２動作状態への変更によって前記第２命令語は、（ｉ）前記第１命令語とは異なるプロセッサで遂行されるか、又は（ｉｉ）前記第１命令語とは異なる権限レベル及び前記第１命令語とは異なる命令語セットの中の少なくとも１つを使用して遂行される請求項１に記載の検証方法。
【請求項３】
前記テストプログラムを生成する段階は、
前記テストテンプレートに含まれた第１命令文を読み出す段階と、
前記第１動作状態で遂行されるように前記第１命令文に対応する前記第１命令語を生成する段階と、
前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、
前記状態変換命令文に対応して、前記システムオンチップの動作状態を変更するために表示する動作状態の転換意図を含む前記例外誘発命令語を生成する段階と、
前記状態変換命令文の次に位置する第２命令文を読み出す段階と、
前記例外誘発命令語アドレスのすぐ次のアドレスに、前記第２動作状態で遂行されるように前記第２命令文に対応する前記第２命令語を生成する段階と、を含む請求項１に記載の検証方法。
【請求項４】
前記動作状態の転換意図は、前記テスト生成器の第１下位構成要素を通じて検出される請求項３に記載の検証方法。
【請求項５】
少なくとも２つの命令語セットを支援するプロセッサを含むシステムオンチップの検証方法において、
プロセッサによってテスト生成器及び例外処理器を受信する段階と、
テストテンプレートに基づいて前記テスト生成器を含む前記プロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、
前記プロセッサによって前記テストプログラムの実行によって前記少なくとも２つの命令語セットの中で第１命令語セットに基づいて生成された第１命令語を遂行する段階と、
前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、
前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、
前記固定された命令語シークェンスを遂行した後、前記例外誘発命令語アドレスのすぐ次のアドレスに対応する第２命令語から前記テストプログラムの実行を再開する段階と、を含み、
前記第２命令語は、前記少なくとも２つの命令語セットの中で第２命令語セットに基づいて生成される検証方法。
【請求項６】
前記テストプログラムを生成する段階は、
前記テストテンプレートに含まれた第１命令文を読み出す段階と、
前記第１命令語セットに基づいて前記第１命令文に対応する前記第１命令語を生成する段階と、
前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、
前記状態変換命令文に対応して、前記第１命令語セットの状態を変更するために表示する命令語セットの転換意図を含む前記例外誘発命令語を生成する段階と、
前記状態変換命令文の次に位置した第２命令文を読み出す段階と、
前記例外誘発命令語アドレスのすぐ次のアドレスに前記第２命令語セットに基づいて前記第２命令文に対応する前記第２命令語を生成する段階と、を含む請求項５に記載の検証方法。
【請求項７】
前記状態変換命令文は、前記命令語セットの転換意図を含む請求項６に記載の検証方法。
【請求項８】
前記命令語セットの転換意図は、前記テスト生成器の第１下位構成要素によって検出される請求項７に記載の検証方法。
【請求項９】
前記第１及び第２命令語の内容は、前記テスト生成器の第２下位構成要素によって決定される請求項８に記載の検証方法。
【請求項１０】
前記命令語セットの転換意図は、前記例外誘発命令語に含まれた引数を通じて検出される請求項６に記載の検証方法。
【請求項１１】
前記第１命令語、前記第２命令語、及び前記例外誘発命令語の中で少なくとも１つを参照モデルに注入してモデリング結果を獲得する段階をさらに含み、
前記モデリング結果は、前記第１命令語、前記第２命令語、及び前記例外誘発命令語の中で少なくとも１つの遂行にしたがって検証対象プロセッサの状態変化情報を含む請求項６に記載の検証方法。
【請求項１２】
前記モデリング結果を獲得する段階は、
前記検証対象プロセッサが少なくとも２つのプロセッサを含む場合、前記例外誘発命令語に含まれたプロセッサの転換意図を検出する段階と、
前記プロセッサの転換意図が検出された場合、前記例外誘発命令語の注入無しで前記参照モデルに非動作命令語を注入する段階と、を含み、
前記非動作命令語は、前記参照モデルの状態変化無しで次に生成される命令語の位置を設定する請求項１１に記載の検証方法。
【請求項１３】
前記テストプログラムは、前記検証対象プロセッサを含まないホストシステムオンチップで生成され、
前記第１命令語を遂行する段階、前記固定された命令語シークェンスを遂行する段階、及び前記テストプログラムの実行を再開する段階は、前記検証対象プロセッサを含むシステムオンチップで遂行される請求項１１に記載の検証方法。
【請求項１４】
プロセッサを含み、少なくとも２つの権限レベルを支援するシステムオンチップの検証方法において、
前記プロセッサによってテスト生成器及び例外処理器を受信する段階と、
テストテンプレートに基づいて前記テスト生成器を含むプロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、
前記プロセッサによって前記テストプログラムの実行によって前記少なくとも２つの権限レベルの中で第１権限レベルで第１命令語を遂行する段階と、
前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、
前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、
前記固定された命令語シークェンスを遂行した後、前記例外誘発命令語アドレスのすぐ次のアドレスに位置した第２命令語から前記テストプログラムの実行を再開する段階と、を含み、
前記第２命令語は、前記少なくとも２つの権限レベルの中で第２権限レベルで遂行される検証方法。
【請求項１５】
前記テストプログラムを生成する段階は、
前記テストテンプレートに含まれた第１命令文を読み出す段階と、
前記第１権限レベルで遂行されるように前記第１命令文に対応する前記第１命令語を生成する段階と、
前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、
前記状態変換命令文に対応して、前記第１権限レベルから前記第２権限レベルに転換を表示する権限レベルの転換意図を含む前記例外誘発命令語を生成する段階と、
前記テストテンプレート内で前記状態変換命令文の次に位置した第２命令文を読み出す段階と、
前記例外誘発命令語アドレスのすぐ次のアドレスに前記第２権限レベルで遂行されるように前記第２命令文に対応する前記第２命令語を生成する段階と、を含む請求項１４に記載の検証方法。
【請求項１６】
前記固定された命令語シークェンスを遂行する段階は、
前記第１権限レベルで動作する前記システムオンチップの第１状態情報を格納する段階と、
前記固定された命令語シークェンスを遂行する間に、前記第２権限レベルで動作する前記システムオンチップの第２状態情報を復旧する段階と、を含む請求項１４に記載の検証方法。
【請求項１７】
前記第１及び第２状態情報は、前記システムオンチップに連結されたメモリ装置の第１領域に格納され、前記第１領域は、前記第１権限レベルである時、前記第１及び第２状態情報を格納するために割当てる請求項１６に記載の検証方法。
【請求項１８】
前記第１及び第２状態情報は、前記システムオンチップに連結されたメモリ装置の第２領域に格納され、前記第２領域は、前記第２権限レベルである時、前記第１及び第２状態情報を格納するために割当てる請求項１７に記載の検証方法。
【請求項１９】
テストプログラムを生成するための第１データ、テスト生成器及び例外処理器を格納するメモリ装置と、
前記第１データにしたがって前記テスト生成器を使用して前記テストプログラムを各々生成する少なくとも２つのプロセッサと、を含み、
前記テストプログラムを生成する時に、前記テスト生成器は前記第１データでプロセッサの変換意図が検出された場合、第２データを生成し、
前記少なくとも２つのプロセッサ第１プロセッサによって前記テストプログラムを実行する時、前記第１プロセッサは、前記第２データにしたがって前記テストプログラムの実行を中止し、前記第１プロセッサと第２プロセッサとの間の変更がなされた後、前記テストプログラムの実行を再開するように前記第２データにしたがって固定された命令語シークェンスを遂行するために前記例外処理器を使用するコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステムオンチップに係り、さらに具体的にはシステムオンチップ及びその検証方法に関する。
【背景技術】
【０００２】
半導体工程の発展に伴って、最近開発されている半導体集積回路はプロセッサ、キャッシュメモリ、入／出力インターフェイス回路等が単一チップに集積されたシステムオンチップ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ、ＳｏＣ）の形態で開発される傾向がある。プロセッサとキャッシュメモリとを単一チップに集積すると、データの入／出力速度が向上し、その結果、プロセッサの全体的な性能が向上する効果が得られる。しかし、製造工程等の不均衡等によって半導体集積回路に不良が発生し、不良の原因を明らかにするための努力が必要である。
最近のＳｏＣは複数のプロセッサを含むことができる。また、各プロセッサは複数の権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）又は複数の命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）を変更し、動作することができる。したがって、このような複数のプロセッサ、複数の権限レベル、又は複数の命令語セットを考慮して自動でＳｏＣを検証する方法が必要となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８，３９７，２１７号公報
【特許文献２】米国特許第８，６０１，４３３号公報
【特許文献３】米国特許公開第２０１２／０２１６０２３号明細書
【特許文献４】米国特許公開第２００９／００６４１４９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は多様な状況で検証動作が遂行されるシステムオンチップ及びその検証方法を提供することにある。
【課題を解決するための手段】
【０００５】
前記目的を達成するための本発明の実施形態によるシステムオンチップの検証方法は、前記システムオンチップに含まれたプロセッサによってテスト生成器及び例外処理器を受信する段階と、テストテンプレートに基づいて前記テスト生成器を含む前記プロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、前記テストプログラムの実行によって第１動作状態で前記プロセッサによって第１命令語を遂行する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、前記固定された命令語シークェンスを遂行した後、変更された第２動作状態で、前記例外誘発命令語アドレスのすぐ次のアドレスに対応する第２命令語から前記テストプログラムの実行を再開する段階と、を含む。
【０００６】
実施形態として、前記第１動作状態から前記第２動作状態への変更によって前記第２命令語は、（ｉ）前記第１命令語とは異なるプロセッサで遂行されるか、又は（ｉｉ）前記第１命令語とは異なる権限レベル及び前記第１命令語とは異なる命令語セットの中の少なくとも１つを使用して遂行される。
実施形態として、前記テストプログラムを生成する段階は、前記テストテンプレートに含まれた第１命令文を読み出す段階と、前記第１動作状態で遂行されるように前記第１命令文に対応する前記第１命令語を生成する段階と、前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、前記状態変換命令文に対応して、前記システムオンチップの動作状態を変更するために表示する動作状態の転換意図を含む前記例外誘発命令語を生成する段階と、前記状態変換命令文の次に位置する第２命令文を読み出す段階と、前記例外誘発命令語アドレスのすぐ次のアドレスに、前記第２動作状態で遂行されるように前記第２命令文に対応する前記第２命令語を生成する段階と、を含む。
【０００７】
実施形態として、前記動作状態の転換意図は、前記テスト生成器の第１下位構成要素を通じて検出される。
前記目的を達成するための本発明の実施形態による少なくとも２つの命令語セットを支援するプロセッサを含むシステムオンチップの検証方法は、プロセッサによってテスト生成器及び例外処理器を受信する段階と、テストテンプレートに基づいて前記テスト生成器を含む前記プロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、前記プロセッサによって前記テストプログラムの実行によって前記少なくとも２つの命令語セットの中で第１命令語セットに基づいて生成された第１命令語を遂行する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、前記固定された命令語シークェンスを遂行した後、前記例外誘発命令語アドレスのすぐ次のアドレスに対応する第２命令語から前記テストプログラムの実行を再開する段階と、を含み、前記第２命令語は、前記少なくとも２つの命令語セットの中で第２命令語セットに基づいて生成される。
【０００８】
実施形態として、前記テストプログラムを生成する段階は、前記テストテンプレートに含まれた第１命令文を読み出す段階と、前記第１命令語セットに基づいて前記第１命令文に対応する前記第１命令語を生成する段階と、前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、前記状態変換命令文に対応して、前記第１命令語セットの状態を変更するために表示する命令語セットの転換意図を含む前記例外誘発命令語を生成する段階と、前記状態変換命令文の次に位置した第２命令文を読み出す段階と、前記例外誘発命令語アドレスのすぐ次のアドレスに前記第２命令語セットに基づいて前記第２命令文に対応する前記第２命令語を生成する段階と、を含む。
【０００９】
実施形態として、前記状態変換命令文は、前記命令語セットの転換意図を含む。
実施形態として、前記命令語セットの転換意図は、前記テスト生成器の第１下位構成要素によって検出される。
実施形態として、前記第１及び第２命令語の内容は、前記テスト生成器の第２下位構成要素によって決定される。
実施形態として、前記命令語セットの転換意図は、前記例外誘発命令語に含まれた引数を通じて検出される。
実施形態として、前記第１命令語、前記第２命令語、及び前記例外誘発命令語の中で少なくとも１つを参照モデルに注入してモデリング結果を獲得する段階をさらに含み、
前記モデリング結果は、前記第１命令語、前記第２命令語、及び前記例外誘発命令語の中で少なくとも１つの遂行にしたがって検証対象プロセッサの状態変化情報を含む。
【００１０】
実施形態として、前記モデリング結果を獲得する段階は、
前記検証対象プロセッサが少なくとも２つのプロセッサを含む場合、前記例外誘発命令語に含まれたプロセッサの転換意図を検出する段階と、
前記プロセッサの転換意図が検出された場合、前記例外誘発命令語の注入無しで前記参照モデルに非動作命令語を注入する段階と、を含み、
前記非動作命令語は、前記参照モデルの状態変化無しで次に生成される命令語の位置を設定する。
実施形態として、前記テストプログラムは、前記検証対象プロセッサを含まないホストシステムオンチップで生成され、前記第１命令語を遂行する段階、前記固定された命令語シークェンスを遂行する段階、及び前記テストプログラムの実行を再開する段階は、前記検証対象プロセッサを含むシステムオンチップで遂行される。
【００１１】
前記目的を達成するための本発明の実施形態によるプロセッサを含み、少なくとも２つの権限レベルを支援するシステムオンチップの検証方法は、前記プロセッサによってテスト生成器及び例外処理器を受信する段階と、テストテンプレートに基づいて前記テスト生成器を含むプロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、前記プロセッサによって前記テストプログラムの実行によって前記少なくとも２つの権限レベルの中で第１権限レベルで第１命令語を遂行する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、前記固定された命令語シークェンスを遂行した後、前記例外誘発命令語アドレスのすぐ次のアドレスに位置した第２命令語から前記テストプログラムの実行を再開する段階と、を含み、前記第２命令語は、前記少なくとも２つの権限レベルの中で第２権限レベルで遂行される。
【００１２】
実施形態として、前記テストプログラムを生成する段階は、
前記テストテンプレートに含まれた第１命令文を読み出す段階と、前記第１権限レベルで遂行されるように前記第１命令文に対応する前記第１命令語を生成する段階と、前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、前記状態変換命令文に対応して、前記第１権限レベルから前記第２権限レベルに転換を表示する権限レベルの転換意図を含む前記例外誘発命令語を生成する段階と、前記テストテンプレート内で前記状態変換命令文の次に位置した第２命令文を読み出す段階と、前記例外誘発命令語アドレスのすぐ次のアドレスに前記第２権限レベルで遂行されるように前記第２命令文に対応する前記第２命令語を生成する段階と、を含む。
【００１３】
実施形態として、前記固定された命令語シークェンスを遂行する段階は、前記第１権限レベルで動作する前記システムオンチップの第１状態情報を格納する段階と、前記固定された命令語シークェンスを遂行する間に、前記第２権限レベルで動作する前記システムオンチップの第２状態情報を復旧する段階と、を含む。
実施形態として、前記第１及び第２状態情報は、前記システムオンチップに連結されたメモリ装置の第１領域に格納され、前記第１領域は、前記第１権限レベルである時、前記第１及び第２状態情報を格納するために割当てる。
実施形態として、前記第１及び第２状態情報は、前記システムオンチップに連結されたメモリ装置の第２領域に格納され、前記第２領域は、前記第２権限レベルである時、前記第１及び第２状態情報を格納するために割当てる。
【００１４】
前記目的を達成するための本発明の実施形態によるコンピューティングシステムは、テストプログラムを生成するための第１データ、テスト生成器及び例外処理器を格納するメモリ装置と、前記第１データにしたがって前記テスト生成器を使用して前記テストプログラムを各々生成する少なくとも２つのプロセッサと、を含み、前記テストプログラムを生成する時に、前記テスト生成器は前記第１データでプロセッサの変換意図が検出された場合、第２データを生成し、前記少なくとも２つのプロセッサ第１プロセッサによって前記テストプログラムを実行する時、前記第１プロセッサは、前記第２データにしたがって前記テストプログラムの実行を中止し、前記第１プロセッサと第２プロセッサとの間の変更がなされた後、前記テストプログラムの実行を再開するように前記第２データにしたがって固定された命令語シークェンスを遂行するために前記例外処理器を使用する。
【発明の効果】
【００１５】
以上のような本発明の実施形態によれば、多様な状況で検証動作が遂行されるシステムオンチップ及びそれの検証方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態によるシステムオンチップ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ、以下、ＳｏＣ）を示すブロック図。
【図２】検証対象内テスト生成方式を利用して図１のシステムオンチップを検証するための構成を示すブロック図。
【図３】参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）を使用する検証対象外テスト生成方式を利用して図１のシステムオンチップを検証するための構成を示すブロック図。
【図４】システムオンチップを検証するための本発明による構成の実施形態を示すブロック図。
【図５】命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）の転換を伴うテストテンプレートの実施形態を示す図。
【図６】権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）の転換を伴うテストテンプレートの実施形態を示す図。
【図７】プロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換を伴うテストテンプレートの実施形態を示す図。
【図８】図４のマッピングテーブルを例示的に示す図。
【図９】本発明の実施形態によるテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の生成方法を示す順序図。
【図１０】本発明の実施形態によるテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の実行動作を示す順序図。
【図１１】本発明の実施形態による権限レベル及び命令語セットの転換を含むテストプログラムの実行動作を示す順序図。
【図１２】プロセッサ移行（Ｐｒｏｃｅｓｓｏｒ  Ｍｉｇｒａｔｉｏｎ）の時に起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）の動作を示す順序図。
【図１３】プロセッサ移行（Ｐｒｏｃｅｓｓｏｒ  Ｍｉｇｒａｔｉｏｎ）の時に目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）の動作を示す順序図。
【図１４】プロセッサ交換（Ｐｒｏｃｅｓｓｏｒ  Ｓｗａｐ）の時に起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）の動作を示す順序図。
【図１５】プロセッサ交換（Ｐｒｏｃｅｓｓｏｒ  Ｓｗａｐ）の時に目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）の動作を示す順序図。
【図１６】システムオンチップを検証するための本発明による構成の他の実施形態を示すブロック図。
【図１７】図１６のホストシステムオンチップでテストプログラムを生成する方法を示す順序図。
【発明を実施するための形態】
【００１７】
先の一般的な説明及び次の詳細な説明の全ては例示的であり、請求された発明の付加的な説明が提供されるものとして理解しなければならない。参照符号が本発明の望ましい実施形態に詳細に表示され、その例が参照図面に示されている。できるだけいずれの場合にも、同一の参照符号が同一又は類似な部分を参照するために説明及び図面に使用される。
以下では、システムオンチップ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ、ＳｏＣ）が本発明の特徴及び機能を説明するための電子装置の一例として使用される。しかし、この技術分野に熟練された人はここに記載された内容によって本発明の他の長所及び性能を容易に理解できる。また、本発明は他の実施形態を通じて具現されるか、或いは適用することができる。その上に、詳細な説明は本発明の範囲、技術的思想、及び他の目的から相当に逸脱せず、観点及び応用にしたがって修正されるか、或いは変更することができる。
【００１８】
図１は本発明の実施形態によるシステムオンチップ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ、以下、ＳｏＣ）を示すブロック図である。図１を参照すれば、コンピューティング装置１００はシステムオンチップ１１０及びメモリ装置１２０を含む。
システムオンチップ１１０はメモリコントローラ１１１を含む。メモリコントローラ１１１はメモリ装置１２０とのインターフェイスを提供する。システムオンチップ１１０はメモリコントローラ１１１を通じてメモリ装置１２０にデータを格納するか、或いはメモリ装置１２０からデータを読み出す。
【００１９】
システムオンチップ１１０は第１及び第２キャッシュメモリ１１２、１１３を含む。これは例示的なものとしてシステムオンチップ１１０は複数のキャッシュメモリを含んでもよい。第１及び第２キャッシュメモリ１１２、１１３はシステムバス（Ｂｕｓ）を通じてメモリコントローラ１１１と連結されている。第１及び第２キャッシュメモリ１１２、１１３は各々のプロセッサ１１４−１〜１１４−８で使用されるデータを臨時的に格納する。例えば、第１及び第２キャッシュメモリ１１２、１１３はＤＲＡＭ、モバイルＤＲＡＭ、ＳＲＡＭ、又は不揮発性メモリ装置等で構成される。
【００２０】
システムオンチップ１１０は第１乃至第８プロセッサ１１４−１〜１１４−８を含む。これは例示的なものであって、システムオンチップ１１０は複数のプロセッサを含んでもよい。例えば、第１乃至第８プロセッサ１１４−１〜１１４−８は中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵ）又はコア（Ｃｏｒｅ）である。第１乃至第８プロセッサ１１４−１〜１１４−８は機能及び性能において同一である。また、第１乃至第８プロセッサ１１４−１〜１１４−８は互に異なる機能又は性能を有してもよい。例えば、第１乃至第８プロセッサ１１４−１〜１１４−８はビックコア（Ｂｉｇ  Ｃｏｒｅ）及びリトルコア（Ｌｉｔｔｌｅ  Ｃｏｒｅ）を含む。第１乃至第４プロセッサ１１４−１〜１１４−４はリトルコア（Ｌｉｔｔｌｅ  Ｃｏｒｅ）である。第５乃至第８プロセッサ１１４−５〜１１４−８はビックコア（Ｂｉｇ  Ｃｏｒｅ）である。ビックコア（Ｂｉｇ  Ｃｏｒｅ）は電力を多く消費するが、処理速度が速いプロセッサである。リトルコア（Ｌｉｔｔｌｅ  Ｃｏｒｅ）は処理速度は遅いが、電力を少なく消費するプロセッサである。しかし、第１乃至第８プロセッサ１１４−１〜１１４−８はこれに限定されない。
【００２１】
図１で、第１乃至第４プロセッサ１１４−１〜１１４−４は第１キャッシュメモリ１１２に連結されている。第５乃至第８プロセッサ１１４−５〜１１４−８は第２キャッシュメモリ１１３に連結されている。
第１乃至第８プロセッサ１１４−１〜１１４−８の間で命令、プログラムコード、ソフトウェアモジュール、データ、及び制御信号等はシステムバス（Ｂｕｓ）を通じて伝達される。また、第１乃至第８プロセッサ１１４−１〜１１４−８の各々とメモリコントローラ１１１との間で命令、プログラムコード、ソフトウェアモジュール、データ、及び制御信号等はシステムバス（Ｂｕｓ）を通じて伝達される。
メモリ装置１２０はメモリコントローラ１１１から受信されるデータを格納する。また、メモリ装置１２０は本発明のシステムオンチップ１１０を検証するためのプログラム及びデータを格納する。
【００２２】
図２は検証対象内テスト生成方式を利用して図１のシステムオンチップを検証するための構成を示すブロック図である。図２を参照すれば、メモリ装置１２０はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）及びテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）を受信して格納する。例えば、システムオンチップ１１０はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）及びテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）を利用してテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。システムオンチップ１１０は生成されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を利用して検証対象内テスト生成方式（Ｉｎ−ｓｉｔｕ）の検証動作を遂行する。
【００２３】
検証対象内テスト生成方式（Ｉｎ−ｓｉｔｕ）の検証動作の時にテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）及びテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は検証対象であるシステムオンチップ１１０と連結されたメモリ装置１２０に格納される。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は一種のプログラムである。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）を利用して自動でテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）はシステムオンチップ１１０によって遂行される少なくとも１つの命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を含む。例えば、少なくとも１つの命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）はランダム命令語シークェンス（Ｒａｎｄｏｍ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）をなす。
【００２４】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）内の命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出してテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を構成する命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。例えば、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は１つの命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出して１つの命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。また、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は複数の命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出して１つの命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は１つの命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出して複数の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。
生成されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）はシステムオンチップ１１０によって実行される。システムオンチップ１１０はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行してその性能を検証することができる。
【００２５】
図３は参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）を使用する検証対象外テスト生成方式を利用して図１のシステムオンチップを検証するための構成を示すブロック図である。図３を参照すれば、ホストコンピューティング装置２００はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成して検証対象コンピューティング装置３００に伝達する。ホストコンピューティング装置２００はホストシステムオンチップ２１０及びホストメモリ装置２２０を含む。検証対象コンピューティング装置３００は検証対象システムオンチップ３１０及び検証対象メモリ装置３２０を含む。ホスト及び検証対象システムオンチップ２１０、３１０は図１のシステムオンチップ１１０と同一の構成を含む。
【００２６】
ホストメモリ装置２２０はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）、参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）及びテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）を受信して格納する。参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）及びテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は一種のプログラムである。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）を利用して自動でテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）生成の時に生成された命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）は参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）に注入（Ｆｅｅｄ）される。参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）は検証対象システムオンチップ３１０に含まれたプロセッサを参照して構成される。例えば、参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）は検証対象システムオンチップ３１０に含まれたプロセッサをモデリング（Ｍｏｄｅｌｉｎｇ）したソフトウェアである。
【００２７】
参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の各命令語の遂行による検証対象システムオンチップ３１０に含まれたプロセッサの状態変化情報を提供する。即ち、参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）は注入（Ｆｅｅｄ）された命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）にしたがって検証対象システムオンチップ３１０に含まれたプロセッサの状態変化を追跡したモデリング結果（Ｍｏｄｅｌｉｎｇ  Ｒｅｓｕｌｔ）を出力する。参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）は注入（Ｆｅｅｄ）された命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）にしたがうモデリング結果（Ｍｏｄｅｌｉｎｇ  Ｒｅｓｕｌｔ）をテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）に伝送する。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）から伝送されたモデリング結果（Ｍｏｄｅｌｉｎｇ  Ｒｅｓｕｌｔ）を参照して次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。生成されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は検証対象コンピューティング装置３００に伝達される。
【００２８】
伝達されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は検証対象コンピューティング装置３００のメモリ装置３２０に格納される。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は検証対象システムオンチップ３１０によって遂行される。検証対象システムオンチップ３１０はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を利用して検証動作を遂行する。
【００２９】
図４はシステムオンチップを検証するための本発明による構成の実施形態を示すブロック図である。図４を参照すれば、コンピューティング装置４００は検証対象内テスト生成方式（Ｉｎ−ｓｉｔｕ）の検証方法を遂行する。システムオンチップ４１０に含まれたプロセッサは図１のシステムオンチップ１１０と同一の構成を含む。システムオンチップ４１０に含まれたプロセッサは複数のプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を含む。また、各プロセッサ（Ｐｒｏｃｅｓｓｏｒ）は複数の権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）を支援する。
【００３０】
テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）生成の時に、システムオンチップ４１０に連結されたメモリ装置４２０はテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）及びテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）を格納する。システムオンチップ４１０に含まれたプロセッサはテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）を実行してテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は一種のプログラムである。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）内の命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出してテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を構成する命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。例えば、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は１つの命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出して１つの命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。また、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は複数の命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出して１つの命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は１つの命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出して複数の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。
【００３１】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）がテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を読み出す間に、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）に含まれた第１下位構成要素（１ｓｔ  Ｓｕｂ−ｃｏｍｐｏｎｅｎｔ）は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図を検出する。命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）をシステムオンチップ４１０を動作させるための動作状態と定義する。動作状態の転換意図が検出された場合、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。
【００３２】
動作状態の転換意図は多様な方法によって表示することができる。例えば、動作状態の転換意図はテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）の内容に表示される。また、動作状態の転換意図は特定なバイナリコードを有する例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成するテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を利用して表示される。また、動作状態の転換意図は２つの命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成するテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を利用して表示される。２つの命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）はレジスタに特定な値を割当する命令語及びシステム呼出（Ｓｙｓｔｅｍ  Ｃａｌｌ）命令語で構成される。しかし、動作状態の転換意図の表示方法はこれに制限されない。上のように動作状態の転換意図を含む命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ）であると定義する。
【００３３】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）がテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を読み出す間に、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）に含まれた第２下位構成要素（２ｎｄ  Ｓｕｂ−ｃｏｍｐｏｎｅｎｔ）はテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）に対応する命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）の内容を決定する。例えば、第２下位構成要素（２ｎｄ  Ｓｕｂ−ｃｏｍｐｏｎｅｎｔ）はテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）に対応する命令語集合を選択する。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は選択された命令語の集合から新しい命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。
【００３４】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）に含まれたメイン構成要素（Ｍａｉｎ  Ｃｏｍｐｏｎｅｎｔ）はテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）の全般的な動作を制御する。メイン構成要素（Ｍａｉｎ  Ｃｏｍｐｏｎｅｎｔ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）からテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を１つずつ読み出す。メイン構成要素（Ｍａｉｎ  Ｃｏｍｐｏｎｅｎｔ）は第１及び第２下位構成要素（１ｓｔ  Ｓｕｂ−ｃｏｍｐｏｎｅｎｔ、２ｎｄ  Ｓｕｂ−ｃｏｍｐｏｎｅｎｔ）によって決定された事項にしたがってテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。
【００３５】
検証動作の時に、システムオンチップ４１０に含まれたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）は生成されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行する。システムオンチップ４１０に含まれたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）に含まれた命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を１つずつ順次遂行する。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行する間に例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を発見した場合、システムオンチップ４１０に含まれたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の実行を中止し、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）を実行する。
【００３６】
例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）はシステムオンチップ４１０に連結されたメモリ装置４２０に格納される。例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は一種のプログラムである。例えば、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）のバイナリ符号を確認する。又は例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）はレジスタに格納された引数（Ａｒｇｕｍｅｎｔ）を確認する。したがって、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）はバイナリ符号又はレジスタに格納された引数（Ａｒｇｕｍｅｎｔ）を通じて命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図を確認する。
【００３７】
例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を含む。この時、バイナリ符号又はレジスタに格納された引数（Ａｒｇｕｍｅｎｔ）の確認結果、命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を転換する場合、システムオンチップ４１０に含まれたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）は固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を順次遂行する。固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）の中で１つの命令語は例外処理を終えた後、例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）アドレスのすぐ次のアドレスに復帰する内容を含む。
【００３８】
したがって、システムオンチップ４１０に含まれたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）は例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）の実行を中止し、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の実行を再開する。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の実行を再開する時、システムオンチップ４１０に含まれたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）は変更された命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）状態でテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行する。また、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は変更されたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）で遂行される。
【００３９】
システムオンチップ４１０に含まれたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の実行にしたがって文脈（Ｃｏｎｔｅｘｔ）をメモリ装置４２０に格納又はメモリ装置４２０から復旧する。システムオンチップ４１０に含まれたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）実行を中止する時に文脈（Ｃｏｎｔｅｘｔ）を格納する。また、システムオンチップ４１０に含まれたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）実行を再開する時に文脈（Ｃｏｎｔｅｘｔ）を復旧する。文脈（Ｃｏｎｔｅｘｔ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の実行を中止した後、再び再開するために必要である情報を意味する。
【００４０】
即ち、文脈（Ｃｏｎｔｅｘｔ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を中止する時にシステムオンチップ４１０に含まれたプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の中止の直前の状態を意味する。例えば、文脈（Ｃｏｎｔｅｘｔ）は各プロセッサのレジスタ情報を含む。システムオンチップ４１０の各プロセッサが６つの権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）を支援する場合、各プロセッサの文脈（Ｃｏｎｔｅｘｔ）は第１乃至第６レベルに対応する文脈（Ｃｏｎｔｅｘｔ）を含む。
【００４１】
マッピングテーブル（Ｍａｐｐｉｎｇ  Ｔａｂｌｅ）はシステムオンチップ４１０と連結されたメモリ装置４２０に格納される。マッピングテーブル（Ｍａｐｐｉｎｇ  Ｔａｂｌｅ）はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換に関わらず、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成するために使用される。マッピングテーブル（Ｍａｐｐｉｎｇ  Ｔａｂｌｅ）はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の物理ＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）と仮想ＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）とをマッピングする。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）は固定されたプロセッサＩＤ（Ｐｒｏｃｅｓｓｏｒ  ＩＤ）を基準として実行される。例えば、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）は仮想ＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）を基準として生成される。そうすると、マッピングテーブル（Ｍａｐｐｉｎｇ  Ｔａｂｌｅ）の変更を通じて実質的にプロセッサ（Ｐｒｏｃｅｓｓｏｒ）転換の効果を発生させることができる。
【００４２】
図５乃至図７は図４のテストテンプレートの実施形態を示す図である。図５は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）の転換を伴うテストテンプレートの実施形態を示す図である。図５を参照すれば、テストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）は複数のテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を含む。例えば、テストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）は互に異なる命令語セットＡ３２、Ａ６４に対応する命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ａ〜Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｆ）を含む。また、テストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）は状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １、Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）を含む。
【００４３】
システムオンチップ４１０に含まれたプロセッサはテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）を実行してテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）に含まれたテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を１つずつ読み出す。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ａ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｂ）に対応して６４ビット命令語Ａ６４を生成する。
【００４４】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １）に対応して命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）を転換する命令語を生成する。例えば、状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １）を検出すれば、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）は３２ビットに命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）を転換する引数（Ａｒｇｕｍｅｎｔ）を含む。
【００４５】
状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １）にしたがって例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成した後、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｃ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｄ）に対応して３２ビット命令語Ａ３２を生成する。
【００４６】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）に対応して命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）を転換する命令語を生成する。例えば、状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）を検出すれば、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）は６４ビットに命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）を転換する引数（Ａｒｇｕｍｅｎｔ）を含む。
【００４７】
状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）にしたがって例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成した後、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｅ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｆ）に対応して６４ビット命令語Ａ６４を生成する。
【００４８】
以上のように本発明によるシステムオンチップ４１０に含まれたプロセッサは状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １、Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）を利用して命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）を転換するテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。
【００４９】
図６は権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）の転換を伴うテストテンプレートの実施形態を示す図である。図６を参照すれば、テストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）は複数のテンプレート命令文（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を含む。例えば、テストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）は互に異なる権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）に対応する命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ａ〜Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｅ）を含む。また、状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １〜Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ４）を含む。
【００５０】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）に含まれたテンプレート命令文（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を１つずつ読み出す。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ａ）に対応して命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ａ）を生成する。検証動作の時に、命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ａ）は権限レベルＰＬ１−１で遂行される命令語である。
【００５１】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １）に対応して権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）を転換する命令語を生成する。例えば、状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １）を検出すれば、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）は権限レベルＰＬ１−２に権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）を転換する引数（Ａｒｇｕｍｅｎｔ）を含む。
【００５２】
状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １）に  したがって例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成した後、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｂ）に対応して命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｂ）を生成する。検証動作の時に、命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｂ）は権限レベルＰＬ１−２で遂行される命令語である。
【００５３】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）に対応して権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）を転換する命令語を生成する。例えば、状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）を検出すれば、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）は権限レベル（ＰＬ１−３）に権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）を転換する引数（Ａｒｇｕｍｅｎｔ）を含む。
【００５４】
先に説明したように状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ３〜Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ４）にしたがって例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）は生成される。そのため、詳細な説明は省略する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）は権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）を転換する意図を表示する引数（Ａｒｇｕｍｅｎｔ）を含む。したがって、命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｃ〜Ｉｎｓｔｒｕｃｔｉｏｎ  Ｅ）は変更された権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）で遂行される。
【００５５】
図６で、システムオンチップ４１０に含まれたプロセッサは８つの権限レベルＰＬ１−１〜ＰＬ１−４、ＰＬ２−１〜ＰＬ２−４を支援する。例えば、権限レベルＰＬ１−１〜ＰＬ１−４は非保安（Ｎｏｎ−ｓｅｃｕｒｅ）レベルである。権限レベルＰＬ１−１〜ＰＬ１−４は保安（Ｓｅｃｕｒｅ）レベルである。しかし、システムオンチップ４１０に含まれたプロセッサはこれに制限されない。システムオンチップ４１０に含まれたプロセッサは少なくとも１つの権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）を支援する。
【００５６】
以上のように本発明によるシステムオンチップ４１０に含まれたプロセッサは状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １〜Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ４）を利用して権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）を転換するテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。
【００５７】
図７はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換を伴うテストテンプレートの実施形態を示す図である。図７を参照すれば、テストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）は複数のテンプレート命令文（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を含む。例えば、テストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）は互に異なるプロセッサ（Ｐｒｏｃｅｓｓｏｒ）に対応する命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ａ〜Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｆ）を含む。また、状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １、Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）を含む。
【００５８】
システムオンチップ４１０に含まれたプロセッサはテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）を実行してテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）に含まれたテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を１つずつ読み出す。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ａ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｂ）に対応して命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ａ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｂ）を生成する。検証動作の時に、命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ａ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｂ）は第５プロセッサ（Ｐｒｏｃｅｓｓｏｒ  ５）で遂行される命令語である。
【００５９】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １）に対応してプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を転換する命令語を生成する。例えば、状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １）を検出すれば、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）は第４プロセッサ（Ｐｒｏｃｅｓｓｏｒ  ４）にプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を転換する引数（Ａｒｇｕｍｅｎｔ）を含む。
【００６０】
状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １）に  したがって例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成した後、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｃ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｄ）に対応して命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｃ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｄ）を生成する。検証動作の時に、命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｃ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｄ）は第４プロセッサ（Ｐｒｏｃｅｓｓｏｒ  ４）で遂行される命令語である。
【００６１】
テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）に対応してプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を転換する命令語を生成する。例えば、状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）を検出すれば、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）は第７プロセッサ（Ｐｒｏｃｅｓｓｏｒ  ７）にプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を転換する引数（Ａｒｇｕｍｅｎｔ）を含む。
【００６２】
状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）にしたがって例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成した後、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｅ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ  Ｆ）に対応して命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｅ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｆ）を生成する。検証動作の時に、命令語（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｅ、Ｉｎｓｔｒｕｃｔｉｏｎ  Ｆ）は第７プロセッサ（Ｐｒｏｃｅｓｓｏｒ  ７）で遂行される命令語である。
【００６３】
以上のように本発明によるシステムオンチップ４１０に含まれたプロセッサは状態変換文章（Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  １、Ｓｔａｔｅ  Ｍｏｄｉｆｙｉｎｇ  Ｓｔａｔｅｍｅｎｔ  ２）を利用してプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を転換するテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。
【００６４】
図８は図４のマッピングテーブルを例示的に示す図である。図８を参照すれば、マッピングテーブル（Ｍａｐｐｉｎｇ  Ｔａｂｌｅ）は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）と仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）との間の関係を示す。
【００６５】
図７で説明したようにテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）を読み出して互に異なるプロセッサで遂行される命令語を含むテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。しかし、原則的にテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）内の命令語は指定されたプロセッサで動作するように生成される。したがって、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）内の命令語は仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）を基準として動作するように生成される。仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）と物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）とのマッピングを変更すれば、実質的にテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）はプロセッサ（Ｐｒｏｃｅｓｓｏｒ  １〜Ｐｒｏｃｅｓｓｏｒ  ８）を変更して動作する。
【００６６】
プロセッサ（Ｐｒｏｃｅｓｓｏｒ  １〜Ｐｒｏｃｅｓｓｏｒ  ８）は各々固定された物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）を有する。仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）に一対一にマッピングされる。しかし、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）と異なってマッピングされる。例えば、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）１は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）３にマッピングされる。仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）２は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）８にマッピングされる。仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）３は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）１にマッピングされる。
【００６７】
仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）４は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）６にマッピングされる。仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）５は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）７にマッピングされる。仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）６は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）２にマッピングされる。仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）７は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）４にマッピングされる。プロセッサ交換（Ｓｗａｐ）動作の時に、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）８は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）５にマッピングされる。プロセッサ移行（Ｍｉｇｒａｔｉｏｎ）動作の時に、物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）５はマッピングされない（Ｕｎｄｉｆｉｎｅｄ）状態を有する。
【００６８】
また、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）はプロセッサ移行（Ｍｉｇｒａｔｉｏｎ）又は交換（Ｓｗａｐ）動作によって変更される。例えば、プロセッサ移行（Ｍｉｇｒａｔｉｏｎ）動作の時に、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）は変更される。プロセッサ移行（Ｍｉｇｒａｔｉｏｎ）動作の時にはマッピングされない（Ｕｎｄｅｆｉｎｅｄ）少なくとも１つの仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）が存在する。プロセッサ移行（Ｍｉｇｒａｔｉｏｎ）動作の前に、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）１は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）３にマッピングされる。プロセッサ移行（Ｍｉｇｒａｔｉｏｎ）動作が遂行されれば、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）１は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）５にマッピングされる。したがって、物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）３はマッピングされない（Ｕｎｄｅｆｉｎｅｄ）状態になる。
【００６９】
例えば、プロセッサ交換（Ｓｗａｐ）動作の時に、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）は変更される。プロセッサ交換（Ｓｗａｐ）動作の前に仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）６は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）２にマッピングされ、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）４は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）６にマッピングされる。プロセッサ交換（Ｓｗａｐ）動作が遂行されれば、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）６は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）６にマッピングされ、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）４は物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）２にマッピングされる。
【００７０】
以上のように物理プロセッサＩＤ（Ｐｈｙｓｉｃａｌ  ＩＤ）と異なり、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）はプロセッサ移行（Ｍｉｇｒａｔｉｏｎ）又は交換（Ｓｗａｐ）後に変更される。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）を基準として動作する。したがって、仮想プロセッサＩＤ（Ｖｉｒｔｕａｌ  ＩＤ）を変更すれば、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は実質的に変更されたプロセッサ上で遂行される。
【００７１】
図９は本発明の実施形態によるテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の生成方法を示す順序図である。図４及び図９を参照すれば、システムオンチップ４１０に含まれたプロセッサはテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）を実行させてテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。
Ｓ１１０段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）に含まれた命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出す。
【００７２】
Ｓ１２０段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は第１下位構成要素（１ｓｔ  Ｓｕｂ−ｃｏｍｐｏｎｅｎｔ）を利用して命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）内に特別な条件があるか否かを検出する。例えば、特別な条件は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図に対する表示である。命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図は多様な方法で表示される。
【００７３】
命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図はテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）の内容に表示される。また、命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図は特定なバイナリコードを有する例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成するテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を利用して表示される。
【００７４】
また、命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図は２つの命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成するテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を利用して表示される。２つの命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）はレジスタに特定な値を割当する命令語及びシステム呼出（Ｓｙｓｔｅｍ  Ｃａｌｌ）命令語で構成される。しかし、命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図の表示方法はこれに限定されない。
【００７５】
命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）内に特別な条件がない場合、Ｓ１３０段階に移動する。命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）内に特別な条件がある場合、Ｓ１５０段階に移動する。
Ｓ１３０段階で、Ｓ１２０段階の検出結果、特別な条件がない場合、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）に対応する命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。
【００７６】
Ｓ１４０段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成するメモリ上のアドレスを計算する。例えば、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はプログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）を利用して次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）のアドレスを計算する。プログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）は次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）を格納するメモリ内の位置を知らせる。
【００７７】
Ｓ１５０段階で、Ｓ１２０段階の検出結果、特別な条件が検出された場合、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。例えば、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）がテンプレート文章（Ｔｅｍｐｌａｔｅ  Ｓｔａｔｅｍｅｎｔ）を読み出す間に、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）に含まれた第１下位構成要素（１ｓｔ  Ｓｕｂ−ｃｏｍｐｏｎｅｎｔ）は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図を検出する。生成された例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図を含む。
【００７８】
Ｓ１６０段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は次に生成される命令語のアドレスを設定する。次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）のアドレスは例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）アドレスのすぐ次に隣接するメモリ上のアドレスに設定される。例えば、例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）の大きさが４バイト（Ｂｙｔｅ）である場合、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は現在のプログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）に４を加えて次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）のプログラムカウンター（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）に設定する。即ち、次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を格納したアドレスのすぐ次のアドレスに格納される。
【００７９】
Ｓ１７０段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）内に次に読み出される命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）があるか否かを確認する。それ以上読み出す命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）がない場合、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）生成を終了する。テストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）内に次に読み出される命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）がある場合、再びＳ１１０段階に戻ってテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は次の命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出す。
【００８０】
以上のテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）生成方法によってテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図を有する例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を含むテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。本発明によるシステムオンチップ４１０に含まれたプロセッサは例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）にしたがって命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を転換して検証動作を遂行する。
【００８１】
図１０は本発明の実施形態によるテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の実行動作を示す順序図である。図４及び図１０を参照すれば、システムオンチップ４１０に含まれたプロセッサは図９で生成されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行して検証動作を遂行する。
Ｓ２１０段階で、検証対象プロセッサはテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）に含まれた命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を読み出す。
【００８２】
Ｓ２２０段階で、検証対象プロセッサはＳ２１０段階で読み出した命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）が例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）であるか否かを判断する。判断結果、例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）ではない場合、Ｓ２８０段階に移動して検証対象プロセッサはＳ２１０段階で読み出した命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を遂行する。判断結果、例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）である場合、Ｓ２３０段階に移動する。
【００８３】
例えば、検証対象プロセッサは命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）のプログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）を確認して例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）であるか否かを判断する。検証対象プロセッサは命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）に対応するプログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）が例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）内にあるか否かを確認する。命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）に対応するプログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）が例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）内に無い場合、命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）は一般的な命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）として判断される。命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）に対応するプログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）が例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）内にある場合、命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）として判断される。
【００８４】
Ｓ２３０段階で、検証対象プロセッサは例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）に含まれた引数（Ａｒｇｕｍｅｎｔ）を検査する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を遂行すれば、検証対象プロセッサはテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を一時的に中止し、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）を実行させる。例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）に含まれた引数（Ａｒｇｕｍｅｎｔ）を検査する。引数（Ａｒｇｕｍｅｎｔ）を検査すれば、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図を確認することができる。
【００８５】
Ｓ２４０段階で、引数（Ａｒｇｕｍｅｎｔ）の検査結果にしたがって検証対象プロセッサは文脈（Ｃｏｎｔｅｘｔ）を選択的に格納する。引数（Ａｒｇｕｍｅｎｔ）の検査結果にしたがって命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換意図が確認されれば、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を遂行する。固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を遂行する間に、検証対象プロセッサは文脈（Ｃｏｎｔｅｘｔ）を選択的に格納する。
【００８６】
結局、検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）転換前の状態情報を格納する。
Ｓ２５０段階で、検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を転換する。例えば、検証対象プロセッサは３２ビットから６４ビットに命令語セットを転換する。検証対象プロセッサは権限レベルＰＬ１−１（図６参照）を権限レベルＰＬ１−２に転換する。検証対象プロセッサはシステムオンチップ４１０内の他のプロセッサに転換する。結局、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の実行は変更されたプロセッサで再開される。
【００８７】
Ｓ２６０段階で、検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の転換の後、文脈（Ｃｏｎｔｅｘｔ）を選択的に復旧する。プロセッサ転換の後には変更されたプロセッサが検証対象プロセッサである。
Ｓ２７０段階で、検証対象プロセッサはテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）内で例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）アドレスのすぐ次のアドレスに戻る。したがって、検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）の変更された状態で例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）の次の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を遂行する。
【００８８】
Ｓ２９０段階で、検証対象プロセッサはテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）内に遂行される次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）の有無を確認する。遂行する次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）がある場合、Ｓ２１０段階に移動して検証対象プロセッサはＳ２１０段階からＳ２８０段階まで反複して遂行する。遂行する次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）が無い場合、検証対象プロセッサはテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を終了する。
【００８９】
以上の検証方法を通じて検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）、又はプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を変更してテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行する。したがって、検証対象プロセッサは多様な環境で検証動作を遂行する。
【００９０】
図１１は本発明の実施形態による権限レベル及び命令語セットの転換を含むテストプログラムの実行動作を示す順序図である。図４及び図１１を参照すれば、検証対象プロセッサは図９で生成されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行して検証動作を遂行する。
Ｓ３０５段階で、検証対象プロセッサはテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）に含まれた命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を実行する。
【００９１】
Ｓ３１０段階で、検証対象プロセッサはＳ３０５段階で読み出した命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）が例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）であるか否かを判断する。判断結果、例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）ではない場合、Ｓ３１５段階に移動して検証対象プロセッサはＳ３０５段階で読み出した命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を遂行する。判断結果、例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）である場合、Ｓ３２０段階に移動する。
【００９２】
例えば、検証対象プロセッサは命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）のプログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）を確認して例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）であるか否かを判断する。検証対象プロセッサは命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）に対応するプログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）が例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）内にあるか否かを確認する。命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）に対応するプログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）が例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）内に無い場合、命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）は一般的な命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）として判断される。命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）に対応するプログラムカウンタ（Ｐｒｏｇｒａｍ  Ｃｏｕｎｔｅｒ）が例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）内にある場合、命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）として判断される。
【００９３】
Ｓ３２０段階で、検証対象プロセッサは例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）に含まれた引数（Ａｒｇｕｍｅｎｔ）を検査する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を遂行すれば、検証対象プロセッサはテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を一時的に中止し、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）を実行させる。例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）に含まれた引数（Ａｒｇｕｍｅｎｔ）を検査する。引数（Ａｒｇｕｍｅｎｔ）を検査すれば、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）又は権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）の転換意図を確認することができる。
【００９４】
Ｓ３２５段階で、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）及び権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）の全ての転換意図を確認する。命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）及び権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）が全て転換されるのではない場合、Ｓ３４０段階に移動する。命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）及び権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）が全て転換される場合、Ｓ３３０段階に移動する。
【００９５】
Ｓ３３０段階で、引数（Ａｒｇｕｍｅｎｔ）の検査結果にしたがって検証対象プロセッサは文脈（Ｃｏｎｔｅｘｔ）を選択的に格納する。引数（Ａｒｇｕｍｅｎｔ）の検査結果にしたがって命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）及び権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）の全ての転換意図が確認されれば、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を遂行する。固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を遂行する間に、検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）及び権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）の全てに対応する文脈（Ｃｏｎｔｅｘｔ）を選択的に格納する。
【００９６】
Ｓ３３５段階で、検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）及び権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）の全てを転換する。
Ｓ３４０段階で、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）のみが転換されるか否かを確認する。命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）の転換無しで権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）のみが転換される場合、Ｓ３５５段階に移動する。権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）の転換無しで命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）のみが転換される場合、Ｓ３４５段階に移動する。
【００９７】
Ｓ３４５段階で、引数（Ａｒｇｕｍｅｎｔ）の検査結果にしたがって検証対象プロセッサは文脈（Ｃｏｎｔｅｘｔ）を選択的に格納する。引数（Ａｒｇｕｍｅｎｔ）の検査結果にしたがって命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）のみの転換意図が確認されれば、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を遂行する。固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を遂行する間に、検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）に対応する文脈（Ｃｏｎｔｅｘｔ）を選択的に格納する。
【００９８】
Ｓ３５０段階で、検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）のみを転換する。
Ｓ３５５段階で、引数（Ａｒｇｕｍｅｎｔ）の検査結果にしたがって検証対象プロセッサは文脈（Ｃｏｎｔｅｘｔ）を選択的に格納する。引数（Ａｒｇｕｍｅｎｔ）の検査結果にしたがって権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）のみの転換意図が確認されれば、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を遂行する。固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を遂行する間に、検証対象プロセッサは権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）に対応する文脈（Ｃｏｎｔｅｘｔ）を選択的に格納する。
【００９９】
Ｓ３６０段階で、検証対象プロセッサは権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）のみを転換する。
Ｓ３６５段階で、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）又は権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）が転換された後、文脈（Ｃｏｎｔｅｘｔ）を選択的に復旧する。
Ｓ３７０段階で、検証対象プロセッサはテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）内で例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）アドレスのすぐ次のアドレスに戻る。したがって、検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）又は権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）の変更された状態で例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）の次の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を遂行する。
【０１００】
Ｓ３７５段階で、検証対象プロセッサはテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）内に遂行される次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）があるか否かを確認する。遂行する次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）がある場合、Ｓ３０５段階に移動して検証対象プロセッサはＳ３０５段階からＳ３７０段階まで反複して遂行する。遂行する次の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）がない場合、検証対象プロセッサはテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を終了する。
【０１０１】
以上の検証方法を通じて検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）及び権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）を同時に変更してテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行する。しかし、検証対象プロセッサはこれに制限されない。検証対象プロセッサは命令語セット（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ）、権限レベル（Ｐｒｉｖｉｌｅｇｅ  Ｌｅｖｅｌ）及びプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を同時に変更してテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行することができる。
【０１０２】
図１２及び図１３は本発明によるプロセッサ移行（Ｐｒｏｃｅｓｓｏｒ  Ｍｉｇｒａｔｉｏｎ）を含む検証方法を示す順序図である。システムオンチップ４１０は複数のプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を含む。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は各々のプロセッサ（Ｐｒｏｃｅｓｓｏｒ）で実行される。プロセッサ移行（Ｐｒｏｃｅｓｓｏｒ  Ｍｉｇｒａｔｉｏｎ）は起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）と目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）との間に発生する。起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）は現在テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行中であるプロセッサ（Ｐｒｏｃｅｓｓｏｒ）である。目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）はプロセッサ転換の後、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行されるプロセッサ（Ｐｒｏｃｅｓｓｏｒ）である。
【０１０３】
図１２はプロセッサ移行（Ｐｒｏｃｅｓｓｏｒ  Ｍｉｇｒａｔｉｏｎ）の時に，起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）の動作を示す順序図である。
Ｓ４１０段階で、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行する間に、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を遂行する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を遂行すれば、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を一時的に中止し、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）を実行させる。
【０１０４】
Ｓ４２０段階で、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）に含まれた引数（Ａｒｇｕｍｅｎｔ）を検査する。引数（Ａｒｇｕｍｅｎｔ）を検査すれば、プロセッサ移行（Ｐｒｏｃｅｓｓｏｒ  Ｍｉｇｒａｔｉｏｎ）の可否が確認されることができる。
Ｓ４３０段階で、プロセッサ移行（Ｐｒｏｃｅｓｓｏｒ  Ｍｉｇｒａｔｉｏｎ）の可否が確認されれば、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）はメモリ装置４２０の割当された領域に起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）の文脈（Ｃｏｎｔｅｘｔ）を格納する。
【０１０５】
Ｓ４４０段階で、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）は目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）にインタラプト（Ｉｎｔｅｒｒｕｐｔ）を送る。プロセッサ移行（Ｐｒｏｃｅｓｓｏｒ  Ｍｉｇｒａｔｉｏｎ）動作の時、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）はスリープ−モード（Ｓｌｅｅｐ−ｍｏｄｅ）の状態である。したがって、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）はインタラプト（Ｉｎｔｅｒｒｕｐｔ）を通じて目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）を起動する。
Ｓ４５０段階で、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｃｏｒｅ）はスリープ−モード（Ｓｌｅｅｐ−ｍｏｄｅ）に戻る。
【０１０６】
図１３はプロセッサ移行（Ｐｒｏｃｅｓｓｏｒ  Ｍｉｇｒａｔｉｏｎ）の時に目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）の動作を示す順序図である。
Ｓ５１０段階で、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）からインタラプト（Ｉｎｔｅｒｒｕｐｔ）を受信する。インタラプト（Ｉｎｔｅｒｒｕｐｔ）を受信すれば、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）はスリープ−モード（Ｓｌｅｅｐ−ｍｏｄｅ）から起動する。
【０１０７】
Ｓ５２０段階で、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は図１２で格納された起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）の文脈（Ｃｏｎｔｅｘｔ）を復旧する。目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は復旧された起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）の文脈（Ｃｏｎｔｅｘｔ）にしたがってテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）内の例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）の次の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）から遂行する。
Ｓ５３０段階で、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は図８で説明されたマッピングテーブル（Ｍａｐｐｉｎｇ  Ｔａｂｌｅ）をアップデートする。したがって、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）はプロセッサを転換して遂行される。
【０１０８】
図１４及び図１５は本発明によるプロセッサ交換（Ｐｒｏｃｅｓｓｏｒ  Ｓｗａｐ）を含む検証方法を示す順序図である。システムオンチップ４１０は複数のプロセッサ（Ｐｒｏｃｅｓｓｏｒ）を含む。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は各々のプロセッサ（Ｐｒｏｃｅｓｓｏｒ）で実行される。プロセッサ交換（Ｐｒｏｃｅｓｓｏｒ  Ｓｗａｐ）は起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）と目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）との間に発生する。起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を交換する目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）を指定するプロセッサ（Ｐｒｏｃｅｓｓｏｒ）である。目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）とテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）とを交換するプロセッサ（Ｐｒｏｃｅｓｓｏｒ）である。
【０１０９】
図１４はプロセッサ交換（Ｐｒｏｃｅｓｓｏｒ  Ｓｗａｐ）の時に、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）の動作を示す順序図である。
Ｓ６１０段階で、テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行する間に、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を遂行する。例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を遂行すれば、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を一時的に中止し、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）を実行させる。
【０１１０】
Ｓ６２０段階で、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）に含まれた引数（Ａｒｇｕｍｅｎｔ）を検査する。引数（Ａｒｇｕｍｅｎｔ）を検査すれば、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）はプロセッサ交換（Ｐｒｏｃｅｓｓｏｒ  Ｓｗａｐ）の意図を確認することができる。
Ｓ６３０段階で、プロセッサ交換（Ｐｒｏｃｅｓｓｏｒ  Ｓｗａｐ）の意図が確認されれば、例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）はメモリ装置４２０の割当された領域に起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）の文脈（Ｃｏｎｔｅｘｔ）を格納する。
【０１１１】
Ｓ６４０段階で、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）は目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）に第１インタラプト（Ｆｉｒｓｔ  Ｉｎｔｅｒｒｕｐｔ）を送る。プロセッサ交換（Ｐｒｏｃｅｓｓｏｒ  Ｓｗａｐ）動作の時に、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は他のテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行中である。したがって、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）は第１インタラプト（Ｆｉｒｓｔ  Ｉｎｔｅｒｒｕｐｔ）を通じて目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）にプロセッサ交換（Ｐｒｏｃｅｓｓｏｒ  Ｓｗａｐ）の意思を伝達する。
【０１１２】
Ｓ６５０段階で、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）は目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）から第２インタラプト（Ｓｅｃｏｎｄ  Ｉｎｔｅｒｒｕｐｔ）を受信する。例えば、Ｓ６４０段階で第１インタラプト（Ｆｉｒｓｔ  Ｉｎｔｅｒｒｕｐｔ）を受信した目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は自分の文脈（Ｃｏｎｔｅｘｔ）をメモリ装置４２０の割当された領域に格納する。自分の文脈（Ｃｏｎｔｅｘｔ）を格納した後、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は第２インタラプト（Ｓｅｃｏｎｄ  Ｉｎｔｅｒｒｕｐｔ）を起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）に伝送する。起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）は第２インタラプト（Ｓｅｃｏｎｄ  Ｉｎｔｅｒｒｕｐｔ）を受信する時まで待機する。
【０１１３】
Ｓ６６０段階で、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）はメモリ装置４２０に格納された目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）の文脈（Ｃｏｎｔｅｘｔ）を復旧する。その後、起動プロセッサ（ＩｎｉｔｉａｔｉｎｇＰｒｏｃｅｓｓｏｒ）は目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）の文脈（Ｃｏｎｔｅｘｔ）にしたがって目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）によって実行されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を実行する。
【０１１４】
図１５はプロセッサ交換（Ｐｒｏｃｅｓｓｏｒ  Ｓｗａｐ）の時に、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）の動作を示す順序図である。
Ｓ７１０段階で、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）から第１インタラプト（Ｆｉｒｓｔ  Ｉｎｔｅｒｒｕｐｔ）を受信する。
Ｓ７２０段階で、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は第１インタラプト（Ｆｉｒｓｔ  Ｉｎｔｅｒｒｕｐｔ）にしたがって目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）の文脈（Ｃｏｎｔｅｘｔ）をメモリ装置４２０の割当された領域に格納する。
Ｓ７３０段階で、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は第２インタラプト（Ｓｅｃｏｎｄ  Ｉｎｔｅｒｒｕｐｔ）を起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）に伝送する。
【０１１５】
Ｓ７４０段階で、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は図１４で格納された起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）の文脈（Ｃｏｎｔｅｘｔ）を復旧する。目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は復旧された起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）の文脈（Ｃｏｎｔｅｘｔ）にしたがって起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）によって実行されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）内の例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）の次の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）から遂行する。
【０１１６】
Ｓ７５０段階で、目標プロセッサ（Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は図８で説明されたマッピングテーブル（Ｍａｐｐｉｎｇ  Ｔａｂｌｅ）をアップデートする。したがって、起動及び目標プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ、Ｖｉｃｔｉｍ  Ｐｒｏｃｅｓｓｏｒ）は各々が実行したテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を交換して遂行する。即ち、起動プロセッサ（Ｉｎｉｔｉａｔｉｎｇ  Ｐｒｏｃｅｓｓｏｒ）によって実行したテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）はプロセッサを転換して遂行される。
【０１１７】
図１６はシステムオンチップを検証するための本発明による構成の他の実施形態を示すブロック図である。図１６を参照すれば、ホストコンピューティング装置５００はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成して検証対象コンピューティング装置６００に伝達する。ホストコンピューティング装置５００はホストシステムオンチップ５１０及びホストメモリ装置５２０を含む。検証対象コンピューティング装置６００は検証対象システムオンチップ６１０及び検証対象メモリ装置６２０を含む。ホスト及び検証対象システムオンチップ５１０、６１０は図１のシステムオンチップ１１０と同一の構成を含む。
【０１１８】
ホストメモリ装置５２０はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）、参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）、及びテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）を格納する。参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）及びテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は一種のプログラムである。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）を利用して自動でストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）生成の時に、生成された命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）は参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）に注入（Ｆｅｅｄ）される。
【０１１９】
例えば、参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）は検証対象システムオンチップ６１０に含まれたプロセッサを参照して構成される。例えば、参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）は検証対象システムオンチップ６１０に含まれたプロセッサをモデリング（Ｍｏｄｅｌｉｎｇ）したソフトウェアである。参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の各命令語の遂行による検証対象システムオンチップ６１０に含まれたプロセッサの状態変化情報を提供する。即ち、参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）は注入（Ｆｅｅｄ）された命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）にしたがって検証対象システムオンチップ６１０に含まれたプロセッサの状態変化を追跡したモデリング結果（Ｍｏｄｅｌｉｎｇ  Ｒｅｓｕｌｔ）を出力する。参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）は注入（Ｆｅｅｄ）された命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）にしたがうモデリング結果（Ｍｏｄｅｌｉｎｇ  Ｒｅｓｕｌｔ）をテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）に伝送する。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）から伝送されたモデリング結果（Ｍｏｄｅｌｉｎｇ  Ｒｅｓｕｌｔ）を参照して次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。生成されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は検証対象コンピューティング装置６００に伝達される。
【０１２０】
また、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）の第３下位構成要素（３ｒｄ  Ｓｕｂ−ｃｏｍｐｏｎｅｎｔ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）の各々を生成した後、参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）の状態を更新する。したがって、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は多様なテスト環境を造成する。
伝達されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は検証対象コンピューティング装置６００のメモリ装置６２０に格納される。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）は検証対象システムオンチップ６１０によって遂行される。検証対象システムオンチップ６１０はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を利用して検証動作を遂行する。テストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）の実行方法は図４で説明された検証動作方法と同一又は類似であるので、省略する。
【０１２１】
図１７は図１６のホストシステムオンチップでテストプログラムを生成する方法を示す順序図である。図１６及び図１７を参照すれば、ホストシステムオンチップ５１０に含まれたプロセッサは参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）を利用してテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成する。
Ｓ８０５段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）に含まれた命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出す。
【０１２２】
Ｓ８１０段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）の第１下位構成要素（１ｓｔ  Ｓｕｂ−ｃｏｍｐｏｎｅｎｔ）は特別な条件の有無を検出する。
Ｓ８１５段階で、Ｓ８１０段階の検出結果、特別な条件がない場合、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）に対応する命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。
Ｓ８２０段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は生成された命令語（Ｉｎｓｔｒｕｃｔｉｏｎ）を参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）に注入（Ｆｅｅｄ）する。
Ｓ８２５段階で、Ｓ８１０段階の検出結果、特別な条件が検出された場合、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）を生成する。
【０１２３】
Ｓ８３０段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）に含まれたプロセッサの転換意図を検出する。検出結果、プロセッサの転換意図がある場合、Ｓ８３５段階に移動する。検出結果、プロセッサの転換意図がない場合、Ｓ８４０段階に移動する。
Ｓ８３５段階で、検出結果、プロセッサの転換意図がある場合、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は非動作命令語（Ｎｏ  Ｏｐｅｒａｔｉｏｎ  Ｉｎｓｔｒｕｃｔｉｏｎ、以下、ＮＯＰ  Ｉｎｓｔｒｕｃｔｉｏｎ）を参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）に注入（Ｆｅｅｄ）する。非動作命令語（ＮＯＰ  Ｉｎｓｔｒｕｃｔｉｏｎ）は参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）で動作状態の変化無しで次の命令語が生成される位置のみが変動させる。
【０１２４】
Ｓ８４０段階で、検出結果、プロセッサの転換意図がない場合、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外誘発命令語（Ｅｘｃｅｐｔｉｏｎ−ｃａｕｓｉｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ）の自体を参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）に注入（Ｆｅｅｄ）する。
Ｓ８４５段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は例外処理器（Ｅｘｃｅｐｔｉｏｎ  Ｈａｎｄｌｅｒ）に含まれた固定された命令語シークェンス（Ｆｉｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｑｕｅｎｃｅ）を参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）に注入（Ｆｅｅｄ）する。
【０１２５】
Ｓ８５０段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はＳ８２０、Ｓ８３５又はＳ８４５段階の命令語注入（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｆｅｅｄ）にしたがって参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）の状態変化を獲得する。テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は獲得された参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）の状態変化を次の命令語（Ｎｅｘｔ  Ｉｎｓｔｒｕｃｔｉｏｎ）生成に反映する。
Ｓ８５５段階で、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）内に次に読み出される命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）の有無を確認する。それ以上、読み出す命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）がない場合、テスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）はテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）生成を終了する。テストテンプレート（Ｔｅｓｔ  Ｔｅｍｐｌａｔｅ）内に次に読み出される命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）がある場合、再びＳ８０５段階に戻ってテスト生成器（Ｔｅｓｔ  Ｇｅｎｅｒａｔｏｒ）は次の命令文（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔａｔｅｍｅｎｔ）を読み出す。
【０１２６】
以上のテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）生成方法によってホストシステムオンチップ５１０に含まれたプロセッサは参照モデル（Ｒｅｆｅｒｅｎｃｅ  Ｍｏｄｅｌ）を利用してさらに多様なテスト環境が反映されたテストプログラム（Ｔｅｓｔ  Ｐｒｏｇｒａｍ）を生成することができる。
【０１２７】
前記メモリのチップとシステムオンチップとは各々、或いは共に多様な形態のパッケージを利用して実装することができる。例えば、チップはＰｏＰ（Ｐａｃｋａｇｅ  ｏｎ  Ｐａｃｋａｇｅ）、Ｂａｌｌ  ｇｒｉｄ  ａｒｒａｙｓ（ＢＧＡｓ）、Ｃｈｉｐ  ｓｃａｌｅ  ｐａｃｋａｇｅｓ（ＣＳＰｓ）、Ｐｌａｓｔｉｃ  Ｌｅａｄｅｄ  Ｃｈｉｐ  Ｃａｒｒｉｅｒ（ＰＬＣＣ）、Ｐｌａｓｔｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＰＤＩＰ）、Ｄｉｅ  ｉｎ  Ｗａｆｆｌｅ  Ｐａｃｋ、Ｄｉｅ  ｉｎ  Ｗａｆｅｒ  Ｆｏｒｍ、Ｃｈｉｐ  Ｏｎ  Ｂｏａｒｄ（ＣＯＢ）、Ｃｅｒａｍｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＣＥＲＤＩＰ）、Ｐｌａｓｔｉｃ  Ｍｅｔｒｉｃ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋ（ＭＱＦＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＳＯＩＣ）、Ｓｈｒｉｎｋ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ（ＳＳＯＰ）、Ｔｈｉｎ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＴＳＯＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋａｇｅ（ＳＩＰ）、Ｍｕｌｔｉ  Ｃｈｉｐ  Ｐａｃｋａｇｅ（ＭＣＰ）、Ｗａｆｅｒ−ｌｅｖｅｌ  Ｆａｂｒｉｃａｔｅｄ  Ｐａｃｋａｇｅ（ＷＦＰ）、Ｗａｆｅｒ−Ｌｅｖｅｌ  Ｐｒｏｃｅｓｓｅｄ  Ｓｔａｃｋ  Ｐａｃｋａｇｅ（ＷＳＰ）等のパッケージとしてパッケージ化される。
【０１２８】
上述したように図面と明細書で最適の実施形態が開示された。ここで、特定な用語が使用されたが、これは単なる本発明を説明するための目的で使用されたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使用されたものではない。したがって、本技術分野の通常の知識を有する者であれば、これから多様な変形及び均等な他の実施形態が具現できるという点を理解できる。したがって、本発明の真の技術的保護範囲は添付された特許請求の範囲の技術的思想によって定められなければならない。
【符号の説明】
【０１２９】
１００、２００、３００、４００、５００、６００    コンピューティング装置
１１０、２１０、３１０、４１０、５１０、６１０    システムオンチップ
１２０、２２０、３２０、４２０、５２０、６２０    メモリ装置
【図１】
2015201208.tif 000003
【図２】
2015201208.tif 000004
【図３】
2015201208.tif 000005
【図４】
2015201208.tif 000006
【図５】
2015201208.tif 000007
【図６】
2015201208.tif 000008
【図７】
2015201208.tif 000009
【図８】
2015201208.tif 000010
【図９】
2015201208.tif 000011
【図１０】
2015201208.tif 000012
【図１１】
2015201208.tif 000013
【図１２】
2015201208.tif 000014
【図１３】
2015201208.tif 000015
【図１４】
2015201208.tif 000016
【図１５】
2015201208.tif 000017
【図１６】
2015201208.tif 000018
【図１７】
2015201208.tif 000019