Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5128079B2 - ユニバーサルストレージバスアダプタ - Google Patents
[go: Go Back, main page]

JP5128079B2 - ユニバーサルストレージバスアダプタ - Google Patents

ユニバーサルストレージバスアダプタ Download PDF

Info

Publication number
JP5128079B2
JP5128079B2 JP2006088403A JP2006088403A JP5128079B2 JP 5128079 B2 JP5128079 B2 JP 5128079B2 JP 2006088403 A JP2006088403 A JP 2006088403A JP 2006088403 A JP2006088403 A JP 2006088403A JP 5128079 B2 JP5128079 B2 JP 5128079B2
Authority
JP
Japan
Prior art keywords
volume
storage
read
controller
disk
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 - Lifetime
Application number
JP2006088403A
Other languages
English (en)
Other versions
JP2006294022A (ja
Inventor
ダニラク ラドスラヴ
Original Assignee
エヌヴィディア コーポレイション
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 エヌヴィディア コーポレイション filed Critical エヌヴィディア コーポレイション
Publication of JP2006294022A publication Critical patent/JP2006294022A/ja
Application granted granted Critical
Publication of JP5128079B2 publication Critical patent/JP5128079B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

発明の分野
[0001]本発明は、広く、コンピュータのデータストレージに関するものである。より詳細には、本発明は、より効率的にデータの読取りおよび書込みを実行するユニバーサルストレージバスアダプタに関するものである。
発明の背景
[0002]コンピュータおよびその他のシステムは、長年、大容量のデジタル情報を格納するために、ディスクドライブを使用してきた。その理由は、コンピュータおよびその他のシステムは、十分なメインメモリ(ランダムアクセスメモリなど)を有して進行中の計算タスクを処理し得る一方で、オペレーティングシステム、アプリケーションプログラム、プログラムデータなど、大容量のデータを格納する場合には、通常、ディスクドライブなどの大容量記憶装置を必要とするからである。
[0003]フロッピーディスク、ハードディスク、光ディスク(DVDおよびCD装置を含む)、および不揮発性のソリッドステートメモリ装置(RAMディスクなど)を含む、多くのタイプの大容量記憶装置がある。これらの大容量記憶装置は、総称して、大容量記憶装置と呼ばれる。さらに、大容量記憶装置とのインターフェイスをとるために、多くの異なる技術が使用されている。今日のパーソナルコンピュータ環境では、二つの汎用インターフェイス技術、すなわち、SCSI(小型コンピュータシステムインターフェイス)、およびIDE(インテリジェントドライブエレクトロニクス、または統合ドライブエレクトロニクス)が主流である。両技術ともに、それ自体の汎用インターフェイススキーム内に数多くの実装形態を有している。例えば、SCSI−1、SCSI−2、Wide SCSI、Fast SCSI、Fast Wide SCSI、Ultra SCSI、SCSI−3、Ultra2 SCSI、Wide Ultra2 SCSI、EIDE、UDMA IDE、Ultra−ATA IDEなどがある。その他の競合システムとしては、ファイバチャネル、インターネットファイバチャネル(internet like fiber channel)、外部ファイバチャネル、SASなどがある。
[0004]IDEは、組込み型コントローラを有するディスクドライブを指す一般用語である。組込み型コントローラは、大容量記憶装置の製造業者が自社の装置に何らかの特定のコントローラの仕様と互換性をもたせる必要がないので、大きな利点がある。要求されるものは、マザーボードと大容量記憶装置とのインターフェイスをとるIDEコネクタだけである。
[0005]今日、大部分のインターフェイス技術は、PCI(周辺機器相互接続)バスなどのパラレルバスを介して、大容量記憶装置とマザーボードとのインターフェイスをとっている。その一方、パラレルポートまたはISA(業界標準アーキテクチャ)バスなどその他のポートを介して、他のタイプのドライブを接続することもできる。
[0006]各タイプの記憶装置は、ホストコンピュータシステムのホストコントローラとのインターフェイスをとるために、ドライバを要求する。各ドライバは、トランスポート層を有しており、当該トランスポート層はドライバがそれぞれの記憶装置と通信することを可能にする。パーソナルコンピュータはすべて、何らかの抽象化層において小型コンピュータシステムインターフェイス−SCSIタイプフォーマットを使用して動作する。ホストコントローラおよび記憶装置ドライバは、SCSIタイプフォーマットのコマンドを、記憶装置が使用するフォーマットに翻訳する。新しいフォーマットであるシリアルアタッチドSCSI(Serial attached SCSI)は、シリアルATA(Serial Advanced Technology Attachment:SATA)をサポートする任意選択の拡張機能を有する。この拡張機能により、シリアルアタッチドSCSIとSATAの記憶装置を混在させ、マッチングすることが可能になる。その他のすべてのプロトコルは、本質的には、何らかのタイプのトランスポート層でカプセル化されたSCSIプロトコルである。したがって、トランスポート層を除くと、すべての装置がSCSIと対話する(talk)。しかし、上述したように、トランスポート層は、記憶装置と通信する必要がある。
[0007]メモリやインターフェイス技術のタイプに関わらず、データの記憶またはデータの回復は、プロセッサによって開始され、このプロセッサは、ホストコントローラに当該プロセッサと大容量記憶装置とのインターフェイスをとらせる。データは、ホストコントローラを介して大容量記憶装置との間を流れる。パーソナルコンピュータにおいては、1980年代以降、パラレルデータストレージのATA(ATアタッチメント)規格が、PC向けの標準ストレージインターフェイスを定義している。ATAは、Advanced Technology Attachmentの略称であり、ディスクドライブ自体にコントローラが統合されているディスクドライブを指す。パラレルATAは、廉価で、広い支持を受け、よく知られ、広く受け入れられており、高速なパフォーマンスが可能なことも分かってきている。ATAには、いくつかのバージョンがある。ATAそれ自体は、IDEと相互に交換可能に使用されものであり、ATA−2(EIDE/Fast ATA)は、より高速な動作モードおよびマルチワードDMAモード、並びに論理ブロックアドレッシング(LBA)およびブロック転送をサポートし、ATA−3、Ultra−ATA(Ultra−DMA、ATA−33、およびDMA−33)は、33MBpsで動作するマルチワードDMAモード3をサポートし、ATA/66はATAのスループットを2倍にする。また、ATA/100がある。
[0008]パラレルATAは、有益なことが分かってきてはいるが、制限もある。パラレルATAは、多数のピンおよび平行導体を必要とし、5V(volt)テクノロジを使用するものであり、マルチメディアアプリケーションに必要となる高いデータレートをサポートするように実装することが困難である。これらの欠点の故に、SATAとしても知られる高パフォーマンスの記憶装置向けインターフェイスであるシリアルATAが、開発されている。これに引けをとらないように、SCSIディスクドライブ用のシリアルインターフェイス規格も、開発されている。
[0009]記憶装置のタイプが急激に増え、現代のディスクドライブにおけるストレージ寸法がますます肥大化することによって、問題が生まれている。単にデータを格納し検索するだけで、プロセッサ時間の大部分を消費することもある。このため、ホストプロセッサのパフォーマンスへの影響を最小限に抑えながら、ホストコンピュータのバス(通常はPCI)と記憶装置の一つまたは複数のバスとのインターフェイスをとる、ホストバスアダプタ(HBA)の必要が生まれている。これには、ホストバスアダプタが、自動的に、あるいはホストプロセッサまたは記憶装置のプロセッサの介入を幾分伴って、多くの低レベルのインターフェイス機能を処理する必要がある。例えば、インテル社が、AHCI(アドバンストホストコントローラインターフェイス)仕様を開発しており、当該仕様は、SATA装置がどのようにホストコントローラハードウェアとインターフェイスするのかをレジスタレベルで記述する。シリアルSCSI装置は、全く異なるHBAを有することができる。
[0010]記憶装置のバスは、いくつかの標準化されたバスのうちの一つとなり得るものであり、あるいはカスタムバスになり得るものであるので、ホストバスアダプタは、使用される記憶装置とマッチするものでなければならない。コンピュータの記憶装置バスのすべてのポートは、本質的に、SCSIと同様のコマンドレベルで動作する。従来技術においては、専用のホストコントローラから記憶装置へのコマンドのインターフェイスをとるソフトウェアドライバを使用して、記憶装置のコマンドプロトコルが実装されていた。このソフトウェアドライバは、ホストプロセッサとの対話を必要としていた。ホストコントローラおよびソフトウェアドライバは、SCSIタイプフォーマットを記憶装置のプロトコルへと効率的に翻訳する。ファイルシステムとの対話の多いアプリケーションに大容量のメモリ装置が用いられると、ホストプロセッサは、極めて膨大な量の時間を費やして、ソフトウェアドライバの実装している。これは、HBAがシステムに加えられる時点、HBAが時間の経過に伴って変更され得る時点、又はHBAが特定のアプリケーションと適合するようにカスタマイズされ得る時点には、使用可能な記憶装置を知り得なないので、極めて困難であり、あるいは費用のかかるものになる可能性がある。
[0011]図1は、従来技術のファイル管理システム100(またはストレージスタック)が、どのように記憶装置ハードウェア114と対話するかを示す概念図である。ファイル管理システム100は、ファイルシステム102の要求を特定のストレージボリュームへと導くボリュームマネージャ104と、ファイルシステム102の要求をそのストレージボリューム内の特定のパーティションへと導くパーティションマネージャ106の両者を実装している。これらは、ホストコンピュータシステムにおける使用可能な記憶装置を識別するものと見なすことができる。ファイル管理システム100は、ストレージクラスをサポートするクラス(SCSIやIDEなど)ドライバ108、およびポートI/Oオペレーションを可能にするポートドライバ110も実装している。バスドライバ112が、バスの衝突なく信号を必要なバス上に渡すために必要に応じて実装され、最後に、記憶装置ハードウェア114が、アクセス対象の記憶装置のストレージバスに接続される。クラスドライバ108、ポートドライバ110、およびバスドライバ112は共同して、アクセス対象の記憶装置に関連するドライバに対するトランスポート層の働きをする。必要に応じて、ファイル管理システム100は、データ圧縮および暗号化103も実装することができる。ここで一般的に説明したアーキテクチャの二つの欠点は、(i)ホストコンピュータシステムで使用される記憶装置のタイプ毎に、別個のトランスポート層が必要になること、および(ii)ファイルシステム102(すなわち、オペレーティングシステム)と、ホストコンピュータシステムにおける様々な記憶装置との間のトランザクションの90%超は、読取り/書込みオペレーションであり、かかるオペレーションは通常、ファイル管理システム100の層103、106、108、110、および112のサービスを必要としないことである。必要とされる中間層を介して各トランザクションを処理するのは、不適当であり、時間も要する。したがって、ホストコンピュータのバスと複数の記憶装置とのインターフェイスをとることができる新しいタイプの装置があれば、有益なはずである。ホストコンピュータのバスと、複数の記憶装置のうちの任意の記憶装置とのインターフェイスをとることもできるユニバーサルストレージバスアダプタは、さらに有益であろう。
発明の概要
[0012]本発明の原理を用いた実施形態は、ホストコンピュータのバスと、複数のタイプの記憶装置のうちの任意の記憶装置とのインターフェイスをとることができる、ユニバーサルストレージバスアダプタを提供する。このユニバーサルシリアルバスアダプタは、記憶装置のタイプ毎に別個のトランスポート層を設ける必要がないように、トランスポート層機能を提供する。
[0013]本発明の実施形態は、読取り/書込みチムニを有するファイル管理システム(またはストレージスタック)を備えており、当該チムニは、読取り/書込みオペレーションがファイル管理システムの例外処理及び管理の機能をバイパスすることを可能にするように構成されている。これらの機能をバイパスすると、読取り/書込みオペレーションの処理効率が向上する。さらに、このアーキテクチャは、他のタイプのオペレーションが、ファイル管理システムの例外処理および管理の層におけるサービスにアクセスすることを可能にする。
[0014]以下の詳細な説明を添付の図面と併せて考察すれば、本発明の諸原理を容易に理解することができる。
好ましい実施形態の詳細な説明
[0021]本発明の諸原理は、ユニバーサルストレージバスアダプタを提供し、当該ユニバーサルストレージバスアダプタは、データ読取り/書込み要求を直接、ホストコンピュータのバスと異なるタイプの記憶装置との間でインターフェイスする。かかるユニバーサルストレージバスアダプタは、標準化された読取り/書込みコマンドを使用して、ホストプロセッサの介入を幾分伴いあるいは全く伴うことなく、メモリ装置のバスへのデータの書込みおよび読取りができるような方式で、ホストコンピュータのメインバス(PCI)を、メモリ装置のバスに結合する。本発明の諸実施形態は、読取り/書込みチムニを有するストレージスタックを使用して、複数のタイプの記憶装置をインターフェイスすることができ、当該チムニは、ストレージスタックの例外処理および管理の機能をバイパスする
[0022]図2は、本発明の諸原理によるコンピュータシステム200を示している。システム200は、プロセッサ204が使用するプログラムおよびデータを格納するためのメインメモリ202を含む。システム200はさらに、全体的にチップセット206として示す補助システムを含んでおり、当該チップセット206は、ユニバーサルストレージバスアダプタ208を有している。ユニバーサルストレージバスアダプタ208は、RAIDドライブ用のハードウェア圧縮/伸張エンジンをサポートすることが有益であり、また、その他の特徴も含み得る。ユニバーサルストレージバスアダプタ208は、ディスクドライブ211、213、215、および217を含むディスクドライブシステムで、データ統合を支援する。ディスクドライブ211、213、215、および217を、そうする必要はないが、RAIDストレージシステムの一部とすることができる。さらに、ディスクドライブ211、213、215、および217を、同じタイプ(たとえば、シリアルSCSI)にすることができ、あるいは、それらを異なるタイプ(たとえば、シリアルSCSIドライブとSATAドライブ)にすることもできる。図3および4を用いて以下でさらに詳細に説明するように、ユニバーサルストレージバスアダプタ208は、複数のタイプの記憶装置と協働するように設計され、実装される。
[0023]ディスクドライブ211、213、215、および217はそれぞれ、個々のディスクドライブ内でのデータの格納および読取りを制御するドライブエレクトロニクス212、214、216、218を含む。データは、ユニバーサルストレージバスアダプタ208とディスクドライブ211、213、215、および217との間で、双方向ストレージバス219を介して、渡される。ユニバーサル記憶装置アダプタ208は、メインバス、通常はPCIバスを介して、プロセッサ204と双方向ストレージバス219とのインターフェイスをとる。実際には、双方向ストレージバス219は、インターフェイスチップを使用して、一つ以上のディスクドライブ211、213、215、および217に接続される。システム200の様々なコンポーネントの統合を可能にするために、このシステムは、オペレーティングシステム(図示せず)の制御の下で動作する。
[0024]コンピュータシステム200は、SCSIベースのファイル管理システム300(またはストレージスタック)を実装しており、当該ファイル管理システム300は、入出力データと共に、読取り/書込みオペレーションを直接、処理のために選択的にユニバーサル記憶装置アダプタ208へと渡すための読取り/書込みバイパスを有している。図3は、本発明の一実施形態による、ファイル管理システム300のアーキテクチャを示している。図示したように、ファイル管理システム300は、図1のファイル管理システム100の例外処理及び管理の層を有している。ただし、読取り/書込みオペレーションの優位性を考慮し、ファイル管理システム300は、読取り/書込みオペレーションを直接、記憶装置のハードウェア層314とパイプラインする読取り/書込みチムニ309を含んでいる。このアーキテクチャを用いると、読取り/書込みオペレーションが、圧縮/暗号化層302、ボリュームマネージャ304、パーティションマネージャ306、クラスドライバ308、ポートドライバ310、およびバスドライバ312をバイパスすることが可能になる。マルチギガバイトの記憶装置を使用する場合、単に読取り/書込みオペレーションを管理するだけでもプロセッサ時間の大部分を消費することがあるので、これらの例外処理および管理の層をバイパスすることは、非常に有利である。上記に関わらず、図1における従来のファイル管理システム100の原理による例外処理および管理の層のサービスを使用して、読取り/書込みオペレーション以外のオペレーションを処理することもできる。
[0025]また、図示したように、クラスドライバ308、ポートドライブ310、およびバスドライバ312は、共同してトランスポート層を形成しており、ユニバーサル記憶装置アダプタ208内に含まれている。図4を用いて以下でさらに詳細に説明するように、トランスポート層機能をユニバーサル記憶装置アダプタ208に移すことにより、その記憶装置がSCSIベースであるのか、SATAベースであるのか、それともその他の規格ベースであるのかに関わらず、一つのSCSIベースのトランスポート層を、任意のタイプの記憶装置と共に使用することが可能になる。かかるアーキテクチャによって、記憶装置のタイプ毎に別個のトランスポート層を作成しなければならない事態が回避される。このことは、従来技術のシステムに比し大きな進歩である。
[0026]図4は、本発明の一実施形態による、ファイル管理システム300およびユニバーサル記憶装置アダプタ208の一つの実装アーキテクチャを示している。ストレージスタック管理層404は、ファイルシステム301から送出されたオペレーションが、モジュール401の様々なサービスにアクセスすることを可能にするように構成されている。モジュール401は、その他の機能のうちでもとりわけ、図3における圧縮/暗号化層302、ボリュームマネージャ304、およびパーティションマネージャ306の管理機能を含む。本明細書に開示のアーキテクチャは、ファイル管理システム300から必要とされる機能に応じて、モジュール401を追加し、あるいは取り除くことができるように設計されている。一実施形態では、モジュール401およびストレージスタック管理層404は、ソフトウェアの形で実装される。
[0027]コントローラ430は、モジュール403およびインターフェイス層402に結合されている。一実施形態では、モジュール403は、モジュール401に対するハードウェア補完物である。したがって、機能がファイル管理システム300において追加され、あるいは取り除かれた範囲内で、場合によっては、ソフトウェアモジュール401が追加され、あるいは取り除かれ、場合によっては、対応するハードウェアモジュール403が追加され、あるいは取り除かれる。モジュール403は、モジュール401の補完物であるので、その他の機能のうちでもとりわけ、圧縮/暗号化層302、ボリュームマネージャ304、ならびにパーティションマネージャ306の管理機能を含んでいる。
[0028]コントローラ430は、図3におけるクラスドライバ308、ポートドライバ310、およびバスドライバ312のトランスポート層機能を含む。さらに、一実施形態では、コントローラ430およびインターフェイス層402は、図3における記憶装置のハードウェア層314の機能を含む。
[0029]インターフェイス層402は、対応する記憶装置(図示せず)に結合された様々なインターフェイスモジュール(たとえば、インターフェイスモジュール438、440、442、444、446、448、および452)を含む。各インターフェイスモジュールは、特定の記憶装置のプロトコル向けに構成され、ファイルシステム301から送出されたSCSIベースのコマンドを、その記憶装置のプロトコルに翻訳し、逆のことも同様に行う。例えば、インターフェイス440は、SCSIベースのコマンドをSATAに翻訳し、SATAベースのコマンドをSCSIに翻訳するように構成される。一実施形態では、インターフェイス層402の機能は、ハードウェアの形で実装される。インターフェイス層402を用いると、SAS物理層442がSATA物理層440との下位互換性をもち、したがって、SASとSATAのどちらのディスクドライブもユニバーサルストレージバスコントローラ430に直接接続することが可能になることによる恩恵を、ホストコントローラが享受することが可能になる。
[0030]重要なことに、記憶装置がコンピュータシステム200に追加される範囲内で、ファイル管理システム300がその記憶装置と適切に通信できるように、その記憶装置の使用するプロトコルに対応するインターフェイスモジュールを、インターフェイス層402に追加することができる。コントローラ430にトランスポート層機能が含まれているので、追加された記憶装置をサポートする際に、追加のトランスポート層機能をファイル管理システム300に追加する必要はない。このようにして、一実施形態では、ユニバーサルストレージバスアダプタ208は、モジュール403と、コントローラ430と、インターフェイス層402とを含み、コンピュータシステム200と共に使用される任意のタイプの記憶装置と適合するように構成される。
[0031]また、図示したように、このアーキテクチャを用いると、コントローラ430が、読取り/書込みチムニ309を介して、ファイルシステム301からのSCSIタイプの読取り/書込みオペレーションを直接受け入れることが可能になる。図5および6を用いて以下でさらに詳細に説明するように、コントローラ430は、これらのオペレーションを、インターフェイス層402に接続されている適切な記憶装置に分配して処理するように構成されている。図2を参照すると、読取り/書込みオペレーションに関連するデータが、メインメモリ202と、一以上のディスクドライブ211、213、215、および217との間で転送されている。先に説明したように、これらの各記憶装置は、特定の記憶装置の使用するプロトコルに基づくインターフェイス層402のインターフェイスモジュールのうちの一つに結合されている。
[0032]本発明の諸原理によれば、読取り/書込みオペレーションを実装する負担の大部分が、ハードウェアに移される。これには、ハードウェアがソフトウェアよりも遥かに高速なので、読取り/書込みの待ち時間が短縮されることと、ホストプロセッサをその他のタスクの処理により多く利用できるようになることの二つの利点がある。読取り/書込みオペレーションは、存在する数多くのファイル管理動作のうちのほんの二つにすぎないが、実際に生じるファイルシステムのオペレーションの非常に多くの部分を占めているので、読取り/書込みオペレーションを実装する負担の大部分をハードウェアに移すことは、特に有益である。
[0033]図5および6を参照すると、コントローラ430は、本発明に従って、図2のメインメモリ202から得られた読取り/書込みコマンド(コントローラコマンドともいう)を実行するように構成されている。コントローラ500は、(ボリュームX、転送すべきバイト数、メモリ位置)というフォーマットのコマンドを実行する。
[0034]コントローラ430は、上記の各コマンドから得られた情報を格納する。コントローラコマンドは、データをそこにまたはそこから転送すべき1組のパーティションにあたるボリュームと、転送すべきバイト数と、メインメモリ202内のどこにまたはどこからデータを転送すべきかを指定するメモリ位置情報とを提供することが、理解されよう。より具体的には、メモリ位置情報は、データをそこにまたはそこから転送すべきメモリ空間560内の領域を記述する、1組の物理領域記述(physical region description:PRD)を含む。コントローラ430は、図2の記憶装置211、213、215、217(ここでは記憶装置510で表す)にデータを書き込み、またはそこからデータを読み取るように構成されている。これらの記憶装置は通常、複数のディスクドライブを含むRAIDアレイになっており、そこでは、複数のディスク上で発見される複数のパーティションで、一つのボリュームが識別される。
[0035]コントローラ430は、複数のレジスタを備えており、これらは、PCIまたはその他の標準化されたインターフェイス規格の一部として定義される。これらのレジスタは、制御情報および構成情報を領域502に、リンクポインタを領域504に、ボリュームポインタを領域506にそれぞれ格納する。これらのレジスタを用いて、読取り/書込みコマンドが、実行される。リンクポインタおよびボリュームポインタは、以下で説明する方式で、コントローラコマンドを実行するのに使用される。
[0036]先に説明したように、コントローラコマンド520などのコントローラコマンドは、データをそこにまたはそこから転送すべきRAIDボリュームを含む。コントローラコマンド520は、領域506内のボリュームポインタレジスタと、コントローラコマンドで指定されたボリュームに対応するボリュームテーブル512の両方で索引が付けられ、ボリュームデータ構造514に書き込まれる。図示したように、このボリュームに対する後続のコントローラコマンド522および524を、ボリュームデータ構造514に付加することができる。ボリュームデータ構造514は、制御およびステータス情報515、ならびにディスクボリューム内のディスクパーティション516、518に関連する情報も含む。こうした情報は、コントローラコマンド520で指定されたボリュームに関連する正確なディスクおよびパーティションを判定するために使用される。
[0037]ユニバーサルストレージアダプタ208は、複数のディスクストレージドライブを制御する。ディスクストレージドライブは、複数の物理リンク上に分散している。各物理リンクは、複数のディスクストレージドライブをサポートすることができる。コントローラ430内には、物理リンク毎に、特定の物理リンクに関連するリンクデータ構造530を指すリンクポインタ504がある。リンクデータ構造530は、リンクに関連するディスクにアクセスするための制御信号を提供する、一連のリンクを含む。リンクデータ構造530とボリュームデータ構造514とを組み合わせると、一連のディスクデータ構造535、540が提供される。
[0038]ボリュームデータ構造514内のディスクパーティション516、518はそれぞれ、ディスクデータ構造535、540を指す。図7のステップ602と共に以下でさらに詳細に説明するように、コントローラコマンド520は、一以上のディスクコマンドに変換され、当該ディスクコマンドを使用してデータを特定の記憶装置510にまたはそこから転送する。このディスクコマンドは、適切なディスクデータ構造において順序付けされる。すなわち、データを所与の記憶装置にまたはそこから転送するためのディスクコマンドは、その記憶装置に対応するディスクデータ構造において順序付けされる。例えば、ディスクコマンド536は、データをディスク0にまたはそこから転送し、したがって、ディスクデータ構造535内に所在しており、ディスクコマンド541、542は、データをディスク1にまたはそこから転送し、したがって、ディスクデータ構造540内に所在している。ディスクコマンドは、ボリュームデータ構造514およびリンクデータ構造530からもたらされるものである。さらに、個々のディスクコマンドは、一以上のPRDを含み、当該PRDは、ディスクコマンドを使用してデータがそこにまたはそこから転送されるメモリ空間560内の領域を記述する。異なるディスクコマンドを対象とするPRDは、コントローラコマンド520のメモリ位置情報に含まれるPRDに対応している。
[0039]この例示的な説明では、ディスクコマンド550の詳細図において、ディスクコマンド536のコンポーネントを、三つのPRDとして示してある。同様に、ディスクコマンド551の詳細図では、ディスクコマンド541が、二つのPRDを含んでおり、ディスクコマンド552の詳細図では、ディスクコマンド542が、一つのPRDを含んでいる。ディスクコマンド550、551、552は、一連の一以上のPRDであり、ディスク記憶装置510からのデータが格納され又は検索されるメモリ空間560内の情報にアクセスする。リンクデータ構造530は、ハードウェアとのインターフェイスを提供し、ボリュームデータ構造514は、ボリューム全体を含むデータが格納されているディスク記憶装置510上のパーティションを特定する。このようにして、実行する必要のあるどのコマンドも、ソフトウェアによって定義することができ、次いで、それをユニバーサルストレージバスアダプタ208に関連するハードウェアコンポーネント内で実行することができる。
[0040]上記に加えて、ボリュームデータ構造514は、対応するコントローラコマンドに関連するディスクコマンドの数をカウントし、その数に等しいディスクコマンドカウントを作成することによって、特定のコントローラコマンドの実行の追跡も行う。各ディスクコマンド536、541、542が実行されると、ディスクデータ構造535、540は、制御/ステータス情報領域515を介して折り返しボリュームデータ構造514に、通信し、各ディスクコマンドの完了を通知する。ボリュームデータ構造514は、あるディスクコマンドが完了するとその都度ディスクカウントを減少させる。ディスクコマンドのカウントがゼロに達したときは、ボリュームデータ構造514は、割込みを、制御/ステータス情報領域515を介してファイルシステム301へと供給し、コントローラコマンドが完全に実行されたことを知らせる。
[0041]図7は、ファイルシステム301から送出された読取り/書込みオペレーションに応答する、本発明のオペレーションにおける一連のステップを示す流れ図である。典型的なコマンドは、(ボリュームX、転送すべきバイト数、メモリ位置)を含む。ただし、Xは、アクセスすべきボリュームであり、メモリ位置は、アクセス対象のデータが読み取られまたは書き込まれるメインメモリ空間内の位置である。
[0042]ステップ600で、コントローラコマンド520が、ボリュームデータ構造514に書き込まれる。ボリュームデータ構造514は、ボリュームポインタ506がコントローラコマンド520を使用して、ボリュームテーブル512の索引を指し、該当するボリュームデータ構造514を指すことによって、決定される。コントローラコマンド520を、読取りコマンドとすることも、書込みコマンドとすることもできる。ステップ602で、ユニバーサルストレージバスコントローラが、ボリュームデータ構造514内のコントローラコマンド520を解析する。ボリュームデータ構造514およびリンクデータ構造530は共同して、ディスク/パーティションの関係情報、ディスクの先頭に対するパーティションのオフセット情報、パーティションのサイズ情報、その他のボリューム情報など、コントローラコマンド520をサポートするのに必要とされる、個々のディスクコマンド536、541、および542を作成するのに必要とされる必要情報を含む。ステップ604で、ディスクコマンド536、541、および542が、ディスクデータ構造535、および540に書き込まれる。各ディスクコマンドは、データが書き込まれまたは読み取られるメインメモリの領域を記述する、一以上のPRDを含む。ディスクデータ構造535、および540は、複数のディスクコマンドから成る。ステップ606で、ディスクデータ構造からの各ディスクコマンド536、541、および542が、実行されて、データが、メモリ空間からディスクドライブ記憶装置に/ディスクドライブ記憶装置からメモリ空間に転送される。ディスクデータ構造535、および540は、ボリュームデータ構造514に、各ディスクコマンドが完了した旨を指示する。ボリュームデータ構造内の、コントローラコマンド520についてのディスクコマンドがすべて完了したときは、ステップ608で、オペレーティングシステムへの割込みが、生成される。
[0043]以上、本発明を特定の諸実施形態に関して説明してきたが、添付の特許請求の範囲に詳細に記載された本発明のより広い趣旨および範囲を逸脱することなく、本発明に様々な修正および変更を加えることができることが、当業者には理解されるであろう。したがって、上記の説明および添付の図面は、限定的な意味にではなく、例示的なものと見なされるべきである。
複数のディスクドライブをコンピュータシステムと統合するのに有用な、従来技術におけるストレージバスアダプタの図である。 本発明を実装するように構成されたコンピュータシステムの図である。 本発明の一実施形態による、読取り/書込みチムニを含むストレージスタックの概念図である。 本発明の一実施形態による、図3におけるユニバーサルストレージバスアダプタの機能を示すブロック図である。 図3におけるストレージスタックおよびチムニを初期化して、記憶装置内のデータにアクセスするのに必要となるイベントシーケンスの概念図である。 図3におけるストレージスタックおよびチムニを初期化して、記憶装置内のデータにアクセスするのに必要となるイベントシーケンスの概念図である。 図5および6に示したようにデータを転送するのに使用されるイベントシーケンスの流れ図である。
符号の説明
200…コンピュータシステム、202…メインメモリ/OS/アプリケーション、204…プロセッサ、206…チップセット、208…ユニバーサル記憶装置アダプタ、211,213,215、217…ディスクドライブ、212,214,216,218…ドライブエレクトロニクス、219…双方向ストレージバス、300…ファイル管理システム、309…読取り/書込みチムニ、314…ハードウェア層、401…モジュール、403…モジュール、402…インターフェイス層、430…コントローラ、506…ボリュームポインタ、510…記憶装置、512…ボリュームテーブル、514…ボリュームデータ構造、530…リンクデータ構造、535…ディスクデータ構造、560…メモリ空間。

Claims (6)

  1. ハードウェアインターフェイス層に結合されたトランスポート層を有するコントローラを含むユニバーサルストレージアダプタであって、前記ハードウェアインターフェイス層が、一以上のインターフェイスモジュールを含み、各インターフェイスモジュールが、特定の記憶装置のプロトコル向けに構成された、前記ユニバーサルストレージアダプタと、
    ファイルシステムと前記ハードウェアインターフェイス層との間で、読取り/書込みオペレーションを直接に通す読取り/書込みチムニであって、前記読取り/書込みオペレーションが、サービスを提供するように設定されたストレージスタック管理層とトランスポート層とをバイパスする、前記読取り/書込みチムニと、
    を備え、
    前記コントローラが、前記ストレージスタック管理層のサービスに対するハードウェア補完物である1又は複数のモジュールに接続され、
    前記コントローラは、読取り/書込みオペレーションを直接、前記ハードウェアインターフェイス層へと送出するようになっている、
    ファイル管理システム。
  2. 前記トランスポート層が、クラスドライバと、ポートドライバと、バスドライバのうちの少なくとも一つを備え、
    前記ハードウェアインターフェイス層が、ハードウェアで実装され、
    前記ストレージスタック管理層の前記サービスが、ソフトウェアで実装され、
    前記読取り/書込みオペレーションが、SCSIベースのコマンドを含み、
    前記ストレージスタック管理層が、圧縮/暗号化と、ボリューム管理と、パーティション管理のうちの少なくとも一つを含むサービスを提供するように構成された、
    請求項1に記載のファイル管理システム。
  3. 前記コントローラが、前記インターフェイス層を介してデータをメインメモリに転送するための読取り/書込みオペレーションを実行するように構成され、前記オペレーションが、転送すべきボリュームと、転送すべきバイト数と、前記データを転送すべきメインメモリ内の位置とを特定するコマンドを含む、請求項1に記載のファイル管理システム。
  4. 前記ボリュームが、複数のパーティションを備え、前記パーティションが、複数の記憶装置のうちの一以上に格納される、請求項に記載のファイル管理システム。
  5. 前記コントローラが、前記記憶装置上に格納され得る少なくとも一つのボリュームを含むボリュームテーブルを指すポインタと、前記少なくとも一つのボリュームの一部分を格納できる前記記憶装置を指すリンクポインタとを格納する複数のレジスタを備える、請求項に記載のファイル管理システム。
  6. 前記コントローラが、ボリュームデータ構造およびリンクデータ構造に応答して、データが転送されるメインメモリ内の領域を指す一連の物理領域記述を確立する、請求項に記載のファイル管理システム。
JP2006088403A 2005-03-28 2006-03-28 ユニバーサルストレージバスアダプタ Expired - Lifetime JP5128079B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/092170 2005-03-28
US11/092,170 US7568056B2 (en) 2005-03-28 2005-03-28 Host bus adapter that interfaces with host computer bus to multiple types of storage devices

Publications (2)

Publication Number Publication Date
JP2006294022A JP2006294022A (ja) 2006-10-26
JP5128079B2 true JP5128079B2 (ja) 2013-01-23

Family

ID=36658817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006088403A Expired - Lifetime JP5128079B2 (ja) 2005-03-28 2006-03-28 ユニバーサルストレージバスアダプタ

Country Status (5)

Country Link
US (2) US7568056B2 (ja)
EP (1) EP1708089A3 (ja)
JP (1) JP5128079B2 (ja)
CN (2) CN102411547A (ja)
TW (1) TWI319532B (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090027383A1 (en) 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition
US7808499B2 (en) 2003-11-19 2010-10-05 Lucid Information Technology, Ltd. PC-based computing system employing parallelized graphics processing units (GPUS) interfaced with the central processing unit (CPU) using a PC bus and a hardware graphics hub having a router
US20080074429A1 (en) 2003-11-19 2008-03-27 Reuven Bakalash Multi-mode parallel graphics rendering system (MMPGRS) supporting real-time transition between multiple states of parallel rendering operation in response to the automatic detection of predetermined operating conditions
US8497865B2 (en) 2006-12-31 2013-07-30 Lucid Information Technology, Ltd. Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS
US8085273B2 (en) 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US7961194B2 (en) 2003-11-19 2011-06-14 Lucid Information Technology, Ltd. Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system
EP1846834A2 (en) 2005-01-25 2007-10-24 Lucid Information Technology, Ltd. Graphics processing and display system employing multiple graphics cores on a silicon chip of monolithic construction
US7853741B2 (en) * 2005-04-11 2010-12-14 Emulex Design & Manufacturing Corporation Tunneling SATA targets through fibre channel
US7464228B2 (en) * 2006-05-31 2008-12-09 Dell Products L.P. System and method to conserve conventional memory required to implement serial ATA advanced host controller interface
US20080229046A1 (en) * 2007-03-13 2008-09-18 Microsoft Corporation Unified support for solid state storage
US7917682B2 (en) * 2007-06-27 2011-03-29 Emulex Design & Manufacturing Corporation Multi-protocol controller that supports PCIe, SAS and enhanced Ethernet
US9128699B2 (en) 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US8239655B2 (en) * 2010-01-18 2012-08-07 Vmware, Inc. Virtual target addressing during direct data access via VF of IO storage adapter
US8473947B2 (en) * 2010-01-18 2013-06-25 Vmware, Inc. Method for configuring a physical adapter with virtual function (VF) and physical function (PF) for controlling address translation between virtual disks and physical storage regions
US8312175B2 (en) * 2010-01-21 2012-11-13 Vmware, Inc. Virtual machine access to storage via a multi-queue IO storage adapter with optimized cache affinity and PCPU load balancing
US8719817B2 (en) * 2010-03-25 2014-05-06 Vmware, Inc. Virtualization intermediary/virtual machine guest operating system collaborative SCSI path management
US8621261B2 (en) 2010-11-24 2013-12-31 Cisco Technology, Inc. Support for virtualized unified communications clients when host server connectivity is lost
US9130899B1 (en) 2011-04-27 2015-09-08 Cisco Technology, Inc. Integrated user interface for unified communications applications
US9225763B2 (en) 2011-06-07 2015-12-29 Cisco Technology, Inc. Distributed overlay browser for transparent streaming media support in virtualized desktop environment
US8769011B2 (en) 2011-06-21 2014-07-01 Cisco Technology, Inc. Survivable browsing in virtualized desktop environment when host connectivity is lost
US9009212B2 (en) 2011-06-29 2015-04-14 Cisco Technology, Inc. Optimized transfer of applications between computing environments
US8990292B2 (en) 2011-07-05 2015-03-24 Cisco Technology, Inc. In-network middlebox compositor for distributed virtualized applications
CN103092780B (zh) * 2011-11-02 2015-12-16 宏碁股份有限公司 电子系统与管理方法
US9055139B1 (en) 2012-03-12 2015-06-09 Cisco Technology, Inc. Display protocol interception in the network for services and network-based multimedia support for VDI
CN102760061B (zh) * 2012-06-11 2016-01-13 记忆科技(深圳)有限公司 屏蔽固态硬盘存储接口差异的方法及存储系统
US9141563B2 (en) * 2013-09-11 2015-09-22 Kabushiki Kaisha Toshiba Memory system
US9332046B2 (en) 2013-10-17 2016-05-03 Cisco Technology, Inc. Rate-adapted delivery of virtual desktop image elements by an edge server in a computer network environment
WO2016130114A1 (en) * 2015-02-10 2016-08-18 Hewlett Packard Enterprise Development Lp Chipset reconfiguration based on device detection
US10120573B2 (en) 2015-09-14 2018-11-06 Microsoft Technology Licensing, Llc. Modular sequential writing of data to data storage devices
US11023393B2 (en) 2019-05-06 2021-06-01 International Business Machines Corporation Connectivity type detection using a transport protocol and command protocol of the data storage system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4796176A (en) * 1985-11-15 1989-01-03 Data General Corporation Interrupt handling in a multiprocessor computing system
WO1991004540A1 (en) * 1989-09-08 1991-04-04 Auspex Systems, Inc. Multiple facility operating system architecture
US5793997A (en) * 1996-01-11 1998-08-11 Hewlett-Packard Company Interface architecture for connection to a peripheral component interconnect bus
US6718550B1 (en) * 1996-06-26 2004-04-06 Sun Microsystems, Inc. Method and apparatus for improving the performance of object invocation
US5956745A (en) * 1997-04-23 1999-09-21 Novell, Inc. System and method for automatically resizing a disk drive volume
US6006295A (en) * 1997-06-05 1999-12-21 On Spec Electronic, Inc. Translator with selectable FIFO for universal hub cables for connecting a PC's PCMCIA or parallel ports to various peripherals using IDE/ATAPI, SCSI, or general I/O
US6389479B1 (en) * 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6185675B1 (en) * 1997-10-24 2001-02-06 Advanced Micro Devices, Inc. Basic block oriented trace cache utilizing a basic block sequence buffer to indicate program order of cached basic blocks
US5950203A (en) 1997-12-31 1999-09-07 Mercury Computer Systems, Inc. Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
EP1005243A1 (en) * 1998-11-24 2000-05-31 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Access method for mobile telecommunication system
US6343324B1 (en) * 1999-09-13 2002-01-29 International Business Machines Corporation Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices
US7089562B1 (en) * 2000-05-04 2006-08-08 International Business Machines Corporation Universal driver server
KR20030066331A (ko) * 2000-06-05 2003-08-09 미라링크 코포레이션 플렉서블 리모트 데이터 미러링
US7792923B2 (en) * 2000-10-13 2010-09-07 Zhe Khi Pak Disk system adapted to be directly attached to network
US6862648B2 (en) * 2000-10-30 2005-03-01 Sun Microsystems, Inc. Interface emulation for storage devices
US20040233910A1 (en) * 2001-02-23 2004-11-25 Wen-Shyen Chen Storage area network using a data communication protocol
JP3641230B2 (ja) * 2001-10-22 2005-04-20 株式会社東芝 メモリカードを制御するための装置および方法
US7444393B2 (en) 2001-10-30 2008-10-28 Keicy K. Chung Read-only storage device having network interface, a system including the device, and a method of distributing files over a network
US6775672B2 (en) * 2001-12-19 2004-08-10 Hewlett-Packard Development Company, L.P. Updating references to a migrated object in a partition-based distributed file system
JP3982265B2 (ja) * 2002-01-15 2007-09-26 コニカミノルタビジネステクノロジーズ株式会社 インタフェース処理
AU2003217839A1 (en) * 2002-04-03 2003-10-20 Advanced Micro Devices, Inc. Ata/sata combined controller
US7181531B2 (en) * 2002-04-30 2007-02-20 Microsoft Corporation Method to synchronize and upload an offloaded network stack connection with a network stack
JP4786115B2 (ja) * 2002-05-10 2011-10-05 株式会社日立製作所 計算機システム
US6934769B2 (en) * 2002-07-29 2005-08-23 Lsi Logic Corporation Methods and structure for SCSI/IDE translation in a storage subsystem
US7953819B2 (en) * 2003-08-22 2011-05-31 Emc Corporation Multi-protocol sharable virtual storage objects

Also Published As

Publication number Publication date
CN1841295B (zh) 2011-10-05
TW200705189A (en) 2007-02-01
TWI319532B (en) 2010-01-11
US7568056B2 (en) 2009-07-28
CN1841295A (zh) 2006-10-04
CN102411547A (zh) 2012-04-11
EP1708089A2 (en) 2006-10-04
US8402171B1 (en) 2013-03-19
EP1708089A3 (en) 2008-08-06
JP2006294022A (ja) 2006-10-26
US20060248241A1 (en) 2006-11-02

Similar Documents

Publication Publication Date Title
JP5128079B2 (ja) ユニバーサルストレージバスアダプタ
US6813688B2 (en) System and method for efficient data mirroring in a pair of storage devices
EP2361404B1 (en) Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US7925847B2 (en) Method and apparatus for adjusting timing signal between media controller and storage media
JP4917174B2 (ja) 制御装置と通信するように構成されたホスト・コンピュータ・システムにおける入出力(i/o)操作用の入出力処理を容易にするためのコンピュータ・プログラム、装置、および方法
US20140059295A1 (en) Smart scalable storage switch architecture
JP6102032B2 (ja) ストレージにアクセスするためのコマンドキュー長を効率的に増やす方法及び装置
US7805543B2 (en) Hardware oriented host-side native command queuing tag management
US8060669B2 (en) Memory controller with automatic command processing unit and memory system including the same
CN101657801A (zh) 对固态存储的统一支持
US11074010B2 (en) Storage system and control method thereof
US5996045A (en) IDE disk drive arrangement that combines the capacity of a master drive and slave drive while hiding the presence of slave drive to a host computer
US7600058B1 (en) Bypass method for efficient DMA disk I/O
US20060143506A1 (en) RAID storage controller assist circuit, systems and methods
US20090144463A1 (en) System and Method for Input/Output Communication
JP2003288317A (ja) 端数ブロックデータ転送を検出し補償するシステムおよび方法
CN103942007A (zh) Raid控制器及其命令处理方法
EP1288774A2 (en) Integrated drive controller for systems with integrated mass storage
US8667188B2 (en) Communication between a computer and a data storage device
US20070245060A1 (en) Method and system for handling data by file-system offloading
Yang Programming for I/O and Storage
Pentakalos Configuring the Windows 2000 I/O Subsystem

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120626

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5128079

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151109

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250