IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

特開2023-135315コントローラ、画像形成装置、及びアクセス調停方法
<>
  • 特開-コントローラ、画像形成装置、及びアクセス調停方法 図1
  • 特開-コントローラ、画像形成装置、及びアクセス調停方法 図2
  • 特開-コントローラ、画像形成装置、及びアクセス調停方法 図3
  • 特開-コントローラ、画像形成装置、及びアクセス調停方法 図4
  • 特開-コントローラ、画像形成装置、及びアクセス調停方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023135315
(43)【公開日】2023-09-28
(54)【発明の名称】コントローラ、画像形成装置、及びアクセス調停方法
(51)【国際特許分類】
   G06F 13/362 20060101AFI20230921BHJP
   G06F 13/38 20060101ALI20230921BHJP
   G06F 13/28 20060101ALI20230921BHJP
   G06F 12/00 20060101ALI20230921BHJP
   G06F 13/18 20060101ALI20230921BHJP
【FI】
G06F13/362 510B
G06F13/38 310D
G06F13/28 310G
G06F12/00 571B
G06F12/00 572A
G06F13/18 510
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022040462
(22)【出願日】2022-03-15
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】渡邉 謙一
【テーマコード(参考)】
5B061
5B077
5B160
【Fターム(参考)】
5B061BA01
5B061BC05
5B061GG06
5B077BB05
5B077DD12
5B160CD12
(57)【要約】
【課題】通信インタフェースに複数のデバイスが接続されている場合に、通信インタフェースに接続されているデバイスのリードレイテンシが長くなることを抑制する。
【解決手段】コントローラは、複数の通信インタフェースと、メモリへのアクセスを調停する第1のアービタと、前記複数の通信インタフェースと前記第1のアービタとの間に設けられ、前記通信インタフェースから前記メモリへの未処理のリード要求を受け付けたときに、前記第1のアービタに通過させる前記未処理のリード要求の数を制限する第2のアービタと、を有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数の通信インタフェースと、
メモリへのアクセスを調停する第1のアービタと、
前記複数の通信インタフェースと前記第1のアービタとの間に設けられ、前記通信インタフェースから前記メモリへの未処理のリード要求を受け付けたときに、前記第1のアービタに通過させる前記未処理のリード要求の数を制限する第2のアービタと、
を有する、コントローラ。
【請求項2】
前記通信インタフェースは、PCI Express(登録商標)の規格に従って、前記通信インタフェースに接続するデバイスと通信を行い、
前記第2のアービタは、前記デバイスからのOutstanding request数より小さい値に、前記第1のアービタに通過させる前記未処理のリード要求の数を制限する、
請求項1に記載のコントローラ。
【請求項3】
前記第2のアービタは、前記第1のアービタに送信する前記未処理のリード要求の数を1つに制限する、請求項2に記載のコントローラ。
【請求項4】
前記第2のアービタは、前記通信インタフェースから受け付ける前記未処理のリード要求の数を2つに制限する、請求項2に記載のコントローラ。
【請求項5】
前記未処理のリード要求は、前記コントローラが、前記通信インタフェースに接続するデバイスから前記メモリへのリード要求を受け付けた後、前記デバイスへ前記リード要求に対する応答を返す前に、前記デバイスから受け付ける前記メモリへのリード要求である、請求項1に記載のコントローラ。
【請求項6】
請求項1乃至5のいずれか一項に記載のコントローラと、
前記通信インタフェースに接続する画像処理デバイスと、
を有する、
画像形成装置。
【請求項7】
コントローラが、
複数の通信インタフェースを用いて通信する通信処理と、
メモリへのアクセスを調停する第1の調停処理と、
前記通信インタフェースから、前記メモリへの未処理のアクセス要求を受け付けた場合、前記第1の調停処理に通過させる前記未処理のアクセス要求の数を制限する第2の調停処理と、
を実行する、アクセス調停方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コントローラ、画像形成装置、及びアクセス調停方法に関する。
【背景技術】
【0002】
スキャナ又はプロッタとコントローラ間の画像データの転送を行うPCI Express(登録商標)のような高速シリアルインタフェースを使用し、画像データをラインごとに転送する画像処理装置が知られている。
【0003】
また、メモリに対するリード要求を蓄積し、データ転送が完了していないリード要求の数が第1の値以上になった時点から、メモリに対するライト要求の発行を、次のリード要求発行まで中断させるデータ転送装置が知られている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示された技術により、メモリに対するリードレイテンシを低減させることができる。
【0005】
しかし、この方法では、通信インタフェース(PCI Express等)に複数のデバイスが接続されている場合、通信インタフェースに接続されているデバイスのリードレイテンシが、他のデバイスによるメモリへのアクセスにより長くなる場合がある。
【0006】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、通信インタフェースに複数のデバイスが接続されている場合に、通信インタフェースに接続されているデバイスのリードレイテンシが長くなることを抑制する。
【課題を解決するための手段】
【0007】
上記の課題を解決するため、本発明の一実施形態に係るコントローラは、複数の通信インタフェースと、メモリへのアクセスを調停する第1のアービタと、前記複数の通信インタフェースと前記第1のアービタとの間に設けられ、前記通信インタフェースから前記メモリへの未処理のリード要求を受け付けたときに、前記第1のアービタに通過させる前記未処理のリード要求の数を制限する第2のアービタと、を有する。
【発明の効果】
【0008】
本発明の一実施形態によれば、通信インタフェースに複数のデバイスが接続されている場合に、通信インタフェースに接続されているデバイスのリードレイテンシが長くなることを抑制することができる。
【図面の簡単な説明】
【0009】
図1】一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。
図2】第1の実施形態に係るリード要求発生時の処理の例を示すシーケンス図である。
図3】第2の実施形態に係るリード要求発生時の処理の例を示すシーケンス図である。
図4】画像形成装置のハードウェア構成の例を示す図である。
図5】リード要求発生時の処理の例を示すシーケンス図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【0011】
<画像処理装置>
本実施形態について説明する前に、本実施形態の前提となる電子機器の一例である画像形成装置について説明する。
【0012】
図4は、画像形成装置のハードウェア構成の例を示す図である。画像形成装置1は、例えば、スキャン機能、コピー機能、印刷機能、ファクシミリ機能等を一つの筐体に搭載したMFP(Multifunction Peripheral)、又はコピー機等の画像形成機能を有する電子機器である。
【0013】
図4の例では、画像形成装置1は、全体制御部10、画像処理部20、ストレージデバイス30、スキャナ部40、及びプリンタ部50等を有している。
【0014】
全体制御部(コントローラ)10は、画像形成装置1の全体の制御を行うコントローラである。図4の例では、全体制御部10は、メモリ11、メモリコントローラ110、アービタ120、CPU(Central Processing Unit)、及び複数の通信I/F140a、140b等を有する制御基板である。なお、以下の説明において、複数の通信I/F140a、140bのうち、任意の通信I/Fを示す場合、「通信I/F140」を用いる。複数の通信I/F140の数は、2つ以上の他の数であってもよい。
【0015】
図4の例では、メモリコントローラ110、アービタ120、CPU(Central Processing Unit)130、及び複数の通信I/F140a、140bは、SoC(System on a Chip)100で構成されている。SoC100は、集積回路の1つのチップ上に、CPU130等のプロセッサ、周辺回路、及び応用回路等を集積し、システムとして機能するように設計されている半導体デバイスである。なお、SoCは、本実施形態に係るコントローラの別の一例である。つまり、本実施形態に係るコントローラは、全体制御部10のような制御基板であってもよいし、SoC100のような半導体デバイスであってもよい。
【0016】
メモリ11は、例えば、DRAM(Dynamic Random Access Memory)等の不揮発性の記憶装置である。なお、メモリ11は、DRAM以外のメモリであってもよい。メモリコントローラ110は、メモリ11のデータ書き込み、データ読み出し、及びDRAMのリフレッシュ等を行う回路である。
【0017】
アービタ120は、CPU130、及び複数の通信I/F140a、140bによるメモリ11、及びメモリコントローラ110へのアクセスを調停する回路であり、バスアービタとも呼ばれる。CPU130は、所定のプログラムを実行することにより、画像形成装置1が備える様々な機能を制御するプロセッサ(演算装置)である。
【0018】
通信I/F140は、例えば、PCI Express(登録商標)等の規格に従って、画像処理ASIC21、及びストレージデバイス30等と通信を行うための通信インタフェースである。PCI Expressは、高速データ通信を行うシリアル転送方式の拡張インタフェースの規格である。図4の例では、通信I/F140は、FIFO(First in First Out)141と、PCIe PHY142とを含む。FIFO141は、先入れ先出し方式のバッファである。PCIe PHY142は、PCI Expressの物理レイヤを実現する回路であり、通信I/F140に接続するデバイスとデータを送受信する。
【0019】
画像処理部20は、全体制御部10の通信I/F140aに接続され、スキャナ部40、及びプリンタ部50を制御して、例えば、コピー、印刷、又はスキャン等の画像処理を実行する。図4の例では、画像処理部20は、画像処理ASIC(Application Specific Integrated Circuit)21を有している。画像処理ASICは、例えば、コピー、印刷、又はスキャン等の画像処理を制御する画像処理デバイスである。
【0020】
スキャナ部40は、画像処理ASIC21からの制御に従って、原稿等を読み取る読取装置である。プリンタ部50は、画像処理ASIC21からの制御に従って、印刷データを印刷媒体に印刷する印刷装置である。
【0021】
ストレージデバイス30は、例えば、SSD(Solid State Drive)、又はHDD(Hard Disk Drive)等の大容量の記憶デバイスである。
【0022】
例えば、画像形成装置1がコピー処理を実行する場合、画像処理ASIC21は、スキャナ部40で原稿を読み取り、読み取ったデータを画像処理して、全体制御部10のメモリ11等に一時的に記憶する。また、プリンタ部50の準備ができると、画像処理ASIC21は、全体制御部10のメモリ11からデータを取得し、印刷用の画像処理を行った後、プリンタ部50を用いて、データを印刷する。このような画像処理は、各社で異なる仕様であり、その処理は煩雑でリアルタイム性が求められるため、ASICで実現されることが多い。
【0023】
また、画像処理ASIC21と、全体制御部10とは、容量が大きい画像データを低遅延で送受信できるように、PCI Express等の高速な通信I/F140で接続することが望ましい。
【0024】
(画像形成装置の処理の例)
画像処理部20の画像処理ASIC21は、PCI Express(以下、PCIeと呼ぶ)インタフェースを介して、SoC100にライト要求を送信することにより、全体制御部10内のメモリ11に、スキャナ部40で取得した画像データを書き込む。また、画像処理ASIC21は、PCIeインタフェースを介して、SoC100にリード要求を送信することにより、メモリ11に記憶した画像データを読み出す。
【0025】
全体制御部10の通信I/F140aは、画像処理ASIC21から受信したリード要求、及びライト要求を、FIFO141に一時的に記憶し、先に記憶したコマンドから順に、アービタ120に出力する。
【0026】
アービタ120は、メモリ11を共有するCPU130、及び複数の通信I/F140a、140b等のモジュールからのメモリ11へのアクセス要求を調停する。アービタ120は、通常、メモリ11へのアクセス要求を複数受け付けた場合、ラウンドロビン方式でアクセス権限を与えるが、これに限られず、優先度設定に基づいて、優先度が高いモジュールに優先的にアクセス権限を与えることもできる。
【0027】
なお、PCIeは、規格上、Outstanding requetという機能を有している。通常は、CPU130、及び複数の通信I/F140a、140b等のモジュールが、アービタ120にアクセス要求を出した場合、当該アクセス要求に対する応答が返ってくるまで次のアクセス要求をアービタ120に出すことができない。PCIeのOutstanding requet機能は、モジュールがアクセス要求をアービタ120に出した後、当該アクセス要求に対する応答が返ってくる前に、次のアクセス要求をアービタ120に出すことができる機能である。特に、リード要求は、SoC100がリードデータの準備に時間がかかるため、リード要求の応答に時間を要するため、リード要求をOutstanding requet機能で連続的に出すことにより、システム性能を向上させることができる。
【0028】
(リード要求発生時の処理の例)
図5は、図4に示した画像形成装置1において、画像処理ASIC21が、8個のリード要求を、SoC100の通信I/F140aに出す場合の処理の例を示している。ここでは、通信I/F140aは、画像処理ASIC21から、Outstanding requet機能を用いて、未処理のリード要求を4つまで受付可能であるものとする。なお、通信I/F140aが、画像処理ASIC21等からリード要求を受付し、当該リード要求に対する応答を返していない状態を、未処理のリード要求(Outstanding read request)と呼ぶ。
【0029】
図5のステップS1において、画像処理ASIC21は、4つのリード要求(Read cmd0~Read cmd3)を、SoC100の通信I/F140aに順次に送信する。なお、SoC100は、未処理のリード要求を4つまでしか受け付けないので、この時点では、画像処理ASIC21は、次の4つのリード要求(Read cmd4~Read cmd7)の送信を保留する。
【0030】
通信I/F140aは、受信した4つのリード要求(Read cmd0~Read cmd3)を、アービタ120に順次に通知し、アービタ120は、受け付けた4つのリード要求(Read cmd0~Read cmd3)を、メモリ11に順次に通知する。なお、ここでは、説明を容易にするため、メモリ11に、メモリコントローラ110が含まれているものとして、以下の説明を行う。
【0031】
ステップS2において、メモリ11(及びメモリコントローラ110)は、受け付けた4つのリード要求に対して、リードデータ(Read data0~Read data3)を読み出し、読み出したリードデータを、アービタ120に順次に出力する。アービタ120は、メモリ11から受け付けた4つのリードデータ(Read data0~Read data3)を通信I/F140aに出力し、通信I/F140aは、受け付けた4つのリードデータを画像処理ASIC21に順次に送信する。
【0032】
ステップS3において、画像処理ASIC21は、通信I/F140aからリードデータ(Read data0)を受信した後に、次のリード要求(Read cmd4)を通信I/F140に送信する。また、画像処理ASIC21は、通信I/F140aからリードデータ(Read data1)を受信した後に、次のリード要求(Read cmd5)を通信I/F140に送信する。同様にして、画像処理ASIC21は、リードデータ(Read data2)を受信した後に、リード要求(Read cmd6)を通信I/F140に送信し、リードデータ(Read data3)を受信した後に、リード要求(Read cmd7)を通信I/F140に送信する。通信I/F140aは、受信した4つのリード要求(Read cmd4~Read cmd7)を、アービタ120に順次に通知する。
【0033】
ここで、アービタ120が通信I/F140aにリードデータ(Read Data3)を送信してから、通信I/F140aからリード要求(Read cmd4)を受け付けるまでの期間T2において、ストレージデバイス30等がアクセス要求を出す場合がある。この期間T2に、ストレージデバイス30が、例えば、大量のライト要求を出してしまうと、ステップS3において、アービタ120が、メモリ11にリード要求(Read cmd4~Read cmd7)を出力するまでの期間T3が発生する。
【0034】
この場合、例えば、ステップS4において、メモリ11がリードデータ(Read data4~Read data7)を送信するタイミング、及び画像処理ASIC21がリードデータ(Read data4~Read data7)を送信するタイミングが遅延する。これにより、例えば、リード要求(Read cmd0)のリードレイテンシT1より、リード要求(Read cmd4)のリードレイテンシT4の方が長くなってしまうという問題がある。
【0035】
画像処理ASIC21は、例えば、プリンタ部50を用いて印刷する場合、プリンタ部50が備える感光体ドラムの回転に間に合うようにデータを送る必要がある。この時間をライン周期と呼ぶ。上述したリード要求(Read cmd4)のリードレイテンシT4が、ライン周期より長くなってしまうと、感光体ドラムの回転にプリントデータが間に合わなくなるため、異常画像となる。
【0036】
そこで、本実施形態に係る画像形成装置1は、通信I/F140に複数のデバイスが接続されている場合に、通信I/F140に接続されているデバイスのリードレイテンシが長くなることを抑制するために、図1に示すようなハードウェア構成を有している。
【0037】
<ハードウェア構成>
図1は、一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。本実施形態に係る画像形成装置1は、図4で説明した画像形成装置1のハードウェア構成に加えて、アービタ(第1のアービタ)120と、通信I/F140との間に設けられた、第2のアービタ150を有している。
【0038】
第2のアービタ150は、複数の通信I/F140a、140bからのアクセス要求を調停するとともに、通信I/F140aから未処理のリード要求を受け付けたときに、アービタ120に通過させる未処理のリード要求の数を制限する機能を有している。例えば、第2のアービタ150は、画像処理ASIC21からのOutstanding request数より小さい値に、第1のアービタに通過させる未処理のリード要求の数を制限する。ここで、Outstanding request数は、SoC100が、画像処理ASICから受付可能な未処理のリード要求の数である。
【0039】
具体的な一例として、第2のアービタ150は、通信I/F140aから受け付けた未処理のリード要求のうち、第1のアービタに出力する未処理のリード要求の数を1つに制限する。
【0040】
<処理の流れ>
続いて、本実施形態に係るアクセス調停方法の処理の流れについて説明する。
【0041】
[第1の実施形態]
図2は、第2の実施形態に係るリード要求発生時の処理の例を示すシーケンス図である。この処理は、図1に示した画像形成装置1において画像処理ASIC21が、8個のリード要求を、SoC100の通信I/F140aに出す場合の処理の一例を示している。ここでは、通信I/F140aは、画像処理ASIC21から、Outstanding requet機能を用いて、未処理のリード要求を4つまで受付可能であるものとする。また、第2のアービタ150は、通信I/F140aから受け付けた未処理のリード要求のうち、第1のアービタに出力する未処理のリード要求の数を1つに制限するものとする。
【0042】
ステップS1において、画像処理ASIC21は、図5で説明した処理と同様に、4つのリード要求(Read cmd0~Read cmd3)を、SoC100の通信I/F140aに順次に送信する。なお、SoC100は、未処理のリード要求を4つまでしか受け付けないので、この時点では、画像処理ASIC21は、次の4つのリード要求(Read cmd4~Read cmd7)の送信を保留する。
【0043】
通信I/F140aは、受信した4つのリード要求(Read cmd0~Read cmd3)を、第2のアービタ150に順次に出力する。
【0044】
第2のアービタ150は、図2のt1のタイミングで、通信I/F140aから受け付けたリード要求(Read cmd0)を、アービタ(第1のアービタ)120に出力する。なお、第2のアービタ150は、アービタ(第1のアービタ)120に出力する未処理のリード要求の数を1つに制限しているため、受け付けた他のリード要求(Read cmd1~Read cmd3)の出力を保留する。
【0045】
アービタ(第1のアービタ)120は、第2のアービタ150から受け付けたリード要求(Read cmd0)を、メモリ11に通知する。なお、ここでは、説明を容易にするため、メモリ11に、メモリコントローラ110が含まれているものとして、以下の説明を行う。
【0046】
図2のt2のタイミングで、メモリ11は、受け付けたリード要求(Read cmd0)に応じて、リードデータ(Read data0)を読み出し、読み出したリードデータを、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。
【0047】
これにより、図2のt3のタイミングで、第2のアービタ150は、次のリード要求(Read cmd1)をアービタ(第1のアービタ)120に出力できるようになる。t3のタイミングで、第2のアービタ150は、アービタ(第1のアービタ)120から受け付けたリードデータ(Read data0)を、通信I/F140aを介して、画像処理ASIC21に送信する。また、第2のアービタ150は、次のリード要求(Read cmd1)をアービタ(第1のアービタ)120を介して、メモリ11に出力する。
【0048】
図2のt4のタイミングで、メモリ11は、受け付けたリード要求(Read cmd1)に応じて、リードデータ(Read data1)を読み出し、読み出したリードデータを、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。また、t4のタイミングで、画像処理ASIC21は、次のリード要求(Read cmd4)を出力できるようになるので、リード要求(Read cmd4)を、通信I/F140aを介して、第2のアービタ150に送信する。
【0049】
図2のt5のタイミングで、第2のアービタ150は、次のリード要求(Read cmd2)をアービタ(第1のアービタ)120に出力できるようになる。t5のタイミングで、第2のアービタ150は、アービタ(第1のアービタ)120から受け付けたリードデータ(Read data1)を、通信I/F140aを介して、画像処理ASIC21に送信する。また、第2のアービタ150は、次のリード要求(Read cmd2)をアービタ(第1のアービタ)120を介して、メモリ11に出力する。
【0050】
図2のt6のタイミングで、メモリ11は、受け付けたリード要求(Read cmd2)に応じて、リードデータ(Read data2)を読み出し、読み出したリードデータを、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。また、t6のタイミングで、画像処理ASIC21は、次のリード要求(Read cmd5)を出力できるようになるので、リード要求(Read cmd5)を、通信I/F140aを介して、第2のアービタ150に送信する。
【0051】
図2のt7のタイミングで、第2のアービタ150は、次のリード要求(Read cmd3)をアービタ(第1のアービタ)120に出力できるようになる。t7のタイミングで、第2のアービタ150は、アービタ(第1のアービタ)120から受け付けたリードデータ(Read data2)を、通信I/F140aを介して、画像処理ASIC21に送信する。また、第2のアービタ150は、次のリード要求(Read cmd3)をアービタ(第1のアービタ)120を介して、メモリ11に出力する。
【0052】
図2のt8のタイミングで、メモリ11は、受け付けたリード要求(Read cmd3)に応じて、リードデータ(Read data3)を読み出し、読み出したリードデータを、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。また、t8のタイミングで、画像処理ASIC21は、次のリード要求(Read cmd6)を出力できるようになるので、リード要求(Read cmd6)を、通信I/F140aを介して、第2のアービタ150に送信する。
【0053】
図2のt9のタイミングで、第2のアービタ150は、次のリード要求(Read cmd4)をアービタ(第1のアービタ)120に出力できるようになる。t9のタイミングで、第2のアービタ150は、アービタ(第1のアービタ)120から受け付けたリードデータ(Read data3)を、通信I/F140aを介して、画像処理ASIC21に送信する。また、第2のアービタ150は、次のリード要求(Read cmd4)をアービタ(第1のアービタ)120を介して、メモリ11に出力する。
【0054】
図2のt10のタイミングで、メモリ11は、受け付けたリード要求(Read cmd4)に応じて、リードデータ(Read data4)を読み出し、読み出したリードデータを、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。また、t10のタイミングで、画像処理ASIC21は、次のリード要求(Read cmd7)を出力できるようになるので、リード要求(Read cmd7)を、通信I/F140aを介して、第2のアービタ150に送信する。
【0055】
図2のt11のタイミングで、第2のアービタ150は、次のリード要求(Read cmd5)をアービタ(第1のアービタ)120に出力できるようになる。t11のタイミングで、第2のアービタ150は、アービタ(第1のアービタ)120から受け付けたリードデータ(Read data4)を、通信I/F140aを介して、画像処理ASIC21に送信する。また、第2のアービタ150は、次のリード要求(Read cmd5)をアービタ(第1のアービタ)120を介して、メモリ11に出力する。
【0056】
図2のt12のタイミングで、メモリ11は、受け付けたリード要求(Read cmd5)に応じて、リードデータ(Read data5)を読み出し、読み出したリードデータを、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。
【0057】
図2のt13のタイミングで、第2のアービタ150は、次のリード要求(Read cmd6)をアービタ(第1のアービタ)120に出力できるようになる。t13のタイミングで、第2のアービタ150は、アービタ(第1のアービタ)120から受け付けたリードデータ(Read data5)を、通信I/F140aを介して、画像処理ASIC21に送信する。また、第2のアービタ150は、次のリード要求(Read cmd6)をアービタ(第1のアービタ)120を介して、メモリ11に出力する。なお、t14以降の処理は、同様の処理の繰り返しなので、ここでは説明を省略する。
【0058】
図2の処理により、アービタ(第1のアービタ)120に対して、通信I/F140aからのリード要求が連続的に行われるようになる。また、アービタ(第1のアービタ)120は、通信I/F140aからのリード要求が連続的に行われている間、他の通信I/F140bからのアクセス要求の受付を保留する。これにより、本実施形態によれば、リード要求(Read cmd1~Read cmd7)のリードレイテンシが長くなることを抑制することができる。例えば、図2の例では、リード要求(Read cmd1)に対するリードレイテンシTaと、リード要求(Read cmd5)に対するリードレイテンシTbは、同様の値となっていることが分かる。
【0059】
なお、図2に示したt1~t14のタイミングは、説明用のイメージであり、実際のハードウェアの動作タイミングを示すものではない。設計者等は、実際のハードウェアの動作タイミングに合わせて、第2のアービタ150が、アービタ(第1のアービタ)120に通過させる未処理のリード要求の数を設定することが望ましい。
【0060】
[第2の実施形態]
第2のアービタ150は、通信I/F140aからメモリ11への未処理のリード要求を受け付けたときに、通信I/F140aから受け付ける未処理のリード要求の数を制限してもよい。
【0061】
図3は、第2の実施形態に係るリード要求発生時の処理の例を示すシーケンス図である。この処理は、図1に示した画像形成装置1において画像処理ASIC21が、8個のリード要求を、SoC100の通信I/F140aに出す場合の処理の別の一例を示している。ここでは、通信I/F140aは、画像処理ASIC21から、Outstanding requet機能を用いて、未処理のリード要求を4つまで受付可能であるものとする。また、第2のアービタ150は、通信I/F140aから受け付ける未処理のリード要求の数を、2つまでに制限するものとする。
【0062】
ステップS1において、画像処理ASIC21は、図1、5で説明した処理と同様に、4つのリード要求(Read cmd0~Read cmd3)を、SoC100の通信I/F140aに順次に送信する。なお、SoC100は、未処理のリード要求を4つまでしか受け付けないので、この時点では、画像処理ASIC21は、次の4つのリード要求(Read cmd4~Read cmd7)の送信を保留する。
【0063】
通信I/F140aは、図3のt1のタイミングで、画像処理ASIC21から受信したリード要求(Read cmd0)を第2のアービタ150に出力する。また、通信I/F140aは、t2のタイミングで、画像処理ASIC21から受信したリード要求(Read cmd1)を第2のアービタ150に出力する。なお、第2のアービタ150は、未処理のリード要求の受付数を2つに制限しているので、残りの2つリード要求(Read cmd2、Read cmd3)は、通信I/F140aのFIFO141に格納される。
【0064】
第2のアービタ150は、通信I/F140aから受け付けたリード要求(Read cmd0、Read cmd1)を、アービタ(第1のアービタ)120を介して、メモリコントローラ110に出力する。なお、第2の実施形態では、メモリ11と、メモリコントローラ110とを別々に記載している。
【0065】
図3のt3の前後のタイミングで、メモリコントローラ110は、メモリ11から要求されたデータを読み出し、読み出したリードデータ(Read Data0)を、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。第2のアービタ150は、受け付けたリードデータ(Read Data0)を通信I/F140aに出力する。これにより、t5のタイミングで、通信I/F140aは、リード要求(Read cmd2)を第2のアービタ150に出力できるようになる。
【0066】
図3のt4の前後のタイミングで、メモリコントローラ110は、メモリ11から要求されたデータを読み出し、読み出したリードデータ(Read Data1)を、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。第2のアービタ150は、受け付けたリードデータ(Read Data1)を通信I/F140aに出力する。これにより、t6のタイミングで、通信I/F140aは、リード要求(Read cmd3)を第2のアービタ150に出力できるようになる。
【0067】
図3のt5のタイミングで、通信I/F140aは、画像処理ASIC21から受信したリード要求(Read cmd2)を第2のアービタ150に出力する。これにより、第2のアービタ150は、通信I/F140aから受け付けたリード要求(Read cmd2)を、アービタ(第1のアービタ)120を介して、メモリコントローラ110に出力する。
【0068】
また、t5のタイミングで、通信I/F140aは、第2のアービタ150から受け付けたリードデータ(Read data0)を画像処理ASIC21に送信する。これにより、画像処理ASIC21は、次のリード要求(Read cmd4)を送信できるようになるので、リード要求(Read cmd4)を、通信I/F140aに送信する。
【0069】
図3のt6のタイミングで、通信I/F140aは、画像処理ASIC21から受信したリード要求(Read cmd3)を第2のアービタ150に出力する。これにより、第2のアービタ150は、通信I/F140aから受け付けたリード要求(Read cmd3)を、アービタ(第1のアービタ)120を介して、メモリコントローラ110に出力する。
【0070】
また、t6のタイミングで、通信I/F140aは、第2のアービタ150から受け付けたリードデータ(Read data1)を画像処理ASIC21に送信する。これにより、画像処理ASIC21は、次のリード要求(Read cmd5)を送信できるようになるので、リード要求(Read cmd5)を、通信I/F140aに送信する。
【0071】
図3のt7の前後のタイミングで、メモリコントローラ110は、メモリ11から要求されたデータを読み出し、読み出したリードデータ(Read Data2)を、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。第2のアービタ150は、受け付けたリードデータ(Read Data2)を通信I/F140aに出力する。これにより、t9のタイミングで、通信I/F140aは、リード要求(Read cmd4)を第2のアービタ150に出力できるようになる。
【0072】
図3のt8の前後のタイミングで、メモリコントローラ110は、メモリ11から要求されたデータを読み出し、読み出したリードデータ(Read Data3)を、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。第2のアービタ150は、受け付けたリードデータ(Read Data3)を通信I/F140aに出力する。これにより、t10のタイミングで、通信I/F140aは、リード要求(Read cmd5)を第2のアービタ150に出力できるようになる。
【0073】
図3のt9のタイミングで、通信I/F140aは、画像処理ASIC21から受信したリード要求(Read cmd4)を第2のアービタ150に出力する。これにより、第2のアービタ150は、通信I/F140aから受け付けたリード要求(Read cmd4)を、アービタ(第1のアービタ)120を介して、メモリコントローラ110に出力する。
【0074】
また、t9のタイミングで、通信I/F140aは、第2のアービタ150から受け付けたリードデータ(Read data2)を画像処理ASIC21に送信する。これにより、画像処理ASIC21は、次のリード要求(Read cmd6)を送信できるようになるので、リード要求(Read cmd6)を、通信I/F140aに送信する。
【0075】
図3のt10のタイミングで、通信I/F140aは、画像処理ASIC21から受信したリード要求(Read cmd5)を第2のアービタ150に出力する。これにより、第2のアービタ150は、通信I/F140aから受け付けたリード要求(Read cmd5)を、アービタ(第1のアービタ)120を介して、メモリコントローラ110に出力する。
【0076】
また、t10のタイミングで、通信I/F140aは、第2のアービタ150から受け付けたリードデータ(Read data3)を画像処理ASIC21に送信する。これにより、画像処理ASIC21は、次のリード要求(Read cmd7)を送信できるようになるので、リード要求(Read cmd7)を、通信I/F140aに送信する。
【0077】
図3のt11のタイミングで、メモリコントローラ110は、メモリ11から要求されたデータを読み出し、読み出したリードデータ(Read Data4)を、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。第2のアービタ150は、受け付けたリードデータ(Read Data4)を通信I/F140aに出力する。これにより、t13のタイミングで、通信I/F140aは、リード要求(Read cmd6)を第2のアービタ150に出力できるようになる。
【0078】
図3のt12のタイミングで、メモリコントローラ110は、メモリ11から要求されたデータを読み出し、読み出したリードデータ(Read Data5)を、アービタ(第1のアービタ)120を介して、第2のアービタ150に出力する。第2のアービタ150は、受け付けたリードデータ(Read Data5)を通信I/F140aに出力する。これにより、t14のタイミングで、通信I/F140aは、リード要求(Read cmd7)を第2のアービタ150に出力できるようになる。
【0079】
図3のt13のタイミングで、通信I/F140aは、画像処理ASIC21から受信したリード要求(Read cmd6)を第2のアービタ150に出力する。これにより、第2のアービタ150は、通信I/F140aから受け付けたリード要求(Read cmd6)を、アービタ(第1のアービタ)120を介して、メモリコントローラ110に出力する。
【0080】
また、t13のタイミングで、通信I/F140aは、第2のアービタ150から受け付けたリードデータ(Read data4)を画像処理ASIC21に送信する。
【0081】
図3のt14のタイミングで、通信I/F140aは、画像処理ASIC21から受信したリード要求(Read cmd7)を第2のアービタ150に出力する。また、t14のタイミングで、通信I/F140aは、第2のアービタ150から受け付けたリードデータ(Read data5)を画像処理ASIC21に送信する。なお、t14以降の処理は、同様の処理の繰り返しなので、ここでは説明を省略する。
【0082】
図3の処理により、アービタ(第1のアービタ)120に対して、通信I/F140aからのリード要求、及びリード処理が連続的に行われるようになる。また、アービタ(第1のアービタ)120は、通信I/F140aからのリード要求、及びリード処理が連続的に行われている間、他の通信I/F140bからのアクセス要求の受付を保留する。これにより、第2の実施形態においても、リード要求(Read cmd1~Read cmd7)のリードレイテンシが長くなることを抑制することができる。
【0083】
なお、図3に示したt1~t14のタイミングは、説明用のイメージであり、実際のハードウェアの動作タイミングを示すものではない。設計者等は、実際のハードウェアの動作タイミングに合わせて、第2のアービタ150が、アービタ(第1のアービタ)120に通過させる未処理のリード要求の数を設定することが望ましい。
【0084】
以上、本発明の各実施形態によれば、通信インタフェースに複数のデバイスが接続されている場合に、通信インタフェースに接続されているデバイスのリードレイテンシが長くなることを抑制することができる。
【0085】
なお、上記の各実施形態では、コントローラ(全体制御部10、又はSoC100)を備える電子機器が画像形成装置1であるものとして説明を行ったが、コントローラは、画像形成装置1以外の電子機器が有していてもよい。
【符号の説明】
【0086】
1 画像形成装置
10 全体制御部(コントローラの一例)
11 メモリ
21 画像処理ASIC(デバイス、画像処理デバイス)
100 Soc(コントローラの別の一例)
120 アービタ(第1のアービタ)
140、140a、140b 通信インタフェース
150 第2のアービタ
【先行技術文献】
【特許文献】
【0087】
【特許文献1】特開2019-003384号公報
図1
図2
図3
図4
図5