JP6326705B2 - Test, verification and debug architecture program and method - Google Patents

Test, verification and debug architecture program and method Download PDF

Info

Publication number
JP6326705B2
JP6326705B2 JP2016226340A JP2016226340A JP6326705B2 JP 6326705 B2 JP6326705 B2 JP 6326705B2 JP 2016226340 A JP2016226340 A JP 2016226340A JP 2016226340 A JP2016226340 A JP 2016226340A JP 6326705 B2 JP6326705 B2 JP 6326705B2
Authority
JP
Japan
Prior art keywords
test
layer
dfx
access
processor
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
JP2016226340A
Other languages
Japanese (ja)
Other versions
JP2017076412A (en
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Priority to JP2016226340A priority Critical patent/JP6326705B2/en
Publication of JP2017076412A publication Critical patent/JP2017076412A/en
Application granted granted Critical
Publication of JP6326705B2 publication Critical patent/JP6326705B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、コンピュータシステムに関し、特に、コンピュータシステムに対するテスト及びデバッグの基盤(infrastructure)を提供することに関する。   The present invention relates to computer systems, and in particular to providing a test and debug infrastructure for computer systems.

半導体プロセス及びロジック設計の技術の発展に伴い、より多くの数のロジックを集積回路(IC)デバイスに組み込むことができるようになってきた。その結果、コンピュータシステムは、システム内に1つの集積回路を含む構成から、複数の集積回路を含む構成へと発展し、複数のコア、複数のハードウェアスレッド及び複数の論理プロセッサが、個々の集積回路に存在し、このようなプロセッサ内にその他のインターフェースも集積されるようになっている。典型的なプロセッサ又は集積回路は、1つの物理的プロセッサダイを含み、プロセッサダイは、いかなる数のコア、ハードウェアスレッド、論理プロセッサ、インターフェース、メモリ、制御ハブ等を含んでもよい。プロセッサ及びコンピュータシステムの両方が複雑になるに従い、これらシステムのテスト及びデバッグも複雑になってきている。   With the development of semiconductor process and logic design techniques, it has become possible to incorporate a greater number of logic into integrated circuit (IC) devices. As a result, computer systems have evolved from configurations that include one integrated circuit within the system to configurations that include multiple integrated circuits, where multiple cores, multiple hardware threads, and multiple logical processors are integrated into individual integrated circuits. Other interfaces exist in the circuit and are integrated within such a processor. A typical processor or integrated circuit includes one physical processor die, which may include any number of cores, hardware threads, logical processors, interfaces, memories, control hubs, and the like. As both processors and computer systems become more complex, testing and debugging of these systems has become more complex.

高速・大容量のロジック及び小型化の傾向又はプロセッサの小型化が進むにしたがい、スケジュール通りにコストの掛からない態様で、製品をデバッグ、検証及び発売することが難しくなってきている。現在、テスト及びデバッグの世界は、製造側と消費者/ベンダー側とに二分されており、製造側は、供給するシリコンデバイスに注力し、ベンダー側は、シリコンデバイスと共に集積されるその他のパーツに注力している。シリコンデバイスを悪意を持った損傷及び事故による損傷から守るために、製造側は、ハードウェアのデバッグフックをいかなるレベルにおいてもベンダーに対して公開していないが、これは、このようなアクセスを提供するのに安全な方法が存在しないからである。コンピュータシステムのテストの複雑性が増すにつれ、発見される問題が、製造デバイスに直接関係のないものであっても、製造側は、検証に多額のお金と努力を費やしている。さらに、システム内の異なるデバイス毎(プロセッサ、制御ハブ、グラフィックスデバイス、マザーボード等)に、固有のテスト及びデバッグが行われている場合がある。このように、デバイス毎に異なるテスト/デバッグが行われていることにより、製品の検証に混乱と遅れが生じているまた、従来のプローブを使用するテスト方法は、新型の集積回路の物理的なサイズ制限により、難しくなっている。   As high-speed, large-capacity logic and miniaturization trends or processor miniaturization progress, it is becoming difficult to debug, verify, and release products in a manner that does not cost as scheduled. Currently, the world of testing and debugging is divided into two parts: the manufacturing side and the consumer / vendor side, where the manufacturing side focuses on the silicon devices that it supplies and the vendor side focuses on other parts that are integrated with the silicon devices. I am focusing. In order to protect silicon devices from malicious damage and accidental damage, manufacturers do not expose hardware debug hooks to vendors at any level, but this provides such access This is because there is no safe way to do this. As the complexity of testing computer systems increases, manufacturers are spending a lot of money and effort on verification, even if the problems found are not directly related to the manufacturing device. In addition, unique tests and debugs may be performed on different devices in the system (processor, control hub, graphics device, motherboard, etc.). In this way, different tests / debugs are performed for each device, resulting in confusion and delay in product verification. In addition, the test method using the conventional probe is based on the physical characteristics of the new integrated circuit. It becomes difficult due to size restrictions.

さらに、製造側かベンダー側かに関わらず、外部のロジック分析器及びオシロスコープのような検証行う道具は、非常に高価であり、また、訓練された従業員であっても道具を接続し、検証を行うべく正しく使用するのにも時間が掛かる。さらに、これら検証を行うための外部の道具は、相互接続において交換されるプロトコルを把握することができるだけであり、デバイスの相互接続及び状態を完全に解明するのは難しかった。   In addition, verification tools such as external logic analyzers and oscilloscopes, regardless of manufacturing or vendor side, are very expensive, and even trained employees can connect and verify the tools. It takes time to use it correctly. Furthermore, external tools for performing these verifications can only grasp the protocols exchanged in the interconnection, and it has been difficult to fully elucidate the interconnection and state of the devices.

現在のコンピュータシステムは、多大なお金及び時間を掛けずに、特定の条件下における異なるシステムイベントを検証する方法を提供していない。具体的な例としては、デバイス内部の信号、軌跡又は状態の追跡、ブートプロセスの初期段階における信号の追跡、インバンドメッセージとして統合されているハングイベントのような特定のイベントの判断、新しい高速内部メモリ及び入出力(I/O)トラフィック及び/又はプロトコルの把握等が挙げられる。基本的に、現在のところ、様々な方向(プロセッサテスト検証、プラットフォームデバッグ、電気的な境界、マザーボードの診断等)にわたって検証を行う統合された効果的な方法が存在しない。   Current computer systems do not provide a way to validate different system events under certain conditions without spending a great deal of money and time. Specific examples include device internal tracking, trajectory or state tracking, signal tracking early in the boot process, determination of specific events such as hang events integrated as in-band messages, new fast internal Examples include memory and input / output (I / O) traffic and / or protocol tracking. Basically, there is currently no integrated and effective way to perform verification across various directions (processor test verification, platform debugging, electrical boundaries, motherboard diagnostics, etc.).

本発明は、以下に示す例によって説明され、添付の図面によって限定されることを意図していない。   The present invention is illustrated by the following examples and is not intended to be limited by the accompanying drawings.

マルチ処理要素プロセッサの論理的表現の一実施形態示した図である。FIG. 6 illustrates one embodiment of a logical representation of a multi-processing element processor. マルチ処理要素プロセッサの論理的表現の別の実施形態示した図である。FIG. 6 illustrates another embodiment of a logical representation of a multi-processing element processor. 階層構造を有するテストアーキテクチャの論理的表現の一実施形態を示した図である。FIG. 2 illustrates one embodiment of a logical representation of a test architecture having a hierarchical structure. DFx機能の実施形態の一例を有する複数のプロセッサを含むコンピュータシステムの一実施形態を示した図である。FIG. 6 illustrates one embodiment of a computer system that includes a plurality of processors having an example embodiment of a DFx function. 階層化された相互接続積層構造を利用した双方向接続アーキテクチャのブロック図の一実施形態を示した図である。FIG. 2 illustrates one embodiment of a block diagram of a bi-directional connection architecture utilizing a layered interconnect stack structure. 信号情報における初期の電力を収集する構成のブロック図の一実施形態を示した図である。It is the figure which showed one Embodiment of the block diagram of the structure which collects the initial stage electric power in signal information. 電子システムのブートの間の初期信号を取得する取得ロジックの高レベルブロック図の一実施形態を示した図である。FIG. 6 illustrates one embodiment of a high level block diagram of acquisition logic that acquires an initial signal during boot of an electronic system. 電力シーケンスの初期における信号情報の取得方法を示したフローチャートの一実施形態を示した図である。It is the figure which showed one Embodiment of the flowchart which showed the acquisition method of the signal information in the initial stage of an electric power sequence. 低電力状態の対象の信号取得のためのロジックの一実施形態を示した図である。FIG. 6 illustrates one embodiment of logic for signal acquisition of a target in a low power state. 1以上のVCUを有するプラットフォームの例の一実施形態を示した図である。FIG. 3 illustrates an embodiment of an example platform having one or more VCUs. VCUを使用したソフトウェアからのDFx要求に応じる方法を示したフローチャートの一実施形態を示した図である。FIG. 5 is a diagram illustrating an embodiment of a flowchart illustrating a method for responding to a DFx request from software using a VCU. 変化を反映させるべくテストアーキテクチャを更新する一実施形態を示した図である。FIG. 6 illustrates one embodiment of updating a test architecture to reflect changes. テストアーキテクチャの階層化された積層構造の一実施形態を示した図である。It is the figure which showed one Embodiment of the layered laminated structure of a test architecture. 階層化されたアーキテクチャの積層構造を介してDFx機能にアクセスする方法を示したフローチャートの一実施形態を示した図である。FIG. 6 illustrates one embodiment of a flowchart illustrating a method for accessing a DFx function through a layered architecture stack. テストアーキテクチャへの安全なアクセスを提供するロジックの一実施形態を示した図である。FIG. 3 illustrates one embodiment of logic that provides secure access to a test architecture. テストアーキテクチャにおける安全なアクセスを提供するフローチャートの一実施形態を示した図である。FIG. 6 illustrates one embodiment of a flowchart for providing secure access in a test architecture. プラットフォームにおけるテストアーキテクチャのためのユニバーサルテストアクセスポート(UTAP)の一実施形態を示した図である。FIG. 2 illustrates one embodiment of a universal test access port (UTAP) for a test architecture on a platform. 大量生産の接続メカニズムの一例における集積回路パッケージの一実施形態を示した図である。FIG. 5 illustrates an embodiment of an integrated circuit package in an example of a mass production connection mechanism. 上面テストピン及びプロービングをサポートする目立たない搭載機能を有するヒートスプレッダの一実施形態を示した図である。It is the figure which showed one Embodiment of the heat spreader which has an inconspicuous mounting function which supports an upper surface test pin and probing. 熱的マージンを提供するよう設計されたスモールファクター熱的ツール(SFFTT)設計の分解図の一実施形態を示した図である。FIG. 6 illustrates one embodiment of an exploded view of a small factor thermal tool (SFFTT) design designed to provide thermal margin. 被試験ユニットへのリモートアクセスの一実施形態示した図である。It is the figure which showed one Embodiment of the remote access to the unit under test. 被試験ユニットへのリモートアクセスの別の実施形態を示した図である。It is the figure which showed another embodiment of the remote access to the unit under test. サイドバンドバスを介して内部で観察されるとレース情報を提供するロジックの一実施形態を示した図である。FIG. 6 illustrates one embodiment of logic that provides race information when viewed internally via a sideband bus. 内部観察トレース(IOT)データを管理する方法を示すフローチャートの一実施形態を示した図である。FIG. 6 illustrates one embodiment of a flowchart illustrating a method for managing internal observation trace (IOT) data. IOTデータからトレースを再構築するフローチャートの一実施形態を示した図である。FIG. 6 illustrates one embodiment of a flowchart for reconstructing a trace from IOT data. 後処理の相違を検出する方法のフローチャートの一実施形態を示した図である。FIG. 6 illustrates an embodiment of a flowchart of a method for detecting post-processing differences. RTLデータ構造を高レベルの言語にアクセス可能とするフローチャートの一実施形態を示した図である。FIG. 6 illustrates one embodiment of a flowchart that enables an RTL data structure to be accessible to a high level language. テスト及びシステムイベントを送電網性能と相関付ける機能を含む、オンダイイベントに関する送電網の空間的及び時間的特性及びデバッグを可能とする基盤の一実施形態を示した図である。FIG. 6 illustrates one embodiment of a infrastructure that enables grid and spatial characteristics and debugging for on-die events, including the ability to correlate test and system events with grid performance.

特定のプロセッサ構成、制御部、特定の種類の検証/テスト/デバッグのフック、構成要素の位置、セキュリティプロトコル、抽出方法、情報のフォーマット及び配置、物理的なアクセスポート設定及び位置、電源設定等の特定の種類が記載されるが、これらは、本発明の完全な理解を提供するためのものである。しかしながら、これらの特定の詳細事項を採用しなくとも、本発明を実行可能であることは、当業者にとって明らかである。また、特定の又は代替のプロセッサアーキテクチャ、機能及びアルゴリズムを記載するための特定の論理回路/コード、特定の検証制御実装詳細、その他の周知の設計検証フック、周知のセキュリティ及びアクセス方法、及びその他の特定の動作の詳細等の、よく知られている要素又は方法については、本発明を不明瞭にすることを防ぐため、記載を省略する。   Specific processor configurations, controls, specific types of verification / test / debug hooks, component locations, security protocols, extraction methods, information formatting and placement, physical access port settings and locations, power settings, etc. Although specific types are described, these are provided to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without these specific details. Also, specific logic circuits / code to describe specific or alternative processor architectures, functions and algorithms, specific verification control implementation details, other known design verification hooks, known security and access methods, and others Well-known elements or methods, such as specific details of operation, are omitted in order to avoid obscuring the present invention.

本明細書に記載する方法及び装置は、コンピュータシステムのテスト基盤(infrastructure)を提供する。より詳細には、プロセッサ100のようなプロセッサを含む典型的なコンピュータシステム内の検証に重点を置いて説明する。しかしながら、本明細書に記載される装置及び方法は、これに限定されず、これに替わるコンピュータアーキテクチャ、及び、テスト、デバッグ、検証等が行われる電子デバイスに関連して装置及び方法が実装される。例えば、本明細書に記載されるテスト基盤は、通信デバイス又はその他の集積回路環境に実装されてもよい。あるいは、テスト基盤は、PDA及び携帯電話のような小型デバイスに組み込まれて使用されてもよい。   The methods and apparatus described herein provide a computer system test infrastructure. More particularly, the discussion will focus on verification within a typical computer system that includes a processor, such as processor 100. However, the apparatus and methods described herein are not so limited, and the apparatus and methods are implemented in connection with alternative computer architectures and electronic devices that are tested, debugged, verified, etc. . For example, the test infrastructure described herein may be implemented in a communication device or other integrated circuit environment. Alternatively, the test board may be used embedded in small devices such as PDAs and mobile phones.

[プロセッサアーキテクチャの実施形態]
図1には、複数のコアを含むプロセッサの一実施形態が示されている。プロセッサ100は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサのようなあらゆるプロセッサ、又は、コードを実行するその他のデバイスを含む。一実施形態において、プロセッサ100は、少なくとも2つのコア、コア101及びコア102を含み、これらコアは、非対称コア又は対称コア(図示の例)を含む。しかしながら、プロセッサ100は、対称又は非対称である処理要素を幾つ含んでもよい。
[Processor architecture embodiment]
FIG. 1 illustrates one embodiment of a processor including multiple cores. The processor 100 includes any processor, such as a microprocessor, embedded processor, digital signal processor (DSP), network processor, or other device that executes code. In one embodiment, the processor 100 includes at least two cores, a core 101 and a core 102, which include an asymmetric core or a symmetric core (example shown). However, the processor 100 may include any number of processing elements that are symmetric or asymmetric.

一実施形態において、処理要素とは、スレッド単位、スレッドスロット、処理単位、コンテキスト、論理プロセッサ、ハードウェアスレッド、コア、及び/若しくは実行状態又はアーキテクチャ状態のようなプロセッサの状態を保持可能な他の要素のことを指す。すなわち、ある実施形態では、処理要素とは、ソフトウェアスレッドのようなコード、OS、アプリケーション又はその他のコードに独立して関連付けることが可能なあらゆるハードウェア指す。物理的プロセッサとは、典型的には、コア又はハードウェアスレッド等の他の処理要素を1以上含む集積回路(IC)のことを指す。   In one embodiment, a processing element is a thread unit, a thread slot, a processing unit, a context, a logical processor, a hardware thread, a core, and / or other state capable of holding a processor state such as an execution state or an architectural state. Refers to an element. That is, in one embodiment, a processing element refers to any hardware that can be independently associated with code, such as a software thread, an OS, an application, or other code. A physical processor typically refers to an integrated circuit (IC) that includes one or more other processing elements such as cores or hardware threads.

コアとは、多くの場合、独立して保持されるアーキテクチャの状態がそれぞれ、少なくとも幾つかの専用実行リソースと関連付けられる独立アーキテクチャ状態を保持可能なICに位置するロジックを指す。コアに対して、ハードウェアスレッドとは、典型的には、独立して保持されている複数のアーキテクチャ状態が実行リソースへのアクセスを共有する独立アーキテクチャ状態を保持可能なICに位置するロジックを指す。このように、あるリソースは共有され、他のリソースは1つのアーキテクチャ状態に占有されている場合には、ハードウェアスレッド及びコアという命名の境界線が重複することとなる。しかしながら、やはりコアとハードウェアとは、OSから見れば個別の論理プロセッサであり、OSは、各論理プロセッサに対して独立してオペレーションをスケジュールすることができる。   A core often refers to logic located in an IC that is capable of holding independent architectural states, each of which is independently maintained in an architectural state, associated with at least some dedicated execution resources. For the core, a hardware thread typically refers to logic located in an IC that can hold independent architectural states in which multiple independently maintained architectural states share access to execution resources. . In this way, when certain resources are shared and other resources are occupied by one architectural state, the naming boundaries of hardware threads and cores overlap. However, the core and hardware are separate logical processors from the viewpoint of the OS, and the OS can schedule the operation independently for each logical processor.

図1に示すように、プロセッサ100は、2つのコア101及び102を含む。ここで、コア101及び102は、対称なコアである、すなわち、同じ構成、機能単位及び/又はロジックを有するコアである。別の実施形態では、コア101は、アウト・オブ・オーダー・プロセッサコアを含み、コア102は、イン・オーダー・プロセッサコアを含む。しかしながら、コア101及び102は、ネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ(ISA)を実行するコア、変換された命令セットアーキテクチャ(ISA)を実行するコア、共同設計されたコア、又は、その他のコアといったあらゆる種類のコアから別々に選択されてもよい。コア101内に図示されている機能単位については、以下に詳細に説明されるが、コア102内の機能単位も同様な態様で動作する。   As shown in FIG. 1, the processor 100 includes two cores 101 and 102. Here, the cores 101 and 102 are symmetrical cores, that is, cores having the same configuration, functional unit, and / or logic. In another embodiment, core 101 includes an out-of-order processor core and core 102 includes an in-order processor core. However, cores 101 and 102 may be native cores, software management cores, cores that execute native instruction set architecture (ISA), cores that execute translated instruction set architecture (ISA), co-designed cores, or others May be selected separately from all types of cores, such as The functional units illustrated in the core 101 will be described in detail below, but the functional units in the core 102 operate in a similar manner.

図に示すように、コア101は、2つのハードウェアスレッド101a及び101bを含み、これらは、ハードウェアスレッドスロット101a及び101bとも称される。したがって、OSのようなソフトウェア実体は、一実施形態においては、プロセッサ100を4つの別個のプロセッサとして見なすこともでき、すなわち、4つのソフトウェアスレッドを並列に実行可能な4つのプロセッサ又は処理要素として見なすことができる。第1のスレッドは、複数のアーキテクチャ状態レジスタ101aと関連付けられており、第2のスレッドは、複数のアーキテクチャ状態レジスタ101bと関連付けられており、第3のスレッドは、複数のアーキテクチャ状態レジスタ102aと関連付けられており、第4のスレッドは、複数のアーキテクチャ状態レジスタ102bと関連付けられている。図に示すように、複数のアーキテクチャ状態レジスタ101aは、複数のアーキテクチャ状態101bに複製されており、個々のアーキテクチャ状態/コンテキストは、論理プロセッサ101a及び論理プロセッサ101bに格納可能である。コア101では、命令ポインタのようなその他の小さなリソース及びリネーム割り当てロジック130におけるリネームロジックも、スレッド101a及び101bについて複製されていてもよい。リオーダ/リタイアメントユニット135におけるリオーダバッファ、ILTB120、読み込み/格納バッファのようなリソース及びキューは、パーティショニングを通じて共有されてもよい。汎用内部レジスタ、ページ−テーブルベースレジスタ、低階層データキャ主及びデータ−TLB115、実行ユニット140、及びアウト・オブ・オーダーユニット135の部分は、完全に共有されてもよい。   As shown, the core 101 includes two hardware threads 101a and 101b, which are also referred to as hardware thread slots 101a and 101b. Thus, a software entity, such as an OS, in one embodiment, can also view processor 100 as four separate processors, i.e., see four software threads as four processors or processing elements that can execute in parallel. be able to. The first thread is associated with a plurality of architectural state registers 101a, the second thread is associated with a plurality of architectural state registers 101b, and the third thread is associated with a plurality of architectural state registers 102a. And the fourth thread is associated with a plurality of architecture state registers 102b. As shown in the figure, a plurality of architecture state registers 101a are duplicated in a plurality of architecture states 101b, and individual architecture states / contexts can be stored in the logical processors 101a and 101b. In core 101, other small resources such as instruction pointers and rename logic in rename assignment logic 130 may also be replicated for threads 101a and 101b. Resources and queues such as reorder buffer, ILTB 120, read / store buffer in reorder / retirement unit 135 may be shared through partitioning. The portions of the general purpose internal registers, page-table base registers, low-level data carrier and data-TLB 115, execution unit 140, and out-of-order unit 135 may be fully shared.

プロセッサ100は、完全に共有される、パーティショニングを通じて共有される、又は、処理要素に専用となるその他のリソースをしばしば含む。図1には、単純に例示することだけを目的としたプロセッサの論理単位/リソースを有するプロセッサの一実施形態が示されている。プロセッサは、これら機能単位の何れを含む又は省略してもよく、図示されていないその他の周知の機能単位、ロジック又はファームウェアを含んでもよい。図に示されるように、コア101は、単純化して表示されているアウト・オブ・オーダー(OOO)プロセッサコアを含む。OOOコアは、実行される/選択される分岐先を予測する分岐先バッファ120(Branch Target Buffer:BTB)及び命令についてのアドレス変換エントリを記憶する命令変換バッファ120(I‐TLB)を含む。   The processor 100 often includes other resources that are fully shared, shared through partitioning, or dedicated to processing elements. FIG. 1 illustrates one embodiment of a processor having logical units / resources of the processor for purposes of illustration only. The processor may include or omit any of these functional units, and may include other well-known functional units, logic or firmware not shown. As shown, the core 101 includes an out-of-order (OOO) processor core that is shown in a simplified manner. The OOO core includes a branch target buffer (BTB) that predicts a branch destination to be executed / selected and an instruction translation buffer 120 (I-TLB) that stores an address translation entry for the instruction.

コア101は更に、フェッチされた要素をデコードするべく、フェッチユニット120と連結されたデコードモジュール125を含む。一実施形態において、フェッチロジックは、それぞれスロット101a、101bと関連付けられたシーケンサを含む。通常、コア101は、プロセッサ100で実行可能な命令を規定/特定する第1命令セットアーキテクチャ(ISA)と関連付けられている。ISAによって認識される機械コード命令は、一般的に、実行すべき命令又はオペレーションを参照する/特定するオペコード(opcode)と呼ばれる命令の一部を含む。デコードロジック125は、オペコードから命令を認識し、第1ISAによって規定されるように処理を行うために、デコードされた命令をパイプラインに渡す。例えば、以下で詳細に説明するように、一実施形態において、デコーダ125は、条件コミット命令及び予測チェックポイント命令のような新しい特定の命令を認識するのに使用される又は設計されたロジックを含む。その結果、デコーダ125の認識により、アーキテクチャ又はコア101は、特定の予め定められたアクションを起こし、適切な命令と関連付けられたタスクを実行する。   The core 101 further includes a decode module 125 coupled to the fetch unit 120 to decode the fetched elements. In one embodiment, the fetch logic includes sequencers associated with slots 101a and 101b, respectively. Typically, core 101 is associated with a first instruction set architecture (ISA) that defines / specifies instructions executable on processor 100. Machine code instructions recognized by the ISA generally include a portion of an instruction called an opcode that references / specifies the instruction or operation to be executed. Decode logic 125 recognizes the instruction from the opcode and passes the decoded instruction to the pipeline for processing as defined by the first ISA. For example, as described in detail below, in one embodiment, the decoder 125 includes logic used or designed to recognize new specific instructions such as conditional commit instructions and predictive checkpoint instructions. . As a result, upon recognition of the decoder 125, the architecture or core 101 takes certain predetermined actions and performs the tasks associated with the appropriate instructions.

一例において、アロケータ及びリネーマブロック130は、命令処理結果を格納するレジスタファイルのようなリソースを保存するアロケータ(割り当てルーチン)を含む。しかしながら、スレッド101a及び101bは、アウト・オブ・オーダーで実行可能であり、アロケータ及びリネーマブロック130は、命令の結果を追跡するためにリオーダ(並び替え)バッファのような、その他のリソースも備える。ユニット130は、プログラム/命令参照レジスタを、プロセッサ100の他の内部レジスタにリネームするレジスタリネーマーを含んでもよい。リオーダ/リタイアメントユニット135は、アウト・オブ・オーダー実行及びアウト・オブ・オーダーで実行される順番が最後の方の命令のリタイアメントをサポートするために、上述のようなリオーダバッファ、読み込み(load)バッファ、及び格納(store)バッファのような要素を含んでもよい。   In one example, the allocator and renamer block 130 includes an allocator (allocation routine) that saves resources, such as a register file that stores instruction processing results. However, threads 101a and 101b can execute out of order, and allocator and renamer block 130 also includes other resources, such as a reorder buffer, to track the result of the instruction. . Unit 130 may include a register renamer that renames program / instruction reference registers to other internal registers of processor 100. The reorder / retirement unit 135 includes a reorder buffer, a load buffer, as described above, to support out-of-order execution and retirement of instructions that are executed in the out-of-order order. And elements such as a store buffer.

ある実施形態では、スケジューラ及び実行ユニットブロック140は、実行ユニットに対して命令/オペレーションをスケジューリングするスケジューラユニットを含んでもよい。例えば、浮動小数点命令は、利用可能な浮動小数点実行ユニットを持つ実行ユニットの一部にスケジュールされる。また、情報命令処理結果を記憶するために、実行ユニットに関連付けられたレジスタファイルが含まれている。実行ユニットの例としては、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、記憶実行ユニット、及びその他の既知の実行ユニットが挙げられる。   In some embodiments, the scheduler and execution unit block 140 may include a scheduler unit that schedules instructions / operations for execution units. For example, floating point instructions are scheduled to be part of an execution unit that has an available floating point execution unit. In addition, a register file associated with the execution unit is included to store the information instruction processing result. Examples of execution units include floating point execution units, integer execution units, jump execution units, load execution units, storage execution units, and other known execution units.

下位層データキャッシュ及びデータ変換バッファ(D−TLB)150は、実行ユニット140に接続されている。データキャッシュは、メモリコヒーレンシ状態で保持されているデータオペランドのような最近利用/処理されたものを、要素に記憶する。D−TLBは、最近の仮想/線形アドレスから物理アドレスへの変換を記憶する。具体的な一例として、プロセッサは、物理メモリを複数の仮想ページに分割するためのページテーブル構造を持つとしてよい。   The lower layer data cache and data conversion buffer (D-TLB) 150 is connected to the execution unit 140. The data cache stores recently used / processed items such as data operands held in memory coherency state in the element. The D-TLB stores recent virtual / linear address to physical address translations. As a specific example, the processor may have a page table structure for dividing physical memory into a plurality of virtual pages.

ここで、コア101及びコア102は、最近フェッチされた要素をキャッシュする上位層に位置する又はより離れたところに位置するキャッシュ110へのアクセスを共有する。ここで、上位層又はより離れた位置とは、キャッシュレベルがより高い又は実行ユニットからより離れていることを指す。一実施形態では、上位層キャッシュ110は、プロセッサ100のメモリ階層の最後のキャッシュであるラストレベルデータキャッシュであり、例えば、第2レベル(2次)データキャッシュ、又は第3レベル(3次)データキャッシュである。上位層キャッシュ110はこれに限定されず、命令キャッシュに関連付けられてもよいし、命令キャッシュを含んでもよい。命令キャッシュの一種であるトレースキャッシュを、替わりに、デコーダ125の後に連結して、最近デコードされたトレースを記憶してもよい。   Here, the core 101 and the core 102 share access to a cache 110 that is located in a higher layer that caches recently fetched elements or is located further away. Here, the upper layer or a position farther away means that the cache level is higher or further away from the execution unit. In one embodiment, the upper layer cache 110 is a last level data cache that is the last cache in the memory hierarchy of the processor 100, such as a second level (secondary) data cache or a third level (tertiary) data. It is a cache. The upper layer cache 110 is not limited to this, and may be associated with an instruction cache or may include an instruction cache. Alternatively, a trace cache, which is a type of instruction cache, may be concatenated after the decoder 125 to store recently decoded traces.

図示されている構成では、プロセッサ100は、システムメモリ175、チップセット、ノースブリッジ又はその他の集積回路のような、プロセッサ100の外部のデバイスと通信を行うバスインターフェースモジュール105を含む。メモリ175は、プロセッサ100に専用のメモリであってもよいし、システム内のその他のデバイスと共有されるメモリであってもよい。メモリ175の典型的な例には、ダイナミック・ランダム・アクセス・メモリ(DRAM)、スタティックRAM(SRAM)、不揮発性メモリ(NVメモリ)、及びその他の周知の記憶デバイスが含まれる。   In the illustrated configuration, the processor 100 includes a bus interface module 105 that communicates with devices external to the processor 100, such as a system memory 175, chipset, north bridge, or other integrated circuit. The memory 175 may be a memory dedicated to the processor 100 or a memory shared with other devices in the system. Typical examples of memory 175 include dynamic random access memory (DRAM), static RAM (SRAM), non-volatile memory (NV memory), and other well-known storage devices.

図1は簡略化して示されており、異なる複数のモジュール、ユニット及び/又はロジックの表現を含むプロセッサの例の論理的表現が示されている。しかしながら、本明細書に説明される方法及び装置を利用するプロセッサは、図示されているユニットを必ずしも含む必要はない。プロセッサは、図示されているユニットのうちの一部又は全てを省略してもよい。加えて、図1には、コアが2つのみ示されているが、プロセッサは、いかなる数のコアを含んでもよく、同じ種類の複数のコアを含んでもよいし、種類の異なる3つ以上のコアを含んでもよい。   FIG. 1 is shown in a simplified manner, showing a logical representation of an example of a processor including different modules, units and / or logic representations. However, a processor utilizing the methods and apparatus described herein need not necessarily include the units shown. The processor may omit some or all of the units shown. In addition, although only two cores are shown in FIG. 1, the processor may include any number of cores, multiple cores of the same type, or more than two different types. A core may be included.

図1には、外部のメモリ制御装置(制御ハブ170)とインターフェースを使用してポイント・ツー・ポイントで連結されているプロセッサの実施形態が示されている。しかしながら、現在のプロセッサの多くは、オンプロセッサ・メモリインターフェースモジュールを含むようになっており、複数のコアを相互接続するような環状構造(リング)のような様々な相互接続アーキテクチャ、及び、共有キャッシュ及びその他のインターフェースを有するオンチップモジュールを含むようになっている。   FIG. 1 illustrates an embodiment of a processor that is connected point-to-point using an interface with an external memory controller (control hub 170). However, many of today's processors include on-processor memory interface modules, and various interconnect architectures such as a ring structure that interconnects multiple cores and shared caches. And an on-chip module having other interfaces.

このような相互接続アーキテクチャの一実施形態が、図2に示されている。図に示すように、プロセッサ200は、分配されたキャッシュ、環状相互接続、コア、キャッシュ及びメモリ制御構成要素を含む。しかしながら、図示の構成は単なる例に過ぎず、説明される方法を実装する及び装置に実装されるプロセッサは、あらゆる処理要素、あらゆる種類又は階層のキャッシュ及び/又はメモリ、外部デバイスと通信を行うフロントサイドバス又はその他のインターフェースを含んでもよい。   One embodiment of such an interconnect architecture is shown in FIG. As shown, the processor 200 includes a distributed cache, a circular interconnect, a core, a cache, and memory control components. However, the illustrated arrangement is merely an example, and a processor implementing the described method and implemented in the apparatus may be any processing element, any kind or hierarchy of caches and / or memories, a front communicating with an external device. A side bus or other interface may be included.

一実施形態において、キャッシングエージェント221−224はそれぞれ、分配され関連付けられているキャッシュを管理する。キャッシングエージェント221−224は、論理的に共有されているキャッシュのスライスを管理してもよいし、同じメモリ階層の個別のプライベートキャッシュを管理してもよい。一例として、構成要素221のようなキャッシュコンポーネントのそれぞれは、配列されたコア、すなわち、分配されたスライスを管理する目的でキャッシュエージェントが関連付けられたコアに対するキャッシュのスライスを管理する。図示されるように、キャッシュエージェント221−224は、キャッシュ・スライス・インターフェース・ロジック(CSIL)と称されるが、キャッシュコンポーネント、エージェント、又は、その他のロジック、ユニット、又は、キャッシュ又はキャッシュのスライスと結合するモジュールと称される場合もある。キャッシュは、いかなる階層のキャッシュであってもよいが、この実施形態例では、コア201−204によって共有されるラストレベルキャッシュ(LLC)に注目して説明する。   In one embodiment, the caching agents 221-224 each manage a distributed and associated cache. The caching agents 221-224 may manage logically shared cache slices, or may manage individual private caches in the same memory hierarchy. As an example, each of the cache components, such as component 221, manages a slice of cache for an aligned core, ie, a core with which a cache agent is associated for the purpose of managing distributed slices. As shown, cache agents 221-224 are referred to as cache slice interface logic (CSIL), but may be cache components, agents, or other logic, units, or slices of caches or caches. Sometimes referred to as a combined module. The cache may be any level of cache, but in this example embodiment, the description will focus on the last level cache (LLC) shared by the cores 201-204.

環状相互接続250のトラフィック及びキャッシュスライスとの結合を扱うキャッシュエージェントのように、コアエージェント/コンポーネント211−214はそれぞれ、トラフィック及びコア201−204とのインターフェースを取り扱う。加えて、図示されている環状構造250は、メモリ制御部(IMC)231及びグラフィックスプロセッサ(図示せず)のようなその他のモジュールと結合するメモリ周辺ハブ(IMPH)230及びグラフィックスハブ(GFX)240を含む。しかしながら、環状構造250は、上記のモジュールの何れを含み又は省略してもよく、その他の図示していない周知のプロセッサモジュールを含んでもよい。加えて、ポイント・ツー・ポイント接続又はマルチドロップ接続のような周知の相互接続を介して、同様なモジュールを接続してもよい。   The core agents / components 211-214 handle the traffic and interface to the cores 201-204, respectively, like the cache agent that handles the traffic of the circular interconnect 250 and the association with the cache slice. In addition, the illustrated annular structure 250 includes a memory peripheral hub (IMPH) 230 and a graphics hub (GFX) that couple with other modules such as a memory controller (IMC) 231 and a graphics processor (not shown). 240). However, the annular structure 250 may include or omit any of the modules described above, and may include other well-known processor modules not shown. In addition, similar modules may be connected via well-known interconnections such as point-to-point connections or multidrop connections.

