JP5473438B2 - テスト・ケース生成のための方法、情報処理システムおよびコンピュータ・プログラム - Google Patents

テスト・ケース生成のための方法、情報処理システムおよびコンピュータ・プログラム Download PDF

Info

Publication number
JP5473438B2
JP5473438B2 JP2009160076A JP2009160076A JP5473438B2 JP 5473438 B2 JP5473438 B2 JP 5473438B2 JP 2009160076 A JP2009160076 A JP 2009160076A JP 2009160076 A JP2009160076 A JP 2009160076A JP 5473438 B2 JP5473438 B2 JP 5473438B2
Authority
JP
Japan
Prior art keywords
processor
test case
loading
onto
test
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.)
Expired - Fee Related
Application number
JP2009160076A
Other languages
English (en)
Other versions
JP2010020766A (ja
Inventor
スニル・スレシ・ハティ
ビノッド・ブッサ
マーノィ・ドサナプディ
シャクティ・カプール
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010020766A publication Critical patent/JP2010020766A/ja
Application granted granted Critical
Publication of JP5473438B2 publication Critical patent/JP5473438B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、簡便でハイ・スループットのテスト・ケースの方法に関する。特に、本発明は、テスト・ケースの縮小されたセットを利用してプロセッサを効果的にテストするために、同種のプロセッサ間でテスト・ケースを交換することに関する。
プロセッサに対して最もストレスのかかるテスト・ケースを生成することを目的としたプロセッサ・テスト・ツールが複数ある。理論上、生成されたテスト・ケースは最大のテスト対象を実現するべきであり、種々のタイミング・シナリオのストレスをプロセッサにかけられるよう、十分に変わったものである必要がある。これらのツールの技術全体は、これらのテスト・ケースを構築する論理にある。
テスト・ケースを使用してプロセッサを検証および確認することには、典型的には、1)テスト・パターンの構築段階、2)テスト・パターンの実行段階、ならびに3)検証および確認段階の3段階が含まれる。本願明細書に記載される本発明は、テスト・パターン実行段階の間にテスト・ケースの縮小されたセットを利用することに関する。
テスト・ケース・マネジャが、複数のテスト・ケースから、第1テスト・ケースおよび第2テスト・ケースを選択する。テスト・ケース・マネジャは、第1テスト・ケースを第1プロセッサに提供し、第2テスト・ケースを第2プロセッサに提供する。次に、第1プロセッサは第1テスト・ケースを実行し、第2プロセッサは第2テスト・ケースを実行する。実行後、テスト・ケース・マネジャが第1テスト・ケースを第2プロセッサにロードし、第2テスト・ケースを第1プロセッサにロードすると、第1プロセッサは第2テスト・ケースを実行し、第2プロセッサは第1テスト・ケースを実行する。
前述のものは概要であり、したがって、必然的に、細部の単純化、一般化、および省略を含んでいる。その結果、当業者には当然のことながら、概要は一例にすぎず、制限することは全く意図されていない。特許請求の範囲によってのみ定義される本発明のその他の態様、発明特徴事項、および利点は、以下に記述する非限定的な詳細説明で明らかになる。
本願明細書に記載される方法を実装することができるデータ処理システムのブロック図である。 本願明細書に記載される方法が、ネットワーク化された環境で動作する幅広い種類の情報処理システム上で実行可能であることを示すよう、図1で示された情報処理システム環境の拡張を提供する。 システム・メモリを共有するメイン・プロセッサと、複数の補助プロセッサとを有する処理要素を示すブロック図である。 別々のプロセッサ上で実行する複数のテスト・ケース実行器(test case executor)に「n」テスト・ケースを与えるテスト・ケース・マネジャを示す図である。 プロセッサをさらにテストするために、同種のプロセッサ間でテスト・ケースを交換するテスト・ケース・マネジャを示す図である。 プロセッサ間でテスト・ケースを交換するためのラウンド・ロビン法を示す表である。 テスト・ケースの実行中に、キャッシュ・ライン・データを対応するキャッシュ・ラインにロードするプロセッサを示す図である。 プロセッサ間でのテスト・ケースの交換の結果として、専用プロセッサ・キャッシュ間でキャッシュ・データを移動させるキャッシュ論理を示す図である。 プロセッサ・システムに含まれるプロセッサ間でテスト・ケースを交換するのに経るステップを示す流れ図である。
本発明は、添付の図面を参照することによってより深く理解されると考えられ、本発明の数々の目的、特徴および利点が、当業者にとって明確となる。
本発明の種々の実施形態が完全に理解されるよう、具体的な特定の詳細事項が、以下の説明および図面に記載されている。なお、本発明の種々の実施形態を不必要に曖昧にすることを避けるため、コンピューティングおよびソフトウェアの技術に関連することの多い特定の周知の詳細事項は以下の開示に記載されない。さらに、当業者には当然のことながら、当業者は、以下に記載される詳細事項の1つ以上を伴わずに、本発明の他の実施形態を実践することができる。最後に、以下の開示では、ステップおよびシーケンスを参照して種々の方法が記載されるが、そのような記載は、本発明の実施形態の明確な実装を提供するためのものであり、ステップおよびステップのシーケンスは、本発明を実践するために必須であると受け止めてはならない。それどころか、以下は、本発明の例を詳細に説明することを意図しており、本発明そのものを制限するものとして受け止められるべきではない。むしろ、いくつもの変形物が、説明に続く特許請求の範囲により定義される本発明の範囲に入ると考えられる。
以下の詳細な説明は、全般的に上記の発明の概要に従うが、必要に応じて、本発明の種々の態様および実施形態の定義をさらに説明し、広げていく。この目的を達成するために、この詳細な説明はまず、本発明に関連するソフトウェアまたはハードウェア、あるいはその両方の技術を実装するのに適した、図1のコンピューティング環境について記載する。現代のコンピューティング技術が、複数の個別デバイスにまたがって実行可能であることを強調するために、図2には、基本的なコンピューティング環境の拡張として、ネットワーク化環境が示されている。
図1は、本願明細書に記載されるコンピューティング動作を実行することができるコンピュータ・システムの簡略化した例である、情報処理システム100を示す。情報処理システム100は、プロセッサ・インターフェース・バス112に連結された1つ以上のプロセッサ110を含む。プロセッサ・インターフェース・バス112は、プロセッサ110を、メモリ・コントローラ・ハブ(MCH:Memory Controller Hub)としても知られるノースブリッジ115に接続する。ノースブリッジ115は、システム・メモリ120に接続され、プロセッサ(単数または複数)110がシステム・メモリにアクセスする手段を提供する。グラフィックス・コントローラ125もノースブリッジ115に接続されている。一実施形態では、PCI Express(R)バス118が、ノースブリッジ115をグラフィックス・コントローラ125に接続するために使用されている。グラフィックス・コントローラ125は、コンピュータ用モニタなどの表示デバイス130に接続されている。
ノースブリッジ115およびサウスブリッジ135は、バス119を使用して互いに接続されている。一実施形態では、バスは、ノースブリッジ115とサウスブリッジ135との間で各方向に高速でデータを転送するダイレクト・メディア・インターフェース(DMI:Direct Media Interface)バスである。別の実施形態では、ペリフェラル・コンポーネント・インターコネクト(PCI:Peripheral Component Interconnect)バスが、ノースブリッジとサウスブリッジとの接続に使用される。I/Oコントローラ・ハブ(ICH:I/O Controller Hub)としても知られるサウスブリッジ135は、一般に、ノースブリッジによりもたらされる能力よりも低速で動作する能力を実装するチップである。典型的には、サウスブリッジ135は、種々のコンポーネントを接続するのに使用される種々のバスを提供する。これらのバスには、PCIおよびPCI Expressバス、ISAバス、システム管理バス(SMBusまたはSMB:System Management Bus)、少ピン数(LPC:Low Pin Count)バスが含まれ得る。LPCバスは、ブートROM196および「レガシー」I/Oデバイス(「スーパーI/O」チップを使用する)などの低帯域幅デバイスの接続に使用されることが多い。「レガシー」I/Oデバイス(198)には、シリアルおよびパラレル・ポート、キーボード、マウス、フレキシブル・ディスク・コントローラなどが含まれ得る。LPCバスは、サウスブリッジ135をトラステッド・プラットフォーム・モジュール(TPM:Trusted Platform Module)195に接続するのにも使用される。サウスブリッジ135に含まれることが多いその他のコンポーネントには、直接メモリ・アクセス(DMA:Direct Memory Access)コントローラ、プログラマブル・インタラプト・コントローラ(PIC:Programmable Interrupt Controller)、サウスブリッジ135をATAまたはUATAバス184を使用してハード・ディスク・ドライブなどの不揮発性記憶デバイス185に接続する、記憶デバイス・コントローラがある。
ExpressCard155は、ホットプラグ可能なデバイスを情報処理システムに接続するために使用されるスロットである。ExpressCard155は、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)およびPCI Expressバスの両方を使用してサウスブリッジ135に接続されているため、PCI ExpressとUSB接続性のどちらもサポートする。サウスブリッジ135は、USBに接続するデバイスにUSB接続性を提供するUSBコントローラ140を含む。これらのデバイスには、ウェブカメラ(カメラ)150、赤外線(IR:infrared)受信機148、ワイヤレス・パーソナル・エリア・ネットワーク(PAN:personal area network)を提供するBluetooth(R)デバイス146、キーボードおよびトラックパッド144、ならびに、マウス、取り外し可能な不揮発性記憶デバイス145、モデム、ネットワーク・カード、ISDNコネクタ、ファックス、プリンタ、USBハブおよびその他多様なUSB接続されるデバイスなど、その他多岐にわたる、USB接続されるUSBデバイス142がある。取り外し可能な不揮発性記憶デバイス145が、USB接続されたデバイスとして示されているが、取り外し可能な不揮発性記憶デバイス145は、Firewire(R)インターフェースなどの別のインターフェースを使用して接続することができるであろう。
ワイヤレス・ローカル・エリア・ネットワーク(LAN)デバイス175は、PCIまたはPCI Expressバス172を介してサウスブリッジ135に接続されている。LANデバイス175は、典型的には、情報処理システム100と、別のコンピュータ・システムまたはデバイスとの間でのワイヤレス通信に、すべてが同じプロトコルを使用する、無線変調技術のIEEE802.11標準のうちの1つを実装する。光学記憶デバイス190は、シリアルATA(SATA:Serial ATA)バス188を使用してサウスブリッジ135に接続されている。シリアルATAアダプタおよびデバイスは、高速シリアル・リンク上で通信する。シリアルATAバスは、サウスブリッジ135を、ハード・ディスク・ドライブなどの他の形態の記憶デバイスに接続するためにも使用される。サウンド・カードなどの音声回路(audio circuitry)160は、HDインターフェース158を介してサウスブリッジ135に接続されている。音声回路160は、音声入力(audio line−in)および光デジタル音声入力ポート(optical digital audio in port)162、光デジタル出力およびヘッドホン・ジャック164、内蔵スピーカ166、ならびに内蔵マイク168などの機能性を提供するために使用される。イーサネット(R)コントローラ170は、PCIまたはPCI Expressバスなどのバスを使用してサウスブリッジ135に接続されている。イーサネット・コントローラ170は、情報処理システム100を、ローカル・エリア・ネットワーク(LAN:Local Area Network)、インターネット、およびその他のパブリックまたはプライベート・コンピュータ・ネットワークなどのコンピュータ・ネットワークと接続するために使用される。
図1は1つの情報処理システムを示すが、情報処理システムは多数の形態をとり得る。例えば、情報処理システムは、デスクトップ、サーバ、ポータブル、ラップトップ、ノート型、もしくはその他のフォーム・ファクタのコンピュータまたはデータ処理システムの形態をとり得る。さらに、情報処理システムは、携帯情報端末(PDA:personal digital assistant)、ゲーム・デバイス、ATM機、携帯用電話デバイス、通信デバイス、またはプロセッサとメモリとを含んだその他のデバイスなど、その他のフォーム・ファクタをとることもできる。
セキュリティ機能を提供するよう図1に示され本願明細書に記載されているトラステッド・プラットフォーム・モジュール(TPM195)は、ハードウェア・セキュリティ・モジュール(HSM:hardware security module)の一例でしかない。したがって、本願明細書で説明され、特許請求の範囲に記載されるTPMは、次に限定はされないが、「Trusted Platform Module (TPM) Specification Version 1.2.」という題の、トラステッド・コンピューティング・グループ(TCG:Trusted Computing Groups)標準に準拠するハードウェア・セキュリティ・デバイスなど、任意の種類のHSMを含む。TPMは、図2で概説されているものなど、任意の数の情報処理システムに組み込まれてよいハードウェア・セキュリティ・サブシステムである。
図2は、本願明細書に記載される方法が、ネットワーク化環境で動作する幅広い種類の情報処理システム上で実行可能であることを示すために、図1に示されている情報処理システム環境の拡張を提供する。情報処理システムの種類は、ハンドヘルド・コンピュータ/移動電話210などの小型のハンドヘルド・デバイスから、メインフレーム・コンピュータ270などの大型メインフレーム・システムまで多岐にわたる。ハンドヘルド・コンピュータ210の例には、携帯情報端末(PDA)、MP3プレーヤ、携帯用テレビ、およびコンパクト・ディスク・プレーヤなどの個人用娯楽デバイスがある。情報処理システムの他の例には、ペン、すなわちタブレット・コンピュータ220、ラップトップ、すなわちノート型コンピュータ230、ワークステーション240、パーソナル・コンピュータ250、およびサーバ260がある。図2に個別に示されていない他の種類の情報処理システムは、情報処理システム280によって表される。図のように、コンピュータ・ネットワーク200を使用して、種々の情報処理システムをともにネットワーク化することが可能である。種々の情報処理システムを相互接続するために使用できるコンピュータ・ネットワークの種類には、ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ローカル・エリア・ネットワーク(WLAN)、インターネット、公衆交換電話網(PSTN:Public Switched Telephone Network)、その他のワイヤレス・ネットワーク、および情報処理システムを相互接続するために使用可能なその他任意のネットワーク・トポロジがある。情報処理システムの多くは、ハード・ドライブまたは不揮発性メモリ、あるいはその両方などの不揮発性データ・ストア(data store)を含む。図2に示されている情報処理システムの一部は、別々の不揮発性データ・ストアと共に示されている(サーバ260は不揮発性データ・ストア265と共に示され、メインフレーム・コンピュータ270は不揮発性データ・ストア275と共に示され、さらに情報処理システム280は不揮発性データ・ストア285と共に示されている)。不揮発性データ・ストアは、種々の情報処理システムに外付けされたコンポーネントとされてもよく、情報処理システムのうちの1つに内蔵されていてもよい。さらに、取り外し可能な不揮発性記憶デバイス145を情報処理システムのUSBポートまたはその他のコネクタに接続するなど、種々の技術を使用して、取り外し可能な不揮発性記憶デバイス145を2つ以上の情報処理システム間で共有することも可能である。
図3は、システム・メモリを共有するメイン・プロセッサと、複数の補助プロセッサとを有する処理要素を示すブロック図である。ブロードバンド構成要素アーキテクチャ(BEA:Broadband Element Architecture)305は、処理ユニット(PU:processing unit)310を含み、PU310は、一実施形態ではメイン・プロセッサとして機能し、オペレーティング・システムを実行する。PU310は、例えば、Linux(R)オペレーティング・システムを実行するPower PC(IBM社の登録商標)コアとしてもよい。ブロードバンド構成要素アーキテクチャ305は、相乗処理要素(SPE:synergistic processing element)345から385などの複数のSPEも含む。各SPEは、PU310に対する補助処理ユニットとして機能する相乗処理ユニット(SPU:synergistic processing unit)、メモリ記憶ユニット、およびローカル記憶装置を含む。例えば、SPE345は、SPU360、MMU355、およびローカル記憶装置359を含み、SPE365は、SPU370、MMU375、およびローカル記憶装置379を含み、SPE385は、SPU390、MMU395およびローカル記憶装置399を含む。
一実施形態では、SPEは、PU310の制御の下でデータを処理する。SPEは、例えば、デジタル信号処理コア、マイクロプロセッサ・コア、マイクロ・コントローラ・コアなどであってもよく、または、上記のコアの組み合わせであってもよい。一実施形態では、ローカル・ストアはそれぞれ、特定のSPUに関連づけられた記憶領域である。各SPUは、そのローカル・ストアを、プライベート記憶領域、共有記憶領域として構成することができるか、または、SPUのローカル・ストアは、部分的にプライベートとして部分的に共有されていてもよい。
例えば、SPUが相当な量のローカル・メモリを要求すると、SPUは、そのローカル・ストアの100%を、そのSPUにのみアクセス可能なプライベート・メモリに割り振ってもよい。その一方で、SPUがわずかな量のローカル・メモリを要求すれば、SPUはそのローカル・ストアの10%をプライベート・メモリに割り振り、残りの90%を共有メモリに割り振ってもよい。共有メモリにはPU310および他のSPEによるアクセスが可能である。SPUがいくらかのメモリに高速かつ確実に、そのような高速アクセスが必要なタスクを実行するときにアクセスできるよう、SPUは、そのローカル・ストアの一部を予約していてもよい。SPUはさらに、例えばSPUが暗号化/復号を実行する場合のように機密データを処理するとき、ローカル・ストアの一部をプライベートとして予約することもできる。
MMUは、SPUのローカル・ストアとシステム・メモリとの間でのデータ転送を担う。一実施形態では、MMUは、この機能を実行するよう構成された直接メモリ・アクセス(DMA)コントローラを含む。
各SPEは、異なるタスクを実行するようセットアップされていてもよく、その結果、一実施形態では、各SPEは異なる命令セットを使用してアクセスされてもよい。例えば、ブロードバンド構成要素アーキテクチャ305がワイヤレス通信システムで使用されていれば、各SPEは、変調、チップ・レート処理、符号化、ネットワーク・インターフェースなど、別々の処理タスクを担ってもよい。別の実施形態では、各SPEが同一の命令セットを有してもよく、並列処理が有益である動作を実行するために並行して使用されてもよい。
SPEのローカル・ストアの共有部分は、各共有部分をシステム・メモリ320にマッピングすることによって、PU310ならびに他のSPEによりアクセスされてもよい。一実施形態では、PU310は、共通のシステム・メモリ320のメモリ・マップを管理する。メモリ・マップ・テーブルは、PU310のL2キャッシュ315、システム・メモリ320、ならびにSPEの共有ローカル・ストアを含むとよい。
示されているシステム・メモリ320の一部分は、オペレーティング・システム(OS(operating system)325)により占有されている。システム・メモリ320は、PU310ならびに複数のSPEにより処理されるべきデータを表すマップ・メモリ340も含む。一実施形態では、PU上で実行しているプロセスは、大きなデータの処理を伴うタスクのリクエストを受け取る。PUはまず、タスクを実行する最適な方法、ならびに共通のシステム・メモリ320におけるデータの最適な配置を判断する。次にPUは、処理されるべきデータを、マップ・メモリ335からシステム・メモリ320へ転送し始めるとよい。一実施形態では、PUはSPEのレジスタのサイズのデータ・ブロックに、システム・メモリ320内のデータを整える。一実施形態では、SPEは128のレジスタを有し、各レジスタの長さは128ビットであってもよい。
続いて、PUは利用可能なSPEを探索し、データの複数ブロックを、データの処理のために任意の利用可能なSPEに割り当てる。SPEは、共通のシステム・メモリにアクセスし(例えばDMAコマンドによって)、データをSPEのローカル・ストアに転送し、割り当てられている動作を実行することが出来る。データの処理後、SPEはデータを共通のシステム・メモリ320に戻すとよい(例えば再びDMAを使用して)。この手順は、SPEが利用可能になるにつれて、すべてのデータ・ブロックが処理されるまで繰り返されるとよい。
図4は、別々のプロセッサ上で実行する複数のテスト・ケース実行器に、「n」テスト・ケースを提供するテスト・ケース・マネジャを示す図である。テスト・ケース・マネジャ400は、テスト・ケース0A 410、テスト・ケース1A 415、テスト・ケース2A 420、およびテスト・ケース3A 425をテスト・ケース実行器430に提供し、テスト・ケース0B 411、テスト・ケース1B 416、テスト・ケース2B 421、およびテスト・ケース3B 426をテスト・ケース実行器440に提供する。次に、テスト・ケース実行器430が、テスト・ケースをプロセッサA 450に送り、テスト・ケース実行器440が、テスト・ケースをプロセッサB 460に送る。実行中、プロセッサA 450およびプロセッサB 460は、バス470を介して、互いに通信してもよく、またはメイン・メモリ480から情報を読み出してもよい。一実施形態では、テスト・ケース・マネジャ400は、テスト・ケース実行器430に単一のテスト・ケースを提供し、別のテスト・ケースをテスト・ケース実行器440に提供する。
各テスト・ケースの実行後、テスト・ケース実行器430およびテスト・ケース実行器440は、レジスタ・エラー検出点検(register error detection check)を実行する。例えば、プロセッサA 450がテスト・ケース0Aを実行し、プロセッサB 460がテスト・ケース0B 411を実行した後、テスト・ケース実行器430およびテスト・ケース実行器440は、どちらも、それらのそれぞれのプロセッサからのハードウェア結果(hardware result)に基づき、ハードウェア・レジスタ・エラー検出点検値を計算し、計算した値をシミュレーション・レジスタ・エラー検出点検値と照合する。
プロセッサA 450が、その対応するテスト・ケースすべてを少なくとも1回実行し終え、プロセッサB 460がその対応するテスト・ケースすべてを実行し終えると、テスト・ケース実行器430および440はそれぞれ、メモリ・エラー検出点検のシミュレーション値に対する比較を実行し、比較値が一致しなければエラー・フラグを設定する。次に、テスト・ケース・マネジャ400は、プロセッサA 450とプロセッサB 460との間で、テスト・ケースをさらなる実行のために交換する(より詳しくは図5および対応する文章を参照)。
図5は、プロセッサをさらにテストするために、同種のプロセッサ間でテスト・ケースを交換するテスト・ケース・マネジャを示す図である。図5は、テスト・ケース・マネジャ400が、テスト・ケース0B 411〜3B 426をテスト・ケース実行器430にロードし、テスト・ケース0A 410〜3A 425をテスト・ケース実行器440にロードしていることを除いては、図4に似ている。結果として、プロセッサA 450はテスト・ケース0B 411〜3B 426を実行し、プロセッサBはテスト・ケース0A 410〜3A 425を実行する。これは図4で示した例の反対である。
一実施形態では、各プロセッサが最近のキャッシュ・ライン・データにアクセスできるように、キャッシュ論理が、プロセッサB 460専用のキャッシュ・ラインを、プロセッサA 450専用のキャッシュ・ラインにロードする(逆もまた同様)(より詳しくは、図7〜8および関連の文章を参照)。
図6は、プロセッサ間でテスト・ケースを交換するラウンド・ロビン法を示す表である。表600には、行610〜630があり、それぞれテスト・ケース循環ラウンド(test case rotation round)に対応する。表600には列640〜660もあり、それぞれ特定のプロセッサに対応する。
図に示すように、ラウンド1(行610)の間、プロセッサAはテスト・ケース1を実行し、プロセッサBはテスト・ケース2を実行し、プロセッサCはテスト・ケース3を実行する。各プロセッサがそれらの対応するテスト・ケースを少なくとも1回実行した後、テスト・ケース・マネジャはプロセッサ間でテスト・ケースを循環させる(交換する)。したがって、ラウンド2(行620)の間、プロセッサAはテスト・ケース2を実行し、プロセッサBはテスト・ケース3を実行し、プロセッサCはテスト・ケース1を実行する。
さらに、各プロセッサがそれらの対応するテスト・ケースを少なくとも1回実行した後、テスト・ケース・マネジャはプロセッサ間でテスト・ケースを循環させる(交換する)。次に、ラウンド3(行630)の間、プロセッサAはテスト・ケース3を実行し、プロセッサBはテスト・ケース1を実行し、プロセッサCはテスト・ケース2を実行する。当業者には当然のことながら、ラウンド・ロビン法以外の手法が、プロセッサ間でテスト・ケースを交換するために使用されてもよい。
図7は、テスト・ケースの実行中に、キャッシュ・ライン・データを対応するキャッシュ・ラインにロードするプロセッサを示す図である。プロセッサA 730およびプロセッサB 735は、同種のプロセッサである。図7は、テスト・ケースA 720がプロセッサA 730にロードされ、テスト・ケースB 725がプロセッサB 735にロードされることを示している。
プロセッサA 730がテスト・ケースA 720を実行しているときに、プロセッサA 730は、バス760を介してメイン・メモリ770からデータをフェッチし、そのデータをプロセッサAのキャッシュ740(ライン742〜746)へロードする。同じく、プロセッサB 735がテスト・ケースB 725を実行しているときに、プロセッサB 735は、バス760を介してメイン・メモリ770からデータをフェッチし、そのデータをプロセッサBのキャッシュ750(ライン752〜756)へロードする。
各プロセッサは、テスト・ケースの実行中に、それらの対応するキャッシュ・ラインを変更するとよい。結果として、テスト・ケースがプロセッサ間で交換されて実行が開始すると、プロセッサが最近のキャッシュ・データにアクセスできるよう、キャッシュ論理はキャッシュ・ライン・データを1つのプロセッサの専用キャッシュから別のプロセッサの専用キャッシュへ移動させる(より詳しくは、図8および関連の文章を参照)。
図8は、プロセッサ間でテスト・ケースを交換した結果として、専用プロセッサ・キャッシュ間でキャッシュ・データを移動させるキャッシュ論理を示す図である。プロセッサA 730は、前にテスト・ケースA 725を実行しており、プロセッサBは、前にテスト・ケースB 720を実行している(図7参照)。その際に、各プロセッサはメイン・メモリ770からデータを読み出し、それぞれのキャッシュ740および750へそのデータをロードした。テスト・ケースの実行中、プロセッサA 730およびB735はそれぞれ、プロセッサAのキャッシュ740およびプロセッサBのキャッシュ750に含まれるデータを変更している。
図8は、その後に、テスト・ケースA 725およびテスト・ケースB720がプロセッサA 730とB 735との間で交換された状態を示す。プロセッサA 730およびB 735がそれらの新たなテスト・ケースを実行し始めると、キャッシュ論理は、プロセッサA 730がもともとキャッシュ・ライン756にあったデータを必要としており、プロセッサB 735がもともとキャッシュ・ライン744にあったデータを必要としていると検出する。次に、キャッシュ論理は、テスト・ケースB 720により必要とされるデータを、プロセッサBのキャッシュ750からプロセッサAのキャッシュ740へと移動させる。さらに、キャッシュ論理は、テスト・ケースA 725により必要とされるデータを、プロセッサAのキャッシュ740からプロセッサBのキャッシュ750へと移動させる。結果として、プロセッサA 730は、テスト・ケースB 720を十分に実行でき、プロセッサB 735は、テスト・ケースA 725を十分に実行できる。
一実施形態では、上記の、専用キャッシュ・ライン間で移動されたデータと同様に、アドレス・トランスレーション・ライン(address translation lines)が、専用トランスレーション・ルックアサイド・バッファ(TLB:translation lookaside buffer)間で移動される。この実施形態では、TLBの論理が、交換後にアドレス変換ラインを無効化およびフラッシュするときにテストされる。
図9は、プロセッサ・システムに含まれるプロセッサ間でテスト・ケースを交換する際にとられるステップを示す流れ図である。処理は900で開始し、開始すると、処理はシステムに含まれる各プロセッサに対してテスト・ケースを選択する。例えば、システムは4つのプロセッサを含んでもよく、その場合処理は4つの異なるテスト・ケースを選択する。
ステップ920で、処理は、選択したテスト・ケースをそれらの対応するプロセッサを利用して同時に実行する。上述の例を使用すれば、処理は第1テスト・ケースを第1プロセッサ上で、第2テスト・ケースを第2プロセッサ上で実行するなどである。テスト・ケースを同じプロセッサ上で実行するかどうかについて判断が下される(決定930)。例えば、処理は特定のテスト・ケースを特定のプロセッサ上で10反復連続して実行するよう構成されていてもよい。
処理が、同じプロセッサでテスト・ケースを実行すべきであれば、処理は「はい」の分岐932へと分かれ、これはループ・バックしてテスト・ケースを再実行する。ループは、処理がテスト・ケースを同じプロセッサ上で実行すべきでなくなるまで継続し、実行すべきでなくなったところで、決定930は「いいえ」の分岐938へと分かれる。
プロセッサ間でテスト・ケースを交換するかどうかについて判断が下される(決定940)。例えば、処理は、第1テスト・ケースを第2プロセッサ上にロードし、第2テスト・ケースを第3プロセッサ上にロードするなど、ラウンド・ロビン法でテスト・ケースを交換することを望んでもよい。処理がテスト・ケースを交換するべきであれば、決定940は、「はい」の分岐942に分かれる。すると、処理はテスト・ケースを交換して(ステップ950)テスト・ケースを異なるプロセッサ上で実行する。一方、処理がテスト・ケースを交換すべきでなければ、決定940は「いいえ」の分岐948へと別れ、そうすると、処理は960で終了する。
本発明の好適な実装の1つは、クライアント・アプリケーション、すなわち、例えばコンピュータのランダム・アクセス・メモリに常駐していてもよいコード・モジュール内の命令セット(プログラム・コード)またはその他の機能的記述情報(functional descriptive material)である。コンピュータに要求されるまで、命令セットは、例えばハード・ディスク・ドライブなどの別のコンピュータ・メモリ、または光ディスク(最終的にCD ROMにおいて使用される)もしくはフレキシブル・ディスクなどの取り外し可能なもの(最終的にフレキシブル・ディスク・ドライブにおいて使用される)に格納されているとよい。したがって、本発明は、コンピュータ用のコンピュータ・プログラム製品として実装されてもよい。さらに、記載されている種々の方法は、便宜上、ソフトウェアによって選択的に有効化または再設定される汎用コンピュータに実装されているが、このような方法は、ハードウェアにおいて、ファームウェアにおいて、または必要な方法ステップを実行するべく構築された、より特化した装置において実施することができるということも、当業者には当然のことである。機能的記述情報は、機能性を機械に与える情報である。機能的記述情報は、次に限定されるものではないが、コンピュータ・プログラム、命令、ルール、ファクト(fact)、計算可能関数の定義、オブジェクト、データ構造を含む。
本発明の特定の実施形態を示し説明したが、当業者には当然のことながら、本願明細書の教示に基づき、本発明およびそのより広範な態様から逸脱することなく、改変することおよび変更を加えることができる。したがって、添付の特許請求の範囲は、そのような改変および変更すべてを、本発明の真の意図および範囲内にあるものとしてその範囲内に含むものとする。さらに、当然のことながら、本発明は添付の特許請求の範囲のみによって定義される。当業者には当然のことながら、導入される、請求項の構成要素の特定数が意図される場合、そのような意図は請求項内で明確に述べられ、そのように述べられていなければ、そのような限定は存在しない。理解するための支援として、非限定的な例を挙げると、以下の添付の特許請求の範囲は、請求項の構成要素を導入するために、前置き表現「少なくとも1つの」および「1つ以上の」の利用を含む。しかし、そのような表現の使用は、不定冠詞「a」または「an」による請求項の構成要素の導入が、当該の導入された請求項の構成要素を含む特定の請求項を、当該構成要素を1つのみ含む発明に制限することを意味すると解釈されるべきではない。これは、同じ請求項が前置き表現「1つ以上の」または「少なくとも1つの」と、「a」または「an」などの不定冠詞とを含む場合であっても同じである。請求項における定冠詞の使用についても同じことが言える。

Claims (15)

  1. 機械に実装される方法であって、
    複数のテスト・ケースから第1テスト・ケースを選択するステップと、
    前記複数のテスト・ケースから第2テスト・ケースを選択するステップと、
    前記第1テスト・ケースを第1プロセッサ上で実行し、前記第2テスト・ケースを第2プロセッサ上で実行するステップと、
    前記実行後に、前記第1テスト・ケースを前記第2プロセッサ上にロードし、前記第2テスト・ケースを前記第1プロセッサ上にロードするステップと、
    前記第1テスト・ケースを前記第2プロセッサ上で実行し、前記第2テスト・ケースを前記第1プロセッサ上で実行するステップと、
    前記第1テスト・ケースを前記第2プロセッサ上にロードし、前記第2テスト・ケースを前記第1プロセッサ上にロードするステップの後に、TLBの論理をテストするステップと、
    前記TLBの論理のテスト結果に応じて、アドレス・トランスレーション・ラインを、前記第1プロセッサ及び前記第2プロセッサそれぞれの専用トランスレーション・ルックアサイド・バッファ間で移動するステップと、
    を含む前記方法。
  2. 前記第1テスト・ケースおよび前記第2テスト・ケースは、同時に実行する、請求項1に記載の方法。
  3. 前記第1プロセッサ上で前記第1テスト・ケースを前記実行する間に、メイン・メモリから、前記第1プロセッサに対応する第1キャッシュ内の第1キャッシュ・ラインへ、第1セットのデータをロードするステップと、
    前記第2プロセッサ上で前記第2テスト・ケースを前記実行する間に、前記メイン・メモリから、前記第2プロセッサに対応する第2キャッシュ内の第2キャッシュ・ラインへ、第2セットのデータをロードするステップと、
    前記第1プロセッサ上で前記第1テスト・ケースを実行するのに応答して前記第1セットのデータを変更し、前記第2プロセッサ上で前記第2テスト・ケースを実行するのに応答して前記第2セットのデータを変更するステップと、
    をさらに含む、請求項1に記載の方法。
  4. 前記第1テスト・ケースを前記第2プロセッサ上にロードし、前記第2テスト・ケースを前記第1プロセッサ上にロードするステップの後に、前記第1セットのデータおよび前記第2セットのデータの前記変更を検出するステップと、
    前記検出に応答して、前記変更済みの第1セットのデータを、前記第1キャッシュ・ラインから前記第2キャッシュへロードし、前記変更済みの第2セットのデータを、前記第2キャッシュ・ラインから前記第1キャッシュへロードするステップと、
    をさらに含む、請求項3に記載の方法。
  5. 前記検出は、ミス論理、スヌーピング論理、フラッシュ論理、および無効化論理から成る群から選択されるキャッシュ論理により実行される、請求項4に記載の方法。
  6. 前記複数のテスト・ケースから第3テスト・ケースを選択するステップと、
    前記第1プロセッサ上での前記第1テスト・ケースの前記実行および前記第2プロセッサ上での前記第2テスト・ケースの前記実行と同時に、前記第3テスト・ケースを第3プロセッサ上で実行するステップと、
    前記第1テスト・ケースを前記第2プロセッサ上にロードさせ、前記第2テスト・ケースを前記第3プロセッサ上にロードさせ、前記第3テスト・ケースを前記第1プロセッサ上にロードさせる、第1循環を呼び出すステップと、
    前記第1循環の後に、前記第1テスト・ケースを前記第2プロセッサ上で実行し、前記第2テスト・ケースを前記第3プロセッサ上で実行し、前記第3テスト・ケースを前記第1プロセッサ上で実行するステップと、
    前記第1テスト・ケースを前記第3プロセッサ上にロードさせ、前記第2テスト・ケースを前記第1プロセッサ上にロードさせ、前記第3テスト・ケースを前記第2プロセッサ上にロードさせる、第2循環を呼び出すステップと、
    前記第2循環の後に、前記第1テスト・ケースを前記第3プロセッサ上で実行し、前記第2テスト・ケースを前記第1プロセッサ上で実行し、前記第3テスト・ケースを前記第2プロセッサ上で実行するステップと、
    をさらに含む、請求項1に記載の方法。
  7. 前記第1プロセッサ、前記第2プロセッサおよび前記第3プロセッサは同種である、請求項6に記載の方法。
  8. 1つ以上のプロセッサと、
    前記プロセッサのうちの少なくとも1つによってアクセス可能なメモリと、
    前記プロセッサのうちの少なくとも1つによってアクセス可能な不揮発性記憶領域と、 以下のアクション:
    複数のテスト・ケースから第1テスト・ケースを選択すること、
    前記複数のテスト・ケースから第2テスト・ケースを選択すること、
    前記第1テスト・ケースを第1プロセッサ上で実行し、前記第2テスト・ケースを第2プロセッサ上で実行すること、
    前記実行後に、前記第1テスト・ケースを前記第2プロセッサ上にロードし、前記第2テスト・ケースを前記第1プロセッサ上にロードすること、および
    前記第1テスト・ケースを前記第2プロセッサ上で実行し、前記第2テスト・ケースを前記第1プロセッサ上で実行すること
    前記第1テスト・ケースを前記第2プロセッサ上にロードし、前記第2テスト・ケースを前記第1プロセッサ上にロードするステップの後に、TLBの論理をテストすること、
    前記TLBの論理のテスト結果に応じて、アドレス・トランスレーション・ラインを、前記第1プロセッサ及び前記第2プロセッサそれぞれの専用トランスレーション・ルックアサイド・バッファ間で移動すること
    を実行するために、前記メモリに格納され、前記プロセッサのうちの少なくとも1つにより実行される、命令セットと、
    を含む、情報処理システム。
  9. 前記第1テスト・ケースおよび前記第2テスト・ケースは、同時に実行する、請求項8に記載の情報処理システム。
  10. 前記命令セットは、以下のアクション:
    前記第1プロセッサ上で前記第1テスト・ケースを前記実行する間に、メイン・メモリから、前記第1プロセッサに対応する第1キャッシュ内の第1キャッシュ・ラインへ、第1セットのデータをロードすること、
    前記第2プロセッサ上で前記第2テスト・ケースを前記実行する間に、前記メイン・メモリから、前記第2プロセッサに対応する第2キャッシュ内の第2キャッシュ・ラインへ、第2セットのデータをロードすること、および
    前記第1プロセッサ上で前記第1テスト・ケースを実行するのに応答して前記第1セットのデータを変更し、前記第2プロセッサ上で前記第2テスト・ケースを実行するのに応答して前記第2セットのデータを変更すること、
    を実行する、請求項8に記載の情報処理システム。
  11. 前記命令セットは、以下のアクション:
    前記第1テスト・ケースを前記第2プロセッサ上にロードし、前記第2テスト・ケースを前記第1プロセッサ上にロードした後に、前記第1セットのデータおよび前記第2セットのデータの前記変更を検出すること、および
    前記検出に応答して、前記変更済みの第1セットのデータを、前記第1キャッシュ・ラインから前記第2キャッシュへロードし、前記変更済みの第2セットのデータを、前記第2キャッシュ・ラインから前記第1キャッシュへロードすること、
    を実行する、請求項10に記載の情報処理システム。
  12. 前記検出は、ミス論理、スヌーピング論理、フラッシュ論理、および無効化論理から成る群から選択されるキャッシュ論理により実行される、請求項11に記載の情報処理システム。
  13. 前記命令セットは、以下のアクション:
    前記複数のテスト・ケースから第3テスト・ケースを選択すること、
    前記第1プロセッサ上での前記第1テスト・ケースの前記実行および前記第2プロセッサ上での前記第2テスト・ケースの前記実行と同時に、前記第3テスト・ケースを第3プロセッサ上で実行すること、
    前記第1テスト・ケースを前記第2プロセッサ上にロードさせ、前記第2テスト・ケースを前記第3プロセッサ上にロードさせ、前記第3テスト・ケースを前記第1プロセッサ上にロードさせる、第1循環を呼び出すこと、
    前記第1循環の後に、前記第1テスト・ケースを前記第2プロセッサ上で実行し、前記第2テスト・ケースを前記第3プロセッサ上で実行し、前記第3テスト・ケースを前記第1プロセッサ上で実行すること、
    前記第1テスト・ケースを前記第3プロセッサ上にロードさせ、前記第2テスト・ケースを前記第1プロセッサ上にロードさせ、前記第3テスト・ケースを前記第2プロセッサ上にロードさせる、第2循環を呼び出すこと、
    前記第2循環の後に、前記第1テスト・ケースを前記第3プロセッサ上で実行し、前記第2テスト・ケースを前記第1プロセッサ上で実行し、前記第3テスト・ケースを前記第2プロセッサ上で実行すること、
    を実行する、請求項8に記載の情報処理システム。
  14. 前記第1プロセッサ、前記第2プロセッサおよび前記第3プロセッサは同種である、請求項13に記載の情報処理システム。
  15. コンピュータに、
    複数のテスト・ケースから第1テスト・ケースを選択するステップと、
    前記複数のテスト・ケースから第2テスト・ケースを選択するステップと、
    前記第1テスト・ケースを第1プロセッサ上で実行し、前記第2テスト・ケースを第2プロセッサ上で実行するステップと、
    前記実行後に、前記第1テスト・ケースを前記第2プロセッサ上にロードし、前記第2テスト・ケースを前記第1プロセッサ上にロードするステップと、
    前記第1テスト・ケースを前記第2プロセッサ上で実行し、前記第2テスト・ケースを前記第1プロセッサ上で実行するステップと、
    前記第1テスト・ケースを前記第2プロセッサ上にロードし、前記第2テスト・ケースを前記第1プロセッサ上にロードするステップの後に、TLBの論理をテストするステップと、
    前記TLBの論理のテスト結果に応じて、アドレス・トランスレーション・ラインを、前記第1プロセッサ及び前記第2プロセッサそれぞれの専用トランスレーション・ルックアサイド・バッファ間で移動するステップと、
    を実行させる、コンピュータ・プログラム。
JP2009160076A 2008-07-14 2009-07-06 テスト・ケース生成のための方法、情報処理システムおよびコンピュータ・プログラム Expired - Fee Related JP5473438B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/172595 2008-07-14
US12/172,595 US7966521B2 (en) 2008-07-14 2008-07-14 Light weight and high throughput test case generation methodology for testing cache/TLB intervention and diagnostics

Publications (2)

Publication Number Publication Date
JP2010020766A JP2010020766A (ja) 2010-01-28
JP5473438B2 true JP5473438B2 (ja) 2014-04-16

Family

ID=41506190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009160076A Expired - Fee Related JP5473438B2 (ja) 2008-07-14 2009-07-06 テスト・ケース生成のための方法、情報処理システムおよびコンピュータ・プログラム

Country Status (4)

Country Link
US (1) US7966521B2 (ja)
JP (1) JP5473438B2 (ja)
KR (1) KR101054231B1 (ja)
TW (1) TW201015545A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398515B2 (en) * 2003-07-16 2008-07-08 International Business Machines Corporation Buckets of commands in a multiprocessor-based verification environment
US8621305B2 (en) * 2010-07-08 2013-12-31 Honeywell International Inc. Methods systems and apparatus for determining whether built-in-test fault codes are indicative of an actual fault condition or a false alarm
KR102026662B1 (ko) * 2013-04-22 2019-09-30 삼성전자 주식회사 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치
US9287005B2 (en) 2013-12-13 2016-03-15 International Business Machines Corporation Detecting missing write to cache/memory operations
US9892060B2 (en) 2015-12-02 2018-02-13 International Business Machines Corporation Identifying stale entries in address translation cache
US9612929B1 (en) * 2016-01-13 2017-04-04 International Business Machines Corporation Efficient validation/verification of coherency and snoop filtering mechanisms in computing systems

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4357656A (en) * 1977-12-09 1982-11-02 Digital Equipment Corporation Method and apparatus for disabling and diagnosing cache memory storage locations
US4800486A (en) * 1983-09-29 1989-01-24 Tandem Computers Incorporated Multiple data patch CPU architecture
JPS6298437A (ja) * 1985-10-24 1987-05-07 Oki Electric Ind Co Ltd マイクロコンピユ−タ
GB2278213A (en) * 1993-05-18 1994-11-23 Ibm Test program generator.
US5488573A (en) * 1993-09-02 1996-01-30 Matsushita Electric Industrial Co., Ltd. Method for generating test programs
JPH08272683A (ja) * 1995-03-29 1996-10-18 Fujitsu Ltd キャッシュメモリの動作試験方法および動作試験システム
JPH0973435A (ja) * 1995-09-04 1997-03-18 Hitachi Ltd 密結合マルチプロセッサシステムの試験システム
JPH11184828A (ja) * 1997-12-22 1999-07-09 Hitachi Ltd マルチプロセッサシステムのテスト方式
US6182246B1 (en) * 1999-01-21 2001-01-30 Bsquare Corporation Protocol acknowledgment between homogeneous system
GB2353610A (en) * 1999-08-21 2001-02-28 Ibm Computerised testcase management system
US6871298B1 (en) * 1999-11-12 2005-03-22 Obsidian Software, Inc. Method and apparatus that simulates the execution of paralled instructions in processor functional verification testing
US7590973B1 (en) * 2000-06-30 2009-09-15 Microsoft Corporation Systems and methods for gathering, organizing and executing test cases
US6684359B2 (en) * 2000-11-03 2004-01-27 Verisity Ltd. System and method for test generation with dynamic constraints using static analysis
ATE313847T1 (de) * 2001-06-20 2006-01-15 Broadcom Corp Selbsttest-schaltung für cache-speicher
US7240243B2 (en) * 2002-03-28 2007-07-03 International Business Machines Corporation System and method for facilitating programmable coverage domains for a testcase generator
US20040078699A1 (en) * 2002-09-18 2004-04-22 Thompson Ryan C. System for preventing translation lookaside buffer conflicts when generating and merging computer architecture test cases
US7010734B2 (en) * 2002-10-21 2006-03-07 Sun Microsystems, Inc. Method for microprocessor test insertion reduction
US7133816B2 (en) * 2002-11-04 2006-11-07 International Business Machines Corporation Test quality through resource reallocation
US7174554B2 (en) * 2002-12-20 2007-02-06 Microsoft Corporation Tools and methods for discovering race condition errors
US7080126B2 (en) * 2003-02-28 2006-07-18 Bea Systems, Inc. Computer program product for performing resource pool maintenance by maintaining resources in several deques
US20060015689A1 (en) * 2004-07-15 2006-01-19 International Business Machines Corporation Implementation and management of moveable buffers in cache system
US7457989B2 (en) * 2004-09-29 2008-11-25 Microsoft Corporation System and method for selecting test case execution behaviors for reproducible test automation
US7356436B2 (en) * 2005-02-02 2008-04-08 International Business Machines Corporation Method, system, and storage medium for estimating and improving test case generation
US7386778B2 (en) * 2005-10-20 2008-06-10 Jon Udell Methods for distributing programs for generating test data
US7765450B2 (en) * 2005-10-20 2010-07-27 Jon Udell Methods for distribution of test generation programs
US7849362B2 (en) * 2005-12-09 2010-12-07 International Business Machines Corporation Method and system of coherent design verification of inter-cluster interactions
US7814378B2 (en) * 2007-05-18 2010-10-12 Oracle America, Inc. Verification of memory consistency and transactional memory
US7797650B2 (en) * 2007-09-11 2010-09-14 International Business Machines Corporation System and method for testing SLB and TLB cells during processor design verification and validation
US7752499B2 (en) * 2007-09-11 2010-07-06 International Business Machines Corporation System and method for using resource pools and instruction pools for processor design verification and validation
US7669083B2 (en) * 2007-09-11 2010-02-23 International Business Machines Corporation System and method for re-shuffling test case instruction orders for processor design verification and validation
US7836343B2 (en) * 2008-03-03 2010-11-16 International Business Machines Corporation Method and apparatus for reducing test case generation time in processor testing

Also Published As

Publication number Publication date
TW201015545A (en) 2010-04-16
KR101054231B1 (ko) 2011-08-08
US7966521B2 (en) 2011-06-21
KR20100007719A (ko) 2010-01-22
JP2010020766A (ja) 2010-01-28
US20100011248A1 (en) 2010-01-14

Similar Documents

Publication Publication Date Title
US10942737B2 (en) Method, device and system for control signalling in a data path module of a data stream processing engine
US9229730B2 (en) Multi-chip initialization using a parallel firmware boot process
US7254676B2 (en) Processor cache memory as RAM for execution of boot code
US7797650B2 (en) System and method for testing SLB and TLB cells during processor design verification and validation
US8099559B2 (en) System and method for generating fast instruction and data interrupts for processor design verification and validation
JP5473438B2 (ja) テスト・ケース生成のための方法、情報処理システムおよびコンピュータ・プログラム
US9405552B2 (en) Method, device and system for controlling execution of an instruction sequence in a data stream accelerator
US9384352B2 (en) Trusted boot and runtime operation
US10311236B2 (en) Secure system memory training
US20090024877A1 (en) System and Method for Creating Different Start Cache and Bus States Using Multiple Test Patterns for Processor Design Verification and Validation
CN114580344A (zh) 测试激励生成方法、验证方法、验证系统及相关设备
US20090070570A1 (en) System and Method for Efficiently Handling Interrupts
US9047264B2 (en) Low pin count controller
EP3884386A1 (en) Programming and controlling compute units in an integrated circuit
JP7287947B2 (ja) ダイレクト・メモリ・アドレス変換の効率的なテストのための集積回路、およびコンピュータ実装方法
US8806153B2 (en) Partial line cache write injector for direct memory access write
US7502913B2 (en) Switch prefetch in a multicore computer chip
US8417735B1 (en) Instruction-efficient algorithm for parallel scan using initialized memory regions to replace conditional statements
US7765362B2 (en) Efficient system bootstrap loading
Manian et al. OMB-UM: Design, implementation, and evaluation of CUDA unified memory aware MPI benchmarks
US11157285B2 (en) Dynamic modification of instructions that do not modify the architectural state of a processor
US9830154B2 (en) Method, apparatus and system for data stream processing with a programmable accelerator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140204

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees