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
Application number
JP2000540496A
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.)
Analog Devices Inc
Original Assignee
Analog 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 Analog Devices Inc filed Critical Analog Devices Inc
Publication of JP2002509312A publication Critical patent/JP2002509312A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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 Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 高性能ディジタル信号プロセッサは、ディジタル信号計算のための命令およびオペランドを格納するメモリ、およびメモリに接続されたコア・プロセッサを含む。メモリは、第1、第2および第3データおよびアドレス・バスによってそれぞれコア・プロセッサに接続された、第1、第2および第3メモリ・バンクを含むことができる。コア・プロセッサは、プログラム・シーケンサを含み、ディジタル信号計算の第1および第2部分集合をそれぞれ実行する、第1および第2計算ブロックを含むことができる。メモリ・バンクと計算ブロックとの間にデータ整列バッファを備えている。データ整列バッファは、異なるメモリ行に格納されている指定のオペランドに対する、不整列アクセスを可能にする。指定のオペランドは、同じプロセッサ・サイクルにおいて、計算ブロックの一方または双方に供給される。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明は、ディジタル信号プロセッサに関し、更に特定すれば、メモリの異な
る行に格納されているオペランドを計算ユニットに効率的に供給可能なディジタ
ル信号プロセッサに関するものである。 (発明の背景) ディジタル信号コンピュータ即ちディジタル信号プロセッサ(DSP)は、例
えば、高速フーリエ変換、ディジタル・フィルタ、画像処理および音声認識とい
うような、ディジタル信号処理用途のために処理能力を最適化するように設計さ
れた特殊目的コンピュータである。ディジタル信号プロセッサの用途は、典型的
に、リアル・タイム動作、高い割込率、および集中的数値計算を特徴とする。加
えて、ディジタル信号プロセッサの用途は、メモリ・アクセス動作が集中的に行
われ、大量のデータ入力および出力を必要とする場合が多い。したがって、ディ
ジタル信号プロセッサの設計は、汎用コンピュータとは全く異なると考えられる
【0002】 高速数値計算を達成するためにディジタル信号プロセッサのアーキテクチャに
用いられている手法の1つに、ハーバード・アーキテクチャ(Harvard
architecture)がある。これは、分離した独立のプログラム・メモ
リおよびデータ・メモリを利用し、2つのメモリに同時にアクセスを可能とした
ものである。このアーキテクチャでは、単一クロック・サイクルでメモリから命
令およびオペラントを取り出すことが可能である。多くの場合、プログラムは、
当該プログラムのオペランドよりも占有するメモリ空間は少ない。メモリ利用の
最大化を図るために、命令およびオペランド双方を格納するプログラム・メモリ
を利用する、変更ハーバード・アーキテクチャがある。典型的に、プログラムお
よびデータ・メモリは、別個のプログラム・バスおよびデータ・バスによって、
コア・プロセッサと接続されている。
【0003】 ディジタル信号プロセッサは、2つ以上のデータ・ワードをメモリの各行に格
納し、2つ以上のデータ・ワードを並列に計算ユニットに供給可能なアーキテク
チャを利用する場合がある。かかるアーキテクチャは性能向上をもたらすが、そ
れは数個の命令および/またはオペランドに並列にアクセスできるからである。
【0004】 ディジタル信号プロセッサは、ディジタル・フィルタ計算を実行する必要があ
ることが多く、その際ディジタル・フィルタの出力信号サンプルは、指定された
入力信号サンプルのために計算される。有限インパルス応答(FIR)ディジタ
ル・フィルタでは、各信号サンプルを表わすデータ値にフィルタ係数を乗算し、
積を結合してフィルタ出力値を得る。次に、フィルタ係数に対してデータ値をシ
フトし、このプロセスを繰り返して、連続フィルタ出力信号サンプルを表わすデ
ータ値を得る。かかる計算は、2つ以上のデータ・ワードを各メモリ行に格納す
る、ディジタル信号プロセッサのアーキテクチャにおいて効率的に実行するのは
困難である。特に、各クロック・サイクル毎にデータ値を適正な係数と整列させ
るのは容易でないので、これらの計算を実行するには複雑なソフトウエア・ルー
チンが必要となる。
【0005】 したがって、これらの困難を克服する、ディジタル信号プロセッサ・アーキテ
クチャの改良が必要とされている。 (発明の概要) 本発明の第1の態様によれば、ディジタル信号プロセッサを提供する。ディジ
タル信号プロセッサは、ディジタル信号計算を実行するための命令およびオペラ
ンドを含むデータ・ワードを格納するメモリと、プログラム・シーケンサと、計
算ユニットと、命令デコーダと、データ整列バッファとを含む。メモリは、各々
2つ以上のデータ・ワードのための位置を有する行に編成されている。プログラ
ム・シーケンサは、メモリから命令を取り出す命令アドレス、およびメモリから
オペランドを取り出すデータ・アドレスを発生する。計算ユニットは、メモリか
ら取り出した命令およびオペランドを用いて、ディジタル信号計算を実行する。
命令デコーダは、メモリの異なる行に格納されている、指定のオペランドに対す
る不整列(unaligned data)データ・アクセスを示す命令に応答
して、1つ以上の制御信号を発生する。データ整列バッファは、メモリの異なる
行からオペランドのラインを受け取り、制御信号に応答して、指定のオペランド
を計算ユニットに供給する。
【0006】 データ整列バッファは、メモリの第1行からの第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の内部クロックを得ている。
【0007】 メモリ16は、3つの独立した大容量メモリ・バンク40、42および44を
含む。好適な実施形態では、メモリ・バンク40、42および44の各々は、6
4Kワードの容量を有し、各ワードは32ビットである。以下で論ずるが、メモ
リ・バンク40、42および44の各々は、128ビット・データ・バスを有す
ることが好ましい。4つまでの連続する32ビット整列データ・ワードの各々を
、単一のクロック・サイクルにおいて、各メモリ・バンクに転送するか、あるい
は各メモリ・バンクから転送することができる。
【0008】 DSP10の素子は、効率的な高速動作のために、バスによって相互接続され
ている。バスの各々は、二進情報の並列転送のために多数のラインを含む。第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ビット幅である
ことが好ましい。
【0009】 第1アドレス・バス50および第1データ・バス60は、データのメモリ・バ
ンク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の各々は、単一クロック・サイクルにおいて多数のデータ・ワードの読み出
しおよび書き込みを可能とするように構成されている。単一クロック・サイクル
における各メモリ・バンクからの多数のデータ・ワードの同時転送は、命令キャ
ッシュやデータ・キャッシュを必要とせずに行われる。
【0010】 制御ブロック24は、プログラム・シーケンサ70、第1整数ALU72(J
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は
、命令およびオペランドの格納に関しては相互交換可能である。
【0011】 プログラム・シーケンサ70ならびに整数ALU72および74は、外部ポー
ト28を介して外部メモリ〔図示せず〕にアクセスすることができる。所望の外
部メモリ・アドレスは、アドレス・バス56上に置かれる。外部アドレスは、外
部ポート28を介して、外部アドレス・バス58に結合される。外部メモリは、
要求されたデータ・ワードまたは複数のデータ・ワードを外部データ・バス68
上に供給する。外部データは、外部ポート28ならびにデータ・バス60、62
および64の1つを介して、計算ブロック12および14の一方または双方に供
給される。DRAMコントローラ30は、外部メモリを制御する。
【0012】 先に示したように、メモリ・バンク40、42および44の各々は、各ワード
が32ビットとして、64kワードの容量を有することが好ましい。各メモリ・
バンクは、128ビット幅のデータ・バスに接続することができる。代替実施形
態では、各データ・バスは64ビット幅でもよく、クロック・フェーズ1および
クロック・フェーズ2の各々において64ビットを転送することによって、事実
上128ビットのバス幅を確保する。単一クロック・サイクルにおいて、各メモ
リ・バンクの多数のデータ・ワードにアクセスすることができる。即ち、データ
は、各々32ビットの単一、二重および四重ワードとしてアクセスすることがで
きる。二重および四重アクセスでは、メモリにおいてデータを整列する必要があ
る。四重データ・アクセスの典型的な用途は、高速フーリエ変換(FFT)およ
び複素FIRフィルタである。また、四重アクセスは、倍精度演算にも役立つ。
好ましくは、命令を四重ワードとしてアクセスする。しかしながら、命令は、メ
モリ内で整列する必要はない。
【0013】 四重ワード転送を用いると、各々32ビットの命令4つおよびオペランド8つ
を、単一クロック・サイクルにおいて計算ブロック12および14に供給するこ
とができる。転送されるデータ・ワード数、およびデータ・ワードを転送する計
算ブロックまたはブロック群は、命令内の制御ビットによって選択される。単一
、二重、または四重データ・ワードは、計算ブロック12、計算ブロック14、
または双方に転送することができる。二重および四重データ・ワード・アクセス
は、多くの用途において、単一クロック・サイクルに数個のオペランドを計算ブ
ロック12および14に転送可能とすることにより、DSP10の処理能力を向
上させる。各クロック・サイクル毎に多数の命令にアクセスすることができるの
で、各サイクル毎に多数の動作を実行し、これによって処理能力を向上させるこ
とができる。計算ブロック12および14が必要とするよりも早くオペランドを
供給することができれば、メモリ・サイクルが残り、これをDMAアドレス発生
器76および78が用いて、これら未使用のサイクル中に新たなデータをメモリ
・バンク40、42および44に供給することが可能となる。この際、コア・プ
ロセッサからサイクルを盗むことはない。また、1つの命令を多数のオペランド
に転送することができる場合、他の動作を実行するために命令スロットが利用可
能となり、これによって処理能力を向上させることができる。最後に、多数のデ
ータ・ワードにアクセスすることができるので、2つ以上の計算ブロックを利用
し、これらにオペランドを供給し続けることも可能となる。単一または二重デー
タ・ワードにアクセスすることができるので、四重データ・ワードにのみアクセ
スする構成と比較すると、電力消費が低減する。
【0014】 計算ブロック12および14の各々の実施形態について、その一例のブロック
図を図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は、二重
データ・ワードの異なる組み合わせを選択することができ、あるいは四重データ
・ワード全体を選択することができる。
【0015】 図2に示す計算ブロックは、乗算器/アキュミュレータ120、算術論理ユニ
ット(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つまでの命令
を実行することができる。
【0016】 図1に示したアーキテクチャでは、命令整列バッファ32および一次命令デコ
ーダ34は集中化されている。メモリ・バンク40、42および44の1つから
取り出した命令は、データ・バス60、62および64の1つの上にある命令整
列バッファ32に供給される。命令は、命令シーケンスによって要求されるクロ
ック・サイクルにおける実行のために整列され、部分的に一次命令デコーダ34
によって復号される。部分的に復号された命令は、DSP10内の適切なブロッ
クに供給される。例えば、命令は、計算ブロック12および14の一方または双
方、あるいは制御ブロック24に供給することができる。命令の復号は、当該命
令を利用するブロックによって完了する。例えば、図2に示すように、二次命令
デコーダ150は、計算命令の復号を完了する。
【0017】 メモリ・バンク40、42および44の各々を表わすブロック図を図3に示す
。各メモリ・バンクは、メモリ位置の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ビット信号を受け取る。前述のように単
一、二重または四重ワード転送は、単一クロック・サイクルにおいて行なうこと
ができる。
【0018】 単一ワード転送では、アドレス・ビット(15:2)は、4つの連続する整列
データ・ワードの列を選択し、アドレス・ビット(1:0)は列200、202
、204および206の1つを選択する。ドライバ210は、バス212に、選
択したワードを送出する。
【0019】 二重ワード転送では、アドレス・ビット(15:2)は、4つの連続する整列
データ・ワードの行を選択し、アドレス・ビット(1)は1対の隣接する列を選
択する。列200および202または列204および206を選択することがで
きる。選択した二重ワードは、ドライバ210によって、データ・バス212上
に送出される。
【0020】 四重ワード転送では、列200、202、204および206内の連続する整
列ワードが、アドレス・ビット(15:2)によって選択される。四重ワードは
、ドライバ210によって、データ・バス212上に送出される。単一、二重お
よび四重ワード転送では、選択したワードは、左にも右にもシフトせず、直接デ
ータ・バス212上に送出することが好ましい。
【0021】 多数のデータ・ワードにアクセスできるので、前述のようにディジタル信号プ
ロセッサの処理能力が向上する。しかしながら、前述のアーキテクチャでは、メ
モリ・バンク40、42および44に対するアクセスを整列する必要がある。オ
ペランドに対するアクセスの整列は、メモリ・バンクの単一行におけるオペラン
ドの、計算ブロック12および14の一方または双方への転送を伴う。先に論じ
たが、FIRフィルタ計算のように、計算によっては、メモリ・アクセスを整列
アクセスに制限すると、比較的複雑化する場合もある。
【0022】 本発明によれば、ディジタル信号プロセッサ10に、不整列アクセスを実行す
る機能が備えている。「不整列アクセス」という用語は、異なるメモリ行におい
て指定されたオペランドへのアクセスを意味する。指定されたオペランドは、メ
モリに対して整列されていないが、前述のように、計算ブロック12および14
の一方または双方に並列に、即ち、同じプロセッサ・サイクル上で供給すること
ができる。対照的に、整列アクセスとは、単一のメモリ行において指定されたオ
ペランドにアクセスするもののことである。
【0023】 メモリ・バンク40の一部を図4に示す。前述のように、各メモリ・バンクは
、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にアクセスする。
【0024】 データ整列バッファ110は、第1および第2メモリ行から、それぞれ、オペ
ランドの第1および第2行を受け取り、制御信号に応答して、オペランドの第1
および第2行から選択した指定オペランドを、計算ブロック12および14(図
2参照)の一方または双方におけるレジスタ・ファイル100に供給する。デー
タ整列バッファ110は、単一のメモリ行からのオペランドをレジスタ・ファイ
ル100に供給することも可能である。
【0025】 データ整列バッファ110は、整列バッファ310およびマルチプレクサ/バ
レル・シフタ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に供給されることは理解されよう。
【0026】 先に記したように、データ整列バッファ110は、整列アクセスおよび不整列
アクセスに用いることができる。整列アクセスでは、バス60およびマルチプレ
クサ/バレル・シフタ312を介して、指定したオペランドを単一のメモリ行か
らレジスタ・ファイル100に供給する。不整列アクセスでは、バス60、整列
バッファ310およびマルチプレクサ/バレル・シフタ312を介して、指定し
たオペランドを2つのメモリ行からレジスタ・ファイル100に供給する。
【0027】 データ整列バッファ110は、ディジタル信号プロセッサによって実行される
個々の命令に応答して制御される。メモリ移動命令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サイクルの後、各サイクル毎に不整列データ・ア
クセスを実行することができる。
【0028】 命令のレジスタ・グループ・フィールド402が不整列アクセスを指定する場
合、データ整列バッファ110はオペランドをレジスタ・ファイル100に供給
する。この場合、命令デコーダ150は、ロード信号およびオフセット値を含む
制御信号を、データ整列バッファ110に供給する。命令のレジスタ・グループ
・フィールド402が整列アクセスを指定する場合も、データ整列バッファ11
0は、整列されたオペランドをレジスタ・ファイル100に供給する。しかしな
がら、ロード信号およびオフセット値は不要である。整列アクセスの場合、各メ
モリ行内のデータ・ワードをマルチプレクサ/バレル・シフタ312の入力0〜
127に供給する。オフセット値を0に固定し、指定したオペランドをバス10
6上でレジスタ・ファイル100に供給する。このように、整列アクセスおよび
不整列アクセスを、個々のプログラムにおいて混合することができる。
【0029】 データ整列バッファ110の更に別の特徴は、不整列データ・アクセスが連続
メモリ・アドレスに限定されないことである。この特徴により、一連の不整列ア
クセスの間、循環バッファは一順して開始点に戻ることが可能となる。不整列デ
ータ・アクセスを用いる割込ルーチンは、使用の前に、データ整列バッファ11
0の内容を格納し、使用の後に、データ整列バッファ110の内容を復元しなけ
ればならない。
【0030】 これまで、各メモリ行が4つの32ビット・データ・ワードを含む構成と関連
付けて、不整列データ・アクセスについて説明してきた。この構成では、オフセ
ット値は、4つのオフセット値の1つを指定するために2ビットを有する。別の
構成では、各メモリ行は、8つの16ビット・ワードを含み、0から7までのオ
フセット値を指定することができる。この構成では、オペランド・アドレスの下
位側3ビットをオフセット値として用いる。尚、メモリ行毎に異なるデータ・ワ
ード数を有し、データ・ワード当たり異なるビット数を有するメモリ構成も、本
発明の範囲に含まれることは理解されよう。
【0031】 前述の手法では、命令のレジスタ・グループ・フィールドは、不整列アクセス
を指定した。第2の手法では、データ・アドレスのLSBの値のみを検出するこ
とによって、整列アクセスを不整列アクセスから区別することも可能である。L
SBの値が0であると整列アクセスを示し、LSBの値が0以外であると不整列
アクセスを示す。LSBが非ゼロ値の場合整列バッファを用いるが、LSBが0
の場合、整列バッファを用いない。LSBの異なる値毎に異なる手順が必要とな
るので、一層の複雑化が伴う。したがって、この第2の手法は、第1の主要より
も望ましくはないが、用途によっては有用な場合もある。
【0032】 以上現在本発明の好適な実施形態であると考えられるものについて示しかつ説
明したが、添付した特許請求の範囲によって定義した本発明の範囲から逸脱する
ことなく、種々の変更および修正も可能であることは、当業者には明らかであろ
う。
【図面の簡単な説明】
【図1】 本発明によるディジタル信号プロセッサの一例のブロック図である。
【図2】 図1に示す各計算ブロックの一例のブロック図である。
【図3】 図1に示す各メモリ・バンクの一例のブロック図である。
【図4】 本発明によるデータ整列バッファの一例を示すブロック図である。
【図5】 図1のディジタル信号プロセッサに使用可能なメモリ移動命令のフォーマット
の一例を示す。
【手続補正書】
【提出日】平成13年3月6日(2001.3.6)
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B033 AA01 AA04 DA17 DB01 DB08 DB09 DB14 5B060 AA02 AB06 AB10 AB16 AC12 CB01 DA01

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 ディジタル信号プロセッサであって、 ディジタル信号計算を実行するための、命令およびオペランドを含む、データ
    ・ワードを格納するメモリであって、各々2つ以上の前記データ・ワードのため
    の位置を有する行に編成した、前記メモリと、 前記メモリから命令を取り出すための命令アドレス、および前記メモリからオ
    ペランドを取り出すためのデータ・アドレスを発生するプログラム・シーケンサ
    と、 前記メモリから取り出した前記命令および前記オペランドを用いて前記ディジ
    タル信号計算を実行する計算ユニットと、 前記メモリの異なる行に格納されている指定のオペランドへの不整列データ・
    アクセスを示す命令に応答して、1つ以上の制御信号を発生する命令デコーダと
    、 前記メモリの異なる行からオペランドのラインを受け取り、前記1つ以上の制
    御信号に応答して前記指定のオペランドを前記計算ユニットに供給するデータ整
    列バッファと、 を備えるディジタル信号プロセッサ。
  2. 【請求項2】 前記データ整列バッファは、 前記メモリの第1行からの第1オペランド・ラインを格納するバッファと、 前記バッファからの前記第1オペランド・ライン、および前記メモリの第2行
    からの第2オペランド・ラインを受け取り、前記制御信号に応答して、前記第1
    および第2オペランド・ラインから、前記指定のオペランドを選択するマルチプ
    レクサと、 を備える請求項1記載のディジタル信号プロセッサ。
  3. 【請求項3】 前記計算ユニットはレジスタ・ファイルを含み、前記マルチ
    プレクサは前記指定のオペランドを前記レジスタ・ファイルに供給する請求項2
    記載のディジタル信号プロセッサ。
  4. 【請求項4】 前記メモリの各行は、4つの32ビット・データ・ワードか
    ら成る請求項1記載のディジタル信号プロセッサ。
  5. 【請求項5】 前記メモリの各行は、8つの16ビット・データ・ワードか
    ら成る請求項1記載のディジタル信号プロセッサ。
  6. 【請求項6】 前記データ整列バッファは、更に、各々指定オペランドに対
    する不整列データ・アクセスを示す、一連の命令に応答し、連続するプロセッサ
    ・サイクル上において前記指定のオペランドを前記計算ユニットに供給する手段
    を備える請求項1記載のディジタル信号プロセッサ。
  7. 【請求項7】 前記制御信号は、前記メモリの行に対する前記指定のオペラ
    ンドのオフセットを表わすオフセット値を含む請求項1記載のディジタル信号プ
    ロセッサ。
  8. 【請求項8】 前記制御信号は、前記マルチプレクサに供給するオフセット
    値と、前記バッファに供給するロード信号とを含む請求項2記載のディジタル信
    号プロセッサ。
  9. 【請求項9】 ディジタル信号プロセッサであって、 命令およびオペランドを含むデータ・ワードを格納するメモリであって、各々
    2つ以上の前記データ・ワードのための位置を有する行に編成した、前記メモリ
    と、 前記メモリから取り出した前記命令および前記オペランドを用いて、ディジタ
    ル信号計算を実行する計算ユニットと、 前記メモリと前記計算ユニットとの間に配置され、不整列データ・アクセスを
    示す命令に応答して、前記メモリの異なる行に格納されていれる指定のオペラン
    ドを前記計算ユニットに供給するデータ整列バッファと、 を備えるディジタル信号プロセッサ。
  10. 【請求項10】 前記データ整列バッファは、 前記メモリの第1行からの第1オペランド・ラインを格納するバッファと、 前記バッファからの前記第1オペランド・ライン、および前記メモリの第2行
    からの第2オペランド・ラインを受け取り、前記命令に応答して、前記第1およ
    び第2オペランド・ラインから、前記指定のオペランドを選択するマルチプレク
    サと、 を備える請求項9記載のディジタル信号プロセッサ。
  11. 【請求項11】 前記計算ユニットはレジスタ・ファイルを含み、前記マル
    チプレクサは前記指定のオペランドを前記レジスタ・ファイルに供給する請求項
    10記載のディジタル信号プロセッサ。
  12. 【請求項12】 前記データ整列バッファは、更に、各々指定オペランドに
    対する不整列データ・アクセスを示す一連の命令に応答し、連続するプロセッサ
    ・サイクル上において前記指定のオペランドを前記計算ユニットに供給する手段
    を備える請求項9記載のディジタル信号プロセッサ。
JP2000540496A 1998-01-16 1999-01-08 不整列データ・アクセスを実行するためのデータ整列バッファを有するディジタル信号プロセッサ Pending JP2002509312A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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