[go: up one dir, main page]

JP2008530689A - 効率的なデジタル信号処理に適用するデータプロセッサとその方法 - Google Patents

効率的なデジタル信号処理に適用するデータプロセッサとその方法 Download PDF

Info

Publication number
JP2008530689A
JP2008530689A JP2007555102A JP2007555102A JP2008530689A JP 2008530689 A JP2008530689 A JP 2008530689A JP 2007555102 A JP2007555102 A JP 2007555102A JP 2007555102 A JP2007555102 A JP 2007555102A JP 2008530689 A JP2008530689 A JP 2008530689A
Authority
JP
Japan
Prior art keywords
coprocessor
instruction
list
interface
processor core
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
JP2007555102A
Other languages
English (en)
Inventor
リン コール テリー
ニコルズ ジェイムズ
マイケル ジョンソン ウィリアム
クタガラ ハリシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2008530689A publication Critical patent/JP2008530689A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)

Abstract

データプロセッサ(200)は、プロセッサコア(300)、プロセッサコア(210)に結合されたインターフェース(210)、および、コプロセッサ(500)を含む。コプロセッサ(500)は、インターフェースを介してプロセッサコア(300)に結合されており、第1のリストメモリ(522)を含む。所定の命令に応答して、プロセッサコア(300)は、インターフェース(210)を介してコプロセッサ(500)にオペランドを提供する。コプロセッサ(500)は第1のリストメモリ(522)にオペランドを格納し、第1のリストメモリからの複数の値を使用して所定の命令に対応するオペレーションを実行し、結果を供給する。

Description

概して、本発明はデータプロセッサに関し、より詳細には、デジタル信号処理機能を実行できるデータプロセッサに関する。
この数十年にわたる集積回路製造技術の進歩により、マイクロプロセッサベースのコンピュータシステムは、大きなウェアハウスからデスクトップへと移行し、現在は、携帯用情報端末(PDA)、携帯電話、スマートフォン、ビデオゲームおよびこれらに類するものなどの携帯端末へと移行している。これまでのコンピュータシステムは3つの主要構成要素で定義された。それらは、中央処理装置(CPU)、メモリ、入力/出力周辺装置である。しかし、CPU、および、メモリやいくつかの入力/出力回路でさえも現在は単一の集積回路に組み込まれている。これらの非常に複雑な装置は多くの場合システムオンチップつまりSOCと呼ばれるが、このような装置は、多数の有益な機能を供給しつつも携帯端末の原価を引き下げている。
同時に、処理タスクの形式も変化している。以前のマイクロプロセッサは整数演算命令および論理演算命令を整数データ型およびブールデータ型で実行した。これらのオペレーションは依然として必要とされているが、より特殊な処理もまた特定の装置に対して有益である。特殊な処理の一例としては、浮動小数点演算が挙げられる。浮動小数点演算は、複雑なグラフィックスなどの数学的指向オペレーションにおいて有益である。しかし、整数データ型およびブールデータ型を処理するように設計された汎用マイクロプロセッサで浮動小数点演算を実行するには、複雑なソフトウェアルーチンが必要であり、また、処理は相対的に遅い。この需要を満たすために、マイクロプロセッサの設計者たちは、浮動小数点コプロセッサを開発した。コプロセッサとは、処理タスクの一部を別のプロセッサ(通常はシステムのCPU)からオフロードするために特定のタスクを行うよう特別に設計されたデータプロセッサである。浮動小数点演算コプロセッサ、例えば、80287浮動小数点演算コプロセッサは、カリフォルニア州サンタクララのインテル社によって最初に製造されたものであり、このコプロセッサは1980年代のデスクトップコンピュータシステムに共通のものであった。浮動小数点コプロセッサは、複雑な浮動小数点計算を特殊用途の回路を用いて効率的に処理することで、コンピュータシステムの性能を高めた。
また、携帯端末は特殊な処理タスクを必要とする。例えば、音声信号は、デジタルシグナルプロセッサ(DSP)を使用して、周波数領域で処理されることが多い。したがって、携帯端末の汎用データプロセッサにDSPを追加することは当然のことであるように思える。
さらに、構成要素の数を減らし、また原価を引き下げるために、これらの携帯端末において高度な集積SOCを使用することが望ましい。これまでは、SOCの汎用CPUをDSPコプロセッサと一体化することは困難であった。SOCの設計理念においては、回路ブロックを再利用できるように、この回路ブロックがモジュール式であることが求められる。通常CPUは“コア”として設計され、コンピュータを使った設計(CAD)技術を使用して高水準記述からでさえも統合できる。しかし、コプロセッサはCPUの命令パイプラインとの複雑な一体化を要求し、DSPコプロセッサに適応するために、CPUの設計を変更するとそのモジュール性が破壊されてしまう。
このような困難性から、ある設計では、CPUと並行して、別の汎用DSPを使用している。このようなDSPは、固有のメモリにアクセスし、固有の命令セットと固有のオペレーティングシステムとを有するとともに、固有の開発ツールセットを要求することから、CPUと類似している。しかし、このような特徴は、携帯端末の原価を増大させる。さらに、CPUとDSPとは共有メモリを使用して通信を行い、加えて、この2つの装置間でオペランドと結果とを転送する際に相当量のオーバーヘッドがあった。よって、特殊用途のDSP処理における利点は、余分な複雑性と原価によってその一部が相殺された。
このような困難性をSOC設計のモジュールプロセッサコアを使用して克服するために、メーカー側は、近年、オプションのコプロセッサを備えたシステムにおいて使用する付加的な“フック”を備えたプロセッサコアを設計している。例えば、カリフォルニア州マウンテンビューのMIPSテクノロジー社より入手可能な4KES(商標)RISCマイクロプロセッサコアは、命令およびデータをCPUコアとコプロセッサとの間に送ることができるよう、特殊なコプロセッサ命令のセットと特殊用途のインターフェースとを備えている。よって、CPUコアがこれらの特定のコプロセッサ命令のうちの1つをデコードすると、適切なオペランドをレジスタファイルから引き出し、引き出したオペランドを命令とともに、特定のインターフェース越しにコプロセッサに送る。コプロセッサが命令を実行している間、CPUコアのパイプラインは停止する。コプロセッサが命令の結果を返すと、CPUコアはこの結果をレジスタファイルに記憶し、パイプラインにおいて命令の処理を継続する。
携帯型の電子端末やこれに類するものに有益な、小型で低電力のSOCを供給するために、このRISCマイクロプロセッサコアの新たな機能を利用したデータプロセッサが求められている。
よって、本発明の一形態として、プロセッサコア、このプロセッサコアに結合されたインターフェース、およびコプロセッサを含むデータプロセッサを供給する。コプロセッサはインターフェースを介してプロセッサコアに結合されており、また、第1リストメモリを含む。所定の命令に応答して、プロセッサコアはインターフェースを介してコプロセッサにオペランドを送る。コプロセッサはこのオペランドを第1リストメモリに記録し、第1リストメモリからの複数の値を利用して所定の命令に対応するオペレーションを実行し、結果を供給する。
別の形態において、本発明は、命令を実行する中央処理装置を含んだデータプロセッサにおいて使用するためのコプロセッサを供給する。このコプロセッサは、制御ロジック、第1リストメモリ、および、演算回路を含む。この制御ロジックはインターフェースを介して中央処理装置に結合されるように、また、インターフェースを越えて命令とオペランドとを受信するように構成されている。第1メモリは、オペランドを含む複数の値を格納する。演算回路は第1リストメモリに結合されている。所定の命令に応答して、制御ロジックは、第1リストメモリからの複数の値を利用して、演算回路に所定の命令に対応するオペレーションを実行させ、結果を供給する。
さらに別の形態において、本発明は、プロセッサコア、プロセッサコアに結合されたインターフェース、およびインターフェースに結合されたコプロセッサを含む、データプロセッサを供給する。第1の所定の命令に応答して、プロセッサコアは命令とオペランド値とをインターフェースを介してコプロセッサに送り、コプロセッサは、第1の所定の命令に従って第1の所定のオペレーションを開始する。第2の所定の命令に応答して、コプロセッサは、第1の所定のオペレーションが終了すると、その結果をインターフェースに送る。
さらにまた別の形態において、本発明は、中央処理装置、複数のオペランド格納用の、中央処理装置に結合されたメモリ、中央処理装置に結合されたインターフェース、およびインターフェースに結合されたコプロセッサを含むデータ処理システムを提供する。コプロセッサは第1リストメモリを含む。所定の命令に応答して、中央処理装置はインターフェースを介してオペランドをコプロセッサに送る。コプロセッサは第1リストメモリにこのオペランドを格納し、第1リストメモリからの複数の値を利用して所定の命令に対応するオペレーションを実行し、結果を供給する。
さらに別の形態では、本発明はデータ処理システムを効率的に動作させる方法を提供する。第1命令に応答して、中央処理装置のレジスタにオペランドがロードされる。このオペランドは、第2命令に応答して、レジスタからインターフェースに送られる。第2命令に応答して、このオペランドはコプロセッサの第1リストメモリに格納される。第2命令に対応する所定のオペレーションが、第1リストメモリからの複数の値を利用して、コプロセッサで実行され、結果を供給する。
本発明は添付の図面を参照することで当業者により理解され、これにより多くの特徴や利点が明らかになるであろう。図面において、同じ参照符号は同様の、あるいは同一のアイテムを示す。
図1は、従来技術で周知のデータ処理システム100のブロック図である。データ処理システム100は、システム100の中央処理装置(CPU)を形成する、縮小命令セットコンピュータ(RISC)マイクロプロセッサ102を含む。RISCマイクロプロセッサ102は、ランダムアクセスメモリ(RAM)104の形式で高速の揮発性メモリに結合され、また、マスク読み出し専用メモリ(ROM)形式、フラッシュ電気的消去可能プログラムROM(“フラッシュ”)形式などの低速の不揮発性メモリ(NVM)106に接続される。さらに、システム100は、RISCマイクロプロセッサ102に直接的に、あるいは、入力/出力アダプタを介して接続された入力/出力装置を含む。(図1に図示せず)
システム100は、PDA、携帯電話、携帯用ビデオゲームシステムおよびこれらに類するものなどの携帯端末に求められる特殊な処理を実行するために、汎用デジタルシグナルプロセッサ(DSP)110を含む。このDSPは、固有のRAM112とNVM114とをデータとを有し、それぞれデータとプログラムとを格納する。RISCマイクロプロセッサ102とDSP110との間でタスクと結果とを送るために、システム100は共有メモリ108を備えている。
コンピュータシステム100を低価格の携帯装置に用いる場合にはいくつかの欠陥がある。まず、RISCマイクロプロセッサ102とDSP110とは別々のチップであり、これによりシステム費用が増大する。次に、各プロセッサにはそれぞれ別のメモリが必要であり、これにより、チップ数が増え、この結果、システム費用が増大する。第3に、各プロセッサはそれぞれの命令セットを有しているので、各プロセッサにはそれぞれ別々のアセンブラ、コンパイラ、および開発ツールが必要であり、この結果、複雑さが増し、市場に出すまでに残された時間が短くなる。
図2は、本発明によるデータ処理システム200のブロック図を示す。
データ処理システム200は、RISCプロセッサコア300、RAM205とNVM206を含むメモリ204、インターフェース210、および特殊なDSPリストコプロセッサ500を含む。これまでのように、NMV206はマスクROM、フラッシュEEPROMの形式をとることができる。例示の実施形態では、RISCプロセッサコア300、インターフェース210、およびDSPリストコプロセッサ500は、単一の集積回路に組み込まれている。図1のRISCプロセッサコア102とは違って、RISCプロセッサコア300はコプロセッサを含む他のシステム構成要素と一体化するように構成されている。従って、RISCプロセッサコア300は、ユーザにより定義されたコプロセッサ命令を認識し、これらの特定の命令をインターフェース210を介してコプロセッサに供給する特殊機能を備えている。例示の実施形態では、RISCプロセッサコア300はカリフォルニア州マウンテンビューのMIPSテクノロジー社より入手可能な4KES(商標)プロセッサコアファミリーと互換性があるが、同様の機能性を有する等価のプロセッサコアと置き換えることもできる。
インターフェース210は、RISCプロセッサコア300とDSPリストコプロセッサ500との間のインタラクションポイントである。これらのプロセッサ間にデータを転送し、インターフェースを制御する信号線を介してインタラクションが実現される。関連のある信号線を以下に記述しているが、これらの信号線は単に例示的なものである点に留意されたい。“INSTRUCTION”とラベル付けされた一連の32の信号線212は、RISCプロセッサコア202の命令セットの1以上の命令に対応する。4KES(商標)コアの場合、予約されたいくつかの命令については、コプロセッサとの間の処理専用にされている。このような命令は、ユーザ定義インターフェース(UDI)命令と呼ばれ、命令をUDI命令と認識する命令フィールド部分、および、これとは別の、実行されるオペレーション形式を特定する命令フィールド部分とを有する。RISCプロセッサコア300は、このINSTRUCTIONフィールドを使用し、最小限で、DSPリストコプロセッサ500に運ばれるUDI命令の形式を示す。よって、このINSTRUCTIONフィールドはRISCコプロセッサコア命令と同一であってもよいが、命令を特定するだけの十分な数があれば、含まれるビット数はより少なくてもよい。さらに、このINSTRUCTIONフィールドは、RISCプロセッサコア300によって認識される命令とは違ったやりかたで命令をエンコードしてもよい。
インターフェース210は、“rs”とラベル付けされた第1オペランドを実行するために、32本の信号線の第1セットを使用し、“rt”とラベル付けされた第2オペランドを実行するために32本の信号線の第2セットを使用して、オペランドを2つまでDSPリストコプロセッサ500に転送する。あるUDI命令には、これら信号線のセットの一方あるいは両方とも必要とされない。
インターフェース210は、“rd”とラベル付けされた32ビットの結果オペランドを転送する一連の信号線218を含み、これにより、DSPリストコプロセッサ500はINSTRUCTIONの結果をRISCプロセッサコア300に返す。
さらに、インターフェース210は、インターフェース210のオペレーションを制御するいくつかの制御信号を実行する“コントロール”220とラベル付けされた制御バスを含む。
RISCプロセッサコア300とDSPリストコプロセッサ500とは、SOCにおいて、他の入力/出力装置と一体化される(図2に図示せず)。RISCプロセッサコア300は、UDIのアベイラビリティ(availability)のおかげで、そのパイプラインを変形せずにDSPリストコプロセッサ500とインターフェース接続できる。
システム200は、DSPリストコプロセッサ500専用の付加的メモリや、RISCプロセッサコア300とDSPリストコプロセッサ500との間の通信メモリのいずれも必要とせずに、単一のメモリシステム204だけを含む。オペランドフローは以下のように生じる。まず、RISCプロセッサコア300は、ムーブ命令に応答して、データをその汎用レジスタの1つに移動させる。データはメモリ204に存在しているものか、入力/出力装置(図2に図示せず)から受信済のものであってもよい。次に、RISCプロセッサコア300は、データをDSPリストコプロセッサ500に移動させるUDI命令を実行する。DSPリストコプロセッサ500は、別々のメモリアクセスを必要とせずに様々なタイプのDSPタスクを実行することができるように、それぞれのリストメモリを含む。加えて、多くのDSPルーチンのそのシーケンシャルな性質により、DSPリストコプロセッサ500は、命令を受信すると値の維持とアップデートとを同時に行う。これにより、RISCプロセッサコア300による介入およびオーバーヘッドが最小限に抑えられるとともに、さらなる処理機能がフリーアップ(free up)される。DSPリストコプロセッサ500はこの結果をrd信号線218越しに返し、RISCプロセッサコア300はこの結果をUDI命令により定義されるrdフィールドによって識別されるレジスタ25に記録する。
追加のメモリ構造なしで効率的なDSP処理を実現するために、DSPリストコプロセッサ500は、多くのDSPと関連する命令から要求されたデータ値のリストを記録する内部リストメモリ(internal list memory)を含む。特定のUDI命令に遭遇したときに、DSPリストコプロセッサ500はこのリストメモリに新たなオペランド値を記録し、その値と、リストメモリにすでに存在する他の値を使用してその命令を実行する。しかし、その他の実装形態では、実際に転送された値を現在の演算のために使用せずに、後で使用するために記憶だけが行われてもよい。
実際にはDSPリストコプロセッサ500により実装されないが、この技術をその他の特殊用途の計算に使用することもできる。例えば、あるデータ通信タスクは、巡回冗長検査(CRC)方式で、フレームチェックシーケンスの計算を要求する。CRC多項式にはいくつかの周知なものがあるが、これらはすべて多項式を一連のデータサンプルに適用して数字を得るものである。実行中のCRCが計算されるデータサンプルの履歴を記録するためにこのリストメモリを使用してもよい。加えて、特定のCRC生成多項式は、他の命令を通じて前もってプログラムされるか、予め決められたのもであってもよい。同様に、DSPリストコプロセッサ500は、汎用多項式評価の一環として、リストメモリを効率的に使用するように変更してもよい。
図3に、図2のRISCプロセッサコア300のブロック図を示す。図3は、本発明を理解するうえで重要なRISCプロセッサコア300の詳細を示しており、他の従来の特徴は省略している。RISCプロセッサコア300は汎用レジスタファイル302を含む。汎用レジスタファイル302は、32のレジスタを含み、各々は32ビット長であり、連番で“r0”、“r1”、“r2”などから“r31”までラベル付けされている。加えて、RISCプロセッサコア300は機器構成レジスタ(configuration register)304を含む。この機器構成レジスタは、ユーザ定義のインターフェースオペレーションをイネーブルにする、あるいはディセーブルにするために使用される“UDI”とラベル付けされたビット306を有している。UDIビット306およびレジスタファイル302中のレジスタは、エグゼキューションユニット(execution unit)308にアクセス可能である。このエグゼキューションユニットはソフトウェアプログラムによる命令体系の命令を実行する。
命令の1クラスとして、UDI命令群が挙げられる。UDI命令の受信に応答して、UDI命令がUDIビット306によってイネーブルにされているときは、エグゼキューション(実行)ユニット308は、命令と所要のレジスタ値とをオペランドとして示すフィールドをUDIインターフェースコントローラ310に送信する。次に、UDIインターフェースコントローラ310は、UDIインターフェース210を越えて、RISCプロセッサコア300とDSPリストコプロセッサ500との間の値の交換を制御する。
UDIビット306によりイネーブルにされているときは、エグゼキューションユニット308は、図4に示すようにUDI命令をデコードし実行する。図4に、図3のRISCプロセッサコア300によって使用されるコプロセッサ命令400のフォーマットを示す。命令400は32ビット命令であり、様々なビット長の7つのフィールド402、404、406、308、410、412、および414を備える。ビット3−0は“SET CODE”フィールドとして周知のフィールド402を含む。このSET CODEフィールドは、主要なUDI INSTRUCTIONタイプを特定する。このUDI命令には、ALUオペレーション、MACオペレーション、リストオペレーション(以下に更なる詳細を説明する)、ムーブトゥー(MOVE TO)オペレーションとムーブフロム(MOVE FROM)オペレーション、および、拡張ALUオペレーションを含む。
ビット5および4は“BLOCK”フィールドとして周知のフィールド404を含む。BLOCKフィールド404はDSPリストコプロセッサ500に対して常に01に設定されている。
ビット10−6は“SUBSET CODE”フィールドとして周知のフィールド406を含む。SUBSET CODEフィールド406はDSPリストコプロセッサ500によって認識される特定のオペレーションコード(オペコード)を定義する。また、SET CODEフィールド402の値に基づいて異なる意味を有する。
ほとんどのSET CODE値に対する命令は、DSPリストコプレセッサ500に従来のデータ処理オペレーションを実行させる。しかし、DSPリストコプロセッサ500は、リストオペレーションとして周知の特定の一連のオペレーションを実行することができ、これにより、多くのDSPオペレーションのシーケンス性をうまく利用することができる。したがって、SET CODEフィールド402がリストオペレーションを示すときに、SUBSET CODEフィールド406は表1に示すようなエンコーディングを有する。
Figure 2008530689
表2に、リスト命令中にDSPリストコプロセッサ500とRISCプロセッサコア300との間で転送されるオペランドを示す。
Figure 2008530689
“x”はドントケアを示し、“マルチプル”は、サイクル数がXメモリ524および/あるいはYメモリ522のリスト(つまり、長さ)中の要素の数に応じて決まることを示す。
ビット31−36は命令タイプフィールド414を形成する。このフィールドは、いわゆる“SPECIAL 2”命令フォーマットを示すようにバイナリ値“011100”を有しており、BLOCKフィールドも同様に値01を有する場合に、命令がDSPリストコプロセッサ500に向けられたUDI命令であることを示す。
残りのビットフィールドはオペランドレジスタ指示子を含む。各々は5ビット長であり、32ビットの汎用レジスタの1つを選択する。ビット25−21は、“rs”とラベル付けされた、第1のソースオペランド識別子フィールド412を含む。ビット20−16は、“rt”とラベル付けされた、第2のソースオペランド識別子フィールド410を含む。ビット15−11は、“rd”とラベル付けされた、指示オペランド識別子フィールド408を含む。これらのフィールドの使用の有無は命令のタイプに応じて決まる。
図5に、図2のDSPリストコプロセッサ500のブロック図である。DSPリストコプロセッサ500は一般的に、制御および順序付けロジック(control and sequencing logic)510、リストメモリ520、および論理演算ユニット(ALU)530を含む。制御および順序付けロジック510はUDIインターフェース210を管理し、INSTRUCTIONフィールドにより示される命令をデコードする。さらに、このロジックは、リストメモリ520中にポインタを維持する。これらのポインタは、“Y”メモリ522と“X”メモリ524のそれぞれに対して、ヘッドポインタとテールポインタとを含む。よって、制御および順序付けロジック510は“YH”とラベル付けされたYヘッドポインタ、“YT”とラベル付けされたYテールポインタ、“XH”とラベル付けされたXヘッドポインタ、および、“XT”とラベル付けされたXテールポインタを出力する。以下に詳述するように、ヘッドポインタとテールポインタとは値のシーケンシャルリストの開始アドレスと終了アドレスとを定義する。さらに、制御および順序付けロジック510は、“ADDRESSSA”とラベル付けされたYメモリ522のリスト中にインデックスを付けるためのアドレス、“ADDRESSSB”とラベル付けされたXメモリ524のリスト中にインデックスを付けるためのアドレス、“DATAY”とラベル付けされた、Yメモリに記録されるデータ値、および、“DATAX”とラベル付けされた、Xメモリに記録されるデータ値を出力する。
リストメモリ520は、Yメモリ522とXメモリ524の両方を含み、各々は16ビット値を格納する。1つの特定の有益なDSPオペレーション、有限インパルス応答(FIR)フィルタ計算を実行するために、Xメモリ524中の値はフィルタの係数に対応し、Yメモリ522中の値はデータサンプルに対応する。
ALU530は、レジスタ523と534、マルチプレクサ(MUX)540、マルチプライアキュムレート(multiply-and-accumulate)(MAC)ユニット542、544、およびフィックスアップ(FIX−UP)ロジック546を含む。レジスタ532はYメモリ522の出力に接続されていて“A”部および“B”部を有し、Yメモリ522から出力される16ビットワードデータの上位および下位バイトをそれぞれ格納する。同様に、レジスタ534はXメモリ524の出力に接続されており、“C”部および“D”部を有し、Xメモリ524から出力されるデータの16ビットワードの上位および下位バイトをそれぞれ格納する。MUX540はA、B、C、およびDレジスタの出力に接続された入力と、4つの出力とを有する。MUX540は完全4×4MUXであり、パック算術演算を実行する際に有効である。これについては以下に詳述する。MAC542は、MUX540の第1および第2出力端子に接続された第1および第2入力端子と、40ビットの出力端子とを有する。MAC544は、MUX540の第3および第4出力端子に接続された第1および第2入力端子と、40ビットの出力端子とを有する。以下に詳述するように、MAC542と544とはそれぞれ、選択可能な飽和モードを有しており、2つの周知の信号処理に対する異なる飽和条件(different saturation assumption)に対応する。
ALU530は、フィックスアップロジック546回路を含む。この回路は、MAC542の出力端子に接続された第1の入力端子、MAC544の出力端子に接続された第2の入力端子、および、rd値を供給するためにインターフェース210に接続された出力端子を有する。より詳細には、フィックスアップロジック546は、“ACC0”とラベル付けされた下位の16ビット部548と、“ACC1”とラベル付けされた上位の16ビット部550とを有するアキュムレータを含む。アキュムレータ部548および550は、別々の部位として図示されている。その理由は、これらの部位はパックオペレーションを実行したときに別々の結果を格納することになるからである。
しかし、フル32ビット演算を実行したときに、その結果の下位部分はアキュムレータ548に格納され、上位部分はアキュムレータ550に格納されることになる。フィックスアップ回路546は、命令によって定義されるように、規格化、スケーリング、ラウンディング、および飽和を行う。
図4および図5を併せて考察すると、データ処理システム200は、効率的な信号処理ルーチンの一環として使用することができる様々なコプロセッサ命令を実行することが明らかであろう。第1の命令は、いわゆるドット積(dot product)タイプの命令である。ドット積命令は、第1リスト中の値の各々を第2リスト中の対応する値で掛け、その積を合計する。よって、例えば、DSPリストコプロセッサ500は、RISCプロセッサコア300に対する混乱(disruption)を最小限に抑えた状態でFIRフィルタ計算を効率的に実行することができる。RISCプロセッサコア300上で実行中のコードは、MTYH_REAL32命令などの、新たなデータサンプルをYメモリ522中に保持しているリストに送る命令を実行し、ドット積オペレーションを開始する。まず、DSPリストコプロセッサ500は、ヘッドポインタYHをインクリメント(increment)し、そこにデータサンプルを格納するとともに、テールポインタYHをインクリメントし、最も古いデータサンプルを取り除くことによって、リストにデータサンプルを追加する。次に、アドレスポインタADDRESSSBとADDRESSSAとを用いて、Xメモリ524から係数とデータメモリ522から対応するデータサンプルとをそれぞれ読み出し、これらをレジスタ532と534とにそれぞれ格納する。MUX540はオペランドをMACユニット542および544のうちの1つに送る。ここで乗算が行われる。このシーケンスは、残りの係数とリスト中のデータ値を通して、LENGTHに到達するまで継続して行われる。次に、この結果はフィックスアップロジック546に送られ、適切なラウンディングと飽和が行われる。DSPリストコプロセッサ500にリストメモリを保持することで、データプロセッサ200は、外部メモリアクセスをほとんど必要としないやり方で、RISCプロセッサコア300とDSPリストコプロセッサ500とを容易に一体化することができる。さらに、追加される新たなオペランドのリストへの送信と、新たな演算の計算の開始とを同時に始めることができる。
システム200の重要な特徴として、DSPリストコプロセッサ500がドット積演算を開始するために、MTYH_REAL32などの1つのINSTRUCTIONに応答可能な点、および、その結果を引き出し、結果を汎用レジスタに格納するために、MFXH1などの別のINSTRUCTIONに応答可能な点が挙げられる。よって、ソフトウェアコンパイラは、DSPリストコプロセッサ500が長いドット積演算を実行する間に、RISCマイクロプロセッサコア300に有益な作業を継続して行わせることができる。パイプラインをストールさせるためにINSTRUCTION(MTYH_REAL32)の開始は許可されず、一方で、INSTRUCTION(MFXH1)を終了させることはその結果がまだ準備できていなければパイプラインをストールさせてしまう。よって、効率的なコンパイラでは、コプロセッサレイテンシに関連づけられる無駄なサイクルを回避すべく、この両方の命令を使用することができる。
別の重要なフィーチャとして、DSPリストコプロセッサ500は、2つの別々のMACを含むことが挙げられる。各々のMACは、別々のラウンディングと飽和条件に対応するよう選択可能である。そのうちの1つに32ビット飽和モードがあり、これはETSI(欧州電気通信標準化機構)演算として周知である。32ビットの飽和モードでは、DSPリストコプロセッサ500は結果の一部を32ビットに飽和する。別のモードに、40ビット飽和モードがある。40ビットの飽和モードにおいては、DSPリストコプロセッサ500は結果の一部を40ビットのアキュムレータに蓄積し、計算が終わると最終の合計を32ビットに飽和する。これらの2つの技術は時折異なる結果をもたらすことがある。また、DSPリストコプロセッサ500はこれらの2つのアルゴリズムの各々に対するビットの正確性を保持する。さらに、他の実施形態では、DSPリストコプロセッサ500の更なる選択可能ラウンディングモードと飽和モードをサポートすることができる。これらの選択可能モードは、グラフィックス変換、画像処理、および暗号文などのアプリケーションに有用な、必ずしも線形とは限らない、広範な数学的表現をサポートすることができる。
さらに別の重要な特徴として、いわゆる、シリアルMACモードがある。多くのDSPアルゴリズムにおいて、1つのMAC命令の直後に別のMAC命令が行われる。そのような状況では、MACの結果を32ビットに飽和するのは望ましなく、むしろ、第1のMAC30命令の飽和されていない40ビットの結果を、第2のMAC命令の飽和されていない40ビットの結果と組み合わせることが望ましい。DSPリストコプロセッサ500は、デュアルマルチプライアキュムレート(DMAC)命令を用いて、この種類のオペレーションを効率的に供給する。フィックスアップロジック546は、結果を32ビットに飽和する前に、MACユニット542と544からの2つの40ビットの結果を組み合わせる。
2つのMACを備えることで、DSPリストコプロセッサ500は効率的にパック演算を実行することができる。例えば、オペランドを、2つの16ビットのオペランドか4つの8ビットのオペランドのどちらか一方として処理することができる。この2つのMACにより、2つの独立した乗算を同時に進行することができる。
さらに、DSPリストコプロセッサ500は、命令のフルコンポーネントを含む。これには、特定のリストおよびパック演算オペレーションにも有益な、標準のALUおよびオペランド移動命令を含む。リストの長さを設定するために、ムーブトゥーレングスレジスタ(MTL)命令を使用して、rd信号線上の値をインターナルLENTGHレジスタに移動させることができる。
よって、本文に説明するデータプロセッサは、効率的な信号処理を実行する。データプロセッサは周知のデータプロセッサを越える多くの利点を供給する。第1に、本文のデータプロセッサは、単一の大きなメモリプールのメモリ管理、大きな一連の汎用レジスタ、汎用命令、RISCのハーバードアーキテクチャ、および、制御フローを含む、汎用RISCプロセッサの機能を利用する。
第2に、DSPオペレーション用の専用回路を有した特殊用途のコプロセッサを含むことで、データプロセッサは、より効率的にDSP機能を実行しつつ、一方では消費電力を低くする。
第3に、特定のエンジンのフェッチ、ストア、コンフリクト、例外などを必要としないことで、DSPリストコプロセッサはRISCパイプラインを混乱させない。
第4に、サイズの違う2つの異なるMACユニットを提供することで、データプロセッサは、ETSI標準演算あるいはAMDスタイルの演算の使用有無に関わらず、DSPアルゴリズムのビットの正確性(bit accuracy)をプログラマーに維持させることができる。
第5に、データプロセッサは、RISCプロセッサコアのために存在する、非常に進んだコンパイラ技術を利用し、アセンブリやC言語コードとしてラインに含まれ得る低レベルおよび高レベルのマクロを供給する。
第6に、DSPリストコプロセッサは、DSPオペレーションで頻繁に使用されるオペランドを格納するための相対的に小さなローカルリストメモリを含む。データプロセッサは、相対的に高い電力費でメインメモリから一旦これらのオペランドをフェッチし、その後、これらのオペランドを相対的に低電力費でDSPリストコプロセッサ内において繰り返し使うことができる。
第7に、レングシーDSPオペレーションに開始命令と終了命令の双方を利用できるようにすることで、データプロセッサは、CPUのパイプラインに、DSPリストコプロセッサのパイプラインと並行して動作を継続させることができ、結果がまだ利用できなければ、CPUのパイプラインだけを後でストールさせる。
第8に、DSPリストコプロセッサはスケーラブルなALUを有する。例示の実施形態では、DSPリストコプロセッサは2つのMAC装置を含むが、MAC装置数は1つだけに減らしてもよいし、異なる設計上のトレードオフを満たすような数、例えば4つ、まで増やしてもよい。
第9に、データプロセッサは、FIRフィルタおよび畳み込みなどのDSPオペレーションに特に効率的な、リストベースのメモリアーキテクチャを使用する。このアーキテクチャにより、インターナル(内部)リストメモリが実質的に再利用され、メインメモリから新たなデータをロードする必要性を減らされ、これが電力の節約と処理の効率性につながる。
第10に、DSPリストコプロセッサは、異なるオペランド長とフォーマットとをサポートし、これにより効率的にDSP計算を行うことができる。したがって、例えば、DSPリストコプロセッサは、単一ドット積、2つの並行なドット積あるいは単一の複雑なドット積を計算することができる。
第11に、データプロセッサは都合よくパック演算をサポートする。したがって、データプロセッサは既存の32ビットのレジスタインターフェースをうまく利用し、DSPリストコプロセッサが2つの16ビットサイズのDSP変数(2つの実数か1つの複素数のいずれか)をDSPリストコプロセッサのリストメモリに同時にロードできるようにする。
第12に、データプロセッサのアーキテクチャは、リストメモリの構成を通じてコンテキストスイッチング(context switching)を簡単にサポートする。したがって、このアーキテクチャは、コンテキストスイッチングに関連付けられた通常のオーバーヘッドを回避すべく、ハードウェアにおいてマルチプルコンテキストをサポートするよう拡張可能である。
第13に、データプロセッサはさらに、DSPリストコプロセッサによって実行可能な、リッチ(rich)な一連の命令を提供することで、処理時間と電力消費の点から、RISCプロセッサコアの全体のパフォーマンスを最適化し、有益な機能を実行する。このような機能の例において、特定の範囲内にアドレスをラッピングし、DSPリストコプロセッサ内のリストにロードされた入力アレイから自己相関アレイを求める。当業者にとっては、多くのその他の有益な機能が、上述の命令セットから明らかであろう。
これまでの詳細な記述では、少なくとも1つの実施形態が示されているが、当然、膨大な数の変形が存在する。さらに、当然、例示の実施形態は単なる例にすぎず、本発明の範囲、適用性、あるいは構成を何ら限定するものではない。むしろ、これまでの詳細な記述は例示的実施形態を実装するために好都合なロードマップを当業者たちに与えることになるであろう。添付の特許請求の範囲に記載した本発明の範囲およびその法律上の均等物から逸脱することなく、構成要素の機能および配置を様々に変更することが出来る点に留意されたい。
従来技術で周知のデータ処理システムのブロック図。 本発明によるデータ処理システムのブロック図。 図2のRISCプロセッサコアのブロック図。 図3のRISCプロセッサコアにより使用されるコプロセッサ命令フォーマットのブロック図。 図2のDSPリストコプロセッサのブロック図。

Claims (10)

  1. プロセッサコア(300)と、
    前記プロセッサコア(300)に結合されたインターフェース(210)と、
    前記インターフェース(210)を介して前記プロセッサコア(300)に結合され、第1リストメモリ(522)を有するコプロセッサ(500)とを備え、
    前記プロセッサコア(300)は、所定の命令(400)に応答して、前記インターフェース(210)を介して前記コプロセッサ(300)にオペランドを供給し、
    前記コプロセッサ(500)は前記第1リストメモリ(522)に前記オペランドを格納し、前記所定の命令(400)に対応するオペレーションを前記第1のリストメモリ(522)からの複数の値を使用して実行し、結果を供給する、データプロセッサ(200)。
  2. 前記コプロセッサ(500)はさらに第2リストメモリ(524)を含み、さらに、前記第2リストメモリ(524)からの複数の値を使用して前記所定の命令に対応する前記オペレーションを実行し、前記結果を供給する、請求項1記載のデータプロセッサ(200)。
  3. 前記第1リストメモリ(522)からの前記複数の値はサンプルデータ値を含み、前記第2リストメモリ(524)からの前記複数の値は複数のフィルタ係数を含み、かつ、前記所定の命令に対応する前記オペレーションは、有限インパルス応答(FIR)フィルタ出力演算を含む、請求項2記載のデータプロセッサ(200)。
  4. 前記コプロセッサ(500)は第1のマルチプライアキュムレート(MAC)ユニット(524)を含む、請求項1記載のデータプロセッサ(200)。
  5. 前記コプロセッサ(500)はさらに第2MACユニット(544)を含み、前記第1MACユニット(542)および第2MACユニット(544)の各々は選択可能な飽和モードを有する、請求項4記載のデータプロセッサ(200)。
  6. プロセッサコア(300)と、
    前記プロセッサコア(300)に結合されたインターフェース(210)と、
    前記インターフェース(210)に結合されたコプロセッサ(500)とを備え、
    前記プロセッサコア(300)は、第1の所定の命令に応答して、命令およびオペランド値を前記インターフェース(210)を介して前記コプロセッサ(500)に供給し、
    前記コプロセッサ(500)は前記第1の所定の命令に従って第1の所定のオペレーションを開始し、
    前記コプロセッサ(500)は、第2の所定の命令に応答して、前記第1の所定のオペレーションが完了すると、前記結果を前記インターフェース(210)に送る、データプロセッサ(200)。
  7. 前記第1の所定の命令は、有限インパルス応答(FIR)フィルタ開始命令を含み、前記第2の所定の命令はFIRフィルタ停止命令を含む、請求項6記載のデータプロセッサ(200)。
  8. 前記FIRフィルタ開始命令に応答して、前記プロセッサコア(300)は命令の実行を継続し、かつ、前記FIRフィルタ停止命令に応答して、前記プロセッサコア(300)は、前記コプロセッサ(500)が前記所定のオペレーションが完了したという信号を送るまでは、更なる命令の処理を停止する、請求項7記載のデータプロセッサ(200)。
  9. 第1の命令に応答して、中央処理装置(300)のレジスタにオペランドをロードするステップと、
    第2命令(400)に応答して、前記レジスタから前記オペランドをインターフェース(210)に供給するステップと、
    前記第2命令(400)に応答して、前記インターフェース(210)に結合されたコプロセッサ(500)の第1リストメモリ(522)に前記オペランドを格納するステップと、
    前記コプロセッサ(500)において、前記第1リストメモリ(522)からの複数の値を使用して、前記第2命令に対応する所定のオペレーションを実行し、結果を供給するステップとを含む、
    データ処理システム(200)を効率的に動作させる方法。
  10. 前記所定のオペレーションを実行するステップは、前記コプロセッサ(500)の前記第1リストメモリ(522)からの前記複数の値と、第2リストメモリ(524)からの複数の値を使用して、前記所定のオペレーションを実行するステップをさらに含む、請求項9記載の方法。
JP2007555102A 2005-02-09 2006-01-17 効率的なデジタル信号処理に適用するデータプロセッサとその方法 Pending JP2008530689A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/054,220 US20060179273A1 (en) 2005-02-09 2005-02-09 Data processor adapted for efficient digital signal processing and method therefor
PCT/US2006/001603 WO2006086122A1 (en) 2005-02-09 2006-01-17 Data processor adapted for efficient digital signal processing and method therefor

Publications (1)

Publication Number Publication Date
JP2008530689A true JP2008530689A (ja) 2008-08-07

Family

ID=36593622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007555102A Pending JP2008530689A (ja) 2005-02-09 2006-01-17 効率的なデジタル信号処理に適用するデータプロセッサとその方法

Country Status (8)

Country Link
US (1) US20060179273A1 (ja)
JP (1) JP2008530689A (ja)
KR (1) KR20070105328A (ja)
CN (1) CN101116053A (ja)
DE (1) DE112006000340T5 (ja)
GB (1) GB2437684B (ja)
TW (1) TW200636571A (ja)
WO (1) WO2006086122A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2343640A2 (en) 2010-01-07 2011-07-13 Fujitsu Limited List structure control circuit
JP2015532990A (ja) * 2012-09-27 2015-11-16 インテル・コーポレーション 複数のコアを有するプロセッサ、共有コア拡張ロジック及び複数の共有コア拡張使用命令
JP2021111313A (ja) * 2019-12-31 2021-08-02 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド 情報処理用方法及び装置

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7586904B2 (en) * 2004-07-15 2009-09-08 Broadcom Corp. Method and system for a gigabit Ethernet IP telephone chip with no DSP core, which uses a RISC core with instruction extensions to support voice processing
US7490223B2 (en) * 2005-10-31 2009-02-10 Sun Microsystems, Inc. Dynamic resource allocation among master processors that require service from a coprocessor
US8914618B2 (en) * 2005-12-29 2014-12-16 Intel Corporation Instruction set architecture-based inter-sequencer communications with a heterogeneous resource
US7865808B2 (en) 2007-05-09 2011-01-04 Harris Corporation Fast error detection system and related methods
CN101521960B (zh) * 2009-02-11 2013-12-11 北京中星微电子有限公司 一种基带和协处理器间的通信方法、装置及系统
US8495343B2 (en) * 2009-09-09 2013-07-23 Via Technologies, Inc. Apparatus and method for detection and correction of denormal speculative floating point operand
CN101777037B (zh) * 2010-02-03 2013-05-08 中兴通讯股份有限公司 一种查找引擎实时系统内数据传输的方法和系统
TWI478065B (zh) * 2011-04-07 2015-03-21 Via Tech Inc 執行模式備份暫存器之模擬
CN107832083B (zh) * 2011-04-07 2020-06-12 威盛电子股份有限公司 具有条件指令的微处理器及其处理方法
KR101849702B1 (ko) 2011-07-25 2018-04-17 삼성전자주식회사 외부 인트린직 인터페이스
CN102262608A (zh) * 2011-07-28 2011-11-30 中国人民解放军国防科学技术大学 基于处理器核的协处理器读写操作控制方法及装置
CN102523374B (zh) * 2011-12-19 2014-02-19 北京理工大学 一种实时并行的电子稳像系统设计方法
WO2013095515A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Packed data operation mask register arithmetic combination processors, methods, systems, and instructions
US9785444B2 (en) 2013-08-16 2017-10-10 Analog Devices Global Hardware accelerator configuration by a translation of configuration data
CN113641627A (zh) 2015-05-21 2021-11-12 高盛有限责任公司 通用并行计算架构
US11449452B2 (en) * 2015-05-21 2022-09-20 Goldman Sachs & Co. LLC General-purpose parallel computing architecture
WO2017146706A1 (en) 2016-02-25 2017-08-31 Hewlett Packard Enterprise Development Lp Performing complex multiply-accumulate operations
WO2019005115A1 (en) 2017-06-30 2019-01-03 Intel Corporation APPARATUS AND METHOD FOR MULTIPLICATION AND CUMULATION OF COMPLEX VALUES
US11294679B2 (en) * 2017-06-30 2022-04-05 Intel Corporation Apparatus and method for multiplication and accumulation of complex values
US10884953B2 (en) 2017-08-31 2021-01-05 Hewlett Packard Enterprise Development Lp Capability enforcement processors
FR3090932B1 (fr) * 2018-12-20 2022-05-27 Kalray Système de multiplication de matrices par blocs
JP7384374B2 (ja) * 2019-02-27 2023-11-21 株式会社ウーノラボ 中央演算処理装置
CN110489356B (zh) * 2019-08-06 2022-02-22 上海商汤智能科技有限公司 信息处理方法、装置、电子设备及存储介质
TWI719786B (zh) * 2019-12-30 2021-02-21 財團法人工業技術研究院 資料處理系統與方法
CN111400986B (zh) * 2020-02-19 2024-03-19 西安智多晶微电子有限公司 一种集成电路计算设备及计算处理系统
US20240329998A1 (en) * 2023-04-03 2024-10-03 Advanced Micro Devices, Inc. Wave level matrix multiply instructions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997014093A1 (en) * 1995-10-09 1997-04-17 Hitachi, Ltd. Terminal
JP2002517038A (ja) * 1998-05-27 2002-06-11 エイアールエム リミテッド 再循環レジスタファイル
US20020099923A1 (en) * 1997-09-08 2002-07-25 Mazhar M. Alidina Near-orthogonal dual-mac instruction set architecture with minimal encoding bits
US20040142717A1 (en) * 2002-06-28 2004-07-22 Schmidt Dominik J. Flexible multi-processing system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897779A (en) * 1988-07-20 1990-01-30 Digital Equipment Corporation Method and apparatus for optimizing inter-processor instruction transfers
EP0442041A3 (en) * 1990-01-18 1991-09-04 National Semiconductor Corporation Integrated digital signal processor/general purpose cpu with shared internal memory
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US5909463A (en) * 1996-11-04 1999-06-01 Motorola, Inc. Single-chip software configurable transceiver for asymmetric communication system
US6189094B1 (en) * 1998-05-27 2001-02-13 Arm Limited Recirculating register file
US6754804B1 (en) * 2000-12-29 2004-06-22 Mips Technologies, Inc. Coprocessor interface transferring multiple instructions simultaneously along with issue path designation and/or issue order designation for the instructions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997014093A1 (en) * 1995-10-09 1997-04-17 Hitachi, Ltd. Terminal
US20020099923A1 (en) * 1997-09-08 2002-07-25 Mazhar M. Alidina Near-orthogonal dual-mac instruction set architecture with minimal encoding bits
JP2002517038A (ja) * 1998-05-27 2002-06-11 エイアールエム リミテッド 再循環レジスタファイル
US20040142717A1 (en) * 2002-06-28 2004-07-22 Schmidt Dominik J. Flexible multi-processing system

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2343640A2 (en) 2010-01-07 2011-07-13 Fujitsu Limited List structure control circuit
US8495275B2 (en) 2010-01-07 2013-07-23 Fujitsu Limited List structure control circuit
JP2015532990A (ja) * 2012-09-27 2015-11-16 インテル・コーポレーション 複数のコアを有するプロセッサ、共有コア拡張ロジック及び複数の共有コア拡張使用命令
US9582287B2 (en) 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
JP2017224342A (ja) * 2012-09-27 2017-12-21 インテル・コーポレーション プロセッサ及び装置
US10061593B2 (en) 2012-09-27 2018-08-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US10901748B2 (en) 2012-09-27 2021-01-26 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US10963263B2 (en) 2012-09-27 2021-03-30 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US11494194B2 (en) 2012-09-27 2022-11-08 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US12086603B2 (en) 2012-09-27 2024-09-10 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
JP2021111313A (ja) * 2019-12-31 2021-08-02 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド 情報処理用方法及び装置
JP6998991B2 (ja) 2019-12-31 2022-01-18 バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド 情報処理用方法及び装置

Also Published As

Publication number Publication date
GB2437684B (en) 2009-08-05
CN101116053A (zh) 2008-01-30
DE112006000340T5 (de) 2007-12-27
TW200636571A (en) 2006-10-16
GB2437684A (en) 2007-10-31
US20060179273A1 (en) 2006-08-10
GB0716020D0 (en) 2007-09-26
KR20070105328A (ko) 2007-10-30
WO2006086122A1 (en) 2006-08-17

Similar Documents

Publication Publication Date Title
JP2008530689A (ja) 効率的なデジタル信号処理に適用するデータプロセッサとその方法
EP3513281B1 (en) Vector multiply-add instruction
JP4130654B2 (ja) 拡張可能なプロセッサアーキテクチャ中にアドバンスド命令を追加するための方法および装置
US6560697B2 (en) Data processor having repeat instruction processing using executed instruction number counter
JP2001501330A (ja) デジタル信号処理集積回路アーキテクチャ
US20080201564A1 (en) Data processor
CN104346132B (zh) 应用于智能卡虚拟机运行的控制装置及智能卡虚拟机
JP2007533006A (ja) 複合命令形式および複合オペレーション形式を有するプロセッサ
US20120191766A1 (en) Multiplication of Complex Numbers Represented in Floating Point
JP4078243B2 (ja) 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置
KR19980018065A (ko) 스칼라/벡터 연산이 조합된 단일 명령 복수 데이터 처리
US10656914B2 (en) Methods and instructions for a 32-bit arithmetic support using 16-bit multiply and 32-bit addition
Yarlagadda Lexra Adds DSP Extensions
CN118057308A (zh) 指令处理优化方法及相关装置
JP4382076B2 (ja) データ処理装置
US20050188183A1 (en) Digital signal processor having data address generator with speculative register file
Bhaskaran et al. RISC and DSP Cores
WO2007087270A2 (en) Processor having a data mover engine that associates register addresses with memory addresses
King et al. DSP Hardware
Holmann et al. A Dual-Issue RISC Processor for Multimedia Signal Processing
Chaji et al. eUTDSP: a design study of a new VLIW-based DSP architecture
JP2009134745A (ja) データ処理装置
JPH1173314A (ja) マイクロプロセッサ
KR20100120893A (ko) 1사이클 명령어 해독에 따른 효율적 저전력 처리방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090114

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120530