JPH06222918A - 複合オペランド内の多ビット要素を選択するためのマスク - Google Patents
複合オペランド内の多ビット要素を選択するためのマスクInfo
- Publication number
- JPH06222918A JPH06222918A JP5317785A JP31778593A JPH06222918A JP H06222918 A JPH06222918 A JP H06222918A JP 5317785 A JP5317785 A JP 5317785A JP 31778593 A JP31778593 A JP 31778593A JP H06222918 A JPH06222918 A JP H06222918A
- Authority
- JP
- Japan
- Prior art keywords
- operand
- mask
- data item
- bit
- bits
- 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
- 150000001875 compounds Chemical class 0.000 title description 23
- 238000012545 processing Methods 0.000 claims abstract description 83
- 239000002131 composite material Substances 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims description 41
- 230000003213 activating effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 14
- 230000036961 partial effect Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000007480 spreading Effects 0.000 description 3
- 238000003892 spreading Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000010191 image analysis Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003902 lesion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/764—Masking
-
- 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
ペランド内部に存在する要素データ項目の部分集合に対
して並列的に演算を行なう技術を提供する。 【構成】 マスクオペランドは複数の多ビット要素デー
タ項目を有する複合オペランドを用いて得る。マスクオ
ペランドと複合オペランドに対して論理演算を行ない、
要素の部分集合を選択する。ついで選択した要素に対し
てその他の演算を実行する。マスクオペランドとその反
転を用いて、オペランド内の位置の揃っている要素のそ
れぞれの対の極大または極小を選択するなどによって他
の2つのオペランドを併合する。マスクオペランドを用
いて画像を濾過することで、閾値以上の画素、定数に等
しい画素、またはある範囲内の画素を選択し、2つの画
像を比較または統合し、乗算、除算、または閾値旋回を
実行し、またはより一般的にはデータ駆動型分岐の関係
する何らかの画像処理演算を実行することが出来る。
Description
演算を実行する技術に関する。
選択的に演算を実行している。その幾つかの例は、それ
ぞれのデータ項目が画像内の画素に関連し得るような画
像処理の分野にみられる。
許第5,048,109号(ブルームバーグ109号)
では文書の反転表示部分を検出するための技術を開示し
ている。その第4段59行から64行では原本画像内の
注目している領域に対応する実質的にオン画素で詰まっ
た領域を含む画像としてマスクが定義されている。図1
aに関連して説明されているように、グレースケール・
スキャナは画素当たり複数ビットを出力可能で、またグ
レースケールの走査は2進化して反転表示画像(HI)
を生成できる。図1bに関連して説明されているよう
に、反転表示になっていない領域から画素を除去しつつ
反転表示領域はその全体を残すことによって、HIから
反転表示領域(HR)マスクを生成できる。HRマスク
は各種の方法に利用が可能である。
めのその他の技術はブルームバーグの米国特許第5,0
65,437号およびブルームバーグらの米国特許第
5,131,049号に開示されている。
第460,970号では第1に選択演算を実行して類似
した値でラベル付けした一組の画素を選択し、ついで選
択した画素の組に処理を施す選択的処理技術を開示して
いる。
画素値などの多ビットデータ項目を処理する上での問題
を取り扱う。
ことが多い。基準に合致するデータ項目についてだけ演
算を実行するが、その他のデータ項目には波及しない。
つまり選択的にデータ項目に対して演算する必要がある
ことが多い。
うために使用することが出来る。マスクを生成して前出
のブルームバーグ109号に記載されているように使用
することが可能である。選択的処理は前出のマホーニー
が記載したように実行することが可能である。
ssor) は一度に1つの多ビットデータ項目についてのみ
演算を行なえるのが普通である。これは処理装置がそれ
ぞれの多ビットデータ項目の幅より2倍以上大きい場合
には特に非効率的であるといえる。
データ項目を含む複合オペランド内部に存在する要素デ
ータ項目の部分集合に対して並列的に演算を行なうため
の技術の発見に基づくものである。本技術では、本明細
書において「マスク・オペランド」と称する特別なオペ
ランドを使用している。
複合オペランドに対して並列的に論理演算を実行して複
合オペランドから要素の部分集合を含む結果オペランド
を取得する。1つまたはそれ以上の演算を結果オペラン
ドに対して並列的に実行することが出来る。たとえば、
変更した結果データ項目を部分集合内のそれぞれの要素
について取得することができ、また変更していない結果
データ項目をその他の要素について取得することが出来
る。
反転と、2つの複合オペランドに対して並列的に論理演
算を実行して複合オペランドを併合する。この技術は複
合オペランドを上述のようにして得た変更を加えた結果
データ項目と併合するために実施することが出来る。結
果オペランドは複合オペランドと等しいが、選択した要
素に対して演算が実行された点で異なっている。本技術
は位置の揃った要素のそれぞれの対の極大と極小を選択
することによって2つの複合オペランドを併合するため
にも使用することが可能である。
をあらかじめ取得しておき、それ以降での使用のために
保存することが可能である。しかし基準に合致する要素
データ項目を合致しない要素から区別するマスクオペラ
ンドを取得することが必要となる場合が多い。たとえ
ば、少なくとも閾値と同じだけ大きいまたは大きくない
要素だけまたは定数と等しいまたは等しくない要素だ
け、または範囲内に収まるまたは収まらない要素だけを
選択することが望ましいことがある。このような状況で
は、マスクオペランドはこれが選択する要素が利用でき
ない限り取得することが不可能である。
択する要素を含む複合オペランドを用いてマスクオペラ
ンドを取得することが可能な技術の発見に基づくもので
ある。これらの技術はマスクオペランドが区別できる要
素に対して並列的に演算を実行することによりマスクオ
ペランドを準備することを可能にしている。
て効率的な演算を行なうことが出来るので有利である。
幾つかの技術を使用して複数の多ビット要素データ項目
を含む複合オペランドからマスクオペランドを取得し、
分岐やその他の条件式演算を並列的に実行することが可
能になっている。その他の技術はマスクオペランドおよ
び1つまたはそれ以上の複合オペランドを複数の多ビッ
ト要素データ項目とあわせて用い並列的に演算を実行す
る。このような技術を用いれば広範な演算を実施するこ
とが可能になる。
要素データ項目を含む複合オペランドからのマスクオペ
ランドと部分オペランドを取得するためにマスクオペラ
ンドと複合オペランドを用いる演算の積を表わす概略流
れ図である。
装置が実行してマスクオペランドを取得または使用する
ようなシステムの部材を表わす概略ブロック図である。
スクオペランドを使用することの出来る動作を表わす流
れ図である。
マスクオペランドを取得できるような動作を表わす流れ
図である。
際に使用することの出来るKビットのシフト回路を表わ
す概略回路図である。
ンドをどのように取得し得るかを表わす概略流れ図であ
る。
ペランドをどのように取得し得るかを表わす概略流れ図
である。
ために要素を選択するのにマスクオペランドを使用する
動作を表わす流れ図である。
て複合オペランドをどのように併合するかを表わす概略
流れ図で要素の選択のために図8の動作と類似の動作を
用いている。
は極小の対を取得するためにマスクオペランドを使用す
る際の動作を示す流れ図で、それぞれの対の極大または
極小を選択するために図8と類似した動作を用いてい
る。
的に乗算を実行するためにマスクオペランドを使用する
際の動作を示す流れ図である。
的に復元除算を実行するためにマスクオペランドを使用
する際の動作を示す流れ図である。
を実行するためにマスクオペランドを使用する際の動作
を示す別の流れ図である。
旋回を実行するためにマスクオペランドを使用する際の
動作を示す流れ図である。
したものである。図1では複合オペランドから要素デー
タ項目を選択するために使用することの出来るマスクオ
ペランドを取得するために複合オペランドをどのように
使用することが出来るかを模式的に図示している。図2
は図1と同様の技術によって処理装置が実行可能な命令
を表わす命令データを有するソフトウェア製品を表わ
す。図3はマスクオペランドを使用する際の一般的動作
を表わす。図4はマスクオペランドを取得する際の一般
的動作を表わす。図5はマスクオペランドの取得で使用
するためのKビットのシフト回路を含む処理装置の一般
的部材を表わす。
が2ビットを含む要素データ項目12、14、16を含
む。要素12は値「11」、要素14は値「10」、ま
た要素16は値「01」を有する。
0から生成でき、「10」に等しい値を有する複合オペ
ランド10内の要素だけを選択するという意味において
これはフィルタである。つまり、マスクオペランドは要
素12と位置の揃ったビット桁(bit position)22でオ
フとなり、要素14と位置の揃ったビット桁24でオン
となり、要素16と位置の揃ったビット桁26でオフと
なる。
0がAND処理(論理積)されると、結果30は結果デ
ータ項目32、34、36を含むことになる。ビット桁
22と26がオフなのでデータ項目32と36はそれぞ
れ論理積演算の結果として0のみを含むが、一方でデー
タ項目34はビット桁24がオンなので要素14からの
値「10」を有している。
は図2に図示したのと同様な部材を含むシステム内で使
用することが出来る製造物である。ソフトウェア製品6
0は保存媒体アクセス装置64からアクセス可能なデー
タ保存媒体62を含む。データ保存媒体62はたとえば
1つまたはそれ以上のフロッピーディスクの組などの磁
気媒体、1つまたはそれ以上のCD−ROMの組などの
光学媒体、半導体メモリ、またはデータを保存するため
に適切な何らかのほかの媒体であってよい。
置64がたとえばマイクロプロセッサなどで有り得る処
理装置66に提供可能なデータを保存する。処理装置6
6は入力回路70からデータを受信するために接続して
ある。データは何らかの適切な供給源、たとえばファク
シミリ(ファックス)装置や、デジタル複写機のスキャ
ナまたはコンピュータの入出力装置で有り得るようなス
キャナ、キーボードとマウスまたはペン型または鉄筆型
入力装置などのユーザ入力装置で制御するフォームエデ
ィタまたはその他の対話型画像エディタであり得るよう
なエディタ、またはデータ転送能力を有するローカルエ
リアネットワークまたはその他のネットワークであり得
るようなネットワークなどから取得することが出来る。
データは画像に関連したものであり得る。
を提供するためにも接続してある。データはこのあとフ
ァクシミリ装置、印刷装置、表示装置、またはネットワ
ークへ提供可能である。印刷装置はデジタル複写機の印
刷装置またはコンピュータの入出力装置のことがある。
ア製品60は保存媒体62に保存されるデータを含む。
保存されたデータはマスク取得命令80およびマスク使
用命令82を表わす命令データを含んでいる。処理装置
66は命令80を実行して複合オペランド中の複数の要
素データ項目のそれぞれについてマスクデータ項目を取
得することが出来る。マスクデータ項目をあわせてマス
クオペランドが構成される。処理装置66は命令82を
実行して複合オペランドおよびマスクオペランドに対し
て論理演算を行ない、それぞれの要素の結果データ項目
を得ることが出来る。要素のマスクデータ項目が第1の
値を有する場合、結果データ項目は要素と同じ値を有す
ることになる。要素のマスクデータ項目が第2の値を有
する場合、結果データ項目はそのすべてのビットにおい
て第1の値または第2の値のいずれかで均一な値を有す
ることになる。
ことにより演算を実行する要素データ項目を取得するこ
とが出来る。データのそれぞれの項目はたとえば画像の
画素に関連し得るものである。データ項目はそれぞれ1
ビット以上を含むことが出来る。保存媒体62に保存さ
れたデータも、入力回路70から受信したデータ項目を
メモリ84内に保存し、メモリ84から演算のためにデ
ータ項目を取り込み、または出力回路72へ提供し、ま
たは演算により得られたデータ項目をメモリ84内に保
存するため処理装置66が実行しうる命令を表わすデー
タを含むことが可能である。
position) 92を含む処理回路90を含む。処理装置6
6はたとえば従来のマイクロプロセッサであってもよ
い。処理桁92のそれぞれは1ビットについての演算を
実行することが出来る。処理回路90はアレイを構成さ
せるように処理桁92を対にして接続する桁接続回路(p
osition connecting circuitry) 94を含む。対の1つ
の処理桁からの信号は桁接続回路94によって別の処理
ユニットへ転送することが可能である。
れぞれの要素データ項目は処理桁92のそれぞれの部分
行列内に存在することが出来る。処理装置66はマスク
取得命令80を実行してそれぞれの要素の部分行列内に
マスクデータ項目を取得できる。処理装置は命令82を
用いてマスクを実行し部分行列内のそれぞれの要素およ
びマスクデータ項目に対して論理演算を実行できる。
図2の処理回路90などの処理回路を有する処理装置を
作動させる方法における一般的動作を示す。囲み100
の動作は複合オペランドとマスクオペランドを処理回路
90に提供するもので、それぞれの要素データ項目およ
びそれらのそれぞれのマスクデータ項目はそれぞれ処理
桁92の部分行列に提供される。囲み102の動作では
処理回路90を作動させて複合オペランドとマスクオペ
ランドを用いた並列論理演算を実行してそれぞれの部分
行列内に結果データ項目を取得している。
ために図2の処理回路90などの処理回路を有する処理
装置を作動させる方法における一般的動作を示す。囲み
106の動作は処理回路90に複合オペランドを提供す
るもので、それぞれの要素が処理桁92のそれぞれの部
分行列に提供される。囲み108の動作は処理回路90
を作動させて複合オペランドに対して演算を実行し、そ
れぞれの部分行列内にマスクデータ項目を取得する。マ
スクデータ項目をあわせてマスクオペランドが形成され
る。
ータ項目を取得するために使用可能な特別回路を有する
処理装置110を示している。図2の処理装置66は処
理装置110の特徴を用いて実現してもよい。
124を有する処理回路120を含む。処理回路120
はまたビットを単一サイクル中にK桁シフトさせるため
のシフト回路126を含む。ここでM>Kである。制御
回路128は処理回路120へまた特にKビットのシフ
ト回路126に制御信号を供給する。
ドに対する演算を行なわせて、結果データ項目とそれぞ
れの要素についてのフラグビットを取得することが出来
る。それぞれのフラグビットは処理桁122から124
の要素の部分集合の最上位ビットに隣接する処理桁内に
配置される。
シフト回路126に結果データ項目とフラグビットを用
いた演算を実行させ、フラグビットが部分集合の最下位
ビット内に存在し部分集合内のその他のビットすべては
フラグビットと同一の値またはその反転と同一の値のい
ずれかを有するようなフラグビット・オペランドを取得
することが出来る。そのため、Kビットのシフト回路1
26は隣接する最上位ビットから最下位ビットへのフラ
グビットの移動を迅速に行なえるような任意の性能拡張
である。2つの桁の距離がKビットではない場合、追加
の単一シフトをKビット分のシフトの前または後に行な
うことが出来る。
グビット・オペランドを使用する並列算術演算を実行さ
せてマスクオペランドを取得することが出来る。
般的特徴は広範な部材を用いまた各種の演算を用い多様
な方法で実施することが出来る。たとえば、上述の一般
的特徴の幾つかは従来の処理装置を用いて実施可能であ
るが、その他の特徴は特別設計の処理装置を用いて実施
できるものである。
対して並列に演算可能な処理ユニットに応用可能な図4
に図示した一般的段階の実施を図示したものである。図
8から図14も1つ以上のデータ項目に対して並列に演
算可能な処理ユニットに同様に応用可能な図4に図示し
た一般的段階の実施を図示したものである。図示した実
施は並列に演算するこのような多数の処理ユニットを使
用しこれらの間の桁接続回路を設けまたは設けずに実施
することが出来る。
ータ項目からマスクオペランドを取得するような図4に
関連して説明した一般的動作の2種類の実施例を示す。
図6ではフラグビットのオペランドをシフトしまたOR
(論理和)演算することによってどのようにマスクオペ
ランドが得られるかを示す。図7は最下位ビットの桁に
あるフラグビットのオペランドに対して算術演算を行な
うことによりどのようにマスクオペランドが得られるか
を示している。
の最上位ビット桁に隣接するフラグビット132と13
4を生成した演算から得られる。フラグビット132は
部分行列136内の要素が要素の第1の部分集合内にあ
ることを表わしており、フラグビット134は部分病裂
138内の要素が第2の部分集合内にあることを表わし
ている。
140とAND演算(論理積)される。フラグ選択オペ
ランド140はフラグビット桁142および144でオ
ンの値またフラグビットを含まないすべての桁でオフの
値を有する。つまりフラグビット・オペランド150は
フラグビット値152および154とフラグビットを含
まない桁では「0」を有することになる。
0と170はフラグビット・オペランド150の右方向
へのシフトから得られ、フラグビット値162および1
64は右方向に1ビットシフトされておりまたフラグビ
ット値172および174は右向きに2ビットシフトさ
れている。つまりオペランド150、160、170に
対する論理和演算でマスクオペランド180が得られ
る。
32と要素136のビット桁に均一に値「1」を含む。
マスクデータ項目184はフラグビット134と要素1
38のビット桁に均一に値「0」を含む。
それぞれのシフト演算から得られたシフトしたフラグビ
ット・オペランドと論理和演算を行ない次の結果を生成
するように実行することが可能である。
算を用いることが可能である。フラグビット以外のビッ
トはフラグビット・オペランド内で値「1」から開始し
てこれを可能にすることが出来る。
接してのどちらかにフラグビットを有して開始できる。
それぞれの要素が隣接するバッファビットを有する場
合、フラグビットはバッファビット内で始まりこれもバ
ッファビットを含むマスクデータ項目を取得することが
可能である。ただしフラグビットが要素の最下位ビット
にある場合には、図7の技術がより効率的であろう。
ビット202と204を含む。フラグビット202は要
素206の最下位ビットであり、一方フラグビット20
4は要素208の最下位ビットである。
方法で取得できる。要素が奇数と偶数に分割されている
場合、フラグビット・オペランド200は単純に図6の
オペランド140と類似のオペランドと論理和演算を行
ないフラグビットを選択することにより取得することが
可能である。フラグビットが最初にどこかほかに位置し
てる場合、これをどちらの順序でも選択およびシフトし
てフラグビット・オペランド200を得ることが出来
る。フラグビットが要素の最上位ビットでまたはこれに
隣接して始まる場合、図5に図示したようなKビットの
シフト回路を用いてこれを最下位ビットへより迅速に移
動することが出来る。
れのデータ項目が最上位ビットで「0」の値またその他
のすべてのビットで「1」の値を有するような定数オペ
ランド210へ加算する。定数データ項目212をデー
タ項目206へ加算しまた定数データ項目214をデー
タ項目208へ加算する。
のデータ項目が最上位ビットで「1」の値またその他の
すべてのビットで「0」の値を有するような定数オペラ
ンド210から減算してもよい。フラグビット・オペラ
ンド200はそれぞれの部分行列の最上位ビットの桁で
「0」を有しており、部分行列間で借り信号は伝達され
ないことになる。
フラグビット値226および228を有しその他のすべ
てのビットで対向する値を有するマスクデータ項目22
2および224を含む。マスクオペランド220は最上
位ビットが使用中に影響を受けないバッファビットであ
る場合には直接使用することが出来る。または最上位ビ
ットには論理積または論理和演算によってすべて均一な
値を与えておいてもよい。またはXOR(排他的論理
和)演算により最上位ビットを反転させるかまたはその
他のすべてのビットを反転させるかのいずれかを実行す
ることも出来る。
00が効率的に得られる場合は図6の技術よりも効率的
であり得る。マスクオペランド220を得るためにはた
だ1つの算術演算だけしか必要としない。
いて画像処理演算を実行するような図3に関連して説明
した一般的動作の実施を図示している。図8は演算を実
行する要素データ項目を選択するためにどのようにマス
クオペランドを使用できるかを示す。図9はマスクオペ
ランドとその反転を用いて2つの結果がどのように得ら
れるかを示す。図10は極大または極小要素をそれぞれ
の桁で得るためにマスクオペランドをどのように使用で
きるかを示す。図11はマスクオペランドを使用する乗
算を示す。図12および図13はマスクオペランドを用
いる除算を示す。図14はマスクオペランドを用いる閾
値旋回を示す。
れの要素データ項目を処理桁のそれぞれの部分行列に提
供する。たとえば、この動作は要素を直接読み込む入力
演算または入力データを用いて部分行列内の要素を取得
するような一連の画像処理演算で有り得る。
タ項目を用いてマスクデータ項目を得ている。一般にこ
の動作は、要素が第1の部分集合または第2の部分集合
内に存在することを示す1ビットたとえばフラグビット
を取得することによって行なう。たとえば、フラグビッ
トは要素が定数に等しいか、閾値より大きいか、または
値の範囲内にあるかを示すことが出来る。
連して上述したようにマスクデータ項目を取得すること
が出来る。それぞれのマスクデータ項目はこれのすべて
のビットにおいて均一にオフまたはオンである。
で示したように、それぞれの要素をこれのマスクデータ
項目と論理積または論理和演算している。論理積をとる
場合、この動作はマスクデータ項目がオンであれば要素
と同じ値を取得するが、マスクデータ項目がオフであれ
ばすべてのビットで値「0」を生成する。論理和をとる
場合、この動作はマスクデータ項目がオフであれば要素
と同じ値を取得するが、マスクデータ項目がオンであれ
ばすべてのビットで値「0」を生成する。
結果データ項目に演算を行なっている。このような演算
の幾つかの例を以降の図9から図14に図示した。
「10」を図1の複合オペランドのそれぞれの要素に加
算することによって得ている。要素間の桁上げ信号は阻
止されている。要素252は値「01」を有し、要素2
54は値「00」、また要素256は値「11」を有し
ている。
ペランド20の反転で、マスクデータ項目262、26
4、266はそれぞれマスクデータ項目22、24、2
6から反転したものである。その結果、マスクオペラン
ド260および20は補数の関係にある。
ンド260を論理積演算して結果データ項目272、2
74、276を有する結果270が得られる。マスクデ
ータ項目262と266がオンであるため、データ項目
272は値「01」を有しまたデータ項目276は値
「11」を有している。
演算して併合した結果280が得られる。データ項目2
82はデータ項目272の値を、データ項目284は値
を、データ項目286はデータ項目276の値を有して
いる。つまり、併合結果280は複合オペランド10に
おいて値「10」を値「10」と等しくない要素に加算
した版である。
目を選択するためにどのようにマスクオペランドを使用
できるかを示している。図9ではまた併合可能な2つの
結果を得るためにどのようにマスクオペランドとその反
転を使用できるかを示している。図10ではこの使用法
の別の実施例を示す。
ランドを提供しており、それぞれの部分行列がそれぞれ
の複合オペランドから1つづつ一対の要素を受信する。
それぞれ第2の要素から減算し、要素間の借り信号を阻
止する。
いてマスクオペランドを得ている。マスクオペランドは
第1のオペランドが第2のオペランドより大きい部分行
列ではオンまたそれ以外ではオフになっている。
つの複合オペランドの一方との論理積をとって1つの結
果を生成しまた反転マスクオペランドとその他の複合オ
ペランドの論理積をとって別の結果を得ている。マスク
が第1のオペランドとまた反転マスクが第2のオペラン
ドと論理積演算される場合、それぞれの結果は極大を含
む。マスクが第2のオペランドとまた反転マスクが第1
のオペランドと論理積演算される場合には、それぞれの
結果は極小を含む。
を論理和して併合結果を得ている。併合結果はすべての
部分行列内に最大値またはすべての部分行列内に最小値
を含み、囲み296の動作がどのように実行されたかで
変化する。
み298で論理積をとることにより変更してもよい。こ
れにより複合オペランドが囲み296で切り換えられた
場合にも同じ結果が得られる。
マスクオペランドを使用できるかを示している。囲み3
00の動作はそれぞれが複数の多ビット要素データ項目
を有する乗数と被乗数の2つの複合オペランドを提供す
る。さらに、囲み300の動作ではそれぞれのビット位
置に「0」を有する積ベクトルを得ている。
ビットを取り扱うまで反復するループを開始する。言い
換えれば、すべての乗算要素がKビットを有するなら、
K回反復が行なわれる。
現在のビット桁における値をフラグビットとして用いて
マスクオペランドを得ている。現在のビット桁は最上位
ビットまたは最下位ビットのいずれかであり得る。囲み
312の動作は図6および図7に関連して上述したよう
にマスクを得ることが出来る。
クを被乗数と論理積する。つまり、乗数要素が現在のビ
ット桁に「1」を有する場合、位置揃えした被乗数要素
の値が保存されるが、乗数要素が「0」を有する場合に
は結果データ項目はすべて「0」を有することになる。
データ項目を積ベクトルに加算する。次に、囲み318
の動作は積ベクトルと乗数を1ビットシフトして次の反
復に備える。現在の桁が最上位ビットならシフトは左向
きに行なうことが出来、最下位ビットでは右向きであ
る。
時点で、囲み320の動作は積を提供する。この動作は
積データ項目を適切に位置付けるのに必要なすべてのシ
フト動作、たとえば囲み318のKビットの右向きシフ
トの後でKビットの左へのシフトなどを含むことが出来
る。
Kビットを越えて延在する積を生成することが出来る。
たとえば、乗数要素と位置揃えした被乗数要素両方の値
が(2K −1)に等しい場合、積は(22K−2(K+1) +
1)で、K>2において2Kビットを必要とする。つま
り、図9の動作は要素間信号が無効な結果を導かないよ
うな方法で実行する必要がある。
被乗数要素両方を拡散し、隣接する要素がKビットだけ
離れるようにすることである。囲み300の動作は拡散
演算を実行することが出来る。左向きのシフトが囲み3
18で実行される場合、拡散演算ではそれぞれの要素の
最上位ビットに隣接するK個の「0」ビットを加算で
き、右向きのシフトが実行される場合には、拡散演算は
最下位ビットに隣接するK個の「0」ビットを加算でき
る。
乗数、積のそれぞれの要素データ項目に隣接してバッフ
ァビットを含めることである。この方法では多くの要素
に対して並列演算が可能であるが、単精度の乗算結果が
生成される。これはそれぞれの積データ項目がKビット
しか含んでいないためである。バッファビットは囲み3
00の動作で含めることが出来、乗数および積では囲み
310で始まるループのそれぞれの反復の前または後に
消去することが出来る。
めには、囲み312の動作で最上位ビットからマスクデ
ータ項目を取得し、囲み318の動作では左にシフトし
てよい。マスクの取得でさらに大きい効率のためには、
囲み300の動作は乗数を右向きに(K−1)ビットあ
らかじめシフトしておき、最下位ビットの桁に最上位ビ
ットを配置すれば、前述の図7に図示した技術を用いる
ことが出来る。
めには、囲み312の結果で最下位ビットからマスクデ
ータ項目を取得し、囲み318の動作は右向きにシフト
してよい。
ペランドをどのように使用できるかを示している。囲み
340の動作はそれぞれが複数の多ビット要素データ項
目を含む除数と被除数の2つの複合オペランドを提供す
る。除数と被乗数は両方ともそれぞれのよその最上位ビ
ットに隣接してバッファビットを有し、バッファビット
は値「0」で始まっている。さらに、囲み340の動作
でそれぞれのビット桁が「0」の商ベクトルを得てい
る。
ットを取り扱うまで反復するループを開始する。それぞ
れの反復では現在被除数の最上位ビットとなっているビ
ットを取り扱う。
ァビットを値「1」に設定した後で被除数から除数を減
算することから始まる。除数要素が被除数要素より大き
い場合、減算により差分と、隣接するバッファビットを
値「0」に変更して符号フラグビットを提供する借りビ
ットが生成される。
とバッファビットの各桁がオンでそれ以外はオフのバッ
ファビット選択オペランドと論理積を行ない、フラグビ
ット・オペランドを得ている。囲み354の動作はまた
フラグビット・オペランドと商の論理和によって商を更
新している。
ランドを反転し、図6および図7に関連して上述したよ
うな技術であるがバッファビットの各桁をオフとしてあ
る技術を用い、反転したフラグビット・オペランドを使
ってマスクオペランドを得ている。囲み356の動作で
は次にマスクオペランドと除数を論理積し、負の差分デ
ータ項目を導くようなそれぞれの除数要素を選択する。
選択した除数を囲み352からの差分に加算して次の被
除数を得ている。加算する前に、差分のバッファビット
には論理積演算により値「0」が与えられる。したがっ
て差分が負のところでは除数がまた加算されて正の値が
保持される。
シフトする。囲み360の動作はまた論理積演算を行な
いシフトした次の被除数のすべてのバッファビットに値
「0」を与えている。
点で、囲み370の動作は商を提供する。商はこれが提
供される前に、囲み360で左向きにKシフトした後に
Kだけ右シフトするなど、適切にシフトされる。
とが出来る。たとえば、除数要素が被除数要素より大幅
に小さい値を必ず有している場合、除数を左向きに適切
なビット数だけシフトして開始することによりさらに有
意義な商データ項目を得ることが出来る。一般に、シフ
トした商は少なくとも被除数のそれの半分の値を有す
る。
除算は従来の非復元被除数アルゴリズムを変更すること
で実行させることが出来る。従来のアルゴリズムで極性
にしたがって分岐する場合に、マスクオペランドを生成
できる。マスクとその反転を用いれば正または負のいず
れかの除数要素の版がそれぞれの部分行列内で選択可能
である。商は直前の結果が正の場合にはバッファビット
のベクトルを加算することでまた直前の結果が負の場合
には反転したバッファビットのベクトルを減算すること
で得られ、ここでもマスクとその反転が使用される。
とは異なる長さの結果データ項目を得ることが出来る。
すべての被除数がKビットの要素を有しかつすべての除
数が(K/2)ビットの要素を有する場合、(K/2)
ビットの商が得られる。これによって結果で不要なビッ
ト桁を排除するように部分抽出または減少することが出
来る。
可能な動作を表わしている。囲み400の動作は除数と
被除数を提供し図10の囲み340のように商を初期化
する。囲み400の動作はまた指数iを0に初期化す
る。
開始する。第1のループはiのそれぞれの値について第
1のマスクオペランドが得られるまで反復する。第2の
ループは第1のマスクオペランドを用いてiのそれぞれ
の値について第2のマスクオペランドが得られるまで反
復する。第3のループは第2のマスクオペランドを用い
て商ビットを得るように部分行列を選択する。
れの除数要素の最下位ビットをフラグビットとして用い
てマスクMi を得ている。要素の最下位ビットからマス
クを迅速に取得するための技術については図7に関連し
て前述したとおりである。
トしまたiを1つ増加させて第1のループを終わる。そ
の結果、第1のループではM0 からM(K-1) までのK個
のマスクが生成される。
する。マスクM(K-1) はK個の変更したマスクの1つの
変更マスクMA(K-1) として扱われる。指数iはまた0
から始まる。囲み420の動作は第2のループの(K−
1)回の反復を開始する。
れる。変更マスクMA(K-2-i) がマスクM(K-1-i) とM
(K-2-i) の論理和により得られる。指数iを1つ増加す
る。第2のループではK個のマスクMA0 からMA
(K-1) が生成される。すべての除数要素について最上位
ビットがビットiにある場合、マスクMAi+1 からMA
(K -1) はすべて「0」でマスクMA0 からMAi はすべ
て「1」となる。
i を左向きにiビットだけシフトし、シフトした除数要
素が相互に影響しあわないようにこれを位置合わせして
除算の準備を行なう。囲み424の動作ではまた除数を
これの元の桁まで左向きにKビットだけシフトしiを0
に戻す。
反復を開始する。それぞれの反復で復元または非復元除
算のいずれかにより、それぞれの要素について1つの商
ビットが得られる。
は現在の除数要素とMAi の論理積をとり除数要素を選
択する。囲み434の動作では選択した除数要素と被除
数を用いて次の商ビットを取得し、被除数を更新する。
論理積をとり選択していない部分行列内のすべての商ビ
ットを0にする。この動作により除数要素の最上位の0
ではないビットが被除数の最上位ビットと位置が揃うま
で除数要素に対して演算が実行されないことになる。
トし商を左向きにシフトし、iを1つ増加させて次の反
復の準備を行なう。さらに、囲み438の動作では除数
のバッファビットを消去することが出来る。
0の動作で適宜シフトした商を提供する。
分岐を実行するためにマスクオペランドを用いて実施で
きることを示している。
1ビットのデータ項目を受信して1ビットのデータ項目
を生成するが、中間の演算では多ビットデータ項目を使
用する。閾値旋回において、構成素子は目的の桁に対し
て定義された桁を有する整数重みの行列である。構成素
子は供給源ビットマップ内に配置されており、ビットマ
ップ内の桁と同じ桁にある整数重みを加算して、和を閾
値と比較する。閾値を越えている場合には宛先の桁は1
となり、それ以外では0となる。
目は例として画素値で表わしているが、図示した実施は
その他のデータ項目のアレイに応用できるものである。
囲み460の動作では供給源の画素を拡散してマスクデ
ータ項目を含み構成素子のそれぞれの整数重みと同じビ
ット数を有するマスクを得ている。囲み462における
動作では囲み460からのマスクを用いて値「1」を有
する供給源画素に対する重みを選択する。構成素子のそ
れぞれの桁について和を得るために選択した重みを加算
する。
先画素の値を表わす符号フラグビットを取得する。囲み
466の動作は囲み464からの結果を部分抽出して宛
先画素だけを選択する。
いての和を保持している。本技術はまた重みに対してマ
スクを位置付けるために広範囲のシフトを必要とする。
完了時に和を提供し、和が提供された後に完了した和で
占有されていたメモリを開放し、またより少ないシフト
演算を実行する方法を発見することで、このような非効
率を減少させることが可能となり得る。
ることも出来る。たとえば、一連の供給源ビットを用い
て参照テーブルにアクセスし、幾つかの宛先桁について
の和を取得し、また宛先ビットを生成するために和を取
得して使用することが出来る。
使用方法の幾つかを図示したものである。一般に、多く
の演算は従来においてここのデータ項目について条件分
岐を実施する直列処理装置を用いて実施されているよう
なデータ駆動型分岐を含むものである。
囲な分岐には関係しない場合、充分に効率的な並列演算
に変換することが可能である。並列演算はたとえばSM
ID装置上で実施することが可能である。
つの基準は2進分岐に関係がある。分岐で理想的な処理
装置に部分演算Aまたは部分演算Bのいずれかをデータ
項目の値にしたがって実行させるような場合には部分演
算AまたはBがこれについて実行すべきかを表わすそれ
ぞれの要素データ項目についてのフラグビットを取得
し、このフラグビットを用いてマスクオペランドを取得
し、部分演算AおよびBの両方を並列にすべての要素に
ついて実行し、Aの結果とマスクオペランドとの論理積
を行ない、Bの結果とマスクオペランドの反転との論理
積をとり、また論理積をとった結果の論理和によって併
合結果を得る。
たって反復する演算に関係する。最悪の場合では必要な
回数だけ演算を実行するが、マスクを用いて図13に図
示したようにそれぞれの要素についての計算を制御す
る。たとえば、ある程度の反復回数が残るまで結果が保
存されないようにマスクを用いることが可能である。ま
たはある程度の反復回数の後で結果が更新されないよう
にマスクを用いることが可能である。
理用途に使用可能である。しかしある種の画像処理にお
いてはそれぞれの要素データ項目について順次実行する
よりも迅速に実行しうることで特に有用であると推測さ
れる。特に、上述の特徴をセラ(Serra, J. )の「画像
分析と数学的変換(Image Analysis and Mathematical
Morphology)」、アカデミックプレス刊、1982年、
およびセラ(Serra, J. )の「画像分析と数学的変換第
2巻:理論的な進歩(Image Analysis and Mathematica
l Morphology, Volume 2: Theoretical Advances
)」、アカデミックプレス刊、1988年、に解説さ
れているのと同様の技術を実施するために使用すること
が出来る。このような技術はたとえば雑音の除去または
その他の情報を含まない特徴の除去、歪曲補正、データ
符号化、自動フォーム作成または制御シート作成のため
の部分の抽出、印刷装置特有の補正などの文書サービス
を提供するために使用することが出来る。このような文
書サービスは、ファクシミリ装置および複写装置を含む
デジタル複写装置において、印刷装置またはその他の画
像出力装置用の画像を定義するデータを生成する装置に
おいて、スキャナまたはその他の画像入力装置から受信
した画像を定義するデータについて演算するまた画像処
理を行なうその他の装置において、使用することが出来
る。
の他の用途において、たとえば特定の特徴の組み合わせ
を含む画像について画像データベースの検索や、封筒の
住所の走査、高速スキャナからのフォームの解釈、人工
視覚、および処理に特有の印刷画像の補正および確認な
どにおいても有用であろう。
とえば画素の計数、グレースケールの形態変更、グレー
スケールの回転、エラー分散画像の生成および歪曲検出
などを実行するために応用することも可能である。
ることも可能である。本発明はたとえば有限微分解析ま
たは物理現象のシミュレーションを実行するために使用
することが出来る。
素データ項目とオンビットの位置が揃っておりそれ以外
ではオフビットを有するような、また要素を選択するた
めに論理積演算がマスクオペランドと複合オペランドに
対して実行されるような実施に関連して説明した。本発
明はまた選択すべき要素データ項目とオフビットの位置
が揃っておりそれ以外ではオンビットを有するようなマ
スクオペランドを用いて、要素を選択するためにマスク
オペランドと複合オペランドに対して論理和演算を実行
することにより実施することも可能である。
隣接して得られるような実施に関連して説明した。本発
明はまたフラグビットが何らかのほかの位置で得られこ
れから要素に対して伝播し得るような、たとえば要素内
の桁などで実施することも可能である。
ランドを直接に取得するような実施に関連して説明し
た。本発明はまたフラグビットを反転させるかまたはこ
れを用いてマスクオペランドを取得する前に何らかの変
更を加えるような方法で実施することが出来る。たとえ
ば、他のビットの影響を与えることなくすべてのフラグ
ビットを排他的論理和演算で反転させることが可能であ
る。
トまたは論理和演算することによりまたはフラグビット
・オペランドと定数オペランドに対して並列に算術演算
を実行することにより、フラグビットを用いてマスクオ
ペランドを取得するような実施に関連して説明した。本
発明はまたフラグビットを用いてマスクオペランドを取
得するための他の技術により実施してもよい。
ットを取得する実施に関連して説明した。その他の算術
演算を用いてフラグビットを取得することも可能であ
る。
を行なう実施に関連して説明したが、画像に関連しない
データに対して演算を行なうために実施することも可能
である。
る実施に関連して説明したが、本発明はまた縮小命令セ
ット計算機(RISC)チップまたはメインフレーム・
コンピュータ、ミニコンピュータ、スーパーコンピュー
タ、または何らかのその他の計算装置を含むその他の何
らかの処理装置により実施することが可能である。
において使用するための、メモリからのデータに対して
演算を実行するために処理装置が実行できる命令を表わ
すデータを含むようなソフトウェア製品に関連して説明
した。システムのメモリは当然のことながらシステム内
で使用する際にソフトウェア製品を含み、命令ならびに
データは一般に処理装置からアクセス可能な何らかのメ
モリ装置内に任意に保存することが出来る。たとえば、
本発明はソフトウェア製品内にではなくメモリ内に保存
された命令を表わすデータを用いて容易に実施すること
が可能である。
連して説明した。上述の実施例において、全ての要素デ
ータ項目はおなじ長さであり複合オペランド内部の要素
は相互に関連していなくとも良い。本発明は処理装置の
幅の制約内で、さらなる構造を有する複合オペランドで
実施することも可能である。たとえば、複合オペランド
は、他のオペランドがおなじ位置にある同じ幅の要素と
位置が揃っているならば、異なる幅の要素データ項目を
含んでいてもよい。また、要素データ項目は2つまたは
それ以上のグループに構成され、それぞれのグループの
要素が関連していてもよい。それぞれのグループの要素
が同じ画素に関連している場合、それぞれの要素はそれ
ぞれの閾値減少のための値を保持することが可能であ
る。より一般的には、それぞれのグループ内の要素が物
理的シミュレーション空間内の同じ位置に関連している
場合、1つの要素がその位置での値を保持しまた別の位
置がその位置での導関数を保持することが可能である。
タ項目を含む複合オペランドからのマスクオペランドと
部分オペランドを取得するためにマスクオペランドと複
合オペランドを用いる演算の積を表わす概略流れ図であ
る。
行してマスクオペランドを取得または使用するようなシ
ステムの部材を表わす概略ブロック図である。
ランドを使用することの出来る動作を表わす流れ図であ
る。
ペランドを取得できるような動作を表わす流れ図であ
る。
することの出来るKビットのシフト回路を表わす概略回
路図である。
のように取得し得るかを表わす概略流れ図である。
をどのように取得し得るかを表わす概略流れ図である。
素を選択するのにマスクオペランドを使用する動作を表
わす流れ図である。
ペランドをどのように併合するかを表わす概略流れ図で
要素の選択のために図8の動作と類似の動作を用いてい
る。
対を取得するためにマスクオペランドを使用する際の動
作を示す流れ図で、それぞれの対の極大または極小を選
択するために図8と類似した動作を用いている。
を実行するためにマスクオペランドを使用する際の動作
を示す流れ図である。
除算を実行するためにマスクオペランドを使用する際の
動作を示す流れ図である。
るためにマスクオペランドを使用する際の動作を示す別
の流れ図である。
行するためにマスクオペランドを使用する際の動作を示
す流れ図である。
項目、20 マスクオペランド、22,24,26 ビ
ット桁、30 結果、32,34,36 結果データ項
目、60 ソフトウェア、62 データ保存媒体、64
保存媒体アクセス装置、66 処理装置、70 入力
回路、72 出力装置、80 マスク取得命令、82
命令、84 メモリ、90 処理回路、92 処理桁、
110 処理装置、120 処理回路、126 シフト
回路、128 制御回路、130オペランド、132,
134 フラグビット、136,138 要素、140
フラグ選択オペランド、142,144 フラグビット
桁、150,160 フラグビット・オペランド、16
6 Kビットシフト回路、170 フラグビット・オペ
ランド、180 マスクオペランド、182,184
マスクデータ項目、200 フラグビット・オペラン
ド、202,204 フラグビット、206要素データ
項目、208 要素、210 定数オペランド、21
2,214定数データ項目、220 マスクオペラン
ド、222,224 マスクデータ項目、226,22
8 フラグビット値、250 複合オペランド、252
要素、260 マスクオペランド、262,264,
266 マスクデータ項目、270 結果、272,2
74,276 結果データ項目、280 併合結果
Claims (3)
- 【請求項1】 それぞれが1ビット以上を含む複数の要
素データ項目を含む複合オペランドを用いてマスクに関
連する演算を実行するために処理装置を作動させること
であって、前記マスクに関連する演算が前記複合オペラ
ンドからマスクオペランドを取得する演算またはマスク
オペランドと前記複合オペランドを用い並列的に実行さ
れる論理演算であることと、 前記マスクオペランドが前記複合オペランド内のそれぞ
れのビットについて前記複合オペランド内のビットとそ
れぞれの位置がそろえてあるビットを含み、前記要素デ
ータ項目が第1の部分集合と第2の部分集合を含み、前
記第1の部分集合内のビットと位置が揃っている前記マ
スクオペランド内のそれぞれのビットが第1の値を有
し、前記第2の部分集合内のビットと位置が揃っている
前記マスクオペランド内のそれぞれのビットが第2の値
を有することを含む、処理装置を作動させるための方
法。 - 【請求項2】 1ビットを用いた演算をそれぞれが実行
するための複数の処理桁を有しオペランドを用いて並列
的に演算を実行するための処理回路を含む処理装置を作
動させるための方法であって、 それぞれが1ビット以上を含む複数の第1の要素データ
項目を含み前記処理回路内の処理桁のそれぞれの部分行
列にそれぞれが提供される第1の複合オペランドと、第
1の要素データ項目それぞれについて前記第一の要素デ
ータ項目の処理桁の部分集合にそれぞれが提供されまた
前記第1の要素データ項目それぞれについて前記第1の
要素データ項目と位置の揃ったそれぞれのビットを含み
さらに第1の部分集合と第2の部分集合を含んでおりか
つまた前記第1の部分集合内の第1の要素データ項目内
のビットと位置が揃えてあるそれぞれのビットが第1の
値を有し前記第2の部分集合内の第1の要素データ項目
内のビットと位置が揃えてあるそれぞれのビットが第2
の値を有する第1のマスクデータ項目を含む第1のマス
クオペランドとを前記処理回路へ提供する段階と、 前記第1の複合オペランドと前記第1のマスクオペラン
ドとを用いてそれぞれの第1の要素データ項目の部分集
合においてそれぞれの結果データ項目を取得する第1の
論理演算を並列に実行し、前記第1の部分集合内のそれ
ぞれの第1の要素データ項目の前記結果データ項目が前
記第1の要素データ項目と同じ値を有し、前記第2の部
分集合内のそれぞれの第1の要素データ項目の前記結果
データ項目がすべてのビットで均一な値を有し、前記第
2の部分集合内のそれぞれの第1の要素データ項目の前
記結果データ項目のすべてのビットでの均一な値が前記
第1の値と前記第2の値の一方となるように前記処理回
路を作動させる段階を含む、前記方法。 - 【請求項3】 1ビットを用いた演算をそれぞれが実行
するための複数の処理桁を有しオペランドを用いて並列
的に演算を実行するための処理回路を含む処理装置を作
動させるための方法であって、 それぞれが1ビット以上を含む複数の要素データ項目を
含みそれぞれが前記処理回路内の処理桁のそれぞれの部
分集合に提供される複合オペランドを前記処理回路に提
供する段階と、 前記複合オペランドを用いて前記要素データ項目内のそ
れぞれにビットについて前記要素データ項目内のビット
と位置が揃っているそれぞれのビットを含む要素データ
項目のそれぞれの前記部分集合内にそれぞれのマスクデ
ータ項目を取得するマスク取得演算を並列的に実行し、
前記要素データ項目が第1の部分集合と第2の部分集合
を含み、前記第1の部分集合内の要素データ項目内のビ
ットと位置が揃えてあるマスクデータ項目内のそれぞれ
のビットが第1の値を有し、前記第2の部分集合内の要
素データ項目内のビットと位置が揃えてあるマスクデー
タ項目内のそれぞれのビットが第2の値を有し、前記マ
スクデータ項目をあわせてマスクオペランドを構成する
ように前記処理回路を作動させる段階を含む、前記方
法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US993938 | 1992-12-18 | ||
US07/993,938 US5651121A (en) | 1992-12-18 | 1992-12-18 | Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06222918A true JPH06222918A (ja) | 1994-08-12 |
JP3584053B2 JP3584053B2 (ja) | 2004-11-04 |
Family
ID=25540099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31778593A Expired - Fee Related JP3584053B2 (ja) | 1992-12-18 | 1993-12-17 | 複合オペランド内の多ビット要素を選択するためのマスク |
Country Status (4)
Country | Link |
---|---|
US (1) | US5651121A (ja) |
EP (1) | EP0602886B1 (ja) |
JP (1) | JP3584053B2 (ja) |
DE (1) | DE69328070T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016026365A (ja) * | 2009-12-22 | 2016-02-12 | インテル・コーポレーション | プロセッサ、システムオンチップ(SoC)、ハンドヘルドデバイス、および装置 |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5751614A (en) * | 1994-03-08 | 1998-05-12 | Exponential Technology, Inc. | Sign-extension merge/mask, rotate/shift, and boolean operations executed in a vectored mux on an ALU |
US7395298B2 (en) * | 1995-08-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed data |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
JPH0969047A (ja) * | 1995-09-01 | 1997-03-11 | Sony Corp | Risc型マイクロプロセッサおよび情報処理装置 |
JP3433588B2 (ja) * | 1995-10-19 | 2003-08-04 | 株式会社デンソー | マスクデータ生成回路及びビットフィールド操作回路 |
US6036350A (en) * | 1995-12-20 | 2000-03-14 | Intel Corporation | Method of sorting signed numbers and solving absolute differences using packed instructions |
US5907842A (en) * | 1995-12-20 | 1999-05-25 | Intel Corporation | Method of sorting numbers to obtain maxima/minima values with ordering |
US5983291A (en) * | 1996-09-24 | 1999-11-09 | Cirrus Logic, Inc. | System for storing each of streams of data bits corresponding from a separator thereby allowing an input port accommodating plurality of data frame sub-functions concurrently |
US5832288A (en) * | 1996-10-18 | 1998-11-03 | Samsung Electronics Co., Ltd. | Element-select mechanism for a vector processor |
US5946222A (en) * | 1996-12-20 | 1999-08-31 | Oak Technology, Inc. | Method and apparatus for performing a masked byte addition operation |
US20030054987A1 (en) * | 1997-06-16 | 2003-03-20 | Genentech, Inc. | Secreted and transmembrane polypeptides and nucleic acids encoding the same |
US6117508A (en) | 1997-06-27 | 2000-09-12 | Dyneon Llc | Composite articles including a fluoropolymer blend |
US6081824A (en) * | 1998-03-05 | 2000-06-27 | Intel Corporation | Method and apparatus for fast unsigned integral division |
JP4131349B2 (ja) * | 1998-12-09 | 2008-08-13 | ソニー株式会社 | データ変換装置およびデータ変換方法、記録媒体、並びにデータ変換システム |
US6470440B1 (en) * | 1999-05-20 | 2002-10-22 | International Business Machines Corporation | Vector compare and maximum/minimum generation apparatus and method therefor |
US7120781B1 (en) * | 2000-06-30 | 2006-10-10 | Intel Corporation | General purpose register file architecture for aligned simd |
JPWO2002037260A1 (ja) * | 2000-10-24 | 2004-03-11 | 日新電機株式会社 | 乱数発生装置 |
US6944753B2 (en) * | 2001-04-11 | 2005-09-13 | International Business Machines Corporation | Fixed point unit pipeline allowing partial instruction execution during the instruction dispatch cycle |
US7007172B2 (en) | 2001-06-01 | 2006-02-28 | Microchip Technology Incorporated | Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection |
US20020184566A1 (en) | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
US7003543B2 (en) * | 2001-06-01 | 2006-02-21 | Microchip Technology Incorporated | Sticky z bit |
US6934728B2 (en) | 2001-06-01 | 2005-08-23 | Microchip Technology Incorporated | Euclidean distance instructions |
US7467178B2 (en) | 2001-06-01 | 2008-12-16 | Microchip Technology Incorporated | Dual mode arithmetic saturation processing |
US6976158B2 (en) | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Repeat instruction with interrupt |
US7020788B2 (en) | 2001-06-01 | 2006-03-28 | Microchip Technology Incorporated | Reduced power option |
US6937084B2 (en) | 2001-06-01 | 2005-08-30 | Microchip Technology Incorporated | Processor with dual-deadtime pulse width modulation generator |
US6952711B2 (en) | 2001-06-01 | 2005-10-04 | Microchip Technology Incorporated | Maximally negative signed fractional number multiplication |
US6985986B2 (en) * | 2001-06-01 | 2006-01-10 | Microchip Technology Incorporated | Variable cycle interrupt disabling |
US6975679B2 (en) | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Configuration fuses for setting PWM options |
US7430578B2 (en) * | 2001-10-29 | 2008-09-30 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed byte data |
US7430574B2 (en) * | 2004-06-24 | 2008-09-30 | Intel Corporation | Efficient execution and emulation of bit scan operations |
US7610472B2 (en) * | 2005-06-05 | 2009-10-27 | Apple Inc. | Performing variable and/or bitwise shift operation for a shift instruction that does not provide a variable or bitwise shift option |
US8296548B2 (en) * | 2006-01-18 | 2012-10-23 | Freescale Semiconductor, Inc. | Device and method for finding extreme values in a data block |
US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
US9323531B2 (en) * | 2013-03-15 | 2016-04-26 | Intel Corporation | Systems, apparatuses, and methods for determining a trailing least significant masking bit of a writemask register |
US9880839B2 (en) * | 2014-04-24 | 2018-01-30 | Intel Corporation | Instruction that performs a scatter write |
US9262704B1 (en) * | 2015-03-04 | 2016-02-16 | Xerox Corporation | Rendering images to lower bits per pixel formats using reduced numbers of registers |
US10423411B2 (en) | 2015-09-26 | 2019-09-24 | Intel Corporation | Data element comparison processors, methods, systems, and instructions |
US11500680B2 (en) * | 2020-04-24 | 2022-11-15 | Alibaba Group Holding Limited | Systolic array-friendly data placement and control based on masked write |
CN112799637B (zh) * | 2021-01-22 | 2023-03-14 | 西安电子科技大学 | 一种并行环境下高吞吐量的模逆计算方法及系统 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4139899A (en) * | 1976-10-18 | 1979-02-13 | Burroughs Corporation | Shift network having a mask generator and a rotator |
US4180861A (en) * | 1978-03-31 | 1979-12-25 | Ncr Corporation | Selectively operable mask generator |
DE3040931C1 (de) * | 1980-10-30 | 1982-04-29 | Siemens AG, 1000 Berlin und 8000 München | Verfahren und Anordnung zur Verknuepfung von Operanden variabler Laenge in Datenverarbeitungsanlagen |
US4592005A (en) * | 1982-07-06 | 1986-05-27 | Sperry Corporation | Masked arithmetic logic unit |
US4785393A (en) * | 1984-07-09 | 1988-11-15 | Advanced Micro Devices, Inc. | 32-Bit extended function arithmetic-logic unit on a single chip |
US5034900A (en) * | 1984-10-05 | 1991-07-23 | Hitachi, Ltd. | Method and apparatus for bit operational process |
JPS6266377A (ja) * | 1985-09-19 | 1987-03-25 | Fujitsu Ltd | マスクパタ−ン生成方式 |
US5056041A (en) * | 1986-12-31 | 1991-10-08 | Texas Instruments Incorporated | Data processing apparatus with improved bit masking capability |
US4775952A (en) * | 1986-05-29 | 1988-10-04 | General Electric Company | Parallel processing system apparatus |
US5060280A (en) * | 1986-09-30 | 1991-10-22 | Canon Kabushiki Kaisha | Masking control for image processing systems |
US4864529A (en) * | 1986-10-09 | 1989-09-05 | North American Philips Corporation | Fast multiplier architecture |
US5129092A (en) * | 1987-06-01 | 1992-07-07 | Applied Intelligent Systems,Inc. | Linear chain of parallel processors and method of using same |
JP2613223B2 (ja) * | 1987-09-10 | 1997-05-21 | 株式会社日立製作所 | 演算装置 |
US5129066A (en) * | 1987-09-17 | 1992-07-07 | International Business Machines Corporation | Bit mask generator circuit using multiple logic units for generating a bit mask sequence |
US4953119A (en) * | 1989-01-27 | 1990-08-28 | Hughes Aircraft Company | Multiplier circuit with selectively interconnected pipelined multipliers for selectively multiplication of fixed and floating point numbers |
US5065437A (en) * | 1989-12-08 | 1991-11-12 | Xerox Corporation | Identification and segmentation of finely textured and solid regions of binary images |
US5048109A (en) * | 1989-12-08 | 1991-09-10 | Xerox Corporation | Detection of highlighted regions |
US5131049A (en) * | 1989-12-08 | 1992-07-14 | Xerox Corporation | Identification, characterization, and segmentation of halftone or stippled regions of binary images by growing a seed to a clipping mask |
US5267051A (en) * | 1989-12-22 | 1993-11-30 | Eastman Kodak Company | High speed compression of imagery data |
US5214763A (en) * | 1990-05-10 | 1993-05-25 | International Business Machines Corporation | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
US5280547A (en) * | 1990-06-08 | 1994-01-18 | Xerox Corporation | Dense aggregative hierarhical techniques for data analysis |
JPH0454679A (ja) * | 1990-06-25 | 1992-02-21 | Nec Corp | 演算装置 |
JP2601960B2 (ja) * | 1990-11-15 | 1997-04-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理方法及びその装置 |
US5315699A (en) * | 1991-03-20 | 1994-05-24 | Research Development Corporation Of Japan | Filtering operation method for very high-speed image processing system |
WO1993011500A1 (en) * | 1991-11-27 | 1993-06-10 | Seiko Epson Corporation | Pixel modification unit |
US5408670A (en) * | 1992-12-18 | 1995-04-18 | Xerox Corporation | Performing arithmetic in parallel on composite operands with packed multi-bit components |
US5450603A (en) * | 1992-12-18 | 1995-09-12 | Xerox Corporation | SIMD architecture with transfer register or value source circuitry connected to bus |
US5375080A (en) * | 1992-12-18 | 1994-12-20 | Xerox Corporation | Performing arithmetic on composite operands to obtain a binary outcome for each multi-bit component |
US5428804A (en) * | 1992-12-18 | 1995-06-27 | Xerox Corporation | Edge crossing circuitry for SIMD architecture |
US5437045A (en) * | 1992-12-18 | 1995-07-25 | Xerox Corporation | Parallel processing with subsampling/spreading circuitry and data transfer circuitry to and from any processing unit |
US5450604A (en) * | 1992-12-18 | 1995-09-12 | Xerox Corporation | Data rotation using parallel to serial units that receive data from memory units and rotation buffer that provides rotated data to memory units |
-
1992
- 1992-12-18 US US07/993,938 patent/US5651121A/en not_active Expired - Lifetime
-
1993
- 1993-12-08 DE DE69328070T patent/DE69328070T2/de not_active Expired - Lifetime
- 1993-12-08 EP EP93309860A patent/EP0602886B1/en not_active Expired - Lifetime
- 1993-12-17 JP JP31778593A patent/JP3584053B2/ja not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016026365A (ja) * | 2009-12-22 | 2016-02-12 | インテル・コーポレーション | プロセッサ、システムオンチップ(SoC)、ハンドヘルドデバイス、および装置 |
JP2018160288A (ja) * | 2009-12-22 | 2018-10-11 | インテル・コーポレーション | プロセッサ、方法、プログラム、および機械可読記録媒体 |
US10372455B2 (en) | 2009-12-22 | 2019-08-06 | Intel Corporation | Hand held device to perform a bit range isolation instruction |
US10579380B2 (en) | 2009-12-22 | 2020-03-03 | Intel Corporation | System-on-chip (SoC) to perform a bit range isolation instruction |
US10579379B2 (en) | 2009-12-22 | 2020-03-03 | Intel Corporation | Processor to perform a bit range isolation instruction |
US10656947B2 (en) | 2009-12-22 | 2020-05-19 | Intel Corporation | Processor to perform a bit range isolation instruction |
Also Published As
Publication number | Publication date |
---|---|
EP0602886A2 (en) | 1994-06-22 |
US5651121A (en) | 1997-07-22 |
DE69328070D1 (de) | 2000-04-20 |
DE69328070T2 (de) | 2000-07-13 |
EP0602886B1 (en) | 2000-03-15 |
JP3584053B2 (ja) | 2004-11-04 |
EP0602886A3 (en) | 1994-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3584053B2 (ja) | 複合オペランド内の多ビット要素を選択するためのマスク | |
US5408670A (en) | Performing arithmetic in parallel on composite operands with packed multi-bit components | |
US7536430B2 (en) | Method and system for performing calculation operations and a device | |
US6370558B1 (en) | Long instruction word controlling plural independent processor operations | |
US6173394B1 (en) | Instruction having bit field designating status bits protected from modification corresponding to arithmetic logic unit result | |
US7774400B2 (en) | Method and system for performing calculation operations and a device | |
KR100291383B1 (ko) | 디지털신호처리를위한명령을지원하는모듈계산장치및방법 | |
US5506799A (en) | Booth array multiplying circuit having carry correction | |
JP3637923B2 (ja) | 処理装置を作動させる方法 | |
JP3244506B2 (ja) | 小型乗算器 | |
US20040122887A1 (en) | Efficient multiplication of small matrices using SIMD registers | |
US6820102B2 (en) | DSP unit for multi-level global accumulation | |
JP3516503B2 (ja) | 電子乗算および加算装置および方法 | |
US4477879A (en) | Floating point processor architecture which performs square root by hardware | |
US6173305B1 (en) | Division by iteration employing subtraction and conditional source selection of a prior difference or a left shifted remainder | |
US7167885B2 (en) | Emod a fast modulus calculation for computer systems | |
Nakano | Prefix-sums algorithms on reconfigurable meshes | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
JPH07271557A (ja) | データ処理乗算装置および方法 | |
JP2002519957A (ja) | 符号関数を処理する方法および装置 | |
US20070083584A1 (en) | Integrated multiply and divide circuit | |
US20220334799A1 (en) | Method of Performing Hardware Efficient Unbiased Rounding of a Number | |
WO2008077803A1 (en) | Simd processor with reduction unit | |
CN113590083A (zh) | 运算控制方法、装置、系统、存储介质及处理器 | |
JP2777265B2 (ja) | 高基数開平演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040312 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040610 |
|
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: 20040702 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040802 |
|
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: 20080806 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080806 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090806 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100806 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110806 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110806 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120806 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |