JP2001290607A - デバイスドライバのコマンドキューイング制御方法及びコンピュータシステム - Google Patents

デバイスドライバのコマンドキューイング制御方法及びコンピュータシステム

Info

Publication number
JP2001290607A
JP2001290607A JP2000104863A JP2000104863A JP2001290607A JP 2001290607 A JP2001290607 A JP 2001290607A JP 2000104863 A JP2000104863 A JP 2000104863A JP 2000104863 A JP2000104863 A JP 2000104863A JP 2001290607 A JP2001290607 A JP 2001290607A
Authority
JP
Japan
Prior art keywords
request packet
write
command
computer
operating system
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
JP2000104863A
Other languages
English (en)
Inventor
Masahito Ikeuchi
政仁 池内
Toshihisa Takahashi
敏久 高橋
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2000104863A priority Critical patent/JP2001290607A/ja
Publication of JP2001290607A publication Critical patent/JP2001290607A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 最低限のI/O要求パケットを実行すること
でOSにデータを返送し、これによりシステムのパフォ
ーマンスを向上すること。 【解決手段】 デバイス2が接続されたホストコンピュ
ータにおいて、RAM5にオペレーティングシステム
(OS)4とデバイスドライバ3とを組み込み、デバイ
スドライバ3内にコマンドキューイング保存領域3aを
設ける。コマンドキューイング内に同一セクタの書き込
みI/O要求パケットが存在する場合は、先にキューイ
ングされている同一セクタの書き込みI/O要求パケッ
トをデバイス2に対し実行せず、最後の書き込みI/O
要求パケットのみを実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、デジタル計算機一
般又はデータ処理装置におけるデバイスドライバのコマ
ンドキューイング制御方法と、コマンドキューイング制
御方法をインストールしたコンピュータシステムと関す
る。
【0002】
【従来の技術】従来は、オペレーティングシステムから
発行された複数のI/O要求パケットのコマンドを、コ
マンドを実行するための情報(アドレスやデータ長等)
を格納するコマンドキュー内にキューイングし、このコ
マンド情報によって、キューイングされた順にコマンド
を実行する方法を採っていた。
【0003】図9はI/O要求パケットの内容例を示す
説明図である。(a)はキューイングされたコマンドを
示し、(b)は実行されるコマンドを示す。図9(a)
に示すように、コマンド番号0からコマンド番号7まで
が各I/O要求パケットとしてコマンドキューイング保
存領域にキューイングされたとする。例えばコマンド番
号0ではセクタアドレス00のデータを読み出し、次の
コマンド番号1ではセクタアドレス10にデータを書き
込み、・・・というコマンドが存在するものとする。こ
の場合、デバイスドライバは図9(b)に示すような順
序でコマンドを発行し、HDD又はDVD−RAM等の
デバイスを駆動する。
【0004】
【発明が解決しようとする課題】しかしながらこの方法
では、コマンドキュー内にキューイングされているI/
O要求パケットのコマンドに、同一セクタのI/O要求
パケットの書き込み・読み出し指示が存在していること
がある。例えば図9(b)において、先に実行されるコ
マンド番号1は10(W)であり、後から実行されるコ
マンド番号6の10(W)と動作が重複する。コマンド
番号2の20(W)もコマンド番号5の20(W)と動
作が重複する。またコマンド番号4の10(R)は、コ
マンド番号1で記録されたデータの読み出しを指示して
いる。この場合もキューイング順にコマンドが実行され
るため、同一セクタのI/O要求パケットの書き込み・
読み出しが再三に渡って行われてしまう。
【0005】例えば、データサイズの小さいファイルや
ディレクトリのコピーをしようとすると、同一セクタの
I/O要求パケット書き込み・読み出しのコマンドが再
三に渡って実行されることになり、これがシステムの処
理速度の低下につながるという問題があった。
【0006】本発明は、このような従来の問題点に鑑み
てなされたものであって、必要最低限のI/O要求パケ
ットを実行することでオペレーティングシステムにデー
タを返送し、これによりシステムのパフォーマンスを向
上できるデバイスドライバののコマンドキューイング制
御方法と、このコマンドキューイング制御方法をインス
トールしたコンピュータシステムとを実現することを目
的とする。
【0007】
【課題を解決するための手段】本願の請求項1の発明
は、コンピュータのオペレーティングシステムからのI
/O要求パケットに含まれるコマンドを、前記コンピュ
ータに接続されたデバイスに対して実行するために、前
記デバイスと通信制御するデバイスドライバを有するコ
ンピュータシステムにおいて、前記デバイスドライバが
前記オペレーティングシステムからの前記I/O要求パ
ケットをコマンドキューイング領域内にキューイング
し、前記コマンドキューイング領域内に同一セクタを共
有する書き込みI/O要求パケットが複数存在する場合
には、前記コマンドキューイング領域内に先にキューイ
ングされている書き込みI/O要求パケットにおいて前
記同一セクタに対する書き込みを前記デバイスに対して
実行せず、後からキューイングされた書き込みI/O要
求パケットを前記デバイスに対して実行することを特徴
とするものである。
【0008】本願の請求項2の発明は、コンピュータの
オペレーティングシステムからのI/O要求パケットに
含まれるコマンドを、前記コンピュータに接続されたデ
バイスに対して実行するために、前記デバイスと通信制
御するデバイスドライバを有するコンピュータシステム
において、前記デバイスドライバが前記オペレーティン
グシステムからの前記I/O要求パケットをコマンドキ
ューイング領域内にキューイングし、前記コマンドキュ
ーイング領域内に読み出しI/O要求パケットと同一セ
クタを共有する書き込みI/O要求パケットが存在すれ
ば、前記デバイスに対し前記読み出しI/O要求パケッ
トを実行せず、前記書き込みI/O要求パケット中のデ
ータバッファからデータを読み出し、前記オペレーティ
ングシステムへ前記データを返すことを特徴とするもの
である。
【0009】本願の請求項3の発明は、コンピュータの
オペレーティングシステムからのI/O要求パケットに
含まれるコマンドを、前記コンピュータに接続されたデ
バイスに対して実行するために、前記デバイスと通信制
御するデバイスドライバを有するコンピュータシステム
において、前記デバイスドライバが前記オペレーティン
グシステムからの前記I/O要求パケットをコマンドキ
ューイング領域内にキューイングし、前記コマンドキュ
ーイング領域内に同一の開始セクタアドレスと同一セク
タ数を有する書き込みI/O要求パケットが複数存在す
る場合、前記コマンドキューイング領域内に先にキュー
イングされている前記デバイスの同一セクタに対する前
記書き込みI/O要求パケットを前記デバイスに対して
実行せず、後からキューイングされた書き込みI/O要
求パケットのみを前記デバイスに対して実行することを
特徴とするものである。
【0010】本願の請求項4の発明は、コンピュータの
オペレーティングシステムからのI/O要求パケットに
含まれるコマンドを、前記コンピュータに接続されたデ
バイスに対して実行するために、前記デバイスと通信制
御するデバイスドライバを有するコンピュータシステム
において、前記デバイスドライバが前記オペレーティン
グシステムからの前記I/O要求パケットをコマンドキ
ューイング領域内にキューイングし、前記コマンドキュ
ーイング領域内に先にキューイングされた書き込みI/
O要求パケットと同一の開始セクタアドレスとセクタ数
とを有し、後からキューイングされた読み出しI/O要
求パケットが存在する場合、前記読み出しI/O要求パ
ケットを前記デバイスに対して実行することなく、前記
書き込みI/O要求パケット中のデータバッファからデ
ータを読み出し、前記オペレーティングシステムへ前記
データを返すことを特徴とするものである。
【0011】本願の請求項5の発明は、コンピュータの
オペレーティングシステムからのI/O要求パケットに
含まれるコマンドを、前記コンピュータに接続されたデ
バイスに対して実行するために、前記デバイスと通信制
御するデバイスドライバを有するコンピュータシステム
において、前記デバイスドライバが前記オペレーティン
グシステムからの前記I/O要求パケットをコマンドキ
ューイング領域内にキューイングし、前記コマンドキュ
ーイング領域内に同一開始セクタアドレスを有し、セク
タ数の異なる書き込みI/O要求パケットが複数存在す
る場合、セクタ数の少ない方の前記書き込みI/O要求
パケットを前記デバイスに対して実行せず、前記コマン
ドキューイング領域内にキューイングされているセクタ
数の多い方の前記書き込みI/O要求パケットのみを前
記デバイスに対して実行することを特徴とするものであ
る。
【0012】本願の請求項6の発明は、コンピュータの
オペレーティングシステムからのI/O要求パケットに
含まれるコマンドを、前記コンピュータに接続されたデ
バイスに対して実行するために、前記デバイスと通信制
御するデバイスドライバを有するコンピュータシステム
において、前記デバイスドライバが前記オペレーティン
グシステムからの前記I/O要求パケットをコマンドキ
ューイング領域内にキューイングし、前記コマンドキュ
ーイング領域内に同一の開始セクタアドレスを有し、先
にキューイングされたセクタ数の大きい書き込みI/O
要求パケットと、後からキューイングされたセクタ数の
小さい読み出しI/O要求パケットとが存在する場合、
セクタ数の小さい前記読み出しI/O要求パケットを前
記デバイスに対して実行せず、セクタ数の多い前記書き
込みI/O要求パケットのみを前記デバイスに対して実
行し、前記書き込みI/O要求パケット中のデータバッ
ファからデータを読み出し、前記オペレーティングシス
テムへ前記データを返すことを特徴とするものである。
【0013】本願の請求項7の発明は、コンピュータの
オペレーティングシステムからのI/O要求パケットに
含まれるコマンドを、前記コンピュータに接続されたデ
バイスに対して実行するために、前記デバイスと通信制
御するデバイスドライバを有するコンピュータシステム
において、前記デバイスドライバが前記オペレーティン
グシステムからの前記I/O要求パケットをコマンドキ
ューイング領域内にキューイングし、前記コマンドキュ
ーイング領域内に互いに異なる開始セクタアドレスと異
なるセクタ数とを有する書き込みI/O要求パケットが
複数存在し、一方の書き込みI/O要求パケットのセク
タが他方の書き込みI/O要求パケットのセクタ内に含
まれてしまう場合、前記一方の書き込みI/O要求パケ
ットを前記デバイスに対して実行せず、前記他方の書き
込みI/O要求パケットのみを前記デバイスに対して実
行することを特徴とするものである。
【0014】本願の請求項8の発明は、コンピュータの
オペレーティングシステムからのI/O要求パケットに
含まれるコマンドを、前記コンピュータに接続されたデ
バイスに対して実行するために、前記デバイスと通信制
御するデバイスドライバを有するコンピュータシステム
において、前記デバイスドライバが前記オペレーティン
グシステムからの前記I/O要求パケットをコマンドキ
ューイング領域内にキューイングし、前記コマンドキュ
ーイング領域内に互いに異なる開始セクタアドレスと異
なるセクタ数とを有するI/O要求パケットが複数存在
し、後からキューイングされた読み出しI/O要求パケ
ットのセクタが先にキューイングされた書き込みI/O
要求パケットのセクタ内に含まれてしまう場合、後から
キューイングされた読み出しI/O要求パケットを前記
デバイスに対して実行せず、先にキューイングされた書
き込みI/O要求パケットのみを前記デバイスに対して
実行し、前記書き込みI/O要求パケット中のデータバ
ッファからデータを読み出し、前記オペレーティングシ
ステムへ前記データを返すことを特徴とするものであ
る。
【0015】本願の請求項9の発明は、請求項1〜8の
いずれか1項記載のデバイスドライバのコマンドキュー
イング制御方法を制御プログラムとしてインストールし
たことを特徴とするものである。
【0016】
【発明の実施の形態】本発明の実施の形態におけるにデ
バイスドライバのコマンドキューイング制御方法とコン
ピュータシステムとについて、図1〜図3を用いて説明
する。図1は本実施の形態において制御対象となるコン
ピュータシステムの構成図である。図2はコンピュータ
システムの起動時の動作を示すフローチャートである。
また図3はデバイスドライバの動作手順を示すフローチ
ャートである。
【0017】図1において、コンピュータシステム(以
下、コンピュータ又はホストコンピュータという)のハ
ードウェアは、CPU1、デバイス2、RAM5、アダ
プタ6を含んで構成される。デバイス2はホストコンピ
ュータの指示によりディスク状記録媒体に情報の記録又
は読み出しを行うもので、HDD、DVD−RAM、C
D−R、CD−RW、CD−ROM、DVD−R、DV
D−RW、フレキシブルディスク等がある。デバイス2
はATAPI又はSCSIによりアダプタ6に接続され
る。RAM5にはオペレーティングシステム(OS)4
とデバイスドライバ3とが組み込まれる。またデバイス
ドライバ3にはコマンドキューイング保存領域3aが設
けられている。
【0018】デバイスドライバ3はデバイス2をコント
ロールするためのドライバである。コマンドキューイン
グ保存領域3aは、オペレーティングシステム4からの
I/O要求パケットをキューイングするためにデバイス
ドライバ3に設けられた保存領域である。アダプタ6は
デバイス2をCPU1に接続してアクセスを行うもので
ある。
【0019】このように構成されたコンピュータの動作
を図2及び図3を用いて説明する。図2において、ステ
ップS1でシステムが起動されると、ステップS2に移
り、ディバイスドライバの組込が行われる。即ち図1の
RAM5中にオペレーティングシステム4とデバイスド
ライバ3が組み込まれ、ステップS3で立ち上げ処理が
終了する。
【0020】図3において、ステップT1においてシス
テムが通常動作の状態に入ると、ステップT2に進み、
I/O要求パケットが発行される。即ちオペレーティン
グシステム4からデバイス2に対し、デバイスドライバ
3を介してI/O要求パケットが発行される。次のステ
ップT3に進むと、I/O要求パケットのキューイング
が行われる。ここではデバイスドライバ3は、発行され
たI/O要求パケットをキューイングしてコマンドキュ
ーイング保存領域3aへ保存する。
【0021】次にステップT4に進み、コマンドキュー
イング保存領域3aに同一セクタの書き込み・読み出し
I/O要求パケットが存在するか否かを調べる。同一セ
クタの書き込みI/O要求パケット又は読み出しI/O
要求パケットが存在する場合は、I/O要求パケットが
書き込みか、読み出しかを識別する。識別結果が書き込
みの場合ステップT5に分岐し、読み出しの場合はステ
ップT6に分岐する。ステップT5では、コマンドキュ
ーイング保存領域3aに同一セクタの書き込みI/O要
求パケットが存在するか否かを調べる。またステップT
6では、コマンドキューイング保存領域3aに同一セク
タの読み出しI/O要求パケットが存在するか否かを調
べる。
【0022】ステップT5において、同一セクタの書き
込みI/O要求パケットが存在した場合はステップT7
に分岐し、I/O要求パケットの削除を行う。即ち、コ
マンドキューイング保存領域3aの同一セクタを含む書
き込みI/O要求パケットを削除する。またステップT
6において、同一セクタの読み出しI/O要求パケット
が存在する場合はステップT8に進む。ステップT8で
は、コマンドキューイング保存領域3aの同一セクタを
含む書き込みI/O要求パケットのデータバッファから
データを読み出し、オペレーティングシステム4へ返
す。そしてステップT7に進み、読み出しI/O要求パ
ケットを削除する。
【0023】ステップT7の処理が終了したり、ステッ
プT5で同一セクタの書き込みI/O要求パケットが存
在しないと判定されたり、ステップT6で同一セクタの
読み出しI/O要求パケットが存在しないと判定された
場合は、ステップT9に進んで他のI/O要求パケット
の処理が実行される。即ち、他のセクタに対するコマン
ドキューイング保存領域3aの書き込み・読み出しI/
O要求パケットを実行する。読み出しI/O要求パケッ
トの場合は、デバイス2より取得した読み出しデータを
オペレーティングシステム4へ返送する。そしてコマン
ドキューイング保存領域3aの全てのI/O要求パケッ
トの処理が実行されたら、ステップT10に進み、処理
を終了する。
【0024】このような制御を行うと、必要最低限のI
/O要求パケットが実行されることになり、デバイス2
に対するアクセスを削減することができる。図4は図9
と対比して記載したI/O要求パケットの内容例を示す
説明図である。図4の(a)はキューイングされたコマ
ンドを示し、(b)は実行されるコマンドと削除される
コマンドとを示す説明図である。削除されたコマンドは
×印で示す。例えば図4(b)において、先に実行され
るべきコマンド番号1は、後から実行されるコマンド番
号6と動作が重複するので、コマンド番号1は削除され
る。同様にコマンド番号2も削除される。またコマンド
番号4の10(R)は、コマンド番号1又は6で記録さ
れるデータの読み出しを指示しているが、デバイス2に
対してアクセスを行わず、デバイスライバ3内のバッフ
ァメモリのデータを読み出すことにより、コマンド番号
4の処理をCPU1とRAM5の動作だけで行えること
になる。
【0025】次に前後のコマンドでセクタアドレスが異
なり、セクタ数も異なる場合について具体的事例で説明
する。図5(a)に示すI/O要求パケットでは、コマ
ンド番号0の書き込み範囲の一部と、コマンド番号3の
書き込み範囲の一部とが一致している。この場合、コマ
ンド番号0の10(W)において、セクタアドレス10
〜14(5セクタ)分はデバイス2に対してコマンドを
実行し、残りの15〜29(15セクタ)分はコマンド
番号3の15(W)に含まれ重複するので、デバイス2
に対してこの部分のコマンドを実行しない。
【0026】このように、先ずデバイスドライバ3がオ
ペレーティングシステム4からのI/O要求パケットを
コマンドキューイング領域内にキューイングする。そし
て、コマンドキューイング領域内に同一セクタを共有す
る書き込みI/O要求パケットが複数存在する場合に
は、コマンドキューイング領域内に先にキューイングさ
れている書き込みI/O要求パケットにおいて同一セク
タに対する書き込みをデバイス2に対して実行せず、後
からキューイングされた書き込みI/O要求パケットを
デバイス2に対して実行するものとする。
【0027】図5(b)に示すI/O要求パケットで
は、コマンド番号0の書き込み範囲の一部と、コマンド
番号3の読み出し範囲の一部とが一致している。この場
合、セクタアドレス15(R)の15〜29(15セク
タ)分はコマンド番号0の10(W)からデータを取得
し、30〜39(10セクタ)分はデバイス2に対して
コマンドを実行する。
【0028】このように、先ずデバイスドライバ3がオ
ペレーティングシステム4からのI/O要求パケットを
コマンドキューイング領域内にキューイングする。そし
て、コマンドキューイング領域内に読み出しI/O要求
パケットと同一セクタを共有する書き込みI/O要求パ
ケットが存在すれば、デバイス2に対し読み出しI/O
要求パケットを実行せず、書き込みI/O要求パケット
中のデータバッファからデータを読み出し、オペレーテ
ィングシステム4へデータを返すものとする。
【0029】次に前後のコマンドでセクタアドレスが同
一で、セクタ数も同一の場合について具体的事例で説明
する。図6(a)に示すI/O要求パケットでは、コマ
ンド番号0の書き込み範囲と、コマンド番号3の書き込
み範囲とが一致している。この場合、コマンド番号0の
10(W)はデバイス2に対して実行せず、コマンド番
号3の10(W)のみをデバイス2に対して実行する。
【0030】このように、先ずデバイスドライバ3がオ
ペレーティングシステム4からのI/O要求パケットを
コマンドキューイング領域内にキューイングする。そし
てコマンドキューイング領域内に同一の開始セクタアド
レスと同一セクタ数を有する書き込みI/O要求パケッ
トが複数存在する場合、コマンドキューイング領域内に
先にキューイングされているデバイス2の同一セクタに
対する書き込みI/O要求パケットをデバイス2に対し
て実行せず、後からキューイングされた書き込みI/O
要求パケットのみをデバイス2に対して実行するものと
する。
【0031】図6(b)に示すI/O要求パケットで
は、コマンド番号0の書き込み範囲と、コマンド番号3
の読み出し範囲とが一致している。この場合、コマンド
番号3の10(R)はデバイス2に対して実行せず、コ
マンド番号0の10(W)からデータを取得する。
【0032】このように、コマンドキューイング領域内
に先にキューイングされた書き込みI/O要求パケット
と同一の開始セクタアドレスとセクタ数とを有し、後か
らキューイングされた読み出しI/O要求パケットが存
在する場合、読み出しI/O要求パケットをデバイス2
に対して実行することなく、書き込みI/O要求パケッ
ト中のデータバッファからデータを読み出し、オペレー
ティングシステム4へデータを返すものとする。
【0033】次に前後のコマンドでセクタアドレスが同
一で、セクタ数が異なる場合について具体的事例で説明
する。図7(a)に示すI/O要求パケットでは、コマ
ンド番号0の書き込み範囲は、コマンド番号3の書き込
み範囲に含まれる。この場合、コマンド番号0の10
(W)20はデバイス2に対して実行せず、コマンド番
号3の10(W)30のみをデバイス2に対して実行す
る。
【0034】このように、コマンドキューイング領域内
に同一開始セクタアドレスを有し、セクタ数の異なる書
き込みI/O要求パケットが複数存在する場合、セクタ
数の少ない方の書き込みI/O要求パケットをデバイス
2に対して実行せず、コマンドキューイング領域内にキ
ューイングされているセクタ数の多い方の書き込みI/
O要求パケットのみをデバイス2に対して実行するもの
とする。
【0035】図7(b)に示すI/O要求パケットで
は、コマンド番号3の読み出し範囲は、コマンド番号0
の書き込み範囲に含まれる。この場合、コマンド番号3
の10(R)5はデバイス2に対して実行せず、コマン
ド番号0の10(W)20からデータを取得する。
【0036】このように、コマンドキューイング領域内
に同一の開始セクタアドレスを有し、先にキューイング
されたセクタ数の大きい書き込みI/O要求パケット
と、後からキューイングされたセクタ数の小さい読み出
しI/O要求パケットとが存在する場合、セクタ数の小
さい読み出しI/O要求パケットをデバイス2に対して
実行せず、セクタ数の多い書き込みI/O要求パケット
のみをデバイス2に対して実行し、書き込みI/O要求
パケット中のデータバッファからデータを読み出し、オ
ペレーティングシステム4へデータを返すものとする。
【0037】次に前後のコマンドでセクタアドレスが異
なり、セクタ数が同一の場合について具体的事例で説明
する。図8(a)に示すI/O要求パケットでは、コマ
ンド番号0の書き込み範囲は、コマンド番号3の書き込
み範囲に含まれる。この場合、コマンド番号0の10
(W)20をデバイス2に対して実行せず、コマンド番
号3の0(W)30のみをデバイス2に対して実行す
る。
【0038】このように、コマンドキューイング領域内
に互いに異なる開始セクタアドレスと異なるセクタ数と
を有する書き込みI/O要求パケットが複数存在し、一
方の書き込みI/O要求パケットのセクタが他方の書き
込みI/O要求パケットのセクタ内に含まれてしまう場
合、一方の書き込みI/O要求パケットをデバイスに2
対して実行せず、他方の書き込みI/O要求パケットの
みをデバイス2に対して実行するものとする。
【0039】図8(b)に示すI/O要求パケットで
は、コマンド番号3の読み出し範囲は、コマンド番号0
の書き込み範囲に含まれる。この場合、コマンド番号3
の15(R)2をデバイス2に対して実行せず、コマン
ド番号0の10(W)20からデータを取得する。
【0040】このように、コマンドキューイング領域内
に互いに異なる開始セクタアドレスと異なるセクタ数と
を有するI/O要求パケットが複数存在し、後からキュ
ーイングされた読み出しI/O要求パケットのセクタが
先にキューイングされた書き込みI/O要求パケットの
セクタ内に含まれてしまう場合、後からキューイングさ
れた書き込み読み出しI/O要求パケットをデバイス2
に対して実行せず、先にキューイングされた書き込みI
/O要求パケットのみをデバイス2に対して実行し、書
き込みI/O要求パケット中のデータバッファからデー
タを読み出し、オペレーティングシステム4へデータを
返すものとする。
【0041】
【発明の効果】本発明のデバイスドライバのコマンドキ
ューイング制御方法によれば、オペレーティングシステ
ムからのI/O要求パケットで、同一セクタを含むよう
な重複するI/O要求パケットを取り除くことで、デバ
イスに対するコマンド実行回数を削減することができ
る。
【0042】特に請求項1記載の発明によれば、同一セ
クタを共有する書き込みI/O要求パケットが複数存在
する場合に、システムのパフォーマンスを上げることが
できる。
【0043】特に請求項2記載の発明によれば、コマン
ドキューイング内に書き込みI/O要求パケットと同一
セクタを共有する読み出しI/O要求パケットが存在す
る場合に、システムのパフォーマンスを上げることがで
きる。
【0044】特に請求項3記載の発明によれば、コマン
ドキューイング内に同一の開始セクタアドレスとセクタ
数とを有する書き込みI/O要求パケットが存在する場
合に、システムのパフォーマンスを上げることができ
る。
【0045】特に請求項4記載の発明によれば、コマン
ドキューイング内に読み出しI/O要求パケットと同一
の開始セクタアドレスとセクタ数とを有する書き込みI
/O要求パケットが存在する場合に、システムのパフォ
ーマンスを上げることができる。
【0046】特に請求項5記載の発明によれば、セクタ
数は異なるが、コマンドキュー内にこれより小さいセク
タ数を有する書き込みI/O要求パケットが存在する場
合に、システムのパフォーマンスを上げることができ
る。
【0047】特に請求項6記載の発明によれば、セクタ
数は異なるが、コマンドキュー内にこれより大きいセク
タ数を有する書き込みI/O要求パケットが存在する場
合に、システムのパフォーマンスを上げることができ
る。
【0048】特に請求項7記載の発明によれば、開始セ
クタアドレスとセクタ数の両方ともが異るが、コマンド
キューイング内にI/Oパケット要求のセクタ範囲を全
て含まれてしまう書き込みI/O要求パケットが存在す
る場合に、システムのパフォーマンスを上げることがで
きる。
【0049】特に請求項8記載の発明によれば、開始セ
クタアドレスとセクタ数の両方ともが異るが、コマンド
キューイング内にI/Oパケット要求のセクタ範囲を全
て含んでしまう書き込みI/O要求パケットが存在する
場合に、システムのパフォーマンスを上げることができ
る。
【0050】特に請求項9記載の発明によれば、請求項
1〜8のいずれか1項記載のデバイスドライバのコマン
ドキューイング制御方法をインストールしたコンピュー
タを実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態のコマンドキューイング制
御方法が用いられるコンピュータシステムの構成図であ
る。
【図2】本実施の形態のコンピュータシステムの起動時
の動作を示すフローチャートである。
【図3】本実施の形態のコンピュータシステムにおい
て、オペレーティングシステムがデバイスドライバにI
/O要求パケットを発行したときの動作を示すフローチ
ャートである。
【図4】本実施の形態のI/O要求パケットと実行コマ
ンドの内容(その1)を示す説明図である。
【図5】本実施の形態のI/O要求パケットと実行コマ
ンドの内容(その2)を示す説明図である。
【図6】本実施の形態のI/O要求パケットと実行コマ
ンドの内容(その3)を示す説明図である。
【図7】本実施の形態のI/O要求パケットと実行コマ
ンドの内容(その4)を示す説明図である。
【図8】本実施の形態のI/O要求パケットと実行コマ
ンドの内容(その5)を示す説明図である。
【図9】従来のコンピュータシステムにおいて、I/O
要求パケットと実行コマンドの内容を示す説明図であ
る。
【符号の説明】
1 CPU 2 デバイス 3 デバイスドライバ 3a コマンドキューイング保存領域 4 オペレーティングシステム 5 ホストコンピュータ上のRAM 6 アダプタ

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータのオペレーティングシステ
    ムからのI/O要求パケットに含まれるコマンドを、前
    記コンピュータに接続されたデバイスに対して実行する
    ために、前記デバイスと通信制御するデバイスドライバ
    を有するコンピュータシステムにおいて、 前記デバイスドライバが前記オペレーティングシステム
    からの前記I/O要求パケットをコマンドキューイング
    領域内にキューイングし、 前記コマンドキューイング領域内に同一セクタを共有す
    る書き込みI/O要求パケットが複数存在する場合に
    は、前記コマンドキューイング領域内に先にキューイン
    グされている書き込みI/O要求パケットにおいて前記
    同一セクタに対する書き込みを前記デバイスに対して実
    行せず、後からキューイングされた書き込みI/O要求
    パケットを前記デバイスに対して実行することを特徴と
    するデバイスドライバのコマンドキューイング制御方
    法。
  2. 【請求項2】 コンピュータのオペレーティングシステ
    ムからのI/O要求パケットに含まれるコマンドを、前
    記コンピュータに接続されたデバイスに対して実行する
    ために、前記デバイスと通信制御するデバイスドライバ
    を有するコンピュータシステムにおいて、 前記デバイスドライバが前記オペレーティングシステム
    からの前記I/O要求パケットをコマンドキューイング
    領域内にキューイングし、 前記コマンドキューイング領域内に読み出しI/O要求
    パケットと同一セクタを共有する書き込みI/O要求パ
    ケットが存在すれば、前記デバイスに対し前記読み出し
    I/O要求パケットを実行せず、前記書き込みI/O要
    求パケット中のデータバッファからデータを読み出し、
    前記オペレーティングシステムへ前記データを返すこと
    を特徴とするデバイスドライバのコマンドキューイング
    制御方法。
  3. 【請求項3】 コンピュータのオペレーティングシステ
    ムからのI/O要求パケットに含まれるコマンドを、前
    記コンピュータに接続されたデバイスに対して実行する
    ために、前記デバイスと通信制御するデバイスドライバ
    を有するコンピュータシステムにおいて、 前記デバイスドライバが前記オペレーティングシステム
    からの前記I/O要求パケットをコマンドキューイング
    領域内にキューイングし、 前記コマンドキューイング領域内に同一の開始セクタア
    ドレスと同一セクタ数を有する書き込みI/O要求パケ
    ットが複数存在する場合、前記コマンドキューイング領
    域内に先にキューイングされている前記デバイスの同一
    セクタに対する前記書き込みI/O要求パケットを前記
    デバイスに対して実行せず、後からキューイングされた
    書き込みI/O要求パケットのみを前記デバイスに対し
    て実行することを特徴とするデバイスドライバのコマン
    ドキューイング制御方法。
  4. 【請求項4】 コンピュータのオペレーティングシステ
    ムからのI/O要求パケットに含まれるコマンドを、前
    記コンピュータに接続されたデバイスに対して実行する
    ために、前記デバイスと通信制御するデバイスドライバ
    を有するコンピュータシステムにおいて、 前記デバイスドライバが前記オペレーティングシステム
    からの前記I/O要求パケットをコマンドキューイング
    領域内にキューイングし、 前記コマンドキューイング領域内に先にキューイングさ
    れた書き込みI/O要求パケットと同一の開始セクタア
    ドレスとセクタ数とを有し、後からキューイングされた
    読み出しI/O要求パケットが存在する場合、前記読み
    出しI/O要求パケットを前記デバイスに対して実行す
    ることなく、前記書き込みI/O要求パケット中のデー
    タバッファからデータを読み出し、前記オペレーティン
    グシステムへ前記データを返すことを特徴とするデバイ
    スドライバのコマンドキューイング制御方法。
  5. 【請求項5】 コンピュータのオペレーティングシステ
    ムからのI/O要求パケットに含まれるコマンドを、前
    記コンピュータに接続されたデバイスに対して実行する
    ために、前記デバイスと通信制御するデバイスドライバ
    を有するコンピュータシステムにおいて、 前記デバイスドライバが前記オペレーティングシステム
    からの前記I/O要求パケットをコマンドキューイング
    領域内にキューイングし、 前記コマンドキューイング領域内に同一開始セクタアド
    レスを有し、セクタ数の異なる書き込みI/O要求パケ
    ットが複数存在する場合、セクタ数の少ない方の前記書
    き込みI/O要求パケットを前記デバイスに対して実行
    せず、前記コマンドキューイング領域内にキューイング
    されているセクタ数の多い方の前記書き込みI/O要求
    パケットのみを前記デバイスに対して実行することを特
    徴とするデバイスドライバのコマンドキューイング制御
    方法。
  6. 【請求項6】 コンピュータのオペレーティングシステ
    ムからのI/O要求パケットに含まれるコマンドを、前
    記コンピュータに接続されたデバイスに対して実行する
    ために、前記デバイスと通信制御するデバイスドライバ
    を有するコンピュータシステムにおいて、 前記デバイスドライバが前記オペレーティングシステム
    からの前記I/O要求パケットをコマンドキューイング
    領域内にキューイングし、 前記コマンドキューイング領域内に同一の開始セクタア
    ドレスを有し、先にキューイングされたセクタ数の大き
    い書き込みI/O要求パケットと、後からキューイング
    されたセクタ数の小さい読み出しI/O要求パケットと
    が存在する場合、セクタ数の小さい前記読み出しI/O
    要求パケットを前記デバイスに対して実行せず、セクタ
    数の多い前記書き込みI/O要求パケットのみを前記デ
    バイスに対して実行し、前記書き込みI/O要求パケッ
    ト中のデータバッファからデータを読み出し、前記オペ
    レーティングシステムへ前記データを返すことを特徴と
    するデバイスドライバのコマンドキューイング制御方
    法。
  7. 【請求項7】 コンピュータのオペレーティングシステ
    ムからのI/O要求パケットに含まれるコマンドを、前
    記コンピュータに接続されたデバイスに対して実行する
    ために、前記デバイスと通信制御するデバイスドライバ
    を有するコンピュータシステムにおいて、 前記デバイスドライバが前記オペレーティングシステム
    からの前記I/O要求パケットをコマンドキューイング
    領域内にキューイングし、 前記コマンドキューイング領域内に互いに異なる開始セ
    クタアドレスと異なるセクタ数とを有する書き込みI/
    O要求パケットが複数存在し、一方の書き込みI/O要
    求パケットのセクタが他方の書き込みI/O要求パケッ
    トのセクタ内に含まれてしまう場合、前記一方の書き込
    みI/O要求パケットを前記デバイスに対して実行せ
    ず、前記他方の書き込みI/O要求パケットのみを前記
    デバイスに対して実行することを特徴とするデバイスド
    ライバのコマンドキューイング制御方法。
  8. 【請求項8】 コンピュータのオペレーティングシステ
    ムからのI/O要求パケットに含まれるコマンドを、前
    記コンピュータに接続されたデバイスに対して実行する
    ために、前記デバイスと通信制御するデバイスドライバ
    を有するコンピュータシステムにおいて、 前記デバイスドライバが前記オペレーティングシステム
    からの前記I/O要求パケットをコマンドキューイング
    領域内にキューイングし、 前記コマンドキューイング領域内に互いに異なる開始セ
    クタアドレスと異なるセクタ数とを有するI/O要求パ
    ケットが複数存在し、後からキューイングされた読み出
    しI/O要求パケットのセクタが先にキューイングされ
    た書き込みI/O要求パケットのセクタ内に含まれてし
    まう場合、後からキューイングされた読み出しI/O要
    求パケットを前記デバイスに対して実行せず、先にキュ
    ーイングされた書き込みI/O要求パケットのみを前記
    デバイスに対して実行し、前記書き込みI/O要求パケ
    ット中のデータバッファからデータを読み出し、前記オ
    ペレーティングシステムへ前記データを返すことを特徴
    とするデバイスドライバのコマンドキューイング制御方
    法。
  9. 【請求項9】 請求項1〜8のいずれか1項記載のデバ
    イスドライバのコマンドキューイング制御方法を制御プ
    ログラムとしてインストールしたことを特徴とするコン
    ピュータシステム。
JP2000104863A 2000-04-06 2000-04-06 デバイスドライバのコマンドキューイング制御方法及びコンピュータシステム Pending JP2001290607A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000104863A JP2001290607A (ja) 2000-04-06 2000-04-06 デバイスドライバのコマンドキューイング制御方法及びコンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000104863A JP2001290607A (ja) 2000-04-06 2000-04-06 デバイスドライバのコマンドキューイング制御方法及びコンピュータシステム

Publications (1)

Publication Number Publication Date
JP2001290607A true JP2001290607A (ja) 2001-10-19

Family

ID=18618334

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000104863A Pending JP2001290607A (ja) 2000-04-06 2000-04-06 デバイスドライバのコマンドキューイング制御方法及びコンピュータシステム

Country Status (1)

Country Link
JP (1) JP2001290607A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4866464B2 (ja) * 2007-07-26 2012-02-01 富士通株式会社 記憶部制御装置,記憶部制御システム,記憶部制御プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP2012514809A (ja) * 2009-01-09 2012-06-28 マイクロン テクノロジー, インク. コマンドの変更
US8573485B2 (en) 2006-04-05 2013-11-05 Sony Corporation Information processing apparatus and method and program for mediating applications
JP2015041290A (ja) * 2013-08-22 2015-03-02 株式会社東芝 ストレージ装置
JP2021039396A (ja) * 2019-08-30 2021-03-11 富士通株式会社 通信制御装置、通信制御方法及び通信制御プログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8573485B2 (en) 2006-04-05 2013-11-05 Sony Corporation Information processing apparatus and method and program for mediating applications
JP4866464B2 (ja) * 2007-07-26 2012-02-01 富士通株式会社 記憶部制御装置,記憶部制御システム,記憶部制御プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
JP2012514809A (ja) * 2009-01-09 2012-06-28 マイクロン テクノロジー, インク. コマンドの変更
US8966231B2 (en) 2009-01-09 2015-02-24 Micron Technology, Inc. Modifying commands
JP2015041290A (ja) * 2013-08-22 2015-03-02 株式会社東芝 ストレージ装置
JP2021039396A (ja) * 2019-08-30 2021-03-11 富士通株式会社 通信制御装置、通信制御方法及び通信制御プログラム
JP7318423B2 (ja) 2019-08-30 2023-08-01 富士通株式会社 通信制御装置、通信制御方法及び通信制御プログラム

