[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2002529847A - ビットfifoを有するディジタル信号プロセッサ - Google Patents

ビットfifoを有するディジタル信号プロセッサ

Info

Publication number
JP2002529847A
JP2002529847A JP2000581530A JP2000581530A JP2002529847A JP 2002529847 A JP2002529847 A JP 2002529847A JP 2000581530 A JP2000581530 A JP 2000581530A JP 2000581530 A JP2000581530 A JP 2000581530A JP 2002529847 A JP2002529847 A JP 2002529847A
Authority
JP
Japan
Prior art keywords
bit
register
registers
pointer
length
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.)
Granted
Application number
JP2000581530A
Other languages
English (en)
Other versions
JP4955149B2 (ja
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 JP2002529847A publication Critical patent/JP2002529847A/ja
Application granted granted Critical
Publication of JP4955149B2 publication Critical patent/JP4955149B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/30018Bit or string instructions
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/30101Special purpose registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Cathode-Ray Tubes And Fluorescent Screens For Display (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 デジタル信号プロセッサは、算術論理ユニット、乗算器、シフタ、およびレジスタ・ファイルを備える計算ブロックを含む。計算ブロックは、ビット・フォーマットの命令およびオペランドを連続ビット・ストリームとして格納する複数のレジスタを含み、単一サイクルで任意のビット長のビット・フィールドを複数のレジスタとシフタとの間で転送するビット転送機構を利用する。複数のレジスタは、レジスタ・ファイル内に位置する汎用レジスタとすればよい。更に、レジスタ・ファイルは、ビット転送機構が用いる制御情報を格納する少なくとも1つの制御情報レジスタを含む。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明は、ディジタル信号プロセッサに関し、更に特定すれば、ビットFIF
Oを含む新規な計算ブロックを備えたディジタル信号プロセッサに関する。 (発明の背景) ディジタル信号プロセッサは、音声分析および合成のようなディジタル信号処
理用途に最適化され、音声計算、画像処理、またはディジタル・フィルタリング
を行なう特殊目的プロセッサである。ディジタル信号処理用途では、メモリ・ア
クセス動作が集中的となる傾向があり、しかも大量のデータ入出力が必要となる
傾向がある。リアルタイム・ディジタル信号処理は、多数の計算を実行するため
に、高速のハードウエアを必要とする。多くのアルゴリズムでは、計算は、非常
に多数の乗算および蓄積機能の繰り返しを伴う。これらの計算は、個々のデータ
・サンプル間でプロセッサによってリアルタイムで実行されるので、その回数に
よってサンプリング・レートが低下し、信号処理が制限される場合がある。した
がって、プロセッサは、高スループットの数値処理および高割込率が得られるよ
うに設計されている。
【0002】 一般に、ディジタル信号プロセッサは、コア・プロセッサ、動作に用いられる
命令およびオペランドを格納する少なくとも1つのメモリ、通信ポートと通信す
るリンク・ポート・バッファ、ならびに外部データ・バスおよび外部アドレス・
バスを通じた通信を制御する外部ポートを含む。コア・プロセッサは、制御ブロ
ック、一次命令デコーダに接続されている命令整合バッファ、およびディジタル
信号処理動作を実行する少なくとも1つの計算ブロックを含む。計算ユニットは
、レジスタ・ファイル、乗算器/アキュミュレータ、算術論理ユニット(ALU
)、およびシフタを含む。コア・プロセッサは、数個の異なる計算方式、ならび
にデータ格納および転送方式を用いて、速度、精度、サイズおよび性能を最適化
することもできる。
【0003】 通常、シフタは、n−ビット・ワードとして編成されたデータ上で動作する。
シフタは、シーケンサから命令を受け取り、レジスタ・ファイルからオペランド
を受け取り、レジスタ・ファイルにオペランドを格納する。全ての動作はn−ビ
ットの境界上で行われる。例えば、シフタは左シフトを行なう際、i番目のビッ
トを(i+1)番目のビットと置換し、右シフトを行なう際、i番目のビットを
(i−1)場目のビットと置換する。論理シフトでは、シフト・アウトされるビ
ットは失われ、シフト・インされるビットは0である。循環シフトでは、一端か
らシフト・アウトされるビットは他端にシフト・インされるため、情報は失われ
ない。算術演算シフトでは、シフタはビット・ストリングを左にシフトすること
によって、当該ビット・ストリングが表す二進数に2を乗算し、シフタはビット
・ストリングを右にシフトすることによって、二進数を2で除算する。
【0004】 レジスタ・ファイルは、命令、オペランドおよび結果の一時的な格納のために
、選択されたビット・サイズを有する多数のレジスタを含む。レジスタ・ファイ
ルは、メモリからオペランドを受け取り、数系統のオペランド・バスを通じて、
オペランドを乗算器とALUとシフタ(shifter)に供給する。計算の後
、レジスタ・ファイルは、数系統のバスを通じて、乗算器とALUとシフタから
結果を受け取る。通常、乗算器、ALUおよびシフタは、固定ワード・サイズを
有するデータ上で動作する。しかしながら、固定ワード・サイズは、全ての信号
処理用途にとって必ずしも最適ではない。
【0005】 例えば、ある通信用途ではハフマン・コーディング(Huffman cod
ing)を用いる場合があり、これは(キャラクタ毎に固定数のビットを用いる
キャラクタ・エンコード方式とは異なり)可変長キャラクタ・エンコード方式を
用いる。ハフマン・コーディングは、最も高い頻度で現れるキャラクタの全ビッ
ト数を最少に抑える。このコーディングは、既知の確率に基づいてビット数を選
択するので、データ・ストリングは、ビットがデータ・ストリーム内で到達する
毎にデコードされる。このコーディングは、データ・パックの厳格化をもたらす
。何故なら、最も共通して出現するキャラクタは短く、出現する頻度が少ないキ
ャラクタは長いからであり、出現する確率が最も高い最短のキャラクタは1ビッ
ト長に過ぎない。殆どのディジタル信号プロセッサは、固定ワード・サイズ(例
えば、16ビットまたは32ビット・ワード)を有するデータを操作するように
設計されている。このような設計は、ハフマン・コーディングを実現するには最
適ではない。 (発明の概要) 本発明は、新規な計算ブロックを備えたディジタル信号プロセッサ、および単
一サイクルで任意のビット長のビット・フィールド(または可変ビット長のワー
ド)を転送し、転送したビット・フィールドを別の動作に用いる方法である。
【0006】 ディジタル信号プロセッサは、算術論理ユニット、乗算器、シフタおよびレジ
スタ・ファイルを備えた計算ブロックを含む。また、計算ブロックは、ビット・
フォーマットで命令およびオペランドを連続ビット・ストリームとして格納する
複数のレジスタを含み、単一サイクルで任意のビット長のビット・フィールドを
複数のレジスタおよびシフタ間で転送するように構成され配列されたビット転送
機構を用いる。
【0007】 一実施形態では、複数のレジスタは、レジスタ・ファイル内に位置する汎用レ
ジスタである。レジスタ・ファイルは、更に、ビット転送機構が用いる制御情報
を格納するように構成された少なくとも1つの制御情報レジスタを含んでもよい
【0008】 好ましくは、ビット転送機構は、更に、制御情報にしたがって指定される長さ
のビット・フィールドを、複数のレジスタ内に保持されている連続ビット・スト
リームから抽出し、抽出したビット・フィールドをシフタに格納するように構成
されている。
【0009】 好ましくは、レジスタ・ファイルは、更に、ビット・ポインタを格納するよう
に構成されたポインタ・レジスタ、およびビット長を格納するように構成された
長さレジスタを含む。更に、ビット転送機構は、長さレジスタ内で指定されたビ
ット長を有し、ビット・ポインタによって指定された位置にあるビット・フィー
ルドを、複数のレジスタから抽出し、抽出したビット・フィールドをシフタに格
納するように構成してもよい。ビット・ポインタは、複数のレジスタ内に格納さ
れている連続ビット・ストリームにおける現ビット位置を追跡するように構成し
てもよい。算術論理ユニットは、指定された長さだけビット・ポインタを更新す
るように構成してもよい。
【0010】 好ましくは、算術論理ユニットは、指定の長さだけビット・ポインタを更新す
る際、ビット・ポインタに指定の長さを追加し、ポインタ・レジスタに、複数の
レジスタの容量の半分に等しい数のモジュロを戻す。ディジタル信号プロセッサ
は、メモリを含んでもよく、ビット転送機構は、更に、条件付きでデータをメモ
リから複数のレジスタにロードするように構成してもよい。ビット転送機構は、
ポインタを更新した際にレジスタの選択ビット容量を超えて増大した場合、条件
付きロードを永続的とするように構成してもよい。選択ビット容量は、64ビッ
トとするとよい。
【0011】 別の実施形態では、レジスタ・ファイルは、ビット・ポインタを格納するよう
に構成されたポインタ・レジスタ、およびビット長を格納するように構成された
長さレジスタを含む。ビット転送機構は、更に、シフタから複数のレジスタに、
長さレジスタ内に指定されたビット長を有し、ビット・ポインタによって指定さ
れた位置に格納されているビット・フィールドを保管する(deposit)よ
うに構成してもよい。ビット・ポインタは、汎用レジスタ内に格納されている連
続ビット・ストリーム内の現ビット位置を追跡するように構成してもよい。算術
論理ユニットは、ポインタ・レジスタを前述の長さだけ更新するように構成して
もよい。算術論理ユニットは、ビット・ポインタに指定の長さを追加し、ポイン
タ・レジスタに加算のモジュロ64を戻すようにして指定の長さだけポインタ・
レジスタを更新してもよい。あるいは、算術論理ユニットは、レジスタのビット
容量が32ビットである場合、加算のモジュロ32に等しい数をポインタ・レジ
スタに戻してもよい。
【0012】 好ましくは、ビット転送機構は、条件付きで複数のレジスタからディジタル信
号プロセッサのメモリにデータをロードするように構成してもよい。ビット転送
機構は、更新したポインタが、更新前のポインタのビット番号よりも小さいビッ
ト番号を指し示す場合、条件付きロードを永続的とすることができる。
【0013】 これらのディジタル信号プロセッサは、ビット指向設計とした計算ブロックを
有し、可変ビット長のオペランドおよび命令を効率的に操作することができる。
計算ブロックは、ワードの境界を横切ってワードの抽出および保管を行い、ワー
ド・グループの位置を合わせ直すことができる。例えば、ディジタル信号プロセ
ッサは、32ビット・レジスタを用いて、共通に用いられている16ビットまた
は32ビット・フォーマット以外の任意のワード長を有するデータを効率的に処
理する。本プロセッサは、例えば、標準的なプロセッサが頻繁に行なうように、
18ビット・ワードを32ビットに拡張し、14ビットの格納領域を無駄にする
ことによって、18ビット・ワードを32ビット・レジスタに格納する必要はな
いという利点がある。任意長のビット・フィールドを転送可能なことに加えて、
本発明は、例えば、ハフマン・コーディングに用いられるビット・フィールドの
効率的なパックおよびアンパックを可能にする。 (好適な実施形態の説明) 一般に、ディジタル信号プロセッサ(DSP)は、主な計算およびデータ処理
機能を実行するコア・プロセッサを含む。以下で特定して説明するが、コア・プ
ロセッサは、新規の設計の少なくとも1つの計算ブロックを含む。計算ブロック
は、数個の計算ユニットを含み、複数のレジスタ内にビット・フォーマットでデ
ータの連続ビット・ストリーム(即ち、命令またはオペランド)を格納すること
ができる。計算ブロックは、単一サイクルで、連続ビット・ストリームからビッ
ト・フィールドを抽出したり、あるいは連続ビット・ストリームにビット・フィ
ールドを保管することによって、任意のビット長のビット・フィールドを操作す
ることができる。この操作は、プロセッサに供給されるデータまたはプロセッサ
によって処理されるデータのワード境界には無関係に実行される。
【0014】 図1を参照すると、DSP10は、計算ブロック12および14、メモリ20
、制御ブロック30、リンク・ポート・バッファ40、外部ポート45ならびに
、D−RAMコントローラ50を含む。DSP10は、1組の計算ブロック12
、14、メモリ20、制御ブロック30、リンク・ポート・バッファ40、外部
ポート45およびD−RAMコントローラ50を含む。また、DSP10は、命
令整合レジスタおよび一次命令デコーダ(図1には示されていない)も含む。計
算ブロック、命令整合バッファ、一次命令デコーダ、および制御ブロックは、主
な計算およびデータ処理機能を実行するコア・プロセッサを構成する。メモリ2
0は、例えば、3つの独立した2Mビット・メモリ・バンク22、24および2
6(メモリ・ブロック0、1および2として示す)を含む。各メモリ・バンクは
、32ビット長のワード64K分の容量を有する。各メモリ・バンクは、128
ビット幅のデータ・バスおよび16ビット幅のアドレス・バスに接続されている
。単一のクロック・サイクル内において、各々32ビットを有する、連続的に整
合されたデータ・ワードを4つまで、各メモリ・バンクに、そして各メモリ・バ
ンクから転送することができる。
【0015】 制御ブロック30は、プログラム・シーケンサ32、第1整数ALU34(J
ALU)、第2整数ALU36(KALU)、第1DMAアドレス発生器38、
および第2DMAアドレス発生器39を含む。一般に、ALU36およびALU
36は、整数ALU命令を実行し、データ・アドレスを発生し、アドレス・バス
上でデータ・アドレスをメモリに供給する。プログラム・シーケンサ32は、ア
ドレス・バス上に命令アドレスを供給し、アクセスされた命令を命令整合バッフ
ァ(図示せず)に供給する。
【0016】 DSP10は、アドレスを供給する数系統のアドレス・バス、およびデータを
供給するデータ・バスを含む。第1アドレス・バス60(MA0)は、メモリ・
バンク22(M0)および制御ブロック30を相互接続する。第2アドレス・バ
ス62(MA1)、および第2アドレス・バス64(MA2)は、それぞれ、メ
モリ・バンク24(M1)、26(M2)を制御ブロック30と相互接続する。
アドレス・バスの各々は、好ましくは、16ビット幅であり、二進情報の並列転
送のために多数のラインを含む。32ビット幅の外部アドレス・バス66(MA
E)が、制御ブロック30を外部ポート45と相互接続する。外部ポート45は
、外部アドレス・バス47に接続されている。外部アドレス・バス47は、32
ビット幅であることが好ましい。
【0017】 DPS10は、例えば、3系統の128ビット幅のデータ・バスを含む。第1
データ・バス68(MD0)は、計算ブロック12および14、メモリ・バンク
22、制御ブロック30、リンクポート・バッファ40、命令整合バッファ(図
示せず)ならびに外部ポート45を相互接続する。同様に、第2データ・バス7
0(MD1)および第3データ・バス72(MD2)は、計算ブロック12およ
び14、各メモリ・バンク24および26、制御ブロック30、リンク・ポート
・バッファ40、命令整合バッファ(図示せず)、ならびに外部ポート45を相
互接続する。外部ポート45は、外部データ・バス49に接続されている。外部
データ・バス49は、64ビット幅であることが好ましい。このように、DSP
10は、外部ポート45、データ・バス68、70および72、ならびにアドレ
ス・バス66を用いて、ホストまたは外部メモリと通信する。また、DSP10
は、数個のシリアル・ポート(図示せず)およびリンク・ポート・バッファ40
に接続されている1つ以上のリンク・ポート42を用いて通信することも可能で
ある。これは、例えば、米国特許第5,619,720号に詳細に記載されてい
る。
【0018】 DSP10は、最適なデータ処理を求めて設計されている。「データ」とは二
進ワードのことであり、DSP10の動作に関連する命令またはオペランドのい
ずれかを表すことができる。メモリ・バンク40、42および44の各々は別個
のバスを有するので、これらに同時にアクセスすることもできる。典型的な動作
モードでは、プログラム命令をメモリ・バンクの1つに格納し、オペランドを他
の2つのメモリ・バンクに格納する。このように、単一クロック・サイクルにお
いて、少なくとも1つの命令および2つのオペランドを計算ブロック12および
14に供給することができる。メモリ・バンク22、24および26の各々は、
単一のクロック・サイクルで多数のデータ・ワードの読み取りおよび書き込みが
可能となるように構成されている。多数のデータ・ワードの各メモリ・バンクか
ら計算ブロック12または14への単一クロック・サイクルでの同時転送は、命
令キャッシュやデータ・キャッシュを必要せずに、達成される。
【0019】 制御ブロック30は、整数ALU34および36を含み、これらは異なる時点
で整数ALU命令を実行し、データ・アドレスを発生する。プログラムの実行中
、プログラム・シーケンサ32は、命令シーケンスの位置に応じて、アドレス・
バス(60、62または64)の1つに、命令アドレス・シーケンスを供給する
。典型的に、メモリ・バンクの1つ(22、24または26)は、命令シーケン
スの格納に用いられる。加えて、整数ALU(34および36)の各々は、命令
が要求するオペランドの位置に応じて、アドレス・バスの1つ(60、62また
は64)にデータ・アドレスを供給する。例えば、命令シーケンスをメモリ・バ
ンク22に格納し、オペランドをメモリ・バンク24および26に格納する場合
、プログラム・シーケンサ32は命令アドレスをアドレス・バス60上に供給し
、アクセスした命令を命令整合バッファ(図示せず)に供給する。
【0020】 整数ALU34および36は、アドレス・バス62および64にそれぞれオペ
ランドのアドレスを出力することができる。整数ALU34および36が発生す
るアドレスに応答して、メモリ・バンク24および26は、それぞれ、データ・
バス70および72上で、計算ブロック12および14の一方または双方にオペ
ランドを供給する。メモリ・バンク22、24および26は、命令およびオペラ
ンドの格納に関しては相互交換可能である。プロセッサは、パイプライン・アー
キテクチャを有し、メモリ20への高速アクセスを可能とし、DSP10のユニ
ットは非パイプライン・アーキテクチャの2倍の速さで動作することができる。
【0021】 図2を参照すると、各計算ブロック12または14は、レジスタ・ファイル8
0、乗算器/アキュミュレータ90、算術論理ユニット(ALU)92、および
シフタ94を含む。レジスタ・ファイル80は、多数のポートを含み、オペラン
ドおよび結果を一時的に格納する。好適な実施形態では、レジスタ・ファイル8
0は、各々32ビットを有するワード32個分の容量を有し、各々128ビット
の列8本で編成されている。レジスタ・ファイル80は、標準的な方法で、マル
チプレクサおよびラッチ(図示せず)を介して、データ・バス68、70および
72(図1に示す)の各々に接続されている。前述のように、メモリ20からオ
ペランドをフェッチする際、3系統のデータ・バスの内2つがオペランドをレジ
スタ・ファイル80に、バス82(iob0)およびバス84(iob1)を通
じて供給する。これらのバスは、各々、128ビット幅である。(別の実施形態
では、レジスタ・ファイルは異なる容量を有してもよく、更にバスは異なる幅を
有してもよい。これらは全て、本発明の範囲内のことである) 当技術分野では公知であるが、レジスタ・ファイル80からメモリ20に(ま
たは外部メモリに)データを書き込む場合、バス82および84ならびにデータ
・バス68、70および72(図1に示す)に接続されているマルチプレクサお
よびラッチ(図示せず)にデータを供給する。マルチプレクサおよびラッチは、
メモリに書き込む場合データ・バス68、70および72を選択し、命令制御の
下で各バス内においてワードの選択を可能にする。マルチプレクサおよびラッチ
は、二次命令デコーダ(図示せず)によって制御される。二次命令デコーダは、
レジスタ・ファイル80をアドレスし、マルチプレクサおよびラッチ、乗算器/
アキュミュレータ90、ALU92またはシフタ94に制御信号を供給するため
に用いられる。各計算ブロック12または14は、同じクロック・サイクルで3
つまでの命令を実行することができる。この場合、これらの命令は乗算器/アキ
ュミュレータ90、ALU92またはシフタ94によって実行される。
【0022】 単一ワードの転送では、マルチプレクサおよびラッチは、アクセスされたデー
タ・ワードを選択してもしなくてもよい。二重ワードの転送では、マルチプレク
サおよびラッチは、データ・ワードのいずれかまたは双方を選択する。四重ワー
ドの転送では、マルチプレクサおよびラッチは、二重データ・ワードの異なる組
み合わせを選択するか、あるいは四重データ・ワード全体を選択する。単一、二
重、または四重データ・ワードは、単一クロック・サイクルで、計算ブロック1
2に、計算ブロック14に、または双方に転送することができる。クロック・サ
イクル毎に多数の命令にアクセスすることができるため、サイクル毎に多数の動
作を実行し、これによってプロセッサの処理能力を高めることができる。計算ブ
ロック12および14によって要求されるよりも速くオペランドを供給すること
ができる場合、メモリ・サイクルに空きができる。これらのメモリ・サイクルは
、DMAアドレス発生器38および39が使用して、新たなデータをメモリ・バ
ンク22、24および26に供給することができ、コア・プロセッサからサイク
ルを盗むことはない。最後に、多数のデータ・ワードにアクセスすることができ
るため、2つ以上の計算ブロックを利用し、これらにオペランドを供給し続ける
ことが可能となる。
【0023】 再度図2を参照すると、乗算器/アキュミュレータ90、ALU92およびシ
フタ94は、十分な命令およびオペランドを計算ブロックに供給できる範囲で、
同時に命令を実行することができる。4系統の64幅のオペランド・バス(ob
0)、(ob1)、(ob2)および(ob3)が、レジスタ・ファイル80か
ら乗算器/アキュミュレータ90、ALU92およびシフタ94にオペランドを
供給する。3系統の64ビット幅の結果バスrm、raおよびrsも、乗算器/
アキュミュレータ90、ALU92およびシフタ94に接続されており、結果を
レジスタ・ファイル80に返送する。更に、結果バスは計算ユニットの各々にも
接続されているので、各計算ユニットは直接オペランドを得ることができる。一
次命令デコーダは、命令を二次命令デコーダ(図示せず)に供給し、二次命令デ
コーダがこれらの命令をデコードする。
【0024】 図2に示すように、バイパス・バス96、97および98がオペランド・バス
を結果バスに接続する。バイパス・バス96、97および98は、計算速度を高
めるように設計されている。レジスタ・ファイル80またはメモリ・アクセスか
らのオペランドは、前述のように、計算ユニットのために使用可能である。更に
、バイパス・バス96、97および98は、一方の計算ユニットから他方に直接
オペランドを供給するのであり、最初にオペランドをレジスタ・ファイル80に
書き込み、次いでこれをレジスタ・ファイル80から宛先の計算ユニットに供給
するのではない。
【0025】 図3は、計算ブロック12または14において用いられる命令フォーマットを
示す。命令は32ビット長(あるいは、64ビット長またはその他)であり、以
下のフィールド、EX、CC、10、XY、CU、TYPE、Opcode/R
a、Rs、RmおよびRnを有する。EXビットは、プロセッサが1サイクルに
1つの命令を実行するのか、または数個の命令を実行するのかを指定する。EX
ビットが論理1に等しい場合、命令はライン内の最後の命令である。EXビット
が論理0に等しい場合、当該命令に続いて、同じライン内に別の命令がある。C
Cビットは条件付き命令を識別する。CCビットが論理1に等しい場合、命令ラ
イン全体が条件付きであり、別の命令によって先に成立している条件が真と評価
した場合にのみ実行する。XYフィールドは、計算ブロックX(即ち図1におけ
るブロック12)、計算ブロックY(即ち、図1におけるブロック14)、また
は双方のどこで命令を実行するのかを指定する。フィールドXYが01に等しい
場合、計算ブロックXが命令を実行する。フィールドXYが10に等しい場合、
計算ブロックYが命令を実行し、フィールドXYが11に等しい場合、双方の計
算ブロックが命令を実行する。CUフィールドは、命令を実行する特定の計算ユ
ニット(即ち、ALU、乗算器、またはシフタ)を指定する。TYPEおよびO
pcode/Raフィールドの組み合わせによって、計算ブロック12および1
4によって実行される動作を指定する。RmおよびRnフィールドは、レジスタ
・アドレスをオペランドに供給し、Rsフィールドは、以下で説明するように、
指定レジスタ・アドレスを供給する。
【0026】 連続ビットFIFOは、図4の実施形態において説明するように、レジスタ・
ファイル80内に位置する1組の汎用レジスタを用いることによって、または図
4Aの実施形態において説明するように、1組の指定FIFOレジスタを用いる
ことによって、可変ビット長のワードを抽出および保管する。
【0027】 図4を参照すると、現時点における好適な実施形態では、レジスタ・ファイル
80は、命令およびオペランドを連続ビット・ストリームとして格納する4つの
汎用レジスタ(R4、R5、R6およびR7)、ならびに制御情報を格納する2
つのレジスタ(R16およびR17)を含む。以下で説明するように、これらの
レジスタは、連続ビットFIFOを簡便化するように構成されており、抽出され
たビット・フィールドまたは保管されたビット・フィールドは、ワードの境界を
交差してもよい。レジスタR4ないしR7は、連続ビット・ストリームがレジス
タ・ファイル80に保管される際、またはレジスタ・ファイル80から抽出され
る際に、これを格納する。レジスタR16およびR17は、ビットFIFOポイ
ンタ(BFP)および長さの値をそれぞれ格納する。連続ビットFIFOは、次
の3つの命令、GETBITS、PUTBITSおよびBFOINCを用いる。
GETBITSおよびPUTBITS命令は、シフタの命令であり、それぞれ、
レジスタ・ファイル80から入力データを抽出し、シフタ動作の結果をレジスタ
・ファイル80に返送する。BFOINC命令は、ALU命令であり、ALU9
2にビットFIFOへのBFPを増分するように命令する。これについては、図
7を参照しながら説明する。
【0028】 図5は、GETBITS命令の実行中に用いられる個々のレジスタを示す。G
ETBITS命令を実行する際、シフタ94は、レジスタ・ファイル80内に位
置するレジスタR4、R5、R6およびR7に格納されている任意長のビット・
フィールドを抽出し、抽出したビット・フィールドを、シフタ94内に位置する
レジスタR0に保管する。次いで、シフタ94は、レジスタR0内に配されてい
るビット上で動作する。抽出したビット・フィールドの長さ(len)を、レジ
スタR16に、BFPをレジスタR17に供給する。GETBITS命令は、以
下のフォーマットを有する。
【0029】
【数1】 Rsd=GETBITS Rnq BY Rmd(SE) この命令において、Rsdは指定されたシフト・レジスタであり、Rnqは連
続ビット・ストリームを含む汎用レジスタを指定し、Rmdは長さおよび現BF
Pを含む制御情報レジスタを指定する。前述の命令フォーマットでは、オペラン
ドを有するレジスタは、文字「R」、およびそれに続く、3つのレジスタを区別
する小文字「s、mまたはn」によって示されている。通常、「s」は結果を示
し、「n」および「m」はソース・オペランドを示す。3番目の文字は、レジス
タが四重レジスタ(例えば、RnqがレジスタR7:4に用いられる)か、また
は二重レジスタ(例えば、RmdがレジスタR16:17に用いられる)かを指
定する。3番目の文字がない場合、単一のレジスタ(例えば、レジスタR5に対
するRn)を示す。SEは符号用拡張部であり、当技術分野では公知である。
【0030】 図5に示すように、GETBITS命令の実行時に、以下でBFOINC命令
に関して説明するように、BFPは長さの値だけ左に進み、またはビット63を
超えた場合元に戻る。SEオペランドがセットされている場合、宛先レジスタ対
(Rsd)内の保存フィールドの左側のビットが、保存フィールドの最上位ビッ
トに等しくセットされる。それ以外では、レジスタRsd内の当初のビットは影
響を受けない。ビットFIFOへのデータの一定の流入を維持するために、メモ
リ・バンク22、24または26(図1)からのデータを条件付きでレジスタR
5:4にロードする。更新されたBFPが63未満である場合、データをロード
しない。更新されたBFPが63よりも大きい場合、条件付きでロードしたデー
タを永続的とする。GETBITS命令は、以下のアセンブリ・コード・シーケ
ンスによって実行することができる。
【0031】
【表1】 XR1:0 hold extracted bit field XR17: holds control information XR1:0 = GETBITS R7:4 BY R17:16;; /*extract field */ XR17 = BFOINC R17:16;; /*advance BFP*/ /*When BFP>63, move upper FIFO word into lower word, nd load nex
t quad word: */ if ALT; do XR5:4 = XR7:6; do XR7:6 = L[j0+=2];; このコード・シーケンスでは、「XR」は計算ブロックX(即ち、図1におけ
る計算ブロック12)内のレジスタを示す。最後の条件付き命令では、ALTが
0未満の場合、両命令を実行する。「L[j0+=2]」は、メモリからレジス
タ対R7:6にデータをロードする。
【0032】 図4および図6を参照すると、1つまたは数個のシフタ動作を実行した後、シ
フタ94はPUTBITS命令を実行することができる。PUTBITS命令を
実行する際、シフタ94はレジスタR6において指定されている長さ(len)
のビット・フィールドを、レジスタR5:4からレジスタR1:0に保管する。
これらのレジスタは全てレジスタ・フィールド80内に位置する。保管されたビ
ット・フィールドは、BFPによって指定された位置において右詰めで置かれる
。その位置はレジスタR7に格納されている。PUTBITS命令は以下のフォ
ーマットを有する。
【0033】
【数2】 Rsd+=PUTBITS Rnd BY Rmd ここで、Rsdは、ビット・フィールドを保管する汎用レジスタを指定し、Rn
qは、ビット・フィールドを有するシフト・レジスタを指定し、Rmdは制御情
報を有するレジスタ、即ち、現BFPを指定する。
【0034】 シフタ94がPUTBITS命令を実行する際、レジスタ対Rndの内容全体
を、RsdおよびBFOTMPで形成される四重レジスタ内に置く。BFOTM
Pレジスタは、シフタ94の内部レジスタであり、PUTBITS命令を実行す
るときに、オーバーフロー・ビットを一時的に格納するために用いられる。挿入
データを置く際、レジスタ対Rmd内のBFPが位置するフィールドによって指
し示されるビットを始点とする。通常、挿入ビット・フィールドは64ビット未
満である。対象のフィールドは、レジスタRnd内に右詰めで入力され、対象フ
ィールドの左側にある残りのビットは無関係であり、後に上書きされる。(例示
のために、図6では、レジスタ対Rndは、ビット・フィールド85おyび86
を収容するレジスタR5:4として示されている。ビット・フィールド85は長
さ「Len」を有する。ビット・フィールド85および86は、レジスタR0、
R1に置かれ、BFOTMPは右揃えとなる。ビット・フィールド85はレジス
タR1:0内に得られる空間よりも長いので、ビット・フィールド85Aは溢れ
、一時的にBFOTMPレジスタに格納される。) ALU92は、以下で説明するように、BFPを更新し、BFPがビット63
を超えて溢れた場合、フラグ「AN」をセットする。BFPがビット63を超え
て溢れた場合、Rsdの内容をレジスタ・ファイル80からメモリに移動し、B
FOTMPレジスタの内容をRsdに移動する。ビットFIFO挿入は、以下の
アセンブリ・コード・シーケンスによって実現することができる。
【0035】
【表2】 XR5:4 hold field to be inserted XR7:6 hold control information XR1:0 = PUTBITS R5:4 BY R7:6;; /* insert field */ XR7 = BFOINC R7:6;; /* advance BFP */ if ALT; do L[j0+=2] = XR1:0;; /* when BFP.63, store assembled field to
mem */ if ALT; do XR1:0 = BFOTMP;; /* when BFP>63, move BFOTMP to XR1:0 */ 図4および図7を参照すると、BFOINC命令は、GETBITSおよびP
UTBITS命令を実行した後、BFPを更新する。ステップ108において、
ALU92は、レジスタ104および106内の2つのオペランドの各々の下位
側7ビットを加算し、その結果を64で除算し(モジュロ演算110)、残余を
第2オペランドの下位6ビットに戻す。結果はレジスタ112内に置かれ、加算
によってビット63を超えた場合ANステータス・フラグがセットされる。BF
OINC命令は以下のフォーマットを有する。
【0036】
【数3】 Rs = BFOINC Rmd ここで、レジスタRmd(104および106)は長さおよびBFP値を保持し
、レジスタRs(112)は結果を受け取る。
【0037】 即ち、GETBITS命令の一部としてBFOINC命令を実行する際、AL
U92は、BFPを保持するレジスタR17、および長さを保持するレジスタR
16からオペランドを受け取り、BFP値をレジスタR17に戻す。
【0038】 図4Aを参照すると、別の実施形態では、シフタ94は4つの指定計算レジス
タ(S3:0)120を含み、制御情報を格納するレジスタ122、124およ
び126を含む。レジスタ122はBFP値を格納し、レジスタ124は長さ値
を格納し、レジスタ126は、シフタ94がGETBITSまたはPUTBIT
S命令を実行した後、無日付(undated)BFP値を格納する。レジスタ
・ファイル80は、Rm値を格納するレジスタ130、およびレジスタS3:0
から抽出したビットを格納するレジスタ132を含む。S3:0レジスタは、連
続ビット・ストリームを格納するために用いられる。条件付きロードがメモリお
よびレジスタ・ファイル80間で、図4に示したのと同様に行われる。GETB
ITS命令を実行する際、転送されるビット・フィールドはレジスタ130から
ロードされ、自動的にレジスタ120に格納される。PUTBITS命令を実行
する際、転送されるビット・フィールドは自動的にレジスタ130に格納される
【0039】 図4Aの実施形態と図4の実施形態との間の主な相違は、BFPを更新する方
法にある。図4に示す実施形態では、BFPはALU92によって更新され、一
方図4Aに示す実施形態では、BFPはシフタ94によって更新される。シフタ
におけるBFPの更新は、命令GETBITSおよびPUTBITS自体によっ
て指定され、別個のALU命令(図4)によるのではない。しかしながら、双方
の場合において、BFP(レジスタ122)の値がビット・フィールド長(レジ
スタ124)に加算され、次いでモジュロ演算において結果を64で除算する。
モジュロ演算の結果が64を超過した場合、図4Aに示すように、シフタは自動
的にデータをロードし、これらを適切なレジスタに格納する。
【0040】 パックされたストリーム(即ち、GETBITS命令)からビット・フィール
ドを抽出した後、抽出したビットは種々の演算に用いられる。ハフマン・デコー
ドでは、各ビット・フィールドは情報シンボルにマップされる。n<32ビット
のビット・フィールドを抽出した場合、このフィールドは32ビット・レジスタ
に置かれるが、このレジスタ内の下位nビットのみが有用なコーディング情報と
なる。次いで、このレジスタは、情報シンボルを保持するテーブルに対するポイ
ンタとして用いられる。パックされたストリームに挿入するフィールドを発生す
るには、逆の動作シーケンスを用いる(PUTBITS命令を用いる)。ここで
は、参照テーブルを用いて、情報シンボルを32ビット・ワードに変換する。こ
の32ビット・ワードが有する有効な情報ビットはnだけであり、PUTBIT
S情報への入力として用いられ、有効なn情報ビットのみを出力ストリームにパ
ックする。
【0041】 前述のディジタル信号プロセッサは、16ビットや32ビット・フォーマット
以外でデータを書き込む、高品位テレビジョン(HDTV)において見られるデ
ータ・フォーマットを処理する際に用いられる。あるいは、本プロセッサは、ワ
イヤレス電気通信システム、交換システム、およびコンピュータ・ネットワーク
および計算機を接続するリモート・アクセス・サーバを含むネットワーク状シス
テムにも用いられる。また、本プロセッサは、レーダや医療用撮像のためのグラ
フィックス・システム、あるいは16ビットや32ビット・フォーマット以外で
書き込まれたデータを使用するその他の用途にも用いられる。本プロセッサは、
例えば、標準的なプロセッサが頻繁に行なうように、18ビット・ワードを32
ビットに拡張し、14ビットの格納領域を無駄にすることによって、18ビット
・ワードを32ビット・レジスタに格納する必要はないという利点がある。
【0042】 以上、本発明の代表的な実施形態について説明したが、種々の変形、変更およ
び改良も当業者には容易に想起されよう。かかる変形、変更および改良は、本発
明の精神および範囲に該当するものと見なす。したがって、前述の説明は一例に
過ぎず、限定として意図した訳ではない。本発明は、特許請求の範囲およびその
均等物における規定の通りにのみ限定されることとする。
【図面の簡単な説明】
【図1】 ディジタル信号プロセッサのブロック図である。
【図2】 図1に示す2つの計算ブロックの一方のブロック図である。
【図3】 計算ブロックによって用いられる命令フォーマットを示す図である。
【図4】 図4は、連続ビットFIFOによって用いられるレジスタ・ファイルを示す計
算ブロックのブロック図である。 図4Aは、連続ビットFIFOの代替実施形態のブロック図である。
【図5】 GETBITS命令を実行する際のレジスタ間のデータ・フローを示す図であ
る。
【図6】 PUTBITS命令を実行する際のレジスタ間のデータ・フローを示す図であ
る。
【図7】 BFOINC命令を実行する際のデータ・フローを示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ザッツマン,アレクセイ アメリカ合衆国マサチューセッツ州02460, ニュートン,カボット・ストリート 328 (72)発明者 レゼロヴィッツ,アーヤー イスラエル国69345 ラマト・アジズ,ダ ニエル・モリヅ・ストリート 24 (72)発明者 グリーンフィールド,ズビ イスラエル国44471 クファー・サヴァ, リヴカ・グーバー・ストリート 5 (72)発明者 レビン,デビッド・アール アメリカ合衆国マサチューセッツ州02420, レキシントン,ヨーク・ストリート 27 (72)発明者 フライドマン,ホセ アメリカ合衆国マサチューセッツ州02446, ブルックリン,センター・ストリート 70,ナンバー5イー Fターム(参考) 5B033 AA03 AA05 BD00 DC01 DC08

Claims (36)

    【特許請求の範囲】
  1. 【請求項1】 指定された長さのビット・フィールドを連続ビット・ストリ
    ームから転送する方法であって、 算術論理ユニット、乗算器、シフタ、およびレジスタ・ファイルを含む計算ブ
    ロックを用意するステップと、 複数のレジスタにビット・フォーマットで格納されている命令またはオペラン
    ドの連続ビット・ストリームを供給するステップと、 前記複数のレジスタおよび前記シフタ間で、任意のビット長のビット・フィー
    ルドの転送を単一サイクルで行うステップと、 から成る方法。
  2. 【請求項2】 請求項1記載の方法において、前記連続ビット・ストリーム
    を供給するステップは、前記レジスタ・ファイル内に位置する汎用レジスタに、
    前記命令またはオペランドの連続ビット・ストリームを格納するステップを含む
    方法。
  3. 【請求項3】 請求項2記載の方法において、前記転送を行うステップは、
    前記レジスタ・ファイル内に位置するポインタ・レジスタに格納されているビッ
    ト・ポインタによって、前記複数のレジスタの現ビット位置を追跡するステップ
    を含む方法。
  4. 【請求項4】 請求項2記載の方法において、前記転送を行うステップは、
    制御情報にしたがって、前記汎用レジスタの指定位置から前記ビット・フィール
    ドを抽出し、前記抽出したビット・フィールドを前記シフタ内に格納するステッ
    プを含む方法。
  5. 【請求項5】 請求項3記載の方法において、前記転送を行うステップは、 前記レジスタ・ファイル内に位置する長さレジスタにおいて指定された前記ビ
    ット長を有し、かつ前記ビット・ポインタによって指定された前記汎用レジスタ
    内の位置にある前記ビット・フィールドを抽出するステップと、 前記抽出したビット・フィールドを前記シフタに格納するステップと、 を含む方法。
  6. 【請求項6】 請求項5記載の方法において、前記抽出するステップは、前
    記指定された長さだけ前記ポインタ・レジスタを更新するステップを含む方法。
  7. 【請求項7】 請求項6記載の方法において、前記更新するステップは、前
    記算術論理ユニット内に指定された前記長さを前記ビット・ポインタに加算し、
    前記加算のモジュロ64である値を有する前記ビット・ポインタを前記ポインタ
    ・レジスタに戻すステップを含む方法。
  8. 【請求項8】 請求項7記載の方法であって、更に、デジタル信号プロセッ
    サのメモリから前記複数のレジスタに、条件付きでデータをロードするステップ
    を含む方法。
  9. 【請求項9】 請求項8記載の方法において、前記条件付きロードは、前記
    加算が63よりも大きい場合、永続的とする方法。
  10. 【請求項10】 請求項1記載の方法において、前記転送を行うステップは
    、制御情報にしたがって前記ビット・フィールドを、前記シフタから前記複数の
    レジスタの指定位置に保管するステップを含み、前記複数のレジスタは、前記レ
    ジスタ・ファイル内に位置する汎用レジスタである方法。
  11. 【請求項11】 請求項1記載の方法において、前記複数のレジスタは、前
    記レジスタ・ファイル内に位置する汎用レジスタであり、前記転送を行うステッ
    プは、前記シフタから前記複数のレジスタに前記ビット・フィールドを保管し、
    前記保管したビット・フィールドを前記複数のレジスタに格納するステップを含
    み、前記ビット・フィールドは、前記レジスタ・ファイル内に位置する長さレジ
    スタによって指定されたビット長を有し、前記レジスタ・ファイル内に位置する
    ビット・ポインタの位置に格納されている方法。
  12. 【請求項12】 請求項11記載の方法において、前記保管するステップは
    、前記ポインタ・レジスタを前記指定された長さだけ更新するステップを含む方
    法。
  13. 【請求項13】 請求項12記載の方法において、前記更新するステップは
    、前記算術論理ユニット内において指定された前記長さを前記ポインタに加算し
    、値mod64の前記ビット・ポインタを前記ポインタ・レジスタに戻すステッ
    プを含む方法。
  14. 【請求項14】 請求項13記載の方法であって、さらに、前記デジタル信
    号プロセッサのメモリに前記複数のレジスタからデータを条件付きでロードする
    ステップを含む方法。
  15. 【請求項15】 請求項14記載の方法において、前記条件付きロードは、
    前記更新したビット・ポインタが63未満である場合永続的とする方法。
  16. 【請求項16】 デジタル信号プロセッサにおいて用いる計算ブロックであ
    って、 算術論理ユニット、乗算器、シフタ、およびレジスタ・ファイルと、 ビット・フォーマットの命令およびオペランドを連続ビット・ストリームとし
    て格納するように構成されている複数のレジスタと、 任意のビット長のビット・サイクルを前記複数のレジスタと前記シフタとの間
    において単一サイクルで転送するように構成され配列されているビット転送機構
    と、 から成る計算ブロック。
  17. 【請求項17】 請求項16記載の計算ブロックにおいて、前記複数のレジ
    スタは、前記レジスタ・ファイル内に位置する汎用レジスタである計算ブロック
  18. 【請求項18】 請求項17記載の計算ブロックにおいて、前記レジスタ・
    ファイルは、さらに、前記ビット転送機構が使用する制御情報を格納するように
    構成された少なくとも1つの制御情報レジスタを含み、前記ビット転送機構は、
    更に、前記制御情報にしたがって指定された長さのビット・フィールドを、前記
    複数のレジスタに保持されている連続ビット・ストリームから抽出し、前記抽出
    したビット・ストリームを前記シフタに格納するように構成されている計算ブロ
    ック。
  19. 【請求項19】 請求項17記載の計算ブロックにおいて、 前記レジスタ・ファイルは、更に、ビット・ポインタを格納するように構成さ
    れているポインタ・レジスタと、ビット長を格納するように構成されている長さ
    レジスタを含み、 前記ビット転送機構は、更に、前記長さレジスタ内に指定されたビット長を有
    し、前記ビット・ポインタによって指定された位置にある前記ビット・フィール
    ドを前記複数のレジスタから抽出し、前記抽出したビット・フィールドを前記シ
    フタに格納するように構成されている、 計算ブロック。
  20. 【請求項20】 請求項19記載の計算ブロックにおいて、前記ビット・ポ
    インタは、前記複数のレジスタに格納されている前記連続ビット・ストリームに
    おける現ビット位置を追跡するように構成されている計算ブロック。
  21. 【請求項21】 請求項20記載の計算ブロックにおいて、前記算術論理ユ
    ニットは、前記長さレジスタにおいて指定された前記ビット長だけ前記ビット・
    ポインタを更新するように構成されている計算ブロック。
  22. 【請求項22】 請求項21記載の計算ブロックにおいて、前記算術論理ユ
    ニットは、前記ビット・ポインタに前記指定された長さを加算し、前記複数のレ
    ジスタの容量の半分に等しい数のモジュロを戻すことによって、前記ビット・ポ
    インタを前記指定された長さだけ更新する計算ブロック。
  23. 【請求項23】 請求項22記載の計算ブロックにおいて、前記デジタル信
    号プロセッサはメモリを含み、前記ビット転送機構は、更に、前記メモリから前
    記複数のレジスタに条件付きでデータをロードするように構成されている計算ブ
    ロック。
  24. 【請求項24】 請求項22記載の計算ブロックにおいて、前記ビット転送
    機構は、前記更新されたポインタが前記レジスタの選択ビット容量を越えて増分
    された場合、前記条件付きロードを永続的とするように構成されている計算ブロ
    ック。
  25. 【請求項25】 請求項17記載の計算ブロックにおいて、 前記レジスタ・ファイルは、更に、ビット・ポインタを格納するように構成さ
    れているポインタ・レジスタと、ビット長を格納するように構成されている長さ
    レジスタとを含み、 前記ビット転送機構は、更に、前記シフタから、前記ポインタによって指定さ
    れた前記複数のレジスタの位置にビット・フィールドを保管するように構成され
    ている計算ブロック。
  26. 【請求項26】 請求項25記載の計算ブロックにおいて、前記ビット・ポ
    インタは、前記汎用レジスタに格納されている前記連続ビット・ストリーム内の
    現ビット位置を追跡するように構成されている計算ブロック。
  27. 【請求項27】 請求項26記載の計算ブロックにおいて、前記算術論理ユ
    ニットは、前記ポインタ・レジスタを前記ビット長だけ更新するように構成され
    ている計算ブロック。
  28. 【請求項28】 請求項27記載の計算ブロックにおいて、前記算術論理ユ
    ニットは、前記ビット・ポインタに前記ビット長を加算し、前記ポイント・レジ
    スタに前記加算のモジュロ64を戻すことによって、前記ポインタ・レジスタを
    前記指定された長さだけ更新するように構成されている計算ブロック。
  29. 【請求項29】 請求項28記載の計算ブロックにおいて、前記デジタル信
    号プロセッサはメモリを含み、前記ビット転送機構は前記複数のレジスタから前
    記メモリに条件付きでデータをロードするように構成されている計算ブロック。
  30. 【請求項30】 請求項29記載の計算ブロックにおいて、前記ビット転送
    機構は、前記更新されたポインタが、前記ビット長だけ前記更新前の前記ポイン
    タのビット番号よりも小さいビット番号を指し示す場合、前記条件付きロードを
    永続的とするように構成されている計算ブロック。
  31. 【請求項31】 デジタル信号プロセッサであって、 算術論理ユニット、乗算器、シフタ、およびレジスタ・ファイルを含む計算ブ
    ロックと、 ビット・フォーマットで命令およびオペランドを連続ビット・ストリームとし
    て格納する複数のレジスタと、 任意長のビット・フィールドを前記複数のレジスタと前記シフタとの間で単一
    サイクルで転送する手段と、 から成るデジタル信号プロセッサ。
  32. 【請求項32】 請求項31記載のデジタル信号プロセッサにおいて、前記
    レジスタ・ファイルは、前記転送手段が用いる制御情報を格納する制御情報レジ
    スタ手段を含み、前記複数のレジスタは、前記レジスタ・ファイル内に位置する
    汎用レジスタであるデジタル信号プロセッサ。
  33. 【請求項33】 請求項32記載のデジタル信号プロセッサにおいて、前記
    ビット転送手段は、更に、前記制御情報にしたがって指定された長さのビット・
    フィールドを、前記複数のレジスタ内に保持されている前記連続ビット・ストリ
    ームから抽出する手段と、前記抽出したビット・フィールドを前記シフタに格納
    する手段とを含むデジタル信号プロセッサ。
  34. 【請求項34】 請求項33記載のデジタル信号プロセッサにおいて、前記
    抽出手段は、制御情報にしたがって指定された位置において、前記ビット・フィ
    ールドを抽出するように構成されているデジタル信号プロセッサ。
  35. 【請求項35】 請求項31記載のデジタル信号プロセッサにおいて、前記
    ビット転送手段は、更に、前記ビット・フィールドを、前記レジスタ・ファイル
    内に位置する前記複数のレジスタに保管する手段を含み、前記ビット・フィール
    ドは、前記レジスタ・ファイル内に位置する長さレジスタによって指定された前
    記ビット長を有し、前記ビット・フィールドは前記ビット・ポインタの位置に保
    管されるデジタル信号プロセッサ。
  36. 【請求項36】 請求項32記載のデジタル信号プロセッサにおいて、前記
    ビット転送手段は、更に、前記シフタから、制御情報にしたがって指定された前
    記複数のレジスタの場所に前記ビット・フィールドを保管する手段を含むデジタ
    ル信号プロセッサ。
JP2000581530A 1998-11-06 1999-10-29 ビットfifoを有するディジタル信号プロセッサ Expired - Fee Related JP4955149B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/187,479 1998-11-06
US09/187,479 US6332188B1 (en) 1998-11-06 1998-11-06 Digital signal processor with bit FIFO
PCT/US1999/025588 WO2000028411A2 (en) 1998-11-06 1999-10-29 Digital signal processor with bit fifo

Publications (2)

Publication Number Publication Date
JP2002529847A true JP2002529847A (ja) 2002-09-10
JP4955149B2 JP4955149B2 (ja) 2012-06-20

Family

ID=22689168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000581530A Expired - Fee Related JP4955149B2 (ja) 1998-11-06 1999-10-29 ビットfifoを有するディジタル信号プロセッサ

Country Status (6)

Country Link
US (1) US6332188B1 (ja)
EP (1) EP1137983B1 (ja)
JP (1) JP4955149B2 (ja)
DE (1) DE69908642T2 (ja)
DK (1) DK1137983T3 (ja)
WO (1) WO2000028411A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010522928A (ja) * 2007-03-26 2010-07-08 アナログ・デバイセズ・インコーポレイテッド 内部ビットfifo回路を有する演算ユニット

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100331565B1 (ko) * 1999-12-17 2002-04-06 윤종용 매트릭스 연산 장치 및 매트릭스 연산기능을 갖는 디지털신호처리 장치
US6707398B1 (en) * 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatuses for packing bitstreams
US6707397B1 (en) * 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatus for variable length codeword concatenation
DE10314928A1 (de) * 2003-04-02 2004-11-04 Infineon Technologies Ag Verfahren und programmgesteuerte Einheit zur Bitfeldverschiebung
US7334116B2 (en) 2004-10-06 2008-02-19 Sony Computer Entertainment Inc. Bit manipulation on data in a bitstream that is stored in a memory having an address boundary length
US8285972B2 (en) * 2005-10-26 2012-10-09 Analog Devices, Inc. Lookup table addressing system and method
US8024551B2 (en) * 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
US7877430B2 (en) * 2007-03-26 2011-01-25 Analog Devices, Inc. Method and apparatus for accelerating processing of adaptive finite impulse response filtering
US20090077273A1 (en) * 2007-09-18 2009-03-19 Barinder Singh Rai Control Data Transfer
US8301990B2 (en) 2007-09-27 2012-10-30 Analog Devices, Inc. Programmable compute unit with internal register and bit FIFO for executing Viterbi code
WO2013095576A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Processor-based apparatus and method for processing bit streams

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52155028A (en) * 1976-06-18 1977-12-23 Mitsubishi Electric Corp Conditional instruction control unit
JPS623333A (ja) * 1985-06-28 1987-01-09 Yokogawa Hewlett Packard Ltd ビツト群置数方式
JPH0588886A (ja) * 1991-09-26 1993-04-09 Toshiba Corp 5オペランド型シフト命令方式
JPH05313886A (ja) * 1992-05-14 1993-11-26 Nippon Telegr & Teleph Corp <Ntt> ディジタル信号処理プロセッサ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0363176B1 (en) * 1988-10-07 1996-02-14 International Business Machines Corporation Word organised data processors
US5657423A (en) * 1993-02-22 1997-08-12 Texas Instruments Incorporated Hardware filter circuit and address circuitry for MPEG encoded data
JP3532975B2 (ja) * 1993-09-27 2004-05-31 株式会社ルネサステクノロジ マイクロコンピュータおよびそれを用いて命令を実行する方法
US6026484A (en) * 1993-11-30 2000-02-15 Texas Instruments Incorporated Data processing apparatus, system and method for if, then, else operation using write priority
JP2932963B2 (ja) * 1994-01-21 1999-08-09 モトローラ・インコーポレイテッド 効率的なビット移動能力を有するデータ・プロセッサとその方法
JP3220598B2 (ja) * 1994-08-31 2001-10-22 三菱電機株式会社 可変長符号テーブルおよび可変長符号化装置
JP2870515B2 (ja) * 1996-12-27 1999-03-17 日本電気株式会社 可変長符号化装置
US6061780A (en) * 1997-01-24 2000-05-09 Texas Instruments Incorporated Execution unit chaining for single cycle extract instruction having one serial shift left and one serial shift right execution units
US5835793A (en) * 1997-05-02 1998-11-10 Texas Instruments Incorporated Device and method for extracting a bit field from a stream of data
US6263420B1 (en) * 1997-09-17 2001-07-17 Sony Corporation Digital signal processor particularly suited for decoding digital audio

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52155028A (en) * 1976-06-18 1977-12-23 Mitsubishi Electric Corp Conditional instruction control unit
JPS623333A (ja) * 1985-06-28 1987-01-09 Yokogawa Hewlett Packard Ltd ビツト群置数方式
JPH0588886A (ja) * 1991-09-26 1993-04-09 Toshiba Corp 5オペランド型シフト命令方式
JPH05313886A (ja) * 1992-05-14 1993-11-26 Nippon Telegr & Teleph Corp <Ntt> ディジタル信号処理プロセッサ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010522928A (ja) * 2007-03-26 2010-07-08 アナログ・デバイセズ・インコーポレイテッド 内部ビットfifo回路を有する演算ユニット

Also Published As

Publication number Publication date
WO2000028411A3 (en) 2000-08-10
WO2000028411A9 (en) 2002-08-22
DE69908642D1 (de) 2003-07-10
US6332188B1 (en) 2001-12-18
DE69908642T2 (de) 2004-04-29
JP4955149B2 (ja) 2012-06-20
EP1137983A2 (en) 2001-10-04
WO2000028411A2 (en) 2000-05-18
DK1137983T3 (da) 2003-09-29
EP1137983B1 (en) 2003-06-04

Similar Documents

Publication Publication Date Title
US5922066A (en) Multifunction data aligner in wide data width processor
US6665790B1 (en) Vector register file with arbitrary vector addressing
US6052766A (en) Pointer register indirectly addressing a second register in the processor core of a digital processor
US5864703A (en) Method for providing extended precision in SIMD vector arithmetic operations
US5996057A (en) Data processing system and method of permutation with replication within a vector register file
US7694109B2 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
US6334176B1 (en) Method and apparatus for generating an alignment control vector
JPH11154114A (ja) 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法
US7308559B2 (en) Digital signal processor with cascaded SIMD organization
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
EP2309382B1 (en) System with wide operand architecture and method
JP4955149B2 (ja) ビットfifoを有するディジタル信号プロセッサ
CN100380315C (zh) 提供多指令集和多译码模式的设备和方法
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
US20030221089A1 (en) Microprocessor data manipulation matrix module
US20080148018A1 (en) Shift Processing Unit
US20250130808A1 (en) Vector transformation in parallel with arithmetic operation
KR920002573B1 (ko) 데이타 처리기
US20030009652A1 (en) Data processing system and control method
US8572147B2 (en) Method for implementing a bit-reversed increment in a data processing system
US6530013B1 (en) Instruction control apparatus for loading plurality of instructions into execution stage
JPH07200289A (ja) 情報処理装置
JP2001034603A (ja) 積和演算処理装置
JPH04283833A (ja) 命令デコード方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080924

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100602

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110613

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110803

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120215

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120315

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees