JP4685414B2 - バス転送装置 - Google Patents

バス転送装置 Download PDF

Info

Publication number
JP4685414B2
JP4685414B2 JP2004327753A JP2004327753A JP4685414B2 JP 4685414 B2 JP4685414 B2 JP 4685414B2 JP 2004327753 A JP2004327753 A JP 2004327753A JP 2004327753 A JP2004327753 A JP 2004327753A JP 4685414 B2 JP4685414 B2 JP 4685414B2
Authority
JP
Japan
Prior art keywords
dma
frame
transfer
packet
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004327753A
Other languages
English (en)
Other versions
JP2006139474A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004327753A priority Critical patent/JP4685414B2/ja
Publication of JP2006139474A publication Critical patent/JP2006139474A/ja
Application granted granted Critical
Publication of JP4685414B2 publication Critical patent/JP4685414B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ダイナミック・メモリ・アクセス(DMA)転送を行なうバス転送装置に関するものであり、特に、複数ネットワーク・インタフェース・カード(NIC)ポートを介して送受信するパケットをペリフェラル・コンポーネント・インターコネクト(PCI)バス上でDMA転送するバス転送装置に関するものである。
PCIバスは、コントローラによって入出力の制御を行なうため、高速なデータ転送が可能であり、パーソナルコンピュータ内部の拡張バスなどに用いられることが多い。しかしながら、PCIバスの割り込み信号は4本しかないため、PCIバスに、たとえば、ディスプレイやハードディスクなど合計で4つを超える装置が接続された場合、割り込み信号を共有しなければならない。
PCIバスの割り込み信号を共有する従来技術として特許文献1がある。特許文献1に記載の従来技術では、制御部が不揮発性メモリを内蔵し、このメモリからの出力によって、複数の拡張スロットに対応したセレクタがアドレス/データバスの中の1ビットを選択して拡張スロットに供給することにより、複数の拡張スロットに搭載されたデバイスの番号を、不揮発性メモリに設定されている値に応じて変更可能にするPCIバスの割り込みステアリング回路の技術が開示されている。
特許第3287283号公報
上記従来技術によって、PCIバス上の割り込み信号を共有することはできる。しかしながら、PCIバス上に複数のNICポートを実装する場合、これらのNICポートのパケットをDMA転送する際に、割り込みの衝突が発生し、割り込み衝突の処理のためにバスの転送効率が低下してしまうという問題があった。
また、DMA転送の開始および終了処理でPCIバスを占有してしまうため、DMA転送の転送効率が低下してしまうという問題があった。
本発明は、上記に鑑みてなされたものであって、複数のNICポートによって送受信されるパケットを、PCIバス上で高速にかつ効率よくDMA転送を行なうバス転送装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、複数のネットワーク・インタフェース・カード(NIC)ポートが実装され、ペリフェラル・コンポーネント・インターコネクト(PCI)バスを用いて前記NICポートのパケットをメモリにDMA転送するバス転送装置において、前記パケットを一時保持するパケットバッファと、このパケットバッファに一時保持されたパケットに当該パケットを扱うNICポートを識別するためのポート番号および当該パケットのデータ長を含むフレーム情報を付加したDMAフレームを生成してDMA転送するとともに、前記PCIバスを介してDMA転送されたNICポートへの送信パケットを含むDMAフレームから前記受信パケットを抽出して、対応するNICポートに送信するDMAフレーマと、このDMAフレーマによるDMA転送が終了した際に、自装置に割当てられている唯一の前記PCIバス上への割り込み信号をアサートにするPCIバスインタフェースと、このPCIバスインタフェースが割り込み信号をアサートにした割り込み要因を提示する割り込み要因提示装置と、を備えることを特徴とする。
この発明によれば、NICポートのパケットに、NICポートを識別するためのポート番号およびパケットのデータ長を含むフレーム情報を付加したDMAフレームを用いてDMA転送を行なうとともに、割り込み要因提示装置に自装置がアサートにした割り込み信号の割り込み要因を提示するようにしたので、1つの割り込み信号で複数のNICポートのパケットのDMA転送を行なうことができる。
以下に、本発明にかかるバス転送装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1〜図4を用いてこの発明の実施の形態1を説明する。この発明にかかる実施の形態1のバス転送装置は、たとえば、パーソナルコンピュータや計算機端末など端末装置のPCIバスにNICポートを実現し、NICポートを介して端末装置がネットワークに接続して通信を行う場合に用いられる。
図1は、この発明にかかる実施の形態1のバス転送装置が適用される端末装置の構成を示すブロック図である。図1に示した端末装置は、CPU101、PCIバスホストコントローラ102、メモリ103、PCIバス104、バス転送装置11、およびn+1(nは自然数)個のNICポート120〜12nを備えている。
NICポート120〜12nは、ネットワーク接続機能を有するインタフェースカードのポートであり、図示していないネットワークを介して端末装置がパケットによる通信を行なうインタフェース機能を備えている。NICポート120〜12nには、予めNICポート120〜12nを識別するためのNICポート番号が付与されている。
PCIバスホストコントローラ102は、バス転送装置11や図示していないPCIバス104に接続される機器(たとえば、ディスプレイやハードディスクなど)からのPCIバス104へのアクセス要求の調停を行なう。また、PCIバスホストコントローラ102は、PCIバス104の割り込み信号を検出する機能を備え、割り込み信号を検出すると、割り込みが発生したことを示す割り込み発生通知をCPU101に出力する。
CPU101は、図示していない記憶部に記憶されるプログラムによって動作し、NICポート120〜12nを介してネットワークに接続される装置との通信処理、および上位アプリケーション処理などを行なう。CPU101は、PCIバスホストコントローラ102から割り込み発生通知を受けると、割り込み発生通知によって通知された割り込み信号を解析して、所定の処理を行なう。メモリ103は、DMA転送に用いるDMAフレームを記憶する。
バス転送装置11は、NICポート120〜12nが受信したパケット(受信パケット)、およびNICポート120〜12nに送信するパケット(送信パケット)をDMAフレームによってPCIバス104を介してDMA転送する。
バス転送装置11は、PCIバスインタフェース111と、DMAフレーマ112と、パケットバッファ113と、割り込み要因提示装置114とを備えている。
PCIバスインタフェース111は、PCIバス104とのインタフェース機能を備え、DMAフレームをPCIバス104を介してPCIバスホストコントローラ102に転送するとともに、PCIバスホストコントローラ102からPCIバス104を介して転送されたDMAフレームを受信する。PCIバスインタフェース111は、DMA転送が終了した場合、またはバス転送装置11の異常を検出した場合などに、PCIバスホストコントローラ102に対して割り込み信号INTAを発行(アサート)にするとともに、DMA転送終了や装置異常などの割り込み要因を割り込み要因提示装置114に通知する。
DMAフレーマ112は、パケットバッファ113に保持されている受信パケットからDMA転送に用いるDMAフレームを生成する。また、DMAフレーマ112は、PCIバスインタフェース111から入力されるDMAフレームからNICポート120〜12nへの送信パケットを抽出する。
パケットバッファ113は、NICポート120〜12nの送受信パケットを必要に応じて一時保持する。割り込み要因提示装置114は、PCIバスインタフェース111から通知された割り込み要因を提示する。割り込み要因提示装置114が提示する割り込み要因は、PCIバスホストコントローラ102、PCIバス104、PCIバスインタフェース111を介してCPU101が参照することができる。
図2は、バス転送装置11がDMA転送の際に用いるDMAフレームの構成を示す図である。図2に示したDMAフレームは、フレーム情報(ポート番号201とデータ長202)と、パケットデータ203とで構成される。パケットデータ203には、受信パケットまたは送信パケットが設定される。ポート番号201には、パケットデータ203に設定されているパケットがどのNICポート120〜12nに対応するものであるかを識別するためにNICポート番号が設定される。データ長202には、パケットデータ203のデータ長が設定される。なお、ポート番号201とデータ長202の合計ビット数は、PCIバス104のビット幅の整数倍とし、かつ必要最小限なビット数とする。
つぎに、図3および図4のフローチャートを参照して、この発明にかかる実施の形態1のバス転送装置11を用いたDMA転送の動作を説明する。まず、図3のフローチャートを参照して、パケットバッファ113に保持されている受信パケットをメモリ103にDMA転送する動作について説明する。
パケットバッファ113は、NICポート120〜12nの受信パケットを一時保持する。パケットバッファ113に受信パケットがすべて保持されると、PCIバスインタフェース111は、パケットバッファ113とメモリ103との間でのDMA転送開始処理を行なう(ステップS100)。具体的には、PCIバスインタフェース111は、PCIバスホストコントローラ102に対してPCIバス104へのアクセス要求を行い、PCIバス104の調停によってPCIバス104へのアクセスが許可された後にDMA転送に必要な処理、たとえば、DMA転送するDMAフレームを記憶するメモリ103の先頭アドレスやDMA転送するDMAフレームのバイト数などの設定処理を行なう。これにより、CPU101を介さずにパケットバッファ113からメモリ103へのDMA転送が開始される。
DMAフレーマ112は、パケットバッファ113に保持されている受信パケットから先の図2に示したDMAフレームを生成する(ステップS110)。バス転送装置11は、パケットバッファ113に受信パケットを保持する際に、NICポート120〜12nのどのNICポートの受信パケットであるのか、保持した受信パケットのデータ長などの情報を取得している。DMAフレーマ112は、これらの情報に基づいて、パケットを受信したNICポート120〜12nのNICポート番号およびデータ長を受信パケットに付加してDMAフレームを生成する。
PCIバスインタフェース111は、DMAフレーマ112が生成したDMAフレームをPCIバス104を介してPCIバスホストコントローラ102に転送する(ステップS120)。PCIバスホストコントローラ102は、DMAフレームをDMA転送開始処理によって設定されたアドレスから順にメモリ103に記憶させる(ステップS130)。
PCIバスインタフェース111は、DMAフレームの転送が完了すると、割り込み信号INTAをアサートにする(ステップS140)。PCIバスインタフェース111は、割り込み要因、すなわちDMAフレームの転送が終了したことを割り込み要因提示装置114に通知する。割り込み要因提示装置114は、通知された割り込み要因を提示する(ステップS150)。
PCIバスホストコントローラ102は、割り込み信号INTAがアサートになったことを検出すると、バス転送装置11からの割り込みが発生したことを示す割り込み発生通知をCPU101に出力する(ステップS160)。
割り込み発生通知を受けると、CPU101は、割り込み要因を解析する(ステップS170)。具体的には、CPU101は、PCIバスホストコントローラ102、PCIバス104、PCIバスインタフェース111を介して、割り込み要因提示装置114に提示されている割り込み要因を読み出して、DMA転送が終了した割り込みであるのか、装置異常が発生したための割り込みであるのかを解析する。
CPU101は、解析結果に応じた所定の処理を実行する(ステップS180)。DMA転送が終了した割り込みの場合、CPU101は、メモリ103にパス転送装置11から転送されたDMAフレームが記憶されていること認識し、メモリ103からDMAフレームを読み出す。CPU101は、DMAフレームのデータ長202に設定されているデータ長に基づいて、DMAフレームから受信パケットを復元する。CPU101は、DMAフレームのポート番号201に設定されているNICポート番号からNICポート120〜12nを識別して、対応する上位アプリケーションの処理を行なう。装置異常による割り込みの場合、CPU101は、予め定められた異常処理を実行する。所定の処理が終了すると、CPU101は、割り込み信号INTAをクリア(ネゲートに)する(ステップS190)。
つぎに、図4のフローチャートを参照して、送信フレームをパケットバッファ113にDMA転送する動作について説明する。
CPU101は、パケットを送信するNICポート120〜12nのNICポート番号およびデータ長を送信パケットに付加したDMAフレームを生成し、メモリ103に記憶させる(ステップS200)。
CPU101は、メモリ103とパケットバッファ113との間でのDMA転送開始処理を行なう(ステップS210)。具体的には、CPU101は、PCIバスホストコントローラ102に対してPCIバス104へのアクセス要求を行い、PCIバス104の調停によってPCIバス104へのアクセスが許可された後にDMA転送に必要な処理、たとえば、DMA転送するDMAフレームの先頭が記憶されているメモリ103のアドレスやDMA転送するDMAフレームのバイト数などの設定処理を行なう。これにより、CPU101を介さずにメモリ103からパケットバッファ113へのDMA転送が開始される。
PCIバスホストコントローラ102は、メモリ103に記憶されているDMAフレームをPCIバス104を介してPCIバスインタフェース111に転送する(ステップS220)。
DMAフレーマ112は、PCIバスインタフェース111に転送されたDMAフレームのデータ長202に設定されているデータ長に基づいて、DMAフレームから送信パケットを抽出してパケットバッファ113に出力する(ステップS230)。パケットバッファ113は、送信パケットを一時保持する。DMAフレーマ112は、DMAフレームのポート番号201に設定されているNICポート番号が示すNICポート120〜12nに、パケットバッファ113が保持している送信パケットを送信する。
PCIバスインタフェース111は、PCIバスホストコントローラ102からのDMAフレームの受信が終了すると、割り込み信号INTAをアサートにする(ステップS240)。PCIバスインタフェース111は、割り込み要因、すなわちDMAフレームの転送が終了したことを割り込み要因提示装置114に通知する。割り込み要因提示装置114は、通知された割り込み要因を提示する(ステップS250)。
PCAバスホストコントローラ102は、割り込み信号INTAがアサートになったことを検出すると、バス転送装置11からの割り込みが発生したことを示す割り込み発生通知をCPU101に出力する(ステップS260)。
割り込み発生通知を受けると、CPU101は、割り込み要因を解析する(ステップS270)。CPU101は、解析結果に応じた所定の処理を実行する(ステップS280)。この場合、割り込み要因提示装置114は、DMA転送が終了したことを示している。したがって、CPU101は、NICポート120〜12nへの送信パケットの転送処理を終了する。所定の処理が終了すると、CPU101は、割り込み信号INTAをクリア(ネゲートに)する(ステップS290)。
このようにこの実施の形態1では、NICポートのパケットに、NICポートを識別するためのポート番号およびパケットのデータ長を含むフレーム情報を付加したDMAフレームを用いてDMA転送を行なうとともに、割り込み要因提示装置に自装置がアサートにした割り込み信号の割り込み要因を提示するようにしたので、1つの割り込み信号で複数のNICポートのパケットのDMA転送を行なうことができる。
実施の形態2.
図5〜図7を参照してこの発明の実施の形態2を説明する。図5は、この発明にかかる実施の形態2のバス転送装置が適用される端末装置の構成を示すブロック図である。図5に示した端末装置は、図1に示した実施の形態1の端末装置のバス転送装置11の代わりにバス転送装置11aを備えている。バス転送装置11aは、バス転送装置11のPCIバスインタフェース111に代えてPCIバスインタフェース111aを備え、割り込み要因提示装置114が削除されている。図1に示した端末装置と同じ機能を持つ構成部分には同一符号を付し、重複する説明を省略する。
PCIバスインタフェース111aは、2本の割り込み信号INTA,INTBを有し、受信パケットのDMA転送が終了した場合には割り込み信号INTAをアサートにし、送信パケットのDMA転送が終了した場合には割り込み信号INTBをアサートにする。すなわち、バス転送装置11aには、処理毎に対応した割り込み信号INTA,INTBが割当てられている。
つぎに、図6および図7のフローチャートを参照して、この発明にかかる実施の形態2のバス転送装置11aを用いたDMA転送の動作を説明する。まず、図6のフローチャートを参照して、パケットバッファ113に保持されている受信パケットをメモリ103にDMA転送する動作について説明する。なお、PCIバスインタフェース111aがDMA転送開始処理を行ない、DMAフレーマ112がパケットバッファ113に記憶されている受信パケットに基づいてDMAフレームを生成し、PCIバスインタフェース111aがDMAフレームをPCIバスホストコントローラ102に転送し、PCIバスホストコントローラ102がDMAフレームをメモリ103に記憶させるステップS300〜S330については、実施の形態1で説明した図3のフローチャートのパケットバッファ113からメモリ103へのDMA転送処理動作(ステップS100〜S130)と同じであるので、詳細な説明を省略する。
パケットバッファ113にNICポート120〜12nの受信パケットがすべて保持されると、PCIバスインタフェース111aはDMA転送開始処理を行ない、DMAフレーマ112はパケットバッファ113に記憶されている受信パケットに基づいてDMAフレームを生成し、PCIバスインタフェース111aはDMAフレームをPCIバスホストコントローラ102に転送し、PCIバスホストコントローラ102はDMAフレームをメモリ103に記憶させる(ステップS300〜S330)。
PCIバスインタフェース111aは、DMAフレームの転送が完了すると、パケットバッファ113からメモリ103へのDMA転送処理の終了(受信パケット転送終了)に割当てられている割り込み信号INTAをアサートにする(ステップS340)。
PCIバスホストコントローラ102は、割り込み信号INTAがアサートになったことを検出すると、バス転送装置11aから受信パケット転送終了の割り込みが発生したことを示す割り込み発生通知をCPU101に出力する(ステップS350)。
割り込み発生通知を受けると、CPU101は、割り込み発生通知に応じた所定の処理を実行する(ステップS360)。この場合、割り込み発生通知は、受信パケット転送終了、すなわち割り込み信号INTAを検出したことを示しているので、CPU101は、メモリ103にパス転送装置11から転送されたDMAフレームが記憶されていること認識し、メモリ103からDMAフレームを読み出す。CPU101は、DMAフレームのデータ長202に設定されているデータ長に基づいて、DMAフレームから受信パケットを復元する。CPU101は、DMAフレームのポート番号201に設定されているNICポート番号からNICポート120〜12nを識別して、対応する上位アプリケーションの処理を行なう。所定の処理が終了すると、CPU101は、割り込み信号INTAをネゲートにする(ステップS370)。
つぎに、図7のフローチャートを参照して、メモリ103に記憶されている送信フレームをパケットバッファ113にDMA転送する動作について説明する。なお、CPU101がDMAフレームを生成してメモリ103に記憶させ、DMA転送開始処理を行ない、PCIバスホストコントローラ102がメモリ103に記憶されているDMAフレームをPCIバスインタフェース111aに転送し、DMAフレーマ112がDMAフレームから送信パケットを抽出してパケットバッファ113に出力するステップS400〜S430については、実施の形態1で説明した図4のフローチャートのメモリ103からパケットバッファ113へのDMA転送処理動作(ステップS200〜S230)と同じであるので、詳細な説明を省略する。
CPU101はDMAフレームを生成してメモリ103に記憶させ、DMA転送開始処理を行ない、PCIバスホストコントローラ102はメモリ103に記憶されているDMAフレームをPCIバスインタフェース111aに転送し、DMAフレーマ112はDMAフレームから送信パケットを抽出してパケットバッファ113に出力する(ステップS400〜S430)。パケットバッファ113は、送信パケットを一時保持する。DMAフレーマ112は、DMAフレームのポート番号201に設定されているNICポート番号が示すNICポート120〜12nに、パケットバッファ113が保持している送信パケットを送信する。
PCIバスインタフェース111aは、PCIバスホストコントローラ102からのDMAフレームの受信が終了すると、メモリ103からパケットバッファ113へのDMA転送処理の終了(送信パケット転送終了)に割当てられている割り込み信号INTBをアサートにする(ステップS440)。
PCIバスホストコントローラ102は、割り込み信号INTBがアサートになったことを検出すると、バス転送装置11aから送信パケット転送終了の割り込みが発生したことを示す割り込み発生通知をCPU101に出力する(ステップS450)。
割り込み発生通知を受けると、CPU101は、割り込み発生通知に応じた所定の処理を実行する(ステップS460)。この場合、割り込み発生通知は、送信パケット転送終了、すなわち割り込み信号INTBを検出したことを示しているので、CPU101は、NICポート120〜12nへの送信パケットの転送処理を終了する。所定の処理が終了すると、CPU101は、割り込み信号INTAをネゲートにする(ステップS470)。
このようにこの実施の形態2では、NICポート120〜12nのパケットに、NICポート120〜12nを識別するためのポート番号201およびパケットのデータ長202を含むフレーム情報を付加したDMAフレームを用いてDMA転送を行なうとともに、NICポート120〜12nに依存せずに割り込み要因ごとに割り込み信号を割当てるようにしているので、NICポート120〜12nに対応させて割り込み信号を割当てるために割り込み信号を共有することなく、割り込み要因の数に対応する割り込み信号だけで割り込み要因とその割り込み信号を発生されたNICポート120〜12nを特定することができる。
この実施の形態2のバス転送装置11aは、特に3つ以上のNICポート120〜12nをPCIバス104上に実装する場合、効率のよいDMA転送を行なうことができる。
実施の形態3.
図8を参照してこの発明の実施の形態3を説明する。実施の形態1および実施の形態2では、先に図2に示したように、NICポート120〜12nのパケットの前にポート番号201およびパケット長202を付加したDMAフレームを用いてDMA転送を行なったが、バス転送装置11,11aがDMA転送するデータはパケットに限るものではない。たとえば、NICポート120〜12nの通信における制御情報や統計情報などを転送することがある。制御情報は、NICポート120〜12nの通信方式固有の情報であり、統計情報は、NICポート120〜12nのパケットの受信エラーなどの情報である。これらの情報は、NICポート120〜12nがパケットを受信した際に得られる情報である。
しかしながら、図2に示したDMAフレームでは、CPU101は、フレーム情報によってNICポート120〜12nやDMA転送されたデータ長を識別することはできるが、転送された情報の内容に付いては識別することができない。この実施の形態3では、このような問題を改善するために、DMAフレームのフレーム情報に、自フレームに含まれるデータの種別を示すフレームタイプを設けるものである。
この実施の形態3のバス転送装置のDMAフレーマ112は、実施の形態1または実施の形態2のDMAフレーマ112の機能に加えて、制御情報や統計情報からDMAフレームを生成する機能を備えている。
図8は、実施の形態3で用いるDMAフレームの構成を示す図である。この実施の形態3で用いるDMAフレームは、フレーム情報(ポート番号201とデータ長202とフレームタイプ204)と、データ205とで構成される。ポート番号201には、データ205に設定されているデータがどのNICポート120〜12nに対応するものであるかを識別するためのNICポート番号が設定される。データ長202には、データ205のデータ長が設定される。フレームタイプ204には、データ205に設定されているデータがパケットデータであるのか、制御情報であるのか、統計情報であるのかを示すフレーム情報が設定される。データ205には、パケット、制御情報、統計情報の何れか1つのデータが設定される。なお、ポート番号201、データ長202、およびフレームタイプ204の合計ビット数は、PCIバス104のビット幅の整数倍とし、かつ必要最小限のビット数とする。
このようにこの実施の形態3では、DMAフレームのフレーム情報にデータの種別を示すフレームタイプ204を含むようにしたので、パケットだけでなく制御情報や統計情報についても効率よくDMA転送することができる。
実施の形態4.
図9を用いてこの発明の実施の形態4を説明する。図9は、この発明にかかる実施の形態4のバス転送装置が適用される端末装置の構成を示すブロック図である。図9に示した端末装置は、図1に示した実施の形態1の端末装置のバス転送装置11の代わりにバス転送装置11bを備えている。バス転送装置11bは、バス転送装置11のDMAフレーマ112に代えてDMAフレーマ112aを備え、DMA転送履歴提示装置115が追加されている。図1に示した端末装置と同じ機能を持つ構成部分には同一符号を付し、重複する説明を省略する。
DMAフレーマ112aは、DMAフレーマ112の機能に加えて、バス転送装置11bからメモリ103へのDMA転送(受信DMA転送)時に、先の図2に示したDMAフレームを生成する際に、パケットデータ203またはデータ205に設定したデータ量やデータの種別、DMAフレームが記憶されるメモリ103のアドレスなどのDMA転送の履歴情報をDMA転送履歴提示装置115に通知する機能を備えている。
DMA転送履歴提示装置115は、DMAフレーマ112aから通知された履歴情報を保持する。DMA転送履歴提示装置115が提示する履歴情報は、PCIバスホストコントローラ102、PCIバス104、PCIバスインタフェース111を介してCPU101が参照または消去することができる。すなわち、DMA転送履歴提示装置115は、バス転送装置11bがDMA転送によってメモリ103に記憶させたDMAフレームの中で、CPU101が所定の処理が終了していないDMAフレームに関する履歴情報を提示する。
つぎに、この発明にかかる実施の形態4のバス転送装置11bが適用される端末装置の動作について説明する。CPU101は、図示していないPCIバス104に接続されている複数の機器を制御している。そのため、バス転送装置11bから受信DMA転送されたDMAフレームに対する所定の処理が終了する前に、バス転送装置11bがつぎのDMAフレームを受信DMA転送する場合がある。このように複数回分のDMAフレームがメモリ103に記憶されている場合、CPU101は、割り込み要因提示装置114に提示されている割り込み要因、およびDMA転送履歴提示装置115に提示されている履歴情報を参照する。
履歴情報は、上述したようにパケットデータ203またはデータ205に設定したデータ量やデータの種別、DMAフレームが記憶されるメモリ103のアドレスなど、CPU101が受信処理に必要な情報が提示されている。CPU101は、履歴情報のメモリ103のアドレスおよびデータ量に基づいて、メモリ103からDMAフレームを読み出して所定の処理を実行する。CPU101は、所定の処理が終了すると、処理が終了したDMAフレームに対応する履歴情報をDMA転送履歴提示装置115から消去する。
このようにこの実施の形態4では、DMA転送履歴提示装置がDMA転送の転送履歴を提示するようにしたので、CPU101が処理していないDMAフレームがある場合でも、つぎのDMAフレームをDMA転送することが可能となり、PCIバス上で効率よくDMA転送を行なうことができる。
なお、この実施の形態4のDMFフレーマ112aに制御情報や統計情報をDMAフレームに変換する機能を備え、図8に示したDMAフレームを用いて、パケットだけでなく、制御情報や統計情報をDMA転送するようにしてもよい。これにより、NICポート120〜12nの制御情報や統計情報を効率よく転送することができる。
また、この実施の形態4では、バス転送装置にPCIバス104の割り込み信号が1本だけ割当てられている場合について説明したが、実施の形態2で説明したバス転送装置11bに割り込み要因提示装置をさらに備え、DMA転送の履歴情報を保持するようにしてもよい。
実施の形態5.
図10〜図14を用いてこの発明の実施の形態5を説明する。この発明にかかる実施の形態1のバス転送装置が適用される端末装置は、図9に示した実施の形態4の端末装置と同じであるので、ここではその説明を省略する。
DMAフレーマ112aは、実施の形態4で説明した機能に加え、受信パケットのDMA転送時に1つのNICポート120〜12nの受信パケットをDMA転送した後に、DMA転送を継続するか否かを判定し、DMA転送を継続する場合には、連続して受信パケットをDMA転送する。DMA転送を継続するか否かの判定条件は、転送パケット数やデータ量、パケットバッファ113の蓄積量などであり、DMAフレーマ112aに、判定条件を予め設定しておく。
つぎに、図10のフローチャートを参照して、この発明にかかる実施の形態5のバス転送装置11bを用いたDMA転送の動作を説明する。なお、図3のフローチャートを用いて説明したパケットバッファ113に保持されている受信パケットをメモリ103にDMA転送する動作と同じ動作については、詳細な説明を省略する。
パケットバッファ113にNICポート120〜12nの受信パケットがすべて保持されると、PCIバスインタフェース111aはDMA転送開始処理を行ない、DMAフレーマ112はパケットバッファ113に記憶されている受信パケットに基づいてDMAフレームを生成し、PCIバスインタフェース111aはDMAフレームをPCIバスホストコントローラ102に転送し、PCIバスホストコントローラ102はDMAフレームをメモリ103に記憶させる(ステップS500〜S530)。DMAフレーマ112aは、DMAフレームを生成する際に、パケットデータ203、DMAフレームが記憶されるメモリ103のアドレスなどのDMA転送の履歴情報をDMA転送履歴提示装置115に通知する。
1つのNICポート120〜12nのDMAフレームのDMA転送が終了すると、DMAフレーマ112aは、予め設定された判定条件に基づいて、DMA転送を継続するか否かを判定する(ステップS540)。DMA転送を継続する場合、DMAフレーマ112aは、パケットバッファ113に保持されている受信パケットに基づいてDMAフレームを生成し、PCIバスインタフェース111aはDMAフレームをPCIバスホストコントローラ102に転送し、PCIバスホストコントローラ102はDMAフレームをメモリ103に記憶させ、DMA転送を継続するか否かを判定する動作を繰り返す(ステップS510〜S540)。
DMAフレーマ112aがDMA転送を継続しない(終了する)場合、PCIバスインタフェース111は、割り込み信号INTAをアサートにする(ステップS550)。PCIバスインタフェース111は、割り込み要因提示装置114に割り込み要因を通知し、割り込み要因提示装置114は割り込み要因を提示する(ステップS560)。PCIバスホストコントローラ102は、割り込み信号INTAがアサートになったことを検出すると、バス転送装置11からの割り込みが発生したことを示す割り込み発生通知をCPU101に出力する(ステップS570)。
割り込み発生通知を受けると、CPU101は、割り込み要因を解析し、解析結果に応じた所定の処理を行った後に、割り込み信号INTAをネゲートにする(ステップS580〜S600)。
このようにDMAフレーマ112aは、判定条件によって連続してDMA転送を行なう。そのため、DMAフレーマ112aが生成するDMAフレームは、図11に示すように、図2に示したDMAフレームが連続した構成となる。
メモリ103に記憶されている送信フレームをパケットバッファ113にDMA転送する動作は、図4のフローチャートで説明した動作において1つのNICポート120〜12nの送信パケットのDMA転送が終了したステップS230とPCIバスインタフェース111が割り込み信号INTAをアサートにするステップS240との間に、DMAフレーマ112aが予め定められた判定条件によってDMA転送を継続するか否かを判定して、継続する場合には送信パケットのDMA転送を繰り返す動作を追加したものとなる。
このようにこの実施の形態5では、DAMフレーマ112aが予め定められた判定条件によってNICポート120〜12nのパケットを連続してDMA転送するようにしているので、1つのNICポート120〜12n毎にDMA転送開始処理を行う必要がなくなり、高速にかつ効率よくPCIバス上でパケットの転送を行なうことができる。
なお、DMAフレーマ112aに制御情報や統計情報をDMAフレームに変換する機能を備え、図12に示したDMAフレームを用いて、パケットだけでなく、制御情報や統計情報をDMA転送するようにしてもよい。これにより、NICポート120〜12nの制御情報や統計情報を高速にかつ効率よくPCIバス上でパケットの転送を行なうことができる。
また、この実施の形態5では、DMAフレーマ112aが予め設定されている判定条件に基づいてDMA転送を継続するか否かを判定するようにしたが、図13に示すように、CPU101から判定条件を設定可能なフレーマ制御装置116を備えるバス転送装置11cを用いるようにしてもよい。フレーマ制御装置116は、DMAフレーマ112aが扱うDMAフレーム内のパケットを監視して、CPU101から設定された判定条件に基づいてDMAフレームを制御する。
このようにフレーマ制御装置116がCPU101から設定された判定条件に基づいてDMAフレーマ112aを制御するようにすれば、判定条件を簡単に変更することができ、CPU101が送信パケットをDMA転送する場合や、送信パケットまたは受信パケットの一方の転送量が多くなることが予め予想できる場合、過去一定数の統計情報からパケットのデータ長の分布情報がわかっている場合など、DMAフレーマ112aの動作をCPU101が適切に制御することができ、高速でかつ効率よくPCIバス上でパケットの転送を行なうことができる。
さらに、図14に示すように、図13に示したバス転送装置11cにタイマ117を追加したバス転送装置11dを用いるようにしてもよい。この場合、CPU101がDMA転送レートとDMA転送するパケット数またはデータ量とに基づいて、連続してDMA転送を行なうDMA転送時間を算出し、算出したDMA転送時間をタイマ117に設定する。フレーム制御装置116は、タイマ117がDMA転送時間の計測を終了すると、DMAフレーマ112aの動作を停止させてDMA転送を終了させる。このようにタイマ117を用いてDMA転送時間を設定するようにしても、CPU101が送信パケットをDMA転送する場合や、送信パケットまたは受信パケットの一方の転送量が多くなることが予め予想できる場合、過去一定数の統計情報からパケットのデータ長の分布情報がわかっている場合など、DMAフレーマ112aの動作をCPU101が適切に制御することができ、高速でかつ効率よくPCIバス上でパケットの転送を行なうことができる。
さらにまた、この実施の形態5では、バス転送装置にPCIバス104の割り込み信号が1本だけ割当てられている場合について説明したが、実施の形態2で説明したバス転送装置11bに割り込み要因提示装置やフレーム制御装置、タイマを備えるようにしてもよい。
また、実施の形態1〜5では、パケット、制御情報、または統計情報の前にフレーム情報(ポート番号とパケット長、またはポート番号とパケット長とフレームタイプ)を付加したDMAフレームを用いたが、フレーム情報をパケット、制御情報、または統計情報の後ろに付加したDMAフレームを用いるようにしてもよい。具体的には、図2に示したDMAフレームの代わりに図15に示したDMAフレームを用い、図8に示したDMAフレームの代わりに図16に示したDMAフレームを用い、図11に示したDMAフレームの代わりに図17に示したDMAフレームを用い、図12に示したDMAフレームの代わりに図18に示したDMAフレームを用いる。
このように、フレーム情報をパケット、制御情報、または統計情報の後ろに付加するようにすれば、全てのパケット、制御情報、または統計情報がパケットバッファ113に保持されていない場合、すなわち受信途中であってもDMA転送を開始することができ、パケットバッファ113の容量を小さくすることができ、受信パケットの受信処理の遅延時間を短くすることができる。
なお、DMA転送における送信パケットのDMAフレームと受信パケットのDMAフレームは、必ずしも同じ構成でなくてもかまわない。たとえば、送信パケットのDMA転送時には、フレーム情報を送信パケットの前に付加したDMAフレームを用い、受信パケットのDMA転送時には、フレーム情報を受信パケットの前に付加したDMAフレームを用いるようにしてもよい。これにより、送信時には送信パケットを送信するNICポート120〜12nがすぐにわかるので、DMAフレームの転送が終了する前にポート番号201に設定されているNICポート番号に対応するNICポート120〜12nにパケットを送信することができ、受信時には、全てのパケットを受信する前にDMAフレームを生成してDMA転送を行なうことができる。これにより、パケットバッファ113の容量を小さくすることができるとともに、パケットの送受信の遅延時間を短くすることができる。
以上のように、本発明にかかるバス転送装置は、DMA転送に有用であり、特に、PCIバスを用いて複数のNICポートを介して通信を行なう際のDMA転送に適している。
この発明にかかる実施の形態1のバス転送装置が適用される端末装置の構成を示すブロック図である。 この発明にかかる実施の形態1のバス転送装置が扱うDMAフレームの構成を示す図である。 この発明にかかる実施の形態1のバス転送装置を用いたDMA転送の動作を説明するためのフローチャートである。 この発明にかかる実施の形態1のバス転送装置を用いたDMA転送の動作を説明するためのフローチャートである。 この発明にかかる実施の形態2のバス転送装置が適用される端末装置の構成を示すブロック図である。 この発明にかかる実施の形態2のバス転送装置が扱うDMAフレームの構成を示す図である。 この発明にかかる実施の形態2のバス転送装置を用いたDMA転送の動作を説明するためのフローチャートである。 この発明にかかる実施の形態3のバス転送装置が扱うDMAフレームの構成を示す図である。 この発明にかかる実施の形態4のバス転送装置が適用される端末装置の構成を示すブロック図である。 この発明にかかる実施の形態5のバス転送装置を用いたDMA転送の動作を説明するためのフローチャートである。 この発明にかかる実施の形態5のバス転送装置が扱うDMAフレームの構成を示す図である。 この発明にかかる実施の形態5のバス転送装置が扱うDMAフレームの構成を示す図である。 この発明にかかる実施の形態5のバス転送装置が適用される端末装置の別の構成を示すブロック図である。 この発明にかかる実施の形態5のバス転送装置が適用される端末装置の別の構成を示すブロック図である。 この発明にかかるバス転送装置が扱うDMAフレームの構成を示す図である。 この発明にかかるバス転送装置が扱うDMAフレームの構成を示す図である。 この発明にかかるバス転送装置が扱うDMAフレームの構成を示す図である。 この発明にかかるバス転送装置が扱うDMAフレームの構成を示す図である。
符号の説明
11,11a,11b,11c,11d バス転送装置
101 CPU
102 PCIバスホストコントローラ
103 メモリ
104 PCIバス
111,111a PCIバスインタフェース
112,112a DMAフレーマ
113 パケットバッファ
114 割り込み要因提示装置
115 DMA転送履歴提示装置
116 フレーマ制御装置
117 タイマ
120,121,12n NICポート
201 ポート番号
202 データ長
203 パケットデータ
204 フレームタイプ
205 データ

