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

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

Info

Publication number
JP4955149B2
JP4955149B2 JP2000581530A JP2000581530A JP4955149B2 JP 4955149 B2 JP4955149 B2 JP 4955149B2 JP 2000581530 A JP2000581530 A JP 2000581530A JP 2000581530 A JP2000581530 A JP 2000581530A JP 4955149 B2 JP4955149 B2 JP 4955149B2
Authority
JP
Japan
Prior art keywords
bit
fifo
length
pointer
register
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.)
Expired - Fee Related
Application number
JP2000581530A
Other languages
English (en)
Other versions
JP2002529847A (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

Images

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/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
    • 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)
  • Complex Calculations (AREA)
  • Cathode-Ray Tubes And Fluorescent Screens For Display (AREA)

Description

【0001】
(発明の分野)
本発明は、ディジタル信号プロセッサに関し、更に特定すれば、ビットFIFOを含む新規な計算ブロックを備えたディジタル信号プロセッサに関する。
(発明の背景)
ディジタル信号プロセッサは、音声分析および合成のようなディジタル信号処理用途に最適化され、音声計算、画像処理、またはディジタル・フィルタリングを行なう特殊目的プロセッサである。ディジタル信号処理用途では、メモリ・アクセス動作が集中的となる傾向があり、しかも大量のデータ入出力が必要となる傾向がある。リアルタイム・ディジタル信号処理は、多数の計算を実行するために、高速のハードウエアを必要とする。多くのアルゴリズムでは、計算は、非常に多数の乗算および蓄積機能の繰り返しを伴う。これらの計算は、個々のデータ・サンプル間でプロセッサによってリアルタイムで実行されるので、その回数によってサンプリング・レートが低下し、信号処理が制限される場合がある。したがって、プロセッサは、高スループットの数値処理および高割込率が得られるように設計されている。
【0002】
一般に、ディジタル信号プロセッサは、コア・プロセッサ、動作に用いられる命令およびオペランドを格納する少なくとも1つのメモリ、通信ポートと通信するリンク・ポート・バッファ、ならびに外部データ・バスおよび外部アドレス・バスを通じた通信を制御する外部ポートを含む。コア・プロセッサは、制御ブロック、一次命令デコーダに接続されている命令整合バッファ、およびディジタル信号処理動作を実行する少なくとも1つの計算ブロックを含む。計算ユニットは、レジスタ・ファイル、乗算器/アキュミュレータ、算術論理ユニット(ALU)、およびシフタを含む。コア・プロセッサは、数個の異なる計算方式、ならびにデータ格納および転送方式を用いて、速度、精度、サイズおよび性能を最適化することもできる。
【0003】
通常、シフタは、n−ビット・ワードとして編成されたデータ上で動作する。シフタは、シーケンサから命令を受け取り、レジスタ・ファイルからオペランドを受け取り、レジスタ・ファイルにオペランドを格納する。全ての動作はn−ビットの境界上で行われる。例えば、シフタは左シフトを行なう際、i番目のビットを(i+1)番目のビットと置換し、右シフトを行なう際、i番目のビットを(i−1)場目のビットと置換する。論理シフトでは、シフト・アウトされるビットは失われ、シフト・インされるビットは0である。循環シフトでは、一端からシフト・アウトされるビットは他端にシフト・インされるため、情報は失われない。算術演算シフトでは、シフタはビット・ストリングを左にシフトすることによって、当該ビット・ストリングが表す二進数に2を乗算し、シフタはビット・ストリングを右にシフトすることによって、二進数を2で除算する。
【0004】
レジスタ・ファイルは、命令、オペランドおよび結果の一時的な格納のために、選択されたビット・サイズを有する多数のレジスタを含む。レジスタ・ファイルは、メモリからオペランドを受け取り、数系統のオペランド・バスを通じて、オペランドを乗算器とALUとシフタ(shifter)に供給する。計算の後、レジスタ・ファイルは、数系統のバスを通じて、乗算器とALUとシフタから結果を受け取る。通常、乗算器、ALUおよびシフタは、固定ワード・サイズを有するデータ上で動作する。しかしながら、固定ワード・サイズは、全ての信号処理用途にとって必ずしも最適ではない。
【0005】
例えば、ある通信用途ではハフマン・コーディング(Huffman coding)を用いる場合があり、これは(キャラクタ毎に固定数のビットを用いるキャラクタ・エンコード方式とは異なり)可変長キャラクタ・エンコード方式を用いる。ハフマン・コーディングは、最も高い頻度で現れるキャラクタの全ビット数を最少に抑える。このコーディングは、既知の確率に基づいてビット数を選択するので、データ・ストリングは、ビットがデータ・ストリーム内で到達する毎にデコードされる。このコーディングは、データ・パックの厳格化をもたらす。何故なら、最も共通して出現するキャラクタは短く、出現する頻度が少ないキャラクタは長いからであり、出現する確率が最も高い最短のキャラクタは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には示されていない)も含む。計算ブロック、命令整合バッファ、一次命令デコーダ、および制御ブロックは、主な計算およびデータ処理機能を実行するコア・プロセッサを構成する。メモリ20は、例えば、3つの独立した2Mビット・メモリ・バンク22、24および26(メモリ・ブロック0、1および2として示す)を含む。各メモリ・バンクは、32ビット長のワード64K分の容量を有する。各メモリ・バンクは、128ビット幅のデータ・バスおよび16ビット幅のアドレス・バスに接続されている。単一のクロック・サイクル内において、各々32ビットを有する、連続的に整合されたデータ・ワードを4つまで、各メモリ・バンクに、そして各メモリ・バンクから転送することができる。
【0015】
制御ブロック30は、プログラム・シーケンサ32、第1整数ALU34(JALU)、第2整数ALU36(KALU)、第1DMAアドレス発生器38、および第2DMAアドレス発生器39を含む。一般に、ALU36およびALU36は、整数ALU命令を実行し、データ・アドレスを発生し、アドレス・バス上でデータ・アドレスをメモリに供給する。プログラム・シーケンサ32は、アドレス・バス上に命令アドレスを供給し、アクセスされた命令を命令整合バッファ(図示せず)に供給する。
【0016】
DSP10は、アドレスを供給する数系統のアドレス・バス、およびデータを供給するデータ・バスを含む。第1アドレス・バス60(MA0)は、メモリ・バンク22(M0)および制御ブロック30を相互接続する。第2アドレス・バス62(MA1)、および第2アドレス・バス64(MA2)は、それぞれ、メモリ・バンク24(M1)、26(M2)を制御ブロック30と相互接続する。アドレス・バスの各々は、好ましくは、16ビット幅であり、二進情報の並列転送のために多数のラインを含む。32ビット幅の外部アドレス・バス66(MAE)が、制御ブロック30を外部ポート45と相互接続する。外部ポート45は、外部アドレス・バス47に接続されている。外部アドレス・バス47は、32ビット幅であることが好ましい。
【0017】
DPS10は、例えば、3系統の128ビット幅のデータ・バスを含む。第1データ・バス68(MD0)は、計算ブロック12および14、メモリ・バンク22、制御ブロック30、リンクポート・バッファ40、命令整合バッファ(図示せず)ならびに外部ポート45を相互接続する。同様に、第2データ・バス70(MD1)および第3データ・バス72(MD2)は、計算ブロック12および14、各メモリ・バンク24および26、制御ブロック30、リンク・ポート・バッファ40、命令整合バッファ(図示せず)、ならびに外部ポート45を相互接続する。外部ポート45は、外部データ・バス49に接続されている。外部データ・バス49は、64ビット幅であることが好ましい。このように、DSP10は、外部ポート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は、レジスタ・ファイル80、乗算器/アキュミュレータ90、算術論理ユニット(ALU)92、およびシフタ94を含む。レジスタ・ファイル80は、多数のポートを含み、オペランドおよび結果を一時的に格納する。好適な実施形態では、レジスタ・ファイル80は、各々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】
単一ワードの転送では、マルチプレクサおよびラッチは、アクセスされたデータ・ワードを選択してもしなくてもよい。二重ワードの転送では、マルチプレクサおよびラッチは、データ・ワードのいずれかまたは双方を選択する。四重ワードの転送では、マルチプレクサおよびラッチは、二重データ・ワードの異なる組み合わせを選択するか、あるいは四重データ・ワード全体を選択する。単一、二重、または四重データ・ワードは、単一クロック・サイクルで、計算ブロック12に、計算ブロック14に、または双方に転送することができる。クロック・サイクル毎に多数の命令にアクセスすることができるため、サイクル毎に多数の動作を実行し、これによってプロセッサの処理能力を高めることができる。計算ブロック12および14によって要求されるよりも速くオペランドを供給することができる場合、メモリ・サイクルに空きができる。これらのメモリ・サイクルは、DMAアドレス発生器38および39が使用して、新たなデータをメモリ・バンク22、24および26に供給することができ、コア・プロセッサからサイクルを盗むことはない。最後に、多数のデータ・ワードにアクセスすることができるため、2つ以上の計算ブロックを利用し、これらにオペランドを供給し続けることが可能となる。
【0023】
再度図2を参照すると、乗算器/アキュミュレータ90、ALU92およびシフタ94は、十分な命令およびオペランドを計算ブロックに供給できる範囲で、同時に命令を実行することができる。4系統の64幅のオペランド・バス(ob0)、(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/Ra、Rs、RmおよびRnを有する。EXビットは、プロセッサが1サイクルに1つの命令を実行するのか、または数個の命令を実行するのかを指定する。EXビットが論理1に等しい場合、命令はライン内の最後の命令である。EXビットが論理0に等しい場合、当該命令に続いて、同じライン内に別の命令がある。CCビットは条件付き命令を識別する。CCビットが論理1に等しい場合、命令ライン全体が条件付きであり、別の命令によって先に成立している条件が真と評価した場合にのみ実行する。XYフィールドは、計算ブロックX(即ち図1におけるブロック12)、計算ブロックY(即ち、図1におけるブロック14)、または双方のどこで命令を実行するのかを指定する。フィールドXYが01に等しい場合、計算ブロックXが命令を実行する。フィールドXYが10に等しい場合、計算ブロックYが命令を実行し、フィールドXYが11に等しい場合、双方の計算ブロックが命令を実行する。CUフィールドは、命令を実行する特定の計算ユニット(即ち、ALU、乗算器、またはシフタ)を指定する。TYPEおよびOpcode/Raフィールドの組み合わせによって、計算ブロック12および14によって実行される動作を指定する。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命令であり、ALU92にビットFIFOへのBFPを増分するように命令する。これについては、図7を参照しながら説明する。
【0028】
図5は、GETBITS命令の実行中に用いられる個々のレジスタを示す。GETBITS命令を実行する際、シフタ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は長さおよび現BFPを含む制御情報レジスタを指定する。前述の命令フォーマットでは、オペランドを有するレジスタは、文字「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)からのデータを条件付きでレジスタR5: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 next 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は、ビット・フィールドを保管する汎用レジスタを指定し、Rnqは、ビット・フィールドを有するシフト・レジスタを指定し、Rmdは制御情報を有するレジスタ、即ち、現BFPを指定する。
【0034】
シフタ94がPUTBITS命令を実行する際、レジスタ対Rndの内容全体を、RsdおよびBFOTMPで形成される四重レジスタ内に置く。BFOTMPレジスタは、シフタ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からメモリに移動し、BFOTMPレジスタの内容を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およびPUTBITS命令を実行した後、BFPを更新する。ステップ108において、ALU92は、レジスタ104および106内の2つのオペランドの各々の下位側7ビットを加算し、その結果を64で除算し(モジュロ演算110)、残余を第2オペランドの下位6ビットに戻す。結果はレジスタ112内に置かれ、加算によってビット63を超えた場合ANステータス・フラグがセットされる。BFOINC命令は以下のフォーマットを有する。
【0036】
【数3】
Rs = BFOINC Rmd
ここで、レジスタRmd(104および106)は長さおよびBFP値を保持し、レジスタRs(112)は結果を受け取る。
【0037】
即ち、GETBITS命令の一部としてBFOINC命令を実行する際、ALU92は、BFPを保持するレジスタR17、および長さを保持するレジスタR16からオペランドを受け取り、BFP値をレジスタR17に戻す。
【0038】
図4Aを参照すると、別の実施形態では、シフタ94は4つの指定計算レジスタ(S3:0)120を含み、制御情報を格納するレジスタ122、124および126を含む。レジスタ122はBFP値を格納し、レジスタ124は長さ値を格納し、レジスタ126は、シフタ94がGETBITSまたはPUTBITS命令を実行した後、無日付(undated)BFP値を格納する。レジスタ・ファイル80は、Rm値を格納するレジスタ130、およびレジスタS3:0から抽出したビットを格納するレジスタ132を含む。S3:0レジスタは、連続ビット・ストリームを格納するために用いられる。条件付きロードがメモリおよびレジスタ・ファイル80間で、図4に示したのと同様に行われる。GETBITS命令を実行する際、転送されるビット・フィールドはレジスタ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だけであり、PUTBITS情報への入力として用いられ、有効な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命令を実行する際のデータ・フローを示す図である。

