説明

半導体集積回路、情報記憶方法

【課題】異常画像を発生させることなく、プリフェッチの読み出し時間を短縮することができる半導体集積回路及び情報記憶方法を提供すること。
【解決手段】メモリアービタ15にメモリアクセス要求を発行する周辺回路14の有無を監視するアービタアクセス監視手段35と、周辺回路14がメモリアービタ15にメモリアクセス要求を発行してない場合に、メモリアービタにメモリアクセス要求を発行し、命令又はデータをバーストリードするバーストリード手段37と、メモリ23からバーストリードされた命令又はデータをメモリアービタよりもCPU側で記憶するバッファ手段33,34と、命令のアドレスをデコードするアドレスデコード手段31と、命令又はデータが前記バッファ手段に記憶されているか否かを判定するアドレス判別手段32と、命令又はデータが前記バッファ手段に記憶されている場合は、バッファ手段に記憶されている命令又はデータをCPUに供給する、ことを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリからデータなどを読み出す半導体集積回路に関し、特に、データ等をプリフェッチする半導体集積回路及び情報記憶方法に関する。
【背景技術】
【0002】
CPUがデータをメモリからCPUのキャッシュにプリフェッチする高速化技術が知られている。一般的なプリフェッチは、アプリケーションによってデータ(命令を含め)が必要になる前に、メモリから高速なキャッシュにデータをロードしておくことをいう。プリフェッチの動作はCPUのアーキテクチャによって様々であるが、大きく、ハード的なプリフェッチとソフト的なプリフェッチに分けられる(いずれの場合もCPUがプリフェッチするものとして説明する)。また、プリフェッチを行うことで特にパイプラインの処理効率の向上に効果がある。
【0003】
しかし、今までのプリフェッチ機能では、CPUがプリフェッチする際、より優先順位の高いDMAC(Direct Memory Access Controller)のメモリアクセスによって、メモリアービタからメモリアクセス権が付与されるまで待たされる等、メモリからのデータ読み出しに時間がかかることがあった。このため、パイプライン処理の効率を十分に向上させることができない場合があった。
【0004】
また、プリフェッチ命令は投機的に行われるため、プリフェッチされたデータが後続のLoad命令で参照されない場合(分岐予測ミスや分岐した場合)がある。この場合、プリフェッチ命令が再度実行されることがあり、後続のLoad命令を実行するためのCPUによるメモリアクセスを妨げ、プリフェッチを行っているにもかかわらず、CPUの処理効率が下がってしまう場合がある。
【0005】
そこで、メモリアービタにおけるCPUの優先順位を上げることにより、CPUとメモリ間のアクセスの時間を最小化させる技術が開示されている(例えば、特許文献1参照。)。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に開示されているように、メモリアービタにおけるCPUの優先順位を上げて待ち時間の短縮を図ると、他の処理において不都合が生じるという問題がある。
【0007】
図1は、メモリアービタにおけるCPUの優先順位を上げた場合の不都合を説明する図の一例である。CPUとDMACはメモリへのアクセスの際メモリアービタの調停を受け、優先順位に従ってメモリにアクセスできるようになる。
【0008】
このCPUが画像処理装置に搭載されているとして説明する。CPUはPCから送信されたPDLデータをメモリから読み出し画像データ(ラスタデータ)に変換し、メモリに記憶する。または、エンジン部のスキャナが原稿を読み取り、画像処理ASICが画像処理した画像データを、DMACがメモリに記憶する。例えば、CPUがメモリからPDLデータを読み出す際に、DMACの方が優先順位が高いためメモリアービタに待たされることがある。
【0009】
DMACは、画像処理ASICに、特定の間隔で一定量のデータをメモリから読み出し転送する。一定量のデータが所定のタイミングで画像処理ASICに送出されないと、一部の画像が欠落するなど異常画像が発生するため、画像データを読み出すDMACの優先順位は高く設定されている。
【0010】
このため、メモリアービタにおけるCPUの優先順位を上げてプリフェッチを優先させると、画像処理のためにDMACが画像データをメモリから画像処理ASICに送信する処理の優先順位が下がり、異常画像が発生するおそれを生じさせる。このように、メモリアービタにおける優先順位の変更だけではCPUがメモリからデータをプリフェッチする際の遅延を解決できない。
【0011】
本発明は、上記課題に鑑み、異常画像を発生させることなく、プリフェッチの読み出し時間を短縮することができる半導体集積回路及び情報記憶方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
上記課題に鑑み、本発明は、メモリアービタを介してメモリから読み出した命令又はデータを前記CPUに供給する半導体集積回路であって、前記メモリアービタにメモリアクセス要求を発行する周辺回路の有無を監視するアービタアクセス監視手段と、前記周辺回路がメモリアービタにメモリアクセス要求を発行してない場合に、前記メモリアービタにメモリアクセス要求を発行し、命令又はデータをバーストリードするバーストリード手段と、メモリからバーストリードされた命令又はデータを前記メモリアービタよりも前記CPU側で記憶するバッファ手段と、前記CPUから取得した命令のアドレスをデコードするアドレスデコード手段と、前記アドレスデコード手段がデコードしたアドレスの命令又はデータが前記バッファ手段に記憶されているか否かを判定するアドレス判別手段と、を有し、命令又はデータが前記バッファ手段に記憶されてない場合は、前記メモリアービタにメモリアクセス要求を発行し、命令又はデータが前記バッファ手段に記憶されている場合は、前記バッファ手段に記憶されている命令又はデータを前記CPUに供給する、ことを特徴とする。
【発明の効果】
【0013】
異常画像を発生させることなく、プリフェッチの読み出し時間を短縮することができる半導体集積回路及び情報記憶方法を提供することができる。
【図面の簡単な説明】
【0014】
【図1】メモリアービタにおけるCPUの優先順位を上げた場合の不都合を説明する図の一例である。
【図2】画像形成装置の概略的な特徴を説明する図の一例である。
【図3】画像形成装置の構成図の一例である。
【図4】ユーザがDMAC0〜3の優先順位を設定するレジスタの一例を示す図である。
【図5】代理リードアクセス回路の構成図の一例である。
【図6】命令について連続したアドレス順にプリフェッチするアドレスを算出する手順を説明する図の一例である。
【図7】メモリの構造を模式的に説明する図の一例である。
【図8】代理リードアクセス回路の動作手順の一例を示すフローチャート図である。
【図9】メモリアクセスのタイミングチャート図の一例である。
【図10】代理リードアクセス回路の構成図の一例である(実施例2)。
【図11】代理リードアクセス回路の動作手順の一例を示すフローチャート図である(実施例2)。
【図12】処理手順とデータバッファの状態を模式的に示す図の一例である。
【図13】処理手順とデータバッファの状態を模式的に示す図の一例である。
【発明を実施するための形態】
【0015】
以下、本発明を実施するための形態について図面を参照しながら実施例を挙げて説明する。
【0016】
図2は、本実施形態の画像形成装置の概略的な特徴を説明する図の一例である。画像形成装置は、従来と比べ、代理リードアクセス回路18を有する点に特徴の1つがある。代理リードアクセス回路18は、CPU19が将来必要とすると思われるデータをメモリ23からバーストリードし、保持しておく(以下、バーストリードのことを「プリフェッチ」という場合がある)。代理リードアクセス回路18は、データのプリフェッチの前、DMAC(Direct Memory Access Controller)14のリードアクセス要求を監視し、優先順位の高いDMAC14からの要求がない場合のみ、メモリアービタ15にリードアクセス要求を発行する。
【0017】
優先順位の高いDMAC14の転送を代理リードアクセス回路18の読み出しよりも優先するので異常画像を発生させることがなく、また、CPU19のリードアクセス要求に対して、代理リードアクセス回路18はCPU19の近いところにデータを保持しているので、メモリアービタ15による調停を受けることなく高速に応答できる。
【0018】
また、代理リードアクセス回路18は「とにかく先読み」するのではなく、プリフェッチされたデータがLoad命令の対象にならない場合(ヒットミス)、CPU19のリードアクセスを優先させる。このため、従来、生じえた、「先読みされたデータ又は命令が、分岐命令のために次のCPU19の命令フェッチでは参照されなかった」という不都合を極力回避することができる。
【実施例1】
【0019】
〔構成〕
図3は、画像形成装置100の構成図の一例を示す。画像形成装置100はネットワークを介してPC200と接続されている。PC200は、ユーザの操作を受け付けてワープロソフトなどが作成した文書をプリンタドライバに送出する。プリンタドライバは、画像形成装置100が解釈してラスタデータを生成するためのPDLデータを生成する。また、画像形成装置100がPC200に画像データを送信することもできる。
【0020】
画像形成装置100は、コントローラボード50、エンジンボード40、画像読取部30、及び、画像書き込み部20を有する。コントローラボード50、エンジンボード40の区分や、コントローラボード50におけるブロックの配置は一例に過ぎない。
【0021】
図示するように、エンジンボード40は画像処理ASIC(Application Specific Integrated Circuit)11を有し、画像処理ASIC11には画像読取部30及び画像書き込み部20が接続されている。
【0022】
画像読取部30は、スキャナ装置などであり、画像形成装置100の主に上部に搭載されている。画像読取部30は、原稿を載置するためのコンタクトガラスと、露光ランプと、ミラー系、撮像素子(フルカラーCCD)及び駆動系(ステッピングモータ)等を有する。原稿を読み取る際、露光ランプとミラー系が移動することによって、原稿の画像面の全体が光学的に走査される。原稿の画像面の像はミラー系によって撮像素子に導かれ光電変換され、カラー又は白黒の画像データが生成される。
【0023】
画像書き込み部20は、電子写真方式又はインクジェット方式の画像形成を行う。電子写真方式の場合、画像書き込み部20には、光書き込み部と画像形成部があり、光書き込み部はポリゴンミラー、レンズ、反射ミラー、レンズ等により、感光体が帯電した状態で光を照射して静電潜像を形成する。
【0024】
画像形成部20は、感光体の周囲に配置された帯電部、現像部、クリーニング部等を有し、感光体の外周面に色画像データに応じて形成された静電潜像に、トナーを付着させ顕像化する。この後、トナー画像は記録媒体に転写され定着装置で記録媒体に定着される。なお、画像読取部30と画像書き込み部20の他、エンジンボード40にはFAX装置が接続されていてもよい。
【0025】
画像処理ASIC11は、画像読取部30が読み取って生成した画像データにスキャナγ変換、シェーディング補正などを施しPCI Expressバス12を介してコントローラボード50に送信する。また、コントローラボード50からPCI Expressバス12を介して送信された画像データに、後述するディスクリプタ情報に基づき画像処理を施す。画像処理は例えば、像域分離判定処理、空間フィルタ、色空間変換処理、変倍処理、プリンタγ変換処理、ディザ処理等である。
【0026】
コントローラボード50は、CPU19、ASIC22及びメモリ23を有し、ASIC22はレジスタアクセス回路21、代理リードアクセス回路18、PCI Express I/F回路13、DMAC14(区別する場合、DMAC0〜3という)、メモリアービタ15、メモリI/F回路17、及び、ネットワークI/F回路16を有する。
【0027】
CPU19は、画像形成装置100の全体を制御する。CPU19は、ユーザの操作に応じてアプリケーションを実行してASIC22及び画像処理用ASIC11の処理を制御する。アプリケーションは不図示のROMやHDD等の不揮発メモリに記憶されている。
【0028】
メモリ23は、例えばDIMMなどの高速なメモリ23であるがHDDやフラッシュメモリを用いてもよい。
【0029】
レジスタアクセス回路21は、ASIC22内部のレジスタにアクセスする。レジスタアクセス回路21はコンフィギュレーションレジスタにアクセスし、画像形成装置100が備える機能を参照したり、省電力モードにおける状態を制御したりする。なお、CPU19はメモリ23と各種のレジスタを区別しないでアクセスする(同じメモリ空間にある)。
【0030】
PCI Express I/F回路13はコントローラボード50とエンジンボード40を高速に接続するシリアルポートである。DMAC14はCPU19を介さずに、周辺機器からのデータをメモリ23に書き込む、また、メモリ23から読み出したデータを周辺機器に転送する。4つのDMAC0〜3のうち、本実施例ではDMAC0、1がメモリ23から画像データを読み出し画像処理ASIC11に送信し、DMAC2、3が画像処理ASIC11から受信した画像データをメモリ23に書き込む。
【0031】
ネットワークI/F回路16は、LAN等のネットワークに接続するNIC(Network Interface Card)であり、PC200から受信したPDLで記述されたPDLデータをメモリ23に記憶する。
【0032】
代理リードアクセス回路18について詳しくは後述するが、代理リードアクセス回路18は、メモリ23から命令又はデータをバーストリード(プリフェッチ)する回路である。
【0033】
メモリアービタ15は、予め定められた優先順位に基づき、DMAC0〜3、CPU19、及びネットワークI/F回路16からのメモリアクセス要求を調停する。メモリアービタ15は、優先順位に従いラウンドロビンなどの調停方法で、DMAC0〜3やCPU19をメモリ23へのアクセスを許可する。本実施例では、DMAC0,1の優先順位が最も高く、次に、CPU19が高いものとする。DMAC2,3、及び、ネットワークI/F回路16の優先順位は、本実施例ではどちらが高くてもよいが、例えばDMAC2,3の方が高いとする。
【0034】
〔DMAC0〜3の優先順位〕
ここでどのDMAC0〜3の優先順位が高いと見なすかをユーザが設定可能としてもよい。図4は、DMAC0〜3の優先順位を設定するためのレジスタの一例を示す図である。レジスタ0〜3は例えば、メモリアービタ15に配置されている。CPU19は、電源オン時の初期処理として、レジスタ0〜3にDMAC0〜3の優先順位を設定する。初期処理のプログラムは不図示の不揮発メモリに記憶されている。
【0035】
CPUは初期処理のプロラムに記述された又は不揮発メモリにパラメータとして記憶されているDMAC0〜3の優先順位を、レジスタ0〜3に設定する。優先順位の設定の仕方は、優先順位のそのものを設定する方法や、CPU19に対する相対的な優先順位を設定する方法がある。
【0036】
前者では、CPU19は例えば優先順位が高いほど小さな値をレジスタ0〜3に設定する。また、CPU19はCPU19の優先順位をCPU用のレジスタに設定してもよいし、CPU19の優先順位はある数値として固定として登録されていてもよい。
【0037】
後者では、CPU19は、例えば、CPU19よりも優先順位が高いDMAC0〜3のレジスタ0〜3にのみフラグ(例えばFF)を設定する。
【0038】
ユーザは初期処理のプログラムを記述できるので、このようにしてCPU19に対するDMAC0〜3の優先順位を設定することができる。また、レジスタでなく、画像形成装置100のオペレーションパネルからDMAC0〜3の優先順位の設定を受け付けてもよい。
【0039】
〔メモリ23へのアクセス例〕
メモリ23がアクセスされるのは、例えば、以下のような場合である。本実施例では主にc)PDLデータや命令又はデータ等の読み出しと、d)画像データを読み出しの競合に着目して説明している。
a)画像読取部30が読み取った画像データをDMAC2,3がメモリ23に記憶する場合。
b)PC200から送信されたPDLデータをネットワークI/F回路16がメモリ23に記憶する場合。
c)CPU19がメモリ23からPDLデータや命令又はデータ等を読み出す場合、又は、レンダリングした(ラスタデータにした)画像データ等をメモリ23に書き込む場合。
d)DMAC0,1がメモリ23から画像データを読み出し、PCI Express I/F回路13を経由して、画像処理ASIC11に送信する場合。
【0040】
〔代理リードアクセス回路〕
図5は、代理リードアクセス回路18の構成図の一例を示す。本実施例の代理リードアクセス回路18は、命令又はデータをメモリ23から読み出す(リードする)回路であり、メモリ23に書き込む(ライトする)場合は、作動しない。ライトアクセス要求はCPU19からメモリアービタ15に直接出力される。
【0041】
アドレスデコード部31は、CPU19からのLoad命令又はWrite命令(Load命令がリードアクセス要求の一例である)のアドレスを解析し、ASIC22内のレジスタへのアクセスか、又は、メモリ23へのアクセスであるかを判定する。例えば、アドレスデコード部31は、相対アドレス指定方式やインデックスアドレス指定のアドレス指定方式に基づき、オペランドから物理的なアドレスを求める。ASIC22内のレジスタのアドレスは既知なので、求められた物理的なアドレスがレジスタとメモリ23のどちらを指定するかは容易に判定できる。または、CPU19の命令セットにレジスタアクセス用の命令が搭載されている場合、所定の信号線の常態から判定することもできる。
【0042】
CPU19からのリード/ライトアクセス要求がレジスタへのアクセスの場合、アドレスデコード部31は解析したアドレスをレジスタアクセス回路21に通知する。また、メモリ23へのアクセスの場合、アドレスデコード部31は、解析したアドレスをメモリアクセス判定部32に通知する。このアドレスに記憶されている命令又はデータをリード対象の命令又はデータという。
【0043】
メモリアクセス判別部32は、CPU19からのリードアクセス要求が命令リードアクセスなのか、データリードアクセスなのかを判定する。この判定は、例えば、CPU19がRISC型のCPUの場合、RISC型のCPU19のピンである「System Interface RdType」の信号の状態により判定される。または、メモリ23における命令(プログラム)のアドレス範囲が固定であれば、アドレスデコード部31が解析したアドレスが、メモリ23のデータ領域内か命令領域内かにより判定できる。
【0044】
また、メモリアクセス判別部32は、リード対象の命令又はデータが命令バッファ34又はデータバッファ33に保持されているかを判別する。このため代理リードアクセス回路18は、メモリ23から読み出し、データバッファ33又は命令バッファ34に記憶している命令又はデータのアドレスを不図示のレジスタ等に記憶する。メモリアクセス判別部32は、アドレスデコード部31が解析したアドレスが、レジスタに記憶された範囲に含まれるか否かに基づき、リード対象の命令又はデータが命令バッファ34又はデータバッファ33に保持されているかを判別する。リード対象の命令又はデータが命令バッファ34又はデータバッファ33に保持されていない場合、セレクタ38にセレクタ信号を送出する。
【0045】
また、メモリアクセス判別部32は、CPU19がリード対象としたデータが、命令バッファ34又はデータバッファ33に記憶されているアドレスの最後の命令又はデータか否かを判定する。次述する代理DMAC37にとって、命令バッファ34又はデータバッファ33に格納された命令又はデータのアドレスは全てが明らかなので、命令バッファ34又はデータバッファ33に格納されている最後の命令又はデータのアドレスも明らかである。したがって、CPU19がリード対象としたデータが、最後の命令又はデータのアドレスと一致するか否かにより判定される。
【0046】
CPU19がリード対象としたデータが、命令バッファ34又はデータバッファ33に記憶されている命令又はデータのうち、最後のアドレスの命令又はデータの場合、メモリアクセス判定部32はセレクタ38にセレクタ信号を送出せず、代理DMAC37にバーストリードを許可する。換言すると、CPU19がリード対象としたデータが、命令バッファ34又はデータバッファ33に記憶されている命令又はデータのうち、最後のアドレスの命令又はデータでない場合、メモリアクセス判定部32はセレクタ38にセレクタ信号を出力する。
【0047】
なお、命令バッファ34とデータバッファ33の2種類のバッファを備える理由は、プログラムの局所性により、命令専用のバッファを設けることでCPU19が命令をフェッチする際の処理効率を向上させるためである。すなわち、CPU19は、命令を読み出す際は命令バッファ34の命令にほぼ連続して読み出すことができる。データバッファ33についても同様である。例えば、CPU19が命令のリードアクセス要求とデータのリードアクセス要求を交互に発行した場合にも、毎回バッファの内容を更新する必要を無くすことができ、極力、データバッファ33又は命令バッファ34の中からCPU19にデータを供給できる。
【0048】
なお、データバッファ33と命令バッファ34は、FF(フリップフロップ回路)、SRAMなどの比較的高速な記憶手段であるが、構成手段は問わない。
【0049】
アービタアクセス状況監視部35は、ASIC22内部の各DMAC0〜3とメモリアービタ15間のリードアクセス要求の有無を監視する。すなわち、CPU19よりも優先順位の高いDMAC0,1からのリードアクセス要求の有無を判定する。アービタアクセス状況監視部35は、代理リードアクセス回路18より優先順位が高い周辺機器がリード/ライトアクセス要求を出していない場合に限り、代理DMAC37にメモリ23からのリードアクセスを許可する。
【0050】
プリフェッチアドレス算出部36は、過去のCPU19からのリードアクセスを基に、代理リードアクセス回路18が読み出すべきアドレスを算出する。
図6は、アドレスの算出方法を模式的に説明する図の一例である。よく知られている算出方法は、すでに読み出した命令のアドレスに連続するアドレスを読み出すアドレスとする算出方法、一定間隔のデータのアドレスの読み込みが継続すると次も同じ間隔を空けたアドレスを読み出すアドレスとして算出する方法、過去にCPU19が不連続に読み出した命令のアドレスを記憶しておきそれを参考に次に読み出すアドレスを算出する方法、等がある(分岐の学習)。
【0051】
図6では命令について、連続したアドレス順にプリフェッチするアドレスを算出する手順を説明する図の一例である。命令バッファ34にはメモリ23のアドレス100〜200の命令が記憶されている。よって、命令バッファ34のサイズは100バイトである。この場合、プリフェッチアドレス算出部36は、アドレス200に連続したアドレス200から300をプリフェッチするアドレスとして算出する。
【0052】
また、図6ではデータについて、一定間隔のアドレス毎にプリフェッチするアドレスを算出する手順を示す。データバッファ33にはアドレス1100〜1200のデータ(D4)が記憶されている。また、サイズは100バイトである。さらに、プリフェッチアドレス算出部36は、不図示のレジスタにCPU19がアクセスした過去のいくつかのアドレスを記憶している。図ではCPU19がアドレス700と1100のデータにアクセスした。この場合、プリフェッチアドレス算出部36は、CPU19が一定間隔でメモリ23にアクセスするとしてアドレス1100+400を先頭アドレスに、1500から1600をプリフェッチするアドレスとして算出する。
【0053】
プリフェッチアドレス算出部36は、算出したアドレスを代理DMAC37に通知する。代理DMAC37は、アービタアクセス状況監視部35がメモリ23からのリードアクセスを許可した場合に限り、メモリアービタ15に対してリードアクセス要求を発行する。この時、代理リードアクセス回路18の代理DMAC37はメモリ23に対してバーストアクセスを行うため、通常のCPU19アクセスに比べてメモリ利用効率が上がるという点でも、処理速度の向上に効果がある。
【0054】
代理DMAC37はメモリ23から読み出した命令又はデータを、命令バッファ34又はデータバッファ33に格納する。本実施例では、命令バッファ34又はデータバッファ33のサイズはバーストリードの読み込みサイズと同じとする。よって、代理DMAC37はバーストリードした命令又はデータをそのまま命令バッファ34又はデータバッファ33に上書きする。
【0055】
命令バッファ34又はデータバッファ33のサイズがバーストリードの読み込みサイズより大きい場合(かつ、命令バッファ34又はデータバッファ33に空きがない場合)、代理DMAC37は、CPU19が参照してから最も時間の経過した命令又はデータ、プリフェッチされてから最も時間の経過した命令又はデータ等を排除する。
【0056】
セレクタ38は、セレクタ信号に基づき、代理DMAC37又はアドレスデコード部31のいずれかのリードアクセス要求を選択的にメモリアービタ15に出力する。
・メモリアクセス判別部32からのセレクト信号が出力された場合、従来通りにCPU19からのリードアクセス要求をメモリアービタ15に直接出力する。
・メモリアクセス判別部32からのセレクト信号が出力されない場合、代理DMAC37のリードアクセス要求をメモリアービタ15に直接出力する。
【0057】
したがって、代理DMAC37は、リードアクセスにおいて、CPU19の次の優先順位を持っているとも言える。
【0058】
〔メモリ23の構成例〕
図7は、本実施例のメモリ23の構造を模式的に説明する図の一例である。メモリ23にはディスクリプタ情報を記憶するためのディスクリプタ領域が設けられている。ディスクリプタ情報は、処理されるべき画像データのアドレスと、処理されるべき画像データに使用する画像処理パラメータが格納されているアドレス等が記述される。
【0059】
なお、画像処理パラメータは、例えば帯電電位、現像バイアス値、定着温度設定値、中間調処理、カラー補正など、CPU19が装置の動作のために設定する各種のパラメータである。
【0060】
CPU19は、例えば起動時に、各DMAC0〜3用のディスクリプタ情報をメモリ23に書き込む。CPU19にとってディスクリプタ領域は既知であり、必要であれば領域を拡大・縮小できる。CPU19は、DMAC0〜3にそれぞれのディスクリプタ情報のアドレスを書き込む等で通知する。
【0061】
DMAC0〜3はそれぞれディスクリプタ情報を読み出して自身のレジスタに設定する。例えば、ユーザがコピーする場合、画像読取部30に原稿をセットして、コピー条件を設定する。ユーザがスタートボタンを押下すると、コピーのアプリケーションで定まるDMAC2,3のいずれかが、メモリアービタ15の調停を受けた後、生成された画像データをディスクリプタ情報に基づきメモリ23に記憶する。DMAC2,3は画像データをメモリ23に記憶したことをDMAC0,1に割り込みなどにより通知する(CPU19に通知してもよい)。
【0062】
これによりDMAC0,1はメモリアービタ15による調停を受けた後、ディスクリプタ情報に基づきメモリ23から画像データを読み出すことができる。
【0063】
〔動作手順〕
図8は、代理リードアクセス回路18の動作手順の一例を示すフローチャート図である。まず、代理リードアクセス回路18はCPU19からリードアクセス要求を受け付ける(S1)。
【0064】
アドレスデコード部31は、リードアクセス要求のアドレスを解析して、CPU19のアクセス対象空間がレジスタ空間か又はメモリ空間であるかを判定する(S2)。
【0065】
メモリ空間へのアクセスでない場合(S2のNo)、レジスタ空間へのアクセスなので、レジスタアクセス回路21にリードアクセス要求とアドレスを出力する(S14)。レジスタアクセス回路21はASIC22内部の各レジスタにアクセスする。
【0066】
メモリ空間へのアクセスの場合(S2のYes)、アドレスデコード部31はメモリアクセス判別部32にリードアクセス要求とアドレスを出力する(S3)。
【0067】
メモリアクセス判別部32は、アクセス内容を解析する(S4)。この解析結果に基づき、メモリアクセス判別部32は、CPU19からのリードアクセスが命令リードアクセスなのか、データリードアクセスなのか、及び、命令バッファ34又はデータバッファ33にリード対象の命令又はデータが記憶されているか否か判定する(S5)。
【0068】
命令バッファ34又はデータバッファ33にリード対象のデータが記憶されていない場合(S5のNo)、メモリアクセス判別部32は、セレクタ38にセレクタ信号を出力することで、メモリアービタ15にリードアクセス要求を出力する(S6)。すなわちセレクタ38は、CPU19からのリードアクセスをそのままメモリアービタ15に出力する。
【0069】
メモリアービタ15によりメモリ23へのアクセス権が得られると、代理リードアクセス回路18はメモリ23から命令又はデータを読み出し、CPU19に出力する(S7)。
【0070】
ここまででCPU19からの1つのリードアクセス要求の処理が終了したことになり、CPU19からは次のリードアクセス要求が出力される可能性がある。
【0071】
ステップS7の時点でCPU19から次のリードアクセス要求が出力された場合(S8のYes)、処理はステップS1に戻り、次のリードアクセス要求に対し同様の処理が施される。
【0072】
ステップS7の時点でCPU19から次のリードアクセス要求が出力されない場合(S8のNo)、アービタアクセス状況監視部35は、CPU19よりも優先順位の高いDMAC0,1がメモリアービタ15にリードアクセス要求を発行しているか否かを判定する(S9)。
【0073】
CPU19よりも優先順位の高いDMAC0,1がメモリアービタ15にリードアクセス要求を発行している場合(S9のYes)、代理DMAC37はメモリアービタ15にアクセスできないので、処理はステップS8に戻る。この待機状態により、出力画像が異常になることを防止できる。
【0074】
また、優先順位の高いDMAC0,1からのリードアクセス要求がなくならないまま、CPU19が次のリードアクセス要求を出力した場合(S8のYes)、代理リードアクセス回路18はリードアクセス要求を受け付ける(S1に戻る)。
【0075】
このように、次のリードアクセス要求が発行されている場合には代理リードアクセス回路18がメモリアービタ15にリードアクセス要求を発行しないのは、CPU19のリードアクセス要求が分岐命令によるものであることを考慮したためである。分岐命令が実行されると、分岐先のアドレスが後続のアドレス部分に包含されている可能性は低く、代理リードアクセス回路18の発行するリードアクセス要求が、分岐命令により本来アクセスすべき領域へのリードアクセスの邪魔をするおそれがある。この場合、代理リードアクセス回路18の発行したリードアクセス要求は冗長なものとなり、命令バッファ34又はデータバッファ33の利用効率を下げるばかりでなく、CPU19のリードアクセス要求の処理の遅延を引き起こす。本実施例の代理リードアクセス回路18はCPU19のリードアクセスを優先するので、CPU19による分岐先のアドレスのリードアクセスを邪魔することがない。
【0076】
CPU19よりも優先順位の高いDMAC0,1がメモリアービタ15にリードアクセス要求を発行していない場合(S9のNo)、ステップS6のCPU19がリードアクセス要求した際のアドレスに基づき、プリフェッチアドレス算出部36が、CPU19が次にアクセスするであろうアドレスを算出する。このアドレスは、例えば、「CPU19がリードアクセス要求した際のアドレス+100」である。
【0077】
プリフェッチアドレス算出部36は、算出したアドレスを代理DMAC37に出力する。これにより、代理DMAC37は、リードアクセス要求をメモリアービタ15に出力する(S10)。
【0078】
メモリアービタ15は、DMAC1,0がリードアクセスを発行しないので、代理リードアクセス回路18にアクセス権を与える。よって、代理DMAC37は、DMAC1,0からリードアクセス要求がないタイミングで、CPU19が要求するアドレスから算出されたアドレスに対するプリフェッチのためのリードアクセス要求を発行することができる。
【0079】
バーストリードを行うことで、CPU19のシングルアクセスに比べてメモリ23の利用効率をよくすることができ、極力、多くのデータをCPU19に近いバッファに保持しておくことができる。
【0080】
次に、代理DMAC37は、メモリ23から読み出した命令又はデータを、命令バッファ34又はデータバッファ33のいずれかに格納する(S11)。
【0081】
ステップS5に戻り、命令バッファ34又はデータバッファ33にリード対象のデータが記憶されている場合(S5のYes)、代理リードアクセス回路18は命令バッファ34又はデータバッファ33に記憶されている命令又はデータをCPU19に出力する(S12)。これにより、CPU19は、メモリアービタ15がリードアクセス要求を受付けまでの待ち時間、メモリアクセスにおけるリード時間を削減できるため、CPU19の処理効率を向上させることができる。
【0082】
次に、メモリアクセス判別部32は、CPU19がリードした命令又はデータのアドレスが、命令バッファ34又はデータバッファ33に記憶されているアドレスの最後の命令又はデータか否かを判定する(S13)。
【0083】
この判定により、代理リードアクセス回路18は新たに後続の命令又はデータを命令バッファ34又はデータバッファ33に記憶するか否かを判定することができる。すなわち、S13の判定がYesならば、命令バッファ34又はデータバッファ33に命令又はデーは全て読み出された可能性が高いので、バーストリードにより置き換えることが好ましい。
【0084】
命令バッファ34又はデータバッファ33に記憶されているアドレスの最後の命令又はデータが参照されていない場合(S13のNo)、図8の処理は終了する。
【0085】
命令バッファ34又はデータバッファ33に記憶されているアドレスの最後の命令又はデータが参照されている場合(S13Yes)、処理はステップS8に進む。したがって、以降はCPU19から次のリードアクセス要求がなく(S8のNo)、かつ、CPU19よりも優先順位の高いDMAC0,1がメモリアービタ15にリードアクセス要求を発行していない場合(S9のNo)、プリフェッチが可能になる。したがって、S5で命令バッファ又はデータバッファに記憶されていないと判定される前に、プリフェッチすることが可能になる。
【0086】
図9は、メモリアクセスのタイミングチャート図の一例を示す。このタイミングチャート図は図8のステップS9において、CPU19からのリードアクセス要求に対し、代理DMAC37がメモリアービタ15にリードアクセス要求を発行可能か否かを、アービタアクセス状況監視部35が判定する処理に相当する。
【0087】
図9の「System I/F」は、CPU19とASIC22間のI/Fの状態を示し、「メモリアービタの入出力信号」は、メモリアービタ15に入力される信号とメモリアービタ15が出力する信号を示す。なお、図の1〜14の整数値はクロックの経過を示す。
【0088】
「SysAD」はリード又はライトのアドレスを示し、「SysCmd」はCPU19からのリード/ライトのアクセス内容(コマンド)であり、「ValidOut」はCPU19から有効なコマンド及びアドレスが出力されていることを示すLowアクティブな信号であり、「RdRdy」はASIC22がCPU19からのリードアクセス要求を受付け可能であることを示すLowアクティブな信号である。
【0089】
DMAC_n(n:0〜3)、及び、代理DMAC37に対応づけられた「MCmd」、「SCmdAccept」は、DMAC0〜3とメモリアービタ15間の信号である。知られた信号体系としてOCP(Open Core Protocol)I/Fに準拠した信号が知られている。「MCmd」は、DMAC0〜3がメモリアービタ15に対して発行するリード/ライトのアクセス内容(コマンド)を、「SCmdAccept」はメモリアービタ15がリード/ライトのアクセスを受け付けたことを示す信号である。
【0090】
なお、DMAC0、DMAC1は画像データの出力に関わるDMAC14で最も優先順位が高く、次に、CPU19、代理リードアクセス回路18、DMAC2、DMAC3という順に優先順位が高いものとする。
【0091】
以下、クロック番号の順番にタイミングチャートの説明をする。
2:CPU19が、「SysCmd」に"Read"を、「SysAD」に"Addr"を出力しているので、CPU19がメモリ23のリードアクセス要求をASIC22に発行している。
3:ASIC22はリードアクセス要求を受け付け、一旦、RdRdyをディアサートする。これにより、ASIC22はCPU19から次のリードアクセスを受け付けられなくなる。RdRdyのディアサートにより、SysAdに出力されたアドレス情報は代理リードアクセス回路18のプリフェッチアドレス算出部36に保持される。
4:遅延クロック
5:「DMAC_0 MCmd」等の"Read Req"に示すように、DMAC0、DMAC1、DMAC2、及び、DMAC3がリードアクセス要求を発行する。説明の便宜上、4つのDMAC0〜3のアクセス要求のタイミングを同一タイミングとしたが、各DMAC0〜3のアクセス要求の発行タイミングに特に、制約はない。
6:アービタは優先順位の高いDMAC0のリードアクセス要求を受け付け、「DMAC_0 SCmdAccept」に"Ack"を出力する。
7:このクロック7の間にDMAC0がメモリ23からデータを読み出したとする。
8:次に、メモリアービタ15は次に優先順位の高いDMAC1のリードアクセス要求を受け付け、「DMAC_1 SCmdAccept」に"Ack"を出力する。
9:この時点で、CPU19からのリードアクセス要求はなく(図8のS8)、アービタアクセス状況監視部35は、エンジンボード40に出力されるデータに関わるDMAC0、DMAC1のリードアクセス要求は存在しないと判定する(図8のS9)。
【0092】
そして、アービタアクセス状況監視部35は代理DMAC37にリードアクセス要求の発行を許可し、代理DMAC37はメモリアービタ15にリードアクセス要求を発行する(図8のS10)。代理DMAC37がアクセスするアドレスは上記プリフェッチアドレス算出部36が算出したアドレスが使用される。
10:次に、メモリアービタ15は次に優先順位の高いDMAC2のリードアクセス要求を受け付け、「DMAC_2 SCmdAccept」に"Ack"を出力する。
11:このクロック11の間にDMAC2がメモリ23からデータを読み出したとする。
12:次に、メモリアービタ15は次に優先順位の高い代理DMAC37のリードアクセス要求を受け付け、「代理DMAC SCmdAccept」に"Ack"を出力する。
13:このクロック13の間に代理DMAC37がメモリ23からデータを読み出したとする。
14:最後に、メモリアービタ15は一番優先順位の低いDMAC3のリードアクセス要求を受け付け、「DMAC_3 SCmdAccept」に"Ack"を出力する。
【0093】
以上説明したように、本実施例の画像形成装置100は、優先順位の高いDMAC0,1のメモリアクセスを代理リードアクセス回路18の読み出しよりも優先するので異常画像を発生させることがない。また、CPU19のリードアクセス要求に対して、代理リードアクセス回路18はCPU19の近いところにデータを保持しているので、メモリアービタ15による調停を受けることなく高速に応答できる。また、代理リードアクセス回路18にデータがない場合、CPU19のアクセスを優先するので、代理リードアクセス回路18がプリフェッチすることによりCPU19のアクセスが阻害されることがない。
【実施例2】
【0094】
本実施例ではCPU19がマルチコアの場合の画像形成装置100について説明する。
図10は、代理リードアクセス回路18の構成図の一例を示す。図10において図5と同一部の説明は省略する。アドレスデコード部31には1つのCPU19が接続されているがこのCPU19が2つのコアを有する。
【0095】
また、コアの数に合わせて、データバッファ33及び命令バッファ34も2つずつ存在する。コアの数だけデータバッファ33及び命令バッファ34があることで、それぞれのコアから交互にメモリリードアクセスが来ても、バッファの中身を入れ替える必要がなく、CPU19の処理効率を向上させることができる。
【0096】
CPU19のコアが3つ以上の場合は、データバッファ33及び命令バッファ34も3つ以上にすればよい。なお、コアと命令バッファ34又はデータバッファ33の対応は固定でなく、コア0がデータバッファ1及び命令バッファ1からデータ又は命令を読み出すことも、データバッファ0及び命令バッファ0から命令又はデータを読み出すこともある。コア1についても同様である。
【0097】
図11は、代理リードアクセス回路18の動作手順の一例を示すフローチャート図である。図11において図8と同等のステップには同じステップ番号を付した。主に実施例1と異なる点を説明する。
【0098】
図11のフローチャート図はステップS5以下で大きく2つに処理が分かれている点で図8と異なる。
【0099】
ステップS5のNo以下では、データバッファ0,1及び命令バッファ0,1が参照されない。そして、ステップS8とS9の条件をクリアすると、ステップS10で代理DMAC37がプリフェッチする。
【0100】
この後、本実施例の代理DMAC37は、メモリアクセス判別部32によるデータリードか命令リードかの判定結果に基づき、データバッファ0,1又は命令バッファ0,1に空きがあるか否かを判定する(S21)。
【0101】
そして、データバッファ0,1又は命令バッファ0,1に空きがある場合(S11のYes)、すでに命令又はデータが格納されているデータバッファ0,1又は命令バッファ0,1に、命令又はデータを格納する必要がないので、代理DMAC37は空いているデータバッファ0,1又は命令バッファ0,1にプリフェッチした命令又はデータを格納する(S11)。よって、コア0又はコア1のどちらかが停止状態の場合、コア0又はコア1のどちらかがデータバッファ0,1の全て又は命令バッファ0,1を、占有することもある。
【0102】
データバッファ0,1又は命令バッファ0,1に空きがない場合(S11のNo)、すでに命令又はデータが格納されているデータバッファ0,1又は命令バッファ0,1のいずれかにプリフェッチした命令又はデータを格納するため、代理DMAC37は、最も長い時間CPU19が参照していない命令バッファ34又はデータバッファ32に、メモリ23から読み出した命令又はデータを格納する(S22)。
【0103】
ステップS5に戻り、S5のYes以下では、データバッファ0,1及び命令バッファ0,1が参照され、代理リードアクセス回路18が命令バッファ0,1又はデータバッファ0,1からリード対象のデータをCPU19に出力する(S12)。
【0104】
次に、ステップS13で最後の命令又はデータが参照された場合、バッファ内に保持されているデータが必要ないと判断されるのは同じだが、本実施例ではステップS23〜S26が実行される。ステップS23〜25はS8〜S10と同等であるが、ステップS21とS26の処理が異なるため、ステップS23〜26が分岐されている。これは、複数あるデータバッファ0、1及び命令バッファ0,1を、ステップS22の処理により、コア0又はコア1が占有することを回避するためである。
【0105】
すなわち、ステップS25によって、代理DMAC37は、リードアクセス要求を発行して命令又はデータをバーストリードし、最後に参照したデータバッファ0、1及び命令バッファ0,1に格納することができる(S26)。
【0106】
以上のような処理により、CPU19にコアが複数あり、代理リードアクセス回路18が複数のデータバッファ0,1及び命令バッファ0,1を有する場合、データバッファ0,1及び命令バッファ0,1を有効に利用できる。
【0107】
図12は、処理手順とデータバッファの状態を模式的に示す図の一例である。図12では時間の経過に対するコア0,1の動作を示す。命令バッファについては省略するが、フローが同じなので命令バッファの状態も図12と同じである。
【0108】
まず、データバッファ0にコア0のリードアクセスに起因して算出されたアドレスのデータ(S10)が格納され、データバッファ1にコア1のリードアクセスに起因して算出されたアドレスのデータ(S10)が格納されているものとする。
【0109】
図12(a)では、時刻t1にコア0がデータバッファ0からデータを読み出す(S12)。読み出されたデータがデータバッファ0の最後のデータでない場合、処理はS1に戻るので、コア0の処理は終了する。一方、時刻t2にコア1がデータバッファ1からデータを読み出す(S12)。読み出されたデータがデータバッファ1の最後のデータでない場合、処理はS1に戻るので、コア1の処理は終了する。
【0110】
次に、図12(b)に示すように、コア0がメモリ23からデータを読み出したとする(S6)。そして、ステップS8,9の条件を満たしコア0がプリフェッチ(バーストリード)した場合(S10)、代理DMAC37は参照した時刻が最も古いデータバッファ0にデータを格納する(S22)。コア1についても同様であり、代理DMAC37は参照した時刻が最も古いデータバッファ1にデータを格納する(S22)。
【0111】
一方、図12(a)の後、図12(c)に示すように、コア1がコア0よりも先にメモリ23からデータを読み出したとする(S6)。この場合は、代理DMAC37は参照した時刻が最も古いデータバッファ0に、コア1のリードアクセスに起因して算出されたアドレスのデータを格納する(S22)。したがって、この時(時刻t5)ではデータバッファ0,1のどちらもコア1が占有する形になる。
【0112】
しかし、次に、コア0がメモリ23からデータを読み出すことによって(S6)、代理DMAC37は参照した時刻が最も古いデータバッファ1に、コア0のリードアクセスに起因して算出されたアドレスのデータを格納する(S22)。したがって、コア0,1がそれぞれ交互に(図12(b)のように)リードアクセスを発行する場合には、コア0はデータバッファ0を、コア1はデータバッファ1を使用でき、プリフェッチしたデータを読み出せるので処理効率が向上する。
【0113】
また、図12(c)のように、ある期間はコア0がデータバッファ0、1を占有し、ある期間はコア1がデータバッファ0,1を占有する場合は、ヒット率が向上するので、処理効率が向上する。処理効率が低下するのは、コア0とコア1が2回ずつリードアクセスを発行し、かつ、3回目のリードアクセスでS5でNoと判定されるような特殊な状況だけである。
【0114】
次に、データバッファ0、1の最後のデータがリードされた場合を説明する。
図13(a)では、時刻t1にコア0がデータバッファ0から最後のデータを読み出す(S12)。読み出されたデータがデータバッファ0の最後のデータの場合、処理はS23〜S25に移るので、ステップS23,24の条件を満たしコア0がプリフェッチ(バーストリード)した場合(S25)、代理DMAC37はコア0のリードアクセスに起因して算出されたアドレスのデータをデータバッファ0に格納する(S26)。
【0115】
仮に、S25の後、ステップ21に移動したと仮定すると、代理DMAC37は、データがリードされた時刻が最も古いデータバッファ1にデータを格納してしまうが、S23〜S25の処理により、必要なくなったデータを適切に書き換え、かつ、コア1が読み出す可能性の高いデータをデータバッファ1に残しておくことができる。
【0116】
図13(b)は、コア1がデータバッファ1から最後のデータを読み出した場合を示すが、この場合も同じである。すなわち、代理DMAC37はコア1のリードアクセスに起因して算出されたアドレスのデータをデータバッファ1に格納する(S26)。
【0117】
以上説明したように本実施例の画像形成装置100は、実施例1の効果加え、コアが複数の場合には、コアの数だけデータバッファ及び命令バッファを備えるので、それぞれのコアから交互にリードアクセス要求が発行されても、バッファの中身を入れ替える必要がなく、CPU19の処理効率を向上させることができる。
【符号の説明】
【0118】
14 DMAC
15 メモリアービタ
16 ネットワークI/F回路
17 メモリI/F回路
18 代理リードアクセス回路
19 CPU
20 画像書き込み部
22 ASIC
23 メモリ
30 画像読取部
31 アドレスデコード部
32 メモリアクセス判定部
33 データバッファ
34 命令バッファ
35 アービタアクセス状況監視部
36 プリフェッチアドレス算出部
37 代理DMAC
38 セレクタ
100 画像形成装置
【先行技術文献】
【特許文献】
【0119】
【特許文献1】特開2000−47975号公報

【特許請求の範囲】
【請求項1】
メモリアービタを介してメモリから読み出した命令又はデータを前記CPUに供給する半導体集積回路であって、
前記メモリアービタにメモリアクセス要求を発行する周辺回路の有無を監視するアービタアクセス監視手段と、
前記周辺回路がメモリアービタにメモリアクセス要求を発行してない場合に、前記メモリアービタにメモリアクセス要求を発行し、命令又はデータをバーストリードするバーストリード手段と、
メモリからバーストリードされた命令又はデータを前記メモリアービタよりも前記CPU側で記憶するバッファ手段と、
前記CPUから取得した命令のアドレスをデコードするアドレスデコード手段と、
前記アドレスデコード手段がデコードしたアドレスの命令又はデータが前記バッファ手段に記憶されているか否かを判定するアドレス判別手段と、を有し、
命令又はデータが前記バッファ手段に記憶されてない場合は、前記メモリアービタにメモリアクセス要求を発行し、命令又はデータが前記バッファ手段に記憶されている場合は、前記バッファ手段に記憶されている命令又はデータを前記CPUに供給する、
ことを特徴とする半導体集積回路。
【請求項2】
命令又はデータが前記バッファ手段に記憶されてない場合、前記バーストリード手段よりも優先して、前記アドレスデコード手段がデコードしたアドレスの命令又はデータのメモリアクセス要求を前記メモリアービタに発行するセレクタ手段、を有することを特徴とする請求項1記載の半導体集積回路。
【請求項3】
前記アドレス判別手段が、前記CPUに供給された命令又はデータが前記バッファ手段における最後のアドレスの命令又はデータでないことを検出した場合、前記バーストリード手段が前記メモリアービタにメモリアクセス要求を発行することを禁止するセレクタ手段、を有することを特徴とする請求項1又は2記載の半導体集積回路。
【請求項4】
前記バッファ手段は、命令用とデータ用に区分されている、ことを特徴とする請求項1〜3いずれか1項記載の半導体集積回路。
【請求項5】
前記アドレス判別手段は、前記CPUと前記アドレスデコード手段を接続する信号線の状態、又は、前記アドレスデコード手段がデコードしたアドレスに基づき、前記バーストリード手段が読み出した信号が命令かデータかを判定し、判定結果に基づき前記バーストリード手段が読み出した信号を命令用又はデータ用の前記バッファ手段に格納する、ことを特徴とする請求項4記載の半導体集積回路。
【請求項6】
前記アービタアクセス監視手段は、前記メモリアービタが前記CPUよりも優先的にメモリアクセスを許可する周辺回路の有無を監視し、
前記CPUよりも優先順位の高い周辺回路から前記メモリアービタにメモリアクセス要求が発行されていない場合のみ、前記バーストリード手段は前記メモリアービタにメモリアクセス要求を発行する、ことを特徴とする請求項1〜5いずれか1項記載の半導体集積回路。
【請求項7】
前記アービタアクセス監視手段が監視する周辺回路の設定を受けつける監視周辺回路設定受け付け手段を有する、ことを特徴とする請求項1〜6いずれか1項記載の半導体集積回路。
【請求項8】
前記バッファ手段を前記CPUのコアの数以上有する、ことを特徴とする請求項1〜7いずれか1項記載の半導体集積回路。
【請求項9】
前記バーストリード手段は、メモリから読み出した命令又はデータを、
前記バッファ手段の最後のアドレスの命令又はデータが読み出された前記バッファ手段に記憶する、
ことを特徴とする請求項8記載の半導体集積回路。
【請求項10】
前記バーストリード手段がメモリから読み出した命令又はデータを、
前記CPUから最も長い時間参照されていない前記バッファ手段に格納することを特徴とする、請求項8記載の半導体集積回路。
【請求項11】
請求項1〜10いずれか1項記載の半導体集積回路が搭載された画像形成装置。
【請求項12】
前記周辺回路は、メモリに記憶された画像データを読み出し、記録媒体に印刷する画像形成部に出力するDMAC(Direct Memory Access Controller)である、ことを特徴とする、請求項10記載の半導体集積回路。
【請求項13】
メモリには、前記CPUがPDLデータをレンダリングした画像データ、又は、スキャナが原稿を光学的に読み取った画像データが、前記DMACにより記憶される、請求項12記載の半導体集積回路。
【請求項14】
アドレスデコード手段が、CPUから取得した命令のアドレスをデコードするステップと、
アドレス判別手段が、前記アドレスデコード手段がデコードしたアドレスの命令又はデータがバッファ手段に記憶されているか否かを判定するステップと、
アービタアクセス監視手段が、メモリアービタにメモリアクセス要求を発行する周辺回路の有無を監視するステップと、
バーストリード手段が、命令又はデータが前記バッファ手段に記憶されておらず、かつ、前記周辺回路が前記メモリアービタにメモリアクセス要求を発行してない場合に、前記メモリアービタにメモリアクセス要求を発行し、命令又はデータをバーストリードするステップと、
前記バーストリード手段が、前記メモリアービタからメモリへのアクセス許可を受けてメモリから読み出した命令又はデータを前記バッファ手段に記憶するステップと、
命令又はデータが前記バッファ手段に記憶されている場合、前記バッファ手段に記憶されている命令又はデータを、命令又はデータが前記バッファ手段に記憶されてない場合、メモリから読み出した命令又はデータを前記CPUに供給するステップと、
を有することを特徴とする情報記憶方法。

【図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

【図13】
image rotate


【公開番号】特開2012−38065(P2012−38065A)
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願番号】特願2010−177262(P2010−177262)
【出願日】平成22年8月6日(2010.8.6)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】