JP2018535580A - テストカバレッジを増大するためのポイントツーポイント相互接続についての自己エラーインジェクション技法 - Google Patents
テストカバレッジを増大するためのポイントツーポイント相互接続についての自己エラーインジェクション技法 Download PDFInfo
- Publication number
- JP2018535580A JP2018535580A JP2018514948A JP2018514948A JP2018535580A JP 2018535580 A JP2018535580 A JP 2018535580A JP 2018514948 A JP2018514948 A JP 2018514948A JP 2018514948 A JP2018514948 A JP 2018514948A JP 2018535580 A JP2018535580 A JP 2018535580A
- Authority
- JP
- Japan
- Prior art keywords
- error
- data
- pattern
- data line
- chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/24—Testing correct operation
- H04L1/241—Testing correct operation using pseudo-errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0093—Point-to-multipoint
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Semiconductor Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
様々な態様が、オンチップハードウェアエラー生成器コンポーネントを説明する。いくつかのケースでは、ハードウェアエラー生成器コンポーネントは、同じチップ内に含まれる2つのコンポーネント間のデータパスに接続する。エラーシミュレーション入力を受信すると、ハードウェアエラー生成器コンポーネントは、エラー状態をシミュレートするデータパターンを挿入することによってデータパス上で伝送されているデータを変更する。代わりに、または追加で、ハードウェアエラー生成器は、伝送されるデータビットの1つまたは複数をランダムに改変する。【選択図】図3a
Description
[0001] 本出願は、2015年9月23日に米国特許商標庁において出願された仮特許出願第62/222,726号、および2016年3月24日に米国特許商標庁において出願された非仮出願第15/080,450号に基づく優先権および利益を主張し、それらの全体の内容は、参照により本明細書に組み込まれている。
[0002] 本開示は一般に、エラーインジェクション制御に関し、より具体的には、オンチップエラー生成器コンポーネント(on-chip error-generator components)に関する。
[0003] 今日のコンピューティングデバイスは従来、データ線を通って互いに相互接続されている複数のコンポーネントを含む。各コンポーネントは、それぞれの機能を行い、結果をリクエストまたは共有するために互いに相互接続する。従って、データ線は、全目的を実現するためにデータまたは情報をあちこちへ(back and forth)通信するようにこれらコンポーネントによって使用される。理論的に言えば、データ線は、エラーなくデータを成功裏に伝送および受信する。しかしながら、現実世界の実施形態では、物理的特性(physical properties)がデータ線にエラーをもたらし、転送中のデータを破損する。現実世界の影響が完全に根絶され得ないので、存立可能な代替手段が、エラーが適切に処理される(handled)ことを保証する。エラーが様々な仕方で現れ得るので、考えられるエラー全てが適切に処理されることを保証することは、特にマルチコンポーネントデバイス(multiple-component devices)で、困難であり得る。これは、マルチコンポーネントデバイスをテストすることに利用可能な制限された数のインターフェースに起因するものである。
[0004] 本発明の概要は、以下詳細な説明においてさらに説明される概念の選定を簡略化形式で紹介するために提供される。本発明の概要は、本願請求項の主題の主要または本質的な特徴を特定することを意図されていない。
[0005] 本開示の一態様は、エラーハンドリングをテストするためのデバイスを説明するもので、このデバイスは、少なくとも1つのエラーインサーション回路と、少なくとも1つのエラーインサーション回路を介してデバイス中の2つのサブコンポーネント間の少なくとも1つのデータ線に結合されたオンチップハードウェアエラー生成器コンポーネントと、を備え、オンチップハードウェアエラー生成器コンポーネントは、エラーシミュレーション入力を受信し、エラーシミュレーション入力に少なくとも部分的に基づいてデータエラーパターンを決定し、少なくとも1つのエラーインサーション回路を介して、エラー状態を生成するために有効な少なくとも1つのデータ線上にデータエラーパターンを挿入(insert)するように構成される。
[0006] 本開示の一態様は、エラーハンドリングをテストするための方法を説明するもので、この方法は、ハードウェアエラー生成器コンポーネントを使用して、エラーシミュレーション入力を受信することと、ハードウェアエラー生成器コンポーネントを使用して、ハードウェアエラー生成器コンポーネントに結合された少なくとも1つのデジタルデータ線上に挿入すべきデータエラーパターンを決定することと、ハードウェアエラー生成器コンポーネントを使用して、エラー状態を生成するために有効な少なくとも1つのデジタルデータ線上にデータエラーパターンを挿入することと、を備える。
[0007] 本開示の一態様は、エラーハンドリングをテストするための装置を説明するもので、この装置は、データパスに動作可能に結合された装置のオンチップサブコンポーネントと、データパスに動作可能に結合され、かつエラーシミュレーション入力を受信するための手段と、エラーシミュレーション入力に少なくとも部分的に基づいて少なくとも1つのデータエラーパターンを決定するための手段と、装置のオンチップサブコンポーネント内にエラー状態を生成するために有効なデータパス上に少なくとも1つのデータエラーパターンを挿入するための手段と、を備えるオンチップハードウェアエラー生成器コンポーネントと、を備える。
[0008] 本開示の一態様は、プロセッサ実行可能命令を備える1つまたは複数のコンピュータ可読メモリデバイスを説明するもので、これら命令は、少なくとも1つのプロセッサによる実行に応答して、エミュレートされた集積回路(IC)の1つまたは複数のコンポーネントを使用してオンチップエラー生成をシミュレートする動作を行い、この動作は、エミュレートされたICのオンチップハードウェアエラー生成器コンポーネントでエラーシミュレーション入力を受信することと、エラーシミュレーション入力に少なくとも部分的に基づいて、データエラーパターンを決定することと、少なくとも1つのデータ線に結合されているエミュレートされたICのサブコンポーネント内にエラー状態を生成するために有効なオンチップハードウェアエラー生成器に結合された少なくとも1つのデータ線上にデータエラーパターンを挿入することと、を備える。
[0009] 詳細な説明は、添付の図を参照する。これらの図では、参照番号の最も左の数字(複数を含む)が、参照番号が最初に登場する図を特定する。説明および図中の異なる事例における同じ参照番号の使用は、類似または同一の項目を示し得る。
ハードウェアエラー生成器コンポーネントが採用され得る例となる環境の例示である。
例となる理想的なデータ信号および歪められたデータ信号の例示である。
ハードウェアエラー生成器コンポーネントがエラーハンドリング機能をテストするために採用されるシステムオンチップ回路の例示である。
ハードウェアエラー生成器コンポーネントがエラーハンドリング機能をテストするために採用されるシステムオンチップ回路の例示である。
ハードウェアエラー生成器コンポーネントを採用する方法を説明するフロー図である。
テストの目的でハードウェアエラー生成器コンポーネントを採用するオンチップサブコンポーネント相互接続を例示する例となるシステムである。
[概要]
[0015] ロバストな製品を確保するために、エラーハンドリング機能が、データ破損またはデータの損失によって引き起こされるエラーのような可能性のあるエラー状態に対処する(account for)よう追加され得る。ワイヤレスモデムにおける相互接続されたコンポーネントが、デジタルデータ線を通じて互いにデータを共有する例を考える。1つの可能性のあるエラーシナリオでは、受信コンポーネントが、第1のセットのデータを受信すると予期するが、その代わりに破損されたデータを含む第2のセットのデータを受信する。破損されたデータに起因して受信コンポーネントのアクション(またはワイヤレスモデム自体の全機能)をハングまたは中断する代わりに、エラーハンドリング機能はいつ破損されたデータが受信されたかを確認するために使用され得る。破損されたデータを確認する際、エラーハンドリング機能は、例えば、破損されたデータが受信されたことを示す情報を送信コンポーネントに返すこと、破損されたデータを復元する試みとしてビット復元技法を使用すること、等によって、エラーをハンドリングするための応答を生成または実行する。エラーハンドリング機能を含めることによって、破損されたデータを提示されるときでさえ、1つのコンポーネントは信頼できる結果を依然として生み出し、それにより、全機能がハングすることを防ぐであろう。そしてまたこのことが、よりロバストな製品を生み出す。しかしながら、エラーハンドリングでさえ、エラーに陥りやすくあり得る。従って、製品は、それに関連付けられたエラーハンドリング程にロバストであるに過ぎず(only as robust as)、エラーハンドリングが期待どおりに機能することを検証することが望ましい。
[0015] ロバストな製品を確保するために、エラーハンドリング機能が、データ破損またはデータの損失によって引き起こされるエラーのような可能性のあるエラー状態に対処する(account for)よう追加され得る。ワイヤレスモデムにおける相互接続されたコンポーネントが、デジタルデータ線を通じて互いにデータを共有する例を考える。1つの可能性のあるエラーシナリオでは、受信コンポーネントが、第1のセットのデータを受信すると予期するが、その代わりに破損されたデータを含む第2のセットのデータを受信する。破損されたデータに起因して受信コンポーネントのアクション(またはワイヤレスモデム自体の全機能)をハングまたは中断する代わりに、エラーハンドリング機能はいつ破損されたデータが受信されたかを確認するために使用され得る。破損されたデータを確認する際、エラーハンドリング機能は、例えば、破損されたデータが受信されたことを示す情報を送信コンポーネントに返すこと、破損されたデータを復元する試みとしてビット復元技法を使用すること、等によって、エラーをハンドリングするための応答を生成または実行する。エラーハンドリング機能を含めることによって、破損されたデータを提示されるときでさえ、1つのコンポーネントは信頼できる結果を依然として生み出し、それにより、全機能がハングすることを防ぐであろう。そしてまたこのことが、よりロバストな製品を生み出す。しかしながら、エラーハンドリングでさえ、エラーに陥りやすくあり得る。従って、製品は、それに関連付けられたエラーハンドリング程にロバストであるに過ぎず(only as robust as)、エラーハンドリングが期待どおりに機能することを検証することが望ましい。
[0016] エラーについて複雑な製品(a complex product)をテストして適切なエラー処理をすることは、ある難題を投げかける。データ線を通って相互接続された複数のサブコンポーネントを含む集積回路(IC)の例を考える。ICは、ICにアクセスするために使用される有限の入力端(inputs)および出力端(outputs)を有し、それらは、ICの全ての機能をテストするために使用され得る。ICの「ブラックボックス」テストは、対応する入力端を通る既知のデータを入力し、予期される結果を求めて出力端をモニタする。ここで、ICの内部構造は暴露されていない。ICが予期されない結果を返すことによって欠陥のある動き(faulty behavior)を見せた場合、相互接続されたサブコンポーネントのどこに問題が起きたかを特定することは問題をはらみ得る。さらに、「ブラックボックス」テストの特質は、全てのエラーケース、特に「コーナーケース」と称されるもの、が働かされまたはテストされたこと保証することを難しくし得る。コーナーケースはシステムごとに異なり得るが、滅多に生じないケースを従来において含む。
[0017] いわゆる「コーナーケース」を含む幅広い種類のテストカバレッジシナリオを確保するため、オンチップハードウェアエラー生成器コンポーネントが、エラー投入(injection)およびそのタイミングを正確に制御するために利用される。ハードウェアエラー生成器コンポーネントは、プレシリコンプラットホームおよびポストシリコンプラットホーム、それに加えて消費者サンプルシステムにおいて行われるべきテストを可能にする柔軟性および拡張性を提供する。少なくとも1つの態様において、ハードウェアエラー生成器コンポーネントは、シリコンチップのようなIC上のコンポーネントである。ハードウェアエラー生成器コンポーネントは、チップ内に含まれる2つのサブコンポーネント間のデータパスに接続し、エラーシミュレーション入力を受信すると、データパス上で伝送されているデータを変更(modify)し得る。いくつかのケースにおいて、データはランダムに変更されるのに対し、他のケースでは、エラーシミュレーション入力に基づいて既知のデータパターンが選択される。データパターンはその後、エラー状態を生成するために有効なデータパス上に挿入される。別のエラーシミュレーション入力が、データパスを、その元の伝送状態(例えば、改変されていない(unaltered))に戻すために使用され得る。
[0018] 以下の検討では、本明細書で説明される技法を採用し得る例となる環境がまず説明される。例となる環境、それに加えて他の環境において行われ得る例となるプロシージャがその後説明される。従って、例となるプロシージャのパフォーマンスは例となる環境に限定されず、例となる環境は例となるプロシージャのパフォーマンスに限定されない。
[例となる環境]
[0019] 図1は、ユーザデバイス102を備える例となる環境100を例示する。ここでは、ユーザデバイス102がセルラモバイルデバイスとして図示されるが、タブレット、ラップトップコンピュータ、セットトップボックス、衛星受信機、ケーブルテレビ受信機、WiFiアクセスポインと、デスクトップコンピュータ、ゲームデバイス、ディスプレイデバイス、または同様のもののような、任意の適切なタイプのコンピューティングデバイスも使用され得る。この例において、ユーザデバイス102は、ワイヤレス通信能力を含み、セルタワー104−1〜104−nのいずれかまたは全てと通信するように構成され、ここで「n」は任意の数を表す。これらのセルタワーは、ユーザデバイス102と通信し、ユーザデバイス102が通信リンクを失うことなくロケーションからロケーションに移動することを可能にするよう連携して機能する。ここで、ユーザデバイス102は、これらの通信の少なくとも一部を行うためのモデム106を含む。
[0019] 図1は、ユーザデバイス102を備える例となる環境100を例示する。ここでは、ユーザデバイス102がセルラモバイルデバイスとして図示されるが、タブレット、ラップトップコンピュータ、セットトップボックス、衛星受信機、ケーブルテレビ受信機、WiFiアクセスポインと、デスクトップコンピュータ、ゲームデバイス、ディスプレイデバイス、または同様のもののような、任意の適切なタイプのコンピューティングデバイスも使用され得る。この例において、ユーザデバイス102は、ワイヤレス通信能力を含み、セルタワー104−1〜104−nのいずれかまたは全てと通信するように構成され、ここで「n」は任意の数を表す。これらのセルタワーは、ユーザデバイス102と通信し、ユーザデバイス102が通信リンクを失うことなくロケーションからロケーションに移動することを可能にするよう連携して機能する。ここで、ユーザデバイス102は、これらの通信の少なくとも一部を行うためのモデム106を含む。
[0020] モデム106は、ワイヤレス信号および/またはデータを伝送および受信する。いくつかの態様において、モデム106は、所望の機能を実現するために様々な電子コンポーネントを電気的に接続させる回路基板である。いくつかの回路基板は、複数コンポーネントを接続し、信号をルーティングするために複数のレイヤを使用する。回路基板上のコンポーネントは、シンプルな電気コンポーネント(例えば、レジスタ、コンデンサ等)から、より複雑なコンポーネント(例えば、IC、システムオンチップ(SoC:system-on-chip)、等)まで及び得る。とりわけ、SoCは、システムの機能を行うために共に機能する複数のコンポーネントを含む集積回路である。システム内の様々なタスクは、より小さいタスクに区分され得、それらの各々は、SoCのそれぞれのサブコンポーネントによって行われ得る。これらのサブコンポーネントは、全システム機能を実現するために互いに通信する。ここで、モデム106は、2つの複雑なコンポーネント:無線周波数(RF)回路108およびベースバンド回路110を含む。簡略化のため、モデム106の検討(discussion)は、これらのコンポーネントに対して差し控えられる。しかしながら、モデム106は、本願請求項の主題の範囲から逸脱することなく、追加または代替のコンポーネント、ハードウェア、ソフトウェア、および/またはファームウェアを含み得る。いくつかの態様において、RF回路108および/またはベースバンド回路が、ICおよび/またはSoCとして実施され得る。
[0021] RF回路108が、1つまたは複数のアンテナを介してワイヤレス通信リンクを通じてワイヤレス信号および/またはデータを送信および受信するのに対し、ベースバンド回路110は、ワイヤレス信号および/またはデータのリアルタイムベースバンド処理を行う。モデム106のワイヤレス通信能力を現実化するために、RF回路108およびベースバンド回路110は、データを交換するよう互いに相互接続する。上記および下記でさらに説明されるように、これらの相互接続は、データを、それが転送されているときに破損する現実世界の作用を被りやすい(susceptible)ことがある。破損されたデータのロバストなハンドリングを確実にするために、RF回路108は、エラー生成器(複数を含む)112およびエラーハンドラ(複数を含む)114を含む。同様に、ベースバンド回路110は、エラー生成器(複数を含む)116およびエラーハンドラ(複数を含む)118を含む。図1は、RF回路108およびベースバンド回路110を、各々が1つのエラー生成器および1つのエラーハンドラのみを含むように例示するものの、これが単に、検討を目的としているだけであることは理解されることとなる。すなわち、本願請求項の主題の範囲から逸脱することなく、任意の適切な数のエラー生成器コンポーネントおよび/またはエラーハンドラコンポーネントも、RF回路108およびベースバンド回路110上に含まれ得る。
[0022] 下記でさらに説明されるように、エラー生成器(複数を含む)112およびエラー生成器(複数を含む)116は、少なくとも2つのサブコンポーネントを接続するデータ線上にデータエラーパターンをもたらすオンチップハードウェアエラー生成器コンポーネントを表す。とりわけ、エラー生成器コンポーネントは、それぞれのデータパス上で第1(発信元(originating))のサブコンポーネントから入来するデータ伝送をオーバーライドし、第2(受信側(recipient))のサブコンポーネントにデータパス上で、指定されたデータエラーパターンを出力する。エラー生成器コンポーネントに対する動的構成および/または改変は、データ線上にデータエラーパターンが置かれるタイミング、および/またはデータエラーパターンのコンテンツを制御し得る。
[0023] エラーハンドラ(複数を含む)114およびエラーハンドラ(複数を含む)118は、入力データを受信し、受信されたデータに対する既知の応答を行うオンチップエラーハンドラコンポーネントを表す。例えば、エラーハンドラコンポーネントは、エラー生成器コンポーネントに結合されているデータ線の「下流(downstream)」であり得、ここでエラーハンドラコンポーネントは、エラー生成器コンポーネントによって生成された直接的データ入力か、またはエラー生成器コンポーネントによって生成された間接的データ入力のどちらかを受信する。受信されたデータがエラーを含むとき、エラーハンドラコンポーネントは、「破損されたデータ」を認識し、対応するシステムがハングおよび/または中断することを防ぐ(例えば、対応するシステムが破損されたデータから回復し得る)形でそれをハンドリングする。
[0024] 様々な態様が利用され得る例となるオペレーティング環境を説明してきたが、今度は、1つまたは複数の態様に従ったポイントツーポイント接続における自己エラーインジェクションの検討を考える。
[ポイントツーポイント接続における自己エラーインジェクション]
[0025] デバイスの複雑さは時折、デバイス内に含まれるハードウェアおよび/またはソフトウェアコンポーネントの数の増加と換言できる。時に、デバイスによって行われる様々な機能が、それぞれのコンポーネントによって区分され実行され得る。そして次に、コンポーネントは、全目標(objective)をかなえるために、機能をリクエストし、結果を返し、イベントが生じたときを示す、等のために互いに通信する。ハードウェアでは、通信が、情報またはデータを表すために様々な波形および/またはパターンをもつ電子信号(複数を含む)を伝送することによってデータ線を通じて生じ得る。
[0025] デバイスの複雑さは時折、デバイス内に含まれるハードウェアおよび/またはソフトウェアコンポーネントの数の増加と換言できる。時に、デバイスによって行われる様々な機能が、それぞれのコンポーネントによって区分され実行され得る。そして次に、コンポーネントは、全目標(objective)をかなえるために、機能をリクエストし、結果を返し、イベントが生じたときを示す、等のために互いに通信する。ハードウェアでは、通信が、情報またはデータを表すために様々な波形および/またはパターンをもつ電子信号(複数を含む)を伝送することによってデータ線を通じて生じ得る。
[0026] さらに例示するために、例200aおよび例200bを含む図2を考える。例200aは、コンポーネント202およびコンポーネント204がデータ線208を通じて電子信号206を介して互いに通信することを例示する。ここで、電子信号206は、それぞれのコンポーネント間のデータ線208上を流れる理想的な電子信号を表す。電子信号が理想的であるため、それは、まさにコンポーネント202によって送信された通りにコンポーネント204によって受信される。任意の適切なタイプの情報も表すように、任意の適切なタイプの電子信号も、コンポーネント間で送信され得る。簡略化の目的で、コンポーネント202とコンポーネント204との間のデータ線208は、2つの間を流れる単一の電子信号を用いた単一のデータ線接続として例示される。しかしながらデータ線208は、本願請求項の主題の範囲から逸脱することなく、各々がそれぞれの電子信号を用いる複数のデータ線接続を含み得る。デジタルリンクでは、電子信号が、デジタル情報を伝達するために伝送される。電子信号206を受信すると、コンポーネント204は、例えば、対応するデータビットが「0」または「1」であるかどうかを識別するために、時間的に(in time)一瞬のポイントにおけるしきい値と電子信号206の電圧を比較することによって、コンポーネント間で合意された通りの形で情報を抽出する。このシンプルな例は、検討のみを目的としている。このように、他の適したタイプの電子信号および/または情報抽出プロセスが、本願請求項の主題の範囲から逸脱することなく、使用され得る。電子信号が、電子信号206の理想的な信号フローのように、クリーンに送信されるとき、コンポーネント204は、エラーなく、コンポーネント202によって伝送されたデータの全てを受信する。しかしながら現実世界の環境では、様々なファクタが信号を歪ませ得、結果的に送信されているデータを破損する。
[0027] 例200bは、コンポーネント202およびコンポーネント204が電子信号210を介してデータ線208を通じて通信することを例示し、ここで電子信号210は、物理的ファクタに基づく歪みを含む。ここでは、電磁干渉(EMI)、ノイズ、不完全なデータ線材料、温度変動、等のような物理的ファクタが、結果として得られる電圧のような、信号の物理的特性を変更し得る。結果的に、情報が「0」であるか「1」であるかに関する決定をコンポーネント204が下すとき、理想的な信号に対してなされる改変は、間違ったデータ(例えば、伝送された「1」が「0」と解釈される)を生み出し得る。従って、第1のコンポーネントが正しい情報を送信したとしても、第2のコンポーネントは、歪みに起因して情報を適切に受信しないことがある。
[0028] オンチップハードウェアエラー生成器コンポーネントが、システムのサブコンポーネント間の様々なエラー状態、例えば、破損されたデータに関連付けられたもの、をシミュレートするために使用され得る。結果的に、データエラーシミュレーションは、受信サブコンポーネントのエラーハンドリング機能をテストするために使用され得る。どのエラー状態がシミュレートされるか、およびいつそれらがシミュレートされるかの精確な制御を有することは、それぞれのエラーハンドリング機能を実施することによってよりロバストな製品を確保する。
[0029] ワイヤレスモデムの上記例を引き続き用いながら、今度は図3aおよび図3bを考える。図3aおよび図3bは、図1のRF回路108およびベースバンド回路110それぞれのより詳細な例となる実施形態を含む。上記ケースにあったように、これらの例の検討は、例示されるコンポーネントに対して差し控えられる。他の態様が、本願請求項の主題の範囲から逸脱することなく、追加の、またはより少ない機能/回路を組み込み得ることは理解されることとなる。
[0030] この例において、RF回路108は、SoCとして実施される。RF回路108のサブコンポーネントは、アナログデジタルコンバータ(ADC)302、デジタルアナログコンバータ(DAC)304、リンクレイヤサブコンポーネント306、物理(PHY)レイヤサブコンポーネント308、およびSERDESサブコンポーネント310を含む。一般的に言えば、ADC302は、それぞれのアンテナから入来するRF信号を受信し、信号からデジタルサンプルを生成する。DAC304は、デジタルサンプルを受信し、サンプルをアナログ信号にコンバートし、アナログ信号をそれぞれのアンテナから伝送する。リンクレイヤサブコンポーネント306が、通信プロトコルを使用して他のコンポーネントにRF回路108を相互接続させるために使用される論理回路を含むのに対し、PHYレイヤサブコンポーネント308は、リンクレイヤサブコンポーネント306によって管理される通信プロトコル(複数を含む)に関連付けられたデータ信号を生成するようにハードウェアを構成する機能を代表する。SERDESサブコンポーネント310は、オフチップでデータを送信および受信するアビリティを代表する。とりわけ、SERDESサブコンポーネント310は、直列および並列フォーマット間でデータ伝送をコンバートする論理回路を含む。
[0031] RF回路108と、外部または内部コンポーネントとの間の相互接続を維持するのを助けるために、リンクレイヤサブコンポーネント306は、データ線312を使用してPHYレイヤサブコンポーネント308にデータを送信する。同様に、PHYレイヤサブコンポーネント308は、データ線314を使用してSERDESサブコンポーネント310にデータを送信する。データ線312およびデータ線314は、異なるコンポーネント間でデジタル情報を転送するために使用されるデジタルリンクであり得る。上記で論じられたように、データ線312およびデータ線314を通じて情報を転送するために使用される電子信号は、物理的ファクタに起因した変更(modification)を受ける。結果として、リンクレイヤサブコンポーネント306またはPHYレイヤサブコンポーネント308から下流のコンポーネントが、破損されたデータを受信し得ることは潜在的にある。システム中にエラーハンドラコンポーネントを挿入することによって、下流のコンポーネントは、全システムの動作を危険にさらすことなく破損されたデータに応答し得る。しかしながら、エラーハンドリングをさらにテストすることが、それが適切に機能していることを確実にするのに役立つ。いくつかの態様は、命令によって(on command)各潜在的なデータ破損シナリオを生成する方法としてオンチップハードウェアエラー生成器コンポーネントを使用してこれらのデータパス上にデータエラーパターンを挿入する。
[0032] RF回路108は、ハードウェアマルチプレクサ(MUX)318の形態のエラーインサーション回路を介してデータパス312に結合されているエラー生成器コンポーネント316と、MUX322の形態のエラーインサーション回路を介してデータパス314に結合されているエラー生成器コンポーネント320と、を含む。エラーインサーション回路は各々、MUXとして本明細書で例示されるものの、他のタイプの回路、制御論理コンポーネント、ゲート、および/またはハードウェア(すなわち、演算論理ユニット(ALU)、排他的OR(XOR:eXclusive OR)ゲート、ANDゲート、ORゲート、インバータ(NOT)ゲート、等)が、本願請求項の主題の範囲から逸脱することなく、利用され得ることは理解されることとなる。インサーション回路および/または制御論理回路を介したデータ線へのエラー生成器コンポーネントの結合は、それぞれのデータパス上でのデータ伝送をオーバーライドし、加えてデータ伝送がそれらのそれぞれの改変されていないデータパスに沿って伝わることを可能にし得る構成可能なハードウェアコンポーネントを生み出す。この例の観点から、データパス312上で伝送されるデータは、エラー生成器コンポーネント316がディセーブルされるときに変更なくMUX318を通り得るか、またはエラー生成器コンポーネント316がイネーブルされるときにデータエラーパターンで改変され(altered)得る。同様に、データパス314上で伝送されるデータは、変更なくMUX322を通り得るか、またはエラー生成器コンポーネント320によって生成されたデータエラーパターンで改変され得る。従って、下記でさらに説明されるように、データ伝送は、様々な選択されたデータエラーパターンに従って、および様々な形で、変更され得る。さらに、エラー生成器コンポーネントによって生成されたデータ変更は、元の伝送されたデータの一部分と取って代わり得るか、元の伝送されたデータが散在し得るか、または元の伝送されたデータの全てと取って代わり得る。結果として得られたデータはその後、さらなる処理のために「下流に」伝送される。ここでは、エラー生成器コンポーネント316およびエラー生成器コンポーネント320のうちのいずれか1つ、またはその両方の蓄積効果(cumulative effect)が、SERDESサブコンポーネント310を通ってベースバンド回路110のような受信側に送信される。複数のエラー生成器コンポーネントが同じチップ上に存在するとき、エラー生成器コンポーネント(s)は、同時に、または互いに独立してイネーブルされ得ることは理解されることとなる。
[0033] 図3bは、図3aのRF回路108中に接続するベースバンド回路110の例となる実施形態を例示する。RF回路108のケースにあったように、ベースバンド回路110は、類似のサブコンポーネント(例えば、SERDESサブコンポーネント324、PHYレイヤサブコンポーネント326、およびリンクレイヤサブコンポーネント328)をもつSoCとして例示される。入来する(オフチップ)データは、SERDESサブコンポーネント324を通って受信され、データ線330を通じてPHYレイヤサブコンポーネント326に送られる。とりわけ、データ線330を通じて受信されたデータは、処理のためにエラーハンドラコンポーネント332に渡される。エラーハンドラコンポーネント332はPHYレイヤサブコンポーネント326に存在するオンチップエラーハンドリング機能を代表し、PHYレイヤ機能に関するコンテクストで入来するデータを処理する(例えば、PHYレイヤ機能に関連付けられたフォーマットでデータを認識および/または処理する)ように構成される。同様に、サブコンポーネント328のリンクレイヤは、データ線334を通じてデータを受信し、それはその後、オンチップエラーハンドラコンポーネント336によって処理される。エラーハンドラコンポーネント332とエラーハンドラコンポーネント336の両方とも、エラー生成器コンポーネント316およびエラー生成器コンポーネント320から「下流にある」と、各エラーハンドラコンポーネントが、エラー生成器コンポーネントによって、またはエラー生成器コンポーネントに基づいて生成されたデータを(間接的に)受信するために、考えられ得る。従って、ベースバンド回路110のエラーハンドリング機能は、データエラーパターンを「上流に」挿入することによってテストされ得る。
[0034] この例において、ベースバンド回路110の各エラーハンドラコンポーネントは、エラー生成器コンポーネント316および/またはエラー生成器コンポーネント320のいずれの組合せによっても生成される1つまたは複数のデータエラーシミュレーションの対象の受信側である。エラー生成器コンポーネントのケースにあったように、エラーハンドラコンポーネントは、ベースバンド回路110の任意の適切なサブコンポーネント上にも、および/または任意の適切なロケーションにも、置かれ得る。様々なデータエラーシミュレーションシナリオを繰り返すこと(cycling through)によって、ベースバンド回路110のオンチップエラーハンドラコンポーネントが、ロバストな製品を確保にするためにテストされ得る。上記検討は、ベースバンド回路110上のエラーハンドラコンポーネントのテストの目的でRF回路108上にオンチップで置かれたエラー生成器コンポーネントのコンテクストを使用しているものの、説明される様々な技法は、他の態様に適用可能であることは理解されることとなる。例えば、いくつかのケースにおいて、ベースバンド回路110は、RF回路108に向かって出て行く(outgoing)データパス全域に1つまたは複数のオンチップエラー生成器コンポーネントを含む。同様に、RF回路108は、そのそれぞれのサブコンポーネント上に1つまたは複数のエラーハンドラコンポーネントを含み得る。
[0035] データパスに沿ってハードウェアエラー生成器コンポーネントを挿入することによって、テストルーチンは、どのエラー状態が生じるか、およびいつエラー状態が生じるかをより精確に制御できる。いくつかのケースにおいて、ハードウェアエラー生成器コンポーネントによって生成されたデータパターンは、パターンが挿入されるデータパスを介して伝送されているデータのタイプに合わせられ得る。リンクレイヤサブコンポーネント306とPHYレイヤサブコンポーネント308との間に挿入されるエラー生成器コンポーネント316を考える。いくつかの態様において、リンクレイヤサブコンポーネント306およびPHYレイヤサブコンポーネント308は、構造化されたデータパケットを使用して互いに通信する。とりわけ、構造化されたデータパケットは、通信相手同士でデータ分割に関して事前合意(a pre-agreed)を有する。例えば、いくつかのデータパケットは、プリアンブルまたはトレーニングシーケンスで始まり、同期ワード、エラー検査のためのチェックサム、データパケットヘッダ、メッセージタイプフィールド、識別フィールド、ペイロードデータ、巡回冗長検査(CRC)フィールド、等を含む。構造に関する事前合意に基づいて、伝送および受信エンティティは、異なる意味を有するデータのあるグループ分けを解釈する。従って、いくつかの態様において、エラー生成器コンポーネント316は、データパケットのフェーズを、それが伝送されているときにトラッキングし(例えば、構造化されたデータパケットのどのフェーズおよび/またはフィールドがデータ線を通じて現在伝送されているかの経過を追う)、データパケット内のある特定のロケーションにデータエラーシミュレーションを挿入する。データパケットヘッダ変更、CRCフィールドエラー、ペイロードデータエラー、データレーン上の強制エラービット(a forced error bit)のような、任意の適切なフィールドもトラッキングおよび/または変更され得る。いくつかのケースでは、エラー生成器コンポーネントが、現在のフィールドを特定するために、データパケットのフェーズを、それが伝送されているときにトラッキングするためのステートマシンを含む。
[0036] データエラーシミュレーションは、構造化されたデータパケットの指定のフィールドを改変することに基づき得るものの、それらはタイミングベースでもあり得る。例えば、コンポーネント間で転送されているデータのフェーズをトラッキングする代わりに、代替として周期的な時間インターバルで、指定されたインターバルウィンドウにわたって、および/またはランダムなインターバルで、エラーを挿入することが望ましいことがある。これらのインターバルは、クロックカウント、ビットカウント、指定された時間のウィンドウ、等のような、任意の適切な時間および/または単位の測定に基づき得る。特定されたインターバルが生じるとき、エラー生成器コンポーネントは、高スタックビット(stuck-high bit)、低スタックビット(stuck-low bit)、ランダムビットパターン、ランダムビットフリップ、ビットシフト、等のような指定されたエラー状態をシミュレートするために、データ線にデータを挿入する。
[0037] 時間的にランダムなポイントでデータエラーシミュレーションを挿入することに加えて、いくつかの態様は、ランダムエラーを挿入する。例えば、上記でさらに論じられたようにデータパケットのチェックサム値を変更するとき、データエラーシミュレーションは、現在伝送されているチェックサム値に基づき得る。しかしながら、他の態様において、データは単に、時間的に指定のポイントまたは時間的にランダムなポイントのどちらかにおけるランダムビットフリッピング、時間的に指定されたポイントで指定されたエラー状態、またはそれらの任意の組合せなどでランダムに改変され得る。従って、エラー生成器は、フェーズ(例えば、データフィールド)レベルエラー、タイミングレベルエラー、ランダムエラー、またはそれらのいずれの組合せもシミュレートするように構成され得る。
[0038] データ線上にデータエラーシミュレーションの精確な制御を行うことによって、製品は、コーナーケースシナリオを含む多くのシナリオについてより徹底的にテストされ得る。エラーの精確な生成は、エラーが受信コンポーネントによって適切にハンドリングされるかどうかを観測者が検証することを可能にする。さらに、上記で論じられたエラーハンドラコンポーネントと同様に、エラー生成器コンポーネントのオンチップ本質が、プレシリコン/成形前(prefabrication)プロセス中のシリコンチップ設計のシミュレーションおよびエミュレーション中の動きの検証を可能にする。例えば、オンチップ構成レジスタは、エラー生成器コンポーネントを構成するために様々な開発フェーズ全体にわたって使用され得る。
[0039] ICおよび/またはSoCのオンチップ構成レジスタは、オンチップハードウェアエラー生成器コンポーネントのような様々なオンチップコンポーネントの動きを制御するために使用され得る。例えば、構成レジスタへの異なる入力値は、エラー生成器コンポーネントが、対応するデータパス上に対してデータエラーシミュレーション挿入する仕方および/またはとき(how and/or when)を改変し得る。これは、様々なデータフィールドを特定するために効果的な、伝送されているデータのフェーズをモニタするエラー生成器コンポーネントにおけるデータエラーシミュレーションステートマシンをイネーブルまたはディセーブルすることによるような、任意の適切な形式でも実現され得る。データ入力はまた、データエラーがシミュレートされるタイミング、データが本質的にランダムであるかどうか、等を構成するためにも使用され得る。従って、エラー生成器コンポーネントの異なる構成は、構成レジスタに書き込まれている異なるデータに対応する。(各オンチップエラー生成器コンポーネントが、それぞれの構成レジスタを有する場合)エラー生成器コンポーネントと構成レジスタとの間には1対1の対応が存在し得るか、または(マスタ構成レジスタが複数のエラー生成器コンポーネントを構成するために使用されるか、もしくは複数の構成レジスタが1つのエラー生成器コンポーネントを構成するために使用される場合)1対多数の対応が存在し得る。それに関係なく、エラー生成器コンポーネントの動きは、適切なレジスタ中に対応する構成データまたはコマンドを書き込むことによって変更、イネーブル、またはディセーブルされ得る。これらの構成レジスタのオンチップ本質は、開発過程のどこでエラー生成器コンポーネントがアクセスされているかに関わらず、エラー生成器コンポーネントへの一意アクセスを開発者に与える。
[0040] オンチップエラー生成器コンポーネントの1つの利点は、既存の開発ツールを使用する開発サイクルの様々なフェーズ全体にわたって、様々なエラーシナリオ、そしてその対応するエラーハンドリング技法を精確にテストするアビリティである。いくつかのケースでは、同じテストシーケンスが使用され得る。上記で論じられたエラーハンドラコンポーネントと同様に、エラー生成器コンポーネントのオンチップ本質が、プレシリコン/成形前プロセス中のシリコンチップ設計のシミュレーションおよびエミュレーション中の動きの検証を可能にする。例えば、ICの成形前開発段階において、エラー生成器コンポーネント構成レジスタは、ICおよび/またはICの様々なコンポーネントをシミュレートする(例えば、オンチップハードウェアエラー生成器のエミュレーション、ICの1つまたは複数のサブコンポーネントのエミュレーション、ICのエラーハンドラコンポーネントのエミュレーション、等)エミュレーションソフトウェアと連携して稼働されるテストスクリプトを使用してアクセスおよび/または設定され得る。これは、エミュレートされたICのオンチップハードウェアエラー生成器コンポーネントだけでなく、その対応するエラーハンドラコンポーネントも同様に成形前テストすることを可能にする。これらと同じテストルーチンが、ICが設計または製品中に含められているときと同様に、構成レジスタおよび/またはエラー生成器コンポーネントのハードウェア態様を評価するためにポスト製造でも利用され得る。従って、数多くのプラットフォームが、オンチップエラー生成器コンポーネントを採用するものと同じテストプロシージャのうちの少なくともいくつかを使用し得る。
[0041] 図4は、1つまたは複数の態様に従った例となる方法を例示する。この方法は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の適切な組合せで行われ得る。いくつかの態様において、この方法は、上記および下記で、下記でさらに説明されるように、システムオンチップ上の1つまたは複数のサブコンポーネントを介してハードウェアで実施され得る。
[0042] ブロック402で、エラー生成器コンポーネントは、エラーシミュレーション入力を受信する。エラーシミュレーション入力は、任意の適切な形式でも受信され得る。例えば、いくつかのケースにおいて、エラーシミュレーション入力は、エラー生成器コンポーネントに関連付けられた構成レジスタへのレジスタ書き込みを介して受信される。時に、エラー生成器コンポーネントは、ICのサブコンポーネントである。エラーシミュレーション入力は、1つまたは複数のデータ線を通じたデータ、コンピュータ可読メモリハードウェアに1つまたは複数のアドレスで記憶されたデータビット、等のような任意の適切なタイプの入力でもあり得る。代わりとして、または加えて、エラー生成器コンポーネントは、データエラーシミュレーション入力が利用可能であると示すイベント、例えばハードウェアまたはソフトウェア割り込みを受信し得る。
[0043] ブロック404で、エラーシミュレーション入力を受信したことに応答して、エラー生成器コンポーネントは、データエラーパターンを決定する。時に、データエラーパターンは、ビットのランダムフリップのような、バイナリ「0」または「1」ビットに対する変更である。データエラーパターンの別の例は、データパケットにおける特定のフィールドに対する変更である。高スタックビットをシミュレートするデータパターン、低スタックビットをシミュレートするデータパターン、ランダムビットフリップをシミュレートするデータパターン、データ線上の強制エラービットをシミュレートするデータパターン、CRCフィールドエラーをシミュレートするデータパターン、データパケットヘッダエラーをシミュレートするデータパターン、トレーニングシーケンスデータエラーをシミュレートするデータパターン、等のような、任意の適切なタイプのデータエラーパターンも決定され得る。
[0044] 代わりとして、または加えて、エラー生成器コンポーネントは、エラーシミュレーション入力からタイミングインサーション情報、例えば、データ線上にデータエラーパターンを周期的に挿入するためのインジケーション、データ線上にデータエラーパターンをランダムに挿入するためのインジケーション、挿入すべきデータエラーパターンの数についてのカウントメトリックのインジケーション、データエラーパターンを挿入すべきタイミングウィンドウのインジケーション、等を決定し得る。いくつかのケースにおいて、データエラーパターンの選択は、ハードウェアにおける1つまたは複数の論理ゲートによって行われ得る。
[0045] ブロック406で、データエラーパターンを選択したことに応答して、エラー生成器は、データパス上にデータエラーパターンを挿入する。例えば、上記および下記で説明されるように、エラー生成器コンポーネントは、デジタルデータ線を管理する1つまたは複数のエラーインサーション回路に結合され得る。エラーインサーション回路およびエラー生成器コンポーネントがイネーブルされるとき、デジタルデータ線上を伝わる電子信号は、選択されたデータエラーパターンをシミュレートするよう変更され得る。いくつかの態様では、ハードウェアエラー生成器コンポーネントが、データ線上で伝送されている構造化されたデータパケットのフェーズをトラッキングし、パケットを検出するためまたは信号にチューニングするために受信機によって使用されるトレーニングフィールド、データパケットヘッダ、等のような構造化されたデータパケットの少なくとも1つのフィールドにデータエラーパターンを挿入する。データエラーパターンを挿入することは、ランダムまたは周期的なインターバルにおけるクロックカウントのようなタイミングデータに基づき得る。データエラーパターンは、例えば、デジタルデータ線上で第1のサブコンポーネントから起こるデータの一部分と取って代わることによって、デジタルデータ線を介して第1のサブコンポーネントから第2のサブコンポーネントに向かって生じるデータが散在し得るか、またはデジタルデータ線上で第1のサブコンポーネントから生じるデータの全てに取って代わり得る。
[0046] 従って、オンチップハードウェアエラー生成器コンポーネントは、エラー生成器コンポーネントがテストを受けている機能と同じ形で成形されているので、制御可能な結果を伴う低コストテストソリューションを提供する。データエラーをシミュレートする予測可能な制御は、追加のハードウェアまたはテスト機器を求める必要なく(without a need for)、複数のプラットフォームにおけるエラーハンドリング機能の徹底的なテストを可能にする。オンチップハードウェアエラー生成器コンポーネントの様々な実施形態を説明してきたが、今度は上記で説明された実施形態のうちの1つまたは複数を実施するために利用され得る例となるシステムを考える。
[例となるシステムおよびデバイス]
[0047] 図5は、例となるシステムオンチップ(SoC)500を例示し、これは、ハードウェアエラー生成器コンポーネントを介した自己エラーインジェクションの態様を実施する能力を有するコンポーネントを含む。いくつかの態様において、システムオンチップ500は、シリコン、ゲルマニウム、ガリウムヒ素、等のような半導体材料の1つまたは複数の基板上に電子回路のセットを備えるICである。さらに、システムオンチップ500は、モデム、ブロードバンドルータ、アクセスポイント、セルラ電話、スマートフォン、ゲームデバイス、ラップトップコンピュータ、ネットブック、スマートフォン、ネットワーク接続ストレージ(NAS:network-attached storage)デバイス、または自己エラーインジェクションを実施し得る何かの他のデバイス、のような任意の適切な電子デバイスとして、または任意の適切な電子デバイスとして実施され得る。システムオンチップ500は、任意の適切なタイプの機能を行うように構成され得る。例えば、いくつかの態様において、システムオンチップ500は、図1のRF回路108のようなRF信号処理システムを実施する。代わりに、または追加で、システムオンチップ500は、図1のベースバンド回路110によって提供されるもののような、ベースバンド信号処理システム機能を実施する。
[0047] 図5は、例となるシステムオンチップ(SoC)500を例示し、これは、ハードウェアエラー生成器コンポーネントを介した自己エラーインジェクションの態様を実施する能力を有するコンポーネントを含む。いくつかの態様において、システムオンチップ500は、シリコン、ゲルマニウム、ガリウムヒ素、等のような半導体材料の1つまたは複数の基板上に電子回路のセットを備えるICである。さらに、システムオンチップ500は、モデム、ブロードバンドルータ、アクセスポイント、セルラ電話、スマートフォン、ゲームデバイス、ラップトップコンピュータ、ネットブック、スマートフォン、ネットワーク接続ストレージ(NAS:network-attached storage)デバイス、または自己エラーインジェクションを実施し得る何かの他のデバイス、のような任意の適切な電子デバイスとして、または任意の適切な電子デバイスとして実施され得る。システムオンチップ500は、任意の適切なタイプの機能を行うように構成され得る。例えば、いくつかの態様において、システムオンチップ500は、図1のRF回路108のようなRF信号処理システムを実施する。代わりに、または追加で、システムオンチップ500は、図1のベースバンド回路110によって提供されるもののような、ベースバンド信号処理システム機能を実施する。
[0048] システムオンチップ500は、サブコンポーネント502およびサブコンポーネント504を含む。これらのサブコンポーネントは一般に、システムオンチップ500内に含まれる区分された機能を表すために使用される。いくつかのケースにおいて、これらサブコンポーネントは区分された回路であって、それらのそれぞれの区分された機能を行うためにトランジスタ、論理ゲート、フリップフロップ、MUX、コンピュータ可読メモリストレージ、等の変化する組合せを含んだものである。時に、これらサブコンポーネントは、アナログおよび/またはデジタル信号を処理可能な回路を含むように構成される。例えば、いくつかの態様において、サブコンポーネント502は、図3aおよび図3bのリンクレイヤサブコンポーネント306によって行われるもののような、リンクレイヤ機能を行う。代わりとして、または加えて、サブコンポーネント504は、図3aおよび図3bのPHYレイヤ308によって行われるもののような、PHYレイヤ機能を行う。
[0049] システムオンチップ500はまた、エラー生成器コンポーネント506、エラーインサーションコンポーネント508、および構成レジスタ510も含み、それらは、サブコンポーネント502とサブコンポーネント504を結合するデータ線上に1つまたは複数のデータエラーシミュレーションをインジェクトするために共に使用され得る。いくつかの態様において、エラー生成器コンポーネント506および/またはエラーインサーションコンポーネント508の機能は、構成レジスタ510中にデータを書き込むことによって制御され得る。例えば、エラー生成器コンポーネント506および/またはエラーインサーションコンポーネント508は、構成レジスタ510を通じてアクセス可能な事前に割り当てられたアドレスを通じて構成データを受信し得る。いくつかの実施形態において、さらに上述されたように、構成レジスタ510へのデータ入力は、変更されているデータのフェーズおよび/または状況をモニタするし、および/またはデータエラーがシミュレートされるタイミングを構成するエラー生成器コンポーネント506におけるデータエラーシミュレーションステートマシンをイネーブルまたはディセーブルする。簡略化の目的で、システムオンチップ500は、1つのエラー生成器コンポーネント、1つの結合論理コンポーネント、および1つの構成レジスタを含むように例示される。しかしながら、システムオンチップ500は、本願請求項の主題の範囲から逸脱することなく、数の上で、これらのコンポーネントおよびレジスタの任意の適切な組合せも含み得る。
[0050] データ線512は、サブコンポーネント504に電子信号を介してデータおよび/または情報を伝送するためにサブコンポーネント502によって使用され得るデジタルデータ線を表す。ここでは、データ線512がエラーインサーションコンポーネント508への入力であるのに対し、データ線514は、エラーインサーションコンポーネント508からの出力デジタルデータ線である。エラー生成器コンポーネント506がディセーブルされる(例えば、データエラーシミュレーションを生成しない)とき、データ線512上で伝送するデータは、エラーインサーションコンポーネント508を通ってデータ線514経由でサブコンポーネント504に向かう。エラー生成器コンポーネント506がイネーブルされる(例えば、データエラーをシミュレートする)とき、エラーインサーションコンポーネント508は、データ線514上にシミュレートされたエラーをインジェクトする。いくつかの実施形態では、データ線512上で伝送されるデータの全て(例えば、全データパケット)が置き換えられる一方、他の実施形態で、データエラーが、様々なロケーションおよび/または時間的ポイントにおいて、データ線514上で伝送されるデータが散在している。従って、エラーインサーションコンポーネント508は、データ線514を通じて結果として得られるデータ信号を出力するために、エラー生成器コンポーネント506とデータ線512を結合する回路および/または論理回路を含む。エラーインサーションコンポーネント508は、MUX、XOR、論理ゲート、等の使用を通じるなどの、任意の適切な形式で実施され得る。
[0051] 様々な技法が、ハードウェアコンポーネント、ソフトウェアコンポーネント、ファームウェアコンポーネント、またはそれらの任意の組合せの一般的なコンテクストで本明細書において説明され得る。一般に、ハードウェアコンポーネントは、入力された電子信号および/または電力に基づいて、アナログおよび/またはデジタル動作を行う相互接続された電子コンポーネントを含み得る。相互接続された電子コンポーネントは、例えば、ディスクリートコンポーネント(例えば、レジスタ、コンデンサ、トランジスタ、等)、集積回路(IC)、半導体ベースのコンポーネント、光学ベースのコンポーネント、中央処理ユニット(CPU)、入力/出力(I/O)ポート、コンピュータ可読メモリデバイス、またはそれらのあらゆる組合せのように、様々に及び得る。代わりとして、または加えて、電子コンポーネントは、受動または能動電子コンポーネントのいずれの組合せでもあり得る。これらの例は、単に検討を目的としているに過ぎず、本願請求項の主題の範囲を限定するようには意図されていない。
[0052] 一般に、ソフトウェアコンポーネントは、特定のタスクを行うか、または特定のアブストラクトデータタイプ(abstract data types)を実施する、ルーチン、プログラム、オブジェクト、データ構造、等を含む。ソフトウェアコンポーネントによって行われるタスクは、レジスタ読み書きを行うプロセッサ実行可能命令のような低レベルハードウェアアクセスから、コンピュータハードウェアへのアクセスを管理し、共通のサービスおよび/またはプログラムを提供するオペレーティングシステムコンポーネント、ユーザと対話するためにオペレーティングシステムによって提供されるサービスを利用するアプリケーションコンポーネントにまで及び得る。これらの様々なコンポーネントおよび技法は、何らかの形態のコンピュータ可読媒体上に記録されるか、または何らかの形態のコンピュータ可読媒体を渡って伝送され得、時に1つまたは複数のプロセッサによって実行可能である。
[0053] 「コンピュータ可読記憶媒体」および/またはコンピュータ可読メモリデバイスは、情報の記憶のための任意の方法または技術で実施される揮発性および非揮発性の、取り外し可能および取り外し不可能な媒体を含む。さらに、媒体および/またはメモリデバイス内に含まれるコンテンツは、コンピュータまたはプロセッサによってアクセスされ得る。記憶媒体および/またはメモリデバイスは、限定でなく例として、RAM、ROM、EEPROM(登録商標)、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用され得る何か他の媒体のような、任意の適切なタイプのデバイスで実施され得る。情報は、コンピュータ可読命令、サンプリングされた信号値、データ構造、プログラムコンポーネント、または他のデータのような、任意の適切なタイプのデータを含み得る。これらの例、並びに記憶媒体および/またはメモリデバイスの任意の組合せが、非一時的なコンピュータ可読媒体の範囲内に収まることを意図されている。
[0054] ファームウェアコンポーネントは、電子コンポーネントにどのようにオペレートすべきか指示する実行可能命令を記憶するように構成されたプログラム可能なメモリをもつ電子コンポーネントを含む。いくつかのケースでは、電子コンポーネント上に記憶された実行可能命令が恒久的であるのに対し、他のケースにおいて、実行可能命令は、更新および/または改変され得る。時に、ファームウェアコンポーネントは、ハードウェアコンポーネントおよび/またはソフトウェアコンポーネントと組み合わせて使用され得る。
[0055] 「コンポーネント」、「モジュール」、および「システム」という用語は、上記でさらに説明されたように、ハードウェア、ファームウェア、ソフトウェア、またはそれらのあらゆる組合せのような1つまたは複数のコンピュータ関連エンティティを指すように意図されている。1つまたは複数のコンポーネント。時に、コンポーネントは、プロセッサ実行可能命令によって定義されるプロセスおよび/または実行スレッドを指し得る。代わりとして、または加えて、コンポーネントは、様々な電子および/またはハードウェアエンティティを指し得る。
[結論]
[0056] 様々な態様が、オンチップハードウェアエラー生成器コンポーネントを説明する。いくつかのケースにおいて、ハードウェアエラー生成器コンポーネントは、同じチップ内に含まれる2つのコンポーネント間のデータパスに接続する。エラーシミュレーション入力を受信すると、ハードウェアエラー生成器コンポーネントは、エラー状態をシミュレートするデータパターンを挿入することによってデータパス上で伝送されているデータを改変する。代わりとして、または加えて、ハードウェアエラー生成器は、伝送されるデータビットの1つまたは複数をランダムに改変する。
[0056] 様々な態様が、オンチップハードウェアエラー生成器コンポーネントを説明する。いくつかのケースにおいて、ハードウェアエラー生成器コンポーネントは、同じチップ内に含まれる2つのコンポーネント間のデータパスに接続する。エラーシミュレーション入力を受信すると、ハードウェアエラー生成器コンポーネントは、エラー状態をシミュレートするデータパターンを挿入することによってデータパス上で伝送されているデータを改変する。代わりとして、または加えて、ハードウェアエラー生成器は、伝送されるデータビットの1つまたは複数をランダムに改変する。
[0057] 態様が、構造上の特徴および/または方法論的動作(acts)に特有の表現で説明されてきたものの、添付の請求項において定義される様々な態様は、説明された指定の特徴または動作に必ずしも限定されない。むしろ、指定の特徴および動作は、様々な態様を実施する例となる形態として開示される。
[0057] 態様が、構造上の特徴および/または方法論的動作(acts)に特有の表現で説明されてきたものの、添付の請求項において定義される様々な態様は、説明された指定の特徴または動作に必ずしも限定されない。むしろ、指定の特徴および動作は、様々な態様を実施する例となる形態として開示される。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
エラーハンドリングをテストするためのデバイスであって、
少なくとも1つのエラーインサーション回路と、
前記デバイス中の2つのサブコンポーネント間の少なくとも1つのデータ線に、前記少なくとも1つのエラーインサーション回路を介して結合されたオンチップハードウェアエラー生成器コンポーネントと、
を備え、前記オンチップハードウェアエラー生成器コンポーネントは、
エラーシミュレーション入力を受信し、
前記エラーシミュレーション入力に少なくとも部分的に基づいて、データエラーパターンを決定し、
エラー状態を生成するために有効な前記少なくとも1つのデータ線上に、前記少なくとも1つのエラーインサーション回路を介して、前記データエラーパターンを挿入する、
ように構成される、デバイス。
[C2]
前記データエラーパターンは、
高スタックビット、
低スタックビット、
ランダムビットフリップ、または、
前記データ線上の強制エラービット、
のうちの少なくとも1つに関連付けられたデータエラーパターンを備える、C1に記載のデバイス。
[C3]
前記オンチップハードウェアエラー生成器コンポーネントに関連付けられ、前記少なくとも1つのデータ線上に前記オンチップハードウェアエラー生成器によって挿入された前記データエラーパターンを制御するように構成された少なくとも1つの構成レジスタをさらに備える、C1に記載のデバイス。
[C4]
前記オンチップハードウェアエラー生成器コンポーネントは、前記少なくとも1つのデータ線上で伝送されるデータパケットのデータパケットヘッダを変更するように構成される、C1に記載のデバイス。
[C5]
前記オンチップハードウェアエラー生成器コンポーネントは、前記少なくとも1つのデータ線上に前記データエラーパターンをランダムに挿入するようにさらに構成される、C1に記載のデバイス。
[C6]
前記オンチップハードウェアエラー生成器コンポーネントは、集積回路(IC)のサブコンポーネントである、C1に記載のデバイス。
[C7]
前記少なくとも1つのエラーインサーション回路は、ハードウェアマルチプレクサ(MUX)を備える、C1に記載のデバイス。
[C8]
エラーハンドリングをテストするための方法であって、
ハードウェアエラー生成器コンポーネントを使用して、エラーシミュレーション入力を受信することと、
前記ハードウェアエラー生成器コンポーネントを使用して、前記ハードウェアエラー生成器コンポーネントに結合された少なくとも1つのデジタルデータ線上に挿入すべきデータエラーパターンを決定することと、
前記ハードウェアエラー生成器コンポーネントを使用して、エラー状態を生成するために有効な前記少なくとも1つのデジタルデータ線上に前記データエラーパターンを挿入することと、
を備える、方法。
[C9]
前記少なくとも1つのデジタルデータ線上に前記データエラーパターンを挿入することは、クロックカウントに少なくとも部分的に基づく、C8に記載の方法。
[C10]
構造化されたデータパケットの各データフィールドを特定するために有効な前記少なくとも1つのデジタルデータ線上で伝送している前記構造化されたデータパケットのフェーズを、それが前記少なくとも1つのデジタルデータ線上で伝送されているときにトラッキングすることと、
前記トラッキングされるフェーズに少なくとも部分的に基づいて、前記構造化されたデータパケットの少なくとも1つのフィールドに前記データエラーパターンを挿入することと、
をさらに備える、C8に記載の方法。
[C11]
前記少なくとも1つの制約は、トレーニングフィールドを備える、C10に記載の方法。
[C12]
前記データエラーパターンを挿入することは、物理(PHY)レイヤサブコンポーネントとSERializer/DESerializer(SERDES)サブコンポーネントとの間の通信に関連付けられたデータエラーパターンを挿入することを備える、C8に記載の方法。
[C13]
前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、周期的時間インターバルで前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することをさらに備える、C8に記載の方法。
[C14]
前記少なくとも1つのデジタルデータ線上に前記データエラーパターンを挿入することは、前記少なくとも1つのデジタルデータ線上で伝送された元のデータを前記データエラーパターンに散在させることをさらに備える、C8に記載の方法。
[C15]
エラーハンドリングをテストするための装置であって、
データパスに動作可能に結合された前記装置のオンチップサブコンポーネントと、
前記データパスに動作可能に結合されたオンチップハードウェアエラー生成器コンポーネントと、
を備え、前記オンチップハードウェアエラー生成器コンポーネントは、
エラーシミュレーション入力を受信するための手段と、
前記エラーシミュレーション入力に少なくとも部分的に基づいて、少なくとも1つのデータエラーパターンを決定するための手段と、
前記装置の前記オンチップサブコンポーネントにエラー状態を生成するために有効な前記データパス上に前記少なくとも1つのデータエラーパターンを挿入するための手段と、
を備える、装置。
[C16]
前記データパス上に前記少なくとも1つのデータエラーパターンを挿入するための手段は、前記装置の第2のオンチップサブコンポーネントから起きるデータを前記データエラーパターンに散在させるための手段を備える、C15に記載の装置。
[C17]
前記少なくとも1つのデータエラーパターンを決定するための手段は、いつ前記データパス上に前記少なくとも1つのデータエラーパターンを挿入すべきかに関連付けられたタイミングインサーション情報を決定するための手段をさらに備える、C15に記載の装置。
[C18]
前記オンチップサブコンポーネントは、通信プロトコルに関連付けられた物理(PHY)レイヤサブコンポーネントを備える、C15に記載の装置。
[C19]
前記装置は、ワイヤレスモデムに関連付けられた無線周波数(RF)集積回路(IC)を備える、C15に記載の装置。
[C20]
前記少なくとも1つのデータエラーパターンは、
高スタックビット、
低スタックビット、
ランダムビットフリップ、
前記データパス上の強制エラービット、
巡回冗長検査(CRC)フィールドエラー、
データパケットヘッダエラー、または、
トレーニングシーケンスデータエラー、
のうちの少なくとも1つに関連付けられたデータエラーパターンを備える、C15に記載の装置。
[C21]
エラーシミュレーション入力を受信するための手段は、前記少なくとも1つのデータエラーパターンを生成するための手段に関連付けられた少なくとも1つの構成レジスタをさらに備える、C15に記載の装置。
[C22]
前記データパス上に前記少なくとも1つのデータエラーパターンを挿入するための手段は、
マルチプレクサ(MUX)、または、
排他的OR(XOR)ゲート、
のうちの少なくとも1つを備える、C15に記載の装置。
[C23]
プロセッサ実行可能な命令を備える1つまたは複数のコンピュータ可読メモリデバイスであって、前記命令は、少なくとも1つのプロセッサによる実行に応答して、エミュレートされた集積回路(IC)の1つまたは複数のコンポーネントを使用してオンチップエラー生成をシミュレートするための動作を行い、前記動作は、
前記エミュレートされたICのオンチップハードウェアエラー生成器コンポーネントでエラーシミュレーション入力を受信することと、
前記エラーシミュレーション入力に少なくとも部分的に基づいて、データエラーパターンを決定することと、
前記少なくとも1つのデータ線に結合されている前記エミュレートされたICのサブコンポーネントにエラー状態を生成するために有効な前記オンチップハードウェアエラー生成器に結合された少なくとも1つのデータ線上に前記データエラーパターンを挿入することと、
を備える、1つまたは複数のコンピュータ可読メモリデバイス。
[C24]
前記データエラーパターンを決定することは、
高スタックビット、
低スタックビット、
ランダムビットフリップ、または、
前記データ線上の強制エラービット、
のうちの少なくとも1つに関連付けられたデータエラーパターンを決定することを備える、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C25]
前記エラーシミュレーション入力を受信することは、前記エミュレートされたICの前記オンチップハードウェアエラー生成器コンポーネントに関連付けられた構成レジスタを介して前記エラーシミュレーション入力を受信することを備える、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C26]
前記オンチップハードウェアエラー生成器に結合された前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、前記エミュレートされたICの前記サブコンポーネントに前記少なくとも1つのデータ線上で伝送されるデータパケットのデータパケットヘッダを変更することを備える、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C27]
エミュレートされたICの1つまたは複数のコンポーネントを使用してオンチップエラー生成をシミュレートするための前記動作は、エミュレートされたベースバンド回路ICの1つまたは複数のコンポーネントを使用することを備える、C26に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C28]
前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、周期的時間インターバルで前記少なくとも1つのデータ線上に前記データパターンを挿入することを備える、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C29]
前記エミュレートされたICのエラーハンドラコンポーネントでデータ入力を受信することと、
前記エラーハンドラコンポーネントを使用して前記データ入力における少なくともいくらかの破損されたデータを確認することと、
前記エミュレートされたICが動作を中断することを防ぐのに効果的な前記エラーハンドラコンポーネントを使用して、前記少なくともいくらかの破損されたデータに応答することと、
を備える動作を行うようにさらに構成された、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C30]
前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、いつ前記少なくとも1つのデータ線上に前記データエラーパターンを挿入すべきかを決定するために有効な前記少なくとも1つのデータ線を通じて伝送されているデータパケットのフェーズをトラッキングすることを備える、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
エラーハンドリングをテストするためのデバイスであって、
少なくとも1つのエラーインサーション回路と、
前記デバイス中の2つのサブコンポーネント間の少なくとも1つのデータ線に、前記少なくとも1つのエラーインサーション回路を介して結合されたオンチップハードウェアエラー生成器コンポーネントと、
を備え、前記オンチップハードウェアエラー生成器コンポーネントは、
エラーシミュレーション入力を受信し、
前記エラーシミュレーション入力に少なくとも部分的に基づいて、データエラーパターンを決定し、
エラー状態を生成するために有効な前記少なくとも1つのデータ線上に、前記少なくとも1つのエラーインサーション回路を介して、前記データエラーパターンを挿入する、
ように構成される、デバイス。
[C2]
前記データエラーパターンは、
高スタックビット、
低スタックビット、
ランダムビットフリップ、または、
前記データ線上の強制エラービット、
のうちの少なくとも1つに関連付けられたデータエラーパターンを備える、C1に記載のデバイス。
[C3]
前記オンチップハードウェアエラー生成器コンポーネントに関連付けられ、前記少なくとも1つのデータ線上に前記オンチップハードウェアエラー生成器によって挿入された前記データエラーパターンを制御するように構成された少なくとも1つの構成レジスタをさらに備える、C1に記載のデバイス。
[C4]
前記オンチップハードウェアエラー生成器コンポーネントは、前記少なくとも1つのデータ線上で伝送されるデータパケットのデータパケットヘッダを変更するように構成される、C1に記載のデバイス。
[C5]
前記オンチップハードウェアエラー生成器コンポーネントは、前記少なくとも1つのデータ線上に前記データエラーパターンをランダムに挿入するようにさらに構成される、C1に記載のデバイス。
[C6]
前記オンチップハードウェアエラー生成器コンポーネントは、集積回路(IC)のサブコンポーネントである、C1に記載のデバイス。
[C7]
前記少なくとも1つのエラーインサーション回路は、ハードウェアマルチプレクサ(MUX)を備える、C1に記載のデバイス。
[C8]
エラーハンドリングをテストするための方法であって、
ハードウェアエラー生成器コンポーネントを使用して、エラーシミュレーション入力を受信することと、
前記ハードウェアエラー生成器コンポーネントを使用して、前記ハードウェアエラー生成器コンポーネントに結合された少なくとも1つのデジタルデータ線上に挿入すべきデータエラーパターンを決定することと、
前記ハードウェアエラー生成器コンポーネントを使用して、エラー状態を生成するために有効な前記少なくとも1つのデジタルデータ線上に前記データエラーパターンを挿入することと、
を備える、方法。
[C9]
前記少なくとも1つのデジタルデータ線上に前記データエラーパターンを挿入することは、クロックカウントに少なくとも部分的に基づく、C8に記載の方法。
[C10]
構造化されたデータパケットの各データフィールドを特定するために有効な前記少なくとも1つのデジタルデータ線上で伝送している前記構造化されたデータパケットのフェーズを、それが前記少なくとも1つのデジタルデータ線上で伝送されているときにトラッキングすることと、
前記トラッキングされるフェーズに少なくとも部分的に基づいて、前記構造化されたデータパケットの少なくとも1つのフィールドに前記データエラーパターンを挿入することと、
をさらに備える、C8に記載の方法。
[C11]
前記少なくとも1つの制約は、トレーニングフィールドを備える、C10に記載の方法。
[C12]
前記データエラーパターンを挿入することは、物理(PHY)レイヤサブコンポーネントとSERializer/DESerializer(SERDES)サブコンポーネントとの間の通信に関連付けられたデータエラーパターンを挿入することを備える、C8に記載の方法。
[C13]
前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、周期的時間インターバルで前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することをさらに備える、C8に記載の方法。
[C14]
前記少なくとも1つのデジタルデータ線上に前記データエラーパターンを挿入することは、前記少なくとも1つのデジタルデータ線上で伝送された元のデータを前記データエラーパターンに散在させることをさらに備える、C8に記載の方法。
[C15]
エラーハンドリングをテストするための装置であって、
データパスに動作可能に結合された前記装置のオンチップサブコンポーネントと、
前記データパスに動作可能に結合されたオンチップハードウェアエラー生成器コンポーネントと、
を備え、前記オンチップハードウェアエラー生成器コンポーネントは、
エラーシミュレーション入力を受信するための手段と、
前記エラーシミュレーション入力に少なくとも部分的に基づいて、少なくとも1つのデータエラーパターンを決定するための手段と、
前記装置の前記オンチップサブコンポーネントにエラー状態を生成するために有効な前記データパス上に前記少なくとも1つのデータエラーパターンを挿入するための手段と、
を備える、装置。
[C16]
前記データパス上に前記少なくとも1つのデータエラーパターンを挿入するための手段は、前記装置の第2のオンチップサブコンポーネントから起きるデータを前記データエラーパターンに散在させるための手段を備える、C15に記載の装置。
[C17]
前記少なくとも1つのデータエラーパターンを決定するための手段は、いつ前記データパス上に前記少なくとも1つのデータエラーパターンを挿入すべきかに関連付けられたタイミングインサーション情報を決定するための手段をさらに備える、C15に記載の装置。
[C18]
前記オンチップサブコンポーネントは、通信プロトコルに関連付けられた物理(PHY)レイヤサブコンポーネントを備える、C15に記載の装置。
[C19]
前記装置は、ワイヤレスモデムに関連付けられた無線周波数(RF)集積回路(IC)を備える、C15に記載の装置。
[C20]
前記少なくとも1つのデータエラーパターンは、
高スタックビット、
低スタックビット、
ランダムビットフリップ、
前記データパス上の強制エラービット、
巡回冗長検査(CRC)フィールドエラー、
データパケットヘッダエラー、または、
トレーニングシーケンスデータエラー、
のうちの少なくとも1つに関連付けられたデータエラーパターンを備える、C15に記載の装置。
[C21]
エラーシミュレーション入力を受信するための手段は、前記少なくとも1つのデータエラーパターンを生成するための手段に関連付けられた少なくとも1つの構成レジスタをさらに備える、C15に記載の装置。
[C22]
前記データパス上に前記少なくとも1つのデータエラーパターンを挿入するための手段は、
マルチプレクサ(MUX)、または、
排他的OR(XOR)ゲート、
のうちの少なくとも1つを備える、C15に記載の装置。
[C23]
プロセッサ実行可能な命令を備える1つまたは複数のコンピュータ可読メモリデバイスであって、前記命令は、少なくとも1つのプロセッサによる実行に応答して、エミュレートされた集積回路(IC)の1つまたは複数のコンポーネントを使用してオンチップエラー生成をシミュレートするための動作を行い、前記動作は、
前記エミュレートされたICのオンチップハードウェアエラー生成器コンポーネントでエラーシミュレーション入力を受信することと、
前記エラーシミュレーション入力に少なくとも部分的に基づいて、データエラーパターンを決定することと、
前記少なくとも1つのデータ線に結合されている前記エミュレートされたICのサブコンポーネントにエラー状態を生成するために有効な前記オンチップハードウェアエラー生成器に結合された少なくとも1つのデータ線上に前記データエラーパターンを挿入することと、
を備える、1つまたは複数のコンピュータ可読メモリデバイス。
[C24]
前記データエラーパターンを決定することは、
高スタックビット、
低スタックビット、
ランダムビットフリップ、または、
前記データ線上の強制エラービット、
のうちの少なくとも1つに関連付けられたデータエラーパターンを決定することを備える、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C25]
前記エラーシミュレーション入力を受信することは、前記エミュレートされたICの前記オンチップハードウェアエラー生成器コンポーネントに関連付けられた構成レジスタを介して前記エラーシミュレーション入力を受信することを備える、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C26]
前記オンチップハードウェアエラー生成器に結合された前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、前記エミュレートされたICの前記サブコンポーネントに前記少なくとも1つのデータ線上で伝送されるデータパケットのデータパケットヘッダを変更することを備える、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C27]
エミュレートされたICの1つまたは複数のコンポーネントを使用してオンチップエラー生成をシミュレートするための前記動作は、エミュレートされたベースバンド回路ICの1つまたは複数のコンポーネントを使用することを備える、C26に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C28]
前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、周期的時間インターバルで前記少なくとも1つのデータ線上に前記データパターンを挿入することを備える、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C29]
前記エミュレートされたICのエラーハンドラコンポーネントでデータ入力を受信することと、
前記エラーハンドラコンポーネントを使用して前記データ入力における少なくともいくらかの破損されたデータを確認することと、
前記エミュレートされたICが動作を中断することを防ぐのに効果的な前記エラーハンドラコンポーネントを使用して、前記少なくともいくらかの破損されたデータに応答することと、
を備える動作を行うようにさらに構成された、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
[C30]
前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、いつ前記少なくとも1つのデータ線上に前記データエラーパターンを挿入すべきかを決定するために有効な前記少なくとも1つのデータ線を通じて伝送されているデータパケットのフェーズをトラッキングすることを備える、C23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
Claims (30)
- エラーハンドリングをテストするためのデバイスであって、
少なくとも1つのエラーインサーション回路と、
前記デバイス中の2つのサブコンポーネント間の少なくとも1つのデータ線に、前記少なくとも1つのエラーインサーション回路を介して結合されたオンチップハードウェアエラー生成器コンポーネントと、
を備え、前記オンチップハードウェアエラー生成器コンポーネントは、
エラーシミュレーション入力を受信し、
前記エラーシミュレーション入力に少なくとも部分的に基づいて、データエラーパターンを決定し、
エラー状態を生成するために有効な前記少なくとも1つのデータ線上に、前記少なくとも1つのエラーインサーション回路を介して、前記データエラーパターンを挿入する、
ように構成される、デバイス。 - 前記データエラーパターンは、
高スタックビット、
低スタックビット、
ランダムビットフリップ、または、
前記データ線上の強制エラービット、
のうちの少なくとも1つに関連付けられたデータエラーパターンを備える、請求項1に記載のデバイス。 - 前記オンチップハードウェアエラー生成器コンポーネントに関連付けられ、前記少なくとも1つのデータ線上に前記オンチップハードウェアエラー生成器によって挿入された前記データエラーパターンを制御するように構成された少なくとも1つの構成レジスタをさらに備える、請求項1に記載のデバイス。
- 前記オンチップハードウェアエラー生成器コンポーネントは、前記少なくとも1つのデータ線上で伝送されるデータパケットのデータパケットヘッダを変更するように構成される、請求項1に記載のデバイス。
- 前記オンチップハードウェアエラー生成器コンポーネントは、前記少なくとも1つのデータ線上に前記データエラーパターンをランダムに挿入するようにさらに構成される、請求項1に記載のデバイス。
- 前記オンチップハードウェアエラー生成器コンポーネントは、集積回路(IC)のサブコンポーネントである、請求項1に記載のデバイス。
- 前記少なくとも1つのエラーインサーション回路は、ハードウェアマルチプレクサ(MUX)を備える、請求項1に記載のデバイス。
- エラーハンドリングをテストするための方法であって、
ハードウェアエラー生成器コンポーネントを使用して、エラーシミュレーション入力を受信することと、
前記ハードウェアエラー生成器コンポーネントを使用して、前記ハードウェアエラー生成器コンポーネントに結合された少なくとも1つのデジタルデータ線上に挿入すべきデータエラーパターンを決定することと、
前記ハードウェアエラー生成器コンポーネントを使用して、エラー状態を生成するために有効な前記少なくとも1つのデジタルデータ線上に前記データエラーパターンを挿入することと、
を備える、方法。 - 前記少なくとも1つのデジタルデータ線上に前記データエラーパターンを挿入することは、クロックカウントに少なくとも部分的に基づく、請求項8に記載の方法。
- 構造化されたデータパケットの各データフィールドを特定するために有効な前記少なくとも1つのデジタルデータ線上で伝送している前記構造化されたデータパケットのフェーズを、それが前記少なくとも1つのデジタルデータ線上で伝送されているときにトラッキングすることと、
前記トラッキングされるフェーズに少なくとも部分的に基づいて、前記構造化されたデータパケットの少なくとも1つのフィールドに前記データエラーパターンを挿入することと、
をさらに備える、請求項8に記載の方法。 - 前記少なくとも1つの制約は、トレーニングフィールドを備える、請求項10に記載の方法。
- 前記データエラーパターンを挿入することは、物理(PHY)レイヤサブコンポーネントとSERializer/DESerializer(SERDES)サブコンポーネントとの間の通信に関連付けられたデータエラーパターンを挿入することを備える、請求項8に記載の方法。
- 前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、周期的時間インターバルで前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することをさらに備える、請求項8に記載の方法。
- 前記少なくとも1つのデジタルデータ線上に前記データエラーパターンを挿入することは、前記少なくとも1つのデジタルデータ線上で伝送された元のデータを前記データエラーパターンに散在させることをさらに備える、請求項8に記載の方法。
- エラーハンドリングをテストするための装置であって、
データパスに動作可能に結合された前記装置のオンチップサブコンポーネントと、
前記データパスに動作可能に結合されたオンチップハードウェアエラー生成器コンポーネントと、
を備え、前記オンチップハードウェアエラー生成器コンポーネントは、
エラーシミュレーション入力を受信するための手段と、
前記エラーシミュレーション入力に少なくとも部分的に基づいて、少なくとも1つのデータエラーパターンを決定するための手段と、
前記装置の前記オンチップサブコンポーネントにエラー状態を生成するために有効な前記データパス上に前記少なくとも1つのデータエラーパターンを挿入するための手段と、
を備える、装置。 - 前記データパス上に前記少なくとも1つのデータエラーパターンを挿入するための手段は、前記装置の第2のオンチップサブコンポーネントから起きるデータを前記データエラーパターンに散在させるための手段を備える、請求項15に記載の装置。
- 前記少なくとも1つのデータエラーパターンを決定するための手段は、いつ前記データパス上に前記少なくとも1つのデータエラーパターンを挿入すべきかに関連付けられたタイミングインサーション情報を決定するための手段をさらに備える、請求項15に記載の装置。
- 前記オンチップサブコンポーネントは、通信プロトコルに関連付けられた物理(PHY)レイヤサブコンポーネントを備える、請求項15に記載の装置。
- 前記装置は、ワイヤレスモデムに関連付けられた無線周波数(RF)集積回路(IC)を備える、請求項15に記載の装置。
- 前記少なくとも1つのデータエラーパターンは、
高スタックビット、
低スタックビット、
ランダムビットフリップ、
前記データパス上の強制エラービット、
巡回冗長検査(CRC)フィールドエラー、
データパケットヘッダエラー、または、
トレーニングシーケンスデータエラー、
のうちの少なくとも1つに関連付けられたデータエラーパターンを備える、請求項15に記載の装置。 - エラーシミュレーション入力を受信するための手段は、前記少なくとも1つのデータエラーパターンを生成するための手段に関連付けられた少なくとも1つの構成レジスタをさらに備える、請求項15に記載の装置。
- 前記データパス上に前記少なくとも1つのデータエラーパターンを挿入するための手段は、
マルチプレクサ(MUX)、または、
排他的OR(XOR)ゲート、
のうちの少なくとも1つを備える、請求項15に記載の装置。 - プロセッサ実行可能な命令を備える1つまたは複数のコンピュータ可読メモリデバイスであって、前記命令は、少なくとも1つのプロセッサによる実行に応答して、エミュレートされた集積回路(IC)の1つまたは複数のコンポーネントを使用してオンチップエラー生成をシミュレートするための動作を行い、前記動作は、
前記エミュレートされたICのオンチップハードウェアエラー生成器コンポーネントでエラーシミュレーション入力を受信することと、
前記エラーシミュレーション入力に少なくとも部分的に基づいて、データエラーパターンを決定することと、
前記少なくとも1つのデータ線に結合されている前記エミュレートされたICのサブコンポーネントにエラー状態を生成するために有効な前記オンチップハードウェアエラー生成器に結合された少なくとも1つのデータ線上に前記データエラーパターンを挿入することと、
を備える、1つまたは複数のコンピュータ可読メモリデバイス。 - 前記データエラーパターンを決定することは、
高スタックビット、
低スタックビット、
ランダムビットフリップ、または、
前記データ線上の強制エラービット、
のうちの少なくとも1つに関連付けられたデータエラーパターンを決定することを備える、請求項23に記載の1つまたは複数のコンピュータ可読メモリデバイス。 - 前記エラーシミュレーション入力を受信することは、前記エミュレートされたICの前記オンチップハードウェアエラー生成器コンポーネントに関連付けられた構成レジスタを介して前記エラーシミュレーション入力を受信することを備える、請求項23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
- 前記オンチップハードウェアエラー生成器に結合された前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、前記エミュレートされたICの前記サブコンポーネントに前記少なくとも1つのデータ線上で伝送されるデータパケットのデータパケットヘッダを変更することを備える、請求項23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
- エミュレートされたICの1つまたは複数のコンポーネントを使用してオンチップエラー生成をシミュレートするための前記動作は、エミュレートされたベースバンド回路ICの1つまたは複数のコンポーネントを使用することを備える、請求項26に記載の1つまたは複数のコンピュータ可読メモリデバイス。
- 前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、周期的時間インターバルで前記少なくとも1つのデータ線上に前記データパターンを挿入することを備える、請求項23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
- 前記エミュレートされたICのエラーハンドラコンポーネントでデータ入力を受信することと、
前記エラーハンドラコンポーネントを使用して前記データ入力における少なくともいくらかの破損されたデータを確認することと、
前記エミュレートされたICが動作を中断することを防ぐのに効果的な前記エラーハンドラコンポーネントを使用して、前記少なくともいくらかの破損されたデータに応答することと、
を備える動作を行うようにさらに構成された、請求項23に記載の1つまたは複数のコンピュータ可読メモリデバイス。 - 前記少なくとも1つのデータ線上に前記データエラーパターンを挿入することは、いつ前記少なくとも1つのデータ線上に前記データエラーパターンを挿入すべきかを決定するために有効な前記少なくとも1つのデータ線を通じて伝送されているデータパケットのフェーズをトラッキングすることを備える、請求項23に記載の1つまたは複数のコンピュータ可読メモリデバイス。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562222726P | 2015-09-23 | 2015-09-23 | |
US62/222,726 | 2015-09-23 | ||
US15/080,450 US9996439B2 (en) | 2015-09-23 | 2016-03-24 | Self-error injection technique for point-to-point interconnect to increase test coverage |
US15/080,450 | 2016-03-24 | ||
PCT/US2016/051092 WO2017053093A1 (en) | 2015-09-23 | 2016-09-09 | Self-error injection technique for point-to-point interconnect to increase test coverage |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018535580A true JP2018535580A (ja) | 2018-11-29 |
Family
ID=58282351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018514948A Pending JP2018535580A (ja) | 2015-09-23 | 2016-09-09 | テストカバレッジを増大するためのポイントツーポイント相互接続についての自己エラーインジェクション技法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9996439B2 (ja) |
EP (1) | EP3353934A1 (ja) |
JP (1) | JP2018535580A (ja) |
KR (1) | KR20180058769A (ja) |
CN (1) | CN108028733A (ja) |
BR (1) | BR112018005865A2 (ja) |
WO (1) | WO2017053093A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11025284B1 (en) * | 2018-06-14 | 2021-06-01 | Rockwell Collins, Inc. | Systems and methods for implementing user applications in software-defined radio devices |
US10922203B1 (en) | 2018-09-21 | 2021-02-16 | Nvidia Corporation | Fault injection architecture for resilient GPU computing |
WO2020188537A1 (en) * | 2019-03-20 | 2020-09-24 | Powermat Technologies Ltd., | Communication with wireless power transmitter |
CN111324948B (zh) * | 2020-02-10 | 2023-04-25 | 上海兆芯集成电路有限公司 | 模拟方法及模拟系统 |
US11947420B2 (en) * | 2021-12-15 | 2024-04-02 | Google Llc | Hardware memory error tolerant software system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63310246A (ja) * | 1987-06-12 | 1988-12-19 | Fujitsu Ltd | エラ−挿入回路 |
JPH0319038A (ja) * | 1989-06-16 | 1991-01-28 | Hitachi Ltd | データ送受信装置 |
JPH09237197A (ja) * | 1996-02-29 | 1997-09-09 | Toshiba Corp | 半導体集積回路装置 |
JP2001044960A (ja) * | 1999-07-28 | 2001-02-16 | Toyo Commun Equip Co Ltd | 時分割方向制御インタフェースにおけるエラー試験装置 |
US20040225932A1 (en) * | 2003-05-10 | 2004-11-11 | Hoda Sahir S. | Systems and methods for scripting data errors to facilitate verification of error detection or correction code functionality |
JP2008522494A (ja) * | 2004-11-24 | 2008-06-26 | クゥアルコム・インコーポレイテッド | 巡回冗長検査を実行するためのシステム及び方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7137048B2 (en) | 2001-02-02 | 2006-11-14 | Rambus Inc. | Method and apparatus for evaluating and optimizing a signaling system |
SE505322C2 (sv) | 1995-12-29 | 1997-08-04 | Ericsson Telefon Ab L M | Rutinkontroll av paritetsunderhåll |
US6000018A (en) * | 1997-06-17 | 1999-12-07 | Adaptec, Inc. | System for aligning control words for identifying boundaries of headerless data sectors using automatic incrementing and discarding of data frame numbers |
DE10130797A1 (de) * | 2001-06-26 | 2003-01-02 | Infineon Technologies Ag | Schnittstelle zur Datenübertragung |
KR100505664B1 (ko) * | 2003-01-07 | 2005-08-04 | 삼성전자주식회사 | 공정 중의 칩 상의 변화를 용이하게 모니터링할 수 있는스피드 비닝 테스트 회로를 구비한 반도체 장치, 및 그테스트 방법 |
US7234099B2 (en) * | 2003-04-14 | 2007-06-19 | International Business Machines Corporation | High reliability memory module with a fault tolerant address and command bus |
US7110420B2 (en) * | 2003-05-30 | 2006-09-19 | North Carolina State University | Integrated circuit devices having on-chip adaptive bandwidth buses and related methods |
US7426666B2 (en) * | 2004-05-18 | 2008-09-16 | Lucent Technologies Inc. | Noisy channel emulator for high speed data |
US8026726B2 (en) | 2009-01-23 | 2011-09-27 | Silicon Image, Inc. | Fault testing for interconnections |
US8386867B2 (en) | 2009-07-02 | 2013-02-26 | Silicon Image, Inc. | Computer memory test structure |
JP5544878B2 (ja) | 2009-12-25 | 2014-07-09 | 富士通株式会社 | 故障制御装置、プロセッサコア、演算処理装置、情報処理装置および擬似故障制御方法 |
US8694276B2 (en) | 2011-01-20 | 2014-04-08 | Texas Instruments Incorporated | Built-in self-test methods, circuits and apparatus for concurrent test of RF modules with a dynamically configurable test structure |
US9043665B2 (en) | 2011-03-09 | 2015-05-26 | Intel Corporation | Functional fabric based test wrapper for circuit testing of IP blocks |
CN102708087A (zh) * | 2011-03-28 | 2012-10-03 | 上海朝为电子科技有限公司 | 一种用于片上系统的单线调试接口协议 |
EP2833593A1 (en) * | 2012-03-29 | 2015-02-04 | Fujitsu Limited | Information processing device and information processing device control method |
US20140143588A1 (en) * | 2012-11-21 | 2014-05-22 | Nokia Corporation | Instant Communication Error Indication From Slave |
US9021325B2 (en) | 2013-02-07 | 2015-04-28 | Lsi Corporation | Classifying bit errors in transmitted run length limited data |
JP2016062130A (ja) * | 2014-09-16 | 2016-04-25 | 日本電気株式会社 | ネットワーク処理トレース装置、ネットワーク処理トレース方法、および、コンピュータ・プログラム |
-
2016
- 2016-03-24 US US15/080,450 patent/US9996439B2/en not_active Expired - Fee Related
- 2016-09-09 KR KR1020187011295A patent/KR20180058769A/ko active IP Right Grant
- 2016-09-09 BR BR112018005865A patent/BR112018005865A2/pt not_active Application Discontinuation
- 2016-09-09 WO PCT/US2016/051092 patent/WO2017053093A1/en active Application Filing
- 2016-09-09 EP EP16770838.7A patent/EP3353934A1/en not_active Withdrawn
- 2016-09-09 JP JP2018514948A patent/JP2018535580A/ja active Pending
- 2016-09-09 CN CN201680055082.7A patent/CN108028733A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63310246A (ja) * | 1987-06-12 | 1988-12-19 | Fujitsu Ltd | エラ−挿入回路 |
JPH0319038A (ja) * | 1989-06-16 | 1991-01-28 | Hitachi Ltd | データ送受信装置 |
JPH09237197A (ja) * | 1996-02-29 | 1997-09-09 | Toshiba Corp | 半導体集積回路装置 |
JP2001044960A (ja) * | 1999-07-28 | 2001-02-16 | Toyo Commun Equip Co Ltd | 時分割方向制御インタフェースにおけるエラー試験装置 |
US20040225932A1 (en) * | 2003-05-10 | 2004-11-11 | Hoda Sahir S. | Systems and methods for scripting data errors to facilitate verification of error detection or correction code functionality |
JP2008522494A (ja) * | 2004-11-24 | 2008-06-26 | クゥアルコム・インコーポレイテッド | 巡回冗長検査を実行するためのシステム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
US9996439B2 (en) | 2018-06-12 |
BR112018005865A2 (pt) | 2018-10-16 |
CN108028733A (zh) | 2018-05-11 |
EP3353934A1 (en) | 2018-08-01 |
US20170083422A1 (en) | 2017-03-23 |
WO2017053093A1 (en) | 2017-03-30 |
KR20180058769A (ko) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018535580A (ja) | テストカバレッジを増大するためのポイントツーポイント相互接続についての自己エラーインジェクション技法 | |
US8924805B2 (en) | Computer memory test structure | |
KR101696124B1 (ko) | 고성능 인터커넥트 물리 계층 | |
KR101614456B1 (ko) | 컴퓨터 메모리 디바이스들 및 직렬 io 포트들의 멀티-사이트 테스트 | |
US9971644B2 (en) | Serial I/O functional tester | |
US11255906B2 (en) | Test device and method with built-in self-test logic | |
US10541841B1 (en) | Hardware transmit equalization for high speed | |
US8724483B2 (en) | Loopback configuration for bi-directional interfaces | |
US10025746B2 (en) | High performance interconnect | |
Rangel-PatiÑo et al. | A holistic formulation for system margining and jitter tolerance optimization in industrial post-silicon validation | |
US8972806B2 (en) | Self-test design for serializer / deserializer testing | |
Wiecha et al. | Architecture and design of a Bluetooth low energy controller | |
Carvalho et al. | Enhancing I2C robustness to soft errors | |
US20100079149A1 (en) | Circuit testing apparatus and system | |
CN117112447B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
KR102376750B1 (ko) | 디버깅을 위한 네트워크를 포함하는 시스템 온 칩 | |
US11227089B2 (en) | System and method for implementing functional logics of verification IP using state design pattern based FSMs | |
Taube et al. | Fault tolerant implementation of a SpaceWire interface | |
CN114006834A (zh) | 高速信号设备调试方法及装置 | |
CN116822450A (zh) | 在验证训练流程时制造线上延迟的方法 | |
Majeed et al. | Verification of an Ad-hoc Serial Communication Protocol through Model-checking: A Case Study with Echo Sounder. | |
Chitti et al. | Reusable Verification Environment for Verification of Ethernet | |
Saponara et al. | A reusable pseudo-random verification environment for complex digital designs: The SpaceWire interface case study |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180905 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20181023 |