[go: up one dir, main page]

JP5287301B2 - ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法 - Google Patents

ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法 Download PDF

Info

Publication number
JP5287301B2
JP5287301B2 JP2009019030A JP2009019030A JP5287301B2 JP 5287301 B2 JP5287301 B2 JP 5287301B2 JP 2009019030 A JP2009019030 A JP 2009019030A JP 2009019030 A JP2009019030 A JP 2009019030A JP 5287301 B2 JP5287301 B2 JP 5287301B2
Authority
JP
Japan
Prior art keywords
descriptor
controller
read
main memory
transfer
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.)
Active
Application number
JP2009019030A
Other languages
English (en)
Other versions
JP2010176442A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009019030A priority Critical patent/JP5287301B2/ja
Priority to US12/632,368 priority patent/US8589601B2/en
Priority to EP09178758A priority patent/EP2214103B1/en
Priority to KR1020090126649A priority patent/KR101112666B1/ko
Priority to CN2010100025848A priority patent/CN101794262B/zh
Publication of JP2010176442A publication Critical patent/JP2010176442A/ja
Application granted granted Critical
Publication of JP5287301B2 publication Critical patent/JP5287301B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、ディスクリプタ転送装置、I/Oコントローラ、及びディスクリプタ転送方法に関する。
ディスクやネットワークインタフェースなどのI/Oデバイス(Input Output device :入出力装置)にデータ転送、パケット送信を行なわせる際、プロセッサは、ディスクリプタをI/Oデバイスのコントローラ(以下、I/Oコントローラ)に渡す。ディスクリプタは、I/Oデバイスに行なわせる処理の種類や、データ転送の対象となるメインメモリのアドレスなどを持つ。I/Oコントローラは、このディスクリプタの情報を元にI/Oデバイスに対し指示された処理を行わせる。
I/Oコントローラへディスクリプタを渡す、言い換えると転送する技術として、例えば、プロセッサが、I/Oコントローラが備えるディスクリプタ格納部にディスクリプタを書き込み、このディスクリプタ格納部に書き込まれたディスクリプタをI/Oコントローラに転送する方法がある。ディスクリプタ格納部は、メインメモリとは別に設けられた、メモリアクセスよりも高速でアクセス可能な記憶部である。また、例えば、I/Oコントローラがプロセッサからの要求を受け、メインメモリに格納されたディスクリプタを読み出す方法がある。
なお、DMAコントローラが、CPUによってTDチェーン格納部に書き込まれたTDチェーンに含まれる複数の転送ディスクリプタを順次処理して、メインメモリとI/Oデバイスとの間の一連のデータ転送を直接メモリアクセスによって実現するデータ転送方法が提案されている。
特開2006−259898号公報
前述したような、プロセッサが、ディスクリプタをI/Oコントローラが備えるディスクリプタ格納部に書き込んだ上で、このディスクリプタをI/Oコントローラに転送する方法によれば、ディスクリプタ転送にかかるレイテンシを下げることができる。しかし、この方法を実現するためには、I/Oコントローラが、比較的大きな容量を持つディスクリプタ格納部を備える必要がある。また、I/Oコントローラがプロセッサからの要求を受け、メインメモリに格納されたディスクリプタを読み出す方法では、メインメモリからのディスクリプタの読み出しに時間がかかるため、ディスクリプタ転送にかかるレイテンシが高くなってしまう。
本発明は、メインメモリとは別に設けられた、高速でアクセス可能なディスクリプタ記憶用の記憶部の容量を上げることなくディスクリプタ転送にかかるレイテンシを下げることを可能とするディスクリプタ転送装置の提供を目的とする。
また、本発明は、メインメモリとは別に設けられた、高速でアクセス可能なディスクリプタ記憶用の記憶部の容量を上げることなくディスクリプタ転送にかかるレイテンシを下げることを可能とするI/Oコントローラの提供を目的とする。
また、本発明は、メインメモリとは別に設けられた、高速でアクセス可能なディスクリプタ記憶用の記憶部の容量を上げることなくディスクリプタ転送にかかるレイテンシを下げることを可能とするディスクリプタ転送方法の提供を目的とする。
本ディスクリプタ転送装置は、I/Oデバイスに処理の実行を指示するI/Oコントローラに対して、前記実行すべき処理に関する情報を示すディスクリプタを転送するディスクリプタ転送装置であって、前記ディスクリプタを記憶するメインメモリと、前記ディスクリプタを記憶する記憶手段と、プロセッサからのディスクリプタ読み出し元に関する指示に従って、前記ディスクリプタを記憶するメインメモリ又は前記記憶手段から、指示されたディスクリプタを、格納位置を示すポインタに基づいて読み出すディスクリプタ読み出し手段と、前記読み出されたディスクリプタを前記I/Oコントローラに対して転送するディスクリプタ転送手段とを備え、前記ディスクリプタ読み出し手段が、予め定められたフラグを含む先頭のディスクリプタを前記記憶手段から読み出して前記I/Oコントローラに対して転送し、前記I/Oコントローラが転送された前記先頭のディスクリプタに含まれる前記フラグに従って前記先頭のディスクリプタに基づく実行指示データを転送している間に、前記先頭のディスクリプタの後続のディスクリプタを前記メインメモリから読み出す。
また、本I/Oコントローラは、I/Oデバイスに処理の実行を指示するI/Oコントローラであって、実行すべき処理の内容を示すディスクリプタをI/Oコントローラに転送するディスクリプタ転送装置と、前記ディスクリプタ転送装置から転送されたディスクリプタに基づいて、前記I/Oデバイスに処理の実行を指示する実行指示手段とを備え、前記ディスクリプタ転送装置が、前記ディスクリプタを記憶するメインメモリと、前記ディスクリプタを記憶する記憶手段と、プロセッサからのディスクリプタ読み出し元に関する指示に従って、前記ディスクリプタを記憶するメインメモリ又は前記記憶手段から、指示されたディスクリプタを、格納位置を示すポインタに基づいて読み出すディスクリプタ読み出し手段と、前記読み出されたディスクリプタを前記I/Oコントローラに対して転送するディスクリプタ転送手段とを備え、前記ディスクリプタ読み出し手段が、予め定められたフラグを含む先頭のディスクリプタを前記記憶手段から読み出して前記I/Oコントローラに対して転送し、前記I/Oコントローラが転送された前記先頭のディスクリプタに含まれる前記フラグに従って前記先頭のディスクリプタに基づく実行指示データを転送している間に、前記先頭のディスクリプタの後続のディスクリプタを前記メインメモリから読み出す。
また、本ディスクリプタ転送方法は、I/Oデバイスに処理の実行を指示するI/Oコントローラに対して、前記実行すべき処理の内容を示すディスクリプタを転送するディスクリプタ転送装置におけるディスクリプタ転送方法であって、プロセッサが、メインメモリ及び記憶手段に前記ディスクリプタを記憶するとともに、前記ディスクリプタ転送装置に対して、ディスクリプタ読み出し元を指示し、前記ディスクリプタ転送装置が、前記プロセッサからの前記指示に従って、前記メインメモリ又は前記記憶手段から、前記ディスクリプタを、格納位置を示すポインタに基づいて読み出し、前記読み出されたディスクリプタを前記I/Oコントローラに対して転送する場合において、予め定められたフラグを含む先頭のディスクリプタを前記記憶手段から読み出して前記I/Oコントローラに対して転送し、前記I/Oコントローラが転送された前記先頭のディスクリプタに含まれる前記フラグに従って前記先頭のディスクリプタに基づく実行指示データを転送している間に、前記先頭のディスクリプタの後続のディスクリプタを前記メインメモリから読み出す。
本ディスクリプタ転送装置及び本ディスクリプタ転送方法においては、プロセッサが、メインメモリ及び記憶手段にディスクリプタを記憶するとともに、ディスクリプタ転送装置に対して、ディスクリプタの読み出し元を指示し、ディスクリプタ転送装置が、プロセッサからの上記指示に従って、メインメモリ又は上記記憶手段からディスクリプタを読み出し、読み出されたディスクリプタをI/Oコントローラに対して転送する。また、本I/Oコントローラは、プロセッサからのディスクリプタの読み出し元に関する指示に従って、メインメモリ又は記手段からディスクリプタを読み出してI/Oコントローラに転送するディスクリプタ転送装置と、転送されたディスクリプタに基づいて、I/Oデバイスに処理の実行を指示する実行指示手段とを備える。
本ディスクリプタ転送装置、本I/Oコントローラ、及び本ディスクリプタ転送方法によれば、プロセッサからのディスクリプタの読み出し元に関する指示が上記メインメモリとは別に設けられた、高速でアクセス可能な記手段からディスクリプタを読み出すことを示す場合には、ディスクリプタ転送装置がこの記憶手段からディスクリプタを読み出してI/Oコントローラに転送するので、この記憶手段の容量を上げることなくディスクリプタ転送にかかるレイテンシを下げることができる。
更に、本ディスクリプタ転送装置、本I/Oコントローラ、及び本ディスクリプタ転送方法によれば、予め定められたフラグを含む先頭のディスクリプタを記憶手段から読み出してI/Oコントローラに対して転送し、I/Oコントローラが転送された先頭のディスクリプタに含まれるフラグに従って先頭のディスクリプタに基づく実行指示データを転送している間に、先頭のディスクリプタの後続のディスクリプタをメインメモリから読み出すことにより、メモリリードにかかるレイテンシを隠蔽することができる。
本実施形態の装置構成例を示す図である。 本実施形態のディスクリプタ転送装置によるディスクリプタ転送方法と、本実施形態によらないディスクリプタ転送方法との比較を説明する図である。 本発明の実施例1を説明する図である。 本発明の実施例1におけるディスクリプタ転送装置の動作処理フローの例を示す図である。 本発明の実施例1のディスクリプタ転送処理シーケンス例を説明する図である。 本発明の実施例2を説明する図である。 本発明の実施例3を説明する図である。 本発明の実施例3における、ディスクリプタ読み出し部の動作処理フローの例を示す図である。
図1は、本実施形態の装置構成例を示す図である。ディスクリプタ転送装置1は、プロセッサ2の指示に従って、メインメモリ5又はディスクリプタ格納部12からディスクリプタを読み出し、読み出されたディスクリプタをI/Oコントローラ3に対して転送する処理装置である。ディスクリプタは、I/Oデバイス4が実行すべき処理に関する情報であり、例えば、I/Oデバイス4に実行させる処理の種類や、データ転送の対象となるメインメモリのアドレスを含む。図1には、I/Oコントローラ3がディスクリプタ転送装置1を備える構成を示すが、ディスクリプタ転送装置1がI/Oコントローラ3とは別個独立の装置として設けられていてもよい。プロセッサ2は、パス6を通じて、メインメモリ5のディスクリプタ格納領域51又はディスクリプタ転送装置1が備えるディスクリプタ格納部12にディスクリプタを記憶するとともに、ディスクリプタ転送装置1に対して、ディスクリプタの読み出し元を指示する。
I/Oコントローラ3は、ディスクリプタ転送装置1から転送されたディスクリプタが示す、実行すべき処理の実行を、パス6を通じてI/Oデバイス4に指示する。具体的には、I/Oコントローラ3が備える実行指示部31が、ディスクリプタ転送装置1が備えるディスクリプタ読み出し部11から転送されたディスクリプタを受信し、I/Oデバイス4に対して転送されたディスクリプタに対応する処理の実行を指示する。I/Oデバイス4は、I/Oコントローラ3から指示された処理を実行する。
ディスクリプタ転送装置1は、ディスクリプタ読み出し部11とディスクリプタ格納部12とを備える。ディスクリプタ読み出し部11は、プロセッサ2からのディスクリプタの読み出し元に関する指示に従って、ディスクリプタが記憶されるメインメモリ5又はディスクリプタ格納部12から指示に対応するディスクリプタを読み出すディスクリプタ読み出し手段としての機能を有する。また、ディスクリプタ読み出し部11は、読み出されたディスクリプタをI/Oコントローラ3が備える実行指示部31に対して転送するディスクリプタ転送手段としての機能を有する。I/Oコントローラ3がI/Oデバイス4に対してディスクリプタが示す処理の実行を指示している間に、後続のディスクリプタを読み出し元から読み出す機能、言い換えるとプリフェッチ機能をディスクリプタ読み出し部11に備えるようにしてもよい。ディスクリプタ格納部12は、メインメモリ5とは別に設けられた、メモリアクセスよりも高速でアクセス可能な記憶部であり、プロセッサ2によって書き込まれるディスクリプタを記憶する。
図2は、本実施形態のディスクリプタ転送装置によるディスクリプタ転送方法と、本実施形態によらないディスクリプタ転送方法との比較を説明する図である。図2(A)は、本実施形態によらないディスクリプタ転送方法を示し、図2(B)は、本実施形態のディスクリプタ転送装置1によるディスクリプタ転送方法を示す。なお、図2(A)および図2(B)では、先頭のディスクリプタであるD1、後続のディスクリプタであるD2、D3という3つのディスクリプタをI/Oコントローラ3に転送する場合を例にとって説明する。また、本実施形態において、プロセッサ2(図1を参照)は、ディスクリプタ転送装置1に対して、ディスクリプタD1をディスクリプタ格納部12から読み出すように指示し、ディスクリプタD2とD3をメインメモリ5から読み出すように指示するものとする。
図2(A)に示す例では、プロセッサが時刻t0 〜t3 の間にメインメモリにディスクリプタD1乃至D3を順次書き込み、時刻t3 〜t4 の間にディスクリプタ転送装置に対してディスクリプタの読み出しを指示する。ディスクリプタ転送装置は時刻t4 〜t6 の間にディスクリプタD1をメインメモリから読み出し、読みだしたディスクリプタD1を時刻t6 〜t7 の間にI/Oコントローラに転送する。そして、I/Oコントローラが、時刻t7 〜時刻t9 の間にディスクリプタD1に基づく処理の実行を指示する実行指示データをI/Oデバイスに送信する。ディスクリプタ転送装置は、時刻t7 〜t8 の間にディスクリプタD2をメインメモリから読み出し、読み出したディスクリプタD2を時刻t9 〜t10の間にI/Oコントローラに転送する。そして、I/Oコントローラが、時刻t10〜t12の間に、ディスクリプタD2に基づく実行指示データをI/Oデバイスに送信する。また、ディスクリプタ転送装置は、時刻t10〜時刻t11の間にディスクリプタD3をメインメモリから読み出し、読みだしたディスクリプタD3を時刻t12〜t13の間にI/Oコントローラに転送し、その後、I/OコントローラがディスクリプタD3に基づく実行指示データをI/Oデバイスに送信する。
一方、図2(B)に示すように、本実施形態では、例えば図1に示すプロセッサ2が、時刻t0 〜t1 の間にディスクリプタ格納部12にディスクリプタD1を書き込み、時刻t1 〜t3 の間にメインメモリ5にディスクリプタD2とD3を書き込む。そして、プロセッサ2が、時刻t3 〜t4 の間にディスクリプタ転送装置1に対してディスクリプタの読み出しを指示する。具体的には、プロセッサ2は、ディスクリプタ転送装置1に対して、ディスクリプタD1をディスクリプタ格納部12から読み出すように指示し、ディスクリプタD2とD3をメインメモリ5から読み出すように指示する。
次に、ディスクリプタ転送装置1は、時刻t4 〜t4Aの間にディスクリプタD1をディスクリプタ格納部12から読み出し、読み出したディスクリプタD1を時刻t4A〜t5 の間にI/Oコントローラ3に転送する。そして、I/Oコントローラ3が、時刻t5 〜時刻t8Aの間にディスクリプタD1に基づく処理の実行を指示する実行指示データをI/Oデバイス4に送信する。
また、ディスクリプタ転送装置1が、時刻t5 〜t7Aの間にディスクリプタD2をメインメモリから読み出し、読み出したディスクリプタD2を時刻t8A〜t8Bの間にI/Oコントローラ3に転送する。そして、I/Oコントローラ3が、時刻t8B〜t11A の間に、ディスクリプタD2に基づく実行指示データをI/Oデバイス4に送信する。また、ディスクリプタ転送装置1が、時刻t8B〜t10A の間にディスクリプタD3をメインメモリから読み出し、読み出したディスクリプタD3を時刻t11A 〜t11B の間にI/Oコントローラ3に転送し、その後、I/Oコントローラ3がディスクリプタD3に基づく実行指示データをI/Oデバイス4に送信する。
本実施形態によれば、プロセッサ2がディスクリプタD1の読み出しを指示してからI/Oコントローラ3が実行指示データの送信を開始するまでの時間が、図2(A)に示す例に比べてt7 −t5 の時間分短縮される。すなわち、本実施形態では、プロセッサ2がディスクリプタ転送装置1に対して、先頭のディスクリプタD1をディスクリプタ格納部12から読み出すように指示するため、ディスクリプタD1をメインメモリから読み出す図2(A)の例と比べて、ディスクリプタ転送にかかるレイテンシを下げることができる。また、本実施形態では、ディスクリプタ転送装置1が、後続のディスクリプタD2を、I/Oコントローラ3が先頭のディスクリプタD1に基づく実行指示データを送信している間にメインメモリ5から読み出すので、メモリリードにかかるレイテンシを隠蔽することができる。その結果、ディスクリプタ転送にかかるレイテンシを更に下げることができる。また、本実施形態では、プロセッサ2が後続のディスクリプタD2、D3をメインメモリ5に書き込むので、ディスクリプタ格納部12の容量が小さくて済み、プロセッサ2がディスクリプタ格納部12の空き領域が確保されるまでディスクリプタの書き込みを待ち合わせることもない。
図3は、本発明の実施例1を説明する図である。実施例1では、プロセッサ2が、ディスクリプタを、該ディスクリプタに対応するSource Type(例えば、図3中に示すSource Type=1)とともにメインメモリ5のディスクリプタ格納領域51に書き込み、ディスクリプタ転送装置1Aに対して、メインメモリ5からのディスクリプタの読み出しを指示する。「Source Type=1」は、Source Typeの値が1であることを示す。ディスクリプタ転送装置1Aのディスクリプタ読み出し部11Aが、メインメモリ5からディスクリプタを読み出して、読み出したディスクリプタのSource Typeを取得し、取得されたSource Typeの値に基づいて、読み出したディスクリプタをI/Oコントローラ3Aに対して転送するか、又は、ディスクリプタ格納部12へのディスクリプタの書き込みを待ち合わせた上でディスクリプタ格納部12へ書き込まれたディスクリプタをI/Oコントローラ3Aに対して転送するかを判断する。Source Typeは、ディスクリプタの読み出し元を示すフラグであり、Source Type格納用の所定のフィールドに格納される。なお、図3中に示すディスクリプタ格納部12に書き込まれているディスクリプタE1は、I/Oコントローラ3Aへの転送対象となる先頭のディスクリプタ、E2、E3は後続のディスクリプタである。実施例1においては、E1、E2、E3の各々に対応するSource Typeの値は0であるものとする。
図4は、実施例1におけるディスクリプタ転送装置の動作処理フローの例を示す図である。実施例1においては、ディスクリプタ転送装置1Aは、プロセッサ2からディスクリプタの読み出し指示を受けると、メインメモリ5からディスクリプタを読み出し、読み出されたディスクリプタのSource Typeに基づいて、読み出したディスクリプタをI/Oコントローラ3Aに転送するか、読み出したディスクリプタをI/Oコントローラ3Aに転送せずに、プロセッサ2によるディスクリプタ格納部12へのディスクリプタの書き込みを待ち合わせるかを判断する。具体的には、後述するように、ディスクリプタ転送装置1Aが、メインメモリ5から読み出したディスクリプタのSource Typeが0でないと判断した場合に、転送対象のディスクリプタの読み出し元がディスクリプタ格納部12であると判断して、プロセッサ2によるディスクリプタ格納部12へのディスクリプタの書き込みを待ち合わせる。そして、ディスクリプタ転送装置1Aは、ディスクリプタがディスクリプタ格納部12へ書き込まれたことを契機として、書き込まれたディスクリプタをディスクリプタ格納部12から読み出す。一方、ディスクリプタ転送装置1Aが、メインメモリ5から読み出したディスクリプタのSource Typeが0であると判断した場合に、転送対象のディスクリプタがメインメモリ5から読み出されたディスクリプタであると判断、すなわち、ディスクリプタの読み出し元がメインメモリ5であると判断して、読み出されたディスクリプタをI/Oコントローラ3Aに転送する。
まず、ディスクリプタ読み出し部11Aが、プロセッサ2からディスクリプタの読み出し指示を受け、例えば、自身が持つディスクリプタの格納位置を示すポインタに基づいて、メインメモリ5のディスクリプタ格納領域51に格納されているディスクリプタを読み出す(ステップS1)。次に、ディスクリプタ読み出し部11Aが、読み出されたディスクリプタが有効なディスクリプタであるかを判断する(ステップS2)。ディスクリプタ読み出し部11Aは、ステップS1においてディスクリプタが読み出された領域がプロセッサ2がディスクリプタを書き込んだ領域であるかを判断し、判断結果に基づいて、読み出されたディスクリプタが有効なディスクリプタであるかを判断する。ディスクリプタ読み出し部11Aが、ステップS1においてプロセッサ2が書き込んでいない領域を読み出したと判断した場合、読み出されたディスクリプタが有効なディスクリプタでないと判断して、ステップS8に進む。ディスクリプタ読み出し部11Aが、ステップS1においてプロセッサ2が書き込んだ領域を読み出したと判断した場合、読み出されたディスクリプタが有効なディスクリプタであると判断して、ステップS3に進む。
次に、ディスクリプタ読み出し部11Aが、ステップS1において読み出されたディスクリプタのSource Typeが0であるかを判断する(ステップS3)。ディスクリプタ読み出し部11Aが、ディスクリプタのSource Typeが0であると判断した場合、ディスクリプタ読み出し部11Aは、転送対象のディスクリプタの読み出し元がメインメモリ5であると判断する。そして、ディスクリプタ読み出し部11Aが、I/Oコントローラ3Aがディスクリプタ処理中、つまりディスクリプタに基づく実行指示データの送信処理中でないことを確認した上で、ステップS1において読み出されたディスクリプタをI/Oコントローラ3Aに転送する(ステップS4)。なお、ディスクリプタ読み出し部11Aが、I/Oコントローラ3Aがディスクリプタ処理中であることを確認した場合、ディスクリプタ読み出し部11Aは、I/Oコントローラ3Aがディスクリプタ処理を終了するまでディスクリプタを保持しておく。
次に、ディスクリプタ読み出し部11Aが、ディスクリプタの格納位置を示すポインタを更新し、メインメモリのディスクリプタ格納領域51に書き込まれている後続のディスクリプタを読み出し(ステップS5)、ステップS2に戻る。
ステップS3において、ディスクリプタ読み出し部11Aが、ディスクリプタのSource Typeが0でないと判断した場合、ディスクリプタ読み出し部11Aは、転送対象のディスクリプタの読み出し元がディスクリプタ格納部12であると判断する。すなわち、ディスクリプタ読み出し部11Aは、ステップS1において読み出されたディスクリプタをI/Oコントローラへ転送せず、プロセッサ2からディスクリプタ格納部12へのディスクリプタの書き込みを待ち合わせる(ステップS6)。ディスクリプタ読み出し部11Aは、ディスクリプタがディスクリプタ格納部12に書き込まれたことを契機として、ディスクリプタ格納部12からディスクリプタを読み出し、I/Oコントローラ3Aへ転送する(ステップS7)。そして、ディスクリプタ読み出し部11Aが、プロセッサ2からのディスクリプタ読み出し指示を待ち合わせる(ステップS8)。
図5は、実施例1のディスクリプタ転送処理シーケンス例を説明する図である。まず、図3に示すプロセッサ2が、時刻t0 〜t1 の間にメインメモリ5にSource Typeが1であるディスクリプタを書き込み、時刻t1 〜t2 の間にディスクリプタ転送装置1Aに対してディスクリプタの読み出しを指示する。読み出し指示を受けたディスクリプタ転送装置1Aのディスクリプタ読み出し部11Aが、時刻t2 〜t3 の間にメインメモリ5からディスクリプタを読み出す。ディスクリプタ読み出し部11Aは、読み出されたディスクリプタのSource Typeが1である、すなわち、Source Typeが0でないと判断し、図4のステップS6を参照して前述したように、プロセッサ2からディスクリプタ格納部12へのディスクリプタの書き込みを待ち合わせる。
次に、プロセッサ2が、時刻t4 〜t5 に先頭のディスクリプタE1をディスクリプタ格納部12に書き込むと、ディスクリプタE1の書き込みが終了した時刻である時刻t5 に、ディスクリプタ読み出し部11Aがディスクリプタ格納部12からのディスクリプタE1の読み出しを開始する。そして、ディスクリプタ読み出し部11Aは、時刻t6 〜t7 の間にディスクリプタE1をI/Oコントローラ3Aに転送する。そして、I/Oコントローラ3Aが、時刻t7 〜時刻11の間にディスクリプタE1に基づく処理の実行を指示するデータ、つまり実行指示データをI/Oデバイス4に送信する。
後続のディスクリプタであるE2とE3については、ディスクリプタ転送装置1Aが、時刻t5 〜t8 の間に、ディスクリプタE2とE3とをメインメモリ5に書き込み、時刻t8 〜t9 の間にディスクリプタ転送装置1Aに対してディスクリプタの読み出しを指示する。読み出し指示を受けたディスクリプタ転送装置1Aのディスクリプタ読み出し部11Aが、時刻t9 〜t10の間にメインメモリ5からディスクリプタE2を読み出す。ディスクリプタ読み出し部11Aは、読み出したディスクリプタE2のSource Typeが0であると判断し、時刻t11〜t12の間にディスクリプタE2をI/Oコントローラ3Aに転送する。I/Oコントローラ3Aが、ディスクリプタE2に基づく実行指示データを時刻t12〜t14の間にI/Oデバイス4へ送信する。また、ディスクリプタ読み出し部11Aが、時刻t12〜t13の間にメインメモリ5からディスクリプタE3を読み出す。ディスクリプタ読み出し部11Aは、読み出したディスクリプタE3のSource Typeが0であると判断し、時刻t14〜t15の間にディスクリプタE3をI/Oコントローラ3Aへ転送する。そして、I/Oコントローラ3Aが時刻t15にディスクリプタE3に基づく実行指示データのI/Oデバイス4への送信を開始する。
一方、図5中に示すように、プロセッサ2は、時刻t9 〜t10の間に、メインメモリ5にSource Typeが1であるディスクリプタを書き込み、時刻t10〜t11の間にディスクリプタ転送装置1Aに対してディスクリプタの読み出しを指示する。読み出し指示を受けたディスクリプタ転送装置1Aのディスクリプタ読み出し部11Aが、時刻t15〜t16の間にメインメモリ5からディスクリプタを読み出し、読み出したディスクリプタのSource Typeが0でないと判断して、ディスクリプタ格納部12へのディスクリプタの書き込みを待ち合わせる。
図3乃至5を参照して前述した実施例1においては、プロセッサ2がメインメモリ5にSource Type付きのディスクリプタを書き込んだ上で、ディスクリプタ転送装置1Aに対してメインメモリ5からのディスクリプタの読み出しを指示する。そして、ディスクリプタ転送装置1Aが、メインメモリ5から読み出したディスクリプタのSource Typeが0でないと判断した場合に、プロセッサ2によるディスクリプタ格納部12へのディスクリプタの書き込みを待ち合わせ、ディスクリプタがディスクリプタ格納部12へ書き込まれたことを契機として、書き込まれたディスクリプタをディスクリプタ格納部12から読み出す。従って、例えばプロセッサ2がメインメモリ5にSource Typeの値が1のディスクリプタを書き込むことを通じて、ディスクリプタ転送装置1Aを上記待ち合わせ状態とした上で、先頭のディスクリプタをディスクリプタ格納部12に書き込むことにより、先頭のディスクリプタを常にディスクリプタ格納部12から読み出すことが可能となる。すなわち、実施例1によれば、ディスクリプタ転送装置1Aが所望のディスクリプタをディスクリプタ格納部12から読み出すように設定することができる。
なお、ディスクリプタに対応するSource Typeの値は0又は1に限られるものでなく、Source Typeの種類が任意の数であってもよい。また、予めSource Typeの値に応じてディスクリプタ格納部12のどのアドレスからディスクリプタを読み出させるかを決めておいてもよい。そして、例えば、プロセッサ2がSource Typeが2、3、4の各々であるディスクリプタをメインメモリ5に書き込んだ上でディスクリプタ転送装置1Aにディスクリプタの読み出しを指示し、ディスクリプタ転送装置1Aが、メインメモリ5から読み出したディスクリプタのSource Typeの値に応じたディスクリプタ格納部12のアドレスからディスクリプタを読み出すようにしてもよい。
図6は、本発明の実施例2を説明する図である。図6に示す処理部のうち、図3に示す処理部と同一の符号が付けられたものは、図3に示す処理部と同様の処理部である。実施例2においても、実施例1と同様のディスクリプタ転送方法に従って、ディスクリプタ転送装置1Aが、メインメモリ5又はディスクリプタ格納部12から読み出したディスクリプタをI/Oコントローラに転送する。具体的には、プロセッサ2がメインメモリ5Aのディスクリプタ領域51にSource Type付きのディスクリプタを書き込んだ上で、ディスクリプタ転送装置1Aに対してメインメモリ5Aからのディスクリプタの読み出しを指示する。例えば、ディスクリプタ読み出し部11Aにディスクリプタ格納部12からディスクリプタを読み出させるように設定する場合には、プロセッサ2はメインメモリ5A上のディスクリプタ格納領域51にSource Typeが0でない(例えば、1である)ディスクリプタを書き込む。ディスクリプタ転送装置1Aのディスクリプタ読み出し部11Aが、例えば、メインメモリ5から読み出したディスクリプタのSource Typeが0でないと判断した場合に、プロセッサ2によるディスクリプタ格納部12へのディスクリプタの書き込みを待ち合わせる。そして、ディスクリプタ読み出し部11Aが、ディスクリプタがディスクリプタ格納部12へ書き込まれたことを契機として、書き込まれたディスクリプタをディスクリプタ格納部12から読み出して、I/Oコントローラ3Bに転送する。ディスクリプタ読み出し部11Aが、メインメモリ5Aから読み出したディスクリプタのSource Typeが0であると判断した場合、ディスクリプタ読み出し部11Aが、読み出したディスクリプタをI/Oコントローラ3Bに転送する。I/Oコントローラ3Bが、転送されたディスクリプタに基づく実行指示データをI/Oデバイス4に送信する。
実施例2に特有の構成として、メインメモリ5A上に完了ディスクリプタ格納領域52が設けられている。I/Oデバイス4が、実行指示部31から送信された実行指示データが指示する処理の実行を完了すると、処理の完了を完了ディスクリプタ処理部32に通知する。I/Oコントローラ3Bが備える完了ディスクリプタ処理部32が、I/Oデバイス4による処理が完了したことを示す情報を完了ディスクリプタ情報としてメインメモリ5A上の完了ディスクリプタ格納領域52に書き込む。完了ディスクリプタ情報は、ディスクリプタが示す処理、すなわち、実行指示部31がI/Oデバイス4に対して送信する実行指示データが示す処理の実行が完了したことを示す情報である。例えば、図6中に示すように、メインメモリ5A上のディスクリプタ格納領域51に書き込まれたディスクリプタE1が示す処理の実行が完了すると、完了ディスクリプタ処理部32が、完了ディスクリプタ格納領域52に書き込まれたディスクリプタE1が示す処理の実行が完了したことを示す情報である完了ディスクリプタ1を書き込む。ディスクリプタ読み出し部11Aが図6に示すメインメモリ5A内のSource Typeが0であるディスクリプタをメインメモリ5Aから読み出した場合には、ディスクリプタ読み出し部11が、例えばディスクリプタ格納部12へのディスクリプタxの書き込みを待ち合わせた上で、このディスクリプタxを読み出してI/Oコントローラ3Bに転送する。I/Oデバイス4が転送されたディスクリプタxが示す処理の実行を完了すると、I/Oコントローラ3Bの完了ディスクリプタ処理部32が、図6に示すように、メインメモリ5A上の完了ディスクリプタ格納領域52に、ディスクリプタxが示す処理の実行が完了したことを示す情報である完了ディスクリプタxを書き込む。本実施例においては、ディスクリプタが示す処理が完了する度に、完了ディスクリプタ情報がメインメモリ5A上の完了ディスクリプタ格納領域に書き込まれる。従って、本実施例によれば、処理を指示するディスクリプタと処理の実行が完了したかを示す情報とが対応付けられる。その結果、どのディスクリプタが示す処理が完了しているかを容易に知ることが可能となる。
図7は、本発明の実施例3を説明する図である。なお、図7に示す処理部のうち、図3に示す処理部と同一の符号が付けられたものは、図3に示す処理部と同様の処理部である。実施例3においては、メインメモリ5又はディスクリプタ格納部12に書き込まれるディスクリプタが、自ディスクリプタの次に読み出し対象となるディスクリプタへのポインタを有する。そして、ディスクリプタ読み出し部11Bが、ディスクリプタが有するポインタに基づいて、次に読み出し対象となるディスクリプタの読み出し元を判断し、判断結果に基づいて、図7中の二点鎖線の矢印に示すように、次に読み出し対象となるディスクリプタを読み出し元から順次読み出す。
具体的には、プロセッサ2が、メインメモリ5又はディスクリプタ格納部12にディスクリプタを書き込む際に、各々のディスクリプタが有する、例えばnext_ptrフィールドに、次に読み出し対象となるディスクリプタへのポインタを格納する。このポインタは、次に読み出し対象となるディスクリプタがディスクリプタ格納部12又はメインメモリ5のどの領域に書き込まれているかを示す。そして、ディスクリプタ転送装置1Bが備えるディスクリプタ読み出し部11Bが、メインメモリ5又はディスクリプタ格納部12から読み出されたディスクリプタのnext_ptrフィールドに格納されたポインタに基づいて、次のディスクリプタがディスクリプタ格納部12又はメインメモリ5のいずれに書き込まれているかを判断し、該判断結果に基づいて、ディスクリプタ格納部12又はメインメモリ5から次のディスクリプタを読み出す。
図8は、本発明の実施例3における、ディスクリプタ読み出し部の動作処理フローの例を示す図である。まず、ディスクリプタ読み出し部11Bが、プロセッサ2からディスクリプタ読み出し指示を受け、自身が保持しているポインタが示す読み出し元(メインメモリ5又はディスクリプタ格納部12)からディスクリプタを読み出す(ステップS11)。なお、プロセッサ2が、このポインタの初期値を予め設定する。
次に、ディスクリプタ読み出し部11Bが、読み出したディスクリプタが有効であるかを判断する(ステップS12)。ディスクリプタ読み出し部11Bは、ステップS11においてディスクリプタが読み出された領域がプロセッサ2が書き込んだ領域であるかを判断し、該判断結果に基づいて、読み出されたディスクリプタが有効なディスクリプタであるかを判断する。
ディスクリプタ読み出し部11Bが、I/Oコントローラ3Cがディスクリプタ処理中、つまりディスクリプタに基づく実行指示データの送信処理中でないことを確認した上で、ディスクリプタをI/Oコントローラ3Cに転送する(ステップS13)。なお、ディスクリプタ読み出し部11Bが、I/Oコントローラ3Cがディスクリプタ処理中であることを確認した場合、ディスクリプタ読み出し部11Bは、I/Oコントローラ3Cがディスクリプタ処理を終了するまでディスクリプタを所定の記憶部に保持しておく。ディスクリプタ読み出し部11Bが、ステップS11において読み出されたディスクリプタのnext_ptrフィールドに格納されているポインタが示す読み出し元からディスクリプタを読み出し(ステップS14)、ステップS12に戻る。
ステップS12において、ディスクリプタ読み出し部11Bが、読み出したディスクリプタが有効でないディスクリプタであると判断した場合、ディスクリプタ読み出し部11Bが、有効ではないと判断されたディスクリプタのnext_ptrフィールドに格納されたポインタを保持しておき、プロセッサ2からのディスクリプタの読み出し指示を待ち合わせる(ステップS15)。そして、ディスクリプタ読み出し部11Bが、プロセッサ2から次のディスクリプタの読み出し指示を受けると、保持しているポインタが示す読み出し元からディスクリプタを読み出す。
本実施例においては、ディスクリプタが次のディスクリプタへのポインタを有するので、ディスクリプタを、ディスクリプタ格納部12又はメインメモリ5の連続した記憶領域に書き込む必要はない。また、ポインタでメインメモリ5か又はディスクリプタ格納部12のいずれからディスクリプタを読み出すかを指定することにより、ディスクリプタの読出し元を切り替える事ができる。例えば、ディスクリプタ読出し部11Bが保持するポインタの初期値をディスクリプタ格納部12を示すように設定しておくことによって、ディスクリプタ読み出し部11Bが、メインメモリ5へアクセスすることなく、ディスクリプタ格納部12のディスクリプタを読み出すことができる。
1 ディスクリプタ転送装置
2 プロセッサ
3 I/Oコントローラ
4 I/Oデバイス
5 メインメモリ
11 ディスクリプタ読み出し部
12 ディスクリプタ格納部
31 実行指示部
51 ディスクリプタ格納領域

Claims (10)

  1. I/Oデバイスに処理の実行を指示するI/Oコントローラに対して、前記実行すべき処理に関する情報を示すディスクリプタを転送するディスクリプタ転送装置であって、
    前記ディスクリプタを記憶するメインメモリと、
    前記ディスクリプタを記憶する記憶手段と、
    プロセッサからのディスクリプタ読み出し元に関する指示に従って、前記メインメモリ又は前記記憶手段から、指示されたディスクリプタを、格納位置を示すポインタに基づいて読み出すディスクリプタ読み出し手段と、
    前記読み出されたディスクリプタを前記I/Oコントローラに対して転送するディスクリプタ転送手段とを備え、
    前記ディスクリプタ読み出し手段が、予め定められたフラグを含む先頭のディスクリプタを前記記憶手段から読み出して前記I/Oコントローラに対して転送し、前記I/Oコントローラが転送された前記先頭のディスクリプタに含まれる前記フラグに従って前記先頭のディスクリプタに基づく実行指示データを転送している間に、前記先頭のディスクリプタの後続のディスクリプタを前記メインメモリから読み出す
    ことを特徴とするディスクリプタ転送装置。
  2. 前記メインメモリに記憶される前記ディスクリプタが、前記ディスクリプタ読み出し元を示す読み出し元情報を有し、
    前記ディスクリプタ読み出し手段が、前記メインメモリから読み出したディスクリプタが有する読み出し元情報に基づいて、該ディスクリプタを前記I/Oコントローラに対して転送するか、又は、前記記憶手段へのディスクリプタの書き込みを待ち合わせた上で該記憶手段へ書き込まれたディスクリプタを前記I/Oコントローラに対して転送するかを判断する
    ことを特徴とする請求項1記載のディスクリプタ転送装置。
  3. 前記メインメモリ又は前記記憶手段に記憶される前記ディスクリプタが、自ディスクリプタの次に読み出し対象となるディスクリプタへのポインタを有し、
    前記ディスクリプタ読み出し手段が、前記ディスクリプタが有するポインタに基づいて、前記ディスクリプタ読み出し元を判断する
    ことを特徴とする請求項1記載のディスクリプタ転送装置。
  4. I/Oデバイスに処理の実行を指示するI/Oコントローラであって、
    実行すべき処理の内容を示すディスクリプタをI/Oコントローラに転送するディスクリプタ転送装置と、
    前記ディスクリプタ転送装置から転送されたディスクリプタに基づいて、前記I/Oデバイスに処理の実行を指示する実行指示手段とを備え、
    前記ディスクリプタ転送装置が、
    前記ディスクリプタを記憶するメインメモリと、
    前記ディスクリプタを記憶する記憶手段と、
    プロセッサからのディスクリプタ読み出し元に関する指示に従って、前記ディスクリプタを記憶するメインメモリ又は前記記憶手段から、指示されたディスクリプタを、格納位置を示すポインタに基づいて読み出すディスクリプタ読み出し手段と、
    前記読み出されたディスクリプタを前記I/Oコントローラに対して転送するディスクリプタ転送手段とを備え、
    前記ディスクリプタ読み出し手段が、予め定められたフラグを含む先頭のディスクリプタを前記記憶手段から読み出して前記I/Oコントローラに対して転送し、前記I/Oコントローラが転送された前記先頭のディスクリプタに含まれる前記フラグに従って前記先頭のディスクリプタに基づく実行指示データを転送している間に、前記先頭のディスクリプタの後続のディスクリプタを前記メインメモリから読み出す
    ことを特徴とするI/Oコントローラ。
  5. 前記メインメモリに記憶される前記ディスクリプタが、前記ディスクリプタ読み出し元を示す読み出し元情報を有し、
    前記ディスクリプタ読み出し手段が、前記メインメモリから読み出したディスクリプタが有する読み出し元情報に基づいて、該ディスクリプタを前記I/Oコントローラに対して転送するか、又は、前記記憶手段へのディスクリプタの書き込みを待ち合わせた上で該記憶手段へ書き込まれたディスクリプタを前記I/Oコントローラに対して転送するかを判断する
    ことを特徴とする請求項4記載のI/Oコントローラ。
  6. 前記I/Oデバイスによる前記ディスクリプタが示す処理の実行が完了したことを示す情報を前記メインメモリに設定する手段を備える
    ことを特徴とする請求項5記載のI/Oコントローラ。
  7. I/Oデバイスに処理の実行を指示するI/Oコントローラに対して、前記実行すべき処理の内容を示すディスクリプタを転送するディスクリプタ転送装置におけるディスクリプタ転送方法であって、
    プロセッサが、メインメモリ及び記憶手段に前記ディスクリプタを記憶するとともに、前記ディスクリプタ転送装置に対して、ディスクリプタ読み出し元を指示し、
    前記ディスクリプタ転送装置が、前記プロセッサからの前記指示に従って、前記メインメモリ又は前記記憶手段から、前記ディスクリプタを、格納位置を示すポインタに基づいて読み出し、前記読み出されたディスクリプタを前記I/Oコントローラに対して転送する場合において、予め定められたフラグを含む先頭のディスクリプタを前記記憶手段から読み出して前記I/Oコントローラに対して転送し、前記I/Oコントローラが転送された前記先頭のディスクリプタに含まれる前記フラグに従って前記先頭のディスクリプタに基づく実行指示データを転送している間に、前記先頭のディスクリプタの後続のディスクリプタを前記メインメモリから読み出す
    ことを特徴とするディスクリプタ転送方法。
  8. 前記メインメモリに記憶される前記ディスクリプタが、前記ディスクリプタ読み出し元を示す読み出し元情報を有し、
    前記ディスクリプタ転送装置が、前記メインメモリから読み出したディスクリプタが有する読み出し元情報に基づいて、該ディスクリプタを前記I/Oコントローラに対して転送するか、又は、前記記憶手段へのディスクリプタの書き込みを待ち合わせた上で該記憶手段へ書き込まれたディスクリプタを前記I/Oコントローラに対して転送するかを判断する
    ことを特徴とする請求項7記載のディスクリプタ転送方法。
  9. 前記I/Oコントローラが、前記I/Oデバイスによる前記ディスクリプタが示す処理の実行が完了したことを示す情報を前記メインメモリに設定する
    ことを特徴とする請求項8記載のディスクリプタ転送方法。
  10. 前記メインメモリ又は前記記憶手段に記憶される前記ディスクリプタが、自ディスクリプタの次に読み出し対象となるディスクリプタへのポインタを有し、
    前記ディスクリプタ転送装置が、前記ディスクリプタが有するポインタに基づいて、前記ディスクリプタ読み出し元を判断する
    ことを特徴とする請求項7記載のディスクリプタ転送方法。