Claims (9)

  1. 複数のネットワーク・インタフェース・カード(NIC)ポートが実装され、ペリフェラル・コンポーネント・インターコネクト(PCI)バスを用いて前記NICポートのパケットをメモリにDMA転送するバス転送装置において、
    前記パケットを一時保持するパケットバッファと、
    NICポートを介して前記パケットバッファに一時保持されたパケットに当該パケットを扱うNICポートを識別するためのポート番号および当該パケットのデータ長を含むフレーム情報を付加したDMAフレームを生成して前記PCIバス上にDMA転送し、一方、前記メモリから前記PCIバス上に転送されたNICポートへのパケットを含むDMAフレームを受け取り、当該DMAフレームに付加されたフレーム情報に含まれるデータ長に基づいて、当該DMAフレームからNICポートへのパケットを抽出して前記パケットバッファに一時保持し、さらに、当該パケットバッファに一時保持しておいたパケットを、当該フレーム情報に含まれるポート番号に対応するNICポートに送信するDMAフレーマと、
    このDMAフレーマによるDMA転送が終了した際に、自装置に割当てられている唯一の前記PCIバス上への割り込み信号をアサートにするPCIバスインタフェースと、
    このPCIバスインタフェースが割り込み信号をアサートにした割り込み要因を提示する割り込み要因提示装置と、
    を備えることを特徴とするバス転送装置。
  2. 複数のネットワーク・インタフェース・カード(NIC)ポートが実装され、ペリフェラル・コンポーネント・インターコネクト(PCI)バスを用いて前記NICポートのパケットをメモリにDMA転送するバス転送装置において、
    前記パケットを一時保持するパケットバッファと、
    NICポートを介して前記パケットバッファに一時保持されたパケットに当該パケットを扱うNICポートを識別するためのポート番号および当該パケットのデータ長を含むフレーム情報を付加したDMAフレームを生成して前記PCIバス上にDMA転送し、一方、前記メモリから前記PCIバス上に転送されたNICポートへのパケットを含むDMAフレームを受け取り、当該DMAフレームに付加されたフレーム情報に含まれるデータ長に基づいて、当該DMAフレームからNICポートへのパケットを抽出して前記パケットバッファに一時保持し、さらに、当該パケットバッファに一時保持しておいたパケットを、当該フレーム情報に含まれるポート番号に対応するNICポートに送信するDMAフレーマと、
    このDMAフレーマによるDMA転送が終了した際に、自装置に割当てられている割り込み要因に対応した前記PCIバス上への割り込み信号をアサートにするPCIバスインタフェースと、
    を備えることを特徴とするバス転送装置。
  3. 前記DMAフレーマは、
    前記パケット以外に、NICポートの通信方式固有の制御情報または通信時の統計情報を含むDAMフレームをDMA転送可能とし、
    前記フレーム情報に、ポート番号およびデータ長に加えて送信するデータがパケットであるのか、制御情報であるのか、統計情報であるのかを示すフレームタイプを含ませた、DMAフレームを生成してDAM転送を行なうことを特徴とする請求項1または2に記載のバス転送装置。
  4. 前記フレーム情報を、
    前記パケット、制御情報、または統計情報の前に付加することを特徴とする請求項に記載のバス転送装置。
  5. 前記フレーム情報を、
    前記パケット、制御情報、または統計情報の後に付加することを特徴とする請求項に記載のバス転送装置。
  6. 前記DMAフレーマが転送したDMAフレームの転送履歴情報を保持するDMA転送履歴提示装置、
    をさらに備えることを特徴とする請求項1〜の何れか1つに記載のバス転送装置。
  7. 前記DMAフレーマは、
    予め定められた判定条件に基づいて、前記DMAフレームを連続してDMA転送することを特徴とする請求項1〜の何れか1つに記載のバス転送装置。
  8. 外部から設定される判定条件に基づいて前記DMAフレーマを制御するフレーマ制御装置、
    をさらに備え、
    前記DMAフレーマは、
    前記フレーマ制御装置の指示によって前記DMAフレームを連続してDMA転送することを特徴とする請求項1〜の何れか1つに記載のバス転送装置。
  9. 外部から設定される転送時間を計測するタイマ、
    をさらに備え、
    前記フレーマ制御装置は、
    前記タイマが転送時間の計測を完了すると、前記DMAフレーマのDMA転送を停止させることを特徴とする請求項に記載のバス転送装置。
