JPH0844880A - 統合されたグラフィックス機能を含むcpu - Google Patents

統合されたグラフィックス機能を含むcpu

Info

Publication number
JPH0844880A
JPH0844880A JP7128841A JP12884195A JPH0844880A JP H0844880 A JPH0844880 A JP H0844880A JP 7128841 A JP7128841 A JP 7128841A JP 12884195 A JP12884195 A JP 12884195A JP H0844880 A JPH0844880 A JP H0844880A
Authority
JP
Japan
Prior art keywords
graphics data
graphics
address
instructions
cpu
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
JP7128841A
Other languages
English (en)
Inventor
Hook Timothy J Van
ティモシー・ジェイ・ヴァン・フック
Leslie Dean Kohn
レスリー・ディーン・コーン
Young Robert
ロバート・ヤング
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 JPH0844880A publication Critical patent/JPH0844880A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【目的】 より高度のグラフィック機能を組み込んだ中
央演算処理装置(CPU)を提供すること。 【構成】 中央演算処理装置(CPU)の整数実行ユニ
ット(IEU)は、グラフィックス・データ・スケール
・ファクタおよびグラフィックス・データ整列アドレス
・オフセットを記憶するグラフィックス状態レジスタ
(GSR)を備える。また、CPUは、グラフィックス
・データ・スケール・ファクタおよびグラフィックス・
データ整列アドレス・オフセットに応じて多数のグラフ
ィックス動作を実行するグラフィックス実行ユニット
(GRU)を備え、グラフィックス・データは多数のグ
ラフィックス・データ・フォーマットを有する。グラフ
ィックス・データ演算は、第1範疇および第2範疇とし
て範疇分けされ、GRUは各範疇の1つのグラフィック
ス演算を並行的に実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ・システ
ムの分野に関する。詳細には、本発明は、統合されたグ
ラフィックス機能を有する費用有効な高性能中央演算処
理装置(CPU)に関する。
【0002】
【従来の技術】グラフィックス・コンピュータ・システ
ムで高性能を達成するうえで3つの主要な問題がある。
第1の問題は、浮動小数点処理スループットにある。グ
ラフィックス・アプリケーションは通常、浮動小数点デ
ータを使用して変換やクリッピングなど大量の図形処理
動作を実行する。第2の問題は、整数処理スループット
または固定小数点スループットにある。また、グラフィ
ックス・アプリケーションは通常、整数データまたは固
定小数点データを使用して走査変換(スキャン・コンバ
ージョン)や色補間など大量の表示動作を実行する。第
3の問題は、メモリ参照にある。上述の動作は通常、た
とえばフレーム・バッファやZバッファとの間の読取り
および書込みのために大量のメモリ参照を必要とする。
【0003】歴史的に見ると、初期の従来技術のコンピ
ュータ・システム中のCPUは、グラフィックス機能と
非グラフィックス機能の両方を負担していた。大量の浮
動小数点処理および固定小数点処理を実行する際にも、
あるいは、メモリ参照を実行する際にも、このような初
期のCPUを助ける特殊なハードウェアは提供されなか
った。このような初期の従来技術のシステムの設計は簡
単なものであるが、その性能は通常、低速である。
【0004】いくつかの後の従来技術のコンピュータ・
システムでは、補助表示プロセッサが提供された。この
補助表示プロセッサによって、このような後のCPUは
いくつかの表示関連動作を実行しなく済むようになっ
た。しかし、このような後のCPUは依然として、大部
分のグラフィックス処理を負担していた。通常、このよ
うな後の従来技術のコンピュータ・システムのシステム
・バスの帯域幅は、バス上のプロセッサ間の通信量の増
加に適応するために、それに応じて増大される。場合に
よっては、プロセッサ間のメモリ競合の量を低減させる
ために、補助表示プロセッサにそれ自体のメモリを備え
ることもある。しかし、一般に性能は向上するが、この
手法はコストがかかり、複雑である。
【0005】他の後の従来技術のコンピュータシステム
では、より豊富なグラフィックス機能を含むグラフィッ
クス・プロセッサが提供された。この補助グラフィック
ス・プロセッサによって、このような後の従来技術のコ
ンピュータ・システムのCPUは、大部分のグラフィッ
クス処理を実行しなくて済むようになった。この手法の
下では、広範囲の専用ハードウェアと、CPUと補助グ
ラフィックス・プロセッサの間の精巧なソフトウェア・
インタフェースを提供する必要がある。性能は大幅に向
上するが、この手法は、表示プロセッサ手法よりもずっ
とコストがかかり、かつずっと複雑である。
【0006】マイクロプロセッサの場合、技術進歩によ
ってさらに多くの回路を小さな領域にパッケージングで
きるようになるにつれて、その代わりに、汎用CPU
を、組込みグラフィックス機能と統合することがますま
す望ましくなっている。いくつかの現代の従来技術のコ
ンピュータ・システムでは、そのような統合が始まって
いる。しかし、このような現代のコンピュータ・システ
ムに統合されるグラフィックス機能の量および性質は通
常、依然として非常に限られている。既知の統合された
グラフィックス機能に含まれるのは、フレーム・バッフ
ァ検査、ピクセル・マージによる追加、およびZバッフ
ァ・マージによる追加だけである。このような現代の従
来技術のシステム上のグラフィックス処理の多くは、依
然として、追加組込みグラフィックス機能なしで汎用C
PUによって処理され、あるいは、補助表示/グラフィ
ックス・プロセッサによって処理されている。
【0007】
【発明が解決しようとする課題】本発明は、このような
性能面の問題の多くを有利に解決し、上述およびその他
の望ましい結果を達成する、統合された固有のグラフィ
ックス機能を含む費用有効な高性能CPUを提供するこ
とを課題とする。
【0008】
【課題を解決するための手段】本発明によれば、中央演
算処理装置(CPU)にグラフィックス実行ユニット
(GRU)を与えることによって、望ましい結果が有利
に達成される。GRUは、グラフィックス状態レジスタ
(GSR)と少なくとも1つの分割実行パスとを備え
る。GSRは、グラフィックス・データ・スケール・フ
ァクタ、およびグラフィックス・データ整列アドレス・
オフセットを記憶するために使用される。この少なくと
も1つの分割実行パスは、多数のグラフィックス・デー
タ・フォーマットを有するグラフィックス・データに対
して多数のグラフィックス演算を実行するために使用さ
れる。このようなグラフィックス演算のいくつかは、グ
ラフィックス・データ・スケール・ファクタおよびグラ
フィックス・データ整列アドレス・オフセットに応じて
動作するグラフィックス演算を含め、グラフィックス・
データの複数の構成要素に対して同時に動作する分割演
算(パーティションド・オペレーション)である。
【0009】一実施例では、GRUは、第1の分割実行
パスと第2の分割実行パスとを備える。これらの2つの
分割実行パスは、相互に独立している。第1の分割実行
パスは、独立に、多数の分割加算演算および分割減算演
算、拡張演算、マージ演算、ならびに論理演算をグラフ
ィックス・データに対して実行し、かつ整列アドレス・
オフセットを使用してグラフィックス・データに対して
多数の整列演算を実行するために使用される。第2の分
割実行パスは、独立に、多数の分配乗算演算、多数のピ
クセル距離計算、および比較演算をグラフィックス・デ
ータに対して実行し、かつスケール・ファクタを使用し
て多数のグラフィックス・パッキング操作をグラフィッ
クス・データに対して実行するために使用される。
【0010】また、この実施例の下では、CPUの整数
実行ユニット(IEU)を使用して、グラフィックス・
データ・アドレスに対して多数のエッジ処理演算が実行
され、かつ3−Dアレイ・アドレス変換用の追加回路に
よってIEUが拡張され、CPUのロード・記憶ユニッ
ト(LSU)を使用して、部分条件付き記憶操作を含
め、多数のグラフィックス・データ・ロード操作および
グラフィックス・データ記憶操作も実行される。
【0011】
【実施例】以下では、本発明の完全な理解のために説明
の目的で、特定の数、材料、構成について述べる。しか
し、当業者には、特定の細部なしで本発明を実施できる
ことが明らかになろう。他の例では、本発明をあいまい
にしないように、周知のシステムを概略図またはブロッ
ク図の形で示す。
【0012】図1には、本発明の教示を組み込んだ典型
的なグラフィックス・コンピュータ・システムのCPU
を示すブロック図が示されている。CPU24は、図の
ように相互に結合された、命令キャッシュ40を含むプ
リフェッチ・デスパッチユニット(PDU)46と、整
数実行ユニット(IEU)30と、整数レジスタ・ファ
イル36と、浮動小数点ユニット(FPU)26と、浮
動小数点レジスタ・ファイル38と、グラフィックス実
行ユニット(GRU)28とを備えている。また、CP
U24は、図のように相互に結合され前述の要素に結合
された、2つのメモリ管理ユニット(IMMUおよびD
MMU)44aおよび44bと、データ・キャッシュ4
2を含むロード記憶ユニット(LSU)48とを備え
る。これらのユニットは協働して、パイプライン的に、
グラフィックス命令を含め、命令をフェッチし、ディス
パッチし、実行し、その結果を保存する。
【0013】PDU46は、メモリから命令を取り出
し、それに応じてIEU30、FPU26、GRU2
8、およびLSU48にディスパッチする。プリフェッ
チされた命令は、命令キャッシュ40に記憶される。I
EU30、FPU26、およびGRU28はそれぞれ、
整数演算、浮動小数点演算、およびグラフィックス演算
を実行する。一般に、整数オペランド/結果は、整数レ
ジスタ・ファイル36に記憶され、浮動小数点・グラフ
ィックス・オペランド/結果は、浮動小数点レジスタ・
ファイル38に記憶される。IEU30は、多数のグラ
フィックス演算も実行し、アクセスすべきアドレス空間
を識別するアドレス空間識別子(ASI)を、LSU4
8に対するロード/記憶命令のアドレスに追加する。L
SU48は、すべてのロード操作および記憶操作に関す
るアドレスを生成する。LSU48は、具体的にはグラ
フィックス・データ向けに設計された多数のロード操作
および記憶操作もサポートする。メモリ参照は、仮想ア
ドレスで行われる。MMU44aおよび44bは、仮想
アドレスを物理アドレスにマップする。
【0014】PDU46、IEU30、FPU26、整
数レジスタ・ファイル36および浮動小数点レジスタ・
ファイル38、MMU44aおよび44b、ならびにL
SU48をどのように相互に結合するかには多数の変形
例がある。ある種の変形例では、これらの要素46、3
0、26、36、38、44a、44b、48のうちの
いくつかを組み合わせることができるが、他の変形例で
は、これらの要素46、30、26、36、38、44
a、44b、48のいくつかが他の機能を実行すること
ができる。したがって、本発明を組み込んだ場合を除
き、これらの要素46、30、26、36、38、44
aおよび44b、48は、多数のグラフィックスCPU
および非グラフィックスCPUにある広義のPDU、I
EU、FPU、整数レジスタ・ファイルおよび浮動小数
点レジスタ・ファイル、MMU、ならびにLSUを表わ
すものである。これらの要素の構成および機能は周知で
あり、それについてはこれ以上説明しない。これらの要
素46、30、26、36、38、44aおよび44
b、48と、GRU28に組み込まれる本発明の教示に
ついて、以下でさらに詳しく説明する。
【0015】図2を参照すると、GRUの一実施例の関
連部分を示すさらに詳しいブロック図が示されている。
この実施例では、GRU28は、グラフィックス状態レ
ジスタ(GSR)50と、第1分割実行パス32および
第2の分割実行パス34とを備える。2つの実行パス3
2および34は相互に独立している。言い換えると、2
つのグラフィックス命令を独立にかつ同時に2つの実行
パス32および34に発行することができる。これらの
実行パスは共に、独立にグラフィックス命令を実行して
グラフィックス・データを操作する。これらの要素5
0、32、34の機能および構成について、残りの図に
関してさらに詳しく説明する。
【0016】次に、図3を参照すると、グラフィックス
状態レジスタ(GSR)の一実施例の関連部分を示す図
が示されている。この実施例では、GSR50を使用し
て、整列位置の前のピクセル・アドレスの最下位3ビッ
ト(alignaddr_offset)54が記憶さ
れ、ピクセルのフォーマットに使用すべきスケール・フ
ァクタ(scale_factor)52が記憶され
る。alignaddr_offset54はビットG
SR[2:0]に記憶され、scale_factor
52はビットGSR[6:3]に記憶される。以下でさ
らに詳しく説明するように、GSR50との間の読取り
および書込みのために2つの特殊命令RDASRおよび
WRASRが用意されている。RDASR命令およびW
RASR命令と、alingaddr_offset5
4およびscale_factor52の使用法につい
ては以下でさらに詳しく説明する。
【0017】次に、図4を参照すると、第1の分割実行
パス32の一実施例の関連部分を示すブロック図が示さ
れている。第1の分割実行パス32は、図のように相互
に結合された、分割キャリー・アダー37と、グラフィ
ックス・データ整列回路39と、グラフィックス・デー
タ拡張/マージ回路60と、グラフィックス・データ論
理演算回路62とを備える。第1の分割実行パス32は
さらに、図のように相互に結合され前述の要素に結合さ
れた、2つのレジスタ35aおよび35bと、4:1マ
ルチプレクサ43も備える。各ディスパッチで、PDU
46は、グラフィックス・データ分割加算/減算命令、
グラフィックス・データ整列命令、グラフィックス・デ
ータ拡張/マージ命令、またはグラフィックス・データ
論理演算を第1の分割実行パス32にディスパッチする
ことができる。分割キャリー・アダー37は、分割グラ
フィックス・データ加算/減算命令を実行し、グラフィ
ックス・データ整列回路39は、GSR50に記憶され
ているalignaddr−offsetを使用してグ
ラフィックス・データ整列命令を実行する。グラフィッ
クス・データ拡張/マージ回路60は、グラフィックス
・データ・マージ/拡張命令を実行する。グラフィック
ス・データ論理演算回路62は、グラフィックス・デー
タ論理演算を実行する。
【0018】分割キャリー・アダー37の機能および構
成は、オペランドの分割された異なる部分に対して複数
の加算/減算を同時に実行できるように、複数のハード
ウェアが複製されていることを除き、当技術分野で知ら
れている多数の整数実行ユニットにある簡単なキャリー
・アダーに類似している。キャリー・チェーンを2つの
16ビット・チェーンに分割することもできる。したが
って、分割キャリー・アダー37についてはこれ以上説
明しない。
【0019】同様に、グラフィックス・データ拡張/マ
ージ回路60およびグラフィックス・データ論理演算回
路62の機能および構成は、オペランドの分割された異
なる部分に対して複数の拡張/マージ動作および論理演
算を同時に実行できるように、複数のハードウェアが複
製されていることを除き、当技術分野で知られている多
数の整数実行ユニットにある拡張/マージ回路および論
理回路に類似している。したがって、ラフィックス・デ
ータ拡張/マージ回路60およびグラフィックス・デー
タ論理演算回路62についてはこれ以上説明しない。
【0020】グラフィックス・データ分割加算/減算命
令およびグラフィックス・データ整列命令と、グラフィ
ックス・データ整列回路39について、以下でさらに詳
しく説明する。
【0021】次に、図5を参照すると、第2の分割実行
パスの一実施例の関連部分をさらに詳しく示すブロック
図が示されている。この実施例では、第2の分割実行パ
ス34は、図示のように相互に結合された、ピクセル距
離計算回路36と、分割乗算器58と、グラフィックス
・データ・パッキング回路59と、グラフィックス・デ
ータ比較回路64とを備える。第2の分割実行パス34
はさらに、図のように相互に結合され前述の要素に結合
された、多数のレジスタ55aないし55cと、4:1
マルチプレクサ53も備える。各ディスパッチで、PD
U46は、ピクセル距離計算命令、グラフィックス・デ
ータ分割乗算命令、グラフィックス・データ・パッキン
グ命令、またはグラフィックス・データ比較命令を第2
の分割実行パス34にディスパッチすることができる。
ピクセル距離計算回路56は、ピクセル距離計算命令を
実行する。分割乗算器58は、グラフィックス・データ
分割乗算命令を実行する。グラフィックス・データ・パ
ッキング回路59は、グラフィックス・データ・パッキ
ング命令を実行する。グラフィックス・データ比較回路
64は、グラフィックス・データ比較命令を実行する。
【0022】分割乗算器58およびグラフィックス・デ
ータ比較回路64の機能および構成は、オペランドの分
割された異なる部分に対して複数の乗算演算および比較
演算を同時に実行できるように、複数のハードウェアが
複製されていることを除き、当技術分野で知られている
多数の整数実行ユニットにある簡単な乗算器および比較
回路に類似している。また、丸めができるように、分割
乗算器に複数のマルチプレクサが設けられ、比較回路6
4によって比較マスクが生成される。したがって、分割
乗算器58およびグラフィックス・データ比較回路64
についてはこれ以上説明しない。
【0023】ピクセル距離計算命令、グラフィックス・
データ分割乗算命令、グラフィックス・データ・パック
/拡張/マージ命令、グラフィックス・データ論理演算
命令、グラフィックス・データ比較命令と、ピクセル距
離回路56およびグラフィックス・データ・パック回路
59について、以下でさらにくわしく説明する。
【0024】以下の説明に基づいて、2つの独立の分割
実行パスを有するGRU28の実施例と、グラフィック
ス命令実行責任の実行パス間での特定の割振りに関して
本発明を説明するが、1つの独立の分割実行パスでも、
あるいは、複数の独立の分割実行パスでも、本発明を実
行することができ、かつグラフィックス命令実行責任を
多数の方法で割り振ることができることが理解されよ
う。
【0025】次に図6〜図8を参照すると、グラフィッ
クス・データ・フォーマット、グラフィックス命令フォ
ーマット、およびグラフィックス命令を示す3つの図が
示されている。図6に示したように、典型的なCPU2
4は、8ビット・フォーマット(Pixel)66a、
16ビット・フォーマット(Fixed16)66b、
および32ビット・フォーマット(Fixed32)6
6cの3つのグラフィックス・データ・フォーマットを
サポートする。したがって、4つのピクセル・フォーマ
ット・グラフィックス・データが32ビット・ワード6
6aとして記憶され、4つのFixed16フォーマッ
ト・グラフィックス・データまたは2つのFixed3
2フォーマット・グラフィックス・データが64ビット
・ワード66bまたは66cとして記憶される。イメー
ジ構成要素は、Pixelフォーマット66aまたはF
ixed16フォーマット66bで記憶される。中間結
果は、Fixed16フォーマット66bまたはFix
ed32フォーマット66cで記憶される。通常、イメ
ージのピクセルの輝度値、たとえば、アルファ値、緑
値、青値、および赤値(α、G、B、R)はPixel
フォーマット66aで記憶される。これらの輝度値は、
イメージ中の点の様々な色構成要素が記憶されるバンド
・インターリーブで記憶することも、あるいは、1つの
構成要素に関するすべての値が記憶されるバンド順次で
記憶することもできる。Fixed16フォーマット6
6bおよびFixed32フォーマット66cは、ピク
セル・データに対して実行されるフィルタリング演算お
よびその他のイメージ処理演算の間に算出される中間デ
ータを記憶するのに十分な精度および動的範囲を提供す
る。グラフィックス・データ・フォーマット変換は、後
述のグラフィックス・データ・パック命令、拡張命令、
マージ命令、および乗算命令を使用して実行される。
【0026】図7に示したように、CPU24は、3つ
のグラフィックス命令フォーマット68aないし68c
をサポートする。命令フォーマット68aないし68c
にかかわらず、2つの最上位ビット[31:30]70
aないし70cは、グラフィックス命令に関する一次命
令フォーマット識別を提供し、ビット[24:19]7
4aないし74cは、グラフィックス命令に関する二次
命令フォーマット識別を提供する。また、ビット[2
9:25](rd)72aないし72cは、グラフィッ
クス(ブロック/部分条件付き記憶)命令の宛先レジス
タ(第3のソース・レジスタ)を識別し、ビット[1
8:14](rs1)76aないし76cは、グラフィ
ックス命令の第1のソース・レジスタを識別する。第1
のグラフィックス命令フォーマット68aの場合、ビッ
ト[13:5](opf)およびビット[4:0](r
s2)82aは、このフォーマットのグラフィックス命
令に関する命令コードおよび第2のソース・レジスタを
識別する。第2および第3の命令フォーマット68bお
よび68cの場合、ビット[13:5](imm_as
i)およびビット[13:0](simm_13)は任
意選択でASIを識別する。最後に、第2のグラフィッ
クス命令フォーマット68bの場合、ビット[4:0]
(rs2)はさらに、そのフォーマットのグラフィック
ス命令用の第2のソース・レジスタ(または部分条件付
き記憶用のマスク)を提示する。
【0027】図8に示したように、CPU24は、多数
のGSR関連命令200、多数の分割加算/減算減算2
02および分割乗算命令208、多数のグラフィックス
・データ整列命令204、多数のピクセル距離計算命令
206、多数のグラフィックス・データ・パック命令2
12および拡張/マージ命令210、多数のグラフィッ
クス・データ論理命令214および比較命令212、多
数のエッジ処理命令218および3−Dアレイ・アクセ
ス命令220、ならびに多数のメモリ・アクセス命令2
22をサポートする。
【0028】GSR関連命令200は、alignad
dr_offsetおよびscale_factor
を、GSR50から読み取り、GSR50に書き込むた
めのRDASR命令とWRASR命令とを含む。RDA
SR命令およびWRASR命令は、IEU30によって
実行される。RDASR命令およびWRASR命令は、
他のCPU制御レジスタ読取り/書込み命令に類似して
おり、したがって、これについてはこれ以上説明しな
い。
【0029】グラフィックス・データ分割加算/減算命
令202は、それぞれ、4つの16ビット・グラフィッ
クス・データ、2つの16ビット・グラフィックス・デ
ータ、2つの32ビット・グラフィックス・データ、お
よび1つの32ビット・グラフィックス・データを加算
し減算する、4つの分割グラフィックス・データ加算命
令と4つの分割グラフィックス・データ減算命令とを含
む。これらの命令は、rs1レジスタおよびrs2レジ
スタ中の対応する固定小数点値を加算または減算する。
前述のように、グラフィックス・データ分割加算/減算
命令202は、GRU28の第1の独立の実行パス32
中の分割キャリー・アダー37によって実行される。
【0030】グラフィックス・データ分割乗算命令20
8は、2つまたは4つの8ビット・グラフィックス・デ
ータに、同時に、2つまたは4つの対応する他の16ビ
ット・グラフィックス・データを乗算する、7つの分割
グラフィックス・データ乗算命令を含む。FMUL8x
16命令は、rs1レジスタ中の4つの8ビット・グラ
フィックス・データに、rs2レジスタ中の対応する4
つの16ビット・グラフィックス・データを乗算する。
各積ごとに、上位16ビットは、rdレジスタの対応す
る位置に記憶される。FMUL8x16AU命令および
FMUL8x16AL命令は、rs1レジスタ中の4つ
の8ビット・グラフィックス・データに、rs2レジス
タ中の32ビット・グラフィックス・データの上半分お
よび下半分をそれぞれ乗算する。同様に、各積ごとに、
上位16ビットは、rdレジスタの対応する位置に記憶
される。
【0031】FMUL8SUx16命令は、rs1レジ
スタ中の4つの16ビット・グラフィックス・データの
うちの4つの上位8ビットに、rs2レジスタ中の対応
する4つの16ビット・グラフィックス・データを乗算
する。同様に、各積ごとに、上位16ビットは、rdレ
ジスタの対応する位置に記憶される。FMUL8ULx
16命令は、rs1レジスタ中の4つの16ビット・グ
ラフィックス・データのうちの4つの下位8ビットに、
rs2レジスタ中の対応する4つの16ビット・グラフ
ィックス・データを乗算する。各積ごとに、符号拡張さ
れた上位8ビットは、rdレジスタの対応する位置に記
憶される。
【0032】FMULD8SUx16命令は、rs1レ
ジスタ中の2つの16ビット・グラフィックス・データ
のうちの2つの上位8ビットに、rs2レジスタ中の対
応する2つの16ビット・グラフィックス・データを乗
算する。各積ごとに、この24ビットに8ビットのゼロ
が追加され、rdレジスタの対応する位置に記憶され
る。FMULD8ULx16命令は、rs1レジスタ中
の2つの16ビット・グラフィックス・データのうちの
2つの下位8ビットに、rs2レジスタ中の対応する2
つの16ビット・グラフィックス・データを乗算する。
各積ごとに、この24ビットは、符号拡張され、rdレ
ジスタの対応する位置に記憶される。
【0033】前述のように、グラフィックス・データ分
割乗算命令208は、GRU28の第2の独立の実行パ
ス34中の分割乗算器58によって実行される。
【0034】グラフィックス・データ拡張・マージ命令
210は、それぞれ、4つの8ビット・グラフィックス
・データを同時に4つの16ビット・グラフィックス・
データとして拡張し、8つの8ビット・グラフィックス
・データを4つの16ビット・グラフィックス・データ
としてインタリーブ的にマージする、グラフィックス・
データ拡張命令とグラフィックス・データ・マージ命令
とを含む。FEXPAND命令は、rs2レジスタ中の
4つの8ビット・グラフィックス・データを取り出し、
各8ビット・グラフィックス・データを4ビットだけ左
シフトさせ、次いで、左シフトされた各グラフィックス
・データを16ビットにゼロ拡張する。結果は、rdレ
ジスタの対応する位置に置かれる。FPMERGE命令
は、rs1レジスタから得た4つの8ビット・グラフィ
ックス・データおよびrs2から得た4つの8ビット・
グラフィックス・データを、rdレジスタ中の64ビッ
ト・グラフィックス・データとしてインタリーブ的にマ
ージする。前述のように、グラフィックス・データ拡張
・マージ命令210は、GRU28の第1の独立の実行
パス32中のグラフィックス・データ拡張/マージ回路
60の拡張/マージ部によって実行される。
【0035】グラフィックス・データ論理演算命令21
4は、グラフィックス・データに対して論理演算を実行
する32個の論理演算命令を含む。4つの論理演算は、
単精度または倍精度でrdレジスタをゼロ充填または1
充填するために設けられている。4つの論理演算は、r
s1レジスタまたはrs2レジスタの内容を単精度また
は倍精度でrdレジスタにコピーするために設けられて
いる。4つの論理演算は、rs1またはrs2の内容を
否定し、単精度または倍精度でrdレジスタに結果を記
憶するためにある。いくつかの論理演算は、rs1レジ
スタおよびrs2レジスタの内容に対して単精度または
倍精度で多数のブール演算を実行し、ブール結果をrd
レジスタに記憶するためにある。これらのブール演算の
うちのいくつかは、まずrs1レジスタまたはrs2レ
ジスタの内容が否定された後に実行される。前述のよう
に、これらのグラフィックス・データ論理演算命令21
4は、GRU28の第1の独立のパス32中のグラフィ
ックス・データ論理演算回路62によって実行される。
【0036】グラフィックス・データ比較命令216
は、4つの16ビット・グラフィックス・データ対また
は2つの32ビット・グラフィックス・データ対を同時
に比較する8つのグラフィックス・データ比較命令を含
む。rs1レジスタ中のグラフィックス・データとrs
2レジスタ中のグラフィックス・データの間の比較に
は、「より多い」、「より少ない」、「等しくない」、
および「等しい」が含まれる。4つまたは2つの結果ビ
ットが、rdレジスタ中の最下位ビットとして記憶され
る。各結果ビットは、対応する比較が真である場合にセ
ットされる。グラフィックス・データ間のコンプリメン
タリ比較、すなわち、「以下」および「以上」は、rs
1レジスタ中のグラフィックス・データとrs2レジス
タ中のグラフィックス・データをスワップすることによ
って実行される。前述のように、これらのグラフィック
ス・データ比較命令216は、GRU28の第1の独立
の実行パス32中のグラフィックス・データ比較回路6
2によって実行される。
【0037】グラフィックス・データメモリ参照命令2
22は、部分(条件付き)記憶命令と、ショート・ロー
ド命令と、ショート記憶命令と、ブロック・ロード命令
と、ブロック記憶命令とを含む。グラフィックス・デー
タ・ロード命令およびグラフィックス・データ記憶命令
は、グラフィックス・データ・ロード命令144とグラ
フィックス・データ記憶命令146を8ビット・グラフ
ィックス・データと16ビット・グラフィックス・デー
タに対して同時に実行すべきかどうかと、そのオペレー
ションを、ビッグ・エンジアン(endian)・フォ
ーマットまたはリトル・エンジアン・フォーマットで一
次アドレス空間または二次アドレス空間に向けるかどう
かを決定する、imm_asi値およびasi値によっ
て指定される。記憶操作の場合、imm_asi値およ
びasi値はさらに、グラフィックス・データ記憶操作
が条件付きであるかどうかを決定する。
【0038】部分(条件付き)記憶操作は、(rs2ビ
ット位置に)指定されたマスクを使用して、rdレジス
タの適当な数の値を、rs1レジスタによって指定され
たアドレスに記憶する。マスクは、ピクセル比較命令に
よって生成される結果と同じフォーマットを有する。マ
スクの最上位ビットは、rs1レジスタの最上位部に対
応する。任意のバイト・アドレスに対して省略8ビット
ロード操作を実行することができる。ショート16ビッ
ト・ロード操作の場合、アドレスの最上位ビットは0で
なければならない。ショート・ロードは、浮動小数点宛
先レジスタを充填するようにゼロ拡張される。ショート
記憶は、浮動小数点ソース・レジスタの下位8ビットま
たは下位16ビットにアクセスする。ブロック・ロード
/記憶操作は、8つの連続64ビット浮動小数点レジス
タと、メモリ中の整列している64バイト・ブロックの
間でデータを転送する。
【0039】前述のように、これらのグラフィックス・
データ・メモリ参照命令222は、CPU24のLSU
48によって実行される。
【0040】グラフィックス・データ整列命令204、
ピクセル距離計算命令206、グラフィックス・データ
・パック命令212、エッジ処理命令218、および3
−Dアレイ・アクセス命令220について、GRU28
の第2の独立の実行パス34中のピクセル距離計算回路
56およびグラフィックス・データ・パック回路59に
関して以下でさらに詳しく説明する。
【0041】次に図9〜図11を参照すると、グラフィ
ックス・データ整列命令と、グラフィックス・データ整
列回路の一実施例の関連部分が示されている。図9に示
したように、2つのグラフィックス・データ・アドレス
計算回路98aおよび98bと、整列していないグラフ
ィックス・データを算出して整列させる1つのグラフィ
ックス・データ整列命令100がある。
【0042】ALIGNADDR命令98aは、rs1
レジスタの内容とrs2レジスタの内容を加算して、r
dレジスタに結果を記憶する。ただし、最下位3ビット
は強制的に0になる。結果の最下位3ビットは、GSR
50のalignaddr_offsetフィールドに
記憶される。ALIGNADDRL命令98bは、結果
の最下位3ビットの2補数がGSR50のaligna
ddr_offsetフィールドに記憶されることを除
き、alignaddr命令98aと同じである。
【0043】FALIGNDATA命令100は、rs
1レジスタ中の2つの64ビット浮動小数点値とrs2
レジスタ中の2つの64ビット浮動小数点値を連結して
16バイト値を形成する。rs1レジスタ中の浮動小数
点値は、連結値の上半分として使用され、rs2レジス
タ中の浮動小数点値は、連結値の下半分として使用され
る。連結値中のバイトは、最上位バイトから最下位バイ
トへと番号付けされ、最上位バイトが0になる。この連
結値から8バイトが抽出される。抽出される値の最上位
バイトの番号は、GSR50のalignaddr_o
ffsetフィールドによって指定されているものであ
る。この結果は、64ビット浮動小数点値としてrdレ
ジスタに記憶される。
【0044】したがって、図10に示したように、AL
IGNADDRESS{_LITTLE}命令を使用し
てalignaddr_offsetをGSR50に記
憶し(ステップa)、整列していないグラフィックス・
データ・ブロックの2つの部分99aおよび99bをメ
モリからrs1レジスタおよびrs2レジスタにコピー
し、FALIGNDATA命令を使用して、整列させた
グラフィックス・データ・ブロックをrdレジスタに記
憶し、次いで、整列させたグラフィックス・データ・ブ
ロック101をrdレジスタから新しいメモリ位置にコ
ピーすることによって、整列していないグラフィックス
・データ・ブロック99aおよび99bを迅速にかつ効
率的に整列させることができる。
【0045】図11に示したように、この実施例では、
グラフィックス・データ整列回路39は、図のように相
互に結合され浮動小数点レジスタ・ファイルに結合され
た64ビット・マルチプレクサ51を備える。マルチプ
レクサ51は、一致していないグラフィックス・データ
を上述のように整列させる。
【0046】次に、図12〜図18を参照すると、グラ
フィックス・データ・パッキング命令と、グラフィック
ス・データ・パック/拡張/マージ回路のパッキング部
の関連部分が示されている。図12〜図15に示したよ
うに、4つの16ビット・グラフィックス・データを4
つの8ビット・グラフィックス・データとして、2つの
32ビット・グラフィックス・データを2つの8ビット
・グラフィックス・データとして、2つの32ビット・
グラフィックス・データを2つの16ビット・グラフィ
ックス・データとして同時にパックする、3つのグラフ
ィックス・データ・パッキング命令106aないし10
6cがある。
【0047】FPACK16命令106aは、rs2レ
ジスタ中の4つの16ビット固定値を取り出し、GSR
50中のscale_factorに応じて、かつクリ
ッピング情報を維持して、これらの値を左シフトさせ、
次いで、(各16ビット値のビット7とビット6の間に
ある)暗黙的な2進位置のすぐ左にある対応するビット
から始まる8ビット値を抽出してクリップする。抽出さ
れた値が負である(すなわち、msbがセットされてい
る)場合、クリップされる値として0が供給される。抽
出された値が255よりも大きい場合、255が供給さ
れる。そうでない場合、抽出された値が最終結果であ
る。クリップされた値は、rdレジスタ中の対応する位
置に置かれる。
【0048】FPACK32命令106bは、rs2レ
ジスタ中の2つの32ビット固定値を取り出し、GSR
50中のscale_factorに応じて、かつクリ
ッピング情報を維持して、これらの値を左シフトさせ、
次いで、(32ビット値のビット23とビット22の間
にある)暗黙的な2進位置のすぐ左にある対応するビッ
トから始まる8ビット値を抽出してクリップする。抽出
された各値ごとに、前述のようにクリッピングが実行さ
れる。また、FPACK32命令106bは、rs1レ
ジスタ中の各32ビット値を8ビットだけ左シフトさせ
る。最後に、FPACK32命令106bは、rs2レ
ジスタから得たクリップされた値を、rs2レジスタか
ら得たシフトされた値とマージする。この場合、クリッ
プされた値は、最下位バイト位置を占有する。この結果
得られる値は、rdレジスタ中の対応する位置に置かれ
る。
【0049】FPACKFIX命令106cは、rs2
レジスタ中の2つの32ビット固定値を取り出し、GS
R50中のscale_factorに応じて、かつク
リッピング情報を維持して、各32ビット値を左シフト
させ、次いで、暗黙的な2進位置(すなわち、32ビッ
ト値のビット16とビット15の間)のすぐ左にあるビ
ットから始まる16ビット値を抽出してクリップする。
抽出された値が−32768よりも小さい場合、−32
768が、クリップされる値として供給される。抽出さ
れた値が32767よりも大きい場合、32767が供
給される。そうでない場合、抽出された値が最終結果で
ある。クリップされた値は、rdレジスタ中の対応する
位置に置かれる。
【0050】図16〜図18に示したように、この実施
例では、グラフィックス・データ・パッキング回路59
は、それぞれ、FPACK16命令、FPACK32命
令、およびFPACKFIX命令を実行する、回路24
8、258、268を備える。
【0051】FPACK16命令を実行する回路248
は、rs2レジスタ中の対応する4つの16ビット固定
値のそれぞれ用の4つの同じ部分240aないし240
dを備える。各部分240aないし240dは、図のよ
うに相互に結合された、シフタ242aないし242d
と、ORゲート244aないし244dと、マルチプレ
クサ246aないし246dとを備える。シフタ242
aないし242dは、GSR50に記憶されているスケ
ール・ファクタに応じて対応する16ビット固定値(符
号ビットを除く)をシフトさせる。符号ビットと、各シ
フト結果のビット[29:15]の論理ORを使用し
て、対応するマルチプレクサ246aないし246dが
制御される。シフト結果のビット[14:7]、値0×
FF、または値0×00が出力される。
【0052】FPACK32命令を実行する回路258
は、rs2レジスタ中の対応する2つの32ビット固定
値のそれぞれ用の2つの同じ部分250aおよび250
bを備える。各部分250aまたは250bは、図のよ
うに相互に結合された、シフタ252aまたは252d
と、ORゲート254aまたは254bと、マルチプレ
クサ256aまたは256bとを備える。シフタ252
aまたは252dは、GSR50に記憶されているスケ
ール・ファクタに応じて対応する32ビット固定値(符
号ビットを除く)をシフトさせる。符号ビットと、各シ
フト結果のビット[45:31]の論理ORを使用し
て、対応するマルチプレクサ256aまたは256bが
制御される。シフト結果のビット[30:23]、値0
×FF、または値0×00が出力される。この出力はさ
らに、rs1レジスタのビット[55:32]またはビ
ット[23:0]と組み合わせられる。
【0053】FPACKFIX命令を実行する回路26
8は、rs2レジスタ中の対応する2つの32ビット固
定値のそれぞれ用の2つの同じ部分260aおよび26
0bを備える。各部分260aまたは260bは、図の
ように相互に結合された、シフタ262aまたは262
dと、NANDゲート263aまたは263bと、NO
Rゲート264aまたは264bと、2つのANDゲー
ト265aおよび265bまたは265cおよび265
dと、マルチプレクサ266aまたは266bとを備え
る。シフタ262aまたは262dは、GSR50に記
憶されているスケール・ファクタに応じて対応する32
ビット固定値(符号ビットを除く)をシフトさせる。符
号ビットの論理ANDと、各シフト結果のビット[4
5:32]の論理NANDと、反転された符号ビットの
論理ANDと、各シフト結果のビット[45:32]の
論理NORとを使用して、対応するマルチプレクサ26
6aまたは266bが制御される。シフト結果のビット
[31:16]、値0×EFFF、または値0×800
0が出力される。
【0054】次に、図19および図20を参照すると、
ピクセル計算命令とピクセル距離計算回路が示されてい
る。図19に示したように、グラフィックス・データ間
の絶対差分を、一度に8つだけ同時に累積する、1つの
グラフィックス・データ距離計算命令138がある。P
DIST命令138は、rs1レジスタ中の8つの8ビ
ット・グラフィックス・データを、rs2レジスタ中の
対応する8つの8ビット・グラフィックス・データから
減算する。この差分の絶対値の和は、rdレジスタの内
容に加算される。PDIST命令は通常、ビデオ圧縮ア
ルゴリズムでの運動の推定に使用される。
【0055】図20に示したように、この実施例では、
ピクセル距離計算回路56は、8つの8ビット減算器対
57aないし57hを備える。ピクセル距離計算回路5
6は、図のように相互に結合された、3つの4:2繰上
り保存加算器61aないし61cと、3:2キャリー保
存アダー62と、2つのレジスタ63aおよび63b
と、11ビットキャリー伝搬アダー65も備える。8つ
の8ビット減算器対57aないし57hと、3つの4:
2キャリー保存アダー61aないし61cと、3:2キ
ャリー保存加算器62と、2つのレジスタ63aおよび
63bと、11ビットキャリー伝搬加算器65は協働し
て、8つの8ビット値対の間の絶対差分を算出し、絶対
差分を合計して64ビット和を求める。
【0056】次に、図21および図22を参照すると、
グラフィックス・データ・エッジ処理命令が示されてい
る。図のように、8つの8ビット・エッジ・マスク、4
つの16ビット・エッジ・マスク、2つの32ビット・
エッジ・マスクをビッグ・エンジアン・フォーマットま
たはリトル・エンジアン・フォーマットで同時に生成す
る6つのグラフィックス・エッジ処理命令140aない
し140fがある。
【0057】マスクは、それぞれ、次にレンダリングす
べき一連のピクセルのアドレス、および走査線の最後の
ピクセルのアドレスが記憶されている、rs1レジスタ
およびrs2レジスタ中のグラフィックス・データ・ア
ドレスに応じて生成される。生成されたマスクは、rd
レジスタの最下位ビットに記憶される。
【0058】各マスクは、以下のように左エッジ・マス
クから右エッジ・マスクへ算出される。 a)図22に従って、rs1レジスタの最下位3ビット
(LSB)から左エッジ・マスクが算出され、rs2レ
ジスタの最下位3ビット(LSB)から右エッジ・マス
クが算出される。 b)32ビット・アドレス・マスキングがディスエーブ
ルされ、すなわち、64ビット・アドレス指定であり、
rs1レジスタの上位61ビットがrs2レジスタの対
応するビットに等しい場合、rdは、右エッジ・マスク
と左エッジ・レジスタの論理ANDに等しく設定され
る。 c)32ビット・アドレス・マスキングがイネーブルさ
れ、すなわち、32ビット・アドレス指定であり、rs
1レジスタの上位29ビット([26:2])がrs2
レジスタの対応するビットに等しい場合、rdレジスタ
は、右エッジ・マスクと左エッジ・レジスタの論理AN
Dに等しく設定される。 d)その他の場合、rdは左エッジ・マスクにセットさ
れる。
【0059】また、多数の条件コードが以下のように修
正される。 a)rs1レジスタのビット31(符号)とrs2レジ
スタのビット31(符号)が異なり、差分のビット31
(符号)がrs1のビット31(符号)と異なる場合、
32ビット桁あふれ条件コードがセットされる。rs1
レジスタのビット63(符号)とrs2レジスタのビッ
ト63(符号)が異なり、差分のビット63(符号)が
rs1のビット63(符号)と異なる場合、64ビット
桁あふれ条件コードがセットされる。 b)差分のビット31(符号)がセットされた場合、3
2ビット負条件コードがセットされる。差分のビット6
3(符号)がセットされた場合、64ビット負条件コー
ドがセットされる。 c)32ビット差分が0である場合、32ビット・ゼロ
条件コードがセットされる。64ビット差分が0である
場合、64ビット・ゼロ条件コードがセットされる。
【0060】前述のように、グラフィックス・エッジ処
理命令140aないし140fはIEU30によって実
行される。IEU30は追加ハードウェアを必要としな
い。
【0061】次に、図23および図24を参照すると、
3−Dアドレス指定命令および3−Dアドレス指定回路
が示されている。図23に示したように、8ビット3−
Dアドレス、16ビット3−Dアドレス、および32ビ
ット3−Dアドレスをブロック化バイト・アドレスに変
換する3つの3−Dアレイ・アドレス指定命令142a
ないし142cがある。
【0062】これらの命令142aないし142cはそ
れぞれ、rs1レジスタ中の3−D固定小数点アドレス
をブロック化バイト・アドレスに変換し、その結果得ら
れるブロック化バイト・アドレスをrdレジスタに記憶
する。これらの命令142aないし142cは通常、平
面再フォーマットのためのアドレス補間に使用される。
ブロック化は、アドレス補間の配向にかかわらずに、6
4バイト・レベルでは外部キャッシュ・クロック再使用
度を最大にするために使用され、64kバイトレベルで
はデータ・キャッシュの変換ルックアサイド・バッファ
(TLB)項目再使用度を最大にするために使用され
る。要素のサイズ、すなわち、8ビット、16ビット、
または32ビットは命令によって暗黙指定される。rs
2レジスタの値は、3Dイメージ・アレイのX次元およ
びY次元の2つのサイズの累乗を指定する。図の実施例
では、妥当な値は0ないし5である。値0では64個の
要素が指定され、値1では128個の要素が指定され、
以下同様であり、値5では、外部キャッシュ・ブロック
・サイズに関する最大の2048個の要素が指定され
る。X、Y、Z(rs1)の整数部は、8ビット・フォ
ーマット、16ビット・フォーマット、または32ビッ
ト・フォーマットに変換される。Z上位ビットを超える
ビットはゼロにセットされる。最下位ビット中の0の数
は、要素サイズによって決定される。8ビットの要素サ
イズには0がなく、16ビットの要素サイズは1つの0
を有し、32ビットの要素サイズは2つの0を有する。
rs2レジスタによって指定されたサイズを超えるXお
よびYのビットは無視される。
【0063】前述のように、3−Dアレイ・アドレス指
定命令142aないし140cもIEU30によって実
行される。図24は、IEU30に設けられる追加回路
の一実施例を示す。追加回路300は、図のように相互
に結合された、2つのシフト・レジスタ308および3
10と、多数のマルチプレクサ304a、304b、3
06とを備える。まず、X、Y、Zの下位整数部および
中央整数部の適当なビット(すなわち、ビット<12:
11>、<34:33>、<55>、<16:13>、
<38:35>、および<59:56>)がシフト・レ
ジスタA308に記憶される。同様に、Zの上位整数部
の適当なビット(すなわち、<63:60>)がシフト
・レジスタB310に記憶される。次いで、XおよびY
の上位整数部の選択されたビットが、rs2の値に応じ
て、シフト・レジスタB310内に順序正しくシフトさ
れる。最後に、アレイ要素サイズ(すなわち、8ビッ
ト、16ビット、または32ビット)に応じて、0個、
1個、または2個のゼロ・ビットがシフト・レジスタA
308内にシフトされ、シフト・アウト・ビットがシフ
ト・レジスタB310内にシフトされる。
【0064】現在好ましい実施例および代替実施例に関
して本発明を説明したが、当業者には、本発明が、説明
した実施例に限らないことが認識されよう。本発明の方
法および装置は、添付の特許請求の範囲の趣旨および範
囲の範囲内で修正を加えて実施することができる。した
がって、以上の説明は、本発明の例とみなすものであ
り、本発明の範囲を制限するものではない。
【図面の簡単な説明】
【図1】本発明の開示を組み込んだ典型的なグラフィッ
クス・コンピュータ・システムのCPUを示す図であ
る。
【図2】グラフィックス実行ユニット(GRU)の一実
施例の関連部分を詳細に示す図である。
【図3】GRUのグラフィックス状態レジスタ(GS
R)を詳細に示す図である。
【図4】GRUの第1の分割実行パスを詳細に示す図で
ある。
【図5】GRUの第2の分割実行パスを詳細に示す図で
ある。
【図6】グラフィックス・データ・フォーマットを詳細
に示す図である。
【図7】グラフィックス命令フォーマットを詳細に示す
図である。
【図8】グラフィック命令グループを詳細に示す図であ
る。
【図9】グラフィックス・データ整列命令を詳細に示す
図である。
【図10】グラフィックス・データ整列回路を詳細に示
す図である。
【図11】グラフィックス・データ整列回路を詳細に示
す図である。
【図12】グラフィックス・データ・パッキング命令を
詳細に示す図である。
【図13】グラフィックス・データ・パッキング回路を
詳細に示す図である。
【図14】グラフィックス・データ・パッキング回路を
詳細に示す図である。
【図15】グラフィックス・データ・パッキング回路を
詳細に示す図である。
【図16】グラフィックス・データ・パッキング回路を
詳細に示す図である。
【図17】グラフィックス・データ・パッキング回路を
詳細に示す図である。
【図18】グラフィックス・データ・パッキング回路を
詳細に示す図である。
【図19】グラフィックス・データ・ピクセル距離計算
命令を詳細に示す図である。
【図20】グラフィックス・データ・ピクセル距離計算
回路を詳細に示す図である。
【図21】グラフィックス・データ・エッジ処理命令を
詳細に示す図である。
【図22】グラフィックス・データ・エッジ処理命令を
詳細に示す図である。
【図23】グラフィックス・データ3−Dアレイ・アド
レス命令を詳細に示す図である。
【図24】グラフィックス・データ3−Dアレイ・アド
レス回路を詳細に示す図である。
【符号の説明】
24 CPU 26 浮動小数点ユニット(FPU) 28 グラフィックス実行ユニット(GRU) 30 整数実行ユニット(IEU) 32 第1の分割実行パス 35 第2の分割実行パス 36 整数レジスタ・ファイル 37 分割繰上り加算器 38 浮動小数点レジスタ・ファイル 39 グラフィックス・データ整列回路 40 命令キャッシュ 42 データ・キャッシュ 43 4:1マルチプレクサ 44 メモリ管理ユニット(IMMUおよびDMMU) 46 プリフェッチ・ディスパッチユニット(PDU) 48 ロード・記憶ユニット(LSU) 50 グラフィックス状態レジスタ(GSR) 52 alignaddr_offset 54 scale_factor 58 分割乗算器 59 グラフィックス・データ・パッキング回路 60 グラフィックス・データ拡張/マージ回路 62 グラフィックス・データ論理演算回路 64 グラフィックス・データ比較回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 レスリー・ディーン・コーン アメリカ合衆国 94539 カリフォルニア 州・フレモント・ロズメア ドライブ・ 43967 (72)発明者 ロバート・ヤング アメリカ合衆国 94555 カリフォルニア 州・フレモント・コマース ドライブ・ 5797

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 グラフィックス・データに関するスケー
    ル・ファクタを記憶するグラフィックス状態レジスタ
    (GSR)と、 前記記憶されたスケール・ファクタに応じて、第1の分
    割グラフィックス・データ・フォーマットの複数のグラ
    フィックス・データを同時に、第2の分割グラフィック
    ス・データ・フォーマットとしてそれぞれパックする複
    数のグラフィックス・データ・パッキング命令を実行す
    る、前記GSRに結合されたグラフィックス・データ変
    換回路とを備えることを特徴とする装置。
  2. 【請求項2】 グラフィックス・データ・アドレス整列
    オフセットを記憶するグラフィックス状態レジスタ(G
    SR)と、 整列していないグラフィックス・データ・ブロックのア
    ドレスとアドレス整列オフセットをそれぞれ算出する、
    複数のグラフィックス・データ非整列アドレス計算命令
    を実行するために前記GSRに結合されたグラフィック
    ス・データ整列回路とを備えることを特徴とする装置。
  3. 【請求項3】 複数のグラフィックス・データ対の絶対
    差分を同時に算出して、その絶対差分を累積するピクセ
    ル距離計算命令を実行する、ピクセル距離計算回路を備
    えることを特徴とする装置。
  4. 【請求項4】 複数の非グラフィックス整数命令と、複
    数のグラフィックス・データ・アドレス対用の複数のエ
    ッジ・マスクをそれぞれ同時に生成する、複数のグラフ
    ィックス・データ・エッジ処理命令とを実行する整数実
    行ユニット(IEU)を備えることを特徴とする装置。
  5. 【請求項5】 複数の非グラフィックス整数命令と、複
    数の3−Dグラフィックス・データ・アレイ固定小数点
    アドレスをブロック化バイト・アドレスにそれぞれ変換
    する、複数のグラフィックス・データ三次元(3−D)
    アレイ・アドレス指定命令とを実行する整数実行ユニッ
    ト(IEU)を備えることを特徴とする装置。
  6. 【請求項6】 浮動小数点データおよびグラフィックス
    ・データを記憶する浮動小数点レジスタ・ファイル(F
    PRF)と、 整数データ・アドレスおよびグラフィックス・データ・
    アドレスを記憶する整数レジスタ・ファイル(IRF)
    と、 複数の非グラフィックス浮動小数点命令を実行するため
    に前記FPRFに結合された浮動小数点実行ユニット
    (FPU)と、 複数の非グラフィックス整数命令と、複数のグラフィッ
    クス・データ・アドレス対用の複数のエッジ・マスクを
    それぞれ同時に生成する、複数のグラフィックス・デー
    タ・エッジ処理命令と、複数の3−Dグラフィックス・
    データ・アレイ固定小数点アドレスをブロック化バイト
    ・アドレスにそれぞれ変換する、複数のグラフィックス
    ・データ三次元(3−D)アレイ・アドレス指定命令と
    を実行する、前記IRFに結合された整数実行ユニット
    (IEU)と、 スケール・ファクタに応じて、第1の分割グラフィック
    ス・データ・フォーマットの複数のグラフィックス・デ
    ータを同時に、第2の分割グラフィックス・データ・フ
    ォーマットとしてそれぞれパックする、複数のグラフィ
    ックス・データ・パッキング命令と、整列していないグ
    ラフィックス・データ・ブロックのアドレスとアドレス
    整列オフセットをそれぞれ算出する、複数のグラフィッ
    クス・データ非整列アドレス計算命令と、アドレス整列
    オフセットに応じて、整列していないグラフィックス・
    データ・ブロックをそれぞれ整列させる、複数のグラフ
    ィックス・データ整列命令と、複数のグラフィックス・
    データ対の絶対差分を同時に算出して、その絶対差分を
    累積するピクセル距離計算命令とを実行する、前記FP
    RFに結合されたグラフィックス実行ユニット(GR
    U)とを備えることを特徴とする装置。
  7. 【請求項7】 中央演算処理装置(CPU)によってグ
    ラフィックス命令を実行する方法において、 前記CPUに配設されたグラフィックス状態レジスタ
    (GSR)に、グラフィックス・データに関するスケー
    ル・ファクタを記憶するステップと、 前記CPUに配設された専用グラフィックス・データ変
    換回路を使用して、前記記憶されたスケール・ファクタ
    に応じて、第1の分割グラフィックス・データ・フォー
    マットの複数のグラフィックス・データを同時に、第2
    の分割グラフィックス・データ・フォーマットとしてパ
    ックする、複数のグラフィックス・データ・パッキング
    命令を実行するステップとを含むことを特徴とする方
    法。
  8. 【請求項8】 中央処理装置(CPU)によってグラフ
    ィックス命令を実行する方法において、 複数のグラフィックス・データ非整列アドレス計算命令
    を実行し、前記CPUに配設された専用グラフィックス
    ・データ整列回路を使用して、整列していないグラフィ
    ックス・データ・ブロックのアドレスとアドレス整列オ
    フセットを算出するステップと、 前記CPUに配設されたグラフィックス状態レジスタ
    (GSR)に前記アドレス整列オフセットを記憶するス
    テップとを含むことを特徴とする方法。
  9. 【請求項9】 中央処理装置(CPU)によってグラフ
    ィックス命令を実行する方法において、 ピクセル距離計算命令を実行し、前記CPUに配設され
    た専用ピクセル距離計算回路を使用して、複数のグラフ
    ィックス・データ対の絶対差分を同時に算出してその絶
    対差分を累積するステップを含むことを特徴とする方
    法。
  10. 【請求項10】 中央処理装置(CPU)によってグラ
    フィックス命令を実行する方法において、 複数のグラフィックス・データ・エッジ処理命令を実行
    し、前記CPUに配設された整数実行ユニット(IE
    U)を使用して、複数のグラフィックス・データ・アド
    レス対用の複数のエッジ・マスクを同時に生成するステ
    ップを含むことを特徴とする方法。
  11. 【請求項11】 中央処理装置(CPU)によってグラ
    フィックス命令を実行する方法において、複数のグラフ
    ィックス・データ三次元(3−D)アレイ・アドレス指
    定命令を実行し、前記CPUに配設された整数実行ユニ
    ット(IEU)を使用して、複数の3−Dグラフィック
    ス・データ・アレイ固定小数点アドレスをブロック化バ
    イト・アドレスに変換するステップを含むことを特徴と
    する方法。
  12. 【請求項12】 中央処理装置(CPU)によってグラ
    フィックス命令を実行する方法において、 前記CPUに配設されたグラフィックス状態レジスタ
    (GSR)に、グラフィックス・データに関するスケー
    ル・ファクタを記憶するステップと、 前記CPUに配設された専用グラフィックス・データ変
    換回路を使用して、前記記憶されたスケール・ファクタ
    に応じて、第1の分割グラフィックス・データ・フォー
    マットの複数のグラフィックス・データを同時に、第2
    の分割グラフィックス・データ・フォーマットとしてパ
    ックする、複数のグラフィックス・データ・パッキング
    命令を実行するステップと、 複数のグラフィックス・データ非整列アドレス計算命令
    を実行し、前記CPUに配設された専用グラフィックス
    ・データ整列回路を使用して、整列していないグラフィ
    ックス・データ・ブロックのアドレスとアドレス整列オ
    フセットを算出し、前記アドレス整列オフセットを前記
    GSRに記憶するステップと、 複数のグラフィックス・データ整列命令を実行し、前記
    専用グラフィックス・データ整列回路を使用して、前記
    記憶されたアドレス整列オフセットに応じて、整列して
    いないグラフィックス・データ・ブロックを整列するス
    テップと、 ピクセル距離計算命令を実行し、前記CPUに配設され
    た専用ピクセル距離計算回路を使用して、複数のグラフ
    ィックス・データ対の絶対差分を同時に算出してその絶
    対差分を累積するステップと、 複数のグラフィックス・データ・エッジ処理命令を実行
    し、前記CPUに配設された整数実行ユニット(IE
    U)を使用して、複数のグラフィックス・データ・アド
    レス対用の複数のエッジ・マスクを同時に生成するステ
    ップと、 複数のグラフィックス・データ三次元(3−D)アレイ
    ・アドレス指定命令を実行し、前記CPUに配設された
    整数実行ユニット(IEU)を使用して、複数の3−D
    グラフィックス・データ・アレイ固定小数点アドレスを
    ブロック化バイト・アドレスに変換するステップを含む
    ことを特徴とする方法。
  13. 【請求項13】 中央演算処理装置(CPU)に固有の
    グラフィックス機能を提供する方法において、 グラフィックス・データに関するスケール・ファクタを
    記憶するグラフィックス状態レジスタ(GSR)を前記
    CPUに設けるステップと、 前記記憶されたスケール・ファクタに応じて、第1の分
    割グラフィックス・データ・フォーマットの複数のグラ
    フィックス・データを同時に、第2の分割グラフィック
    ス・データ・フォーマットとしてパックする、複数のグ
    ラフィックス・データ・パッキング命令を実行する専用
    グラフィックス・データ変換回路を前記CPUに設ける
    ステップとを含むことを特徴とする方法。
  14. 【請求項14】 中央演算処理装置(CPU)に固有の
    グラフィックス機能を提供する方法において、 複数のグラフィックス・データ非整列アドレス計算命令
    を実行して、整列していないグラフィックス・データ・
    ブロックのアドレスとアドレス整列オフセットを算出す
    る、専用グラフィックス・データ整列回路を前記CPU
    に設けるステップと、 前記アドレス整列オフセットを記憶するグラフィックス
    状態レジスタ(GSR)を前記CPUに設けるステップ
    とを含むことを特徴とする方法。
  15. 【請求項15】 中央演算処理装置(CPU)に固有の
    グラフィックス機能を提供する方法において、 ピクセル距離計算命令を実行して、複数のグラフィック
    ス・データ対の絶対差分を同時に算出してその絶対差分
    を累積する、専用ピクセル距離計算回路を前記CPUに
    設けるステップを含むことを特徴とする方法。
  16. 【請求項16】 中央演算処理装置(CPU)に固有の
    グラフィックス機能を提供する方法において、 複数のグラフィックス・データ・エッジ処理命令を実行
    して、複数のグラフィックス・データ・アドレス対用の
    複数のエッジ・マスクを同時に生成する、整数実行ユニ
    ット(IEU)への回路を前記CPUに設けるステップ
    を含むことを特徴とする方法。
  17. 【請求項17】 中央演算処理装置(CPU)に固有の
    グラフィックス機能を提供する方法において、複数のグ
    ラフィックス・データ三次元(3−D)アレイ・アドレ
    ス指定命令を実行して、複数の3−Dグラフィックス・
    データ・アレイ固定小数点アドレスをブロック化バイト
    ・アドレスに変換する、整数実行ユニット(IEU)へ
    の回路を前記CPUに設けるステップを含むことを特徴
    とする方法。
  18. 【請求項18】 中央演算処理装置(CPU)に固有の
    グラフィックス機能を提供する方法において、 グラフィックス・データに関するスケール・ファクタを
    記憶するグラフィックス状態レジスタ(GSR)を前記
    CPUに設けるステップと、 前記記憶されたスケール・ファクタに応じて、第1の分
    割グラフィックス・データ・フォーマットの複数のグラ
    フィックス・データを同時に、第2の分割グラフィック
    ス・データ・フォーマットとしてパックする、複数のグ
    ラフィックス・データ・パッキング命令を実行する専用
    グラフィックス・データ変換回路を前記CPUに設ける
    ステップと、 複数のグラフィックス・データ非整列アドレス計算命令
    を実行して、整列していないグラフィックス・データ・
    ブロックのアドレスと、前記GSRに記憶されるアドレ
    ス整列オフセットとを算出する、専用グラフィックス・
    データ整列回路を前記CPUに設けるステップと、 複数のグラフィックス・データ整列命令を実行して、前
    記記憶されたアドレス整列オフセットに応じて、整列し
    ていないグラフィックス・データ・ブロックを整列させ
    る、前記専用グラフィックス・データ整列回路への回路
    を設けるステップと、 ピクセル距離計算命令を実行して、複数のグラフィック
    ス・データ対の絶対差分を同時に算出してその絶対差分
    を累積する、前記CPUに配設された専用ピクセル距離
    計算回路を提供するステップと、 複数のグラフィックス・データ・エッジ処理命令を実行
    して、複数のグラフィックス・データ・アドレス対用の
    複数のエッジ・マスクを同時に生成する、整数実行ユニ
    ット(IEU)への回路を前記CPUに設けるステップ
    と、 複数のグラフィックス・データ三次元(3−D)アレイ
    ・アドレス指定命令を実行して、複数の3−Dグラフィ
    ックス・データ・アレイ固定小数点アドレスをブロック
    化バイト・アドレスに変換する、整数実行ユニット(I
    EU)への回路を設けるステップを含むことを特徴とす
    る方法。
  19. 【請求項19】 非グラフィックス命令および非グラフ
    ィックス・データと、グラフィックス命令およびグラフ
    ィックス・データとを記憶するメモリ装置を備え、かつ
    浮動小数点データおよびグラフィックス・データを記憶
    する浮動小数点レジスタ・ファイル(FPRF)と、前
    記非グラフィックス命令の浮動小数点演算を実行する浮
    動小数点実行ユニット(FPU)と、前記FPRFおよ
    び前記メモリ装置との間でグラフィックス・データのロ
    ードおよび記憶を行うロード記憶ユニット(LSU)と
    を有する、中央演算処理装置(CPU)を備えるコンピ
    ュータ・システムにおける、整列していないグラフィッ
    クス・データ・ブロックを整列させる装置において、 a)前記FPRFおよび前記メモリ装置に複数の分割フ
    ォーマットで構成され記憶されているグラフィックス・
    データに関するアドレス整列オフセットを記憶するため
    に前記CPUと一体化されたグラフィックス状態レジス
    タ(GSR)手段と、 b)複数のグラフィックス・データ非整列アドレス計算
    命令と、前記グラフィックス命令の複数のグラフィック
    ス・データ整列命令とを実行するために、前記CPUに
    一体化され、前記FPRFおよび前記GSR手段に結合
    された、グラフィックス・データ整列手段とを備え、 各前記グラフィックス・データ非整列アドレス計算命令
    が、整列していないグラフィックス・データ・ブロック
    のアドレスとアドレス整列オフセットを算出し、前記整
    列していないグラフィックス・データ・ブロックが、前
    記LSUを使用して前記FPRFから前記メモリ装置に
    ロードされ、 各前記グラフィックス・データ整列命令が、前記記憶さ
    れたアドレス整列オフセットに応じて、前記FPRFに
    記憶されている整列していないグラフィックス・データ
    ・ブロックを整列させ、前記整列させたグラフィックス
    ・データ・ブロックが、前記LSUを使用して、前記F
    PRFから前記メモリ装置に記憶され直すことを特徴と
    する装置。
  20. 【請求項20】 非グラフィックス命令および非グラフ
    ィックス・データと、グラフィックス命令およびグラフ
    ィックス・データとを記憶するメモリ装置を備え、かつ
    浮動小数点データおよびグラフィックス・データを記憶
    する浮動小数点レジスタ・ファイル(FPRF)と、前
    記非グラフィックス命令の浮動小数点演算を実行する浮
    動小数点実行ユニット(FPU)と、前記FPRFおよ
    び前記メモリ装置との間でグラフィックス・データのロ
    ードおよび記憶を行うロード記憶ユニット(LSU)と
    を有する、中央演算処理装置(CPU)を備えるコンピ
    ュータ・システムにおける、整列していないグラフィッ
    クス・データ・ブロックを整列させる方法において、 a)前記LSUを使用して、整列していないグラフィッ
    クス・データを前記FPRFから前記メモリ装置にロー
    ドするステップと、 b)前記CPUに一体化されているが前記FPUとは独
    立のグラフィックス・データ整列手段を使用して、前記
    整列していないグラフィックス・データ・ブロックの整
    列アドレスおよび整列アドレス・オフセットを算出し、
    前記FPRFとは独立のグラフィックス状態レジスタ
    (GSR)に前記算出されたアドレス・オフセットを記
    憶するステップと、 c)前記FPUとは独立の前記グラフィックス・データ
    整列手段を使用して、前記算出された整列アドレスおよ
    び前記記憶された整列アドレス・オフセットに応じて、
    前記整列していないグラフィックス・データ・ブロック
    を整列させるステップと、 d)前記LSUを使用して、前記整列させたグラフィッ
    クス・データブロックを前記FPRFから前記メモリ装
    置に記憶し直すステップとを含むことを特徴とする方
    法。
JP7128841A 1994-04-29 1995-05-01 統合されたグラフィックス機能を含むcpu Pending JPH0844880A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/236,572 US5734874A (en) 1994-04-29 1994-04-29 Central processing unit with integrated graphics functions
US236572 1994-04-29

Publications (1)

Publication Number Publication Date
JPH0844880A true JPH0844880A (ja) 1996-02-16

Family

ID=22890060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7128841A Pending JPH0844880A (ja) 1994-04-29 1995-05-01 統合されたグラフィックス機能を含むcpu

Country Status (5)

Country Link
US (3) US5734874A (ja)
EP (1) EP0680013B1 (ja)
JP (1) JPH0844880A (ja)
KR (1) KR950033886A (ja)
DE (1) DE69527674D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131981B2 (en) 2002-08-09 2012-03-06 Marvell International Ltd. SIMD processor performing fractional multiply operation with saturation history data processing to generate condition code flags

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6396504B1 (en) * 1994-04-29 2002-05-28 Sun Microsystems, Inc. Graphical image data reformatting method and apparatus
WO1996017291A1 (en) * 1994-12-02 1996-06-06 Intel Corporation Microprocessor with packing operation of composite operands
US5790126A (en) * 1995-01-03 1998-08-04 Microsoft Corporation Method for rendering a spline for scan conversion of a glyph
US5798753A (en) * 1995-03-03 1998-08-25 Sun Microsystems, Inc. Color format conversion in a parallel processor
US5966529A (en) * 1995-05-15 1999-10-12 Zsp Corporation Processor having auxiliary operand register file and complementary arrangements for non-disruptively performing adjunct execution
US7483935B2 (en) * 1995-08-16 2009-01-27 Microunity Systems Engineering, Inc. System and method to implement a matrix multiply unit of a broadband processor
US6295599B1 (en) * 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5953241A (en) * 1995-08-16 1999-09-14 Microunity Engeering Systems, Inc. Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction
US6385634B1 (en) 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US7395298B2 (en) * 1995-08-31 2008-07-01 Intel Corporation Method and apparatus for performing multiply-add operations on packed data
US5933160A (en) 1995-11-27 1999-08-03 Sun Microsystems High-performance band combine function
US5872729A (en) * 1995-11-27 1999-02-16 Sun Microsystems, Inc. Accumulation buffer method and apparatus for graphical image processing
US5940859A (en) 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
US6792523B1 (en) 1995-12-19 2004-09-14 Intel Corporation Processor with instructions that operate on different data types stored in the same single logical register file
US6487308B1 (en) * 1996-05-22 2002-11-26 Compaq Computer Corporation Method and apparatus for providing 64-bit YUV to RGB color conversion
US5850227A (en) * 1996-12-20 1998-12-15 Compaq Computer Corporation Bit map stretching using operand routing and operation selective multimedia extension unit
US6182188B1 (en) * 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
KR100245628B1 (ko) * 1997-04-03 2000-03-02 홍성식 폐오일히터기의 연료탱크 및 공기분무노즐
US5886712A (en) * 1997-05-23 1999-03-23 Sun Microsystems, Inc. Data channel extraction in a microprocessor
US5880746A (en) * 1997-06-20 1999-03-09 Sun Microsystems, Inc. Apparatus for forming a sum in a signal processing system
US5872965A (en) * 1997-06-30 1999-02-16 Sun Microsystems, Inc. System and method for performing multiway branches using a visual instruction set
US6260137B1 (en) * 1997-09-12 2001-07-10 Siemens Aktiengesellschaft Data processing unit with digital signal processing capabilities
US7197625B1 (en) * 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6108007A (en) * 1997-10-09 2000-08-22 Silicon Graphics, Inc. Method, system, and computer program product for increasing interpolation precision using multi-channel texture mapping
US5933650A (en) * 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6061782A (en) * 1997-11-29 2000-05-09 Ip First Llc Mechanism for floating point to integer conversion with RGB bias multiply
WO1999048025A2 (en) 1998-03-18 1999-09-23 Koninklijke Philips Electronics N.V. Data processing device and method of computing the cosine transform of a matrix
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
US7392275B2 (en) * 1998-03-31 2008-06-24 Intel Corporation Method and apparatus for performing efficient transformations with horizontal addition and subtraction
US7395302B2 (en) * 1998-03-31 2008-07-01 Intel Corporation Method and apparatus for performing horizontal addition and subtraction
US6326984B1 (en) * 1998-11-03 2001-12-04 Ati International Srl Method and apparatus for storing and displaying video image data in a video graphics system
US6798417B1 (en) 1999-09-23 2004-09-28 International Business Machines Corporation Just in time graphics dispatching
JP2001175696A (ja) * 1999-12-15 2001-06-29 Nec Corp Cadデータの圧縮方法及びその装置
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6701424B1 (en) * 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6791564B1 (en) 2000-05-05 2004-09-14 Ipfirst, Llc Mechanism for clipping RGB value during integer transfer
US6778136B2 (en) * 2001-12-13 2004-08-17 Sirf Technology, Inc. Fast acquisition of GPS signal
FR2818145B1 (fr) * 2000-12-18 2003-11-28 Oreal Compositions cosmetiques antisolaires a base d'un melange synergetique de filtres et utilisations
US7711763B2 (en) * 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
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
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7599981B2 (en) * 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US6828987B2 (en) * 2001-08-07 2004-12-07 Ati Technologies, Inc. Method and apparatus for processing video and graphics data
US7253818B2 (en) * 2001-08-07 2007-08-07 Ati Technologies, Inc. System for testing multiple devices on a single system and method thereof
US7016418B2 (en) * 2001-08-07 2006-03-21 Ati Technologies, Inc. Tiled memory configuration for mapping video data and method thereof
US7051168B2 (en) * 2001-08-28 2006-05-23 International Business Machines Corporation Method and apparatus for aligning memory write data in a microprocessor
WO2003021423A2 (en) 2001-09-04 2003-03-13 Microunity Systems Engineering, Inc. System and method for performing multiplication
US7430578B2 (en) * 2001-10-29 2008-09-30 Intel Corporation Method and apparatus for performing multiply-add operations on packed byte data
US20030101280A1 (en) * 2001-11-27 2003-05-29 Chiu Kenneth Y. Fast jump address algorithm
WO2004015563A1 (en) * 2002-08-09 2004-02-19 Intel Corporation Multimedia coprocessor control mechanism including alignment or broadcast instructions
US7392368B2 (en) * 2002-08-09 2008-06-24 Marvell International Ltd. Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
US8190669B1 (en) 2004-10-20 2012-05-29 Nvidia Corporation Multipurpose arithmetic functional unit
CN101849227A (zh) 2005-01-25 2010-09-29 透明信息技术有限公司 在单片构造的硅芯片上采用多个图形核心的图形处理和显示系统
US8037119B1 (en) * 2006-02-21 2011-10-11 Nvidia Corporation Multipurpose functional unit with single-precision and double-precision operations
US8051123B1 (en) * 2006-12-15 2011-11-01 Nvidia Corporation Multipurpose functional unit with double-precision and filtering operations
US8106914B2 (en) * 2007-12-07 2012-01-31 Nvidia Corporation Fused multiply-add functional unit
US8633936B2 (en) * 2008-04-21 2014-01-21 Qualcomm Incorporated Programmable streaming processor with mixed precision instruction execution
US8604946B2 (en) * 2011-04-08 2013-12-10 Panasonic Corporation Data processing device and data processing method
KR20150064197A (ko) 2012-12-26 2015-06-10 인텔 코포레이션 인접한 수집/분산 연산들의 통합
US9779471B2 (en) 2014-10-01 2017-10-03 Qualcomm Incorporated Transparent pixel format converter
US10942257B2 (en) 2016-12-31 2021-03-09 Innovusion Ireland Limited 2D scanning high precision LiDAR using combination of rotating concave mirror and beam steering devices
US11803377B2 (en) * 2017-09-08 2023-10-31 Oracle International Corporation Efficient direct convolution using SIMD instructions
CN111080029B (zh) * 2019-12-26 2022-09-06 山东大学 基于多路段时空相关的城市交通路段速度预测方法及系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4882683B1 (en) * 1987-03-16 1995-11-07 Fairchild Semiconductor Cellular addrssing permutation bit map raster graphics architecture
US4965752A (en) * 1987-04-24 1990-10-23 Intel Corporation Spatial transformation of node points in computer graphics using vector differences between their spatial coordinates
DE3786080D1 (de) * 1987-08-20 1993-07-08 Ibm Speicherzugriffssteuerungsvorrichtung in einem gemischtdatenformatsystem.
US4845663A (en) * 1987-09-03 1989-07-04 Minnesota Mining And Manufacturing Company Image processor with free flow pipeline bus
US5254979A (en) * 1988-03-12 1993-10-19 Dupont Pixel Systems Limited Raster operations
US5187795A (en) * 1989-01-27 1993-02-16 Hughes Aircraft Company Pipelined signal processor having a plurality of bidirectional configurable parallel ports that are configurable as individual ports or as coupled pair of ports
US5157388A (en) * 1989-02-14 1992-10-20 Intel Corporation Method and apparatus for graphics data interpolation
US5081698A (en) * 1989-02-14 1992-01-14 Intel Corporation Method and apparatus for graphics display data manipulation
GB8909498D0 (en) * 1989-04-26 1989-06-14 British Telecomm Motion estimator
US5001662A (en) * 1989-04-28 1991-03-19 Apple Computer, Inc. Method and apparatus for multi-gauge computation
US5241636A (en) * 1990-02-14 1993-08-31 Intel Corporation Method for parallel instruction execution in a computer
US5546551A (en) * 1990-02-14 1996-08-13 Intel Corporation Method and circuitry for saving and restoring status information in a pipelined computer
EP0485776A3 (en) * 1990-11-15 1993-07-07 Motorola Inc. A method for executing graphics pixel packing instructions in a data processor
US5268995A (en) * 1990-11-21 1993-12-07 Motorola, Inc. Method for executing graphics Z-compare and pixel merge instructions in a data processor
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
ATE164463T1 (de) * 1991-07-08 1998-04-15 Seiko Epson Corp Single-chip seitendrucker-steuerschaltung
WO1993011500A1 (en) * 1991-11-27 1993-06-10 Seiko Epson Corporation Pixel modification unit
US5574872A (en) * 1991-12-10 1996-11-12 Intel Corporation Method and apparatus for controlling the saving of pipelines in pipelined processors during trap handling
DE69326705T2 (de) * 1992-02-14 2000-04-27 Motorola Inc Verfahren und Anordnung zur Feststellung der Befehlsablauffolge in einem Datenverarbeitungssystem
GB2265065B (en) * 1992-03-02 1995-08-16 Sony Broadcast & Communication Motion compensated image processing
EP0663083B1 (en) * 1992-09-29 2000-12-20 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5604909A (en) * 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing system
US5592679A (en) * 1994-11-14 1997-01-07 Sun Microsystems, Inc. Apparatus and method for distributed control in a processor architecture

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131981B2 (en) 2002-08-09 2012-03-06 Marvell International Ltd. SIMD processor performing fractional multiply operation with saturation history data processing to generate condition code flags

Also Published As

Publication number Publication date
US5933157A (en) 1999-08-03
KR950033886A (ko) 1995-12-26
DE69527674D1 (de) 2002-09-12
EP0680013A2 (en) 1995-11-02
EP0680013B1 (en) 2002-08-07
US5938756A (en) 1999-08-17
US5734874A (en) 1998-03-31
EP0680013A3 (en) 1997-04-02

Similar Documents

Publication Publication Date Title
JPH0844880A (ja) 統合されたグラフィックス機能を含むcpu
US5996066A (en) Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions
EP0803091B1 (en) Computer system
US5001662A (en) Method and apparatus for multi-gauge computation
KR100315407B1 (ko) 제2입력과제3입력의제1부울조합과제2입력과제3입력의제2부울조합의논리곱인제1입력의합을형성하는3입력산술논리유닛
US5390135A (en) Parallel shift and add circuit and method
KR100319353B1 (ko) 다수의독립섹션과모든섹션으로부터의레지스터저장결과표시비트를가지는산술논리유닛
JPH087084A (ja) 第1、第2及び第3の入力の第1のブール組合せプラス第1、第2及び第3の入力の第2のブール組合せの和を形成する3入力算術論理装置
JPH07271969A (ja) レジスタ対から条件付きでメモリへ記憶させる装置
JPH087083A (ja) 算術及び論理混合組合せを形成する3入力算術論理装置
JPH086544A (ja) 直交データ変換用回転レジスタ
EP0264048B1 (en) Thirty-two bit bit-slice
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
US5953240A (en) SIMD TCP/UDP checksumming in a CPU
US5363322A (en) Data processor with an integer multiplication function on a fractional multiplier
US4677582A (en) Operation processing apparatus
US6263424B1 (en) Execution of data dependent arithmetic instructions in multi-pipeline processors
US5748518A (en) Data processing divider
US5787492A (en) Address limit check apparatus with conditional carry logic
US7769989B2 (en) Processor for processing data using access addresses linked to the data type of the processed data
US5754460A (en) Method for performing signed division
US5751999A (en) Processor and data memory for outputting and receiving data on different buses for storage in the same location
US6275925B1 (en) Program execution method and program execution device
US6253312B1 (en) Method and apparatus for double operand load

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051115