JP2004005382A - データ転送装置および方法 - Google Patents
データ転送装置および方法 Download PDFInfo
- Publication number
- JP2004005382A JP2004005382A JP2002369938A JP2002369938A JP2004005382A JP 2004005382 A JP2004005382 A JP 2004005382A JP 2002369938 A JP2002369938 A JP 2002369938A JP 2002369938 A JP2002369938 A JP 2002369938A JP 2004005382 A JP2004005382 A JP 2004005382A
- Authority
- JP
- Japan
- Prior art keywords
- descriptor
- information
- dma
- storage mechanism
- data 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.)
- Pending
Links
Images
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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
【課題】ディスクリプタ制御によるDMAコントローラの制御において、メモリおよび共有バスを効率良く使用することができ、通信処理速度が早いデータ転送を実現する。
【解決手段】このデータ転送装置は、ディスクリプタを使用してDMAコントローラを制御することによりDMA転送を実行するものであって、複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を格納する第一の記憶機構と、個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を格納する第二の記憶機構と、前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とを入力して、DMAコントローラに供給されるべきディスクリプタ情報を出力する変換回路と、を含む。
【選択図】 図1
【解決手段】このデータ転送装置は、ディスクリプタを使用してDMAコントローラを制御することによりDMA転送を実行するものであって、複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を格納する第一の記憶機構と、個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を格納する第二の記憶機構と、前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とを入力して、DMAコントローラに供給されるべきディスクリプタ情報を出力する変換回路と、を含む。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、データ転送装置および方法に関し、特に、DMA(Direct Memory Access)コントローラを有するデータ転送装置および方法に関する。
【0002】
【従来の技術】
小型のコンピュータでは、入出力装置とメモリとの間、あるいはメモリ間のデータの受け渡しをCPU経由でなく直接行うDMA転送が行われており、かかるDMA転送のためにDMAコントローラが使用されている。DMAコントローラは、メモリ・アドレス、転送サイズ等を設定されて起動されることで、DMA転送を行う。
【0003】
さらに、近年においては、ホスト・システムがリアルタイムにデータ転送を制御することによるシステム効率の低下を防ぐため、ディスクリプタ制御によるDMAコントローラの制御方式が提案されている(例えば、下記特許文献1参照)。
【0004】
図20は、従来技術におけるディスクリプタの一構成例を示すフォーマット図である。同図に示される例では、一つのアドレス情報(AD)と一つのバイト・カウント情報(BC)とが組になって一つのディスクリプタ情報になる。
【0005】
アドレス情報(AD)は、記憶機構内にあるDMA転送データの先頭位置(address)を示しており、32ビット(Bit 31−00)で構成される。バイト・カウント情報(BC)は、DMA転送データの量を示しており、32ビット(Bit 31−00)で構成され、ビット31−14はリザーブ(Reserve)領域であり、ビット13−00は実際のバイト・カウント(Byte count)領域である。
【0006】
図21は、図20に示されるディスクリプタを格納するディスクリプタ記憶機構の構成例を示す概略図である。同図に示されるように、このディスクリプタ記憶機構には、アドレス情報ADiとバイト・カウント情報BCiとで構成されるディスクリプタが複数個(同図ではi=1,2,…,5に対応する5個)存在し得る。
【0007】
図22は、従来技術におけるDMAコントローラのディスクリプタ情報の取り込み方法を説明する図である。DMAコントローラとディスクリプタ記憶機構とは共有バスを介して接続されており、DMAコントローラはその共有バスを介してディスクリプタ記憶機構に格納されているアドレス情報とバイト・カウント(Byte count)とを取り込む。DMAコントローラは、取り込んだアドレス情報とバイト・カウントとに基づいてDMA転送を行う。
【0008】
図23は、従来技術におけるディスクリプタの他の構成例を示すフォーマット図である。同図に示される例では、一つのアドレス情報(AD)と一つのバイト・カウント情報(BC)と一つのネクスト・ディスクリプタ・アドレス(ND)とが組になって一つのディスクリプタ情報になる。
【0009】
図20に示される例との相違点について説明すると、バイト・カウント情報(BC)のビット31がチェイン・ビット(Chain bit)(C)になっている。このチェイン・ビット(C)は、複数のDMA転送を連続して行うかどうか、すなわちディスクリプタ・チェインを行うかどうか、を示すビットであり、このビットがオンの場合には、次の領域にネクスト・ディスクリプタ・アドレス(Next Descriptor Address)が存在する。ネクスト・ディスクリプタ・アドレスとは、次に読み込むべきディスクリプタ情報の格納場所を示している。
【0010】
図24は、図23に示されるディスクリプタを格納するディスクリプタ記憶機構の構成例を示す概略図である。同図に示されるように、このディスクリプタ記憶機構には、アドレス情報ADiとバイト・カウント情報BCiとネクスト・ディスクリプタ・アドレスNDiとで構成されるディスクリプタが複数個(同図ではi=1,2,…,5に対応する5個)存在し得る。
【0011】
図25は、DMAコントローラによる、図24のディスクリプタ記憶機構に格納されているディスクリプタ情報の取り込み方法を説明する図である。図25に示されるように、ディスクリプタ・チェインをサポートする場合、DMAコントローラは、アドレス情報およびバイト・カウントに加え、ネクスト・ディスクリプタ・アドレスをも取り込んで、DMA転送を行う。
【0012】
【特許文献1】
特開平5−204829号公報
【0013】
【発明が解決しようとする課題】
ところで、前述のようにディスクリプタ情報をそのままディスクリプタ記憶機構に格納すると、DMA制御対象の記憶領域などが多大・多数な場合、ディスクリプタに記載される情報も多大になり、ディスクリプタ情報を格納するための記憶機構も多大にならざるを得ないため、ハードウェア構成量が増加することになる。
【0014】
また、ディスクリプタに記載される情報が多大になると、ディスクリプタ情報の転送回数が増加し、共有バスの使用回数が増加するため、共有バスをその他の処理に使えなくなりシステム性能が低下するおそれがある。
【0015】
加えて、ディスクリプタ・チェインを行う場合には、ネクスト・ディスクリプタ・アドレスが必要になり、ディスクリプタに記載される情報が増加し、ディスクリプタ情報を格納するための記憶機構も増大するので、ハードウェア構成量がさらに増加することになる。
【0016】
また、ネクスト・ディスクリプタ・アドレスが追加されると、ディスクリプタ情報の転送回数が増加し、共有バスの使用回数が増加し、共有バスをその他の処理に使用することができなくなるので、システム性能の更なる低下を招くおそれがある。
【0017】
本発明は、上記のような課題に鑑みてなされたものであり、その目的は、メモリおよび共有バスを効率良く使用することができ、通信処理速度が早いデータ転送装置および方法を提供することにある。
【0018】
【課題を解決するための手段】
上記目的を達成するために、本発明の第一の面によれば、ディスクリプタを使用してDMAコントローラを制御することによりDMA転送を実行するデータ転送装置であって、複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を格納する第一の記憶機構と、個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を格納する第二の記憶機構と、前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とを入力して、DMAコントローラに供給されるべきディスクリプタ情報を出力する変換回路と、を具備するデータ転送装置が提供される。
【0019】
また、本発明の第二の面によれば、前記第一の面によるデータ転送装置において、前記第一の記憶機構は、複数のディスクリプタ共用情報を格納し得るものである。
【0020】
また、本発明の第三の面によれば、前記第二の面によるデータ転送装置において、前記ディスクリプタ個別情報は、複数のディスクリプタ共用情報のうちの一つを選択する選択情報を含む。
【0021】
また、本発明の第四の面によれば、前記代参の面によるデータ転送装置において、前記ディスクリプタ共用情報は、DMA転送を開始すべきアドレスのうちの上位アドレスに関する情報を含む。
【0022】
また、本発明の第五の面によれば、前記第四の面によるデータ転送装置において、前記ディスクリプタ個別情報は、DMA転送を開始すべきアドレスのうちの下位アドレスに関する情報を含む。
【0023】
また、本発明の第六の面によれば、前記第五の面によるデータ転送装置において、前記変換回路は、入力されたディスクリプタ個別情報に基づいて一つのディスクリプタ共用情報を選択し、該選択されたディスクリプタ共用情報内の上位アドレスと該ディスクリプタ個別情報内の下位アドレスとを組み合わせてアドレス情報を作成しDMAコントローラに供給する。
【0024】
また、本発明の第七の面によれば、前記第一の面によるデータ転送装置において、前記ディスクリプタ個別情報は、DMA転送データ量を示すバイト・カウントに関する情報を含む。
【0025】
また、本発明の第八の面によれば、前記第一の面によるデータ転送装置において、前記ディスクリプタ個別情報は、ディスクリプタ・チェインの有無を示すチェイン情報を含む。
【0026】
また、本発明の第九の面によれば、前記第八の面によるデータ転送装置において、前記第二の記憶機構は、複数のディスクリプタ個別情報を格納するFIFO構造を有する。
【0027】
また、本発明の第十の面によれば、ディスクリプタを使用してDMAコントローラを制御することにより該DMAコントローラにDMA転送を実行させるデータ転送方法であって、(a)複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を第一の記憶機構に格納するステップと、(b)個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を第二の記憶機構に格納するステップと、(c)前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とに基づいて、DMAコントローラに供給されるべきディスクリプタ情報を生成するステップと、を具備するデータ転送方法が提供される。
【0028】
上述したような構成を採ることにより、ディスクリプタ情報を共用情報と個別情報とに分けて格納すると、必要な記憶領域を減少させることができるため、ハードウェア構成量を削減することができる。また、ディスクリプタ共用情報をデータ転送ごとに転送する必要がなくなるため、転送すべき情報量を少なくすることが可能となり、バス使用率が削減される。その結果、バスを他の処理に使用することが可能となるため、システム性能の向上が図られる。
【0029】
また、ディスクリプタ・チェインを行う場合、ディスクリプタ情報にディスクリプタ・チェインの有無を示すチェイン・ビットを設け、ディスクリプタ情報の記憶機構をFIFO構造とし、チェイン・ビットがオンのとき、FIFO内にある次のディスクリプタが自動的に選択され得るようにすることで、ネクスト・ディスクリプタ・アドレスが不要となり、ディスクリプタに記載されるべき情報が減少し、ディスクリプタ情報を格納するための記憶機構が減少する結果、ハードウェア構成量を削減することが可能となる。さらに、ネクスト・ディスクリプタ・アドレスを転送する必要がなくなるため、バス使用率が削減され、バスを他の処理に使用することが可能となり、システム性能の向上が図られる。
【0030】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施の形態を詳細に説明する。
【0031】
<第一実施形態>
図1は、本発明を適用したLANカードの一実施形態の機能的な構成を示すブロック図である。LANカードは、LAN(Local Area Network)との接続をサポートする通信制御処理装置である。同図において、LANカード本体10は、情報処理装置12とDMA(Direct Memory Access)処理装置13とPCIバス(Peripheral Component Interconnect Bus)インタフェース14とが共有バス11で接続された構成を有している。
【0032】
情報処理装置12は、制御機構18と記憶機構19とを有する。記憶機構19は、ソフトウェアやデータ等を蓄える装置(Memory)であり、DMA転送データ格納領域20を備えている。制御機構18は、ソフトウェアを実行する装置(CPU)であり、ディスクリプタ情報をDMA処理装置13内の第一のディスクリプタ記憶機構21および第二のディスクリプタ記憶機構22へ書き込む作業と、DMA転送データを記憶機構19内のDMA転送データ格納領域20へ書き込む作業とを行う。
【0033】
DMA処理装置13は、DMAコントローラ24を内蔵している装置であり、ディスクリプタの格納領域として共用情報を格納する第一のディスクリプタ記憶機構21と個別情報を格納する第二のディスクリプタ機構22とを備え、さらにディスクリプタの共用情報および個別情報を変換してDMAコントローラ24に渡すディスクリプタ変換回路23を備えている。
【0034】
PCIバスインタフェース14は、PCIカードエッジ17を介してLANカード本体の外部にあるホストのPCIバスと内部の共有バス11とをつなぐ装置である。
【0035】
また、LANカード10は、MAC(Media Access Control)15を備える。MAC15は、IOバス25を介してDMA処理装置13と接続され、DMA転送されるデータを所定のフレームフォーマットに変換し、LANインタフェース16を介して外部へ送信し、あるいはLANインタフェース16から受信したフレームフォーマットによるデータを解読し、自分宛のデータであるか否かを判断する。
【0036】
図2(A)および(B)は、本実施形態におけるディスクリプタの構成を示すフォーマット図である。ディスクリプタ情報は、図2(A)に示されるディスクリプタ共用情報と図2(B)に示されるディスクリプタ個別情報とからなる。すなわち、一つの共用情報と一つの個別情報とが組になって一つのディスクリプタ情報が構成される。
【0037】
ディスクリプタ共用情報は、32ビットで構成され、DMA転送データの送受信を行う際の先頭アドレスの上位2バイト(上位アドレス)を設定・表示するものである。アラインメント(Alignment)は64キロバイト(kbytes)単位である。ビット31−16は上位アドレス領域(Head address)であり、ビット15−00はリザーブ(Reserve)領域である。
【0038】
ディスクリプタ個別情報は、32ビットで構成され、DMA転送データの送受信を行う際の先頭アドレス・セレクト符号、バイト・カウント(Byte count)、下位アドレスを設定・表示するものである。
【0039】
具体的には、ビット31はセレクト(Select)領域(S)であり、この領域の値が「0」のとき先頭アドレスとして後述するディスクリプタ共用情報Aが選択され、「1」のとき先頭アドレスとして後述するディスクリプタ共用情報Bが選択されることになる。
【0040】
ビット30はリザーブ(Reserve)領域(R)であり、ビット29−16はバイト・カウント(Byte count)すなわちバイト長(Byte length)領域であり、ビット15−00はオフセット(Offset)すなわち下位アドレス領域である。
【0041】
図3(A)および(B)は、本実施形態における第一のディスクリプタ記憶機構21および第二のディスクリプタ機構22の構成をそれぞれ示す概略図である。これらの図に示されるように、ディスクリプタ情報は、ディスクリプタ共用情報とディスクリプタ個別情報とに分けて対応する記憶機構に格納され、共用情報を格納するものを第一のディスクリプタ記憶機構(図3(A))、個別情報を格納するものを第二のディスクリプタ記憶機構(図3(B))とし、ディスクリプタ共用情報およびディスクリプタ個別情報とも対応する記憶機構に複数個存在しうる。
【0042】
なお、図3(A)および(B)では、第一のディスクリプタ記憶機構21にはディスクリプタ共用情報AおよびBという二つの共用情報が格納されており、第二のディスクリプタ記憶機構22にはディスクリプタ個別情報1−5という五つの個別情報が格納されている例を示しているが、本発明はこれに限られるものではない。
【0043】
例えば、ディスクリプタ共用情報が二つ(AおよびB)から四つ(A,B,CおよびD)になると、四つのディスクリプタ共用情報の一つを選択するためにディスクリプタ個別情報のセレクト領域がリザーブ領域のビット30まで拡張されることになる。
【0044】
図4は、本実施形態におけるディスクリプタ変換回路23の機能的な構成を示す概念図である。ディスクリプタ変換回路23は、第一のディスクリプタ記憶機構21に格納されているディスクリプタ共用情報Aおよびディスクリプタ共用情報Bのうち、ディスクリプタ個別情報内のセレクト領域の値(Select)に基づいて、いずれか一方のディスクリプタ共用情報内の先頭アドレス上位2バイトすなわち上位アドレス(Head address)を選択するセレクタ41を備えている。
【0045】
また、選択された上位アドレス(先頭アドレス上位2バイト)とディスクリプタ個別情報内の下位アドレスすなわちオフセット(Offset)とを組み合わせて(すなわち、合流させて)アドレス情報を作成する回路42と、ディスクリプタ個別情報内のバイト・カウント(Byte count)を抽出する回路43とが備えられている。
【0046】
ディスクリプタ変換回路23は、第二のディスクリプタ記憶機構22に任意のディスクリプタ個別情報が入力されると、ディスクリプタ情報の変換を行う。すなわち、入力されたディスクリプタ個別情報内のセレクト領域の値(Select)に応じて、所定のディスクリプタ共用情報内の先頭アドレス(Head address)すなわち上位アドレスを選択し、ディスクリプタ個別情報内のオフセット(Offset)すなわち下位アドレスと組み合わせてアドレス情報を作成し、ディスクリプタ個別情報内のバイト・カウント(Byte count)を切り出してバイト・カウント情報を作成する。こうして作成されたアドレス情報とバイト・カウント情報とはDMAコントローラ24へ送出される。
【0047】
以上の構成を有する本実施形態におけるLANカードの動作を、図1および図5〜図7を参照して説明する。図5〜図7は本実施形態のLANカードの主要動作を示すフローチャートであり、図5は制御機構18によるディスクリプタ共用情報の転送動作を示すフローチャートであり、図6は制御機構18によるディスクリプタ個別情報の転送動作を示すフローチャートであり、図7はDMA処理装置13によるDMA転送の動作を示すフローチャートである。
【0048】
先ず、図5において、制御機構18は共有バス11が空いているかどうかを確認し(ステップ501)、共有バス11が空いている場合にはステップ502へ進み、空いていない場合には共有バス11が空くまで所定時間待つ。
【0049】
共有バス11が空いていると、制御機構18は、共有バス11を介して、ディスクリプタ共用情報をDMA処理装置13内の第一のディスクリプタ記憶機構21へ格納し(ステップ502)、ディスクリプタ共用情報の格納を終えると、他の処理へ移行する。
【0050】
次に、図6において、制御機構18は、DMA転送の要求が発生すると(ステップ601)、共有バス11が空いているか確認し(ステップ602)、共有バス11が空いている場合にはステップ603へ進み、空いていない場合には共有バス11が空くまで所定時間待つ。
【0051】
共有バスが空いていると、ステップ603において、制御機構18は、DMAの対象となるデータを情報処理装置12内の記憶機構19のDMA転送データ格納領域20に格納し、ステップ604へ進む。そして、制御機構18は、ディスクリプタ個別情報をDMA処理装置13内の第二のディスクリプタ記憶機構22へ格納し(ステップ604)、ディスクリプタ個別情報の格納を終えると、他の処理へ移行する。
【0052】
一方、図7において、DMA処理装置13は、第二のディスクリプタ記憶機構22にディスクリプタ個別情報が書き込まれたかどうか常時チェックし(ステップ701)、新しいディスクリプタ個別情報が書き込まれるとステップ702へ進む。
【0053】
そして、ディスクリプタ変換回路23は、書き込まれたディスクリプタ個別情報と既に格納済みのディスクリプタ共用情報とを読取り、DMAコントローラ24が認識し得る形式のアドレス情報およびバイト・カウント(Byte count)へ変換し(ステップ702)、変換が完了したディスクリプタ情報(アドレス情報とバイト・カウント)をDMAコントローラ24へ送出する(ステップ703)。
【0054】
次に、DMAコントローラ24は、変換されたディスクリプタ情報(アドレス情報とバイト・カウント)を解析する(ステップ704)。次いで、共有バス11およびIOバス25が空いているか確認し(ステップ705)、共有バス11およびIOバス25が空いている場合にはステップ706へ進み、空いていない場合には共有バス11およびIOバス25が空くまで所定時間待つ。
【0055】
共有バス11およびIOバス25が空いていると、DMAコントローラ24は、記憶機構19内のDMA対象データを特定し、解析したディスクリプタ情報にしたがって共有バス11およびIOバス25を使用してDMA転送を行う(ステップ706)。転送が終わると、DMA処理装置13は、次のディスクリプタ個別情報の書き込みがあるまで待機する。
【0056】
図8は、本実施形態におけるディスクリプタ情報の転送タイミングを示すタイミングチャートである。同図において、「A」と「B」はそれぞれディスクリプタ共用情報Aとディスクリプタ共用情報Bを表し、「1」〜「5」はそれぞれディスクリプタ個別情報1〜5を表している。本実施形態のDMA転送において、ディスクリプタ情報をDMA処理装置13へ送るときには、予めディスクリプタ共用情報を送っておき、その後DMA転送が必要になったときにディスクリプタ個別情報のみを送る。
【0057】
図8の例では、サイクルτ1とτ2にそれぞれディスクリプタ共用情報AとBを送り、サイクルτ3にディスクリプタ個別情報1を送り、サイクルτ4にディスクリプタ個別情報2を、サイクルτ5にディスクリプタ個別情報3を、サイクルτ6にディスクリプタ個別情報4を、サイクルτ7にディスクリプタ個別情報5を順次送っている。しかしながら、ディスクリプタ個別情報の送り方はこれに限られるものではなく、DMA転送の要求に応じて適時送られることになる。
【0058】
一方、図9は、従来技術におけるディスクリプタ情報の転送タイミングを示すタイミングチャートである。同図において、「AD1」〜「AD5」はそれぞれディスクリプタ情報内のアドレス情報を表し、「BC1」〜「BC5」はそれぞれディスクリプタ情報内のバイト・カウント情報を表している。
【0059】
従来技術のDMA転送において、ディスクリプタ情報をDMA処理装置へ送るときには、各ディスクリプタ情報内のアドレス情報とバイト・カウント情報とをそれぞれ送っている。すなわち、サイクルτ1にディスクリプタ情報1のアドレス情報を送り、サイクルτ2にディスクリプタ1のバイト・カウント情報を送る。
【0060】
同様に、サイクルτ3にディスクリプタ2のアドレス情報を、サイクルτ4にディスクリプタ2のバイト・カウント情報を、サイクルτ5にディスクリプタ3のアドレス情報を、サイクルτ6にディスクリプタ3のバイト・カウント情報を、サイクルτ7にディスクリプタ4のアドレス情報を、サイクルτ8にディスクリプタ4のバイト・カウント情報を、サイクルτ9にディスクリプタ5のアドレス情報を、サイクルτ10にディスクリプタ5のバイト・カウント情報をそれぞれ送っている。
【0061】
従来技術のDMA転送では、すべてのディスクリプタ1〜5の情報を転送するのにかかる時間はτ1〜τ10であるのに対し、本実施形態の場合、ディスクリプタ1〜5のすべての情報を転送するのにかかる時間はτ1〜τ7となり、共有バスを占有する時間が短く、従来技術に比べて改善が図られる。
【0062】
このように本実施形態では、ディスクリプタ情報の共用情報を抜き出し、分離格納することによりハードウェア構成量を削減することができる。また、共有バス上を転送する情報が減るので、共有バスの使用率が下がり、その分共有バスをその他の処理に使用することができるため性能向上が期待される。
【0063】
図10は、本発明を適用したLANカードを搭載したサーバの一実施形態の構成を示すブロック図である。同図において、サーバ本体50は、CPU51、メモリ52、ハードディスクドライブ(HDD)53、バスインタフェース54、および複数のLANカード10を備えており、CPU51、メモリ52、HDD53はバスインタフェース54を介して相互に接続されている。各LANカード10は、PCIバス55を介してバスインタフェース54と接続されており、LANケーブル56を介して外部のLANとも接続することが可能である。
【0064】
<第二実施形態>
図11は、本発明を適用したLANカードの他の実施形態の機能的な構成を示すブロック図である。同図におけるLANカード本体10においては、情報処理装置12とDMA(Direct Memory Access)処理装置13とPCIバス(Peripheral Component Interconnect Bus)インタフェース14とが共有バス11で接続されている。
【0065】
情報処理装置12は、制御機構18と記憶機構19とを有する。記憶機構19は、ソフトウェアやデータ等を蓄える装置(Memory)であり、DMA転送データ格納領域20、第一のディスクリプタ記憶機構21および第二のディスクリプタ記憶機構22を備えている。制御機構18は、ソフトウェアを実行する装置(CPU)であり、ディスクリプタ情報を記憶機構19内の第一のディスクリプタ記憶機構21および第二のディスクリプタ記憶機構22へ書き込む作業と、DMA転送データを記憶機構19内のDMA転送データ格納領域20へ書き込む作業とを行う。
【0066】
DMA処理装置13は、DMAコントローラ24を内蔵している装置であり、送られてきたディスクリプタ情報を保持するためのメモリ30を備え、さらにディスクリプタの共用情報および個別情報を変換してDMAコントローラ24に渡すディスクリプタ変換回路23を備えている。
【0067】
PCIバスインタフェース14は、PCIカードエッジ17を介してLANカード本体の外部にあるホストのPCIバスと内部の共有バス11とをつなぐ装置である。
【0068】
また、LANカード10は、MAC(Media Access Control)15を備える。MAC15は、IOバス25を介してDMA処理装置13と接続され、DMA転送されたデータを所定フレームフォーマットに変換し、LANインタフェース16を介して外部へ送信する、あるいはLANインタフェース16から受信したフレームフォーマットによるデータを解読し、自分宛のデータであるか否かを判断する。
【0069】
本実施形態におけるディスクリプタの構成は第一実施形態において説明した図2(A)および(B)と同様であり、第一および第二のディスクリプタ記憶機構の構成も図3(A)および(B)と同様であり、ディスクリプタ変換回路23の機能的な構成も図4と同様のため、ここでは説明を省略する。
【0070】
以上の構成を有する本実施形態におけるLANカードの動作を、図11および図12〜図14を参照して説明する。図12〜図14は本実施形態のLANカードの主要動作を示すフローチャートであり、図12は制御機構18によるディスクリプタ情報の転送動作を示すフローチャートであり、図13および図14はDMA処理装置13によるDMA転送の動作を示すフローチャートである。
【0071】
先ず、図12において、制御機構18は、DMA転送の要求が発生すると(ステップ1201)、共有バス11が空いているか確認し(ステップ1202)、共有バスが空いている場合にはステップ1203へ進み、空いていない場合には共有バス11が空くまで所定時間待つ。
【0072】
共有バス11が空いていると、制御機構18は、DMAの対象となるデータを情報処理装置12の記憶機構19内のDMA転送データ格納領域20に格納し(ステップ1203)、次のステップ1204へ進む。ステップ1204において、制御機構18は、ディスクリプタ共用情報および個別情報を第一および第二のディスクリプタ記憶機構21および22へそれぞれ格納し、ディスクリプタ情報の格納を終えると、他の処理へ移行する。なお、ディスクリプタ共用情報が既に第一のディスクリプタ記憶機構21内に格納されている場合には、ディスクリプタ個別情報の格納のみが行われる。
【0073】
一方、図13において、DMA処理装置13は、タイマ等により一定時間経ったかどうか常時チェックし(ステップ1301)、所定時間毎にステップ1302へ進み、共有バス11が空いているか確認し、共有バス11が空いている場合にはステップ1303へ進み、空いていない場合には共有バス11が空くまで所定時間待つ。
【0074】
共有バス11が空いていると、DMA処理装置13は、情報処理装置12内の第一および第二のディスクリプタ記憶機構21および22を読み込み(ステップ1303)、新しいディスクリプタ情報がディスクリプタ記憶機構にあるかどうかチェックし(ステップ1304)、新しいディスクリプタ情報がある場合にはステップ1305へ進み、新しいディスクリプタ情報がない場合にはステップ1301へ戻る。
【0075】
新しいディスクリプタ情報がある場合には、共有バス11が空いているか確認し(ステップ1305)、共有バス11が空いている場合にはステップ1306へ進み、空いていない場合には共有バス11が空くまで所定時間待つ。
【0076】
そして、図14のステップ1306では、ディスクリプタ記憶機構21および22からメモリ30へとディスクリプタ共用情報および個別情報が読み込まれる。ディスクリプタ変換回路23は、そのディスクリプタ共用情報および個別情報を、DMAコントローラ24が認識し得る形式のアドレス情報およびバイト・カウントへ変換し、変換済みの情報をDMAコントローラ24へ送出する(ステップ1307)。
【0077】
なお、情報処理装置12内の第一のディスクリプタ記憶機構21から読み込まれたディスクリプタ共用情報をDMA処理装置13内のメモリ30に保持しておけば、ディスクリプタ共用情報の読み込みは最初の一回だけで済み、二回目以降の読み込み処理を省略することが可能であり、共有バスの占有時間を短縮することができる。
【0078】
次に、DMAコントローラ24は、変換されたディスクリプタ情報(アドレス情報とバイト・カウント)を解析し(ステップ1308)、共有バス11およびIOバス25が空いているか確認し(ステップ1309)、共有バス11およびIOバス25が空いている場合にはステップ1310へ進み、空いていない場合には共有バス11およびIOバス25が空くまで所定時間待つ。
【0079】
共有バス11およびIOバス25が空いていると、DMAコントローラ24は、記憶機構19内のDMA対象データを特定し、解析したディスクリプタ情報に従い共有バス11およびIOバス25を使用してDMA転送を行う(ステップ1310)。転送を終えると次のディスクリプタの書き込みがあるまで待機する。
【0080】
前述した第一実施形態では、ディスクリプタ共用情報を格納する第一のディスクリプタ記憶機構21およびディスクリプタ個別情報を格納する第二のディスクリプタ記憶機構22をともにDMA処理装置13内に設ける一方、第二実施形態では、第一のディスクリプタ記憶機構21および第二のディスクリプタ記憶機構22をともに情報処理装置12に設けているが、ディスクリプタ共用情報を格納する第一のディスクリプタ記憶機構21はDMA処理装置13内に設けるとともにディスクリプタ個別情報を格納する第二のディスクリプタ記憶機構22は情報処理装置12に設ける構成としてもよい。
【0081】
<第三実施形態>
最後に、本発明を適用したLANカードの第三実施形態について説明する。この第三実施形態の基本的な構成は、前述した第一実施形態に関する図1の構成と同一となるが、第一実施形態に対してディスクリプタ・チェインをサポートするための改造が追加されている。
【0082】
図15(A)および(B)は、それぞれ、本実施形態におけるディスクリプタ共用情報およびディスクリプタ個別情報の構成を示すフォーマット図である。前述した第一実施形態に係る図2(A)および(B)と比較してわかるように、本実施形態におけるディスクリプタ共用情報(図15(A))は第一実施形態のもの(図2(A))と同一である。
【0083】
一方、本実施形態におけるディスクリプタ個別情報(図15(B))は第一実施形態のもの(図2(B))と若干異なり、ビット30がチェイン・ビット(Chain bit)(C)として使用されるようになっている。このチェイン・ビット(C)は、複数のDMA転送を連続して行うかどうか、すなわちディスクリプタ・チェインを行うかどうか、を示すビットである。
【0084】
図16(A)および(B)は、本実施形態における第一のディスクリプタ記憶機構21および第二のディスクリプタ機構22の構成をそれぞれ示す概略図である。前述した第一実施形態に係る図3(A)および(B)と比較してわかるように、本実施形態における第一のディスクリプタ記憶機構21(図16(A))は第一実施形態のもの(図3(A))と同一である。
【0085】
一方、本実施形態における第二のディスクリプタ機構22(図16(B))は第一実施形態のもの(図3(B))と若干異なり、ビット30がチェイン・ビット(Chain bit)(C)として使用されるようになっている。また、本実施形態における第二のディスクリプタ機構22(図16(B))は、FIFO(First In First Out)構造となっている。
【0086】
図17は、本実施形態におけるディスクリプタ変換回路23の機能的な構成を示す図である。前述した第一実施形態に係る図4のディスクリプタ変換回路と比較してわかるように、本実施形態におけるディスクリプタ変換回路では、ディスクリプタ個別情報内のチェイン・ビット(Chain bit)を抽出する回路44が追加されている。
【0087】
次に、ディスクリプタ・チェインをサポートする第三実施形態に係るLANカードの動作について説明する。制御機構18によるディスクリプタ共用情報の転送動作は、前述した第一実施形態に係る図5のフローチャートに示されるものと同一となり、また、制御機構18によるディスクリプタ個別情報の転送動作も、前述した第一実施形態に係る図6のフローチャートに示されるものと同一となる。
【0088】
一方、DMA処理装置13によるDMA転送動作は、図18に示されるフローチャートのようになる。この図18のフローチャートと、前述した第一実施形態に係る図7のフローチャートとを比較してわかるとおり、図18のステップ1801〜1806は図7のステップ701〜706と同一となるが、図18では新たなステップ1807および1808が追加されている。
【0089】
ステップ1807では、チェイン・ビットがONか否かが判定され、チェイン・ビットがONでない、すなわちOFFの場合には、処理が終了する。一方、チェイン・ビットがONである場合には、ステップ1808に進む。ステップ1808では、ディスクリプタ変換回路23は、FIFO構造における次のディスクリプタ個別情報を読み取り、対応するディスクリプタ共用情報を選択し、そしてDMAコントローラ24が認識し得る形式のアドレス情報およびバイト・カウントを作成する。そして、ステップ1803に戻る。
【0090】
このように、本実施形態におけるディスクリプタ・チェインでは、ディスクリプタ個別情報の記憶機構がFIFO構造とされ、チェイン・ビットがオンのとき、FIFO内にある次のディスクリプタが自動的に選択されるように構成されているため、ネクスト・ディスクリプタ・アドレスが不要となる。その結果、ディスクリプタに記載されるべき情報が減少し、ディスクリプタ情報を格納するための記憶機構が減少するため、ハードウェア構成量を削減することが可能となる。
【0091】
また、本実施形態におけるディスクリプタ情報の転送タイミングを示すタイミングチャートは、前述した第一実施形態に係る図8に示されるものと同一となる。一方、図24に示される従来技術のように、ディスクリプタ情報を共用情報と個別情報とに分離することなく、さらにネクスト・ディスクリプタ・アドレスをも有してディスクリプタ・チェインをサポートする場合には、ディスクリプタ情報の転送タイミングは図19に示されるようになる。
【0092】
図8と図19との比較から明らかなように、本実施形態においては、ネクスト・ディスクリプタ・アドレスを転送する必要がなくなるため、バス使用率が削減され、バスを他の処理に使用することが可能となり、システム性能の向上が図られる。
【0093】
以上、図面に基づいて本発明に係る実施形態を説明してきたが、当業者にとっては種々の変更が可能であり、例えば、本発明をLANカード以外のデータ転送装置に適用することも可能であり、LANに代えてADSL等の他の通信網を採用することも可能である。
【0094】
また、LANカードのDMAコントローラに適用した場合について説明したが、それに限定されるものではなく、例えば、単独で構成される汎用のDMAコントローラやコンピュータネットワークを構成する各種の端末機器及びワークステーション等にも広く適用できる。
【0095】
以上、本発明を特にその好ましい実施の形態を参照して詳細に説明した。本発明の容易な理解のため、本発明の具体的な形態を以下に付記する。
【0096】
(付記1) ディスクリプタを使用してDMAコントローラを制御することによりDMA転送を実行するデータ転送装置であって、
複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を格納する第一の記憶機構と、
個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を格納する第二の記憶機構と、
前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とを入力して、DMAコントローラに供給されるべきディスクリプタ情報を出力する変換回路と、
を具備するデータ転送装置。
【0097】
(付記2) 前記第一の記憶機構は、複数のディスクリプタ共用情報を格納し得るものである、付記1に記載のデータ転送装置。
【0098】
(付記3) 前記ディスクリプタ個別情報は、複数のディスクリプタ共用情報のうちの一つを選択する選択情報を含む、付記2に記載のデータ転送装置。
【0099】
(付記4) 前記ディスクリプタ共用情報は、DMA転送を開始すべきアドレスのうちの上位アドレスに関する情報を含む、付記3に記載のデータ転送装置。
【0100】
(付記5) 前記ディスクリプタ個別情報は、DMA転送を開始すべきアドレスのうちの下位アドレスに関する情報を含む、付記4に記載のデータ転送装置。
【0101】
(付記6) 前記変換回路は、入力されたディスクリプタ個別情報に基づいて一つのディスクリプタ共用情報を選択し、該選択されたディスクリプタ共用情報内の上位アドレスと該ディスクリプタ個別情報内の下位アドレスとを組み合わせてアドレス情報を作成しDMAコントローラに供給する、付記5に記載のデータ転送装置。
【0102】
(付記7) 前記ディスクリプタ個別情報は、DMA転送データ量を示すバイト・カウントに関する情報を含む、付記1に記載のデータ転送装置。
【0103】
(付記8) 前記変換回路は、入力されたディスクリプタ個別情報内のバイト・カウントをDMAコントローラに供給する、付記7に記載のデータ転送装置。
【0104】
(付記9) 前記ディスクリプタ個別情報は、ディスクリプタ・チェインの有無を示すチェイン情報を含む、付記1に記載のデータ転送装置。
【0105】
(付記10) 前記第二の記憶機構は、複数のディスクリプタ個別情報を格納するFIFO構造を有する、付記9に記載のデータ転送装置。
【0106】
(付記11) 前記チェイン情報がディスクリプタ・チェイン有りを示すときに、前記変換回路が連続して動作する、付記10に記載のデータ転送装置。
【0107】
(付記12) 付記1から付記11までのいずれか一項に記載のデータ転送装置を具備するLANカード。
【0108】
(付記13) 制御機構及びDMA転送データ格納領域を有する記憶機構を備えた情報処理装置と、
前記第一の記憶機構、第二の記憶機構、変換回路及びDMAコントローラを備えたDMA処理装置と、
前記情報処理装置と前記DMA処理装置とを接続する共有バスと、
を具備する、付記12に記載のLANカード。
【0109】
(付記14) 付記12に記載のLANカードを具備するサーバ。
【0110】
(付記15) ディスクリプタを使用してDMAコントローラを制御することにより該DMAコントローラにDMA転送を実行させるデータ転送方法であって、
(a)複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を第一の記憶機構に格納するステップと、
(b)個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を第二の記憶機構に格納するステップと、
(c)前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とに基づいて、DMAコントローラに供給されるべきディスクリプタ情報を生成するステップと、
を具備するデータ転送方法。
【0111】
(付記16) ステップ(a)は、複数のディスクリプタ共用情報を格納するものである、付記15に記載のデータ転送方法。
【0112】
(付記17) 前記ディスクリプタ個別情報は、複数のディスクリプタ共用情報のうちの一つを選択する選択情報を含む、付記16に記載のデータ転送方法。
【0113】
(付記18) 前記ディスクリプタ共用情報は、DMA転送を開始すべきアドレスのうちの上位アドレスに関する情報を含む、付記17に記載のデータ転送方法。
【0114】
(付記19) 前記ディスクリプタ個別情報は、DMA転送を開始すべきアドレスのうちの下位アドレスに関する情報を含む、付記18に記載のデータ転送方法。
【0115】
(付記20) ステップ(c)は、一つのディスクリプタ個別情報に基づいて一つのディスクリプタ共用情報を選択し、該選択されたディスクリプタ共用情報内の上位アドレスと該ディスクリプタ個別情報内の下位アドレスとを組み合わせてアドレス情報を作成しDMAコントローラに供給することを含む、付記19に記載のデータ転送方法。
【0116】
(付記21) 前記ディスクリプタ個別情報は、DMA転送データ量を示すバイト・カウントに関する情報を含む、付記15に記載のデータ転送方法。
【0117】
(付記22) ステップ(c)は、ディスクリプタ個別情報内のバイト・カウントをDMAコントローラに供給することを含む、付記21に記載のデータ転送方法。
【0118】
(付記23) 前記ディスクリプタ個別情報は、ディスクリプタ・チェインの有無を示すチェイン情報を含む、付記15に記載のデータ転送方法。
【0119】
(付記24) 前記第二の記憶機構は、複数のディスクリプタ個別情報を格納するFIFO構造を有する、付記23に記載のデータ転送方法。
【0120】
(付記25) 前記チェイン情報がディスクリプタ・チェイン有りを示すときに、ステップ(c)が連続して実行される、付記24に記載のデータ転送方法。
【0121】
【発明の効果】
以上説明したように、本発明によれば、ディスクリプタ情報を共用情報と個別情報とに分けて格納することで、必要な記憶領域を減少させることができるため、ハードウェア構成量を削減することができる。また、ディスクリプタにおける共通の情報をデータ転送ごとに転送する必要がなくなるため、転送すべき情報量を少なくすることが可能となり、バス使用率が削減される。その結果、バスを他の処理に使用することが可能となるため、システム性能の向上が図られる。
【0122】
また、ディスクリプタ・チェインを行う場合、FIFO構造を採用することで、ネクスト・ディスクリプタ・アドレスが不要となり、ディスクリプタに記載されるべき情報が減少し、ディスクリプタ情報を格納するための記憶機構が減少するので、ハードウェア構成量を削減することが可能となる。また、ネクスト・ディスクリプタ・アドレスを転送する必要がなくなるため、バス使用率が削減され、バスを他の処理に使用することが可能となり、システム性能の向上が図られる。
【図面の簡単な説明】
【図1】本発明を適用したLANカードの第一実施形態の機能的な構成を示すブロック図である。
【図2】(A)および(B)は、それぞれディスクリプタ共用情報およびディスクリプタ個別情報の構成を示すフォーマット図である。
【図3】(A)および(B)は、それぞれ第一のディスクリプタ記憶機構および第二のディスクリプタ機構の構成を示すブロック図である。
【図4】ディスクリプタ変換回路の機能的な構成を示すブロック図である。
【図5】制御機構によるディスクリプタ共用情報の転送動作を示すフローチャートである。
【図6】制御機構によるディスクリプタ個別情報の転送動作を示すフローチャートである。
【図7】DMA処理装置によるDMA転送の動作を示すフローチャートである。
【図8】本実施形態におけるディスクリプタ情報の転送タイミングを示すタイミングチャートである。
【図9】従来技術におけるディスクリプタ情報の転送タイミングを示すタイミングチャートである。
【図10】本発明を適用したLANカードを搭載したサーバの一実施形態の構成を示すブロック図である。
【図11】本発明を適用したLANカードの第二実施形態の機能的な構成を示すブロック図である。
【図12】第二実施形態における、制御機構によるディスクリプタ情報の転送動作を示すフローチャートである。
【図13】第二実施形態における、DMA処理装置によるDMA転送の動作を示すフローチャート(1/2)である。
【図14】第二実施形態における、DMA処理装置によるDMA転送の動作を示すフローチャート(2/2)である。
【図15】(A)および(B)は、第三実施形態におけるそれぞれディスクリプタ共用情報およびディスクリプタ個別情報の構成を示すフォーマット図である。
【図16】(A)および(B)は、第三実施形態におけるそれぞれ第一のディスクリプタ記憶機構および第二のディスクリプタ機構の構成を示すブロック図である。
【図17】第三実施形態におけるディスクリプタ変換回路の機能的な構成を示すブロック図である。
【図18】第三実施形態における、DMA処理装置によるDMA転送の動作を示すフローチャートである。
【図19】従来技術におけるディスクリプタ情報の転送タイミング(ディスクリプタ・チェイン有りの場合)を示すタイミングチャートである。
【図20】従来技術におけるディスクリプタの構成を示すフォーマット図である。
【図21】従来技術におけるディスクリプタ記憶機構を示す概略図である。
【図22】従来技術におけるDMAコントローラのディスクリプタ情報の取り込み方法を説明する図である。
【図23】従来技術におけるディスクリプタの他の構成例を示すフォーマット図である。
【図24】図23に示されるディスクリプタを格納するディスクリプタ記憶機構の構成例を示す概略図である。
【図25】DMAコントローラが図24のディスクリプタ記憶機構に格納されているディスクリプタ情報を取り込む方法を説明する図である。
【符号の説明】
10…LANカード
11…共有バス
12…情報処理装置
13…DMA(Direct Memory Access)処理装置
14…PCIバス(Peripheral Component Interconnect Bus)インタフェース15…MAC(Media Access Control)
16…LANインタフェース
17…PCIカードエッジ
18…制御機構
19…記憶機構
20…DMA転送データ格納領域
21…第一のディスクリプタ記憶機構
22…第二のディスクリプタ記憶機構
23…ディスクリプタ変換回路
24…DMAコントローラ
25…IOバス
30…メモリ
41…セレクタ
42…アドレス情報を作成する回路
43…バイト・カウントを抽出する回路
44…チェイン・ビットを抽出する回路
50…サーバ
51…CPU
52…メモリ
53…ハードディスクドライブ(HDD)
54…バスインタフェース
55…PCIバス
56…LANケーブル
【発明の属する技術分野】
本発明は、データ転送装置および方法に関し、特に、DMA(Direct Memory Access)コントローラを有するデータ転送装置および方法に関する。
【0002】
【従来の技術】
小型のコンピュータでは、入出力装置とメモリとの間、あるいはメモリ間のデータの受け渡しをCPU経由でなく直接行うDMA転送が行われており、かかるDMA転送のためにDMAコントローラが使用されている。DMAコントローラは、メモリ・アドレス、転送サイズ等を設定されて起動されることで、DMA転送を行う。
【0003】
さらに、近年においては、ホスト・システムがリアルタイムにデータ転送を制御することによるシステム効率の低下を防ぐため、ディスクリプタ制御によるDMAコントローラの制御方式が提案されている(例えば、下記特許文献1参照)。
【0004】
図20は、従来技術におけるディスクリプタの一構成例を示すフォーマット図である。同図に示される例では、一つのアドレス情報(AD)と一つのバイト・カウント情報(BC)とが組になって一つのディスクリプタ情報になる。
【0005】
アドレス情報(AD)は、記憶機構内にあるDMA転送データの先頭位置(address)を示しており、32ビット(Bit 31−00)で構成される。バイト・カウント情報(BC)は、DMA転送データの量を示しており、32ビット(Bit 31−00)で構成され、ビット31−14はリザーブ(Reserve)領域であり、ビット13−00は実際のバイト・カウント(Byte count)領域である。
【0006】
図21は、図20に示されるディスクリプタを格納するディスクリプタ記憶機構の構成例を示す概略図である。同図に示されるように、このディスクリプタ記憶機構には、アドレス情報ADiとバイト・カウント情報BCiとで構成されるディスクリプタが複数個(同図ではi=1,2,…,5に対応する5個)存在し得る。
【0007】
図22は、従来技術におけるDMAコントローラのディスクリプタ情報の取り込み方法を説明する図である。DMAコントローラとディスクリプタ記憶機構とは共有バスを介して接続されており、DMAコントローラはその共有バスを介してディスクリプタ記憶機構に格納されているアドレス情報とバイト・カウント(Byte count)とを取り込む。DMAコントローラは、取り込んだアドレス情報とバイト・カウントとに基づいてDMA転送を行う。
【0008】
図23は、従来技術におけるディスクリプタの他の構成例を示すフォーマット図である。同図に示される例では、一つのアドレス情報(AD)と一つのバイト・カウント情報(BC)と一つのネクスト・ディスクリプタ・アドレス(ND)とが組になって一つのディスクリプタ情報になる。
【0009】
図20に示される例との相違点について説明すると、バイト・カウント情報(BC)のビット31がチェイン・ビット(Chain bit)(C)になっている。このチェイン・ビット(C)は、複数のDMA転送を連続して行うかどうか、すなわちディスクリプタ・チェインを行うかどうか、を示すビットであり、このビットがオンの場合には、次の領域にネクスト・ディスクリプタ・アドレス(Next Descriptor Address)が存在する。ネクスト・ディスクリプタ・アドレスとは、次に読み込むべきディスクリプタ情報の格納場所を示している。
【0010】
図24は、図23に示されるディスクリプタを格納するディスクリプタ記憶機構の構成例を示す概略図である。同図に示されるように、このディスクリプタ記憶機構には、アドレス情報ADiとバイト・カウント情報BCiとネクスト・ディスクリプタ・アドレスNDiとで構成されるディスクリプタが複数個(同図ではi=1,2,…,5に対応する5個)存在し得る。
【0011】
図25は、DMAコントローラによる、図24のディスクリプタ記憶機構に格納されているディスクリプタ情報の取り込み方法を説明する図である。図25に示されるように、ディスクリプタ・チェインをサポートする場合、DMAコントローラは、アドレス情報およびバイト・カウントに加え、ネクスト・ディスクリプタ・アドレスをも取り込んで、DMA転送を行う。
【0012】
【特許文献1】
特開平5−204829号公報
【0013】
【発明が解決しようとする課題】
ところで、前述のようにディスクリプタ情報をそのままディスクリプタ記憶機構に格納すると、DMA制御対象の記憶領域などが多大・多数な場合、ディスクリプタに記載される情報も多大になり、ディスクリプタ情報を格納するための記憶機構も多大にならざるを得ないため、ハードウェア構成量が増加することになる。
【0014】
また、ディスクリプタに記載される情報が多大になると、ディスクリプタ情報の転送回数が増加し、共有バスの使用回数が増加するため、共有バスをその他の処理に使えなくなりシステム性能が低下するおそれがある。
【0015】
加えて、ディスクリプタ・チェインを行う場合には、ネクスト・ディスクリプタ・アドレスが必要になり、ディスクリプタに記載される情報が増加し、ディスクリプタ情報を格納するための記憶機構も増大するので、ハードウェア構成量がさらに増加することになる。
【0016】
また、ネクスト・ディスクリプタ・アドレスが追加されると、ディスクリプタ情報の転送回数が増加し、共有バスの使用回数が増加し、共有バスをその他の処理に使用することができなくなるので、システム性能の更なる低下を招くおそれがある。
【0017】
本発明は、上記のような課題に鑑みてなされたものであり、その目的は、メモリおよび共有バスを効率良く使用することができ、通信処理速度が早いデータ転送装置および方法を提供することにある。
【0018】
【課題を解決するための手段】
上記目的を達成するために、本発明の第一の面によれば、ディスクリプタを使用してDMAコントローラを制御することによりDMA転送を実行するデータ転送装置であって、複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を格納する第一の記憶機構と、個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を格納する第二の記憶機構と、前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とを入力して、DMAコントローラに供給されるべきディスクリプタ情報を出力する変換回路と、を具備するデータ転送装置が提供される。
【0019】
また、本発明の第二の面によれば、前記第一の面によるデータ転送装置において、前記第一の記憶機構は、複数のディスクリプタ共用情報を格納し得るものである。
【0020】
また、本発明の第三の面によれば、前記第二の面によるデータ転送装置において、前記ディスクリプタ個別情報は、複数のディスクリプタ共用情報のうちの一つを選択する選択情報を含む。
【0021】
また、本発明の第四の面によれば、前記代参の面によるデータ転送装置において、前記ディスクリプタ共用情報は、DMA転送を開始すべきアドレスのうちの上位アドレスに関する情報を含む。
【0022】
また、本発明の第五の面によれば、前記第四の面によるデータ転送装置において、前記ディスクリプタ個別情報は、DMA転送を開始すべきアドレスのうちの下位アドレスに関する情報を含む。
【0023】
また、本発明の第六の面によれば、前記第五の面によるデータ転送装置において、前記変換回路は、入力されたディスクリプタ個別情報に基づいて一つのディスクリプタ共用情報を選択し、該選択されたディスクリプタ共用情報内の上位アドレスと該ディスクリプタ個別情報内の下位アドレスとを組み合わせてアドレス情報を作成しDMAコントローラに供給する。
【0024】
また、本発明の第七の面によれば、前記第一の面によるデータ転送装置において、前記ディスクリプタ個別情報は、DMA転送データ量を示すバイト・カウントに関する情報を含む。
【0025】
また、本発明の第八の面によれば、前記第一の面によるデータ転送装置において、前記ディスクリプタ個別情報は、ディスクリプタ・チェインの有無を示すチェイン情報を含む。
【0026】
また、本発明の第九の面によれば、前記第八の面によるデータ転送装置において、前記第二の記憶機構は、複数のディスクリプタ個別情報を格納するFIFO構造を有する。
【0027】
また、本発明の第十の面によれば、ディスクリプタを使用してDMAコントローラを制御することにより該DMAコントローラにDMA転送を実行させるデータ転送方法であって、(a)複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を第一の記憶機構に格納するステップと、(b)個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を第二の記憶機構に格納するステップと、(c)前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とに基づいて、DMAコントローラに供給されるべきディスクリプタ情報を生成するステップと、を具備するデータ転送方法が提供される。
【0028】
上述したような構成を採ることにより、ディスクリプタ情報を共用情報と個別情報とに分けて格納すると、必要な記憶領域を減少させることができるため、ハードウェア構成量を削減することができる。また、ディスクリプタ共用情報をデータ転送ごとに転送する必要がなくなるため、転送すべき情報量を少なくすることが可能となり、バス使用率が削減される。その結果、バスを他の処理に使用することが可能となるため、システム性能の向上が図られる。
【0029】
また、ディスクリプタ・チェインを行う場合、ディスクリプタ情報にディスクリプタ・チェインの有無を示すチェイン・ビットを設け、ディスクリプタ情報の記憶機構をFIFO構造とし、チェイン・ビットがオンのとき、FIFO内にある次のディスクリプタが自動的に選択され得るようにすることで、ネクスト・ディスクリプタ・アドレスが不要となり、ディスクリプタに記載されるべき情報が減少し、ディスクリプタ情報を格納するための記憶機構が減少する結果、ハードウェア構成量を削減することが可能となる。さらに、ネクスト・ディスクリプタ・アドレスを転送する必要がなくなるため、バス使用率が削減され、バスを他の処理に使用することが可能となり、システム性能の向上が図られる。
【0030】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施の形態を詳細に説明する。
【0031】
<第一実施形態>
図1は、本発明を適用したLANカードの一実施形態の機能的な構成を示すブロック図である。LANカードは、LAN(Local Area Network)との接続をサポートする通信制御処理装置である。同図において、LANカード本体10は、情報処理装置12とDMA(Direct Memory Access)処理装置13とPCIバス(Peripheral Component Interconnect Bus)インタフェース14とが共有バス11で接続された構成を有している。
【0032】
情報処理装置12は、制御機構18と記憶機構19とを有する。記憶機構19は、ソフトウェアやデータ等を蓄える装置(Memory)であり、DMA転送データ格納領域20を備えている。制御機構18は、ソフトウェアを実行する装置(CPU)であり、ディスクリプタ情報をDMA処理装置13内の第一のディスクリプタ記憶機構21および第二のディスクリプタ記憶機構22へ書き込む作業と、DMA転送データを記憶機構19内のDMA転送データ格納領域20へ書き込む作業とを行う。
【0033】
DMA処理装置13は、DMAコントローラ24を内蔵している装置であり、ディスクリプタの格納領域として共用情報を格納する第一のディスクリプタ記憶機構21と個別情報を格納する第二のディスクリプタ機構22とを備え、さらにディスクリプタの共用情報および個別情報を変換してDMAコントローラ24に渡すディスクリプタ変換回路23を備えている。
【0034】
PCIバスインタフェース14は、PCIカードエッジ17を介してLANカード本体の外部にあるホストのPCIバスと内部の共有バス11とをつなぐ装置である。
【0035】
また、LANカード10は、MAC(Media Access Control)15を備える。MAC15は、IOバス25を介してDMA処理装置13と接続され、DMA転送されるデータを所定のフレームフォーマットに変換し、LANインタフェース16を介して外部へ送信し、あるいはLANインタフェース16から受信したフレームフォーマットによるデータを解読し、自分宛のデータであるか否かを判断する。
【0036】
図2(A)および(B)は、本実施形態におけるディスクリプタの構成を示すフォーマット図である。ディスクリプタ情報は、図2(A)に示されるディスクリプタ共用情報と図2(B)に示されるディスクリプタ個別情報とからなる。すなわち、一つの共用情報と一つの個別情報とが組になって一つのディスクリプタ情報が構成される。
【0037】
ディスクリプタ共用情報は、32ビットで構成され、DMA転送データの送受信を行う際の先頭アドレスの上位2バイト(上位アドレス)を設定・表示するものである。アラインメント(Alignment)は64キロバイト(kbytes)単位である。ビット31−16は上位アドレス領域(Head address)であり、ビット15−00はリザーブ(Reserve)領域である。
【0038】
ディスクリプタ個別情報は、32ビットで構成され、DMA転送データの送受信を行う際の先頭アドレス・セレクト符号、バイト・カウント(Byte count)、下位アドレスを設定・表示するものである。
【0039】
具体的には、ビット31はセレクト(Select)領域(S)であり、この領域の値が「0」のとき先頭アドレスとして後述するディスクリプタ共用情報Aが選択され、「1」のとき先頭アドレスとして後述するディスクリプタ共用情報Bが選択されることになる。
【0040】
ビット30はリザーブ(Reserve)領域(R)であり、ビット29−16はバイト・カウント(Byte count)すなわちバイト長(Byte length)領域であり、ビット15−00はオフセット(Offset)すなわち下位アドレス領域である。
【0041】
図3(A)および(B)は、本実施形態における第一のディスクリプタ記憶機構21および第二のディスクリプタ機構22の構成をそれぞれ示す概略図である。これらの図に示されるように、ディスクリプタ情報は、ディスクリプタ共用情報とディスクリプタ個別情報とに分けて対応する記憶機構に格納され、共用情報を格納するものを第一のディスクリプタ記憶機構(図3(A))、個別情報を格納するものを第二のディスクリプタ記憶機構(図3(B))とし、ディスクリプタ共用情報およびディスクリプタ個別情報とも対応する記憶機構に複数個存在しうる。
【0042】
なお、図3(A)および(B)では、第一のディスクリプタ記憶機構21にはディスクリプタ共用情報AおよびBという二つの共用情報が格納されており、第二のディスクリプタ記憶機構22にはディスクリプタ個別情報1−5という五つの個別情報が格納されている例を示しているが、本発明はこれに限られるものではない。
【0043】
例えば、ディスクリプタ共用情報が二つ(AおよびB)から四つ(A,B,CおよびD)になると、四つのディスクリプタ共用情報の一つを選択するためにディスクリプタ個別情報のセレクト領域がリザーブ領域のビット30まで拡張されることになる。
【0044】
図4は、本実施形態におけるディスクリプタ変換回路23の機能的な構成を示す概念図である。ディスクリプタ変換回路23は、第一のディスクリプタ記憶機構21に格納されているディスクリプタ共用情報Aおよびディスクリプタ共用情報Bのうち、ディスクリプタ個別情報内のセレクト領域の値(Select)に基づいて、いずれか一方のディスクリプタ共用情報内の先頭アドレス上位2バイトすなわち上位アドレス(Head address)を選択するセレクタ41を備えている。
【0045】
また、選択された上位アドレス(先頭アドレス上位2バイト)とディスクリプタ個別情報内の下位アドレスすなわちオフセット(Offset)とを組み合わせて(すなわち、合流させて)アドレス情報を作成する回路42と、ディスクリプタ個別情報内のバイト・カウント(Byte count)を抽出する回路43とが備えられている。
【0046】
ディスクリプタ変換回路23は、第二のディスクリプタ記憶機構22に任意のディスクリプタ個別情報が入力されると、ディスクリプタ情報の変換を行う。すなわち、入力されたディスクリプタ個別情報内のセレクト領域の値(Select)に応じて、所定のディスクリプタ共用情報内の先頭アドレス(Head address)すなわち上位アドレスを選択し、ディスクリプタ個別情報内のオフセット(Offset)すなわち下位アドレスと組み合わせてアドレス情報を作成し、ディスクリプタ個別情報内のバイト・カウント(Byte count)を切り出してバイト・カウント情報を作成する。こうして作成されたアドレス情報とバイト・カウント情報とはDMAコントローラ24へ送出される。
【0047】
以上の構成を有する本実施形態におけるLANカードの動作を、図1および図5〜図7を参照して説明する。図5〜図7は本実施形態のLANカードの主要動作を示すフローチャートであり、図5は制御機構18によるディスクリプタ共用情報の転送動作を示すフローチャートであり、図6は制御機構18によるディスクリプタ個別情報の転送動作を示すフローチャートであり、図7はDMA処理装置13によるDMA転送の動作を示すフローチャートである。
【0048】
先ず、図5において、制御機構18は共有バス11が空いているかどうかを確認し(ステップ501)、共有バス11が空いている場合にはステップ502へ進み、空いていない場合には共有バス11が空くまで所定時間待つ。
【0049】
共有バス11が空いていると、制御機構18は、共有バス11を介して、ディスクリプタ共用情報をDMA処理装置13内の第一のディスクリプタ記憶機構21へ格納し(ステップ502)、ディスクリプタ共用情報の格納を終えると、他の処理へ移行する。
【0050】
次に、図6において、制御機構18は、DMA転送の要求が発生すると(ステップ601)、共有バス11が空いているか確認し(ステップ602)、共有バス11が空いている場合にはステップ603へ進み、空いていない場合には共有バス11が空くまで所定時間待つ。
【0051】
共有バスが空いていると、ステップ603において、制御機構18は、DMAの対象となるデータを情報処理装置12内の記憶機構19のDMA転送データ格納領域20に格納し、ステップ604へ進む。そして、制御機構18は、ディスクリプタ個別情報をDMA処理装置13内の第二のディスクリプタ記憶機構22へ格納し(ステップ604)、ディスクリプタ個別情報の格納を終えると、他の処理へ移行する。
【0052】
一方、図7において、DMA処理装置13は、第二のディスクリプタ記憶機構22にディスクリプタ個別情報が書き込まれたかどうか常時チェックし(ステップ701)、新しいディスクリプタ個別情報が書き込まれるとステップ702へ進む。
【0053】
そして、ディスクリプタ変換回路23は、書き込まれたディスクリプタ個別情報と既に格納済みのディスクリプタ共用情報とを読取り、DMAコントローラ24が認識し得る形式のアドレス情報およびバイト・カウント(Byte count)へ変換し(ステップ702)、変換が完了したディスクリプタ情報(アドレス情報とバイト・カウント)をDMAコントローラ24へ送出する(ステップ703)。
【0054】
次に、DMAコントローラ24は、変換されたディスクリプタ情報(アドレス情報とバイト・カウント)を解析する(ステップ704)。次いで、共有バス11およびIOバス25が空いているか確認し(ステップ705)、共有バス11およびIOバス25が空いている場合にはステップ706へ進み、空いていない場合には共有バス11およびIOバス25が空くまで所定時間待つ。
【0055】
共有バス11およびIOバス25が空いていると、DMAコントローラ24は、記憶機構19内のDMA対象データを特定し、解析したディスクリプタ情報にしたがって共有バス11およびIOバス25を使用してDMA転送を行う(ステップ706)。転送が終わると、DMA処理装置13は、次のディスクリプタ個別情報の書き込みがあるまで待機する。
【0056】
図8は、本実施形態におけるディスクリプタ情報の転送タイミングを示すタイミングチャートである。同図において、「A」と「B」はそれぞれディスクリプタ共用情報Aとディスクリプタ共用情報Bを表し、「1」〜「5」はそれぞれディスクリプタ個別情報1〜5を表している。本実施形態のDMA転送において、ディスクリプタ情報をDMA処理装置13へ送るときには、予めディスクリプタ共用情報を送っておき、その後DMA転送が必要になったときにディスクリプタ個別情報のみを送る。
【0057】
図8の例では、サイクルτ1とτ2にそれぞれディスクリプタ共用情報AとBを送り、サイクルτ3にディスクリプタ個別情報1を送り、サイクルτ4にディスクリプタ個別情報2を、サイクルτ5にディスクリプタ個別情報3を、サイクルτ6にディスクリプタ個別情報4を、サイクルτ7にディスクリプタ個別情報5を順次送っている。しかしながら、ディスクリプタ個別情報の送り方はこれに限られるものではなく、DMA転送の要求に応じて適時送られることになる。
【0058】
一方、図9は、従来技術におけるディスクリプタ情報の転送タイミングを示すタイミングチャートである。同図において、「AD1」〜「AD5」はそれぞれディスクリプタ情報内のアドレス情報を表し、「BC1」〜「BC5」はそれぞれディスクリプタ情報内のバイト・カウント情報を表している。
【0059】
従来技術のDMA転送において、ディスクリプタ情報をDMA処理装置へ送るときには、各ディスクリプタ情報内のアドレス情報とバイト・カウント情報とをそれぞれ送っている。すなわち、サイクルτ1にディスクリプタ情報1のアドレス情報を送り、サイクルτ2にディスクリプタ1のバイト・カウント情報を送る。
【0060】
同様に、サイクルτ3にディスクリプタ2のアドレス情報を、サイクルτ4にディスクリプタ2のバイト・カウント情報を、サイクルτ5にディスクリプタ3のアドレス情報を、サイクルτ6にディスクリプタ3のバイト・カウント情報を、サイクルτ7にディスクリプタ4のアドレス情報を、サイクルτ8にディスクリプタ4のバイト・カウント情報を、サイクルτ9にディスクリプタ5のアドレス情報を、サイクルτ10にディスクリプタ5のバイト・カウント情報をそれぞれ送っている。
【0061】
従来技術のDMA転送では、すべてのディスクリプタ1〜5の情報を転送するのにかかる時間はτ1〜τ10であるのに対し、本実施形態の場合、ディスクリプタ1〜5のすべての情報を転送するのにかかる時間はτ1〜τ7となり、共有バスを占有する時間が短く、従来技術に比べて改善が図られる。
【0062】
このように本実施形態では、ディスクリプタ情報の共用情報を抜き出し、分離格納することによりハードウェア構成量を削減することができる。また、共有バス上を転送する情報が減るので、共有バスの使用率が下がり、その分共有バスをその他の処理に使用することができるため性能向上が期待される。
【0063】
図10は、本発明を適用したLANカードを搭載したサーバの一実施形態の構成を示すブロック図である。同図において、サーバ本体50は、CPU51、メモリ52、ハードディスクドライブ(HDD)53、バスインタフェース54、および複数のLANカード10を備えており、CPU51、メモリ52、HDD53はバスインタフェース54を介して相互に接続されている。各LANカード10は、PCIバス55を介してバスインタフェース54と接続されており、LANケーブル56を介して外部のLANとも接続することが可能である。
【0064】
<第二実施形態>
図11は、本発明を適用したLANカードの他の実施形態の機能的な構成を示すブロック図である。同図におけるLANカード本体10においては、情報処理装置12とDMA(Direct Memory Access)処理装置13とPCIバス(Peripheral Component Interconnect Bus)インタフェース14とが共有バス11で接続されている。
【0065】
情報処理装置12は、制御機構18と記憶機構19とを有する。記憶機構19は、ソフトウェアやデータ等を蓄える装置(Memory)であり、DMA転送データ格納領域20、第一のディスクリプタ記憶機構21および第二のディスクリプタ記憶機構22を備えている。制御機構18は、ソフトウェアを実行する装置(CPU)であり、ディスクリプタ情報を記憶機構19内の第一のディスクリプタ記憶機構21および第二のディスクリプタ記憶機構22へ書き込む作業と、DMA転送データを記憶機構19内のDMA転送データ格納領域20へ書き込む作業とを行う。
【0066】
DMA処理装置13は、DMAコントローラ24を内蔵している装置であり、送られてきたディスクリプタ情報を保持するためのメモリ30を備え、さらにディスクリプタの共用情報および個別情報を変換してDMAコントローラ24に渡すディスクリプタ変換回路23を備えている。
【0067】
PCIバスインタフェース14は、PCIカードエッジ17を介してLANカード本体の外部にあるホストのPCIバスと内部の共有バス11とをつなぐ装置である。
【0068】
また、LANカード10は、MAC(Media Access Control)15を備える。MAC15は、IOバス25を介してDMA処理装置13と接続され、DMA転送されたデータを所定フレームフォーマットに変換し、LANインタフェース16を介して外部へ送信する、あるいはLANインタフェース16から受信したフレームフォーマットによるデータを解読し、自分宛のデータであるか否かを判断する。
【0069】
本実施形態におけるディスクリプタの構成は第一実施形態において説明した図2(A)および(B)と同様であり、第一および第二のディスクリプタ記憶機構の構成も図3(A)および(B)と同様であり、ディスクリプタ変換回路23の機能的な構成も図4と同様のため、ここでは説明を省略する。
【0070】
以上の構成を有する本実施形態におけるLANカードの動作を、図11および図12〜図14を参照して説明する。図12〜図14は本実施形態のLANカードの主要動作を示すフローチャートであり、図12は制御機構18によるディスクリプタ情報の転送動作を示すフローチャートであり、図13および図14はDMA処理装置13によるDMA転送の動作を示すフローチャートである。
【0071】
先ず、図12において、制御機構18は、DMA転送の要求が発生すると(ステップ1201)、共有バス11が空いているか確認し(ステップ1202)、共有バスが空いている場合にはステップ1203へ進み、空いていない場合には共有バス11が空くまで所定時間待つ。
【0072】
共有バス11が空いていると、制御機構18は、DMAの対象となるデータを情報処理装置12の記憶機構19内のDMA転送データ格納領域20に格納し(ステップ1203)、次のステップ1204へ進む。ステップ1204において、制御機構18は、ディスクリプタ共用情報および個別情報を第一および第二のディスクリプタ記憶機構21および22へそれぞれ格納し、ディスクリプタ情報の格納を終えると、他の処理へ移行する。なお、ディスクリプタ共用情報が既に第一のディスクリプタ記憶機構21内に格納されている場合には、ディスクリプタ個別情報の格納のみが行われる。
【0073】
一方、図13において、DMA処理装置13は、タイマ等により一定時間経ったかどうか常時チェックし(ステップ1301)、所定時間毎にステップ1302へ進み、共有バス11が空いているか確認し、共有バス11が空いている場合にはステップ1303へ進み、空いていない場合には共有バス11が空くまで所定時間待つ。
【0074】
共有バス11が空いていると、DMA処理装置13は、情報処理装置12内の第一および第二のディスクリプタ記憶機構21および22を読み込み(ステップ1303)、新しいディスクリプタ情報がディスクリプタ記憶機構にあるかどうかチェックし(ステップ1304)、新しいディスクリプタ情報がある場合にはステップ1305へ進み、新しいディスクリプタ情報がない場合にはステップ1301へ戻る。
【0075】
新しいディスクリプタ情報がある場合には、共有バス11が空いているか確認し(ステップ1305)、共有バス11が空いている場合にはステップ1306へ進み、空いていない場合には共有バス11が空くまで所定時間待つ。
【0076】
そして、図14のステップ1306では、ディスクリプタ記憶機構21および22からメモリ30へとディスクリプタ共用情報および個別情報が読み込まれる。ディスクリプタ変換回路23は、そのディスクリプタ共用情報および個別情報を、DMAコントローラ24が認識し得る形式のアドレス情報およびバイト・カウントへ変換し、変換済みの情報をDMAコントローラ24へ送出する(ステップ1307)。
【0077】
なお、情報処理装置12内の第一のディスクリプタ記憶機構21から読み込まれたディスクリプタ共用情報をDMA処理装置13内のメモリ30に保持しておけば、ディスクリプタ共用情報の読み込みは最初の一回だけで済み、二回目以降の読み込み処理を省略することが可能であり、共有バスの占有時間を短縮することができる。
【0078】
次に、DMAコントローラ24は、変換されたディスクリプタ情報(アドレス情報とバイト・カウント)を解析し(ステップ1308)、共有バス11およびIOバス25が空いているか確認し(ステップ1309)、共有バス11およびIOバス25が空いている場合にはステップ1310へ進み、空いていない場合には共有バス11およびIOバス25が空くまで所定時間待つ。
【0079】
共有バス11およびIOバス25が空いていると、DMAコントローラ24は、記憶機構19内のDMA対象データを特定し、解析したディスクリプタ情報に従い共有バス11およびIOバス25を使用してDMA転送を行う(ステップ1310)。転送を終えると次のディスクリプタの書き込みがあるまで待機する。
【0080】
前述した第一実施形態では、ディスクリプタ共用情報を格納する第一のディスクリプタ記憶機構21およびディスクリプタ個別情報を格納する第二のディスクリプタ記憶機構22をともにDMA処理装置13内に設ける一方、第二実施形態では、第一のディスクリプタ記憶機構21および第二のディスクリプタ記憶機構22をともに情報処理装置12に設けているが、ディスクリプタ共用情報を格納する第一のディスクリプタ記憶機構21はDMA処理装置13内に設けるとともにディスクリプタ個別情報を格納する第二のディスクリプタ記憶機構22は情報処理装置12に設ける構成としてもよい。
【0081】
<第三実施形態>
最後に、本発明を適用したLANカードの第三実施形態について説明する。この第三実施形態の基本的な構成は、前述した第一実施形態に関する図1の構成と同一となるが、第一実施形態に対してディスクリプタ・チェインをサポートするための改造が追加されている。
【0082】
図15(A)および(B)は、それぞれ、本実施形態におけるディスクリプタ共用情報およびディスクリプタ個別情報の構成を示すフォーマット図である。前述した第一実施形態に係る図2(A)および(B)と比較してわかるように、本実施形態におけるディスクリプタ共用情報(図15(A))は第一実施形態のもの(図2(A))と同一である。
【0083】
一方、本実施形態におけるディスクリプタ個別情報(図15(B))は第一実施形態のもの(図2(B))と若干異なり、ビット30がチェイン・ビット(Chain bit)(C)として使用されるようになっている。このチェイン・ビット(C)は、複数のDMA転送を連続して行うかどうか、すなわちディスクリプタ・チェインを行うかどうか、を示すビットである。
【0084】
図16(A)および(B)は、本実施形態における第一のディスクリプタ記憶機構21および第二のディスクリプタ機構22の構成をそれぞれ示す概略図である。前述した第一実施形態に係る図3(A)および(B)と比較してわかるように、本実施形態における第一のディスクリプタ記憶機構21(図16(A))は第一実施形態のもの(図3(A))と同一である。
【0085】
一方、本実施形態における第二のディスクリプタ機構22(図16(B))は第一実施形態のもの(図3(B))と若干異なり、ビット30がチェイン・ビット(Chain bit)(C)として使用されるようになっている。また、本実施形態における第二のディスクリプタ機構22(図16(B))は、FIFO(First In First Out)構造となっている。
【0086】
図17は、本実施形態におけるディスクリプタ変換回路23の機能的な構成を示す図である。前述した第一実施形態に係る図4のディスクリプタ変換回路と比較してわかるように、本実施形態におけるディスクリプタ変換回路では、ディスクリプタ個別情報内のチェイン・ビット(Chain bit)を抽出する回路44が追加されている。
【0087】
次に、ディスクリプタ・チェインをサポートする第三実施形態に係るLANカードの動作について説明する。制御機構18によるディスクリプタ共用情報の転送動作は、前述した第一実施形態に係る図5のフローチャートに示されるものと同一となり、また、制御機構18によるディスクリプタ個別情報の転送動作も、前述した第一実施形態に係る図6のフローチャートに示されるものと同一となる。
【0088】
一方、DMA処理装置13によるDMA転送動作は、図18に示されるフローチャートのようになる。この図18のフローチャートと、前述した第一実施形態に係る図7のフローチャートとを比較してわかるとおり、図18のステップ1801〜1806は図7のステップ701〜706と同一となるが、図18では新たなステップ1807および1808が追加されている。
【0089】
ステップ1807では、チェイン・ビットがONか否かが判定され、チェイン・ビットがONでない、すなわちOFFの場合には、処理が終了する。一方、チェイン・ビットがONである場合には、ステップ1808に進む。ステップ1808では、ディスクリプタ変換回路23は、FIFO構造における次のディスクリプタ個別情報を読み取り、対応するディスクリプタ共用情報を選択し、そしてDMAコントローラ24が認識し得る形式のアドレス情報およびバイト・カウントを作成する。そして、ステップ1803に戻る。
【0090】
このように、本実施形態におけるディスクリプタ・チェインでは、ディスクリプタ個別情報の記憶機構がFIFO構造とされ、チェイン・ビットがオンのとき、FIFO内にある次のディスクリプタが自動的に選択されるように構成されているため、ネクスト・ディスクリプタ・アドレスが不要となる。その結果、ディスクリプタに記載されるべき情報が減少し、ディスクリプタ情報を格納するための記憶機構が減少するため、ハードウェア構成量を削減することが可能となる。
【0091】
また、本実施形態におけるディスクリプタ情報の転送タイミングを示すタイミングチャートは、前述した第一実施形態に係る図8に示されるものと同一となる。一方、図24に示される従来技術のように、ディスクリプタ情報を共用情報と個別情報とに分離することなく、さらにネクスト・ディスクリプタ・アドレスをも有してディスクリプタ・チェインをサポートする場合には、ディスクリプタ情報の転送タイミングは図19に示されるようになる。
【0092】
図8と図19との比較から明らかなように、本実施形態においては、ネクスト・ディスクリプタ・アドレスを転送する必要がなくなるため、バス使用率が削減され、バスを他の処理に使用することが可能となり、システム性能の向上が図られる。
【0093】
以上、図面に基づいて本発明に係る実施形態を説明してきたが、当業者にとっては種々の変更が可能であり、例えば、本発明をLANカード以外のデータ転送装置に適用することも可能であり、LANに代えてADSL等の他の通信網を採用することも可能である。
【0094】
また、LANカードのDMAコントローラに適用した場合について説明したが、それに限定されるものではなく、例えば、単独で構成される汎用のDMAコントローラやコンピュータネットワークを構成する各種の端末機器及びワークステーション等にも広く適用できる。
【0095】
以上、本発明を特にその好ましい実施の形態を参照して詳細に説明した。本発明の容易な理解のため、本発明の具体的な形態を以下に付記する。
【0096】
(付記1) ディスクリプタを使用してDMAコントローラを制御することによりDMA転送を実行するデータ転送装置であって、
複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を格納する第一の記憶機構と、
個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を格納する第二の記憶機構と、
前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とを入力して、DMAコントローラに供給されるべきディスクリプタ情報を出力する変換回路と、
を具備するデータ転送装置。
【0097】
(付記2) 前記第一の記憶機構は、複数のディスクリプタ共用情報を格納し得るものである、付記1に記載のデータ転送装置。
【0098】
(付記3) 前記ディスクリプタ個別情報は、複数のディスクリプタ共用情報のうちの一つを選択する選択情報を含む、付記2に記載のデータ転送装置。
【0099】
(付記4) 前記ディスクリプタ共用情報は、DMA転送を開始すべきアドレスのうちの上位アドレスに関する情報を含む、付記3に記載のデータ転送装置。
【0100】
(付記5) 前記ディスクリプタ個別情報は、DMA転送を開始すべきアドレスのうちの下位アドレスに関する情報を含む、付記4に記載のデータ転送装置。
【0101】
(付記6) 前記変換回路は、入力されたディスクリプタ個別情報に基づいて一つのディスクリプタ共用情報を選択し、該選択されたディスクリプタ共用情報内の上位アドレスと該ディスクリプタ個別情報内の下位アドレスとを組み合わせてアドレス情報を作成しDMAコントローラに供給する、付記5に記載のデータ転送装置。
【0102】
(付記7) 前記ディスクリプタ個別情報は、DMA転送データ量を示すバイト・カウントに関する情報を含む、付記1に記載のデータ転送装置。
【0103】
(付記8) 前記変換回路は、入力されたディスクリプタ個別情報内のバイト・カウントをDMAコントローラに供給する、付記7に記載のデータ転送装置。
【0104】
(付記9) 前記ディスクリプタ個別情報は、ディスクリプタ・チェインの有無を示すチェイン情報を含む、付記1に記載のデータ転送装置。
【0105】
(付記10) 前記第二の記憶機構は、複数のディスクリプタ個別情報を格納するFIFO構造を有する、付記9に記載のデータ転送装置。
【0106】
(付記11) 前記チェイン情報がディスクリプタ・チェイン有りを示すときに、前記変換回路が連続して動作する、付記10に記載のデータ転送装置。
【0107】
(付記12) 付記1から付記11までのいずれか一項に記載のデータ転送装置を具備するLANカード。
【0108】
(付記13) 制御機構及びDMA転送データ格納領域を有する記憶機構を備えた情報処理装置と、
前記第一の記憶機構、第二の記憶機構、変換回路及びDMAコントローラを備えたDMA処理装置と、
前記情報処理装置と前記DMA処理装置とを接続する共有バスと、
を具備する、付記12に記載のLANカード。
【0109】
(付記14) 付記12に記載のLANカードを具備するサーバ。
【0110】
(付記15) ディスクリプタを使用してDMAコントローラを制御することにより該DMAコントローラにDMA転送を実行させるデータ転送方法であって、
(a)複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を第一の記憶機構に格納するステップと、
(b)個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を第二の記憶機構に格納するステップと、
(c)前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とに基づいて、DMAコントローラに供給されるべきディスクリプタ情報を生成するステップと、
を具備するデータ転送方法。
【0111】
(付記16) ステップ(a)は、複数のディスクリプタ共用情報を格納するものである、付記15に記載のデータ転送方法。
【0112】
(付記17) 前記ディスクリプタ個別情報は、複数のディスクリプタ共用情報のうちの一つを選択する選択情報を含む、付記16に記載のデータ転送方法。
【0113】
(付記18) 前記ディスクリプタ共用情報は、DMA転送を開始すべきアドレスのうちの上位アドレスに関する情報を含む、付記17に記載のデータ転送方法。
【0114】
(付記19) 前記ディスクリプタ個別情報は、DMA転送を開始すべきアドレスのうちの下位アドレスに関する情報を含む、付記18に記載のデータ転送方法。
【0115】
(付記20) ステップ(c)は、一つのディスクリプタ個別情報に基づいて一つのディスクリプタ共用情報を選択し、該選択されたディスクリプタ共用情報内の上位アドレスと該ディスクリプタ個別情報内の下位アドレスとを組み合わせてアドレス情報を作成しDMAコントローラに供給することを含む、付記19に記載のデータ転送方法。
【0116】
(付記21) 前記ディスクリプタ個別情報は、DMA転送データ量を示すバイト・カウントに関する情報を含む、付記15に記載のデータ転送方法。
【0117】
(付記22) ステップ(c)は、ディスクリプタ個別情報内のバイト・カウントをDMAコントローラに供給することを含む、付記21に記載のデータ転送方法。
【0118】
(付記23) 前記ディスクリプタ個別情報は、ディスクリプタ・チェインの有無を示すチェイン情報を含む、付記15に記載のデータ転送方法。
【0119】
(付記24) 前記第二の記憶機構は、複数のディスクリプタ個別情報を格納するFIFO構造を有する、付記23に記載のデータ転送方法。
【0120】
(付記25) 前記チェイン情報がディスクリプタ・チェイン有りを示すときに、ステップ(c)が連続して実行される、付記24に記載のデータ転送方法。
【0121】
【発明の効果】
以上説明したように、本発明によれば、ディスクリプタ情報を共用情報と個別情報とに分けて格納することで、必要な記憶領域を減少させることができるため、ハードウェア構成量を削減することができる。また、ディスクリプタにおける共通の情報をデータ転送ごとに転送する必要がなくなるため、転送すべき情報量を少なくすることが可能となり、バス使用率が削減される。その結果、バスを他の処理に使用することが可能となるため、システム性能の向上が図られる。
【0122】
また、ディスクリプタ・チェインを行う場合、FIFO構造を採用することで、ネクスト・ディスクリプタ・アドレスが不要となり、ディスクリプタに記載されるべき情報が減少し、ディスクリプタ情報を格納するための記憶機構が減少するので、ハードウェア構成量を削減することが可能となる。また、ネクスト・ディスクリプタ・アドレスを転送する必要がなくなるため、バス使用率が削減され、バスを他の処理に使用することが可能となり、システム性能の向上が図られる。
【図面の簡単な説明】
【図1】本発明を適用したLANカードの第一実施形態の機能的な構成を示すブロック図である。
【図2】(A)および(B)は、それぞれディスクリプタ共用情報およびディスクリプタ個別情報の構成を示すフォーマット図である。
【図3】(A)および(B)は、それぞれ第一のディスクリプタ記憶機構および第二のディスクリプタ機構の構成を示すブロック図である。
【図4】ディスクリプタ変換回路の機能的な構成を示すブロック図である。
【図5】制御機構によるディスクリプタ共用情報の転送動作を示すフローチャートである。
【図6】制御機構によるディスクリプタ個別情報の転送動作を示すフローチャートである。
【図7】DMA処理装置によるDMA転送の動作を示すフローチャートである。
【図8】本実施形態におけるディスクリプタ情報の転送タイミングを示すタイミングチャートである。
【図9】従来技術におけるディスクリプタ情報の転送タイミングを示すタイミングチャートである。
【図10】本発明を適用したLANカードを搭載したサーバの一実施形態の構成を示すブロック図である。
【図11】本発明を適用したLANカードの第二実施形態の機能的な構成を示すブロック図である。
【図12】第二実施形態における、制御機構によるディスクリプタ情報の転送動作を示すフローチャートである。
【図13】第二実施形態における、DMA処理装置によるDMA転送の動作を示すフローチャート(1/2)である。
【図14】第二実施形態における、DMA処理装置によるDMA転送の動作を示すフローチャート(2/2)である。
【図15】(A)および(B)は、第三実施形態におけるそれぞれディスクリプタ共用情報およびディスクリプタ個別情報の構成を示すフォーマット図である。
【図16】(A)および(B)は、第三実施形態におけるそれぞれ第一のディスクリプタ記憶機構および第二のディスクリプタ機構の構成を示すブロック図である。
【図17】第三実施形態におけるディスクリプタ変換回路の機能的な構成を示すブロック図である。
【図18】第三実施形態における、DMA処理装置によるDMA転送の動作を示すフローチャートである。
【図19】従来技術におけるディスクリプタ情報の転送タイミング(ディスクリプタ・チェイン有りの場合)を示すタイミングチャートである。
【図20】従来技術におけるディスクリプタの構成を示すフォーマット図である。
【図21】従来技術におけるディスクリプタ記憶機構を示す概略図である。
【図22】従来技術におけるDMAコントローラのディスクリプタ情報の取り込み方法を説明する図である。
【図23】従来技術におけるディスクリプタの他の構成例を示すフォーマット図である。
【図24】図23に示されるディスクリプタを格納するディスクリプタ記憶機構の構成例を示す概略図である。
【図25】DMAコントローラが図24のディスクリプタ記憶機構に格納されているディスクリプタ情報を取り込む方法を説明する図である。
【符号の説明】
10…LANカード
11…共有バス
12…情報処理装置
13…DMA(Direct Memory Access)処理装置
14…PCIバス(Peripheral Component Interconnect Bus)インタフェース15…MAC(Media Access Control)
16…LANインタフェース
17…PCIカードエッジ
18…制御機構
19…記憶機構
20…DMA転送データ格納領域
21…第一のディスクリプタ記憶機構
22…第二のディスクリプタ記憶機構
23…ディスクリプタ変換回路
24…DMAコントローラ
25…IOバス
30…メモリ
41…セレクタ
42…アドレス情報を作成する回路
43…バイト・カウントを抽出する回路
44…チェイン・ビットを抽出する回路
50…サーバ
51…CPU
52…メモリ
53…ハードディスクドライブ(HDD)
54…バスインタフェース
55…PCIバス
56…LANケーブル
Claims (10)
- ディスクリプタを使用してDMAコントローラを制御することによりDMA転送を実行するデータ転送装置であって、
複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を格納する第一の記憶機構と、
個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を格納する第二の記憶機構と、
前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とを入力して、DMAコントローラに供給されるべきディスクリプタ情報を出力する変換回路と、
を具備するデータ転送装置。 - 前記第一の記憶機構は、複数のディスクリプタ共用情報を格納し得るものである、請求項1に記載のデータ転送装置。
- 前記ディスクリプタ個別情報は、複数のディスクリプタ共用情報のうちの一つを選択する選択情報を含む、請求項2に記載のデータ転送装置。
- 前記ディスクリプタ共用情報は、DMA転送を開始すべきアドレスのうちの上位アドレスに関する情報を含む、請求項3に記載のデータ転送装置。
- 前記ディスクリプタ個別情報は、DMA転送を開始すべきアドレスのうちの下位アドレスに関する情報を含む、請求項4に記載のデータ転送装置。
- 前記変換回路は、入力されたディスクリプタ個別情報に基づいて一つのディスクリプタ共用情報を選択し、該選択されたディスクリプタ共用情報内の上位アドレスと該ディスクリプタ個別情報内の下位アドレスとを組み合わせてアドレス情報を作成しDMAコントローラに供給する、請求項5に記載のデータ転送装置。
- 前記ディスクリプタ個別情報は、DMA転送データ量を示すバイト・カウントに関する情報を含む、請求項1に記載のデータ転送装置。
- 前記ディスクリプタ個別情報は、ディスクリプタ・チェインの有無を示すチェイン情報を含む、請求項1に記載のデータ転送装置。
- 前記第二の記憶機構は、複数のディスクリプタ個別情報を格納するFIFO構造を有する、請求項8に記載のデータ転送装置。
- ディスクリプタを使用してDMAコントローラを制御することにより該DMAコントローラにDMA転送を実行させるデータ転送方法であって、
(a)複数のディスクリプタで共用可能な情報であるディスクリプタ共用情報を第一の記憶機構に格納するステップと、
(b)個々のディスクリプタごとに異なる情報であるディスクリプタ個別情報を第二の記憶機構に格納するステップと、
(c)前記第一の記憶機構から読み出されるディスクリプタ共用情報と前記第二の記憶機構から読み出されるディスクリプタ個別情報とに基づいて、DMAコントローラに供給されるべきディスクリプタ情報を生成するステップと、
を具備するデータ転送方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002369938A JP2004005382A (ja) | 2002-03-29 | 2002-12-20 | データ転送装置および方法 |
US10/400,669 US6954806B2 (en) | 2002-03-29 | 2003-03-28 | Data transfer apparatus and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002094869 | 2002-03-29 | ||
JP2002369938A JP2004005382A (ja) | 2002-03-29 | 2002-12-20 | データ転送装置および方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004005382A true JP2004005382A (ja) | 2004-01-08 |
Family
ID=28456335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002369938A Pending JP2004005382A (ja) | 2002-03-29 | 2002-12-20 | データ転送装置および方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6954806B2 (ja) |
JP (1) | JP2004005382A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006114822A1 (ja) * | 2005-04-01 | 2006-11-02 | Fujitsu Limited | Dmaコントローラ、ノード、データ転送制御方法、及びプログラム |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005057856A2 (en) * | 2003-12-12 | 2005-06-23 | Xyratex Technology Limited | A method of transferring data implying a network analyser card |
US8898339B2 (en) * | 2003-12-12 | 2014-11-25 | Napatech A/S | Method of transferring data implying a network analyser card |
US7293121B2 (en) * | 2004-02-25 | 2007-11-06 | Analog Devices, Inc. | DMA controller utilizing flexible DMA descriptors |
JP4212508B2 (ja) * | 2004-04-14 | 2009-01-21 | 株式会社東芝 | パケット生成装置 |
US7484016B2 (en) * | 2004-06-30 | 2009-01-27 | Intel Corporation | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine |
US8140826B2 (en) * | 2007-05-29 | 2012-03-20 | International Business Machines Corporation | Executing a gather operation on a parallel computer |
US8161480B2 (en) * | 2007-05-29 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation using shared memory |
US20080320178A1 (en) * | 2007-06-21 | 2008-12-25 | Motoyasu Shirasaki | DMA transfer apparatus |
US20090006663A1 (en) * | 2007-06-27 | 2009-01-01 | Archer Charles J | Direct Memory Access ('DMA') Engine Assisted Local Reduction |
US8122228B2 (en) * | 2008-03-24 | 2012-02-21 | International Business Machines Corporation | Broadcasting collective operation contributions throughout a parallel computer |
US7991857B2 (en) | 2008-03-24 | 2011-08-02 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
US8422402B2 (en) * | 2008-04-01 | 2013-04-16 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
US8484440B2 (en) | 2008-05-21 | 2013-07-09 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8375197B2 (en) * | 2008-05-21 | 2013-02-12 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8161268B2 (en) * | 2008-05-21 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation on a plurality of compute nodes of a parallel computer |
US8281053B2 (en) * | 2008-07-21 | 2012-10-02 | International Business Machines Corporation | Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations |
US8260980B2 (en) * | 2009-06-10 | 2012-09-04 | Lsi Corporation | Simultaneous intermediate proxy direct memory access |
US8565089B2 (en) * | 2010-03-29 | 2013-10-22 | International Business Machines Corporation | Performing a scatterv operation on a hierarchical tree network optimized for collective operations |
US8332460B2 (en) | 2010-04-14 | 2012-12-11 | International Business Machines Corporation | Performing a local reduction operation on a parallel computer |
US9424087B2 (en) | 2010-04-29 | 2016-08-23 | International Business Machines Corporation | Optimizing collective operations |
US8346883B2 (en) | 2010-05-19 | 2013-01-01 | International Business Machines Corporation | Effecting hardware acceleration of broadcast operations in a parallel computer |
US8949577B2 (en) | 2010-05-28 | 2015-02-03 | International Business Machines Corporation | Performing a deterministic reduction operation in a parallel computer |
US8489859B2 (en) | 2010-05-28 | 2013-07-16 | International Business Machines Corporation | Performing a deterministic reduction operation in a compute node organized into a branched tree topology |
US8776081B2 (en) | 2010-09-14 | 2014-07-08 | International Business Machines Corporation | Send-side matching of data communications messages |
US8566841B2 (en) | 2010-11-10 | 2013-10-22 | International Business Machines Corporation | Processing communications events in parallel active messaging interface by awakening thread from wait state |
US8893083B2 (en) | 2011-08-09 | 2014-11-18 | International Business Machines Coporation | Collective operation protocol selection in a parallel computer |
US8910178B2 (en) | 2011-08-10 | 2014-12-09 | International Business Machines Corporation | Performing a global barrier operation in a parallel computer |
US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
US10007632B2 (en) * | 2014-01-22 | 2018-06-26 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Computing device interface connectors for peripheral component interconnect compliant devices and other devices |
WO2019056380A1 (zh) * | 2017-09-25 | 2019-03-28 | 华为技术有限公司 | 一种数据访问的方法和装置 |
US11199992B2 (en) * | 2019-07-15 | 2021-12-14 | Western Digital Technologies, Inc. | Automatic host buffer pointer pattern detection |
US11500581B2 (en) | 2020-09-25 | 2022-11-15 | Western Digital Technologies, Inc. | Efficient TLP fragmentations in extended LBA environment |
US11853218B2 (en) | 2020-11-20 | 2023-12-26 | Western Digital Technologies, Inc. | Semi and cached TLP coalescing |
US11537524B2 (en) | 2020-11-20 | 2022-12-27 | Western Digital Technologies, Inc. | Effective PCIe utilization by PCIe TLP coalescing |
CN116069711B (zh) * | 2023-04-07 | 2023-07-14 | 浪潮电子信息产业股份有限公司 | 直接内存访问控制器、异构设备、内存访问方法及介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60100251A (ja) | 1983-11-04 | 1985-06-04 | Nec Corp | ダイレクトメモリアクセス制御方式 |
JPS61198351A (ja) | 1985-02-28 | 1986-09-02 | Toshiba Corp | ダイレクト・メモリ・アクセス制御回路 |
JPH05204829A (ja) | 1992-01-14 | 1993-08-13 | Nec Corp | データ転送装置 |
JPH05257865A (ja) | 1992-03-04 | 1993-10-08 | Nec Corp | ディスクリプタ制御方式 |
US6691178B1 (en) * | 2000-02-22 | 2004-02-10 | Stmicroelectronics, Inc. | Fencepost descriptor caching mechanism and method therefor |
US6647438B1 (en) * | 2000-09-19 | 2003-11-11 | Intel Corporation | Direct memory access transfer reduction method and apparatus to overlay data on to scatter gather descriptors for bus-mastering I/O controllers |
US20050060441A1 (en) * | 2001-03-27 | 2005-03-17 | Schmisseur Mark A. | Multi-use data access descriptor |
US6912602B2 (en) * | 2001-11-20 | 2005-06-28 | Broadcom Corporation | System having two or more packet interfaces, a switch, and a shared packet DMA circuit |
JP2003281078A (ja) * | 2002-03-22 | 2003-10-03 | Ricoh Co Ltd | Dmaコントローラ |
-
2002
- 2002-12-20 JP JP2002369938A patent/JP2004005382A/ja active Pending
-
2003
- 2003-03-28 US US10/400,669 patent/US6954806B2/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006114822A1 (ja) * | 2005-04-01 | 2006-11-02 | Fujitsu Limited | Dmaコントローラ、ノード、データ転送制御方法、及びプログラム |
JPWO2006114822A1 (ja) * | 2005-04-01 | 2008-12-11 | 富士通株式会社 | Dmaコントローラ、ノード、データ転送制御方法、及びプログラム |
US7849235B2 (en) | 2005-04-01 | 2010-12-07 | Fujitsu Limited | DMA controller, node, data transfer control method and storage medium |
JP4658122B2 (ja) * | 2005-04-01 | 2011-03-23 | 富士通株式会社 | Dmaコントローラ、ノード、データ転送制御方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US6954806B2 (en) | 2005-10-11 |
US20030188054A1 (en) | 2003-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004005382A (ja) | データ転送装置および方法 | |
US7660911B2 (en) | Block-based data striping to flash memory | |
EP2365444B1 (en) | Dma engine capable of concurrent data manipulation | |
US6859856B2 (en) | Method and system for a compact flash memory controller | |
KR100708128B1 (ko) | 낸드 플래시 메모리 제어 장치 및 방법 | |
US20030067814A1 (en) | Apparatus and architecture for a compact flash memory controller | |
US20070297433A1 (en) | Method and apparatus for double buffering | |
US20040107265A1 (en) | Shared memory data transfer apparatus | |
EP2530593A2 (en) | Nonvolatile memory, memory controller, nonvolatile memory accessing method, and program | |
US20020184453A1 (en) | Data bus system including posted reads and writes | |
JP2004070571A (ja) | データ転送制御システム、電子機器、プログラム及びデータ転送制御方法 | |
US8046503B2 (en) | DMA controller, system on chip comprising such a DMA controller, method of interchanging data via such a DMA controller | |
US20050283565A1 (en) | Method and apparatus for connecting lpc bus and serial flash memory | |
JP2008009803A (ja) | 情報記憶装置、および、情報転送方法、情報転送システム、プログラム、並びに、記録媒体 | |
US9128924B2 (en) | Method and apparatus for wireless broadband systems direct data transfer | |
JP2010026592A (ja) | メモリデバイスおよびメモリデバイス制御装置 | |
JP2008282065A (ja) | アドレス変換メモリアクセス機構を備える半導体装置 | |
JP3747213B1 (ja) | シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ | |
US6401151B1 (en) | Method for configuring bus architecture through software control | |
JP2009116386A (ja) | 情報処理装置および方法、並びにプログラム | |
JP4723334B2 (ja) | Dma転送システム | |
US6425029B1 (en) | Apparatus for configuring bus architecture through software control | |
JP2007011659A (ja) | インターフェース装置、ディスクドライブ及びインターフェース制御方法 | |
JPH10214220A (ja) | 集積回路 | |
JP2022002164A (ja) | 非順次的ページ連続リード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051004 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080529 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081104 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090303 |