JP2932963B2 - 効率的なビット移動能力を有するデータ・プロセッサとその方法 - Google Patents

効率的なビット移動能力を有するデータ・プロセッサとその方法

Info

Publication number
JP2932963B2
JP2932963B2 JP7018390A JP1839095A JP2932963B2 JP 2932963 B2 JP2932963 B2 JP 2932963B2 JP 7018390 A JP7018390 A JP 7018390A JP 1839095 A JP1839095 A JP 1839095A JP 2932963 B2 JP2932963 B2 JP 2932963B2
Authority
JP
Japan
Prior art keywords
address
destination
operand
bit
origin
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
JP7018390A
Other languages
English (en)
Other versions
JPH07219767A (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.)
Motorola Solutions Inc
Original Assignee
Motorola 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 Motorola Inc filed Critical Motorola Inc
Publication of JPH07219767A publication Critical patent/JPH07219767A/ja
Application granted granted Critical
Publication of JP2932963B2 publication Critical patent/JP2932963B2/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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants

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)
  • Microcomputers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にデータ・プロセ
ッサに関し、さらに詳しくは、通信用システムなどのデ
ータ・プロセッサに関する。
【0002】
【従来の技術および発明が解決しようとする課題】マイ
クロプロセッサの性能は、1970年代半ばに最初のマ
イクロプロセッサが市場に導入されて以来ずっと改善を
続けてきた。この改善は、より速い製造工程の開発によ
るものもあった。しかし、多くの改善は、単独のチップ
内のトランジスタの集積度が大きくなったことによるも
のである。集積度が増大するにつれて、マイクロプロセ
ッサはより多くのオペランドにアクセスした。初期のマ
イクロプロセッサは、8ビット・バイトのデータにアク
セスし、8ビットの内部アーキテクチャと8ビットのデ
ータ・パスを有した。次の世代のマイクロプロセッサに
は、インテル社製の8086などの16ビットのマイクロプ
ロセッサがあった。モトローラ社製の68000 は、16ビ
ットの外部データ・パスをもつ32ビットの内部アーキ
テクチャを持つことにより、従来の16ビットのマイク
ロプロセッサよりも改善された。最終的には、モトロー
ラ社製MC68020 などの、32ビットの内部アーキテクチ
ャと32ビットのデータ・パスとを有するマイクロプロ
セッサが導入された。
【0003】オペランドのサイズの増大により、性能は
全体として大きく向上したが、適応フィルタリング,等
化および反響消去などのデジタル信号処理アルゴリズム
をより効率的に実行するためには更なる強化が必要とさ
れた。これらの必要性を満足させるために、モトローラ
社製DSP56000などの、デジタル信号処理作業に特に適し
たデジタル信号プロセッサ(DSP:digital signal proce
ssor)が開発された。これらのプロセッサは、データ処
理能力を増大させるための、専用乗算器/累算器(MAC:
multiplier/accumulator)構造や、多重データおよびア
ドレス・バスなどの機能を持った。
【0004】しかし、これらの強化により全体的な性能
は大きく向上したが、ビット・インターリーブ(挟み込
み)を行う通信用など特定の用途の性能を改善すること
はできなかった。通信用システムには、ノイズ・バース
トによるエラーの影響を軽減するために、ビット・イン
ターリーブおよびデインターリーブ(挟み込み解除)の
動作を行うものがある。これらのビット・インターリー
ブ動作により、送信前にいくつかのフレームにデータ・
ストリームを広げることによって、ノイズ・バーストに
対する免疫性を高める。このため、各被送信フレームに
は、データ・ストリーム内の各フレームから少数のビッ
トしか含まれないので、1つの被送信フレーム内のデー
タを破壊する可能性のあるノイズ・バーストは、元のデ
ータ・ストリーム内に広く分散するビットに影響を与え
るに過ぎない。このように、元のデータ・ストリームに
対する影響が最小限に抑えられ、データ符号化法に組み
込まれた冗長性を通じて、受信機はノイズ・バーストが
あっても正しいデータを回復することができる。
【0005】しかし、従来のデータ・プロセッサは、イ
ンターリーブおよびデインターリーブ動作を効率的に実
行しない。たとえば、通常のデータ・プロセッサは、ま
ず起点ビット(source bit)を含むオペランドのアドレ
スを計算し、次に起点ビットが書き込まれる宛先ビット
(destination bit )の位置を含むオペランドのアドレ
スを計算し、起点オペランドを取り出し、ビットを得る
ために起点オペランドにマスクをかけ、宛先オペランド
の適切なビット位置にビットを書き込み、宛先オペラン
ドを記憶する。このシーケンスを既知のマイクロプロセ
ッサで完了するには、約6ないし10個の命令サイクル
が必要になる。長いデータ送信または受信シーケンスの
間には、命令サイクルの数が過剰になって、結果として
CPUアーキテクチャが複雑になり、クロック速度が遅
くなり、電力消費が高くなる。電力消費が高くなると、
バッテリを用いた用途ではバッテリの寿命がさらに短く
なる。
【0006】さらに、汎用データ・プロセッサには、ビ
ット移動命令を持たない従来のデータ・プロセッサより
もその性能を改善する、ビット移動命令を持つものがあ
る。しかし、更なる改善が望まれる。全長が任意の数の
内部プロセッサ・ワードであるバッファ内で特定のビッ
トをアドレスするには、ビット移動命令をもつ既知のプ
ロセッサは、まず所望の起点ビットを含むプロセッサ・
ワードのアドレスとそのワードの中の起点ビットのアド
レス(位置)を演算する。次に同様の演算により、宛先
ビットを含むプロセッサ・ワードのアドレスと、そのワ
ードの中の宛先ビットのアドレス(位置)を決定しなけ
ればならない。最後に、アドレスされた起点ビットがア
ドレス宛先ビット内に移動される。
【0007】たとえば、モトローラ社製68020 クラスの
プロセッサでは、抽出ビット・フィールド(BFEXT )命
令は、起点オペランドの指定されたビット(群)をレジ
スタの下位のビット(群)に移動させる。挿入ビット・
フィールド(BFINS )命令は、このレジスタの下位ビッ
トを宛先オペランドの指定された位置に移動させる。し
かし、任意のオペランド長バッファ内の特定のビット・
アドレスから、起点および宛先に関するオペランド内の
オペランド・アドレスおよびビット位置を決定するに
は、依然として追加のシフトおよび/またはマスキング
命令が必要である。そのため、必要とされるのは、これ
らのインターリーブおよびデインターリーブ動作をより
効率的に行う能力を有するデータ・プロセッサである。
【0008】
【課題を解決するための手段】従って、本発明は、ある
形態で、命令デコーダ,アドレス発生器,バス・コント
ローラおよび実行ユニットからなる、効率的なビット移
動能力を持つデータ・プロセッサを提供する。命令デコ
ーダは、ビット移動命令を含む複数の命令の1つを受信
する入力と、ビット移動命令に応答して第1,第2およ
び第3の被解読信号を提供する出力とを有する。アドレ
ス発生器は、起点部および宛先部を有する。起点部は、
現在の起点アドレスを提供し、第1被解読信号に応答し
て、起点オフセットに従って現在の起点アドレスを更新
する。宛先部は、現在の宛先アドレスを提供し、第2被
解読信号に応答して、宛先オフセットに従って現在の宛
先アドレスを更新する。バス・コントローラは、それぞ
れ現在の起点アドレスと宛先アドレスを受信する起点お
よび宛先アドレス入力を有する。バス・コントローラ
は、第3被解読信号に応答して、現在の起点アドレスか
ら、起点オペランド・アドレスと起点ビット・フィール
ドとを計算し、現在の宛先アドレスから宛先オペランド
・アドレスと宛先ビット・フィールドとを計算する。実
行ユニットは、起点および宛先データ・パスに結合さ
れ、起点および宛先オペランド・アドレスによりそれぞ
れ表されるアドレスにおいて、起点および宛先オペラン
ドを受信する。実行ユニットは、第3被解読信号に応答
して、起点ビット・フィールドにより選択された起点オ
ペランドのビットを、宛先ビット・フィールドにより選
択された宛先オペランドのビット位置に移動する。
【0009】別の形態では、本発明はデータ・プロセッ
サ内のオペランド間で効率的にビットを移動する方法を
提供する。現在の起点アドレスは、起点オペランド・ア
ドレスおよび起点ビット・フィールドに変換される。現
在の宛先アドレスは、宛先オペランド・アドレスと宛先
ビット・フィールドに変換される。起点オペランドは、
起点オペランド・アドレスにより示されるアドレスから
取り出される。宛先オペランドは、宛先オペランド・ア
ドレスにより示されるアドレスから取り出される。起点
ビット・フィールドにより選択された起点オペランドの
ビットが、宛先ビット・フィールドにより選択された宛
先オペランドのビット位置に移動されて、更新された宛
先オペランドを提供する。現在の起点アドレスは、起点
オフセットを用いて更新される。現在の宛先アドレス
は、宛先オフセットを用いて更新される。
【0010】これらおよびその他の特徴と利点は、以下
の詳細な説明と添付の図面とにより、さらに明確に理解
されよう。
【0011】
【実施例】図1は、一般的なビット移動動作のブロック
図である。このビット移動動作は、連続する起点メモリ
空間21と連続する宛先メモリ空間25とを有するメモ
リ空間20に関して図示される。起点メモリ空間21と
宛先メモリ空間25とは、必ずしも別の空間を占有する
とは限らない。起点メモリ空間21には、各々が8ビッ
ト(バイト),16ビット(ワード),32ビット(ロ
ング・ワード)などの一定の幅を有するn個のオペラン
ドが含まれる。一定の幅の起点オペランド22の中で、
起点ビット23が移動されるビットとして識別される。
実行されるビット移動シーケンスによって、起点ビット
23は、起点メモリ空間21内の任意のオペランドの任
意のビット位置に位置する。同様に、宛先メモリ空間2
5には、一定の幅のn個のオペランドが含まれる。一定
の幅を持つ宛先オペランド26内で、宛先ビット27が
起点ビット23が移動されるビット・アドレスとして識
別される。実行されるビット移動シーケンスにより、宛
先ビット27は任意の宛先オペランドの任意のビット位
置に位置することができる。図1では、矢印が起点ビッ
ト23から宛先ビット27へのビット移動動作を表す。
【0012】図2は、特定のビット移動動作のブロック
図である。このビット移動動作は、スタンドアロン専用
制御チャネル(SDCCH:Stand-alone Dedicated Co
ntrol Channel )として知られるグループ特殊移動(G
SM:Groupe Speciale Mobile)セルラ電話規格に指定
されるインターリーブ動作である。SDCCHインター
リーブ動作の例は、連続する制御バッファ・メモリ空間
31と4個の連続バッファ32〜35とを有するメモリ
空間30に関して図示される。
【0013】図2に示されるように、GSM SDCC
H制御チャネルには、4つのバースト上にインターリー
ブされる456個のビットが含まれる。これらのビット
は、次のような原則に従ってインターリーブされる:i
=0ないし455に関して B(n,j)=c(k) j=1*2%114 + フロア(i/228) n=フロア(i/57)%4 ただしc(k)は入力バッファ(456ビット),nは
バースト(0〜3),jはインターリーブされたビット
(0〜113),%はモジューロ演算を表す。従来のプ
ロセッサは、単独の命令の中に必要なビット移動能力と
組み合わされた索引付モジューロ・アドレッシング・モ
ード(indexed modulo addressing modesを提供しない
ので、上記に示されるようなSDCCHインターリーブ
を効率的に実現するための能力がない。
【0014】図3は、本発明による効率的なビット移動
能力を持つデータ・プロセッサのブロック図である。一
般に、データ・プロセッサ40には、命令デコーダ4
1,アドレス発生ユニット(AGU)42,レジスタ・
ファイル43,バス・コントローラ44および実行ユニ
ット45が含まれる。図示される実施例においては、デ
ータ・プロセッサ40は、起点アドレス・バス(SA
B)51,起点データ・バス(SDB)52,宛先アド
レス・バス(DAB)53および宛先データ・バス(D
DB)54を通じてメモリ50に間接的に接続される。
他の実施例においては、メモリ50とバス51〜54
が、データ・プロセッサ40の外部にあることもある。
【0015】命令デコーダ41は、データ・プロセッサ
40により実行されるいくつかの命令のうち任意のもの
を表す「PDATA 」と記されたデータを受信する入力を有
する。命令デコーダ41が応答する実際の命令の組は実
施例によって変わるが、通常はデータ移動命令,算術お
よび論理命令などを含んでいる。特に、命令デコーダ4
1は、「MBIT」命令と言うビット移動命令に応答し、こ
れが起点メモリ空間内の選択されたビットを、宛先メモ
リ空間内の選択されたビット位置にコピーする。これは
図2に示されるGSM SDDCH制御フレーム・デー
タのインターリーブ・アルゴリズムの間などに行われ
る。MBIT命令に応答して、命令デコーダ41は、3つの
被解読制御信号、すなわち「起点更新(SOURCE UPDATE
)」,「宛先更新(DESTINATION UPDATE)」およびこ
れも「MBIT」と記された制御ビットを提供する。
【0016】AGU42は、デジタル信号処理(DS
P)機能を効率的に実行することのできるモジューロ・
アドレッシング能力を持つアドレス発生器である。AG
U42は、独立して起点および宛先アドレスの計算を実
行することのできる2つの部分を有する。第1部分が信
号起点更新に応答して、現在の起点アドレスを起点オフ
セットおよび起点係数値(source modulus value)に従
って次の起点アドレスに更新する。同様に、第2部分が
信号宛先更新に応答して、現在の宛先アドレスを宛先オ
フセットおよび宛先係数値に従って次の宛先アドレスに
更新する。AGU42は、SDB52およびDDB54
を介してメモリ50に接続され、起点および宛先アドレ
スの更新用の初期アドレスとオフセット値および係数値
を受信する。
【0017】AGU42は、「現在の起点アドレス(PR
ESENT SOURCE ADDRESS)」および「現在の宛先アドレス
(PRESENT DESTINATION ADDRESS )」と記された現在の
計算されたアドレス値をレジスタ・ファイル43に送
り、レジスタ・ファイル43はこれらの値を記憶してバ
ス・コントローラ44に提示する。AGU42は、バス
・コントローラ44がこれらの値を用いている、すなわ
ちポスト更新動作を実行している間にこれらのアドレス
を更新する。しかし、他の実施例においては、AGU4
2がプレ更新動作を行うこともある。
【0018】バス・コントローラ44は、レジスタ・フ
ァイル43から、現在の起点アドレスおよび現在の宛先
アドレスを受信して、「起点オペランド・アドレス(SO
URCEOPERAND ADDRESS)」および「宛先オペランド・ア
ドレス(DESTINATION OPERAND ADDRESS )」と記された
2つの対応するオペランド・アドレスをそれぞれSAB
51,DAB53に送る。さらにバス・コントローラ4
4は、図3には図示されない追加の制御信号を送る。バ
ス・コントローラ44は、命令の種類により、起点オペ
ランド・アドレスと宛先オペランド・アドレスとを別々
に提供する。大半の命令の間では、起点オペランド・ア
ドレスおよび宛先オペランド・アドレスは、それぞれ現
在の起点アドレスおよび現在の宛先アドレスと等しい。
【0019】しかし、バス・コントローラ44は、現在
の起点アドレスおよび現在の宛先アドレスが、信号MBIT
に応答してビット・アドレスを表すと認識している。MB
IT命令の間は、バス・コントローラ44は、現在の起点
アドレスを起点オペランド・アドレスと、バス・コント
ローラ44が実行ユニット45に送る「起点ビット・フ
ィールド(SOURCE BIT FIELD)」と記されたフィールド
の2つのフィールドに分割する。同様に、バス・コント
ローラ44は、現在の宛先アドレスを、宛先オペランド
・アドレスと、バス・コントローラ44が実行ユニット
45に送る「宛先ビット・フィールド(DESTINATION BI
T FIELD )」と記されたフィールドの2つのフィールド
に分割する。
【0020】MBIT命令中の現在のアドレス,オペランド
・アドレスおよびビット・フィールドの関係は、オペラ
ンド毎のビット数により決まる。一般には、バス・コン
トローラ44は、現在のアドレスをオペランド内のビッ
ト数で割り、オペランド・アドレスを設ける。ビット・
フィールドは、オペランド毎のビット数に等しいいくつ
かのビットのうち1つのビットを選択するための符号化
された信号である。
【0021】たとえば、8ビット(バイト)オペランド
・サイズに関して、オペランド・アドレスは現在のアド
レスを8で割ったものに等しく、ビット・フィールドは
現在のアドレスのうちの3つの下位ビットになる。2の
整数べき数であるオペランド・サイズにするとバス・コ
ントローラ44および実行ユニット45をより容易に実
現することができるが、一般にはオペランド毎のビット
数は、完全に任意である。さらに、データ処理システム
は、メモリをバイト,16ビット(ワード)および32
ビット(ロング・ワード)のサイズに編成することが最
も多い。
【0022】実行ユニット45は、起点ビット・フィー
ルドと宛先ビット・フィールドを受信する入力と、信号
MBITを受信する制御入力と、「起点オペランド(SOURCE
OPERAND)」と記されたデータ要素を伝えるためのSD
B52に対する双方向接続部と、「宛先オペランド(DE
STINATION OPERAND )」と記されたデータ要素を伝える
ためのDDB54に対する双方向双方向接続部とを有す
る。信号MBITに応答して、バス・コントローラ44は、
起点オペランド・アドレスと、図示されない制御信号と
を提供して、起点オペランドにアクセスする。起点オペ
ランドは実行ユニット45により受信される。同時にバ
ス・コントローラ44は、宛先オペランド・アドレス
と、図示されない制御信号とを提供して、宛先オペラン
ドにアクセスする。これもまた実行ユニット45により
受信される。次に実行ユニット45は、起点ビット・フ
ィールドが選択した起点オペランドのビットを、宛先ビ
ット・フィールドが選択した宛先オペランドのビット位
置にコピーする。次のメモリ・サイクルで、バス・コン
トローラ44は再び宛先オペランド・アドレスと制御信
号とを提供し、MBIT命令の結果を、実行ユニット45に
より提供される更新された宛先オペランドとして記憶す
る。
【0023】データ・プロセッサ40のMBIT機能の全体
的な利点は、起点および宛先のオペランド・アドレスと
ビット位置アドレスとを、プロセッサの他のすべての命
令と同じ実行時間をもつ1つの機械命令内でビット移動
の実行と組み合せることである。MBIT命令により、ビッ
ト移動の実行と組み合わされた起点および宛先のアドレ
スに関して、バイト・アドレス可能なプロセッサを、ビ
ット・アドレス可能なプロセッサに有効に変換する。
【0024】データ・プロセッサ40は、各機械サイク
ル中に1ビットのインターリーブ動作を実現する。同じ
サイクルの中で、その後の起点および宛先ビットの位置
が計算されて、更新される。これに対して、一般に既知
のデータ・プロセッサは、起点および宛先オペランドの
バイトおよびビット位置を生成して、各インターリーブ
動作中に大量のCPUサイクルを消費する。用いられる
プロセッサにより、通常6ないし10個のサイクルが単
独のビットのインターリーブ動作を実行するのに必要で
ある。
【0025】SDCCHインターリーブ動作を実行する
ためにMBIT命令を用いる場合のコード・セグメントを以
下に示す: /*Initialization */ mov #(inputdata_buffer*8), r10 mov #(output data_buffer*8), r11 /* interleaving */ DO #4, r5 loopeven: rep #57, r4 MBIT (r10.b+64, %456), (r11.b+2) nop (r10.b+57), (r11.b+4) /* offset to next burst buffer */ ENDDO r5, loopeven ただし「mov 」は、メモリからオンチップ・レジスタへ
のデータ移動命令を表し、「# 」は目下のデータを表
し、「rj」はj 番目のレジスタを表し、「DO」はループ
実行(do loop )を表し、「rep 」は反復命令を表し、
「nop 」は無動作命令(これもアドレス・レジスタの更
新を可能にする)を表す。MBIT「起点(SOURCE)」およ
び「宛先(DESTINATION )」オペランドを記憶するメモ
リ・システム20は、オフチップでシリコン上に集積す
ることも、一部をオンチップに一部をオフチップに集積
することもできる。
【0026】アドレス分離をバス・コントローラ44に
配置する利点は、AGU42自身の構造に影響を与えず
に、代替のアドレス発生器または起点を用いることがで
きることである。固定アドレス・データ・ポートは、レ
ジスタまたは読み取り専用メモリ(ROM)により、レ
ジスタの間接アドレスまたは絶対アドレスとしてアドレ
スを提供できる一例である。これは多重プロセッサ・シ
ステムにおいて有利である。
【0027】図4は、図3のデータ・プロセッサ40の
一部を部分的にブロック図に、部分的に論理図に示す。
データ・プロセッサ40のこの部分は、さらにAGU4
2,レジスタ・ファイル43およびバス・コントローラ
44を示し、これらのブロックの識別には図4でも同じ
参照番号が用いられる。AGU42には、一般に、3つ
のAGU、すなわち「S1」AGU60と、「S2」A
GU61と、「D」AGU62とが含まれる。MBIT命令
の間に、これらのAGUの1つ、好ましくはS1AGU
60が起点AGUとして選定され、これらのAGUの別
の1つ、好ましくはS2AGU61が宛先AGUとして
選定される。各AGUは、同じ機能を実行するので、A
GU60の機能だけを詳細に図示する。
【0028】AGU60には、アドレス・ポインタ・レ
ジスタ64,オフセット・レジスタ65,係数レジスタ
66,加算装置67および除算装置68が含まれる。S
1AGU60は、「S1更新(S1 UPDATE )」と記され
た、図示された実施例においては起点更新と同じ信号に
応答して動作する。アドレス・ポインタ・レジスタ64
には、初期アドレスまたは最後の更新時に計算されたア
ドレス値のいずれか一方が含まれ、この値を加算装置6
7の1つの入力に提供する。オフセット・レジスタ65
は、現在のオフセットを提供し、係数レジスタ66は、
現在の係数を提供する。オフセット値および係数値は、
ときどき更新されることに留意されたい。加算装置67
は、オフセット・レジスタ65によって提供されたオフ
セットをアドレス・ポインタ・レジスタ64によって提
供された現在のアドレス値に加算して、その和を提供す
る。次にこの和は、アドレスとオフセットとの和を係数
値で割る除算器68内の係数値により指定された範囲内
に入れられる。AGU61は、本件に参考として含まれ
る、1988年5月3日発行のKlokerによる米国特許第
4,742,479号「Modulo Addressing Unit Havin
g Arbitrary Offsetand Modulo Values」などの周知の
モジューロ調整回路構成によって実現することができ
る。
【0029】SDCCHアルゴリズムは、MBIT命令を次
の形式で用いることを必要とする: MBIT(ra+64,%456),(rb+2) ただしra およびrb は、データ・プロセッサ40のレ
ジスタ・ファイル内の内部レジスタを指す。この命令の
最初の部分は、レジスタra により指定された間接アド
レスを用いて起点ビットにアクセスし、次に現在のra
値を456の係数に従って64を加算することにより、
次の起点ビットの位置を計算する。命令の2番目の部分
は、レジスタrb により指定された間接ビット位置を用
いて宛先ビットを記憶し、現在のrb 値に2を加算する
ことにより次の宛先ビットの位置を計算する。
【0030】AGU60〜62のそれぞれは、(m+
1)ビットを有するアドレス値をレジスタ・ファイル4
3に提供する。レジスタ・ファイル43には、それぞれ
AGU60〜62の出力を記憶するための3つのレジス
タ70〜72が含まれる。この後、レジスタ70〜72
の出力はバス・コントローラ44で用いることができる
ようになる。バス・コントローラ44には、3つのシフ
タ/マルチプレクサ(SHIFT/MUX)80〜82
が含まれる。SHIFT/MUX80〜82はそれぞ
れ、レジスタ70〜72の対応する1つのレジスタの出
力を受信する入力と、信号MBITを受信する制御入力と、
「S1インデックス(S1 INDEX)」,「S2インデック
ス(S2 INDEX)」および「Dインデックス(D INDEX
)」とそれぞれ記された対応するインデックスを受信
する入力と、対応するオペランド・アドレスを提供する
出力とを有する。さらにSHIFT/MUX80,81
は、対応するビット・フィールドを提供する出力を有す
る。
【0031】説明上、SHIFT/MUX80には、ビ
ット・シフタ84およびマルチプレクサ85が含まれ
る。ビット・シフタ84は、「現在のS1アドレス(PR
ESENTS1 ADDRESS)」と記された現在のアドレスである
ビット・アドレスを「被変換S1アドレス」と記された
8ビット(バイト)オペランドにアクセスする(m+
1)ビットのアドレスに変換する。基本的にビット・シ
フタ84は、現在のS1アドレスのうち(m+1−n)
個の上位ビットを被変換S1アドレスの0に割り当てる
ことによって、現在のS1アドレスを8で割る。ビット
・シフタ84はまた、nビットのS1インデックスを被
変換S1アドレスのn個の上位ビット位置に割り当て
る。MUX85は、被変換S1アドレスを受信する第1
入力と、現在のS1アドレスを受信する第2入力と、信
号MBITを受信する制御入力と、S1オペランド・アドレ
スを提供する出力とを有する。図示される実施例におい
ては、S1オペランド・アドレスは、起点オペランド・
アドレスと同じものである。図示される実施例において
起点ビット・フィールドと同じものであるS1ビット・
フィールドは、現在のS1アドレスのn個の下位ビット
と見なされる。
【0032】AGU42は、従来の円形バッファAGU
である。バス・コントローラ44内でシフタ/マルチプ
レクサを適切に追加することにより、オペランド・アド
レス部分を、AGUにより計算された現在のアドレスの
ビット・フィールド・アドレス部分から分離することに
よって、MBIT命令の実行が容易になる。
【0033】図5は、MBIT部分90と指定されたビット
移動命令を実行するための図3の実行ユニット45の一
部のブロック図である。MBIT部分90には、MBIT命令に
関わる実行ユニット45のブロックが含まれる。実行ユ
ニット45は、掛け算,掛け算−累積,加算などを含む
別の演算も実行することに留意されたい。しかしこれら
の従来の演算を行うブロックは、図5には図示されてい
ない。
【0034】MBIT部分90は、1クロック・サイクル内
でMBIT命令を終了するように動作する。このクロック・
サイクルは、「CLK1」,「CLK2」と記された2個の重複
しないクロック信号により半分に分割される。「S2オ
ペランド・アドレス・レジスタ(S2 OPERAND ADDRESS R
EGISTER )」と記されたレジスタ91は、クロック信号
CLK1に応答してバス・コントローラ44から(m+1)
ビットのS2オペランド・アドレスをラッチする。ラッ
チ部分92には、(m+1)個の対応する選択信号によ
り選択されたS1オペランド・アドレス内の(m+1)
ビットの1つを受信する選択可能な1ビット・ラッチが
含まれ、信号CLK1に応答して動作する。デコーダ93
は、nビットのS1ビット・フィールドを(m+1)個
の選択信号に解読することにより、これらの選択信号を
提供する。デコーダ93はまた、信号MBITを受信する制
御入力と、信号CLK1を受信するクロック入力とを有す
る。
【0035】レジスタ91とラッチ部分92はそれぞ
れ、(m+1)ビットの出力を有し、これは1組の(m
+1)2対1MUX94の対応する入力に提供される。
MUX94はまた、1組の(m+1)個の選択信号のう
ち対応する信号を受信する(m+1)個の制御入力を有
する。デコーダ95は、nビットのS2ビット・フィー
ルドを(m+1)個の選択信号に解読することによって
これらの選択信号を提供する。デコーダ93にはまた、
信号MBITを受信する制御入力と、信号CLK2を受信するク
ロック入力とを有する。MUX94は、出力ドライバ・
ブロック96の入力に接続された(m+1)ビットの出
力を有する。出力ドライバ・ブロック96は、「結果(R
ESULT )」と記された(m+1)ビットの出力を提供す
る出力と、信号CLK2を受信するクロック入力とを有す
る。
【0036】一般的な用語では、MBIT部分90は、簡単
で集積回路面積のわずかな量しか専有しないMBIT命令の
専用ハードウェア・モジュールである。命令の解読およ
びビット・フィールドの解読は、実行クロックに先立
ち、クロック位相内で行われる。これにより宛先オペラ
ンドと起点オペランド内の選択されたビットが、実行ク
ロック・サイクルの第1位相(CLK1)でラッチされる。
次に、実行クロック・サイクルの第2位相(CLK2)内で
起点オペランドのラッチされたビットが宛先オペランド
の選択されたビット内に多重送信され、その結果は出力
ドライバ96を通じて出される。この動作により、起点
オペランド内のアドレスされたビットを宛先オペランド
のアドレスされたビット位置に移動する単独クロックの
実行が行われる。
【0037】AGU,バス・コントローラおよび実行ユ
ニットを組み合せることによって、ビット移動機能の効
率的な実現が達成され、その結果として、GSM規格の
データ・インターリーブ/デインターリーブ要件を完了
するために必要なプロセッサ・サイクルが少なくなる。
GSMにはすべての被送信データが挟み込まれる(イン
ターリーブされる)ので、プロセッサのMBIT能力によ
り、実質的により少ない命令サイクルで済み、それに対
応してバッテリを電源とする用途では重要な電力消費が
より低くなる。
【0038】バス・コントローラ(44)が起点アドレ
ス変換器(84)および起点マルチプレクサ(85)に
よって構成されることは、本発明の1つの側面である。
起点アドレス変換器(84)は、現在の起点アドレスを
受信する入力と、変換された起点アドレスを提供する出
力とを有する。起点アドレス変換器(84)は、現在の
起点アドレスを、起点オペランドのビット数で割り、変
換された起点アドレスを形成する。起点マルチプレクサ
(85)は、現在の起点アドレスを受信する第1入力
と、変換された起点アドレスを受信する第2入力と、第
3被解読信号を受信する制御入力と、起点オペランド・
アドレスを提供する出力とを有する。
【0039】バス・コントローラが宛先アドレス変換器
(84)および宛先マルチプレクサ(85)によって構
成されることは本発明の別の側面である。宛先アドレス
変換器(84)は、現在の宛先アドレスを受信する入力
と、変換された宛先アドレスを提供する出力とを有す
る。宛先アドレス変換器(84)は、現在の宛先アドレ
スを、宛先オペランドのビット数で割り、変換された宛
先アドレスを形成する。宛先マルチプレクサ(85)
は、現在の宛先アドレスを受信する第1入力と、変換さ
れた宛先アドレスを受信する第2入力と、第3被解読信
号を受信する制御入力と、宛先オペランド・アドレスを
提供する出力とを有する。
【0040】命令デコーダ(41)が、ビット移動命令
以外の複数の命令のうちの所定の命令に応答して、第1
および第2被解読信号を提供することは本発明のさらに
別の側面である。
【0041】アドレス発生器(42)が、アドレス発生
ユニット(AGU)すなわち起点の係数(67)にさら
に応答するその起点部(60)によって構成されること
は本発明のさらに別の側面である。
【0042】アドレス発生器(42)が、アドレス発生
ユニット(AGU)すなわち宛先の係数(67)にさら
に応答するその宛先部(61)によって構成されること
は本発明のさらに別の側面である。
【0043】バス・アクセス手段(44)が、宛先ビッ
ト・フィールドにより選択されたそのビット位置を含む
宛先オペランドを宛先オペランド・アドレスに記憶する
手段によって構成されることは本発明のさらに別の側面
である。
【0044】本方法が、現在の起点アドレスを起点オペ
ランド・アドレスおよび起点ビット・フィールドに変換
し、現在の宛先アドレスを宛先オペランド・アドレスお
よび宛先ビット・フィールドに変換する段階を同時に実
行する段階によって構成されることは本発明のさらに別
の側面である。
【0045】本発明は、好適な実施例に関して説明され
ているが、本発明は多くの方法により修正することがで
き、特に指定され上述されたもの以外にも多くの実施例
が想定できることは当業者には明白であろう。たとえ
ば、上述の実施例は、メモリ・バッファの物理的な位置
の限界を2k 境界においている。この制約をなくすため
に、代替の索引またはアドレス・オフセット計算をアド
レスSHIFT/MUX81,82により行うことがで
きる。また、ビット移動命令は、前述のものとは異なる
構文を持つ場合もある。さらに、データ・プロセッサは
モジューロ・アドレッシング機能を持たないAGUを用
いてビット移動命令を実現する場合もある。従って、添
付の請求項により本発明の精神と範囲に入る本発明のす
べての修正を含むものとする。
【図面の簡単な説明】
【図1】一般的なビット移動動作のブロック図である。
【図2】特定のビット移動動作のブロック図である。
【図3】本発明による効率的なビット移動能力を持つデ
ータ・プロセッサのブロック図である。
【図4】図3のデータ・プロセッサの一部を部分的にブ
ロック図に、部分的に論理図に示す。
【図5】ビット移動命令を実行する図3の実行ユニット
の一部のブロック図である。
【符号の説明】
40 データ・プロセッサ 41 命令デコーダ 42 アドレス発生ユニット(AGU) 43 レジスタ・ファイル 44 バス・コントローラ 45 実行ユニット 50 メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ピーター・シー・カーティス アメリカ合衆国テキサス州オースチン、 ナンバー20302、アフトンシャイア・ウ ェイ2914 (72)発明者 ドナルド・シー・アンダーソン アメリカ合衆国テキサス州オースチン、 フローラル・パーク・ドライブ10601 (72)発明者 ウォルター・ユー・ケナスト アメリカ合衆国テキサス州オースチン、 パロマー・レーン3506 (72)発明者 ケネス・シー・ウエン アメリカ合衆国テキサス州オースチン、 ブルー・ビーチ・コーブ7402 (56)参考文献 特開 昭61−100835(JP,A) 特開 平2−195429(JP,A) 特開 昭57−111745(JP,A) 特開 平4−260928(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/30 - 9/355 G06F 9/40 - 9/42 390

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 効率的なビット移動能力をもつデータ・
    プロセッサ(40)であって:ビット移動命令を含む複
    数の命令のうちの1つを受信する入力と、前記ビット移
    動命令に応答して第1,第2および第3被解読信号を提
    供する出力とを有する命令デコーダ(41);前記命令
    デコーダ(41)に結合され、その起点(60)および
    宛先(61)部分を有するアドレス発生器(42);現
    在の起点アドレスを提供し、前記第1被解読信号に応答
    して起点オフセット(65)に従って前記の現在の起点
    アドレスを更新する前記起点部分(60);現在の宛先
    アドレスを提供し、前記第2被解読信号に応答して宛先
    オフセットに従って前記の現在の宛先アドレスを更新す
    る前記宛先部分(61);前記の現在の起点および宛先
    アドレスをそれぞれ受信し、前記第3被解読信号に応答
    して、前記の現在の起点アドレスから起点オペランド・
    アドレスと起点ビット・フィールドとを計算し、前記の
    現在の宛先アドレスから宛先オペランド・アドレスと宛
    先ビット・フィールドとを計算する起点および宛先アド
    レス入力を有するバス・コントローラ(44);および
    起点(51)および宛先(53)データ・パスに結合さ
    れて、前記の起点および宛先オペランド・アドレスによ
    って表されるアドレスにおいて起点および宛先オペラン
    ドを受信して、前記第3被解読信号に応答して、前記起
    点ビット・フィールドにより選択された前記起点オペラ
    ンドのビットを、前記宛先ビット・フィールドにより選
    択された前記宛先オペランドのビット位置に移動させる
    実行ユニット(45);によって構成されることを特徴
    とするデータ・プロセッサ(40)。
  2. 【請求項2】 効率的なビット移動能力をもつデータ・
    プロセッサ(40)であって:ビット移動命令を含む複
    数の命令のうちの1つを受信し、前記ビット移動命令に
    応答して第1,第2および第3被解読信号を提供する解
    読手段(41);現在の起点アドレスを提供し、前記第
    1被解読信号に応答して起点オフセットに従って前記の
    現在の起点アドレスを更新する起点アドレス発生手段
    (60);現在の宛先アドレスを提供し、前記第2被解
    読信号に応答して宛先オフセットに従って前記の現在の
    宛先アドレスを更新する宛先アドレス発生手段(6
    1);前記の現在の起点および宛先アドレスを受信し、
    前記第3被解読信号に応答して、前記の現在の起点アド
    レスから起点オペランド・アドレスと起点ビット・フィ
    ールドとを計算し、前記の現在の宛先アドレスから宛先
    オペランド・アドレスと宛先ビット・フィールドとを計
    算し、前記起点オペランド・アドレスおよび前記宛先オ
    ペランド・アドレスによってそれぞれ指示される位置で
    起点および宛先オペランドを取り出すバス・アクセス手
    段(44);および前記バス・アクセス手段(44)に
    結合されて、前記第3被解読信号に応答して、前記起点
    ビット・フィールドにより選択された前記起点オペラン
    ドのビットを、前記宛先ビット・フィールドにより選択
    された前記宛先オペランドのビット位置に移動させるビ
    ット移動手段(45);によって構成されることを特徴
    とするデータ・プロセッサ(40)。
  3. 【請求項3】 データ・プロセッサ(40)内において
    オペランド間で効率的にビットを移動する方法であっ
    て:現在の起点アドレスを起点オペランド・アドレスと
    起点ビット・フィールドに変換する段階;現在の宛先ア
    ドレスを宛先オペランド・アドレスと宛先ビット・フィ
    ールドに変換する段階;前記起点オペランド・アドレス
    により指示されたアドレスから起点オペランドを取り出
    す段階;前記宛先オペランド・アドレスにより指示され
    たアドレスから宛先オペランドを取り出す段階;前記起
    点ビット・フィールドにより選択された前記起点オペラ
    ンドのビットを、前記宛先ビット・フィールドにより選
    択された前記宛先オペランドのビット位置に移動して、
    更新された宛先オペランドを提供する段階;起点オフセ
    ットを用いて現在の起点アドレスを更新する段階;およ
    び宛先オフセットを用いて現在の宛先アドレスを更新す
    る段階;によって構成されることを特徴とする方法。
  4. 【請求項4】 起点ベース・アドレスおよび起点オフセ
    ットに従って起点オペランド・アドレスを更新する起点
    アドレス発生器(60)と、宛先ベース・アドレスおよ
    び宛先オフセットに従って宛先オペランド・アドレスを
    更新する宛先アドレス発生器(61)とを有するデータ
    ・プロセッサ(40)において、効率的にビット移動命
    令を実現する方法であって:ビット移動命令に応答し
    て、前記起点(60)および宛先(61)アドレス発生
    器にそれぞれ起点および宛先ビット・アドレスを提供す
    る段階;前記起点アドレス発生器(60)の出力を、起
    点オペランド・アドレスと起点ビット・フィールドとに
    変換する段階;前記宛先アドレス発生器(61)の出力
    を、宛先オペランド・アドレスと宛先ビット・フィール
    ドとに変換する段階;前記起点オペランド・アドレスに
    よって指示されるアドレスにおいて起点オペランドを取
    り出す段階;前記宛先オペランド・アドレスによって指
    示されるアドレスにおいて宛先オペランドを取り出す段
    階;および前記起点ビット・フィールドにより選択され
    た前記起点オペランドのビットを、前記宛先ビット・フ
    ィールドにより選択された前記宛先オペランドのビット
    位置に移動して、更新された宛先オペランドを提供する
    段階;によって構成されることを特徴とする方法。
JP7018390A 1994-01-21 1995-01-11 効率的なビット移動能力を有するデータ・プロセッサとその方法 Expired - Fee Related JP2932963B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US18452994A 1994-01-21 1994-01-21
US184529 1994-01-21

Publications (2)

Publication Number Publication Date
JPH07219767A JPH07219767A (ja) 1995-08-18
JP2932963B2 true JP2932963B2 (ja) 1999-08-09

Family

ID=22677283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7018390A Expired - Fee Related JP2932963B2 (ja) 1994-01-21 1995-01-11 効率的なビット移動能力を有するデータ・プロセッサとその方法

Country Status (5)

Country Link
US (1) US5765216A (ja)
EP (1) EP0664508B1 (ja)
JP (1) JP2932963B2 (ja)
KR (1) KR100283827B1 (ja)
DE (1) DE69527379T2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US5854939A (en) * 1996-11-07 1998-12-29 Atmel Corporation Eight-bit microcontroller having a risc architecture
FR2770661B1 (fr) * 1997-11-03 2001-08-10 Inside Technologies Microprocesseur comprenant des moyens de concatenation de bits
US6298095B1 (en) * 1998-04-03 2001-10-02 Telefonaktiebolaget Lm Ericsson (Publ) Communicating signaling information in a cellular system that has a tight frequency reuse pattern
US6967961B1 (en) 1998-06-03 2005-11-22 Cisco Technology, Inc. Method and apparatus for providing programmable memory functions for bi-directional traffic in a switch platform
US6483850B1 (en) * 1998-06-03 2002-11-19 Cisco Technology, Inc. Method and apparatus for routing cells having different formats among service modules of a switch platform
US6438102B1 (en) 1998-06-03 2002-08-20 Cisco Technology, Inc. Method and apparatus for providing asynchronous memory functions for bi-directional traffic in a switch platform
US6329985B1 (en) 1998-06-30 2001-12-11 Emc Corporation Method and apparatus for graphically displaying mapping of a logical object
US6393540B1 (en) 1998-06-30 2002-05-21 Emc Corporation Moving a logical object from a set of source locations to a set of destination locations using a single command
US6542909B1 (en) * 1998-06-30 2003-04-01 Emc Corporation System for determining mapping of logical objects in a computer system
US6282602B1 (en) * 1998-06-30 2001-08-28 Emc Corporation Method and apparatus for manipulating logical objects in a data storage system
US6883063B2 (en) 1998-06-30 2005-04-19 Emc Corporation Method and apparatus for initializing logical objects in a data storage system
US7383294B1 (en) 1998-06-30 2008-06-03 Emc Corporation System for determining the mapping of logical objects in a data storage system
ATE467171T1 (de) * 1998-08-24 2010-05-15 Microunity Systems Eng System mit breiter operandenarchitektur und verfahren
US7932911B2 (en) * 1998-08-24 2011-04-26 Microunity Systems Engineering, Inc. Processor for executing switch and translate instructions requiring wide operands
US6332188B1 (en) * 1998-11-06 2001-12-18 Analog Devices, Inc. Digital signal processor with bit FIFO
US6377999B1 (en) * 1999-05-10 2002-04-23 Interniche Technologies Inc. Firmware and software protocol parser
DE19948100A1 (de) * 1999-10-06 2001-04-12 Infineon Technologies Ag Prozessorsystem
US6671797B1 (en) * 2000-02-18 2003-12-30 Texas Instruments Incorporated Microprocessor with expand instruction for forming a mask from one bit
US6748521B1 (en) * 2000-02-18 2004-06-08 Texas Instruments Incorporated Microprocessor with instruction for saturating and packing data
US20030005268A1 (en) * 2001-06-01 2003-01-02 Catherwood Michael I. Find first bit value instruction
US20020188830A1 (en) * 2001-06-01 2002-12-12 Brian Boles Bit replacement and extraction instructions
US20030028696A1 (en) * 2001-06-01 2003-02-06 Michael Catherwood Low overhead interrupt
US6937084B2 (en) * 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US7007172B2 (en) * 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6975679B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US6952711B2 (en) * 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US20030023836A1 (en) * 2001-06-01 2003-01-30 Michael Catherwood Shadow register array control instructions
US6976158B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US6985986B2 (en) * 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6934728B2 (en) * 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US7020788B2 (en) * 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
JP2003196259A (ja) * 2001-12-27 2003-07-11 Sharp Corp データ駆動型情報処理装置およびデータ処理方法
US7254696B2 (en) * 2002-12-12 2007-08-07 Alacritech, Inc. Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests
DE10314928A1 (de) * 2003-04-02 2004-11-04 Infineon Technologies Ag Verfahren und programmgesteuerte Einheit zur Bitfeldverschiebung
DE102006055514A1 (de) * 2006-05-24 2007-11-29 Robert Bosch Gmbh Gateway zum Datentransfer zwischen seriellen Bussen
US8732435B1 (en) * 2008-07-30 2014-05-20 Altera Corporation Single buffer multi-channel de-interleaver/interleaver
US9086872B2 (en) * 2009-06-30 2015-07-21 Intel Corporation Unpacking packed data in multiple lanes
US9785565B2 (en) 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
US11263008B2 (en) 2017-03-20 2022-03-01 Intel Corporation Systems, methods, and apparatuses for tile broadcast
US11275588B2 (en) 2017-07-01 2022-03-15 Intel Corporation Context save with variable save state size
US20230098724A1 (en) * 2021-09-25 2023-03-30 Intel Corporation Copy a subset of status flags from a control and status register to a flags register

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4409653A (en) * 1978-07-31 1983-10-11 Motorola, Inc. Method of performing a clear and wait operation with a single instruction
US4525776A (en) * 1980-06-02 1985-06-25 Bell Telephone Laboratories, Incorporated Arithmetic logic unit arranged for manipulating bits
JPS57168347A (en) * 1981-04-09 1982-10-16 Toshiba Corp Computer system
US4742479A (en) * 1985-03-25 1988-05-03 Motorola, Inc. Modulo arithmetic unit having arbitrary offset and modulo values
JP2565495B2 (ja) * 1986-08-27 1996-12-18 株式会社日立製作所 デ−タ処理システム
US5210835A (en) * 1986-08-27 1993-05-11 Ken Sakamura Data processing system having apparatus for increasing the execution speed of bit field instructions
JP2609618B2 (ja) * 1987-08-13 1997-05-14 株式会社東芝 データ処理装置
JP2748957B2 (ja) * 1987-09-30 1998-05-13 健 坂村 データ処理装置
US5084814A (en) * 1987-10-30 1992-01-28 Motorola, Inc. Data processor with development support features
EP0382246A3 (en) * 1989-02-09 1991-09-11 Nec Corporation Bit addressing system
US5201056A (en) * 1990-05-02 1993-04-06 Motorola, Inc. RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output
US5249148A (en) * 1990-11-26 1993-09-28 Motorola, Inc. Method and apparatus for performing restricted modulo arithmetic

Also Published As

Publication number Publication date
KR950033857A (ko) 1995-12-26
EP0664508A3 (en) 1997-04-09
DE69527379D1 (de) 2002-08-22
JPH07219767A (ja) 1995-08-18
EP0664508A2 (en) 1995-07-26
KR100283827B1 (ko) 2001-03-02
DE69527379T2 (de) 2002-11-28
EP0664508B1 (en) 2002-07-17
US5765216A (en) 1998-06-09

Similar Documents

Publication Publication Date Title
JP2932963B2 (ja) 効率的なビット移動能力を有するデータ・プロセッサとその方法
EP1126368B1 (en) Microprocessor with non-aligned circular addressing
US6418527B1 (en) Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods
CN109144568B (zh) 将有效位通道作为矢量断言暴露于cpu
KR100236525B1 (ko) 넓은 데이타 폭의 프로세서에서 다기능 데이타 정렬기
CN100541425C (zh) 标量/矢量处理器
JP3358996B2 (ja) 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ
US6671797B1 (en) Microprocessor with expand instruction for forming a mask from one bit
EP1512068B1 (en) Access to a wide memory
US20070294511A1 (en) Programmable Processor Architecture
JP2001256038A (ja) 柔軟な乗算ユニットを有するデータ・プロセッサ
US6128724A (en) Computation using codes for controlling configurable computational circuit
US5978822A (en) Circuit for rotating, left shifting, or right shifting bits
US5787025A (en) Method and system for performing arithmetic operations with single or double precision
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
JPH07325707A (ja) 複合型掛算器/シフタとその方法
US20240028338A1 (en) Histogram operation
US5742621A (en) Method for implementing an add-compare-select butterfly operation in a data processing system and instruction therefor
US5473557A (en) Complex arithmetic processor and method
US6442729B1 (en) Convolution code generator and digital signal processor which includes the same
JP4955149B2 (ja) ビットfifoを有するディジタル信号プロセッサ
JP2003108435A (ja) ユーザによりプログラム可能なアドレス指定モードを有するシステム及びその方法
US4896264A (en) Microprocess with selective cache memory
US6728741B2 (en) Hardware assist for data block diagonal mirror image transformation
US20040024992A1 (en) Decoding method for a multi-length-mode instruction set

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080528

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090528

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090528

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100528

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110528

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees