JP2001125829A - コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法 - Google Patents

コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法

Info

Publication number
JP2001125829A
JP2001125829A JP30660599A JP30660599A JP2001125829A JP 2001125829 A JP2001125829 A JP 2001125829A JP 30660599 A JP30660599 A JP 30660599A JP 30660599 A JP30660599 A JP 30660599A JP 2001125829 A JP2001125829 A JP 2001125829A
Authority
JP
Japan
Prior art keywords
request
command
storage device
cancel
speculative
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
JP30660599A
Other languages
English (en)
Other versions
JP2001125829A5 (ja
Inventor
Atsushi Kanamaru
淳 金丸
Hideo Asano
秀夫 浅野
Akira Kihashi
昭 木橋
Koichi Kushida
弘一 櫛田
Takahiro Saito
高裕 齋藤
Uu Chichen
ウー チチェン
Kao Kelvin
カオ ケルビン
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.)
PROMISE TECHNOLOGY Inc
International Business Machines Corp
Original Assignee
PROMISE TECHNOLOGY Inc
International Business Machines 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 PROMISE TECHNOLOGY Inc, International Business Machines Corp filed Critical PROMISE TECHNOLOGY Inc
Priority to JP30660599A priority Critical patent/JP2001125829A/ja
Priority to US09/698,344 priority patent/US6721854B1/en
Publication of JP2001125829A publication Critical patent/JP2001125829A/ja
Publication of JP2001125829A5 publication Critical patent/JP2001125829A5/ja
Pending legal-status Critical Current

Links

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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 アプリケーションからの真の要求に対して外
部コントローラにより詳細な解析・予測を行い、HDD
等の補助記憶装置に対して先読み要求を発行する。 【解決手段】 データを記憶すると共にキャッシュメモ
リを有するHDD装置22に接続され、このHDD装置
22を制御するHDCカード21であって、ホストにて
実行されるアプリケーションプログラムからなされる真
のアクセス要求を、アプリケーションプログラムから直
接トレースするアクセス要求トレース部61と、トレー
スされた真のアクセス要求に基づいて今後予想される投
機的要求を決定する投機的要求決定部62と、決定され
た投機的要求をHDD装置22に対して発行するHDC
31とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、補助記憶装置を用
いたコンピュータ装置または制御方法に関し、特にキャ
ッシュメモリを用いてシステム全体のパフォーマンスの
向上を図るための装置または方法に関する。
【0002】
【従来の技術】近年のコンピュータシステムでは、CP
Uやシステム・メモリ、HDD(ハードディスクドライ
ブ:Hard Disk Drive)に代表される補助記憶装置(外部
記憶装置)等により構成され、これらはデータ転送速度
がそれぞれ異なるデバイスによって構成されている。こ
れらのデバイスによって構成されるコンピュータシステ
ムの性能を考えたときに、CPUやシステム・メモリの
データ転送速度スピードに比べて、HDDをはじめとす
る補助記憶装置のスピードがはるかに遅い。一般に、シ
ステム全体のデータ転送速度は、その速度の遅いデバイ
スによって支配されることから、これらの補助記憶装置
の遅れがシステム全体におけるシステム性能のボトルネ
ックとなっているのが現実である。
【0003】これらのデバイス間の速度差を緩衝して処
理速度を向上させるために、コンピュータシステムで
は、一般に、キャッシュメモリが設けられている。この
キャッシュメモリは、例えばCPUと主記憶装置との間
に置かれ、一度CPUが使用したデータや命令を、主記
憶装置より高速なキャッシュメモリへ保存し、2回目か
らはこのキャッシュメモリから読み込み、主記憶装置へ
は直接入出力を行わないようにすることによって処理の
高速化を図るものである。
【0004】一方、補助記憶装置(外部記憶装置)である
HDDでも磁気ディスク(メディア:媒体)の一部のデー
タを保持するキャッシュメモリが設けられ、予測される
要求データを予めこのキャッシュメモリに入れておくこ
とで、基本性能の向上と時間のかかる媒体へのアクセス
を最小限に抑えるように構成されている。このように要
求されているデータが予めキャッシュメモリに入ってい
れば、HDDのアクセス時間はシステム全体から見ても
性能のボトルネックになることはない。
【0005】ここで、このような要求されるデータを予
測する方法として、“Look Ahead”と呼ばれる先読みに
よるデータ読み出しのアルゴリズムが、最も一般的に採
用されている。この“Look Ahead”は、要求されたデー
タの先(要求されたアドレスよりも大きいアドレス)のデ
ータを予め読み出す技法、即ち、ホスト装置から要求さ
れる要求データの領域読み出しが終了した後に、その要
求データに続く領域のデータも併せて読み出す技法であ
る。この“Look Ahead”と呼ばれる先読みアルゴリズム
は、それまでの要求パターンにかかわらず、常にその先
のデータを読み込んでおくという、その処理に必要なオ
ーバーヘッドを最小限に抑えた方法である。この方法を
用いて真にパフォーマンスを向上させるためには、アプ
リケーションやOSからの要求パターンを細かく解析
し、それ以降の要求を正確に予測することが理想的であ
る。
【0006】
【発明が解決しようとする課題】一方、HDDに代表さ
れる補助記憶装置では、どのようなコマンドが過去に発
行されたかのトレース(足跡)を取り、次にどこに対して
アクセス要求があるかを簡単に予測している。そして、
内部にあるキャッシュメモリに予想されるデータを前も
って入れておくことでパフォーマンスを上げるように構
成されている。ところが、例えばHDDに対して発行さ
れる要求は、アプリケーションやOSが真に要求したも
のではなく、実際には、ハードディスクコントローラ
(HDC)等がいくつかのアクセスをまとめたり、並べ直
したりして、変更されたパターンにて投げられた要求で
あった。その結果、HDDで真の要求パターンを解析す
ることができず、読み出しのキャッシュヒット率を上げ
ることが困難であった。
【0007】また、HDD等の補助記憶装置における内
部コントローラでは、本来の業務である、媒体へのリー
ド・ライトアクセスを制御しながらホストからのコマン
ドをトレースする必要がある。その為に、アプリケーシ
ョンやOSからの要求パターンを細かく解析し、分析す
ることは、この内部コントローラによる負荷があまりに
も大きすぎ、現実には、細かな解析や分析を行うことは
困難であった。
【0008】本発明は、以上のような技術的課題を解決
するためになされたものであって、その目的とするとこ
ろは、HDD等の補助記憶装置とHDC等の外部コント
ローラとを協業させ、システム全体のパフォーマンスを
向上させることにある。また他の目的は、アプリケーシ
ョンやOSから発行された真の要求に基づいて外部コン
トローラにより詳細な解析・予測を行い、真の「予測」
に基づく「投機的」な要求を前もって補助記憶装置に発
行することにある。更に他の目的は、実行中または実行
前の要求をキャンセルできる仕組みを持つことで、予測
が外れたときのパフォーマンスの劣化を最小限に抑える
ことにある。
【0009】
【課題を解決するための手段】かかる目的のもと、本発
明のコントローラ装置は、データを記憶する補助記憶装
置とこの補助記憶装置に対してアクセス要求を出すホス
ト装置との間に設けられ、この補助記憶装置を制御する
コントローラ装置であって、ホスト装置から要求された
過去のアクセス要求を記憶するアクセス要求記憶手段
と、このアクセス要求記憶手段により記憶された過去の
アクセス要求に基づいて、その後にアクセス要求される
と予想されるデータの先読み要求を補助記憶装置に対し
て出力する先読み要求出力手段と、この先読み要求出力
手段により出力した前記先読み要求の中から特定の先読
み要求をキャンセルするためのキャンセル信号を補助記
憶装置に対して出力するキャンセル信号出力手段と、を
備えたことを特徴としている。
【0010】このコントローラ装置の形態としては、P
Cまたはホストとハードディスク装置等の補助記憶装置
との間に、例えばハードディスクコントローラカード
(HDCカード)を設ける形態が考えられる。また、PC
またはホスト内部にその機能を設け、実質的にホスト装
置と補助記憶装置との間にコントローラ装置が設けられ
る形態も含まれるものである。補助記憶装置の内部に設
けられた内部コントローラとは区別されるものであれ
ば、その形態が問われるものではない。また、この先読
み要求出力手段により出力されるデータの先読み要求
は、直ぐにその場で実行されるノン・キュー要求または
補助記憶装置に一旦は待ち行列の形で保持されるタグ・
キュー要求であることを特徴とすれば、予測されるコマ
ンドに応じて最適な要求を補助記憶装置に送信すること
ができる点で好ましい。特に、このキャンセル信号出力
手段から出力されるキャンセル信号は、タグ・キュー要
求に対してはキャンセルしたいタグ番号が指定されたキ
ャンセル信号であることを特徴とすれば、実行中の任意
のコマンドをキャンセルすることが可能となり、システ
ム全体のパフォーマンスの向上が図れる点で優れてい
る。
【0011】また、このキャンセル信号出力手段から出
力されるキャンセル信号は、ATA関連インターフェイ
スにおけるNOPコマンドを拡張し、引数にキャンセル
したいタグ番号を指定したコマンドであることを特徴と
することもできる。更に、実行中のコマンドに対してキ
ャンセル信号出力手段から出力されるキャンセル信号
は、ATA関連インターフェイスにおけるデバイス・コ
ントロール・レジスタの空きビットを用い、ソフトリセ
ットを発行する形にて実行中のコマンドだけを中断させ
る信号であることを特徴とすることもできる。このAT
A(AT Attachment)関連インターフェイスとしては、関
連するATAPI(ATA Packet Interface)などの拡
張プロトコル等を含むものである。
【0012】また、本発明は、データを記憶すると共に
キャッシュメモリを有するディスク状記憶装置に接続さ
れ、このディスク状記憶装置を制御するディスクコント
ローラであって、ホストにて実行されるアプリケーショ
ンプログラムからディスク状記憶装置に対してなされる
真のアクセス要求を、アプリケーションプログラムから
直接トレースするアクセス要求トレース部と、このアク
セス要求トレース部によりトレースされた真のアクセス
要求に基づいて今後予想される投機的な要求を決定する
投機的要求決定部と、この投機的要求決定部により決定
された投機的要求をディスク状記憶装置に対して発行す
るアクセス要求発行部と、を含むことを特徴としてい
る。
【0013】この「真のアクセス要求」は、アクセス要
求がまとめられたり、並べ直されたりしていないアプリ
ケーションプログラムからのそのままの要求であれば、
予測の正確性を各段に上昇させることができる点で好ま
しい。また、アクセス要求トレース部は、アプリケーシ
ョンプログラムからなされた複数の要求をその順序情報
と共に記憶し、アクセス要求の足跡を把握できる形態に
あることが好ましい。尚、このディスクコントローラの
形態としては、ディスク状記憶装置の内部に設けられる
内部コントローラと区別されるものであれば、その適用
形態が問われるものではない。この内部コントローラと
区別されることで、ディスク状記憶装置の内部コントロ
ーラで行われていた業務の一部を移管し、更に優れたア
クセス要求パターンの解析を行うことが可能となる点で
優れている。
【0014】更に、アクセス要求発行部から発行された
投機的要求の中からキャンセルすべき特定の投機的要求
を決定するキャンセル要求決定部と、このキャンセル要
求決定部により決定された特定の投機的要求に対し、デ
ィスク状記憶装置に対してキャンセル指示を発行するキ
ャンセル指示発行部とを更に備えたことを特徴とすれ
ば、実行中または実行前の要求を必要に応じてキャンセ
ルすることが可能となり、予測が外れたときのパフォー
マンスの劣化を最小限に留めることができる点で優れて
いる。
【0015】このアクセス要求発行部から発行される投
機的要求は、ディスク状記憶装置の媒体から直ぐにデー
タ読み出しを実行する要求であり、このキャンセル指示
発行部より発行されるキャンセル指示は、実行中の要求
を中断させる指示であることを特徴とすれば、実行中の
要求であっても速やかにキャンセルすることでパフォー
マンスの向上を図ることが可能である。また、このアク
セス要求発行部から発行される投機的要求は、タグ番号
を指定してディスク状記憶装置の内部に待ち行列として
保持されるコマンドの要求であり、キャンセル指示発行
部より発行されるキャンセル指示は、待ち行列中の要求
の中から特定のタグ番号に該当する要求をキャンセルす
る指示であることを特徴とすれば、複数の要求を「待ち
行列」に入れることができると共に、予測が外れたとき
でも、その「待ち行列」から外すことで実行前の要求に
対する不要なアクセスを防止することができる点で好ま
しい。
【0016】また、本発明の補助記憶装置は、データを
記憶する記憶媒体と、予測される読み出し要求が実行さ
れ、この記憶媒体からデータを読み出して一時的に蓄積
するキャッシュメモリと、タグ番号の情報を含むこのキ
ャッシュメモリへの予測読み出し要求を外部コントロー
ラ側から受信するインターフェイスと、このインターフ
ェイスにより受信した予測読み出し要求に対し、タグ番
号によりこの要求が識別された待ち行列の状態にて、要
求実行前の複数の要求を保持するコントローラとを備
え、このインターフェイスは、要求の実行をキャンセル
すべき特定タグ番号を指定したキャンセル信号を外部コ
ントローラから受信し、コントローラは、キャンセル信
号を解析すると共に、指定された特定タグ番号に対応す
る要求を待ち行列から削除することを特徴としている。
【0017】ここで、複数の要求を「待ち行列」に入れ
ることで、コントローラは、補助記憶装置内部で実行順
序の効率等を考慮した上で順番を変えて要求を実行する
ことが可能となる。更に、実行前の要求を簡易にキャン
セルすることができ、外部コントローラによる予測が外
れた場合であってもパフォーマンスの劣化を最小限に抑
えることが可能となる。また、このインターフェイス
は、実行中の要求がキャンセルされた場合に実行中のデ
ータのどこまでが有効データかを外部コントローラ側に
対して送信することを特徴とすれば、外部コントローラ
側にて、次に送信すべき予測読み出し要求を正確に決定
できる点で優れている。
【0018】また、本発明が適用されたコンピュータ装
置は、アプリケーションプログラムを実行するホスト
と、キャッシュメモリおよび内部コントローラを有する
と共に、ホストからのアクセス要求に基づいてデータを
リード・ライトする外部記憶装置と、この外部記憶装置
を制御するコントローラとを備え、このコントローラ
は、ホストから出力されたアクセス要求に基づいてその
後にアクセス要求されると予想されるデータの先読み要
求を外部記憶装置に対して出力すると共に、この先読み
要求をキャンセルするためのキャンセル信号を外部記憶
装置に対して出力することを特徴としている。
【0019】また、この先読み要求は外部記憶装置の記
憶媒体からキャッシュメモリに対して直ぐにデータ読み
出しを実行する要求であり、キャンセル信号はこの要求
により実行中のコマンドを中断させる信号であることを
特徴とすることができる。更に、この先読み要求は識別
番号を付した状態で外部記憶装置の内部メモリによって
管理されるコマンドの要求であり、キャンセル信号はこ
の内部メモリによって管理されるコマンドの中からキャ
ンセルすべき特定の識別番号を指定する信号であること
を特徴とすることができる。また更に、この外部記憶装
置は、コントローラから出力されたキャンセル信号を解
析して先読み要求をキャンセルすると共に、キャッシュ
メモリに書き込まれたデータのどこまでが有効データか
を示す最終有効データの情報をこのコントローラに対し
て出力することを特徴とすれば、キャンセルした要求の
一部のデータをコントローラが有効に利用できる点で好
ましい。
【0020】また、この発明に係る補助記憶装置の制御
方法は、アプリケーションからのコマンド発行を受け取
るステップと、このアプリケーションから受けたコマン
ドの流れを解析するステップと、解析されたこのコマン
ドの流れに基づいて、先行して読み出すべきデータを指
示する投機コマンドが必要か否かを判断するステップ
と、この投機コマンドが必要と判断された場合には、補
助記憶装置に対して投機コマンドを発行するステップ
と、それまでに発行した投機コマンドを検証するステッ
プと、検証結果によって不要な発行済み投機コマンドが
存在すると判断される場合には、補助記憶装置に対して
キャンセルコマンドを発行するステップと、を含むこと
を特徴としている。
【0021】この投機コマンドは、補助記憶装置の媒体
から直ぐにデータ読み出しを実行すべき要求を含むもの
であり、このキャンセルコマンドは、投機コマンドを実
行中にこの投機コマンドを中断させることを特徴とすれ
ば、現在実行中の要求に対しても適切にキャンセルする
ことが可能となる点で好ましい。また、この投機コマン
ドは、補助記憶装置の内部に待ち行列として保持される
要求を含むものであり、このキャンセルコマンドは、投
機コマンドにより保持された待ち行列中のコマンドの中
から特定のコマンドを選定して待ち行列から削除するこ
とを特徴とすることができる。更に、この投機コマンド
は、タグ番号を指定して保持される要求を含むものであ
り、このキャンセルコマンドは、キャンセルしたいタグ
番号を指定することを特徴とすれば、「待ち行列」とし
て補助記憶装置内に保持されるタグ・キュー(Tagged Qu
eue)要求に対し、タグ番号の指定による簡単な指示によ
り投機コマンドのキャンセルをすることが可能となる。
また、補助記憶装置からキャンセル処理終了後の最終有
効データの情報を受信するステップとを更に具備したこ
とを特徴とすれば、例えば既にアクセスしたデータを有
効に活用でき、システム全体のパフォーマンスの向上を
図ることができる点で優れている。
【0022】
【発明の実施の形態】実施の形態1 図1は、本実施の形態1におけるコンピュータ装置(コ
ンピュータシステム)の概略構成を示す図である。同図
に示すように、このコンピュータ装置は、ホスト(HO
ST)側10として、CPU12、第1ブリッジ回路1
3およびメインメモリ14を備えている。このCPU1
2は、外部バス11aを介して第1ブリッジ回路13に
接続されている。また、第1ブリッジ回路13は、外部
バス11bを介してメインメモリ14が接続されてい
る。また第1ブリッジ回路13には、周辺装置を拡張す
る際に用いられる拡張バス15が接続されている。この
第1ブリッジ回路13には、例えば、図示しないCPU
インターフェイス、メモリコントローラ、クロック発生
器、PCIバス(Peripheral Component Interconnect b
us)インターフェイス等の機能が搭載されている。アプ
リケーションプログラムは、メインメモリ14に格納さ
れたプログラムに基づいてCPU12により実行され
る。また、メインメモリ14には、デバイスドライバの
プログラムが格納されており、このデバイスドライバは
アプリケーションプログラムとは独立して、後述するH
DD装置22への読み書きの指示を行っている。
【0023】拡張バス15には、HDC(Hard Disk Con
troller)カード21が接続されている。また、HDCカ
ード21には、バス20aを介して補助記憶装置(外部
記憶装置)としてのHDD(Hard Disk Drive)装置22が
接続されており、更に、バス20bを介してCD-RO
M装置23が接続されている。このHDCカード21
は、HDD装置22やCD-ROM装置23に対して外
部コントロール装置として機能しており、特に、HDD
装置22の制御機能の拡張や、他のHDD装置の増設時
に用いられる。また、HDD装置22には、ディスクキ
ャッシュ54が設けられており、予測されるデータを予
めキャッシュしておき、時間のかかる媒体へのアクセス
を最小限に抑えるように構成されている。更に、本実施
の形態では、バス20aはATA(AT Attachment)バス
により構成されており、バス20bは例えばATA/A
TAPI(ATA Packet Interface)バスにより構成されて
いる。
【0024】図2は、HDD装置22の概略構成を示す
図である。同図に示されるように、HDD装置22は、
駆動機構として、記憶媒体としてデータを記憶する磁気
ディスク41、磁気ディスク41を回転駆動するスピン
ドルモータ42を備えている。磁気ヘッド43は、磁気
ディスク41へのデータの記録・再生(リード・ライト)
を行う。ヘッドアーム44は、その先端に磁気ヘッド4
3を備え、磁気ディスク41の記録面の上空を移動して
いる。また、アクチュエータ45は、ヘッドアーム44
を保持すると共にヘッドアーム44を回転駆動させてい
る。これらによって、磁気ヘッド43は、磁気ディスク
41の略半径方向を移動し、磁気ディスク41の記録面
における任意の位置にてアクセスできるように構成され
ている。
【0025】磁気ディスク41、スピンドルモータ4
2、磁気ヘッド43およびアクチュエータ45から構成
される駆動機構は、制御回路50によって制御されてい
る。この制御回路50は、HDC(Hard Disk Controlle
r)51、制御用メモリ53、ディスクキャッシュ54お
よびホストI/F55を備えており、これらはバス56
を介して相互に接続されている。
【0026】HDC51は、HDD装置22の内部コン
トローラとして、制御用メモリ53に記憶された制御プ
ログラムと制御データに従ってHDD装置22の全体を
制御している。このHDC51は、サーボ制御やデータ
のリード・ライト時の誤り制御の為の演算処理を実行し
ている。これによって、スピンドルモータ42やアクチ
ュエータ45を駆動し、磁気ヘッド43の記録用ヘッド
および再生用ヘッドを用いてリード・ライトを実行して
いる。また、HDC51は、記憶媒体としての磁気ディ
スク41に記録されるデータの一部をディスクキャッシ
ュ54に保持し、また、磁気ディスク41に格納されて
いるデータの一部を先読みしてディスクキャッシュ54
に保持するための制御を行っている。
【0027】制御用メモリ53には、HDC51により
実行される制御プログラムおよびこの制御プログラムに
より使用される制御データが格納されている。ディスク
キャッシュ54は、磁気ディスク41に記録される書き
込みデータを一時的に記憶すると共に、磁気ディスク4
1から読み出された読み出しデータを一時的に記憶する
ためのキャッシュメモリとしての機能を有する。このデ
ィスクキャッシュ54は、例えばDRAMから構成され
ており、数M〜数十MBの記憶容量を備えている。ま
た、ホストI/F55は、HDCカード21との間でデ
ータやコマンドを送受するインターフェイス回路であ
る。
【0028】このホストI/F55は、外部コントロー
ラであるHDCカード21から先読みデータに関する情
報として、今後読み出しが予測される複数の種類からな
る要求を受信する。これらの要求は、直ぐにその場で実
行するための要求であるノン・キュー(Non Queue)要求
と、直ぐには実行されないタグを付したタグ・キュー(T
agged Queue)要求とに大別される。ノン・キュー要求を
受け取ると、HDC51は、直ぐに磁気ディスク41か
らの読み出しを開始し、読み出したデータをディスクキ
ャッシュ54に格納する。一方、タグ・キュー要求を受
け取ると、HDC51は、複数の要求を一旦、「待ち行
列」という形で保持する。この「待ち行列」は、例えば
レーテンシィが少なくなるような順番にて内部的に要求
を実行できるように順番が決定される。保持された複数
の要求は、このように実行順序の効率等が考慮され、順
番を変えた上で読み出しが実行される。更に、ホストI
/F55は、HDCカード21からキャンセル要求を受
信する。また、作成された実行中のコマンドをキャンセ
ルしたときにHDC51により有効データが作成される
が、この有効データは、ホストI/F55を介してHD
Cカード21に発行される。
【0029】図3は、HDCカード21の概略構成を示
す図である。HDCカード21は、HDC31、制御用
メモリ33、ディスクキャッシュ34、I/Oポート3
5、36およびホストI/F37を備えており、HDD
装置22の外部コントローラとして機能している。この
HDC31、制御用メモリ33、ディスクキャッシュ3
4、およびホストI/F37は、バス38cを介して相
互に接続されている。I/Oポート35はバス38aを
介してHDC31に接続されており、また、I/Oポー
ト36はバス38bを介してHDC31に接続されてい
る。このHDC31は、制御用メモリ33に記憶されて
いる制御プログラムおよび制御データに基づいてHDC
カード21の全体を制御している。また、HDC31
は、HDD装置22に格納されるデータの一部をディス
クキャッシュ34に保持するための制御を実施してい
る。
【0030】制御用メモリ33には、HDC31により
実行される制御プログラムと、この制御プログラムに使
用される制御データが格納されている。ディスクキャッ
シュ34は、HDD装置22に記憶される書き込みデー
タの一時記憶と、HDD装置22から読み出されたデー
タの一時記憶を行うキャッシュメモリとしての機能を備
えている。このディスクキャッシュ34は、図2に示す
HDD装置22に設けられたディスクキャッシュ54に
対して上位のキャッシュメモリに相当し、例えばDRA
Mにより構成されて数M〜数十MBの記憶容量を有して
いる。更に、I/Oポート35には、バス20aを介し
て補助記憶装置としてのHDD装置22が接続され、I
/Oポート36には、バス20bを介してCD-ROM装
置23が接続されている。また、ホストI/F37は、
拡張バス15と接続されており、ホスト側と接続されて
データを送受するインターフェース回路である。
【0031】HDCカード21は、コンピュータ装置
(コンピュータシステム)の起動時にHDD装置22との
間で設定情報を送受し、送受された設定情報に基づいて
HDCカード21に初期設定を行う。また、本実施の形
態では、従来、HDD装置22単体で行っていたホスト
からの要求データの予測を、HDCカード21により実
行するようにして、予測の精度を上げ、更に要求パター
ンを細かく解析して詳細な予測を可能とするように構成
されている。そのために、HOST側10のアプリケー
ションから発せられるHDD装置22に対する実行要求
を、まとめや並び替え等が行われていない、そのままの
形、即ち、「真のアクセス要求」を、ホストI/F37
から受信するように構成されている。更に、I/Oポー
ト35からは、HDD装置22に対して真の「予測」に
基づく投機的な要求が発行されると共に、後述するキャ
ンセル信号が発せられるように構成されている。
【0032】ここで、HDC31の機能をブロック的に
表現する。図3に示すように、HDC31は、アクセス
要求トレース部61、投機的要求決定部62、投機的要
求検証部63、およびキャンセル要求決定部64とを備
えている。アクセス要求トレース部61は、アプリケー
ションから発行されたコマンド(アクセス要求)を受け
て、その要求を記憶し、更に、そのコマンドの足跡、流
れを解析してトレースしている。投機的要求決定部62
は、アクセス要求トレース部61にてトレースされた要
求を解析し、次に要求が来るであろうコマンドを能動的
に決定している。投機的要求検証部63は、既にHDD
装置22に対して発行された投機的(speculation)要求
(投機コマンド)を蓄積して解析、検証している。また、
キャンセル要求決定部64は、投機的要求検証部63に
よる検証結果を受けて、既に発行され且つキャンセルす
べき投機的要求を決定するように構成されている。この
決定を受けてキャンセルコマンドが発行される。
【0033】次に、本実施の形態における投機コマンド
およびキャンセルコマンド発行の流れについて、図1〜
図4を用いて説明する。図4は、アプリケーションプロ
グラム、HDCカード21およびHDD装置22の3者
でのやりとりを、HDCカード21の動きから説明する
ものである。まず、HDCカード21のHDC31は、
HOST側10のアプリケーションからのコマンドの発
行を待つ(ステップ101)。アプリケーションからのコ
マンドの発行を検出すると(ステップ102)、それまで
のアプリケーションからのコマンドの流れを解析する
(ステップ103)。即ち、HDC31のアクセス要求ト
レース部61は、複数受けた真のアクセス要求のコマン
ドを常時モニターして予測を立てておく。尚、ステップ
102にて,アプリケーションからのコマンドの発行が
なされない場合には、ステップ101のアプリケーショ
ンからのコマンドの発行を待つ。ステップ103の後、
投機的要求決定部62では、投機コマンドが必要かどう
かを判断する(ステップ104)。この予測としては、例
えば、幾つかのアクセス要求パターンを格納しておき、
トレースした真のアクセス要求がこれらの格納パターン
と一致するか否かを判断する方法がある。本実施の形態
では、予測手法については従来の技術を採用すれば足
り、例えば、“Look Ahead”と呼ばれる先読みによるデ
ータ読み出しのアルゴリズムを用いた予測を用いること
もできる。このような予測により投機コマンドの発行が
必要になると、HDC31は、I/Oポート35を経て
バス20aを介し、HDD装置22に対して投機コマン
ドを発行する(ステップ105)。尚、ステップ104に
て投機コマンドが必要でないと判断された場合には、そ
のまま、後述するステップ106に移る。
【0034】HDD装置22に対して投機コマンドを発
行したHDC31は、投機的要求検証部63にて、それ
までに発行した投機コマンドの検証を行う(ステップ1
06)。キャンセル要求決定部64は、この検証によっ
て不要な発行済み投機コマンドが存在するか否かを判断
する(ステップ107)。不要な発行済み投機コマンドが
存在しない場合には、ステップ101であるアプリケー
ションからのコマンドの発行待ちに戻る。不要な発行済
み投機コマンドが存在する場合には、I/Oポート35
を経てバス20aを介し、HDD装置22に対してキャ
ンセルコマンドを発行する(ステップ108)。その後、
ステップ101であるアプリケーションからのコマンド
の発行待ちに戻り、今まで説明した、投機コマンドおよ
びキャンセルコマンド発行の流れを繰り返すように構成
されている。
【0035】ここで、投機コマンドとしては、前述のよ
うにノン・キュー要求とタグ・キュー要求が発行される
が、ノン・キュー要求の投機コマンドについては、HD
D装置22にて直ぐに読み出しが実行される。そのため
に、バス20aが使用された状態でキャンセルコマンド
を発行する必要がある。本実施の形態では、これら実行
中のキャンセル要求に対しては、所謂ソフト・リセット
と同様な機能を用いてHDD装置22に対してキャンセ
ルをかけるように構成されている。また、一方で、実行
中の要求がキャンセルされた場合に、実行中のデータの
どこまでが有効データかを把握することができれば、キ
ャンセルした要求の一部のデータを有効利用できる点で
好ましい。かかる点を考慮して、本実施の形態では、H
DD装置22によるキャンセル処理後、空きレジスタに
最終有効データのLBA(LogicalBlock Address)を、H
DCカード21に対して返すように構成し、HDC31
にてどこまでが有効データかを認識できる方法を確立し
ている。
【0036】また、タグ・キュー要求が発行された後、
HDD装置22により実際に実行された要求は、HDC
31にて常に認識された状態にある。投機的要求検証部
63では、これらの実行済みの要求を踏まえて投機コマ
ンドを検証している。実行前のタグ・キュー要求をキャ
ンセルする場合には、タグ番号を指定してキャンセルす
ることで、HDD装置22で「待ち行列」に入っている
複数の要求から、特定のタグ・キュー要求をキャンセル
することが可能となる。また、タグ・キュー要求であっ
ても現在実行中の要求に関しては、ノン・キュー要求に
おけるキャンセルと同様な方法にてキャンセルをかける
ことが可能である。この際には、どこまでが有効データ
かの情報が、前述と同様に、HDD装置22からHDC
カード21に対して発行される。
【0037】次に、本実施の形態にて用いるコマンドに
ついて、具体例を用いて詳述する。図5(a)、(b)は、
本実施の形態で用いるATAインターフェイス規格にお
けるリード・コマンドの一例を示している。図5(a)は
ノン・キュー(Non Queue)要求、図5(b)はタグ・キュ
ー(Tagged Queue)要求に使用するリードDMA(Direct
Memory Access)コマンドである。コマンドブロックに
は、フィーチャ、セクタ・カウント、セクタ・ナンバー、
シリンダ・ロー、シリンダ・ハイ、デバイス/ヘッドお
よびコマンドの各レジスタがあり、これらは全て8ビッ
ト幅である。ATAの全ての動作は、コマンドレジスタ
にコマンドコードを書き込むことによって実行される。
本実施の形態では、LBA(Logical Block Address)方
式を採用することから、デバイス/ヘッド・レジスタの
上位4ビットのうち、上から2ビット目を“1”(High)
としてLBA方式を選択している。そのために、セクタ
・カウント、シリンダ・ローおよびシリンダ・ハイの各
レジスタによる3バイトと、デバイス/ヘッド・レジス
タの下位4ビットによってLBAを指定する。
【0038】図6(a)、(b)、(c)は、本実施の形態
で用いるATAインターフェイス規格におけるレジスタ
および規格を拡張したコマンドを示している。本実施の
形態では、これらのレジスタおよびコマンドを用いて、
既に発行した投機コマンドをキャンセルするように構成
している。ここで、図6(a)は8ビットのデバイス・コ
ントロール・レジスタであり、下位3ビット目の“b
2”にSRST=1を書き込むと、全てのデバイスがリ
セットされる。本実施の形態では、所定の空きビットを
用いて、実行中のコマンドだけをキャンセルするように
構成している。また図6(b)は本実施の形態のために改
良されたNOPコマンドである。従来のNOPコマンド
では、全てのキュー・コマンドをキャンセルすることは
可能であったが、特定コマンドだけをキャンセルさせる
指示を発行することはできなかった。そこで、本実施の
形態では、セクタ・カウント・レジスタの上位5ビット
である、ビット7からビット3を用いて、キューからキ
ャンセルしたいタグ番号を指定できるように構成し、不
要なアクセス要求だけをHDD装置22にキャンセルさ
せることを可能とした。また、図6(c)は、図6(b)に
示すNOPコマンドのフィーチャ(Features)・レジスタ
の内容を示したものである。コード“00h”では、全
てのコマンドをキャンセルするアクションを示してい
る。また、コード“02h”では、指定したタグをキャ
ンセルするアクションを示している。更に、他のコード
では、何もしないアクションを示している。
【0039】次に、本実施の形態を用いたアクセスの一
例について、図7〜図9を用いて説明する。ここで、図
7はアクセスの一例における概要を示す説明図である。
また、図8は、この図7のアクセス例でノン・キュー要
求のケースにおけるコマンドの一例を説明するための図
である。また、図9は、図7のアクセス例でタグ・キュ
ー要求のケースにおけるコマンドの一例を説明するため
の図である。
【0040】まず、図7を用いてアクセス例を説明す
る。図7では、最初に、アプリケーションから[LB
A:0から10ブロック]の読み出し要求、次に、ア
プリケーションから[LBA:100から10ブロック]
の要求、次に、アプリケーションから[LBA:10
から10ブロック]の要求があった場合を示している。
図3に示すHDC31のアクセス要求トレース部61
が、このの要求をトレースし、これらの要求に基
づいてHDC31の投機的要求決定部62が、次に[L
BA:110から]の要求が来ることを予測した。この
予測に基づいて、投機コマンド[LBA:110から
50ブロック]を決定した状態を示している。また、予
測に反してアプリケーションから[LBA:20から
10ブロック]の読み出し要求があった場合を示してい
る。
【0041】この図7におけるアクセス例で、HDCカ
ード21からHDD装置22に発行されるノン・キュー
要求のコマンド例を、図8を用いて説明する。図8(a)
は、図7の、アプリケーションから[LBA:0から
10ブロック]の要求があった場合、HDD装置22に
発行されるATAコマンド(図5(a))である。LBAレ
ジスタのビットは、全て“0”であり、セクタ・カウン
ト・レジスタは、ブロック数“10”を示している。ま
た、コマンド・レジスタは、“C8h”で、「リトライ
有り」を示している。図8(b)では、の要求、即ち、
アプリケーションから[LBA:100から10ブロッ
ク]の要求があり、LBA“100”、セクタ・カウン
ト“10”がHDD装置22に発行される。図8(c)で
は、の要求、即ち、アプリケーションから[LBA:
10から10ブロック]の要求があり、LBA“1
0”、セクタ・カウント“10”がHDD装置22に発
行される。
【0042】図8(d)は、アプリケーションからの
の要求に基づき、次に[LBA:110から]の要求が
来ることを予測して、[LBA:110から50ブロッ
ク]の要求をの投機コマンドとしてHDD装置22に
発行した場合を示している。LBA“110”、セクタ
・カウント“50”がHDD装置22に発行される。こ
れらのコマンド例から明らかなように、HDD装置22
では、真のアクセス要求に基づくコマンドか、投機コマ
ンドか、の区別は行われない。図8(e)は、予測に反し
てアプリケーションから[LBA:20から10ブロッ
ク]の要求があったので、の要求をキャンセルするコ
マンドをHDD装置22に発行している。ここでは、図
6(a)に示したデバイス・コントロール・レジスタの例
えば下位4ビット目である(bit3)を1にしている。こ
のように本実施の形態では、デバイス・コントロール・
レジスタの空きビットを使用し、処理としてはコマンド
の実行中にソフト・リセットを発行するイメージで、実
行中のコマンドを中断させている。これにより、図3に
示すバス20aが使用されている状態でも、HDD装置
22に対し、実行中のコマンドを中断させることが可能
となる。
【0043】この実行中のコマンドが中断された場合
に、本実施の形態では、HDD装置22からHDCカー
ド21に対して、実行されたデータのどこまでが有効デ
ータかを知らせるように構成している。より具体的に
は、例えば、図5(a)に示したノン・キュー要求に使用
するリード・コマンドと同様なインターフェイスを用
い、そのレジスタに最終有効データのLBAを挿入し
て、HDCカード21に対して通知すれば良い。このよ
うに構成することで、キャンセルした要求の一部のデー
タをHDCカード21が有効に利用することができ、シ
ステム全体のパフォーマンスを向上させることが可能と
なる。尚、インターフェイスは任意に選択することが可
能であり、任意の空きレジスタに最終有効データのLB
Aを付するような方法にて、有効データのレポートを行
うことが可能である。その後、図8(f)に示すように、
上記のアプリケーションの要求[LBA:20から1
0ブロック]が、HDD装置22に対して発行される。
【0044】次に、図7におけるアクセス例で、HDC
カード21からHDD装置22に発行されるタグ・キュ
ー要求のコマンド例を、図9を用いて説明する。図9
(a)は、図7の、アプリケーションから[LBA:0
から10ブロック]の要求があった場合、HDD装置2
2に発行されるATAコマンド(図5(b))である。フィ
ーチャ・レジスタでは、セクタ・カウント数として、ブ
ロック数“10”を示している。また、セクタ・カウン
ト・レジスタの上位5ビット(ビット3〜ビット7)を用
いてタグ番号を示しており、ビット3を1とした“08
h”によってタグ番号1を示している。LBAレジスタ
のビットは、全て“0”である。また、コマンド・レジ
スタは、“C7h”で、このコマンドがリードDMA・
キュー・コマンドであることを示している。図9(b)で
は、の要求、即ち、アプリケーションから[LBA:
100から10ブロック]の要求があり、フィーチャ
“10”、タグ番号を示すセクタ・カウントがビット4
を1とした“10h”によってタグ番号2を示し、LB
A“100”がHDD装置22に発行される。図9(c)
では、の要求、即ち、アプリケーションから[LB
A:10から10ブロック]の要求があり、フィーチャ
“10”、セクタ・カウント“18h”によってタグ番
号3、LBA“10”がHDD装置22に発行される。
【0045】図9(d)は、アプリケーションからの
の要求に基づき、次に[LBA:110から]の要求が
来ることを予測して、[LBA:110から50ブロッ
ク]の要求をの投機コマンドとしてHDD装置22に
発行した場合を示している。フィーチャ“50”、セク
タ・カウント“20h”によってタグ番号4、LBA
“110”が発行される。このコマンドを受けたHDD
装置22は、真のアプリケーションからの要求か、HD
Cカード21によって生成された投機コマンドなのか、
を区別することがなく、同様な要求として「待ち行列」
に保持している。
【0046】図9(e)は、予測に反してアプリケーショ
ンから[LBA:20から10ブロック]の要求があった
ので、の要求をキャンセルするコマンドをHDD装置
22に発行している。ここでは、図6(b)に示した拡張
NOPコマンドを用いて指示している。具体的には、フ
ィーチャ・レジスタを、図6(c)に示す“02h”と
し、このコマンドが、キューを選択してキャンセルする
要求であることを、特記事項として示している。また、
キャンセルすべきキューの指定として、セクタ・カウン
ト・レジスタを用いて“20h”のタグ番号4を示して
いる。また、コマンド・レジスタは、このコマンドがN
OPコマンドであることを示す“00h”が送信され
る。その後、図9(f)に示すように、上記のアプリケー
ションの要求[LBA:20から10ブロック]を、セ
クタ・カウント“28h”でタグ番号5を示し、HDD
装置22に対して発行される。
【0047】尚、タグ・キュー要求を行ったキューをキ
ャンセルする方法としては、コマンド実行中であれば、
その実行中のコマンドを中断させるように構成すること
もできる。この場合には、図8(e)にて説明したノン・
キュー要求のキャンセルと同様な方法で、ソフトリセッ
トを発行するイメージにて実行中のコマンドを中断させ
ることが可能である。一方、実行中のコマンドが中断さ
れた場合には、前述と同様に、最終有効データのLBA
をHDCカード21にレポートすれば、キャンセルまで
の実行データを有効に利用できる点で優れている。この
ときのレポートの仕方は、前述の方法と同様な方法を採
用すれば良い。
【0048】このように、本実施の形態によれば、HD
D装置22が今まで行っていた処理の一部をHDCカー
ド21が分業し、HDCカード21によって、アプリケ
ーションからの真の要求をもとに、高度な、且つ詳細な
予測を立てることが可能となる。特に、他のHDD装置
を増設して予測の正確性を増す場合に、拡張ボード等で
構成されるHDCカード21にこれらの予測とコマンド
発行機能を設けることで、機能拡張の際に最小限の変更
にて、高度なコントロールが可能となる。
【0049】実施の形態2 実施の形態1では、例えば拡張ボードに代表されるHD
Cカード21を用いてHDD装置22へのコマンド発行
を制御したが、実施の形態2では、HOST側にこのH
DCカード21の機能を備え、例えばマザーボードに設
けられたメインメモリにHDD装置22へのコマンド発
行制御機能を備えたものである。尚、実施の形態1と同
様の機能については、同様の符号を用い、ここでは、そ
の詳細な説明を省略する。
【0050】図10は、実施の形態2におけるコンピュ
ータ装置(コンピュータシステム)の概略構成を示す図で
ある。同図に示すように、このコンピュータ装置では、
HOST側70における拡張バス15に第2ブリッジ回
路71が接続されている。この第2ブリッジ回路71に
は、バス75を介して図示しない周辺回路が接続可能で
ある。また、この第2ブリッジ回路71には、バス74
aを介してHDD装置22が接続され、バス74bを介
してCD-ROM装置23が接続されている。バス75
は、例えばISA(Industry Standard Architecture)バ
スから構成されている。また、本実施の形態では、バス
74aはATAバスにより構成されており、バス74b
は例えばATA/ATAPIバスにより構成されてい
る。第2ブリッジ回路71は、拡張バス15と規格が異
なる拡張バスに周辺装置を接続するために設けられてい
る。第2ブリッジ回路71は、PCIバスインターフェ
イス、ISAバスインターフェイス、システムI/Oコ
ントローラ、DMAコントローラ等の機能を有してい
る。
【0051】メインメモリ80は、CPU79の命令に
従って、HDD装置22との間でデータの授受を行う。
このメインメモリ80には、プログラムであるデバイス
ドライバ81が格納されており、デバイスドライバ81
は、アプリケーションプログラムとは独立して、HDD
装置22への読み書きの指示を行っている。このデバイ
スドライバ81には、その機能として、アプリケーショ
ンからのHDD装置22に対するアクセス要求を解析し
てトレースするアクセス要求トレース部82を有する。
また、アクセス要求トレース部82にてトレースされた
要求を解析し、次に要求が来るであろうコマンドを能動
的に決定する投機的要求決定部83を備える。また、投
機的要求決定部83による決定に基づいて、投機的要求
(投機コマンド)をHDD装置22に発行した後に、投機
的要求を蓄積して解析する投機的要求検証部84を有し
ている。更に、この投機的要求検証部84による検証結
果に基づいて、既に発行され且つキャンセルすべき投機
的要求を決定するキャンセル要求決定部85を備えてい
る。
【0052】これらの機能を有するデバイスドライバ8
1は、実施の形態1にて説明したHDCカード21のH
DC31と同様に、HDD装置22に対して投機コマン
ドとキャンセルコマンドを発行する。即ち、デバイスド
ライバ81から発せられたこれらのコマンドは、第1ブ
リッジ回路13、第2ブリッジ回路71を経て、バス7
4aを介してHDD装置22に対して発行される。HD
D装置22では、実施の形態1と同様に、これらのコマ
ンドを解析する。タグ・キュー要求に対しては、「待ち
行列」としてその内部にアクセス要求を保持し、キャン
セル要求に基づいて指示されたタグのキューをキャンセ
ルする。また、実行中のコマンドに対してキャンセルコ
マンドが発行された場合には、直ぐに実行を中断すると
共に、デバイスドライバ81に対して実行中のどこまで
が有効データかを示すLBAを返すように構成されてい
る。このように、実施の形態2によれば、HDCカード
21等の拡張ボードを用いることなく、ホスト(HOS
T)側にてHDD装置22による制御を実行することが
できる。これにより、予め、ディスク装置(HDD装置
22等)の拡張性を考慮して設計することが可能であれ
ば、拡張ボードを別個、設ける態様に比べて、コストを
低く抑えることが可能である。
【0053】以上説明したように、本実施の形態1およ
び2によれば、アプリケーションからの真の要求を解析
してアクセス要求を解析することができるので、予測の
正確性を増した「真の予測」を行うことができる。ま
た、HDD装置22で行っていた処理の一部を分業する
形で予測することから、HDD装置22の内部コントロ
ーラに大きな負荷をかけることなく、詳細な、且つ大掛
かりな予測であっても実行することが可能となり、CP
Uにおけるパワーの有効利用と、予測の適合性を大きく
高めることが可能となる。更に、本実施の形態によれ
ば、ノン・キュー要求、タグ・キュー要求に分けてHD
D装置22に対してコマンドを発行することができると
共に、これらのアクセス要求に対してキャンセルする仕
組みを持つことが可能となる。
【0054】
【発明の効果】以上説明したように、本発明によれば、
アプリケーションからの真の要求に対して外部コントロ
ーラにより詳細な解析・予測を行い、HDD等の補助記
憶装置に対して先読み要求を発行することで、予測の正
確性を増すことができる。また、実行中または実行前の
要求を、外部コントローラからキャンセルできる仕組み
を持つことで、予測が外れたときのパフォーマンスの劣
化を最小限に抑え、システム全体のパフォーマンスを向
上させることができる。
【図面の簡単な説明】
【図1】 本実施の形態1におけるコンピュータ装置
(コンピュータシステム)の概略構成を示す図である。
【図2】 HDD装置22の概略構成を示す図である。
【図3】 HDCカード21の概略構成を示す図であ
る。
【図4】 本実施の形態における投機コマンドおよびキ
ャンセルコマンド発行の流れを説明するためのフローチ
ャートである。
【図5】 (a)、(b)は、本実施の形態で用いるATA
インターフェイス規格におけるリード・コマンドの一例
を示す図である。
【図6】 (a)、(b)、(c)は、本実施の形態で用い
るATAインターフェイス規格におけるレジスタおよび
規格を拡張したコマンドの一例を示す図である。
【図7】 アクセスの一例における概要を示す説明図で
ある。
【図8】 ノン・キュー要求におけるコマンドの一例を
説明するための図である。
【図9】 タグ・キュー要求におけるコマンドの一例を
説明するための図である。
【図10】 実施の形態2におけるコンピュータ装置
(コンピュータシステム)の概略構成を示す図である。
【符号の説明】
10…ホスト(HOST)側、11a,11b…外部バ
ス、12…CPU、13…第1ブリッジ回路、14…メ
インメモリ、15…拡張バス、20a,20b…バス、
21…HDCカード、22…HDD装置、31…HD
C、33…制御用メモリ、34…ディスクキャッシュ、
35,36…I/Oポート、37…ホストI/F、38a,
38b,38c…バス、50…制御回路、53…制御用
メモリ、54…ディスクキャッシュ、55…ホストI/
F、61…アクセス要求トレース部、62…投機的要求
決定部、63…投機的要求検証部、64…キャンセル要
求決定部、70…HOST側、71…第2ブリッジ回
路、74a,74b…バス、79…CPU、80…メイ
ンメモリ、81…デバイスドライバ、82…アクセス要
求トレース部、83…投機的要求決定部、84…投機的
要求検証部、85…キャンセル要求決定部
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 9/34 350 G06F 9/34 350A 9/38 310 9/38 310A (71)出願人 599152728 プロミス・テクノロジー・インク アメリカ合衆国 95112 カリフォルニア サン・ホセ コール・サークル 1460 (72)発明者 金丸 淳 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 (72)発明者 浅野 秀夫 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 (72)発明者 木橋 昭 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 (72)発明者 櫛田 弘一 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 (72)発明者 齋藤 高裕 神奈川県藤沢市桐原町1番地 日本アイ・ ビー・エム株式会社 藤沢事業所内 (72)発明者 チチェン ウー アメリカ合衆国 94024 カリフォルニア ロス・アルトス ラーミー・プレイス 1150 (72)発明者 ケルビン カオ アメリカ合衆国 95135 カリフォルニア サン・ホセ ルーブル・アベニュー 4088 Fターム(参考) 5B005 JJ13 KK11 LL11 MM11 NN12 NN22 NN31 5B013 AA01 5B033 AA04 AA13 DB06 5B065 BA01 CH05

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 データを記憶する補助記憶装置と当該補
    助記憶装置に対してアクセス要求を出すホスト装置との
    間に設けられ、当該補助記憶装置を制御するコントロー
    ラ装置であって、 前記ホスト装置から要求された過去のアクセス要求を記
    憶するアクセス要求記憶手段と、 前記アクセス要求記憶手段により記憶された過去のアク
    セス要求に基づいて、その後にアクセス要求されると予
    想されるデータの先読み要求を前記補助記憶装置に対し
    て出力する先読み要求出力手段と、 前記先読み要求出力手段により出力した前記先読み要求
    の中から特定の先読み要求をキャンセルするためのキャ
    ンセル信号を前記補助記憶装置に対して出力するキャン
    セル信号出力手段と、を備えたことを特徴とするコント
    ローラ装置。
  2. 【請求項2】 前記先読み要求出力手段により出力され
    るデータの先読み要求は、直ぐにその場で実行されるノ
    ン・キュー要求または前記補助記憶装置に一旦は待ち行
    列の形で保持されるタグ・キュー要求であることを特徴
    とする請求項1記載のコントローラ装置。
  3. 【請求項3】 前記キャンセル信号出力手段から出力さ
    れるキャンセル信号は、前記タグ・キュー要求に対して
    はキャンセルしたいタグ番号が指定されたキャンセル信
    号であることを特徴とする請求項2記載のコントローラ
    装置。
  4. 【請求項4】 前記キャンセル信号出力手段から出力さ
    れるキャンセル信号は、ATA関連インターフェイスに
    おけるNOPコマンドを拡張し、引数にキャンセルした
    いタグ番号を指定したコマンドであることを特徴とする
    請求項3記載のコントローラ装置。
  5. 【請求項5】 実行中のコマンドに対して前記キャンセ
    ル信号出力手段から出力されるキャンセル信号は、AT
    A関連インターフェイスにおけるデバイス・コントロー
    ル・レジスタの空きビットを用い、ソフトリセットを発
    行する形にて実行中のコマンドだけを中断させる信号で
    あることを特徴とする請求項2記載のコントローラ装
    置。
  6. 【請求項6】 データを記憶すると共にキャッシュメモ
    リを有するディスク状記憶装置に接続され、当該ディス
    ク状記憶装置を制御するディスクコントローラであっ
    て、 ホストにて実行されるアプリケーションプログラムから
    前記ディスク状記憶装置に対してなされる真のアクセス
    要求を、当該アプリケーションプログラムから直接トレ
    ースするアクセス要求トレース部と、 前記アクセス要求トレース部によりトレースされた真の
    アクセス要求に基づいて今後予想される投機的要求を決
    定する投機的要求決定部と、 前記投機的要求決定部により決定された投機的要求を前
    記ディスク状記憶装置に対して発行するアクセス要求発
    行部と、を含むことを特徴とするディスクコントロー
    ラ。
  7. 【請求項7】 前記アクセス要求発行部から発行された
    投機的要求の中からキャンセルすべき特定の投機的要求
    を決定するキャンセル要求決定部と、 前記キャンセル要求決定部により決定された特定の投機
    的要求に対し、前記ディスク状記憶装置に対してキャン
    セル指示を発行するキャンセル指示発行部とを更に備え
    たことを特徴とする請求項6記載のディスクコントロー
    ラ。
  8. 【請求項8】 前記アクセス要求発行部から発行される
    投機的要求は、前記ディスク状記憶装置の媒体から直ぐ
    にデータ読み出しを実行する要求であり、前記キャンセ
    ル指示発行部より発行されるキャンセル指示は、実行中
    の前記要求を中断させる指示であることを特徴とする請
    求項7記載のディスクコントローラ。
  9. 【請求項9】 前記アクセス要求発行部から発行される
    投機的要求は、タグ番号を指定して前記ディスク状記憶
    装置の内部に待ち行列として保持されるコマンドの要求
    であり、前記キャンセル指示発行部より発行されるキャ
    ンセル指示は、前記待ち行列中の要求の中から特定のタ
    グ番号に該当する要求をキャンセルする指示であること
    を特徴とする請求項7記載のディスクコントローラ。
  10. 【請求項10】 データを記憶する記憶媒体と、 予測される読み出し要求が実行され、前記記憶媒体から
    データを読み出して一時的に蓄積するキャッシュメモリ
    と、 タグ番号の情報を含む前記キャッシュメモリへの予測読
    み出し要求を外部コントローラ側から受信するインター
    フェイスと、 前記インターフェイスにより受信した予測読み出し要求
    に対し、前記タグ番号により当該要求が識別された待ち
    行列の状態にて、要求実行前の複数の要求を保持するコ
    ントローラとを備え、 前記インターフェイスは、要求の実行をキャンセルすべ
    き特定タグ番号を指定したキャンセル信号を前記外部コ
    ントローラから受信し、 前記コントローラは、前記キャンセル信号を解析すると
    共に、指定された前記特定タグ番号に対応する要求を待
    ち行列から削除することを特徴とする補助記憶装置。
  11. 【請求項11】 前記インターフェイスは、実行中の要
    求がキャンセルされた場合に実行中のデータのどこまで
    が有効データかを前記外部コントローラ側に対して送信
    することを特徴とする請求項10記載の補助記憶装置。
  12. 【請求項12】 アプリケーションプログラムを実行す
    るホストと、 キャッシュメモリおよび内部コントローラを有すると共
    に、前記ホストからのアクセス要求に基づいてデータを
    リード・ライトする外部記憶装置と、 前記外部記憶装置を制御するコントローラとを備え、 前記コントローラは、前記ホストから出力された前記ア
    クセス要求に基づいてその後にアクセス要求されると予
    想されるデータの先読み要求を前記外部記憶装置に対し
    て出力すると共に、当該先読み要求をキャンセルするた
    めのキャンセル信号を前記外部記憶装置に対して出力す
    ることを特徴とするコンピュータ装置。
  13. 【請求項13】 前記先読み要求は前記外部記憶装置の
    記憶媒体から前記キャッシュメモリに対して直ぐにデー
    タ読み出しを実行する要求であり、前記キャンセル信号
    は当該要求により実行中のコマンドを中断させる信号で
    あることを特徴とする請求項12記載のコンピュータ装
    置。
  14. 【請求項14】 前記先読み要求は識別番号を付した状
    態で前記外部記憶装置の前記内部メモリによって管理さ
    れるコマンドの要求であり、前記キャンセル信号は当該
    内部メモリによって管理されるコマンドの中からキャン
    セルすべき特定の識別番号を指定する信号であることを
    特徴とする請求項12記載のコンピュータ装置。
  15. 【請求項15】 前記外部記憶装置は、前記コントロー
    ラから出力された前記キャンセル信号を解析して先読み
    要求をキャンセルすると共に、前記キャッシュメモリに
    書き込まれたデータのどこまでが有効データかを示す最
    終有効データの情報を前記コントローラに対して出力す
    ることを特徴とする請求項12記載のコンピュータ装
    置。
  16. 【請求項16】 アプリケーションからのコマンド発行
    を受け取るステップと、 前記アプリケーションから受けたコマンドの流れを解析
    するステップと、 解析された前記コマンドの流れに基づいて、先行して読
    み出すべきデータを指示する投機コマンドが必要か否か
    を判断するステップと、 投機コマンドが必要と判断された場合には、補助記憶装
    置に対して前記投機コマンドを発行するステップと、 それまでに発行した投機コマンドを検証するステップ
    と、 検証結果によって不要な発行済み投機コマンドが存在す
    ると判断される場合には、前記補助記憶装置に対してキ
    ャンセルコマンドを発行するステップと、を含むことを
    特徴とする補助記憶装置の制御方法。
  17. 【請求項17】 前記投機コマンドは、前記補助記憶装
    置の媒体から直ぐにデータ読み出しを実行すべき要求を
    含むものであり、 前記キャンセルコマンドは、前記投機コマンドを実行中
    に当該投機コマンドを中断させることを特徴とする請求
    項16記載の補助記憶装置の制御方法。
  18. 【請求項18】 前記投機コマンドは、前記補助記憶装
    置の内部に待ち行列として保持される要求を含むもので
    あり、 前記キャンセルコマンドは、前記投機コマンドにより保
    持された待ち行列中のコマンドの中から特定のコマンド
    を選定して当該待ち行列から削除することを特徴とする
    請求項16記載の補助記憶装置の制御方法。
  19. 【請求項19】 前記投機コマンドは、タグ番号を指定
    して保持される要求を含むものであり、 前記キャンセルコマンドは、キャンセルしたいタグ番号
    を指定することを特徴とする請求項18記載の補助記憶
    装置の制御方法。
  20. 【請求項20】 前記補助記憶装置からキャンセル処理
    終了後の最終有効データの情報を受信するステップと、
    を更に具備したことを特徴とする請求項16記載の補助
    記憶装置の制御方法。
JP30660599A 1999-10-28 1999-10-28 コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法 Pending JP2001125829A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP30660599A JP2001125829A (ja) 1999-10-28 1999-10-28 コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法
US09/698,344 US6721854B1 (en) 1999-10-28 2000-10-27 Controller device, disk controller, auxiliary storage, computer device, and method for controlling auxiliary storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30660599A JP2001125829A (ja) 1999-10-28 1999-10-28 コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法

Publications (2)

Publication Number Publication Date
JP2001125829A true JP2001125829A (ja) 2001-05-11
JP2001125829A5 JP2001125829A5 (ja) 2007-07-12

Family

ID=17959096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30660599A Pending JP2001125829A (ja) 1999-10-28 1999-10-28 コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法

Country Status (2)

Country Link
US (1) US6721854B1 (ja)
JP (1) JP2001125829A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191308B2 (en) 2003-04-14 2007-03-13 Renesas Technology Corp. Memory device with preread data management
JP2010128887A (ja) * 2008-11-28 2010-06-10 Fujitsu Ltd 記憶装置,記憶システム及び制御方法
JP2013020697A (ja) * 2003-06-26 2013-01-31 Koninkl Philips Electronics Nv ライトワンス記憶媒体に情報を記録するレコーダ及び方法
JP2013061790A (ja) * 2011-09-13 2013-04-04 Toshiba Corp メモリデバイス
US9053056B2 (en) 2007-12-27 2015-06-09 Fujitsu Limited Control apparatus, storage system, and memory controlling method

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346724B1 (en) * 2002-06-28 2008-03-18 Cypress Semiconductor Corp. Enabling multiple ATA devices using a single bus bridge
US7543085B2 (en) * 2002-11-20 2009-06-02 Intel Corporation Integrated circuit having multiple modes of operation
US7206989B2 (en) 2002-11-20 2007-04-17 Intel Corporation Integrated circuit having multiple modes of operation
US7427027B2 (en) * 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
US8341360B2 (en) * 2005-12-30 2012-12-25 Intel Corporation Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
US20130151755A1 (en) 2011-12-12 2013-06-13 Reuven Elhamias Non-Volatile Storage Systems with Go To Sleep Adaption
US9411721B2 (en) 2013-11-15 2016-08-09 Sandisk Technologies Llc Detecting access sequences for data compression on non-volatile memory devices
JP2015203980A (ja) * 2014-04-14 2015-11-16 キヤノン株式会社 情報処理装置およびその制御方法、並びにプログラム
KR20200098336A (ko) * 2019-02-12 2020-08-20 삼성전자주식회사 서스펜드 모드를 제어하는 방법 및 이를 포함하는 메모리 컨트롤러

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101577A (en) * 1997-09-15 2000-08-08 Advanced Micro Devices, Inc. Pipelined instruction cache and branch prediction mechanism therefor
US6134633A (en) * 1997-10-31 2000-10-17 U.S. Philips Corporation Prefetch management in cache memory
US6016533A (en) * 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Way prediction logic for cache array
JP3071752B2 (ja) * 1998-03-24 2000-07-31 三菱電機株式会社 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
US6446143B1 (en) * 1998-11-25 2002-09-03 Compaq Information Technologies Group, L.P. Methods and apparatus for minimizing the impact of excessive instruction retrieval

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191308B2 (en) 2003-04-14 2007-03-13 Renesas Technology Corp. Memory device with preread data management
US7552311B2 (en) 2003-04-14 2009-06-23 Renesas Technology Corp. Memory device with preread data management
JP2013020697A (ja) * 2003-06-26 2013-01-31 Koninkl Philips Electronics Nv ライトワンス記憶媒体に情報を記録するレコーダ及び方法
US9053056B2 (en) 2007-12-27 2015-06-09 Fujitsu Limited Control apparatus, storage system, and memory controlling method
JP2010128887A (ja) * 2008-11-28 2010-06-10 Fujitsu Ltd 記憶装置,記憶システム及び制御方法
JP2013061790A (ja) * 2011-09-13 2013-04-04 Toshiba Corp メモリデバイス

Also Published As

Publication number Publication date
US6721854B1 (en) 2004-04-13

Similar Documents

Publication Publication Date Title
JP4788528B2 (ja) ディスク制御装置、ディスク制御方法、ディスク制御プログラム
US8380922B1 (en) Data storage device comprising host interface state machine blocking on target logical block address
US6324599B1 (en) Computer system and method for tracking DMA transferred data within a read-ahead local buffer without interrupting the host processor
US6842801B2 (en) System and method of implementing a buffer memory and hard disk drive write controller
JP3137554B2 (ja) データ転送/管理システム及び方法
JP3183993B2 (ja) ディスク制御システム
JP2001125829A (ja) コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法
JP2012508428A (ja) 単一のコマンドにより複数の非連続アドレス範囲の転送をキューイングするための方法及びシステム
JP2007241927A (ja) データ記憶装置及び方法
JP2006139548A (ja) メディア・ドライブ及びそのコマンド実行方法
US20080104315A1 (en) Techniques For Improving Hard Disk Drive Efficiency
JP2002117002A (ja) 共用型ペリフェラルアーキテクチャ
JP3568110B2 (ja) キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
JP2007304691A (ja) ディスク装置及び回転型記憶装置の先読み制御方法
US7376786B2 (en) Command stack management in a disk drive
JP3745552B2 (ja) 情報記憶装置
US6567886B1 (en) Disk drive apparatus and control method thereof
JP2001125829A5 (ja)
JP2001166994A (ja) 早期データ転送完了を利用してデータ記憶装置性能を改善するデータ記憶装置および方法
JP7170093B2 (ja) 記憶デバイスのための改良された先読み能力
KR20070060301A (ko) 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
US5875453A (en) Apparatus for and method of information processing
JP3793682B2 (ja) コマンドキューイングの機能を持つ記憶装置
JP3122702B2 (ja) ディスク装置のライトバック制御方法
JPH05289818A (ja) ディスクアレイ制御方式

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061004

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061004

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080415

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080916