JP5968463B2 - データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング - Google Patents

データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング Download PDF

Info

Publication number
JP5968463B2
JP5968463B2 JP2014551278A JP2014551278A JP5968463B2 JP 5968463 B2 JP5968463 B2 JP 5968463B2 JP 2014551278 A JP2014551278 A JP 2014551278A JP 2014551278 A JP2014551278 A JP 2014551278A JP 5968463 B2 JP5968463 B2 JP 5968463B2
Authority
JP
Japan
Prior art keywords
data
pointer
buffers
buffer
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014551278A
Other languages
English (en)
Other versions
JP2015505409A (ja
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 JP2015505409A publication Critical patent/JP2015505409A/ja
Application granted granted Critical
Publication of JP5968463B2 publication Critical patent/JP5968463B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

データソース(カメラ又はビデオ処理スレッドの出力等)からのデータを処理するために、データリクエスタ(データ要求側)(例えば、別のビデオ処理スレッド)が処理のためにデータをコピーし得るように、データソースは、データのブロック(例えばフレーム)を第1のバッファ及び第2のバッファに順次に格納することがある。例えば、データソースは、データの第1のブロックを第1のバッファに格納してもよい。第1のバッファがいっぱいになった場合、第1のバッファがコピーされて処理される用意ができていることを示すために、“データレディ信号(data ready signal)”がデータリクエスタに提供されてもよい。データレディ信号に応じて、データリクエスタは、処理のために第1のバッファからのデータを自分のバッファにコピーしてもよい。データリクエスタが第1のバッファからデータを読み取っている間に、データソースは、データの第2のブロックを第2のバッファに格納してもよい。第2のバッファがいっぱいになった場合、第2のバッファがコピーされて処理される用意ができていることを示すために、“データレディ信号”がデータリクエスタに提供されてもよい。データレディ信号に応じて、データリクエスタは、処理のために第2のバッファからのデータを自分のバッファにコピーしてもよい。データリクエスタが第2のバッファからデータを読み取っている間に、データソースは、データの第3のブロックを第1のバッファに格納してもよい。データソースからの全てのデータが第1及び第2のバッファに供給されるまで、前述の処理が繰り返されてもよい。
データがデータソースにより第1及び第2のバッファに格納されるレートが、データリクエスタがバッファからデータをコピーし得るレートより速い場合、データリクエスタがデータをコピーし得る前にデータソースが第1及び第2のバッファに格納されたデータを上書きするため、いくつかのデータが失われる可能性がある。データの喪失を妨げることを支援するために、複数のデータリクエスタがバッファからデータをコピーするために使用されることがある。
しかし、他にも理由があるが、1つ以上のデータリクエスタにより処理のために第1及び第2のバッファからのデータを別のバッファにコピーすることは、システムの全体性能を減少させる可能性がある。
データを別のメモリにコピーせずにデータソースからのデータを格納して処理する例示的なシステムを示すブロック図 データを別の記憶装置にコピーせずにデータソースにより図1のバッファに格納されたデータを処理するためにポインタをスワッピングする例示的な処理を示す図 図2を参照して説明した処理に基づく図1のデータソースのロード動作 図2を参照して説明した処理に基づく図2のデータリクエスタの処理動作 データを別のメモリにコピーせずにデータソースからのデータを格納して処理する例示的なコンピュータシステムを示すブロック図 この開示の例示的なシステムを示すブロック図 図5のシステムのコンポーネントが具現され得る例示的な小型デバイスを示すブロック図
本発明の実施例の様々な利点は、以下の明細書及び特許請求の範囲を読むことにより、また、図面を参照することにより当業者に明らかになる。
この開示の様々な実施例は、データを別の記憶装置にコピーせずにデータソースにより複数のバッファに格納されたデータを処理するためにポインタをスワッピングする装置及び方法を提供する。
図1は、データを別のメモリにコピーせずにデータソースからのデータを格納して処理する例示的なシステム100を示している。システム100は、データソース105と、第1のバッファ110と、第2のバッファ115と、第3のバッファ120と、データリクエスタ125とを含んでもよい。図示のデータソース105は、ロードポインタにより示されたバッファにデータをロードする。データリクエスタ125は、処理ポインタにより示されたバッファのデータを処理してもよい。図2を参照して以下に示すように、ポインタをスワッピングすることにより、データリクエスタ125は、処理のためにデータを別のメモリにコピーせずにデータソース105によりバッファにロードされたデータを処理してもよい。
図2に示すように、段階205において、ロードポインタは第1のバッファ110を示し、スワップポインタは第2のバッファ115を示し、処理ポインタは第3のバッファを示す。段階205において、ロードポインタは第1のバッファ110を示すため、データソース105はデータを第1のバッファ110にロードしてもよい。また、データソース105が第1のバッファ110をいっぱいにした場合、例えば、データソース105は、段階205においてデータを他のバッファに格納するために、セマフォロック(semaphore lock)を取得し、スワップポインタへのアクセスを制御してもよい。
段階210において、ロードポインタはスワップポインタとスワッピングされてもよい。これにより、ロードポインタは第2のバッファ115を示し、スワップポインタは第1のバッファ110を示す。また、段階210において、データレディ信号が(例えば、データソース105により)データリクエスタ125に提供されてもよく、データソース105はまた、段階205において取得したセマフォロックを解放してもよい。
段階215において、データリクエスタ125は、セマフォロックを取得し、スワップポインタへのアクセスを制御してもよい。次に、処理ポインタはスワップポインタとスワッピングされてもよい。これにより、処理ポインタは第1のバッファ110を示し、スワップポインタは第3のバッファ120を示す。処理ポインタは第1のバッファ110を示すため、データリクエスタ125は、データを別のメモリにコピーせずに第1のバッファ110に格納されたデータを処理してもよい。また、ロードポインタは第2のバッファ115を示すため、データソース105はデータを第2のバッファ115にロードしてもよい。また、データソース105が第2のバッファ115をいっぱいにした場合、例えば、データソース105は、データを他のバッファに格納するために、セマフォロックを取得し、スワップポインタへのアクセスを制御してもよい。
段階220において、ロードポインタはスワップポインタとスワッピングされてもよい。これにより、ロードポインタは第3のバッファ120を示し、スワップポインタは第2のバッファ115を示す。データソース105は、セマフォロックを解放してもよい。また、段階220において、データレディ信号が(例えば、データソース105により)データリクエスタ125に提供されてもよい。
段階225において、データリクエスタ125が第1のバッファ110に格納されたデータの処理を完了した場合、データリクエスタ125は、次のデータを処理するために、セマフォロックを取得し、スワップポインタへのアクセスを制御してもよい。次に、処理ポインタはスワップポインタとスワッピングされてもよい。これにより、処理ポインタは第2のバッファ115を示し、スワップポインタは第1のバッファ110を示す。処理ポインタは第2のバッファ115を示すため、データリクエスタ125は、データを別のメモリにコピーせずに第2のバッファ115に格納されたデータを処理してもよい。また、ロードポインタは第3のバッファ120を示すため、データソース105はデータを第3のバッファ120にロードしてもよい。データソース105が第3のバッファ120をいっぱいにした場合、例えば、データソース105は、データを他のバッファに格納するために、セマフォロックを取得し、スワップポインタへのアクセスを制御してもよい。
段階230において、ロードポインタはスワップポインタとスワッピングされてもよい。これにより、ロードポインタは第1のバッファ110を示し、スワップポインタは第3のバッファ120を示す。データソース105は、セマフォロックを解放してもよい。また、段階230において、データレディ信号が(例えば、データソース105により)データリクエスタ125に提供されてもよい。
段階235において、データリクエスタ125が第2のバッファ115に格納されたデータの処理を完了した場合、データリクエスタ125は、セマフォロックを取得し、スワップポインタへのアクセスを制御してもよい。次に、処理ポインタはスワップポインタとスワッピングされてもよい。これにより、処理ポインタは第3のバッファ120を示し、スワップポインタは第2のバッファ115を示す。処理ポインタは第3のバッファ120を示すため、データリクエスタ125は、データを別のメモリにコピーせずに第3のバッファ120に格納されたデータを処理してもよい。また、ロードポインタは第1のバッファ110を示すため、データソース105はデータを第1のバッファ110にロードしてもよい。次に、データソース105は、セマフォロックを取得し、スワップポインタへのアクセスを制御してもよい。
データソースからの全てのデータがバッファに供給されるまで、段階210〜235は繰り返されてもよい。
図3A及び3Bは、図2を参照して説明した処理に基づき、それぞれデータソース105のロード動作及びデータリクエスタ125の処理動作を示している。段階205において、データソース105は、データを第1のバッファ110にロードする。段階215において、データソース105は、データを第2のバッファ115にロードし、データリクエスタ125は、第1のバッファ110に格納されたデータを処理する。段階225において、データソース105は、データを第3のバッファ120にロードし、データリクエスタ125は、第2のバッファ115に格納されたデータを処理する。段階235において、データソース105は、データを第1のバッファ110にロードし、データリクエスタ125は、第3のバッファ120に格納されたデータを処理する。データソース105からの全てのデータがバッファに供給されるまで、段階215〜235は繰り返されてもよい。
図2、3A及び3Bに示すように、ポインタをスワッピングすることにより、データリクエスタ125は、処理のためにデータを別のメモリにコピーせずにデータソース105によりバッファにロードされたデータを処理してもよい。
或る実装では、システム100は、データソース105がデータをロードするための更なるバッファを含んでもよい。或る実装では、システム100は、並列にバッファのデータを処理する複数のデータリクエスタを含んでもよい。この場合、更なるデータリクエスタのそれぞれは、自分のデータバッファを指定し、図2を参照して説明したように対応するポインタをスワッピングする。
図4は、データを別のメモリにコピーせずにデータソース435からのデータを格納して処理する例示的なコンピュータシステム400を示している。
このシステム400は、CPUバス420を介してバスコントローラ410に結合されたプロセッサ405を含んでもよい。或る実装では、システム400は、複数のプロセッサを含んでもよい。バスコントローラ410は、メモリコントローラ415を含んでもよい。或る実装では、メモリコントローラ415は、バスコントローラ410の外部でもよい。メモリコントローラ415は、メモリバス430を介してプロセッサ405をシステムメモリ425にインタフェース接続してもよい。或る実装では、システムメモリ425は、システム400の“メインメモリ”と記述されてもよい。
或る実装では、システムメモリ425は、プロセッサ405により実行される命令及び情報を格納してもよい。或る実装では、システムメモリ425は、プロセッサ405により実行された場合、システム400に対して図2を参照して説明した処理又はその一部を実行させる命令を格納してもよい。システムメモリ425は、例えばグラフィック動作を実行するコードを実施するためにプロセッサによりアクセスされるデータを格納してもよい。システムメモリ425は、メモリコントローラ415によりアクセスされるダイナミックランダムアクセスメモリ(DRAM:dynamic random access memory)モジュールを含んでもよい。或る実装では、システムメモリ425はまた、プロセッサ405により処理されるデータソース435から受信した1つ以上の画像フレームの一部である画素を格納するために使用されてもよい。例えば、或る実装では、システムメモリ425は、図1の第1のバッファ110と、第2のバッファ115と、第3のバッファ120とを含んでもよい。データソース435は、プロセッサと、プロセッサにより実行された場合、データソースに対して図2の処理の一部を実行させる命令を格納した記憶装置とを含んでもよい。
コンピュータシステム400はまた、メモリバス430に結合された大容量記憶デバイス440を含んでもよい。大容量記憶デバイス440は、例えば、ハードディスク、フロッピー(登録商標)ディスク、コンパクトディスク読み取り専用メモリ(CD-ROM)、デジタルビデオディスク読み取り専用メモリ(DVD-ROM)、テープ、高密度フロッピー(登録商標)、高容量取り外し可能媒体、低容量取り外し可能媒体、ソリッドステートメモリデバイス、及びこれらの組み合わせを含んでもよい。
或る実装では、グラフィックプロセッサは、バッファ110、115及び120に格納されたフレームデータを処理してもよい。
この開示の範囲内にあると考えられるコンピュータデバイスは、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット又はスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等を含む。
図5は、プラットフォーム502と、ディスプレイ520と、コンテンツサービスデバイス530と、コンテンツ配信デバイス540と、ナビゲーションコントローラ550とを有するこの開示のシステム500の例示的な実施例を示している。実施例では、システム500はメディアシステムでもよいが、システム500はこの点に限定されない。例えば、システム500のコンポーネントは、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット又はスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等に組み込まれてもよい。
実施例では、システム500は、ディスプレイ520に結合されたプラットフォーム502を有する。プラットフォーム502は、コンテンツサービスデバイス530若しくはコンテンツ配信デバイス540又は他の同様なコンテンツソースのようなコンテンツデバイスからコンテンツを受信してもよい。例えば、プラットフォーム502及び/又はディスプレイ520と相互作用するために、1つ以上のナビゲーション機能を有するナビゲーションコントローラ550が使用されてもよい。これらのコンポーネントのそれぞれについて以下に詳細に説明する。
実施例では、プラットフォーム502は、チップセット505、プロセッサ510、メモリ512、記憶装置514、グラフィックサブシステム515、アプリケーション516、ネットワークコンポーネント517(例えば、有線又は無線)及び/又は無線機518のいずれかの組み合わせを有してもよい。チップセット505は、プロセッサ510、メモリ512、記憶装置514、グラフィックサブシステム515、アプリケーション516及び/又は無線機518の間の相互通信を提供してもよい。例えば、チップセット505は、記憶装置514との相互通信を提供可能な記憶装置アダプタ(図示せず)を含んでもよい。
プロセッサ510は、複雑命令セットコンピュータ(CISC)又は縮小命令セットコンピュータ(RISC)プロセッサ、x86命令セット互換プロセッサ、マルチコア、又は他のマイクロプロセッサ若しくは中央処理装置(CPU)として実装されてもよい。実施例では、プロセッサ510は、シングルコア又はマルチコアのプロセッサ、シングルコア又はマルチコアのモバイルプロセッサ等を有してもよい。
メモリ512は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)又はスタティックRAM(SRAM)に限定されず、このような揮発性メモリデバイスとして実装されてもよい。或る実施例では、メモリ512は、フラッシュメモリデバイスのような不揮発性メモリとして実装されてもよい。
記憶装置514は、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部記憶デバイス、取り付け型記憶デバイス、フラッシュメモリ、バッテリバックアップSDRAM(シンクロナスDRAM)、及び/又はネットワークアクセス可能な記憶デバイスに限定されず、このような不揮発性記憶デバイスとして実装されてもよい。実施例では、記憶装置514は、例えば、複数のハードドライブが含まれる場合、貴重なデジタルデータの記憶性能の拡張した保護を増大させる技術を有してもよい。
グラフィックサブシステム515は、表示用の静止画又はビデオのような画像の処理を実行してもよい。グラフィックサブシステム515は、例えば、グラフィック処理ユニット(GPU)又はビジュアル処理ユニット(VPU)でもよい。グラフィックサブシステム515とディスプレイ520とを通信可能に結合するために、アナログ又はデジタルインタフェースが使用されてもよい。例えば、インタフェースは、高精細度マルチメディアインタフェース(High-Definition Multimedia Interface)、ディスプレイポート(DisplayPort)、無線HDMI(登録商標)及び/又は無線HD準拠の技術のいずれかでもよい。実施例では、グラフィックサブシステム515は、プロセッサ510又はチップセット505に統合されてもよい。実施例では、グラフィックサブシステム515は、チップセット505に通信可能に結合されたスタンドアローン型カードでもよい。
ここに記載のグラフィック及び/又はビデオ処理技術は、様々なハードウェアアーキテクチャで実装されてもよい。例えば、グラフィック及び/又はビデオ機能は、チップセット内に統合されてもよい。或いは、別のグラフィック及び/又はビデオプロセッサが使用されてもよい。更に他の実施例として、グラフィック及び/又はビデオ機能は、マルチコアプロセッサを含む汎用プロセッサにより実装されてもよい。更なる実施例では、この機能は家庭用電子機器に実装されてもよい。
無線機518は、様々な適切な無線通信技術を使用して信号を送信及び受信可能な1つ以上の無線機を含んでもよい。このような技術は、1つ以上の無線ネットワークを通じた通信を含んでもよい。例示的な無線ネットワークは、無線ローカルエリアネットワーク(WLAN)、無線パーソナルエリアネットワーク(WPAN)、無線メトロポリタンエリアネットワーク(WMAN)、セルラネットワーク及び衛星ネットワークを含む(これらに限定されない)。このようなネットワークを通じて通信するときに、無線機518は、いずれかのバージョンの1つ以上の適切な標準に従って動作してもよい。
ネットワークコンポーネント517は、様々な適切な有線及び/又は無線通信技術を使用して信号を送信及び受信可能な1つ以上のネットワークコンポーネントを含んでもよい。このような技術は、1つ以上の有線及び/又は無線ネットワークを通じた通信を含んでもよい。このようなネットワークを通じて通信するときに、ネットワークコンポーネント517は、いずれかのバージョンの1つ以上の適切な標準に従って動作してもよい。実施例では、ディスプレイ520は、いずれかのテレビ型モニタ又はディスプレイを有してもよい。ディスプレイ520は、例えば、コンピュータディスプレイ画面、タッチスクリーンディスプレイ、ビデオモニタ、テレビのようなデバイス及び/又はテレビを有してもよい。ディスプレイ520は、デジタル及び/又はアナログでもよい。実施例では、ディスプレイ520は、ホログラフィックディスプレイでもよい。また、ディスプレイ520は、視覚投影を受け取ることができる透明な表面でもよい。このような投影は、様々な形式の情報、画像及び/又はオブジェクトを伝達してもよい。例えば、このような投影は、モバイル拡張現実(MAR:mobile augmented reality)アプリケーションの視覚オーバーレイでもよい。1つ以上のアプリケーション516の制御で、プラットフォーム502は、ディスプレイ520にユーザインタフェース522を表示してもよい。
実施例では、コンテンツサービスデバイス530は、いずれかの国内、国際及び/又は独立のサービスによりホストされ、従って、例えばインターネットを介してプラットフォーム502にアクセス可能になってもよい。コンテンツサービスデバイス530は、プラットフォーム502及び/又はディスプレイ520に結合されてもよい。プラットフォーム502及び/又はコンテンツサービスデバイス530は、ネットワーク560へのメディア情報及びネットワーク560からのメディア情報を通信(例えば、送信及び/又は受信)するために、ネットワーク560に結合されてもよい。コンテンツ配信デバイス540もまた、プラットフォーム502及び/又はディスプレイ520に結合されてもよい。
実施例では、コンテンツサービスデバイス530は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、カメラ、インターネット可能デバイス又はデジタル情報及び/又はコンテンツを配信可能な機器、並びにコンテンツプロバイダとプラットフォーム502及び/又はディスプレイ520との間で直接に又はネットワーク560を介して一方向又は双方向に通信可能な他の同様なデバイスを有してもよい。コンテンツは、ネットワーク560を介してシステム500のコンポーネント及びコンテンツプロバイダのいずれか1つへ及びいずれか1つから一方向及び/又は双方向に通信されてもよいことが分かる。コンテンツの例は、例えば、ビデオ、音楽、医療及びゲーム情報等を含む如何なるメディア情報を含んでもよい。
コンテンツサービスデバイス530は、メディア情報、デジタル情報及び/又は他のコンテンツを含み、ケーブルテレビ番組のようなコンテンツを受信する。コンテンツプロバイダの例は、いずれかのケーブル若しくは衛星テレビ又はラジオ若しくはインターネットコンテンツプロバイダを有してもよい。提供される例は、本発明の実施例を限定することを意味するものではない。
実施例では、プラットフォーム502は、1つ以上のナビゲーション機能を有するナビゲーションコントローラ550から制御信号を受信してもよい。コントローラ550のナビゲーション機能は、例えば、ユーザインタフェース522と相互作用するために使用されてもよい。実施例では、ナビゲーションコントローラ550は、ユーザが空間(例えば連続及び多次元)データをコンピュータに入力することを可能にするコンピュータハードウェアコンポーネント(特にヒューマンインタフェースデバイス)でもよいポインティングデバイス、コントロールパッド、キーボード又はタッチスクリーンデバイスでもよい。グラフィカルユーザインタフェース(GUI)、テレビ及びモニタのようなのような多くのシステムは、ユーザが物理的ジェスチャを使用してコンピュータ又はテレビへのデータを制御及び提供することを可能にする。
コントローラ550のナビゲーション機能の動きは、ディスプレイに表示されるポインタ、カーソル、フォーカスリング又は他の視覚インジケータの動きにより、ディスプレイ(例えば、ディスプレイ520)に反映されてもよい。例えば、ソフトウェアアプリケーション516の制御で、ナビゲーションコントローラ550に存在するナビゲーション機能は、例えば、ユーザインタフェース522に表示される仮想ナビゲーション機能にマッピングされてもよい。実施例では、コントローラ550は、別のコンポーネントではなく、プラットフォーム502及び/又はディスプレイ520に統合されてもよい。しかし、実施例はここに図示又は記載の要素又は状況に限定されない。
実施例では、ドライバ(図示せず)は、例えば、有効である場合、初期ブートアップ後にユーザがボタンに触れることによりテレビのようにプラットフォーム502を直ちに電源オン及びオフすることを可能にする技術を有してもよい。プログラムロジックは、プラットフォームが“オフ”にされているときに、プラットフォーム502がコンテンツをメディアアダプタ又は他のコンテンツサービスデバイス530若しくはコンテンツ配信デバイス540にストリーミングすることを可能にしてもよい。更に、チップセット505は、例えば、5.1サラウンド・サウンド・オーディオ及び/又は高精細度7.1サラウンド・サウンド・オーディオのためのハードウェア及び/又はソフトウエアのサポートを有してもよい。ドライバは、統合されたグラフィックプラットフォームのためのグラフィックドライバを含んでもよい。実施例では、グラフィックドライバは、PCI(peripheral component interconnect)Expressグラフィックカードを有してもよい。
様々な実施例では、システム500に示すコンポーネントのうちいずれか1つ以上は、統合されてもよい。例えば、プラットフォーム502及びコンテンツサービスデバイス530は統合されてもよく、プラットフォーム及びコンテンツ配信デバイス540は統合されてもよく、プラットフォーム502、コンテンツサービスデバイス530及びコンテンツ配信デバイス540は統合されてもよい。様々な実施例では、プラットフォーム502及びディスプレイ520は、統合されたユニットでもよい。例えば、ディスプレイ520及びコンテンツサービスデバイス530は統合されてもよく、ディスプレイ520及びコンテンツ配信デバイス540は統合されてもよい。これらの例は本発明を限定することを意味するものではない。
様々な実施例では、システム500は、無線システム、有線システム又は双方の組み合わせとして実装されてもよい。無線システムとして実装される場合、システム500は、1つ以上のアンテナ、送信機、受信機、トランシーバ、増幅器、フィルタ、制御ロジック等のような無線共有媒体で通信するのに適したコンポーネント及びインタフェースを含んでもよい。無線共有媒体の例は、RFスペクトル等のような無線スペクトルの一部を含んでもよい。有線システムとして実装される場合、システム500は、入出力(I/O)アダプタ、対応する有線通信媒体とI/Oアダプタとを接続する物理コネクタ、ネットワークインタフェースカード(NIC)、ネットワークコントローラ(例えば、内部又は外部のEthernet(登録商標)コントローラ及びポート)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ等のような有線通信媒体で通信するのに適したコンポーネント及びインタフェースを含んでもよい。有線通信媒体の例は、配線、ケーブル、金属リード、印刷基板回路(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペアケーブル、同軸ケーブル、光ファイバケーブル等を含んでもよい。
プラットフォーム502は、情報を通信するために1つ以上の論理又は物理チャネルを確立してもよい。情報は、メディア情報と制御情報とを含んでもよい。メディア情報は、ユーザに対して意図するコンテンツを表す如何なるデータを示してもよい。コンテンツの例は、例えば、音声会話、テレビ会議、ストリーミングビデオ、電子メール(email)メッセージ、音声メールメッセージ、英数字シンボル、グラフィック、画像、ビデオ、テキスト等からのデータを含んでもよい。音声会話からのデータは、例えば、音声情報、沈黙期間、背景雑音、快適な雑音、トーン等でもよい。制御情報は、自動化システムに対して意図するコマンド、命令又は制御ワードを表す如何なるデータを示してもよい。例えば、制御情報は、システムを通じてメディア情報をルーティングするため、又は所定の方法でメディア情報を処理するようにノードに命令するために使用されてもよい。しかし、実施例は図5に図示又は説明する要素又は状況に限定されない。
前述のように、システム500は、様々な物理的様式又は形状に具現されてもよい。図6は、システム500のコンポーネントが具現され得る小型デバイス600の実施例を示している。実施例では、例えば、デバイス600は、無線機能を有するモバイルコンピュータデバイスとして実装されてもよい。モバイルコンピュータデバイスは、例えば、1つ以上のバッテリのようなモバイル動力源又は電源と処理システムとを有する如何なるデバイスを示してもよい。
前述のように、モバイルコンピュータデバイスの例は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット又はスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等を含んでもよい。
モバイルコンピュータデバイスの例はまた、手首装着コンピュータ、指装着コンピュータ、指輪型コンピュータ、眼鏡型コンピュータ、ベルトチップコンピュータ、アームバンドコンピュータ、靴型コンピュータ、衣類型コンピュータ、及び他の装着可能なコンピュータのように、人により装着されるように構成されたコンピュータを含んでもよい。実施例では、例えば、モバイルコンピュータデバイスは、コンピュータアプリケーションと、音声通信及び/又はデータ通信とを実行可能なスマートフォンとして実装されてもよい。いくつかの実施例は、一例としてスマートフォンとして実装されるモバイルコンピュータデバイスについて説明することがあるが、他の実施例は、同様に他の無線モバイルコンピュータデバイスを使用して実装されてもよいことが分かる。実施例はこの点に限定されない。
図6に示すように、デバイス600は、筐体602と、ディスプレイ604と、入出力(I/O)デバイス606と、アンテナ608とを有してもよい。デバイス600はまた、ナビゲーション機能612を有してもよい。ディスプレイ604は、モバイルコンピュータデバイスに適切な情報を表示するためのユーザインタフェース610のようないずれか適切なディスプレイユニットを有してもよい。
I/Oデバイス606は、情報をモバイルコンピュータデバイスに入力するためのいずれか適切なI/Oデバイスを有してもよい。I/Oデバイス606の例は、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロフォン、スピーカ、音声認識デバイス及びソフトウェア等を含んでもよい。情報はまた、マイクロフォンによりデバイス600に入力されてもよい。このような情報は、音声認識デバイスによりデジタル化されてもよい。実施例はこの点に限定されない。
様々な実施例は、ハードウェアエレメント、ソフトウェアエレメント又は双方の組み合わせを使用して実装されてもよい。ハードウェアエレメントの例は、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗、コンデンサ、インダクタ等)、集積回路、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含んでもよい。ソフトウェアの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ドライバ、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、計算コード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はこれらのいずれかの組み合わせを含んでもよい。実施例がハードウェアエレメント及び/又はソフトウェアエレメントを使用して実装されるか否かは、所望の計算レート、パワーレベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度及び他の設計若しくは性能上の制約のようないずれかの数の要因に従って変化してもよい。
少なくとも1つの実施例の1つ以上の態様は、プロセッサ内の様々なロジックを表す機械読み取り可能媒体に格納された表現上の命令により実装されてもよい。これは、機械により読み取られた場合、機械に対してここに記載の技術を実行するロジックを実現させる。“IPコア(IP core)”として知られるこのような表現は、有形の機械読み取り可能な媒体に格納され、実際にロジック又はプロセッサを作る組み立て機械にロードするため、様々な消費者又は製造工場に供給されてもよい。
従って、実施例は、複数のバッファを示すために第1のポインタを連続的にスワッピングすることにより、第1のポインタにより示された複数のバッファにデータを連続的にロードし、複数のバッファを示すために第2のポインタを連続的にスワッピングすることにより、複数のバッファに第2のポインタを連続的に示すことで複数のバッファにロードされたデータを連続的に処理することを含む方法を含んでもよい。
実施例はまた、複数のバッファと、ロードポインタにより示された各バッファにデータをロードするデータソースと、処理ポインタにより示された各バッファのデータを処理するプロセッサと、プロセッサにより実行された場合、コンピュータに対してデータをロードするために複数のバッファを示すようにロードポインタをスワッピングさせ、データを処理するために複数のバッファを示すように処理ポインタをスワッピングさせる一式の命令を含むコンピュータ読み取り可能媒体とを含むシステムを含んでもよい。
実施例はまた、プロセッサにより実行された場合、コンピュータに対して複数のバッファを示すために第1のポインタを連続的にスワッピングすることにより、第1のポインタにより示された複数のバッファにデータを連続的にロードさせ、複数のバッファを示すために第2のポインタを連続的にスワッピングすることにより、複数のバッファに第2のポインタを連続的に示すことで複数のバッファにロードされたデータを連続的に処理させる一式の命令を有するコンピュータ読み取り可能媒体を含んでもよい。
従って、実施例は、最初に第1のバッファにロードポインタを示し、最初に第2のバッファにスワップポインタを示し、最初に第3のバッファに処理ポインタを示し、ロードポインタにより示されたバッファのデータをロードし、ロードポインタをスワップポインタとスワッピングし、その後、処理ポインタをスワップポインタとスワッピングし、ロードポインタにより示されたバッファのデータをロードし、処理ポインタにより示されたバッファのデータを処理することを含む方法を含んでもよい。
実施例は、全ての種類の半導体集積回路(IC)チップでの使用に適用可能である。これらのICチップの例は、プロセッサ、コントローラ、チップセットコンポーネント、プログラム可能論理アレイ(PLA)、メモリチップ、ネットワークチップ等を含むが、これらに限定されない。更に、いくつかの図面において、信号線が線で表されている。構成要素の信号経路を示すためのもの、数字のラベルを有するもの、複数の構成要素の信号経路を示すためのもの、及び/又は主な情報の流れの方向を示すために1つ以上の終端に矢印を有するもののように、いくつかが異なることがある。しかし、このことは限定的に解釈されるべきではない。むしろ、このような更なる詳細は、回路の容易な理解を助けるために1つ以上の例示的な実施例と共に使用されることがある。いずれかの表された信号線は、更なる情報を有していても有していなくても、実際に、複数の方向に進んでもよく、いずれか適切な種類の信号方式(例えば、差動ペア、光ファイバ線及び/又はシングルエンド回線で実装されたデジタル又はアナログ回線)で実装されてもよい1つ以上の信号を有してもよい。
例示的なサイズ/モデル/値/範囲が与えられることがあるが、本発明の実施例はこれに限定されない。製造技術(例えば、フォトリソグラフィ)は時間と共に成熟するため、更に小さいサイズのデバイスが製造され得ることが想定される。更に、例示及び説明を簡潔にするため、また、本発明の実施例の特定の態様を曖昧にしないため、ICチップ及び他のコンポーネントへの周知の電力/接地接続は、図面に示されることもあり、示されないこともある。更に、本発明の実施例を曖昧にすることを回避するため、また、このようなブロック図構成の実装に関する詳細は実施例が実装されるプラットフォームにかなり依存するという事実を鑑みて、構成はブロック図形式で示されることがある。すなわち、このような詳細は、当業者の範囲内で周知である。本発明の特定の実施例を説明するために特定の詳細(例えば、回路)が示される場合、本発明の実施例がこれらの特定の詳細なしに又はそれを変更して実施されてもよいことは当業者に明らかである。従って、説明は限定的ではなく例示的と見なされるべきである。
例えば、いくつかの実施例は、機械若しくは有形のコンピュータ読み取り可能媒体、又は機械により実行された場合、機械に対して実施例による方法及び/又は動作を実行させ得る命令又は一式の命令を格納し得る物(製造物)を使用して実装されてもよい。このような機械は、例えば、いずれか適切な処理プラットフォーム、コンピュータプラットフォーム、コンピュータデバイス、処理デバイス、コンピュータシステム、処理システム、コンピュータ、プロセッサ等を含んでもよく、ハードウェア及び/又はソフトウェアのいずれか適切な組み合わせを使用して実装されてもよい。例えば、機械読み取り可能媒体又は物は、いずれか適切な種類のメモリユニット、メモリデバイス、メモリ製造物、メモリ媒体、記憶デバイス、記憶製造物、記憶媒体及び/又は記憶ユニット(例えば、メモリ、取り外し可能又は取り外し不可能媒体、消去可能又は消去不可能媒体、書き込み可能又は再書き込み可能媒体、デジタル又はアナログ媒体、ハードディスク、フロッピー(登録商標)ディスク、コンパクトディスク読み取り専用メモリ(CD-ROM)、記録可能コンパクトディスク(CD-R)、再書き込み可能コンパクトディスク(CD-RW)、光ディスク、磁気媒体、光磁気媒体、取り外し可能メモリカード又はディスク、様々な種類のデジタル多用途ディスク(DVD)、テープ、カセット等)を含んでもよい。命令は、いずれか適切なハイレベル、ローレベル、オブジェクト指向型、ビジュアル、コンパイル済及び/又はインタープリタプログラミング言語を使用して実装されたいずれか適切な種類のコード(ソースコード、コンパイル済コード、インタープリタ型コード、実行可能コード、スタティックコード、ダイナミックコード、暗号化コード等)を含んでもよい。
特に言及しない限り、“処理”、“計算”、“算出”、“決定”等というような用語は、コンピュータシステムのレジスタ及び/又はメモリ内の物理量(例えば、電子量)として表されたデータを、コンピュータシステムのメモリ、レジスタ又は他のこのような情報記憶装置、伝送若しくは表示デバイス内の物理量として他の同様に表されたデータに操作及び/又は変換するコンピュータ若しくはコンピュータシステム又は同様の電子コンピュータデバイスの動作及び/又は処理を示すことが分かる。実施例はこの点に限定されない。
“結合”という用語は、ここでは、該当するコンポーネント間のいずれかの種類の関係(直接又は間接)を示すために使用されることがあり、電気的、機械的、流体的、光学的、電磁気的、電気機械的又は他の接続に適用されてもよい。更に、“第1”、“第2”等の用語は、ここでは説明を容易にするためにのみ使用されることがあり、特に言及しない限り、特定の時間的又は年代的意味を有さない。
当業者は、前述の説明から、本発明の実施例の広い技術が様々な形式で実装され得ることを認識する。従って、本発明の実施例について特定の例に関して説明したが、他の変形が図面、明細書及び特許請求の範囲を研究することで当業者に明らかになるため、本発明の実施例の真の範囲はこれに限定されない。

Claims (24)

  1. 複数のバッファと、
    ロードポインタにより示された各バッファにデータをロードするデータソースと、
    処理ポインタにより示された各バッファのデータを処理するプロセッサと、
    プロセッサにより実行された場合、コンピュータに対してデータをロードするために前記複数のバッファを示すように前記ロードポインタをスワッピングさせ、前記データを処理するために前記複数のバッファを示すように前記処理ポインタをスワッピングさせ、前記ロードポインタと前記処理ポインタとをスワッピングするときに、スワップポインタへのアクセスを制御するためにセマフォロックを取得させる一式の命令を含むコンピュータ読み取り可能媒体と
    を有するシステム。
  2. 前記データソースは、カメラである、請求項1に記載のシステム。
  3. 前記データソースは、ストリーミングビデオソースである、請求項1に記載のシステム。
  4. 前記データソースは、ビデオ処理スレッドの出力である、請求項1に記載のシステム。
  5. 前記プロセッサは、グラフィックプロセッサである、請求項1に記載のシステム。
  6. プロセッサは、複数の処理スレッドに対応する複数のポインタにより示された各バッファのデータを処理する、請求項1に記載のシステム。
  7. 複数のバッファを示すために第1のポインタを連続的にスワッピングすることにより、第1のポインタにより示された複数のバッファにデータを連続的にロードするステップと、
    前記複数のバッファを示すために第2のポインタを連続的にスワッピングすることにより、前記複数のバッファに第2のポインタを連続的に示すことで前記複数のバッファにロードされた前記データを連続的に処理するステップと
    前記第1のポインタと前記第2のポインタとをスワッピングするときに、スワップポインタへのアクセスを制御するためにセマフォロックを取得するステップと
    を有する方法。
  8. 前記複数のバッファのうち1つがロードされたことを示すためにデータレディ信号を提供するステップを更に有する、請求項7に記載の方法。
  9. 前記複数のバッファに連続的にロードされる前記データは、フレームデータである、請求項7に記載の方法。
  10. 前記複数のバッファに連続的にロードされる前記データは、画像データである、請求項7に記載の方法。
  11. 前記複数のバッファにロードされた前記データを連続的に処理するステップは、前記複数のバッファにロードされた前記データのビデオ処理アルゴリズムを実行することを有する、請求項7に記載の方法。
  12. 複数の処理スレッドは、前記複数のバッファを示すために前記複数のポインタを連続的にスワッピングすることにより、前記複数の処理スレッドに対応する複数のポインタをそれぞれ前記複数のバッファに連続的に示すことで前記複数のバッファにロードされた前記データを連続的に処理する、請求項7に記載の方法。
  13. プロセッサにより実行された場合、コンピュータに対して、
    複数のバッファを示すために第1のポインタを連続的にスワッピングすることにより、第1のポインタにより示された複数のバッファにデータを連続的にロードさせ、
    前記複数のバッファを示すために第2のポインタを連続的にスワッピングすることにより、前記複数のバッファに第2のポインタを連続的に示すことで前記複数のバッファにロードされた前記データを連続的に処理させ
    前記第1のポインタと前記第2のポインタとをスワッピングするときに、スワップポインタへのアクセスを制御するためにセマフォロックを取得させる一式の命令を有するコンピュータプログラム
  14. プロセッサにより実行された場合、コンピュータに対して、
    前記複数のバッファのうち1つがロードされたことを示すためにデータレディ信号を提供させる一式の命令を更に有する、請求項13に記載のコンピュータプログラム
  15. 前記複数のバッファに連続的にロードされる前記データは、フレームデータである、請求項13に記載のコンピュータプログラム
  16. 前記複数のバッファに連続的にロードされる前記データは、画像データである、請求項13に記載のコンピュータプログラム
  17. 前記複数のバッファにロードされた前記データを連続的に処理することは、前記複数のバッファにロードされた前記データのビデオ処理アルゴリズムを実行することを含む、請求項13に記載のコンピュータプログラム
  18. 複数の処理スレッドは、前記複数のバッファを示すために前記複数のポインタを連続的にスワッピングすることにより、前記複数の処理スレッドに対応する複数のポインタをそれぞれ前記複数のバッファに連続的に示すことで前記複数のバッファにロードされた前記データを連続的に処理する、請求項13に記載のコンピュータプログラム
  19. 請求項13ないし18のうちいずれか1項に記載のコンピュータプログラムを記録したコンピュータ読み取り可能媒体。
  20. 最初に第1のバッファにロードポインタを示すステップと、
    最初に第2のバッファにスワップポインタを示すステップと、
    最初に第3のバッファに処理ポインタを示すステップと、
    前記ロードポインタにより示されたバッファのデータをロードするステップと、
    前記ロードポインタを前記スワップポインタとスワッピングし、その後、前記処理ポインタを前記スワップポインタとスワッピングするステップと、
    前記ロードポインタにより示された前記バッファの前記データをロードし、前記処理ポインタにより示された前記バッファの前記データを処理するステップと
    前記ロードポインタと処理ポインタとをスワッピングするときに、スワップポインタへのアクセスを制御するためにセマフォロックを取得するステップと
    を有する方法。
  21. バッファがロードされたことを示すためにデータレディ信号を提供するステップを更に有する、請求項20に記載の方法。
  22. 前記バッファにロードされる前記データは、フレームデータである、請求項20に記載の方法。
  23. 前記バッファにロードされる前記データは、画像データである、請求項20に記載の方法。
  24. 前記バッファにロードされた前記データを処理するステップは、前記バッファにロードされた前記データのビデオ処理アルゴリズムを実行することを有する、請求項20に記載の方法。
JP2014551278A 2012-01-06 2012-12-27 データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング Expired - Fee Related JP5968463B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
MYPI2012000072 2012-01-06
MYPI2012000072 2012-01-06
PCT/US2012/071750 WO2013103573A1 (en) 2012-01-06 2012-12-27 Swapping pointers to process data stored in buffers by a data source without copying the data to separate storage

Publications (2)

Publication Number Publication Date
JP2015505409A JP2015505409A (ja) 2015-02-19
JP5968463B2 true JP5968463B2 (ja) 2016-08-10

Family

ID=48745378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014551278A Expired - Fee Related JP5968463B2 (ja) 2012-01-06 2012-12-27 データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング

Country Status (5)

Country Link
US (1) US20150006839A1 (ja)
EP (1) EP2801023A4 (ja)
JP (1) JP5968463B2 (ja)
CN (1) CN104025037B (ja)
WO (1) WO2013103573A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170154403A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Triple buffered constant buffers for efficient processing of graphics data at computing devices
FR3131033A1 (fr) * 2021-12-20 2023-06-23 Vitesco Technologies Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179665A (en) * 1987-06-24 1993-01-12 Westinghouse Electric Corp. Microprocessor information exchange with updating of messages by asynchronous processors using assigned and/or available buffers in dual port memory
US5696939A (en) * 1995-09-29 1997-12-09 Hewlett-Packard Co. Apparatus and method using a semaphore buffer for semaphore instructions
US6243770B1 (en) * 1998-07-21 2001-06-05 Micron Technology, Inc. Method for determining status of multiple interlocking FIFO buffer structures based on the position of at least one pointer of each of the multiple FIFO buffers
JP3656438B2 (ja) * 1998-11-02 2005-06-08 松下電器産業株式会社 高速画像入力変換装置
JP2001282650A (ja) * 2000-03-29 2001-10-12 Mitsubishi Electric Corp データバッファリング装置およびこのデータバッファリング装置を用いた分散制御システム
US6725457B1 (en) * 2000-05-17 2004-04-20 Nvidia Corporation Semaphore enhancement to improve system performance
US20030056194A1 (en) * 2001-07-16 2003-03-20 Lino Iglesias Enhanced software components
US6809735B1 (en) * 2002-01-08 2004-10-26 Apple Computer, Inc. Virtualization of graphics resources
JP2004272373A (ja) * 2003-03-05 2004-09-30 Mitsubishi Electric Corp バッファリング装置
US7134000B2 (en) * 2003-05-21 2006-11-07 Analog Devices, Inc. Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
JP4749002B2 (ja) * 2005-02-25 2011-08-17 ルネサスエレクトロニクス株式会社 データ転送装置、画像処理装置及びデータ転送制御方法
US7487271B2 (en) * 2005-09-22 2009-02-03 Motorola, Inc. Method and apparatus using buffer pools and arrays of buffer pointers for sharing memory in a multiprocessor system
US7958280B2 (en) * 2006-10-27 2011-06-07 Stec, Inc. Parallel data transfer in solid-state storage
US7720802B2 (en) * 2007-01-03 2010-05-18 International Business Machines Corporation Reclaiming resident buffers when a reclaim threshold has been exceeded by swapping the oldest in use buffer and a new buffer, and referencing the new buffer via an updated set of read and write pointers
US8522242B2 (en) * 2007-12-31 2013-08-27 Intel Corporation Conditional batch buffer execution
US8321869B1 (en) * 2008-08-01 2012-11-27 Marvell International Ltd. Synchronization using agent-based semaphores
US8291136B2 (en) * 2009-12-02 2012-10-16 International Business Machines Corporation Ring buffer
US8327047B2 (en) * 2010-03-18 2012-12-04 Marvell World Trade Ltd. Buffer manager and methods for managing memory
US20130069981A1 (en) * 2011-09-15 2013-03-21 Research In Motion Limited System and Methods for Managing Composition of Surfaces

Also Published As

Publication number Publication date
WO2013103573A1 (en) 2013-07-11
EP2801023A4 (en) 2017-06-21
EP2801023A1 (en) 2014-11-12
CN104025037A (zh) 2014-09-03
CN104025037B (zh) 2018-07-03
JP2015505409A (ja) 2015-02-19
US20150006839A1 (en) 2015-01-01

Similar Documents

Publication Publication Date Title
JP6374038B2 (ja) ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム
TWI639973B (zh) 動態再平衡圖型處理器資源的方法、裝置與系統
TWI535277B (zh) 用於深度緩衝之方法、設備及系統
US9407961B2 (en) Media stream selective decode based on window visibility state
TWI615807B (zh) 用於記錄在輸入幾何物件粒度上的可視度測試之結果的方法、設備及系統
JP6182225B2 (ja) カラーバッファ圧縮
JP5908605B2 (ja) 動き推定を用いたオブジェクト検出
US20150248292A1 (en) Handling compressed data over distributed cache fabric
JP6745020B2 (ja) 方法、コンピュータプログラム、コンピュータ可読記録媒体および装置
US20140333662A1 (en) Multi-sampling anti-aliasing compression by use of unreachable bit combinations
US9538208B2 (en) Hardware accelerated distributed transcoding of video clips
US9864635B2 (en) Reducing the number of read/write operations performed by a CPU to duplicate source data to enable parallel processing on the source data
JP6419856B2 (ja) 非特権アプリケーションによるグラフィクスワークロード・サブミッション
US9773477B2 (en) Reducing the number of scaling engines used in a display controller to display a plurality of images on a screen
JP5968463B2 (ja) データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング
JP2015508528A (ja) パイプライン化された画像処理シーケンサ
TW201602961A (zh) 用以延遲著色之串流壓縮去鋸齒方法
US8903193B2 (en) Reducing memory bandwidth consumption when executing a program that uses integral images
TWI610178B (zh) 共享函數多埠rom系統及裝置
US20130326351A1 (en) Video Post-Processing on Platforms without an Interface to Handle the Video Post-Processing Request from a Video Player
EP2856754A1 (en) Video post- processing on platforms without an interface to handle the video post-processing request from a video player

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151225

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160705

R150 Certificate of patent or registration of utility model

Ref document number: 5968463

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees