(57)【要約】【課題】ＣＰＵによるプログラムの読み出し・実行を迅速に行えるようにすることで、使用者に不安を与える可能性を低減し、且つ、ＣＰＵがプログラムの読み出し・実行を開始するまでの待ち時間が生じることによる不具合を回避する情報処理装置及びプログラム読出制御方法の提供。【解決手段】ＡＳＩＣ１０は、ＣＰＵ１２からのアクセス要求を第一〜三のバスＢ１〜Ｂ３のいずれかに振り分けるバスコントローラ部４５を備えている。バスコントローラ部４５では、ＲＯＭアクセス頻度検出部１８及びＲＡＭアクセス頻度検出部２０の検出結果に基づいて、アクセス対象である要求メモリ（ＲＯＭ５０またはＲＡＭ５５の一方）の状況を判定し、要求メモリがビジー状態でなければ、アクセス対象を変更することなくそのままアクセスを実行し、要求メモリがビジー状態であれば、非要求メモリが非ビジー状態である場合に限り、アクセス対象を要求メモリから非要求メモリに変更する。【選択図】図３
2007334815.tif 000002
【特許請求の範囲】
【請求項１】
プログラムが格納された第一記憶手段と、
前記第一記憶手段に格納されたプログラムをコピーしたプログラムが格納され、前記第一記憶手段よりもアクセス時間の短い第二記憶手段と、
前記プログラムを読出して、処理を実行するＣＰＵと、
前記第二記憶手段に対し、データの書込みまたは読出しを実行する少なくとも一つのデータ処理手段と
を備えた情報処理装置のプログラム読出制御方法であって、
前記ＣＰＵからプログラムの読出し要求があることを条件として、前記ＣＰＵ、または前記データ処理手段からの前記第二記憶手段に対するアクセス頻度が、予め規定された規定値未満であれば、プログラムの読出元を前記第二記憶手段とし、前記アクセス頻度が前記規定値以上であれば、プログラムの読出元を前記第一記憶手段とすることを特徴とするプログラム読出制御方法。
【請求項２】
プログラムが格納された第一記憶手段と、
前記第一記憶手段に格納されたプログラムをコピーしたプログラムが格納され、前記第一記憶手段よりもアクセス時間の短い第二記憶手段と、
前記プログラムを読出して、処理を実行するＣＰＵと、
前記第二記憶手段に対し、データの書込みまたは読出しを実行する少なくとも一つのデータ処理手段と、
前記ＣＰＵ、または前記データ処理手段からの前記第二記憶手段に対するアクセス頻度を測定するアクセス頻度測定手段と、
前記アクセス頻度測定手段で測定したアクセス頻度に基づき、アクセス頻度を示す指標値を決定するアクセス頻度決定手段と、
前記ＣＰＵからのプログラムの読出し要求があることを条件として、前記アクセス頻度決定手段での指標値が予め規定された規定値未満であれば、プログラムの読出元を前記第二記憶手段とし、前記アクセス頻度決定手段での指標値が前記規定値以上であれば、プログラムの読出元を前記第一記憶手段とする読出元制御手段と
を備えることを特徴とする情報処理装置。
【請求項３】
前記アクセス頻度測定手段は、予め設定された測定時間内での前記第二記憶手段に対するアクセスの回数をアクセス頻度とし、
前記アクセス頻度決定手段は、アクセス頻度を前記指標値とすることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記アクセス頻度測定手段は、
予め設定された測定時間内での前記第二記憶手段に対するアクセス頻度を前記測定時間毎に測定し、
前記アクセス頻度測定手段の測定結果を順次記憶するアクセス頻度記憶手段と、
前記アクセス頻度記憶手段で記憶された測定結果を平均するアクセス頻度平均手段と
を備え、
前記アクセス頻度決定手段は、前記アクセス頻度平均手段で平均された結果を前記指標値とすることを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記アクセス頻度平均手段は、前記アクセス頻度記憶手段に記憶される新しい測定結果に、古い測定結果よりも大きな重みを付加して、加重平均することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記アクセス頻度測定手段は、予め設定された測定時間内での前記第二記憶手段に対するアクセスの回数に基づいて示されるアクセス度数を測定結果とすることを特徴とする請求項２ないし請求項５のいずれかに記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムに従って処理を実行するＣＰＵを備えた情報処理装置、及び情報処理装置でのプログラム読出制御方法に関する。
【背景技術】
【０００２】
従来、不揮発性メモリであるＲＯＭに格納されたプログラムを、必要に応じてＲＯＭよりもアクセス時間の短いＲＡＭに転送し、ＲＡＭに格納されたプログラムをＣＰＵが読み出して実行することにより、各種処理を高速で実行可能に構成された情報処理装置が知られており、このような情報処理装置を画像形成装置に適用することが行われている。
【０００３】
この画像形成装置では、高解像度の画像のプリントやカラープリントのように大きなデータ量を扱う処理を実行する際には、ＣＰＵの作業領域としてのＲＡＭ容量を大量に確保する必要がある。
【０００４】
そこで、ＣＰＵが実行する処理がＲＡＭ容量を大量に確保する必要の無いものの時には、ＲＯＭのプログラムをＲＡＭに転送して、ＲＡＭからプログラムを読み出して処理を実行し、ＣＰＵが実行する処理がＲＡＭ容量を大量に確保する必要のあるものの時には、ＲＯＭからプログラムを読み出し、ＲＡＭを作業領域としてのみ使用して処理を実行する情報処理装置が提案されている（例えば、特許文献１参照）。
【０００５】
つまり、特許文献１に記載の情報処理装置では、ＣＰＵで実行される処理の種類によって、プログラムの読み出し先を変更している。
【特許文献１】特開平１１−１２９５５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、一般的な画像形成装置には、ＲＡＭに対してアクセス可能なデータ処理部が、ＣＰＵ以外にも備えられている。このため、特許文献１に記載された情報処理装置では、例えば、データ処理部がＲＡＭに頻繁にアクセスしている時であっても、ＣＰＵで実行される処理がＲＡＭ容量を大量に確保する必要の無いものであれば、ＣＰＵは、ＲＯＭに格納されたプログラムをＲＡＭに転送した上で、ＲＡＭからプログラムを読み出すことになる。
【０００７】
したがって、特許文献１に記載の情報処理装置では、データ処理部からのアクセスが多い状態の時に、ＣＰＵがプログラムを読み出そうとしても、直ぐに読み出すことができず、データ処理部からのアクセスが終了するまで待たされることになる。
【０００８】
この結果、プログラムを読み出して実行するまでに必要な時間が長くなるため、装置が一時停止したような状態（いわゆる、フリーズしたように感じられる状態）となり、当該情報処理装置の使用者に不安を与える可能性が高いという問題があった。
【０００９】
また、ＣＰＵによる処理の中には、所定時間内に処理しなければならないもの（例えば、ＦＡＸ送受信時の割り込み処理など）がある。しかし、従来の情報処理装置では、そのような処理であっても、データ処理部からのＲＡＭに対するアクセスが多い時には、データ処理部からのアクセスが終了するまで待たされることになり、所定時間内に処理を終了することができず、不具合が発生する可能性があった。
【００１０】
そこで、本発明は、ＣＰＵによるプログラムの読み出し・実行を迅速に行えるようにすることで、使用者に不安を与える可能性を低減し、且つ、ＣＰＵがプログラムの読み出し・実行を開始するまでの待ち時間が生じることによる不具合を回避するプログラム読出制御方法、及びその方法を実現する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するためになされた請求項１に記載の発明は、プログラムが格納された第一記憶手段と、前記第一記憶手段に格納されたプログラムをコピーしたプログラムが格納され、前記第一記憶手段よりもアクセス時間の短い第二記憶手段と、前記プログラムを読出して、処理を実行するＣＰＵと、前記第二記憶手段に対し、データの書込みまたは読出しを実行する少なくとも一つのデータ処理手段とを備えた情報処理装置のプログラム読出制御方法である。そして、本発明のプログラム読出制御方法では、前記ＣＰＵからプログラムの読出し要求があることを条件として、前記ＣＰＵ、または前記データ処理手段からの前記第二記憶手段に対するアクセス頻度が、予め規定された規定値未満であれば、プログラムの読出元を前記第二記憶手段とし、前記アクセス頻度が前記規定値以上であれば、プログラムの読出元を前記第一記憶手段とする。
【００１２】
なお、ここで言う、アクセス時間とは、データをある場所に書込みもしくは読み出すために、その要求を出してからデータの転送が完了するまでの時間である。
また、請求項２に記載の情報処理装置は、第一記憶手段にプログラムが格納され、前記第一記憶手段よりもアクセス時間の短い第二記憶手段に、前記第一記憶手段に格納されたプログラムをコピーしたプログラムが格納され、ＣＰＵが前記プログラムを読出して、処理を実行するものであり、前記第二記憶手段に対し、データの書込みまたは読出しを実行する少なくとも一つのデータ処理手段が備えられている。そして、請求項２に記載の情報処理装置では、アクセス頻度測定手段が前記ＣＰＵ、または前記データ処理手段からの前記第二記憶手段に対するアクセス頻度を測定し、アクセス頻度決定手段が前記アクセス頻度測定手段で測定したアクセス頻度に基づき、アクセス頻度を示す指標値を決定し、前記ＣＰＵからのプログラムの読出し要求があることを条件として、読出元制御手段が、前記アクセス頻度決定手段での指標値が予め規定された規定値未満であれば、プログラムの読出元を前記第二記憶手段とし、前記アクセス頻度決定手段での指標値が前記規定値以上であれば、プログラムの読出元を前記第一記憶手段とする。
【００１３】
さらに、本発明の情報処理装置では、請求項３に記載のように、前記アクセス頻度測定手段が、予め設定された測定時間内での前記第二記憶手段に対するアクセスの回数をアクセス頻度として測定し、前記アクセス頻度決定手段が、測定されたアクセス頻度を前記指標値として決定しても良い。
【００１４】
また、本発明の情報処理装置では、請求項４に記載のように、前記アクセス頻度測定手段が、予め設定された測定時間内での前記第二記憶手段に対するアクセス頻度を前記測定時間毎に測定し、アクセス頻度記憶手段が前記アクセス頻度測定手段の測定結果を順次記憶し、アクセス頻度平均手段が前記アクセス頻度記憶手段で記憶された測定結果を平均し、前記アクセス頻度決定手段が、前記アクセス頻度平均手段で平均された結果を前記指標値として決定しても良い。
【００１５】
さらに、本発明の情報処理装置では、請求項５に記載のように、前記アクセス頻度平均手段が、前記アクセス頻度記憶手段に記憶される新しい測定結果に、古い測定結果よりも大きな重みを付加した上で、加重平均することが望ましい。
【００１６】
また、本発明の情報処理装置では、請求項６に記載のように、予め設定された測定時間内での前記第二記憶手段に対するアクセスの回数に基づいて示されるアクセス度数を測定結果として記憶しても良い。
【発明の効果】
【００１７】
請求項１に記載のプログラム読出制御方法によれば、データ処理手段が第二記憶手段に頻繁にアクセスしていなければ（即ち、データ処理手段からのアクセスが規定値未満であれば）、ＣＰＵのプログラム読出元を第二記憶手段とするため、ＣＰＵがプログラムを読み出して、処理を実行するまでの時間を短縮することができる。
【００１８】
その上、本発明のプログラム読出制御方法では、データ処理手段が第二記憶手段に頻繁にアクセスしていれば（即ち、データ処理手段からのアクセスが規定値以上であれば）、ＣＰＵのプログラム読出元を第一記憶手段とする。
【００１９】
これにより、ＣＰＵが待たされること無く、プログラムの読み出し・実行ができるため、当該情報処理装置の動作が停止したように使用者が感じる動作状態となることを防止でき、使用者に不安を与える可能性を低減し、且つ、ＣＰＵがプログラムの読み出し・実行を開始するまでの待ち時間が生じることによる不具合を回避することができる。
【００２０】
また、請求項２に記載の情報処理装置によれば、請求項１に記載のプログラム読出制御方法と同様の効果を得ることができる。
さらに、アクセス頻度測定手段及びアクセス頻度決定手段は、請求項３に記載の情報処理装置のように構成されていても良い。請求項３に記載の情報処理装置によれば、測定時間前のタイミングで測定されたアクセス頻度によって、プログラムの読出元が判断されることになる。
【００２１】
また、請求項４に記載の情報処理装置によれば、アクセス頻度を移動平均するため、アクセス頻度を正確に把握するのに必要な時間の長さを確保しつつ、検知時間毎に、最新の状況が反映されたアクセス頻度を把握することができる。この結果、本発明の情報処理装置によれば、ＣＰＵがプログラムを読み出すために必要な時間が短くなるプログラム読出元を確実に選択することができる。
【００２２】
さらに、請求項５に記載の情報処理装置によれば、新しい測定結果に、古い測定結果よりも大きな重みを付加して加重平均するため、最新の状況がより濃く反映されたアクセス頻度を把握することができる。
【００２３】
また、請求項６に記載の情報処理装置のように、アクセス回数に基づいて示されるアクセス度数をアクセス頻度測定手段での測定結果とすることによっても、同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００２４】
以下に本発明の実施形態を図面と共に説明する。
［第一実施形態］
図１は、本発明が適用された画像形成装置の構成を示すブロック図である。
【００２５】
なお、本実施形態の画像形成装置１は、プリンタ、スキャナ、コピー機、ＦＡＸとしての機能を備えた、いわゆる複合機として構成されたものである。
〈画像形成装置の全体構成〉
画像形成装置１は、用紙などの印刷媒体に印刷情報を印刷する記録部５と、原稿に記録された画像情報を読み取る読取部７と、ＵＳＢケーブルを介して外部のパーソナルコンピュータ、デジタルカメラ等の外部機器と画像情報の入出力を行うＵＳＢインターフェース（Ｉ／Ｆ）部８と、一般通信回線を介して画像情報を通信するモデム部９とを備えている。
【００２６】
さらに、画像形成装置１は、各種設定や指令を入力するためのカーソルキーやスイッチ、及び各種メニュー画面や、利用者が入力した内容やエラー表示などを行う表示パネルからなる操作部（図示せず）と、操作部を介して入力される設定や指令に従って、装置各部（即ち、記録部５、読取部７、ＵＳＢＩ／Ｆ部８、モデム部９等）を制御する制御部３と、制御部３を含む装置各部に電源供給を行う電源供給部（図示せず）とを備えている。
【００２７】
なお、電源供給部は、その給電電圧が所定値を超えて上昇すると、電源や回路動作が安定するために要する時間経過後に、リセット信号をローレベルからハイレベルに変化させることで制御部３のリセット状態を解除するように構成されている。
【００２８】
また、これら各部の構成は、周知のものであるため、その詳細については説明を省略する。
つまり、画像形成装置１は、操作部を介して入力される設定や指令に従って、制御部３が装置各部（即ち、記録部５、読取部７、ＵＳＢＩ／Ｆ部８、モデム部９等）を制御することにより、プリンタやＦＡＸ等の各機能を実現する。
〈制御部の構成〉
次に、制御部３について説明する。
【００２９】
制御部３は、不揮発性メモリからなり、各種プログラムやデータが予め記憶されたＲＯＭ５０（第一記憶手段の一例）と、格納されたデータへのランダムアクセスが可能であり、ＲＯＭ５０よりも短い時間でアクセス可能なＲＡＭ５５（第二記憶手段の一例）と、ＲＯＭ５０、ＲＡＭ５５の入出力を制御するメモリ制御部、各種プログラムを実行するＣＰＵ（本発明のＣＰＵに相当）等を内蔵したＡＳＩＣ１０（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）とを備えている。
【００３０】
ここで、図２は、ＡＳＩＣ１０（即ち、ＡＳＩＣ１０に内蔵されたＣＰＵ）のメモリマップ（アクセスエリア）を模式的に示した説明図である。
図２に示すように、ＡＳＩＣ１０に内蔵されたＣＰＵは、ＲＯＭ５０に対して割り当てられた領域（ＲＯＭ領域）と、ＲＡＭ５５に対して割り当てられた領域（ＲＡＭ領域）と、後述するレジスタ群に割り当てられた領域（レジスタ領域）とを有している。
【００３１】
また、ＲＯＭ領域（即ち、ＲＯＭ５０）は、少なくとも、当該画像形成装置１の立ち上げに必要なブートプログラムが格納されるブート領域（アドレス１＿１からアドレス１＿２で示される領域）と、画像形成装置１の各部（記録部５や読取部７等）を制御するための制御プログラムの内、圧縮されていない状態でプログラムが格納される第一プログラム領域（アドレス１＿２からアドレス１＿３で示される領域）と、制御プログラムの内、圧縮された状態のプログラムが格納される第三プログラム領域（アドレス１＿３からアドレス１＿４で示される領域）とを有している。
【００３２】
また、ＲＡＭ領域（即ち、ＲＡＭ５５）は、ＲＯＭ５０に格納された第一プログラム領域のコピーが格納される第二プログラム領域（アドレス２＿１からアドレス２＿２で示される領域）と、ＲＯＭ５０に格納された第三プログラム領域の解凍後のプログラムが格納される第四プログラム領域（アドレス２＿２からアドレス２＿３で示される領域）、処理中に生成されるデータや、ＰＣ等から受信された画像データ等が一時的に格納されるデータ領域（アドレス２＿２からアドレス２＿４で示される領域）とが用意されている。
〈ＡＳＩＣの構成について〉
次に、本発明の主要部に関わるＡＳＩＣ１０の構成について説明する。
【００３３】
図３は、本発明の主要部に関わるＡＳＩＣ１０の周辺の構成について示したブロック図である。
図３に示すように、ＡＳＩＣ１０は、プログラムに従って処理を実行するＣＰＵ１２と、ＣＰＵ１２を介さないデータ転送（いわゆる、ＤＭＡ転送）を制御するＤＭＡコントローラ３５と、記録部５を制御する記録制御部５５と、画像情報等から記録部５に印刷される印刷情報を生成する画像処理部５６と、読取部７を制御する読取制御部５７と、ＵＳＢＩ／Ｆ部８を制御するＵＳＢＩ／Ｆ制御部５８と、モデム部９を制御するモデム制御部５９とを備えている。
【００３４】
これらＤＭＡコントローラ３５、記録制御部５５、画像処理部５６、読取制御部５７、ＵＳＢＩ／Ｆ制御部５８、モデム制御部５９は、いずれもデータ処理手段の一例であり、以下では、これらをデータ処理制御部ともいう。
【００３５】
また、ＡＳＩＣ１０は、ＲＯＭ５０からのデータの読出し（リード、即ち、アクセス）を制御するＲＯＭコントローラ部１４と、ＲＯＭ５０に対するアクセスの頻度を検出するＲＯＭアクセス頻度検出部１８と、ＣＰＵ１２からのＲＯＭ５０に対するアクセス要求及びＤＭＡコントローラ３５からのＲＯＭ５０に対するアクセス要求を調停し、調停されたアクセス要求をＲＯＭコントローラ部１４に実行させるＲＯＭアクセス調停部３０とを備えている。
【００３６】
また、ＡＳＩＣ１０は、ＲＡＭ５５に対するデータの読み書き（リード／ライト、即ち、アクセス）を制御するＲＡＭコントローラ部１６と、ＲＡＭ５５に対するアクセスの頻度を検出するＲＡＭアクセス頻度検出部２０（本発明のアクセス頻度測定手段及びアクセス決定手段の一例）と、各データ処理制御部からのＲＡＭ５５に対するアクセス要求、及びＣＰＵ１２からのＲＡＭ５５に対するアクセス要求を調停し、調停されたアクセス要求をＲＡＭコントローラ部１６に実行させるＲＡＭアクセス調停部２５とを備えている。
【００３７】
つまり、ＲＯＭアクセス調停部３０及びＲＡＭアクセス調停部２５のいずれにも接続されたＤＭＡコントローラ３５は、ＲＯＭ５０に格納されたプログラムをＲＡＭ５５にＤＭＡ転送することが可能なように構成されている。
【００３８】
更に、ＡＳＩＣ１０は、ＣＰＵ１２からのアクセス要求先（即ち、アクセス先のアドレス）が、第一のプログラム領域または第二のプログラム領域かを検出するアクセス振り分け検出部４０と、アクセス振り分け検出部４０の検出結果及びＲＡＭアクセス頻度検出部２０の検出結果、ＲＯＭアクセス頻度検出部１８の検出結果に従って、ＣＰＵ１２からのアクセス要求先を制御するバスコントローラ部４５（本発明の読出元制御手段の一例）とを備えている。
【００３９】
なお、ＡＳＩＣ１０は、電源供給部から供給されるリセット信号がハイレベルになると、ＣＰＵ１２をはじめとした各部（ＲＯＭアクセス頻度検出部１８、ＲＡＭアクセス頻度検出部２０、バスコントローラ４５等）が起動されるように構成されている。
【００４０】
また、ＤＭＡコントローラ３５、ＲＯＭアクセス頻度検出部１８、ＲＡＭアクセス頻度検出部２０、アクセス振り分け検出部４０、各データ処理制御部には、バスコントローラ部４５を介して各種設定が入力（即ち、格納）されるレジスタ群が備えられている。そして、これらのレジスタ群は、バスコントローラ部４５からＲＯＭアクセス調停部３０（ひいてはＲＯＭ５０）に至る第一のバスＢ１、ＲＡＭアクセス調停部２５（ひいてはＲＡＭ５５）に至る第二のバスＢ２とは異なる第三のバスＢ３を介して制御されるように構成されている。
【００４１】
なお、ＲＯＭコントローラ部１４、ＲＡＭコントローラ部１６、ＲＯＭアクセス頻度検出部１８、ＲＡＭアクセス頻度検出部２０、ＲＯＭアクセス調停部３０、ＲＡＭアクセス調停部２５、バスコントローラ部４５、アクセス振り分け検出部４０は、いずれも入力信号に応答して、予め決められた手順の処理を実行するシーケンサとして構成され、論理回路の組み合わせにより実現されるものである。
〈ＲＡＭアクセス頻度の検出について〉
ここで、図４は、ＲＡＭアクセス頻度検出部２０が実行する処理の手順を示したフローチャートであり、図５は、ＲＡＭアクセス頻度検出部２０で用いられる信号を示す説明図である。
【００４２】
まず、ＲＡＭコントローラ部１６は、ＲＡＭアクセス調停部２５からのアクセス要求をＲＡＭ５５に対して実行する毎に、ＣＰＵ１２のクロックｃｌｋ一周期分のパルス幅を有したアクセス実行信号ｒａｍ＿ｅｘｅ（図５参照）を、ＲＡＭアクセス頻度検出部２０に出力するように構成されている。
【００４３】
また、ＲＡＭアクセス頻度検出部２０は、一定期間内のＲＡＭ５５に対するアクセス回数を測定し、そのアクセス回数によってアクセス頻度を決定するものであり、ＲＡＭコントローラ部１６からのアクセス実行信号ｒａｍ＿ｅｘｅに従って、ＲＡＭ５５に対するアクセス頻度を表すアクセス頻度信号ｒａｍ＿ｂｕｓｙを生成するように構成されている。
【００４４】
このＲＡＭアクセス頻度検出部２０の処理手順について説明する。
なお、ＲＡＭアクセス頻度検出部２０は、電源供給部から供給されるリセット信号によりリセット状態が解除されると起動する。
【００４５】
起動したＲＡＭアクセス頻度検出部２０は、図４に示すように、まず、Ｓ１１０で、期間を測定するための指標であるクロックｃｌｋのカウント値ｒａｍ＿ｃｙｃ＿ｃｎｔ、及びＲＡＭ５５に対するアクセス要求が実行されたことを表すアクセス実行信号ｒａｍ＿ｅｘｅのカウント値（以下、アクセス回数という）ｒａｍ＿ａｃｃ＿ｃｎｔを初期化（即ち、０）する。
【００４６】
続くＳ１２０では、クロックｃｌＫの立ち上がりエッジのタイミングまで待機し、クロックｃｌｋの立ち上がりエッジタイミングになると、Ｓ１３０へと進む。つまり、図５に示すように、クロックｃｌｋの立ち上がりエッジ（例えば、図中二点鎖線Ａ−Ａ上）であれば、処理が進行する。
【００４７】
そして、Ｓ１３０では、カウント値ｒａｍ＿ｃｙｃ＿ｃｎｔが、予め設定されたアクセス頻度測定期間値ｒａｍ＿ｃｎｔ＿ｃｌｒと一致するか否かを判定し、不一致であれば、Ｓ１４０へ進む。
【００４８】
そのＳ１４０では、カウント値ｒａｍ＿ｃｙｃ＿ｃｎｔをカウントアップ（１を加算）し、続くＳ１５０では、アクセス実行信号ｒａｍ＿ｅｘｅがハイレベル（ｒａｍ＿ｅｘｅ＝１）であるか否かを判定する。
【００４９】
そして、アクセス実行信号ｒａｍ＿ｅｘｅがローレベル（ｒａｍ＿ｅｘｅ＝０）であれば、Ｓ１２０へと戻り、アクセス実行信号ｒａｍ＿ｅｘｅがハイレベルであれば、Ｓ１６０へと進む。
【００５０】
そのＳ１６０では、アクセス回数ｒａｍ＿ａｃｃ＿ｃｎｔをカウントアップ（１を加算）して、Ｓ１２０へと戻る。
一方、先のＳ１３０にて、カウント値ｒａｍ＿ｃｙｃ＿ｃｎｔと、アクセス頻度測定期間値ｒａｍ＿ｃｎｔ＿ｃｌｒとが一致すると判定された場合、Ｓ１７０へと進む。
【００５１】
そのＳ１７０では、アクセス回数ｒａｍ＿ａｃｃ＿ｃｎｔが、予め設定された回数閾値ｒａｍ＿ｂｕｓｙ＿ｖａｌｕｅよりも大きいか否かを判定する。なお、回数閾値ｒａｍ＿ｂｕｓｙ＿ｖａｌｕｅは、例えば、アクセス頻度測定期間値ｒａｍ＿ｃｎｔ＿ｃｌｒ内で、ＲＡＭ５５に対しアクセス要求を実行できる最大回数の８０％に設定される。
【００５２】
そして、Ｓ１７０での判定の結果、アクセス回数ｒａｍ＿ａｃｃ＿ｃｎｔが回数閾値ｒａｍ＿ｂｕｓｙ＿ｖａｌｕｅよりも大きい場合には、Ｓ１８０へと進む。
そのＳ１８０では、過去、規定時間Ｔ（＝クロックｃｌｋ周期×アクセス頻度測定期間値ｒａｍ＿ｃｎｔ＿ｃｌｒ）内でのＲＡＭ５５に対するアクセス頻度が高かったこと、即ち、ＲＡＭ５５がビジー状態であることをバスコントローラ部４５に通知するために、アクセス頻度信号ｒａｍ＿ｂｕｓｙをハイレベル（ｒａｍ＿ｂｕｓｙ＝１）にして、Ｓ２００へと進む。
【００５３】
一方、Ｓ１７０での判定の結果、アクセス回数ｒａｍ＿ａｃｃ＿ｃｎｔが回数閾値ｒａｍ＿ｂｕｓｙ＿ｖａｌｕｅ以下である場合には、Ｓ１９０へと進む。
そのＳ１９０では、過去、規定時間Ｔ内でのＲＡＭ５５に対するアクセス頻度が低かったこと、即ち、ＲＡＭ５５は非ビジー状態であることをバスコントローラ部４５に通知するために、アクセス頻度信号ｒａｍ＿ｂｕｓｙローレベル（ｒａｍ＿ｂｕｓｙ＝０）にして、Ｓ２００へと進む。
【００５４】
そして、Ｓ２００では、カウント値ｒａｍ＿ｃｙｃ＿ｃｎｔ、及びアクセス回数ｒａｍ＿ａｃｃ＿ｃｎｔをクリア（即ち、０）して、Ｓ１２０に戻る。
なお、ＲＡＭアクセス頻度検出部２０における一連の処理（即ち、Ｓ１２０からＳ１６０まで、もしくはＳ１２０からＳ１７０を経てＳ２００まで）は、クロックｃｌｋの一周期内で実行される。
【００５５】
上述したように、ＲＡＭアクセス頻度検出部２０は、規定時間Ｔ毎にその規定時間Ｔ内でのＲＡＭ５５に対するアクセス頻度の高低を判定した結果を表すアクセス頻度信号ｒａｍ＿ｂｕｓｙを生成する。
〈ＲＯＭアクセス頻度について〉
次に、ＲＯＭ５０に対するアクセス頻度について説明する。
【００５６】
まず、ＲＯＭコントローラ部１４は、ＲＯＭアクセス調停部３０からのアクセス要求をＲＯＭ５０に対して実行する毎に、ＣＰＵ１２のクロックｃｌｋ一周期分のパルス幅を有したアクセス実行信号ｒｏｍ＿ｅｘｅを、ＲＯＭアクセス頻度検出部１８に出力するように構成されている。
【００５７】
また、ＲＯＭアクセス頻度検出部１８は、一定期間内のＲＯＭ５０に対するアクセス回数を測定し、そのアクセス回数によってアクセス頻度を決定するものであり、ＲＯＭコントローラ部１４からのアクセス実行信号ｒｏｍ＿ｅｘｅに従って、ＲＯＭ５０に対するアクセス頻度を表すアクセス頻度信号ｒｏｍ＿ｂｕｓｙを生成するように構成されている。
【００５８】
ここで、図６は、ＲＯＭアクセス頻度検出部１８が実行する処理の手順を示したフローチャートである。このフローチャートを用いて、ＲＯＭアクセス頻度検出部１８の処理手順について説明する。
【００５９】
なお、ＲＯＭアクセス頻度検出部１８は、電源供給部から供給されるリセット信号によりリセット状態が解除されると起動する。
起動したＲＯＭアクセス頻度検出部１８は、図６に示すように、まず、Ｓ３１０で、期間を測定するための指標であるクロックｃｌｋのカウント値ｒｏｍ＿ｃｙｃ＿ｃｎｔ、及びＲＯＭ５０に対するアクセス要求が実行されたことを表すアクセス実行信号ｒｏｍ＿ｅｘｅのカウント値（以下、アクセス回数という）ｒｏｍ＿ａｃｃ＿ｃｎｔを初期化（即ち、０）する。
【００６０】
続くＳ３２０では、クロックｃｌＫの立ち上がりエッジのタイミングまで待機し、クロックｃｌｋの立ち上がりエッジタイミングになると、Ｓ３３０へと進む。つまり、クロックｃｌｋの立ち上がりエッジであれば、処理が進行する。
【００６１】
そして、Ｓ３３０では、カウント値ｒｏｍ＿ｃｙｃ＿ｃｎｔが、予め設定されたアクセス頻度測定期間値ｒｏｍ＿ｃｎｔ＿ｃｌｒと一致するか否かを判定し、不一致であれば、Ｓ３４０へ進む。
【００６２】
そのＳ３４０では、カウント値ｒｏｍ＿ｃｙｃ＿ｃｎｔをカウントアップ（１を加算）し、続くＳ３５０では、アクセス実行信号ｒｏｍ＿ｅｘｅがハイレベル（ｒｏｍ＿ｅｘｅ＝１）であるか否かを判定する。
【００６３】
そして、アクセス実行信号ｒｏｍ＿ｅｘｅがローレベル（ｒｏｍ＿ｅｘｅ＝０）であれば、Ｓ３２０へと戻り、アクセス実行信号ｒｏｍ＿ｅｘｅがハイレベルであれば、Ｓ３６０へと進む。
【００６４】
そのＳ３６０では、アクセス回数ｒｏｍ＿ａｃｃ＿ｃｎｔをカウントアップ（１を加算）して、Ｓ３２０へと戻る。
一方、先のＳ３３０にて、カウント値ｒｏｍ＿ｃｙｃ＿ｃｎｔと、アクセス頻度測定期間値ｒｏｍ＿ｃｎｔ＿ｃｌｒとが一致すると判定された場合、Ｓ３７０へと進む。
【００６５】
そのＳ３７０では、アクセス回数ｒｏｍ＿ａｃｃ＿ｃｎｔが、予め設定された回数閾値ｒｏｍ＿ｂｕｓｙ＿ｖａｌｕｅよりも大きいか否かを判定する。なお、回数閾値ｒｏｍ＿ｂｕｓｙ＿ｖａｌｕｅは、例えば、アクセス頻度測定期間値ｒｏｍ＿ｃｎｔ＿ｃｌｒ内で、ＲＯＭ５０に対しアクセス要求を実行できる最大回数の８０％に設定される。
【００６６】
そして、Ｓ３７０での判定の結果、アクセス回数ｒｏｍ＿ａｃｃ＿ｃｎｔが回数閾値ｒｏｍ＿ｂｕｓｙ＿ｖａｌｕｅよりも大きい場合には、Ｓ３８０へと進む。
そのＳ３８０では、過去、規定時間Ｔ（＝クロックｃｌｋ周期×アクセス頻度測定期間値ｒｏｍ＿ｃｎｔ＿ｃｌｒ）内でのＲＯＭ５０に対するアクセス頻度が高かったこと、即ち、ＲＯＭ５０がビジー状態であることをバスコントローラ部４５に通知するために、アクセス頻度信号ｒｏｍ＿ｂｕｓｙをハイレベル（ｒｏｍ＿ｂｕｓｙ＝１）にして、Ｓ４００へと進む。
【００６７】
一方、Ｓ３７０での判定の結果、アクセス回数ｒｏｍ＿ａｃｃ＿ｃｎｔが回数閾値ｒｏｍ＿ｂｕｓｙ＿ｖａｌｕｅ以下である場合には、Ｓ３９０へと進む。
そのＳ３９０では、過去、規定時間Ｔ内でのＲＯＭ５０に対するアクセス頻度が低かったこと、即ち、ＲＯＭ５０は非ビジー状態であることをバスコントローラ部４５に通知するために、アクセス頻度信号ｒｏｍ＿ｂｕｓｙローレベル（ｒｏｍ＿ｂｕｓｙ＝０）にして、Ｓ４００へと進む。
【００６８】
そして、Ｓ４００では、カウント値ｒｏｍ＿ｃｙｃ＿ｃｎｔ、及びアクセス回数ｒｏｍ＿ａｃｃ＿ｃｎｔをクリア（即ち、０）して、Ｓ３２０に戻る。
なお、ＲＯＭアクセス頻度検出部１８における一連の処理（即ち、Ｓ３２０からＳ３６０まで、もしくはＳ３２０からＳ３７０を経てＳ４００まで）は、クロックｃｌｋの一周期内で実行される。
【００６９】
上述したように、ＲＯＭアクセス頻度検出部１８は、規定時間Ｔ毎にその規定時間Ｔ内でのＲＯＭ５０に対するアクセス頻度の高低を判定した結果を表すアクセス頻度信号ｒｏｍ＿ｂｕｓｙを生成する。
〈ＣＰＵ１２からのアクセスの振り分けについて〉
アクセス振り分け検出部４０は、ＣＰＵ１２からのアクセス要求を監視し、そのアクセス要求が、ＲＯＭ５０の第一プログラム領域、またはＲＡＭ５５の第二プログラム領域をアクセス対象としたプログラム読出要求である場合にハイレベル、それ以外の場合にローレベルとなる振分可能信号ｃｏｎｖ＿ｅｎを生成して、バスコントローラ部４５に供給するように構成されている。
【００７０】
つまり、ＣＰＵ１２からのアクセス要求（プログラム読出要求）を、ＲＯＭ５０またはＲＡＭ５５のどちらに対して実行してもよい場合に、振分可能信号ｃｏｎｖ＿ｅｎがハイレベル（ｃｏｎｖ＿ｅｎ＝１）となるようにされている。
【００７１】
また、バスコントローラ部４５は、ＣＰＵ１２からのアクセス要求（プログラム読出要求を含む）があった場合、図２に示したメモリマップに従って、そのアクセス要求を第一、第二、第三のバスＢ１〜Ｂ３のいずれかに振り分けるように構成されている。
【００７２】
次に、バスコントローラ部４５の処理手順について説明する。
ここで、図７は、バスコントローラ部４５の処理手順を示すフローチャートである。
なお、バスコントローラ部４５は、電源供給部から供給されるリセット信号によりリセット状態が解除されると起動する。
【００７３】
起動したバスコントローラ部４５は、図７に示すように、まず、Ｓ５１０で、ＣＰＵ１２からのアクセス要求があるまで待機し、アクセス要求があると、Ｓ５２０へと進む。
そのＳ５２０では、アクセス振り分け検出部４０からの振分可能信号ｃｏｎｖ＿ｅｎがハイレベルであるか否かを判定し、振分可能信号ｃｏｎｖ＿ｅｎがハイレベルであれば、アクセス要求はプログラム読出要求であるものとして、Ｓ５３０へと進む。
【００７４】
そのＳ５３０では、プログラム読出要求が、ＲＯＭ５０に対するものであるか否かを判定する。具体的には、プログラム読出要求によるアクセス対象アドレスが、ＲＯＭ領域に属するか否かによって判定する。
【００７５】
そして、判定の結果、ＲＯＭ５０に対するプログラム読出要求であれば、Ｓ５４０へと進み、そのＳ５４０では、ＲＡＭ５５が非ビジー状態（ｒａｍ＿ｂｕｓｙ＝０）、かつＲＯＭ５０がビジー状態（ｒｏｍ＿ｂｕｓｙ＝１）であるか否かを判定する。
【００７６】
そして、Ｓ５４０での判定の結果、肯定判定された場合は、Ｓ６００に進み、ＲＯＭ５０（即ち、第一プログラム領域）に対するプログラム読出要求を、同一プログラムが格納されたＲＡＭ５５（即ち、第二プログラム領域）に対するプログラム読出要求に変更して、そのプログラム読出要求を、第二のバスＢ２を介してＲＡＭアクセス調停部２５に出力した後、Ｓ６２０へと進む。
【００７７】
また、Ｓ５４０での判定の結果、否定判定された場合は、Ｓ６１０に進み、ＣＰＵ１２からのプログラム読出要求をそのまま第一のバスＢ１を介してＲＯＭアクセス調停部３０に出力した後、Ｓ６２０へと進む。
【００７８】
なお、先のＳ５３０での判定の結果、ＲＯＭ５０に対するプログラム読出要求でなければ、Ｓ５６０に進み、そのＳ５６０では、ＲＡＭ５５がビジー状態（ｒａｍ＿ｂｕｓｙ＝１）、かつＲＯＭ５０が非ビジー状態（ｒｏｍ＿ｂｕｓｙ＝０）であるか否かを判定する。
【００７９】
そして、判定の結果、肯定判定された場合、Ｓ６１０に進み、ＲＡＭ５５（即ち、第二プログラム領域）に対するプログラム読出要求を、同一プログラムが格納されたＲＯＭ５０（即ち、第一プログラム領域）に対するプログラム読出要求に変更して、そのプログラム読出要求を第一のバスＢ１を介してＲＯＭアクセス調停部３０に出力した後、Ｓ６２０へと進む。
【００８０】
また、Ｓ５６０での判定の結果、否定判定された場合は、Ｓ６００に進み、ＲＡＭ５５に対するプログラム読出要求をそのまま第二のバスＢ２を介してＲＡＭアクセス調停部２５に出力した後、Ｓ６２０に進む。
【００８１】
さらに、先のＳ５２０での判定の結果、振分可能信号ｃｏｎｖ＿ｅｎがローレベル（即ち、０）であれば、Ｓ５７０へと進む。
そのＳ５７０では、ＣＰＵ１２からのアクセス要求が、ＲＡＭ５５に対するものであるか否かを判定し、判定の結果、ＲＡＭ５５に対するアクセス要求であれば、Ｓ６００に進み、そのアクセス要求に従い、第二のバスＢ２を介してＲＡＭアクセス調停部２５にアクセス要求を出力した後、Ｓ６２０に進む。
【００８２】
また、Ｓ５７０での判定の結果、ＲＡＭ５５に対するアクセス要求でなければ、Ｓ５８０へと進む。
そのＳ５８０では、ＣＰＵ１２からのアクセス要求が、ＲＯＭ５０に対するものであるか否かを判定し、判定の結果、ＲＯＭ５０に対するアクセス要求であれば、Ｓ６１０に進み、そのアクセス要求に従い、第一のバスＢ１を介してＲＯＭアクセス調停部３０にアクセス要求を出力した後、Ｓ６２０に進む。
【００８３】
また、Ｓ５８０での判定の結果、ＲＯＭ５０に対するアクセス要求でなければ、Ｓ６３０に進み、レジスタ領域に対するアクセス要求であるものとして、第三のバスＢ３を介してアクセス対象のレジスタにアクセス要求を出力した後、Ｓ６２０に進む。
【００８４】
最後に、Ｓ６２０では、第一〜第三バスＢ１〜Ｂ３のいずれかに出力したアクセス要求が実行されるまで待機し、アクセス要求が実行されると、Ｓ５１０に戻る。
つまり、ＲＯＭ５０，ＲＡＭ５５のうち、アクセス要求の対象である一方を要求メモリ、他方を非要求メモリとして、バスコントローラ部４５では、振分可能信号ｃｏｎｖ＿ｅｎがハイレベル、即ち、第一プログラム領域または第二プログラム領域に対するプログラム読出要求である場合、アクセス対象である要求メモリがビジー状態でなければ、アクセス対象を変更することなくそのままアクセスを実行し、アクセス対象である要求メモリがビジー状態であれば、非要求メモリが非ビジー状態である場合に限り、アクセス対象を要求メモリから非要求メモリに変更するようにされている。
〈ＣＰＵが実行する処理について〉
次に、ＣＰＵ１２が実行する初期設定処理について、図８に示すフローチャートを用いて説明する。
【００８５】
なお、この初期設定処理に関するプログラムや各種設定等は、ＲＯＭ５０のブート領域に格納されている。
そして、初期設定処理は、電源供給部から供給されるリセット信号によりリセット状態が解除されると起動するＣＰＵ１２によって、最初に起動される。
【００８６】
そして、初期設定処理が起動されると、まずＳ７１０では、画像形成装置１を構成する操作部等のユーザＩ／Ｆの初期化、ＵＳＢＩ／Ｆ部８やモデム部９等の外部Ｉ／Ｆの初期化等、周知の起動処理を実行する。
【００８７】
続くＳ７２０では、ブート領域に格納された、第一プログラム領域の先頭アドレス及び末尾アドレス、第二プログラム領域の先頭アドレス及び末尾アドレスをＲＯＭ５０から読み出す。そして、読み出したこれらのアドレスを、ＤＭＡ転送の転送元アドレス及び転送先アドレスとして、ＤＭＡコントローラ３５に設定した後、ＤＭＡコントローラ３５を起動することにより、ＲＯＭ５０の第一プログラム領域に格納されたプログラムをＲＡＭ５５の第二プログラム領域にＤＭＡ転送する。これにより、ＲＯＭ５０とＲＡＭ５５とに同一のプログラムが格納され、ＲＯＭ５０及びＲＡＭ５５のいずれからでも、ＣＰＵ１２にプログラムを読み込ませることが可能な状態となる。
【００８８】
なお、ＣＰＵ１２によるＤＭＡコントローラ３５の設定、起動は、バスコントローラ部４５、第三のバスＢ３を介して実行される。以下のＳ７３０〜７５０で説明するＲＯＭアクセス頻度検出部１８、ＲＡＭアクセス頻度検出部２０、アクセス振り分け検出部４０に対する設定も同様である。
【００８９】
続くＳ７３０では、ＲＯＭ５０のブート領域に格納されたＲＯＭ５０に対するアクセス頻度測定期間値ｒｏｍ＿ｃｎｔ＿ｃｌｒと、ＲＯＭ５０に対する回数閾値ｒｏｍ＿ｂｕｓｙ＿ｖａｌｕｅとを読み出す。そして、読み出した両値ｒｏｍ＿ｃｎｔ＿ｃｌｒ，ｒｏｍ＿ｂｕｓｙ＿ｖａｌｕｅをＲＯＭアクセス頻度検出部１８に設定する。
【００９０】
続くＳ７４０では、ＲＯＭ５０のブート領域に格納されたＲＡＭ５５に対するアクセス頻度測定期間値ｒａｍ＿ｃｎｔ＿ｃｌｒと、ＲＡＭ５５に対する回数閾値ｒａｍ＿ｂｕｓｙ＿ｖａｌｕｅとを読み出す。そして、読み出した両値ｒａｍ＿ｃｎｔ＿ｃｌｒ，ｒａｍ＿ｂｕｓｙ＿ｖａｌｕｅをＲＡＭアクセス頻度検出部２０に設定する。
【００９１】
さらに、Ｓ７５０では、第一のプログラム領域のアドレスと、ＤＭＡコントローラ３５によって転送されたプログラムの格納先である第二プログラム領域のアドレスをアクセス振り分け検出部４０に設定する。つまり、ＣＰＵ１２からのアクセス要求を受信したアクセス振り分け検出部４０が、振分可能信号ｃｏｎｖ＿ｅｎをハイレベルとするアドレス領域が設定される。
【００９２】
より具体的に、本実施形態では、ＲＯＭ５０の第一プログラム領域のアドレス（図２中のアドレス１＿２からアドレス１＿３）と、ＲＡＭ５５の第二プログラム領域のアドレス（図２中のアドレス２＿１からアドレス２＿２）とが設定される。
【００９３】
なお、Ｓ７５０でアドレスエリアが設定されるまでは、アクセス振り分け検出部４０は、振分可能信号ｃｏｎｖ＿ｅｎをローレベルに保持する。
そして、その後、Ｓ７６０では、画像形成装置１の各部（記録部５、読取部７等）を、操作部等からの各種指令を受け付けることが可能なアイドリング状態とし、以後、指令を受け付ける毎に、その指令に応じた機能を実現するためのプログラムの実行等を行う。
〈第一実施形態の効果〉
以上説明したように第一実施形態の画像形成装置１では、ＣＰＵ１２から振分可能なプログラム読出要求が出力されると、ＲＯＭ５０及びＲＡＭ５５のアクセス状況に応じて、アクセス対象とされている要求メモリが非ビジー状態であれば、そのままアクセス要求を実行し、要求メモリがビジー状態であれば、非要求メモリが非ビジー状態であることを条件として、アクセス対象を要求メモリから非要求メモリに変更して、プログラム読出要求を実行するようにされている。
【００９４】
したがって、第一実施形態の画像形成装置１によれば、ビジー状態にあるＲＯＭ５０またはＲＡＭ５５に対してプログラム読出要求が行われる可能性が大幅に低減されるため、ＣＰＵ１２がプログラムを読み出して処理を実行するまでに要する時間を短縮することができる。
【００９５】
また、本実施形態の画像形成装置１では、ＣＰＵ１２によるプログラム読出要求のアクセス対象が基本的にＲＡＭ５５となるように設定しておけば、ＣＰＵ１２は、ＲＡＭ５５が非ビジー状態であるときには、ＲＡＭ５５から高速にプログラムを読み出すことができるため、平均的な処理時間を短縮することができる。さらに、ＲＡＭ５５がビジー状態、即ち、データ処理制御部等のＣＰＵ１２以外の構成からのＲＡＭ５５に対するアクセス要求が頻繁に実行されているときには、ＣＰＵ１２のプログラム読出要求は、ＲＯＭ５０に対して実行される。このため、ＣＰＵ１２は、ＣＰＵ１２以外の構成からのＲＡＭ５５に対するアクセス要求（その実行も含む）を妨害することなく、また、これらのアクセス要求によって待たされることなく、プログラムを読み出して処理を実行することができる。
【００９６】
その結果、当該画像形成装置１の動作が停止（いわゆるフリーズ）したように感じる動作状態となることを防止でき、使用者に不安を与える可能性を低減することができる。また、ＣＰＵ１２がプログラムの読み出し・実行を開始するまでの待ち時間が生じることによる不具合を回避することができる。
【００９７】
また、本実施形態のＲＡＭアクセス頻度検出部２０およびＲＯＭアクセス頻度検出部１８におけるアクセス頻度の検知時間Ｔ（即ち、アクセス頻度測定期間値ｒａｍ＿ｃｎｔ＿ｃｌｒ，ｒｏｍ＿ｃｎｔ＿ｃｌｒ）を短く設定すれば、プログラムの読出要求のタイミングとアクセス頻度の測定のタイミングとのズレが小さくなるため、検知されるアクセスの頻度を、読出要求タイミングでのアクセス状況を正確に反映したものとすることができる。
［第二実施形態］
次に、第二実施形態について説明する。
【００９８】
第一実施形態に示した画像形成装置１と第二実施形態で説明する画像形成装置とは、ＡＳＩＣ１０のＲＡＭアクセス頻度検出部２０の構成が異なるのみである。このため、第一実施形態に示す画像形成装置１と同様の構成及び処理については、同一の符号を付して、説明を省略し、第一実施形態とは異なるＲＡＭアクセス頻度検出部２０を中心に説明する。
【００９９】
ここで、図９は、第二実施形態におけるＲＡＭアクセス頻度検出部２０の概略構成を示すブロック図である。
第二実施形態におけるＲＡＭアクセス頻度検出部２０は、ＲＡＭコントローラ部１６からのアクセス実行信号ｒａｍ＿ｅｘｅに従って、予め定められた期間内でのＲＡＭ５５に対するアクセス回数（即ち、アクセス要求の実行回数）を測定するアクセス回数測定部７２と、アクセス回数測定部７２で測定した測定結果を予め規定された回数分について、順次更新しながら記憶するＦＩＦＯ部７４（本発明のアクセス頻度記憶手段の一例）と、ＦＩＦＯ部７４に記憶された測定結果を加重平均し、その結果に従ってアクセス頻度信号ｒａｍ＿ｂｕｓｙを出力する平均値算出部７６（本発明のアクセス頻度平均手段の一例）とを備えている。
【０１００】
アクセス回数測定部７２は、規定時間Ｔ内でのアクセス回数ｒａｍ＿ａｃｃ＿ｃｎｔをカウントし、その回数（以下、アクセス回数値とする）をＦＩＦＯ部７４に記憶するように構成されている。つまり、アクセス回数測定部７２では、第一実施形態のＲＡＭアクセス頻度検出部２０と同様に、クロックｃｌｋの一周期毎に、ＲＡＭコントローラ部１６からのアクセス実行信号ｒａｍ＿ｅｘｅを監視し、アクセス実行信号ｒａｍ＿ｅｘｅがハイレベルであれば、アクセス回数ｒａｍ＿ａｃｃ＿ｃｎｔを増加し、規定時間Ｔを経過すると、アクセス回数ｒａｍ＿ａｃｃ＿ｃｎｔをＦＩＦＯ部７４に記憶させた後、その値を初期化（即ち、リセット）するようにされている。
【０１０１】
また、平均値算出部７６は、ＦＩＦＯ部７４に記憶された順序が、最新のアクセス回数値に対して最も大きな重みを付与し、古いアクセス回数値に対して新しいアクセス回数値よりも小さな重みを付与して加重平均するように構成されている。
【０１０２】
さらに、平均値算出部７６は、アクセス回数値を加重平均した結果（以下、加重平均値とする）が、アクセス頻度が高いことを表すものとして予め設定された頻度閾値（第一実施形態に示す回数閾値ｒａｍ＿ｂｕｓｙ＿ｖａｌｕｅに相当）よりも大きければ、アクセス頻度信号ｒａｍ＿ｂｕｓｙをハイレベル（即ち，ＲＡＭ５５はビジー状態）とし、加重平均値が頻度閾値よりも小さければ、アクセス頻度信号ｒａｍ＿ｂｕｓｙをローレベル（即ち、ＲＡＭ５５は非ビジー状態）としてバスコントローラ部４５に出力する。
【０１０３】
なお、アクセス回数検出部７２及び平均値算出部７６は、予め決められた手順の処理を実行するシーケンサとして構成され、一般的な論理回路の組み合わせにより実現されたものであり、ＦＩＦＯ部７４は、フリップフロップを有した周知のメモリである。
〈第二実施形態の効果〉
以上説明したように本実施形態の画像形成装置によれば、最新のアクセス回数値に対して最も大きな重みを付与し、古いアクセス回数値に対して新しいアクセス回数値よりも小さな重みを付与して加重平均しているため、最新の状況がより濃く反映されたアクセス頻度を把握することができる。
【０１０４】
また、本実施形態の画像形成装置によれば、予め規定された回数分について、順次更新しながら、アクセス回数を加重平均、（即ち、移動平均）しているため、アクセス頻度を正確に把握するために必要な時間の長さを確保しつつ、検知時間毎に、最新の状況が反映されたアクセス頻度を把握することができる。
【０１０５】
これらの結果、本実施形態の画像形成装置によれば、ＣＰＵ１２がプログラムを読み出すために必要な時間が短くなるように、バスコントローラ部４５がプログラム読出要求の出力先を確実に選択することができる。
［その他の実施形態］
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において様々な態様にて実施することが可能である。
【０１０６】
例えば、第一実施形態では、ＲＡＭアクセス頻度検出部２０での回数閾値ｒａｍ＿ｂｕｓｙ＿ｖａｌｕｅを、アクセス頻度測定期間値ｒａｍ＿ｃｎｔ＿ｃｌｒ内で、アクセス要求を実行できる最大回数の８０％として設定したが、これに限るものではない。つまり、ＲＡＭ５５に対するプログラム読出要求が実行されることを待たせるよりも、ＲＯＭ５０に対するプログラム読出要求が実行されたほうが、処理時間が短くなるような回数閾値ｒａｍ＿ｂｕｓｙ＿ｖａｌｕｅであれば良い。
【０１０７】
なお、ＲＯＭアクセス頻度検出部１８での回数閾値ｒｏｍ＿ｂｕｓｙ＿ｖａｌｕｅも、ＲＡＭアクセス頻度検出部２０での回数閾値ｒａｍ＿ｂｕｓｙ＿ｖａｌｕｅと同様に決定されていれば良い。
【０１０８】
また、第二実施形態におけるＲＡＭアクセス頻度検出部２０では、平均値算出部７６においてＦＩＦＯ部７４に記憶された測定結果を加重平均していたが、これに限るものではない。例えば、予め規定された回数分の移動平均を行っても良いし、一般的な算術平均を行っても良い。
【０１０９】
また、第二実施形態におけるＲＡＭアクセス頻度検出部２０では、アクセス回数測定部７２において測定されたアクセス回数を用いて、ＲＡＭ５５に対するアクセス頻度を測定したが、これに限るものではない。例えば、規定時間Ｔ内でのＲＡＭ５５に対するアクセス回数をアクセスの頻度を表すアクセス度数に変換（第一実施形態のように、アクセス回数が予め規定された閾値以上であればアクセス度数を１、閾値未満であればアクセス度数を０とする）して、その度数をＦＩＦＯ部７４に記憶しても良い。
【０１１０】
この場合、アクセスの頻度を表す指標としてアクセス回数を用いる時に比べてデータ量が小さくなるため、ＦＩＦＯ部７４の記憶容量を小さくすることができる。
また、本実施形態のＡＳＩＣ１０では、ＲＯＭアクセス頻度検出部１８とＲＡＭアクセス頻度検出部２０とを備えていたが、少なくともいずれか一つを備えていれば良い。この場合、バスコントローラ部４５は、どちらか一つから出力されるアクセス頻度信号ｒａｍ＿ｂｕｓｙ（または、アクセス頻度信号ｒｏｍ＿ｂｕｓｙ）に従って、ＣＰＵ１２からのプログラム読出要求の出力先を制御すればよい。
【図面の簡単な説明】
【０１１１】
【図１】本発明が適用された画像形成装置の構成を示すブロック図である。
【図２】ＡＳＩＣに内蔵されたＣＰＵのメモリマップを示す模式図である。
【図３】画像形成装置の制御部における構成を示すブロック図である。
【図４】ＲＡＭアクセス頻度検出部が実行する処理の手順を示すフローチャートである。
【図５】ＲＡＭアクセス頻度検出部で用いられる信号の概略を示す説明図である。
【図６】ＲＯＭアクセス頻度検出部が実行する処理の手順を示すフローチャートである。
【図７】バスコントローラ部が実行する処理の手順を示すフローチャートである。
【図８】ＣＰＵが実行する処理プログラムを示すフローチャートである。
【図９】第二実施形態におけるＲＡＭアクセス頻度検出部の構成を示すブロック図である。
【符号の説明】
【０１１２】
１…画像形成装置  ３…制御部  ５…記録部  ７…読取部  ８…ＵＳＢＩ／Ｆ部  ９…モデム部  １０…ＡＳＩＣ  １４…ＲＯＭコントローラ部  １６…ＲＡＭコントローラ部  １８…ＲＯＭアクセス頻度検出部  ２０…ＲＡＭアクセス頻度検出部  ２５…ＲＡＭアクセス調停部  ３０…ＲＯＭアクセス調停部  ３５…ＤＭＡコントローラ部  ４０…アクセス振り分け検出部  ４５…バスコントローラ部  ５５…記録制御部  ５６…画像処理制御部  ５７…読取制御部  ５８…ＵＳＢＩ／Ｆ制御部  ５９…モデム制御部  ７０…アクセス頻度検出部  ７２…アクセス回数測定部  ７４…ＦＩＦＯ部  ７６…平均値算出部  Ｂ１…第一のバス  Ｂ２…第二のバス  Ｂ３…第三のバス
【図１】
2007334815.tif 000003
【図２】
2007334815.tif 000004
【図３】
2007334815.tif 000005
【図４】
2007334815.tif 000006
【図５】
2007334815.tif 000007
【図６】
2007334815.tif 000008
【図７】
2007334815.tif 000009
【図８】
2007334815.tif 000010
【図９】
2007334815.tif 000011