JPH02300983A - 中央処理装置における高速演算処理の方法 - Google Patents

中央処理装置における高速演算処理の方法

Info

Publication number
JPH02300983A
JPH02300983A JP2111875A JP11187590A JPH02300983A JP H02300983 A JPH02300983 A JP H02300983A JP 2111875 A JP2111875 A JP 2111875A JP 11187590 A JP11187590 A JP 11187590A JP H02300983 A JPH02300983 A JP H02300983A
Authority
JP
Japan
Prior art keywords
byte
register
bit
instruction
arithmetic
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
JP2111875A
Other languages
English (en)
Inventor
Allen J Baum
アレン・ジエイ・ボウム
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.)
Apple Inc
Original Assignee
Apple Computer 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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of JPH02300983A publication Critical patent/JPH02300983A/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
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • 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/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30181Instruction operation extension or modification
    • 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 く先行技術〉 マイクロプロセッサの設計の進歩により、ますます向上
する機能を伴った新しい世代のパーソナルコンピュータ
(パソコン)システムが開発すしている。特に、現在の
パソコンは複雑なグラフィラス処理も行なうことができ
る。多くのグラフィックス処理アルゴリズムでは、大量
の画素データに対して繰返し演算を行なう必要がある。
こうしたアルゴリズムは、複数のデータストリームを並
列に実行することによって実現される。たとえば、一般
に画素データは三原色(赤、緑、青)に対応する色強度
データを含んでおり、また1個もしくは複数の属性を含
んでいる。このため、画素演算は各色を並列に処理すれ
ば高速に実行することができる。
コンピュータのデータ経路を複数の独立したデータ経路
に分割し、該独立データ経路で「少量コのデータに対し
て同時に演算を行なうことにより、並列処理が実現され
ることが知られている。こうしたデータ経路の分割は、
多重ゲージングもしくは多重ゲージ処理と呼ばれている
。多重ゲージ処理によってグラフィックスのアルゴリズ
ムを高速化するアプリケーションは、T、D、デローズ
らによって、[多重ゲージ並列コンピュータを使用した
グラフィックスアルゴリズムの近似最適高速イU(19
87年並列処理国際会議の議事録、1987年8月17
−21日、pp、289−294)で説明されている。
このなかで該筆者は、32ビツトのマイクロプロセッサ
をに個の独立した処理単位に分割し、各単位が狭ゲージ
モードでそれぞれ独自のデータストリームに対して演算
を行なう方式を説明している。狭ゲージマシンにそれぞ
れ独自のデータストリームを与えるため、メモリバスも
同様にに個の単位に分割している。プロセッサは全体と
してこのように構成され、広ゲージモードもしくは狭ゲ
ージモードのいずれかで作動する。該筆者は、命令スト
リームを分岐命令および結合命令で増強することによっ
てモードの切換えを行なうことができると述べているが
、こうしたアプローチは処理の負担を増加する。
本発明で実施するアプローチは、従来のアプローチの効
率を高めたもので、狭ゲージ命令を実行する一組の専用
算術命令を提供する。これらの命令は、対応する広ゲー
ジ命令に類似しているが、フルデータワードのサブセッ
トに対して独立して演算を行なう。このアプローチを利
用すれば、広ゲージ算術演算と狭ゲージ算術演算とをプ
ログラム内で自由にインタリーブすることができ、しか
もこの場合にプロセッサの演算モードを切換えるための
負担は増加することがない。
〈発明の要約〉 本発明は、マイクロプロセッサの中央処理装置(cPU
うにおいて多重ゲージ算術演算を実行するための方式と
装置を提供する。データワードの個々のバイトまたはハ
ーフワードの°並列処理を高速化するための専用命令が
提供される。また狭ゲージ演算の1幅」を制御するため
のバイト/ハーフワードフラグが提供される。
「並列加算」、「部分減算」、「部分比較」の各命令は
、2個のオペランドの対応するバイトもしくはハーフワ
ードに対して演算を行ない、バイト単位ま九はハーフワ
ード単位の結果を返す。部分乗算命令は、バイト単位も
しくはハーフワード単位の被乗数をを共通乗数で乗じて
、バイト単位もしくはハーフワード単位の積を返す。桁
上げ条件コードは、各ハーフワードまたは各バイトに対
して個別に維持される。部分桁上げロード命令符号は、
桁上げ条件コードを各々のハーフワードまたはバイトへ
と拡張する。
本発明の多重ゲージ算術演算は、大量の画素データの配
列に対して繰返し演算が行なわれるグラフィックス処理
に特に適している。特に、部分乗算命令は、画素色強度
の直線補間やエイリアス除去に使用して効果的であυ、
個別の原色強度を単一の命令サイクルで並列に処理する
ことができる。
く表記と定義〉 以下の詳細な説明は、主として計算装置内におけるデー
タのビットに対する演算のアルゴリズムと記号表記とに
基づいて行なう。ζうしたアルゴリズムの説明と表記は
、データ処理の分野において有能な技能者が使用するも
のであって、該分野の他の技能者に各々の業務の内容を
伝達するのに最も効果的な手段である。
以下の説明では、慣用に準じて、アルゴリズムを所望の
結果に到達するためのステップの自己−貫した順序と定
義する。これらのステップは、物理的数量の物理的な操
作を必要とするステップである。例外はあるが、通常こ
れらの数量は電気的もしくは磁気的信号の形式をとシ、
格納、転送。
結合、比較その他の操作が可能である。主として慣用と
いう理由から、これらの信号をビット、値。
要素、記号9文字9項、数などと呼ぶのが便利であるこ
とがある。ただし、これらの用語もしくはこれに準する
用語は、適切な物理量に対応していなければならず、か
つ該用語はこれらの数量に付加された便利なラベルに過
ぎないことを承知しておく必要がある。さらに、これら
の物理量に対する操作は、加算や比較といった用語で表
現され、こうした用語は人間が自分自身で行なう演算に
通常関連付けられている。しかしながら、以下で説明す
る本発明の一部をなす演算では、人間のかかる機能はほ
とんどの場合不用であシ、むしろ好ましくない。演算は
マシンが実行するからである。
本発明はマイクロプロセッサに適用して最も効果がある
が、演算を実行する他のマシン、すなわち汎用ディジタ
ルコンピュータもしくは同様の装置に利用してもよい。
いずれの場合でも、演算を実行し、コンピュータを操作
する方式と、計算自体の方式とを明確に区別する必要が
ある。本発明は、プロセッサを操作して電気信号を処理
することにより、他の所望の電気信号を生成するステッ
プの方式に一部関する。
く実施例〉 以下の説明は、もっばら本発明の説明を目的としたもの
であってこれを制限するものではない。
ζこでは具体的なデータ表現、ビット割当て、演算シー
ケンス等を説明して本発明の十分な理解を期している。
しかしながら、本発明がかかる明細を離れて他の態様に
おいても実施できることは本分野の有能な技能者には明
白である。また場合によシ、データ処理に関する周知の
装置、技法、ア ゛ルゴリズム等の詳細な説明は省略す
る。これは、本発明の説明を不用な明細で不明瞭にしな
いためである。
本発明は微粒並列処理を効率よく支援する緊密結合多重
プロセッサCPUに適用して効果がある。
CPUのアーキテクチャは、シングルチップVLS I
構成の相互接続性を活用する設計であることが望ましい
。とのようなCPUは、最小限の構成部品で構成された
高性能のパソコンシステムで作動スる処理要素として使
用される。本発明の十分な理解を助けるため、本発明を
実施したCPUの概要を以下でまず解説する。
CPUの概要 第1図において、CPU10は、命令キャッシュ14へ
のアクセスを共有する4個の独立した処理装置(PU)
12m −12d、データキャッシュ16、メモリ管理
装置(MMU)I Lおよびメモリ/バスインタフェー
ス20とからなる。PU12m−12dは、メモリを介
して通信を行なうほか、回報命令を使用してそれぞれの
アクティビティを伝達、調整することができる。同報命
令を使用すると、1個のPUは、他のPUへとデータや
アドレスを同時に伝送し、他のPUがそれぞれのアクテ
ィビティを完了するまで該PUはその実行を保留するこ
とができる。複数のCPUをプロセッサ間パスを介して
接続すると、多重プロセッサシステムが構成できる。こ
のシステムでは、各CPUは独自のローカルメモリを保
有し、このメモリを他のCPUと共有することができる
CPUl0の4個のPo 12m−124は、構造が同
一であり、かつそれぞれ独立している。このPUは、3
2ビツトのRISO(縮小命令セットコンピュータ)で
ある。4個のPUは、相互接続ネットワーク22および
24を介して命令キャッシュとデータキャッシュとをア
クセスする。これらのネットワークは、PUにキャッシ
ュデータの転送経路を提供するほか、同報命令用の直接
PU間通信経路、大域レジスタアクセス、および割込み
ルーティング用経路を提供する。命令キャッシュとデー
タキャッシュは4個のバンクに分割され、各相互接続ネ
ットワークは5×4クロスバスイツチを含んでいるため
、4個のPUは、命令とデータのアクセスをすべて同時
に行なうことができる。
CPtJlGがメツセージ割込みまたは外部割込み(入
出力割込みなど)を受信すると、CPUは4個のPUの
状態を調べる。PUのうち1個が停止していれば、該割
込みを処理するためにこのPUが割当てられる。実際に
PUの実行を中断する必要があるのは、4個のPUがい
ずれも作動中である場合だけである。したがって、アプ
リケーションの実行と平行して割込みを頻繁に行なうこ
とができる。各PUにはフラグがあシ、このフラグによ
って該PUの状態を割込み時に退避できるか否かを示す
。PUがこのフラグを作動停止前に設定すると、割込み
処理時に状態の退避を行なうための負担を軽減すること
ができる。
これらのPUには、小規模なレジスタ対応命令セットが
ある。この命令セットでは、レジスタロード命令とレジ
スタ格納命令とによって、メモリへのすべてのアクセス
が行なわれる。レジスタサイズとワードサイズはそれぞ
れ32ビツトである。
各PU 12m −12bは、16個の汎用レジスタと
7個のローカルレジスタとをそれぞれ有する。すなわち
CPUl0には合計64個の汎用レジスタがある。ロー
カルレジスタには、積格納レジスタ、余シ格納レジスタ
、プレフィクス格納レジスタおよびその他の状態を格納
するレジスタが含まれる。
さらに、これら4個のPUは8個の大域レジスタを共有
している。これらの大域レジスタには、割込みレジスタ
、イベントカウンタ、および入城状態レジスタが含まれ
る。
命令の長さはすべて16ビツトである。アドレスモード
には、レジスタアドレス指定モードと基底追加変位アド
レス指定モードの2種類がある。
基底追加変位アドレス指定では、ベースレジスタのアド
レスから起算して最大64ワードの変位を行なう。ただ
し、プレフィクス処理を行なえば、変位の範囲を拡大し
、レジスタアドレス指定を基底追加変位アドレス指定(
基底はいずれのレジスタでも可)へと変換し、さらに符
号つきの変位を行なうことができる。
命令の長さは16ビツトであるため、命令内の直接フィ
ールドと変位フィールドとのサイズは限定される。しか
しながら、プログラム内で検出される直接値と変位値の
大部分はそのサイズが小さいため、これらのフィールド
に十分格納できる。
必要に応じて直接フィールド値や変位フィールド値にプ
レフイクス処理を行なえば、大きな値を生成することが
できる。各PUには、プレフイクスレジスタと呼ばれる
ローカルレジスタがある。このレジスタの状態(空きか
使用中かのいずれか)は、プレフイクス有効フラグによ
って示される。
値はプレフィクス命令によってプレフイクスレジスタへ
とロードされる。プレフイクス命令の実行時にプレフイ
クスレジスタが空いていれば、ブレフィクス命令の直接
フィールドがプレフィクスレ  ・ジスタの下位ビット
に格納され、符号で拡張されたのち、グレフィクス有効
フラグが設定されて該レジスタが使用されていることを
示す。次のプレフイクス命令が実行されると、ブレフィ
クスレジスタの内容が左側にシフトされ、該プレフイク
ス命令の直接フィールドは、プレフィクスレジスタの下
位ビットに格納される。グレフィクス処理可能な直接フ
ィールドまたは変位フィールドを有する。命令が実行さ
れると、プレフィクス有効フラグが調べられる。ここで
プレフイクスレジスタが使用中であれば、該レジスタの
内容は該命令の直接フィールドまたは変位フィールドと
連結されて、有効な直接値もしくは変位値を形成する。
プレフィクス処理は、フィールド操作命令用のフィール
ドの定義にも使用される。
CPU10の構成要素と構成は、プログラミングモデル
を使用すればさらによく理解することができる。このプ
ログラミングモデルは、プログラマから見える(すなわ
ち命令によって操作できる)CPUの構成要素からなる
。これらの要素には、汎用レジスタ、状態レジスタ、プ
ログラムカウンタ、特殊レジスタ、命令キャッシュなら
びにデータキャッシュが含まれる。
各種の命令が、32ビツトのフルワード、16ビツトの
ハーフワード、8ビツトのバイト、および各ビットに対
して実行される。命令自体の長さは常にハーフワードで
ある。ワードとバイトのみがメモリからレジスタに直接
ロードでき、またレジスタからメモリへと直接格納でき
る。算術演算は、ワード、ハーフワードおよびバイトに
対して実行できる。第2図に示すように、ワード内の3
2ビツトは、右から左に0−31と番号付けされている
。ビット0、すなわち右端のビットが最下位のビットで
ある。高い番号のビットはしばしば上位ビットと呼ばれ
、低い番号のビットは下位ビットと呼ばれる。
ワード内のハーフワードとバイトは、第2図に示すよう
に配置されている。第2図ではまた、ハーフワード内と
バイト内のビットの配列も示している。バイト0が最上
位のバイト(左端のバイト)であシ、バイト3が最下位
のバイト(右端のバイト)である。
一般に、命令とデータは、行と呼ばれる64バイト(1
6ワード)のブロックを単位としてメモリとCPUとの
間で転送される。1行」及び[キャッシュ行」なる用語
は、キャッシュ内の物理位置と、該位置に格納できる1
6個のメモリワードからなるブロックとの双方を示して
いる。命令キャッシュとデータキャッシュとは、アーキ
テクチャ的にはプログラマから見える存在である。命令
は、キャッシュ行に対して演算が行なわれるように提供
される。かかる演算には先取シ、無効化、フラッシュが
含まれる。
命令とデータのアドレスはバイトアドレスであシ、各ア
ドレスの長さは32ビツトであって、4.096メガバ
イトの仮想アドレス空間を占めている。すべてのアドレ
スはバイトアドレスであるが、命令やデータに対するメ
モリへのアクセスは、適切な境界内に限定されている。
ハーフワード境界は、ビットく0〉=10″であるバイ
トアドレスである。ワード境界は、ビット(1:0)=
”oo”であるバイトアドレスである。また行境界は、
ビット<S:O>=″oooooo”であるバイトアド
レスである。命令は常にハーフワードの境界上に整列さ
れなければならない。・この場合、命令アドレスの下位
ビットは無視される。ワードオペランドは常にワード境
界上に整列されなければならない。
この場合、ワードロード命令やワード格納命令における
オペランドアドレスの下位2ビツトは無視される。定義
上、キャッシュ行はキャッシュ行境界上に整列される。
CPUとメモリとの間の行の転送は、常に行境界上で行
なわれる。キャッシュ制御命令におけるオペランドアド
レスの下位6ビツトは無視される。
プログラミングモデルには、汎用レジスタセット、状態
レジスタ、プログラムカウンタ、特殊レジスタセット、
命令キャッシュおよびデータキャッシュが含まれる。各
PUには、それぞれ独自の汎用レジスタセット、状態レ
ジスタおよびプログラムカウンタがある。これらのレジ
スタは、PUに対してローカルであるといわれる。また
各PUは、所定の特殊レジスタの複製をそれぞれ独自に
有している一方、他の特殊レジスタは他のPUと共有し
ている。共有される特殊レジスタを大域レジスタと呼ぶ
PUは、ユーザモードもしくハシステムモードのいずれ
かで作動する。あるPUの任意の時点のモードは、PU
状態/制御レジスタにおけるフラグの設定によって決定
される。一般に、アプリケーションはユーザモードで実
行され、オペレーティングシステムの核その他の構成部
分はシステムモードで実行される。システムモードでの
実行には特権があたえられている。すなわち、特殊レジ
スタのいくつかはシステムモードでのみアクセスでき、
命令のいくつかはシステムモードでのみ実行でき、また
「システム専用」と記されたページはシステムモードで
のみアクセス可能である。
各PUは、0−15と番号付けられた16個の 。
32ビツト汎用レジスタを有する。したがってCPUに
は合計64個の汎用レジスタがある。汎用レジスタは一
般に互換性がある。すなわちいずれの汎用レジスタをい
ずれの目的に使用してもよい。
各汎用レジスタは、その内容をメモリからロードし、ま
たメモリへと格納することができる。1から151で番
号の付けられたレジスタは、その内容を複数ロード/格
納命令をを介してメモリからロードし、またメモリへと
格納することができる。
バイトロード命令は、アドレス指定されたバイトを、右
寄せでゼロを充填して汎用レジスタへとロードする。バ
イト格納命令は、任意の汎用レジスタの右端のバイトを
メモリに格納する。
2種類のプログラムカウンタ(PC)があり、これらを
現PC1次pcと呼ぶ。現PCは、現在実行中の命令の
アドレスを保持している。次PCは、次に実行される命
令のアドレスを保持している。
遅延分岐方式を採用しているため、プログラムカウンタ
は2個必要となる。分岐もしくはジャンプが行なわれる
と、現PCは分岐シャドー命令のアドレスを保持し、分
岐目標アドレスは次pcに格納される。順次コードとし
てみると、次PC内のアドレスは通常、現PC内のアド
レスプラス2に等しい。命令はハーフワード境界上で開
始されなければならないため、プログラムカウンタのビ
ットく0〉は常に0”である。
現PCの内容は、プログラムカウンタロード命令を実行
することによって読取る。この命令は、現PC内のアド
レスに2を加算したものを汎用レジスタにロードする。
プログラムカウンタの内容は、順次コードの実行によシ
通常の増加によるほか、分岐命令やジャンプ命令の実行
や割込みからの復帰によって変更される。割込みやトラ
ップに対してイネーブルされたPUによって割込みやト
ラップが検出されると、現pcと次pcの内容は、PC
退避待ち行列と呼ばれる一対の特殊レジスタのなかに退
避される。割込みからの復帰後、PC退避待ち行列の内
容は現pcと次PCとに転送される。
PU状態/制御レジスタ(PsR)には、PUの実行モ
ードを制御し、特定のトラップの生成ならびに割込みを
許可または禁止し、PUの状態と算術演算の結果につい
ての情報を記録するために使用するフラグがある。PU
状態/制御レジスタ(PIR)の中の1ビツトは、ハー
フワード/バイ)(H/B)モードフラグ用に確保され
ている。このフラグが論理′″1″に設定されると、多
重ゲージ算術命令がハーフワード(16ビツト)に対シ
て実行されるととを意味する。このフラグが論理”O″
に設定されると、多重ゲージ算術命令がバイト(8ビツ
ト)に対して実行されることを意味する。本発明の好ま
しい実施例では、H/BモードフラグはPsRのビット
として格納されるが、該フラグは他のレジスタで実施し
てもよく、また命令コード自体のビットとして実施して
もよい。
従来のプロセッサと同様、本発明の処理装置でも従来の
4個の条件コード、すなわち否定(N)コード、ゼロ(
Z)コード、オーバフロー(V)コード、桁上げ(c)
コードを提供する。ただし、本発明のPsRでは、CO
,CI、C2,C3の4個の桁上げ条件コードを提供す
る。これらのコードはさまざまな組合せで設定、クリア
されて、フルワード、ハーフワード、バイトの各演算の
結果を反映する。フルワード演算で桁上げが生じると、
COは1”に設定され、cl、c2.c3は“0”にク
リアされる。ハーフワードモードでは、COとC2は対
応するハーフワードからの桁上げに設定され(桁上げが
あれば”1”、なければ“0”)、C1とC3はO″に
クリアされる。バイトモードでは、CO,CI、C2,
C3は対応するバイトからの桁上げに設定される。
加算の場合、適切な桁上げ条件コードCはつぎの式から
求められる。
C=(A&B ) l ((A I B )&〜R)こ
こで、 A:加数の符号 B:被加数の符号 C:結果の符号 ”&”:論理積演算を示す。
6ビ:論理和演算を示す。
”〜”:否定演算、すなわち1の補数を示す。
このように、加数と被加数とがいずれも負数であるか、
もしくはそのいずれかが負数であって結果が正数であれ
ば、Cが設定される。
減算と比較については、桁上げ条件コードCは次の式か
ら決定される。
C=((〜A)+(((〜A)IB)&R)ここで、 A:被減数の符号 B:減数の符号 R:結果の符号 被減数が正数で減数が負数であれば、Cが設定される。
結果が正数であって、被減数が正数であるか、もしくは
減数が負数であれば、同様にCが設定される。
桁上げ条件コードの検査時には、4個のビットCQ−0
3には常に論理和演算が行なわれて、これらのビットの
うちいずれかが設定されていれば、桁上げ条件が検出さ
れる。桁上げ条件コードをこのように検査することによ
り、該検査は、条件コードのビットが設定/解除された
時点での作動「ゲージ」と無関係に行なわれる。このた
め、条件付き分岐などの検査命令では、該命令に先行す
る命令シーケンスにフルワード、ハーフワード、バイト
のいずれの算術命令が含まれていても、これらとは無関
係に同一のコーディングが行なわれる。
本発明のゼロ条件コードも、従来のプロセッサとは異な
る方法で実施している。フルワード算術演算では、ハー
フワードもしくは4バイトのうちいずれかがゼロである
場合、zFi′″1″に設定される。この丸め、狭ゲー
ジ演算では、結果のワードの32ビツトがすべて″θ″
以外である場合でも、kが設定される。
第3図では、本発明のアーキテクチャの重要な一面を示
している。各PUは32ビツトの乗算器を含んでいる。
この乗算器は、2個の独立した16ビツト(ハーフワー
ド)の乗算器、もしくは4個の独立し7’c8ビツト(
バイト)の乗算器へと分割することができる。第3図で
は、2バイト間の境界に位置する乗算器の一部を示して
いる。さらに詳説すれば、該境界は、ピッ)B、、すな
わちバイト3の最上位ビットと、ビットBa1すなわち
バイト2の最下位ビットとの間に位置している。
この乗算器は、当該分野で周知であるように、加算器2
8の配列を使用して実施している。ただし、各全加算器
の入力には、マルチプレクサ30が付加されている。該
加算器では1.各バイトの最上位ビット(ビット7.1
5,23,31)  を入力として使用している。マル
チプレクサ30に対する選択入力は、部分乗算を実行す
るか否かを示す制御信号”PARTIAL″である。マ
ルチプレクサ30へのデータ入力のうち1個は、先行バ
イトの下位ビットから送られた合計である。このバイト
は、従来、加算器30に直接送られていたバイトである
他の1個のデータ入力は、該バイトの符号拡張論理31
によって提供される。この符号拡張論理は、先行技術分
野で周知である多数の方法のいずれかを使用して実施し
てもよい。ただし、各バイトには、それぞれに対応する
独自の符号拡張論理がおるものとし、該論理はフルワー
ド乗算器の符号拡張論理を複製したものであることが望
ましい。
部分モードが使用可能になると、符号拡張論理31には
、符号なし部分乗算命令(以下で説明)に対しては′0
″が与えられ、また符号付き部分乗算命令(以下で説明
)に対しては、該当する桁上げ条件コードを逆にしたコ
ードが与えられる。
このため、部分モードが使用可能になると、該当する符
号拡張論理がマルチプレクサ30の出力に与えられ、先
行バイトの下位ビットからの合計は抑止される。これに
よシ、部分ワード境界を越えて桁上げが伝播されること
を防いでいる。別個のマルチプレクサ選択信号が3個の
バイト間境界に対して与えられて、バイト演算もしくは
ハーフワード演算がH/Bモードフラグに応じて選択さ
れる。
乗算器は、いずれかの部分ワードモードで作動中である
場合、下位ビットに不正データを返す。
通常は、これらの下位ビットは、積を構成する32個の
最下位ビットを含んでいる。ただし、積レジスタに残さ
れた上位32ビツトは、所望の結果、すなわち2個また
は4個の部分ワード積の最上位部分を含んでいる。
本発明は、レジスタバイトまたはハーフワードに対する
算術演算を実行する専用命令のセットを提供する。レジ
スタバイトとハーフワードとの区分は、状態レジスタP
sRのH/Bモードフラグによって決定される。以下で
は、これらの命令をレジスタ”A″もしくは”B”に対
する演算に関連して説明する。ここでは、A”および′
″B″は、PUの16個の汎用レジスタのうち指定され
たレジスタを指す。ここで説明する算術演算は、指定さ
れたレジスタの内容、すなわちレジスタのビット状態に
よって示される2進数に対して実行される。指定された
レジスタの内容は、命令のオペランドとも呼ばれる。
第4図において、部分乗算命令は、4個のバイトもしく
は2個のハーフワードの各々からの符号付き被乗数を形
成している。ここでは、該バイトもしくはハーフワード
の桁上げ条件コードフラグの補数を、その符号として使
用する。第4図では、バイトモードが選択されている場
合のバイトoの乗算を示している。バー7ワードモード
におけるバイト1−3の乗算、またはハーフワードoお
よ1の乗算も同様に行なわれる。
H/Bモードフラグがクリアされると、レジスタBの各
バイトはレジスタAで乗算される。この場合、バイト間
の桁上げは禁止される。H/Bモードフラグが設定され
ると、レジスタBの各ハーフワードはレジスタBで乗算
される。この場合、ハーフワード間の桁上げは禁止され
る。各バイトやハーフワードは独立して乗算される。こ
の結果は、積レジスタの対応するバイトもしくはハーフ
ワードに格納される。
レジスタA(ビット31−16 )の上位16ビツトの
みが乗数として使用される。レジスタAの下位16ビツ
トは無視される。この乗数は、符号なしの左寄せの少数
値である。
被乗数の各バイトもしくはハーフワードは、符号付きの
2の補数であり、左寄せの少数値である。
各被乗数の符号は、状態レジスタPgR内の対応する桁
上げビットを逆にした状態によって決定される。バイト
モードでは、4個の桁上げピッ)CO−03をすべて使
用する。ハーフワードモードでは、COと02のみを使
用する。対応する桁上げビットにゼロが含まれていれば
、被乗数は負数である。桁上げビットに1が含まれてい
れば、被乗数は正数である。
各結果バイトもしくはハーフワードは、符号なしの小数
値であって、該値は積の符号を取り去ね、核種の最上位
のバイトまたはハーフワードを結果として格納すること
によシ与えられる。これらの結果バイトもしくはハーフ
ワードは連結されて、積レジスタに格納される。各棟の
下位バイトまたはハーフワードは無視される。
本命令は、上記の部分乗算命令と概略同一であるが、被
乗数が符号なしの値である。状態レジスタの桁上げビッ
トは無視される。先に説明したように、各被乗数の符号
ビットはo”であシ、各被乗数バイトまたはハーフワー
ドは符号なしの左寄せ小数値である。符号付き部分乗算
命令の場合と同様、乗数は、符号なしの左寄せ小数値で
ある。
本命令符号は、H/Bモードフラグによって指定された
モードに準じて、状態レジスタの桁上げ条件コードを拡
張し、その結果をレジスタAに格納する。バイトモード
では、各バイトの桁上げコード、すなわちCO,CI、
C2,C3は符号によって8ビツトへと拡張される。ハ
ーフワードモードでは、各ハーフワード桁上げコード、
すなわちC0とC2は符号によって16ビツトへと拡張
される。
この結果形成されたバイトもしくはハーフワードは、連
結されてレジスタA内の対応するバイトやハーフワード
に格納される。
部分桁上げロード命令は、オーバフローで飽和した加算
、またはアンダフローで飽和した減算の実行に適用して
特に効果がある。加算の場合には、部分加算命令、部分
桁上げロード命令、論理和命令をこの順序で含む命令シ
ーケンスを実行すると、オーバフローした合計を有する
各バイトもしくはハーフワードが′″1″′で満たされ
る。逆に、減算の場合には、部分減算命令、部分桁上げ
ロード命令、論理積命令をこの順序で含む命令シーケン
スを実行すると、アンダフローの差を有する各バイトも
しくはハーフワードが”0″で満たされる。
これらの命令は、レジスタA内の4個のバイトもしくは
2個のハーフワード(T(/Bモードフラグにより決定
される)を、レジスタB内の対応するバイトもしくはハ
ーフワードと算術的に組合せる命令である。算術演算の
結果であるB十AまたはA−Bは、レジスタB内の対応
するバイトもしくはハーフワードへと返される。バイト
間またはハーフワード間の桁上げは禁止されるため、各
一対のバイトまたはハーフワードは独立して加算、減算
される。入り桁は、部分加算命令では強制的に”O”に
設定され、部分減算命令では強制的に”1”に設定され
る。ただし、各バイトまたはハーフワードからの出し桁
は状態レジスタ内の対応する桁上げビットによって保持
される。
バイトモードでは、対応するバイトに出し桁があり、か
つ桁上げのない各ビットがクリアされた場合、CQ−0
3は個別に設定される。減算の場合、レジスタB内の対
応する符号なしバイトがレジスタA内の対応するバイト
と等しいか、もしくはそれ以上でおれば、上記の動作に
よって桁上げビットが設定される。ハーフワードモード
では、対応するハーフワードに出し桁があれば、COも
しくはC2は設定され、対応するハーフワードに桁上げ
がなければ、該ビットはクリアされる。ハーフワードモ
ードでは、C1とC3は常にクリアされる。
2条件コードは、バイトやハーフワードの加算もしくは
減算の結果がゼロであれば、′1″に設定される。これ
以外の場合、2は0″にクリアされる。
部分比較 本命令は部分減算と同一であるが、算術演算の結果は格
納されず、条件コードのみが格納される。
部分比較命令は、レジスタB内のバイトもしくはハーフ
ワード(H/Bモードフラグによって決定される)の内
容を、レジスタA内の対応するバイトもしくは°ハーフ
ワードと比較する。各バイトやハーフワードへの入り桁
は、強制的に1″に設定されるため、該バイトやハーフ
ワードは独立したオペランドとして扱われる。対応する
バイトもしくはハーフワードに関してレジスタBからレ
ジスタAを減算した場合の算術演算の真の結果に準じて
、状態レジスタの桁上げコードとゼロ状態コードが設定
される。
部分減算命令と同様、バイトモードでは、レジスタB内
の対応する符号なしバイトがレジスタA内の対応するバ
イトと等しいか、もしくはそれ以上であれば、CO,C
I、C2もしくはC3が設定される。これ以外の場合、
状態コードビットはクリアされる。ハーフワードモード
の場合、レジスタB内の対応するハーフワードがレジス
タA内の対応するハーフワードと等しいか、もしくはそ
れ以上であれば、COもしくはC2が設定される。これ
以外の場合、該ビットはクリアされる。ハーフワードモ
ードでは、C1とC3は常にクリアされる。
バイトもしくはハーフワードの比較の結果がゼロである
場合、す々わち各一対内のバイトやハーフワードが互い
に同一である場合、2状態コードは1″に設定される。
グラフィックスのアプリケーション 本発明の部分乗算命令は、画素色強度値のような複数の
データセットの並列直線補間の実行に適用して特に効果
がある。
開始値Sと終了値Eとの間におけるパラメータtの関数
としての直線補間は、次のような式で表現される。
(Elt)+(S*(1−t)) この関係によってパラメータtが0から1に変化すると
、開始値Sと終了値Eとの間で補間がスムースかつ直線
的に行なわれる。
上記の関数に代わる式としては、パラメータtの値をO
からTの間でとる式がある。この場合、点tにおける補
間値は次の式で与えられる。
(El(t/T))+(s*(x−(t/T)))これ
を書き直すと、 s+(g−s)*(t/T) となる。
制約があるためパラメータtがOとTとの間で整数のみ
をとる場合、連続する補間値は、(E−8)/Tを計算
し、その結果を直前の補間に連続して加算すれば得られ
ることがわかる。これは、先行技術でしばしば使用され
る技法である。ただし、本技法によれば、丸めによるエ
ラーが生ずることがある。理由は、(E−8)/Tなる
値は、値Tが大きい場合、値SもしくはEに比較して(
E−8)、/Tの結果が明らかに小さくなるためである
このように、(E−8)T を計算する際の丸めのエラ
ーは、t=Tであれば大きく拡大されることになシ、こ
の場合、終了値Eに到達しないか、もしくは数値をオー
バシュートする恐れがある。
数量(t/T)を数量(1/T)で連続して増分し、そ
の結果を数量(P!、−8)で乗算すればさらに正確な
値を得ることができる。この技法の欠点は、各補間値を
それぞれ乗算しなければならないことである。グラフィ
ックスのアプリケーションで各画素が3種類の独立した
色強度によって表現されている場合、後者の技法で補間
を行なうには、各画素に対して乗算を3回行なう必要が
ちる。本発明と異なシ多重ゲージ処理を行なわない場合
、かかる演算は処理上の大きな負担となシ、処理が不可
能となることもある。たとえば、画素色強度データを個
別のデータワードにパックするのが有利であるため、先
行技術のプロセッサで各色を個別に乗算すると、データ
のパック、アンパックによる相当程度の負担が生ずる。
このように、本発明は、その−面として、複数の互いに
独立した乗算を平行して行なう手段を提供するため、画
素色強度の正確な直線補間を相当程度高速化することが
できる。
また本発明の部分乗算命令は、描画された表面の端部に
おけるエイリアス除去に使用して特に有効である。この
アプリケーションでは、各画素に2個以上の表面の部分
が含まれているため、かかる画素に関する合成色強度は
、各表面の色強度に、各表面の画素内での相対百分率を
乗じて、出た結果を組合せれば容易に求められる。先行
技術のシステムでは、各画素の3原色強度を計算するの
に最低でも個別の演算を6回行なうか、もしくはそれぞ
れの色強度を繰返し加算して増分する必要があった。
本発明の開示をさらに続ける。以下に、(符号付き)部
分乗算命令(”Mulp”)と符号なし部分乗算命令(
”MulPU”)との機能を実現するC言語のコードを
説明する。下記のコードは、本発明によって実行される
演算のいくつかをシミュレートするものであって、本発
明を定義するものではない。さらに、下記のコードは、
本発明によるプロセッサの電気回路内で実現される論理
関係を定義する。このため該コードは、本分野で周知の
回路開発技法を適用して本発明の物理的な実施例を形成
する場合に使用して有効である。
以下の0M語コードの記述において、BおよびAIは入
力であり  l h blはハーフワード/バイトモー
ドフラグ(バイトモードではhb=0、ハーフワードモ
ードではhb=1)であり、cinO,,3は4個の桁
上げ入力である。
−へ−へ 0ロ ー        A pgm−−+口    ^ 上記の発明は、本開示の精神や基本特性から逸脱するこ
となく上記以外の態様でも実施できることは明白である
。このように、本発明は上記の説明によって限定される
ものではなく、添付された特許請求の範囲によってのみ
定義される。
【図面の簡単な説明】
第1図は本発明を実施するのに好適な中央処理装[(c
PU)の機能ブロック図、第2図は第1図のCPUにお
けるデータワードのビット/バイト構成の図、第3図は
本発明による乗算器の一部を示す論理図、第4図は本発
明による部分積命令を示す演算流れ図である。 10・l111・CPU、  14φφ・Φ命令キャッ
シュ、16・・・・データキャッシュ、18φ・・Φメ
モリ管理装置、20・・―・メモリ/バスインタフェー
ス、22,24・・φ・相互接続ネットワーク。

Claims (1)

  1. 【特許請求の範囲】 1、ディジタルコンピュータにおいて、選択的に複数の
    算術演算を並列に実行する方法であつて、(a)整数値
    を指定するフラグ手段を提供する段階と、 (b)オペランドの独立した集合k個に対して選択され
    た一算術演算を同時に実行する算術手段を提供する段階
    と、 (c)複数の許容値から値kを指定する段階と、(d)
    前記算術手段に対してk個の独立した第一オペランドを
    表明する段階と、 (e)前記算術手段に対して少なくとも1個の第二オペ
    ランドを表明する段階と、 (f)前記第一オペランドの各々に対して前記の選択さ
    れた一算術演算を実行することによつてk個の独立した
    結果を計算する段階とから成り、k個の独立した第一オ
    ペランドに対して、選択的に変動する数量であるk個の
    並列算術演算処理が行なわれることを特徴とする方法。 2、ディジタルコンピュータにおいて、選択的に複数の
    算術演算を並列に実行する方法であつて、(a)Mビッ
    トの一乗算を実行する乗算手段であつて、選択的に複数
    の独立した副乗算手段へと分割可能であり、かつ各副乗
    算手段は各々Nビットの一乗算を実行することを特徴と
    する乗算手段を提供する段階と、 (b)一乗数を格納するための第一レジスタ手段を提供
    する段階と、 (c)複数のNビットの被乗数を示すMビットワードを
    1個格納する第二レジスタ手段を提供する段階と、 (d)前記複数のNビット被乗数を前記乗算手段に対し
    て表明する段階と、 (e)前記乗数を前記乗算手段に対して表明する段階と
    、 (f)前記複数の被乗数に前記乗数を乗じて得られる独
    立した複数の積を計算する段階と、 (g)前記複数の独立した積をNビットの結果に合せて
    切捨てる段階と、 (h)前記複数のNビットの結果をMビットワード1個
    へと連結する段階とからなることを特徴とする方法。 3、データ処理機能をデータワードに対して実行するデ
    ィジタルコンピュータにおいて、前記ディジタルコンピ
    ュータは前記データワードの複数のサブセットに対して
    並列に算術演算を実行するものであるとき、前記算術演
    算の結果を監視する方法であつて、 (a)前記算術演算のいずれかの結果のサブセットにお
    ける桁上げ条件を示す前記データワードのサブセットに
    対応した複数の桁上げ条件コードを提供する段階と、 (b)前記複数の桁上げ条件コードを格納するレジスタ
    手段を提供する段階とからなる方法。
JP2111875A 1989-04-28 1990-05-01 中央処理装置における高速演算処理の方法 Pending JPH02300983A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US345,116 1989-04-28
US07/345,116 US5001662A (en) 1989-04-28 1989-04-28 Method and apparatus for multi-gauge computation

Publications (1)

Publication Number Publication Date
JPH02300983A true JPH02300983A (ja) 1990-12-13

Family

ID=23353601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2111875A Pending JPH02300983A (ja) 1989-04-28 1990-05-01 中央処理装置における高速演算処理の方法

Country Status (3)

Country Link
US (1) US5001662A (ja)
EP (1) EP0395348A3 (ja)
JP (1) JPH02300983A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023506553A (ja) * 2019-12-23 2023-02-16 株式会社アドバンテスト 入力サンプルのセットに基づいて複数の出力サンプルを提供するための信号処理装置、および入力サンプルのセットに基づいて複数の出力サンプルを提供するための方法

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093908A (en) * 1989-04-17 1992-03-03 International Business Machines Corporation Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor
US5386540A (en) * 1991-09-18 1995-01-31 Ncr Corporation Method and apparatus for transferring data within a computer using a burst sequence which includes modified bytes and a minimum number of unmodified bytes
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5574862A (en) * 1993-04-14 1996-11-12 Radius Inc. Multiprocessing system with distributed input/output management
JP2832899B2 (ja) * 1993-05-31 1998-12-09 松下電器産業株式会社 データ処理装置およびデータ処理方法
EP0654733B1 (en) * 1993-11-23 2000-05-24 Hewlett-Packard Company Parallel data processing in a single processor
US5640578A (en) * 1993-11-30 1997-06-17 Texas Instruments Incorporated Arithmetic logic unit having plural independent sections and register storing resultant indicator bit from every section
US5509129A (en) 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
US6279099B1 (en) * 1994-04-29 2001-08-21 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
US5734874A (en) * 1994-04-29 1998-03-31 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
DE69519449T2 (de) * 1994-05-05 2001-06-21 Conexant Systems, Inc. Raumzeigersdatenpfad
AU4738396A (en) * 1994-12-01 1996-06-19 Intel Corporation A microprocessor having a multiply operation
CN101211255B (zh) 1994-12-02 2012-07-04 英特尔公司 对复合操作数进行压缩操作的处理器、设备和计算***
IL116210A0 (en) * 1994-12-02 1996-01-31 Intel Corp Microprocessor having a compare operation and a method of comparing packed data in a processor
US5598362A (en) * 1994-12-22 1997-01-28 Motorola Inc. Apparatus and method for performing both 24 bit and 16 bit arithmetic
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
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
CN103064649B (zh) * 1995-08-31 2016-03-02 英特尔公司 控制移位分组数据的位校正的装置
US5815164A (en) * 1995-11-27 1998-09-29 Sun Microsystems, Inc. Image rescaling in a parallel processor
US5907842A (en) * 1995-12-20 1999-05-25 Intel Corporation Method of sorting numbers to obtain maxima/minima values with ordering
US5761524A (en) * 1996-03-15 1998-06-02 Renditon, Inc. Method and apparatus for performing and operation multiple times in response to a single instruction
KR100267089B1 (ko) * 1996-08-19 2000-11-01 윤종용 스칼라/벡터연산이조합된단일명령복수데이터처리
US6058465A (en) * 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
GB2317467B (en) * 1996-09-23 2000-11-01 Advanced Risc Mach Ltd Input operand control in data processing systems
GB2317469B (en) * 1996-09-23 2001-02-21 Advanced Risc Mach Ltd Data processing system register control
GB2317464A (en) * 1996-09-23 1998-03-25 Advanced Risc Mach Ltd Register addressing in a data processing apparatus
GB2317465B (en) * 1996-09-23 2000-11-15 Advanced Risc Mach Ltd Data processing apparatus registers.
GB2317466B (en) * 1996-09-23 2000-11-08 Advanced Risc Mach Ltd Data processing condition code flags
US5784602A (en) * 1996-10-08 1998-07-21 Advanced Risc Machines Limited Method and apparatus for digital signal processing for integrated circuit architecture
US6219779B1 (en) * 1997-06-16 2001-04-17 Matsushita Electric Industrial Co., Ltd. Constant reconstructing processor which supports reductions in code size
US6088800A (en) 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6230257B1 (en) 1998-03-31 2001-05-08 Intel Corporation Method and apparatus for staggering execution of a single packed data instruction using the same circuit
US6230253B1 (en) * 1998-03-31 2001-05-08 Intel Corporation Executing partial-width packed data instructions
US6243803B1 (en) * 1998-03-31 2001-06-05 Intel Corporation Method and apparatus for computing a packed absolute differences with plurality of sign bits using SIMD add circuitry
US6175915B1 (en) * 1998-08-11 2001-01-16 Cisco Technology, Inc. Data processor with trie traversal instruction set extension
US6338135B1 (en) 1998-11-20 2002-01-08 Arm Limited Data processing system and method for performing an arithmetic operation on a plurality of signed data values
KR100322277B1 (ko) * 1998-11-20 2002-03-08 권 기 홍 확장 명령어를 가진 중앙처리장치
GB2352536A (en) 1999-07-21 2001-01-31 Element 14 Ltd Conditional instruction execution
GB2355084B (en) * 1999-07-21 2004-04-28 Element 14 Ltd Setting condition values in a computer
JP2001142695A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd 記憶場所への定数のロード方法、宛先記憶場所への定数のロード方法、レジスタへの定数のロード方法、符号ビット数の決定方法、2進数の正規化方法、及びコンピュータシステム内の命令
US6625634B1 (en) 1999-10-01 2003-09-23 Sun Microsystems, Inc. Efficient implementation of multiprecision arithmetic
US7861071B2 (en) 2001-06-11 2010-12-28 Broadcom Corporation Conditional branch instruction capable of testing a plurality of indicators in a predicate register
US6986025B2 (en) * 2001-06-11 2006-01-10 Broadcom Corporation Conditional execution per lane
US7127593B2 (en) 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
US7430578B2 (en) * 2001-10-29 2008-09-30 Intel Corporation Method and apparatus for performing multiply-add operations on packed byte data
JP3779602B2 (ja) 2001-11-28 2006-05-31 松下電器産業株式会社 Simd演算方法およびsimd演算装置
GB2389678A (en) * 2002-06-14 2003-12-17 Univ Sheffield Finite field processor reconfigurable for varying sizes of field.
US7139900B2 (en) 2003-06-23 2006-11-21 Intel Corporation Data packet arithmetic logic devices and methods
US7051606B2 (en) * 2004-01-30 2006-05-30 Andrx Labs Llc Dosage form holder device and methods for immersion testing
JP4246672B2 (ja) * 2004-06-03 2009-04-02 株式会社リコー 画像形成装置および画像形成装置制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2095008B (en) * 1981-03-12 1984-08-15 Standard Telephones Cables Ltd Complex digital multiplier
US4491908A (en) * 1981-12-01 1985-01-01 Honeywell Information Systems Inc. Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit
US4507748A (en) * 1982-08-02 1985-03-26 International Telephone And Telegraph Corporation Associative processor with variable length fast multiply capability
GB2141847B (en) * 1983-05-06 1986-10-15 Seiko Instr & Electronics Matrix multiplication apparatus for graphic display
US4589087A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Condition register architecture for a primitive instruction set machine
US4761755A (en) * 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
JPH081592B2 (ja) * 1984-10-05 1996-01-10 株式会社日立製作所 演算処理装置
US4748585A (en) * 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
JPS62229440A (ja) * 1986-03-31 1987-10-08 Toshiba Corp 配列乗算器
US4901268A (en) * 1988-08-19 1990-02-13 General Electric Company Multiple function data processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023506553A (ja) * 2019-12-23 2023-02-16 株式会社アドバンテスト 入力サンプルのセットに基づいて複数の出力サンプルを提供するための信号処理装置、および入力サンプルのセットに基づいて複数の出力サンプルを提供するための方法

Also Published As

Publication number Publication date
EP0395348A3 (en) 1992-04-15
US5001662A (en) 1991-03-19
EP0395348A2 (en) 1990-10-31

Similar Documents

Publication Publication Date Title
US5001662A (en) Method and apparatus for multi-gauge computation
US6922716B2 (en) Method and apparatus for vector processing
US11188330B2 (en) Vector multiply-add instruction
KR101005718B1 (ko) 포화와 함께 또는 포화 없이 다중 오퍼랜드들의 누산을 위한 프로세서 감소 유닛
KR101202445B1 (ko) 프로세서
US4713750A (en) Microprocessor with compact mapped programmable logic array
US4755962A (en) Microprocessor having multiplication circuitry implementing a modified Booth algorithm
WO2005013084A2 (en) Method and system for performing operations on data and transferring data
JP2001516916A (ja) デジタル信号処理能力を有するデータ処理装置
JPS6311697B2 (ja)
US4208722A (en) Floating point data processing system
JP2002149400A (ja) 複数レジスタ指定が可能なsimd演算方式
US20090063606A1 (en) Methods and Apparatus for Single Stage Galois Field Operations
US5958000A (en) Two-bit booth multiplier with reduced data path width
US5386534A (en) Data processing system for generating symmetrical range of addresses of instructing-address-value with the use of inverting sign value
JPH10143494A (ja) スカラ/ベクトル演算の組み合わせられた単一命令複数データ処理
US20020111977A1 (en) Hardware assist for data block diagonal mirror image transformation
US6275925B1 (en) Program execution method and program execution device
US5446909A (en) Binary multiplication implemented by existing hardware with minor modifications to sequentially designate bits of the operand
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
JP2000039995A (ja) 高性能マイクロプロセッサで使用するためのフレキシブル累算レジスタファイル
USRE41012E1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
JP2654451B2 (ja) データ出力方法
JPH03268024A (ja) マイクロプロセッサ、情報処理装置及びそれを用いた図形表示装置
US7580968B2 (en) Processor with scaled sum-of-product instructions