JP2000047998A - Simd方式の演算器及び演算処理装置 - Google Patents
Simd方式の演算器及び演算処理装置Info
- Publication number
- JP2000047998A JP2000047998A JP10217027A JP21702798A JP2000047998A JP 2000047998 A JP2000047998 A JP 2000047998A JP 10217027 A JP10217027 A JP 10217027A JP 21702798 A JP21702798 A JP 21702798A JP 2000047998 A JP2000047998 A JP 2000047998A
- Authority
- JP
- Japan
- Prior art keywords
- flag
- data
- unit
- stored
- arithmetic unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 claims description 98
- 238000013500 data storage Methods 0.000 claims description 96
- 238000000034 method Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 4
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000006837 decompression Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Abstract
とに異なる処理を行う。また、回路規模の有効利用を目
指す。 【解決手段】 SIMD型演算器において、各演算単位
の演算結果に対応するフラグを出力する。そのフラグ
を、演算対象データとする、条件分岐処理の判断条
件とする、後続の演算の制御条件とすることにより、
演算単位ごとに異なる処理を行う。また、上記フラグの
論理和フラグ論理積フラグを求め、条件分岐処理等の後
続処理にて利用する。ブロードキャスト方式の導入によ
り、処理命令の簡素化、処理速度の向上を目指す。さら
に、入出力手段を分割して用いて、それぞれにデータを
格納し演算に繋げる、あるいは演算後それぞれにデータ
を格納することにより、回路規模の有効利用が実現でき
る。
Description
gle Instruction Multiple
Data)方式を用いた演算器及びこの演算器を備えた
演算処理装置(以下、CPUという。)に関する。
する方式としてSIMD方式がある。SIMD方式で
は、CPU中の演算器において、1つの演算命令によっ
て複数の演算が並列に制御される。また、命令供給装置
や命令制御装置の共有化や、処理実行時間短縮が図れる
という利点がある。
演算器においては、演算単位により、演算対象データは
異なるが、それら複数の演算の処理機能は同じである。
つまり演算単位ごとに異なる処理をすることができな
い。例えば、あるデータ群に対してあるデータと比較演
算した結果から判断して、一致した演算のデータだけ
“0”に置き換えるといったことが、困難である。
1演算単位に1演算器を割り当て全体で演算器を複数用
いることが多いが、このことが、演算データのサイズに
よっては不合理に大きな回路規模を必要とすることがあ
る。例えば、16ビットデータの演算が多く、まれに6
4ビットデータの演算処理が必要になるような場合で
も、CPUにおいては最大データ幅の演算器を最大並列
数まで備えておかねばならず、回路規模、装置規模が有
効に使われないことがある。
条件フラグによって後続の処理を選択的に実行するSI
MD方式の演算器及び演算処理装置を提供することを目
的とする。
理を選択的に実行するSIMD方式の演算器及び演算処
理装置において、ビット長の短いデータを多く並列演算
処理するとしても、最大データ幅を扱える演算器をデー
タの最大並列処理数まで必ずしも設けることなく、有効
に利用できる回路規模を持つことを可能とすることを別
の目的とする。
2つの入力手段と1つの出力手段をもつSIMD型演算
器であって、そこでは第1の入力手段及び第2の入力手
段はいずれも所定のビット長の長さであり、かつ格納す
るデータのビット長に応じて個数及びビット長が変化す
るデータ格納部を有し、出力手段は一方の入力手段にお
ける上記データ格納部の個数以上の個数まで長さ1ビッ
トであるフラグ格納部を有する。このSIMD型演算器
では、第1の入力手段の各データ格納部に格納されるデ
ータとこれに対応する第2の入力手段の各データ格納部
に格納されるデータとを用いて同時に各データの組に共
通の演算を行うのであるが、本発明のSIMD型演算器
では、2つの入力手段間で対応する各データ格納部に格
納される2つのデータを用いてそれぞれ演算しその演算
結果に対応する条件フラグを出力手段の対応するフラグ
格納部に格納する。
入力手段が少なくとも第1の入力手段のデータ格納部の
ビット長以上の長さであり、かつ第1の入力手段のデー
タ格納部と長さが等しい1個のデータ格納部を有し、第
1の入力手段の各データ格納部に格納されるデータと第
2の入力手段の1個のデータ格納部に格納されるデータ
とを用いて同時に各データの組に共通の演算を行うもの
であってもよい。
て、すべての条件フラグの論理和を求めて条件論理和フ
ラグとし、そのフラグを出力手段上の対応するフラグ格
納部に格納することもできる。同様に、すべての条件フ
ラグの論理積を求めて条件論理積フラグとし、そのフラ
グを出力手段上の対応するフラグ格納部に格納すること
もできる。
1つの出力手段をもつSIMD型演算器であって、そこ
では、第1の入力手段は上記第一の形態の演算器の場合
のそれと同じ構成であり、第2の入力手段では上記第一
の形態の演算器での出力手段を用いる。よって、第1の
入力手段の各データ格納部に格納されるデータとこれに
対応する第2の入力手段の各フラグ格納部に格納される
条件フラグとを用いて同時に各データと条件フラグの組
に共通の演算を行い、その演算結果を出力手段に格納す
る。
入力手段と、1つの出力手段をもつSIMD型演算器で
あって、そこでは、入力手段及び出力手段は所定のビッ
ト長の長さであり、かつ格納するデータのビット長に応
じて個数及びビット長が変化するデータ格納部を有す
る。このSIMD型演算器は、入力手段の各データ格納
部に格納されるデータを用いて同時に各データに共通の
演算を行った結果得られたデータを対応する出力手段の
データ格納部に格納するのであるが、本発明のSIMD
型演算器では、上記第一の形態の演算器で出力される条
件フラグ群を格納する出力手段の各フラグ格納部が当該
第三の形態の入力手段上の各データ格納部に対応してお
り、入力手段の各データ格納部に格納されるデータが演
算される際に、当該データ格納部に対応する各フラグ格
納部に格納される条件フラグの内容によりデータ毎に演
算に条件が与えられる。
演算器、第二の形態の演算器、第三の形態の演算器を備
えたCPUである。
演算器にて生成された複数の上記条件フラグを分岐処理
の判断条件とする条件分岐処理機能を備えたCPUであ
る。
演算器の出力手段上で最上位(あるいは最下位)に位置
する“1”(あるいは“0”)を格納したフラグ格納部
の位置を数値化する機能を備えたCPUである。
演算器にて出力手段上に格納される条件論理和フラグを
分岐処理の判断条件とする条件分岐処理機能を備えたC
PUである。同様に、条件論理積フラグを分岐処理の判
断条件とする条件分岐処理機能を備えることもできる。
の実施の形態を説明する。本発明の第1の実施の形態の
SIMD型演算器(以下、演算器という。)を図1に示
す。演算器1は、第1の入力レジスタ2と、第2の入力
レジスタ4と、演算部6と、出力レジスタ8を有する。
2つの入力レジスタ2、4のビット長は64ビットであ
る。
ジスタ2、4はいずれも8ビットのビット長を有する8
個のデータ格納部R10〜R17、R20〜R27で構
成されており、各データ格納部に所定の演算データA0
〜A7、B0〜B7が格納できるようにしてある。出力
レジスタ8は、1ビットのビット長を有する10個のフ
ラグ格納部F0〜F9を有し、各フラグ格納部にそれぞ
れ所定のフラグ(T0〜T7、TP、TA)が格納でき
るようにしてある。
の各データ格納部R10〜R17に格納された入力デー
タA0〜A7と第2の入力レジスタ4の各データ格納部
R20〜R27に格納された入力データB0〜B7とを
それぞれ用いて演算部6において同時に各データの組に
共通の演算が行われ、その演算結果に対応したフラグT
0〜T7(0又は1)が出力レジスタ8のフラグ格納部
F0〜F7に格納される。出力レジスタ8のフラグ格納
部F8には、フラグ格納部F0〜F7に格納されている
出力フラグT0〜T7の論理和演算の結果に対応したフ
ラグTP(0又は1)が格納される。他方、出力レジス
タのデータ格納部F9には、フラグ格納部F0〜F7に
格納されている出力フラグT0〜T7の論理積演算の結
果に対応したフラグTA(0又は1)が格納される。
に格納されるフラグT0〜T7について具体的に説明す
る。例えば、演算部6で2つの入力データA0、B0を
加算する場合、これらのデータを加算して得られた結果
が8ビットを超えると(すなわち、桁上がりを生じる
と)、対応する出力フラグ格納部F0にフラグ1を格納
する。逆に、加算結果が8ビット以下の場合(即ち、桁
上がりを生じない場合)、対応する出力データ格納部F
0にフラグ0を格納する。
第1と第2の入力レジスタ12、14はいずれも16ビ
ットのビット長を有する4個のデータ格納部R10〜R
13、R20〜R23で構成されており、各データ格納
部に所定の演算データA0〜A3、B0〜B3が格納で
きるようにしてある。出力レジスタ18は、1ビットの
ビット長を有する6個のフラグ格納部F0〜F5を有
し、各フラグ格納部にそれぞれ所定のフラグ(T0〜T
3、TP、TA)が格納できるようにしてある。ここ
で、出力レジスタ18のフラグ格納部F0〜F3に格納
されるフラグT0〜T3は、上記図1の実施の形態の演
算器1のフラグT0〜T7と同様に求められ格納され
る。出力レジスタ18のフラグ格納部F4にはフラグT
Pが格納されるが、上記図1の実施の形態と概略同様
で、フラグ格納部F0〜F3に格納されている出力フラ
グT0〜T3の論理和演算の結果に対応したものであ
る。同様に、出力レジスタ18のフラグ格納部F5には
フラグTAが格納され、フラグ格納部F0〜F3に格納
されている出力フラグT0〜T3の論理積演算の結果に
対応する。
第1と第2の入力レジスタ22、24はいずれも32ビ
ットのビット長を有する2個のデータ格納部R10〜R
11、R20〜R21で構成されており、各データ格納
部に所定の演算データA0〜A1、B0〜B1が格納で
きるようにしてある。出力レジスタ28は、1ビットの
ビット長を有する4個のフラグ格納部F0〜F3を有
し、各フラグ格納部にそれぞれ所定のフラグ(T0〜T
1、TP、TA)が格納できるようにしてある。ここ
で、出力レジスタ28のフラグ格納部F0〜F1に格納
されるフラグT0〜T1は、上記図1の実施の形態の演
算器1のフラグT0〜T7と同様に求められ格納され
る。出力レジスタ28のフラグ格納部F2にはフラグT
Pが格納されるが、上記図1の実施の形態と概略同様
で、フラグ格納部F0〜F1に格納されている出力フラ
グT0〜T1の論理和演算の結果に対応したものであ
る。同様に、出力レジスタ28のフラグ格納部F3には
フラグTAが格納され、フラグ格納部F0〜F1に格納
されている出力フラグT0〜T1の論理積演算の結果に
対応する。
示す。第1と第2の入力レジスタ32、34はいずれも
64ビットのビット長を有する1個のデータ格納部R1
0、R20で構成されており、各データ格納部に所定の
演算データA0、B0が格納できるようにしてある。出
力レジスタ38は、1ビットのビット長を有する1個の
フラグ格納部F0を有し、そのフラグ格納部には所定の
フラグT0が格納できるようにしてある。ここで、出力
レジスタ38のフラグ格納部F0に格納されるフラグT
0は、上記図1の実施の形態の演算器1のフラグT0〜
T7と同様に求められ格納される。
出力された演算結果に対応するフラグ(以下、条件フラ
グという。)を用いると、後続処理において演算単位ご
とに異なる処理を行うことができる。また、当該条件フ
ラグによる条件分岐処理が可能になる。
にして出力された条件フラグの論理和演算の結果に対応
したフラグ(以下条件論理和フラグという。)TPを用
いると、当該条件論理和フラグによる条件分岐処理が可
能になる。同様に、条件フラグの論理積演算の結果に対
応したフラグ(以下条件論理積フラグという。)TAを
用いると、当該条件論理積フラグによる条件分岐処理が
可能になる。
有する入力レジスタを備えた演算器を1個だけ用意し、
その1個の演算器の内部で8つの演算を並列的に行うこ
とができるので、同一ビット長の入力レジスタを有する
演算器を8個も用意する必要がない。その結果、小さい
回路規模を実現できる。図1の形態のみならず、図2及
び図3においても同様である。
果に対応するフラグとして、桁上がりを示すキャリーの
場合を示したが、この他に、演算結果があふれた場合に
対応するオーバーフローフラグ、演算結果が‘0’のと
きに対応するゼロフラグ、演算結果が負のときに対応す
るネガティブフラグ等でもよい。
に示す。演算器40は、第1の入力レジスタ42と、第
2の入力レジスタ44と、演算部46と、出力レジスタ
48とを有するが、ここで、第2の入力レジスタ44は
上記第1の実施の形態での演算器1における出力レジス
タ(以下、フラグレジスタという。)8であり、フラグ
レジスタ8に格納される条件フラグT0〜T7を入力デ
ータ、つまり演算対象データとする。第1の入力レジス
タ42、出力レジスタ48のビット長は64ビットであ
る。
タ42は、8ビットのビット長を有する8個のデータ格
納部R10〜R17で構成されており、各データ格納部
に所定の演算データA0〜A7が格納できるようにして
ある。第2の入力レジスタ44、即ちフラグレジスタ8
は、1ビットのビット長を有する少なくとも8個のフラ
グ格納部F0〜F7で構成されており、各フラグ格納部
に上記第1の形態での演算器1における出力データたる
条件フラグT0〜T7を格納している。出力レジスタ4
8は、8ビットのビット長を有する8個のデータ格納部
R30〜R37で構成されており、各データ格納部に所
定の演算結果データZ0〜Z7が格納できるようにして
ある。
42の各データ格納部R10〜R17に格納された入力
データA0〜A7と第2の入力レジスタ44(即ちフラ
グレジスタ8)の各フラグ格納部F0〜F7に格納され
た条件フラグT0〜T7とをそれぞれ用いて演算部46
において同時に各データと条件フラグの組に共通の演算
が行われ、その演算結果Z0〜Z7が出力レジスタ48
のデータ格納部R30〜R37に格納される。例えば、
演算部46で2つの入力データA0、T0を加算する場
合、これらのデータを加算して得られた結果Z0が出力
データ格納部R30に格納される。
第1の入力レジスタ52は、16ビットのビット長を有
する4個のデータ格納部R10〜R13で構成されてお
り、各データ格納部に所定の演算データA0〜A3が格
納できるようにしてある。第2の入力レジスタ54、即
ちフラグレジスタ18は、1ビットのビット長を有する
少なくとも4個のフラグ格納部F0〜F3で構成されて
おり、各フラグ格納部に上記第1の形態での演算器10
における出力データたる条件フラグT0〜T3を格納し
ている。出力レジスタ58は、16ビットのビット長を
有する4個のデータ格納部R30〜R33で構成されて
おり、各データ格納部に所定の演算結果データZ0〜Z
3が格納できるようにしてある。
52の各データ格納部R10〜R13に格納された入力
データA0〜A3と第2の入力レジスタ54(即ちフラ
グレジスタ18)の各フラグ格納部F0〜F3に格納さ
れた条件フラグT0〜T3とをそれぞれ用いて演算部5
6において同時に各データと条件フラグの組に共通の演
算が行われ、その演算結果Z0〜Z3が出力レジスタ5
8のデータ格納部R30〜R33に格納される。例え
ば、演算部56で2つの入力データA0、T0を加算す
る場合、これらのデータを加算して得られた結果Z0が
出力データ格納部R30に格納される。
第1の入力レジスタ62は、32ビットのビット長を有
する2個のデータ格納部R10〜R11で構成されてお
り、各データ格納部に所定の演算データA0〜A1が格
納できるようにしてある。第2の入力レジスタ64、即
ちフラグレジスタ28は、1ビットのビット長を有する
少なくとも2個のフラグ格納部F0〜F1で構成されて
おり、各フラグ格納部に上記第1の形態での演算器20
における出力データたる条件フラグT0〜T1を格納し
ている。出力レジスタ68は、32ビットのビット長を
有する2個のデータ格納部R30〜R31で構成されて
おり、各データ格納部に所定の演算結果データZ0〜Z
1が格納できるようにしてある。
62の各データ格納部R10〜R11に格納された入力
データA0〜A1と第2の入力レジスタ64(即ちフラ
グレジスタ28)の各フラグ格納部F0〜F1に格納さ
れた条件フラグT0〜T1とをそれぞれ用いて演算部6
6において同時に各データと条件フラグの組に共通の演
算が行われ、その演算結果Z0〜Z1が出力レジスタ6
8のデータ格納部R30〜R31に格納される。例え
ば、演算部66で2つの入力データA0、T0を加算す
る場合、これらのデータを加算して得られた結果Z0が
出力データ格納部R30に格納される。
す。第1の入力レジスタ72は、64ビットのビット長
を有する1個のデータ格納部R10で構成されており、
所定の演算データA0が格納できるようにしてある。第
2の入力レジスタ74、即ちフラグレジスタ38は、1
ビットのビット長を有する少なくとも1個のフラグ格納
部F0で構成されており、上記第1の形態での演算器3
0における出力データたる条件フラグT0を格納してい
る。出力レジスタ78は、64ビットのビット長を有す
る1個のデータ格納部R30で構成されており、所定の
演算結果データZ0が格納できるようにしてある。
72のデータ格納部R10に格納された入力データA0
と第2の入力レジスタ74(即ちフラグレジスタ)のフ
ラグ格納部F0に格納された条件フラグT0とを用いて
演算部76において演算が行われ、その演算結果Z0が
出力レジスタ78のデータ格納部R30に格納される。
行して実行したSIMD型演算の結果を後続するSIM
D型演算に演算単位で反映させるのが容易になる。
有する入力レジスタを備えた演算器を1個だけ用意し、
その1個の演算器の内部で8つの演算を並列的に行うこ
とができるので、同一ビット長の入力レジスタを有する
演算器を8個も用意する必要がない。その結果、小さい
回路規模を実現できる。図5の形態のみならず、図6及
び図7においても同様である。
に示す。演算器80は、第1の入力レジスタ82と、第
2の入力レジスタ84と、演算部86と、出力レジスタ
88とを有する。本構成は、本発明の第2の実施の形態
に、第1の実施の形態を組み合わせたものとなってい
る。つまり、第2の入力レジスタ84は、第2の実施の
形態と同一で、上記第1の実施の形態での演算器1にお
けるフラグレジスタ8であるが、出力レジスタ88は、
第1の実施の形態同様、演算結果に対応する条件フラグ
と、条件フラグの内容により決定される条件論理和フラ
グ及び条件論理積フラグとを格納する。
タ82は、8ビットのビット長を有する8個のデータ格
納部R11〜R17で構成されており、各データ格納部
に所定の演算データA0〜A7が格納できるようにして
ある。第2の入力レジスタ84、即ちフラグレジスタ8
は、1ビットのビット長を有する少なくとも8個のフラ
グ格納部F0〜F7で構成されており、各フラグ格納部
に上記第1の形態での演算器1における出力データたる
条件フラグT0〜T7を格納している。出力レジスタ8
8は、1ビットのビット長を有する10個のフラグ格納
部G0〜G9を有し、各フラグ格納部にそれぞれ所定の
フラグ(U0〜U7、UP、UA)が格納できるように
してある。
82の各データ格納部R10〜R17に格納された入力
データA0〜A7と第2の入力レジスタ84(即ちフラ
グレジスタ8)の各フラグ格納部R20〜R27に格納
された条件フラグT0〜T7とをそれぞれ用いて演算部
86において同時に各データと条件フラグの組に共通の
演算が行われ、その演算結果に対応したフラグU0〜U
7(0又は1)が出力レジスタ88のフラグ格納部G0
〜G7に格納される。出力レジスタ88のフラグ格納部
G8には、フラグ格納部G0〜G7に格納されている出
力フラグU0〜U7の論理和演算の結果に対応したフラ
グUP(0又は1)が格納される。他方、出力レジスタ
のデータ格納部G9には、フラグ格納部G0〜G7に格
納されている出力フラグU0〜U7の論理積演算の結果
に対応したフラグUA(0又は1)が格納される。
格納部G0〜G7に格納されるフラグU0〜U7は、上
記第1の実施の形態の演算器1の出力フラグと同様に、
桁上がりを示すキャリーフラグである。
す。第1の入力レジスタ92は、16ビットのビット長
を有する4個のデータ格納部R10〜R13で構成され
ており、各データ格納部に所定の演算データA0〜A3
が格納できるようにしてある。第2の入力レジスタ9
4、即ちフラグレジスタ18は、1ビットのビット長を
有する少なくとも4個のフラグ格納部F0〜F3で構成
されており、各フラグ格納部に上記第1の形態での演算
器10における出力データたる条件フラグT0〜T3を
格納している。出力レジスタ98は1ビットのビット長
を有する6個のフラグ格納部G0〜G5を有し、各フラ
グ格納部にそれぞれ所定のフラグ(U0〜U3、UP、
UA)が格納できるようにしてある。ここで、出力レジ
スタ98のフラグ格納部G0〜G3に格納されるフラグ
U0〜U3は、上記図9の実施の形態の演算器80のフ
ラグU0〜U7と同様に求められ格納される。出力レジ
スタ98のフラグ格納部G4にはフラグUPが格納され
るが、上記図9の実施の形態と概略同様で、フラグ格納
部G0〜G3に格納されている出力フラグU0〜U3の
論理和演算の結果に対応したものである。同様に、出力
レジスタ98のフラグ格納部G5にはフラグUAが格納
され、フラグ格納部G0〜G3に格納されている出力フ
ラグU0〜U3の論理積演算の結果に対応する。
す。第1の入力レジスタ102は、32ビットのビット
長を有する2個のデータ格納部R10〜R11で構成さ
れており、各データ格納部に所定の演算データA0〜A
1が格納できるようにしてある。第2の入力レジスタ1
04、即ちフラグレジスタ28は、1ビットのビット長
を有する少なくとも2個のフラグ格納部F0〜F1で構
成されており、各フラグ格納部に上記第1の形態での演
算器20における出力データたる条件フラグT0〜T1
を格納している。出力レジスタ108は1ビットのビッ
ト長を有する4個のフラグ格納部G0〜G3を有し、各
フラグ格納部にそれぞれ所定のフラグ(U0〜U1、U
P、UA)が格納できるようにしてある。ここで、出力
レジスタ108のフラグ格納部G0〜G1に格納される
フラグU0〜U1は、上記図9の実施の形態の演算器8
0のフラグU0〜U7と同様に求められ格納される。出
力レジスタ108のフラグ格納部G2にはフラグUPが
格納されるが、上記図9の実施の形態と概略同様で、フ
ラグ格納部G0〜G1に格納されている出力フラグU0
〜U1の論理和演算の結果に対応したものである。同様
に、出力レジスタ108のフラグ格納部G3にはフラグ
UAが格納され、フラグ格納部G0〜G1に格納されて
いる出力フラグU0〜U1の論理積演算の結果に対応す
る。
を示す。第1の入力レジスタ112は、64ビットのビ
ット長を有する1個のデータ格納部R10で構成されて
おり、所定の演算データA0が格納できるようにしてあ
る。第2の入力レジスタ114、即ちフラグレジスタ3
8は、1ビットのビット長を有する少なくとも1個のフ
ラグ格納部F0で構成されており、上記第1の形態での
演算器30における出力データたる条件フラグT0を格
納している。出力レジスタ118は、1ビットのビット
長を有する1個のフラグ格納部G0を有し、そのフラグ
格納部には所定のフラグU0が格納できるようにしてあ
る。ここで、出力レジスタ118のフラグ格納部G0に
格納されるフラグU0は、上記図9の実施の形態の演算
器80のフラグU0〜U7と同様に求められ格納され
る。
行して実行したSIMD型演算の結果を後続するSIM
D型演算に演算単位で反映させるのが容易になる。
入力レジスタを備えた演算器を1個だけ用意し、その1
個の演算器の内部で8つの演算を並列的に行うことがで
きるので、同一ビット長の入力レジスタを有する演算器
を8個も用意する必要がない。その結果、小さい回路規
模を実現できる。図9の形態のみならず、図10及び図
11においても同様である。
3に示す。演算器120は、入力レジスタ122と、演
算部126と、出力レジスタ128とを有する。入力レ
ジスタ122と、出力レジスタ128のビット長は64
ビットである。
122は、16ビットのビット長を有する4個のデータ
格納部R10〜R13で構成されており、各データ格納
部に所定の演算データA0〜A3が格納できるようにし
てある。出力レジスタ128は、16ビットのビット長
を有する4個のデータ格納部R30〜R33で構成され
ており、各データ格納部に所定の演算結果データZ0〜
Z3が格納できるようにしてある。
タ122の各データ格納部R10〜R13に格納された
入力データA0〜A3をそれぞれ用いて演算部126の
において同時に各データに共通の演算が行われるが、そ
の際、上記第1の実施の形態での演算器10におけるフ
ラグレジスタ18に格納される条件フラグT0〜T3の
おのおのが、演算部126での各演算に条件を与える。
その演算結果Z0〜Z3が出力レジスタ128のデータ
格納部R30〜R33に格納される。
具体例を図14に示す。図14においては、入力レジス
タ132に格納されているA0〜A3の4つのデータを
条件フラグT0〜T3の値により、符号変換する様子を
示す。A0は‘12’であり、対応する条件フラグT0
が‘1’であるため符号変換を行い、演算結果データZ
0は‘−12’となる。A1は‘−56’であり、対応
する条件フラグT1が‘0’であるため符号変換を行わ
ず、演算結果データZ1はそのまま‘−56’となる。
A2及びA3についても同様の変換を行う。
行して実行したSIMD型演算の結果によって、条件を
満足(あるいは不満足)している演算データに対する処
理を選択的に実行できる。
ビット長を有する入力レジスタを備えた演算器を1個だ
け用意し、その1個の演算器の内部で4つの演算を並列
的に行うことができるので、同一ビット長の入力レジス
タを有する演算器を4個も用意する必要がない。その結
果、小さい回路規模を実現できる。
5に示す。演算器140は、第1の入力レジスタ142
と、第2の入力レジスタ144と、演算部146と、出
力レジスタ148とを有する。本構成は、上記の第1の
実施の形態の演算器10と概略同様の構成である。但
し、第2の入力レジスタ144がただ1個だけのデータ
格納部B0を有することが、異なる点である。
ビット長を有する8個のデータ格納部R10〜R17で
構成されており、各データ格納部に所定の演算データA
0〜A7を格納できるようにしてある。第2の入力レジ
スタ144は、8ビットのビット長を有する1個のデー
タ格納部R20で構成されており、そこに所定の演算デ
ータB0を格納できるようにしてある。出力レジスタ1
48は、1ビットのビット長を有する10個のフラグ格
納部F0〜F9を有し、各フラグ格納部にそれぞれ所定
のフラグ(T0〜T7、TP、TA)が格納できるよう
にしてある。
タ142の各データ格納部R10〜R17に格納された
入力データA0〜A7と第2の入力レジスタ144の1
個のデータ格納部R20に格納された入力データB0と
をそれぞれ用いて演算部146において同時に各データ
の組に共通の演算が行われ、その演算結果に対応したフ
ラグT0〜T7(0又は1)が出力レジスタ148のフ
ラグ格納部F0〜F7に格納される。出力レジスタ14
8のフラグ格納部F8には、フラグ格納部F0〜F7に
格納されている出力フラグT0〜T7の論理和演算の結
果に対応したフラグTP(0又は1)が格納される。他
方、出力レジスタ148のデータ格納部F9には、フラ
グ格納部F0〜F7に格納されている出力フラグT0〜
T7の論理積演算の結果に対応したフラグTA(0又は
1)が格納される。
ラグ格納部F0〜F7に格納されるフラグT0〜T7
は、上記第1の実施の形態の演算器1の出力フラグと同
様に、桁上がりを示すキャリーフラグである。
記第1の実施の形態の演算器10の場合で得られる効果
のみならず、例えば同じデータを複数のデータに対して
加算したい場合、予め同じデータB0をB1〜B7に並
列に並べる手間が省け、高速化に寄与するという、固有
の利点がある。
明においては、第1の実施の形態の演算器により予め出
力されている出力レジスタを、第2の入力レジスタとし
て用いるとしているが、この第2の入力レジスタとして
用いる手段は、第3の実施の形態の演算器により予め出
力されている出力レジスタであってもよい。同様に、第
2の実施の形態の演算器での第2の入力レジスタや、第
4の実施の形態の演算器での演算に条件を与えるレジス
タとして用いる手段も、第3の実施の形態の演算器によ
り予め出力されている出力レジスタであってもよい。
した処理のプログラム例を示す。ここで示す例は、コー
ドのパターンマッチングを行うものである。表1に示す
ようなテーブルに基づいて多量のデータをコード変換に
より圧縮し、この圧縮データを蓄積あるいは通信する場
合に利用される。あるデータを圧縮する場合、そのデー
タよりも符号量の小さいコードへの変換が行われる。逆
に、圧縮されたデータは、圧縮されたコードから復号値
を得て、即ち伸張をして利用することになる。
/伸張の手順を例示する。圧縮したいデータが‘V5’
であれば、これをもとに表1から圧縮された符号C5を
得る。逆に伸張する場合は、圧縮され、かつ復号値が未
知のコードを表1のC0、C1、C2、・・・・と比較
していき、一致したときの復号値をテーブルから得る。
本例の場合、コードが‘C5’に一致したとき、そのと
きの復号値V5を得る。このような圧縮/伸張方法の代
表的なものの一つとして、当業者には周知の手段である
可変長(ハフマン)符号化/復号化があり、これらはM
PEGの画像圧縮/伸張等に広く利用されている。以下
に、表1の符号化/復号化テーブルを用い、圧縮データ
から復号値を得る伸張処理の例を示す。
タ群の構成を示す。レジスタR0に格納されているxが
圧縮コードであり、レジスタR1に格納するyが求める
復号値である。レジスタR2は、符号値テーブルが格納
されているメモリ上の先頭(ベース)アドレスであり、
レジスタR3は復号値テーブルが格納されているメモリ
上の先頭(ベース)アドレスである。レジスタR4とレ
ジスタR5はいずれもワーキングレジスタである。符号
値テーブルと復号値テーブルのメモリ上の格納の様子を
図17に示す。当該伸張処理例では符号値及び復号値共
に16ビット(2バイト)データである。以上のような
条件をもとに、復号値が未知である符号コードxの復号
値を得るためのフローチャートを図18に示す。
得るためにアセンブリ言語で組まれたプログラムの例を
図19に示し、またその詳細な処理内容も図中に示す。
の符号化/復号化テーブル上の最初のコードC0と符号
コードxとの比較を示す。第2行にてレジスタR4にメ
モリ上の符号値テーブルの最初の符号値C0を格納す
る。第3行にてこのコードを格納するレジスタR4と、
復号値が未知である符号コードxを格納するレジスタR
0との、比較演算を行い、その結果、一致すれば一致し
たことを示すフラグT0(条件フラグ)をT0=‘1’
として1ビット出力する。この比較の演算は、加算の例
を示した演算器の第1の実施の形態で、特に図4におい
て、加算演算と比較演算とを置き換えたものである。上
記第3行にて符号が一致し、ビットT0に‘1’が格納
された場合には、第4行にてT0の内容に従い分岐処理
を行う。分岐先は第30行からの復号値ロードシーケン
スである。符合が一致せずT0に‘0’が格納された場
合、第4行で分岐せず、以下第5行へと進む。
ったことをうけて復号値テーブルアドレスR3をインク
リメントする。以後、概略、上記第2行から第5行のよ
うな比較演算のシーケンスを、比較対象コードを順に変
えつつ繰り返すことになる。ここで、復号値が未知であ
る符号コードxがC5である場合、図19の第29行で
符号C5との一致を検出し、第30行の復号値ロードシ
ーケンスに分岐する。以上の実施例では符号がC5のと
き、復号処理を終了するのに24命令を実行する必要が
あることがわかる。
スタR4に1個ずつコードを格納して比較演算処理を行
い、結果に対応するフラグT0を1ビット出力し、その
フラグを判断条件として分岐処理を行うが、2つの入力
レジスタにそれぞれ複数のコードを格納し、SIMD方
式で演算処理を行いフラグを複数(T0、T1、・・・
Tn)ビット出力し、それぞれのフラグを判断条件とし
て分岐処理を行うことも可能である。
した復号処理のプログラム例を示す。第2行から第5行
が4つの符号コード(符号C0、C1、C2、C3)
と、復号値が未知である符号コードxとの、SIMD方
式による比較演算部分である。第2行でこれら4つの符
号コード(計64ビット)をメモリからレジスタR4に
格納し、第3行で復号値が未知である符号コードxとの
比較を行っている。この比較演算処理の演算器の様子を
図21に示す。
格納部A0〜A3に符号コードC0〜C3が格納され、
レジスタRs2のデータ格納部B0に復号値が未知であ
る符号コードxが格納される。ここでは、第5の実施の
形態の演算器140が応用されている。各比較演算の結
果が条件フラグT0〜T3に設定され、T0〜T3を元
に条件論理和フラグTPと条件論理積フラグTAの内容
が設定され、これらフラグはフラグレジスタの対応する
フラグ格納部に格納される。
ちで一致が発生したかどうかを条件論理和フラグTPに
より判断し、一致があった場合は第10行以降の復号値
ロードシーケンスに分岐する。一致がなかった場合は、
次の符号コードC4、C5、C6、C7との比較を行う
ため符号テーブルのベースアドレスR2をコード4つ分
(計8バイト)インクリメントする。図19の例で示し
たように復号値が未知であるコードxがC5である場
合、図20の第9行でC4、C5、C6、C7のいずれ
かと一致したことが条件論理和フラグTPにより検出さ
れ、第10行以降の復号値ロードシーケンスに分岐す
る。
ラグレジスタ上のフラグT3、T2、T1、T0を左
(上位)側から検索し、レジスタ上の最初の‘1’の位
置をR5に格納する。本実施例では復号値は2バイトデ
ータであるため、第11行で得た一致位置の値を第12
行で2倍し、第13行にて直前に求めたアドレス増分R
5と復号テーブルベースアドレスR3との加算値をアド
レスとして、レジスタR1に復号値をロードし、復号処
理は終わりとなる。この例で、未知のコードxがC5の
場合、実行される命令数は10となり、前述の例の図1
9の24命令に比べ、半分以下に実行命令数が減少して
おり、処理が高速化されることがわかる。
な復号化処理が大量に行われるため、本発明による高速
化の効果はかなり大きいものになる。
判断条件として分岐処理を行うが、プログラムのロジッ
ク次第では分岐処理の判断条件として、条件論理積フラ
グを用いて分岐処理を行うこともあり得る。
のSIMD式の演算処理装置によれば、以下のような効
果が存する。
部に格納される2つのデータを用いてそれぞれ同時に共
通の演算をし、それぞれの演算結果に対応する条件フラ
グを出力手段の対応するフラグ格納部に格納する、本発
明のSIMD型演算器では、1ステップの命令実行であ
っても複数かつ共通の演算が同時に行われ、それら結果
から複数の条件を生成できるので、単一の演算を繰り返
して複数の条件を生成するよりも、費やす時間が少なく
て済み処理の高速化につながる。また、条件を満足する
(あるいは不満足な)演算がどれかを検索することが容
易となる。さらに、条件フラグの論理和である条件論理
和フラグを出力すれば、一度に演算した複数の演算デー
タの全てが条件に不満足なのか、それとも少なくともひ
とつ以上は条件に満足なのかが、この条件論理和フラグ
を確認するだけで判明する。同様に条件論理積フラグを
出力すれば、一度に演算した複数の演算データの全てが
条件に満足なのか、それとも少なくともひとつ以上は条
件に不満足なのかが、この条件論理積フラグを確認する
だけで判明する。
力手段が少なくとも第1の入力手段のデータ格納部のビ
ット長以上の長さであり、かつ第1の入力手段のデータ
格納部と長さが等しい1個のデータ格納部を有し、第1
の入力手段の各データ格納部に格納されるデータと第2
の入力手段の1個のデータ格納部に格納されるデータと
を用いて同時に各データの組に共通の演算を行うもので
ある場合、特に複数データに対して一定の数値を加算す
るようなときに、処理速度、命令の指定の容易さ、の点
で有利である。
算器の出力手段、即ちフラグレジスタである、本発明の
SIMD演算器では、先行して実行した演算の結果を後
続する演算に反映することができる。
を、入力手段の各データ格納部に格納されるデータに対
応付けて、条件フラグの内容により演算に条件を与え
る、本発明のSIMD演算器では、先行して実行したS
IMD演算の結果によって、条件を満足(あるいは不満
足)しているデータだけに対する処理を選択的に実行す
ることができる。条件フラグに対応する演算データ単位
の実行内容の変更ができなければ、条件を満足(あるい
は不満足)しているデータだけを抽出して処理するか、
条件を満足(あるいは不満足)しないデータに対し後続
の処理の影響が与えられないような工夫が必要であり、
処理速度、処理の容易さの点で、不利である。
件フラグを分岐処理の判断条件とする条件分岐処理機能
を備えるCPUでは、演算は一度に実行しても結果の条
件フラグによりその後個別の処理を与えることができ
る。さらに、条件論理和フラグまたは条件論理積フラグ
を分岐処理の判断条件とする条件分岐処理機能により、
それぞれのフラグの内容による個別の処理を設定するこ
とが可能となる。
上位(あるいは最下位)に位置する“1”(あるいは
“0”)を格納したフラグ格納部の位置を数値化する機
能を備えるCPUでは、条件を満足(あるいは不満足)
した演算が、どの演算であったのか容易に判明しうる。
この機能がない場合は、条件フラグの個々について
“1”(あるいは“0”)の有無を検査し、初めて見つ
かった“1”(あるいは“0”)の条件フラグが所望の
データの位置であるとするプログラムにより位置の数値
化を行わねばならず、処理速度、容易さの点で不利であ
る。
図(1)。
図(2)。
図(3)。
図(4)。
算の説明図(1)。
算の説明図(2)。
算の説明図(3)。
算の説明図(4)。
算の説明図(5)。
演算の説明図(6)。
演算の説明図(7)。
演算の説明図(8)。
の説明図。
の具体的説明図。
件フラグ生成の説明図。
図。
チャート。
ラム。
の復号値を得るためのプログラム。
方式を用いた比較演算の説明図。
2、22、32・・・第1の入力レジスタ、4、14、
24、34・・・第2の入力レジスタ、6、16、2
6、36・・・演算部、8、18、28、38・・・出
力レジスタ、40、50,60,70・・・SIMD型
演算器、42、52、62、72・・・第1の入力レジ
スタ、44、54、64、74・・・第2の入力レジス
タ、46、56、66、76・・・演算部、48、5
8、68、78・・・出力レジスタ、80、90,10
0,110・・・SIMD型演算器、82、92、10
2、112・・・第1の入力レジスタ、84、94、1
04、114・・・第2の入力レジスタ、86、96、
106、116・・・演算部、88、98、108、1
18・・・出力レジスタ、120、130・・・SIM
D型演算器、122、132・・・入力レジスタ、12
6、136・・・演算部、128、138・・・出力レ
ジスタ、140・・・SIMD型演算器、142・・・
第1の入力レジスタ、144・・・第2の入力レジス
タ、146・・・演算部、148・・・出力レジスタ、
Rs1・・・レジスタ、Rs2・・・レジスタ
Claims (17)
- 【請求項1】 2つの入力手段と1つの出力手段をもつ
演算器であって、 第1の入力手段及び第2の入力手段はいずれも所定のビ
ット長の長さであり、かつ格納するデータのビット長に
応じて個数及びビット長が変化するデータ格納部を有
し、 出力手段は一方の入力手段における上記データ格納部の
個数以上の個数まで長さ1ビットであるフラグ格納部を
有し、 第1の入力手段の各データ格納部に格納されるデータと
これに対応する第2の入力手段の各データ格納部に格納
されるデータとを用いて同時に各データの組に共通の演
算を行う演算器において、 2つの入力手段間で対応する各データ格納部に格納され
る2つのデータを用いてそれぞれ演算した結果に対応す
る条件フラグを出力手段の対応するフラグ格納部に格納
する演算器。 - 【請求項2】 請求項1に記載の演算器において、 第2の入力手段は少なくとも第1の入力手段のデータ格
納部のビット長以上の長さであり、かつ第1の入力手段
のデータ格納部と長さが等しい1個のデータ格納部を有
し、 第1の入力手段の各データ格納部に格納されるデータと
第2の入力手段の1個のデータ格納部に格納されるデー
タとを用いて同時に各データの組に共通の演算を行い、 第1の入力手段の各データと第2の入力手段のデータと
を用いて演算した結果に対応する条件フラグを出力手段
の対応するフラグ格納部に格納する演算器。 - 【請求項3】 2つの入力手段と1つの出力手段をもつ
演算器であって、 第1の入力手段は所定のビット長の長さであり、かつ格
納するデータのビット長に応じて個数及びビット長が変
化するデータ格納部を有し、 第2の入力手段は第1の入力手段における上記データ格
納部の個数以上の個数まで長さ1ビットであるフラグ格
納部を有し、かつそれぞれのフラグ格納部中に先行する
演算における演算結果に対応した条件フラグを格納し、 第1の入力手段の各データ格納部に格納されるデータと
これに対応する第2の入力手段の各フラグ格納部に格納
される条件フラグとを用いて同時に各データと条件フラ
グの組に共通の演算を行い出力手段に格納する演算器。 - 【請求項4】 少なくとも1つの入力手段と、1つの出
力手段をもつ演算器であって、 入力手段及び出力手段は所定のビット長の長さであり、
かつ格納するデータのビット長に応じて個数及びビット
長が変化するデータ格納部を有し、 入力手段の各データ格納部に格納されるデータを用いて
同時に各データに共通の演算を行った結果得られたデー
タを対応する出力手段のデータ格納部に格納する演算器
において、 演算制御手段が入力手段における上記データ格納部の個
数以上の個数まで長さ1ビットであるフラグ格納部を有
し、かつそれぞれのフラグ格納部中に先行する演算にお
ける演算結果に対応した条件フラグを格納し、 各フラグ格納部が入力手段の各データ格納部に対応して
おり、入力手段の各データ格納部に格納されるデータが
演算に用いられる際に、当該データ格納部に対応する各
フラグ格納部に格納される条件フラグの内容によりデー
タ毎に演算に条件が与えられる演算器。 - 【請求項5】 請求項1または請求項2に記載の演算器
において、すべての条件フラグの論理和を求めて条件論
理和フラグとし、それを出力手段の対応するフラグ格納
部に格納する演算器。 - 【請求項6】 請求項1または請求項2に記載の演算器
において、すべての条件フラグの論理積を求めて条件論
理積フラグとし、それを出力手段の対応するフラグ格納
部に格納する演算器。 - 【請求項7】 請求項1に記載の演算器を備えた中央演
算処理装置。 - 【請求項8】 請求項2に記載の演算器を備えた中央演
算処理装置。 - 【請求項9】 請求項1に記載の演算器と請求項3に記
載の演算器とを備えた中央演算処理装置。 - 【請求項10】 請求項1に記載の演算器と請求項4に
記載の演算器とを備えた中央演算処理装置。 - 【請求項11】 請求項1に記載の演算器と請求項5に
記載の演算器と請求項6に記載の演算器とを備えた中央
演算処理装置。 - 【請求項12】 請求項1に記載の演算器と請求項2に
記載の演算器と請求項3に記載の演算器と請求項4に記
載の演算器と請求項5に記載の演算器と請求項6に記載
の演算器とを備えた中央演算処理装置。 - 【請求項13】 生成された複数の上記条件フラグを分
岐処理の判断条件とする条件分岐処理機能を備える、請
求項7、請求項8、請求項9、請求項10、請求項1
1、または請求項12に記載の中央演算処理装置。 - 【請求項14】 請求項1または請求項2に記載の出力
手段上で最上位(あるいは最下位)に位置する“1”を
格納したフラグ格納部の位置を数値化する機能を備え
る、請求項7、請求項8、請求項9、請求項10、請求
項11、請求項12または請求項13に記載の中央演算
処理装置。 - 【請求項15】 請求項1または請求項2に記載の出力
手段上で最上位(あるいは最下位)に位置する“0”を
格納したフラグ格納部の位置を数値化する機能を備え
る、請求項7、請求項8、請求項9、請求項10、請求
項11、請求項12または請求項13に記載の中央演算
処理装置。 - 【請求項16】 請求項5に記載の条件論理和フラグを
分岐処理の判断条件とする条件分岐処理機能を備える、
請求項11または請求項12に記載の中央演算処理装
置。 - 【請求項17】 請求項5に記載の条件論理積フラグを
分岐処理の判断条件とする条件分岐処理機能を備える、
請求項11または請求項12に記載の中央演算処理装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21702798A JP3652518B2 (ja) | 1998-07-31 | 1998-07-31 | Simd方式の演算器及び演算処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21702798A JP3652518B2 (ja) | 1998-07-31 | 1998-07-31 | Simd方式の演算器及び演算処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000047998A true JP2000047998A (ja) | 2000-02-18 |
JP3652518B2 JP3652518B2 (ja) | 2005-05-25 |
Family
ID=16697697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21702798A Expired - Fee Related JP3652518B2 (ja) | 1998-07-31 | 1998-07-31 | Simd方式の演算器及び演算処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3652518B2 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006066262A2 (en) * | 2004-12-17 | 2006-06-22 | Intel Corporation | Evalutation unit for single instruction, multiple data execution engine flag registers |
US7185176B2 (en) | 2002-06-03 | 2007-02-27 | Matsushita Electric Industrial Co., Ltd, | Processor executing SIMD instructions |
US7281117B2 (en) | 2002-09-25 | 2007-10-09 | Matsushita Electric Industrial Co., Ltd. | Processor executing SIMD instructions |
JP2007268156A (ja) * | 2006-03-31 | 2007-10-18 | Aloka Co Ltd | 超音波診断装置用プロセッサ |
JP2008071130A (ja) * | 2006-09-14 | 2008-03-27 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
KR100863515B1 (ko) | 2006-10-13 | 2008-10-15 | 연세대학교 산학협력단 | 비디오 신호의 디코딩 방법 및 장치 |
US8086830B2 (en) | 2005-03-31 | 2011-12-27 | Panasonic Corporation | Arithmetic processing apparatus |
JP2014179076A (ja) * | 2013-03-14 | 2014-09-25 | Intel Corp | 複数データ要素対複数データ要素比較プロセッサ、方法、システム、および命令 |
EP2798458A1 (en) * | 2011-12-29 | 2014-11-05 | Intel Corporation | Packed data operation mask comparison processors, methods, systems, and instructions |
-
1998
- 1998-07-31 JP JP21702798A patent/JP3652518B2/ja not_active Expired - Fee Related
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7185176B2 (en) | 2002-06-03 | 2007-02-27 | Matsushita Electric Industrial Co., Ltd, | Processor executing SIMD instructions |
US7281117B2 (en) | 2002-09-25 | 2007-10-09 | Matsushita Electric Industrial Co., Ltd. | Processor executing SIMD instructions |
US7594099B2 (en) | 2002-09-25 | 2009-09-22 | Panasonic Corporation | Processor executing SIMD instructions |
GB2436499A (en) * | 2004-12-17 | 2007-09-26 | Intel Corp | Evalutation unit for single instruction, multiple data execution engine flag registers |
DE112005003130B4 (de) * | 2004-12-17 | 2009-09-17 | Intel Corporation, Santa Clara | Verfahren und Vorrichtung zum Bewerten von Flag-Registern in einer Einzelbefehl-Mehrdaten-Ausführungsmaschine |
US7219213B2 (en) | 2004-12-17 | 2007-05-15 | Intel Corporation | Flag bits evaluation for multiple vector SIMD channels execution |
JP4901754B2 (ja) * | 2004-12-17 | 2012-03-21 | インテル・コーポレーション | 単一命令複数データ実行エンジンのフラグレジスタのための評価ユニット |
WO2006066262A2 (en) * | 2004-12-17 | 2006-06-22 | Intel Corporation | Evalutation unit for single instruction, multiple data execution engine flag registers |
JP2008524723A (ja) * | 2004-12-17 | 2008-07-10 | インテル・コーポレーション | 単一命令複数データ実行エンジンのフラグレジスタのための評価ユニット |
WO2006066262A3 (en) * | 2004-12-17 | 2006-12-14 | Intel Corp | Evalutation unit for single instruction, multiple data execution engine flag registers |
GB2436499B (en) * | 2004-12-17 | 2009-07-22 | Intel Corp | Evalutation unit for single instruction, multiple data execution engine flag registers |
US8086830B2 (en) | 2005-03-31 | 2011-12-27 | Panasonic Corporation | Arithmetic processing apparatus |
JP2007268156A (ja) * | 2006-03-31 | 2007-10-18 | Aloka Co Ltd | 超音波診断装置用プロセッサ |
JP2008071130A (ja) * | 2006-09-14 | 2008-03-27 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
KR100863515B1 (ko) | 2006-10-13 | 2008-10-15 | 연세대학교 산학협력단 | 비디오 신호의 디코딩 방법 및 장치 |
EP2798458A1 (en) * | 2011-12-29 | 2014-11-05 | Intel Corporation | Packed data operation mask comparison processors, methods, systems, and instructions |
EP2798458A4 (en) * | 2011-12-29 | 2017-05-17 | Intel Corporation | Packed data operation mask comparison processors, methods, systems, and instructions |
JP2014179076A (ja) * | 2013-03-14 | 2014-09-25 | Intel Corp | 複数データ要素対複数データ要素比較プロセッサ、方法、システム、および命令 |
Also Published As
Publication number | Publication date |
---|---|
JP3652518B2 (ja) | 2005-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5991785A (en) | Determining an extremum value and its index in an array using a dual-accumulation processor | |
US9383999B2 (en) | Conditional compare instruction | |
EP1859360B1 (en) | Method and apparatus for producing an index vector for use in performing a vector permute operation | |
TWI517039B (zh) | 用以對緊縮資料執行差異解碼之系統,設備,及方法 | |
JPH10222397A (ja) | シミュレーション装置、シミュレーション方法、及び、シミュレーションプログラムを記録した機械読み取り可能な記録媒体 | |
JPH11154114A (ja) | 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法 | |
JPH04172533A (ja) | 電子計算機 | |
US20120072704A1 (en) | "or" bit matrix multiply vector instruction | |
JPH096609A (ja) | プログラム実行装置およびプログラム変換方法 | |
US20080263332A1 (en) | Data Processing Apparatus and Method for Accelerating Execution Subgraphs | |
JP2000047998A (ja) | Simd方式の演算器及び演算処理装置 | |
CN113853582A (zh) | 向量索引寄存器 | |
CN111124495B (zh) | 一种数据处理方法、解码电路及处理器 | |
JP4755129B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20080288756A1 (en) | "or" bit matrix multiply vector instruction | |
US4384343A (en) | Firmware controlled search and verify apparatus and method for a data processing system | |
US6209012B1 (en) | System and method using mode bits to support multiple coding standards | |
US20100115232A1 (en) | Large integer support in vector operations | |
JPS6314378B2 (ja) | ||
US7647368B2 (en) | Data processing apparatus and method for performing data processing operations on floating point data elements | |
JP2000020486A (ja) | Simd型演算器 | |
US6848043B1 (en) | Optimal redundant arithmetic for microprocessors design | |
US9564187B2 (en) | Predicting saturation in a shift operation | |
CN100498727C (zh) | 矩阵的解压缩方法和设备 | |
KR100315303B1 (ko) | 디지탈 신호 처리기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041124 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050120 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050223 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090304 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100304 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110304 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120304 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130304 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140304 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |