JP6433146B2 - 情報処理装置、システム、情報処理方法、コンピュータプログラム - Google Patents

情報処理装置、システム、情報処理方法、コンピュータプログラム Download PDF

Info

Publication number
JP6433146B2
JP6433146B2 JP2014088553A JP2014088553A JP6433146B2 JP 6433146 B2 JP6433146 B2 JP 6433146B2 JP 2014088553 A JP2014088553 A JP 2014088553A JP 2014088553 A JP2014088553 A JP 2014088553A JP 6433146 B2 JP6433146 B2 JP 6433146B2
Authority
JP
Japan
Prior art keywords
data
result
register
transfer
checksum operation
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
JP2014088553A
Other languages
English (en)
Other versions
JP2015207223A (ja
JP2015207223A5 (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.)
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 JP2014088553A priority Critical patent/JP6433146B2/ja
Priority to US14/688,273 priority patent/US9898230B2/en
Publication of JP2015207223A publication Critical patent/JP2015207223A/ja
Publication of JP2015207223A5 publication Critical patent/JP2015207223A5/ja
Application granted granted Critical
Publication of JP6433146B2 publication Critical patent/JP6433146B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Bus Control (AREA)

Description

本発明は、データ処理技術に関するもので、特に、DMA転送と同時に転送データのチェックサム演算を実行する技術に関するものである。
TCP(Transmission Control Protocol)/IP(Internet Protocol)の通信プロトコルを使用してネットワークに接続し、通信相手とデータ転送を行う通信機器がある。近年、このような通信機器間で高解像度、高精細の映像データを転送するような利用形態が増えてきている。そこで、広帯域なデータ転送を可能とするためには、通信機器における通信プロトコル処理の高速化が不可欠となってくる。
TCP/IPの通信プロトコルは、転送するデータに送信先のアドレスや誤り訂正符号等のヘッダを付加してパケットを形成し、このパケット単位で通信を行うものである。この誤り訂正符合にはチェックサムが使用され、パケット全体に対して1の補数として和を求めて、さらに1の補数を取ることで計算される。
このように、TCP/IPの通信プロトコルではチェックサムを得るためにパケット全体に対して演算処理を実行しなければならない。そのため、通信プロトコル処理の高速化を行うためには、この演算処理を高速に実行する必要がある。
上記のようなチェックサム演算を高速に実行するために、様々な装置や制御方法がこれまで提案されており、その中に特許文献1に記載されている演算回路がある。この演算回路は、ディスクリプタに記載された内容に従ってDMA転送を用いて任意回数の入力データを演算して結果を出力するものであり、任意回数の入力データを一度に演算せずに、複数に分割して演算処理する。演算回路は、分割した演算毎の途中結果を一旦外部記憶装置に格納し、次の演算処理にて途中結果を読み込んで演算処理し、その繰り返しにより最終結果を得るものである。
特開2008-129632号公報
特許文献1に記載の演算回路では、演算処理を実行するためにDMA転送を行うこととなっており、DMA転送されるデータ全部に対して演算処理を行うことになっている。しかしながら、DMA転送を行うデータの一部分(例えば、ヘッダとフッダを除いた部分)について演算処理を行う場合は、上記従来例では対応できないという課題があった。
本発明はこのような問題に鑑みてなされたものであり、DMA転送を行うデータの全部に対して演算処理を行う場合と、転送データの一部について演算処理を行う場合と、でそれぞれに好適な演算処理方法を提供するための技術を提供する。
本発明の一様態は、複数の記憶領域を有するレジスタと、
第1のメモリに格納されているデータを第2のメモリに転送する転送器と、
前記転送器が転送しているデータに対するチェックサム演算を行う演算器と
を備え、
第1のモードが設定されている場合、
前記演算器は、前記チェックサム演算の結果を前記転送器に送出し、
前記転送器は、該結果を前記第2のメモリに転送し、
前記第1のモードとは異なる第2のモードであって、前記演算器によるチェックサム演算の結果を前記レジスタの第1の記憶領域に上書きするか否かを前記レジスタにおけるビット値を用いて設定可能な該第2のモードが設定されている場合、
前記演算器は、前記転送器が転送しているデータのうちチェックサム演算の対象として指定された部分データに対するチェックサム演算を行い、
前記演算器は、
(1)前記レジスタがFullではない場合には、前記部分データに対するチェックサム演算の結果を前記第1の記憶領域に送出し、
(2)前記レジスタがFullの場合であって、前記演算器によるチェックサム演算の結果を前記第1の記憶領域に上書きすると設定されている場合には前記部分データに対するチェックサム演算の結果を前記第1の記憶領域に送出して上書きし、
(3)前記レジスタがFullの場合であって、前記演算器によるチェックサム演算の結果を前記第1の記憶領域に上書きしないと設定されている場合には、前記部分データに対するチェックサム演算の結果の前記第1の記憶領域への送出を停止する
ことを特徴とする。
本発明の構成により、DMA転送を行うデータの全部に対して演算処理を行う場合と、転送データの一部について演算処理を行う場合と、でそれぞれに好適な演算処理方法を提供することができる。
システムの構成例を示すブロック図。 ディスクリプタの構成例を示す図。 レジスタ部104の構成例を示す図。 通常モードの動作例を示す図。 レジスタモードの動作例を示す図 システムの動作を示すフローチャート。
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。
[第1の実施形態]
本実施形態では、第1のメモリから第2のメモリにデータ転送(DMA転送)を行うと共に、転送中のデータに対してチェックサム演算を行う情報処理装置として機能するデータ処理装置を有するシステムの一例について説明する。先ず、本実施形態に係るシステムの構成例について、図1のブロック図を用いて説明する。
図1に示す如く、本実施形態に係るシステムは、データ処理装置101、CPU114、転送元メモリ115、転送先メモリ116、ディスクリプタ用メモリ117、を有し、それぞれは共通のバス113に接続されている。
先ず、CPU114について説明する。CPU114は、システム全体の動作制御を行う制御部の一例であり、例えば、バス113及びレジスタI/F107を介して、データ処理装置101に対して様々な動作指示を行ったり設定を行ったりする。
次に、転送元メモリ115及び転送先メモリ116について説明する。転送元メモリ115には、転送対象となるデータが格納されており、このデータは、データ処理装置101によって転送先メモリ116に転送される。
次に、ディスクリプタ用メモリ117について説明する。データ処理装置101にデータ転送(転送元メモリ115から転送先メモリ116へのデータ転送)を行わせるためには、CPU114は、ディスクリプタ用メモリ117にディスクリプタと呼ばれる記述子を登録すると共に、該ディスクリプタ用メモリ117におけるディスクリプタの格納アドレスをデータ処理装置101に登録する必要がある。然るにディスクリプタ用メモリ117は、このCPU114により登録されるディスクリプタを登録するためのメモリとして機能するものである。
ここで、ディスクリプタについて図2を用いて説明する。ディスクリプタは、転送元に係るディスクリプタである転送元用ディスクリプタ、転送先に係るディスクリプタである転送先用ディスクリプタ、の2種類から成り、CPU114は、1以上の転送元用ディスクリプタと1以上の転送先用ディスクリプタとを生成することになる。
転送元用ディスクリプタのフォーマットを図2(A)に示す。Data Start Address(SRC_DSA201)は、転送対象となるデータの(転送元メモリ115における)先頭アドレスである。Data Length(SRC_DL202)は、転送対象となるデータのサイズ(データ長)である。Next Descriptor Enable(SRC_NDE203)は、次の転送元用ディスクリプタが存在するか否かを示すフラグ値であり、SRC_NDE203=「1」の場合は存在することを示し、SRC_NDE203=「0」であれば存在しないことを示す。Next Descriptor Address(SRC_NDA204)は、次の転送元用ディスクリプタが存在する場合(SRC_NDE203=「1」の場合)に使用されるフィールドであり、該次の転送元用ディスクリプタの(ディスクリプタ用メモリ117における)先頭アドレスである。
転送先用ディスクリプタのフォーマットを図2(B)に示す。Data Start Address(DST_DSA211)は、転送先メモリ116において転送対象となるデータを格納するための領域(格納領域)の先頭アドレスである。Data Length(DST_DL212)は、格納領域のサイズである。Next Descriptor Enable(DST_NDE213)は、次の転送先用ディスクリプタが存在するか否かを示すフラグ値である。DST_NDE213=「1」の場合は存在することを示し、DST_NDE213=「0」であれば存在しないことを示す。Next Descriptor Address(DST_NDA214)は、次の転送先用ディスクリプタが存在する場合(DST_NDE213=「1」の場合)に使用されるフィールドであり、該次の転送先用ディスクリプタの(ディスクリプタ用メモリ117における)先頭アドレスである。Checksum Enable(CS_EN215)は、本システムにおける動作モードに応じた値(モード値)である。通常モードが設定されている場合には、CS_EN215=「1」となり、レジスタモードが設定されている場合には、CS_EN215=「0」となる。通常モード、レジスタモード、については後述する。
このように転送元用ディスクリプタ、転送先用ディスクリプタを構成することで、たとえ転送元用ディスクリプタ、転送先用ディスクリプタのそれぞれを複数生成し、ディスクリプタ用メモリ117に格納したとしても(SRC_NDE=DST_NDE=「1」)、データ処理装置101には、複数の転送元用ディスクリプタのうち先頭の転送元用ディスクリプタの先頭アドレス、複数の転送先用ディスクリプタのうち先頭の転送先用ディスクリプタの先頭アドレス、さえ登録しておけば良く、N(Nは2以上の整数)番目の転送元用ディスクリプタの先頭アドレスは、(N−1)番目の転送元用ディスクリプタのSRC_NDA204から取得することができ、N(Nは2以上の整数)番目の転送先用ディスクリプタの先頭アドレスは、(N−1)番目の転送先用ディスクリプタのDST_NDA214から取得することができる。
なお、転送元用ディスクリプタ、転送先用ディスクリプタのフォーマットはそれぞれ図2(A)、(B)に示したフォーマットに限るものではない。例えば、転送元用ディスクリプタ、転送先用ディスクリプタを別個にするのではなく、連結させて1つのディスクリプタとしても構わない。
次に、データ処理装置101について説明する。データ処理装置101は、DMA転送制御部102、演算部103、レジスタ部104、を有している。また、DMA転送制御部102は、リードデータI/F105及びライトデータI/F106を介してバス113に接続されており、レジスタ部104はレジスタI/F107を介してバス113に接続されている。
DMA転送制御部102は、データ処理装置101全体の動作制御を行うためのものであり、主に、転送元メモリ115から転送先メモリ116へのデータ転送を制御する。演算部103は、ライトデータI/F106を介して転送先メモリ116に転送中のデータに対してチェックサム演算を行う。レジスタ部104は、CPU114から設定された様々な情報等を保持するためのメモリである。
ここで、レジスタ部104の構成例について、図3を用いて説明する。
SRC Descriptor Address(SRC_DA301)は、ディスクリプタ用メモリ117に登録されている転送元用ディスクリプタのうち先頭の転送元用ディスクリプタの先頭アドレスを登録するための領域である。
DST Descriptor Address(DST_DA302)は、ディスクリプタ用メモリ117に登録されている複数の転送先用ディスクリプタのうち先頭の転送先用ディスクリプタの先頭アドレスを登録するための領域である。
non-Checksum Header(NCS_HD303)、non-Checksum Footer(NCS_FD304)、Checksum Length(CS_DL305)は何れも、本システムにおける動作モードがレジスタモードの場合に使用される領域である。
NCS_HD303は、転送対象のデータの先頭部分にチェックサム演算の対象外とする部分データが存在する場合に、該転送対象のデータにおいて該部分データを規定する情報を登録するための領域である。例えば、転送対象のデータの先頭から該部分データの後端までの間のデータサイズ(データ長)がNCS_HD303に登録される。なお、本システム(特にデータ処理装置101)が初期化された場合には、NCS_HD303には「0」が登録されているものとする。
NCS_FD304は、転送対象のデータの末尾部分にチェックサム演算の対象外とする部分データが存在する場合に、該転送対象のデータにおいて該部分データを規定する情報を登録するための領域である。例えば、該部分データの先頭から該転送対象のデータの後端までの間のデータサイズ(データ長)がNCS_FD304に登録される。なお、本システム(特にデータ処理装置101)が初期化された場合には、NCS_FD304には「0」が登録されているものとする。
CS_DL305は、転送先メモリ116において転送対象となるデータを格納するための領域のサイズを登録するための領域であり、DST_DL212の値と同じ値が登録されることになる。なお、本システム(特にデータ処理装置101)が初期化された場合には、CS_DL305には適当な値が登録されているものとする。
Register-Mode Enable(REG_EN306)は、本システムの動作モードを表す値を登録するための領域であり、通常モードを設定する場合には、REG_EN306に「1」を登録し、レジスタモードを設定する場合には、REG_EN306に「0」を登録する。なお、本システム(特にデータ処理装置101)が初期化された場合には、REG_EN306には「1」が登録されているものとする。
Status(STS307)は、データ処理装置101側でデータ転送処理やチェックサム演算が完了しているか否かを示す値を書き込むための領域である。データ処理装置101がスタンバイ状態であったり、データ転送処理中であったり、チェックサム演算中であったりする場合、STS307には「0」が登録される。一方、データ処理装置101がデータ転送処理及びチェックサム演算を完了させた場合には、STS307には「1」が登録される。なお、本システム(特にデータ処理装置101)の初期状態では、STS307には「0」が登録されている。
Checksum FIFO(CS_FIFO308)は、チェックサム演算の結果を格納するための領域であり、内部は8段のFIFOで構成され、チェックサム演算の結果をFIFOに保持しているかどうかを示すフラグ情報を示す任意のビットも保持している。該フラグ情報が「0」であれば読み出すチェックサム演算結果があることを示し、「1」であれば読み出すチェックサム演算結果が無いことを示す。
なお、レジスタ部104の構成は図3に示した構成に限るものではなく、更に以下のようなフィールドを設けても構わない。
・ アボート設定フィールド
このフィールドは、「1」をセットすることでチェックサム演算を中止することができるフィールドである。通常モード実行中であればチェックサム演算結果として“0000”を出力し、レジスタモードであればチェックサム演算結果としては何も出力しない。初期状態は、「0」である。
・ インバース設定フィールド
このフィールドは、チェックサム演算結果の表記方法を選択できるフィールドである。TCP/IPの通信プロトコルで使用されるチェックサムは、パケット全体に対して1の補数として和を求めて、さらに1の補数を取ることで計算される。そのため、このフィールドに「0」と入力した場合はチェックサム演算結果として1の補数としての和とし、「1」と入力した場合はチェックサム演算結果として1の補数としての和の補数とする。
・ フリーラン設定フィールド
このフィールドは、レジスタモードで動作した場合にチェックサム演算結果が出力されるCS_FIFO308において、FIFOがFullの場合にチェックサム演算結果を上書きするかどうかを設定するフィールドである。このフィールドに「0」と入力した場合はCS_FIFO308のFIFOがFullの場合は書き込みを停止し、「1」と入力した場合はそのまま上書きする。
次に、上記の構成を有するシステムの動作について、図6のフローチャートを用いて説明する。
<ステップS601>
CPU114は、1以上の転送元用ディスクリプタ及び1以上の転送先用ディスクリプタを、バス113を介してディスクリプタ用メモリ117に登録する。
<ステップS602>
CPU114は、ディスクリプタ用メモリ117に登録した1以上の転送元用ディスクリプタのうち先頭の転送元用ディスクリプタのディスクリプタ用メモリ117における先頭アドレスを、バス113及びレジスタI/F107を介して、レジスタ部104のSRC_DA301に登録する。
また、CPU114は、ディスクリプタ用メモリ117に登録した1以上の転送先用ディスクリプタのうち先頭の転送先用ディスクリプタのディスクリプタ用メモリ117における先頭アドレスを、バス113及びレジスタI/F107を介して、レジスタ部104のDST_DA302に登録する。また、CPU114は、通常モード及びレジスタモードのどちらの動作モードで起動するかを示すために、REG_EN306に「1」あるいは「0」を登録する。
<ステップS603>
CPU114が、動作モードとして通常モードを登録した場合には、処理はステップS604に進み、レジスタモードを登録した場合には、処理はステップS605に進む。
<ステップS604>
CPU114は、NCS_HD303、NCS_FD304、CS_DL305のそれぞれを初期化して、それぞれの領域の初期値を登録する。REG_EN306には、通常モードを示す値が登録されている。なお、これらの領域がすでに初期化されているのであれば、本ステップにおける処理は省略することができる。
<ステップS605>
CPU114は、NCS_HD303、NCS_FD304、CS_DL305のそれぞれに対して値を登録する。これによりNCS_HD303には、これから転送されるデータの先頭部分(チェックサム演算の対象外とする部分データ)を規定する値が登録されることになる。また、NCS_FD304には、これから転送されるデータの末尾部分(チェックサム演算の対象外とする部分データ)を規定する値が登録されることになる。また、CS_DL305には、DST_DL212の値と同じ値が登録されることになる。また、REG_EN306には、レジスタモードを示す値が登録されている。
<ステップS606>
演算部103は、レジスタ信号110を介してレジスタ部104から、REG_EN306に登録されている値を取得する。
<ステップS607>
ステップS607における処理は、第1回目と第N(Nは2以上の整数)目とで異なる。
第1回目のステップS607では、DMA転送制御部102は、レジスタ信号109を介してSRC_DA301及びDST_DA302から先頭アドレスを取得する。
第N回目のステップS607では、DMA転送制御部102は、第(N−1)回目のステップS608で取得した転送元用ディスクリプタ中のSRC_NDE203の値が「1」であれば、SRC_NDA204から先頭アドレスを取得する。同様に、DMA転送制御部102は、第(N−1)回目のステップS608で取得した転送先用ディスクリプタ中のDST_NDE213の値が「1」であれば、DST_NDA214から先頭アドレスを取得する。
<ステップS608>
DMA転送制御部102は、ステップS607で取得した(ディスクリプタ用メモリ117における)転送元用ディスクリプタの先頭アドレスにリードデータI/F105及びバス113を介してアクセスし、該転送元用ディスクリプタを読み出す。また、DMA転送制御部102は、ステップS607で取得した(ディスクリプタ用メモリ117における)転送先用ディスクリプタの先頭アドレスにリードデータI/F105及びバス113を介してアクセスし、該転送先用ディスクリプタを読み出す。
<ステップS609>
DMA転送制御部102は、ステップS608で取得した転送元用ディスクリプタ中のSRC_DSA201が示すアドレスを先頭アドレスとし、該転送元用ディスクリプタ中のSRC_DL202が示すデータ長ぶんのデータをリードデータI/F105を介して転送元メモリ115から読み出す。そしてDMA転送制御部102は、この読み出したデータを、ステップS608で取得した転送先用ディスクリプタ中のDST_DSA211を先頭アドレスとし、該転送先用ディスクリプタ中のDST_DL212をサイズとする転送先メモリ116中の格納領域に、ライトデータI/F106を介して書き込む。
このようにして、ステップS608で取得したディスクリプタ(転送元用ディスクリプタ及び転送先用ディスクリプタ)に基づいて、転送元メモリ115から転送先メモリ116へのデータ転送を行う。
<ステップS612>
CPU114がデータ処理装置101を通常モードで起動した場合には、処理はステップS613に進み、レジスタモードで起動した場合には、処理はステップS617に進む。
<ステップS613>
DMA転送制御部102は、転送先用ディスクリプタ中のCS_EN215の値が「1」であることを確認し、転送先用ディスクリプタ中のDST_DL212を、通知信号111を介して演算部103に通知する。
<ステップS614>
演算部103は、ライトデータI/F106を介して転送先メモリ116に転送されるデータをスヌープI/F112を介して取得し、該取得したデータに対して一定のデータ幅で1の補数の和を求める計算、即ちチェックサム演算を行う。そして、演算部103は、チェックサム演算を行った対象のデータの量が、DMA転送制御部102から通知信号111を介して通知されたDST_DL212の値に達したか否かを判断し、達した場合には、チェックサム演算が完了したものと判断し、通知信号111を介してその旨をDMA転送制御部102に通知してから処理はステップS615に進む。
<ステップS615>
演算部103は、ステップS614において行ったチェックサム演算の結果を、通知信号111を介してDMA転送制御部102に通知する。
<ステップS616>
DMA転送制御部102は、通知信号111を介して演算部103から受けたチェックサム演算の結果を、ステップS609で転送先メモリ116に転送したデータの末尾に付加すべく、該チェックサム演算の結果をライトデータI/F106及びバス113を介して転送先メモリ116に対して送出する。
<ステップS617>
DMA転送制御部102は、転送先用ディスクリプタ中のCS_EN215の値が「0」であることを確認し、演算部103は、レジスタ信号110を介してレジスタ部104から、NCS_HD303、NCS_FD304、CS_DL305のそれぞれに登録されている値を取得する。
<ステップS618>
ステップS608で取得したディスクリプタに基づくデータ転送が開始されると、転送先メモリ116にはライトデータI/F106を介してデータが転送されるので、演算部103は、このライトデータI/F106を介して転送されるデータを規定の単位でスヌープI/F112を介して取得する。また、演算部103は、ステップS608で取得したディスクリプタに基づくデータ転送の開始後にスヌープI/F112を介して取得したデータの量をカウントしている。そして演算部103は、このカウント値(データ転送の開始後に取得したデータの総量)が、NCS_HD303が示すデータ長を超えるまではチェックサム演算を開始せず、超えると、それ以降にスヌープI/F112を介して取得したデータに対してチェックサム演算を行う。このチェックサム演算は、「DST_DL212の値からNCS_HD303の値とNCS_FD304の値とを差し引いた残りの値」が示すデータ量分だけ行う。
これにより、演算部103は、ステップS608で取得したディスクリプタに基づくデータ転送により転送される全データのうち先頭からNCS_HD303が示すデータ長分のデータ及び末尾からNCS_FD304が示すデータ長分のデータ、についてはチェックサム演算は行わず、残りの部分についてチェックサム演算を行うことになる。
そして、演算部103は、チェックサム演算を行った対象のデータの量が、「DST_DL212の値からNCS_HD303の値とNCS_FD304の値とを差し引いた残りの値」が示すデータ量に達したか否かを判断し、達した場合には、チェックサム演算が完了したものと判断し、処理はステップS619に進む。
<ステップS619>
演算部103は、ステップS618において行ったチェックサム演算の結果を、レジスタ信号110を介してレジスタ部104のCS_FIFO308に登録する。
<ステップS610>
DMA転送制御部102は、転送元用ディスクリプタ中のSRC_NDE203の値が0且つ転送先用ディスクリプタ中のDST_NDE213の値が0であるか否かを判断し、共に0の場合は、全てのディスクリプタに基づくデータ転送が完了したものと判断して、処理はステップS611に進む。
一方、転送元用ディスクリプタ中のSRC_NDE203の値、転送先用ディスクリプタ中のDST_NDE213の値、のうち少なくとも一方が「1」であれば、処理はステップS607に戻る。
<ステップS611>
本ステップでは、それぞれのディスクリプタに応じたデータ転送の完了やそれぞれのデータ転送に対するチェックサム演算の完了を示す値をレジスタ部104のSTS307に登録する。この登録の仕方は、通常モード、レジスタモードのそれぞれで異なる。
通常モードの場合、DMA転送制御部102は、データ転送が完了し且つ演算部103から通知信号111を介してチェックサム演算の完了通知を受けると、DMA転送及びチェックサム演算の完了を検知し、その旨をレジスタ部104のSTS307に登録する。
レジスタモードの場合、DMA転送制御部102は、データ転送が完了すると、DMA転送が完了した旨をレジスタ部104に通知する。また、演算部103は、チェックサム演算が完了すると、チェックサム演算が完了した旨をレジスタ部104に通知する。これにより、レジスタ部104のSTS307には、それぞれのディスクリプタに応じたデータ転送の完了及びそれぞれのデータ転送に対するチェックサム演算の完了を示す値が登録されることになる。
そして、これに応じてレジスタ部104は、それぞれのディスクリプタに応じたデータ転送の完了及びそれぞれのデータ転送に対するチェックサム演算の完了を示す値を、割り込み信号108を介してCPU114に通知する。
次に、図6のフローチャートに従った処理を、具体例を挙げて説明する。先ず、通常モードにおける処理について、図4の具体例を用いて説明する。図4では、転送対象となる3つのデータ(Data1,Data2,Data3)が隣接して転送元メモリ115内(領域408内)に格納されており、Data1,Data2,Data3をそれぞれ、転送先メモリ116において隣接していない領域(領域409,410,411)にDMA転送すると共に、それぞれのデータに対するチェックサムの結果を転送先メモリ116(領域401,402,403)に格納するケースについて説明する。
このようなDMA転送を実現するためにCPU114が生成する転送元用ディスクリプタ、転送先用ディスクリプタについては次の通りである。すなわち、上記の通り、Data1,Data2,Data3は、転送元メモリ115において連続するアドレスに書き込まれている一塊のデータ群であるため、CPU114は、この一塊のデータ群に対して1つの転送元用ディスクリプタ404を生成する。転送元用ディスクリプタ404におけるSRC_DSA201には、この一塊のデータ群の転送元メモリ115における先頭アドレス(すなわち、Data1の先頭アドレス)が格納されている。また、転送元用ディスクリプタ404におけるSRC_DL202には、この一塊のデータ群のデータサイズ(即ち、Data1,Data2,Data3のそれぞれのデータサイズの合計値)が格納されている。また、転送元メモリ115には、この一塊のデータ群(Data1,Data2,Data3)だけが転送対象として格納されており、転送元用ディスクリプタも転送元用ディスクリプタ404だけとなるため、転送元用ディスクリプタ404におけるSRC_NDE203には「0」が格納され、SRC_NDA204にはNULLなどの無効値が格納されることになる。
また、上記の通り、転送先メモリ116には、Data1,Data2,Data3のそれぞれを、転送先メモリ116において隣接していない領域に転送するため、転送先用ディスクリプタは、Data1,Data2,Data3のそれぞれについて生成することになる。図4では、Data1,Data2,Data3のそれぞれに対する転送先用ディスクリプタとして、転送先用ディスクリプタ405,406,407が生成されている。
転送先用ディスクリプタ405のDST_DSA211には、転送先メモリ116においてData1を格納するための領域(格納領域)の先頭アドレスが格納されており、DST_DL212には、転送先メモリ116においてData1を格納するための領域のサイズが格納されている。また、転送先用ディスクリプタ405のDST_NDE213には、次の転送対象データであるData2に対する転送先用ディスクリプタ406が存在するために「1」が格納され、DST_NDA214には、転送先用ディスクリプタ406のディスクリプタ用メモリ117における先頭アドレスが格納されている。
転送先用ディスクリプタ406のDST_DSA211には、転送先メモリ116においてData2を格納するための領域(格納領域)の先頭アドレスが格納されており、DST_DL212には、転送先メモリ116においてData2を格納するための領域のサイズが格納されている。また、転送先用ディスクリプタ406のDST_NDE213には、次の転送対象データであるData3に対する転送先用ディスクリプタ407が存在するために「1」が格納され、DST_NDA214には、転送先用ディスクリプタ407のディスクリプタ用メモリ117における先頭アドレスが格納されている。
転送先用ディスクリプタ407のDST_DSA211には、転送先メモリ116においてData3を格納するための領域(格納領域)の先頭アドレスが格納されており、DST_DL212には、転送先メモリ116においてData3を格納するための領域のサイズが格納されている。また、転送先用ディスクリプタ407のDST_NDE213には、次の転送対象データが存在しないために「0」が格納され、DST_NDA214にはNULLなどの無効値が格納されている。
通常モードであるため、REG_EN306には通常モードを示す値が登録されている。CPU114は、転送元用ディスクリプタ404及び転送先用ディスクリプタ405,406,407をディスクリプタ用メモリ117に登録すると共に、転送元用ディスクリプタ404及び転送先用ディスクリプタ405のディスクリプタ用メモリ117における先頭アドレスをレジスタ部104のSRC_DA301、DST_DA302のそれぞれに登録する。
DMA転送制御部102は、SRC_DA301及びDST_DA302から先頭アドレスを取得し、該取得した先頭アドレスを用いてディスクリプタ用メモリ117から転送元用ディスクリプタ404及び転送先用ディスクリプタ405を取得する。そしてDMA転送制御部102は、転送元メモリ115において、転送元用ディスクリプタ404中のSRC_DSA201とSRC_DL202で指定された領域(領域408)内のデータを転送対象のデータとして読み出すことになる。そしてDMA転送制御部102は、読み出したデータの先頭から順に、転送先メモリ116において、転送先用ディスクリプタ405中のDST_DSA211及びDST_DL212で指定された領域(領域409)に転送する。この転送されたデータがData1である。演算部103は、このData1の転送中に該Data1に対してチェックサム演算を行い、DMA転送制御部102は、該チェックサム演算の結果を取得して転送先メモリ116の領域401に登録する。そして転送先用ディスクリプタ405中のDST_NDE213の値が「1」であるので、DMA転送制御部102は、転送先用ディスクリプタ405中のDST_NDA214のアドレスにアクセスして、転送先用ディスクリプタ406を取得する。
DMA転送制御部102は、未転送のデータ(Data2,Data3)の先頭から順に、転送先メモリ116において、転送先用ディスクリプタ406中のDST_DSA211及びDST_DL212で指定された領域(領域410)に転送する。この転送されたデータがData2である。演算部103は、このData2の転送中に該Data2に対してチェックサム演算を行い、DMA転送制御部102は、該チェックサム演算の結果を取得して転送先メモリ116の領域402に登録する。そして転送先用ディスクリプタ406中のDST_NDE213の値が「1」であるので、DMA転送制御部102は、転送先用ディスクリプタ406中のDST_NDA214のアドレスにアクセスして、転送先用ディスクリプタ407を取得する。
DMA転送制御部102は、未転送のデータ(Data3)の先頭から順に、転送先メモリ116において、転送先用ディスクリプタ407中のDST_DSA211及びDST_DL212で指定された領域(領域411)に転送する。この転送されたデータがData3である。演算部103は、このData3の転送中に該Data3に対してチェックサム演算を行い、DMA転送制御部102は、該チェックサム演算の結果を取得して転送先メモリ116の領域403に登録する。そして転送元用ディスクリプタ404中のSRC_NDE203の値及び転送先用ディスクリプタ407中のDST_NDE213の値が共に「0」であるので、DMA転送制御部102は、データ転送の完了及びチェックサム演算の完了を示す値を、レジスタ信号109を介してレジスタ部104のSTS307に登録する。これに応じてレジスタ部104は、データ転送の完了及びチェックサム演算の完了を示す値を、割り込み信号108を介してCPU114に通知する。
次に、レジスタモードにおける処理について、図5の具体例を用いて説明する。図5では、転送対象となるデータ(Data4)が転送元メモリ115内(領域502内)に格納されており、このData4を、転送先メモリ116内の領域(領域504)にDMA転送すると共に、Data4に対するチェックサムの結果をレジスタ部104に格納するケースについて説明する。
このようなDMA転送を実現するためにCPU114が生成する転送元用ディスクリプタ、転送先用ディスクリプタはそれぞれ、Data4に対する転送元用ディスクリプタ501及び転送先用ディスクリプタ503である。
転送元用ディスクリプタ501におけるSRC_DSA201には、Data4の転送元メモリ115における先頭アドレスが格納されている。また、転送元用ディスクリプタ501におけるSRC_DL202には、Data4のデータサイズが格納されている。また、転送元メモリ115には、Data4だけが転送対象として格納されており、転送元用ディスクリプタも転送元用ディスクリプタ501だけとなるため、転送元用ディスクリプタ501におけるSRC_NDE203には「0」が格納され、SRC_NDA204にはNULLなどの無効値が格納されることになる。
転送先用ディスクリプタ503のDST_DSA211には、転送先メモリ116においてData4を格納するための領域(格納領域)の先頭アドレスが格納されており、DST_DL212には、転送先メモリ116においてData4を格納するための領域のサイズが格納されている。また、転送先用ディスクリプタ503のDST_NDE213には「0」が格納され、DST_NDA214には、NULLなどの無効値が格納されることになる。
また、演算部103は、Data4全体に対してチェックサム演算を行うのではなく、図5の場合、Header(NCS_HD303が示すサイズ)とFooter(NCS_FD304が示すサイズ)とを省いた残りの部分(部分データ505)に対してチェックサム演算を行う。
レジスタモードであるため、レジスタ部104のNCS_HD303、NCS_FD304、CS_DL305にはそれぞれ、Headerのサイズ、Footerのサイズ、DST_DL212と同じ値が登録され、REG_EN306にはレジスタモードを表す値が登録される。CPU114は、転送元用ディスクリプタ501及び転送先用ディスクリプタ503をディスクリプタ用メモリ117に登録すると共に、転送元用ディスクリプタ501及び転送先用ディスクリプタ503のディスクリプタ用メモリ117における先頭アドレスをレジスタ部104のSRC_DA301、DST_DA302のそれぞれに登録する。
DMA転送制御部102は、SRC_DA301及びDST_DA302から先頭アドレスを取得し、該取得した先頭アドレスを用いてディスクリプタ用メモリ117から転送元用ディスクリプタ501及び転送先用ディスクリプタ503を取得する。そしてDMA転送制御部102は、転送元メモリ115において、転送元用ディスクリプタ501中のSRC_DSA201とSRC_DL202で指定された領域(領域502)内のデータ、即ちData4を転送対象のデータとして読み出すことになる。そしてDMA転送制御部102は、読み出したData4を、転送先メモリ116において、転送先用ディスクリプタ503中のDST_DSA211及びDST_DL212で指定された領域(領域504)に転送する。演算部103は、このData4の転送中に、該Data4においてNCS_HD303及びNCS_FD304によって規定されるHeader及びFooterを除く部分データ505に対してチェックサム演算を行い、該チェックサム演算の結果を取得してレジスタ部104のCS_FIFO308に登録する。
そして転送元用ディスクリプタ501中のSRC_NDE203の値及び転送先用ディスクリプタ503中のDST_NDE213の値が共に「0」であるので、データ転送の完了及びチェックサム演算の完了を示す値がレジスタ部104のSTS307に登録され、これに応じてレジスタ部104は、データ転送の完了及びチェックサム演算の完了を示す値を、割り込み信号108を介してCPU114に通知する。
このように、通常モードでDMA転送とチェックサム演算とを行う場合は、DMA転送制御部102がチェックサム演算を実行する主な制御を担う仕組みとなっている。一方、レジスタモードでDMA転送とチェックサム演算とを行う場合は、演算部103がチェックサム演算を実行する主な制御を担う仕組みとなっている。
以上説明した実施形態により、通常モードでチェックサム演算を実施する場合は、チェックサム演算を含むDMA転送設定手順を簡素化してオーバヘッドを少なく実行できる。一方、レジスタモードでチェックサム演算を実施する場合には、内部レジスタにチェックサム演算内容を設定する手順を追加するだけでチェックサム演算を含むDMA転送設定を可能とする。これにより、レジスタモードでチェックサム演算を実施する場合でも通常モードで使用したディスクリプタ構成を拡張しなくても良くなる。これにより、複数のディスクリプタをチェーンしてDMA転送を連続して実行し、かつレジスタモードをサポートする場合でも、ディスクリプタを格納するメモリエリアを小さく抑えることができる。
なお、以上説明した情報処理装置の構成は以下に示す構成の一例に過ぎず、以下に示す構成と同等以上の構成であれば、如何なる変形/変更を行っても構わない。すなわち、レジスタと、第1のメモリに格納されているデータを第2のメモリに転送する転送器と、転送器が転送しているデータに対するチェックサム演算を行う演算器と、を備える構成において、第1のモードが設定されている場合は次のように動作する。
すなわち、第1のモードが設定されている場合、演算器は、チェックサム演算の結果を転送器に送出し、転送器は、該結果を第2のメモリに転送する。一方、第1のモードとは異なる第2のモードが設定されている場合、演算器は、データのうちチェックサム演算の対象として指定された部分データに対するチェックサム演算を行い、該部分データに対するチェックサム演算の結果をレジスタに送出する。
[第2の実施形態]
第1の実施形態では、図1に示した構成を有するシステムによってデータ転送及びチェックサム演算を実行する実施形態について説明した。しかし、レジスタと、第1のメモリに格納されているデータを第2のメモリに転送する転送器と、転送器が転送しているデータに対するチェックサム演算を行う演算器と、を備えるコンピュータを上記のシステムの代わりに用いても構わない。この場合、このコンピュータのメモリに以下の処理を実行させるためのコンピュータプログラムをインストールし、該コンピュータのCPU等の制御部に該コンピュータプログラムを実行させることで、該コンピュータに以下の処理を実行させても構わない。
すなわち、第1のモードが設定されている場合、演算器にチェックサム演算の結果を転送器に送出させ、転送器に該結果を第2のメモリに転送させる。一方、第1のモードとは異なる第2のモードが設定されている場合、演算器に上記データのうちチェックサム演算の対象として指定された部分データに対するチェックサム演算を行わせ、該部分データに対するチェックサム演算の結果をレジスタに送出させる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
104:レジスタ部 102:DMA転送制御部 103:演算部

Claims (7)

  1. 複数の記憶領域を有するレジスタと、
    第1のメモリに格納されているデータを第2のメモリに転送する転送器と、
    前記転送器が転送しているデータに対するチェックサム演算を行う演算器と
    を備え、
    第1のモードが設定されている場合、
    前記演算器は、前記チェックサム演算の結果を前記転送器に送出し、
    前記転送器は、該結果を前記第2のメモリに転送し、
    前記第1のモードとは異なる第2のモードであって、前記演算器によるチェックサム演算の結果を前記レジスタの第1の記憶領域に上書きするか否かを前記レジスタにおけるビット値を用いて設定可能な該第2のモードが設定されている場合、
    前記演算器は、前記転送器が転送しているデータのうちチェックサム演算の対象として指定された部分データに対するチェックサム演算を行い、
    前記演算器は、
    (1)前記レジスタがFullではない場合には、前記部分データに対するチェックサム演算の結果を前記第1の記憶領域に送出し、
    (2)前記レジスタがFullの場合であって、前記演算器によるチェックサム演算の結果を前記第1の記憶領域に上書きすると設定されている場合には前記部分データに対するチェックサム演算の結果を前記第1の記憶領域に送出して上書きし、
    (3)前記レジスタがFullの場合であって、前記演算器によるチェックサム演算の結果を前記第1の記憶領域に上書きしないと設定されている場合には、前記部分データに対するチェックサム演算の結果の前記第1の記憶領域への送出を停止する
    ことを特徴とする情報処理装置。
  2. 前記第1のモードが設定されている場合、
    前記転送器は、データの転送の前に該データのサイズを前記演算器に送出し、
    前記演算器は、該サイズの分だけのデータのチェックサム演算を行ってから、該チェックサム演算の結果を前記転送器に送出し、
    前記転送器は更に、前記第2のメモリに転送したデータの末尾に前記演算器から受けたチェックサム演算の結果を付加する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2のモードが設定されている場合、
    前記演算器は、前記部分データを規定するための情報を前記レジスタにおいて前記第1の記憶領域とは異なる第2の記憶領域から取得し、該情報を用いて、前記転送器が転送しているデータから前記部分データをチェックサム演算の対象として指定し、該指定した部分データに対するチェックサム演算を行い、
    前記演算器は、
    (1)前記レジスタがFullではない場合には、前記部分データに対するチェックサム演算の結果を前記第1の記憶領域に送出し、
    (2)前記レジスタがFullの場合であって、前記演算器によるチェックサム演算の結果を前記第1の記憶領域に上書きすると設定されている場合には前記部分データに対するチェックサム演算の結果を前記第1の記憶領域に送出して上書きし、
    (3)前記レジスタがFullの場合であって、前記演算器によるチェックサム演算の結果を前記第1の記憶領域に上書きしないと設定されている場合には、前記部分データに対するチェックサム演算の結果の前記第1の記憶領域への送出を停止する
    ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 制御部と、
    前記第1のメモリと、
    前記第2のメモリと、
    請求項1乃至3の何れか1項に記載の情報処理装置と、
    を備えることを特徴とするシステム。
  5. 前記制御部は、前記部分データを規定するための情報を前記レジスタにおいて前記第1の記憶領域とは異なる第2の記憶領域に登録することを特徴とする請求項4に記載のシステム。
  6. 複数の記憶領域を有するレジスタと、
    第1のメモリに格納されているデータを第2のメモリに転送する転送器と、
    前記転送器が転送しているデータに対するチェックサム演算を行う演算器と
    を備える情報処理装置が行う情報処理方法であって、
    第1のモードが設定されている場合、
    前記演算器は、前記チェックサム演算の結果を前記転送器に送出し、
    前記転送器は、該結果を前記第2のメモリに転送し、
    前記第1のモードとは異なる第2のモードであって、前記演算器によるチェックサム演算の結果を前記レジスタの第1の記憶領域に上書きするか否かを前記レジスタにおけるビット値を用いて設定可能な該第2のモードが設定されている場合、
    前記演算器は、前記転送器が転送しているデータのうちチェックサム演算の対象として指定された部分データに対するチェックサム演算を行い、
    前記演算器は、
    (1)前記レジスタがFullではない場合には、前記部分データに対するチェックサム演算の結果を前記第1の記憶領域に送出し、
    (2)前記レジスタがFullの場合であって、前記演算器によるチェックサム演算の結果を前記第1の記憶領域に上書きすると設定されている場合には前記部分データに対するチェックサム演算の結果を前記第1の記憶領域に送出して上書きし、
    (3)前記レジスタがFullの場合であって、前記演算器によるチェックサム演算の結果を前記第1の記憶領域に上書きしないと設定されている場合には、前記部分データに対するチェックサム演算の結果の前記第1の記憶領域への送出を停止する
    ことを特徴とする情報処理方法。
  7. 複数の記憶領域を有するレジスタと、
    第1のメモリに格納されているデータを第2のメモリに転送する転送器と、
    前記転送器が転送しているデータに対するチェックサム演算を行う演算器と
    を備えるコンピュータに、
    第1のモードが設定されている場合、
    前記演算器に、前記チェックサム演算の結果を前記転送器に送出させ、
    前記転送器に、該結果を前記第2のメモリに転送させ、
    前記第1のモードとは異なる第2のモードであって、前記演算器によるチェックサム演算の結果を前記レジスタの第1の記憶領域に上書きするか否かを前記レジスタにおけるビット値を用いて設定可能な該第2のモードが設定されている場合、
    前記演算器に、前記転送器が転送しているデータのうちチェックサム演算の対象として指定された部分データに対するチェックサム演算を行わせ、
    前記演算器に、
    (1)前記レジスタがFullではない場合には、前記部分データに対するチェックサム演算の結果を前記第1の記憶領域に送出させ、
    (2)前記レジスタがFullの場合であって、前記演算器によるチェックサム演算の結果を前記第1の記憶領域に上書きすると設定されている場合には前記部分データに対するチェックサム演算の結果を前記第1の記憶領域に送出して上書きさせ、
    (3)前記レジスタがFullの場合であって、前記演算器によるチェックサム演算の結果を前記第1の記憶領域に上書きしないと設定されている場合には、前記部分データに対するチェックサム演算の結果の前記第1の記憶領域への送出を停止させる
    ことを特徴とするコンピュータプログラム。
JP2014088553A 2014-04-22 2014-04-22 情報処理装置、システム、情報処理方法、コンピュータプログラム Expired - Fee Related JP6433146B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014088553A JP6433146B2 (ja) 2014-04-22 2014-04-22 情報処理装置、システム、情報処理方法、コンピュータプログラム
US14/688,273 US9898230B2 (en) 2014-04-22 2015-04-16 Information processing apparatus, system, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014088553A JP6433146B2 (ja) 2014-04-22 2014-04-22 情報処理装置、システム、情報処理方法、コンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2015207223A JP2015207223A (ja) 2015-11-19
JP2015207223A5 JP2015207223A5 (ja) 2017-04-20
JP6433146B2 true JP6433146B2 (ja) 2018-12-05

Family

ID=54322118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014088553A Expired - Fee Related JP6433146B2 (ja) 2014-04-22 2014-04-22 情報処理装置、システム、情報処理方法、コンピュータプログラム

Country Status (2)

Country Link
US (1) US9898230B2 (ja)
JP (1) JP6433146B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9077773B2 (en) 2011-11-17 2015-07-07 Mashape, Inc. Cloud-based hub for facilitating distribution and consumption of application programming interfaces
JP6600241B2 (ja) * 2015-12-11 2019-10-30 キヤノン株式会社 演算装置及び演算方法、通信装置
JP6567476B2 (ja) * 2016-08-10 2019-08-28 株式会社ワイ・デー・ケー データ処理装置
JP6800514B2 (ja) * 2016-12-08 2020-12-16 キヤノン株式会社 通信装置、その制御方法、およびプログラム
US11582291B2 (en) 2017-07-28 2023-02-14 Kong Inc. Auto-documentation for application program interfaces based on network requests and responses
US9936005B1 (en) 2017-07-28 2018-04-03 Kong Inc. Systems and methods for distributed API gateways
US11171842B2 (en) 2019-09-05 2021-11-09 Kong Inc. Microservices application network control plane
US10225330B2 (en) 2017-07-28 2019-03-05 Kong Inc. Auto-documentation for application program interfaces based on network requests and responses
JP6976776B2 (ja) * 2017-08-31 2021-12-08 キヤノン株式会社 固体撮像装置、撮像システム、及び移動体
JP7145607B2 (ja) * 2017-12-13 2022-10-03 キヤノン株式会社 Dma転送装置、dma転送装置の制御方法、および通信装置
US10833703B2 (en) 2017-12-13 2020-11-10 Canon Kabushiki Kaisha DMA transfer apparatus, method of controlling the same, communication apparatus, method of controlling the same, and non-transitory computer-readable storage medium
JP6938399B2 (ja) * 2018-02-14 2021-09-22 キヤノン株式会社 通信装置、通信方法およびプログラム
JP7049140B2 (ja) * 2018-03-06 2022-04-06 キヤノン株式会社 通信装置およびその制御方法
US11595272B2 (en) 2019-09-05 2023-02-28 Kong Inc. Microservices application network control plane

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003089A (en) * 1997-03-31 1999-12-14 Siemens Information And Communication Networks, Inc. Method for constructing adaptive packet lengths in a congested network
US7058980B1 (en) * 2000-11-27 2006-06-06 Stmicroelectronics S.A. Device and method for protecting memory data against illicit access
JP3524914B1 (ja) * 2002-10-29 2004-05-10 三洋電機株式会社 チェックサム算出方法、チェックサム記録方法、およびその方法を利用可能な通信装置
US7843968B2 (en) * 2002-09-30 2010-11-30 Sanyo Electric Co., Ltd. Communication apparatus and applications thereof
JP4344576B2 (ja) * 2003-09-26 2009-10-14 株式会社ルネサステクノロジ パケット通信装置
JP2006285738A (ja) * 2005-04-01 2006-10-19 Canon Inc 複合機のソフトウェア起動方式
JP4747077B2 (ja) 2006-11-16 2011-08-10 ルネサスエレクトロニクス株式会社 演算回路
JP5003821B2 (ja) * 2008-06-25 2012-08-15 富士通株式会社 試験装置及び方法
JP2010041498A (ja) * 2008-08-06 2010-02-18 Canon Inc パケット作成装置及びパケット作成方法
US8352252B2 (en) * 2009-06-04 2013-01-08 Qualcomm Incorporated Systems and methods for preventing the loss of information within a speech frame
US8504517B2 (en) * 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication

Also Published As

Publication number Publication date
JP2015207223A (ja) 2015-11-19
US9898230B2 (en) 2018-02-20
US20150301886A1 (en) 2015-10-22

Similar Documents

Publication Publication Date Title
JP6433146B2 (ja) 情報処理装置、システム、情報処理方法、コンピュータプログラム
US20230421545A1 (en) Secure stream protocol for serial interconnect
TWI406133B (zh) 資料處理設備及資料傳送方法
JP6600241B2 (ja) 演算装置及び演算方法、通信装置
US20110238869A1 (en) Autonomous Multi-Packet Transfer for Universal Serial Bus
US20080235484A1 (en) Method and System for Host Memory Alignment
JP2007034392A (ja) 情報処理装置及びデータ処理方法
JP2011150666A (ja) 通信装置、情報処理装置、通信装置の制御方法及び制御プログラム
US11336297B2 (en) DMA transfer apparatus, method of controlling the same, communication apparatus, method of controlling the same, and non-transitory computer-readable storage medium
US20160350250A1 (en) Input output data alignment
CN113498595A (zh) 一种基于PCIe的数据传输方法及装置
US7539204B2 (en) Data and context memory sharing
JP4786575B2 (ja) コンピュータとネットワークインタフェースコントローラ間のデータ転送方法、プログラム及びネットワークインタフェースコントローラ
JP5729938B2 (ja) 通信装置およびその制御方法
JP5101195B2 (ja) インタフェースコントローラ
JP7145607B2 (ja) Dma転送装置、dma転送装置の制御方法、および通信装置
US20190306002A1 (en) Network interface controller
JP6938399B2 (ja) 通信装置、通信方法およびプログラム
JP6976786B2 (ja) 通信装置および通信装置の制御方法
JP5803000B2 (ja) Dma装置、情報処理装置、及びデータ転送方法
JP2018173856A (ja) 情報処理装置およびその制御方法
JP6614948B2 (ja) 演算装置、演算方法、通信装置、及びプログラム
JP6567476B2 (ja) データ処理装置
US20230062831A1 (en) Communication apparatus and control method thereof, and storage medium
TWI230863B (en) Input/output system and method for transferring control and data, and arbiter for coordinating data communication

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170313

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180906

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181106

R151 Written notification of patent or utility model registration

Ref document number: 6433146

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees