JP4516999B2 - データ通信制御装置、データ通信制御方法およびそのためのプログラム - Google Patents

データ通信制御装置、データ通信制御方法およびそのためのプログラム Download PDF

Info

Publication number
JP4516999B2
JP4516999B2 JP2008318822A JP2008318822A JP4516999B2 JP 4516999 B2 JP4516999 B2 JP 4516999B2 JP 2008318822 A JP2008318822 A JP 2008318822A JP 2008318822 A JP2008318822 A JP 2008318822A JP 4516999 B2 JP4516999 B2 JP 4516999B2
Authority
JP
Japan
Prior art keywords
command
channel
data
storage unit
data storage
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
JP2008318822A
Other languages
English (en)
Other versions
JP2009259209A (ja
Inventor
悟 西田
裕一 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008318822A priority Critical patent/JP4516999B2/ja
Priority to US12/382,748 priority patent/US8601182B2/en
Publication of JP2009259209A publication Critical patent/JP2009259209A/ja
Application granted granted Critical
Publication of JP4516999B2 publication Critical patent/JP4516999B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/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)

Description

本発明は、複数のコントローラモジュールにそれぞれ設けられるメモリアクセス制御部によって、複数のコントローラモジュールにそれぞれ対応する複数のチャネル間で行われるデータの通信を制御するためのデータ通信制御装置、データ通信制御方法、および、このデータ通信制御方法をコンピュータに実行させるためのプログラムに関する。
以下、図1〜図5を参照しながら、本願のデータ通信制御装置と対比させる対象となる一般のデータ通信制御装置の構成および動作について説明する。
図1は、本願のデータ通信制御装置と対比させる対象となるデータ通信制御装置の構成を示すブロック図であり、図2は、図1のデータ通信制御装置におけるDMAコントローラとハードウェアコマンドキュー(以下、HWコマンドキューと略記することもある)との関係を示すブロック図である。ただし、ここでは、複数のコントローラモジュールとして、7個のコントローラモジュール110−1〜110−7(CM♯0〜CM♯6)を代表して示す。
図1に示すように、一般のデータ通信制御装置100においては、複数のDMAコントローラ120−1〜120−7が、複数のコントローラモジュール110−1〜110−7にそれぞれ設けられている。さらに、複数のコントローラモジュール110−1〜110−7にそれぞれ対応する複数のチャネルCH0〜CH6(図2参照)が用意されている。複数のコントローラモジュール110−1〜110−7の各々の入り口には、外部のサーバに接続されるホストインターフェース(図1では、図示していない)が設けられている。複数のコントローラモジュール110−1〜110−7は、外部のサーバからの要求に従って、これらのコントローラモジュール110−1〜110−7間で実行されるダイレクトメモリアクセスによるデータの通信を制御する。ここで、ある1つのコントローラモジュールから送出されるデータは、複数のコントローラモジュール間の通信経路であるスイッチ部130を経由して、転送先の他のコントローラモジュールに転送される。
さらに、図1のコントローラモジュール110−1〜110−7は、それぞれ、DMAコントローラ120−1〜120−7を含むコントローラモジュール内の各種の構成要素を統括的に制御するためのファームウェアを実行するCPU(中央演算処理装置)140−1〜140−7と、外部のサーバから転送される各種のデータや複数のコントローラモジュール間のダイレクトメモリアクセスによるデータの通信を実行するための各種のプログラム等を格納するメモリからなる記憶部160−1〜160−7とを備えている。上記のCPU140−1〜140−7、記憶部160−1〜160−7およびDMAコントローラ120−1〜120−7等は、メモリコントローラハブ(図1では、MCHと略記する)150−1〜150−7により相互に接続されている。ここで、「ファームウェア」は、複数のコントローラモジュール間のデータの通信を制御するために必要なソフトウェアを意味する用語である。
ついで、図2に基づいて、DMAコントローラの内部の構成および仕様を概略的に説明する。図2に示すように、ある1つのDMAコントローラ(例えば、第1番目のDMAコントローラ120−1(CM♯0))は、複数のコントローラモジュール間で実行されるダイレクトメモリアクセスによるデータの通信を制御する。転送先のコントローラモジュール別に、これらのコントローラモジュールと同じ数のチャネル(例えば、CH0〜CH6)が用意されている。
各々のチャネルは、DMAコントローラ内にハードウェアデータ保存部(例えば、DMAコントローラ120−1内のハードウェアデータ保存部60−1)を有している。このハードウェアデータ保存部は、通常、ハードウェアコマンドキュー(HWコマンドキュー)と呼ばれており、複数の転送要求に関するコマンドを含むデータを格納することができる。このHWコマンドキュー内のコマンド(DC)は、先頭から順番に実行され、同一のHWコマンドキュー内の複数のコマンドが同時に実行されることはない。DMAコントローラでは、これらのチャネルとは別に、実際にダイレクトメモリアクセスを行うエンジンEG−1,EG−2が設けられている。これらのエンジンEG−1,EG−2の数はチャネルの数より少ない。エンジンEG−1,EG−2は全てのチャネルで共有されており、特定のチャネルに対して固定的に結合されていない(バインドされていない)。ここで、 エンジンEG−1,EG−2は、ラウンドロビン形式でチャネルからコマンドを取得して適切な処理を行う。ただし、HWコマンドキューにコマンドが積み込まれた順番に関しては、DMAコントローラのハードウェアは関知しない。この場合、それぞれ異なる特性を有するコントローラモジュール別に役割分担が存在するため、あるコントローラモジュールには小さなデータサイズの制御情報(データ)が転送され、あるコントローラモジュールには大きなデータサイズのユーザデータが転送されるといったような処理の偏りが生ずる。
図3は、図2のHWコマンドキューに複数のコマンドが積まれている状態を示す模式図、図4は、図3のHWコマンドキューに新たなコマンドが積まれていく状態を示す模式図、そして、図5は、図4に示すチャネル0のHWコマンドキューにコマンドが沈み込みしている状態を示す模式図である。ここで、図3〜図5に基づいて、HWコマンドキューの特定のチャネル(例えば、チャネル0)にてコマンドの沈み込みが発生するメカニズムについて説明する。
まず、ある時点で、DMAコントローラ内のHWコマンドキューにコマンドが図3のように積み込まれていたとする。図3の状態から明らかなように、チャネル0(CH0)では小さなコマンド(SDC)が多量積み込まれ、他のチャネル(CH1〜CH6)では大きなコマンド(LDC)が少量積み込まれている。ここで、コマンド内の数字(1〜18)は、この時点で予定されている処理の順番を示している。
つぎに、図2の状態のHWコマンドキューにおいて、図4に示すように、チャネル1(CH1)およびチャネル2(CH2)に新たなコマンドが積み込まれた場合を想定する。この場合、本来は19番目および20番目に発行されていたコマンドであるにもかかわらず、エンジンEG−1、EG−2はラウンドロビン形式でチャネル1(CH1)およびチャネル2(CH2)からコマンドを取り出すため、図4のように、チャネル1(CH1)およびチャネル2(CH2)のコマンドが16番目および17番目に実行されることになる。
換言すれば、データの転送要求に関するコマンドのデータサイズや数の偏りが発生した場合、先に積み込まれているチャネル0(CH0)のコマンドが、後から積み込まれた他のチャネルのコマンドに追い越されて処理されるという事態が発生する。
上記のように、複数のチャネル間でデータサイズやデータの数の偏りが継続していると、図4に示すように、HWコマンドキューのチャネル0(CH0)のコマンドが後から積み込まれた他のチャネルのコマンドに次々と追い越され、処理の順番(例えば、21番目…、98番目、99番目といったように)がどんどん後回しになる。この結果、チャネル0(CH0)にコマンドの沈み込みが発生し、チャネル0のコマンドが、ファームウェアを実行するCPUにより監視されている規定時間内に処理されない状態(タイムアウト)に陥るといったような問題が発生する。このように、「沈み込み」とは、特定のキューに格納されるコマンドの量が他のキューと比較して増加する現象を言う。
このような問題は、異なるチャネル間のコマンドを格納する順番が管理されていないため、コマンドの処理に関して異なるチャネル間で追い越しが発生することに起因している。このような傾向は、HWコマンドキューに積み込まれているコマンドが対象にするデータの数やデータサイズに差があるほど顕著になる。
リードコマンドとライトコマンドで別に沈み込み防止策を適用し、リードコマンドをより沈み込みにくくするために、各々のコマンドが受領した時刻を管理し、受領してから一定時間実行されていないコマンドを優先的に実行するようなコマンドキューイングの機能を有する記憶装置が開示されている。
入出力処理装置において入出力命令の起動待ち時間を計測し、入出力待ち行列から入出力命令を取り出す毎に起動待ち時間を検証して、規定時間を越えて入出力待ち行列に格納されたままで起動されない入出力命令を実行する入出力装置の起動方式が開示されている。
特開2001−249770号公報 特開2002−342252号公報
従来の装置では、時間管理により処理の遅れているコマンド又は命令を優先的に処理することを行っている。しかしながら、このような時間遅れのコマンドの優先処理は、キューに格納されるコマンドの実行順序を変更することによって行われる。そのため、データ受信側はデータ受信順序を指定したデータ転送をデータ送信側に要求したにも拘らず、データ送信側は自分の所定時間以内に処理できれば実行順序を変更する制御を行うため、データ受信側は指定した順序に従わないデータを受信することが生じる。よって、データ送信側では所定時間内にコマンドを処理できても、データ受信側はデータ受信順序に従ってデータ処理をする必要がある場合、優先処理されたコマンドに基づく受信データを使用できない。
本データ通信制御装置は、HWコマンドキューに格納されるコマンドを、HWコマンドキューへの格納順に従って実行できるようにすることを目的とする。
上記課題を解決するために、データ通信制御装置が提供される。
このデータ通信制御装置は、データ転送用のコマンドをデータの転送先に従って格納するように用意されるチャネルを複数有する第1のデータ保存部を含み、且つチャネルの先頭に格納されるデータ転送用のコマンドを実行してデータを転送するメモリアクセス制御部と、ある1つのチャネルに格納されるコマンドの数が予め定められた上限値を超えない場合、第1のデータ保存部のチャネルにコマンドを格納し、ある1つのチャネルのコマンドの数が上限値を超えた場合、第1のデータ保存部のチャネルにコマンドを格納することを停止し且つ第2のデータ保存部を生成し且つ第2のデータ保存部にコマンドを格納する統括制御部と、を有する。
さらに、上記課題を解決するために、データ通信制御方法が提供される。このデータ通信制御方法は、データ転送用のコマンドをデータの転送先に従って格納するように用意されるチャネルを複数有する第1のデータ保存部を含み、且つチャネルの先頭に格納されるデータ転送用のコマンドを実行してデータを転送するメモリアクセス制御部と、統括制御部とを有するデータ通信制御装置を制御するためのデータ通信制御方法であって、統括制御部は、ある1つのチャネルに格納されるコマンドの数が予め定められた上限値を超えない場合、第1のデータ保存部のチャネルにコマンドを格納するステップと、統括制御部は、ある1つのチャネルのコマンドの数が上限値を超えた場合、第1のデータ保存部のチャネルにコマンドを格納することを停止し、第2のデータ保存部を設け且つ第2のデータ保存部にコマンドを格納するステップとを有する。
本データ通信制御装置は、HWコマンドキューに格納されるコマンドを、HWコマンドキューへの格納順に従って実行できる。
以下、添付図面(図6〜図15)を参照しながら、本実施例に係るデータ通信制御装置の構成および動作等を説明する。
図6は、本実施例に係るデータ通信制御装置のハードウェア構成を示すブロック図であり、図7は、図6のデータ通信制御装置におけるコントローラとHWコマンドキューとFWコマンドキューとの関係を示すブロック図である。ただし、ここでは、前述の図1のデータ通信制御装置の場合と同様に、複数のコントローラモジュールとして、7個のコントローラモジュール1−1〜1−7(CM♯0〜CM♯6)を代表して示す。なお、これ以降、前述した構成要素と同様のものについては、同一の参照番号を付して表すこととする。
図6に示すように、本実施例に係るデータ通信制御装置10においては、複数のコントローラ2−1〜2−7が、複数のコントローラモジュール1−1〜1−7にそれぞれ設けられている。さらに、複数のコントローラモジュール1−1〜1−7にそれぞれ対応する複数のチャネルCH0〜CH6(図7参照)が用意されている。複数のコントローラモジュール1−1〜1−7の各々の第1の入り口には、外部のサーバに接続されるホストインターフェース(CA)8−1〜8−7が設けられている。複数のコントローラモジュール1−1〜1−7は、外部のサーバからの要求に従って、これらのコントローラモジュール1−1〜1−7間で実行されるダイレクトメモリアクセスによるデータの通信を制御する。ここで、ある1つのコントローラモジュール(例えば、第1番目のコントローラモジュール1−1(CM♯0))から送出されるデータは、複数のコントローラモジュール間の通信経路であるスイッチ部3を経由して、転送先の他のコントローラモジュールに転送される。
さらに、図6のコントローラモジュール1−1〜1−7は、それぞれ、コントローラ2−1〜2−7を含むコントローラモジュール内の各種の構成要素を統括的に制御するためのファームウェアとして機能するCPU(中央演算処理装置)4−1〜4−7と、外部のサーバから転送される各種のデータや複数のコントローラモジュール間のダイレクトメモリアクセスによるデータの通信を実行するための各種のプログラム等を格納するRAM(ランダム・アクセス・メモリ)やROM(リード・オンリ・メモリ)等のメモリからなる記憶部6−1〜6−7とを備えている。記憶部6−1〜6−7に格納されたプログラムを実行することで、プログラムに規定された各種の機能を有するCPU4−1〜4−7は、統括制御部と呼ばれることもある。さらに、複数のコントローラモジュール1−1〜1−7の各々の第2の入り口には、外部のディスクドライブ(ディスク装置)(例えば、ディスクドライブ70−1)またはRAID装置に接続されるディスクインターフェース(DA)7−1〜7−7が設けられている。ここでは、ディスクインターフェース(DA)7−1〜7−7を介して、CPU4−1〜4−7と外部のディスクドライブ(例えば、ディスクドライブ70−1)またはRAID装置との間でディスク媒体(例えば、ディスク媒体72−1)に対するデータの書き込み動作および読み出し動作が行われる。
さらに、図6のコントローラモジュール1−1〜1−7は、上記のCPU4−1〜4−7、記憶部6−1〜6−7、コントローラ2−1〜2−7等を相互に接続するためのメモリコントローラハブ(図6では、MCHと略記する)5−1〜5−7を備えている。
さらに、図6のコントローラ2−1〜2−7は、複数のコントローラモジュール1−1〜1−7がそれぞれ有するチャネル毎に、転送先のデータを一時的に格納する第1のデータ保存部61−1〜61−7を有している。また一方で、図6の記憶部6−1〜6−7は、第1のデータ保存部61−1〜61−7に格納されているある1つのチャネルのコマンドの数が予め定められた上限値を超えたときに、新たなコマンドを格納する第2のデータ保存部62−1〜62−7を有している。なお、上記の第1のデータ保存部61−1〜61−7および第2のデータ保存部62−1〜62−7の具体的構成に関しては、後述の図7に基づいて詳しく説明する。
ここで、図7に基づいて、コントローラと第1のデータ保存部と第2のデータ保存部との関係を説明する。
図7に示すように、ある1つのコントローラ(例えば、第1番目のコントローラ2−1(CM♯0))は、複数のコントローラモジュール間で実行されるダイレクトメモリアクセスによるデータの通信を制御する。転送先のコントローラモジュール別に、これらのコントローラモジュールと同じ数のチャネル(例えば、CH0〜CH6)が用意されている。
コントローラは、データ転送用のコマンドをデータの転送先に従って格納するように用意されるチャネルを複数有する第1のデータ保存部(例えば、コントローラ2−1内の第1のデータ保存部61−1)を有している。この第1のデータ保存部は、ハードウェアにより実装されるコマンドキュー(HWコマンドキュー)であり、複数の転送要求に関するコマンドをその転送先コントローラモジュール用のチャネルに格納することができる。なお、各コマンドは、発信元コントローラモジュールの記憶部の発信元メモリアドレス、送信先コントローラモジュールを指定する情報、送信先コントローラモジュールの記憶部の送信先メモリアドレスを含む。コントローラがコマンドを処理すると、発信元メモリアドレスに記憶されるデータが、転送先メモリアドレスに転送される。
コントローラでは、これらのチャネルとは別に、実際にダイレクトメモリアクセスを行うエンジンEG−1,EG−2が設けられている。これらのエンジンEG−1,EG−2の数はチャネルの数より少ない。エンジンEG−1,EG−2は全てのチャネルで共有されており、特定のチャネルに対して固定的に結合されていない。ここで、エンジンEG−1,EG−2は、ラウンドロビン形式で各チャネルからコマンドを取得して適切な処理を行う。このHWコマンドキュー内のコマンド(DC)は、エンジンEG−1又はEG−2によって先頭から順番に実行され、同一のHWコマンドキュー内の複数のコマンドが同時に実行されることはない。
さらに、前述の図6の記憶部6−1〜6−7の各々においては、ファームウェアを実行するCPUにより管理される第2のデータ保存部(例えば、記憶部6−1内の第2のデータ保存部62−1)が、各々のコントローラモジュールに対して1つ設けられている。この第2のデータ保存部は、ファームウェアを実行するCPUにより生成されるコマンドキュー(FWコマンドキュー)であり、第1のデータ保存部から溢れた実行待ちのコマンド(WDC)を格納することができる。
さらに、図7に示すように、HWコマンドキューに格納されるデータの数の上限値ULが予め設定されている。さらに、必要に応じて、HWコマンドキューに積み込まれるデータの数の下限値LLが予め設定されている。ここで、「下限値」は、コントローラが実行中のコマンドの数が上限値ULを超えて、ダイレクトメモリアクセスの起動抑止状態となってから、この起動抑止状態を解除するための閾値を意味する。ダイレクトメモリアクセスによるデータの転送が完了し、実行中のコマンドの数が下限値を下回ると、ダイレクトメモリアクセスの起動抑止状態が解除される。
ファームウェアを実行するCPUは、1つのチャネル(例えば、チャネル0(CH0))内のデータの数が上限値ULに達するまで、HWコマンドキューにコマンドを格納する。さらに、ある1つのチャネルのコマンドの数が上限値ULを超えたときに、または、ある1つのチャネルのコマンドの数が上限値ULを超えていなくても、FWコマンドキューにコマンドが存在するときに、HWコマンドキューに転送先のコマンドを格納せず、新たに入ってきたコマンドをFWコマンドキューに格納する。このFWコマンドキューに格納されている新規のコマンドは、実行待ちキューのコマンドとしてファームウェアを実行するCPUにより管理される。さらに、エンジンEG−1、EG−2の処理が進み、HWコマンドキューに積み込まれているコマンドの数が下限値LLを下回った時点で、CPUは、FWコマンドキューに格納されているコマンドを先頭から取り出して、HWコマンドキューに格納する。コントローラは、HWコマンドキューに格納されているコマンドを先頭から順番に実行する。
ファームウェアを実行するCPUによる処理の流れの一例は、下記の処理(1)〜(4)である。
処理(1):CPUは、HWコマンドキュー内のある1つのチャネルのコマンドの数が上限値ULに達するまで、従来の場合と同様にコントローラに処理依頼を行う。
処理(2):HWコマンドキュー内のある1つのチャネルのコマンドの数が上限値ULに達したら、新規コマンドをHWコマンドキュー格納せず且つコントローラへの新規コマンドに対する処理依頼を行わず、新規コマンドをFWコマンドキューに格納する。
処理(3):HWコマンドキュー内のある1つのチャネルのコマンドの数が下限値LLを下回るまでコントローラの処理が進んだら、前述の処理(1)に戻り通常の処理を行う。
処理(4):前述の処理(1)〜(3)による処理を繰り返す。
ここで、CPUはフォームウェアを実行することによって、ファームウェアに規定される機能を実現する。より具体的には、例えば記憶部6−1のROM等に格納されているダイレクトメモリアクセスによるデータの通信の制御を実行するためのプログラム、およびプログラム実行に必要なRAM等に格納されている各種のデータをCPUにより読み出して上記プログラムを実行させることによって、ソフトウェアの機能が実現される。なお、記憶部6−1に含まれるROMまたはRAMの代わりに、CPUに内蔵のROMまたはRAMを使用することも可能である。
図6および図7の実施例に係るデータ通信制御装置では、ファームウェアを実行することでCPUは、FWコマンドキューを1つ用意し、HWコマンドキューに格納されるコマンドの数の上限値を予め設定し(必要に応じて下限値も予め設定し)、HWコマンドキューに格納されているある1つのチャネルのコマンドの数が上限値を超えたときに、新規のコマンドをFWコマンドキューに格納する。さらに、HWコマンドキューに格納される全てのチャネルのコマンドの数が下限値を下回ったとき、CPUは、FWコマンドキューに格納されているコマンドを先頭から取り出してHWコマンドキューに格納し、コントローラは、このHWコマンドキューに格納されているコマンドを先頭から順番に実行するようになっている。
それゆえに、図6および図7の実施例に係るデータ通信制御装置によれば、HWコマンドキューに格納されているコマンドの数が少なくなり、HWコマンドキューから溢れたデータをFWコマンドキューに格納した状態で管理することができるようになる。一定条件を満たすとFWコマンドキューに格納されたコマンドは、先頭から順番にHWコマンドキューに格納される。この結果、HWコマンドキューのあるチャネルに先に格納されているコマンドが、後から積み込まれた他のチャネルのコマンドよりも後に実行されるということが無くなり、HWコマンドキューに格納されるコマンドを、HWコマンドキューへの格納順に従って実行できる。よって、データ通信制御装置は、受信側のコントロールモジュールに適切な実行順でコマンド処理に基づくデータ転送が可能になり、さらに、先にコマンドが格納されているチャネルのHWコマンドキューに沈み込みが発生することを防止することが可能になる。
図8は、本願のデータ通信制御装置と対比させる対象となるデータ通信制御装置におけるDMA起動処理を説明するためのフローチャートであり、図9は、本願のデータ通信制御装置と対比させる対象となるデータ通信制御装置におけるDMA完了処理を説明するためのフローチャートである。ここでは、前述の図1のCPUを動作させて実行されるDMA起動処理およびDMA完了処理を説明する。
前述の図1のデータ通信制御装置においてダイレクトメモリアクセスの起動処理を実行する場合、図8のステップS10に示すように、ダイレクトメモリアクセスの対象となるコントローラモジュール(CM♯a:aは任意の正の整数)に対応するチャネルb(bは任意の正の整数)を選択する。通常、コントローラモジュールの番号は、対応するチャネルの番号に一致している。
つぎに、ステップS11において、選択されたチャネルbのHWコマンドキューにコマンドを格納する。さらに、ステップS12において、HWコマンドキューに格納したコマンドに対するダイレクトメモリアクセスの起動処理を実行する。
さらに、ダイレクトメモリアクセスの完了処理を実行する場合、図9のステップS20に示すように、HWコマンドキューに格納されるコマンドを実行することでダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがあるか否かを判別する。ダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがあることが確認された時点で、ステップS21に進み、ダイレクトメモリアクセスの完了処理を実行する。このダイレクトメモリアクセスの完了処理によって、コントローラは、HWコマンドキューに格納された実行済みコマンドを削除し、且つ実行待ちコマンドの数を変更する。
図8および図9のフローチャートにおいては、HWコマンドキュー内の各々のチャネルのコマンドの数に上限値が設定されていないので、先に格納されているチャネルのコマンドが、後から格納された他のチャネルのコマンドが先に実行され、先に格納されているチャネルのコマンドが規定時間内に処理されず、先に格納されているチャネルに沈み込みが発生するおそれがある。
図10は、本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数=0に設定した場合のDMA起動処理を説明するためのフローチャートであり、図11は、本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数=0に設定した場合のDMA完了処理を説明するためのフローチャートである。ここでは、HWコマンドキューに格納されるコマンドの数の上限値のみを設定し、HWコマンドキューへの新規コマンド格納動作の抑止を解除する条件(新規抑止解除条件)として、実行中のダイレクトメモリアクセスのコマンドの数が0になるタイミングを選択している。
本実施例に係るデータ通信制御装置においてダイレクトメモリアクセスの起動処理を実行する場合、図10のステップS30に示すように、CPUは、コントローラによるダイレクトメモリアクセスの起動を抑止しているか否かを判別する。CPUがコマンドをHWコマンドキューに格納せず、一方、CPUが当該コマンドをFWコマンドキューに格納する場合、CPUはFWコマンドキューに格納されたコマンドに対するダイレクトメモリアクセスの処理依頼をコントローラにはしない。それゆえ、FWコマンドキューにコマンドがある場合、又は、一定条件の下でFWコマンドキューにコマンドを格納する場合、CPUは、そのようなコマンドに対してコントローラへのDMA処理を抑止する。なお、DMAの抑止状態は、後述するステップS36で設定される。
コントローラによるダイレクトメモリアクセスの起動を抑止していることを確認した場合(S30 YES)、ステップS34に進み、CPUは、新しく入ってきたコマンドをFWコマンドキュー(実行待ちキュー)の最後尾に格納する。
また一方で、コントローラによるダイレクトメモリアクセスの起動を抑止していないことが確認された場合(S30 NO)、ステップS31に進み、CPUは、ダイレクトメモリアクセスの対象となるコントローラモジュール(CM♯a)に対応するチャネルbを選択する。通常、コントローラモジュールの番号は、対応するチャネルの番号に一致している。
つぎに、ステップS32において、CPUは、選択されたチャネルbのHWコマンドキューにコマンドを格納する。さらに、ステップS33において、CPUは、当該格納したコマンドに対するダイレクトメモリアクセスの起動処理を実行する。
さらに、ステップS35において、CPUは、チャネルbにおいて実行中のダイレクトメモリアクセスによるコマンドの数が上限値を上回ったか否かを判別する。実行中のコマンドの数が上限値を上回ったことが確認された場合(S35 YES)、ステップS36に進み、CPUは、コントローラに対する新規のデータのダイレクトメモリアクセスの起動の要求を抑止する状態に設定する。
さらに、ダイレクトメモリアクセスの完了処理を実行する場合、図11のステップS40に示すように、ダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがあるか否かをCPUにより判別する。ダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがあることがCPUにより確認された場合(S40 Yes)、ステップS41に進み、ダイレクトメモリアクセスの完了処理を実行する。
また一方で、ダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがないことがCPUにより確認された場合(S40 No)、ステップS42に進み、コントローラに対するダイレクトメモリアクセスの起動の要求を抑止しているか否かをCPUにより判別する。
コントローラに対するダイレクトメモリアクセスの起動を抑止していることがCPUにより確認された場合(S42 Yes)、ステップS43に進み、全てのチャネルで実行中のコマンドの数が0になったか否かをCPUにより判別する。
全てのチャネルで実行中のコマンドの数が0になったことがCPUにより確認された場合(S43 Yes)、ステップS44に進み、コントローラに対する新規のデータのダイレクトメモリアクセスの抑止の要求をCPUにより解除し、ステップS45に進む。
さらに、ステップS45において、FWコマンドキュー(実行待ちキュー)の先頭からコマンドを取り出してHWコマンドキューにCPUにより格納する。
さらに、ステップS46において、HWコマンドキューに格納されているコマンドを先頭から順番に実行することによって、ダイレクトメモリアクセスの起動処理を再開する。
図10および図11のフローチャートにおいては、HWコマンドキュー内のコマンドの数が上限値を上回ったことがCPUにより確認された時点でHWコマンドキューに新規のコマンドを積み込む動作を停止し、実行中のダイレクトメモリアクセスのコマンドの数が0になるタイミングでHWコマンドキューに新規のコマンドを積み込む動作を再開しているので、先に格納されているチャネルのコマンドが、後から格納された他のチャネルのコマンドが先に実行されることがなくなり、先に格納されているチャネルに沈み込みが発生することを防止することが可能になる。ただし、実行中のダイレクトメモリアクセスのコマンドの数が0になるということは、その瞬間はコントローラが動作していないということなので、コントローラのハードウェアの使用効率が多少下がる。
図12は、本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数の上限値に設定した場合のDMA起動処理を説明するためのフローチャートであり、図13は、本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数の上限値に設定した場合のDMA完了処理を説明するためのフローチャートである。ここでは、HWコマンドキューに積み込まれるコマンドの数の上限値のみを設定し、HWコマンドキューに新規のコマンドを積み込む動作の停止を解除する条件(新規抑止解除条件)として、実行中のダイレクトメモリアクセスのコマンドの数が上限値を下回るタイミングを選択している。
本実施例に係るデータ通信制御装置においてダイレクトメモリアクセスの起動処理を実行する場合、前述の図10のフローチャートの場合と同様に、図12のステップS50において、コントローラに対するダイレクトメモリアクセスの起動の要求を抑止しているか否かをCPUにより判別する。
コントローラに対するダイレクトメモリアクセスの起動の要求を抑止していることがCPUにより確認された場合、ステップS54に進み、新しく入ってきたコマンドをFWコマンドキュー(実行待ちキュー)の最後尾に格納する。
また一方で、コントローラに対するダイレクトメモリアクセスの起動の要求を抑止していないことがCPUにより確認された場合、ステップS51に進み、ダイレクトメモリアクセスの対象となるコントローラモジュール(CM♯a)に対応するチャネルbを選択する。通常、コントローラモジュールの番号は、対応するチャネルの番号に一致している。
つぎに、前述の図10のフローチャートの場合と同様に、ステップS52において、選択されたチャネルbのHWコマンドキューにコマンドを格納する。さらに、ステップS53において、ダイレクトメモリアクセスの起動処理を実行する。
さらに、ステップS55において、チャネルbにおいて実行中のダイレクトメモリアクセスによるコマンドの数が上限値を上回ったか否かをCPUにより判別する。実行中のコマンドの数が上限値を上回ったことがCPUにより確認された場合、ステップS56に進み、コントローラに対する新規のデータのダイレクトメモリアクセスの起動の要求を抑止する状態に設定する。
さらに、ダイレクトメモリアクセスの完了処理を実行する場合、図13のステップS60に示すように、ダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがあるか否かをCPUにより判別する。ダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがあることがCPUにより確認された場合、ステップS61に進み、ダイレクトメモリアクセスの完了処理を実行する。
また一方で、ダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがないことがCPUにより確認された場合、ステップS62に進み、コントローラに対するダイレクトメモリアクセスの起動の要求を抑止しているか否かをCPUにより判別する。
コントローラに対するダイレクトメモリアクセスの起動を抑止していることが確認された場合、ステップS63に進み、全てのチャネルで実行中のコマンドの数が上限値を下回ったか否かを判別する。
全てのチャネルで実行中のコマンドの数が上限値を下回ったことがCPUにより確認された場合、ステップS64に進み、コントローラに対する新規のデータのダイレクトメモリアクセスの抑止をCPUにより解除する。
さらに、ステップS65において、FWコマンドキュー(実行待ちキュー)の先頭からコマンドを取り出してHWコマンドキューに格納する。
さらに、ステップS66において、HWコマンドキューに格納されているコマンドを先頭から順番に実行することによって、ダイレクトメモリアクセスの起動処理を再開する。
図12および図13のフローチャートにおいては、HWコマンドキュー内のコマンドの数が上限値を上回ったことがCPUにより確認された時点でHWコマンドキューに新規のコマンドを積み込む動作を停止し、実行中のダイレクトメモリアクセスのコマンドの数が上限値を下回るタイミングでHWコマンドキューに新規のコマンドを積み込む動作を再開しているので、先に格納されているチャネルのコマンドが、後から格納された他のチャネルのコマンドよりも後に実行されることがなくなり、HWコマンドキューに格納されるコマンドを、HWコマンドキューへの格納順に従って実行できる。よって、データ通信制御装置は、受信側のコントロールモジュールに適切な実行順でコマンド処理に基づくデータ転送が可能になり、さらに、先にコマンドが格納されているチャネルのHWコマンドキューに沈み込みが発生することを防止することが可能になる。
図14は、本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数の上限値および下限値に設定した場合のDMA起動処理を説明するためのフローチャートであり、図15は、本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数の上限値および下限値に設定した場合のDMA完了処理を説明するためのフローチャートである。ここでは、HWコマンドキューに積み込まれるコマンドの数の上限値および下限値を設定し、HWコマンドキューに新規のコマンドを積み込む動作の停止を解除する条件(新規抑止解除条件)として、実行中のダイレクトメモリアクセスのコマンドの数が下限値を下回るタイミングを選択している。
本実施例に係るデータ通信制御装置においてダイレクトメモリアクセスの起動処理を実行する場合、前述の図12のフローチャートの場合と同様に、図14のステップS70において、コントローラに対するダイレクトメモリアクセスの起動の要求を抑止しているか否かをCPUにより判別する。
コントローラに対するダイレクトメモリアクセスの起動の要求を抑止していることがCPUにより確認された場合、ステップS74に進み、新しく入ってきたコマンドをFWコマンドキュー(実行待ちキュー)の最後尾にCPUにより格納する。
また一方で、コントローラに対するダイレクトメモリアクセスの起動の要求を抑止していないことがCPUにより確認された場合、ステップS71に進み、ダイレクトメモリアクセスの対象となるコントローラモジュール(CM♯a)に対応するチャネルbを選択する。通常、コントローラモジュールの番号は、対応するチャネルの番号に一致している。
つぎに、前述の図12のフローチャートの場合と同様に、ステップS72において、選択されたチャネルbのHWコマンドキューにコマンドを格納する。さらに、ステップS73において、ダイレクトメモリアクセスの起動処理を実行する。
さらに、ステップS75において、チャネルbにおいて実行中のダイレクトメモリアクセスによるコマンドの数が上限値を上回ったか否かをCPUにより判別する。実行中のコマンドの数が上限値を上回ったことがCPUにより確認された場合、ステップS76に進み、CPUによりコントローラに対する新規のデータのダイレクトメモリアクセスの起動の要求を抑止する状態に設定する。
さらに、ダイレクトメモリアクセスの完了処理を実行する場合、図15のステップS80に示すように、ダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがあるか否かをCPUにより判別する。ダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがあることが確認された場合、ステップS81に進み、ダイレクトメモリアクセスの完了処理をCPUにより実行する。
また一方で、ダイレクトメモリアクセスによるデータの転送処理が完了しているチャネルがないことがCPUにより確認された場合、ステップS82に進み、コントローラに対するダイレクトメモリアクセスの起動を抑止しているか否かをCPUにより判別する。
コントローラに対するダイレクトメモリアクセスの起動の要求を抑止していることがCPUにより確認された場合、ステップS83に進み、全てのチャネルで実行中のコマンドの数が下限値を下回ったか否かをCPUにより判別する。
全てのチャネルで実行中のコマンドの数が下限値を下回ったことがCPUにより確認された場合、ステップS84に進み、コントローラに対する新規のデータのダイレクトメモリアクセスの抑止の要求をCPUにより解除する。
さらに、ステップS85において、CPUは、FWコマンドキュー(実行待ちキュー)の先頭からコマンドを取り出してHWコマンドキューに格納する。
さらに、ステップS86において、CPUは、コントローラにHWコマンドキューに格納されているコマンドを先頭から順番に実行させ、ダイレクトメモリアクセスの起動処理を再開する。
図14および図15のフローチャートにおいては、HWコマンドキュー内のコマンドの数が上限値を上回ったことが確認された時点でHWコマンドキューに新規のコマンドを積み込む動作を停止し、実行中のダイレクトメモリアクセスのコマンドの数が下限値を下回るタイミングでHWコマンドキューに新規のコマンドを積み込む動作を再開しているので、先に格納されているチャネルのコマンドが、後から格納された他のチャネルのコマンドよりも後に実行されることがなくなり、HWコマンドキューに格納されるコマンドを、HWコマンドキューへの格納順に従って実行できる。よって、データ通信制御装置は、受信側のコントロールモジュールに適切な実行順でコマンド処理に基づくデータ転送が可能になり、さらに、先にコマンドが格納されているチャネルのHWコマンドキューに沈み込みが発生することを防止することが可能になる。
HWコマンドキュー内のコマンドの数に下限値を設定することによって、FWコマンドキュー内に実行待ちのコマンドが存在する状況での、コントローラの未稼働状態を防止することができるようになる。また一方で、HWコマンドキュー内のコマンドの数が上限値を超えてからHWコマンドキューに新規のコマンドを格納しない期間を確保することによって、HWコマンドキュー内のコマンドがその時点での順番で処理され、ある1つのチャネルに先に積み込まれているコマンドの実行順序を追い越すことを大幅に軽減させることができるようになる。さらに、FWコマンドキュー内のコマンドを再起動する時点で上限値まで余裕があるので、まとまった数のコマンドを一気に格納することができるようになり、前述の図12および図13のフローチャートの場合よりもファームウェアの処理効率が良くなる。
これまでに説明した実施例に関連して、下記に示すような付記を記載しておく。
(付記1)
データ転送用のコマンドを前記データの転送先に従って格納するように用意されるチャネルを複数有する第1のデータ保存部を含み、且つ前記チャネルの先頭に格納される前記データ転送用のコマンドを実行して前記データを転送するメモリアクセス制御部と、
ある1つのチャネルに格納されるコマンドの数が予め定められた上限値を超えない場合、前記第1のデータ保存部のチャネルにコマンドを格納し、前記ある1つのチャネルのコマンドの数が前記上限値を超えた場合、前記第1のデータ保存部のチャネルにコマンドを格納することを停止し、第2のデータ保存部を設け且つ前記第2のデータ保存部にコマンドを格納する統括制御部と、
を有するデータ通信制御装置。
(付記2)
前記統括制御部は、前記第2のデータ保存部にコマンドが存在する場合、前記第1のデータ保存部のチャネルにコマンドを格納することを行わず、コマンドを前記第2のデータ保存部に格納する付記1に記載のデータ通信制御装置。
(付記3)
前記統括制御部は、前記第1のデータ保存部の各チャネルに格納されているコマンドの数が零になった場合、前記第2のデータ保存部に格納されているコマンドを先頭から取り出して前記第1のデータ保存部のチャネルに格納する付記1または2に記載のデータ通信制御装置。
(付記4)
前記統括制御部は、前記第1のデータ保存部の各チャネルに格納されているコマンドの数が前記上限値を下回った場合、前記第2のデータ保存部に格納されているコマンドを先頭から取り出して前記第1のデータ保存部のチャネルに格納する付記1または2に記載のデータ通信制御装置。
(付記5)
前記統括制御部は、前記第1のデータ保存部の各チャネルに格納されているコマンドの数が、予め定められた下限値を下回った場合、前記第2のデータ保存部に格納されているコマンドを先頭から取り出して前記第1のデータ保存部のチャネルに格納する付記1または2記載のデータ通信制御装置。
(付記6)
データ転送用のコマンドを前記データの転送先に従って格納するように用意されるチャネルを複数有する第1のデータ保存部を含み、且つ前記チャネルの先頭に格納される前記データ転送用のコマンドを実行して前記データを転送するメモリアクセス制御部と、統括制御部とを有するデータ通信制御装置を制御するためのデータ通信制御方法であって、
前記統括制御部は、ある1つのチャネルに格納されるコマンドの数が予め定められた上限値を超えない場合、前記第1のデータ保存部のチャネルにコマンドを格納するステップと、
前記統括制御部は、前記ある1つのチャネルのコマンドの数が前記上限値を超えた場合、前記第1のデータ保存部のチャネルにコマンドを格納することを停止し、第2のデータ保存部を設け且つ前記第2のデータ保存部にコマンドを格納するステップと
を有するデータ通信制御方法。
(付記7)
前記統括制御部は、前記第2のデータ保存部にコマンドが存在する場合、前記第1のデータ保存部のチャネルにコマンドを格納することを行わず、コマンドを前記第2のデータ保存部に格納するステップをさらに有する付記6に記載のデータ通信制御方法。
(付記8)
前記統括制御部は、前記第1のデータ保存部の各チャネルに格納されているコマンドの数が零になった場合、前記第2のデータ保存部に格納されているコマンドを先頭から取り出して前記第1のデータ保存部のチャネルに格納するステップをさらに有する付記6または7に記載のデータ通信制御方法。
(付記9)
前記統括制御部は、前記第1のデータ保存部の各チャネルに格納されているコマンドの数が前記上限値を下回った場合、前記第2のデータ保存部に格納されているコマンドを先頭から取り出して前記第1のデータ保存部のチャネルに格納するステップをさらに有する付記6または7に記載のデータ通信制御方法。
(付記10)
前記統括制御部は、前記第1のデータ保存部の各チャネルに格納されているコマンドの数が、予め定められた下限値を下回った場合、前記第2のデータ保存部に格納されているコマンドを先頭から取り出して前記第1のデータ保存部のチャネルに格納するステップをさらに有する付記6または7に記載のデータ通信制御方法。
本発明は、複数のコントローラモジュールにそれぞれ設けられるコントローラによって、外部のサーバやディスク装置等から転送される各種のデータのダイレクトメモリアクセスによる処理を行う際に、複数のコントローラモジュール間のダイレクトメモリアクセスによるデータの通信を制御する機能を有するような種々のタイプのデータ通信制御装置に適用することが可能である。
本願のデータ通信制御装置と対比させる対象となるデータ通信制御装置の構成を示すブロック図である。 図1のデータ通信制御装置におけるコントローラとHWコマンドキューとの関係を示すブロック図である。 図2のHWコマンドキューに複数のコマンドが積まれている状態を示す模式図である。 図3のHWコマンドキューに新たなコマンドが積まれていく状態を示す模式図である。 図4のHWコマンドキューのチャネル0にてコマンドの沈み込みが発生している状態を示す模式図である。 本実施例に係るデータ通信制御装置のハードウェア構成を示すブロック図である。 図6のデータ通信制御装置におけるコントローラとHWコマンドキューとFWコマンドキューとの関係を示すブロック図である。 本願のデータ通信制御装置と対比させる対象となるデータ通信制御装置におけるDMA起動処理を説明するためのフローチャートである。 本願のデータ通信制御装置と対比させる対象となるデータ通信制御装置におけるDMA完了処理を説明するためのフローチャートである。 本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数=0に設定した場合のDMA起動処理を説明するためのフローチャートである。 本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数=0に設定した場合のDMA完了処理を説明するためのフローチャートである。 本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数の上限値に設定した場合のDMA起動処理を説明するためのフローチャートである。 本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数の上限値に設定した場合のDMA完了処理を説明するためのフローチャートである。 本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数の上限値および下限値に設定した場合のDMA起動処理を説明するためのフローチャートである。 本実施例に係るデータ通信制御装置において新規抑止解除条件をDMAコマンド数の上限値および下限値に設定した場合のDMA完了処理を説明するためのフローチャートである。
符号の説明
1−1〜1−7 コントローラモジュール
2−2〜2〜7 コントローラ
3 スイッチ部
4−1〜4−7 CPU(ファームウェア)
5−1〜5−7 メモリコントローラハブ(MCH)
6−1〜6−7 記憶部
7−1〜7−7 ディスクインターフェース(DA)
8−1〜8−7 ホストインターフェース(CA)
10 データ通信制御装置
60−1 ハードウェアデータ保存部
61−1〜61−7 第1のデータ保存部
62−1〜62−7 第2のデータ保存部
70−1 ディスクドライブ(ディスク装置)
72−1 ディスク媒体

Claims (7)

  1. データ転送用のコマンドを前記データの転送先に従って格納するように用意されるチャネルを複数有する第1のデータ保存部を含み、且つ前記チャネルの先頭に格納される前記データ転送用のコマンドを実行して前記データを転送するメモリアクセス制御部と、
    ある1つのチャネルに格納されるコマンドの数が予め定められた上限値を超えない場合、前記第1のデータ保存部のチャネルにコマンドを格納し、前記ある1つのチャネルのコマンドの数が前記上限値を超えた場合、前記第1のデータ保存部のチャネルにコマンドを格納することを停止し且つ第2のデータ保存部を生成し且つ前記第2のデータ保存部にコマンドを格納する統括制御部と、
    を有するデータ通信制御装置。
  2. 前記統括制御部は、前記第2のデータ保存部にコマンドが存在する場合、前記第1のデータ保存部のチャネルにコマンドを格納することを行わず、コマンドを前記第2のデータ保存部に格納する請求項1に記載のデータ通信制御装置。
  3. 前記統括制御部は、前記第1のデータ保存部の各チャネルに格納されているコマンドの数が零になった場合、前記第2のデータ保存部に格納されているコマンドを先頭から取り出して前記第1のデータ保存部のチャネルに格納する請求項1または2に記載のデータ通信制御装置。
  4. 前記統括制御部は、前記第1のデータ保存部の各チャネルに格納されているコマンドの数が前記上限値を下回った場合、前記第2のデータ保存部に格納されているコマンドを先頭から取り出して前記第1のデータ保存部のチャネルに格納する請求項1または2に記載のデータ通信制御装置。
  5. 前記統括制御部は、前記第1のデータ保存部の各チャネルに格納されているコマンドの数が、予め定められた下限値を下回った場合、前記第2のデータ保存部に格納されているコマンドを先頭から取り出して前記第1のデータ保存部のチャネルに格納する請求項1または2に記載のデータ通信制御装置。
  6. データ転送用のコマンドを前記データの転送先に従って格納するように用意されるチャネルを複数有する第1のデータ保存部を含み、且つ前記チャネルの先頭に格納される前記データ転送用のコマンドを実行して前記データを転送するメモリアクセス制御部と、統括制御部とを有するデータ通信制御装置を制御するためのデータ通信制御方法であって、
    前記統括制御部は、ある1つのチャネルに格納されるコマンドの数が予め定められた上限値を超えない場合、前記第1のデータ保存部のチャネルにコマンドを格納するステップと、
    前記統括制御部は、前記ある1つのチャネルのコマンドの数が前記上限値を超えた場合、前記第1のデータ保存部のチャネルにコマンドを格納することを停止し、第2のデータ保存部を設け且つ前記第2のデータ保存部にコマンドを格納するステップと、
    を有するデータ通信制御方法。
  7. 前記統括制御部は、前記第1のデータ保存部の各チャネルに格納されているコマンドの数が、予め定められた下限値を下回った場合、前記第2のデータ保存部に格納されているコマンドを先頭から取り出して前記第1のデータ保存部のチャネルに格納するステップを有する請求項6に記載のデータ通信制御方法。
JP2008318822A 2008-03-28 2008-12-15 データ通信制御装置、データ通信制御方法およびそのためのプログラム Expired - Fee Related JP4516999B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008318822A JP4516999B2 (ja) 2008-03-28 2008-12-15 データ通信制御装置、データ通信制御方法およびそのためのプログラム
US12/382,748 US8601182B2 (en) 2008-03-28 2009-03-23 Data communication control device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008088296 2008-03-28
JP2008318822A JP4516999B2 (ja) 2008-03-28 2008-12-15 データ通信制御装置、データ通信制御方法およびそのためのプログラム

Publications (2)

Publication Number Publication Date
JP2009259209A JP2009259209A (ja) 2009-11-05
JP4516999B2 true JP4516999B2 (ja) 2010-08-04

Family

ID=41118823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008318822A Expired - Fee Related JP4516999B2 (ja) 2008-03-28 2008-12-15 データ通信制御装置、データ通信制御方法およびそのためのプログラム

Country Status (2)

Country Link
US (1) US8601182B2 (ja)
JP (1) JP4516999B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101662729B1 (ko) * 2009-05-08 2016-10-06 삼성전자주식회사 시리얼 인터페이스 프로토콜을 사용하여 호스트와 인터페이스하는 비휘발성 메모리 기반 저장 장치의 커맨드 처리 방법 및 상기 방법을 수행하기 위한 메모리 컨트롤러
FR2953307B1 (fr) * 2009-12-01 2011-12-16 Bull Sas Controleur d'acces direct a une memoire pour le transfert direct de donnees entre memoires de plusieurs dispositifs peripheriques
FR2953308B1 (fr) * 2009-12-01 2011-12-09 Bull Sas Systeme autorisant des transferts directs de donnees entre des memoires de plusieurs elements de ce systeme
US9170755B2 (en) 2013-05-21 2015-10-27 Sandisk Technologies Inc. Command and data selection in storage controller systems
JP6515457B2 (ja) * 2014-07-31 2019-05-22 株式会社リコー 情報処理システム、情報処理方法および情報処理装置
JP2016058033A (ja) * 2014-09-12 2016-04-21 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム
KR20190083150A (ko) * 2018-01-03 2019-07-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10657087B2 (en) * 2018-05-31 2020-05-19 Toshiba Memory Corporation Method of out of order processing of scatter gather lists
CN113220608B (zh) * 2021-06-09 2022-06-28 湖南国科微电子股份有限公司 一种NVMe命令处理器及其处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001249770A (ja) * 2000-03-07 2001-09-14 Hitachi Ltd コマンドキューイングの機能を持つ記憶装置
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
JP2007249635A (ja) * 2006-03-16 2007-09-27 Nec Corp データ転送装置及びデータ転送方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388237A (en) * 1991-12-30 1995-02-07 Sun Microsystems, Inc. Method of and apparatus for interleaving multiple-channel DMA operations
US5386582A (en) * 1993-03-12 1995-01-31 Intel Corporation High speed time base counter in a field programmable gate array (FPGA)
GB2277816B (en) * 1993-05-04 1997-09-03 Motorola Inc Data communication system
US5664116A (en) * 1995-07-07 1997-09-02 Sun Microsystems, Inc. Buffering of data for transmission in a computer communication system interface
US5765032A (en) * 1996-01-11 1998-06-09 Cisco Technology, Inc. Per channel frame queuing and servicing in the egress direction of a communications network
US6246680B1 (en) * 1997-06-30 2001-06-12 Sun Microsystems, Inc. Highly integrated multi-layer switch element architecture
US6230219B1 (en) * 1997-11-10 2001-05-08 International Business Machines Corporation High performance multichannel DMA controller for a PCI host bridge with a built-in cache
US6912637B1 (en) * 1998-07-08 2005-06-28 Broadcom Corporation Apparatus and method for managing memory in a network switch
US6842457B1 (en) * 1999-05-21 2005-01-11 Broadcom Corporation Flexible DMA descriptor support
US6868461B1 (en) * 2000-07-19 2005-03-15 Mindspeed Technologies, Inc. Link layer controller that provides a memory status signal to a network layer system in a communication device
JP2002342252A (ja) 2001-05-21 2002-11-29 Hitachi Ltd 入出力装置の起動方式
US8010751B2 (en) * 2002-04-14 2011-08-30 Bay Microsystems Data forwarding engine
US7206857B1 (en) * 2002-05-10 2007-04-17 Altera Corporation Method and apparatus for a network processor having an architecture that supports burst writes and/or reads
US7603488B1 (en) * 2003-07-15 2009-10-13 Alereon, Inc. Systems and methods for efficient memory management
US7337248B1 (en) * 2004-03-19 2008-02-26 Sun Microsystems, Inc. Adaptive synchronization method for communication in storage systems
WO2007003987A1 (en) * 2005-06-30 2007-01-11 Freescale Semiconductor, Inc. Device and method for executing a dma task
US7596644B2 (en) * 2006-01-11 2009-09-29 Solarflare Communications, Inc. Transmit rate pacing system and method
JP4883520B2 (ja) * 2006-01-24 2012-02-22 株式会社メガチップス メモリ制御装置およびメモリ制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001249770A (ja) * 2000-03-07 2001-09-14 Hitachi Ltd コマンドキューイングの機能を持つ記憶装置
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
JP2007249635A (ja) * 2006-03-16 2007-09-27 Nec Corp データ転送装置及びデータ転送方法

Also Published As

Publication number Publication date
JP2009259209A (ja) 2009-11-05
US20090248903A1 (en) 2009-10-01
US8601182B2 (en) 2013-12-03

Similar Documents

Publication Publication Date Title
JP4516999B2 (ja) データ通信制御装置、データ通信制御方法およびそのためのプログラム
JP5147584B2 (ja) ストレージサブシステム及びコントローラによるコマンド実行方法
JP2002269023A5 (ja)
TWI694330B (zh) 儲存裝置、電腦系統及儲存裝置之動作方法
US10089266B2 (en) Power saving feature for storage subsystems
US8843672B2 (en) Access method, computer and recording medium
JP2010102458A (ja) コマンドの起動を制御するストレージシステム及び方法
JP2009054083A (ja) プロセッサ、データ転送ユニット及びマルチコアプロセッサシステム
KR20180049340A (ko) 스토리지 장치 및 그것의 링크 상태 제어 방법
JP2011164750A (ja) ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
JP5377231B2 (ja) ジョブネット制御プログラムおよびジョブネット制御装置
US7908377B2 (en) Computer system and data sharing method
JP6229733B2 (ja) 情報処理装置、方法、プログラム及び記録媒体
JP6019940B2 (ja) 情報処理装置、コピー制御プログラム、およびコピー制御方法
JP5091694B2 (ja) 情報処理システム及び情報処理プログラム
JP2007188452A (ja) 入出力制御装置、入出力制御方法および入出力制御プログラム
JP6046523B2 (ja) インメモリ型分散データベース、データ分散方法及びプログラム
US8151028B2 (en) Information processing apparatus and control method thereof
CN110928827B (zh) 一种访问PCIe设备的优化的方法和设备
US6968437B2 (en) Read priority caching system and method
JP2010277422A (ja) 割り込み処理装置
JP5115122B2 (ja) 処理性能調整機能を有するモジュール,処理性能調整方法および処理性能調整プログラム
JP5828287B2 (ja) 仮想テープ装置およびテープマウント制御方法
JP3257484B2 (ja) コンピュータの通信フロー制御方式,方法および記録媒体
JP5146272B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100416

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees