JP2001516916A - デジタル信号処理能力を有するデータ処理装置 - Google Patents

デジタル信号処理能力を有するデータ処理装置

Info

Publication number
JP2001516916A
JP2001516916A JP2000512132A JP2000512132A JP2001516916A JP 2001516916 A JP2001516916 A JP 2001516916A JP 2000512132 A JP2000512132 A JP 2000512132A JP 2000512132 A JP2000512132 A JP 2000512132A JP 2001516916 A JP2001516916 A JP 2001516916A
Authority
JP
Japan
Prior art keywords
register
data
word
data processing
registers
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
JP2000512132A
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.)
Infineon Technologies North America Corp
Original Assignee
Infineon Technologies North America Corp
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 Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of JP2001516916A publication Critical patent/JP2001516916A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • 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/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; 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing

Landscapes

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

Abstract

(57)【要約】 本発明によるデータ処理装置は、レジスタファイルと、該レジスタファイルに接続されているレジスタロードおよび格納バッファと、単一メモリと、バスとを有するようにして達成され、バスは少なくとも第1および第2ワードラインを備えておりダブルワード幅バスを形成し、前記レジスタロードおよび格納バッファを前記メモリと接続している。レジスタファイルは少なくとも2つのレジスタのセットを有しており、それにより第1のレジスタのセットはワードラインの1つと接続することができ、かつ第2のレジスタのセットはそれぞれの他のワードラインと接続することができる。データ処理装置はロードおよび格納制御装置とを有しており、前記メモリから、または前記メモリへデータを転送する。

Description

【発明の詳細な説明】
【0001】 発明の背景 本発明はデータ処理装置に関し、より詳細には、マイクロコンピュータまたは
マイクロコントローラのような中央演算処理装置(CPU)に関する。マイクロ
コントローラは当分野で公知であり、ローエンドデバイス(例えば4/8ビット
コントローラ)からハイエンドデバイス(例えば32ビットコントローラ)まで
、バラエティーに富んだデバイスを入手できる。一般的にマイクロプロセサは2
つのグループに分けられる。すなわち複合命令セット・コンピュータ(CISC
)または縮小命令セット・コンピュータ(RISC)のような汎用プロセサ、お
よびデジタル信号処理プロセサ(DSP)のような特殊用途のために設計された
専用マイクロプロセサである。
【0002】 RISCおよびCISCプロセサは通常、複数のレジスタまたはレジスタファ
イル、ならびに任意の種類およびサイズの単一メモリを備えたプロセサであり、
従って任意の種類のデータを処理するように設計されている。RISCおよびC
ISCプロセサは拡張に対する制限はないが、DSPプロセサが有するプロセシ
ングの高速性を欠く。
【0003】 DSPプロセサは通常、アキュムレータおよびサイズが制限された専用メモリ
を有する。これらはデータを非常に高速かつ高精度に計算するように、例えばサ
ンプルされた信号を処理するように設計されている。メモリはたいていXメモリ
とYメモリとに分割されており、2つの異なるデータに1回のサイクルでアクセ
スできるようになっている。これは完全な非直交演算( non orthogonal operat
ions )を生じさせ、アドレシングモードに厳しい制約を加える結果となり、そ のようなメモリモデルはコンパイラフレンドリではあり得ない。特定のデータが
「間違った」メモリ内にある場合、そのデータをXメモリからYメモリへ、また
はその逆向きにロードしなくてはならない。レジスタファイルがないことも、そ
のようなプロセサを”C”でプログラムすることを困難にしている。さらに、狭
い固定された命令幅も、そのようなアーキテクチャの拡張を不可能にする。
【0004】 他のシステムでは、動作速度を上げるためにコ・プロセサを使用している。コ
・プロセサは主中央演算処理装置(CPU)のどのレジスタも共有しない。従っ
てCPUはコ・プロセサのレジスタをロードしなくてはならず、それにより動作
速度が大幅に下がり、レジスタの使用が制限される。
【0005】 発明の概略 従って本発明の目的は、DSPフィーチャを有し、かつコ・プロセサなしにC
ISCおよびRISCプロセッサの汎用性を有するデータプロセッサを提供する
ことである。
【0006】 前記目的は、データ処理装置において、レジスタファイルと、該レジスタファ
イルに接続されているレジスタロードおよび格納バッファと、単一メモリと、バ
スとを有するようにして達成され、バスは少なくとも第1および第2ワードライ
ンを備えておりダブルワード幅バスを形成し、前記レジスタロードおよび格納バ
ッファを前記メモリと接続している。レジスタファイルは少なくとも2つのレジ
スタのセットを有しており、それにより第1のレジスタのセットはワードライン
の1つと接続することができ、かつ第2のレジスタのセットはそれぞれの他のワ
ードラインと接続することができる。データ処理装置はロードおよび格納制御装
置とを有しており、前記メモリから、または前記メモリへデータを転送する。
【0007】 実施例の1つでは、ロードおよび格納制御装置は、2つの連続するワードをメ
モリから第1および第2のレジスタのセットへ、またはメモリへ第1および第2
のレジスタのセットから、並列にロードまたは格納する手段を備えている。別の
実施例では、メモリからの1ワードを2つのハーフワードに分割することができ
、そしてハーフワードは、第1のレジスタのセットからの第1レジスタ、および
第2のレジスタのセットからの第2レジスタに格納される。ハーフワードはレジ
スタの半分の一方に格納され、レジスタの他の半分はゼロで埋められるか、符号
充填( sign fill )される。
【0008】 別の実施例では、バスは、複数ワード幅バスを形成するために複数のワードラ
インを有し、レジスタファイルは複数のレジスタのセットを有し、これにより各
レジスタのセットは前記ワードラインのセットの1つに接続されている。例えば
、64ビットデータ処理装置においては、2つの32ビットハーフワードまたは
4つの16ビットクオータワードに、1つのサイクル中にアクセスすることがで
きる。従って、データ処理装置のロードおよび格納制御装置は、複数の連続する
ワードをメモリから複数のレジスタのセットへ、またはメモリへ複数のレジスタ
のセットから、並列にロードまたは格納する手段を備えている。この手段により
、任意のレジスタのセットの任意のレジスタを、メモリ内の任意の記憶位置に接
続することが可能になる。
【0009】 別の実施例では、データ処理装置のロードおよび格納制御装置は、メモリから
1ワードをロードし、複数の部分ワードに分割する手段を有することができる。
各部分ワードはそれぞれ、各レジスタのセットのレジスタの1つに格納される。
【0010】 本発明によるデータ処理装置には、データおよびアドレスレジスタを有する標
準的なレジスタファイルを使用することによる利点がある。従ってアドレスレジ
スタを、例えば無制限のスタックサイズを可能にするスタックポインタとして使
用することができ、それによりデジタル信号処理プロセサはたいてい、サイズが
制限されたハードウェアスタックしか備えていない。”C”コードは、容易にマ
シンコードに翻訳することができ、すべてのレジスタで直交演算が可能になる。
デジタル信号処理プロセサにおいて必要であるような、メモリへのアキュムレー
タの定常的な動作は必要でない。レジスタを再使用することができるので、結果
的に消費電力を低減させることにもなる。
【0011】 図の簡単な説明 図1は、本発明による、単一メモリおよびデータ処理装置の実行装置に接続さ
れているレジスタファイルの原理的なブロック回路図である。
【0012】 図2は、レジスタファイルと単一メモリとの間の接続の実施例である。
【0013】 図3は、演算器およびレジスタファイルのレジスタへの演算器のリンクを含む
、第1の実施例である。
【0014】 図4は、演算器およびレジスタファイルのレジスタへの演算器のリンクを含む
、第2の実施例である。
【0015】 図5は、演算器およびレジスタファイルのレジスタへの演算器のリンクを含む
、第1の実施例である。
【0016】 図6は、フラグおよび飽和装置の扱いを示す図である。
【0017】 図7は、循環バッファモードにおけるメモリアクセスを示す図である。
【0018】 図8は、ビット反転アドレスモードを示す図である。
【0019】 図9は、FIRフィルタ機能を実行するためのデータ処理装置の実現例を示す
図である。
【0020】 有利な実施例の説明 図1は、レジスタファイル2に接続されているメモリ装置1を含む、原理図で
ある。アプリケーション全体を通してワードは32ビットであり、ハーフワード
は16ビットを、そして1バイトは8ビットである。もちろん本発明は32ビッ
トワードを有する実施例に限定されるものではなく、従ってワードは任意のサイ
ズをとることができる。
【0021】 レジスタファイル2とメモリ1を接続するために、バッファ/選択論理2aが
設けられている。本実施例では参照番号2bはレジスタを示す。D0からD15
までの16のレジスタが設けられており、各レジスタは1ワード分のビット幅を
有し、1ワードは例えば32ビットである。レジスタは2つのグループ、偶レジ
スタおよび奇レジスタにまとめられている。この例ではレジスタはデータレジス
タであるが、アドレスレジスタまたはデータレジスタのいずれかとすることがで
きる。第2のレジスタのセットを、同様にしてアドレスレジスタ用に設けること
ができる。メモリ装置1とバッファ/選択論理2aとの間のバスは64ビット幅
であり、そのためメモリ1の2つの連続するワードをアドレスすることができる
。レジスタファイル2からメモリ装置1へ、またはこの逆向きの転送の間、ロー
ド/格納制御装置2dはメモリ装置1のアドレス、およびそれぞれのレジスタ2
bを選択する。レジスタファイル2は第2のバッファ/選択論理2cをさらに有
し、この論理2cは複数の実行装置4、5および6に接続している。第2バスが
、バッファ/選択論理2cと実行装置4、5および6との間のリンクとして設け
られている。それぞれのバッファ/選択論理2aおよび2cを介して、少なくと
も2つのレジスタに同時にアクセスすることができるが、前記少なくとも2つの
レジスタは、例えば偶および奇レジスタの各グループ内に1つづつ存在する。
【0022】 図2に、レジスタ2bとメモリ1との間のコネクションをより詳細に示す。メ
モリ1はダブルワードにまとめられており、連続した2つのワード、例えばワー
ド1eおよびワード1f、またはワード1fおよびワード1gに同時にアクセス
できるようになっている。第1のデータ出力ライン1aのセットは本実施例では
32ビットを有し、マルチプレクサ/分割装置8に接続されている。装置8はラ
イン1aを、整列装置12または13を介して奇レジスタD1、D3、D5、.
..D15または偶レジスタD2、D4、D6、...D14のいずれかに接続
する。第2のデータ出力ライン1dのセットはマルチプレクサ/分割装置9に接
続されている。装置9はライン1dを整列装置13または12を介して偶レジス
タD2、D4、D6、...D14または奇レジスタD1、D3、D5、...
D15のいずれかに接続する。逆の向きを考えると、奇レジスタD1、D3、D
5、...D15および偶レジスタD2、D4、D6、...D14はそれぞれ
、選択/連結装置11に接続されており、この装置11はレジスタグループの1
つを選択するか、または各レジスタグループのハーフワードを連結してワードに
するかの、いずれかを行う。選択または連結されたワードは第3のマルチプレク
サ7に供給されるが、このマルチプレクサはワードを、メモリ1に接続している
第1のデータ入力ライン1bのセットまたは第2のデータ入力ライン1cのセッ
トのいずれかと結合させる。
【0023】 本発明によるデータ処理装置は、2つのデータワードを1サイクルで読み出す
ことを可能にする特別の命令をサポートする。2つの別個のメモリ装置を有する
DSPに対して、本発明によるデータ処理装置は単一メモリ装置を有する。2つ
のメモリを有するDSPでは、データが「間違った」メモリに格納されている場
合、1つのメモリから別のメモリへデータを転送しなければならない。本発明に
よるデータ処理装置では、その必要はない。2つのデータワードへのアクセスを
制限するのは、データワードが連続的なオーダーで格納されていなくてはならな
い、ということだけである。一方、単一メモリだけを使用することにより、デー
タ処理装置にはRISCまたはCISCプロセッサのすべての利点および汎用性
が備わる。従ってデータをメモリ内の任意の記憶位置に格納することができ、こ
れは例えば”C”プログラミングにとって非常に便利である。
【0024】 特別の命令は「レジスタにダブルワードをロード( load double word to a r
egister )」命令を与える。ダブルワードはメモリからマルチプレクサ装置8お
よび9に、データ出力ライン1aおよび1dを介してロードされる。このモード
では装置12および13はマルチプレクサとして動作し、データライン1aを奇
レジスタまたは偶レジスタと、またデータライン1dを偶レジスタまたは奇レジ
スタとそれぞれ接続する。データ処理装置には特別な選択装置を設けることがで
き、それによりこの命令内で、各グループ内の任意のレジスタを選択することが
可能になる。単純な実施例では1つのレジスタだけを選択し、第2のレジスタは
自動的に、選択されたレジスタに隣接するレジスタとなる。例えば、偶レジスタ
D4が選択されたとすると、それに隣接する奇レジスタはレジスタD5であり、
または奇レジスタD7が選択されたとすると、それに隣接する偶レジスタはD6
である。メモリ内のダブルワードは例えば、ワード1e、そしてこれに続くワー
ド1f、というように、整列されたアドレスにおいて探し出すことができる。ま
たは、例えばワード1fおよびこれに続くワード1g、というように整列されて
いないアドレスにおいてアクセスすることができる。マルチプレクサ7、8、9
および10はそれぞれのデータを整列させ、そしてそれぞれのレジスタまたはメ
モリセルに分配する。
【0025】 既に述べたように、本実施例においては、第1のデータ出力ライン1aにおい
て開始するアドレス(整列されている)をもって、または第2のデータ出力ライ
ン1d(整列されていない)においてメモリをアドレスすることができる。以下
では単純な実施例を仮定する。常に連続したアドレスが使用されるため、例えば
命令に含まれるソースアドレスが、データ出力ライン1aをアドレスし、ターゲ
ットとして奇レジスタD9を指示するならば、メモリセル1eはライン1aなら
びに装置8および12を介してレジスタD9に接続され、かつ引き続くメモリセ
ル1fはライン1dならびに装置9および13を介してレジスタD8に接続され
る。命令に含まれるソースアドレスが、データ出力ライン1dをアドレスし、か
つターゲットとして奇レジスタD9を指示するならば、メモリセル1fはライン
1dならびに装置9および12を介してレジスタD9に接続され、かつ引き続く
メモリセル1gはライン1aならびに装置8および13を介してレジスタD8に
接続される。命令に含まれるソースアドレスが、データ出力ライン1aをアドレ
スし、ターゲットとして偶レジスタD2を指示するならば、メモリセル1eはラ
イン1aならびに装置8および13を介してレジスタD2に接続され、かつメモ
リセル1fはライン1dならびに装置9および12を介してレジスタD3に接続
される。命令に含まれるソースアドレスが、データ出力ライン1dをアドレスし
、ターゲットとして偶レジスタD2を指示するならば、メモリセル1fはライン
1dならびに装置9および13を介してレジスタD2に接続され、かつメモリセ
ル1gはライン1dならびに装置9および12を介してレジスタD3に接続され
る。レジスタを自由に選択できるならば、接続方式はそれに応じて機能する。
【0026】 本発明により実行できる第2の型式の命令は、いわゆる「2つの(パックされ
た)ハーフワードをロード( load two half-words (packed) )」命令である。
この命令では、データライン1aまたは1dいずれかから1つのワードがロード
され、そして装置8または9によりハーフワードに分割され、ワードのそれぞれ
の下位半分に配置される。オプションとして、装置12および13はそれぞれの
ハーフワードをワードに符号拡張するか、ゼロ拡張( zero extend )するかの いずれかが可能である。言い換えると、本実施例では16ビットのハーフワード
が32ビットに拡張される。装置8または装置9はライン1aまたは1dから受
け取ったワードを2つのハーフワードに分割し、それらを装置12および13を
介して偶および奇レジスタそれぞれの下位半分へ分配する。装置12および13
では、これらのハーフワードをワードに拡張することができ、これは上位半分を
ゼロで埋めるか、上位半分を符号拡張するかのいずれかにより行う。ハーフワー
ドの符号が負である場合は、それぞれのレジスタの上位半分は”1”で埋められ
、それ以外の場合は”0”で埋められる。装置12および13が停止状態にある
ならば、ハーフワードはそれぞれの偶および奇レジスタの下位半分に、上位半分
の変更なく格納される。単純化された方式では、最下位メモリハーフワード( l
east significant memory half-word )は常に偶レジスタに格納され、この偶レ
ジスタに隣接する奇レジスタに最上位ハーフワード( most significant half-w
ord )が格納される。
【0027】 本発明により実行できる第3の型式の命令は、いわゆる「符号付きフラクショ
ンを2つロード( load two signed fractions )」命令である。この命令では 、データライン1aまたは1dいずれかからワードがロードされ、装置8または
9によりハーフワードに分割され、それぞれのワードの上位半分に配置される。
オプションとして、装置12および13はそれぞれのハーフワードをワードにゼ
ロ拡張することができる。装置8または装置9は、ライン1aまたは1dから受
け取ったワードを分割して、元のワードの上位および下位半分を表す2つのハー
フワードにし、装置12および13を介して偶および奇レジスタそれぞれの上位
半分に分配する。装置12および13ではハーフワードを1ワードに拡張するこ
とができるが、これは下位半分を”0”で埋めることにより行う。装置12およ
び13が停止状態にあるならば、ハーフワードはそれぞれの偶および奇レジスタ
の上位半分に、下位半分の変更なく格納される。単純化された方式では、最下位
メモリハーフワードは常に偶レジスタに格納され、この偶レジスタに隣接する奇
レジスタに最上位ハーフワードが格納される。
【0028】 本発明により実行できる第4の型式の命令は、いわゆる「2つの(パックされ
た)ハーフワードをストア( store two half-words(packed) )」命令である。
この命令では、偶および奇レジスタの下位ハーフワードは、連結装置11または
14のいずれかに供給される。2つのハーフワードは1ワードに結合され、マル
チプレクサ7または10、およびデータ入力ライン1bまたは1cのいずれかを
介してメモリ装置1に格納される。
【0029】 本発明により実行できる第5の型式の命令は、いわゆる「符号付きフラクショ
ンをストア( store signed fractions )」命令である。この命令では、偶およ
び奇レジスタの上位ハーフワードは連結装置11または14のいずれかに供給さ
れる。2つのハーフワードは1ワードに結合され、マルチプレクサ7または10
、およびデータ入力ライン1bまたは1cのいずれかを介してメモリ装置1に格
納される。
【0030】 最後に、本発明により実行できる第6の型式の命令は、いわゆる「データレジ
スタからのダブルワードをストア( store double word from data registers )」命令である。この命令では、偶および奇レジスタのコンテントはマルチプレ
クサ装置7または10のいずれかに供給され、データ入力ライン1bおよび1c
を介してメモリ装置に格納される。この命令は上記の「レジスタにダブルワード
をロード」命令と同じように機能する。装置7および10はマルチプレクサとし
て動作し、各レジスタのコンテントをデータ入力ライン1bまたは1cのいずれ
かに分配する。装置11および14は停止状態におかれるため、装置7および1
0それぞれは偶または奇レジスタに格納された全ワードを入力側において受け取
る。
【0031】 メモリおよびレジスタファイルを配列する原理は、容易に拡張することができ
る。例えば4つの異なるレジスタのセットを設けることができ、かつメモリのア
ドレシングを4ワード幅バスにより拡張することができ、これにより4つの連続
するワードを同時にロードおよび格納することが可能になる。
【0032】 第2のバッファ/選択論理2cを介して、レジスタファイルは複数の実行装置
、例えば積和演算器( multiplier accumulator =MAC)、算術論理演算装置
(ALU)、ファンネル・シフタ( funnel shifter )、ビット操作装置等と接
続されている。図3から図5にこれらの装置がどのようにレジスタファイルと接
続され、どのように動作するかを示す。
【0033】 図3では、ワードとして32ビットを有する2つのレジスタ17および18が
、2つの演算装置( operator units )15および16接続されている。これら
の演算装置は同一であり、実行装置それぞれにより与えられる任意の機能を実行
することができる。例えば、これらの演算装置は加算器であっても、乗算器、シ
フタであってもよく、比較器、AND/OR演算器( operator )等のような任
意の論理装置であってもよい。入力として、各演算器はハーフワードを受け取る
が、この例ではハーフワードは16ビット幅である。従って、レジスタ17の上
位半分は演算装置15の第1入力側と接続され、レジスタ17の下位半分は演算
装置16の第1入力側と接続されている。一方、レジスタ18の上位半分は演算
装置15の第2入力側と接続され、レジスタ18の下位半分は演算装置16の第
2入力側と接続されている。演算装置は少なくともハーフワード幅の出力側を有
する。演算装置15の出力側は第3レジスタ19の上位半分と接続され、演算装
置16の出力側はレジスタ19の下位ハーフワードと接続されている。
【0034】 図4に、第2の型式のパックされた算術または論理演算を示す。3つのレジス
タ20、25および26は4つのパートに分けられている。本実施例では、各パ
ートは8ビットを含む。4つの演算装置21、22、23、および24が備えら
れており、レジスタ20、25および26の各8ビットのパートに関連づけられ
ている。レジスタ20および25の4つのパートは、各演算装置21、22、2
3、および24に入力値を供給するが、各演算装置21、22、23、および2
4の出力信号はレジスタ26のそれぞれのパートに供給される。
【0035】 図5に、図3による実施例を示す。ここで各演算装置は乗算器29および30
である。乗算器29および30は例えば、得られる結果が32ビットである16
ビット乗算器でよい。各結果の上位ハーフワードは、結果レジスタ19に供給さ
れる。
【0036】 レジスタはすべてレジスタファイルの一部であり、任意の偶または奇レジスタ
に割り振ることができる。すべての3つのレジスタを、単一のレジスタに割り振
ることもできる。図1に示すバス3およびそれぞれの入力および出力ラインは、
それぞれの実行装置4、5、および6に、それぞれの入力および出力データを供
給するために必要である。
【0037】 この、いわゆるパックされた算術または論理演算命令は、本実施例では32ビ
ットワードを複数の同一のオブジェクトに分け、次にこのオブジェクトは並列に
取り出され、格納され、そして演算を施される。とりわけこれらの命令は、DS
Pアプリケーションにおいて、本発明によるデータ処理装置の32ビットワード
をフルに活用することを可能にする。
【0038】 本実施例では、2つのパックされたフォーマットを実現することができる。第
1のフォーマットは32ビットワードを2つの16ビットハーフワード値に分け
る。第2のパックされたフォーマットは32ビットワードを4つの8ビット(バ
イト)値に分ける。
【0039】 データまたはアドレスレジスタへの、パックされた値のロードおよび格納は、
上で述べたそれぞれのロードおよび格納命令によりサポートされている。そして
パックされたオブジェクトを、特別なパックされた算術命令のセットにより並列
に処理することができるが、算術命令のセットは加算、減算、乗算、除算、等の
算術演算を行う。例えば、乗算命令は2つの16ビットの乗算を並列に行う。こ
れを図5に示す。
【0040】 図6に、演算がCPU内の状態標識にどのように影響するのか、そして異なる
演算の飽和をどのように達成できるのかを示す。演算器40は結果を任意のレジ
スタ42に書き込む。比較装置41は演算器による結果を比較し、それぞれのフ
ラグをフラグレジスタ43にセットする。例えば、桁上がりビット、オーバフロ
ービット、スティッキーオーバフロービット( sticky overflow bit )、アド バンストオーバフロービット( advanced overflow bit )、スティッキーアド バンストオーバフロービット( sticky overflow bit )を他のフラグの他にセ ットできる。アドバンストオーバフロービットは、算術命令が「あやうく」オー
バフローを生じさせた場合にセットされ、他のワードに関しては、比較装置は結
果レジスタ42のコンテントを、正および/または負の最大数よりも小さい所定
の値と比較する。このフラグは算術命令毎に更新される。スティッキーオーバフ
ロービットは、オーバフロービットと並列にセットされる。これら2つのフラグ
は、それぞれのリセット命令により明示的にリセットされるまで、セットされた
ままである。
【0041】 加算は、個々のパックされたバイトまたはハーフワードに対して、それぞれの
加算命令を使用して行われ、それらを個々のバイトまたはハーフワード内のオー
バフローまたはアンダフローを無視する飽和装置44により拡張することができ
る。飽和装置44が加算毎に提供する機能は、個々のバイトまたはハーフワード
を飽和させて、個々のオーバフローの正の最大値、または個々のアンダーフロー
の負の最小値にする。例えば比較装置41は、結果レジスタ42のコンテントを
所定の飽和値と比較することができる。コンテントが所定の正/負の飽和値より
も大きいならば、この結果は飽和装置44に示され、飽和装置44は結果レジス
タ42のコンテントをそれぞれの正または負の飽和値にセットする。様々な算術
命令に対して飽和を提供することができる。
【0042】 多くのDSP関連の演算で、いわゆる循環バッファ( circular buffer )を 扱う必要がある。通常、そのようなバッファはポインタによりアドレスされ、ポ
インタがバッファの終わりに到達する度に、CPUはポインタをバッファの先頭
にセットし直してやらなければならない。循環バッファの長さが、いずれの複数
の2バイトとも異なっている場合、循環バッファの先頭に切り替えるために、計
算を行わなくてはならない。バッファの長さが2nであるならば、少なくとも1 つのマスキング命令がバッファへのアクセスを制御するために必要である。本発
明によるデータ処理装置は、循環バッファアドレシングをサポートするための特
別なメカニズムを提供する。
【0043】 図7に、ダブルワード幅バスを介してレジスタファイル2に接続されているメ
モリ1を示す。データ処理装置は、基底アドレス31c、バッファ長31aおよ
びバッファインデックス31bを格納する格納手段を有する。これらのパラメー
タはアドレスレジスタを有する第2レジスタファイルに格納することができ、そ
れにより基底アドレス31cはアドレスレジスタの1つに格納され、バッファ長
31aおよびバッファインデックス31bはそれぞれ第2アドレスレジスタの上
位および下位部分に格納される。
【0044】 循環バッファ制御装置32はレジスタ31a、31b、および31cと接続さ
れている。循環バッファに対するロード/格納制御装置33は、制御装置32、
メモリ1、およびレジスタファイルと接続されている。さらにバッファ格納手段
31へアクセスすることもできる。CPUの命令実行装置は参照番号34で示さ
れ、所定の制御入力を受け取るが、これについては後述する。
【0045】 循環アドレシングは主に、フィルタ計算を行いつつ循環バッファ内のデータ値
にアクセスするために使用する。基底アドレス31cは有利には、アドレスレジ
スタファイルの偶レジスタに格納されているが、このアドレスレジスタファイル
はデータレジスタファイル2と同様のものである。従ってパラメータ31aおよ
び31bは有利には、奇アドレスレジスタに格納されて、すべてのパラメータに
同時にアクセスすることが可能になる。インデックスパラメータ31bはオフセ
ットにより増分することができる。実効アドレスは循環バッファ制御装置32に
より定義されるが、これはインデックスパラメータ31bを基底アドレスパラメ
ータ31cに加算することにより行う。循環バッファが占めるメモリは、例えば
アドレス”基底アドレス”+”インデックス”からである。循環バッファ制御装
置32は、自動的にインデックスレジスタ31bを増分するが、これはアクセス
されたワードサイズにより行う。例えばワードのアクセスに対しては”1”を、
そしてダブルワードのアクセスに対しては”2”を増分し、またはその他任意の
オフセットで増分する。そしてインデックスレジスタ31bをバッファ長レジス
タ31bと比較する。両方が等しいならば、インデックスをゼロにリセットする
。オフセットを加算し、その結果得られるインデックスがバッファ長よりも長い
ならば、バッファ長をインデックスパラメータ31bから減算して、正しい記憶
位置をポイントするようにする(ラップアラウンド機能)。従ってアドレスメカ
ニズムは自動的に、付加的な命令なしに循環バッファをラップアラウンドする。
【0046】 図6にそのような循環バッファを示すが、このバッファはb1、b2、...
b8のメモリセルからなっている。循環バッファ制御装置が、開始インデックス
( starting index )”0を最初としてバッファへのアクセスを開始するならば
、最初の2つのセルb1およびb2、ならびにこれに続くセルが一列にアクセス
され、さらなる制御動作は必要ではない。開始インデックスとして例えば”1”
が使用されるならば、またはオフセットが奇数であるならば、ワードb8を最初
とするダブルワードアクセスは第2のワードとしてワードb1にアクセスしなく
てはならない。ワードb1はワードb8に対して連続的に格納されていないので
、ロード/格納制御装置33は命令実行装置34に第2の命令を発行して、第1
サイクル中にワードb8にアクセスさせ、引き続くサイクル中にワードb1にア
クセスさせる。この場合のみ、循環バッファの境界を交差するデータをロードま
たは格納するために、2つのアクセスサイクルが必要である。循環バッファは一
般的に大きいので、”通常の”境界交差のないアクセスに比べて、上記のような
アクセスは非常に希である。
【0047】 第2のアドレシングモード、いわゆるビット反転アドレシング( bit reverse
addressing )を図8に示す。これは高速フーリエ変換(FAT)において主に
使用されている。ここでも、メモリ1はレジスタファイル2に接続されているが
、これは先の図において見たとおりである。データ処理装置は格納手段35を有
しており、ビット反転パラメータ、例えば基底アドレス35c、変更子35a、
およびインデックス35bを格納する。有利には、すべてのパラメータはアドレ
スレジスタに格納されるが、これは循環バッファアドレシングに関連して説明し
たとおりである。有利には基底アドレスは偶アドレスレジスタに、変更子は第2
奇アドレスレジスタの上位部分に、そしてインデックスは第2奇アドレスレジス
タの下位部分に格納されており、並列なアクセスが可能になっている。
【0048】 実効アドレスを参照番号39で示すが、これは加算器36、38および反転機
能装置37により自動的に計算される。メモリ1にアクセスした後、インデック
スパラメータ35bは加算器36により変更子35aをもってポストインクリメ
ント( post-increment )される。インデックスは反転機能装置37に供給され
、装置37はn=0、...、mに対して、ビットnをビット(m−n)に交換
する。ここでmはインデックスパラメータ35bの長さを示す。装置37が実行
する機能は、インデックスレジスタ35bのコンテントをレジスタ中心に対して
単純にミラー操作することである。0、...、15のビットを有する16ビッ
トレジスタでは、中心は7ビットと8ビットとの間になる。反転されたインデッ
クスパラメータは加算器38に供給されるが、加算器38はこのパラメータを基
底アドレス35cに加算する。結果39はメモリ1に対するアドレスとして使用
され、必要ならばそれぞれのメモリセルの物理アドレスに変換される。
【0049】 説明のために、16ビット値を有する1024ポイントの実FFTを用いると
、バッファサイズは2048バイトになる。ビット反転インデックスを使用して
このアレイを1ステップづつ実行しながら通り抜けることによりバイトインデッ
クスのシーケンスを得る:0、1024、512、1536、256...。こ
のシーケンスはインデックス35bを0に、変更子を0x0020に初期化する
ことにより得ることができる。
【0050】 一般的に、要求される変更子の値は、バッファサイズ/2の反転機能により得
られ、ここでバッファサイズの単位はバイトである。このメカニズムは実行時間
およびメモリ空間を節約する。さらにFFTアルゴリズムを、非常に書きやすく
する。ビット反転アドレシングモードがなかったら、FFTを完了するためにデ
ータをもう1回通り抜けなくてはならない。要求される余分のサイクル数は、デ
ータポイント数に比例する。サイクル回数の全増加分は、ソフトウェア内でビッ
ト反転を実現するために使用したアルゴリズムに依存する。
【0051】 図9に示すブロックダイアグラムは、本発明による、FIRフィルタ機能を果
たすためのデータ処理装置のコンフィギュレーションの例を示す。メモリ1はデ
ータ0からデータN−1、および係数COE 0からCOE N−1を含む。メモ
リはアドレスレジスタファイル45によりアドレスされるが、このレジスタファ
イルはそれぞれのポインタを含み、かつロード/格納アドレス演算に接続されて
いる。メモリ1はまた、64ビットバスを介してデータレジスタファイル2に接
続されているが、このレジスタファイルは計算された実際の係数およびデータを
含む。データ処理装置は複数のバス47、48、49および50を備え、これら
のバスは異なる算術演算装置において演算を実行するための異なるデータを扱う
。2つの乗算器51および52が備えられており、2つの乗算を並列に実行する
が、乗算器の入力側はデータレジスタファイルにバス47を介して接続されてい
る。さらに、2つの16ビット加算器53および54が備えられており、これら
はバス50を介して乗算器51および52の結果と結合される。バス48が加算
器53および54の出力側に接続されている。2つの付加的な加算器55および
56が備えられており、入力側はバス48に、そして出力側はバス49に接続さ
れている。バス47、ひいてはデータレジスタファイル2は何本かのラインを介
してバス48およびバス49に接続されている。バス50およびバス49はバス
48に付加的に接続されている。
【0052】 両方のアドレシングモードとも、メモリアクセスメカニズムに依存せずに任意
のデータ処理装置中に実現することができる。既に述べたが、本発明はどのよう
なビットサイズにも限定されるものではない。本発明は、ハーフワードが8ビッ
トで形成される、16ビットワードサイズを有するデータ処理装置中に実現する
こともできる。本発明はまた、ハーフワードが32ビットで形成され、4分の1
ワードが16ビットで形成される、64ビットワードサイズを有するデータ処理
装置中に実現することもできる。
【図面の簡単な説明】
【図1】 本発明による、単一メモリおよびデータ処理装置の実行装置に接続されている
レジスタファイルの原理的なブロック回路図である。
【図2】 レジスタファイルと単一メモリとの間の接続の実施例である。
【図3】 演算器およびレジスタファイルのレジスタへの演算器のリンクを含む、第1の
実施例である。
【図4】 演算器およびレジスタファイルのレジスタへの演算器のリンクを含む、第2の
実施例である。
【図5】 演算器およびレジスタファイルのレジスタへの演算器のリンクを含む、第1の
実施例である。
【図6】 フラグおよび飽和装置の扱いを示す図である。
【図7】 循環バッファモードにおけるメモリアクセスを示す図である。
【図8】 ビット反転アドレスモードを示す図である。
【図9】 FIRフィルタ機能を実行するためのデータ処理装置の実現例を示す図である
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年3月13日(2000.3.13)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0004
【補正方法】変更
【補正内容】
【0004】 他のシステムでは、動作速度を上げるためにコ・プロセサを使用している。コ
・プロセサは主中央演算処理装置(CPU)のどのレジスタも共有しない。従っ
てCPUはコ・プロセサのレジスタをロードしなくてはならず、それにより動作
速度が大幅に下がり、レジスタの使用が制限される。 EP-A-0 473 805 号明細書は、64ビットデータバスに接続されている32ビ ット算術論理演算装置(ALU)を有するコンピュータシステムを開示している
。複数の汎用レジスタが設けられており、各レジスタは32ビットであり、2つ
のグループにまとめられている。データバス上に存在する2つの32ビットデー
タワードを伝送し、汎用レジスタの2つのグループ内に格納することができる。
そこから2つのデータワードを、2つのオペランドレジスタを介してALUに伝
送することができる。 EP-A-0 679 991 号明細書は、可変ビット幅のオペランドデータを使用して演 算を実行するデータプロセサを開示している。これにより並列パフォーマンスが
改良されているが、この改良は固定ビット幅のオペランドをいくつかの部分オペ
ランド領域に区切り、データ依存性をチェックし、これらの領域内のデータを相
互に独立にタグをつけ、そしてフォワーディング( forwarding )することによ
り実現されている。可変幅レジスタオペランドストラクチャは、プロセッサがデ
ータ依存性を解決するのを助ける。これはオペランドがデータの型に関わりなく
、順番付けバッファによりタグをつけられ、使用可能になるとデータを供給され
るからである。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0023
【補正方法】変更
【補正内容】
【0023】 本発明によるデータ処理装置は、2つのデータワードを1サイクルで読み出す
ことを可能にする特別の命令をサポートする。2つの別個のメモリ装置を有する
DSPに対して、本発明によるデータ処理装置は単一メモリ装置を有する。2つ
のメモリ装置を有するDSPでは、データが「間違った」メモリに格納されてい
る場合、1つのメモリから別のメモリへデータを転送しなければならない。本発
明によるデータ処理装置では、その必要はない。2つのデータワードへのアクセ
スを制限するのは、データワードが連続的なオーダーで格納されていなくてはな
らない、ということだけである。一方、単一メモリだけを使用することにより、
データ処理装置にはRISCまたはCISCプロセッサのすべての利点および汎
用性が備わる。従ってデータをメモリ内の任意の記憶位置に格納することができ
、これは例えば”C”プログラミングにとって非常に便利である。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0033
【補正方法】変更
【補正内容】
【0033】 図3では、ワードとして32ビットを有する2つのレジスタ17および18が
、2つの演算装置( operator units )15および16に接続されている。これ
らの演算装置は同一であり、実行装置それぞれにより与えられる任意の機能を実
行することができる。例えば、これらの演算装置は加算器であっても、乗算器、
シフタであってもよく、比較器、AND/OR演算器( operator )等のような
任意の論理装置であってもよい。入力として、各演算器はハーフワードを受け取
るが、この例ではハーフワードは16ビット幅である。従って、レジスタ17の
上位半分は演算装置15の第1入力側と接続され、レジスタ17の下位半分は演
算装置16の第1入力側と接続されている。一方、レジスタ18の上位半分は演
算装置15の第2入力側と接続され、レジスタ18の下位半分は演算装置16の
第2入力側と接続されている。演算装置は少なくともハーフワード幅の出力側を
有する。演算装置15の出力側は第3レジスタ19の上位半分と接続され、演算
装置16の出力側はレジスタ19の下位ハーフワードと接続されている。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0039
【補正方法】変更
【補正内容】
【0039】 データまたはアドレスレジスタへの、パックされた値のロードおよび格納は、
上で述べたそれぞれのロードおよび格納命令によりサポートされている。そして
パックされたオブジェクトを、特別なパックされた算術命令のセットにより並列
に処理することができるが、算術命令のセットは加算、減算、乗算、除算、等の
算術演算を行う。例えば、乗算命令は2つの16ビットの乗算を並列に行う。こ
れを図6に示す。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0046
【補正方法】変更
【補正内容】
【0046】 図7にそのような循環バッファを示すが、このバッファはb1、b2、...
b8のメモリセルからなっている。循環バッファ制御装置が、開始インデックス
( starting index )”0を最初としてバッファへのアクセスを開始するならば
、最初の2つのセルb1およびb2、ならびにこれに続くセルが一列にアクセス
され、さらなる制御動作は必要ではない。開始インデックスとして例えば”1”
が使用されるならば、またはオフセットが奇数であるならば、ワードb8を最初
とするダブルワードアクセスは第2のワードとしてワードb1にアクセスしなく
てはならない。ワードb1はワードb8に対して連続的に格納されていないので
、ロード/格納制御装置33は命令実行装置34に第2の命令を発行して、第1
サイクル中にワードb8にアクセスさせ、引き続くサイクル中にワードb1にア
クセスさせる。この場合のみ、循環バッファの境界を交差するデータをロードま
たは格納するために、2つのアクセスサイクルが必要である。循環バッファは一
般的に大きいので、”通常の”境界交差のないアクセスに比べて、上記のような
アクセスは非常に希である。
【手続補正7】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正内容】
【図2】
【手続補正8】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】変更
【補正内容】
【図3】
【手続補正9】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正内容】
【図4】
【手続補正10】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
【手続補正11】
【補正対象書類名】図面
【補正対象項目名】図6
【補正方法】変更
【補正内容】
【図6】
【手続補正12】
【補正対象書類名】図面
【補正対象項目名】図8
【補正方法】変更
【補正内容】
【図8】
【手続補正13】
【補正対象書類名】図面
【補正対象項目名】図9
【補正方法】変更
【補正内容】
【図9】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 1730 North First Stre et、San Jose、CA、USA (72)発明者 ダニエル マーティン アメリカ合衆国 カリフォルニア マウン テン ヴュー シャワーズ ドライヴ ナ ンバー ビー−451 49 Fターム(参考) 5B033 AA00 BD04 DD01 DD09

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 データ処理装置において、 レジスタファイルと、 該レジスタファイルに接続されているレジスタロードおよび格納バッファと、 メモリと、 バスと、 接続手段と、 ロードおよび格納制御装置とを有し、 前記バスは少なくとも第1および第2ワードラインを備えておりダブルワード
    幅バスを形成し、該バスは前記レジスタロードおよび格納バッファを前記メモリ
    と接続し、 前記レジスタファイル少なくとも2つのレジスタのセットを備えており、 前記接続手段により、第1のレジスタのセットは前記ワードラインの1つと接
    続することができ、かつ第2のレジスタのセットは他のワードラインそれぞれと
    接続することができ、 前記ロードおよび格納制御装置は、前記メモリから、または前記メモリへデー
    タを転送する、 ことを特徴とするデータ処理装置。
  2. 【請求項2】 前記ロードおよび格納制御装置は、2つの連続するワードを
    前記メモリから前記第1および第2のレジスタのセットへ、または前記メモリへ
    前記第1および第2のレジスタのセットから、並列にロードまたは格納する手段
    を備えている、請求項1記載のデータ処理装置。
  3. 【請求項3】 前記ロードおよび格納制御装置は、前記メモリから1ワード
    をロードし、該ワードを2つのハーフワードに分割する手段を備えており、 前記2つのハーフワードは前記第1のレジスタのセットからの第1レジスタ、
    および前記第2のレジスタのセットからの第2レジスタに格納されている、請求
    項1記載のデータ処理装置。
  4. 【請求項4】 前記ロードおよび格納制御装置は、 ロードし、連結し、格納する手段を備えており、 当該ロード手段は、前記第1のレジスタのセットからの第1レジスタからの第
    1のハーフワード、前記第2のレジスタのセットからの第2レジスタからの第2
    のハーフワードをロードし、 当該連結手段は、両方のハーフワードを単一のワードに連結し、 当該格納手段は、前記ワードをデータバスを介して前記メモリに格納する、請
    求項1記載のデータ処理装置。
  5. 【請求項5】 前記ロードおよび格納制御装置は、 前記ハーフワードをレジスタの半分の一方にロードする手段と、 該レジスタの他の半分をゼロで埋める手段とをさらに有する、請求項3記載の
    データ処理装置。
  6. 【請求項6】 前記ロードおよび格納制御装置は、 前記ハーフワードをレジスタの下位半分にロードする手段と、 レジスタの上位半分を符号充填する手段とをさらに有する、請求項3記載のデ
    ータ処理装置。
  7. 【請求項7】 前記レジスタファイルに接続されている飽和装置をさらに有
    し、 これにより、所定のレジスタ長を有するレジスタのコンテントを、所定のデー
    タ長により定義された最大値に制限し、 前記所定のデータ長は前記レジスタ長よりも短い、請求項1記載のデータ処理
    装置。
  8. 【請求項8】 前記レジスタファイルに接続されている算術演算装置をさら
    に有し、 該算術演算装置は複数の同等な算術演算器を有し、 各レジスタは複数のデータバイトを有し、 各算術演算器は前記レジスタの前記データバイトの1つにより供給される、請
    求項1記載のデータ処理装置。
  9. 【請求項9】 前記レジスタファイルに接続されている算術演算装置をさら
    に有し、 該算術演算装置は少なくとも2つの同等な算術演算器を有し、 各レジスタは少なくとも2つのデータハーフワードを有し、 各算術演算器は前記レジスタの前記データハーフワードの1つにより供給され
    る、請求項1記載のデータ処理装置。
  10. 【請求項10】 前記レジスタファイルに接続されている論理演算装置をさ
    らに有し、 該論理演算装置は複数の同等な論理演算器を有し、 各レジスタは複数のデータバイトを有し、 各論理演算器は前記レジスタの前記データバイトの1つにより供給される、請
    求項1記載のデータ処理装置。
  11. 【請求項11】 前記レジスタファイルに接続されている論理演算装置をさ
    らに有し、 該論理演算装置は少なくとも2つの同等な論理演算器を有し、 各レジスタは少なくとも2つのデータハーフワードを有し、 各論理演算器は前記レジスタの前記データハーフワードの1つにより供給され
    る、請求項1記載のデータ処理装置。
  12. 【請求項12】 前記レジスタファイルに接続されている積和演算装置をさ
    らに有し、 前記積和演算装置は少なくとも2つの乗算演算器を有し、 前記レジスタは少なくとも2つのデータハーフワードを有し、 第1乗算演算器は第1レジスタの第1ハーフワードおよび第2レジスタの第1
    ハーフワードから供給され、 第2乗算演算器は第1レジスタの第2ハーフワードおよび第2レジスタの第2
    ハーフワードから供給される、請求項1記載のデータ処理装置。
  13. 【請求項13】 前記バスは、複数ワード幅バスを形成するために複数のワ
    ードラインのセットを有し、 前記レジスタファイルは複数のレジスタのセットを有し、 各レジスタのセットは前記ワードラインのセットの1つに接続されており、整
    列された、および整列されていない複数ワードアクセスを可能にする、請求項1
    記載のデータ処理装置。
  14. 【請求項14】 循環バッファを定義する手段をさらに有し、 該手段はバッファ基底アドレスおよびバッファエンドアドレスを前記メモリ内
    に有する、請求項1記載のデータ処理装置。
  15. 【請求項15】 複数ワードにアクセスする手段をさらに有し、 当該複数ワードは、部分的にバッファエンドアドレスに格納され、部分的にバ
    ッファ基底アドレスに格納されている、請求項14記載のデータ処理装置。
  16. 【請求項16】 バッファアドレスおよびバッファエンドアドレスはアドレ
    スレジスタに格納されている、請求項14記載のデータ処理装置。
  17. 【請求項17】 ビット反転アドレシング手段をさらに有し、 該手段は基底アドレス、変更子およびインデックス用の記憶手段を備え、 前記ビット反転アドレシング手段は、ビット反転装置へインデックスを供給す
    る手段をさらに有し、 前記ビット反転装置の結果は加算手段へ供給され、 該加算手段は供給された結果を基底アドレスに加算して、メモリおよび各アク
    セス後に変更子をインデックスに加算する手段をアドレスする、請求項1記載の
    データ処理装置。
  18. 【請求項18】 記憶手段はアドレスレジスタである、請求項17記載のデ
    ータ処理装置。
  19. 【請求項19】 前記ロードおよび格納制御手段は、1ワードを前記メモリ
    からロードし、該ワードを複数の部分ワードに分割する手段を有し、 各部分ワードはそれぞれ、各レジスタのセットの前記レジスタの1つに格納さ
    れている、請求項1記載のデータ処理装置。
JP2000512132A 1997-09-12 1998-09-04 デジタル信号処理能力を有するデータ処理装置 Pending JP2001516916A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/928,764 1997-09-12
US08/928,764 US6260137B1 (en) 1997-09-12 1997-09-12 Data processing unit with digital signal processing capabilities
PCT/US1998/018574 WO1999014663A2 (en) 1997-09-12 1998-09-04 Data processing unit with digital signal processing capabilities

Publications (1)

Publication Number Publication Date
JP2001516916A true JP2001516916A (ja) 2001-10-02

Family

ID=25456710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000512132A Pending JP2001516916A (ja) 1997-09-12 1998-09-04 デジタル信号処理能力を有するデータ処理装置

Country Status (7)

Country Link
US (1) US6260137B1 (ja)
EP (1) EP1019805B1 (ja)
JP (1) JP2001516916A (ja)
KR (1) KR20010030593A (ja)
DE (1) DE69824193T2 (ja)
IL (1) IL134362A0 (ja)
WO (1) WO1999014663A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527036A (ja) * 2002-05-24 2005-09-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プロセッサのアドレス発生ユニット
US7281117B2 (en) 2002-09-25 2007-10-09 Matsushita Electric Industrial Co., Ltd. Processor executing SIMD instructions
JP2010044487A (ja) * 2008-08-11 2010-02-25 Seiko Epson Corp 信号処理プロセッサ及び半導体装置
JP2010044515A (ja) * 2008-08-11 2010-02-25 Seiko Epson Corp 信号処理プロセッサ及び半導体装置

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7395298B2 (en) * 1995-08-31 2008-07-01 Intel Corporation Method and apparatus for performing multiply-add operations on packed data
US6385634B1 (en) * 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US6786420B1 (en) 1997-07-15 2004-09-07 Silverbrook Research Pty. Ltd. Data distribution mechanism in the form of ink dots on cards
US6618117B2 (en) 1997-07-12 2003-09-09 Silverbrook Research Pty Ltd Image sensing apparatus including a microcontroller
US6803989B2 (en) 1997-07-15 2004-10-12 Silverbrook Research Pty Ltd Image printing apparatus including a microcontroller
US6690419B1 (en) 1997-07-15 2004-02-10 Silverbrook Research Pty Ltd Utilising eye detection methods for image processing in a digital image camera
US6948794B2 (en) 1997-07-15 2005-09-27 Silverbrook Reserach Pty Ltd Printhead re-capping assembly for a print and demand digital camera system
AUPO802797A0 (en) 1997-07-15 1997-08-07 Silverbrook Research Pty Ltd Image processing method and apparatus (ART54)
AUPO850597A0 (en) 1997-08-11 1997-09-04 Silverbrook Research Pty Ltd Image processing method and apparatus (art01a)
US7724282B2 (en) 1997-07-15 2010-05-25 Silverbrook Research Pty Ltd Method of processing digital image to correct for flash effects
US7110024B1 (en) 1997-07-15 2006-09-19 Silverbrook Research Pty Ltd Digital camera system having motion deblurring means
US6624848B1 (en) 1997-07-15 2003-09-23 Silverbrook Research Pty Ltd Cascading image modification using multiple digital cameras incorporating image processing
US6985207B2 (en) 1997-07-15 2006-01-10 Silverbrook Research Pty Ltd Photographic prints having magnetically recordable media
US6879341B1 (en) 1997-07-15 2005-04-12 Silverbrook Research Pty Ltd Digital camera system containing a VLIW vector processor
US6230257B1 (en) 1998-03-31 2001-05-08 Intel Corporation Method and apparatus for staggering execution of a single packed data instruction using the same circuit
US6230253B1 (en) * 1998-03-31 2001-05-08 Intel Corporation Executing partial-width packed data instructions
AUPP702098A0 (en) 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART73)
US7107302B1 (en) * 1999-05-12 2006-09-12 Analog Devices, Inc. Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units
US6820189B1 (en) 1999-05-12 2004-11-16 Analog Devices, Inc. Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
US7111155B1 (en) 1999-05-12 2006-09-19 Analog Devices, Inc. Digital signal processor computation core with input operand selection from operand bus for dual operations
US6859872B1 (en) 1999-05-12 2005-02-22 Analog Devices, Inc. Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation
EP2267596B1 (en) 1999-05-12 2018-08-15 Analog Devices, Inc. Processor core for processing instructions of different formats
AUPQ056099A0 (en) 1999-05-25 1999-06-17 Silverbrook Research Pty Ltd A method and apparatus (pprint01)
GB2352065B (en) * 1999-07-14 2004-03-03 Element 14 Ltd A memory access system
US6539467B1 (en) * 1999-11-15 2003-03-25 Texas Instruments Incorporated Microprocessor with non-aligned memory access
FR2802321A1 (fr) * 1999-12-09 2001-06-15 Ass Pour La Promotion De La Mi Processeur configurable par l'utilisateur
US6829696B1 (en) * 1999-12-30 2004-12-07 Texas Instruments Incorporated Data processing system with register store/load utilizing data packing/unpacking
US6453405B1 (en) * 2000-02-18 2002-09-17 Texas Instruments Incorporated Microprocessor with non-aligned circular addressing
GB2363869B (en) * 2000-06-20 2004-06-23 Element 14 Inc Register addressing
US7120781B1 (en) * 2000-06-30 2006-10-10 Intel Corporation General purpose register file architecture for aligned simd
US7430578B2 (en) * 2001-10-29 2008-09-30 Intel Corporation Method and apparatus for performing multiply-add operations on packed byte data
EP1701249A1 (en) * 2005-03-11 2006-09-13 Interuniversitair Microelektronica Centrum Vzw Ultra low power ASIP (Application-Domain specific Instruction-set Processor) microcomputer
US7788420B2 (en) * 2005-09-22 2010-08-31 Lsi Corporation Address buffer mode switching for varying request sizes
US20100141668A1 (en) * 2006-10-26 2010-06-10 Nxp, B.V. Address calculation unit
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8935468B2 (en) * 2012-12-31 2015-01-13 Cadence Design Systems, Inc. Audio digital signal processor
US10228941B2 (en) * 2013-06-28 2019-03-12 Intel Corporation Processors, methods, and systems to access a set of registers as either a plurality of smaller registers or a combined larger register
US20170249144A1 (en) * 2016-02-26 2017-08-31 Qualcomm Incorporated Combining loads or stores in computer processing
US11593117B2 (en) 2018-06-29 2023-02-28 Qualcomm Incorporated Combining load or store instructions
US11442726B1 (en) 2021-02-26 2022-09-13 International Business Machines Corporation Vector pack and unpack instructions

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4992934A (en) 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
JP2816248B2 (ja) * 1989-11-08 1998-10-27 株式会社日立製作所 データプロセッサ
US6070003A (en) * 1989-11-17 2000-05-30 Texas Instruments Incorporated System and method of memory access in apparatus having plural processors and plural memories
CA2045705A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites In-register data manipulation in reduced instruction set processor
EP0473805A1 (en) 1990-09-03 1992-03-11 International Business Machines Corporation Computer system with improved performance
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
US5590352A (en) 1994-04-26 1996-12-31 Advanced Micro Devices, Inc. Dependency checking and forwarding of variable width operands
US5734874A (en) * 1994-04-29 1998-03-31 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
DE69519449T2 (de) * 1994-05-05 2001-06-21 Conexant Systems Inc Raumzeigersdatenpfad
EP1265132A3 (en) 1994-12-02 2005-02-09 Intel Corporation Microprocessor with packing operation of composite operands
US5659700A (en) * 1995-02-14 1997-08-19 Winbond Electronis Corporation Apparatus and method for generating a modulo address
US6385634B1 (en) * 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US5721892A (en) * 1995-08-31 1998-02-24 Intel Corporation Method and apparatus for performing multiply-subtract operations on packed data
US5852726A (en) * 1995-12-19 1998-12-22 Intel Corporation Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner
US5896543A (en) * 1996-01-25 1999-04-20 Analog Devices, Inc. Digital signal processor architecture
US5864713A (en) * 1996-02-12 1999-01-26 Hewlett-Packard Company Method for determining if data should be written at the beginning of a buffer depending on space available after unread data in the buffer
US5752271A (en) * 1996-04-29 1998-05-12 Sun Microsystems, Inc. Method and apparatus for using double precision addressable registers for single precision data
US5812147A (en) * 1996-09-20 1998-09-22 Silicon Graphics, Inc. Instruction methods for performing data formatting while moving data between memory and a vector register file
US5913054A (en) * 1996-12-16 1999-06-15 International Business Machines Corporation Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527036A (ja) * 2002-05-24 2005-09-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プロセッサのアドレス発生ユニット
US7281117B2 (en) 2002-09-25 2007-10-09 Matsushita Electric Industrial Co., Ltd. Processor executing SIMD instructions
US7594099B2 (en) 2002-09-25 2009-09-22 Panasonic Corporation Processor executing SIMD instructions
JP2010044487A (ja) * 2008-08-11 2010-02-25 Seiko Epson Corp 信号処理プロセッサ及び半導体装置
JP2010044515A (ja) * 2008-08-11 2010-02-25 Seiko Epson Corp 信号処理プロセッサ及び半導体装置

Also Published As

Publication number Publication date
IL134362A0 (en) 2001-04-30
DE69824193D1 (de) 2004-07-01
EP1019805B1 (en) 2004-05-26
DE69824193T2 (de) 2005-05-19
US6260137B1 (en) 2001-07-10
EP1019805A2 (en) 2000-07-19
WO1999014663A3 (en) 1999-08-05
KR20010030593A (ko) 2001-04-16
WO1999014663A2 (en) 1999-03-25

Similar Documents

Publication Publication Date Title
JP2001516916A (ja) デジタル信号処理能力を有するデータ処理装置
US6944747B2 (en) Apparatus and method for matrix data processing
JP2501711B2 (ja) ワンチップディジタル信号プロセッサ
US4771380A (en) Virtual vector registers for vector processing system
JPH02300983A (ja) 中央処理装置における高速演算処理の方法
JPH11154114A (ja) 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法
JPH0562387B2 (ja)
US5249148A (en) Method and apparatus for performing restricted modulo arithmetic
WO2005013084A2 (en) Method and system for performing operations on data and transferring data
CN111353126A (zh) 分块矩阵乘法运算系统
JPH1091443A (ja) 情報処理回路、マイクロコンピュータ及び電子機器
JP2002149400A (ja) 複数レジスタ指定が可能なsimd演算方式
US5958000A (en) Two-bit booth multiplier with reduced data path width
US7111155B1 (en) Digital signal processor computation core with input operand selection from operand bus for dual operations
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
JPH0477346B2 (ja)
US6223275B1 (en) Microprocessor with reduced instruction set limiting the address space to upper 2 Mbytes and executing a long type register branch instruction in three intermediate instructions
JP2701955B2 (ja) レジスタ論理演算ユニット
US6820189B1 (en) Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
US6859872B1 (en) Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation
KR19980018071A (ko) 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
US6484194B1 (en) Low cost multiplier block with chain capability
JP2000039995A (ja) 高性能マイクロプロセッサで使用するためのフレキシブル累算レジスタファイル
JP2861560B2 (ja) データ処理装置