(57)【特許請求の範囲】
【請求項１】
カーソルパターンのデータを構成する第１のパターンデータと第２のパターンデータとを読み書きするためのカーソルメモリであって、
前記第１及び第２のパターンデータを格納するためのカーソルメモリ本体と、
前記カーソルメモリ本体に対して前記第１及び第２のパターンデータの読み出しを行うための読み出し手段と、
前記カーソルメモリ本体に対して前記第１又は第２のパターンデータの読み書きを行うための読み書き手段と、
を備え、
前記カーソルメモリ本体は、
前記第１のパターンデータの下位ビットを格納するための第１のブロック及び前記第２のパターンデータの上位ビットを格納するための第２のブロックを含む第１のバンクと、
前記第２のパターンデータの下位ビットを格納するための第３のブロック及び前記第１のパターンデータの上位ビットを格納するための第４のブロックを含む第２のバンクと、
を備えたカーソルメモリ。
【請求項２】
前記読み書き手段は、
前記第１又は第２のパターンデータの入出力を行うための読み書き用ポートと、
前記読み書き用ポートと前記カーソルメモリ本体との間に介在し、前記読み書き用ポートにおいて前記第１又は第２のパターンデータのうちのどちらの入出力を行うかに応じて、前記上位ビット及び下位ビットを交換するためのクロスバースイッチと、
を備えた請求項１記載のカーソルメモリ。
【請求項３】
前記クロスバースイッチは、
前記読み書き手段による前記読み書きを行うときに当該カーソルメモリ本体内のアドレスを特定するための読み書き側アドレス信号によって制御される請求項２記載のカーソルメモリ。
【請求項４】
前記読み出し手段は、
前記第１及び第２のパターンデータの出力を行うための読み出し用ポートと、
前記読み出し用ポートと前記カーソルメモリ本体との間に介在し、前記読み出し用ポートにおいて前記上位ビット又は下位ビットのうちのどちらの出力を行うかに応じて、前記第１及び第２のパターンデータを交換するためのクロスバースイッチと、
を備えた請求項１記載のカーソルメモリ。
【請求項５】
前記クロスバースイッチは、
前記読み出し手段による前記読み出しを行うときに当該カーソルメモリ本体内のアドレスを特定するための読み出し側アドレス信号によって制御される請求項４記載のカーソルメモリ。
【請求項６】
前記読み出し手段は、
前記クロスバースイッチと前記読み出し用ポートとの間に介在し、前記第１及び第２のパターンデータを１ビットずつ前記読み出し用ポートに出力するためのシフトレジスタをさらに備えた請求項４記載のカーソルメモリ。
【請求項７】
前記第１〜第４のブロックは、
前記カーソルメモリ本体内のアドレスを特定するためのアドレス信号によって順番に特定できるように配列されている請求項１記載のカーソルメモリ。
【請求項８】
前記読み出し手段は、
前記アドレス信号を生成するインクリメンタを備えた請求項７記載のカーソルメモリ。
【請求項９】
前記読み出し手段は、
前記シフトレジスタを制御するためのシフトレジスタ制御用カウンタをさらに備えた請求項６記載のカーソルメモリ。
【請求項１０】
前記第１〜第４のブロックは、
前記カーソルメモリ本体内のアドレスを特定するためのアドレス信号によって順番に特定できるように配列され、
前記読み出し手段は、
前記アドレス信号を生成するインクリメンタと、
前記第１又は第２のバンク内の前記ブロックの数を数えるブロック計数カウンタと、
を備え、
前記シフトレジスタ制御用カウンタ及び前記インクリメンタは、前記ブロック計数カウンタによって制御される請求項９記載のカーソルメモリ。
【請求項１１】
前記読み出し手段は、
当該カーソルメモリの外部から内部へ入力され、当該読み出し手段による前記読み出しの開始を要求するためのロード信号を受け、
前記シフトレジスタ制御用カウンタ、前記インクリメンタ及び前記ブロック計数カウンタは、前記ロード信号に基づいて、動作を開始する請求項１０記載のカーソルメモリ。
【請求項１２】
前記カーソルメモリ本体は、
前記読み書き手段による前記読み書きを行うときに当該カーソルメモリ本体内のアドレスを特定するための読み書き側アドレス信号と、
前記読み出し手段による前記読み出しを行うときに当該カーソルメモリ本体内のアドレスを特定するための読み出し側アドレス信号と、
を受け、
前記読み書き側アドレス信号と読み出し側アドレス信号とが一部共通している請求項１記載のカーソルメモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、カーソルパターンを表すデータ（以下「パターンデータ」と称す）を記憶するカーソルメモリに関する。
【０００２】
【従来の技術】
まず、カーソルパターンとは、モニタ上に表示され、例えばマウスの操作に伴ってモニタ上に動くパターンである。このカーソルパターンの代表的な例は、図７に示す通りである。図７のカーソルパターンＣＵＲ＿Ｐは、６４×６４画素（ｐｉｘｅｌ）で構成される。以下、カーソルパターンＣＵＲ＿Ｐを用いて説明していく。
【０００３】
カーソルパターンＣＵＲ＿Ｐを表すパターンデータＣＵＲ＿Ｄの構造は、次の通りである。図８はパターンデータＣＵＲ＿Ｄの構造を示す概念図である。カーソルパターンＣＵＲ＿Ｐの各画素は、２ビット（浅いビット及び深いビット）で表される。パターンデータＣＵＲ＿Ｄ０は、浅いビットの集合であり、縦方向及び横方向がそれぞれ６４個の合計６４×６４個のビットで構成されている。パターンデータＣＵＲ＿Ｄ１は、深いビットの集合であり、縦方向及び横方向がそれぞれ６４個の合計６４×６４個のビットで構成されている。例えば、図７の画素Ｐ００は図８のパターンデータＣＵＲ＿Ｄ０の浅いビットＰ００＿０及びパターンデータＣＵＲ＿Ｄ１の深いビットＰ００＿１で表される。
【０００４】
カーソルパターンＣＵＲ＿Ｐの各画素は、２ビットで表されることにより、４種類の色を表現できる。例えば、”浅いビット：深いビット”が”０：０”のとき背景透明（Ｔｒａｎｓｐａｒｅｎｔ）、”０：１”のとき赤、”１：０”のとき黒、”１：１”のとき緑とする。
【０００５】
カーソルメモリとは、パターンデータＣＵＲ＿Ｄを記憶するためのデュアルポートメモリである。デュアルポートメモリとは、ポート（ｐｏｒｔ）を２個持つメモリであり、それぞれのポートは、データの入力若しくは出力、あるいは入力及び出力の両方を行う。
【０００６】
図９は、カーソルパターンＣＵＲ＿Ｐに対応する従来のカーソルメモリ２００の構成を示すブロック図である。
【０００７】
カーソルメモリ２００の構成は次の通りである。カーソルメモリ２００は、パターンデータＣＵＲ＿Ｄを格納するためのカーソルメモリ本体２０１と、カーソルメモリ本体２０１に対してパターンデータＣＵＲ＿Ｄ０及びパターンデータＣＵＲ＿Ｄ１の読み出しを行うための読み出し回路２０２と、カーソルメモリ本体２０１に対してパターンデータＣＵＲ＿Ｄ０又はパターンデータＣＵＲ＿Ｄ１の読み書きを行うための読み書き回路２０３とを備えている。
【０００８】
カーソルメモリ本体２０１の構成は、パターンデータＣＵＲ＿Ｄが読み書き用ポートＰ１を介して３２ビット単位で入力又は出力されるため、次のように構成される。カーソルメモリ本体２０１は、パターンデータＣＵＲ＿Ｄ０及びＣＵＲ＿Ｄ１に対応して、プレーンＰ＿０及びＰ＿１を含む。プレーンＰ＿０内にはパターンデータＣＵＲ＿Ｄ０が記憶される。プレーンＰ＿１内にはパターンデータＣＵＲ＿Ｄ１が記憶される。プレーンＰ＿０及びＰ＿１はそれぞれ６４行６４列のメモリセルアレイから構成される。メモリセルアレイの各行は３２列毎にアドレスが割り当てられている。すなわち、プレーンＰ＿０には、アドレス＃０〜＃１２７が割り当てられている。プレーンＰ＿１には、アドレス＃１２８〜＃２５５が割り当てられている。各アドレス内には、３２ビットが記憶される。
【０００９】
読み書き回路２０３は、パターンデータＣＵＲ＿Ｄ０又はパターンデータＣＵＲ＿Ｄ１の入出力を行うための読み書き用ポートＰ１を備えている。読み書き用ポートＰ１はパターンデータＣＵＲ＿Ｄの入力及び出力の両方を行う。読み書き用ポートＰ１は３２個の端子を含む。パターンデータＣＵＲ＿Ｄは、この３２個の端子を介して、３２ビット単位で入力及び出力される。
【００１０】
読み出し回路２０２の構成は、次の通りである。読み出し回路２０２は、マルチプレクサＭＵＸ、シフトレジスタＳＲ０、ＳＲ１、読み出し用ポートＰ２及び制御回路ＣＴＬ２とを備えている。
【００１１】
読み出し用ポートＰ２はパターンデータＣＵＲ＿Ｄの出力のみを行う。読み出し用ポートＰ２は、パターンデータＣＵＲ＿Ｄ０又はＣＵＲ＿Ｄ１のどちらかを明確に分別するため、２個の端子を含む。
【００１２】
読み出し回路２０２は、パターンデータＣＵＲ＿Ｄ０及びＣＵＲ＿Ｄ１をそれぞれ読み出し用ポートＰ２内の２つの端子に１ビットずつ出力する。したがって、本来ならば、カーソルメモリ本体２０１は、パターンデータＣＵＲ＿Ｄ０を１ビットずつ出力し、パターンデータＣＵＲ＿Ｄ１を１ビットずつ出力する構成にすればよい。しかし、回路面積の効率化を図るために、読み書き回路２０３への３２ビットの出力に合わせるように、カーソルメモリ本体２０１は読み出し回路へ一度に３２ビット（１アドレス分）を出力する構成にしている。
【００１３】
マルチプレクサＭＵＸは、カーソルメモリ本体２０１が読み出した３２ビットを受ける。そして、マルチプレクサＭＵＸは、この３２ビットがパターンデータＣＵＲ＿Ｄ０のとき、この３２ビットをシフトレジスタＳＲ０に出力し、この３２ビットがパターンデータＣＵＲ＿Ｄ１のとき、この３２ビットをシフトレジスタＳＲ１に出力する。シフトレジスタＳＲ０及びＳＲ１は、カーソルメモリ２００の外部から与えられるクロック（図示せず）に応じて、パターンデータＣＵＲ＿Ｄ０及びＣＵＲ＿Ｄ１を読み出し用ポートＰ２に１ビットずつ出力する。
【００１４】
読み書き用ポートＰ１におけるパターンデータＣＵＲ＿Ｄの入力及び出力は、パターンデータＣＵＲ＿Ｄ０及びＣＵＲ＿Ｄ１のうちの一方に対して行われる。これに対し、読み出し用ポートＰ２におけるパターンデータＣＵＲ＿Ｄの出力は、パターンデータＣＵＲ＿Ｄ０及びＣＵＲ＿Ｄ１の両方に対して同時に行われる必要がある。同時に行うのは、カーソルパターンＣＵＲ＿Ｐの各画素の浅いビット及び深いビットが揃わないと、各画素の色が決定できないためである。また、カーソルメモリ本体２０１から読み出し用ポートＰ２側へのパターンデータＣＵＲ＿Ｄの読み出しは、回路面積の効率化を図るため、カーソルメモリ本体２０１から読み書き用ポートＰ１側へのパターンデータＣＵＲ＿Ｄの読み出しと合わせる。
【００１５】
また、読み書き用ポートＰ１及び読み出し用ポートＰ２のパターンデータＣＵＲ＿Ｄの入力あるいは出力は、非同期でしかも同時に行われる。
【００１６】
【発明が解決しようとする課題】
従来のカーソルメモリ２００は以上のように構成されているため次のような問題点がある。制御回路ＣＴＬ２は、図７のカーソルパターンＣＵＲ＿Ｐの１行分を表示するために、図１０に示す手順でカーソルメモリ本体２０１及び読み出し回路２０２を制御する。
【００１７】
（Ａ０）まず、変数ｉ、ｊ、ｋを初期化する（ステップＳ２０１）。
【００１８】
（Ａ１）次に、制御回路ＣＴＬ２は列アドレスＰＹを零に設定する。カーソルメモリ本体２０１はアドレス＃０に記憶されている３２ビットのデータを読み出す。読み出し回路２０２は、読み出されたデータをシフトレジスタＳＲ０に格納する（ステップＳ２０２〜２０４及び２０８〜２１１）。
【００１９】
（Ａ２）次に、制御回路ＣＴＬ２は列アドレスＰＹを２に設定する。カーソルメモリ本体２０１はアドレス＃１２８に記憶されている３２ビットのデータを読み出す。読み出し回路２０２は、シフトレジスタＳＲ１に読み出されたデータを格納する（ステップＳ２０２、２０３、２０５、２０８〜２１０、２１２、２１３）。
【００２０】
（Ａ３）次に、シフトレジスタＳＲ０及びＳＲ１は、クロックに応じて格納した３２ビットのデータのうち１ビットを出力する（ステップＳ２１４）。
【００２１】
（Ａ４）次に、ステップＳ２０３の動作をあと３１回繰り返して、シフトレジスタＳＲ０及びＳＲ１は、格納した３２ビットのデータを全て出力する（ステップＳ２１４〜２１７）。
【００２２】
（Ａ５）次に、制御回路ＣＴＬ２は列アドレスＰＹを１に設定する。カーソルメモリ本体２０１はアドレス＃１に記憶されている３２ビットのデータを読み出す。読み出し回路２０２は、シフトレジスタＳＲ０に読み出されたデータを格納する（ステップＳ２０２、２０３、２０６及び２０８〜２１１）。
【００２３】
（Ａ６）次に、制御回路ＣＴＬ２は列アドレスＰＹを３に設定する。カーソルメモリ本体２０１はアドレス＃１２９に記憶されている３２ビットのデータを読み出す。読み出し回路２０２は、シフトレジスタＳＲ１に読み出されたデータを格納する（ステップＳ２０２、２０３、２０７〜２１０、２１２、２１３）。
【００２４】
（Ａ７）次に、シフトレジスタＳＲ０及びＳＲ１は、クロックに応じて格納した３２ビットのデータのうち１ビットを出力する（ステップＳ２１４）。
【００２５】
（Ａ８）次に、ステップＳ２０３の動作をあと３１回繰り返して、シフトレジスタＳＲ０及びＳＲ１は、格納した３２ビットのデータを全て出力する（ステップＳ２１４〜２１７）。
【００２６】
以上のように、列アドレスＰＹを零、２、１、３の順に設定しなければならないため、制御が複雑であるという問題点がある。このため制御回路ＣＴＬ２が複雑になる。また、カーソルメモリ２００は、動作の速度が制限されるとともに、回路規模が大きくなる。さらに、パターンメモリの動作の速度が実際に要求される速度を満たせない場合は、その速度の差を調整するための回路がさらに必要になる。
【００２７】
本発明は、この問題点を解決するためになされたものであり、制御が簡単なカーソルメモリを得ることを目的とする。
【００２８】
【課題を解決するための手段】
本発明の請求項１に係る課題解決手段は、カーソルパターンのデータを構成する第１のパターンデータと第２のパターンデータとを読み書きするためのカーソルメモリであって、前記第１及び第２のパターンデータを格納するためのカーソルメモリ本体と、前記カーソルメモリ本体に対して前記第１及び第２のパターンデータの読み出しを行うための読み出し手段と、前記カーソルメモリ本体に対して前記第１又は第２のパターンデータの読み書きを行うための読み書き手段とを備え、前記カーソルメモリ本体は、前記第１のパターンデータの下位ビットを格納するための第１のブロック及び前記第２のパターンデータの上位ビットを格納するための第２のブロックを含む第１のバンクと、前記第２のパターンデータの下位ビットを格納するための第３のブロック及び前記第１のパターンデータの上位ビットを格納するための第４のブロックを含む第２のバンクとを備える。
【００２９】
本発明の請求項２に係る課題解決手段において、前記読み書き手段は、前記第１又は第２のパターンデータの入出力を行うための読み書き用ポートと、前記読み書き用ポートと前記カーソルメモリ本体との間に介在し、前記読み書き用ポートにおいて前記第１又は第２のパターンデータのうちのどちらの入出力を行うかに応じて、前記上位ビット及び下位ビットを交換するためのクロスバースイッチとを備える。
【００３０】
本発明の請求項３に係る課題解決手段において、前記クロスバースイッチは、前記読み書き手段による前記読み書きを行うときに当該カーソルメモリ本体内のアドレスを特定するための読み書き側アドレス信号によって制御される。
【００３１】
本発明の請求項４に係る課題解決手段において、前記読み出し手段は、前記第１及び第２のパターンデータの出力を行うための読み出し用ポートと、前記読み出し用ポートと前記カーソルメモリ本体との間に介在し、前記読み出し用ポートにおいて前記上位ビット又は下位ビットのうちのどちらの出力を行うかに応じて、前記第１及び第２のパターンデータを交換するためのクロスバースイッチとを備える。
【００３２】
本発明の請求項５に係る課題解決手段において、前記クロスバースイッチは、前記読み出し手段による前記読み出しを行うときに当該カーソルメモリ本体内のアドレスを特定するための読み出し側アドレス信号によって制御される。
【００３３】
本発明の請求項６に係る課題解決手段において、前記読み出し手段は、前記クロスバースイッチと前記読み出し用ポートとの間に介在し、前記第１及び第２のパターンデータを１ビットずつ前記読み出し用ポートに出力するためのシフトレジスタをさらに備える。
【００３４】
本発明の請求項７に係る課題解決手段において、前記第１〜第４のブロックは、前記カーソルメモリ本体内のアドレスを特定するためのアドレス信号によって順番に特定できるように配列されている。
【００３５】
本発明の請求項８に係る課題解決手段において、前記読み出し手段は、前記アドレス信号を生成するインクリメンタを備える。
【００３６】
本発明の請求項９に係る課題解決手段は、前記読み出し手段は、前記シフトレジスタを制御するためのシフトレジスタ制御用カウンタをさらに備える。
【００３７】
本発明の請求項１０に係る課題解決手段において、前記第１〜第４のブロックは、前記カーソルメモリ本体内のアドレスを特定するためのアドレス信号によって順番に特定できるように配列され、前記読み出し手段は、前記アドレス信号を生成するインクリメンタと、前記第１又は第２のバンク内の前記ブロックの数を数えるブロック計数カウンタとを備え、前記シフトレジスタ制御用カウンタ及び前記インクリメンタは、前記ブロック計数カウンタによって制御される。
【００３８】
本発明の請求項１１に係る課題解決手段において、前記読み出し手段は、当該カーソルメモリの外部から内部へ入力され、当該読み出し手段による前記読み出しの開始を要求するためのロード信号を受け、前記シフトレジスタ制御用カウンタ、前記インクリメンタ及び前記ブロック計数カウンタは、前記ロード信号に基づいて、動作を開始する。
【００３９】
本発明の請求項１２に係る課題解決手段において、前記カーソルメモリ本体は、前記読み書き手段による前記読み書きを行うときに当該カーソルメモリ本体内のアドレスを特定するための読み書き側アドレス信号と、前記読み出し手段による前記読み出しを行うときに当該カーソルメモリ本体内のアドレスを特定するための読み出し側アドレス信号とを受け、前記読み書き側アドレス信号と読み出し側アドレス信号とが一部共通している。
【００４０】
【発明の実施の形態】
実施の形態１．
実施の形態１を図７のカーソルパターンＣＵＲ＿Ｐに基づいて説明していく。図１は、カーソルパターンＣＵＲ＿Ｐに対応する本発明のカーソルメモリ１００の構成を示すブロック図である。カーソルメモリ１００は、カーソルパターンＣＵＲ＿Ｐのデータを構成するパターンデータＣＵＲ＿Ｄ０（第１のパターンデータ）とＣＵＲ＿Ｄ１（第２のパターンデータ）とを読み書きを行うためのものである。
【００４１】
カーソルメモリ１００の構成は次の通りである。カーソルメモリ１００は、パターンデータＣＵＲ＿Ｄ０及びパターンデータＣＵＲ＿Ｄ１を格納するためのカーソルメモリ本体１０１と、カーソルメモリ本体１０１に対してパターンデータＣＵＲ＿Ｄ０及びパターンデータＣＵＲ＿Ｄ１の読み出しを行うための読み出し回路１０２（読み出し手段）と、カーソルメモリ本体１０１に対してパターンデータＣＵＲ＿Ｄ０又はパターンデータＣＵＲ＿Ｄ１の読み書きを行うための読み書き回路１０３（読み書き手段）とを備えている。
【００４２】
カーソルメモリ１００を利用するシステムは、ＭＰＵ（図示せず）及びモニタ（図示せず）を含む。ＭＰＵはパターンデータＣＵＲ＿Ｄを読み書き用ポートＰ１に出力してカーソルメモリ１００内に記憶させたり、読み書き用ポートＰ１からのパターンデータＣＵＲ＿Ｄを受けてパターンデータＣＵＲ＿Ｄが正しくカーソルメモリ１００内に記憶されているかをチェックしたりする。カーソルパターンＣＵＲ＿Ｐは、読み出し用ポートＰ２から出力されるパターンデータＣＵＲ＿Ｄに基づいて、モニタに表示される。
【００４３】
カーソルメモリ本体１０１の構成は、パターンデータＣＵＲ＿Ｄが読み書き用ポートＰ１を介して３２ビット単位で入力又は出力されるため、次のように構成される。カーソルメモリ本体１０１は、バンク１０１ａ（第１のバンク）とバンク１０１ｂ（第２のバンク）とを備える。
【００４４】
本実施の形態では、図８に示すパターンデータＣＵＲ＿Ｄを図２に示すように４種類のブロックに分割する。４種類のブロックとは、
▲１▼パターンデータＣＵＲ＿Ｄ０の下位１６ビット（〈０：１５〉）を格納するためのブロックＢ１及びＢ１’（第１のブロック）
▲２▼パターンデータＣＵＲ＿Ｄ１の上位１６ビット（〈１６：３１〉）を格納するためのブロックＢ２及びＢ２’（第２のブロック）
▲３▼パターンデータＣＵＲ＿Ｄ１の下位１６ビット（〈０：１５〉）を格納するためのブロックＢ３及びＢ３’（第３のブロック）
▲４▼パターンデータＣＵＲ＿Ｄ０の上位１６ビット（〈１６：３１〉）を格納するためのブロックＢ４及びＢ４’（第４のブロック）
である。
【００４５】
バンク１０１ａは、ブロックＢ１及びＢ１’、ブロックＢ２及びＢ２’を含む。バンク１０１ｂは、ブロックＢ３及びＢ３’、ブロックＢ４及びＢ４’を含む。図２中の各ブロックは、図１中の各ブロックに対応している。ブロックＢ１及びＢ１’、ブロックＢ４及びＢ４’は図９のプレーンＰ＿０に対応する。ブロックＢ２及びＢ２’、ブロックＢ３及びＢ３’は図９のプレーンＰ＿１に対応する。各バンク内では、各プレーンに対応するブロックが交互に配置されている。
【００４６】
カーソルメモリ本体１０１は、カーソルメモリ本体１０１内のアドレスを特定するためのアドレス信号を受ける。アドレス信号は、２種類のアドレス信号（読み書き側アドレス信号及び読み出し側アドレス信号）を含む。読み書き側アドレス信号とは、読み書き回路１０３が読み書きを行うときにカーソルメモリ本体１０１内のアドレスを特定するための信号である。読み出し側アドレス信号とは、読み出し回路１０２が読み出しを行うときにカーソルメモリ本体１０１内のアドレスを特定するための信号である。
【００４７】
読み書き側アドレス信号は、行アドレス信号ＭＸ及び列アドレス信号ＭＹを含む。読み出し側アドレス信号は、行アドレス信号ＰＸ及び列アドレス信号ＰＹを含む。ワード線ＰＷｉ（ｉ＝０〜６３）は読み出し回路１０２からカーソルメモリ本体１０１へ行アドレス信号ＰＸを伝送するための信号線である。ビット線ＰＢは読み出し回路１０２からカーソルメモリ本体１０１へ列アドレス信号ＰＹを伝送するための信号線である。ワード線ＭＷｉ（ｉ＝０〜６３）は読み書き回路１０３からカーソルメモリ本体１０１へ行アドレス信号ＭＸを伝送するための信号線である。ビット線ＭＢは読み書き回路１０３からカーソルメモリ本体１０１へ列アドレス信号ＭＹを伝送するための信号線である。列アドレス信号ＰＹを読み出し側ブロック選択信号と称す。列アドレス信号ＭＹを読み書き側ブロック選択信号と称す。
【００４８】
このように、カーソルメモリ本体１０１は、２種類のアドレス信号を用いてカーソルメモリ本体１０１内のアドレス（メモリセル）を特定できる。カーソルメモリ１００は、アドレスデコーダ（図示せず）を内蔵しているため、２種類のアドレス信号の定義が異なっていても問題ない。なお、図１内の＃０〜＃２５５は、図９の＃０〜＃２５５との対応関係を明確にするために説明上付けているものであり、実際のアドレスは、この順に付されなくてもよい。
【００４９】
読み出し回路１０２の構成は、次の通りである。読み出し回路１０２は、パターンデータＣＵＲ＿Ｄ０及びパターンデータＣＵＲ＿Ｄ１の出力を行うための読み出し用ポートＰ２と、読み出し用ポートＰ２とカーソルメモリ本体１０１との間に介在し、読み出し用ポートＰ２において上位ビット又は下位ビットのうちのどちらの出力を行うかに応じて、パターンデータＣＵＲ＿Ｄ０及びパターンデータＣＵＲ＿Ｄ１を交換するためのクロスバースイッチＣＢＳ１と、クロスバースイッチＣＢＳ１と読み出し用ポートＰ２との間に介在し、パターンデータＣＵＲ＿Ｄ０及びパターンデータＣＵＲ＿Ｄ１を１ビットずつ読み出し用ポートＰ２に出力するためのシフトレジスタＳＲ０及びＳＲ１とを備えている。
【００５０】
さらに、読み出し回路１０２は、カーソルメモリ本体１０１及び読み出し回路１０２内の他の部分を制御するための制御回路ＣＴＬ１と、カーソルメモリ１００の外部から内部へ入力され、読み出し回路１０２による読み出しの開始を要求するためのロード信号ＬＯＡＤを入力するためのポートＰ６と、クロックＰＣＬＫを入力するためのポートＰ４とを備えている。
【００５１】
読み出し用ポートＰ２は、パターンデータＣＵＲ＿Ｄ０又はＣＵＲ＿Ｄ１のどちらかを明確に分別するため、端子Ｐ２１及びＰ２２を含む。パターンデータＣＵＲ＿Ｄ０は端子Ｐ２１から１ビットずつ出力される。パターンデータＣＵＲ＿Ｄ１は、端子Ｐ２２から１ビットずつ出力される。
【００５２】
読み出し回路１０２は、パターンデータＣＵＲ＿Ｄ０を端子Ｐ２１に１ビットずつ出力し、パターンデータＣＵＲ＿Ｄ１を端子Ｐ２２に１ビットずつ出力する。したがって、本来ならば、カーソルメモリ本体１０１は、パターンデータＣＵＲ＿Ｄ０を１ビットずつ出力し、パターンデータＣＵＲ＿Ｄ１を１ビットずつ出力する構成にすればよい。しかし、回路面積の効率化を図るために、読み書き回路１０３への３２ビットの出力に合わせるように、カーソルメモリ本体１０１は読み出し回路へ一度に３２ビット（バンク１０１ａからの１６ビット、バンク１０１ｂからの１６ビット）を出力する構成にしている。
【００５３】
クロスバースイッチＣＢＳ１は、カーソルメモリ本体１０１、シフトレジスタＳＲ０及びＳＲ１に接続されている。また、クロスバースイッチＣＢＳ１は、列アドレス信号ＰＹの最下位ビットＬＳＢを受けて、制御される。クロスバースイッチＣＢＳ１の内部構成は、図３に示す通りである。ここでは、端子ＩＮは列アドレス信号ＰＹの最下位ビットＬＳＢを受け、端子ＯＵＴ１はバンク１０１ｂに接続され、端子ＯＵＴ２はバンク１０１ａに接続され、端子ＯＵＴ３はシフトレジスタＳＲ０に接続され、端子ＯＵＴ４はシフトレジスタＳＲ１に接続されている。
【００５４】
シフトレジスタＳＲ０は、クロスバースイッチＣＢＳ１の出力とポートＰ４に入力されたクロックＰＣＬＫとを受ける。読み出し用ポートＰ２の端子Ｐ２１はシフトレジスタＳＲ０の出力を受ける。シフトレジスタＳＲ１は、クロスバースイッチＣＢＳ１の出力とポートＰ４に入力されたクロックＰＣＬＫとを受ける。読み出し用ポートＰ２の端子Ｐ２２はシフトレジスタＳＲ１の出力を受ける。制御回路ＣＴＬ１は、端子Ｐ６に入力されたロード信号ＬＯＡＤを受け、読み出し側アドレス信号を生成して出力する。
【００５５】
読み書き回路１０３の構成は、次の通りである。パターンデータＣＵＲ＿Ｄ０又はパターンデータＣＵＲ＿Ｄ１の入出力を行うための読み書き用ポートＰ１とカーソルメモリ本体１０１との間に介在し、読み書き用ポートＰ１においてパターンデータＣＵＲ＿Ｄ０又はパターンデータＣＵＲ＿Ｄ１のうちのどちらの入出力を行うかに応じて、上位ビット及び下位ビットを交換するためのクロスバースイッチＣＢＳ０と、クロックＭＣＬＫを入力するためのポートＰ３と、読み書き側アドレス信号（ＭＸ，ＭＹ）を入力するためのポートＰ５とを備えている。
【００５６】
読み書き用ポートＰ１はパターンデータＣＵＲ＿Ｄ０又はＣＵＲ＿Ｄ１の入力及び出力の両方を行う。読み書き用ポートＰ１は、３２個の端子を含む。この３２個のうちの所定の１６個の端子は上位ビット用であり、他の所定の端子は下位ビット用である。この３２個の端子を介して、一度に３２ビットが入力及び出力される。
【００５７】
カーソルメモリ本体１０１は読み出し回路と一度に３２ビット（バンク１０１ａからの１６ビット、バンク１０１ｂからの１６ビット）を入力又は出力する構成にしている。
【００５８】
クロスバースイッチＣＢＳ０は、カーソルメモリ本体１０１及び読み書き用ポートＰ１に接続されている。また、クロスバースイッチＣＢＳ０は、列アドレス信号ＭＹの最下位ビットＬＳＢを受けて、制御される。クロスバースイッチＣＢＳ０の内部構成は、図３に示す通りである。ここでは、端子ＩＮは列アドレス信号ＭＹの最下位ビットＬＳＢを受け、端子ＯＵＴ１はバンク１０１ａに接続され、端子ＯＵＴ２はバンク１０１ｂに接続され、端子ＯＵＴ３及び端子ＯＵＴ４は読み書き用ポートＰ１に接続されている。
【００５９】
読み書き用ポートＰ１におけるパターンデータＣＵＲ＿Ｄの入力及び出力は、パターンデータＣＵＲ＿Ｄ０及びＣＵＲ＿Ｄ１のうちの一方に対して行われる。これに対し、読み出し用ポートＰ２におけるパターンデータＣＵＲ＿Ｄの出力は、パターンデータＣＵＲ＿Ｄ０及びＣＵＲ＿Ｄ１の両方に対して同時に行われる必要がある。同時に行うのは、従来の技術で説明したように、カーソルパターンＣＵＲ＿Ｐの各画素の浅いビット及び深いビットが揃わないと、各画素の色が決定できないためである。また、カーソルメモリ本体１０１から読み出し用ポートＰ２側へのパターンデータＣＵＲ＿Ｄの読み出しは、回路面積の効率化を図るため、カーソルメモリ本体１０１から読み書き用ポートＰ１側へのパターンデータＣＵＲ＿Ｄの読み出しと合わせる。読み書き用ポートＰ１及び読み出し用ポートＰ２のパターンデータＣＵＲ＿Ｄの入力あるいは出力は、非同期でしかも同時に行われる。
【００６０】
また、ブロックＢ１、Ｂ２、Ｂ１’、Ｂ２’の列アドレスＰＹが示す順番は、０、１、２、３の順である。このように、ブロックＢ１、Ｂ２、Ｂ１’、Ｂ２’は、列アドレスＰＹによって順番に特定できる。ブロックＢ３、Ｂ４、Ｂ３’、Ｂ４’も同様である。
【００６１】
読み書き回路１０３の動作について説明する。まず、読み書き用ポートＰ１からカーソルメモリ本体１０１へパターンデータＣＵＲ＿Ｄ０の＃０の内容を書き込むときを説明する。カーソルメモリ１００の外部のシステムは、パターンデータＣＵＲ＿Ｄ０の＃０に対応する読み書き側アドレス信号をポートＰ５に入力する。これにより、バンク１０１ａ内では、ブロックＢ１内の＃０の位置のアドレスが特定され、バンク１０１ｂ内では、ブロックＢ４内の＃０の位置のアドレスが特定される。このとき、列アドレス信号ＭＹは０である。列アドレス信号ＭＹが０のとき、列アドレス信号ＭＹの最下位ビットＬＳＢは０である。カーソルメモリ本体１０１は、列アドレス信号ＭＹが０のとき、ブロックＢ１及びブロックＢ４を選択する。クロスバースイッチＣＢＳ０は、列アドレス信号ＭＹの最下位ビットＬＳＢが０のとき、上位ビット及び下位ビットを交換せず、読み書き用ポートＰ１からの３２ビットのうちの下位１６ビットをバンク１０１ａに出力し、読み書き用ポートＰ１からの３２ビットのうちの上位１６ビットをバンク１０１ｂに出力する。
【００６２】
そして、カーソルメモリ本体１０１は、クロスバースイッチＣＢＳ０がバンク１０１ａに出力した下位１６ビットをブロックＢ１内のアドレスであって行アドレス信号ＭＸが示すアドレスに書き込み、同時に、クロスバースイッチＣＢＳ０がバンク１０１ｂに出力した上位１６ビットをブロックＢ４内のアドレスであって行アドレス信号ＭＸが示すアドレスに書き込む。
【００６３】
次に、読み書き用ポートＰ１からカーソルメモリ本体１０１へパターンデータＣＵＲ＿Ｄ１の＃１２８の内容を書き込むときを説明する。カーソルメモリ１００の外部のシステムは、パターンデータＣＵＲ＿Ｄ１の＃１２８に対応する読み書き側アドレス信号をポートＰ５に入力する。これにより、バンク１０１ａ内では、ブロックＢ２内の＃１２８の位置のアドレスが特定され、バンク１０１ｂ内では、ブロックＢ３内の＃１２８の位置のアドレスが特定される。このとき、列アドレス信号ＭＹは１である。列アドレス信号ＭＹが１のとき、列アドレス信号ＭＹの最下位ビットＬＳＢは１である。カーソルメモリ本体１０１は、列アドレス信号ＭＹが１のとき、ブロックＢ２及びブロックＢ３を選択する。クロスバースイッチＣＢＳ０は、列アドレス信号ＭＹの最下位ビットＬＳＢが１のとき、上位ビット及び下位ビットを交換して、読み書き用ポートＰ１からの３２ビットのうちの下位１６ビットをバンク１０１ｂに出力し、読み書き用ポートＰ１からの３２ビットのうちの上位１６ビットをバンク１０１ａに出力する。
【００６４】
そして、カーソルメモリ本体１０１は、クロスバースイッチＣＢＳ０がバンク１０１ｂに出力した下位１６ビットをブロックＢ３内のアドレスであって行アドレス信号ＭＸが示すアドレスに書き込み、同時に、クロスバースイッチＣＢＳ０がバンク１０１ａに出力した上位１６ビットをブロックＢ２内のアドレスであって行アドレスが示すアドレスに書き込む。
【００６５】
カーソルメモリ本体１０１から読み書き用ポートＰ１へパターンデータＣＵＲ＿Ｄ０の＃０の内容を読み出すときは、読み書き用ポートＰ１からカーソルメモリ本体１０１へパターンデータＣＵＲ＿Ｄ０の＃０の内容を書き込むときと逆の順序で動作して、パターンデータＣＵＲ＿Ｄ０の＃０の内容が読み書き用ポートＰ１に出力される。カーソルメモリ本体１０１から読み書き用ポートＰ１へパターンデータＤ１の＃１２８の内容を読み出すときは、読み書き用ポートＰ１からカーソルメモリ本体１０１へパターンデータＣＵＲ＿Ｄ１の＃１２８の内容を書き込むときと逆の順序で動作して、パターンデータＣＵＲ＿Ｄ１の＃１２８の内容が読み書き用ポートＰ１に出力される。
【００６６】
このように、クロスバースイッチＣＢＳ０は、読み書き用ポートＰ１においてパターンデータＣＵＲ＿Ｄ０又はパターンデータＣＵＲ＿Ｄ１のうちのどちらの入出力を行うかに応じて、上位ビット及び下位ビットを交換する。また、クロスバースイッチＣＢＳ０は、カーソルメモリ本体１０１内のアドレスを特定するための読み書き側アドレス信号によって制御される。
【００６７】
読み出し回路１０２の動作について説明する。まず、カーソルメモリ本体１０１から読み出し用ポートＰ２へパターンデータＣＵＲ＿Ｄ０の＃０の内容及びパターンデータＣＵＲ＿Ｄ１の＃１２８の内容を読み出すときを説明する。制御回路ＣＴＬ１は、バンク１０１ａ内の＃０の位置のアドレスを特定する読み出し側アドレス信号を出力する。この読み出し側アドレス信号は、同時に、バンク１０１ｂ内の＃１２８の位置のアドレスも特定する。このとき、列アドレス信号ＰＹは０である。列アドレス信号ＰＹが０のとき、列アドレス信号ＰＹの最下位ビットＬＳＢは０である。カーソルメモリ本体１０１は、列アドレス信号ＰＹが０のとき、ブロックＢ１及びブロックＢ３を選択する。そして、カーソルメモリ本体１０１は、ブロックＢ１内のアドレスであって行アドレス信号ＰＸが示すアドレスに格納されているパターンデータＣＵＲ＿Ｄ０の下位１６ビットを読み出し、同時に、ブロックＢ３内のアドレスであって行アドレス信号ＰＸが示すアドレスに格納されているパターンデータＣＵＲ＿Ｄ１の下位１６ビットを読み出す。
【００６８】
クロスバースイッチＣＢＳ１は、列アドレス信号ＰＹの最下位ビットＬＳＢが０のとき、パターンデータＣＵＲ＿Ｄ０及びパターンデータＣＵＲ＿Ｄ１を交換せず、バンク１０１ａからのパターンデータＣＵＲ＿Ｄ０の下位１６ビットをＳＲ０に出力し、バンク１０１ｂからのパターンデータＣＵＲ＿Ｄ１の下位１６ビットをシフトレジスタＳＲ１に出力する。シフトレジスタＳＲ０は、クロスバースイッチＣＢＳ１が出力したパターンデータＣＵＲ＿Ｄ０の下位１６ビットを、格納した後、ポートＰ４からのクロックＰＣＬＫに応じて１ビットずつ出力する。これと同時に、シフトレジスタＳＲ１も、クロスバースイッチＣＢＳ１が出力したパターンデータＣＵＲ＿Ｄ１の下位１６ビットを、格納した後、ポートＰ４からのクロックＰＣＬＫに応じて１ビットずつ出力する。
【００６９】
さらに、その後、制御回路ＣＴＬ１は、バンク１０１ａ内の＃１２８の位置のアドレスを特定する読み出し側アドレス信号を出力する。この読み出し側アドレス信号は、同時に、バンク１０１ｂ内の＃０の位置のアドレスも特定する。このとき、列アドレス信号ＰＹは１である。列アドレス信号ＰＹが１のとき、列アドレス信号ＰＹの最下位ビットＬＳＢは１である。カーソルメモリ本体１０１は、列アドレス信号ＰＹが１のとき、ブロックＢ２及びブロックＢ４を選択する。そして、カーソルメモリ本体１０１は、ブロックＢ２内のアドレスであって行アドレス信号ＰＸが示すアドレスに格納されているパターンデータＣＵＲ＿Ｄ１の上位１６ビットを読み出し、同時に、ブロックＢ４内のアドレスであって行アドレス信号ＰＸが示すアドレスに格納されているパターンデータＣＵＲ＿Ｄ１の上位１６ビットを読み出す。
【００７０】
クロスバースイッチＣＢＳ１は、列アドレス信号ＰＹの最下位ビットＬＳＢが１のとき、パターンデータＣＵＲ＿Ｄ０及びパターンデータＣＵＲ＿Ｄ１を交換して、バンク１０１ａからのパターンデータＣＵＲ＿Ｄ１の上位１６ビットをＳＲ１に出力し、バンク１０１ｂからのパターンデータＣＵＲ＿Ｄ０の上位１６ビットをシフトレジスタＳＲ０に出力する。シフトレジスタＳＲ０は、クロスバースイッチＣＢＳ１が出力したパターンデータＣＵＲ＿Ｄ０の上位１６ビットを、格納した後、ポートＰ４からのクロックＰＣＬＫに応じて１ビットずつ出力する。これと同時に、シフトレジスタＳＲ１も、クロスバースイッチＣＢＳ１が出力したパターンデータＣＵＲ＿Ｄ１の上位１６ビットを、格納した後、ポートＰ４からのクロックＰＣＬＫに応じて１ビットずつ出力する。
【００７１】
このように、クロスバースイッチＣＢＳ１は、読み出し用ポートＰ２において上位ビット又は下位ビットのうちどちらの出力を行うかに応じて、パターンデータＣＵＲ＿Ｄ０又はパターンデータＣＵＲ＿Ｄ１を交換する。また、クロスバースイッチＣＢＳ１は、カーソルメモリ本体１０１内のアドレスを特定するための読み出し側アドレス信号によって制御される。
【００７２】
制御回路ＣＴＬ１は、図７のカーソルパターンＣＵＲ＿Ｐの１行分を表示するために、図４に示す手順でカーソルメモリ本体１０１及び読み出し回路１０２を制御する。
【００７３】
（Ｂ０）まず、変数ｉ、ｊを初期化する（ステップＳ１０１）。
【００７４】
（Ｂ１）次に、制御回路ＣＴＬ１は列アドレス信号ＰＹを０に設定する。カーソルメモリ本体１０１はバンク１０１ａ内の＃０及びバンク１０１ｂ内の＃１２８に記憶されている下位１６ビットを読み出す。読み出し回路１０２は、読み出された下位１６ビットをシフトレジスタＳＲ０及びＳＲ１に格納する（ステップＳ１０２〜１０４）。
【００７５】
（Ｂ２）次に、シフトレジスタＳＲ０及びＳＲ１は、クロックＰＣＬＫに応じて、格納した下位１６ビットを１ビットずつ出力する（ステップ１０５〜１０８）。
【００７６】
（Ｂ３）次に、制御回路ＣＴＬ１は列アドレス信号ＰＹを１に設定する。カーソルメモリ本体１０１はバンク１０１ａ内の＃１２８及びバンク１０１ｂ内の＃０に記憶されている上位１６ビットを読み出す。読み出し回路１０２は、読み出された上位１６ビットをシフトレジスタＳＲ０及びＳＲ１に格納する（ステップＳ１０２〜１０４）。
【００７７】
（Ｂ４）次に、シフトレジスタＳＲ０及びＳＲ１は、クロックＰＣＬＫに応じて、格納した上位１６ビットを１ビットずつ出力する（ステップ１０５〜１０８）。
【００７８】
（Ｂ５）次に、制御回路ＣＴＬ１は列アドレス信号ＰＹを２に設定する。カーソルメモリ本体１０１はバンク１０１ａ内の＃１及びバンク１０１ｂ内の＃１２９に記憶されている下位１６ビットを読み出す。読み出し回路１０２は、読み出された下位１６ビットをシフトレジスタＳＲ０及びＳＲ１に格納する（ステップＳ１０２〜１０４）。
【００７９】
（Ｂ６）次に、シフトレジスタＳＲ０及びＳＲ１は、クロックＰＣＬＫに応じて、格納した下位１６ビットを１ビットずつ出力する（ステップ１０５〜１０８）。
【００８０】
（Ｂ７）次に、制御回路ＣＴＬ１は列アドレス信号ＰＹを３に設定する。カーソルメモリ本体１０１はバンク１０１ａ内の＃１２９及びバンク１０１ｂ内の＃１に記憶されている上位１６ビットを読み出す。読み出し回路１０２は、読み出された上位１６ビットをシフトレジスタＳＲ０及びＳＲ１に格納する（ステップＳ１０２〜１０４）。
【００８１】
（Ｂ８）次に、シフトレジスタＳＲ０及びＳＲ１は、クロックＰＣＬＫに応じて、格納した１６ビットを１ビットずつ出力する（ステップ１０５〜１０８）。
【００８２】
このように、列アドレスを０、１、２、３という規則正しい順に設定するため、制御回路ＣＴＬ１の制御は、図１０の手順と比べて、非常に簡略化できる。すなわち、制御回路ＣＴＬ１は、列アドレスＰＹをインクリメントしながら、（Ｂ１）及び（Ｂ２）の手順を４回繰り返すだけでよい。つまり、実質的には、列アドレスＰＹのインクリメント、（Ｂ１）及び（Ｂ２）の手順のみで所望の動作が実現できる。また、従来では、両方のシフトレジスタＳＲ０及びＳＲ１にデータが揃うのを確認する必要があるが、本実施の形態では、同時にデータが揃うのでその必要がない。
【００８３】
本実施の形態による効果は次の通りである。すなわち、制御が簡単であるため、制御回路ＣＴＬ１の簡略化が図れる。したがって、カーソルメモリ１００の動作の速度の改善、回路規模の縮小が図れる。
【００８４】
実施の形態２．
次に、実施の形態２について説明する。本実施の形態は、図１の制御回路ＣＴＬ１の内部構成に関する。カーソルメモリ１００は、ポートＰ６に入力されたロード信号ＬＯＡＤを受けたとき、カーソルメモリ本体１０１内からパターンデータＣＵＲ＿Ｄを読み出す。このロード信号ＬＯＡＤは、モニタにカーソルパターンＣＵＲ＿Ｐを表示する場合に、システムが出力する信号である。
【００８５】
制御回路ＣＴＬ１はアドレス信号発生回路及びシフトレジスタ制御回路を含む。アドレス信号発生回路１１０の内部構成は図５に示す通りである。シフトレジスタ制御回路１１１の内部構成は図６に示す通りである。なお、図５内のＳＲは、図１内のシフトレジスタＳＲ０又はＳＲ１を示す。アドレス信号発生回路１１０は、読み出し側アドレス信号（ＰＸ，ＰＹ）を生成するアドレスインクリメンタＡ＿ＩＴＲ及びバンク１０１ａ又はバンク１０１ｂ内のブロックの数を数える２ビットカウンタであるブロック計数カウンタＣＴＲ１とを含む。シフトレジスタ制御回路１１１は、シフトレジスタＳＲ０及びＳＲ１を制御するための４ビットカウンタであるシフトレジスタ制御用カウンタＣＴＲ２を含む。
【００８６】
次に、アドレス信号発生回路及びシフトレジスタ制御回路の動作を図５及び図６を用いて説明する。アドレス信号発生回路１１０及びシフトレジスタ制御回路１１１は、ロード信号ＬＯＡＤに基づいて、動作を開始する。まず、ロード信号ＬＯＡＤがハイレベルであるときを説明する。ロード信号ＬＯＡＤはクロックＰＣＬＫの最初の１クロックの間だけハイレベルになる。アドレスレジスタＡ＿Ｒｅｇには、列アドレス信号ＰＹが示すブロックのアドレス値が格納されている。マルチプレクサＭＵＸは、ハイレベルのロード信号ＬＯＡＤを受けると、アドレスレジスタＡ＿Ｒｅｇが格納しているアドレス値をアドレスの初期値として選択し、これを読み出し側アドレス信号（ＰＸ，ＰＹ）として出力する。ブロック計数カウンタＣＴＲ１は、ハイレベルのロード信号ＬＯＡＤを受けると、自身をリセットして、出力端子ｑ０及びｑ１にロウレベルの信号を出力する。アドレスインクリメンタＡ＿ＩＴＲは、ハイレベルのロード信号ＬＯＡＤを受けると、アドレスレジスタＡ＿Ｒｅｇが格納しているアドレスの初期値を自身に格納する。シフトレジスタ制御用カウンタＣＴＲ２は、ＯＲ回路Ｇ２を介してハイレベルのロード信号ＬＯＡＤを受けると、自身をリセットして、出力端子Ｑ０〜Ｑ３にロウレベルの信号を出力する。負入力のＡＮＤ回路Ｇ５は、出力端子Ｑ０〜Ｑ３にロウレベルの信号が出力されているときのみ、ハイレベルの信号をシフトレジスタＳＲに出力する。シフトレジスタＳＲは、ハイレベルの信号を受けると、クロスバースイッチＣＢＳ１からの１６ビットのデータを自身に格納する。
【００８７】
次に、ロード信号ＬＯＡＤがハイレベルからロウレベルに変化したときを説明する。マルチプレクサＭＵＸは、ロウレベルのロード信号ＬＯＡＤを受けると、アドレスインクリメンタＡ＿ＩＴＲが格納しているアドレス値を選択し、これを読み出し側アドレス信号（ＰＸ，ＰＹ）として出力する。ブロック計数カウンタＣＴＲ１は、ロード信号ＬＯＡＤがハイレベルからロウレベルに変化すると、自身のリセットを解除する。また、ブロック計数カウンタＣＴＲ１は、ロード信号ＬＯＡＤがハイレベルからロウレベルに変化した時点では、出力端子ｑ０及びｑ１にロウレベルの信号を出力したままである。したがって、ＮＡＮＤ回路Ｇ１は、ハイレベルのイネーブル信号Ｓｈｉｆｔ＿ＥＮを出力している。シフトレジスタ制御用カウンタＣＴＲ２は、ロード信号ＬＯＡＤがハイレベルからロウレベルに変化したとき、自身のリセットを解除する。ＡＮＤ回路Ｇ４は、イネーブル信号Ｓｈｉｆｔ＿ＥＮがハイレベルのため、クロックＰＣＬＫを出力する。
【００８８】
次に、ロード信号ＬＯＡＤがロウレベルであるときを説明する。シフトレジスタ制御用カウンタＣＴＲ２は、ＡＮＤ回路Ｇ４からのクロックＰＣＬＫを受ける毎に、アップカウントを行う。シフトレジスタ制御用カウンタＣＴＲ２のカウント値は、出力端子Ｑ０〜Ｑ４に出力される。シフトレジスタＳＲは、ＡＮＤ回路Ｇ４からのクロックＰＣＬＫを受ける毎に、自身に格納している１６ビットのデータを１ビットずつ出力する。したがって、シフトレジスタ制御用カウンタＣＴＲ２はシフトレジスタＳＲが１ビットを出力した回数をカウントする。
【００８９】
次に、シフトレジスタ制御用カウンタＣＴＲ２が、アップカウントを行い、遂に出力端子Ｑ０〜Ｑ４の信号が全てハイレベルになったときを説明する。この時点では、シフトレジスタＳＲは、クロックＰＣＬＫを１６回受けているため、自身に格納している１６ビットのデータを全て出力している。また、ＡＮＤ回路Ｇ３は、ハイレベルのアドレス増加信号Ａ＿Ｉｎｃを出力する。アドレスインクリメンタＡ＿ＩＴＲは、ハイレベルのアドレス増加信号Ａ＿Ｉｎｃを受けると、自身に格納しているアドレス値に１を加える。マルチプレクサＭＵＸは、アドレスインクリメンタＡ＿ＩＴＲが格納しているアドレス値を選択し、これを読み出し側アドレス信号（ＰＸ，ＰＹ）として出力する。したがって、図１のカーソルメモリ本体１０１は、読み出し側アドレス信号（ＰＸ，ＰＹ）が示すアドレスの内容を読み出して、クロスバースイッチＣＢＳ１に出力する。また、ブロック計数カウンタＣＴＲ１は、ハイレベルのアドレス増加信号Ａ＿Ｉｎｃを受ける毎に、アップカウントを行う。ブロック計数カウンタＣＴＲ１のカウント値は、出力端子ｑ０及びｑ１に出力される。
【００９０】
また、遅延素子ＤＬＹは、ハイレベルのアドレス増加信号Ａ＿Ｉｎｃ受けてからクロックＰＣＬＫの１周期分後に、ハイレベルのアドレス増加信号Ａ＿Ｉｎｃを出力する。したがって、シフトレジスタ制御用カウンタＣＴＲ２は、ＯＲ回路Ｇ２がハイレベルの信号を出力するため、自身をリセットして、出力端子Ｑ０〜Ｑ３にロウレベルの信号を出力する。このとき、負入力のＡＮＤ回路Ｇ５はハイレベルの信号を出力するため、シフトレジスタＳＲは、クロスバースイッチＣＢＳ１からの１６ビットのデータを自身に格納する。また、ＡＮＤ回路Ｇ３は、ロウレベルの信号を出力する。遅延素子ＤＬＹは、ロウレベルのアドレス増加信号Ａ＿Ｉｎｃ受けてからクロックＰＣＬＫの１周期分後に、ロウレベルのアドレス増加信号Ａ＿Ｉｎｃを出力する。したがって、シフトレジスタ制御用カウンタＣＴＲ２は、ＯＲ回路Ｇ２がロウレベルの信号を出力するため、自身のリセットを解除し、再び、クロックＰＣＬＫに応じて、アップカウントを行う。
【００９１】
以後、アドレス信号発生回路及びシフトレジスタ制御回路は同様の動作を繰り返す。そして、ブロック計数カウンタＣＴＲ１の出力端子ｑ０及びｑ１の信号が両方ともハイレベルになったとき、ＮＡＮＤ回路Ｇ１は、ロウレベルのイネーブル信号Ｓｈｉｆｔ＿ＥＮを出力する。イネーブル信号Ｓｈｉｆｔ＿ＥＮがロウレベルになると、シフトレジスタ制御用カウンタＣＴＲ２及びシフトレジスタＳＲの動作は停止する。
【００９２】
このように、ブロック計数ＣＴＲ１は、シフトレジスタ制御用カウンタＣＴＲ２及びシフトレジスタＳＲ（ＳＲ０、ＳＲ１）の動作を４回繰り返させる。したがって、図７のカーソルパターンＣＵＲ＿Ｐの１行分の１２８ビットを連続して読み出すことができる。また、シフトレジスタ制御用カウンタＣＴＲ２及びアドレスインクリメンタＡ＿ＩＴＲは、ブロック計数カウンタＣＴＲ１によって制御される。
【００９３】
本実施の形態による効果は次の通りである。すなわち、カウンタを利用することで、アドレスのインクリメントを自動化できる。また、制御回路ＣＴＬ１は、ロード信号ＬＯＡＤを受けるだけで、カーソルメモリ本体１０１からカーソルデータＣＵＲ＿Ｄを読み出すことができる。したがって、制御回路ＣＴＬ１は、従来の制御回路ＣＴＬ２と比較して、大幅に簡略化することができる。このため、カーソルメモリ１００の動作の速度の向上、面積の縮小が図れる。
【００９４】
実施の形態３．
実施の形態１で説明したように、読み書き回路１０３では、パターンデータＣＵＲ＿Ｄ０及びＣＵＲ＿Ｄ１を示すアドレスの情報が必要であり、読み出し回路１０２では、上位ビット及び下位ビットを示すアドレスの情報が必要である。このように、必要とされるアドレスの情報は、読み書き回路１０３及び読み出し回路１０２で異なる。カーソルメモリ１００の設計者としては、読み書き回路１０３の読み書き側アドレス信号及び読み出し回路１０２の読み出し側アドレス信号を使い分けるのは、煩雑である。もし、読み書き側アドレス信号及び読み出し側アドレス信号を使い分けると、アドレスデコーダが複雑・大規模になる。
【００９５】
そこで、アドレスデコーダが複雑・大規模になるのを緩和するために、読み書き側アドレス信号と読み出し側アドレス信号とをできるだけ共通にする。こうすることで、読み書き回路１０３及び読み出し回路は、１つのアドレスデコーダを共通に利用できる。
【００９６】
また、例えば、一般に同一メモリセルに対して読み書き用ポートＰ１からカーソルメモリ本体１０１へのパターンデータＣＵＲ＿Ｄの書き込み、及びカーソルメモリ本体１０１から読み出し用ポートＰ２へのパターンデータＣＵＲ＿Ｄの読み出しを同時に行うことは禁止される。しかし、読み書き側アドレス信号と読み出し側アドレス信号が共通であると、これらの書き込み及び読み出しがカーソルメモリ本体１０１内の同一メモリセルに対して行われたか否かの判定を容易に行うことができる。
【００９７】
読み書き側アドレス信号と読み出し側アドレス信号とが共通しているとは、次の通りである。読み書き側アドレス信号は、最下位ビットＬＳＢ側から最上位ビットＭＳＢ側へ順に、ＭＹ〈０〉、ＭＹ〈１〉、ＭＸ〈０：５〉で構成される。ＭＹ〈０〉及びＭＹ〈１〉は２ビットの列アドレスＭＹを構成し、ＭＸ〈０：５〉は６ビットの行アドレス信号ＭＸである。読み出し側アドレス信号は、最下位ビットＬＳＢ側から最上位ビットＭＳＢ側へ順に、ＰＹ〈０〉、ＰＹ〈１〉、ＰＸ〈０：５〉で構成される。ＰＹ〈０〉及びＰＹ〈１〉は２ビットの列アドレスＰＹを構成し、ＰＸ〈０：５〉は６ビットの行アドレス信号ＰＸである。
【００９８】
行アドレス信号ＭＸ〈０：５〉及びＰＸ〈０：５〉を共通化し、列アドレス信号のうちのＭＹ〈１〉及びＰＹ〈１〉を共通化する。このように共通化すると、読み出し側アドレス信号と読み書き側アドレス信号とがカーソルメモリ本体１０１内の同一のメモリセルを示すとき、行アドレス信号ＭＸ〈０：５〉の値と行アドレス信号ＰＸ〈０：５〉との値は同じになり、列アドレス信号のうちのＭＹ〈１〉の値とＰＹ〈１〉の値は同じとなる。
【００９９】
ＭＹ〈０〉及びＰＹ〈０〉は共通化しない。これはＭＹ〈０〉はパターンデータＣＵＲ＿Ｄ０及びＣＵＲ＿Ｄ１を示すために用いられ、ＰＹ〈０〉は上位ビット及び下位ビットを示すアドレスを指定するために用いられるためである。
【０１００】
ＬＳＢから順に並んだＰＹ〈０〉及びＰＹ〈１〉を列アドレスＰＹとすることにより、実施の形態２で説明したように、列アドレスＰＹ（ＰＹ〈０〉、ＰＹ〈１〉）に単純に１を足していけば、カーソルメモリ本体１０１内の各ブロックを順番に自動的に特定できる。
【０１０１】
本実施の形態による効果は次の通りである。すなわち、読み書き側アドレス信号と読み出し側アドレス信号とを共通化することで、アドレスデコーダを簡略化することができる。
【０１０２】
【発明の効果】
本発明請求項１によると、第１及び第２のバンクを備えたため、読み出し手段は、第１及び第２の読み出しを同時に行う制御が可能になる。このため、制御手段による制御を簡略化することができ、回路面積の効率化が図れるという効果を奏す。
【０１０３】
本発明請求項２によると、読み書き手段の動作を、構成が簡単なクロスバースイッチを用いて実現できるという効果を奏す。
【０１０４】
本発明請求項３によると、読み書き側アドレス信号を利用して、アドレス信号を用いてクロスバースイッチを制御できるという効果を奏す。
【０１０５】
本発明請求項４によると、読み出し手段の動作を、構成が簡単なクロスバースイッチを用いて実現できるという効果を奏す。
【０１０６】
本発明請求項５によると、読み出し側アドレス信号を利用して、クロスバースイッチを制御できるという効果を奏す。
【０１０７】
本発明請求項６によると、読み出し手段は、第１及び第２の読み出しを順次ではなくて、同時に行うカーソルメモリ本体からデータを取り込むことが可能であるため、クロスバースイッチと読み出し用ポートとの間は、シフトレジスタを備えるだけで済むという効果を奏す。
【０１０８】
本発明請求項７によると、カーソルメモリの設計が容易になるという効果を奏す。
【０１０９】
本発明請求項８によると、各バンク内のブロックを順番に特定できるため、簡単な構成のインクリメンタを利用してブロックを特定できるという効果を奏す。
【０１１０】
本発明請求項９によると、シフトレジスタを制御するカウンタは、上位ビットあるいは下位ビットの数だけシフトの動作を制御するだけでよく、カウンタの回路面積が縮小できるという効果を奏す。
【０１１１】
本発明請求項１０によると、カーソルパターンデータの読み出しを、シフトレジスタ制御用カウンタ及びインクリメンタをブロック計数カウンタによって制御することによって、実現できるという効果を奏す。
【０１１２】
本発明請求項１１によると、ロード信号を与えるだけで、カーソルパターンデータの読み出しを開始できるという効果を奏す。
【０１１３】
本発明請求項１２によると、カーソルメモリの設計が容易になるという効果を奏す。
【図面の簡単な説明】
【図１】本発明のカーソルメモリの構成を示すブロック図である。
【図２】本発明のパターンデータの構造を示す概念図である。
【図３】クロスバースイッチの内部構成を示す回路図である。
【図４】本発明のカーソルメモリの動作を説明するフローチャートである。
【図５】アドレス信号発生回路の内部構成を示すブロック図である。
【図６】シフトレジスタ制御回路の内部構成を示すブロック図である。
【図７】カーソルパターンの代表例を示す図である。
【図８】従来のパターンデータの構造を示す概念図である。
【図９】従来のカーソルメモリの構成を示すブロック図である。
【図１０】従来のカーソルメモリの動作を説明するフローチャートである。
【符号の説明】
１００  カーソルメモリ、１０１  カーソルメモリ本体、１０２  読み出し回路、１０３  読み書き回路、ＣＢＳ０，ＣＢＳ１  クロスバースイッチ、ＳＲ０，ＳＲ１  シフトレジスタ、Ｐ１  読み書き用ポート、Ｐ２  読み出し用ポート。
【図１】
0003628833.tif 000002
【図２】
0003628833.tif 000003
【図３】
0003628833.tif 000004
【図４】
0003628833.tif 000005
【図５】
0003628833.tif 000006
【図６】
0003628833.tif 000007
【図７】
0003628833.tif 000008
【図８】
0003628833.tif 000009
【図９】
0003628833.tif 000010
【図１０】
0003628833.tif 000011