JP2017156924A - 情報処理装置、データ転送装置、データ転送装置の制御方法、及びプログラム - Google Patents

情報処理装置、データ転送装置、データ転送装置の制御方法、及びプログラム Download PDF

Info

Publication number
JP2017156924A
JP2017156924A JP2016038733A JP2016038733A JP2017156924A JP 2017156924 A JP2017156924 A JP 2017156924A JP 2016038733 A JP2016038733 A JP 2016038733A JP 2016038733 A JP2016038733 A JP 2016038733A JP 2017156924 A JP2017156924 A JP 2017156924A
Authority
JP
Japan
Prior art keywords
memory control
control means
memory
local bus
bus
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.)
Granted
Application number
JP2016038733A
Other languages
English (en)
Other versions
JP6843508B2 (ja
Inventor
大佑 松永
Daisuke Matsunaga
大佑 松永
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2016038733A priority Critical patent/JP6843508B2/ja
Priority to US15/443,915 priority patent/US20170257518A1/en
Publication of JP2017156924A publication Critical patent/JP2017156924A/ja
Application granted granted Critical
Publication of JP6843508B2 publication Critical patent/JP6843508B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32358Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using picture signal storage, e.g. at transmitter
    • H04N1/32491Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using picture signal storage, e.g. at transmitter alternate storage in and retrieval from two parallel memories, e.g. using ping-pong buffers
    • 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
    • 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
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/067Bidirectional FIFO, i.e. system allowing data transfer in two directions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Bus Control (AREA)

Abstract

【課題】 バス形式が異なるデバイスとの間で行う相互のデータ転送処理を効率よく行う。
【解決手段】
第1のバス形式のインタフェースを介してデータ転送を行う第1のメモリ制御手段と、第2のバス形式のインタフェースを介して接続されるメモリデバイスとの間でデータ転送を行う第2のメモリ制御手段とを備えるデータ転送装置において、調停手段が第1のメモリ制御手段と第2のメモリ制御手段とをローカルバスで接続し、かつ、当該ローカルバスに、第2のメモリ制御手段から前記第1のメモリ制御手段に対するライトアクセスまたはリードアクセスと、前記第1のメモリ制御手段から第2のメモリ制御手段に対するリードアクセスまたはライトアクセスと、をローカルバスに接続されるローカルメモリを介して調停することを特徴とする。
【選択図】 図11

Description

本発明は、情報処理装置、データ転送装置、データ転送装置の制御方法、及びプログラムに関するものである。
近年のMFP(Multi Function Printer)等の画像処理装置は、ユーザからの要求に応じた複数の処理(コピージョブ、プリントジョブ、SENDジョブ等)を選択できる。この際、各処理に応じた画像処理はハードウェア又はソフトウェアにより実行される。
MFPの制御部であるコントローラの中には、CPUと画像処理ASICを有し、画像処理ASICに内蔵されているハードウェアによる画像処理アクセラレータと、CPUとが連携して動作し、画像処理を分担する構成が知られている。
上記の画像処理ASICにおいては、CPU側と画像処理ASICそれぞれにDDR等のワークメモリを持ち、CPUとASICを接続するために、汎用のPCIExpress(PCIe) I/Fを搭載するものがある。また、上記画像処理ASICと、画像データを格納するためのHDDを接続するために、汎用のSATA I/Fを搭載するものがある。
さらに、そのような複数のI/Fを備えるシステムには、I/F間のデータ転送に関わるソフトウェアの処理負荷を減らすために、DMACを備えているものがある。(特許文献1)
上記画像処理ASICにおいて、DMACは、セクタで表されるHDDのアドレス空間と、画像処理ASIC内部のローカルバスアドレス空間の間のデータ転送を行う。この時、特許文献2にあるように、ローカルバスアドレス空間の一部がPCIe I/Fのアドレスウインドウとしてアサインされていれば、DMACがPCIe先のデバイスのメモリに直接アクセスできる。
これによって、DMACは、SATA I/Fに接続されたHDDと、PCIe I/Fに接続されたデバイスのメモリ間のデータ転送を、余計なソフト制御を介することなく行うことができる。
特開2012−160997号公報 特開2014−219941号公報
しかしながら、上記のように画像処理ASICのローカルバスアドレス空間の一部をPCIe I/Fアドレスウインドウとしてアサインする方法は、いくつかの課題を抱えている。
まず1つは、ローカルバスアドレス空間が所定のサイズ(例えば32bit空間:4GB)に限定されている場合、PCIeアドレス空間以外にアサインする領域があるため、十分な領域をPCIeアドレス空間にアサインできない場合がある。
同様に、PCIe I/Fに接続されたデバイスが大容量のメモリを有し、そのアドレス空間が、画像処理ASICのローカルバスアドレス空間よりも大きい場合にも、十分な領域をPCIeアドレス空間にアサインできない場合がある。
これによって、DMACによる一度のデータ転送では、PCIe I/Fに接続されたデバイスの任意のメモリ領域へのデータ転送を達成することができない。そのため、PCIe I/Fに接続されたデバイス側で、例えばCPUによるメモリコピーなどで、改めて別のメモリ領域にデータを置き直す必要があり、データ転送のパフォーマンスが遅くなる。この時、画像処理ASIC内部のローカルバスアドレス空間を拡張すれば、十分な領域をアサインできるが、ローカルバスのバス幅を広げる必要があるため、回路規模が増大してしまうという課題があった。
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、バス形式が異なるデバイスとの間で行う相互のデータ転送処理を効率よく行える仕組みを提供することである。
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
画像処理を行う情報処理装置であって、第1のバス形式のインタフェースを介してデータ転送を行う第1のメモリ制御手段と、第2のバス形式のインタフェースを介して接続されるメモリデバイスとの間でデータ転送を行う第2のメモリ制御手段とを備え、さらに、前記第1のメモリ制御手段と前記第2のメモリ制御手段とをローカルバスで接続し、かつ、当該ローカルバスに、前記第2のメモリ制御手段から前記第1のメモリ制御手段に対するライトアクセスまたはリードアクセスと、前記第1のメモリ制御手段から前記第2のメモリ制御手段に対するリードアクセスまたはライトアクセスとを前記ローカルバスに接続されるローカルメモリを介して調停する調停手段を備えることを特徴とする。
上記目的を達成する本発明のデータ転送装置は以下に示す構成を備える。
画像処理を行う情報処理装置であって、第1のバス形式のインタフェースを介してデータ転送を行う第1のメモリ制御手段と、第2のバス形式のインタフェースを介して接続されるメモリデバイスとの間でデータ転送を行う第2のメモリ制御手段とを備え、さらに、前記第1のメモリ制御手段と前記第2のメモリ制御手段とをローカルバスで接続し、かつ、当該ローカルバスに、前記第2のメモリ制御手段から前記第1のメモリ制御手段に対するライトアクセスまたはリードアクセスと、前記第1のメモリ制御手段から前記第2のメモリ制御手段に対するリードアクセスまたはライトアクセスとを所定のバッファを介して制御するメモリ制御手段を備えることを特徴とする。
本発明によれば、バス形式が異なるデバイスとの間で行う相互のデータ転送処理を効率よく行える。
情報処理装置の構成を説明するブロック図である。 アドレス変換処理を行うためのアドレス空間を示す図である。 アドレス変換処理を行うためのアドレス空間を示す図である。 アドレス変換処理を行うためのアドレス空間を示す図である。 FIFO制御部の構成を説明するブロック図である。 データ転送装置の制御方法を説明するフローチャートである。 ディスクリプタテーブルを説明する図である。 ディスクリプタテーブルを説明する図である。 情報処理装置の構成を説明するブロック図である。 調停部の詳細構成を説明するブロック図である。 データ転送装置の制御方法を説明するフローチャートである。
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
[画像処理装置の構成]
図1は、本実施形態を示す情報処理装置の構成を説明するブロック図である。本例は、SATA DMAとPCIe DMAを連携動作させて転送効率を上げるための仕組みを備えた情報処理装置である画像処理装置100の構成例である。なお、本実施形態では、画像処理を行う情報処理装置である画像処理装置を例として構成を説明する。なお、画像処理装置は第1のバス形式のインタフェースを介してデータ転送を行う第1のメモリ制御手段(PCIeルートコンプレックス(以下、RC)を備える。さらに、画像処理装置は、第2のバス形式のインタフェースを介して接続されるメモリデバイスとの間でデータ転送を行う第2のメモリ制御手段(PCIeエンドポイント(以下、EP)とを備える。ここで、第1のバス形式とは、PCIバスを例とし、さらに、第2のバス形式とは、SATAバスを例とする。また、第1のバス形式のインタフェースとは、PCIeインタフェースを例とし、第2のバス形式のインタフェースとは、SATAインタフェースを例とする。
図1において、画像処理装置100のメインコントローラ部は、大きく分けて、PCIeルートコンプレックス(以下、RC)120とPCIeエンドポイント(以下、EP)140から構成され、PCIe167によって相互に通信可能に接続されている。PCIe RC120は以下のような構成を備える。
まず、CPU121は、ROM I/F122やメモリコントローラA123を介して、ROM160、RAM−A162のプログラムやデータにアクセスし、画像処理装置100全体の制御を行う。PCIe制御部A124は、PCIe167を介してPCIe EP140と接続され、データの高速通信を行う。操作部I/F125は、操作部161が接続され、ユーザはこの操作部161を介して、画像処理装置100へのジョブ投入指示などを行うことができる。
ネットワークI/F126は、例えばPCからのプリントジョブの投入などの、外部機器とのデータ通信に使用される。USB I/F127は、例えばUSBメモリ等のストレージデバイスが接続され、ストレージデバイス内の画像データの印刷などに使用される。FAX I/F128は、例えば、FAX回線からのデータを受信し、プリントするために使用される。これらの各モジュールは、AXIやAHBなどを代表とするローカルバス129によって相互接続されている。
PCIe EP140は、以下のような構成を備える。
まず、PCIe制御部B141は、PCIe167を介してPCIe RC120と接続され、データの高速通信を行う。より詳細には、PCIe制御部B141はPCIe DMAC142とアドレス変換部143を含んで構成されている。これらについては後で詳述する。
SATA制御部144は、SATA168を介してHDD163と接続され、HDD163へのデータの読み書きを制御する。また、SATA制御部144は、SATA DMAC145を含んで構成されており、CPU121による細かいソフト制御をすることなく、HDD163へのデータの読み書きが効率的にできるようになっている。これについても後で詳述する。
メモリコントローラB146は、RAM−B164が接続され、例えば画像処理デバイスであるスキャナ部165によって読み取った画像データをスキャナI/F147を介して、格納するために使用される。RAM−B164に格納された画像データは、画像処理デバイスであるプリンタ部166による出力を行うために、プリンタI/F148を介して出力されたり、SATA制御部144を介してHDD163に格納されたりする。さらには、RAM−B164に格納された画像データは、PCIe167を介してPCIe RC120に転送される。そして、画像データは、ネットワークI/F126から外部PCに転送されたり、USB I/F127を介してUSBメモリに格納されたり、FAX I/F128を介してFAX送信されたりすることもある。
FIFO形式(First-In First-Out形式)のFIFO制御部149は、内部にもつバッファ150をFIFO制御できるように構成することで、PCIe DMAC142とSATA DMAC145を連携動作させることができる。これについても後で詳述する。これらの各モジュールは、AXIやAHBなどを代表とするローカルバス151によって相互接続されている。
図2は、図1に示した情報処理装置におけるローカルバスのアドレス変換処理を説明するアドレス空間を示す図である。本例では、PCIe制御部B141が、PCIe RC120側のローカルバス129のアドレス空間(PCIeアドレス空間)と、PCIe EP140側のローカルバス151のアドレス空間の間で、データ転送時のアドレス変換について説明する。
図2の(a)は、アドレス変換部143によりアドレス変換の方法を示し、図2の(b)は、PCIe DMAC142によるアドレス変換の方法を示している。以下、アドレス変換部143が所定のアドレス情報を第1のバス形式のインタフェースに接続されるデバイスが管理するアドレス空間に変換する処理を説明する。ここで、デバイスとは、PCIe RC120を例とする。
まず、図2の(a)において、ローカルバス151のアドレス空間には、アドレス変換部143によるアドレス変換を行うためのPCIeアドレス変換領域207が含まれている。ローカルバス151側のマスタが、このPCIeアドレス変換領域207にアクセスすると、アドレス変換部143は、ローカルバス129側のアドレス(PCIeアドレス)に変換を行う。
そして、ローカルバス129側にマッピングされたPCIe領域203に対して、PCIe167経由でアクセスを行うものである(変換210)。これは、ローカルバス側のアドレス空間にマッピング可能なサイズの領域しか配置できない。
したがって、例えばローカルバス151側が32ビットアドレス空間を持つ場合、最大で4GBの空間の領域をPCIeアドレス変換領域とすることができる。ただ、ローカルバス151のアドレスマップには、RAM−B領域208や、その他、画像処理装置100が備える不図示の画像処理モジュールの設定レジスタなどの領域(その他領域204)が必要である。
そのため、本実施形態では、PCIeアドレス変換領域は1GBとしている。また、ローカルバス151側を64ビットアドレス空間に拡張したりすると、回路規模によるコストアップとのトレードオフとはなるが、PCIeアドレス変換領域207としてマッピングできる領域は増やすことができる。
次に、図2の(b)において、PCIeDMAC142は、転送元と転送先のアドレスとして、ローカルバス151アドレス空間とPCIeアドレス空間を指定することができる。
それによって、これら2つのアドレス空間の全領域にわたって、任意空間でデータ転送を行うことができる(変換230)。また、本実施形態におけるPCIeDMAC142は、ディスクリプタテーブルによる離散処理が可能であり、ソフトウェアによる制御を減らして、より効率的な連続データ転送を行うことができる。
図3は、図1に示した情報処理装置において、アドレス変換処理を行うためのアドレス空間を示す図である。本例では、SATA制御部144が、HDD163側のSATAアドレス空間(HDDセクタ領域305)と、PCIe EP140側のローカルバス151のアドレス空間の間を、データ転送時にどのようにアドレス変換するかを示す例である。
図3において、SATA DMAC145は、転送元と転送先のアドレスとして、SATAアドレス空間とローカルバス151のアドレス空間とを指定することができる。これによって、これら2つのアドレス空間の全領域にわたって、任意の空間でデータ転送を行うことができる(変換310)。
また、ローカルバス151アドレス空間として設定できる領域には、前述したPCIeアドレス変換領域207が含まれている。これによって、限定された領域ではあるが、HDD163からPCIe RC側のRAM−A162への直接のデータ転送が可能となっている。
また、本実施形態におけるSATA DMAC145は、ディスクリプタテーブルによる離散処理が可能であり、ソフトウェアによる制御を減らして、より効率的な連続データ転送を行うことができる。
図4は、図1に示した情報処理装置において、アドレス変換処理を行うためのアドレス空間を示す図である。
本例は、PCIe DMAC142とSATA DMAC145を、FIFO制御部149の調停を介して連携動作させて、データ転送させる場合のアドレス変換の方法を示す例である。なお、簡単のため、HDD163からPCIe RC120のRAM−A162へデータ転送する場合について説明するが、逆方向でも同様である。まず、SATA DMAC145は、転送元にHDDセクタ領域305の所定アドレスを指定し、転送先にはFIFO制御部149のバッファ150に対してライトアクセスするためのバッファ領域205を指定する。
次に、PCIe DMAC142は、転送元にFIFO制御部149のバッファ150に対してリードアクセスするためのバッファ領域206を指定する。また、PCIe DMAC142は、転送先には任意のローカルバス129アドレス空間上のアドレス(通常、RAM−A領域202)を指定する。PCIe DMAC142とSATA DMAC145は、それぞれ、アドレス設定後にCPU121上で動作するソフトウェアによって動作開始が指示される。すると、PCIe DMAC142とSATA DMAC145は、FIFO制御部149で調停されながらバッファ150へのデータライトとデータリードを並列に実行するように動作する。
図5は、図1に示したFIFO制御部の構成を説明するブロック図である。本例では、上記並列動作を実現するFIFO制御部149の構成を説明する。
図5において、FIFO制御部149は、ローカルバス151とのI/Fとして、スレーブI/F A501、スレーブI/F B502の2つのI/Fを有する。スレーブI/F A501は、PCIe DMAC142やSATA DMAC145などのマスターから、FIFO制御部149のバッファ領域(ライト)205のアドレスへのアクセスを、自身へのアクセスと認識する。
一方、スレーブI/F B502は、PCIe DMAC142やSATA DMAC145などのマスターから、FIFO制御部149のバッファ領域(リード)206のアドレスへのアクセスを、自身へのアクセスと認識する。ライトポインタ制御部503は、スレーブI/F A501から転送されたライトアクセスに対し、アドレスの正当性とバッファ150の空きを確認して、バッファ150にデータライトする。
リードポインタ制御部504は、スレーブI/F A502から転送されたリードアクセスに対し、アドレスの正当性とバッファ150にリードデータが十分スタックされているかを確認して、バッファ150からデータリードする。アドレスポインタ格納部505は、ライトポインタ制御部503、リードポインタ制御部504から更新されるライトポインタ情報、リードポインタ情報を持つ。アドレスポインタ格納部505は、これらのポインタ情報から、バッファ150に格納されたデータ量と、空きデータ量がどれほどあるかの情報を算出し、各ポインタ制御部503,504に送っている。
図6は、本実施形態を示すデータ転送装置の制御方法を説明するフローチャートである。以下、FIFO制御部149、PCIe DMAC142、SATA DMAC145との連携処理を説明する。なお、処理フロー600は、SATA DMAC145の動作を示している。処理フロー640は、FIFO制御部149の動作を示している。処理フロー620は、PCIe DMAC142の動作を示している。
まず、処理フロー600において、SATA DMAC145は、PCIe RC120側のCPU121などから、動作設定が行われる(601)。動作設定は、例えば後述する図7に示す2つのディスクリプタテーブルの先頭アドレスを指定することで行う。
図7において、テーブル700は、HDD163からの読み出し順を示したディスクリプタテーブルである。テーブル700の各エントリは、HDD163のセクタアドレスを示すLBAアドレス701、LBAアドレス701から読み出すデータ量を示すセクタ数702、テーブルの完了を示すEOF703から構成されている。テーブル710は、ローカルバス151への書き出し順を示したディスクリプタテーブルである。
テーブル710の各エントリは、ローカルバスアドレス711、ローカルバスアドレス711に書き出すデータ量を示すバイト数712、テーブルの完了を示すEOF713から構成されている。
なお、SATA DMAC145への設定によって、同様のテーブルを使用して、ローカルバス151側からリードし、HDD163にライトするような動作も可能である。本実施形態では、書き出すデータは、図3に示すFIFO制御部149のバッファ領域(ライト)205に書き出す必要がある。このため、例えばこの領域の先頭アドレスが0x41000000、サイズが0x1000000の場合、テーブル710のような設定をする。
これにより、SATA DMAC145からのライトアクセスは、常にFIFO制御部149に対して行われるようになる。設定が完了すると、DMAC動作の開始が指示される(602)。すると、SATA DMAC145はテーブル700にしたがってHDD163からデータの読み出しを行う(603)。
そして、テーブル710のローカルバスアドレス711が示す領域のスレーブ(FIFO制御部149)に対して、ライトリクエストを発行する(604)。その後、FIFO制御部149からのReady信号を待ち(605)、Readyが返されると(605のYes)、FIFO制御部149にライトデータを送信する(606)。
そして、SATA DMAC145は、リード元のLBAアドレスやライト先のローカルバスアドレスのアドレスをインクリメントし、必要があれば、ディスクリプタテーブルのエントリを1エントリ先に進める(607)。これら603から607の処理を、ディスクリプタテーブルが示す全データを転送完了するまで続けて(608)、SATA DMAC145は転送を完了する。
処理フロー620において、PCIe DMAC142では、PCIe RC120側のCPU121などから、動作設定が行われる(621)。当該動作設定は、例えば図8に示す2つのディスクリプタテーブルの先頭アドレスを指定することで行う。
図8において、テーブル800は、PCIe167を介して、PCIe RC120に転送するデータの書き出し順を示したディスクリプタテーブルである。テーブル800の各エントリは、PCIe167のPCIeアドレス801、PCIeアドレス801に書き出すデータ量を示すバイト数802、テーブルの完了を示すEOF803から構成されている。
テーブル810は、ローカルバス151からの読み出し順を示したディスクリプタテーブルである。テーブル810の各エントリは、ローカルバスアドレス811、ローカルバスアドレス811から読み出すデータ量を示すバイト数812、テーブルの完了を示すEOF813から構成されている。
なお、PCIe DMAC142への設定によって、同様のテーブルを使用して、PCIe167の空間からリードし、ローカルバス151の空間にライトするような動作も可能である。
本実施形態では、読み出すデータは、図3に示したFIFO制御部149のバッファ領域(リード)206から読み出す必要がある。このため、例えばこの領域の先頭アドレスが0x40000000、サイズが0x1000000の場合、テーブル810のように設定をする。
これにより、PCIe DMAC142からのリードアクセスは、常にFIFO制御部149に対して行われるようになる。設定が完了すると、DMAC動作の開始が指示される(622)。
すると、PCIe DMAC142はテーブル810にしたがって、FIFO制御部149からデータの読み出しを行うために、リードリクエストを発行する(623)。FIFO制御部149からのReady信号を待ち(624)、Readyが返ってくると(624のYes)、FIFO制御部149からリードデータを受信する(625)。受信したデータは、テーブル800にしたがって、PCIe167を介して、PCIe RC120に送信される(626)。
そして、PCIe DMAC142は、リード元のローカルバスアドレスやライト先のPCIeアドレスのアドレスをインクリメントし、必要があれば、ディスクリプタテーブルのエントリを1エントリ先に進める(627)。これら623から627の処理を、ディスクリプタテーブルが示す全データを転送完了するまで続けて(628)、PCIe DMAC142は転送を完了する。
処理フロー640において、FIFO制御部149は、ステートマシンを持ち、SATA DMAC145やPCIe DMAC142からのライト/リードリクエストやデータの送受信に応じて、動作する。
まず、SATA DMAC145から、ライトリクエストが発行されると、バッファ150に空きがあるかどうかを確認する(641)。バッファの空きは、FIFO制御部149が持つライトポインタと、リードポインタと、バッファ150の量から計算される。空きがあるとFIFO制御部149が判断した場合、SATA DMAC145からのライトリクエストに対してReadyを発行する(642)。その後に、送信されてくるライトデータを受信してバッファ150に格納し、ライトポインタをインクリメントする(643)。
一方、PCIe DMAC142から、FIFO制御部149にリードリクエストが発行されると、FIFO制御部149は、バッファ150に転送するリードデータが存在するかを確認する(644)。これは、FIFO制御部149が持つライトポインタとリードポインタから、バッファ150に格納されたデータ量を計算することにより行われる。必要なリードデータ量があるとFIFO制御部149が判断した場合、PCIe DMAC142にReadyを返す(645)。
そして、FIFO制御部149は、バッファ150に格納されたデータをPCIe DMAC142に送信し、リードポインタをインクリメントする(646)。ここで、処理644のように、必要なデータ量がバッファ150に存在するかどうかを、FIFO制御部149が判断できるように構成する。これにより、ソフト制御を介することなく、SATA DMAC145とPCIe DMAC142との間におけるデータ転送処理を連携することができる。
以上のような構成によって、SATA DMAC145とPCIe DMAC142を連携動作させる。これにより、HDD上の任意の領域に格納されたデータを、PCIe RC120側の任意の全領域に、ソフト処理の負荷を大きくすることなく転送することが可能となる。
〔第2実施形態〕
図9は、本実施形態を示す情報処理装置の構成を説明するブロック図である。以下、第1実施形態と異なる構成について説明する。本実施形態におけるPCIe EP140は、FIFO制御部149の代わりに、PCIe制御部B141やSATA制御部144と、ローカルバス151の間のバスアクセスを調停する図10に詳細を示す調停部900を有する。
図10は、図9に示した調停部900の詳細構成を説明するブロック図である。
図10において、スレーブI/F P1001は、マスターとなるPCIe DMAC142から、ローカルバス151へのリード/ライトアクセスを途中で受けるためのI/Fである。スレーブI/F S1002は、マスターとなるSATA DMAC145から、ローカルバス151へのリード/ライトアクセスを途中で受けるためのI/Fである。リード/ライトポインタ制御部1003は、設定部1007、アドレスポインタ格納部1004の情報を基に、スレーブI/F P1001とスレーブI/F S1002からのアクセスを許可するかどうかの判断を行う。
設定部1007には、ローカルメモリであるRAM−B146のいずれの領域をFIFOとして使用するかの設定を行う。
例えば、設定部1007に、FIFOとして扱うRAM−B146の領域を0x10000000−0x10008000と設定する。すると、上記各スレーブI/Fからのアクセスアドレスがその領域にあった場合は、リード/ライトポインタ制御部1003において、後述するリード/ライトアクセス制御を行う。しかし、そうでない場合は、各スレーブI/Fからのアクセスは、リード/ライトポインタ制御部1003で制御することなく、マスターI/F P1005、マスターI/F S1006から、そのままローカルバス151の方へリクエストが出て行く。アドレスポインタ格納部1004には、上記設定部1007に設定されたアドレス領域へのライト/リードアクセスが発生した場合に、どのアドレスまでアクセスが行われたかを示すポインタ情報が格納されている。
リード/ライトポインタ制御部は、設定部1007に設定されたアドレス領域へのアクセスがあると、そのポインタ情報を基に、そのアクセスをローカルバス151に発行するかどうかを判断する。そして、それを発行すると、その後に、アドレスポインタ格納部1004のライト/リードポインタ情報を更新する。
図11は、本実施形態を示すデータ転送装置の制御方法を説明するフローチャートである。以下、調停部900を用いたアクセス制御の詳細を説明する。なお、本処理のフローは図6のフローチャートと同じであるため、図6のフローチャートとの差分のみ説明する。
まず、SATA DMAC処理フロー1100については、ライトリクエストの発行先が、FIFO制御部149から、調停部900を介してRAM−B164へアクセスする点のみ異なる。したがって、SATA DMACフロー1100の中では、処理1104〜処理1106でライトアクセスする相手が調停部になっている点が異なる。したがって、フロー1120の中では、処理1123〜処理1125でリードアクセスする相手が調停部になっている点が異なる。
次に、調停部処理フロー1140について説明する。
調停部900では、まず、SATA DMAC145から、送信先アドレスを含むライトリクエストを、スレーブI/F S1002経由で受信すると、そのリクエストが設定部に設定されたアドレス領域に対するアクセスかどうかを判断する(1161)。
例えば、前述のように、設定部1007に、FIFOとして扱うRAM−B146の領域を0x10000000−0x10008000と設定する。すると、スレーブI/F S1002からのアクセスアドレスがこの領域の範囲外であるとリード/ライトポインタ制御部1003が判断した場合(1161のNo)、(1162)へ進む。そして、リード/ライトポインタ制御部1003は、SATA DMAC145に対してReadyをアサートする(1162)。そして、SATA DMAC145からライトデータを受信し、マスターI/F S1006を介してRAM−B146にデータを送信する(1163)。
一方、スレーブI/F S1002からのアクセスアドレス、設定部1007に設定された領域の範囲内であるとリード/ライトポインタ制御部1003が判断した場合(1161のYes)、(1141)へ進む。そして、リード/ライトポインタ制御部1003は、アドレスポインタ格納部1004からポインタ情報を読み出し、空きバッファがあるかを計算する(1141)。空きバッファができると(1141のYes)、SATA DMAC145に対してReadyをアサートする(1142)。そして、リード/ライトポインタ制御部1003は、SATA DMAC145からライトデータを受信し、それをRAM−B146へ送信する。そして、最後に、リード/ライトポインタ制御部1003は、アドレスポインタ格納部1004のライトポインタをインクリメントして、本処理を完了する。
一方、調停部900がPCIe DMAC142から、送信先アドレスを含むリードリクエストを、スレーブI/F P1001経由で受信する。すると、リード/ライトポインタ制御部1003は、そのリクエストが設定部に設定されたアドレス領域に対するアクセスかどうかを判断する(1164)。スレーブI/F P1001からのアクセスアドレスがこの領域の範囲外であるとリード/ライトポインタ制御部1003が判断した場合(1164のNo)、(1165)へ進む。
そして、リード/ライトポインタ制御部1003は、PCIe DMAC142に対してReadyをアサートする(1165)。そして、RAM−B146からマスターI/F P105を介してリードデータを受信し、PCIe DMAC142にリードデータを送信する(1166)。
一方、スレーブI/F P1001からのアクセスアドレスが、設定部1007に設定された領域の範囲内であるとリード/ライトポインタ制御部1003が判断した場合(1164のYes)、(1144)へ進む。そして、アドレスポインタ格納部1004からポインタ情報を読み出し、先にRAM−B146にライトされたリードデータがあるかを計算する(1144)。そして、リード/ライトポインタ制御部1003がリードデータがあると判断した場合(1144のYes)、PCIe DMAC142対してReadyをアサートする(1145)。そして、RAM−B146からリードデータを受信し、それをPCIe DMAC142に送信する。そして、最後に、リード/ライトポインタ制御部1003は、アドレスポインタ格納部1004のリードポインタをインクリメントして、本処理を完了する(1146)。
以上のような構成を採ることで、第1実施形態に示したように、追加のバッファ150や、FIFO領域専用のバッファ領域205、206を設けなくてもよい構成とすることができる。これにより、PCIe DMAC142、SATA DMAC145間の連携動作をすることができ、当初の目的を達成することができる。
なお、各実施形態では、情報処理装置の例を画像処理装置とする場合について説明したが、各フローチャートで説明したデータ転送制御を実行可能な構成であれば、データ転送装置として構成することも可能である。これにより、画像処理装置以外の各種の情報処理装置に備えられる異なるバス形式を利用したデータ転送制御に本発明を適用することで同様の効果が期待できる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えばASIC)によっても実現可能である。
124、140 PCIe制御部
149 FIFO制御部

Claims (13)

  1. 画像処理を行う情報処理装置であって、
    第1のバス形式のインタフェースを介してデータ転送を行う第1のメモリ制御手段と、
    第2のバス形式のインタフェースを介して接続されるメモリデバイスとの間でデータ転送を行う第2のメモリ制御手段とを備え、
    さらに、前記第1のメモリ制御手段と前記第2のメモリ制御手段とをローカルバスで接続し、かつ、当該ローカルバスに、前記第2のメモリ制御手段から前記第1のメモリ制御手段に対するライトアクセスまたはリードアクセスと、前記第1のメモリ制御手段から前記第2のメモリ制御手段に対するリードアクセスまたはライトアクセスとを前記ローカルバスに接続されるローカルメモリを介して調停する調停手段を備えることを特徴とする情報処理装置。
  2. 画像処理を行う情報処理装置であって、
    第1のバス形式のインタフェースを介してデータ転送を行う第1のメモリ制御手段と、
    第2のバス形式のインタフェースを介して接続されるメモリデバイスとの間でデータ転送を行う第2のメモリ制御手段とを備え、
    さらに、前記第1のメモリ制御手段と前記第2のメモリ制御手段とをローカルバスで接続し、かつ、当該ローカルバスに、前記第2のメモリ制御手段から前記第1のメモリ制御手段に対するライトアクセスまたはリードアクセスと、前記第1のメモリ制御手段から前記第2のメモリ制御手段に対するリードアクセスまたはライトアクセスとを所定のバッファを介して制御するメモリ制御手段を備えることを特徴とする情報処理装置。
  3. 前記所定のバッファは、FIFO形式のバッファであることを特徴とする請求項2に記載の情報処理装置。
  4. 前記第1のメモリ制御手段は、所定のアドレス情報を前記第1のバス形式のインタフェースに接続されるデバイスが管理するアドレス空間に変換するアドレス変換手段を備えることを特徴とする請求項1または2に記載の情報処理装置。
  5. 前記第1のバス形式のインタフェースは、PCIeインタフェースであることを特徴とする請求項1または2に記載の情報処理装置。
  6. 前記第2のバス形式のインタフェースは、SATAインタフェースであることを特徴とする請求項1または2に記載の情報処理装置。
  7. 前記ローカルバスは、所定のインタフェースを介して画像処理デバイスが接続されることを特徴とする請求項1または2に記載の情報処理装置。
  8. 前記画像処理デバイスは、プリンタ、スキャナを含むことを特徴とする請求項7に記載の情報処理装置。
  9. データ転送装置であって、
    第1のバス形式のインタフェースを介してデータ転送を行う第1のメモリ制御手段と、
    第2のバス形式のインタフェースを介して接続されるメモリデバイスとの間でデータ転送を行う第2のメモリ制御手段とを備え、
    さらに、前記第1のメモリ制御手段と前記第2のメモリ制御手段とをローカルバスで接続し、かつ、当該ローカルバスに、前記第2のメモリ制御手段から前記第1のメモリ制御手段に対するライトアクセスまたはリードアクセスと、前記第1のメモリ制御手段から前記第2のメモリ制御手段に対するリードアクセスまたはライトアクセスとを前記ローカルバスに接続されるローカルメモリを介して調停する調停手段を備えることを特徴とするデータ転送装置。
  10. データ転送装置であって、
    第1のバス形式のインタフェースを介してデータ転送を行う第1のメモリ制御手段と、
    第2のバス形式のインタフェースを介して接続されるメモリデバイスとの間でデータ転送を行う第2のメモリ制御手段とを備え、
    さらに、前記第1のメモリ制御手段と前記第2のメモリ制御手段とをローカルバスで接続し、かつ、当該ローカルバスに、前記第2のメモリ制御手段から前記第1のメモリ制御手段に対するライトアクセスまたはリードアクセスと、前記第1のメモリ制御手段から前記第2のメモリ制御手段に対するリードアクセスまたはライトアクセスとを所定のバッファを介して制御するメモリ制御手段を備えることを特徴とするデータ転送装置。
  11. 第1のバス形式のインタフェースを介してデータ転送を行う第1のメモリ制御手段と、第2のバス形式のインタフェースを介して接続されるメモリデバイスとの間でデータ転送を行う第2のメモリ制御手段とを備えるデータ転送装置の制御方法であって、
    前記第1のメモリ制御手段と前記第2のメモリ制御手段とをローカルバスで接続し、かつ、当該ローカルバスに、前記第2のメモリ制御手段から前記第1のメモリ制御手段に対するライトアクセスまたはリードアクセスと、前記第1のメモリ制御手段から前記第2のメモリ制御手段に対するリードアクセスまたはライトアクセスとを前記ローカルバスに接続されるローカルメモリを介して調停する調停工程を備えることを特徴とするデータ転送装置の制御方法。
  12. 第1のバス形式のインタフェースを介してデータ転送を行う第1のメモリ制御手段と、第2のバス形式のインタフェースを介して接続されるメモリデバイスとの間でデータ転送を行う第2のメモリ制御手段とを備えるデータ転送装置の制御方法であって、
    前記第1のメモリ制御手段と前記第2のメモリ制御手段とをローカルバスで接続し、かつ、当該ローカルバスに、前記第2のメモリ制御手段から前記第1のメモリ制御手段に対するライトアクセスまたはリードアクセスと、前記第1のメモリ制御手段から前記第2のメモリ制御手段に対するリードアクセスまたはライトアクセスとを所定のバッファを介して制御するメモリ制御工程を備えることを特徴とするデータ転送装置の制御方法。
  13. 請求項11または12に記載のデータ転送装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
JP2016038733A 2016-03-01 2016-03-01 情報処理装置及び情報処理装置の制御方法 Active JP6843508B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016038733A JP6843508B2 (ja) 2016-03-01 2016-03-01 情報処理装置及び情報処理装置の制御方法
US15/443,915 US20170257518A1 (en) 2016-03-01 2017-02-27 Data processing apparatus, method for controlling data processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016038733A JP6843508B2 (ja) 2016-03-01 2016-03-01 情報処理装置及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2017156924A true JP2017156924A (ja) 2017-09-07
JP6843508B2 JP6843508B2 (ja) 2021-03-17

Family

ID=59724417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016038733A Active JP6843508B2 (ja) 2016-03-01 2016-03-01 情報処理装置及び情報処理装置の制御方法

Country Status (2)

Country Link
US (1) US20170257518A1 (ja)
JP (1) JP6843508B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3422171A1 (en) * 2017-06-30 2019-01-02 INTEL Corporation Dual pointer for memory mapped interface communication
CN114490466B (zh) * 2021-12-28 2024-04-30 深圳市紫光同创电子有限公司 一种实现数据连续存储的ddr ip核架构及方法
CN115599729B (zh) * 2022-12-13 2023-04-25 南京芯驰半导体科技有限公司 一种中央处理器基于PCIe读写数据系统及方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100269398B1 (ko) * 1997-08-30 2000-10-16 구자홍 반복재생을지원하는엠펙비디오디코딩장치및그방법
JP2004220579A (ja) * 2002-12-25 2004-08-05 Ricoh Co Ltd 画像処理装置、画像処理プログラムおよび記憶媒体
CN1540523A (zh) * 2003-10-30 2004-10-27 中兴通讯股份有限公司 单任务快速缓冲读写方法
TWI295019B (en) * 2005-06-06 2008-03-21 Accusys Inc Data transfer system and method
JP5597104B2 (ja) * 2010-11-16 2014-10-01 キヤノン株式会社 データ転送装置及びその制御方法
KR101986355B1 (ko) * 2012-09-14 2019-06-05 삼성전자주식회사 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법
JP6152694B2 (ja) * 2013-05-10 2017-06-28 株式会社リコー 画像データ処理装置、画像処理装置、及び画像データ転送方法
US20150074293A1 (en) * 2013-09-10 2015-03-12 Kabushiki Kaisha Toshiba Information processing system, storage device and controlling method of storage device
JP2015076691A (ja) * 2013-10-08 2015-04-20 株式会社東芝 画像処理装置及びデータ転送制御プログラム
KR102147993B1 (ko) * 2013-11-14 2020-08-25 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102181441B1 (ko) * 2014-04-15 2020-11-24 에스케이하이닉스 주식회사 복수의 기능 블록들을 포함하는 반도체 장치
US10013375B2 (en) * 2014-08-04 2018-07-03 Samsung Electronics Co., Ltd. System-on-chip including asynchronous interface and driving method thereof
KR102417182B1 (ko) * 2015-06-22 2022-07-05 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US9990311B2 (en) * 2015-12-28 2018-06-05 Andes Technology Corporation Peripheral interface circuit

Also Published As

Publication number Publication date
US20170257518A1 (en) 2017-09-07
JP6843508B2 (ja) 2021-03-17

Similar Documents

Publication Publication Date Title
JP5527512B2 (ja) バスプロトコル変換装置及びバスプロトコル変換方法
JP2004171209A (ja) 共有メモリデータ転送装置
JP2019016063A (ja) データ転送装置及びデータ転送方法
JP6476655B2 (ja) データ転送制御装置
JP2017156924A (ja) 情報処理装置、データ転送装置、データ転送装置の制御方法、及びプログラム
US10630865B2 (en) Image forming apparatus incorporating control circuitry for executing control method to arbitrate access between signals referring priority settings
JP2010191818A (ja) 情報処理装置及びその制御方法
JP5340058B2 (ja) 画像処理装置、その制御方法及びプログラム
JP6904697B2 (ja) 情報処理装置及び通信制御方法
JP4829408B2 (ja) 画像処理方法及び画像処理装置
JP6380084B2 (ja) 情報処理装置及び情報処理プログラム
US20160154603A1 (en) Data transfer control device, apparatus including the same, and data transfer control method
JP6833491B2 (ja) 情報処理装置
JP2000259362A (ja) プリンタ及びプリンタのデータ処理方法
KR102438319B1 (ko) 공통 메모리 인터페이스 장치 및 방법
JP4848188B2 (ja) 複数のメモリ領域を有する記憶装置を有するユニット及びメモリ制御システム
JP6171367B2 (ja) スイッチ装置、画像処理装置、及び排他制御方法
JP5337890B2 (ja) 画像形成装置
US20160077737A1 (en) Information processing apparatus and memory system
JP5094050B2 (ja) メモリ制御装置、メモリ制御方法および組み込みシステム
JP4743110B2 (ja) データ処理装置
JP6763307B2 (ja) 計算機、デバイス制御システムおよびデバイス制御方法
CN115695574A (zh) 一种Avalon协议转换方法、装置、设备及介质
JP2014130425A (ja) 画像形成装置
JP2013098627A (ja) 画像処理制御回路、画像処理装置及び画像処理制御方法

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180306

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200213

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201223

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: 20210126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210224

R151 Written notification of patent or utility model registration

Ref document number: 6843508

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151