JP2002512398A - パックデータ上でシフト演算を実行するための方法および装置 - Google Patents

パックデータ上でシフト演算を実行するための方法および装置

Info

Publication number
JP2002512398A
JP2002512398A JP2000545094A JP2000545094A JP2002512398A JP 2002512398 A JP2002512398 A JP 2002512398A JP 2000545094 A JP2000545094 A JP 2000545094A JP 2000545094 A JP2000545094 A JP 2000545094A JP 2002512398 A JP2002512398 A JP 2002512398A
Authority
JP
Japan
Prior art keywords
mask
gate
bit
data
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000545094A
Other languages
English (en)
Inventor
ジー リーメイ ダニエル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies North America Corp
Original Assignee
Infineon Technologies North America Corp
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 Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of JP2002512398A publication Critical patent/JP2002512398A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 パックデータをシフトするための装置が開示される。この装置ではパックデータがそれぞれnバイトの多重部分データを有し、ここでnは1またはそれ以上の整数である。この装置は、パックデータを所定数のビットだけシフトするシフタと、パックデータのサイズに連結される多重nバイトマスクを有するマスクを発生するマスクジェネレータと、前記マスクを前記しフトされたデータと論理結合し、個別にシフトされる部分データを発生する論理ユニットとを有する。

Description

【発明の詳細な説明】
【0001】 従来の技術 本発明は、パックデータのシフト演算を行う方法および装置に関する。現代の
コンピュータおよびマイクロコントローラは、32ビット、64ビットまたはそ
れ以上の幅のデータを供給する。しかし多数の適用例において、処理されるデー
タはまだ8ビット幅である。したがって上記の32ビット(またはそれ以上の)
マイクロプロセッサはいわゆるパックデータ命令を供給する。このパックデータ
命令は32ビットレジスタまたは64ビットレジスタの内容をデータサイズに依
存して異なって処理する。例えばデータサイズが8ビットパックデータを指示す
れば、1つの32ビットワードは4つの8ビットデータ部分に分割されるか、ま
たは1つの64ビットワードは8つの8ビットデータ部分に分割される。これら
は通常はプロセシングユニットにより独立して処理される。データサイズが16
ビットパックデータを指示すれば、1つの32ビットワードは2つの16ビット
データ部分に分割される。プロセシングユニットは通常、相応の数の独立ユニッ
トを有しており、パックワードの相応の部分を独立して処理する。このような処
理結果の独立部分は例えば別のレジスタに、再びパックデータとして格納される
。 US特許明細書5666298号には、パックデータ上で実行されるシフト命
令に対する装置および関連の方法が記載されている。US特許明細書56662
98号の図8は、独立して動作する複数のシフトユニットが例えば8つのシフト
演算まで独立して64バイトパックデータワードで実行することを示している。
これら複数のユニットは所定量のシリコンスペースを必要とするが、そのような
スペースは高集積素子では必ずしも常に得られるものではない。 発明の要約 本発明の課題は、従来技術よりも必要なリソースが少ない方法および装置を提
供することである。
【0002】 この課題は、nバイトの部分データを形成する多重バイトを有するパックデー
タをシフトするための装置によって解決される。ここでnは1より大きい整数で
ある。この装置は、前記パックデータを所定数のビットだけシフトするためのシ
フタと、多重nバイトのマスクを発生するためのマスクジェネレータと、前記多
重nバイトマスクを前記シフトされたパックデータと論理的に結合し、個別のシ
フト部分データを発生するための論理ユニットを有し、ここで各nバイトのマス
クはシフトされた部分データを整合する。このような構成の利点は、他の目的で
マイクロコントローラまたはマイクロプロセッサで使用され、したがって既に存
在するバレルシフタを再設計ないし交換する必要がないことである。パックデー
タシフト命令の種々の形式により要求される種々のタスクを実行する単純な論理
回路が必要なだけである。 図面の簡単な説明 図1は、本発明の主要関連部分を示すブロック回路図である。 図2は、図1のマスクジェネレータの実施例を示すブロック回路図である。 図3は、図2のバイトマスクジェネレータの実施例を示す回路図である。 図4は、図2のバイトマスクジェネレータの別の実施例を示す回路図である。 図5は、図2のバイトマスクジェネレータの別の実施例を示す回路図である。 図6は、図1の論理ユニットの実施例を示すブロック回路図である。 図7から図9は、図1の実施例により図6と関連して実行される3つの異なる命
令のフローチャートである。 有利な実施例の説明 有利な実施例を32ビットマイクロコントローラとして説明する。このマイク
ロコントローラは、異なるシフト演算をパックデータ上で実行することができる
。したがってパックデータは32ビット幅であり、4つの連結された8ビットバ
イト、または2つの連結された16ビットハーフワード、または1つの32ビッ
トワードを含むことができる。本発明はもちろん、任意のビットサイズ、例えば
64ビット、128ビットまたはそれ以上のプロセッサにも、16ビットマイク
ロプロセッサにも適用することができる。以下の説明では、バイトは8ビットに
対して使用され、ハーフワードは16ビットに対して使用され、ワードは32ビ
ットに対して使用される。 シフト演算をパックデータ上で本発明により実行するために、マイクロコント
ローラは通常、デコーダを有する。このデコーダはそれぞれ制御信号を受信し、
この制御信号により特別のパックデータ命令が実行される。制御信号は、例えば
シフトすべきパックデータを含む専用レジスタと、それぞれの演算の結果を格納
する宛先レジスタと、シフト形式(例えば論理または算術)、シフト量、左また
は右の方向、およびコントロールを含む複数のデータまたはソースとを指定する
。このコントロールはパックデータ形式(バイト、ハーフワード等)を指定する
。デコーダによりデコードされるパックデータ命令により、マイクロプロセッサ
/マイクロコントローラの中央処理ユニットは、デコーダによりデコードされた
信号に基づいて、パックデータのそれぞれの処理を実行する。コントロールおよ
びデータ信号のデコーディングおよび分散は、本発明の一部ではなく、種々多様
に実行することができるから、添付図面は32ビットマイクロコントローラのそ
れぞれの実行ユニットの関連部だけを示す。 図1はバレルシフタ100を示し、このバレルシフタはパックデータシフト命
令を実行する実行ユニットの中央部を形成する。バレルシフタ100は32ビッ
トデータ入力を端子Dから受信し、32ビットデータ結果を出力する。バレルシ
フタはデータワードを桁の数だけ左または右へシフトし、オーバーフロー部分を
ラップアラウンドする。別の実施例では、バレルシフタは左または右へシフトで
きるだけである。ラップアラウンド機能により、それぞれ他の機能へのシフトが
確立される。バレルシフタ100は少なくとも6つの制御線により制御され、こ
れらの制御線は制御ユニット300から発する。制御ユニット300は例えば6
つの制御信号S1〜S6を端子Sから受信する。端子Sは6つの信号端子を有し
、これらの信号端子はシフト量、およびそれぞれのシフト命令のシフト方向を決
定する制御データを搬送する。このサイズは例えば1バイト、ハーフワード、ま
たは1ワードとすることができる。マスクジェネレータ200が設けられており
、これもまた端子Sと接続されている。マスクジェネレータ200は3つの異な
る32ビットマスクを発生し、この32ビットマスクはスイッチユニット400
に供給される。スイッチユニット400は端子Wにより制御される。端子Wは例
えば2つの別個の信号端子からなり、端子Dに存在するそれぞれのデータのサイ
ズを指示するデータを搬送する。スイッチユニット400は3つの32ビット線
セットの1つを選択し、これらを論理ユニット500に接続する。論理ユニット
500では、マスクジェネレータ200の出力がバレルシフタ100の出力と論
理的に結合される。論理ユニット500は、端子Cからの複数の制御線により制
御することができる。論理ユニット500は32ビットワードを、端子Rに供給
されたパックデータ命令の結果として出力する。 パックデータシフト命令を実行するために、中央処理ユニットのデコーダはそ
れぞれのパックデータ命令をデコードし、これによりこの命令に対して使用され
る種々のパラメータを分離する。デコーダはアドレスポインタをそれぞれのデー
タレジスタに対して供給する。データレジスタは図1に示す実行ユニットに、例
えば32ビットデータワードを端子Dに、シフト値と方向を指示する6ビットの
シフト量とシフト方向ワードを端子Sに、命令のパックデータ形式を指示する2
ビット形式データを端子Wに供給する。マスクジェネレータは表1に示すマスク
を発生する。入力Sの最上位ビットS6はシフト方向を指示し、下位の5ビット
S5〜S1はシフト量を指示する。それぞれ異なる3つの32ビット出力が表1
に示されている。
【表1】 左シフトは入力Sの最上位ビットS6により指示され、シフト量は入力Sの下
位の5ビットS5〜S1により指示される。このシフト量はそれぞれのマスクワ
ードを決定する。例えば表1のライン3は2ビット桁だけの左シフトを指示する
。したがってワード出力は、11111111111111111111111111111100からなるマスク
を発生することとなる。ハーフワード出力は、1111111111111100 1111111111111
100からなる出力を発生する。最後にバイト出力は、11111100 11111100 1111110
0 11111100からなるデータマスクを発生することとなる。バレルシフタ100は
到来するデータワードを、端子Sに供給されたデータにより指示される量だけシ
フトする。バレルシフタ100の出力は次に、選択されたマスクジェネレータ出
力と論理結合される。以下の例は、どのように実行ユニットが論理シフトをバイ
トパックデータワード上で実行する間に動作するかを示す。端子Dのデータワー
ドが“11110110011110011011111011101101”により表されるデータワードを搬送
すると仮定する。端子Sの6つのビットは例えば000100である。したがって4桁
の左シフトを実行することとなる。バレルシフタは32ビットワード全体を4つ
だけシフトし、これによりデータワード“01100111100110111110111011011111”
を出力する。マスクジェネレータ200は3つの異なる32ビットマスクワード
を発生する。制御信号Wによってパックデータのバイト形式が指示されると仮定
する。したがって選択されたマスクワードは“11110000 11110000 11110000 111
10000”となる。論理ユニットはこれら2つの32ビットワードを結合する。こ
こでは例えば論理的AND演算が実行される。端子Rに現れる演算結果はしたが
って“01100000 10010000 11100000 11010000”となる。この演算の結果は、バ
イトパック32ビットワードにおける4つの連結バイトの各8つのビット上での
独立論理シフト演算に等しい。 図2は、マスクジェネレータ200の実施例を示す。バイトマスクジェネレー
タ210が設けられており、このバイトマスクジェネレータは3つの端子S1,
S2,S3に接続されている。これら3つの端子はコントロールワードSの下位
の3ビットである。バイトマスクジェネレータ210は表2による出力を発生す
る。
【表2】 これら8つのビットは制御可能インバータユニット260に供給される。イン
バータユニット260の出力は4倍に拡張され、4つの同じ8ビット線を形成す
る。これら4つの8ビット線は連結され、32ビットマスクを形成する。バイト
マスクジェネレータ210の8ビット出力はまた第1ANDユニット220と第
1ORユニット230にも供給される。ANDユニット220は8つのANDゲ
ートからなり、ORユニット230は8つのORゲートからなる。各ANDゲー
トと各ORゲートの第1入力側は、バイトマスクジェネレータ210の8ビット
線の1つに接続されている。ユニット220およびユニット230の各ANDゲ
ートと各ORゲートの第2入力側は制御ワードSの端子Sと接続されている。し
たがってANDユニット220は8つの出力信号を供給し、ORユニット230
は別の8つの出力信号を供給し、これらは連結されて16ビットワードとなり、
これが制御可能インバータユニット270に供給される。これらの16ビット線
は第2ANDユニット240と第2ORユニット250に接続されている。AN
Dユニット240は16のANDゲートからなる。ANDユニット240の各A
NDゲートの第1入力側は16ビット線の1つとそれぞれ接続されている。同じ
ようにORユニット250の各ORゲートの第1入力側は入力16ビット線の1
つにそれぞれ接続されている。ANDユニット240とORユニット250の各
ANDゲートと各ORゲートの第2入力側は端子S5と接続されている。AND
ユニット240は16のビットを出力し、ORユニット250も16のビットを
出力する。これらは連結されて32ビット出力ワードとなる。この出力ワードは
また制御可能インバータ280と結合される。3つのインバータ260,270
,280全ては制御ワードSの最上位ビッットS6により制御される。制御可能
インバータ260の出力は8ビット線の4つのセットと結合される。この4つの
セットは、マスクバイトの4つの等しいセットにより32ビットワードを形成す
る。32ビットパックマスクワードは数字M8により示されている。インバータ
270の16出力ビットは16ビット線の2つのセットと結合され、これはハー
フワード形式の32ビットパックワードを形成する。これにより16ビット線の
両方のセットは同じ16ビットマスクを搬送する。生じた32ビットマスクワー
ドは数字M16により示されている。最後にインバータ280の32ビット出力
は32ビット線と結合され、ワード形式の32ビットマスクワードを形成する。
これは数字M32により示されている。 3つのインバータ260,270,280は制御ワードSの最上位ビットS6
により制御される。S6が0にセットされれば、インバータ260,270,2
80の入力側のそれぞれ8ビット、16ビットまたは32ビットが反転され、S
6が1にセットされれば、3つのインバータ全てはバイパスされる。このように
して表1に従いそれぞれのマスクが発生される。表2によるバイトマスクジェネ
レータ210の出力は16ビット出力に、ANDユニット220とORユニット
230により拡張される。S4が0であれば、発生された16ビットマスクワー
ドの上位8ビットはANDユニット220により自動的に0にセットされる。O
Rユニット220は発生された8ビットマスクを単純に通過させ、これにより1
6ビットマスクの下位8ビット部分を形成する。S4が1にセットされれば、自
動的にORユニット230は全ての下位8ビットを1にセットし、ANDユニッ
ト220は事実上、バイトマスクジェネレータ210により発生された8ビット
マスクを通過させ、16ビットマスクの上位8ビットを形成する。同じようにし
てビットS5は、ANDユニット240とORユニット250によって16ビッ
トマスクから32ビットマスクを形成する。 図3は、図2のバイトマスクジェネレータ210の実施例を示す。端子S1の
信号は“0”と結合され、これにより2ビット信号を形成し、ANDユニット2
11とORユニット212に供給される。ANDユニット211は2つの別個の
ANDゲートからなり、それぞれが2つの入力側と1つの出力側を有する。AN
Dユニット211の各ANDゲートの第1入力側は結合された2ビット信号の一
方とそれぞれ接続されている。またANDユニット211の各ANDゲートの第
2入力側はそれぞれ端子S2に接続されている。同じようにしてORユニット2
12の各ORゲートの第1入力側は2ビット信号の一方にそれぞれ接続されてお
り、ORユニット212の各ORゲートの第2入力側はそれぞれ端子S2に接続
されている。ANDユニット211とORゲート212の2つの出力信号は結合
されて4ビット信号を形成し、この信号はANDユニット213とORユニット
214に供給される。ANDユニット213は4つのANDゲートからなり、そ
れぞれは2つの入力側と1つの出力側を有する。ORユニット214も4つのO
Rゲートからなり、それぞれは2つの入力側と1つの出力側を有する。ANDユ
ニット213の各ANDゲートの第1入力側は4ビット線の1つとそれぞれ接続
されている。ANDユニット213の各ANDゲートの第2入力側は端子S3と
接続されている。同じように、ORユニット214の各ORゲートの第1入力側
は4ビット線の1つとそれぞれ接続されている。ORユニット214の各ORゲ
ートの第2入力側は端子S3に接続されている。ANDユニット213とORユ
ニット214の4つの出力は8ビット信号に結合され、バイトマスクジェネレー
タ210の出力215を形成する。 ANDユニット211とORユニット212は、図2のANDユニット220
およびORユニット230と同様にエクスパンダユニットとして機能する。マス
クジェネレータ210の入力側における2ビットは基本的に入力信号“00”また
は“01”を形成する。端子S2およびANDユニット211とORユニット21
2により、これら2つの異なる入力信号は4つの異なる出力信号に拡張される。
この出力信号の各々は4ビットからなる。同じようにANDユニット213とO
Rユニット214は端子S3と共に表2の8ビット出力ワードを発生する。 図4は、図2のバイトマスクジェネレータ210の別の実施例を示す。端子S
1はANDゲート401およびORゲート402の第1入力側と接続されている
。ANDゲート401とORゲート402の第2入力側は端子S2と接続されてい
る。さらに端子S2はANDゲート404およびORゲート407の第1入力側
と接続されている。ANDゲート401の出力側はANDゲート403およびO
Rゲート406の第1入力側と接続されている。ORゲート402の出力側はA
NDゲート405およびORゲート408の第1入力側と接続されている。端子
S3はANDゲート403,404,405の各第2入力側、およびORゲート
406,407,408の第2入力側と接続されている。発生されたバイトマス
クは端子409〜416で使用することができる。端子416はORゲート40
8の出力側と接続されており、端子415は出力側407と、端子414はOR
ゲート406の出力側と接続されている。端子413は端子S3と接続されてい
る。端子412,411,および410はそれぞれANDゲート405,AND
ゲート404,およびANDゲート403の出力側と接続されている。最後に端
子409は固定信号キャリー0と接続されている。 図5は、図2のバイトマスクジェネレータ210の別の実施例を示す。端子S
1は、ANDゲート505、ANDゲート501,ANDゲート503、および
ORゲート508の第1入力側と接続されている。端子S2はANDゲート50
2の第1入力側、ANDゲート503の第2入力側、およびORゲート504の
第1入力側と接続されている。端子S3はANDゲート501の第2入力側、A
NDゲート502の第2入力側、端子513,ORゲート507の第1入力側、
およびORゲート504の第2入力側と接続されている。ANDゲート501の
出力側はORゲート506の第1入力側と接続されている。ANDゲート502
の出力側はORゲート506の第2入力側、端子511,およびANDゲート5
05の第2入力側と接続されている。ANDゲート503の出力側はORゲート
507の第2入力側と接続されている。ORゲート504の出力側はORゲート
508の第2入力側および端子516と接続されている。ORゲート508の出
力側は端子517と接続されており、ORゲート507の出力側は端子514と
接続されており、ORゲート506の出力側は端子512と接続されており、A
NDゲート505の出力側は端子510と接続されている。最後に端子509が
設けられており、これは固定の0信号と接続されている。バイトマスクは端子5
09から端子517で使用することができる。 図6は図1の論理ユニット500の実施例を示す。この実施例は、図1の制御
信号Cとして、ビット線D31〜D0からなるデータワードDから抽出された4
つのビット信号を使用する。ここでこれら4つのビット信号はビット線D31,
D23,D15およびD7である。これらつの4ビット信号は、ワード(D31
)、ハーフワード(D31,D15)、および4バイト(D31,D23,D1
5およびD7)の最上位ビットである。これら4つのビット信号は1セットを形
成し、これが4つの4×1マルチプレクサ601,602,603および604
の4つの入力側に供給される。4つのマルチプレクサ601,602,603,
604の全ては制御ユニット610により制御され、この制御ユニットは制御信
号Wの2つのビット線と接続されている。各マルチプレクサ601,602,6
03,604は、制御信号Wにしたがって4つの入力信号D31,D23,D15ま
たはD7の1つを選択する。マルチプレクサ601,602,603,604の
各出力信号はANDゲート605,606,607,608の第1入力側にそれ
ぞれ供給される。ANDゲート605,606,607,608の第2入力側は
端子Zと接続されている。この端子Zは、ゼロ充填命令(論理)または符号拡張
命令(算術)のいずれが使用されるかを指示する信号を搬送する。これについて
は後で説明する。ANDゲート605,606,607,608の出力はそれぞ
れ8ビットに拡張され、32ビットワードに連結される。この32ビットワード
はマルチプレクサユニット609に供給される。言い替えると、8ビット線セッ
トの各線は同じ信号を搬送し、4つの異なるセットが連結されて1ワードとなる
。マルチプレクサ湯にと609は32個の2×1マルチプレクサを含む。マルチ
プレクサユニット609の各マルチプレクサの第1入力側は、4つのANDゲー
ト605,606,607,608の拡張出力の32ビット線の1つとそれぞれ
接続されている。マルチプレクサユニット609の各マルチプレクサの第2入力
側はバレルシフタ100の出力の32ビット線の1つとそれぞれ接続されている
。マルチプレクサユニット609の各2×1マルチプレクサを制御する32の制
御線はスイッチユニット400の出力側と接続されている。マルチプレクサユニ
ット609の出力側は端子Rと接続されている。 マルチプレクサユニット609の各2×1マルチプレクサはスイッチユニット
400の32ビット線の1つにより制御され、バレルシフタ100の出力の32
ビット線の1つ、またはANDゲート605〜608の出力の32ビット線の1
つを選択する。 この実施例により、複数の異なるパックデータシフト命令を実行することがで
きる。制御信号Wはどの形式のパックデータが使用されているか、例えばバイト
、ハーフワード、またはワードであるかを選択する。制御ビットZ信号もデコー
ダユニット(図示せず)により発生される。この信号は、ゼロ充填命令または符
号拡張命令のどちらを実行するか決定する。制御データSの端子S6により指示
されるシフト方向と関連し、4つの異なる形式のシフト命令を実行することがで
きる。ゼロ充填右シフト命令は論理右シフトとしても知られている。一方、符号
拡張右シフトは算術右シフト命令としても知られている。さらにゼロ充填または
符号拡張左シフト命令を実行することもできる。マスクジェネレータ400の発
生されたマスクが1である場合には常に、マルチプレクサユニット609のそれ
ぞれの2×1マルチプレクサはバレルシフタ100の出力を選択する。スイッチ
ユニット40の出力のビット線がゼロである場合には常に、マルチプレクサユニ
ット609の各マルチプレクサは、ANDゲート605〜608の拡張出力のビ
ット線を選択する。制御ユニット610はマルチプレクサ601〜604を、ワ
ード形式が選択された場合には、これらが各マルチプレクサに対する出力信号と
してD31を選択するように制御する。さらにハーフワード形式が選択される場
合には、マルチプレクサ601と602はビット線D31を選択し、マルチプレ
クサ603と604はビット線D15を選択する。最後に、バイト形式が制御ワ
ードWにより選択されるなら、制御ユニット610はマルチプレクサ60がビッ
ト線D31を、マルチプレクサ602がビット線D23を、マルチプレクサ60
3がビット線D15を、さらにマルチプレクサ604がビット線D7をそれぞれ
出力信号として選択するようにこれらを制御する。これらの出力信号は論理ユニ
ット605〜608により符号/ゼロ制御信号Zと結合される。したがってAN
Dゲート605〜608の拡張32ビット出力の各バイトは0または1に、入力
データDの各バイト、ハーフワードまたはワードの最上位ビットにしたがってセ
ットすることができる。 図7から図9は、パックデータシフト命令の4つの異なる形式をフローチャー
トにより示す。図7ではパックデータシフト命令が、4バイトを1つの32ビッ
トワードDに連結して実行される4つの符号充填右シフトとしてデコードされる
。図8ではパックデータシフト命令が、2つのハーフワードを1つの32ビット
ワードDに連結して実行される5つのゼロ充填右シフトとしてデコードされる。
そして図9ではパックデータシフト命令が、1つの32ビットワードで実行され
る9つのゼロ充填左シフトとしてデコードされる。 本発明の基本思想は種々異なる形態で実現することができる。例えば本発明の
基本思想はいずれの形式のプロセッサとでも使用することができ、簡単に64ビ
ットプロセッサ、128ビットプロセッサ等に拡張することができる。インバー
タユニット260,270,および280はマルチプレクサユニット609に、
スイッチを制御ビットS6にしたがって制御することにより組み込むことができ
る。論理シフト命令だけを実行すべきであるなら、論理ユニット500は32の
ANDゲートにより簡単に構成することができる。論理ユニットの他の実現も可
能であり、当業者には自明である。
【図面の簡単な説明】
【図1】 図1は、本発明の主要関連部分を示すブロック回路図である。
【図2】 図2は、図1のマスクジェネレータの実施例を示すブロック回路図である。
【図3】 図3は、図2のバイトマスクジェネレータの実施例を示す回路図である。
【図4】 図4は、図2のバイトマスクジェネレータの別の実施例を示す回路図である。
【図5】 図5は、図2のバイトマスクジェネレータの別の実施例を示す回路図である。
【図6】 図6は、図1の論理ユニットの実施例を示すブロック回路図である。
【図7】 図1の実施例により図6と関連して実行される3つの異なる命令のフローチャ
ートである。
【図8】 図1の実施例により図6と関連して実行される3つの異なる命令のフローチャ
ートである。
【図9】 図1の実施例により図6と関連して実行される3つの異なる命令のフローチャ
ートである。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年2月3日(2000.2.3)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正内容】
【0001】 従来の技術 本発明は、パックデータのシフト演算を行う方法および装置に関する。現代の
コンピュータおよびマイクロコントローラは、32ビット、64ビットまたはそ
れ以上の幅のデータを供給する。しかし多数の適用例において、処理されるデー
タはまだ8ビット幅である。したがって上記の32ビット(またはそれ以上の)
マイクロプロセッサはいわゆるパックデータ命令を供給する。このパックデータ
命令は32ビットレジスタまたは64ビットレジスタの内容をデータサイズに依
存して異なって処理する。例えばデータサイズが8ビットパックデータを指示す
れば、1つの32ビットワードは4つの8ビットデータ部分に分割されるか、ま
たは1つの64ビットワードは8つの8ビットデータ部分に分割される。これら
は通常はプロセシングユニットにより独立して処理される。データサイズが16
ビットパックデータを指示すれば、1つの32ビットワードは2つの16ビット
データ部分に分割される。プロセシングユニットは通常、相応の数の独立ユニッ
トを有しており、パックワードの相応の部分を独立して処理する。このような処
理結果の独立部分は例えば別のレジスタに、再びパックデータとして格納される
。 US特許明細書5666298号には、パックデータ上で実行されるシフト命
令に対する装置および関連の方法が記載されている。US特許明細書56662
98号の図8は、独立して動作する複数のシフトユニットが例えば8つのシフト
演算まで独立して64バイトパックデータワードで実行することを示している。
これら複数のユニットは所定量のシリコンスペースを必要とするが、そのような
スペースは高集積素子では必ずしも常に得られるものではない。 EP−A−0743593には、データビットシーケンスをコンピュータ命令
で反復し、反復された複数のデータビットシーケンスからだけなるデータストリ
ングを発生するための方法および装置が開示されている。このことは、シングル
アドレスによりアドレシング可能な所定のビット容量を有するレジスタで実行さ
れる。この方法は、第1のビット長の少なくとも1つのビットシーケンスを有す
るビットストリングを同定し、ビットシーケンスを選択し、選択されたビットシ
ーケンスをレジスタの連続個所で反復し、ビット容量にマッチングするビット長
を有するデータストリングを発生することからなる。ここで第1のビット長は所
定のビット容量よりも小さい。種々のオペランドが使用され、パックデータのシ
フトを含む反復が実行される。 EP−A−0130380には、回転、シフト、およびマージの機能をマスク
下で使用する命令セットと、これらの機能をシングルマシンサイクルで実行する
メカニズムが開示されている。このメカニズムにより1マシンサイクルは並列的
にシフトと回転を、32ビット幅のフルマシンワードまで実行することができる
。発生されたマスクは固定数のビットを命令レジスタに有し、マスク発生ユニッ
トはこれに従いシングルマスクを発生するだけである。 US−A−5729482には、マイクロプロセッサで使用されるシフタが記
載されている。このシフタは右シフト演算、左シフト演算、および右シフト算術
演算の動作を実行することができ、シフトされたデータワークの符号ビットは空
白ビットにコピーされる。これは右へのシフトにより行われる。このシフタは、
回転カウントユニット、回転ユニット、マスクデコーダ、および論理ユニットを
高速演算のために有しており、集積回路で最小のエリアしか占有しない。このマ
スクデコーダは32ビットのマスキングビットを発生する。 発明の要点 本発明の課題は、従来技術よりも必要なリソースが少ない方法および装置を提
供することである。 本発明の側面によれば、多重8ビットバイトを有する、mビット幅のパックデ
ータワードをシフトするための装置であって、前記多重8ビットバイトは多重部
分データワードを形成し、各部分データワードはnバイトを有し、ここでn≧1
であり、かつパックデータ形式に相応し、前記装置は、デコーダ手段と、シフタ
手段と、マスクジェネレータと、論理ユニットとを有し、前記デコーダ手段は、
受信したパックデータ命令をデコードし、mビットデータワード入力、シフトコ
ード入力、およびmビットデータワードに対するパックデータ形式コード入力を
供給するためのものであり、前記シフタ手段は、パックデータを所定数のビット
だけシフトコード入力にしたがってシフトするためのものであり、前記マスクジ
ェネレータはマスクをシフトコード入力にしたがって発生するためのものであり
、前記論理ユニットは、発生されたマスクをシフトされたmビット幅パックデー
タワードと結合し、個別にシフトされた部分データワードを発生するためのもの
である形式の装置において、前記マスクジェネレータは複数のマスクを発生し、 各マスクは、パックデータワードのサイズに連結されるnバイトマスクを有し
、マスクジェネレータは、複数のマスクの1つをパックデータ形式コード入力に
したがって選択するための選択手段を有する。 本発明の別の側面によれば、多重8ビットバイトを有する、mビット幅のパッ
クデータをシフトする方法であって、前記多重8ビットバイトは多重部分データ
ワードを形成し、各部分データワードはnバイトを有し、ここでn≧1であり、
かつパックデータ形式に相応し、当該方法では、受信したパックデータ命令をデ
コードし、mビットのデータワード入力、シフトコード入力、およびmビットデ
ータワードに対するパックデータ形式コード入力を供給し、パックデータを所定
数のビットだけ前記シフトコード入力にしたがってシフトし、マスクを前記シフ
トコード入力にしたがって発生し、発生されたマスクを、mビット幅のシフトさ
れたパックデータワードと結合し、個別にシフトされた部分データワードを発生
する形式の方法において、前記発生されたマスクは複数のマスクを有し、各マス
クは、パックデータワードのサイズに連結されるnバイトマスクを有しており、
複数のマスクをパックデータ形式コード入力にしたがって選択する。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 1730 North First Stre et、San Jose、CA、USA Fターム(参考) 5B022 BA03 CA02 DA01 FA03 5B033 AA05 AA09 BD03 BE04

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 パックデータをシフトするための装置であって、該パックデ
    ータはnバイトの多重部分データを有し、nは1またはそれ以上の整数である形
    式の装置において、 前記パックデータを所定数のビットだけシフトするためのシフタと、 前記パックデータのサイズに連結されるnバイトマスクを有するマスクを発生
    するためのマスクジェネレータと、 前記マスクをシフトされたパックデータと論理的に結合し、個別にシフトされ
    る部分データを発生するための論理ユニットとを有する、 ことを特徴とする装置。
  2. 【請求項2】 前記マスクジェネレータは、nバイトのマスクジェネレータ
    と少なくとも1つのエクスパンダとを有し、 前記nバイトのマスクジェネレータはnバイトマスクを、制御信号の最下位ビ
    ットに基づき発生し、 前記エクスパンダは前記バイトマスクを2nバイトのマスクに拡張し、 ここでnは1またはそれ以上の整数である、請求項1記載の装置。
  3. 【請求項3】 前記エクスパンダは論理ANDユニットと論理ORユニット
    とを有し、 前記論理ANDユニットは、前記nバイトマスクの各ビットを前記制御信号の
    別のビットと論理積結合し、 前記論理ORユニットは、前記マスクの各ビットを前記制御信号の別のビット
    と論理和結合し、 前記2つの論理ユニットの出力は結合されて2nマスクワードとなる、請求項
    2記載の装置。
  4. 【請求項4】 前記マスクジェネレータは直列に接続された複数のエクスパ
    ンダを有し、 各エクスパンダは、先行のエクスパンダのビット幅の2倍のマスクを出力する
    、請求項3記載の装置。
  5. 【請求項5】 前記マスクジェネレータはバイトマスクジェネレータとエク
    スパンダとを有し、 前記バイトマスクジェネレータはバイトマスクを制御信号の最下位ビットに基
    づいて発生し、 前記エクスパンダは前記バイトマスクをワードマスクに拡張する、請求項1記
    載の装置。
  6. 【請求項6】 前記エクスパンダは論理ANDユニットと論理ORユニット
    とを有し、 前記論理ANDユニットは前記マスクの各ビットを前記制御信号の別のビット
    と論理積結合し、 前記論理ORユニットは前記マスクの各ビットを前記制御信号の別のビットと
    論理和結合し、 前記2つの論理ユニットの出力は結合されてワードマスクワードとなる、請求
    項5記載の装置。
  7. 【請求項7】 前記バイトマスクジェネレータは少なくとも3つのビット線
    により制御され、かつ4つのANDゲートと4つのORゲートとを有し、 各ゲートはそれぞれ2つの入力側と1つの出力側とを有し、 第1ANDゲートと第1ORゲートの入力側はそれぞれ第1ビット線と第2ビ
    ット線に接続されており、 第3ビット線は、第3および第4のANDゲートおよびORゲートの各第1入
    力側と接続されており、 第1ANDゲートの出力側は第2ANDゲートおよび第2ORゲートの第2入
    力側と接続されており、 第2ビッット線は第3ANDゲートおよび第3ORゲートの第2入力側と接続
    されており、 第1ORゲートの出力側は第4ANDゲートおよび第4ORゲートの第2入力
    側と接続されており、 第4,第3,第2ORゲートの出力はマスクの最初の3ビットを形成し、 第3ビット線はマスクの第4ビッットを形成し、 第4,第3,および第2ANDゲートの出力はマスクの第5から第7ビットを
    形成する、請求項5記載の装置。
  8. 【請求項8】 前記バイトマスクジェネレータは少なくとも3つのビット線
    により制御され、かつ4つのANDゲートと4つのORゲートを有し、 各ゲートはそれぞれ2つの入力側と1つの出力側とを有し、 第1,第2および第4ANDゲート、並びに第3ORゲートの第1入力側は、
    第1のビット線と接続されており、 第3および第4ANDゲートの第2入力側と第4ORゲートの第1入力側は、
    第2のビット線と接続されており、 第2ANDゲートおよび第4ORゲートの第2入力側と第3ANDゲートおよ
    び第2ORゲートの第1入力側は、第3ビット線と接続されており、 第4ORゲートの出力側は第3ORゲートの第2入力側と接続されており、 第4ANDゲートの出力側は第2ORゲートの第2入力側と接続されており、 第3ANDゲートの出力側は、第1ORゲートの第2入力側および第1AND
    ゲートの第2入力側と接続されており、 第3,第4,および第2ORゲートの出力はマスクの最初の3ビットを形成し
    、 第3ビット線はマスクの第4ビットを形成し、 第1ORゲート、第3、および第1ANDゲートの出力はマスクの第5から第
    7ビットを形成する、請求項5記載の装置。
  9. 【請求項9】 シフトすべきパックデータのサイズを選択する選択ユニット
    を有する、請求項1記載の装置。
  10. 【請求項10】 前記選択ユニットは少なくともバイトサイズとワードサイ
    ズを選択し、 前記マスクジェネレータは少なくともバイトマスクとワードマスクを発生する
    、請求項9記載の装置。
  11. 【請求項11】 前記論理ユニットはマルチプレクサユニットを有し、 該マルチプレクサユニットは、前記パックデータの各バイトに対して1つのマ
    ルチプレクサを有し、かつ前記バイトの1つの最上位ビットを制御信号にしたが
    って選択し、 ANDユニットは、2つの入力側と1つの出力側を備えたANDゲートを前記
    パックデータの各バイトに対して有し、 各ANDゲートは前記マルチプレクサの1つの出力を別の制御信号と結合し、 各ANDゲートの出力側は8つの連続するビット線と接続され、前記パックデ
    ータのサイズを有する論理積出力データを形成し、 第2のマルチプレクサユニットは2×1マルチプレクサを前記パックデータの
    各ビットに対して有し、 各2×1マルチプレクサの第1入力側は前記論理積出力データの出力線の1つ
    と接続されており、 各2×1マルチプレクサの第2入力側は前記シフタの出力線の1つと接続され
    ており、 2×1マルチプレクサの制御入力側は前記マスクジェネレータの出力線の1つ
    と接続されている、請求項1記載の装置。
  12. 【請求項12】 パックデータをシフトするための方法であって、 該パックデータはそれぞれnバイトの多重部分データを有し、 ここでnは1またはそれ以上の整数であり、 シフト演算はシフトを各部分データに基づいて実行する形式の方法において、 パックデータをシフタによりシフトし、 前記パックデータのサイズを有するデータマスクを発生し、 ここで該データマスクは各部分データのシフト部分に整合する部分マスクを含
    み、 前記マスクを前記シフトされたパックデータと論理結合する、 ことを特徴とする方法。
  13. 【請求項13】 前記データマスクは前記パックデータのバイトサイズによ
    り制御される、請求項12記載の方法。
  14. 【請求項14】 パックデータをシフトするための方法であって、 該パックデータはそれぞれnバイトの多重部分データを有し、 ここでnは1またはそれ以上の整数であり、 シフト演算はシフトを各部分データに基づいて実行する形式の方法において、 パックデータをシフタによりシフトし、 前記パックデータのサイズを有するデータマスクを発生し、 ここで該データマスクは各部分データのシフト部分に整合する部分マスクを含
    み、 前記パックデータのサイズを有する符号/ゼロワードを発生し、 ここで前記符号/ゼロワードの部分データの各ビットは、ゼロまたは各部分デ
    ータの符号からなり、 前記データマスクに基づき、シフトされたパックデータのビットまたは符号/
    ゼロワードのビットを選択する、 ことを特徴とする方法。
JP2000545094A 1998-04-23 1999-03-19 パックデータ上でシフト演算を実行するための方法および装置 Pending JP2002512398A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/065,759 US6098087A (en) 1998-04-23 1998-04-23 Method and apparatus for performing shift operations on packed data
US09/065,759 1998-04-23
PCT/US1999/005916 WO1999054812A1 (en) 1998-04-23 1999-03-19 Method and apparatus for performing shift operations on packed data

Publications (1)

Publication Number Publication Date
JP2002512398A true JP2002512398A (ja) 2002-04-23

Family

ID=22064904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000545094A Pending JP2002512398A (ja) 1998-04-23 1999-03-19 パックデータ上でシフト演算を実行するための方法および装置

Country Status (6)

Country Link
US (1) US6098087A (ja)
EP (1) EP1073950B1 (ja)
JP (1) JP2002512398A (ja)
KR (1) KR20010042931A (ja)
DE (1) DE69900980T2 (ja)
WO (1) WO1999054812A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003510682A (ja) * 1999-09-20 2003-03-18 インテル・コーポレーション プレディケーションを用いたマスクに基づくパックされたデータからのデータ要素の選択的書き込み
JP2009512090A (ja) * 2005-10-17 2009-03-19 フリースケール セミコンダクター インコーポレイテッド 埋め込み型マスキングを備える高速ローテータ及びその方法

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738793B2 (en) * 1994-12-01 2004-05-18 Intel Corporation Processor capable of executing packed shift operations
US6275834B1 (en) * 1994-12-01 2001-08-14 Intel Corporation Apparatus for performing packed shift operations
US6260055B1 (en) * 1997-10-15 2001-07-10 Kabushiki Kaisha Toshiba Data split parallel shifter and parallel adder/subtractor
EP1046100A1 (en) * 1998-08-06 2000-10-25 Trimedia Technologies, Inc. Data processor and method of processing data
US6243728B1 (en) * 1999-07-12 2001-06-05 Sony Corporation Of Japan Partitioned shift right logic circuit having rounding support
US6629115B1 (en) * 1999-10-01 2003-09-30 Hitachi, Ltd. Method and apparatus for manipulating vectored data
US6718492B1 (en) * 2000-04-07 2004-04-06 Sun Microsystems, Inc. System and method for arranging bits of a data word in accordance with a mask
US6622242B1 (en) * 2000-04-07 2003-09-16 Sun Microsystems, Inc. System and method for performing generalized operations in connection with bits units of a data word
US6618804B1 (en) * 2000-04-07 2003-09-09 Sun Microsystems, Inc. System and method for rearranging bits of a data word in accordance with a mask using sorting
US6629239B1 (en) * 2000-04-07 2003-09-30 Sun Microsystems, Inc. System and method for unpacking and merging bits of a data world in accordance with bits of a mask word
US6654774B1 (en) * 2000-09-26 2003-11-25 Fujitsu Limited Generation of sign extended shifted numerical values
GB0024312D0 (en) * 2000-10-04 2000-11-15 Advanced Risc Mach Ltd Single instruction multiple data processing
US6738792B1 (en) * 2001-03-09 2004-05-18 Advanced Micro Devices, Inc. Parallel mask generator
JP3763516B2 (ja) * 2001-03-30 2006-04-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 変換プログラム、コンパイラ、コンピュータ装置およびプログラム変換方法
US6611211B2 (en) * 2001-05-04 2003-08-26 International Business Machines Corporation Data mask coding
US20040054877A1 (en) * 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US7685212B2 (en) * 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
US6877019B2 (en) * 2002-01-08 2005-04-05 3Dsp Corporation Barrel shifter
AU2003301920A1 (en) * 2002-11-12 2004-06-03 International Business Machines Corporation Device and method for performing shift/rotate operations
US7282950B1 (en) 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7743085B2 (en) 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7825684B2 (en) 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7298169B2 (en) * 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US7530033B2 (en) 2005-03-15 2009-05-05 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US7694083B1 (en) * 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7797497B1 (en) 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
GB2443439B (en) * 2006-10-30 2009-06-03 Imagination Tech Ltd Digital electronic binary rotator and reverser
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US8285766B2 (en) 2007-05-23 2012-10-09 The Trustees Of Princeton University Microprocessor shifter circuits utilizing butterfly and inverse butterfly routing circuits, and control circuits therefor
WO2013071183A1 (en) 2011-11-11 2013-05-16 Tabula, Inc. Content addressable memory in integrated circuit
US10564966B2 (en) 2011-12-22 2020-02-18 Intel Corporation Packed data operation mask shift processors, methods, systems, and instructions
WO2013101232A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Packed rotate processors, methods, systems, and instructions
US20150186137A1 (en) * 2013-12-27 2015-07-02 Tal Uliel Systems, apparatuses, and methods for vector bit test

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4194241A (en) * 1977-07-08 1980-03-18 Xerox Corporation Bit manipulation circuitry in a microprocessor
US4569016A (en) * 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US5673427A (en) * 1994-03-01 1997-09-30 Intel Corporation Packing valid micro operations received from a parallel decoder into adjacent locations of an output queue
ZA9510127B (en) * 1994-12-01 1996-06-06 Intel Corp Novel processor having shift operations
WO1996017293A1 (en) * 1994-12-01 1996-06-06 Intel Corporation A microprocessor having a multiply operation
GB9509983D0 (en) * 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Replication of data
US5729482A (en) * 1995-10-31 1998-03-17 Lsi Logic Corporation Microprocessor shifter using rotation and masking operations
US5621674A (en) * 1996-02-15 1997-04-15 Intel Corporation Computer implemented method for compressing 24 bit pixels to 16 bit pixels
US5822231A (en) * 1996-10-31 1998-10-13 Samsung Electronics Co., Ltd. Ternary based shifter that supports multiple data types for shift functions

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003510682A (ja) * 1999-09-20 2003-03-18 インテル・コーポレーション プレディケーションを用いたマスクに基づくパックされたデータからのデータ要素の選択的書き込み
JP4921665B2 (ja) * 1999-09-20 2012-04-25 インテル・コーポレーション プレディケーションを用いたマスクに基づくパックされたデータからのデータ要素の選択的書き込み
JP2009512090A (ja) * 2005-10-17 2009-03-19 フリースケール セミコンダクター インコーポレイテッド 埋め込み型マスキングを備える高速ローテータ及びその方法

Also Published As

Publication number Publication date
EP1073950A1 (en) 2001-02-07
WO1999054812A1 (en) 1999-10-28
US6098087A (en) 2000-08-01
KR20010042931A (ko) 2001-05-25
DE69900980T2 (de) 2002-10-31
EP1073950B1 (en) 2002-03-06
DE69900980D1 (de) 2002-04-11

Similar Documents

Publication Publication Date Title
JP2002512398A (ja) パックデータ上でシフト演算を実行するための方法および装置
US5379240A (en) Shifter/rotator with preconditioned data
JP6339164B2 (ja) ベクトルフレンドリ命令フォーマット及びその実行
US7000099B2 (en) Large table vectorized lookup by selecting entries of vectors resulting from permute operations on sub-tables
US4785393A (en) 32-Bit extended function arithmetic-logic unit on a single chip
US7685408B2 (en) Methods and apparatus for extracting bits of a source register based on a mask and right justifying the bits into a target register
US5781457A (en) Merge/mask, rotate/shift, and boolean operations from two instruction sets executed in a vectored mux on a dual-ALU
US9292286B2 (en) Shuffle pattern generating circuit, processor, shuffle pattern generating method, and instruction sequence
EP0627681B1 (en) Apparatus and method for processing data with a plurality of flag groups
US20070124631A1 (en) Bit field selection instruction
JP2009512090A (ja) 埋め込み型マスキングを備える高速ローテータ及びその方法
US20070106882A1 (en) Byte-wise permutation facility configurable for implementing DSP data manipulation instructions
KR0142334B1 (ko) 확장된 비트 슬라이스 프로세서 산술논리 연산 유니트
WO2001006353A1 (en) Conditional instruction execution in a computer
EP0913764B1 (en) Method and apparatus for shifting data
JP4002151B2 (ja) 情報処理装置
EP1634163B1 (en) Result partitioning within simd data processing systems
EP0932273B1 (en) Executing permutations
CN114968369A (zh) 用于采取vliw处理器中的相同执行数据包中的常数扩展槽指定或扩展常数位数的方法
JP2002132497A (ja) 単一命令多重データ処理
US20070106881A1 (en) Bit-wise operation followed by byte-wise permutation for implementing DSP data manipulation instructions
US5708800A (en) High speed microprocessor for processing and transferring N-bits of M-bit data
GB1593136A (en) Data processing
JP2503017B2 (ja) バレルシフタ回路
JPH0876977A (ja) 固定小数点演算装置