JP3164832B2 - 描画制御装置 - Google Patents

描画制御装置

Info

Publication number
JP3164832B2
JP3164832B2 JP05856191A JP5856191A JP3164832B2 JP 3164832 B2 JP3164832 B2 JP 3164832B2 JP 05856191 A JP05856191 A JP 05856191A JP 5856191 A JP5856191 A JP 5856191A JP 3164832 B2 JP3164832 B2 JP 3164832B2
Authority
JP
Japan
Prior art keywords
data
register
address
value
vram
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 - Fee Related
Application number
JP05856191A
Other languages
English (en)
Other versions
JPH04293091A (ja
Inventor
智久 小檜山
潤 北原
直 平田
清治 大山
巧 宗圓
一郎 大手
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.)
Hitachi Software Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Hitachi Ltd
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 Hitachi Software Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP05856191A priority Critical patent/JP3164832B2/ja
Priority to US07/856,172 priority patent/US5353403A/en
Publication of JPH04293091A publication Critical patent/JPH04293091A/ja
Priority to US08/280,578 priority patent/US5583985A/en
Application granted granted Critical
Publication of JP3164832B2 publication Critical patent/JP3164832B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報処理装置の描画制
御方法及びその装置に関する。
【0002】
【従来の技術】近年の半導体技術の進歩により、パーソ
ナルコンピュータやワークステーションなどの情報処理
装置の機能および性能は年々格段に向上してきている。
性能向上の要素としては中央処理装置(セントラル プ
ロセシング ユニット、以下CPUと記す)の高速化、
メモリや外部記憶装置などの記憶手段の大容量化、そし
てマンマシンインタフェースの改善などを挙げることが
できる。このような背景のもと、ディスプレイの画面上
にウインドウと呼ぶ矩形の枠を一つ以上表示し、それら
のウインドウ一つ一つに応用プログラムを割当てて動作
させる、いわゆるウインドウシステムが実用化されるに
至った。このようなウインドウシステムは画像や図形だ
けでなく文字もグラフィックスによって表示するフルグ
ラフィックス描画処理を特徴とする。過去においてもウ
インドウシステムは存在したが、CPUの性能や記憶手
段の容量の点で処理に時間がかかりすぎ、実用的ではな
かった。ウインドウシステム全体の性能は、特に次のよ
うな描画要素(描画プリミティブ)の処理性能に大きく
影響されることが知られている。
【0003】(1)ビットブロック転送 (2)文字描画 (3)線分描画 ビットブロック転送とは矩形で定義される領域のデータ
を他の矩形領域に転送する処理を一般化したもので、ウ
インドウシステム全体の処理の50%以上を占める重要
な描画プリミティブである。文字の描画は一般のウイン
ドウシステムにおける処理の20%から30%を占め
る。ワードプロセッサなどの文字表示を主体とする応用
プログラムを実行することを考慮すれば、その処理性能
の重要性は容易に理解されるであろう。線分の描画は一
般に処理の10%から30%を占める。これもCAD
(コンピュータ支援の設計)などの応用プログラムで複
雑な図面を表示する場合に処理の割合がさらに増加する
ことを考えれば重要な描画プリミティブであることがわ
かる。
【0004】さて、上記でCPUの性能向上や記憶手段
の大容量化について述べたが、それらはウインドウシス
テムを実用ベースに近づける下地の技術にすぎない。す
なわち上記(1)から(3)のような処理は描画すべき
座標計算などの前処理を終えた後、いかに高速に表示用
メモリ(ビデオ ランダム アクセス メモリ、以下V
RAMと記す)に描画するかがポイントになる。描画処
理自体の高速化のためには表示系に描画高速化の機構を
備える必要がある。このために従来から数多くの高速描
画の手段が考案されている。
【0005】従来の技術としては、特開昭59−119
385号公報に示される技術のように画素の座標を指定
しハードウェアでアドレスを計算してビットブロック転
送を行う方法がある。また、特開平01−107295
号公報に示される技術のようにCPUからのリード/ラ
イト動作を拡張してビットブロック転送を行う方法があ
る。また、特開平01−140196号公報に示される
技術のようにVRAMのアドレスをアドレスレジスタと
アドレスオフセットレジスタで発生させる方法がある。
【0006】また、文字描画の高速化のためには特願平
02−317769号公報に示される技術のように連続
する2つのVRAMの番地を一度にアクセスするものが
ある。
【0007】
【発明が解決しようとする課題】本発明ではプレン方式
のVRAMをもつ表示系を考える。VRAMの構成には
このほかにもパックドピクセルと呼ぶ方式があるが、ビ
ットブロック転送の高速化にはプレン方式が適している
からである。プレン方式とはCPUからみたVRAMが
図15のように一枚以上の面(この各面をプレンと呼
ぶ)から構成され、CPUからのアクセスをプレンごと
に行なう方式である。プレンの枚数は同時に表示できる
色数もしくはグレイスケールの諧調の数を決定する。例
えば1プレンでは2、4プレンでは16、そして8プレ
ンでは256の色または諧調を表すことができる。ビッ
トブロック転送の処理時間をtとすると、水平方向の一
ラスタの転送処理を行い、それを全体の処理に必要なラ
スタ数分繰り返す場合、tは一般的に次の式で表現でき
る。
【0008】 t=p*y*(b+(a*n+m)*x)+c −−− (数1) 但し、各パラメータ等の意味は次の通りである。
【0009】a:VRAMの一回の平均アクセス時間 b:水平1ラスタ分の転送処理の固定オーバヘッド c:ビットブロック転送処理の固定オーバヘッド m:1ワード転送に必要な処理オーバヘッド n:1ワード分のデータの一回の転送に必要なVRAM
アクセス回数 p:プレン係数 x:水平方向の転送ワード数 y:垂直方向の転送ラスタ数 *:算術積記号 +:算術和記号 初めに本発明で考える描画制御装置の前提条件について
述べる。ビットブロック転送では転送元すなわちソース
領域から読み出した複数画素のデータを転送先すなわち
ディスティネーション領域の任意の位置に書き込む際、
ソースの1ワードのデータをディスティネーションの2
ワードにまたがって書き込む確率が高い。例えば一度の
VRAMアクセスで16画素を読み出すハードウエア構
成の描画制御装置の場合、シフト処理を行なわずにディ
スティネーションに1回で書き込める確率は1/16、
シフト処理を行なった結果2ワードにまたがる確率は1
5/16である。このため何らハードウエアの支援を持
たない場合、ビットブロック転送はシフト処理の有無に
よりVRAMアクセス回数nの値が変化してしまい、処
理時間tに差異を生じる。これに対してマージ機能を持
つ場合は転送するデータについてシフト処理の有無にか
かわらずnの値を一定に保つことができる。マージ機能
とは例えば特開昭63−231548号公報に示される
技術である。その概要は、ビットブロック転送時にシフ
タを利用した場合に、シフトしたためにはみ出て一回目
の転送先ワードに描画されなかったデータの余り部分を
つぎのワードの転送で描画できるよう、一回前のデータ
を保持するレジスタを設けて次の転送データとこの一回
前のデータをマージすることによって2ワード長のデー
タとし、この中から次の転送に必要な部分を切り出して
描画してゆく機能である。本発明はマージ機能によって
シフト処理の有無にかかわらずnの値を一定に保てる描
画制御装置をさらに高速化することを目的とするため、
マージ機能をもつ描画制御装置の実現を前提とする。
【0010】次にプレン係数と名付けたパラメータpに
ついて述べる。パラメータpは、対象とする描画制御装
置が何プレンのVRAMをもつか、また何プレンのVR
AMを同時に描画処理できるかにより決まるパラメータ
である。VRAMの全プレンを同時処理できる場合はV
RAMのプレン数に関係なくパラメ−タpの値は1であ
る。1プレンずつしか処理できない場合には例えば16
色表示(4プレン)ではパラメ−タpの値は4、256
色表示(8プレン)ではパラメ−タpの値は8となる。
CPUがVRAMの内容を読みだして主記憶に格納する
ときは1プレンずつ読みださねばならないために、パラ
メータpの値をプレン数にかかわらず1にすることはで
きないが、これから本発明が扱おうとするVRAM内の
描画処理では各プレンごとに描画支援のための制御回路
を設けることにより、全プレンの描画処理を並列に行な
うことが可能である。本発明ではプレン数にかかわらず
パラメータpの値を1にできる描画制御装置をさらに高
速化することを目的とするため、全プレン同時処理を行
なえる描画制御装置の実現を前提とする。
【0011】処理時間tを小さくするためには、一度に
処理するデータのビット数を増やして水平方向の転送ワ
ード数xを減らすか、もしくはパラメータa、b、cお
よびmを小さくする必要がある。転送ワード数xを減ら
すためにはVRAMを構成するメモリチップ数を増やし
てVRAMのデータバス幅を広く取り、それに要する制
御回路の物量を増加すればよい。しかし物理的、経済的
制約により、現在ではVRAM1プレン当りのデータバ
ス幅は16から32ビットとすることが多い。また小面
積のビットブロック転送を行なうときは他のパラメータ
が効いてくる。パラメータaはビットブロック転送のみ
ならず表示装置の描画速度を決める基本的なパラメータ
である。パラメータaはVRAMの平均アクセスタイム
であるのでこの値を小さくするためにはマルチポートメ
モリなどのVRAM用メモリ素子を用いたり、VRAM
を高速ページモードで複数ワードを一度にアクセスした
り、より高速なアクセスタイムをもつデバイスを採用し
てアクセスタイムそのものを短くする方法と、CPUの
動作周期とVRAMの動作周期の違いに基づく同期オー
バヘッドをなくす方法をとればよい。パラメータcは応
用プログラム、オペレーティングシステム、デバイスド
ライバなどの描画の前処理にかかるオーバヘッドであ
り、ハードウェアである装置側ではあまり小さくできな
い。また、一般にtに対するcの割合は小さい場合が多
く、パラメータcの絶対値はCPUの性能向上により自
動的に小さくなる部分である。
【0012】パラメータbはビットブロック転送処理に
必要なラスタの数だけ整数倍される。このため、縦長領
域のビットブロック転送のように項a*n*xに比べて
パラメータbの割合が増えるとその影響が顕著になる。
よって、パラメータbは極力小さくする必要がある。パ
ラメータbを支配する要因については後述する。パラメ
ータmは、VRAMから読出した転送元のデータと転送
先のデータとの間で行なわれるラスタ演算等にかかる時
間を表したもので、ソフトウェアで処理すると一般にパ
ラメータmが項a*nの15倍程度になり著しい速度低
下を招いていた。数1において転送ワ−ド数xにかかる
係数が全体の処理時間tに最も影響を及ぼしやすい点に
注意されたい。
【0013】次に数1をもとにして従来技術の問題点を
明らかにする。特開昭59−119385号公報に示さ
れる技術では、ソースコピー等の矩形領域の単純な転送
しか行なえず、転送先にある元の図形と描画する図形と
の間で演算を必要とする図形の重ね合わせなどが必要と
なる転送には利用できない。ソースコピーとは転送元
(ソース)の図形を転送先(ディスティネーション)の
領域に複写するビットブロック転送処理の一種である。
また、元の図形と描画する図形との間で行なう演算処理
をラスタ演算と呼ぶ。二つの図形を重ねあわせたり絵柄
(パタン)を付加する処理だけでなく、マウスなどのポ
インティングデバイスによるグラフィックカーソルの表
示などは全てラスタ演算を伴うビットブロック転送を用
いて描画する。ウインドウシステムにおいてビットブロ
ック転送というときは、一部の特別な場合を除いてラス
タ演算を伴うと考えてよい。上記従来技術はラスタ演算
を含まない特別な場合のビットブロック転送にのみ効果
がある。また、特開昭59−119385号公報には明
記されていないが読み出し番地レジスタや、書き込み番
地レジスタ等の更新には、マイクロプロセッサ等の制御
装置が必要である。このため特開昭59−119385
号公報の装置専用の制御装置を設けたとしても読み出し
番地レジスタや、書き込み番地レジスタ等の更新に時間
がかかることは明白である。これは上記パラメータm、
bを増加させる要因となる。また同公報の技術では、与
えられたドットの座標のx成分とy成分をそれぞれ下位
と上位にしてy、xをつなぎ合せてVRAMアドレスを
求めているため、VRAMの横方向のビットマップが2
のべき乗以外の構成だと座標からのVRAMアドレスの
計算ができない。これは上記パラメータcを増加させる
要因となる。
【0014】元の図形と描画する図形との間でラスタ演
算が行え、CPUからのリード/ライト動作でデータを
転送する方法としては特開平01−107295号公報
に示される技術がある。しかし従来のCPUのリードサ
イクルを拡張してビットブロック転送を行う方法では、
CPUのサイクルタイムとVRAMのサイクルタイムの
同期化オーバヘッドが存在し性能を十分にあげることが
できなかった。これは上記パラメータaを増加させる要
因となる。
【0015】また、特開平01−140196号公報に
示されるアドレスレジスタとアドレスオフセットレジス
タで構成したアドレス発生部では、VRAMの横方向の
ビットマップが2のべき乗以外の構成でもアドレス計算
ができる反面、VRAMを大容量化してアクセスに必要
なアドレスのビット数を増やした場合、一般的な16ビ
ットのデータバスを持つ情報機器では2回のレジスタ設
定が必要になる場合がある。例えば、2048×102
4画素のビットマップをもつVRAMをワード単位で番
地指定するにはアドレスが17ビット必要になる。する
と17ビットのアドレスレジスタを設定するためには1
6ビットのレジスタ1回と1ビットのレジスタ1回の計
2回のレジスタへの書き込みを行なわねばならない。一
般に制御レジスタ類の設定は、CPUのI/Oサイクル
で行なうため時間がかかる。このような制御レジスタ類
の設定回数を減らすためには制御プログラム側でもVR
AM上の転送すべき領域のアドレスを保持し、変更が必
要なアドレスの下位の値のみ設定するなど方法を取る必
要がある。しかしこの方法はアドレス保持のためにCP
Uのレジスタを使用するので他の制御に利用できるCP
Uのレジスタが減ってしまう欠点がある。ビットブロッ
ク転送を行う場合、これらのアドレス制御レジスタを頻
繁に書き替えるため、設定回数の増加や、プログラムの
複雑化は性能低下の要因となる問題があった。これは上
記パラメータbを増加させる要因となる。
【0016】また任意の大きさの矩形領域を転送する場
合には、矩形の両端がVRAMのアクセス単位であるワ
ードの途中から始まり、ワードの途中で終わる場合がほ
とんどである。このためラスタ単位で転送すると、転送
処理の最初と最後はワード内の一部に描画するという別
処理が必要であり、処理速度の低下の原因となってい
た。具体的な測定結果によると、この両端の処理に平均
してビットブロック転送全体の約40%もの処理時間が
かかっていた。これは上記パラメータbを著しく増加さ
せる要因となる。
【0017】また、応用プログラムごとに主記憶などの
一般のメモリとVRAMを構成するメモリのデータ構造
が異なる場合があり、制御プログラム側で変換する必要
があり処理速度の低下の問題があった。これは上記パラ
メータmを増加させる要因となる。
【0018】上記数1は一般式であるので、以下ビット
ブロック転送の代表的な処理別の処理時間tの式を示
す。
【0019】塗り潰し等のVRAMへのライトのみの描
画の場合において、一般に色情報をVRAMに書き込む
動作のみであるためnの値は1になる。よってtは、数
2となる。
【0020】 t=y*(b+(a+m)*x)+c −−− (数2) 転送元から転送先への単純な転送であるソースコピーの
場合において、転送元のVRAMリード、転送先のVR
AMライトが必要になるためnの値は2になる。よって
tは、数3となる。
【0021】 t=y*(b+(2a+m)*x)+c −−− (数3) 転送元のデータと転送先に元々あるデータとを演算処理
して転送先に書き込む場合において、転送元のVRAM
リード、転送先のVRAMリード、および転送先のVR
AMライトが必要になるためnの値は3になる。よって
tは、数4となる。
【0022】 t=y*(b+(3a+m)*x)+c −−− (数4) 転送元のデータと転送先に元々あるデータとさらにパタ
ンとを演算処理して転送先に書き込む場合において、転
送元のVRAMリード、転送先のVRAMリード、パタ
ンのVRAMリード、および転送先のVRAMライトが
必要になるためnの値は4になる。よってtは、数5と
なる。
【0023】 t=y*(b+(4a+m)*x)+c −−− (数5) 以上がビットブロック転送の基本的な動作の種類であ
る。従来の技術では数2から数5までパラメータmの値
を一定にすることができなかった。このため数3で表さ
れるソースコピーのような単純な処理でパラメータmの
値を0もしくはパラメータaの値に比べて0に近い値に
する手段を設けて高速化を図っても、数4もしくは数5
で表されるラスタ演算付きのビットブロック転送を行な
うと途端にCPUの負荷が増え、パラメータmの値がパ
ラメータaの値に比べておよそ5倍から20倍に増加し
ていた。その結果ビットブロック転送の種類によって処
理速度が著しく異なる欠点があった。
【0024】次に文字描画の問題点を述べる。文字描画
とはフルビットマップの画面の任意の位置に文字フォン
ト(字体)を書き込んでゆく処理のことである。一般に
VRAMのアドレスはディスプレイの水平方向に増加す
る。プレン構成のVRAMのデータは例えばVRAMの
データバスが16ビットであれば16画素単位で水平に
並んでいるので、位置合せのため文字フォントを適宜シ
フトしてから描画しなければならない。文字フォントを
シフトするとVRAMのワード境界を超えて、二回に分
けて書き込む場合が存在する。特願平02−31776
9号公報に示される従来技術では書き込むべきメモリ番
地と一つ先のメモリ番地を一度にアクセスできるように
することでVRAMへの書き込み回数を最小限にでき
る。しかし該従来技術ではCPUのアドレスを用いてV
RAMをアクセスするために表示画面の縦方向にフォン
トを書き込んでゆくためにはCPUによるアドレス計算
をしなければならず、連続データ転送命令を使用するこ
とができなかった。
【0025】前述のように、一般にVRAMのアドレス
がディスプレイの水平方向に増加するのに対し、文字フ
ォントデータは文字をドット単位に水平にスライスした
ものを縦方向に連続に格納する。特開平1−14019
6号公報に示される従来技術ではVRAMを縦方向にア
ドレスできるので、特願平02−317769号公報に
示される従来技術と組合せれば文字フォントデータを縦
方向に展開するのに適しているようにみえる。しかし、
これは文字フォントデータのビット数とVRAMのデー
タバスのビット数とが等しい場合だけである。例えばフ
ォントデータが8ビット、VRAMのデータバスが16
ビットの場合を考える。CPUのバイト(8ビット)デ
ータ転送命令を用いて文字フォントをVRAM上に転送
しようとすると、VRAMのアドレスは縦方向に増加し
ていくが、CPUの文字フォントデータはVRAMのデ
ータバスの上位8ビットと下位8ビットに交互に現われ
る。これはCPUのアドレスがバイト単位にふられてお
り、16ビットバスでは下位8ビットを偶数番地、上位
8ビットを奇数番地と定義しているためである。このた
めそのままでは期待する位置に文字フォントを描画でき
ない。
【0026】さて、パーソナルコンピュータの表示系は
VRAMのデータバスが8ビットのものが国際的に主流
であった関係上、文字フォントも8ビット幅で作られて
いることが多い。一方、水平が1000ドットクラスの
表示系では描画速度を上げるためにVRAMのデータバ
スを16ビット以上にすることが多い。このため上記で
述べた不具合は今後一般的に生じうる。以上が文字描画
における問題点である。
【0027】次に線分描画について述べる。線分として
直線を考える。直線を構成するドット座標の発生アルゴ
リズムは数多く考案されているが、一般に線分を高速に
描画する手段は、前述のビットブロック転送などを高速
化する手段と構造が異なるために別に備える必要があっ
た。
【0028】本発明の第一の目的は数2、数3、数4、
数5においてパラメータmの値を一定にできる描画制御
装置を提供することにある。また望ましくは数2、数
3、数4、数5においてさらにパラメータbの値を0に
できるビットブロック転送描画装置を提供することにあ
る。
【0029】本発明の第二の目的は係る条件の時にも正
常かつ高速に文字描画が行える描画制御装置を提供する
ことにある。
【0030】本発明の第三の目的は、水平線分、垂直線
分、そして斜め45度の線分を組み合わせて任意の傾斜
角の線分を描画する線分描画装置について考え、本発明
の第一の目的であるビットブロック転送の高速化手段を
用いて線分描画を高速に処理できる描画制御装置を提供
することにある。
【0031】
【課題を解決するための手段】本発明は、デ−タを格納
する1枚以上のプレン構成をもつVRAM部と、該VR
AM部のアクセスタイミングを発生するメモリ制御部
と、表示手段と前記VRAM部への表示アドレスを発生
する表示アドレス発生手段と該CPUに接続され、設
定された回数分アクセス要求タイミングを発生する連続
転送シ−ケンス手段と、該連続転送シ−ケンス手段から
の該アクセス要求タイミングを一回以上のアクセスに拡
張して前記メモリ制御部に転送するアクセスサイクル発
生手段と、前記CPUからの命令に基づき、該連続転送
シ−ケンス手段と該アクセスサイクル発生手段の制御
で、前記デ−タの加工操作を指示するデ−タ制御部と、
該デ−タ制御部の指示に基づき、前記アクセスサイクル
発生手段の制御で、前記VRAM部に描画する前記デ−
タの加工操作を行なうデ−タ操作部と、該アクセスサイ
クル発生手段からの信号に基づき、前記デ−タの描画ア
ドレスを発生する描画アドレス発生手段とを備える。
【0032】好適に、前記描画アドレス発生手段は、前
記VRAM内の第一のアドレスを発生し、かつ後述の第
三のリードサイクル終了後に前記第一のアドレスを更新
する手段を備えた第一のアドレス発生手段と、前記VR
AM内の第二のアドレスを発生し、かつ後述の第四のリ
ードサイクル終了後に前記第二のアドレスを更新する手
段を備えた第二のアドレス発生手段と、前記VRAM内
の第三のアドレスを発生し、かつ後述の第二のライトサ
イクル終了後に前記第三のアドレスを更新する手段を備
えた第三のアドレス発生手段とからなる。
【0033】又、好適には前記データ操作部は、第一の
データ保持手段と、第二のデータ保持手段と、第三のデ
ータ保持手段と、前記第一のデータ保持手段が保持する
データをシフトする第一のシフト手段と、前記第二のデ
ータ保持手段が保持するデータをシフトする第二のシフ
ト手段と、前記第一のシフト手段のシフト結果のデータ
と前記第二のシフト手段のシフト結果のデータと前記第
二のデータ保持手段が保持するデータを3値の入力とす
る論理演算器とからなる。
【0034】更に、好適には、前記連続転送シーケンス
手段は、前記CPUのプログラム制御により第一のライ
トサイクルもしくは第一のリードサイクルと第一のライ
トサイクルの組を少なくとも一回以上発生する。
【0035】更に又、好適には、前記アクセスサイクル
発生手段は、前記連続転送シーケンス手段が発生する前
記第一のライトサイクルを入力として、前記論理演算器
の演算結果を前記第三のアドレス発生手段が指し示す前
記第三のアドレスに格納する第二のライトサイクルを前
記メモリ制御部に対して発生するか、もしくは前記第三
のアドレス発生手段が指し示す前記第三のアドレスのデ
ータを前記第三のデータ保持手段に格納する第二のリー
ドサイクルを前記メモリ制御部に対して発生した後に前
記論理演算器の演算結果を前記第三のアドレス発生手段
が指し示す前記第三のアドレスに格納する第二のライト
サイクルを前記メモリ制御部に対して発生するかを指定
する第一の指定手段を備えた第一のアクセスサイクル発
生器と、前記連続転送シーケンス手段が発生する前記第
一のリードサイクルを入力として、前記第一のアドレス
発生手段が指し示す前記第一のアドレスのデータを前記
第一のデータ保持手段に格納する第三のリードサイクル
と、前記第二のアドレス発生手段が指し示す前記第二の
アドレスのデータを前記第二のデータ保持手段に格納す
る第四のリードサイクルと、前記第三のアドレス発生手
段が指し示す前記第三のアドレスのデータを前記第三の
データ保持手段に格納する前記第二のリードサイクルの
3種類のリードサイクルの一種類以上三種類以下の任意
の組み合わせのうち、どの組み合わせのリードサイクル
を前記メモリ制御部に対して発生するかを指定する第二
の指定手段を備えた第二のアクセスサイクル発生器とか
らなる。
【0036】次に、本発明の構成を、ビットブロック転
送、文字描画、線分描画に分けてのべる。
【0037】1.ビットブロック転送 複数プレン構成をもつVRAMと該VRAMのメモリ制
御部を備えたグラフィック表示系において、本発明の第
一の目的であるビットブロック転送の描画処理を高速化
するため、本発明は、 (1)VRAMの全プレンに共通で:外部データのフォ
ーマットを鏡像反転・スワップもしくはそれらの組合せ
により外部データのフォーマット変換を行うデータ構造
変換器、VRAMへの書き込みをビット単位で制御する
ためのビットマスクレジスタ、ビットマスクレジスタの
内容とデータ構造変換器のデータをビットごとに論理積
の演算を行なうAND手段、ビットマスクレジスタもし
くはデータ構造変換器もしくはAND手段のデータをシ
フトするビットマスク用シフタ、データ構造変換器のデ
ータの前回の内容を保持するマージレジスタC、データ
構造変換器のデータとマージレジスタCのデータをシフ
トするシフタC、後述の各プレンのリードデータ選択手
段の内容を各ビットごとに論理和の演算を行なってCP
Uへのリードデータを合成するリードデータ合成手段を
備え、かつVRAMの各プレンに対して:プレン単位の
VRAMリード可否を選択するリードプレン選択手段、
プレン単位のVRAMライト可否を選択するライトプレ
ン選択手段、ライトプレン選択手段とビットマスク用シ
フタの出力を合成して各プレンのVRAMをビット単位
で書き込み制御するプレンビットマスク手段、VRAM
のデータもしくはデータ構造変換器のデータをソース領
域のデータとして保持するバッファレジスタS、VRA
Mのデータもしくはデータ構造変換器のデータをパタン
領域のデータとして保持するバッファレジスタP、VR
AMのデータもしくはデータ構造変換器のデータをディ
スティネーション領域のデータとして保持するバッファ
レジスタD、VRAMもしくはバッファレジスタSもし
くはデータ構造変換器のデータの前回の内容を保持する
マージレジスタS、バッファレジスタPもしくはデータ
構造変換器のデータの前回の内容を保持するマージレジ
スタP、バッファレジスタSとマージレジスタSのデー
タをシフトするシフタS、バッファレジスタPとマージ
レジスタPのデータをシフトするシフタP、シフタSと
シフタPとバッファレジスタDもしくはVRAMの内容
を入力として論理演算を行なう3値ラスタ演算器、シフ
タSとバッファレジスタDの内容を入力として論理演算
を行なう2値ラスタ演算器B、シフタPとバッファレジ
スタDの内容を入力として論理演算を行なう2値ラスタ
演算器F、シフタCの出力各ビットについて該ビットの
値が0のときは該ビット位置の2値ラスタ演算器Bの出
力データを選択しシフタCの出力各ビットについて該ビ
ットの値が1のときは該ビット位置の2値ラスタ演算器
Fの出力データを選択するビット選択手段、3値ラスタ
演算器もしくはビット選択手段の内容をVRAMに与え
るライトデータ選択手段、リードプレン選択手段により
該プレンが選択されているときにVRAMのデータもし
くは3値ラスタ演算器の内容をリードデータ合成手段に
出力するリードデータ選択手段とをプレンの数だけ備え
るデータ操作部と、 (2)VRAM上のソース領域のアドレスを保持するソ
ースアドレスレジスタ、ディスティネーション領域のア
ドレスを保持するディスティネーションアドレスレジス
タ、パタン領域のアドレスを保持するパタンアドレスレ
ジスタ、ソースアドレスレジスタの内容を後述のアクセ
スサイクル発生器によるリードアクセスサイクルの終了
時に加算・更新するための値を保持するソースオフセッ
トレジスタ、ディスティネーションアドレスレジスタの
内容を後述のアクセスサイクル発生器によるライトアク
セスサイクルの終了時に加算・更新するための値を保持
するディスティネーションオフセットレジスタ、パタン
アドレスレジスタの内容を後述のアクセスサイクル発生
器によるリードアクセスサイクルの終了時に加算・更新
するための値を保持するパタンオフセットレジスタ、ソ
ースアドレスレジスタとソースオフセットレジスタもし
くはディスティネーションアドレスレジスタとディステ
ィネーションオフセットレジスタもしくはパタンアドレ
スレジスタとパタンオフセットレジスタの内容を加算し
て各アドレスレジスタの値を更新するためのアドレス加
算器A、CPUの書き込みデータとソースアドレスレジ
スタもしくはディスティネーションアドレスレジスタも
しくはパタンアドレスレジスタの内容を加算して各アド
レスレジスタの値を更新するためのアドレス加算器Bを
備えたアドレス発生器と、 (3)アドレス発生器を用いて、CPUもしくは後述の
連続転送カウンタによるVRAMの読み出し要求があっ
た場合はソース、ディスティネーション、パタンの各領
域のアクセスを少なくとも1つ以上含むリードアクセス
を発生し、CPUもしくは後述の連続転送カウンタによ
るVRAMの書き込み要求があった場合はディスティネ
ーション領域のライトアクセスもしくはリードアクセス
とライトアクセスの組を発生してVRAMのメモリ制御
部を駆動するアクセスサイクル発生器と、 (4)アクセスサイクル発生器を、ライトサイクルの連
続もしくはリードサイクルとライトサイクルの連続の指
定回数起動する連続転送カウンタと、 (5)連続転送カウンタの一回目の書き込み転送時およ
び最終回の書き込み転送時にそれぞれ指定のビットマス
クパタンを、また一回目と最終回の間の書き込み転送時
には全ビットの書き込みを許可するビットマスクパタン
を生成してこれを外部データとし、データ操作部のデー
タ構造変換器を介してビットマスク制御部に与える連続
転送用マスクパタン生成部と、を設けたものである。
【0038】矩形の転送に必要なラスタ単位に、アドレ
スを管理するレジスタの更新を自動化し2次元の矩形領
域の転送を一連の処理として実行するためには、前記連
続転送カウンタを複数回起動するラスタカウンタと、前
記連続転送カウンタに書き込まれたデータを保持し前記
ラスタカウンタの値が終了値でなくかつ前記連続転送カ
ウンタが終了値のときに該保持したデータを前記連続転
送カウンタに再設定するカウント値保持レジスタと、前
記ラスタカウンタの値が終了値でなくかつ前記連続転送
カウンタが終了値のときにソースアドレスレジスタを用
いたリードサイクルが発生した場合に該リードサイクル
終了時にソースアドレスレジスタに加算する値を保持す
るソース更新値レジスタと、前記ラスタカウンタの値が
終了値でなくかつ前記連続転送カウンタが終了値のとき
にパタンアドレスレジスタを用いたリードサイクルが発
生した場合に該リードサイクル終了時にパタンアドレス
レジスタに加算する値を保持するパタン更新値レジスタ
と、前記ラスタカウンタの値が終了値でなくかつ前記連
続転送カウンタが終了値のときにディスティネーション
アドレスレジスタを用いたライトサイクルが発生した場
合に該ライトサイクル終了時にディスティネーションア
ドレスレジスタに加算する値を保持するディスティネー
ション更新値レジスタとを設けたものである。
【0039】2.文字描画 複数プレン構成をもつVRAMと該VRAMのメモリ制
御部を備えたグラフィック表示系において、本発明の第
二の目的である文字描画を高速化するため、本発明は、 (1)VRAMの全プレンに共通で: 外部データのフォーマットを鏡像反転・スワップもしく
はそれらの組合せにより外部データのフォーマット変換
を行うデータ構造変換器、VRAMへの書き込みをビッ
ト単位で制御するためのビットマスクレジスタ、ビット
マスクレジスタの内容とデータ構造変換器のデータをビ
ットごとに論理積の演算を行なうAND手段、ビットマ
スクレジスタもしくはデータ構造変換器もしくはAND
手段のデータをシフトするビットマスク用シフタ、デー
タ構造変換器のデータの前回の内容を保持するマージレ
ジスタC、データ構造変換器のデータとマージレジスタ
CのデータをシフトするシフタC、後述の各プレンのリ
ードデータ選択手段の内容を各ビットごとに論理和の演
算を行なってCPUへのリードデータを合成するリード
データ合成手段を備え、かつVRAMの各プレンに対し
て:プレン単位のVRAMリード可否を選択するリード
プレン選択手段、プレン単位のVRAMライト可否を選
択するライトプレン選択手段、ライトプレン選択手段と
ビットマスク用シフタの出力を合成して各プレンのVR
AMをビット単位で書き込み制御するプレンビットマス
ク手段、VRAMのデータもしくはデータ構造変換器の
データをソース領域のデータとして保持するバッファレ
ジスタS、VRAMのデータもしくはデータ構造変換器
のデータをパタン領域のデータとして保持するバッファ
レジスタP、VRAMのデータもしくはデータ構造変換
器のデータをディスティネーション領域のデータとして
保持するバッファレジスタD、VRAMもしくはバッフ
ァレジスタSもしくはデータ構造変換器のデータの前回
の内容を保持するマージレジスタS、バッファレジスタ
Pもしくはデータ構造変換器のデータの前回の内容を保
持するマージレジスタP、バッファレジスタSとマージ
レジスタSのデータをシフトするシフタS、バッファレ
ジスタPとマージレジスタPのデータをシフトするシフ
タP、シフタSとシフタPとバッファレジスタDもしく
はVRAMの内容を入力として論理演算を行なう3値ラ
スタ演算器、シフタSとバッファレジスタDの内容を入
力として論理演算を行なう2値ラスタ演算器B、シフタ
PとバッファレジスタDの内容を入力として論理演算を
行なう2値ラスタ演算器F、シフタCの出力各ビットに
ついて該ビットの値が0のときは該ビット位置の2値ラ
スタ演算器Bの出力データを選択しシフタCの出力各ビ
ットについて該ビットの値が1のときは該ビット位置の
2値ラスタ演算器Fの出力データを選択するビット選択
手段、3値ラスタ演算器もしくはビット選択手段の内容
をVRAMに与えるライトデータ選択手段、リードプレ
ン選択手段により該プレンが選択されているときにVR
AMのデータもしくは3値ラスタ演算器の内容をリード
データ合成手段に出力するリードデータ選択手段とをプ
レンの数だけ備えるデータ操作部と、 (2)VRAM上のソース領域のアドレスを保持するソ
ースアドレスレジスタ、ディスティネーション領域のア
ドレスを保持するディスティネーションアドレスレジス
タ、パタン領域のアドレスを保持するパタンアドレスレ
ジスタ、ソースアドレスレジスタの内容を後述のアクセ
スサイクル発生器によるリードアクセスサイクルの終了
時に加算・更新するための値を保持するソースオフセッ
トレジスタ、ディスティネーションアドレスレジスタの
内容を後述のアクセスサイクル発生器によるライトアク
セスサイクルの終了時に加算・更新するための値を保持
するディスティネーションオフセットレジスタ、パタン
アドレスレジスタの内容を後述のアクセスサイクル発生
器によるリードアクセスサイクルの終了時に加算・更新
するための値を保持するパタンオフセットレジスタ、ソ
ースアドレスレジスタとソースオフセットレジスタもし
くはディスティネーションアドレスレジスタとディステ
ィネーションオフセットレジスタもしくはパタンアドレ
スレジスタとパタンオフセットレジスタの内容を加算し
て各アドレスレジスタの値を更新するためのアドレス加
算器A、CPUの書き込みデータとソースアドレスレジ
スタもしくはディスティネーションアドレスレジスタも
しくはパタンアドレスレジスタの内容を加算して各アド
レスレジスタの値を更新するためのアドレス加算器Bを
備えたアドレス発生器と、 (3)アドレス発生器を用いて、CPUもしくは後述の
連続転送カウンタによるVRAMの読み出し要求があっ
た場合はソース、ディスティネーション、パタンの各領
域のアクセスを少なくとも1つ以上含むリードアクセス
を発生し、CPUもしくは後述の連続転送カウンタによ
るVRAMの書き込み要求があった場合はディスティネ
ーション領域のライトアクセスもしくはリードアクセス
とライトアクセスの組を発生してVRAMのメモリ制御
部を駆動するアクセスサイクル発生器と、 (4)CPUからのデータのビット数がVRAMのデー
タバスのビット数と異なる場合、CPUのデータをVR
AMデータバスに画面イメージで左詰めもしくは右詰め
し、外部データとしてデータ操作部のデータ構造変換器
に与えるデータ位置変換部と、を設けたものである。
【0040】また望ましくは、VRAMのデータバスを
2分割して一方をバスa、他の一方をバスbとすると
き、バスaに接続されたメモリ素子にはディスティネー
ションアドレスレジスタのアドレスをそのまま与え、ビ
ットマスク用シフタのシフト値(もしくはシフタCのシ
フト値)がVRAMのデータバスのビット数の1/2以
上の時にはバスbに接続されたメモリ素子にディスティ
ネーションアドレスレジスタのアドレスをインクリメン
ト手段を介して与え、ビットマスク用シフタのシフト値
(もしくはシフタCのシフト値)がVRAMのデータバ
スのビット数の1/2未満の時にはバスbに接続された
メモリ素子にディスティネーションアドレスレジスタの
アドレスをそのまま与えるようにしたものである。
【0041】3.線分描画 複数プレン構成をもつVRAMと該VRAMのメモリ制
御部を備えたグラフィック表示系において、本発明の第
三の目的である線分描画を高速化するため、本発明は、 (1)VRAMの全プレンに共通で:外部データのフォ
ーマットを鏡像反転・スワップもしくはそれらの組合せ
により外部データのフォーマット変換を行うデータ構造
変換器、VRAMへの書き込みをビット単位で制御する
ためのビットマスクレジスタ、ビットマスクレジスタの
内容とデータ構造変換器のデータをビットごとに論理積
の演算を行なうAND手段、ビットマスクレジスタもし
くはデータ構造変換器もしくはAND手段のデータをシ
フトするビットマスク用シフタ、データ構造変換器のデ
ータの前回の内容を保持するマージレジスタC、データ
構造変換器のデータとマージレジスタCのデータをシフ
トするシフタC、後述の各プレンのリードデータ選択手
段の内容を各ビットごとに論理和の演算を行なってCP
Uへのリードデータを合成するリードデータ合成手段を
備え、かつVRAMの各プレンに対して:プレン単位の
VRAMリード可否を選択するリードプレン選択手段、
プレン単位のVRAMライト可否を選択するライトプレ
ン選択手段、ライトプレン選択手段とビットマスク用シ
フタの出力を合成して各プレンのVRAMをビット単位
で書き込み制御するプレンビットマスク手段、VRAM
のデータもしくはデータ構造変換器のデータをソース領
域のデータとして保持するバッファレジスタS、VRA
Mのデータもしくはデータ構造変換器のデータをパタン
領域のデータとして保持するバッファレジスタP、VR
AMのデータもしくはデータ構造変換器のデータをディ
スティネーション領域のデータとして保持するバッファ
レジスタD、VRAMもしくはバッファレジスタSもし
くはデータ構造変換器のデータの前回の内容を保持する
マージレジスタS、バッファレジスタPもしくはデータ
構造変換器のデータの前回の内容を保持するマージレジ
スタP、バッファレジスタSとマージレジスタSのデー
タをシフトするシフタS、バッファレジスタPとマージ
レジスタPのデータをシフトするシフタP、シフタSと
シフタPとバッファレジスタDもしくはVRAMの内容
を入力として論理演算を行なう3値ラスタ演算器、シフ
タSとバッファレジスタDの内容を入力として論理演算
を行なう2値ラスタ演算器B、シフタPとバッファレジ
スタDの内容を入力として論理演算を行なう2値ラスタ
演算器F、シフタCの出力各ビットについて該ビットの
値が0のときは該ビット位置の2値ラスタ演算器Bの出
力データを選択しシフタCの出力各ビットについて該ビ
ットの値が1のときは該ビット位置の2値ラスタ演算器
Fの出力データを選択するビット選択手段、3値ラスタ
演算器もしくはビット選択手段の内容をVRAMに与え
るライトデータ選択手段、リードプレン選択手段により
該プレンが選択されているときにVRAMのデータもし
くは3値ラスタ演算器の内容をリードデータ合成手段に
出力するリードデータ選択手段とをプレンの数だけ備え
るデータ操作部と、 (2)VRAM上のソース領域のアドレスを保持するソ
ースアドレスレジスタ、ディスティネーション領域のア
ドレスを保持するディスティネーションアドレスレジス
タ、パタン領域のアドレスを保持するパタンアドレスレ
ジスタ、ソースアドレスレジスタの内容を後述のアクセ
スサイクル発生器によるリードアクセスサイクルの終了
時に加算・更新するための値を保持するソースオフセッ
トレジスタ、ディスティネーションアドレスレジスタの
内容を後述のアクセスサイクル発生器によるライトアク
セスサイクルの終了時に加算・更新するための値を保持
するディスティネーションオフセットレジスタ、パタン
アドレスレジスタの内容を後述のアクセスサイクル発生
器によるリードアクセスサイクルの終了時に加算・更新
するための値を保持するパタンオフセットレジスタ、ソ
ースアドレスレジスタとソースオフセットレジスタもし
くはディスティネーションアドレスレジスタとディステ
ィネーションオフセットレジスタもしくはパタンアドレ
スレジスタとパタンオフセットレジスタの内容を加算し
て各アドレスレジスタの値を更新するためのアドレス加
算器A、CPUの書き込みデータとソースアドレスレジ
スタもしくはディスティネーションアドレスレジスタも
しくはパタンアドレスレジスタの内容を加算して各アド
レスレジスタの値を更新するためのアドレス加算器Bを
備えたアドレス発生器と、 (3)アドレス発生器を用いて、CPUもしくは後述の
連続転送カウンタによるVRAMの読み出し要求があっ
た場合はソース、ディスティネーション、パタンの各領
域のアクセスを少なくとも1つ以上含むリードアクセス
を発生し、CPUもしくは後述の連続転送カウンタによ
るVRAMの書き込み要求があった場合はディスティネ
ーション領域のライトアクセスもしくはリードアクセス
とライトアクセスの組を発生してVRAMのメモリ制御
部を駆動するアクセスサイクル発生器と、 (4)アクセスサイクル発生器を、ライトサイクルの連
続もしくはリードサイクルとライトサイクルの連続の指
定回数起動する連続転送カウンタと、 (5)連続転送カウンタの一回目の書き込み転送時およ
び最終回の書き込み転送時にそれぞれ指定のビットマス
クパタンを、また一回目と最終回の間の書き込み転送時
には全ビットの書き込みを許可するビットマスクパタン
を生成してこれを外部データとし、データ操作部のデー
タ構造変換器を介してビットマスク制御部に与える連続
転送用マスクパタン生成部と、 (6)VRAMデータバス上の1ビットのみ書き込みを
許可するビットパタンを生成してこれを外部データと
し、データ操作部のデータ構造変換器を介してビットマ
スク制御部に与えると共に、VRAMに対する書き込み
サイクルを終了するとそのビットパタンを選択的に、パ
タンの変化をさせないかあるいは1ビット右もしくは左
に回転(ローテート)し、回転の結果あふれが生じた場
合にはディスティネーションのアドレス発生器の値を右
回転のときには+1し、左回転の時には−1するドット
マスク発生部と、を設けたものである。
【0042】
【作用】1.ビットブロック転送 まず本発明の第一の目的であるビットブロック転送の高
速化に課題を解決する手段がどのように作用するかを説
明する。
【0043】1ラスタ内の転送ワード数を管理する連続
転送カウンタ14を有する連続転送制御シーケンサ15
は、CPUの代わりにVRAMのアクセスサイクルに合
ったリード/ライトサイクルを発生させることにより図
3のようなCPUのサイクルタイムとVRAMのサイク
ルの同期化などのオーバーヘッド27を無くすことがで
き、図4のように同一ラスタ上の転送が途切れること無
く効率良く行える。この連続転送制御シーケンサ15
は、CPUより転送ワード数を連続転送制御レジスタ1
4に設定することにより起動がかかるようにするためプ
ログラムからの操作性も容易になる。
【0044】アドレス加算ポート28、29、30は、
あるラスタの転送対象最後のワードのアドレスから次の
ラスタの転送対象先頭のワードのアドレスとの差をアド
レス加算ポートを通してアドレス生成部内のソースアド
レスレジスタ31、パタンアドレスレジスタ32、ディ
スティネーションレジスタ33を更新することができる
ため、描画制御プログラム側で各ラスタの転送対象先頭
のワードのアドレスを管理する必要が無く、制御レジス
タ類の設定回数を減らすことができる。
【0045】描画許可レジスタ47、48は、同一ラス
タ内の最初と最後のワード内の描画許可領域を示し、図
8のように同一ラスタ上の複数ワードを転送する場合最
初のワードは描画許可レジスタ47で指示されたビット
49に、最後のワードは描画許可レジスタ48で指示さ
れたビット50にのみ書込まれるよう描画許可レジスタ
の内容がVRAMのビットマスクデータとして用いられ
る。最初と最後のワード以外の中間のワードのビットマ
スクデータはFFFF(16進)の固定値を用いる。こ
の値は全ビットに描画するという意味である。これによ
りワード単位でリード/ライトを行うVRAMでもドッ
ト単位の矩形の転送が行えるようになり、1ラスタ転送
時の最初と最後の特別な処理が必要なくなる。
【0046】第2の連続転送カウンタ51は転送ラスタ
数を管理し1ラスタ上の転送が終了するとアドレス発生
器内の先頭アドレスレジスタ52、53、54の値と1
ラスタ内のワード数を保持するラスタアドレスレジスタ
55、56、57の値をそれぞれ加え次のラスタの転送
対象領域の先頭ワードのアドレスを算出し先頭アドレス
レジスタとソースアドレスレジスタ31、パタンアドレ
スレジスタ32、ディスティネーションレジスタ33の
値を更新する。また、先頭アドレスレジスタ52、5
3、54に値を設定するとソースアドレスレジスタ3
1、パタンアドレスレジスタ32、ディスティネーショ
ンレジスタ33にも同じ値が設定されるようにする。こ
れにより描画許可レジスタ47、48とアドレス生成部
内の先頭アドレスレジスタ52、53、54とラスタア
ドレスレジスタ55、56、57と同一ラスタ内の転送
ワード数と転送ラスタ数をそれぞれ第1の連続転送カウ
ンタ14と第2の連続転送カウンタ51に設定すること
で2次元の矩形領域転送が簡単に行える。また、水平1
ラスタ分の転送の固定オーバヘッドであるbを0にでき
る。
【0047】データ構造変換器58、59は、図12の
(a)のようなデータをワードでアクセスし上位バイト
と下位バイトを入れ替え図12の(b)のデータ構造に
合せるバイトスワップ機能と、図12の(c)のような
データをワードでアクセスしビットの並びを逆にして図
12の(d)のデータ構造に合せるワードミラー機能を
持ち、応用プログラムによるデータ構造の違いを吸収す
る。
【0048】2.文字描画 次に本発明の第二の目的である文字描画の高速化に課題
を解決する手段がどのように作用するかを説明する。
【0049】CPUは主記憶上にバイト単位に格納され
た文字フォントデータを1バイトごとに読み込んではV
RAMに書き込んでくる。このようにするにはCPUは
主記憶からVRAMへのバイト単位の連続データ転送命
令を実行すれば良い。この結果、例えばVRAMに至る
データバスが16ビットであれば、文字フォントデータ
は16ビットデータバスの下位8ビット、上位8ビット
に交互に現れる。またVRAMに至るデータバスが32
ビットであれば、文字フォントデータは32ビットデー
タバスの下位から上位までの4つの8ビットバスに順番
に現れる。本発明の特徴であるデータ位置変換部ではC
PUからのバイトデータを画面イメージで常に左詰めに
してバスの残りの部分に0のデータを挿入し、それをデ
ータ操作部に与えるように動作する。
【0050】データ操作部では与えられたデータはまず
データ構造変換器を通り、次にどのように文字を描画す
るかによって以下のようにデータ操作される。(ここで
はデータ構造変換器は与えられたデータを何も加工せず
に次に渡すものとする。) (1)文字のフォント部分のみを描画する場合 データ構造変換器を出たデータはビットマスク用シフタ
に入り、適宜シフトされてVRAMのビット単位の書き
込み制御に用いられる。つまり文字のフォント部分のみ
のVRAMが書き替わり、それ以外の部分は変化しな
い。文字フォントデータはあらかじめ左詰めされている
のでビットマスク用シフタのシフト値は一定値で良い。
このときのVRAMへの書き込みデータ(文字色)はバ
ッファレジスタSあるいはバッファレジスタPにあらか
じめ設定しておき、3値ラスタ演算器にはバッファレジ
スタSあるいはバッファレジスタPの内容をVRAMに
与える演算を指定しておく。もし文字の描画がディステ
ィネーション領域、すなわちこれから文字を描画しよう
とする領域の現在の画像データと描画する文字色のラス
タ演算を必要とする場合は、3値ラスタ演算器にはバッ
ファレジスタSあるいはバッファレジスタPの内容とバ
ッファレジスタDの内容を演算するよう指定しておく。
【0051】(2)文字の前景色と背景色を同時に描画
する場合 データ構造変換器を出たデータはシフタCに入り、適宜
シフトされてビット選択手段に与えられる。文字フォン
トデータはあらかじめ左詰めされているのでシフタのシ
フト値は一回の縦方向転送の間は一定値で良い。このと
き文字データの幅に相当する8ビットの部分のみVRA
Mが書き替えるようにビットマスクレジスタには該当部
分のみ書き込みを許可するマスクパタンを設定してお
く。バッファレジスタPには文字のフォント部分に相当
する前景色(フォアグランドカラー)を、バッファレジ
スタSには文字のフォント以外の部分に相当する背景色
(バックグランドカラー)をそれぞれ設定しておき、2
値ラスタ演算器FにはバッファレジスタPの内容を、2
値ラスタ演算器BにはバッファレジスタSの内容をVR
AMに与える演算を指定しておく。もし文字の描画がデ
ィスティネーション領域の現在の画像データとのラスタ
演算を必要とする場合は2値ラスタ演算器Fにはバッフ
ァレジスタPの内容とバッファレジスタDの内容を演算
するよう、また2値ラスタ演算器Bにはバッファレジス
タSの内容とバッファレジスタDの内容を演算するよう
それぞれ指定しておく。ビット選択手段は文字フォント
の部分では2値ラスタ演算器Fの出力を、文字フォント
以外の部分では2値ラスタ演算器Bの出力をビット単位
で選択し、書き込みデータとしてVRAMに与える。
【0052】このときのVRAMアドレスはCPUアド
レスではなくアドレス発生器が発生するアドレスを用い
る。これはVRAMを縦方向にアクセスするためであ
る。したがってアドレス発生器を構成するディスティネ
ーションアドレスレジスタには文字を書き始めるVRA
Mのアドレスを、またディスティネーションオフセット
レジスタにはディスティネーションアドレスレジスタに
加算すると表示画面上でちょうど1ラスタ下にずれたア
ドレスになるようなオフセット値をあらかじめ設定して
おく。また、アクセスサイクル発生器にはCPUのVR
AMへのライトサイクル発生時にディスティネーション
アドレスレジスタを用いたライトアクセスを発生するよ
うに設定しておく。もし文字の描画がディスティネーシ
ョン領域とのラスタ演算を必要とする場合はCPUのV
RAMへのライトサイクル発生時にディスティネーショ
ンアドレスレジスタを用いたリードアクセスとライトア
クセスを発生するように設定しておく。するとはじめの
リードアクセスでVRAMのディスティネーション領域
の現在の画像データが各プレンのバッファレジスタDに
読み込まれ、次のライトアクセスでラスタ演算した結果
が再びVRAMのディスティネーション領域に書込まれ
る。なお、手段の項で述べたようにディスティネーショ
ンアドレスレジスタはライトアクセス終了後にのみ更新
される。縦方向一列の転送が終了するごとにディスティ
ネーションアドレスレジスタとシフタ類を設定し直して
次の縦方向一列の転送を行なう。該当の文字を完全に描
画するまでこの処理を繰り返す。
【0053】この結果、課題を解決する手段は以上のよ
うに作用して、レジスタ類の設定処理以外はCPUは文
字フォントデータを単にデータ転送するだけで文字を描
画することができる。
【0054】3.線分描画 次に本発明の第三の目的である線分描画の高速化に課題
を解決する手段がどのように作用するかを説明する。
【0055】本発明では水平、垂直、斜45度の三種類
の線分を高速化する。
【0056】(1)水平線分描画 水平線分は描画する線分の長さが長い場合と短い場合に
分けて説明する。長さの概念は相対的、主観的なもので
あるが、ここで言う長さは次の観点で評価するものとす
る。プレン方式のVRAMの場合プレン当りのVRAM
データバスのビット数は一度にアクセスできる画素数に
等しい。つまりデータバスが16ビットであれば一度に
16画素のデータをアクセスできる。そこで一度にアク
セスできる画素数から該画素数の1/2程度までの間の
値を一つ選んでしきい値とし、そのしきい値より多い画
素数で構成される線分を長い線分、そのしきい値より少
ない画素数で構成される線分を短い線分と定義する。
【0057】(1a)線分が長い場合の水平線分描画 データ操作部、アドレス発生器、アクセスサイクル発生
器、連続転送カウンタ、およびマスクパタン生成部を用
いて描画する。CPUは描画開始と終了の座標から線分
の両端のマスクパタンを作成し、マスクパタン生成部に
設定する。このとき描画すべき線分の色はバッファレジ
スタSあるいはバッファレジスタPにあらかじめ設定し
ておき、3値ラスタ演算器にはバッファレジスタSある
いはバッファレジスタPの内容をVRAMに与える演算
を指定しておく。もし線分の描画がディスティネーショ
ン領域、すなわちこれから線分を描画しようとする領域
の現在の画像データと描画する線分色のラスタ演算を必
要とする場合は、3値ラスタ演算器にはバッファレジス
タSあるいはバッファレジスタPの内容とバッファレジ
スタDの内容を演算するよう指定しておく。
【0058】書き込みに用いるVRAMのアドレスはC
PUアドレスではなくアドレス発生器が発生するアドレ
スを用いる。アドレス発生器を構成するディスティネー
ションアドレスレジスタには書き初めの画素を含むVR
AMのアドレスを、またディスティネーションオフセッ
トレジスタには右方向に描画する場合は+1を、左方向
に描画するときは−1をあらかじめ設定しておく。ま
た、アクセスサイクル発生器には連続転送レジスタのV
RAMへのライトサイクル発生時にディスティネーショ
ンアドレスレジスタを用いたライトアクセスを発生する
ように設定しておく。もし線分の描画が線分の色とディ
スティネーション領域とのラスタ演算を必要とする場合
は連続転送レジスタのVRAMへのライトサイクル発生
時にディスティネーションアドレスレジスタを用いたリ
ードアクセスとライトアクセスを発生するように設定し
ておく。するとはじめのリードアクセスでVRAMのデ
ィスティネーション領域の現在の画像データが各プレン
のバッファレジスタDに読み込まれ、次のライトアクセ
スでラスタ演算した結果が再びVRAMのディスティネ
ーション領域に書込まれる。なお、手段の項で述べたよ
うにディスティネーションアドレスレジスタはライトア
クセス終了後にのみ更新される。
【0059】以上の前処理を行なった後、連続転送カウ
ンタに描画すべきワード数分の連続ライトを指示するこ
とにより、長い水平線分を描画することができる。VR
AMのデータバスが16ビットであれば最大16画素ず
つ描画できる。ラスタ演算を必要とする場合は、連続転
送カウンタに描画すべきワード数分の連続リードライト
を指示すればよい。
【0060】(1b)線分が短い場合の水平線分描画 データ操作部、アドレス発生器、アクセスサイクル発生
器、連続転送カウンタ、およびドットマスク生成部を用
いて描画する。CPUは書き初めのビットパタンを初期
値としてドットマスク生成部に設定する。また右方向、
左方向のどちらに向かって描画するかを合わせて指示す
る。このとき描画すべき線分の色は上記と同様に、バッ
ファレジスタSあるいはバッファレジスタPにあらかじ
め設定しておき、3値ラスタ演算器にはバッファレジス
タSあるいはバッファレジスタPの内容をVRAMに与
える演算を指定しておく。もし線分の描画がディスティ
ネーション領域、すなわちこれから線分を描画しようと
する領域の現在の画像データと描画する線分色のラスタ
演算を必要とする場合は、3値ラスタ演算器にはバッフ
ァレジスタSあるいはバッファレジスタPの内容とバッ
ファレジスタDの内容を演算するよう指定しておく。
【0061】書き込みに用いるVRAMのアドレスはC
PUアドレスではなくアドレス発生器が発生するアドレ
スを用いる。アドレス発生器を構成するディスティネー
ションアドレスレジスタには書き初めの画素を含むVR
AMのアドレスを、またディスティネーションオフセッ
トレジスタには0をあらかじめ設定しておく。また、ア
クセスサイクル発生器には連続転送レジスタのVRAM
へのライトサイクル発生時にディスティネーションアド
レスレジスタを用いたライトアクセスを発生するように
設定しておく。もし線分の描画が線分の色とディスティ
ネーション領域とのラスタ演算を必要とする場合は連続
転送レジスタのVRAMへのライトサイクル発生時にデ
ィスティネーションアドレスレジスタを用いたリードア
クセスとライトアクセスを発生するように設定してお
く。するとはじめのリードアクセスでVRAMのディス
ティネーション領域の現在の画像データが各プレンのバ
ッファレジスタDに読み込まれ、次のライトアクセスで
ラスタ演算した結果が再びVRAMのディスティネーシ
ョン領域に書込まれる。なお、手段の項で述べたように
ディスティネーションアドレスレジスタはライトアクセ
ス終了後にのみ更新される。
【0062】以上の前処理を行なった後、連続転送カウ
ンタに描画すべき画素数分の連続ライトを指示すること
により、短い水平線分を描画することができる。VRA
Mのデータバスと無関係に1画素ずつ描画する。一回の
書込みごとにドットマスク発生部はビットパタンを右ま
たは左に回転し、描画すべき画素がVRAMのワード境
界を超えるとディスティネーションアドレスレジスタを
+1または−1する。画素の書き込みは1ドット単位で
あるがCPUはワード境界を意識する必要がないので短
い水平線分を描画するには適した方法である。なおラス
タ演算を必要とする場合は、連続転送カウンタに描画す
べき画素数分の連続リードライトを指示すればよい。
【0063】(2)垂直線分描画 データ操作部、アドレス発生器、アクセスサイクル発生
器、連続転送カウンタ、およびドットマスク生成部を用
いて描画する。CPUは書き初めのビットパタンを初期
値としてドットマスク生成部に設定する。また右方向、
左方向のどちらにもパタンを移動しないよう、合わせて
指示する。このとき描画すべき線分の色は上記と同様
に、バッファレジスタSあるいはバッファレジスタPに
あらかじめ設定しておき、3値ラスタ演算器にはバッフ
ァレジスタSあるいはバッファレジスタPの内容をVR
AMに与える演算を指定しておく。もし線分の描画がデ
ィスティネーション領域、すなわちこれから線分を描画
しようとする領域の現在の画像データと描画する線分色
のラスタ演算を必要とする場合は、3値ラスタ演算器に
はバッファレジスタSあるいはバッファレジスタPの内
容とバッファレジスタDの内容を演算するよう指定して
おく。
【0064】書き込みに用いるVRAMのアドレスはC
PUアドレスではなくアドレス発生器が発生するアドレ
スを用いる。アドレス発生器を構成するディスティネー
ションアドレスレジスタには書き初めの画素を含むVR
AMのアドレスを設定する。またディスティネーション
オフセットレジスタには、画面の上方向に向かって描画
する場合はディスティネーションアドレスレジスタに加
算すると表示画面上でちょうど1ラスタ上にずれたアド
レスになるようなオフセット値を、また画面の下方向に
向かって描画する場合はディスティネーションアドレス
レジスタに加算すると表示画面上でちょうど1ラスタ下
にずれたアドレスになるようなオフセット値をあらかじ
め設定しておく。また、アクセスサイクル発生器には連
続転送レジスタのVRAMへのライトサイクル発生時に
ディスティネーションアドレスレジスタを用いたライト
アクセスを発生するように設定しておく。もし線分の描
画が線分の色とディスティネーション領域とのラスタ演
算を必要とする場合は連続転送レジスタのVRAMへの
ライトサイクル発生時にディスティネーションアドレス
レジスタを用いたリードアクセスとライトアクセスを発
生するように設定しておく。するとはじめのリードアク
セスでVRAMのディスティネーション領域の現在の画
像データが各プレンのバッファレジスタDに読み込ま
れ、次のライトアクセスでラスタ演算した結果が再びV
RAMのディスティネーション領域に書込まれる。な
お、手段の項で述べたようにディスティネーションアド
レスレジスタはライトアクセス終了後にのみ更新され
る。
【0065】以上の前処理を行なった後、連続転送カウ
ンタに描画すべき画素数分の連続ライトを指示すること
により、垂直線分を描画することができる。VRAMの
データバスと無関係に1画素ずつ描画する。なおラスタ
演算を必要とする場合は、連続転送カウンタに描画すべ
き画素数分の連続リードライトを指示すればよい。
【0066】(3)斜45度線分描画 データ操作部、アドレス発生器、アクセスサイクル発生
器、連続転送カウンタ、およびドットマスク生成部を用
いて描画する。CPUは書き初めのビットパタンを初期
値としてドットマスク生成部に設定する。また右方向、
左方向のどちらに向かって描画するかを合わせて指示す
る。このとき描画すべき線分の色は上記と同様に、バッ
ファレジスタSあるいはバッファレジスタPにあらかじ
め設定しておき、3値ラスタ演算器にはバッファレジス
タSあるいはバッファレジスタPの内容をVRAMに与
える演算を指定しておく。もし線分の描画がディスティ
ネーション領域、すなわちこれから線分を描画しようと
する領域の現在の画像データと描画する線分色のラスタ
演算を必要とする場合は、3値ラスタ演算器にはバッフ
ァレジスタSあるいはバッファレジスタPの内容とバッ
ファレジスタDの内容を演算するよう指定しておく。
【0067】書き込みに用いるVRAMのアドレスはC
PUアドレスではなくアドレス発生器が発生するアドレ
スを用いる。アドレス発生器を構成するディスティネー
ションアドレスレジスタには書き初めの画素を含むVR
AMのアドレスを設定する。またディスティネーション
オフセットレジスタには、画面の上方向に向かって描画
する場合はディスティネーションアドレスレジスタに加
算すると表示画面上でちょうど1ラスタ上にずれたアド
レスになるようなオフセット値を、また画面の下方向に
向かって描画する場合はディスティネーションアドレス
レジスタに加算すると表示画面上でちょうど1ラスタ下
にずれたアドレスになるようなオフセット値をあらかじ
め設定しておく。また、アクセスサイクル発生器には連
続転送レジスタのVRAMへのライトサイクル発生時に
ディスティネーションアドレスレジスタを用いたライト
アクセスを発生するように設定しておく。もし線分の描
画が線分の色とディスティネーション領域とのラスタ演
算を必要とする場合は連続転送レジスタのVRAMへの
ライトサイクル発生時にディスティネーションアドレス
レジスタを用いたリードアクセスとライトアクセスを発
生するように設定しておく。するとはじめのリードアク
セスでVRAMのディスティネーション領域の現在の画
像データが各プレンのバッファレジスタDに読み込ま
れ、次のライトアクセスでラスタ演算した結果が再びV
RAMのディスティネーション領域に書込まれる。な
お、手段の項で述べたようにディスティネーションアド
レスレジスタはライトアクセス終了後にのみ更新され
る。
【0068】以上の前処理を行なった後、連続転送カウ
ンタに描画すべき画素数分の連続ライトを指示すること
により、任意の方向に斜45度線分を描画することがで
きる。つまり一回の書込みごとにドットマスク発生部は
ビットパタンを右または左に回転すると共にディスティ
ネーションアドレスレジスタの値を1ラスタ上方向また
は下方向に移動する。さらに、描画すべき画素がVRA
Mのワード境界を超えるとディスティネーションアドレ
スレジスタを上下1ラスタ移動するのに加えて+1また
は−1するのでCPUはワード境界を意識することなく
斜45度線分を描画することができる。なおラスタ演算
を必要とする場合は、連続転送カウンタに描画すべき画
素数分の連続リードライトを指示すればよい。
【0069】
【実施例】まず、本発明による表示描画装置300の全
体構成例を図15により説明する。
【0070】本装置300は、中央演算処理装置である
CPU100、記憶装置200を備えた一般的な情報処
理装置の、アドレスバス102、データバス103、コ
ントロールバス101を含むシステムバスと接続し、C
PU100からの制御を受ける構成を取る。また、CP
U100、記憶装置200、本装置300全体が、より
大きなシステムのサブセットであってもよい。
【0071】本装置300は、描画系として画像データ
を格納するプレン構成を持つVRAM1、VRAM1に
直接描画するデータを加工及び操作するデータ操作部3
06、上位のアクセス要求源(後述の表示制御部30
1、CPU100もしくは後述のアクセスサイクル発生
器10)からのアクセス要求によりVRAM1のアクセ
スタイミングなどを制御するメモリ制御部307、上位
のアクセス要求源(CPU100もしくは後述の連続転
送シーケンサ15)からのアクセス要求を一回以上のア
クセスに拡張してメモリ制御部307を起動するアクセ
スサイクル発生器10、CPU100によらずVRAM
アドレスを発生するアドレス発生器308、設定された
回数分アクセスサイクル発生器10へ起動をかける連続
転送シーケンサ15、連続転送シーケンサ15と組合せ
て描画領域、ドット位置、文字展開制御に寄与するマス
クパタン生成部・ドットマスク発生部・データ位置変換
部305があり、表示系として表示タイミングを司る表
示制御部301、表示アドレス生成部302、表示アド
レスと描画アドレスとを切換えるアドレスセレクタ31
3、CRT、フラットディスプレイ等の表示器304、
パレットメモリやDACなどを含む表示器インタフェー
ス303で構成する。なお、連続転送シーケンサ15を
起動したときに発生するアクセスサイクル発生器10に
対するアクセス要求タイミングは、CPU100がアク
セスサイクル発生器10に対して発生するアクセス要求
タイミングと等しくすることが望ましい。これによりア
クセスサイクル発生器10は、起動元がCPU100で
あっても連続転送シーケンサ15であっても同じように
動作することができる。同様に、アクセスサイクル発生
器10を起動したときに発生するメモリ制御部307に
対するアクセス要求タイミングは、CPU100がメモ
リ制御部307に対して発生するアクセス要求タイミン
グと等しくすることが望ましい。これによりメモリ制御
部307は、起動元がCPU100であってもアクセス
サイクル発生器10であっても同じように動作すること
ができる。
【0072】図15の構成は以下に述べるビットブロッ
ク転送、文字描画そして線分描画に関する実施例に共通
の部分である。なお、マスクパタン生成部・ドットマス
ク発生部・データ位置変換部305は点で区切った三つ
の機能要素で構成するように記載したが、後に詳述する
ように、ビットブロック転送ではマスクパタン生成部、
文字描画ではデータ位置変換部、線分描画ではマスクパ
タン生成部もしくはドットマスク発生部として動作する
ものである。したがって本発明を実施するにあたり使用
しない機能要素は省略しても構わない。以下、本発明の
表示描画装置300をビットブロック転送、文字描画、
線分描画に分けて詳述する。
【0073】1.ビットブロック転送 1.1 第一の実施例 ビットブロック転送は多種多様の転送処理の総称であ
る。最も簡単な処理の一つはある色でVRAM1の指定
領域を塗りつぶすものであり、複雑な処理の一つはソー
ス、パタン、ディスティネーションの3種類のデータを
読み込み、3値のラスタ演算を行なった後にディスティ
ネーションとしてVRAM1の指定領域に書き込むもの
である。以下ビットブロック転送における本発明の第一
の実施例を説明する。前述のように図15が本実施例の
全体構成の一例である。同図におけるデータ操作部30
6は図16に示すVRAM1の全プレンに共通な部分
と、図17に示すVRAM1の各プレン単位の部分32
0から成る。
【0074】図16のデータ操作部306の全プレンに
共通な部分は外部データのフォーマットを鏡像反転・ス
ワップもしくはそれらの組合せにより外部データのフォ
ーマット変換を行うデータ構造変換器58、59、VR
AM1への書き込みをビット単位で制御するためのビッ
トマスクレジスタ331、ビットマスクレジスタ331
の内容とデータ構造変換器58のデータをビットごとに
論理積の演算を行なうAND手段332、ビットマスク
レジスタ331もしくはデータ構造変換器58もしくは
AND手段332のデータをシフトするビットマスク用
シフタ333、データ構造変換器58のデータの前回の
内容を保持するマージレジスタC334、データ構造変
換器58のデータとマージレジスタC334のデータを
シフトするシフタC335、後述の各プレンのプレン単
位リードデータ出力制御手段322の内容を各ビットご
とに論理和の演算を行なってCPU100へのリードデ
ータを合成するリードデータ合成手段336から構成さ
れる。データ構造変換器58の必要性および動作の説明
は後述のビットブロック転送における本発明の第六の実
施例(1.6)で述べるので、詳細はそちらを参照して
いただきたい。
【0075】次に図17のデータ操作部306のプレン
単位の部分320は、プレン単位のVRAMリード可否
を選択するデータを記憶するリードプレン選択手段32
1、リードプレン選択手段321に記憶・保持されたリ
ードプレン選択情報により後述のリードデータ選択手段
328で選択したデータを信号線群341を介してリー
ドデータ合成手段336に与えるプレン単位リードデー
タ出力制御手段322、プレン単位のVRAMライト可
否を選択するライトプレン選択手段323、ライトプレ
ン選択手段323とビットマスク用シフタ333の出力
を合成して各プレンのVRAM1をビット単位で書き込
み制御するプレンビットマスク手段324、VRAM1
のデータもしくはデータ構造変換器58のデータをソー
ス領域のデータとして保持するバッファレジスタS2、
VRAM1のデータもしくはデータ構造変換器58のデ
ータをパタン領域のデータとして保持するバッファレジ
スタP3、VRAM1のデータもしくはデータ構造変換
器58のデータをディスティネーション領域のデータと
して保持するバッファレジスタD4、VRAM1もしく
はバッファレジスタS2もしくはデータ構造変換器58
のデータの前回の内容を保持するマージレジスタS7、
バッファレジスタP3もしくはデータ構造変換器58の
データの前回の内容を保持するマージレジスタP8、バ
ッファレジスタS2のデータとマージレジスタS7のデ
ータをシフトするシフタS5、バッファレジスタP3の
データとマージレジスタP8のデータをシフトするシフ
タP6、シフタS5とシフタP6とバッファレジスタD
4もしくはVRAM1の内容を入力として論理演算を行
なう3値ラスタ演算器9、シフタS5とバッファレジス
タD4の内容を入力として論理演算を行なう2値ラスタ
演算器B325、シフタP6とバッファレジスタD4の
内容を入力として論理演算を行なう2値ラスタ演算器F
326、シフタC335の出力各ビットについて該ビッ
トの値が0のときは該ビット位置の2値ラスタ演算器B
325の出力データを選択しシフタC335の出力各ビ
ットについて該ビットの値が1のときは該ビット位置の
2値ラスタ演算器F326の出力データを選択するビッ
ト選択手段327、3値ラスタ演算器9もしくはビット
選択手段327の内容をVRAM1に与えるライトデー
タ選択手段329、リードプレン選択手段321により
該プレンが選択されているときにVRAM1のデータも
しくは3値ラスタ演算器9の内容をプレン単位リードデ
ータ出力制御手段322に与えるリードデータ選択手段
328から構成される。以上が図15におけるデータ操
作部306の一構成例である。
【0076】図15のアドレス発生器308の構成例を
図18に示す。アドレス発生器308はVRAM1上の
ソース領域のアドレスを保持するソースアドレスレジス
タ31、ディスティネーション領域のアドレスを保持す
るディスティネーションアドレスレジスタ33、パタン
領域のアドレスを保持するパタンアドレスレジスタ3
2、ソースアドレスレジスタ31の内容を後述のアクセ
スサイクル発生器10によるリードアクセスサイクルの
終了時に加算・更新するための値を保持するソースオフ
セットレジスタ38、ディスティネーションアドレスレ
ジスタ33の内容を後述のアクセスサイクル発生器10
によるライトアクセスサイクルの終了時に加算・更新す
るための値を保持するディスティネーションオフセット
レジスタ41、パタンアドレスレジスタ32の内容を後
述のアクセスサイクル発生器10によるリードアクセス
サイクルの終了時に加算・更新するための値を保持する
パタンオフセットレジスタ42、ソースアドレスレジス
タ31とソースオフセットレジスタ38もしくはディス
ティネーションアドレスレジスタ33とディスティネー
ションオフセットレジスタ41もしくはパタンアドレス
レジスタ32とパタンオフセットレジスタ42の内容を
加算して各アドレスレジスタの値を更新するためのアド
レス加算器A357、CPU100の書き込みデータと
ソースアドレスレジスタ31もしくはディスティネーシ
ョンアドレスレジスタ33もしくはパタンアドレスレジ
スタ32の内容を加算して各アドレスレジスタの値を更
新するためのアドレス加算器B358から構成される。
なお同図においてアドレスレジスタ選択手段361とオ
フセットレジスタ選択手段362の切り替え信号37
5、ソースアドレスレジスタ更新信号371、ディステ
ィネーションアドレシレジスタ更新信号372、そして
パタンアドレスレジスタ更新信号373の各信号線をま
とめて表現したのが、後述のアクセスサイクル発生器1
0の構成例(図35)で説明する対象領域信号作成部1
15が出力する対象領域選択信号86である。
【0077】次に図15のアクセスサイクル発生器10
の動作例を表1および表2に示す。
【0078】
【表1】
【0079】
【表2】
【0080】アクセスサイクル発生器10はCPU10
0もしくは後述の連続転送シーケンサ15によるVRA
M1の読み出し要求があった場合は、表1のようにアド
レス発生器308を用いてソース、ディスティネーショ
ン、パタンの各領域のアクセスを少なくとも1つ以上含
むリードアクセスを発生してVRAM1のメモリ制御部
307を駆動する。つまりアクセスサイクル発生器10
は1回の読み出し要求を複数回のリードアクセスに拡張
する機能を持つ。このときのVRAM1からのリードデ
ータはソース領域リードの場合はバッファレジスタS2
に、パタン領域リードの時はバッファレジスタP3に、
そしてディスティネーション領域リードの時はバッファ
レジスタD4にそれぞれ格納する。またソース領域リー
ドの場合はバッファレジスタS2に以前格納されていた
値はマージレジスタS7に、パタン領域リードの場合は
バッファレジスタP3に以前格納されていた値はマージ
レジスタP8にそれぞれ移動する。
【0081】CPU100もしくは後述の連続転送シー
ケンサ15によるVRAM1の書き込み要求があった場
合は、表2のようにアドレス発生器308を用いてディ
スティネーション領域のライトアクセスもしくはリード
アクセスとライトアクセスの組を発生してVRAM1の
メモリ制御部307を駆動する。ディスティネーション
領域リードの時はVRAM1からのリードデータをバッ
ファレジスタD4に格納する。表2の項番2はCPU1
00もしくは後述の連続転送シーケンサ15によるライ
トの連続アクセスの時にもライトデータとディスティネ
ーションのデータのラスタ演算を行なうために設けたも
ので、通常CPU100もしくは後述の連続転送シーケ
ンサ15によるリードおよびライトの連続アクセスの時
には表1の項番1から項番7と表2の項番1を組み合わ
せて描画する。
【0082】アクセスサイクル発生器10の一構成例を
図35に示す。同図において90はアクセスサイクル発
生器制御レジスタA、110はアクセスサイクル発生器
制御レジスタA90の設定内容に従ってアクセスサイク
ルを発生させるシーケンサ部(シーケンサ用レジスタ1
13および更新条件検出部111により構成)のシーケ
ンサ用レジスタ113への初期設定値を作成する動作設
定条件検出部、113はシーケンサ用レジスタ、111
はシーケンサ用レジスタ113の更新値を作成する更新
条件検出部、112は選択手段、115はシーケンサ用
レジスタ113の内容から現在のアクセスがソース、パ
タン、ディスティネーションのどの領域に対するものか
を解析してコード化し、アドレス発生器308やデータ
操作部306に指示する対象領域選択信号86を作成す
る対象領域信号作成部、114はメモリ制御部307に
対してアクセス要求信号89を作成するアクセス信号生
成部、116はAND手段である。またアクセスサイク
ル発生器10に入出力する信号線は、後述の連続転送シ
ーケンサ15によるアクセス要求信号104とCPU1
00によるアクセス要求信号101のうちのいずれかを
選択手段311によって選択したアクセスサイクル発生
器10の起動信号、該起動信号に対する応答信号10
5、メモリ制御部307に対するアクセス要求信号8
9、アクセス要求信号89に対する応答信号106、お
よび対象領域選択信号86である。前述の読み出し要
求、あるいは書き込み要求があったときにどのようなア
クセスを発生するか、すなわち表1および表2のどの項
番の動作をさせるかはアクセスサイクル発生器制御レジ
スタA90により、あらかじめ指定しておく。このほか
に後述の先読み動作時にソース、パタンのいずれを読む
かを指定するためのアクセスサイクル発生器制御レジス
タB91を設けてもよい。(このレジスタについては後
述の二次元ビットブロック転送に関する第七の実施例の
説明図である図29に示してある。またアクセスサイク
ル発生器制御レジスタB91に指定するのは表1の項番
1から項番3までのいずれかである。)なお、ソースア
ドレスレジスタ31およびパタンアドレスレジスタ32
はアクセスサイクル発生器10が発生するリードアクセ
ス終了時に更新し、ディスティネーションアドレスレジ
スタ33はアクセスサイクル発生器10が発生するライ
トアクセス終了時に更新するように制御する。
【0083】次に図35を用いてアクセスサイクル発生
器10の動作を説明する。アクセスサイクル発生器10
が動作していないときは信号線117によって選択手段
112は動作設定条件検出部110の出力を選択してい
る。選択手段311を介して外部からアクセスサイクル
発生器10の起動信号が入力されると動作設定条件検出
部110はアクセスサイクル発生器制御レジスタA90
の設定内容を解析してシーケンサ用レジスタ113に対
する初期値を出力する。この初期値は選択手段112を
介して信号線118としてシーケンサ用レジスタ113
とアクセス信号生成部114に供給される。シーケンサ
用レジスタ113とアクセス信号生成部114には連続
したクロック信号を与えているので信号線118の内容
は逐次シーケンサ用レジスタ113とアクセス信号生成
部114に反映されてゆく。このためシーケンサ用レジ
スタ113には表1もしくは表2のいずれのアクセスを
行なうかの情報が記録され、アクセス信号生成部114
はアクセス要求信号89にアクセス要求の出力を開始す
る。動作設定条件検出部110による初期値がシーケン
サ用レジスタ113に記録されると、信号線119には
記録した内容が出力されるので、そのことを参照して更
新条件検出部111は信号線117によって選択手段1
12が更新条件検出部111の出力を選択するように切
り替える。アクセス信号生成部114は応答信号106
によるウエイト制御(応答が来るまでアクセス要求を出
力し続ける制御)を行ないながら1回のアクセスサイク
ルを終了すると、信号線120によってサイクルの終了
を更新条件検出部111に伝達する。更新条件検出部1
11はシーケンサ用レジスタ113の内容と信号線12
0のサイクル終了情報に従ってシーケンサ用レジスタ1
13の次回の保持すべきデータを作成する。
【0084】シーケンサ用レジスタ113の構成方法は
各種考えられるが、もっとも簡単な方法は表1、表2の
アクセスサイクル、すなわちソース領域リード、パタン
領域リード、ディスティネーション領域リード、および
ディスティネーション領域ライトのそれぞれに対して1
ビットずつのレジスタを設け、各ビットに優先順位を付
けて1ビットずつ処理してゆく方法である。例えばソー
ス領域リードの優先順位をもっとも高くし、次いでパタ
ン領域リード、ディスティネーション領域リード、ディ
スティネーション領域ライトの順番で処理を行なう4ビ
ットのレジスタでシーケンサを構成した場合を例に説明
する。アクセスサイクル発生器制御レジスタA90に表
1の項番5のアクセスを設定し、リードアクセスでアク
セスサイクル発生器10を起動すると、動作設定条件検
出部110はソース領域リードとディスティネーション
領域リードに相当するレジスタにアクセス発生情報を記
録するためのデータを作成し、そのデータは選択手段1
12を介してシーケンサ用レジスタ113の該当ビット
に記録される。対象領域信号生成部115はシーケンサ
用レジスタ113の内容を参照し、アクセスを発生すべ
きソース領域リードとディスティネーション領域リード
のうち優先順位の高いソース領域リードを行なうべきと
判断してソース領域を示すコードを対象領域選択信号8
6に出力する。更新条件検出部111は信号線120に
よる1回のアクセス終了を待ってから前回のシーケンサ
用レジスタ113の内容のうちもっとも優先順位の高い
ビットを落として次の記録データを作成する。この場合
はソース領域リードのデータを落としてディスティネー
ション領域リードのアクセス発生情報のみとする。この
データは次のクロックでシーケンサ用レジスタ113に
記録され、またアクセス信号生成部114も再度起動し
て次のアクセス(ここではディスティネーション領域リ
ード)を行なう。全てのアクセス発生情報がなくなるま
で更新が行なわれ、最後のサイクルの終了と共に信号線
117の制御により選択手段112が動作設定条件検出
部110の出力を選択するようにして今回のアクセス発
生器10のサイクルを終了する。なおアクセス信号生成
部114は1回のアクセス信号の発生毎に応答信号10
6を受信した後、AND手段116に対して応答信号を
出力する。通常AND手段116の他の入力は”偽”の
状態となっているが、更新条件検出部111は1回の起
動の最後のサイクルを検出し、この最後のサイクルの時
のみ信号線121を”真”の状態にすることでアクセス
信号生成部114が発生する応答信号を105に伝達す
る。上記の例ではディスティネーション領域リードのサ
イクル時に応答信号105上に該信号が発生する。
【0085】次に図15の連続転送シーケンサ15を説
明する。連続転送シーケンサ15は、ライトサイクルの
連続もしくはリードサイクルとライトサイクルの連続の
アクセスサイクルを発生してアクセスサイクル発生器1
0を指定回数起動する。これはCPU100の連続した
データ転送命令と同等の動作を行なうものである。CP
U100の命令による連続したデータ転送と連続転送シ
ーケンサ15によるデータ転送の違いは、後者が表示系
300を接続するバス101、102、103の転送ス
ピードや、バス101、102、103の制御タイミン
グと表示系300の制御タイミングの違いを吸収するた
めのタイミング同期化手段(図示せず)によって生じる
タイミングオーバヘッド、すなわち時間損失を無くすと
共に、次に述べるマスクパタン生成部305と連動して
水平1ラインの転送における両端のマスク処理を同時に
実行できる効果をもつことである。図36は連続転送シ
ーケンサ15の一構成例である。同図において131は
カウンタ用レジスタ、132はデクリメント手段、13
0はカウンタ用レジスタ131の入力選択手段、134
はシーケンス制御部、135はアクセス信号作成部、1
33はOR手段である。このうち、カウンタ用レジスタ
131、デクリメント手段132、および入力選択手段
130をまとめて連続転送カウンタ14と呼ぶ。また連
続転送シーケンサ15に入出力する信号線は、CPU1
00のデータバス103、CPU100のカウンタ用レ
ジスタ131に対する書き込み信号、104は前述のア
クセスサイクル発生器10に対するアクセス要求信号
(起動信号)、105はアクセスサイクル発生器10か
らの応答信号、107は次に述べるマスクパタン生成部
305内のマスクパタンを選択するため、現在連続転送
シーケンサ15が発生しているサイクルが一回目なの
か、最終回なのか、もしくはそれ以外なのかを示す連続
転送シーケンサ15のステータス信号である。
【0086】連続転送用のマスクパタン生成部305
は、連続転送シーケンサ15の一回目の書き込み転送時
および最終回の書き込み転送時にそれぞれ指定のビット
マスクパタンを、また一回目と最終回の間の書き込み転
送時には全ビットの書き込みを許可するビットマスクパ
タンを生成してこれを外部データとし、データ操作部3
06のデータ構造変換器58を介してビットマスク制御
部に与える。連続転送シーケンサ15の一回目の書き込
み転送時のビットマスクパタンは図7における第一の描
画許可レジスタ47に、また最終回の書き込み転送時の
ビットマスクパタンは第二の描画許可レジスタ48にあ
らかじめ設定しておく。
【0087】図36のシーケンス制御部134はカウン
タ用レジスタ131の出力線136を入力データとして
OR手段133が出力するクロック信号で動作する。シ
ーケンス制御部134の具体的な状態遷移の制御例は例
えば図28(a)および(b)に示すようなものであ
る。同図(a)はソースもしくはパタン領域のデータ先
読みをしない場合、そして同図(b)はソースもしくは
パタン領域のデータ先読みをする場合の制御例である。
ソースもしくはパタンの開始位置の位相とディスティネ
ーションの開始位置の位相との相関関係により、初めの
一回のリード/ライトのときだけ、リードを2回行なわ
ねばならないことがある。これはソースもしくはパタン
のデータをバッファレジスタS2もしくはバッファレジ
スタP3だけでなく、あらかじめマージレジスタS7も
しくはマージレジスタP8にも読み込み、ライトデータ
に欠けがないようにするための処理である。先読みをす
る、しないの判断は、CPU100がしてもよいし、位
相関係を比較して判断する手段を設けてもよい。図28
(a)のデータの先読みをしない場合には、空き90
0、第1回901、中間902、そして最終回903の
4つの状態が存在する。状態・空き900以外の3状態
では、連続転送シーケンサ15がライトの連続を指示さ
れたときは一回のライトサイクル毎に状態を更新し、リ
ード・ライトの連続を指示されたときは一回のリードサ
イクルとライトサイクルの組ごとに状態を更新する。具
体的には連続転送カウンタ14のカウントダウンの方法
を工夫することによりライトの連続、リード・ライトの
連続を切り替えることができる。例えばカウンタ用レジ
スタ131がビット0(LSB)からビットn(MS
B)の計n+1ビットとしたとき、最下位のビット0を
リードとライトの識別ビットとする。そしてそのビット
の値が”0”のときはライト、”1”のときはリードと
定義する。またカウンタ用レジスタ131のビット1を
新たにLSBとしたビット1からビットnまでの計nビ
ットを出力線136としてシーケンス制御部136に与
える。初期状態においてビット0の値を”0”とし、デ
ータバス103によるカウンタ用レジスタ131への書
き込み時には必ず”0”が書かれるようにする。
【0088】このような条件の下、リード・ライトの連
続を指示されたときはデクリメント手段132で1ずつ
カウントダウンすることによりリード・ライトの順番に
サイクルを発生するだけでなく、リード・ライトの2回
のサイクルでシーケンス制御部134へのカウント値が
変化する。またライトの連続を指示されたときはデクリ
メント手段132で2ずつカウントダウンすることによ
りライトの連続サイクルが発生し、かつ1回のライトサ
イクルでシーケンス制御部134へのカウント値が変化
する。以上の方法でライトの連続やリード・ライトの連
続サイクルを切り替えて発生することができるが、この
ほかにも別の手段(図36と異なる手段)で上記と同じ
動作をさせることができる。例えばライトの連続のとき
はシーケンス制御部134が1回起動信号137によっ
てアクセス信号作成部135を起動するごとに1回カウ
ントダウンし、リード・ライトの連続のときはアクセス
信号作成部135を2回起動するごとに1回カウントダ
ウンするようにしてもよい。また、状態・第1回901
の時にライトとなると、第一の描画許可レジスタ47の
内容をマスクパタンとして選択するよう、ステータス信
号107を介して制御を行なう。状態・中間902の時
にライトとなると、全ビットの書き込みを許可するビッ
トマスクパタンをマスクパタンとして選択するよう、ス
テータス信号107を介して制御を行なう。そして状態
・最終回903の時にライトとなると、第二の描画許可
レジスタ48の内容をマスクパタンとして選択するよ
う、ステータス信号107を介して制御を行なう。状態
・空き900は連続転送シーケンサ15(厳密にはシー
ケンス制御部134。以下同じ)が動作していないとき
の状態を示す。これは初期状態として経路905によっ
てこの状態になり、以後連続転送シーケンサ15に起動
がかかるまで経路906によりこの状態に留まる。連続
転送シーケンサ15に起動がかかると経路907によっ
て状態・第1回901になる。図36の場合、起動はC
PU100が連続転送カウンタ14(厳密にはカウンタ
用レジスタ131)に転送回数に相当する値を書き込む
ことによって行なう。連続転送シーケンサ15による指
定転送回数が1回の時は経路908により状態・空き9
00に戻る。連続転送シーケンサ15による指定転送回
数が2回の時は経路909により状態・最終回903に
遷移する。また指定転送回数が3回以上の時は経路91
0により状態・中間902に遷移する。状態・中間90
2では残りの転送回数が1回になるまで経路911によ
って状態・中間902に留まり、転送回数が1回になる
と経路912により状態・最終回903に遷移する。状
態・最終回903では1回転送が終了すると経路913
により状態・空き900に戻る。
【0089】次にデータの先読みをする場合を説明す
る。図28(b)のデータの先読みをする場合には、先
読み904という状態が増えて計5つの状態が存在す
る。図28(a)と異なるのは初期状態として状態・空
き900となった後、連続転送シーケンサ15に起動が
かかると経路914によって状態・先読み904に遷移
することである。状態・先読み904は、ソースもしく
はパタン領域に対するリードサイクルを発生させること
が目的である。連続転送シーケンサ15がこの状態の時
にはアクセスサイクル発生器制御レジスタA90の代わ
りにアクセスサイクル発生器制御レジスタB91を選択
してからアクセスサイクル発生器10に対してリードサ
イクルを発生する(図29参照)。前述のようにアクセ
スサイクル発生器制御レジスタB91は先読み動作時に
ソース、パタンのいずれを読むかを指定するためのレジ
スタなので、これに指定するのは表1の項番1から項番
3までのいずれかである。アクセスサイクル発生器制御
レジスタB91が選択されるのは状態・先読み904の
ときだけで、その他の場合はもっぱらアクセスサイクル
発生器制御レジスタA90の内容がアクセスサイクル発
生器10の動作を規定する。先読みが終了すると、経路
915により状態・第1回901に遷移する。なお、図
36において状態・先読み904のときは連続転送カウ
ンタ14の更新を図示しない手段でマスクする。これ以
降の動作は上記図28(a)の場合と同じである。この
ように図28の例では指定転送回数が何回であっても、
一意的に第一の描画許可レジスタ47の内容、全ビット
の書き込みを許可するビットマスクパタン、そして第二
の描画許可レジスタ48の内容の3つからマスクパタン
を選択して転送を行なうことができる。
【0090】以上、図15の各構成要素を説明したので
次にそれぞれの構成要素、特に連続転送シーケンサ1
5、アクセスサイクル発生器10、およびメモリ制御部
307のそれぞれに内蔵したシーケンサがどのように連
携して動作するかを中心に説明する。図37は連続転送
シーケンサ15内のアクセス信号作成部134、アクセ
スサイクル発生器10内のアクセス信号作成部114、
およびメモリ制御部307に内蔵したシーケンサ199
の各シーケンサの状態遷移の相関の一例を示した図であ
る。連続転送シーケンサ15内のアクセス信号作成部1
34はアクセスサイクル発生器10を起動するためのア
クセス要求信号104を作成するものである。動作停止
状態の状態番号0から起動信号137によって起動され
ると状態番号1、2、3、4、5(いずれも符号なし。
以下図37の各シーケンサの状態番号も同様)と遷移し
て状態番号5でアクセスサイクル発生器10からの応答
信号105が有効になるのを待つ。応答信号105が有
効になると状態番号0に戻り、起動信号137が有効で
あれば再度起動する。起動信号137をサンプルするの
は状態番号0の時だけである。また図では状態番号1の
時にアクセス要求信号104が出力されるように見える
が、実際には状態番号0以外のすべての状態でアクセス
要求信号104が出力されている。これは応答待ちの状
態番号5の時にもアクセス要求信号104が継続して出
力され続けることを示すので注意していただきたい。
【0091】アクセスサイクル発生器10内のアクセス
信号作成部114はメモリ制御部307に内蔵したシー
ケンサ199を起動するためのアクセス要求信号89を
作成するものである。動作停止状態の状態番号10から
起動信号104(厳密には図35で説明した信号11
8)によって起動されると状態番号11、12、13と
遷移して状態番号13でメモリ制御部307に内蔵した
シーケンサ199からの応答信号106が有効になるの
を待つ。応答信号106が有効になると状態番号14、
15と遷移して状態番号10に戻り、起動信号104
(信号118)が有効であれば再度起動する。起動信号
104(信号118)をサンプルするのは状態番号0の
時だけである。また応答信号106が有効になった後の
状態番号14のときに応答信号105を発生する。但し
厳密には図35で説明したようにアクセス信号作成部1
14の応答信号はAND手段116でマスクされ、アク
セスサイクル発生器10に指定した表1、表2の項番の
1つ以上のアクセスサイクルのうちの最後のサイクルに
発生したアクセス信号作成部114の応答信号のみが応
答信号105として連続転送シーケンサ15内のアクセ
ス信号作成部134に伝達される。また図では状態番号
11の時にアクセス要求信号89が出力されるように見
えるが、上記で述べたのと同様に実際には状態番号10
以外のすべての状態でアクセス要求信号89が出力され
ている。これは応答待ちの状態番号13の時にもアクセ
ス要求信号104が継続して出力され続けることを示す
ので注意していただきたい。
【0092】シーケンサ199はVRAM1の制御信号
を作成するものであり、動作停止状態の状態番号20か
らアクセス要求信号89によって起動されると状態番号
21、22、23、24、25、26、27と遷移して
状態番号20に戻る。この例では8サイクルの固定長の
ステートマシンであるが、6サイクルなどの他のサイク
ル長でも可変長でもよい。このシーケンサの状態番号を
グレイコード(一度に1ビットしか変化しない数の系
列。例えば0、2、3、7、6、4、5、1を3ビット
の2進数で表すと一度に1ビットずつしか変化していな
いことが分かる)で置き換えれば状態番号をデコードす
るだけでVRAM1の制御信号等を作ることができる。
ここではシーケンサ199は状態番号20の時のみアク
セス要求信号89をサンプルて起動し、状態番号24の
時に応答信号106を返すように動作する。
【0093】上記のような状態遷移の相関関係を持つシ
ーケンサを動作させたときのタイミング的な相関関係の
例を図38に示す。同図(a)はアクセスサイクル発生
器10を1回のアクセス要求に対して1回のサイクルが
発生するように設定した場合である(例えば表1の項番
1、2、4や表2の項番1)。連続転送シーケンサ15
内のアクセス信号作成部134、アクセスサイクル発生
器10内のアクセス信号作成部114、およびメモリ制
御部307に内蔵したシーケンサ199は1クロックず
つ遅れながら起動してゆくが、シーケンサ199からの
応答信号106がアクセス信号作成部114およびアク
セス信号作成部134の待ち状態を次々に解除し、アク
セス信号作成部134は2回目のアクセスに入る。その
アクセス要求は再びシーケンサ199に達してVRAM
1に対する2回目のアクセスを行なう。以後のアクセス
も同様の手順で実行する。このタイミングで着目してい
ただきたいのはシーケンサ199が状態番号20で待ち
のループに入らずに連続して起動していることである。
次に図38(b)はアクセスサイクル発生器10を1回
のアクセス要求に対して2回のサイクルが発生するよう
に設定した場合である(例えば表1の項番3、5、6や
表2の項番2)。1回目のアクセスでは上記と同様に連
続転送シーケンサ15内のアクセス信号作成部134、
アクセスサイクル発生器10内のアクセス信号作成部1
14、およびメモリ制御部307に内蔵したシーケンサ
199は1クロックずつ遅れながら起動してゆく。同図
(a)と異なるのはアクセスサイクル発生器10で連続
転送シーケンサ15が発生した1回のアクセスを2回に
拡張してその最後のサイクル時に応答信号105を返す
ことである。この場合も連続転送シーケンサ15の2回
目のアクセス要求はシーケンサ199を待たせることな
く起動している。ところで図15に示すようにメモリ制
御部307は表示制御部301からの要求による表示読
みだしやVRAM1のリフレッシュなどを行なうため
に、しばしばアクセスサイクル発生器10などの描画の
ためのアクセスと競合する。図38(c)はそうした表
示読みだしやリフレッシュ(図ではVC#7で表示)に
よってアクセスサイクル発生器10のアクセス要求が待
たされる例である。連続転送シーケンサ15内のアクセ
ス信号作成部134によって起動されたアクセスサイク
ル発生器10内のアクセス信号作成部114がメモリ制
御部307に内蔵したシーケンサ199を起動しようと
したときにはすでにシーケンサ199は起動しており、
該アクセス(VC#7)終了後にアクセス信号作成部1
14からのアクセス要求を受け入れている。この場合も
シーケンサ199の動作に着目すると無駄のない動作に
なっている。このように無駄のない連続したアクセスを
行なうための条件は、上位のシーケンサの最小状態遷移
数が自分より下位のシーケンサの最小状態遷移数と同じ
かそれより少ないこと、自分より下位のシーケンサから
の応答信号を認識した後で自分より上位のシーケンサに
応答信号を返すこと、最下位のシーケンサは自分が動作
停止状態になったときもしくは動作停止状態になる前に
自分に対するアクセス要求が生じるように前もって応答
信号を返すことである。
【0094】ここで比較のために従来のようにCPU1
00のアクセス要求101によってアクセスサイクル発
生器10を起動した場合の動作タイミングを図39を用
いて説明する(図15において選択手段311により連
続転送シーケンサ15の代わりにCPU100のアクセ
ス要求信号101をアクセスサイクル発生器10に伝達
すればよい)。図39において101はCPU100の
アクセス要求信号である。実際にはこのアクセス要求信
号を193のようにアクセスサイクル発生器10などの
シーケンサを駆動するクロックで同期化してからアクセ
スサイクル発生器10に与える必要がある。同期化とは
周波数や位相の異なるクロックで動作している二つのシ
ステムにおいて第一のシステムの信号を第二のシステム
で用いるときに該信号を第二のシステムのクロックで二
回たたく(2段のシフトレジスタを通す)ことをいい、
システムの安定な動作のためには必須の処理である。こ
のときに同期化による同期損失190を生じる。またア
クセスサイクル発生器10内のアクセス信号作成部11
4が応答信号を返した後、CPU100のアクセス要求
信号101が終了するまでと次のアクセスが生じるまで
のそれぞれに対してウエイト損失191と再起動損失1
92が発生する。パーソナルコンピュータなど従来機種
との互換性が重要な情報処理機器ではアクセス要求10
1などのバス信号のタイミングを変更することは互換性
を維持するうえで致命的なことであるためこれらの損失
は必ず発生すると考えてよい。この結果、同図ではオー
バヘッド27を生じている。本発明は原理的にこのよう
なオーバヘッド27を発生しない構成であるため、今後
の技術の進歩によってシーケンサ199に相当するアク
セスサイクルを短くできればそれに比例して描画処理全
体を高速化できる効果がある。また図38から明らかな
ように、本発明によれば、発明が解決しようとする課題
で述べた数2、数3、数4、数5のソース、パタン、デ
ィスティネーションなどのビットブロック転送における
オペランドの違いは単にVRAM1へのアクセス回数の
違いに帰着できるので、以上の構成要素で本発明の第一
の目的である数2、数3、数4、数5においてパラメー
タmの値を一定にできるビットブロック転送描画装置を
実現することができる。
【0095】1.2 第二の実施例 ビットブロック転送における本発明の第二の実施例を図
1から4で説明する。図1は、画像情報を格納するVR
AM1がプレン構成になっており、全プレンに対し複数
画素を同時に読み書きする表示系のあるプレン1におい
てVRAM1のデータを一時保持するバッファレジスタ
S2、バッファレジスタP3、バッファレジスタD4
と、同時に操作できる画素数をワードとしたときに転送
元ワードと転送先ワードのワード内で描画位置がずれて
いる場合にそのずれを補正するシフタS5、シフタP6
と、該シフタを利用した場合にシフトされて転送先ワー
ドに描画されなかったデータをつぎのワードの転送で描
画できるようにデータを保持するマージレジスタS7、
マージレジスタP8と、バッファレジスタS2、バッフ
ァレジスタP3、バッファレジスタD4の値をそれぞれ
ソース、パタン、ディスティネーションの3入力とする
3値ラスタ演算器9と、CPU100からのVRAM1
のアクセスサイクルを複数のアクセスに拡張するアクセ
スサイクル発生器10と、VRAM1上のソース領域、
パタン領域、ディスティネーション領域の各アドレスを
生成するアドレス発生器308内部のアドレス発生部1
1、12、13と、本発明の一つである連続転送カウン
タ14を含む連続転送シーケンサ15で構成されたビッ
トブロック転送支援装置を示している。VRAM1が複
数のプレン構造を持つ場合は上記のデータ操作部306
がそれぞれのプレンに対応してプレンの枚数分存在す
る。
【0096】ここで図2のようにVRAM1のあるプレ
ン1の表示領域内のソース領域16とディスティネーシ
ョン領域17とパタン領域18の3値ラスタ演算を行い
その結果をディスティネーション領域17に書き込む場
合を例にとり、全体の基本動作を説明する。図3および
図4は図2のビットブロック転送処理のタイミングチャ
ートを示したものである。図3はCPU100のデータ
転送命令でアクセスサイクル発生器10を起動した従来
の転送起動方式の場合、図4は連続転送シーケンサ15
で起動した本発明による転送起動方式の場合である。両
者の違いはオーバヘッド27の有無である。この違いを
除けば両者の動作手順は同じであるのでまず図3を用い
て説明する。アクセスサイクル発生器10は、図3のよ
うにCPU100からの1回のVRAMリードサイクル
19をVRAMアクセスサイクルに同期化して起動信号
とし、ソース領域リードサイクル20、ディスティネー
ション領域リードサイクル21、パタン領域リードサイ
クル22の最大3回のVRAMリードサイクルに拡張
し、CPUからのVRAMライトサイクル23に合わせ
て3値ラスタ演算器9の演算結果をVRAM1に書き込
むVRAMライトサイクルを発生する。このことは前述
の第一の実施例の表1および表2で説明したとおりであ
る。
【0097】また図1では、CPU100からVRAM
1のリードサイクル24が入るとアクセスサイクル発生
器10は、アドレス発生器308を構成する各領域の転
送対象ワードのアドレスを保持しているアドレス発生部
11、12、13の中から、アドレス切換器25でソー
スアドレス発生部11を選択しソースアドレス発生部1
1が示すアドレスのVRAM1からデータを読み出しバ
ッファレジスタS2に格納しソースアドレス発生部11
のアドレスを更新する。引き続きアクセスサイクル発生
器10がアドレス切換器25でアドレス発生器308内
部のディスティネーションアドレス発生部13を選択し
ディスティネーションアドレス発生部13が示すアドレ
スのVRAM1からデータを読み出しバッファレジスタ
D4に格納する。さらに必要があればアクセスサイクル
発生器10がアドレス切換器25でアドレス発生器30
8内部のパタンアドレス発生部12を選択しパタンアド
レス発生部12が示すアドレスのVRAM1からデータ
を読み出しバッファレジスタD3に格納しパタンアドレ
ス生成部12のアドレスを更新する。この最大3回のV
RAM1からのデータ読み出しを図3のようにCPU1
00のVRAMリードサイクル1回分として行う。その
後バッファレジスタS2とマージレジスタS7の内容を
合せてシフトした結果と、バッファレジスタP3とマー
ジレジスタP8の内容を合せてシフトした結果と、バッ
ファレジスタD4の内容を3値ラスタ演算器9に入力
し、得られた結果をCPU100からのVRAMライト
サイクル26に合せ、アドレス発生器308内部のディ
スティネーションアドレス発生部13のアドレスを用い
てVRAM1に書き込み、ディスティネーションアドレ
ス発生部13のアドレスを更新する。以上で1ワードの
データ転送が終了する。このようにCPU100からの
リード/ライトサイクルの繰返しで領域の転送を行うの
が従来の転送起動方式である。
【0098】これに本発明の1つである、1ラスタ内の
転送ワード数を管理する連続転送カウンタ14と連続転
送シーケンサ15を設け、これらがCPU100の代わ
りにVRAM1を構成するメモリ素子のアクセスサイク
ルに合ったリード/ライトサイクルを発生させることに
より図3のようなCPU100のアクセスサイクルとV
RAM1のアクセスサイクルの同期化などのオーバーヘ
ッド27を無くすことができ、図4のように同一ラスタ
上の転送が途切れること無く効率良く行える。この連続
転送シーケンサ15は、CPU100によりアドレス発
生器308内部の各アドレス発生部を設定した後、転送
ワード数を連続転送カウンタ14に設定することにより
起動がかかるようにする。
【0099】1.3 第三の実施例 図5は本発明の1つであるアドレス加算ポート28、2
9、30をアドレス生成部内のソースアドレスレジスタ
31、パタンアドレスレジスタ32、ディスティネーシ
ョンアドレスレジスタ33に設けたビットブロック転送
における本発明の第三の実施例の構成を示したものであ
る。図6のようにソース領域34のデータをディスティ
ネーション領域35に転送する場合を例に取り動作を説
明する。ソースアドレスレジスタ31には転送元先頭ラ
スタ36の先頭ワード37のアドレスを設定し、ソース
オフセットレジスタ38には+1を設定する。またディ
スティネーションアドレスレジスタ33には転送先先頭
ラスタ39の先頭ワード40のアドレスを設定し、ディ
スティネーションオフセットレジスタ41には+1を設
定する。また図示していないがパタンが必要な場合はパ
タンアドレスレジスタ32にはパタン領域先頭ラスタの
先頭ワードのアドレスを設定し、パタンオフセットレジ
スタ42には+1を設定する。ソース領域34のリード
が終了するたびにソースアドレスレジスタ31の値にソ
ースオフセットレジスタ38の値を加えそれを新たなソ
ースアドレスレジスタ31の値とし、パタン領域のリー
ドが終了するたびにパタンアドレスレジスタ32の値に
パタンオフセットレジスタ42の値を加えそれを新たな
パタンアドレスレジスタ32の値とし、ディスティネー
ション領域へのライトが終了するたびにディスティネー
ションアドレスレジスタ33の値にディスティネーショ
ンオフセットレジスタ41の値を加えそれを新たなディ
スティネーションアドレスレジスタ33の値とし、ラス
タ方向にワード43、44...と転送を行う。
【0100】従来技術では、ラスタ36内の転送対象ワ
ード全てが転送し終わると次のラスタ45の先頭ワード
46のアドレス値をソースアドレスレジスタ31に設定
し直し、同様にディスティネーションアドレスレジスタ
33も設定し直していた。この方法ではソースアドレス
レジスタ31を読みだして1ラスタのアドレス増加分を
加えてソースアドレスレジスタ31に設定し直すか、各
ラスタの転送対象先頭ワードのアドレスと1ラスタのア
ドレス増加分を制御プログラム側が管理する必要があっ
た。つまり、各ラスタの転送領域先頭アドレスを求める
ために、現在のラスタの転送領域先頭アドレスと次のラ
スタの転送領域先頭アドレスまでの増分を制御プログラ
ム側で保持し、次のラスタの転送領域先頭アドレスを計
算した後にアドレス保持レジスタの値を設定しなおす必
要がある。また、VRAM1の容量拡大によりアドレス
空間が増え1回では設定できない場合が出てくる。例え
ば2048×1024ドットのビットマップ空間を持つ
VRAM1をアクセスするには、1ワードを16ビット
としても17ビットのアドレスが必要になり16ビット
幅のデータバスを持つ装置では2回の設定が必要にな
る。このような制御レジスタ類の設定回数を減らすため
には制御プログラム側でもVRAM1上の転送対象ワー
ドのアドレスを保持し変更必要な下位の値のみ設定する
など方法を取る必要がある。一方、あるラスタの転送終
了時のアドレスから次のラスタの転送対象先頭アドレス
への変位は大きくない。この変位は16ビットの値で収
まる場合がほとんどである。そこでアドレス加算ポート
28、29、30を設けたことにより描画制御プログラ
ムで各ラスタの転送対象最初のワードのアドレスを保持
する必要が無く、あるラスタの転送対象最後のワードの
アドレスから次のラスタの転送対象最初のワードのアド
レスとの差のみを保持し加算ポートを通してアドレス生
成部内のソースアドレスレジスタ31、パタンアドレス
レジスタ32、ディスティネーションアドレスレジスタ
33を更新することにより制御レジスタ類の設定回数を
減らすことができる。また、図5には、各アドレス発生
部11、12、13にそれぞれ2個の加算器60がある
が、図13のようにデータ経路を工夫し共用することも
できる。図13のデータ経路切替器61は、通常アドレ
ス変位レジスタ側になっており、アドレス加算ポート使
用時にアドレス加算ポート側に切替わる。
【0101】1.4 第四の実施例 図7は図1のビットブロック転送支援装置に同一ラスタ
内の最初と最後のワード内の描画許可領域を示す第一の
描画許可レジスタ47および第二の描画許可レジスタ4
8を設けたビットブロック転送における本発明の第四の
実施例の構成を示している。(この部分は図15におけ
るマスクパタン生成部305に相当する。)これは、図
8のようにVRAM1上のある同一ラスタ上の複数ワー
ドを別のラスタに転送する場合、最初のワードは第一の
描画許可レジスタ47で指示されたビット49に、最後
のワードは第二の描画許可レジスタ48で指示されたビ
ット50にのみ書込まれるように、第一および第二の描
画許可レジスタ47、48の内容をVRAM1のビット
マスクデータとして用いる。最初と最後のワード以外の
中間のワードのビットマスクデータはFFFF(16
進)の固定値を用いる。この値はすべてのビットの書き
込みを許可するという意味である。これによりワード単
位でリード/ライトを行う表示用メモリを持つ装置にお
いてもドット単位の矩形の転送が行えるようになる。い
つ第一および第二の描画許可レジスタ47、48と最初
と最後のワード以外の中間のワードのビットマスクデー
タを切り替えるかは連続転送シーケンサ15の状態に依
存する。この切り替えの状態制御については後述のビッ
トブロック転送における本発明の第七の実施例(1.
7)で詳細に説明する。次に述べる第五の実施例の図9
についても切り替えの状態制御については第七の実施例
を参照していただきたい。
【0102】1.5 第五の実施例 課題の項で述べた数2、数3、数4、数5において、さ
らにパラメータbの値を0にするためには上記の構成要
素を2次元の領域に対しても動作できるようにすればよ
い。矩形の転送に必要なラスタ単位に、アドレスを管理
するレジスタの更新を自動化し2次元の矩形領域の転送
を一連の処理として実行するためには、例えば本実施例
のように第2の連続転送カウンタ51と先頭アドレスレ
ジスタ52、53、54とラスタアドレスレジスタ5
5、56、57を設けることにより達成できる。図9は
第2の連続転送カウンタ51を設けた構成を示してい
る。また図10は図9におけるアドレス発生器308の
内部の構成例で、先頭アドレスレジスタ52、53、5
4及びラスタアドレスレジスタ55、56、57を設け
た構成を示している。この第2の連続転送カウンタ51
は転送ラスタ数を管理し1ラスタ上の転送が終了すると
アドレス発生器308内の先頭アドレスレジスタ52、
53、54の値と1ラスタ内のワード数を保持するラス
タアドレスレジスタ55、56、57の値をそれぞれ加
え次のラスタの転送対象領域の先頭ワードのアドレスを
算出し先頭アドレスレジスタとソースアドレスレジスタ
31、パタンアドレスレジスタ32、ディスティネーシ
ョンアドレスレジスタ33の値を更新する。また、先頭
アドレスレジスタ52、53、54に値を設定するとソ
ースアドレスレジスタ31、パタンアドレスレジスタ3
2、ディスティネーションアドレスレジスタ33にも同
じ値が設定されるようにする。これにより第一および第
二の描画許可レジスタ47、48とアドレス発生器30
8内の先頭アドレスレジスタ52、53、54とラスタ
アドレスレジスタ55、56、57と同一ラスタ内の転
送ワード数と転送ラスタ数をそれぞれ第1の連続転送カ
ウンタ14と第2の連続転送カウンタ51に設定するこ
とで2次元の矩形領域転送が行える。また、ラスタアド
レスレジスタ55、56、57は一度初期化してしまえ
ばVRAM1の構成や表示画面のビットマップ構成が変
わらない限り再設定の必要はない。また、図10には、
アドレス発生器308内の各アドレス発生部11、1
2、13にそれぞれ3個の加算器60があるが、図14
のようにデータ経路を工夫し共用することもできる。
【0103】図14のデータ経路切替器62は通常ソー
スオフセットレジスタ38側になっており、データ経路
切替器63は通常ソースアドレスレジスタ31側になっ
おり、ソースアドレスレジスタ31のみ更新される。ア
ドレス加算ポート使用時にデータ経路切替器62がアド
レス加算ポート側に切替わり、データ経路切替器63は
ソースアドレスレジスタ31側のままでソースアドレス
レジスタ31のみ更新される。各ラスタの転送対象領域
先頭アドレス更新時にデータ経路切替器62がラスタア
ドレスレジスタ側に切替わり、データ経路切替器63が
先頭アドレスレジスタ側に切替わり、ソースアドレスレ
ジスタ31と先頭アドレスレジスタが更新される。パタ
ンアドレスレジスタ32、ディスティネーションアドレ
スレジスタ33についても同様である。また、第三の実
施例で説明したアドレス加算ポートを用いて1ラスタ単
位で領域転送をするデバイスドライバプログラムに適合
しやすい2次元の矩形領域転送を実現することもでき
る。この場合、先頭アドレスレジスタは使用しない。あ
るラスタの転送が終了したときにその時のソースアドレ
スレジスタ31等の値と次のラスタの転送対象部分の先
頭アドレスとの相対値をアドレス加算ポートを用いてソ
ースアドレスレジスタ31等に加えていたものを、該相
対値をラスタアドレスレジスタに設定しておきあるラス
タの転送が終了したときにソースアドレスレジスタ31
等に加え自動的に更新することで実現できる。
【0104】1.6 第六の実施例 図11は、制御プログラム側のデータ構造とVRAM1
側のデータ構造を仲介する、データ構造変換器58、5
9を設けたビットブロック転送における本発明の第六の
実施例である。図11は、図1の第二の実施例のビット
ブロック転送支援装置にデータ構造変換器58、59を
設けた構成であるが、本発明で述べる他の全ての実施例
にデータ構造変換器58、59を設けた構成であっても
良い。データ構造は応用プログラム毎に違い、大別して
図12のような3種類がある。図12の(a)は16ビ
ットを1ワードとし16ビット幅の主記憶等に格納され
ているあるプレンのあるラスタの情報を示している。こ
れをVRAM1に展開する方法として図12の(b)の
ようにビットの並びはそのままでバイト単位で展開する
方法と図12の(c)のようにビットの並びはそのまま
でワード単位で展開する方法と図12の(d)のように
左から右へビット、アドレス共に増加する展開法の3種
類がある。それぞれ画面に表示されたときのイメージと
主記憶に格納されているときのイメージは異なる。そこ
で本発明の1つである、バイトスワップ、ワードミラー
機能を持つデータ構造変換器58、59を設け応用プロ
グラムによるデータ構造の違いを吸収する。バイトスワ
ップとは、図12の(a)のようなデータをワードでア
クセスし上位バイトと下位バイトを入れ替え図12の
(b)のデータ構造に合せる機能を指し、ワードミラー
とは、図12の(a)のようなデータをワードでアクセ
スしビットの並びを逆にして図12の(d)のデータ構
造に合せる機能を指す。データ構造変換器58は、主記
憶200等のメモリからVRAM1へのデータ転送用で
あり、データ構造変換器59は、VRAM1から主記憶
200等のメモリへのデータ転送用である。
【0105】1.7 第七の実施例 次に二次元のビットブロック転送を行なうための本発明
の第七の実施例を説明する。図29は二次元の領域に対
するビットブロック転送を行なう部分を抜き出した制御
部の一ブロック図である。図15の全体構成図に対し
て、第二の連続転送シーケンサ87およびラスタカウン
タ51と、連続転送カウンタ14に書き込んだ値のコピ
ーを保持するカウント値保持レジスタ92を設け、さら
にアドレス発生器308が二次元的にアドレスを発生で
きるようにした構成である。またアクセスサイクル発生
器10内部には、前述の読み出し要求、あるいは書き込
み要求があったときに表1および表2のどの項番の動作
をさせるかを指定するアクセスサイクル発生器制御レジ
スタA90と、先読み動作時にソース、パタンのいずれ
を読むかを指定するためのアクセスサイクル発生器制御
レジスタB91とがある。
【0106】図30は図29のアドレス発生器308の
具体的な構成を示したものである。同図においてアドレ
ス発生器308内部の点線で囲んだ二つの部分が以前説
明した実施例と異なる部分である。ここで70はソース
領域加算値レジスタ、71はパタン領域加算値レジス
タ、72はディスティネーション領域加算値レジスタ、
73はパタン長レジスタ、74はパタン開始アドレスレ
ジスタ、75は繰り返しパタンの終了アドレスを求める
ための加算器、76は加算器75で求めた繰り返しパタ
ンの終了アドレスと現在のパタンアドレスレジスタ32
の値を比較する比較器、77はパタンアドレスレジスタ
32の入力データを選択する選択回路79を制御する制
御手段である。以下動作を説明するにあたり、各レジス
タのパラメータの意味は図31を参照しながら説明す
る。図31は二次元ビットブロック転送時にVRAM1
上のソース領域16、ディスティネーション領域17、
およびパタン領域18a、b、cに対して上記各レジス
タの値がそれぞれどのような意味を持つかを示したもの
である。
【0107】図29のラスタカウンタ51にはあらかじ
め垂直方向何ラスタの転送をするかのラスタ数を書き込
んでおく。次に連続転送シーケンサ15に対して領域の
水平1ライン分のワード数を書き込むと、その値は連続
転送カウンタ14とカウント値保持レジスタ92に書き
込まれる。この書き込みを契機に連続転送シーケンサ1
5は定められた回数の連続アクセスを発生する。
【0108】ソース領域16はソースアドレスレジスタ
31の値によってポイントする。連続転送シーケンサ1
5によるリードアクセスがアクセスサイクル発生器10
によって拡張され、ソース領域16に対するリードアク
セスとなると、ソースアドレスレジスタ31の値による
VRAM1のリードが行なわれ、読みだした値はVRA
M1の各プレンに対応するバッファレジスタS2(およ
び以前のバッファレジスタS2の値はマージレジスタS
7)に格納する。そのソース領域16に対するリードア
クセスが終了すると、ソースアドレスレジスタ31の値
とソースオフセットレジスタ38の値は加算器83によ
って加算され、加算結果はソース領域16の次のアドレ
スとしてソースアドレスレジスタ31に再格納する。図
31ではソースアドレスレジスタ31が示すアドレス値
が右方向に移動する例を示してあるがソースオフセット
レジスタ38の値によっては左方向にも移動できる(実
際には上下方向にも移動できるが二次元のビットブロッ
ク転送では左右の移動について説明する。後述のディス
ティネーションオフセットレジスタ41についても同
じ)。
【0109】こうして連続転送シーケンサ15による一
連の転送が最終回になるとソースアドレスレジスタ31
の値はソース領域16の右端に達するが、このとき第二
の連続シーケンサ87の状態を示す信号線97がアクテ
ィブを示すときはソース領域加算値レジスタ70の値を
選択手段82を介して加算器83に与え、ソースアドレ
スレジスタ31の値を図31のように次の転送ラスタの
左端に移動する。現在のラスタの右端から次のラスタの
左端までのオフセット値はあらかじめソース領域加算値
レジスタ70に書き込んでおく。先にソースオフセット
レジスタ38の設定値で述べたのと同様に、右端から左
端の上下ラスタ、左端から右端の上下ラスタへの移動は
ソース領域加算値レジスタ70にどのような値を設定す
るかにより、自由に指定できる(後述のパタン領域加算
値レジスタ71およびディスティネーション領域加算値
レジスタ72への設定値についても同じ)。
【0110】次にパタン領域について説明する。パタン
領域18はパタンアドレスレジスタ32の値によってポ
イントする。連続転送シーケンサ15によるリードアク
セスがアクセスサイクル発生器10によって拡張され、
パタン領域18に対するリードアクセスとなると、パタ
ンアドレスレジスタ32の値によるVRAM1のリード
が行なわれ、読みだした値はVRAM1の各プレンに対
応するバッファレジスタP3(および以前のバッファレ
ジスタP3の値はマージレジスタP8)に格納する。そ
のパタン領域18に対するリードアクセスが終了する
と、パタンアドレスレジスタ32の値とパタンオフセッ
トレジスタ42の値は加算器83によって加算され、加
算結果はパタン領域18の次のアドレスとしてパタンア
ドレスレジスタ32に再格納する。図31ではパタン領
域18として三通りの代表的な例を示した。以下これを
説明する。
【0111】パタン領域18aは各ラスタ毎に1ワード
長の繰り返しパタンを画面垂直下方向に向かって格納し
た場合である。この場合はパタンデータの読み込みは1
ラスタの転送処理に一回だけである。そこで転送サイク
ルを規定するアクセスサイクル発生器制御レジスタA9
0には表1の項番2、3、6および7以外の設定を行な
い、先読みサイクルを規定するアクセスサイクル発生器
制御レジスタB91には表1の項番1あるいは2のいず
れかを設定する。この設定により、パタンアドレスレジ
スタ32を用いたリードアクセスは毎水平転送のはじめ
の先読みサイクルにおける1回(したがってパタンアド
レスレジスタ32の更新も毎水平転送に1回)だけとな
る。これらの設定は後述のパタン領域18bを対象とし
たビットブロック転送においても同様である。パタン開
始アドレスレジスタ74にはパタンの開始アドレス74
aを格納しておく。次に参照すべきパタンのアドレス3
2aはパタンアドレスレジスタ32に格納しておく。パ
タンオフセットレジスタ42にはパタンアドレスレジス
タ32の内容に加算すると図において一つ下のアドレス
になるような値を設定する。この値をαとし、パタンの
個数をβとすると、パタン長レジスタ73にはαとβを
掛けた値73aを設定する。パタンの開始アドレス74
aと値73aを加算器75で加算すると、パタン領域1
8aの最終アドレスを得る。この最終アドレスとパタン
アドレスレジスタ32の値を比較器76で比較し、パタ
ンアドレスレジスタ32の値が最終アドレスに達してい
なければ制御手段77で加算器83の出力(パタンアド
レスレジスタ32の値とパタンオフセットレジスタ42
の値を加算したもの)を選択してパタンアドレスレジス
タ32の更新値とし、パタンアドレスレジスタ32の値
が最終アドレスに達したときは制御手段77でパタン開
始アドレスレジスタ74の値を選択してパタンアドレス
レジスタ32の更新値とする。以上のように画面垂直下
方向に向かって格納した繰り返しパタン領域18aの読
み込みは、領域の最終のアドレスに達すると読みだしの
ポインタが再びパタン開始アドレスに戻るので、ラスタ
カウンタ51の設定値と独立に繰り返しパタンを定義で
きる。
【0112】パタン領域18bは各ラスタ毎に1ワード
長の繰り返しパタンを画面水平右方向に向かって格納し
た場合である。パタン開始アドレスレジスタ74にはパ
タンの開始アドレス74bを格納しておく。次に参照す
べきパタンのアドレス32bはパタンアドレスレジスタ
32に格納しておく。パタンオフセットレジスタ42に
はパタンアドレスレジスタ32の内容に加算すると図で
一つ右のアドレスになるような値を設定する。この値を
γとし、パタンの個数をβとすると、パタン長レジスタ
73にはγとβを掛けた値73bを設定する。ここでは
γの値は+1なので実際の値73bはβとなる。これは
前述のパタン領域18aの説明でパタンオフセットレジ
スタ42に設定する値を1とし、パタン長レジスタ73
に設定する値をβとした場合に相当する。動作はパタン
領域18aの説明と同様であるので省略する。
【0113】パタン領域18cは、ソース領域16やデ
ィスティネーション領域17と同様に他の実施例で説明
したような二次元のパタンの場合であり、ポインティン
グデバイスを用いたグラフィックカーソルの描画はこれ
に当たる。この場合は前述のソース領域16で説明した
ように連続転送シーケンサ15による一連の転送が最終
回になるとパタンアドレスレジスタ32の値はパタン領
域18cの右端に達するが、このとき第二の連続シーケ
ンサ87の状態を示す信号線97がアクティブを示すと
きはパタン領域加算値レジスタ71の値を選択手段82
を介して加算器83に与え、パタンアドレスレジスタ3
2の値を図31のように次の転送ラスタの左端に移動す
る。現在のラスタの右端から次のラスタの左端までのオ
フセット値はあらかじめパタン領域加算値レジスタ71
に書き込んでおく。右端から左端の上下ラスタ、左端か
ら右端の上下ラスタへの移動はパタン領域加算値レジス
タ71にどのような値を設定するかにより、自由に指定
できる。
【0114】上記のパタン領域aおよびb(繰り返しパ
タン)と、パタン領域c(二次元パタン)は制御に係る
手段が異なるので図示しない切り替え手段によりパタン
開始アドレスレジスタ74などを用いたパタンアドレス
更新手段と、パタン領域加算値レジスタ71などを用い
たパタンアドレス更新手段を切り替えて処理を行なう。
【0115】ディスティネーション領域17はディステ
ィネーションアドレスレジスタ33の値によってポイン
トする。連続転送シーケンサ15によるリードアクセス
もしくはライトアクセスがアクセスサイクル発生器10
によって拡張され、ディスティネーション領域17に対
するリードアクセスとなると、ディスティネーションア
ドレスレジスタ33の値によるVRAM1のリードが行
なわれ、読みだした値はVRAM1の各プレンに対応す
るバッファレジスタD4に格納する。このときはディス
ティネーションアドレスレジスタ33の値は更新されな
い。次に連続転送シーケンサ15によるライトアクセス
がアクセスサイクル発生器10によって拡張され、ディ
スティネーション領域17に対するライトアクセスとな
ると、ディスティネーションアドレスレジスタ33の値
によるVRAM1のライトが行なわれ、ディスティネー
ション領域17に対するライトアクセスが終了すると、
ディスティネーションアドレスレジスタ33の値とディ
スティネーションオフセットレジスタ41の値は加算器
83によって加算され、加算結果はディスティネーショ
ン領域17の次のアドレスとしてディスティネーション
アドレスレジスタ33に再格納する。こうして連続転送
シーケンサ15による一連の転送が最終回になるとディ
スティネーションアドレスレジスタ33の値はディステ
ィネーション領域17の右端に達するが、このとき第二
の連続シーケンサ87の状態を示す信号線97がアクテ
ィブを示すときはディスティネーション領域加算値レジ
スタ72の値を選択手段82を介して加算器83に与
え、ディスティネーションアドレスレジスタ33の値を
図31のように次の転送ラスタの左端に移動する。現在
のラスタの右端から次のラスタの左端までのオフセット
値はあらかじめディスティネーション領域加算値レジス
タ72に書き込んでおく。右端から左端の上下ラスタ、
左端から右端の上下ラスタへの移動はディスティネーシ
ョン領域加算値レジスタ72にどのような値を設定する
かにより、自由に指定できる。
【0116】以上の実施例では繰り返しパタンを用いて
も二次元のビットブロック転送を行なえることが特徴で
ある。また上記の実施例では繰り返しパタンの終了アド
レスを求めるために、パタン開始アドレスとパタン長を
加算する方法を例に説明したが、このほかにもパタン終
了アドレスレジスタのようなアドレスデータ保持手段を
設ける方法などが考えられる。
【0117】2.文字描画 以下文字描画における本発明の実施例を説明する。前述
のように図15が本実施例の全体構成の一例である。同
図におけるデータ操作部306は図16に示すVRAM
1の全プレンに共通な部分と、図17に示すVRAM1
の各プレン単位の部分320から成る。また図15のア
ドレス発生器308の構成例を図18に示す。なお、図
16、図17および図18の内容の説明は上記のビット
ブロック転送の項の初めですでに述べているのでここで
は省略する。図15のアクセスサイクル発生器10は、
アドレス発生器308を用いて、CPU100もしくは
後述の連続転送シーケンサ15によるVRAM1の読み
出し要求があった場合はソース、ディスティネーショ
ン、パタンの各領域のアクセスを少なくとも1つ以上含
むリードアクセスを発生し、CPU100もしくは後述
の連続転送シーケンサ15によるVRAM1の書き込み
要求があった場合はディスティネーション領域のライト
アクセスもしくはリードアクセスとライトアクセスの組
を発生してVRAM1のメモリ制御部を駆動する。
【0118】本発明の最も特徴的な構成要素であるデー
タ位置変換部305は、CPU100からのデータのビ
ット数がVRAM1のデータバスのビット数と異なる場
合、CPU100のデータをVRAMデータバスに画面
イメージで左詰めもしくは右詰めし、外部データとして
データ操作部306のデータ構造変換器58に与える。
データ位置変換部305の具体的な構成を図20に、そ
して図18で説明したアドレス発生器308の以下の実
施例に特有な構成を図22に示す。アドレス発生器30
8の構成の違いにより文字の描画処理方式が若干異なる
ので、アドレス発生器308の構成が図22(a)のも
のを文字描画における本発明の第一の実施例、図22
(b)のものを第二の実施例として説明する。以下では
まず第一および第二の実施例に共通な本発明の特徴とな
る部分について述べ、次にそれぞれの実施例特有の部分
を説明する。
【0119】まず文字フォントの主記憶200への格納
形式について述べる。図19は文字フォントがどのよう
な形式で主記憶200上に格納されるかを示したもので
ある。同図では水平方向24ドットの「G」という文字
フォントを8ビット(1バイト)ごとに縦3列、すなわ
ちフォント左410、フォント中央420、フォント右
430に分割し、フォント左410は主記憶200の領
域Aに、フォント中央は同じく領域Bに、そしてフォン
ト右は領域Cに格納している。同図では主記憶200の
バス幅を16ビットとしているので文字フォントは下位
バイト470、上位バイト480のように交互に主記憶
200上に格納されてゆく。
【0120】CPU100は主記憶200上にバイト単
位に格納された文字フォントデータを1バイトごとに読
み込んではVRAM1に書き込んでくる。このようにす
るにはCPU100は主記憶200からVRAM1への
バイト単位の連続データ転送命令を実行すればよい。こ
の結果、例えば本実施例のようにVRAM1に至るデー
タバスが16ビットであれば、文字フォントデータは1
6ビットデータバスの下位8ビット、上位8ビットに交
互に現れる。この様子を図20に示す。(VRAM1に
至るデータバスが32ビットであれば、文字フォントデ
ータは32ビットデータバスの下位から上位までの4つ
の8ビットバスに順番に現れるが、ここではデータバス
が16ビットであるとして説明する。)図20は図19
の主記憶200上の領域A440を1バイトずつ読みだ
し、それをデータ位置変換部305にデータ441、4
42、443、444の順番に与えている図である。デ
ータ441、442、443、444の×印のバイトは
値が不定であることを示す。CPU100のバス制御信
号BLE452(バスロウイネーブル:下位バイトが有
効であることを示す)とBHE451(バスハイイネー
ブル:上位バイトが有効であることを示す)はそれぞれ
データバス103の有効なデータ位置を示すので、バス
切り換え手段によりBHE451が有効のときはスイッ
チ経路を453のように切り換え、BLE452が有効
のときはスイッチ経路を454のように切り換える。こ
の結果、本発明の特徴であるデータ位置変換部305で
はCPU100からのバイトデータを画面イメージで常
に左詰め(上位バイト部分456)にしてバスの残りの
部分(下位バイト部分457)に経路455のように0
のデータを挿入し、それをデータ操作部306に与える
ように動作する。つまり、データ441をデータ445
に、データ442をデータ446に、データ443をデ
ータ447に、データ444をデータ448に変換して
データ操作部306に与える。図16のデータ操作部3
06では与えられたデータはまずデータ構造変換器59
を通り、次にどのように文字を描画するかによって以下
のようにデータ操作される。(ここではデータ構造変換
器59は与えられたデータを何も加工せずに次に渡すも
のとするが、用途により、例えば文字を裏返しに描画し
たい場合などのときにデータ構造変換器を用いて鏡像変
換等を行う。) (1)文字のフォント部分のみを描画する場合 文字のフォント部分のみを描画する場合とは図25にお
ける(a)のトランスペアレント(透明)書き込みに相
当する。つまり文字のフォント部分701をVRAM1
のディスティネーション部分704に書き込む処理のこ
とである。データ構造変換器59を出たフォントデータ
はビットマスク用シフタ333に入り、適宜シフトされ
てVRAM1のビット単位の書き込み制御に用いられ
る。つまり文字のフォント部分701に対応するVRA
M1のディスティネーション部分704のみが書き替わ
り、それ以外の部分は変化しない。図20で説明したよ
うにデータ位置変換部305によって文字フォントデー
タはあらかじめ左詰めされているので、ビットマスク用
シフタ333のシフト値は一回の縦方向転送の間は一定
値でよい。従来の技術では文字フォントデータが上位バ
イト部分480、下位バイト部分470に交互に現われ
たので、シフト値を一定値にすることはできなかった。
ここで一回の縦方向転送とは図19における主記憶20
0の領域A440,領域B450,もしくは領域C46
0のデータをVRAM1に転送する処理を示す。このと
きのVRAM1への書き込みデータ(文字色)は図17
のバッファレジスタS2あるいはバッファレジスタP3
にあらかじめ設定しておき、3値ラスタ演算器9にはバ
ッファレジスタS2あるいはバッファレジスタP3の内
容をVRAM1に与える演算を指定しておく。もし文字
の描画がVRAM1のディスティネーション部分70
4、すなわちこれから文字を描画しようとする領域の現
在の画像データと描画する文字色のラスタ演算を必要と
する場合は、3値ラスタ演算器9にはバッファレジスタ
S2あるいはバッファレジスタP3の内容とバッファレ
ジスタD4の内容を演算するよう指定しておく。
【0121】次に図21を用いてビットマスク用シフタ
333に設定するシフト量とシフトしたデータの関係を
説明する。同図において0から7まで番号をふった部分
が1バイト幅の文字フォントのデータ部分である。シフ
ト量が0から8(データ500からデータ508)まで
は単純にシフトしてゆくだけだが、シフト量が9から1
5(データ509からデータ515)まではデータが2
分割してしまう。図22(a)の構成のアドレス発生器
308を用いた場合、すなわち後述する文字描画におけ
る本発明の第一の実施例では、シフト量が9から15
(データ509からデータ515)までの上位バイト部
分456が全て0になるような、つまりシフトしてゆく
とあふれたデータが失われてゆく構成のシフタをビット
マスク用シフタ333として用いる。
【0122】図22(b)の構成のアドレス発生器30
8を用いた場合、すなわち後述する文字描画における本
発明の第二の実施例では、図22のようにデータがロー
テーションする構成のシフタをビットマスク用シフタ3
33として用いる。
【0123】(2)文字の前景色と背景色を同時に描画
する場合 文字の前景色と背景色を同時に描画する場合とは図25
における(b)のオペーク1(不透明)書き込みに相当
する。つまり文字のフォント部分701をVRAM1の
前景ディスティネーション部分705に、また文字の背
景部分702をVRAM1の背景ディスティネーション
部分706に書き込む処理のことである。図16におい
てデータ構造変換器59を出たフォントデータはシフタ
C335に入り、適宜シフトされて図17における各プ
レンごとのビット選択手段327に与えられる。図20
で説明したようにデータ位置変換部305によって文字
フォントデータはあらかじめ左詰めされているので、シ
フタC335のシフト値は一回の縦方向転送の間は一定
値でよい。従来の技術では文字フォントデータが上位バ
イト部分480、下位バイト部分470に交互に現われ
たので、シフト値を一定値にすることはできなかった。
ここで一回の縦方向転送とは図19における主記憶20
0の領域A440,領域B450,もしくは領域C46
0のデータをVRAM1に転送する処理を示す。このと
き文字データの幅に相当する8ビットの部分のみVRA
M1が書き替わるように図16のビットマスクレジスタ
331には該当部分のみ書き込みを許可するマスクパタ
ンを設定しておく。
【0124】図17のバッファレジスタP3には文字の
フォント部分に相当する前景色(フォアグランドカラ
ー)を、バッファレジスタS2には文字のフォント以外
の部分に相当する背景色(バックグランドカラー)をそ
れぞれ設定しておき、2値ラスタ演算器F326にはバ
ッファレジスタP3の内容を、2値ラスタ演算器B32
5にはバッファレジスタS2の内容をVRAM1に与え
る演算を指定しておく。もし文字の描画がディスティネ
ーション部分705、706の現在の画像データとのラ
スタ演算を必要とする場合は2値ラスタ演算器F326
にはバッファレジスタP3の内容とバッファレジスタD
4の内容を演算するよう、また2値ラスタ演算器B32
5にはバッファレジスタS2の内容とバッファレジスタ
D4の内容を演算するようそれぞれ指定しておく。ビッ
ト選択手段327は文字のフォント部分701(図25
参照)では2値ラスタ演算器F326の出力を、文字フ
ォント以外の文字の背景部分702(図25参照)では
2値ラスタ演算器B325の出力をビット単位で選択
し、書き込みデータとしてVRAM1に与える。
【0125】次に図21を用いてシフタC335に設定
するシフト量とシフトしたデータの関係を説明する。同
図において0から7まで番号をふった部分が1バイト幅
の文字フォントのデータ部分である。図22(a)の構
成のアドレス発生器308を用いた場合、すなわち後述
する文字描画における本発明の第一の実施例および図2
2(b)の構成のアドレス発生器308を用いた場合、
すなわち後述する文字描画における本発明の第二の実施
例では、いずれも図22のようにデータがローテーショ
ンする構成のシフタをシフタC335として用いる。
【0126】上記(1),(2)におけるVRAMアド
レスはCPUアドレスではなく図15のアドレス発生器
308が発生するアドレスを用いる。これはVRAM1
を縦方向にアクセスするためである。
【0127】以上が文字描画における本発明の第一およ
び第二の実施例に共通の動作である。次にアドレス発生
器として図22(a)を用いた、文字描画における本発
明の第一の実施例特有の文字描画処理を説明する。
【0128】2.1 第一の実施例 アドレス発生器308を構成するディスティネーション
アドレスレジスタ(DAR)33には文字を書き始める
VRAM1のアドレスを、またディスティネーションオ
フセットレジスタ(DOR)41にはディスティネーシ
ョンアドレスレジスタ33に加算すると表示画面上でち
ょうど1ラスタ下にずれたアドレスになるようなオフセ
ット値をあらかじめ設定しておく。また、図15におけ
るアクセスサイクル発生器10にはCPU100のVR
AM1へのライトサイクル発生時にディスティネーショ
ンアドレスレジスタ33を用いたライトアクセスを発生
するように設定しておく。もし文字の描画がディスティ
ネーション領域とのラスタ演算を必要とする場合はCP
U100のVRAM1へのライトサイクル発生時にディ
スティネーションアドレスレジスタ33を用いたリード
アクセスとライトアクセスを発生するように設定してお
く。するとはじめのリードアクセスでVRAM1のディ
スティネーション領域の現在の画像データが各プレンの
バッファレジスタD4に読み込まれ、次のライトアクセ
スでラスタ演算した結果が再びVRAM1のディスティ
ネーション領域に書込まれる。なお、ディスティネーシ
ョンアドレスレジスタ33はライトアクセス終了後にの
み、現在の値とディスティネーションオフセットレジス
タの値をアドレス加算器A357で加算した値に更新さ
れる。縦方向一列の転送が終了するごとにディスティネ
ーションアドレスレジスタ33とシフタ類を設定し直し
て次の縦方向一列の転送を行なう。該当の文字を完全に
描画するまでこの処理を繰り返す。
【0129】以上のように文字描画における本発明の第
一の実施例では従来技術では達成できなかったCPU1
00の連続バイト転送命令で文字描画が行なえるため、
従来の1.5から5倍(CPU100の単体処理性能に
よって異なる)の速度で文字を描画できる。
【0130】2.2 第二の実施例 次に文字描画における本発明の第二の実施例を説明す
る。図23はVRAM1に文字を描画する場合に水平方
向の文字描画位置の違いにより、描画処理にどのような
差異を生じるかを示したものである。同図では図19に
示した水平方向3バイト幅の文字を例に説明する。VR
AM1の1バイトは上位バイト部分456と下位バイト
部分457からなる1ワードを単位としてアクセスす
る。文字の描画開始位置がVRAM1のワード境界63
0から始まる、すなわちシフト量が0のときは描画位置
600のように図19におけるフォント左410、フォ
ント中央420、フォント右430の3回の縦方向転送
で描画できる。これに対してシフト量が1から7のとき
は描画位置601から607のようにフォント中央42
0の部分がワード境界630にまたがっているのでフォ
ント中央420の部分は領域616と領域617の2回
の縦方向転送が必要となる。このためシフト量が1から
7のときは4回の縦方向転送で1文字を描画する。シフ
ト量が8のときは描画位置608のよう再び3回の縦方
向転送で描画できるが、シフト量が9から15のときは
描画位置609から615のようにフォント左410と
フォント右430の二つの部分がワード境界630にま
たがっているので、フォント左410の部分は領域61
8と領域619、フォント右430の部分は領域620
と領域621の2回の縦方向転送が必要となる。このた
めシフト量が9から15のときは5回の縦方向転送で1
文字を描画する。文字の描画開始位置がそれぞれのシフ
ト量に対して等しい確率で生起すると仮定すると、1文
字当りの平均縦方向転送回数は約4.3回となる。文字
描画における本発明の第二の実施例は図23のワード境
界を実質的になくし、どの位置から描画を開始してもシ
フト量が0(描画位置600)もしくは8(描画位置6
08)のときと同じ最低限の縦方向転送回数で描画でき
るようにしたものである。
【0131】図22(a)ではVRAM1の上位バイト
部分456と下位バイト部分457にはディスティネー
ションアドレスレジスタ33からの同一アドレスを与え
ていた。これに対し、図22(b)ではVRAM1の下
位バイト部分457にはディスティネーションアドレス
レジスタ33のアドレスをそのまま与え、上位バイト部
分456にはインクリメント手段364を介したアドレ
スを与えるようにしたものである。インクリメント手段
364は図のC入力が無効(インアクティブ)のときは
ディスティネーションアドレスレジスタ33のアドレス
をそのまま出力して上位バイト部分456に与え、C入
力が有効(アクティブ)のときはディスティネーション
アドレスレジスタ33のアドレスを+1した結果を上位
バイト部分456に与えるように動作する。インクリメ
ント手段364のC入力にはデータ操作部306内のシ
フタ380に対するシフト量設定手段370の1ビット
を与える。ここでシフタ380とは上記(1)の文字の
フォント部分のみを描画する場合ではビットマスク用シ
フタ333を指し、上記(2)の文字の前景色と背景色
を同時に描画する場合ではシフタC335を指す。
【0132】図21によればシフト量が0から7(デー
タ500からデータ507)の場合は文字のフォントデ
ータは上位バイト部分456から下位バイト部分457
に連続してつながり、シフト量が8から15(データ5
08からデータ515)の場合は文字のフォントデータ
は下位バイト部分457から上位バイト部分456に連
続してつながる。そこでシフト量が8から15(データ
508からデータ515)の場合はVRAMの上位バイ
ト部分456に与えるアドレスを下位バイト部分457
に与えるアドレス対して+1することにより、下位バイ
ト部分457と上位バイト部分456を一回の書き込み
で描画できるようになる。このため、シフタ380のシ
フト量が0から7のときは図22(b)のインクリメン
ト手段364のC入力を無効(インアクティブ)とし、
シフト量が8から15のときはインクリメント手段36
4のC入力を有効(アクティブ)とすればよい。シフト
量が16通り、つまり4ビットであれば、その最上位ビ
ットをそのままC入力の制御信号として使用することが
できる。
【0133】これを図23で具体的に説明する。図23
において文字描画開始位置のシフト量が0から7まです
なわち開始位置600から開始位置607までのとき、
フォント左410の部分は図21のシフト量が0から7
(データ500からデータ507)の場合に相当するの
でVRAM1の上位バイト部分456と下位バイト部分
457のアドレスは同一となり、領域650と領域65
1に対して描画される。フォント中央420の部分は図
21のシフト量が8から15(データ508からデータ
515)の場合に相当するのでVRAM1の上位バイト
部分456は下位バイト部分457のアドレスより1番
地大きく、領域651と領域652に対して描画され
る。この部分は前述の文字描画における本発明の第一の
実施例では部分616と部分617の2回に分けて描画
していたものである。またフォント右430の部分はフ
ォント左410の部分と同様に図21のシフト量が0か
ら7(データ500からデータ507)の場合に相当す
るのでVRAM1の上位バイト部分456と下位バイト
部分457のアドレスは同一となり、領域652と領域
653に対して描画される。この結果、図23の文字描
画開始位置のシフト量が0から7まですなわち開始位置
600から開始位置607までのときは最低限の3回の
縦方向転送処理で1文字を描画できる。
【0134】次に図23において文字描画開始位置のシ
フト量が8から15まですなわち開始位置608から開
始位置615までのときを説明する。フォント左410
の部分は図21のシフト量が8から15(データ508
からデータ515)の場合に相当するのでVRAM1の
上位バイト部分456は下位バイト部分457のアドレ
スより1番地大きく、領域651と領域652に対して
描画される。この部分も前述の文字描画における本発明
の第一の実施例では部分618と部分619の2回に分
けて描画していたものである。フォント中央420の部
分は図21のシフト量が0から7(データ500からデ
ータ507)の場合に相当するのでVRAM1の上位バ
イト部分456と下位バイト部分457のアドレスは同
一となり、領域652と領域653に対して描画され
る。フォント右430の部分はフォント左410の部分
と同様に図21のシフト量が8から15(データ508
からデータ515)の場合に相当するのでVRAM1の
上位バイト部分456は下位バイト部分457のアドレ
スより1番地大きく、領域653と領域654に対して
描画される。この部分も前述の文字描画における本発明
の第一の実施例では部分620と部分621の2回に分
けて描画していたものである。この結果、図23の文字
描画開始位置のシフト量が8から15まですなわち開始
位置608から開始位置615までのときも最低限の3
回の縦方向転送処理で1文字を描画できる。
【0135】以上のように文字描画における本発明の第
二の実施例では文字描画開始位置のシフト量が0から1
5までの全ての場合において最低限の縦方向転送処理で
1文字を描画できる。このため図23の例では、文字描
画における本発明の第一の実施例の平均縦方向転送回数
である4.3回を3回に短縮することができる。このた
め文字描画の高速化を図った第一の実施例と比べてもさ
らに1.4倍の高速化が可能である。
【0136】2.3 第三の実施例 さて、図25の文字の描画方法の種類では(c)のオペ
ーク2が未説明で残っている。本来、文字のオペーク書
き込みとは上記(2)の文字の前景色と背景色を同時に
描画する場合で述べた方法で描画するのであるが、本発
明で説明した手段を備えない従来の装置で上記(2)の
描画を行なうことはCPU100の文字描画処理の負荷
を著しく増加させる。このためウインドウシステムの制
御プログラムはしばしば図25(c)の方法を用いてオ
ペーク書き込みを実現している。すなわち、まず文字の
ボディフェイス部分703をVRAM1のボディフェイ
スディスティネーション部分708に書き込み、しかる
後に文字のフォント部分701をVRAM1の前景ディ
スティネーション部分707に書き込むものである。図
25(c)の方法の場合、文字の描画がディスティネー
ション部分705、706の現在の画像データとのラス
タ演算を必要としなければ前述の文字描画における本発
明の第一および第二の実施例(すなわち図17のデータ
操作部のプレン単位部分の構成例を用いた場合)で対応
できるが、ラスタ演算を必要とする場合は上記実施例で
は二度書きが必要になる。
【0137】図24は文字描画における本発明の第三の
実施例であり、図25(c)のオペーク2でも一回の書
き込みで処理できるようにしたデータ操作部のプレン単
位部分の構成例である。同図が図17のデータ操作部の
プレン単位部分の構成例と異なるのはビット選択手段3
27に入力する文字のフォント部分701の描画データ
を、2値ラスタ演算器F326からではなく3値ラスタ
演算器9から供給するようにしたことである。これによ
り、文字のボディフェイス部分703をVRAM1のボ
ディフェイスディスティネーション部分708に書き込
み、しかる後に文字のフォント部分701をVRAM1
の前景ディスティネーション部分707に書き込む処理
を同時に行なうことができるので、オペーク2の文字描
画をオペーク1と同じ処理時間で描画できる。
【0138】3.線分描画 3.1 第一の実施例 以下線分描画における本発明の第一の実施例を説明す
る。前述のように図15が本実施例の全体構成の一例で
ある。同図におけるデータ操作部306は図16に示す
VRAM1の全プレンに共通な部分と、図17に示すV
RAM1の各プレン単位の部分320から成る。また図
15のアドレス発生器308の構成例を図18に示す。
なお文字描画の項で述べたように図16、図17および
図18の内容は上記のビットブロック転送の項の初めで
すでに説明しているのでここでは省略する。またアドレ
ス発生器308、連続転送シーケンサ15およびマスク
パタン生成部305についてもビットブロック転送の項
を参照していただきたい。
【0139】線分描画で特徴的なのはドットマスク発生
部305を備えたことである。次に図26を用いてドッ
トマスク発生部305の構成例およびアドレス発生器3
08との関係を説明する。ドットマスク発生部305
は、VRAMデータバス上の1ビットのみ書き込みを許
可するビットパタンを生成してこれを外部データとし、
データ操作部306のデータ構造変換器58を介してビ
ットマスク制御部に与える。1ビットのみ書き込みを許
可するビットパタンの生成(以下ビットパタン生成と呼
ぶ)は図26のアップダウンカウンタ802とデコーダ
803で構成する。VRAM1に対する書き込みサイク
ルを終了するとそのビットパタンを選択的に、パタンの
変化をさせないかあるいは1ビット右もしくは左に回転
(ローテート)し、回転の結果あふれが生じた場合には
アドレス発生器308のディスティネーションアドレス
レジスタ33の値を右回転のときには+1し、左回転の
時には−1する。パタンの無変化あるいは1ビット右も
しくは左への回転の指示は線分描画モードレジスタ80
4で行なう。制御線805はパタンの変化、無変化を指
定する。もし制御線805が無変化を示すときはカウン
タ802は更新クロック808に反応せず、またあふれ
信号807も常にあふれなしの状態に制御する。また制
御線805が変化を示すときはカウンタ802は制御線
806の内容に従ってアップダウンのカウントを行な
う。このときはカウンタの状態に従ってあふれ信号80
7が発生する。アドレス発生器308にはインクリメン
タ・デクリメンタ365を設ける。インクリメンタ・デ
クリメンタ365はあふれ信号807があふれの状態を
示しているときに制御線806による+1もしくは−1
の指示どうり動作する。それ以外の場合、インクリメン
タ・デクリメンタ365は加算器A357の出力をその
ままディスティネーションアドレスレジスタに与えるよ
うに動作する。このドットマスク発生部305およびイ
ンクリメンタ・デクリメンタ365を設けることによ
り、ビットブロック転送の高速化手段をそのまま線分描
画の高速化に利用することができる。ビットブロック転
送ではワード単位の描画を行なったが線分描画では基本
的にドット単位の描画であることが異なる。
【0140】図26にはカウンタ802への初期値設定
の経路が二通り示してある。一つはエンコーダ801を
用いた設定経路で、VRAM1のワード内のビットイメ
ージデータを入力とし、エンコーダ801によってカウ
ンタ802へのロードデータに変換してから設定するも
のである。エンコーダ801はプライオリティエンコー
ダであることが望ましい。この経路は上位のプログラム
から与えられるパラメータがビットイメージであるとき
に用いると効果がある。他の一つは直接カウンタ802
にデータをロードする経路で、これは上位のプログラム
から与えられるパラメータが、x−y座標であるときに
用いると効果がある。すなわちカウンタ802で必要な
ビット数だけx座標の下位ビットから切り出して設定す
ればよい。なお更新クロック808はディスティネーシ
ョンアドレスレジスタを用いたVRAM1へのライト終
了後にトリガをかける信号であるが、連続転送シーケン
サ15を用いたライトの時には連続転送シーケンサ15
による最終のサイクルのときに限り、図示しない手段に
より更新クロック808のトリガを発生する、しないを
選択できるものとする。そして以後の説明では連続転送
シーケンサ15による最終のサイクルのときには更新の
トリガを発生しないように指定してあるものとする。
【0141】次に上記の構成要素がどのように動作する
かを説明する。本発明では水平、垂直、斜め45度の三
種類の線分を高速化する。水平線分描画については、作
用の項で述べたように描画する線分の長さが長い場合と
短い場合に分けて説明する。ここで述べる長さの定義は
作用の項を参照していただきたい。なおここでは二つの
場合に分けて描画するとしているが、いずれか一方の場
合で説明する方法のみを用いてあらゆる場合の水平線分
を描画しても構わないことを注意しておく。
【0142】(1a)線分が長い場合の水平線分描画 図27(b)に示す場合の水平線分描画である。データ
操作部306、アドレス発生器308、アクセスサイク
ル発生器10、連続転送シーケンサ15、およびマスク
パタン生成部305を用いて描画する。動作はビットブ
ロック転送における、ある色で水平1ラインを塗りつぶ
す処理と同じである。CPU100は描画開始と終了の
座標から線分の両端のマスクパタンを作成し、マスクパ
タン生成部305に設定する。具体的には例えば図27
(b)に示す水平線分901を向かって左から右に描画
するとき、図7における第一の描画許可レジスタ47に
は図27(b)の水平線分901の左端の描画パタン9
02を、第二の描画許可レジスタ48には右端の描画パ
タン903をそれぞれ設定する。このとき描画すべき線
分の色はバッファレジスタS2あるいはバッファレジス
タP3にあらかじめ設定しておき、3値ラスタ演算器9
にはバッファレジスタS2あるいはバッファレジスタP
3の内容をVRAM1に与える演算を指定しておく。も
し線分の描画がディスティネーション領域、すなわちこ
れから線分を描画しようとする領域の現在の画像データ
と描画する線分色のラスタ演算を必要とする場合は、3
値ラスタ演算器9にはバッファレジスタS2あるいはバ
ッファレジスタP3の内容とバッファレジスタD4の内
容を演算するよう指定しておく。
【0143】書き込みに用いるVRAM1のアドレスは
CPUアドレスではなくアドレス発生器308が発生す
るアドレスを用いる。アドレス発生器308を構成する
ディスティネーションアドレスレジスタ33には書き初
めの画素を含むVRAM1のアドレスを、またディステ
ィネーションオフセットレジスタ41には右方向に描画
する場合は+1を、左方向に描画するときは−1をあら
かじめ設定しておく。また、アクセスサイクル発生器1
0には連続転送シーケンサ15のVRAM1へのライト
サイクル発生時にディスティネーションアドレスレジス
タ33を用いたライトアクセスを発生するように設定し
ておく。もし線分の描画が線分の色とディスティネーシ
ョン領域とのラスタ演算を必要とする場合は連続転送シ
ーケンサ15のVRAM1へのライトサイクル発生時に
ディスティネーションアドレスレジスタ33を用いたリ
ードアクセスとライトアクセスを発生するように設定し
ておく。するとはじめのリードアクセスでVRAM1の
ディスティネーション領域の現在の画像データが各プレ
ンのバッファレジスタD4に読み込まれ、次のライトア
クセスでラスタ演算した結果が再びVRAM1のディス
ティネーション領域に書込まれる。なお、手段の項で述
べたようにディスティネーションアドレスレジスタ33
はライトアクセス終了後にのみ更新される。
【0144】以上の前処理を行なった後、連続転送シー
ケンサ15に描画すべきワード数分の連続ライトを指示
することにより、長い水平線分を描画することができ
る。VRAM1のデータバスが16ビットであれば最大
16画素ずつ描画できる。ラスタ演算を必要とする場合
は、連続転送シーケンサ15に描画すべきワード数分の
連続リードライトを指示すればよい。
【0145】(1b)線分が短い場合の水平線分描画 図27(a)に示す場合の水平線分描画である。データ
操作部306、アドレス発生器308、アクセスサイク
ル発生器10、連続転送シーケンサ15、およびドット
マスク生成部305を用いて描画する。線分が長い場合
の水平線分描画と異なるのはマスクパタン生成部305
を用いてワード単位に描画する代わりにドットマスク生
成部305を用いてドット単位に描画することである。
CPU100は書き初めのビットパタンに相当するデー
タを初期値としてドットマスク生成部305内のカウン
タ802に設定する。また右方向、左方向のどちらに向
かって描画するかを線分描画モードレジスタ804に設
定する。このとき描画すべき線分の色は上記と同様に、
バッファレジスタS2あるいはバッファレジスタP3に
あらかじめ設定しておき、3値ラスタ演算器9にはバッ
ファレジスタS2あるいはバッファレジスタP3の内容
をVRAM1に与える演算を指定しておく。もし線分の
描画がディスティネーション領域、すなわちこれから線
分を描画しようとする領域の現在の画像データと描画す
る線分色のラスタ演算を必要とする場合は、3値ラスタ
演算器9にはバッファレジスタS2あるいはバッファレ
ジスタP3の内容とバッファレジスタD4の内容を演算
するよう指定しておく。
【0146】書き込みに用いるVRAM1のアドレスは
CPUアドレスではなくアドレス発生器308が発生す
るアドレスを用いる。アドレス発生器308を構成する
ディスティネーションアドレスレジスタ33には書き初
めの画素を含むVRAM1のアドレスを、またディステ
ィネーションオフセットレジスタ41には0をあらかじ
め設定しておく。また、アクセスサイクル発生器10に
は連続転送シーケンサ15のVRAM1へのライトサイ
クル発生時にディスティネーションアドレスレジスタ3
3を用いたライトアクセスを発生するように設定してお
く。もし線分の描画が線分の色とディスティネーション
領域とのラスタ演算を必要とする場合は連続転送シーケ
ンサ15のVRAM1へのライトサイクル発生時にディ
スティネーションアドレスレジスタ33を用いたリード
アクセスとライトアクセスを発生するように設定してお
く。するとはじめのリードアクセスでVRAM1のディ
スティネーション領域の現在の画像データが各プレンの
バッファレジスタD4に読み込まれ、次のライトアクセ
スでラスタ演算した結果が再びVRAM1のディスティ
ネーション領域に書込まれる。なお、手段の項で述べた
ようにディスティネーションアドレスレジスタ33はラ
イトアクセス終了後にのみ更新される。
【0147】以上の前処理を行なった後、連続転送シー
ケンサ15に描画すべき画素数分の連続ライトを指示す
ることにより、短い水平線分を描画することができる。
VRAM1のデータバス幅と無関係に1画素ずつ描画す
る。一回の書込みごとにドットマスク発生部305はビ
ットパタンを右または左に回転し、描画すべき画素がV
RAM1のワード境界を超えるとカウンタ802があふ
れ信号807をアクティブにし、アドレス発生器308
内のインクリメンタ・デクリメンタ365が動作してデ
ィスティネーションアドレスレジスタ33を+1または
−1する。画素の書き込みは1ドット単位であるがCP
U100はワード境界を意識する必要がないので短い水
平線分を描画するには適した方法である。なおラスタ演
算を必要とする場合は、連続転送シーケンサ15に描画
すべき画素数分の連続リードライトを指示すればよい。
【0148】(2)垂直線分描画 データ操作部306、アドレス発生器308、アクセス
サイクル発生器10、連続転送シーケンサ15、および
ドットマスク生成部305を用いて描画する。CPU1
00は書き初めのビットパタンを初期値としてドットマ
スク生成部305に設定する。また右方向、左方向のど
ちらにもパタンを移動しないよう、合わせて指示する。
このとき描画すべき線分の色は上記と同様に、バッファ
レジスタS2あるいはバッファレジスタP3にあらかじ
め設定しておき、3値ラスタ演算器9にはバッファレジ
スタS2あるいはバッファレジスタP3の内容をVRA
M1に与える演算を指定しておく。もし線分の描画がデ
ィスティネーション領域、すなわちこれから線分を描画
しようとする領域の現在の画像データと描画する線分色
のラスタ演算を必要とする場合は、3値ラスタ演算器9
にはバッファレジスタS2あるいはバッファレジスタP
3の内容とバッファレジスタD4の内容を演算するよう
指定しておく。
【0149】書き込みに用いるVRAM1のアドレスは
CPUアドレスではなくアドレス発生器308が発生す
るアドレスを用いる。アドレス発生器308を構成する
ディスティネーションアドレスレジスタ33には書き初
めの画素を含むVRAM1のアドレスを設定する。また
ディスティネーションオフセットレジスタ41には、画
面の上方向に向かって描画する場合はディスティネーシ
ョンアドレスレジスタ33に加算すると表示画面上でち
ょうど1ラスタ上にずれたアドレスになるようなオフセ
ット値を、また画面の下方向に向かって描画する場合は
ディスティネーションアドレスレジスタ33に加算する
と表示画面上でちょうど1ラスタ下にずれたアドレスに
なるようなオフセット値をあらかじめ設定しておく。ま
た、アクセスサイクル発生器10には連続転送シーケン
サ15のVRAM1へのライトサイクル発生時にディス
ティネーションアドレスレジスタ33を用いたライトア
クセスを発生するように設定しておく。もし線分の描画
が線分の色とディスティネーション領域とのラスタ演算
を必要とする場合は連続転送シーケンサ15のVRAM
1へのライトサイクル発生時にディスティネーションア
ドレスレジスタ33を用いたリードアクセスとライトア
クセスを発生するように設定しておく。するとはじめの
リードアクセスでVRAM1のディスティネーション領
域の現在の画像データが各プレンのバッファレジスタD
4に読み込まれ、次のライトアクセスでラスタ演算した
結果が再びVRAM1のディスティネーション領域に書
込まれる。なお、手段の項で述べたようにディスティネ
ーションアドレスレジスタ33はライトアクセス終了後
にのみ更新される。
【0150】以上の前処理を行なった後、連続転送シー
ケンサ15に描画すべき画素数分の連続ライトを指示す
ることにより、垂直線分を描画することができる。VR
AM1のデータバス幅と無関係に1画素ずつ描画する。
なおラスタ演算を必要とする場合は、連続転送シーケン
サ15に描画すべき画素数分の連続リードライトを指示
すればよい。
【0151】(3)斜め45度線分描画 データ操作部306、アドレス発生器308、アクセス
サイクル発生器10、連続転送シーケンサ15、および
ドットマスク生成部305を用いて描画する。CPU1
00は書き初めのビットパタンを初期値としてドットマ
スク生成部305に設定する。また右方向、左方向のど
ちらに向かって描画するかを合わせて指示する。このと
き描画すべき線分の色は上記と同様に、バッファレジス
タS2あるいはバッファレジスタP3にあらかじめ設定
しておき、3値ラスタ演算器9にはバッファレジスタS
2あるいはバッファレジスタP3の内容をVRAM1に
与える演算を指定しておく。もし線分の描画がディステ
ィネーション領域、すなわちこれから線分を描画しよう
とする領域の現在の画像データと描画する線分色のラス
タ演算を必要とする場合は、3値ラスタ演算器9にはバ
ッファレジスタS2あるいはバッファレジスタP3の内
容とバッファレジスタD4の内容を演算するよう指定し
ておく。
【0152】書き込みに用いるVRAM1のアドレスは
CPUアドレスではなくアドレス発生器308が発生す
るアドレスを用いる。アドレス発生器308を構成する
ディスティネーションアドレスレジスタ33には書き初
めの画素を含むVRAM1のアドレスを設定する。また
ディスティネーションオフセットレジスタ41には、画
面の上方向に向かって描画する場合はディスティネーシ
ョンアドレスレジスタ33に加算すると表示画面上でち
ょうど1ラスタ上にずれたアドレスになるようなオフセ
ット値を、また画面の下方向に向かって描画する場合は
ディスティネーションアドレスレジスタ33に加算する
と表示画面上でちょうど1ラスタ下にずれたアドレスに
なるようなオフセット値をあらかじめ設定しておく。ま
た、アクセスサイクル発生器10には連続転送シーケン
サ15のVRAM1へのライトサイクル発生時にディス
ティネーションアドレスレジスタ33を用いたライトア
クセスを発生するように設定しておく。もし線分の描画
が線分の色とディスティネーション領域とのラスタ演算
を必要とする場合は連続転送レジスタのVRAM1への
ライトサイクル発生時にディスティネーションアドレス
レジスタ33を用いたリードアクセスとライトアクセス
を発生するように設定しておく。するとはじめのリード
アクセスでVRAM1のディスティネーション領域の現
在の画像データが各プレンのバッファレジスタD4に読
み込まれ、次のライトアクセスでラスタ演算した結果が
再びVRAM1のディスティネーション領域に書込まれ
る。なお、手段の項で述べたようにディスティネーショ
ンアドレスレジスタ33はライトアクセス終了後にのみ
更新される。
【0153】以上の前処理を行なった後、連続転送シー
ケンサ15に描画すべき画素数分の連続ライトを指示す
ることにより、任意の方向に斜め45度線分を描画する
ことができる。つまり一回の書込みごとにドットマスク
発生部305はビットパタンを右または左に回転すると
共にディスティネーションアドレスレジスタ33の値を
1ラスタ上方向または下方向に移動する。さらに、描画
すべき画素がVRAM1のワード境界を超えるとディス
ティネーションアドレスレジスタ33を上下1ラスタ移
動するのに加えて+1または−1するのでCPU100
はワード境界を意識することなく斜め45度線分を描画
することができる。なおラスタ演算を必要とする場合
は、連続転送シーケンサ15に描画すべき画素数分の連
続リードライトを指示すればよい。
【0154】以上のように、本実施例によれば垂直、水
平、そして斜45度の直線を同じアルゴリズムのプログ
ラムで描画することができる。また1ワードに含まれる
ドット数をd個とすると、水平線分を上記(1a)の線
分が長い場合の水平線分描画で述べた方式で描画すれば
垂直、水平、そして斜45度の直線に比べて約d倍の速
度で描画できる。
【0155】3.2 第二の実施例 次に前述した二次元ビットブロック転送の高速化手段を
利用して上記の水平、垂直、そして斜45度以外の任意
角度の直線も高速描画する、線分描画における本発明の
第二の実施例を説明する。上記線分描画における第一の
実施例は水平、垂直、そして斜45度の線分を高速化す
るものであったが、それ以外の任意角度の線分は図34
に示すように水平、垂直、そして斜45度の三つの線分
要素を繰り返し用いて描画することができる。同図にお
いて920は水平軸線、922は斜45度線、924は
垂直軸線である。また921は水平軸線920に対して
約27度付近を示し、923は垂直軸線924に対して
約27度付近を示す。すると角度領域925では例えば
水平線分列929から932のようにして任意角度の線
分を描画し、以下、角度領域926では例えば斜45度
線分列933から936、角度領域927では例えば斜
45度線分列937から940、角度領域928では例
えば垂直線分列941から944のようにして任意角度
の線分を描画する。例で示した任意角度の線分はそれぞ
れ4ドット長の水平、垂直、あるいは斜45度の線分を
基本としているが、水平線分931、斜45度線分93
5および939、そして垂直線分943は他より1ドッ
ト多い5ドット長の線分となっている。これは1ドット
を描画する度に発生する1ドット未満の座標値の誤差累
積値が1ドット分を超えてほかの線分より1ドット余計
に描画する必要があったからである。以上の例のように
任意角度の線分を描画するためには1ドット未満の座標
値の誤差を累積するという処理も必要になる。
【0156】次に示す数6は上記第一の実施例による水
平(前述1bの線分が短い場合の水平線分描画参照)、
垂直、そして斜45度の線分描画処理時間tを表す一般
式である。
【0157】 t=a*n*x+c1 −−− (数6) 但し、各パラメータの意味は次の通りである。
【0158】a:VRAMの一回の平均アクセス時間 c1:線分描画処理の固定オーバヘッド n:1ドット描画に必要なVRAMアクセス回数 x:描画ドット数 ここで、パラメータnは普通に線分を描画するときは1
であり、現在VRAM1に書かれているデータとこれか
ら描画するドットの色をラスタ演算する場合は一回VR
AM1を読み込んでから描画するので2となる。この式
を用いて任意角度の線分描画処理時間tを表すと数7と
なる。
【0159】 t=r(a*n*x+c2)+c1 −−− (数7) 但し、パラメータc2は1ドット未満の座標増加分の誤
差累積やレジスタ類の設定などの処理であり、一般にパ
ラメータc1より小さい値である。数ドットの線分要素
の繰り返しで表現される任意角度の線分描画では、実際
にオーバヘッドc2はa*n*xの項に対して5から3
0倍程度大きくなることがある。このオーバヘッド処理
を並列に行なうことにより式の上から消去できれば任意
角度の線分描画でも数6で示した水平、垂直、そして斜
45度の線分の三つの線分要素と同じ計算式、すなわち
数6で処理時間を表すことができる。
【0160】図32は任意角線分を描画するための部分
を抜き出した制御部の構成例である。これは図29に示
した二次元の領域に対するビットブロック転送制御部に
対して線分描画用の誤差累積部と、誤差累積部の累積値
がある値を越えたときにカウント値保持レジスタ92に
保持した値を+1するインクリメンタ95を設けたもの
である。誤差累積部は誤差累積レジスタ93と誤差レジ
スタ94、そして両者の値を加算して次の累積値を求め
るための誤差加算器96から成る。またこのときのアド
レス発生器308の構成例を図33に示す。図30の二
次元ビットブロック転送対応のアドレス発生器308と
異なるのは加算器83の後にインクリメンタ・デクリメ
ンタ365を設けたことである。これは線分描画におけ
る本発明の第一の実施例で説明した図26のものと同じ
である。
【0161】以下、図34の線分描画を例に動作を説明
する。はじめに角度領域925の水平線分列929から
932を描画する場合を考える。ディスティネーション
アドレスレジスタ33には水平線分929の左端のドッ
トを含むVRAM1のアドレスを、ディスティネーショ
ンオフセットレジスタ41には0を設定する。またドッ
トマスク発生部305には水平線分929の左端のドッ
ト位置を初期値として設定し、ドット位置は右方向移
動、ラスタカウンタ51の値が0でなくかつ連続転送シ
ーケンサ15による最終回のライト時にもドット位置を
右方向に更新するよう指定する。誤差累積レジスタ93
には累積値の初期値を、また誤差レジスタ94には一回
の水平線分(ここでは4ドット)を描画したときの1ド
ット未満の誤差値を設定する。ラスタカウンタ51には
描画する水平線分の数(ここでは4本)に相当する値
を、またディスティネーション領域加算値レジスタ72
にはアドレスを1ラスタ分上に移動する値を設定する。
しかる後に連続転送カウンタ14(およびカウント値保
持レジスタ92)に描画すべき水平線分のドット数(こ
こでは4ドット)を書き込んで連続転送シーケンサ15
を起動する。
【0162】連続転送シーケンサ15は4回のライトサ
イクルを発生して水平線分929を描画し終わると、デ
ィスティネーションアドレスレジスタ33にはディステ
ィネーション領域加算値レジスタ72に設定した値が加
算され、水平線分930の左端のドットを含むアドレス
値となる。ドットマスク発生部305のドット位置も水
平線分930の左端のドットの位置に更新され、誤差累
積レジスタ93の内容も誤差レジスタ94の値を加算し
て更新される。この例では誤差の累積値は1ドットに達
していないのでインクリメンタ95は動作せず、ラスタ
カウンタ51の値が0でないのでカウント値保持レジス
タ92の値がそのまま連続転送カウンタ14に転送さ
れ、再び連続転送シーケンサ15が起動されて水平線分
930を描画する。このときラスタカウンタ51の値は
−1して更新する。このラスタカウンタ51の更新動作
は連続転送シーケンサ15による一連の転送が終了する
度に行なう。以下の説明でも同様である。水平線分93
0を描画し終わると再びレジスタ類の更新を行なうが、
この例では今回は誤差累積レジスタ93の累積値が1ド
ット分を超えたとしているので、インクリメンタ95が
動作して次回の水平線分931のドット数を+1する。
最後の水平線分932を描画し終えると、この場合はラ
スタカウンタ51の値が0になっているのでそれ以上の
連続転送シーケンサ15の起動は起こらず、線分の描画
は停止する。簡単のため上記では説明しなかったが、ド
ット位置がVRAM1のワード境界をまたいだ場合はイ
ンクリメンタ・デクリメンタ365によりディスティネ
ーションアドレスレジスタ33の値は+1される。以下
の説明でも同様である。これについては第一の実施例で
述べているのでそちらを参照していただきたい。
【0163】次に角度領域926の斜45度線分列93
3から936を描画することを考える。ディスティネー
ションアドレスレジスタ33には斜45度線分933の
左下端のドットを含むVRAM1のアドレスを、ディス
ティネーションオフセットレジスタ41にはアドレスを
1ラスタ分上に移動する値を設定する。またドットマス
ク発生部305には斜45度線分933の左下端のドッ
ト位置を初期値として設定し、ドット位置は右方向移
動、ラスタカウンタ51の値が0でなくかつ連続転送シ
ーケンサ15による最終回のライト時にもドット位置を
右方向に更新するよう指定する。誤差累積レジスタ93
には累積値の初期値を、また誤差レジスタ94には一回
の斜45度線分(ここでは4ドット)を描画したときの
1ドット未満の誤差値を設定する。ラスタカウンタ51
には描画する斜45度線分の数(ここでは4本)に相当
する値を、またディスティネーション領域加算値レジス
タ72には0を設定する。しかる後に連続転送カウンタ
14(およびカウント値保持レジスタ92)に描画すべ
き水平線分のドット数(ここでは4ドット)を書き込ん
で連続転送シーケンサ15を起動する。連続転送シーケ
ンサ15は4回のライトサイクルを発生して斜45度線
分933を描画し終わると、ディスティネーションアド
レスレジスタ33にはディスティネーション領域加算値
レジスタ72に設定した値が加算されるがこの場合は0
であるので変化なく、斜45度線分934の左下端のド
ットを含むアドレス値となる。ドットマスク発生部30
5のドット位置も斜45度線分934の左下端のドット
の位置に更新され、誤差累積レジスタ93の内容も誤差
レジスタ94の値を加算して更新される。この例では誤
差の累積値は1ドットに達していないのでインクリメン
タ95は動作せず、ラスタカウンタ51の値が0でない
のでカウント値保持レジスタ92の値がそのまま連続転
送カウンタ14に転送され、再び連続転送シーケンサ1
5が起動されて斜45度線分934を描画する。このと
きラスタカウンタ51の値は−1して更新する。斜45
度線分934を描画し終わると再びレジスタ類の更新を
行なうが、この例でも誤差累積レジスタ93の累積値が
1ドット分を超えたとしているので、インクリメンタ9
5が動作して次回の斜45度線分935のドット数を+
1する。最後の斜45度線分936を描画し終えると、
この場合はラスタカウンタ51の値が0になっているの
でそれ以上の連続転送シーケンサ15の起動は起こら
ず、線分の描画は停止する。
【0164】次に角度領域927の斜45度線分列93
7から940を描画することを考える。ディスティネー
ションアドレスレジスタ33には斜45度線分937の
左下端のドットを含むVRAM1のアドレスを、ディス
ティネーションオフセットレジスタ41にはアドレスを
1ラスタ分上に移動する値を設定する。またドットマス
ク発生部305には斜45度線分937の左下端のドッ
ト位置を初期値として設定し、ドット位置は右方向移
動、ラスタカウンタ51の値が0でなくかつ連続転送シ
ーケンサ15による最終回のライト時にはドット位置を
更新しないよう指定する。誤差累積レジスタ93には累
積値の初期値を、また誤差レジスタ94には一回の斜4
5度線分(ここでは4ドット)を描画したときの1ドッ
ト未満の誤差値を設定する。ラスタカウンタ51には描
画する斜45度線分の数(ここでは4本)に相当する値
を、またディスティネーション領域加算値レジスタ72
にはアドレスを1ラスタ分上に移動する値を設定する。
【0165】しかる後に連続転送カウンタ14(および
カウント値保持レジスタ92)に描画すべき水平線分の
ドット数(ここでは4ドット)を書き込んで連続転送シ
ーケンサ15を起動する。連続転送シーケンサ15は4
回のライトサイクルを発生して斜45度線分937を描
画し終わると、ディスティネーションアドレスレジスタ
33にはディスティネーション領域加算値レジスタ72
に設定した値が加算されて、斜45度線分938の左下
端のドットを含むアドレス値となる。ドットマスク発生
部305のドット位置は変化せず、斜45度線分938
の左下端のドットの位置のままとなり、誤差累積レジス
タ93の内容は誤差レジスタ94の値を加算して更新さ
れる。この例では誤差の累積値は1ドットに達していな
いのでインクリメンタ95は動作せず、ラスタカウンタ
51の値が0でないのでカウント値保持レジスタ92の
値がそのまま連続転送カウンタ14に転送され、再び連
続転送シーケンサ15が起動されて斜45度線分938
を描画する。このときラスタカウンタ51の値は−1し
て更新する。斜45度線分938を描画し終わると再び
レジスタ類の更新を行なうが、この例でも誤差累積レジ
スタ93の累積値が1ドット分を超えたとしているの
で、インクリメンタ95が動作して次回の斜45度線分
939のドット数を+1する。最後の斜45度線分94
0を描画し終えると、ラスタカウンタ51の値が0にな
っているのでそれ以上の連続転送シーケンサ15の起動
は起こらず、線分の描画は停止する。
【0166】最後に角度領域928の垂直線分列941
から944を描画することを考える。ディスティネーシ
ョンアドレスレジスタ33には垂直線分941の下端の
ドットを含むVRAM1のアドレスを、ディスティネー
ションオフセットレジスタ41にはアドレスを1ラスタ
分上に移動する値を設定する。またドットマスク発生部
305には垂直線分941の下端のドット位置を初期値
として設定し、ドット位置は無移動、ラスタカウンタ5
1の値が0でなくかつ連続転送シーケンサ15による最
終回のライト時にはドット位置を右方向に更新するよう
指定する。誤差累積レジスタ93には累積値の初期値
を、また誤差レジスタ94には一回の垂直線分(ここで
は4ドット)を描画したときの1ドット未満の誤差値を
設定する。ラスタカウンタ51には描画する垂直線分の
数(ここでは4本)に相当する値を、またディスティネ
ーション領域加算値レジスタ72にはアドレスを1ラス
タ分上に移動する値を設定する。しかる後に連続転送カ
ウンタ14(およびカウント値保持レジスタ92)に描
画すべき水平線分のドット数(ここでは4ドット)を書
き込んで連続転送シーケンサ15を起動する。連続転送
シーケンサ15は4回のライトサイクルを発生して垂直
線分941を描画し終わると、ディスティネーションア
ドレスレジスタ33にはディスティネーション領域加算
値レジスタ72に設定した値が加算されて、垂直線分9
42の下端のドットを含むアドレス値となる。ドットマ
スク発生部305のドット位置は右方向に移動して垂直
線分942の下端のドットの位置となり、誤差累積レジ
スタ93の内容は誤差レジスタ94の値を加算して更新
される。この例では誤差の累積値は1ドットに達してい
ないのでインクリメンタ95は動作せず、ラスタカウン
タ51の値が0でないのでカウント値保持レジスタ92
の値がそのまま連続転送カウンタ14に転送され、再び
連続転送シーケンサ15が起動されて垂直線分942を
描画する。このときラスタカウンタ51の値は−1して
更新する。垂直線分942を描画し終わると再びレジス
タ類の更新を行なうが、この例でも誤差累積レジスタ9
3の累積値が1ドット分を超えたとしているので、イン
クリメンタ95が動作して次回の垂直線分943のドッ
ト数を+1する。最後の垂直線分944を描画し終える
と、ラスタカウンタ51の値が0になっているのでそれ
以上の連続転送シーケンサ15の起動は起こらず、線分
の描画は停止する。
【0167】上記の説明では第一象限の任意角度の線分
描画を例にしたが、これを対称に展開してゆけばすべて
の象限で同様の任意角度の線分描画が行なえることは明
白である。また線分はラインスタイルを持たないものと
して説明したが、ビットブロック転送における本発明の
第七の実施例で説明した繰り返しパタンの制御手段を用
いて点線、破線、一点鎖線などのラインスタイルを付け
ることができる。
【0168】
【発明の効果】本発明によりビットブロック転送、文字
描画、線分描画をその処理の種類にかかわらず、高速に
処理できる。このため、ウィンドウシステムをより実用
的なものにすることができる。つまり、ウィンドウの移
動、重ね合わせ、表示、消去、文字の表示、スクロール
等のウィンドウシステム特有の処理にかかる時間を短縮
することができ、ウィンドウシステムの使用者に心地良
い操作環境を提供できる。
【図面の簡単な説明】
【図1】第二の実施例のビットブロック転送支援装置の
構成図である。
【図2】VRAM上の矩形領域転送の模式図である。
【図3】VRAMアクセスサイクル発生器の動作を示す
タイミングチャートを示す図である。
【図4】最適化したビットブロック転送のタイミングチ
ャートを示す図である。
【図5】アドレス加算ポートを設けたアドレス生成部の
構成図である。
【図6】VRAM上の転送領域のラスタの様子を示す模
式図である。
【図7】第四の実施例のビットブロック転送支援装置の
構成図である。
【図8】描画許可レジスタの動作を示す模式図である。
【図9】第五の実施例のビットブロック転送支援装置の
構成図である。
【図10】先頭アドレスレジスタ及びラスタアドレスレ
ジスタを設けたアドレス発生部の構成図である。
【図11】第六の実施例のビットブロック転送支援装置
の構成図である。
【図12】データ構造の違いを示す模式図である。
【図13】簡略化したアドレス加算ポート付きアドレス
発生部を示す図である。
【図14】簡略化した先頭アドレスレジスタ、ラスタア
ドレスレジスタ付きアドレス発生部を示す図である。
【図15】本発明による表示・描画装置の全体構成図で
ある。
【図16】データ操作部の構成例を示す図である。
【図17】データ操作部のプレン単位分の構成例を示す
図である。
【図18】アドレス発生器の構成例を示す図である。
【図19】文字フォントの主記憶への格納方式説明図で
ある。
【図20】データ位置変換部の動作説明図である。
【図21】シフタのシフト量とデータの関係を示す図で
ある。
【図22】文字描画時のアドレス発生を示す図である。
【図23】文字描画開始位置と縦方向描画回数の関係を
示す図である。
【図24】データ操作部のプレン単位分の構成例その2
を示す図である。
【図25】文字の描画方法の種類を示す図である。
【図26】線分描画制御部の構成例を示す図である。
【図27】線分描画の説明図である。
【図28】連続転送シーケンサの状態遷移制御例を示す
図である。
【図29】二次元化対応のビットブロック転送制御部の
構成例を示す図である。
【図30】二次元化対応のアドレス発生器の構成例を示
す図である。
【図31】二次元ビットブロック転送時の各パラメータ
の説明図である。
【図32】任意角線分描画の制御部の構成例を示す図で
ある。
【図33】任意角線分描画対応のアドレス発生器の構成
例を示す図である。
【図34】任意角の線分描画の説明図である。
【図35】アクセスサイクル発生器の構成例を示す図で
ある。
【図36】連続転送シーケンサの構成例を示す図であ
る。
【図37】各シーケンサの状態遷移の相関の例を示す図
である。
【図38】各シーケンサの動作タイミングの相関の例を
示す図である。
【図39】CPUによるアクセス起動の例を示す図であ
る。
【符号の説明】
1...VRAM 2...バッファレジスタS 3...バッファレジスタP 4...バッファレジスタD 5...マージレジスタS 6...マージレジスタP 7...シフタS 8...シフタP 9...3値ラスタ演算器 10...アクセスサイクル発生器 11...ソースアドレス発生部 12...パタンアドレス発生部 13...ディスティネーションアドレス発生部 14...連続転送カウンタ 15...連続転送シーケンサ 25...アドレス切換器 28...ソースアドレス加算ポート 29...パタンアドレス加算ポート 30...ディスティネーションアドレス加算ポート 31...ソースアドレスレジスタ 32...パタンアドレスレジスタ 33...ディスティネーションアドレスレジスタ 38...ソースオフセットレジスタ 41...ディスティネーションオフセットレジスタ 42...パタンオフセットレジスタ 47...第一の描画許可レジスタ 48...第二の描画許可レジスタ 51...第二の連続転送カウンタ 52、53、54...先頭アドレスレジスタ 55、56、57...ラスタアドレスレジスタ 58、59...データ構造変換器 60...加算器 61、62、63...データ経路切替器 100...CPU 101...システムコントロールバス 102...システムアドレスバス 103...システムデータバス 200...主記憶 300...本発明による表示描画装置 301...表示制御部 302...表示アドレス生成部 303...表示器インタフェース 304...表示器 305...データ位置変換部・マスクパタン生成部・
ドットマスク発生部 306...データ操作部 307...メモリ制御部 308...アドレス発生器 311...アクセス切り替え手段a 312...アクセス切り替え手段b 313...アドレス切り替え手段 320...データ操作部のプレン単位部分 321...リードプレン選択手段 322...プレン単位リードデータ出力制御手段 323...ライトプレン選択手段 324...プレンビットマスク手段 325...2値ラスタ演算器B 326...2値ラスタ演算器F 327...ビット選択手段 328...リードデータ選択手段 329...ライトデータ選択手段 331...ビットマスクレジスタ 332...AND手段 333...ビットマスク用シフタ 334...マージレジスタC 335...シフタC 336...リードデータ合成手段 340...データ操作部内部入力データバス 341...プレン単位リードデータバス 342...データ操作部内部ビットマスクデータバス 343...データ操作部内部オペークデータバス 357...アドレス加算器A 358...アドレス加算器B 361...アドレスレジスタ選択手段 362...オフセットレジスタ選択手段 363...加算データ選択手段 364...インクリメント手段 371...ソースアドレスレジスタラッチ信号 372...ディスティネーションアドレスレジスタラ
ッチ信号 373...パタンアドレスレジスタラッチ信号 370...シフタ380に対するシフト量設定手段 380...シフタ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI G09G 5/20 G09G 5/20 5/39 5/36 530M 530G (72)発明者 小檜山 智久 横浜市戸塚区吉田町292番地株式会社 日立製作所 マイクロエレクトロニクス 機器開発研究所内 (72)発明者 北原 潤 横浜市戸塚区吉田町292番地株式会社 日立製作所 マイクロエレクトロニクス 機器開発研究所内 (72)発明者 平田 直 神奈川県海老名市下今泉810番地株式会 社 日立製作所 オフィスシステム設計 開発センタ内 (72)発明者 大山 清治 愛知県名古屋市中区栄3丁目10番22号日 立中部ソフトウェア株式会社内 (72)発明者 宗圓 巧 横浜市中区尾上町六丁目81番地日立ソフ トウェアエンジニアリング株式会社内 (72)発明者 大手 一郎 横浜市戸塚区吉田町292番地株式会社 日立製作所 マイクロエレクトロニクス 機器開発研究所内 (56)参考文献 特開 平1−217528(JP,A) 特開 平1−140196(JP,A) (58)調査した分野(Int.Cl.7,DB名) G09G 5/00 - 5/40 WPI(DIALOG)

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】 CPUのからの命令に基づき、表示手段へ
    のデータの表示を制御する 描画制御装置において、 前記デ−タを格納する1枚以上のプレン構成をもつVR
    AM部と、 該VRAM部のアクセスタイミングを発生するメモリ制
    御部と、 該表示手段と前記VRAM部への表示アドレスを発生す
    る表示アドレス発生手段と、 該CPUに接続され、設定された回数分アクセス要求タ
    イミングを発生する連続転送シ−ケンス手段と、 該連続転送シ−ケンス手段からの該アクセス要求タイミ
    ングを一回以上のアクセスに拡張して前記メモリ制御部
    に転送するアクセスサイクル発生手段と、 前記CPUからの命令に基づき、該連続転送シ−ケンス
    手段と該アクセスサイクル発生手段の制御で、前記デ−
    タの加工操作を指示するデ−タ制御部と、 該デ−タ制御部の指示に基づき、前記アクセスサイクル
    発生手段の制御で、前記VRAM部に描画する前記デ−
    タの加工操作を行なうデ−タ操作部と、 該アクセスサイクル発生手段からの信号に基づき、前記
    デ−タの描画アドレスを発生する描画アドレス発生手段
    を備えたことを特徴とする描画制御装置。
  2. 【請求項2】 前記連続転送シ−ケンス手段は、前記アク
    セスサイクル発生手段をライトサイクルの連続もしくは
    リードサイクルとライトサイクルの連続の指定回数起動
    することを特徴とする請求項1記載の描画制御装置。
  3. 【請求項3】 前記アクセスサイクル発生手段は、前記描
    画アドレス発生手段を用いて、前記CPUもしくは前記
    連続転送シ−ケンス手段による前記VRAMの読み出し
    要求があった場合はソース、ディスティネーション、パ
    タンの各領域のアクセスを少なくとも1つ以上含むリー
    ドアクセスを発生し、前記CPUもしくは前記連続転送
    シ−ケンス手段による前記VRAMの書き込み要求があ
    った場合はディスティネーション領域のライトアクセス
    もしくはリードアクセスとライトアクセスの組を発生し
    て前記メモリ制御部を駆動することを特徴とする請求項
    1記載の描画制御装置。
  4. 【請求項4】 前記デ−タ制御部は前記連続転送シ−ケン
    ス手段の一回目の書き込み転送時および最終回の書き込
    み転送時にそれぞれ指定のビットマスクパタンを、また
    一回目と最終回の間の書き込み転送時には全ビットの書
    き込みを許可するビットマスクパタンを生成するマスク
    パタン生成部を有することを特徴とする請求項1記載の
    描画制御装置。
  5. 【請求項5】 前記描画アドレス発生手段は、前記VRA
    M上のソース領域のアドレスを保持するソースアドレス
    レジスタ、ディスティネーション領域のアドレスを保持
    するディスティネーションアドレスレジスタ、パタン領
    域のアドレスを保持するパタンアドレスレジスタ、前記
    ソースアドレスレジスタの内容を前記アクセスサイクル
    発生器によるリードアクセスサイクルの終了時に加算・
    更新するための値を保持するソースオフセットレジス
    タ、前記ディスティネーションアドレスレジスタの内容
    を後述のアクセスサイクル発生器によるライトアクセス
    サイクルの終了時に加算・更新するための値を保持する
    ディスティネーションオフセットレジスタ、前記パタン
    アドレスレジスタの内容を後述のアクセスサイクル発生
    器によるリードアクセスサイクルの終了時に加算・更新
    するための値を保持するパタンオフセットレジスタ、前
    記ソースアドレスレジスタと前記ソースオフセットレジ
    スタもしくは前記ディスティネーションアドレスレジス
    タと前記ディスティネーションオフセットレジスタもし
    くは前記パタンアドレスレジスタと前記パタンオフセッ
    トレジスタの内容を加算して前記各アドレスレジスタの
    値を更新するためのアドレス加算器A、前記CPUの書
    き込みデータと前記ソースアドレスレジスタもしくは前
    記ディスティネーションアドレスレジスタもしくは前記
    パタンアドレスレジスタの内容を加算して前記各アドレ
    スレジスタの値を更新するためのアドレス加算器Bを備
    えたことを特徴とする請求項1記載の描画制御装置。
  6. 【請求項6】 前記デ−タ操作部は複数の前記VRAMに
    共通で、前記データのフォーマットを鏡像反転・スワッ
    プもしくはそれらの組合せにより前記データのフォーマ
    ット変換を行うデータ構造変換器、前記VRAMへの書
    き込みをビット単位で制御するためのビットマスクレジ
    スタ、該ビットマスクレジスタの内容と前記データ構造
    変換器のデータをビットごとに論理積の演算を行なうA
    ND手段、前記ビットマスクレジスタもしくは前記デー
    タ構造変換器もしくは前記AND手段のデータをシフト
    するビットマスク用シフタ、前記データ構造変換器のデ
    ータの前回の内容を保持するマージレジスタC、前記デ
    ータ構造変換器のデータと前記マージレジスタCのデー
    タをシフトするシフタC、後述の各プレンのリードデー
    タ選択手段の内容を各ビットごとに論理和の演算を行な
    って前記CPUへのリードデータを合成するリードデー
    タ合成手段を備えたことを特徴とする請求項1記載の描
    画制御装置。
  7. 【請求項7】 前記デ−タ操作部は、複数の前記VRAM
    の各プレンに対して、プレン単位のVRAMリード可否
    を選択するリードプレン選択手段、プレン単位のVRA
    Mライト可否を選択するライトプレン選択手段、該ライ
    トプレン選択手段と前記ビットマスク用シフタの出力を
    合成して各プレンの前記VRAMをビット単位で書き込
    み制御するプレンビットマスク手段、前記VRAMのデ
    ータもしくは前記データ構造変換器のデータをソース領
    域のデータとして保持するバッファレジスタS、前記V
    RAMのデータもしくは前記データ構造変換器のデータ
    をパタン領域のデータとして保持するバッファレジスタ
    P、前記VRAMのデータもしくは前記データ構造変換
    器のデータをディスティネーション領域のデータとして
    保持するバッファレジスタD、前記VRAMもしくは前
    記バッファレジスタSもしくは前記データ構造変換器の
    データの前回の内容を保持するマージレジスタS、前記
    バッファレジスタPもしくは前記データ構造変換器のデ
    ータの前回の内容を保持するマージレジスタP、前記バ
    ッファレジスタSのデータと前記マージレジスタSのデ
    ータをシフトするシフタS、前記バッファレジスタPの
    データと前記マージレジスタPのデータをシフトするシ
    フタP、前記シフタSと前記シフタPと前記バッファレ
    ジスタDもしくは前記VRAMの内容を入力として論理
    演算を行なう3値ラスタ演算器、前記シフタSと前記バ
    ッファレジスタDの内容を入力として論理演算を行なう
    2値ラスタ演算器B、前記シフタPと前記バッファレジ
    スタDの内容を入力として論理演算を行なう2値ラスタ
    演算器F、前記シフタCの出力各ビットについて該ビッ
    トの値が0のときは該ビット位置の前記2値ラスタ演算
    器Bの出力データを選択し前記シフタCの出力各ビット
    について該ビットの値が1のときは該ビット位置の前記
    2値ラスタ演算器Fの出力データを選択するビット選択
    手段、前記3値ラスタ演算器もしくは前記ビット選択手
    段の内容を前記VRAMに与えるライトデータ選択手
    段、前記リードプレン選択手段により該プレンが選択さ
    れているときに前記VRAMのデータもしくは前記3値
    ラスタ演算器の内容を前記リードデータ合成手段に出力
    するリードデータ選択手段とをプレンの数だけ備えるこ
    とを特徴とする請求項6記載の描画制御装置。
  8. 【請求項8】 CPUと1枚以上のプレン構成をもつVR
    AMと該VRAMのメモリ制御部を備えたグラフィック
    表示系の描画制御装置であって、少なくとも、 (1)前記VRAMの全プレンに共通で: 外部データのフォーマットを鏡像反転・スワップもしく
    はそれらの組合せにより外部データのフォーマット変換
    を行うデータ構造変換器、前記VRAMへの書き込みを
    ビット単位で制御するためのビットマスクレジスタ、該
    ビットマスクレジスタの内容と前記データ構造変換器の
    データをビットごとに論理積の演算を行なうAND手
    段、前記ビットマスクレジスタもしくは前記データ構造
    変換器もしくは前記AND手段のデータをシフトするビ
    ットマスク用シフタ、前記データ構造変換器のデータの
    前回の内容を保持するマージレジスタC、前記データ構
    造変換器のデータと前記マージレジスタCのデータをシ
    フトするシフタC、後述の各プレンのリードデータ選択
    手段の内容を各ビットごとに論理和の演算を行なって前
    記CPUへのリードデータを合成するリードデータ合成
    手段を備え、 かつ前記VRAMの各プレンに対して: プレン単位のVRAMリード可否を選択するリードプレ
    ン選択手段、プレン単位のVRAMライト可否を選択す
    るライトプレン選択手段、該ライトプレン選択手段と前
    記ビットマスク用シフタの出力を合成して各プレンの前
    記VRAMをビット単位で書き込み制御するプレンビッ
    トマスク手段、前記VRAMのデータもしくは前記デー
    タ構造変換器のデータをソース領域のデータとして保持
    するバッファレジスタS、前記VRAMのデータもしく
    は前記データ構造変換器のデータをパタン領域のデータ
    として保持するバッファレジスタP、前記VRAMのデ
    ータもしくは前記データ構造変換器のデータをディステ
    ィネーション領域のデータとして保持するバッファレジ
    スタD、前記VRAMもしくは前記バッファレジスタS
    もしくは前記データ構造変換器のデータの前回の内容を
    保持するマージレジスタS、前記バッファレジスタPも
    しくは前記データ構造変換器のデータの前回の内容を保
    持するマージレジスタP、前記バッファレジスタSのデ
    ータと前記マージレジスタSのデータをシフトするシフ
    タS、前記バッファレジスタPのデータと前記マージレ
    ジスタPのデータをシフトするシフタP、前記シフタS
    と前記シフタPと前記バッファレジスタDもしくは前記
    VRAMの内容を入力として論理演算を行なう3値ラス
    タ演算器、前記シフタSと前記バッファレジスタDの内
    容を入力として論理演算を行なう2値ラスタ演算器B、
    前記シフタPと前記バッファレジスタDの内容を入力と
    して論理演算を行なう2値ラスタ演算器F、前記シフタ
    Cの出力各ビットについて該ビットの値が0のときは該
    ビット位置の前記2値ラスタ演算器Bの出力データを選
    択し前記シフタCの出力各ビットについて該ビットの値
    が1のときは該ビット位置の前記2値ラスタ演算器Fの
    出力データを選択するビット選択手段、前記3値ラスタ
    演算器もしくは前記ビット選択手段の内容を前記VRA
    Mに与えるライトデータ選択手段、前記リードプレン選
    択手段により該プレンが選択されているときに前記VR
    AMのデータもしくは前記3値ラスタ演算器の内容を前
    記リードデータ合成手段に出力するリードデータ選択手
    段とをプレンの数だけ備えるデータ操作部と、 (2)前記VRAM上のソース領域のアドレスを保持す
    るソースアドレスレジスタ、ディスティネーション領域
    のアドレスを保持するディスティネーションアドレスレ
    ジスタ、パタン領域のアドレスを保持するパタンアドレ
    スレジスタ、前記ソースアドレスレジスタの内容を後述
    のアクセスサイクル発生器によるリードアクセスサイク
    ルの終了時に加算・更新するための値を保持するソース
    オフセットレジスタ、前記ディスティネーションアドレ
    スレジスタの内容を後述のアクセスサイクル発生器によ
    るライトアクセスサイクルの終了時に加算・更新するた
    めの値を保持するディスティネーションオフセットレジ
    スタ、前記パタンアドレスレジスタの内容を後述のアク
    セスサイクル発生器によるリードアクセスサイクルの終
    了時に加算・更新するための値を保持するパタンオフセ
    ットレジスタ、前記ソースアドレスレジスタと前記ソー
    スオフセットレジスタもしくは前記ディスティネーショ
    ンアドレスレジスタと前記ディスティネーションオフセ
    ットレジスタもしくは前記パタンアドレスレジスタと前
    記パタンオフセットレジスタの内容を加算して前記各ア
    ドレスレジスタの値を更新するためのアドレス加算器
    A、前記CPUの書き込みデータと前記ソースアドレス
    レジスタもしくは前記ディスティネーションアドレスレ
    ジスタもしくは前記パタンアドレスレジスタの内容を加
    算して前記各アドレスレジスタの値を更新するためのア
    ドレス加算器Bを備えた描画アドレス発生手段と、 (3)該描画アドレス発生手段を用いて、前記VRAM
    の読み出し要求があった場合はソース、ディスティネー
    ション、パタンの各領域のアクセスを少なくとも1つ以
    上含むリードアクセスを発生し、前記VRAMの書き込
    み要求があった場合はディスティネーション領域のライ
    トアクセスもしくはリードアクセスとライトアクセスの
    組を発生して前記VRAMのメモリ制御部を駆動するア
    クセスサイクル発生手段とを備えたことを特徴とする描
    画制御装置。
  9. 【請求項9】 請求項8記載の描画制御装置であって、更
    に (4)前記アクセスサイクル発生手段を、ライトサイク
    ルの連続もしくはリードサイクルとライトサイクルの連
    続の指定回数起動する連続転送シ−ケンス手段と、 (5)前記連続転送シ−ケンス手段の一回目の書き込み
    転送時および最終回の書き込み転送時にそれぞれ指定の
    ビットマスクパタンを、また一回目と最終回の間の書き
    込み転送時には全ビットの書き込みを許可するビットマ
    スクパタンを生成してこれを外部データとし、前記デー
    タ操作部の前記データ構造変換器を介して前記AND手
    段もしくは前記ビットマスク用シフタに与える連続転送
    用マスクパタン生成部とを備えたことを特徴とする描画
    制御装置。
  10. 【請求項10】 前記連続転送シ−ケンス手段を複数回起
    動するラスタカウンタと、前記連続転送シ−ケンス手段
    に書き込まれたデータを保持し前記ラスタカウンタの値
    が終了値でなくかつ前記連続転送シ−ケンス手段が終了
    値のときに該保持したデータを前記連続転送シ−ケンス
    手段に再設定するカウント値保持レジスタと、前記ラス
    タカウンタの値が終了値でなくかつ前記連続転送シ−ケ
    ンス手段が終了値のときに前記ソースアドレスレジスタ
    を用いたリードサイクルが発生した場合に該リードサイ
    クル終了時に前記ソースアドレスレジスタに加算する値
    を保持するソース更新値レジスタと、前記ラスタカウン
    タの値が終了値でなくかつ前記連続転送シ−ケンス手段
    が終了値のときに前記パタンアドレスレジスタを用いた
    リードサイクルが発生した場合に該リードサイクル終了
    時に前記パタンアドレスレジスタに加算する値を保持す
    るパタン更新値レジスタと、前記ラスタカウンタの値が
    終了値でなくかつ前記連続転送カウンタが終了値のとき
    に前記ディスティネーションアドレスレジスタを用いた
    ライトサイクルが発生した場合に該ライトサイクル終了
    時に前記ディスティネーションアドレスレジスタに加算
    する値を保持するディスティネーション更新値レジスタ
    とを備えたことを特徴とする請求項9記載の描画制御装
    置。
  11. 【請求項11】 請求項8記載の描画制御装置であって、
    更に (4)前記CPUからのデータのビット数が前記VRA
    Mのデータバスのビット数と異なる場合、前記CPUの
    データをVRAMデータバスに画面イメージで左詰めも
    しくは右詰めし、外部データとして前記データ操作部の
    前記データ構造変換器に与えるデータ位置変換部と、 を備えたことを特徴とする描画制御装置。
  12. 【請求項12】 前記データ操作部内の前記ビット選択手
    段が前記シフタCの出力各ビットについて該ビットの値
    が0のときは該ビット位置の前記2値ラスタ演算器Bの
    出力データを選択し前記シフタCの出力各ビットについ
    て該ビットの値が1のときは該ビット位置の前記3値ラ
    スタ演算器の出力データを選択するビット選択手段であ
    ることを特徴とする請求項11記載の描画制御装置。
  13. 【請求項13】 前記CPUからのデータのビット数が前
    記VRAMのデータバスのビット数の1/2である請求
    項11又は12記載の描画制御装置。
  14. 【請求項14】 前記CPUからのデータのビット数が8
    ビットでかつ前記VRAMのデータバスのビット数が1
    6ビットである請求項12記載の描画制御装置。
  15. 【請求項15】 前記VRAMのデータバスを2分割して
    一方をバスa、他の一方をバスbとするとき、前記バス
    aに接続されたメモリ素子には前記ディスティネーショ
    ンアドレスレジスタのアドレスをそのまま与え、前記ビ
    ットマスク用シフタのシフト値が前記VRAMのデータ
    バスのビット数の1/2以上の時には前記バスbに接続
    されたメモリ素子に前記ディスティネーションアドレス
    レジスタのアドレスをインクリメント手段を介して与
    え、前記ビットマスク用シフタのシフト値が前記VRA
    Mのデータバスのビット数の1/2未満の時には前記バ
    スbに接続されたメモリ素子に前記ディスティネーショ
    ンアドレスレジスタのアドレスをそのまま与えるように
    したことを特徴とする請求項11、12、13又は20
    記載の描画制御装置。
  16. 【請求項16】 前記VRAMのデータバスを2分割して
    一方をバスa、他の一方をバスbとするとき、前記バス
    aに接続されたメモリ素子には前記ディスティネーショ
    ンアドレスレジスタのアドレスをそのまま与え、前記シ
    フタCのシフト値が前記VRAMのデータバスのビット
    数の1/2以上の時には前記バスbに接続されたメモリ
    素子に前記ディスティネーションアドレスレジスタのア
    ドレスをインクリメント手段を介して与え、前記シフタ
    Cのシフト値が前記VRAMのデータバスのビット数の
    1/2未満の時には前記バスbに接続されたメモリ素子
    に前記ディスティネーションアドレスレジスタのアドレ
    スをそのまま与えるようにしたことを特徴とする特許の
    請求項11、12、13又は14記載の描画制御装置。
  17. 【請求項17】 請求項8記載の描画制御装置であって、
    更に (4)前記アクセスサイクル発生器を、ライトサイクル
    の連続もしくはリードサイクルとライトサイクルの連続
    の指定回数起動する連続転送カウンタ手段と、(5)該
    連続転送カウンタ手段の一回目の書き込み転送時および
    最終回の書き込み転送時にそれぞれ指定のビットマスク
    パタンを、また一回目と最終回の間の書き込み転送時に
    は全ビットの書き込みを許可するビットマスクパタンを
    生成してこれを外部データとし、前記データ操作部の前
    記データ構造変換器を介して前記AND手段もしくは前
    記ビットマスク用シフタに与える連続転送用マスクパタ
    ン生成部と、 (6)前記VRAMのデータバス上の1ビットのみ書き
    込みを許可するビットパタンを生成してこれを外部デー
    タとし、前記データ操作部の前記データ構造変換器を介
    して前記ビットマスク制御部に与えると共に、前記VR
    AMに対する書き込みサイクルを終了するとそのビット
    パタンを選択的に、パタンの変化をさせないかあるいは
    1ビット右もしくは左に回転(ローテート)し、回転の
    結果あふれが生じた場合には前記ディスティネーション
    のアドレス発生器の値を右回転のときには+1し、左回
    転の時には−1するドットマスク発生部とを備えたこと
    を特徴とする描画制御装置。
  18. 【請求項18】 前記連続転送カウンタを複数回起動する
    ラスタカウンタと、前記連続転送カウンタに書き込まれ
    たデータを保持し前記ラスタカウンタの値が終了値でな
    くかつ前記連続転送カウンタが終了値のときに該保持し
    たデータを前記連続転送カウンタに再設定するカウント
    値保持レジスタと、前記ラスタカウンタの値が終了値で
    なくかつ前記連続転送カウンタが終了値のときに前記ソ
    ースアドレスレジスタを用いたリードサイクルが発生し
    た場合に該リードサイクル終了時に前記ソースアドレス
    レジスタに加算する値を保持するソース更新値レジスタ
    と、前記ラスタカウンタの値が終了値でなくかつ前記連
    続転送カウンタが終了値のときに前記パタンアドレスレ
    ジスタを用いたリードサイクルが発生した場合に該リー
    ドサイクル終了時に前記パタンアドレスレジスタに加算
    する値を保持するパタン更新値レジスタと、前記ラスタ
    カウンタの値が終了値でなくかつ前記連続転送カウンタ
    が終了値のときに前記ディスティネーションアドレスレ
    ジスタを用いたライトサイクルが発生した場合に該ライ
    トサイクル終了時に前記ディスティネーションアドレス
    レジスタに加算する値を保持するディスティネーション
    更新値レジスタと、線分の1ドット未満の誤差の値を保
    持する誤差レジスタと、1ドットの描画毎に前記誤差レ
    ジスタの値を累積する誤差累積器と、前記誤差累積器の
    累積誤差が1ドットを超えたときは前記カウント値保持
    レジスタの値を+1して前記連続転送カウンタに再設定
    するインクリメンタを備えたことを特徴とする請求項1
    7記載の描画制御装置。
  19. 【請求項19】 前記描画アドレス発生手段は、前記VR
    AM内の第一のアドレスを発生し、かつ後述の第三のリ
    ードサイクル終了後に前記第一のアドレスを更新する手
    段を備えた第一のアドレス発生手段と、前記VRAM内
    の第二のアドレスを発生し、かつ後述の第四のリードサ
    イクル終了後に前記第二のアドレスを更新する手段を備
    えた第二のアドレス発生手段と、前記VRAM内の第三
    のアドレスを発生し、かつ後述の第二のライトサイクル
    終了後に前記第三のアドレスを更新する手段を備えた第
    三のアドレス発生手段とを備え、 前記データ操作部は、第一のデータ保持手段と、第二の
    データ保持手段と、第三のデータ保持手段と、前記第一
    のデータ保持手段が保持するデータをシフトする第一の
    シフト手段と、前記第二のデータ保持手段が保持するデ
    ータをシフトする第二のシフト手段と、前記第一のシフ
    ト手段のシフト結果のデータと前記第二のシフト手段の
    シフト結果のデータと前記第二のデータ保持手段が保持
    するデータを3値の入力とする論理演算器とを備え、 前記連続転送シーケンス手段は、前記CPUのプログラ
    ム制御により第一のライトサイクルもしくは第一のリー
    ドサイクルと第一のライトサイクルの組を少なくとも一
    回以上発生し、 前記アクセスサイクル発生手段は、前記連続転送シーケ
    ンス手段が発生する前記第一のライトサイクルを入力と
    して、前記論理演算器の演算結果を前記第三のアドレス
    発生手段が指し示す前記第三のアドレスに格納する第二
    のライトサイクルを前記メモリ制御部に対して発生する
    か、もしくは前記第三のアドレス発生手段が指し示す前
    記第三のアドレスのデータを前記第三のデータ保持手段
    に格納する第二のリードサイクルを前記メモリ制御部に
    対して発生した後に前記論理演算器の演算結果を前記第
    三のアドレス発生手段が指し示す前記第三のアドレスに
    格納する第二のライトサイクルを前記メモリ制御部に対
    して発生するかを指定する第一の指定手段を備えた第一
    のアクセスサイクル発生器と、 前記連続転送シーケンス手段が発生する前記第一のリー
    ドサイクルを入力として、前記第一のアドレス発生手段
    が指し示す前記第一のアドレスのデータを前記第一のデ
    ータ保持手段に格納する第三のリードサイクルと、前記
    第二のアドレス発生手段が指し示す前記第二のアドレス
    のデータを前記第二のデータ保持手段に格納する第四の
    リードサイクルと、前記第三のアドレス発生手段が指し
    示す前記第三のアドレスのデータを前記第三のデータ保
    持手段に格納する前記第二のリードサイクルの3種類の
    リードサイクルの一種類以上三種類以下の任意の組み合
    わせのうち、どの組み合わせのリードサイクルを前記メ
    モリ制御部に対して発生するかを指定する第二の指定手
    段を備えた第二のアクセスサイクル発生器とを備えた
    とを特徴とする請求項1記載の描画制御装置。
  20. 【請求項20】 CPUと、表示手段と、前記CPUのか
    らの命令に基づき、前記表示手段へのデータの表示を制
    御する描画制御装置とを備えた情報処理装置において、 前記描画制御装置は、 前記デ−タを格納する1枚以上のプレン構成をもつVR
    AM部と、 該VRAM部のアクセスタイミングを発生するメモリ制
    御部と、 該表示手段と前記VRAM部への表示アドレスを発生す
    る表示アドレス発生手段と、 該CPUに接続され、設定された回数分アクセス要求タ
    イミングを発生する連続転送シ−ケンス手段と、 該連続転送シ−ケンス手段からの該アクセス要求タイミ
    ングを一回以上のアクセスに拡張して前記メモリ制御部
    に転送するアクセスサイクル発生手段と、 前記CPUからの命令に基づき、該連続転送シ−ケンス
    手段と該アクセスサイ クル発生手段の制御で、前記デ−
    タの加工操作を指示するデ−タ制御部と、 該デ−タ制御部の指示に基づき、前記アクセスサイクル
    発生手段の制御で、前記VRAM部に描画する前記デ−
    タの加工操作を行なうデ−タ操作部と、 該アクセスサイクル発生手段からの信号に基づき、前記
    デ−タの描画アドレスを発生する描画アドレス発生手段
    とを備えたことを特徴とする情報処理装置。
JP05856191A 1991-03-22 1991-03-22 描画制御装置 Expired - Fee Related JP3164832B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP05856191A JP3164832B2 (ja) 1991-03-22 1991-03-22 描画制御装置
US07/856,172 US5353403A (en) 1991-03-22 1992-03-23 Graphic display processing apparatus and method for improving the speed and efficiency of a window system
US08/280,578 US5583985A (en) 1991-03-22 1994-07-25 Graphic display processing apparatus for improving speed and efficiency of a window system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05856191A JP3164832B2 (ja) 1991-03-22 1991-03-22 描画制御装置

Publications (2)

Publication Number Publication Date
JPH04293091A JPH04293091A (ja) 1992-10-16
JP3164832B2 true JP3164832B2 (ja) 2001-05-14

Family

ID=13087869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05856191A Expired - Fee Related JP3164832B2 (ja) 1991-03-22 1991-03-22 描画制御装置

Country Status (2)

Country Link
US (2) US5353403A (ja)
JP (1) JP3164832B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7221475B1 (en) * 1990-10-13 2007-05-22 Canon Kabushiki Kaisha Color image processing apparatus
JP3164832B2 (ja) * 1991-03-22 2001-05-14 株式会社日立製作所 描画制御装置
JP3582082B2 (ja) 1992-07-07 2004-10-27 セイコーエプソン株式会社 マトリクス型表示装置,マトリクス型表示制御装置及びマトリクス型表示駆動装置
JPH06139363A (ja) * 1992-10-30 1994-05-20 Nec Corp 描画プロセッサ
JP2956390B2 (ja) * 1992-11-12 1999-10-04 日本電気株式会社 描画プロセッサ
JPH0863587A (ja) * 1994-03-08 1996-03-08 Texas Instr Inc <Ti> 透過性検出データ転送制御装置を有するデータプロセッサおよびその操作方法
JP3240821B2 (ja) * 1994-04-22 2001-12-25 株式会社日立製作所 高機能画像メモリlsi及びそれを用いた表示装置
US6373493B1 (en) * 1995-05-01 2002-04-16 Apple Computer, Inc. Hardware graphics accelerator having access to multiple types of memory including cached memory
US6008782A (en) * 1995-05-05 1999-12-28 Industrial Technology Research Institute Mapping apparatus for use with a cathode-ray tube controller for generating special screen effects
JP3110975B2 (ja) * 1995-05-22 2000-11-20 シャープ株式会社 文字マスク機能付表示装置
US5668941A (en) * 1995-06-22 1997-09-16 Cirrus Logic, Inc. Optimum implementation of X-Y clipping on pixel boundary
US5594702A (en) * 1995-06-28 1997-01-14 National Semiconductor Corporation Multi-first-in-first-out memory circuit
US5903281A (en) * 1996-03-07 1999-05-11 Powertv, Inc. List controlled video operations
JP3037220B2 (ja) * 1997-09-03 2000-04-24 日本電気アイシーマイコンシステム株式会社 グラフィック処理装置およびその処理方法
US20020052235A1 (en) * 2000-10-27 2002-05-02 Hirsch Jeffrey R. Gaming device having animation including multiple sprites
US20020109700A1 (en) * 2000-12-14 2002-08-15 Motorola, Inc. Method and apparatus for modifying a bit field in a memory buffer
JP3785935B2 (ja) * 2001-03-15 2006-06-14 日本電気株式会社 線分検出器
US6680738B1 (en) 2002-02-22 2004-01-20 Neomagic Corp. Single-block virtual frame buffer translated to multiple physical blocks for multi-block display refresh generator
JP4055572B2 (ja) * 2002-12-24 2008-03-05 セイコーエプソン株式会社 表示システム及び表示コントローラ
JP2006215611A (ja) * 2005-02-01 2006-08-17 Sony Corp 演算装置
JP4566772B2 (ja) * 2005-02-14 2010-10-20 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP2007264866A (ja) * 2006-03-28 2007-10-11 Fujitsu Ltd グラフィックシステム、破線テクスチャ画像生成装置、及び、破線テクスチャ画像生成方法
JP5063320B2 (ja) * 2007-12-11 2012-10-31 株式会社ニューフレアテクノロジー 描画装置及び描画データの変換方法
US8169444B2 (en) * 2007-12-20 2012-05-01 Himax Technologies Limited Bit block transfer circuit and method thereof and color filling method
CN103201788B (zh) * 2010-11-01 2015-10-21 三菱电机株式会社 描绘装置以及描绘方法
JP5600610B2 (ja) 2011-01-18 2014-10-01 三菱電機株式会社 電動機の回転子及びモールド電動機及び空気調和機及びモールド電動機の製造方法
US9442731B2 (en) * 2014-03-13 2016-09-13 Intel Corporation Packed two source inter-element shift merge processors, methods, systems, and instructions
WO2021176243A1 (en) 2020-03-03 2021-09-10 Micron Technology, Inc. On-the-fly programming and verifying method for memory cells based on counters and ecc feedback
TWI755154B (zh) * 2020-03-03 2022-02-11 美商美光科技公司 基於計數器及錯誤校正碼反饋用於記憶體單元之即時程式化及驗證方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59119385A (ja) * 1982-12-27 1984-07-10 株式会社ピーエフユー ビツト・マツプ・メモリ上のウインドウ移動制御方式
GB8614874D0 (en) * 1986-06-18 1986-07-23 Rca Corp Display processor
US5046023A (en) * 1987-10-06 1991-09-03 Hitachi, Ltd. Graphic processing system having bus connection control capable of high-speed parallel drawing processing in a frame buffer and a system memory
JPS63231548A (ja) * 1987-03-20 1988-09-27 Hitachi Ltd デ−タの書き込み方式
JPH01107295A (ja) * 1987-10-21 1989-04-25 Hitachi Ltd メモリ制御装置
JPH0661039B2 (ja) * 1987-11-27 1994-08-10 株式会社日立製作所 メモリアクセス制御回路
JP3164832B2 (ja) * 1991-03-22 2001-05-14 株式会社日立製作所 描画制御装置

Also Published As

Publication number Publication date
US5583985A (en) 1996-12-10
JPH04293091A (ja) 1992-10-16
US5353403A (en) 1994-10-04

Similar Documents

Publication Publication Date Title
JP3164832B2 (ja) 描画制御装置
US6069554A (en) Memory having both stack and queue operation
US4103331A (en) Data processing display system
KR100221028B1 (ko) 그래픽 가속기 및 이를 이용한 메모리 프리패치 방법
US5315696A (en) Graphics command processing method in a computer graphics system
JPS60239796A (ja) デイスプレイメモリ中のデータを変更する回路と方法
US6952217B1 (en) Graphics processing unit self-programming
JPH04246790A (ja) ベクトル/円錐曲線/エリアフィルプリミティブジェネレータ
EP0658858B1 (en) Graphics computer
US4893114A (en) Image data processing system
JPH0640259B2 (ja) デ−タ処理装置
JP2757614B2 (ja) 図形塗りつぶし装置
JPH07118024B2 (ja) パターンデータ生成方式
Kaya New trends in graphic display system architecture
JPS63225290A (ja) 表示制御回路
JPS63108381A (ja) ラスタ演算回路
JPS6339947B2 (ja)
JP2810609B2 (ja) 図形表示方法及びその装置
JP2533605B2 (ja) 文字図形描画装置
JP2004348169A (ja) グラフィック・システムにおけるサンプル密度および/またはいくつかのレンダリング・パスの動的な調整
EP0660266A1 (en) Image processing method and device therefor
JPH0627922A (ja) 文字パターン表示制御装置
JP2787487B2 (ja) コンピュータシステムに表示され且つ操作される線分の位置を決定する回路
JP2829051B2 (ja) 文字表示方式
JPH11161255A (ja) 画像表示装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees