JPH113226A - 統合グラフィックス機能を有するcpu用のビジュアル命令セット - Google Patents

統合グラフィックス機能を有するcpu用のビジュアル命令セット

Info

Publication number
JPH113226A
JPH113226A JP9278845A JP27884597A JPH113226A JP H113226 A JPH113226 A JP H113226A JP 9278845 A JP9278845 A JP 9278845A JP 27884597 A JP27884597 A JP 27884597A JP H113226 A JPH113226 A JP H113226A
Authority
JP
Japan
Prior art keywords
register
microprocessor
graphics
instruction
destination
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
JP9278845A
Other languages
English (en)
Inventor
Robert Yung
ロバート・ユング
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH113226A publication Critical patent/JPH113226A/ja
Pending 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
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Record Information Processing For Printing (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】標準的なマイクロプロセッサの整数/浮動小数
点演算に加えてグラフィックス演算をサポートするため
の最適化されたスーパースカラー・マイクロプロセッサ
アーキテクチャを提供する。 【解決手段】 汎用CPUへのハードウェアの追加を最
小限にしてグラフィックス命令の実行を最適化するため
のいくつかの特殊なグラフィックス命令及びそれらの命
令を実行するためのハードウェアである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、統合グラフィック
ス機能を有するスーパースカラー中央処理装置(CP
U)に関するものである。
【0002】
【従来の技術】歴史的に見ると、初期の頃の従来技術の
コンピュータシステムにおけるCPUはグラフィックス
とノングラフィックスの両方の機能を扱って来た。それ
からしばらく後の従来技術のコンピュータシステムで
は、補助ディスプレイプロセッサが用いられた。それよ
り後の他の従来技術によるコンピュータシステムでは、
たとえば補助グラフィックスプロセッサが用いられるよ
うになった。これらのグラフィックスプロセッサは、汎
用CPUの場合における図形処理の大半の部分を行うも
のであった。
【0003】マイクロプロセッサの場合は、技術の進歩
によって、小さな面積内にますますより多くの電気回路
を実装することができるようになるにつれて、前記のよ
うなグラフィックスプロセッサの代わりに、汎用CPU
にビルトイングラフィックス機機能を一体化して組み込
むことがしだいに多く望まれるようになってきた。従来
技術による一部の新しいコンピュータシステムでは、こ
のような機能の組込みが始まっている。しかしながら、
これらの新しい従来技術のコンピュータシステムに統合
して組み込まれるグラフィックス機能の量と性質は、ま
だ非常に限定されており、トレードオフを伴うのが普通
である。CPUに統合して組み込みまれていることが知
られている具体的なグラフィックス機能としては、フレ
ームバッファチェック、ピクセルマージ付き加算、及び
zバッファマージ付き加算がある。これらの新しい従来
技術のシステム上で行われる図形処理の大部分は、依然
としてビルトイングラフィックス機能が付加されていな
い汎用CPUにより、あるいは補助ディスプレイ/グラ
フィックスプロセッサによって処理されている。
【0004】グラフィックス機能を組み込んだRISC
マイクロプロセッサの一例にモトローラMC88110
がある。このマイクロプロセッサは、その整数実行装
置、乗算、除算及び浮動小数点加算装置の他に、2つの
専用グラフィックス装置が付加されている。その付加グ
ラフィックス装置は、ピクセル加算実行装置及びピクセ
ルパック実行装置である。このモトローラプロセッサで
は、他の実行装置で他の機能のために使用される64ビ
ットのデータ経路に複数のピクセルをパックすることが
可能である。従って、複数のピクセルを一度に処理する
ことができる。パッキング実行装置におけるパッキング
オペレーションは、ピクセルを64ビットフォーマット
にパックする。ピクセル加算オペレーションでは、相互
にピクセル値を足したり、引いたりすることが可能であ
り、複数のピクセルが64ビットフィールドで一度に減
算される。これには、各8ビット境界毎に通常加算器で
生じる桁上げをディスエーブルにする必要がある。ま
た、このモトローラプロセッサは、乗算結果が次のピク
セル値表現中に溢れ出ないように、ピクセルをゼロが高
位ビットに入るようにしてフィールドに入れて通常の乗
算装置を用いて行われるピクセル乗算オペレーションも
可能なようになっている。
【0005】インテル I860マイクロプロセッサは、
zバッファ・グラフィックス命令の実行を可能にするグ
ラフィックス装置を組み込んだものである。これらは、
基本的には、3次元ディスプレイでどのピクセルを他の
ピクセル前に置くべきであるか決定するのに必要な複合
オペレーションである。インテルMMX命令セットは、
モトローラMC88110で提供される命令を拡張した
形で、汎用マイクロプロセッサ上で実行される多数の区
分グラフィックス命令を与える。
【0006】
【発明が解決しようとする課題】複数のピクセル値を有
するパック型区分レジスタを用いて他のグラフィックス
機能をより迅速に実行できるようにするすることが要望
されている。
【0007】
【課題を解決するための手段】本発明は、標準的なマイ
クロプロセッサの整数及び浮動小数点演算に加えて、グ
ラフィックス演算をサポートするための最適化されたス
ーパースカラー・マイクロプロセッサアーキテクチャで
ある。本願では、汎用CPUへのハードウェアの追加を
最小限にしてグラフィックス命令の実行を最適化するた
めのいくつかの特殊なグラフィックス命令及びそれらの
命令を実行するためのハードウェアが開示される。本発
明においては、グラフィックス演算でしばしば必要にな
る特殊な論理演算を行うことが可能である。特に、一つ
の命令がオペランドの平方根で割った1の値を計算し、
もう一つの命令が、マスク機能によって、2つの区分値
の掛算及びこれらの値とは別の第3の値との加算を両方
とも行うことが可能である。これらの各命令は、1つの
レジスタ中の複数の区分ピクセル値に対して作用する。
【0008】あちこちの区分ピクセルフィールドを処理
するためにいくつかの命令が用意されている。特に、抽
出オペレーションによってソースレジスタの指定された
フィールド宛先レジスタに格納することが可能になる。
または、指定されたビットを抽出することもできる。指
定されたフィールドまたはビットをマスクレジスタによ
って指示することができる。さらに、マスクレジスタを
用いて条件付き移動、ロードまたは実行を行うことによ
り、どの区分フィールドまたはビットについて処理を行
うかを指示することができる。
【0009】もう1つの命令が、先行1または先行ゼロ
を検出して、その位置にポインタを戻す。あるいは、ス
トリング探索を用いて特定のパターンを検出するように
してもよい。これは、暗号化及びデータ圧縮/圧縮解除
に役立つ。
【0010】もう1つの特殊な命令は、浮動小数点レジ
スタファイルと整数レジスタファイルとの間のアドレス
またはデータの交換を可能にするものである。もう1つ
の命令は、マスクがどのフィールドをシフトさせるかを
指定するか、あるいは1つ以上のフィールドからシフト
アウトされるビットを記憶するようにして、複数の区分
フィールドが次の区分フィールド中にシフトすることな
くそれぞれ内部で並列にシフトされるようにしたマスク
による区分桁送りを可能にする。
【0011】また、本発明は、記憶場所からグラフィッ
クスレジスタへのロードも可能で、この場合ロードオペ
レーションはアドレスレジスタをインクリメントする。
さらに、本発明は複数の区分変数について、変数の絶対
値を変数自身に加えるための命令を提供する。
【0012】また、本発明によれば、単一命令による区
分除法演算が可能である。
【0013】以下、添付図面を参照して本発明をさらに
詳細に説明する。
【0014】
【発明の実施の形態】
CPUの全体的アーキテクチャ 図1は、本発明の技術内容を組み込んだ一例のグラフィ
ックスコンピュータシステムのCPUを図解したブロッ
ク図である。
【0015】図示のように、CPU10は命令キャッシ
ュ40に接続された先取り/ディスパッチ装置(PD
U)46を有する。命令は、命令メモリ管理装置(IM
MU)44aを利用してバス12上のキャッシュまたは
主記憶装置からこの装置によってフェッチされる。デー
タは、データメモリ管理装置(DMMU)44bと共に
動作するロード記憶装置(LSU)48を用いて主記憶
装置またはデータキャッシュ42からフェッチされる。
【0016】PDU46はパイプラインバス14に沿っ
て複数のパイプライン式実行装置に並列に最大4つの命
令を出す。整数演算命令は2つの整数実行装置(IE
U)、すなわち整数乗算/除算装置30及び整数ALU
31の1つに送られる。これらの2つの装置は、整数レ
ジスタファイル36へのアクセスを共有することによっ
て整数演算のオペランド及び結果を記憶する。
【0017】これらとは別に3つの浮動小数点演算装置
が備わっている。すなわち、浮動小数点除算/平方根実
行装置25、浮動小数点/グラフィックスALU26、
浮動小数点/グラフィックス乗算器28がパイプライン
バス14に接続されており、浮動小数点レジスタファイ
ル38を共有する。浮動小数点レジスタファイルは、浮
動小数点演算及びグラフィックス演算のオペランドと結
果とを記憶する。
【0018】浮動小数点装置26及び28を通るデータ
経路は、並列に8−8ビットピクセル表現(あるいは4
−16ビット、または2−32ビット表現)に対応する
ことができるよう64ビットに拡張されている。このよ
うに、53ビット+3エキストラビット(保護ビット、
丸めビット及びスティッキービット、すなわちGRS)
の標準的浮動小数点経路は、本発明によりグラフィック
ス命令に対応するよう拡張されている。本発明は任意の
データサイズに適用することができる。直列の複数の6
4ビット量に対して命令を作用させることにより、ある
いはより大きいレジスタ及びバスサイズを用いることに
よって64ビットのレジスタサイズ及び演算サイズを使
用することもできる。
【0019】さらに、IEUはいくつかのグラフィック
ス演算も行い、LSD48用のロード/ストア命令のア
ドレスにアドレス空間識別子(ASI)を付加して、ア
クセス中のアドレス空間を識別する。また、LSU48
は特にグラフィックスデータのために設計されたいくつ
かのロード及びストアオペレーションをサポートする。
メモリ参照は仮想アドレスで行われる。MMU44a−
44bは、仮想アドレスを物理アドレスにマップするた
めのアドレス変換索引バッファ(TLB)を有する。
【0020】2つの区分グラフィックス実行経路 図2は、浮動小数点/グラフィックス実行装置26及び
28をより詳細に示したものである。図2は、これらの
実行装置によってグラフィックス命令のための2つの区
分実行経路、すなわち装置26による第1の区分実行経
路と装置28による第2の区分実行経路が得られること
を示している。これらの両経路は、先取り/ディスパッ
チ装置46に接続されたパイプラインバス14に接続さ
れている。ハードウェアと命令を2つの異なる実行経路
に分けることによって、パイプラインの各々のサイクル
毎に2つの独立したグラフィックス命令を並列に実行す
るこができる。このように命令及びハードウェアを2つ
の経路に分けることは、典型的なグラフィックスアプリ
ケーションのスループットを最適化するためになされた
ものである。
【0021】図2には、グラフィックス状態レジスタ
(GSR)50も示されている。このレジスタは、両方
の実行経路でグラフィックス命令により使用されるスケ
ールファクタ及び整列オフセットデータを記憶するの
で、2つの経路の外部に設けられている。各実行経路
は、バス18を介してグラフィックス状態レジスタ中の
情報を供給される。グラフィックス状態レジスタは、
バス20を介してIEUにより書き込まれる。
【0022】グラフィックス状態レジスタ 次に、図3には、グラフィックス状態レジスタ(GS
R)の一実施形態の関連部分が図解されている。この実
施形態においては、GSR50はビット0〜2にオフセ
ットを、ビット3〜8にスケールファクタを記憶するた
めに使用され、残りのビットは予備として残される。オ
フセットは、整列前のピクセルアドレスの最下位3ビッ
ト(alignaddr_offset)54であり、
スケールファクタ52はピクセルフォーマット化のため
に使用される。alignaddrオフセット54はG
SR[2:0]ビットに記憶され、スケールファクタ5
2はGSR[6:3]ビットに記憶される。また、GS
Rは、以下に説明するように、シフトオペレーションか
ら生じるビットを記憶するフィールドを設けることもで
き、それによってビットがシフトしたことを示すか、ま
たは単にシフトが起こったことを示すフラグをセットす
る。GSR50からの読出し及びGSR50への書込み
を行うために、2つの特別な命令RDASR及びWRA
SRが用意されている。
【0023】FP/グラフィックスALU26 次に、図4には、装置26の第1の区分実行経路の一実
施形態の関連部分を図解したブロック図が示されてい
る。
【0024】パイプラインバス14は、PDU46から
の復号された命令を3つの機能回路の1つに供給する。
最初の2つの機能装置、すなわち区分桁上げ加算器37
及びグラフィックス論理回路39は、浮動小数点加算器
及び整数論理装置に通常に具備されるハードウェアを含
む。回路はグラフィックス演算をサポートするよう変更
されている。また、図形拡大及びマージオペレーション
とグラフィックスデータ整列オペレーションを両方共を
サポートするために別の回路60が付加されている。ラ
イン21上の制御信号は、どの回路が復号された命令を
受け取るかを選択し、また、どの出力がマルチプレクサ
43を介して宛先レジスタ35cに供給されるかを選択
する。宛先レジスタ35c、オペランドレジスタ35a
及び35bは、図1の浮動小数点レジスタファイル38
で特定のレジスタの例である。
【0025】各ディスパッチ毎に、PDU46は、グラ
フィックスデータ区分加算/減算命令、グラフィックス
データ整列命令、グラフィックスデータ拡大/マージ命
令あるいはグラフィックスデータ論理演算命令を装置2
6へディスパッチすることができる。区分桁上げ加算器
37は、区分グラフィックスデータ加算/減算命令を実
行し、拡大・マージ/グラフィックスデータ整列回路6
0は、GSR50に記憶されたalignaddr_o
ffsetを用いてグラフィックスデータ整列命令を実
行する。また、グラフィックスデータ拡大・マージ/グ
ラフィックスデータ整列回路60は、グラフィックスデ
ータマージ/拡大命令も実行する。グラフィックスデー
タ論理演算回路39は、グラフィックスデータ論理演算
を実行する。
【0026】区分桁上げ加算器37の機能及び構成は、
複数の加算/減算を区分されたオペランドの異なる部分
に対して同時に行うことができるようにハードウェアを
何回も重複させて設けた以外は、当技術分野で周知の多
くの整数実行装置に見られる簡単な桁上げ加算器と同様
である。さらに、桁上げチェーンは、任意により小さい
チェーンに分解することができる。グラフィックスデー
タ論理演算回路39の機能及び構成は、複数の論理演算
を区分されたオペランドの異なる部分に対して同時に行
うことができるようにハードウェアを何回も重複させて
設けた以外は、当技術分野で周知の多くの整数実行装置
に見られる論理演算回路と同様である。従って、グラフ
ィックスデータ論理演算回路39についてはこれ以上の
説明しない。
【0027】FP/グラフィックス乗算装置28 次に、図5には、FP/グラフィックス乗算装置28の
一実施形態の関連部分をさらに詳細に図解したブロック
図が示されている。この実施形態においては、乗算装置
28は、互いに図示のように接続されたピクセル距離計
算回路56、区分乗算器58、グラフィックスデータパ
ッキング回路59及びグラフィックスデータ比較回路6
4よりなる。さらに、いくつかのレジスタ55a〜55
c(浮動小数点レジスタファイル38中の)と4:1マ
ルチプレクサ53が、図示のように相互に、また前記の
各構成要素と接続されている。各ディスパッチ毎に、P
DU46は、ピクセル距離計算命令、グラフィックスデ
ータ区分乗算命令、グラフィックスデータパッキング命
令、あるいはグラフィックスデータ比較命令を装置28
へディスパッチすることができる。ピクセル距離計算回
路56は、ピクセル距離計算命令を実行する。区分乗算
器58は、グラフィックスデータ区分乗算命令を実行す
る。データパッキング回路59は、グラフィックスデー
タパッキング命令を実行する。グラフィックスデータ比
較回路64は、グラフィックスデータ比較命令を実行す
る。
【0028】区分乗算器58及びグラフィックスデータ
比較回路64の機能及び構成は、区分されたオペランド
の異なる部分に対して複数の乗算及び比較演算を同時に
行うことができるよう、ハードウェアを何回も重複させ
て設けた以外は、当技術分野の多くの整数実行装置で見
られる単純な乗算器及び比較回路と同様である。さら
に、区分乗算器には丸め機能用の複数のマルチプレクサ
が設けられ、比較マスクが比較回路64によって生成さ
れる。
【0029】本発明は、2つの独立した区分実行経路を
有するグラフィックス回路の実施形態により、グラフィ
ックス命令実行の特定の割当てをこれらの実行経路間で
分担する場合について説明している。しかしながら、本
発明のある部分を1つ以上の独立した区分実行経路を用
いて実施することができ、かつグラフィックス命令実行
タスクは任意の数の方法で割り当てることができるとい
うことは理解できよう。
【0030】データフォーマット 次に、図6の(A)及び(B)には、それぞれグラフィ
ックスデータフォーマットとグラフィックス命令フォー
マットが図解されている。図6(A)に示すように、図
示例のCPU10は、3つのグラフィックスデータフォ
ーマット、すなわち8ビットフォーマット(Pixe
l)66a、16ビットフォーマット(Fixed1
6)66b及び32ビットフォーマット(Fixed3
2)66cをサポートする。従って、32ビットワード
66aには4つのピクセルフォーマットのグラフィック
スデータが記憶されるのに対して、64ビットワード6
6bあるいは66cには4つのFixed16または2
つのFixed32フォーマットのグラフィックスデー
タが記憶される。あるいは、8つのFixed8フォー
マットのグラフィックスデータを64ビットワードに記
憶することもできる。画像成分はPixelまたはFi
xed16フォーマット66aまたは66bに記憶され
る。標準的な音声データフォーマットもサポートされ
る。中間結果は、Fixed8、Fixed16または
Fixed32フォーマット66bまたは66cで記憶
される。あるいは、64ビット以上のフォーマットを含
めて、その他任意のサイズのデータフォーマットを使用
することができる。通常、画像のピクセルの輝度値、た
とえばアルファ、緑、青、及び赤の値(α、G、B、
R)は、ピクセルフォーマット66aで記憶される。こ
れらの輝度値は、画像中の点の種々の色成分がまとめて
記憶されるバンドインターリーブ・フォーマットで、あ
るいは1つの色成分についての全ての値がまとめて記憶
されるバンド連続フォーマットで記憶することができ
る。Fixed16及びFixed32フォーマット6
6b、66cは、ピクセルデータに対して行われるフィ
ルタリング及びその他の単純な画像処理オペレーション
の間に計算される中間データを記憶するのに十分な精度
とダイナミックレンジが確保される。
【0031】命令フォーマット 図6の(B)に示すように、CPU10は3つのグラフ
ィックス命令フォーマット68a〜68cをサポートす
る。命令フォーマット68a〜68cに関わらず、2つ
の最上位ビット[31:30] 70a〜70cは主要
な命令フォーマット識別情報を与え、ビット[24:1
9]74a〜74cはグラフィックス命令についての二
次的な命令フォーマット識別情報を与える。さらに、ビ
ット[29:25](rd)72a〜72cは、グラフ
ィックス(ブロック/部分的条件付きストア)命令の
(第3のソース)宛先レジスタを識別するのに対して、
ビット[18:14](rs1)76a〜76cは、グ
ラフィックス命令の第1のソースレジスタを識別する。
第1のグラフィックス命令フォーマット68aに関して
は、ビット[13:5](opf)80及びビット
[4:0](rs2)82aがそのフォーマットのグラ
フィックス命令に対する演算コード及び第2のソースレ
ジスタを識別する。第2及び第3のグラフィックス命令
フォーマット68b〜68cについては、ビット[1
3:5](imm_asi)及びビット[13:0]
(simm_13)がそれぞれ任意にASI(アドレス
空間識別子)を識別指示する。最後に、第2のグラフィ
ックス命令フォーマット 68bに関しては、ビット
[4:0](rs2)がさらにそのフォーマットのグラ
フィックス命令のための第2のソースレジスタ(または
部分的条件付きストアのためのマスク)を指示する。
【0032】論理演算 1.乗算/加算(減算) グラフィックス演算では、多数のピクセル値について、
乗算に続けて加算または減算を行うことがしばしば必要
になる。たとえば、乗法演算でピクセル値を一定値だけ
スケーリングしたり、またオフセット値を加えて3次元
空間における位置を変えたい場合がある。従って、本発
明では、別個のオペランドを用いて乗算及び加算(また
は減算)の演算を両方とも行う単一命令を提供する。図
7に示すように、乗算器90はレジスタ92及び94か
ら入力を受け取る。レジスタ92は、たとえば多数の区
分ピクセル値が書き込まれるソースレジスタであっても
よい。レジスタ94は、たとえば、スケールファクタを
記憶することができる。乗算の結果は、加算器/減算器
96でレジスタ98からの値と加算される(この点が、
インテルMMX命令で行われるように、乗算結果の区分
フィールドが互いに加算されるのと異なる)。レジスタ
98中の値は、たとえば、オフセットであってもよい。
【0033】命令フォーマットの一例においては、図6
の(B)のフォーマット68aをレジスタ92中の区分
ピクセル値を指示するRD、レジスタ94のスケールフ
ァクタを指示するRSl及びレジスタ98のオフセット
値を指示するRS2で使用することができる(1つのレ
ジスタ、すなわちRDがソース及び宛先の両用に使用さ
れると言うことに留意すべきである)。
【0034】演算の結果はRDによって指定される宛先
レジスタに記憶される。各ピクセル値は、乗算後宛先レ
ジスタの対応するフィールド内に適合させるように切り
捨てるか、または飽和させることができる。
【0035】マスクレジスタ95は、3つのオペランド
のいずれかあるいは乗算器90の中間出力中の指定され
た区分フィールドをマスクするために使用することがで
きる。
【0036】好ましくは、中間乗算結果については丸め
は行わない。これによれば、2命令方式と比較して1つ
の丸め段が省かれ、余分な実行時間が節約される。
【0037】2.平方根分で割る1 図形演算では、ある数の平方根を求め、次にその逆数
(1/X)を計算することが必要なことがしばしばあ
る。たとえば、グラフィックス演算で用いられる多くの
三角関数ではこれが必要である。Xは通常ピクセル値ま
たはピクセルアドレスである。通常、平方根演算は、除
法演算と同様、所望の精度に応じた演算を行うのに適切
な論理回路を介しての複数回の反復パスを必要とする。
しかしながら、パックされたピクセルフォーマットを使
用する場合は、分割する、あるいは平方根を計算する各
ピクセルについて、ビット数は限定されたものになる。
従って、ただルックアップテーブルを使うだけでピクセ
ル値の平方根分の1に等しい値を得ることが可能であ
る。そのようなルックアップテーブルを図8の(A)に
テーブル100として示してあり、このテーブルは、出
力102にピクセル値の平方根分の1の値を出力する。
入力は、バス106を介してソースレジスタ104から
供給される。このテーブルは並列に複数の出力を供給す
るよう構成することができ、あるいはレジスタ104か
らの区分値をルックアップテーブルに逐次供給し、その
後結果を逐次宛先レジスタの適切なフィールドに入力す
ることも可能である。あるいは、2セットの反復演算で
除算と平方根演算を別個に行うのと比較して時間が節約
される複合演算のための1セットの反復による反復演算
を用いることも可能である。
【0038】3.A+ABS.[B]. グラフィカルアプリケーションでは、ピクセル値と絶対
値との結合を計算したいことがしばしばある。たとえ
ば、これはオペレーション推定及び検出に利用される。
この演算は、ソースレジスタ中の複数の区分ピクセル値
について並列に実行される。絶対値を計算したり、第2
のオペランドの2の補数を取るための論理は第2のオペ
ランドの符号ビットによって決まる。
【0039】図8の(B)は、ある値と第2の値の絶対
値との加算を実行するための論理回路の一例を示したも
のである。図示の論理回路は、たとえば区分ピクセルフ
ィールドの1つについてのものであり、たとえば各ピク
セルフィールドについて反復して設けられる。加算器1
01は、レジスタRS1(103)から値Aとレジスタ
RS2(105)からBの絶対値を受け取り、加算結果
はRD宛先レジスタ107に供給される。Bの値は2の
補数論理回路109によってその絶対値に変換される。
【0040】絶対値演算は、マルチプレクサ113及び
115を制御する演算コード111を復号することによ
って起動される。この演算が普通の加算ならば、マルチ
プレクサ113及び115の“0”入力が選択される。
この演算が普通の減算であれば、マルチプレクサ115
の“1”入力とマルチプレクサ113へ“0”入力が選
択される。絶対値が加えられる場合は、マルチプレクサ
113の“1”入力が選択される。RS2符号ビット1
19は、ライン119上の区分フィールドについてのR
S2符号ビットの値に応じて1またはゼロになる。
【0041】データ移動オペレーション 1.区分フィールド抽出。 多くのグラフィックスアプリケーションでは、指定され
たピクセルを選んで移動させたり、あるいは処理したり
できるようにすることが望ましい。ピクセルは複数のピ
クセルが1つのレジスタに入るようにしてパックされる
ので、標準的なオペレーションでは、ピクセルがアンパ
ックされない限り、これらの移動や処理は達成されな
い。本発明によれば、フィールドをソースから宛先レジ
スタへ選択的に移動させ、そのようなフィールド中のデ
ータに選択的に演算を加える命令及び論理が提供され
る。図9の(A)に示すように、複数フィールドを有す
るソースレジスタ108は、マスクレジスタ112によ
って指示される指定フィールドを宛先レジスタ114へ
送るマルチプレクサネットワーク110に接続されてい
る。
【0042】図9の(B)は、文字A、B、C及びDが
ソースレジスタ108中のピクセル値を指示する1つの
例を示したものである。マスクレジスタは値1010が
書き込まれており、“1”の値はそのフィールドを宛先
レジスタ114に送るべきであるということを示す。図
から明らかなように、“1”の値はピクセル値BとDに
対応しており、これらは宛先レジスタ114の最下位位
置へ送られる。
【0043】移動命令に加えて、ピクセル値は、この方
法により選択的にメモリからレジスタにロードすること
もできる。さらに、ピクセル値は、この方法により選択
的に演算(乗算または加算のような)を加えることがで
きる。
【0044】選択されたピクセルに対して演算を加える
ための命令は、たとえば2つの演算コードで実行するこ
とができる。その第1の演算コードは、たとえばマスク
値をセットするものであり、第2の演算コードは、たと
えば移動・加算オペレーションを指定するものであり、
第1のレジスタはソースレジスタとして指定され、第2
のレジスタではソースレジスタからの選択された各ピク
セル値に加えられる値が指定される。
【0045】図9の(A)及び(B)は簡単な抽出命令
の例を示したものであるが、図13には、マスクレジス
タを用いると共に、個々のフィールドに対して随時算術
演算または論理演算を行って、特定のフィールドの選択
を行う例が図解されている。図13に示すように、ソー
スレジスタ108の内容は論理回路116を介して宛先
レジスタ114へ供給される。マスク112は、たとえ
ば加算オペレーションを行うことができる116で示す
論理ブロックをイネーブル、またはディスエーブルにす
る。あるいは、マスクによって指定された宛先レジスタ
の各部分の動作をディスエーブルにするようにしてもよ
く、あるいはその他任意のマスキング機構を使用するこ
とが可能である。図13の実施形態においては、選択さ
れたピクセル値は、図9(B)の実施形態におけるよう
に最下位フィールドにパックされるのではなく、宛先レ
ジスタの対応する位置に供給される。
【0046】図9の(C)は、条件付きマージ動作を図
解したものである。図示のように、レジスタ114の各
部分はレジスタ108の部分とマージされ、マスク11
2はレジスタ108のどの区分フィールドがレジスタ1
14のフィールドを上書きするかを指示する。上書きさ
れないレジスタ114のフィールドは、そのままの状態
に保たれる。
【0047】2.浮動小数点グラフィックスレジスタフ
ァイル及び整数レジスタファイル交換 図11は、整数レジスタファイル36と浮動小数点/グ
ラフィックスレジスタファイル38の間でデータを交換
する命令を実行するための論理構成を示す。制御論理回
路118は、データを転送するためにバッファ120及
び122をイネーブルにするよう動作する。バッファ1
20は、整数レジスタファイルへ転送される浮動小数点
/グラフィックスレジスタファイルからレジスタ124
のデータ内容をバッファリングするために用いられる。
同様に、バッファ122は、浮動小数点グラフィックス
レジスタファイル38へ転送される整数レジスタファイ
ル36からレジスタ126の内容を一時的に記憶する。
2つのレジスタの内容をスワッピングするする他、命令
によって、1つのレジスタの内容を単に空いているレジ
スタに移動するか、その内容で他方のレジスタファイル
のもう一つのレジスタを上書きするようにすることも可
能である。この操作によれば、計算を1つのレジスタフ
ァイルで行い、その結果が他方のレジスタファイルに必
要となるような演算の場合に、メモリに書き込んだ後、
次にそのメモリから別のレジスタファイルロードする必
要がなくなる。たとえば、アドレスを浮動小数点/グラ
フィックス実行装置を用いて計算し、その結果を浮動小
数点/グラフィックスレジスタファイルに記憶すること
がある。その場合、整数実行装置のアドレスを使用する
ことが望ましいことがあり、この操作を用いて転送を行
うことができる。
【0048】たとえば、レンダリング操作にレジスタフ
ァイルの間のスワッピングが必要なことがある。加算ま
たは減算する値を、アドレス計算のためのオフセットと
して使用するためにロード及びストア動作によってアク
セスすることができるように、浮動小数点レジスタファ
イルから整数レジスタファイルに移動することが必要な
場合もある。
【0049】3.区分シフト 図12は、区分シフト動作をサポートするための論理構
成を示したものである。この場合、単一レジスタ中の複
数のピクセル値は各々それらの区分フィールド内でシフ
ト、すなわち桁送りされる。ソースレジスタ130は、
シフト論理回路132に区分フィールドを提供し、論理
回路の結果は宛先レジスタ134の対応する区分フィー
ルドに入れられる。シフトカウンタ136はシフト量を
決定する。あるいは、シフト量は演算コードから埋め込
むか、または暗黙で得ることもでき、あるいはGSRレ
ジスタのフィールドに記憶することもできる。矢印13
8示すように、値0が左シフトによって各区分フィール
ドに入れられる。一つの選択肢として、シフトアウトさ
れたビットはマスクまたは制御レジスタ140に供給す
るようにしてもよい。レジスタ140は、たとえば、シ
フトが起こったことを指示するフラグをセットするため
に使用することができる。あるいは、マスク140は、
どの区分フィールドをシフトさせるかを破線の制御ライ
ン141を介して選択するのに使用される。
【0050】論理演算あるいは算術演算においては、右
シフト動作を行うこともできる。算術演算の場合、符号
ビットは、ビットがシフトされるにつれて繰り返し挿入
されるようにしてもよい。
【0051】メモリアクセス動作 1.ロードとアドレスインクリメント。 本発明では、やはりアドレスレジスタをインクリメント
するロード動作が用いられる。これによって、アドレス
レジスタをインクリメントさせるための別の命令を用い
る必要がなくなる。このことは、グラフィックス演算
は、事実上大量のデータによって進行し、繰り返しイン
クリメントが必要になることが多いので、非常に重要で
ある。ロードは、好ましくはグラフィックス/浮動小数
点レジスタファイルのグラフィックスレジスタに対して
行われる。ロードは、データサイズに応じて決めること
が可能な適切なアドレスインクリメントを指定すること
による複数の区分フィールドを含んでもよい。レジスタ
全体(たとえば、64ビット)を一度にロードすること
もできれば、は1または複数の区分フィールドをロード
するようにしてもよい。
【0052】図14は、ロード・インクリメント命令を
サポートするための回路の一実施形態を示す。図示のア
ドレスレジスタ142は、ライン144を介してメモリ
146にアドレスを供給する。メモリ146からのアド
レス指定されたデータは、入力ライン148(144と
同じバスであってもよい)を介してグラフィックス宛先
レジスタ150に供給される。さらに、加算器152が
アドレスレジスタ144の入力にその出力を供給するこ
とによってインクリメント・オペレーションが行われ、
そのインクリメントの大きさはレジスタ154中の値に
よって指示される。
【0053】上記実施形態は、コンピュータのハードウ
エアによって実施される。そのハードウエアシステムで
用いられるプログラムは当然のことながら記録媒体、す
なわちメモリに記録された状態で提供される。このプロ
グラムを記憶させたメモリとしては、例えばフレキシブ
ルディスク、CD−ROM、メモリカードその他あらゆ
るメモリを使用できる。メモリに記録されたプログラム
は、ハードウエアに組み込まれている記憶装置、例えば
ハードディスクなどにインストールされることにより、
プログラムが実行できるようになる。
【0054】当技術分野の当業者には容易に理解できる
ように、本発明は、その精神あるいは必須の特徴から逸
脱することなく他の特定の形態で実施することが可能で
ある。従って、前記実施形態は例示説明を目的とするも
のであり、特許請求の範囲に記載する本発明の範囲のを
限定するためのものではない。
【図面の簡単な説明】
【図1】 本発明の技術内容を組み込んだグラフィック
スコンピュータシステムの一実施形態のCPUを示すブ
ロック図である。
【図2】 図1で付加されたグラフィックス回路の一実
施形態の2つの区分実行経路を示すブロック図である。
【図3】 グラフィックス状態レジスタ (GSR)の
説明図である。
【図4】 図2の第1の 区分実行経路(ALU)をよ
り詳細に示すブロック図である。
【図5】 図2の第2の区分実行経路(乗算)をより詳
細に示すブロック図である。
【図6】 グラフィックスデータフォーマット及びグラ
フィックス命令フォーマットをそれぞれ(A)及び
(B)に示す説明図である。
【図7】 乗算と加算の複合演算を行うための論理構成
を示す論理図である。
【図8】 平方根による除算及びA+ABS[B]を可
能にする論理構成をそれぞれ(A)及び(B)に示す論
理図である。
【図 9】 特定の区分フィールドからのデータの選択
抽出及び条件付きマージ動作を(A)、(B)及び
(C)に示す説明図である。
【図10】 先行1またはゼロを検出するための構成2
つの実施形態を(A)及び(B)に示す説明図である。
【図11】 整数レジスタファイルと浮動小数点/グラ
フィックスレジスタファイルとの間のレジスタ内容のス
ワッピングを図解した説明図である。
【図12】 区分シフト論理を図解した説明図である。
【図13】 特定の区分フィールドの選択移動のための
論理構成を図解した説明図である。
【図14】ロードとアドレスインクリメントの複合命令
を実行するための論理構成を図解した論理図である。
【符号の説明】
12 バス、14 パイプレインバス、30 整数乗算
/除算装置、31 整数ALU、36 整数レジスタフ
ァイル、40 命令キャッシュ、44a 命令メモリ管
理装置、44b データメモリ管理装置。
【手続補正書】
【提出日】平成10年1月21日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図2】
【図3】
【図4】
【図1】
【図5】
【図7】
【図6】
【図11】
【図8】
【図9】
【図10】
【図12】
【図13】
【図14】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A.

Claims (46)

    【特許請求の範囲】
  1. 【請求項1】 グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    おいて:第1のソースレジスタと;第2のソースレジス
    タと;宛先レジスタと;前記3つのレジスタの中の2つ
    レジスタに接続された第1及び第2の入力を有し、乗算
    /加算演算コードに応答してその2つのレジスタの各レ
    ジスタの中の複数の値に対して区分乗算を実行する乗算
    器論理回路と;前記3つのレジスタの中の第3のレジス
    タに接続された第1の入力及び乗算器論理回路の出力に
    接続された第2の入力を有し、乗算/加算演算コードに
    応答して第3のレジスタ中の複数の値と乗算器から出力
    される複数の値との区分加算を実行する加算器と;を具
    備したマイクロプロセッサ。
  2. 【請求項2】前記3つのレジスタの中の少なくとも1つ
    のレジスタのどの区分フィールドに対して演算を加える
    かを指示するマスクレジスタをさらに具備した請求項1
    記載のマイクロプロセッサ。
  3. 【請求項3】グラフィックス演算及びノングラフィック
    ス演算の両方演算を実行するマイクロプロセッサにおい
    て:第1のソースレジスタと;第2のソースレジスタ
    と;宛先レジスタと;前記3つのレジスタの中の2つレ
    ジスタに接続された第1及び第2の入力を有し、乗算/
    減算演算コードに応答してその2つのレジスタの各レジ
    スタの中の複数の値に対して区分乗算を実行するよう構
    成された乗算器論理回路と;前記3つのレジスタの中の
    第3のレジスタに接続された第1の入力及び乗算器論理
    回路の出力に接続された第2の入力を有し、乗算/減算
    演算コードに応答して第3のレジスタ中の複数の値と乗
    算器から出力される複数の値との区分減算を実行するよ
    う構成された加算器と;を具備したマイクロプロセッ
    サ。
  4. 【請求項4】前記3つのレジスタの中の少なくとも1つ
    のレジスタのどの区分フィールドに対して演算を加える
    かを指示するマスクレジスタをさらに具備した請求項3
    記載のマイクロプロセッサ。
  5. 【請求項5】グラフィックス演算及びノングラフィック
    ス演算の両方の演算を実行するマイクロプロセッサによ
    ってアクセス可能なコンピュータ読み取り可能なメモリ
    において:マイクロプロセッサに第1のレジスタにパッ
    クされた複数の第1のレジスタ値と第2のレジスタにパ
    ックされた複数の第2のレジスタ値との区分乗算を実行
    させて複数の乗算結果を生じさせると共に、その乗算結
    果と第3のレジスタにパックされた複数の第3のレジス
    タ値との区分加算を実行させる演算コード命令を具備し
    たメモリ。
  6. 【請求項6】前記3つレジスタの中の少なくとも1つの
    レジスタのどの区分フィールドに対して演算を加えるか
    を指示するマスクをセットするための演算コード命令を
    さらに具備した請求項5記載のメモリ。
  7. 【請求項7】グラフィックス演算及びノングラフィック
    ス演算の両方の演算を実行するマイクロプロセッサによ
    ってアクセス可能なコンピュータ読み取り可能なメモリ
    において:マイクロプロセッサに第1のレジスタにパッ
    クされた複数の第1のレジスタ値と第2のレジスタにパ
    ックされた複数の第2のレジスタ値との区分乗算を実行
    させて複数の乗算結果を生じさせると共に、その乗算結
    果と第3のレジスタにパックされた複数の第3のレジス
    タ値との区分減算を実行させるよう構成された演算コー
    ド命令を具備したメモリ。
  8. 【請求項8】前記3つレジスタの中の少なくとも1つの
    レジスタのどの区分フィールドに対して演算を加えるか
    を指示するマスクをセットするための演算コード命令を
    さらに具備した請求項7記載のメモリ。
  9. 【請求項9】グラフィックス演算及びノングラフィック
    ス演算の両方の演算を実行するマイクロプロセッサにお
    いて:ソースレジスタと;ソースレジスタに接続された
    入力を有し、ソースレジスタ中の複数の各値の平方根分
    の1の値を並列に計算するよう構成された除算・平方根
    論理回路と;を具備したマイクロプロセッサ。
  10. 【請求項10】前記除算・平方根論理回路がルックアッ
    プテーブルを具備する請求項9記載のマイクロプロセッ
    サ。
  11. 【請求項11】前記除算・平方根論理回路が反復論理回
    路を具備する請求項9記載のマイクロプロセッサ。
  12. 【請求項12】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    よってアクセス可能なコンピュータ読み取り可能なメモ
    リにおいて:入力ソースレジスタにおける複数の各区分
    フィールドの値の平方根分の1の値の計算を並列に実行
    させるようマイクロプロセッサに命じる演算コードを具
    備したメモリ。
  13. 【請求項13】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するためのマイクロプロセ
    ッサにおいて:複数の区分フィールドを有するソースレ
    ジスタと;宛先レジスタと;マスクレジスタと;ソース
    レジスタと宛先レジスタとの間に接続されていて、抽出
    命令に応答してソースレジスタから宛先レジスタへ、マ
    スクレジスタによって決定される区分フィールドの中の
    選択された区分フィールドを送って記憶させるよう構成
    された論理回路を具備したマイクロプロセッサ。
  14. 【請求項14】前記論理回路が、選択された区分フィー
    ルドを宛先レジスタの最下位フィールドに記憶させるよ
    うに構成されている請求項13記載のマイクロプロセッ
    サ。
  15. 【請求項15】前記論理回路が、選択された区分フィー
    ルドを宛先レジスタの対応するフィールドに記憶させ
    て、ソースレジスタと宛先レジスタの内容のマージを実
    行させるよう構成されている請求項13記載のマイクロ
    プロセッサ。
  16. 【請求項16】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    よってアクセス可能なコンピュータ読み取り可能なメモ
    リにおいて:指定された値をマスクレジスタに入れさせ
    るようにマイクロプロセッサに命じる第1の命令と;ソ
    ースレジスタから宛先レジスタへ、マスクレジスタによ
    って決定される区分フィールドの中の選択された区分フ
    ィールドを送って記憶させるようにマイクロプロセッサ
    に命じる第2の命令と;を具備したメモリ。
  17. 【請求項17】前記選択された区分フィールドが宛先レ
    ジスタの最下位フィールドに記憶される請求項16記載
    のメモリ。
  18. 【請求項18】前記選択された区分フィールドが宛先レ
    ジスタの対応するフィールドに記憶されて、ソースレジ
    スタと宛先レジスタの内容のマージを実行させる請求項
    16記載のメモリ。
  19. 【請求項19】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    おいて:複数の区分フィールドを有するソースレジスタ
    と;宛先レジスタと;ソースレジスタに接続されてい
    て、指定された種類の先行ディジットまたはディジット
    列の場所を検出すると共に、先行ディジットに対するポ
    インタを宛先レジスタに記憶する検出論理回路と;を具
    備したマイクロプロセッサ。
  20. 【請求項20】前記指定された種類の先行ディジットが
    1である請求項19記載のマイクロプロセッサ。
  21. 【請求項21】前記指定された宛先ディジットがゼロで
    ある請求項19記載のマイクロプロセッサ。
  22. 【請求項22】前記検出論理回路が優先順位デコーダを
    具備する請求項19記載のマイクロプロセッサ。
  23. 【請求項23】前記検出論理回路がシフトレジスタを具
    備する請求項19記載のマイクロプロセッサ。
  24. 【請求項24】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    よってアクセス可能なコンピュータ読み取り可能なメモ
    リにおいて:ソースレジスタ中の指定された種類の先行
    ディジットまたはディジット列の場所を検出させると共
    に、宛先ディジットに対するポインタを宛先レジスタに
    記憶させるようマイクロプロセッサに命じる命令を具備
    したメモリ。
  25. 【請求項25】前記ポインタが最下位ビットからのオフ
    セットである請求項24記載のメモリ。
  26. 【請求項26】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    おいて:整数レジスタファイルと;浮動小数点・グラフ
    ィックスレジスタファイルと;浮動小数点・グラフィッ
    クスレジスタファイルのレジスタの内容を整数レジスタ
    ファイルのレジスタに移動させる交換論理回路と;を具
    備したマイクロプロセッサ。
  27. 【請求項27】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    よってアクセス可能なコンピュータ読み取り可能なメモ
    リにおいて:浮動小数点・グラフィックスレジスタファ
    イルのレジスタの内容を整数レジスタファイルのレジス
    タにへ移動させるようマイクロプロセッサに命じる命令
    を具備したメモリ。
  28. 【請求項28】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    おいて:複数の区分フィールドを有するソースレジスタ
    と;ソースレジスタに接続されていて、各区分フィール
    ドのビットを隣接する区分フィールド中にシフトさせず
    にシフトさせるシフト論理回路と;シフトオペレーショ
    ンで使用される少なくとも1ビットを記憶する制御レジ
    スタと;を具備したマイクロプロセッサ。
  29. 【請求項29】前記シフト論理回路が、少なくとも1つ
    の区分フィールドからのビットを制御レジスタにシフト
    させるよう構成されている請求項28記載のマイクロプ
    ロセッサ。
  30. 【請求項30】前記制御レジスタが、区分フィールドの
    中のどの区分フィールドをシフトさせるかを決定するた
    めのマスクレジスタを具備する請求項28記載のマイク
    ロプロセッサ。
  31. 【請求項31】前記シフト論理回路が、左シフト命令に
    応答して、ビットをゼロを最下位ビット位置に加えて左
    シフトさせるよう構成されている請求項28記載のマイ
    クロプロセッサ。
  32. 【請求項32】前記シフト論理回路が、右シフト命令に
    応答して、ビットを符号ビットを各区分フィールドの最
    上位ビット位置にコピーして右シフトさせるよう構成さ
    れている請求項28記載のマイクロプロセッサ。
  33. 【請求項33】前記シフト論理回路が、右シフト命令に
    応答して、ビットをゼロを各区分フィールドの最上位ビ
    ット位置に加えて右シフトさせるよう構成されている請
    求項28記載のマイクロプロセッサ。
  34. 【請求項34】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    よってアクセス可能なコンピュータ読み取り可能なメモ
    リにおいて:複数の各区分フィールドのビットを隣接し
    た区分フィールド中にシフトさせずにシフトさせ、シフ
    トに使用される少なくとも1ビットを制御レジスタに記
    憶するようにマイクロプロセッサに命じる命令を具備し
    たメモリ。
  35. 【請求項35】前記命令が、区分フィールドの中の少な
    くとも1つの区分フィールドから制御レジスタへビット
    をシフトさせるよう構成されている請求項34記載のメ
    モリ。
  36. 【請求項36】前記区分フィールドの中のどの区分フィ
    ールドをシフトさせるかを決定するためのマスクレジス
    タにマスクを書き込むための命令をさらに具備した請求
    項34記載のメモリ。
  37. 【請求項37】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    おいて:ソース記憶場所と;宛先レジスタと;マスクレ
    ジスタと;レジスタファイルとマスクレジスタに接続さ
    れていて、マスクレジスタによって決定される区分フィ
    ールドの中の選択された一群の区分フィールドをソース
    レジスタから宛先レジスタへ移動させる移動論理回路
    と;を具備したマイクロプロセッサ。
  38. 【請求項38】前記選択された一群の区分フィールドに
    対して指定された演算を実行するよう構成された実行論
    理回路をさらに具備した請求項37記載のマイクロプロ
    セッサ。
  39. 【請求項39】前記ソース記憶場所がソースレジスタで
    ある請求項37記載のマイクロプロセッサ。
  40. 【請求項40】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    よってアクセス可能なコンピュータ読み取り可能なメモ
    リにおいて:指定された値をマスクレジスタに入れさせ
    るようにマイクロプロセッサに命じる第1の命令と;ソ
    ースレジスタから宛先レジスタへ、マスクレジスタに従
    って決定される区分フィールドの中の選択された一群の
    区分フィールドを移動させるようにマイクロプロセッサ
    に命じる第2の命令と;を具備したメモリ。
  41. 【請求項41】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    おいて:アドレスレジスタ;アドレスレジスタに接続さ
    れた加算器と;グラフィックスデータ宛先レジスタと;
    アドレスレジスタ及び加算器に接続されていて、アドレ
    スレジスタ中のアドレスによって指示されるメモリ内の
    アドレスのグラフィックスデータを宛先レジスタの中に
    ロードすると共に、加算器を用いてアドレスレジスタを
    修正するよう構成されている制御論理回路と;を具備し
    たマイクロプロセッサ。
  42. 【請求項42】前記制御論理回路が、データサイズに従
    ってアドレスレジスタをインクリメント、またはデクリ
    メントさせるよう構成されている請求項41記載のマイ
    クロプロセッサ。
  43. 【請求項43】グラフィックス演算及びノングラフィッ
    クス演算の両方の演算を実行するマイクロプロセッサに
    よってアクセス可能なコンピュータ読み取り可能なメモ
    リにおいて:アドレスレジスタ中のアドレスによって指
    示されるメモリ内のアドレスのグラフィックスデータを
    宛先レジスタの中にロードさせると共に、データサイズ
    を用いてアドレスレジスタを修正させるようにマイクロ
    プロセッサに命ずる命令を具備したマイクロプロセッ
    サ。
  44. 【請求項44】前記データサイズをデータサイズレジス
    タに入れさせるようにマイクロプロセッサに命ずる第2
    の命令をさらに具備した請求項43記載のメモリ。
  45. 【請求項45】前記乗算及び加算の結果を丸め、中間結
    果は丸めない丸め論理回路をさらに具備した請求項1記
    載のマイクロプロセッサ。
  46. 【請求項46】前記乗算及び減算の結果を丸め、中間結
    果は丸めない丸め論理回路をさらに具備した請求項3記
    載のマイクロプロセッサ。
JP9278845A 1996-10-10 1997-10-13 統合グラフィックス機能を有するcpu用のビジュアル命令セット Pending JPH113226A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/722442 1996-10-10
US08/722,442 US5996066A (en) 1996-10-10 1996-10-10 Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions

Publications (1)

Publication Number Publication Date
JPH113226A true JPH113226A (ja) 1999-01-06

Family

ID=24901855

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9278845A Pending JPH113226A (ja) 1996-10-10 1997-10-13 統合グラフィックス機能を有するcpu用のビジュアル命令セット

Country Status (4)

Country Link
US (3) US5996066A (ja)
EP (1) EP0836137A3 (ja)
JP (1) JPH113226A (ja)
SG (2) SG103284A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004533671A (ja) * 2001-02-21 2004-11-04 ミップス テクノロジーズ インコーポレイテッド 多項式演算オペレーション
JP2007528545A (ja) * 2004-03-10 2007-10-11 アーム・リミテッド データ・ワードの中へビットを挿入する装置および方法
JP2008140372A (ja) * 2006-09-22 2008-06-19 Intel Corp 選択演算を実行する方法および装置
JP2010067278A (ja) * 1999-01-28 2010-03-25 Altera Corp プロセッサでの条件付き実行をサポートする装置及びその方法
JP2014510350A (ja) * 2011-04-01 2014-04-24 インテル コーポレイション 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法
JP2015528610A (ja) * 2012-09-28 2015-09-28 インテル・コーポレーション リードマスク及びライトマスクにより制御されるベクトル移動命令

Families Citing this family (86)

* 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
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
US6275838B1 (en) * 1997-12-03 2001-08-14 Intrinsity, Inc. Method and apparatus for an enhanced floating point unit with graphics and integer capabilities
US6377970B1 (en) * 1998-03-31 2002-04-23 Intel Corporation Method and apparatus for computing a sum of packed data elements using SIMD multiply circuitry
US7114056B2 (en) 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US7117342B2 (en) 1998-12-03 2006-10-03 Sun Microsystems, Inc. Implicitly derived register specifiers in a processor
US6732259B1 (en) 1999-07-30 2004-05-04 Mips Technologies, Inc. Processor having a conditional branch extension of an instruction set architecture
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
GB2352536A (en) 1999-07-21 2001-01-31 Element 14 Ltd Conditional instruction execution
GB2352308B (en) * 1999-07-21 2004-06-30 Element 14 Ltd Accessing a test condition
US7346643B1 (en) 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US6912559B1 (en) 1999-07-30 2005-06-28 Mips Technologies, Inc. System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
US6631392B1 (en) 1999-07-30 2003-10-07 Mips Technologies, Inc. Method and apparatus for predicting floating-point exceptions
US6697832B1 (en) 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
US6714197B1 (en) 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture
US6567835B1 (en) * 1999-08-17 2003-05-20 Intrinsity, Inc. Method and apparatus for a 5:2 carry-save-adder (CSA)
US6484255B1 (en) * 1999-09-20 2002-11-19 Intel Corporation Selective writing of data elements from packed data based upon a mask using predication
EP1230591B1 (en) 1999-11-18 2007-01-03 Sun Microsystems, Inc. Decompression bit processing with a general purpose alignment tool
US7308686B1 (en) 1999-12-22 2007-12-11 Ubicom Inc. Software input/output using hard real time threads
JP4693326B2 (ja) * 1999-12-22 2011-06-01 ウビコム インコーポレイテッド 組込み型プロセッサにおいてゼロタイムコンテクストスイッチを用いて命令レベルをマルチスレッド化するシステムおよび方法
US7120783B2 (en) * 1999-12-22 2006-10-10 Ubicom, Inc. System and method for reading and writing a thread state in a multithreaded central processing unit
US6996596B1 (en) 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
US7047396B1 (en) 2000-06-22 2006-05-16 Ubicom, Inc. Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
US7010612B1 (en) 2000-06-22 2006-03-07 Ubicom, Inc. Universal serializer/deserializer
US6654777B1 (en) * 2000-07-27 2003-11-25 International Business Machines Corporation Single precision inverse square root generator
US7181484B2 (en) 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7162621B2 (en) * 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US20030016233A1 (en) * 2001-06-29 2003-01-23 Bitflash Graphics, Inc. Method and system for manipulation of graphics information
US7082452B2 (en) * 2001-11-30 2006-07-25 Analog Devices, Inc. Galois field multiply/multiply-add/multiply accumulate
US7895253B2 (en) 2001-11-30 2011-02-22 Analog Devices, Inc. Compound Galois field engine and Galois field divider and square root engine and method
US7269615B2 (en) 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7508937B2 (en) 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US7558947B1 (en) * 2001-12-31 2009-07-07 Apple Inc. Method and apparatus for computing vector absolute differences
US6829694B2 (en) * 2002-02-07 2004-12-07 Analog Devices, Inc. Reconfigurable parallel look up table system
ITUD20020104A1 (it) * 2002-05-16 2003-11-17 Neuricam Spa Dispositivo elettronico per il calcolo e la generazione di funzione lineari e non lineari
US7822950B1 (en) 2003-01-22 2010-10-26 Ubicom, Inc. Thread cancellation and recirculation in a computer processor for avoiding pipeline stalls
FR2853425B1 (fr) * 2003-04-07 2006-01-13 Atmel Corp Sequence de multiplication efficace pour operandes a grands nombres entiers plus larges que le materiel multiplicateur
US7139900B2 (en) 2003-06-23 2006-11-21 Intel Corporation Data packet arithmetic logic devices and methods
GB2409066B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409068A (en) * 2003-12-09 2005-06-15 Advanced Risc Mach Ltd Data element size control within parallel lanes of processing
GB2409062C (en) * 2003-12-09 2007-12-11 Advanced Risc Mach Ltd Aliasing data processing registers
GB2409063B (en) * 2003-12-09 2006-07-12 Advanced Risc Mach Ltd Vector by scalar operations
GB2411974C (en) * 2003-12-09 2009-09-23 Advanced Risc Mach Ltd Data shift operations
GB2411975B (en) * 2003-12-09 2006-10-04 Advanced Risc Mach Ltd Data processing apparatus and method for performing arithmetic operations in SIMD data processing
GB2409067B (en) * 2003-12-09 2006-12-13 Advanced Risc Mach Ltd Endianess compensation within a SIMD data processing system
GB2409065B (en) * 2003-12-09 2006-10-25 Advanced Risc Mach Ltd Multiplexing operations in SIMD processing
GB2411976B (en) * 2003-12-09 2006-07-19 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores
GB2411973B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd Constant generation in SMD processing
GB2409064B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd A data processing apparatus and method for performing in parallel a data processing operation on data elements
GB2409059B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409061B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd Table lookup operation within a data processing system
GB2410097B (en) * 2004-01-13 2006-11-01 Advanced Risc Mach Ltd A data processing apparatus and method for performing data processing operations on floating point data elements
US9557994B2 (en) 2004-07-13 2017-01-31 Arm Limited Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number
US7512647B2 (en) * 2004-11-22 2009-03-31 Analog Devices, Inc. Condensed Galois field computing system
US20060149804A1 (en) * 2004-11-30 2006-07-06 International Business Machines Corporation Multiply-sum dot product instruction with mask and splat
US7237095B1 (en) * 2005-08-04 2007-06-26 Advanced Micro Devices, Inc. Optimum power efficient shifting algorithm for schedulers
US7676535B2 (en) * 2005-09-28 2010-03-09 Intel Corporation Enhanced floating-point unit for extended functions
US7728744B2 (en) * 2005-10-26 2010-06-01 Analog Devices, Inc. Variable length decoder system and method
US8024551B2 (en) 2005-10-26 2011-09-20 Analog Devices, Inc. Pipelined digital signal processor
US8285972B2 (en) * 2005-10-26 2012-10-09 Analog Devices, Inc. Lookup table addressing system and method
US20080071851A1 (en) * 2006-09-20 2008-03-20 Ronen Zohar Instruction and logic for performing a dot-product operation
US8332452B2 (en) * 2006-10-31 2012-12-11 International Business Machines Corporation Single precision vector dot product with “word” vector write mask
US20080100628A1 (en) * 2006-10-31 2008-05-01 International Business Machines Corporation Single Precision Vector Permute Immediate with "Word" Vector Write Mask
US9495724B2 (en) * 2006-10-31 2016-11-15 International Business Machines Corporation Single precision vector permute immediate with “word” vector write mask
US8171370B2 (en) 2006-11-14 2012-05-01 Futurewei Technologies, Inc. Method and apparatus for applying forward error correction in 66b systems
JP2008204356A (ja) * 2007-02-22 2008-09-04 Fujitsu Ltd リコンフィギャラブル回路
US8301990B2 (en) * 2007-09-27 2012-10-30 Analog Devices, Inc. Programmable compute unit with internal register and bit FIFO for executing Viterbi code
US20090113174A1 (en) * 2007-10-31 2009-04-30 Texas Instruments Incorporated Sign Operation Instructions and Circuitry
CN101447911B (zh) * 2007-11-27 2010-12-15 上海高性能集成电路设计中心 一种通过分布控制扩展访存队列容量的装置
US8990282B2 (en) * 2009-09-21 2015-03-24 Arm Limited Apparatus and method for performing fused multiply add floating point operation
US20120110037A1 (en) * 2010-11-01 2012-05-03 Qualcomm Incorporated Methods and Apparatus for a Read, Merge and Write Register File
US8965945B2 (en) * 2011-02-17 2015-02-24 Arm Limited Apparatus and method for performing floating point addition
CN104303141A (zh) * 2011-12-22 2015-01-21 英特尔公司 用于从寄存器提取写掩码的系统、装置和方法
WO2013095609A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Systems, apparatuses, and methods for performing conversion of a mask register into a vector register
US9110713B2 (en) * 2012-08-30 2015-08-18 Qualcomm Incorporated Microarchitecture for floating point fused multiply-add with exponent scaling
US9542154B2 (en) * 2013-06-25 2017-01-10 Intel Corporation Fused multiply add operations using bit masks
US10503502B2 (en) * 2015-09-25 2019-12-10 Intel Corporation Data element rearrangement, processors, methods, systems, and instructions
US11256504B2 (en) 2017-09-29 2022-02-22 Intel Corporation Apparatus and method for complex by complex conjugate multiplication
US10514924B2 (en) 2017-09-29 2019-12-24 Intel Corporation Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
US11074073B2 (en) * 2017-09-29 2021-07-27 Intel Corporation Apparatus and method for multiply, add/subtract, and accumulate of packed data elements
US10802826B2 (en) 2017-09-29 2020-10-13 Intel Corporation Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
US10452394B2 (en) * 2017-11-28 2019-10-22 Intel Corporation Apparatus and method for complex multiplication
US10664237B2 (en) * 2017-12-21 2020-05-26 Intel Corporation Apparatus and method for processing reciprocal square root operations
US10768896B2 (en) * 2017-12-21 2020-09-08 Intel Corporation Apparatus and method for processing fractional reciprocal operations

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3267489D1 (en) * 1982-02-18 1986-01-02 Itt Ind Gmbh Deutsche Digital parallel calculating circuit for positive and negative binary numbers
JPS6347874A (ja) * 1986-08-16 1988-02-29 Nec Corp 算術演算装置
US4996661A (en) * 1988-10-05 1991-02-26 United Technologies Corporation Single chip complex floating point numeric processor
EP0466997A1 (en) * 1990-07-18 1992-01-22 International Business Machines Corporation Improved digital signal processor architecture
US5719964A (en) * 1990-07-27 1998-02-17 International Business Machines Corporation Array processing with fused multiply/add instruction
EP0474246A2 (en) * 1990-09-06 1992-03-11 Matsushita Electric Industrial Co., Ltd. Image signal processor
US5206823A (en) * 1990-12-13 1993-04-27 Micron Technology, Inc. Apparatus to perform Newton iterations for reciprocal and reciprocal square root
EP0545581B1 (en) * 1991-12-06 1999-04-21 National Semiconductor Corporation Integrated data processing system including CPU core and parallel, independently operating DSP module
US5375078A (en) * 1992-12-15 1994-12-20 International Business Machines Corporation Arithmetic unit for performing XY+B operation
EP0645699A1 (en) * 1993-09-29 1995-03-29 International Business Machines Corporation Fast multiply-add instruction sequence in a pipeline floating-point processor
DE69424626T2 (de) * 1993-11-23 2001-01-25 Hewlett Packard Co Parallele Datenverarbeitung in einem Einzelprozessor
US5446651A (en) * 1993-11-30 1995-08-29 Texas Instruments Incorporated Split multiply operation
US5392228A (en) * 1993-12-06 1995-02-21 Motorola, Inc. Result normalizer and method of operation
US5530663A (en) * 1994-11-14 1996-06-25 International Business Machines Corporation Floating point unit for calculating a compound instruction A+B×C in two cycles
US5784305A (en) * 1995-05-01 1998-07-21 Nec Corporation Multiply-adder unit
GB9514684D0 (en) * 1995-07-18 1995-09-13 Sgs Thomson Microelectronics An arithmetic unit
US5721892A (en) * 1995-08-31 1998-02-24 Intel Corporation Method and apparatus for performing multiply-subtract operations on packed data
US5862067A (en) * 1995-12-29 1999-01-19 Intel Corporation Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations
US5847979A (en) * 1996-10-31 1998-12-08 Samsung Electronics Company, Ltd. Method and apparatus for generating an initial estimate for a floating point reciprocal of a square root

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010067278A (ja) * 1999-01-28 2010-03-25 Altera Corp プロセッサでの条件付き実行をサポートする装置及びその方法
JP2012033176A (ja) * 1999-01-28 2012-02-16 Altera Corp サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置
JP2004533671A (ja) * 2001-02-21 2004-11-04 ミップス テクノロジーズ インコーポレイテッド 多項式演算オペレーション
JP2009282992A (ja) * 2001-02-21 2009-12-03 Mips Technologies Inc 多項式演算オペレーション
JP2007528545A (ja) * 2004-03-10 2007-10-11 アーム・リミテッド データ・ワードの中へビットを挿入する装置および方法
JP2008140372A (ja) * 2006-09-22 2008-06-19 Intel Corp 選択演算を実行する方法および装置
JP2012119009A (ja) * 2006-09-22 2012-06-21 Intel Corp 選択演算を実行する方法および装置
JP2014510350A (ja) * 2011-04-01 2014-04-24 インテル コーポレイション 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法
JP2017010573A (ja) * 2011-04-01 2017-01-12 インテル コーポレイション 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法
JP2019032859A (ja) * 2011-04-01 2019-02-28 インテル コーポレイション 書込マスクを用いて2つのソースオペランドを単一のデスティネーションに融合するシステム、装置及び方法
JP2015528610A (ja) * 2012-09-28 2015-09-28 インテル・コーポレーション リードマスク及びライトマスクにより制御されるベクトル移動命令
JP2017107579A (ja) * 2012-09-28 2017-06-15 インテル・コーポレーション リードマスク及びライトマスクにより制御されるベクトル移動命令

Also Published As

Publication number Publication date
SG54569A1 (en) 1998-11-16
US20020091910A1 (en) 2002-07-11
US5996066A (en) 1999-11-30
SG103284A1 (en) 2004-04-29
US20010002484A1 (en) 2001-05-31
US6385713B2 (en) 2002-05-07
EP0836137A2 (en) 1998-04-15
EP0836137A3 (en) 1998-07-15

Similar Documents

Publication Publication Date Title
JPH113226A (ja) 統合グラフィックス機能を有するcpu用のビジュアル命令セット
US5938756A (en) Central processing unit with integrated graphics functions
US5001662A (en) Method and apparatus for multi-gauge computation
US7724261B2 (en) Processor having a compare extension of an instruction set architecture
US7216138B2 (en) Method and apparatus for floating point operations and format conversion operations
US5996057A (en) Data processing system and method of permutation with replication within a vector register file
JP5586128B2 (ja) データ処理を実行する方法、記録媒体、プロセッサ、及びシステム
US6334176B1 (en) Method and apparatus for generating an alignment control vector
US6195745B1 (en) Pipeline throughput via parallel out-of-order execution of adds and moves in a supplemental integer execution unit
EP2241968A2 (en) System with wide operand architecture, and method
US20020133682A1 (en) System with wide operand architecture, and method
EP0503514A2 (en) Backward-compatible computer architecture with extended word size and address space
JP2005535966A (ja) アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム
WO2001006353A1 (en) Conditional instruction execution in a computer
EP2309383A1 (en) System with wide operand architecture and method
US6061782A (en) Mechanism for floating point to integer conversion with RGB bias multiply
US6253299B1 (en) Virtual cache registers with selectable width for accommodating different precision data formats
US6732259B1 (en) Processor having a conditional branch extension of an instruction set architecture
US7647368B2 (en) Data processing apparatus and method for performing data processing operations on floating point data elements
US6275925B1 (en) Program execution method and program execution device
EP1089166A2 (en) An integer instruction set architecture and implementation
US6253312B1 (en) Method and apparatus for double operand load
EP1163591B1 (en) Processor having a compare extension of an instruction set architecture
WO2000048080A9 (en) Processor having a compare extension of an instruction set architecture