JP5293516B2 - データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体 - Google Patents

データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体 Download PDF

Info

Publication number
JP5293516B2
JP5293516B2 JP2009208943A JP2009208943A JP5293516B2 JP 5293516 B2 JP5293516 B2 JP 5293516B2 JP 2009208943 A JP2009208943 A JP 2009208943A JP 2009208943 A JP2009208943 A JP 2009208943A JP 5293516 B2 JP5293516 B2 JP 5293516B2
Authority
JP
Japan
Prior art keywords
transfer
write
request
read request
burst write
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.)
Expired - Fee Related
Application number
JP2009208943A
Other languages
English (en)
Other versions
JP2011059979A (ja
Inventor
智広 島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009208943A priority Critical patent/JP5293516B2/ja
Publication of JP2011059979A publication Critical patent/JP2011059979A/ja
Application granted granted Critical
Publication of JP5293516B2 publication Critical patent/JP5293516B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Description

本発明は、データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関し、詳細には、スプリットトランザクションのプロトコルで通信を行う際の伝送路の利用効率を向上させたデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関する。
近年、要求と応答が分離され、応答を待たずに次の要求を発行できるPCI(Peripheral Component Interconnect) Express(以下、PCIeという。)のような高速なスプリットトランザクションのバスが利用されるようになってきている。
一方、プリンタ、複写装置、複合装置、コンピュータ等の画像処理装置においては、外部とのインターフェイス処理を行う半導体集積回路であるASIC(Application Specific Integrated Circuit)を搭載して、ネットワーク、USB(Universal Serial Bus)、スキャナ、プロッタ及びコンピュータ等の外部とのインターフェイス処理をASICで行って、外部からのデータをメモリに保管したり、メモリに保管したデータを読み出して外部に出力する等のインターフェイス処理を行うようになってきている。
すなわち、ASICは、ネットワーク、スキャナ、プロッタ等との間でデータの送受信を行うとともに、PCIe I/F回路を介して接続されたメモリとの間で、DMA(Direct Memory Access)転送によってデータのやり取りを行う。
そして、複数のDMAC(Direct Memory Access Controller :DMAコントローラ)を搭載する半導体集積回路においては、メモリの使用権の調停を行うアービタが必要となり、画像処理装置においては、プロッタへのデータ出力(ビデオ出力)は、一定期間の間に一定量のデータ転送を完了(ライン等時性)しない場合には、異常画像が発生するため、特定のマスタ(DMAC)からの要求を最優先のプライオリティにするアービタが存在する。
また、図8に示すように、ASIC100が、PCIe経由でメモリアクセスを行う場合、ASIC100からリード(Read)要求を出して、MCH(Memory Controller Hub)101を介してメモリ102から応答(Completion)データを受け取る。この場合、図9に示すように、メモリ102から応答データがかえってくるまでのレイテンシー(Latency)の影響によって、PCIeの転送レートが低くなる。なお、図8において、MCH101には、CPU(Central Processing Unit )103が接続されており、MCH101は、CPU101とメモリ102及びASIC100とのPCIeの接続を行う。
そこで、従来から、このレイテンシーによる転送レートの低下を回避するために、図10及び図11に示すように、リード要求を出してから、応答データが返る前に、次のリード要求を発行するリード要求先行処理が行われている。このリード要求先行処理を行う場合、先行させるリード要求の個数に応じて、応答データ格納用にSRAM(Static Random Access Memoryを実装する必要がある。なお、図10及び図11において、ASIC100は、アービタ110、PCIe I/F回路111、リードDMAC112及び優先度の低いライトDMAC113等を搭載しており、リードDMAC112からのリード要求をアービタ110が調停して、PCIe I/F回路111、PCIeバス104及びMCH101を介してメモリ102に送信して、メモリ102からリードデータが送り返されている状態を示している。
また、従来、アービタからのライトコマンドをバッファに保管し、ライトコマンドの保管中にリードコマンドを受け付けると、既に保管されているライトコマンドよりも先にリードコマンドをPCIeインターフェイスに渡すことにより、送信路と受信路の利用効率の向上を図った技術が提案されている(特許文献1参照)。
この手法は、一定期間、リードコマンドが権限を取れない場合、は特定の動作モードにおいて、連続したデータを転送する際に、アドレスの指定などの手順を一部省略することによって転送速度を上げるバーストライト転送の場合にも適用することができる。
しかしながら、上記従来技術にあっては、アービタに対する優先度の高いリード要求を行っている場合にも優先度の低いライト要求が挿入されて、意図する実行速度を確保することができないという問題があった。
すなわち、従来のアービタは、図12に示すように、優先度の高いDMAC112のリード要求の合間に、他の優先度の低いマスタであるライトDMAC113からのバースト長の長いライトアクセスが挿入される事態が発生し、優先度が高いにもかかわらず、リード要求が待たされて、意図する実行転送速度を確保することができないという問題があった。すなわち、図12は、PCIeをx4レーンで使用しているときに、256Byteのバーストライトが挿入された場合の送信(Tx)伝送路の状態を示しており、リード要求が256ns待たされる持体、すなわち、受信(Rx)側の伝送路に256ns以上のアイドル期間が発生する。例えば、図13及び図14に示すように、PCIeにおいては、4レーン構成の場合、1024Byteで転送するところを、一定期間128Byteに分割されると、PCIeの転送能力は、30%程度低下する。
これは、従来のアービタにおいては、一定の時間が経過すると、ライトパケットが分割されてしまうためであり、リードレイテンシーが大きいPCIeのようなI/F(PCIe I/F)にあっては、必要以上にライトが分割されるモードに遷移してしまい、無駄に送信伝送路の転送効率が低下してしまうという問題があった。このような状態が発生すると、画像処理装置において、プロッタへの画像データの転送が間に合わず、異常画像が発生することとなる。
そこで、本発明は、バーストライト転送におけるデータ転送効率を適切に向上させるデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体を提供することを目的としている。
記目的を達成するため、本発明のデータ転送装置は、リード要求を発行するリードマスタと、ライト要求を発行するライトマスタと、前記ライトマスタから発行された前記ライト要求と前記リードマスタから発行された前記リード要求を調停して当該ライト要求と当該リード要求とを対向デバイスに転送すると共に、当該ライト要求にるライトデータをバーストライト転送する調停手段と、前記対向デバイスにおける前記リード要求の発行が抑制されているか否かを検知する検知手段と、を備えたデータ転送装置であって、前記調停手段は、前記バーストライト転送中に、当該バーストライト転送の前記ライト要求よりも優先度の高い前記リード要求が前記リードマスタから発行された場合は当該バーストライト転送に係るデータサイズが予め設定されたデータサイズよりも大きければ、当該データサイズまでの当該バーストライト転送を完了させた後、当該バーストライト転送を分割して中断し、当該リード要求を挿入後、中断した該バーストライト転送の後続データについて当該バーストライト転送を再開させる一方、前記検知手段が前記対向デバイスで前記リード要求の発行が抑制されていることを検知した場合は、当該バーストライト転送を分割せずに、当該バーストライト転送をそのまま継続させることを特徴とする
また、本発明のデータ転送制御方法は、リードマスタにより、リード要求を発行するリード要求処理ステップと、ライトマスタにより、ライト要求を発行するライト要求処理ステップと、調停手段により、前記リード要求処理ステップで発行された前記リード要求と前記ライト要求処理ステップで発行された前記ライト要求を調停して当該ライト要求と当該リード要求とを対向デバイスに転送すると共に、当該ライト要求に係るライトデータをバーストライト転送する調停処理ステップと、検知手段により、前記対向デバイスにおける前記リード要求の発行が抑制されているか否かを検知する検知ステップと、を有するデータ転送制御方法であって、前記調停処理ステップでは、前記調停手段により、前記バーストライト転送中に、当該バーストライト転送の前記ライト要求よりも優先度の高い前記リード要求が前記リードマスタから発行された場合は、当該バーストライト転送に係るデータサイズが予め設定されたデータサイズよりも大きければ、当該データサイズまでの当該バーストライト転送を完了させた後、当該バーストライト転送を分割して中断し、当該リード要求を挿入後、中断した当該バーストライト転送の後続データについての当該バーストライト転送を再開させる一方、前記検知手段が前記対向デバイスで前記リード要求の発行が抑制されていることを検知した場合は、当該バーストライト転送を分割せずに、当該バーストライト転送をそのまま継続させることを特徴とする
に、本発明のデータ転送制御プログラムは、コンピュータに実行させるデータ転送制御プログラムであって、リードマスタにより、リード要求を発行するリード要求処理ステップの手順と、ライトマスタにより、ライト要求を発行するライト要求処理ステップの手順と、調停手段により、前記リード要求処理ステップで発行された前記リード要求と前記ライト要求処理ステップで発行された前記ライト要求を調停して当該ライト要求と当該リード要求とを対向デバイスに転送すると共に、当該ライト要求に係るライトデータをバーストライト転送する調停処理ステップの手順と、検知手段により、前記対向デバイスにおける前記リード要求の発行が抑制されているか否かを検知する検知ステップの手順と、を有し、前記調停処理ステップの手順では、前記調停手段により、前記バーストライト転送中に、当該バーストライト転送の前記ライト要求よりも優先度の高い前記リード要求が前記リードマスタから発行された場合は、当該バーストライト転送に係るデータサイズが予め設定されたデータサイズよりも大きければ、当該データサイズまでの当該バーストライト転送を完了させた後、当該バーストライト転送を分割して中断し、当該リード要求を挿入後、中断した当該バーストライト転送の後続データについての当該バーストライト転送を再開させる一方、前記検知手段が前記対向デバイスで前記リード要求の発行が抑制されていることを検知した場合は、当該バーストライト転送を分割せずに、当該バーストライト転送をそのまま継続させることを特徴とする
加えて、本発明の記録媒体は、上記データ転送制御プログラムにおける各ステップの手順をコンピュータにより読み取り可能に記録したことを特徴とする
本発明によれば、調停手段の処理機能により、バーストライト転送が分割されるタイミングを最小限に抑制し、転送に係る転送レートを維持しつつ、ライト要求に係る送信伝送路及びリード要求に係る受信伝送路の双方の転送効率を向上させることができる。
本発明の一実施例を適用した画像形成装置の要部ブロック構成図。 データ転送制御処理を示すフローチャート。 図2の続きの処理を示すフローチャート。 画像形成装置におけるデータ転送制御処理の説明図。 フローコントロールによる転送抑制発生の説明図。 フローコントロールによるUpdate FC待ち発生の説明図。 フローコントロールによる転送抑制回避処理の説明図。 従来のPCIeにおけるリード処理を示すフローチャート。 従来のリード要求とリードデータ及びレイテンシーの関係を示す図。 従来のリード要求先行処理時のリードデータとレイテンシーの関係を示す図。 従来のライト要求が入らないときのリード要求とリードデータの関係を示す図。 従来のリード要求の間にライト要求が入る場合のリードデータとの関係を示す図。 x1、x2、x4レーン構成におけるPayload Size毎の実行転送レートの一例を示す図。 x1、x2、x4レーン構成におけるPayload Size毎の実行転送レートの一例を示すグラフ。
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
図1〜図7は、本発明のデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の一実施例を示す図であり、図1は、本発明のデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の一実施例を適用した画像形成装置1の要部ブロック構成図である。
図1において、画像形成装置1は、例えば、プリンタ、複合装置等であり、CPU(Central Processing Unit )2、MCH(Memory Controller Hub)3、メモリ4及びASIC(Application Specific Integrated Circuit)5等を備えているとともに、プロッタ部6等を備えている。画像形成装置1は、ASIC5とMCH3が、スプリットトランザクションの伝送路であるPCIe7で接続されている。
ASIC(データ転送装置)5は、メモリ4から出力データを読み取ってプロッタ部6に供給するマスタとしてのDMAC11a、その他のDMAC11b〜11d、アービタ12及びPCIe I/F回路13等を備えており、アービタ12は、データサイズ設定レジスタ21と追い越し許可数設定レジスタ22等を備えている。
MCH3は、PCIe I/F回路(対向デバイス)31を備えており、PCIe I/F回路31は、CPU2とメモリ4及びASIC5のPCIe I/F回路13とのPCIe7の接続を行うとともに、PCIeの規格で定義されているフローコントロール(Flow Control)用バッファ32を備えている。なお、ASIC5の搭載するPCIe I/F回路13も、図示しないが、同様のバッファを備えている。
ASIC5は、そのアービタ(調停手段、バーストライト転送制御手段)12が各マスタとしてのDMA11a〜11dからのライト要求及びリード要求を調停して、PCIe I/F回路13に渡す。PCIe I/F回路13は、ライト要求及びリード要求をPCIe7の送信(Tx)伝送路7tを経由させてMCH3に送り、CPU2がMCH3に接続されているメモリ4にアクセスさせる。
PCIe I/F回路13は、アービタ12からの要求を受け付けてPCIe7の送信伝送路7tを経由させてMCH3のPCIe I/F回路31に渡し、PCIe7の受信(Rx)伝送路7rを経由してMCH3のPCIe I/F回路31から送られてくるデータをアービタ12に渡す。PCIe I/F回路13は、上述のようにフローコントロール用バッファを備えており、ASIC5内部のデータ転送速度がPCIe7のパケット発行能力に比較して遅い場合に、データをバッファに格納して、データのアンダーフローが発生するのを防止する。
ASIC5のDMAC11aは、画像データに基づいて用紙に画像を形成するプロッタ6に画像データを供給し、リード要求の十分な転送速度が要求されて、所望の転送速度が得られない場合には、プロッタ6での形成画像が異常画像となるおそれがある。
アービタ12は、DMAC11a〜11dからのライト要求及びリード要求を調停して、PCIe I/F回路13に渡し、PCIe I/F回路13は、ライト要求及びリード要求をPCIe7の送信伝送路7tを経由させてMCH3のPCIe I/F回路31に送って、CPU2がMCH3に接続されているメモリ4にアクセスさせる。
PCIe I/F回路13は、対向デバイスであるMCH3のPCIe I/F回路31のフローコントロール用バッファ32の空き状態、PCIe I/F回路13とPCIe I/F回路31を仮想的に直結するリンクであるVC(Virtual Channel)、レーン(Lane)数の利用状況をリアルタイムで取得して信号線14を介してアービタ12に伝える。上記PCIe I/F回路13及び信号線14は、対向デバイスであるPCIe I/F回路31においてリード要求の発行が抑制されているか否かを検知する検知手段として機能しており、このPCIe I/F回路31においてリード要求の発行が抑制されているか否かを検知する情報は、フローコントロール用バッファ32の空き状態、VC、レーン(Lane)数の利用状況である。
アービタ12のデータサイズ設定レジスタ(最小データサイズ設定手段)21は、ライトアクセス中断時の最小データサイズがプログラム(ソフトウェア)によって設定されるレジスタであり、アービタ12は、このデータサイズ設定レジスタ21に設定されたデータサイズよりも大きいサイズのバーストライト転送中に、優先度の高いリード要求が発生すると、少なくともデータサイズ設定レジスタ21に設定されたサイズまでのバーストライト転送を完了させた上で、リード要求を受け付けて、先にリード要求を送信する追い越し処理を行う。このようなバーストライト転送を分割するデータサイズとして少なくとも最小データサイズを確保したリード要求の追い越し処理を行うことで、細切れのパケットが発生することを防止し、送信側の転送効率が低下するのを回避する。
追い越し許可数設定レジスタ22は、プログラム(ソフトウェア)によって追い越し許可数が設定され、アービタ12は、この追い越し許可数設定レジスタ22に設定された追い越し許可数までは、リード要求によるライト要求の追い越しを許可するが、設定された追い越し許可数を超えると、後続のリード要求の追い越しを禁止する。
なお、画像形成装置1は、ROM、EEPROM(Electrically Erasable and Programmable Read Only Memory )、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Versatile Disk)、SD(Secure Digital)カード、MO(Magneto-Optical Disc)等のコンピュータが読み取り可能な記録媒体に記録されている本発明のデータ転送制御方法を実行するデータ転送制御プログラムを読み込んで図示しない不揮発メモリに導入することで、後述するバーストライト転送中の優先度の高いリード要求を効率的に転送処理するデータ転送制御方法を実行するデータ転送装置として構築されている。このデータ転送制御プログラムは、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
次に、本実施例の作用を説明する。本実施例の画像形成装置1は、アービタ12が、バーストライト転送中に、該ライト要求よりも優先度の高いリード要求が発生すると、図2及び図3に示すように、バーストライト転送を中断して独立したライト要求として転送し、その後にリードコマンドを転送して、該リードコマンドの後に、中断したバーストライトの後続データを前記ライト要求とは別のライト要求として転送する。
アービタ12は、図2に示すように、ソフトウェアによって、アービタ12の動作を設定するレジスタであるデータサイズ設定レジスタ21にライトアクセス中断時の最小データサイズが設定され、追い越し許可数設定レジスタ22にリード要求によるライト要求の追い越しを許可する追い越し許可数が設定されると(ステップS101)、バスであるPCIe7の使用権を要求しているマスタであるDMAC11a〜11dがあるかチェックし(ステップS102)、バスの使用権を要求しているDMAC11a〜11dがあると、バス使用権を要求しているマスタであるDMAC11〜11dのうち、優先度の最も高いDMAC11a〜11dは、リード要求であるかチェックする(ステップS103)。
ステップS103で、リード要求のときには、アービタ12は、リードコマンドをPCIe I/F回路13に渡し、PCIe I/F回路13がリードコマンドを送信伝送回路7tを介してMCH3のPCIe I/F回路31に送信して、ステップS102に戻って、バスの使用権を要求しているマスタ(DMAC11a〜11d)があるか否かのチェックから上記同様に処理する(ステップS102〜S104)。CPU2は、このリードコマンドに応じて、MCH3に接続されているメモリ4にアクセスさせ、リードレイテンシーの後に、メモリ4のデータをリードしてPCIe I/F回路31から受信伝送路7rを介してASIC5のPCIe I/F回路13に転送する。
ステップS103で、ライト要求であると、アービタ12は、ライトデータの転送を開始するが、このとき、1つのライト要求でデータを連続的に転送するバーストライト転送を開始し(ステップS105)、バーストライト転送中のライト要求よりも優先度の高いリード要求が発生したかチェックする(ステップS106)。
ステップS106で、バーストライト転送中のライト要求よりも優先度の高いリード要求がないときには、アービタ12は、バーストライト転送を継続して、バーストライト転送によるデータ転送が完了すると(ステップS107)、ステップS102に戻って上記同様の処理を繰り返し行う(ステップS102〜S107)。
ステップS106で、バーストライト転送中のライト要求よりも優先度の高いリード要求が発生すると、アービタ12は、PCIe I/F回路13がPCIe I/F回路31からリアルタイムで受け取って通知してくるフローコントロール用バッファ32の空き状態、VC、レーン(Lane)数の利用状況からフローコントロール用バッファ32に充分な空きがあるか否かチェックする(ステップS108)。
なお、図2及び図3では、フローコントロール用バッファ32についてのみ考慮してリード要求の追い越し制御処理を行っている場合について説明しているが、VCやレーン数についても考慮して追い越し制御処理を行ってもよい。すなわち、PCIeにおいては、複数のVCを使用できる場合(デバイスの実装に依存する)であって、かつ、半導体集積回路であるASIC5内のマスタであるDMAC11a〜11dの要求発行能力がPCIe7のスループットよりも大きい場合においては、優先度の高いVCに優先度の高いリード要求をアサインし、他の要求を別のVCにアサインすることで、先に受け付けたライト要求よりも優先度の高いリード要求を先行させることができる。
この場合、アービタ12内での追い越し機能は、冗長となり、無駄なタイムロスが発生することになる。
そこで、本実施例のASIC5のアービタ12は、PCIe I/F回路13からのVCの情報に基づいて、バーストライト転送を分割してリード要求を挿入する追い越し機能の有効/無効を制御し、追い越し機能をVCで代替することができる場合には、冗長な追い越し機能を無効として、タイムロスを削減する。
なお、通常、VCを複数持つと回路規模が大きくなり、コストも増大することから、ASICにおいては、VCを1チャネルのみ有していることが多く、この場合には、VCは、考慮しなくてもよい。
また、PCI Expressの規格では、レーン(Lane)数を動的に変更することが許容されており、レーン(Lane)数が少なく、ASIC5内のマスタであるDMAC11a〜11dの要求発行能力がPCI Express7のスループットよりも大きい場合においては、アービタ12で要求が競合するので、上記追い越し機能が冗長となり、無駄なタイムロスが発生することになる。
そこで、本実施例のASIC5のアービタ12は、PCIe I/F回路13からのリアルタイムのレーン(Lane)数の情報に基づいて追い越し機能の有効/無効を制御して、冗長なタイムロスを削減する。
そして、ステップS108で、対向デバイスであるPCIe I/F回路31のフローコントロール用バッファ32に充分な空きがないときには、アービタ12は、バーストライト転送の分割を行うことができないと判断して、バーストライトのデータの転送を継続して、バーストライト転送を完了し(ステップS107)、バーストライト転送が完了すると、ステップS102に戻って上記同様の処理を繰り返し行う(ステップS102〜S108)。
ステップS108で、対向デバイスであるPCIe I/F回路31のフローコントロール用バッファ32に充分な空きがあるときには、アービタ12は、図3に示すように、バーストライト転送の要求サイズがステップS101で設定した設定最小データサイズ以下であるかチェックする(ステップS109)。ステップS109で、設定最小データサイズ以下であるときには、アービタ12は、バーストライト転送を中断すると、不必要にバーストライト転送が分割されると判断して、バーストライトのデータの転送を継続して、バーストライト転送を完了し(ステップS107)、バーストライト転送が完了すると、ステップS102に戻って上記同様の処理を繰り返し行う(ステップS102〜S108)。この場合、バーストライト転送が完了した時点で、リード要求をPCIe I/F回路13に渡して、PCIe I/F回路13がリードコマンドを送信伝送回路7tを介してMCH3のPCIe I/F回路31に送信して、ステップS102に戻って上記同様の処理を繰り返し行うことで、ステップS103で、優先度の高いリードが存在することとなり、このリードコマンドの発行を行う(ステップS104)。このようにすることで、細切れのパケットの発生を防止して、送信側の転送効率の低下を回避することができる。
ステップS109で、バーストライト転送の要求サイズが設定最小データサイズを超える場合には、アービタ12は、該設定最小データサイズまでバーストライト転送を行った後に、該バーストライト転送を中断し、後続のリード要求をPCIe I/F回路13に渡して、PCIe I/F回路13がリードコマンドを送信伝送回路7tを介してMCH3のPCIe I/F回路31に送信して、ステップS106に戻って、バーストライト転送のライト要求よりも優先度の高いリード要求があるか否かのチェックから上記同様に処理する(ステップS106〜S109)。
すなわち、画像形成装置1は、図4に示すように、アービタ12が、優先度の低いマスタであるDMAC11a〜11d、例えば、DMAC11aからのライト要求を受付けて、バーストライト転送を開始しても、他の優先度の高いDMAC11b〜11d、例えば、DMAC11bからリード要求を受け付けると、バーストライト転送を分割して中断し、先にリード要求を発行する。
したがって、意図されている要求発行の優先順位を、実際のデータ転送に反映させることができ、特定のマスタであるDMAC11a〜11dに対して、意図する転送性能を発揮させて、システム全体のスループットを向上させることができる。
また、アービタ12は、PCIe I/F回路13にリードコマンドを発行させると、その後、分割したバーストライトに続くバーストライトのライトパケットを発行して、バーストライト転送を継続する。アービタ12は、この場合、1つのバーストライト転送を分割して先行させるリードコマンドの回数を、追い越し許可数設定レジスタ22に設定されている追い越し許可数に限定し、1つのバーストライト転送において、追い越し許可数の回数だけリードコマンドを先行させると、リードコマンドの挿入を禁止する。
すなわち、DMAC11a〜11dのリード要求の発行能力が充分に高い場合、アービタ12は、連続してリード要求を発行することとなるが、このような場合、例えば、図5に示すように、DMAC11a〜11dのリード要求の発行能力が十分高い場合、DMAC11a〜11cがリードDMACとしてリード要求を発行し、優先度の低いDMAC11dがライト要求を発行する場合、DMAC11dからのライト要求によるバースト長が「8」のバーストライト転送を行っているときに、優先度の高いリードDMAC11a〜11cから連続してリード要求が発行されると、バーストライト転送が中断された状態で、連続してリード要求が発行されることとなる。なお、図5に示す「ライト8」、「ライト4」は、ASIC5内部でバースト長8、バースト長4で扱われるデータ長のライトを意味している。このような場合、図6に示すように、NP-HeaderのCreditを使い切ってしまい、フローコントロール(Flow Control)により、Update FC待ちとなって、送信伝送路7t側を使用できなくなってしまう事態が発生するおそれがある。
そこで、本実施例では、上述のように、アービタ12は、PCIe I/F回路13がPCIe I/F回路31からリアルタイムで受け取って通知してくるフローコントロール用バッファ32の空き状態、VC、レーン(Lane)数の利用状況からフローコントロール用バッファ32に充分な空きがあるか否かチェックし、図7に示すように、クレジット(Credit)が枯渇するおそれがある場合には、一時的に、リード要求の追い越し処理を中断(Disable)して、フローコントロール用バッファ32に充分な空きがある場合にのみ、バーストライト転送を分割してリード要求を挿入している。なお、図7に示す「ライト8」、「ライト4」は、図5の場合と同様の内容を意味している。
したがって、リード要求に所望の帯域を与えつつ、フローコントロール(Flow Control)による転送の抑制を回避することができ、PCIe7の転送効率を向上させることができる。
さらに、本実施例のアービタ12は、ライトアクセス中断時の最小データサイズを、予めデータサイズ設定レジスタ21に設定されている設定最小データサイズに規制して、この最小設定データサイズよりも大きいデータサイズのバーストライト転送中に、優先度の高いリード要求が発生した場合に、設定最小データサイズまでのバーストライト転送を完了させた後で、バーストライト転送を分割してリード要求を挿入している。
したがって、バーストライト転送が分割されるタイミングを最小限に抑制して、PCIeの送信伝送路7t側の転送レートを維持しつつ、PCIeの規格に準じた制約を考慮した規制を行って、細切れのパケットの発生を防ぎ、PCIeの送信伝送路7t及び受信伝送路7rの双方の転送効率を向上させることができる。
また、ステップS110でバーストライト転送を分割してリード要求を挿入する場合、アービタ12は、リード要求に先行するバーストライト転送と、該リード要求の後に転送するバーストライト転送を別個のパケットとして送信するため、パケットのヘッダに使用するアドレス情報、Byte Enable情報を、分割する前のバーストライト相当のデータがメモリ4に書かれるように適宜書き換えて、後段のPCIe I/F回路13に渡す。
このように、本実施例の画像形成装置1は、ASIC5のアービタ12が、DMAC11a〜11dからのライト要求にかかるライトデータを、PCIe伝送路7を経由させてMCH3のPCIe I/F回路31にバーストライト転送中に、該バーストライト転送のライト要求よりも優先度の高いリード要求がDMAC11a〜11dから発行されると、該バーストライト転送を分割して中断し、該リード要求を転送させた後に、中断した該バーストライト転送の後続データのバーストライト転送を再開している。
したがって、バーストライト転送中でも、優先度の高いリード要求がくると、直ちにリード要求を優先して処理して、スプリットトランザクションのプロトコルでの大きな問題であるリード要求の合間に入ってきた優先度の低いバーストライトによる遅延の影響を受けることなく、バーストライト転送におけるデータ転送効率(特に、PCIe7の受信側伝送路7rの利用効率)を適切に向上させることができ、意図する転送性能を確保することができる。
また、本実施例の画像形成装置1は、ASIC5のアービタ12が、対向デバイスであるPCIe I/F回路31においてリード要求の発行が抑制されているか否かを、PCIe I/F回路13を介して取得し、対向デバイスであるPCIe I/F回路31でリード要求の発行が抑制されていると、バーストライト転送の分割を禁止して、該バーストライト転送をそのまま継続させている。
したがって、優先度の高いリード要求を大量に発行した場合に、Flow Controlの概念により、対向デバイスのFlow Controlバッファ(Non-Posted Header Buffer)に空きができるまで、リード要求は発行できなくなってしまって、アービタ12が本来送信できるはずのライト要求も発行が滞ってしまい、リード要求のフローコントロール用バッファ32が空くまでPCIe伝送路7の送信側7tが使用できなくなってしまう現象が発生することを未然に防止することができ、意図する転送性能を確保することができる。
さらに、本実施例の画像形成装置1は、ASIC5のアービタ12が、スプリットトランザクションの伝送路がPCI Express(PCIe)の伝送路7であり、対向デバイスが、PCI Express I/F回路(PCIe I/F回路)31であって、対向デバイスであるPCIe I/F回路31からPCI ExpressのFlow Control(フローコントロール)情報を取得してリード要求の発行が抑制されているか否か検知している。
したがって、PCIeの状態を適切に把握して、優先度の高いリード要求のバーストライト転送への分割挿入を行うことができ、意図する転送性能をより一層適切かつ確実に確保することができる。
また、本実施例の画像形成装置1は、ASIC5のアービタ12が、バーストライト転送の分割の最小データサイズの設定されるデータサイズ設定レジスタ21を備えており、該データサイズ設定レジスタ21に設定される最小データサイズに基づいてバーストライト転送を分割している。
したがって、優先度が高いリード要求が発行された場合にも、すぐにバーストライト転送を中断せずに、バーストライト転送の分割サイズとして、最小データサイズ以上のデータサイズを確保することで、データサイズが小さいことによってパケットのヘッダ部分のオーバーヘッドが大きくなって伝送路の転送効率が低下することを、適切に防止することができ、意図する転送性能を確保しつつ、送信側の伝送路7tの転送性能が低下することを回避することができる。
さらに、本実施例の画像形成装置1は、スプリットトランザクションの伝送路がPCI Expressであり、アービタ12が、対向デバイスと仮想的に直結するリンクであるVC(バーチャルチャネル:Virtual Channel)の情報または/及びレーン数に基づいて、バーストライト転送を分割してリード要求を挿入して転送するか、該バーストライト転送を継続するかを制御している。
したがって、バーストライト転送を分割してリード要求を挿入する追い越し機能をVCやレーン数で代替できるときには、追い越し機能を行わずに、より一層処理速度の向上を図ることができる。
また、本実施例の画像形成装置1は、ASIC5のアービタ12が、1つのバーストライト転送に対するリード要求の最大挿入回数が設定される追い越し許可数設定レジスタ22を備えており、ソフトウェアによって該追い越し許可数設定レジスタ22に設定される最大挿入回数だけ1つのバーストライト転送にリード要求を挿入すると、該バーストライト転送に対するリード要求の挿入を禁止して、該バーストライト転送を最終データまで実行させている。
したがって、優先度の高いリード要求が発行されるたびに、無制限にバーストライト転送を分割することでライトパケットの数が増加して、対向デバイスであるPCIe I/F回路31のフローコントロール用バッファ(Posted Header Buffer)32に空きができるまで、ライト要求が発行できずに、本来、送信できるはずのリード要求の発行が滞ってしまって、ライト要求のフローコントロール用バッファ32が空くまで送信側伝送路7tが使用できなくなってしまうことを、バーストライト転送を分割するタイミングを最小限に抑え、送信側伝送路7tの転送レートを維持しつつPCI Expressの規格に準じた制約を考慮に入れた制御を行うことで、適切に防止することができ、送信側伝送路7t及び受信側伝送路7r双方の転送効率を向上させることができる。
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、スプリットトラ−ンザクションのプロトコルでバーストライト転送を行う複合装置、プリンタ装置、コンピュータ等に適用されるデータ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に利用することができる。
1 画像形成装置
2 CPU
3 MCH
4 メモリ
5 ASIC
6 プロッタ部
7 PCIe
11a〜11d DMAC
12 アービタ
13 PCIe I/F回路
21 データサイズ設定レジスタ
22 追い越し許可数設定レジスタ
31 PCIe I/F回路
32 フローコントロール用バッファ
特開2008−250985号公報

Claims (7)

  1. リード要求を発行するリードマスタと、ライト要求を発行するライトマスタと、前記ライトマスタから発行された前記ライト要求と前記リードマスタから発行された前記リード要求を調停して当該ライト要求と該リード要求を対向デバイスに転送するとに、当該ライト要求にるライトデータをバーストライト転送する調停手段と、前記対向デバイスにおける前記リード要求の発行が抑制されているか否かを検知する検知手段と、を備えたデータ転送装置であって、
    前記調停手段は、前記バーストライト転送中に、該バーストライト転送の前記ライト要求よりも優先度の高い前記リード要求が前記リードマスタから発行された場合は当該バーストライト転送に係るデータサイズが予め設定されたデータサイズよりも大きければ、当該データサイズまでの当該バーストライト転送を完了させた後、当該バーストライト転送を分割して中断し、当該リード要求を挿入後、中断した該バーストライト転送の後続データについて当該バーストライト転送を再開させる一方、前記検知手段が前記対向デバイスで前記リード要求の発行が抑制されていることを検知した場合は、当該バーストライト転送を分割せずに、当該バーストライト転送をそのまま継続させることを特徴とするデータ転送装置。
  2. 請求項1記載のデータ転送装置において、前記調停手段は、前記対向デバイスの有するPCI Express I/Fへの転送をスプリットトランザクションの伝送路であるPCI Expressを経由して行い、前記検知手段は、前記対向デバイスの前記PCI Express I/Fから前記PCI ExpressのFlow Control情報を取得して前記リード要求の発行が抑制されているか否か検知することを特徴とするデータ転送装置。
  3. 請求項1又は2記載のデータ転送装置において、前記調停手段は、前記対向デバイスと仮想的に直結するリンクであるバーチャルチャネルの情報及びレーン数の少なくとも一方に基づいて、前記バーストライト転送を分割して前記リード要求を挿入して転送するか、或いは当該バーストライト転送を継続するかを制御することを特徴とするデータ転送装置。
  4. 請求項1〜3の何れか1項記載のデータ転送装置において、前記バーストライト転送の1つに対する前記リード要求の最大挿入回数を設定する挿入回数設定手段を備え、前記調停手段は、前記挿入回数設定手段で設定されている最大挿入回数だけ前記バーストライト転送の1つに前記リード要求を挿入すると、当該バーストライト転送に対する当該リード要求の挿入を禁止して、当該バーストライト転送を最終データまで実行させることを特徴とするデータ転送装置。
  5. リードマスタにより、リード要求を発行するリード要求処理ステップと、ライトマスタにより、ライト要求を発行するライト要求処理ステップと、調停手段により、前記リード要求処理ステップで発行された前記リード要求と前記ライト要求処理ステップで発行された前記ライト要求を調停して当該ライト要求と当該リード要求とを対向デバイスに転送すると共に、当該ライト要求に係るライトデータをバーストライト転送する調停処理ステップと、検知手段により、前記対向デバイスにおける前記リード要求の発行が抑制されているか否かを検知する検知ステップと、を有するデータ転送制御方法であって、
    前記調停処理ステップでは、前記調停手段により、前記バーストライト転送中に、当該バーストライト転送の前記ライト要求よりも優先度の高い前記リード要求が前記リードマスタから発行された場合は、当該バーストライト転送に係るデータサイズが予め設定されたデータサイズよりも大きければ、当該データサイズまでの当該バーストライト転送を完了させた後、当該バーストライト転送を分割して中断し、当該リード要求を挿入後、中断した当該バーストライト転送の後続データについての当該バーストライト転送を再開させる一方、前記検知手段が前記対向デバイスで前記リード要求の発行が抑制されていることを検知した場合は、当該バーストライト転送を分割せずに、当該バーストライト転送をそのまま継続させることを特徴とするデータ転送制御方法
  6. コンピュータに実行させるデータ転送制御プログラムであって、
    リードマスタにより、リード要求を発行するリード要求処理ステップの手順と、ライトマスタにより、ライト要求を発行するライト要求処理ステップの手順と、調停手段により、前記リード要求処理ステップで発行された前記リード要求と前記ライト要求処理ステップで発行された前記ライト要求を調停して当該ライト要求と当該リード要求とを対向デバイスに転送すると共に、当該ライト要求に係るライトデータをバーストライト転送する調停処理ステップの手順と、検知手段により、前記対向デバイスにおける前記リード要求の発行が抑制されているか否かを検知する検知ステップの手順と、を有し、
    前記調停処理ステップの手順では、前記調停手段により、前記バーストライト転送中に、当該バーストライト転送の前記ライト要求よりも優先度の高い前記リード要求が前記リードマスタから発行された場合は、当該バーストライト転送に係るデータサイズが予め設定されたデータサイズよりも大きければ、当該データサイズまでの当該バーストライト転送を完了させた後、当該バーストライト転送を分割して中断し、当該リード要求を挿入後、中断した当該バーストライト転送の後続データについての当該バーストライト転送を再開させる一方、前記検知手段が前記対向デバイスで前記リード要求の発行が抑制されていることを検知した場合は、当該バーストライト転送を分割せずに、当該バーストライト転送をそのまま継続させることを特徴とするデータ転送制御プログラム
  7. 請求項6記載のデータ転送制御プログラムにおける各ステップの手順をコンピュータにより読み取り可能に記録したことを特徴とする記録媒体
JP2009208943A 2009-09-10 2009-09-10 データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体 Expired - Fee Related JP5293516B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009208943A JP5293516B2 (ja) 2009-09-10 2009-09-10 データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009208943A JP5293516B2 (ja) 2009-09-10 2009-09-10 データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2011059979A JP2011059979A (ja) 2011-03-24
JP5293516B2 true JP5293516B2 (ja) 2013-09-18

Family

ID=43947535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009208943A Expired - Fee Related JP5293516B2 (ja) 2009-09-10 2009-09-10 データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP5293516B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10412017B2 (en) 2017-09-13 2019-09-10 Kabushiki Kaisha Toshiba Transfer device, transfer method, and computer program product

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6736954B2 (ja) 2016-04-19 2020-08-05 株式会社リコー 画像形成装置、画像形成システム及び画像形成方法
JP6984413B2 (ja) * 2017-12-28 2021-12-22 株式会社リコー 画像形成装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5145929B2 (ja) * 2007-03-08 2013-02-20 株式会社リコー 半導体集積回路及び画像処理装置
JP2008293487A (ja) * 2007-04-27 2008-12-04 Panasonic Corp プロセッサシステム、バス制御方法および半導体装置
JP5293283B2 (ja) * 2009-03-09 2013-09-18 株式会社リコー 半導体集積回路及びメモリアクセス制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10412017B2 (en) 2017-09-13 2019-09-10 Kabushiki Kaisha Toshiba Transfer device, transfer method, and computer program product

Also Published As

Publication number Publication date
JP2011059979A (ja) 2011-03-24

Similar Documents

Publication Publication Date Title
JP4778199B2 (ja) データ転送装置及びデータ転送方法
US7882294B2 (en) On-chip bus
US8463969B2 (en) Extended message signal interrupt
US7702841B2 (en) Semiconductor integrated circuit and image processing apparatus having the same
WO2011089660A1 (ja) バス調停装置
US8370552B2 (en) Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
US20020161959A1 (en) On-chip inter-subsystem communication
US20130007321A1 (en) Requests and data handling in a bus architecture
US20070022238A1 (en) PCI arbiter
JP3664664B2 (ja) バスシステム及びそのバス仲裁方法
JP5145929B2 (ja) 半導体集積回路及び画像処理装置
JP2008086027A (ja) 遠隔要求を処理する方法および装置
US8402180B2 (en) Autonomous multi-packet transfer for universal serial bus
US20140047206A1 (en) Information processing apparatus, memory control apparatus, and control method thereof
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
JP5293516B2 (ja) データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
JP2011065630A (ja) データ転送制御装置及びデータ転送制御方法
US9910812B2 (en) Initiating multiple data transactions on a system bus
KR100475438B1 (ko) 데이터 버스 시스템 및 버스간 크로스 액세스 방법
JP2008108126A (ja) データ転送制御装置及びそのバスアクセス調停方法
JP5417305B2 (ja) 情報処理装置
JP7435055B2 (ja) 通信装置、通信装置の制御方法、および集積回路
JP7259537B2 (ja) 情報処理装置
JP4362199B2 (ja) データ伝送装置
JP2008165463A (ja) バス制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120612

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120615

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130424

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20130424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130527

R151 Written notification of patent or utility model registration

Ref document number: 5293516

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees