[go: up one dir, main page]

JP2019016063A - データ転送装置及びデータ転送方法 - Google Patents

データ転送装置及びデータ転送方法 Download PDF

Info

Publication number
JP2019016063A
JP2019016063A JP2017131461A JP2017131461A JP2019016063A JP 2019016063 A JP2019016063 A JP 2019016063A JP 2017131461 A JP2017131461 A JP 2017131461A JP 2017131461 A JP2017131461 A JP 2017131461A JP 2019016063 A JP2019016063 A JP 2019016063A
Authority
JP
Japan
Prior art keywords
data
transfer
unit
command
virtual channel
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
Application number
JP2017131461A
Other languages
English (en)
Inventor
渡邊 裕人
Hiroto Watanabe
裕人 渡邊
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 JP2017131461A priority Critical patent/JP2019016063A/ja
Priority to US16/018,786 priority patent/US10430370B2/en
Publication of JP2019016063A publication Critical patent/JP2019016063A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)

Abstract

【課題】対向デバイスのシリアルインタフェースのバーチャルチャネルの数が、単一であっても複数であってもデータ転送を可能とすること。【解決手段】データ転送装置は、シリアルインタフェースを用いて複数のデータの転送を行い、前記複数のデータの転送先装置のバーチャルチャネルに関する情報を設定する設定部と、前記複数のデータを単一のバーチャルチャネルを使用して送受信する第1の通信部と、前記複数のデータを複数のバーチャルチャネルを使用して送受信する第2の通信部と、前記転送先装置のバーチャルチャネルに関する情報に基づいて、第1の通信部と、第2の通信部とのいずれを使用するか切り替える。【選択図】図12

Description

本発明は、データ転送装置及びデータ転送方法に関する。
画像形成装置の画像データの転送性能を向上させるために高速シリアルインタフェースを用いることが増えている。代表的な高速シリアルインタフェースとして、PCI Expressがある。PCI Expressの転送は、パケット単位で行われる。当該パケットの制御にはバーチャルチャネル(VC)と呼ばれる同一リンクを共用する複数のデータフローバッファを使用するメカニズムが使われる。各バーチャルチャネルは独立したバッファ等のリソースを持ち、リンク上で独立した制御が行われる。バーチャルチャネルにはトラフィッククラス(TC)が関連付けられる。トラフィッククラスによりバーチャルチャネルに優先度を付与することができる。
バーチャルチャネルは規格上、8つまで使用可能であるが、1つのバーチャルチャネルは必須であり、その他のチャネルはオプションである。PCI Expressの仕様としてVC0とTC0は固定して関連付けられている。VCとTCを関連付ける仕組みを用いてLSI等のデバイスにトラフィッククラスごとに異なるバーチャルチャネルの割り当てを行い、データ転送の優先順位をつける技術は既に知られている(例えば特許文献1)。
しかしながら、従来のPCI Expressのインタフェースを搭載したデバイスで複数のバーチャルチャネルを使用する構成は、対向デバイスの仕様によってデータ通信が成立せず、システムとして破綻することがある。例えば、あるデバイスが2chのバーチャルチャネルを有し、VC0に読み取りデータの転送、VC1に書き込みデータの転送が固定で割り当て転送を行う仕様の場合、対向デバイスも必ず、2chのバーチャルチャネルをサポートしなければならない。また、多くの汎用SoC(System On Chip)はVC0のみ(1chのみ)サポートする仕様である。そのため、対向デバイスの仕様により、データ転送が成立しないという問題がある。
本発明は上記の点に鑑みてなされたものであって、対向デバイスのシリアルインタフェースのバーチャルチャネルの数が、単一であっても複数であってもデータ転送を可能とすることを目的とする。
そこで上記課題を解決するため、データ転送装置は、シリアルインタフェースを用いて複数のデータの転送を行い、前記複数のデータの転送先装置のバーチャルチャネルに関する情報を設定する設定部と、前記複数のデータを単一のバーチャルチャネルを使用して送受信する第1の通信部と、前記複数のデータを複数のバーチャルチャネルを使用して送受信する第2の通信部と、前記転送先装置のバーチャルチャネルに関する情報に基づいて、第1の通信部と、第2の通信部とのいずれを使用するか切り替える。
対向デバイスのシリアルインタフェースのバーチャルチャネルの数が、単一であっても複数であってもデータ転送を可能とすることができる。
本発明の実施の形態における画像形成装置1000のシステム構成例を示す図である。 本発明の実施の形態におけるシステムコントローラ10の構成例を示すブロック図である。 PCI Expressシステムの構成例を示す図である。 PCI Expressの階層構造を示す図である。 PCI Expressのトランザクションパケットのフォーマットを示す図である。 PCI Expressのバーチャルチャネルの構成を示す図である。 バーチャルチャネル2chを用いた構成例を示す図である。 バーチャルチャネル2ch構成時の動作を説明するためのフローチャートである。 バーチャルチャネル1chを用いた構成例を示す図である。 バーチャルチャネル1ch構成時の動作を説明するためのフローチャートである。 本発明の実施の形態におけるバーチャルチャネルの設定を行うレジスタの例を示す図である。 本発明の実施の形態におけるバーチャルチャネル設定による転送切り替え動作を説明するための図である。 本発明の実施の形態におけるバーチャルチャネル1ch時の転送コマンド・データ制御部の構成例を示す図である。 本発明の実施の形態における転送優先度設定部の設定を行うレジスタの例を示す図である。 本発明の実施の形態における対向デバイスの受信コマンドバッファの例を示す図である。 本発明の実施の形態におけるWR_CMDの間隔を調整する機能を有効化/無効化するレジスタの例を示す図である。 本発明の実施の形態におけるWR_CMDの間隔を指定するレジスタの例を示す図である。 本発明の実施の形態におけるバーチャルチャネル2ch時の転送コマンド・データ制御部の構成例を示す図である。 本発明の実施の形態におけるバーチャルチャネルの切替を実施する動作を説明するためのフローチャートである。
以下、図面に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態における画像形成装置1000のシステム構成例を示す図である。図1に示されるように、画像形成装置1000は、システムコントローラ10、画像メモリ11、PCIeバス(Peripheral Component Interconnect express Bus)12、スキャナユニット200、ADF(Auto Document Feeder)201、プリンタ202、ソータ203、操作ボード204及びファクシミリボード205を有する。
システムコントローラ10は、画像形成装置1000全体を制御する。システムコントローラ10には、オペレータに対して表示機能と機能設定機能と情報入力機能とを提供する操作ボード204が接続されている。また、システムコントローラ10は、通常のコピー処理に関する制御の他に、LAN(Local Area Network)を介してPC(Personal Computer)300等の外部機器から画像データ又はプリント指示コマンド等を受信し、画像データをプリントアウトする印刷制御も行う。さらに、システムコントローラ10は、画像データ及びコマンドをLAN及びパラレルI/Fを介して受信して動作するために、LANのコントローラ及びパラレルI/F等を備える。
ファクシミリボード205は、ファクシミリ送信指示があるときに、システムコントローラ10を介してスキャナユニット200を駆動して原稿の画像を読み込み、当該画像のデータをPBX(Private Branch eXchange)経由でファクシミリ通信回線に送信する。また、ファクシミリボード205は、通信回線からのファクシミリ呼び出しに応じて画像データを受信し、システムコントローラ10を介して画像形成装置1000を駆動し、受信した画像データをプリントアウトできる。
スキャナユニット200及びプリンタユニット202は、汎用バスであるPCIeバス12を介して相互に通信を行う。スキャナユニット200は、内部の画像処理ユニット(IPU、Image Processing Unit)によって、読み取り画像デ−タの光学系及びデジタル信号への量子化に伴う信号劣化を補正し、画像デ−タをプリンタユニット202に送信し、システムコントローラ10に接続された画像メモリ11に書き込む。
また、画像データを画像メモリ11に蓄積し、画像処理を行う場合は、システムコントローラ10において、画像メモリ11のアクセス制御、ホストPC300のプリント用データの展開(文字コ−ド/キャラクタビット変換)、メモリ有効活用のための画像データの圧縮/伸張、画像補正等の画像処理が行われる。
上記のような画像データの流れにおいて、システムコントローラ10のバス制御によるPCIeバス12上のデータ転送により、画像形成装置1000の複合機能を実現する。複合機能の1つであるFAX送信機能は、スキャナユニット200の読み取り画像データを、PCIeバス12を経由してファクシミリボード205へ転送する。システムコントローラ10は、当該バス制御機能によって、画像データ処理に係る各ジョブにおいて、スキャナユニット200、プリンタユニット202、画像メモリ11及びファクシミリボード205へのPCIeバス12の使用権を割り振る。
ADF201は、自動原稿送り装置であり、原稿を自動的に給紙する装置である。ソータ203は、複数ページを複数部で印刷する場合、1部ごとに揃った状態で出力する装置である。
図2は、本発明の実施の形態におけるシステムコントローラ10の構成例を示すブロック図である。図2に示されるように、システムコントローラ10は、内部バス51、CPU(Central Processing Unit)52、ROM(Read Only Memory)/RAM(Random Access Memory)53、外部メモリI/F部54、通信系I/F部55、内部バスI/F部56、PCIeI/F部57、画像出力用DMAC(Direct Memory Access Controller)58、圧縮伸長器59及び画像処理部60を有する。
システムコントローラ10では、内部バス51を介して、CPU52、ROM/RAM53、外部メモリI/F部54及び通信系I/F部55が相互に接続されている。また、内部バス51は、内部バスI/F部56及びPCIeI/F部57を介してシステムコントローラ10をPCIeバス12に接続させている。さらに、システムコントローラ10は、内部バス51に加えてPCIeI/F部57にも接続された画像出力用DMAC58及び画像処理部60も内蔵している。画像出力用DMAC58及び画像処理部60は、内部バス51を介してCPU52や外部メモリI/F部54等に接続されている。
CPU52は、各種演算処理を実行し、システムの全ての設定及び画像出力用DMAC58、圧縮/伸長器59、画像処理部60の起動を制御する。また、CPU52はホストPC300からの画像データの受信時には、プリンタ言語に基づいて外部メモリI/F部54を介して画像メモリ11に描画を行う。
ROM/RAM53のROM部には、主にCPU52のための動作制御プログラムが格納されている。ROM/RAM53のRAM部は、画像保存用のメモリとして機能する他に、CPU52の演算結果又は種々のデータの一次的な記憶場所としても使用される。記憶用メモリとしては、外部メモリI/F部54を経由して画像メモリ11も使用される。
通信系I/F部55は、ホストPC300、操作ボード204及びファクシミリボード205と、システムコントローラ10との間のI/F部であり、送受信されたデータは、画像メモリ11経由あるいは内部レジスタ経由でCPU52と交信される。
内部バスI/F部56は、PCIe I/F部57と内部バス51との間のインタフェースであり、PCIeバス12のマスタから指定されたアドレス及びデータを受けて、外部メモリI/F部54を経由して外部メモリに入出力を行う。
PCIe I/F部57は、PCIeバス12のプロトコルに準じて、PCIeバスマスタとデータのやりとりを行う。
画像出力用DMAコントローラ58は、印刷時のDMAコントローラとして機能する。すなわち、CPU52により起動され、予め指定された領域の外部メモリから画像データを読み出してPCIe I/F部57に随時ハンドシェークを行い画像データを出力する。
圧縮/伸長器59は、CPU52によって起動され、様々なデータの圧縮または伸長に使用されて省メモリ化のために利用される。
画像処理部60は、エッジ強調処理等の処理に加えて、画像データのスキュー又は歪みを補正する仕組みを持つ。
図3は、PCI Expressシステムの構成例を示す図である。図3に示されるように、CPUに接続されるルートコンプレックスは、システムのI/O階層で最上位に位置する。ルートコンプレックスは、複数のPCI Expressポートを持ち、メモリに接続される。エンドポイントは、PCI ExpressのI/O構造で末端に位置するデバイスである。スイッチは、PCI Expressのポートを拡張するために使用される。PCIeグラフィックスは、例えば、PC等に使用されるグラフィックスボードである。PCIブリッジは、従来のバス規格であるPCIと接続するために使用される。レガシーエンドポイントは、従来のバス規格であるPCIによって接続されるデバイスである。
図4は、PCI Expressの階層構造を示す図である。図4に示されるように、PCI Expressでは階層構造を採用し、各層ごとに仕様を定義している。トランザクション層は、送信又は受信のメッセージ及び割り込みを規定している。データリンク層は、CRC(Cyclic Redundancy Check)及びエラー時のリトライについて規定している。物理層では、最小転送単位であるパケットの送受信、初期化及びコンフィグレーションを規定している。階層構造とすることで、層単位でのアップグレードが可能である。例えば、物理層のアップグレードは、他の層に影響を与えることなく可能である。
図5は、PCI Expressのトランザクションパケットのフォーマットを示す図である。PCI Expressは、パケット単位で通信を行う。図5は、トランザクションパケットのフォーマットを示している。トランザクションパケットは、物理層から転送されるときに、データリンク層パケットに分割される。パケットは、レーンと呼ばれる通信路で転送される。図5に示されるように、物理層は、トランザクションパケットのフォーマット全体に対応し、データリンク層は、シーケンスNo、ヘッダ、データ、LCRC(Link CRC)に対応し、トランザクション層は、ヘッダ及びデータに対応する。
図6は、PCI Expressのバーチャルチャネルの構成を示す図である。PCI Expressは、パケットのフロー制御を行うためにバーチャルチャネルの概念を用いる。バーチャルチャネルは、異なるサービス品質のトラフィックを提供するための仕組みで、各バーチャルチャネルは独立したリソース(バッファ又はキュー)を持ち、独立した制御が行われる。当該制御によって、特定のバーチャルチャネルのバッファがフルになっても、他のバーチャルチャネルの転送を行うことができる。すなわち、PCI Expressは、物理的には1つのリンクを仮想的に複数に分けて使用することができる。図6Aの破線の楕円で囲った部分を示したものが、図6Bである。図6Bは、n個のバーチャルチャネルが一つのリンクを共用する例である。
PCI Expressの規格上、最大で8つまでバーチャルチャネルを持つことができる。1chのバーチャルチャネルの使用は必須でありその他はオプションである。そのため、対向デバイスの仕様を検討してシステムとしてバーチャルチャネル数が決定される必要がある。ただし、汎用のSoCは、バーチャルチャネルを1chのみしかサポートしていないものが多い。
図7は、バーチャルチャネル2chを用いた構成例を示す図である。図7は、画像形成装置においてバーチャルチャネル2chを使用した画像データ転送システムの実装例である。図7に示される数字はそれぞれの転送順序を示しており、VC0とVC1で独立して動作する。図2に示されるPCIe I/F部57に含まれるPCI Expressのプロトコル制御部は、転送コマンド・データ制御部及びIP部を有する。一般にPCI Expressのインタフェースの実装には、IP Core(Intellectual Property Core)がIP部に用いられる。図7に示される例では、プロトコル制御部は、読み取りデータをVC0に、書き込みデータをVC1に、アサインしている。これにより転送コマンド・データ制御部は、読み取りデータと書き込みデータを独立して制御することができる。この例では、VC0に対しては読み取りデータ転送のためのコマンドを発行している(1)。転送コマンド・データ制御部は、当該コマンドに対する応答を受けると実際のデータ転送(送信動作)を開始する(2)。同じように、VC1chに対しては書き込みデータ転送のためのコマンドを発行する(1)。当該コマンドに対する応答を受け、対向デバイスからデータが転送されてくると転送コマンド・データ制御部は、書き込みデータを受信する(2)。プロトコル制御部は、これらのコマンド又はデータ転送をそれぞれのVCで独立に実行することができる。
パケットが、どのバーチャルチャネルを使用するかはトラフィッククラス(TC)によって決まる。バーチャルチャネルとトラフィッククラスのマッピングはソフトウェアによって設定することができるが、ハードウェアの規格上、マッピングは対向デバイスと一致している必要がある。上記の場合VC0にTC0(VC0とTC0は仕様で固定)、VC1にTC1をアサインしたマッピングは、対向デバイスも同様である必要がある。すなわち、対向デバイスは、2chのバーチャルチャネルをサポートしている必要がある。したがって、バーチャルチャネルを1chしかサポートしていないことの多い汎用SoCを対向デバイスとして用いてシステムを構築することは困難である。
図8は、バーチャルチャネル2ch構成時の動作を説明するためのフローチャートである。VC2ch構成時は、読み取りデータ転送と書き込みデータ転送は並列させて動作することができる。図8のS101から開始されるフローが読み取りデータ転送時のフロー、図8のS201から開始されるフローが書き込みデータ転送時のフローを示す。
読み取りデータ転送の場合は、ステップS101において、転送コマンド・データ制御部は、読み取りデータ転送コマンドをIP部に発行する。当該コマンドに対する受付応答がIP部から返ってくるまで、待ちのステータスが継続される(S102のNO)。応答を受信した場合(S102のYES)、転送コマンド・データ制御部は、読み取りデータの転送を開始する(S103)。データ転送中、IP部がデータ受付できないとき(S104のNO)には受付可能になる(S104のYES)まで待つ。全データを送信完了(S105のYES)するまで送信動作を繰り返して(S105のNO)転送終了(S106)となる。
書き込みデータ転送の場合は、ステップS201において、転送コマンド・データ制御部は、IP部に書き込みデータ転送コマンドをIP部に発行する。当該コマンドに対する受付応答がIP部から返ってくるまで、待ちのステータスが継続される(S202のNO)。応答を受信した場合(S202のYES)、書き込みデータの転送が始まる(S203)。IP部から有効データが返ってきたら(S204のYES)後段に転送する。全データを受信完了(S205のYES)するまで受信動作を繰り返して(S205のNO)転送終了(S206)となる。VC2ch構成のため、プロトコル制御部は、読み取り及び書き込みの二つの動作を、並行して実行することができる。
図9は、バーチャルチャネル1chを用いた構成例を示す図である。図9は、画像形成装置においてバーチャルチャネルを1chのみ使用した画像データ転送システムの実装例である。図9に示される数字は、コマンド又はデータのやりとりの順序を示している。当該順序は一例であり、要求に応じて順序は変わることがある。転送コマンド・データ制御部は、読み取りデータ転送又は書き込みデータの転送要求を受けてコマンドを発行する。この例では、転送コマンド・データ制御部は、最初に書き込みデータ転送のためのコマンドを発行する(1)。当該書き込みコマンドに対する受付応答を受信すると、転送コマンド・データ制御部は、書き込みデータの受信待ちの状態となる。この状態で読み取りデータの転送要求を受けると、読み取りデータ転送コマンドを発行する(2)。当該読み取りコマンドに対する応答が受信されると読み取りデータを送信する(3)。一方、書き込みデータが、転送コマンド・データ制御部から返ってきたら、当該書き込みデータを受信して(4)後段に出力する。
上記の動作を可能にするため、転送コマンド・データ制御部では、読み取りデータ転送要求と書き込みデータ転送要求の調停を行う。また、IP部に対するコマンドラインは共用しているが、送信又は受信のデータラインは個別に持っているため、読み取りデータの送信中に書き込みデータを受信した場合であっても転送は成立する。VC0はPCI Expressの規格上必ずサポートされるため、当該構成であれば対向デバイスによらず、システムが成立する。本発明の実施の形態では、図7のような複数のバーチャルチャネルを使用した構成と、図9のような単一のバーチャルチャネルを使用した構成とを共存させ、切替可能な構成を実現することができる。
図10は、バーチャルチャネル1ch構成時の動作を説明するためのフローチャートである。ステップS301において、転送コマンド・データ制御部は、転送要求を受け、当該要求が読み取りデータの転送要求(S302のYES)か、書き込みデータの転送要求(S302のNO)かを判断し、要求に応じた転送コマンドを発行する。転送コマンド・データ制御部は、VC1chのみの構成のため、いずれのコマンドもVC0に対して出力する。書き込みデータの転送コマンド(受信転送要求)(S303)の場合には、当該書き込みコマンドに対する受付応答(S304のYES)を待った(S304のNO)後、転送コマンド・データ制御部は、次のコマンドを発行可能な状態になる(S305)。発行したコマンドに対する応答は、対向デバイスのレイテンシ後にIP部に返ってくる。書き込みデータを受信するパスは独立して存在するため、転送コマンド・データ制御部は、IP部によるコマンド受付後に次の動作に移行することができる。
一方、読み取りデータ転送(送信転送要求)(S306)はコマンド受付後、VC2ch構成時と同様にデータを転送する。すなわち、ステップS306からステップS307は、図8に示されるステップS101からステップS102と同様である。ステップS308において、IP部による転送コマンドの受付が完了すると、ステップS309からステップS312は、図8に示されるステップS103からステップS106と同様である。当該送信転送が完了すると、転送コマンド・データ制御部は、次の転送要求コマンドを発行することができる(S313のYES)。
図11は、本発明の実施の形態におけるバーチャルチャネルの設定を行うレジスタの例を示す図である。PCIeI/F部57でサポートされているバーチャルチャネルは、ソフトウェアにより図11に示されるレジスタで設定が可能である。PCIeI/F部57に含まれるプロトコル制御部のIP部は、図11に示されるレジスタを、サポートするバーチャルチャネルの数だけ有している。図11に示される例では、レジスタのADDRESS31に該当するリード及びライト可の「vc_enable」でバーチャルチャネルをイネーブルとするかディセーブルとするかを設定する。また、レジスタのADDRESS16〜18に該当するリードオンリーの「vc_id」は、VCを識別するIDである。当該IDにより、VC0〜VC8のいずれかが設定される。また、レジスタのADDRESS07〜00に該当するリード及びライト可の「vc_tc_map」でVC及びTCのマッピングを行う。当該マッピングが、対向デバイスと一致している必要がある。
例えば、VC0のレジスタの「vc_tc_map」に対して8'b0000_0001と設定した場合、VC0にTC0がマッピングされる。なお、PCI Expressの規格上、VC0に対してはTC0が、固定して関連付けられている。VC0のレジスタの「vc_tc_map」に対して8'b0000_0011と設定した場合、VC0にTC0とTC1の複数のTCがマッピングされる。同様に、VC1のレジスタの「vc_tc_map」に対して8'b0000_0010と設定すれば、VC1にTC1がマッピングされる。ただし規格上、一つのTCを複数のVCにマッピングすることはできない。
図12は、本発明の実施の形態におけるバーチャルチャネル設定による転送切り替え動作を説明するための図である。PCIeI/F部57に含まれるプロトコル制御部は、ソフトウェアによって、図11に示されるレジスタにVC及びTCを設定されると、当該設定に基づいて、転送先バーチャルチャネルの切り替えを行う。転送コマンド・データ制御部は、IP部から当該設定に係るVC情報を受け取り、転送コマンドを送出するVCを決定する。図12に示されるVC情報に基づく転送切り替え動作において、読み取りデータの転送は、VC2ch構成でもVC1ch構成でもVC0で実行される。一方、書き込みデータの転送は、VC2ch構成のときはVC1で行い、VC1ch構成のときはVC0で行う。このように、図11に示されるレジスタに設定されたVC情報から、転送コマンド・データ制御部は、コマンド発行先を変更して転送に使用するVCの切り替えを行うことができる。
図13は、本発明の実施の形態におけるバーチャルチャネル1ch時の転送コマンド・データ制御部の構成例を示す図である。転送コマンド・データ制御部は、調停部、転送優先度設定部、読み取りデータ転送部、書き込みデータ転送部及び応答データ解析部を有する。
図13においては、VCが1chのみに設定された場合の動作を示している。VCが1chであるか否かは、IP部から受けるVC情報により判断する。当該VC情報は、転送コマンド・データ制御部内の各子モジュール、すなわち、調停部、転送優先度設定部、読み取りデータ転送部、書き込みデータ転送部及び応答データ解析部に伝えられる。VCが1chのみしかない場合、読み取りデータ(送信データ)及び書き込みデータ(受信データ)のコマンド発行は、同一のパスを用いて実行される必要がある。読み取りデータ又は書き込みデータの転送要求があった場合に、読み取りデータ転送部及び書き込みデータ転送部は、それぞれ転送コマンドを送出する。送出された転送コマンドに転送優先度設定部は、当該転送コマンドの優先度情報を付加する。例えば、書き込みデータの読み出しが優先、といった情報を付加して調停部に出力する。調停部では、受信したコマンドの転送優先度の情報を参照して、書き込みデータの転送コマンドを発行する。
転送コマンドが、読み取りデータのライトの場合には、調停部は、転送コマンドに続いてデータを送出する。一方、書き込みデータのリードの転送要求の場合には、調停部が転送コマンド発行後、対向デバイスのレイテンシ分遅れて応答データが受信される。当該応答データは、応答データ解析部を経由して書き込みデータ転送部へ入力される。対向デバイスに対してデータの要求をする時に、一つ目の要求に対する応答データが返る前に、二つ目の要求を発行する場合、又は、異なるイニシエータ(マスタ)から複数のリード要求を発行する場合は、応答データがどの要求に対するものであるかの解析が必要となる。当該解析の機能を担うのが、応答データ解析部で、コマンド発行時に付加したタグと呼ばれる情報を管理して応答データの判別を行う。なお、転送優先度設定部が設定する優先度は図14のようなレジスタによって優先度の変更を行うこともできる。
図14は、本発明の実施の形態における転送優先度設定部の設定を行うレジスタの例を示す図である。図14に示される例では、レジスタのADDRESS00及び01に該当するリード及びライト可の「priority」で、転送優先度設定部が転送コマンドに付加する優先度を設定する。例えば、レジスタのADDRESS00及び01に、下記のように設定してもよい。
2'b00:書き込みデータのリード動作を優先する。
2'b01:読み取りデータのライト動作を優先する。
2'b10:書き込みデータと読み取りデータの優先度を均等にする。
図13に戻る。上述のように、単一のバーチャルチャネルで複数の種類のデータ転送を行うとき、競合するデータを調停することができる。各データに優先度を付与することができるので要求される転送性能に応じてデータの調停を行うことができる。当該優先度を変更可能にすることで効率のよい転送を実現する。
また、複数のイニシエータ(マスタ)から受信転送の要求コマンドを出した場合又は要求に対して応答データが返ってくる前に次の要求コマンドを出した場合に、どの要求コマンドに対する応答データかを判断することができる。
図15は、本発明の実施の形態における対向デバイスの受信コマンドバッファの例を示す図である。図15に示されるように、発行されたコマンドは、受信する対向デバイスのコマンドバッファに蓄積される。図15は、対向デバイスにとってWR_CMD(送信転送コマンド)がバッファに滞留している状態で、RD_CMD(受信転送コマンド)を受けた状態を示している。プロトコル制御部から出力されたコマンドは、対向デバイス側ではこのように滞留するケースも想定される。WR_CMDが滞留している状況で、RD_CMDが受信されてもWR_CMDの処理が終わるまでRD_CMDがバッファから出力されない。その場合、転送優先度設定部で優先度をつけて調停をしても応答データがなかなか返ってこないケースが生じ、転送性能に悪影響を及ぼす恐れもある。
そこで、プロトコル制御部は一度、WR_CMDを発行した後、指定された時間だけ、次のWR_CMDを発行しない機能を有する。当該機能は、極端に偏ってWR_CMDのみ、あるいはRD_CMDのみが続くことで、本来の転送優先度(転送性能に寄与)に影響を及ぼすことを防止する。状況によってRD_CMDが連続で出力される場合はあるが、WR_CMD側にコマンド発行間隔を制御できる機能が入っているため、当該間隔を調整することで、WR_CMDとRD_CMDのバランスを取ることが可能である。したがって、対向デバイスのコマンドバッファにWR_CMD(送信転送コマンド)のコマンドばかりが滞留することを抑制することができ、要求に対してレイテンシのかかる受信転送に悪影響を及ぼすことを防止することができる。当該機能のイネーブル/ディセーブルの切替及び次のコマンド発行までの間隔は、図16及び図17に示される図11と同様の構成のレジスタに値を設定して指定することができる。
図16は、本発明の実施の形態におけるWR_CMDの間隔を調整する機能を有効化/無効化するレジスタの例を示す図である。図16に示されるように、レジスタのADDRESS00に該当するリード及びライト可の「wr_cmd_ctl」で、WR_CMDの間隔を調整する機能をイネーブルとするかディセーブルとするかを設定する。
図17は、本発明の実施の形態におけるWR_CMDの間隔を指定するレジスタの例を示す図である。図17に示されるように、レジスタのADDRESS00〜31に該当するリード及びライト可の「wr_cmd_interval」で、WR_CMDの間隔を設定する。図16に示される「wr_cmd_ctl」が有効に設定されている場合、「wr_cmd_interval」に設定されているWR_CMDの間隔は有効となる。
図13に戻る。図13において、VCが1chのみの場合を示したが、仮に2chの構成で対向デバイスとシステムを成立させる場合には、調停部及び転送優先度設定部の機能をOFFにして転送を実施する。当該機能によりPCIeI/F部57は、対向デバイスの仕様に応じて、VCの構成を変更可能なハードウェアを実現できる。また、これによってVC1chのみしかサポートしない汎用SoCとの接続が可能となり、専用の対向LSIがなくてもシステム構築が可能となる。汎用SoCとの接続が可能になることで特定機能にスペックを絞り、安価なシステムの構築又は特別な対応も可能となる。
図18は、本発明の実施の形態におけるバーチャルチャネル2ch時の転送コマンド・データ制御部の構成例を示す図である。図16は、VCが2chのときの動作のイメージを示している。VC2chであるかの判断はVC1ch時と同様で、IP部から受けるVC情報により判断する。図16に示されるように、VC2ch構成の時には、転送コマンド又は転送データは、グレーアウトした転送優先度設定部と調停部をスルーして、対向デバイスに送信される。転送優先度設定部と調停部は、VC1ch時には機能する。
図19は、本発明の実施の形態におけるバーチャルチャネルの切替を実施する動作を説明するためのフローチャートである。
ステップS401において、ソフトウェアによりVCの設定を図11に示されるレジスタに対して行う。当該設定によって、各VCのイネーブル及びTCマッピングが決まる。当該設定の情報、すなわちVC情報を転送コマンド・データ制御部が受信する(S402)。VC/TCマッピングは、対向デバイスの設定と一致している必要がある。
ここでVCが複数(2ch)イネーブルされている場合(S403のNO)には、転送コマンド・データ制御部は、読み取りデータをVC0、書き込みデータをVC1でそれぞれのデータ転送を実施し(S410)、転送サイズ分のパケットを転送して(S411)転送終了となる。
一方、VC1chのみがイネーブルされている場合(S403のYES)は、ステップS404に進み、読み取りデータの転送開始手順を行う。ここでは、書き込みデータが、読み取りデータよりも優先度が高い場合を示す。転送優先度設定部は、読み取りデータに書き込みデータよりも低い転送優先度を設定する(S405)。調停部は、読み込みコマンドを受信したときに、書き込みデータの転送がある場合(S406のYES)には、当該書き込みデータの転送が終わるまで、読み取りデータのパケット送信を待つ。すなわち、調停部は、書き込みデータの転送が実行されていないタイミング(S406のNO)で、読み取りデータのパケットを送信する(S407)。再び、書き込みデータとバスの競合が生じた場合には、調停部は、パケット単位で調停を行う。転送サイズ分のパケットを転送するまでこの動作を繰り返し(S408のNO)、転送が終了する(S408のYES、S409)。
なお、図19に示されるフローチャートにおいて、VC1ch及びVC2chの場合を説明したが、VC2chはさらに多くのチャネルであってもよい。例えば、VC1ch及びVC4ch等であってもよく、VC4chの場合、読み取りデータはVC0及びVC1、書き込みデータはVC2及びVC3で、データ転送が行われてもよい。
上述のように、本発明の実施の形態によれば、バーチャルチャネルの有効又は無効を設定して、バーチャルチャネル数を可変にすることにより、対向デバイスとの通信を成立させることができる。すなわち、対向デバイスのシリアルインタフェースのバーチャルチャネルの数が単一でも複数でもデータ転送を可能とすることができる。
なお、本発明の実施の形態において、画像形成装置1000は、データ転送装置の一例である。対向デバイスは、転送先装置の一例である。IP部は、設定部の一例である。プロトコル制御部は、第1の通信部又は第2の通信部の一例である。転送コマンド・データ制御部は、発行部の一例である。WR_CMDは、書き込み転送コマンドの一例である。RD_CMDは、読み込み転送コマンドの一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
1000 画像形成装置
10 システムコントローラ
11 画像メモリ
12 PCIeバス
200 スキャナ
201 ADF
202 プリンタ
203 ソータ
204 操作ボード
205 ファクシミリボード
300 PC
51 内部バス
52 CPU
53 ROM/RAM
54 外部メモリI/F部
55 通信系I/F部
56 内部バスI/F部
57 PCIeI/F部
58 画像出力用DMAC
59 圧縮/伸長器
60 画像処理部
特開2007−272871号公報

Claims (7)

  1. シリアルインタフェースを用いて複数のデータの転送を行うデータ転送装置であって、
    前記複数のデータの転送先装置のバーチャルチャネルに関する情報を設定する設定部と、
    前記複数のデータを単一のバーチャルチャネルを使用して送受信する第1の通信部と、
    前記複数のデータを複数のバーチャルチャネルを使用して送受信する第2の通信部と、
    前記転送先装置のバーチャルチャネルに関する情報に基づいて、第1の通信部と、第2の通信部とのいずれを使用するか切り替えるデータ転送装置。
  2. 前記第1の通信部は、前記複数のデータのそれぞれに優先度を付与し、前記優先度に基づいて、前記複数のデータの転送順を決定する請求項1記載のデータ転送装置。
  3. 前記第1の通信部又は前記第2の通信部に前記データの送信をさせる読み込み転送コマンドと、前記第1の通信部又は前記第2の通信部に前記データの受信をさせる書き込み転送コマンドとを発行する発行部をさらに有し、
    前記第1の通信部又は前記第2の通信部は、前記書き込み転送コマンドが複数発行された場合、前記書き込み転送コマンドの応答として受信された複数のデータの解析を行い、前記応答として受信されたデータがいずれの前記書き込み転送コマンドによるものか決定する請求項1又は2記載のデータ転送装置。
  4. 前記発行部は、前記書き込み転送コマンドの発行を抑制する請求項3記載のデータ転送装置。
  5. 前記発行部は、書き込み転送コマンドを発行してから、次の書き込み転送コマンドを発行するまでの期間を設定可能である請求項4記載のデータ転送装置。
  6. 前記第2の通信部が送受信を行うために、前記発行部は、前記第1の通信部が使用する単一のバーチャルチャネルに、前記読み込み転送コマンドを発行し、前記単一のバーチャルチャネルとは異なるバーチャルチャネルに、前記書き込み転送コマンドを発行し、前記複数のデータに優先度を付与せず転送順を変更しない請求項3に記載のデータ転送装置。
  7. シリアルインタフェースを用いて複数のデータの転送を行うデータ転送方法であって、
    前記複数のデータの転送先装置のバーチャルチャネルに関する情報を設定する設定手順と、
    前記複数のデータを単一のバーチャルチャネルを使用して送受信する第1の通信手順と、
    前記複数のデータを複数のバーチャルチャネルを使用して送受信する第2の通信手順と、
    前記転送先装置のバーチャルチャネルに関する情報に基づいて、第1の通信手順と、第2の通信手順とのいずれを使用するか切り替えるデータ転送方法。
JP2017131461A 2017-07-04 2017-07-04 データ転送装置及びデータ転送方法 Pending JP2019016063A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017131461A JP2019016063A (ja) 2017-07-04 2017-07-04 データ転送装置及びデータ転送方法
US16/018,786 US10430370B2 (en) 2017-07-04 2018-06-26 Data transfer device, data transfer method, and a non-transitory recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017131461A JP2019016063A (ja) 2017-07-04 2017-07-04 データ転送装置及びデータ転送方法

Publications (1)

Publication Number Publication Date
JP2019016063A true JP2019016063A (ja) 2019-01-31

Family

ID=64903255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017131461A Pending JP2019016063A (ja) 2017-07-04 2017-07-04 データ転送装置及びデータ転送方法

Country Status (2)

Country Link
US (1) US10430370B2 (ja)
JP (1) JP2019016063A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019036217A1 (en) * 2017-08-18 2019-02-21 Missing Link Electronics, Inc. HETEROGENEOUS TRANSPORT BASED ON PACKETS
US11356388B2 (en) * 2017-08-18 2022-06-07 Missing Link Electronics, Inc. Real-time multi-protocol heterogeneous packet-based transport
JP6899852B2 (ja) * 2019-01-15 2021-07-07 株式会社日立製作所 ストレージ装置
JP2020154697A (ja) * 2019-03-20 2020-09-24 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法
WO2022098356A1 (en) * 2020-11-05 2022-05-12 Google Llc Memory-request priority up-leveling
US11449447B2 (en) 2020-12-31 2022-09-20 Texas Instruments Incorporated Latency and jitter for traffic over PCIe
US11733925B2 (en) * 2021-08-30 2023-08-22 Micron Technology, Inc. Enabling multiple data capacity modes at a memory sub-system
JP2023042893A (ja) 2021-09-15 2023-03-28 株式会社リコー 画像処理装置、読取装置、画像形成装置、および特徴量検出方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5425101A (en) * 1993-12-03 1995-06-13 Scientific-Atlanta, Inc. System and method for simultaneously authorizing multiple virtual channels
US6012142A (en) * 1997-11-14 2000-01-04 Cirrus Logic, Inc. Methods for booting a multiprocessor system
US20060013135A1 (en) * 2004-06-21 2006-01-19 Schmidt Steven G Flow control in a switch
US7969970B2 (en) * 2004-10-12 2011-06-28 Nxp B.V. Switch device and communication network comprising such switch device as well as method for transmitting data within at least one virtual channel
US7660917B2 (en) * 2006-03-02 2010-02-09 International Business Machines Corporation System and method of implementing multiple internal virtual channels based on a single external virtual channel
JP2007272871A (ja) 2006-03-10 2007-10-18 Ricoh Co Ltd 情報処理装置およびデータ通信方法
US7664904B2 (en) 2006-03-10 2010-02-16 Ricoh Company, Limited High speed serial switch fabric performing mapping of traffic classes onto virtual channels
JP2007241882A (ja) 2006-03-10 2007-09-20 Ricoh Co Ltd データ通信装置および画像形成システム
KR100809423B1 (ko) * 2006-09-29 2008-03-05 한국전자통신연구원 물리계층 멀티캐스트 스위치를 이용한 ip-tv 방송서비스 시스템 및 그 방법
US9065773B2 (en) * 2010-06-22 2015-06-23 Juniper Networks, Inc. Methods and apparatus for virtual channel flow control associated with a switch fabric
CN103348640B (zh) * 2011-07-22 2016-11-23 松下知识产权经营株式会社 中继装置
KR101857911B1 (ko) * 2017-03-06 2018-05-14 숭실대학교산학협력단 가상채널을 이용한 다중 채널 메모리 제어기

Also Published As

Publication number Publication date
US10430370B2 (en) 2019-10-01
US20190012290A1 (en) 2019-01-10

Similar Documents

Publication Publication Date Title
JP2019016063A (ja) データ転送装置及びデータ転送方法
US8838862B2 (en) Data transfer device, method of transferring data, and image forming apparatus
CN115718711A (zh) 一种dma数据传输的系统和方法
JP5108578B2 (ja) 画像処理コントローラ及び画像形成装置
US20050254085A1 (en) Image forming system
US10630865B2 (en) Image forming apparatus incorporating control circuitry for executing control method to arbitrate access between signals referring priority settings
US7966440B2 (en) Image processing controller and image forming apparatus
JP2009151752A (ja) バススイッチ,電子機器及びデータ転送方法
JP6843508B2 (ja) 情報処理装置及び情報処理装置の制御方法
JP5340058B2 (ja) 画像処理装置、その制御方法及びプログラム
US20090138647A1 (en) Bus switch, electronic equipment, and data transfer method
CN103841289A (zh) 图像形成装置
JP2021027435A (ja) ネットワーク制御装置、画像形成装置、ネットワーク制御装置の制御方法およびネットワーク制御装置の制御プログラム
JP2006293927A (ja) ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
JP4175974B2 (ja) 画像データ転送制御装置
JP6171367B2 (ja) スイッチ装置、画像処理装置、及び排他制御方法
JP6833491B2 (ja) 情報処理装置
JP2006119724A (ja) Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム
JP2001338286A (ja) 画像処理方法と装置
CN118733498B (zh) 内存控制器
JP2002215562A (ja) Dma制御装置及び方法
JPH11252150A (ja) ネットワーク接続装置、及びネットワーク接続制御方法
TWI230863B (en) Input/output system and method for transferring control and data, and arbiter for coordinating data communication
JP2002288115A (ja) Usbコントローラ
JP2005316621A (ja) バス調停装置および画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210416

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210824