JPH0916397A - 複数のコンピュータ・ワードにパックされている複数のサブ・ワード・アイテムの選択混合システム - Google Patents

複数のコンピュータ・ワードにパックされている複数のサブ・ワード・アイテムの選択混合システム

Info

Publication number
JPH0916397A
JPH0916397A JP8166122A JP16612296A JPH0916397A JP H0916397 A JPH0916397 A JP H0916397A JP 8166122 A JP8166122 A JP 8166122A JP 16612296 A JP16612296 A JP 16612296A JP H0916397 A JPH0916397 A JP H0916397A
Authority
JP
Japan
Prior art keywords
word
register
byte
multiplexer
double word
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
JP8166122A
Other languages
English (en)
Other versions
JPH0916397A5 (ja
Inventor
Ruby Bei-Loh Lee
ルビー・ベイ−ロー・リー
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0916397A publication Critical patent/JPH0916397A/ja
Publication of JPH0916397A5 publication Critical patent/JPH0916397A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/762Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data having at least two separately controlled rearrangement levels, e.g. multistage interconnection networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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

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)【要約】 【課題】 複数のサブ・ワード・アイテムを効率的に混
合することができるコンピュータ・システムを提供する
こと。 【解決手段】 混合回路15は複数のレジスタ11、1
2および結果レジスタ13に接続され、複数のレジスタ
11、12にパックされた複数のサブ・ワード・アイテ
ムを混合する。混合されたとき、複数のサブ・ワード・
アイテムは結果レジスタ13に配置される。好ましい例
では、混合回路15はマルチプレクサを使用する。マル
チプレクサの制御入力に接続される制御回路はマルチプ
レクサにより複数のサブ・ワード・アイテムの混合を制
御する制御信号を生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、2つの以上のコン
ピュータ・ワードとしてパックされている複数のサブ・
ワード・アイテムの効率的な選択および混合システムに
関する。
【0002】
【従来の技術】計算システムによって実行される様々な
演算では、選択したアイテムを含むワードを生成するた
めに複数のコンピュータ・ワードとしてパックされてい
るいくつかのアイテムを同時に選択する必要がある。
【0003】そのようなコンピュータ演算の一例は行列
転置である。4×4要素の行列では、4つの要素の各行
が1つのコンピュータ・ワードとしてパックされ、4つ
のコンピュータ・ワードが行列の16個の要素全体を保
持することができる。行列の列の4つの要素は4つのワ
ードの全体にわたって広がる。列の4つの要素を1つの
ワードにするために、行列転置が実行される。行列転置
を実行するには、4つのワードのそれぞれから1つのア
イテムを選択し、4つの列のそれぞれごとに、これをワ
ードとしてパックする必要がある。通常の従来技術の計
算システムでは、そのような演算に20個以上の命令が
必要である。
【0004】
【発明が解決しようとする課題】従って、本発明は複数
のサブ・ワード・アイテムを効率的に混合することがで
きるコンピュータ・システムを提供することを目的とす
る。
【0005】
【課題を解決するための手段】本発明の好ましい例によ
れば、複数のサブ・ワード・アイテムを効率的に混合す
ることを容易にするコンピュータ・システムが提供され
る。複数のレジスタおよび結果レジスタに混合回路が接
続される。混合回路は、複数のレジスタ内にパックされ
ている複数のサブ・ワード・アイテムを混合する。複数
のサブ・ワード・アイテムは、混合されると、結果レジ
スタに置かれる。好ましい例では、混合回路は複数のマ
ルチプレクサを使用して実施される。マルチプレクサの
制御入力に接続された制御回路が、マルチプレクサによ
る複数のサブ・ワード・アイテムの混合を制御する制御
信号を生成する。
【0006】たとえば、レフト・ワード混合命令に応答
して、第1のダブル・ワード・レジスタ中の最も左側の
ワードが第2のダブル・ワード・レジスタ中の最も左側
のワードに連結され、結果が第3のダブル・ワード・レ
ジスタに置かれる。ライト・ワード混合命令に応答し
て、第1のダブル・ワード・レジスタ中の最も右側のワ
ードが第2のダブル・ワード・レジスタ中の最も右側の
ワードに連結され、結果が第3のダブル・ワード・レジ
スタに置かれる。
【0007】レフト・ハーフ・ワード混合命令に応答し
て、第1のダブル・ワード・レジスタの第1のハーフ・
ワードと、第2のダブル・ワード・レジスタの第1のハ
ーフ・ワードと、第1のダブル・ワード・レジスタの第
3のハーフ・ワードと、第2のダブル・ワード・レジス
タの第3のハーフ・ワードが連結され、結果が第3のダ
ブル・ワード・レジスタに置かれる。ライト・ハーフ・
ワード混合命令に応答して、第1のダブル・ワード・レ
ジスタの第2のハーフ・ワードと、第2のダブル・ワー
ド・レジスタの第2のハーフ・ワードと、第1のダブル
・ワード・レジスタの第4のハーフ・ワードと、第2の
ダブル・ワード・レジスタの第4のハーフ・ワードが連
結され、結果が第3のダブル・ワード・レジスタに置か
れる。
【0008】レフト・バイト混合命令に応答して、第1
のダブル・ワード・レジスタの第1のバイトと、第2の
ダブル・ワード・レジスタの第1のバイトと、第1のダ
ブル・ワード・レジスタの第3のバイトと、第2のダブ
ル・ワード・レジスタの第3のバイトと、第1のダブル
・ワード・レジスタの第5のバイトと、第2のダブル・
ワード・レジスタの第5のバイトと、第1のダブル・ワ
ード・レジスタの第7のバイトと、第2のダブル・ワー
ド・レジスタの第7のバイトが連結され、結果が第3の
ダブル・ワード・レジスタに置かれる。ライト・バイト
混合命令に応答して、第1のダブル・ワード・レジスタ
の第2のバイトと、第2のダブル・ワード・レジスタの
第2のバイトと、第1のダブル・ワード・レジスタの第
4のバイトと、第2のダブル・ワード・レジスタの第4
のバイトと、第1のダブル・ワード・レジスタの第6の
バイトと、第2のダブル・ワード・レジスタの第6のバ
イトと、第1のダブル・ワード・レジスタの第8のバイ
トと、第2のダブル・ワード・レジスタの第8のバイト
が連結され、結果が第3のダブル・ワード・レジスタに
置かれる。当業者には理解されるように、他の混合オプ
ションも本発明の趣旨の範囲内である。
【0009】本発明は、選択したアイテムを含むワード
を生成するために複数のコンピュータ・ワードとしてパ
ックされているいくつかのアイテムを同時に選択する必
要がある計算システムによって実行される演算に対する
顕著な性能上の利益をもたらす。たとえば、各4要素行
がコンピュータ・ワードとしてパックされている4×4
要素の行列を転置する前述のケースでは、本発明は、従
来技術を著しく向上させる。2つのコンピュータ・ワー
ドとしてパックされている複数のサブ・ワード・アイテ
ムを混合する本発明の例では、転置を8つの命令で実行
することができる。
【0010】マルチプレクサの行を使用する混合回路の
好ましい例の顕著な利点は、多くのコンピュータ設計で
はすでに、マルチプレクサの行を使用してシフト回路が
実施されていることである。したがって、共通シフト命
令を実行する際に使用される回路を使用して、複数のサ
ブ・ワード・アイテムの混合を実施することもできる。
【0011】
【発明の実施の形態】図1は、本発明の好ましい例によ
って2つのコンピュータ・ダブル・ワードとしてパック
されている複数のサブ・ワード・アイテムの混合(イン
タリーブとも呼ばれる)を実行する回路の簡略化された
ブロック図を示す。第1のコンピュータ・ダブル・ワー
ドはレジスタ11に置かれる。第2のコンピュータ・ダ
ブル・ワードはレジスタ12に配置される。混合回路1
5は、レジスタ11中のコンピュータ・ダブル・ワード
およびレジスタ12中のコンピュータ・ダブル・ワード
としてパックされている複数のサブ・ワード・アイテム
を混合する。
【0012】下記の議論では、ダブル・ワードを64ビ
ットとみなし、ワードを32ビットとみなし、ハーフ・
ワードを16ビットとみなし、バイトを8ビットとみな
す。当業者には理解されるように、ダブル・ワードまた
はワードまたはハーフ・ワード、あるいはそれらの組合
せ中のビットの数は、ユーザまたはシステムの定義に応
じて異なる。
【0013】たとえば、レジスタ11中の第1のコンピ
ュータ・ダブル・ワードは、8バイト(64ビット)、
すなわちバイトa、バイトb、バイトc、バイトd、バ
イトe、バイトf、バイトg、バイトhからなる。レジ
スタ11中の第1のコンピュータ・ダブル・ワードをコ
ンピュータ・ダブル・ワードabcdefghと呼ぶ。
同様に、レジスタ12中の第2のコンピュータ・ダブル
・ワードは、8バイト(64ビット)、すなわちバイト
A、バイトB、バイトC、バイトD、バイトE、バイト
F、バイトG、バイトHからなる。レジスタ12中の第
2のコンピュータ・ダブル・ワードをコンピュータ・ダ
ブル・ワードABCDEFGHと呼ぶ。
【0014】第1のコンピュータ・ダブル・ワードab
cdefghおよび第2のコンピュータ・ダブル・ワー
ドABCDEFGH内のワード・アイテムおよびサブ・
ワード・アイテムは、混合回路15によって選択し混合
することができる。たとえば、レフト・ワード混合命令
に応答して、混合回路15は、第1のコンピュータ・ダ
ブル・ワードabcdefghのレフト・ワードおよび
第2のコンピュータ・ダブル・ワードABCDEFGH
のレフト・ワードをレジスタ13内に置く。レジスタ1
3中の結果は新しいコンピュータ・ダブル・ワードab
cdABCDである。ライト・ワード混合命令に応答し
て、混合回路15は、第1のコンピュータ・ダブル・ワ
ードabcdefghのライト・ワードおよび第2のコ
ンピュータ・ダブル・ワードABCDEFGHのライト
・ワードをレジスタ13内に配置する。レジスタ13中
の結果は新しいコンピュータ・ダブル・ワードefgh
EFGHである。
【0015】レフト・ハーフ・ワード混合命令に応答し
て、混合回路15は、それぞれ、第1のコンピュータ・
ダブル・ワードabcdefghの最も左のハーフ・ワ
ードおよび第2のコンピュータ・ダブル・ワードABC
DEFGHの最も左のハーフ・ワードから、第1のコン
ピュータ・ダブル・ワードabcdefghの1つおき
のハーフ・ワードおよび第2のコンピュータ・ダブル・
ワードABCDEFGHの1つおきのハーフ・ワードを
レジスタ13に置く。レジスタ13中の結果は新しいコ
ンピュータ・ダブル・ワードabABefEFである。
ライト・ハーフ・ワード混合命令に応答して、混合回路
15は、それぞれ、第1のコンピュータ・ダブル・ワー
ドabcdefghの最も右のハーフ・ワードおよび第
2のコンピュータ・ダブル・ワードABCDEFGHの
最も右のハーフ・ワードを含め、第1のコンピュータ・
ダブル・ワードabcdefghの1つおきのハーフ・
ワードおよび第2のコンピュータ・ダブル・ワードAB
CDEFGHの1つおきのハーフ・ワードをレジスタ1
3内に置く。レジスタ13中の結果は新しいコンピュー
タ・ダブル・ワードcdCDghGHである。
【0016】レフト・バイト混合命令に応答して、混合
回路15は、それぞれ、第1のコンピュータ・ダブル・
ワードabcdefghの最も左のバイトおよび第2の
コンピュータ・ダブル・ワードABCDEFGHの最も
左のバイトから、第1のコンピュータ・ダブル・ワード
abcdefghの1つおきのバイトおよび第2のコン
ピュータ・ダブル・ワードABCDEFGHの1つおき
のバイトをレジスタ13内に配置する。レジスタ13中
の結果は新しいコンピュータ・ダブル・ワードaAcC
eEgGである。ライト・バイト混合命令に応答して、
混合回路15は、それぞれ、第1のコンピュータ・ダブ
ル・ワードabcdefghの最も右のバイトおよび第
2のコンピュータ・ダブル・ワードABCDEFGHの
最も右のバイトから、第1のコンピュータ・ダブル・ワ
ードabcdefghの1つおきのバイトおよび第2の
コンピュータ・ダブル・ワードABCDEFGHの1つ
おきのバイトをレジスタ13内に配置する。レジスタ1
3中の結果は新しいコンピュータ・ダブル・ワードbB
dDfFhHである。
【0017】上記の議論は、サブ・ワード・アイテムが
1バイト以上であるサブ・ワード・アイテムの混合を示
すが、当業者には、混合回路15が任意の長さのサブ・
ワードを混合できるように実施できることが理解されよ
う。たとえば、1ビット、または2ビット、または3ビ
ット、または任意の数のビットのサブ・ワード・アイテ
ムを混合回路15によって混合することができる。
【0018】図2は、混合回路15を実施するために使
用できる論理機構の概念的例を示す。レジスタ11中の
コンピュータ・ダブル・ワードの左の32ビット・ワー
ド、レジスタ11中のコンピュータ・ダブル・ワードの
右の32ビット・ワード、レジスタ12中のコンピュー
タ・ダブル・ワードの左の32ビット・ワード、レジス
タ12中のコンピュータ・ダブル・ワードの右の32ビ
ット・ワードはそれぞれ、4対1マルチプレクサ(mu
x)21、4対1マルチプレクサ22、4対1マルチプ
レクサ23、4対1マルチプレクサ24、4対1マルチ
プレクサ25、4対1マルチプレクサ26、4対1マル
チプレクサ27、4対1マルチプレクサ28への入力と
して働く。
【0019】4対1マルチプレクサ21は、レジスタ1
1中のコンピュータ・ダブル・ワードの左の32ビット
・ワード、レジスタ11中のコンピュータ・ダブル・ワ
ードの右の32ビット・ワード、レジスタ12中のコン
ピュータ・ダブル・ワードの左の32ビット・ワード、
レジスタ12中のコンピュータ・ダブル・ワードの右の
32ビット・ワードのうちの1つを選択して4対1マル
チプレクサ31へ送る。4対1マルチプレクサ22は、
レジスタ11中のコンピュータ・ダブル・ワードの左の
32ビット・ワード、レジスタ11中のコンピュータ・
ダブル・ワードの右の32ビット・ワード、レジスタ1
2中のコンピュータ・ダブル・ワードの左の32ビット
・ワード、レジスタ12中のコンピュータ・ダブル・ワ
ードの右の32ビット・ワードのうちの1つを選択して
4対1マルチプレクサ32へ送る。4対1マルチプレク
サ23は、レジスタ11中のコンピュータ・ダブル・ワ
ードの左の32ビット・ワード、レジスタ11中のコン
ピュータ・ダブル・ワードの右の32ビット・ワード、
レジスタ12中のコンピュータ・ダブル・ワードの左の
32ビット・ワード、レジスタ12中のコンピュータ・
ダブル・ワードの右の32ビット・ワードのうちの1つ
を選択して4対1マルチプレクサ33へ送る。4対1マ
ルチプレクサ34、4対1マルチプレクサ35、4対1
マルチプレクサ36、4対1マルチプレクサ37、4対
1マルチプレクサ38に関しても同様である。
【0020】図2で、レジスタ13は、バイト・レジス
タ部41、バイト・レジスタ部42、バイト・レジスタ
部43、バイト・レジスタ部44、バイト・レジスタ部
45、バイト・レジスタ部46、バイト・レジスタ部4
7、バイト・レジスタ部48として表されている。4対
1マルチプレクサ31は、マルチプレクサ21によって
選択されたハーフ・ワードから、バイト・レジスタ部4
1に配置すべき1バイトを選択する。4対1マルチプレ
クサ32は、マルチプレクサ22によって選択されたハ
ーフ・ワードから、バイト・レジスタ部42に配置すべ
き1バイトを選択する。4対1マルチプレクサ33は、
マルチプレクサ23によって選択されたハーフ・ワード
から、バイト・レジスタ部43に配置すべき1バイトを
選択する。4対1マルチプレクサ34、4対1マルチプ
レクサ35、4対1マルチプレクサ36、4対1マルチ
プレクサ37、4対1マルチプレクサ38に関しても同
様である。
【0021】図3は、命令51に応答して、4対1マル
チプレクサ21ないし28および31ないし38に対す
る2ビット制御信号を生成するマルチプレクサ制御論理
機構52を示す。マルチプレクサ制御論理機構52は、
マルチプレクサ21に対する2ビット制御信号61、マ
ルチプレクサ22に対する2ビット制御信号62、マル
チプレクサ23に対する2ビット制御信号63、マルチ
プレクサ24に対する2ビット制御信号64、マルチプ
レクサ25に対する2ビット制御信号65、マルチプレ
クサ26に対する2ビット制御信号66、マルチプレク
サ27に対する2ビット制御信号67、マルチプレクサ
28に対する2ビット制御信号68、マルチプレクサ3
1に対する2ビット制御信号71、マルチプレクサ32
に対する2ビット制御信号72、マルチプレクサ33に
対する2ビット制御信号73、マルチプレクサ34に対
する2ビット制御信号74、マルチプレクサ35に対す
る2ビット制御信号75、マルチプレクサ36に対する
2ビット制御信号76、マルチプレクサ37に対する2
ビット制御信号77、マルチプレクサ38に対する2ビ
ット制御信号78を生成する。
【0022】たとえば、図2に示したマルチプレクサ・
アレイ中の各マルチプレクサごとに、値11base 2(1
2 )を含む制御信号の結果、マルチプレクサは最も左
の入力を選択する。値10base 2(102 )を含む制御
信号の結果、マルチプレクサは最も左の入力の次の入力
を選択する。値01base 2(012 )を含む制御信号の
結果、マルチプレクサは最も右の入力の次の入力を選択
する。値00base 2(002 )を含む制御信号の結果、
マルチプレクサは最も右の入力を選択する。
【0023】当業者には理解されるように、下記の表1
は、前述のレフト・ワード(ワード/レフト)混合命
令、ライト・ワード(ワード/ライト)混合命令、レフ
ト・ハーフ・ワード(ハーフ/レフト)混合命令、ライ
ト・ハーフ・ワード(ハーフ/ライト)混合命令、レフ
ト・バイト(バイト/レフト)混合命令、ライト・バイ
ト(バイト/ライト)混合命令に関する、マルチプレク
サ制御論理機構52によって生成される制御信号値を示
す。
【0024】
【表1】
【0025】当業者には理解されるように、図2は、レ
ジスタ11中のコンピュータ・ダブル・ワードの任意の
バイトおよびレジスタ12中のコンピュータ・ダブル・
ワードの任意のバイトをレジスタ13の任意のバイトに
配置することができる一般的なケースに関する混合回路
15の例を示す。ある種の計算システムでは、バイトの
ある種の組合せのレジスタ13内への配置を促進するこ
とは望ましくない。そのようなケースでは、コンピュー
タ・ハードウェア設計の標準原則によって一般に、一般
的なケースを実施するために使用される図2に示した概
念設計に示された16個のマルチプレクサから、混合回
路15を実施するために必要なマルチプレクサの数およ
び入力寸法を減らせることが、当業者なら理解されよ
う。やはり当業者には理解されるように、レジスタ11
中のコンピュータ・ダブル・ワードの任意のバイトおよ
びレジスタ12中のコンピュータ・ダブル・ワードの任
意のバイトをレジスタ13の任意のバイトに配置できる
ようにするうえで混合回路15が必要とされないときに
は制御信号の数を著しく減少させることができる。
【0026】また、マルチプレクサの行を使用する混合
回路15の好ましい例の1つの利点は、多くのコンピュ
ータ設計ではすでに、マルチプレクサの行を使用してシ
フト回路が実施されていることである。既存のシフト回
路は、様々な混合命令とシフト命令を実行できるように
容易に修正することができる。
【0027】1ビット増分のシフトを可能にするには、
マルチプレクサの追加行を追加することができる。たと
えば、8対1マルチプレクサの行を追加することができ
る。4対1マルチプレクサの行および2対1マルチプレ
クサの行を追加することもできる。
【0028】たとえば、図4は、混合回路15の4ビッ
トを実施するために使用できる論理機構の例を示す。レ
ジスタ11中のコンピュータ・ダブル・ワードの左の3
2ビット・ワード、レジスタ11中のコンピュータ・ダ
ブル・ワードの右の32ビット・ワード、レジスタ12
中のコンピュータ・ダブル・ワードの左の32ビット・
ワード、レジスタ12中のコンピュータ・ダブル・ワー
ドの右の32ビット・ワードはそれぞれ、4対1マルチ
プレクサ81、4対1マルチプレクサ82、4対1マル
チプレクサ83、4対1マルチプレクサ84への入力と
して働く。
【0029】4対1マルチプレクサ81は、レジスタ1
1中のコンピュータ・ダブル・ワードの左の32ビット
・ワード、レジスタ11中のコンピュータ・ダブル・ワ
ードの右の32ビット・ワード、レジスタ12中のコン
ピュータ・ダブル・ワードの左の32ビット・ワード、
レジスタ12中のコンピュータ・ダブル・ワードの右の
32ビット・ワードのうちの1つを選択して4対1マル
チプレクサ91へ送る。4対1マルチプレクサ82は、
レジスタ11中のコンピュータ・ダブル・ワードの左の
32ビット・ワード、レジスタ11中のコンピュータ・
ダブル・ワードの右の32ビット・ワード、レジスタ1
2中のコンピュータ・ダブル・ワードの左の32ビット
・ワード、レジスタ12中のコンピュータ・ダブル・ワ
ードの右の32ビット・ワードのうちの1つを選択して
4対1マルチプレクサ92へ送る。4対1マルチプレク
サ93および4対1マルチプレクサ94に関しても同様
である。
【0030】4対1マルチプレクサ91は、マルチプレ
クサ81によって選択されたハーフ・ワードから1バイ
トを選択して4対1マルチプレクサ101へ送る。4対
1マルチプレクサ92は、マルチプレクサ82によって
選択されたハーフ・ワードから1バイトを選択して4対
1マルチプレクサ102へ送る。4対1マルチプレクサ
103および4対1マルチプレクサ104に関しても同
様である。
【0031】4対1マルチプレクサ101は、マルチプ
レクサ91によって選択されたバイトから2ビットを選
択して2対1マルチプレクサ111へ送る。4対1マル
チプレクサ102は、マルチプレクサ92によって選択
されたバイトから2ビットを選択して2対1マルチプレ
クサ112へ送る。2対1マルチプレクサ113および
2対1マルチプレクサ114に関しても同様である。
【0032】2対1マルチプレクサ111は、マルチプ
レクサ101の2ビットのうちの一方を生成ビット12
1として選択する。2対1マルチプレクサ112は、マ
ルチプレクサ102の2ビットのうちの一方を生成ビッ
ト122として選択する。2対1マルチプレクサ113
は、マルチプレクサ103の2ビットのうちの一方を生
成ビット123として選択する。2対1マルチプレクサ
114は、マルチプレクサ104の2ビットのうちの一
方を生成ビット124として選択する。
【0033】図4は、レジスタ11中のコンピュータ・
ダブル・ワードの任意のビットおよびレジスタ12中の
コンピュータ・ダブル・ワードの任意のビットをレジス
タ13の任意のビットに配置することができる最も一般
的なケースに関する概念的例を示す。大部分の計算シス
テムでは、ビットのある種の組合せをレジスタ13内に
配置することを推進することは望ましくない。そのよう
なケースでは、コンピュータ・ハードウェア設計の標準
原則によって、図4に示した論理構造を使用して最も一
般的なケース向けの混合回路15を完全に実施するため
に必要な256個のマルチプレクサから、混合回路15
を実施するために必要なマルチプレクサの数を著しく減
らせることが当業者なら理解されよう。
【0034】下記の議論によって示すように、マルチプ
レクサの行と共に実施されるシフタは、たとえば、マル
チプレクサを追加し、制御信号を生成する回路を、命令
の混合またはインタリーブ、あるいはその両方を実行で
きるようにすることによって修正することができる。
【0035】上記の議論では、2つのコンピュータ・ダ
ブル・ワードとしてパックされている複数のサブ・ワー
ド・アイテムを混合する論理機構に焦点を当てたが、本
発明の原則は、2つ以上のコンピュータ・ダブル・ワー
ドとしてパックされている複数のサブ・ワード・アイテ
ムを混合するシステムにも適用することができる。
【0036】たとえば、図5は、本発明の好ましい代替
例によって、4つのコンピュータ・ダブル・ワードとし
てパックされている複数のサブ・ワード・アイテムを混
合する回路の簡略化されたブロック図である。第1のコ
ンピュータ・ダブル・ワードはレジスタ131に置かれ
る。第2のコンピュータ・ダブル・ワードはレジスタ1
32に置かれる。第3のコンピュータ・ダブル・ワード
はレジスタ133に置かれる。第4のコンピュータ・ダ
ブル・ワードはレジスタ134に置かれる。混合回路1
35は、レジスタ131中のコンピュータ・ダブル・ワ
ード、レジスタ132中のコンピュータ・ダブル・ワー
ド、レジスタ133中のコンピュータ・ダブル・ワー
ド、レジスタ134中のコンピュータ・ダブル・ワード
としてパックされている複数のサブ・ワード・アイテム
を混合する。
【0037】本発明は、選択したアイテムを含むダブル
・ワードを生成するために複数のコンピュータ・ダブル
・ワードとしてパックされているいくつかのアイテムを
同時に選択する必要がある計算システムによって実行さ
れる演算に対する顕著な性能上の利益をもたらす。たと
えば、本発明は、各4要素行がコンピュータ・ダブル・
ワードとしてパックされている4×4要素の行列の転置
を著しく向上させる。2つのコンピュータ・ダブル・ワ
ードとしてパックされている複数のサブ・ワード・アイ
テムを混合する本発明の例(すなわち、図1、図2、図
3に示した例)では、転置を8つの命令で実行すること
ができる。
【0038】さらに、本発明の教示は、わずかな修正を
加えただけで既存のシフタ技法に適応させることができ
る。たとえば、下記の表2は、64ビット・ダブル・ワ
ード(abcd)に対してハーフ・ワード・右シフトを
実行するハードウェアに関する右シフト(または回転)
の結果を示す。この場合、”a”は上位16ビット
を、”b”は次の16ビットを、”c”は次の16ビッ
トを、”d”は下位16ビットを表す。
【0039】
【表2】
【0040】右シフトの場合、”−”は、たとえば0ま
たは符号拡張ビット(すなわち、符号ビットが複製され
る)でよい。上記の表2は、各16ビット部分のシフト
も示している。これは、シフタの第1段で行うことがで
きる。連続するマルチプレクサ段によって、シフタはビ
ット分解能にシフトすることができる。
【0041】多くの従来型のシフタはすでに、2つの異
なるソース・レジスタを必要としている。たとえば、Pr
ecision Architecture RISC(PA-RISCTM)プロセッサ
(RubyB. Lee著「Precision Architecture」,IEEE Comp
uter,第22巻,第1号,1989年1月,78ページ
ないし91ページ)中の倍シフト命令は、2つのソース
・レジスタを連結し、この一対のレジスタをまとめてシ
フトする。表2に示した回転はたとえば、図6に示した
重複単一ソース・レジスタを使用して実施することがで
きる。図6は、それぞれ、64ビット・ダブル・ワード
abcdを含む、レジスタ211およびレジスタ212
を示す。マルチプレクサ221、マルチプレクサ22
2、マルチプレクサ223、マルチプレクサ224はそ
れぞれ、2ビット制御信号を有する。マルチプレクサ2
21は、入力261と入力271とを有する。マルチプ
レクサ222は、入力262と入力272とを有する。
マルチプレクサ223は、入力263と入力273とを
有する。マルチプレクサ224は、入力264と入力2
74とを有する。回転を実施するには、マルチプレクサ
221ないし224をまとめて共通の2ビット制御信号
に結合することができる。すなわち、入力261、26
2、263、264がまとめて結合され、入力271、
272、273、274がまとめて結合される。マルチ
プレクサ221ないし224用の制御信号は、どの16
ビット・ハーフ・ワードが16ビット出力231、23
2、233、234に置かれるかを決定する。制御信号
が値002であるとき、ターゲット・レジスタに値ab
cdが置かれる。制御信号が値012 であるとき、ター
ゲット・レジスタに値dabcが置かれる。制御信号が
値102 であるとき、ターゲット・レジスタに値cda
bが置かれる。制御信号が値112 であるとき、ターゲ
ット・レジスタに値bcdaが置かれる。
【0042】本発明の好ましい例では、図6に示した論
理機構が、64ビット・シフトを行い、かつそれぞれの
異なるダブル・ワードを各レジスタに置くことができる
ように修正される。たとえば、各マルチプレクサ221
ないし224に対する各制御信号を別々にドライブする
ことによって、以下のように様々な新しい命令を実施す
ることができる。
【0043】追加機能を追加することもできる。たとえ
ば、下記の表3は、64ビット・ダブル・ワード(ab
cd)に対してライト・ハーフ・ワード・シフトを実行
するハードウェアに対する右シフトの結果を示す。この
場合、”a”は上位16ビットを、”b”は次の16ビ
ットを、”c”は次の16ビットを、”d”は下位16
ビットを表す。64ビット・ダブル・ワード”abc
d”を右へシフトすると、64ビット・ダブル・ワー
ド”abcd”がシフトする。この場合、”A”は上位
16ビットを、”B”は次の16ビットを、”C”は次
の16ビットを、”D”は下位16ビットを表す。
【0044】
【表3】
【0045】図7は、レジスタ181が64ビット・ダ
ブル・ワードABCDを含み、レジスタ182が64ビ
ット・ダブル・ワードabcdを含む例を示す。マルチ
プレクサ191、マルチプレクサ192、マルチプレク
サ193、マルチプレクサ194はそれぞれ、別々に制
御される3ビット制御信号を有する。マルチプレクサ1
91は、入力281と、入力291と、入力301とを
有する。マルチプレクサ192は、入力282と、入力
292と、入力302とを有する。マルチプレクサ19
3は、入力283と、入力293と、入力303とを有
する。マルチプレクサ194は、入力284と、入力2
94と、入力304とを有する。制御信号は、どの16
ビット・ハーフ・ワードを16ビット出力201、20
2、203、204に配置するかを決定する。
【0046】図7は、80×5ビット・マルチプレクサ
を使用する例を示す。シフト機能を含む応用例ではおそ
らく、5つの64×4ビット・マルチプレクサを使用し
てシフタの第1段を実施することが好ましい。これによ
って、制御信号の数を1マルチプレクサ当たり2つに減
少させることができる。その場合、第1段用の制御信号
の総数は10になり、これに対して、4つの80×5ビ
ット・マルチプレクサを使用する例では合計で12個の
制御信号が必要である。また、5つの64×4ビット・
マルチプレクサを使用するシフタの第1段を実施するた
めのデータ線の総数は256本であり、これに対して、
4つの80×5ビット・マルチプレクサを使用する例の
場合は合計で400本のデータ線が必要である。他の例
ではデータ線および制御線をさらに減少させることがで
きる。
【0047】図8は、事前に定義されたいくつかの方法
で2つのソース・レジスタR1およびR2からサブ・ワ
ード・アイテムを選択するコンピュータ命令(MIXx
x)251を示す。たとえば、MIXWL(Mix W
ord Left)は、R1の左半分(32ビット)を
R2の左半分に連結する。MIXWR(Mix Wor
d Right)は、R1の右半分をR2の右半分に連
結する。MIXHL(Mix Half−word L
eft)は、R1の第1のハーフ・ワードとR2の第1
のハーフ・ワードを連結し、その後、R1の第3のハー
フ・ワードとR2の第3のハーフ・ワードを連結する。
MIXHR(Mix Half−word Righ
t)は、R1の第2のハーフ・ワードとR2の第2のハ
ーフ・ワードを連結し、その後、R1の第4のハーフ・
ワードとR2の第4のハーフ・ワードを連結する。以
下、同様である。この命令は他のフィールドを含むこと
もできる。当業者には理解されるように、命令中のフィ
ールドの相対位置は、任意のものであり、本発明の趣旨
内で変更することができる。
【0048】MIXxx命令の動作は、下記の表4に記
載したとおりである。
【0049】
【表4】
【0050】この好ましい例を様々な方法で使用して、
ある種の命令のコンピュータ動作を著しく向上させるこ
とができる。たとえば、前述のMIXxx命令を使用し
て、それぞれ、表5に記載した4つのハーフ・ワードを
含む、4つのレジスタr1、r2、r3、r4に含まれ
るハーフ・ワードの4×4行列を転置することができ
る。
【0051】
【表5】
【0052】表5では、a1、a2、a3、a4、b
1、b2、b3、b4、c1、c2、c3、c4、d
1、d2、d3、d4はそれぞれ、16ビットハーフ・
ワードを表す。表5中の4×4行列の転置の結果を下記
の表6に示す。
【0053】
【表6】
【0054】この転置は、8つのMIXxx命令を必要
とし、2つの追加レジスタ(t1およびt2)を使用す
る。これは、一般にマイクロプロセッサでそうであるよ
うに、各命令で2つのレジスタしか読み取れず、かつ1
つのレジスタにしか書込みを行えないと仮定した場合に
可能な命令の最小数である。4×4転置演算では、少な
くとも3つのレジスタを読み取る必要があり、その結果
1つのレジスタに書込みを行う必要がある。したがっ
て、CEILING[3/2]*4=8命令は理論最小
値である。ある命令が3つのレジスタを読み取り、1つ
のレジスタに書込みを行うことができる場合、理論最小
値は4つの命令である。下記の表7は、8つの命令によ
って実行される転置を示す。
【0055】
【表7】
【0056】これらのMIXxx命令がない場合、ハー
フ・ワードの同じ4×4行列転置は、少なくとも20個
の命令および3つの追加レジスタを必要とし、たとえば
Precision Architecture RISCプロセッサにおける
抽出命令および蓄積命令の最適化シーケンスを使用す
る。Ruby B. Lee著「Precision Architecture」,IEEEC
omputer,第22巻,第1号,1989年1月,78ペ
ージないし91ページを参照されたい。したがって、2
0/8=2.5の高速化が達成される。
【0057】本発明の教示の他の使用法は、ビデオ技法
を使用するためのものである。ビデオ入力は多くの場
合、バイト単位であり、RGBフォーマットでかつバイ
ト単位でディスプレイに出力する必要がある。しかし、
すべての内部演算は、より正確な結果を得るためにハー
フ・ワードで実行される。1つのシフト・マージ装置し
か有さないプロセッサでは、ハーフ・ワードをバイトと
してパックし、バイトをハーフ・ワードとしてアンパッ
クするために多数の命令が使用される。これは、単にM
ix命令のバイト・バージョンを使用することによって
最小限に抑えることができる。
【0058】バイト混合命令用のフォーマットを下記の
表8に示す。
【0059】
【表8】
【0060】MIXBxは、事前に定義された2つの方
法で、2つのソース・レジスタr1およびr2からバイ
トを交互に選択する。すなわち、MIXBLは、r1の
4つの奇数バイトとr2の4つの奇数バイトとを交互に
配置し、MIXBRは、r1の4つの偶数バイトとr2
の4つの偶数バイトとを交互に配置する。この演算を下
記の表9に記載する。
【0061】
【表9】
【0062】MIXBL命令を使用してたとえば、バイ
トを、対応するハーフ・ワードの上位半分としてアンパ
ックし、その上位半分をバイトとしてパックすることが
できる。この命令を使用して、それぞれ、各ハーフ・ワ
ードの上位バイトである、8バイトを含むレジスタを、
それぞれ、4つのハーフ・ワードからなる、2つのレジ
スタに「アンパック」することができる。その場合、M
IXBLは、第2のソース・レジスタをr0に設定した
状態で使用される。多くのコンピュータ・アーキテクチ
ャでは、r0は、常に零を提供するものとして定義され
る。r0が常に零なので、r0のすべての8バイトは
「0」である。これを下記の表10に示す。
【0063】
【表10】
【0064】次に、最初のレジスタ中の隣接バイトが、
並行ハーフ・ワード演算命令を使用できるようにrt1
およびrt2中の同じハーフ・ワードトラックで適切に
位置合わせされる(たとえば、a0およびb0がrt1
およびrt2の最も左のハーフ・ワードとなり、c0お
よびd0が次のハーフ・ワードとなり、e0およびf0
が次のハーフ・ワードとなり、g0およびh0がrt1
およびrt2の下位のハーフ・ワードとなる)。
【0065】最初の入力バイト・ストリーム中のハーフ
・ワード境界を横切る一対の隣接するバイト(たとえ
ば、bおよびc、dおよびe、fおよびg)を処理する
必要がある場合、これらのバイトからなるすべての3つ
の対を並行ハーフ・ワード演算のために位置合わせさせ
るにはrt2の1回の右シフトを実行するだけでよい。
すなわち、 EXTRU(Shift rt2 right by 16 bits):rt3=00b0d0f0 (rt1=a0c0e0g0)
【0066】すべての計算が並行ハーフ・ワード演算を
介して実行された後、rt1およびrt2に対して同じ
MIXBx命令を使用してハーフ・ワードをワードにパ
ックし直すことができる。すなわち、 MIXBL rt1,rt2,r gives: r =abcdefgh
【0067】MIBXx命令を使用して、バイトを、対
応するハーフ・ワードの下位半分としてアンパックし、
この下位半分をバイトとしてパックすることもできる。
これは、アンパック時にはr0が第2のソース・レジス
タではなく第1のソース・レジスタとして使用されるこ
とを除いて上記と同じである。また、パック時には、M
IXBL命令ではなくMIXBR命令が使用される。し
たがって、アンパックおよびパックでは下記の演算が行
われる。すなわち、 アンパック: If r=abcdefgh then MIXBL r0,r,rt1 gives: rt1= and MIXBR r0,r,rt2 gives: rt2= パック: MIXBR rt1,rt2,r gives: r =abcdefgh
【0068】前記の議論は、本発明の単に例示的な方法
および例を開示し説明したものである。当業者には理解
されるように、本発明は、その趣旨からも基本的特性か
らも逸脱せずに他の特定の形で実施することができる。
したがって、本発明の開示は、例示的なものであり、特
許請求の範囲に記載した本発明の範囲を制限するもので
はない。
【0069】以下、本発明を要約して挙げる。
【0070】1. 第1のレジスタと、第2のレジスタ
と、第3のレジスタと、第1のレジスタ、第2のレジス
タ及び第3のレジスタに結合され、第1のレジスタおよ
び第2のレジスタ内にパックされている複数のサブ・ワ
ード・アイテムを混合するためであり、混合されたとき
に複数のサブ・ワード・アイテムが第3のレジスタに置
かれる混合回路とを備えたことを特徴とする複数のコン
ピュータ・ワードにパックされている複数のサブ・ワー
ド・アイテムの選択混合システム。
【0071】2. 前記混合回路が、行として構成され
た複数のマルチプレクサを備えることを特徴とする1に
記載のシステム。
【0072】3. 前記マルチプレクサに結合され、該
マルチプレクサによる複数のサブ・ワード・アイテムの
混合を制御する制御信号を生成するための制御回路を備
えることを特徴とする2に記載のシステム。
【0073】4. 前記第1のレジスタが第1のダブル
・ワード・レジスタであり、前記第2のレジスタが第2
のダブル・ワード・レジスタであり、前記第3のレジス
タが第3のダブル・ワード・レジスタであり、前記混合
回路が、レフト・ワード混合命令に応答して、前記第1
のダブル・ワード・レジスタ中の最も左のワードを前記
第2のダブル・ワード・レジスタ中の最も左のワードに
連結し、前記第3のダブル・ワード・レジスタに結果を
置くことを特徴とする1に記載のシステム。
【0074】5. 前記第1のレジスタが第1のダブル
・ワード・レジスタであり、前記第2のレジスタが第2
のダブル・ワード・レジスタであり、前記第3のレジス
タが第3のダブル・ワード・レジスタであり、前記混合
回路が、レフト・ハーフ・ワード混合命令に応答して、
前記第1のダブル・ワード・レジスタの第1のハーフ・
ワードと、前記第2のハーフ・ワード・レジスタの第1
のハーフ・ワードと、前記第1のダブル・ワード・レジ
スタの第3のハーフ・ワードと、前記第2のダブル・ワ
ード・レジスタの第3のハーフ・ワードを連結し、前記
第3のダブル・ワード・レジスタに結果を置くことを特
徴とする1に記載のシステム。
【0075】6. 前記第1のレジスタが第1のダブル
・ワード・レジスタであり、前記第2のレジスタが第2
のダブル・ワード・レジスタであり、前記第3のレジス
タが第3のダブル・ワード・レジスタであり、前記混合
回路が、レフト・バイト混合命令に応答して、前記第1
のダブル・ワード・レジスタの第1のバイトと、前記第
2のダブル・ワード・レジスタの第1のバイトと、前記
第1のダブル・ワード・レジスタの第3のバイトと、前
記第2のダブル・ワード・レジスタの第3のバイトと、
前記第1のダブル・ワード・レジスタの第5のバイト
と、前記第2のダブル・ワード・レジスタの第5のバイ
トと、前記第1のダブル・ワード・レジスタの第7のバ
イトと、前記第2のダブル・ワード・レジスタの第7の
バイトを連結し、前記第3のダブル・ワード・レジスタ
に結果を置くことを特徴とする1に記載のシステム。
【0076】7. 前記第1のレジスタが第1のダブル
・ワード・レジスタであり、前記第2のレジスタが第2
のダブル・ワード・レジスタであり、前記第3のレジス
タが第3のダブル・ワード・レジスタであり、前記混合
回路が、ライト・ワード混合命令に応答して、前記第1
のダブル・ワード・レジスタ中の最も右のワードを前記
第2のダブル・ワード・レジスタ中の最も右のワードに
連結し、前記第3のダブル・ワード・レジスタに結果を
置くことを特徴とする1に記載のシステム。
【0077】8. 前記第1のレジスタが第1のダブル
・ワード・レジスタであり、前記第2のレジスタが第2
のダブル・ワード・レジスタであり、前記第3のレジス
タが第3のダブル・ワード・レジスタであり、前記混合
回路が、ライト・ハーフ・ワード混合命令に応答して、
前記第1のダブル・ワード・レジスタの第2のハーフ・
ワードと、前記第2のダブル・ワード・レジスタの第2
のハーフ・ワードと、前記第1のダブル・ワード・レジ
スタの第4のハーフ・ワードと、前記第2のダブル・ワ
ード・レジスタの第4のハーフ・ワードを連結し、前記
第3のダブル・ワード・レジスタに結果を置くことを特
徴とする1に記載のシステム。
【0078】9. 前記第1のレジスタが第1のダブル
・ワード・レジスタであり、前記第2のレジスタが第2
のダブル・ワード・レジスタであり、前記第3のレジス
タが第3のダブル・ワード・レジスタであり、前記混合
回路が、ライト・バイト混合命令に応答して、前記第1
のダブル・ワード・レジスタの第2のバイトと、前記第
2のダブル・ワード・レジスタの第2のバイトと、前記
第1のダブル・ワード・レジスタの第4のバイトと、前
記第2のダブル・ワード・レジスタの第4のバイトと、
前記第1のダブル・ワード・レジスタの第6のバイト
と、前記第2のダブル・ワード・レジスタの第6のバイ
トと、前記第1のダブル・ワード・レジスタの第8のバ
イトと、前記第2のダブル・ワード・レジスタの第8の
バイトを連結し、前記第3のダブル・ワード・レジスタ
に結果を置くことを特徴とする1に記載のシステム。
【0079】10. (a)レフト・ワード混合命令に
応答して、第1のダブル・ワード中の最も左のワードを
第2のダブル・ワード中の最も左のワードに連結し、第
3のダブル・ワード・レジスタに結果を置くステップ
と、(b)ライト・ワード混合命令に応答して、前記第
1のダブル・ワード中の最も右のワードを前記第2のダ
ブル・ワード中の最も右のワードに連結し、前記第3の
ダブル・ワード・レジスタに結果を置くステップとを含
むことを特徴とする方法。
【0080】11. (c)レフト・ハーフ・ワード混
合命令に応答して、前記第1のダブル・ワードの第1の
ハーフ・ワードと、前記第2のダブル・ワードの第1の
ハーフ・ワードと、前記第1のダブル・ワードの第3の
ハーフ・ワードと、前記第2のダブル・ワードの第3の
ハーフ・ワードを連結し、前記第3のダブル・ワード・
レジスタに結果を置くステップと、(d)ライト・ハー
フ・ワード混合命令に応答して、前記第1のダブル・ワ
ードの第2のハーフ・ワードと、前記第2のダブル・ワ
ードの第2のハーフ・ワードと、前記第1のダブル・ワ
ードの第4のハーフ・ワードと、前記第2のダブル・ワ
ードの第4のハーフ・ワードを連結し、前記第3のダブ
ル・ワード・レジスタに結果を置くステップを含むこと
を特徴とする10に記載の方法。
【0081】12. (c)レフト・バイト混合命令に
応答して、前記第1のダブル・ワードの第1のバイト
と、前記第2のダブル・ワードの第1のバイトと、前記
第1のダブル・ワードの第3のバイトと、前記第2のダ
ブル・ワードの第3のバイトと、前記第1のダブル・ワ
ードの第5のバイトと、前記第2のダブル・ワードの第
5のバイトと、前記第1のダブル・ワードの第7のバイ
トと、前記第2のダブル・ワードの第7のバイトとを連
結し、前記第3のダブル・ワード・レジスタに結果を置
くステップと、(d)ライト・バイト混合命令に応答し
て、前記第1のダブル・ワードの第2のバイトと、前記
第2のダブル・ワードの第2のバイトと、前記第1のダ
ブル・ワードの第4のバイトと、前記第2のダブル・ワ
ードの第4のバイトと、前記第1のダブル・ワードの第
6のバイトと、前記第2のダブル・ワードの第6のバイ
トと、前記第1のダブル・ワードの第8のバイトと、前
記第2のダブル・ワードの第8のバイトとを連結し、前
記第3のダブル・ワード・レジスタに結果を置くステッ
プを含むことを特徴とする10に記載の方法。
【0082】13. (a)レフト・ハーフ・ワード混
合命令に応答して、第1のダブル・ワードの第1のハー
フ・ワードと、第2のダブル・ワードの第1のハーフ・
ワードと、第1のダブル・ワードの第3のハーフ・ワー
ドと、第2のダブル・ワードの第3のハーフ・ワードを
連結し、第3のダブル・ワード・レジスタに結果を置く
ステップと、(b)ライト・ハーフ・ワード混合命令に
応答して、前記第1のダブル・ワードの第2のハーフ・
ワードと、前記第2のダブル・ワードの第2のハーフ・
ワードと、前記第1のダブル・ワードの第4のハーフ・
ワードと、前記第2のダブル・ワードの第4のハーフ・
ワードを連結し、前記第3のダブル・ワード・レジスタ
に結果を置くステップとを含むことを特徴とする方法。
【0083】14. (c)レフト・バイト混合命令に
応答して、前記第1のダブル・ワードの第1のバイト
と、前記第2のダブル・ワードの第1のバイトと、前記
第1のダブル・ワードの第3のバイトと、前記第2のダ
ブル・ワードの第3のバイトと、前記第1のダブル・ワ
ードの第5のバイトと、前記第2のダブル・ワードの第
5のバイトと、前記第1のダブル・ワードの第7のバイ
トと、前記第2のダブル・ワードの第7のバイトとを連
結し、前記第3のダブル・ワード・レジスタに結果を置
くステップと、(d)ライト・バイト混合命令に応答し
て、前記第1のダブル・ワードの第2のバイトと、前記
第2のダブル・ワードの第2のバイトと、前記第1のダ
ブル・ワードの第4のバイトと、前記第2のダブル・ワ
ードの第4のバイトと、前記第1のダブル・ワードの第
6のバイトと、前記第2のダブル・ワードの第6のバイ
トと、前記第1のダブル・ワードの第8のバイトと、前
記第2のダブル・ワードの第8のバイトとを連結し、前
記第3のダブル・ワード・レジスタに結果を置くステッ
プを含むことを特徴とする13に記載の方法。
【0084】15. 複数のレジスタと、結果レジスタ
と、前記複数のレジスタおよび前記結果レジスタに結合
され、前記複数のレジスタにパックされている複数のサ
ブ・ワード・アイテムを混合するためであり、混合され
たときに前記複数のサブ・ワード・アイテムが前記結果
レジスタに置かれる混合回路とを備えたことを特徴とす
るシステム。
【0085】16. 前記混合回路が、複数のマルチプ
レクサを備えることを特徴とする15に記載のシステ
ム。
【0086】17. 前記マルチプレクサに結合され、
該マルチプレクサによる複数のサブ・ワード・アイテム
の混合を制御する制御信号を生成するための制御回路を
備えることを特徴とする16に記載のシステム。
【0087】18. (a)第1のレジスタに第1のワ
ードを置くステップと、(b)第2のレジスタに第2の
ワードを置くステップと、(c)命令に応答して、前記
第1のワードおよび前記第2のワードの複数のサブ・ワ
ード・アイテムを混合するステップと、(d)ステップ
(c)で混合された前記複数のサブ・ワード・アイテム
を結果レジスタに置くステップとを含むことを特徴とす
る方法。
【0088】19. ステップ(c)が、複数のマルチ
プレクサを使用して実行されることを特徴とする18に
記載の方法。
【0089】20. ステップ(c)で、前記マルチプ
レクサが制御回路によって生成される制御信号に従って
複数のサブ・ワード・アイテムを混合することを特徴と
する19に記載の方法。
【0090】21. 第1のレジスタと、第2のレジス
タと、第3のレジスタと、前記第1のレジスタおよび前
記第2のレジスタに結合され、命令に応答して、前記第
1のレジスタから得たサブフィールドを前記第2のレジ
スタから得たサブフィールドに連結する混合回路とを備
え、前記第1のレジスタと前記第2のレジスタとを連結
する際に前記第1のレジスタから得た前記サブフィール
ドが前記第2のレジスタから得た前記サブフィールドに
連続しないことを特徴とするシステム。
【0091】22. 前記混合回路が、前記第1のレジ
スタから得た複数のサブフィールドを前記第2のレジス
タから得た複数のサブフィールドに連結することを特徴
とする21に記載のシステム。
【0092】23. 前記混合回路が、前記第1のレジ
スタから得た前記複数のサブフィールドのうちのサブフ
ィールドと前記第2のレジスタから得た前記複数のサブ
フィールドとを交互に連結することを特徴とする22に
記載のシステム。
【0093】
【発明の効果】本発明によれば、選択したアイテムを含
むワードを生成するために複数のコンピュータ・ワード
としてパックされているいくつかのアイテムを同時に選
択する必要がある計算システムにより実行される演算に
対して顕著な効果をもたらすことができる。
【図面の簡単な説明】
【図1】本発明の好ましい例によって、2つのコンピュ
ータ・ワードとしてパックされている複数のサブ・ワー
ド・アイテムを混合する回路の簡略されたブロック図で
ある。
【図2】本発明の好ましい例によって、2つのコンピュ
ータ・ワードとしてパックされている複数のサブ・ワー
ド・アイテムを混合する回路の概念設計を示す図であ
る。
【図3】本発明の好ましい例によって、2つのコンピュ
ータ・ワードとしてパックされている複数のサブ・ワー
ド・アイテムの混合を制御する選択制御論理機構の簡略
化されたブロック図である。
【図4】本発明の好ましい代替例によって、2つのコン
ピュータ・ワードとしてパックされている複数のサブ・
ワード・アイテムのビット・レベル混合を実行する回路
の他の細部を示す図である。
【図5】本発明の他の好ましい代替例によって、4つの
コンピュータ・ワードとしてパックされている複数のサ
ブ・ワード・アイテムの混合を実行する回路の簡略化さ
れたブロック図である。
【図6】本発明の好ましい例によって多重化命令を実施
するために使用できる回路のブロック図である。
【図7】本発明の好ましい例によって様々な混合命令を
実施するために使用できる回路のブロック図である。
【図8】本発明の好ましい例による様々な混合命令に関
する命令のレイアウトを示す図である。
【符号の説明】
11、12、13 レジスタ 15 混合回路

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 第1のレジスタと、 第2のレジスタと、 第3のレジスタと、 第1のレジスタ、第2のレジスタ及び第3のレジスタに
    結合され、第1のレジスタおよび第2のレジスタ内にパ
    ックされている複数のサブ・ワード・アイテムを混合す
    るためであり、混合されたときに複数のサブ・ワード・
    アイテムが第3のレジスタに置かれる混合回路とを備え
    たことを特徴とする複数のコンピュータ・ワードにパッ
    クされている複数のサブ・ワード・アイテムの選択混合
    システム。
JP8166122A 1995-06-29 1996-06-26 複数のコンピュータ・ワードにパックされている複数のサブ・ワード・アイテムの選択混合システム Pending JPH0916397A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US496-487 1995-06-29
US08/496,487 US5673321A (en) 1995-06-29 1995-06-29 Efficient selection and mixing of multiple sub-word items packed into two or more computer words

Publications (2)

Publication Number Publication Date
JPH0916397A true JPH0916397A (ja) 1997-01-17
JPH0916397A5 JPH0916397A5 (ja) 2004-07-15

Family

ID=23972860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8166122A Pending JPH0916397A (ja) 1995-06-29 1996-06-26 複数のコンピュータ・ワードにパックされている複数のサブ・ワード・アイテムの選択混合システム

Country Status (3)

Country Link
US (1) US5673321A (ja)
EP (1) EP0751456A1 (ja)
JP (1) JPH0916397A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998045774A1 (fr) * 1997-04-08 1998-10-15 Sony Computer Entertainment Inc. Unite arithmetique et procede correspondant
JP2004511039A (ja) * 2000-10-04 2004-04-08 エイアールエム リミテッド 単一命令多数データ処理
JP2010152919A (ja) * 2001-12-20 2010-07-08 Intel Corp プロセッサに関するロード/移動及び複製命令
JP2010524048A (ja) * 2006-09-29 2010-07-15 3ディーラブス インク., エルティーディー. 適応性を有するマイクロプロセッサのレジスタファイル

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
ATE267439T1 (de) 1998-11-09 2004-06-15 Broadcom Corp Anzeigesystem zur mischung von graphischen daten und videodaten
EP1230589A4 (en) * 2000-05-05 2008-03-19 Ruby B Lee METHOD AND SYSTEM FOR PERFORMING PERMUTATIONS USING MODIFIED OMEGA AND EXCHANGE BASED PERMUTATION INSTRUCTIONS
US7174014B2 (en) * 2000-05-05 2007-02-06 Teleputers, Llc Method and system for performing permutations with bit permutation instructions
US6922472B2 (en) 2000-05-05 2005-07-26 Teleputers, Llc Method and system for performing permutations using permutation instructions based on butterfly networks
WO2001086431A1 (en) * 2000-05-05 2001-11-15 Lee Ruby B A method and system for performing subword permutation instructions for use in two-dimensional multimedia processing
US6965991B1 (en) * 2000-05-12 2005-11-15 Pts Corporation Methods and apparatus for power control in a scalable array of processor elements
US7707929B1 (en) * 2004-06-07 2010-05-04 Norman R Bourgeois Outdoor cooking apparatus
GB2409065B (en) * 2003-12-09 2006-10-25 Advanced Risc Mach Ltd Multiplexing operations in SIMD processing
US7493481B1 (en) 2004-05-17 2009-02-17 Netxen, Inc. Direct hardware processing of internal data structure fields
US20070124631A1 (en) * 2005-11-08 2007-05-31 Boggs Darrell D Bit field selection instruction
US8156310B2 (en) * 2006-09-11 2012-04-10 International Business Machines Corporation Method and apparatus for data stream alignment support
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
GB2456775B (en) * 2008-01-22 2012-10-31 Advanced Risc Mach Ltd Apparatus and method for performing permutation operations on data
US20100312991A1 (en) * 2008-05-08 2010-12-09 Mips Technologies, Inc. Microprocessor with Compact Instruction Set Architecture
CN102077195A (zh) * 2008-05-08 2011-05-25 Mips技术公司 具有紧凑指令集架构的微处理器
EP2798459B1 (en) 2011-12-28 2019-02-27 Intel Corporation Reducing the number of io requests to memory when executing a program that iteratively processes contiguous data
US10489155B2 (en) * 2015-07-21 2019-11-26 Qualcomm Incorporated Mixed-width SIMD operations using even/odd register pairs for wide data elements
US9965275B2 (en) * 2015-07-31 2018-05-08 Arm Limited Element size increasing instruction

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3535694A (en) * 1968-01-15 1970-10-20 Ibm Information transposing system
US3914744A (en) * 1973-01-02 1975-10-21 Honeywell Inf Systems Shifting apparatus
US3887799A (en) * 1973-12-03 1975-06-03 Theodore P Lindgren Asynchronous n bit position data shifter
US4512018A (en) * 1983-03-08 1985-04-16 Burroughs Corporation Shifter circuit
US5113516A (en) * 1989-07-31 1992-05-12 North American Philips Corporation Data repacker having controlled feedback shifters and registers for changing data format
US5042007A (en) * 1990-02-26 1991-08-20 Eastman Kodak Company Apparatus for transposing digital data
US5423010A (en) * 1992-01-24 1995-06-06 C-Cube Microsystems Structure and method for packing and unpacking a stream of N-bit data to and from a stream of N-bit data words

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998045774A1 (fr) * 1997-04-08 1998-10-15 Sony Computer Entertainment Inc. Unite arithmetique et procede correspondant
JP2004511039A (ja) * 2000-10-04 2004-04-08 エイアールエム リミテッド 単一命令多数データ処理
JP2010152919A (ja) * 2001-12-20 2010-07-08 Intel Corp プロセッサに関するロード/移動及び複製命令
US8650382B2 (en) 2001-12-20 2014-02-11 Intel Corporation Load/move and duplicate instructions for a processor
JP2014089730A (ja) * 2001-12-20 2014-05-15 Intel Corp プロセッサに関するロード/移動及び複製命令
US9043583B2 (en) 2001-12-20 2015-05-26 Intel Corporation Load/move and duplicate instructions for a processor
JP2010524048A (ja) * 2006-09-29 2010-07-15 3ディーラブス インク., エルティーディー. 適応性を有するマイクロプロセッサのレジスタファイル

Also Published As

Publication number Publication date
EP0751456A1 (en) 1997-01-02
US5673321A (en) 1997-09-30

Similar Documents

Publication Publication Date Title
JPH0916397A (ja) 複数のコンピュータ・ワードにパックされている複数のサブ・ワード・アイテムの選択混合システム
US5933650A (en) Alignment and ordering of vector elements for single instruction multiple data processing
JP3771968B2 (ja) コンピュータ及びコンピュータ動作方法
EP0743594B1 (en) Matrix transposition
EP0743593B1 (en) Replication of data
EP0744686B1 (en) Manipulation of data
US6816961B2 (en) Processing architecture having field swapping capability
US9672033B2 (en) Methods and apparatus for transforming, loading, and executing super-set instructions
JPH03144783A (ja) 入出力システム
US20070250683A1 (en) Alignment and ordering of vector elements for single instruction multiple data processing
JPH05508499A (ja) 特殊目的ブール演算装置のための方法およびその装置
JP7213095B2 (ja) ベクトルレジスタのアクセス
US7822955B2 (en) Data processing apparatus and method for utilizing endianess independent data values
US7761694B2 (en) Execution unit for performing shuffle and other operations
JP2009512090A (ja) 埋め込み型マスキングを備える高速ローテータ及びその方法
CN100489829C (zh) 双模计算机处理器中索引式载入及储存操作的系统及方法
US6408320B1 (en) Instruction set architecture with versatile adder carry control
EP1634163B1 (en) Result partitioning within simd data processing systems
EP3655852B1 (en) Vector interleaving in a data processing apparatus
JPS623332A (ja) 情報処理装置
JP2567134B2 (ja) ビットフィールド論理演算処理装置およびそれを具備するモノリシックマイクロプロセッサ
JP5253406B2 (ja) デジタル電子バイナリ回転器及び反転器
CN121501344A (zh) 具有向量变换执行的处理装置
JP2859645B2 (ja) ベクトル処理システム
JPH0625966B2 (ja) マイクロプログラム制御装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050301

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050726