[テスト基盤の実施形態]
一実施形態において、図1及び図2に示したようなプロセッサ又はその他の周知のプロセッシングデバイスを含むコンピュータシステムは、コンピュータシステムにおける様々な側面を、効率的に(コスト及び複雑さの両方において)テスト、検証及びデバッグすることを支援するテスト基盤を含む。この効率的な環境を提供するために、例えば、図3に示す階層構造のような、複数の層(例えば、物理的、通信及びソフトウェアの階層)が存在する。
[Test platform embodiment]
In one embodiment, a computer system that includes a processor or other well-known processing device as shown in FIGS. 1 and 2 efficiently tests various aspects of the computer system (both cost and complexity). Includes a test infrastructure to assist with verification and debugging. In order to provide this efficient environment, there are multiple layers (eg, physical, communication and software layers), such as the hierarchical structure shown in FIG.

例えば、物理層305は、テストフック(テスト、検証及び/又はデバッグの機能を提供するシステムに設けられたハードウェア又はファームウェア)を含み、テストフックは、コンピュータシステムの複数のデバイス(プロセッサ、相互接続、制御ハブ等)の至る所に含まれていてもよい。一実施形態において、テストフックは、設計により、マイクロコントローラのようなその他のハードウェア/ファームウェアの指示で、又は、コンピュータプラットフォーム内に一体化されているユーザー/ベンダーのデバッグプログラム又はコードのようなソフトウェアの指示で、デバッグ/検証情報を収集する。フックの具体的な例としては、デバイスにおけるアーキテクチャ的及びマイクロアーキテクチャのテスト/追跡測定機能、電気的検証ツール、コンピュータシステム内/オンデバイスロジック分析器、接続プロトコル/トレース測定機能、プラットフォームレベルテスト機能、電源テスト機能(これについては、以下に記載する電源検証の実施形態の章で詳しく説明する)、電源オン/ブート追跡測定機能、検証回路、大量生産テスト機能、及びその他のよく知られたハードウェアベースの測定及びテスト機能が含まれる。   For example, the physical layer 305 includes test hooks (hardware or firmware provided in a system that provides testing, verification, and / or debugging functions), and the test hooks are a plurality of devices (processors, interconnects) of a computer system. , Control hubs, etc.). In one embodiment, the test hook is by design, at the direction of other hardware / firmware such as a microcontroller, or software such as a user / vendor debug program or code integrated within the computer platform. Collect debug / verification information according to the instructions. Specific examples of hooks include architectural and microarchitecture test / tracking measurement functions in devices, electrical verification tools, in-computer / on-device logic analyzers, connection protocol / trace measurement functions, platform level test functions, Power test functions (which are described in detail in the power verification embodiments section below), power on / boot tracking measurement functions, verification circuits, mass production test functions, and other well-known hardware Base measurement and test functions are included.

指定されたテストフックを提供することに加えて、一実施形態では、テストフックとテスト/デバッグソフトウェアとの間の通信を提供するのに、通信層310が採用される。通信層310は、単純に、テストフックへ直接アクセス(テストシナリオを規定する又はテスト結果を取得するための)する能力をソフトウェアに提供するだけのものであってもよい。しかしながら、上記したように、デバイスの設計者は、シリコンテスト機能を、ベンダー又はユーザーからのアクセスに対して難読化させたいと考える場合がある。その場合には、ベンダー又はユーザーのソフトウェアが通信層310とやり取りをするように構成し、通信層310がハードウェアテスト機能の難読化(抽象化)された概要をソフトウェアに提供するようにする。そして、通信層310は、顧客から見た場合に難読化されているような態様で、物理層305内のハードウェアとやり取りをする。一実施形態において、検証制御ユニット(VCU)とも称されるマイクロコントローラは、様々なテストフックへのアクセスを制御する。ここで、ベンダーソフトウェアは、様々なブレークポイント、マイクロブレークポイント・トリガイベントをプログラムする、格納されたトレースを抽出する、検証情報を提供する、及び、異なるレベルのアクセスを提供する等の様々な検証タスクを調整するようVCUに要求することができる。   In addition to providing designated test hooks, in one embodiment, communication layer 310 is employed to provide communication between test hooks and test / debug software. The communication layer 310 may simply provide the software with the ability to directly access the test hook (to define test scenarios or obtain test results). However, as noted above, device designers may want to obfuscate the silicon test functionality for access by vendors or users. In that case, the software of the vendor or user is configured to interact with the communication layer 310, and the communication layer 310 provides the software with an obfuscated (abstracted) overview of the hardware test function. The communication layer 310 communicates with the hardware in the physical layer 305 in a manner that is obfuscated when viewed from the customer. In one embodiment, a microcontroller, also referred to as a verification control unit (VCU), controls access to various test hooks. Here, the vendor software programs various breakpoints, micro-breakpoint trigger events, extracts stored traces, provides verification information, and provides various levels of verification. The VCU can be requested to coordinate tasks.

最後の例に示されるように、テスト基盤に関して、難読化する程度及びセキュリティのレベルは様々に異なるものを提供してもよい。ここで、シリコン設計者は、含まれているテスト機能の全てに自由にアクセスできるようにし、様々なベンダー、顧客及びユーザーに対しては、アクセスレベルを下げることを望む場合がある。このような場合を考慮し、第1段階は、物理層305におけるフックをぼやかすことができる抽象化層305を提供することを含む。そして、一実施形態では、第2段階は、アクセスの異なる複数のレベルの間の境界線を引くことができる安全なアクセス方法を提供することを含む。   As shown in the last example, the degree of obfuscation and the level of security with respect to the test infrastructure may vary. Here, the silicon designer may have free access to all of the included test functions and may wish to lower the access level for various vendors, customers and users. Considering such cases, the first stage includes providing an abstraction layer 305 that can blur the hooks in the physical layer 305. And in one embodiment, the second stage includes providing a secure access method that can draw boundaries between different levels of access.

また、通信層310は、検証情報のソフトウェア層315への報告を提供する。例えば、オンダイ・ロジック分析器は、プロセッサからのトレース情報を収集する。通信層310は、キャッシュ又はシステムメモリのような格納構造に、ソフトウェア層315がデータにアクセス、データを認識及び操作可能となるような規定された形式でトレース情報を提供する。そして、アクセス層とも称されるソフトウェア層315は、通信層310にアクセスし、テストデータ内容を処理するプログラム/ツールを提供する。上記の例に戻り、トレース情報が、格納構造に配置されると、検証及びデバッグプログラムは、トレース情報を解釈する(検証及びデバッグ)ために処理を行ってもよい。   The communication layer 310 also provides a report of verification information to the software layer 315. For example, the on-die logic analyzer collects trace information from the processor. The communication layer 310 provides trace information in a defined format such that the software layer 315 can access, recognize and manipulate data in a storage structure such as a cache or system memory. A software layer 315, also referred to as an access layer, provides a program / tool that accesses the communication layer 310 and processes the contents of the test data. Returning to the above example, once the trace information is placed in the storage structure, the verification and debug program may perform processing to interpret the trace information (verification and debug).

以上の記載では、物理層305からのデータへの論理的な又は抽象化されたアクセスについて主に説明がなされた。物理層305へどのようにアクセスするかについては、以下で説明する。一例では、このようなアクセスは、物理的アクセスを使用して行われる。ここで、双方向通信(物理的フックへの難読化されたアクセスのためのVCUへの要求のような、抽出されたデバッグ情報の上方向の通信、及び、デバッグ要求の下方向の通信)をサポートするべく、専用又はユニバーサルデバッグ/検証ポートが提供される。このポートは、コンピュータシステム内(プロセッサパッケージ、チップセット、マザーボード内、又は、ユニーバーサル・シリアル・バスインターフェースのような既存のI/Oインターフェースを介して)のいかなる場所に位置する又は複製されていてもよい。   In the above description, the logical or abstract access to data from the physical layer 305 has been mainly described. How to access the physical layer 305 will be described below. In one example, such access is performed using physical access. Here, two-way communication (upward communication of extracted debug information, such as a request to the VCU for obfuscated access to the physical hook, and downward communication of the debug request) A dedicated or universal debug / verification port is provided to support. This port can be located or replicated anywhere in the computer system (processor package, chipset, motherboard, or via an existing I / O interface such as a universal serial bus interface) Good.

別の実施形態では、テスト基盤は、リモートアクセスも提供する。例えば、ベンダーが、コンピュータシステム内の一プロセッサを検証しようとしているが、現在のコンピュータプラットフォームの複雑性に起因する問題を有している場合を仮定する。そして、ベンダーには、高階層の難読化(抽象化)されたプロセッサデバッグツールへのアクセスのみが提供されているとする。プロセッサの製造側が、デバッグプロセスを助けるために検証を行うエンジニアを物理的に派遣する替わりに、テスト基盤が、検証及びデバッグのためのリモートアクセスを許可してもよい。さらに、離れた場所に存在する製造者は、シリコンテスト機能をベンダーから秘密に維持しながら、セキュリティプロトコルにより、ハードウェア基盤の大部分にアクセス可能として、問題解決を図る及びデバッグを行ってもよい。リモートでデバッグを行う構成に加えて、図3の層は、ローカルで又はリモートで更新することができ、ファームウェア又はVCU内のコードを更新するパッチを提供することにより、将来行われる検証に柔軟に及び適切に対応することができる。   In another embodiment, the test infrastructure also provides remote access. For example, suppose a vendor is trying to verify one processor in a computer system, but has a problem due to the complexity of the current computer platform. It is assumed that the vendor is only provided with access to a high-level obfuscated (abstracted) processor debug tool. Instead of the processor manufacturer physically dispatching a verification engineer to assist in the debugging process, the test infrastructure may allow remote access for verification and debugging. In addition, remote manufacturers may attempt to solve problems and debug by making most of the hardware infrastructure accessible via security protocols while keeping the silicon test functionality secret from the vendor. . In addition to the configuration for remote debugging, the layers of FIG. 3 can be updated locally or remotely, providing flexibility in future validation by providing patches that update the code in the firmware or VCU. And can respond appropriately.

図3には、テストアーキテクチャを、3つの主要なカテゴリ(物理、通信及びソフトウェア)に分割した、一般的な階層構造が示されている。しかしながら、テストアーキテクチャの階層構造(スタック)は、あらゆる態様で構成されてもよく、同様なテストインターフェースを提供するその他の層を含んでもよい。例えば、一実施形態では、検証アーキテクチャの階層構造には、目的の層(Dfxテストの下の物理的ユニット)、トランスポート層(テストを行うべく目的のDFxユニットで実行される高階層の転送メカニズムにとらわれないスタックを採用する層)、抽象化層(アプリケーションと下位層のDFxインターフェースとの間の抽象化された通信を提供する層)、アプリケーション層(DFxサービスと結合するために、抽象化層と通信を行うアプリケーション、サービス、ツール及びその他のソフトウェアを含む層)、及び、プレゼンテーション層(基本的なデータ、プロトコル及び情報を関連付け、視覚化、及び/又は表示する層)が含まれる。   FIG. 3 shows a general hierarchical structure that divides the test architecture into three main categories (physical, communications and software). However, the test architecture hierarchy (stack) may be configured in any manner and may include other layers that provide similar test interfaces. For example, in one embodiment, the hierarchy of the verification architecture includes a target layer (physical unit under Dfx test), a transport layer (a high-level transport mechanism executed on the target DFx unit to perform the test). A layer that employs a non-intrusive stack), an abstraction layer (a layer that provides abstracted communication between an application and a lower layer DFx interface), an application layer (an abstraction layer for combining with DFx services) And layers that include applications, services, tools and other software that communicate with) and presentation layers (layers that associate, visualize, and / or display basic data, protocols and information).

[検証、テスト及びデバッグのフックの実施形態]
一実施形態において、検証、テスト及びデバッグフックは、プロセッサ及び/又はコンピュータシステム/プラットフォームのシリコンに一体化されており、効率的なテスト、検証及び/又はデバッグをサポートする。最終製品に一体化されている検証フックは、しばしば、デバッグ、検証及び/又はテストのための設計(以下、DFxと称する)と称される。DFxは、製品のテスト、デバッグ及び/又は検証をサポートするべく、その製品に含まれている周知のあらゆるフックを含む(自己検証ツール)。以下の説明では、このようなフックの数多くの例が記載されるが、この例のリストは完全なものではない。また、以下に記載するDFxの機能の何れか又は全てを、周知の一体化されたテスト/デバッグ機能と組み合わせてもよいし、省略してもよい。加えて、プロセッサに関して、DFxの説明が主になされるが、同様なフックは、マザーボード、制御ハブ、埋め込みプロセッサ、グラフィックスプロセッサ、入出力デバイス(I/Oデバイス)等のその他のシリコンデバイス含まれていてもよい。
[Embodiment of verification, test and debug hooks]
In one embodiment, the verification, testing and debugging hooks are integrated into the processor and / or computer system / platform silicon to support efficient testing, verification and / or debugging. Verification hooks integrated into the final product are often referred to as designs for debugging, verification and / or testing (hereinafter referred to as DFx). DFx includes all known hooks included in the product (self-verification tools) to support product testing, debugging and / or verification. In the following description, many examples of such hooks are described, but this list of examples is not complete. Further, any or all of the DFx functions described below may be combined with a well-known integrated test / debug function or may be omitted. In addition, with regard to the processor, the description of DFx is mainly made, but similar hooks include other silicon devices such as motherboards, control hubs, embedded processors, graphics processors, input / output devices (I / O devices), etc. It may be.

図4には、DFx機能の実施例を説明するための、複数のプロセッサを含むコンピュータシステムの一実施形態が示されている。示されている構成は、説明を行うべく例示を目的としたものである。既知のあらゆるコンピュータシステム構成を利用してもよく、例えば、図1に示したような、従来からのレガシー構成を利用してもよい。さらに、図示を簡潔にするべく4つのプロセッサ(410a,b,c及びd)のそれぞれは、同じ構成要素を有するように描かれているが、異なる非対称な構成を有してもよい。以下では、説明を簡単にするために、プロセッサ410aの特徴について、重点的に説明する。   FIG. 4 shows an embodiment of a computer system including a plurality of processors for explaining an example of the DFx function. The configuration shown is for illustrative purposes only. Any known computer system configuration may be used, for example, a conventional legacy configuration as shown in FIG. Further, for simplicity of illustration, each of the four processors (410a, b, c, and d) is depicted as having the same components, but may have different asymmetric configurations. Hereinafter, in order to simplify the description, the features of the processor 410a will be mainly described.

一実施形態において、コンピュータシステム400は、シリコンDFxへのアクセスを提供及び制御する1以上の検証制御ユニット(VCU)を備える。図示するように、構成要素(プロセッサ410a−b及び周辺制御ハブ470)それぞれは、自身のVCUを含むが、プロセッサ又はコンピュータシステムへのアクセスを制御するべく、いかなる数の又はいかなるレイアウトのVCUが設けられてもよい。VCUの実施形態及びそれに関係する機能については、以下の「検証制御部の実施形態」の章でより詳細に説明する。したがって、DFx機能の実施形態を説明する目的から、このシナリオでは、VCU412aは、プロセッサ410aのDFx機能へのアクセスを提供する。   In one embodiment, the computer system 400 comprises one or more verification control units (VCUs) that provide and control access to the silicon DFx. As shown, each of the components (processors 410a-b and peripheral control hub 470) includes its own VCU, but any number or layout of VCUs may be provided to control access to the processor or computer system. May be. The embodiment of the VCU and the functions related thereto will be described in more detail in the section “Embodiment of Verification Control Unit” below. Thus, for purposes of describing an embodiment of the DFx function, in this scenario, the VCU 412a provides access to the DFx function of the processor 410a.

DFx機能の第1の例として、プロセッサ410aは、一体化された(オンダイ又はオンチップとも称される)ロジック分析器(ODLA又はOCLA)413aを含む。以前のロジック分析器は、デバイスのデジタル信号を捉える又は表示するべく、多数のプローブ又は外部ポートを介して、部品に接続された個別の物理的デバイスを含んでいた。しかしながら、外部デバイスは、非常に高価である。コンピュータの複雑さが増すにつれ、製品の開発から、その製品と結合することができるロジック分析器の開発までの間の時間差/遅れが、非常に大きくなってきている。その結果、この産業分野では、製品のデバッグ、検証及び発売を、コストが掛からないようにスケジュール通りに行うことができなくなっている。   As a first example of DFx functionality, processor 410a includes an integrated (also referred to as on-die or on-chip) logic analyzer (ODLA or OCLA) 413a. Previous logic analyzers included individual physical devices connected to components through multiple probes or external ports to capture or display the digital signal of the device. However, external devices are very expensive. As the complexity of computers increases, the time difference / delay between the development of a product and the development of a logic analyzer that can be combined with that product has become very large. As a result, in this industrial field, product debugging, verification and sales cannot be performed according to a schedule so as not to incur costs.

したがって、一実施形態では、プロセッサ410aは、ロジック分析器のオンダイ機能をサポートするべく、ODLA413a(ハードウェア、ファームウェア、マイクロコード又はこれらの組み合わせによって構成される)を備える。すなわち、プロセッサ410aは、デジタル信号、状態、トレース等を取得するためにODLA413aを備える。具体的な一例として、プロセッサ410aは、取得点を始動(トリガ)させるブレークポイント(又はマイクロブレークポイント)を設定するロジックを含む。ここで、制御レジスタのようなイベント記憶部には、始動させるシナリオを規定する1つのイベント又は複数のイベントの組み合わせが設定される。そのシナリオに遭遇すると(イベントそれぞれは、シナリオに規定された態様で発生する)、プロセッサにおける関係するステート、信号、トレース等が収集される。トリガ条件又はシナリオは、単純にテスト信号のアサート又はアサート停止であってもよいし、レベル2キャッシュのミスを経験した命令のみに関連付けられた閾値を超えた回数の命令リタイアメント押し出しが発生した場合といったように、マイクロアーキテクチャイベントを組み合わせた複雑なものであってもよい。   Accordingly, in one embodiment, processor 410a comprises ODLA 413a (configured by hardware, firmware, microcode, or a combination thereof) to support the logic analyzer on-die function. That is, the processor 410a includes an ODLA 413a for acquiring digital signals, states, traces, and the like. As a specific example, processor 410a includes logic to set a breakpoint (or microbreakpoint) that triggers an acquisition point. Here, one event or a combination of a plurality of events that define a scenario to be started is set in an event storage unit such as a control register. As the scenario is encountered (each event occurs in a manner specified in the scenario), the relevant state, signal, trace, etc. in the processor are collected. The trigger condition or scenario may simply be the assertion or deassertion of the test signal, such as when an instruction retirement push occurs a number of times that exceeds a threshold associated only with an instruction that has experienced a level 2 cache miss. Thus, it may be a complex combination of microarchitecture events.

ODLA413aは、図4に示されるように、論理ブロック内に物理的にグループ化されていなくてもよい。替わりに、ODLA413aは、プロセッサ410a内の内部信号又は外部信号を取得する、プロセッサ410a全体にわたって分配されたロジックを含んでもよい。あるシナリオでは、ODLA413aは、トレース又は回路の論理レベル取得する、プロセッサ410aのアーキテクチャ又はマイクロアーキテクチャ部分と関連付けられたロジック、内部トラフィックを取得する内部相互接続と関連付けられたロジック、メモリトラフィックを取得する、インターフェース460aのようなメモリインターフェースと関連付けられたロジック、及び、インターフェース450、465、グラフィックスインターフェース(図示せず)、レガシー又はサイドバンドインターフェース(図示せず)のような入出力インターフェース、又は、プロセッサと関連付けられたその他の周知のインターフェースと関連付けれたロジックを含む。   As shown in FIG. 4, the ODLA 413a may not be physically grouped in a logical block. Alternatively, ODLA 413a may include logic distributed throughout processor 410a that obtains internal or external signals within processor 410a. In one scenario, the ODLA 413a obtains a logic level associated with the architecture or microarchitecture portion of the processor 410a, obtains a logic level of a trace or circuit, obtains logic associated with an internal interconnect that obtains internal traffic, and obtains memory traffic. Logic associated with a memory interface, such as interface 460a, and interfaces 450, 465, an input / output interface, such as a graphics interface (not shown), a legacy or sideband interface (not shown), or a processor Includes logic associated with other well-known interfaces associated with it.

以前の外部ロジック分析器では、結果は、外部デバイスによって取得されていた。これに対し、上記のシナリオでは、プロセッサ410aが、自身のロジック分析器を動作させる。したがって、一実施形態において、ODLA413aは、取得された情報を保持し、利用可能なコンピュータ記憶部を利用する。例えば、ODLA413aは、取得された情報を保持するトレースバッファとして、キャッシュメモリ又はメモリ420aの一部を使用する。一実施形態において、メモリ420aの一部は、ソフトウェアの使用から隔離される。取得された情報は、メモリの隔離された部分に配置される。   In previous external logic analyzers, the results were acquired by an external device. On the other hand, in the above scenario, the processor 410a operates its own logic analyzer. Accordingly, in one embodiment, the ODLA 413a retains the acquired information and uses an available computer storage. For example, the ODLA 413a uses a part of the cache memory or the memory 420a as a trace buffer that holds the acquired information. In one embodiment, a portion of memory 420a is isolated from software usage. The acquired information is placed in an isolated part of the memory.

ここで、取得された情報は、予め定められた規定された形式で、加工されない状態で配置されてもよく、(アプリケーション層において、製造側又は顧客から提供される)適切なアクセスレベルを有する検証ソフトウェアは、データにアクセス及びデータを操作することができ、例えば、生のデータをタイミングチャート、プロトコルデコード、トレースの表現へ変換する、又は、ロジック分析器のデータのその他の周知の操作を行うことができるようにする。別の実施形態では、ODLA413aは、(そこに含まれるプログラム可能ロジック、コード又はマイクロコードを使用して)生のデータを別のフォーマットへと形式変換し、高階層のレベルのソフトウェアによる解釈のために、メモリに変換後のデータを配置する。   Here, the acquired information may be arranged in a pre-determined prescribed format, in an unprocessed state, and verified with an appropriate access level (provided by the manufacturer or customer at the application layer) Software can access and manipulate data, for example, convert raw data into timing charts, protocol decodes, trace representations, or perform other well-known manipulations of logic analyzer data To be able to. In another embodiment, ODLA 413a converts raw data (using the programmable logic, code or microcode contained therein) to another format for interpretation by higher level software. Then, the converted data is arranged in the memory.

ある実施形態例では、ソフトウェアは、VCU412aによって提供される抽象化層のような、通信層によって提供されるアプリケーションプログラムインターフェース(API)を介して、プロセッサ410aに対して特定のブレークポイントシナリオを要求する。VCU412aは、要求を受信して、要求が必須のセキュリティレベルアクセスを有する場合には、VCU412aは、プロセッサ410aの制御レジスタに、始動シナリオを設定する。そして、通常の実行の間又は実行のテストモードの間に、制御レジスタに規定されたブレークポイントシナリオに遭遇すると、ブレークポイントが始動される。そして、取得された情報が、オペレーティングシステム(OS)からは読み取ることができない領域のメモリ420aに格納される。ソフトウェアは、インターフェースAPIを介して、情報にアクセス、及び、情報を操作及び解釈することができ、したがって、外部のロジック分析器又はオシロスコープを使用する必要がなくなると同時に、シリコンデバイスの内部及び外部通信をより詳細及び完璧に調べることができるようになると考えられる。   In an example embodiment, the software requests a specific breakpoint scenario from the processor 410a via an application program interface (API) provided by the communication layer, such as an abstraction layer provided by the VCU 412a. . If VCU 412a receives the request and the request has mandatory security level access, VCU 412a sets the startup scenario in the control register of processor 410a. A breakpoint is then triggered when a breakpoint scenario defined in the control register is encountered during normal execution or during a test mode of execution. The acquired information is stored in the memory 420a in an area that cannot be read from the operating system (OS). Software can access and manipulate and interpret information via the interface API, thus eliminating the need to use an external logic analyzer or oscilloscope, and at the same time internal and external communication of the silicon device It will be possible to investigate more in detail and thoroughly.

始動シナリオを設定することに加えて、その他の周知の検証技術を、ODLA413aと一体化及び/又は組み合わせてもよい。例えば、ODLA413a及びその他のロジックの組み合わせにより、テストケースを設定し、同様なトレース情報を取得することができる。現実には、設計者が、通常の実行の間には容易に再現されないような最悪の場合のシナリオを想定して設計することは、一般的である。その結果、特定の最悪のシナリオを引き起こす要因でプロセッサ410aを起動させて、実際の反応、及び、実際の応答と前もって行われたシミュレーションとの相関関係の両方を特定することは検証に有用であると考えられる。そこで、ODLA413aがデータを収集するシナリオを生成するべく、特定の論理状態を設定する又は特定の入力を提供するロジックを採用する。   In addition to setting the startup scenario, other well-known verification techniques may be integrated and / or combined with ODLA 413a. For example, a test case can be set and similar trace information can be acquired by a combination of ODLA 413a and other logic. In reality, it is common for a designer to design for a worst-case scenario that is not easily reproduced during normal execution. As a result, it is useful for verification to activate the processor 410a with factors that cause a particular worst case scenario to identify both the actual response and the correlation between the actual response and a previously performed simulation. it is conceivable that. Therefore, in order to generate a scenario in which the ODLA 413a collects data, a logic that sets a specific logic state or provides a specific input is employed.

上記のDFxの説明では、プロセッサ410aの内部状態を取得するのに、ODLA410aに注目していた。しかしながら、上記で示唆したように、一実施形態では、ODLA413a及び/又はその他のロジックは、外部インターフェース及び相互接続を検証するのに使用される。外部ロジック分析器を使用する場合のように、デバイス間の通信を観察するのに電気的トレース(配線)にピコプローブを配置する替わりに、シリコンに含まれるODLA413aは、デバイス内の実際のインターフェースにおいて同じ機能を実行することができる。   In the above description of DFx, attention was paid to the ODLA 410a to acquire the internal state of the processor 410a. However, as suggested above, in one embodiment, ODLA 413a and / or other logic is used to verify external interfaces and interconnections. Instead of placing picoprobes on electrical traces (wires) to observe communication between devices, as in the case of using an external logic analyzer, the ODLA 413a contained in the silicon is at the actual interface within the device. The same function can be performed.

同様な相互接続フックを、オンプロセッサ・インターフェースに含めてもよい。一例として、図2に戻り、DFxフックを、環状構造250の周辺に散在させてもよく、それにより、環状構造250の電気的属性(タイミングマージン、ビットレート、エラーテスト、クロスカップリング、リンギング、アンダーシュート、オーバーシュート等)、環状構造250におけるトラフィック、環状構造250の通信プロトコル(すなわち、キャッシュコヒーレンシプロトコル)、制御インターフェース230/231におけるトラフィック/プロトコル、グラフィックスインターフェース240におけるトラフィック等を検証してもよい。   Similar interconnect hooks may be included in the on-processor interface. As an example, returning to FIG. 2, DFx hooks may be scattered around the periphery of the annular structure 250 so that the electrical attributes (timing margin, bit rate, error test, cross-coupling, ringing, Undershoot, overshoot, etc.), traffic in ring structure 250, communication protocol of ring structure 250 (ie, cache coherency protocol), traffic / protocol in control interface 230/231, traffic in graphics interface 240, etc. Good.

その結果、複雑なインターフェースの検証は、シリコンと一体化されたフックを含み、このフックを使用することにより、物理的、電気的特性、ロジックの状態/トレース、及び、高階層のプロトコルのような、相互接続アーキテクチャの積層体の複数の層を検証してもよい。図4には、このようなインターフェース(プロセッサ410a−dを接続するQPIインターフェース450、プロセッサ410a−dをメモリデバイス420a−dにそれぞれ接続するメモリインターフェース460a−d、及び、レガシープロセッサ410cを周辺制御ハブ470に接続するPCI−E又はその他のインターフェース)が、検証のためのフックを含む構成が描かれている。グラフィックスインターフェース又はサイドバンド相互接続のような、その他のインターフェースにおいても、同様なDFxフックを利用してもよい。しかしながら、図示されているインターフェースはプロセッサを中心とした構成であることに注意されたい。また、PCH470のようなその他のデバイスに、同様なDFxフックを含めて、ペリフェラルインターフェース(PCI−E)、ユニバーサル・シリアル・バス(USB)、シリアル・アドバンスト・テクノロジー・アタッチメント(SATA)、ダイレクト・メディア・インターフェース(DMI)及びその他の周知のコンピュータ相互接続構成のようなその他のインターフェースを検証するようにしてもよい。   As a result, complex interface verification involves hooks integrated with silicon, and by using these hooks, such as physical, electrical properties, logic states / traces, and higher layer protocols Multiple layers of the interconnect architecture stack may be verified. FIG. 4 illustrates such interfaces (QPI interface 450 connecting processors 410a-d, memory interfaces 460a-d connecting processors 410a-d to memory devices 420a-d, and peripheral control hubs of legacy processors 410c, respectively). A configuration is shown in which a PCI-E or other interface connected to 470 includes a hook for verification. Similar DFx hooks may be utilized in other interfaces, such as graphics interfaces or sideband interconnects. However, it should be noted that the illustrated interface is processor-centric. In addition, other devices such as PCH470 include similar DFx hooks, peripheral interface (PCI-E), universal serial bus (USB), serial advanced technology attachment (SATA), direct media Other interfaces such as interfaces (DMI) and other well-known computer interconnect configurations may be verified.

具体的な例を提供するべく、図5には、階層化された相互接続積層構造(interconnect stack)を利用した双方向接続アーキテクチャの一実施形態例のブロック図が示されている。図示されている接続構造の例としては、PCIエクスプレス(PCI−E)及びクイックパスインターコネクト(QPI)が含まれる。主にQPIアーキテクチャを参照して、図示されている階層構造が説明されるが、同様に、PCI、PCI−E、グラフィックス接続、メモリ接続、周辺機器接続又はその他の周知の接続について構造を適用してもよい。図5に示される層、例えば、物理層502は、物理層502a及び物理層502bといったように異なるエージェントに実装されてもよい一般的な層の考察を含む。図に示されるように、相互接続積層構造は、5つの層に分けられ、そのうちの1つ又は複数の層は、設計の実装形態に応じて、選択的である場合もある。例えば、一実施形態において、ルーティング層504は、リンク層503の機能に埋め込まれてもよく、したがって、一実施形態では、ルーティング層は個別の層として設けられない。   To provide a specific example, FIG. 5 shows a block diagram of an example embodiment of a bi-directional connection architecture that utilizes a hierarchical interconnect stack. Examples of connection structures shown include PCI Express (PCI-E) and Quick Path Interconnect (QPI). Although the illustrated hierarchical structure will be described primarily with reference to the QPI architecture, the structure also applies to PCI, PCI-E, graphics connections, memory connections, peripheral connections or other well-known connections May be. The layers shown in FIG. 5, for example physical layer 502, include general layer considerations that may be implemented on different agents, such as physical layer 502a and physical layer 502b. As shown in the figure, the interconnect stack is divided into five layers, one or more of which may be selective depending on the implementation of the design. For example, in one embodiment, the routing layer 504 may be embedded in the functionality of the link layer 503, and thus in one embodiment, the routing layer is not provided as a separate layer.

ある実施形態では、物理層502は、物理的な媒体における情報の電気的転送の役割を担う。例えば、物理的なポイント・ツー・ポイントリンクを、リンク層エンティティ503a及び503bの間で利用してもよい。図示の例では、物理リンクは、双方向差分信号ペア551及び552を有する差分信号スキームを含む。ここで、物理層は、電気的サブブロック及び論理的サブブロックに論理的に分けることができ、物理層は、積層構造の残りの層からの情報の電気的転送からは分離され、リンク層503とは通信を行う。   In some embodiments, the physical layer 502 is responsible for the electrical transfer of information in a physical medium. For example, a physical point-to-point link may be utilized between link layer entities 503a and 503b. In the illustrated example, the physical link includes a differential signaling scheme having bidirectional differential signal pairs 551 and 552. Here, the physical layer can be logically divided into an electrical sub-block and a logical sub-block, and the physical layer is separated from the electrical transfer of information from the remaining layers of the stacked structure, and the link layer 503. Communicate with.

一実施形態において、リンク層503は、積層構造の上部層から、物理層502を抽象化(難読化)し、信頼性の高いデータ転送及び接続されたエージェント/エンティティ間のフロー制御、及び、物理チャネル/インターフェースを複数の仮想チャネル及びメッセージクラスに仮想化といった、リンクに関係するサービスを提供する。ここで、仮想チャネルは、積層構造の上部層によって使用される複数の仮想ネットワークと見なすことができる。例えば、プロトコル層506は、プロトコルメッセージをメッセージクラスに、したがって、1以上の仮想チャネルに、マップするのに、リンク層503によって提供される抽象化に依存する場合がある。   In one embodiment, the link layer 503 abstracts (obfuscates) the physical layer 502 from the top layer of the stacked structure to provide reliable data transfer and flow control between connected agents / entities and physical Provides link related services such as virtualizing channels / interfaces into multiple virtual channels and message classes. Here, the virtual channel can be regarded as a plurality of virtual networks used by the upper layer of the stacked structure. For example, protocol layer 506 may rely on the abstraction provided by link layer 503 to map protocol messages to message classes and thus to one or more virtual channels.

一実施形態において、ルーティング層504は、ソースから送信先へパケットをルーティングする方法を柔軟に提供する。上記したように、非常に単純化されたトポロジーにおいては、ルーティング層504は明確にならず、リンク層503の機能に一体化されてもよい。例えば、ルーティング層504が、パケットをルートするために、<ポート,仮想ネットワーク>の組を特定するのに、リンク層503の抽象化に依存する場合がある。ここで、ルーティングテーブル情報は、パケットのルーティング情報を提供するべく保持される。   In one embodiment, routing layer 504 provides a flexible way to route packets from a source to a destination. As noted above, in a very simplified topology, the routing layer 504 may not be clear and may be integrated into the function of the link layer 503. For example, the routing layer 504 may rely on the abstraction of the link layer 503 to identify the <port, virtual network> pair to route the packet. Here, the routing table information is held so as to provide packet routing information.

一実施形態において、トランスポート層505は、エンド・ツー・エンドの信頼性の高い送信サービスを提供する。ルーティング層504と同様に、トランスポート層505は、設計実装形態に基づいて、必要に応じて設けられる。一例として、トランスポート層505は、プロトコル層506に対する信頼性の高い送信サポートを提供するのに、ルーティング層504に依存する。一実施形態では、相互接続アーキテクチャ内において、構成要素のサブセットは、トランスポート層505を含む。その結果、この構成要素のサブセットが、トランスポート層505に関係するパケットのサブフィールドを規定し、その他の構成要素は、このサブフィールドを規定しない場合がある。   In one embodiment, the transport layer 505 provides an end-to-end reliable transmission service. Similar to the routing layer 504, the transport layer 505 is provided as needed based on the design implementation. As an example, transport layer 505 relies on routing layer 504 to provide reliable transmission support for protocol layer 506. In one embodiment, within the interconnect architecture, the subset of components includes a transport layer 505. As a result, this subset of components may define a subfield of a packet related to the transport layer 505, and other components may not define this subfield.

一実施形態において、プロトコル層506は、キャッシュコヒーレンス、順序付け、ピア・ツー・ピア通信、割り込み伝達等の、ノード/エージェント間の高階層の通信を実装する。すなわち、プロトコル層506は、許容されるメッセージ、要求、応答、フェーズ、コヒーレンス状態等を、ホームノード、ピアノード、キャッシングノード及び非キャッシングノードのようなノード又はエージェントに対して規定する。ホームノードメッセージ、スヌープメッセージ、応答メッセージ等のメッセージの例については以下で説明する。   In one embodiment, protocol layer 506 implements higher layer communication between nodes / agents, such as cache coherence, ordering, peer-to-peer communication, interrupt delivery, and the like. That is, protocol layer 506 defines allowed messages, requests, responses, phases, coherence states, etc. for nodes or agents such as home nodes, peer nodes, caching nodes and non-caching nodes. Examples of messages such as home node messages, snoop messages, response messages, etc. will be described below.

層及び関連するロジックの考察は、あらゆる態様で組み合わされてもよい。例えば、プロトコルロジックは、物理層、すなわち、送信ロジック又は受信ロジックと結合されてもよい。ここで、図5から分かるように、一実施形態では、プロトコルロジックは、物理層ロジックと直接結合さることなく、その他の層のロジックを介して結合される。さらに、一実施形態において、相互接続積層構造は、キャッシュ制御ロジック又はキャッシュメモリロジックのような内部の構成要素ロジックと結合され、適切なキャッシュコヒーレンスアクションを開始する。   The discussion of layers and associated logic may be combined in any manner. For example, protocol logic may be combined with the physical layer, i.e., transmit logic or receive logic. Here, as can be seen from FIG. 5, in one embodiment, the protocol logic is coupled through other layers of logic rather than directly coupled with physical layer logic. Further, in one embodiment, the interconnect stack is combined with internal component logic such as cache control logic or cache memory logic to initiate appropriate cache coherence actions.

一実施形態において、QPIベースの相互接続は、Modified Exclusive Shared Invalid Forward(MESIF:変更・排他・共有・無効・転送)プロトコルを含み、信号及びバスのシリアル化の制限を伴うことなく、スヌーププロトコルと同様なプロトコルを提供する。スヌーピングキャッシュプロトコルのように、MESIFは、コヒーレンス(一貫性)を維持するのに、データのキャッシュされたコピーを有するノードに依存する。同期及び中央化されたブロードキャスト(一斉送信)ではなく、ポイント・ツー・ポイントリンクを使用すると、タイムワープ(time‐warp)の問題が起こる、すなわち、異なるノードから見ると、イベントが異なる順番で発生しているように見えてしまう。一例として、MESIFプロトコルは、タイムワープによって生じる可能性のあるエラーを認識することによってこの問題に対処し、プロトコル又はソフトウェアによる解決方法を提供する。   In one embodiment, the QPI-based interconnect includes a Modified Exclusive Shared Invalid Forward (MESIF) protocol, with no restrictions on signal and bus serialization and A similar protocol is provided. Like the snooping cache protocol, MESIF relies on nodes that have a cached copy of data to maintain coherence. Using point-to-point links rather than synchronized and centralized broadcasts causes time-warp problems, ie events occur in a different order when viewed from different nodes It looks like you are doing. As an example, the MESIF protocol addresses this problem by recognizing errors that may be caused by time warping and provides a protocol or software solution.

ホームノードは、多くの場合、データのキャッシュされていないコピーと関連付けられる。その結果として、ホームノードは、ホームノードと関連付けられたデータに関するトランザクションに参加する場合がある。しかしながら、ホームノードは、トランザクションと関連付けられた"クリティカルパス(critical path)"に必ずしも含まれる必要はなく、コンフリクト及びタイムワープの問題を解決するために、ホームノードはトランザクションに挿入されてもよい。一実施形態では、このスキームの並列−ブロードキャストの性質があることから、MESIFは、キャッシュ可能なデータのコピーを取得すると同時に、プロトコルのスヌーピングに関連するレイテンシを低くすることができ、ある場合には、要求−応答を1往復するだけの最小のレイテンシとすることができる。   A home node is often associated with an uncached copy of data. As a result, the home node may participate in a transaction related to data associated with the home node. However, the home node does not necessarily need to be included in the “critical path” associated with the transaction, and the home node may be inserted into the transaction to solve the conflict and time warp problems. In one embodiment, because of the parallel-broadcast nature of this scheme, MESIF can obtain a cacheable copy of the data while simultaneously reducing the latency associated with protocol snooping, in some cases , Request-response can be minimized with only one round trip.

一実施形態において、MESIFプロトコルに関する基本的なトランザクションは、全てのピアノード及びホームノードに最初の要求をブロードキャストすることを伴う。コピーが、ステートE、F又はMコヒーレーンシ状態でキャッシュされる場合には、コピーは応答に含まれる。そして、第2のメッセージが、ホームノードに送信されて、要求が満たされたことを通知する。要求されたラインがキャッシュされていない場合、又は、Sステートのコピーのみが存在する場合には、ホームノードに送信された第2の要求を使用して、前の要求を確認する。ホームノードが有する前の要求は、その時までには、メモリからフェッチされていると考えられる。何れの場合にせよ、ホームノードは、同期及びコンフリクトを解消する目的で、第2の要求に応答する(及び、最初の要求、最初の要求及び第2の要求は組み合わせられる場合もある)。ここで、ホームノードは、1以上のキャッシュを有してもよいので、最初の要求にその他のノードと同じように応答してもよい。   In one embodiment, the basic transaction for the MESIF protocol involves broadcasting the initial request to all peer nodes and home nodes. If the copy is cached in state E, F or M coherency state, the copy is included in the response. A second message is then sent to the home node to notify that the request has been satisfied. If the requested line is not cached, or if only a copy of the S state exists, the second request sent to the home node is used to confirm the previous request. The previous request held by the home node is considered to have been fetched from memory by that time. In any case, the home node responds to the second request for the purpose of resolving synchronization and conflicts (and the first request, the first request and the second request may be combined). Here, since the home node may have one or more caches, it may respond to the initial request in the same manner as the other nodes.

一実施形態において、コンフリクトは、分散させた態様で対応される。個々の要求は、任意の時間の長さ分、遅延する可能性があるため、タイムワープの問題により、コンフリクトを検出するのが難しくなっている。しかしながら、各ノードが、要求をした後にコンフリクトをモニタすれば、コンフリクトを検出できる。複数のノードが、コンフリクトを検出することが考えられるが、例として、複数のノードのうちの少なくとも1つがコンフリクトを検出するとする。この場合、一実施形態では、ノードからの応答は、コンフリクト情報を含む可能性がある。   In one embodiment, conflicts are addressed in a distributed manner. Because individual requests can be delayed for any length of time, time warp issues make it difficult to detect conflicts. However, a conflict can be detected if each node monitors the conflict after making a request. Although a plurality of nodes may detect a conflict, as an example, it is assumed that at least one of the plurality of nodes detects a conflict. In this case, in one embodiment, the response from the node may include conflict information.

一実施形態において、応答からのデータのコピーを受信するノードは、データを受信するとすぐに内部でそのデータを使用することができるが、そのノードが確認応答(confirmation)を受信するまでは、そのデータの利用をシステムの残りの部分に可視化することはできない、すなわち、グローバルに可視状態とすることはできない。確認応答は、要求ノードがコピーを別のノードに転送し、また自身のキャッシュからそのノードを立ち退かせる(evict)よう指示する命令を含んでもよい。そして、あるノードがキャッシュされたデータを供給することによって、別のノードからの要求に応答するときに、一実施形態では、そのノードは、ノードがデータを転送したことを確認した旨の応答をホームノードから受信するまで、受信する同じキャッシュラインについてのその他の要求を遅らせるので、全てのノードが、(書き込み可能な)キャッシュラインの転送を同じ順番で観察すると仮定することができる。   In one embodiment, a node that receives a copy of the data from the response can use the data internally as soon as it receives the data, but until that node receives a confirmation. Data usage cannot be visualized in the rest of the system, ie it cannot be made visible globally. The acknowledgment may include instructions that direct the requesting node to transfer the copy to another node and to evict that node from its cache. Then, when a node responds to a request from another node by supplying cached data, in one embodiment, the node responds with a confirmation that the node has transferred the data. Since other requests for the same cache line received are delayed until received from the home node, it can be assumed that all nodes observe the transfer of (writeable) cache lines in the same order.

上記したように、ホームノードは、キャッシュされていないデータの格納場所となっていると同時に、プロセッサ及びキャッシュを含んでもよい。ホームノードのプロセッサが、キャッシュミスすると、ホームノードは、全てのその他の(ピア)ノードに対して要求をブロードキャストし、ホームノードは、その他の要求がホームノードに到着すると内部で要求を扱う。これは、ホームノードが明示的に、自身に(ホームノード)にメッセージを送信しない特別なケースである。加えて、ローカルにキャッシュされたデータに対する外部からの要求が到着すると、ホームノードは、適切に応答する。   As described above, the home node may be a storage location for uncached data, and may include a processor and a cache. When the home node processor misses the cache, the home node broadcasts the request to all other (peer) nodes, and the home node handles the request internally when the other request arrives at the home node. This is a special case where the home node does not explicitly send a message to itself (home node). In addition, when an external request for locally cached data arrives, the home node responds appropriately.

開示されたメッセージプロトコルは、コヒーレンス(キャッシュ及びホーム)エージェント、非キャッシングエージェント及びその他のエージェント(メモリ制御部、プロセッサ等)の間で許可されるメッセージのセットを規定する。コヒーレンシプロトコルは、コヒーレンスな(一貫性のある)考え方を表現するアルゴリズムにおける言語及び文法として、メッセージを使用する。このアルゴリズムは、分別して要求を順番付けし、コンフリクトを解消し、キャッシングエージェント間の相互作用を記述する。上記では、MESIFプロトコルが説明されたが、必ずしもMESIFキャッシュコヒーレンシプロコルの使用が必要であるわけではない。例えば、Forward(転送)ステートを使用しなくてもよく、周知のMESIプロトコルを使用してもよい。さらに、上記の説明は、MESIFプロトコルの一実施形態の概論の一例を含むまでである。したがって、上記の様々な構成要素は、別の実施形態では、異なっていてもよい。   The disclosed message protocol defines a set of messages that are allowed between coherence (cache and home) agents, non-caching agents, and other agents (memory controllers, processors, etc.). Coherency protocols use messages as a language and grammar in algorithms that express a coherent idea. This algorithm sorts and orders requests, resolves conflicts, and describes the interaction between caching agents. Although the MESIF protocol has been described above, the use of a MESIF cache coherency protocol is not necessarily required. For example, the Forward state may not be used, and a well-known MESI protocol may be used. Furthermore, the above description is up to and including an example of an overview of one embodiment of the MESIF protocol. Accordingly, the various components described above may be different in other embodiments.

上記から分かるように、このような複合体を検証及びデバッグするのは、(電気的及びプロトコルの観点の両方において)非常に煩雑なプロセスとなる。そこで、一実施形態では階層化された相互接続の積層構造全体にわたる検証を助けるべく、図4のプロセッサ410aは、DFxを含む。例えば、ODLA413aは、始動シナリオ又はその他のイベントに応答して、相互接続の積層構造のトラフィック、トレース又はステートを取得することができる。一実施形態において、ステートとは、デバイス、エージェント及び/又は検証オブジェクト(対象)のその他の構成要素の状態のスナップショットを指す。ステートは、また、アーキテクチャ又は検証オブジェクトの構造的な状態とも称することができる。別の例では、ステートは、状態のスナップショットにおけるパラメータの値の組み合わせによって規定される。したがって、相互接続構造において100個のパラメータが特定される場合には、これら100個のパラメータの異なる値の全ての組み合わせが、それぞれ異なる状態を表すと考えられる。   As can be seen from above, verifying and debugging such a complex is a very cumbersome process (both in terms of electrical and protocol). Thus, in one embodiment, the processor 410a of FIG. 4 includes DFx to aid verification across the layered interconnect stack. For example, the ODLA 413a can obtain traffic, traces or states of the interconnect stack in response to a startup scenario or other event. In one embodiment, a state refers to a snapshot of the state of a device, agent, and / or other component of a verification object (subject). A state can also be referred to as an architectural or structural state of a verification object. In another example, a state is defined by a combination of parameter values in a state snapshot. Therefore, if 100 parameters are specified in the interconnect structure, all combinations of different values of these 100 parameters are considered to represent different states.

1つのステートが複雑なプロトコルの多数のパラメータを参照することから、キャッシュコヒーレンシプロトコルの1つのステートの非常に単純化した例として、1つのプロセッサが共有コヒーレンシステートの1つのキャッシュラインを有し、2つのプロセッサが無効ステートのキャッシュラインを有し、これらのプロセッサのうちの1つにおいてスヌープが受信された場合を考える。ここで、複数のプロトコルエージェント、複数のステートに保持された複数のキャッシュライン、及び、特定の送信先で受信された要求/メッセージが存在する。このような単純化された例のみで、少ない数のパラメータが存在する。別の例として、データペイロードを有する書き込みトランザクションは、複数のステートになる可能性があり、書き込み先、書き込まれるデータペイロードと関連付けられたキャッシュラインのステート、相互接続のトラフィック、その他のエージェントによる書き込み応答等のその他のパラメータが様々に変更されると考えられる。   As a very simplified example of one state of a cache coherency protocol, one processor has one cache line of shared coherency state, since one state refers to many parameters of a complex protocol. Consider the case where one processor has an invalid state cache line and a snoop is received on one of these processors. Here, there are a plurality of protocol agents, a plurality of cache lines held in a plurality of states, and a request / message received at a specific destination. Only in such a simplified example, there are a small number of parameters. As another example, a write transaction with a data payload can be in multiple states, the write destination, the state of the cache line associated with the data payload being written, the interconnect traffic, and the write response by other agents It is considered that other parameters such as.

したがって、一実施形態では、パラメータとは、プロトコル、物理的ロジック、デバイス、エージェント、又は、様々なステートに変化する又は様々な状態であるグローバルステート/変数における、あらゆる要素を指す。具体的な例としては、キャッシュコヒーレント相互接続プロトコルを有効にする場合、プロセッサ410aのようなキャッシングエージェントに対するパラメータには、スヌープに対するキャッシュ応答が含まれる。ここで、キャッシュ応答パラメータの第1の値として、要求デバイスにスヌープされたキャッシュラインを転送することが含まれ、キャッシュ応答パラメータの第2の値として、そのキャッシュラインのホームノードへの書き込みが含まれる。その他一般的なコヒーレンシプロトコルパラメータには、様々な種類のエージェント、エージェント応答、デバイス応答、相互接続応答、メッセージ応答、応答の種類、特定のアクションに対するその他の応答、応答先、メッセージ、メッセージの種類、メッセージ送信先、要求、要求の種類、要求先、キャッシュの種類、キャッシュのステート、キャッシュロケーション、レジスタのステート等が含まれる。   Thus, in one embodiment, a parameter refers to any element in a protocol, physical logic, device, agent, or global state / variable that changes to or is in various states. As a specific example, when enabling a cache coherent interconnect protocol, the parameters for a caching agent such as processor 410a include a cache response to snoop. Here, the first value of the cache response parameter includes transferring the snooped cache line to the requesting device, and the second value of the cache response parameter includes writing to the home node of the cache line. It is. Other common coherency protocol parameters include various types of agents, agent responses, device responses, interconnect responses, message responses, response types, other responses to specific actions, response destinations, messages, message types, Message destination, request, request type, request destination, cache type, cache state, cache location, register state, and the like are included.

しかしながら、物理的相互接続、通信プロトコル、又は、その他のプロトコルのようなアーキテクチャは、検証の対象となりうることから、パラメータは、様々な種類の変数を含んでもよい。可能性のあるプロトコル関連のパラメータの例示的であって不完全なリストには、多数のプロトコルエージェント、プロトコルエージェントの種類、エージェントついてのキャッシュ実装の種類、様々な種類のプロトコルエージェントの数、プロトコルエージェントの型、プロトコルエージェントのステート、プロトコルエージェント又はバスにおける回路又はステートマシンのステート、エージェント識別子、多数のプロトコル要求、要求の種類、要求元、要求先、要求のステート、参照されるオペレーション、オペレーションのソース、参照されるアドレス、アクセスされるアドレス、アドレスロケーションの状態、データペイロード、プロトコルエージェントのステート、キャッシュのステート、キャッシュラインのステート、電圧、周波数、電源状態又はその他の物理的プロトコル属性といった物理的プロトコルステートパラメータが含まれる。   However, since an architecture such as a physical interconnect, communication protocol, or other protocol can be subject to verification, the parameters may include various types of variables. An exemplary and incomplete list of possible protocol-related parameters includes a large number of protocol agents, protocol agent types, cache implementation types for agents, number of different types of protocol agents, protocol agents Type, protocol agent state, protocol agent or bus circuit or state machine state, agent identifier, multiple protocol requests, request type, request source, request destination, request state, referenced operation, source of operation Address referenced, address accessed, address location state, data payload, protocol agent state, cache state, cache line state, voltage, Wave number, include physical protocol state parameter, such as power state, or other physical protocol attribute.

物理層502a、502bに関して、相互接続の物理的パラメータの幾つかの例には、電圧、アンダーシュート、オーバーシュート、周波数、周期、スペクトル拡散、ジッタ、タイミングマージン、ノイズ等が含まれる。その他のパラメータとしては、接続に関連するステートマシンのステート、エージェントの種類、エージェントのステート、エージェントにおけるI/O回路のステート等が含まれる。しかしながら、アーキテクチャ内のあらゆる可変要素を、パラメータと見なしてもよい。   For the physical layers 502a, 502b, some examples of interconnect physical parameters include voltage, undershoot, overshoot, frequency, period, spread spectrum, jitter, timing margin, noise, and the like. Other parameters include the state of the state machine related to the connection, the type of agent, the state of the agent, the state of the I / O circuit in the agent, and the like. However, any variable in the architecture may be considered a parameter.

したがって、一実施形態では、ODLA413aは、目的のインターフェースの全て又は一部分を含んでもよいステート又はトレースを取得するのに採用される。始動シナリオのような規定されたイベントが発生するのに応答して特定のスナップショットを1回取得するのに加えて、ODLA413aは、トラフィック(インターフェースにおける通信の複数のステート)を取得するのに採用される。このシナリオでは、デバイス間で交換されるプロトコルが取得される。データの処理後、高レベルのソフトウェアは、正しいプロトコル交換がインターフェースにおいて発生したかを確認するプロトコルダイアグラムを生成することができる。上記の例の続きを説明する。DFxシリコンは、排他的コヒーレンシステートのキャッシュラインに対する特定のスヌープメッセージを受信するプロセッサ410aと関連付けられた始動シナリオを生成する又は搭載してもよい。そして、ODLA413aは、プロセッサ410aのスヌープメッセージに対する応答といった情報を、メモリ420aのある部分で取得する。VCU412aによって提供されるAPIを介して、適切なアクセスを有する第3者のベンダー(TPV)は、メモリ420aの第2部分に保持されている情報に基づいてプロトコルを構築することができ、規定されたステートの環境下で特定のスヌープメッセージに適切な応答が与えられたことを確認できる。   Thus, in one embodiment, ODLA 413a is employed to obtain a state or trace that may include all or a portion of the target interface. In addition to taking a specific snapshot once in response to a defined event such as a startup scenario, ODLA 413a employs to capture traffic (multiple states of communication at the interface) Is done. In this scenario, a protocol exchanged between devices is obtained. After processing the data, the high-level software can generate a protocol diagram that confirms whether the correct protocol exchange occurred at the interface. The continuation of the above example will be described. The DFx silicon may generate or mount a startup scenario associated with the processor 410a that receives a specific snoop message for a cache line in an exclusive coherency state. The ODLA 413a acquires information such as a response to the snoop message from the processor 410a in a certain part of the memory 420a. Via an API provided by VCU 412a, a third party vendor (TPV) with appropriate access can build and define a protocol based on information held in the second part of memory 420a. It is possible to confirm that an appropriate response has been given to a specific snoop message in an environment of a different state.

この例から分かるように、同様な方法及び装置を、電気的特性、及び、上記で紹介されたQPI相互接続450のMESIFキャッシュコヒーレントプロトコルのようなプロトコルの検証にも使用することができると考えられる。オンシリコンフックが、階層化された接続構造のようなあらゆるインターフェースの検証を提供できることを示すべく、上記QPI相互接続450の検証例から推定を行ってもよい。   As can be seen from this example, it is believed that similar methods and apparatus can be used to verify electrical characteristics and protocols such as the MESIF cache coherent protocol of QPI interconnect 450 introduced above. . Inferences may be made from the QPI interconnect 450 verification example above to show that on-silicon hooks can provide verification of any interface, such as a layered connection structure.

ODLA413a及びプロセッサ410aの内部及び外部インターフェースに対する検証フック以外に、その他のシリコンフックを、プロセッサ410aに組み込んでもよい。例えば、一実施形態では、特定のマイクロアーキテクチャフックが、プロセッサ410aに組み込まれる。例えば、同時係属中の出願番号11/143,425号明細書"ENHANCEMENTS TO PERFORMANCE MONITORING ARCHITCUTRE for CRITICAL PATH‐BASED ANALYSIS(クリティカルパスベースの分析のためのアーキテクチャの性能監視の改善)"には、マイクロアーキテクチャの性能を監視する装置及び方法が説明されている。性能は、シミュレーション、分析的思考、リタイアメント・プッシュアウト測定、全体の実行時間、及び、インスタンス毎のイベントコストのその他の測定方法を通じて、監視される。そして、同様な装置がシリコンに含まれて、マイクロアーキテクチャのイベントに基づく命令のタグ付け/命令のカウント、リタイアメント・プッシュアウトの測定、命令/プログラムの全実行時間の測定、及び、プロセッサのその他の周知の機能の検証/デバッグが行われる。   In addition to the verification hooks for the internal and external interfaces of ODLA 413a and processor 410a, other silicon hooks may be incorporated into processor 410a. For example, in one embodiment, certain microarchitecture hooks are incorporated into the processor 410a. For example, co-pending application Ser. No. 11 / 143,425 “ENHANCEMENTS TO PERFORMANCE MONITORING ARCHITCUTRE for CRITICAL PATH-BASED ANALYSIS” An apparatus and method for monitoring the performance of the system is described. Performance is monitored through simulation, analytical thinking, retirement pushout measurements, overall execution time, and other methods of measuring event costs per instance. And a similar device is included in the silicon, tagging instructions / counting instructions based on microarchitecture events, measuring retirement pushout, measuring total execution time of instructions / programs, and other processor Verification / debugging of known functions is performed.

別の例として、プロセッサ410aは、電力制御ユニット(PCU)414aを含み、プロセッサ410a内の処理要素の電力状態のような電力を調整及び制御する。加えて、DFxフックをPCU414aと共にプロセッサに組み込んでもよく、それにより、電力消費レベル、様々な電力状態の継続時間、電力状態遷移の頻度、電力状態遷移のプロトコル、及びその他の周知の電力関係の測定基準のような、様々な電力検証測定基準を取得してもよい。ODLA413aのオペレーションと同様に、要因が供給されると又は始動シナリオの発生に応答して、電力情報が、通常のオペレーションの間に収集されてもよいし、特定の最悪の電力状態のシナリオ(すなわち、インターフェースに送信される最悪のパターンによって生成される最悪の電力共振周波数)の場合のテストモードの間に収集されてもよい。電力のDFx及びオペレーションについは、図28を参照して、後に詳細に説明する。   As another example, the processor 410a includes a power control unit (PCU) 414a that regulates and controls power, such as the power state of processing elements within the processor 410a. In addition, DFx hooks may be incorporated into the processor along with the PCU 414a so that power consumption levels, duration of various power states, frequency of power state transitions, power state transition protocols, and other well-known power-related measurements. Various power verification metrics, such as criteria, may be obtained. Similar to the operation of ODLA 413a, power information may be collected during normal operation when a factor is supplied or in response to the occurrence of a startup scenario, or a specific worst-case power scenario (ie, , Worst power resonance frequency generated by the worst pattern transmitted to the interface). The power DFx and operation will be described in detail later with reference to FIG.

電気的なシステム内のあらゆるデバイスに同様に含まれていてもよいプロセッサ中心のDFxの例示にとどまらず、その他のプラットフォームレベルでのDFxについても含まれると考えられる。上記及び以下に記載されるDFx(デバッグの機能)は、本明細書に記載されるテストアーキテクチャのその他の部分使用することなく、個別に実装されてもよい。例えば、ブートプロセスの初期段階における信号情報の収集は、図6−8を参照して以下で詳細に説明するが、検証制御ユニット又は階層化され抽象化されたアクセスを使用せずに、レガシーシステムに実装してもよい。   It is not limited to the illustration of processor-centric DFx that may be included in any device in the electrical system as well, but is also considered to include DFx at other platform levels. The DFx (debug functionality) described above and below may be implemented separately without using other parts of the test architecture described herein. For example, the collection of signal information in the early stages of the boot process is described in detail below with reference to FIGS. 6-8, but without using a verification control unit or layered abstracted access. May be implemented.

図6には、信号情報における初期の電力を収集する構成のブロック図の一実施形態が示されている。この実施形態では、PCH605が、ダイレクト・メディア・インターフェース(DMI)635を介してプロセッサ640に連結されている。通常、電源がONの状態では、最初にPCH605に電力が投入される。多くのシリコンデバイスと同様に、PCH605は、複数段階で電力投入される。例えば、特定の複数のウェルが特定の順番で電力投入される。純粋に例示するだけの例であるが、クロック610が先ず最初に電源投入され、次に、サスペンドウェル、アクティブウェル、リアルタイムクロックウェル等のウェル615及び620に電源が投入される。最後に、管理容易性エンジン(manageability engine)及びテストアクセスポート(TAP)のようなテストロジック625がイネーブルされる。   FIG. 6 shows an embodiment of a block diagram of a configuration for collecting initial power in signal information. In this embodiment, PCH 605 is coupled to processor 640 via direct media interface (DMI) 635. Normally, when the power is on, power is first applied to the PCH 605. Like many silicon devices, PCH 605 is powered on in multiple stages. For example, a specific plurality of wells are powered on in a specific order. For example, purely by way of example, the clock 610 is first powered on, and then the wells 615 and 620 such as the suspend well, active well, real time clock well are powered on. Finally, test logic 625, such as a manageability engine and a test access port (TAP) is enabled.

ある環境下では、特定の電力投入又はテストロジック625がイネーブルされる前に遷移する初期信号は、見ることができない(これら信号の発行について可視性が存在しない)が、これは、これら信号に関連付けられた遷移情報が、テストロジック625がブートプロセスでイネーブルされるまでに失われてしまうからである。しかしながら、検証及びデバッグの間は、そのような信号についての情報を見ることができる又は収集できるようになれば有用である。このような信号の例には、電力管理制御リセット信号が含まれる。この例では、この信号の遷移により、電力管理制御部に、フェッチ及び実行を開始させるよう命令される。したがって、(1)信号が遷移しなかった、(2)信号が遷移した、及び/又は(3)いつ信号が遷移したか、について判断することができ、電力管理制御部がハングするシナリオ("固まった"場合のシナリオ)のデバッグを助ける。   Under certain circumstances, initial signals that transition before specific power-up or test logic 625 is enabled are not visible (there is no visibility on the issue of these signals), but this is associated with these signals. This is because the transition information provided is lost before the test logic 625 is enabled in the boot process. However, during verification and debugging, it would be useful if information about such signals could be seen or collected. Examples of such signals include power management control reset signals. In this example, this signal transition instructs the power management controller to start fetching and execution. Thus, it is possible to determine (1) the signal did not transition, (2) the signal transition, and / or (3) when the signal transitioned, and the power management controller hangs scenario (" Helps debug "set up scenarios".

このように、一実施形態において、電力投入初期状態の信号取得ロジック(初期ブーストテストロジックとも称されてもよい)は、デバイスに完全に電力が投入される前の、初期状態の信号情報を取得する。トレースのような信号情報を取得するあらゆる周知の方法又は装置を利用してもよい。ここで、信号取得ロジック630は、最初の電力投入の後に特定の信号情報を取得し、この信号情報を格納するロジックを含む。そして、テストロジック625がイネーブルされると、情報が読み出されて、適切なデバッグオペレーションが実行される。   Thus, in one embodiment, power-up initial state signal acquisition logic (also referred to as initial boost test logic) acquires initial state signal information before the device is fully powered up. To do. Any known method or apparatus for obtaining signal information such as traces may be utilized. Here, the signal acquisition logic 630 includes logic for acquiring specific signal information after the first power-on and storing the signal information. Then, when test logic 625 is enabled, information is read and appropriate debug operations are performed.

図7には、電子システムのブートの間の初期信号を取得する取得ロジックの高レベルブロック図の一実施形態が示されている。図に示すように、取得ロジック700は、対象の信号(すなわち、信号1、2、3、・・・11のような、ブートの間に監視される信号)についての情報を取得/保持するレジスタのような格納要素720を含む。一実施形態において、電力が投入されると、取得ロジック700は、(ユーザーのトリガ又は第3者のアクセス/プログラミングを必要とすることなく)初期設定としての信号情報の取得を開始する。別の例として、情報の取得は、特定の信号/クロックの遷移又は特定のウェルがイネーブルされた等の特定の条件が発生した時に、開始する。同様に、所定の時間/サイクルの経過、一定期間対象の信号の遷移を検出しなかった時、対象の最後の信号が遷移した時、対象の最後の信号が所定期間遷移しなかった時、特定のウェルがイネーブルされた時、テストロジックがイネーブルされた時、プログラムが取得を止めるべきだと示した時、又は、その他の周知のイベントの発生時のような条件が発生すると、信号の取得を停止させてもよい。   FIG. 7 illustrates one embodiment of a high level block diagram of acquisition logic that acquires an initial signal during booting of an electronic system. As shown, the acquisition logic 700 is a register that acquires / holds information about signals of interest (ie, signals monitored during boot, such as signals 1, 2, 3,... 11). A storage element 720 such as In one embodiment, when powered on, the acquisition logic 700 begins acquiring signal information as a default (without requiring a user trigger or third party access / programming). As another example, the acquisition of information begins when a specific condition occurs, such as a specific signal / clock transition or a specific well enabled. Similarly, when a predetermined time / cycle elapses, a target signal transition is not detected for a certain period of time, a target last signal transitions, a target last signal does not transition for a predetermined period, When a condition occurs, such as when a well is enabled, when test logic is enabled, when a program indicates that acquisition should stop, or when other well-known events occur, It may be stopped.

また、(遷移の時間、遷移回数、遷移の方向、トレース等)信号情報取得の周知の装置又は方法を利用してもよく、特定の例の実施形態について、図7を参照して説明する。このシナリオでは、レジスタ720が、対象の信号(又は、信号のそれぞれ)がいつ遷移したかの時間を記録する。例えば、レジスタ720は、信号名フィールド及びタイムスタンプフィールドを含む。信号名フィールドは、対象の信号を特定するビット表現を保持する(すなわち、対象の特定の信号に対応するように認識可能なビットパターンを保持する)。タイムスタンプフィールドは、信号名フィールドで特定される信号の遷移に対応する時間のビット表現を保持する。あるシナリオでは、タイムスタンプ値は、図6のPCH605のようなデバイスのシリコンスキュー全体にわたって決定性を有するものである。また、タイムスタンプは、デバッグに使用されるシリコンスキュー全体にわたって決定性を有するものである。   Also, any known apparatus or method of signal information acquisition (transition time, number of transitions, transition direction, trace, etc.) may be utilized, and a specific example embodiment will be described with reference to FIG. In this scenario, register 720 records the time when the signal of interest (or each of the signals) transitioned. For example, the register 720 includes a signal name field and a time stamp field. The signal name field holds a bit representation that identifies the signal of interest (ie, holds a recognizable bit pattern to correspond to the particular signal of interest). The time stamp field holds a bit representation of the time corresponding to the signal transition specified in the signal name field. In one scenario, the timestamp value is deterministic across the silicon skew of a device such as PCH 605 of FIG. The time stamp is deterministic over the entire silicon skew used for debugging.

さらに、レジスタ720は、信号名フィールド及びタイムスタンプフィールド保持有効情報を示す有効値を保持するステータスフィールドを有してもよい。反対に、無効値は、同じレジスタにおける対応するフィールドのステートが無効であることを示す。一実施形態において、レジスタ720は、設計者によって決定されるように、又は、後に製造者によって更新されるように、対象の信号全てに関する情報を保持するレジスタアレイを含む。さらに、レジスタ720は、Nの深さ(Nは、正の整数)を有する循環バッファとして実装されてもよく、N個のエントリのうちの最後のセットを取得して、最後のN個の電力ステート遷移の問題の特定を可能にする。   Further, the register 720 may include a status field that holds a valid value indicating the signal name field and the time stamp field holding valid information. Conversely, an invalid value indicates that the state of the corresponding field in the same register is invalid. In one embodiment, register 720 includes a register array that holds information about all signals of interest, as determined by the designer or later updated by the manufacturer. Further, register 720 may be implemented as a circular buffer having a depth of N (N is a positive integer), obtaining the last set of N entries and the last N power Enables identification of state transition problems.

より具体的な例を提供するべく、電力制御ユニットリセット信号(信号11)を取得/監視すると仮定する。この例では、信号における電力が、ブートプロセスを開始させる。そして、PCH605のようなデバイスは、電力投入を開始する。レジスタ720は、初期値に初期化されてもよい。電力投入信号又は初期の起動信号のその他の遷移に応答して、カウンタ725がカウントを開始する。信号11が遷移すると、パルス生成ロジック710がパルスを生成する。パルス生成ロジックは、信号11(図示せず)のエッジ検出ロジックも含む。その結果、信号11を特定するビットパターン(電力制御ユニットリセット信号)が、信号名フィールド735に格納される。その他の情報が格納されてもよく、例えば、遷移の方向を示すビットが格納されてもよい。加えて、信号名フィールドを更新するために、カウンタ725の値(タイムスタンプ)が、タイムスタンプフィールド730に格納される。そして、ステータスフィールド740に、信号名フィールド735及びタイムスタンプフィールド730が有効であることを示す高い論理値のような有効値が設定される。   To provide a more specific example, assume that the power control unit reset signal (signal 11) is acquired / monitored. In this example, the power in the signal initiates the boot process. A device such as PCH 605 then starts powering up. Register 720 may be initialized to an initial value. In response to other transitions in the power-up signal or the initial activation signal, the counter 725 starts counting. When signal 11 transitions, pulse generation logic 710 generates a pulse. The pulse generation logic also includes edge detection logic for signal 11 (not shown). As a result, a bit pattern (power control unit reset signal) that specifies the signal 11 is stored in the signal name field 735. Other information may be stored, for example, a bit indicating the direction of transition may be stored. In addition, the value of the counter 725 (time stamp) is stored in the time stamp field 730 to update the signal name field. Then, a valid value such as a high logical value indicating that the signal name field 735 and the time stamp field 730 are valid is set in the status field 740.

更なる信号の遷移について、このプロセスを繰り返してもよい。上記したように、循環バッファの構成を使用して、循環バッファの深さと同じ数の電力ステート遷移に対する情報を保持してもよい。さらに、信号の遷移が取得されると、一例では、カウンタ725は、カウントを継続する(最初のカウントからの絶対的タイムスタンプとなる)。別の例では、カウンタ725は、リセットされる(すなわち、1つ前の信号遷移からのタイムスタンプとなる)。さらに、上記したように、信号取得ロジック700は、最後の信号遷移又は所定期間最後の信号遷移が検出されなかった(ハング又は"固まった"場合のシナリオの可能性)等の所定のイベントが発生すると、信号情報取得を停止する。   This process may be repeated for further signal transitions. As described above, a circular buffer configuration may be used to hold information for the same number of power state transitions as the circular buffer depth. Further, once a signal transition is obtained, in one example, counter 725 continues to count (becomes an absolute time stamp from the first count). In another example, the counter 725 is reset (i.e., the time stamp from the previous signal transition). Further, as described above, the signal acquisition logic 700 generates a predetermined event such as the last signal transition or the last signal transition not detected for a predetermined period (possibility of a scenario in the case of a hang or “set”). Then, signal information acquisition is stopped.

一実施形態では、情報の取得が完了すると、レジスタ720は、読み出しを受け付けることができる(すなわち、信号情報が可視的となり、信号遷移又は信号遷移が検出されなかったことについての必要なデバッグを実行することができる)。一実施形態において、レガシーシステムでは、レガシーテストアクセスポートを使用して、物理的な接続を行い、レジスタ情報を読み出す。一実施例では、このような読み出しは、ヒューズによってマスクされる又は保護されることなく、管理容易性エンジン(manageability engine)又はテストポートがイネーブルされた後であればいつでも実行可能であってもよい。別の実施形態では、レジスタ720へのアクセスは、本明細書に記載されるような検証アーキテクチャによって提供及び制御される。例えば、検証制御ユニット(VCU)は、レジスタに対する抽象化された安全なアクセスを提供することができる。ここで、ソフトウェアは、APIを使用して情報を要求することできる。そしてVCUは、レジスタ720から情報を読み出し、それを要求元のソフトウェアに提供することができる。本明細書に記載するように、レジスタ720の替わり、又は、組み合わせにより、システムメモリをODLAのトレースバッファとして使用することについて上記で説明したように、取得された情報をシステムメモリに配置してもよい。   In one embodiment, once the information acquisition is complete, the register 720 can accept the read (ie, the signal information becomes visible and performs the necessary debugging of the signal transition or signal transition not detected). can do). In one embodiment, legacy systems use legacy test access ports to make physical connections and read register information. In one embodiment, such a read may be performed at any time after a manageability engine or test port is enabled without being masked or protected by a fuse. . In another embodiment, access to register 720 is provided and controlled by a verification architecture as described herein. For example, a verification control unit (VCU) can provide abstract secure access to registers. Here, the software can request information using the API. The VCU can then read the information from the register 720 and provide it to the requesting software. As described herein, the use of the system memory as an ODLA trace buffer may be arranged in the system memory by replacing or combining the registers 720 as described above. Good.

上記では、電力投入の間の制御ハブ内の信号のトレースを取得することに注目して説明がなされた。しかしながら、本明細書に記載する、初期信号のトレースを取得する装置及び方法は、これに限定されない。実際には、デバイスのテストモジュールがイネーブルされる/準備が整う前の、あらゆるシリコンに同様に適用できる。例えば、同様な装置を、プロセッサ640又はスモールファクターデバイスに埋め込まれたプロセッサに実装して、関連付けられたテスト/検証ユニットがイネーブルされる前に、信号情報を取得できる。   The above has been described with a focus on obtaining signal traces in the control hub during power up. However, the apparatus and method for obtaining the initial signal trace described herein is not limited thereto. In fact, it is equally applicable to any silicon before the device test module is enabled / ready. For example, a similar device can be implemented in the processor 640 or a processor embedded in a small factor device to obtain signal information before the associated test / verification unit is enabled.

図8には、電力シーケンスの最初における信号情報の取得方法を示したフローチャートの一実施形態が示されている。フロー805において、電力投入イベントが発生する。電力投入イベントは、電力信号のアサート(又はアサート停止)のように単純なものであってもよい。別の例では、情報の取得が、電力投入信号に応答して発生するが、実際の情報取得の開始は、介在する信号の遷移に依存する。例えば、制御ハブの内部信号は、電力投入信号に応答して遷移してもよい。そして、信号情報の取得は、介入する内部信号に直接応答して開始されてもよい。ここで、電力投入イベントには、電力信号、内部信号の遷移又はその両方が含まれてもよい。   FIG. 8 shows an embodiment of a flowchart illustrating a method for acquiring signal information at the beginning of a power sequence. In flow 805, a power-on event occurs. The power up event may be as simple as asserting (or deasserting) a power signal. In another example, information acquisition occurs in response to a power-up signal, but the actual start of information acquisition depends on intervening signal transitions. For example, the internal signal of the control hub may transition in response to a power up signal. And acquisition of signal information may be initiated in direct response to intervening internal signals. Here, the power-on event may include a power signal, an internal signal transition, or both.

フロー810では、電力投入の初期状態の信号情報(テストユニットがイネーブルされる前に遷移する可能性がある信号についての情報)が取得される。上記したように、あらゆる周知の装置又は方法を使用して、このような情報を取得してもよい。例えば、電力イベントが発生すると情報を取得するべくプリセットされる単純化されたODLAを使用できる。別の例として、上記したような情報取得ロジックを使用してもよい。装置及び方法に関わらず、フロー815では、所定の条件が発生すると情報の取得が中止/停止される。所定の条件には、例えば、所定時間/サイクルの経過、対象の信号の遷移が一定期間検出されない、対象の最後の信号が遷移した時、対象の最後の信号が一定期間遷移しなかった時、特定のウェルがイネーブルされた時、テストロジックがイネーブルされた時、プログラムが情報の取得を停止するように指示した時、その他の周知の所定の起動イベントが含まれる。   In flow 810, signal information in an initial state of power-on (information on a signal that may transition before the test unit is enabled) is acquired. As noted above, any known device or method may be used to obtain such information. For example, a simplified ODLA can be used that is preset to obtain information when a power event occurs. As another example, information acquisition logic as described above may be used. Regardless of the device and method, in flow 815, acquisition of information is stopped / stopped when a predetermined condition occurs. Predetermined conditions include, for example, the passage of a predetermined time / cycle, the transition of the target signal is not detected for a certain period of time, the last signal of the target has transitioned, the last signal of the target has not transitioned for a certain period of time, Other well-known predetermined activation events are included when a particular well is enabled, when test logic is enabled, and when the program instructs to stop acquiring information.

フロー820において、テストポートが利用可能となる。例えば、管理容易性エンジン(manageability engine)テストアクセスポートが、ブートプロセスの間にイネーブルされる。別の例として、VCUは、以下に説明されるように、ユニバーサルアクセスポートと共にイネーブルされる。テストポートがイネーブルされると、フロー810で取得された信号情報が読み出されてもよく、読み出しは、抽象化層を介す又は直接テストデバイスに読み出されるといったように、安全な態様で行われてもよい。そして、ソフトウェア又はデバッガは、問題又は対処すべき事項が発生したかを判断することができる。その結果、内部信号の可視化を通常提供するロジックをイネーブルする前のような、ブートプロセスの初期の段階での信号遷移を、このような一体化したハードウェアフックを有さないデバッグを行う従来の方法と比較して、安価にそして多大な労力を費やすことなく、効率的に監視及びデバッグすることができる。   In flow 820, a test port is available. For example, a manageability engine test access port is enabled during the boot process. As another example, the VCU is enabled with a universal access port, as described below. When the test port is enabled, the signal information obtained in flow 810 may be read out, and the reading is done in a secure manner, such as through the abstraction layer or directly to the test device. May be. Then, the software or the debugger can determine whether a problem or an item to be dealt with has occurred. As a result, conventional signal transitions in the early stages of the boot process, such as before enabling logic that normally provides internal signal visualization, can be debugged without such an integrated hardware hook. Compared with the method, it can be monitored and debugged efficiently and without much effort.

上記したような初期の電力投入信号を取得するDFx機能に加えて、一実施形態では、非常に低い電力ドメインにおける信号軌跡を取得するのにフックを組み込んでもよい。図9には、低電力状態の対象の信号取得のためのロジックの一実施形態が示されている。   In addition to the DFx function for obtaining an initial power-up signal as described above, in one embodiment, a hook may be incorporated to obtain a signal trajectory in a very low power domain. FIG. 9 illustrates one embodiment of logic for signal acquisition of a target in a low power state.

電力ステートは、製品に固有のものとして規定されることが多いが、一実施形態では、電力ステートは、電力ステートのAdvanced Configuration and Power interface(ACPI)種のような、様々な電力規格におけるあらゆるステートを指す。プロセッサの場合、ACPI規格では、3つの基本的なステートが規定されており、C0(動作/アクティブ状態)、C1(命令は実行されないが実行ステートへ戻ることはできる、中断(halt)状態)、C2(ソフトウェア可視ステートが維持されるがウェイクアップには時間掛かる場合がある、ストップクロック状態)及びC3(プロセッサがキャッシュコヒーレントを保たないが、その他の状態は維持する、スリープ状態)である。また、これらのステートの変形も考えられている。例えば、エンハンストC1ステートは、低消費電力の場合に使用できる。C3/スリープの変形は、深いスリープステート(すなわち、より深い又は最も深いスリープステートC6)を含み、処理要素が起きるまでにより長い時間を必要とする。これらの電力状態は、単なる例に過ぎず、プロセッサを参照するのに主に使用される。しかしながら、同様なステートは、制御ハブのようなその他のデバイスのためのACPI規格に規定されている。   While power states are often defined as product specific, in one embodiment, power states are any state in various power standards, such as the Advanced Configuration and Power interface (ACPI) type of power state. Point to. In the case of a processor, the ACPI standard defines three basic states: C0 (operation / active state), C1 (not executed, but can return to the execution state, halt state), C2 (stop clock state where software visible state is maintained but wake-up may take time) and C3 (sleep state) where processor does not maintain cache coherent but other states remain. In addition, deformation of these states is also considered. For example, the enhanced C1 state can be used when the power consumption is low. C3 / Sleep variants include deep sleep states (ie deeper or deepest sleep state C6) and require a longer time for processing elements to occur. These power states are merely examples and are primarily used to refer to the processor. However, similar states are defined in the ACPI standard for other devices such as control hubs.

図に示されるように、デバイス900は、プロセッサ、制御ハブ、グラフィックスデバイス又はその他の周知のコンピュータ関係デバイスを含んでもよく、低電力状態(すなわち、上記の例で言う動作状態のC0ステート以外のあらゆるステート)の間の対象の信号901−906を取得するロジックを含み。ロジックの第1段階(ライブ取得920)は、信号901−906の生の(live)トレース/値を取得する。例えば、タイミングチャート970には、クロック信号910に基づく信号906の取得が示されている。デバッグイネーブルのようなイネーブル信号を、デバッグモードでない時にクロック910を制限する(すなわち、ゲートクロック910が段階920、930をフロップする)のに使用してもよい。図に示されるように、第2段階(格納された値930では、電力周期信号925で示されるような電力サイクルの開始時に、信号901−906のそのままの(生の)状態を取得する。例えば、PCHでは、電力周期信号は、特定の所定のピンのアサート(アサート停止)に応答して生成される。ここで、ブートでない状態の場合には、検証を行うエンジニアは、ピンを切り替えて、システムをリブートする。したがって、このシナリオでは、信号901−906の最近のバージョン/ステータスが取得され格納される。図示の例では、ブートが成功すると、格納される値930は、タイミングチャート970に示されるように、最近のブート(起動)に失敗した状態の間の信号901−906のステータス950を保持する。   As shown, device 900 may include a processor, control hub, graphics device, or other well-known computer-related device, and may be in a low power state (ie, other than the C0 state of the operational state referred to in the above example). Including logic to obtain signals 901-906 of interest during any state. The first stage of logic (live acquisition 920) acquires a live trace / value of signals 901-906. For example, timing chart 970 shows acquisition of signal 906 based on clock signal 910. An enable signal, such as debug enable, may be used to limit clock 910 when not in debug mode (ie, gate clock 910 flops steps 920, 930). As shown in the figure, the second stage (with stored value 930, the raw (raw) state of signals 901-906 is obtained at the beginning of the power cycle as shown by power cycle signal 925. For example, , In PCH, the power cycle signal is generated in response to assertion (deassertion) of a specific predetermined pin, where in a non-boot state, the verifying engineer switches the pin, Reboot the system, so in this scenario, the latest version / status of signals 901-906 is obtained and stored, and in the example shown, the stored value 930 is shown in the timing chart 970 when booting is successful. As described above, the status 950 of the signals 901 to 906 during the state in which the recent boot (activation) has failed is maintained.

ロジック900の動作を例示する具体的な例を提供するため、デバイス/システム900の5回のブート(起動)を試みると仮定する。第1ブートでは、イネーブルビットが設定されて、ロジックを作動可能な状態にする。ここで、レガシーJTAG又はその他のテストインターフェースを使用して、イネーブルビットを設定してもよい。別の実施形態では、VCUが、イネーブルビットを設定する。第1ブートが成功したと仮定すると、電力周期信号925が低(low)となり、信号901−906のステータス(状態)が取得される。第2ブートが成功すると、ステータスは、全て1つ論理値を指す(1つ前のブートの成功及びイネーブルビットが作動可能な状態になっている)。しかし、第3ブートに失敗すると、システムは、リスタートされる。この場合、電力周期信号が、例えば、高(high)−低(low)−高(high)とトグルされ(切り替えられ)て、電力周期信号925が低(low)の時に信号901−906のステータスが取得される。第4ブートにも失敗したと仮定すると、システムは、同様な態様でリスタートされる。続いて、第5ブートは成功すると、ステータス950は、最近の失敗したブートの試み(第4ブート)における信号910−906のトレース/ステータスを報告する。上記したように、ステータス950は、レガシーテスト機器によって読み出されてもよい。または、別の実施形態では、階層化されたテストアーキテクチャを実装するVCUを使用して、ロジック900へのアクセスを提供及び制御する。   To provide a specific example illustrating the operation of the logic 900, assume that the device / system 900 is attempted to boot five times. On the first boot, the enable bit is set to enable the logic. Here, a legacy JTAG or other test interface may be used to set the enable bit. In another embodiment, the VCU sets the enable bit. Assuming that the first boot is successful, the power cycle signal 925 goes low and the status of the signals 901-906 is obtained. If the second boot is successful, the status all points to one logical value (success from the previous boot and enable bit is ready). However, if the third boot fails, the system is restarted. In this case, the status of the signals 901-906 when the power cycle signal is toggled (switched), eg, high-low-high, and the power cycle signal 925 is low. Is acquired. Assuming that the fourth boot has also failed, the system is restarted in a similar manner. Subsequently, if the fifth boot is successful, status 950 reports the trace / status of signals 910-906 in the last failed boot attempt (fourth boot). As described above, the status 950 may be read by legacy test equipment. Alternatively, in another embodiment, a VCU that implements a layered test architecture is used to provide and control access to the logic 900.

上記した説明の多くが、プロセッサの検証情報を取得することに関してなされ、一部の説明には、PCHのような制御ハブの信号の状態を取得することについて触れた。しかしながら、DFxフックはこれらに限定されず、プラットフォームを介してその他の領域に実装されてもよい。上記で簡潔に触れたその他の領域は、電力に関係するハードウェア及び電源供給ネットワークのテスト、検証及びデバックのためのハードウェアフックを提供する。例えば、周波数昇降ロジック又は電圧対時間測定ロジックは、電源供給ネットワークの特性(インピーダンスプロファイルを規定する及び/又は共振周波数を特定する)を明らかにすることができると考えられる。または、測定ロジックを電圧調整器(VR)によってマザーボードに挿入して、必要な電流量、消費電力、ノイズ等を測定してもよい。   Much of the above description has been made with respect to obtaining processor verification information, and some explanations have been directed to obtaining the state of a control hub signal such as a PCH. However, the DFx hook is not limited to these, and may be mounted in other areas via the platform. The other areas briefly mentioned above provide hardware hooks for testing, verification and debugging of power related hardware and power supply networks. For example, it is believed that frequency up / down logic or voltage versus time measurement logic can characterize the power supply network (define impedance profile and / or identify resonant frequency). Alternatively, the measurement logic may be inserted into the motherboard by a voltage regulator (VR) to measure the required amount of current, power consumption, noise, and the like.

さらに、本明細書に説明されるDFx及び検証アーキテクチャは、実験室での検証に限られない。DFx機能は、プロセッサ、制御ハブ、マザーボード又は大量生産用(HVM)試験機器と結合するその他のデバイスに組み込まれてもよい。その結果、周知のHVMテストは、以下に説明するように、ユニバーサルアクセスポートを介してルートされてもよい。製造側は、一実施形態において、安全な階層化された検証アーキテクチャによって、製造側のテストを行う者に、高いアクセス権限(すなわち、含まれるDFx機能の大部分又は全てに対する低階層のアクセス)を与える。   Further, the DFx and verification architecture described herein is not limited to laboratory verification. The DFx functionality may be incorporated into a processor, control hub, motherboard, or other device that couples with mass production (HVM) test equipment. As a result, the well-known HVM test may be routed through the universal access port, as described below. In one embodiment, the manufacturing side, in a secure layered verification architecture, gives the manufacturing tester high access rights (ie, low level access to most or all of the included DFx functions). give.

複数の製品にテストアーキテクチャを提供することにより、プロセッサ、マザーボード等の製品全部にわたって製造欠陥を診断(クロスプロダクト検証)してもよい。テスト結果を階層化されたテストアーキテクチャを介して提供し、複数の製品について比較をソフトウェアによって行うことにより、欠陥及び歪みを容易に特定することができると考えられる。例えば、何千個ものプロセッサを、VCU及び階層テストアーキテクチャを介してDFxにアクセスするHVMによってテストしてもよい。そして、テスト結果をソフトウェア/プレゼンテーション層に集めて、ソフトウェアが情報を分析して、歪み、欠陥等の表示可能な情報にまとめることができる。   By providing a test architecture for a plurality of products, manufacturing defects may be diagnosed (cross-product verification) across all products such as processors and motherboards. It is considered that defects and distortions can be easily identified by providing test results through a layered test architecture and comparing a plurality of products with software. For example, thousands of processors may be tested by HVM accessing DFx via VCU and hierarchical test architecture. Then, the test results can be collected in the software / presentation layer, and the software can analyze the information and summarize it into displayable information such as distortion and defects.

別の例としては、以前のマザーボードの診断は、専用の外部テスタを使用して、複数のオンボードのテスト点をテストする、回路内プローブテスト(回路基板テスト(ICT))に依存していた。フォームファクターが小さくなり、テスト点を形成するのに高いコストが掛かるようになり、ICTをサポートし続けるのは難しくなっている。したがって、一実施形態では、VCU及び高レベルのソフトウェアに対して提供されるAPI等の本明細書に記載されるテストアーキテクチャを、複数のデバイスにわたる総合的な診断を提供するのに利用する。   As another example, previous motherboard diagnostics relied on in-circuit probe testing (circuit board test (ICT)), which uses a dedicated external tester to test multiple on-board test points. . As the form factor becomes smaller and the cost of creating test points becomes higher, it is difficult to continue to support ICT. Thus, in one embodiment, the test architecture described herein, such as APIs provided for VCUs and high level software, is utilized to provide comprehensive diagnostics across multiple devices.

以前は、プロセッサ及びチップセットのようなデバイスの欠陥ではなくマザーボードの欠陥であるのに、デバイスが返品(無欠陥返品)されてしまっていたこともあったが、本明細書に記載されるICTを必要としない簡単なテスト方法により、このような返品を避けることができる。例えば、外部ICTデバイスを使用する替わりに、DFxを構築し、VCU及びAPIを介してDFxのサポート(アクセス及び制御)を提供することにより、テストのコストの30%を削減できると考えられる。   Previously, devices were returned (no defects returned) even though they were motherboard defects rather than device defects such as processors and chipsets, but the ICT described herein Such a return can be avoided by a simple test method that does not require the. For example, instead of using an external ICT device, it may be possible to reduce the cost of testing by 30% by building DFx and providing DFx support (access and control) via VCU and API.

[検証制御部の実施形態]
一実施形態では、本明細書に記載したようなハードウェアテスト、検証及びデバッグフックのようなDFX機能へのアクセス及び制御を提供するために、検証制御ユニット(VCU)が設けられる。VCUは、あらゆるハードウェア、ファームウェア、ソフトウェア、コード、マイクロコード、又はこれらの組み合わせを含み、制御及び/又はアクセスを実装してもよい。図10には、1以上のVCUを有するプラットフォームの例の一実施形態が示されている。図に示されるように、プラットフォーム1000は複数のVCUを含み、プロセッサ1010内に1つ、そして、プロセッサ1075内に1つ含まれている。このシナリオでは、VCUは、複数のデバイス(プロセッサ、制御ハブ、グラフィックスデバイス、マザーボード又はその他の周知のコンピュータデバイス)内に含まれていてもよい。そして、各VCUは、対応するシリコンDFx機能へのアクセス及び制御を担ってもよい。ここで、VCU1012のようなVCUは、プロセッサ各々に備えられ、プロセッサ1010のDFX機能(アーキテクチャ的及びマイクロアーキテクチャ的DFX1015、ODLA103及びPCU1014)へのアクセス及び制御を提供することができる。プラットフォーム1000内の複数のシリコンデバイスに分布させることにより、個別の部分のテスト(例えば、ここのパーツのHVMテスト)及びプラットフォームのテスト/デバッグ(例えば、複数のパーツがプラットフォームに一体化されており、システム全体の分析と共にシステムにおける個々のパーツの性能を分析する場合に有用である)を行う際に、DFx機能へのアクセス及び制御を可能とする。
[Embodiment of verification control unit]
In one embodiment, a verification control unit (VCU) is provided to provide access and control to DFX functions such as hardware testing, verification and debug hooks as described herein. A VCU may include any hardware, firmware, software, code, microcode, or combinations thereof, and may implement control and / or access. FIG. 10 illustrates one embodiment of an example platform having one or more VCUs. As shown, the platform 1000 includes a plurality of VCUs, one in the processor 1010 and one in the processor 1075. In this scenario, the VCU may be included in multiple devices (processor, control hub, graphics device, motherboard or other well-known computer device). Each VCU may then be responsible for accessing and controlling the corresponding silicon DFx function. Here, a VCU, such as VCU 1012, is provided in each processor and can provide access and control to the processor 1010's DFX functionality (architectural and micro-architectural DFX 1015, ODLA 103 and PCU 1014). By distributing to multiple silicon devices within platform 1000, individual part testing (eg, HVM testing of parts here) and platform testing / debugging (eg, multiple parts are integrated into the platform, (This is useful when analyzing the performance of individual parts in the system as well as the analysis of the entire system), allowing access and control of DFx functions.

一例では、このように分配されたVCUの実装形態によって、VCUは、互いに通信可能となる。この通信を、プラットフォーム1000におけるVCU1012とVCU1080とを結合させるVCU相互接続(図示せず)を使用して、この接続を直接行ってもよい。これに替えて、VCU1012及びVCU1080のようなVCUは、対応するデバイス(プロセッサ1010及びPCH1075)と結合する既存の相互接続(接続1065、例えば、ダイレクト・メディア・インターフェース(DMI)、クイックパスインターフェース、PCI−Eインターフェース又はその他の周知の接続を含む)を介して通信を行ってもよい。これに替えて、VCUは、共有メモリスペースを介して互いに通信を行ってもよい。例えば、VCU1012は、オペレーティングシステムからは難読化(抽象化)されているが、PCH1075/VCU1080のようなその他のシステムデバイスには可視化されているメモリ部分1021に書き込みを行う。その結果、VCU1080は、VCU1012によって書き込まれた情報を読み出すことができ、また、その反対も可能である。具体的な例として、検証アーキテクチャにアクセスするのに統合ポートが提供されている場合には、VCU間の相互接続/通信を使用して、プラットフォーム全体のDFx機能へのソフトウェアアクセスを調整する。これついては、以下に詳細に説明する。また、その他の問題についても検出を行い、VCU間の通信及び/又は管理容易エンジン(manageability engine)によって対処してもよい。その他の問題としては、例えば、ライブロック(livelock)、デッドロック、パッチロード同期、電力/性能ステート遷移同期、生存性、トリガ及びトレース設定、ダンプデータのポストコレクション、セキュリティ、及び、取得/報告の範囲が挙げられる。   In one example, the distributed VCU implementations allow VCUs to communicate with each other. This communication may be made directly using a VCU interconnect (not shown) that couples VCU 1012 and VCU 1080 in platform 1000. Alternatively, VCUs, such as VCU 1012 and VCU 1080, can use existing interconnects (connection 1065, eg, direct media interface (DMI), quick path interface, PCI, etc.) to couple with corresponding devices (processor 1010 and PCH 1075). Communication may be performed via an -E interface or other known connection). Alternatively, the VCUs may communicate with each other via a shared memory space. For example, the VCU 1012 writes to the memory portion 1021 that is obfuscated (abstracted) from the operating system, but is visible to other system devices such as the PCH 1075 / VCU 1080. As a result, the VCU 1080 can read the information written by the VCU 1012 and vice versa. As a specific example, if an integrated port is provided to access the verification architecture, interconnection / communication between VCUs is used to coordinate software access to the platform-wide DFx functionality. This will be described in detail below. Other problems may also be detected and addressed by communication between VCUs and / or manageability engines. Other issues include, for example, livelock, deadlock, patch load synchronization, power / performance state transition synchronization, survivability, trigger and trace settings, dump data post-collection, security, and acquisition / reporting A range is mentioned.

上記の説明は、主に、プロセッサ、制御ハブ及びマザーボードといった各パーツにおけるVCUの分配についてなされたが、このような分布が必ずしも必須ではない。これに替えて、1つのVCUを、プロセッサ1010又はPCH1075のような1つのデバイスに配置してもよい。そして、そのVCUが、デバイスのDFxフックへのアクセスを制御すると同時に、プラットフォームのDFxフックへのアクセスを制御してもよい。さらに、VCUを分配する実装形態が利用される場合、VCUは、対照的である必要はない。この場合、シリコンパーツは異なる場合もあることから、VCUが異なって配置されてもよい。加えて、1以上のVCUが、高い優先順位を有していてもよい(例えば、ヘッドホーム又はマスタVCUが、システムにおけるその他のVCUによるアクセス及び制御を調整する)。これに替えて、各VCUを、通信マスタと考えてもよい。   Although the above description has been made mainly on the distribution of VCUs in the respective parts such as the processor, the control hub, and the motherboard, such distribution is not necessarily essential. Alternatively, one VCU may be placed on one device such as the processor 1010 or PCH 1075. The VCU may control access to the DFx hook of the platform at the same time as controlling access to the DFx hook of the device. Further, if an implementation that distributes VCUs is utilized, the VCUs need not be in contrast. In this case, since the silicon parts may be different, the VCUs may be arranged differently. In addition, one or more VCUs may have a high priority (eg, a headhome or master VCU coordinates access and control by other VCUs in the system). Alternatively, each VCU may be considered as a communication master.

一実施形態では、VCU1012は、プロセッサ1010のDFx機能へのアクセスを制御するプログラム可能エンジン又はユニットを含む。例えば、VCU1012は、マイクロコントローラを含む。マイクロコントローラは、多くの場合、自身の処理要素、メモリ(フラッシュ、プログラム可能ROM、SRAM又はその他の周知のメモリデバイス)及び通信インターフェースを有するデバイスを含む。基本的に、マイクロコントローラは、プロセッサ1000に埋め込まれる又は内包される小さなコンピュータとして見なすことができる。したがって、処理要素によって実行されると、高階層の方向ではソフトウェアに、下階層の方向ではDFx機能に、インターフェースを実装する自身のコード/マイクロコードを有してもよい。また、以下に詳細に説明するが、マイクロコントローラを更新して(認証されたパッチ又はアップデートを介してパッチされたメモリに保持されるコードの制御及び動作)、その他の層(ソフトウェア又はDFx機能)のテスト、検証アーキテクチャにおける変更に適応する新しい機能を提供してもよい。そして、変更を、プラットフォームのDFx機能又は高階層のソフトウェアに反映させ、ハードウェア(又は、パーツ全体)を交換することなくVCUを適用できるようにする。   In one embodiment, VCU 1012 includes a programmable engine or unit that controls access to the DFx functionality of processor 1010. For example, the VCU 1012 includes a microcontroller. Microcontrollers often include devices that have their own processing elements, memory (flash, programmable ROM, SRAM or other well-known memory device) and communication interface. Basically, a microcontroller can be viewed as a small computer embedded or embedded in the processor 1000. Thus, when executed by a processing element, it may have its own code / microcode that implements the interface in software in the higher layer direction and in the DFx function in the lower layer direction. In addition, as described in detail below, the microcontroller is updated (control and operation of the code held in the patched memory via an authenticated patch or update), and other layers (software or DFx functions) New functionality may be provided to adapt to changes in the test and verification architecture. Then, the change is reflected in the DFx function of the platform or high-level software so that the VCU can be applied without replacing hardware (or the entire part).

マクロコントローラを含むVCUの説明は、純粋な例示に過ぎない。同様なデバイスが、DFx機能へのアクセスの同様な制御を行い、高階層の層への同様なインターフェースを提供してもよい。例えば、プログラム可能アレイロジックデバイス、汎用アレイロジックデバイス、複雑なプログラム可能ロジックデバイス、フィールドプログラム可能ゲートアレイデバイス等のプログラム可能ロジックデバイスを使用することができる。また、図では、VCU1012が、プロセッサ1010において1つの論理ブロックとして描かれている。しかしながら、ODLAがプロセッサ1010全体にわたって分配されてもよいように、VCU1012の部分も、プロセッサの1010のダイ又はパッケージの異なる部分に渡って分配されてもよい。   The description of a VCU that includes a macro controller is merely a pure example. Similar devices may provide similar control of access to DFx functions and provide similar interfaces to higher layers. For example, programmable logic devices such as programmable array logic devices, general purpose array logic devices, complex programmable logic devices, field programmable gate array devices can be used. In the figure, the VCU 1012 is depicted as one logical block in the processor 1010. However, portions of the VCU 1012 may also be distributed across different portions of the processor 1010 die or package, such that ODLA may be distributed throughout the processor 1010.

DFx機能の一部とのVCU1012の相互作用の例が、以下に記載される。VCU1012は、プロセッサ1010のレジスタを制御するべく結合されたメッセージチャネルのような、オンコアインターフェース1011におけるチャネルへのアクセスを有する。また、VCU1012は、スキャンアウト信号及びヒューズのようなスキャン信号へのアクセスを有する。したがって、VCU1012は、様々なマイクロブレークポイント始動イベント(シナリオ)をプログラムすることができ、ODLA1013にトレースをメモリ1020(又は、オペレーティングシステムからは隠匿されたメモリ1021の一部分)に格納するよう指示し、メモリ1020に格納されたトレースを抽出し、トレースを高レベルのソフトウェア(例えば、デバッグツール)に届ける。加えて、VCU1010は、どのDFx機能にアクセスさせるかを、現在のセキュリティ(アンロック)レベルに応じて制御できる。一実施形態において、VCU1010は、プロセッサ1010のDFx機能へのアクセスプログラムできるツールを有するAPIを公開させる。   An example of VCU 1012 interaction with a portion of the DFx function is described below. VCU 1012 has access to a channel at on-core interface 1011, such as a message channel coupled to control the registers of processor 1010. The VCU 1012 also has access to scan-out signals and scan signals such as fuses. Thus, the VCU 1012 can program various microbreakpoint triggering events (scenarios) and instruct the ODLA 1013 to store the trace in memory 1020 (or a portion of memory 1021 that is hidden from the operating system) Extract the trace stored in memory 1020 and deliver the trace to high-level software (eg, a debug tool). In addition, the VCU 1010 can control which DFx function is accessed according to the current security (unlock) level. In one embodiment, the VCU 1010 exposes an API with a tool that can program access to the DFx functionality of the processor 1010.

一実施形態では、より高いレベルのソフトウェアから見る場合に、DFx機能のハードウェア詳細を分かりにくくさせる又は抽象化させる抽象化層のような、以下に詳細に説明する検証階層アーキテクチャの1以上の層を実装する役割を、VCU1012が担う。抽象化層が使用されるか否かに関わらず、一実施形態において、VCU1012は、DFx機能への安全なアクセスを提供する役割を担い、これについては、以下の検証基板セキュリティの実施形態の章で詳しく説明する。   In one embodiment, one or more layers of the verification hierarchy architecture described in detail below, such as an abstraction layer that obscures or abstracts the hardware details of DFx functionality when viewed from higher level software. VCU 1012 plays a role of implementing. Regardless of whether or not an abstraction layer is used, in one embodiment, the VCU 1012 is responsible for providing secure access to DFx functionality, as described in the verification board security embodiment section below. This will be explained in detail.

図11には、VCUを使用したソフトウェアからのDFx要求に応じる方法を示したフローチャートの一実施形態が描かれている。フロー1105では、アプリケーションプログラミングインターフェース(API)に従って、第3者のベンダーからの、テスト及びデバッグプログラムのようなソフトウェアプログラムの実行に応答して、DRx要求が生成される。ここで、DRx要求は、VCUによって提供されるサービス及びルーチンと相互作用するべく提供されているAPIの規格及び規則に準拠してもよい。すなわち、ソフトウェアプログラムは、APIによって認識される呼び出し規則のような、APIによって規定される"ボキャブラリー"に沿って、書かれていてもよい。   FIG. 11 depicts an embodiment of a flowchart illustrating a method for responding to a DFx request from software using a VCU. In flow 1105, a DRx request is generated in response to execution of a software program, such as a test and debug program, from a third party vendor according to an application programming interface (API). Here, the DRx request may conform to API standards and rules provided to interact with services and routines provided by the VCU. That is, the software program may be written along a “vocabulary” defined by the API, such as a calling rule recognized by the API.

フロー1110において、DFx要求は、VCUによって実装されるAPIを使用して解釈される。ここで、APIは、ソフトウェアとDFxハードウェアとの間のインターフェース又はファシリテータ(仲介役)として動作する。一例として、VCUマイクロコントローラのメモリに格納されるコードのような、VCUに格納されるコードは、DFx要求に応答して実行される。このシナリオでは、VCUに格納されているコードとして、ライブラリ、ルーチン、データ構造、オブジェクトクラス、プロトコル等を含んでもよい。ここで、DFx要求が、VCUにおけるルーチンの呼び出しを含み、VCUにおけるルーチンの実行により、DFxハードウェアと関連付けられた幾つかの機能/動作が実行されるものと仮定する。   In flow 1110, the DFx request is interpreted using an API implemented by the VCU. Here, the API operates as an interface or facilitator between the software and the DFx hardware. As an example, code stored in a VCU, such as code stored in the memory of a VCU microcontroller, is executed in response to a DFx request. In this scenario, the code stored in the VCU may include libraries, routines, data structures, object classes, protocols, and the like. Here, it is assumed that the DFx request includes a call to a routine in the VCU, and execution of the routine in the VCU performs some function / operation associated with the DFx hardware.

一実施形態において、以下に詳細に説明するように、VCUは、DFxハードウェアへのアクセス(セキュリティ)を制御する。したがって、フロー1115において、セキュリティレベルに基づいて、そのDFx要求が許可されるか否かが判断される。セキュリティについては、以下で詳細に説明するが、単純化した例として、この時点で、VCUの例示的動作が係属すると仮定する。一例として、VCUは、安全な(secure)アクセスの複数のレベルを含み、各アクセスレベルは、ハードウェアDFxへの異なる複数のアクセスのレベルを許可する。例えば、各レベルが、暗号化されたパスコードに関連付けられていてもよい。ソフトウェアプログラムが実行を開始するとそのセキュリティレベルを開錠する安全なパスコードが提供され、それによりソフトウェアプログラムがアクセスできる機能が指定されてもよい。そして、フロー1115では、VCUによって予め規定されたアクセスのレベルに従って、DFx要求が、ソフトウェアプログラムと関連付けられたセキュリティレベル内で許されるものか否かの判断がなされる。DFx要求が許可されない場合は、フロー1120において、適切に対処(拒否、実行を行わない、例外処理を実行等)してもよい。   In one embodiment, the VCU controls access (security) to the DFx hardware, as described in detail below. Therefore, in flow 1115, it is determined whether the DFx request is permitted based on the security level. Security will be described in detail below, but as a simplified example, it is assumed at this point that the exemplary operation of the VCU is involved. As an example, the VCU includes multiple levels of secure access, each access level allowing a different level of access to the hardware DFx. For example, each level may be associated with an encrypted passcode. When the software program begins execution, a secure passcode that unlocks its security level may be provided, thereby specifying the functions that the software program can access. Then, in flow 1115, a determination is made as to whether the DFx request is allowed within the security level associated with the software program, according to the level of access predefined by the VCU. If the DFx request is not permitted, appropriate processing (rejection, execution is not performed, exception processing is performed, etc.) may be performed in the flow 1120.

反対に、DFx要求が許可される場合は、フロー1125において、DFx要求が受け付けられる。上記の例の続きであるが、DFx要求が、APIによって規定されるサービスルーチンの呼び出しを含む場合には、VCUは、サービスルーチンを実行する。ここで、サービスルーチンには、上記のような、ハードウェアDFx機能を設定、開始又はやりとりを行うあらゆるルーチンが含まれてもよい。例えば、VCUは、プロセッサに始動イベントを発生させ、ODLAにブレークポイントにおいてトレースを取得させる、マイクロブレークポイント始動イベントを設定してもよい。そして、フロー1130において結果(トレース)が抽出されてもよく、例えば、ODLAによってトレースバッファとして利用されているメモリへと書き出す。そして、フロー1135において、結果がソフトウェアプログラムに提供される。このシナリオでは、ソフトウェアプログラムは、後の解釈/デバッグのためにトレース情報を取得するべく、メモリの読み出しを行うことができる。図12に示すように、フロー1205において、テストアーキテクチャへの変更が決定される。変更には、アーキテクチャのあらゆる層への変更が含まれてもよく、例えば、DFxハードウェアへの変更、VCUがどのように別のVCUと関わるかについての変更、VCUがどのようにDFxハードウェアと関わるかについての変更、VCUによって提供されるサービスの変更、セキュリティレベル(各々が何に対してアクセスできるか)の変更、API規格における変更等が含まれる。フロー1210において、VCUは、テストアーキテクチャへの変更が反映されるように更新される。ここで、パッチ、認証されたパッチ又は更新を、ローカルに又はリモートで適用して、変更に対応するべくVCUコードを更新してもよい。その結果、VCUレベル又は階層化された積層構造における下の層において何か変更があっても、製造側は、VCUソフトウェアの更新を提供するだけでよい。この例において、APIのみが高レベルのソフトウェアに明らかとなることから、第3者のベンダーは、ベンダーのソフトウェアプログラム又はツールを更新する必要がない。APIは同じ状態としたまま、テストアーキテクチャにおける変更を反映する更新に基づいて、VCUのアクションが修正される。その結果、テストアーキテクチャの積層構造に僅かな変更がある場合、階層構造の全ての層を修正する必要がないため、支出(ハードウェアを再設計又は取り替えるコスト)及び時間を余分に費やさなくて済む。   On the other hand, when the DFx request is permitted, the DFx request is accepted in the flow 1125. Continuing the above example, if the DFx request includes a call to a service routine defined by the API, the VCU executes the service routine. Here, the service routine may include any routine for setting, starting or exchanging the hardware DFx function as described above. For example, the VCU may set a micro breakpoint start event that causes the processor to generate a start event and cause ODLA to acquire a trace at the breakpoint. Then, the result (trace) may be extracted in the flow 1130. For example, the result (trace) is written to a memory used as a trace buffer by ODLA. Then, in flow 1135, the result is provided to the software program. In this scenario, the software program can perform a memory read to obtain trace information for later interpretation / debugging. As shown in FIG. 12, in flow 1205, a change to the test architecture is determined. Changes may include changes to any layer of the architecture, such as changes to DFx hardware, changes to how a VCU interacts with another VCU, how a VCU is DFx hardware Changes in service, changes in services provided by the VCU, changes in security level (what each can access), changes in API standards, and the like. In flow 1210, the VCU is updated to reflect changes to the test architecture. Here, patches, authenticated patches or updates may be applied locally or remotely to update the VCU code to accommodate the change. As a result, the manufacturer only needs to provide an update of the VCU software if there is any change at the VCU level or at a lower layer in the layered stack. In this example, the third party vendor does not need to update the vendor's software program or tool because only the API becomes apparent to the high level software. VCU actions are modified based on updates reflecting changes in the test architecture while the API remains the same. As a result, if there is a slight change in the stack structure of the test architecture, it is not necessary to modify all layers of the hierarchical structure, thereby eliminating the expense (cost of redesigning or replacing hardware) and extra time. .

[検証階層構造アーキテクチャの実施形態]
上記でも示唆したように、一実施形態において、テスト、検証及びデバッグのアーキテクチャは、階層化された積層構造に実装される。テストアーキテクチャの階層化された積層構造の一実施形態が、図13に示されている。図示されている層は、単なる例に過ぎない。その他の層を含めてもよいし、図示されている層のうちの何れかを省略してもよい。さらに、抽象化層1315のような図示された層の1以上を実装するロジックの例、例えば、VCUも、一例に過ぎず、図示される複数の層は、ロジック、ハードウェア、ファームウェア、コード、マイクロコード、ソフトウェア又はこれらの組み合わせに実装されてもよい。
[Verification Hierarchical Architecture Embodiment]
As suggested above, in one embodiment, the test, verification and debug architecture is implemented in a layered stack. One embodiment of a layered stack of test architectures is shown in FIG. The layers shown are merely examples. Other layers may be included, and any of the illustrated layers may be omitted. Further, an example of logic that implements one or more of the illustrated layers, such as the abstraction layer 1315, such as a VCU, is just one example, and the illustrated layers include logic, hardware, firmware, code, It may be implemented in microcode, software, or a combination thereof.

一実施形態において、積層構造1300は、ハードウェアDFxの実装詳細を難読化する。抽象化層1315(サービス層)は、このようなハードウェアDFx詳細を抽象化するべく提供されると同時に、クライアント層(アプリケーション層1320及びプレゼンテーション層1325)とのインターフェースを提供する。図示するように、アプリケーション層1320に提供されるインターフェースは、複数のAPI(API1316、1317及び1318)を含む。   In one embodiment, the stacked structure 1300 obfuscates the implementation details of the hardware DFx. An abstraction layer 1315 (service layer) is provided to abstract such hardware DFx details and at the same time provides an interface with the client layer (application layer 1320 and presentation layer 1325). As shown, the interface provided to the application layer 1320 includes a plurality of APIs (APIs 1316, 1317 and 1318).

APIは、一般的には、アプリケーション層1320のようなソフトウェア層が、提供されるサービスの使用及びサービスへのアクセスのために順守する規則及び規定の特定のセットのことを指す。基本的に、APIは、異なる層(のソフトウェア、ファームウェア又はハードウェア)間のインターフェースを提供し、異なる層間のやり取りを容易にしている。コンソール、ツール、ソフトウェア、オペレーティングシステム、ライブラリ、アプリケーション又はAPIと結合する又はプログラミングするその他の周知の構造を含んでもよい層1320及び層1325によって、APIはアクセスされてもよい。具体的な一例として、APIは、サービス、ルーチン、機能、データ構造、オブジェクトクラス、プロトコル又はその他の周知のAPI関係の構成概念を含む。   An API generally refers to a specific set of rules and regulations that a software layer, such as application layer 1320, adheres to for the use and access to services provided. Basically, the API provides an interface between different layers (software, firmware or hardware) and facilitates interaction between different layers. The API may be accessed by layers 1320 and 1325 that may include consoles, tools, software, operating systems, libraries, applications, or other well-known structures that couple or program with the API. As a specific example, the API includes services, routines, functions, data structures, object classes, protocols, or other well-known API-related constructs.

1つのAPIを使用してもよいが、図示する実施形態では、異なる複数のAPIが、抽象化層1315によって提供される異なるサービス、ルーチン及びデータ構造へのアクセスのために提供されている。例えば、API1316は、セキュリティ(以下に詳細に説明する)及び低階層の詳細事項の抽象化のために、アプリケーション層1320によって使用されるコアサービス及びデータ構造を提供してもよく、それにより、世代間のツールの変更を減らすことができる(異なる抽象化層1315のサービス及び/又は異なるDFx特長を有する次世代のプロセッサにおいても、同じAPIと結合するべく同じツールを使用できる)可能性がある。   Although one API may be used, in the illustrated embodiment, different APIs are provided for accessing different services, routines and data structures provided by the abstraction layer 1315. For example, API 1316 may provide core services and data structures used by application layer 1320 for security (discussed in detail below) and abstraction of low-level details, thereby enabling generation It may be possible to reduce tool changes between them (even in next generation processors with different abstraction layer 1315 services and / or different DFx features, the same tools can be used to combine with the same API).

また、API1317及び1318のようなその他のAPIは、その他のサービス、データ、構造及び抽象化を提供してもよい。一例として、ハードウェアDFxは、層1315によって提供される唯一の抽象化ではない。ここで、API1317及び1318は、電子検証(Electrical Validation:EV)、電源供給、管理容易性、セキュリティ、アクセス、又はその他の周知のテスト、検証又はデバック関連の柱と関連付けられたサービス及びデータ構造を提供する。以前は、製造側は、電子検証(EV)アルゴリズムのような特定のアルゴリズムが、クライアント層に存在するツールによって使用されないように保護していた。現在では、アルゴリズムは提供されない、又は、アルゴリズムのサブセットのみが提供されるようになっており、EVに対するサブスタンダードのベンダーツールとなっている場合が多い。   Also, other APIs such as APIs 1317 and 1318 may provide other services, data, structures and abstractions. As an example, hardware DFx is not the only abstraction provided by layer 1315. Here, APIs 1317 and 1318 provide services and data structures associated with electronic validation (EV), power supply, manageability, security, access, or other well-known test, validation or debug related pillars. provide. In the past, manufacturers have protected certain algorithms, such as electronic verification (EV) algorithms, from being used by tools that exist in the client layer. Currently, no algorithm is provided, or only a subset of the algorithm is provided, often becoming a sub-standard vendor tool for EV.

一実施形態では、API1317は、EVの支柱となるAPIを含み、高レベルの層1320、1325におけるツール/ソフトウェアによって使用されるこの様なアルゴリズムの完全なセットの抽象化を提供する。したがって、アルゴリズムは、安全な態様(TPVツールには見えない態様)で提供されてもよく、それにより、良好なTPVテストツールとすることができると同時に、機密のアルゴリズムを、機密状態に抽象化して保つことができる。EV固有のAPIの柱の例は、あらゆる個別のテスト、検証及びデバッグに関連付けられ、ハードウェア、ファームウェア、ソフトウェア、コード、アルゴリズム、プロトコル等を抽象化するAPIの柱から推定されてもよい。さらに、柱に固有のAPIサービスモジュールを提供することにより、モジュールの更新が容易になる可能性がある。例えば、EVに関連付けられている何かを修正し、更新しようとする場合、コアサービス又はその他のAPIモジュールを更新することなく、EV API1317を実装するVCUマイクロコントローラに格納されているEVコードのパッチの更新が実行される。   In one embodiment, API 1317 includes an API that is a pillar of EV and provides a complete set of abstractions of such algorithms used by tools / software in higher level layers 1320, 1325. Thus, the algorithm may be provided in a secure manner (invisible to the TPV tool), thereby making it a good TPV test tool, while at the same time abstracting the sensitive algorithm into a confidential state. Can be kept. Examples of EV-specific API pillars may be inferred from API pillars that are associated with any individual test, validation and debug and abstract hardware, firmware, software, code, algorithms, protocols, etc. Furthermore, providing an API service module specific to a pillar may facilitate module updates. For example, if you want to modify and update something associated with an EV, a patch of EV code stored in a VCU microcontroller that implements EV API 1317 without updating core services or other API modules Updates are performed.

上記の例では、APIに関しては、抽象化層1315及びクライアント層(アプリケーション層1320及びプレゼンテーション層1325)の間のインターフェースについて、主に説明された。しかしながら、下層に対して、低層の詳細を難読化する、抽象化する又はぼやかすインターフェースを提供するあらゆる周知の装置又は方法を使用してもよく、ソフトウェア/ハードウェアに実装されるそのようなハードウェア又はアルゴリズムを実装してもよい。また、抽象化層1315の例は、上記したように、VCUマイクロコントローラによって実装される。ここで、VCUマイクロコントローラのメモリデバイスに格納されるコードのように、API1316−1318を実装するロジック及び/又はコードは、VCUに組み込まれる。別の実施形態では、抽象化層1315のためにAPIを実装するコード、サービス及びデータ構造は、メモリに保持され、被試験プロセッサのような被試験デバイスによって実行される。   In the above example, regarding the API, the interface between the abstraction layer 1315 and the client layer (the application layer 1320 and the presentation layer 1325) has been mainly described. However, any known device or method that provides an interface that obfuscates, abstracts, or blurs the details of the lower layers may be used for the lower layer, such hardware implemented in software / hardware. Hardware or algorithms may be implemented. The example of the abstraction layer 1315 is implemented by the VCU microcontroller as described above. Here, the logic and / or code that implements the API 1316-1318, such as code stored in the memory device of the VCU microcontroller, is incorporated into the VCU. In another embodiment, code, services and data structures that implement the API for the abstraction layer 1315 are maintained in memory and executed by a device under test, such as a processor under test.

図示するように、積層構造の最も下層には、目的のDFx層1305が含まれ、DFx層は、上記したハードウェア機能/フックのような周知のDFx機能を含んでもよい。また、DFx層1305は、レガシーテスト/検証機能も含んでもよい。したがって、ある実施形態では、直接アクセス1350により、層1305内のハードウェアDFx機能の幾つかに直接アクセスすることが可能となってもよい。別の例では、目的のDFx層1305は、プロセッサ、PCH、グラフィックスデバイス、マザーボード又はその他の電子デバイスを含む被試験ユニットを含む。   As shown, the bottom layer of the stacked structure includes a target DFx layer 1305, which may include well-known DFx functions such as the hardware functions / hooks described above. The DFx layer 1305 may also include a legacy test / verification function. Thus, in some embodiments, direct access 1350 may allow direct access to some of the hardware DFx functions in layer 1305. In another example, the target DFx layer 1305 includes a unit under test that includes a processor, PCH, graphics device, motherboard or other electronic device.

トランスポート層1310は、特定のトランスポートビークルで実行するべく、抽象化層1315によって提供されるサービス及びルーチンからのタスクのような情報を適合させるが、サービス及びルーチンは、転送(トランスポート)メカニズムに依存しない(すなわち、どのようにサービス/ルーチンがDFx層1305へと輸送されるか把握しない)。例えば、トランスポート層1310は、抽象化層1315から情報を取得し、その情報を、層1305へと輸送するべく適切なパケット/情報に適合させる、トランスポートハードウェア及び関連するドライバを含む。ここで、輸送媒体としては、プラットフォーム内の相互接続、ポートを介してプラットフォーム又はデバイスへとコンソール/テスタを結合する接続、ホストマシーンにおける層1315と離れた場所に位置する非試験ユニットにおける層1305との間のリモートアクセスのためのネットワーク、又は、イン・ターゲット・プローブ(ITP)デバイス、規定されているデバッグポート、第3者のベンダー(TPV)トランスポートデバイス等のその他の周知のテストテスト関連デバイスが含まれる。   The transport layer 1310 adapts information, such as tasks from the services and routines provided by the abstraction layer 1315, to execute in a particular transport vehicle, but the services and routines have a transport mechanism. (Ie, does not know how services / routines are transported to the DFx layer 1305). For example, transport layer 1310 includes transport hardware and associated drivers that obtain information from abstraction layer 1315 and adapt that information to the appropriate packets / information to transport to layer 1305. Here, the transport medium may include interconnections within the platform, connections that couple the console / tester to the platform or device via ports, layer 1305 in the non-test unit located remotely from layer 1315 on the host machine. Network for remote access between or other well-known test-test related devices such as in-target probe (ITP) devices, defined debug ports, third-party vendor (TPV) transport devices Is included.

ネットワークの例から推定できるように、積層構造1300の1以上の層を、様々なマシーン及び/又は構成要素に実装してもよい。例えば、目的の層1305は、残りの積層構造の1以上の層を実装するホストプラットフォームとリモートで接続される被試験プラットフォームを含んでもよい。別の例としては、クライアント層は、サービス層及び目的の層1305を実装する被試験プラットフォーム又はその一部にリモートでアクセスするホストシステムに実装される。リモートアクセスについては、以下の検証アーキテクチャアクセスの実施形態で詳細に説明する。   As can be inferred from the example network, one or more layers of the laminated structure 1300 may be implemented on various machines and / or components. For example, the target layer 1305 may include a platform under test that is remotely connected to a host platform that implements one or more layers of the remaining stack. As another example, the client layer is implemented in a host system that remotely accesses a platform under test or a portion thereof that implements a service layer and a target layer 1305. Remote access is described in detail in the verification architecture access embodiment below.

クライアント層は、DFx層1305の低階層の詳細を抽象化する抽象化層1315及び/又は目的の層1305におけるDFx機能と結合するための、あらゆるツール、コンソール、アプリケーション又はその他のエンティティを含んでもよい。抽象化層1315との結合が、API1316−1318のような1以上のAPIを介して行われる場合、ピラー(pillar)固有のAPIモジュールの規定及び規則を含む、規定及び規則に従って、APIと結合する/APIにプログラムされるように、アプリケーション層1320は設計されている。さらに、上記したように、新しい世代の製品が供給されたとしても、クライアント層と抽象化層1315との間のAPI通信規格が同じである限り、クライアント層のツールを新しいバージョンのものに替える必要がない。その替わり、新しい製品(目的のDFx層1305)に対して新しい態様で同じサービスを提供するべく抽象化層を更新する。また、第3者のレガシー及び非サービスアプリケーションを、製造者の付帯品と共に、クライアント層内の1以上のツールソリューションに一体化してもよい。   The client layer may include any tool, console, application, or other entity for combining with the abstraction layer 1315 that abstracts the low-level details of the DFx layer 1305 and / or the DFx functionality in the target layer 1305. . When binding to the abstraction layer 1315 is done via one or more APIs such as API 1316-1318, it binds to the API according to rules and rules, including pillar-specific API module rules and rules. The application layer 1320 is designed to be programmed to / API. Further, as described above, even when a new generation of products is supplied, as long as the API communication standard between the client layer and the abstraction layer 1315 is the same, it is necessary to replace the client layer tool with a new version. There is no. Instead, the abstraction layer is updated to provide the same service in a new way for the new product (target DFx layer 1305). Also, third party legacy and non-service applications may be integrated with one or more manufacturer's accessories into one or more tool solutions in the client tier.

プレゼンテーション層は、下層のデータ及びプロトコルを相関させる、可視化させる及び/又は表示するツール又は別のエンティティと一体化されていてもよい。この場合、DFxテストから最終結果を第3者が望むような態様で得られるように第3者の好みの設定によって、これらのツールが設計されていてもよい。この例では、アプリケーション層1320は、提供されるサービス及びルーチンを使用して、抽象化層1315をプログラムする。層1305におけるテストの結果又は層1315におけるアルゴリズムの出力のような、これらのサービス及びルーチンからの結果は、アプリケーション層1325に渡される。アプリケーション層は、このデータを、解釈(デバッグ)して、人に又はツール解釈のためにデータを表示するプレゼンテーション層に渡す。   The presentation layer may be integrated with a tool or another entity that correlates, visualizes and / or displays underlying data and protocols. In this case, these tools may be designed according to the preference of the third party so that the final result can be obtained from the DFx test in a manner desired by the third party. In this example, application layer 1320 programs abstraction layer 1315 using the services and routines provided. Results from these services and routines, such as the results of tests at layer 1305 or the output of the algorithm at layer 1315, are passed to the application layer 1325. The application layer interprets (debugs) this data and passes it to the presentation layer that displays the data to a person or for tool interpretation.

図14には、階層化されたアーキテクチャの積層構造を介してDFx機能にアクセスする方法を示したフローチャートの一実施形態が示されている。フロー1405では、第3者のベンダーツールのようなアプリケーションが、抽象化層にプログラムする。ここで、ツール又はその他のエンティティが、抽象化層と関連付けられたAPIによって規定される抽象化層からのサービスを要求/利用する。そして、フロー1410において、そのようなサービスが提供される。ここで、サービスが、抽象化層内のローカルなアルゴリズムを含む場合、情報/データ構造は、アプリケーション層に提供されてもよい。   FIG. 14 illustrates one embodiment of a flowchart illustrating a method for accessing DFx functionality through a layered architecture stack. In flow 1405, an application such as a third party vendor tool programs into the abstraction layer. Here, a tool or other entity requests / utilizes a service from the abstraction layer defined by the API associated with the abstraction layer. In a flow 1410, such a service is provided. Here, if the service includes a local algorithm in the abstraction layer, the information / data structure may be provided to the application layer.

一方、サービスが、DFx機能又は目的の被試験デバイスとの下層との通信を含む場合には、フロー1415において、高いレベルのトランスポート方法を問わない積層構造(抽象化層及びアプリケーション層)からの情報が、トランスポートに適用される。例えば、この適用は、抽象化層からの情報を、テストポートプロトコル、相互接続プロトコル、ネットワークプロトコル又はインターネットプロトコルのようなトランスポートプロトコルにフォーマットすることを含む。フロー1420において、適用されたフォーマットの通信データが、抽象化層によって要求されたオペレーションを実行する被試験DFXユニットにトランスポートされる。上記で説明したようなあらゆる周知のDFxオペレーションが実行されてもよい。フロー1425において、結果がアプリケーションに供給され、フロー1430において、プレゼンテーション層によって結果が解釈される。   On the other hand, if the service includes communication with the lower layer with the DFx function or the target device under test, in flow 1415, from the stacked structure (abstraction layer and application layer) regardless of the high-level transport method. Information is applied to the transport. For example, this application includes formatting information from the abstraction layer into a transport protocol such as a test port protocol, an interconnection protocol, a network protocol or an internet protocol. In flow 1420, the communication data in the applied format is transported to the DFX unit under test that performs the operation requested by the abstraction layer. Any known DFx operation as described above may be performed. In flow 1425, the results are provided to the application, and in flow 1430, the results are interpreted by the presentation layer.

上記に説明したフローの1つの典型例の続きとして、テスト及びデバッグツールが、プロセッサのような被試験ユニットに、マイクロブレークポイントをプログラムするように要求し、マイクロブレークポイントに至るまでに、マイクロブレークポイントにおいて又は後に、トレースが取得されると仮定する。この例において、アプリケーションは、アプリケーション層によって提供されるサービスを呼び出してもよい(フロー1405)。抽象化層は、呼び出されたルーチンを実行し、ルーチンは、マイクロブレークポイント定義及び積層構造体におけるトレース収集方向を送信することを含む(フロー1410)。トランスポート層は、マイクロブレークポイント定義を適用し、テストポートを介してトランスポートされるべきパケットにするといったように、トランスポートからの収集をトレースする(フロー1415)。生成されたパケットは、プロセッサに送信される(フロー1420)。それに応答して、マイクロブレークポイントが、プロセッサの制御レジスタに設定され、トレース情報が要求に応じて収集される。ここで、データの返送には、積層構造を上方向に戻るパス(pass)が含まれてもよく、抽象化層を通過してアプリケーション層に戻るパスを含んでもよい(フロー1425)。別の例として、トレース情報は、トレースバッファとして使用されるメモリに格納されてもよい。アプリケーションは、メモリからトレース情報を読み戻すことができる(フロー1425)。トレース情報を使用して、プレゼンテーションツールは、データを解釈するシミュレーションにおいてプロセッサのトレースを再現することができる(フロー1430)。ここで、抽象化層より下の機能へのアクセスのし易さが確保されている、すなわち、アプリケーションからのロックが解除されていない機能へのアクセス要求、又は、アプリケーションのセキュリティ/権限のレベルを超える機能へのアクセスは、拒否されてもよい。このようなセキュリティ強化構成について、以下に説明する。   As a continuation of one typical example of the flow described above, a test and debug tool requests a unit under test, such as a processor, to program a microbreakpoint, and before reaching the microbreakpoint, Assume that a trace is acquired at or after point. In this example, the application may invoke a service provided by the application layer (flow 1405). The abstraction layer executes the called routine, which includes sending the microbreakpoint definition and the trace collection direction in the stacked structure (flow 1410). The transport layer traces the collection from the transport, such as applying the microbreakpoint definition and making the packet to be transported through the test port (flow 1415). The generated packet is transmitted to the processor (flow 1420). In response, microbreakpoints are set in the processor control registers and trace information is collected on demand. Here, the return of data may include a path returning upward in the stacked structure, or may include a path passing through the abstraction layer and returning to the application layer (flow 1425). As another example, the trace information may be stored in a memory that is used as a trace buffer. The application can read back the trace information from memory (flow 1425). Using the trace information, the presentation tool can reproduce the processor trace in a simulation that interprets the data (flow 1430). Here, the accessibility to functions below the abstraction layer is ensured, that is, the access request to the function that is not unlocked by the application, or the security / authority level of the application. Access to more functions may be denied. Such a security enhancement configuration will be described below.

[検証アーキテクチャに対するセキュリティの実施形態]
上記したように、テスト、検証及びデバッグアーキテクチャの1つの目的として、設計者又は製造者が、明らかにしたくないと望む低いレベル(階層)における詳細を抽象化(難読化)することが含まれる。しかしながら、一実施形態において、このような詳細の抽象化又は難読化は、"セキュリティ"の観点では十分でない場合がある。もし、抽象化層のみが使用されるとすると、抽象化層APIとの通信方法が決まれば、エンドユーザーを含め誰でもテストアーキテクチャにアクセスできてしまう。したがって、一実施形態では、テストアーキテクチャへのアクセスは、安全な状態に保たれる、すなわち、認証されていない高階層の層からの要求は、許可されない。
[Security Embodiment for Verification Architecture]
As noted above, one purpose of the test, verification and debug architecture includes abstracting (obfuscating) details at a lower level (hierarchy) that a designer or manufacturer does not want to reveal. However, in one embodiment, such details abstraction or obfuscation may not be sufficient from a "security" perspective. If only the abstraction layer is used, if the communication method with the abstraction layer API is determined, anyone including the end user can access the test architecture. Thus, in one embodiment, access to the test architecture is kept secure, i.e. requests from higher layers that are not authenticated are not allowed.

図15には、テストアーキテクチャへの安全なアクセスを提供するロジックの一実施形態が示されている。ここで、上記でアプリケーション層又はプレゼンテーション層を参照して説明したエンティティの何れを含んでもよいアプリケーション又はコンソール1515は、パスコード1520を含む。鍵とも称されるパスコード1520は、機能への安全な又は鍵のかけられたアクセス、又は、アクセスのレベルを提供する周知のあらゆる形式の値を含む。最初のやり取りで、又は、要求に続くやり取りで、アプリケーション1515は、VCU1507によって実装されるAPIインターフェースのようなインターフェース1530を介して、自身のパスコード1520を抽象化層に提供する。ここで、アプリケーション1515のトポロジーが、論理的にUUT1505から分離されて示されているが、これは例示に過ぎない。替わりに、UUT1505は、アプリケーションを実行してもよい。VCU1507は、このシナリオでは、UUT1505にアクセスするホストシステム/コンソールとして見なされるデバイス1515に実装されてもよい。   FIG. 15 illustrates one embodiment of logic that provides secure access to a test architecture. Here, the application or console 1515, which may include any of the entities described above with reference to the application layer or the presentation layer, includes a passcode 1520. Passcode 1520, also referred to as a key, includes any known type of value that provides a secure or locked access to a function or level of access. In the initial exchange or the exchange following the request, the application 1515 provides its passcode 1520 to the abstraction layer via an interface 1530, such as an API interface implemented by the VCU 1507. Here, the topology of the application 1515 is shown logically separated from the UUT 1505, but this is merely an example. Alternatively, UUT 1505 may execute an application. VCU 1507 may be implemented in device 1515, which in this scenario is considered as a host system / console accessing UUT 1505.

物理的実装形態に関わらず、抽象化層がパスコード1520を受信する時、UUT1505の汎用レジスタ、制御レジスタ又はモデル固有レジスタ(MSR)のような、格納要素1510に格納されているパスコードとアプリケーションパスコードとの比較に基づいて、抽象化層は、アプリケーション1515にアクセスの程度を提供する。一例として、アクセスのレベルが1つのみ存在するとする(フルアクセス又はアクセスなし)。ここで、アプリケーションパスコード1520が、格納要素1510保持されているパスコードと一致する場合、アプリケーション1520は、VCU1507によって実装される抽象化層に提供されている全てのサービス(関連するDFx機能へのアクセス)を利用してもよい。これに替えて、パスコードが提供されていない又は一致しない場合には、アプリケーション1515からの抽象化層への要求は、満たされない/許可されない。   Regardless of the physical implementation, when the abstraction layer receives the passcode 1520, the passcode and application stored in the storage element 1510, such as a UUT 1505 general purpose register, control register or model specific register (MSR) Based on the comparison with the passcode, the abstraction layer provides the degree of access to the application 1515. As an example, assume that there is only one level of access (full access or no access). Here, if the application passcode 1520 matches the passcode held in the storage element 1510, the application 1520 is responsible for all services provided to the abstraction layer implemented by the VCU 1507 (to the associated DFx function. Access) may be used. Alternatively, if the passcode is not provided or does not match, the request from the application 1515 to the abstraction layer is not satisfied / allowed.

一実施形態では、セキュリティの複数のレベルが提供される。例えば、設計者は、異なる顧客又はベンダーについて、アルゴリズム、プロトコル、データ構造、DFx機能等への異なるアクセスレベルを付与したいと考える場合がある。そして、設計者/製造者は、抽象化層がDFx機能及び関連するUUTをテスト、検証及びデバッグするべく抽象化するDFx機能の低いレベルの詳細への制限されないアクセスを有することを望む。同様に、設計者/製造者は、抽象化層内に完全なアクセスを提供してもよい。   In one embodiment, multiple levels of security are provided. For example, a designer may want to give different access levels to algorithms, protocols, data structures, DFx functions, etc. for different customers or vendors. The designer / manufacturer then wants the abstraction layer to have unrestricted access to the low-level details of the DFx function that it abstracts to test, validate and debug the DFx function and associated UUT. Similarly, the designer / manufacturer may provide full access within the abstraction layer.

図示されている実施形態では、格納要素1510は、パスコードの3つのレベルを保持する。パスコードの1つ(パスコード1511)は、レベル0アクセス(DFx機能への自由な又は制限のほとんどないアクセス)を提供する製造者パスワードである。パスコード1512で表されている第2のレベル(レベル1)は、テストアーキテクチャへの一部選択的/制限されたアクセスを提供する。そして、パスコード1513で表されている第Nのレベルは、テストアーキテクチャへのより選択的に制限されたアクセスを提供する。ここで、パスコード1512が第3者のベンダー(TPV)に供給されるように、パスコードはそれぞれ、安全に供給される。このように、TPVツールを設計する時には、パスコード1520としてパスコード1512を組み込む又は利用することができる。したがって、アプリケーション1515が認証プロセスを通過する時に(パスコード1520を、VCU1507によって実装される抽象化層又はセキュリティそうに提供する時に)、テストアーキテクチャにレベル1アクセスが提供される。この場合、レベル1アクセスは制限されている。したがって、セキュリティレベル(DFx機能又は制限されている実装詳細へのアクセス)内でないアプリケーション1515からのアクセスは、VCU1507によって拒否される(許可されない)。   In the illustrated embodiment, the storage element 1510 holds three levels of passcodes. One of the passcodes (passcode 1511) is a manufacturer password that provides level 0 access (free or almost unlimited access to DFx functionality). The second level (level 1) represented by passcode 1512 provides partially selective / restricted access to the test architecture. And the Nth level, represented by passcode 1513, provides more selectively restricted access to the test architecture. Here, each passcode is securely supplied so that the passcode 1512 is supplied to a third party vendor (TPV). As described above, when designing the TPV tool, the passcode 1512 can be incorporated or used as the passcode 1520. Thus, level 1 access is provided to the test architecture when the application 1515 passes the authentication process (when the passcode 1520 is provided as an abstraction layer or security implemented by the VCU 1507). In this case, level 1 access is restricted. Accordingly, access from applications 1515 that are not within the security level (DFx functionality or access to restricted implementation details) is denied (not permitted) by the VCU 1507.

図16には、テストアーキテクチャにおける安全なアクセスを提供するフローチャートの一実施形態が示されている。フロー1605において、アプリケーションのアクセスレベルが決定される。一実施形態において、アプリケーションとテストアーキテクチャのアクセスレベルとを関連付けるのに、あらゆる周知の認証プロセスが使用される。別の例では、上記したようなパスコード検証プロセスを使用して、アプリケーションのアクセスレベルを決定する。この決定は、アプリケーション(プログラム開始時の一般的な認証)実行の開始時点で行われてもよいし、特定の要求の発生時に行われてもよい。   FIG. 16 illustrates one embodiment of a flowchart for providing secure access in a test architecture. In flow 1605, the access level of the application is determined. In one embodiment, any known authentication process is used to associate the application with the access level of the test architecture. In another example, a passcode verification process as described above is used to determine the access level of the application. This determination may be performed at the start of execution of an application (general authentication at the start of a program) or may be performed when a specific request occurs.

フロー1610において、アプリケーションによって、サービス要求が抽象化層APIに提供される。ここで、APIへのサービス要求は一例に過ぎず、要求には、あらゆるサービス要求又はDFx機能へのアクセス要求が含まれてもよい。フロー1615において、要求の種類又は形式に関わらず、決定されたアクセスレベルに基づいて、要求されたサービスが許可されるか否かが判断される。このシナリオでは、特定のサービス、アルゴリズム、プロトコル、DFx機能等は、規定されたセキュリティアクセスレベルに従って、許可可能又は制限されるとして予め定められる。したがって、要求が、アプリケーションの1つのアクセスレベル(又は、より多くのアクセスの1つのレベル)と関連付けられている場合には、フロー1625において、要求が許可され、フロー1630において(サービスの一部分が)被試験DFxユニットにトランスポートされる。反対に、要求が、アプリケーションのアクセスレベル内でない場合には、フロー1620において許可されない。   In flow 1610, the application provides a service request to the abstraction layer API. Here, the service request to the API is merely an example, and the request may include any service request or an access request to the DFx function. In flow 1615, it is determined whether the requested service is allowed based on the determined access level regardless of the type or form of the request. In this scenario, certain services, algorithms, protocols, DFx functions, etc. are predetermined as allowed or restricted according to a defined security access level. Thus, if the request is associated with one access level of the application (or one level of more access), the request is granted in flow 1625 and in flow 1630 (part of the service). Transported to the DFx unit under test. Conversely, if the request is not within the access level of the application, it is not allowed in flow 1620.

[検証アーキテクチャへの物理的アクセスの実施形態]
上記したように、ハードウェアテスト機能へのアクセスは、コンピュータプラットフォームの至るところに存在する複数の結合及び接続されていないポートにわたって、分配されている。これにより、プラットフォームをテストするための接続か、煩雑で高価(様々なポートが存在し、これらのポートを接続するのに異なるツールが必要)なものとなっている。したがって、一実施形態では、複数のプラットフォームテストインターフェースの替わりに、ユニバーサルテストアクセスポート(UTAP)が提供されている。図17には、プラットフォームにおけるテストアーキテクチャのためのUTAPの一実施形態が示されている。
Embodiment of physical access to verification architecture
As described above, access to hardware test functions is distributed across multiple coupled and unconnected ports that exist throughout the computer platform. This makes the connection to test the platform or cumbersome and expensive (various ports exist and different tools are needed to connect these ports). Accordingly, in one embodiment, a universal test access port (UTAP) is provided instead of multiple platform test interfaces. FIG. 17 illustrates one embodiment of UTAP for a test architecture on a platform.

プロセッサ1710a−dは、クイックパスインターコネクトのような相互接続1750により共に接続されている周知のプロセッサを含み、PCH1770は、ダイレクト・メディア・インターフェース(DMI)のような相互接続1765を介してプロセッサ1710cと結合されている。図示されるように、VCU1712a−eは、テスト接続又はその他の周知のインターフェースのような相互接続1790で通信を行うことができる。しかしながら、別の実施形態では、上記したように、VCUは、相互接続1750、1765を介して通信を行うことができる。その結果、このシナリオでは、VCU1712a−eは、互いに通信するように適応され、これにより、UTAP1785のような1つの統合されたポートを介して、プラットフォーム1700のVCUテスト機能にアクセスすることができる。ここで、VCU1712a−eは、協働してやり取りを行うことができる。または、UTAP1785からのメッセージを好適な意図したVCUへとルートすることができる。   Processors 1710a-d include known processors connected together by an interconnect 1750 such as a quick path interconnect, and PCH 1770 communicates with processor 1710c via an interconnect 1765 such as a direct media interface (DMI). Are combined. As shown, VCUs 1712a-e may communicate over an interconnect 1790 such as a test connection or other well-known interface. However, in another embodiment, the VCU can communicate over the interconnects 1750, 1765 as described above. As a result, in this scenario, the VCUs 1712a-e are adapted to communicate with each other, thereby allowing access to the VCU test functionality of the platform 1700 via one integrated port, such as UTAP 1785. Here, the VCUs 1712a-e can interact with each other. Alternatively, a message from UTAP 1785 can be routed to a suitable intended VCU.

一実施形態において、UTAP1785はデバッグ情報を(プロセッサと関連付けられたメモリ又はVCUから)抽出し、VCU1712a−eと通信を行う双方向ポートを含む。一例として、UTAP1785は、専用テストポートを含む。別の実施形態では、UTAP1785は、既存のインターフェース(例えば、ユニバーサル・シリアル・バス(USB)インターフェース、シリアルアドバンストテクノロジーアタッチメント(SATA)インターフェース、又は、その他の周知のインターフェース)又は二重に使用できる将来のインターフェースのような別のインターフェースを、抱き合わせする。   In one embodiment, UTAP 1785 includes a bi-directional port that extracts debug information (from a memory or VCU associated with the processor) and communicates with VCU 1712a-e. As an example, UTAP 1785 includes a dedicated test port. In another embodiment, UTAP 1785 is an existing interface (eg, Universal Serial Bus (USB) interface, Serial Advanced Technology Attachment (SATA) interface, or other well-known interface) or dual-use future Tying together another interface, such as an interface.

図示されているトポロジーは、一例に過ぎない。あらゆる数のプロセッサが含まれてもよい。また、PCHが含まれなくてもよい。加えて、UTAP1785は、コンソール、コンピュータ又はテスタのような外部デバイスを結合する物理的なポートを含んでもよい。別の例として、UTAPは、ネットワークインターフェースデバイス(例えば、NIC)又はホスト又はリモートシステムとの通信を制御する(リモートシステムに関しては、以下でより詳細に説明する)。ここで、制御部は、ベースボード管理制御部(例えば、温度、ファンの速度、電源のステータス等のシステムパラメータを報告する、マザーボードに埋め込まれた埋め込みマイクロコントローラ)を含んでもよく、プラットフォーム1700とのリモート通信を容易にしてもよい。   The topology shown is only an example. Any number of processors may be included. Further, PCH may not be included. In addition, UTAP 1785 may include physical ports that couple external devices such as consoles, computers, or testers. As another example, UTAP controls communication with a network interface device (eg, NIC) or host or remote system (the remote system is described in more detail below). Here, the control unit may include a baseboard management control unit (for example, an embedded microcontroller embedded in the motherboard that reports system parameters such as temperature, fan speed, power supply status, etc.). Remote communication may be facilitated.

ユニバーサルテストポートを提供することにより、プラットフォームのテストを(コスト及び複雑性の両面において)単純化することができる。しかしながら、プロセッサのような個別のパーツの現在のテスト場所には、非効率性も存在する。例えば、典型的なプロセッサは、プロセッサの底面側にテスト及び検証用のピンが設けられ、ピンが限定されることから、パッケージ基板が大きくなりコストも高くなっていた。このようなコストを低減させるために、フックのテスト及びデバッグを大幅に省いていた。その結果、顧客がデバッグしきれなかった部分でエラーが発生し、製造者に返品となってしまう場合があった。   By providing a universal test port, platform testing can be simplified (both cost and complexity). However, inefficiencies also exist at current test locations for individual parts such as processors. For example, a typical processor is provided with test and verification pins on the bottom side of the processor, and the pins are limited. Therefore, the package substrate is large and the cost is high. In order to reduce such costs, hook testing and debugging has been largely omitted. As a result, an error may occur in the part that the customer could not debug, and the product may be returned to the manufacturer.

したがって、一実施形態では、集積回路(IC)パッケージ基板(例えば、プロセッサ、制御ハブ等)の電子部品等が装着されていない上面の領域、例えば、基板の周辺領域等を利用して、テスト及び/又は検証用のピンの一部又は全てを配置する。一例として、これらのピンは、パッケージ基板の外側の金属層にエッチングされて、ソルダレジストによって露出される。   Accordingly, in one embodiment, an integrated circuit (IC) package substrate (e.g., a processor, a control hub, etc.) on a top surface area where no electronic components are mounted, e.g., a peripheral area of the substrate, etc. Place some or all of the verification pins. As an example, these pins are etched into a metal layer outside the package substrate and exposed by solder resist.

図18には、大量生産用の接続メカニズムの一例における集積回路パッケージの一実施形態が示されている。この例では、ICは、上側テスト及びデバッグピン1865を含むCPUパッケージ1860を含む。これらのピンは、関連する使用目的に応じて、様々な方法で接続することができる。使用目的が検証及びトラブルシューティングである場合には、圧縮型のコネクタ機構を使用してピンにアクセスしてもよく、コネクタ機構は、コネクタを直接パッケージ基板に配列させるアライメント機能を含んでもよい。これにより、最大限の許容差を得ることができ、ピンの大きさ及び接続システムを可能な限り小さくすることができる。これらの構造には、多くの場合、ソケット1850に受け入れられ合致する構造が含まれ、上面のコネクタとIC1860の基板とを接続させることができる。   FIG. 18 illustrates one embodiment of an integrated circuit package in one example of a mass production connection mechanism. In this example, the IC includes a CPU package 1860 that includes upper test and debug pins 1865. These pins can be connected in a variety of ways, depending on the intended purpose of use. If the purpose of use is verification and troubleshooting, a compression type connector mechanism may be used to access the pins, and the connector mechanism may include an alignment feature that aligns the connector directly on the package substrate. This allows maximum tolerances and makes the pin size and connection system as small as possible. These structures often include structures that are received and mated to the socket 1850, allowing the top connector to connect to the IC 1860 substrate.

HVM接続シナリオのような、図示の接続シナリオでは、二枚貝のような形状のヒンジ固定部1820を含み、それにより、ポゴピン(プローブピン)型の接続のようなIC固定プローブ1835を、上面ピン1865と接続することができる。そして、IC固定プローブワイヤ1810により、固定プローブ1835がコンソール/テスタ1805に接続される。その結果、二枚貝ヒンジ1820によって、接続メカニズムを開いた状態とすることができ、新たなパーツが挿入され、ヒンジ1820が閉じると、テスタ1805と上面テスト/デバッグピン1865との間の接続がなされる。様々な大量生産テストの利用の場合において、このようなパッケージ上面のピンの接続速度は、最小の許容"打ちつけ速度(beat rates)"に維持され、接続方法は、図18に示されるような自動化及び/又は高効率のメカニズムの一種が使用される。   In the illustrated connection scenario, such as the HVM connection scenario, it includes a bivalve-shaped hinge fixing portion 1820, whereby an IC fixing probe 1835, such as a pogo pin (probe pin) type connection, is connected to the top surface pin 1865. Can be connected. Then, the fixed probe 1835 is connected to the console / tester 1805 by the IC fixed probe wire 1810. As a result, the bivalve hinge 1820 can open the connection mechanism, and when a new part is inserted and the hinge 1820 closes, the connection between the tester 1805 and the top test / debug pin 1865 is made. . In the case of various mass production test applications, the connection speed of the pins on the top of such a package is maintained at the minimum allowable “beat rates” and the connection method is automated as shown in FIG. And / or one type of highly efficient mechanism is used.

同様にマザーボード1840の接続も図示されており、マザーボード固定ワイヤ1823は、テスタ1805とMB固定プローブ1825とを接続する。また図示するように、ベースプローブ1830は、マザーボード1840のベースに接触している。図示されている二枚貝ヒンジ1820は、一例に過ぎず、プローブ、テスタ、ソケット、HVMツール等のためのあらゆる周知の接続シナリオを採用してもよい。更に、同様なメカニズムを、コントローラハブ又は周辺デバイスのようなその他のICに対して使用してもよい。   Similarly, the connection of the mother board 1840 is also illustrated, and the mother board fixing wire 1823 connects the tester 1805 and the MB fixing probe 1825. As illustrated, the base probe 1830 is in contact with the base of the motherboard 1840. The bivalve hinge 1820 shown is merely an example and any known connection scenario for probes, testers, sockets, HVM tools, etc. may be employed. In addition, similar mechanisms may be used for other ICs such as controller hubs or peripheral devices.

図18には、インテグレーテッド・ヒート・スプレッダ(IHS)1870が示されており、一実施形態では、IHSは、上面ピン1865を設けるための領域を作り、その領域において固定プローブ1835との接続を可能としている。図19には、上面試験ピン及びプロービングをサポートする目立たない搭載のための機能を有するヒートスプレッダ(放熱板)の一実施形態が示されている。この例では、パッケージ1907上の集積回路1905は、IHS1910と関連付けられている。一実施形態において、IHS1910は、目立たない程度に突出した"搭載耳部"1911を含む。図では、搭載耳部1911は、直接ソケット搭載(DSL)メカニズム1920のように、ソケットの搭載メカニズムを可能とするような、ソケット作動搭載点を提供する。このような設計を採用することにより、上面を占める面積を小さくすることができ、上記のような検証のための信号ピン/パッドのためのスペースをより多く確保することができる。   FIG. 18 shows an integrated heat spreader (IHS) 1870, which, in one embodiment, creates an area for providing the top surface pin 1865, in which connection with the fixed probe 1835 is made. It is possible. FIG. 19 shows an embodiment of a heat spreader having a function for inconspicuous mounting that supports upper surface test pins and probing. In this example, integrated circuit 1905 on package 1907 is associated with IHS 1910. In one embodiment, the IHS 1910 includes a “mounting ear” 1911 that protrudes inconspicuously. In the figure, the mounting ear 1911 provides a socket actuation mounting point that enables a socket mounting mechanism, such as a direct socket mounting (DSL) mechanism 1920. By adopting such a design, the area occupying the upper surface can be reduced, and more space for signal pins / pads for verification as described above can be secured.

搭載耳部1911の外側の、IHS1910の外周部には、IHS1910の外縁に沿った連続的又は非連続的な小さな段が設けられていてもよい。別の例では、外縁は、段を有さなくてもよい。耳部1911が図のように搭載される時、パッケージ1907がソケットに押し付けられて、ソケットが作動し、ソケットとデバイスパッケージとの間の電気的な接続がなされる。耳部の数は、アプリケーション毎の特定の搭載点の数に依存する(図では2つの耳部が示されているが、これに限定されない)。さらに、耳部1911が、図では所定のアプリケーションの搭載点の下(例えば、真下)に位置しているが、IHS1910の真ん中に必ずしも位置する必要はない。耳部1911は、多くの場合(常にではない)、IHS1910における搭載メカニズムによって印加される力が、IHS1910/パッケージ1907を中心に封じ込めるのに十分な作動力となるような位置に配置される。一実施形態において、搭載耳部1910は、搭載メカニズムの搭載ゾーンを完全に覆う特定の長さを有する。例えば、提案されるIHS耳部は、DSL搭載プレート1920の搭載長を覆う1mmから50mmの範囲の長さを有する。IHS1910組み立ての間に、IHSシーラントを、耳部1911の下に配置して、耳部1911を曲げることなく、搭載力をパッケージ1907に移動させることができる。   A continuous or discontinuous small step along the outer edge of the IHS 1910 may be provided on the outer periphery of the IHS 1910 outside the mounting ear 1911. In another example, the outer edge may not have a step. When the ear 1911 is mounted as shown, the package 1907 is pressed against the socket, the socket is activated, and an electrical connection is made between the socket and the device package. The number of ears depends on the number of specific mounting points for each application (two ears are shown in the figure, but are not limited to this). Furthermore, although the ear 1911 is located below (for example, directly below) a predetermined application mounting point in the drawing, it is not always necessary to be located in the middle of the IHS 1910. The ears 1911 are often (but not always) positioned in such a way that the force applied by the mounting mechanism in the IHS 1910 is an actuating force sufficient to contain the IHS 1910 / package 1907 in the center. In one embodiment, the mounting ear 1910 has a specific length that completely covers the mounting zone of the mounting mechanism. For example, the proposed IHS ear has a length in the range of 1 mm to 50 mm that covers the mounting length of the DSL mounting plate 1920. During IHS 1910 assembly, an IHS sealant can be placed under the ear 1911 to move the mounting force to the package 1907 without bending the ear 1911.

従来の典型的なIHSは、負荷が十分に分散させてソケットを電気接続させるための始動力となるように、周辺部の90%に搭載の段が設けられていた。これに対し、上記のような搭載耳部を設けることにより、同じ搭載プロセスを、外縁に設けられた少ない数の段を使用して達成することができるので、ICの上面において、テスト/デバッグのためのピン配列及びプロービングのための領域をより広く確保することができる。また、広くなった空間を利用することにより、IHS1910は、多くの負荷が掛かるIHS1910の部分に位置する目立たない搭載耳部1911を有する選択的な形状の棚部を有してもよい。例えば、DSL搭載プレート1920は、IHS1910における段の小さな部分に接触する。したがって、耳部1911は、DSLプレート1920が負荷を掛ける場所に戦略的に配置される。その結果、新たに確保された何も設けられていない空間を利用することにより、パッケージサイズを大きくすることなく又はIHS1910の放熱領域を小さくすることなく、新たな上面テストピンを設けることができる。   In the conventional typical IHS, a mounting stage is provided in 90% of the peripheral portion so that the load is sufficiently dispersed to provide a starting force for electrically connecting the socket. On the other hand, by providing the mounting ear as described above, the same mounting process can be achieved using a small number of steps provided on the outer edge, so that the test / debugging can be performed on the upper surface of the IC. Therefore, a wider area for pin arrangement and probing can be secured. Also, by utilizing the widened space, the IHS 1910 may have a selectively shaped shelf with an inconspicuous mounting ear 1911 located in the portion of the IHS 1910 that is heavily loaded. For example, the DSL mounting plate 1920 contacts a small portion of the step in the IHS 1910. Thus, the ears 1911 are strategically placed where the DSL plate 1920 is loaded. As a result, it is possible to provide a new upper surface test pin without increasing the package size or reducing the heat dissipation area of the IHS 1910 by utilizing a newly reserved space where nothing is provided.

放熱に関して、現在の熱マージンを持たせる設計は、大型化しており、大きな面積が使用されてしまい、信号の信頼性を保つためのマージンが小さくなってしまっている。したがって、図20には、熱的マージンを提供するよう設計されたスモールファクター熱的ツール(SFFTT)設計の分解図の一実施形態が示されている。ある実施形態では、このようなマージン化もDFx機能の1つと考えてもよい。SFFTT2000は、次のような1以上の構造を含む。ミニバルク熱電クーラー(TEC)アレイ2025の下部に半田付けされたカスタム冷却板2010、液体金属熱インターフェース材料(例えば、Ga−Sn液体金属材料)を介して未にバルクTECアレイ2025の上面に取り付けられたマイクロチャネル冷却技術を有する水冷器2040、均一な水流の分配を提供する固有チャネル設計されている水冷器2040のカバー、デバイスの中心部において、水の流入・流出(流入2050及び流出2060)、制御部に対するワイヤ・ハーネス・アセンブリ、制御部に温度のフィードバックを提供する冷却板2010の中心に埋め込まれたT型の熱電対、TECクラッキング対策のために水冷器2040と冷却板2010との間に設けられるスペーサ2020、実験用回路基板2035を使用してワイヤのストレスを軽減するTEC2025のケーブル管理、及び、温度スイッチのような構造が挙げられる。   With regard to heat dissipation, the current design with a thermal margin has been increased in size, and a large area has been used, and the margin for maintaining signal reliability has been reduced. Accordingly, FIG. 20 illustrates one embodiment of an exploded view of a small factor thermal tool (SFFTT) design designed to provide thermal margin. In some embodiments, such margining may be considered as one of the DFx functions. SFFTT 2000 includes one or more structures as follows. A custom cold plate 2010 soldered to the bottom of a mini-bulk thermoelectric cooler (TEC) array 2025, attached to the top surface of the bulk TEC array 2025 via a liquid metal thermal interface material (eg, Ga-Sn liquid metal material). Water cooler 2040 with micro-channel cooling technology, unique channel designed water cooler 2040 cover to provide uniform water flow distribution, water inflow / outflow (inflow 2050 and outflow 2060), control at the center of the device Wire harness assembly for the unit, a T-type thermocouple embedded in the center of the cooling plate 2010 that provides temperature feedback to the control unit, and provided between the water cooler 2040 and the cooling plate 2010 to prevent TEC cracking Spacer 2020 and experimental circuit board 2035 are used. To wire stress reduces TEC2025 cable management, and include structures such as the temperature switch.

このような構造は、SFFTTに対して有益な構成を与えうる。例えば、マイクロチャネル冷却技術を採用した水冷器2040では、ダイヤモンドフィン技術の設計よりも、効率的に冷却できる。水冷器のカバーの固有のチャネル設計と共に、流入口と流出口(250、260)とをSFFTT2000の中心に配置させることにより、中心からブロックへと冷やされた水を流入させ、温められた水は冷却器の側面を通過させることができるため、冷却のチャネルの長さは、その他のダイヤモンドフィン型の設計と比較して半分で済む。その結果、TEC2025及び被試験シリコンによって生成される熱により典型的に最も熱が集中する中心部に、最も冷却できる領域を配置させることができる。そして、最終的には、水冷器における温度差を3℃ほど減少させることができ、温度分布が均一になるため、TEC2025の信頼性が高まる。別の例では、冷却板2010をミニバルクTEC2025に取り付けることにより、熱抵抗の層を低減させることができる。さらに、水冷器2040と冷却板2010との間のスペーサ2020は、バルクTECの場合に生じるTEC2025のクラッキングの問題を防ぐことができる緩衝メカニズムを提供する。実験用回路基板2035を使用したケーブル管理は、ワイヤ(配線)ストレスを緩和し、TECのリード線の故障率を低減させることができる。   Such a structure can provide a useful configuration for SFFTT. For example, a water cooler 2040 that employs microchannel cooling technology can cool more efficiently than a design of diamond fin technology. By placing the inlet and outlet (250, 260) in the center of the SFFTT 2000, along with the unique channel design of the water cooler cover, the cooled water flows from the center to the block, Because it can be passed through the side of the cooler, the length of the cooling channel is half that of other diamond fin-type designs. As a result, the most coolable region can be placed in the center where the heat is typically concentrated by the heat generated by the TEC 2025 and the silicon under test. Finally, the temperature difference in the water cooler can be reduced by about 3 ° C., and the temperature distribution becomes uniform, so that the reliability of the TEC 2025 is increased. In another example, attaching the cold plate 2010 to the mini-bulk TEC 2025 can reduce the layer of thermal resistance. Further, the spacer 2020 between the water cooler 2040 and the cold plate 2010 provides a buffering mechanism that can prevent TEC 2025 cracking problems that occur in the case of bulk TEC. Cable management using the experimental circuit board 2035 can alleviate wire (wiring) stress and reduce the failure rate of TEC lead wires.

更に説明するため、上記の構造の詳細例を以下に記載する。第1の例として、ミニバルクTECアレイ2025は、最大放散温度が75℃、設置面積が15cm2の最大39mm×39mmの大きさの領域を含む。さらに、アレイ2025に、いかなる数のTECが接続されてもよい。一実施例として、11個のTECの2つの組が直列に接続され、別の11個のTECの2つの組が並列に接続される。水冷器2040のマイクロチャネルフィン設計は、ダイヤモンドフィンの円形の冷却パターンではなく、垂直方向(又は水平方向)の冷却チャネルを提供する。チャネル/フィンは、いかなるサイズであってもよい。例えば、フィンは、高さが2mm、幅が0.3mm、そして0.3mmの間隔で設けられたものであってもよい。水冷器2040の様々な設計のシミュレーションの一例において得られた性能の概要が、表1に示されている。   For further explanation, a detailed example of the above structure is described below. As a first example, the mini-bulk TEC array 2025 includes a region having a maximum size of 39 mm × 39 mm with a maximum dissipation temperature of 75 ° C. and an installation area of 15 cm 2. Further, any number of TECs may be connected to the array 2025. As an example, two sets of 11 TECs are connected in series and two other sets of 11 TECs are connected in parallel. The microchannel fin design of the water cooler 2040 provides a vertical (or horizontal) cooling channel rather than a circular cooling pattern of diamond fins. The channels / fins can be any size. For example, the fins may be provided at intervals of 2 mm in height, 0.3 mm in width, and 0.3 mm. A summary of the performance obtained in an example simulation of various designs of the water cooler 2040 is shown in Table 1.

同様なシミュレーションで、マイクロチャネル水冷器技術によれば、速度分布及び温度分布が改善されることが確かめられている。この改善により、同様な温度マージン(5℃−100℃)を提供すると同時に、従来の熱マージンデバイスと比較して、SFFTTのサイズを40−50%小さくすることができる。さらに、フォームファクターが小さくなることにより、ボード上の占有面積を小さくすることができ、それにより、チップ同士を近接して配置できるようになることから、信号品質(SI)マージンを改善することができる。SIマージンにおける改善により、全てのマーケットセグメントのトレンドが、製品の小型化を加速させると考えられる。また、水冷器のカバーにおける固有のチャネル設計により、均一な水流分布を提供でき、それにより、TECの信頼性を向上させることができる。さらに、障害部分を分離し、製造者及びベンダーのポストシリコンデバッグ/検証活動の一部として漏れを低減できることから、故障検出の速度を上げることができると考えられる。ベンダーが温度のマージン化の能力を備えることにより、製造者は性能における競争力をつけることができる。また、ベンダーによる検証で発見された事項は、製造者が電気的検証をより効率に行うために有用な情報となり得る。そして、よりエンドユーザーに優しい製品を提供することが可能になると考えられる。   Similar simulations confirm that the microchannel water cooler technology improves the velocity and temperature distribution. This improvement can provide a similar temperature margin (5 ° C.-100 ° C.) while reducing the size of the SFFTT by 40-50% compared to conventional thermal margin devices. Furthermore, the smaller form factor can reduce the occupied area on the board, thereby enabling the chips to be placed close together, thereby improving the signal quality (SI) margin. it can. With improvements in SI margin, trends in all market segments are expected to accelerate product miniaturization. Also, the unique channel design in the cover of the water cooler can provide a uniform water flow distribution, thereby improving TEC reliability. In addition, fault detection can be speeded up by isolating faults and reducing leakage as part of manufacturer and vendor post-silicon debug / verification activities. By providing vendors with the ability to margin temperature, manufacturers can gain a competitive edge in performance. In addition, items discovered by vendor verification can be useful information for a manufacturer to perform electrical verification more efficiently. And it will be possible to provide more end-user friendly products.

[検証アーキテクチャへのリモートアクセスの実施形態]
以前は、製造者は、多大な資源(時間、人員及び資金)を費やして、ベンダーがデバッグするのを援助していた。実際に、ベンダー自身で、発生した問題のテスト及びデバッグを行えない場合には、製造者/設計者は、ベンダーの工場に検証を行うエンジニアを派遣していた。部品及びプラットフォームの複雑さが増し、検証及びデバッグのプロセスはベンダーにとってさらに難しいものとなり、製造者にとっても煩雑なプロセスとなってきている。したがって、一実施形態では、検証アーキテクチャは、テスト、検証及び/又はデバッグプロセスを助けるリモートアクセスを可能とする。
[Embodiment of remote access to verification architecture]
In the past, manufacturers have spent significant resources (time, personnel and money) to help vendors debug. In fact, if the vendor cannot test and debug the problem that occurred, the manufacturer / designer has dispatched an engineer to perform verification to the vendor's factory. With the increasing complexity of parts and platforms, the verification and debugging process has become more difficult for vendors and more complicated for manufacturers. Thus, in one embodiment, the verification architecture allows remote access to assist in the testing, verification and / or debugging process.

図21には、被試験ユニットへのリモートアクセスの一実施形態が示されている。上記したように、テストアーキテクチャ積層構造が、複数のマシーン(及びネットワーク)にわたって実装されてもよい。ここで、リモートホスト2105は、上記したような、ツール2106(テスト、検証及びデバッグツールを有するアプリケーション層)及び抽象化層2107を含む/実装する。層2106、2017からの伝達情報は、リモートインターフェース、ネットワークインターフェース、周辺機器インターフェース等の周知のインターフェースを含むインターフェース2130を介して提供される。一実施形態では、このような伝達情報は、周知の暗号化アルゴリズム2150に従って暗号化される。さらに、別の実施形態では、トランスポートに、VPN暗号化2110が使用される。このシナリオでは、ローカルホスト2115(すなわち、リモートホスト2105とある態様で結合されるホスト)は、トランスポート方法を感知しない層2106、2107をトランスポートのために採用するべく、トランスポート層2116を被試験ユニット(UUT)2120に実装する。したがって、上記したテスト、デバッグ、検証及びセキュリティオペレーションは、リモートホストから被試験ユニットのインターフェースに実装されてもよい。   FIG. 21 shows an embodiment of remote access to the unit under test. As described above, the test architecture stack may be implemented across multiple machines (and networks). Here, the remote host 2105 includes / implements a tool 2106 (an application layer having test, verification and debug tools) and an abstraction layer 2107 as described above. Communication information from the layers 2106 and 2017 is provided via an interface 2130 including a well-known interface such as a remote interface, a network interface, and a peripheral device interface. In one embodiment, such communication information is encrypted according to a well-known encryption algorithm 2150. Furthermore, in another embodiment, VPN encryption 2110 is used for the transport. In this scenario, the local host 2115 (i.e., a host that is coupled in some manner with the remote host 2105) is covered by the transport layer 2116 to employ layers 2106, 2107 that are insensitive to the transport method for transport. The test unit (UUT) 2120 is mounted. Therefore, the above test, debug, verification and security operations may be implemented from the remote host to the interface of the unit under test.

図22を参照して、被試験テストにリモートアクセスする別の実施形態を説明する。この例では、リモートホスト2205は、3つの層(2206、2207及び2208)を含み、被試験ユニット(UUT)2220との暗号化されたチャネルを介した直接通信を行う。例示されたレイアウトとは異なり、リモートで被試験ユニットとインターフェースするべく、あらゆる結合又はレイアウトを実装してもよい。また、チャネルの設定に、あらゆる認証プロセスを利用してもよい。セキュリティプロトコル(上記したようなプロトコルと同様な)を利用して、様々なレベルのアクセスを検証してもよい。その結果、ベンダー又は製造者は、ユニットに物理的に結合することなく、リモートで、デバイスのテスト、検証又はデバッグを行うことができる。このように、検証を行うエンジニアを物理的にベンダーの工場に派遣することなく、リモートでテスト/デバッグに関連する時間及び費用を大幅に低減させることができる。   With reference to FIG. 22, another embodiment for remote access to a test under test will be described. In this example, the remote host 2205 includes three layers (2206, 2207, and 2208) and communicates directly with the unit under test (UUT) 2220 via an encrypted channel. Unlike the illustrated layout, any combination or layout may be implemented to remotely interface with the unit under test. Also, any authentication process may be used to set the channel. Various levels of access may be verified using a security protocol (similar to the protocol described above). As a result, the vendor or manufacturer can remotely test, verify, or debug the device without being physically coupled to the unit. In this way, the time and cost associated with remote test / debug can be significantly reduced without physically sending an engineer to perform the verification to the vendor's factory.

[収集情報管理の実施形態]
フックのテスト、検証及びデバッグの実施形態の章で説明したように、プロセッサ、制御ハブ又はその他のデバイスのODLAは、一実施形態では、トレース情報のようなオンダイ及び/又はインターフェース情報を収集することができる。メモリをトレースバッファとして使用するといったように、あらゆる態様で情報を伝達してもよい。あるいは、以下で詳細に説明するように、ロジックは、サイドバンド通信バスのようなインターフェースを介して、このようなデータを提供してもよい。そして、情報が、管理(フォーマット、操作、解釈、デバッグ等)のためのツールに提供される。
Collected information management embodiment
As described in the hook testing, verification and debugging embodiments section, the ODLA of a processor, control hub or other device, in one embodiment, collects on-die and / or interface information such as trace information. Can do. Information may be communicated in any manner, such as using memory as a trace buffer. Alternatively, as described in detail below, the logic may provide such data via an interface such as a sideband communication bus. Information is then provided to tools for management (formatting, manipulation, interpretation, debugging, etc.).

また、上記したように、パーツを収集及び分析する外部の解析装置を使用するのは複雑でありコストがかかる。例えば、PCIeインターフェースのような複雑なインターフェースのプロトコル解析装置は、50,000ドルもの値段になる場合がある。高速シリアルインターフェースを介したインバンドメッセージングの一部のように、レガシー信号が統合されるにしたがい、マザーボード上で情報が簡単に利用できなくなってきる。そこで、図23には、JTAG又はSMBusのようなサイドバンドバス上で、トレース情報をホストシステムに提供するロジックの一実施形態が示されている。取得されるレガシーインバンド信号の例には、TRDY2321、INTR2322、SMI2323及びSTPCLK2324が含まれる。この例では、PCH2320におけるODLA2330は、上記の信号のトレースを取得する。ホストシステム2360又は埋め込み制御部2340(例えば、抽象化層を実装するVCU)の指示によるピンの切り替え、ブレークポイントイベントの設定等のイベントに応答して、トレースを取得してもよい。制御部2340は、信号についてデータを取得し、それを、サイドバンドバス2350を介してホストシステム2360に提供する。一例として、このデータの形式としては、対応する信号が、高い状態を保っているか、低い状態を保っているのか、切り替わるのか、切り替わる方向又は切り替え頻度を示す情報を含む。この例では、データを処理する埋め込み制御部2340、及び、観察する様々な内部信号を選択するODLA2340の機能により、ハードウェアに変更を行うことなく、デバッグ能力を更新することができる。   In addition, as described above, it is complicated and expensive to use an external analysis device that collects and analyzes parts. For example, a complex interface protocol analyzer such as a PCIe interface may cost as much as $ 50,000. As part of in-band messaging over a high-speed serial interface, as legacy signals are integrated, information is not readily available on the motherboard. Thus, FIG. 23 illustrates one embodiment of logic for providing trace information to a host system on a sideband bus such as JTAG or SMBus. Examples of acquired legacy in-band signals include TRDY 2321, INTR 2322, SMI 2323, and STPCLK 2324. In this example, ODLA 2330 in PCH 2320 obtains a trace of the above signal. A trace may be acquired in response to an event such as pin switching or breakpoint event setting according to an instruction from the host system 2360 or the embedding control unit 2340 (for example, a VCU that implements an abstraction layer). The controller 2340 obtains data about the signal and provides it to the host system 2360 via the sideband bus 2350. As an example, the format of this data includes information indicating whether the corresponding signal is kept in a high state, kept in a low state, switched, the switching direction or switching frequency. In this example, the debugging capability can be updated without changing the hardware by using the functions of the embedding control unit 2340 for processing data and the ODLA 2340 for selecting various internal signals to be observed.

図24には、内部観察トレース(IOT)データを管理する方法を示すフローチャートの一実施形態が示されている。フロー2405において、システムでテストが実行される。例えば、上記したようなテストを、被試験ユニットに実行してもよい。そして、ODLA(オンチップロジック分析器又はOCLAとも称される)のようなロジックから、IOTデータが取得される。IOTデータは、複数のストリーム/ソース(例えば、メモリ、I/O、オンコアインターフェース等)を含んでもよい。   FIG. 24 illustrates one embodiment of a flowchart illustrating a method for managing internal observation trace (IOT) data. In flow 2405, a test is performed on the system. For example, the above-described test may be performed on the unit under test. Then, IOT data is acquired from logic such as ODLA (also referred to as an on-chip logic analyzer or OCLA). The IOT data may include multiple streams / sources (eg, memory, I / O, on-core interface, etc.).

フロー2410において、IOTデータがダンプされる。例えば、被試験ユニットと関連付けられているメモリを、IOTデータのためのトレースバッファとして使用する。しかしながら、IOTデータを扱う/解釈するコンソール又はホストシステムのようなシステムにデータをダンプ/提供するのに、周知のいかなるインターフェースを利用してもよい。   In flow 2410, IOT data is dumped. For example, the memory associated with the unit under test is used as a trace buffer for IOT data. However, any known interface may be used to dump / provide data to a system such as a console or host system that handles / interprets IOT data.

フロー2415において、IOTデータからトレースデータを再構築して、再生を可能にする。トレースを再構築する及び/又はトレースデータをフォーマットするあらゆる周知の方法を利用してもよい。図25には、トレースの構築の一実施例が示されている。この例では、IOTデータの形式がデコードされる。あるシナリオでは、IOTデータは、特定の規定された形式の複数のストリーム/ソースを含む。フロー2505において、このような形式に従ってIOTデータがデコードされる。一例として、IOTデータに対してソースが特定される。そして、フロー2510において、ソースによって、IOTデータが、分離されグループ化されて、収容(bucketed)される。   In flow 2415, the trace data is reconstructed from the IOT data to allow playback. Any known method of reconstructing the trace and / or formatting the trace data may be utilized. FIG. 25 shows an example of trace construction. In this example, the format of IOT data is decoded. In one scenario, the IOT data includes multiple streams / sources in a specific defined format. In flow 2505, IOT data is decoded according to such a format. As an example, a source is specified for IOT data. Then, in a flow 2510, the IOT data is separated, grouped, and bucketed by the source.

各ソースに対するモジュール(サービス)、例えば、メモリソースIOTデータに対するメモリモジュール、プロセッサトレースIOTデータに対する内部プロセッサモジュール、クイックパス(Quickpath)インターフェースIOTデータに対するクイックパスモジュール、オンコア相互接続の環状トラフィックのためのオンコアモジュール等はフロー2515、2520において、対応する各ソ−スに対するトランザクションを再構築する。さらに、一実施形態では、フロー2525において、モジュールは、再構築されたトレースデータを、再生するためにフォーマットし直す。図24に示すように、フォーマットされ再構築されたトレースデータが再生される。その結果、再生によって、検証及びデバッグのための被試験ユニットのオペレーションに対する洞察を提供することができる。   Module for each source (service), eg memory module for memory source IOT data, internal processor module for processor trace IOT data, quick path module for Quickpath interface IOT data, on for on-core interconnect ring traffic The core module or the like reconstructs a transaction for each corresponding source in flows 2515 and 2520. Further, in one embodiment, in flow 2525, the module reformats the reconstructed trace data for playback. As shown in FIG. 24, the formatted and reconstructed trace data is reproduced. As a result, playback can provide insight into the operation of the unit under test for verification and debugging.

その結果、デバックに掛かる時間及びコストを低減させることができ、製品開発サイクルを増加させることができる。また、再生することにより、ソフトウェアメカニズムは、上記のテストアーキテクチャのような同一の又は同様なDFxの方法を含む製品に対するエミュレーション環境において、バグを再生することができるようになる。エミュレーション環境において、このようなバグを再生することで、被試験システム内におけるシステムの全振る舞いを完全に可視化できるようになり、デバッグを早く行うことが可能となる。そして、ロジック及び経路の境界性(marginality)についてのバグを解消の一助となる。また、同様な装置及び方法を使用して、大量生産用のテスト内容を開発してもよく、大量生産の場合の迅速で効率的なテスト内容を提供することができ、製品の安定性を高め、部分的に在庫管理を助けることから、コストを削減することができる。   As a result, the time and cost for debugging can be reduced, and the product development cycle can be increased. Replay also allows the software mechanism to replay bugs in an emulation environment for products that include the same or similar DFx methods, such as the test architecture described above. By reproducing such a bug in the emulation environment, it becomes possible to completely visualize the entire system behavior in the system under test, and to debug quickly. And it helps to solve bugs about logic and path marginality. In addition, similar equipment and methods may be used to develop test content for mass production, providing quick and efficient test content for mass production, increasing product stability. Costs can be reduced, partly from helping inventory management.

図26には、後処理の相違(divergence)を検出する方法のフローチャートの一実施形態が示されている。上記したように、被試験システムでテストが実行される時(フロー2605)、データが収集され、全く同じテスト条件をエミュレーション/シミュレーション環境(上記の図24−25を参照して説明した同様な方法で動作する環境、フロー2610−2625)に再生するのに収集されたデータを使用することができる。このプロセスから、検証では、ハードウェアで実行されるテストとソフトウェアモデルにおけるテストとの間の違いを検出することができ、これらの違いが、相違(divergence)と称される。後処理相違検出は、OCLAを使用したIOTのような、DFxハードウェア機能を活用して、システムの状態を保存する。テストが再生される時に、エミュレーションにおけるIOTに格納されているデータ(再生IOTデータ2635)は、再生の後に処理されて、被試験システムから収集されたIOTに格納されているデータ(収集済みIOTデータ2615)と比較され、後処理相違検出結果2640が取得される(すなわち、データ2615と再生データ2635との間の違いが取得される)。実行には高価で特別なハードウェアが必要となることから、再生の間の実行時間はコストが掛かる。したがって、このような再生の間の相違を計算することは、費用の高い実行時間を費やすことになると考えられる。そこで、一実施形態では、システムメモリのような内部のロケーションに保存したシステムステートを使用し、再生段階が完了した後に、費用の高くないハードウェア上で別にデータを処理する。   FIG. 26 illustrates one embodiment of a flowchart of a method for detecting post-processing divergence. As described above, when a test is performed on the system under test (flow 2605), data is collected and the exact same test conditions are described in the emulation / simulation environment (similar method described with reference to FIGS. 24-25 above). The collected data can be used to replay in an environment operating in flow 2610-2625). From this process, verification can detect differences between tests performed in hardware and tests in the software model, and these differences are referred to as divergence. Post-processing difference detection uses DFx hardware functions, such as IOT using OCLA, to save the state of the system. When the test is reproduced, the data stored in the IOT in the emulation (reproduced IOT data 2635) is processed after the reproduction and stored in the IOT collected from the system under test (collected IOT data). 2615), the post-process difference detection result 2640 is obtained (that is, the difference between the data 2615 and the reproduction data 2635 is obtained). Since execution requires expensive and special hardware, the execution time during playback is costly. Therefore, calculating such differences between regenerations would be costly execution time. Thus, in one embodiment, the system state stored in an internal location, such as system memory, is used to process the data separately on less expensive hardware after the playback phase is complete.

図27には、RTLデータ構造を高レベルの言語にアクセス可能とするフローチャートの一実施形態が示されている。被試験システムからトレースデータが収集される時、通常、収集された特定のデータフィールドが分析され、分析には、トレースからの修正を含む。RTLは絶え間なく変化するため、RTL周辺に設計されたソフトウェアは、常に更新する必要がある。したがって、一実施形態では、ソフトウェアがリリースされる時(フロー2705)、RTLモデルは、ソフトウェアリリースの時点でスキャンされる(例えば、フロー2710において、RTLデータのスナップショットを取得する)。スナップショットから、RTLデータ種類が、例えば、XMLのような、より一般的な形式で記録される。この例では、フロー2715において、RTLデータ構造スナップショットデータベースがRTLスナップショットデータから生成される。   FIG. 27 illustrates one embodiment of a flowchart that allows an RTL data structure to be accessed in a high level language. When trace data is collected from the system under test, the specific data fields collected are typically analyzed, and the analysis includes modifications from the trace. Since RTL changes constantly, software designed around RTL needs to be constantly updated. Thus, in one embodiment, when software is released (flow 2705), the RTL model is scanned at the time of software release (eg, taking a snapshot of RTL data in flow 2710). From the snapshot, the RTL data type is recorded in a more general format, such as XML. In this example, in flow 2715, an RTL data structure snapshot database is generated from the RTL snapshot data.

RTLデータが格納される(すなわち、データベースが生成される)と、スナップショットRTLデータ種類定義に基づいて、トレースデータパケットを読み出し、マスク及び修正するソフトウェアメカニズム/サービスが提供される。トレースがどのRTLモデルに由来するのかに基づいて、読み込むスナップショットを選択することにより、重要度の低いRTL変更の影響をその他のソフトウェアに与えないようにすることができると考えられる。一例として、ソフトウェアが、そのRTLモデルを使用してテストからのトレースデータを解釈又は修正する時(フロー2720)、ソフトウェアは、RTLデータ構造のデータベースを必要とし(フロー2725)、その情報をトレースデータ(フロー2730)のでコードに使用する。その結果、定常的なRTLモデルに依存しソフトウェアを変更する替わりに、RTLデータ構造のための柔軟性の高い適応可能なテスト基盤(パケット及び信号形式のモデル)が提供される。   When RTL data is stored (ie, a database is generated), a software mechanism / service is provided that reads, masks, and modifies trace data packets based on the snapshot RTL data type definition. By selecting the snapshot to be read based on which RTL model the trace is derived from, it may be possible to prevent other software from being affected by the less important RTL changes. As an example, when the software uses the RTL model to interpret or modify the trace data from the test (flow 2720), the software requires a database of RTL data structures (flow 2725), and the information is traced to the trace data. (Flow 2730) is used for the code. As a result, a flexible and adaptable test infrastructure (packet and signal format model) for the RTL data structure is provided instead of relying on a stationary RTL model and modifying the software.

[電源検証の実施形態]
ロジックの数が増加し回路が小さくなるにしたがって、回路に発生する問題が急増している。回路のバグは、検出できない場合がある。また、高速でない経路の問題として回路の故障を再生可能とするような、良好な特性評価方法は現在のところ存在しない。そこで、一実施形態では、回路境界性検証(circuit marginality validation:CMV)方法を利用して、高速でない経路及び高速の経路における問題を発見する。回路境界性の主要な要因には、オンダイ信号信頼性(クロスカップリングに起因するノイズ、ドループ(droop)イベントに起因するノイズ)、電力供給の信頼性(多くの場合、クロックの開閉に起因する高い続流の発生)、クロックドメインの交差(クロックの非同期)、及び、プロセス、電圧及び温度の変化(電力状態の遷移、シリコンプロセスの変化)が含まれる。
[Power verification embodiment]
As the number of logic increases and the circuit becomes smaller, the problems that occur in the circuit are rapidly increasing. Circuit bugs may not be detected. Also, there is currently no good characteristic evaluation method that makes it possible to regenerate circuit faults as a problem of non-high-speed paths. Thus, in one embodiment, a circuit marginal validation (CMV) method is used to find problems in non-high speed paths and high speed paths. Major factors of circuit boundary are on-die signal reliability (noise due to cross coupling, noise due to droop events), power supply reliability (often due to clock switching) High current generation), clock domain crossing (clock asynchrony), and process, voltage and temperature changes (power state transitions, silicon process changes).

過去、数世代に渡るプラットフォーム検証管理製品分析に基づくと、送電網(power grid)は、回路のマージン性の大きな要因となっている。そこで、一実施形態では、オンダイイベントに関係する送電網の空間的及び時間的特性評価及びデバッグを可能とする基盤であって、送電網性能とテスト及びシステムイベントとを相関付ける能力を含む基盤を提供する。   Based on analysis of platform verification management products over several generations in the past, the power grid is a major factor in circuit margin. Thus, in one embodiment, a platform that enables spatial and temporal characterization and debugging of power grids related to on-die events, including a platform that includes the ability to correlate grid network performance with test and system events. provide.

図28には、そのような基盤の一実施形態が示されている。この例では、包括的で一体化された(オンダイ)アーキテクチャであって、時間ベースの空間的な制御及びオンダイ電圧調整を観察を可能とし、このようなイベントを確定的にテスト内容及びシステムイベントと相関付ける能力を有するアーキテクチャを提供する。図示されるように、アーキテクチャ2810は、VCU2815によって実装されていてもよい(上記のような)抽象化層2805を介して、ホスト2800と結合していてもよい。   FIG. 28 shows one embodiment of such a base. In this example, it is a comprehensive and integrated (on-die) architecture that allows observation of time-based spatial control and on-die voltage regulation, such events as deterministic test content and system events. Provide an architecture with the ability to correlate. As shown, architecture 2810 may be coupled to host 2800 via an abstraction layer 2805 (as described above) that may be implemented by VCU 2815.

アーキテクチャ2800の構成要素には、高バンド幅オンダイ電圧ドループ監視機能(VDM2830)及びドループ注入メカニズム(ODI2835)(一実施形態では、これらの両方が、時間的及び空間的に構成されるように採用される)、クロック周期固有のテスト内容同期基盤、決定論的イベント始動及びクロック周期の正確な時間を監視する基盤(DSC2840)(一実施形態では、これらの構成により、イベントのタイムスタンプ及び再生が可能となる)、イベントと相関するVRステート取得のためのODLAのようなダイナミックオンダイ電圧制御ステート取得機能、設定可能ハードウェアベースのペイロード修正メカニズム(マイクロブレークポイントロジック2830)、修正メカニズムは、システムイベント、テストイベント、及び/又は所定の電力ドメイン又はユーザー/ホスト2800の最良によるドメインにおける電力ステートの遷移において開始されてもよい。   The components of architecture 2800 employ high bandwidth on-die voltage droop monitoring (VDM2830) and droop injection mechanism (ODI2835) (in one embodiment, both of which are configured in time and space. Clock cycle specific test content synchronization infrastructure, deterministic event triggering and infrastructure to monitor the exact time of the clock cycle (DSC2840) (in one embodiment, these configurations allow event timestamping and playback) Dynamic on-die voltage control state acquisition function such as ODLA for VR state acquisition correlated with the event, configurable hardware-based payload correction mechanism (microbreakpoint logic 2830), correction mechanism is system event, Tess Events, and / or the best may be initiated at the transition of the power state in the domain by the predetermined power the domain or user / host 2800.

アーキテクチャの機能に関する不完全なリストには、ODI/VDM/システム(I/O又はコア)イベントを、A/Dサンプルを介したアナログ観察点のスナップショット及びステートマシーンイベントの動的スナップショットのような、オンダイ電圧制御間隔の観察と相関付ける機能、ハードウェアベースのペイロード変更を確定的に開始させる機能、ODI及び/又はVDM始動イベントと内部VRイベントとを同期させる機能、内部VRイベントを中断させる機能、内部VRイベントのタイムスタンプを取得する機能、電力管理コマンド問題と実際のVR変化との間の遅延を監視する機能、VDM/ODI変化を観察する機能、インバウンドの現在の振る舞いと内部イベントとを相関付け、ギア比の変化及び電力分配の効果を観察して、デューティサイクルの検出間隔の計算を提供する機能が含まれる。   For an incomplete list of architectural features, such as ODI / VDM / system (I / O or core) events, snapshots of analog observations via A / D samples and dynamic snapshots of state machine events Ability to correlate with observation of on-die voltage control interval, Ability to definitely initiate hardware-based payload changes, Ability to synchronize ODI and / or VDM start events with internal VR events, Abort internal VR events Functions, function to get timestamp of internal VR event, function to monitor delay between power management command problem and actual VR change, function to observe VDM / ODI change, inbound current behavior and internal event And observe the effects of gear ratio changes and power distribution. Includes the ability to provide a calculation of detection intervals of the duty cycle.

アーキテクチャのアプリケーション及びモードの不完全なリストには、送電網の特性解析、システムイベントベースの相関、及び、電力イベントベースの相関が含まれ、これらについては以下で例示される。送電網の場合、特性解析は、ユーザーが柔軟に選択できる、あらゆる方法で行われてもよい。基本的に、このオペレーションモードにある電圧監視回路は、時間軸で電圧を取得するように予め設定されている。電圧は、短時間の期間の間に、リング発振器の振動数を数えることで測定される。テスト又はその他のシステムの動作が行われている時に、特性解析サイクルの間全体におけるサンプルを比較することにより、所定の電力ドメインの局所的場所における最も高いピークと最も低い谷が取得される。ここで、特性解析は、システムが休止状態にある間、ブートサイクルにある間、テストの間、又は、あらゆるシステムイベントの間で実行されてもよい。特徴解析は、いかなる/全てのドメインと同時に行われてもよい。   The incomplete list of architecture applications and modes includes grid characterization, system event-based correlation, and power event-based correlation, which are illustrated below. In the case of a power grid, the characteristic analysis may be performed in any way that the user can flexibly select. Basically, the voltage monitoring circuit in this operation mode is preset so as to acquire the voltage on the time axis. The voltage is measured by counting the frequency of the ring oscillator during a short period of time. When testing or other system operations are performed, the highest peak and lowest valley in the local location of a given power domain are obtained by comparing samples throughout the characterization cycle. Here, characterization may be performed while the system is in hibernation, in the boot cycle, during testing, or during any system event. Feature analysis may be performed simultaneously with any / all domains.

システムイベントベースの相関の場合には、テストシーケンスの開始(又は、対象のシステムイベント)と送電網サンプリングの開始とを同期させるマイクロブレークポイント基盤を使用して、障害点又は巡回冗長検査(CRC)障害(図示の例のような)のような特定のシステムイベントの発生点で、経過時間が取得される。そして、設定可能な態様でオンダイ電圧制御性能を評価するべく、テストシーケンスが確定的に再生され、所定の始動イベントの前、間、又は後に、所与のクロックサイクルを見ることができる機能も与えられる。アナログポイント及びステートデータのデータ収集は、時間における所定の瞬間に、又は、対象の始動イベントに基づく位置において、動的に取得されてもよい。その結果、始動イベント及びアクションが、電力制御ブロック、電力管理、又は、テスト/システム固有のイベントによって提供されてもよいといったように、多様な柔軟性をアーキテクチャに備えさせることができる。   In the case of system event-based correlation, a failure point or cyclic redundancy check (CRC) using a microbreakpoint infrastructure that synchronizes the start of the test sequence (or the target system event) and the start of grid sampling The elapsed time is obtained at the point of occurrence of a particular system event, such as a fault (as in the example shown). And, to assess on-die voltage control performance in a configurable manner, the test sequence is deterministically replayed, giving the ability to see a given clock cycle before, during or after a given start event. It is done. Data collection of analog points and state data may be acquired dynamically at a predetermined moment in time or at a location based on the subject's start event. As a result, various flexibility can be provided in the architecture, such that startup events and actions may be provided by power control blocks, power management, or test / system specific events.

電力イベントベースの相関の場合には、オペレーションは、システムイベント相関と同様である。マイクロブレークポイントのような基盤が、電圧制御回路と一体化することにより、VDM2830を介した送電網のサンプリング及び/又はODI2835を介したドループイベントの投入で、数多くのシステムイベントを開始することが可能となる。このモードにおける始動イベントは、一実施形態では、典型的には、特定の電力イベント又はステートで開始される。   In the case of power event-based correlation, the operation is similar to system event correlation. A platform such as a micro breakpoint can be integrated with the voltage control circuit to initiate a number of system events by sampling the grid via VDM2830 and / or injecting droop events via ODI2835 It becomes. A start event in this mode is typically initiated in one embodiment with a specific power event or state.

本明細書で用いられたモジュールという言葉は、任意のハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせを意味する。別個のものとして図示されているモジュールの境界は、通常変わることが多く、重複する可能性もある。例えば、第1のモジュール及び第2のモジュールは、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせを共有しているとしてもよいし、独立したハードウェア、ソフトウェア又はファームウェアを持つとしてもよい。一実施形態では、ロジックという用語は、例えば、トランジスタ、レジスタのようなタスクを実行するべく組み合わせられる及び/又は構成されるハードウェアを含む。別の実施形態では、ロジックという用語は、プログラム可能な論理デバイス又はプログラム可能なロジックアレイのようなその他のデバイスを含む。しかしながら、更なる別の実施形態では、ロジックはまた、ハードウェアと一体化されたソフトウェア又はコード、例えば、ファームウェア又はマイクロコードを含む。   As used herein, the term module refers to any hardware, software, firmware, or combination thereof. Module boundaries, shown as separate, usually change often and can overlap. For example, the first module and the second module may share hardware, software, firmware, or a combination thereof, or may have independent hardware, software, or firmware. In one embodiment, the term logic includes hardware that is combined and / or configured to perform tasks such as, for example, transistors, registers. In another embodiment, the term logic includes a programmable logic device or other device such as a programmable logic array. However, in yet another embodiment, the logic also includes software or code integrated with the hardware, such as firmware or microcode.

また、本明細書で使用されている"値"という言葉は、数、状態、論理状態又は2値論理状態のあらゆる既知の表現を含む。また、明細書で使用されている論理レベル、論理値、又は論理的値は、1又は0といった単純に2値論理状態を意味している場合もある。例えば、1は高い論理レベルを指し、0は低い論理レベルを指す。一実施形態では、トランジスタ又はフラッシュセルのような記憶セルは、1つの論理値又は複数の論理値を保持可能であってもよい。しかしながら、コンピュータシステムにおける値の他の表現が使用されてもいる。例えば、10進数の10は、2進値表示では、1010と表され、16進数表示ではAと表される。したがって、ある1つの値は、コンピュータシステムに保持される情報のあらゆる表示形式を含む。   Also, as used herein, the term “value” includes any known representation of a number, state, logic state, or binary logic state. Also, a logic level, logic value, or logic value used in the specification may simply mean a binary logic state such as 1 or 0. For example, 1 refers to a high logic level and 0 refers to a low logic level. In one embodiment, a memory cell, such as a transistor or flash cell, may be capable of holding one logic value or multiple logic values. However, other representations of values in computer systems are also used. For example, the decimal number 10 is represented as 1010 in the binary value display, and is represented as A in the hexadecimal display. Thus, one value includes any display format of information held in the computer system.

さらに、状態(ステート)は、値又は値の一部によって表されていてもよい。例えば、論理値の1のような第1の値が、デフォルト状態又は最初の状態を表していてもよく、論理値の0のような第2の値が、非デフォルト状態を表していてもよい。加えて、リセット及びセットという言葉はそれぞれ、ある実施形態では、デフォルト値又は状態及び更新された値又は状態を指す。例えば、デフォルト値は、高い論理値、すなわち、リセットを含んでもよく、更新値は、低い論理値、すなわち、セットを含んでもよい。値のどのような組み合わせを、あらゆる数の状態を表すのに利用してもよい。   Furthermore, the state (state) may be represented by a value or a part of the value. For example, a first value, such as a logical value 1, may represent a default state or an initial state, and a second value, such as a logical value 0, may represent a non-default state. . In addition, the terms reset and set respectively refer to a default value or state and an updated value or state in some embodiments. For example, the default value may include a high logical value, ie reset, and the updated value may include a low logical value, ie set. Any combination of values may be used to represent any number of states.

上記の方法、ハードウェア、ソフトウェア、ファームウェア、コードの実施形態を、機械アクセス可能な又は機械可読な媒体に記憶され、処理要素によって実効可能な命令又はコードを使用して実装してもよい。機械アクセス可能/機械可読な媒体としては、コンピュータ又は電子システムのような機械によって読み出し可能な形式の情報を提供する(すなわち、記憶及び/又は送信する)あらゆるメカニズムを含む。例えば、有形機械アクセス可能媒体には、スタティックRAM(SRAM)若しくはダイナミックRAM(DRAM)のようなランダム・アクセス・メモリ(RAM)、ROM,磁気的又は光学的記憶媒体、フラッシュメモリデバイス、電気記憶デバイス、光学記憶デバイス、音響的記憶デバイス、又は他の形態の伝播信号(例えば、搬送波、赤外線信号、デジタル信号)記憶デバイス等が含まれる。   Embodiments of the above methods, hardware, software, firmware, code may be implemented using instructions or code stored on a machine-accessible or machine-readable medium and executable by a processing element. A machine-accessible / machine-readable medium includes any mechanism that provides (ie, stores and / or transmits) information in a form readable by a machine, such as a computer or electronic system. For example, tangible machine accessible media include random access memory (RAM) such as static RAM (SRAM) or dynamic RAM (DRAM), ROM, magnetic or optical storage media, flash memory devices, electrical storage devices , Optical storage devices, acoustic storage devices, or other forms of propagation signal (eg, carrier wave, infrared signal, digital signal) storage devices and the like.

上記した方法、ハードウェア、ソフトウェア、ファームウェア又はコードの実施形態は、機械可読媒体に格納されたコンパイラの実行によって、又は、コンパイラによってコンパイルされた機械可読媒体に格納されたコードの実行の一部として、実装されてもよい。コンパイラは、多くの場合、プログラム又はプログラムのセットを含み、ソーステキスト/コードを、目的のテキスト/コードへと変換する。通常、プログラム/アプリケーションコードをコンパイラを使用してコンパイルする場合には、高水準プログラム言語コードを、低水準機械言語コード又はアセンブリ言語への変換する複数の段階又はパスに分けて実行される。しかしながら、簡単なコンパイルには、単一パスのコンパイラを使用することもできる。コンパイラは、既知のコンパイル技術を利用して、字句解析、前処理、構文解析、意味解析、コード生成、コード変換及びコード最適化のような、既知のコンパイルオペレーションを実行してもよい。一実施形態では、コンパイラは、上記の方法を実行するべく、オペレーション、呼び出し、機能、命令等を挿入するコードをコンパイル及び/又は最適化する。   Embodiments of the methods, hardware, software, firmware or code described above may be performed by execution of a compiler stored on a machine-readable medium or as part of execution of code stored on a machine-readable medium compiled by a compiler. May be implemented. A compiler often includes a program or set of programs and translates source text / code into the desired text / code. Normally, when compiling program / application code using a compiler, high-level program language code is executed in a plurality of stages or paths for converting into low-level machine language code or assembly language. However, a simple pass compiler can be used for simple compilation. The compiler may use known compilation techniques to perform known compilation operations such as lexical analysis, preprocessing, parsing, semantic analysis, code generation, code conversion, and code optimization. In one embodiment, the compiler compiles and / or optimizes code that inserts operations, calls, functions, instructions, etc. to perform the method described above.

大きなコンパイラは、多くの場合、複数の段階を含み、これらの複数の段階は、主に大きく分けて2つの段階に含まれる。(1)フロントエンド、すなわち、通常、構文処理、意味処理及び幾つかの変換/最適化が実行される段階、(2)バックエンド、すなわち、通常、解析、変換、最適化及びコード生成が実行される段階の2つである。コンパイラの中には、ミドルエンドと呼ばれるものも存在し、これは、フロントエンドとバックエンドのコンパイラとの間の境界を曖昧にした例である。挿入、関連付け、生成又はその他のコンパイラのオペレーションの参照は、上述の段階又はパス、及びその他のコンパイラの段階又はパスのいずれかにおいて実行される。一実施形態では、このようなシナリオは、スタティック及び/又はプログラム全体のコンパイルの間に発生する。別の実施形態では、動的コンパイルの間に、コンパイラコード又は動的最適化コードが、このようなオペレーション/呼び出しを挿入すると共に、ランタイムの間の実行のためのコードを最適化する。あるシナリオでは、コンパイラプログラムのようなハードウェア又はソフトウェアが、プログラム実行の動的プロファイリングを実行してもよい。   Large compilers often include multiple stages, which are largely divided into two stages. (1) The front end, i.e., usually the stage where syntax processing, semantic processing and some transformation / optimization are performed, (2) The back end, i.e. usually the analysis, conversion, optimization and code generation are performed There are two stages to be performed. Some compilers are called middle ends, which is an example of obscuring the boundary between front end and back end compilers. References to inserts, associations, generations or other compiler operations are performed in any of the above stages or passes and other compiler stages or passes. In one embodiment, such a scenario occurs during static and / or entire program compilation. In another embodiment, during dynamic compilation, compiler code or dynamic optimization code inserts such operations / calls and optimizes the code for execution during runtime. In some scenarios, hardware or software such as a compiler program may perform dynamic profiling of program execution.

また、本明細書における「一実施形態」又は「ある実施形態」という言葉は、実施形態に関連する特定の特徴、構造及び特性が、少なくとも本発明の実施形態の一つに含まれていることを意味する。したがって、本明細書中の様々な箇所で使用されている「一実施形態において」又は「ある実施形態において」という表現は、必ずしも同一の実施形態を示していない。また、1以上の実施形態において、特定の構成、構造又は特徴を、適切な形で組み合わせてもよい。   In addition, the word “one embodiment” or “a certain embodiment” in this specification means that a specific feature, structure, and characteristic related to the embodiment are included in at least one of the embodiments of the present invention. Means. Thus, the phrases “in one embodiment” or “in an embodiment” as used in various places in the specification do not necessarily indicate the same embodiment. In one or more embodiments, specific configurations, structures, or features may be combined in any suitable manner.

明細書の上記において、特定の例示された実施形態を参照して、詳細な説明がなされた。しかしながら、添付の特許請求の範囲に記載される本発明の範囲内において、様々な変形及び変更を加えることが可能であることは、明らかである。したがって、明細書及び添付の図面は、発明を制限するものではなく、発明を例示するものであると見なされるべきである。また、上記の実施形態及び他の例で使用された言葉は、同じ実施形態又は同じ例を必ずしも指している必要はなく、異なる及び別の実施形態を指している場合もあるし、同じ実施形態を指している場合もある。
[項目1]集積回路に関連するテスト/トレース情報を取得するオンダイロジック分析器(ODLA)を含む集積回路と、集積回路と連結され、ODLAによって取得された集積回路に関連するテスト/トレース情報を保持するテスト/トレースバッファとして使用されるメモリと、テスト/トレース情報を提供する1以上のハードウェアテストフックと、1以上のハードウェアテストフックを、ソフトウェア層に対して抽象化し、インターフェースをソフトウェア層に提供する抽象化ロジックとを備え、テスト/トレース情報は1以上のオペレーティングシステムに対して難読化された領域のメモリに格納され、インターフェースは、1以上のハードウェアテストフックと関連付けられたサービスを提供する装置。
[項目2]集積回路は、集積回路のインターフェースのテスト/トレース情報を取得して、メモリは、集積回路のインターフェースのテスト/トレース情報を保持するためのテスト/トレース情報バッファとして使用される項目1に記載の装置。
[項目3]集積回路は、プロセッサにおける1以上の制御レジスタと連結され、ブレークポイントを規定するべく1以上の制御レジスタを設定する検証制御部を有するプロセッサを内蔵して、1以上のODLAは、1以上の制御レジスタがブレークポイントを規定する場合に、プロセッサがブレークポイントに遭遇するのに応答して、プロセッサに関連するテスト/トレース情報を取得する項目1または2に記載の装置。
[項目4]集積回路は、集積回路に関連するテスト/トレース情報にアクセス可能なテストポートと、集積回路の電源ONシーケンスの間に、テストポートがイネーブルされる前に遷移する信号の信号ステート情報を取得する初期電源ON信号ロジックとを更に有する項目1から3のいずれか1項に記載の装置。
[項目5]集積回路は、集積回路の電源ON状態を示すべく遷移する電源ON信号と、電源ON信号の遷移に応答して、カウントを開始するカウントロジックと、対象の信号のエッジ遷移を検出するエッジ検出ロジックと、エッジ検出ロジックが対象の信号のエッジ遷移を検出する時に、カウントロジックのカウントに基づいて、対象の信号の信号識別値及びタイムスタンプ値を保持する格納要素とを更に有する項目1から4のいずれか1項に記載の装置。
[項目6]集積回路は、アクティブ電力状態及び複数の低電力状態に存在して、集積回路は、複数の低電力状態のうちの1つの低電力状態と関連付けられている電力サイクルイベントに応答して、信号の信号ステート情報を取得する低電力信号ロジックを更に有する項目1から5のいずれか1項に記載の装置。
[項目7]集積回路は、テストのための複数のハードウェア設計(ハードウェアDFX)機能と、複数のハードウェアDFX機能へのアクセスを提供するマイクロコントローラとを更に有し、マイクロコントローラは、実行されると、マイクロコントローラに、1以上のアプリケーション・プログラミング・インターフェース(API)のアクセスを、複数のハードウェアDFX機能と関連付けられたサービスのソフトウェアに提供するコードを含む項目1から6のいずれか1項に記載の装置。
[項目8]集積回路内のハードウェアテスト/トレース機能にアクセスすることに関連する要求を、アプリケーションから受信する制御部と、複数のアクセスレベルのうち、アプリケーションのアクセスレベルを決定するセキュリティロジックとを更に備え、アプリケーションのアクセスレベルが、ハードウェアテスト/トレース機能へのアクセスを有する場合には、セキュリティロジックは、アプリケーションからの要求を許可し、アプリケーションのアクセスレベルが、ハードウェアテスト/トレース機能へのアクセスを有さない場合には、セキュリティロジックは、アプリケーションからの要求を許可しない項目1から7のいずれか1項に記載の装置。
[項目9]集積回路は、信号ピンを下面に、テストプローブと電気的に結合するテストピンを上面に有する集積回路(IC)パッケージを更に有する項目1から8のいずれか1項に記載の装置。
[項目10]集積回路は、信号ピンを下面に、テストプローブと電気的に結合するテストピンを上面に有する集積回路(IC)パッケージと、テスタ及びICパッケージの上面のテストピンと電気的に結合される固定プローブを有する大量生産用(HVM)接続メカニズムとを更に有する項目1から9のいずれか1項に記載の装置。
[項目11]集積回路パッケージと、集積回路パッケージに熱的に結合され、目立たない程度に突出した搭載耳部を有するインテグレーテッド・ヒート・スプレッダ(IHS)とを更に有する項目1から10のいずれか1項に記載の装置。
[項目12]集積回路と熱的に結合する冷却板と、熱電冷却アレイと、マイクロチャネル冷却フィンを有する水冷器と、水冷器の中心部に設けられた流入口及び流出口と
を有するスモールフォームファクター・熱的ツールを更に備える項目1から11のいずれか1項に記載の装置。
[項目13]集積回路内のハードウェアテスト/トレース機能を実装する目的の物理層と、抽象化層から目的の物理層へと、転送メカニズムを問わない情報を転送するトランスポート層と、目的の物理層を抽象化し、アプリケーション層に1以上のアプリケーションプログラミングインターフェース(API)を提供する抽象化層と、1以上のAPIの規格に従って、抽象化層からの、目的の物理層に関連付けられたサービスを要求するアプリケーション層とを備え、集積回路は、集積回路に関連するテスト/トレース情報を取得するオンダイロジック分析器(ODLA)と、集積回路と連結され、ODLAによって取得された集積回路に関連するテスト/トレース情報を保持するテスト/トレースバッファとして使用されるメモリと、テスト/トレース情報を提供する1以上のハードウェアテストフックと、1以上のハードウェアテストフックを、ソフトウェア層に対して抽象化して、インターフェースをソフトウェア層に提供する抽象化ロジックと、を有し、テスト/トレース情報は1以上のオペレーティングシステムに対して難読化された領域のメモリに格納され、インターフェースは、1以上のハードウェアテストフックと関連付けられたサービスを提供するシステム。
[項目14]複数の集積回路と、複数の集積回路の各々における検証制御部それぞれへのアクセスを提供するユニバーサルテストアクセスポートとを備え、複数の集積回路のそれぞれは、集積回路に関連するテスト/トレース情報を取得するオンダイロジック分析器(ODLA)と、集積回路と連結され、ODLAによって取得された集積回路に関連するテスト/トレース情報を保持するテスト/トレースバッファとして使用されるメモリと、テスト/トレース情報を提供する1以上のハードウェアテストフックと、1以上のハードウェアテストフックを、ソフトウェア層に対して抽象化して、インターフェースをソフトウェア層に提供する抽象化ロジックと、複数の集積回路の各々のハードウェアテスト機能へのアクセスを制御する検証制御部とを有し、テスト/トレース情報は1以上のオペレーティングシステムに対して難読化された領域のメモリに格納され、インターフェースは、1以上のハードウェアテストフックと関連付けられたサービスを提供するシステム。
In the foregoing specification, a detailed description has been given with reference to specific illustrated embodiments. However, it will be apparent that various modifications and changes may be made within the scope of the invention as set forth in the appended claims. Accordingly, the specification and accompanying drawings are to be regarded as illustrative rather than restrictive of the invention. Further, the words used in the above embodiment and other examples do not necessarily refer to the same embodiment or the same example, and may refer to different and different embodiments or the same embodiment. May point to.
[Item 1] An integrated circuit including an on-die logic analyzer (ODLA) for acquiring test / trace information related to the integrated circuit, and test / trace information related to the integrated circuit connected to the integrated circuit and acquired by ODLA. The memory used as a test / trace buffer to hold, one or more hardware test hooks providing test / trace information, and one or more hardware test hooks are abstracted to the software layer and the interface is the software layer And the test / trace information is stored in memory in an area obfuscated for one or more operating systems, and the interface provides services associated with one or more hardware test hooks. Equipment to provide.
[Item 2] The integrated circuit obtains test / trace information of the interface of the integrated circuit, and the memory is used as a test / trace information buffer for holding the test / trace information of the interface of the integrated circuit. The device described in 1.
[Item 3] The integrated circuit is connected to one or more control registers in the processor, and includes a processor having a verification control unit that sets one or more control registers to define a breakpoint. Item 3. The apparatus of item 1 or 2, wherein the test / trace information associated with the processor is obtained in response to the processor encountering a breakpoint when one or more control registers define the breakpoint.
[Item 4] The integrated circuit has signal state information of a test port that can access test / trace information related to the integrated circuit and a signal that transitions before the test port is enabled during the power-on sequence of the integrated circuit. 4. The apparatus according to any one of items 1 to 3, further comprising initial power-on signal logic for obtaining
[Item 5] The integrated circuit detects a power-on signal that transitions to indicate the power-on state of the integrated circuit, a count logic that starts counting in response to the transition of the power-on signal, and an edge transition of the target signal And a storage element that holds a signal identification value and a time stamp value of the target signal based on the count of the count logic when the edge detection logic detects an edge transition of the target signal. The apparatus according to any one of 1 to 4.
[Item 6] The integrated circuit is present in an active power state and a plurality of low power states, and the integrated circuit is responsive to a power cycle event associated with one of the plurality of low power states. 6. The apparatus according to any one of items 1 to 5, further comprising low power signal logic for obtaining signal state information of the signal.
[Item 7] The integrated circuit further includes a plurality of hardware design (hardware DFX) functions for testing, and a microcontroller that provides access to the plurality of hardware DFX functions. Then, any one of items 1 to 6 comprising code that provides the microcontroller with access to one or more application programming interface (API) services software associated with a plurality of hardware DFX functions. The device according to item.
[Item 8] A control unit that receives a request related to accessing a hardware test / trace function in an integrated circuit from an application, and security logic that determines an access level of the application among a plurality of access levels. In addition, if the application access level has access to the hardware test / trace function, the security logic allows the request from the application, and the application access level is to the hardware test / trace function. 8. The apparatus according to any one of items 1 to 7, wherein the security logic does not permit a request from an application when access is not allowed.
[Item 9] The device according to any one of Items 1 to 8, wherein the integrated circuit further includes an integrated circuit (IC) package having a signal pin on the lower surface and a test pin electrically coupled to the test probe on the upper surface. .
[Item 10] The integrated circuit is electrically coupled to an integrated circuit (IC) package having a signal pin on the lower surface and a test pin electrically coupled to the test probe on the upper surface, and a test pin on the upper surface of the tester and the IC package. 10. An apparatus according to any one of items 1 to 9, further comprising a mass production (HVM) connection mechanism having a fixed probe.
[Item 11] Any one of Items 1 to 10, further comprising an integrated circuit package and an integrated heat spreader (IHS) that is thermally coupled to the integrated circuit package and has a mounting ear protruding inconspicuously. The apparatus according to item 1.
[Item 12] Small foam having a cooling plate thermally coupled to the integrated circuit, a thermoelectric cooling array, a water cooler having microchannel cooling fins, and an inlet and an outlet provided in the center of the water cooler 12. The apparatus according to any one of items 1 to 11, further comprising a factor / thermal tool.
[Item 13] A target physical layer for implementing a hardware test / trace function in an integrated circuit, a transport layer for transferring information regardless of a transfer mechanism from an abstraction layer to a target physical layer, a target layer An abstraction layer that abstracts the physical layer and provides one or more application programming interfaces (APIs) to the application layer, and services associated with the target physical layer from the abstraction layer according to one or more API standards The integrated circuit includes an on-die logic analyzer (ODLA) that obtains test / trace information associated with the integrated circuit and a test associated with the integrated circuit that is coupled to the integrated circuit and obtained by the ODLA. / Memory used as test / trace buffer to hold trace information and test One or more hardware test hooks that provide trace information, and one or more hardware test hooks that abstract to the software layer and provide abstraction logic to provide an interface to the software layer / Trace information is stored in memory in an area obfuscated for one or more operating systems, and the interface provides a service associated with one or more hardware test hooks.
[Item 14] A plurality of integrated circuits, and a universal test access port that provides access to each of the verification controllers in each of the plurality of integrated circuits, each of the plurality of integrated circuits including a test / An on-die logic analyzer (ODLA) for obtaining trace information, a memory coupled to the integrated circuit and used as a test / trace buffer for holding test / trace information associated with the integrated circuit obtained by ODLA, and a test / One or more hardware test hooks providing trace information, abstract logic for abstracting the one or more hardware test hooks to the software layer and providing an interface to the software layer, and each of the plurality of integrated circuits Verification system that controls access to hardware test functions And a section, test / trace information is stored in the memory area that is obfuscated for one or more operating systems, the interface provides a service associated with one or more hardware test hook system.

Claims (14)

複数のシリコンコンポーネントと、
前記複数のシリコンコンポーネントのシリコンの、テストのための設計(DFx)機能に対するアクセスを提供し制御する検証制御ユニットと、
ユーザとインターフェースするクライアント層と、
を備え、
前記検証制御ユニットは、
少なくとも複数のハードウェアフックを含むターゲットDFx層と、
ハードウェアDFx詳細を抽象化すると共にクライアント層への少なくとも1つのアプリケーションプログラミングインターフェース(API)提供する抽象化層を含むサービス層と、
を有するシステム。
Multiple silicon components,
A verification control unit that provides and controls access to a design for test (DFx) function of silicon of the plurality of silicon components;
A client tier that interfaces with the user;
With
The verification control unit includes:
A target DFx layer including at least a plurality of hardware hooks;
A service layer including an abstraction layer that abstracts the details of the hardware DFx and provides at least one application programming interface (API) to the client layer ;
Having a system.
前記クライアント層は、アプリケーション層を有する請求項1に記載のシステム。   The system of claim 1, wherein the client layer includes an application layer. 前記ターゲットDFx層は、被試験ユニットをさらに有する請求項1または2に記載のシステム。   The system according to claim 1, wherein the target DFx layer further includes a unit under test. 少なくとも1つのAPIが前記クライアント層によって低階層の詳細のセキュリティおよび抽象化のために用いられる請求項1〜3の何れか一項に記載のシステム。   The system according to claim 1, wherein at least one API is used by the client layer for security and abstraction of low-level details. 少なくとも1つのAPIが、電気的検証(EV)、電源供給、管理容易性、セキュリティまたはアクセに関連するサービスおよびデータ構造を提供する請求項1〜4の何れか一項に記載のシステム。 At least one of the API, the system according to any one of claims 1-4 to provide electrical verification (EV), the power supply, manageability, related services and data structures in the security or access. 前記Eは、前記クライアント層におけるツールまたはソフトウェアによって使用される複数のアルゴリズムの完全なセットの抽象化を提供し、これにより前記複数のアルゴリズムが安全な態様で提供される請求項5に記載のシステム。 Wherein E V provides an abstraction of a complete set of algorithms used by the tool or software in the client layer, thereby according to claim 5, wherein the plurality of algorithms are provided in a secure manner system. 前記クライアント層は、下層のデータ、プロトコルおよび情報の相関付け、可視化および表示の少なくとも1つを行うプレゼンテーション層を有する請求項1〜6の何れか一項に記載のシステム。   The system according to claim 1, wherein the client layer includes a presentation layer that performs at least one of correlation, visualization, and display of data, a protocol, and information of an underlying layer. 前記検証制御ユニットは回路である請求項1〜7の何れか一項に記載のシステム。   The system according to claim 1, wherein the verification control unit is a circuit. 前記検証制御ユニットはファームウェアである請求項1〜7の何れか一項に記載のシステム。   The system according to claim 1, wherein the verification control unit is firmware. 複数のプラットフォームテストインターフェースを提供するユニバーサルテストアクセスポートをさらに備える請求項1〜9の何れか一項に記載のシステム。   The system of claim 1, further comprising a universal test access port that provides a plurality of platform test interfaces. 前記ユニバーサルテストアクセスポートは、デバッグ情報を抽出し前記検証制御ユニットと通信する双方向ポートを有する請求項10に記載のシステム。   11. The system of claim 10, wherein the universal test access port has a bi-directional port that extracts debug information and communicates with the verification control unit. テストのための設計(DFx)機能にアクセスする方法であって、
アプリケーションを用いて抽象化層にプログラミングを行う段階と、
前記抽象化層からサービスを提供する段階と、
前記抽象化層からの通信をトランスポートされるように適合させる段階と、
適合された形態の前記通信を、前記抽象化層により要求されたオペレーションを実行する被試験DFxユニットにトランスポートする段階と、
前記被試験DFxユニットからの結果を前記抽象化層に提供する段階と、
前記結果を表示する段階と
を備える方法。
A method for accessing a design for test (DFx) function, comprising:
And performing programming abstraction layer using the application,
Providing a service from the abstraction layer;
Adapting communications from the abstraction layer to be transported;
Transporting the adapted form of the communication to a DFx unit under test that performs the operation requested by the abstraction layer;
Providing results from the DFx unit under test to the abstraction layer;
Displaying the result.
前記アプリケーションはサードパーティのベンダーツールである請求項12に記載の方法。   The method of claim 12, wherein the application is a third party vendor tool. 前記被試験DFxユニットにマイクロブレークポイントがプログラムされ、前記マイクロブレークポイントに至るまでに、または、前記マイクロブレークポイントにおいて、または、前記マイクロブレークポイントよりも後に取得されたトレースが前記被試験DFxユニットにより提供される請求項12または13に記載の方法。   Micro breakpoints are programmed in the DFx unit under test, and traces acquired up to, at or after the microbreakpoint are traced by the DFx unit under test. 14. A method according to claim 12 or 13 provided.
JP2016226340A 2016-11-21 2016-11-21 Test, verification and debug architecture program and method Expired - Fee Related JP6326705B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016226340A JP6326705B2 (en) 2016-11-21 2016-11-21 Test, verification and debug architecture program and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016226340A JP6326705B2 (en) 2016-11-21 2016-11-21 Test, verification and debug architecture program and method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014092409A Division JP6047520B2 (en) 2014-04-28 2014-04-28 Test, verification and debug architecture program and method

Publications (2)

Publication Number Publication Date
JP2017076412A JP2017076412A (en) 2017-04-20
JP6326705B2 true JP6326705B2 (en) 2018-05-23

Family

ID=58550267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016226340A Expired - Fee Related JP6326705B2 (en) 2016-11-21 2016-11-21 Test, verification and debug architecture program and method

Country Status (1)

Country Link
JP (1) JP6326705B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110632857B (en) * 2019-09-25 2022-05-17 中国工程物理研究院计算机应用研究所 Control performance verification method for large-scale hierarchical control system
CN110851309B (en) * 2019-10-31 2024-03-19 广东安可云科技有限公司 Integrated verification system and method
CN112968789B (en) * 2019-12-12 2024-02-27 中兴通讯股份有限公司 Data acquisition method, device, computer equipment and computer readable medium
CN112099856B (en) * 2020-08-07 2023-05-05 武汉光迅科技股份有限公司 Embedded system and starting method thereof
CN113157360B (en) * 2021-02-24 2023-10-27 北京百度网讯科技有限公司 Method, apparatus, device, medium, and article for processing an API
KR102305386B1 (en) * 2021-06-17 2021-09-24 세종대학교산학협력단 Apparatus and method for fuzzing firmware
WO2023125219A1 (en) * 2021-12-31 2023-07-06 Espressif Systems (Shanghai) Co., Ltd. Debugging method, iot device, debugging server and debugging system
CN116055218B (en) * 2023-03-06 2023-06-23 深圳开源互联网安全技术有限公司 User login request identification method and system for web application security detection

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4207722B2 (en) * 2003-09-01 2009-01-14 ソニー株式会社 Integrated circuit and its inspection system, inspection apparatus, and inspection method
GB2446831B (en) * 2007-02-22 2011-06-15 Advanced Risc Mach Ltd Selective disabling of diagnostic functions within a data processing system

Also Published As

Publication number Publication date
JP2017076412A (en) 2017-04-20

Similar Documents

Publication Publication Date Title
JP5548966B2 (en) Test, verification and debug architecture apparatus and system
JP6326705B2 (en) Test, verification and debug architecture program and method
Mishra et al. Post-silicon validation in the SoC era: A tutorial introduction
US7200776B2 (en) System and method for generating trace data in a computing system
Nowotsch et al. Monitoring and WCET analysis in COTS multi-core-SoC-based mixed-criticality systems
US7519865B1 (en) Systems and methods for identifying incomplete transactions
Wen et al. NUDA: A non-uniform debugging architecture and nonintrusive race detection for many-core systems
Larrucea et al. DREAMS: Cross-domain mixed-criticality patterns
Wyrwas Proton testing of nVidia Jetson TX1
Vermeulen et al. Debugging multi-core systems-on-chip
Chandran et al. Managing trace summaries to minimize stalls during postsilicon validation
Heimhofer Towards high-assurance board management controller software
JP6047520B2 (en) Test, verification and debug architecture program and method
US20240044979A1 (en) Debug architecture
Kästner et al. An integrated timing analysis methodology for real-time systems
Ho et al. On the design of a pervasive debugger
Hochberger et al. Acquiring an exhaustive, continuous and real-time trace from SoCs
Feltham et al. THE ROAD TO PRODUCTION--DEBUGGING AND TESTING THE NEHALEM FAMILY OF PROCESSORS.
Goergen et al. Integrating power models into instruction accurate virtual platforms for arm-based mpsocs
Hoisie et al. Report on the ASCR workshop on modeling and simulation of exascale systems and applications
Larrucea et al. Reusable generic design patterns for mixed-criticality systems based on DREAMS
US10635769B1 (en) Hardware and software event tracing for a system-on-chip
Poggi et al. D5. 1-Initial Monitoring and Controllability Report
Pal Scalable functional validation of next generation SoCs
Wen et al. Nuda: a non-uniform debugging architecture and non-intrusive race detection for many-core

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170822

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171120

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: 20180320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180330

R150 Certificate of patent or registration of utility model

Ref document number: 6326705

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees