JP2002509312A - 不整列データ・アクセスを実行するためのデータ整列バッファを有するディジタル信号プロセッサ - Google Patents
不整列データ・アクセスを実行するためのデータ整列バッファを有するディジタル信号プロセッサInfo
- Publication number
- JP2002509312A JP2002509312A JP2000540496A JP2000540496A JP2002509312A JP 2002509312 A JP2002509312 A JP 2002509312A JP 2000540496 A JP2000540496 A JP 2000540496A JP 2000540496 A JP2000540496 A JP 2000540496A JP 2002509312 A JP2002509312 A JP 2002509312A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- operand
- digital signal
- buffer
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 143
- 230000004044 response Effects 0.000 claims description 12
- 238000012546 transfer Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- KUFRQPKVAWMTJO-LMZWQJSESA-N alvespimycin Chemical compound N1C(=O)\C(C)=C\C=C/[C@H](OC)[C@@H](OC(N)=O)\C(C)=C\[C@H](C)[C@@H](O)[C@@H](OC)C[C@H](C)CC2=C(NCCN(C)C)C(=O)C=C1C2=O KUFRQPKVAWMTJO-LMZWQJSESA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
る行に格納されているオペランドを計算ユニットに効率的に供給可能なディジタ
ル信号プロセッサに関するものである。 (発明の背景) ディジタル信号コンピュータ即ちディジタル信号プロセッサ(DSP)は、例
えば、高速フーリエ変換、ディジタル・フィルタ、画像処理および音声認識とい
うような、ディジタル信号処理用途のために処理能力を最適化するように設計さ
れた特殊目的コンピュータである。ディジタル信号プロセッサの用途は、典型的
に、リアル・タイム動作、高い割込率、および集中的数値計算を特徴とする。加
えて、ディジタル信号プロセッサの用途は、メモリ・アクセス動作が集中的に行
われ、大量のデータ入力および出力を必要とする場合が多い。したがって、ディ
ジタル信号プロセッサの設計は、汎用コンピュータとは全く異なると考えられる
。
用いられている手法の1つに、ハーバード・アーキテクチャ(Harvard
architecture)がある。これは、分離した独立のプログラム・メモ
リおよびデータ・メモリを利用し、2つのメモリに同時にアクセスを可能とした
ものである。このアーキテクチャでは、単一クロック・サイクルでメモリから命
令およびオペラントを取り出すことが可能である。多くの場合、プログラムは、
当該プログラムのオペランドよりも占有するメモリ空間は少ない。メモリ利用の
最大化を図るために、命令およびオペランド双方を格納するプログラム・メモリ
を利用する、変更ハーバード・アーキテクチャがある。典型的に、プログラムお
よびデータ・メモリは、別個のプログラム・バスおよびデータ・バスによって、
コア・プロセッサと接続されている。
納し、2つ以上のデータ・ワードを並列に計算ユニットに供給可能なアーキテク
チャを利用する場合がある。かかるアーキテクチャは性能向上をもたらすが、そ
れは数個の命令および/またはオペランドに並列にアクセスできるからである。
ることが多く、その際ディジタル・フィルタの出力信号サンプルは、指定された
入力信号サンプルのために計算される。有限インパルス応答(FIR)ディジタ
ル・フィルタでは、各信号サンプルを表わすデータ値にフィルタ係数を乗算し、
積を結合してフィルタ出力値を得る。次に、フィルタ係数に対してデータ値をシ
フトし、このプロセスを繰り返して、連続フィルタ出力信号サンプルを表わすデ
ータ値を得る。かかる計算は、2つ以上のデータ・ワードを各メモリ行に格納す
る、ディジタル信号プロセッサのアーキテクチャにおいて効率的に実行するのは
困難である。特に、各クロック・サイクル毎にデータ値を適正な係数と整列させ
るのは容易でないので、これらの計算を実行するには複雑なソフトウエア・ルー
チンが必要となる。
クチャの改良が必要とされている。 (発明の概要) 本発明の第1の態様によれば、ディジタル信号プロセッサを提供する。ディジ
タル信号プロセッサは、ディジタル信号計算を実行するための命令およびオペラ
ンドを含むデータ・ワードを格納するメモリと、プログラム・シーケンサと、計
算ユニットと、命令デコーダと、データ整列バッファとを含む。メモリは、各々
2つ以上のデータ・ワードのための位置を有する行に編成されている。プログラ
ム・シーケンサは、メモリから命令を取り出す命令アドレス、およびメモリから
オペランドを取り出すデータ・アドレスを発生する。計算ユニットは、メモリか
ら取り出した命令およびオペランドを用いて、ディジタル信号計算を実行する。
命令デコーダは、メモリの異なる行に格納されている、指定のオペランドに対す
る不整列(unaligned data)データ・アクセスを示す命令に応答
して、1つ以上の制御信号を発生する。データ整列バッファは、メモリの異なる
行からオペランドのラインを受け取り、制御信号に応答して、指定のオペランド
を計算ユニットに供給する。
するバッファと、バッファからの第1オペランド・ラインとメモリの第2行から
の第2オペランド・ラインとを受け取り、制御信号に応答して第1および第2オ
ペランド・ラインから指定のオペランドを選択するマルチプレクサとを備えるこ
とができる。マルチプレクサは、計算ユニット内のレジスタ・ファイルに、指定
のオペランドを供給することができる。制御信号は、マルチプレクサに供給され
るオフセット値と、バッファに供給されるロード信号とを含むことができる。オ
フセット値は、メモリの行に対する指定のオペランドのオフセットを表わす。 (図面の簡単な説明) 本発明をよりよく理解するために、添付図面を参照する。図面は、この言及に
より本明細書に含まれるものとする。 (詳細な説明) 本発明によるディジタル信号プロセッサ(DSP)10のブロック図を図1に
示す。DSP10の主要な構成要素は、計算ブロック12および14、メモリ1
6、制御ブロック24、リンク・ポート・バッファ26、外部ポート28、DR
AMコントローラ30、命令整列バッファ(IAB:instrucion a
lignment buffer)32ならびに一次命令デコーダ34である。
計算ブロック12および14、命令整列バッファ32、一次命令デコーダならび
に制御ブロック24は、DSP10の主計算およびデータ処理機能を実行するコ
ア・プロセッサを構成する。外部ポート28は、外部アドレス・バス58および
外部データ・バス68を通じて外部通信を制御する。リンク・ポート・バッファ
26は、通信ポート36を介して外部通信を制御する。DSPは、単一のモノリ
シック集積回路として構成することが好ましく、0.35ミクロン・ゲート、四
金属、SRAM CMOSプロセスを用いて製作することが好ましい。好適な実
施形態では、41.5MHZの周波数の外部クロック(図示せず)を内部で4と
乗算し、166MHZの内部クロックを得ている。
含む。好適な実施形態では、メモリ・バンク40、42および44の各々は、6
4Kワードの容量を有し、各ワードは32ビットである。以下で論ずるが、メモ
リ・バンク40、42および44の各々は、128ビット・データ・バスを有す
ることが好ましい。4つまでの連続する32ビット整列データ・ワードの各々を
、単一のクロック・サイクルにおいて、各メモリ・バンクに転送するか、あるい
は各メモリ・バンクから転送することができる。
ている。バスの各々は、二進情報の並列転送のために多数のラインを含む。第1
アドレス・バス50(MA0)は、メモリ・バンク40(M0)および制御ブロ
ック24を相互接続する。第2アドレス・バス52(MA2)は、メモリ・バン
ク42(M1)および制御ブロック24を相互接続する。第3アドレス・バス5
4(MA2)は、メモリ・バンク44(M2)および制御ブロック24を相互接
続する。アドレス・バス50、52および54の各々は、16ビット幅であるこ
とが好ましい。外部アドレス・バス56(MAE)は、外部ポート28および制
御ブロック24を相互接続する。外部アドレス・バス56は、外部ポート28を
介して、外部アドレス・バス58に相互接続されている。外部アドレス・バス5
6および58の各々は、32ビット幅であることが好ましい。第1データ・バス
60(MD0)は、メモリ・バンク40、計算ブロック12および14、制御ブ
ロック24、リンク・ポート・バッファ26、IAB32および外部ポート28
を相互接続する。第2データ・バス62(MD1)は、メモリ・バンク42、計
算ブロック12および14、制御ブロック24、リンク・ポート・バッファ26
、IAB32および外部ポート28を相互接続する。第3データ・バス64(M
D2)は、メモリ・バンク44、計算ブロック12および14、制御プロック2
4、リンク・ポート・バッファ26、IAB32および外部ポート28を相互接
続する。データ・バス60、62および64は、外部ポート28を介して外部デ
ータ・バス68に接続されている。データ・バス60、62および64は、12
8ビット幅であることが好ましく、外部データ・バス68は64ビット幅である
ことが好ましい。
ンク40への転送およびメモリ・バンク40からの転送のためのバスを構成する
。第2アドレス・バス52および第2データ・バス62は、データのメモリ・バ
ンク42への転送およびメモリ・バンク42からの転送のための第2バスを構成
する。第3アドレス・バス54および第3データ・バス64は、データのメモリ
・バンク44への転送およびメモリ・バンク44からの転送のための第3バスを
構成する。メモリ・バンク40、42および44の各々は別個のバスを有するの
で、メモリ・バンク40、42および44は同時にアクセス可能である。ここで
用いる場合、「データ」とは二進ワードのことを言い、DSP10の動作に関連
する命令またはオペランドのいずれかを表わすことができる。典型的な動作モー
ドでは、プログラム命令はメモリ・バンクの1つに格納され、オペランドは他の
2つのメモリ・バンクに格納される。このように、少なくとも1つの命令および
2つのオペランドを単一クロック・サイクルで計算ブロック12および14に供
給することができる。以下で説明するように、メモリ・バンク40、42および
44の各々は、単一クロック・サイクルにおいて多数のデータ・ワードの読み出
しおよび書き込みを可能とするように構成されている。単一クロック・サイクル
における各メモリ・バンクからの多数のデータ・ワードの同時転送は、命令キャ
ッシュやデータ・キャッシュを必要とせずに行われる。
ALU)、第2整数ALU74(kALU)、第1DMAアドレス発生器76(
DMAG A)および第2DMAアドレス発生器78(DMAG B)を含む。
整数ALU72および74は、異なる時点において、整数ALU命令を実行し、
データ・アドレスの発生を行なう。プログラムの実行中、プログラム・シーケン
サ70は、命令シーケンスのメモリ位置に応じて、アドレス・バス50、52、
54および56の1つに、一連の命令アドレスを供給する。典型的に、メモリ・
バンク40、42または44の1つは、命令シーケンスの格納に用いられる。整
数ALU72および74の各々は、命令が必要とするオペランドの位置に応じて
、アドレス・バス50、52、54および56の1つにデータ・アドレスを供給
する。例えば、命令シーケンスをメモリ・バンク40に格納し、必要なオペラン
ドがメモリ・バンク42および44に格納されていると仮定する。この場合、プ
ログラム・シーケンサは、アドレス・バス50上に命令アドレスを供給し、アク
セスされた命令を命令整列バッファ32に供給する。これについては、以下で説
明する。整数ALU72および74は、例えば、アドレス・バス52および54
にそれぞれオペランドのアドレスを出力することができる。整数ALU72およ
び74が発生したアドレスに応答して、メモリ・バンク42および44は、それ
ぞれ、データ・バス62および64上で、計算ブロック12および14のいずれ
かまたは双方にオペランドを供給する。メモリ・バンク40、42および44は
、命令およびオペランドの格納に関しては相互交換可能である。
ト28を介して外部メモリ〔図示せず〕にアクセスすることができる。所望の外
部メモリ・アドレスは、アドレス・バス56上に置かれる。外部アドレスは、外
部ポート28を介して、外部アドレス・バス58に結合される。外部メモリは、
要求されたデータ・ワードまたは複数のデータ・ワードを外部データ・バス68
上に供給する。外部データは、外部ポート28ならびにデータ・バス60、62
および64の1つを介して、計算ブロック12および14の一方または双方に供
給される。DRAMコントローラ30は、外部メモリを制御する。
が32ビットとして、64kワードの容量を有することが好ましい。各メモリ・
バンクは、128ビット幅のデータ・バスに接続することができる。代替実施形
態では、各データ・バスは64ビット幅でもよく、クロック・フェーズ1および
クロック・フェーズ2の各々において64ビットを転送することによって、事実
上128ビットのバス幅を確保する。単一クロック・サイクルにおいて、各メモ
リ・バンクの多数のデータ・ワードにアクセスすることができる。即ち、データ
は、各々32ビットの単一、二重および四重ワードとしてアクセスすることがで
きる。二重および四重アクセスでは、メモリにおいてデータを整列する必要があ
る。四重データ・アクセスの典型的な用途は、高速フーリエ変換(FFT)およ
び複素FIRフィルタである。また、四重アクセスは、倍精度演算にも役立つ。
好ましくは、命令を四重ワードとしてアクセスする。しかしながら、命令は、メ
モリ内で整列する必要はない。
を、単一クロック・サイクルにおいて計算ブロック12および14に供給するこ
とができる。転送されるデータ・ワード数、およびデータ・ワードを転送する計
算ブロックまたはブロック群は、命令内の制御ビットによって選択される。単一
、二重、または四重データ・ワードは、計算ブロック12、計算ブロック14、
または双方に転送することができる。二重および四重データ・ワード・アクセス
は、多くの用途において、単一クロック・サイクルに数個のオペランドを計算ブ
ロック12および14に転送可能とすることにより、DSP10の処理能力を向
上させる。各クロック・サイクル毎に多数の命令にアクセスすることができるの
で、各サイクル毎に多数の動作を実行し、これによって処理能力を向上させるこ
とができる。計算ブロック12および14が必要とするよりも早くオペランドを
供給することができれば、メモリ・サイクルが残り、これをDMAアドレス発生
器76および78が用いて、これら未使用のサイクル中に新たなデータをメモリ
・バンク40、42および44に供給することが可能となる。この際、コア・プ
ロセッサからサイクルを盗むことはない。また、1つの命令を多数のオペランド
に転送することができる場合、他の動作を実行するために命令スロットが利用可
能となり、これによって処理能力を向上させることができる。最後に、多数のデ
ータ・ワードにアクセスすることができるので、2つ以上の計算ブロックを利用
し、これらにオペランドを供給し続けることも可能となる。単一または二重デー
タ・ワードにアクセスすることができるので、四重データ・ワードにのみアクセ
スする構成と比較すると、電力消費が低減する。
図を図2に示す。多重ポートレジスタ・ファイル100は、オペランドおよび結
果のために一時的な格納を行なう。好適な実施形態では、レジスタ・ファイル1
00は、各ワード32ビットとして、32ワードの容量を有し、各々128ビッ
トの8行に編成されている。レジスタ・ファイル100は、マルチプレクサおよ
びラッチ102ならびにデータ整列バッファ110を介して、データ・バス60
、62および64の各々に接続されている。オペランドをメモリ16から読み出
す場合、3系統のデータ・バスの内1つまたは2つを選択することができる。選
択したバスの一方では、オペランドはバス104上のデータ整列バッファ110
に供給される。選択したバスの他方では、オペランドはバス112上のレジスタ
・ファイル100に供給される。データ整列バッファ110は、オペランドをバ
ス106上のレジスタ・ファイル100に供給する。これについては以下で詳細
に説明する。データをレジスタ・ファイル100からメモリ16または外部メモ
リに書き込んでいるとき、データは、バス108上のマルチプレクサおよびラッ
チ102に供給される。バス104、106、108および112の各々は、1
28ビット幅とするとよい。バス108上の出力データは、マルチプレクサおよ
びラッチ102によって、データ・バス60、62および64の内選択したもの
に切り替えられ、メモリに書き込まれる。3系統のデータ・バス60、62およ
び64から1つまたは2つを選択することに加えて、マルチプレクサおよびラッ
チ102は、命令制御下にある各バス内においてワードの選択を可能にする。単
一ワード(single word)転送の場合、マルチプレクサおよびラッチ
102は、アクセスしたデータ・ワードを選択しても、しなくてもよい。二重ワ
ード(dual word)転送の場合、マルチプレクサおよびラッチ102は
、データ・ワードのいずれかまたは双方を選択することができる。四重ワード(
quad word)転送の場合、マルチプレクサおよびラッチ102は、二重
データ・ワードの異なる組み合わせを選択することができ、あるいは四重データ
・ワード全体を選択することができる。
ット(ALU)122およびシフタ124を含む。乗算器/アキュミュレータ1
20、ALU122およびシフタ124は、十分な命令およびオペランドを計算
ブロックに供給することができる範囲において、命令の同時実行を可能とする。
オペランドは、オペランド・バス130(ob1)、132(ob2)、134
(ob2)および136(ob3)上において、レジスタ・ファイル100から
乗算器/アキュミュレータ120、ALU122およびシフタ124に供給され
る。オペランド・バス130、132、134および136の各々は、64ビッ
ト幅である。乗算器/アキュミュレータ120からの結果は、結果バス140(
rm)上でレジスタ・ファイル100に戻される。ALU122からの結果は、
結果バス142(ra)および結果バス144(rs)上でレジスタ・ファイル
100に戻される。シフタ124からの結果は、結果バス144上でレジスタ・
ファイル100に戻される。結果バス140、142および144は、乗算器/
アキュミュレータ120、ALU122およびシフタ124を含む計算ユニット
の各々に接続されているので、各計算ユニットは、結果バス140、142およ
び144から直接オペランドを得ることができる。結果バス140、142およ
び144の各々は、64ビット幅であることが好ましい。レジスタ・ファイル1
00のアドレシング、ならびにマルチプレクサおよびラッチ102、乗算器/ア
キュミュレータ120、ALU122およびシフタ124に対する制御信号は、
二次命令デコーダ150から供給される。二次命令デコーダ150は、一次命令
デコーダ34(図1)から供給される命令を復号する。2つの計算ブロック12
および14の各々は、同じクロック・サイクルにおいて、各々乗算器/アキュミ
ュレータ120、ALU122およびシフタ124に1つずつ、3つまでの命令
を実行することができる。
ーダ34は集中化されている。メモリ・バンク40、42および44の1つから
取り出した命令は、データ・バス60、62および64の1つの上にある命令整
列バッファ32に供給される。命令は、命令シーケンスによって要求されるクロ
ック・サイクルにおける実行のために整列され、部分的に一次命令デコーダ34
によって復号される。部分的に復号された命令は、DSP10内の適切なブロッ
クに供給される。例えば、命令は、計算ブロック12および14の一方または双
方、あるいは制御ブロック24に供給することができる。命令の復号は、当該命
令を利用するブロックによって完了する。例えば、図2に示すように、二次命令
デコーダ150は、計算命令の復号を完了する。
。各メモリ・バンクは、メモリ位置の4つの列200、202、204および2
06として編成されている。この例では、各列は、各ワードが32ビットの、1
6Kワードとして編成されている。アドレスは、列200、202、204およ
び206全体で線形に増加する。列200、202、204および206の各々
に対するデータ・ラインは、ドライバ210を介して、データ・バス212に接
続されている。データ・バス212は、図1に示し上述したデータ・バス60、
62および64の1つに対応する。データ・バス212は、128ビット幅であ
ることが好ましい。アドレス・ビット(15:2)が列200、202、204
および206に供給され、アドレス・ビット(1:0)がドライバ210に供給
される。列200、202、204および206に供給されるアドレス・ビット
は、各々32ビットで、各列に1つずつ、4つの連続する整列データ・ワードの
行をアドレスする。ドライバ210は、アクセスされているのは単一、二重また
は四重データ・ワードのどれかを示す2ビット信号を受け取る。前述のように単
一、二重または四重ワード転送は、単一クロック・サイクルにおいて行なうこと
ができる。
データ・ワードの列を選択し、アドレス・ビット(1:0)は列200、202
、204および206の1つを選択する。ドライバ210は、バス212に、選
択したワードを送出する。
データ・ワードの行を選択し、アドレス・ビット(1)は1対の隣接する列を選
択する。列200および202または列204および206を選択することがで
きる。選択した二重ワードは、ドライバ210によって、データ・バス212上
に送出される。
列ワードが、アドレス・ビット(15:2)によって選択される。四重ワードは
、ドライバ210によって、データ・バス212上に送出される。単一、二重お
よび四重ワード転送では、選択したワードは、左にも右にもシフトせず、直接デ
ータ・バス212上に送出することが好ましい。
ロセッサの処理能力が向上する。しかしながら、前述のアーキテクチャでは、メ
モリ・バンク40、42および44に対するアクセスを整列する必要がある。オ
ペランドに対するアクセスの整列は、メモリ・バンクの単一行におけるオペラン
ドの、計算ブロック12および14の一方または双方への転送を伴う。先に論じ
たが、FIRフィルタ計算のように、計算によっては、メモリ・アクセスを整列
アクセスに制限すると、比較的複雑化する場合もある。
る機能が備えている。「不整列アクセス」という用語は、異なるメモリ行におい
て指定されたオペランドへのアクセスを意味する。指定されたオペランドは、メ
モリに対して整列されていないが、前述のように、計算ブロック12および14
の一方または双方に並列に、即ち、同じプロセッサ・サイクル上で供給すること
ができる。対照的に、整列アクセスとは、単一のメモリ行において指定されたオ
ペランドにアクセスするもののことである。
、4つの連続する32ビット・ワードの行として編成することができる。メモリ
・バンク40のメモリ行302、304および306を、図4に示す。メモリ行
302は、位置4n、4n+1、4n+2および4n+3を含む。メモリ行30
4は、位置4n+4、4n+5、4n+6および4n+7を含む。メモリ行30
6は、位置4n+8、4n+9、4n+10および4n+11を含む。1組の指
定したオペランドは、メモリ行302内に格納されている1つ以上のオペランド
、およびメモリ行304内に格納されている1つ以上のオペランドを含むことが
できる。例えば、指定した四重データ・ワードは、メモリ行302からのワード
4n+3、およびメモリ行304からのワード4n+4、4n+5および4n+
6を含むことができる。オペランドは、メモリ行に対するオフセット値によって
指定することも可能である。前述の例では、指定オペランドは、メモリ行302
に対して位置3つだけずれている。尚、指定オペランドは、メモリ行に対して異
なるオフセット値を有する場合もあることは理解されよう。したがって、オフセ
ット値が0の場合は、整列アクセスを指定し、メモリ行302における4つのオ
ペランドにアクセスする。オフセット値が1の場合、不整列アクセスを指定し、
メモリ行302においてワード4n+1、4n+2、4n+3にアクセスし、メ
モリ行304においてワード4n+4にアクセスする。オフセット値が2の場合
、不整列アクセスを指定し、メモリ行302においてワード4n+2および4n
+3にアクセスし、メモリ行304においてワード4n+4および4n+5にア
クセスする。最後に、オフセット値が3の場合、不整列アクセスを指定し、メモ
リ行302においてワード4n+3にアクセスし、メモリ行304においてワー
ド4n+4、4n+5および4n+6にアクセスする。
ランドの第1および第2行を受け取り、制御信号に応答して、オペランドの第1
および第2行から選択した指定オペランドを、計算ブロック12および14(図
2参照)の一方または双方におけるレジスタ・ファイル100に供給する。デー
タ整列バッファ110は、単一のメモリ行からのオペランドをレジスタ・ファイ
ル100に供給することも可能である。
レル・シフタ312を含む。図4の例では、メモリ・バンク40が128ビット
・バス60によってデータ整列バッファ110に接続されている。マルチプレク
サおよびラッチ102(図2)は、理解し易くするために、図4から省略した。
整列バッファ310は、128ビットの容量を有するとよく、ロード信号314
に応答してロードされる。マルチプレクサ/バレル・シフタ312は、データ・
バス60上のメモリ・バンク40からの128ビット(入力0〜127)、およ
び整列バッファ310の出力からの128ビット(入力128〜255)とを含
む、256ビットを受け取ることができる。マルチプレクサ/バレル・シフタ3
12は、オフセット信号316に応答して、256ビット中128ビットをその
入力として選択し、選択した128ビット(指定オペランド)をバス106上の
レジスタ・ファイル100に供給する。尚、データ整列バッファ110に供給し
たオペランドは、メモリ・バンク40、42および44のいずれにもアクセスす
ることができ、マルチプレクサ/ラッチ102によってデータ整列バッファ11
0に供給されることは理解されよう。
アクセスに用いることができる。整列アクセスでは、バス60およびマルチプレ
クサ/バレル・シフタ312を介して、指定したオペランドを単一のメモリ行か
らレジスタ・ファイル100に供給する。不整列アクセスでは、バス60、整列
バッファ310およびマルチプレクサ/バレル・シフタ312を介して、指定し
たオペランドを2つのメモリ行からレジスタ・ファイル100に供給する。
個々の命令に応答して制御される。メモリ移動命令400の一例を図5に示す。
レジスタ・グループ・フィールド402は、計算ブロック12または14、制御
ブロック24あるいは外部ポート28におけるレジスタ・グループを指定する。
レジスタ・フィールド404は、レジスタ・グループ内のレジスタを指定する。
J/KxおよびJ/Kyは、メモリ・バンク内のアドレスを含むレジスタを指定
する。レジスタ・グループ・フィールド402は、同じレジスタに対して異なる
機能を指定することができる。即ち、レジスタ・グループの1つは、不整列デー
タ・アクセスを指定するために用いられる。命令のレジスタ・グループ・フィー
ルド402が不整列データ・アクセスを指定する場合、データ整列バッファ11
0は、以下のように、指定したオペランドをレジスタ・ファイル100に供給す
る。第1サイクルにおいて、命令デコーダ150(図2)は、ロード信号を整列
バッファ310に供給し、メモリ行302内の四重ワードを整列バッファ310
にロードする。第2サイクルにおいて、整列バッファ310内の四重ワードをマ
ルチプレクサ/バレル・シフタ312の入力128〜255に供給し、メモリ行
304内の四重ワードをマルチプレクサ/バレル・シフタ312の入力0〜12
7に供給する。こうして、マルチプレクサ/バレル・シフタ312は、その入力
に、8つの32ビット・オペランドから成る、2ラインのオペランドを有するこ
とになる。命令デコーダ150は、J/KxまたはJ/Kyレジスタ・アドレス
の一部である、オフセット値をマルチプレクサ/バレル・シフタ312に供給し
、その入力におけるオペランドから所望のオペランドを選択する。先に示したよ
うに、選択したオペランドは、オフセット値によっては、同一メモリ行からの場
合も異なるメモリ行からの場合もあり得る。オフセット値は、J/KxまたはJ
/Kyレジスタおよび命令400によって指定されるオペランド・アドレスの最
下位ビット(LSB)から得られる。指定したオペランドをレジスタ・ファイル
100に供給した後、メモリ行304に格納してあるオペランドのラインを整列
バッファ310にロードする。第2サイクルの動作を連続サイクルにおいて繰り
返し、連続するプロセッサ・サイクル上で不整列アクセスを行なうことも可能で
ある。次のサイクルにおいて、整列バッファ310(メモリ行304)内の四重
ワードを、マルチプレクサ/バレル・シフタ312の入力128〜255に供給
し、メモリ行306内の四重ワードをマルチプレクサ/バレル・シフタ312の
入力0〜127に供給する。マルチプレクサ/バレル・シフタ312は、指定し
たオペランドを、オフセット値に応じてレジスタ・ファイル100に供給する。
このようにして、前述のように整列バッファ310の初期ローディングに用いた
不整列データ・アクセスの第1サイクルの後、各サイクル毎に不整列データ・ア
クセスを実行することができる。
合、データ整列バッファ110はオペランドをレジスタ・ファイル100に供給
する。この場合、命令デコーダ150は、ロード信号およびオフセット値を含む
制御信号を、データ整列バッファ110に供給する。命令のレジスタ・グループ
・フィールド402が整列アクセスを指定する場合も、データ整列バッファ11
0は、整列されたオペランドをレジスタ・ファイル100に供給する。しかしな
がら、ロード信号およびオフセット値は不要である。整列アクセスの場合、各メ
モリ行内のデータ・ワードをマルチプレクサ/バレル・シフタ312の入力0〜
127に供給する。オフセット値を0に固定し、指定したオペランドをバス10
6上でレジスタ・ファイル100に供給する。このように、整列アクセスおよび
不整列アクセスを、個々のプログラムにおいて混合することができる。
メモリ・アドレスに限定されないことである。この特徴により、一連の不整列ア
クセスの間、循環バッファは一順して開始点に戻ることが可能となる。不整列デ
ータ・アクセスを用いる割込ルーチンは、使用の前に、データ整列バッファ11
0の内容を格納し、使用の後に、データ整列バッファ110の内容を復元しなけ
ればならない。
付けて、不整列データ・アクセスについて説明してきた。この構成では、オフセ
ット値は、4つのオフセット値の1つを指定するために2ビットを有する。別の
構成では、各メモリ行は、8つの16ビット・ワードを含み、0から7までのオ
フセット値を指定することができる。この構成では、オペランド・アドレスの下
位側3ビットをオフセット値として用いる。尚、メモリ行毎に異なるデータ・ワ
ード数を有し、データ・ワード当たり異なるビット数を有するメモリ構成も、本
発明の範囲に含まれることは理解されよう。
を指定した。第2の手法では、データ・アドレスのLSBの値のみを検出するこ
とによって、整列アクセスを不整列アクセスから区別することも可能である。L
SBの値が0であると整列アクセスを示し、LSBの値が0以外であると不整列
アクセスを示す。LSBが非ゼロ値の場合整列バッファを用いるが、LSBが0
の場合、整列バッファを用いない。LSBの異なる値毎に異なる手順が必要とな
るので、一層の複雑化が伴う。したがって、この第2の手法は、第1の主要より
も望ましくはないが、用途によっては有用な場合もある。
明したが、添付した特許請求の範囲によって定義した本発明の範囲から逸脱する
ことなく、種々の変更および修正も可能であることは、当業者には明らかであろ
う。
の一例を示す。
Claims (12)
- 【請求項1】 ディジタル信号プロセッサであって、 ディジタル信号計算を実行するための、命令およびオペランドを含む、データ
・ワードを格納するメモリであって、各々2つ以上の前記データ・ワードのため
の位置を有する行に編成した、前記メモリと、 前記メモリから命令を取り出すための命令アドレス、および前記メモリからオ
ペランドを取り出すためのデータ・アドレスを発生するプログラム・シーケンサ
と、 前記メモリから取り出した前記命令および前記オペランドを用いて前記ディジ
タル信号計算を実行する計算ユニットと、 前記メモリの異なる行に格納されている指定のオペランドへの不整列データ・
アクセスを示す命令に応答して、1つ以上の制御信号を発生する命令デコーダと
、 前記メモリの異なる行からオペランドのラインを受け取り、前記1つ以上の制
御信号に応答して前記指定のオペランドを前記計算ユニットに供給するデータ整
列バッファと、 を備えるディジタル信号プロセッサ。 - 【請求項2】 前記データ整列バッファは、 前記メモリの第1行からの第1オペランド・ラインを格納するバッファと、 前記バッファからの前記第1オペランド・ライン、および前記メモリの第2行
からの第2オペランド・ラインを受け取り、前記制御信号に応答して、前記第1
および第2オペランド・ラインから、前記指定のオペランドを選択するマルチプ
レクサと、 を備える請求項1記載のディジタル信号プロセッサ。 - 【請求項3】 前記計算ユニットはレジスタ・ファイルを含み、前記マルチ
プレクサは前記指定のオペランドを前記レジスタ・ファイルに供給する請求項2
記載のディジタル信号プロセッサ。 - 【請求項4】 前記メモリの各行は、4つの32ビット・データ・ワードか
ら成る請求項1記載のディジタル信号プロセッサ。 - 【請求項5】 前記メモリの各行は、8つの16ビット・データ・ワードか
ら成る請求項1記載のディジタル信号プロセッサ。 - 【請求項6】 前記データ整列バッファは、更に、各々指定オペランドに対
する不整列データ・アクセスを示す、一連の命令に応答し、連続するプロセッサ
・サイクル上において前記指定のオペランドを前記計算ユニットに供給する手段
を備える請求項1記載のディジタル信号プロセッサ。 - 【請求項7】 前記制御信号は、前記メモリの行に対する前記指定のオペラ
ンドのオフセットを表わすオフセット値を含む請求項1記載のディジタル信号プ
ロセッサ。 - 【請求項8】 前記制御信号は、前記マルチプレクサに供給するオフセット
値と、前記バッファに供給するロード信号とを含む請求項2記載のディジタル信
号プロセッサ。 - 【請求項9】 ディジタル信号プロセッサであって、 命令およびオペランドを含むデータ・ワードを格納するメモリであって、各々
2つ以上の前記データ・ワードのための位置を有する行に編成した、前記メモリ
と、 前記メモリから取り出した前記命令および前記オペランドを用いて、ディジタ
ル信号計算を実行する計算ユニットと、 前記メモリと前記計算ユニットとの間に配置され、不整列データ・アクセスを
示す命令に応答して、前記メモリの異なる行に格納されていれる指定のオペラン
ドを前記計算ユニットに供給するデータ整列バッファと、 を備えるディジタル信号プロセッサ。 - 【請求項10】 前記データ整列バッファは、 前記メモリの第1行からの第1オペランド・ラインを格納するバッファと、 前記バッファからの前記第1オペランド・ライン、および前記メモリの第2行
からの第2オペランド・ラインを受け取り、前記命令に応答して、前記第1およ
び第2オペランド・ラインから、前記指定のオペランドを選択するマルチプレク
サと、 を備える請求項9記載のディジタル信号プロセッサ。 - 【請求項11】 前記計算ユニットはレジスタ・ファイルを含み、前記マル
チプレクサは前記指定のオペランドを前記レジスタ・ファイルに供給する請求項
10記載のディジタル信号プロセッサ。 - 【請求項12】 前記データ整列バッファは、更に、各々指定オペランドに
対する不整列データ・アクセスを示す一連の命令に応答し、連続するプロセッサ
・サイクル上において前記指定のオペランドを前記計算ユニットに供給する手段
を備える請求項9記載のディジタル信号プロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/008,154 | 1998-01-16 | ||
US09/008,154 US6061779A (en) | 1998-01-16 | 1998-01-16 | Digital signal processor having data alignment buffer for performing unaligned data accesses |
PCT/US1999/000527 WO1999036852A1 (en) | 1998-01-16 | 1999-01-08 | Digital signal processor having data alignment buffer for performing unaligned data accesses |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002509312A true JP2002509312A (ja) | 2002-03-26 |
Family
ID=21730074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000540496A Pending JP2002509312A (ja) | 1998-01-16 | 1999-01-08 | 不整列データ・アクセスを実行するためのデータ整列バッファを有するディジタル信号プロセッサ |
Country Status (5)
Country | Link |
---|---|
US (1) | US6061779A (ja) |
EP (1) | EP1047989B1 (ja) |
JP (1) | JP2002509312A (ja) |
DE (1) | DE69906482T2 (ja) |
WO (1) | WO1999036852A1 (ja) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
AU6352894A (en) * | 1993-03-05 | 1994-09-26 | Roy J. Mankovitz | Apparatus and method using compressed codes for television program record scheduling |
IL122299A (en) * | 1997-11-25 | 2003-11-23 | Broadcom Corp | Video encoding device |
CN1867068A (zh) | 1998-07-14 | 2006-11-22 | 联合视频制品公司 | 交互式电视节目导视***及其方法 |
AR020608A1 (es) | 1998-07-17 | 2002-05-22 | United Video Properties Inc | Un metodo y una disposicion para suministrar a un usuario acceso remoto a una guia de programacion interactiva por un enlace de acceso remoto |
CA2730344C (en) | 1998-07-17 | 2014-10-21 | United Video Properties, Inc. | Interactive television program guide system having multiple devices within a household |
US6502138B2 (en) * | 1998-09-25 | 2002-12-31 | Intel Corporation | Modem with code execution adapted to symbol rate |
US6490628B2 (en) * | 1998-09-25 | 2002-12-03 | Intel Corporation | Modem using a digital signal processor and a signal based command set |
US6351781B1 (en) * | 1998-09-25 | 2002-02-26 | Intel Corporation | Code swapping techniques for a modem implemented on a digital signal processor |
US6711206B1 (en) | 1998-09-25 | 2004-03-23 | Intel Corporation | Modem using a digital signal processor and separate transmit and receive sequencers |
US6711205B1 (en) | 1998-09-25 | 2004-03-23 | Intel Corporation | Tone detector for use in a modem |
US6661848B1 (en) | 1998-09-25 | 2003-12-09 | Intel Corporation | Integrated audio and modem device |
US6374312B1 (en) * | 1998-09-25 | 2002-04-16 | Intel Corporation | System for dedicating a host processor to running one of a plurality of modem programs and dedicating a DSP to running another one of the modem programs |
US6625208B2 (en) * | 1998-09-25 | 2003-09-23 | Intel Corporation | Modem using batch processing of signal samples |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
US6275441B1 (en) * | 1999-06-11 | 2001-08-14 | G-Link Technology | Data input/output system for multiple data rate memory devices |
US6704854B1 (en) * | 1999-10-25 | 2004-03-09 | Advanced Micro Devices, Inc. | Determination of execution resource allocation based on concurrently executable misaligned memory operations |
US6539467B1 (en) * | 1999-11-15 | 2003-03-25 | Texas Instruments Incorporated | Microprocessor with non-aligned memory access |
US6256253B1 (en) * | 2000-02-18 | 2001-07-03 | Infineon Technologies North America Corp. | Memory device with support for unaligned access |
US7120781B1 (en) * | 2000-06-30 | 2006-10-10 | Intel Corporation | General purpose register file architecture for aligned simd |
KR20190096450A (ko) | 2000-10-11 | 2019-08-19 | 로비 가이드스, 인크. | 매체 콘텐츠 배달 시스템 및 방법 |
JP3776732B2 (ja) * | 2001-02-02 | 2006-05-17 | 株式会社東芝 | プロセッサ装置 |
FI20010924A (fi) | 2001-05-03 | 2002-11-04 | Nokia Corp | Mikroprosessorin muistinkäsittely |
US7107584B2 (en) * | 2001-10-23 | 2006-09-12 | Microsoft Corporation | Data alignment between native and non-native shared data structures |
US6683804B1 (en) * | 2002-07-16 | 2004-01-27 | Analog Devices, Inc. | Read/write memory arrays and methods with predetermined and retrievable latent-state patterns |
US7493646B2 (en) | 2003-01-30 | 2009-02-17 | United Video Properties, Inc. | Interactive television systems with digital video recording and adjustable reminders |
US7134000B2 (en) * | 2003-05-21 | 2006-11-07 | Analog Devices, Inc. | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information |
US7134068B2 (en) * | 2003-12-04 | 2006-11-07 | Seagate Technology Llc | Channel processing data without leading sync mark |
US7543142B2 (en) | 2003-12-19 | 2009-06-02 | Intel Corporation | Method and apparatus for performing an authentication after cipher operation in a network processor |
US7512945B2 (en) | 2003-12-29 | 2009-03-31 | Intel Corporation | Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor |
US20050149744A1 (en) * | 2003-12-29 | 2005-07-07 | Intel Corporation | Network processor having cryptographic processing including an authentication buffer |
US7529924B2 (en) * | 2003-12-30 | 2009-05-05 | Intel Corporation | Method and apparatus for aligning ciphered data |
US7412584B2 (en) * | 2004-05-03 | 2008-08-12 | Intel Corporation | Data alignment micro-architecture systems and methods |
US8806533B1 (en) | 2004-10-08 | 2014-08-12 | United Video Properties, Inc. | System and method for using television information codes |
US20070050592A1 (en) * | 2005-08-31 | 2007-03-01 | Gschwind Michael K | Method and apparatus for accessing misaligned data streams |
US8099448B2 (en) | 2005-11-02 | 2012-01-17 | Qualcomm Incorporated | Arithmetic logic and shifting device for use in a processor |
WO2007069152A2 (en) * | 2005-12-12 | 2007-06-21 | Koninklijke Philips Electronics N.V. | Method and system for data streaming |
US8156310B2 (en) * | 2006-09-11 | 2012-04-10 | International Business Machines Corporation | Method and apparatus for data stream alignment support |
US8219785B1 (en) * | 2006-09-25 | 2012-07-10 | Altera Corporation | Adapter allowing unaligned access to memory |
US8418206B2 (en) | 2007-03-22 | 2013-04-09 | United Video Properties, Inc. | User defined rules for assigning destinations of content |
US7923341B2 (en) * | 2007-08-13 | 2011-04-12 | United Solar Ovonic Llc | Higher selectivity, method for passivating short circuit current paths in semiconductor devices |
US8601526B2 (en) | 2008-06-13 | 2013-12-03 | United Video Properties, Inc. | Systems and methods for displaying media content and media guidance information |
US10063934B2 (en) | 2008-11-25 | 2018-08-28 | Rovi Technologies Corporation | Reducing unicast session duration with restart TV |
US8671220B1 (en) * | 2008-11-28 | 2014-03-11 | Netlogic Microsystems, Inc. | Network-on-chip system, method, and computer program product for transmitting messages utilizing a centralized on-chip shared memory switch |
US9204193B2 (en) | 2010-05-14 | 2015-12-01 | Rovi Guides, Inc. | Systems and methods for media detection and filtering using a parental control logging application |
US20130027416A1 (en) * | 2011-07-25 | 2013-01-31 | Karthikeyan Vaithianathan | Gather method and apparatus for media processing accelerators |
US8805418B2 (en) | 2011-12-23 | 2014-08-12 | United Video Properties, Inc. | Methods and systems for performing actions based on location-based rules |
US10372603B2 (en) * | 2017-11-27 | 2019-08-06 | Western Digital Technologies, Inc. | Handling of unaligned writes |
US11036506B1 (en) * | 2019-12-11 | 2021-06-15 | Motorola Solutions, Inc. | Memory systems and methods for handling vector data |
US11755324B2 (en) * | 2021-08-31 | 2023-09-12 | International Business Machines Corporation | Gather buffer management for unaligned and gather load operations |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4164787A (en) * | 1977-11-09 | 1979-08-14 | Bell Telephone Laboratories, Incorporated | Multiple microprocessor intercommunication arrangement |
US4574345A (en) * | 1981-04-01 | 1986-03-04 | Advanced Parallel Systems, Inc. | Multiprocessor computer system utilizing a tapped delay line instruction bus |
US4439839A (en) * | 1981-08-24 | 1984-03-27 | International Telephone And Telegraph Corporation | Dynamically programmable processing element |
JPS58149548A (ja) * | 1982-03-02 | 1983-09-05 | Hitachi Ltd | メモリ制御方式 |
US4754394A (en) * | 1984-10-24 | 1988-06-28 | International Business Machines Corporation | Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage |
US4641238A (en) * | 1984-12-10 | 1987-02-03 | Itt Corporation | Multiprocessor system employing dynamically programmable processing elements controlled by a master processor |
US4809217A (en) * | 1985-10-31 | 1989-02-28 | Allen-Bradley Company, Inc. | Remote I/O port for transfer of I/O data in a programmable controller |
US4800524A (en) * | 1985-12-20 | 1989-01-24 | Analog Devices, Inc. | Modulo address generator |
US5010476A (en) * | 1986-06-20 | 1991-04-23 | International Business Machines Corporation | Time multiplexed system for tightly coupling pipelined processors to separate shared instruction and data storage units |
US4814976C1 (en) * | 1986-12-23 | 2002-06-04 | Mips Tech Inc | Risc computer with unaligned reference handling and method for the same |
US5099417A (en) * | 1987-03-13 | 1992-03-24 | Texas Instruments Incorporated | Data processing device with improved direct memory access |
US4908748A (en) * | 1987-07-28 | 1990-03-13 | Texas Instruments Incorporated | Data processing device with parallel circular addressing hardware |
GB8808353D0 (en) * | 1988-04-09 | 1988-05-11 | Int Computers Ltd | Data processing system |
US5056000A (en) * | 1988-06-21 | 1991-10-08 | International Parallel Machines, Inc. | Synchronized parallel processing with shared memory |
US4987529A (en) * | 1988-08-11 | 1991-01-22 | Ast Research, Inc. | Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters |
US5117350A (en) * | 1988-12-15 | 1992-05-26 | Flashpoint Computer Corporation | Memory address mechanism in a distributed memory architecture |
US5187795A (en) * | 1989-01-27 | 1993-02-16 | Hughes Aircraft Company | Pipelined signal processor having a plurality of bidirectional configurable parallel ports that are configurable as individual ports or as coupled pair of ports |
DE69022716T2 (de) * | 1990-03-19 | 1996-03-14 | Bull Hn Information Syst | Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür. |
US5280532A (en) * | 1990-04-09 | 1994-01-18 | Dsc Communications Corporation | N:1 bit compression apparatus and method |
US5390304A (en) * | 1990-09-28 | 1995-02-14 | Texas Instruments, Incorporated | Method and apparatus for processing block instructions in a data processor |
USH1291H (en) * | 1990-12-20 | 1994-02-01 | Hinton Glenn J | Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions |
US5386531A (en) * | 1991-05-15 | 1995-01-31 | International Business Machines Corporation | Computer system accelerator for multi-word cross-boundary storage access |
JPH0520263A (ja) * | 1991-07-15 | 1993-01-29 | Nec Corp | データ転送制御装置 |
JP3029886B2 (ja) * | 1991-07-23 | 2000-04-10 | 富士通株式会社 | 混成多重同期方式 |
CA2069711C (en) * | 1991-09-18 | 1999-11-30 | Donald Edward Carmon | Multi-media signal processor computer system |
US5361370A (en) * | 1991-10-24 | 1994-11-01 | Intel Corporation | Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port |
US5423010A (en) * | 1992-01-24 | 1995-06-06 | C-Cube Microsystems | Structure and method for packing and unpacking a stream of N-bit data to and from a stream of N-bit data words |
US6513125B1 (en) * | 1993-04-22 | 2003-01-28 | Analog Devices, Inc. | Multi-phase multi-access pipeline memory system in which the pipeline memory can decode addresses issued by one processor while simultaneously accessing memory array by other processor |
US5471607A (en) * | 1993-04-22 | 1995-11-28 | Analog Devices, Inc. | Multi-phase multi-access pipeline memory system |
JPH06332792A (ja) * | 1993-05-21 | 1994-12-02 | Mitsubishi Electric Corp | データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路 |
US5537576A (en) * | 1993-06-23 | 1996-07-16 | Dsp Semiconductors Ltd. | Expandable memory for a digital signal processor including mapped first and second memory banks forming a continuous and contiguous address space |
US5577200A (en) * | 1994-02-28 | 1996-11-19 | Intel Corporation | Method and apparatus for loading and storing misaligned data on an out-of-order execution computer system |
US5608885A (en) * | 1994-03-01 | 1997-03-04 | Intel Corporation | Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions |
US5761466A (en) * | 1994-05-09 | 1998-06-02 | Lsi Logic Corporation | Soft programmable single-cycle/pipelined micro-programmed control system |
US5619720A (en) * | 1994-10-04 | 1997-04-08 | Analog Devices, Inc. | Digital signal processor having link ports for point-to-point communication |
US5832249A (en) * | 1995-01-25 | 1998-11-03 | Advanced Micro Devices, Inc. | High performance superscalar alignment unit |
US5928349A (en) * | 1995-02-24 | 1999-07-27 | International Business Machines Corporation | Mixed-endian computing environment for a conventional bi-endian computer system |
US5668984A (en) * | 1995-02-27 | 1997-09-16 | International Business Machines Corporation | Variable stage load path and method of operation |
US5649138A (en) * | 1996-01-04 | 1997-07-15 | Advanced Micro Devices | Time dependent rerouting of instructions in plurality of reservation stations of a superscalar microprocessor |
US5845099A (en) * | 1996-06-28 | 1998-12-01 | Intel Corporation | Length detecting unit for parallel processing of variable sequential instructions |
US5941980A (en) * | 1996-08-05 | 1999-08-24 | Industrial Technology Research Institute | Apparatus and method for parallel decoding of variable-length instructions in a superscalar pipelined data processing system |
US5931940A (en) * | 1997-01-23 | 1999-08-03 | Unisys Corporation | Testing and string instructions for data stored on memory byte boundaries in a word oriented machine |
US5968163A (en) * | 1997-03-10 | 1999-10-19 | Advanced Micro Devices, Inc. | Microcode scan unit for scanning microcode instructions using predecode data |
-
1998
- 1998-01-16 US US09/008,154 patent/US6061779A/en not_active Expired - Lifetime
-
1999
- 1999-01-08 EP EP99901404A patent/EP1047989B1/en not_active Expired - Lifetime
- 1999-01-08 JP JP2000540496A patent/JP2002509312A/ja active Pending
- 1999-01-08 DE DE69906482T patent/DE69906482T2/de not_active Expired - Lifetime
- 1999-01-08 WO PCT/US1999/000527 patent/WO1999036852A1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
WO1999036852A1 (en) | 1999-07-22 |
EP1047989B1 (en) | 2003-04-02 |
US6061779A (en) | 2000-05-09 |
EP1047989A1 (en) | 2000-11-02 |
DE69906482T2 (de) | 2004-01-29 |
DE69906482D1 (de) | 2003-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6061779A (en) | Digital signal processor having data alignment buffer for performing unaligned data accesses | |
US6510510B1 (en) | Digital signal processor having distributed register file | |
US5954811A (en) | Digital signal processor architecture | |
US5203002A (en) | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle | |
US4961162A (en) | Multiprocessing system for performing floating point arithmetic operations | |
US4648034A (en) | Busy signal interface between master and slave processors in a computer system | |
US5099417A (en) | Data processing device with improved direct memory access | |
US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
EP1550032B1 (en) | Method and apparatus for thread-based memory access in a multithreaded processor | |
US6963962B2 (en) | Memory system for supporting multiple parallel accesses at very high frequencies | |
EP1512068B1 (en) | Access to a wide memory | |
US5586256A (en) | Computer system using multidimensional addressing between multiple processors having independently addressable internal memory for efficient reordering and redistribution of data arrays between the processors | |
US5809274A (en) | Purge control for ON-chip cache memory | |
US5896543A (en) | Digital signal processor architecture | |
US6754809B1 (en) | Data processing apparatus with indirect register file access | |
JPH0764853A (ja) | Simdマルチプロセッサ用の可変正確度間接的アドレス方法およびそれを行う装置 | |
US4766535A (en) | High-performance multiple port memory | |
CA2478570A1 (en) | Data processing apparatus and system and method for controlling memory access | |
JPH10228376A (ja) | 複数レジスタ命令を処理する方法及びプロセッサ | |
US5710914A (en) | Digital signal processing method and system implementing pipelined read and write operations | |
WO2001074134A2 (en) | System having a configurable cache/sram memory | |
JPH05100948A (ja) | 2乗演算を実行する速度改良型データ処理システム及びその方法 | |
JPS6250856B2 (ja) | ||
US5907864A (en) | Data processing device with time-multiplexed memory bus | |
US5197145A (en) | Buffer storage system using parallel buffer storage units and move-out buffer registers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060105 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060705 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20061004 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061012 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070105 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070517 |