JP2006338353A - 情報処理装置および情報処理方法、並びにプログラム - Google Patents
情報処理装置および情報処理方法、並びにプログラム Download PDFInfo
- Publication number
- JP2006338353A JP2006338353A JP2005162587A JP2005162587A JP2006338353A JP 2006338353 A JP2006338353 A JP 2006338353A JP 2005162587 A JP2005162587 A JP 2005162587A JP 2005162587 A JP2005162587 A JP 2005162587A JP 2006338353 A JP2006338353 A JP 2006338353A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- data
- information
- descriptor
- cpu
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】割込処理を簡素化し、割込処理に要する時間を削減する。
【解決手段】ステップS52において、ネットワークカードポインタとCPUクリアポインタが一致しない、即ち実行されたDMA転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域があると判定された場合、ステップS53に進み、割込発生部は、割込ステータスを完了ステータスに設定し、ステップS54に進む。ステップS54において、割込発生部は、割込信号を発生する。一方、ステップS52において、実行されたDAM転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域がないと判定された場合、ステップS55に進み、割込発生部は、完了ステータスを解除する。本発明は、例えば、ネットワークカードに適用することができる。
【選択図】図9
【解決手段】ステップS52において、ネットワークカードポインタとCPUクリアポインタが一致しない、即ち実行されたDMA転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域があると判定された場合、ステップS53に進み、割込発生部は、割込ステータスを完了ステータスに設定し、ステップS54に進む。ステップS54において、割込発生部は、割込信号を発生する。一方、ステップS52において、実行されたDAM転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域がないと判定された場合、ステップS55に進み、割込発生部は、完了ステータスを解除する。本発明は、例えば、ネットワークカードに適用することができる。
【選択図】図9
Description
本発明は、情報処理装置および情報処理方法、並びにプログラムに関し、特に、割込処理を簡素化し、割込処理に要する時間を削減することができるようにする情報処理装置および情報処理方法、並びにプログラムに関する。
図1は、ディスクリプタ70(図3)を用いてDMA(Direct Memory Access)転送を行うネットワークカードを備えたパーソナルコンピュータ(以下、パソコンという)1の一例を示すブロック図である。
図1に示されるように、CPU(Central Processing Unit)11は、バス14を介して、ROM(Read Only Memory)12とRAM(Random Access Memory)13に接続される。CPU11は、ROM12に記憶されているプログラム、または記録部18に記録されているプログラムにしたがって各種の処理を実行する。
例えば、CPU11は、RAM13のディスクリプタ領域31(後述する)に、DMA転送の対象とする、RAM13のパケット領域32に記憶されているパケットのアドレスなどを、ディスクリプタ70として記憶させることにより、ネットワークカード19に、そのパケットをDMA転送させる。即ち、ディスクリプタ70は、ネットワークカード19にDMA転送処理を実行させるための情報である。
また、CPU11は、次にディスクリプタ70を記憶させるディスクリプタ領域31のアドレスを表すCPUセットポインタを、RAM13のポインタ情報領域33に記憶させる。CPU11は、ネットワークカード19から供給される割込信号に応じて、ネットワークカード19に記憶されている、割込信号の発生原因(ステータス)を表す割込ステータスに対応する割込処理として、例えば、ネットワークカード19により既に実行されたDMA転送処理に対応するディスクリプタ70で利用したRAM13(のパケット領域32)に対して、解放などのDMA転送完了処理を行う。そして、CPU11は、DMA転送完了処理が行われたパケット領域32に対応するディスクリプタ70の次のディスクリプタ70(次にDMA転送完了処理の対象とするパケット領域32に対応するディスクリプタ70)のアドレスを表すCPUクリアポインタを、RAM13のポインタ情報領域33に記憶させる。CPU11は、ネットワークカード19に記憶されている割込ステータスをクリア(解除)する。
RAM13は、ディスクリプタ70が記憶されるディスクリプタ領域31、DMA転送の対象となるパケットが記憶されるパケット領域32、およびCPUセットポインタとCPUクリアポインタがポインタ情報として記憶されるポインタ情報領域33などから構成される。
CPU11にはまた、バス14を介して入出力インターフェース15が接続されている。入出力インターフェース15には、キーボード、マウスなどよりなる入力部16、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)ディスプレイなどよりなる出力部17が接続されている。CPU11は、入力部16から入力される指令に対応して各種の処理を実行する。そして、CPU11は、処理の結果得られた画像や音声などを出力部17に出力する。
入出力インターフェース15に接続されている記録部18は、例えば、ハードディスクなどで構成され、CPU11が実行するプログラムや各種のデータを記録する。ネットワークカード19は、DMA転送を行う。具体的には、ネットワークカード19は、RAM13のディスクリプタ領域31に記憶されるディスクリプタ70に基づいて、RAM13のパケット領域32に記憶されるパケットを読み出し、そのパケットを、図示せぬネットワークを介して他の装置に送信する。また、ネットワークカード19は、図示せぬネットワークを介して、パケットを受信し、RAM13に記憶させる。
なお、以下では、ネットワークカード19がDMA転送を行い、その結果得られるパケットを送信する場合についてのみ説明するが、パケットの受信についても同様に行われる。
入出力インターフェース15に接続されているドライブ20は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア21が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部18に転送され、記録される。
図2は、図1のネットワークカード19の機能的構成例を示すブロック図である。
図2のネットワークカード19は、ディスクリプタ情報保持部51、ディスクリプタ制御部52、パケット通信部53、割込発生部54、および割込ステータス保持部55から構成される。
ディスクリプタ情報保持部51には、RAM13のディスクリプタ領域31の先頭アドレス(以下、ディスクリプタ先頭アドレスという)とディスクリプタ領域31に記憶可能なディスクリプタ数とが予め保持(記憶)されている。これにより、ディスクリプタ制御部52は、ディスクリプタ先頭アドレスとディスクリプタ数に基づいて、RAM13のディスクリプタ領域31にアクセスすることができる。
また、ディスクリプタ情報保持部51には、図1のCPU11からポインタ情報領域33に記憶されているポインタ情報であるCPUセットポインタとCPUクリアポインタが供給され、保持される。
さらに、ディスクリプタ情報保持部51は、ディスクリプタ制御部52から供給される、既に実行されたDMA転送処理に対応するディスクリプタ70の次のディスクリプタ70のアドレス(次に実行するDMA転送処理に対応するディスクリプタ70)を表すネットワークカードポインタを記憶する。なお、まだ何も処理が行われていない場合、ディスクリプタ制御部52は、ディスクリプタ情報保持部51からディスクリプタ先頭アドレスを読み出し、そのディスクリプタ先頭アドレスをネットワークカードポインタとしてディスクリプタ情報保持部51に供給し、記憶させる。また、ディスクリプタ情報保持部51は、CPU11からの要求に応じて、ネットワークカードポインタをCPU11に供給する。
ディスクリプタ制御部52は、ディスクリプタ情報保持部51からネットワークカードポインタとCPUセットポインタとを読み出し、そのネットワークカードポインタとCPUセットポインタに基づいて、実行対象とするDMA転送処理に対応するディスクリプタ70を決定する。
ディスクリプタ制御部52は、そのディスクリプタ70をディスクリプタ領域31から読み出し、そのディスクリプタ70に基づいて、パケット領域32からDMA転送の対象とするパケットを読み出し、そのパケットを、パケット通信部53に供給することにより、DMA転送処理を行う。
また、ディスクリプタ制御部52は、パケット通信部53から供給されるDMA転送処理の完了を表す完了情報に応じて、ディスクリプタ情報保持部51に記憶されるネットワークカードポインタを更新するとともに、割込発生部54にDMA転送処理の完了を通知する。
パケット通信部53は、図示せぬネットワークを介して、ディスクリプタ制御部52からのパケットを、他の装置に送信する。また、パケット通信部53は、ディスクリプタ制御部52からのパケットに応じて、完了情報をディスクリプタ制御部52に供給する。
割込発生部54は、ディスクリプタ制御部52からのDMA転送処理の完了の通知に応じて、割込信号を発生させ、CPU11に供給する。また、割込発生部54は、その通知に応じて、割込ステータス保持部55に記憶される割込ステータスを、割込信号の発生原因がディスクリプタ70に対応するDMA転送処理の完了であることを表す割込ステータス(以下、完了ステータスという)に更新させる。
割込ステータス保持部55は、割込ステータスを保持する。割込ステータス保持部55は、割込発生部54の制御により、割込ステータスを、完了ステータスに設定(更新)する。また、割込ステータス保持部55は、CPU11からの要求に応じて、完了ステータスを解除する。
図3は、図1のディスクリプタ領域31に記憶されるディスクリプタ70の例を示している。
図3に示すように、ディスクリプタ70は、上位アドレス領域71、下位アドレス領域72、予約領域73、およびパケットサイズ領域74から構成される。
上位アドレス領域71または下位アドレス領域72には、それぞれ、DMA転送の対象とするパケットのアドレスのうち、例えば上位32ビットまたは下位32ビットが記憶される。予約領域73は、何も記憶されない空き領域である。パケットサイズ領域74には、DMA転送の対象とするパケットのデータサイズが記憶される。
ディスクリプタ制御部52は、ディスクリプタ70に対応する処理として、パケット領域32の、上位アドレス領域71と下位アドレス領域72に記憶される64ビットのアドレスのパケットを読み出し、パケット通信部53に供給する。
次に、図4を参照して、ディスクリプタ保持部51に保持されるディスクリプタ先頭アドレス、ディスクリプタ数、CPUクリアポインタ、ネットワークカードポインタ、およびCPUセットポインタについて説明する。
なお、ディスクリプタ70には、先頭から順に0から番号が付されており、以下では、番号がiのディスクリプタ70を、ディスクリプタ#iという。
図4のディスクリプタ領域31は、RAM13上に連続して並べられた、n+1個のディスクリプタ#0乃至ディスクリプタ#nそれぞれが記憶されるディスクリプタ領域91−0乃至91−nから構成される。即ち、図2のディスクリプタ情報保持部51に保持される、ディスクリプタ領域31に記憶可能なディスクリプタ数は、n+1である。また、ディスクリプタ情報保持部51には、ディスクリプタ#0のアドレスが、ディスクリプタ先頭アドレスとして記憶される。
図4では、CPU11は、ディスクリプタ#0乃至ディスクリプタ#4を生成し、それぞれをディスクリプタ領域91−0乃至91−4に記憶させる。CPU11は、次に生成するディスクリプタ#5を記憶させるディスクリプタ領域91−5のアドレスを、CPUセットポインタとして、ディスクリプタ情報保持部51に記憶させる。
ディスクリプタ制御部52は、ディスクリプタ#0乃至#3に対応する処理として、ディスクリプタ#0乃至#3に基づいて、パケット領域32からDMA転送の対象とするパケットを読み出し、そのパケットをパケット通信部53に供給することにより、DMA転送を行う。
ディスクリプタ制御部52は、パケット通信部53がDMA転送の完了に応じて供給する、ディスクリプタ#0乃至#3に対応するDMA転送処理の完了を表す完了情報に応じて、次に実行するDMA転送処理に対応するディスクリプタ#4のアドレスを、ネットワークカードポインタとしてディスクリプタ情報保持部51に記憶させる。
なお、CPUセットポインタとネットワークカードポインタとの間のディスクリプタ領域91−4に記憶されるディスクリプタ#4が、CPU11により記憶されているが、まだディスクリプタ制御部52により実行されていないDMA転送処理に対応するディスクリプタ70である。
また、CPU11は、割込発生部54による割込信号に応じて、ディスクリプタ制御部52により実行されたDMA転送処理に対応するディスクリプタ70であるディスクリプタ#0の上位アドレス領域71、下位アドレス領域72、およびパケットサイズ領域74で指定されたRAM13(のパケット領域32)に対して、解放などのDMA転送完了処理を行う。CPU11は、次にDMA転送完了処理の対象とするパケット領域32に対応するディスクリプタ#1のアドレスを、CPUクリアポインタとして、ディスクリプタ情報保持部51に記憶させる。
次に、図5を参照して、パソコン1による割込処理について説明する。
ステップS11において、ネットワークカード19の割込発生部54は、ディスクリプタ制御部52からのDMA転送処理の完了の通知に応じて、割込信号を発生させ、その割込信号をCPU11に通知(送信)し、ステップS12に進む。
ステップS1において、CPU11は、割込発生部54からの割込信号を受信し、ステップS2に進む。ステップS2において、CPU11は、ネットワークカード19に割込ステータスの読出を要求し、ステップS3に進む。
ステップS12において、ネットワークカード19の割込ステータス保持部55は、CPU11からの割込ステータスの読出の要求を受信し、ステップS13に進む。ステップS13において、割込ステータス保持部55は、割込ステータスの読出の要求に応じて、いま割込ステータスとして保持されている完了ステータスを通知(送信)し、ステップS14に進む。
ステップS3において、CPU11は、割込ステータス保持部55から完了ステータスを受信し、ステップS4に進む。ステップS4において、CPU11は、ネットワークカード19にネットワークカードポインタの読出を要求し、ステップS5に進む。
ステップS14において、ネットワークカード19のディスクリプタ情報保持部51は、CPU11からネットワークカードポインタの読出の要求を受信し、ステップS15に進む。ステップS15において、ディスクリプタ情報保持部51は、ネットワークカードポインタの読出の要求に応じて、保持しているネットワークカードポインタを通知し、ステップS16に進む。
ステップS5において、CPU11は、ディスクリプタ情報保持部51からネットワークカードポインタを受信し、ステップS6に進む。ステップS6において、CPU11は、RAM13のポインタ情報領域33(図1)に記憶されているポインタ情報のCPUクリアポインタを読み出し、そのCPUクリアポインタとディスクリプタ情報保持部51からのネットワークカードポインタとに基づいて、RAM13のディスクリプタ領域91−1乃至91−nのうちのいずれかに対応するパケット領域32に対して、解放などのDMA転送完了処理を行う。
例えば、RAM13のディスクリプタ領域31が、図4に示したディスクリプタ領域31である場合、CPU11は、ネットワークカードポインタであるディスクリプタ#4のアドレスと、CPUクリアポインタであるディスクリプタ#1のアドレスとに基づいて、既にディスクリプタ制御部52により実行されたDMA転送処理に対応するディスクリプタ70が、ディスクリプタ#0乃至#3であり、そのディスクリプタ#0乃至#3に対応するパケット領域32のうちのディスクリプタ#0に対応するパケット領域32に対してのみDMA転送完了処理が行われていることを認識する。
そこで、CPU11は、ディスクリプタ制御部52により既に実行されたDMA転送処理で用いられたパケットに対応し、かつまだDMA転送完了処理が行われていない、ディスクリプタ#1乃至#3の上位アドレス領域71、下位アドレス領域72、パケットサイズ領域74で指定されたRAM13のパケット領域32に対して、解放などのDMA転送完了処理を行う。
以上のように、CPU11は、割込ステータスが完了ステータスである場合、ディスクリプタ制御部52により既に実行されたDMA転送処理に対応するディスクリプタ70で利用したRAM13のパケット領域32に対して、解放などのDMA転送完了処理を行うので、完了ステータスは、既に実行されたDMA転送処理に対応するパケット領域32に対してDMA転送完了処理を行わせるための割込ステータスであるといえる。
ステップS6の処理後は、ステップS7に進み、CPU11は、ステップS6でDMA転送完了処理の対象としたパケット領域32に対応するディスクリプタ領域91−0乃至91−nに応じて、次にDMA転送完了処理の対象とするパケット領域32に対応するディスクリプタ領域91−0乃至91−nのアドレスを、CPUクリアポインタとしてネットワークカード19に送信することにより、CPUクリアポインタの更新を要求する。
ステップS16において、ネットワークカード19のディスクリプタ情報保持部51は、CPU11からCPUクリアポインタを受信し、いま保持しているCPUクリアポインタを、受信したCPUクリアポインタに変更することにより、CPUクリアポインタの更新を行い、ステップS17に進む。
ステップS7の処理後は、ステップS8に進み、CPU11は、割込ステータス保持部55に割込ステータスとして記憶されている完了ステータスの解除を要求し、処理を終了する。
ステップS17において、ネットワークカード19の割込ステータス保持部55は、CPU11からの完了ステータスの解除の要求を受信し、その要求に応じて、完了ステータスを解除する。即ち、割込ステータス保持部55は、保持している割込ステータスをクリアする。
ところで、従来、割込処理を行う装置において、その割込処理を正確に、または効率的に行うための様々な方法が提案されている。例えば、微分回路、積分回路、およびレジスタなどを用いて、非同期なクロックで動作するI/OデバイスとCPUとの間で、割込信号を正確に扱うことを可能とする非同期割込通知回路がある(例えば、特許文献1参照)。
また、フリップフロップを用いて、割込処理を行うプロセッサよりも低周波数で動作している周辺装置に対して、効率的に割込をクリアするロジックユニットがある(例えば、特許文献2参照)。
一般的に、CPU11がバス14を介して行うRAM13へのアクセスに比べて、バス14と入出力インターフェース15を介して行う、ネットワークカード19のディスクリプタ情報保持部51や割込ステータス保持部55などのレジスタへのアクセスは多くの時間を要する。
従って、図5に示したように、CPU11が、割込処理として、ディスクリプタ情報保持部51に保持されているネットワークカードポインタとCPUクリアポインタ、並びに割込ステータス保持部55に保持されている割込ステータスの読出を行う場合、割込処理に多くの時間を要することになる。
そこで、割込処理におけるCPU11のネットワークカード19へのアクセスを削減し、割込処理を簡素化することにより、割込処理に要する時間を削減し、CPU11の負荷を軽減することが望ましい。
本発明は、このような状況に鑑みてなされたものであり、割込処理を簡素化し、割込処理に要する時間を削減することができるようにするものである。
本発明の第1の情報処理装置は、所定のデータを記憶するデータ記憶手段と、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行する実行手段と、割込信号を発生する発生手段と、発生手段により発生される割込信号に応じて、データ記憶手段を解放する解放手段とを備え、発生手段は、実行手段により実行されたデータ処理で用いられたデータに対応し、かつ解放手段により解放されていないデータ記憶手段があるかどうかの判定を行う判定手段と、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する割込制御手段とを備えることを特徴とする。
本発明の第2の情報処理装置は、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行する実行手段と、実行手段により実行されたデータ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があるかどうかの判定を行う判定手段と、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する割込制御手段とを備えることを特徴とする。
この情報処理装置には、実行手段により実行されたデータ処理に対応する処理情報を表す実行処理情報と、既に解放されたデータ記憶手段に対応する処理情報を表す解放処理情報とを記憶する実行解放処理情報記憶手段をさらに設け、判定手段は、実行解放処理情報記憶手段に記憶される実行処理情報と解放処理情報とに基づいて、判定を行うことができる。
処理情報には、その処理情報に対応するデータ処理が実行されたかどうかを表す実行情報が含まれており、実行手段は、処理情報に対応するデータ処理を実行した場合、その処理情報に含まれる実行情報を更新し、判定手段は、実行情報に基づいて、判定を行うことができる。
本発明の情報処理方法は、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行する実行ステップと、実行ステップの処理により実行されたデータ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があるかどうかの判定を行う判定ステップと、判定ステップの処理により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定ステップの処理により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する割込制御ステップとを含むことを特徴とする。
本発明のプログラムは、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行する実行ステップと、実行ステップの処理により実行されたデータ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があるかどうかの判定を行う判定ステップと、判定ステップの処理により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定ステップの処理により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する割込制御ステップとを含むことを特徴とする。
本発明の第1の情報処理装置においては、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行し、実行されたデータ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があるかどうかの判定を行い、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する。また、割込信号に応じて、データ記憶手段を解放する。
本発明の第2の情報処理装置および情報処理方法、並びにプログラムにおいては、データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、データ処理を実行し、実行されたデータ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があるかどうかの判定を行い、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段があると判定された場合、割込信号を発生するとともに、割込信号のステータスを、所定のステータスに設定し、判定手段により、データ処理で用いられたデータに対応し、かつ解放されていないデータ記憶手段がないと判定された場合、所定のステータスを解除する。
本発明によれば、割込処理を簡素化し、割込処理に要する時間を削減することができる。
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の情報処理装置は、
所定のデータを記憶するデータ記憶手段(例えば、図6のパケット領域32)と、
前記データを用いた処理であるデータ処理(例えば、DMA転送処理)を実行させるための処理情報(例えば、図3のディスクリプタ70)に基づいて、前記データ処理を実行する実行手段(例えば、図8のステップS32を実行する図7のディスクリプタ制御部121)と、
割込信号を発生する発生手段(例えば、図7のディスクリプタ制御部121および割込発生部122)と、
前記発生手段により発生される割込信号に応じて、前記データ記憶手段を解放する解放手段(例えば、図6のCPU101)と
を備え、
前記発生手段は、
前記実行手段により実行されたデータ処理で用いられた前記データに対応し、かつ前記解放手段により解放されていない前記データ記憶手段があるかどうかの判定を行う判定手段(例えば、図9のステップS52の処理を実行するディスクリプタ制御部121)と、
前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御手段(例えば、図9のステップS53,S54、およびS55の処理を実行する割込発生部122)と
を備える
ことを特徴とする。
所定のデータを記憶するデータ記憶手段(例えば、図6のパケット領域32)と、
前記データを用いた処理であるデータ処理(例えば、DMA転送処理)を実行させるための処理情報(例えば、図3のディスクリプタ70)に基づいて、前記データ処理を実行する実行手段(例えば、図8のステップS32を実行する図7のディスクリプタ制御部121)と、
割込信号を発生する発生手段(例えば、図7のディスクリプタ制御部121および割込発生部122)と、
前記発生手段により発生される割込信号に応じて、前記データ記憶手段を解放する解放手段(例えば、図6のCPU101)と
を備え、
前記発生手段は、
前記実行手段により実行されたデータ処理で用いられた前記データに対応し、かつ前記解放手段により解放されていない前記データ記憶手段があるかどうかの判定を行う判定手段(例えば、図9のステップS52の処理を実行するディスクリプタ制御部121)と、
前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御手段(例えば、図9のステップS53,S54、およびS55の処理を実行する割込発生部122)と
を備える
ことを特徴とする。
請求項2に記載の情報処理装置は、
所定のデータを記憶するデータ記憶手段(例えば、図6のパケット領域32)を備える他の情報処理装置(例えば、図6のCPU101とRAM13)に割込を行う情報処理装置(例えば、図6のネットワークカード102)において、
前記データを用いた処理であるデータ処理を実行させるための処理情報(例えば、図3のディスクリプタ)に基づいて、前記データ処理を実行する実行手段(例えば、図8のステップS32を実行する図7のディスクリプタ制御部121)と、
前記実行手段により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定手段(例えば、図9のステップS52の処理を実行するディスクリプタ制御部121)と、
前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御手段(例えば、図9のステップS53,S54、およびS55の処理を実行する割込発生部122)と
を備えることを特徴とする。
所定のデータを記憶するデータ記憶手段(例えば、図6のパケット領域32)を備える他の情報処理装置(例えば、図6のCPU101とRAM13)に割込を行う情報処理装置(例えば、図6のネットワークカード102)において、
前記データを用いた処理であるデータ処理を実行させるための処理情報(例えば、図3のディスクリプタ)に基づいて、前記データ処理を実行する実行手段(例えば、図8のステップS32を実行する図7のディスクリプタ制御部121)と、
前記実行手段により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定手段(例えば、図9のステップS52の処理を実行するディスクリプタ制御部121)と、
前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御手段(例えば、図9のステップS53,S54、およびS55の処理を実行する割込発生部122)と
を備えることを特徴とする。
請求項3に記載の情報処理装置は、
前記実行手段により実行されたデータ処理に対応する処理情報を表す実行処理情報(例えば、ネットワークカードポインタ)と、既に解放された前記データ記憶手段に対応する前記処理情報を表す解放処理情報(例えば、CPUクリアポインタ)とを記憶する実行解放処理情報記憶手段(例えば、図7のディスクリプタ情報保持部51)
をさらに備え、
前記判定手段は、前記実行解放処理情報記憶手段に記憶される前記実行処理情報と前記解放処理情報とに基づいて、前記判定を行う(例えば、図9のステップS52の処理)
ことを特徴とする。
前記実行手段により実行されたデータ処理に対応する処理情報を表す実行処理情報(例えば、ネットワークカードポインタ)と、既に解放された前記データ記憶手段に対応する前記処理情報を表す解放処理情報(例えば、CPUクリアポインタ)とを記憶する実行解放処理情報記憶手段(例えば、図7のディスクリプタ情報保持部51)
をさらに備え、
前記判定手段は、前記実行解放処理情報記憶手段に記憶される前記実行処理情報と前記解放処理情報とに基づいて、前記判定を行う(例えば、図9のステップS52の処理)
ことを特徴とする。
請求項4に記載の情報処理装置は、
前記処理情報には、その処理情報に対応する前記データ処理が実行されたかどうかを表す実行情報(例えば、DMA完了ビット)が含まれており、
前記実行手段は、前記処理情報に対応する前記データ処理を実行した場合、その処理情報に含まれる実行情報を更新し(例えば、図15のステップS124の処理)、
前記判定手段は、前記実行情報に基づいて、前記判定を行う(例えば、図16のステップS143の処理)
ことを特徴とする。
前記処理情報には、その処理情報に対応する前記データ処理が実行されたかどうかを表す実行情報(例えば、DMA完了ビット)が含まれており、
前記実行手段は、前記処理情報に対応する前記データ処理を実行した場合、その処理情報に含まれる実行情報を更新し(例えば、図15のステップS124の処理)、
前記判定手段は、前記実行情報に基づいて、前記判定を行う(例えば、図16のステップS143の処理)
ことを特徴とする。
請求項5に記載の情報処理方法は、
所定のデータを記憶するデータ記憶手段(例えば、図6のパケット領域32)を備える他の情報処理装置(例えば、図6のCPU101およびRAM13)に割込を行う情報処理装置(例えば、図6のネットワークカード102)の情報処理方法において、
前記データを用いた処理であるデータ処理(例えば、DMA転送処理)を実行させるための処理情報(例えば、図3のディスクリプタ70)に基づいて、前記データ処理を実行する実行ステップ(例えば、図8のステップS32)と、
前記実行ステップの処理により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定ステップ(例えば、図9のステップS52)と、
前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御ステップ(例えば、図9のステップS53,S54、およびS55)と
を含むことを特徴とする。
所定のデータを記憶するデータ記憶手段(例えば、図6のパケット領域32)を備える他の情報処理装置(例えば、図6のCPU101およびRAM13)に割込を行う情報処理装置(例えば、図6のネットワークカード102)の情報処理方法において、
前記データを用いた処理であるデータ処理(例えば、DMA転送処理)を実行させるための処理情報(例えば、図3のディスクリプタ70)に基づいて、前記データ処理を実行する実行ステップ(例えば、図8のステップS32)と、
前記実行ステップの処理により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定ステップ(例えば、図9のステップS52)と、
前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御ステップ(例えば、図9のステップS53,S54、およびS55)と
を含むことを特徴とする。
請求項6に記載のプログラムは、
所定のデータを記憶するデータ記憶手段(例えば、図6のパケット領域32)を備える情報処理装置(例えば、図6のCPU101およびRAM13)に割込を行う処理を、コンピュータに行わせるプログラムにおいて、
前記データを用いた処理であるデータ処理(例えば、DMA転送処理)を実行させるための処理情報(例えば、図3のディスクリプタ70)に基づいて、前記データ処理を実行する実行ステップ(例えば、図8のステップS32)と、
前記実行ステップの処理により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定ステップ(例えば、図9のステップS52)と、
前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御ステップ(例えば、図9のステップS53,S54、およびS55)と
を含むことを特徴とする。
所定のデータを記憶するデータ記憶手段(例えば、図6のパケット領域32)を備える情報処理装置(例えば、図6のCPU101およびRAM13)に割込を行う処理を、コンピュータに行わせるプログラムにおいて、
前記データを用いた処理であるデータ処理(例えば、DMA転送処理)を実行させるための処理情報(例えば、図3のディスクリプタ70)に基づいて、前記データ処理を実行する実行ステップ(例えば、図8のステップS32)と、
前記実行ステップの処理により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定ステップ(例えば、図9のステップS52)と、
前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御ステップ(例えば、図9のステップS53,S54、およびS55)と
を含むことを特徴とする。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
図6は、本発明を適用したパソコン100の一実施の形態のハードウェア構成例を示すブロック図である。なお、図1と同一のものには、同一の符号を付してあり、説明は省略する。
図6のパソコン100は、ROM12、RAM13、バス14、入出力インターフェース15、入力部16、出力部17、記録部18、ドライブ20、CPU101、およびネットワークカード102から構成され、ディスクリプタ70に基づいて、RAM13に記憶されるパケットを、ネットワークカード102にDMA転送する。
図6のCPU101は、RAM13のディスクリプタ領域31に、DMA転送の対象とする、RAM13のパケット領域32に記憶されているパケットのアドレスなどを、ディスクリプタ70として記憶させることにより、ネットワークカード102に、そのパケットをDMA転送させる。
また、CPU101は、次にディスクリプタ70を記憶させるディスクリプタ領域31のアドレスを表すCPUセットポインタを、RAM13のポインタ情報領域33に記憶させる。CPU101は、ネットワークカード102から供給される割込信号に応じて、ネットワークカード102に記憶されている、完了ステータスに対応する割込処理として、ネットワークカード102により既に実行されたDMA転送処理に対応するディスクリプタ70で利用したRAM13のパケット領域32に対して、解放などのDMA転送完了処理を行う。そして、CPU101は、次にDMA転送完了処理の対象とするパケット領域32に対応するディスクリプタ70のアドレスを表すCPUクリアポインタを、RAM13のポインタ情報領域33に記憶させる。
ネットワークカード102は、DMA転送を行う。具体的には、ネットワークカード102は、RAM13のディスクリプタ領域31に記憶されるディスクリプタ70に基づいて、RAM13のパケット領域32に記憶されるパケットを読み出し、そのパケットを、図示せぬネットワークを介して他の装置に送信する。また、ネットワークカード102は、ネットワークカードポインタとCPUクリアポインタとに基づいて、完了ステータスを解除する。
図7は、図6のネットワークカード102が所定のプログラムを実行することにより有する機能の構成例を示すブロック図である。なお、図2と同一のものには同一の符号を付してある。
図7のディスクリプタ制御部121は、ディスクリプタ情報保持部51からネットワークカードポインタとCPUセットポインタとを読み出し、そのネットワークカードポインタとCPUセットポインタに基づいて、実行対象とするDMA転送処理に対応するディスクリプタ70を決定する。ディスクリプタ制御部121は、そのディスクリプタ70に基づいて、DMA転送の対象とするパケットをパケット領域32から読み出し、パケット通信部53に供給することにより、DMA転送処理を行う。
また、ディスクリプタ制御部121は、パケット通信部53から供給されるDMA転送処理の完了を表す完了情報に応じて、ディスクリプタ情報保持部51に記憶されるネットワークカードポインタを更新するとともに、割込発生部54にDMA転送処理の完了を通知する。
さらに、ディスクリプタ制御部121は、ディスクリプタ情報保持部51からネットワークカードポインタとCPUクリアポインタとを読み出し、そのネットワークカードポインタとCPUクリアポインタに基づいて、完了ステータスの設定または解除を割込発生部122に指示する。
割込発生部122は、ディスクリプタ制御部121からのDMA転送処理の完了の通知に応じて、割込信号を発生させ、CPU101に供給する。また、割込発生部122は、ディスクリプタ制御部121からの完了ステータスの設定または解除の指示に応じて、割込ステータス保持部123に記憶される割込ステータスを完了ステータスに更新させるか、または完了ステータスを解除する。
割込ステータス保持部123は、割込ステータスを保持する。割込ステータス保持部123は、割込発生部122の制御により、割込ステータスを完了ステータスに設定したり、完了ステータスを解除する。
次に、図8を参照して、ネットワークカード102によるDMA転送処理について説明する。このDMA転送処理は、例えば、CPU101から供給されたCPUセットポインタが、ディスクリプタ情報保持部51に保持されたとき、開始される。
ステップS31において、ディスクリプタ制御部121は、ディスクリプタ情報保持部51からネットワークカードポインタとCPUセットポインタとを読み出し、ネットワークカードポインタとCPUセットポインタとが一致するかどうかを判定する。
ステップS31において、ネットワークカードポインタとCPUセットポインタとが一致しないと判定された場合、即ちまだ実行されていないDMA転送処理に対応するディスクリプタ70が存在する場合、ディスクリプタ制御部121は、DMA転送を行う。
具体的には、ディスクリプタ制御部121は、ネットワークカードポインタが表すアドレスに記憶されるディスクリプタ70をRAM13のディスクリプタ領域31から読み出す。そして、ディスクリプタ制御部121は、そのディスクリプタ70の上位アドレス領域71と下位アドレス領域72に記憶されているアドレスに基づいて、RAM13のパケット領域32に記憶されているパケットを読み出し、パケット通信部53に供給する。
例えば、ネットワークカードポインタがディスクリプタ#4のアドレスを、CPUセットポインタがディスクリプタ#5のアドレスを表している場合、ディスクリプタ制御部121は、ディスクリプタ#4を読み出しパケット通信部53に供給することにより、DMA転送処理を行う。
ステップS32の処理後は、ステップS33に進み、ディスクリプタ制御部121は、ディスクリプタ情報保持部51に記憶されているネットワークカードポインタを、ステップS32で行われたDMA転送処理に対応するディスクリプタ70の次のアドレス、即ちいまネットワークカードポインタが表しているアドレスに記憶されるディスクリプタ70の、次のディスクリプタ70のアドレスに更新し、ステップS31に戻る。
また、ステップS31において、ネットワークカードポインタとCPUセットポインタが一致すると判定された場合、即ちディスクリプタ領域31に記憶されているすべてのディスクリプタ70に対応するDMA転送処理が実行された場合、処理は終了する。
次に、図9を参照して、ネットワークカード102による割込発生処理について説明する。この割込発生処理は、例えば、CPU101の要求に応じて、ディスクリプタ情報保持部51に保持されているCPUクリアポインタまたはネットワークカードポインタの更新が行われたとき、開始される。
ステップS51において、ディスクリプタ制御部121は、ディスクリプタ情報保持部51からネットワークカードポインタとCPUクリアポインタを読み出し、ステップS52に進む。
ステップS52において、ディスクリプタ制御部121は、ステップS51で読み出したネットワークカードポインタとCPUクリアポインタとが一致するかどうかを判定し、一致しないと判定した場合、即ちディスクリプタ制御部121により実行されたDMA転送処理で用いられたパケットに対応し、かつCPU101によりDMA転送完了処理が行われていないパケット領域32がある場合、割込発生部122に完了ステータスの設定を指示し、ステップS53に進む。
ステップS53において、割込発生部122は、ディスクリプタ制御部121からの完了ステータスの設定の指示に応じて、割込ステータス保持部123に保持される割込ステータスを、完了ステータスに設定(更新)し、ステップS54に進む。
ステップS54において、割込発生部122は、割込ステータスが完了ステータスである割込信号を発生させて、その割込信号を通知する。即ち、割込発生部122は、ディスクリプタ制御部121により実行されたDMA転送処理に対応するディスクリプタ70で利用したパケット領域32に対して、解放などのDMA転送完了処理を行わせるための割込信号を通知する。
一方、ステップS52において、ネットワークカードポインタとCPUクリアポインタとが一致すると判定された場合、ディスクリプタ制御部121は、完了ステータスの解除を割込発生部122に指示し、ステップS55に進む。
ステップS55において、割込発生部122は、ディスクリプタ制御部121からの完了ステータスの解除の指示に応じて、完了ステータスを解除し、処理を終了する。
次に、図10を参照して、CPU101によるRAM解放処理を説明する。このRAM解放処理は、例えば、ネットワークカード102から割込信号が供給され、割込ステータスが完了ステータスであるとき、開始される。
ステップS71において、CPU101は、RAM13のポインタ情報領域33から、CPUクリアポインタを読み出し、ステップS72に進む。
ステップS72において、CPU101は、ネットワークカード102にネットワークカードポインタの読出を要求し、ステップS73に進む。
ステップS73において、CPU101は、ネットワークカードポインタの読出の要求に応じてディスクリプタ情報保持部51から送信されてくるネットワークカードポインタを受信したかどうかを判定し、受信していない場合、受信するまで待機する。
一方、ステップS73において、ネットワークカードポインタを受信したと判定された場合、ステップS74に進み、CPU101は、そのネットワークカードポインタと、ステップS71で読み出されたCPUクリアポインタとが一致するかどうかを判定する。
ステップS74において、ネットワークカードポインタとCPUクリアポインタとが一致しないと判定された場合、ステップS75に進み、CPU101は、CPUクリアポインタが表すアドレスに記憶されるディスクリプタ70で利用したRAM13のパケット領域32に対して、解放などのDMA転送完了処理を行い、ステップS76に進む。
ステップS76において、CPU101は、RAM13のポインタ情報領域33に記憶されているCPUクリアポインタを、ステップS75でDMA転送完了処理が行われたパケット領域32に対応するディスクリプタ70の次のアドレス、即ちいまCPUクリアポインタが表すアドレスの次のアドレスを表すCPUクリアポインタに更新し、ステップS74に戻る。
また、ステップS74において、ネットワークカードポインタとCPUクリアポインタとが一致すると判定された場合、ステップS77に進み、CPU102は、そのCPUクリアポインタをディスクリプタ情報保持部51に供給することにより、ディスクリプタ情報保持部51にCPUクリアポインタの更新を要求し、処理を終了する。
次に、図11を参照して、パソコン100による割込処理について説明する。
ステップS101において、ネットワークカード102は、図9のステップS51乃至S54の処理を行い、割込信号をCPU101に通知し、ステップS102に進む。
ステップS91乃至S95の処理は、図5のステップS1乃至S5の処理と同様であるので、説明は省略する。また、ステップS102乃至S105の処理は、図5のステップS12乃至S15の処理と同様であるので、説明は省略する。
ステップS95の処理後は、ステップS96に進み、CPU101は、図10のステップS71乃至S76の処理を行い、RAM13のパケット領域32を解放し、ステップS97に進む。
ステップS97において、CPU101は、図10のステップS77の処理を行い、CPUクリアポインタの更新を要求し、処理を終了する。
ステップS105の処理後は、ステップS106に進み、ネットワークカード102のディスクリプタ情報保持部51は、CPU101からのCPUクリアポインタを受信し、いま保持しているCPUクリアポインタを、受信したCPUクリアポインタに変更することにより、CPUクリアポインタの更新を行う。そして、ネットワークカード102は、図9のステップS51,S52、およびS55の処理を行い、完了ステータスを解除する。
以上のように、パソコン100では、ディスクリプタ制御部221がネットワークカードポインタとCPUクリアポインタが一致するかどうか、即ち既に実行されたDMA転送処理で用いられたパケットに対応し、かつCPU101によりまだDMA転送完了処理が行われていないパケット領域32が存在するかどうかを判定し、そのパケット領域32が存在しない場合、割込発生部122が完了ステータスを解除するので、CPU102がネットワークカード102にアクセスして、完了ステータスの解除を要求する必要がない。その結果、パソコン100では、図5で説明した従来の場合に比べて、割込処理を簡素化し、割込処理に要する時間を削減することができる。
図12は、本発明を適用したパソコン100の他の一実施の形態のハードウェア構成例を示すブロック図である。なお、図6と同一のものには、同一の符号を付してあり、説明は省略する。
なお、図12のパソコン100で用いられるディスクリプタ240(後述する図14)には、そのディスクリプタ240に対応するDMA転送処理の実行が完了した(実行された)かどうかを表すDMA完了ビットが含まれている。例えば、ディスクリプタ240のDMA完了ビットは、そのディスクリプタ240に対応するDMA転送処理の実行が完了した場合、「1」に設定され、まだDMA転送処理の実行が完了していない場合、「0」に設定される。
図12のパソコン100は、ROM12、バス14、入出力インターフェース15、入力部16、出力部17、記録部18、ドライブ20、CPU201、RAM202およびネットワークカード203から構成され、ディスクリプタ240に基づいて、RAM202に記憶されるパケットを、ネットワークカード203にDMA転送する。
図12のCPU201は、図6のCPU101と同様に、RAM202のディスクリプタ領域211に、DMA転送の対象とする、RAM202のパケット領域32に記憶されているパケットのアドレスなどを、ディスクリプタ240として記憶させることにより、ネットワークカード102に、そのパケットをDMA転送させる。
また、CPU201は、CPUセットポインタを、RAM202のポインタ情報領域33に記憶させる。CPU201は、ネットワークカード203から供給される割込信号に応じて、ネットワークカード203に記憶されている、完了ステータスに対応する割込処理として、ネットワークカード203により既に実行されたDMA転送処理に対応するディスクリプタ240で利用したパケット領域32に対して、解放などのDMA転送完了処理を行う。そして、CPU201は、CPUクリアポインタを、RAM202のポインタ情報領域33に記憶させる。
RAM202は、パケット領域32、ポインタ情報領域33、およびディスクリプタ240が記憶されるディスクリプタ領域211などから構成される。
ネットワークカード203は、図6のネットワークカード102と同様に、DMA転送を行う。また、ネットワークカード203は、完了したDMA転送処理に対応するディスクリプタ240のDAM完了ビットを、DMA転送処理が完了したことを表す「1」に設定する。さらに、ネットワークカード203は、ネットワークカードポインタとCPUクリアポインタとに基づいて、完了ステータスを解除する。
図13は、図12のネットワークカード203の詳細構成例を示すブロック図である。なお、図7と同一のものには同一の符号を付してある。
図13のディスクリプタ制御部221は、図7のディスクリプタ制御部121と同様に、ディスクリプタ情報保持部51からネットワークカードポインタとCPUセットポインタとを読み出し、そのネットワークカードポインタとCPUセットポインタに基づいて、実行対象とするDMA転送処理に対応するディスクリプタ240を決定する。ディスクリプタ制御部221は、そのディスクリプタ240に基づいて、DMA転送の対象とするパケットを、パケット領域32から読み出し、パケット通信部53に供給する。
また、ディスクリプタ制御部221は、パケット通信部53から供給される完了情報に応じて、ディスクリプタ情報保持部51に記憶されるネットワークカードポインタを更新するとともに、割込発生部54にDMA転送処理の完了を通知する。さらに、ディスクリプタ制御部221は、完了情報に応じて、その完了情報が完了を表すDMA転送処理に対応する、ディスクリプタ領域211のディスクリプタ240のDMA完了ビットを「1」に更新する。
ディスクリプタ制御部221は、ディスクリプタ情報保持部51からネットワークカードポインタとCPUクリアポインタとを読み出し、そのネットワークカードポインタとCPUクリアポインタに基づいて、完了ステータスの設定または解除を割込発生部122に指示する。
次に、図14を参照して、図12のディスクリプタ領域211に記憶されるディスクリプタ240の例について説明する。なお、図3と同一のものには同一の符号を付してある。
図14のディスクリプタ240は、上位アドレス領域71、下位アドレス領域72、予約領域73、パケットサイズ領域74、および完了ビット領域241から構成される。
完了ビット領域241には、DMA完了ビットが記憶される。なお、CPU202がディスクリプタ240を作成するとき、DMA完了ビット領域241には、DMA完了ビットとして、そのディスクリプタ240に対応するDMA転送処理が完了していないことを表す「0」が記憶されている。
ディスクリプタ制御部221は、パケット通信部53からの完了情報に応じて、その完了情報が完了を表すDMA転送処理に対応する、ディスクリプタ領域211のディスクリプタ240のDMA完了ビットを「0」から「1」に更新する。
次に、図15を参照して、ネットワークカード203によるDMA転送処理について説明する。このDMA転送処理は、例えば、CPU201から供給されたCPUセットポインタが、ディスクリプタ情報保持部51に保持されたとき、開始される。
ステップS121乃至S123の処理は、図8のステップS31乃至S33の処理と同様であるので、説明は省略する。
ステップS123の処理後は、ステップS124に進み、ディスクリプタ制御部221は、ステップS122で行われたDAM転送処理に対応するディスクリプタ240のDMA完了ビットを「1」に設定し、ステップS121に戻る。
次に、図16を参照して、CPU201によるRAM解放処理を説明する。このRAM解放処理は、例えば、ネットワークカード203から割込信号が供給され、割込ステータスが完了ステータスであるとき、開始される。
ステップS141において、CPU201は、RAM202のポインタ情報領域33から、ポインタ情報であるCPUセットポインタとCPUクリアポインタを読み出し、ステップS142に進む。
ステップS142において、CPU201は、CPUクリアポインタが表すアドレスに記憶されるディスクリプタ240をDMA転送完了処理候補として、ディスクリプタ領域211から読み出し、ステップS143に進む。
ステップS143において、CPU201は、DMA転送完了処理候補であるディスクリプタ240の完了ビット領域241に記憶されているDMA完了ビットが「1」であるかどうかを判定し、DMA完了ビットが「1」であると判定した場合、即ちDMA転送完了処理候補であるディスクリプタ240が、既にネットワークカード203により実行されたDMA転送処理に対応し、かつ、そのディスクリプタ240で利用したパケット領域32に対して、まだDMA転送完了処理が行われていない場合、ステップS144に進む。
ステップS144において、CPU201は、DMA転送完了処理候補であるディスクリプタ240に対応するパケット領域32に対して、解放などのDMA転送完了処理を行い、ステップS145に進む。
ステップS145において、CPU201は、RAM202のポインタ情報領域33に記憶されているCPUクリアポインタを、ステップS144でDMA転送完了処理が行われたパケット領域32に対応するディスクリプタ240の次のディスクリプタ240のアドレスに更新し、ステップS146に進む。
ステップS146において、CPU201は、ステップS145で更新したCPUクリアポインタと、CPUセットポインタとが一致するかどうかを判定し、CPUクリアポインタとCPUセットポインタとが一致しない場合、ステップS142に戻る。
一方、ステップS143において、DMA完了ビットが「1」ではないと判定された場合、またはステップS146において、CPUクリアポインタとCPUセットポインタとが一致すると判定された場合、ステップS147に進み、CPU102は、図10のステップS77と同様に、RAM202のポインタ情報領域33に記憶されているCPUクリアポインタを読み出し、ディスクリプタ情報保持部51に供給することにより、ディスクリプタ情報保持部51にCPUクリアポインタの更新を要求し、処理を終了する。
次に、図17を参照して、図12のパソコン100による割込処理について説明する。
ステップS181乃至S183の処理は、図11のステップS101乃至S103の処理と同様であるので説明は省略する。また、ステップS161乃至S163の処理は、図11のステップS91乃至S93の処理と同様であるので説明は省略する。
ステップS164において、CPU201は、図16のステップS141乃至S146の処理を行い、RAM202のパケット領域32を解放し、ステップS165に進む。
ステップS165において、CPU201は、図16のステップS147の処理を行い、図11のステップS97と同様に、CPUクリアポインタの更新を要求し、処理を終了する。
ステップS183の処理後は、ステップS184に進み、ネットワークカード203のディスクリプタ情報保持部51は、図11のステップS106と同様に、CPU201からのCPUクリアポインタを受信し、CPUクリアポインタの更新を行う。そして、ネットワークカード203は、図9のステップS51,S52、およびS55の処理を行い、完了ステータスを解除する。
以上のように、図12のパソコン100では、ディスクリプタ240の完了ビット領域241にDMA完了ビットが記憶されるので、CPU201がネットワークカード203にアクセスして、ネットワークカードポインタの読出を要求する必要がない。その結果、図12のパソコン100では、図6のパソコン100に比べて、さらに割込処理を簡素化し、割込処理に要する時間を削減することができる。
また、ディスクリプタ70または240を用いてDMA転送を行うデバイスは、ネットワークカード102または203に限定されず、例えばデータストレージなどであってもよい。
以上のように、ネットワークカード102(203)では、ディスクリプタ制御部121(221)が、実行されたDMA転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域32があるかどうかの判定を行い、実行されたDMA転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域32があると判定した場合、割込発生部122に、割込信号を発生させるとともに、割込ステータスを完了ステータスに設定させ、実行されたDMA転送処理で用いられたパケットに対応し、かつDMA転送完了処理が行われていないパケット領域32がないと判定された場合、割込発生部122に、完了ステータスを解除させるようにしたので、割込処理を簡素化し、割込処理に要する時間を削減することができる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1台のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
13 RAM, 31 ディスクリプタ領域, 32 パケット領域, 33 ポインタ情報領域, 51 ディスクリプタ情報保持部, 53 パケット通信部, 100 パーソナルコンピュータ, 101 CPU, 102 ネットワークカード, 121 ディスクリプタ制御部, 122 割込発生部, 123 割込ステータス保持部, 201 CPU, 202 RAM, 211 ディスクリプタ領域, 203 ネットワークカード, 221 ディスクリプタ制御部, 240 ディスクリプタ, 241 完了ビット領域
Claims (6)
- 所定のデータを記憶するデータ記憶手段と、
前記データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、前記データ処理を実行する実行手段と、
割込信号を発生する発生手段と、
前記発生手段により発生される割込信号に応じて、前記データ記憶手段を解放する解放手段と
を備え、
前記発生手段は、
前記実行手段により実行されたデータ処理で用いられた前記データに対応し、かつ前記解放手段により解放されていない前記データ記憶手段があるかどうかの判定を行う判定手段と、
前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御手段と
を備える
ことを特徴とする情報処理装置。 - 所定のデータを記憶するデータ記憶手段を備える他の情報処理装置に割込を行う情報処理装置において、
前記データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、前記データ処理を実行する実行手段と、
前記実行手段により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定手段と、
前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定手段により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御手段と
を備えることを特徴とする情報処理装置。 - 前記実行手段により実行されたデータ処理に対応する処理情報を表す実行処理情報と、既に解放された前記データ記憶手段に対応する前記処理情報を表す解放処理情報とを記憶する実行解放処理情報記憶手段
をさらに備え、
前記判定手段は、前記実行解放処理情報記憶手段に記憶される前記実行処理情報と前記解放処理情報とに基づいて、前記判定を行う
ことを特徴とする請求項2に記載の情報処理装置。 - 前記処理情報には、その処理情報に対応する前記データ処理が実行されたかどうかを表す実行情報が含まれており、
前記実行手段は、前記処理情報に対応する前記データ処理を実行した場合、その処理情報に含まれる実行情報を更新し、
前記判定手段は、前記実行情報に基づいて、前記判定を行う
ことを特徴とする請求項2に記載の情報処理装置。 - 所定のデータを記憶するデータ記憶手段を備える他の情報処理装置に割込を行う情報処理装置の情報処理方法において、
前記データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、前記データ処理を実行する実行ステップと、
前記実行ステップの処理により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定ステップと、
前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御ステップと
を含むことを特徴とする情報処理方法。 - 所定のデータを記憶するデータ記憶手段を備える情報処理装置に割込を行う処理を、コンピュータに行わせるプログラムにおいて、
前記データを用いた処理であるデータ処理を実行させるための処理情報に基づいて、前記データ処理を実行する実行ステップと、
前記実行ステップの処理により実行されたデータ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があるかどうかの判定を行う判定ステップと、
前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段があると判定された場合、前記割込信号を発生するとともに、前記割込信号のステータスを、所定のステータスに設定し、前記判定ステップの処理により、前記データ処理で用いられた前記データに対応し、かつ解放されていない前記データ記憶手段がないと判定された場合、前記所定のステータスを解除する割込制御ステップと
を含むことを特徴とするプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005162587A JP2006338353A (ja) | 2005-06-02 | 2005-06-02 | 情報処理装置および情報処理方法、並びにプログラム |
TW095116604A TW200710665A (en) | 2005-06-02 | 2006-05-10 | Information processing device, information processing method, and program |
PCT/JP2006/310547 WO2006137242A1 (ja) | 2005-06-02 | 2006-05-26 | 情報処理装置および情報処理方法、並びにプログラム |
US11/916,183 US8028114B2 (en) | 2005-06-02 | 2006-05-26 | Information processing apparatus, method, and program for simplifying an interrupt process |
CNB2006800193027A CN100557587C (zh) | 2005-06-02 | 2006-05-26 | 信息处理装置和信息处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005162587A JP2006338353A (ja) | 2005-06-02 | 2005-06-02 | 情報処理装置および情報処理方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006338353A true JP2006338353A (ja) | 2006-12-14 |
Family
ID=37558859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005162587A Pending JP2006338353A (ja) | 2005-06-02 | 2005-06-02 | 情報処理装置および情報処理方法、並びにプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US8028114B2 (ja) |
JP (1) | JP2006338353A (ja) |
CN (1) | CN100557587C (ja) |
TW (1) | TW200710665A (ja) |
WO (1) | WO2006137242A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2011370439B2 (en) | 2011-10-27 | 2015-12-03 | Huawei Technologies Co., Ltd. | Method and apparatus for rapid data distribution |
JP2018116550A (ja) * | 2017-01-19 | 2018-07-26 | Necプラットフォームズ株式会社 | 転送制御装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09223091A (ja) * | 1995-07-07 | 1997-08-26 | Sun Microsyst Inc | バースト高速ネットワーク・トラフィックを受信するための割込み調整器 |
JPH11327938A (ja) * | 1998-05-20 | 1999-11-30 | Oki Data Corp | フロー制御方法 |
JP2004302680A (ja) * | 2003-03-28 | 2004-10-28 | Internatl Business Mach Corp <Ibm> | 情報処理装置、割込制御装置、制御方法、及びこれらのプログラムと記録媒体 |
JP2005078596A (ja) * | 2003-09-03 | 2005-03-24 | Hitachi Ltd | データ転送装置の制御方法、データ転送装置、チャネル制御装置、及び記憶デバイス制御装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6163833A (en) * | 1997-12-31 | 2000-12-19 | Daewoo Telecom Ltd. | Memory managing method for use in a data communications system |
US6615302B1 (en) * | 1999-09-15 | 2003-09-02 | Koninklijke Philips Electronics N.V. | Use of buffer-size mask in conjunction with address pointer to detect buffer-full and buffer-rollover conditions in a CAN device that employs reconfigurable message buffers |
JP2001184298A (ja) | 1999-12-27 | 2001-07-06 | Toshiba Corp | 非同期割り込み通知回路及び方法 |
GB2368671B (en) | 2000-11-03 | 2004-08-18 | Advanced Risc Mach Ltd | A logic unit and integrated circuit for clearing interrupts |
JP2005056067A (ja) * | 2003-08-01 | 2005-03-03 | Matsushita Electric Ind Co Ltd | Dma転送制御装置 |
US7639743B2 (en) | 2004-03-25 | 2009-12-29 | Sony Corporation | Image decoder and image decoding method and program |
JP5008270B2 (ja) | 2005-04-13 | 2012-08-22 | ソニー株式会社 | 情報処理装置、および情報処理方法 |
JP2006293799A (ja) | 2005-04-13 | 2006-10-26 | Sony Corp | 情報処理装置、および情報処理方法 |
JP4645281B2 (ja) | 2005-04-19 | 2011-03-09 | ソニー株式会社 | 情報処理装置および方法、プログラム、並びに記録媒体 |
JP2007012021A (ja) | 2005-06-01 | 2007-01-18 | Sony Corp | 情報処理装置および情報処理方法、並びにプログラム |
-
2005
- 2005-06-02 JP JP2005162587A patent/JP2006338353A/ja active Pending
-
2006
- 2006-05-10 TW TW095116604A patent/TW200710665A/zh not_active IP Right Cessation
- 2006-05-26 CN CNB2006800193027A patent/CN100557587C/zh not_active Expired - Fee Related
- 2006-05-26 US US11/916,183 patent/US8028114B2/en not_active Expired - Fee Related
- 2006-05-26 WO PCT/JP2006/310547 patent/WO2006137242A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09223091A (ja) * | 1995-07-07 | 1997-08-26 | Sun Microsyst Inc | バースト高速ネットワーク・トラフィックを受信するための割込み調整器 |
JPH11327938A (ja) * | 1998-05-20 | 1999-11-30 | Oki Data Corp | フロー制御方法 |
JP2004302680A (ja) * | 2003-03-28 | 2004-10-28 | Internatl Business Mach Corp <Ibm> | 情報処理装置、割込制御装置、制御方法、及びこれらのプログラムと記録媒体 |
JP2005078596A (ja) * | 2003-09-03 | 2005-03-24 | Hitachi Ltd | データ転送装置の制御方法、データ転送装置、チャネル制御装置、及び記憶デバイス制御装置 |
Also Published As
Publication number | Publication date |
---|---|
US8028114B2 (en) | 2011-09-27 |
TW200710665A (en) | 2007-03-16 |
CN100557587C (zh) | 2009-11-04 |
WO2006137242A1 (ja) | 2006-12-28 |
US20100095037A1 (en) | 2010-04-15 |
CN101189589A (zh) | 2008-05-28 |
TWI349201B (ja) | 2011-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4456490B2 (ja) | Dma装置 | |
EP1094392B1 (en) | Method and apparatus for interfacing with a secondary storage system | |
JP2006209448A (ja) | ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム | |
JP2009277096A (ja) | Dma制御システム、印刷装置、および転送指示プログラム | |
JP2010205083A (ja) | 並列処理プロセッサシステム | |
JP5287301B2 (ja) | ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法 | |
JP2006313478A (ja) | データ転送装置及び半導体集積回路装置 | |
WO2024051122A1 (zh) | 一种PCIe中断处理方法、装置、设备及非易失性可读存储介质 | |
JP2007012021A (ja) | 情報処理装置および情報処理方法、並びにプログラム | |
JP2005275538A (ja) | ダイレクトメモリアクセス制御装置および方法 | |
WO2009098737A1 (ja) | 外部デバイスアクセス装置、その制御方法及びシステムlsi | |
JP2006338353A (ja) | 情報処理装置および情報処理方法、並びにプログラム | |
JPWO2012120573A1 (ja) | デッドロック回避方法、デッドロック回避機構 | |
JP2004078683A (ja) | コンピュータシステムおよび共有メモリ制御方法 | |
JP4502686B2 (ja) | 通信方法及びプロセッサ | |
JP2002532811A (ja) | 楽音データ生成装置および方法、並びに該方法を提供する媒体 | |
JP2007208696A (ja) | 暗号処理回路及び印刷装置 | |
JP2006338533A (ja) | Ecc回路を有するマルチレイヤバスシステム | |
JP2010140440A (ja) | バス調停装置 | |
JP2007233608A (ja) | 割込み制御装置及び割込み制御方法をコンピュータに実行させるためのプログラム。 | |
JP2006309561A (ja) | ダイレクトメモリアクセスコントローラ及びそのデータ転送方法 | |
JP4107278B2 (ja) | プロセッサ制御回路および情報処理装置 | |
JP2005309511A (ja) | 情報処理装置、ステータス取得方法、及びプログラム | |
JP2022080368A (ja) | 計算ノード制御装置、計算ノード制御方法、及び、計算ノード制御プログラム | |
JP2003345852A (ja) | ハード検証方法、およびハード検証装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080516 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100928 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110303 |