JP2009019030A 2009-01-30 2009-01-30 ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法 Active JP5287301B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2009019030A JP5287301B2 (ja) 2009-01-30 2009-01-30 ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
US12/632,368 US8589601B2 (en) 2009-01-30 2009-12-07 I/O controller and descriptor transfer method
EP09178758A EP2214103B1 (en) 2009-01-30 2009-12-10 I/O controller and descriptor transfer method
KR1020090126649A KR101112666B1 (ko) 2009-01-30 2009-12-18 디스크립터 전송 장치, i/o 컨트롤러, 및 디스크립터 전송 방법
CN2010100025848A CN101794262B (zh) 2009-01-30 2010-01-19 I/o控制器和描述符传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009019030A JP5287301B2 (ja) 2009-01-30 2009-01-30 ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法

Publications (2)

Publication Number Publication Date
JP2010176442A JP2010176442A (ja) 2010-08-12
JP5287301B2 true JP5287301B2 (ja) 2013-09-11

Family

ID=41800579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009019030A Active JP5287301B2 (ja) 2009-01-30 2009-01-30 ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法

Country Status (5)

Country Link
US (1) US8589601B2 (ja)
EP (1) EP2214103B1 (ja)
JP (1) JP5287301B2 (ja)
KR (1) KR101112666B1 (ja)
CN (1) CN101794262B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201339842A (zh) * 2012-03-20 2013-10-01 Copystar Backup & Storage Corp 協同式匯流排仲裁多工架構及依該架構所進行之資料存取仲裁方法
US9361231B2 (en) * 2014-01-15 2016-06-07 International Business Machines Corporation Implicit I/O send on cache operations
KR102180972B1 (ko) * 2014-04-23 2020-11-20 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
US9697136B2 (en) * 2014-09-23 2017-07-04 Arm Limited Descriptor ring management
US9977619B2 (en) * 2015-11-06 2018-05-22 Vivante Corporation Transfer descriptor for memory access commands
KR102697889B1 (ko) * 2016-09-21 2024-08-22 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11741779B2 (en) 2019-11-27 2023-08-29 Playtech Software Limited System and method for executing a remote interactive live game
JP7476733B2 (ja) * 2020-09-07 2024-05-01 オムロン株式会社 通信制御機器および通信制御機器の制御方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01237864A (ja) * 1988-03-18 1989-09-22 Fujitsu Ltd Dma転送制御装置
JPH0696007A (ja) 1992-09-17 1994-04-08 Fujitsu Ltd Dma転送方式
DE69614291T2 (de) * 1995-03-17 2001-12-06 Lsi Logic Corp., Fort Collins (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
JPH09319698A (ja) 1996-06-03 1997-12-12 Fujitsu Ltd ダイレクト・メモリ・アクセス転送方式
US6202107B1 (en) * 1998-11-19 2001-03-13 Sun Microsystems, Inc. Host controller interface descriptor fetching unit
US6401201B2 (en) * 1998-12-31 2002-06-04 Intel Corporation Arrangements offering firmware support for different input/output (I/O) types
US6735642B2 (en) * 2000-06-02 2004-05-11 Mellanox Technologies Ltd. DMA doorbell
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US6785751B1 (en) * 2000-09-19 2004-08-31 Intel Corporation Method and apparatus for minimizing bus contention for I/O controller write operations
US6888792B2 (en) * 2000-12-07 2005-05-03 Intel Corporation Technique to provide automatic failover for channel-based communications
US8051212B2 (en) * 2001-04-11 2011-11-01 Mellanox Technologies Ltd. Network interface adapter with shared data send resources
DE10234990B4 (de) * 2002-07-31 2007-03-29 Advanced Micro Devices, Inc., Sunnyvale Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
US7287101B2 (en) * 2003-08-05 2007-10-23 Intel Corporation Direct memory access using memory descriptor list
US7653754B2 (en) * 2004-01-05 2010-01-26 Mellanox Technologies Ltd. Method, system and protocol that enable unrestricted user-level access to a network interface adapter
JP4373255B2 (ja) * 2004-03-23 2009-11-25 富士通株式会社 ダイレクトメモリアクセス制御装置および方法
US20050289253A1 (en) * 2004-06-24 2005-12-29 Edirisooriya Samantha J Apparatus and method for a multi-function direct memory access core
JP2006259898A (ja) * 2005-03-15 2006-09-28 Toshiba Corp I/oコントローラ、信号処理システム、およびデータ転送方法
JP4723334B2 (ja) * 2005-09-21 2011-07-13 ルネサスエレクトロニクス株式会社 Dma転送システム
US7587663B2 (en) * 2006-05-22 2009-09-08 Intel Corporation Fault detection using redundant virtual machines
ES2350130B1 (es) * 2008-02-22 2011-09-14 Figueras International Seating, S.L. Instalacion de butacas ocultables bajo el suelo.

Also Published As

Publication number Publication date
EP2214103B1 (en) 2012-06-20
CN101794262A (zh) 2010-08-04
JP2010176442A (ja) 2010-08-12
KR20100088523A (ko) 2010-08-09
CN101794262B (zh) 2012-09-05
US20100198998A1 (en) 2010-08-05
US8589601B2 (en) 2013-11-19
EP2214103A1 (en) 2010-08-04
KR101112666B1 (ko) 2012-02-16

Similar Documents

Publication Publication Date Title
JP5287301B2 (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
US20070162642A1 (en) A dma controller with multiple intra-channel software request support
KR100708128B1 (ko) 낸드 플래시 메모리 제어 장치 및 방법
JP2002541693A5 (ja)
JPH06236341A (ja) 入出力記憶装置への直接メモリアクセスを行う装置及び方法
EP2054800A2 (en) Flash memory access circuit
JP2006113689A (ja) バスブリッジ装置およびデータ転送方法
JP2001229115A (ja) Atapiコマンド処理方式
JP5583893B2 (ja) 演算処理装置及び演算処理装置の制御方法
WO2006134804A1 (ja) 外部デバイスアクセス装置
JP2010146084A (ja) キャッシュメモリ制御部を備えるデータ処理装置
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
JP4536189B2 (ja) Dma転送装置及びdma転送システム
US20080209085A1 (en) Semiconductor device and dma transfer method
JP2011070259A (ja) データ転送装置及びデータ転送方法
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
CN107025190B (zh) 系统及其操作方法
JP7003752B2 (ja) データ転送装置、データ転送方法、プログラム
JP2012014436A (ja) ダイレクトメモリアクセス制御装置及び方法
JP2000040057A (ja) 計算機システム、バッファ制御装置及び転送方法
JP6992616B2 (ja) データ転送装置、データ転送方法、プログラム
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2011118744A (ja) 情報処理装置
JPH06149669A (ja) キャッシュデータ転送方式およびキャッシュデータ転送装置
JP2007048090A (ja) シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130416

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130520

R150 Certificate of patent or registration of utility model

Ref document number: 5287301

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150