JP2004327753A 2004-11-11 2004-11-11 バス転送装置 Expired - Fee Related JP4685414B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004327753A JP4685414B2 (ja) 2004-11-11 2004-11-11 バス転送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004327753A JP4685414B2 (ja) 2004-11-11 2004-11-11 バス転送装置

Publications (2)

Publication Number Publication Date
JP2006139474A JP2006139474A (ja) 2006-06-01
JP4685414B2 true JP4685414B2 (ja) 2011-05-18

Family

ID=36620271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004327753A Expired - Fee Related JP4685414B2 (ja) 2004-11-11 2004-11-11 バス転送装置

Country Status (1)

Country Link
JP (1) JP4685414B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5244362B2 (ja) * 2007-10-09 2013-07-24 株式会社アキブシステムズ 高速ネットワークシステム及び関連装置
KR101520871B1 (ko) * 2013-12-30 2015-05-18 주식회사 시큐아이 PCIe 패킷 처리 장치 및 PCIe 패킷 처리 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11513150A (ja) * 1995-06-15 1999-11-09 インテル・コーポレーション Pci間ブリッジを統合する入出力プロセッサ用アーキテクチャ
JP2000276357A (ja) * 1999-03-24 2000-10-06 Nec Corp 割り込み処理装置および割り込み通知方法
JP2002538723A (ja) * 1999-03-01 2002-11-12 サン・マイクロシステムズ・インコーポレイテッド 高性能ネットワークインターフェイスを有するデータリアセンブリのための方法および装置
JP2003085129A (ja) * 2001-07-03 2003-03-20 Sharp Corp データ通信コントローラ及びデータ転送装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG77134A1 (en) * 1996-04-30 2000-12-19 Texas Instruments Inc Method and system for extracting control information from packetized data received by a communications interface device
JP3287283B2 (ja) * 1997-10-20 2002-06-04 日本電気株式会社 Pciバスの割り込みステアリング回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11513150A (ja) * 1995-06-15 1999-11-09 インテル・コーポレーション Pci間ブリッジを統合する入出力プロセッサ用アーキテクチャ
JP2002538723A (ja) * 1999-03-01 2002-11-12 サン・マイクロシステムズ・インコーポレイテッド 高性能ネットワークインターフェイスを有するデータリアセンブリのための方法および装置
JP2000276357A (ja) * 1999-03-24 2000-10-06 Nec Corp 割り込み処理装置および割り込み通知方法
JP2003085129A (ja) * 2001-07-03 2003-03-20 Sharp Corp データ通信コントローラ及びデータ転送装置

Also Published As

Publication number Publication date
JP2006139474A (ja) 2006-06-01

Similar Documents

Publication Publication Date Title
JP5822567B2 (ja) コントローラ及び転送スピード制御方法
JP2010128696A (ja) バスブリッジ装置およびそれを用いたバスブリッジシステム
JP2006293927A (ja) ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
JP4685414B2 (ja) バス転送装置
EP2290552A1 (en) Data transfer device, information processing device, and control method
CN116166581A (zh) 用于pcie总线的队列式dma控制器电路及数据传输方法
JP2006079621A (ja) ベースバンドプロセッサと無線周波数集積モジュールとの間のデジタルプログラミングインターフェース
JPH11232214A (ja) 情報処理装置用プロセッサおよびその制御方法
JP4212508B2 (ja) パケット生成装置
JP2004227501A (ja) データ転送制御装置および方法
JP2006195607A (ja) バルクアウト転送終了判定方法および回路
US8060667B2 (en) Apparatus and method for processing high speed data using hybrid DMA
CN111625486B (zh) 通用串行总线装置及其数据传输方法
JP2005044202A (ja) 画像データ転送制御装置
JP2002176464A (ja) ネットワークインタフェース装置
JPH1097489A (ja) 磁気ディスク装置のブロック長変換方法及びブロック長変換装置
JPH1063617A (ja) シリアル通信装置
JP2018085003A (ja) データ処理装置
JP2005182505A (ja) データ転送制御装置および画像形成装置
KR100441884B1 (ko) 패킷 처리 엔진과 메인 프로세서간에 고속 블록 데이터전송을 수행하는 네트워크 시스템 및 그것의 dma운영방법
JP2008118211A (ja) データ転送装置及びデータ転送方法
JP6542513B2 (ja) Usb転送装置、usb転送システムおよびusb転送方法
JP2005202794A (ja) データ通信システム
JP2004280199A (ja) データ通信システム
JP5756738B2 (ja) 通信システム、通信装置及び通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100524

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110210

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees