説明

アクセス制御装置、画像形成装置およびアクセス制御方法

【課題】複数の内部モジュールから異なる外部バス空間へ同時に書き込みアクセスがあった場合に、内部バスが待ち状態になる頻度を低下させ、内部バスのパフォーマンスを向上させること。
【解決手段】アクセス制御装置は、内部バス305と、外部デバイスとのデータの送受信を行うための外部バスと、外部バスを制御する外部バスコントローラ304と、を備え、外部バスコントローラ304は、外部デバイスに対応して設けられ、内部バスからのデータを一時的に保存する複数のFiFo0〜2と、内部バス305からのアクセス要求に対して、複数のFiFo0〜2のうち、外部バスにデータ転送するFiFoの選択を行い、選択されたFiFoに保存されたデータを外部バスに出力する調停回路310と、を備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アクセス制御装置、画像形成装置およびアクセス制御方法に関する。
【背景技術】
【0002】
電子写真方式の画像形成装置は、装置全体を統括制御するためのコントローラ回路、コントローラ回路に接続された操作部回路、LANインターフェース回路、作像及び給排紙制御を行うためのエンジン制御回路、原稿を読み込むスキャナー制御回路、原稿を読み込んで得られた画像データを感光体ドラム上に書き込むためのLDB(Laser Diod Board)回路等で構成される。
【0003】
この中でも装置全体を統括制御するコントローラ回路には、CPU(Central Processing Unit)が搭載されており、プログラムを格納するための不揮発性メモリ、及び一時的な作業データを格納するための揮発性メモリを用いて、プログラムを動作させて、各制御回路を制御している。
【0004】
一般的にCPUは、同一バス上にDMA(Direct Memory Access)コントローラを有しており、同じく同一バス上に配置された外部バスコントローラを経由して外部に接続された各デバイスの制御を行っており、ASIC(Application Specific Integrated Circuit)などで構成される場合が多い。
【0005】
この時、ASICのピン数を最小限とするため、外部バスは接続デバイス分用意するのではなく、デバイスを並列接続し、デバイス選択信号を用いて、アクセスするデバイスを特定する構成が採用されている。
【0006】
また、通常ASIC内部のバスアクセスは、サイクル周波数にもよるが、1サイクルなど高速アクセスが可能であるが、外部バスアクセスは、端子容量・基板/ハーネスなどの経路・バッファなどによって、信号遅延が発生する。このため外部バスにアクセスする場合には、外部のデバイスが応答可能な速度でアクセスを行う。しかしながら外部デバイスのアクセス速度に併せて、内部バスもアクセスすると、内部バスの処理性能が低下するため、一般的にはFiFo(Firt−In First−Out)メモリなどを用いて速度差を吸収する構成がとられる。このように構成することにより、FiFoメモリに空きがある限り、内部バスが待ち状態になることを回避することができる。
【0007】
さらに近年、内部バスはマトリクス状で構成される場合もある。このように構成することにより、同一バス上に接続されているCPUとDMAコントローラが、アクセス元/アクセス先が異なる場合は、同時にデータ転送をすることが可能となる技術が既に知られている。
【0008】
また、特許文献1には、DMACによるデータ転送に必要な動作サイクル数を小さくする目的で、マイクロコンピュータに内蔵されたバスコントローラの前段にDMACを配置し、DMACにデータバッファを設けず、DMACによるデータ転送制御に際して、バスコントローラのデータバッファから直接転送先にデータを転送させる技術について開示されている。
【0009】
しかしながら、このような従来技術の構成では、FiFoメモリへの内部バスからのアクセス周期に対して、外部バスからのアクセス周期が遅いため、FiFoメモリに空きがある場合は問題ないが、外部バスへのアクセス頻度が高いと、FiFoメモリが頻繁にFULLになってしまうという問題がある。FiFoメモリがFULLになると内部バスからのデータ書き込みができないため、書き込み可能となるまで内部バスが待ち状態になる場合があり、外部バスアクセス速度がネックで内部バスのアクセスパフォーマンスが低下する問題があった。
【0010】
また、外部バスコントローラと内部バスとの接続が1系統の場合、複数のモジュールからの同時アクセスができないという問題がある。例えば、CPUとDMAコントローラなどから、外部バスアクセス要求が同時に発生した場合、通常優先順位の高いアクセスが優先的に処理される様に構成される。この場合、優先順位の低いアクセスは、優先順位の高いアクセスが終わるまで待ち状態になる。同一の外部バス空間へのアクセスであった場合は、待ち状態になるのは避けようがないが、異なる外部バス空間へのアクセスであった場合には、内部バスの待ち状態を回避すべきである。
【0011】
さらに、優先順位の高いアクセス要求がバーストライトアクセス要求であった場合、バーストライトアクセスが終了するまで優先順位の低いアクセス要求が待ち状態になってしまうという問題もあった。
【0012】
このような問題を解決するために、FiFoメモリを複数設け、それぞれのFiFoメモリを内部バスに接続する構成が考えられる。この構成の利点として、上記の異なる外部バス空間へのアクセスが発生した場合でも、FiFoが異なるため、内部バスのウェイト状態を回避することが可能となる。
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、このような従来技術では、外部バスの入出力が1系統のため、アクセス順序に応じた制御の場合、内部バスでバーストライト動作が始まると、やはり外部バスアクセスが、バースト動作で占有され、他からのアクセス要求は待ち状態になってしまうという問題がある。
【0014】
本発明は、上記に鑑みてなされたものであって、複数の内部モジュールから異なる外部バス空間へ同時に書き込みアクセスがあった場合に、内部バスが待ち状態になる頻度を低下させ、内部バスのパフォーマンスを向上させることができるアクセス制御装置、画像形成装置およびアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
上述した課題を解決し、目的を達成するために、本発明にかかるアクセス制御装置は、外部デバイスとのデータの送受信を行うための外部バスを制御する外部バス制御部と、を備え、前記外部バス制御部は、前記外部デバイスに対応して設けられ、内部バスからのデータを一時的に保存する複数の記憶部と、前記内部バスからのアクセス要求に対して、前記複数の記憶部のうち、前記外部バスにデータ転送する前記記憶部の選択を行い、選択された記憶部に保存されたデータを前記外部バスに出力する調停部と、を備えたことを特徴とする。
【0016】
また、本発明にかかる画像形成装置は、画像形成に関する制御を行う制御部を備え、前記制御部は、前記制御部外のデバイスである外部デバイスとのデータの送受信を行うための外部バスを制御する外部バス制御部、を備え、前記外部バス制御部は、前記外部デバイスに対応して設けられ、内部バスからのデータを一時的に保存する複数の記憶部と、前記内部バスからのアクセスがあるごとに、前記複数の記憶部のそれぞれのデータを前記外部バスへ出力する順位を変更する制御を行い、変更した順位で前記複数の記憶部のそれぞれのデータを前記外部バスへ出力する調停部と、を備えたことを特徴とする。
【0017】
また、本発明にかかるアクセス制御方法は、アクセス制御装置で実行されるアクセス制御方法であって、前記アクセス制御装置は、外部デバイスとのデータの送受信を行うための外部バスを制御する外部バス制御部、を備え、前記外部バス制御部は、前記外部デバイスに対応して設けられ、内部バスからのデータを一時的に保存する複数の記憶部を備え、前記内部バスからのアクセスがあるごとに、前記複数の記憶部のそれぞれのデータを前記外部バスへ出力する順位を変更する制御を行うステップと、変更した順位で前記複数の記憶部のそれぞれのデータを前記外部バスへ出力するステップと、を含むことを特徴とする。
【発明の効果】
【0018】
本発明によれば、複数の内部モジュールから異なる外部バス空間へ同時に書き込みアクセスがあった場合に、内部バスが待ち状態になる頻度を低下させ、内部バスのパフォーマンスを向上させることができるという効果を奏する。
【図面の簡単な説明】
【0019】
【図1】図1は、実施の形態1にかかる画像形成装置の電気系の構成を示すブロック図である。
【図2】図2は、ASICの構成図である。
【図3】図3は、外部バスアドレス空間と各FiFoの割り当てを示す説明図である。
【図4】図4は、実施の形態1の外部バスコントローラの動作タイミングを示す説明図である。
【図5】図5は、実施の形態2の外部バスコントローラの動作タイミングを示す説明図である。
【図6】図6は、実施の形態3の外部バスコントローラの動作タイミングを示す説明図である。
【図7】図7は、従来の外部バスコントローラの動作タイミングを示す説明図である。
【図8】図8は、従来のFiFoメモリがない場合の外部バスコントローラの構成図である。
【図9】図9は、FiFoメモリを設けた場合の従来例の外部バスコントローラの構成図である。
【発明を実施するための形態】
【0020】
以下に添付図面を参照して、アクセス制御装置、画像形成装置およびアクセス制御方法の実施の形態を詳細に説明する。
【0021】
(実施の形態1)
図1は、実施の形態1にかかる画像形成装置の電気系の構成を示すブロック図である。本実施の形態では、画像形成装置として、コピー機能、スキャナ機能、ファクシミリ機能、プリンタ機能を備えた複合機を例にあげて説明する。なお、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像形成装置であればいずれにも本発明を適用することができる。
【0022】
本実施の形態の画像形成装置は、図1に示すように、コントローラボード501と、操作部制御ボード502と、HDD(Hard Disk Drive)503と、LANインターフェースボード500と、汎用PCIバスに接続されたFAXコントローユニット(FCU)506と、エンジン制御ボード510と、読み取りユニット300と、LDB(Laser Diode control Board)512とを主に備えている。画像形成装置は、この他、IEEE1394ボード、無線LANボード、USBボード等(いずれも不図示)も備えている。
【0023】
LANインターフェースボード500は、社内LANに接続されており、社内LANとコントローラボード501との通信インターフェースボードである。外部機器との通信はこのLANインターフェースボード500を経由して実施される。
【0024】
HDD503は、画像データ等の各種データを記憶する記憶媒体である。より具体的には、HDD503は、画像形成装置のアプリケーションプログラ、プリンタ、作像プロセス機器の機器付勢情報を格納するアプリケーションデータベース、読み取り画像や書き込み画像の画像データ、文書データを蓄える画像データベースとして用いられる。
【0025】
操作部制御ボード502は、コントローラボード501に接続され、ユーザへの各種画面の表示およびユーザからの入力を受け付ける操作表示部(不図示)の制御を行う。FCU506は、ファクシミリ機能を実現するユニットである。
【0026】
エンジン制御ボード510は、PCIバスでコントローラボード501に接続され、エンジンであるLDB512および読取りユニット300の制御を行う。すなわち、エンジン制御ボード510は、画像形成装置の作像制御を主として行い、CPU510bと、画像処理を行う画像データ処理器(IPP:Image Processing Processor)510aと、複写およびプリントアウトを制御するため必要なプログラムを内蔵したROM510eと、その制御に必要なSRAM510gと、画像形成に必要な各種パラメータを格納するためのNV―RAM510fと、更にはI/O(カウンター、ファン、ソレノイド、モーター等)を制御するための複数のI/O ASIC510c、510dとを備え、それぞれ外部バスで接続されている。CPU510bは、ROM510eに格納されているデータをリードし、プログラムコードに従い、各デバイスの制御を行うことで、画像形成を行っている。
【0027】
読み取りユニット300は、CCD521と、スキャナボード(SBU:Scanner Board Unit)511を備えている。CCD521は、コピー対象の原稿に対する照明光源の走査を行い、原稿を光学的に読み取って原稿に対する光照射の反射光を結像し、この反射光を光電変換して画像信号を生成する。
【0028】
SBU511は、アナログASIC及びCCD521、アナログASICの駆動タイミングを発生する回路(不図示)を備えている。CCD521から出力される画像信号は、アナログASIC内部でデジタル画像データへの変換、シェーディング補正などを行ない、エンジン制御ボード510のIPP510aに送出される。
【0029】
IPP510aは画像処理をおこなうプログラマブルな演算処理部であり、階調処理等を行う。SBU511からIPP510aに転送された画像データは、IPP510aによって光学系およびデジタル信号への量子化に伴う信号劣化(スキャナ系の信号劣化)を補正され、図示しないフレームメモリに書き込まれる。
【0030】
LDB512は、原稿を読み取ることで得られた画像データ、ネットワークを介して受信した画像データを感光体ドラム(不図示)に書き込むものである。
【0031】
すなわち、IPP510aで処理された画像データは、一度PCIバスを経由してコントローラボード501のワークメモリに格納される。そして用紙の給紙タイミングに応じて、ワークメモリから画像データを読み出し、LDB512のLD書き込み回路に入力される。LD書き込み回路でLD電流制御(変調制御)が行われ、各LDに出力される。
【0032】
コントローラボード501には、図示しないCPU及びプログラムを格納するためのROM、CPUの作業用メモリであるRAM及びCPU周辺を制御するASIC及びそのインターフェース回路等が搭載されている。
【0033】
コントローラボード501は、スキャナアプリケーション,ファクシミリアプリケーション,プリンタアプリケーションおよびコピーアプリケーション等の複数アプリケーションの機能を有し、画像形成装置全体の制御を行う。また、コントローラボード501は、操作部制御ボード502の入力を解読して本システムの設定とその状態内容を操作表示部の液晶パネル等に表示する。
【0034】
PCIバスは他のユニットと接続されており、画像データバス/制御コマンドバスで、画像データと制御コマンドが時分割で転送される。
【0035】
本実施の形態では、画像処理を行うIPP及びI/O制御は、ASICでハードウェア化されており、画像形成の最初もしくはI/Oが動作する際にのみ、各デバイスへのアクセス制御を行っている。このため、CPUのアクセス頻度としては、FROM及びワークエリアとして使用しているRAMは高頻度でアクセスを行うが、その他のデバイスへのアクセス頻度はFROM/RAMほどは高くない。このようにアクセス頻度の高いデバイスと、低いデバイスが混在する構成となっている。
【0036】
しかしながら、外部デバイスの設定レジスタ数が多くなると、画像形成開始時及びI/O制御開始時に、FROM・RAMアクセスとタイミングが重なってしまう場合がある。このとき外部デバイスへのアクセスは、配線領域及びASICのピン数の問題で、同一外部バスを並列接続して使用しているため、各デバイスへのアクセスに遅延が生じる場合がある。遅延が生じても、結果として作像動作に影響がなければ問題ないが、扱うデータ量が多い機種であったり、コピー速度が速い機種、入出力数(I/O数)が多い機種では、例えば画像生成タイミングと用紙の搬送タイミングがずれて出力画像に影響を及ぼしたり、各入出力を制御するタイミングがずれて、用紙詰まりを発生させてしまう場合がある。特に外部バスへのアクセスが集中するタイミングで、CPUの内部バスのアクセス頻度が対処理がウェイト状態となる時間が長くなる程、前述の問題が発生するリスクが高くなる。このため、本実施の形態では、ASICを以下のように構成している。
【0037】
図2は、ASICの構成図である。ASIC内部は、図2に示すように、CPUコア301と、複数のDMAコントローラ302と、内部SRAM303と、外部バスコントローラ304とを主に備えている。また、ASICは、不図示のUART/I2C/ウォッチドックタイマなどその他のモジュールも備えている。これらの各モジュールは内部バス305で接続されており、CPUコア301、DMAコントローラ302をマスタとして、モジュール間のデータ転送を行っている。
【0038】
内部バス305は、マトリックス上に構成されていて、それぞれバスマスタとなるモジュールのデータ転送が占有可能なように構成されている。このためCPUコア301によるその他のモジュール(例えばUART)へのアクセスと、DMA302によるSRAM303からI2Cモジュールへのデータ転送などを同時に行うことが可能になっている。
【0039】
なお、本実施の形態では、CPUコア301、DMA302、不図示のUSB−HOSTをバスマスタとしている。
【0040】
SRAM303は、複数に分割配置されている。これにより、SRAM領域を異なるマスタから同時にアクセスすることが可能となり、メモリの使用効率の向上が図られている。
【0041】
外部バスへのアクセスは、外部バスコントローラ304を経由して行われる。外部バスコントローラ304は、本実施の形態では、3つの先入れ先出し方式のFiFoメモリ0〜2(以下、単に「FiFo0〜2」という場合もある。)と調停回路310とを内蔵している。
【0042】
FiFo0〜2のそれぞれは、内部バス305と接続されていて、内部バス305の各マスタから転送されてきたデータを一時格納するものである。本実施の形態では、各デバイス毎(チップセレクト空間毎)に外部アドレス空間が割り付けられている。
【0043】
図3は、外部バスアドレス空間と各FiFoの割り当てを示す説明図である。図3に示すように、外部アドレス空間であるチップセレクト空間CS0〜CS3がFiFo0に割り付けられ、チップセレクト空間CS4〜CS7がFiFo1に割り付けられ、チップセレクト空間CS8〜CS11がFiFo2に割り付けられている。各FiFo0〜2の図示しないアドレスデコーダが内部バス305のアクセス空間に応じて、対象アドレス空間へのアクセスであった場合に、FiFo0〜2にアドレス及びデータを格納する動作を行っている。
【0044】
FiFo0〜2に格納されたデータは、調停回路310を通じて外部バスに転送される。調停回路310は、主に複数のFiFo0〜2のうち、外部バスにデータ転送するFiFoの選択を行うものである。調停回路310の動作の詳細については後述する。
【0045】
上述したように外部バスには複数の外部デバイスが並列に接続されているため、調停回路310ではアクセスするデータが、どの外部デバイスへのデータを転送するかを識別するためのチップ選択信号(CS信号)の生成も行っている。本実施の形態では、12個のCS空間を持っており、それぞれのFiFo0〜2ごとに4つのCS空間のアクセスデータが格納される。
【0046】
通常、内部のバスアクセスは、サイクル周波数にもよるが、1サイクルなど早いアクセスが可能であるが、外部バスアクセスは、ASICの端子容量・基板/ハーネスなどの経路・バッファなどによって、信号遅延が発生する。このため外部バスにアクセスするときは、外部のデバイスが応答可能な速度でアクセスを行う。
【0047】
しかしながら、外部デバイスのアクセス速度に併せて、内部バスもアクセスすると、内部バスの処理性能が低下する。FiFo0〜2は、このアクセス速度差を吸収する役割も担っている。このように構成することで、外部アクセスが遅くても、FiFo0〜2に空きがある限り、内部バスが待ち状態になることが回避される。
【0048】
本実施の形態の外部バスコントローラ304の動作を説明する前に、従来の外部バスコントローラについて説明する。
【0049】
図7は、従来の外部バスコントローラの動作タイミングを示す説明図である。図7(a)は、各モジュールからのアクセス要求タイミングを示し、図7(b)は内部バスとの接続が1系統でFiFoメモリなしの場合のアクセスタイミングを示す。図8は、従来のFiFoメモリがない場合の外部バスコントローラの構成図である。
【0050】
各モジュールからの内部バスを介するアクセス要求があった場合、従来の外部バスコントローラは、先にアクセス要求のあった処理を随時受け付ける処理を行う。そして、複数の要求が同時にあった場合は、優先順位の高い処理を先に処理を行う。
【0051】
図7は、優先順位はCPU>DMAC#0>DMAC#1となっている例であり、例えば、図7(a)に示すように、「A0」、「C0」のような複数の要求が同時にあった場合は、図7(b)に示すように、優先順位の高い「A0」の要求が先に処理される。FiFoメモリがない場合、外部アクセスが終了したときのアクセス要求を参照し、優先順位の高いアクセス要求を処理していくため、図7に示すように、優先順位の高いアクセス要求(CPU)が連続して発生すると、優先順位の低いアクセス要求(DMAC#0/1)の処理が待たされる状態となる。
【0052】
そして、優先順位の高いアクセス要求が一通り終了した後に、優先順位の低いアクセスが処理される。このため、アクセス頻度の高い処理の優先順位を低くし、頻度の低い処理を高く設定せざるを得ない。本来であれば、CPUアクセスは最も優先順位を高くしたいところではあるが、アクセス頻度が高い場合は優先順位を低くせざるを得なく、処理が集中した場合に、遅延が発生するという問題が残る。
【0053】
一方、図9は、内部バスと調停回路の間にFiFoメモリを設けた場合の従来例の外部バスコントローラの構成図である。
【0054】
図7(c)は、図9の外部バスコントローラ(内部バスとの接続が1系統でFiFoメモリありの場合)のアクセスタイミングを示す図である。この例でも、図7(a)に示す各モジュールからのアクセス要求タイミングであるとする。また、図7(c)において、FiFoレベルは、FiFoメモリにデータが格納されている段数の状態を示している。図7(c)の例では、FiFoメモリは6段のものを使用し、このため6つデータが保存されたときに、FULLの状態となる。図7(c)において、FiFoレベルの網掛け部分は、FiFoがFULLになっている状態を示している。
【0055】
図7(c)に示すように、FiFoメモリがFULLの状態でなく、空きがある場合にはアクセス要求の先着順で、FiFoメモリにデータが格納されるため、内部バスのアクセス順序に従って外部バスをアクセスすることが可能となる(S71,S72参照)。しかし、アクセス要求が集中しFiFoがFULLの状態になると、やはり図7(b)と同様の状態となり、外部アクセスが終了したときのアクセス要求を参照し、優先順位の高いアクセス要求をFiFoに格納していくようになるため、優先順位の高いアクセス要求(図7の例ではCPUからのアクセス要求)が連続して発生すると、優先順位の低いアクセス要求(図7の例では、DMAC#0/1からのアクセス要求)の処理が待たされる状態となる。FiFoメモリの段数を大幅に追加することにより、上記問題を解決することができる、製造コストが増大してしまう。
【0056】
このため、本実施の形態の調整回路310は、内部バスからのアクセス要求に対して、3個のFiFoメモリ0〜2のうち、外部バスにデータ転送するFiFoメモリの選択を行い、選択されたFiFoメモリに保存されたデータを外部バスに出力する。より具体的には、3個のFiFoメモリ0〜2のそれぞれからのデータ出力の優先順位を最初に定めておき、調停回路310は、内部バスからのアクセス要求に対して、3個のFiFoメモリ0〜2のそれぞれからのデータ出力の優先順位を変更して、変更された優先順位に従って、外部バスにデータ転送するFiFoメモリの選択を行い、選択されたFiFoメモリに保存されたデータを外部バスに出力する。
【0057】
図4は、実施の形態1の外部バスコントローラの動作タイミングを示す説明図である。図4(a)は、各モジュールからのアクセス要求タイミングを示す。図4(b)は、本実施の形態の調停回路310で優先順位を各アクセス毎に入れ替えたときのアクセスタイミングを示している。ここで、FiFoレベルは、各FiFo0〜2にデータが格納されている段数の状態を示している。本例の各FiFo0〜2は、3段のものを使用しており、このため、各FiFo0〜2は、3つデータが保存されたときに、FULLの状態となる。図4(b)において、FiFoレベルの網掛け部分は、FiFoがFULLになっている状態を示している。
【0058】
図4(b)の例では、外部バスコントローラ304がA0とC0のアクセス要求を同時に受付け、A0をFiFo0に格納し、C0をFiFo2に格納している。そして、A0を外部バスにデータ出力し、次にA1とB0のアクセス要求を同時に受付け、A1をFiFo0に格納し、B0をFiFo1に格納している。同様に、外部バスコントローラ304が順次、アクセス要求を受け付けて、FiFo0〜2に格納していくが、A3のアクセス要求を受け付けたときに、FiFo0がFULLの状態となることが図4(b)に示されている。
【0059】
本実施の形態の調停回路310は、各FiFoメモリにデータがある場合、アクセスごとに、FiFoメモリ0〜2のそれぞれからのデータ出力の優先順位を順次変更する動作を行う。
【0060】
例えば、優先順位は、最初、FiFo0>FiFo1>FiFo2の順に定められており、調停回路310は、最初のアクセスではFiFo0>FiFo1>FiFo2の優先順位でFiFoメモリ0を選択してFiFo0に保存されているデータを外部バスに出力する。このため、図4(b)に示すように、最初のアクセスでは、FiFo0の「A0」が外部バスに出力される(S41)。
【0061】
また、調停回路310は、2回目のアクセスでは優先順位をFiFo1>FiFo2>FiFo0に変更し、この優先順位に従ってFiFo1を選択し、FiFo1に保存されているデータを外部バスに出力する。このため、図4(b)に示すように、2回目のアクセスでは、FiFo1の「B0」が外部バスに出力される(S42)。
【0062】
また、調停回路310は、3回目のアクセスでは優先順位をFiFo2>FiFo0>FiFo1に変更してFiFo2を選択し、FiFo2に保存されているデータを外部バスに出力する。このため、図4(b)に示すように、3回目のアクセスでは、FiFo2の「C0」が外部バスに出力される(S43)。
【0063】
また、調停回路310は、4回目のアクセスでは優先順位をFiFo0>FiFo1>FiFo2に変更して、FiFo0を選択し、FiFo0に保存されているデータを外部バスに出力する。このため、図4(b)に示すように、4回目のアクセスでは、FiFo0の「A1」が外部バスに出力される(S44)。
【0064】
なお、このときデータが格納されていないFiFoメモリがある場合は、優先順位が最下位となる。
【0065】
FiFoメモリを1個で構成した場合、優先順位の高いアクセス要因がバーストアクセス要求であった場合に、他の要因がウェイト状態になってしまうことがあったが、本実施の形態では、複数のFiFoメモリ0〜2を設け、調停回路310でデータ転送の優先順位をアクセスごとに変更しているので、各要因のデータが均等に転送される。このため、本実施の形態によれば、内部バスのロック時間を短くすることが出来き、パフォーマンスを向上させることが可能となる。
【0066】
(実施の形態2)
実施の形態2では、調整回路310による制御が実施の形態1と異なっている。実施の形態2の画像形成装置の電気系の構成、ASICの構成は、図1、2を用いて説明した実施の形態1と同様である。
【0067】
本実施の形態では、3つのFiFo0〜2のそれぞれには、予め重み付け値が設定されている。重み付け値は、ROMまたはRAM等にFiFo0〜2に対応して記憶させておけばよい。
【0068】
本実施の形態のの調整回路310は、内部バス305からのアクセス要求に対して、上記重み付け値に基づいて、3つのFiFo0〜2のそれぞれからのデータ出力の優先順位を変更する。より具体的には、調停回路310は、重み付け値が大きいFiFoメモリ程、当該FiFoメモリの順位が最高の優先順位を適用するアクセス回数を多く設定し、このアクセス回数分、この優先順位を適用した後、優先順位を変更する。そして、調停回路310は、変更された優先順位に従って、外部バスにデータ転送するFiFoメモリの選択を行い、選択されたFiFoメモリに保存されたデータを外部バスに出力する。
【0069】
図5は、実施の形態2の外部バスコントローラの動作タイミングを示す説明図である。図5(a)は、各モジュールからのアクセス要求タイミングを示し、図4(a)と同様である。図5(b)は、本実施の形態の調停回路310で、重み付け値に基づいて優先順位を各アクセス毎に入れ替えたときのアクセスタイミングを示している。ここで、本例においても、各FiFo0〜2は、3段のものを使用しており、FiFoレベルの網掛け部分は、FiFoがFULLになっている状態を示している。
【0070】
図5(b)の例では、FiFo0の重み付け値を2、FiFo1の重み付け値を1.5、FiFo2の重み付け値を1として設定している。なお、重み付け値の設定についてはこれに限定されるものではない。
【0071】
ここで、重み付け値によって優先順位の変更は具体的には以下のようになる。調停回路310は、重み付け値が2のFiFoメモリの順位が最も高い優先順位を、2回のアクセスにおいて連続して適用してデータ転送を行い、その後のアクセスで優先順位を変更する。
【0072】
また、調停回路310は、重み付け値が1.5のFiFoメモリの順位が最も高い優先順位を、1回り目では、当該FiFoメモリの順位が最も高い優先順位を1回適用してデータ転送を行い、その後のアクセスで優先順位を変更する。そして、調停回路310は、重み付け値が1.5のFiFoメモリの順位が最も高い優先順位を、2回り目では、当該FiFoメモリの順位が最も高い優先順位を2回適用してデータ転送を行い、その後のアクセスで優先順位を変更する。
【0073】
また、調停回路310は、重み付け値が1のFiFoメモリの順位が最も高い優先順位を1回適用してデータ転送を行い、その後のアクセスで優先順位を変更する。
【0074】
図5(b)の例では、最初のアクセスでは、調停回路310は、重み付け値が2のFiFo0の順位が最も高い優先順位FiFo0>FiFo1>FiFo2に従ってFiFo0を選択し、選択したFiFo0に保存されているデータを外部バスに出力する(S51)。また、2回目のアクセスでも、調停回路310は、重み付け値が2のFiFo0の順位が最も高い優先順位FiFo0>FiFo1>FiFo2に従ってFiFo0を選択し、選択したFiFo0に保存されているデータを外部バスに出力する(S52)。
【0075】
このため、図5(b)に示すように、1回目のアクセスではFiFo0に保存されている「A0」が外部バスに出力され、2回目のアクセスではFiFo0に保存されている「A1」が外部バスに出力される。
【0076】
そして、3回目のアクセス(1回り目)では、調停回路310は、重み付け値が1.5のFiFo1の順位が最も高い優先順位FiFo1>FiFo2>FiFo0に従ってFiFo1を選択し、選択したFiFo1に保存されているデータを外部バスに出力する(S53)。このため、図5(b)に示すように、3回目のアクセスではFiFo1に保存されている「B1」が外部バスに出力される。
【0077】
なお、2回り目では、調停回路310は、重み付け値が1.5のFiFo1の順位が最も高い優先順位FiFo1>FiFo2>FiFo0を2回分のアクセスに適用してから優先順位を変更する(S55,S56)。
【0078】
さらに、4回目のアクセスでは、調停回路310は、重み付け値が1.5のFiFo1の順位が最も高い優先順位FiFo2>FiFo0>FiFo1に従ってFiFo2を選択し、選択したFiFo2に保存されているデータを外部バスに出力する(S54)。このため、図5(b)に示すように、4回目のアクセスではFiFo2に保存されている「B0」が外部バスに出力される。
【0079】
このように本実施の形態の調停回路310は、優先順位がFiFo0〜2の重み付けに従って変化する動作を行う。従って、アクセス頻度の高いFiFoに対して予め重み付け値として大きい値を設定しておくことにより、当該FiFoに対するアクセスを優先的に行うことができ、頻度の高いバスマスタの内部バスロック時間を短くすることができる。
【0080】
(実施の形態3)
実施の形態3でも、調整回路310による制御が実施の形態1と異なっている。実施の形態3の画像形成装置の電気系の構成、ASICの構成は、図1、2を用いて説明した実施の形態1と同様である。
【0081】
本実施の形態の調停回路310は、内部バス305からのアクセス要求に対して、3つのFiFo0〜2のそれぞれのデータ量に基づいて、重み付け値に基づく連続アクセス上限回数を求める。より具体的には、調停回路310は、3つのFiFo0〜2のそれぞれのデータ量が多い程、連続アクセス上限回数を大きい値で求める。一例として、調停回路310は、FiFoに保存されたデータのデータ量がFULLの状態になった場合に、連続アクセス上限回数を、重み付け値に基づく回数の2倍として求める。
【0082】
そして、調停回路310は、連続アクセス上限回数分のアクセスの後に、3つのFiFo0〜2のそれぞれからのデータ出力の優先順位を変更する。そして、調停回路310は、変更された優先順位に従って、外部バスにデータ転送するFiFoメモリの選択を行い、選択されたFiFoメモリに保存されたデータを外部バスに出力する。
【0083】
図6は、実施の形態3の外部バスコントローラの動作タイミングを示す説明図である。図6(a)は、各モジュールからのアクセス要求タイミングを示し、図4(a)と同様である。図6(b)は、本実施の形態の調停回路310で、重み付け値に基づいて優先順位を各アクセス毎に入れ替えたときのアクセスタイミングを示している。ここで、本例においても、各FiFo0〜2は、3段のものを使用しており、FiFoレベルの網掛け部分は、FiFoがFULLになっている状態を示している。
【0084】
図6(b)の例では、実施の形態2の例である図5(b)と同様に、FiFo0の重み付け値を2、FiFo1の重み付け値を1.5、FiFo2の重み付け値を1として設定している。ただし、本実施の形態の調停回路310では、さらに、FiFo0〜2のデータ量に応じて切り替えタイミングを変更している。
【0085】
本実施の形態では、調停回路310は、FiFoメモリのデータ量として、FiFoメモリがFULLの状態の場合に、重み付け値の2倍を連続アクセスの上限値として、優先順位の切り替えを行う。図5(b)の例で、例えば、FiFo0であれば、重み付け値2×2=4回を連続アクセスの上限値とする。なお、連続アクセスの上限値の算出方法は、これに限定されるものではない。
【0086】
ここで、データ量に応じた重み付け値の設定は、システムのデータアクセス頻度に応じて変更するのが好ましい。なお、FiFoメモリがFULLとなっている間は、優先順位を固定にする方法もあるが、連続したアドレスに対してデータのリード/ライトを行うバーストアクセスのような高頻度のアクセスが発生すると、常にFiFoメモリがFULLの状態となり、他の空間へのアクセスが滞る可能性がある。このため、本実施の形態のように、連続アクセスの上限を設けて、優先順位の切り替えを行う。
【0087】
ここで、データ量に基づく重み付け値による優先順位の変更は具体的には以下のようになる。調停回路310は、重み付け値が2のFiFo0の順位が最も高い優先順位を、通常、2回のアクセスにおいて連続して適用するが、図6(b)に示すように、CPUからA3のアクセス要求を受け付けた場合(S61)、FiFo0レベルが3となりFiFo0がFULLの状態となる(S62)。
【0088】
このため、調停回路310は、連続アクセスの上限値を重み付け値2の2倍である4回として、図6(b)に示すように、4回分のアクセスにおいて、優先順位FiFo0>FiFo1>FiFo2を適用し、当該優先順位に従ってFiFo0を選択し、選択したFiFo0に保存されているデータを外部バスに出力する(S67)。そして、これにより連続アクセスの上限値に達したため、次のアクセスで、調停回路310は優先順位を変更する。
【0089】
このため、図6(b)に示すように、1回目のアクセスではFiFo0に保存されている「A0」が外部バスに出力され、2回目のアクセスではFiFo0に保存されている「A1」が外部バスに出力され、3回目のアクセスではFiFo0に保存されている「A2」が外部バスに出力され、4回目のアクセスではFiFo0に保存されている「A3」が外部バスに出力される。
【0090】
次のアクセスでは、調停回路310は、優先順位を、重み付け値が1.5のFiFo1の順位が最も高い優先順位FiFo1>FiFo2>FiFo0に変更する。ここで、調停回路310は、重み付け値が1.5のFiFoメモリの順位が最も高い優先順位を、通常、1回のアクセスにおいてのみ適用するが、図6(b)に示すように、DMAC#0からB4のアクセス要求を受け付けて(S63)、これをFiFo1に保存した場合、FiFo1レベルが3となりFiFo1がFULLの状態となる(S64)。
【0091】
このため、調停回路310は、連続アクセスの上限値を重み付け値1.5に応じた回数1の2倍である2回として、図6(b)に示すように、2回分のアクセスにおいて、優先順位FiFo1>FiFo2>FiFo0を適用し、当該優先順位に従ってFiFo1を選択し、選択したFiFo1に保存されているデータを外部バスに出力する(S68)。そして、これにより連続アクセスの上限値に達したため、次のアクセスで、調停回路310は優先順位を変更する。
【0092】
このため、図6(b)に示すように、5回目のアクセスではFiFo1に保存されている「B0」が外部バスに出力され、6回目のアクセスではFiFo1に保存されている「B1」が外部バスに出力される。
【0093】
なお、2回り目では、調停回路310は、連続アクセスの上限値を重み付け値1.5に応じた回数2の2倍である4回とする。
【0094】
次のアクセスでは、調停回路310は、優先順位を、重み付け値が1のFiFo2の順位が最も高い優先順位FiFo2>FiFo0>FiFo1に変更する。ここで、調停回路310は、重み付け値が1のFiFo2の順位が最も高い優先順位を、通常、1回のアクセスにおいてのみ適用するが、図6(b)に示すように、DMAC#0からC3のアクセス要求を受け付けて(S65)、これをFiFo2に保存した場合、FiFo2レベルが3となりFiFo2がFULLの状態となる(S66)。
【0095】
このため、調停回路310は、連続アクセスの上限値を重み付け値1に応じた回数1の2倍である2回として、図6(b)に示すように、2回分のアクセスにおいて、優先順位FiFo2>FiFo0>FiFo1を適用し、当該優先順位に従ってFiFo2を選択し、選択したFiFo2に保存されているデータを外部バスに出力する(S69)。そして、これにより連続アクセスの上限値に達したため、次のアクセスで、調停回路310は優先順位を変更する。
【0096】
このため、図6(b)に示すように、7回目のアクセスではFiFo2に保存されている「C0」が外部バスに出力され、8回目のアクセスではFiFo2に保存されている「C1」が外部バスに出力される。
【0097】
このように本実施の形態では、調停回路310が、内部バス305からのアクセス要求に対して、3つのFiFo0〜2のそれぞれのデータ量に基づいて、重み付け値に基づく連続アクセス上限回数を求め、連続アクセス上限回数分のアクセスの後に、3つのFiFo0〜2のそれぞれからのデータ出力の優先順位を変更するので、アクセス頻度の高い処理を優先しつつ、各バスマスタのデータが均等に転送されるため、内部バスのロック時間を短縮することができ、パフォーマンスを向上させることが可能となる。
【0098】
なお、実施の形態1〜3の調停回路310は、ハードウェアで構成する他、CPUがプログラムを実行することにより実現されるものであってもよい。
【0099】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。本発明の実施態様は、以上に説明したような特定の実施の形態に限定されるものではない。よって、本発明およびその均等物の発明の概念を超えない範囲で様々な変更が可能である。
【符号の説明】
【0100】
300 読み取りユニット
301 CPUコア
302 DMAC
303 SRAM
304 外部バスコントローラ
305 内部バス
500 LANインターフェースボード
501 コントローラボード
502 操作部制御ボード
503 HDD
506 FAXコントローユニット(FCU)
510 エンジン制御ボード
511 SBU
512 LDB
521 CCD
【先行技術文献】
【特許文献】
【0101】
【特許文献1】特開平11‐85670号公報

【特許請求の範囲】
【請求項1】
外部デバイスとのデータの送受信を行うための外部バスを制御する外部バス制御部と、を備え、
前記外部バス制御部は、
前記外部デバイスに対応して設けられ、内部バスからのデータを一時的に保存する複数の記憶部と、
前記内部バスからのアクセス要求に対して、前記複数の記憶部のうち、前記外部バスにデータ転送する前記記憶部の選択を行い、選択された記憶部に保存されたデータを前記外部バスに出力する調停部と、
を備えたことを特徴とするアクセス制御装置。
【請求項2】
前記調停部は、前記内部バスからのアクセス要求に対して、前記複数の記憶部のそれぞれからのデータ出力の優先順位を変更して、変更された優先順位に従って、前記外部バスにデータ転送する前記記憶部の選択を行うことを特徴とする請求項1に記載のアクセス制御装置。
【請求項3】
前記複数の記憶部のそれぞれは予め重み付け値が設定され、
前記調停部は、前記内部バスからのアクセス要求に対して、前記重み付け値に基づいて、前記複数の記憶部のそれぞれからのデータ出力の優先順位を変更することを特徴とする請求項2に記載のアクセス制御装置。
【請求項4】
前記調停部は、前記重み付け値が大きい記憶部程、当該記憶部の順位が最高の優先順位を適用するアクセス回数を多く設定し、前記アクセス回数分、前記優先順位を適用した後、前記優先順位を変更することを特徴とする請求項3に記載のアクセス制御装置。
【請求項5】
前記調停部は、前記内部バスからのアクセス要求に対して、前記複数の記憶部のそれぞれのデータ量に基づいて、前記重み付け値に基づく連続アクセス上限回数を求め、前記連続アクセス上限回数分のアクセスの後に、前記複数の記憶部のそれぞれからのデータ出力の優先順位を変更することを特徴とする請求項2または3に記載のアクセス制御装置。
【請求項6】
前記調停部は、前記データ量が多い程、前記連続アクセス上限回数を大きい値で求めることを特徴とする請求項5に記載のアクセス制御装置。
【請求項7】
前記調停部は、前記記憶部に保存されたデータの前記データ量がFULLの状態になった場合に、前記連続アクセス上限回数を、前記重み付け値に基づく回数の2倍として求めることを特徴とする請求項6に記載のアクセス制御装置。
【請求項8】
前記記憶部は、先入れ先出し方式のFiFoメモリであることを特徴とする請求項1〜5のいずれか一つに記載のアクセス制御装置。
【請求項9】
画像形成装置であって、
画像形成に関する制御を行う制御部を備え、
前記制御部は、
前記制御部外のデバイスである外部デバイスとのデータの送受信を行うための外部バスを制御する外部バス制御部、を備え、
前記外部バス制御部は、
前記外部デバイスに対応して設けられ、内部バスからのデータを一時的に保存する複数の記憶部と、
前記内部バスからのアクセスがあるごとに、前記複数の記憶部のそれぞれのデータを前記外部バスへ出力する順位を変更する制御を行い、変更した順位で前記複数の記憶部のそれぞれのデータを前記外部バスへ出力する調停部と、
を備えたことを特徴とする画像形成装置。
【請求項10】
アクセス制御装置で実行されるアクセス制御方法であって、
前記アクセス制御装置は、外部デバイスとのデータの送受信を行うための外部バスを制御する外部バス制御部、を備え、
前記外部バス制御部は、前記外部デバイスに対応して設けられ、内部バスからのデータを一時的に保存する複数の記憶部を備え、
前記内部バスからのアクセスがあるごとに、前記複数の記憶部のそれぞれのデータを前記外部バスへ出力する順位を変更する制御を行うステップと、
変更した順位で前記複数の記憶部のそれぞれのデータを前記外部バスへ出力するステップと、
を含むことを特徴とするアクセス制御方法。

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


【公開番号】特開2013−65065(P2013−65065A)
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2011−201773(P2011−201773)
【出願日】平成23年9月15日(2011.9.15)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】