Similar Documents

Publication Publication Date Title
US6915378B2 (en) Method and system for improving the performance of a processing system
JP4252139B2 (ja) 記憶装置システム
US7330947B2 (en) Method and apparatus for backing up data in virtual storage medium
JP2000148604A (ja) 記憶装置の制御方法
JP2001134482A (ja) データ処理システムにおいて独立したデータコピーを行う方法
JPH1031560A (ja) Cd−romディスクドライバにおける命令実行方法
US7640588B2 (en) Data processing system and method
JP4461089B2 (ja) ストレージ制御装置およびストレージ制御方法
JP2001290607A (ja) デバイスドライバのコマンドキューイング制御方法及びコンピュータシステム
JP2001228977A (ja) 記憶装置及びそのアクセス制御方法
JP4984677B2 (ja) 情報処理装置
JPH01140326A (ja) 磁気ディスク装置
JPH05289818A (ja) ディスクアレイ制御方式
JP4345559B2 (ja) 情報処理装置および情報処理方法、並びにプログラムおよびプログラム記録媒体
JP2004102440A (ja) コマンド処理方法及び記憶装置
JP4232678B2 (ja) 情報処理装置および情報処理方法、並びにプログラムおよびプログラム記録媒体
JP3376316B2 (ja) ディスクアレイ装置及びそれに用いる高速通信方法並びにその制御プログラムを記録した記録媒体
JP2006039756A (ja) 媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システム
JP2001051804A (ja) ミラーディスク制御装置
JPH11265262A (ja) 高速ライトキャッシュディスク装置
JPH0628779A (ja) ディスク装置におけるデータ記録制御方法
JPH05165579A (ja) ミラードディスク制御装置
JPH09293007A (ja) プログラムインストール装置
US20030200385A1 (en) Method and system for increasing disk drive performance
JPH06266588A (ja) データベース管理システム