JP2009048298A - 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体 - Google Patents

情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体 Download PDF

Info

Publication number
JP2009048298A
JP2009048298A JP2007211860A JP2007211860A JP2009048298A JP 2009048298 A JP2009048298 A JP 2009048298A JP 2007211860 A JP2007211860 A JP 2007211860A JP 2007211860 A JP2007211860 A JP 2007211860A JP 2009048298 A JP2009048298 A JP 2009048298A
Authority
JP
Japan
Prior art keywords
information
storage unit
dma
descriptor
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
Application number
JP2007211860A
Other languages
English (en)
Other versions
JP2009048298A5 (ja
Inventor
Takeshi Kano
豪 加納
Mitsuki Hinosugi
充希 日野杉
Masahito Kajimoto
雅人 梶本
Yoichi Mizutani
陽一 水谷
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2007211860A priority Critical patent/JP2009048298A/ja
Priority to US12/218,179 priority patent/US8151015B2/en
Publication of JP2009048298A publication Critical patent/JP2009048298A/ja
Publication of JP2009048298A5 publication Critical patent/JP2009048298A5/ja
Pending legal-status Critical Current

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

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

【課題】処理時間がかかる情報転送系の記憶部にアクセスせずにディスクリプタ情報を読み出せるようにすると共に、処理速度を高速化できるようにする。
【解決手段】ネットワークカード9のDMA転送部は、RAMにアクセスして送信完了ポインタ格納領域先頭アドレス設定用のレジスタTX_DONE_ADRが指し示す当該RAM上の領域へ、ディスクリプタ番号nic_txの内容をコピー(転送)する(815)。送信完了処理スレッドは、割り込み発生部から送信完了割り込みを入力すると、RAMにコピーされたディスクリプタ番号nic_txに係る送信ディスクリプタnic_descから送信完了ポインタを求める。その後、送信完了処理スレッドは、送信ヘッドポインタから順に送信完了ポインタまで送信完了処理を行う。
【選択図】図9

Description

本発明は、例えばネットワークカードなどの情報転送系の記憶部と、マイクロプロセッサ(CPU)を有した情報処理系の記憶部との間で情報をDMA転送する情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにDMAコントローラ、DMA転送方法、当該DMA転送方法を実行するためのプログラム及び当該プログラムを記録した媒体に関する。詳しくは、DMA転送した情報に係るディスクリプタ情報を、情報転送系の第2記憶部から情報処理系の第1記憶部にDMA転送し、DMA転送したディスクリプタ情報をこの第1記憶部から読み出すことで、処理時間がかかる情報転送系の第2記憶部にアクセスせずにディスクリプタ情報を読み出せるようにすると共に、当該装置の処理速度を高速化できるようにしたものである。
近年、情報処理系の記憶部と情報転送系の記憶部との間で情報を高速に転送するためにDMA転送が広く用いられている。例えば、情報転送系のネットワークカードなどにおけるDMAコントローラのレジストに予めディスクリプタを格納しておき、CPUが、このDMAコントローラに転送先(又は転送元)のアドレスと転送するデータ量をこのレジスタに書き込む。その後、CPUが、DMAコントローラに起動コマンドを発行することでDMA転送を開始する。書き込まれた転送データ量の転送が終了すると、その転送動作が終了する。従って転送動作毎に転送先アドレス等の動作情報をレジスタに書き込む必要があり、CPUに負荷がかかる問題があった。
この問題に対処するために、CPUは転送先アドレス等などを示すディスクリプタ(DMA転送情報キュー)をRAM(Random Access Memory)上に作成し、DMA転送の開始をDMAコントローラに指示する。DMAコントローラは、CPUによりDMA転送の開始を指示されると、RAM上に作成されたディスクリプタを参照してDMA転送する。これにより、CPUはDMA転送とは非同期にデータ転送の指示ができるため、特に複数のデータのDMA転送を行う場合に高速な処理が可能となる。
DMA転送が終了した場合には、DMAコントローラからCPUへ割り込みが通知され、CPUはこの割り込みを起因にDMAコントローラのレジスタからディスクリプタを読み出す。ディスクリプタを読み出した後、CPUは、終了したDMA転送が順次送信の場合にはバッファの開放などの処理を実施し、DMA転送が受信の場合には受信データの処理を実施する。
このような従来例に関連して特許文献1には、DMA転送機能を有した情報処理装置が開示されている。この情報処理装置によれば、DMAコントローラ41は、画像メモリ43に格納されたディスクリプタ情報53を、当該DMAコントローラ41内部に用意されたレジスタにロードする。これにより、DMAコントローラ41は、ロードされたディスクリプタ情報53を参照してDMA転送処理を実施できるようになる。
特開2002−140286号公報(第6頁、第3図及び第5図)
ところで、従来例及び特許文献1に係るDMAコントローラによれば、CPUは、DMA転送が終了時の割り込みを起因に、DMAコントローラのレジスタを参照してディスクリプタを読み出している。しかしながら、CPUが、このDMAコントローラのレジスタからディスクリプタを読み出す処理は、例えばCPUがRAMにアクセスする場合と比較して低速である。これは、例えばDMAコントローラのレジスタのメモリ空間が、RAMのメモリ空間と異なるために、CPUは、このレジスタにアクセスする場合に特殊な命令を使用するためである。
そこで、本発明はこのような従来例に係る課題を解決したものであって、処理時間がかかる情報転送系の記憶部にアクセスせずにディスクリプタ情報を読み出せるようにすると共に、処理速度を高速化できるようにした情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにDMAコントローラ、DMA転送方法、当該DMA転送方法を実行するためのプログラム及び当該プログラムを記録した媒体を提供することを目的とする。
上述した課題を解決するために、本発明に係る情報処理装置は、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する情報処理装置であって、前記情報処理系は、前記情報を保存する第1記憶部と、当該装置を制御する制御部とを有し、前記情報転送系は、前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を保存する第2記憶部と、前記第2記憶部に保存されたディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するDMA転送部とを有し、前記DMA転送部は、DMA転送した前記情報に係る前記ディスクリプタ情報を、当該第2記憶部から前記第1記憶部にDMA転送し、前記制御部は、前記DMA転送部によりDMA転送されたディスクリプタ情報を当該第1記憶部から読み出すことを特徴とするものである。
本発明に係る情報処理装置によれば、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する場合に、第2記憶部には、情報の第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報が保存されている。DMA転送部は、この第2記憶部に保存されたディスクリプタ情報に基づいて、第1記憶部と当該第2記憶部との間で情報をDMA転送する。この場合に、DMA転送部は、DMA転送した情報に係るディスクリプタ情報を、当該第2記憶部から第1記憶部にDMA転送する。このとき、制御部は、DMA転送部によりDMA転送されたディスクリプタ情報を当該第1記憶部から読み出す。これにより、制御部は、処理時間がかかる情報転送系の第2記憶部にアクセスせずにディスクリプタ情報を読み出すことができる。
上述した課題を解決するために、本発明に係る情報処理方法は、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する情報処理方法であって、前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップと、DMA転送したディスクリプタ情報を前記第1記憶部から読み出すステップとを有することを特徴とするものである。
本発明に係る情報処理方法によれば、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する場合に、処理時間がかかる情報転送系の第2記憶部にアクセスせずにディスクリプタ情報を読み出すことができる。
上述した課題を解決するために、本発明に係る情報処理方法をコンピュータに実行させるためのプログラムは、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送するために、前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップと、DMA転送したディスクリプタ情報を前記第1記憶部から読み出すステップとを有することを特徴とするものである。
上述した課題を解決するために、本発明に係る情報処理方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な媒体は、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送するために、前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップと、DMA転送したディスクリプタ情報を前記第1記憶部から読み出すステップとを有することを特徴とするものである。
本発明に係る情報処理方法のプログラム及び媒体によれば、当該プログラムをコンピュータに実行させることにより、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する場合に、処理時間がかかる情報転送系の第2記憶部にアクセスせずにディスクリプタ情報を読み出すことができる。
上述した課題を解決するために、本発明に係るDMAコントローラは、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送するDMAコントローラであって、前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を保存する第2記憶部と、前記第2記憶部に保存されたディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するDMA転送部とを有し、前記DMA転送部は、DMA転送した前記情報に係る前記ディスクリプタ情報を、当該第2記憶部から前記第1記憶部にDMA転送することを特徴とするものである。
本発明に係るDMAコントローラによれば、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する場合に、第2記憶部には、情報の第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報が保存されている。DMA転送部は、この第2記憶部に保存されたディスクリプタ情報に基づいて、第1記憶部と当該第2記憶部との間で情報をDMA転送する。この場合に、DMA転送部は、DMA転送した情報に係るディスクリプタ情報を、当該第2記憶部から第1記憶部にDMA転送する。このとき、DMA転送部によりDMA転送されたディスクリプタ情報を当該第1記憶部から読み出すことにより、処理時間がかかる情報転送系の第2記憶部にアクセスせずにディスクリプタ情報を読み出すことができる。
上述した課題を解決するために、本発明に係るDMA転送方法は、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する方法であって、前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップとを有することを特徴とするものである。
本発明に係るDMA転送方法によれば、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する場合に、処理時間がかかる情報転送系の第2記憶部にアクセスせずにディスクリプタ情報を読み出すことができる。
上述した課題を解決するために、本発明に係るDMA転送方法をコンピュータに実行させるためのプログラムは、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送するために、前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップとを有することを特徴とするものである。
上述した課題を解決するために、本発明に係るDMA転送方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な媒体は、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送するために、前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップとを有することを特徴とするものである。
本発明に係るDMA転送方法のプログラム及び媒体によれば、当該プログラムをコンピュータに実行させることにより、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する場合に、処理時間がかかる情報転送系の第2記憶部にアクセスせずにディスクリプタ情報を読み出すことができる。
本発明に係る情報処理装置、情報処理方法、そのプログラム及び媒体によれば、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する場合に、DMA転送した情報に係るディスクリプタ情報を、第2記憶部から第1記憶部にDMA転送し、制御部は、DMA転送したディスクリプタ情報をこの第1記憶部から読み出すものである。
この構成によって、制御部は、処理時間がかかる情報転送系の第2記憶部にアクセスせずにディスクリプタ情報を読み出すことができる。これにより、制御部にかかる負荷を低減できるので、当該装置の処理速度を高速化できる。
本発明に係るDMAコントローラ、DMA転送方法、そのプログラム及び媒体によれば、情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する場合に、DMA転送した情報に係るディスクリプタ情報を、第2記憶部から第1記憶部にDMA転送するものである。
この構成によって、DMA転送した情報に係るディスクリプタ情報を、処理時間がかかる情報転送系の第2記憶部にアクセスせずに、情報処理系の第1記憶部から読み出すことができる。これにより、処理速度を高速化できる。
続いて、本発明に係る情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにDMAコントローラ、DMA転送方法、当該DMA転送方法を実行するためのプログラム及び当該プログラムを記録した媒体の実施の形態について、図面を参照しながら説明をする。
<実施の形態1>
図1は、本発明に係る第1の実施の形態としての情報処理装置(以下、Personal Computer;PCという)100の構成例を示すブロック図である。図1に示すPC100は、ネットワーク10に接続され、送信ディスクリプタによるDMA転送機能を有したネットワークカード9から入出力する情報を処理する。このPC100は、CPU1、ROM2、RAM3、バス4、I/Oインタフェース5、入力部6、出力部7、記録部8、ネットワークカード9を備える。
ROM(Read Only Memory)2はバス4に接続され、このROM2には、プログラム等が保存されている。CPU1は制御部の一例として機能し、バス4を介してROM2及びRAM3(第1記憶部の一例)に接続されている。このCPU1は、ROM2に保存されたプログラム等をRAM3に展開し、当該プログラムにしたがって各種の処理を実施する。
また、CPU1は、バス4に接続されたI/O(Input/Output)インタフェース5を介して、キーボード、マウスなどの入力部6、ディスプレイやプリンタなどの出力部7、ハードディスクなどの記録部8及びDMA転送を行うネットワークカード9が接続されている。
入力部6は、ユーザにより入力された文字情報などをCPU1に出力する。CPU1は、入力部6からの文字情報などを記録部8に記録する。また、この記録部8にはプログラム等が記録されている。出力部7は、CPU1から出力された画像情報などを出力する。
ネットワークカード9は、ネットワーク10に接続されている。このネットワークカード9は、例えばPC1内部のデータをネットワーク10で送受信できる形式のデータに変換する。
一般的に、CPU1がI/Oインタフェース5を介してネットワークカード9などに対して通信を行う場合の通信速度と、バス4に直接接続されたROM2やRAM3と通信を行う場合の通信速度とを比べると、後者との通信の方が速い。すなわち、CPU1がRAM3へのデータ読み込みの速度は、例えばネットワークカード9のレジスタ9a(図2参照)への読み込み速度に比べて非常に速い。これは、ネットワークカード9のレジスタ9aのメモリ空間がRAM3のメモリ空間と異なるために、CPU1は、このレジスタ9aにアクセスする場合に、特殊な命令を使用することに起因している。なお、ネットワークカード9は、例えばLAN(Local Area Network)カード、ネットワークアダプタ、ネットワークインタフェースカード (Network Interface Card;NIC) などとも称される。
図2はネットワークカード9の送信部9fの構成例を示すブロック図である。図2に示す送信部9fは、レジスタ9a、DMA転送部9b、一時記憶部9c、パケット通信部9d及び割り込み発生部9eを備える。レジスタ9aは第2記憶部の一例を構成し、I/Oインタフェース5を介してCPU1に接続されている。このレジスタ9aは、CPU1からネットワークカード9の送信部9fに対しての命令が書き込まれたり、この送信部9fの状態が保存されている。
DMA転送部9bは、一時記憶部9c(第2記憶部の一例)、及びI/Oインタフェース5を介してRAM3(図1参照)に接続されている。
DMA転送部9bは、CPU1によりRAM3に生成された送信ディスクリプタ21(図4参照)を一時記憶部9cに転送して保存する。この送信ディスクリプタ21は、少なくとも、DMA転送する送信パケット(情報)のサイズ、及びRAM3上の格納位置を示すものである。
DMA転送部9bは、一時記憶部9cに保存された送信ディスクリプタ21に基づいて、RAM3と一時記憶部9cとの間で送信パケットをDMA転送する。この例で、DMA転送部9bは、このRAM3上の送信パケットをCPU1を介さないで直接読み込んで一時記憶部9cに書き込む。その後、DMA転送部9bは、DMA転送した送信パケットに係る送信ディスクリプタ21を、一時記憶部9cからRAM3にDMA転送する。この例で、DMA転送部9bは、送信パケットのDMA転送が完了した場合に、当該送信パケットのDMA転送完了を示す送信ディスクリプタ21を一時記憶部9cからRAM3にDMA転送する。このとき、CPU1は、DMA転送した送信パケットに係る送信ディスクリプタ21を読み出す場合にRAM3を参照して、例えばDMA転送完了を示す送信ディスクリプタ21を読み出す。
これにより、CPU1は、処理時間がかかるレジスタ9aにアクセスせずに送信完了位置を知ることができる。従って、CPU1にかかる負荷を低減できるので、PC100の処理速度を高速化できる。
一時記憶部9cは、パケット通信部9dに接続されている。この一時記憶部9cには、送信ディスクリプタ21が保存されている。また、一時記憶部9cには、パケット通信部9dによりネットワーク10に転送する送信パケットや転送した送信パケットが一時的に保存される。パケット通信部9dはネットワーク10に接続され、一時記憶部9cに記憶された送信パケットをネットワーク10に転送する。
割り込み発生部9eは、DMA転送部9b、及びI/Oインタフェース5を介してCPU1に接続されている。この割り込み発生部9eは、DMA転送部9bからDMA転送完了通知などを受信し、DMA転送完了状態をCPU1へ送信して割り込みを行う。CPU1は、割り込み発生部9eによりDMA転送完了状態を受信すると、バッファの解放処理などを実施する。なお、DMA転送部9b及び一時記憶部9cは、DMAコントローラ及び情報転送系の一例を構成する。また、CPU1及びRAM3は、情報処理系の一例を構成する。
図3は、レジスタ9aの構成例を示す説明図である。図3に示すレジスタ9aには少なくとも、送信リセット用のレジスタTX_RESET、送信ディスクリプタ格納領域先頭アドレス設定用のレジスタTX_DESC_ADR、単位送信ディスクリプタ数設定用のレジスタTX_DESC_NUM、送信完了ポインタ格納領域先頭アドレス設定用のレジスタTX_DONE_ADR、送信テイルポインタ設定用のレジスタTX_TAIL、送信完了割り込み設定用のレジスタTX_INTが存在する。
この送信リセット用のレジスタTX_RESETは、送信機能のリセットを実施するためのレジスタである。送信ディスクリプタ格納領域先頭アドレス設定用のレジスタTX_DESC_ADRは、CPU1がRAM3上の送信ディスクリプタの格納位置の先頭アドレスを設定し、ネットワークカード9にその位置を通知するためのレジスタである。
単位送信ディスクリプタ数設定用のレジスタTX_DESC_NUMは、CPU1が送信ディスクリプタの要素数を設定し、ネットワークカード9にその数を通知するためのレジスタである。送信完了ポインタ格納領域先頭アドレス設定用のレジスタTX_DONE_ADRは、ネットワークカード9が送信完了ポインタを書き込むRAM3上領域の先頭アドレスを示すためのレジスタである。送信テイルポインタ設定用のレジスタTX_TAILは、CPU1が送信テイルポインタを設定して、送信動作の開始をネットワークカード9に指示するためのレジスタである。送信完了割り込み設定用のレジスタTX_INTは、ネットワークカード9が送信を終了したことをCPU1に割り込みで通知するためのレジスタである。このように、レジスタ9aは構成されている。
図4は、送信ディスクリプタ21の構成例を示す説明図である。図4に示す送信ディスクリプタ21は、少なくとも送信パケット先頭アドレス20aと送信パケットサイズ20bからなる単位送信ディスクリプタ20をn個(=要素数n)有して構成されている。この送信ディスクリプタ21は、CPU1によりRAM3(図1参照)上の連続領域に生成される。なお、この単位送信ディスクリプタ20の構成は、ネットワークカード9及びCPU1の双方に対して既知である。
CPU1はネットワークカード9のDMA転送部9bに対して、RAM3上の送信ディスクリプタ21の先頭アドレスと先頭からの個数(インデックス)nを指定すると、DMA転送部9bは該当するインデックスの単位送信ディスクリプタ20の先頭位置を特定できるようになる。これは、上述したようにDMA転送部9bは、単位送信ディスクリプタ20の構成を知っているからである。なお、以下このインデックスの値をディスクリプタ番号(0〜n)と称する。
続いて、RAM3上のメモリ領域の構成を説明する。図5は、RAM3上のメモリ領域の構成例を示す説明図である。この例で、図5に示すRAM3上の送信パケットp_1〜送信パケットp_mを送信パケットp_1から順に図1に示したネットワークカード9を介してネットワーク10に送信する。
RAM3上には、n個の単位送信ディスクリプタ20(図4参照)を持つ送信ディスクリプタ21(以下RAM3上の送信ディスクリプタ21を「送信ディスクリプタcpu_desc」又は単に「cpu_desc」という)を保存するための領域が確保されている。また、RAM3上には、CPU1が次にパケットを送信する場合に使用するディスクリプタ番号を指し示す送信テイルポインタcpu_tx_tailを保存するための領域が確保されている。また、RAM3上には、CPU1が次のパケット送信完了後に最初に送信完了処理を行うディスクリプタ番号を指し示す送信ヘッドポインタcpu_tx_headを保存するための領域が確保されている。また、RAM3上には、ネットワークカード9がまさに現在送信が完了したパケットを送信するために使用したディスクリプタ番号を指し示す送信完了ポインタcpu_tx_doneを保存するための領域が確保されている。このように、RAM3上には各メモリ領域が確保されている。
なお、ここで送信完了処理とは例えば、送信に使用したパケットバッファの解放やアプリケーションへの送信完了通知を意味する。また以下、説明の理解を容易にするために、要素数(単位送信ディスクリプタ20の個数)n≧送信パケット数mとする(要素数n<送信パケット数mの場合は、送信パケット数mを要素数n以下に分割して行えばよいので割愛する)。また、送信ディスクリプタcpu_desc等のそれぞれの変数の先頭アドレスを「@cpu_desc」というように先頭に「@」マークをつけて表記することにする。
続いて、図2に示したネットワークカード9の一時記憶部9c上のメモリ領域の構成を説明する。図6は、一時記憶部9cのメモリ領域の構成例を示す説明図である。図6に示す一時記憶部9cには、送信すべき送信ディスクリプタ21のコピーを格納する送信ディスクリプタnic_desc(以下一時記憶部9c上の送信ディスクリプタ21を「送信ディスクリプタnic_desc」又は単に「nic_desc」という)の領域が存在する。また、一時記憶部9cには、ネットワークカード9が次に送信すべき当該nic_dsec上のディスクリプタ番号を示すディスクリプタ番号nic_txの領域が存在する。また、送信を行う送信パケットを記憶する領域pが存在する。このように、一時記憶部9c上のメモリ領域は構成されている。
なお、以下では説明の理解を容易にするため、RAM3上の送信ディスクリプタcpu_desc(図5参照)の領域の大きさと同じかそれ以上の領域をnic_descは持ち、cpu_descの各要素のイメージがそのままnic_descの各要素にコピーできるものとする。つまり、cpu_desc全体がそのままnic_desc上にコピーができ、cpu_desc上で使用したディスクリプタ番号がそのままnic_descでも使用できることとする。従って以下、cpu_desc及びnic_descのディスクリプタ番号kの要素をcpu_desc[k]及びnic_desc[k]と表し、cpu_desc[k]をnic_desc上にコピーするといえば、cpu_desc[k]の内容をnic_desc[k]にDMAコピーすることとする。なお、一時記憶部9cが送信ディスクリプタ21のサイズに比して小さい場合には分割して送信ディスクリプタ21の転送を行えばよいので問題ない。
続いて、送信パケットのDMA転送例を説明する。。図7は、ネットワークカード9の初期化例を示すシーケンス図である。図7に示すCPU1は、ネットワークカード9のレジスタ9aにおける送信リセット用のレジスタTX_RESETを使用して送信処理のリセットを実施する(701)。これに伴い、ネットワークカード9側では一時記憶部9cのディスクリプタ番号nic_txを「0」に初期化する(702)。CPU1は、図5に示した送信テイルポインタcpu_tx_tail、送信ヘッドポインタcpu_tx_head及び送信完了ポインタcpu_tx_doneに「0」を設定して初期化する(703)。また、CPU1は、図3に示したレジスタ9aにおける送信ディスクリプタ格納領域先頭アドレス設定用のレジスタTX_DESC_ADRに、図5に示したRAM3の送信ディスクリプタcpu_descの先頭アドレス@cpu_descを設定して初期化する(704)。
また、CPU1は、レジスタ9aにおける単位送信ディスクリプタ数設定用のレジスタTX_DESC_NUMに、RAM3の要素数nを設定して初期化する(705)。また、CPU1は、レジスタ9aにおける送信ディスクリプタ格納領域先頭アドレス設定用のレジスタTX_DESC_ADRに、RAM3の送信完了ポインタcpu_tx_doneの先頭アドレス@cpu_tx_doneを設定して初期化する(706)。
その後、CPU1は、レジスタ9aにおける送信完了割り込み設定用のレジスタTX_INTを使用して送信完了割り込みの許可を行う(707)。このようにして、ネットワークカード9の初期化処理を実施する。
図8及び図9は、送信パケットのDMA転送例を示すシーケンス図である。紙面の都合上、図8に示すネットワークカード9のDMA転送処理ブロック50の処理内容を図9に示している。図8に示すCPU1側の送信処理開始スレッド1aは、先ずカウンタ値iに「0」を設定して初期化する(800)。次に、送信処理開始スレッド1aは、RAM3上の送信ディスクリプタcpu_desc(図5参照)に対して、送信パケットp_iのアドレス@p_i及びサイズを設定する(801)。次に、送信処理開始スレッド1aは、送信テイルポインタcpu_tx_tailを更新する(802)。ここで、このcpu_tx_tailの更新は基本的に1インクリメントするものだが、送信ディスクリプタ21をリング状に使用するためにディスクリプタ数nでモジュロ(modulo)をとる。上述の(801)〜(802)の動作を必要回数(例えば送信パケット数m)繰り返す。最後に、送信処理開始スレッド1aは、送信テイルポインタ設定用のレジスタTX_TAILに送信テイルポインタcpu_tx_tailの値を書き込み、ネットワークカード9のDMA転送部9bに転送開始を指示する(804)。
図9に示すネットワークカード9側では、レジスタ9aにおける送信テイルポインタ設定用のレジスタTX_TAILが更新されたのを受けて当該TX_TAILを変数jに退避する(810)。退避後、ネットワークカード9側では、DMA転送部9bが、一時記憶部9cのディスクリプタ番号nic_tx(「0」に初期化済み)から「変数j-1」までの送信ディスクリプタcpu_descを、一時記憶部9cに送信ディスクリプタnic_descとしてコピーする(811)。
次に、DMA転送部9bは、一時記憶部9cのディスクリプタ番号nic_txが示す送信ディスクリプタnic_descに関連付けられているRAM3上の送信パケットを、順番に一時記憶部9cの領域pにコピーする(812)。次に、パケット通信部9dは、図6に示した一時記憶部9cの領域pにコピーされた送信パケットをネットワーク10に送信する(813)。
ネットワーク10に送信パケットを送信後、パケット通信部9dは、ディスクリプタ番号nic_txを更新する。例えば、ディスクリプタ番号nic_txに「1」を加算した値をレジスタTX_DESC_NUMに格納された単位送信ディスクリプタ数で割った余り(モジュロ)をディスクリプタ番号nic_txに設定して更新する(814)。その後、DMA転送部9bは、RAM3にアクセスして送信完了ポインタ格納領域先頭アドレス設定用のレジスタTX_DONE_ADRが指し示す当該RAM3上の領域へ、ディスクリプタ番号nic_txの内容をコピー(転送)する(815)。
次に、割り込み発生部9eは、送信完了割り込みを発生して、処理ブロック(812)で送信ディスクリプタnic_descのディスクリプタ番号nic_txに関連付けられた送信パケットの送信が完了したことを、CPU1側の送信完了処理スレッド1bに通知する(816)。このとき、図8に示す送信完了処理スレッド1bは、送信完了割り込みの入力を待機している(820)。
送信完了処理スレッド1bは、割り込み発生部9eから送信完了割り込みを入力すると、RAM3にコピーされた一時記憶部9cのディスクリプタ番号nic_txから送信パケットの先頭アドレスと送信パケットのサイズを取得して送信完了ポインタcpu_tx_doneを求める。その後、送信完了処理スレッド1bは、送信ヘッドポインタcpu_tx_headから順に送信完了ポインタcpu_tx_doneまで送信完了処理を行う(821)。ここで、送信完了ポインタcpu_tx_doneは、上述の(815)の処理で送信完了ポインタ格納領域先頭アドレス設定用のレジスタTX_DONE_ADRが指し示すRAM3上の領域へコピーされた、ネットワークカード9のパケット通信部9dが送信を終了した位置を示している。
これにより、CPU1がいちいちレジスタ9aにアクセスせずに、RAM3にアクセスして送信完了位置を知ることができるため処理の高速化につながる。送信完了処理の終了後、CPU1は、パケットバッファの解放やアプリケーションへ送信完了などを通知する。
また、この例では送信完了通知を割り込みによりCPU1へ通知したが、送信完了ポインタcpu_tx_doneの値の変化をCPU1が観測することで送信完了通知割り込みを発生させずに、送信完了処理ができる。このことは、比較的時間や処理コストがかかる割り込み処理を割愛できるため、処理速度の改善が期待できる。
この例では、ネットワークカード9のパケット送信の例を示したが、パケット受信においても同様に適用でき、またネットワークカード9に限らず、DMAを有する連続的なデータを送受信する機器に対して有効である。
また、情報処理方法及びDMA転送方法をコンピュータに実行させるためのプログラムとして、図8及び図9に示したシーケンスを図1に示したROM2や記録部8に保存し、このROM2などから当該プログラムを起動するか、若しくは当該プログラムを記録したコンピュータ読み取り可能な媒体(例えばCD−ROM)を再生して当該プログラムを起動する。
このように、本発明に係る第1の実施形態のPC100、情報処理方法、そのプログラム及び媒体によれば、一時記憶部9cとRAM3との間で情報をDMA転送する場合に、DMA転送した送信パケットに係る送信ディスクリプタnic_descを一時記憶部9cからRAM3にDMA転送し、CPU1は、このRAM3から当該送信ディスクリプタnic_descを読み出すものである。
従って、CPU1は、処理時間がかかるレジスタ9aにアクセスせずに送信ディスクリプタnic_descを読み出すことができる。これにより、CPU1にかかる負荷を低減できるので、当該PC100の処理速度を高速化できる。
また、本発明に係る第1の実施形態のDMAコントローラ、DMA転送方法、そのプログラム及び媒体によれば、一時記憶部9cとRAM3との間で送信パケットをDMA転送する場合に、DMA転送した送信パケットに係る送信ディスクリプタnic_descを、一時記憶部9cからRAM3にDMA転送するものである。
従って、DMA転送した送信パケットに係る送信ディスクリプタnic_descを、処理時間がかかるレジスタ9aにアクセスせずにRAM3から読み出すことができる。これにより、処理速度を高速化できる。
<実施の形態2>
続いて、第2の実施の形態としての送信パケットのDMA転送例を説明する。この例では、送信パケットの個数で送信完了ポインタ更新を抑制する方法について説明する。図10及び図11は、本発明に係る第2の実施の形態としての送信パケットのDMA転送例を示すシーケンス図である。紙面の都合上、図10に示すネットワークカード9AのDMA転送処理ブロック51の処理内容を図11に示している。
前提条件としてネットワークカード9Aのレジスタ9aに、送信パケットのDMA転送回数の基準となる回数基準値を格納する送信完了ポインタ個数抑制設定用のレジスタTX_DONE_NUMを新たに用意する。ネットワークカード9Aの初期化の状態において、CPU1は、このレジスタ9aに対して送信完了ポインタ個数抑制設定用のレジスタTX_DONE_NUMの値(回数基準値)を所定値に設定する。例えば、このレジスタTX_DONE_NUMの値は、図1に示したROM2に予め格納してもよいし、入力部6から入力して記録部8に記録するようにしてもよい。この場合、CPU1は、初期化の際にROM2又は記録部8から送信完了ポインタ個数抑制の値を読み出して、レジスタTX_DONE_NUMにこの値を設定する。
また、ネットワークカード9AのDMA転送部9bはカウンタとしても機能し、送信完了通知カウンタtx_done_cntを用いて、送信パケットのDMA転送回数を計数する。このDMA転送部9bは、初期化リセットのタイミングで送信完了通知カウンタtx_done_cntに「0」を設定して初期化する。なお、図8及び図9に示したシーケンス図の処理ブロックと同じ処理ブロックには同一符号を付し、その詳細な説明は省略する。また、図11に示す符号(915)〜(919)に係る処理ブロックが図8及び図9に対して異なる処理である。
これらを前提条件として図10に示すCPU1側の送信処理開始スレッド1aは、図8に示した初期化処理(800)〜(803)を実施し、当該初期化処理の終了後、ネットワークカード9Aのレジスタ9aにおける送信テイルポインタ設定用のレジスタTX_TAILに送信テイルポインタcpu_tx_tailの値を書き込む。その後、送信処理開始スレッド1aは、図11に示すネットワークカード9AのDMA転送部9bに転送開始を指示する(804)。
次に、このDMA転送部9bは、一時記憶部9cのディスクリプタ番号nic_txから「変数j-1」までの送信ディスクリプタcpu_descを、一時記憶部9cに送信ディスクリプタnic_descとしてコピーする(810、811)。
次に、DMA転送部9bは、一時記憶部9cの送信ディスクリプタnic_descのディスクリプタ番号nic_txが示すRAM3上の送信パケットを、順番に一時記憶部9cの領域pにコピーする(812)。パケット通信部9dは、一時記憶部9cの領域pにコピーされた送信パケットをネットワーク10に送信する(813)。ネットワーク10に送信パケットを送信後、パケット通信部9dは、ディスクリプタ番号nic_txを更新する(814)と共に、送信完了通知カウンタtx_done_cntをインクリメントする(915)。
その後、DMA転送部9bは、送信完了ポインタ個数抑制設定用のレジスタTX_DONE_NUMの値と送信完了通知カウンタtx_done_cntの計数値とを比較し、当該比較結果に基づいて、DMA転送した送信パケットに係る送信ディスクリプタnic_descを、一時記憶部9cからRAM3にDMA転送するか否かを判定する。
例えば、DMA転送部9bは、送信完了通知カウンタtx_done_cntと送信完了ポインタ個数抑制設定用のレジスタTX_DONE_NUMの値を比較後、当該tx_done_cntが当該TX_DONE_NUMと同じかそれ以上の場合、DMA転送部9bは、RAM3にアクセスして送信完了ポインタ格納領域先頭アドレス設定用のレジスタTX_DONE_ADRが指し示す当該RAM3上の領域へディスクリプタ番号nic_txの内容をコピーする(916)。次に、割り込み発生部9eは、送信完了割り込みを発生して、処理ブロック(812)で送信ディスクリプタnic_descのディスクリプタ番号nic_txが示す送信パケットの送信が完了しことを、CPU1側の送信完了処理スレッド1bに通知する(917)。その後、DMA転送部9bは、送信完了通知カウンタtx_done_cntに「0」を設定して初期化する。
また、送信完了通知カウンタtx_done_cntをインクリメント後(915)、DMA転送部9bは、送信完了通知カウンタtx_done_cntと送信完了ポインタ個数抑制設定用のレジスタTX_DONE_NUMの値を比較して、当該tx_done_cntが当該TX_DONE_NUMより小さい場合、処理ブロック(812)に移行して、次の送信ディスクリプタnic_descのディスクリプタ番号nic_txが示すRAM3上の送信パケットを順番に一時記憶部9cの領域pにコピーする。
このように、本発明に係る第2の実施形態のDMA転送方法によれば、DMA転送部9bは、送信完了ポインタ個数抑制設定用のレジスタTX_DONE_NUMの値と送信完了通知カウンタtx_done_cntの計数値とを比較して送信ディスクリプタnic_descのDMA転送を判定するものである。
従って、図9の処理ブロック(815)と比較して、DMA転送部9bが、送信完了ポインタ格納領域先頭アドレス設定用のレジスタTX_DONE_ADRが指し示す当該RAM3上の領域へディスクリプタ番号nic_txの内容をコピー(916)する更新頻度を送信回数で抑制できるようになる。従って、設定された間隔でDMAが起動されるため、不必要な更新が抑制されて処理の高速化につながる。なお、送信完了割り込み(917)の他に、上位が指示した送信パケットの転送が全て終了したときにも送信完了の通知(919)を行ってもよい。
<実施の形態3>
続いて、第3の実施の形態としての送信パケットのDMA転送例を説明する。この例では、時間で送信完了ポインタ更新を抑制する方法について説明する。図12及び図13は、本発明に係る第3の実施の形態としての送信パケットのDMA転送例を示すシーケンス図である。紙面の都合上、図12に示すネットワークカード9BのDMA転送処理ブロック52の処理内容を図13に示している。
前提条件としてネットワークカード9BのDMA転送部9bは、送信パケットのDMA転送時間を計測するタイマ11を有する。ネットワークカード9Bのレジスタ9aに、送信パケットのDMA転送時間の基準となる時間基準値を格納する送信完了ポインタ時間抑制設定用のレジスタTX_DONE_TIMEを新たに用意する。ネットワークカード9Bの初期化の状態において、CPU1は、ネットワークカード9Bのレジスタ9aに対して送信完了ポインタ時間抑制設定用のレジスタTX_DONE_TIMEの値(時間基準値)を所定値に設定する。例えば、このレジスタTX_DONE_TIMEの値は、図1に示したROM2に予め格納してもよいし、入力部6から入力して記録部8に記録するようにしてもよい。この場合、CPU1は、初期化の際にROM2又は記録部8から送信完了ポインタ時間抑制の値を読み出して、レジスタTX_DONE_TIMEにこの値を設定する。
ネットワークカード9は、初期化リセットのタイミングで送信完了通知フラグtx_done_flgに「0」を設定し、更にタイマセットフラグtx_time_flgに「0」を設定して初期化する。なお、図8及び図9に示したシーケンス図の処理ブロックと同じ処理ブロックには同一符号を付し、その詳細な説明は省略する。また、図13に示す符号(1015)〜(1023)に係る処理が図8及び図9に対して異なる処理である。
これらを前提条件として図12に示すCPU1側の送信処理開始スレッド1aは、図8に示した初期化処理(800)〜(803)を実施し、当該初期化処理の終了後、ネットワークカード9Aのレジスタ9aにおける送信テイルポインタ設定用のレジスタTX_TAILに送信テイルポインタcpu_tx_tailの値を書き込み、図13に示すネットワークカード9BのDMA転送部9bに転送開始を指示する(804)。
その後、DMA転送部9bは、一時記憶部9cのディスクリプタ番号nic_txから「変数j-1」までの送信ディスクリプタcpu_descを、一時記憶部9cに送信ディスクリプタnic_descとしてコピーする(810、811)。
次に、DMA転送部9bは、一時記憶部9cの送信ディスクリプタnic_descのディスクリプタ番号nic_txが示すRAM3上の送信パケットを、順番に一時記憶部9cの領域pにコピーする(812)。次に、パケット通信部9dは、一時記憶部9cの領域pにコピーされた送信パケットをネットワーク10に送信する(813)。ネットワーク10に送信パケットを送信後、パケット通信部9dは、ディスクリプタ番号nic_txを更新する(814)。
ディスクリプタ番号nic_txを更新後、DMA転送部9bは、送信完了ポインタ時間抑制設定用のレジスタTX_DONE_TIMEの値(時間基準値)とタイマ11により計測した計測値とを比較し、当該比較結果に基づいて、DMA転送した送信パケットに係る送信ディスクリプタnic_descを、一時記憶部9cからRAM3にDMA転送するか否かを判定する。
例えば、DMA転送部9bは、タイマセットフラグtx_time_flgが「0」ならば(すなわちタイマがスタートされていなければ)、タイマセットフラグtx_time_flgに「1」を設定してタイマ11をスタートする(1015、1016)。
タイマ11は、送信完了ポインタ時間抑制設定用のレジスタTX_DONE_TIMEの値が示す時間経過(tick)したら、タイマセットフラグtx_time_flgに「0」を設定すると共に、送信完了通知フラグtx_done_flgに「1」を設定して、当該タイマ11がtickしたことをネットワークカード9BのDMA転送部9bに通知する(1021、1022、1023)。
送信完了通知フラグtx_done_flgが「1」の場合、DMA転送部9bは、RAM3にアクセスして送信完了ポインタ格納領域先頭アドレス設定用のレジスタTX_DONE_ADRが指し示す当該RAM3上の領域へ、ディスクリプタ番号nic_txの内容をコピーする(1017)。
その後、DMA転送部9bは、送信完了通知フラグtx_done_flgに「0」を設定して初期化する。また、割り込み発生部9eは、送信完了割り込みを発生して、上述の処理ブロック(812)でディスクリプタ番号nic_txが示す送信パケットの送信が完了しことを、CPU1側の送信完了処理スレッド1bに通知する(1019)。
また、送信完了通知フラグtx_done_flgが「1」でない場合、処理ブロック(812)に移行して、次のディスクリプタ番号nic_txが示すRAM3上の送信パケットを順番に一時記憶部9cの領域pにコピーする。
このように、本発明に係る第3の実施形態のDMA転送方法によれば、DMA転送部9bは、送信完了ポインタ時間抑制設定用のレジスタTX_DONE_TIMEの値(時間基準値)とタイマ11により計測した計測値とを比較して送信ディスクリプタnic_descのDMA転送を判定するものである。
従って、図9の処理ブロック(815)と比較して、DMA転送部9bが、送信完了ポインタ格納領域先頭アドレス設定用のレジスタTX_DONE_ADRが指し示す当該RAM3上の領域へ、ディスクリプタ番号nic_txの内容をコピー(1017)する更新頻度を時間で抑制できるようになる。これにより、設定された間隔でDMAが起動されるため、不必要な更新が抑制されて処理の高速化につながる。なお、送信完了割り込み(1019)の他に、上位が指示した送信パケットの転送が全て終了したときにも送信完了の通知(1020)を行ってもよい。
本発明は、例えばネットワークカードなどの情報転送系の記憶部と、CPUを有した情報処理系の記憶部との間で情報をDMA転送する情報処理装置に適用して好適である。
本発明に係る第1の実施の形態としてのPC100の構成例を示すブロック図である。 ネットワークカード9の送信部9fの構成例を示すブロック図である。 レジスタ9aの構成例を示す説明図である。 送信ディスクリプタ21の構成例を示す説明図である。 RAM3上のメモリ領域の構成例を示す説明図である。 一時記憶部9cのメモリ領域の構成例を示す説明図である。 ネットワークカード9の初期化例を示すシーケンス図である。 送信パケットのDMA転送例を示すシーケンス図である。 送信パケットのDMA転送例を示す一部拡大のシーケンス図である。 本発明に係る第2の実施の形態としての送信パケットのDMA転送例を示すシーケンス図である。 本発明に係る第2の実施の形態としての送信パケットのDMA転送例を示す一部拡大のシーケンス図である。 本発明に係る第3の実施の形態としての送信パケットのDMA転送例を示すシーケンス図である。 本発明に係る第3の実施の形態としての送信パケットのDMA転送例を示す一部拡大のシーケンス図である。
符号の説明
1・・・CPU(制御部)、2・・・ROM、3・・・RAM(第1記憶部)、9・・・ネットワークカード、9a・・・レジスタ(第2記憶部)、9b・・・DMA転送部(カウンタ)、9c・・・一時記憶部(第2記憶部)、9d・・・パケット通信部、9e・・・割り込み発生部、11・・・タイマ、100・・・PC(情報処理装置)

Claims (14)

  1. 情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をダイレクトメモリアクセス(DMA)転送する情報処理装置であって、
    前記情報処理系は、
    前記情報を保存する第1記憶部と、
    当該装置を制御する制御部とを有し、
    前記情報転送系は、
    前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を保存する第2記憶部と、
    前記第2記憶部に保存されたディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するDMA転送部とを有し、
    前記DMA転送部は、
    DMA転送した前記情報に係る前記ディスクリプタ情報を、当該第2記憶部から前記第1記憶部にDMA転送し、
    前記制御部は、
    前記DMA転送部によりDMA転送されたディスクリプタ情報を当該第1記憶部から読み出すことを特徴とする情報処理装置。
  2. 前記DMA転送部は、
    前記情報のDMA転送が完了した場合に、当該情報のDMA転送完了を示すディスクリプタ情報を前記情報転送系の第2記憶部から前記情報処理系の第1記憶部にDMA転送し、
    前記制御部は、
    前記DMA転送完了を示すディスクリプタ情報を当該第1記憶部から読み出すことを特徴とする請求項1に記載の情報処理装置。
  3. 前記DMA転送部は、
    前記情報のDMA転送回数を計数するカウンタを有し、
    前記情報のDMA転送回数の基準となる回数基準値と、前記カウンタにより計数した計数値とを比較し、
    当該比較結果に基づいて、DMA転送した情報に係る前記ディスクリプタ情報を、前記情報転送系の第2記憶部から前記情報処理系の第1記憶部にDMA転送するか否かを判定することを特徴とする請求項1に記載の情報処理装置。
  4. 前記DMA転送部は、
    前記情報のDMA転送時間を計測するタイマを有し、
    前記情報のDMA転送時間の基準となる時間基準値と、前記タイマにより計測した計測値とを比較し、
    当該比較結果に基づいて、DMA転送した情報に係る前記ディスクリプタ情報を、前記情報転送系の第2記憶部から前記情報処理系の第1記憶部にDMA転送するか否かを判定することを特徴とする請求項1に記載の情報処理装置。
  5. 情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する情報処理方法であって、
    前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
    生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、
    前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、
    DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップと、
    DMA転送したディスクリプタ情報を前記第1記憶部から読み出すステップと
    を有することを特徴とする情報処理方法。
  6. 情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送するために、
    前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
    生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、
    前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、
    DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップと、
    DMA転送したディスクリプタ情報を前記第1記憶部から読み出すステップと
    を有することを特徴とする情報処理方法をコンピュータに実行させるためのプログラム。
  7. 情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送するために、
    前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
    生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、
    前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、
    DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップと、
    DMA転送したディスクリプタ情報を前記第1記憶部から読み出すステップと
    を有することを特徴とする情報処理方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な媒体。
  8. 情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送するDMAコントローラであって、
    前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を保存する第2記憶部と、
    前記第2記憶部に保存されたディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するDMA転送部とを有し、
    前記DMA転送部は、
    DMA転送した前記情報に係る前記ディスクリプタ情報を、当該第2記憶部から前記第1記憶部にDMA転送することを特徴とするDMAコントローラ。
  9. 前記DMA転送部は、
    前記情報のDMA転送が完了した場合に、当該情報のDMA転送完了を示すディスクリプタ情報を前記情報転送系の第2記憶部から前記情報処理系の第1記憶部にDMA転送することを特徴とする請求項8に記載のDMAコントローラ。
  10. 前記DMA転送部は、
    前記情報のDMA転送回数を計数するカウンタを有し、
    前記情報のDMA転送回数の基準となる回数基準値と、前記カウンタにより計数した計数値とを比較し、
    当該比較結果に基づいて、DMA転送した情報に係る前記ディスクリプタ情報を、前記情報転送系の第2記憶部から前記情報処理系の第1記憶部にDMA転送するか否かを判定することを特徴とする請求項8に記載のDMAコントローラ。
  11. 前記DMA転送部は、
    前記情報のDMA転送時間を計測するタイマを有し、
    前記情報のDMA転送時間の基準となる時間基準値と、前記タイマにより計測した計測値とを比較し、
    当該比較結果に基づいて、DMA転送した情報に係る前記ディスクリプタ情報を、前記情報転送系の第2記憶部から前記情報処理系の第1記憶部にDMA転送するか否かを判定することを特徴とする請求項8に記載のDMAコントローラ。
  12. 情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送する方法であって、
    前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
    生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、
    前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、
    DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップと
    を有することを特徴とするDMA転送方法。
  13. 情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送するために、
    前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
    生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、
    前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、
    DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップと
    を有することを特徴とするDMA転送方法をコンピュータに実行させるためのプログラム。
  14. 情報処理系の第1記憶部と情報転送系の第2記憶部との間で情報をDMA転送するために、
    前記情報の前記第1記憶部上の格納位置、及び当該情報のサイズを示すディスクリプタ情報を生成するステップと、
    生成したディスクリプタ情報を前記情報転送系の第2記憶部に保存するステップと、
    前記第2記憶部に保存したディスクリプタ情報に基づいて、前記第1記憶部と当該第2記憶部との間で前記情報をDMA転送するステップと、
    DMA転送した情報に係るディスクリプタ情報を、前記第2記憶部から前記第1記憶部にDMA転送するステップと
    を有することを特徴とするDMA転送方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な媒体。
JP2007211860A 2007-08-15 2007-08-15 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体 Pending JP2009048298A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007211860A JP2009048298A (ja) 2007-08-15 2007-08-15 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体
US12/218,179 US8151015B2 (en) 2007-08-15 2008-07-10 Systems and methods for effecting DMA data transfers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007211860A JP2009048298A (ja) 2007-08-15 2007-08-15 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体

Publications (2)

Publication Number Publication Date
JP2009048298A true JP2009048298A (ja) 2009-03-05
JP2009048298A5 JP2009048298A5 (ja) 2010-05-06

Family

ID=40363879

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007211860A Pending JP2009048298A (ja) 2007-08-15 2007-08-15 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体

Country Status (2)

Country Link
US (1) US8151015B2 (ja)
JP (1) JP2009048298A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015502590A (ja) * 2011-10-27 2015-01-22 ▲ホア▼▲ウェイ▼技術有限公司 高速データ配布のための方法および装置
WO2015155850A1 (ja) * 2014-04-09 2015-10-15 株式会社日立製作所 入出力装置及び方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448910B (zh) * 2022-04-11 2022-08-09 广州世炬网络科技有限公司 5g基站的转发方法、5g基站***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63293657A (ja) * 1987-05-27 1988-11-30 Hitachi Ltd シリアル通信制御装置
JPH04177445A (ja) * 1990-11-08 1992-06-24 Nec Corp ディスクリプタ制御方式
JP2001331440A (ja) * 2000-05-22 2001-11-30 Sharp Corp データ受信処理装置
JP2004118419A (ja) * 2002-09-25 2004-04-15 Seiko Epson Corp 半導体装置、マイクロコンピュータ、電子機器、半導体装置の制御方法
JP2005182505A (ja) * 2003-12-19 2005-07-07 Kyocera Mita Corp データ転送制御装置および画像形成装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4956771A (en) * 1988-05-24 1990-09-11 Prime Computer, Inc. Method for inter-processor data transfer
US5797037A (en) * 1995-03-31 1998-08-18 Cirrus Logic, Inc. Interrupt request control logic reducing the number of interrupts required for I/O data transfer
US5935220A (en) * 1996-08-09 1999-08-10 Motorola Inc. Apparatus and method for high speed data and command transfer over an interface
JP2002140286A (ja) 2000-10-31 2002-05-17 Ricoh Co Ltd 情報処理装置及びdma転送方法
US7216186B2 (en) * 2001-09-27 2007-05-08 Intel Corporation Controlling data flow between processor systems
US7353362B2 (en) * 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US7111092B1 (en) * 2004-04-16 2006-09-19 Cisco Technology, Inc. Buffer management technique for a hypertransport data path protocol
US7831749B2 (en) * 2005-02-03 2010-11-09 Solarflare Communications, Inc. Including descriptor queue empty events in completion events
US7987306B2 (en) * 2005-04-04 2011-07-26 Oracle America, Inc. Hiding system latencies in a throughput networking system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63293657A (ja) * 1987-05-27 1988-11-30 Hitachi Ltd シリアル通信制御装置
JPH04177445A (ja) * 1990-11-08 1992-06-24 Nec Corp ディスクリプタ制御方式
JP2001331440A (ja) * 2000-05-22 2001-11-30 Sharp Corp データ受信処理装置
JP2004118419A (ja) * 2002-09-25 2004-04-15 Seiko Epson Corp 半導体装置、マイクロコンピュータ、電子機器、半導体装置の制御方法
JP2005182505A (ja) * 2003-12-19 2005-07-07 Kyocera Mita Corp データ転送制御装置および画像形成装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015502590A (ja) * 2011-10-27 2015-01-22 ▲ホア▼▲ウェイ▼技術有限公司 高速データ配布のための方法および装置
US9774651B2 (en) 2011-10-27 2017-09-26 Huawei Technologies Co., Ltd. Method and apparatus for rapid data distribution
WO2015155850A1 (ja) * 2014-04-09 2015-10-15 株式会社日立製作所 入出力装置及び方法
US10013372B2 (en) 2014-04-09 2018-07-03 Hitachi, Ltd. Input/output apparatus and method

Also Published As

Publication number Publication date
US20090049225A1 (en) 2009-02-19
US8151015B2 (en) 2012-04-03

Similar Documents

Publication Publication Date Title
US7627697B2 (en) Device using multiple DMA controllers for transferring data between a storage device and multiple processing units
TW200842593A (en) Content-terminated DMA
JP2009277096A (ja) Dma制御システム、印刷装置、および転送指示プログラム
JP5287301B2 (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
JP2006209778A (ja) ダイレクトメモリアクセスの実現方法および装置、ダイレクトメモリアクセスコンピュータシステム
JP4373255B2 (ja) ダイレクトメモリアクセス制御装置および方法
JP4014876B2 (ja) 多機能電子周辺カード
JP2009048298A (ja) 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体
JP2008282314A (ja) シミュレータ、シミュレーション方法
JP4843554B2 (ja) インターフェイスボード、シミュレータ、同期方法、同期プログラム
JP3803196B2 (ja) 情報処理装置、情報処理方法および記録媒体
JP5651622B2 (ja) データ伝送装置、データ伝送方法、及びプログラム
JP2018106222A (ja) 情報処理装置及び通信制御方法
JPH10334037A (ja) 通信dma装置
JP2019220787A (ja) 制御装置、画像形成装置、制御方法及び制御プログラム
JP2007334555A (ja) データ転送装置と電子装置
KR100633742B1 (ko) 주변 장치로부터 데이터 전송 크기를 자동으로 갱신하는직접 메모리 액세스 제어 장치 및 방법
JP2011081695A (ja) データ演算装置の制御回路及びデータ演算装置
US9110856B2 (en) Interface control apparatus, data storage apparatus and method for interface control
JP2007188434A (ja) 画像処理装置
JP2005258783A (ja) データ転送装置、データ転送方法、画像形成装置及びオプションボード
JP2007280373A (ja) データ処理装置、画像処理装置、画像形成装置及びコンピュータプログラム
JP5482302B2 (ja) 情報処理装置、及び、情報処理方法
JP2005190496A (ja) データ転送方法及び装置
JP2008310547A (ja) 画像形成装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090904

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100319

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110914

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120124