説明

メモリアクセス制御回路及び画像処理装置

【課題】効率的なメモリアクセス動作を実現できるメモリアクセス制御回路を提供する。
【解決手段】メモリアクセス制御回路は、レジスタを第1の状態に設定して第1の一連のアドレスを送信し、レジスタを第2の状態に設定して第2の一連のアドレスを送信するアドレス送信部と、レジスタを第3の状態に設定して第1の一連のデータを受信して遅延させることなくデータ処理し、レジスタを第4の状態に設定して第2の一連のデータを受信して所定の遅延時間だけ遅延させてからデータ処理するデータ受信部と、アドレス送信部からの第1の一連のアドレスの送信終了に応答してレジスタの状態をバックアップ部に退避させるとともに第2の状態をレジスタに復帰させ、データ受信部による第1の一連のデータのデータ処理終了に応答して、前記所定の遅延時間を利用してレジスタの状態をバックアップ部に退避させるとともに第4の状態をレジスタに復帰させることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本願開示は、一般にメモリアクセスを制御する回路及び画像処理装置に関し、詳しくは画像データ処理用にメモリアクセスを制御する回路及び画像処理装置に関する。
【背景技術】
【0002】
グラフィックス描画装置のブレンド処理では、現在の出力先画像DSTと新たな入力画像SRCとの間で所定の演算を行い、その演算結果を出力画像DSTとしてメモリに格納する。ブレンド処理の演算の種類としては、置換(DST=SRC)、乗算(DST=DSTxSRC)、アルファブレンド(DST=(1−α)DST+αSRC)等がある。置換の場合には、入力画像が次のフレームでの出力画像になる。またアルファブレンドの場合には、現在の出力先画像と新たな入力画像とを重ね合わせた半透明な画像が次のフレームでの出力画像になる。
【0003】
ブレンド処理において、グラフィックス描画装置のメモリインタフェース部は、外部メモリに格納された画像データを一定量ずつ読出し、読み出した一定量の画像データを一旦RAMに格納する。入力画像SRC、出力先画像DST、及びアルファマップALP(各画素毎のα値を規定した画像データ)それぞれについて一定量の画像データがRAMに格納されると、これらの画像データはブレンド処理部に渡され、ブレンド処理が実行される。ブレンド処理により生成された一定量の出力画像データは、メモリインタフェース部により、外部メモリに新たな出力画像DSTの一部として格納される。上記の読出し、ブレンド、及び書込み処理を、RAMの容量に応じた一定量の画像データに対して繰り返し実行することで、画像全体のブレンド処理が完了する。
【0004】
入力画像SRC、出力先画像DST、及びアルファマップALPの読出し、及び新たな出力画像DSTの書込みは、メモリインタフェース部内に設けられたステートマシンである制御部により制御される。制御部がSRC状態の時に入力画像SRCが外部メモリから読み出され、DST状態の時に出力先画像DSTが外部メモリから読み出され、ALP状態の時にアルファマップALPが外部メモリから読み出される。次に制御部がW_DST状態になると、ブレンド処理の結果である出力画像が外部メモリに書き込まれる。具体的には、制御部の状態に応じて、メモリインタフェース部のアドレス送信部とデータ受信部とが動作することにより、画像データの読出し及び書込みが実行される。
【0005】
図1は、アドレス送信部の出力するアドレス及びデータ受信部の受信するデータとのタイミング関係を示すタイミング図である。図1において、アドレス送信部が送信する読出しアドレスSRC−ADDに応答して、メモリから入力画像データSRC−DATAが読み出される。同様に、読出しアドレスDST−ADD及びALP−ADDに応答して、それぞれ出力先画像データDST−DATA及びアルファマップデータALP−DATAが読み出される。またアドレス送信部が送信する書込みアドレスW_DST−ADDに、次の出力画像DST(図示せず)が書き込まれる。
【0006】
図1において、ある画像に対してアドレス送信部が送信するアドレスと次の画像に対してアドレス送信部が送信するアドレスとの間には、時間間隔10が存在する。即ち例えば入力画像SRCを読み出すために送信するアドレスSRC−ADDと出力先画像DSTを読み出すために送信するアドレスDST−ADDとの間には時間間隔10が存在する。これは、上記の制御部の状態遷移が、読出しデータのRAMへの書込みが終了した時点で行なわれるためである。例えばアドレス送信部がアドレスSRC−ADDを送信すると、メモリ読出し動作に要する所定の遅延時間後にデータ受信部が入力画像SRCを受信する。データ受信部は、受信する画像データを逐次RAMに格納していき、入力画像SRCを受信終了した直後にはRAMへの書込みを終了する。このRAMへの書込み終了に応答して、制御部がSRC状態からDST状態に遷移し、アドレス送信部によるアドレスDST−ADDの送信が開始される。この状態遷移のタイミングが図1において矢印11として示されている。
【0007】
図1に示す時間間隔10の間に、アドレス送信部は内部レジスタのレジスタ値をバックアップすることができる。このバックアップしたレジスタ値は、次の同一状態の動作を再開するときに内部レジスタに復元される。例えば、SRC状態の動作においてバックアップされたレジスタ値は、次のSRC状態の動作を再開するときに復元される。また同様に、図1に示す読出しデータ間の時間間隔12の間に、データ受信部は、内部レジスタのレジスタ値をバックアップすることができる。その意味において、送信アドレスの間や受信データの間に時間間隔10や12が存在することは無駄ではない。しかしながら図1に示すようにデータ受信部の動作が終了してから矢印11で示す状態遷移をする構成では、時間間隔10及び12が必要以上に長いものとなり、効率的なデータ読出し動作ができないという問題がある。
【特許文献1】特開平8−329233号公報
【特許文献2】特開2002−123827号公報
【特許文献3】特開平6−131248号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
以上を鑑みると、効率的なメモリアクセス動作を実現できるメモリアクセス制御回路が望まれる。
【課題を解決するための手段】
【0009】
メモリアクセス制御回路は、第1の内部レジスタを備え、前記第1の内部レジスタの状態を第1の状態に設定して第1の一連のアドレスを送信し、前記第1の内部レジスタの状態を第2の状態に設定して第2の一連のアドレスを送信するアドレス送信部と、第2の内部レジスタを備え、前記第2の内部レジスタの状態を第3の状態に設定して前記第1の一連のアドレスに対応する第1の一連のデータを受信するとともに前記受信した第1の一連のデータを遅延させることなくデータ処理し、前記第2の内部レジスタの状態を第4の状態に設定して前記第2の一連のアドレスに対応する第2の一連のデータを受信するとともに前記受信した第2の一連のデータを所定の遅延時間だけ遅延させてから前記データ処理するデータ受信部と、第1のバックアップ部と、第2のバックアップ部とを含み、前記アドレス送信部からの前記第1の一連のアドレスの送信終了に応答して前記第1の内部レジスタの状態を前記第1のバックアップ部に退避させるとともに前記第1のバックアップ部から前記第2の状態を前記第1の内部レジスタに復帰させ、前記データ受信部による前記第1の一連のデータの前記データ処理終了に応答して、前記所定の遅延時間を利用して前記第2の内部レジスタの状態を前記第2のバックアップ部に退避させるとともに前記第2のバックアップ部から前記第4の状態を前記第2の内部レジスタに復帰させることを特徴とする。
【0010】
画像処理装置は、外部メモリから画像データを読み出すメモリアクセス制御回路と、前記メモリアクセス制御回路が読み出した前記画像データを処理する画像処理部とを含み、前記メモリアクセス制御回路は、第1の内部レジスタを備え、前記第1の内部レジスタの状態を第1の状態に設定して第1の一連のアドレスを送信し、前記第1の内部レジスタの状態を第2の状態に設定して第2の一連のアドレスを送信するアドレス送信部と、第2の内部レジスタを備え、前記第2の内部レジスタの状態を第3の状態に設定して前記第1の一連のアドレスに対応する第1の一連のデータを受信するとともに前記受信した第1の一連のデータを遅延させることなくデータ処理し、前記第2の内部レジスタの状態を第4の状態に設定して前記第2の一連のアドレスに対応する第2の一連のデータを受信するとともに前記受信した第2の一連のデータを所定の遅延時間だけ遅延させてから前記データ処理するデータ受信部と、第1のバックアップ部と、第2のバックアップ部とを含み、前記アドレス送信部からの前記第1の一連のアドレスの送信終了に応答して前記第1の内部レジスタの状態を前記第1のバックアップ部に退避させるとともに前記第1のバックアップ部から前記第2の状態を前記第1の内部レジスタに復帰させ、前記データ受信部による前記第1の一連のデータの前記データ処理終了に応答して、前記所定の遅延時間を利用して前記第2の内部レジスタの状態を前記第2のバックアップ部に退避させるとともに前記第2のバックアップ部から前記第4の状態を前記第2の内部レジスタに復帰させることを特徴とする。
【発明の効果】
【0011】
本願開示の少なくとも1つの実施例によれば、第1の状態でのアドレス送信部からの第1の一連のアドレスを送信終了すると、この送信終了に応答して、バックアップ部からアドレス送信部のレジスタに第2の状態を復帰させる。これにより、直ちに第2の一連のアドレスを送信することが可能となり、効率的なメモリアクセス動作を実現できる。また受信した第1の一連のデータを遅延させることなくデータ処理するとともに、受信した第2の一連のデータを所定の遅延時間だけ遅延させてからデータ処理する。これにより、この所定の遅延時間を利用して、データ受信部の内部レジスタの状態をバックアップ部に退避させることが可能となる。
【発明を実施するための最良の形態】
【0012】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0013】
図2は、メモリアクセス制御回路の構成の一例を示す図である。図2のメモリアクセス制御回路は、アドレス送信部20、データ受信部21、バックアップ部22、バックアップ部23、制御部24、制御部25、及びFIFO26を含む。このメモリアクセス制御回路は、外部メモリ15に格納された画像データを一定量ずつ読出し、読み出した一定量の画像データを一旦外部RAM16に格納する。入力画像SRC、出力先画像DST、及びアルファマップALPそれぞれについて一定量の画像データがRAMに格納されると、これらの画像データはブレンド処理部17に渡され、ブレンド処理が実行される。ブレンド処理により生成された一定量の出力画像データは、メモリアクセス制御回路により、外部メモリ15に新たな出力画像DSTの一部として格納される。上記の読出し、ブレンド、及び書込み処理を、外部RAM16の容量に応じた一定量の画像データに対して繰り返し実行することで、画像全体のブレンド処理が完了する。なお図2に示される各部は、共通のクロック信号に同期して動作する。
【0014】
入力画像SRC、出力先画像DST、及びアルファマップALPの読出し、及び新たな出力画像DSTの書込みは、メモリアクセス制御回路内に設けられたステートマシンである制御部24及び25により制御される。制御部24がアドレス送信部20の状態遷移を制御し、制御部25がデータ受信部21の状態遷移を制御する。
【0015】
アドレス送信部20は、レジスタ30、データ書込み部31、データ要求生成部32、状態終了信号生成部33、及びアドレス生成回路34を含む。制御部24の出力する状態信号がSRC状態を示す時に、入力画像SRCを読み出すアドレスがアドレス生成回路34から外部メモリ15に送出される。制御部24の出力する状態信号がDST状態を示す時に、出力先画像DSTを読み出すアドレスがアドレス生成回路34から外部メモリ15に送出される。また制御部24の出力する状態信号がALP状態を示す時に、アルファマップALPを読み出すアドレスがアドレス生成回路34から外部メモリ15に送出される。また制御部24の出力する状態信号がW_DST状態を示す時に、ブレンド処理部17によるブレンド処理後のデータを書き込むアドレスがアドレス生成回路34から外部メモリ15に送出される。なおアドレス生成回路34は、有効アドレスを送出している間、アドレス有効無効信号を有効を示す値に設定する。アドレス出力が無効値である間、アドレス生成回路34は、アドレス有効無効信号を無効を示す値に設定する。またブレンド処理後のデータを送出するデータ書込み部31は、有効データを送出している間、データ有効無効信号を有効を示す値に設定する。データ出力が無効値である間、データ書込み部31は、データ有効無効信号を無効を示す値に設定する。
【0016】
レジスタ30は、開始アドレス、Xカウンタ値、Yカウンタ値、RAMカウンタ値を格納する。これらの各レジスタ値の詳細については後程説明する。例えばレジスタ30の状態をSRC用のレジスタ値状態に設定して、一連のSRC読出しアドレスがアドレス送信部20から外部メモリ15に送信される。また例えばレジスタ30の状態をDST用のレジスタ値状態に設定して、一連のDST読出しアドレスがアドレス送信部20から外部メモリ15に送信される。一連のSRC読出しアドレスの送信終了に応答して、レジスタ30のSRC用のレジスタ値状態をバックアップ部22にSRC用のレジスタ値として退避させる。それとともに、バックアップ部22からDST用のレジスタ値状態をレジスタ30に復帰させる。バックアップ部22に退避されたSRC用のレジスタ値は、次回のSRC状態でのSRC読出しアドレス送出時に、バックアップ部22からレジスタ30に復帰される。このようにバックアップ部22へのレジスタ値の退避及びバックアップ部22からのレジスタ値の復帰により、各状態(SRC状態、DST状態、ALP状態、W_DST状態)の動作を前回終了した状態から再開することができる。
【0017】
バックアップ部22へのレジスタ値退避のタイミングは、状態終了信号生成部33が生成する状態終了信号が示すタイミングである。状態終了信号生成部33は、現在の状態で送信すべき一連の読出しアドレスの最後のアドレスがアドレス生成回路34から送信されると、アドレス送信終了に伴う状態終了を示す状態終了信号を出力する。この状態終了信号は、バックアップ部22、FIFO26、及び制御部24に供給される。制御部24は状態終了信号に応答して内部状態を遷移させ、それに伴い出力状態信号の示す状態が変化する。制御部24は、内部状態が遷移する毎に状態開始信号をアサートする。なお制御部24の内部状態は、SRC→DST→ALP→W_DSTの順に遷移する。
【0018】
データ受信部21は、データ処理部35、レジスタ36、データ遅延回路37、及び初期化信号生成部38を含む。制御部25の出力する状態信号がSRC状態を示す時に、データ受信部21は、外部メモリ15から読み出された入力画像SRCを受信する。制御部25の出力する状態信号がDST状態を示す時に、データ受信部21は、外部メモリ15から読み出された出力先画像DSTを受信する。また制御部25の出力する状態信号がALP状態を示す時に、データ受信部21は、外部メモリ15から読み出されたアルファマップALPを受信する。これらの受信画像データは、データ遅延回路37及びデータ処理部35を介して外部RAM16に格納される。制御部25の出力する状態信号がW_DST状態を示す時に、データ受信部21は、外部RAM16から画像データSRC、DST、及びALPを読み出してブレンド処理部17に供給する。
【0019】
データ受信部21が外部メモリ15から画像データを受信するとき、データ受信部21は外部メモリ15が出力するデータ有効無効信号を参照する。データ有効無効信号は、外部メモリ15の出力データが有効値の時に有効を示す値をとり、外部メモリ15の出力データが無効値の時に無効を示す値をとる。データ受信部21のデータ処理部35は、有効データのみを外部RAM16に書き込むように動作する。
【0020】
レジスタ36は、現在の状態で外部RAM16に書ききれなかったデータを保持している。例えばSRC状態の終了時において、レジスタ36のレジスタ値の状態は、SRC状態で外部RAM16に書ききれなかったSRCデータである。SRC状態の終了時において、このレジスタ36のレジスタ値をバックアップ部23にSRC用のデータとして退避させる。それとともに、SRC状態の次のDST状態に備えるために、バックアップ部23からDST用のレジスタ値状態(即ち前回のDST状態で書ききれなかったDSTデータ)をレジスタ36に復帰させる。
【0021】
図2のメモリアクセス制御回路では、アドレス送信部20のレジスタ30のレジスタ値状態の遷移を制御する制御部24とデータ受信部21のレジスタ36のレジスタ値状態の遷移を制御する制御部25とは、それぞれ別個に設けられている。これにより、アドレス送信部20はある状態(例えばSRC状態)でのアドレス送信動作が終了すると、直ちに次の状態(例えばDST状態)でのアドレス送信動作を開始することができる。従って、図1のようにアドレス送信間で長い時間間隔10があいてしまう場合と比較して、効率的なデータ読出し動作を実現することができる。但し、レジスタ30のレジスタ値をバックアップ部22に退避させる必要があるので、次の状態のアドレス送信動作を直ちに開始させるのではなく、レジスタ値の退避に要する時間分遅らせてから開始させる必要がある。
【0022】
データ受信部21においても、同様にレジスタ36のレジスタ値をバックアップ部23に退避させる時間を確保する必要がある。しかしながら外部メモリ15は共通バスに接続されており、図2のメモリアクセス回路よりも優先順位の高い他の回路が外部メモリ15に割込みアクセスした場合等は、外部メモリ15からのデータ読出しが遅れることになる。またアドレス送信部20が送出する外部メモリ15の読出しアドレスが、それまでとは別のページやブロックに移動した場合などにも、外部メモリ15からのデータ読出しが遅れることになる。このようなデータ読出しの遅れにより、例えばSRC状態でのアドレス送信と次のDST状態でのアドレス送信との間に時間間隔を空けていても、読み出された入力画像SRCの画像データと出力先画像DSTの画像データとの間には間隔が無くなってしまう場合がある。このように、ある状態での読出しデータと次の状態での読出しデータとの間に間隔が無くなると、レジスタ36のレジスタ値をバックアップ部23に退避させる時間が無くなってしまう。
【0023】
以上を鑑みて、図2に示すメモリアクセス制御回路は、データ遅延回路37により読出しデータ間に所望の時間間隔を空けるような構成となっている。データ遅延回路37は、例えば入力画像SRCの読出しデータについては、遅延させることなくそのままデータ処理部35に供給してデータ処理(RAMへの書込み処理)させる。次の出力先画像DSTの画像データについては、データ遅延回路37は、所定の遅延時間だけ遅延させてからデータ処理部35に供給してデータ処理(RAMへの書込み処理)させる。この所定の遅延時間を利用して、レジスタ36の現在の状態のレジスタ値をバックアップ部23に退避させるとともに、バックアップ部23から次の状態のレジスタ値をレジスタ36に復帰させることができる。
【0024】
この際、データ遅延回路37は、FIFO26により遅延されたアドレス送信部20からの状態終了信号を利用する。アドレス送信部20は、読出しアドレスを1つ送信する毎にNULL値(例えば0)をFIFO26に格納していき、最後の読出しアドレスを送信した時に非NULL値(例えば1)の状態終了信号をFIFO26に格納する。FIFO26の段数としては、アドレス送信部20が送信したアドレスに対応する読出しデータをデータ受信部21が受信するまでに、アドレス送信部20が送信可能なアドレスの数の最大値とすればよい。このような最大値に設定すれば、FIFO26がオーバーフローしてしまうことがない。またFIFO26がそれ以下の段数であったとしても、FIFO26がFULL状態になったらアドレス送信を抑制するような機能を設ければよい。
【0025】
データ受信部21は、外部メモリ15から有効な読出しデータを1つ読み込む毎に、FIFO26の格納データを1つ読み出す。その結果、データ受信部21は、現在の状態での最後の読出しデータを取込んだときに、FIFO26から状態終了信号を読み出すことになる。データ受信部21のデータ遅延回路37は、FIFO26から読み出した状態終了信号に応答して、それ以降に外部メモリ15から受信した読出しデータを所定の遅延時間だけ遅延させる。
【0026】
図3は、データ遅延回路37の構成の一例を示す図である。図3のデータ遅延回路37は、セレクタ40、フリップフロップ41及び42、及びシフトレジスタ43乃至45を含む。シフトレジスタ43乃至45は、共通のクロック信号に同期して動作する。図3に示すデータ遅延回路37では、受信データを遅延させることなくセレクタ40に供給する第1のデータ経路が設けられている。更に、受信データをシフトレジスタ43により第1の所定の遅延時間だけ遅延させてセレクタ40に供給する第2のデータ経路が設けられている。また更に、受信データをシフトレジスタ43及び44により第2の所定の遅延時間だけ遅延させてセレクタ40に供給する第3のデータ経路が設けられている。また受信データの各経路に並行して、状態終了信号DTPを同様に遅延・選択するデータ経路が設けられている。
【0027】
セレクタ40の選択動作は、選択制御信号sel_1及びsel_2により制御される。セレクタ40は、選択制御信号sel_1が“0”かつsel_2が“0”の時は上記第1のデータ経路のデータd_0を選択し、sel_1が“1”かつsel_2が“0”の時は上記第2のデータ経路のデータd_1を選択し、sel_1が“1”かつsel_2が“1”の時は上記第3のデータ経路のデータd_2を選択する。選択制御信号sel_1はフリップフロップ41により生成され、選択制御信号sel_2はフリップフロップ42及びシフトレジスタ45により生成される。フリップフロップ41、42、及びシフトレジスタ45は、初期化信号INITのアサートにより初期化される。
【0028】
図4は、図3のデータ遅延回路37の動作を示すタイミング図である。図4に示される例では、受信データはSRC、DST、及びALPが間隙無く連続して供給される。このように受信データが連続したままでは、各状態(SRC状態、DST状態、ALP状態)間の遷移時にレジスタ36の内容をバックアップ部23に退避させる時間的余裕がない。そこで図3のデータ遅延回路37により、間隙が挿入された受信データD_DATAを生成する。具体的には、状態終了信号DTPが到来するまでの期間、セレクタ40は遅延のない受信データd_0を選択出力する。状態終了信号DTPが到来した後、セレクタ40は第1の所定時間遅延した受信データd_1を選択出力する。具体的には、状態終了信号DTPによりフリップフロップ41がセットされ、選択制御信号sel_1が“1”になり、遅延後の受信データd_1が選択出力される。またその後、次の状態終了信号DTPの到来から上記第1の所定時間経過した後は、セレクタ40は第2の所定時間遅延した受信データd_2を選択出力する。具体的には、次の状態終了信号DTPによりフリップフロップ42がセットされてpre_sel_2が“1”になり、その後、シフトレジスタ43と同一の遅延量を有するシフトレジスタ45による遅延時間後に選択制御信号sel_2が“1”になる。選択制御信号sel_2が“1”になることにより、遅延後の受信データd_2が選択出力される。この結果、セレクタ40の出力データD_TATAは、図4に示すように、SRC、DST、及びALPの間に間隙が適宜挿入されたデータとなる。
【0029】
このデータD_TATAがデータ遅延回路37からデータ処理部35(図2参照)に供給され、データ処理(データ書込み処理)の対象となる。なおデータ遅延回路37においては、受信データとして読出しデータだけでなくデータ有効無効信号も同様に遅延させるようにしてよい。この遅延されたデータ有効無効信号をデータ処理部35に供給することにより、データ処理部35は有効なデータのみをデータ処理(データ書込み処理)の対象とすることができる。
【0030】
図5は、データ遅延回路37の構成の別の一例を示す図である。図5のデータ遅延回路37は、セレクタ50、フリップフロップ51−1乃至51−12、OR回路52、及びカウンタ53を含む。フリップフロップ51−1乃至51−12は直列接続されて共通のクロック信号に同期して動作し、受信データ及び状態終了信号DTPを順次遅延させるシフトレジスタとして機能する。なお図5の構成例では12個のフリップフロップが設けられているが、この個数は任意の所望の個数であってよい。セレクタ50は、複数個のフリップフロップ51−1乃至51−12のそれぞれの出力データを、選択対象データとして受け取る。カウンタ53は、セレクタ50から出力される状態終了信号に応答してカウントを開始する。またセレクタ50は、カウンタ53のカウンタ値に応じて複数個のフリップフロップ51−1乃至51−12の何れかの出力データを選択する。
【0031】
図6は、図5のデータ遅延回路37の動作を示すタイミング図である。図6に示される例では、クロック信号CLKの各サイクルに同期して受信した受信データをA、B、C、D、・・・として示してある。初期状態ではカウンタ53のカウンタ値は0であり、セレクタ50は遅延のない受信データ及び状態終了信号DTPを選択して出力する。この結果、受信データのデータA〜Cは、そのままのタイミングでセレクタ50の出力データD_DATAに現れる。また状態終了信号DTPも、そのままのタイミングでセレクタ50から出力される(図6に「状態終了信号(遅延後)」として示される)。このセレクタ50から出力される状態終了信号(遅延後)に応答して、カウンタ53がカウントアップを開始する。カウンタ53がカウントアップしている間、セレクタ50は、選択するフリップフロップ出力として1サイクルずつ遅れたものを順次選択していく。その結果、セレクタ50の出力データD_DATAには同一の受信データCが連続して現れることになる。その後、データの遅延を停止させたいタイミングで、信号change_1乃至change_3のいずれか1つをHIGHにする。図6の例では、まずchange_1がHIGHになり、これに応答してカウンタ53がカウントアップ動作を停止する。カウンタ53のカウントアップ動作の停止に伴い、セレクタ50の出力データD_DATAは受信データのデータ遷移に追従してC、D、E・・・と変化していく。以降、同様にして状態終了信号(遅延後)によるカウント動作開始と、change_1乃至change_3によるカウント動作の停止が行なわれる。
【0032】
図7は、グラフィクス処理装置の具体的なシステム構成を示す図である。図7において図2と同一の構成要素は同一の番号で参照し、その説明は省略する。図7のグラフィクス処理装置は、外部メモリ15、外部RAM16、ブレンド処理部17、メモリアクセス制御回路60、メモリコントローラ61、CPU62、及びコマンド解釈部63を含む。メモリアクセス制御回路60は、図2に示すアドレス送信部20、データ受信部21、バックアップ部22、バックアップ部23、制御部24、及び制御部25を含む。
【0033】
まずCPU62が、描画する画像の座標とサイズとに関する画像情報をコマンド解釈部63に供給する。コマンド解釈部63は、メモリアクセス制御回路60の制御部24及び25に開始信号を供給するとともに、画像の座標とサイズとに関する画像情報をアドレス送信部20に供給する。これらの供給信号及び情報に応じて、メモリアクセス制御回路60は、メモリコントローラ61を介して外部メモリ15から画像データを読み出し、読み出した画像データをブレンド処理部17へ渡し、ブレンド処理後の画像データを外部メモリ15へ書き込む。これらの処理が完了した時点で、アドレス送信部20の制御部24が終了信号をコマンド解釈部63へ送信する。この終了信号に応答して、コマンド解釈部63は終了信号をCPU62へ送信する。CPU62は、終了信号の受信により、画像描画処理を終了する。
【0034】
図8はアドレス送信部20及びバックアップ部22の構成の一例を示す図である。アドレス送信部20は、レジスタ30、レジスタ更新制御部70、リードライト制御部71、データ並び替え部72、アドレス計算部73、Xカウント部74、Yカウント部75、RAM容量計算部76、及び終了判定部77を含む。バックアップ部22は、セレクタ78−1乃至78−6、及びレジスタ79−1乃至79−4を含む。アドレス送信部20には、制御部24から状態開始信号と状態信号とが供給される。またブレンド処理部17から、ブレンド処理後のデータと当該データの有効無効を示すデータ有効無効信号とが供給される。またコマンド解釈部63から、画面Xサイズ、描画Xサイズ、描画Yサイズ、及びRAM上限値が供給される。バックアップ部22には、制御部24から状態信号が供給される。またコマンド解釈部63から、開始信号、入力画像SRCの開始メモリアドレスであるSRCベースアドレス、出力先画像DSTの開始メモリアドレスであるDSTベースアドレス、及びアルファマップALPの開始メモリアドレスであるALPベースアドレスが供給される。
【0035】
図9は、アドレス送信部20の動作を示すフローチャートである。ステップS1で、レジスタ更新制御部70が状態開始信号を受信したか否かを判定する。受信した場合には、ステップS2に進み、受信していない場合にはステップS3に進む。ステップS2では、レジスタ更新制御部70による制御の下で、バックアップ部22からのレジスタ値をレジスタ30に書き込む。具体的には、制御部24からの状態信号により、現在の状態(例えばSRC状態)に対応するレジスタ79−1乃至79−4のうちの1つ(例えばSRC状態に対応するレジスタ79−1)が、セレクタ78−6により選択される。セレクタ78−6により選択されたレジスタの出力するレジスタ値が、レジスタ更新制御部70からの書込み指示信号によりレジスタ30に書き込まれる。
【0036】
ステップS3で、現在の状態がW_DST状態であるか否かが判定される。現在の状態がW_DST状態である場合、ステップS4で、データ並び替え部72が有効なデータを受信したか否かを判定する。有効なデータを受信していない場合には処理を終了する。有効なデータを受信した場合、ステップS5で、データ並び替え部72がデータを並べ替える。このデータの並び替えにより、外部メモリ15に格納するために適した出力フォーマットになるように、ブレンド処理後のデータを並べ替える。なおステップS3で現在の状態がW_DST状態でないと判断された場合には、ステップS4とS5とをスキップしてステップS6に進む。
【0037】
ステップS6で、アドレス計算部73がアドレス計算を行ない、計算したアドレスを送信する。この時、現在の状態がW_DST状態であれば、リードライト制御部71がライト信号を送信し、それ以外の状態の場合には、リードライト制御部71がリード信号を送信する。これにより所望のアドレスに対するデータ書込み又はデータ読出しが実行される。ここで送信するアドレス値は、レジスタ30に格納されている開始アドレス値にXカウンタ値を加算することにより求められる。Xカウンタ値を順次1ずつ増加しながらアドレス値を送信することで、X方向の各画素に対応するメモリアクセスを実行する。Xカウンタ値が順次増加され、描画Xサイズに到達すると、開始アドレス値に画面Xサイズを加算することにより、次のライン(次のY座標)の開始アドレスを求める。次のラインに移動する毎にYカウンタ値は1増加され、Xカウンタ値は0に初期化される。
【0038】
ステップS7で、RAM容量を計算する。具体的には、RAM容量計算部76が、リードされるデータの数(=送信するアドレス数)をRAMカウンタ値として計数し、RAM上限値と比較する。RAM上限値を超える分の数については、次回のRAMカウンタ値として用いる。次にステップS8で、終了判定(終了条件の有無の検出)を行なう。Xカウンタ値をカウントするXカウント部74が、Xカウンタ値と描画Xサイズとを比較して、Xカウンタ値が描画Xサイズに到達したか否かを示す判定値を終了判定部77に供給する。同様に、Yカウンタ値をカウントするYカウント部75が、Yカウンタ値と描画Yサイズとを比較して、Yカウンタ値が描画Yサイズに到達したか否かを示す判定値を終了判定部77に供給する。またRAM容量計算部76が、RAMカウンタ値がRAM上限値以上であるか否かを示す判定値を終了判定部77に供給する。RAMカウンタ値がRAM上限値以上であれば、終了判定部77はステップS9において終了と判断し、ステップS10において状態終了信号を送信する(状態終了信号をアサートする)。またXカウンタ値が描画Xサイズに到達し且つYカウンタ値が描画Yサイズに到達すると、終了判定部77はステップS9において終了と判断し、ステップS10において状態終了信号を送信する(状態終了信号をアサートする)。以上でアドレス送信部20のアドレス送信処理を終了する。
【0039】
なお終了判定部77が状態終了信号を送信すると、この状態終了信号がバックアップ開始信号としてバックアップ部22に供給される。このバックアップ開始信号は、状態信号が示す状態(例えばSRC状態)に対応するレジスタ(例えばSRC状態に対応するレジスタ79−1)に、デマルチプレクサ78−5により選択的に供給される。バックアップ開始信号を受け取ったレジスタは、アドレス送信部20のレジスタ30からのレジスタ値を格納する。これによりアドレス送信部20のレジスタ30のレジスタ値が退避される。なお開始信号は、各画像データの一番最初のデータを読み出す時にのみアサートされる信号である。この開始信号がアサート状態の時には、バックアップ開始信号を受け取ったレジスタは、レジスタ30からのレジスタ値ではなく外部からのSRCベースアドレス、DSTベースアドレス、及びALPベースアドレスを格納する。
【0040】
図10は、データ受信部21及びバックアップ部23の構成の一例を示す図である。図10において、図2と同一の構成要素は同一の番号で参照し、その説明は省略する。データ受信部21は、データ処理部35及びデータ遅延回路37を含む。データ処理部35は、レジスタ(データ並べ替えレジスタ)36、アドレス計算部80、リードライト制御部81、及びリードアドレス比較部82を含む。バックアップ部23は、デマルチプレクサ88−1及びセレクタ88−2、及びレジスタ89−1乃至89−3を含む。データ受信部21には、制御部25から状態開始信号と状態信号とが供給される。また外部メモリ15からの読出しデータとデータ有効無効信号とが供給される。またFIFO26から読み出した状態終了信号DTPが供給される。初期化信号INITは外部から供給されてもよいし、図2に示すように内部で初期化信号生成部38により生成してもよい。またデータ受信部21は、外部RAM16からSRCデータ、DSTデータ、ALPデータ、及びこれらのデータの有効/無効を示すRAMデータ有効無効信号が供給される。バックアップ部23には、制御部25から状態信号が供給される。
【0041】
図11は、データ受信部21の動作を示すフローチャートである。ステップS1で、データ処理部35が状態開始信号を受信したか否かを判定する。受信した場合には、ステップS2に進み、受信していない場合にはステップS3に進む。ステップS2では、バックアップ部23からのレジスタ値をレジスタ36に書き込む。具体的には、制御部25からの状態信号により、現在の状態(例えばSRC状態)に対応するレジスタ89−1乃至89−3のうちの1つ(例えばSRC状態に対応するレジスタ89−1)が、セレクタ88−2により選択される。セレクタ88−2により選択されたレジスタの出力するレジスタ値が、レジスタ36に書き込まれる(復帰される)。
【0042】
ステップS3で、現在の状態がW_DST状態であるか否かが判定される。現在の状態がW_DST状態でない場合、ステップS4で、データ遅延回路37がデータ有効無効信号、読出しデータ、及び状態終了信号を遅延させる。ステップS5で、レジスタ36によりデータを並べ替える。このデータの並び替えにより、RAMへ格納するデータ単位である1ワードのデータ枠に、データ遅延回路37から受け取った有効な画像データのみを詰めていく。なおバックアップ部23から復帰した前回書き残したデータは、一番最初にRAMへ書き込むべきデータとなる。ステップS6で、データ処理部35がデータ遅延回路37から状態終了信号を受け取ったか否かを判定する。状態終了信号を受け取った場合、ステップS7でリードアドレス比較部82を介して状態終了信号を制御部25に送信すると共に、ステップS8でその時のRAMアドレスをリードアドレス比較部82に保持する。その後、ステップS10に進む。またステップS6で状態終了信号を受け取っていないと判断した場合、ステップS9で1ワード分のデータが揃ったか否かを判断する。1ワード分のデータが揃った場合、ステップS10に進む。1ワード分のデータが揃っていない場合、処理を終了してから再度データ受信処理を実行する。
【0043】
ステップS10で、レジスタ36からRAMアクセス有効無効信号及びRAMデータを外部RAM16に出力する。またそれと同時に、アドレス計算部80により計算したRAMアドレスを外部RAM16に出力する。この時、状態信号が示す状態がW_DST状態以外であるので、リードライト制御部81は、ライト信号を外部RAM16に出力している。これにより、外部RAM16に対する画像データの書込みが実行される。ステップS16で、RAMアドレスをカウントアップする。
【0044】
ステップS3で現在の状態がW_DST状態であると判断された場合、ステップS11で、アドレス送信部20のデータ要求生成部32(図2参照)からアドレス計算部80がデータ要求を受信したか否かを判断する。データ要求を受信していない場合には処理を終了する。データ要求を受信すると、ステップS12で、アドレス計算部80により計算したRAMアドレスを外部RAM16に出力する。この時、状態信号が示す状態がW_DST状態であるので、リードライト制御部81は、リード信号を外部RAM16に出力する。ステップS13で、ライト時に保持したアドレスとリードアドレスとを比較する。ステップS14でアドレスが一致すると判断されると、ステップS15で状態終了信号を送信する。これにより、外部RAM16からの画像データの読出しが完了する。なお読み出されたデータは、そのままデータ受信部21からブレンド処理部17に供給される。その後ステップS16でRAMアドレスをカウントアップし、データ受信部21の処理を終了する。
【0045】
なおデータ受信部21が状態終了信号を送信すると、この状態終了信号がバックアップ開始信号としてバックアップ部23に供給される。このバックアップ開始信号は、状態信号が示す状態(例えばSRC状態)に対応するレジスタ(例えばSRC状態に対応するレジスタ89−1)に、デマルチプレクサ88−1により選択的に供給される。バックアップ開始信号を受け取ったレジスタは、データ受信部21のレジスタ36からのレジスタ値を格納する。これによりデータ受信部21のレジスタ36のレジスタ値が退避される。
【0046】
図12は、ブレンド処理部17の動作を示すフローチャートである。ステップS1で、データ受信部21から受け取ったデータが有効か否か判断する。有効データである場合には、ステップS2で、例えばアルファブレンド処理DST=(1−ALP)DST+ALP・SRCを実行する。ブレンド処理としては、これに限られず、置換や乗算等の種々の処理があり得る。ステップS3で、ブレンド処理後のデータと当該データの有効/無効を示す有効無効信号とをアドレス送信部20に出力する。以上でブレンド処理部17の処理を終了する。
【0047】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【0048】
【図1】アドレス送信部の出力するアドレス及びデータ受信部の受信するデータとのタイミング関係を示すタイミング図である。
【図2】メモリアクセス制御回路の構成の一例を示す図である。
【図3】データ遅延回路の構成の一例を示す図である。
【図4】図3のデータ遅延回路の動作を示すタイミング図である。
【図5】データ遅延回路の構成の別の一例を示す図である。
【図6】図5のデータ遅延回路の動作を示すタイミング図である。
【図7】グラフィクス処理装置の具体的なシステム構成を示す図である。
【図8】アドレス送信部及びバックアップ部の構成の一例を示す図である。
【図9】アドレス送信部の動作を示すフローチャートである。
【図10】データ受信部及びバックアップ部の構成の一例を示す図である。
【図11】データ受信部の動作を示すフローチャートである。
【図12】ブレンド処理部の動作を示すフローチャートである。
【符号の説明】
【0049】
15 外部メモリ
16 外部RAM
17 ブレンド処理部
20 アドレス送信部
21 データ受信部
22、23 バックアップ部
24、25 制御部
26 FIFO

【特許請求の範囲】
【請求項1】
第1の内部レジスタを備え、前記第1の内部レジスタの状態を第1の状態に設定して第1の一連のアドレスを送信し、前記第1の内部レジスタの状態を第2の状態に設定して第2の一連のアドレスを送信するアドレス送信部と、
第2の内部レジスタを備え、前記第2の内部レジスタの状態を第3の状態に設定して前記第1の一連のアドレスに対応する第1の一連のデータを受信するとともに前記受信した第1の一連のデータを遅延させることなくデータ処理し、前記第2の内部レジスタの状態を第4の状態に設定して前記第2の一連のアドレスに対応する第2の一連のデータを受信するとともに前記受信した第2の一連のデータを所定の遅延時間だけ遅延させてから前記データ処理するデータ受信部と、
第1のバックアップ部と、
第2のバックアップ部と
を含み、前記アドレス送信部からの前記第1の一連のアドレスの送信終了に応答して前記第1の内部レジスタの状態を前記第1のバックアップ部に退避させるとともに前記第1のバックアップ部から前記第2の状態を前記第1の内部レジスタに復帰させ、前記データ受信部による前記第1の一連のデータの前記データ処理終了に応答して、前記所定の遅延時間を利用して前記第2の内部レジスタの状態を前記第2のバックアップ部に退避させるとともに前記第2のバックアップ部から前記第4の状態を前記第2の内部レジスタに復帰させることを特徴とするメモリアクセス制御回路。
【請求項2】
前記アドレス送信部からの前記第1の一連のアドレスの送信終了を示す終了信号を前記アドレス送信部から受け取り遅延させる遅延回路を更に含み、前記データ受信部は前記遅延回路により遅延された前記終了信号に応答して、前記受信した第2の一連のデータを前記所定の遅延時間だけ遅延させることを特徴とする請求項1記載のメモリアクセス制御回路。
【請求項3】
前記データ処理は、前記受信した第1の一連のデータ及び前記受信した第2の一連のデータをメモリに格納する処理であることを特徴とする請求項1又は2記載のメモリアクセス制御回路。
【請求項4】
前記遅延回路はFIFOであることを特徴とする請求項2記載のメモリアクセス制御回路。
【請求項5】
前記データ受信部は、
セレクタと、
受信したデータを遅延させることなく前記セレクタに供給する第1のデータ経路と、
受信したデータを前記所定の遅延時間だけ遅延させて前記セレクタに供給する第2のデータ経路と
を含み、前記セレクタは前記遅延回路により遅延された前記終了信号が到来する前は前記第1のデータ経路のデータを選択し、該終了信号が到来した後は前記第2のデータ経路のデータを選択することを特徴とする請求項2乃至4いずれか一項記載のメモリアクセス制御回路。
【請求項6】
前記データ受信部は、
直列接続された複数個のフリップフロップを含み、受信したデータを前記フリップフロップにより順次遅延させるシフトレジスタと、
前記複数個のフリップフロップのそれぞれの出力データを受け取るセレクタと、
前記遅延回路により遅延された前記終了信号に応答してカウントを開始するカウンタと
を含み、前記セレクタは前記カウンタのカウンタ値に応じて前記複数個のフリップフロップの何れかの出力データを選択することを特徴とする請求項2乃至4いずれか一項記載のメモリアクセス制御回路。
【請求項7】
前記アドレス送信部の前記第1の内部レジスタの状態の遷移を制御する第1の制御部と、
前記データ受信部の前記第2の内部レジスタの状態の遷移を制御する第2の制御部と
を含み、前記第1の制御部と前記第2の制御部とはそれぞれ別個に設けられていることを特徴とする請求項1乃至6いずれか一項記載のメモリアクセス制御回路。
【請求項8】
前記第1の制御部は前記第1の内部レジスタの状態を順番に4つの状態に遷移させ、前記4つの状態はそれぞれ、第1の画像データの読出しアドレスを送信する状態、第2の画像データの読出しアドレスを送信する状態、第3の画像データの読出しアドレスを送信する状態、及び前記第1乃至第3の画像データに基づいて生成した第4の画像データを書き込むアドレスを送信する状態であることを特徴とする請求項7記載のメモリアクセス制御回路。
【請求項9】
前記第1の画像データは入力画像データであり、前記第2の画像データは出力先画像データであり、前記第3の画像データはアルファマップであり、前記第4の画像データは前記入力画像データと前記出力先画像データとを前記アルファマップによりアルファブレンドした出力画像データであることを特徴とする請求項8記載のメモリアクセス制御回路。
【請求項10】
外部メモリから画像データを読み出すメモリアクセス制御回路と
前記メモリアクセス制御回路が読み出した画像データを処理する画像処理部と
を含み、前記メモリアクセス制御回路は、
第1の内部レジスタを備え、前記第1の内部レジスタの状態を第1の状態に設定して第1の一連のアドレスを送信し、前記第1の内部レジスタの状態を第2の状態に設定して第2の一連のアドレスを送信するアドレス送信部と、
第2の内部レジスタを備え、前記第2の内部レジスタの状態を第3の状態に設定して前記第1の一連のアドレスに対応する第1の一連のデータを受信するとともに前記受信した第1の一連のデータを遅延させることなくデータ処理し、前記第2の内部レジスタの状態を第4の状態に設定して前記第2の一連のアドレスに対応する第2の一連のデータを受信するとともに前記受信した第2の一連のデータを所定の遅延時間だけ遅延させてから前記データ処理するデータ受信部と、
第1のバックアップ部と、
第2のバックアップ部と
を含み、前記アドレス送信部からの前記第1の一連のアドレスの送信終了に応答して前記第1の内部レジスタの状態を前記第1のバックアップ部に退避させるとともに前記第1のバックアップ部から前記第2の状態を前記第1の内部レジスタに復帰させ、前記データ受信部による前記第1の一連のデータの前記データ処理終了に応答して、前記所定の遅延時間を利用して前記第2の内部レジスタの状態を前記第2のバックアップ部に退避させるとともに前記第2のバックアップ部から前記第4の状態を前記第2の内部レジスタに復帰させることを特徴とする画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate