JP2016224560A - マルチチップシステム、及びその制御方法 - Google Patents
マルチチップシステム、及びその制御方法 Download PDFInfo
- Publication number
- JP2016224560A JP2016224560A JP2015107856A JP2015107856A JP2016224560A JP 2016224560 A JP2016224560 A JP 2016224560A JP 2015107856 A JP2015107856 A JP 2015107856A JP 2015107856 A JP2015107856 A JP 2015107856A JP 2016224560 A JP2016224560 A JP 2016224560A
- Authority
- JP
- Japan
- Prior art keywords
- control chip
- data transfer
- dma controller
- chip
- transfer source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Facsimiles In General (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
- Bus Control (AREA)
Abstract
【課題】転送先又は転送元が備えているDMAコントローラが利用できないマルチチップ構成のシステムで、転送先又は転送元ではない制御チップのDMAコントローラについても、転送条件に基づいて適切に制御する仕組みを提供する。【解決手段】複数の制御チップを有するマルチチップシステムにおいて、データ転送の転送条件に基づき、データの転送元の制御チップとデータの転送先の制御チップとを特定するとともに、特定した当該制御チップ間でのテータ転送を制御する、複数の制御チップのいずれかに設けられた利用可能なDMAコントローラを決定する。【選択図】 図7
Description
本発明は、マルチチップシステム、及びその制御方法に関するものである。
複合機やプリンタ等の画像形成装置では、近年、装置の高機能化や対応する色数の増加に伴い、各種処理を実行する複数の集積回路チップが必要となってきている。例えば、ホストコンピュータから送られてくる画像データの画像処理を実行する画像処理ブロックや、印字データを生成する生成ブロックなどの機能単位に処理を分割し、それぞれの処理を異なる集積回路チップで並列処理する方法が考えられている。
このような画像形成装置は、異なる集積回路チップ間でデータのコピーを高速に行うために、DMA(ダイレクトメモリアクセス)コントローラが用いられている。特許文献1には、第1の揮発性メモリ及び第1のDMAコントローラを有する第1制御回路と、第2の揮発性メモリ及び第2のDMAコントローラを有する第2制御回路の間でのデータ転送について記載されている。具体的には、データ転送の転送先、転送元に応じて、データ転送がより速くなるDMAコントローラを選択し、データ転送の効率を向上させている。
しかしながら、上記従来技術には以下に記載する課題がある。上記従来技術においては、転送先又は転送元のチップのDMAコントローラを、転送効率が最適になるように選択する処理であり、転送先と転送元のそれぞれのDMAコントローラが利用できることが前提となる。そのため、転送先又は転送元にDMAコントローラを備えていない、或いは備えているDMAコントローラが使えない状況にあるマルチチップシステムでは、選択されたDMAコントローラが必ずしも利用できるわけではない。その結果、転送効率が最適なデータ転送を安定して実現できないという課題が生じるおそれがあった。
本発明は、上述の問題に鑑みて成されたものである。すなわち、マルチチップ構成のシステムにおける適切なデータ転送を実現する仕組みを提供することを目的とする。
本発明は、それぞれがメモリを備える複数の制御チップを有するマルチチップシステムであって、データ転送の要求を取得する取得手段と、前記取得手段によって取得したデータ転送の要求に係る転送条件を解析する解析手段と、前記解析手段によって解析された前記転送条件に基づき、データの転送元の制御チップとデータの転送先の制御チップとを特定するとともに、特定した当該制御チップ間でのテータ転送を制御する、前記複数の制御チップのいずれかに設けられた利用可能なDMAコントローラを決定する決定手段とを備えることを特徴とする。
本発明によれば、転送先又は転送元が備えているDMAコントローラが利用できないマルチチップ構成のシステムで、転送先又は転送元ではない制御チップのDMAコントローラについても、転送条件に基づいて適切に制御することができる。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
<第1の実施形態>
<マルチチップシステムの構成>
以下では、本発明の第1の実施形態について説明する。本実施形態では、画像形成装置内の各制御チップ間でデータ転送を行う形態について説明する。まず、図1を参照して、本実施形態におけるマルチチップシステムを有する画像形成装置の構成例について説明する。
<マルチチップシステムの構成>
以下では、本発明の第1の実施形態について説明する。本実施形態では、画像形成装置内の各制御チップ間でデータ転送を行う形態について説明する。まず、図1を参照して、本実施形態におけるマルチチップシステムを有する画像形成装置の構成例について説明する。
101は画像形成装置である。102及び103はユーザが操作するホストコンピュータである。105は画像形成装置101とホストコンピュータ102、103をつなぐホストインターフェースである。画像形成装置101は、ホストコンピュータ102、103から印刷データを受信し、印刷物を生成する装置である。
画像形成装置101の構成を説明する。110は第1制御チップである。120は第2制御チップである。130は第3制御チップである。150は第1制御チップ110と第3制御チップ130をつなぐチップ間通信インターフェースである。151は第2制御チップ120と第3制御チップ130をつなぐチップ間通信インターフェースである。
160は第1制御チップ用のRAM(揮発性メモリ)である。161は第1制御チップの制御プログラムが格納されているROM(不揮発性メモリ)である。170は第2制御チップ用のRAM(揮発性メモリ)である。171は第2制御チップの制御プログラムが格納されているROM(不揮発性メモリ)である。180は第3制御チップ用のRAM(揮発性メモリ)である。181は第3制御チップの制御プログラムが格納されているROM(不揮発性メモリ)である。
200は印字部であり、ホストコンピュータ102から送られる印刷データを元に印刷を実行する。具体的には、第1制御チップ110と第2制御チップ120と第3制御チップ130で処理された印刷データを紙等の印刷メディア(記録媒体)に画像データの配列に従ってインクやトナー等を付着させることにより印刷物を生成する。
<第1制御チップの構成>
次に、図2を参照して、本実施形態における第1制御チップ110の構成について説明する。111はプログラムを処理するCPUである。112及び113はチップ間通信インターフェースとなるPCIeコントローラである。115はデータのコピーを行うDMA(ダイレクトメモリアクセス)コントローラである。116はRAM1(160)を制御するメモリーコントローラである。117はROM1(161)を制御するROMコントローラである。118は印字部200を制御する印字コントローラである。119はホストPCコントローラである。114は内部バスである。CPU111、PCIeコントローラ112、113、DMAコントローラ115、及びホストPCコントローラ119はそれぞれバスマスタである。一方、PCIeコントローラ112、113、メモリコントローラ116、ROMコントローラ117、印字コントローラ118、及びホストPCコントローラ119はそれぞれバススレーブである。これらのバスマスタとバススレーブとの間でデータ転送が可能である。また、CPU111とDMAコントローラ115は、PCIeコントローラ112、113を通して、RAM2(170)とRAM3(180)にアクセスすることができる。なお、チップ間通信インターフェースとしては、PCIeコントローラ以外であってもよい。
次に、図2を参照して、本実施形態における第1制御チップ110の構成について説明する。111はプログラムを処理するCPUである。112及び113はチップ間通信インターフェースとなるPCIeコントローラである。115はデータのコピーを行うDMA(ダイレクトメモリアクセス)コントローラである。116はRAM1(160)を制御するメモリーコントローラである。117はROM1(161)を制御するROMコントローラである。118は印字部200を制御する印字コントローラである。119はホストPCコントローラである。114は内部バスである。CPU111、PCIeコントローラ112、113、DMAコントローラ115、及びホストPCコントローラ119はそれぞれバスマスタである。一方、PCIeコントローラ112、113、メモリコントローラ116、ROMコントローラ117、印字コントローラ118、及びホストPCコントローラ119はそれぞれバススレーブである。これらのバスマスタとバススレーブとの間でデータ転送が可能である。また、CPU111とDMAコントローラ115は、PCIeコントローラ112、113を通して、RAM2(170)とRAM3(180)にアクセスすることができる。なお、チップ間通信インターフェースとしては、PCIeコントローラ以外であってもよい。
<第2制御チップの構成>
次に、図3を参照して、本実施形態における第2制御チップ120の構成について説明する。121はプログラムを処理するCPUである。122はチップ間通信インターフェースとなるPCIeコントローラである。126はRAM2(170)を制御するメモリーコントローラである。127はROM2(171)を制御するROMコントローラである。124は内部バスである。CPU121、及びPCIeコントローラ122はそれぞれバスマスタである。PCIeコントローラ122、メモリコントローラ126、及びROMコントローラ127はそれぞれバススレーブである。これらのバスマスタとバススレーブとの間でデータ転送が可能である。また、CPU121は、PCIeコントローラ122を通して、RAM1(160)とRAM3(180)にアクセスすることができる。なお、チップ間通信インターフェースとしては、PCIeコントローラ以外であってもよい。
次に、図3を参照して、本実施形態における第2制御チップ120の構成について説明する。121はプログラムを処理するCPUである。122はチップ間通信インターフェースとなるPCIeコントローラである。126はRAM2(170)を制御するメモリーコントローラである。127はROM2(171)を制御するROMコントローラである。124は内部バスである。CPU121、及びPCIeコントローラ122はそれぞれバスマスタである。PCIeコントローラ122、メモリコントローラ126、及びROMコントローラ127はそれぞれバススレーブである。これらのバスマスタとバススレーブとの間でデータ転送が可能である。また、CPU121は、PCIeコントローラ122を通して、RAM1(160)とRAM3(180)にアクセスすることができる。なお、チップ間通信インターフェースとしては、PCIeコントローラ以外であってもよい。
<第3制御チップの構成>
次に、図4を参照して、本実施形態における第3制御チップ130の構成について説明する。131はプログラムを処理するCPUである。132及び133はチップ間通信インターフェースとなるPCIeコントローラである。135はデータのコピーを行うDMAコントローラである。136はRAM3(180)を制御するメモリーコントローラである。137はROM3(181)を制御するROMコントローラである。138は印字部200を制御する印字コントローラである。139はホストPCコントローラである。134は内部バスである。CPU131、PCIeコントローラ132、133、DMAコントローラ135、及びホストPCコントローラ139はそれぞれバスマスタである。PCIeコントローラ132、133、メモリコントローラ136、ROMコントローラ137、印字コントローラ138、及びホストPCコントローラ139はそれぞれバススレーブである。これらのバスマスタとバススレーブ間でデータ転送が可能である。また、CPU121とDMAコントローラ135は、PCIeコントローラ132、133を通して、RAM1(160)とRAM2(170)にアクセスすることができる。なお、第3制御チップ130の構成は、第1制御チップ110の構成と同一であってもよい。また、チップ間通信インターフェースとしては、PCIeコントローラ以外であってもよい。
次に、図4を参照して、本実施形態における第3制御チップ130の構成について説明する。131はプログラムを処理するCPUである。132及び133はチップ間通信インターフェースとなるPCIeコントローラである。135はデータのコピーを行うDMAコントローラである。136はRAM3(180)を制御するメモリーコントローラである。137はROM3(181)を制御するROMコントローラである。138は印字部200を制御する印字コントローラである。139はホストPCコントローラである。134は内部バスである。CPU131、PCIeコントローラ132、133、DMAコントローラ135、及びホストPCコントローラ139はそれぞれバスマスタである。PCIeコントローラ132、133、メモリコントローラ136、ROMコントローラ137、印字コントローラ138、及びホストPCコントローラ139はそれぞれバススレーブである。これらのバスマスタとバススレーブ間でデータ転送が可能である。また、CPU121とDMAコントローラ135は、PCIeコントローラ132、133を通して、RAM1(160)とRAM2(170)にアクセスすることができる。なお、第3制御チップ130の構成は、第1制御チップ110の構成と同一であってもよい。また、チップ間通信インターフェースとしては、PCIeコントローラ以外であってもよい。
<データ転送>
次に、図5を参照して、第1制御チップ110のDMAコントローラ115を用いた、第2制御チップ120から第1制御チップ110へのデータ転送について説明する。図5は、メモリ領域2−1(521)からメモリ領域1−1(511)へデータをコピーする際のデータ転送の仕組みを示す。ただし、メモリ領域1−1(511)、メモリ領域1−2(512)、及びメモリ領域1−3(513)は図1のRAM1(160)の領域である。メモリ領域2−1(521)、メモリ領域2−2(522)、及びメモリ領域2−3(523)は図1のRAM2(170)の領域である。メモリ領域3−1(531)、メモリ領域3−2(532)、及びメモリ領域3−3(533)は図1のRAM3(180)の領域である。また、メモリ領域1−1(511)、メモリ領域2−1(521)、及びメモリ領域3−1(531)はデータ領域として確保されている。メモリ領域1−2(512)、メモリ領域2−2(522)、及びメモリ領域3−2(532)はプログラム領域として確保されている。メモリ領域1−3(513)、メモリ領域2−3(523)、及びメモリ領域3−3(533)はCPU間通信領域として確保されている。
次に、図5を参照して、第1制御チップ110のDMAコントローラ115を用いた、第2制御チップ120から第1制御チップ110へのデータ転送について説明する。図5は、メモリ領域2−1(521)からメモリ領域1−1(511)へデータをコピーする際のデータ転送の仕組みを示す。ただし、メモリ領域1−1(511)、メモリ領域1−2(512)、及びメモリ領域1−3(513)は図1のRAM1(160)の領域である。メモリ領域2−1(521)、メモリ領域2−2(522)、及びメモリ領域2−3(523)は図1のRAM2(170)の領域である。メモリ領域3−1(531)、メモリ領域3−2(532)、及びメモリ領域3−3(533)は図1のRAM3(180)の領域である。また、メモリ領域1−1(511)、メモリ領域2−1(521)、及びメモリ領域3−1(531)はデータ領域として確保されている。メモリ領域1−2(512)、メモリ領域2−2(522)、及びメモリ領域3−2(532)はプログラム領域として確保されている。メモリ領域1−3(513)、メモリ領域2−3(523)、及びメモリ領域3−3(533)はCPU間通信領域として確保されている。
CPU1(111)はDMAコントローラ1(115)に対して、指定領域のデータコピー要求(DMAリクエスト)を行う。DMAコントローラ1(115)はCPU1(111)のDMAリクエストに従いRead Requestを発行する。当該リクエストに従って、各制御チップのPCIeコントローラ113、132、133、122を経由して、制御チップ120のメモリコントローラからメモリ領域2−1(521)に対してメモリリードが実行される。その後、リードデータが、Read Ackと共に、Read Requestの発行元に送られる。この時、リードデータとRead Ackが各制御チップのPCIeコントローラ122、133、132、113を経由してRead Requestの発行元に送られる。リードデータを受け取ると、DMAコントローラ1(115)はメモリ領域1−1(511)にデータをライトする。この時、第1制御チップ110のメモリコントローラからメモリ領域1−1(511)に対してメモリライトが実行される。通常のメモリコピーは、例えば数MByteといったデータ単位で実行されるため、1回のRead Requestで転送しきれない。そのため、DMAコントローラ1(115)は、上記のRead Requestの発行と、メモリ領域1(511)へのデータライトを複数回実行することで、CPU1(111)から指定された領域のデータコピーを行う。即ち、このような転送の場合、Read Requestの回数分のデータ転送501〜507を必要とする。
次に図6を参照して、第3制御チップ130のDMAコントローラ135を用いた、第2制御チップ120から第1制御チップ110へのデータ転送について説明する。図6は、図5とは異なり、メモリ領域2−1(521)からメモリ領域1−1(511)へデータをコピーする際のデータ転送の仕組みを示す。ただし、図5と同様で、メモリ領域1−1(511)、メモリ領域1−2(512)、及びメモリ領域1−3(513)は図1のRAM1(160)の領域である。メモリ領域2−1(521)、メモリ領域2−2(522)、及びメモリ領域2−3(523)は図1のRAM2(170)の領域である。メモリ領域3−1(531)、メモリ領域3−2(532)、及びメモリ領域3−3(533)は図1のRAM3(180)の領域である。また、メモリ領域1−1(511)、メモリ領域2−1(521)、及びメモリ領域3−1(531)はデータ領域として確保されている。メモリ領域1−2(512)、メモリ領域2−2(522)、及びメモリ領域3−2(532)はプログラム領域として確保されている。メモリ領域1−3(513)、メモリ領域2−3(523)、及びメモリ領域3−3(533)はCPU間通信領域として確保されている。
CPU1(111)はPCIeコントローラ113、132を経由して、DMAコントローラ3(135)に対して、指定領域のデータコピー要求(DMAリクエスト)を行う。DMAコントローラ3(135)がCPU1(111)のDMAリクエストに従いRead Requestを発行する。当該リクエストに従って、各制御チップのPCIeコントローラ133、122を経由して、制御チップ120のメモリコントローラからメモリ領域2−1(521)に対してメモリリードが実行される。リードデータは、Read Ackと共に、Read Requestの発行元に送られる。この時、リードデータとRead Ackが各制御チップのPCIeコントローラ122、133を経由してRead Requestの発行元に送られる。リードデータを受け取ると、DMAコントローラ3(135)はPCIeコントローラ132、113を経由して、メモリ領域1−1(511)にデータをライトする。この時、第1制御チップ110のメモリコントローラ607からメモリ領域1(511)に対してメモリライトが実行される。この場合も、1回のRead Requestで転送しきれない。そのため、DMAコントローラ3(135)は、上記のRead Requestの発行と、メモリ領域1へのデータライトを複数回実行することで、CPU1(111)から指定された領域のデータコピーを行う。
CPU1(111)のDMAリクエストは、上記のように、CPU1(111)が直接DMAコントローラ3(135)に対して行う方法とは別に、CPU間通信を使って間接的にDMAリクエストを発行することもできる。以下にその方法について説明する。
CPU1(111)が、PCIeコントローラ113、132を経由して、CPU3(131)のCPU間通信領域であるメモリ領域3−3(533)に、DMAコントローラ3へのDMAリクエストのメッセージコマンドを書き込む。CPU3(131)は、メモリ領域3−3(533)に書き込まれたメッセージコマンドを受け取り、メッセージコマンドに従って、DMAコントローラ3(135)に指定領域のデータコピー要求(DMAリクエスト)を行う。ここで、DMAリクエストのメッセージコマンドは、使用するDMAコントローラの指定と、DMAを実行するデータ転送元アドレス及びデータ転送先アドレスと、DMAのデータ長と、ステータスビットとで構成される。
DMAが完了すると、CPU3(131)がPCIeコントローラ132、113を経由して、CPU1(111)のCPU間通信領域であるメモリ領域1−3(513)に、処理完了通知のメッセージコマンドを書き込む。この転送の場合、1回分のデータ転送指示601並びに、Read Requestの回数分のデータ転送602〜607を必要とする。したがって、図5及び図6の転送を比較すると、第1制御チップ110と第3制御チップ130のチップ間通信において、データ転送501がRead Requestの回数分実行される。これに対して、データ転送指示601は1回だけなので、低レイテンシの転送が可能となる。即ち、より高速にデータ転送を実現することができる。
<処理フロー>
次に、図7を参照して、第1制御チップ110におけるデータ転送処理を制御する制御手順について説明する。以下で説明する処理は、第1制御チップ110のCPU111がROM1(161)等に格納された制御プログラムをRAM1(160)に読み出して実行することにより実現される。
次に、図7を参照して、第1制御チップ110におけるデータ転送処理を制御する制御手順について説明する。以下で説明する処理は、第1制御チップ110のCPU111がROM1(161)等に格納された制御プログラムをRAM1(160)に読み出して実行することにより実現される。
S701で、第1制御チップ110のCPU111は、実行中のアプリケーションからメモリデータコピーの要求を取得する。メモリデータコピーの要求を取得すると、S702で、CPU111は、データ転送元が第1制御チップ110に接続されているメモリのRAM1(160)であるか否かを判定する。該当する場合はS703に進み、該当しない場合はS705に進む。
S705で、CPU111は、データの転送元が第2制御チップ120に接続されているメモリのRAM2(170)であるか否かを判定する。該当する場合はS706に進み、該当しない場合はS707に進む。
S706で、CPU111は、データ転送元の第2制御チップ120にはDMAコントローラが存在しないため、他のチップのDMAコントローラを検索する。具体的には、CPU111は、第2制御チップ120にチップ間通信インターフェース151を介して接続されている第3制御チップ130のDMAコントローラ(135)が利用可能か否かを判定する。該当する場合はS707に進み、該当しない場合はS703に進む。なお、DMAコントローラが利用可能か否かの判定方法の一例として2つ説明する。1つ目は、CPU111がDMAC135のステータスレジスタにアクセスし、ステータスが「DMA実行中」の場合には利用不可、そうでない場合は利用可として判断します。2つ目は、ソフトウェアセマフォを使って、DMAC135に他のCPUが使用中かどうかの確認をします。ソフトウェアセマフォとは、例えば、RAM3のある特定領域をステータス領域として確保し、DMAC135を使用中のCPUがステータスを1に設定することで、他のCPUに対して、DMAC135を使用中であることを知らせます。そして、DMA転送が終了するとCPUがステータスを0に設定し、他のCPUが利用可能であることを知らせます。なお、どちらの方法が用いられても良いが、本実施例では2つ目のソフトウェアセマフォを用いて実現するものとする。
S702及びS705において、CPU111は、取得したデータ転送の転送条件を解析する解析手段として機能する。ここで、転送条件とは、データの転送元が何れの制御チップに接続されたメモリであるかを示す。また、CPU111は、後述するS703及びS707において、上記の解析結果に基づき、DMAコントローラ115及びDMAコントローラ135の何れでデータ転送を実行するかを選択する選択手段としても機能する。
S703で、CPU111は、DMAコントローラ115を起動する。続いて、S704で、CPU111は、DMAコントローラ115を用いて、データ転送元からRAM1(160)へデータの転送を実行する。なお、S706においてNoと判定されたことでS703が実行される場合、CPU111は、DMAC115を起動してデータ転送元となるRAM2(170)からRAM1(160)へのデータの転送を実行する。
S707で、CPU111は、DMAコントローラ135の使用リクエストを出す。続いて、S708で、CPU111は、DMAコントローラ135を起動する。さらに、S709で、CPU111は、DMAコントローラ135を用いて、データ転送元からRAM1(160)へデータの転送を実行する。ただし、CPU111が直接DMAコントローラ135を制御できない場合は、S707において、CPU111は、第3制御チップ130のCPU131に対して、CPU間メッセージ通信(制御チップ間のメッセージ通信)を行う。これにより、CPU131に対して、メモリコピーを要求する。続いて、S708で、CPU131は、DMAコントローラ135を起動する。さらに、S709で、DMAコントローラ135はデータ転送元からRAM1(160)へデータの転送を実行する。
このように、本実施形態によれば、データ転送元が第2制御チップ120のようにDMAコントローラを搭載していない場合には、第3制御チップ130のように、データ転送を中継する制御チップのDMAコントローラを使用した転送を実行することができる。
<テーブル>
次に、図8を参照して、データ転送に利用することができるDMAコントローラの組み合わせのテーブルについて説明する。当該テーブル800は、CPU111が実行中のアプリケーションから要求を受けたメモリデータの転送元と転送先によって、起動するDMAコントローラの組み合わせを表す。つまり、テーブル800には、データの転送元の制御チップと、データの転送先の制御チップとに関連して利用可能なDMAコントローラが定義されている。
次に、図8を参照して、データ転送に利用することができるDMAコントローラの組み合わせのテーブルについて説明する。当該テーブル800は、CPU111が実行中のアプリケーションから要求を受けたメモリデータの転送元と転送先によって、起動するDMAコントローラの組み合わせを表す。つまり、テーブル800には、データの転送元の制御チップと、データの転送先の制御チップとに関連して利用可能なDMAコントローラが定義されている。
データのアクセスについては、レスポンスを待たなくてよいため、リードアクセスよりもライトアクセスの方が低レイテンシで完了する。そのため、データ転送元がRAM1、RAM3の場合は、データ転送元の制御チップに対して最も近くに設けられた制御チップのDMAコントローラを起動する。つまり、原則として、テーブル800には、データの転送方向に基づいて起動すべきDMAコントローラが定義されている。
データ転送元がRAM2の場合は、データ転送元のDMAコントローラが利用できないため、データ転送元以外の制御チップのDMAコントローラを起動する。なお、データ転送元がRAM2でデータ転送先がRAM1の場合は、DMAコントローラ1とDMAコントローラ3の両方利用可能である。ただし、DMAコントローラ3を起動させることによって、DMAコントローラ1を起動するよりも、低レイテンシの転送が可能となる。従って、データ転送元がRAM2でデータ転送先がRAM1の場合は、利用可能な複数のコントローラがテーブル800に定義されるとともに、それらの優先順位が定義されてもよい。当該優先順位は、より高速にデータ転送を行うことが可能なDMAコントローラを優先するように定義されることが望ましい。
なお、テーブル800をCPU111が参照できるテーブルとして、RAM1(160)、又はROM1(161)に格納することが望ましい。この場合、CPU111はデータ転送元と転送先の条件に従い、DMAコントローラ1(115)を起動するか、DMAコントローラ3(135)を起動するかを選択する構成であってもよい。また、テーブル800は、ユーザ入力等に従って内容を更新できるように構成されてもよい。
以上説明したように、本実施形態に係るマルチチップシステムは、データ転送の転送条件に基づき、データの転送元の制御チップとデータの転送先の制御チップとを特定する。また、マルチチップシステムは、複数の制御チップのいずれかに設けられた利用可能なDMAコントローラを、特定した当該制御チップ間でのテータ転送を制御するために決定する。これにより、転送元又は転送先にDMAコントローラがないマルチチップ構成のシステムであっても好適に他のチップに設けられたDMAコントローラを利用することができる。本実施形態では、CPU111が、転送元が何れの制御チップに接続されたRAMであるかと、転送元又は転送元のDMAコントローラの有無の判定を行う。その際、転送元がDMAコントローラを備えていない制御チップのRAMであると判定された場合、CPU111が転送元と転送先の制御チップの間を中継する制御チップのDMAコントローラを使ってデータ転送を実行する。この処理により、データ転送の効率を向上させることができる。つまり、本実施形態によれば、複数の制御チップの間でデータ転送を行う際に、データ転送の転送条件に基づいて、データの転送先の制御チップではなく、且つ、転送元の制御チップではない別の制御チップを利用して、適切にデータ転送を制御することができる。
<第2の実施形態>
以下では、本発明の第2の実施形態について説明する。本実施形態では、画像形成装置101内の各制御チップ間でデータ転送を行う別の形態について説明する。上記第1の実施形態では、第2制御チップ120がDMAコントローラを備えていない構成であったが、第2制御チップ920がDMAコントローラを備えている構成について説明する。
以下では、本発明の第2の実施形態について説明する。本実施形態では、画像形成装置101内の各制御チップ間でデータ転送を行う別の形態について説明する。上記第1の実施形態では、第2制御チップ120がDMAコントローラを備えていない構成であったが、第2制御チップ920がDMAコントローラを備えている構成について説明する。
<構成>
まず、図9を参照して、本実施形態におけるマルチチップシステムを有する画像形成装置901の構成について説明する。第2制御チップ920が上記第1の実施形態における第2制御チップ920と異なり、DMAコントローラを備えている点以外は、上記第1の実施形態で説明した図1と同じである。従って、他の重複する説明は省略する。
まず、図9を参照して、本実施形態におけるマルチチップシステムを有する画像形成装置901の構成について説明する。第2制御チップ920が上記第1の実施形態における第2制御チップ920と異なり、DMAコントローラを備えている点以外は、上記第1の実施形態で説明した図1と同じである。従って、他の重複する説明は省略する。
続いて、図10を参照して、本実施形態における第2制御チップ920の構成について説明する。921はプログラムを処理するCPUである。925はデータの転送を行うDMAコントローラである。922はチップ間通信インターフェースとなるPCIeコントローラである。926はRAM2(170)を制御するメモリコントローラである。927はROM2(171)を制御するROMコントローラである。924は内部バスである。CPU921、及びPCIeコントローラ922はそれぞれバスマスタである。PCIeコントローラ922、メモリコントローラ926、及びROMコントローラ927はそれぞれバススレーブである。これらのバスマスタとバススレーブ間でデータ転送が可能である。また、CPU921はとDMAコントローラ925は、PCIeコントローラ922を通して、RAM1(160)とRAM3(180)にアクセスすることができる。なお、第2制御チップ920の構成は、第1制御チップ110の構成と同一であってもよい。また、チップ間通信インターフェースとしては、PCIeコントローラ以外であってもよい。
<処理フロー>
次に、図11を参照して、第1制御チップ110におけるCPU111がデータ転送処理を制御する制御手順を示すフローについて説明する。以下で説明する処理は、第1制御チップ110のCPU111がROM1(161)等に格納された制御プログラムをRAM1(160)に読み出して実行することにより実現される。
次に、図11を参照して、第1制御チップ110におけるCPU111がデータ転送処理を制御する制御手順を示すフローについて説明する。以下で説明する処理は、第1制御チップ110のCPU111がROM1(161)等に格納された制御プログラムをRAM1(160)に読み出して実行することにより実現される。
S801で、第1制御チップ110のCPU111は、実行中のアプリケーションからメモリデータコピーの要求を取得する。メモリデータコピーの要求を取得すると、S802で、CPU111は、データ転送元が第1制御チップ110に接続されているメモリのRAM1(160)であるか否かを判定する。該当する場合はS803に進み、該当しない場合はS805に進む。
S805で、CPU111は、データの転送元が第2制御チップ920に接続されているメモリのRAM2(170)であるか否かを判定する。該当する場合はS806に進み、該当しない場合はS808に進む。S806で、CPU111は、データ転送元の第2制御チップ920のDMAコントローラ(925)が利用可能か否かを判定する。該当する場合はS811に進み、該当しない場合はS807に進む。S807で、CPU111は、データ転送元の第2制御チップ920に最も近い第3制御チップ130内のDMAコントローラ(135)が利用可能か否かを判定する。該当する場合はS808に進み、該当しない場合はS803に進む。
S802、S805、S806、及びS807において、CPU111は、取得したデータ転送の転送条件を解析する解析手段として機能する。ここで、転送条件とは、データの転送元が何れの制御チップに接続されたメモリであるかと、RAM2が転送元であった場合にDMAコントローラの利用可否を示す。また、CPU111は、後述するS803、S808及びS811において、上記の解析結果に基づき、DMAコントローラ115及びDMAコントローラ925及びDMAコントローラ135の何れでデータ転送を実行するかを選択する選択手段として機能する。
S803で、CPU111は、DMAコントローラ115を起動する。続いて、S804で、DMAコントローラ115はデータ転送元からRAM1(160)へデータの転送を実行する。なお、S807においてNoと判定されたことでS803が実行される場合、CPU111は、DMAC115を起動してデータ転送元となるRAM2(170)からRAM1(160)へのデータの転送を実行する。S808で、CPU111は、CPU131に対して、DMAコントローラ135の使用リクエストを出す。続いて、S809で、CPU111は、DMAコントローラ135を起動する。さらに、S810で、CPU111は、DMAコントローラ135を用いてデータ転送元からRAM1(160)へデータの転送を実行する。
S811で、CPU111はCPU921に対して、DMAコントローラ925の使用リクエストを出す。続いて、S812で、CPU111は、DMAコントローラ925を起動する。さらに、S813において、CPU111は、DMAコントローラ925を利用してデータ転送元からRAM1(160)へデータの転送を実行する。
本実施形態によれば、データ転送元が第2制御チップ920で且つDMAコントローラ925を使用できない場合には、第3制御チップ130のように、データ転送を中継する制御チップのDMAコントローラを使用した転送を実行することができる。
<テーブル>
次に、図12を参照して、データ転送に利用することができるDMAコントローラの組み合わせのテーブルについて説明する。当該テーブル1200は、CPU111が実行中のアプリケーションから要求を受けたメモリデータの転送元と転送先によって、起動するDMAコントローラの組み合わせを表す。
次に、図12を参照して、データ転送に利用することができるDMAコントローラの組み合わせのテーブルについて説明する。当該テーブル1200は、CPU111が実行中のアプリケーションから要求を受けたメモリデータの転送元と転送先によって、起動するDMAコントローラの組み合わせを表す。
データのアクセスについては、レスポンスを待たなくてよいため、リードアクセスよりもライトアクセスの方が低レイテンシで完了する。そのため、データ転送元がRAM1、RAM3の場合は、データ転送元に最も近い制御チップのDMAコントローラを起動する。データ転送元がRAM2の場合、データ転送元のDMAコントローラが利用できる場合は、データ転送元のDMAコントローラを起動する。データ転送元のDMAコントローラが利用できない場合は、データ転送元以外の制御チップのDMAコントローラを起動する。なお、データ転送元がRAM2でデータ転送先がRAM1の場合は、DMAコントローラ1とDMAコントローラ3の両方利用可能である。ただし、DMAコントローラ3を起動させることによって、DMAコントローラ1を起動するよりも、低レイテンシの転送が可能となる。
なお、テーブル1200をCPU111が参照できるテーブルとして、RAM1(160)もしくは、ROM1(161)に格納することが望ましい。この場合、CPU111はデータ転送元とデータ転送先の条件に従い、DMAコントローラ1(115)を起動するか、DMAコントローラ3(135)を起動するかを選択する構成であってもよい。また、テーブル1200は、ユーザ入力等に従って内容を更新できるように構成されてもよい。
以上説明したように、本実施形態に係るマルチチップシステムは、転送元又は転送先にDMAコントローラを備えたマルチチップ構成のシステムを想定している。そしてCPU111が、転送元が何れの制御チップに接続されたRAMであるかと、転送元のDMAコントローラの使用可否の判定を行う。そして、転送元の制御チップのDMAコントローラを使用できないと判定された場合に、転送元と転送先の制御チップの間を中継する制御チップのDMAコントローラがデータ転送のために使用される。その結果、データ転送の効率を向上させることができる。
<その他の実施形態>
上記第1及び第2の実施形態の変形例について説明する。第1制御チップ110と第2制御チップ120、920と第3制御チップ130は、全部または一部は同一の制御チップであってもよい。また、第1制御チップ110と第2制御チップ120、920の間を中継する制御チップは、第3制御チップ130のみに限定されず、第3制御チップ以外に1つまたは複数あってもよい。さらに、第1制御チップ110や第2制御チップ120、920の先に接続されるチップが1つまたは複数あってもよい。また、制御チップ間の転送を実現するためにはDMAコントローラから転送先や転送元にアクセス可能であることが必要であるため、転送先又は転送元のメモリ空間がアクセス可能、即ち、共有空間であるか否かを転送条件に加えてもよい。また、上記各実施形態で転送されるデータは、画像形成装置101において画像形成対象の画像データに対して実行される各制御チップの画像処理に応じて転送される画像データであってもよい。また、実施形態1および2では、マルチチップシステムが画像形成装置101において搭載された場合について説明したが、画像形成装置とは異なる装置に搭載されたマルチチップシステムにおいて実施形態1または2の処理が実行されても構わない。たとえば、デジタルカメラが、他の装置から画像データを取得して表示する際に実施形態1または2が実行されても構わない。
上記第1及び第2の実施形態の変形例について説明する。第1制御チップ110と第2制御チップ120、920と第3制御チップ130は、全部または一部は同一の制御チップであってもよい。また、第1制御チップ110と第2制御チップ120、920の間を中継する制御チップは、第3制御チップ130のみに限定されず、第3制御チップ以外に1つまたは複数あってもよい。さらに、第1制御チップ110や第2制御チップ120、920の先に接続されるチップが1つまたは複数あってもよい。また、制御チップ間の転送を実現するためにはDMAコントローラから転送先や転送元にアクセス可能であることが必要であるため、転送先又は転送元のメモリ空間がアクセス可能、即ち、共有空間であるか否かを転送条件に加えてもよい。また、上記各実施形態で転送されるデータは、画像形成装置101において画像形成対象の画像データに対して実行される各制御チップの画像処理に応じて転送される画像データであってもよい。また、実施形態1および2では、マルチチップシステムが画像形成装置101において搭載された場合について説明したが、画像形成装置とは異なる装置に搭載されたマルチチップシステムにおいて実施形態1または2の処理が実行されても構わない。たとえば、デジタルカメラが、他の装置から画像データを取得して表示する際に実施形態1または2が実行されても構わない。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
101:画像形成装置、102、103:ホストコンピュータ、105:ホストインターフェース、110:第1制御チップ、120:第2制御チップ、130:第3制御チップ
Claims (13)
- それぞれがメモリを備える複数の制御チップを有するマルチチップシステムであって、
データ転送の要求を取得する取得手段と、
前記取得手段によって取得したデータ転送の要求に係る転送条件を解析する解析手段と、
前記解析手段によって解析された前記転送条件に基づき、データの転送元の制御チップとデータの転送先の制御チップとを特定するとともに、特定した当該制御チップ間でのテータ転送を制御する、前記複数の制御チップのいずれかに設けられた利用可能なDMAコントローラを決定する決定手段と
を備えることを特徴とするマルチチップシステム。 - 前記決定手段は、
データの転送元の制御チップに備えられた前記DMAコントローラを前記利用可能なDMAコントローラとして決定することを特徴とする請求項1に記載のマルチチップシステム。 - 前記決定手段は、
データの転送元の制御チップに前記DMAコントローラが備えられていない場合には、該データの転送元の制御チップに対して最も近くに設けられた制御チップのDMAコントローラを前記利用可能なDMAコントローラとして決定することを特徴とする請求項1又は2に記載のマルチチップシステム。 - 前記決定手段は、
データの転送元の制御チップに前記DMAコントローラが備えられていない場合であって、かつ、該データの転送元の制御チップに対して最も近くに設けられた制御チップのDMAコントローラが利用可能でない場合には、他の制御チップに設けられたDMAコントローラを前記利用可能なDMAコントローラとして決定することを特徴とする請求項3に記載のマルチチップシステム。 - 前記決定手段によって決定された利用可能なDMAコントローラが前記データの転送元の制御チップ以外の制御チップに設けられている場合において、該データの転送元の制御チップは、制御チップ間のメッセージ通信を用いて、該利用可能なDMAコントローラが設けられた制御チップへ該DMAコントローラの起動を要求することを特徴とする請求項1乃至4の何れか1項に記載のマルチチップシステム。
- 前記決定手段は、
データの転送方向に基づいて、前記利用可能なDMAコントローラを決定することを特徴とする請求項1に記載のマルチチップシステム。 - 前記決定手段は、
データの転送元と転送先との制御チップのメモリ空間が、いずれの制御チップとの共有空間であるかに基づいて、前記利用可能なDMAコントローラを決定することを特徴とする請求項1に記載のマルチチップシステム。 - 前記データの転送元の制御チップと、前記データの転送先の制御チップとに関連して利用可能なDMAコントローラを定義したテーブルを記憶する記憶手段をさらに備え、
前記決定手段は、前記記憶手段に記憶された前記テーブルを用いて前記利用可能なDMAコントローラを決定することを特徴とする請求項1乃至7の何れか1項に記載のマルチチップシステム。 - 前記テーブルには、
前記データの転送元の制御チップに設けられたDMAコントローラが利用可能である場合と利用可能でない場合とのそれぞれについて、利用可能なDMAコントローラが定義されていることを特徴とする請求項8に記載のマルチチップシステム。 - 前記テーブルには、
前記データの転送元の制御チップに設けられたDMAコントローラが利用可能でない場合において、他の制御チップに設けられたDMAコントローラを用いる際に、利用可能な複数のDMAコントローラが優先順位を付して定義されていることを特徴とする請求項8又は9に記載のマルチチップシステム。 - それぞれがメモリを備える複数の制御チップを有するマルチチップシステムの制御方法であって、
データ転送の要求を取得する取得工程と、
前記取得工程で取得したデータ転送の要求に係る転送条件を解析する解析工程と、
前記解析工程で解析された前記転送条件に基づき、データの転送元の制御チップとデータの転送先の制御チップとを特定するとともに、特定した当該制御チップ間でのテータ転送を制御する、前記複数の制御チップのいずれかに設けられた利用可能なDMAコントローラを決定する決定工程と
を備えることを特徴とするマルチチップシステムの制御方法。 - 請求項1乃至10の何れか1項に記載のマルチチップシステムを有する画像形成装置。
- 転送される前記データは、前記画像形成装置で画像形成対象の画像データに対して実行される各制御チップの画像処理に応じて転送される画像データであることを特徴とする請求項12に記載の画像形成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015107856A JP2016224560A (ja) | 2015-05-27 | 2015-05-27 | マルチチップシステム、及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015107856A JP2016224560A (ja) | 2015-05-27 | 2015-05-27 | マルチチップシステム、及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016224560A true JP2016224560A (ja) | 2016-12-28 |
Family
ID=57745780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015107856A Pending JP2016224560A (ja) | 2015-05-27 | 2015-05-27 | マルチチップシステム、及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016224560A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020190765A (ja) * | 2019-05-17 | 2020-11-26 | オムロン株式会社 | 転送装置、情報処理装置、および、データ転送方法 |
-
2015
- 2015-05-27 JP JP2015107856A patent/JP2016224560A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020190765A (ja) * | 2019-05-17 | 2020-11-26 | オムロン株式会社 | 転送装置、情報処理装置、および、データ転送方法 |
WO2020235174A1 (ja) * | 2019-05-17 | 2020-11-26 | オムロン株式会社 | 転送装置、情報処理装置、および、データ転送方法 |
US11625348B2 (en) | 2019-05-17 | 2023-04-11 | Omron Corporation | Transfer device, information processing device, and data transfer method |
JP7326863B2 (ja) | 2019-05-17 | 2023-08-16 | オムロン株式会社 | 転送装置、情報処理装置、および、データ転送方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3796179A1 (en) | System, apparatus and method for processing remote direct memory access operations with a device-attached memory | |
TW201905714A (zh) | 以輔助處理器記憶體進行儲存裝置的直接輸入輸出操作的計算系統操作方法、計算系統、車輛及電腦可讀媒體 | |
US7689732B2 (en) | Method for improving flexibility of arbitration of direct memory access (DMA) engines requesting access to shared DMA channels | |
JP6880402B2 (ja) | メモリアクセス制御装置及びその制御方法 | |
JP5578713B2 (ja) | 情報処理装置 | |
JP2015035010A (ja) | メモリシステムおよび情報処理装置 | |
US9172839B2 (en) | Image forming apparatus, control method and storage medium | |
JP2006293927A (ja) | ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi | |
JP2008310798A (ja) | 画像処理コントローラ及び画像形成装置 | |
JP2005293596A (ja) | データ要求のアービトレーション | |
JP6843508B2 (ja) | 情報処理装置及び情報処理装置の制御方法 | |
JP2016224560A (ja) | マルチチップシステム、及びその制御方法 | |
US20130117347A1 (en) | Communication apparatus, communication method, and computer product | |
JP2004133942A (ja) | データバスシステム及びバス間クロスアクセス方法 | |
JP5340058B2 (ja) | 画像処理装置、その制御方法及びプログラム | |
WO2007039933A1 (ja) | 演算処理装置 | |
JP2016103112A (ja) | データ転送制御装置、情報処理装置、画像形成装置 | |
JP2013131139A (ja) | アクセス制御装置、画像処理装置及びアクセス制御方法 | |
JP4965974B2 (ja) | 半導体集積回路装置 | |
JP2022122677A (ja) | 情報処理装置および情報処理装置の制御方法 | |
JP2006277363A (ja) | 情報転送方式,画像形成装置 | |
JP2016154001A (ja) | 画像処理装置、画像処理用データ転送制御方法、及び画像処理用データ転送制御プログラム | |
JP5602109B2 (ja) | 画像形成装置および画像形成プログラム | |
JP2005062946A (ja) | メモリ制御装置 | |
WO2020175173A1 (ja) | メモリ配置装置、メモリ配置方法、及び、メモリ配置プログラムを格納した記録媒体 |