以下、図面を参照しながら、この発明の実施の形態について説明する。図1は、実施の形態としてのデータアクセス装置100の構成を示している。
このデータアクセス装置100は、メモリ部110と、データ格納制御部120と、データアクセス制御部140とを備えている。
メモリ部110は、それぞれ、上位バンクアドレスで特定される、3個の上位メモリバンクBK0〜BK2を有している。上位メモリバンクBK0は、それぞれ、下位バンクアドレスで特定される、4個の下位メモリバンクBK00〜BK03からなっている。上位メモリバンクBK1は、それぞれ、下位バンクアドレスで特定される、4個の下位メモリバンクBK10〜BK13からなっている。上位メモリバンクBK2は、それぞれ、下位バンクアドレスで特定される、4個の下位メモリバンクBK20〜BK23からなっている。このメモリ部110は、図示しない制御装置から入力端子150を介して与えられる制御信号SCLに基づいて動作する。
このメモリ部110には、初期格納時に、入力端子111から、格納すべき所定画面の画素データDiが入力される。ここで、所定画面は、水平方向に伸びる画素列が垂直方向に順次配列された構成となっており、メモリ部110には各画素列の画素データが順に注目画素としてラスタスキャン順に入力されていく。この所定画面上に、複数の画素のパターンがアクセスパターンACPとして設定される。注目画素の画素データは、アクセスパターンACPに基づき、メモリ部110の3個の上位メモリバンクBK0〜BK2に振り分けて格納される。
図2は、この実施の形態における、画面SRN上に設定されるアクセスパターンACPを示している。このアクセスパターンACPは、4個の中心画素IM1〜IM4、および各中心画素の上下に位置する8個の周辺画素IM1U,IM1D,IM2U,IM2D,IM3U,IM3D,IM4U,IM4Dのパターンである。図2の「□」は画面SRNを構成する画素を示している。また、図2に示すアクセスパターンACPの設定位置は、その開始位置である。
また、データアクセス時に、アクセスパターンACPの設定位置が開始位置(図2参照)から画素列方向に1画素ずつ移動した各設定位置で、アクセスパターンACPで特定される12個の画素(以下、適宜、「アクセス画素」という)の画素データDo01〜D12が、上位メモリバンクBK0〜BK2を構成する下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23から同時に読み出されて、出力端子112に出力される。なお、このように各設定位置で読み出される画素データDo01〜Do12は、他の下位メモリバンクへのデータ移動処理のために、メモリ部110に再入力される。
データ格納制御部120は、図示しない制御装置から入力端子150を介して供給される制御信号SCLに基づいて動作する。このデータ格納制御部120は、上述したように、各注目画素の画素データをメモリ部110の3個の上位メモリバンクBK0〜BK2に振り分けて格納するための制御を行う。
データ格納制御部120は、第1〜第3の位相処理を順次行う。そして、データ格納制御部120は、第K(K=1〜3)の位相処理時において、画面SRNにおける各画素列を、K番目の画素列を最初の画素列として第1〜第3の画素列の繰り返しであるとし、この第1〜第3の画素列のデータをそれぞれ上位メモリバンクBK0〜BK2に格納する。
データ格納制御部120は、第Kの位相処理時に、第M(M=1〜3)の画素列の画素データをそれぞれ第Mの上位メモリバンクに格納する際、開始位置から画素列方向に直交する方向に(K−1)画素分ずれた位置に設定されたアクセスパターンACPで特定される12個の画素(以下、適宜、「初期アクセス画素」という)に基づき、第Mの画素列の注目画素がこの12個の初期アクセス画素のいずれかに最初に該当するとき、注目画素の画素データを第Mの上位メモリバンクの最初の下位メモリバンクに格納することを開始する。また、その後、第Mの画素列の注目画素が複数の画素のいずれかに該当するとき、注目画素の画素データを格納する第Mの上位メモリバンクの下位メモリバンクを切り替える。
データ格納制御部120についてさらに詳細に説明する。図3は、このデータ格納制御部120の構成を示している。このデータ格納制御部120は、カウンタ(カウンタA)121と、カウンタ(カウンタB)122と、一致判定部123と、上位バンクアドレスカウンタ124と、下位バンクアドレスカウンタ125と、ビット線アドレスカウンタ126と、ワード線アドレスカウンタ127と、アドレス生成部128とを有している。
カウンタ(カウンタA)121は、第K(K=1〜3)の位相処理時に、上述したメモリ部110に順に入力される各注目画素の画素データの入力個数をカウントする。このカウンタ121には、メモリ部110に入力される各注目画素の画素データに同期したデータクロックDCKが供給される。このデータクロックDCKは、上述した制御信号SCLのひとつを構成しており、図示しない制御装置から供給される。このカウンタ121は、最初にそのカウント値が0とされ、その後はメモリ部110に各注目画素の画素データが入力される毎に、データクロックDCKによってインクリメントされていく。
一致判定部123は、第Kの位相処理時に、上述したメモリ部110に所定の注目画素の画素データが入力される毎に、その注目画素が、開始位置から画素列方向に直交する方向に(K−1)画素分ずれた位置に設定されたアクセスパターンACPで特定される12個の初期アクセス画素に一致するか否かを判定する。そのため、この一致判定部123には、第1〜第3の位相処理時のそれぞれで、注目画素が当該12個の初期アクセス画素となる際に上述したカウンタ121から出力されるカウント値CN1〜CN12に対応した値が、アクセスパターン情報IAPとして供給される。このアクセスパターン情報IAPは、上述した制御信号SCLのひとつを構成しており、図示しない制御装置から供給される。この一致判定部123は、ある注目画素におけるカウンタ121のカウント値が、カウント値CN1〜CN12と一致するとき、それぞれ、当該注目画素は1番目〜12番目の初期アクセス画素であると判定する。
カウンタ(カウンタB)122は、注目画素が画素列の最初から何番目の画素であるかをカウントする。このカウンタ122には、メモリ部110に入力される各注目画素の画素データに同期したデータクロックDCKが供給される。このカウンタ122は、最初はそのカウント値が0とされ、その後はメモリ部110に各注目画素の画素データが入力される毎に、データクロックDCKによってインクリメントされていく。そして、カウント値が画素列の画素数m(この実施の形態では22)と等しくなる毎に、0にリセットされる。
上位バンクアドレスカウンタ124は、3個の上位メモリバンクBK0〜BK2のうち、注目画素の画素データを格納すべき上位メモリバンクを示すカウント値、つまり上位バンクアドレスを出力する。このカウンタ124には、上述したカウンタ(カウンタB)122のカウント値が供給される。このカウンタ124は、最初はそのカウント値が0とされ、注目画素がK番目以降の画素列の画素となった後に、カウンタ122のカウント値が0にリセットされるとき、インクリメントされる。このカウンタ124は、カウント値2の次はカウント値0となり、3進カウンタの構成となっている。このカウンタ124のカウント値0〜2、つまり上位バンクアドレス0〜2は、それぞれ上位メモリバンクBK0〜BK2を示している。
下位バンクアドレスカウンタ125は、上述した上位バンクアドレスカウンタ124のカウント値で示される上位メモリバンクを構成する下位メモリバンクのうち、実際に注目画素の画素データを格納すべき下位メモリバンクを示すカウント値、つまり下位バンクアドレスを出力する。このカウンタ125は、上位メモリバンクBK0〜BK2にそれぞれ対応した3個のカウンタ125-0〜125-2からなっている。このカウンタ125には、上述した一致判定部123の判定出力が供給されると共に、上述したカウンタ124のカウント値(上位バンクアドレス)が供給される。
これらのカウンタ125-0〜125-2は、最初はそのカウント値、つまり下位バンクアドレスが0とされ、その後は、上位バンクアドレス(カウンタ124のカウント値)が0〜2のそれぞれにあるとき、注目画素が初期アクセス画素に該当し、かつ当該上位バンクアドレスでは最初の初期アクセス画素でない場合、当該上位バンクアドレスに対応したカウンタがインクリメントされる。
ビット線アドレスカウンタ126は、上位メモリバンクBK0〜BK2を構成する12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23にそれぞれ対応した12個のカウンタからなっている。このビット線アドレスカウンタ126には、メモリ部110に入力される各注目画素の画素データに同期したデータクロックDCKが供給されると共に、カウンタ124,125のカウント値(バンクアドレス)が供給される。
12個のカウンタは、最初はそのカウント値、つまりビット線アドレスが0とされ、その後はメモリ部110に各注目画素の画素データが入力されて格納される毎に、当該12個のカウンタのうち、バンクアドレスに対応したカウンタがインクリメントされていく。この実施の形態では、各下位メモリバンクのワード線長は10とされ、当該12個のカウンタは、カウント値9の次はカウント値0となり、10進カウンタの構成となっている。ここで、バンクアドレスは、カウンタ124のカウント値(上位バンクアドレス)と、この上位バンクアドレスに対応したカウンタ125内のカウンタのカウント値(下位バンクアドレス)からなる。
ワード線アドレスカウンタ127は、上位メモリバンクBK0〜BK2を構成する12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23にそれぞれ対応した12個のカウンタからなっている。当該12個のカウンタには、それぞれ、上述したカウンタ126内の12個のカウンタの桁上げ信号であるキャリーCAが供給される。当該12個のカウンタは、それぞれ、キャリーCAが供給される毎に、インクリメントされていく。
アドレス生成部128は、メモリ部110に供給する書き込みアドレスWを生成する。このアドレス生成部128には、カウンタ124〜127のカウント値が供給される。このアドレス生成部128は、上位バンクアドレス、下位バンクアドレス、ビット線アドレスおよびワード線アドレスを合成して、メモリ部110に供給する書き込みアドレスWを生成する。
ここで、上位バンクアドレスは、カウンタ124のカウント値で与えられる。下位バンクアドレスは、カウンタ125を構成するカウンタ125-0〜125-2のうち上位バンクアドレスに対応したカウンタのカウント値で与えられる。ビット線アドレスは、カウンタ126を構成する12個のカウンタのうちバンクアドレス(上位バンクアドレスおよび下位バンクアドレス)に対応したカウンタのカウント値で与えられる。そして、ワード線アドレスは、カウンタ127を構成する12個のカウンタのうちバンクアドレス(上位バンクアドレスおよび下位バンクアドレス)に対応したカウンタのカウント値で与えられる。
また、アドレス生成部128は、データアクセス制御部140で用いられる、各下位メモリバンクに対する、読み出し開始アドレスRSおよび書き込み開始アドレスWSを生成する。この場合、アドレス生成部128は、各下位メモリバンクの、最初の書き込みアドレスW、つまり最初に画素データが格納されたアドレスを読み出し開始アドレスRSとし、また最後の画素データが格納されたアドレスの次のアドレスを書き込み開始アドレスWSとする。
次に、図3に示すデータ格納制御部120の制御による初期格納時(第Kの位相処理時)の動作を、図4のフローチャートを用いて説明する。なお、データ格納制御部120は、例えばマイクロプロセッサで構成され、図示しないプログラムメモリに格納されたデータ格納制御プログラムに従って制御動作をする。
ステップST1で、動作を開始し、ステップST2で、上位バンクアドレスカウンタ124のカウント値(上位バンクアドレス)、下位バンクアドレスカウンタ125を構成する3個のカウンタ125-0〜125-2のカウント値(下位バンクアドレス)、ビット線アドレスカウンタ126を構成する12個のカウンタのカウント値(ビット線アドレス)、およびワード線アドレスカウンタ127を構成する12個のカウンタのカウント値(ワード線アドレス)をそれぞれ0にし、カウンタ(カウンタA)121およびカウンタ(カウンタB)122のカウント値をそれぞれ0にする。
次に、ステップST3で、注目画素の画素データが入力されたか否かを判定する。この場合、データクロックDCKが供給されるとき、注目画素の画素データが入力されたと判定する。注目画素の画素データが入力されたと判定するとき、ステップST4で、カウンタ(カウンタA)121をインクリメントし、さらにステップST5で、カウンタ(カウンタB)122をインクリメントする。
次に、ステップST6で、ステップST3で入力された注目画素が、開始位置から画素列方向に直交する方向に(K−1)画素分ずれた位置に設定されたアクセスパターンACPで特定される12個の初期アクセス画素のいずれかであるか否かを、一致判定部123で判定する。この場合、カウンタ(カウンタA)121のカウント値が、アクセスパターン情報IAPとしてのカウント値CN1〜CN12のいずれかと一致するとき、注目画素が初期アクセス画素であると判定する。
注目画素が初期アクセス画素であると判定するとき、ステップST7で、その初期アクセス画素が現在の上位バンクアドレスで最初の初期アクセス画素であるか否かを判定する。現在の上位バンクアドレスは、上位バンクアドレスカウンタ124のカウント値で与えられる。
最初の初期アクセス画素であると判定するとき、直ちに、ステップST10に進む。一方、最初の初期アクセス画素でないと判定するとき、ステップST8で、書き込みアドレスWを、バンクアドレスに対応した下位メモリバンクの書き込み開始アドレスWSにする。
ここで、バンクアドレスは、上位バンクアドレスおよび下位バンクアドレスからなる。上位バンクアドレスは、カウンタ124のカウント値で与えられる。下位バンクアドレスは、上位バンクアドレスに対応したカウンタ125内のカウンタのカウント値で与えられる。書き込みアドレスWは、アドレス生成部128で、上述したバンクアドレスの他に、ビット線アドレスおよびワード線アドレスを合成することで生成されている。ビット線アドレスは、バンクアドレスに対応したカウンタ126内のカウンタのカウント値で与えられる。ワード線アドレスは、バンクアドレスに対応したカウンタ127内のカウンタのカウント値で与えられる。
次に、ステップST9で、上位バンクアドレスに対応したカウンタ125内のカウンタのカウント値(下位バンクアドレス)をインクリメントする。その後に、ステップST10に進む。ステップST10では、書き込みアドレスWを、バンクアドレスに対応した下位メモリバンクの読み出し開始アドレスRSにする。
次に、ステップST11に進む。上述のステップST6で、注目画素が初期アクセス画素でないと判定されるとき、ステップST12で、注目画素が現在の上位バンクアドレスで最初の初期アクセス画素の後の画素であるか否かを判定する。注目画素が最初の初期アクセス画素の後の画素であると判定するとき、直ちに、ステップST11に進む。このステップST11では、アドレス生成部128で生成されている書き込みアドレスWに基づき、当該書き込みアドレスWのバンクアドレスで指定される下位メモリバンクの、当該書き込みアドレスWのビット線アドレスおよびワード線アドレスで指定されるアドレス位置に、注目画素の画素データを格納する。
次に、ステップST13で、ビット線アドレスカウンタ126のバンクアドレスに対応したカウンタのカウント値(ビット線アドレス)をインクリメントする。そして、ステップST14で、ステップST13で、カウンタのカウント値が0となったとき、そのカウンタから出力されるキャリーCAにより、ワード線アドレスカウンタ127のバンクアドレスに対応したカウンタのカウント値(ワード線アドレス)をインクリメントする。その後に、ステップST15に進む。
上述のステップST12で、注目画素が最初の初期アクセス画素の後の画素でないと判定するとき、直ちに、ステップST15に進む。このステップST15では、カウンタ(カウンタB)122のカウント値が画素列の画素数mと等しいか否かを判定する。カウント値がmと等しいとき、ステップST16で、注目画素がK番目以降の画素列の画素であるか否かを判定する。
注目画素がK番目以降の画素列の画素であると判定するときは、ステップST17で、上位バンクアドレスカウンタ124のカウント値(上位バンクアドレス)をインクリメントし、ステップST18に進む。注目画素がK番目以降の画素列の画素でないと判定するときは、直ちに、ステップST18に進む。このステップST18では、カウンタ(カウンタB)122を0にリセットし、その後に、ステップST19に進む。
上述のステップST15で、カウント値がmと等しくないとき、直ちに、ステップST19に進む。このステップST19では、画面SRNの全ての画素の画素データが入力されたか否かを判定する。この場合、カウンタ(カウンタA)121のカウント値が、画面SRNを構成する画素の個数に等しいとき、全ての画素の画素データが入力されたと判定する。全ての画素の画素データが入力されたと判定するとき、ステップST20で、動作を終了する。一方、全ての画素の画素データが入力されていないと判定するとき、ステップST3に戻り、次の注目画素の画素データの入力を待つ。
上述した初期格納時の動作により、画面SRNの各画素のデータは、上位メモリバンクBK0〜BK2に振り分けられて格納される。
図5は、第1の位相処理時におけるアクセスパターンACPの初期設定位置を示している。このアクセスパターンACPの初期設定位置は、アクセスパターンACPの設定位置の開始位置となっている。この図5の「□」は上述の図2と同様に1画素を示している。以下の同種の図においても同様である。この図5の□内の数字は、各画素列が0〜2のいずれの画素列であるかを示している。この場合、画面SRNにおける各画素列は、1番目の画素列が最初の画素列とされて、0〜2の画素列の繰り返しであるとされ、この0〜2の画素列の画素データがそれぞれ上位メモリバンクBK0〜BK2に格納される。ここで、0〜2の画素列は、それぞれ、第1〜第3の画素列を構成する。
図6は、第1の位相処理時における、各画素の画素データの初期格納状態を示している。この図6の□内の数字は、その画素の画素データが格納される下位メモリバンクのバンクアドレスを示している。ここで、「00」〜「03」は、それぞれ、上位メモリバンクBK0を構成する下位メモリバンクBK00〜BK03を示している。「10」〜「13」は、それぞれ、上位メモリバンクBK1を構成する下位メモリバンクBK10〜BK13を示している。「20」〜「23」は、それぞれ、上位メモリバンクBK2を構成する下位メモリバンクBK20〜BK23を示している。
図7は、上位メモリバンクBK0に係る画面SRN上のアクセスパターン、および下位メモリバンクBK00〜BK03への画素振り分けを示している。そして、図8は、下位メモリバンクBK00〜BK03のデータ格納状態を示している。ここで、「■」は画素データが格納されているメモリセルMCを示し、「□」は画素データが格納されていないメモリセルMCを示している。これは、以下の図においても同様である。
図9は、上位メモリバンクBK1に係る画面SRN上のアクセスパターン、および下位メモリバンクBK10〜BK13への画素振り分けを示している。そして、図10は、下位メモリバンクBK10〜BK13のデータ格納状態を示している。さらに、図11は、上位メモリバンクBK2に係る画面SRN上のアクセスパターン、および下位メモリバンクBK20〜BK23への画素振り分けを示している。そして、図12は、下位メモリバンクBK20〜BK23のデータ格納状態を示している。
最初、上位バンクアドレスは「0」となっており、また各上位バンクアドレスに対応した下位バンクアドレスも「0」となっている。この状態で、第1列の先頭画素が注目画素となる。この注目画素は、アクセスパターンACPで特定される12個の初期アクセス画素のいずれでもなく、また現在の上位バンクアドレス「0」で最初の初期アクセス画素IM1Uより後の画素でもない。そのため、この注目画素の画素データは上位バンクアドレスBK0に格納されない。
その後、第1列の2番目の画素が注目画素となる。この注目画素は現在の上位バンクアドレス「0」で最初の初期アクセス画素IM1Uであり、この画素IM1Uから上位メモリバンクBK0を構成する最初の下位メモリバンクBK00への画素データの格納が開始される。この場合、この画素IM1Uの画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK00の読み出し開始アドレスRSとされる(図8のバンクBK00参照)。
その後、この画素IM1Uに続く画素が順に注目画素となり、その画素データが下位メモリバンクBK00に格納されていくが、第1列の9番目の画素は現在の上位バンクアドレス「0」で2番目の初期アクセス画素IM2Uであり、この画素IM2Uが注目画素となるとき、現在の上位バンクアドレス「0」に対応した下位バンクアドレスがインクリメントされて「1」となり、画素データを格納すべき下位メモリバンクはBK01となる。
そのため、下位メモリバンクBK00は、7画素の画素データが格納された状態となる(図8のバンクBK00の最初の7個のアドレス位置参照)。この場合、この下位メモリバンクBK00の書き込み開始アドレスWSは、7画素の画素データのうち最後の画素データが格納されたアドレス位置の次のアドレス位置を示すアドレスとされる(図8のバンクBK00参照)。
上述したように画素IM2Uが注目画素となるとき画素データを格納すべき下位メモリバンクはBK01となり、この画素IM2Uから上位メモリバンクBK0を構成する下位メモリバンクBK01への画素データの格納が開始される。この場合、この画素IM2Uの画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK01の読み出し開始アドレスRSとされる(図8のバンクBK01参照)。
その後、この画素IM2Uに続く画素が順に注目画素となって、その画素データが下位メモリバンクBK01に格納されていくが、第1列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて「1」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
この状態で、第2列の先頭画素が注目画素となる。この注目画素は、アクセスパターンACPで特定される12個の初期アクセス画素のいずれでもなく、また現在の上位バンクアドレス「1」で最初の初期アクセス画素IM1より後の画素でもない。そのため、この注目画素の画素データは上位バンクアドレスBK1に格納されない。
その後、第2列の2番目の画素が注目画素となる。この注目画素は現在の上位バンクアドレス「1」で最初の初期アクセス画素IM1であり、この画素IM1から上位メモリバンクBK1を構成する最初の下位メモリバンクBK10への画素データの格納が開始される。この場合、この画素IM1の画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK10の読み出し開始アドレスRSとされる(図10のバンクBK10参照)。
その後、この画素IM1に続く画素が順に注目画素となり、その画素データが下位メモリバンクBK10に格納されていくが、第2列の9番目の画素は現在の上位バンクアドレス「1」で2番目の初期アクセス画素IM2であり、この画素IM2が注目画素となるとき、現在の上位バンクアドレス「1」に対応した下位バンクアドレスがインクリメントされて「1」となり、画素データを格納すべき下位メモリバンクはBK11となる。
そのため、下位メモリバンクBK10は、7画素の画素データが格納された状態となる(図10のバンクBK10の最初の7個のアドレス位置参照)。この場合、この下位メモリバンクBK10の書き込み開始アドレスWSは、7画素の画素データのうち最後の画素データが格納されたアドレス位置の次のアドレス位置を示すアドレスとされる(図10のバンクBK10参照)。
上述したように画素IM2が注目画素となるとき画素データを格納すべき下位メモリバンクはBK11となり、この画素IM2から上位メモリバンクBK1を構成する下位メモリバンクBK11への画素データの格納が開始される。この場合、この画素IM2の画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK11の読み出し開始アドレスRSとされる(図10のバンクBK11参照)。
その後、この画素IM2に続く画素が順に注目画素となって、その画素データが下位メモリバンクBK11に格納されていくが、第2列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて「2」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
この状態で、第3列の先頭画素が注目画素となる。この注目画素は、アクセスパターンACPで特定される12個の初期アクセス画素のいずれでもなく、また現在の上位バンクアドレス「2」で最初の初期アクセス画素IM1Dより後の画素でもない。そのため、この注目画素の画素データは上位バンクアドレスBK2に格納されない。
その後、第3列の2番目の画素が注目画素となる。この注目画素は現在の上位バンクアドレス「2」で最初の初期アクセス画素IM1Dであり、この画素IM1Dから上位メモリバンクBK2を構成する最初の下位メモリバンクBK20への画素データの格納が開始される。この場合、この画素IM1Dの画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK20の読み出し開始アドレスRSとされる(図12のバンクBK20参照)。
その後、この画素IM1Dに続く画素が順に注目画素となり、その画素データが下位メモリバンクBK20に格納されていくが、第3列の9番目の画素は現在の上位バンクアドレス「2」で2番目の初期アクセス画素IM2Dであり、この画素IM2Dが注目画素となるとき、現在の上位バンクアドレス「2」に対応した下位バンクアドレスがインクリメントされて「1」となり、画素データを格納すべき下位メモリバンクはBK21となる。
そのため、下位メモリバンクBK20は、7画素の画素データが格納された状態となる(図12のバンクBK20の最初の7個のアドレス位置参照)。この場合、この下位メモリバンクBK20の書き込み開始アドレスWSは、7画素の画素データのうち最後の画素データが格納されたアドレス位置の次のアドレス位置を示すアドレスとされる(図12のバンクBK10参照)。
上述したように画素IM2Dが注目画素となるとき画素データを格納すべき下位メモリバンクはBK21となり、この画素IM2Dから上位メモリバンクBK2を構成する下位メモリバンクBK21への画素データの格納が開始される。この場合、この画素IM2Dの画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK21の読み出し開始アドレスRSとされる(図12のバンクBK21参照)。
その後、この画素IM2Dに続く画素が順に注目画素となって、その画素データが下位メモリバンクBK21に格納されていくが、第3列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて再び「0」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
この状態で、第4列の先頭画素が注目画素となる。この注目画素は、現在の上位バンクアドレス「0」で最初の初期アクセス画素IM1Uより後の画素である。そのため、この画素から上位メモリバンクBK0を構成する下位メモリバンクBK01への画素データの格納が再度開始される。
その後、この画素に続く画素が順に注目画素となって、その画素データが下位メモリバンクBK01に格納されていくが、第4列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて「1」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
この状態で、第5列の先頭画素が注目画素となる。この注目画素は、現在の上位バンクアドレス「1」で最初の初期アクセス画素IM1より後の画素である。そのため、この画素から上位メモリバンクBK1を構成する下位メモリバンクBK11への画素データの格納が再度開始される。
その後、この画素に続く画素が順に注目画素となり、その画素データが下位メモリバンクBK11に格納されていくが、第5列の5番目の画素は現在の上位バンクアドレス「1」で3番目の初期アクセス画素IM3Uであり、この画素IM3Uが注目画素となるとき、現在の上位バンクアドレス「1」に対応した下位バンクアドレスがインクリメントされて「2」となり、画素データを格納すべき下位メモリバンクはBK12となる。
そのため、下位メモリバンクBK11は、18画素の画素データが格納された状態となる(図10のバンクBK11の最初の18個のアドレス位置参照)。この場合、この下位メモリバンクBK11の書き込み開始アドレスWSは、18画素の画素データのうち最後の画素データが格納されたアドレス位置の次のアドレス位置を示すアドレスとされる(図10のバンクBK11参照)。
上述したように画素IM3Uが注目画素となるとき画素データを格納すべき下位メモリバンクはBK12となり、画素IM3Uから上位メモリバンクBK1を構成する下位メモリバンクBK12への画素データの格納が開始される。この場合、この画素IM3Uの画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK12の読み出し開始アドレスRSとされる(図10のバンクBK12参照)。
その後、この画素IM3Uに続く画素が順に注目画素となって、その画素データが下位メモリバンクBK12に格納されていくが、第5列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて「2」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
この状態で、第6列の先頭画素が注目画素となる。この注目画素は、現在の上位バンクアドレス「2」で最初の初期アクセス画素IM1Dより後の画素である。そのため、この画素から上位メモリバンクBK2を構成する下位メモリバンクBK21への画素データの格納が再度開始される。
その後、この画素に続く画素が順に注目画素となり、その画素データが下位メモリバンクBK21に格納されていくが、第6列の5番目の画素は現在の上位バンクアドレス「2」で3番目の初期アクセス画素IM3であり、この画素IM3が注目画素となるとき、現在の上位バンクアドレス「2」に対応した下位バンクアドレスがインクリメントされて「2」となり、画素データを格納すべき下位メモリバンクはBK22となる。
そのため、下位メモリバンクBK21は、18画素の画素データが格納された状態となる(図12のバンクBK21の最初の18個のアドレス位置参照)。この場合、この下位メモリバンクBK21の書き込み開始アドレスWSは、18画素の画素データのうち最後の画素データが格納されたアドレス位置の次のアドレス位置を示すアドレスとされる(図12のバンクBK21参照)。
上述したように画素IM3が注目画素となるとき画素データを格納すべき下位メモリバンクはBK22となり、画素IM3から上位メモリバンクBK2を構成する下位メモリバンクBK22への画素データの格納が開始される。この場合、この画素IM3の画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK22の読み出し開始アドレスRSとされる(図12のバンクBK22参照)。
その後、この画素IM3に続く画素が順に注目画素となって、その画素データが下位メモリバンクBK22に格納されていくが、第6列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて再び「0」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
この状態で、第7列の先頭画素が注目画素となる。この注目画素は、現在の上位バンクアドレス「0」で最初の初期アクセス画素IM1Uより後の画素である。そのため、この画素から上位メモリバンクBK0を構成する下位メモリバンクBK01への画素データの格納が再度開始される。
その後、この画素に続く画素が順に注目画素となり、その画素データが下位メモリバンクBK01に格納されていくが、第7列の5番目の画素は現在の上位バンクアドレス「0」で3番目の初期アクセス画素IM3Dであり、この画素IM3Dが注目画素となるとき、現在の上位バンクアドレス「0」に対応した下位バンクアドレスがインクリメントされて「2」となり、画素データを格納すべき下位メモリバンクはBK02となる。
そのため、下位メモリバンクBK01は、40画素の画素データが格納された状態となる(図8のバンクBK01の最初の40個のアドレス位置参照)。この場合、この下位メモリバンクBK01の書き込み開始アドレスWSは、40画素の画素データのうち最後の画素データが格納されたアドレス位置の次のアドレス位置を示すアドレスとされる(図8のバンクBK01参照)。
上述したように画素IM3Dが注目画素となるとき画素データを格納すべき下位メモリバンクはBK02となり、画素IM3Dから上位メモリバンクBK0を構成する下位メモリバンクBK02への画素データの格納が開始される。この場合、この画素IM3Dの画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK02の読み出し開始アドレスRSとされる(図8のバンクBK02参照)。
その後、この画素IM3Dに続く画素が順に注目画素となって、その画素データが下位メモリバンクBK02に格納されていくが、第7列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて「1」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
この状態で、第8列の先頭画素が注目画素となる。この注目画素は、現在の上位バンクアドレス「1」で4番目の初期アクセス画素IM4Uであり、現在の上位バンクアドレス「1」に対応した下位バンクアドレスがインクリメントされて「3」となり、画素データを格納すべき下位メモリバンクはBK13となる。
そのため、下位メモリバンクBK12は、18画素の画素データが格納された状態となる(図10のバンクBK12の最初の18個のアドレス位置参照)。この場合、この下位メモリバンクBK12の書き込み開始アドレスWSは、18画素の画素データのうち最後の画素データが格納されたアドレス位置の次のアドレス位置を示すアドレスとされる(図10のバンクBK12参照)。
上述したように画素IM4Uが注目画素となるとき画素データを格納すべき下位メモリバンクはBK13となり、画素IM4Uから上位メモリバンクBK1を構成する下位メモリバンクBK13への画素データの格納が開始される。この場合、この画素IM4Uの画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK13の読み出し開始アドレスRSとされる(図10のバンクBK13参照)。
その後、この画素IM4Uに続く画素が順に注目画素となって、その画素データが下位メモリバンクBK13に格納されていくが、第8列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて「2」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
この状態で、第9列の先頭画素が注目画素となる。この注目画素は、現在の上位バンクアドレス「2」で4番目の初期アクセス画素IM4であり、現在の上位バンクアドレス「2」に対応した下位バンクアドレスがインクリメントされて「3」となり、画素データを格納すべき下位メモリバンクはBK23となる。
そのため、下位メモリバンクBK22は、18画素の画素データが格納された状態となる(図12のバンクBK22の最初の18個のアドレス位置参照)。この場合、この下位メモリバンクBK22の書き込み開始アドレスWSは、18画素の画素データのうち最後の画素データが格納されたアドレス位置の次のアドレス位置を示すアドレスとされる(図12のバンクBK22参照)。
上述したように画素IM4が注目画素となるとき画素データを格納すべき下位メモリバンクはBK23となり、画素IM4から上位メモリバンクBK2を構成する下位メモリバンクBK23への画素データの格納が開始される。この場合、この画素IM4の画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK23の読み出し開始アドレスRSとされる(図12のバンクBK23参照)。
その後、この画素IM4に続く画素が順に注目画素となって、その画素データが下位メモリバンクBK23に格納されていくが、第9列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて再度「0」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
この状態で、第10列の先頭画素が注目画素となる。この注目画素は、現在の上位バンクアドレス「0」で4番目の初期アクセス画素IM4Dであり、現在の上位バンクアドレス「0」に対応した下位バンクアドレスがインクリメントされて「3」となり、画素データを格納すべき下位メモリバンクはBK03となる。
そのため、下位メモリバンクBK02は、18画素の画素データが格納された状態となる(図8のバンクBK02の最初の18個のアドレス位置参照)。この場合、この下位メモリバンクBK02の書き込み開始アドレスWSは、18画素の画素データのうち最後の画素データが格納されたアドレス位置の次のアドレス位置を示すアドレスとされる(図8のバンクBK02参照)。
上述したように画素IM4Dが注目画素となるとき画素データを格納すべき下位メモリバンクはBK03となり、画素IM4Dから上位メモリバンクBK0を構成する下位メモリバンクBK03への画素データの格納が開始される。この場合、この画素IM4Dの画素データを格納すべきアドレス位置を示す書き込みアドレスWが、当該下位メモリバンクBK03の読み出し開始アドレスRSとされる(図8のバンクBK03参照)。
その後、この画素IM4Dに続く画素が順に注目画素となって、その画素データが下位メモリバンクBK03に格納されていくが、第10列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて「1」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
この状態で、第11列の先頭画素が注目画素となる。この注目画素は、現在の上位バンクアドレス「1」で最初の初期アクセス画素IM1より後の画素である。そのため、この画素から上位メモリバンクBK1を構成する下位メモリバンクBK13への画素データの格納が再度開始される。
その後、この画素に続く画素が順に注目画素となって、その画素データが下位メモリバンクBK03に格納されていくが、第11列の22番目の画素の画素データまで格納されると、カウンタ122のカウント値Bが画素列の画素数m(=22)と等しくなり、上位バンクアドレスがインクリメントされて「2」となり、またカウンタ122のカウント値Bも「0」にリセットされる。
以下、同様にして、下位メモリバンクBK23,BK03,BK13に順次1画素列ずつ画素データが格納されていくことが繰り返し行われ、全画素の画素データの格納が行われる(図12のBK23、図8のBK03、図10のBK13参照)。
上述の図5〜図12を使用した説明は、第1の位相処理時における初期格納の動作を説明したものである。詳細説明は省略するが、第2の位相処理時および第3の位相処理時における初期格納の動作も同様にして行われる。
なお、図13は、第2の位相処理時におけるアクセスパターンACPの初期設定位置を示している。このアクセスパターンACPの初期設定位置は、開始位置から画素列方向に直交する方向に1画素分ずれた位置となっている。この場合、画面SRNにおける各画素列は、2番目の画素列が最初の画素列とされて、0〜2の画素列の繰り返しであるとされ、この0〜2の画素列の画素データがそれぞれ上位メモリバンクBK0〜BK2に格納される。図14は、第2の位相処理時における、各画素の画素データの、下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23への初期格納状態を示している。
また、図15は、第3の位相処理時におけるアクセスパターンACPの初期設定位置を示している。このアクセスパターンACPの初期設定位置は、開始位置から画素列方向に直交する方向に2画素分ずれた位置となっている。この場合、画面SRNにおける各画素列は、3番目の画素列が最初の画素列とされて、0〜2の画素列の繰り返しであるとされ、この0〜2の画素列の画素データがそれぞれ上位メモリバンクBK0〜BK2に格納される。図16は、第3の位相処理時における、各画素の画素データの、下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23への初期格納状態を示している。
図1に戻って、データアクセス制御部140は、図示しない制御装置から入力端子150を介して供給される制御信号SCLに基づいて動作する。このデータアクセス制御部140は、アクセスパターンACPの設定位置を開始位置から画素列方向に移動した各設定位置で、このアクセスパターンACPで特定される12個のアクセス画素IM1〜IM4,IM1U〜IM4U,IM1D〜IM4Dの画素データを、3個の上位メモリバンクBK0〜BK2から同時に読み出すための制御を行う。
データアクセス制御部140は、第1〜第3の位相処理を順次行う。そして、データアクセス制御部140は、第K(K=1〜3)の位相処理時において、開始位置から画素列方向に直交する方向に(K−1)画素分ずれた位置を最初の設定位置(初期設定位置)とし、一列分の移動が終わる毎に3画素分ずれた列の先頭に移動し、画素列方向に順次移動したアクセスパターンACPの各設定位置で、このアクセスパターンACPで特定される12個のアクセス画素IM1〜IM4,IM1U〜IM4U,IM1D〜IM4Dの画素データを、3個の上位メモリバンクBK0〜BK2を構成する12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23から同時に読み出す。
また、このデータアクセス制御部140は、アクセスパターンACPの設定位置が画素列方向に移動した際に、その設定位置におけるアクセスパターンACPで特定される12個のアクセス画素IM1〜IM4,IM1U〜IM4U,IM1D〜IM4Dの画素データがそれぞれ異なる下位メモリバンクに格納されているように、上位メモリバンク毎に、所定の下位メモリバンクから読み出した画素データを、その画素データが格納されていた下位メモリバンクの1つ前の下位メモリバンクに格納する。
データアクセス制御部140についてさらに詳細に説明する。図17は、このデータアクセス制御部140の構成を示している。このデータアクセス制御部140は、カウンタ141と、アドレスカウンタ制御部142と、読み出しアドレスカウンタ143と、書き込みアドレスカウンタ144と、読み出しアドレス生成部145と、書き込みアドレス生成部146とを有している。
カウンタ141は、アクセスパターンACPの設定位置を示すカウント値を出力する。このカウンタ141には、アクセスパターンACPの設定位置を移動するための移動クロックMCKが供給される。この移動クロックMCKは、上述した制御信号SCLのひとつを構成しており、図示しない制御装置から供給される。このカウンタ141は、最初にそのカウント値が0とされ、その後アクセスパターンACPの設定位置を開始位置とするとき最初の移動クロックMCKでインクリメントされてカウント値が1となり、その後はこの設定位置が画素列方向に1画素ずつ移動する毎に、移動クロックMCKでインクリメントされていく。
読み出しアドレスカウンタ143は、12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23にそれぞれ対応した12個のカウンタからなっている。この12個のカウンタのそれぞれは、ビット線アドレスを示すカウント値を得るためのビット線アドレスカウンタと、ワード線アドレスを示すカウント値を得るためのワード線アドレスカウンタとからなっている(図3のビット線アドレスカウンタ126およびワード線アドレスカウンタ127参照)。カウンタ143内の12個のカウンタは、アドレスカウンタ制御部142の制御のもと、それぞれ、12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23に対する読み出しアドレス(ビット線アドレスおよびワード線アドレス)を示すカウント値を出力する。
書き込みアドレスカウンタ144は、9個の下位メモリバンクBK00〜BK02,BK10〜BK12,BK20〜BK22にそれぞれ対応した9個のカウンタからなっている。この9個のカウンタのそれぞれも、ビット線アドレスを示すカウント値を得るためのビット線アドレスカウンタと、ワード線アドレスを示すカウント値を得るためのワード線アドレスカウンタとからなっている。カウンタ144内の9個のカウンタは、アドレスカウンタ制御部142の制御のもと、それぞれ、9個の下位メモリバンクBK00〜BK02,BK10〜BK12,BK20〜BK22に対する書き込みアドレス(ビット線アドレスおよびワード線アドレス)を示すカウント値を出力する。
アドレスカウンタ制御部142は、上述した読み出しアドレスカウンタ143および書き込みアドレスカウンタ144の動作を制御する。このアドレスカウンタ制御部142には、アクセスパターンACPの設定位置を移動するための移動クロックMCKと、さらに上述したデータ格納制御部120のアドレス生成部128で生成された、それぞれの下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23に対する読み出し開始アドレスRSおよび書き込み開始アドレスWSが供給される。
このアドレスカウンタ制御部142は、最初に、12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23のそれぞれに対する読み出し開始アドレスRSをカウンタ143内の12個のカウンタにセットし、9個の下位メモリバンクBK00〜BK02,BK10〜BK12,BK20〜BK22のそれぞれに対する書き込み開始アドレスWSをカウンタ144内の9個のカウンタにセットする。
また、アドレスカウンタ制御部142は、アクセスパターンACPの各設定位置で、画素データの読み出しが行われる毎にカウンタ143内の12個のカウンタをインクリメントすると共に、画素データの書き込みが行われる毎にカウンタ144内の9個のカウンタをインクリメントする。
読み出しアドレス生成部145は、12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23のそれぞれに対する読み出しアドレスRを生成する。この読み出しアドレス生成部145には、読み出しアドレスカウンタ143を構成する各カウンタのカウント値(ビット線アドレスおよびワード線アドレス)が供給される。読み出しアドレス生成部145は、各カウンタのカウント値(ビット線アドレスおよびワード線アドレス)に、それぞれ、上位バンクアドレスおよび下位バンクアドレスを合成することで、それぞれの下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23に対する読み出しアドレスRを生成する。
書き込みアドレス生成部146は、9個の下位メモリバンクBK00〜BK02,BK10〜BK12,BK20〜BK22のそれぞれに対する書き込みアドレスWを生成する。この書き込みアドレス生成部146には、書き込み込みアドレスカウンタ144を構成する各カウンタのカウント値(ビット線アドレスおよびワード線アドレス)が供給される。書き込みアドレス生成部146は、各カウンタのカウント値(ビット線アドレスおよびワード線アドレス)に、それぞれ、上位バンクアドレスおよび下位バンクアドレスを合成することで、それぞれの下位メモリバンクBK00〜BK02,BK10〜BK12,BK20〜BK22に対する書き込みアドレスWを生成する。
次に、図17に示すデータアクセス制御部140の制御によるデータアクセス時(第Kの位相処理時)の動作を、図18のフローチャートを用いて説明する。なお、データアクセス制御部140は、例えばマイクロプロセッサで構成され、図示しないプログラムメモリに格納されたデータアクセス制御プログラムに従って制御動作をする。
ステップST31で、動作を開始し、ステップST32で、アドレスカウンタ制御部142は、読み出しアドレスRおよび書き込みアドレスWをセットする。この場合、読み出しアドレスカウンタ143内の12個のカウンタのカウント値(読み出しアドレス)は、それぞれ、データ格納制御部120から供給された、第Kの位相処理時の読み出し開始アドレスRSと等しくなるようにセットされる。また、書き込みアドレスカウンタ144内の9個のカウント値(書き込みアドレス)は、それぞれ、データ格納制御部120から供給された、第Kの位相処理時の書き込み開始アドレスWSと等しくなるようにセットされる。
次に、ステップST33で、移動クロックMCKにより、カウンタ141をインクリメントする。そして、ステップST34で、12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23の、読み出しアドレス生成部145で生成された読み出しアドレスRで示されるアドレス位置から、アクセスパターンACPで特定される12個のアクセス画素IM1〜IM4,IM1U〜IM4U,IM1D〜IM4Dの画素データDo01〜Do12を読み出して出力する。
この場合、下位メモリバンクBK00,BK01,BK02,BK03からはそれぞれアクセス画素IM1U,IM2U,IM3D,IM4Dの画素データが読み出され、下位メモリバンクBK10,BK11,BK12,BK13からはそれぞれアクセス画素IM1,IM2,IM3U,IM4Uの画素データが読み出され、さらに下位メモリバンクBK20,BK21,BK22,BK23からはそれぞれアクセス画素IM1D,IM2D,IM3,IM4の画素データが読み出される(図7、図9、図11参照)。
次に、ステップST35で、上述のステップST34で画素データの読み出しを行った12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23に対応する読み出しアドレスカウンタ143内の12個のカウンタのカウント値(読み出しアドレス)を、インクリメントする。
次に、ステップST36で、上位メモリバンク毎に、所定の下位メモリバンクから読み出した画素データを、1つ前の下位メモリバンクに格納する。この場合、下位メモリバンクBK00〜BK02,BK10〜BK12,BK20〜BK22の、書き込みアドレス生成部146で生成された書き込みアドレスWで示されるアドレス位置に、それぞれ、下位メモリバンクBK01〜BK03,BK11〜BK13,BK21〜BK23から読み出された画素データが書き込まれる。
次に、ステップST37で、上述のステップST36で画素データの書き込みを行った9個の下位メモリバンクBK00〜BK02,BK10〜BK12,BK20〜BK22に対応する書き込みアドレスカウンタ144内の9個のカウンタのカウント値(書き込みアドレス)を、インクリメントする。
次に、ステップST38で、全てアクセスしたか否か、つまりアクセスパターンACPが、第Kの位相処理時の初期設定位置から終了位置まで移動したか否かを判定する。この場合、カウンタ141のカウント値が終了位置を示す値となるとき、全てアクセスしたと判定する。全てアクセスしたと判定するときは、ステップST39で、動作を終了する。全てアクセスしていないと判定するときは、ステップST33に戻って、アクセスパターンACPの次の設定位置の処理に移る。
ここで、第1の位相処理時のアクセスパターンACPの初期設定位置は開始位置である(図5参照)。第2の位相処理時のアクセスパターンACPの初期設定位置は、開始位置から画素列方向に直交する方向に1画素分ずれた位置である(図13参照)。さらに、第3の位相処理時のアクセスパターンACPの初期設定位置は、開始位置から画素列方向に直交する方向に2画素分ずれた位置である(図15参照)。
上述したデータアクセス時の動作をさらに説明する。上述したように、初期格納時の動作により、画面SRNの各画素の画素データは、3個の上位メモリバンクBK0〜BK2に振り分けて格納されている。図19は、第1の位相処理時において、アクセスパターンACPが開始位置(第1の位相処理時の初期設定位置)にある状態を示している。図20は、図19のうち、例えば上位メモリバンクBK0に係る部分のみを取り出したものである。
第1の位相処理時の動作開始時に、下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23の読み出しアドレスRおよび書き込み開始アドレスWがセットされる。この場合、12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23の読み出しアドレスRは、データ格納制御部120のアドレス生成部128で生成された、第1の位相処理時の読み出し開始アドレスRSと同じアドレスにセットされる。またこの場合、9個の下位メモリバンクBK00〜BK02,BK10〜BK12,BK20〜BK22の書き込みアドレスWは、データ格納制御部120のアドレス生成部128で生成された、第1の位相処理時の書き込み開始アドレスWSと同じアドレスにセットされる。
図21は、初期状態における、メモリバンクBK00〜BK03のデータ格納状態および読み出しアドレスRおよび書き込みアドレスWのアドレス位置を示している。なお、メモリバンクBK10〜BK13,BK20〜23のデータ格納状態および読み出しアドレスRおよび書き込みアドレスWのアドレス位置は、メモリバンクBK00〜BK03の場合と同様であるので、その図示を省略する。以下の各状態においても同様である。
カウンタ141のカウントが開始され、上述の図19に示すように、アクセスパターンACPの設定位置が開始位置とされると、12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23の、読み出しアドレスRで示されるアドレス位置から、開始位置のアクセスパターンACPで特定される12個のアクセス画素IM1〜IM4,IM1U〜IM4U,IM1D〜IM4Dの画素データDo01〜Do12が同時に読み出される。そして、12個の下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23の読み出しアドレスRはそれぞれインクリメントされる。
下位メモリバンクBK01〜BK03,BK11〜BK13,BK21〜BK23から読み出された画素データは、図22に示すように、1つ前の下位メモリバンクBK00〜BK02,BK10〜BK12,BK20〜BK22の、書き込み込みアドレスWで示されるアドレス位置に書き込まれる(画素データの移動)。そして、下位メモリバンクBK00〜BK02,BK10〜BK12,BK20〜BK22の書き込みアドレスWはそれぞれインクリメントされる。
その後、移動クロックMCKの入力に伴ってアクセスパターンACPの設定位置が画素列方向(水平方向)に1画素移動する毎に、上述したと同様に、アクセスパターンACPで特定される12個のアクセス画素IM1〜IM4,IM1U〜IM4U,IM1D〜IM4Dの画素データDo01〜Do12が同時に読み出され、読み出しアドレスRのインクリメント、画素データの移動、書き込みアドレスWのインクリメントの処理が行われる。
図23は、第1の位相処理時において、アクセスパターンACPが1画素移動した状態を示している。図24は、図23のうち、例えば上位メモリバンクBK0に係る部分のみを取り出したものである。さらに、図25は、アクセスパターンACPが1画素移動した状態における、メモリバンクBK00〜BK03のデータ格納状態および読み出しアドレスRおよび書き込みアドレスWのアドレス位置を示している。
また、図26は、第1の位相処理時において、アクセスパターンACPが22画素移動した状態を示している。図27は、図26のうち、例えば上位メモリバンクBK0に係る部分のみを取り出したものである。さらに、図28は、アクセスパターンACPが22画素移動した状態における、メモリバンクBK00〜BK03のデータ格納状態および読み出しアドレスRおよび書き込みアドレスWのアドレス位置を示している。
この場合、図26に示すように、アクセスパターンACPの設定位置は、開始位置から画素列方向に直交する方向に3画素分ずれた列の先頭に移動する。なお、1画素分ずれた列についてのデータアクセス動作は第2の位相処理時に行われ、2画素分ずれた列についてのデータアクセス動作は第3の位相処理時に行われる。
以下、アクセスパターンACPが22画素移動する毎に、アクセスパターンACPの設定位置は、画素列方向に直交する方向に3画素分ずれた列の先頭に移動する。
上述の図19〜図28を使用した説明は、第1の位相処理時におけるデータアクセスの動作を説明したものである。詳細説明は省略するが、第2の位相処理時および第3の位相処理時におけるデータアクセスの動作も同様にして行われる。これら第1〜第3の位相処理時におけるデータアクセスの動作が行われることで、アクセスパターンACPの設定位置を開始位置から画素列方向に移動した各設定位置で、このアクセスパターンACPで特定される12個のアクセス画素IM1〜IM4,IM1U〜IM4U,IM1D〜IM4Dの画素データDo01〜Do12を、3個の上位メモリバンクBK0〜BK2から同時に取得できる。
なお、データ格納制御部120の制御による初期格納の第1〜第3の位相処理と、データアクセス制御部140の制御によるデータアクセスの第1〜第3の位相処理との処理時間の関係については、初期格納とデータアクセスの各位相の処理を交互に行うか、あるいは初期格納の全ての位相の処理を行った後に、データアクセスの全ての位相の処理を行うようにする。ただし、初期格納の全ての位相の処理をまとめて行う場合には、上位メモリバンクBK0〜BK2が3セット必要となる。
図1に示すデータアクセス装置100によれば、アクセスパターンACPの設定位置を開始位置から画素列方向に順次移動した各設定位置で、当該アクセスパターンACPで特定される12個のアクセス画素IM1〜IM4,IM1U〜IM4U,IM1D〜IM4Dの画素データがそれぞれ異なる下位メモリバンクBK00〜BK03,BK10〜BK13,BK20〜BK23に格納された状態として、当該12個の画素データを同時にアクセスできるようにしたものであり、当該12個の画素データの同時取得を容易に行うことができる。
また、図1に示すデータアクセス装置100によれば、初期格納時に、第1〜第3の画素列の画素データのそれぞれが上位メモリバンクBK0〜BK2に振り分けて格納され、データアクセス時に上位メモリバンク毎にデータの移動処理を行うものであり、データアクセス時における画素データの移動処理を少なくできる。
例えば、アクセスパターンACPが上述実施の形態にように12個の画素のパターンであるとき、初期格納時に、各画素列の画素データを、12個のメモリバンクに、それぞれ、開始位置に設定されたアクセスパターンACPで特定される12個の画素の画素データを先頭にして格納すると共に、データアクセス時に、アクセスパターンで特定される12個の画素の画素データが12個のメモリバンクに格納されているようにデータ移動処理を行うものにあっては、このデータ移動処理として11個分の移動処理が必要となるが、図1に示すデータアクセス装置110では、1個の上位メモリバンクでは3個分の移動処理でよく(図22参照)、3個の上位メモリバンクBK0〜BK2では合計で9個分の移動処理で済む。
また、図1に示すデータアクセス装置100によれば、アクセスパターンACPは、4個の中心画素IM1〜IM4および各中心画素の上下に位置する周辺画素IM1U〜IM4U,IM1D〜IM4Dのパターンであって、アクセスパターンACPを構成する画素の数が12個と多くなるが、上述したように第1〜第3の画素列の画素データのそれぞれを3個の上位メモリバンクBK0〜BK2に振り分けて格納し、またデータアクセス時に上位メモリバンク毎にデータの移動処理を行うものであり、データアクセス時における画素データの移動処理を少なくできる。
また、図1に示すデータアクセス装置100によれば、中心画素とその上下に位置する周辺画素からなる画素群が3本の画素列に渡っており、上述したように第1〜第3の画素列の画素データのそれぞれを3個の上位メモリバンクBK0〜BK2に振り分けて格納することで、各上位メモリバンクにおける下位メモリバンクの必要個数はそれぞれ4個であり、そのバラツキを抑えている。
また、図1に示すデータアクセス装置100によれば、データ格納制御部120からデータアクセス制御部140に各メモリバンクBK0〜BK5の読み出し開始アドレスRSおよび書き込み開始アドレスWSを与えるものであり、例えばこれらデータ格納制御部120およびデータアクセス制御部140を制御する制御装置が、アクセスパターンACPの情報に基づいて各下位メモリバンクの読み出し開始アドレスRSおよび書き込み開始アドレスWSを生成して、データアクセス制御部140に与えることが必要でなくなる。
なお、上述実施の形態においては、アクセスパターンACPは、図2に示すように、4個の中心画素IM1〜IM4、および各中心画素の上下に位置する8個の周辺画素IM1U,IM1D,IM2U,IM2D,IM3U,IM3D,IM4U,IM4Dからなる12個の画素のパターンであるが、これに限定されるものではない。例えば、中心画素の個数は4個に限られるものではなく、また周辺画素は、中心画素の上下に位置する代わりに、左右、上下左右、または斜め方向に位置するものであってもよく、さらには中心画素に隣接していなくてもよい。
また、上述実施の形態においては、アクセスパターンACPは、図2に示すように、中心画素と周辺画素とを組み合わせたパターンとして考えているが、必ずしも、中心画素と周辺画素とを組み合わせた画素パターンとして捉える必要はない。すなわち、この発明は、アクセスパターンACPが中心画素と周辺画素とを組み合わせた画素パターンであるか否かに拘わらず、当該アクセスパターンACPを構成する画素の数が大きい場合に有効なものとなる。
また、上述実施の形態においては、画面SRNにおける各画素列を第1〜第3の画素列の繰り返しであるとして、この第1〜第3の画素列の画素データをそれぞれ上位メモリバンクBK0〜BK2に振り分けて格納するものを示したが、上位メモリバンクの個数は3個に限定されない。一般にN個(Nは2以上の整数)の上位メモリバンクを使用する場合、画面SRNにおける各画素列は第1〜第Nの画素列の繰り返しであるとして、この第1〜第Nの画素列の画素データがそれぞれ第1〜第Nの上位メモリバンクに格納されることになる。このように第1〜第Nの上位メモリバンクを用いる場合、データ格納制御部120およびデータアクセス制御部140は、それぞれ、第1〜第Nの位相処理を行うことになる。
また、上述実施の形態においては、画面SRNが水平方向に伸びる画素列が垂直方向に順次配列された構成であるとし、初期格納時には、各画素列の画素を順に注目画素とし、この注目画素の画素データを各上位メモリバンクBK0〜BK2に振り分けて格納し、データアクセス時には、アクセスパターンACPの設定位置を画素列方向に移動した各設定位置で当該アクセスパターンACPで特定される12個の画素の画素データDo01〜Do12を同時に得るものを示したが、画面SRNが垂直方向に伸びる画素列が水平方向に順次配列された構成であるとして、初期格納時およびデータアクセス時の動作を行うように構成することもできる。
また、上述実施の形態においては、データ格納制御部120からデータアクセス制御部140に開始アドレスRS,WSを与えるものを示したが、これら開始アドレスRS,WSを、データ格納制御部120およびデータアクセス制御部140の動作を制御する制御装置から、データアクセス制御部140に与える構成とすることもできる。
100・・・データアクセス装置、110・・・メモリ部、111・・・入力端子、112・・・出力端子、BK0〜BK2・・・上位メモリバンク、BK00〜BK03,BK10〜BK13,BK20〜BK23・・・下位メモリバンク、120・・・データ格納制御部、121・・・カウンタ(カウンタA)、122・・・カウンタ(カウンタB)、123・・・一致判定部、124・・・上位バンクアドレスカウンタ、125・・・下位バンクアドレスカウンタ、126・・・ビット線アドレスカウンタ、127・・・ワードアドレス線カウンタ、128・・・アドレス生成部、140・・・データアクセス制御部、141・・・カウンタ、142・・・アドレスカウンタ制御部、143・・・読み出しアドレスカウンタ、144・・・書き込みアドレスカウンタ、145・・・読み出しアドレス生成部、146・・・書き込みアドレス生成部、150・・・入力端子