JPH06186956A - コンパイルされたラスタ演算コードを生成するための方法および装置 - Google Patents

コンパイルされたラスタ演算コードを生成するための方法および装置

Info

Publication number
JPH06186956A
JPH06186956A JP5167141A JP16714193A JPH06186956A JP H06186956 A JPH06186956 A JP H06186956A JP 5167141 A JP5167141 A JP 5167141A JP 16714193 A JP16714193 A JP 16714193A JP H06186956 A JPH06186956 A JP H06186956A
Authority
JP
Japan
Prior art keywords
logical operation
code
code segment
boolean
coefficient
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.)
Withdrawn
Application number
JP5167141A
Other languages
English (en)
Inventor
Charles Whitmer
ウィットマー チャールズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JPH06186956A publication Critical patent/JPH06186956A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 複数のビットマップについて行うべき論理演
算を実現する為のコンピュータコードを生成する方法及
びシステムを提供する。 【構成】 ブール演算を用いて複数の項を有するブール
式を指定する。各項のブール演算のそれぞれを実現すえ
るコードセグメントを生成する。ビットBLT(ビット
ブロック転送)ルーテインを実行するときに論理演算お
よび複数のビットマップを指定する。ビットBLTルー
テインは指定された論理演算を実現するために、どの生
成コードセグメントが必要であるかを確定する。次に確
定したコードセグメントを検索し、論理演算を実現する
コンピュータコードを形成するためにこれを組み合わせ
る。次いで、論理演算についてビットBLTを達成すた
めにコンピュータコードを実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、一般にビットマップ
を表示するためのコンピュータシステムに関し、特に、
複数のビットマップを組み合わせるための方法および装
置に関する。
【0002】
【従来の技術】パーソナルコンピュータの出力装置に
は、ビットマップグラフィックス装置を備えたものが多
い。ビットマップグラフィックス装置は、通常、表示メ
モリを有するグラフィックスアダプタと、表示スクリー
ンとを備えている。このビットマップグラフィックス装
置は、表示すべきビットマップを入力し、そして、その
ビットマップを表示スクリーン上に表示する。ビットマ
ップは、表示スクリーン上の矩形領域に表示される画像
を定義するビットのマトリックスである。ビットマップ
中のそれぞれのビットが、表示スクリーン上の1画素
(ピクセル)に対応する。コンピュータ出力データを表
示するために、ビットマップグラフィックス装置は、表
示スメモリに格納されたビットマップを読みだし、表示
スクリーン上に対応する画像を描く。表示メモリ中のビ
ットが1であると、ビットマップグラフィックス装置
は、表示スクリーン上の対応するビクセルをオンする。
表示メモリ中のビットが0であると、ビットマップグラ
フィックス装置は、表示スクリーン上の対応するピクセ
ルをオフする。例えば新しいビットマップをローディン
グして表示メモリの内容を変えることによって、コンピ
ュータプログラムは、表示画面上の変更を実行できる。
【0003】コンピュータプログラムは、通常、プログ
ラムメモリ内にビットマップを生成し、次に、そのビッ
トマップを表示メモリにコピーする。ビットマップがと
ても大きくなって百万またはそれ以上のビットを含む場
合があることから、プログラムメモリから表示メモリへ
のコピーは、比較的多く時間がかかり得るものである。
性能を向上させ、かつコンピュータプログラミングを容
易にするため、一般のグラフィックスに重点を置いたオ
ペレーティングシステムは、プログラムメモリから表示
メモリへビットマップをコピーするために最適化された
ルーチンを設けている。これらのルーチンは、ビットブ
ロック・トランスファ(ビットBLT)ルーチンとして
知られている。一般に、これらのビットBLTルーチン
は、ソースビットマップおよび普通は表示メモリ内にあ
るデスティネーションビットマップを、入力として読み
出すことができる。これらのビットBLTルーチンは、
ソースビットマップをデスティネーションビットマップ
に効率的にコピーする。ビットBLTルーチンは、1度
に1ビットではなく、1度に1コンピュータワードのデ
ータをコピーするために最適化されている。コンピュー
タワードとは、そのコンピュータが、単位として演算を
行うビットの数である。コンピュータワードは、一般
に、8,16または32ビットで構成されている。
【0004】図1および図2は、いろいろなビットBL
Tルーチンの結果を示す表示メモリを示す図である。図
1は、ビットBLTルーチンを実行する以前の表示メモ
リを示しており、図2は、ビットBLTルーチンを実行
した後の表示メモリを示している。図3および図4は、
それぞれ、図1および図2に対応する表示画面の図であ
る。図5は、矢印の画像のソースビットマップの例を示
す図である。アウトラインをつけた矢印のビットマップ
201は、縦32ビット×横32ビットのビットのマト
リックスでなっている。このアウトラインをつけた矢印
のビットマップ201を表示スクリーン上の記憶場所1
11に表示するために、プログラムは、ビットBLTル
ーチンを呼び出すときに、アウトラインをつけた矢印の
ビットマップ201がソースビットマップであることを
指定し、かつ、表示メモリビットマップ101が表示ス
クリーンの場所111に対応するデスティネーションビ
ットマップであることを指定する。次に、ビットBLT
ルーチンは、アウトラインをつけた矢印のビットマップ
201を表示メモリビットマップ101にコピーする。
アウトラインをつけた矢印のビットマップ201が表示
メモリビットマップ101にコピーされると、表示メモ
リビットマップ101の32×32ビットマトリックス
の各ビットは、表示メモリビットマップ105によって
示すようにアウトラインをつけた矢印のビットマップ2
01によってオーバライトされる。実線の矢印のビット
マップ202を表示スクリーン上の記憶場所112に表
示するためには、プログラムは、実線矢印ビットマップ
202がソースビットマップであることを指定し、か
つ、表示メモリビットマップ102が表示スクリーンの
場所112に対応するデスティネーションビットマップ
であることを指定する。次に、ビットBLTルーチン
は、実線矢印ビットマップ202を表示メモリビットマ
ップ102にコピーする。表示メモリビットマップ10
2の32×32ビットマトリックスの各ビットは、表示
メモリビットマップ106によって示すように実線矢印
ビットマップ202によってオーバライトされる。
【0005】場合によっては、プログラムが、透明な矢
印を表示しようとすることがある。透明な矢印の一例
を、表示スクリーン上の場所117に表示して示す。こ
の透明な矢印とは、下にあるスクリーン表示が、矢印の
輪郭を除いてそのままにされる矢印のことである。この
機能を設定するために、一般的なビットBLTルーチン
は、ビットマップをコピーすることに加えて、ソースお
よびデスティネーションビットマップについてブール論
理演算をビット毎に行うことを可能にしている。例え
ば、場所117に示したような透明な矢印を生成するた
めには、プログラムは、ビットBLTルーチンを呼び出
すときに、ソースビットマップとしての輪郭矢印ビット
マップ201と、デスティネーションビットマップとし
ての表示メモリビットマップ103と、AND演算とを
指定する。ビットBLTルーチンは、輪郭矢印ビットマ
ップ201から各ビットと表示メモリビットマップ10
3から対応するビットとを検索し、これらのビットにつ
いてAND演算を行い、その結果を表示メモリビットマ
ップ103に格納して、表示メモリビットマップ107
を得る。ソースおよびデスティネーションビットマップ
についてコピーおよびブール演算を行うビットBLTル
ーチンは、大きなフレキシビリティーをもたらすもので
あるが、コンピュータグラフィックス演算の中には、こ
れらのビットBLTルーチンを2回以上呼び出すことを
必要とするものがある。例えば、プログラムが場所11
8に示したような矢印を表示するものとすれば、プログ
ラムは、まず、ソースビットマップとしての実線矢印ビ
ットマップ202は、デスティネーションビットマップ
としての表示メモリビットマップ104と、AND演算
とを指定してビットBLTルーチンを呼び出す。次に、
プログラムは、ソースビットマップとしての矢印ビット
マップ203と、デスティネーションビットマップとし
ての表示メモリビットマップ104と、EXCLUSI
VE−OR演算とを指定してビットBLTルーチンを呼
び出す。ビットBLTルーチンを2回呼び出すことは、
デスティネーションビットマップ108における各ビッ
トが、2回読み出され、かつ、書き込まれる結果とな
る。デスティネーションビットマップが大きい場合、各
ビットを2回読みだしかつ書き込むことは、受け入れ難
い結果となり得る。
【0006】大きなビットマップをコピーすることが高
コストとなり得ることから、一般のビットBLTルーチ
ンは、デスティネーションビットマップおよびブール演
算と合わせて、2つのソースビットマップを指定できる
ように生成されてきた。例えば、場所118にこの矢印
を生成するためには、呼び出しをするプログラムは、第
1のソースビットマップ(S1 )としての実線矢印ビッ
トマップ202と、第2のソースビットマップ(S2
としての矢印ビットマップ203は、デスティネーショ
ンビットマップ(D)としての表示メモリビットマップ
104とを、S 1 とDの論理積をとることおよびその結
果とS2 の排他的論理和をとることとを特定するブール
演算と共に、指定することになる。標準的なブール代数
において、このファンクションは、
【0007】
【数6】
【0008】USIVE−OR演算子を表す。任意の数
のソースビットマップについてブール演算を設定するビ
ットBLTルーチンを開発することが可能であるが、実
際には、ビットBLTルーチンは、一般に、2つのソー
スビットマップしかサポートできない。2つのソースビ
ットマップが指定された場合、3つのビットマップ
1 ,S2 ,Dを、ブール演算をもちいて256通りに
組み合わせることができる。この3つのビットマップを
組み合わせるそれぞれの方法を、論理演算またはラスダ
演算と呼ぶ。
【0009】
【表1】
【0010】表1は、S1 ,S2 およびDビットマップ
をどのように組み合わせし得るかを指定する256通り
の論理演算の部分集合を示している。“ブール関数”と
題する列は、対応する結果を生成するビットマップおよ
びブール演算子でなるブール関数を示す。
【0011】
【表2】
【0012】例えば、表示メモリビットマップ108を
生成するために、プログラムは、ビットストリング“0
1101100”(16進数 6CH)を行うべき論理
演算として指定する。この論理演算6CHは、S1 ,S
2 およびDの値の8つの可能な組み合わせのそれぞれに
ついての結果を指定している。表2は、入力されたビッ
トマップの値および論理演算6CHに対応するブール関
数によって得られる中間および最終結果を示している。
【0013】
【表3】
【0014】表3は、論理演算6CHを実行するビット
BLTルーチンの手続きを示している。変数 Height は
各ビットマップにおける行の数を表し、変数Width はワ
ード幅で分割された各ビットマップのビットの列の数を
表す。この例においては、各ビットマップの幅は、整数
のコンピュータワードとして仮定されている。
【0015】
【表4】
【0016】表4は、論理演算6CHを実行するIntel
80386アセンブラ言語手続を示している。一般的な
従来技術のビットBLTルーチンには、256通りの論
理演算のそれぞれを実行するために、別個のコードのセ
クションを備えたものがある。しかし、ビットBLTル
ーチンの実施に際しては、コードの1部がすべての論理
演算について共通なものであり、また、このコードの1
部が論理演算について特有であることが認識されている
ものがある。表4に示すように、3つの中間のステート
メントは、論理演算6CHの論理演算固有コードであ
る。このコードにおいて、これら3つのステートメント
は、axレジスタをS1 ビットマップでロードし、Dビ
ットマップとの論理積をaxレジスタにとり、そして、
2 ビットマップとaxレジスタの排他的論理和をと
る。この論理演算固有コードに先行する5つのステート
メントおよび後続する5つのステートメントは、ビット
マップを通じてのループ動作を制御するものであり、す
べての論理演算に共通である。パフォーマンスを向上さ
せるために、従来技術のビットBLTルーチンは、25
6論理演算のそれぞれについて論理演算固有コードを表
に格納し、共通コードを1コピーだけ格納する。6CH
等の論理演算指定を伴ってビットBLTルーチンを呼び
出されると、ビットBLTルーチンは、表から適切な論
理演算固有コードを検索し、この検索したコードを共通
コードと組み合わせることによって、その論理演算を実
施するためのコードを生成する。次に、ビットBLTル
ーチンは、その論理演算を行うために、生成されたコー
ドを実行する。実行するコードを生成するこのプロセス
をビットBLTコンパイルという。
【0017】
【発明が解決しようとする課題】これらの従来技術のビ
ットBLTルーチンは、実行時において効率的なコード
を生成する。しかし、これらのルーチンは、256論理
演算固有コードセグメントの記憶領域を必要とする。さ
らに、これらの256コードセグメントを開発し、テス
トするためには、多大なプログラミングの労力が費やさ
れ得る。本発明の目的は、ビットBLTルーチンのため
の効率的なコードを生成する方法およびシステムを提供
することにある。本発明の別の目的は、格納する必要の
あるコードセグメントの数を削減したビットBLTルー
チンを開発する方法およびシステムを提供することにあ
る。本発明の別の目的は、複数のビットマップについて
論理演算を行う装置を提供することにある。
【0018】
【課題を解決するための手段】本発明を以下においてよ
り詳細に説明するにしたがって明らかとなるこれらおよ
び他の課題は、複数のビットマップについて行われる論
理演算を実施するためのコンピュータコードを生成する
方法およびシステムによって達成される。好ましい実施
例においては、ブール式を、ブール演算によって定義さ
れる複数の項を有するものとして指定する。これらの項
のブール演算のそれぞれを実施するコードセグメントが
生成される。ビットBLTルーチンを実行する場合、ひ
とつの論理演算と複数のビットマップが指定される。ビ
ットBLTルーチンは、指定された論理演算を実施する
ために、どの生成されたコードセグメントが必要である
かを確定する。次に、確定されたコードセグメントが、
検索され、論理演算を実施するコンピュータコードを形
成するために組み合わせられる。そして、論理演算でビ
ットBLTを実施するために、このコンピュータコード
を実行することができる。
【0019】
【実施例】本発明は、ルーチンの記憶装置の必要を削減
し、かつそのルーチンのより高速な展開をもたらすビッ
トBLTルーチンを実現するための方法およびシステム
を提供する。好ましい実施例においては、2つのソース
ビットマップと1つのデスティネーションビットマップ
に対応できるビットBLTルーチンが、従来技術のシス
テムにおいてもちいられた256論理演算固有コードセ
グメントではなく、8コードセグメントと1つのマッピ
ングテーブルとを格納する。本発明は、256通りの論
理演算のそれぞれは、以下の式で表し得ることを認識す
るものである。
【0020】
【数7】
【0021】USIVE−OR演算子を表し、・または
並列配置はブールAND演算子を表し、論理数1,
1 ,・・・、S1 2 Dは、項0〜7として参照され
るこの式の8つの項である。256論理演算のそれぞれ
を、係数の固有な集合をもちいて式1によって表すこと
ができる。例えば、論理演算6CHを、係数α0 =0,
α1 =0,α2 =1,α3 =0,α4 =0,α5 =1,
α6 =0,α7 =0(001001002または24
H)の集合によって表すことができる。以下の式は、論
理演算6CHを、係数24Hをもちいて式1で表したも
のを示す.
【0022】
【数8】
【0023】値0との他の値の論理積は0となるから、
上の式を以下の式に簡単にすることができる。
【0024】
【数9】
【0025】256の論理演算のそれぞれについて、そ
の論理演算を生成する係数の一意の集合がある。好まし
い実施例において、本発明は、数式1の各項についてそ
れぞれ1つ、すなわち8個のコードセグメントを格納
し、256の論理演算のそれぞれに対応する係数を、係
数表と呼ばれるマッピングテーブルに格納する。論理演
算を受けとると、ビットBLTルーチンは、その論理演
算指定に対応する係数を係数表から検索し、1に等しい
係数を各項に対応するコードセグメントを検索し、その
検索したコードセグメントを共通コードと組み合わせ
て、コンパイルされたコードを生成する。
【0026】
【表5】
【0027】表5は、数式1の8つの項のそれぞれに対
応する8つのIntel 80386アセンブラ言語コードセ
グメントを示している。共通コードは、論理演算固有コ
ードが実行される依然にaxレジスタがクリアされるこ
とを除いて、従来のシステムでもちいられたものと同じ
である。上述の例において、論理演算6CHを受けとる
と、ビットBLTルーチンは、6CHを係数表への索引
としてもちいて、数式1に代入される係数の集合を表す
値24Hを検索する。次に、ビットBLTルーチンは、
項2および項5に対するコードセグメントを検索し(係
数24Hは、係数α2 およびα5 が1に設定されている
ことを示す)、これらのコードセグメントを共通コード
と組み合わせて、コンパイルされたコードを形成する。
表6は、論理演算6CHに対して生成された論理演算固
有コードを示している。好ましい実施例において、本発
明は、数式1の各項において1つづつ、8つの代替コー
ドセグメントも格納する。ビットBLTルーチンがコー
ドセグメントを検索する場合、コンパイルされたコード
の第1のコードセグメントは、代替コードセグメントで
ある。これらの代替コードセグメントは、コンバイルさ
れたコードの一部として実行される最初のコードセグメ
ントとなるように最適化されている。すなわち、第1の
コードセグメントは、項の値の排他的論理和をaxレジ
スタになるのではなく、その項の値をaxレジスタに格
納する。したがって、係数がコードセグメントが1つも
もちいられずかつ結果が0となることを示す“0000
0000”である場合を除いて、axレジスタを共通コ
ードのゼロ値でコードする必要はない。また、代替コー
ドセグメントをもちいることによって、より小さなコン
パイルされたコードおよび向上したパフォーマンスが得
られる。表5′は、この8つの代替コードセグメントに
対するIntel 80386アセンブラ言語コードを示して
いる。
【0028】
【表6】
【0029】
【表7】
【0030】図6は、ビットBLTルーチンによって実
行されるコンパイルされたコードを生成するためのルー
チンのフロー図である。このルーチンは、論理演算を入
力し、その論理演算を実施するコンパイルされたコード
を生成する。表6は、論理演算が6CHである場合に生
成されるコンバイルされたコードを示している。このル
ーチンは、共通コードと、コードセグメント表と、係数
表とを利用する。ステップ401において、このルーチ
ンは、論理演算によって示された係数表から係数を検索
する。この係数表は、256の論理演算のれぞれについ
て1つのエントリを含んでいる。各エントリは、数式1
の論理演算を実施する係数を含んでいる。
【0031】
【表8】
【0032】ステップ402において、ルーチンは、表
7に示すような先行共通コードを検索し、そのコードを
コンパイルされたコードの一部として格納する。ステッ
プ403〜408において、このルーチンはループし、
検索された係数のそれぞれが0であるかまたは1である
かを確定する。係数が1である場合、ルーチンは、表5
のコードセグメント表から対応するコードセグメントを
検索し、検索されたコードセグメントをコンパイルされ
たコードに加える。ステップ403において、ルーチン
は、インデスクiを0に初期設定する。インデクスi
は、係数および対応するコードセグメントを参照するた
めにもちいられる。ステップ404において、係数αi
が1に等しい場合、その係数に対するコードセグメント
が検索され、ルーチンは、ステップ405に継続し、そ
うでない場合は、ステップ407に継続する。ステップ
405において、ルーチンは、係数αi に対するコード
セグメントを、コードセグメント表から検索する。ステ
ップ406において、ルーチンは、検索したコードセグ
メントをコンパイルされたコードに加える。ステップ4
07において、ルーチンは、インデスクiをインクリメ
ントして、次の係数をポイントする。ステップ408に
おいて、インデクスiが8に等しい場合、すべての係数
が処理されており、ルーチンはステップ409に継続
し、そうでない場合は、ルーチンはステップ404にル
ープして次の係数を検査する。ステップ409におい
て、ルーチンは、表7に示すような後続共通コードを検
索し、それをコンパイルされたコードに加える。そし
て、ルーチンは最初に戻る。
【0033】
【表9】
【0034】実施例の1つにおいては、表8に示すアル
ゴリズムによって係数表を生成する。このアルゴリズム
は、256の可能な係数のそれぞれに対して一意の8ビ
ット論理演算を生成し、そして、その論理演算によって
示される係数表の係数を格納する。論理演算固有コード
が生成されると、その論理演算を、対応する係数を検索
するための係数表への索引としてもちいる。好ましい実
施例においては、表7の先行共通コードが、論理演算固
有コードによって実際に利用されるビットマップだけを
ロードするように最適化されている。例えば、論理演算
3CHが指定されると、係数6CHが係数表から検索さ
れる。これにより生じる式を最も簡単にすると、
【0035】
【数10】
【0036】となる。この式はDビットマップを利用し
ないから、先行共通コードは、Dビットマップからのビ
ットをdxレジスタにロードすることを必要としない。
したがって、係数5,6または7が設定された場合のみ
Dビットマップからのビットがロードされるように先行
共通コードを適合させることができる。同様に、S1お
よびS2ビットマップからのビットは、それらに対応す
る係数が設定された場合のみ、ロードされる必要があ
る。また、一般的なビットBLTルーチンは、コンパイ
ルされたコードを実行する前に、S1,S2およびDビ
ットマップの妥当性を検査する。しかし、論理演算がS
1 およびS2 ビットマップのローディングを必要としな
い場合は、この妥当性検査を行わなくてもよい。Dビッ
トマップの妥当性検査は、結果を後続共通コードに格納
する際にそれにアクセスすることから、一般に行われる
必要がある。図6は、本発明を実施するハードウェアの
概略図である。このハードウェアは、論理演算レジスタ
501と、係数表読みだし専用メモリ(ROM) 502と、
並列/直列シフトレジスタ503,504および505
と、ANDゲート511〜517と、パリティージェネ
レータ520と、直列/並列シフトレジスタ521とを
備えている。論理演算レジスタ501は、256×8ビ
ットROMである係数表ROM501のアドレスを出力
する(α0 ・・・α7 )。この係数表ROMは、論理演
算に対応するアドレスにおける表8の擬似コードによっ
て生成される数式1の係数の集合を含んでいる。データ
ラインα0 は、パリティージェネレータ520に入力さ
れ、データラインα1 〜α7 は、それぞれ、ANDゲー
ト511〜517に入力される。シフトレジスタ503
からのデータラインS1 は、ANDゲート511,51
4,515および517に入力する。シフトレジスタ5
04からのデータラインS2 は、ANDゲート512,
514,516および517に入力する。シフトレジス
タ505からのデータラインDは、ANDゲート51
3,515,516および517に入力する。ANDゲ
ート511〜517からの出力は、パリティージェネレ
ータ520に入力する。パリティージェネレータ520
の出力は、シフトレジスタ521に入力する。
【0037】動作に際して、論理演算レジスタ501
は、行うべき論理演算でロードされる。係数表ROM5
02は、その論理演算を対応する係数に変換する。シフ
トレジスタ503,504および505は、ビットマッ
プS1 ,S2 およびDからのデータでそれぞれロードさ
れる。ANDゲート511〜517は、数式1の項のう
ちの7つの結果を生成し、これがパリティージェネレー
タ520に入力される。8番目の項は、パリティージェ
ネレータ520に直接入力されるa0 データラインによ
って生成される。パリティージェネレータ520は、数
式1の排他的論理和演算と等価のことを行う。パリティ
ージェネレータ520の出力は、シフトレジスタ521
に入力される。シフトレジスタ503,504,505
をそれぞれビットマップS1 ,S2 およびDからのデー
タで順次ロードすることによって、論理演算が行われ
る。そして、シフトレジスタ503,504,505
は、順次、データラインS1 ,S2 およびDにシフトさ
れる。シフトレジスタ503,504,505のシフト
毎に、パリティージェネレータ520の出力は、論理演
算レジスタ501に格納された論理演算の結果である。
パリティージェネレータ520の出力は、論理演算の結
果を格納するシフトレジスタ521に入力され、これを
表示メモリに書き込むことができる。別の実施例におい
ては、この係数マッピングをソフトウェアにおいて行っ
ており、係数表ROM502は、必要とされない。むし
ろ、論理演算レジスタ501が、直接、係数によってロ
ードされる。
【0038】好ましい実施例においては数式1の関数を
もちいているが、当業者においては、8項でなる他の等
式も同様にもちいることができることを理解するところ
である。例えば、以下の等式をもちいることができる。
【0039】
【数11】
【0040】ここでλ0 ・・・λ7 は係数を表し、+は
ブールINCLUSIVE−OR演算子を表し、′はブ
ール相補演算子を示し、並列配置はブールAND演算子
を示す。数式4の各項に対してコードセグメントが生成
される。数式4をもちいれば、係数を生成するための変
換は必要ない。これらの係数は、論理演算に対応する。
数式4をもちいる場合、類似の最適化をもちいて、特定
のビットマップをロードするか否かを確定することがで
きる。本発明を好ましい実施例について説明してきた
が、本発明は、これらの実施例によって限定されるもの
ではない。例えば、コンパイルされたコードを各平面に
適用することによって、本発明をカラービットマップ(m
ultiplanar) にもちいることができる。また、当業者に
おいては、本発明の方法を、3つ以上のソースビットマ
ップをもちいるビットBLTルーチンに適用し得ること
を認識するところである。例えば、3つのソースビット
マップを伴うビットBLTルーチンは、従来技術の方法
が利用するであろう65,536の論理演算固有コード
セグメントではなく、16項の等式をもちい、16のコ
ードセグメントを格納する。本発明の本旨のうちにある
変更は、当業者には明白である。本発明の範囲は、請求
の範囲によって定義される。
【図面の簡単な説明】
【図1】多様なビットBLT演算の結果を示す表示メモ
リの図である。
【図2】多様なビットBLT演算の結果を示す表示メモ
リの図である。
【図3】図1に対応する表示スクリーンの図である。
【図4】図2に対応する表示スクリーンの図である。
【図5】矢印の画像のソースビットマップの例を示す図
である。
【図6】ビットBLTルーチンによって実行されるコン
パイルされたコードを生成するためのルーチンのフロー
図である。
【図7】本発明を実施したハードウェアの概略図であ
る。
【符号の説明】
501 論理演算レジスタ 502 係数表読みだし専用メモリ(ROM) 503,504,505 並列/直列シフトレジスタ 511〜517 ANDゲート 520 パリティージェネレータ 521 直列/並列シフトレジスタ

Claims (52)

    【特許請求の範囲】
  1. 【請求項1】 複数のビットマップについて行われる論
    理演算を実現するためのコンピュータコードを生成する
    方法において、 複数の項を有するブール式を指定し、 該ブール式の各項についてその項を実現するコードセグ
    メントを生成し、 生成された各コードセグメントをコードセグメント表に
    格納し、かつコンピュータプログラムの実行中におい
    て、 論理演算をリクエストし、 リクエストされた論理演算を実現するためにどの格納さ
    れたコードセグメントが必要であるかを確定し、 確定されたコードセグメントをコードセグメント表から
    検索し、 リクエストされた論理演算を実現するコンピュータコー
    ドを生成するために検索したコードセグメントを組み合
    わせる各段階を含むことを特徴とする前記方法。
  2. 【請求項2】 各項が対応する係数を有し、論理演算が
    係数の集合にマップされ、どの格納されたコードセグメ
    ントが必要であるかを確定する段階が係数のマップされ
    た集合に基づいて確定をすることを特徴とする請求項1
    記載の方法。
  3. 【請求項3】 係数表を生成する段階をさらに含み、ど
    の格納されたコードセグメントが必要であるかを確定す
    る段階が、リクエストされた論理演算を係数表への索引
    としてもちいて係数表から係数のマップされた集合を検
    索する段階を含むことを特徴とする請求項2記載の方
    法。
  4. 【請求項4】 係数表を生成する段階が係数の各集合に
    ついてその係数の集合が表す論理演算を確定し、 確定した論理演算を係数表への索引としてもちいて該係
    数の集合を係数表に格納する各段階を含むことを特徴と
    する請求項3記載の方法。
  5. 【請求項5】 指定されたブール式が 【数1】 ルEXCLUSIVE−OR演算子を表し、・および並
    列配置はブールAND演算子を表し、論理数1,S1
    ・・・、S1 2 Dはこの該式の項であり、S1,S2
    およびDはビットマップであり、かつ係数表を生成する
    段階が:係数の集合の各係数がαi によって表され、た
    だしi=1,2・・・8である係数の各集合について、 保管された論理演算数を0に初期設定し、 for S1 = the values of 1 and 0, for S2 = the values of 1 and 0, for D = the values of 1 and 0, 係数の該集合およびS1 ,S2 およびDの値をもちいて
    該ブール式を評価し、 保管された論理演算数に2を乗じ、 評価されたブール式の結果を乗算された保管論理演算に
    加え、 保管論理演算数を係数表への索引としてもちいて係数の
    該集合を係数表に格納する各段階を含むことを特徴とす
    る請求項3記載の方法。
  6. 【請求項6】 指定されたブール式がビットマップ上で
    行い得るすべての可能な論理演算を記述し、指定された
    式の項の数が可能な論理演算の総数より少ないことを特
    徴とする請求項1記載の方法。
  7. 【請求項7】 指定されたブール式が 【数2】 ルEXCLUSIVE−OR演算子を表し、・および並
    列配置はブールAND演算子を表し、論理数1,S1
    ・・・、S1 2 Dは該式の項であり、S1 ,S 2 およ
    びDはビットマップであることを特徴とする請求項1記
    載の方法。
  8. 【請求項8】 指定されたブール式が F(S1,S2,D) =λ0S1S2D +λ1S1S2D′+ λ2S1S2′D + λ3S1S2′D′+ λ4S1′S2D + λ5S1′S2D′+ λ6S1′S2′D + λ7S1′S2′D′ であり、ただし、λ0 ・・・λ7 はこの式の論理演算固
    有係数であり、+はブールINCLUSIVE−OR演
    算子を表し、並列配置はブールAND演算子を表し、′
    はブール相補演算子を表し、S1,S2 およびDはビット
    マップであることを特徴とする請求項1記載の方法。
  9. 【請求項9】 格納されたコードセグメントが指定され
    たブール式の各項について代替コードセグメントを含
    み、該代替コードセグメントが組み合わされたコードセ
    グメントの第1のコードセグメントとなるように最適化
    されていることを特徴とする請求項1記載の方法。
  10. 【請求項10】 格納されたコードセグメントが結果レ
    ジスタを利用し、代替コードセグメントが、結果レジス
    タの以前の内容についてブール演算を行うことなしに、
    それぞれの項の値を直接結果レジスタに格納することに
    よって各項を実現することを特徴とする請求項9記載の
    方法。
  11. 【請求項11】 各ビットマップが複数のビットを有
    し、生成されたコンピュータコードを、すべての論理演
    算に共通な格納されたコードであってビットマップのビ
    ットをループするための共通格納コードと組み合わせる
    段階を含むことを特徴とする請求項1記載の方法。
  12. 【請求項12】 共通格納コードは、リクエストされた
    論理演算を実施するために必要なビットマップのみをも
    ちいるように最適化されていることを特徴とする請求項
    11記載の方法。
  13. 【請求項13】 共通格納コードは、リクエストされた
    論理演算を実施するために必要なビットマップのみをも
    ちいるように最適化されていることを特徴とする請求項
    11記載の方法。
  14. 【請求項14】 複数のビットマップについて行われる
    論理演算を実現するためのコンピュータコードを生成す
    る方法において、 複数の項を有するブール式を、各項が対応する係数を有
    し、各係数が値を有するように指定し、 該ブール式の各項についてその項を実現するコードセグ
    メントを生成し、 各コードセグメントをコードセグメント表に格納し、か
    つコンピュータプログラムの実行中において、 論理演算をリクエストし、該論理演算を各係数が該ブー
    ル式の1つの項に対応するように係数の集合にマップ
    し、 マップされた係数の集合の対応する係数の値に基づい
    て、リクエストされた論理演算を実現するためにどの格
    納されたコードセグメントが必要であるかを確定し、 確定されたコードセグメントを検索し、 リクエストされた論理演算を実現するコンピュータコー
    ドを生成するために検索したコードセグメントを組み合
    わせる各段階を含むことを特徴とする前記方法。
  15. 【請求項15】 複数の入力について論理演算を実施す
    るためにコンピュータコードを格納する方法において、 該入力について行い得る複数の論理演算を表す式を指定
    する段階であって、該入力について行い得るすべての可
    能な論理演算を該式が記述し、該式が項の数が可能な論
    理演算の総数より少ない複数の項を有するように式を指
    定する前記段階と、 該式の各項について、 その項を実現するコードセグメントを生成し、 各コードセグメントをコードセグメント表に格納する各
    段階とを含むことを特徴とする前記方法。
  16. 【請求項16】 各項が対応する係数を有し、各論理演
    算が係数の集合によって表され、かつ該複数の入力につ
    いて行われる論理演算を指定する段階と、 係数の集合に基づいて、指定された論理演算を実現する
    ためにどの格納されたコードセグメントが必要であるか
    を確定する段階と、 を含むことを特徴とする請求項15記載の方法。
  17. 【請求項17】 係数表を生成する段階をさらに含み、
    どの格納されたコードセグメントが必要であるかを確定
    する段階が、指定された論理演算を係数表への索引とし
    てもちいて係数表から係数の集合を検索する段階を含む
    ことを特徴とする請求項16記載の方法。
  18. 【請求項18】 係数数を生成する段階が係数の各集合
    についてその係数の集合が表す論理演算を確定し、 確定した論理演算を係数表への索引としてもちいて該係
    数の集合を係数表に格納する各段階を含むことを特徴と
    する請求項17記載の方法。
  19. 【請求項19】 各入力が複数のビットを有し、確定し
    たコードセグメントを、すべての論理演算に共通な格納
    されたコードであってビットを通してのルーピングを制
    御するためにもちいられる共通格納コードと組み合わせ
    る段階をさらに含むことを特徴とする請求項16記載の
    方法。
  20. 【請求項20】 共通格納コードは、指定された論理演
    算に必要な入力のみをロードするように最適化されてい
    ることを特徴とする請求項19記載の方法。
  21. 【請求項21】 共通格納コードは、指定された論理演
    算に必要な入力のみを検査するように最適化されている
    ことを特徴とする請求項19記載の方法。
  22. 【請求項22】 指定された式は、複数の入力について
    行い得るすべての可能な論理演算記述することを特徴と
    する請求項15記載の方法。
  23. 【請求項23】 指定された式が 【数3】 ルEXCLUSIVE−OR演算子を表し、・および並
    列配置はブールAND演算子を表し、論理数1,S1
    ・・・、S1 2 Dは該式の項であり、S1 ,S 2 およ
    びDは入力であることを特徴とする請求項15記載の方
    法。
  24. 【請求項24】 指定された式が F(S1,S2,D) =λ0S1S2D +λ1S1S2D′+ λ2S1S2′D + λ3S1S2′D′+ λ4S1′S2D + λ5S1′S2D′+ λ6S1′S1′D + λ7S1′S1′D′ であり、ただし、λ0 ・・・λ7 はこの式の論理演算固
    有係数であり、+はブールINCLUSIVE−OR演
    算子を表し、並列配置はブールAND演算子を表し、′
    はブール相補演算子を表し、S1,S2 およびDはビット
    マップであることを特徴とする請求項15記載の方法。
  25. 【請求項25】 格納されたコードセグメントが指定さ
    れた式の各項について代替コードセグメントを含み、該
    代替コードセグメントが生成されたコンピュータコード
    において第1のコードセグメントとなるように最適化さ
    れていることを特徴とする請求項15記載の方法。
  26. 【請求項26】 格納されたコードセグメントが結果レ
    ジスタを利用し、最適化が、結果レジスタの以前の内容
    について演算を行うことなしに直接結果レジスタに格納
    することを含むことを特徴とする請求項25記載の方
    法。
  27. 【請求項27】 複数の入力に対する論理演算を実現す
    るためにコンピュータコードを生成する方法において、 該入力について行い得る複数の論理演算を表す式を該式
    が複数の項を有するように指定し、 該式の各項について、その項を実現するコードセグメン
    トを生成し、 コンピュータプログラムの実行中において、 論理演算をリクエストし、 リクエストされた論理演算を実現するためにどの生成さ
    れたコードセグメントが必要であるかを確定し、 確定されたコードセグメントを検索し、 リクエストされた論理演算を実現するコンピュータコー
    ドを生成するために検索したコードセグメントを組み合
    わせる各段階を含むことを特徴とする前記方法。
  28. 【請求項28】 各項が対応する係数を有し、論理演算
    が式の係数の集合を表し、どの生成されたコードセグメ
    ントが必要であるかを確定する段階が係数の集合に基づ
    いて確定をすることを特徴とする請求項27記載の方
    法。
  29. 【請求項29】 係数表を生成する段階をさらに含み、
    どの生成されたコードセグメントが必要であるかを確定
    する段階が、リクエストされた論理演算に基づいて係数
    表から係数の集合を検索する段階を含むことを特徴とす
    る請求項27記載の方法。
  30. 【請求項30】 係数表を生成する段階が係数の各集合
    についてその係数の集合が表す論理演算を確定し、 該係数の集合を係数表に格納する各段階を含むことを特
    徴とする請求項29記載の方法。
  31. 【請求項31】 指定された式が複数の入力について行
    い得るすべての可能な論理演算を記述し、指定された式
    の項の数が可能な論理演算の総数より少ないことを特徴
    とする請求項27記載の方法。
  32. 【請求項32】 指定された式が 【数4】 ルEXCLUSIVE−OR演算子を表し、・および並
    列配置はブールAND演算子を表し、論理数1,S1
    ・・・、S1 2 Dは該式の項であり、S1 ,S 1 およ
    びDは複数の入力を表すビットマップであることを特徴
    とする請求項27記載の方法。
  33. 【請求項33】 指定された式が F(S1,S2,D) =λ0S1S2D +λ1S1S2D′+ λ2S1S2′D + λ3S1S2′D′+ λ4S1′S2D + λ5S1′S2D′+ λ6S1′S2′D + λ7S1′S2′D′ であり、ただし、λ0 ・・・λ7 はこの式の論理演算固
    有係数であり、+はブールINCLUSIVE−OR演
    算子を表し、並列配置はブールAND演算子を表し、′
    はブール相補演算子を表し、S1,S2 およびDは複数の
    入力を表すビットマップであることを特徴とする請求項
    27記載の方法。
  34. 【請求項34】 生成されたコードセグメントが指定さ
    れた式の各項について代替コードセグメントを含み、該
    代替コードセグメントが組み合わされたコードセグメン
    トの第1のコードセグメントとなるように最適化されて
    いることを特徴とする請求項27記載の方法。
  35. 【請求項35】 生成されたコードセグメントが、結果
    レジスタの以前の内容についてブール演算を行うことな
    しに、項の値を直接結果レジスタに格納することを特徴
    とする請求項34記載の方法。
  36. 【請求項36】 各入力が複数のビットを有し、生成さ
    れたコンピュータコードを、すべての論理演算に共通な
    コードであって入力のビットを通じてのルーピングを制
    御するためにもちいられる共通コードと組み合わせる段
    階をさらに含むことを特徴とする請求項27記載の方
    法。
  37. 【請求項37】 共通コードは、リクエストされた論理
    演算によって必要とされる入力のみをロードするように
    最適化されていることを特徴とする請求項36記載の方
    法。
  38. 【請求項38】 共通コードは、リクエストされた論理
    演算によって必要とされる入力のみを検査するように最
    適化されていることを特徴とする請求項36記載の方
    法。
  39. 【請求項39】 複数の入力について論理演算を行う方
    法において、 複数の項を有するブール式を指定し、 該ブール式の各項について、その項を実現するコードセ
    グメントを生成し、 コンピュータプログラムの実行中において、 論理演算を指定し、 リクエストされた論理演算を実現するためにどの生成さ
    れたコードセグメントが必要であるかを確定し、 指定された論理演算を実現するコンピュータコードを生
    成するために確定したコードセグメントを組み合わせ、 組み合わせたコンピュータコードを実行する各段階を含
    むことを特徴とする前記方法。
  40. 【請求項40】 指定されたブール式が入力について行
    い得るすべての可能な論理演算を記述し、指定されたブ
    ール式の項の数が可能な論理演算の総数より少ないこと
    を特徴とする請求項39記載の方法。
  41. 【請求項41】 2つのソースビットマップS1 および
    2 およびデスティネーションビットマップDについて
    行われる論理演算を実現するためにコンピュータコード
    を生成する方法において、 S1 ,S2 およびDの256の論理上可能なすべての組
    み合わせを定義するブール式の各項に対するコードセグ
    メントを生成する段階であって、各項がブール演算およ
    びそのブール演算を実現する対応するコードセグメント
    を有するように生成する段階と、 コンピュータプログラムの実行中において、論理演算を
    実現するために必要なコードセグメントを組み合わせて
    生成されたコンピュータコードを形成する段階との各段
    階を含むことを特徴とする前記方法。
  42. 【請求項42】 複数のビットマップについて論理演算
    を行う装置であって、ブール式の各項を実現するコード
    セグメントを有する前記装置において、 該論理演算を実現するためにどのコードセグメントが必
    要であるかを識別する手段と、 識別されたコードセグメントを論理演算を実現するコン
    ピュータコードに組み合わせる手段と、 複数のビットマップについて論理演算を行うために該コ
    ンピュータコードを実行する手段と、 を備えていることを特徴とする前記装置。
  43. 【請求項43】 識別する手段が、論理演算を実現する
    ブール式の係数を指定する手段と、指定された係数に基
    づいてコードセグメントを選択する手段とを含むことを
    特徴とする請求項42記載の装置。
  44. 【請求項44】 複数の入力について論理演算を行う装
    置において、 ブール式の各項を実現する複数のコードセグメントを格
    納する手段と、 該論理演算を実現するためにどの格納されたコードセグ
    メントが必要であるかを識別する手段と、 識別されたコードセグメントを論理演算を実現するコン
    ピュータコードに組み合わせる手段と、 該複数の入力について論理演算を行うために該コンピュ
    ータコードを実行する手段と、 を備えることを特徴とする前記装置。
  45. 【請求項45】 ブール式が F(S1,S2,D) =λ0S1S2D +λ1S1S2D′+ λ2S1S2′D + λ3S1S2′D′+ λ4S1′S2D + λ5S1′S2D′+ λ6S1′S2′D + λ7S1S2′D′ であり、ただし、λ0 ・・・λ7 はこの式の論理演算固
    有係数であり、+はブールINCLUSIVE−OR演
    算子を表し、並列配置はブールAND演算子を表し、′
    はブール相補演算子を表し、S1,S2 およびDはビット
    マップであることを特徴とする請求項44記載の方法。
  46. 【請求項46】 識別する手段が、ブール式の係数を指
    定する手段と、指定された係数に基づいてコードセグメ
    ントを選択する手段とを含むことを特徴とする請求項4
    5記載の装置。
  47. 【請求項47】 ブール式が 【数5】 ルEXCLUSIVE−OR演算子を表し、・および並
    列配置はブールAND演算子を表し、論理数1,S1
    ・・・、S1 2 Dは該式の項であり、S1 ,S 2 およ
    びDはビットマップであることを特徴とする請求項44
    記載の方法。
  48. 【請求項48】 識別する手段が、ブール式の係数を指
    定する手段と、指定された係数に基づいてコードセグメ
    ントを選択する手段とを含むことを特徴とする請求項4
    7記載の装置。
  49. 【請求項49】 識別する手段が、論理演算を実現する
    ブール式の係数を指定する手段と、指定された係数に基
    づいてコードセグメントを選択する手段とを含むことを
    特徴とする請求項44記載の装置。
  50. 【請求項50】 複数の入力についての論理演算の値を
    生成する装置において、 ブール式の各項の結果を確定する手段と、 結果のパリティを、該パリティが論理演算の値となるよ
    うに生成する手段と、を備えることを特徴とする前記装
    置。
  51. 【請求項51】 確定する手段が、論理演算および入力
    の2進数表現に基づいて各項の結果を生成する論理積手
    段を含むことを特徴とする請求項50記載の装置。
  52. 【請求項52】 論理演算および各項の係数の集合の2
    進数表現をマッピングする手段を含み、確定する手段
    が、入力およびマッピングされた2進数表現の結果に基
    づいていることを特徴とする請求項50記載の装置。
JP5167141A 1992-07-06 1993-07-06 コンパイルされたラスタ演算コードを生成するための方法および装置 Withdrawn JPH06186956A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/909,248 US5604850A (en) 1992-07-06 1992-07-06 Method and system for dynamically generating computer instructions for performing a logical operation on bitmaps
US07/909248 1992-07-06

Publications (1)

Publication Number Publication Date
JPH06186956A true JPH06186956A (ja) 1994-07-08

Family

ID=25426889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5167141A Withdrawn JPH06186956A (ja) 1992-07-06 1993-07-06 コンパイルされたラスタ演算コードを生成するための方法および装置

Country Status (5)

Country Link
US (1) US5604850A (ja)
EP (1) EP0578206A3 (ja)
JP (1) JPH06186956A (ja)
KR (1) KR940006026A (ja)
CA (1) CA2099914A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307559B1 (en) * 1995-07-13 2001-10-23 International Business Machines Corporation Method and apparatus for color space conversion, clipping, and scaling of an image during blitting
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6067540A (en) 1997-02-28 2000-05-23 Oracle Corporation Bitmap segmentation
US5963935A (en) * 1997-02-28 1999-10-05 Oracle Corporation Combining bitmaps within a memory limit
US6237086B1 (en) * 1998-04-22 2001-05-22 Sun Microsystems, Inc. 1 Method to prevent pipeline stalls in superscalar stack based computing systems
KR100384629B1 (ko) * 1998-10-16 2003-08-19 주식회사 포스코 신선성이우수한고강도선재및그제조방법
US7007037B2 (en) * 2000-07-31 2006-02-28 Oracle International Corporation Opaque types
KR100554748B1 (ko) * 2001-12-24 2006-02-24 주식회사 포스코 신선용 고강도 선재의 제조방법
US7782331B2 (en) 2004-06-24 2010-08-24 Microsoft Corporation Cross-platform runtime code generation for bit block transfer functions

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4823281A (en) * 1985-04-30 1989-04-18 Ibm Corporation Color graphic processor for performing logical operations
JP2500858B2 (ja) * 1986-04-11 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 拡張ラスタ演算回路を有する表示システム
US5313227A (en) * 1988-04-15 1994-05-17 International Business Machines Corporation Graphic display system capable of cutting out partial images
US5041992A (en) * 1988-10-24 1991-08-20 University Of Pittsburgh Interactive method of developing software interfaces
US5241625A (en) * 1990-11-27 1993-08-31 Farallon Computing, Inc. Screen image sharing among heterogeneous computers

Also Published As

Publication number Publication date
US5604850A (en) 1997-02-18
KR940006026A (ko) 1994-03-22
EP0578206A2 (en) 1994-01-12
CA2099914A1 (en) 1994-01-07
EP0578206A3 (en) 1996-08-28

Similar Documents

Publication Publication Date Title
JPH06186956A (ja) コンパイルされたラスタ演算コードを生成するための方法および装置
JP2665111B2 (ja) ベクトル処理装置
US4785400A (en) Method for processing a data base
US6061783A (en) Method and apparatus for manipulation of bit fields directly in a memory source
US6026239A (en) Run-time code compiler for data block transfer
US20060098017A1 (en) Interpreter for simplified programming of graphics processor units in general purpose programming languages
JP2905446B2 (ja) データストリング生成方法、コンピュータ動作方法、ピクセル値セット生成方法及びコンピュータ
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JPS59501684A (ja) 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像
KR20200031150A (ko) 데이터 처리장치의 데이터 항목들 내의 성분들의 계수
JPS61500872A (ja) ビットマップ化されたグラフィックシステムにおいてキャラクタを表示するための装置と方法
JPH0764853A (ja) Simdマルチプロセッサ用の可変正確度間接的アドレス方法およびそれを行う装置
JPH0441378B2 (ja)
JP2008524723A (ja) 単一命令複数データ実行エンジンのフラグレジスタのための評価ユニット
JPH04213175A (ja) 大域レンダリングで使用するための分散処理装置
US6301651B1 (en) Method and apparatus for folding a plurality of instructions
US5265204A (en) Method and apparatus for bit operational process
US4342080A (en) Computer with microcode generator system
JP3683598B2 (ja) データ駆動型情報処理装置
US5864838A (en) System and method for reordering lookup table entries when table address bits are reordered
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
US3942156A (en) Indirect arithmetic control
US20020156992A1 (en) Information processing device and computer system
US5838297A (en) Method for color image scaling and other geometrical transformations
US20220027161A1 (en) Non-transitory computer-readable medium, assembly instruction conversion method and information processing apparatus

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20001003