JP2007501977A - イベントのタイムスタンプ - Google Patents

イベントのタイムスタンプ Download PDF

Info

Publication number
JP2007501977A
JP2007501977A JP2006522597A JP2006522597A JP2007501977A JP 2007501977 A JP2007501977 A JP 2007501977A JP 2006522597 A JP2006522597 A JP 2006522597A JP 2006522597 A JP2006522597 A JP 2006522597A JP 2007501977 A JP2007501977 A JP 2007501977A
Authority
JP
Japan
Prior art keywords
event
time stamp
stream
detected event
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006522597A
Other languages
English (en)
Inventor
ルキアノフ,ドミトリー
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2007501977A publication Critical patent/JP2007501977A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Electric Clocks (AREA)
  • Debugging And Monitoring (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Computer And Data Communications (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Plural Heterocyclic Compounds (AREA)
  • Chemical And Physical Treatments For Wood And The Like (AREA)
  • Quinoline Compounds (AREA)

Abstract

イベントをタイムスタンプする機械読取可能媒体、方法及び装置である。一実施例では、タイムスタンプ回路は、割り込み信号、仲裁信号等のような関心のあるイベントを検出してもよい。このようなイベントを検出したことに応じて、タイムスタンプ回路はイベントのタイムスタンプを格納してもよい。プロセッサのような要求側は、後にイベントのタイムスタンプについてタイムスタンプ回路に要求してもよい。要求側は、受信したタイムスタンプに基づいて、このようなイベントの生成に関連する処理レートを調整してもよい。

Description

コンピュータ装置は、汎用の非リアルタイム型コンピュータから、デジタル処理タスクを実行するメインプロセッサを有するリアルタイム型処理装置に進化している。現在のコンピュータ装置では、例えばキャッシュメモリや遅延割り込み処理や共有リソースのような要素の組み合わせによって、これらの装置での処理時間をかなり可変且つ予測不能にしている。例えば、一般的なプログラムループの最初の通過は、キャッシュ充填サイクルのため、同じプログラムループの以後の通過より10〜50倍を要することがある。しかし、従来のストリーム処理は、高品質の結果を実現するために、一般的に予測可能且つ実質的に不変の処理時間を要求する。
ここに記載する本発明は、一例として示されており、決して添付図面に限定されない。説明の簡略化及び明瞭性のため、図面の要素は必ずしも縮尺通りに図示されていない。例えば、明瞭にするために、ある要素の大きさは他の要素に比較して強調されていることがある。更に、適切であると考えられる場合には、対応する要素又は類似の要素を示すために、参照ラベルが図面で繰り返して使用されている。
以下の説明は、とりわけストリーム(例えば、オーディオストリーム、ビデオストリーム及び/又はデータストリーム)を処理するのに有用になり得るイベント処理技術について記載している。以下の説明では、ロジック実装、オペコード、オペランドを特定する手段、リソース分割/共有/複製の実装、システム構成要素の形式及び相互関係、並びにロジック分割/統合の選択肢のように、本発明の完全なる理解を提供するために多数の特定の詳細が示されている。しかし、本発明はこのような特定の詳細を用いずに実行されてもよいことが、当業者にわかる。その他に、制御構造、ゲートレベル回路及び全ソフトウェア命令シーケンスは、本発明をあいまいにしないように、詳細には示されていない。当業者は、含まれる説明を用いて、必要以上の実験を行わずに適切な機能を実装することができる。
明細書における“一実施例”、“実施例”、“例示的な実施例”等への参照は、記載されている実施例が特定の機能、構造又は特徴を含んでもよいが、必ずしも全ての実施例が特定の機能、構造又は特徴を含む必要がないことを示す。更に、このような用語は必ずしも同じ実施例を示しているとは限らない。更に、特定の機能、構造又は特徴が実施例に関連して記載されている場合、明示的に記載されていても記載されていなくても、そのような機能、構造又は特徴が他の実施例に関連して実施されることは、当業者の認識範囲であることがわかる。
本発明の実施例は、ハードウェア、ファームウェア、ソフトウェア又はその何らかの組み合わせで実装され得る。本発明の実施例はまた、機械読取可能媒体に格納されている命令として実装されてもよい。その機械読取可能媒体は1つ以上のプロセッサに読み取られて実行されてもよい。機械読取可能媒体は、機械(例えばコンピュータ装置)によって読取可能な形式で情報を格納又は送出する如何なる機構を有してもよい。例えば、機械読取可能媒体は、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、電気・光・音響又は他の形式の伝搬信号(例えば、搬送波、赤外線信号、デジタル信号等)等を有してもよい。更に、ファームウェア、ソフトウェア、ルーチン、命令は、特定の動作を実行するものとしてここで記述され得る。しかし、このような記述は単に便宜上のものであり、実際にこのような動作はファームウェア、ソフトウェア、ルーチン、命令等を実行するコンピュータ装置、プロセッサ、コントローラ、又は他の装置から生じる。
タイムスタンプ回路102を有するコンピュータ装置100の実施例が図1に図示されている。図示のように、コンピュータ装置100は、1つ以上のプロセッサ104を有してもよい。プロセッサ104は、オペレーティングシステム106、アプリケーション108、デバイスドライバ110、基本入出力システム(BIOS)ファームウェア112及び/又はその他のソフトウェア若しくはファームウェアモジュールの命令の実行に応じて、動作を実行してもよい。
コンピュータ装置100は、プロセッサバスを介してプロセッサ104に結合されているチップセット114を更に有してもよい。チップセット114は、プロセッサ104をコンピュータ装置100の他の構成要素(メモリ116等)に結合する1つ以上の集積回路パッケージ又はチップを有してもよい。メモリ116は、読み取り及び/又は書き込み可能なアドレス可能な記憶装置の位置を有するメモリ装置(図示せず)を有してもよい。メモリ装置は、例えば、RAM(ランダムアクセスメモリ)装置、SRAM(スタティックRAM)装置、DRAM(ダイナミックRAM)装置、SDRAM(シンクロナスDRAM)装置、DDR(double data rate)SDRAM装置等のような1つ以上の揮発性メモリ形式を有してもよい。メモリ装置は、例えば、フラッシュメモリ装置、ROM(読取専用メモリ)装置、PROM(プログラム可能読取専用メモリ)装置、EPROM(消去可能PROM)装置、EEPROM(電子消去可能PROM)装置、強誘電性メモリ装置、バッテリ補助メモリ装置等のような1つ以上の不揮発性メモリ形式を更に有してもよい。
チップセット114は、プロセッサ104をBIOSファームウェア112に更に結合してもよい。BIOSファームウェアは、プロセッサ104とチップセット114とコンピュータ装置100の他の構成要素とを初期化するために、コンピュータ装置100がシステム開始中に実行し得るルーチンを有してもよい。更に、BIOSファームウェア112は、コンピュータ装置100がコンピュータ装置100の1つ以上の構成要素と通信するように実行し得るルーチン又はドライバを有してもよい。
チップセット114は、1つ以上のバス124を介して、1つ以上のメディア装置118、ネットワークインタフェース120及び/又は他のI/O装置122にプロセッサ104を更に結合してもよい。メディア装置は、オーディオ/ビデオ再生装置、オーディオ/ビデオ取得装置、オーディオ/ビデオ転送装置等を有してもよい。ネットワークインタフェース120は、LAN(ローカルエリアネットワーク)コントローラ、モデム、及び/又は、他のコンピュータ装置、サーバ及び/又は他のネットワーク可能装置への通信リンクをコンピュータ装置100に提供する無線ネットワークコントローラを有してもよい。更に、I/O装置122は、マウス、キーボード、ビデオコントローラ、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ等を有してもよい。
図示のように、バス124は、1つ以上のメディア装置118、ネットワークインタフェース120及び/又はI/O装置122との間で共有されてもよい。従って、コンピュータ装置100は、共有バス124にアクセスを割り当てる仲裁機構を有してもよい。一実施例では、コンピュータ装置100は、バスを共有する装置118、120、122から要求信号又はメッセージを受領し、共有バス124への1つの要求側装置118、120、122のアクセス又は所有権を認める許可信号又はメッセージを生成するアービター126を有してもよい。図示のように、チップセット114は、共有バス124用のアービター126を有してもよい。しかし、一実施例では、アービター126は、チップセット114の外部でもよい。更に、コンピュータ装置100は、共有バス124用の中央アービター126を用いずに実装されてもよい。このような実施例では、装置118、120、122は、装置118、120、122が共有バス124の所有権を取得するように装置間で仲裁することを生じる信号を生成してもよい。
更に、チップセット144は、装置118、120、122から割り込みイベント(例えば、信号、メッセージ)を受領し、処理用のプロセッサ104に割り込みイベントを送出する割り込みコントローラ127を有してもよい。特に、割り込みコントローラ127は、1つ以上の割り込みイベントの発生を検出し、検出された割り込みイベント毎に関連する優先度に基づいた順序で、検出された割り込みイベントをプロセッサ104に送出してもよい。
図1及び2を参照すると、チップセット114は、イベント・タイムスタンプ回路102を更に有してもよい。しかし、他の実施例では、タイムスタンプ回路は、アービター126、割り込みコントローラ127又はチップセット114と別の構成要素に組み込まれてもよい。タイムスタンプ回路102は、基準クロック128から基準クロック信号を受信し、基準クロック信号に応じてローカルカウント130を定期的に更新してもよい。タイムスタンプ回路102は、ローカルカウント130に基づくタイムスタンプ132を用いてイベントを更にスタンプしてもよい。要求側(例えばプロセッサ104)は、イベントが生じた時の比較的正確な表示を取得するために、後にタイムスタンプ回路102からイベントのタイムスタンプ132を要求してもよい。タイムスタンプ回路102をイベントのソース(例えば、装置118、120、122及びアービター126)の近くに置くことにより、イベントが生じた時とイベントがタイムスタンプ回路102により検出されてスタンプされた時との間に、ほとんど遅延が取り込まれない。更に、イベントのソースとタイムスタンプ回路102との間の構成要素及び共有リソースを小さくすればするほど、イベント間で取り込まれる遅延が小さく変化し得る。従って、プロセッサ104が2つ以上のイベントの発生の間の非常に正確な時間差を決定し得るコンピュータ装置100が実装され得る。
図2に示すように、タイムスタンプ回路102は、カウンタ134と、コントローラ136と、イベント格納装置138と、インタフェース140とを有してもよい。カウンタ134は、例えば27MHzのような基準周波数を有する基準クロック信号を受信するために、基準クロック128に結合されてもよい。更に、カウンタ134は、基準クロック信号の各サイクルに応じて、そのカウント130を更新し得る32ビットのロールオーバーカウンタ(32-bit roll over counter)として実装されてもよい。
コントローラ136は、メディア装置118、ネットワークインタフェース120、I/O装置122及び/又はアービター126からイベント(例えば、割り込み要求信号、割り込み要求メッセージ、仲裁許可信号等)を受信してもよい。コントローラ136は、関心のある特定のイベントにスタンプし、基本的に他のイベントを無視するように更にプログラムされてもよい。例えば、コントローラ136は、メディア装置118のオーディオインタフェースからの割り込み要求に続く最初の仲裁許可信号をスタンプするようにプログラム又は構成されてもよい。同様に、メディア装置118は、特定の割り込みライン(例えば割り込み信号ラインINT_5)で割り込み要求を生成するように割り当てられてもよく、コントローラ136は、メディア装置118に割り当てられた割り込みラインで受信した全ての割り込み要求をスタンプするようにプログラム又は構成されてもよい。
関心のあるイベントを検出したことに応じて、コントローラ136は、検出されたイベントのタイムスタンプ132をイベント格納装置138に格納してもよい。一実施例では、コントローラ136は、検出されたイベントのタイムスタンプ132として、単にカウンタ134の現カウント130を格納してもよい。他の実施例では、コントローラ136は、カウンタ134のカウント130に基づいてタイムスタンプ132を生成してもよい。例えば、コントローラ136は、タイムスタンプ132がカウント130より小さいビットを含むようにカウント130をエンコードすることにより、及び/又は要求側(例えばプロセッサ104)に適した形式で又は要求側により予期された形式でタイムスタンプ132を設定することにより、タイムスタンプ132を生成してもよい。
関心のあるイベントを検出したことに応じて、カウンタ136は、イベント格納装置138にタイムスタンプ132を備えたイベント識別子142を更に格納してもよい。イベント識別子142は、イベントのソース(例えば特定のメディア装置118)又は形式(例えば割り込み信号INT_5又は仲裁許可GNT_1)を示してもよい。イベント識別子142は、イベント格納装置138から特定のイベントのタイムスタンプ132を取り出すために使用されてもよい。一実施例では、イベント格納装置138は、複数のイベント及び同じ形式の複数のイベントを格納してもよい。イベント格納装置138は、イベント識別子142に基づいて、先入れ先出し(FIFO:first in first out)順に、格納されたタイムスタンプ132を更に取り出してもよい。
一実施例では、イベント格納装置138は、図2に示すような単一タグのFIFOキューのような構造として実装されてもよい。このような実施例のコントローラ136は、イベントが検出されたときに、FIFO構造の後部1144にイベント識別子142と関連タイムスタンプ132とをプッシュしてもよい。インタフェース140は、後にイベント識別子142のタイムスタンプ132についてFIFO構造に要求してもよい。要求に応じて、FIFO構造は、関連のイベント識別子142を有するタイムスタンプ132をインタフェース140に提供してもよい。FIFO構造が関連のイベント識別子142を備えた複数のタイムスタンプ132を有する場合、FIFO構造は、FIFO構造の先頭146に最も近いものを戻す。
例えば、図2は、コントローラ136がEID_0、EID_2及びEID_5のイベント識別子142を有する複数のイベントとその関連タイムスタンプ132とをFIFO構造の後部144にプッシュした後のFIFO構造を示している。イベント識別子EID_0に関連するタイムスタンプ132の要求に応じて、FIFO構造は、FIFO構造の先頭146に最も近いタイムスタンプTS_0を戻すことにより、最も古いイベント識別子EID_0に関連するタイムスタンプTS_0を戻してもよい。同様に、イベント識別子EID_5に関連するタイムスタンプ132の要求に応じて、FIFO構造は、FIFO構造の先頭146に最も近いタイムスタンプTS_5を戻すことにより、最も古いイベント識別子EID_0に関連するタイムスタンプTS_5を戻してもよい。
しかし、イベント格納装置138は、他の格納構造を使用して実装されてもよい。例えば、イベント構造138は、対応するイベント形式/ソース毎に別々のFIFO構造を有してもよく、コントローラ136は、適切なFIFO構造にタイムスタンプ132をプッシュしてもよい。このような実施例では、タイムスタンプ132が適切なFIFO構造の先頭146から単にプルされてもよいため、イベント識別子142はイベント格納装置138に格納されなくてもよい。FIFO構造は様々な方法で実装されてもよいこともわかる。例えば、FIFO構造は、各FIFO構造の先頭146と後部144とをトラックする先頭及び後部ポインタを備えたリングバッファとして実装されてもよい。
次に図3を参照すると、ストリーミングシステム148の実施例が図示されている。図示のように、ストリーミングシステム148は、ネットワーク154を介してコンピュータ装置100にストリーム152(例えば、オーディオストリーム、ビデオストリーム、オーディオ/ビデオストリーム、データストリーム等)を送信するサーバ150を有してもよい。図示のように、サーバ150は、PCR(program clock rate)を有するプログラムクロック信号を生成するプログラムクロック156を有してもよい。プログラムクロック信号に応じて、サーバ150は、プログラムクロック156のPCRでストリーム152を送信してもよい。一実施例では、サーバ150は、プログラムクロック156から生成された散在したPCRスタンプ160と共にデータブロック158のシーケンスとしてストリーム152を送信してもよい。一般的にPCRスタンプ160は、ストリーム152の再生又は処理のために、基準時間を提供する。
コンピュータ装置100の1つ以上のプロセッサ104は、メディア装置118による処理に適した形式にデータブロック158を設定するために、受信ストリーム152のデータブロック158を用意してもよい。プロセッサ104は、用意したデータブロック158を処理用にメディア装置118(例えばオーディオコーデック)に転送させてもよい。メディア装置118は、データブロック158をオーディオサンプル及び/又はビデオフレームに変換してもよく、コンピュータ装置100の基準クロック128に基づく処理レートでオーディオサンプル及び/又はビデオフレームを再生及び/又は処理してもよい。
基準クロック128の周波数とプログラムクロック156の周波数とが一致することが理想的である。その場合、メディア装置118は、単に基準クロック128により設定された処理レートでデータブロック158を処理することにより、サーバ150と同期を保ってもよい。しかし、実際には、基準クロック128の周波数とプログラムクロック156の周波数とは正確には一致しない。その結果、訂正動作が行われなければ、オーバーラン又はアンダーランの状態が生じ、ストリーム152の再生又は処理に不自然な結果を取り込む。特に、プログラムクロック156が基準クロック128より速い場合、処理されるレートより速いレートでデータブロック158を受信する結果として、コンピュータ装置100のバッファはオーバーランする可能性がある。同様に、プログラムクロック156が基準クロック128より遅い場合、処理されるレートより遅いレートでデータブロック158を受信する結果として、コンピュータ装置100の1つ以上のバッファはアンダーランする可能性がある。
一実施例では、メディア装置118が処理用のデータブロック158を受信する用意ができる毎に、メディア装置118は割り込み信号を生成してもよい。このような実施例では、割り込み信号は、メディア装置118の実際の処理レートを正確に反映してもよい。従って、このような割り込み信号が生成される時間をプロセッサ104が正確に決定し得ると、プロセッサ104はメディア装置118の実際の処理レートを正確に決定してもよい。プロセッサ104がこのような割り込み信号の時間を正確に決定することを可能にするために、タイムスタンプ回路102は、イベント発生とイベントスタンプとの間のかなりの待ち時間及び/又は待ち時間の変化なしに、このような割り込み信号を検出及びスタンプしてもよい。
他の実施例では、アービター126は、データブロック158が処理用にメディア装置118に転送される毎に、バス124へのメディア装置118のアクセスを許可する許可信号を生成してもよい。このような仲裁信号は、メディア装置118の実際の処理レートを正確に反映せいてもよい。この場合も同様に、このような許可信号が生成される時間をプロセッサ104が正確に決定し得ると、プロセッサ104はメディア装置118の実際の処理レートを正確に決定してもよい。プロセッサ104がこのような許可信号の時間を正確に決定することを可能にするために、タイムスタンプ回路102は、検出された許可信号の生成と検出された許可信号のスタンプとの間のかなりの待ち時間及び/又は待ち時間の変化なしに、このような許可信号を検出及びスタンプしてもよい。しかし、他のイベントもメディア装置118の処理レートを正確に反映してもよいことがわかる。従って、タイムスタンプ回路102は、これらのイベントの発生時間が正確に決定され得るように、これらの他のイベントをスタンプするように構成されてもよい。
ストリーム処理方法の実施例が図4に示されている。ブロック200において、アプリケーション108(例えば、MP3(MPEGオーディオプレイヤ3)プレイヤ又はQuickTimeTMムービープレイヤ)は、サーバ150からストリーム152を要求してもよい。ブロック202において、サーバ150は、サーバ150のプログラムクロック156に基づくPCRスタンプ160を備えた要求のストリーム152をアプリケーション108に送信してもよい。ブロック204において、アプリケーション108は、処理用に受信ストリーム152のデータブロック158を用意してもよく、メディア装置118に用意したデータブロック158を処理するように要求してもよい。一実施例では、アプリケーション108はストリーム152のトランスポートヘッダを取り除いてもよく、ストリーム152のデータブロック158をメモリ116に格納してもよい。更に、アプリケーション104は、メモリ116に格納されたデータブロック158を再生するようにメディア装置118に要求してもよい。
アプリケーション108が1つ以上のデータブロック158を処理するようにメディア装置118に要求したことに応じて、ブロック206において、メディア装置118のデバイスドライバ110は、ストリーム152の処理のためにメディア装置118を構成してもよく、メディア装置118の処理レートを示すイベントのスタンプのためにメディア装置118を構成してもよい。一実施例では、デバイスドライバ110は、メディア装置118がデータブロック158を処理する用意ができているときに、メディア装置118により生成された割り込み信号をスタンプするようにタイムスタンプ回路102をプログラムしてもよい。他の実施例では、デバイスドライバ110は、データブロック158が共有バス124を介してメディア装置118に転送される前に、アービター126により生成された許可信号をスタンプするように、タイムスタンプ回路102をプログラムしてもよい。
ブロック208において、メディア装置118がストリーム152の1つ以上のデータブロック158を受信する用意ができているときに、メディア装置118は割り込みイベント(例えば割り込み信号INT_5)を生成してもよい。ブロック210において、タイムスタンプ回路102のコントローラ136は、割り込みイベントをタイムスタンプするか否かを決定してもよい。一実施例では、コントローラ136は、検出された割り込みイベントが、コントローラ136がタイムスタンプするようにプログラムされている関心のあるイベントであるか否かを決定してもよい。割り込みイベントをタイムスタンプするように決定したことに応じて、コントローラ136は、イベント格納装置138にイベントのタイムスタンプ132及びイベント識別子142を格納してもよい(ブロック212)。
割り込みイベントに応じて、ブロック214において、メディア装置118のデバイスドライバ110は、メディア装置118の処理レートを示すイベントのタイムスタンプ132をタイムスタンプ回路102から要求してもよい。一実施例では、このようなイベント(例えば割り込み信号及び/又は仲裁信号)のイベント識別子142をインタフェース140に提供してもよい。ブロック216において、タイムスタンプ回路102は、受信したイベント識別子142に基づいて、そのイベント格納装置138からのタイムスタンプをデバイスドライバ110に提供してもよい。
ブロック218において、デバイスドライバ110は、受信タイムスタンプ132に基づいて、メディア装置118の処理レートを決定してもよく、ストリーム152のPCRスタンプ160に基づいて、ストリーム152のPCRを決定してもよい。一実施例では、デバイスドライバ110は、受信タイムスタンプ132と1つ以上の前に受信したタイムスタンプ132とに基づいて処理レートを決定してもよい。同様に、デバイスドライバ110は、PCRスタンプ160及び/又は1つ以上の前に受信したPCRスタンプ160に基づいてPCRを決定してもよい。例えば、デバイスドライバ110は、現タイムスタンプ132と前に受信したタイムスタンプ132との差を決定してもよく、得られた差に基づいて決定された処理レートを更新してもよい。同様に、デバイスドライバ110は、現PCRスタンプ160と前に受信したPCRタイムスタンプ160との差を決定してもよく、得られた差に基づいて決定されたPCRを更新してもよい。
ブロック220において、デバイスドライバ110は、決定された処理レート及びPCRに基づいてメディア装置118の処理レートを調整してもよい。一実施例では、デバイスドライバ110は、基準クロック128の周波数を調整してもよく、及び/又は基準クロック128の周波数に対するその処理レートを調整するようにメディア装置118を再構成してもよい。他の実施例では、デバイスドライバ110及び/又はアプリケーション108は、ストリーム152の1つ以上のデータブロック158を再サンプリングし、再サンプリングされたデータブロック158のPCRをメディア装置118の処理レートに実質的に一致させてもよい。例えば、メディア装置118の処理レートがストリーム152のPCRより速い場合、デバイスドライバ110及び/又はアプリケーション108は1つ以上のデータブロック158をアップサンプルしてもよい。同様に、メディア装置118の処理レートがストリーム152のPCRより遅い場合、デバイスドライバ110及び/又はアプリケーション108は1つ以上のデータブロック158をダウンサンプルしてもよい。
ブロック222において、デバイスドライバ110は、チップセット114及び/又はメディア装置118にメモリ116からデータブロック158を転送させてもよい。一実施例では、デバイスドライバ110は、チップセット114又はメディア装置118のDMA(direct memory access)エンジンに、処理のためにメモリ116からメディア装置118にデータブロック158を転送させてもよい。ブロック224において、チップセット114及び/又はメディア装置118は、メディア装置118の共有バス124の所有権を要求してもよく、アービター126、224は共有バス124の所有権を要求側114、118に許可してもよい。ブロック226において、タイムスタンプ回路102のコントローラ136は、許可イベントをタイムスタンプするか否かを決定してもよい。一実施例では、コントローラ136は、検出された許可イベントが、コントローラ136がタイムスタンプするようにプログラムされている関心のあるイベントであるか否かを決定してもよい。許可イベントをタイムスタンプしたことに応じて、コントローラ136は、イベントのタイムスタンプ132及びイベント識別子142をイベント格納装置138に格納してもよい(ブロック228)。
ブロック230において、メディア装置118は、データブロック158を受信してもよく、基準クロック128により制御された処理レートでデータブロック158を処理してもよい。特に、メディア装置118は、データブロック158からオーディオサンプル及び/又はビデオフレームを生成してもよく、基準クロック128により指示されたレートでオーディオサンプル及び/又はビデオフレームを再生してもよい。ブロック232において、メディア装置118は、ストリーム152の処理を終了したか否かを決定してもよい。メディア装置118がストリーム152の更なるデータブロック158を処理するように決定すると、メディア装置118は、メディア装置118が更なるデータブロック158を受信する用意があることを示す割り込み信号を生成するために、ブロック208に戻ってもよい。そうでない場合には、メディア装置118はストリーム152の処理を中止してもよい。
本発明の特定の特徴について例示的な実施例を参照して説明したが、その説明は限定的な意味に解釈されることを目的としているのではない。本発明が関係する当業者に明らかな例示的な実施例の様々な変更及び本発明の他の実施例は、本発明の要旨及び範囲内にあるとみなされる。
タイムスタンプ回路を有するコンピュータ装置の実施例 図1のタイムスタンプ回路の実施例 サーバと図1のコンピュータ装置とを有するストリーミングシステムの実施例 図3のストリーミングシステムにより実施され得るストリームを処理する方法の実施例

Claims (35)

  1. 装置でイベントを検出し、
    前記イベントを検出したことに応じて、前記装置のタイムスタンプで前記イベントをスタンプし、
    前記イベントの前記タイムスタンプの要求を受信し、
    前記要求を受信したことに応じて、前記イベントの前記タイムスタンプを提供することを有する方法。
  2. 請求項1に記載の方法であって、
    前記イベントがタイムスタンプされるか否かを決定し、
    前記ベントがタイムスタンプされることを決定したことに応じて、前記タイムスタンプで前記イベントをスタンプすることを更に有する方法。
  3. 請求項1に記載の方法であって、
    前記イベントを検出することは、仲裁許可を検出することを有する方法。
  4. 請求項1に記載の方法であって、
    前記イベントを検出することは、割り込みを検出することを有する方法。
  5. 請求項1に記載の方法であって、
    前記イベントの前記タイムスタンプとストリームのタイムスタンプとに基づいて、ストリームの処理レートを調整することを更に有する方法。
  6. 請求項1に記載の方法であって、
    前記イベントの前記タイムスタンプとストリームのタイムスタンプとに基づいて、ストリームを再サンプリングすることを更に有する方法。
  7. 基準クロックに応じてカウントを更新するカウンタと、
    イベントを検出し、前記カウンタの前記カウントに基づくタイムスタンプを検出されたイベントに提供するコントローラと、
    前記検出されたイベントの要求を受信したことに応じて、検出されたイベントのタイムスタンプを出力するインタフェースと
    を有する装置。
  8. 請求項7に記載の装置であって、
    検出されたイベントのタイムスタンプを格納し、前記要求の前記検出されたイベントの前記タイムスタンプを前記インタフェースに提供するイベント格納装置を更に有する装置。
  9. 請求項7に記載の装置であって、
    検出されたイベントのタイムスタンプを格納し、前記インタフェースから前記検出されたイベントのイベント識別子を受信したことに応じて、前記要求の前記検出されたイベントの前記タイムスタンプを前記インタフェースに提供するイベント格納装置を更に有する装置。
  10. 請求項9に記載の装置であって、
    前記インタフェースは、前記検出されたイベントの要求で、前記検出されたイベントの前記イベント識別子を受信する装置。
  11. 請求項7に記載の装置であって、
    検出されたイベントのタイムスタンプ及び関連のイベント識別子を格納し、前記インタフェースから前記検出されたイベントのイベント識別子を受信したことに応じて、前記要求の前記検出されたイベントの前記タイムスタンプを前記インタフェースに提供するイベント格納装置を更に有する装置。
  12. 請求項7に記載の装置であって、
    前記コントローラは、検出されたイベントがタイムスタンプされるイベント形式であることを決定したことに応じて、タイムスタンプを検出されたイベントに提供する装置。
  13. 請求項12に記載の装置であって、
    前記コントローラは、検出されたイベントがタイムスタンプされるイベント形式でないことを決定したことに応じて、タイムスタンプを検出されたイベントに提供せずに、検出されたイベントを無視する装置。
  14. 請求項13に記載の装置であって、
    前記コントローラによりタイムスタンプされるイベント形式は、プログラム可能である装置。
  15. 請求項7に記載の装置であって、
    コンピュータ装置の他の構成要素にプロセッサを結合するチップセットに組み込まれた装置。
  16. 請求項7に記載の装置であって、
    仲裁イベントに基づいて共有リソースへのアクセスを仲裁するアービターに組み込まれた装置。
  17. 請求項7に記載の装置であって、
    割り込みイベントを制御する割り込みコントローラに組み込まれた装置。
  18. プログラムクロックレートを示すプログラムクロックレートスタンプとデータブロックとを有するストリームをプログラムクロックレートで受信するネットワークインタフェースと、
    基準クロック信号を生成する基準クロックと、
    前記基準クロック信号により設定された処理レートで前記ストリームの前記データブロックを処理し、前記処理レートを示すイベントを生じる装置と、
    前記処理レートを示すイベントを検出し、前記基準クロック信号に基づくイベントのタイムスタンプを格納するタイムスタンプ回路と
    を有するシステム。
  19. 請求項19に記載のシステムであって、
    タイムスタンプ回路は、前記タイムスタンプ回路にプログラムされたイベント形式に基づいて、前記処理レートを示すイベントを検出するシステム。
  20. 請求項19に記載のシステムであって、
    前記処理レートを示すイベントのタイムスタンプについて前記タイムスタンプ回路に要求するプロセッサを更に有するシステム。
  21. 請求項20に記載のシステムであって、
    前記プロセッサは、前記イベントのタイムスタンプと前記ストリームのプログラムクロックレートスタンプとに基づいて前記処理レートを調整するシステム。
  22. 請求項20に記載のシステムであって、
    前記プロセッサは、前記イベントのタイムスタンプと前記ストリームのプログラムクロックレートスタンプとに基づいて前記基準クロック信号の周波数を調整するシステム。
  23. 請求項20に記載のシステムであって、
    前記プロセッサは、前記イベントのタイムスタンプと前記ストリームのプログラムクロックレートスタンプとに基づいて前記データブロックを再サンプリングするシステム。
  24. 請求項20に記載のシステムであって、
    前記タイムスタンプ回路は、検出されたイベントのタイムスタンプを格納し、プロセッサが前記タイムスタンプ回路からタイムスタンプを要求したことに応じて、検出されたイベントの格納されたタイムスタンプを前記プロセッサに提供するシステム。
  25. 請求項20に記載のシステムであって、
    前記タイムスタンプ回路は、検出されたイベントのタイムスタンプを格納し、プロセッサが検出されたイベントのイベント識別子を前記タイムスタンプ回路に提供したことに応じて、検出されたイベントの格納されたタイムスタンプを前記プロセッサに提供するシステム。
  26. 請求項18に記載のシステムであって、
    前記タイムスタンプ回路は、検出されたイベントがタイムスタンプされるイベント形式であることを決定したことに応じて、検出されたイベントのタイムスタンプを格納するシステム。
  27. 請求項26に記載のシステムであって、
    前記タイムスタンプ回路は、検出されたイベントがタイムスタンプされるイベント形式でないことを決定したことに応じて、検出されたイベントのタイムスタンプを格納せずに、検出されたイベントを無視するシステム。
  28. 請求項20に記載のシステムであって、
    前記タイムスタンプ回路を有し、前記プロセッサを前記ネットワークインタフェースと前記装置とに結合するチップセットを更に有するシステム。
  29. 請求項18に記載のシステムであって、
    前記タイムスタンプ回路を有し、共有リソースの要求を仲裁するアービターを更に有し、
    前記タイムスタンプ回路は、検出されたイベント形式の仲裁信号のタイムスタンプを格納するシステム。
  30. 請求項18に記載のシステムであって、
    前記タイムスタンプ回路を有し、前記装置から受信した割り込みを処理する割り込みコントローラを更に有し、
    前記タイムスタンプ回路は、検出されたイベント形式の割り込み信号のタイムスタンプを格納するシステム。
  31. コンピュータ装置により実行されることに応じて、前記コンピュータ装置に
    ストリームの処理レートを示す検出されたイベントのタイムスタンプについてタイムスタンプ回路に要求させ、
    前記検出されたイベントのタイムスタンプに基づいて前記ストリームの処理レートを決定させ、
    前記ストリームのプログラムクロックレートスタンプに基づいて前記ストリームのプログラムクロックレートを決定させ、
    前記処理レートと前記プログラムクロックレートとが決定された差を有することに応じて、前記ストリームの前記処理レートを調整させる
    複数の命令を有する機械読取可能媒体。
  32. 請求項31に記載の機械読取可能媒体であって、
    前記複数の命令は、前記コンピュータ装置に、前記ストリームのデータブロックを再サンプリングすることにより前記処理レートを更に調整させる機械読取可能媒体。
  33. 請求項31に記載の機械読取可能媒体であって、
    前記複数の命令は、前記コンピュータ装置に、前記処理レートを制御する基準クロックを更に調整させる機械読取可能媒体。
  34. 請求項31に記載の機械読取可能媒体であって、
    前記複数の命令は、前記コンピュータ装置に、前記ストリームの処理レートを示す割り込みイベントをスタンプするように前記タイムスタンプ回路を更にプログラムさせる機械読取可能媒体。
  35. 請求項31に記載の機械読取可能媒体であって、
    前記複数の命令は、前記コンピュータ装置に、前記ストリームの処理レートを示す仲裁イベントをスタンプするように前記タイムスタンプ回路を更にプログラムさせる機械読取可能媒体。
JP2006522597A 2003-08-07 2004-07-28 イベントのタイムスタンプ Pending JP2007501977A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/637,301 US20050091554A1 (en) 2003-08-07 2003-08-07 Event time-stamping
PCT/US2004/024055 WO2005017724A2 (en) 2003-08-07 2004-07-28 Event time-stamping

Publications (1)

Publication Number Publication Date
JP2007501977A true JP2007501977A (ja) 2007-02-01

Family

ID=34193567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006522597A Pending JP2007501977A (ja) 2003-08-07 2004-07-28 イベントのタイムスタンプ

Country Status (10)

Country Link
US (1) US20050091554A1 (ja)
EP (1) EP1652054B1 (ja)
JP (1) JP2007501977A (ja)
KR (1) KR100829643B1 (ja)
CN (1) CN100456201C (ja)
AT (1) ATE371890T1 (ja)
DE (1) DE602004008647T2 (ja)
RU (1) RU2312386C2 (ja)
TW (1) TWI279673B (ja)
WO (1) WO2005017724A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017102515A (ja) * 2015-11-30 2017-06-08 セイコーエプソン株式会社 計時装置、電子機器、及び、移動体

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529979B2 (en) * 2003-12-12 2009-05-05 International Business Machines Corporation Hardware/software based indirect time stamping methodology for proactive hardware/software event detection and control
AT502550B1 (de) * 2005-10-11 2009-11-15 Arc Seibersdorf Res Gmbh Digitaler synchroner arbiter, sensor mit einem derartigen arbiter und verfahren zum sequentialisieren von synchronisierten ereignissen mit einem derartigen arbiter
US8468283B2 (en) * 2006-06-01 2013-06-18 Telefonaktiebolaget Lm Ericsson (Publ) Arbiter diagnostic apparatus and method
CN101459693A (zh) * 2008-12-29 2009-06-17 中兴通讯股份有限公司 一种流媒体下载方法及系统
US8971470B2 (en) * 2011-02-25 2015-03-03 Intel Corporation System, method, and device to distribute accurate synchronization timestamps in an expandable and timing critical system
US9465755B2 (en) 2011-07-18 2016-10-11 Hewlett Packard Enterprise Development Lp Security parameter zeroization
US9201821B2 (en) 2012-09-27 2015-12-01 Apple Inc. Interrupt timestamping
JP6037042B2 (ja) 2013-10-15 2016-11-30 オムロン株式会社 制御装置および制御方法
WO2015191053A1 (en) * 2014-06-10 2015-12-17 Halliburton Energy Services, Inc. Synchronization of receiver units over a control area network bus
US9904637B2 (en) * 2014-11-26 2018-02-27 Qualcomm Incorporated In-band interrupt time stamp
TWI549014B (zh) * 2014-12-31 2016-09-11 Nobuyoshi Morimoto Verification system and method for issuing real-time timestamps with digital timestamp devices
TWI559163B (zh) * 2015-03-27 2016-11-21 Nobuyoshi Morimoto Time stamped digital content protection methods and systems
TWI632461B (zh) * 2017-05-25 2018-08-11 緯穎科技服務股份有限公司 獲取時間戳記的方法以及使用該方法的電腦裝置
US11019585B1 (en) 2018-07-24 2021-05-25 Sprint Communications Company L.P. Network generated precision time
CN112650616B (zh) * 2021-01-05 2024-07-05 上海擎昆信息科技有限公司 一种中断检测方法、装置和系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038319A (en) * 1989-04-24 1991-08-06 Xerox Corporation System for recording and remotely accessing operating data in a reproduction machine
US5297277A (en) * 1990-08-31 1994-03-22 International Business Machines Corporation Apparatus for monitoring data transfers of an oemi channel interface
US5426774A (en) * 1993-04-06 1995-06-20 Honeywell Inc. Method for maintaining a sequence of events function during failover in a redundant multiple layer system
US5862388A (en) * 1993-11-24 1999-01-19 Intel Corporation Interrupt-time processing of received signals
US5822317A (en) * 1995-09-04 1998-10-13 Hitachi, Ltd. Packet multiplexing transmission apparatus
US6173207B1 (en) * 1997-09-22 2001-01-09 Agilent Technologies, Inc. Real-time control system with non-deterministic communication
US6097699A (en) * 1998-06-05 2000-08-01 Gte Laboratories Incorporated Method and system for monitoring broadband quality of services
US6571344B1 (en) * 1999-12-21 2003-05-27 Koninklijke Philips Electronics N. V. Method and apparatus for authenticating time-sensitive interactive communications
AUPQ896300A0 (en) * 2000-07-24 2000-08-17 Nec Australia Pty Ltd A clock synchronisation method for usb sink devices
WO2002093938A1 (en) * 2001-05-14 2002-11-21 Koninklijke Philips Electronics N.V. Mpeg data packet transmission through an atm network with jitter free decoding
US7123963B2 (en) * 2002-10-31 2006-10-17 Medtronic, Inc. Method of automatic evoked response sensing vector selection using evoked response waveform analysis
US7124332B2 (en) * 2003-06-30 2006-10-17 Intel Corporation Failure prediction with two threshold levels

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017102515A (ja) * 2015-11-30 2017-06-08 セイコーエプソン株式会社 計時装置、電子機器、及び、移動体

Also Published As

Publication number Publication date
CN1860427A (zh) 2006-11-08
RU2312386C2 (ru) 2007-12-10
DE602004008647T2 (de) 2008-06-12
RU2006106916A (ru) 2006-07-27
TW200516386A (en) 2005-05-16
KR100829643B1 (ko) 2008-05-19
DE602004008647D1 (de) 2007-10-11
EP1652054A2 (en) 2006-05-03
ATE371890T1 (de) 2007-09-15
WO2005017724A3 (en) 2005-11-17
US20050091554A1 (en) 2005-04-28
WO2005017724A2 (en) 2005-02-24
KR20060034306A (ko) 2006-04-21
EP1652054B1 (en) 2007-08-29
TWI279673B (en) 2007-04-21
CN100456201C (zh) 2009-01-28

Similar Documents

Publication Publication Date Title
JP2007501977A (ja) イベントのタイムスタンプ
US8713277B2 (en) Critical word forwarding with adaptive prediction
CN110741356A (zh) 多处理器系统中的中继一致存储器管理
US10078470B2 (en) Signal transfer device that maintains order of a read request and write request in posted write memory access
US10423558B1 (en) Systems and methods for controlling data on a bus using latency
US5931926A (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO
US20150074442A1 (en) Reducing latency associated with timestamps
US10127169B2 (en) Supporting flow control mechanism of bus between semiconductor dies assembled in wafer-level package
JP2006146921A (ja) 追跡バッファでブックマークを使用するための方法及びシステム
US6226698B1 (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO
US8990456B2 (en) Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
US8160084B2 (en) Method for time-stamping messages
TW201124911A (en) Buffering in media and pipelined processing components
JP2022121525A (ja) 処理装置、処理方法及びプログラム
US7181559B2 (en) Message based transport mechanism for level sensitive interrupts
JP2004302680A (ja) 情報処理装置、割込制御装置、制御方法、及びこれらのプログラムと記録媒体
US6260119B1 (en) Memory cache management for isochronous memory access
EP0752642B1 (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous fifo
US8195846B2 (en) Direct memory access controller for improving data transmission efficiency in MMoIP and method therefor
US20240103897A1 (en) Diversified virtual memory
KR20120063900A (ko) 멀티프로세서 시스템의 지연관리 장치 및 방법
Lian Multi-thread chain DMA data transfer method for SuperSpeed bus video transmissions
JP2004046371A (ja) メモリ制御装置及びメモリアクセス制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091124

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100309