JP2007520766A - データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータのための装置及び方法 - Google Patents

データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータのための装置及び方法 Download PDF

Info

Publication number
JP2007520766A
JP2007520766A JP2006515357A JP2006515357A JP2007520766A JP 2007520766 A JP2007520766 A JP 2007520766A JP 2006515357 A JP2006515357 A JP 2006515357A JP 2006515357 A JP2006515357 A JP 2006515357A JP 2007520766 A JP2007520766 A JP 2007520766A
Authority
JP
Japan
Prior art keywords
hardware accelerator
processing element
data
processing
register
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
JP2006515357A
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 JP2007520766A publication Critical patent/JP2007520766A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/507Low-level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータを用いた方法及び装置が、説明される。一実施例では、本装置は、複数のプロセッシング要素(PE)を備える。複数のハードウェアアクセラレータが、選択ユニットに接続される。レジスタが、選択ユニットと複数のプロセッシング要素に接続される。一実施例では、レジスタは複数のプロセッシング要素によりアクセス可能な複数の汎用レジスタ(GPR)と、複数のハードウェアアクセラレータとを備える。一実施例では、GPRの少なくとも1つは、選択ユニットを介した選択されたハードウェアアクセラレータへのアクセスを可能にするプロセッシング要素をイネーブル化するビットを有する。

Description

発明の詳細な説明
[発明の技術分野]
本発明の1以上の実施例は、一般にデジタル信号処理の技術分野に関する。より詳細には、本発明の実施例の1以上は、データドリブンハードウェアにおける選択可能なハードウェアアクセラレータのための装置及び方法に関する。
[発明の背景]
マルチプロセッシングデジタル信号プロセッサは、一般に階層的またはピア・ツー・ピアプロセッサアレイを利用する。残念なことに、新たなプロセッシング要素がデジタル信号プロセッサに追加されると、既存のコードの書き換えが必要となる。さらに、デジタル信号プロセッサを実行するソフトウェアは、ハードウェアタイミングに依存し、このため、異なるシリコン処理技術間での移植性はない。この結果、これらのプロセッサの一バージョンに書き込まれたバイナリまたはアセンブリコードは、異なるプロセッシング要素を有する他のバージョンへの移植性はないかもしれない。マルチプロセッシングデジタル信号プロセッサを実現する一技術は、データドリブンアーキテクチャの利用である。
データドリブンアーキテクチャと対照的に、現在広く利用されているプロセッサは、いわゆるフォン・ノイマン論理に従い開発されたものである。フォン・ノイマン論理によると、プロセッサは1つずつ逐次的に命令を処理する。さらに、フォン・ノイマンプロセッサは、クロックを用いてデータ入出力(I/O)を制御し、一時点に1つの命令によりプログラムを実行するよう動作する。この結果、処理スピードの向上には、増大する電力消費を導くクロック周波数の増加を必要とする。
言い換えると、マルチプロセッサの機能は、データ転送及びメモリへのデータ書き込みの同期を必要とする。同期処理の一方法は、すべての回路をクロック信号と呼ばれる共通の信号に結び付けることである。残念なことに、内部回路の大多数はこのクロックに結び付けられているため、データ量の大きなアプリケーションを処理する際には、内部回路は良好に実行されない。一方、データドリブンアーキテクチャは、データシーケンスに関係なく、データが利用可能であるときのみ処理を行うプロセッサを利用する。従って、複数のデータが入力されるときには常に、複数のプログラムが読み込まれるため、データ処理はデータドリブンアーキテクチャ内でパラレルに実行される。
ハードウェアアクセラレータは、処理を向上及び高速化するため、よく利用されるデータ処理機能または処理を高速化するよう設計されたものである。データドリブンアーキテクチャでは、複数のハードウェアアクセラレータがデータ処理パフォーマンスを向上させるため、デジタル処理ユニットに実装されているかもしれない。残念なことに、デジタルプロセッシングユニット内部で制御可能なハードウェアアクセラレータの個数は、ハードウェアアクセラレータのアドレッシングなどの複数の要因により制限される。これらの要因の結果として、ハードウェアアクセラレータの個数は、少数の大規模かつ複雑なハードウェアアクセラレータに制限される。この要求は、データドリブンアーキテクチャのデジタルプロセッシングユニット内部の複数のより小規模かつシンプルなハードウェアアクセラレータを有するという要求と相反するものである。
[詳細な説明]
データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータを用いた方法及び装置が説明される。一実施例では、本装置は、複数のプロセッシングユニット(PE)を備える。複数のハードウェアアクセラレータが、選択ユニットに接続されている。さらに、レジスタが、選択ユニット及び複数のプロセッシングユニットに接続されている。一実施例では、当該レジスタは、複数のアクセラレータと共に、複数のプロセッシング要素によりアクセス可能な複数の汎用レジスタ(GPR)を備える。一実施例では、GPRの少なくとも1つは、プロセッシングユニットが選択ユニットを介し選択されたハードウェアアクセラレータにアクセス可能となるためのビットを有する。
メディア処理アプリケーションは、典型的には、大量のデータに対する少数の処理リセットを実行する。命令フローアプリケーション用に設計された汎用プロセッサは、汎用プロセッサがフォン・ノイマン論理に従い設計されているため、データ量の大きなアプリケーションに対しては良好には機能しない。フォン・ノイマン論理によると、プロセッサは一つずつ逐次的に命令を処理する。さらに、汎用プロセッサの機能は、データ転送及びデータのメモリへの書き込みの同期を必要する。この同期方法は、すべての回路を通常はクロック信号と呼ばれる共通信号に結び付けることにより実行される。
従って、近年の進歩により、画像処理アプリケーションなどのデータ量の大きなアプリケーションのためのデータドリブンアーキテクチャが利用されるようになった。汎用プロセッサと対照的に、データドリブンアーキテクチャは、データシーケンスに関係なく、データが利用可能なときに限り機能するプロセッサを利用する。複数のデータが入力されるときは常に、プログラムが読み込まれるため、データ処理はデータドリブンアーキテクチャ内でパラレルに実行される。従って、一実施例は、以下に限定されるものではないが、映像処理、画像処理、音声処理、セキュリティベースアプリケーションなどを含むメディア処理アプリケーションなどのデータ量の大きなアプリケーションを実行するため、データドリブンアーキテクチャ内に組み込まれるメディア信号プロセッサ(MSP)を提供する。
図示されるように、メディア信号プロセッサ(MSP)100は、1以上のプロセッシング要素120(120−1,...,120−n)から構成される。図示されるように、各プロセッシング要素(PE)120は、通信制御レジスタファイル110に接続される。レジスタファイル110は、PE120によるデータ交換を可能にすると共に、レジスタファイル110内に含まれる1以上の汎用レジスタ(GPR)内に格納機能を提供する。PE120は、MSP110の基本構成ブロックであり、マルチプライ−アキュムレート命令、ビット回転命令などのカスタムインタフェース機能、算術論理ユニット機能及びフロー制御を提供するよう構成された命令セットを有するものであってもよい。また、MSP100が実行するよう構成された機能に応じて、PE120は、所望の機能を実現し、メディア信号プロセッサ100により実現されるメディア処理アプリケーションのアルゴリズム部分をパラレルに実行するよう分割されてもよい。
メディア処理アプリケーションのパフォーマンスを向上及び促進するため、MSP100は、複数のハードウェアアクセラレータ150(150−1,...,150−n)を備える。従来、ハードウェアアクセラレータは、よく利用されるメディア機能を高速化するためのハードウェア論理を提供するよう構成されている。例えば、MSP100が画像処理アプリケーションを実行するよう構成されている場合、ハードウェアアクセラレータは、例えば、2レベルテキストエンコーダ/デコーダ機能、JPEG(Joint Photographic Experts Group)、ハフマンエンコーダ/デコーダ機能、2D三角フィルタ機能などを実行するよう構成可能である。
このような構成では、ハードウェアアクセラレータは、通信制御レジスタ100に配線化実装された1または2のハードウェアアクセラレータに限定されるであろう。さらに、ハードウェアアクセラレータは、PE120により直接制御される。PE120の命令セットは、MSPの他のPE120及びハードウェアアクセラレータのアドレッシングを処理するよう構成される。残念なことに、PE120により制御可能なハードウェアアクセラレータとPEの個数は、ハードウェアアクセラレータのアドレッシングに割当てられる命令ワードのビット数を含む複数の要因により制限される。この結果、従来の画像信号プロセッシングユニットの結果として得られる制御ビット及びハードウェアアクセラレータの個数を制限することが望ましい。
従来の画像信号プロセッシングユニットと対照的に、MSP100は、従来の画像信号プロセッサの大規模かつ複雑なハードウェアアクセラレータのペアに対して、複数のより小規模かつシンプルなハードウェアアクセラレータを利用するよう構成される。一実施例では、制御論理130と共にスイッチ140が、複数のハードウェアアクセラレータに対応するよう設けられる。従って、PE120は、通信制御レジスタファイル110内のレジスタを介して選択されたハードウェアアクセラレータに指示することができる。PE120による選択されたハードウェアアクセラレータのイネーブル化及び起動が、以下においてより詳細に説明される。従って、MSP100は、指定されたハードウェアアクセラレータ内の所望の技術の一部を実現することによって(「メディア処理機能」)、画像処理アプリケーション、映像処理アプリケーション、音声処理アプリケーション、セキュリティアプリケーションなどを同時に実行するよう構成されてもよい。
図2は、図2に図示されるようなMSP100をさらに示すブロック図である。図示されるように、MSP200はさらに、各種プロセッシング要素120の構成を示す。一実施例では、汎用プロセッシング要素(GPE)は、より複雑なPEが生成可能な基本プロセッシング要素である。一実施例では、PEは、入力データストリームを受付ける入力ポートに接続された入力プロセッシング要素(IPE)、汎用プロセッシング要素(GPE)、マルチプライアキュムレートプロセッシング要素(MACPE)、及び所望の処理機能を実行するため出力データストリームを送信する出力ポートに接続された出力プロセッシング要素(OPE)として分類されてもよい。
さらに、MSP200は、オフチップメモリに関する帯域幅ボトルネックを軽減するため、ローカルデータ及び変数の格納用の内部メモリを備える。例えば、MSP200は、複数のデータストリームを処理するメモリコマンドハンドラ(MCH)と共に、データRAM(Random Access Memory)270を備えるようにしてもよい。図示されるように、入力PE220−1と出力PE220−5は、データストリームの入出力処理を扱い、PE220−2〜2204は、ハードウェアアクセラレータ250(250−1,...,250−n)を用いることにより、あるタイプのアルゴリズム機能を実行する。さらに、各PE220は、例えば、16ビット長であり、16ビットオペランドまたは8ビットオペランドに利用可能な16個のローカルレジスタ及び間接レジスタを備えるようにしてもよい。所望のメディア処理機能を実行するため、各種PEがレジスタファイル210を利用する。
一実施例では、レジスタファイル300が、PEによるデータ交換を可能にし、図3Aに示されるようなデータ操作用の汎用レジスタを提供するためのレジスタファイル210として利用される。一実施例では、データ有効(DV)ビットが、PEによる汎用レジスタ(GPR)310(310−1,...,310−n)の所有権及びデータフローを調整するため、セマフォーシステムを実現する。一実施例では、すべてのPE220は、レジスタファイル300とデータを共有する際、図4〜9を参照することにより示されるように、標準的な所定のセマフォープロトコルに従うことが求められる。一実施例では、各PE220は、例えば、128命令メモリとして、命令を保持する必要がある。典型的には、これらの命令は、データフロー及び算術命令に加えて、1以上のループ処理から構成されてもよい。
一実施例では、GPR310は、データ有効(DV)ビット306(306−1,...,306−n)によりGPR310を通過するデータをタグ付けすることによって、PE220間でデータを交換する。DVビット306の目的は、データ格納リソースの所有権の確立と、1以上のデータ利用者の確率と、選択されたハードウェアアクセラレータの起動の特定の3つである。図4に示された実施例では、PE間のデータ同期処理が説明される。まず、PE0(220−2)が、例えば、PE1(220−3)による利用を意味するGPR360に書き込まれた結果によりHWA DVビット362(図3Aのビット304)を設定することにより、選択されたハードウェアアクセラレータ(HWA)250のイネーブル化を要求する。また、PE0はDVビット364をアサートする。さらに、HWA DVビット362がまた、PE0(220−2)によるHWA250の制御を示すよう設定される。
一実施例では、HWA DVビット362の設定は、プロセッシング要素がHWA250のイネーブル化または起動を要求しているということを制御論理230に通知する。一実施例では、図3Bに示されるように、汎用レジスタ320が制御論理230のための制御レジスタとして指定されてもよい(図2)。このような実施例によると、PE220は、レジスタ320が制御ブロック230のコマンドチャネルとして機能するように、指定されたレジスタ320に制御データを書き込むためのものである。一実施例では、PE220は、出力データのための位置を特定すると共に、ハードウェアアクセラレータの入力データ324を特定する選択されたハードウェアアクセラレータ(HWAセレクト)322を示すためのものである。一実施例では、PE220は、制御データ330に書き込むことによりメディア処理機能を実行するようHWA250に指示する。他の実施例では、コントローラ(図示せず)は、指定されたハードウェアアクセラレータをイネーブル化するようコントローラ230(図2)を設定するためのものとすることが可能である。
図5を再び参照するに、HWA DVビット362とDVビット364が、GPR0(360)の所有権をまず主張し、生成されたデータが選択されたハードウェアアクセラレータ220により与えられることを示すため、PE0(220−2)により設定される。PE1(220−3)は、GPR360のデータに依存しており、それが利用可能となるまで停止される。図示されるように、データが利用可能になるまで、PE1(220−3)とPE2(220−4)は停止される。また、HWAが計算を実行し、出力データをGPR360に書き込むと、図6に示されるようにPE1のDVビット366が設定される。一実施例では、DVビット366がGRP360に設定されているため、PE1は当該データを読み込み、実行を継続することができる。GRP360のデータがPE1(220−3)により1回だけ必要とされる仮定すると、PE1(220−3)は読み出されたデータと共に、それの対応するDVビット366をクリアする。一実施例では、DVビットのリセットと共に、レジスタ310へのリード命令が一命令として実行される。
図7において、PE0(220−2)は、PE2(220−4)の新たなデータを生成し、結果をGPR360に書き込む。データがPE2(220−4)によるデータの読み込みを可能にするためGPR360に書き込まれると、PE0はDVビット368を設定する。PE0は、図8に示されるように、それがGPR360により終了されたことを示すDVビット362をリセットする。DVビット368のアサート処理の検出は、データが利用可能であることを示す。この結果、DVビット368が処理を再開するよう設定されるため、PE2が停止から解放される。次に、PE2(220−4)がGPR360からデータを読出し、DVビット368をクリアする。
このため、一度クリアされると、すべてのDVビットが図9に示されるようにリセットされるため、GPR360はすべてのPE220に利用可能となる。ここで説明されるように、「設定」、「アサート」、「リセット」または「デアサート」の用語は、特定の論理値を意味するものではない。ビットは「1」に設定されてもよく、また「0」に設定されてもよく、何れも本発明の実施例とみなされる。この結果、ここで説明される実施例によると、ビットはアクティブ「0」(アサートされたロー信号またはアクティブ「1」(アサートされたハイ信号)であってもよい。
従って、DVビットを用いることにより、PEはレジスタファイル300(図3A)内のGPR310の所有権を指定することが可能である。一実施例では、設定されたDVビットの検出は、データがGPR360に書き込まれるまでデータに依存するPE220を停止させる。一実施例では、HWA DVビット362は、要求されたデータがPE220または選択されたHWAにより生成されたものか示す。一実施例では、制御レジスタ320(図3B)は、HWA250と当該HWA250を選択したPE220とを特定するためアクセスされる。従って、MSP200の各種PE220は、データドリブンであり、指定されたプログラムデータフローとは関係なく機能する。
図10は、本発明の一実施例によるメディアプロセッサ400を構成するため結合された複数のMSP200を備えるブロック図を示す。図示されるように、MSP200は、データがユニット間でフローするのを可能にする双方向データ接続を可能にする各種ポートを備える。各ポートは、各種の独立した一方向データバスを介しデータを同時に送受信することができる。一実施例では、MSP200の各種ポートは、ポート選択レジスタなどを介し制御された2つのユニット間の各方向におけるFIFO(First−In First−Out)装置から構成される。
従って、ユニット内の任意のポートが、例えば、16ビット長などのデータバスを利用するその他のMSP200のそれぞれのポートに接続可能である。従って、メディアプロセッサ400は、複数のMSP200を用いてデータを自由に交換及び共有し、音声、映像及び画像処理アプリケーションなどのデータ量の大きなアプリケーションのパフォーマンスを向上させる。
さらに、メディアプロセッサ400のMSP200内の各種HWAを備えることにより、メディアプロセッサ400が、映像処理アプリケーション、画像処理アプリケーション、音声処理アプリケーションなどの内部で利用される。さらに、ストリーム及びブロック暗号やキー生成装置などのセキュリティベースアクセラレータを搭載することにより、メディアプロセッサ400は、所望のメディア処理アプリケーションに対して交換されるデータをセキュアなものとする。さらに、メディアプロセッサ400は、メモリアクセスユニット420及び425と、メモリインタフェースユニット430及び435を備える。同様に、入出力(I/O)ブロック460は、各種I/O装置へのアクセスを提供する。
一実施例では、メディアプロセッサ400は、所望のメディア処理機能を提供するため、データドリブンアーキテクチャに搭載されていてもよい。一実施例では、データドリブンメディアアーキテクチャ500が、図11を参照して示される。図11は、本発明の一実施例によるデータドリブンメディアアーキテクチャ500のシステムレベルの図を示す。メディアアーキテクチャ500は、メモリ450及び440に接続されるメディアプロセッサ400を備える。一実施例では、メモリは、例えば、133MHzで実行されるデュアルデータレート(DDR)シンクロナスデータランダムアクセスメモリ(SDRAM)(266−MHzDDR装置)である。
図示されるように、入力メディアストリーム502が、画素情報、音声ストリーム、映像ストリームなどのメディアストリームを処理するメディアプロセッサ400に提供される。メディアプロセッサ400は、PCI(Peripheral Component Interconnect)バスなどのバスに接続される。バス560は、メモリ520に接続されるホストプロセッサ510との接続を可能にする。同様に、バス560は、USB(Universal Serial Bus)532、IEEE(Institute of Electrical and Electronics Engineers)プロトコル1394、パラレルポート536、及び電話537を備えるI/Oインタフェース530に接続される。さらに、ネットワークインタフェース540は、ネットワーク550とバス560とを接続する。
従って、メディアアーキテクチャ装置がより汎用的なメディア処理の実現に進むに従い、固定されたメディア処理機能アクセラレータに対する要求は、画像信号プロセッサ内で現在用いられている大規模かつ複雑なハードウェアアクセラレータと対照的に増大している。例えば、メディア信号プロセッサは、映像符号化中に限って用いられる絶対誤差合計(SAD)エンジンなどのメディア処理機能を実現するようにしてもよい。同一のMSPがまた、表示処理中に限って用いられるスケーリングアクセラレータを有するようにしてもよい。追加的なメディア処理機能はまた、MPEG(Motion Picture Experts Group)映像再生処理などのビットストリーム復号化中に用いられる可変長符号デコーダブロックであってもよい。
開示される実施例によると、各アクセラレータは、図1〜3Bを参照して示されるように、通信レジスタのPE選択ビットまたはPEの命令ワードの重要ビットを占有することなく同一のMSPに存在可能である。従って、ここで開示されるメディア信号プロセッサにより利用されるハードウェアアクセラレータは、データドリブンアーキテクチャの通信制御レジスタのパスから切り替えられるとき、自らのコンテクストを維持することができる。さらに、PE選択ビットのパスの変更は、使用されていないときには、ハードウェアアクセラレータの非イネーブル化を可能にする。従って、専用制御レジスタなどを利用すると、PEは所望のハードウェアアクセラレータの選択を制御することができる。
他の実施例
メディアを提供するMSPの一実現形態のいくつかの特徴が説明された。しかしながら、MSPの各種実現形態が、上記特徴の補完、補充及び/または置換を含む多数の特徴を提供する。特徴は、各実現形態におけるデジタル信号の一部またはメディアの一部として実現することが可能である。さらに、説明のため上記記載は、本発明の実施例の完全なる理解を提供するため、具体的専門用語を利用した。しかしながら、本発明の実施例を実現するのに上記具体的詳細は必ずしも必要でないことは、当業者には明らかであろう。
さらに、ここで開示された実施例はMSPのためのものであるが、本発明の実施例は他のシステムに適用可能であるということは、当業者には理解されるであろう。実際、データドリブンのためのシステムは、添付された請求項により規定されるような本発明の実施例の範囲内のものである。上述の実施例は、本発明の実施例の原理及びそれの実践的用途を最善に説明するため、選択及び説明されたものである。これらの実施例は、当該技術分野の他の当業者が想定される特定の利用に適するような各種変更を有する各種実施例及び本発明を最も良く利用できるように選ばれたものである。
本発明の各種実施例の構成及び機能の詳細と共に、本発明の各種実施例の多数の特徴及び効果が上記記載で与えられたが、本開示は単なる例示的なものであるということを理解されたい。一部のケースでは、特定の部分のみがそのような1つの実施例により詳細に説明されている。にもかかわらず、そのような部分が、本発明の他の実施例において利用可能であるということが、認識及び意図される。特に本発明の実施例の原理の範囲内のパーツの管理及び構成の問題などの変更が、添付された請求項が表現される用語の広い一般的な意味により示される程度まで可能である。
一例となる実施例とベストモードが開示されたが、以下の請求項により規定されるような本発明の実施例の範囲内に留まりながら、開示された実施例に対して変更及び変形が可能である。
図1は、本発明の一実施例によるメディア信号プロセッサを示すブロック図である。 図2は、本発明のさらなる実施例によるメディア信号プロセッサを示すブロック図である。 図3Aは、本発明のさらなる実施例による図1及び2の通信制御レジスタをさらに示すブロック図である。 図3Bは、本発明の一実施例によるハードウェアアクセラレータ制御レジスタを示すブロック図である。 図4は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。 図5は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。 図6は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。 図7は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。 図8は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。 図9は、本発明の一実施例によるデータドリブン処理のためのハードウェアアクセラレータアクセスを示す。 図10は、本発明の一実施例によるメディアプロセッサを示すブロック図である。 図11は、本発明の一実施例によるメディア処理アーキテクチャを示すシステムレベルの図である。

Claims (28)

  1. メディア信号プロセッサの複数のプロセッシング要素によりアクセス可能なレジスタファイルを提供するステップと、
    プロセッシング要素により設定された前記レジスタファイル内のレジスタの少なくとも1つのビットに従って、複数のハードウェアアクセラレータから選択されたハードウェアアクセラレータをイネーブル化するステップと、
    前記選択されたハードウェアアクセラレータに対し前記プロセッシング要素の所有権を付与するステップと、
    から構成されることを特徴とする方法。
  2. 請求項1記載の方法であって、
    前記選択されたハードウェアアクセラレータをイネーブル化するステップは、
    当該処理がハードウェアアクセラレータの選択を所望するとき、プロセッシング要素がビットを設定するのを可能にするステップと、
    前記ビットが設定される場合、前記選択されたハードウェアアクセラレータを起動するステップと、
    から構成されることを特徴とする方法。
  3. 請求項1記載の方法であって、
    前記選択されたハードウェアアクセラレータをイネーブル化するステップは、
    前記複数のプロセッシング要素から制御コマンドを受信するため、前記レジスタファイル内の少なくとも1つのレジスタを指定するステップと、
    前記レジスタ内の検出された制御コマンドに従ってメディア処理機能を実行するため、前記選択されたハードウェアアクセラレータを起動するステップと、
    から構成されることを特徴とする方法。
  4. 請求項1記載の方法であって、さらに、
    前記複数のハードウェア要素に接続された選択ユニットを提供するステップと、
    前記複数のプロセッシング要素から制御コマンドを受信するため、前記レジスタファイル内の少なくとも1つのレジスタを指定するステップと、
    選択されたハードウェア要素とのアクセスをプロセッシング要素に提供するよう前記選択ユニットに指示するステップと、
    受信した制御コマンドに従うメディア処理機能を前記選択されたハードウェアアクセラレータに実行するよう指示するステップと、
    を有することを特徴とする方法。
  5. 請求項3記載の方法であって、
    前記選択されたハードウェアアクセラレータを起動するステップは、
    前記制御コマンドを書き込んだプロセッシング要素を特定するステップと、
    前記制御コマンドに従って、前記選択されたハードウェアアクセラレータに対する入力データストリームを決定するステップと、
    前記制御コマンドに従って、前記選択されたハードウェアアクセラレータに対する出力データストリームを決定するステップと、
    受信した制御コマンドに従ってメディア処理機能を実行するよう前記選択されたハードウェアアクセラレータに指示するステップと、
    1以上のデータに応じたプロセッシング要素に対しデータが利用可能か示すため、前記レジスタファイルのレジスタ内の制御ビットを更新するステップと、
    1以上のレジスタにおいて命令を実行するのに必要なデータが利用可能となるまで、前記1以上のデータに応じたプロセッシング要素に前記命令の実行を待機するよう求めるステップと、
    から構成されることを特徴とする方法。
  6. メディア信号プロセッサの複数のプロセッシング要素によりアクセス可能なレジスタファイルを提供するステップと、
    プロセッシング要素により設定された前記レジスタファイル内のレジスタの少なくとも1つのビットに従って、複数のハードウェアアクセラレータから選択されたハードウェアアクセラレータをイネーブル化するステップと、
    前記選択されたハードウェアアクセラレータに対し前記プロセッシング要素の所有権を付与するステップと、
    から構成される方法をシステムに実行させるようプログラムするのに用いられる命令を格納した機械可読媒体を有することを特徴とする製造物。
  7. 請求項6記載の製造物であって、
    前記選択されたハードウェアアクセラレータをイネーブル化するステップは、
    当該処理がハードウェアアクセラレータの選択を所望するとき、プロセッシング要素がビットを設定するのを可能にするステップと、
    前記ビットが設定される場合、前記選択されたハードウェアアクセラレータを起動するステップと、
    から構成されることを特徴とする製造物。
  8. 請求項6記載の製造物であって、
    前記選択されたハードウェアアクセラレータをイネーブル化するステップは、
    前記複数のプロセッシング要素から制御コマンドを受信するため、前記レジスタファイル内の少なくとも1つのレジスタを指定するステップと、
    前記レジスタ内の検出された制御コマンドに従ってメディア処理機能を実行するため、前記選択されたハードウェアアクセラレータを起動するステップと、
    から構成されることを特徴とする製造物。
  9. 請求項6記載の製造物であって、さらに、
    前記複数のハードウェア要素に接続された選択ユニットを提供するステップと、
    前記複数のプロセッシング要素から制御コマンドを受信するため、前記レジスタファイル内の少なくとも1つのレジスタを指定するステップと、
    選択されたハードウェア要素とのアクセスをプロセッシング要素に提供するよう前記選択ユニットに指示するステップと、
    受信した制御コマンドに従うメディア処理機能を前記選択されたハードウェアアクセラレータに実行するよう指示するステップと、
    を有することを特徴とする製造物。
  10. 請求項8記載の製造物であって、
    前記選択されたハードウェアアクセラレータを起動するステップは、
    前記制御コマンドを書き込んだプロセッシング要素を特定するステップと、
    前記制御コマンドに従って、前記選択されたハードウェアアクセラレータに対する入力データストリームを決定するステップと、
    前記制御コマンドに従って、前記選択されたハードウェアアクセラレータに対する出力データストリームを決定するステップと、
    受信した制御コマンドに従ってメディア処理機能を実行するよう前記選択されたハードウェアアクセラレータに指示するステップと、
    1以上のデータに応じたプロセッシング要素に対しデータが利用可能か示すため、前記レジスタファイルのレジスタ内の制御ビットを更新するステップと、
    1以上のレジスタにおいて命令を実行するのに必要なデータが利用可能となるまで、前記1以上のデータに応じたプロセッシング要素に前記命令の実行を待機するよう求めるステップと、
    から構成されることを特徴とする製造物。
  11. 複数のプロセッシング要素と、
    選択ユニットに接続された複数のハードウェアアクセラレータと、
    前記選択ユニットと前記複数のプロセッシング要素とに接続されたレジスタファイルと、
    から構成されるプロセッサであって、
    前記レジスタファイルは、前記複数のハードウェアアクセラレータ、前記選択ユニット及び前記複数のプロセッシング要素によりアクセス可能な複数の汎用レジスタを有し、
    前記汎用レジスタの少なくとも1つは、選択されたハードウェアアクセラレータを前記選択ユニットに起動するようプロセッシング要素に指示することを可能にする少なくとも1つのビットを有する、
    ことを特徴とするプロセッサ。
  12. 請求項11記載のプロセッサであって、
    前記複数のプロセッシング要素は、
    前記レジスタファイルに接続され、入力データを受信する入力プロセッシング要素と、
    前記レジスタファイルに接続され、データを送信する出力プロセッシング要素と、
    から構成されることを特徴とするプロセッサ。
  13. 請求項11記載のプロセッサであって、
    前記選択ユニットは、前記レジスタファイルの少なくとも1つのレジスタ内のプロセッシング要素から制御コマンドを受信し、該受信した制御コマンドに従うメディア処理機能を実行するため、前記選択されたハードウェアアクセラレータを起動することを特徴とするプロセッサ。
  14. 請求項11記載のプロセッサであって、
    前記制御ユニットは、制御コマンドを書き込んだプロセッシング要素を特定し、前記選択されたハードウェアアクセラレータから前記特定されたプロセッシング要素に対してデータが利用可能であるときを示すよう前記レジスタファイルのレジスタ内の制御ビットを設定することを特徴とするプロセッサ。
  15. 請求項11記載のプロセッサであって、
    プロセッシング要素は、ハードウェアアクセラレータの選択を所望するときにビットを設定し、1以上のデータに応じたプロセッシング要素を特定する1以上のビットを設定し、該1以上のビットがリセットされるまで前記特定されたプロセッシング要素が命令を実行するのを阻止することを特徴とするプロセッサ。
  16. 請求項11記載のプロセッサであって、
    前記プロセッシング要素は、前記レジスタファイル内の少なくとも1つのレジスタに制御コマンドを書き込み、該制御コマンドに従うメディア処理機能を実行するよう選択されたハードウェアアクセラレータに指示し、前記選択されたハードウェアアクセラレータが使用中であることを示すため制御ビットを設定することを特徴とするプロセッサ。
  17. 請求項11記載のプロセッサであって、
    プロセッシング要素は、1以上のデータに応じたプロセッシング要素を特定するため前記レジスタファイルのレジスタ内の1以上の制御ビットを設定し、前記特定されたプロセッシング要素を停止し、該プロセッシング要素により必要とされるデータが1以上のレジスタにおいて利用可能になるまで、命令の実行を阻止することを特徴とするプロセッサ。
  18. 請求項11記載のプロセッサであって、
    前記ハードウェアアクセラレータは、画像処理ハードウェアアクセラレータからなることを特徴とするプロセッサ。
  19. 請求項11記載のプロセッサであって、
    前記ハードウェアアクセラレータは、映像処理ハードウェアアクセラレータからなることを特徴とするプロセッサ。
  20. 請求項11記載のプロセッサであって、
    前記ハードウェアアクセラレータは、音声処理ハードウェアアクセラレータからなることを特徴とするプロセッサ。
  21. 入出力ポートを介し共に接続され、各メディア信号プロセッサ間のデータ交換を可能にする複数のメディア信号プロセッサから構成されるシステムであって、
    前記メディア信号プロセッサは、
    複数のプロセッシング要素と、
    選択ユニットに接続された複数のハードウェアアクセラレータと、
    前記選択ユニットと前記複数のプロセッシング要素とに接続されたレジスタファイルと、
    前記メディア信号プロセッサの1以上に接続されたメモリインタフェースと、
    前記メモリインタフェースに接続されたランダムアクセスメモリと、
    から構成され、
    前記レジスタファイルは、前記複数のハードウェアアクセラレータ及び前記複数のプロセッシング要素によりアクセス可能な複数の汎用レジスタを有し、
    前記汎用レジスタの少なくとも1つは、前記選択ユニットを介し選択されたハードウェアアクセラレータをプロセッシング要素が起動することを可能にする少なくとも1つのビットを有する、
    ことを特徴とするシステム。
  22. 請求項21記載のシステムであって、
    前記選択ユニットは、前記レジスタファイルの少なくとも1つのレジスタ内のプロセッシング要素から制御コマンドを受信し、該受信した制御コマンドに従うメディア処理機能を実行するため、前記選択されたハードウェアアクセラレータを起動することを特徴とするシステム。
  23. 請求項21記載のシステムであって、
    前記制御ユニットは、制御コマンドを書き込んだプロセッシング要素を特定し、前記選択されたハードウェアアクセラレータから前記特定されたプロセッシング要素に対してデータが利用可能であるときを示すよう前記レジスタファイルのレジスタ内の制御ビットを設定することを特徴とするシステム。
  24. 請求項21記載のシステムであって、
    プロセッシング要素は、ハードウェアアクセラレータの選択を所望するときにビットを設定し、1以上のデータに応じたプロセッシング要素に対応する1以上のビットを設定し、該1以上のビットがリセットされるまで前記特定されたプロセッシング要素が命令を実行するのを阻止することを特徴とするシステム。
  25. 請求項21記載のシステムであって、
    前記プロセッシング要素は、前記レジスタファイル内の少なくとも1つのレジスタに制御コマンドを書き込み、該制御コマンドに従うメディア処理機能を実行するよう選択されたハードウェアアクセラレータに指示し、前記選択されたハードウェアアクセラレータが使用中であることを示すため制御ビットを設定することを特徴とするシステム。
  26. 請求項21記載のシステムであって、
    プロセッシング要素は、1以上のデータに応じたプロセッシング要素を特定するため前記レジスタファイルのレジスタ内の1以上の制御ビットを設定し、前記特定されたプロセッシング要素を停止し、該プロセッシング要素により必要とされるデータが1以上のレジスタにおいて利用可能になるまで、命令の実行を阻止することを特徴とするシステム。
  27. 請求項21記載のシステムであって、
    前記ランダムアクセスメモリ(RAM)は、シンクロナスデータランダムアクセスメモリ(SDRAM)であることを特徴とするシステム。
  28. 請求項21記載のシステムであって、
    前記SDRAMは、ダブルデータレート(DDR)SDRAMであることを特徴とするシステム。
JP2006515357A 2003-06-23 2004-05-26 データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータのための装置及び方法 Pending JP2007520766A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/601,617 US7714870B2 (en) 2003-06-23 2003-06-23 Apparatus and method for selectable hardware accelerators in a data driven architecture
PCT/US2004/016511 WO2005001685A1 (en) 2003-06-23 2004-05-26 An apparatus and method for selectable hardware accelerators in a data driven architecture

Publications (1)

Publication Number Publication Date
JP2007520766A true JP2007520766A (ja) 2007-07-26

Family

ID=33517998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006515357A Pending JP2007520766A (ja) 2003-06-23 2004-05-26 データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータのための装置及び方法

Country Status (9)

Country Link
US (3) US7714870B2 (ja)
EP (1) EP1636695B1 (ja)
JP (1) JP2007520766A (ja)
KR (1) KR100880300B1 (ja)
AT (1) ATE501479T1 (ja)
DE (1) DE602004031729D1 (ja)
MY (1) MY146717A (ja)
TW (1) TWI251750B (ja)
WO (1) WO2005001685A1 (ja)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7714870B2 (en) 2003-06-23 2010-05-11 Intel Corporation Apparatus and method for selectable hardware accelerators in a data driven architecture
JP3866749B2 (ja) * 2005-03-07 2007-01-10 富士通株式会社 マイクロプロセッサ
US20060230213A1 (en) * 2005-03-29 2006-10-12 Via Technologies, Inc. Digital signal system with accelerators and method for operating the same
US20070139424A1 (en) * 2005-12-19 2007-06-21 Ivo Tousek DSP System With Multi-Tier Accelerator Architecture and Method for Operating The Same
JP2007179326A (ja) * 2005-12-28 2007-07-12 Matsushita Electric Ind Co Ltd 演算処理装置
US20080189251A1 (en) 2006-08-25 2008-08-07 Jeremy Branscome Processing elements of a hardware accelerated reconfigurable processor for accelerating database operations and queries
US7953221B2 (en) 2006-12-28 2011-05-31 Intel Corporation Method for processing multiple operations
JP2009026135A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
JP2009026136A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
US8458129B2 (en) 2008-06-23 2013-06-04 Teradata Us, Inc. Methods and systems for real-time continuous updates
US7966343B2 (en) 2008-04-07 2011-06-21 Teradata Us, Inc. Accessing data in a column store database based on hardware compatible data structures
US8862625B2 (en) 2008-04-07 2014-10-14 Teradata Us, Inc. Accessing data in a column store database based on hardware compatible indexing and replicated reordered columns
US9424315B2 (en) 2007-08-27 2016-08-23 Teradata Us, Inc. Methods and systems for run-time scheduling database operations that are executed in hardware
WO2009052494A2 (en) 2007-10-18 2009-04-23 Interdigital Technology Corporation Wireless transmit/receive unit
US8082418B2 (en) 2007-12-17 2011-12-20 Intel Corporation Method and apparatus for coherent device initialization and access
KR101439848B1 (ko) 2008-01-08 2014-09-17 삼성전자주식회사 움직임 보상 방법 및 장치
US8385971B2 (en) * 2008-08-19 2013-02-26 Digimarc Corporation Methods and systems for content processing
US8738997B2 (en) * 2009-01-22 2014-05-27 Qualcomm Incorporated Methods and systems using threshold switches for protocol accelerators
US8171175B2 (en) * 2009-01-23 2012-05-01 Qualcomm Incorporated Methods and systems using data rate driven protocol accelerator for mobile devices
TW201132218A (en) * 2010-03-04 2011-09-16 Gemtek Technology Co Ltd Wireless networking system and related wireless routing circuit
US8839256B2 (en) * 2010-06-09 2014-09-16 International Business Machines Corporation Utilization of special purpose accelerators using general purpose processors
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
JP5739758B2 (ja) * 2011-07-21 2015-06-24 ルネサスエレクトロニクス株式会社 メモリコントローラ及びsimdプロセッサ
WO2013100783A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Method and system for control signalling in a data path module
US9405552B2 (en) 2011-12-29 2016-08-02 Intel Corporation Method, device and system for controlling execution of an instruction sequence in a data stream accelerator
US9830154B2 (en) * 2011-12-29 2017-11-28 Intel Corporation Method, apparatus and system for data stream processing with a programmable accelerator
US8902238B2 (en) * 2012-10-15 2014-12-02 Intel Corporation Parallel flood-fill techniques and architecture
US9542193B2 (en) 2012-12-28 2017-01-10 Intel Corporation Memory address collision detection of ordered parallel threads with bloom filters
US10140129B2 (en) 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
US9417873B2 (en) 2012-12-28 2016-08-16 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US9361116B2 (en) * 2012-12-28 2016-06-07 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10346195B2 (en) 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
CN104142907B (zh) * 2013-05-10 2018-02-27 联想(北京)有限公司 增强型处理器、处理方法和电子设备
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
US11449452B2 (en) * 2015-05-21 2022-09-20 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
US10055807B2 (en) 2016-03-02 2018-08-21 Samsung Electronics Co., Ltd. Hardware architecture for acceleration of computer vision and imaging processing
CN105635323B (zh) 2016-03-14 2018-05-22 北京百度网讯科技有限公司 数据传输控制方法和装置
US10970133B2 (en) * 2016-04-20 2021-04-06 International Business Machines Corporation System and method for hardware acceleration for operator parallelization with streams
US9703603B1 (en) * 2016-04-25 2017-07-11 Nxp Usa, Inc. System and method for executing accelerator call
US10402168B2 (en) 2016-10-01 2019-09-03 Intel Corporation Low energy consumption mantissa multiplication for floating point multiply-add operations
US10740152B2 (en) * 2016-12-06 2020-08-11 Intel Corporation Technologies for dynamic acceleration of general-purpose code using binary translation targeted to hardware accelerators with runtime execution offload
US10416999B2 (en) 2016-12-30 2019-09-17 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10474375B2 (en) 2016-12-30 2019-11-12 Intel Corporation Runtime address disambiguation in acceleration hardware
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
US10545816B2 (en) * 2017-05-01 2020-01-28 International Business Machines Corporation Managed hardware accelerator address translation fault resolution utilizing a credit
US10572337B2 (en) * 2017-05-01 2020-02-25 International Business Machines Corporation Live partition mobility enabled hardware accelerator address translation fault resolution
US10289479B2 (en) * 2017-05-01 2019-05-14 International Business Machines Corporation Hardware accelerator address translation fault resolution
US10467183B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods for pipelined runtime services in a spatial array
US10445451B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10445234B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10387319B2 (en) 2017-07-01 2019-08-20 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in a configurable spatial accelerator
US10445098B2 (en) 2017-09-30 2019-10-15 Intel Corporation Processors and methods for privileged configuration in a spatial array
US10380063B2 (en) 2017-09-30 2019-08-13 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US10445250B2 (en) 2017-12-30 2019-10-15 Intel Corporation Apparatus, methods, and systems with a configurable spatial accelerator
US10417175B2 (en) 2017-12-30 2019-09-17 Intel Corporation Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
WO2019216797A1 (en) * 2018-05-08 2019-11-14 Telefonaktiebolaget Lm Ericsson (Publ) Method and node for managing a request for hardware acceleration by means of an accelerator device
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US10459866B1 (en) 2018-06-30 2019-10-29 Intel Corporation Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US11119766B2 (en) 2018-12-06 2021-09-14 International Business Machines Corporation Hardware accelerator with locally stored macros
US10678724B1 (en) * 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US10971199B2 (en) 2019-06-20 2021-04-06 Sandisk Technologies Llc Microcontroller for non-volatile memory with combinational logic
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
US11263014B2 (en) * 2019-08-05 2022-03-01 Arm Limited Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry
US20210173784A1 (en) * 2019-12-06 2021-06-10 Alibaba Group Holding Limited Memory control method and system
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
US11507498B2 (en) 2020-03-05 2022-11-22 Sandisk Technologies Llc Pre-computation of memory core control signals
CN116438512A (zh) * 2020-12-22 2023-07-14 阿里巴巴集团控股有限公司 具有集成特定领域加速器的处理系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55162154A (en) * 1979-06-01 1980-12-17 Nec Corp Data processor
JP2001167058A (ja) * 1999-12-07 2001-06-22 Matsushita Electric Ind Co Ltd 情報処理装置
WO2003003232A2 (en) * 2001-06-29 2003-01-09 Koninklijke Philips Electronics N.V. Data processing apparatus and a method of synchronizing a first and a second processing means in a data processing apparatus

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6319058A (ja) 1986-07-11 1988-01-26 Fujitsu Ltd メモリ装置
US4949280A (en) * 1988-05-10 1990-08-14 Battelle Memorial Institute Parallel processor-based raster graphics system architecture
JP2545627B2 (ja) 1990-02-21 1996-10-23 富士通株式会社 Cpu間インタフェース方式
JPH05158889A (ja) 1991-12-04 1993-06-25 Koufu Nippon Denki Kk 情報処理システム
JPH06231101A (ja) 1993-01-29 1994-08-19 Natl Aerospace Lab 受信タイムアウト検出機構
JP3671543B2 (ja) * 1996-09-10 2005-07-13 ソニー株式会社 データ伝送方法、データ送信装置、データ受信装置のパラメータ設定方法、データ受信装置及びデータ伝送システム
US6311204B1 (en) * 1996-10-11 2001-10-30 C-Cube Semiconductor Ii Inc. Processing system with register-based process sharing
US5940086A (en) * 1997-01-10 1999-08-17 Hewlett Packard Company System and method for dynamically allocating data among geometry accelerators in a computer graphics system
US6028643A (en) * 1997-09-03 2000-02-22 Colorgraphic Communications Corporation Multiple-screen video adapter with television tuner
US6477177B1 (en) * 1997-11-14 2002-11-05 Agere Systems Guardian Corp. Multiple device access to serial data stream
US6128307A (en) * 1997-12-01 2000-10-03 Advanced Micro Devices, Inc. Programmable data flow processor for performing data transfers
US6301603B1 (en) * 1998-02-17 2001-10-09 Euphonics Incorporated Scalable audio processing on a heterogeneous processor array
US6292200B1 (en) * 1998-10-23 2001-09-18 Silicon Graphics, Inc. Apparatus and method for utilizing multiple rendering pipes for a single 3-D display
US6275891B1 (en) * 1999-02-25 2001-08-14 Lsi Logic Corporation Modular and scalable system for signal and multimedia processing
US6624816B1 (en) * 1999-09-10 2003-09-23 Intel Corporation Method and apparatus for scalable image processing
US7793076B1 (en) * 1999-12-17 2010-09-07 Intel Corporation Digital signals processor having a plurality of independent dedicated processors
US6891893B2 (en) * 2000-04-21 2005-05-10 Microsoft Corp. Extensible multimedia application program interface and related methods
US6930689B1 (en) * 2000-12-26 2005-08-16 Texas Instruments Incorporated Hardware extensions for image and video processing
KR100420856B1 (ko) * 2001-01-26 2004-03-02 학교법인연세대학교 순서 비의존 투명성을 하드웨어적으로 제공해주는 병렬 렌더링 가속기
US6938253B2 (en) 2001-05-02 2005-08-30 Portalplayer, Inc. Multiprocessor communication system and method
US20030028751A1 (en) * 2001-08-03 2003-02-06 Mcdonald Robert G. Modular accelerator framework
GB2386442B (en) 2002-03-12 2004-05-05 Toshiba Res Europ Ltd Allocation of hardware accelerators
US6963613B2 (en) * 2002-04-01 2005-11-08 Broadcom Corporation Method of communicating between modules in a decoding system
US7430652B2 (en) * 2003-03-28 2008-09-30 Tarari, Inc. Devices for performing multiple independent hardware acceleration operations and methods for performing same
US7079147B2 (en) * 2003-05-14 2006-07-18 Lsi Logic Corporation System and method for cooperative operation of a processor and coprocessor
US7714870B2 (en) 2003-06-23 2010-05-11 Intel Corporation Apparatus and method for selectable hardware accelerators in a data driven architecture
US7286609B2 (en) 2003-08-08 2007-10-23 Intel Corporation Adaptive multicarrier wireless communication system, apparatus and associated methods

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55162154A (en) * 1979-06-01 1980-12-17 Nec Corp Data processor
JP2001167058A (ja) * 1999-12-07 2001-06-22 Matsushita Electric Ind Co Ltd 情報処理装置
WO2003003232A2 (en) * 2001-06-29 2003-01-09 Koninklijke Philips Electronics N.V. Data processing apparatus and a method of synchronizing a first and a second processing means in a data processing apparatus

Also Published As

Publication number Publication date
WO2005001685A1 (en) 2005-01-06
TW200504526A (en) 2005-02-01
DE602004031729D1 (de) 2011-04-21
US20090309884A1 (en) 2009-12-17
EP1636695A1 (en) 2006-03-22
TWI251750B (en) 2006-03-21
KR20060027808A (ko) 2006-03-28
MY146717A (en) 2012-09-14
US20120032964A1 (en) 2012-02-09
EP1636695B1 (en) 2011-03-09
US7714870B2 (en) 2010-05-11
US8063907B2 (en) 2011-11-22
ATE501479T1 (de) 2011-03-15
US20040257370A1 (en) 2004-12-23
KR100880300B1 (ko) 2009-01-28
US8754893B2 (en) 2014-06-17

Similar Documents

Publication Publication Date Title
JP2007520766A (ja) データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータのための装置及び方法
JP4344383B2 (ja) データ駆動型アーキテクチャを有する画像信号プロセッサでの使用のためのメモリコマンドハンドラ
JP4426099B2 (ja) 共有メモリを有するマルチプロセッサ装置
US6484255B1 (en) Selective writing of data elements from packed data based upon a mask using predication
KR101713009B1 (ko) 스케일가능한 컴퓨트 패브릭
US20100030927A1 (en) General purpose hardware acceleration via deirect memory access
JP2000509528A (ja) データ処理マネージメントシステム
US10877509B2 (en) Communicating signals between divided and undivided clock domains
US7827386B2 (en) Controlling memory access devices in a data driven architecture mesh array
US20100145992A1 (en) Address Generation Unit Using Nested Loops To Scan Multi-Dimensional Data Structures
US20100281234A1 (en) Interleaved multi-threaded vector processor
US20100281192A1 (en) Apparatus and method for transferring data within a data processing system
US20140007133A1 (en) System and method to provide single thread access to a specific memory region
TWI766891B (zh) 半導體裝置的處理器與其操作方法
US8359455B2 (en) System and method for generating real addresses using a connection ID designating a buffer and an access pattern
US20100281236A1 (en) Apparatus and method for transferring data within a vector processor
JP2002175265A (ja) 直接メモリ・アクセス・コントローラを有するディジタル信号プロセッサにおける複数の構成素子間での信号群交換装置および方法
EP1514172B1 (en) Spacecake coprocessor communication
JP2504535B2 (ja) バスユニットの構成方法
JPH06231085A (ja) 内蔵レジスタアクセス制御方式
JPH0887491A (ja) ベクトル計算機
JPH08161168A (ja) データ処理装置
JP2000188750A (ja) 符号化データ転送システム
JP2005070966A (ja) 情報処理装置及び情報処理装置制御プログラム
JPS6139131A (ja) デ−タ処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080415

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091030

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091106

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100618

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120223