JP2601960B2 - データ処理方法及びその装置 - Google Patents
データ処理方法及びその装置Info
- Publication number
- JP2601960B2 JP2601960B2 JP3257058A JP25705891A JP2601960B2 JP 2601960 B2 JP2601960 B2 JP 2601960B2 JP 3257058 A JP3257058 A JP 3257058A JP 25705891 A JP25705891 A JP 25705891A JP 2601960 B2 JP2601960 B2 JP 2601960B2
- Authority
- JP
- Japan
- Prior art keywords
- packed
- operand
- bit
- word
- coordinate
- 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.)
- Expired - Lifetime
Links
- 238000003672 processing method Methods 0.000 title description 2
- 238000000034 method Methods 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 17
- 238000012856 packing Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
-
- 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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
-
- 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
-
- 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
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3828—Multigauge devices, i.e. capable of handling packed numbers without unpacking them
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Executing Machine-Instructions (AREA)
- Image Generation (AREA)
Description
【0001】
【産業上の利用分野】本発明はデータ処理方法及び装置
に関し、特に並列演算する際にパツクされたデータに対
して算術演算及び論理演算を実行する場合に適用して好
適なものである。
に関し、特に並列演算する際にパツクされたデータに対
して算術演算及び論理演算を実行する場合に適用して好
適なものである。
【0002】
【従来の技術】図1には代表的なスカラコンピユータの
ブロツク図を示す。コンピユータ100はメモリ12
0、入力装置130及び出力装置140と結合したメイ
ンプロセツサ110を有する。入力装置130はキーボ
ード、マウス、タブレツト又は他の型式の入力装置を有
する。出力装置140はテキストモニタ、プロツタ、又
は他の型式の出力装置を有する。またメインプロセツサ
110はグラフイツクプロセツサ150を介してグラフ
イツクデイスプレイのような図形出力装置160に結合
している。グラフイツクプロセツサ150はメインプロ
セツサ110から画像に関する命令を受け取る。このと
きグラフイツクカードは当該命令を実行してグラフイツ
クデイスプレイ160にRGB信号を生成させ、その結
果ワークステーシヨンプロセツサから所望の図形出力を
送出する。
ブロツク図を示す。コンピユータ100はメモリ12
0、入力装置130及び出力装置140と結合したメイ
ンプロセツサ110を有する。入力装置130はキーボ
ード、マウス、タブレツト又は他の型式の入力装置を有
する。出力装置140はテキストモニタ、プロツタ、又
は他の型式の出力装置を有する。またメインプロセツサ
110はグラフイツクプロセツサ150を介してグラフ
イツクデイスプレイのような図形出力装置160に結合
している。グラフイツクプロセツサ150はメインプロ
セツサ110から画像に関する命令を受け取る。このと
きグラフイツクカードは当該命令を実行してグラフイツ
クデイスプレイ160にRGB信号を生成させ、その結
果ワークステーシヨンプロセツサから所望の図形出力を
送出する。
【0003】
【発明が解決しようとする課題】多重メインプロセツサ
は並列処理を実行する際に時々使用される。このとき1
つ以上のプロセツサが同時に命令を実行する。しかしな
がら、多くのアルゴリズム及びプロセスの単一的な処理
機能のためこのような対処法ではあらゆる状態に対処で
きない。
は並列処理を実行する際に時々使用される。このとき1
つ以上のプロセツサが同時に命令を実行する。しかしな
がら、多くのアルゴリズム及びプロセスの単一的な処理
機能のためこのような対処法ではあらゆる状態に対処で
きない。
【0004】本発明は複数のオペランド(被演算子)を
並列に処理するための方法及び装置を提供するものであ
り、各オペランド間に少なくとも1つのクリアされたバ
ツフアビツトをもつワード内にオペランドをパツクし、
当該パツクされたワードを処理するステツプを有するも
のである。
並列に処理するための方法及び装置を提供するものであ
り、各オペランド間に少なくとも1つのクリアされたバ
ツフアビツトをもつワード内にオペランドをパツクし、
当該パツクされたワードを処理するステツプを有するも
のである。
【0005】
【課題を解決するための手段】かかる問題を解決するた
め本発明においては、複数のオペランドを並列に処理す
る方法において、a)各オペランド間に少なくとも1つ
のクリアバツフアビツトをもつワード内にオペランドを
パツクするステツプと、b)当該パツクされたワードを
処理するステツプとを具えるようにする。
め本発明においては、複数のオペランドを並列に処理す
る方法において、a)各オペランド間に少なくとも1つ
のクリアバツフアビツトをもつワード内にオペランドを
パツクするステツプと、b)当該パツクされたワードを
処理するステツプとを具えるようにする。
【0006】本発明はまた、X座標及びY座標間に少な
くとも1つのバツフアビツトをもつ第1のパツクされた
ワード内にX座標及びY座標をパツクし、第2及び第3
のパツクされたワード内にウインドウの最大値及び最小
値をパツクすることによりX座標及びY座標に対して領
域コードを生成させる方法、第1のパツクされたワード
と第2及び第3のパツクされたワードを比較することに
より第1及び第2の領域コードを生成させる方法並びに
第1の領域サブコードを第2領域サブコードと結合する
ことにより領域コードを生成させる方法を提案する。
くとも1つのバツフアビツトをもつ第1のパツクされた
ワード内にX座標及びY座標をパツクし、第2及び第3
のパツクされたワード内にウインドウの最大値及び最小
値をパツクすることによりX座標及びY座標に対して領
域コードを生成させる方法、第1のパツクされたワード
と第2及び第3のパツクされたワードを比較することに
より第1及び第2の領域コードを生成させる方法並びに
第1の領域サブコードを第2領域サブコードと結合する
ことにより領域コードを生成させる方法を提案する。
【0007】
【実施例】以下図面について、本発明による一実施例を
詳述する。
詳述する。
【0008】メインプロセツサ及びグラフイツクプロセ
ツサは共に一般的に8、16又は32ビツトのレジスタ
を用いることによりデータ、命令等のワードを記憶する
ようになされている。プロセツサが命令を発することに
よりデータのワードに対して様々な算術演算及び論理演
算が実行される。負の数は一般的にこの演算を容易にす
るために2の補数によつて表わされる。プロセツサ内の
通信及びプロセツサ間の通信は通常8、16又は32ビ
ツトの命令又はデータのワードによりなされる。
ツサは共に一般的に8、16又は32ビツトのレジスタ
を用いることによりデータ、命令等のワードを記憶する
ようになされている。プロセツサが命令を発することに
よりデータのワードに対して様々な算術演算及び論理演
算が実行される。負の数は一般的にこの演算を容易にす
るために2の補数によつて表わされる。プロセツサ内の
通信及びプロセツサ間の通信は通常8、16又は32ビ
ツトの命令又はデータのワードによりなされる。
【0009】図2は本発明による好適な実施例におい
て、単一32ビツトワード200内にパツクされた3つ
のオペランド(被演算子)210、220及び230を
示すものである。各オペランドはデータ212、22
2、232である多数のビツトを含むと共に、単一の符
号ビツト214、224、234を含んでいる。また、
オペランド間にバツフアビツト240、250を含んで
おり、このバツフアビツトはパツクされたワード200
に対して実行される算術演算又は論理演算に先立つて
「0」にセツトされる。2の補数を利用した算術におい
ては、符号付き算術演算の結果が負になると、最上位ビ
ツトに対して符号ビツトの伝播を引き起こす。この伝播
が別のオペランドの結果をもつビツトへ波及しないよう
に、少なくとも1つのバツフアビツトが各オペランド間
に配置されるようになされている。このようなビツトは
むしろ符号付き算術を必要とする算術演算又は論理演算
をする前にしかも結果を評価する前にクリア(「0」に
セツトする)される。ワード内の最上位ビツトにあるオ
ペランドはオーバフローが、ALU(算術論理装置)キ
ヤリービツト内に伝播するか又は算術結果に影響を及ぼ
さないでなくなるのでバツフアビツトを必要としない。
1つ以上のバツフアビツトがオペランド間において使用
される場合、複数の算術演算及び論理演算(少なくとも
バツフアビツトの数と同数である)はその演算が符号ビ
ツトのオーバフローを引き起こすか否かにかかわらずバ
ツフアビツトをクリアする間、パツクされたワードに実
行してもかまわない。パツクされたワード内の各オペラ
ンドは大きさ及び位置を変更することができる。また、
使用されるオペランドの数を変更することもできる。並
列演算をなし得る数は単一算術論理装置ALUワード内
に置くことができるバツフアビツトをもつ有効なオペラ
ンド数に制限される。
て、単一32ビツトワード200内にパツクされた3つ
のオペランド(被演算子)210、220及び230を
示すものである。各オペランドはデータ212、22
2、232である多数のビツトを含むと共に、単一の符
号ビツト214、224、234を含んでいる。また、
オペランド間にバツフアビツト240、250を含んで
おり、このバツフアビツトはパツクされたワード200
に対して実行される算術演算又は論理演算に先立つて
「0」にセツトされる。2の補数を利用した算術におい
ては、符号付き算術演算の結果が負になると、最上位ビ
ツトに対して符号ビツトの伝播を引き起こす。この伝播
が別のオペランドの結果をもつビツトへ波及しないよう
に、少なくとも1つのバツフアビツトが各オペランド間
に配置されるようになされている。このようなビツトは
むしろ符号付き算術を必要とする算術演算又は論理演算
をする前にしかも結果を評価する前にクリア(「0」に
セツトする)される。ワード内の最上位ビツトにあるオ
ペランドはオーバフローが、ALU(算術論理装置)キ
ヤリービツト内に伝播するか又は算術結果に影響を及ぼ
さないでなくなるのでバツフアビツトを必要としない。
1つ以上のバツフアビツトがオペランド間において使用
される場合、複数の算術演算及び論理演算(少なくとも
バツフアビツトの数と同数である)はその演算が符号ビ
ツトのオーバフローを引き起こすか否かにかかわらずバ
ツフアビツトをクリアする間、パツクされたワードに実
行してもかまわない。パツクされたワード内の各オペラ
ンドは大きさ及び位置を変更することができる。また、
使用されるオペランドの数を変更することもできる。並
列演算をなし得る数は単一算術論理装置ALUワード内
に置くことができるバツフアビツトをもつ有効なオペラ
ンド数に制限される。
【0010】図3は従来の技術において実行されていた
16ビツトワードを使用した3つの加算演算例を示すも
のである。各演算は10進法、16進法及び2進法によ
り示されている。最初の演算は値「50」に「−1」を
加算した結果の値が「49」であることを示している。
2番目の演算は「4」に「3」を加算した結果が「7」
であることを示している。3番目の演算は「−1」に
「−1」を加算した結果の値が「−2」であることを示
している。代表的なコンピユータはこの演算を実行する
ために少なくとも3つのサイクルを使用するがロード機
能又は記憶機能を有しない。
16ビツトワードを使用した3つの加算演算例を示すも
のである。各演算は10進法、16進法及び2進法によ
り示されている。最初の演算は値「50」に「−1」を
加算した結果の値が「49」であることを示している。
2番目の演算は「4」に「3」を加算した結果が「7」
であることを示している。3番目の演算は「−1」に
「−1」を加算した結果の値が「−2」であることを示
している。代表的なコンピユータはこの演算を実行する
ために少なくとも3つのサイクルを使用するがロード機
能又は記憶機能を有しない。
【0011】図4は本発明によつてクリアされたバツフ
アビツトをもつパツクされた16ビツトを使用する同一
の加算演算例を示す。演算から理解できるように第1の
オペランド(OP1)は7ビツトの長さをもち、第2の
オペランド(OP2)は4ビツトの長さをもち、第3の
オペランド(OP3)は3ビツトの長さをもつている。
さらに、オペランド間に2つのバツフアビツト(b)が
あるため合計16ビツトとなる。最初のオペランドセツ
ト(OP−a)は値「50」、「4」、及び「−1」を
含んでいる。第2のオペランドセツト(OP−b)は
値、「−1」、「3」及び「−1」を含んでいる。第3
のオペランドセツト(OP−c)は加算の結果を含んで
いる。その結果バツフアビツトのうち1つは符号ビツト
の桁上げのため「1」にセツトされる。バツフアビツト
は論理演算及びマスクをもつ演算を用いることにより
「0」にセツトされる。その結果、第4のオペランドセ
ツト(OP−d)は所望の値「49」、「7」及び「−
2」を含み、図3の結果と合致する。パツクされたワー
ドに対して実行されるべき次の算術演算又は論理演算が
ない場合は、最後の処理は必要としない。
アビツトをもつパツクされた16ビツトを使用する同一
の加算演算例を示す。演算から理解できるように第1の
オペランド(OP1)は7ビツトの長さをもち、第2の
オペランド(OP2)は4ビツトの長さをもち、第3の
オペランド(OP3)は3ビツトの長さをもつている。
さらに、オペランド間に2つのバツフアビツト(b)が
あるため合計16ビツトとなる。最初のオペランドセツ
ト(OP−a)は値「50」、「4」、及び「−1」を
含んでいる。第2のオペランドセツト(OP−b)は
値、「−1」、「3」及び「−1」を含んでいる。第3
のオペランドセツト(OP−c)は加算の結果を含んで
いる。その結果バツフアビツトのうち1つは符号ビツト
の桁上げのため「1」にセツトされる。バツフアビツト
は論理演算及びマスクをもつ演算を用いることにより
「0」にセツトされる。その結果、第4のオペランドセ
ツト(OP−d)は所望の値「49」、「7」及び「−
2」を含み、図3の結果と合致する。パツクされたワー
ドに対して実行されるべき次の算術演算又は論理演算が
ない場合は、最後の処理は必要としない。
【0012】図5は、ワードをパツクし、処理し、取り
出すためのメモリ255を有するプロセツサ250をブ
ロツク図として示す。図6及び図7は図5のプロセツサ
及びメモリを使用するワードのパツク処理及び取出し処
理を示すフローチヤートである。好適な実施例におい
て、プロセツサ250はコンピユータメインプロセツサ
又はグラフイツクプロセツサにおいて配設されている。
プロセツサ250は中央処理装置(CPU)260、算
術論理装置(ALU)262及びレジスタ264、26
6、268を有する。
出すためのメモリ255を有するプロセツサ250をブ
ロツク図として示す。図6及び図7は図5のプロセツサ
及びメモリを使用するワードのパツク処理及び取出し処
理を示すフローチヤートである。好適な実施例におい
て、プロセツサ250はコンピユータメインプロセツサ
又はグラフイツクプロセツサにおいて配設されている。
プロセツサ250は中央処理装置(CPU)260、算
術論理装置(ALU)262及びレジスタ264、26
6、268を有する。
【0013】図6は複数のオペランドを単一ワード内に
パツクする際のプロセスを示すフローチヤートである。
第1ステツプ270においてメモリ255内に記憶され
た第1のオペランドがCPU260により第1のレジス
タ264内にロードされる。第2ステツプ271におい
て第1レジスタ内のオペランドは演算論理装置ALU2
62により予め計算されたビツト数を「0」で充たして
左側に移動させる。第3ステツプ272において第2オ
ペランドはCPUによりメモリから第2レジスタ266
内にロードされる。第4ステツプ273においてマスク
がメモリからロードされるか又は第3レジスタ268内
にCPUにより生成される。ステツプ274において演
算論理装置ALU262はマスクを用いることにより第
2レジスタ内のオペランドの左側のビツトを外すように
なされている。第2レジスタ内のオペランドがパツクさ
れたワード内にパツクされる最後のオペランドでない場
合、演算論理装置ALU262はステツプ275におい
て演算論理装置ALU262により予め計算された時間
に第2レジスタを左側に移動させる。ステツプ276に
おいて第2レジスタ内のオペランドは演算論理装置AL
U262により第1レジスタ内に第1レジスタの内容と
共にOR(論理和)される。その結果CPUはステツプ
277において別のオペランドをパツクされたワード内
にパツクするかどうかを決定する。
パツクする際のプロセスを示すフローチヤートである。
第1ステツプ270においてメモリ255内に記憶され
た第1のオペランドがCPU260により第1のレジス
タ264内にロードされる。第2ステツプ271におい
て第1レジスタ内のオペランドは演算論理装置ALU2
62により予め計算されたビツト数を「0」で充たして
左側に移動させる。第3ステツプ272において第2オ
ペランドはCPUによりメモリから第2レジスタ266
内にロードされる。第4ステツプ273においてマスク
がメモリからロードされるか又は第3レジスタ268内
にCPUにより生成される。ステツプ274において演
算論理装置ALU262はマスクを用いることにより第
2レジスタ内のオペランドの左側のビツトを外すように
なされている。第2レジスタ内のオペランドがパツクさ
れたワード内にパツクされる最後のオペランドでない場
合、演算論理装置ALU262はステツプ275におい
て演算論理装置ALU262により予め計算された時間
に第2レジスタを左側に移動させる。ステツプ276に
おいて第2レジスタ内のオペランドは演算論理装置AL
U262により第1レジスタ内に第1レジスタの内容と
共にOR(論理和)される。その結果CPUはステツプ
277において別のオペランドをパツクされたワード内
にパツクするかどうかを決定する。
【0014】バツフアビツトは左側に移動した「0」が
一杯になるか又はマスクするかのいずれかによりオペラ
ンド間に生成され、クリアされる。さらに、バツフアビ
ツトはマスクと共にパツクされた後にクリアされる。別
の例においてパツクされたワードは左側から右側へ、右
側から左側へ又は所望の順番にオペランドで埋めること
ができる。
一杯になるか又はマスクするかのいずれかによりオペラ
ンド間に生成され、クリアされる。さらに、バツフアビ
ツトはマスクと共にパツクされた後にクリアされる。別
の例においてパツクされたワードは左側から右側へ、右
側から左側へ又は所望の順番にオペランドで埋めること
ができる。
【0015】図7は単一のパツクされたワードから複数
のオペランドを取り出す際のプロセスを示すフローチヤ
ートである。第1ステツプ280においてパツクされた
ワードは演算論理装置ALU262によりメモリ255
から第1レジスタ264内にロードされる。第2ステツ
プ281においてマスクがメモリからロードされるか又
はCPU260により第2レジスタ266内に生成され
る。ステツプ282において演算論理装置ALU262
はマスクを用いることにより不相応なオペランドを外す
ようになされており、その結果第3レジスタ268内に
所望のオペランドが生成される。次のステツプ283に
おいて第3レジスタ内のオペランドは左側に移動しかつ
オペランドを拡げるために右側に移動される。そのよう
になされた結果当該オペランドはステツプ284におい
てCPU260によりメモリ内にロードされる。その結
果CPU260はステツプ285においてパツクされた
ワードから別のオペランドを取り出すか否かを決定す
る。
のオペランドを取り出す際のプロセスを示すフローチヤ
ートである。第1ステツプ280においてパツクされた
ワードは演算論理装置ALU262によりメモリ255
から第1レジスタ264内にロードされる。第2ステツ
プ281においてマスクがメモリからロードされるか又
はCPU260により第2レジスタ266内に生成され
る。ステツプ282において演算論理装置ALU262
はマスクを用いることにより不相応なオペランドを外す
ようになされており、その結果第3レジスタ268内に
所望のオペランドが生成される。次のステツプ283に
おいて第3レジスタ内のオペランドは左側に移動しかつ
オペランドを拡げるために右側に移動される。そのよう
になされた結果当該オペランドはステツプ284におい
てCPU260によりメモリ内にロードされる。その結
果CPU260はステツプ285においてパツクされた
ワードから別のオペランドを取り出すか否かを決定す
る。
【0016】このような技術は特に大きさに制限がある
オペランド値の加算、減算及び比較を用いる2の補数算
術に有用である。この技術の有効な使い方の1つは、2
次元グラフイツク操作及びウインドウアプリケーシヨン
においてである。スクリーン上の各点又はポイントに対
するX座標及びY座標が最大に適用できるのは16ビツ
トが限界である。例えば、グラフイツクデイスプレイは
通常大きさが横1280、縦1024のピクセルからな
る。整数X座標及びY座標においてピクセルを表すのに
必要なビツト数はX座標内においては11ビツトであり
かつY座標内においては10ビツトである。連続的にメ
モリ内に組織化された場合、単一32ビツト読出しがX
座標及びY座標の点を32ビツトワイドレジスタを有す
るプロセツサ内に運ぶことができる。スクリーン又はウ
インドウ座標に存在する数を仮定すると、このバツフア
ビツトはデータを失うことなくクリアすることができ
る。点に対するすべての計算が完了すると点は描画ハー
ドウエアに対して出力しなければならない。一般的に効
果的なバス帯域幅を増加して必要とする入出力アドレス
を削減するために、パツクされた形によりこれらのオペ
ランドを出力する必要がある。本文中において略述した
技術についての主要な利点はすべての処理がパツクされ
た形で生ずるということである。こうすることにより点
データを最初に取り出し、処理し、再パツクする必要性
を回避できる。
オペランド値の加算、減算及び比較を用いる2の補数算
術に有用である。この技術の有効な使い方の1つは、2
次元グラフイツク操作及びウインドウアプリケーシヨン
においてである。スクリーン上の各点又はポイントに対
するX座標及びY座標が最大に適用できるのは16ビツ
トが限界である。例えば、グラフイツクデイスプレイは
通常大きさが横1280、縦1024のピクセルからな
る。整数X座標及びY座標においてピクセルを表すのに
必要なビツト数はX座標内においては11ビツトであり
かつY座標内においては10ビツトである。連続的にメ
モリ内に組織化された場合、単一32ビツト読出しがX
座標及びY座標の点を32ビツトワイドレジスタを有す
るプロセツサ内に運ぶことができる。スクリーン又はウ
インドウ座標に存在する数を仮定すると、このバツフア
ビツトはデータを失うことなくクリアすることができ
る。点に対するすべての計算が完了すると点は描画ハー
ドウエアに対して出力しなければならない。一般的に効
果的なバス帯域幅を増加して必要とする入出力アドレス
を削減するために、パツクされた形によりこれらのオペ
ランドを出力する必要がある。本文中において略述した
技術についての主要な利点はすべての処理がパツクされ
た形で生ずるということである。こうすることにより点
データを最初に取り出し、処理し、再パツクする必要性
を回避できる。
【0017】図9及び図12は図5のプロセツサ及びメ
モリを用いるプロセスを示したもので、プロセツサのス
ループツトを高めるためにパツクされた算術と共にパツ
クされた値を使用することができる。プロセスの各部分
は演算ごとの相対的なサイクル数を示すために集まって
いる。それらは2次元のベクトル処理の際のループを形
成するために結合しているので表示した例は重要であ
る。このループに蓄えられたサイクルは2次元ベクトル
演算に多大な影響を及ぼす。
モリを用いるプロセスを示したもので、プロセツサのス
ループツトを高めるためにパツクされた算術と共にパツ
クされた値を使用することができる。プロセスの各部分
は演算ごとの相対的なサイクル数を示すために集まって
いる。それらは2次元のベクトル処理の際のループを形
成するために結合しているので表示した例は重要であ
る。このループに蓄えられたサイクルは2次元ベクトル
演算に多大な影響を及ぼす。
【0018】図8はウインドウ座標内のポイントをスク
リーン座標内のポイントに変換する際の従来の技術によ
るプロセスを示すブロツク図である。32ビツトのコン
ピユータにおいてX座標及びY座標は一般的にパツクさ
れた形でメモリ内に記憶される。すなわちX座標は32
ビツトワードのうちの最初の16ビツトに記憶され、Y
座標は32ビツトワードのうちの残りの16ビツトに記
憶される。
リーン座標内のポイントに変換する際の従来の技術によ
るプロセスを示すブロツク図である。32ビツトのコン
ピユータにおいてX座標及びY座標は一般的にパツクさ
れた形でメモリ内に記憶される。すなわちX座標は32
ビツトワードのうちの最初の16ビツトに記憶され、Y
座標は32ビツトワードのうちの残りの16ビツトに記
憶される。
【0019】第1ステツプ300においてパツクされた
座標値はメモリから第1レジスタ内にロードされる。パ
ツクされた座標は第2ステツプ310においてX座標及
びY座標内に取り出される。この処理はステツプ312
においてパツクされたワードをX座標レジスタ内に最初
にロードし、その後16ビツトによりそのレジスタを右
側に移動することにより終了する。この過程は多くのコ
ンピユータにおいては1回のステツプにより実行され得
る。Y座標はステツプ314において16ビツトにより
取り出されたワードを左側に移動しその後16ビツトに
よりワードを右側に移動することによつて取り出され
る。Y座標の値が負である場合、このようにY座標を左
右に移動させるプロセスは当該座標の大きさまで拡大す
る。ステツプ312は一般的に2サイクルにより実行さ
れる。
座標値はメモリから第1レジスタ内にロードされる。パ
ツクされた座標は第2ステツプ310においてX座標及
びY座標内に取り出される。この処理はステツプ312
においてパツクされたワードをX座標レジスタ内に最初
にロードし、その後16ビツトによりそのレジスタを右
側に移動することにより終了する。この過程は多くのコ
ンピユータにおいては1回のステツプにより実行され得
る。Y座標はステツプ314において16ビツトにより
取り出されたワードを左側に移動しその後16ビツトに
よりワードを右側に移動することによつて取り出され
る。Y座標の値が負である場合、このようにY座標を左
右に移動させるプロセスは当該座標の大きさまで拡大す
る。ステツプ312は一般的に2サイクルにより実行さ
れる。
【0020】ステツプ320を実行中、X座標及びY座
標はウインドウ座標からスクリーン座標へ変換される。
すなわちX本来の値はステツプ322においてX座標に
加算され、Y座標本来の値はステツプ324においてY
座標に加算される。加算は通常実行されるごとに1サイ
クル進む。
標はウインドウ座標からスクリーン座標へ変換される。
すなわちX本来の値はステツプ322においてX座標に
加算され、Y座標本来の値はステツプ324においてY
座標に加算される。加算は通常実行されるごとに1サイ
クル進む。
【0021】ステツプ330を実行中、X座標及びY座
標はバス上に伝送される際又はメモリ内に記憶される際
にパツクされた座標内に再度パツクされる。この処理は
ステツプ332において示すように16ビツトによりX
座標を左側に移動し、ステツプ334においてパツクさ
れた座標内にX座標及びY座標を論理和することにより
終了する。このことは通常、実行される全2サイクルを
進める。
標はバス上に伝送される際又はメモリ内に記憶される際
にパツクされた座標内に再度パツクされる。この処理は
ステツプ332において示すように16ビツトによりX
座標を左側に移動し、ステツプ334においてパツクさ
れた座標内にX座標及びY座標を論理和することにより
終了する。このことは通常、実行される全2サイクルを
進める。
【0022】ステツプ340において示すようにパツク
された座標の最終値はバス上に伝送されるか又は次のサ
イクルのメモリ内に記憶される。
された座標の最終値はバス上に伝送されるか又は次のサ
イクルのメモリ内に記憶される。
【0023】表1は、スクリーン上の座標100、20
0を原点とするウインドウ内にあるウインドウ座標1
0、−1をもつ点に対して、図8に示す従来の技術によ
るウインドウからスクリーンへの変換過程における変数
値を示す。パツクされた座標、X座標及びY座標の値は
各参照ステツプの最後に与えられる。例えば、ステツプ
300の最後において、10を表すX座標値「000
A」及び−1を表すY座標値「FFFF」を含むパック
された座標値「000AFFFF」が与えられる。
0を原点とするウインドウ内にあるウインドウ座標1
0、−1をもつ点に対して、図8に示す従来の技術によ
るウインドウからスクリーンへの変換過程における変数
値を示す。パツクされた座標、X座標及びY座標の値は
各参照ステツプの最後に与えられる。例えば、ステツプ
300の最後において、10を表すX座標値「000
A」及び−1を表すY座標値「FFFF」を含むパック
された座標値「000AFFFF」が与えられる。
【0024】
【表1】
【0025】図9はウインドウ座標内のポイントをスク
リーン座標内のポイントに変換する際の本発明における
好適な実施例によるプロセスを示すブロツク図である。
このプロセスによりウインドウ座標からスクリーン座標
への変換過程を完成させるために必要なサイクル数を減
少させることができる。
リーン座標内のポイントに変換する際の本発明における
好適な実施例によるプロセスを示すブロツク図である。
このプロセスによりウインドウ座標からスクリーン座標
への変換過程を完成させるために必要なサイクル数を減
少させることができる。
【0026】図9において第1ステツプ400はパツク
された座標値をメモリからの第1レジスタ内にロードす
ることを示すものである。ステツプ410において、パ
ツクされた座標内のX座標値及びY座標値間のバツフア
ビツトは、パツクされた座標と16進法による値FFF
F7FFFを論理積することによりクリアされる。その
結果XY座標は、ステツプ420において、ウインドウ
の原点を生成する際にパツクされた16進法による値を
加算することによりスクリーン座標に変換される。次の
ステツプ430においてパツクされた座標と0FFFF
7FFFを論理積することによりバツフアビツトは再度
クリアされる。このステツプは次の過程が無視される場
合又はクリアされてないバツフアビツトにより影響を受
けない場合は必要とされない。最終ステツプ440にお
いてパツクされた座標の最終値はバス上に伝送されるか
又は次のサイクルのメモリ内に記憶される。
された座標値をメモリからの第1レジスタ内にロードす
ることを示すものである。ステツプ410において、パ
ツクされた座標内のX座標値及びY座標値間のバツフア
ビツトは、パツクされた座標と16進法による値FFF
F7FFFを論理積することによりクリアされる。その
結果XY座標は、ステツプ420において、ウインドウ
の原点を生成する際にパツクされた16進法による値を
加算することによりスクリーン座標に変換される。次の
ステツプ430においてパツクされた座標と0FFFF
7FFFを論理積することによりバツフアビツトは再度
クリアされる。このステツプは次の過程が無視される場
合又はクリアされてないバツフアビツトにより影響を受
けない場合は必要とされない。最終ステツプ440にお
いてパツクされた座標の最終値はバス上に伝送されるか
又は次のサイクルのメモリ内に記憶される。
【0027】表2は図9に示すようにスクリーン上に本
来の100、200をもつたウインドウ内にある座標1
0、−1をもつ点に対して好適な技術によるウインドウ
からスクリーンへの変換過程における変数値を示してい
る。パツクされた座標(Packed−Coord)、
X座標(X−Coord)及びY座標(Y−Coor
d)の値は各参照ステツプの最後に与えられる。例えば
ステツプ400においてはパツクされた座標値は000
AFFFFとなる。
来の100、200をもつたウインドウ内にある座標1
0、−1をもつ点に対して好適な技術によるウインドウ
からスクリーンへの変換過程における変数値を示してい
る。パツクされた座標(Packed−Coord)、
X座標(X−Coord)及びY座標(Y−Coor
d)の値は各参照ステツプの最後に与えられる。例えば
ステツプ400においてはパツクされた座標値は000
AFFFFとなる。
【0028】
【表2】
【0029】図8及び図9に示すように従来の技術によ
るプロセスが9サイクル必要であるのに比較して本発明
によるプロセスは5サイクルだけですむため4サイクル
節約できることになる。このように節約できるのは第1
にパツクされた座標値を取り出すことなくしかも再度パ
ツクするからである。
るプロセスが9サイクル必要であるのに比較して本発明
によるプロセスは5サイクルだけですむため4サイクル
節約できることになる。このように節約できるのは第1
にパツクされた座標値を取り出すことなくしかも再度パ
ツクするからである。
【0030】コーエンサザーンランド(Cohen─S
uthenland)のクリツピングアルゴリズムは2
つの端点をつなぐラインがウインドウ内にあるか否かを
決定する際に必要な計算数を最小限にするように設計さ
れたアルゴリズムである。アルゴリズムは端点上の領域
チエツクを用いることにより受入れられるか又は拒絶さ
れるようになされた多くのラインを効果的に識別する。
共通部分についての計算は受入れも拒絶のいずれをもさ
れないラインに対してのみ必要とされる。このアルゴリ
ズムはウインドウが表現されるイメージの大きさに比較
して非常に大きいか又は非常に小さい時に特に効果的で
ある。すなわち表現されるイメージのほとんどのライン
がウインドウの内側又はウインドウの外側のいずれかに
存在するときである。
uthenland)のクリツピングアルゴリズムは2
つの端点をつなぐラインがウインドウ内にあるか否かを
決定する際に必要な計算数を最小限にするように設計さ
れたアルゴリズムである。アルゴリズムは端点上の領域
チエツクを用いることにより受入れられるか又は拒絶さ
れるようになされた多くのラインを効果的に識別する。
共通部分についての計算は受入れも拒絶のいずれをもさ
れないラインに対してのみ必要とされる。このアルゴリ
ズムはウインドウが表現されるイメージの大きさに比較
して非常に大きいか又は非常に小さい時に特に効果的で
ある。すなわち表現されるイメージのほとんどのライン
がウインドウの内側又はウインドウの外側のいずれかに
存在するときである。
【0031】アルゴリズムは、図10に示す9つの領域
のいずれかを表す4ビツト領域コードをラインの各端点
に割り当てることにより開始する。領域コード内の各ビ
ツトは端点及びウインドウ間の以下に述べる関係が真で
ある場合、論理「1」(真)にセツトされる。領域コー
ドの4ビットは、すべての領域コードで同じ順番であり
さえすれば、どのような順に並べてもよい。 ビツト1−端点がウインドウの上側にある。 ビツト2−端点がウインドウの下側にある。 ビツト3−端点がウインドウの右側にある。ビ ツト4−端点がウインドウの左側にある。
のいずれかを表す4ビツト領域コードをラインの各端点
に割り当てることにより開始する。領域コード内の各ビ
ツトは端点及びウインドウ間の以下に述べる関係が真で
ある場合、論理「1」(真)にセツトされる。領域コー
ドの4ビットは、すべての領域コードで同じ順番であり
さえすれば、どのような順に並べてもよい。 ビツト1−端点がウインドウの上側にある。 ビツト2−端点がウインドウの下側にある。 ビツト3−端点がウインドウの右側にある。ビ ツト4−端点がウインドウの左側にある。
【0032】両端点がウインドウ内にある場合(すなわ
ちこれらの領域コードは「0000」と等しい)、当該
ラインは完全にウインドウの内側にあるものと受け入れ
られる。端点の片方だけがウインドウ内にある場合、ラ
インは受け入れも拒絶のいずれをもされず、ライン交差
部分の計算が実行される。端点がいずれもウインドウ内
にない場合、ラインの両端点に対する領域コードの論理
積が計算される。その結果の領域コードが「0000」
と等しくなると、ラインは受入れも拒絶のいずれをもさ
れず、ライン交差部分の計算が実行される。結果の領域
コードが「0000」と等しくない場合は、ラインは完
全にウインドウの外側にあるものとして拒絶される。
ちこれらの領域コードは「0000」と等しい)、当該
ラインは完全にウインドウの内側にあるものと受け入れ
られる。端点の片方だけがウインドウ内にある場合、ラ
インは受け入れも拒絶のいずれをもされず、ライン交差
部分の計算が実行される。端点がいずれもウインドウ内
にない場合、ラインの両端点に対する領域コードの論理
積が計算される。その結果の領域コードが「0000」
と等しくなると、ラインは受入れも拒絶のいずれをもさ
れず、ライン交差部分の計算が実行される。結果の領域
コードが「0000」と等しくない場合は、ラインは完
全にウインドウの外側にあるものとして拒絶される。
【0033】図11はコーエンサザーンランドのクリツ
ピングアルゴリズムの際に領域コードを生成するための
従来技術によるプロセスを示すブロツク図である。第1
ステツプ510においてX座標値及びY座標値はメモリ
から分離レジスタ内にロードされ、これらを取り出し、
値「8000000」をもつ符号ビツトマスクが形成さ
れることによりアルゴリズム実行中に使用される。
ピングアルゴリズムの際に領域コードを生成するための
従来技術によるプロセスを示すブロツク図である。第1
ステツプ510においてX座標値及びY座標値はメモリ
から分離レジスタ内にロードされ、これらを取り出し、
値「8000000」をもつ符号ビツトマスクが形成さ
れることによりアルゴリズム実行中に使用される。
【0034】第2ステツプ520において領域コードは
X座標及びY座標値とウインドウのX座標およびY座標
の最小値及び最大値とを比較することにより生成され
る。ステツプ522において第1領域コードビツトは、
X座標からウィンドウの最小X値を引いた結果と符号ビ
ツトマスクとの論理積に等しい。ステツプ524におい
て第2の領域コードビツトは、Y座標からウィンドウの
最小Y値を引いた結果と符号ビツトマスクとの論理積に
等しい。この第2の領域コードビツトは1ビツト左側へ
移動し第1領域ビツトと論理和されその結果初期領域コ
ードになる。
X座標及びY座標値とウインドウのX座標およびY座標
の最小値及び最大値とを比較することにより生成され
る。ステツプ522において第1領域コードビツトは、
X座標からウィンドウの最小X値を引いた結果と符号ビ
ツトマスクとの論理積に等しい。ステツプ524におい
て第2の領域コードビツトは、Y座標からウィンドウの
最小Y値を引いた結果と符号ビツトマスクとの論理積に
等しい。この第2の領域コードビツトは1ビツト左側へ
移動し第1領域ビツトと論理和されその結果初期領域コ
ードになる。
【0035】ステツプ526において第3領域コードビ
ツトはウィンドウの最大X値からX座標値を引いた結果
と符号ビツトマスクとの論理積に等しい。この第3領域
コードビツトは2ビツト左側へ移動し前の領域コードと
論理和される。ステツプ528において第4領域コード
ビツトはウィンドウの最大Y値からY座標値を引いた結
果と符号ビツトマスクとの論理積に等しい。この第4領
域コードビツトは3ビツト左側に移動され前の領域コー
ドと論理和され、その結果最終領域コードになる。一般
的なコンピータにおいてはステツプ522において2サ
イクル、ステツプ524においては4サイクル、ステツ
プ526においては4サイクル、ステツプ528におい
ては4サイクルを必要とする。従つて、ステツプ510
において一度変数が生ずると領域コードを生成するため
には合計14サイクルが必要となる。
ツトはウィンドウの最大X値からX座標値を引いた結果
と符号ビツトマスクとの論理積に等しい。この第3領域
コードビツトは2ビツト左側へ移動し前の領域コードと
論理和される。ステツプ528において第4領域コード
ビツトはウィンドウの最大Y値からY座標値を引いた結
果と符号ビツトマスクとの論理積に等しい。この第4領
域コードビツトは3ビツト左側に移動され前の領域コー
ドと論理和され、その結果最終領域コードになる。一般
的なコンピータにおいてはステツプ522において2サ
イクル、ステツプ524においては4サイクル、ステツ
プ526においては4サイクル、ステツプ528におい
ては4サイクルを必要とする。従つて、ステツプ510
において一度変数が生ずると領域コードを生成するため
には合計14サイクルが必要となる。
【0036】ステツプ530において領域コードビツト
は領域コードが「0000」に等しいか否かを決定する
ためにテストされる。
は領域コードが「0000」に等しいか否かを決定する
ためにテストされる。
【0037】図12は本発明による好適な実施例を使用
するコーエンサザーンランドのクリツピングアルゴリズ
ムの際に領域コードを生成させるためのプロセスを示す
ブロツク図である。第1ステツプ610においてパツク
されたX座標値及びY座標値はメモリからのレジスタへ
ロードされるが、これらは取り出す必要はなく、「80
004000」の値をもつパツクされた符号ビツトマス
クが形成されてアルゴリズム実行中に使用される。
するコーエンサザーンランドのクリツピングアルゴリズ
ムの際に領域コードを生成させるためのプロセスを示す
ブロツク図である。第1ステツプ610においてパツク
されたX座標値及びY座標値はメモリからのレジスタへ
ロードされるが、これらは取り出す必要はなく、「80
004000」の値をもつパツクされた符号ビツトマス
クが形成されてアルゴリズム実行中に使用される。
【0038】次のステツプ620において領域コードが
X座標値及びY座標値をウインドウのX座標及びY座標
の最小値及び最大値と比較することにより生成される。
ステツプ622において第1及び第2の領域コードビツ
トはX座標値及びY座標値からウィンドウの最小X値及
び最小Y値を引いた結果とパツクされた符号ビツトマス
クとの論理積に等しい。ステツプ624において第3及
び第4領域コードビツトはX座標値及びY座標値からウ
ィンドウの最大X値及び最大Y値を引いた結果を反転し
たものとパツクされた符号ビツトマスクとの論理積に等
しい。この第3及び第4領域コードビツトは2ビツト左
側に移動されて前の領域コードビツトと論理和されその
結果最終領域コードになる。本発明による好適な実施例
を用いることによりステツプ622において2サイク
ル、ステツプ624においては3サイクル及びステツプ
626において2サイクルを必要とする。従つて、一度
変数がステツプ610において生ずると領域コードを生
成するためには合計7サイクルが必要となる。ステツプ
630において領域コードビツトは領域コードが「00
00」に等しいか否かを決定するためにテストされる。
X座標値及びY座標値をウインドウのX座標及びY座標
の最小値及び最大値と比較することにより生成される。
ステツプ622において第1及び第2の領域コードビツ
トはX座標値及びY座標値からウィンドウの最小X値及
び最小Y値を引いた結果とパツクされた符号ビツトマス
クとの論理積に等しい。ステツプ624において第3及
び第4領域コードビツトはX座標値及びY座標値からウ
ィンドウの最大X値及び最大Y値を引いた結果を反転し
たものとパツクされた符号ビツトマスクとの論理積に等
しい。この第3及び第4領域コードビツトは2ビツト左
側に移動されて前の領域コードビツトと論理和されその
結果最終領域コードになる。本発明による好適な実施例
を用いることによりステツプ622において2サイク
ル、ステツプ624においては3サイクル及びステツプ
626において2サイクルを必要とする。従つて、一度
変数がステツプ610において生ずると領域コードを生
成するためには合計7サイクルが必要となる。ステツプ
630において領域コードビツトは領域コードが「00
00」に等しいか否かを決定するためにテストされる。
【0039】上述の通り本発明をその最適な実施例に基
づいて図示、説明したが、他の代わりの実施例において
も通常の知識を有する者であれば理解できる。例えば、
増加演算又はシフト演算は適切なバツフアビツト数がオ
ペランド間において使用される場合、パツクされたワー
ドに対して実行され得る。それ故上述したことは、請求
項に付加されることにより定義される本発明の請求の範
囲を制限するものではない。
づいて図示、説明したが、他の代わりの実施例において
も通常の知識を有する者であれば理解できる。例えば、
増加演算又はシフト演算は適切なバツフアビツト数がオ
ペランド間において使用される場合、パツクされたワー
ドに対して実行され得る。それ故上述したことは、請求
項に付加されることにより定義される本発明の請求の範
囲を制限するものではない。
【0040】
【発明の効果】上述のように本発明によれば、ある形式
のプロセス及びアルゴリズムを取り扱う際の速度を大幅
に増強させることができる。この速度の大幅な増強は上
述したような領域コード生成プロセスにおいて使用され
るウインドウ座標が上述のプロセスを用いることにより
生成される場合重要である。
のプロセス及びアルゴリズムを取り扱う際の速度を大幅
に増強させることができる。この速度の大幅な増強は上
述したような領域コード生成プロセスにおいて使用され
るウインドウ座標が上述のプロセスを用いることにより
生成される場合重要である。
【図1】図1は代表的なスカラコンピータについてのブ
ロツク図である。
ロツク図である。
【図2】図2は本発明による好適な実施例において単一
ワード内にパツクされた複数のオペランドを示す略線図
である。
ワード内にパツクされた複数のオペランドを示す略線図
である。
【図3】図3は従来の技術において実行される独立した
ワードを使用する3つの加算演算例を示す図表である。
ワードを使用する3つの加算演算例を示す図表である。
【図4】図4は本発明による好適な実施例におけるパツ
クされたワードを用いる同一の加算演算例を示す図表で
ある。
クされたワードを用いる同一の加算演算例を示す図表で
ある。
【図5】図5はワードのパツキング、処理及び取出しの
ためのメモリを備えたプロセツサを示すブロツク図であ
る。
ためのメモリを備えたプロセツサを示すブロツク図であ
る。
【図6】図6はワードのパツキング及び取出しを示すフ
ローチヤートである。
ローチヤートである。
【図7】図7はワードのパツキング及び取出しを示すフ
ローチヤートである。
ローチヤートである。
【図8】図8はウインドウ座標内のポイントをスクリー
ン座標内のポイントに変換する際の従来の技術を示すブ
ロツク図である。
ン座標内のポイントに変換する際の従来の技術を示すブ
ロツク図である。
【図9】図9はウインドウ座標内のポイントをスクリー
ン座標内のポイントに変換する際の本発明による好適な
実施例における技術を示すブロツク図である。
ン座標内のポイントに変換する際の本発明による好適な
実施例における技術を示すブロツク図である。
【図10】図10はコーエンサザーンランドのクリツピ
ングアルゴリズムに基づくウインドウ周囲及びウインド
ウ内の9つの領域に対する4ビツト領域コードを示す略
線図である。
ングアルゴリズムに基づくウインドウ周囲及びウインド
ウ内の9つの領域に対する4ビツト領域コードを示す略
線図である。
【図11】図11はコーエンサザーンランドのクリツピ
ングアルゴリズムに対して領域コードを生成する際の従
来の技術におけるプロセスを示すブロツク図である。
ングアルゴリズムに対して領域コードを生成する際の従
来の技術におけるプロセスを示すブロツク図である。
【図12】図12は本発明による好適な実施例を用いる
コーエンサザーンランドのクリツピングアルゴリズムに
対して領域コードを生成させる際のプロセスを示すブロ
ツク図である。
コーエンサザーンランドのクリツピングアルゴリズムに
対して領域コードを生成させる際のプロセスを示すブロ
ツク図である。
100……コンピユータ、110……メインプロセツ
サ、120……メモリ、130……入力装置、140…
…出力装置、150……グラフイツクプロセツサ、16
0……グラフイツクデイスプレイ、200……単一32
ビツトワード、210、220、230……オペラン
ド、212、222、232……データ、214、22
4、234……単一符号ビツト、240、250……バ
ツフアビツト。
サ、120……メモリ、130……入力装置、140…
…出力装置、150……グラフイツクプロセツサ、16
0……グラフイツクデイスプレイ、200……単一32
ビツトワード、210、220、230……オペラン
ド、212、222、232……データ、214、22
4、234……単一符号ビツト、240、250……バ
ツフアビツト。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル・タレル・バノバー アメリカ合衆国、テキサス州78727、オ ースチン、ウイスペリング・バレイ・ド ライブ 4603番地 (56)参考文献 特開 昭61−224037(JP,A)
Claims (2)
- 【請求項1】複数のオペランドを並列に処理する方法で
あって、 a)オペランドの符号ビットと該オペランドに隣接する
オペランドとの間に符号ビットの桁上げによるオーバフ
ローを防止するための少なくとも1つのクリアされたバ
ツフアビツトを配置してワード内に複数のオペランドを
パツクするステツプと、 b)上記ワードを用いて符号付き演算を実行し、その実
行結果を示すパックされたワードを生成するステツプ
と、 c)上記パックされたワード中のバッファビットをクリ
アするステップと、 を具えることを特徴とするデータ処理方法。 - 【請求項2】複数のオペランドを並列に処理するための
装置であって、 a)オペランドの符号ビットと該オペランドに隣接する
オペランドとの間に符号ビットの桁上げによるオーバフ
ローを防止するための少なくとも1つのクリアされたバ
ッファビツトを配置してワード内に複数のオペランドを
パツクするための手段と、 b)上記ワードを用いて符号付き算術演算を実行し、そ
の実行結果を示すパックされたワードを生成するための
手段と、 c)上記パックされたワード中のバッファビットをクリ
アするための手段と を具えることを特徴とするデータ処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61435390A | 1990-11-15 | 1990-11-15 | |
US07/614353 | 1990-11-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05204605A JPH05204605A (ja) | 1993-08-13 |
JP2601960B2 true JP2601960B2 (ja) | 1997-04-23 |
Family
ID=24460888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3257058A Expired - Lifetime JP2601960B2 (ja) | 1990-11-15 | 1991-09-09 | データ処理方法及びその装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5909552A (ja) |
EP (1) | EP0486143A3 (ja) |
JP (1) | JP2601960B2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US5651121A (en) * | 1992-12-18 | 1997-07-22 | Xerox Corporation | Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand |
US5408670A (en) * | 1992-12-18 | 1995-04-18 | Xerox Corporation | Performing arithmetic in parallel on composite operands with packed multi-bit components |
US5689592A (en) * | 1993-12-22 | 1997-11-18 | Vivo Software, Inc. | Parallel processing of digital signals in a single arithmetic/logic unit |
EP0661624A1 (en) * | 1994-01-04 | 1995-07-05 | Sun Microsystems, Inc. | Pseudo-superscalar technique for video processing |
WO1996017291A1 (en) * | 1994-12-02 | 1996-06-06 | Intel Corporation | Microprocessor with packing operation of composite operands |
US5598362A (en) * | 1994-12-22 | 1997-01-28 | Motorola Inc. | Apparatus and method for performing both 24 bit and 16 bit arithmetic |
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 |
US5940859A (en) | 1995-12-19 | 1999-08-17 | Intel Corporation | Emptying packed data state during execution of packed data instructions |
US6792523B1 (en) * | 1995-12-19 | 2004-09-14 | Intel Corporation | Processor with instructions that operate on different data types stored in the same single logical register file |
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 |
US6377970B1 (en) | 1998-03-31 | 2002-04-23 | Intel Corporation | Method and apparatus for computing a sum of packed data elements using SIMD multiply circuitry |
US6295561B1 (en) * | 1998-06-30 | 2001-09-25 | At&T Corp | System for translating native data structures and specific message structures by using template represented data structures on communication media and host machines |
GB2362731B (en) * | 2000-05-23 | 2004-10-06 | Advanced Risc Mach Ltd | Parallel processing of multiple data values within a data word |
US7430578B2 (en) * | 2001-10-29 | 2008-09-30 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed byte data |
EP1318457B1 (en) * | 2001-12-07 | 2007-07-18 | Renesas Technology Europe Limited | Bus bridge with a burst transfer mode bus and a single transfer mode bus |
WO2013095515A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Packed data operation mask register arithmetic combination processors, methods, systems, and instructions |
US20230075534A1 (en) * | 2021-08-19 | 2023-03-09 | International Business Machines Corporation | Masked shifted add operation |
EP4235399A1 (en) * | 2022-02-28 | 2023-08-30 | Barcelona Supercomputing Center - Centro Nacional de Supercomputación (BSC-CMS) | Method for the computation of a narrow bit width linear algebra operation |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4942516A (en) * | 1970-12-28 | 1990-07-17 | Hyatt Gilbert P | Single chip integrated circuit computer architecture |
US4371923A (en) * | 1970-12-28 | 1983-02-01 | Hyatt Gilbert P | Computer system architecture |
US4064556A (en) * | 1975-06-23 | 1977-12-20 | Sperry Rand Corporation | Packed loop memory with data manipulation capabilities |
US4321668A (en) * | 1979-01-02 | 1982-03-23 | Honeywell Information Systems Inc. | Prediction of number of data words transferred and the cycle at which data is available |
JPS57164334A (en) * | 1981-04-02 | 1982-10-08 | Nec Corp | Operating device |
US4598365A (en) * | 1983-04-01 | 1986-07-01 | Honeywell Information Systems Inc. | Pipelined decimal character execution unit |
US4569016A (en) * | 1983-06-30 | 1986-02-04 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system |
US4595911A (en) * | 1983-07-14 | 1986-06-17 | Sperry Corporation | Programmable data reformat system |
JPS61224037A (ja) * | 1985-03-29 | 1986-10-04 | Fujitsu Ltd | 多ビツト入力演算素子を用いた演算方式 |
US4780842A (en) * | 1986-03-26 | 1988-10-25 | Alcatel Usa, Corp. | Cellular processor apparatus capable of performing floating point arithmetic operations |
GB2188806B (en) * | 1986-04-05 | 1989-11-01 | Burr Brown Ltd | Method and apparatus for improved interface unit between analog input signals and a digital signal bus |
USH472H (en) * | 1987-01-12 | 1988-05-03 | Method and apparatus for processing binary-coded/packed decimal data | |
US4914617A (en) * | 1987-06-26 | 1990-04-03 | International Business Machines Corporation | High performance parallel binary byte adder |
US5123091A (en) * | 1987-08-13 | 1992-06-16 | Digital Equipment Corporation | Data processing system and method for packetizing data from peripherals |
US5189636A (en) * | 1987-11-16 | 1993-02-23 | Intel Corporation | Dual mode combining circuitry |
US4878166A (en) * | 1987-12-15 | 1989-10-31 | Advanced Micro Devices, Inc. | Direct memory access apparatus and methods for transferring data between buses having different performance characteristics |
US5068819A (en) * | 1988-06-23 | 1991-11-26 | International Business Machines Corporation | Floating point apparatus with concurrent input/output operations |
US4949246A (en) * | 1988-06-23 | 1990-08-14 | Ncr Corporation | Adapter for transmission of data words of different lengths |
US5237701A (en) * | 1989-03-31 | 1993-08-17 | Ampex Systems Corporation | Data unpacker using a pack ratio control signal for unpacked parallel fixed m-bit width into parallel variable n-bit width word |
US4963867A (en) * | 1989-03-31 | 1990-10-16 | Ampex Corporation | Apparatus for packing parallel data words having a variable width into parallel data words having a fixed width |
US5113516A (en) * | 1989-07-31 | 1992-05-12 | North American Philips Corporation | Data repacker having controlled feedback shifters and registers for changing data format |
JPH03106127A (ja) * | 1989-09-20 | 1991-05-02 | Fujitsu Ltd | 可変長符号化回路 |
JPH03136166A (ja) * | 1989-10-23 | 1991-06-10 | Nec Corp | 演算回路 |
JP3013381B2 (ja) * | 1990-03-28 | 2000-02-28 | ソニー株式会社 | 可変長データの復号装置 |
JP2922571B2 (ja) * | 1990-04-05 | 1999-07-26 | キヤノン株式会社 | データ変換回路 |
US5251321A (en) * | 1990-06-20 | 1993-10-05 | Bull Hn Information Systems Inc. | Binary to binary coded decimal and binary coded decimal to binary conversion in a VLSI central processing unit |
JPH04107013A (ja) * | 1990-08-28 | 1992-04-08 | Ricoh Co Ltd | 可変長符号の符号化回路 |
JPH04116718A (ja) * | 1990-09-07 | 1992-04-17 | Toshiba Corp | 演算装置 |
-
1991
- 1991-09-09 JP JP3257058A patent/JP2601960B2/ja not_active Expired - Lifetime
- 1991-09-30 EP EP19910308961 patent/EP0486143A3/en not_active Withdrawn
-
1993
- 1993-03-16 US US08/032,764 patent/US5909552A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5909552A (en) | 1999-06-01 |
EP0486143A3 (en) | 1993-03-24 |
EP0486143A2 (en) | 1992-05-20 |
JPH05204605A (ja) | 1993-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2601960B2 (ja) | データ処理方法及びその装置 | |
EP0602886B1 (en) | Masks for selecting multi-bit components in a composite operand | |
US6412061B1 (en) | Dynamic pipelines with reusable logic elements controlled by a set of multiplexers for pipeline stage selection | |
US8248422B2 (en) | Efficient texture processing of pixel groups with SIMD execution unit | |
US5862066A (en) | Methods and apparatus for fast check of floating point zero or negative zero | |
EP0395348A2 (en) | Method and apparatus for multi-gauge computation | |
KR19980079671A (ko) | 그래픽 데이터 계산 수행 방법 및 그에 이용되는 데이터 프로세서 | |
KR20220047797A (ko) | 암호화 연산을 위한 코프로세서 | |
EP0602887B1 (en) | Performing arithmetic on composite operands | |
US6036350A (en) | Method of sorting signed numbers and solving absolute differences using packed instructions | |
US5459822A (en) | Sorting processor | |
US4956801A (en) | Matrix arithmetic circuit for processing matrix transformation operations | |
Crow | Evolution of the graphical processing unit | |
US6298365B1 (en) | Method and system for bounds comparator | |
US5402533A (en) | Method and apparatus for approximating a signed value between two endpoint values in a three-dimensional image rendering device | |
US5953240A (en) | SIMD TCP/UDP checksumming in a CPU | |
US5717845A (en) | Method and apparatus for transferring a brush pattern to a destination bitmap | |
JPH0869538A (ja) | アウトコードを用いてクリップチェックを実行する方法および装置 | |
US5483627A (en) | Preprocessing pipeline for real-time object based graphics systems | |
JPS6314378B2 (ja) | ||
JPH10293853A (ja) | クリップ処理装置 | |
JPS5856040A (ja) | デ−タ処理装置 | |
JPH03268024A (ja) | マイクロプロセッサ、情報処理装置及びそれを用いた図形表示装置 | |
Watters | Shader-Like Computations in WebGL for Advanced Graphics and General Purposes | |
Wu et al. | The logical representation of bincode and its applications in manipulating binary images |