Claims (6)

  1. 算術論理ユニット、乗算器、シフタ、およびレジスタ・ファイルを含む計算ブロックにより、ビット・フィールドを連続ビット・ストリームとの間で抽出又は挿入する方法であって、
    前記ビット・ストリームは、前記計算ブロック内の複数のレジスタを連結したレジスタであるビットFIFOに、ビット・フォーマットで格納されており、
    前記ビットFIFOは、前記計算ブロック内に位置するポインタ・レジスタに格納されているビット・ポインタによって、前記ビットFIFOの抽出済みビット位置を追跡するものであり、
    前記計算ブロックは、前記ビットFIFOおよび前記シフタ間で、任意のビット長のビット・フィールドの転送を単一のクロック・サイクル内において行うものであり、
    前記計算ブロック内に位置する長さレジスタに抽出すべきビット・フィールドのビット長を指定し、
    前記計算ブロックに対するビット・フィールドの抽出命令を実行することによって、転送を行うステップであって、
    前記転送を行うステップは、
    前記ビット・ポインタによって指定された前記ビットFIFO内の位置にある前記ビット長のビット・フィールドを抽出して前記命令で指定された前記計算ブロック内のレジスタに格納するステップと、
    前記ビット・ポインタに前記ビット長を加算し、前記ビット・ポインタが前記ビットFIFOの長さの半分以上となった場合は、前記ビット・ポインタを前記ビットFIFOの長さの半分に等しい数のモジュロを戻すステップと、
    前記加算において、該加算後の前記ビット・ポインタが前記ビットFIFOの長さの半分以上となったという条件付きで、前記ビットFIFOの上位半分を下位半分に転送し、かつ、デジタル信号プロセッサのメモリから前記ビットFIFOの上位半分に、データをロードするステップと、
    を含む、方法。
  2. 請求項1記載の方法において、
    前記ビットFIFOは、前記レジスタ・ファイル内に位置するポインタ・レジスタに格納されているビット・ポインタによって、前記ビットFIFOの挿入済みビット位置を追跡するものであり、
    前記長さレジスタに、挿入すべきビット・フィールドのビット長を格納し、
    前記計算ブロックに対するビット・フィールドの挿入命令を実行することによって、転送を行うステップであって、
    前記転送を行うステップは、
    前記計算ブロック内の前記命令で指定されたレジスタに格納され、前記ビット長を有するビット・フィールドを、前記ビットFIFO内の、前記ビット・ポインタによって指定された位置へ挿入するステップと、
    前記ビット・ポインタに前記ビット長を加算し、前記ビット・ポインタが前記ビットFIFOの長さの半分以上となった場合は、前記ビット・ポインタを前記ビットFIFOの長さの半分に等しい数のモジュロを戻すステップと、
    前記加算において、該加算後の前記ビット・ポインタが前記ビットFIFOの長さの半分以上となったという条件付きで、デジタル信号プロセッサのメモリへ前記ビットFIFOの下位半分をストアし、かつ前記ビットFIFOの上位半分を下位半分に転送するステップと、
    を含む方法。
  3. メモリを備えたデジタル信号プロセッサにおいて用いられ、ビット・フィールドを連続ビット・ストリームとの間で抽出又は挿入する計算ブロックであって、
    前記計算ブロックは、
    算術論理ユニット、乗算器、シフタ、レジスタ・ファイル、および、ビット転送機構を備え、
    さらに、前記計算ブロック内の複数のレジスタを連結したレジスタであるビットFIFOを備え、該ビットFIFOは、前記ビット・ストリームをビット・フォーマットで格納するものであり、
    前記計算ブロックは、ビット・ポインタを格納するように構成されているポインタ・レジスタと、抽出すべきビット・フィールドのビット長を格納するように構成されている長さレジスタを含み、
    前記ビット・ポインタは、前記ビットFIFOに格納されている前記連続ビット・ストリームにおける抽出済みビット位置を追跡するように構成されており、
    前記ビット転送機構は、任意のビット長のビット・フィールドを前記ビットFIFOと前記シフタとの間において単一クロック・サイクル内において転送するように構成され配列されており、
    ビット・フィールドの抽出命令を実行することによって、
    前記ビット転送機構は、前記ビット長を有し、前記ビット・ポインタによって指定された位置にある前記ビット・フィールドを前記ビットFIFOから抽出して前記計算ブロック内の前記命令で指定したレジスタに格納し、
    前記算術論理ユニットは、前記ビット・ポインタに前記ビット長を加算し、加算結果が前記ビットFIFOの容量の半分以上となった場合は、前記ビットFIFOの容量の半分に等しい数のモジュロを戻し、
    前記加算において、該加算後の前記ビット・ポインタが前記ビットFIFOの長さの半分以上となったという条件付きで、前記ビットFIFOの上位半分を下位半分に転送し、かつデジタル信号プロセッサのメモリから前記ビットFIFOの上位半分に、データをロードするように構成されている計算ブロック。
  4. 請求項3記載の計算ブロックにおいて、
    前記ビット・ポインタは、前記ビットFIFOに格納されている前記連続ビット・ストリームにおける挿入済みビット位置を追跡するように構成されており、
    前記長さレジスタに、挿入すべきビット・フィールドのビット長を格納し、
    ビット・フィールドの挿入命令を実行することによって、
    前記ビット転送機構は、前記計算ブロック内の前記命令で指定したレジスタに格納されている、前記ビット長を有するビット・フィールドを、前記ビットFIFOの前記ビット・ポインタによって指定された位置に挿入し
    前記算術論理ユニットは、前記ビット・ポインタに前記ビット長を加算し、前記ビットFIFOの容量の半分以上となった場合は、前記ビットFIFOの容量の半分に等しい数のモジュロを戻し、
    前記加算において、該加算後の前記ビット・ポインタが前記ビットFIFOの長さの半分以上となったという条件付きで、前記ビットFIFOの下位半分をデジタル信号プロセッサのメモリへストアし、かつ、前記ビットFIFOの上位半分を下位半分に転送するように構成されている計算ブロック。
  5. ビット・フィールドを連続ビット・ストリームとの間で抽出又は挿入するデジタル信号プロセッサであって、
    前記デジタル信号プロセッサは、
    算術論理ユニット、乗算器、シフタ、レジスタ・ファイル、および、ビット転送機構を備える計算ブロックを備え、
    さらに、前記計算ブロック内の複数のレジスタを連結したレジスタであるビットFIFOを備え、該ビットFIFOは、前記ビット・ストリームをビット・フォーマットで格納するものであり、
    前記計算ブロックは、ビット・ポインタを格納するように構成されているポインタ・レジスタと、抽出すべきビット・フィールドのビット長を格納するように構成されている長さレジスタを含み、
    前記ビット・ポインタは、前記ビットFIFOに格納されている前記連続ビット・ストリームにおける抽出済みビット位置を追跡するように構成されており、
    前記ビット転送機構は、任意のビット長のビット・フィールドを前記ビットFIFOと前記シフタとの間において単一クロック・サイクル内において転送するように構成され配列されており、
    ビット・フィールドの抽出命令を実行することによって、
    前記ビット転送機構は、前記ビット長を有し、前記ビット・ポインタによって指定された位置にある前記ビット・フィールドを前記ビットFIFOから抽出して前記計算ブロック内の前記命令で指定したレジスタに格納し、
    前記算術論理ユニットは、前記ビット・ポインタに前記ビット長を加算し、加算結果が前記ビットFIFOの容量の半分以上となった場合は、前記ビットFIFOの容量の半分に等しい数のモジュロを戻し、
    前記加算において、該加算後の前記ビット・ポインタが前記ビットFIFOの長さの半分以上となったという条件付きで、前記ビットFIFOの上位半分を下位半分に転送し、かつデジタル信号プロセッサのメモリから前記ビットFIFOの上位半分に、データをロードするように構成されているデジタル信号プロセッサ。
  6. 請求項5記載のデジタル信号プロセッサにおいて、
    前記ビット・ポインタは、前記ビットFIFOに格納されている前記連続ビット・ストリームにおける挿入済みビット位置を追跡するように構成されており、
    前記長さレジスタに、挿入すべきビット・フィールドのビット長を格納し、
    ビット・フィールドの挿入命令を実行することによって、
    前記ビット転送機構は、前記計算ブロック内の前記命令で指定したレジスタに格納されている、前記ビット長を有するビット・フィールドを、前記ビットFIFOの前記ビット・ポインタによって指定された位置に挿入し
    前記算術論理ユニットは、前記ビット・ポインタに前記ビット長を加算し、前記ビットFIFOの容量の半分以上となった場合は、前記ビットFIFOの容量の半分に等しい数のモジュロを戻し、
    前記加算において、該加算後の前記ビット・ポインタが前記ビットFIFOの長さの半分以上となったという条件付きで、前記ビットFIFOの下位半分をデジタル信号プロセッサのメモリへストアし、かつ、前記ビットFIFOの上位半分を下位半分に転送するように構成されているデジタル信号プロセッサ。
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 JP2002529847A (ja) 2002-09-10
JP4955149B2 true 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)

Families Citing this family (12)

* 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
US7882284B2 (en) * 2007-03-26 2011-02-01 Analog Devices, Inc. Compute unit with an internal bit FIFO circuit
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
US9740484B2 (en) * 2011-12-22 2017-08-22 Intel Corporation Processor-based apparatus and method for processing bit streams using bit-oriented instructions through byte-oriented storage

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
DE68925666T2 (de) * 1988-10-07 1996-09-26 Ibm Prozessoren für wortorganisierte Daten
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> ディジタル信号処理プロセッサ

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100236525B1 (ko) 넓은 데이타 폭의 프로세서에서 다기능 데이타 정렬기
US6334176B1 (en) Method and apparatus for generating an alignment control vector
US5996057A (en) Data processing system and method of permutation with replication within a vector register file
US6052766A (en) Pointer register indirectly addressing a second register in the processor core of a digital processor
JP3547139B2 (ja) プロセッサ
EP2241968B1 (en) System with wide operand architecture, and method
US6665790B1 (en) Vector register file with arbitrary vector addressing
KR100996888B1 (ko) 앨리어싱 데이터 처리 레지스터
US5864703A (en) Method for providing extended precision in SIMD vector arithmetic operations
CN109144568B (zh) 将有效位通道作为矢量断言暴露于cpu
JP2992223B2 (ja) コンピュータシステム、命令ビット長圧縮方法、命令発生方法、及びコンピュータシステム動作方法
JPH11154114A (ja) 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法
JPH08314717A (ja) コンピュータ及びコンピュータ動作方法
JPH08314898A (ja) マトリックス転置方法
JP4955149B2 (ja) ビットfifoを有するディジタル信号プロセッサ
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US20230053842A1 (en) Streaming engine with flexible streaming engine template supporting differing number of nested loops with corresponding loop counts and loop offsets
EP2309382B1 (en) System with wide operand architecture and method
US7139899B2 (en) Selected register decode values for pipeline stage register addressing
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
US20240004663A1 (en) Processing device with vector transformation execution
US4611278A (en) Wraparound buffer for repetitive decimal numeric operations
US7143268B2 (en) Circuit and method for instruction compression and dispersal in wide-issue processors
JP2916605B2 (ja) コンピュータ用プロセツサ
JPH05173778A (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 Written amendment

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 Written amendment

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 Written amendment

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 Written amendment

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