JP2000322312A - メモリアクセス制御装置およびその方法 - Google Patents

メモリアクセス制御装置およびその方法

Info

Publication number
JP2000322312A
JP2000322312A JP11121868A JP12186899A JP2000322312A JP 2000322312 A JP2000322312 A JP 2000322312A JP 11121868 A JP11121868 A JP 11121868A JP 12186899 A JP12186899 A JP 12186899A JP 2000322312 A JP2000322312 A JP 2000322312A
Authority
JP
Japan
Prior art keywords
data
block
written
blocks
image
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.)
Pending
Application number
JP11121868A
Other languages
English (en)
Inventor
Miharu Kato
藤 美 治 加
Kazuo Funadogawa
渡 川 和 男 船
Masanobu Ogata
方 正 暢 緒
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP11121868A priority Critical patent/JP2000322312A/ja
Priority to US09/545,079 priority patent/US6678804B1/en
Publication of JP2000322312A publication Critical patent/JP2000322312A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 画像印刷処理等のメモリアクセスの頻度を大
幅に少なくする。 【解決手段】 CPU100が、一度も書き込まれてい
ないバッファブロックから画像データを読み出す場合に
は、メモリコントローラ12は画像バッファ140から
は画像データを読み出さずに、予め記憶した初期データ
を返す。初めて画像データをバッファブロックに書き込
もうとする場合、メモリコントローラ12は、これを記
憶・管理し、このバッファブロックに、まず、初期デー
タを書き込んでから、画像データを書き込む。一度書き
込まれたバッファブロックに対して、読み出しあるいは
書き込み要求があった場合、メモリコントローラ12
は、要求通りにデータの読み出しあるいは書き込みを行
う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、大量のデータを処理す
るプリンタ装置等において、メモリに対するアクセス頻
度を減少させるメモリアクセス管理装置およびその方法
に関する。
【0002】
【従来の技術】例えば、600pbiのA4白黒画像デ
ータのデータ量は4MBであり、同じ解像度および大き
さのカラー画像データのデータ量は、その32倍の12
8MBにもなる。プリンタ装置においては、1枚の画像
を印刷するたびに、このような大量のデータが数回ず
つ、メモリに読み書きされる。このような大量のデータ
の読み書きのために、従来から、例えば、画像処理専用
のプロセッサを用いたり、また、CPUバスと画像デー
タ用のバスとを分離する等の高速化方法が採られてい
る。
【0003】しかしながら、これらの従来からの高速化
方法は、プリンタ装置の製造コストを上げてしまう。ま
た、例えば、毎分40枚の印刷を行う高速プリンタにお
いては、1.5秒ごとに512MB以上のデータ転送
(実際にはサイズ128MBの数個のデータの転送)お
よび描画処理が必要になるが、従来の高速化方法では、
このような大量のデータの転送・描画処理には対応でき
ない。
【0004】また、メモリへのアクセスの頻度を減少さ
せ、処理の高速化を図る方法として、キャッシュメモリ
を用いる方法がある。例えば、特開平5−225059
号公報および特開平4−100164号公報は、キャッ
シュメモリの管理方式を開示する。しかしながら、キャ
ッシュメモリの構成は通常、変更することができないの
で、キャッシュメモリの構成が、プログラムの処理内容
と適合しないと、メモリアクセス頻度を少なくするとい
う目的を十分に達成できなくなることがある。また、キ
ャッシュメモリを用いた場合、データが未だ書き込まれ
ていない領域に対する不要なアクセスを、完全になくす
ことができない。
【0005】
【発明が解決しようとする課題】本発明は、上述した従
来技術の問題点に鑑みてなされたものであり、画像印刷
処理等、非常の多くの量のデータを扱う処理において、
メモリアクセスの頻度を大幅に少なくすることができる
メモリアクセス管理装置およびその方法を提供すること
を目的とする。
【0006】また、本発明は、画像印刷処理等、キャッ
シュメモリを用いる等の従来の方法では、目的を達成す
ることが難しかった画像印刷処理等において、有効にメ
モリアクセスの頻度を少なくすることができるメモリア
クセス管理装置およびその方法を提供することを目的と
する。
【0007】また、本発明は、未だ何らのデータも書き
込まれず、内容が変更されていないメモリ領域に対する
無駄なアクセスを不要にして、メモリに対するアクセス
の頻度・回数を大幅に減らすことができるメモリアクセ
ス管理装置およびその方法を提供することを目的とす
る。
【0008】
【課題を達成するための手段】[第1のメモリアクセス
管理装置]上記目的を達成するために、本発明にかかる
第1のメモリアクセス管理装置は、データの読み出しお
よび書き込みが可能なメモリの記憶領域に設ける複数の
ブロックの指定を受け、これらのブロックそれぞれに対
するデータの書き込みが既に行われたか否かを管理する
書込管理手段と、前記複数のブロックに最初に書き込ま
れる初期データの設定を受け、前記複数のブロックのい
ずれかに対する読み出しアクセスが発生したときに、こ
のブロックに対するデータの書き込みが既に行われたか
否かに応じて、このブロックに書き込まれたデータ、ま
たは、このブロックに対して設定された前記初期データ
をアクセス元に返す読出アクセス制御手段を有する。
【0009】好適には、前記読出アクセス制御手段にお
いて、前記初期データは、前記複数のブロックに対して
共通に設定される。
【0010】好適には、前記読出アクセス制御手段は、
前記複数のブロックのいずれかに対する読み出しアクセ
スが発生したときに、このブロックに対して既にデータ
が書き込まれている場合には、このブロックからデータ
を読み出してアクセス元に返し、これ以外の場合には、
このブロックに対して設定された前記初期データをアク
セス元に返す。
【0011】[第2のメモリアクセス管理装置]データ
の読み出しおよび書き込みが可能なメモリの記憶領域に
設ける複数のブロックの指定を受け、これらのブロック
それぞれに対するデータの書き込みが既に行われたか否
かを管理する書込管理手段と、前記複数のブロックに最
初に書き込まれる初期データの設定を受け、前記複数の
ブロックのいずれかに対する書込アクセスが発生したと
きに、このブロックに対するデータの書き込みが既に行
われたか否かに応じて、設定された前記初期データおよ
び書込アクセスによりこのブロックに書き込まれる書込
データ、または、前記書込データを、このブロックに対
して書き込む書込アクセス制御手段を有する。
【0012】好適には、前記書込アクセス制御手段にお
いて、前記初期データは、前記複数のブロックに対して
共通に設定される。
【0013】好適には、前記書込アクセス制御手段は、
前記複数のブロックのいずれかに対する書込アクセスが
発生したときに、このブロックに対して既にデータが書
き込まれている場合には、このブロックに対して前記書
込データを書き込み、これ以外の場合には、このブロッ
クを、前記初期データを書き込んで、前記書込データを
書き込んだ状態にするデータを書き込む。
【0014】[本発明に係るメモリアクセス制御装置の
作用]本発明に係る(本願の)メモリアクセス制御装置
は、例えば、コンピュータ画面を生成する場合、およ
び、プリンタでオフィス文書をプリントアウトする場合
のように、同一内容の背景の面積が広い画像の画像デー
タを処理する画像処理の高速化に適している。本願のメ
モリアクセス制御装置は、例えば、画像データを記憶す
るメモリ領域を、画像処理プログラムによる設定に応じ
て、それぞれ背景画像に対応した複数のブロックに分割
して使用し、各ブロックに記憶されるべき背景画像のデ
ータ(初期データ)の設定を画像処理プログラムから受
ける。
【0015】本願のメモリアクセス制御装置は、画像処
理プログラムが、あるブロックに一番最初の書き込みア
クセスを行うと、初めて、このブロックに対して背景画
像データ(初期データ)を書き込み、さらに、画像処理
プログラムが書き込もうとしたデータを書き込む。本願
のメモリアクセス制御装置は、これ以降、既に書き込み
アクセスされたブロックに対して、さらに書き込みアク
セスが生じた場合には、初期データの書き込みは行わ
ず、画像処理プログラムが書き込もうとしたデータだけ
を書き込む。
【0016】なお、本願のメモリアクセス制御装置は、
あるブロックに対して書き込みアクセスがなく、読み出
しアクセスだけが生じているような場合には、このブロ
ックからデータを読み出して画像処理プログラムに返す
代わりに、初期データを画像処理プログラムに返す。こ
のように、背景となる部分の画像データを、書き込みア
クセスが生じるまで実際にはメモリに書き込まず、設定
された初期データを返すことにより、本願のメモリアク
セス制御装置は、書き込みアクセスされないブロックへ
初期データ(背景データ)を書き込む処理を省略して、
メモリアクセスを省略する。
【0017】[書込管理手段]書込管理手段は、例え
ば、メモリの記憶領域を分割して得られたブロックそれ
ぞれに対応してデータを記憶する管理テーブルを有し、
これらのブロックそれぞれに対して、全く書き込みアク
セスが生じていないか、あるいは、1回以上、書き込み
アクセスが生じたかを管理する。
【0018】[読出アクセス制御手段]読出アクセス制
御手段は、例えば、初期データとして、背景画像のデー
タの設定を受け、あるブロックに対して読み出しアクセ
スが生じると、管理テーブルを参照し、読み出しアクセ
スされたブロックに対応するテーブル内のデータが、こ
のブロックに対して1回も書き込みアクセスが生じてい
ないことを示している場合には、設定された初期データ
を、読み出しアクセスを行ったプログラム等に返す。ま
た、読出アクセス制御手段は、読み出しアクセスされた
ブロックに対応するテーブル内のデータが、このブロッ
クに対して既に1回以上、書き込みアクセスが生じたこ
とを示している場合には、読み出しアクセスされたブロ
ックから実際に読み出したデータを、読み出しアクセス
を行ったプログラム等に返す。
【0019】[書込アクセス制御手段]書込アクセス制
御手段は、同様に、初期データとして、例えば、背景画
像のデータの設定を受け、あるブロックに対して書き込
みアクセスが生じると、管理テーブルを参照し、書き込
みアクセスされたブロックに対応するテーブル内のデー
タが、このブロックに対して1回も書き込みアクセスが
生じていないことを示している場合には、設定された初
期データを、このブロックに書き込み、さらに、書き込
みアクセスによりこのブロックに書き込まれるべきデー
タを書き込む。また、書込アクセス制御手段は、書き込
みアクセスされたブロックに対応するテーブル内のデー
タが、このブロックに対して既に1回以上、書き込みア
クセスが生じたことを示している場合には、単に書き込
まれるべきデータを、このブロックに書き込む。
【0020】[第1のメモリアクセス管理方法]また、
本発明にかかる第1のメモリアクセス管理方法は、デー
タの読み出しおよび書き込みが可能なメモリの記憶領域
に設ける複数のブロックの指定を受け、これらのブロッ
クそれぞれに対するデータの書き込みが既に行われたか
否かを管理し、前記複数のブロックに最初に書き込まれ
る初期データの設定を受け、前記複数のブロックのいず
れかに対する読み出しアクセスが発生したときに、この
ブロックに対するデータの書き込みが既に行われたか否
かに応じて、このブロックに書き込まれたデータ、また
は、このブロックに対して設定された前記初期データを
アクセス元に返す。
【0021】[第2のメモリアクセス管理方法]また、
本発明にかかる第2のメモリアクセス管理方法は、デー
タの読み出しおよび書き込みが可能なメモリの記憶領域
に設ける複数のブロックの指定を受け、これらのブロッ
クそれぞれに対するデータの書き込みが既に行われたか
否かを管理し、前記複数のブロックに最初に書き込まれ
る初期データの設定を受け、前記複数のブロックに対す
る書込アクセスが発生したときに、このブロックに対す
るデータの書き込みが既に行われたか否かに応じて、設
定された前記初期データおよび書込アクセスによりこの
ブロックに書き込まれる書込データ、または、前記書込
データを、このブロックに対して書き込む。
【0022】
【発明の実施の形態】以下、本発明の実施形態を説明す
る。
【0023】[画像データ処理装置1]図1は、本発明
にかかる画像データ処理装置1の構成を示す図である。
図1に示すように、画像データ処理装置1は、CPU1
00と、メモリコントローラ12と、RAM14とが、
アドレスバス(AD)、バス102を介して接続されて
構成される。なお、バス102には、アドレスバス(A
D)、データバス(DATA)および制御バス(CN
T)とが含まれ、CPU100とメモリコントローラ1
2との間は、これら3種類のバスにより接続される。ア
ドレス情報は、アドレスバス(AD)を介して、CPU
100からメモリコントローラ12およびRAM14に
対して出力され、データは、データバス(DATA)を
介して、これらの構成部分の間で送受信される。制御信
号は、制御バス(CNT)を介してCPU100からメ
モリコントローラ12に対して出力され、メモリコント
ローラ12を介して制御信号(CNT’)としてRAM
14に対して出力される。
【0024】[CPU100,RAM14]CPU10
0は、例えば、汎用マイクロプロセッサ、あるいは、信
号処理用プロセッサ(DSP)であって、RAM14に
記憶された画像処理用のプログラム(処理プログラム1
10)を実行し、同じくRAM14の画像バッファ14
0の領域内に記憶された画像データを処理する。
【0025】[メモリコントローラ12の構成・概要]
図2は、図1に示したメモリコントローラ部12の構成
を示す図である。図2に示すように、メモリコントロー
ラ12は、コマンドプロセッサ120、データ読出部1
22、データ書込部124、コントロールベクタ13
0、パターンレジスタ132および内部レジスタ134
から構成される。以下、メモリコントローラ12がハー
ドウェア的に構成される場合を具体例として説明する。
メモリコントローラ12は、これらの構成部分により、
RAM14(画像バッファ140)に対する初期設定な
しに、CPU100(処理プログラム110)が画像処
理を行うことを可能にする。
【0026】[制御信号生成]メモリコントローラ12
は、CPU100(処理プログラム110)が発行する
コマンドに応じて、RAM14の動作を制御する読み出
し・書き込み用の制御信号(CNT’)を生成し、RA
M14に対して出力する。
【0027】[画像バッファ140のブロック分け・管
理]図3(A)は、画像データの分割方法を例示する図
であり、(B)は、図1に示したCPU100(処理プ
ログラム110)がRAM14に書き込もうとする図形
画像を例示する図であり、(C)は、(B)に示した図
形画像が書き込まれるブロックを示す図である。図4
は、図1に示した画像バッファ140に含まれるバッフ
ァブロックの構成を例示する図である。以下、例えば、
図3(A)に例示するように、1フレーム分の画像を1
6×12(192)個の画像ブロックに分割し、これら
の画像ブロックそれぞれに、一般に壁紙等とも呼ばれる
同一内容の1ワード分のデータ量のデータブロック(初
期データ)が初期設定される場合を具体例とする。
【0028】メモリコントローラ12は、CPU100
が実行する処理プログラム110による設定を受け入れ
て、図3(A)に例示した192個の画像ブロックSB
[0,0]〜SB[11,15]の画像データそれぞれ
を記憶する192個のバッファブロックSB[0]〜S
B[n](n=192、以下、特記なき場合には、1つ
のバッファブロックに1ワード分のデータが記憶される
場合を具体例に説明する;図4)を含む画像バッファ1
40をRAM14上に作成し、これらのブロックそれぞ
れに初期設定される上記初期データの設定を受ける。さ
らに、メモリコントローラ12は、CPU100(処理
プログラム110)が、上記複数のブロックそれぞれに
対して画像データを書き込んだか否かを管理する。
【0029】なお、図4に示すように、この画像バッフ
ァの領域およびそのブロック分けは、画像バッファ領域
の開始アドレス(スタートアドレス; Start Addres
s)、画像バッファ領域の終了アドレス(エンドアドレ
ス; End Address)、RAM14のデータ幅を示すライ
ン幅(Line Width)、各バッファブロックのデータ幅を示
すブロック幅(Block Width)、および、各バッファブロ
ックのライン数を示すブロック高(Block Height)の各パ
ラメータにより定義される。
【0030】[アクセス管理]メモリコントローラ12
は、下記の2種類のアクセス管理を行う。
【0031】[1.未書込ブロックのアクセス管理]C
PU100(処理プログラム110;図1)が、一度も
画像データが書き込まれていないバッファブロック(図
4)から画像データを読み出す場合には、メモリコント
ローラ12は、RAM14の画像バッファ140から画
像データを読み出さずに、設定された初期データをCP
U100(処理プログラム110)に返す。CPU10
0(処理プログラム110)が、一度も画像データが書
き込まれていないバッファブロックに対して、初めて画
像データを書き込む場合には、メモリコントローラ12
は、このブロックに画像データが書き込まれたことを記
憶・管理するとともに、このバッファブロックに、ま
ず、初期データを書き込み、さらに、CPU100(処
理プログラム110)が書き込もうとした画像データを
書き込む。
【0032】[2.書込済ブロックのアクセス管理]C
PU100(処理プログラム110)が、既に画像デー
タを書き込んだことがあるバッファブロック(図4)に
対して画像データを書き込む場合には、メモリコントロ
ーラ12は、CPU100(処理プログラム110)が
書き込もうとする画像データをそのまま、このバッファ
ブロックに書き込む。また、CPU100(処理プログ
ラム110)が、既に画像データを書き込んだことがあ
るブロックから画像データを読み出す場合には、メモリ
コントローラ12は、実際にこのブロックから画像デー
タを読み出してCPU100(処理プログラム110)
に対して出力する。
【0033】[コントロールベクタ130]メモリコン
トローラ12(図1,2)において、コントロールベク
タ130は、RAM14上の画像バッファ140のバッ
ファブロックSB[0]〜SB[n](図4;但し、本
実施形態においてはn=191)それぞれに対応するコ
ントロールベクタCV[i](0≦i≦n)の設定を受
け入れて保持する。コントロールベクタ130に記憶さ
れたコントロールベクタCV[i]は、1(画像バッフ
ァ140のバッファブロックSB[i]に、既に画像デ
ータが書き込まれたことを示す)または0(画像バッフ
ァ140のバッファブロックSB[i]に、まだ画像デ
ータが書き込まれていないことを示す)の値を採り、上
述した画像バッファ140の各バッファブロック(図
4)へのアクセス制御に用いられる。
【0034】[パターンレジスタ132]パターンレジ
スタ132(PRとも表記する)は、RAM14上の画
像バッファ140のバッファブロックそれぞれに設定さ
れる初期データを受け入れて保持する。なお、以下、説
明の簡略化のために、画像バッファ140のバッファブ
ロックの全てに、共通の初期データが設定される場合を
具体例とする。
【0035】[内部レジスタ134]内部レジスタ13
4は、内部に、複数のレジスタ(SAR,EAR,BW
R,LWR,MR)を含み、上述した画像バッファ14
0の各パラメータの設定を受け入れて保持する。なおこ
れらのレジスタの内、レジスタSAR(Start Address R
egister)は、画像バッファ140のスタートアドレス
(図4)を保持する。また、レジスタEAR(End Addre
ss Register)は、画像バッファ140のエンドアドレス
(図4)を保持する。また、レジスタBWR(Block Wid
th Register)は、画像バッファ140の各バッファブロ
ックSB[i]のブロック幅(図4)を保持する。ま
た、レジスタLWR(Line Width Register)は、RAM
14のライン幅(図4)を保持する。また、レジスタM
R(Mode Register)は、メモリコントローラ12が動
作可能状態におかれているか否かを示すフラグ(値1で
使用可、値0で使用不可を示す)を保持する。
【0036】[コマンドプロセッサ120の処理の概
要]コマンドプロセッサ120(図2)は、CPU10
0(処理プログラム110)から入力されるコマンドに
応じて、初期データ、画像バッファ140の領域設定お
よびブロック分け等の設定を受け入れ、コントロールベ
クタ130、パターンレジスタ132および内部レジス
タ134に対して設定する。また、コマンドプロセッサ
120は、CPU100(処理プログラム110)から
のコマンドに応じて、コントロールベクタ130、パタ
ーンレジスタ132および内部レジスタ134が保持し
ているデータを読み出して、CPU100(処理プログ
ラム110)に通知する。また、コマンドプロセッサ1
20は、CPU100(処理プログラム110)からの
コマンドに応じて、メモリコントローラ12を動作状態
(使用可能)または不動状態(使用不可)とする。
【0037】[コマンドプロセッサ120の処理の詳
細]以下、コマンドプロセッサ120の処理の詳細を説
明する。まず、CPU100(処理プログラム110)
からコマンドプロセッサ120に対して発行されるコマ
ンド(命令)の一覧を下表に示し、説明する。
【0038】
【表1】(表1)コマンドプロセッサ120に対するコ
マンド一覧: (1)SetStartAddress(start):スタートアドレス(図4)
を受け入れさせる (2)SetEndAddress(end):エンドアドレス(図4)を受け
入れさせる (3)SetBlockWidth(w):ブロック幅(図4)を受け入れさ
せる (4)SetBlockHeight(h):ブロック高(図4)を受け入れ
させる (5)SetLineWidth(lw):ライン幅(図4)を受け入れさせ
る (6)SetPattern(Pattern):初期データ(Pattern)を受け入
れさせる (7)Enable:メモリコントローラ12を使用可能にする (8)Disable:メモリコントローラ12を使用不可にする (9)ClearAllBlock:コントロールベクタ130の内容を
全てゼロクリアさせる (10)ClearBlock(block):コントロールベクタ130の指
定したブロックの内容をゼロクリアさせる (11)GetStartAddress:スタートアドレス(図4)を問い
合わせる (12)GetEndAddress:エンドアドレス(図4)を問い合わ
せる。 (13)GetBlockWidth:ブロック幅(図4)を問い合わせ
る。 (14)GetLineHeight:ライン幅(図4)を問い合わせる (15)GetLineWidth:ライン幅を問い合わせる (16)GetPattern:初期データ(Pattern)を問い合わせる (17)GetStatus:メモリコントローラ12が使用可能か否
かを問い合わせる (18)GetBlockStatus(block):コントロールベクタ130
の指定したブロックの内容を問い合わせる。
【0039】表1に示したコマンド(命令(メモリーマ
ップトIOあるいはIO命令等を含む))は、CPU1
00(処理プログラム110)からバス102を介して
メモリコントローラ12に対して発行され、これらのコ
マンドの内、(1)SetStartAddress(start):は、CPU1
00(処理プログラム110)がコマンドプロセッサ1
20にスタートアドレス(図4)を受け入れさせるため
に用いられる。 (2)SetEndAddress(end):は、処理プログラム110がコ
マンドプロセッサ120にエンドアドレス(図4)を受
け入れさせるために用いられる。 (3)SetBlockWidth(w):は、処理プログラム110がコマ
ンドプロセッサ120にブロック幅(図4)を受け入れ
させるために用いられる。 (4)SetBlockHeight(h):は、処理プログラム110がコ
マンドプロセッサ120にブロック高(図4)を受け入
れさせるために用いられる。 (5)SetLineWidth(lw):は、処理プログラム110がコマ
ンドプロセッサ120にライン幅(図4)を受け入れさ
せるために用いられる。 (6)SetPattern(Pattern):は、処理プログラム110が
コマンドプロセッサ120に初期データ(Pattern)を受
け入れさせるために用いられる。
【0040】(7)Enable:は、処理プログラム110がメ
モリコントローラ12を使用可能にするために用いられ
る。 (8)Disable:は、処理プログラム110がメモリコント
ローラ12を使用不可にするために用いられる。 (9)ClearAllBlock:は、処理プログラム110がコマン
ドプロセッサ120に、コントロールベクタ130の内
容を全てゼロクリアさせるために用いられる。 (10)ClearBlock(block):は、処理プログラム110がコ
マンドプロセッサ120に、コントロールベクタ130
の指定したブロックの内容をゼロクリアさせるために用
いられる。
【0041】(11)GetStartAddress:は、処理プログラム
110がコマンドプロセッサ120にスタートアドレス
(図4)を問い合わせるために用いられる。 (12)GetEndAddress:は、処理プログラム110がコマン
ドプロセッサ120にエンドアドレス(図4)を問い合
わせるために用いられる。 (13)GetBlockWidth:は、処理プログラム110がコマン
ドプロセッサ120にブロック幅(図4)を問い合わせ
るために用いられる。 (14)GetBlockHeight:は、処理プログラム110がコマ
ンドプロセッサ120にブロック幅(図4)を問い合わ
せるために用いられる。 (15)GetLineWidth:は、処理プログラム110がコマン
ドプロセッサ120にライン幅を問い合わせるために用
いられる。 (16)GetPattern:は、処理プログラム110がコマンド
プロセッサ120に初期データ(Pattern)を問い合わせ
るために用いられる。 (17)GetStatus:は、処理プログラム110がコマンドプ
ロセッサ120に、メモリコントローラ12が使用可能
か否かを問い合わせるために用いられる。 (18)GetBlockStatus(block):は、処理プログラム110
がコマンドプロセッサ120に、コントロールベクタ1
30の指定したブロックの内容を問い合わせるために用
いられる。
【0042】図5を参照して、さらに詳細に説明する。
図5は、図2に示したコマンドプロセッサ120の処理
(S10)を示すフローチャートである。図5に示すよ
うに、ステップ100(S100)において、コマンド
プロセッサ120は、CPU100(処理プログラム1
10)からバス102を介して入力されるデータを解析
し、入力されたデータが、表1に示したコマンドのいず
れかであるか否かを判断する。入力されたデータがコマ
ンドでない場合には処理を終了し、これ以外の場合に
は、入力されたコマンドの種類に応じて、S102〜S
136のいずれかの処理に進む。なお、図5において、
dは、これは一時的なデータを保持するために内部レジ
スタ134内に設けられたレジスタdあるいはRAM1
4に設けられた記憶領域(図示せず)である。
【0043】例えば、表1に示したコマンド"(11)GetSt
artAddress"に対して、コマンドプロセッサ120は、
内部レジスタ134のレジスタSARに保持されたデー
タをCPU100(処理プログラム110)に返す必要
があるが、このような場合に、コマンドプロセッサ12
0は、レジスタから読み出したデータを直接CPU10
0(処理プログラム110)に返さず、記憶領域dを介
してCPU100(処理プログラム110)に返す。な
お、以下の各図において、単なる"Return"は処理
の終了を示し、"Retun(d)"は、ここで説明した
ような処理を示す。
【0044】入力されたコマンドが、CPU100(処
理プログラム110)がコマンドプロセッサ120にス
タートアドレス(図4)を受け入れさせるために用い
る"(1)SetStartAddress(start;表1)"である場合、
ステップ102(S102)において、コマンドプロセ
ッサ120は、このコマンドと並行してCPU100
(処理プログラム110)からデータバス(DATA)
を介して入力されるスタートアドレス(start)を、内部
レジスタ134のレジスタSARに設定する。
【0045】入力されたコマンドが、CPU100(処
理プログラム110)がコマンドプロセッサ120にエ
ンドアドレス(図4)を受け入れさせるために用いる"
(2)SetEndAddress(end;表1)"である場合、ステップ
104(S104)において、コマンドプロセッサ12
0は、このコマンドと並行してCPU100(処理プロ
グラム110)からデータバス(DATA)を介して入
力されるエンドアドレス(end)を、内部レジスタ134
のレジスタEARに設定する。
【0046】入力されたコマンドが、CPU100(処
理プログラム110)がコマンドプロセッサ120にブ
ロック幅(図4)を受け入れさせるために用いる"(3)Se
tBlockWidth(w;表1)"である場合、ステップ106
(S106)において、コマンドプロセッサ120は、
このコマンドと並行してCPU100(処理プログラム
110)からデータバス(DATA)を介して入力され
るブロック幅(w)を、内部レジスタ134のレジスタB
WRに設定する。
【0047】入力されたコマンドが、CPU100(処
理プログラム110)がコマンドプロセッサ120にブ
ロック高(図4)を受け入れさせるために用いる"(4)Se
tBlockHeight(h;表1)"である場合、ステップ108
(S108)において、コマンドプロセッサ120は、
このコマンドと並行してCPU100(処理プログラム
110)からデータバス(DATA)を介して入力され
るブロック高(h)を、内部レジスタ134のレジスタB
HRに設定する。
【0048】入力されたコマンドが、CPU100(処
理プログラム110)がコマンドプロセッサ120にラ
イン幅(図4)を受け入れさせるために用いる"(5)SetL
ineWidth(lw;表1)"である場合、ステップ110
(S110)において、コマンドプロセッサ120は、
このコマンドと並行してCPU100(処理プログラム
110)からデータバス(DATA)を介して入力され
るライン幅(lw)を、内部レジスタ134のレジスタLW
Rに設定する。
【0049】入力されたコマンドが、CPU100(処
理プログラム110)がコマンドプロセッサ120に初
期データを受け入れさせるために用いる"(6)SetPattern
(Pattern;表1)"である場合、ステップ112(S1
12)において、コマンドプロセッサ120は、このコ
マンドと並行してCPU100(処理プログラム11
0)からデータバス(DATA)を介して入力される初
期データ(Pattern)を、内部レジスタ134に設定す
る。
【0050】入力されたコマンドが、CPU100(処
理プログラム110)がメモリコントローラ12を使用
可能とするために用いる"(7)Enable(表1)"である場
合、ステップ114(S114)において、コマンドプ
ロセッサ120は、内部レジスタ134のレジスタMR
に値1を設定し、メモリコントローラ12を使用可能な
状態とする。
【0051】入力されたコマンドが、CPU100(処
理プログラム110)がメモリコントローラ12を使用
不可にするために用いる"(8)Disable(表1)"である場
合、ステップ116(S116)において、コマンドプ
ロセッサ120は、内部レジスタ134のレジスタMR
に値0を設定し、メモリコントローラ12を使用不可の
状態とする。
【0052】入力されたコマンドが、CPU100(処
理プログラム110)がコントロールベクタ130の全
てのコントロールベクタをゼロクリアするために用い
る"(9)ClearAllBlocks(表1)"である場合、ステップ
118(S118)において、コマンドプロセッサ12
0は、コントロールベクタ130の全てのコントロール
ベクタCV[0]〜CV[n]の値を0とする。
【0053】入力されたコマンドが、CPU100(処
理プログラム110)が、コントロールベクタ130の
コントロールベクタの内、指定したいずれかをゼロクリ
アするために用いる"(10)ClearBlock(block;表1)"で
ある場合、ステップ120(S120)において、コマ
ンドプロセッサ120は、このコマンドと並行してCP
U100(処理プログラム110)からデータバス(D
ATA)を介して入力されるデータ(block)が指定する
コントロールベクタ130のコントロールベクタCV
[block]の値を0とする。
【0054】入力されたコマンドが、CPU100(処
理プログラム110)が、内部レジスタ134のレジス
タSARに設定されたスタートアドレスを問い合わせる
ために用いる"(11)GetStartAddress(表1)"である場
合、ステップ122(S122)において、コマンドプ
ロセッサ120は、内部レジスタ134のレジスタSA
Rに設定されたスタートアドレスを読み出し、データバ
ス(DATA)を介してCPU100(処理プログラム
110)に対して出力する(d←SAR)。
【0055】入力されたコマンドが、CPU100(処
理プログラム110)が、内部レジスタ134のレジス
タEARに設定されたエンドアドレス(図4)を問い合
わせるために用いる"(12)GetEndAddress(表1)"であ
る場合、ステップ124(S124)において、コマン
ドプロセッサ120は、内部レジスタ134のレジスタ
EARに設定されたエンドアドレスを読み出し、データ
バス(DATA)を介してCPU100(処理プログラ
ム110)に対して出力する(d←EAR)。
【0056】入力されたコマンドが、CPU100(処
理プログラム110)が、内部レジスタ134のレジス
タBWRに設定されたブロック幅(図4)を問い合わせ
るために用いる"(13)GetBlockWidth(表1)"である場
合、ステップ126(S126)において、コマンドプ
ロセッサ120は、内部レジスタ134のレジスタBW
Rに設定されたブロック幅を読み出し、データバス(D
ATA)を介してCPU100(処理プログラム11
0)に対して出力する(d←BWR)。
【0057】入力されたコマンドが、CPU100(処
理プログラム110)が、内部レジスタ134のレジス
タBHRに設定されたブロック高(図4)を問い合わせ
るために用いる"(14)GetBlockHeight(表1)"である場
合、ステップ128(S128)において、コマンドプ
ロセッサ120は、内部レジスタ134のレジスタLW
Rに設定されたライン長を読み出し、データバス(DA
TA)を介してCPU100(処理プログラム110)
に対して出力する(d←LWR)。
【0058】入力されたコマンドが、CPU100(処
理プログラム110)が、内部レジスタ134のレジス
タLWRに設定されたライン幅(図4)を問い合わせる
ために用いる"(15)GetLineWidth(表1)"である場合、
ステップ130(S130)において、コマンドプロセ
ッサ120は、内部レジスタ134のレジスタBHRに
設定されたブロック高を読み出し、データバス(DAT
A)を介してCPU100(処理プログラム110)に
対して出力する(d←BHR)。
【0059】入力されたコマンドが、CPU100(処
理プログラム110)が、パターンレジスタ132(P
R)に設定された初期データを問い合わせるために用い
る"(16)GetPattern(表1)"である場合、ステップ13
2(S132)において、コマンドプロセッサ120
は、パターンレジスタ132に設定された初期データ(P
attern)を読み出し、データバス(DATA)を介して
CPU100(処理プログラム110)に対して出力す
る(d←PR)。
【0060】入力されたコマンドが、CPU100(処
理プログラム110)が、内部レジスタ134のレジス
タMRの内容を問い合わせるために用いる"(17)GetStat
us(表1)"である場合、ステップ134(S134)
において、コマンドプロセッサ120は、内部レジスタ
134のレジスタMRに設定された値(Status)を読み出
し、データバス(DATA)を介してCPU100(処
理プログラム110)に対して出力する(d←MR)。
【0061】入力されたコマンドが、CPU100(処
理プログラム110)が、コントロールベクタ130が
保持しているコントロールベクタの内、指定されたいず
れかの内容を問い合わせるために用いる"(18)GetBlockS
tatus(表1)"である場合、ステップ136(S13
6)において、コマンドプロセッサ120は、このコマ
ンドと並行してCPU100(処理プログラム110)
からデータバス(DATA)を介して入力されるデータ
(block)が指定するコントロールベクタCV[block]の
値を読み出し、データバス(DATA)を介してCPU
100(処理プログラム110)に対して出力する(d
←CV[block])。
【0062】[データ読出部122]データ読出部12
2は、CPU100(処理プログラム110)がRAM
14のデータを読み出すために用いるコマンドに応じ
て、パターンレジスタ132(図2)から初期データを
読み出してCPU100(処理プログラム110)に返
し、あるいは、CPU100(処理プログラム110)
が、アドレスバス(AD)を介して指定したRAM14
のアドレスからデータを読み出してCPU100(処理
プログラム110)に返す。つまり、データ読出部12
2は、上述したアクセス管理の内、CPU100(処理
プログラム110)がRAM14からデータを読み出す
際のアクセス管理を行う。
【0063】[データ読出部122の処理の詳細]図6
を参照して、データ読出部122の処理をさらに説明す
る。図6は、図2に示したデータ読出部122の処理
(S20)を示すフローチャートである。図6に示すよ
うに、ステップ200(S200)において、CPU1
00(処理プログラム110)は、アドレスバス(A
D)を介してアドレスaを指定し、RAM14から1ワ
ード分のデータを読み出すコマンドReadData
(a)をバス102を介してデータ読出部122に対し
て発行する。
【0064】ステップ202(S202)において、デ
ータ読出部122は、内部レジスタ134のレジスタM
Rを読み出し、レジスタMRに設定された値が1である
か否かを判断する。レジスタMRに設定された値が1で
ある場合(メモリコントローラ12が使用可能の場合)
には、データ読出部122はS204の処理に進み、こ
れ以外の場合にはS210の処理に進む。
【0065】ステップ204(S204)において、デ
ータ読出部122は、S200の処理において、CPU
100(処理プログラム110)により指定されたアド
レスaが、内部レジスタ134のレジスタSAR,EA
Rに設定されたスタートアドレスとエンドアドレス(図
4)との間の範囲に含まれるか否かを判断する。アドレ
スaが、スタートアドレスとエンドアドレスの間の範囲
に含まれる場合、つまり、アドレスaが画像バッファ1
40の範囲内である場合にはS206の処理に進み、こ
れ以外の場合にはS210の処理に進む。
【0066】ステップ206(S206)において、デ
ータ読出部122は、アドレスaからスタートアドレス
(レジスタSARの内容)を減じた値を、ライン幅(図
4)およびブロック高で除算した結果r(r=(a−S
AR)/LWR/BHR;但し、X/Yは、XをYで整
数除算した商を示す)を算出する。また、データ読出部
122は、アドレスaからスタートアドレスを減じた値
(a−SAR)を、ライン幅(図4)で整数除算した場
合の剰余をブロック幅で整数除算した値c(c=(a−
SAR)%LWR/BWR);ただし、X%Yは、Xを
Yで除算した場合のXの剰余を示す)を算出する。さら
に、データ読出部122は、算出結果r,cを乗算し、
乗算結果i(i=r×c)を求める。なお、この乗算結
果iは、アドレスaが、画像バッファ140のいずれの
バッファブロックSB[i](図4)に含まれるかを示
す。
【0067】ステップ208(S208)において、デ
ータ読出部122は、S206の処理において得られた
乗算結果iが示す画像バッファ140のバッファブロッ
クSB[i]に対応するコントロールベクタCV[i]
をコントロールベクタ130から読み出し、コントロー
ルベクタCV[i]の値が1であるか否かを判断する。
コントロールベクタCV[i]の値が1である場合、デ
ータ読出部122はS210の処理に進み、これ以外の
場合にはS212の処理に進む。
【0068】ステップ210(S210)において、デ
ータ読出部122は、RAM14が、CPU100(処
理プログラム110)からアドレスバス(AD;図1)
を介して入力されるアドレスに記憶されたデータをCP
U100(処理プログラム110)に返す制御信号(C
NT')を生成する。この制御信号(CNT')に応じ
て、RAM14は、指定されたアドレスに記憶されたデ
ータを、データバス(DATA;図1)を介してCPU
100(処理プログラム110)に対して出力する(d
←RAM[a])。つまり、データ読出部122は、ア
ドレスaから実際に1ワード分のデータを読み出して、
CPU100(処理プログラム110)に対して出力す
るようにRAM14を制御する。
【0069】ステップ212(S212)において、デ
ータ読出部122は、アドレスaが、初期データを記憶
するパターンレジスタ132(PR)のいずれのアドレ
スに対応するかを演算し、演算の結果として得られたパ
ターンレジスタ132のアドレスから、1ワード分のデ
ータを読み出して、データバス(DATA)を介してC
PU100(処理プログラム110)に対して出力する
(d←PR)。
【0070】[データ書込部124]データ書込部12
4は、CPU100(処理プログラム110)がRAM
14にデータを書き込むために用いるコマンドおよびア
ドレスaと、アドレスaに対応するコントロールベクタ
CV[i]の値とに基づいて、上述したアクセス管理の
内、RAM14に対するデータの書き込みに関するアク
セス管理を行う。
【0071】つまり、データ書込部124は、CPU1
00(処理プログラム110)が指定したアドレスaに
対応するバッファブロック(図4)のコントロールベク
タCV[i]の値が0(まだデータがこのバッファブロ
ックに書き込まれていないことを示す)である場合に
は、パターンレジスタ132(図2)から初期データを
読み出して、アドレスaを含むブロックに書き込んで、
このバッファブロックを初期化し、さらに、アドレスa
に、CPU100(処理プログラム110)が書き込も
うとしたデータを書き込むようにRAM14を制御す
る。反対に、アドレスaに対応するバッファブロック
(図4)のコントロールベクタCV[i]の値が1(既
にデータがこのバッファブロックに書き込まれているこ
とを示す)である場合には、CPU100(処理プログ
ラム110)が書き込もうとするデータを、そのままア
ドレスaに書き込むようにRAM14を制御する。
【0072】図7を参照して、データ書込部124の動
作をさらに説明する。図7は、図2に示したデータ書込
部124の処理(S30)を示すフローチャートであ
る。図7に示すように、ステップ300(S300)に
おいて、CPU100(処理プログラム110)は、ア
ドレスバス(AD)を介してRAM14の書き込み先ア
ドレスaを指定し、データバス(DATA)を介してR
AM14に書き込もうとするデータdを指定して制御信
号CNTを生成し、データをRAM14に書き込むコマ
ンド(WriteData(a,d))として、データ
書込部124に対して発行する。
【0073】ステップ302(S302)において、デ
ータ書込部124は、内部レジスタ134のレジスタM
Rの値を読み出して、値が1である場合(メモリコント
ローラ12が使用可の場合)にはS304の処理に進
み、これ以外の場合にはS314の処理に進む。
【0074】ステップ304(S304)において、デ
ータ書込部124は、アドレスaが、内部レジスタ13
4のレジスタSARに保持されている画像バッファ14
0のスタートアドレスと、同じくレジスタEARに保持
されているエンドアドレスとの間の範囲に含まれるか否
かを判断する。アドレスaがこの範囲に含まれる場合に
は、データ書込部124はS306の処理に進み、これ
以外の場合にはS314の処理に進む
【0075】ステップ306(S306)において、デ
ータ書込部124は、アドレスaからスタートアドレス
を減算した値を、ライン幅(図4)およびブロック高で
整数除算した結果r(r=(a−SAR)/LWR/B
HR)を算出する。また、データ書込部124は、アド
レスaからスタートアドレスを減算した値を、ライン幅
(図4)で除算した場合の剰余をブロック幅で整数除算
した値c(c=(a−SAR)%LWR/BHR)を算
出する。さらに、データ書込部124は、算出結果r,
cを乗算し、乗算結果i(i=r×c)を求める。な
お、この乗算結果iは、アドレスaが、画像バッファ1
40のいずれのバッファブロックSB[i](図4)に
含まれるかを示す。
【0076】ステップ308(S308)において、デ
ータ書込部124は、S306の処理において得られた
乗算結果iが示す画像バッファ140のバッファブロッ
クSB[i]に対応するコントロールベクタCV[i]
をコントロールベクタ130から読み出し、コントロー
ルベクタCV[i]の値が1であるか否かを判断する。
コントロールベクタCV[i]の値が1である場合、デ
ータ書込部124はS310の処理に進み、これ以外の
場合にはS314の処理に進む。
【0077】ステップ310(S310)において、デ
ータ書込部124は、コントロールベクタ130に記憶
されたコントロールベクタCV[i]の値を1に設定す
る。
【0078】ステップ312(S312)において、デ
ータ書込部124は、バッファブロックSB[i]に、
パターンレジスタ132に記憶された初期データを設定
する。
【0079】ステップ314(S314)において、デ
ータ書込部124は、アドレスaに、データdを書き込
む制御信号(CNT')をRAM14に対して出力し、
アドレスaにデータdを書き込むようにRAM14を制
御する。
【0080】[画像データ処理装置1の動作]以下、画
像データ処理装置1の動作を全体を通して説明する。
【0081】[レジスタ設定等]画像データ処理装置1
(図1)のメモリコントローラ12において、コマンド
プロセッサ120(図2)は、CPU100(処理プロ
グラム110)から制御バスを介して入力されるコマン
ド(表1)に応じて、データバス(DATA)を介して
入力される画像バッファ140のパラメータ(図4)等
を、図5を参照して説明したように、内部レジスタ13
4のレジスタSAR,EAR,BWR,LWR,MRそ
れぞれに設定する。また、コマンドプロセッサ120
は、CPU100(処理プログラム110)からの問い
合わせに応じて、内部レジスタ134の各レジスタに設
定されたパラメータを読み出し、CPU100(処理プ
ログラム110)に返す。
【0082】[読み出し動作]CPU100(処理プロ
グラム110)がメモリコントローラ12のデータ読出
部122(図2)に対して、RAM14のアドレスaか
らデータを読み出す制御信号CNTを発行すると、デー
タ読出部122は、図6を参照して説明したように、ア
ドレスaが画像バッファ140(図4)の範囲外である
場合には、アドレスaからデータを読み出してCPU1
00(処理プログラム110)に返すようにRAM14
を制御する。
【0083】また、アドレスaが画像バッファ140の
範囲内である場合には、データ読出部122は、アドレ
スaがいずれのバッファブロックSB[i]に含まれる
か判断し、コントロールベクタ130に記憶され、この
バッファブロックSB[i]に対応するコントロールベ
クタCV[i]の値が1である場合には、アドレスaか
らデータを読み出してCPU100(処理プログラム1
10)に返すようにRAM14を制御する。あるいは、
アドレスaが画像バッファ140の範囲内であり、バッ
ファブロックSB[i]に対応するコントロールベクタ
CV[i]の値が0である場合には、データ読出部12
2は、パターンレジスタ132からアドレスaに対応す
るデータを読み出してCPU100(処理プログラム1
10)に返すようにRAM14を制御する。
【0084】[書き込み動作]CPU100(処理プロ
グラム110)がメモリコントローラ12のデータ書込
部124(図2)に対して、RAM14のアドレスaに
データdを書き込む制御信号CNTを発行すると、デー
タ書込部124は、図7を参照して説明したように、ア
ドレスaが画像バッファ140(図4)の範囲外である
場合には、アドレスaにデータdを書き込むようにRA
M14を制御する。
【0085】また、アドレスaが画像バッファ140の
範囲内である場合には、データ書込部124は、アドレ
スaがいずれのバッファブロックSB[i]に含まれる
か判断し、コントロールベクタ130に記憶され、この
バッファブロックSB[i]に対応するコントロールベ
クタCV[i]の値が1である場合には、アドレスaに
データdを書き込むようにRAM14を制御する。ある
いは、アドレスaが画像バッファ140の範囲内であ
り、バッファブロックSB[i]に対応するコントロー
ルベクタCV[i]の値が0である場合には、データ書
込部124は、このコントロールベクタCV[i]の値
を1に設定し、パターンレジスタ132に保持されてい
る初期データをバッファブロックSB[i]に設定し、
さらに、アドレスaにデータdを書き込むようにRAM
14を制御する。
【0086】[画像データ処理装置1の効果]再び図3
を参照する。図3(A)に示したように画像を区切っ
て、それぞれに壁紙の同じ画像をはめ込む場合であって
も、従来(例えば、キャッシュメモリを用いる場合)
は、バッファブロックSB[0]〜SB[n](図4)
の全てに対して、初期データを設定してから処理を開始
する必要があった。
【0087】しかしながら、画像データ処理装置1によ
れば、例えば、図3(B)に示すように、画像の一部に
図形aを描こうとする場合、図3(C)に示すように、
図形aの部分のわずかな範囲bのみに対応するバッファ
ブロックに対してだけ初期設定を行えばよく、他の部分
cに対する初期設定は不要である。従って、画像データ
処理装置1によれば、部分cに対応するバッファブロッ
クに対する初期設定に要する処理量および処理時間を節
約することができる。
【0088】さらに具体的に説明する。例えば、メモリ
コントローラ12を、キャッシュメモリ方式で代用した
場合、128MBのバッファ領域を初期設定するため、
CPU100が、RAM14の全バッファ領域にアクセ
スすると、キャッシュメモリのヒット率は非常に低くな
る。一方、メモリコントローラ12を用いた場合、処理
プログラム110は、RAM14の全てのバッファ領域
に対してアクセスする必要はなく、メモリコントローラ
12のコントロールベクタCV[i]の初期化だけを行
えばよいので、処理プログラム110の初期化の処理量
が大幅に減らされる。また、処理プログラム110が、
RAM14の画像バッファ140にアクセスする際に、
メモリコントローラ12は、コントロールベクタCV
[i]の値に応じて、未だにデータの書込が行われてい
ない領域からはデータを読み出さないので、未だにデー
タの書込が行われていない領域からのデータ読み出しの
分だけ、処理プログラム110の処理量は減らされる。
【0089】また、キャッシュメモリ方式においては、
メモリの一部の内容をキャッシュメモリにコピーし(ロ
ーカルコピーを取り)、CPU100のRAM14に対
するアクセスを高速化しているが、このローカルコピー
は、プログラム(処理プログラム110)あるいは画像
データの局所性に基づいて行われるため、必ずしも最適
化されたものではない。一方、メモリコントローラ12
によれば、このローカルコピーの代わりに、バッファブ
ロックSB[i]ごとに、1ビットのベクタ(コントロ
ールベクタCV[i])と、初期データとを記憶すれば
よいので、記憶すべきデータのデータ量が少なく、しか
も、キャッシュメモリ方式におけるような複雑なメモリ
制御が不要であり、また、ミスヒットも発生しない。
【0090】[画像データ処理装置1の変形例]なお、
実施形態においては、メモリコントローラ12をハード
ウェア的に構成する場合を例示したが、メモリコントロ
ーラ12は、同様の動作を実現するプログラムにより、
ソフトウェア的に構成されてもよい。また、実施形態に
おいては、全てのバッファブロック(図1)に共通に同
一の初期データを設定する場合について例示したが、初
期データを複数、パターンレジスタ132に設定できる
ようにして、複数の初期データと、バッファブロックそ
れぞれとを対応付けし、初期データのいずれかを用い
て、この初期データをバッファブロックに設定するよう
にメモリコントローラ12を変形してもよい。
【0091】また、画像データ処理装置1において、キ
ャッシュメモリと、メモリコントローラ12とを併用す
ることにより、さらに画像データ処理装置1の性能を向
上させることができる。メモリコントローラ12とキャ
ッシュメモリとを併用した場合、キャッシュメモリのみ
を用いた場合に必要となるメモリの初期設定が不要にな
る。CPU100が、RAM14に対して読み出しアク
セスする場合には、キャッシュメモリからメモリコント
ローラ12に対して、必要に応じてローカルコピー(ワ
ーキングセット)の読み出し要求が行われ、メモリコン
トローラ12が、実際にRAM14にアクセスする必要
があるか否かを判断し、必要がある場合にだけ、RAM
14からワーキングセットを実際に読み出す。CPU1
00が、RAM14に対して書き込みアクセスする場合
には、必要に応じてキャッシュメモリからメモリコント
ローラ12に対して、ローカルコピー(ワーキングセッ
ト)の読み出し要求が行われ、メモリコントローラ12
が、実際にRAM14にアクセスする必要があるか否か
を判断し、必要がある場合にだけ、RAM14に対して
キャッシュメモリからのデータを実際に書き込む。
【0092】また、上記実施形態においては、RAM1
4の画像バッファ140の1つのバッファブロック(図
4)に1ワード分のデータが記憶される場合について説
明したが、1つのバッファブロックSB[i]に複数
(m)ワードのデータが記憶される場合には、これに対
応してパターンレジスタ132にも、mワードの初期デ
ータが設定される。この場合、未だデータが書き込まれ
ていないバッファブロックSB[i]のアドレスaへの
アクセスがあった場合には、メモリコントローラ12
は、このアドレスaが、パターンレジスタ132の何番
目のワードに対応するかを算出する必要がある。
【0093】この場合、メモリコントローラ12のデー
タ読出部122は、アドレスaに対して、i=(a−S
AR)%LWR/p(但し、iはパターンレジスタの第
i番目のワードを示し、SARおよびLWRは、それぞ
れ内部レジスタ134のレジスタSAR,LWRに設定
された値を示し、pは、パターンレジスタ132に記憶
された初期データのサイズを示す)で表される演算を行
い、アドレスaを、パターンレジスタ132内のワード
に対応付ける。
【0094】[応用例]以下、画像データ処理装置1の
応用例を説明する。
【0095】[画像CODEC(コーデック)2]図8
は、図1等に示した画像データ処理装置1の応用例とし
て示す画像コーデック2の構成を示す図である。図8に
示すように、画像コーデック2は、画像データ処理装置
1に画像データの圧縮符号化および伸長復号を行うCO
DEC16が付加された構成を採る。
【0096】画像コーデック2の動作を説明する。CP
U100(処理プログラム110)が、CODEC16
に対して、画像バッファ140のバッファブロックのい
ずれかSB[i](図4)を指定し、指定したバッファ
ブロックSB[i]に記憶された画像データの圧縮を要
求すると、CODEC16は、メモリコントローラ12
を介してRAM14から画像データを読み出し、圧縮符
号化を行う。
【0097】[圧縮符号化処理]メモリコントローラ1
2は、コントロールベクタ130のコントロールベクタ
CV[i]をチェックし、この値が0であって、まだバ
ッファブロックSB[i]に対して、データの書き込み
がされていない場合には、バッファブロックSB[i]
に記憶されたデータに対する新たに圧縮符号化処理の必
要はないと判断し、CODEC16に対して、圧縮符号
化処理すべきデータ量が0であることを指示し、あるい
は、CODEC16に対して圧縮符号化処理を行う必要
がない旨を指示する。この指示に応じて、CODEC1
6は、バッファブロックSB[i]の内容を実際に読み
出し、圧縮符号化することなしに、圧縮符号化結果をR
AM14に書き込むことができる。
【0098】[伸長復号処理]CPU100(処理プロ
グラム110)がCODEC16に対して、バッファブ
ロックSB[i]に記憶すべきデータの伸長復号を要求
すると、CODEC16は、圧縮符号化されたデータを
チェックして、データ長が0であり、空のデータである
と判断した場合には、コントロールベクタCV[i]を
ClearBlock命令(表1)によりゼロクリアし、空のデー
タではなかった場合には、バッファブロックSB[i]
のデータを伸長復号する。
【0099】[プリンタコントローラ3]図9は、図8
に示した画像コーデック2の応用例として示すプリンタ
コントローラ3の構成を示す図である。図9に示すよう
に、プリンタコントローラ3は、プリンタコントロール
部4、コンピュータ(PC)30、エンジンコントロー
ラ32およびプリンタエンジン34から構成され、プリ
ンタコントロール部4は、画像コーデック2(図8)
に、IEEE1284インターフェース300、デコー
ダ302およびビデオインターフェース(IF)304
を加え、RAM14上に、CPU100により実行され
るラスタライザ142を記憶した構成を採る。
【0100】なお、プリンタコントローラ3において、
CODEC16の他に、デコーダ302を別途設けた理
由は、以下の通りである。一度、圧縮符号化してRAM
14に記憶した画像データ(バンド)を、再度、伸長復
号してプリンタコントローラ部4に対して出力する処理
と、描画処理とに必要な伸長復号の両方が、CODEC
16において同時並行的に実行されると、処理が停滞す
る可能性があるが、デコーダ302をCODEC16と
別に設けると、このようなCODEC16における同時
並行的な伸長復号処理の発生を防ぐことができるからで
ある。
【0101】これらのプリンタコントローラ3の構成部
分の内、コンピュータ30は、プリンタコントローラ3
4にプリントアウトさせる画像データを作成し、プリン
タコントロール部4に対して出力する。IEEE128
4インターフェース300は、プリンタの標準的な接続
方法であって、コンピュータ30とプリンタコントロー
ル部4との間でデータを送受信する。ラスタライザ14
2は、コンピュータ30から入力される画像データを処
理してラスタ・イメージを作成し、デコーダ302およ
びビデオインターフェース304を介してエンジンコン
トローラ32に対して出力する。エンジンコントローラ
32は、プリンタエンジン34を制御して、プリンタコ
ントロール部4から入力されたラスタ・イメージをプリ
ントアウトする。
【0102】[プリンタコントローラ3の動作]プリン
ターやMFP(Multi-Function Peripheral)内部において
は、大量のデータ処理が必要とされる。例えば、600dpi
のA4白黒画像の場合のデータ量は、約4MBとなる。フル
カラー画像の場合のデータ量はその32倍(約128MB)と
なる。しかし、プリンタコントローラ3を用いることに
より、RAM14へのアクセスを高速化させることがで
き、また、RAM14へのアクセス頻度を減少させ、プ
リント・データ作成時に必要とされるデータ転送量を減
少させることができる。
【0103】まず、コンピュータ30でプリントすべき
画像データが作成され、プリンタコントロール部4に転
送される。次に、プリンタコントロール部4において、
ラスタライザ142は、この画像データを描画(レンダ
リング)処理し、ラスター・イメージと呼ばれる画像デ
ータを生成する。この描画処理において、ラスタライザ
142は、画像バッファ140に対するアクセスを行う
が、メモリコントローラ12は、上述したように、この
バッファブロックにデータが書き込まれるまでは、この
バッファブロックに対して初期化処理を行わず、このバ
ッファブロックに最初にデータが書き込まれて初めて、
このバッファブロックに対して初期化処理を行う。
【0104】従って、メモリコントローラ120を用い
ることにより、図3(C)に部分cとして例示したよう
な、処理の最後まで初期データ以外の画像データが書き
込まれることがない部分に対する初期化処理を省略する
ことができるので、その分、RAM14に対するラスタ
ライザ142のアクセス頻度、および、データ転送量を
減らすことができる。なお、ラスタライザ142の処理
方式などにもよるが、プリンタコントローラ3におい
て、メモリコントローラ12が、いかにRAM14に対
するラスタライザ142のアクセス頻度、データ転送量
を減らすかの度合いは、バッファブロックのサイズを適
切に設定することにより高めることができる。
【0105】画像データの一部(バンドとも呼ばれる)
の描画が終了すると、ラスタライザ142は、バンドを
圧縮符号化してRAM14の画像バッファ140以外の
部分に一時的に保管する。この圧縮符号化処理は、CO
DEC16により行われるが、図8を参照して上述した
ように、この圧縮符号化処理に伴うRAM14へのアク
セス頻度等は、メモリコントローラ12により大幅に減
少する。
【0106】全ての画像データ(バンド)の描画および
圧縮符号化が終了すると、ラスタライザ142は、圧縮
してRAM14に一時的に保管した圧縮符号化済みのバ
ンドを、再びデコーダ302を用いて伸長復号し、ビデ
オインターフェース304を介してエンジンコントロー
ラ32に対して出力する。圧縮符号化の際と同様に、図
8を参照して上述したように、この伸長復号処理に伴う
RAM14へのアクセス頻度等も、メモリコントローラ
12により大幅に減少する。
【0107】大量の画像データを高速で処理するために
は、メモリーへのアクセス速度を加速し、アクセス回数
を減少させることが極めて重要であるが、メモリコント
ローラ12は、これらの要求を実現することができる。
【0108】図3に示した例においては、画像バッファ
140に16×12(192)個のバッファブロックが
存在するが、極端な場合には、実際にアクセスされるバ
ッファブロックは14個(全体の6%)に過ぎない。こ
のように、多くの場合、プリントすべきデータの背景デ
ータ(=初期データ)は空白や単純なパターンであり、
前景データ(例えば、図4(B)に示した図形画像)も
稠密ではなくかなり疎密であることに着目すると、メモ
リコントローラ12を用いることは、非常に有効である
ことがわかる。
【0109】
【発明の効果】以上説明したように、本発明にかかるメ
モリアクセス管理装置およびその方法によれば、画像印
刷処理等、非常の多くの量のデータを扱う処理におい
て、メモリアクセスの頻度を大幅に少なくすることがで
きる。
【0110】また、本発明にかかるメモリアクセス管理
装置およびその方法によれば、画像印刷処理等、キャッ
シュメモリを用いる等の従来の方法では、目的を達成す
ることが難しかった画像印刷処理等において、有効にメ
モリアクセスの頻度を少なくすることができる。
【0111】また、本発明にかかるメモリアクセス管理
装置およびその方法によれば、未だ何らのデータも書き
込まれず、内容が変更されていないメモリ領域に対する
無駄なアクセスを不要にして、メモリに対するアクセス
の頻度・回数を大幅に減らすことができる。
【図面の簡単な説明】
【図1】本発明にかかる画像データ処理装置の構成を示
す図である。
【図2】図1に示したメモリコントローラ部の構成を示
す図である。
【図3】(A)は、画像データの分割方法を例示する図
であり、(B)は、図1に示したCPU(処理プログラ
ム)がRAMに書き込もうとする図形画像を例示する図
であり、(C)は、(B)に示した図形画像が書き込ま
れるブロックを示す図である。
【図4】図1に示した画像バッファに含まれるバッファ
ブロックの構成を例示する図である。
【図5】図2に示したコマンドプロセッサの処理(S1
0)を示すフローチャートである。
【図6】図2に示したデータ読出部の処理(S20)を
示すフローチャートである。
【図7】図2に示したデータ書込部の処理(S30)を
示すフローチャートである。
【図8】図1等に示した画像データ処理装置の応用例と
して示す画像コーデックの構成を示す図である。
【図9】図8に示した画像コーデックの応用例として示
すプリンタコントローラの構成を示す図である。
【符号の説明】
1・・・画像データ処理装置 12・・・メモリコントローラ 120・・・コマンドプロセッサ 122・・・データ読出部 124・・・データ書込部 130・・・コントロールベクタ 132・・・パターンレジスタ 134・・・内部レジスタ 14・・・RAM 140・・・画像バッファ 142・・・ラスタライザ 100・・・CPU 102・・・バス 110・・・処理プログラム 2・・・画像コーデック 16・・・CODEC 3・・・プリンタコントローラ 30・・・コンピュータ 32・・・エンジンコントローラ 34・・・プリンタエンジン 4・・・プリンタコントロール部 300・・・IEEE1284インターフェース 302・・・デコーダ 304・・・ビデオインターフェース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 船 渡 川 和 男 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内 (72)発明者 緒 方 正 暢 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内 Fターム(参考) 5B021 BB02 DD08 DD20 5B060 AA05 AA14 AC13 CB01

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】データの読み出しおよび書き込みが可能な
    メモリの記憶領域に設ける複数のブロックの指定を受
    け、これらのブロックそれぞれに対するデータの書き込
    みが既に行われたか否かを管理する書込管理手段と、 前記複数のブロックに最初に書き込まれる初期データの
    設定を受け、前記複数のブロックのいずれかに対する読
    み出しアクセスが発生したときに、このブロックに対す
    るデータの書き込みが既に行われたか否かに応じて、こ
    のブロックに書き込まれたデータ、または、このブロッ
    クに対して設定された前記初期データをアクセス元に返
    す読出アクセス制御手段とを有するメモリアクセス制御
    装置。
  2. 【請求項2】前記読出アクセス制御手段において、前記
    初期データは、前記複数のブロックに対して共通に設定
    される請求項1に記載のメモリアクセス装置。
  3. 【請求項3】前記読出アクセス制御手段は、前記複数の
    ブロックのいずれかに対する読み出しアクセスが発生し
    たときに、このブロックに対して既にデータが書き込ま
    れている場合には、このブロックからデータを読み出し
    てアクセス元に返し、これ以外の場合には、このブロッ
    クに対して設定された前記初期データをアクセス元に返
    す請求項1に記載のメモリアクセス制御装置。
  4. 【請求項4】データの読み出しおよび書き込みが可能な
    メモリの記憶領域に設ける複数のブロックの指定を受
    け、これらのブロックそれぞれに対するデータの書き込
    みが既に行われたか否かを管理する書込管理手段と、 前記複数のブロックに最初に書き込まれる初期データの
    設定を受け、前記複数のブロックのいずれかに対する書
    込アクセスが発生したときに、このブロックに対するデ
    ータの書き込みが既に行われたか否かに応じて、設定さ
    れた前記初期データおよび書込アクセスによりこのブロ
    ックに書き込まれる書込データ、または、前記書込デー
    タを、このブロックに対して書き込む書込アクセス制御
    手段を有するメモリアクセス制御装置。
  5. 【請求項5】前記書込アクセス制御手段において、前記
    初期データは、前記複数のブロックに対して共通に設定
    される請求項4に記載のメモリアクセス装置。
  6. 【請求項6】前記書込アクセス制御手段は、前記複数の
    ブロックのいずれかに対する書込アクセスが発生したと
    きに、このブロックに対して既にデータが書き込まれて
    いる場合には、このブロックに対して前記書込データを
    書き込み、これ以外の場合には、このブロックを、前記
    初期データを書き込んで、前記書込データを書き込んだ
    状態にするデータを書き込む請求項4に記載のメモリア
    クセス制御装置。
  7. 【請求項7】データの読み出しおよび書き込みが可能な
    メモリの記憶領域に設ける複数のブロックの指定を受
    け、これらのブロックそれぞれに対するデータの書き込
    みが既に行われたか否かを管理し、 前記複数のブロックに最初に書き込まれる初期データの
    設定を受け、 前記複数のブロックのいずれかに対する読み出しアクセ
    スが発生したときに、このブロックに対するデータの書
    き込みが既に行われたか否かに応じて、このブロックに
    書き込まれたデータ、または、このブロックに対して設
    定された前記初期データをアクセス元に返すメモリアク
    セス制御方法。
  8. 【請求項8】データの読み出しおよび書き込みが可能な
    メモリの記憶領域に設ける複数のブロックの指定を受
    け、これらのブロックそれぞれに対するデータの書き込
    みが既に行われたか否かを管理し、 前記複数のブロックに最初に書き込まれる初期データの
    設定を受け、 前記複数のブロックに対する書込アクセスが発生したと
    きに、このブロックに対するデータの書き込みが既に行
    われたか否かに応じて、設定された前記初期データおよ
    び書込アクセスによりこのブロックに書き込まれる書込
    データ、または、前記書込データを、このブロックに対
    して書き込むメモリアクセス制御方法。
JP11121868A 1999-04-28 1999-04-28 メモリアクセス制御装置およびその方法 Pending JP2000322312A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP11121868A JP2000322312A (ja) 1999-04-28 1999-04-28 メモリアクセス制御装置およびその方法
US09/545,079 US6678804B1 (en) 1999-04-28 2000-04-07 Apparatus and method for memory access control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11121868A JP2000322312A (ja) 1999-04-28 1999-04-28 メモリアクセス制御装置およびその方法

Publications (1)

Publication Number Publication Date
JP2000322312A true JP2000322312A (ja) 2000-11-24

Family

ID=14821929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11121868A Pending JP2000322312A (ja) 1999-04-28 1999-04-28 メモリアクセス制御装置およびその方法

Country Status (2)

Country Link
US (1) US6678804B1 (ja)
JP (1) JP2000322312A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950905B2 (en) * 2003-02-20 2005-09-27 Sun Microsystems, Inc. Write posting memory interface with block-based read-ahead mechanism
US7043590B2 (en) * 2004-05-28 2006-05-09 Realtek Semiconductor Corp. Interface apparatus using single driver, computer system including interface apparatus using single driver, and related method
US20110102997A1 (en) * 2009-11-02 2011-05-05 Ocz Technology Group, Inc. Mass storage device and method of accessing memory devices thereof
US20170154403A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Triple buffered constant buffers for efficient processing of graphics data at computing devices

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649029A (en) * 1991-03-15 1997-07-15 Galbi; David E. MPEG audio/video decoder
JPH06119130A (ja) * 1992-10-06 1994-04-28 Fuji Xerox Co Ltd 記録装置

Also Published As

Publication number Publication date
US6678804B1 (en) 2004-01-13

Similar Documents

Publication Publication Date Title
JPH1093827A (ja) 画像処理方法とその装置
JP2000135821A (ja) プリンタ
US6345350B2 (en) Information processing apparatus printer, method of controlling information processing apparatus and record medium
JPH10297050A (ja) 出力制御装置、出力制御方法、画像処理装置、画像処理方法及び記憶媒体
US6459737B1 (en) Method and apparatus for avoiding redundant data retrieval during video decoding
JPH066386B2 (ja) 出力装置
JP2610993B2 (ja) 情報処理装置及び方法
JP2000246995A (ja) 優先順位つきのローディングおよび検索の工程を備えた、ディスクを基にした記憶システムおよび方法
JP2000322312A (ja) メモリアクセス制御装置およびその方法
JPH05336385A (ja) 画像処理装置
JP2010211831A (ja) 情報処理装置及び情報処理方法及び印刷制御プログラム
JP2958229B2 (ja) 印刷装置及びその制御方法
JPH09174962A (ja) 印刷装置
JP2942117B2 (ja) 出力装置
JP2942118B2 (ja) 出力制御方法
JP2000298565A (ja) 印刷制御方法及び装置と前記印刷制御方法を実行するプログラムを記憶した記憶媒体
JPH1132207A (ja) 画像処理装置及びその方法並びにメモリ媒体
JP2002211050A (ja) 画像出力方法、画像出力装置及び画像出力システム
JP2000222140A (ja) プリンタおよびプリンタのメモリ管理方法並びにプログラムを記録した記録媒体
JP2005231374A (ja) プリンタおよびプリンタのメモリ管理方法並びにプログラムを記録した記録媒体
JP3791404B2 (ja) 画像処理装置
KR100636817B1 (ko) 시스템 버스로의 트랜잭션을 줄이기 위한 그래픽처리장치와 이를 구비한 화상형성장치
JPH0676050A (ja) 画像処理装置
JPH06149735A (ja) データ受信制御装置
JPH0935073A (ja) 印刷装置