JP2009507299A - 決定性処理を遂行するシステム及び方法 - Google Patents
決定性処理を遂行するシステム及び方法 Download PDFInfo
- Publication number
- JP2009507299A JP2009507299A JP2008529161A JP2008529161A JP2009507299A JP 2009507299 A JP2009507299 A JP 2009507299A JP 2008529161 A JP2008529161 A JP 2008529161A JP 2008529161 A JP2008529161 A JP 2008529161A JP 2009507299 A JP2009507299 A JP 2009507299A
- Authority
- JP
- Japan
- Prior art keywords
- time
- execution
- execution time
- instructions
- deterministic
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Description
1.発明の分野
本発明は、一般的には処理に関し、より具体的には非決定性コンピュータシステムにおける処理に関する。
自動テストシステム(ATE)で成功の鍵を握るのは再現性である。再現可能テストシステムを得るということは、2つの同じデバイスにおける所定テストシーケンスの実行から同じ結果が出ることを意味する。したがって、もしもテストの対象となる全デバイスに適用される刺激が同じなら、そのテスト結果は信頼できるソースとしてデバイス品質の査定に用いることができる。「同じ」刺激とは、関係テスト条件(電圧、電流、温度、その他)の係数が同じであることを意味するばかりでなく、テスト条件が適用される相対的時間が同じであることをも意味する。
本発明の一態様によると、決定性処理を遂行するシステムが提供される。このシステムは、1つ以上の命令を実行するように構成される処理実体と、1つ以上の命令の実行時間を一定の値となるよう調整するように構成されるコンポーネントとを備える。一実施形態によると、コンポーネントは、実行時間を1つ以上の命令の最大実行時間となるよう調整するように構成されている。別の実施形態によると、コンポーネントは、1つ以上の命令の実行時間を、1つ以上の命令の複数の実行にわたって同じ一定値となるよう調整するように構成されている。別の実施形態によると、複数の実行は異なるコンピュータシステムで起こる。別の実施形態によると、異なるコンピュータシステムは異なる処理能力を有する。別の実施形態によると、コンポーネントは、1つ以上の命令の実行を所定の期間内に遂行するように構成されている。別の実施形態によると、コンポーネントは、実行時間を一定値に調整するためある期間にわたり待機するように構成されている。
本発明用途は、以降の説明に記載された、または図面に描かれた、構造の詳細とコンポーネントの配置とに限定されない。本発明はほかの実施形態が可能であり、様々な仕方で実践または遂行できる。また、ここで用いる言葉遣いと用語は説明を目的とするものであって、制限するものとみなすべきではない。ここでの「含む(including)」、「備える(comprising)」、または「有する(having)」、「包含する(containing)」、「含む(involving)」、ならびにこれらのバリエーションの使用は、後ろに続く品目とその同等物を、ならびに付加的品目を、網羅することを意味する。
(a)テストエンジニアが以降のテストステップの基準となる基準時間(例えば時間ゼロ(t0))として参照できる緩和点がある。
(b)基準時間(t0)を基準とする所定の相対的時間にテストステップを開始する決定性テストスケジューラがある。
超過しないことを確認するため検証を行うことができる。
本発明による様々な実施形態は1つ以上のコンピュータシステムで実装できる。これらのコンピュータシステムは、例えばIntel PENTIUM(登録商標)タイププロセッサ、Motorola PowerPC、AMD AthlonまたはTurion(登録商標)、Sun UltraSPARC、Hewlett−Packard PA−RISC(登録商標)プロセッサに、またはタイプの異なるその他のプロセッサに、基づく汎用コンピュータ等、汎用コンピュータであってよい。本発明の様々な実施形態による決定性処理を遂行するため、1つまたは複数のどんなタイプのコンピュータシステムでも使用することができることは理解されよう。さらに、システムは単一のコンピュータ上に位置してよく、あるいは通信ネットワークによって接続された複数のコンピュータに分散してよい。
タをコピーする。媒体と集積回路メモリ素子との間でデータ移動を管理するにあたっては様々なメカニズムが知られており、本発明はこれに限定されない。本発明は特定のメモリシステムまたはストレージシステムに限定されない。
層システムで、本発明の様々な態様を遂行できる。これらのコンポーネントは、通信プロトコル(例えばTCP/IP)を用いて通信ネットワーク(例えばインターネット)上で伝達される実行可能コード、中間コード(例えばIL)、またはインタープリタ型コード(例えばJava(登録商標))であってよい。
システムアーキテクチャ例
図2は、本発明の一実施形態によるシステム例のアーキテクチャ図を示す。図2が専ら例証用であること、そして本発明の1つ以上の態様を促進するためほかのアーキテクチャを使用することができることは理解されよう。
ばコンピュータ命令)の、最大実行時間は判定できる。最大実行時間は、例えばオペレーションの実行の直接的測定によって判定(例えば多数の実行にわたって判定)でき、あるいは公知の方法を用いて発見的に判定できる。あるコンピュータシステム(例えばコンピュータシステム200)によるオペレーションの実行が最大実行時間を超過しない場合、そのコンピュータシステムには決定的に作動することを強いることができる。
もしもオペレーション実行の時間に上限があるなら、オペレーション実行を一定の実行時間に強制することは可能である。
を判定する。例えば、1つ以上のオペレーションの最大実行時間を、測定により、発見的に、その他により、判定できる。ブロック303では1つ以上のオペレーションが実行され、経過時間の測定が行われる。ブロック304で、決定性エンジンはオペレーションの合計実行時間が一定値となるよう判定最大実行時間まで遅延する。プロセス300はブロック305で終わる。
CPU周波数の測定
一実施例において、プログラム可能タイマーは1.193181MHzの公知の固定カウント周波数を有する。もしもコンピュータプログラムがオペレーションの前後にタイマーカウンタを読み取ることができるなら、実行されるオペレーションの実行時間を判定することは可能である。オペレーションOの実行に費やされるタイマーカウント数をktとすると、そのオペレーションを実行する時間は次のとおりに判定される。
(a)タイムスタンプカウンタを読み取り、保存する。
(b)オペレーションOを実行する。
(c)保存したタイムスタンプカウンタへTmaxに等しいクロックサイクル数を加える。この値はkendと呼ぶことができる。
(d)タイムスタンプカウンタを読み取る。
(e)タイムスタンプカウンタの値がkendに満たない間は(d)へループする。
・等式(2)及び(3)に提示された誤差Eはステップ(a)、(c)、(d)、及び(e)によるものである。
・ステップ(d)及び(e)の実行にはある程度の時間がかかるため、このループは誤差Eに変動(ループ誤差)を引き起こすことがある。
・シーケンス(a)〜(e)はここで決定性オペレーションODと呼ぶ。
・オペレーション(a)及び(c)〜(e)はここで、決定性エンジンによって遂行される決定性エンベロープまたは関数と呼ぶ。
1.外部実体(例えば外部実体403)によって監視できるhold/go信号(例えば信号404)を、(例えば決定性エンジン406によって)生成する。
2.外部実体から待機要求(例えば信号405)を受け取る。この待機要求は、hold/go信号が状態を変えるまでの時間量を指示する。
3.要求された待機期間を時間単位からタイムカウント単位のそれに変換する。
4.時間基準から(例えばインターフェイスを介し)タイムカウント値を入手する
5.2つのタイムカウント値を用いてデルタタイム関数を適用し、2つのタイムカウント値の差に関連するタイムスパンを判定する。
6.次のとおりに定義された決定性ループアルゴリズムを実行する。
a.待機要求を受け取る
b.要求された期間をタイムカウント単位に変換する
c.hold/go信号をクリアする
d.初期タイムカウントを得る
e.デルタタイム結果が待機要求を上回るかこれに等しくなるまで(>=)、下のブロックを遂行する
{
Obtain a current time count
Apply delta time function to current−initial time count
}
Set hold/go signal
もしも逆デルタタイム関数を使用することができるなら、別の実施形態に従い決定性ループアルゴリズムの代替バージョンを下記のとおりに実装できる。
a.待機要求を受け取る
b.要求された期間をタイムカウント単位に変換する
c.hold/go信号をクリアする
d.逆デルタタイム関数を待機要求に適用する
e.逆デルタタイム結果>現在タイムカウントとなる間は下のブロックを遂行する
{
Obtain the current time count
}
Set hold/go signal
プロセッサにおける決定性ループアルゴリズムの実行にはある程度の時間量がかかり、この時間は、プロセッサがアルゴリズムをどれくらい速く実行できるかに左右される。この時間量はここで決定性ループアルゴリズムオーバーヘッドと呼ぶ。
中で要求される期間内にhold/go信号の状態を変えることは可能である。
基本的オペレーション
SMX_Timingは、インクルードファイル(例えばSMX_Timing.hxx)と支援DLL(例えばSMX_Timing.xyz、ここで「xyz」は、Windows(登録商標)プログラミング環境なら「dll」プログラムであり、INtimeプログラミング環境なら「rsl」プログラムである)として実装できる。インクルードファイルに包含されるクラス記述は、時間的に重要なメソッドの実装を(インラインメソッドとして)含む。DLLファイルは、クラス較正ルーチンを含むユーティリティメソッドを提供することができる。
SMX_Timingクラスメソッド
一実施形態によると、このクラスにおける時間的に重要なメソッドは、性能上の理由からアセンブリ言語でインライン関数として実装する。それらは単純であるため、主要なメソッドを以下に説明する。
SMX_Timing(void)
一実施形態によると、タイミングクラスで作成されるオブジェクトは独自の較正係数を含む。タイミングクラス構成子はグローバル較正係数をオブジェクトの中にコピーし、かくしてオブジェクトは、必要に応じてオブジェクト単位で修正できる。
SMX_U64 Start(void)
Startメソッドは現在のタイムスタンプカウンタを読み取り、そのカウンタ値をマーカー属性に保存する。このマーカー属性は、経過時間を計算するため(例えば、Elapsedメソッドと呼ばれるメソッドを使用)、または所定の時間が過ぎるまで待つため(例えば、WaitUntilメソッドと呼ばれるメソッドを使用)、基準として使用することができる。以下のコード例は説明した機能を実装する。
SMX_S64 Elapsed(void)
Elapsedメソッドは、現在のタイムスタンプと、Startメソッドが最後にコールされるまでにサンプリングされるタイムスタンプとの差を計算する。所望のオーバーヘッドの除去を可能にするためオプションの較正係数があってよい。以下のコード例はElapsedメソッドの実装を実証するものである。
SMX_U64 WaitUntil(SMX_U64 delta)
WaitUntilメソッドは、上述したwaste機能を実装するルーチンの一例である。このメソッド例は、Startメソッドが最後にコールされたときからのフォワードデルタを計算し、タイムスタンプが算出された終了時間に等しくなるかこれを超過するまでタイトループの中で待機する。
SMX_U64 WaitUntilEx(SMX_U64 delta)
WaitUntilメソッドとは対照的に、ここでWaitUntilExメソッドと呼ぶメソッド例は、時間の浪費を援助するためオペレーティングシステム(例えば、Windows(登録商標)またはINtimeオペレーティングシステム関数)を使用する。かかるメソッドを使用する開発者は長い待機時間を設け(例えば100ミリ秒)、マウスを動かす、ネットワーク上でパケットを交換する等、オペレーティングシステムに仕事をするための時間を与えつつ、消費時間のコントロールを維持することができる。上記のWaitUntilメソッド例を使用すると、適切なタイムスタンプを待つタイトループはCPUをロックし、見かけ上の活動はなくなり、ユーザにはCPUがハングしたような誤った印象を与える。
SMX_U64 Wait(SMX_U64 clks)
このメソッドは、例えば次のとおりに実装できる。
SMX_U64 WaitEx(SMX_U64 clks)
このメソッドは、例えば次のとおりに実装できる。
戻り値はWaitUntilExメソッドによって戻されるループ誤差である。
SMX_U64 GetElapsedCalFactor(void)
このメソッド例は、Elapsedメソッドによって較正係数として使用されるCPUクロックティック数を表す符号無し64ビット値を戻す。
void SetElapsedCalFactor(SMX_U64 newCF)
このメソッドは、Elapsedメソッドによって使用される較正係数を、パラメータとして渡される符号無し64ビット値に設定する。このパラメータには、CPUクロックティック数になることが見込まれる。
void ResetElapsedCalFactor(void)
ResetElapsedCalFactorメソッドは、Elapsedメソッドによって使用される本来の較正係数を回復させる。現在の較正係数は失われる。
SMX_U64 GetWaitUntilCalFactor(void)
このメソッドは、WaitUntilメソッドによって較正係数として使われるCPUクロックティック数を表す符合無し64ビット値を戻す。
void SetWaitUntilCalFactor(SMX_U64 newCF)
このメソッドは、WaitUntilメソッドによって使用される較正係数を、パラメータとして渡される符号無し64ビット値に設定する。このパラメータには、CPUクロックティック数になることが見込まれる。
void ResetWaitUntilCalFactor(void)
ResetWaitUntilCalFactorメソッドは、WaitUntilメソッドによって使用される本来の較正係数を回復させる。現在の較正係数は失われる。
SMX_U64 GetCPUFrequency(void)
この静的メソッドは、較正プロセスで判明するCPU周波数をヘルツ単位で戻す。戻り値は符号無し64ビット数である。
SMX_U64 GetKernelTickClk(void)
この静的メソッドGetKernelTickClkは、1カーネルティックに相当するCPUクロックティック数を表す符号無し64ビット数を戻す。Windows(登録商標)オペレーティングシステムにおけるカーネルティックは10msであり、INtime環境におけるカーネルティックは値100us、200us、250us、500us、1ms、2ms、5ms、及び10msのいずれかになる。
bool IsInitialized(void)
この静的メソッドは較正結果の検証に役立てることができる。較正に失敗するとクラスオブジェクトは常軌を逸した挙動を見せ、使用するべきではない。このメソッドは、最後の較正に問題がなければ真を戻し、さもなくば偽を戻す。
void Enable(void)
この静的メソッドはイネーブルされた属性を真に設定する。この属性は、WaitUntilメソッドがその機能をイネーブル/ディスエーブルするのに使用することができる。このメソッドはまた、INtime環境で実行する場合にカーネルスケジューラを停止させる。一実施形態によると、WaitUntilメソッドはデフォルトによりディスエーブルになる。
void Disable(void)
この静的メソッドは、イネーブルされた属性を偽にリセットする。この属性は、WaitUntilメソッドがその機能をイネーブル/ディスエーブルするのに使用することができる。詳細についてはWaitUntilメソッドの説明を参照せよ。このメソッドはまた、INtime環境で実行する場合にカーネルスケジューラを再起動する。一実施形態によると、WaitUntilメソッドはデフォルトによる。
bool IsEnabled(void)
この静的メソッドはWaitUntilメソッドの状態を確認し、もしもこれがイネーブルなら真を戻し、さもなくば偽を戻す。
SMX_U64 GetLoopError(void)
上記のWaitUntilメソッドのコード例で見てとれるように、行26〜29のループは、タイムスタンプカウンタが値(マーカー+デルタ−calfactor)に等しくなるか、またはループ誤差によりこれを超過すると直ちに終了する。WaitUntilメソッドは較正のときに様々なデルタパラメータ値で実行され、一連のループ誤差値をもたらす。
SMX_U64 GetWaitUntilOverhead(void)
このメソッドは、WaitUntilメソッドの実行にかかる最小実行時間として判明するCPUクロックティック数を表す符号無し64ビット値を戻す。
void DisableAllInterrupts(void)
この静的メソッドは全ての割り込みをディスエーブルし、現在イネーブルになっている割り込みを保存する。外的イベントが実行中プログラムの決定的挙動に支障をきたさないことを保証するのに役立てることができる。割り込みは、I/Oオペレーションやオペレーティングシステムコールの前にRestoreInterruptsメソッドを使って復元できる。
void RestoreInterrupts(void)
この静的メソッドは、上記のDisableAllInterruptsメソッドがコールされたときにアクティブだった割り込みをイネーブルする。
bool CalibrateTiming(void)
この静的メソッドは較正プロセスを実行し、ElapsedメソッドとWaitUntilメソッドとによって使用される較正係数と、CPU周波数とを判定する。このメソッドは、較正に成功した場合は真を戻し、さもなくば偽を戻す。
SMX_U64 Clk2Time(SMX_U64 clks, enum TimeUnits unit)
これは、CPUクロックティックを所定の時間単位に変換するために使用する静的メソッドである。使用可能な単位には、例えば秒(SEC)、ミリ秒(MILLISEC)、マイクロ秒(MICROSEC)、ナノ秒(NANOSEC)、ピコ秒(PICOSEC)がある。
SMX_U64 Time2Clk(SMX_U64 time, enum TimeUnits unit)
これは、所定の時間単位による時間をCPUクロックティックに変換するために使用する静的メソッドである。使用可能な単位には、例えば秒(SEC)、ミリ秒(MILLISEC)、マイクロ秒(MICROSEC)、ナノ秒(NANOSEC)、ピコ秒(PICOSEC)がある。
void FlushCaches(void)
これは、全てのキャッシュを消去するために使用する静的メソッドである。このメソッドは、ワーストケースシナリオを助長するためベンチマークの前に使用することができる。
決定性ドライバを作成するステップ例
決定性ドライバの作成は概して多数の時間測定を要するプロセスであり、概して時間のかかる作業である。露出するAPIは、様々なパラメータで実行されているときに計時しなければならない。決定性ドライバの設計にあたってソフトウェア開発者を支援するため、これよりいくつかのガイドラインを含む決定性ドライバ作成プロセスを説明する。
ステップ1−アルゴリズムの選択
ドライバの記述者は開発過程でアルゴリズムの選択に細心の注意を払わなければならない。決定性ドライバの作成にあたっては、変動を補償するためその実行時間にある程度の「クッション」を加えることになるため、安定的で高速のアルゴリズムを選ぶことが大切
である。
ステップ2−実行時間の解析
アルゴリズムを慎重に選んだら、今度はその入力パラメータに応じた実行時間を解析する。以下の2つの実施例は、APIの入力がその実行時間にどう影響するかを示すものである。
ステップ3−ベンチマーク
残念ながら、関数の実行時間を判断するにあたって関数挙動の単純な論理的解析では不十分である。他方、適切なベンチマークプロシージャを設計するにあたって解析は重要である。前の節で示したとおり、単純関数の刺激を変える必要はないが、複雑関数にはその必要がある。数通りのサンプルベンチマークルーチンを以下に記す。
単純関数のベンチマーク
単純関数のベンチマークは以下に記すようなルーチンによって遂行できる。入力パラメータは重要でないから、有効なパラメータならどれでも選択できることに注意されたい。
タ)を消去する。行6及び12は、関数func1と行8、9、及び10によって形成されるその決定性エンベロープを実行する時間を測定する。T0が、行8、9、及び10によって形成される決定性オペレーションODによって費やされる合計時間を測定する点に注意されたい。
複雑関数のベンチマーク
複雑関数のベンチマークは予想どおり、より複雑である。上記の関数例func2では2次元行列を作成する必要がある。一方の次元は入力値(x値)を表し、他方の次元は特定の入力値(固定x)で抽出されるサンプルを表す。func2はただひとつの従属関係(xパラメータ)を持つから、2つの次元を持つ行列を作成できる。一般的に、各従属変数につき1つの次元が作成され、もうひとつは全ての変数が固定された場合に抽出されるサンプルのために作成される。関数func2のベンチマークルーチンの実施例を以下に示す。
ステップ4−タイミング表の組み立て
SMXアーキテクチャでは全てのドライバが少なくとも1つのタイミング表を有する。理論上は、顧客へ出荷される異なるコンピュータごとに1つのタイミング表を作成しなければならない。
一実施形態による決定性エンジンの一用途は、時間の点で本質的に非決定性であるシステムで決定性の挙動を提供することである。説明したとおり、Intel PENTIUM(登録商標)クラスのプロセッサを使用するコンピュータシステムは本質的に非決定性である。PENTIUM(登録商標)プロセッサは数レベルのパイプラインと、分岐予測アルゴリズムと、内部キャッシュメモリとを使用するため、命令セットの実行時間はプロセッサの現在の「コンテキスト」に左右される(つまり、各々のパイプラインレベルで復号化されている命令は何か、内部キャッシュメモリの内容と配置、その他)。このため、命令セットの正確な実行時間を演繹的に決定することはできない。決定できるのは最大実行時間である。このため、PENTIUM(登録商標)タイプのプロセッサに基づくシステムは予測可能ではあるが決定性ではない。
形(アナログ)及び混合信号デバイステストの場合に見られる共通の特色である。かかるシステムではいくつかの異なる入力がテスト対象デバイス(DUT)に提供され、それらの入力に対するDUTの応答を測定する。こうして得た測定値に基づきDUTは機能可能と、または欠陥ありと、判断される。線形及び混合信号デバイスはアナログ信号を生成し、これを測定しなければならないから、測定を行う正確な時点が極めて重要となる。
Claims (34)
- 決定性処理を遂行するシステムであって、
1つ以上の命令を実行するように構成される処理実体と、
前記1つ以上の命令の実行時間を一定値となるよう調整するように構成されるコンポーネントとを備える、システム。 - 前記コンポーネントは、前記1つ以上の命令の最大実行時間を調整するように構成される、請求項1に記載のシステム。
- 前記コンポーネントは、前記1つ以上の命令の前記実行時間を前記1つ以上の命令の複数の実行にわたって同じ一定値となるよう調整するように構成される、請求項1に記載のシステム。
- 前記複数の実行は、異なるコンピュータシステムで起こる、請求項3に記載のシステム。
- 前記異なるコンピュータシステムは、異なる処理能力を有する、請求項4に記載のシステム。
- 前記コンポーネントは、前記1つ以上の命令の実行を所定の期間内に遂行するように構成される、請求項1に記載のシステム。
- 前記コンポーネントは、前記実行時間を前記一定値に調整するためある期間にわたり待機するように構成される、請求項1に記載のシステム。
- 時間基準をさらに備え、前記コンポーネントは前記時間基準を用いて相対的時間を判定するように構成される、請求項7に記載のシステム。
- 前記コンポーネントは、プロセッササイクルのカウンタ値に基づき相対的時間を判定するように構成される、請求項8に記載のシステム。
- 前記時間基準はインターフェイスを含み、前記コンポーネントは前記インターフェイスを通じて処理サイクルのカウンタを入手するように構成される、請求項8に記載のシステム。
- 前記コンポーネントは、前記1つ以上の命令の実行に使われる時間量を判定するように構成されており、且つ前記実行時間を前記一定値に調整するためある期間にわたり待機するように構成される、請求項1に記載のシステム。
- 前記コンポーネントは、複数のカウンタ値に基づき経過時間を判定するように構成される、請求項9に記載のシステム。
- 前記カウンタ値は、プロセッサのタイムスタンプカウンタである、請求項9に記載のシステム。
- 前記プロセッサは、PENTIUM(登録商標)タイプのプロセッサである、請求項13に記載のシステム。
- 前記システムは、自動テストシステムの一部である、請求項1に記載のシステム。
- 決定性処理を遂行するためにコンピュータ実装される方法であって、
コンピュータシステムで1つ以上の命令を実行する動作と、
実行する前記動作の実行時間を測定する動作と、
前記実行時間を一定値に調整するためある期間にわたり待機する動作とを備える、方法。 - ある期間にわたり待機する前記動作は、実行する前記動作の後に前記一定値の実行時間が経過するまである期間にわたり待機することを含む、請求項16に記載の方法。
- 前記1つ以上の命令の実行を測定する動作と、測定する前記動作に基づき前記1つ以上の命令の最大実行時間を判定する動作とをさらに備える、請求項16に記載の方法。
- 前記一定値を前記最大実行時間に設定する動作をさらに備える、請求項18に記載の方法。
- 前記1つ以上の命令の最大実行時間を判定する動作をさらに備える、請求項16に記載の方法。
- 前記一定値を前記最大実行時間に設定する動作をさらに備える、請求項20に記載の方法。
- 前記1つ以上の命令の前記実行時間を前記1つ以上の命令の複数の実行にわたって同じ一定値となるよう調整する動作をさらに備える、請求項16に記載の方法。
- 前記複数の実行は、異なるコンピュータシステムで起こる、請求項22に記載の方法。
- 前記異なるコンピュータシステムは、異なる処理能力を有する、請求項16に記載の方法。
- コンピュータシステムで1つ以上の命令を実行する前記動作を所定の期間内に遂行する動作をさらに備える、請求項16に記載の方法。
- 前記実行時間を前記一定値に調整するためある期間にわたり待機する動作をさらに備える、請求項16に記載の方法。
- 相対的時間を判定する動作をさらに備える、請求項16に記載の方法。
- 時間基準を提供する動作と、前記時間基準を用いて前記相対的時間を判定する動作とをさらに備える、請求項27に記載の方法。
- プロセッササイクルのカウンタ値に基づき前記相対的時間を判定する動作をさらに備える、請求項27に記載の方法。
- 前記1つ以上の命令の実行に使われる時間量を判定する動作と、前記実行時間を前記一定値に調整するためある期間にわたり待機する動作とをさらに備える、請求項16に記載の方法。
- 複数のカウンタ値に基づき経過時間を判定する動作をさらに備える、請求項16に記載の方法。
- 前記カウンタ値は、プロセッサのタイムスタンプカウンタである、請求項16に記載の方法。
- 前記プロセッサは、PENTIUM(登録商標)タイプのプロセッサである、請求項32に記載の方法。
- 自動テストシステムによって遂行される、請求項16に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/218,915 US8074059B2 (en) | 2005-09-02 | 2005-09-02 | System and method for performing deterministic processing |
PCT/US2006/033511 WO2007027595A2 (en) | 2005-09-02 | 2006-08-29 | System and method for performing deterministic processing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009507299A true JP2009507299A (ja) | 2009-02-19 |
JP2009507299A5 JP2009507299A5 (ja) | 2009-11-05 |
Family
ID=37809407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008529161A Pending JP2009507299A (ja) | 2005-09-02 | 2006-08-29 | 決定性処理を遂行するシステム及び方法 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8074059B2 (ja) |
EP (1) | EP1922611A2 (ja) |
JP (1) | JP2009507299A (ja) |
KR (1) | KR20080100330A (ja) |
CN (1) | CN101278259A (ja) |
TW (1) | TW200720968A (ja) |
WO (1) | WO2007027595A2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8074059B2 (en) | 2005-09-02 | 2011-12-06 | Binl ATE, LLC | System and method for performing deterministic processing |
US8370537B2 (en) * | 2008-09-07 | 2013-02-05 | EADS North America, Inc. | Trigger router and test system including the trigger router |
US8700943B2 (en) * | 2009-12-22 | 2014-04-15 | Intel Corporation | Controlling time stamp counter (TSC) offsets for mulitple cores and threads |
US20110191675A1 (en) * | 2010-02-01 | 2011-08-04 | Nokia Corporation | Sliding input user interface |
US9572648B2 (en) | 2010-12-21 | 2017-02-21 | Justin M. Crank | Implantable slings and anchor systems |
US8910188B1 (en) | 2011-07-14 | 2014-12-09 | Google Inc. | Deterministic data processing |
US9111072B1 (en) * | 2011-08-23 | 2015-08-18 | Tectonic Labs, LLC | Anti-reverse engineering unified process |
EP2798499B1 (en) | 2011-12-27 | 2020-11-18 | Intel Corporation | Methods and apparatus to manage workload memory allocation |
US9348359B2 (en) * | 2013-01-31 | 2016-05-24 | Red Hat, Inc. | Updating a desired tick rate for a kernel |
CN103530227B (zh) * | 2013-09-24 | 2016-02-17 | 福建星云电子股份有限公司 | 一种开放式脚本编程*** |
CN104572383B (zh) * | 2014-11-28 | 2017-05-03 | 深圳市芯海科技有限公司 | 一种基于ate的mcu/soc芯片的测试方法 |
WO2017046865A1 (ja) * | 2015-09-15 | 2017-03-23 | 株式会社ワコム | タッチ検出方法、タッチ検出装置、及びタッチセンサコントローラ |
DE102015226249A1 (de) * | 2015-12-21 | 2017-06-22 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zum Bereitstellen einer Mehrzahl von reproduzierbaren Werten |
CN107665159B (zh) * | 2016-07-27 | 2022-07-12 | 上海华虹集成电路有限责任公司 | 安全处理器跳转指令固定执行时间的测试方法 |
DE102017109239A1 (de) * | 2017-04-28 | 2018-10-31 | Ilnumerics Gmbh | Computerimplementiertes verfahren, computerlesbares medium und heterogenes rechnersystem |
DE102020118563A1 (de) * | 2019-07-17 | 2021-01-21 | Steering Solutions Ip Holding Corporation | Middleware-system und -verfahren |
KR102348256B1 (ko) * | 2020-05-11 | 2022-01-07 | 한국과학기술원 | 정형 검증을 이용한 i/o 커널 구현의 강화 |
US11726817B2 (en) | 2020-09-25 | 2023-08-15 | Red Hat, Inc. | Scheduling multiple processes with varying delay sensitivity |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03189823A (ja) * | 1989-12-20 | 1991-08-19 | Fujitsu Ltd | 命令実行方式 |
JPH04205028A (ja) * | 1990-11-29 | 1992-07-27 | Toshiba Corp | プログラマブルウェイト信号生成装置 |
JPH0573296A (ja) * | 1991-09-13 | 1993-03-26 | Nec Ic Microcomput Syst Ltd | マイクロコンピユータ |
JPH05233277A (ja) * | 1992-02-21 | 1993-09-10 | Fujitsu Ltd | マイクロプロセッサ |
JP2000330785A (ja) * | 1999-05-18 | 2000-11-30 | Sharp Corp | 実時間プロセッサおよび命令実行方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3810119A (en) * | 1971-05-04 | 1974-05-07 | Us Navy | Processor synchronization scheme |
US4733353A (en) * | 1985-12-13 | 1988-03-22 | General Electric Company | Frame synchronization of multiply redundant computers |
US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
US5636367A (en) * | 1991-02-27 | 1997-06-03 | Vlsi Technology, Inc. | N+0.5 wait state programmable DRAM controller |
JPH0773059A (ja) * | 1993-03-02 | 1995-03-17 | Tandem Comput Inc | フォールトトレラント型コンピュータシステム |
US5802360A (en) * | 1996-05-01 | 1998-09-01 | Lucent Technologies Inc. | Digital microprocessor device having dnamically selectable instruction execution intervals |
US5987598A (en) * | 1997-07-07 | 1999-11-16 | International Business Machines Corporation | Method and system for tracking instruction progress within a data processing system |
US6230263B1 (en) * | 1998-09-17 | 2001-05-08 | Charles P. Ryan | Data processing system processor delay instruction |
US6336191B1 (en) * | 1999-03-08 | 2002-01-01 | International Business Machines Corporation | Method and system for clock compensation in instruction level tracing in a symmetrical multi-processing system |
US7426629B2 (en) * | 2002-12-12 | 2008-09-16 | Arm Limited | Processing activity masking in a data processing system |
US8074059B2 (en) | 2005-09-02 | 2011-12-06 | Binl ATE, LLC | System and method for performing deterministic processing |
-
2005
- 2005-09-02 US US11/218,915 patent/US8074059B2/en active Active
-
2006
- 2006-08-29 TW TW095131693A patent/TW200720968A/zh unknown
- 2006-08-29 JP JP2008529161A patent/JP2009507299A/ja active Pending
- 2006-08-29 KR KR1020087008045A patent/KR20080100330A/ko not_active Application Discontinuation
- 2006-08-29 EP EP06790032A patent/EP1922611A2/en not_active Withdrawn
- 2006-08-29 WO PCT/US2006/033511 patent/WO2007027595A2/en active Application Filing
- 2006-08-29 CN CNA2006800365837A patent/CN101278259A/zh active Pending
-
2011
- 2011-11-10 US US13/373,359 patent/US8719556B2/en active Active
-
2014
- 2014-05-06 US US14/270,636 patent/US9189239B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03189823A (ja) * | 1989-12-20 | 1991-08-19 | Fujitsu Ltd | 命令実行方式 |
JPH04205028A (ja) * | 1990-11-29 | 1992-07-27 | Toshiba Corp | プログラマブルウェイト信号生成装置 |
JPH0573296A (ja) * | 1991-09-13 | 1993-03-26 | Nec Ic Microcomput Syst Ltd | マイクロコンピユータ |
JPH05233277A (ja) * | 1992-02-21 | 1993-09-10 | Fujitsu Ltd | マイクロプロセッサ |
JP2000330785A (ja) * | 1999-05-18 | 2000-11-30 | Sharp Corp | 実時間プロセッサおよび命令実行方法 |
Also Published As
Publication number | Publication date |
---|---|
US9189239B2 (en) | 2015-11-17 |
EP1922611A2 (en) | 2008-05-21 |
US20070055846A1 (en) | 2007-03-08 |
WO2007027595A2 (en) | 2007-03-08 |
CN101278259A (zh) | 2008-10-01 |
US8074059B2 (en) | 2011-12-06 |
WO2007027595A3 (en) | 2007-10-11 |
US20120159131A1 (en) | 2012-06-21 |
TW200720968A (en) | 2007-06-01 |
US8719556B2 (en) | 2014-05-06 |
KR20080100330A (ko) | 2008-11-17 |
US20150012733A1 (en) | 2015-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009507299A (ja) | 決定性処理を遂行するシステム及び方法 | |
Tsai et al. | Nvbitfi: Dynamic fault injection for gpus | |
Sridharan et al. | Eliminating microarchitectural dependency from architectural vulnerability | |
US7546598B2 (en) | Measuring software system performance using benchmarks | |
Sridharan et al. | Using hardware vulnerability factors to enhance AVF analysis | |
US6374369B1 (en) | Stochastic performance analysis method and apparatus therefor | |
US6658471B1 (en) | Method and system for zero overhead software performance measurement instrumentation | |
US8898049B2 (en) | System level power profiling of embedded applications executing on virtual multicore system-on-chip platforms | |
US20130159977A1 (en) | Open kernel trace aggregation | |
KR20130008035A (ko) | 에러 마스킹 팩터를 결정하기 위한 후방 방향 분석의 개선 | |
Villa et al. | Need for speed: Experiences building a trustworthy system-level gpu simulator | |
US6807522B1 (en) | Methods for predicting instruction execution efficiency in a proposed computer system | |
US6651153B1 (en) | Methods for predicting cache memory performance in a proposed computer system | |
Djupdal et al. | Lynsyn and LynsynLite: The STHEM power measurement units | |
US7100027B1 (en) | System and method for reproducing system executions using a replay handler | |
Kästner et al. | Confidence in timing | |
US6493841B1 (en) | Method and apparatus for determining expected values during circuit design verification | |
Busnot et al. | Standard-compliant parallel SystemC simulation of loosely-timed transaction level models: From baremetal to Linux-based applications support | |
Cioroaica et al. | Accelerated simulated fault injection testing | |
González et al. | Multicore shared memory interference analysis through hardware performance counters | |
Chopey et al. | The model of software execution time remote testing | |
Ferdinand et al. | Integration of code-level and system-level timing analysis for early architecture exploration and reliable timing verification | |
Schaelicke et al. | Profiling I/O interrupts in modern architectures | |
Zoubek et al. | Overview of worst case execution time analysis in single-and multicore environments | |
Reischer et al. | Bio-algebras |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090109 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090827 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090909 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120626 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120627 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121211 |