JP2018156428A - 転送制御装置、処理システム及び処理装置 - Google Patents
転送制御装置、処理システム及び処理装置 Download PDFInfo
- Publication number
- JP2018156428A JP2018156428A JP2017053066A JP2017053066A JP2018156428A JP 2018156428 A JP2018156428 A JP 2018156428A JP 2017053066 A JP2017053066 A JP 2017053066A JP 2017053066 A JP2017053066 A JP 2017053066A JP 2018156428 A JP2018156428 A JP 2018156428A
- Authority
- JP
- Japan
- Prior art keywords
- write
- read
- data
- processing
- request
- 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
- 238000012546 transfer Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 title claims description 305
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000012790 confirmation Methods 0.000 claims description 41
- 239000000872 buffer Substances 0.000 abstract description 47
- 230000008859 change Effects 0.000 abstract description 2
- 238000000034 method Methods 0.000 description 46
- 230000008569 process Effects 0.000 description 29
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/455—Image or video data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Image Input (AREA)
- Bus Control (AREA)
- Memory System (AREA)
Abstract
【課題】転送経路での要求の順序修正のための回路を転送経路とメモリの間に設けることなく、リード要求とライト要求の順序の入れ替わりの問題の発生を防止する。【解決手段】DMAC(Direct Memory Access Controller)は、メモリ内のラインバッファに対する1ライン分のリード及びライトのコマンドを内部バス(転送経路)に発行S10した後、ラインバッファとは異なるフラグ領域にフラグを書き込むライトコマンドを発行するS12。そして、そのフラグ領域を読み取るリードコマンドを内部バスに発行しS14、これに応じて読み出した値がS12でライトしたフラグと一致するか判定するS16。一致するまでは、仮に上位装置からそのラインバッファへの読み出し要求を受けていても、ラインバッファへのリードコマンドは発行しない。一致した場合、S10に戻り、ラインバッファへのリード及びライトのコマンドを発行する。【選択図】図5
Description
本発明は、転送制御装置、処理システム及び処理装置に関する。
データの転送経路として、リード要求同士及びライト要求同士の間の順序は維持されるが、リード要求とライト要求との間の順序は維持されない転送経路がある。例えばAXI(Advanced eXtensible Interface)プロトコルに準拠した転送経路がその一例である。
このような転送経路におけるリード要求とライト要求との間の順序関係を維持する従来技術として、例えば特許文献1及び2に開示された技術が知られている。
特許文献1の技術では、要求の発行に際して、スレーブ側において要求の順番が入れ替わったことを検知するためのコマンド番号を送信し、発行される要求を記憶媒体に一時的に保持し、スレーブにおいて要求の順番が入れ替わったことが検知されることにより再送要求を受けた場合に、一時的に保持している要求を再送する。
特許文献2に開示された信号転送装置は、共有メモリへのアクセスを制御するメモリ制御装置にデータを転送するポステッドライト方式のライトデータプロトコルを持つインターフェースと、共有メモリへインターフェースを介して書き込むライト要求があった場合、ライト要求からライトアドレスを取得し、ライトデータの転送量が共有メモリまでの信号転送経路上のバッファの合計量を上回るまで、アドレスのリードを待機する待機手段と、を備える。
転送経路によるリード要求とライト要求の順序の入れ替わりを修正するための処理を、要求の発行側に設けた回路と、その要求を受けるメモリ側(すなわちその転送経路とメモリとの間)に設けた回路との協働により実現する方式を用いる場合、要求発行側とメモリ側の両方に順序修正用の回路を設けるためにコストが掛かる。
本発明は、転送経路での要求の順序修正のための回路を転送経路とメモリの間に設けることなく、リード要求とライト要求の順序の入れ替わりの問題の発生を防止することを目的とする。
請求項1に係る発明は、ライト要求同士の順序及びリード要求同士の順序は維持するがライト要求とリード要求との間の順序は維持しない転送経路に対して、処理単位の最後のデータをメモリに書き込む第1ライト要求を発行した後に、前記メモリ内の前記データが書き込まれる領域とは異なる領域に確認情報を書き込む第2ライト要求を発行するライト発行手段と、前記第2ライト要求の発行後に、前記確認情報を読み取る第1リード要求を前記転送経路に発行し、前記第1リード要求に対して前記確認情報を読み取った後に、前記メモリに書き込まれた前記処理単位のデータに対する第2リード要求を前記転送経路へ発行するリード発行手段と、を含む転送制御装置である。
請求項2に係る発明は、前記ライト発行手段は、前記処理単位についての前記確認情報として、前記処理単位の1つ前の処理単位についての前記確認情報とは異なる値の情報を用いる、ことを特徴とする請求項1に記載の転送制御装置である。
請求項3に係る発明は、前記ライト発行手段は、前記処理単位についての前記確認情報として、前記処理単位の識別情報を用いる、ことを特徴とする請求項1に記載の転送制御装置である。
請求項4に係る発明は、第1の処理装置と、前記第1の処理装置がメモリに書き込んだデータを用いて処理を実行する第2の処理装置と、前記第1の処理装置と前記第2の処理装置との連携を制御する制御装置と、を含み、前記第1の処理装置は、ライト要求同士の順序及びリード要求同士の順序は維持するがライト要求とリード要求との間の順序は維持しない転送経路に対して、前記データの最後の部分をメモリに書き込む第1ライト要求を発行した後に、前記メモリ内の前記データが書き込まれる領域とは異なる領域に確認情報を書き込む第2ライト要求を発行するライト発行手段と、前記第2ライト要求の発行後に、前記確認情報を読み取るリード要求を前記転送経路に発行し、前記リード要求に対して前記確認情報が読み取った場合に、前記メモリへの前記データの書き込みが完了したことを示す完了通知を前記制御装置に送信する手段と、を含み、前記制御装置は、前記第1の処理装置から前記完了通知を受けると、前記第2の処理装置に前記データを用いた処理の開始を指示する、ことを特徴とする処理システムである。
請求項5に係る発明は、前記確認情報は、前記第1の処理装置の識別情報を含む情報である、ことを特徴とする請求項4に記載の処理システムである。
請求項6に係る発明は、ライト要求同士の順序及びリード要求同士の順序は維持するがライト要求とリード要求との間の順序は維持しない転送経路に対して、データの最後の部分をメモリに書き込む第1ライト要求を発行した後に、前記メモリ内の前記データが書き込まれる領域とは異なる領域に確認情報を書き込む第2ライト要求を発行するライト発行手段と、前記第2ライト要求の発行後に、前記確認情報を読み取るリード要求を前記転送経路に発行し、前記リード要求に対して前記確認情報が読み取った場合に、前記メモリへの前記データの書き込みが完了したことを示す完了通知を制御装置に送信する手段と、を含む処理装置である。
請求項7に係る発明は、第1の処理装置と、前記第1の処理装置がメモリに書き込んだデータを用いて処理を実行する第2の処理装置と、を含み、前記第1の処理装置は、ライト要求同士の順序及びリード要求同士の順序は維持するがライト要求とリード要求との間の順序は維持しない転送経路に対して、前記データの最後の部分をメモリに書き込む第1ライト要求を発行した後に、前記メモリ内の前記データが書き込まれる領域とは異なる領域に確認情報を書き込む第2ライト要求を発行するライト発行手段、を含み、前記第2の処理装置は、前記メモリ内の前記確認情報を読み取るリード要求を前記転送経路に発行する手段と、前記リード要求に対して前記確認情報が読み取れた場合に、前記メモリ内の前記データを用いた前記処理を開始する手段と、を含む処理システムである。
請求項1、4、6又は7に係る発明によれば、転送経路での要求の順序修正のための回路を転送経路とメモリの間に設けることなく、リード要求とライト要求の順序の入れ替わりの問題の発生を防止することができる。
請求項2に係る発明によれば、前記第1リード要求に対して前記確認情報が読み取った後に前記確認情報を消去することで次の処理単位にも同じ値の確認情報を使用可能とする方式と比べて、処理に要する時間を短縮できる。
請求項3に係る発明によれば、転送制御装置の故障時等の動作検証の際に、メモリに書き込まれた確認情報の値からどの処理単位まで処理がなされたかを知ることができる。
請求項5に係る発明によれば、処理システムの故障時等の動作検証の際に、メモリに書き込まれた確認情報の値からどの処理装置まで処理を行ったかを知ることができる。
以下図面を参照して本発明の実施形態について説明する。
図1は、実施形態の仕組みが適用される画像形成装置100の情報処理システムの一例を示す。画像形成装置100は、画像の読取りや出力(印刷、ファクシミリ送信)等のうちの一以上を行う装置であり、例えばプリンタ、スキャナ、複写機、ファクシミリ、又はそれらの機能を兼ね備えた複合機がその例である。
このシステムは、内部バス110に接続されたCPU(中央演算装置)102、DSP(デジタルシグナルプロセッサ)104、画像読取装置(スキャナ)106、画像印字部(プリンタ)112、及び1以上の画像処理部200(図では「画像処理n」(nは番号)と表記)を有する。また、内部バス110には、CPU102等のそれら各要素により共有される共有メモリ114が、メモリコントローラ116を介して接続されている。
CPU102は、画像形成装置100の動作制御のための制御プログラムや画像処理のためのプログラム等の各種プログラムを実行する。この実行の際、共有メモリ114を作業領域として用いる。DSP104は、画像形成装置100内で用いられる信号についてのデジタル信号処理を実行する。画像読取装置106は、スキャンやコピー等の機能のために原稿の画像を読み取り、その画像を表す画像データを生成する。画像印字部112は、印刷やコピー等の機能のために画像データを用紙に印刷する。
各画像処理部200は、画像形成装置100が取り扱う画像データ(例えば画像読取装置106が読み取った画像や画像印字部112が印刷する画像)に対して各種の画像処理を行う。画像処理部200の行う画像処理については特に限定はない。
メモリコントローラ116は、内部バス110上の各要素からの共有メモリ114に対するリード(読み出し)及びライト(書き込み)の要求を処理する。
内部バス110は、組み込みシステム内部のCPU102等の各要素間でのデータ転送のため転送経路である。内部バス110は、リード要求同士及びライト要求同士の間の順序は維持するが、転送効率等のためにリード要求とライト要求との間の順序関係は保証しないバスである。内部バス110は、例えばAXIプロトコルに準拠したバスである。したがって、同じ画像処理部200が例えばメモリコントローラ116に対してライト、リードの順に要求を発したとしても、それら両要求の発行の時間間隔が短いと、メモリコントローラ116がそれら両要求を受け取る順序は逆転する場合がある。
ここで内部バス110は、複数のバスがバスブリッジを介して接続されたものであってもよい。CPU102や画像処理部200等からメモリコントローラ116までに、リード・ライト間の順序関係を保証しないバスが複数介在する場合には、リード要求とライト要求との間の順序の逆転が更に起こりやすくなる。
本実施形態では、共有メモリ114に対するリード及びライトの要求を発するCPU102や画像処理部200等の要素に、リードとライトとの間の順序の入れ替わりを起こさないようにする仕組みを設けている。以下では、画像処理部200を代表例にとって、この仕組みについて説明する。
図2は、本実施形態の画像処理部200の内部構成の一例を示す。図2において、画像処理部200は、画像処理コア部210と、1以上のDMAC(Direct Memory Access Controller)220を有する。
画像処理コア部210は、画像処理部200が担う画像処理を行う要素である。画像処理コア部210は、ハードウエア回路として構成されていてもよいし、汎用プロセッサが画像処理のためのプログラムを実行することによりソフトウエア的に構成されていてもよいし、ハードウエア回路とソフトウエアの処理との組合せとして構成されていてもよい。画像処理コア部210は、DMAC220に対してデータのライト・リードを指示する。
DMAC220は、画像処理部200と内部バス110上の他の装置(例えばメモリコントローラ116)との間のDMA転送を制御する。
DMAC220において、ライトカウンタ222は、画像処理コア部210から入力されたライトデータ(共有メモリ114に対して書き込むデータ)のデータ量を計数する。計数結果を示すカウンタデータは、ライトコマンド生成部(図では「ライトコマンド生成」と表記)224及びライトフラグ生成部(図では「ライトフラグ生成」と表記)226に渡される。ライトコマンド生成部224は、共有メモリ114へデータの書き込みを要求するライトコマンド(ライト要求)を生成する。
ライトフラグ生成部226は、本実施形態の制御のためのフラグを生成する。フラグは、所定の(すなわち予め定めた)処理単位分のライトデータの書き込みが終わったことを確認するために用いる確認情報である。DMAC220は、処理単位分のデータのライトコマンドを発行する毎に、フラグを書き込むためのライトコマンドを発行する。内部バス110は、ライトコマンド同士の順序関係は保証するので、フラグが共有メモリ114に書き込まれていることが確認できれば、その直前の処理単位のデータは共有メモリ114に書き込み済みであることが分かる。このことを利用して、本実施形態では、処理単位のデータが共有メモリ114に書き込まれたことを確認した上で、その処理単位についてのリードコマンド(リード要求)が発行されるように制御する。これにより、その処理単位についてのライトコマンドをリードコマンドが追い越してしまうことを防止する(詳細は後述)。
ここで、処理単位とは、画像処理部200が共有メモリ114を用いて実行する画像処理において、処理の単位となる画像の範囲のことである。処理単位は、例えば画像のライン、バンド(すなわち連続する所定数のライン)、ページ等である。
アドレスサイズ管理部228は、ライトコマンドのライト先のアドレス及びライトするデータのサイズ、及びリードコマンドのリード先のアドレス及びリードするデータのサイズを生成し、ライトコマンド生成部224及びリードコマンド生成部230に渡す。
リードコマンド生成部(図では「リードコマンド生成」と表記)230は、共有メモリ114からのデータの読み出しを要求するリードコマンド(リード要求)を生成する。
リードフラグ生成部(図では「リードフラグ生成」と表記)232は、共有メモリ114に書き込まれたフラグを読み出す指示を生成する。この指示(フラグ生成通知)を受けたリードコマンド生成部230は、共有メモリ114に書き込まれたフラグを読み取るためのリードコマンドを発行する。
データ判定部234は、リードフラグ生成部232の指示により共有メモリ114から読み出されたデータが、ライトフラグ生成部226の指示により共有メモリ114に書き込まれたフラグと一致するかどうかを判定する。一致すれば、そのフラグが共有メモリに書き込まれたということであり、これはそのフラグの前にライトコマンドが発行された処理単位のデータが共有メモリ114に書き込み済みであることを意味する。
読み出したデータが書き込んだフラグに一致した場合、1つの例では、データ判定部234は、リードコマンド生成部230に処理単位のライトが完了した旨を通知する。リードコマンド生成部230は、ライトコマンド生成部224が書き込んでいる処理単位に対するリードコマンドの発行は、その通知を受け取るまで発行せずに保留する。そして、その通知を受けると、その処理単位についてのリードコマンドの発行を開始する。
また別の例では、データ判定部234は、読み出したデータが書き込んだフラグに一致した場合、画像処理コア部210に処理単位のライトが完了した旨を通知する。この通知に応じ、画像処理コア部210は、その処理単位のリードを開始する。この例では、画像処理コア部210は、その処理単位のライトが完了するまでは、その処理単位についてリードは開始しない。
次に、図3を参照して、画像処理コア部210が共有メモリ114内に確保したラインバッファ300を用いて画像処理を行う場合に生じ得る問題について説明する。
この例では、画像処理コア部210は、共有メモリ114内に保持された入力画像310の第mライン(mは正の整数。図ではLmと表記)の第m画素(nは正の整数。図ではpnと表記)を、ラインバッファ300内に保持された1つ前のライン(L(n−1))の画像と組み合わせて処理するものとする(例えば1つ前のラインとの平均をとる等)。この場合の画像処理コア部210及びDMAC220の処理は以下のようになる。ここでは、DMAC220は上述したフラグによる処理単位の書き込み確認を行わないものとして、その場合に生じる問題を説明する。図では、入力画像310の第3ラインL3の第1画素p1を処理する時点の様子を模式的に示している
画像処理コア部210は、以下の処理を繰り返す。
(1)入力画像310の第mライン第n画素のデータをDMAC220に要求し取得(正確には共有メモリ114内のその第n画素のアドレスのデータを要求して取得。以下同じ)
(2)ラインバッファ300(第m−1ライン)の第m画素のデータをDMAC220に要求し取得
(3)上記(1)及び(2)で取得した2つの画素のデータを処理
(4)上記(3)の処理結果を共有メモリ114内の出力画像の領域(図示省略)の第mライン第n画素として出力
(5)上記(1)で読み込んだデータをラインバッファ300の第m画素に書き込み(ラインバッファ300の第m画素の値を第nラインの当該画素の値に書き換え)
(6)画素番号nがラインの最終画素の番号ならライン番号mを1増やし、そうでなければ画素番号nを1増やして上記(1)に戻る。
(1)入力画像310の第mライン第n画素のデータをDMAC220に要求し取得(正確には共有メモリ114内のその第n画素のアドレスのデータを要求して取得。以下同じ)
(2)ラインバッファ300(第m−1ライン)の第m画素のデータをDMAC220に要求し取得
(3)上記(1)及び(2)で取得した2つの画素のデータを処理
(4)上記(3)の処理結果を共有メモリ114内の出力画像の領域(図示省略)の第mライン第n画素として出力
(5)上記(1)で読み込んだデータをラインバッファ300の第m画素に書き込み(ラインバッファ300の第m画素の値を第nラインの当該画素の値に書き換え)
(6)画素番号nがラインの最終画素の番号ならライン番号mを1増やし、そうでなければ画素番号nを1増やして上記(1)に戻る。
DMAC220は、画像処理コア部210からラインバッファ300内の画素データの読み出し要求(上述(2))を受けた場合、以下の処理を行う。なお、DMAC220は、DMAのバースト転送1回の転送サイズ(以下「転送単位」とも呼ぶ)例えば4バイト×1バーストあたりの転送サイクル数)の内部バッファをリード用及びライト用にそれぞれ有しているものとする。
(7)画像処理コア部210からラインバッファ300内の第m画素(アドレス)の読み出し要求を取得
(8)その画素のデータがリード用の内部バッファにあれば、そのデータを応答
(9)その画素のデータがリード用の内部バッファになければ、その画素を始点として転送サイズ分のデータをラインバッファ300から読み込んで(DMA転送のリードコマンド))内部バッファにバッファすると共に、その画素のデータを画像処理コア部210に応答。
(7)画像処理コア部210からラインバッファ300内の第m画素(アドレス)の読み出し要求を取得
(8)その画素のデータがリード用の内部バッファにあれば、そのデータを応答
(9)その画素のデータがリード用の内部バッファになければ、その画素を始点として転送サイズ分のデータをラインバッファ300から読み込んで(DMA転送のリードコマンド))内部バッファにバッファすると共に、その画素のデータを画像処理コア部210に応答。
DMAC220が画像処理コア部210から入力画像の画素の読み出し要求を受けた場合の処理も同様である。
DMAC220は、画像処理コア部210からラインバッファ300内の第m画素への書き込み要求(上述(5))を受けた場合、以下の処理を行う。
(10)画像処理コア部210からラインバッファ300内の第m画素へのデータの書き込み要求を取得
(11)そのデータをライト用の内部バッファ内の該当画素(アドレス)に書き込み
(12)ライト用の内部バッファが満杯になった場合、又はラインの最後の画素のデータ(これはライトカウンタ222のカウントから判別可能)をその内部バッファに書き込んだ場合、その内部バッファのデータをラインバッファ300へ書き込む(DMA転送のライトコマンド)と共に、その内部バッファをクリア。
(10)画像処理コア部210からラインバッファ300内の第m画素へのデータの書き込み要求を取得
(11)そのデータをライト用の内部バッファ内の該当画素(アドレス)に書き込み
(12)ライト用の内部バッファが満杯になった場合、又はラインの最後の画素のデータ(これはライトカウンタ222のカウントから判別可能)をその内部バッファに書き込んだ場合、その内部バッファのデータをラインバッファ300へ書き込む(DMA転送のライトコマンド)と共に、その内部バッファをクリア。
DMAC220が画像処理コア部210から出力画像の画素の書き込み要求を受けた場合の処理も同様である。
さて、図3の例において、画像処理コア部210が第2ラインについての処理を進め、ラインバッファ300に第2ラインの最後の画素を書き込む書き込み要求をDMAC220に送り、続いて第3ラインの第1画素の処理のためにラインバッファ300の第1画素(この時点では第2ラインの画素を保持しているはずである)を読み出す読み出し要求をDMAC220に送ったとする。この場合、上記(12)及び(9)の説明から分かるように、DMAC220は第2ラインの最後の画素のデータの書き込み要求を受けてライト用内部バッファに書き込んだ時点でその内部バッファ内の画素群Aを書き込むためのライトコマンドを内部バス110に発行し、第3ラインの最初の画素の読み込み要求を受けた時点で第1画素から転送単位分の画素群Bを読み込むためのリードコマンドを内部バス110に発行する。したがって、そのライトコマンドとそのリードコマンドの発行の時間差は、実質1画素分という極めて短い時間である。このため内部バス110内でそのリードコマンドがそのライトコマンドを追い越すことが起こりやすい。
ここで、1ラインのデータサイズが小さい場合(例えば、処理する画像の幅が小さい場合や、ファクシミリ画像のように1画素のデータ量が小さい場合)、そのライトコマンドが書き込む画素群Aとそのリードコマンドが読み込む画素群Bとに重なりが生じる。この場合、リードコマンドがライトコマンドを追い越すと、ラインバッファ300の画素群Aが書き込まれる前に、DMAC220が画素群Bをラインバッファ300から読み出すことになる。このとき、両画素群の重なりの画素については、DMAC220は、そのライトコマンドで書き込まれる前の画素値を読み出すことになり、これはリードすべき画素値と異なる不正な値であるため、正しい処理結果が得られなくなる。
また、内部バス110が、リードとライトの順序関係を保証しないバスを複数段接続したものである場合、ライトコマンドとリードコマンドの順序は更に入れ替わりやすくなる。例えば第3ラインの先頭の転送単位を読み出すリードコマンドが、第2ラインの最後の転送単位のライトコマンドだけでなく、その1つ前、2つ前のライトコマンドを追い越してしまうことも起こり得る。したがって、第3ラインの先頭のリードコマンドが、ライトコマンドにより書き換えられる前の不正な値を読み出すことがより起こりやすくなる。
このように、ラインバッファ300を用いる画像処理では、ラインバッファ300の先頭画素を含む画素群の読み出しのためのリードコマンドが、その前のライトコマンドにより書き換えられる前の画素値を読み込んでしまうという問題が起こることがある。
これに対して本実施形態では、上述したフラグを利用することで、そのような問題の発生を防止する。
すなわち、本実施形態では、図4に示すように、共有メモリ114内のラインバッファ300とは異なるアドレス(例えばラインバッファ300の次のアドレス)に、フラグ領域320を確保する。そして、DMAC220は、図5に示す処理を実行する。
図5の手順では、DMAC220は、画像の1ライン毎に図示したS10〜S18のステップを繰り返す。なお、画像についての処理を開始する前に、その画像の1ラインのデータ量やライン数は、画像処理コア部210からDMAC220に通知されているものとする。
まずDMAC220のリードコマンド生成部230及びライトコマンド生成部224は、画像処理コア部210からの読み出し要求及び書き込み要求に応じて、ラインバッファ300に対する1ライン分のリードコマンド及びライトコマンドを順に内部バス110に発行する(S10)。一般に、1ラインの処理のために、リードコマンド及びライトコマンドはそれぞれ複数回発行される。
DMAC220のライトカウンタ222は、1ライン分のデータ量についてのライトコマンドを発行し終わったことを検知すると、ライトフラグ生成部226にフラグの生成を指示する。この指示に応じ、ライトフラグ生成部226は、フラグを生成し、ライトコマンド生成部224に対してそのフラグをフラグ領域320に書き込むライトコマンドを生成するよう指示する。これに応じライトコマンド生成部224は、フラグを書き込むためのライトコマンドを内部バス110に発行する(S12)。
なお、ライトフラグ生成部226は、ライン毎に、少なくとも直前のラインのために生成したフラグとは異なる値のフラグを生成する。直前のラインに用いたフラグと同じフラグを用いると、フラグ領域320に書き込んだフラグが直前のラインのものか今回のラインのものかが区別できないからである。ライトフラグ生成部226は、そのような条件を満たすフラグとして、例えば対象のラインの番号を含むフラグを生成する。ライン番号をフラグとして用いると、例えば画像処理部200のデバッグや故障原因究明の際に、フラグ領域320のフラグの値を読むことで、どのラインまで処理がなされたかが分かる。
なお、今回のラインについて書き込むフラグの値を、直前のラインに用いたフラグの値と異なる値とすることは必須ではない。例えば、DMAC220が、図5のS16でフラグが共有メモリ114に書き込まれたことを確認(判定結果Yes)した後、フラグ領域320をクリア(データを消去)するステップを設ければ、フラグ領域320に書き込むフラグの値は毎回同じであってもよい。ただし、この場合、フラグ領域320をクリアするステップの分だけ処理に時間がかかる。
S12の後、リードフラグ生成部232は、リードコマンド生成部230に対して、フラグ領域320の読み取りを指示する。これに応じてリードコマンド生成部230は、フラグ領域320を読み取るリードコマンドを内部バス110に発行する(S14)。
次にデータ判定部234は、S14のリードコマンドに応じて共有メモリ114から応答されたデータ(フラグ領域320から読み出されたもの)が、S12でフラグ領域320に書き込んだフラグの値と一致するか否かを判定する(S16)。この判定の結果がNoの場合、S12のフラグがまだフラグ領域320に書き込まれていない(すなわちS14のリードコマンドがS12のライトコマンドを追い越した)ということなので、S14に戻りリードコマンド生成部230が再度フラグ領域320を読み出すリードコマンドを発行する。S16の判定結果がYesとなるまで、S14及びS16が繰り返される。
S16の判定結果がYesになった場合、それは現在のラインの最後の画素までラインバッファ300への書き込みが完了したことを意味する。この場合、DMAC220は、画像の最後のラインまで処理が終わったかどうかを判定し(S18)、この判定の結果がNoの場合は、S10に戻り、次のラインの処理を実行する。S18の判定結果がYesになると、図5の処理は終了する。
図5の処理では、DMAC220は、第mラインのフラグがフラグ領域320に書き込まれたことを確認(S16)する前に、画像処理コア部210から第(m+1)ラインの処理のためのラインバッファ300の読み出し要求を受け取っても、その要求に対応するリードコマンドは発行しない。第(m+1)ラインの処理のためのリードコマンドは、S16でフラグの書き込みが確認されてはじめて発行される
したがって、第(m+1)ラインのためのリードコマンドが、第mラインの最後のライトコマンドを追い越すことは防止される。
メモリに対してデータを書き込んだ場合に、その書き込み先のアドレスからデータを読み取ることで、そのデータが正しくメモリに書き込まれているかを確認するという制御はよく行われている。しかし、この考えを画像処理部200に適用するとしても、1ラインの全画素についてこのような確認処理を行うと、処理速度の低下を招く。そこで、処理速度の低下を抑制するために、例えば書き込み確認の対象を1ラインの最後の所定数の画素に限定することが考えられる。しかし、この方法は正しく機能しない。最後の所定数の画素の値が、1つ前のラインの最後の所定数の画素値と一致することが起こり得るからである。特に、文書画像の場合、ラインの末尾の画素群は余白すなわち値が0であることが多いので、ラインバッファ300のライン末尾のアドレスから読み出したデータは、それが1つ前のラインのデータであったとしても、現在のラインの末尾のデータと一致する可能性が高い。このため、ラインバッファ300の末尾のデータを読み出して確認する方式では、現在のラインが最後まで書き込まれたのかを正しく判定することはできない。
これに対し、本実施形態では、ラインバッファ300の外にフラグ領域320を設け、そこに画像データとは別のフラグを書き込む。したがって、現在のラインについてのフラグの値を1つ前のラインについてのフラグと異なる値とすることで、そのフラグが読み取れれば、現在のラインが最後まで書き込まれたと確認することが可能となる。
また以上に説明した例では、リードコマンドの追い越し防止は、画像処理部200内のDMAC220の制御により実現されており、相手方であるメモリコントローラ116や共有メモリ114には特別の構成は不要である。
以上、ラインバッファ300を用いたライン単位の画像処理の場合の例を説明したが、ライン以外の処理単位、例えばバンドやページを単位とする画像処理の場合も、同様の仕組みが採用可能である。
また、以上に説明した例は、単一の画像処理部200内でのリード・ライト間の順序を維持するためのものであったが、内部バス110上の異なる装置(CPU102や各画像処理部200等)が連携して処理を実行する場合にも同様の仕組みでリード・ライト間の順序維持を行ってもよい。以下、異なる装置間でのリードとライトの順序維持の必要性とそのための実施形態について説明する。
例えば第1の画像処理部200がある処理単位の画像を処理し、その処理結果の画像を別の第2の画像処理部200が処理する場合を考える。この場合、CPU102が実行する全体制御のプログラムが、まず第1の画像処理部200に入力画像の処理を指示し、その処理が終了すると、共有メモリ114に書き込まれたその処理の結果の画像の処理を第2の画像処理部200に指示することが考えられる。ここで、従来であれば、第1の画像処理部200は、ある処理単位の画像の処理結果の最後の転送単位を共有メモリ114に書き込むライトコマンドを発行した時点で、CPU102(制御プログラム)に対して処理終了を通知する。これを受けたCPU102は、共有メモリ102内のその処理結果に対する処理の開始を第2の画像処理部200に指示し、これに応じて第2の画像処理部200が共有メモリ114内のその処理結果を読み出すリードコマンドを発行する。
この場合、第1の画像処理部200が処理単位についての処理終了を通知した時点では、まだその処理単位の処理結果の最後のデータが共有メモリ114に書き込まれたかどうかは不明である。第2の画像処理部200は、その処理終了通知をトリガとして共有メモリ114のその処理結果を読みに行く。このため、内部バス110内でリードコマンドとライトコマンドの順序の入れ替えが生じると、第1の画像処理部200の処理結果の書き込みが完了する前に、第2の画像処理部200が共有メモリ114上のその処理結果のアドレスを読み出しに行くことが起こりえる。この場合、読み出したデータは正しくないデータを含むことになるので、第2の画像処理部200の処理が正しく実行されないことになる。
このような問題に対する解決策として、上述の例と同様のフラグを利用した制御が適用可能である。図6に、この変形例における画像処理部200の処理手順を例示する。
図6の手順では、画像処理部200は、まずCPU102からある処理単位についての処理開始指示を受信する(S20)。この指示には、例えば共有メモリ114内に記憶されたその処理単位の入力データのアドレスやサイズの情報、及び処理結果のデータを書き込むべき出力領域のアドレスやサイズの情報を含む。
次に画像処理部200は、DMAC220により共有メモリ114からその処理単位の入力データを読み込んで処理し、処理結果のデータをその共有メモリ114の出力領域に書き込む(S22)。処理結果の最後のデータの書き込みのためのライトコマンドを発行した後、DMAC220は、書き込み完了確認のためのフラグを、共有メモリ114内の入力データの領域及び出力領域のいずれとも異なる所定のフラグ領域に書き込むライトコマンドを発行する(S24)。
S24におけるフラグのライトコマンドの発行の後、DMAC220は、そのフラグ領域を読み出すリードコマンドを発行する(S26)。そして、DMAC220は、そのリードコマンドに対して共有メモリ114から返されたデータが、S24で書き込んだフラグと一致するか否かを判定し(S28)、一致しなければ再度フラグ領域の読み出し(S26)と判定(S28)を繰り返す。S28の判定結果がYesとなると、画像処理部200は、CPU102に対して、処理完了の通知を送信する(S29)。CPU102は、処理完了の通知を受け取ると、共有メモリ114内のその処理結果のデータを用いて次に処理を行う別の画像処理部200に対して、処理の開始を指示する。
この変形例において、DMAC220が処理単位の後にフラグ領域に書き込むフラグとして、処理単位の識別情報(例えば処理単位がページの場合はページ番号、バンドの場合はバンド番号)を用いてもよい。処理単位の番号をフラグとして用いると、例えば画像処理部200のデバッグや故障原因究明の際に、フラグ領域320のフラグの値を読むことで、どの処理単位まで処理がなされたかが分かる。
また、フラグとして、画像処理部200の識別情報と処理単位の識別情報との組合せを用いてもよい。例えば画像処理部200のデバッグや故障原因究明の際に、フラグ領域320のフラグの値を読むことで、どの画像処理部200がどの処理単位まで処理を進めたかが分かる。
図6は、画像処理部200の処理手順であったが、CPU102やDSP104も同様の処理を行ってもよい。例えば、CPU102がプログラムを実行することで生成したデータをある画像処理部200が画像処理のために利用する場合を考える。例えば、CPU102が、その画像処理部200が処理する画像の各ラインの先頭アドレスの座標の配列を生成し、その画像処理部200はその配列を参照して共有メモリ114上の画像データの各ラインを特定して処理を行う等の場合である。このような場合、CPU102(プログラム)又はこれに付属したDMAC220が、図6の手順と同様、そのデータの最後の部分を共有メモリ114に書き込むライトコマンドを内部バス110に発行(S22)した後、フラグ領域にフラグを書き込むライトコマンドを発行する(S24)。その後、CPU102等は、フラグ領域をリードし、S24で書き込んだフラグが読み出せれば(S28がYes)、その画像処理部200に対してそのデータを用いた処理の開始を指示する。
図6の例では、CPU102(制御プログラム)が、画像処理部200からの処理完了通知を受けて、次に処理を行う別の画像処理部200に処理開始を指示した。これに対する別の例として、CPU102(制御プログラム)を介在させずに、画像処理部200と、この画像処理部200の処理結果を用いて処理を行う別の画像処理部200を連携させる方式もある。以下、この方式の変形例について説明する。
この変形例では、CPU102は、複数の画像処理部200が連携する連携処理を開始する際に、それら複数の画像処理部200に対して処理開始を指示する。この場合、CPU102は、連携処理における前の画像処理部200の処理結果を用いて処理を行う必要がある画像処理部200に対しては、その処理結果及びフラグがそれぞれ書き込まれるはずの共有メモリ114内の領域の情報(アドレス、サイズ等)やフラグ領域に書き込まれるはずのフラグの値を特定するフラグ値情報(例えば処理単位毎のフラグの値を決めるルール)を、処理開始の指示に対応付けて通知する。処理開始の指示を受けた画像処理部200は、例えば定期的にフラグ領域をリードし、フラグ値情報から特定される値が読み出せれば、前の画像処理部200の処理結果を用いた処理を開始する。
図7に、この変形例における画像処理部200の処理手順を例示する。この手順は、画像処理部200は、CPU102(制御プログラム)から処理開始の指示を受信する(S30)ことで開始する。
その指示には、(a)画像処理部200が実行する処理の対象となる入力データ、(b)その処理の開始のトリガとなる開始フラグ(連携処理の最初の処理の場合は不要)、(c)その処理の結果である出力データ、(d)その出力データの書き込みが完了したことを示す完了フラグ(連携処理の最後の処理の場合は不要)、のそれぞれの項目について、共有メモリ114でのそれら各項目の記憶領域を表す情報(アドレス、サイズ等)が含まれる。ここで、ある画像処理部200の出力データ及び完了フラグは、連携処理における次の画像処理部200の入力データ及び開始フラグとなる。
また、その処理開始指示には、開始フラグの値を特定する開始フラグ値情報が含まれていてもよい。開始フラグ値情報は、画像処理部200が読み出す開始フラグの領域に、前の画像処理部200により書き込まれているべき開始フラグの値を特定する情報である。この情報は、開始フラグの値そのものであってもよいし、開始フラグの値を決めるルールを示す情報であってもよい。このルールの一例としては、例えば処理単位の番号を開始フラグとするというルール、その処理単位についての処理結果(出力データ)を生成した画像処理部200の識別情報とその処理単位の番号との組合せを開始フラグとするというルール等がある。なお、画像処理部200に開始フラグ値情報があらかじめ設定されている場合には、CPU102から指示する必要はない。
また、その処理開始指示には、終了フラグの値を特定する終了フラグ値情報が含まれていてもよい。終了フラグ値情報は、画像処理部200が処理結果の後に共有メモリ114に書き込む終了フラグの値を特定する情報である。ある画像処理部200に与える終了フラグ値情報と、連携処理においてその画像処理部200の処理結果を用いて処理を実行する別の画像処理部200に与える開始フラグ値情報とは、互いに対応している。なお、画像処理部200に終了フラグ値情報があらかじめ設定されている場合には、CPU102から指示する必要はない。
S30の後、画像処理部200は、CPU102からの指示に、開始フラグの領域の情報があるかどうかを判定し(S32)、この判定の結果がYesであれば、その開始フラグ領域に対するリードコマンドを発行し(S34)、このリードコマンドに応じて共有メモリ114から読み出した値が、開始フラグ値情報により特定される開始フラグと一致するか否かを判定する(S36)。一致しない場合、画像処理部200は、開始フラグ領域のリードを繰り返す(S34)。一致した場合は、画像処理部200は、共有メモリ114から入力データをリードして自らの処理を実行し、その処理の結果を、指示された出力データの領域に書き込む(S38)。そして、処理結果の最後の部分の書き込み(ライトコマンド発行)が完了した後、画像処理部200は、完了フラグ値情報により特定される完了フラグを、指定された完了フラグ領域に書き込む(S39)。
なお、1回の処理開始指示に応じて画像処理部200が複数の処理単位を処理するケースでは、画像処理部200はS32〜S39の処理を処理単位毎に繰り返せばよい。この場合、ある処理単位についての開始フラグ及び終了フラグとしては、直前の処理単位についての開始フラグ及び終了フラグとは異なる値としてもよい(例えばそれらフラグに処理単位の番号を含めるなど)。
100 画像形成装置、102 共有メモリ、106 画像読取装置、110 内部バス、112 画像印字部、114 共有メモリ、116 メモリコントローラ、200 画像処理部、210 画像処理コア部、220 DMAC、222 ライトカウンタ、224 ライトコマンド生成部、226 ライトフラグ生成部、228 アドレスサイズ管理部、230 リードコマンド生成部、232 リードフラグ生成部、234 データ判定部、300 ラインバッファ、310 入力画像、320 フラグ領域。
Claims (7)
- ライト要求同士の順序及びリード要求同士の順序は維持するがライト要求とリード要求との間の順序は維持しない転送経路に対して、処理単位の最後のデータをメモリに書き込む第1ライト要求を発行した後に、前記メモリ内の前記データが書き込まれる領域とは異なる領域に確認情報を書き込む第2ライト要求を発行するライト発行手段と、
前記第2ライト要求の発行後に、前記確認情報を読み取る第1リード要求を前記転送経路に発行し、前記第1リード要求に対して前記確認情報を読み取った後に、前記メモリに書き込まれた前記処理単位のデータに対する第2リード要求を前記転送経路へ発行するリード発行手段と、
を含む転送制御装置。 - 前記ライト発行手段は、前記処理単位についての前記確認情報として、前記処理単位の1つ前の処理単位についての前記確認情報とは異なる値の情報を用いる、ことを特徴とする請求項1に記載の転送制御装置。
- 前記ライト発行手段は、前記処理単位についての前記確認情報として、前記処理単位の識別情報を用いる、ことを特徴とする請求項1に記載の転送制御装置。
- 第1の処理装置と、
前記第1の処理装置がメモリに書き込んだデータを用いて処理を実行する第2の処理装置と、
前記第1の処理装置と前記第2の処理装置との連携を制御する制御装置と、
を含み、
前記第1の処理装置は、
ライト要求同士の順序及びリード要求同士の順序は維持するがライト要求とリード要求との間の順序は維持しない転送経路に対して、前記データの最後の部分をメモリに書き込む第1ライト要求を発行した後に、前記メモリ内の前記データが書き込まれる領域とは異なる領域に確認情報を書き込む第2ライト要求を発行するライト発行手段と、
前記第2ライト要求の発行後に、前記確認情報を読み取るリード要求を前記転送経路に発行し、前記リード要求に対して前記確認情報が読み取った場合に、前記メモリへの前記データの書き込みが完了したことを示す完了通知を前記制御装置に送信する手段と、
を含み、
前記制御装置は、前記第1の処理装置から前記完了通知を受けると、前記第2の処理装置に前記データを用いた処理の開始を指示する、
ことを特徴とする処理システム。 - 前記確認情報は、前記第1の処理装置の識別情報を含む情報である、ことを特徴とする請求項4に記載の処理システム。
- ライト要求同士の順序及びリード要求同士の順序は維持するがライト要求とリード要求との間の順序は維持しない転送経路に対して、データの最後の部分をメモリに書き込む第1ライト要求を発行した後に、前記メモリ内の前記データが書き込まれる領域とは異なる領域に確認情報を書き込む第2ライト要求を発行するライト発行手段と、
前記第2ライト要求の発行後に、前記確認情報を読み取るリード要求を前記転送経路に発行し、前記リード要求に対して前記確認情報が読み取った場合に、前記メモリへの前記データの書き込みが完了したことを示す完了通知を制御装置に送信する手段と、
を含む処理装置。 - 第1の処理装置と、
前記第1の処理装置がメモリに書き込んだデータを用いて処理を実行する第2の処理装置と、
を含み、
前記第1の処理装置は、
ライト要求同士の順序及びリード要求同士の順序は維持するがライト要求とリード要求との間の順序は維持しない転送経路に対して、前記データの最後の部分をメモリに書き込む第1ライト要求を発行した後に、前記メモリ内の前記データが書き込まれる領域とは異なる領域に確認情報を書き込む第2ライト要求を発行するライト発行手段、
を含み、
前記第2の処理装置は、
前記メモリ内の前記確認情報を読み取るリード要求を前記転送経路に発行する手段と、
前記リード要求に対して前記確認情報が読み取れた場合に、前記メモリ内の前記データを用いた前記処理を開始する手段と、
を含む処理システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017053066A JP2018156428A (ja) | 2017-03-17 | 2017-03-17 | 転送制御装置、処理システム及び処理装置 |
US15/709,968 US20180267923A1 (en) | 2017-03-17 | 2017-09-20 | Transfer control device, processing system, and processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017053066A JP2018156428A (ja) | 2017-03-17 | 2017-03-17 | 転送制御装置、処理システム及び処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018156428A true JP2018156428A (ja) | 2018-10-04 |
Family
ID=63519323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017053066A Pending JP2018156428A (ja) | 2017-03-17 | 2017-03-17 | 転送制御装置、処理システム及び処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20180267923A1 (ja) |
JP (1) | JP2018156428A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971715A (zh) * | 2017-04-10 | 2024-05-03 | 微软技术许可有限责任公司 | 多处理器系统中的中继一致存储器管理 |
US10540288B2 (en) | 2018-02-02 | 2020-01-21 | Fungible, Inc. | Efficient work unit processing in a multicore system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005078596A (ja) * | 2003-09-03 | 2005-03-24 | Hitachi Ltd | データ転送装置の制御方法、データ転送装置、チャネル制御装置、及び記憶デバイス制御装置 |
JP2005346164A (ja) * | 2004-05-31 | 2005-12-15 | Toshiba Corp | データ処理装置およびデータ転送制御方法 |
JP2006215873A (ja) * | 2005-02-04 | 2006-08-17 | Toshiba Corp | 制御装置、情報処理装置、及び転送処理方法 |
JP2008299425A (ja) * | 2007-05-29 | 2008-12-11 | Toshiba Corp | データ転送装置及びデータ転送方法 |
JP2010072888A (ja) * | 2008-09-18 | 2010-04-02 | Nec Engineering Ltd | Dma転送制御システム |
JP2016031547A (ja) * | 2014-07-25 | 2016-03-07 | 株式会社リコー | 信号転送装置及び信号転送装置の制御方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910212B2 (en) * | 2000-12-04 | 2005-06-21 | International Business Machines Corporation | System and method for improved complex storage locks |
US8949500B2 (en) * | 2011-08-08 | 2015-02-03 | Lsi Corporation | Non-blocking processor bus bridge for network processors or the like |
JP2016177478A (ja) * | 2015-03-19 | 2016-10-06 | 株式会社リコー | 信号転送装置、情報処理装置、及び信号転送方法 |
-
2017
- 2017-03-17 JP JP2017053066A patent/JP2018156428A/ja active Pending
- 2017-09-20 US US15/709,968 patent/US20180267923A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005078596A (ja) * | 2003-09-03 | 2005-03-24 | Hitachi Ltd | データ転送装置の制御方法、データ転送装置、チャネル制御装置、及び記憶デバイス制御装置 |
JP2005346164A (ja) * | 2004-05-31 | 2005-12-15 | Toshiba Corp | データ処理装置およびデータ転送制御方法 |
JP2006215873A (ja) * | 2005-02-04 | 2006-08-17 | Toshiba Corp | 制御装置、情報処理装置、及び転送処理方法 |
JP2008299425A (ja) * | 2007-05-29 | 2008-12-11 | Toshiba Corp | データ転送装置及びデータ転送方法 |
JP2010072888A (ja) * | 2008-09-18 | 2010-04-02 | Nec Engineering Ltd | Dma転送制御システム |
JP2016031547A (ja) * | 2014-07-25 | 2016-03-07 | 株式会社リコー | 信号転送装置及び信号転送装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180267923A1 (en) | 2018-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010263328A (ja) | 画像処理装置および画像処理方法 | |
US10931834B2 (en) | Information processing apparatus | |
JP2018156428A (ja) | 転送制御装置、処理システム及び処理装置 | |
US10860392B2 (en) | Electronic device and image processing device | |
US20120182582A1 (en) | Image forming apparatus and method of controlling the same | |
JP2012034254A (ja) | データ転送装置、画像形成装置、データ転送制御方法、データ転送制御プログラム及び記録媒体 | |
US8526039B2 (en) | Image processing apparatus, and control method thereof and program | |
JP2016031547A (ja) | 信号転送装置及び信号転送装置の制御方法 | |
JP5272601B2 (ja) | 画像形成装置およびデータ転送方法 | |
JP2020191520A (ja) | 撮像装置及び撮像装置の制御方法 | |
JP2016092483A (ja) | メモリ制御回路及び画像形成装置 | |
US9753728B2 (en) | Apparatus and medium for converting a persistent wait instruction to an instruction for periodically waiting for a control target | |
JP2016012761A (ja) | 読取システム、読取制御装置、及び、読取制御装置の制御方法 | |
US20210165593A1 (en) | Information processing apparatus, control device, and control method of control device | |
JP6171367B2 (ja) | スイッチ装置、画像処理装置、及び排他制御方法 | |
US11093150B2 (en) | Image processing apparatus | |
JP5780768B2 (ja) | 情報処理装置、その制御方法、およびプログラム | |
JP6930186B2 (ja) | 画像形成装置及び画像処理システム | |
JP7259348B2 (ja) | 情報処理装置、情報処理装置の起動方法、及び、情報処理装置の起動プログラム | |
JP7194009B2 (ja) | データ処理装置および方法 | |
US20150124297A1 (en) | Image processing device and image processing method | |
JP2005301714A (ja) | マルチcpuシステム、そのデータ転送方法、及びそのプログラム | |
JP2007323662A (ja) | データ転送方法 | |
JP2003323333A (ja) | メモリ装置及びその制御方法 | |
JP5952306B2 (ja) | 画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200228 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210209 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210803 |