JP2015201208A - システムオンチップ及びその検証方法 - Google Patents

システムオンチップ及びその検証方法 Download PDF

Info

Publication number
JP2015201208A
JP2015201208A JP2015079540A JP2015079540A JP2015201208A JP 2015201208 A JP2015201208 A JP 2015201208A JP 2015079540 A JP2015079540 A JP 2015079540A JP 2015079540 A JP2015079540 A JP 2015079540A JP 2015201208 A JP2015201208 A JP 2015201208A
Authority
JP
Japan
Prior art keywords
processor
instruction
instruction word
test
exception
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.)
Pending
Application number
JP2015079540A
Other languages
English (en)
Inventor
城 範 朴
Seong-Beom Park
城 範 朴
鎮 成 朴
Jin-Seong Park
鎮 成 朴
娥 羅 ▲チョ▼
娥 羅 ▲チョ▼
Choara
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2015201208A publication Critical patent/JP2015201208A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】多様な状況で検証動作が遂行されるシステムオンチップ及びその検証方法を提供する。【解決手段】システムオンチップに含まれたプロセッサによってテスト生成器及び例外処理器を受信する段階と、テストテンプレートに基づいて例外誘発命令語を含むテストプログラムを生成する段階と、テストプログラムの実行によって第1動作状態で第1命令語を遂行する段階と、テストプログラムを実行する間に例外誘発命令語を遂行する場合、テストプログラムの実行を中止する段階と、例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、固定された命令語シークェンスを遂行した後、変更された第2動作状態で、例外誘発命令語アドレスのすぐ次のアドレスに対応する第2命令語からテストプログラムの実行を再開する段階と、を含む。【選択図】図16

Description

本発明はシステムオンチップに係り、さらに具体的にはシステムオンチップ及びその検証方法に関する。
半導体工程の発展に伴って、最近開発されている半導体集積回路はプロセッサ、キャッシュメモリ、入/出力インターフェイス回路等が単一チップに集積されたシステムオンチップ(System on Chip、SoC)の形態で開発される傾向がある。プロセッサとキャッシュメモリとを単一チップに集積すると、データの入/出力速度が向上し、その結果、プロセッサの全体的な性能が向上する効果が得られる。しかし、製造工程等の不均衡等によって半導体集積回路に不良が発生し、不良の原因を明らかにするための努力が必要である。
最近のSoCは複数のプロセッサを含むことができる。また、各プロセッサは複数の権限レベル(Privilege Level)又は複数の命令語セット(Instruction Set)を変更し、動作することができる。したがって、このような複数のプロセッサ、複数の権限レベル、又は複数の命令語セットを考慮して自動でSoCを検証する方法が必要となる。
米国特許第8,397,217号公報 米国特許第8,601,433号公報 米国特許公開第2012/0216023号明細書 米国特許公開第2009/0064149号明細書
本発明の目的は多様な状況で検証動作が遂行されるシステムオンチップ及びその検証方法を提供することにある。
前記目的を達成するための本発明の実施形態によるシステムオンチップの検証方法は、前記システムオンチップに含まれたプロセッサによってテスト生成器及び例外処理器を受信する段階と、テストテンプレートに基づいて前記テスト生成器を含む前記プロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、前記テストプログラムの実行によって第1動作状態で前記プロセッサによって第1命令語を遂行する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、前記固定された命令語シークェンスを遂行した後、変更された第2動作状態で、前記例外誘発命令語アドレスのすぐ次のアドレスに対応する第2命令語から前記テストプログラムの実行を再開する段階と、を含む。
実施形態として、前記第1動作状態から前記第2動作状態への変更によって前記第2命令語は、(i)前記第1命令語とは異なるプロセッサで遂行されるか、又は(ii)前記第1命令語とは異なる権限レベル及び前記第1命令語とは異なる命令語セットの中の少なくとも1つを使用して遂行される。
実施形態として、前記テストプログラムを生成する段階は、前記テストテンプレートに含まれた第1命令文を読み出す段階と、前記第1動作状態で遂行されるように前記第1命令文に対応する前記第1命令語を生成する段階と、前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、前記状態変換命令文に対応して、前記システムオンチップの動作状態を変更するために表示する動作状態の転換意図を含む前記例外誘発命令語を生成する段階と、前記状態変換命令文の次に位置する第2命令文を読み出す段階と、前記例外誘発命令語アドレスのすぐ次のアドレスに、前記第2動作状態で遂行されるように前記第2命令文に対応する前記第2命令語を生成する段階と、を含む。
実施形態として、前記動作状態の転換意図は、前記テスト生成器の第1下位構成要素を通じて検出される。
前記目的を達成するための本発明の実施形態による少なくとも2つの命令語セットを支援するプロセッサを含むシステムオンチップの検証方法は、プロセッサによってテスト生成器及び例外処理器を受信する段階と、テストテンプレートに基づいて前記テスト生成器を含む前記プロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、前記プロセッサによって前記テストプログラムの実行によって前記少なくとも2つの命令語セットの中で第1命令語セットに基づいて生成された第1命令語を遂行する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、前記固定された命令語シークェンスを遂行した後、前記例外誘発命令語アドレスのすぐ次のアドレスに対応する第2命令語から前記テストプログラムの実行を再開する段階と、を含み、前記第2命令語は、前記少なくとも2つの命令語セットの中で第2命令語セットに基づいて生成される。
実施形態として、前記テストプログラムを生成する段階は、前記テストテンプレートに含まれた第1命令文を読み出す段階と、前記第1命令語セットに基づいて前記第1命令文に対応する前記第1命令語を生成する段階と、前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、前記状態変換命令文に対応して、前記第1命令語セットの状態を変更するために表示する命令語セットの転換意図を含む前記例外誘発命令語を生成する段階と、前記状態変換命令文の次に位置した第2命令文を読み出す段階と、前記例外誘発命令語アドレスのすぐ次のアドレスに前記第2命令語セットに基づいて前記第2命令文に対応する前記第2命令語を生成する段階と、を含む。
実施形態として、前記状態変換命令文は、前記命令語セットの転換意図を含む。
実施形態として、前記命令語セットの転換意図は、前記テスト生成器の第1下位構成要素によって検出される。
実施形態として、前記第1及び第2命令語の内容は、前記テスト生成器の第2下位構成要素によって決定される。
実施形態として、前記命令語セットの転換意図は、前記例外誘発命令語に含まれた引数を通じて検出される。
実施形態として、前記第1命令語、前記第2命令語、及び前記例外誘発命令語の中で少なくとも1つを参照モデルに注入してモデリング結果を獲得する段階をさらに含み、
前記モデリング結果は、前記第1命令語、前記第2命令語、及び前記例外誘発命令語の中で少なくとも1つの遂行にしたがって検証対象プロセッサの状態変化情報を含む。
実施形態として、前記モデリング結果を獲得する段階は、
前記検証対象プロセッサが少なくとも2つのプロセッサを含む場合、前記例外誘発命令語に含まれたプロセッサの転換意図を検出する段階と、
前記プロセッサの転換意図が検出された場合、前記例外誘発命令語の注入無しで前記参照モデルに非動作命令語を注入する段階と、を含み、
前記非動作命令語は、前記参照モデルの状態変化無しで次に生成される命令語の位置を設定する。
実施形態として、前記テストプログラムは、前記検証対象プロセッサを含まないホストシステムオンチップで生成され、前記第1命令語を遂行する段階、前記固定された命令語シークェンスを遂行する段階、及び前記テストプログラムの実行を再開する段階は、前記検証対象プロセッサを含むシステムオンチップで遂行される。
前記目的を達成するための本発明の実施形態によるプロセッサを含み、少なくとも2つの権限レベルを支援するシステムオンチップの検証方法は、前記プロセッサによってテスト生成器及び例外処理器を受信する段階と、テストテンプレートに基づいて前記テスト生成器を含むプロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、前記プロセッサによって前記テストプログラムの実行によって前記少なくとも2つの権限レベルの中で第1権限レベルで第1命令語を遂行する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、前記固定された命令語シークェンスを遂行した後、前記例外誘発命令語アドレスのすぐ次のアドレスに位置した第2命令語から前記テストプログラムの実行を再開する段階と、を含み、前記第2命令語は、前記少なくとも2つの権限レベルの中で第2権限レベルで遂行される。
実施形態として、前記テストプログラムを生成する段階は、
前記テストテンプレートに含まれた第1命令文を読み出す段階と、前記第1権限レベルで遂行されるように前記第1命令文に対応する前記第1命令語を生成する段階と、前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、前記状態変換命令文に対応して、前記第1権限レベルから前記第2権限レベルに転換を表示する権限レベルの転換意図を含む前記例外誘発命令語を生成する段階と、前記テストテンプレート内で前記状態変換命令文の次に位置した第2命令文を読み出す段階と、前記例外誘発命令語アドレスのすぐ次のアドレスに前記第2権限レベルで遂行されるように前記第2命令文に対応する前記第2命令語を生成する段階と、を含む。
実施形態として、前記固定された命令語シークェンスを遂行する段階は、前記第1権限レベルで動作する前記システムオンチップの第1状態情報を格納する段階と、前記固定された命令語シークェンスを遂行する間に、前記第2権限レベルで動作する前記システムオンチップの第2状態情報を復旧する段階と、を含む。
実施形態として、前記第1及び第2状態情報は、前記システムオンチップに連結されたメモリ装置の第1領域に格納され、前記第1領域は、前記第1権限レベルである時、前記第1及び第2状態情報を格納するために割当てる。
実施形態として、前記第1及び第2状態情報は、前記システムオンチップに連結されたメモリ装置の第2領域に格納され、前記第2領域は、前記第2権限レベルである時、前記第1及び第2状態情報を格納するために割当てる。
前記目的を達成するための本発明の実施形態によるコンピューティングシステムは、テストプログラムを生成するための第1データ、テスト生成器及び例外処理器を格納するメモリ装置と、前記第1データにしたがって前記テスト生成器を使用して前記テストプログラムを各々生成する少なくとも2つのプロセッサと、を含み、前記テストプログラムを生成する時に、前記テスト生成器は前記第1データでプロセッサの変換意図が検出された場合、第2データを生成し、前記少なくとも2つのプロセッサ第1プロセッサによって前記テストプログラムを実行する時、前記第1プロセッサは、前記第2データにしたがって前記テストプログラムの実行を中止し、前記第1プロセッサと第2プロセッサとの間の変更がなされた後、前記テストプログラムの実行を再開するように前記第2データにしたがって固定された命令語シークェンスを遂行するために前記例外処理器を使用する。
以上のような本発明の実施形態によれば、多様な状況で検証動作が遂行されるシステムオンチップ及びそれの検証方法を提供することができる。
本発明の実施形態によるシステムオンチップ(System On Chip、以下、SoC)を示すブロック図。 検証対象内テスト生成方式を利用して図1のシステムオンチップを検証するための構成を示すブロック図。 参照モデル(Reference Model)を使用する検証対象外テスト生成方式を利用して図1のシステムオンチップを検証するための構成を示すブロック図。 システムオンチップを検証するための本発明による構成の実施形態を示すブロック図。 命令語セット(Instruction Set)の転換を伴うテストテンプレートの実施形態を示す図。 権限レベル(Privilege Level)の転換を伴うテストテンプレートの実施形態を示す図。 プロセッサ(Processor)の転換を伴うテストテンプレートの実施形態を示す図。 図4のマッピングテーブルを例示的に示す図。 本発明の実施形態によるテストプログラム(Test Program)の生成方法を示す順序図。 本発明の実施形態によるテストプログラム(Test Program)の実行動作を示す順序図。 本発明の実施形態による権限レベル及び命令語セットの転換を含むテストプログラムの実行動作を示す順序図。 プロセッサ移行(Processor Migration)の時に起動プロセッサ(Initiating Processor)の動作を示す順序図。 プロセッサ移行(Processor Migration)の時に目標プロセッサ(Victim Processor)の動作を示す順序図。 プロセッサ交換(Processor Swap)の時に起動プロセッサ(Initiating Processor)の動作を示す順序図。 プロセッサ交換(Processor Swap)の時に目標プロセッサ(Victim Processor)の動作を示す順序図。 システムオンチップを検証するための本発明による構成の他の実施形態を示すブロック図。 図16のホストシステムオンチップでテストプログラムを生成する方法を示す順序図。
先の一般的な説明及び次の詳細な説明の全ては例示的であり、請求された発明の付加的な説明が提供されるものとして理解しなければならない。参照符号が本発明の望ましい実施形態に詳細に表示され、その例が参照図面に示されている。できるだけいずれの場合にも、同一の参照符号が同一又は類似な部分を参照するために説明及び図面に使用される。
以下では、システムオンチップ(System on Chip、SoC)が本発明の特徴及び機能を説明するための電子装置の一例として使用される。しかし、この技術分野に熟練された人はここに記載された内容によって本発明の他の長所及び性能を容易に理解できる。また、本発明は他の実施形態を通じて具現されるか、或いは適用することができる。その上に、詳細な説明は本発明の範囲、技術的思想、及び他の目的から相当に逸脱せず、観点及び応用にしたがって修正されるか、或いは変更することができる。
図1は本発明の実施形態によるシステムオンチップ(System On Chip、以下、SoC)を示すブロック図である。図1を参照すれば、コンピューティング装置100はシステムオンチップ110及びメモリ装置120を含む。
システムオンチップ110はメモリコントローラ111を含む。メモリコントローラ111はメモリ装置120とのインターフェイスを提供する。システムオンチップ110はメモリコントローラ111を通じてメモリ装置120にデータを格納するか、或いはメモリ装置120からデータを読み出す。
システムオンチップ110は第1及び第2キャッシュメモリ112、113を含む。これは例示的なものとしてシステムオンチップ110は複数のキャッシュメモリを含んでもよい。第1及び第2キャッシュメモリ112、113はシステムバス(Bus)を通じてメモリコントローラ111と連結されている。第1及び第2キャッシュメモリ112、113は各々のプロセッサ114−1〜114−8で使用されるデータを臨時的に格納する。例えば、第1及び第2キャッシュメモリ112、113はDRAM、モバイルDRAM、SRAM、又は不揮発性メモリ装置等で構成される。
システムオンチップ110は第1乃至第8プロセッサ114−1〜114−8を含む。これは例示的なものであって、システムオンチップ110は複数のプロセッサを含んでもよい。例えば、第1乃至第8プロセッサ114−1〜114−8は中央処理装置(Central Processing Unit、CPU)又はコア(Core)である。第1乃至第8プロセッサ114−1〜114−8は機能及び性能において同一である。また、第1乃至第8プロセッサ114−1〜114−8は互に異なる機能又は性能を有してもよい。例えば、第1乃至第8プロセッサ114−1〜114−8はビックコア(Big Core)及びリトルコア(Little Core)を含む。第1乃至第4プロセッサ114−1〜114−4はリトルコア(Little Core)である。第5乃至第8プロセッサ114−5〜114−8はビックコア(Big Core)である。ビックコア(Big Core)は電力を多く消費するが、処理速度が速いプロセッサである。リトルコア(Little Core)は処理速度は遅いが、電力を少なく消費するプロセッサである。しかし、第1乃至第8プロセッサ114−1〜114−8はこれに限定されない。
図1で、第1乃至第4プロセッサ114−1〜114−4は第1キャッシュメモリ112に連結されている。第5乃至第8プロセッサ114−5〜114−8は第2キャッシュメモリ113に連結されている。
第1乃至第8プロセッサ114−1〜114−8の間で命令、プログラムコード、ソフトウェアモジュール、データ、及び制御信号等はシステムバス(Bus)を通じて伝達される。また、第1乃至第8プロセッサ114−1〜114−8の各々とメモリコントローラ111との間で命令、プログラムコード、ソフトウェアモジュール、データ、及び制御信号等はシステムバス(Bus)を通じて伝達される。
メモリ装置120はメモリコントローラ111から受信されるデータを格納する。また、メモリ装置120は本発明のシステムオンチップ110を検証するためのプログラム及びデータを格納する。
図2は検証対象内テスト生成方式を利用して図1のシステムオンチップを検証するための構成を示すブロック図である。図2を参照すれば、メモリ装置120はテストテンプレート(Test Template)及びテスト生成器(Test Generator)を受信して格納する。例えば、システムオンチップ110はテストテンプレート(Test Template)及びテスト生成器(Test Generator)を利用してテストプログラム(Test Program)を生成する。システムオンチップ110は生成されたテストプログラム(Test Program)を利用して検証対象内テスト生成方式(In−situ)の検証動作を遂行する。
検証対象内テスト生成方式(In−situ)の検証動作の時にテストテンプレート(Test Template)及びテスト生成器(Test Generator)は検証対象であるシステムオンチップ110と連結されたメモリ装置120に格納される。テスト生成器(Test Generator)は一種のプログラムである。テスト生成器(Test Generator)はテストテンプレート(Test Template)を利用して自動でテストプログラム(Test Program)を生成する。テストプログラム(Test Program)はシステムオンチップ110によって遂行される少なくとも1つの命令語(Instruction)を含む。例えば、少なくとも1つの命令語(Instruction)はランダム命令語シークェンス(Random Instruction Sequence)をなす。
テスト生成器(Test Generator)はテストテンプレート(Test Template)内の命令文(Instruction Statement)を読み出してテストプログラム(Test Program)を構成する命令語(Instruction)を生成する。例えば、テスト生成器(Test Generator)は1つの命令文(Instruction Statement)を読み出して1つの命令語(Instruction)を生成する。また、テスト生成器(Test Generator)は複数の命令文(Instruction Statement)を読み出して1つの命令語(Instruction)を生成する。テスト生成器(Test Generator)は1つの命令文(Instruction Statement)を読み出して複数の命令語(Instruction)を生成する。
生成されたテストプログラム(Test Program)はシステムオンチップ110によって実行される。システムオンチップ110はテストプログラム(Test Program)を実行してその性能を検証することができる。
図3は参照モデル(Reference Model)を使用する検証対象外テスト生成方式を利用して図1のシステムオンチップを検証するための構成を示すブロック図である。図3を参照すれば、ホストコンピューティング装置200はテストプログラム(Test Program)を生成して検証対象コンピューティング装置300に伝達する。ホストコンピューティング装置200はホストシステムオンチップ210及びホストメモリ装置220を含む。検証対象コンピューティング装置300は検証対象システムオンチップ310及び検証対象メモリ装置320を含む。ホスト及び検証対象システムオンチップ210、310は図1のシステムオンチップ110と同一の構成を含む。
ホストメモリ装置220はテストテンプレート(Test Template)、参照モデル(Reference Model)及びテスト生成器(Test Generator)を受信して格納する。参照モデル(Reference Model)及びテスト生成器(Test Generator)は一種のプログラムである。テスト生成器(Test Generator)はテストテンプレート(Test Template)を利用して自動でテストプログラム(Test Program)を生成する。テストプログラム(Test Program)生成の時に生成された命令語(Instruction)は参照モデル(Reference Model)に注入(Feed)される。参照モデル(Reference Model)は検証対象システムオンチップ310に含まれたプロセッサを参照して構成される。例えば、参照モデル(Reference Model)は検証対象システムオンチップ310に含まれたプロセッサをモデリング(Modeling)したソフトウェアである。
参照モデル(Reference Model)はテストプログラム(Test Program)の各命令語の遂行による検証対象システムオンチップ310に含まれたプロセッサの状態変化情報を提供する。即ち、参照モデル(Reference Model)は注入(Feed)された命令語(Instruction)にしたがって検証対象システムオンチップ310に含まれたプロセッサの状態変化を追跡したモデリング結果(Modeling Result)を出力する。参照モデル(Reference Model)は注入(Feed)された命令語(Instruction)にしたがうモデリング結果(Modeling Result)をテスト生成器(Test Generator)に伝送する。テスト生成器(Test Generator)は参照モデル(Reference Model)から伝送されたモデリング結果(Modeling Result)を参照して次の命令語(Next Instruction)を生成する。生成されたテストプログラム(Test Program)は検証対象コンピューティング装置300に伝達される。
伝達されたテストプログラム(Test Program)は検証対象コンピューティング装置300のメモリ装置320に格納される。テストプログラム(Test Program)は検証対象システムオンチップ310によって遂行される。検証対象システムオンチップ310はテストプログラム(Test Program)を利用して検証動作を遂行する。
図4はシステムオンチップを検証するための本発明による構成の実施形態を示すブロック図である。図4を参照すれば、コンピューティング装置400は検証対象内テスト生成方式(In−situ)の検証方法を遂行する。システムオンチップ410に含まれたプロセッサは図1のシステムオンチップ110と同一の構成を含む。システムオンチップ410に含まれたプロセッサは複数のプロセッサ(Processor)を含む。また、各プロセッサ(Processor)は複数の権限レベル(Privilege Level)を支援する。
テストプログラム(Test Program)生成の時に、システムオンチップ410に連結されたメモリ装置420はテスト生成器(Test Generator)及びテストテンプレート(Test Template)を格納する。システムオンチップ410に含まれたプロセッサはテスト生成器(Test Generator)を実行してテストプログラム(Test Program)を生成する。テスト生成器(Test Generator)は一種のプログラムである。テスト生成器(Test Generator)はテストテンプレート(Test Template)内の命令文(Instruction Statement)を読み出してテストプログラム(Test Program)を構成する命令語(Instruction)を生成する。例えば、テスト生成器(Test Generator)は1つの命令文(Instruction Statement)を読み出して1つの命令語(Instruction)を生成する。また、テスト生成器(Test Generator)は複数の命令文(Instruction Statement)を読み出して1つの命令語(Instruction)を生成する。テスト生成器(Test Generator)は1つの命令文(Instruction Statement)を読み出して複数の命令語(Instruction)を生成する。
テスト生成器(Test Generator)がテンプレート文章(Template Statement)を読み出す間に、テスト生成器(Test Generator)に含まれた第1下位構成要素(1st Sub−component)は命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図を検出する。命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)をシステムオンチップ410を動作させるための動作状態と定義する。動作状態の転換意図が検出された場合、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)を生成する。
動作状態の転換意図は多様な方法によって表示することができる。例えば、動作状態の転換意図はテンプレート文章(Template Statement)の内容に表示される。また、動作状態の転換意図は特定なバイナリコードを有する例外誘発命令語(Exception−causing Instruction)を生成するテンプレート文章(Template Statement)を利用して表示される。また、動作状態の転換意図は2つの命令語(Instruction)を生成するテンプレート文章(Template Statement)を利用して表示される。2つの命令語(Instruction)はレジスタに特定な値を割当する命令語及びシステム呼出(System Call)命令語で構成される。しかし、動作状態の転換意図の表示方法はこれに制限されない。上のように動作状態の転換意図を含む命令文(Instruction Statement)を状態変換文章(State Modifying Statement)であると定義する。
テスト生成器(Test Generator)がテンプレート文章(Template Statement)を読み出す間に、テスト生成器(Test Generator)に含まれた第2下位構成要素(2nd Sub−component)はテンプレート文章(Template Statement)に対応する命令語(Instruction)の内容を決定する。例えば、第2下位構成要素(2nd Sub−component)はテンプレート文章(Template Statement)に対応する命令語集合を選択する。テスト生成器(Test Generator)は選択された命令語の集合から新しい命令語(Instruction)を生成する。
テスト生成器(Test Generator)に含まれたメイン構成要素(Main Component)はテスト生成器(Test Generator)の全般的な動作を制御する。メイン構成要素(Main Component)はテストテンプレート(Test Template)からテンプレート文章(Template Statement)を1つずつ読み出す。メイン構成要素(Main Component)は第1及び第2下位構成要素(1st Sub−component、2nd Sub−component)によって決定された事項にしたがってテストプログラム(Test Program)の命令語(Instruction)を生成する。
検証動作の時に、システムオンチップ410に含まれたプロセッサ(Processor)は生成されたテストプログラム(Test Program)を実行する。システムオンチップ410に含まれたプロセッサ(Processor)はテストプログラム(Test Program)に含まれた命令語(Instruction)を1つずつ順次遂行する。テストプログラム(Test Program)を実行する間に例外誘発命令語(Exception−causing Instruction)を発見した場合、システムオンチップ410に含まれたプロセッサ(Processor)はテストプログラム(Test Program)の実行を中止し、例外処理器(Exception Handler)を実行する。
例外処理器(Exception Handler)はシステムオンチップ410に連結されたメモリ装置420に格納される。例外処理器(Exception Handler)は一種のプログラムである。例えば、例外処理器(Exception Handler)は例外誘発命令語(Exception−causing Instruction)のバイナリ符号を確認する。又は例外処理器(Exception Handler)はレジスタに格納された引数(Argument)を確認する。したがって、例外処理器(Exception Handler)はバイナリ符号又はレジスタに格納された引数(Argument)を通じて命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図を確認する。
例外処理器(Exception Handler)は固定された命令語シークェンス(Fixed Instruction Sequence)を含む。この時、バイナリ符号又はレジスタに格納された引数(Argument)の確認結果、命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)を転換する場合、システムオンチップ410に含まれたプロセッサ(Processor)は固定された命令語シークェンス(Fixed Instruction Sequence)を順次遂行する。固定された命令語シークェンス(Fixed Instruction Sequence)の中で1つの命令語は例外処理を終えた後、例外誘発命令語(Exception−causing Instruction)アドレスのすぐ次のアドレスに復帰する内容を含む。
したがって、システムオンチップ410に含まれたプロセッサ(Processor)は例外処理器(Exception Handler)の実行を中止し、テストプログラム(Test Program)の実行を再開する。テストプログラム(Test Program)の実行を再開する時、システムオンチップ410に含まれたプロセッサ(Processor)は変更された命令語セット(Instruction Set)、権限レベル(Privilege Level)状態でテストプログラム(Test Program)を実行する。また、テストプログラム(Test Program)は変更されたプロセッサ(Processor)で遂行される。
システムオンチップ410に含まれたプロセッサ(Processor)はテストプログラム(Test Program)の実行にしたがって文脈(Context)をメモリ装置420に格納又はメモリ装置420から復旧する。システムオンチップ410に含まれたプロセッサ(Processor)はテストプログラム(Test Program)実行を中止する時に文脈(Context)を格納する。また、システムオンチップ410に含まれたプロセッサ(Processor)はテストプログラム(Test Program)実行を再開する時に文脈(Context)を復旧する。文脈(Context)はテストプログラム(Test Program)の実行を中止した後、再び再開するために必要である情報を意味する。
即ち、文脈(Context)はテストプログラム(Test Program)を中止する時にシステムオンチップ410に含まれたプロセッサ(Processor)の中止の直前の状態を意味する。例えば、文脈(Context)は各プロセッサのレジスタ情報を含む。システムオンチップ410の各プロセッサが6つの権限レベル(Privilege Level)を支援する場合、各プロセッサの文脈(Context)は第1乃至第6レベルに対応する文脈(Context)を含む。
マッピングテーブル(Mapping Table)はシステムオンチップ410と連結されたメモリ装置420に格納される。マッピングテーブル(Mapping Table)はプロセッサ(Processor)の転換に関わらず、テストプログラム(Test Program)を生成するために使用される。マッピングテーブル(Mapping Table)はプロセッサ(Processor)の物理ID(Physical ID)と仮想ID(Virtual ID)とをマッピングする。テストプログラム(Test Program)の命令語(Instruction)は固定されたプロセッサID(Processor ID)を基準として実行される。例えば、テストプログラム(Test Program)の命令語(Instruction)は仮想ID(Virtual ID)を基準として生成される。そうすると、マッピングテーブル(Mapping Table)の変更を通じて実質的にプロセッサ(Processor)転換の効果を発生させることができる。
図5乃至図7は図4のテストテンプレートの実施形態を示す図である。図5は命令語セット(Instruction Set)の転換を伴うテストテンプレートの実施形態を示す図である。図5を参照すれば、テストテンプレート(Test Template)は複数のテンプレート文章(Template Statement)を含む。例えば、テストテンプレート(Test Template)は互に異なる命令語セットA32、A64に対応する命令文(Instruction Statement A〜Instruction Statement F)を含む。また、テストテンプレート(Test Template)は状態変換文章(State Modifying Statement 1、State Modifying Statement 2)を含む。
システムオンチップ410に含まれたプロセッサはテスト生成器(Test Generator)を実行してテストプログラム(Test Program)を生成する。テスト生成器(Test Generator)はテストテンプレート(Test Template)に含まれたテンプレート文章(Template Statement)を1つずつ読み出す。テスト生成器(Test Generator)は命令文(Instruction Statement A、Instruction Statement B)に対応して64ビット命令語A64を生成する。
テスト生成器(Test Generator)は状態変換文章(State Modifying Statement 1)に対応して命令語セット(Instruction Set)を転換する命令語を生成する。例えば、状態変換文章(State Modifying Statement 1)を検出すれば、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)を生成する。例外誘発命令語(Exception−causing Instruction)は32ビットに命令語セット(Instruction Set)を転換する引数(Argument)を含む。
状態変換文章(State Modifying Statement 1)にしたがって例外誘発命令語(Exception−causing Instruction)を生成した後、テスト生成器(Test Generator)は命令文(Instruction Statement C、Instruction Statement D)に対応して32ビット命令語A32を生成する。
テスト生成器(Test Generator)は状態変換文章(State Modifying Statement 2)に対応して命令語セット(Instruction Set)を転換する命令語を生成する。例えば、状態変換文章(State Modifying Statement 2)を検出すれば、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)を生成する。例外誘発命令語(Exception−causing Instruction)は64ビットに命令語セット(Instruction Set)を転換する引数(Argument)を含む。
状態変換文章(State Modifying Statement 2)にしたがって例外誘発命令語(Exception−causing Instruction)を生成した後、テスト生成器(Test Generator)は命令文(Instruction Statement E、Instruction Statement F)に対応して64ビット命令語A64を生成する。
以上のように本発明によるシステムオンチップ410に含まれたプロセッサは状態変換文章(State Modifying Statement 1、State Modifying Statement 2)を利用して命令語セット(Instruction Set)を転換するテストプログラム(Test Program)を生成する。
図6は権限レベル(Privilege Level)の転換を伴うテストテンプレートの実施形態を示す図である。図6を参照すれば、テストテンプレート(Test Template)は複数のテンプレート命令文(Template Statement)を含む。例えば、テストテンプレート(Test Template)は互に異なる権限レベル(Privilege Level)に対応する命令文(Instruction Statement A〜Instruction Statement E)を含む。また、状態変換文章(State Modifying Statement 1〜State Modifying Statement 4)を含む。
テスト生成器(Test Generator)はテストテンプレート(Test Template)に含まれたテンプレート命令文(Template Statement)を1つずつ読み出す。テスト生成器(Test Generator)は命令文(Instruction Statement A)に対応して命令語(Instruction A)を生成する。検証動作の時に、命令語(Instruction A)は権限レベルPL1−1で遂行される命令語である。
テスト生成器(Test Generator)は状態変換文章(State Modifying Statement 1)に対応して権限レベル(Privilege Level)を転換する命令語を生成する。例えば、状態変換文章(State Modifying Statement 1)を検出すれば、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)を生成する。例外誘発命令語(Exception−causing Instruction)は権限レベルPL1−2に権限レベル(Privilege Level)を転換する引数(Argument)を含む。
状態変換文章(State Modifying Statement 1)に したがって例外誘発命令語(Exception−causing Instruction)を生成した後、テスト生成器(Test Generator)は命令文(Instruction Statement B)に対応して命令語(Instruction B)を生成する。検証動作の時に、命令語(Instruction B)は権限レベルPL1−2で遂行される命令語である。
テスト生成器(Test Generator)は状態変換文章(State Modifying Statement 2)に対応して権限レベル(Privilege Level)を転換する命令語を生成する。例えば、状態変換文章(State Modifying Statement 2)を検出すれば、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)を生成する。例外誘発命令語(Exception−causing Instruction)は権限レベル(PL1−3)に権限レベル(Privilege Level)を転換する引数(Argument)を含む。
先に説明したように状態変換文章(State Modifying Statement 3〜State Modifying Statement 4)にしたがって例外誘発命令語(Exception−causing Instruction)は生成される。そのため、詳細な説明は省略する。例外誘発命令語(Exception−causing Instruction)は権限レベル(Privilege Level)を転換する意図を表示する引数(Argument)を含む。したがって、命令語(Instruction C〜Instruction E)は変更された権限レベル(Privilege Level)で遂行される。
図6で、システムオンチップ410に含まれたプロセッサは8つの権限レベルPL1−1〜PL1−4、PL2−1〜PL2−4を支援する。例えば、権限レベルPL1−1〜PL1−4は非保安(Non−secure)レベルである。権限レベルPL1−1〜PL1−4は保安(Secure)レベルである。しかし、システムオンチップ410に含まれたプロセッサはこれに制限されない。システムオンチップ410に含まれたプロセッサは少なくとも1つの権限レベル(Privilege Level)を支援する。
以上のように本発明によるシステムオンチップ410に含まれたプロセッサは状態変換文章(State Modifying Statement 1〜State Modifying Statement 4)を利用して権限レベル(Privilege Level)を転換するテストプログラム(Test Program)を生成する。
図7はプロセッサ(Processor)の転換を伴うテストテンプレートの実施形態を示す図である。図7を参照すれば、テストテンプレート(Test Template)は複数のテンプレート命令文(Template Statement)を含む。例えば、テストテンプレート(Test Template)は互に異なるプロセッサ(Processor)に対応する命令文(Instruction Statement A〜Instruction Statement F)を含む。また、状態変換文章(State Modifying Statement 1、State Modifying Statement 2)を含む。
システムオンチップ410に含まれたプロセッサはテスト生成器(Test Generator)を実行してテストプログラム(Test Program)を生成する。テスト生成器(Test Generator)はテストテンプレート(Test Template)に含まれたテンプレート文章(Template Statement)を1つずつ読み出す。テスト生成器(Test Generator)は命令文(Instruction Statement A、Instruction Statement B)に対応して命令語(Instruction A、Instruction B)を生成する。検証動作の時に、命令語(Instruction A、Instruction B)は第5プロセッサ(Processor 5)で遂行される命令語である。
テスト生成器(Test Generator)は状態変換文章(State Modifying Statement 1)に対応してプロセッサ(Processor)を転換する命令語を生成する。例えば、状態変換文章(State Modifying Statement 1)を検出すれば、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)を生成する。例外誘発命令語(Exception−causing Instruction)は第4プロセッサ(Processor 4)にプロセッサ(Processor)を転換する引数(Argument)を含む。
状態変換文章(State Modifying Statement 1)に したがって例外誘発命令語(Exception−causing Instruction)を生成した後、テスト生成器(Test Generator)は命令文(Instruction Statement C、Instruction Statement D)に対応して命令語(Instruction C、Instruction D)を生成する。検証動作の時に、命令語(Instruction C、Instruction D)は第4プロセッサ(Processor 4)で遂行される命令語である。
テスト生成器(Test Generator)は状態変換文章(State Modifying Statement 2)に対応してプロセッサ(Processor)を転換する命令語を生成する。例えば、状態変換文章(State Modifying Statement 2)を検出すれば、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)を生成する。例外誘発命令語(Exception−causing Instruction)は第7プロセッサ(Processor 7)にプロセッサ(Processor)を転換する引数(Argument)を含む。
状態変換文章(State Modifying Statement 2)にしたがって例外誘発命令語(Exception−causing Instruction)を生成した後、テスト生成器(Test Generator)は命令文(Instruction Statement E、Instruction Statement F)に対応して命令語(Instruction E、Instruction F)を生成する。検証動作の時に、命令語(Instruction E、Instruction F)は第7プロセッサ(Processor 7)で遂行される命令語である。
以上のように本発明によるシステムオンチップ410に含まれたプロセッサは状態変換文章(State Modifying Statement 1、State Modifying Statement 2)を利用してプロセッサ(Processor)を転換するテストプログラム(Test Program)を生成する。
図8は図4のマッピングテーブルを例示的に示す図である。図8を参照すれば、マッピングテーブル(Mapping Table)は物理プロセッサID(Physical ID)と仮想プロセッサID(Virtual ID)との間の関係を示す。
図7で説明したようにテスト生成器(Test Generator)はテストテンプレート(Test Template)を読み出して互に異なるプロセッサで遂行される命令語を含むテストプログラム(Test Program)を生成する。しかし、原則的にテストプログラム(Test Program)内の命令語は指定されたプロセッサで動作するように生成される。したがって、テストプログラム(Test Program)内の命令語は仮想プロセッサID(Virtual ID)を基準として動作するように生成される。仮想プロセッサID(Virtual ID)と物理プロセッサID(Physical ID)とのマッピングを変更すれば、実質的にテストプログラム(Test Program)はプロセッサ(Processor 1〜Processor 8)を変更して動作する。
プロセッサ(Processor 1〜Processor 8)は各々固定された物理プロセッサID(Physical ID)を有する。仮想プロセッサID(Virtual ID)は物理プロセッサID(Physical ID)に一対一にマッピングされる。しかし、仮想プロセッサID(Virtual ID)は物理プロセッサID(Physical ID)と異なってマッピングされる。例えば、仮想プロセッサID(Virtual ID)1は物理プロセッサID(Physical ID)3にマッピングされる。仮想プロセッサID(Virtual ID)2は物理プロセッサID(Physical ID)8にマッピングされる。仮想プロセッサID(Virtual ID)3は物理プロセッサID(Physical ID)1にマッピングされる。
仮想プロセッサID(Virtual ID)4は物理プロセッサID(Physical ID)6にマッピングされる。仮想プロセッサID(Virtual ID)5は物理プロセッサID(Physical ID)7にマッピングされる。仮想プロセッサID(Virtual ID)6は物理プロセッサID(Physical ID)2にマッピングされる。仮想プロセッサID(Virtual ID)7は物理プロセッサID(Physical ID)4にマッピングされる。プロセッサ交換(Swap)動作の時に、仮想プロセッサID(Virtual ID)8は物理プロセッサID(Physical ID)5にマッピングされる。プロセッサ移行(Migration)動作の時に、物理プロセッサID(Physical ID)5はマッピングされない(Undifined)状態を有する。
また、仮想プロセッサID(Virtual ID)はプロセッサ移行(Migration)又は交換(Swap)動作によって変更される。例えば、プロセッサ移行(Migration)動作の時に、仮想プロセッサID(Virtual ID)は変更される。プロセッサ移行(Migration)動作の時にはマッピングされない(Undefined)少なくとも1つの仮想プロセッサID(Virtual ID)が存在する。プロセッサ移行(Migration)動作の前に、仮想プロセッサID(Virtual ID)1は物理プロセッサID(Physical ID)3にマッピングされる。プロセッサ移行(Migration)動作が遂行されれば、仮想プロセッサID(Virtual ID)1は物理プロセッサID(Physical ID)5にマッピングされる。したがって、物理プロセッサID(Physical ID)3はマッピングされない(Undefined)状態になる。
例えば、プロセッサ交換(Swap)動作の時に、仮想プロセッサID(Virtual ID)は変更される。プロセッサ交換(Swap)動作の前に仮想プロセッサID(Virtual ID)6は物理プロセッサID(Physical ID)2にマッピングされ、仮想プロセッサID(Virtual ID)4は物理プロセッサID(Physical ID)6にマッピングされる。プロセッサ交換(Swap)動作が遂行されれば、仮想プロセッサID(Virtual ID)6は物理プロセッサID(Physical ID)6にマッピングされ、仮想プロセッサID(Virtual ID)4は物理プロセッサID(Physical ID)2にマッピングされる。
以上のように物理プロセッサID(Physical ID)と異なり、仮想プロセッサID(Virtual ID)はプロセッサ移行(Migration)又は交換(Swap)後に変更される。テストプログラム(Test Program)は仮想プロセッサID(Virtual ID)を基準として動作する。したがって、仮想プロセッサID(Virtual ID)を変更すれば、テストプログラム(Test Program)は実質的に変更されたプロセッサ上で遂行される。
図9は本発明の実施形態によるテストプログラム(Test Program)の生成方法を示す順序図である。図4及び図9を参照すれば、システムオンチップ410に含まれたプロセッサはテスト生成器(Test Generator)を実行させてテストプログラム(Test Program)を生成する。
S110段階で、テスト生成器(Test Generator)はテストテンプレート(Test Template)に含まれた命令文(Instruction Statement)を読み出す。
S120段階で、テスト生成器(Test Generator)は第1下位構成要素(1st Sub−component)を利用して命令文(Instruction Statement)内に特別な条件があるか否かを検出する。例えば、特別な条件は命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図に対する表示である。命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図は多様な方法で表示される。
命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図はテンプレート文章(Template Statement)の内容に表示される。また、命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図は特定なバイナリコードを有する例外誘発命令語(Exception−causing Instruction)を生成するテンプレート文章(Template Statement)を利用して表示される。
また、命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図は2つの命令語(Instruction)を生成するテンプレート文章(Template Statement)を利用して表示される。2つの命令語(Instruction)はレジスタに特定な値を割当する命令語及びシステム呼出(System Call)命令語で構成される。しかし、命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図の表示方法はこれに限定されない。
命令文(Instruction Statement)内に特別な条件がない場合、S130段階に移動する。命令文(Instruction Statement)内に特別な条件がある場合、S150段階に移動する。
S130段階で、S120段階の検出結果、特別な条件がない場合、テスト生成器(Test Generator)は命令文(Instruction Statement)に対応する命令語(Instruction)を生成する。
S140段階で、テスト生成器(Test Generator)は次の命令語(Next Instruction)を生成するメモリ上のアドレスを計算する。例えば、テスト生成器(Test Generator)はプログラムカウンタ(Program Counter)を利用して次の命令語(Next Instruction)のアドレスを計算する。プログラムカウンタ(Program Counter)は次の命令語(Next Instruction)を格納するメモリ内の位置を知らせる。
S150段階で、S120段階の検出結果、特別な条件が検出された場合、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)を生成する。例えば、テスト生成器(Test Generator)がテンプレート文章(Template Statement)を読み出す間に、テスト生成器(Test Generator)に含まれた第1下位構成要素(1st Sub−component)は命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図を検出する。生成された例外誘発命令語(Exception−causing Instruction)は命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図を含む。
S160段階で、テスト生成器(Test Generator)は次に生成される命令語のアドレスを設定する。次の命令語(Next Instruction)のアドレスは例外誘発命令語(Exception−causing Instruction)アドレスのすぐ次に隣接するメモリ上のアドレスに設定される。例えば、例外誘発命令語(Exception−causing Instruction)の大きさが4バイト(Byte)である場合、テスト生成器(Test Generator)は現在のプログラムカウンタ(Program Counter)に4を加えて次の命令語(Next Instruction)のプログラムカウンター(Program Counter)に設定する。即ち、次の命令語(Next Instruction)は例外誘発命令語(Exception−causing Instruction)を格納したアドレスのすぐ次のアドレスに格納される。
S170段階で、テスト生成器(Test Generator)はテストテンプレート(Test Template)内に次に読み出される命令文(Instruction Statement)があるか否かを確認する。それ以上読み出す命令文(Instruction Statement)がない場合、テスト生成器(Test Generator)はテストプログラム(Test Program)生成を終了する。テストテンプレート(Test Template)内に次に読み出される命令文(Instruction Statement)がある場合、再びS110段階に戻ってテスト生成器(Test Generator)は次の命令文(Instruction Statement)を読み出す。
以上のテストプログラム(Test Program)生成方法によってテスト生成器(Test Generator)は命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図を有する例外誘発命令語(Exception−causing Instruction)を含むテストプログラム(Test Program)を生成する。本発明によるシステムオンチップ410に含まれたプロセッサは例外誘発命令語(Exception−causing Instruction)にしたがって命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)を転換して検証動作を遂行する。
図10は本発明の実施形態によるテストプログラム(Test Program)の実行動作を示す順序図である。図4及び図10を参照すれば、システムオンチップ410に含まれたプロセッサは図9で生成されたテストプログラム(Test Program)を実行して検証動作を遂行する。
S210段階で、検証対象プロセッサはテストプログラム(Test Program)に含まれた命令語(Instruction)を読み出す。
S220段階で、検証対象プロセッサはS210段階で読み出した命令語(Instruction)が例外誘発命令語(Exception−causing Instruction)であるか否かを判断する。判断結果、例外誘発命令語(Exception−causing Instruction)ではない場合、S280段階に移動して検証対象プロセッサはS210段階で読み出した命令語(Instruction)を遂行する。判断結果、例外誘発命令語(Exception−causing Instruction)である場合、S230段階に移動する。
例えば、検証対象プロセッサは命令語(Instruction)のプログラムカウンタ(Program Counter)を確認して例外誘発命令語(Exception−causing Instruction)であるか否かを判断する。検証対象プロセッサは命令語(Instruction)に対応するプログラムカウンタ(Program Counter)が例外処理器(Exception Handler)内にあるか否かを確認する。命令語(Instruction)に対応するプログラムカウンタ(Program Counter)が例外処理器(Exception Handler)内に無い場合、命令語(Instruction)は一般的な命令語(Instruction)として判断される。命令語(Instruction)に対応するプログラムカウンタ(Program Counter)が例外処理器(Exception Handler)内にある場合、命令語(Instruction)は例外誘発命令語(Exception−causing Instruction)として判断される。
S230段階で、検証対象プロセッサは例外誘発命令語(Exception−causing Instruction)に含まれた引数(Argument)を検査する。例外誘発命令語(Exception−causing Instruction)を遂行すれば、検証対象プロセッサはテストプログラム(Test Program)を一時的に中止し、例外処理器(Exception Handler)を実行させる。例外処理器(Exception Handler)は例外誘発命令語(Exception−causing Instruction)に含まれた引数(Argument)を検査する。引数(Argument)を検査すれば、例外処理器(Exception Handler)は命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図を確認することができる。
S240段階で、引数(Argument)の検査結果にしたがって検証対象プロセッサは文脈(Context)を選択的に格納する。引数(Argument)の検査結果にしたがって命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換意図が確認されれば、例外処理器(Exception Handler)は固定された命令語シークェンス(Fixed Instruction Sequence)を遂行する。固定された命令語シークェンス(Fixed Instruction Sequence)を遂行する間に、検証対象プロセッサは文脈(Context)を選択的に格納する。
結局、検証対象プロセッサは命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)転換前の状態情報を格納する。
S250段階で、検証対象プロセッサは命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)を転換する。例えば、検証対象プロセッサは32ビットから64ビットに命令語セットを転換する。検証対象プロセッサは権限レベルPL1−1(図6参照)を権限レベルPL1−2に転換する。検証対象プロセッサはシステムオンチップ410内の他のプロセッサに転換する。結局、テストプログラム(Test Program)の実行は変更されたプロセッサで再開される。
S260段階で、検証対象プロセッサは命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の転換の後、文脈(Context)を選択的に復旧する。プロセッサ転換の後には変更されたプロセッサが検証対象プロセッサである。
S270段階で、検証対象プロセッサはテストプログラム(Test Program)内で例外誘発命令語(Exception−causing Instruction)アドレスのすぐ次のアドレスに戻る。したがって、検証対象プロセッサは命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)の変更された状態で例外誘発命令語(Exception−causing Instruction)の次の命令語(Instruction)を遂行する。
S290段階で、検証対象プロセッサはテストプログラム(Test Program)内に遂行される次の命令語(Next Instruction)の有無を確認する。遂行する次の命令語(Next Instruction)がある場合、S210段階に移動して検証対象プロセッサはS210段階からS280段階まで反複して遂行する。遂行する次の命令語(Next Instruction)が無い場合、検証対象プロセッサはテストプログラム(Test Program)を終了する。
以上の検証方法を通じて検証対象プロセッサは命令語セット(Instruction Set)、権限レベル(Privilege Level)、又はプロセッサ(Processor)を変更してテストプログラム(Test Program)を実行する。したがって、検証対象プロセッサは多様な環境で検証動作を遂行する。
図11は本発明の実施形態による権限レベル及び命令語セットの転換を含むテストプログラムの実行動作を示す順序図である。図4及び図11を参照すれば、検証対象プロセッサは図9で生成されたテストプログラム(Test Program)を実行して検証動作を遂行する。
S305段階で、検証対象プロセッサはテストプログラム(Test Program)に含まれた命令語(Instruction)を実行する。
S310段階で、検証対象プロセッサはS305段階で読み出した命令語(Instruction)が例外誘発命令語(Exception−causing Instruction)であるか否かを判断する。判断結果、例外誘発命令語(Exception−causing Instruction)ではない場合、S315段階に移動して検証対象プロセッサはS305段階で読み出した命令語(Instruction)を遂行する。判断結果、例外誘発命令語(Exception−causing Instruction)である場合、S320段階に移動する。
例えば、検証対象プロセッサは命令語(Instruction)のプログラムカウンタ(Program Counter)を確認して例外誘発命令語(Exception−causing Instruction)であるか否かを判断する。検証対象プロセッサは命令語(Instruction)に対応するプログラムカウンタ(Program Counter)が例外処理器(Exception Handler)内にあるか否かを確認する。命令語(Instruction)に対応するプログラムカウンタ(Program Counter)が例外処理器(Exception Handler)内に無い場合、命令語(Instruction)は一般的な命令語(Instruction)として判断される。命令語(Instruction)に対応するプログラムカウンタ(Program Counter)が例外処理器(Exception Handler)内にある場合、命令語(Instruction)は例外誘発命令語(Exception−causing Instruction)として判断される。
S320段階で、検証対象プロセッサは例外誘発命令語(Exception−causing Instruction)に含まれた引数(Argument)を検査する。例外誘発命令語(Exception−causing Instruction)を遂行すれば、検証対象プロセッサはテストプログラム(Test Program)を一時的に中止し、例外処理器(Exception Handler)を実行させる。例外処理器(Exception Handler)は例外誘発命令語(Exception−causing Instruction)に含まれた引数(Argument)を検査する。引数(Argument)を検査すれば、例外処理器(Exception Handler)は命令語セット(Instruction Set)又は権限レベル(Privilege Level)の転換意図を確認することができる。
S325段階で、例外処理器(Exception Handler)は命令語セット(Instruction Set)及び権限レベル(Privilege Level)の全ての転換意図を確認する。命令語セット(Instruction Set)及び権限レベル(Privilege Level)が全て転換されるのではない場合、S340段階に移動する。命令語セット(Instruction Set)及び権限レベル(Privilege Level)が全て転換される場合、S330段階に移動する。
S330段階で、引数(Argument)の検査結果にしたがって検証対象プロセッサは文脈(Context)を選択的に格納する。引数(Argument)の検査結果にしたがって命令語セット(Instruction Set)及び権限レベル(Privilege Level)の全ての転換意図が確認されれば、例外処理器(Exception Handler)は固定された命令語シークェンス(Fixed Instruction Sequence)を遂行する。固定された命令語シークェンス(Fixed Instruction Sequence)を遂行する間に、検証対象プロセッサは命令語セット(Instruction Set)及び権限レベル(Privilege Level)の全てに対応する文脈(Context)を選択的に格納する。
S335段階で、検証対象プロセッサは命令語セット(Instruction Set)及び権限レベル(Privilege Level)の全てを転換する。
S340段階で、例外処理器(Exception Handler)は命令語セット(Instruction Set)のみが転換されるか否かを確認する。命令語セット(Instruction Set)の転換無しで権限レベル(Privilege Level)のみが転換される場合、S355段階に移動する。権限レベル(Privilege Level)の転換無しで命令語セット(Instruction Set)のみが転換される場合、S345段階に移動する。
S345段階で、引数(Argument)の検査結果にしたがって検証対象プロセッサは文脈(Context)を選択的に格納する。引数(Argument)の検査結果にしたがって命令語セット(Instruction Set)のみの転換意図が確認されれば、例外処理器(Exception Handler)は固定された命令語シークェンス(Fixed Instruction Sequence)を遂行する。固定された命令語シークェンス(Fixed Instruction Sequence)を遂行する間に、検証対象プロセッサは命令語セット(Instruction Set)に対応する文脈(Context)を選択的に格納する。
S350段階で、検証対象プロセッサは命令語セット(Instruction Set)のみを転換する。
S355段階で、引数(Argument)の検査結果にしたがって検証対象プロセッサは文脈(Context)を選択的に格納する。引数(Argument)の検査結果にしたがって権限レベル(Privilege Level)のみの転換意図が確認されれば、例外処理器(Exception Handler)は固定された命令語シークェンス(Fixed Instruction Sequence)を遂行する。固定された命令語シークェンス(Fixed Instruction Sequence)を遂行する間に、検証対象プロセッサは権限レベル(Privilege Level)に対応する文脈(Context)を選択的に格納する。
S360段階で、検証対象プロセッサは権限レベル(Privilege Level)のみを転換する。
S365段階で、例外処理器(Exception Handler)は命令語セット(Instruction Set)又は権限レベル(Privilege Level)が転換された後、文脈(Context)を選択的に復旧する。
S370段階で、検証対象プロセッサはテストプログラム(Test Program)内で例外誘発命令語(Exception−causing Instruction)アドレスのすぐ次のアドレスに戻る。したがって、検証対象プロセッサは命令語セット(Instruction Set)又は権限レベル(Privilege Level)の変更された状態で例外誘発命令語(Exception−causing Instruction)の次の命令語(Instruction)を遂行する。
S375段階で、検証対象プロセッサはテストプログラム(Test Program)内に遂行される次の命令語(Next Instruction)があるか否かを確認する。遂行する次の命令語(Next Instruction)がある場合、S305段階に移動して検証対象プロセッサはS305段階からS370段階まで反複して遂行する。遂行する次の命令語(Instruction)がない場合、検証対象プロセッサはテストプログラム(Test Program)を終了する。
以上の検証方法を通じて検証対象プロセッサは命令語セット(Instruction Set)及び権限レベル(Privilege Level)を同時に変更してテストプログラム(Test Program)を実行する。しかし、検証対象プロセッサはこれに制限されない。検証対象プロセッサは命令語セット(Instruction Set)、権限レベル(Privilege Level)及びプロセッサ(Processor)を同時に変更してテストプログラム(Test Program)を実行することができる。
図12及び図13は本発明によるプロセッサ移行(Processor Migration)を含む検証方法を示す順序図である。システムオンチップ410は複数のプロセッサ(Processor)を含む。テストプログラム(Test Program)は各々のプロセッサ(Processor)で実行される。プロセッサ移行(Processor Migration)は起動プロセッサ(Initiating Processor)と目標プロセッサ(Victim Processor)との間に発生する。起動プロセッサ(Initiating Processor)は現在テストプログラム(Test Program)を実行中であるプロセッサ(Processor)である。目標プロセッサ(Victim Processor)はプロセッサ転換の後、テストプログラム(Test Program)を実行されるプロセッサ(Processor)である。
図12はプロセッサ移行(Processor Migration)の時に,起動プロセッサ(Initiating Processor)の動作を示す順序図である。
S410段階で、テストプログラム(Test Program)を実行する間に、起動プロセッサ(Initiating Processor)は例外誘発命令語(Exception−causing Instruction)を遂行する。例外誘発命令語(Exception−causing Instruction)を遂行すれば、起動プロセッサ(Initiating Processor)はテストプログラム(Test Program)を一時的に中止し、例外処理器(Exception Handler)を実行させる。
S420段階で、例外処理器(Exception Handler)は例外誘発命令語(Exception−causing Instruction)に含まれた引数(Argument)を検査する。引数(Argument)を検査すれば、プロセッサ移行(Processor Migration)の可否が確認されることができる。
S430段階で、プロセッサ移行(Processor Migration)の可否が確認されれば、例外処理器(Exception Handler)はメモリ装置420の割当された領域に起動プロセッサ(Initiating Processor)の文脈(Context)を格納する。
S440段階で、起動プロセッサ(Initiating Processor)は目標プロセッサ(Victim Processor)にインタラプト(Interrupt)を送る。プロセッサ移行(Processor Migration)動作の時、目標プロセッサ(Victim Processor)はスリープ−モード(Sleep−mode)の状態である。したがって、起動プロセッサ(Initiating Processor)はインタラプト(Interrupt)を通じて目標プロセッサ(Victim Processor)を起動する。
S450段階で、起動プロセッサ(Initiating Core)はスリープ−モード(Sleep−mode)に戻る。
図13はプロセッサ移行(Processor Migration)の時に目標プロセッサ(Victim Processor)の動作を示す順序図である。
S510段階で、目標プロセッサ(Victim Processor)は起動プロセッサ(Initiating Processor)からインタラプト(Interrupt)を受信する。インタラプト(Interrupt)を受信すれば、目標プロセッサ(Victim Processor)はスリープ−モード(Sleep−mode)から起動する。
S520段階で、目標プロセッサ(Victim Processor)は図12で格納された起動プロセッサ(Initiating Processor)の文脈(Context)を復旧する。目標プロセッサ(Victim Processor)は復旧された起動プロセッサ(Initiating Processor)の文脈(Context)にしたがってテストプログラム(Test Program)内の例外誘発命令語(Exception−causing Instruction)の次の命令語(Instruction)から遂行する。
S530段階で、目標プロセッサ(Victim Processor)は図8で説明されたマッピングテーブル(Mapping Table)をアップデートする。したがって、テストプログラム(Test Program)はプロセッサを転換して遂行される。
図14及び図15は本発明によるプロセッサ交換(Processor Swap)を含む検証方法を示す順序図である。システムオンチップ410は複数のプロセッサ(Processor)を含む。テストプログラム(Test Program)は各々のプロセッサ(Processor)で実行される。プロセッサ交換(Processor Swap)は起動プロセッサ(Initiating Processor)と目標プロセッサ(Victim Processor)との間に発生する。起動プロセッサ(Initiating Processor)はテストプログラム(Test Program)を交換する目標プロセッサ(Victim Processor)を指定するプロセッサ(Processor)である。目標プロセッサ(Victim Processor)は起動プロセッサ(Initiating Processor)とテストプログラム(Test Program)とを交換するプロセッサ(Processor)である。
図14はプロセッサ交換(Processor Swap)の時に、起動プロセッサ(Initiating Processor)の動作を示す順序図である。
S610段階で、テストプログラム(Test Program)を実行する間に、起動プロセッサ(Initiating Processor)は例外誘発命令語(Exception−causing Instruction)を遂行する。例外誘発命令語(Exception−causing Instruction)を遂行すれば、起動プロセッサ(Initiating Processor)はテストプログラム(Test Program)を一時的に中止し、例外処理器(Exception Handler)を実行させる。
S620段階で、例外処理器(Exception Handler)は例外誘発命令語(Exception−causing Instruction)に含まれた引数(Argument)を検査する。引数(Argument)を検査すれば、例外処理器(Exception Handler)はプロセッサ交換(Processor Swap)の意図を確認することができる。
S630段階で、プロセッサ交換(Processor Swap)の意図が確認されれば、例外処理器(Exception Handler)はメモリ装置420の割当された領域に起動プロセッサ(Initiating Processor)の文脈(Context)を格納する。
S640段階で、起動プロセッサ(Initiating Processor)は目標プロセッサ(Victim Processor)に第1インタラプト(First Interrupt)を送る。プロセッサ交換(Processor Swap)動作の時に、目標プロセッサ(Victim Processor)は他のテストプログラム(Test Program)を実行中である。したがって、起動プロセッサ(Initiating Processor)は第1インタラプト(First Interrupt)を通じて目標プロセッサ(Victim Processor)にプロセッサ交換(Processor Swap)の意思を伝達する。
S650段階で、起動プロセッサ(Initiating Processor)は目標プロセッサ(Victim Processor)から第2インタラプト(Second Interrupt)を受信する。例えば、S640段階で第1インタラプト(First Interrupt)を受信した目標プロセッサ(Victim Processor)は自分の文脈(Context)をメモリ装置420の割当された領域に格納する。自分の文脈(Context)を格納した後、目標プロセッサ(Victim Processor)は第2インタラプト(Second Interrupt)を起動プロセッサ(Initiating Processor)に伝送する。起動プロセッサ(Initiating Processor)は第2インタラプト(Second Interrupt)を受信する時まで待機する。
S660段階で、起動プロセッサ(Initiating Processor)はメモリ装置420に格納された目標プロセッサ(Victim Processor)の文脈(Context)を復旧する。その後、起動プロセッサ(InitiatingProcessor)は目標プロセッサ(Victim Processor)の文脈(Context)にしたがって目標プロセッサ(Victim Processor)によって実行されたテストプログラム(Test Program)を実行する。
図15はプロセッサ交換(Processor Swap)の時に、目標プロセッサ(Victim Processor)の動作を示す順序図である。
S710段階で、目標プロセッサ(Victim Processor)は起動プロセッサ(Initiating Processor)から第1インタラプト(First Interrupt)を受信する。
S720段階で、目標プロセッサ(Victim Processor)は第1インタラプト(First Interrupt)にしたがって目標プロセッサ(Victim Processor)の文脈(Context)をメモリ装置420の割当された領域に格納する。
S730段階で、目標プロセッサ(Victim Processor)は第2インタラプト(Second Interrupt)を起動プロセッサ(Initiating Processor)に伝送する。
S740段階で、目標プロセッサ(Victim Processor)は図14で格納された起動プロセッサ(Initiating Processor)の文脈(Context)を復旧する。目標プロセッサ(Victim Processor)は復旧された起動プロセッサ(Initiating Processor)の文脈(Context)にしたがって起動プロセッサ(Initiating Processor)によって実行されたテストプログラム(Test Program)内の例外誘発命令語(Exception−causing Instruction)の次の命令語(Instruction)から遂行する。
S750段階で、目標プロセッサ(Victim Processor)は図8で説明されたマッピングテーブル(Mapping Table)をアップデートする。したがって、起動及び目標プロセッサ(Initiating Processor、Victim Processor)は各々が実行したテストプログラム(Test Program)を交換して遂行する。即ち、起動プロセッサ(Initiating Processor)によって実行したテストプログラム(Test Program)はプロセッサを転換して遂行される。
図16はシステムオンチップを検証するための本発明による構成の他の実施形態を示すブロック図である。図16を参照すれば、ホストコンピューティング装置500はテストプログラム(Test Program)を生成して検証対象コンピューティング装置600に伝達する。ホストコンピューティング装置500はホストシステムオンチップ510及びホストメモリ装置520を含む。検証対象コンピューティング装置600は検証対象システムオンチップ610及び検証対象メモリ装置620を含む。ホスト及び検証対象システムオンチップ510、610は図1のシステムオンチップ110と同一の構成を含む。
ホストメモリ装置520はテストテンプレート(Test Template)、参照モデル(Reference Model)、及びテスト生成器(Test Generator)を格納する。参照モデル(Reference Model)及びテスト生成器(Test Generator)は一種のプログラムである。テスト生成器(Test Generator)はテストテンプレート(Test Template)を利用して自動でストプログラム(Test Program)を生成する。テストプログラム(Test Program)生成の時に、生成された命令語(Instruction)は参照モデル(Reference Model)に注入(Feed)される。
例えば、参照モデル(Reference Model)は検証対象システムオンチップ610に含まれたプロセッサを参照して構成される。例えば、参照モデル(Reference Model)は検証対象システムオンチップ610に含まれたプロセッサをモデリング(Modeling)したソフトウェアである。参照モデル(Reference Model)はテストプログラム(Test Program)の各命令語の遂行による検証対象システムオンチップ610に含まれたプロセッサの状態変化情報を提供する。即ち、参照モデル(Reference Model)は注入(Feed)された命令語(Instruction)にしたがって検証対象システムオンチップ610に含まれたプロセッサの状態変化を追跡したモデリング結果(Modeling Result)を出力する。参照モデル(Reference Model)は注入(Feed)された命令語(Instruction)にしたがうモデリング結果(Modeling Result)をテスト生成器(Test Generator)に伝送する。テスト生成器(Test Generator)は参照モデル(Reference Model)から伝送されたモデリング結果(Modeling Result)を参照して次の命令語(Next Instruction)を生成する。生成されたテストプログラム(Test Program)は検証対象コンピューティング装置600に伝達される。
また、テスト生成器(Test Generator)の第3下位構成要素(3rd Sub−component)はテストプログラム(Test Program)の命令語(Instruction)の各々を生成した後、参照モデル(Reference Model)の状態を更新する。したがって、テスト生成器(Test Generator)は多様なテスト環境を造成する。
伝達されたテストプログラム(Test Program)は検証対象コンピューティング装置600のメモリ装置620に格納される。テストプログラム(Test Program)は検証対象システムオンチップ610によって遂行される。検証対象システムオンチップ610はテストプログラム(Test Program)を利用して検証動作を遂行する。テストプログラム(Test Program)の実行方法は図4で説明された検証動作方法と同一又は類似であるので、省略する。
図17は図16のホストシステムオンチップでテストプログラムを生成する方法を示す順序図である。図16及び図17を参照すれば、ホストシステムオンチップ510に含まれたプロセッサは参照モデル(Reference Model)を利用してテストプログラム(Test Program)を生成する。
S805段階で、テスト生成器(Test Generator)はテストテンプレート(Test Template)に含まれた命令文(Instruction Statement)を読み出す。
S810段階で、テスト生成器(Test Generator)の第1下位構成要素(1st Sub−component)は特別な条件の有無を検出する。
S815段階で、S810段階の検出結果、特別な条件がない場合、テスト生成器(Test Generator)は命令文(Instruction Statement)に対応する命令語(Instruction)を生成する。
S820段階で、テスト生成器(Test Generator)は生成された命令語(Instruction)を参照モデル(Reference Model)に注入(Feed)する。
S825段階で、S810段階の検出結果、特別な条件が検出された場合、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)を生成する。
S830段階で、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)に含まれたプロセッサの転換意図を検出する。検出結果、プロセッサの転換意図がある場合、S835段階に移動する。検出結果、プロセッサの転換意図がない場合、S840段階に移動する。
S835段階で、検出結果、プロセッサの転換意図がある場合、テスト生成器(Test Generator)は非動作命令語(No Operation Instruction、以下、NOP Instruction)を参照モデル(Reference Model)に注入(Feed)する。非動作命令語(NOP Instruction)は参照モデル(Reference Model)で動作状態の変化無しで次の命令語が生成される位置のみが変動させる。
S840段階で、検出結果、プロセッサの転換意図がない場合、テスト生成器(Test Generator)は例外誘発命令語(Exception−causing Instruction)の自体を参照モデル(Reference Model)に注入(Feed)する。
S845段階で、テスト生成器(Test Generator)は例外処理器(Exception Handler)に含まれた固定された命令語シークェンス(Fixed Instruction Sequence)を参照モデル(Reference Model)に注入(Feed)する。
S850段階で、テスト生成器(Test Generator)はS820、S835又はS845段階の命令語注入(Instruction Feed)にしたがって参照モデル(Reference Model)の状態変化を獲得する。テスト生成器(Test Generator)は獲得された参照モデル(Reference Model)の状態変化を次の命令語(Next Instruction)生成に反映する。
S855段階で、テスト生成器(Test Generator)はテストテンプレート(Test Template)内に次に読み出される命令文(Instruction Statement)の有無を確認する。それ以上、読み出す命令文(Instruction Statement)がない場合、テスト生成器(Test Generator)はテストプログラム(Test Program)生成を終了する。テストテンプレート(Test Template)内に次に読み出される命令文(Instruction Statement)がある場合、再びS805段階に戻ってテスト生成器(Test Generator)は次の命令文(Instruction Statement)を読み出す。
以上のテストプログラム(Test Program)生成方法によってホストシステムオンチップ510に含まれたプロセッサは参照モデル(Reference Model)を利用してさらに多様なテスト環境が反映されたテストプログラム(Test Program)を生成することができる。
前記メモリのチップとシステムオンチップとは各々、或いは共に多様な形態のパッケージを利用して実装することができる。例えば、チップはPoP(Package on Package)、Ball grid arrays(BGAs)、Chip scale packages(CSPs)、Plastic Leaded Chip Carrier(PLCC)、Plastic Dual In−Line Package(PDIP)、Die in Waffle Pack、Die in Wafer Form、Chip On Board(COB)、Ceramic Dual In−Line Package(CERDIP)、Plastic Metric Quad Flat Pack(MQFP)、Thin Quad Flatpack(TQFP)、Small Outline(SOIC)、Shrink Small Outline Package(SSOP)、Thin Small Outline(TSOP)、Thin Quad Flatpack(TQFP)、System In Package(SIP)、Multi Chip Package(MCP)、Wafer−level Fabricated Package(WFP)、Wafer−Level Processed Stack Package(WSP)等のパッケージとしてパッケージ化される。
上述したように図面と明細書で最適の実施形態が開示された。ここで、特定な用語が使用されたが、これは単なる本発明を説明するための目的で使用されたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使用されたものではない。したがって、本技術分野の通常の知識を有する者であれば、これから多様な変形及び均等な他の実施形態が具現できるという点を理解できる。したがって、本発明の真の技術的保護範囲は添付された特許請求の範囲の技術的思想によって定められなければならない。
100、200、300、400、500、600 コンピューティング装置
110、210、310、410、510、610 システムオンチップ
120、220、320、420、520、620 メモリ装置

Claims (19)

  1. システムオンチップの検証方法において、
    前記システムオンチップに含まれたプロセッサによってテスト生成器及び例外処理器を受信する段階と、
    テストテンプレートに基づいて前記テスト生成器を含む前記プロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、
    前記テストプログラムの実行によって第1動作状態で前記プロセッサによって第1命令語を遂行する段階と、
    前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、
    前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、
    前記固定された命令語シークェンスを遂行した後、変更された第2動作状態で、前記例外誘発命令語アドレスのすぐ次のアドレスに対応する第2命令語から前記テストプログラムの実行を再開する段階と、を含む検証方法。
  2. 前記第1動作状態から前記第2動作状態への変更によって前記第2命令語は、(i)前記第1命令語とは異なるプロセッサで遂行されるか、又は(ii)前記第1命令語とは異なる権限レベル及び前記第1命令語とは異なる命令語セットの中の少なくとも1つを使用して遂行される請求項1に記載の検証方法。
  3. 前記テストプログラムを生成する段階は、
    前記テストテンプレートに含まれた第1命令文を読み出す段階と、
    前記第1動作状態で遂行されるように前記第1命令文に対応する前記第1命令語を生成する段階と、
    前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、
    前記状態変換命令文に対応して、前記システムオンチップの動作状態を変更するために表示する動作状態の転換意図を含む前記例外誘発命令語を生成する段階と、
    前記状態変換命令文の次に位置する第2命令文を読み出す段階と、
    前記例外誘発命令語アドレスのすぐ次のアドレスに、前記第2動作状態で遂行されるように前記第2命令文に対応する前記第2命令語を生成する段階と、を含む請求項1に記載の検証方法。
  4. 前記動作状態の転換意図は、前記テスト生成器の第1下位構成要素を通じて検出される請求項3に記載の検証方法。
  5. 少なくとも2つの命令語セットを支援するプロセッサを含むシステムオンチップの検証方法において、
    プロセッサによってテスト生成器及び例外処理器を受信する段階と、
    テストテンプレートに基づいて前記テスト生成器を含む前記プロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、
    前記プロセッサによって前記テストプログラムの実行によって前記少なくとも2つの命令語セットの中で第1命令語セットに基づいて生成された第1命令語を遂行する段階と、
    前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、
    前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、
    前記固定された命令語シークェンスを遂行した後、前記例外誘発命令語アドレスのすぐ次のアドレスに対応する第2命令語から前記テストプログラムの実行を再開する段階と、を含み、
    前記第2命令語は、前記少なくとも2つの命令語セットの中で第2命令語セットに基づいて生成される検証方法。
  6. 前記テストプログラムを生成する段階は、
    前記テストテンプレートに含まれた第1命令文を読み出す段階と、
    前記第1命令語セットに基づいて前記第1命令文に対応する前記第1命令語を生成する段階と、
    前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、
    前記状態変換命令文に対応して、前記第1命令語セットの状態を変更するために表示する命令語セットの転換意図を含む前記例外誘発命令語を生成する段階と、
    前記状態変換命令文の次に位置した第2命令文を読み出す段階と、
    前記例外誘発命令語アドレスのすぐ次のアドレスに前記第2命令語セットに基づいて前記第2命令文に対応する前記第2命令語を生成する段階と、を含む請求項5に記載の検証方法。
  7. 前記状態変換命令文は、前記命令語セットの転換意図を含む請求項6に記載の検証方法。
  8. 前記命令語セットの転換意図は、前記テスト生成器の第1下位構成要素によって検出される請求項7に記載の検証方法。
  9. 前記第1及び第2命令語の内容は、前記テスト生成器の第2下位構成要素によって決定される請求項8に記載の検証方法。
  10. 前記命令語セットの転換意図は、前記例外誘発命令語に含まれた引数を通じて検出される請求項6に記載の検証方法。
  11. 前記第1命令語、前記第2命令語、及び前記例外誘発命令語の中で少なくとも1つを参照モデルに注入してモデリング結果を獲得する段階をさらに含み、
    前記モデリング結果は、前記第1命令語、前記第2命令語、及び前記例外誘発命令語の中で少なくとも1つの遂行にしたがって検証対象プロセッサの状態変化情報を含む請求項6に記載の検証方法。
  12. 前記モデリング結果を獲得する段階は、
    前記検証対象プロセッサが少なくとも2つのプロセッサを含む場合、前記例外誘発命令語に含まれたプロセッサの転換意図を検出する段階と、
    前記プロセッサの転換意図が検出された場合、前記例外誘発命令語の注入無しで前記参照モデルに非動作命令語を注入する段階と、を含み、
    前記非動作命令語は、前記参照モデルの状態変化無しで次に生成される命令語の位置を設定する請求項11に記載の検証方法。
  13. 前記テストプログラムは、前記検証対象プロセッサを含まないホストシステムオンチップで生成され、
    前記第1命令語を遂行する段階、前記固定された命令語シークェンスを遂行する段階、及び前記テストプログラムの実行を再開する段階は、前記検証対象プロセッサを含むシステムオンチップで遂行される請求項11に記載の検証方法。
  14. プロセッサを含み、少なくとも2つの権限レベルを支援するシステムオンチップの検証方法において、
    前記プロセッサによってテスト生成器及び例外処理器を受信する段階と、
    テストテンプレートに基づいて前記テスト生成器を含むプロセッサによって例外誘発命令語を含むテストプログラムを生成する段階と、
    前記プロセッサによって前記テストプログラムの実行によって前記少なくとも2つの権限レベルの中で第1権限レベルで第1命令語を遂行する段階と、
    前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記テストプログラムの実行を中止する段階と、
    前記テストプログラムを実行する間に前記例外誘発命令語を遂行する場合、前記プロセッサによって前記例外処理器に含まれた固定された命令語シークェンスを遂行する段階と、
    前記固定された命令語シークェンスを遂行した後、前記例外誘発命令語アドレスのすぐ次のアドレスに位置した第2命令語から前記テストプログラムの実行を再開する段階と、を含み、
    前記第2命令語は、前記少なくとも2つの権限レベルの中で第2権限レベルで遂行される検証方法。
  15. 前記テストプログラムを生成する段階は、
    前記テストテンプレートに含まれた第1命令文を読み出す段階と、
    前記第1権限レベルで遂行されるように前記第1命令文に対応する前記第1命令語を生成する段階と、
    前記テストテンプレートに含まれた状態変換命令文を読み出す段階と、
    前記状態変換命令文に対応して、前記第1権限レベルから前記第2権限レベルに転換を表示する権限レベルの転換意図を含む前記例外誘発命令語を生成する段階と、
    前記テストテンプレート内で前記状態変換命令文の次に位置した第2命令文を読み出す段階と、
    前記例外誘発命令語アドレスのすぐ次のアドレスに前記第2権限レベルで遂行されるように前記第2命令文に対応する前記第2命令語を生成する段階と、を含む請求項14に記載の検証方法。
  16. 前記固定された命令語シークェンスを遂行する段階は、
    前記第1権限レベルで動作する前記システムオンチップの第1状態情報を格納する段階と、
    前記固定された命令語シークェンスを遂行する間に、前記第2権限レベルで動作する前記システムオンチップの第2状態情報を復旧する段階と、を含む請求項14に記載の検証方法。
  17. 前記第1及び第2状態情報は、前記システムオンチップに連結されたメモリ装置の第1領域に格納され、前記第1領域は、前記第1権限レベルである時、前記第1及び第2状態情報を格納するために割当てる請求項16に記載の検証方法。
  18. 前記第1及び第2状態情報は、前記システムオンチップに連結されたメモリ装置の第2領域に格納され、前記第2領域は、前記第2権限レベルである時、前記第1及び第2状態情報を格納するために割当てる請求項17に記載の検証方法。
  19. テストプログラムを生成するための第1データ、テスト生成器及び例外処理器を格納するメモリ装置と、
    前記第1データにしたがって前記テスト生成器を使用して前記テストプログラムを各々生成する少なくとも2つのプロセッサと、を含み、
    前記テストプログラムを生成する時に、前記テスト生成器は前記第1データでプロセッサの変換意図が検出された場合、第2データを生成し、
    前記少なくとも2つのプロセッサ第1プロセッサによって前記テストプログラムを実行する時、前記第1プロセッサは、前記第2データにしたがって前記テストプログラムの実行を中止し、前記第1プロセッサと第2プロセッサとの間の変更がなされた後、前記テストプログラムの実行を再開するように前記第2データにしたがって固定された命令語シークェンスを遂行するために前記例外処理器を使用するコンピューティングシステム。
JP2015079540A 2014-04-09 2015-04-08 システムオンチップ及びその検証方法 Pending JP2015201208A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461977223P 2014-04-09 2014-04-09
US61/977,223 2014-04-09
KR10-2014-0091962 2014-07-21
KR1020140091962A KR102147172B1 (ko) 2014-04-09 2014-07-21 시스템 온 칩 및 그것의 검증 방법

Publications (1)

Publication Number Publication Date
JP2015201208A true JP2015201208A (ja) 2015-11-12

Family

ID=54399900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015079540A Pending JP2015201208A (ja) 2014-04-09 2015-04-08 システムオンチップ及びその検証方法

Country Status (3)

Country Link
JP (1) JP2015201208A (ja)
KR (1) KR102147172B1 (ja)
TW (1) TWI643064B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017199517A1 (ja) * 2016-05-19 2017-11-23 株式会社Nttドコモ 試験選択装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2278213A (en) * 1993-05-18 1994-11-23 Ibm Test program generator.
JPH07311690A (ja) * 1994-05-16 1995-11-28 Fujitsu Ltd マルチプロセッサシステムの動作テスト方法
JP2001147821A (ja) * 1999-09-10 2001-05-29 Toshiba Corp プロセッサ
US6928638B2 (en) * 2001-08-07 2005-08-09 Intel Corporation Tool for generating a re-generative functional test
DE602005015848D1 (de) * 2004-05-22 2009-09-17 Advantest Corp Verfahren und system zur steuerung wechselbarer komponenten in einem modularen testsystem
CN101515301B (zh) * 2008-02-23 2011-05-04 炬力集成电路设计有限公司 一种片上系统芯片验证的方法和装置
CN101344899B (zh) * 2008-08-15 2010-09-08 炬力集成电路设计有限公司 一种片上系统的仿真测试方法及仿真测试系统
JP2011253253A (ja) * 2010-05-31 2011-12-15 Fujitsu Ltd コンピュータ試験方法、コンピュータ試験装置およびコンピュータ試験プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017199517A1 (ja) * 2016-05-19 2017-11-23 株式会社Nttドコモ 試験選択装置
JPWO2017199517A1 (ja) * 2016-05-19 2019-03-14 株式会社Nttドコモ 試験選択装置

Also Published As

Publication number Publication date
TW201610665A (zh) 2016-03-16
KR20150117584A (ko) 2015-10-20
KR102147172B1 (ko) 2020-08-31
TWI643064B (zh) 2018-12-01

Similar Documents

Publication Publication Date Title
US9990205B2 (en) System on chip and verification method thereof
US10877766B2 (en) Embedded scheduling of hardware resources for hardware acceleration
KR101392109B1 (ko) 시스템 관리 모드의 프로세서에 상태 스토리지를 제공하기 위한 장치, 방법 및 시스템
US8762599B2 (en) Delegating a poll operation to another device
BR102014006299A2 (pt) método para inicializar um sistema heterogêneo e apresentar uma vista simétrica do núcleo
EP1421490A1 (en) Methods and apparatus for improving throughput of cache-based embedded processors by switching tasks in response to a cache miss
US9317342B2 (en) Characterization of within-die variations of many-core processors
US10802742B2 (en) Memory access control
JP2008059300A (ja) マイクロコンピュータ
JP2007206933A (ja) 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法
JP2015201208A (ja) システムオンチップ及びその検証方法
TW200417914A (en) Interrupt-processing system for shortening interrupt latency in microprocessor
US20090187903A1 (en) Virtual multiprocessor system
US9043507B2 (en) Information processing system
US9378782B1 (en) Apparatus with write-back buffer and associated methods
US20060101306A1 (en) Apparatus and method of initializing processors within a cross checked design
US20240004454A1 (en) Control of power state in computer processor
CN111651379B (zh) Dax设备地址转换缓存方法及系统
KR20190095874A (ko) 제로 전력 상태로부터의 저 대기시간 부팅
JP2007026084A (ja) マイクロプロセッサ
JP2007026091A (ja) 割込み制御回路およびその制御方法
JP2004199630A (ja) データ処理装置
CN117063155A (zh) 检测卸载操作中的执行风险
CN113094098A (zh) 一种中断实时处理微架构
JP2007011642A (ja) プロセッサ

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20161222

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20161228