JP2006505065A - ストレージシステムのための方法及びシステム - Google Patents

ストレージシステムのための方法及びシステム Download PDF

Info

Publication number
JP2006505065A
JP2006505065A JP2004550085A JP2004550085A JP2006505065A JP 2006505065 A JP2006505065 A JP 2006505065A JP 2004550085 A JP2004550085 A JP 2004550085A JP 2004550085 A JP2004550085 A JP 2004550085A JP 2006505065 A JP2006505065 A JP 2006505065A
Authority
JP
Japan
Prior art keywords
data
storage
storage device
memory section
shift register
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
JP2004550085A
Other languages
English (en)
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
Priority claimed from US10/284,268 external-priority patent/US7707351B2/en
Priority claimed from US10/284,199 external-priority patent/US7197662B2/en
Priority claimed from US10/284,278 external-priority patent/US7415565B2/en
Application filed by リング テクノロジー エンタープライズィズ,エルエルシー filed Critical リング テクノロジー エンタープライズィズ,エルエルシー
Publication of JP2006505065A publication Critical patent/JP2006505065A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space

Abstract

1以上のメモリセクション、1以上のスイッチ及び管理システムから構成されるストレージシステム。メモリセクションは、一特徴によると、不具合を検出し、検出された不具合に関するメッセージを管理システムに送信することが可能なセクションコントローラと記憶装置を有する。ストレージシステムは、セクションコントローラから不具合メッセージを受信し、故障したメモリセクション使用を削除することが可能な管理システムを有する。さらに、管理システムは、1以上のスイッチに対するルーティングアルゴリズムを決定してもよい。他の特徴によると、スイッチは、データブロック識別子を含むデータリクエストを読み取り、このデータブロック識別子に基づきスイッチを介しデータリクエストと任意の関連するデータをルーティングすることが可能であり、これにより、データリクエストをメモリセクションにルーティングすることが可能となる。これに対し、セクションコントローラは、要求されたデータを格納する記憶装置内のアドレスを決定し、これらのアドレスを要求されたデータを格納する記憶装置に送信する。さらなる他の特徴によると、データに対するデータリクエストは、セクションコントローラにより通信経路を介し受信されてもよい。セクションコントローラは、要求されているデータを格納している記憶装置のアドレスを決定し、これらのアドレスを当該記憶装置に送信し、メモリインタフェース装置に識別子を送信する。これに対し、記憶装置はデータを読み出し、当該データをそれの対応するメモリインタフェース装置に送信する。その後、メモリインタフェース装置はセクションコントローラから受信した識別子をこのデータに追加し、データがセクションコントローラを介しわたす必要がないように、要求されたビットをそれらの送信先に転送する。

Description

発明の詳細な説明
[発明の背景]
本発明は、データストレージに関し、より詳細には、高スループット記憶のための方法及びシステムに関する。
大量のデータブロックの読み出しまたは書き込みを要するオンライントランザクション処理(OLTP)アプリケーションの一形態は、H−OLTPアプリケーションと呼ばれる。典型的には、大規模サーバ、メインフレームあるいは複数のサーバが、H−OLTPアプリケーションのホストとなる。典型的には、これらのアプリケーションは、リアルタイムオペレーティングシステム、リレーショナルデータベース、光ファイバベースネットワーキング、ユーザコミュニティへの分散通信設備及びアプリケーション自体の利用を伴う。これらのアプリケーションのストレージソリューションは、格納されているプログラム制御の下、メカニカルなディスクドライブとキャッシュメモリの組み合わせを利用する。H−OLTPアプリケーションの記憶管理技術は、複数のディスクドライブに対する冗長ファイル格納アルゴリズム、メモリキャッシュ複製、データコヒーレンシーアルゴリズム及び/またはロードバランシングを利用することが可能である。
以下において、CDA(Cached Disk Array)やSSD(Solid−State Disk)システムの記憶管理技術が概説される。
CDAは、共通のプログラム制御の下、ディスクドライブとソリッドステートメモリシステムを合成したものである。CDAのディスクドライブは、サーボメカニカルな装置である。モータ技術の進歩は、現在ではディスクドライブのプラッタ(platter)が毎分15,000回転することを可能にし、先進的なシステムでは、プラッタを毎分18,000回転させるものもある。
CDAは、より多くの装置のラック、より多くのキャッシュあるいはその両方を追加することにより容量が追加されるアーキテクチャにおいて、共通のメモリキャッシュと複数の回転するディスクのラックを組み合わせている。CDAはしばしば、H−OLTPアプリケーションを含む失敗の許されない(mission critical)アプリケーションにおける格納サービスを提供するのに企業により利用されている。
CDAのオンボードキャッシュは、キャッシュメモリにおけるデータのアクセス時間は、ドライブ上のデータのアクセス時間より短くすることが可能であるため、頻繁に使用されるデータを格納する。CDAなどのメディアを有するこのようなハイエンドストレージシステム装置は、トータルのスループットとメモリキャッシュサイズに関して理想的な望ましい特徴を有するものではない。
ソリッドステートディスク(SSD)は、コンピュータのCPU(Central Processing Unit)にそれの内部バス構成を介し付属されるソリッドステートメモリに対応する記憶装置である。外部のコンピュータに対し、SSDは高速通信リンクやネットワークを介しコンピュータに直接付属されるとき、超高速ディスクドライブとなる。格納されているプログラム制御の下で動作すると、SSDは、トランザクションログ、データベースインデックス、企業の失敗の許されないアプリケーションの効率的な実行に一体化された特殊なデータ構造などの頻繁に使用される情報を格納する。
大容量ストレージは、特に金融、防衛、研究、顧客管理及び国防の分野における新たに作成されるアプリケーションなどにおいて、大容量リアルタイムアプリケーションの十分なスループットを提供することが所望されるであろう。
[発明の概要]
従って、本発明は従来技術の問題点を解決する方法及びシステムに関する。
本発明の目的によると、ここで広く説明及び実現されるように、1以上メモリセクション、1以上のスイッチ及び管理システムを有する装置のための方法及びシステムが提供される。1以上のメモリセクションは、データを格納領域に格納可能な1以上の記憶装置と、メモリセクションにおける不具合を検出し、検出された不具合に応答して、エラーメッセージを送信することが可能なメモリセクションコントローラとを有する。1以上のスイッチは、1以上の外部装置と接続するための1以上のインタフェースと、1以上のメモリセクションと外部装置インタフェースとに接続され、アルゴリズムに基づきメモリセクションと外部装置インタフェースとを相互接続するスイッチファブリックとを有する。メモリセクションコントローラからエラーメッセージを受信し、エラーメッセージの送信元のメモリセクションの使用を停止することが可能な管理システムが提供され、当該管理システムはさらに、メモリセクションと外部装置インタフェースを相互接続するのにスイッチファブリックにより用いられるアルゴリズムを決定し、この決定されたアルゴリズムを実行するようスイッチに指示することが可能である。
他の特徴では、1以上のメモリセクションと1以上のスイッチを有する装置のための方法及びシステムが提供される。1以上のメモリセクションは、データを格納する格納領域を有する1以上の記憶装置と、記憶装置に格納領域を特定するアドレスを提供するメモリセクションコントローラとを有し、記憶装置は提供されたアドレスを用いて、記憶装置に対するデータの読み書きから選ばれた機能を実行する。データリクエストを受信する1以上のスイッチは、格納領域群を特定するデータブロック識別子を有し、このデータブロック識別子に基づき、データリクエストをメモリセクションの1以上に切り替える。さらに、データリクエストが切り替えられたメモリセクションは、受信したデータブロック識別子をそれのメモリセクションコントローラに転送し、当該メモリセクションコントローラは、データブロック識別子を当該データブロック識別子により特定される格納領域のアドレス群に変換し、このアドレス群をメモリセクションの記憶装置の1以上に提供する。
さらなる特徴では、1以上の記憶装置、メモリセクションコントローラ及びメモリインタフェース装置を含む装置のための方法及びシステムが提供される。1以上の記憶装置は、1以上のアドレスにより特定可能なデータを格納するためのものであり、制御信号を受信することが可能である。メモリセクションコントローラは、記憶装置により格納されているデータに対するリクエストを受信し、要求されたデータに対する1以上のアドレスを決定し、要求されたデータを転送するのに用いられる識別子を決定し、要求されたデータを格納する記憶装置に対する決定されたアドレスを含む制御信号を記憶装置に送信する。メモリインタフェース装置は、記憶装置により格納されている要求されたデータを当該記憶装置から受信し、メモリセクションコントローラから、要求されたデータを転送するのに用いられる決定された識別子を受信し、要求されたデータと決定された識別子を合成し、要求されたデータを送信先装置に転送する。
上記概要と以下の詳細な説明は、請求された本発明の範囲を限定するべきものではない。何れも第三者が本発明を実施するのを可能にする実施例と説明を提供する。本発明のベストモードを実行するための説明の一部を構成する添付された図面は、本発明のいくつかの実施例を示し、説明と共に本発明の原理を説明する。
[詳細な説明]
添付された図面に示される実施例がより詳細に参照される。可能である場合にはいつでも、同一または類似したパーツを参照するのに同一の参照番号が図面を通じて使用される。
図1は、提供される方法及びシステムに従う一実施例によるストレージハブ環境のブロック図である。図示されるように、ストレージハブ環境は、ストレージハブ10、サーバ12−1と12−2、外部管理システム14−1と14−2、不揮発性記憶装置16、IPネットワーク18及び他のネットワークへの接続20から構成される。ストレージハブ10は、大容量ストレージ(図示せず)を備え、データブロックにデータを格納する。データはデータブロックに格納されてもよいが、本発明の範囲から逸脱することなく、データを格納する他の任意の機構が利用されてもよい。不揮発性記憶装置16は、上述のCDAなどの磁気記憶装置であってもよい。不揮発性記憶装置16は、ストレージハブ10により格納されているデータのバックアップデータを格納するのに利用されてもよい。
以下の説明は、次のように構成されている。まず、図1に示されるストレージハブ10の環境の概観が与えられる。その後、ストレージハブ10のコンポーネントのより詳細な説明が与えられ、さらに、データをストレージハブに書き込む方法、データをストレージハブから読み出す方法、及びストレージハブ10に対するテスト動作のより詳細な説明が与えられる。その後、上記コンポーネントの他の例が与えられる。しかしながら、これらはすべて、本発明を実現する実施例としての方法及びシステムに関する例示的説明であるということが理解されるべきである。また、本出願の請求項により画定される本発明を実現するのに利用可能な方法及びシステムは他にもあるということを当業者は認識するであろう。
サーバ12−1と12−2は、例えば、内部または外部ネットワーク(図示せず)に接続することが可能な市場から入手可能な標準的サーバまたはサーバファームである。例えば、サーバ21−1及び/または12−2は、ネットワークに接続されるエンドユーザからの情報の抽出または格納に対する要求を受信するため、イーサネット(登録商標)などの内部ネットワークに接続されていてもよい。あるいは、サーバ12−1及び/または12−2は、外部ネットワークに接続されるエンドユーザからの情報の抽出または格納に対する要求を受信するため、インターネットなどの外部ネットワークに接続することも可能である。さらに、2つのサーバ12−1と12−2が図示されているが、ストレージハブ10は、任意数のサーバ12に接続されてもよい。
サーバ12により実行されるアプリケーションがデータを必要とするとき、サーバ12は、ストレージハブ10がデータを格納しているか判断する。サーバ12は、それのアプリケーションが必要とするデータがストレージハブ10上にあるか示すレコードを格納するようにしてもよい。その後、サーバ12は、データを要求するデータリクエストをストレージハブ10に送信する。ストレージハブ10は、データ格納場所からデータを読み出し、当該データを要求したサーバ12−1または12−2に送信する。サーバは、ストレージハブ10からデータを必要とする異なるタイプのアプリケーション及びデータベース管理システムを実行してもよい。典型的なアプリケーションの例として、課金システム、顧客関係管理システム、予約システム、発注システム、セキュリティシステムなどがあげられる。データベース管理システムの例としては、ORACLE、DB2、Sybase、Informixなどがあげられる。
さらに、ストレージハブ10は、サーバ12−1または12−2からデータを格納するリクエストを受信するようにしてもよい。その後、ストレージハブ10は、好ましくは、サーバ12に書き込み発生のアクノリッジメント(すなわち、データの格納)またはエラーメッセージを提供する。
このようなメッセージは、例えば、データブロックがストレージハブ10のストレージ(図示せず)と、CDA16がストレージハブ10のバックアップとして利用されるCDA16の両方に安全に格納されたことのアクノリッジメント、データブロックがストレージハブ10のストレージ(図示せず)に安全に格納されていることのアクノリッジメント、何れかのタイプの非アクノリッジメント、あるいはエラーメッセージを含むことが可能である。
外部管理システム14は、外部管理システム14−2などのストレージハブ10に直接接続されてもよい。あるいは、外部管理システム14は、ネットワークを介しストレージハブ10に接続されてもよく、例えば、外部管理システム14−1はネットワーク18を介しストレージハブ10に接続される。ネットワーク18は、内部イーサネット(登録商標)ネットワーク、IPネットワーク、あるいはインターネットなどの任意のタイプのネットワークでもよい。図1はストレージハブ10に接続される外部管理システム14−1と14−2の両方を示しているが、他の実現形態では、外部管理システムは1つのみ、あるいは任意数設けられてもよいし、あるいは外部管理システム14は設けられる必要はない。例えば、他の実現形態では、3以上の外部管理システムを有することが望ましいかもしれない。さらに、外部管理システムは、HP Openviewなどの入手可能なソフトウェアまたは専用ソフトウェアを実行するコンピュータであってもよい。ストレージハブ10は、格納されているデータブロックの状態及び位置などの監視及び管理情報を外部管理システム14に提供するようにしてもよい。
図2は、提供される方法及びシステムによるストレージハブ10のより詳細なブロック図を示す。図示されるように、ストレージハブ10は、スイッチ22−1と22−2、管理コンプレックス26及びメモリセクション30−1〜30−nから構成される。本実施例では、スイッチ22−1と22−2の何れもがアクティブ状態であってもよいし、あるいは一方のスイッチがアクティブ、他方のスイッチはアクティブなスイッチに問題が生じたときに使用される冗長なスイッチとされてもよい。図2は2つのスイッチを示しているが、ストレージハブ12は、1つのみ、または任意数のスイッチを備えるようにしてもよい。
図2において、サーバ12−2は、ネットワーク20を介しストレージハブ10と入出力(I/O)コントローラ24を介し接続している。ネットワークは、イーサネット(登録商標)ネットワークやインターネットなどの内部または外部何れのタイプのネットワークであってもよい。I/Oコントローラ24は、好ましくは、特定のネットワーク20と接続するための適切なI/Oコントローラである。好ましくは、I/Oコントローラ24は、ネットw−ク20の本来のプロトコルとストレージハブ10により用いられるローカルプロトコルとの間で信号を変換する。可能なプロトコルとしては、以下に限定されるものではないが、TCP/IP(Telecommunications Control Protocol/Internet Protocol)、SNA(System Network Architecture)ベースプロトコル、SCCI(Serial Communications Control Interface)、ISCI(Intelligent Serial Communications Interface)、Fibre Channel、Infiniband、他の第3世代入出力(3GIO)プロトコルなどがあげられる。
メモリセクション30は、好ましくは、ストレージにアクセスするための他のハードウェアと共に、ストレージハブ10のストレージを備える。ここで用いられる「メモリセクション」との用語は、情報を格納するのに利用可能な1以上の記憶装置を含む任意のサブシステムを意味する。この構成は、データの格納が可能な任意の装置に適用可能である。従って、ストレージハブ10がデータを格納するリクエストを受信すると、当該データはメモリセクションに転送され、データは格納される。同様に、データに対するリクエストがストレージハブ10により受信されると、このリクエストは要求された情報を格納しているメモリセクション30に送られる。このとき、メモリセクション30は要求されたデータを読み出し、当該データを要求したサーバ12に送信する。メモリセクション30とその動作に関するより詳細な説明は以降において与えられる。
ストレージハブ10の管理コンプレックス26は、ストレージハブ10の管理タイプ機能を実行し、ストレージハブ10と外部管理システム14を接続する。ここで用いられる「管理コンプレックス」という用語は、ストレージハブ10の管理を行う任意のソフトウェア及び/またはハードウェアを意味する。管理コンプレックス26のより詳細な説明は以降において与えられる。
I/Oコントローラ24とスイッチ22−1及び22−2は、好ましくは、データブロックがネットワーク20の本来のプロトコルによりストレージハブと送受信可能となるように、管理コンプレックス26による共通管理制御下にある。
各サーバ12−1と12−2は、好ましくは、デバイスドライバ28−1と28−2をそれぞれ有する。デバイスドライバ28は、ストレージハブ10とのデータの読み書き(すなわち、格納される)を実行させるサーバ上のアプリケーションを可能にするサーバ上のソフトウェアにより実行されるプログラムである。サーバ12がデータを読み書きするリクエストを受信すると、サーバ12のデバイスドライバ28は、当該リクエストをストレージハブ10のスイッチに転送する。デバイスドライバ28は、例えば、サーバレジデントソフトウェアの一部として供給される標準的なデバイスドライバであってもよいし、あるいは記憶装置のベンダにより供給される専用ソフトウェアであってもよい。さらに、一部のアプリケーションでは、デバイスドライバ28は、サーバ上に設けられる任意のアプリケーションから独立していてもよい。
スイッチ22−1と22−2は、互いに工業用規格通信インタフェースプロトコルを介し、サーバ12−1、I/Oコントローラ24、CDA16及びメモリセクション30−1〜30−nに接続される。これらの通信インタフェースプロトコルは、例えば、Fibre Channel、ATM(Asynchronous Transfer Mode)、イーサネット(登録商標)、FDDI(Fiber Distributed Data Interface)、SNA(Systems Network Architecture)インタフェースあるいはX.25などであってもよい。銅線や光ファイバなどの任意のタイプの物理的接続が、上記各種コンポーネントを接続するのに利用されてもよい。管理コンプレックス26は、好ましくは、ギガビットイーサネット(登録商標)接続を介し、スイッチ22、メモリセクション30−1〜30−n、I/Oコントローラ26及び外部管理システム14に接続される。これらは好ましい接続であるが、上記装置を接続するのに利用可能なプロトコルや物理的メディアに他にも多数あるということは当業者は認識するであろう。さらに、メモリセクション30は、上記装置の接続のため、複数のプロトコル及び物理的メディアを同時にサポートするものであってもよい。
スイッチ22は、時分割多重ファブリックや空間分割多重ファブリックなどの任意のタイプのスイッチファブリックを用いた任意のタイプのスイッチであってもよい。ここで用いられる「スイッチファブリック」との用語は、入力インタフェースから出力インタフェースまでデータを送る物理的なインタコネクション構成を意味する。例えば、スイッチ22は、Fibre Channelスイッチ、ATMスイッチ、高速イーサネット(登録商標)スイッチ、FDDIスイッチ、あるいは他の任意のタイプのスイッチであってもよい。スイッチ22はまた、当該スイッチを制御するコントローラ(図示せず)を有するようにしてもよい。
書き込み処理では、データブロックは、ストレージハブ10のメモリセクション30に書き込まれるのに加えて、CDA16または他のストレージハブ(図示せず)に書き込まれてもよい。データが書き込まれた後、管理コンプレックス26の設定管理パラメータに依存して、ストレージハブ10はアクノリッジメントをサーバ12のデバイスドライバ28に送信するようにしてもよい。設定管理パラメータの例としては、状態パラメータ、ライトアクノリッジメントパラメータ、ルーティングパラメータ、通知インターバルパラメータ及び現在日時などがあげられる。
データブロック読み出しリクエストでは、データブロックを要求するデバイスドライバ28のリクエストにより、スイッチ22が当該リクエストを適切なメモリセクション30に送り、メモリセクション30は当該データブロックを抽出し、スイッチ22を介し要求元のサーバ12のデバイスドライバ28に送信する。
データブロックの読み出し及び書き込み処理中、管理コンプレックス26の設定管理パラメータに応じて、メモリセクション30は、管理コンプレックス26に送信する管理データを収集する。その後、管理コンプレックス26は、当該データを外部管理システム14に利用可能にする。
さらに、管理コンプレックス26は、監視及び管理情報を収集し、外部管理システム14に提供する。監視情報には、例えば、メモリセクションハートビート(heartbeat)(すなわち、メモリセクションが依然として通信可能であることを示す信号)、アラーム及びアラームのアクノリッジメントが含まれてもよい。管理情報には、例えば、読み書きされたデータに関する統計、アクティブなメモリセクションの個数に関する統計、メモリセクション利用性に関する統計、以前の情報を外部管理システムに提示する通知などが含まれてもよい。
外部管理システム14はまた、管理コンプレックス26を設定管理データに提供するようにしてもよい、この設定管理情報には、例えば、有効な通信ネットワークアドレス、ハートビートインターバルの期間、データブロックサイズ、コマンドセットなどが含まれてもよい。
ストレージハブ10はまた、工業的に利用可能な標準的手段を用いてビットレベルエラー復元を実行するようにしてもよい。例えば、回路及び/またはソフトウェアを用いた誤り検出訂正符号(EDAC)と呼ばれる誤り訂正符合(ECC)が、精度に関してデータをテストするのに利用されてもよい。これらの符号及び技術は、誤りの検出及び訂正を行うため、複数のパリティビットを用いたパリティビットまたは循環的冗長性チェック、あるいは複数の誤りを検出するためのより先進的な技術(例えば、Reed−Solomonコードなど)を含む。さらに、ストレージハブ10の各メモリセクション30は、それ自身の誤り訂正スキームを有するものであってもよい。
以下において、図2に示されるストレージハブ10のコンポーネント、すなわち、管理コンプレックス26、スイッチ22及びメモリセクション30のより詳細な説明が与えられる。その後、読み出し、書き込み及びテスト処理のより詳細な説明が与えられる。その後、メモリセクション30の他の実施例が、ストレージハブ10とそのコンポーネントの特徴と共に与えられる。
[管理コンプレックス]
図3は、提供される方法及びシステムによる管理コンプレックス26の論理構成を示す。図示されるように、管理コンプレックス26は、管理プロセス32を管理する機能と、制御プロセス34を管理する機能とを備えるようにしてもよい。これらの管理機能は、各自のプロセスを実行する1以上のCPUを有するようにすることが可能である。さらに、管理コンプレックス26は、これら機能間の通信のための1以上のアプリケーションプログラムインタフェース(API)を用いるようにしてもよい。
図4は、提供される方法及びシステムによる管理コンプレックス26の物理的構成のブロック図である。図示されるように、管理コンプレックス26は、1以上の制御プロセッサ34−1〜34−n、共有メモリ36、1以上の管理プロセッサ32−1〜32−m、記憶装置38及び通信ネットワーク40を有する。上述のように、制御プロセッサ34は、1以上のCPUを有するものであってもよい。これらの制御CPU34−1〜34−nは、共有メモリ36とインタフェースを有する。通信ネットワーク40は、内部ネットワークであってもよいし、ギガビットイーサネット(登録商標)などの任意のタイプの通信プロトコルを用いるものであってもよい。
制御プロセッサの1以上(例えば、34−1〜34−mなど)がマスタとして機能し、残りの制御プロセッサ(例えば、34−(m+1)〜34−nなど)がスタンバイモードに維持され、マスタ制御プロセッサの1つ(例えば、34−1など)に不具合が生じると迅速に切り替えができるようにしてもよい。
制御CPU34は、ギガビットイーサネット(登録商標)ネットワークなどの通信ネットワークに設けられてもよいし、磁気記憶装置38に直接設置されてもよい。
各管理プロセッサ32は、メモリ(図示せず)を有し、通信ネットワーク40に設けられてもよい。これら管理プロセッサはまた、磁気記憶装置38に接続されてもよい。磁気記憶装置38は、制御プロセッサ34と管理プロセッサ32からの各種制御及び管理情報を格納している。磁気記憶装置38は、サーボメカニカルなディスク装置などの任意のタイプの磁気記憶装置であってもよい。他の実施例では、記憶装置38は含まれる必要はない。
制御プロセッサ34は、メモリセクション30、I/Oコントローラ24、スイッチ22及びサーバ12のデバイスドライバ28に対する設定管理機能を実行する。ここで用いられる「設定(configuration)」という用語は、ストレージハブの各コンポーネントの可能な各種動作状態を含む広い用語である。ここで用いられる「動作状態(operating state)」という用語は、ストレージハブやそれのコンポーネントがパラメータの値により規定されるような動作を行う可能な方法を意味する。これらのパラメータの値は、例えば、システム管理者などのストレージハブのユーザにより外部管理システムなどを介し設定されるようにしてもよい。動作状態には、例えば、あるコンポーネント(メモリセクション30など)がパフォーマンス統計を管理コンプレックス26に送信する頻度、あるコンポーネント(メモリセクションなど)に警告を通知させるイベントのリスト、及び/または通知される警告(コンポーネントの重大な故障、コンポーネントによる些細な不具合など)のタイプなどが含まれるかもしれない。さらに、ここで用いられる「設定管理(configuration management)」という用語は、ストレージハブのコンポーネントの現在の動作状態と、制御プロセッサ34において実行されているソフトウェアにより規定されるコンポーネントの情報の変更に対する応答能力の理解を意味する。例えば、制御プロセッサ34は、ストレージハブ10のアクティブ状態のメモリセクション30、スイッチ22、サーバ12のデバイスドライバ28、存在する場合にはストレージハブ10に接続されている外部サーバ22の各個数をリアルタイムに制御するようにしてもよい。
制御プロセッサ34のソフトウェアはまた、管理コンプレックスが実行する他の機能とは独立に、そして他のメモリセクション30の動作に実質的に影響を与えることなく、あるいはストレージハブの全体的なパフォーマンスに悪影響を及ぼすことなく、新たなメモリセクションを機能させたり機能停止させたりすることができるようにしてもよい。この機能を実行するための指示は、制御プロセス34からスイッチ22に送られ、サーバ12のデバイスドライバ28に送られるようにしてもよい。新たな容量がストレージハブ10に追加される場合、制御プロセッサ32のソフトウェア機能により新たなメモリセクション30を機能させることができる。メモリセクション30が故障した場合、この故障したメモリセクション30は交換され、新たなメモリセクションが供される。故障管理に関するさらなる説明は以降において与えられる。
制御プロセッサ34はまた、例えば、ストレージハブ10の故障管理を実行することができるようにしてもよい。ここで用いられる「故障管理(fault management)」という用語は、故障を検出し、故障の検出に応答して訂正動作を実行しようとすることを意味する。例えば、制御プロセッサは、メモリセクション30またはその一部の動作故障を認識し、データを作業中のメモリセクション30に移すかもしれない。このとき、制御プロセッサ34は、ストレージハブ10に設けられるサーバ12上で実行されるデバイスドライバ28と外部管理システム14にこの移転を伝達するようにしてもよい。
制御プロセッサ34はまた、メモリセクション30の故障時には「欠損ブロック(bad−block)」移転機能と、電力障害時には磁気記憶装置38へのデータの書き込みを管理するようにしてもよい。欠損ブロックの移転は、セクションコントローラ54または管理コンプレックス26により損傷した記憶装置にあると検出されたデータブロックが、可能な場合には復元されるプロセスである。
例えば、制御プロセッサ34がメモリセクション30−2のブロック65,000が正確に読取れないと検出すると、制御プロセッサ34は、メモリセクション30−2のブロック65,000をメモリセクション30−2のブロック位置1,999,998に移転することを決定するようにしてもよい。その後、制御プロセッサ34は、CDA16に当該データブロックを読み出すよう指示し、メモリセクション30−2の位置1,999,998にそれを書き込むよう指示するようにしてもよい。完了すると、制御プロセッサ34は、スイッチ22とメモリセクション30−2にブロック65,000が位置1,999,998から現在読み出し可能であると通知するようにしてもよい。
欠損ブロックの移転に関する他の例として、メモリセクションの1つのみの記憶装置が故障した場合、管理コンプレックス26の制御プロセッサ34は、この欠損ブロックについてセクションコントローラ54に通知し、この故障した記憶装置上のデータがどこにバックアップされているか判断し(例えば、CDA16)、バックアップされているデータを同一のメモリセクションまたは異なるメモリセクション上の取り替えられた記憶装置にロードするよう指示する。後者の場合、管理コンプレックスはまた、スイッチにもデータが新たなメモリセクションに移転されたことを通知する。
さらなる他の例として、制御プロセッサ34によりあるメモリセクション30が故障していると判断されると、制御プロセッサ34は、このメモリセクション30の全体を機能停止し、メモリセクションの置換が実行されるよう指示するようにしてもよい。これを実現するため、制御プロセッサ34は、例えば、CDA16に故障したメモリセクション30のデータのバックアップを、例えば、メモリセクション30が欠損した場合に用いられるスペアのメモリセクション30であってよい他のメモリセクション30−Nに転送するよう指示してもよい。このとき、この新たなメモリセクション30−Nは、あたかもそれが故障メモリセクション30であるかのように動作するようにしてもよい。このとき、制御プロセッサ34は、この情報を各種デバイスドライバ28と外部管理システム14に通信するようにしてもよい。
制御プロセッサ34はまた、メモリセクション30、スイッチコントローラ202及びI/Oコントローラ24に更新された新規のソフトウェアを提供するようにしてもよい。例えば、メモリセクション30またはスイッチ22により用いられるソフトウェアが損傷及び/または故障した場合、制御プロセッサ34は、自らのストレージ38からソフトウェア画像の言味または以前のもののバックアップコピーをロードすることが可能である。ソフトウェア画像は、コンピュータにより直接実行可能なバイナリオブジェクトコードである。一実施例による制御プロセッサ34のソフトウェア画像は、磁気ストレージ38に格納される。さらに、制御プロセッサ34はまた、CDA16からのデータブロックのメモリセクション30へのロード処理を制御するようにしてもよく、またその逆としてもよい。
さらに、制御プロセッサ34は、あるコンポーネントが警告を送信した時刻や、あるコンポーネントが警告状態あったトータルの経過時間などの情報を、通信インタフェースを介しストレージハブ10のコンポーネントから受信するようにしてもよい。
制御プロセッサ34はまた、管理プロセッサ32がアクティブなメモリセクション30の個数、一定時間におけるストレージハブ10のトータルスループット、メモリセクションキューのサイズなど、ストレージハブの動作状態を有するパラメータに関するデータを収集することを可能にする(ここで、メモリセクションキューは、完了予定のリード処理及びライト処理のリストから構成されるセクションコントローラのキューである)。さらに、制御プロセッサ34は、制御プロセッサがマスタとしてアクティブ状態にあるか、スタンバイ状態にあるか、動作していないかの決定など、自らの動作状態をモニタリングするためのものである。さらに、制御プロセッサ34は、極端な温度や湿度などに対しストレージハブの環境をモニタリングするようにしてもよい。
制御プロセッサ34はまた、スイッチ22により実行されるソフトウェアのコピー(すなわち、ソフトウェア画像)を格納するようにしてもよい。スイッチ22のより詳細な説明は以降において与えられる。必要に応じて、スイッチソフトウェアを1以上のスイッチにリロードすることが可能である、後述されるように、スイッチ22は、スイッチ22を制御するため、このソフトウェアを実行する1以上のスイッチコントローラ(図示せず)を有するようにしてもよい。スイッチ22がマスタ−スレーブ構成により構成された複数のコントローラを用いる場合、制御プロセッサ34は、スイッチのどのコントローラがマスタであり、どのコントローラがスレーブであるか判断してもよい。
さらに、制御プロセッサ34は、スイッチ22上のポート(図示せず)の状態(アクティブ、アイドル、停止)、すなわち、これらのポートがサーバ12やメモリセクション30に接続するのに利用されているか判断するようにしてもよい。制御プロセッサ34はまた、設定管理データをスイッチ22に提供するようにしてもよい。設定管理データの例として、日付、時刻、使用されているルーティングアルゴリズム、状態のチェック間隔、アクティブなサーバポートの識別子などが含まれる。さらに、制御プロセッサ34は、スイッチに異なる「取得」アルゴリズムを利用して接続を確立するのに利用可能なアイドルポートを検出するよう指示してもよい。これらのアルゴリズムは、例えば、ロータリーハント(rotary hunt)、スキップルート(skip route)及びリーストユーズド(least−used)を含むスイッチコントローラにより実行されるソフトウェアに含まれてもよい。
管理プロセッサ32は、好ましくは、I/Oコントローラ24、メモリセクション30、スイッチ22及び制御プロセッサ34から情報及び統計を収集する。収集された情報及び統計は、統計レポート、テレメトリ(telemetry)データ及び他の警告を生成するための情報と管理データを含むものであってもよい。管理プロセッサ32は、TCP/IPや他の任意の適切なプロトコルを利用して、当該情報を外部管理システム14に提供する。管理プロセッサ32は、このようなパラメータに関するデータをデバイスドライバ28、スイッチ22及びメモリセクション30から収集するようにしてもよい。
システム管理者などの外部管理システムのユーザは、ストレージシステム10の設定管理パラメータの変更を要求するかもしれない。この変更は、例えば、新たなメモリセクション30の追加を表すものであるかもしれない。システム管理者などの外部管理システム14のユーザもまた、1以上のストレージハブ10を含むストレージエリアネットワーク環境(記憶装置に専用のネットワークにより接続されている記憶装置群)、1以上のストレージハブ10を含むネットワークエリアストレージ環境(他のトラフィックにより共有されているネットワークにより接続される記憶装置群)、及び他の外部システムから統計データを収集するよう管理プロセッサ36に要求してもよい。例えば、この統計データには、各ストレージ環境や特定のサーバからのトータルの入力リクエストが含まれてもよい。
管理プロセッサ32は、管理データが標準的なデータベースに格納されるようデータベースプログラムを実行し、コンピュータ画面または紙上のレポート及びグラフィックスにより当該情報をストレージハブ10のシステム管理者に提供するのに利用することが可能である。例えば、ストレージハブのシステム管理者は、外部管理システム14を用いて当該情報にアクセスすることができるようにしてもよい。あるいは、ストレージハブ10のシステム管理者は、管理プロセッサとインタフェースを介し直接情報にアクセスするようにしてもよい。制御プロセッサ34と同様に、管理プロセッサ36は、自身をモニタリングし、自らの動作状態を制御プロセッサ34に通知することが可能であり、任意の理由に対しどの管理プロセッサ34がアクティブ状態かそうでないか判断される。
管理コンプレックス26は、不揮発性記憶装置にデータを1以上のメモリセクション30にロードするよう指示してもよい。例えば、図2に示されるように、ストレージハブ10は、CDA16などの不揮発性記憶装置に接続されてもよい。このとき、管理コンプレックス26は、各種動作を実行するための指示をCDA16、スイッチ22及びメモリセクション30に送信可能とされてもよい。これらの動作には、例えば、ストレージハブ10の設定に対する管理変更の結果として、メモリセクション30の故障の結果として、あるいはユーザによるコマンドの結果として、停電により電力がストップした後、ストレージハブ10の電源がオンされたとき、ストレージハブ10が再起動されたとき、不揮発性記憶装置16からのメモリセクション30のロード処理が含まれてもよい。
ここまで管理コンプレックス26により実行可能な多数の管理及び制御機能が与えられたが、管理コンプレックス26が、異なる機能のすべてまたは一部を実行するようにしてもよいということは理解されるべきである。さらに、図3及び4は、一例となる管理コンプレックスが個別の管理プロセッサ32と制御プロセッサ34を用いて実現されることを示しているが、管理コンプレックスは1つのみ、または任意数のプロセッサを用いて、あるいはプロセッサを用いることなく実現されてもよい。
[メモリセクション]
図5は、提供される方法及びシステムによる一例となるメモリセクション30のブロック図である。図示されるように、メモリセクション30は、スイッチポータル(「S−ポータル」)42、セクションコントローラ54、ROM(Read Only Memory)56、テンポラリストレージ58、テンポラリストレージインタフェース装置60、テンポラリストアセレクタ(「T−セレクタ」)62、シンクロナイザ68、1以上のメモリイン名tフェース装置64−1〜64−8、及び1以上の記憶装置66−1〜66−nから構成されてもよい。
記憶装置66は、DRAM(Dynamic Random Access Memory)、SRAM(Synchronous DRAM)、RDRAM(Rambus DRAM)、磁気RAM、抵抗RAM、強誘電性RAM、ポリマーRAM、カルコゲニドRAM、SIMM(Single In−line Memory Module)、RIMM(Rambus In−line Memory Module)、回転メディアなどの任意のタイプの記憶装置であってもよい。ここではメモリインタフェース装置という用語が用いられるが、この用語は記憶装置に格納されている情報にアクセス可能な任意のタイプのアクセス装置を含むよう広く解釈されるべきであるということが理解されるべきである。一例となるメモリインタフェース装置のより詳細な説明は以降において与えられる。
セクションコントローラ54は、例えば、マイクロプロセッサ51、内部メモリ52、管理コンプレックスインタフェース53、記憶装置制御回路55、通信チャネルインタフェース(CCI)制御回路57、テスト回路59、タイミング回路61及びヘッダ/テストインタフェース63から構成されてもよい。マイクロプロセッサ51は、例えば、適切なソフトウェアを実行するモトローラG2などのチップであってもよい。内部メモリ52は、例えば、プログラム及びデータの格納のための32メガバイトの利用可能なSRAMであってもよい。この内部メモリ52は、モトローラG2などのマイクロプロセッサ51に内蔵されてもよい。管理コンプレックスインタフェース53は、例えば、セクションコントローラ54が管理コンプレックス26との通信において利用するギガビットイーサネット(登録商標)インタフェースを介し実行されるTCP/IPであってもよい。ヘッダ/テストインタフェース63は、セクションコントローラ54からメモリインタフェース装置64に情報を提供するための適切なインタフェースであってもよい。
セクションコントローラ54はさらに、電力が最初に印加されるとき利用されるブーストラップROM56にアクセスするようにしてもよい。このブーストラップROM56は、例えば、セクションコントローラ54が管理インタフェース53を介し現在のソフトウェア画像を取得するため、制御プロセッサ34と通信することを可能にする小さなソフトウェア画像を含むものであってもよい。セクションコントローラ54はさらに、通信チャネルインタフェース46の管理に用いられるダイレクトメモリアドレス回路を有するCCI制御回路を含むものであってもよい。
セクションコントローラ54はまた、記憶装置66を制御する記憶装置制御回路55を有するものであってもよい。この記憶装置制御回路55は、例えば、メモリラッチの2値状態を介し記憶装置66の状態を制御するメモリラッチング回路を有するようにしてもよい。メモリラッチ処理のさらなる説明は以降において与えられる。セクションコントローラ54はさらに、メモリセクション30をテストするテスト回路59を有するようにしてもよい。一例となるテスト処理のより詳細な説明は、以降において与えられる。さらに、セクションコントローラは、ヘッダタイプ情報(例えば、データブロック識別子、宛先アドレスなど)を提供し、メモリセクション30をテストするヘッダ/テストインタフェース63を有するようにしてもよい。また、セクションコントローラ54は、メモリセクションにより利用される、マスタスレーブクロック信号や、スタート及びストップリードまたはライト信号などの他のタイミング信号を提供するタイミング回路61を有するようにしてもよい。
S−ポータル42は、セレクタ44及び通信チャネルインタフェース46から構成されてもよい。通信チャネルインタフェース46は、スイッチ22を介し1以上のサーバ12とメモリセクション30を接続するためのインタフェースを提供する。この接続は、例えば、1以上の光ファイバまたは銅線ケーブルを介したものであってもよい。セレクタ44は、セレクタ44が通信チャネルインタフェース46の任意のI/Oポートと任意のメモリインタフェース装置64を接続するように、1以上のメモリインタフェース装置64と通信チャネルインタフェース46を接続するための回路を有するようにしてもよい。CCI回路57を介したセクションコントローラ54は、セレクタがメモリインタフェース装置64と通信チャネルインタフェース46をどのように接続すべきかに関する制御信号をセレクタ44に提供するようにしてもよい。さらに、セレクタ44は、メモリインタフェース装置64からCCI回路57を介しセクションコントローラ54にテストデータなどのデータを送信するよう指示されてもよい。
通信チャネルインタフェース46は、何れかの標準的なチャネルインタフェースプロトコルなどの任意のタイプのプロトコルを利用することが可能であり、セレクタ44が含まれてもよいし、あるいはそうでなくてもよい。一例となる標準的なインタフェースプロトコルは、ファイバチャネル(Fibre Channel)、システムネットワークアーキテクチャベースプロトコル(System Network Architecture−based protocol)、インテリジェントシリアル通信制御インタフェース及び他の第3世代入出力(3GIO)プロトコルを含むものであってもよい。
テンポラリストレージインタフェース装置60は、テンポラリストレージ装置58にアクセス可能な任意のタイプの装置である。例えば、テンポラリストレージインタフェース装置60は、データがシフトレジスタアレイを介し連続的にクロック処理されるように、直列に相互接続された複数のシフトレジスタを含む1以上のシフトレジスタアレイ(図示せず)を有するものであってもよい。シフトレジスタアレイ及び記憶装置などの記憶媒体へのアクセスにおける利用のさらなる説明には、参照することによりその内容の全体がここに含まれる、本出願と同日に出願されたWilliam T.LynchとDavid J.Herbisonによる「Methods and Systems for Improved Memory Access」を参照されたい。
テンポラリストレージ58は、DRAM、SDRAM、SIMM、DIMM、ディスクドライブなどの任意のタイプの記憶装置であってもよい。T−セレクタ62は、複数の入力からの選択を行う任意のタイプのセレクタであってもよい。
ストレージハブ10は、テンポラリストレージインタフェース装置60がシフトレジスタアレイを有する実施例において、シンクロナイザ68を利用するかもしれない。このような実施例では、シンクロナイザ68は、例えば、メモリセクション30に格納されるデータを受付け、位相同期回路を用いて入力データストリームからクロック周波数を抽出するようにしてもよい。このとき、シフトレジスタアレイを有するテンポラリストレージインタフェース装置60は、このクロック信号を用いてテンポラリストレージ装置58へのデータの書き込みにおいてこのデータをシフトするようにしてもよい。このクロック信号は、例えば、入力データの位相または周波数の何れかとメモリセクションのシステムクロックとの可能な差を補償するのに利用されてもよい。記憶装置66への格納のため、データがテンポラリストレージインタフェース装置60からシフトされると、メモリセクションのシステムクロックは、好ましくは、データをシフトするのに用いられる。
セクションコントローラ54は、メモリセクション30における不具合を検出することが可能とされてもよい。例えば、セクションコントローラ54は、通信回路インタフェース回路57を介し通信チャネルインタフェース42により利用されるプロトコルまたはハードウェアにおけるエラーを検出するようにしてもよい。さらに、セクションコントローラ54は、例えば、ヘッダ/テストインタフェース63の利用によりメモリインタフェース装置64におけるエラーを検出するようにしてもよい。さらに、記憶装置66が、例えば、電子誤り訂正回路(DIMMなど)などの不具合を検出及び/または訂正するための回路を有する場合、記憶装置66は、メモリ制御55を介しセクションコントローラ54に検出された不具合を通知するようにしてもよい。セクションコントローラ54が不具合を検出すると、セクションコントローラ54は、管理インタフェース53を介し管理コンプレックス26に不具合に関する情報(時間、コンポーネント、不具合のタイプなど)を送信するようにしてもよい。
セクションコントローラ54はまた、外部システムがマイクロプロセッサ51とのやりとりを通じてセクションコントローラ54に関する情報を取得するのを可能にする外部システム(図示せず)に利用可能なインタフェースを有するようにしてもよい。このインタフェースは、例えば、直接的な診断観察のため、キーボード及びディスプレイをサポートするようにしてもよい。外部システムインタフェース(図示せず)はまた、例えば、直接的な診断観察のための類似システムまたはコンピュータとのインタフェースをサポートするものであってもよい。図示されない外部システムはまた、当該インタフェースを利用して、例えば、テストまたは関連する診断機能のサポートにおいてマイクロプロセッサ51上の特殊なソフトウェアをインストールするようにしてもよい。
上記説明では、一例となるメモリセクションが提供された。本発明の範囲から逸脱することなく、メモリセクションを実現するための方法及びシステムが利用されてもよい。例えば、以下の説明は、PCIバス技術を用いたメモリセクションの他の実施例を提供する。
[スイッチ]
図6は、本発明による方法及びシステムに従うスイッチ22の機能図を示す。図示されるように、スイッチ22は、サーバ12、スイッチ/メモリセクション通信インタフェース208、スイッチファブリック206及びスイッチコントローラ202とのインタフェースをとるためのスイッチ/サーバ通信インタフェースから構成される。スイッチ/サーバ通信インタフェース204とスイッチ/メモリセクション通信インタフェース208は、市場で入手可能なスイッチに見つけられる標準的なスイッチインタフェースであってもよく、メモリセクション及びサーバという用語は、スイッチ22からの接続が好ましくは接続する装置を示すのに用いられる。スイッチファブリック22は、IPスイッチファブリック、FDDIスイッチファブリック、ATMスイッチファブリック、イーサネット(登録商標)スイッチファブリック、OC−xタイプスイッチファブリックあるいはファイバチャネルスイッチファブリックなどの任意のタイプのスイッチファブリックであってもよい。従って、スイッチ22は、市場で入手可能な任意のタイプのスイッチであってもよい。
本実施例では、ストレージハブ10の管理コンプレックス26は、スイッチコントローラ202を介しスイッチ22に対する制御を行ってもよく、セクションコントローラを介しメモリセクション30の通信チャネルインタフェース46に対する制御を行ってもよい。例えば、上述のように、管理コンプレックス26は、スイッチコントローラ202にスイッチファブリック206を介しトラフィックを切り替えるためのアルゴリズムを設けるようにしてもよい。さらに上述のように、管理コンプレックス26は、それが実行するソフトウェアの新たなコピー、ハートビートを送信する通常期間(すなわち、スイッチを検証する信号が依然として通信可能である)、有効な通信ネットワークアドレスのリスト、アラームアクノリッジメント及びコマンドセットをスイッチに提供するなど、他の情報を提供するようにしてもよい。さらに上述のように、管理コンプレックス26は、例えば、通信メッセージをコピーし、その内容を修正し、この新しいメッセージを処理する指示などを含む他の情報を提供するようにしてもよい。管理コンプレックス26は、例えば、情報を複数のアドレスに配信する指示などを含む他の情報を提供するようにしてもよい。
図7は、提供される方法及びシステムによりメモリセクション30の通信チャネルインタフェース46及びスイッチ22の管理の他の機能図を示す。本実施例では、スイッチコントローラ202とメモリセクションインタフェース208はスイッチ22に設けられる必要はなく、ストレージハブ10の管理コンプレックス26がスイッチファブリック206とサーバインタフェース204に対する直接的な制御を行う。従って、本実施例では、メモリセクション30の通信チャネルインタフェース46は、スイッチファブリック206に直接接続される。
図6及び7の実施例に対する他の実施例では、セレクタ44は設けられる必要はなく、すべてのメモリインタフェース装置64がスイッチファブリック206に接続されてもよい。
図8は、提供される方法及びシステムによるストレージハブ10において用いられる他の例によるスイッチ22の図を示す。より詳細には、図8は、1以上のメモリセクション30と1以上のサーバ12を接続するスイッチ22を示す。この例は、1つのメモリセクション30に接続されるM個のサーバ12−1,12−2,...,12−Mを示す。本例では、スイッチ22のサーバインタフェース204は、M個のスイッチ/サーバ通信インタフェース(SSCI)204−1〜204−Mを有し、スイッチのメモリセクションインタフェース208は、N個のスイッチ/メモリセクション通信インタフェース(SMCI)208を有する。さらに、スイッチ22のスイッチファブリック206は、1以上のスイッチングプレーン(switching plane)808を有する。
この例では、各サーバ12はデバイスドライバを有し、メモリセクション30は1以上の通信チャネルインタフェース(CCI)46−1〜46−Nを有する。この例では、P本のパラレルラインは、各デバイスドライバ28とスイッチ22と、各CCI46とスイッチ22とを接続する。この例では、各接続のライン数は等しいが、他の例では、それらは異なっているかもしれない。デバイスドライバ28は、例えば、上述のデバイスドライバ28であってもよいし、あるいはデバイスドライバ28に内蔵されてもよい。
M個のサーバの何れかが、それのデバイスドライバ28からスイッチ22を介しメモリセクション30にデータリクエストを生成及び転送するようにしてもよい。サーバ12は、書き込みを所望するデータブロック、または読み出しを所望するストレージハブ10のデータブロックを特定するデータブロック識別子を当該データリクエストに含むようにしてもよい。このとき、スイッチ22の対応するSSCI204は、このデータリクエストを受信し、それをスイッチコントローラ202に転送する。本例では、スイッチコントローラ202は、情報リクエストがデータリクエストに含まれるデータブロック識別子から送られるメモリセクション30を決定する。
メモリセクション30を決定するため、スイッチコントローラ202は、例えば、データブロック識別子とメモリセクションとの関係を規定するテーブルに問い合わせたり、アドレスを計算するためのアルゴリズムを利用したり、あるいは他の技術を利用したりしてもよい。
メモリセクションが決定されると、スイッチコントローラ202は、デバイスドライバから決定されたメモリセクション30に対応するSMCI208へのパラレルラインPの各々に対し、各スイッチングプレーン808を介する送信経路を確立するようにしてもよい。このデータリクエストはまた、正しいメモリセクション30にデータリクエストを送るとき、スイッチ22により利用される新たなアドレスを有するようスイッチコントローラ202により変更されてもよい。その後、この変更されたデータリクエストは、スイッチングプレーン808を介しSMCI208に送信される。P本のラインを介したこの送信は、同時に行われてもよい。
スイッチを介した経路が確立されている間、データはスイッチの別のストレージキュー(図示せず)またはスイッチコントローラ202のメモリ(図示せず)に配置されてもよい。データリクエストはまた、ストレージハブ10の要求に従って、スイッチコントローラ202によりコピー及び変更されてもよい。例えば、前述のように、管理コンプレックス26は、ストレージハブ10または1以上のメモリセクションに書き込まれるすべてのデータをストレージハブ10にバックアップするよう指示してもよい。このような例では、スイッチコントローラ202は、格納対象のデータを含むライトデータリクエストをコピーし、CDA16の要求に従ってこのリクエストを変更してもよい。このとき、スイッチコントローラ202は、ライトデータリクエストをCDA16に送信するための経路を確立し、書き込みデータがバックアップされるように、このリクエストの変更されたコピーをCDA16に送信するようにしてもよい。同様に、ライトリクエストを有する以降のデータブロックは、記憶装置30に送信され、CDA16にコピー及び送信されるようにしてもよい。管理コンプレックス26は、例えば、データリクエストの変更方法を判断するのにスイッチにより必要とされるソフトウェア及び任意の必要な情報をスイッチコントローラ202に提供し、複数の送信先に変更されたデータリクエストのコピーを提供し、複数の送信先にデータのコピーを提供するようにしてもよい。
メモリセクション30がデータブロックなどの情報をサーバ12に送信するとき、メモリセクション30からのデータブロックが、当該データブロックを送信するメモリセクション30のCCI46に対応するSMCI208を介しスイッチ22に到着する。このデータブロックには、メモリセクション30によりデータに挿入される識別子が含まれてもよい。メモリセクション30のメモリインタフェース装置は、例えば後述されるように、このアドレスを挿入してもよい。さらに、このアドレスは、例えば、メモリセクション30から読み出されたデータブロックを特定するデータブロック識別子、またはデータが送信されるポート若しくは装置であってもよい。この例では、各接続におけるラインの本数は異なるものであってもよいが、P本のパラレルなラインが各CCI46とスイッチ22を接続する。さらに、Pは1以上の任意の整数であってもよい。
その後、SMCI208は、データブロックをスイッチコントローラ202に転送し、スイッチコントローラ202により送信データ内の識別子(例えば、データブロック識別子、宛先アドレスなど)から当該データブロックが送信されるサーバ12が決定される。その後、スイッチコントローラ202は、この宛先アドレスまたはデータブロック識別子により、CCI46からのP本のラインのそれぞれに対し、スイッチ22を介し当該データが送信されるSSCI204への経路を確立する。その後、このスイッチ22は、スイッチングプレーン808を介しSSCI204にデータブロックを転送する。P本のラインを介したデータブロックの送信は、例えば、同時に行われてもよい。
図9は、提供される方法及びシステムによる1以上のメモリセクション30に接続される他のスイッチ22を示す。この例では、多重化(複数のデータストリームを各々独自の通信経路上でより少数のデータストリームに合成すること)及び逆多重化(データストリームセットを各々独自の通信経路上でより多数のデータストリームに分割すること)が、メモリセクション30とスイッチ22の両方で利用される。この例では、P本のパラレルラインは、各接続におけるライン数は異なるかもしれないが、各メモリセクションのCCI46とスイッチ22を接続する。
この例では、メモリセクション30−1において、Q本のラインがメモリインタフェース装置64−1から発し、R本のラインがメモリインタフェース装置64−2から発する。このとき、対応する多重化装置(902−1及び902−2)は、各メモリインタフェース装置(64−1及び64−2)からのラインをP本のストリームに多重化する。ここで、QとRは正の整数Pより大きな正の整数である。
メモリセクション30−2では、J本のラインがメモリインタフェース装置64−4から発する。ここで、JはPより小さい正の整数である。このとき、逆多重化装置904は、これらJ本のラインをP本ラインに逆多重化する。
しかしながら、P本のパラレルライン(ストリーム)はまた、スイッチング経路の何れかにおいて多重化または逆多重化されてもよい。例えば図示されるように、SMCI208−1の後で、多重化装置906によりP本のラインはT本のラインに多重化される。その後、これらT本のラインは、スイッチングプレーン808を介し逆多重化装置908にわたされ、T本のラインはP本のラインに逆多重化され、P本のラインを介しSSCI204にわたされる。
さらに、シフトアレイを有するメモリインタフェース装置を用いた実施例では、1以上のパイプラインシフトレジスタ(図示せず)が、メモリインタフェース装置及びシフトレジスタアレイのクロック周波数の適切な倍数(多重化機能)または分数(逆多重化機能)に送信クロック周波数を維持するため、送信及びスイッチング経路のいくつかのポイントに挿入されてもよい。例えば、シフトレジスタパイプラインが、CCI46に備えられてもよい。
図10は、提供される方法及びシステムによる一例となるパイプラインシフトレジスタを示す。本例では、このパイプラインシフトレジスタは、CCI46から発するP本のラインのそれぞれがラッチシフトレジスタ1002−1,1002−2,...,1002−Pに設けられるように、CCI46の出力に挿入されている。図示されるように、P本のラインのそれぞれは、ラッチシフトレジスタのS入力に設けられ、その反転がラッチシフトレジスタのR入力に接続される。ラッチシフトレジスタはさらに、ストレージハブ10のマスタクロック回路により生成されるマスタクロック信号を受信する。このマスタクロック信号は、メモリセクションなどのストレージハブ10の他のコンポーネントにより利用されてもよい。マスタクロック信号は、例えば、管理コンプレックス26により生成されてもよく、あるいは別の回路が利用されてもよい。
その後、ラッチシフトレジスタ1002からの出力Qは、第2ラッチレジスタ1004のS入力に供給され、出力の反転
外1
Figure 2006505065
は、ラッチシフトレジスタ1004のR入力に供給される。第2ラッチシフトレジスタ1004は、スレーブクロック信号を受信する。このスレーブクロック信号は、マスタクロック信号を提供するものと同じ回路により生成されてもよく、スレーブクロック信号は、例えば、マスタクロック信号を反転したものであってもよい。第2ラッチシフトレジスタ1004−1,1004−2,...,1004−Pからの出力Qは、メモリセクション30から発するP本のラインに信号を与える。パイプラインシフトレジスタの上記説明は、ラッチシフトレジスタを参照して行われたが、ダイナミックシフトレジスタなどの他のタイプのシフトレジスタが利用されてもよい。さらに、パイプラインシフトレジスタの上記説明は、CCI46の出力にパイプラインシフトレジスタを設置したことを参照して行われたが、パイプラインシフトレジスタは、スイッチングプレーン808の間、または任意の通信インタフェースなどのストレージハブ10の何れかに設けられてもよい。
[メモリインタフェース装置]
図11は、提供される方法及びシステムによるメモリインタフェース装置64の一実施例のより詳細なブロック図を有する。図11に示されるように、メモリインタフェース装置64−1と64−2はそれぞれ、ライトシフトレジスタアレイ72とリードシフトレジスタアレイ74から構成されてもよい。リード及びライトシフトレジスタアレイは何れも、直列に相互接続された複数のシフトレジスタ76を有することが可能である。シフトレジスタアレイ(72及び74)の各シフトレジスタ76は、シフトレジスタ76と記憶装置66の対応するI/Oピンを接続するコネクタ回路77に接続される。
ここで用いられる「シフトレジスタ」という用語は、制御信号またはクロック信号などのあるイベントの発生により、信号を入出力において受信するのを可能にする1以上の選択可能な入力を有する任意のレジスタ、装置、ステージなどを意味する。シフトレジスタという用語は単一のレジスタステージだけでなく、このようなレジスタの系列を場合によっては意味するが、ここで用いられるシフトレジスタという用語は単一のステージを意味する。シフトレジスタの系列は、ここではシフトレジスタチェーンまたはシフトレジスタストリングと呼ばれる。このレジスタ系列セットはまた、単一のシフトレジスタチェーンまたはパラレルシフトレジスタチェーンであるかもしれないシフトレジスタアレイまたは「(シフト)レジスタシリーズアレイ」と呼ばれることもある。例えば、シフトレジスタは、ダイナミックまたはラッチング、シングルクロックまたはマスタ/スレーブクロック、サンプリングまたはエッジトリガー、データ(D)、RSまたはJK、CCD(Charge Coupled Device)のステージ、またはクロック信号に基づき入力を出力にシフトさせる他の任意のタイプの装置など任意のタイプのシフトレジスタであってもよい。シフトレジスタアレイ/チェーンは、本発明の範囲から逸脱することなく、任意数のシフトレジスタを有するようにしてもよい。
本実施例では、メモリセクション30のすべてのライトシフトレジスタアレイ72は、より長いライトシフトレジスタアレイチェーンを構成するよう相互に接続される。図示されるように、メモリインタフェース装置64−1のシフトレジスタアレイ72は、メモリインタフェース装置64−2の右上のI/Oピンを介し、それの左上のI/Oピンを介しメモリインタフェース装置64−2のライトシフトレジスタアレイ72に接続される。メモリセクションのすべてのライトシフトレジスタアレイ72が単一のライトシフトレジスタアレイチェーンを構成するように、メモリインタフェース装置64−2のライトシフトレジスタアレイ72は、メモリインタフェース装置64−3のライトシフトレジスタアレイ72に接続され、以下同様に接続される。本例についての説明を簡単化するため、各メモリインタフェース装置のシフトレジスタアレイは、シフトレジスタアレイと呼ばれ、より長いアレイチェーンを構成するためこれらシフトレジスタアレイを相互接続したものは、シフトレジスタチェーンと呼ばれる。
さらに本実施例では、メモリインタフェース装置64−1の右下のI/Oピンは、メモリインタフェース装置64−2の左下のI/Oピンに接続され、それらのリードシフトレジスタアレイ74によりチェーンが構成される。図5を参照するに、本例では、メモリインタフェース装置64−3と64−4は同様に接続され、以下同様に接続される。これらリードシフトレジスタアレイ74のペアは、リードチェーンと呼ばれるであろう。
各リードチェーンの第1メモリインタフェース装置はまた、リードシフトレジスタアレイ74に接続されるリードセレクタ70を有する。このリードセレクタ70は、識別子(宛先アドレス、データブロック識別子など)及び/または他のヘッダ情報をリードデータに挿入するのに利用される。この識別子は、スイッチ22がデータをそれの適切な送信先に切り替えるのに用いることが好ましい識別子である。この識別子は、例えば、データを送信するための識別子(データブロック識別子など)であってもよいし、あるいはデータ送信先のアドレスを特定する宛先アドレスであってもよい。例えば、この送信先がインターネットに接続されたコンピュータである場合、宛先アドレスは当該コンピュータのIPアドレスとすることが可能である。あるいは、宛先アドレスは、データを送信先サーバにルーティングするときに用いられるスイッチ22の内部アドレスとすることも可能であり、この場合、サーバ12はデータが伝送されるネットワークがデータを適切な送信先にルーティングするのに用いる宛先アドレスを読み出し、置換する。
メモリインタフェース装置64はまた、セクションコントローラ54のタイミング回路61から制御信号とタイミング信号を受信するようにしてもよい。これらの制御及びタイミングパルスは、各自のパルスを用いて記憶装置66から読み出され、あるいはそこに書き込まれるデータが、メモリインタフェース装置のシフトレジスタ76がシフトのみが実行されているかのようにそれらのシフトを維持するようにして読み書きされるようにタイミング処理される。シフトレジスタを内蔵したメモリインタフェース装置のさらなる説明は、参照することによりその内容の全体がここに含まれる、上述されたWilliam T.LynchとDavid J.Herbisonによる米国特許出願第10/284,198号「Methods and Systems for Improved Memory Access」を参照されたい。さらに、メモリインタフェース装置64により送信されるデータは、例えば、共通モード、差分モード、あるいはシステム設計者により適切と考えられる他の何れかの方法により送信されてもよい。
[一例となる書き込み動作]
図12は、提供される方法及びシステムによる図1、6及び11を参照した図5のメモリセクション30の一例となる書き込み動作のフローチャートを示す。このフローチャートは、書き込み動作の一例を示したものであるが、本発明の範囲から逸脱することなく書き込み動作を実現するための他の方法が利用されてもよい。本例では、メモリセクション30の記憶装置66はデータブロックに分割され、各データブロックはデータブロック識別子により識別可能である。データブロック及び記憶装置の分割のより詳細な説明が、以降において与えられる。
ライトリクエストは、例えば、ネットワークなどを介しサーバ12に接続されるユーザから発行されるかもしれない。本例では、ユーザがストレージハブ10により格納されるデータのブロック(すなわち、データブロック)を送信すると仮定される。その後、サーバのデバイスドライバ28により、格納されるデータブロックのデータブロック識別子が決定され、このデータブロック識別子(DBI)を含むリクエストがストレージハブ10内のスイッチ22に送信されてもよい(ステップ1202)。デバイスドライバ28は、例えば、標準的な方法を用いてデータブロック識別子を決定してもよく、例えば、サーバ12はデータブロック識別子を決定するのに利用されるOracleや類似のアプリケーションを実行するかもしれない。
その後、スイッチ22は、データブロック識別子(DBI)を用いて、例えば、スイッチ22がデータリクエストをメモリセクションにルーティングするのに用いるメモリセクションのアドレスをDBIに基づき決定するなどにより、データブロックを格納するべきメモリセクション30にデータリクエストを送信する(ステップ1204)。例えば、データリクエストがスイッチ22のSSCI204に到達すると、SSCIは、例えば、データリクエストをスイッチコントローラ202に送り、その後、テーブルを用いてDBIに対応するアドレスを検索したり、アルゴリズムを利用してDBIからアドレスを計算したり、あるいは他の方法を利用するようにしてもよい。
その後、スイッチコントローラ202は、SSCI204からスイッチファブリック206を介しデータが格納されるメモリセクションに対応するSMCI208までの経路を確立するようにしてもよい(ステップ1206)。スイッチ22とメモリセクション30との間にアイドル状態の通信チャネルが存在しない場合、あるいはコンフリクトが存在する場合、スイッチは混雑メッセージを要求元のサーバ12に送信し、その後、コンフリクトが解消されるまで、当該メッセージはキュー処理されるようにしてもよい。図7に示されるようなスイッチ22の一実施例では、管理コンプレックス26は、スイッチコントローラ202により実行されるような上述の機能を実行するようにしてもよい。
次に、スイッチ22はデータリクエストをメモリセクション30のCCI46に転送する(ステップ1208)。その後、CCIは、このリクエストをセクションコントローラ54に送信してもよい(ステップ1210)。セクションコントローラ54は、データリクエストをライトリクエストと識別し、それの記憶装置の1つにデータを格納するスペースがあるか判断する(ステップ1212)。例えば、セクションコントローラ54は、データリクエストに含まれる情報、データリクエストのフォーマットまたはサイズ、あるいは他の方法により、データリクエストをライトリクエストと識別するかもしれない。記憶装置66に利用可能なスペースがない場合、セクションコントローラ54は、CCI46とスイッチ22を介し要求元のサーバ12にネガティブアクノリッジメントNAKメッセージを送信し(ステップ1214)、要求元サーバ12は、NAKの受信後(ステップ1216)、同じまたは異なるDBIを用いてストレージハブ10にデータを書き換えたり(ステップ1218)、他の装置(図示せず)に書き込みを試みたり、あるいはアプリケーションに通知するようにしてもよい。
スペースが利用可能である場合、セクションコントローラ54は、格納対象のデータを送信してもよいというメッセージをデバイスドライバ28に送信する(ステップ1220)。これに応答して、デバイスドライバ28は、スイッチ22を介しメモリセクション30の通信インタフェース(CCI)46にデータを送信する(ステップ1222)。さらに、管理コンプレックス26はまた、スイッチ22にライトデータをCDA16に送信するよう指示するようにしてもよい。例えば、管理コンプレックス26は、実行時に、すべてのライトデータを当該データを格納するメモリセクション30とCDA16の両方に送信させるアルゴリズムをスイッチコントローラ206に設けるようにしてもよい。CDA16により格納されたデータは、メモリセクションが不具合を生じたとき、異なる動作を行うメモリセクションにロードされるバックアップとして処理されるであろう。
その後、セレクタ44は、このデータをテンポラリストアメモリインタフェース装置60に送信する。セクションコントローラ54のマイクロプロセッサ51は、データが格納される記憶装置66の状態をチェックし、記憶装置66が利用可能か、あるいはビジー状態であるか判断する(ステップ1224)。例えば、マイクロプロセッサ52は、メモリセクション30の各記憶装置66に対し、マイクロプロセッサ51が記憶装置66の利用性を判断するため問い合わせる状態コードをそれのRAM52に格納するようにしてもよい。記憶装置66が利用可能である場合、マイクロプロセッサ51は、記憶装置制御回路55を介し記憶装置66にデータを格納するための準備を行うメッセージを送信する(ステップ1232)。しかしながら、記憶装置66がビジー状態である場合、データテンポラリストレージメモリインタフェース装置60は、データをテンポラリメモリストレージ装置58に格納し(ステップ1226)、ライトリクエストがマイクロプロセッサのRAM52のキューに配置される(ステップ1228)。
記憶装置66が利用可能になると、記憶装置66はメモリセクション制御回路55を介しセクションコントローラ54のマクロプロセッサ51に通知する(ステップ1230)。これは例えば、記憶装置66が記憶装置制御回路55を介し割込み信号をマイクロプロセッサ51に送信することにより実現されてもよい。その後、マイクロプロセッサ51は、データの格納準備を行わせるメッセージを記憶装置制御回路55を介し記憶装置66に送信する(ステップ1232)。記憶装置が準備されると、テンポラリストレージメモリインタフェース装置60は、当該データをT−セレクタ62にわたし、T−セレクタ62は、これがライト動作であるため、データをメモリインタフェース装置60にわたす。例えば、ステップ1222において記憶装置66が利用可能である場合、データはテンポラリメモリストレージ装置58に格納される必要はない。その後、データは第1メモリインタフェース装置64−1のシフトレジスタアレイ76にクロック処理され、当該データが書き込まれる記憶装置66に対応するメモリインタフェース装置64にロードされるまで、シフトレジスタアレイ76のライトチェーンを介しクロック処理される(ステップ1234)。その後、このデータはメモリセクション30のセクションコントローラ54により供給されるアドレスにおいて記憶装置に書き込まれる(セクション1236)。
シフトレジスタアレイと記憶装置との間の接続及びデータ書き込み方法のより詳細な説明は、上述した本出願と同日に出願されたWilliam T.LynchとDavid J.Herbisonによる米国特許出願第10/284,198号「Methods and Systems for Improved Memory Access」に与えられている。
ライト動作が完了すると、記憶装置66は、記憶装置インタフェース55を介しセクションコントローラ54のマクロプロセッサ51に通知する(ステップ1238)。その後、セクションコントローラ54は、要求元サーバ12のデバイスドライバ28にアクノリッジメントを送信するようにしてもよい(ステップ1240)。
以下において、ステップ1236においてデータを記憶装置66に書き込むのに利用可能な技術のより詳細な説明が与えられる。この技術は、メモリラッチングと呼ばれる。メモリラッチは、例えば、共通のリセットラインを有するエッジトリガーまたはフリップフロップ回路であってもよい。すなわち、記憶装置制御回路55は、例えば、当該技術を実行するための他の適当な回路と共に、メモリラッチの1以上を有するものであってもよい。
セクションコントローラ54は、本例ではDIMMと仮定される記憶装置66の管理のため、内部メモリ52のメモリ位置を確保するようにしてもよい。これらのメモリ位置は、セクションコントローラ54の内部メモリ52に何れかに設けられてもよい。
記憶装置制御回路55は、例えば、マイクロプロセッサ51とメモリ52との間で送信される情報を読み出し、これらのメモリ位置にアドレス指定された情報を参照することにより、割当てられたメモリ位置に格納されているデータを読み出すようにしてもよい。これらのメモリ位置は、DIMM66の他の制御情報と共に、データ伝送のためのスタートアドレスと伝送されるビット数を格納するようにしてもよい。この制御情報には、例えば、リード動作であるかライト動作であるか、DIMM66が処理を介しまたは終了すべきかなどに関する情報が含まれてもよい。上記説明ではデータをメモリセクションの記憶装置に書き込む1つの技術が説明されたが、本発明の範囲から逸脱することなく他の多数の方法が可能であるということは当業者に認識されるであろう。
[一例となる読み出し動作]
図13は、提供される方法及びシステムによる図1、6及び11を参照することによる図5のメモリセクションの一例となる読み出し動作のフローチャートを示す。このフローチャートは、リード動作の一例を示しているが、本発明の範囲から逸脱することなく、リード動作を実現する他の方法が利用されてもよい。本例では、メモリセクション30の記憶装置66はデータブロックに分割され、各データブロックはデータブロック識別子により識別可能である。データブロックと記憶装置の分割のより詳細な説明は、以降において与えられる。リードリクエストがネットワークを介しサーバ12に接続されるユーザから与えられる。このとき、サーバのデバイスドライバ28は、データブロック識別子(DBI)を含むリクエストをストレージハブ10のスイッチ22に送信する(ステップ1302)。デバイスドライバ28は、例えば、標準的な方法によりデータブロック識別子を決定するようにしてもよい。例えば、サーバ12は、データブロック識別子の決定に利用可能なOracleや同様のタイプのアプリケーションであってもよい。
その後、スイッチ22は、データブロック識別子(DBI)を用いて、例えばこのDBIに基づき、データリクエストをメモリセクション30にルーティングするのにスイッチが利用するメモリセクションのアドレスを決定することにより、データブロックを格納するメモリセクション30にデータリクエストを送信するようにしてもよい(ステップ1304)。この後、スイッチコントローラ202は、SSCI204からスイッチファブリック206を介しデータが格納されるメモリセクションに対応するSMCI208までの経路を確立するようにしてもよい(ステップ1306)。スイッチ22とメモリセクション30との間にアイドル状態の通信チャネルが存在しないとき、あるいはコンフリクトが存在するとき、スイッチは要求元サーバ12に混雑メッセージを送信し、コンフリクトが解消されるまでメッセージをキュー処理するようにしてもよい。図7に示されるようなスイッチ22の一実施例では、管理コンプレックス26は、上述されたスイッチコントローラ202により実行される機能を実行するようにしてもよい。次に、スイッチ22はデータリクエストをメモリセクション30のCCI46に転送する(ステップ1308)。その後、CCI46は、当該リクエストをセクションコントローラ54に送信するようにしてもよい(ステップ1310)。セクションコントローラ54は、このデータリクエストをリードリクエストとして識別し、それの記憶装置の1つが特定されたデータブロックを格納しているか判断する(ステップ1312)。例えば、セクションコントローラ54は、リクエスト自体に含まれる情報により、データリクエストのフォーマットまたはサイズにより、あるいは他の方法によりリクエストをリードリクエストと特定するようにしてもよい。
要求されたデータブロックがメモリセクション30に格納されていない場合、セクションコントローラ54は、CCI46とスイッチ22を介し要求元サーバ12にネガティブアクノリッジメント(NAK)メッセージを送信する(ステップ1314)。NAKの受信後(ステップ1316)、要求元サーバ12はメモリセクションから当該データブロックを再読み出ししてもよいし(ステップ1318)、他の装置(図示せず)から読み出しを行ってもよいし、あるいはアプリケーションに通知するようにしてもよい。セクションコントローラ54により当該メモリセクションが要求されたデータブロックを格納している場合、セクションコントローラ54のマイクロプロセッサ51は、どの記憶装置66がデータを格納しているか判断し、当該記憶装置66がビジーまたは利用可能であるか判断するため、それの状態をチェックする(ステップ1320)。例えば上述のように、マイクロプロセッサ52は、記憶装置66の利用性を判断するため、マイクロプロセッサ51が問い合わせ可能なメモリセクション30の各記憶装置66に対する状態コードをそれの内部メモリ52に格納するようにしてもよい。
記憶装置が利用可能である場合、マイクロプロセッサ51は、例えば、利用可能な状態からビジー状態へのセクションコントローラの内部メモリ52の状態を変更することにより、記憶装置を確保する(ステップ1326)。その後、セクションコントローラは、アクノリッジメント(ACK)を要求元サーバ12に送信するようにしてもよい(ステップ1328)。デバイスドライバ28がリードデータブロックの読み出しを依然として所望している場合(ステップ1330)、スイッチ22を介しメモリセクション30にリード確認を送信する(ステップ1332)。そうでない場合、デバイスドライバ28は、リードリクエストを放棄する(ステップ1334)。
リード確認の受信に応答して、セクションコントローラ54は、データが読み出される記憶装置66に対応するリードチェーンの第1メモリインタフェース装置64−1のリードセレクタ70に識別子を与える(ステップ1332)。上述のように、この識別子は、例えば、当該データをそれの適切な送信先に切り替えるのにスイッチ22を用いる識別子であってもよい。この識別子は、例えば、送信されるデータの識別子(例えば、データブロック識別子など)や、データを送信すべきアドレスを特定する宛先アドレスであってもよい。例えば、送信先がインターネットに接続されるコンピュータである場合、宛先アドレスはこのコンピュータのIPアドレスとすることが可能である。あるいは、宛先アドレスは、単にスイッチ22がデータをそれの送信先サーバをルーティングするのに利用する内部アドレスとすることも可能である。この場合、サーバ12は、データが伝送されるネットワークがデータを適切な送信先にルーティングするのに利用する宛先アドレスを読み出し、置換する。
その後、この識別子(宛先アドレスやデータブロック識別子など)は、それが記憶装置66に対応するメモリインタフェース装置64に到達するまで、メモリインタフェース装置64のチェーンシフトレジスタアレイ74を介しクロック処理される。すなわち、記憶装置66は、データリクエストのデータブロック識別子に対応するデータブロックを含む(ステップ1336)。次に、セクションコントローラ54は、このデータブロック識別子を利用して、読み出し対象のデータが格納されている格納場所に対応する記憶装置66のアドレスを決定するようにしてもよい。
その後、セクションコントローラ54は、これらのアドレスを他の適切な制御信号と共に記憶装置66に提供する。これに応答して、記憶装置は当該データを読み出し、識別子(宛先アドレスやデータブロック識別子など)がデータの先頭に添付されるように、メモリインタフェース装置64のリードシフトレジスタチェーン74にロードされる(ステップ1338)。これらアドレスと制御信号は、上述のメモリラッチング技術などを利用して、記憶装置66に提供されてもよい。
ステップ10において記憶装置66がビジー状態であった場合、リードリクエストがマイクロプロセッサ51の内部メモリ52にキュー処理されてもよい(ステップ1322)。記憶装置が利用可能になると、それは割込み信号をセクションコントローラ54に送信し(ステップ1324)、その後ステップ1326において、リードリクエストを実行する。
データがシフトレジスタチェーンからクロックアウトされ、セレクタ44に送信されると(ステップ1340)、セクションコントローラ54の制御の下、セレクタ44はデータを通信チャネルインタフェース46の適切なチャネルに接続する。その後、このデータは、通信インタフェース208、スイッチファブリック206及び通信インタフェース204を介しサーバ12にわたされる(ステップ1324)。
さらに例えば、データはチェーンのすべての記憶装置から同時に読み出され、シフトレジスタアレイのリードチェーンに同時にロードされるようにしてもよい。このような状況において、識別子(宛先アドレスやデータブロック識別子など)は、例えば、シフトレジスタバスチェーンの先頭に挿入されてもよい。
[テスト動作]
図5の実施例に対するテスト動作が説明される。ある例では、既知のデータを用いてシステムをテストすることが望ましいかもしれない。システムをテストするとき、テストデータと制御信号が、T−セレクタがテストデータをメモリインタフェース装置64に送信し、テストデータがシステムを介しわたされるように、セクションコントローラ54からT−セレクタ62に送信される。メモリインタフェース装置64との読み書き後のテストデータが、セレクタ44に送信され、セレクタ44はテスト回路59によりテストデータをテスト回路59に送信するよう指示されるようにしてもよい。この後、テスト回路59は、パリティチェック及び/またはビットレベル比較などの誤り検出及び訂正機能を用いてデータをチェックするようにしてもよい。当該データが適切な場合、何れのアクションも必要でない。当該データが適切でない場合、テストデータは再送されるようにしてもよい。その後、データが適切な場合、アクションは必要とされない。適切でない場合、セクションコントローラ54は、不具合が生じたことを管理コンプレックス26に通知し、実行されるソフトウェアに備えられる誤り回復機能によりこの不具合の隔離を開始するようにしてもよい。同時に、管理コンプレックス26は、管理コンプレックス26に関するセクションで上述されたように、故障管理処理を実行するようにしてもよい。
さらに、CPU51は、ヘッダ/テストインタフェース63を介しメモリインタフェース装置64にテストデータを提供するようにしてもよい。例えば、このデータは、宛先アドレス/データブロック識別子及び他のデータと同様にして、メモリインタフェース装置64のシフトレジスタアレイの1以上に送信されてもよい。このデータの送信は、任意の形式のデータがストレージハブ10を介し処理及びルーティングされるのと同様にして、ストレージハブ10を介し処理することが可能である。このようなテストデータは、すべてのシフトレジスタアレイ、すべての制御及びインタフェース、サーバ送信先の適切な識別情報、スループット時間、パラレルなデータ経路の同期チェックなどの処理のテストを可能にする。所望の場合には、実際のデータ送信前に、任意の所望のハンドシェイクルーチンに対し、このような経路が利用されてもよい。
[ストレージハブの並列化及びスケーラビリティ]
ストレージハブ10は、階層的並列化を示すものであってもよい。ここで用いられる「階層的並列化」という用語は、メモリセクションの並列化、メモリセクションとスイッチファブリックとの間の並列化、及びサーバとのスイッチファブリックの接続を介したすべてのメモリセクションの並列化を意味する。
本例では、要求されたデータが異なる記憶装置66にある限り、メモリセクション30はN個の同時的な読み出しと1つの書き込みをサポートするようにしてもよい。ただし、Nはメモリセクション30に利用可能な通信チャネル接続数であり、好ましくは、記憶装置66の個数を超えない。例えば図5に示されるように、通信チャネルインタフェース46は、情報を送受信するための4つの通信チャネル接続を有する。スイッチ22は、好ましくは、実行可能な同時のリードリクエストとライトリクエストを処理することが可能である。メモリセクション30のセクションコントローラ54は、好ましくは、記憶装置66に対するデータの読み書きを管理すると共に、コンフリクトも管理する。メモリセクション30のセクションコントローラ54は、実行されるソフトウェアに備えられる機能を介しコンフリクトを管理する。例えば、セクションコントローラ54は、ライトリクエストがリードリクエストより優先され、優先度の低いリクエストはキュー処理するよう指示する。例えば上述のように、ライトリクエストのデータは、テンポラリストレージ装置58にキュー処理され、ライト及びリードリクエストは、セクションコントローラ54の内部メモリ52にキュー処理されてもよい。管理コンプレックス26は、セクションコントローラ54に先着先処理アルゴリズムなどの他の方法を用いてコンフリクトを解消するよう指示してもよい。
本例では、メモリセクション30の並列化はさらに、メモリセクション30の間の並列化により強化される。すなわち、任意の時点において、メモリセクション30の個数が少なくともストレージハブ10からのサーバ接続の個数Sと同程度多い限り、S個と同数のメモリセクションがアクセスされるようにしてもよい。ストレージハブ10がメモリセクションより多くのサーバ接続を有するとき、本例では、同時の処理数がメモリセクションの個数と等しくなる。
さらに本例では、ストレージハブ10は、スケーラブルであってもよい。より詳細には、ストレージハブ10から容量の増加が求められる場合、この増やされた容量は、例えば、追加のメモリセクション30とそれらを収容する筺体を追加し、バックアップ電力、より大きな容量及び/または追加スイッチ22を設け、及び/またはストレージハブ10との接続の接続数及び/または容量を増やすことにより処理されてもよい。さらに、ストレージハブ10の容量が増やされると、必要に応じて、管理コンプレックス26がストレージハブのメモリセクション30の各状態を監視するのに十分な容量を有することを保証するため、管理コンプレックスプロセッサ(32及び34)の容量及び/または個数が増やされてもよい。
さらに本例では、メモリセクション30はまたスケーラブルであってもよい。例えば、メモリセクション30の容量の増大は、例えば、追加の記憶装置66、メモリインタフェース装置64及び/または通信チャネルインタフェースをメモリセクションに追加することにより、取得されてもよい。好ましくは、各メモリセクションのセクションコントローラ54は、それのメモリセクション30に備えられる各データブロックの位置の「マップ」を保持するための十分大きなレジデントメモリを有する。市場で入手可能なマイクロプロセッサが、このマップを格納するためセクションコントローラにより利用されてもよい。
ストレージハブが各々少数の記憶装置のみを有する1つのみ、あるいは少数のメモリセクションを有するスケーラブルな構成が最初に配備されてもよい。そのとき、ストレージハブの容量を増やすよう求められると、例えば、追加のメモリセクション及び/またはより大きな容量のメモリセクションを収容するための筺体及びバックアップ電力を追加し、既存の1以上のメモリセクションの容量を増やし、制御プロセッサ34または管理プロセッサ34の追加により管理コンプレックス26の容量を増やし、必要に応じて、さらなるポート及び/またはスイッチコントローラの追加によりスイッチ22の個数及び/または容量を増やすことにより、増やされた容量は管理されてもよい。これにより、ストレージハブの容量が増やされると、ユーザにより確認されるパフォーマンスは、好ましくは、システムが増やされても一様なままであり、ランダムなデータリクエストを生成するアプリケーションによるユーザの予想される応答時間は、好ましくは、システムが拡張されても一様なままとすることができる。
[分割]
図14は、提供される方法及びシステムによるN個の記憶装置66の論理図を示す。上述のように、記憶装置66はBビットの格納が可能なソリッドステート記憶装置であってもよく、各記憶装置が格納可能なビット数は異なるものであってもよい。一例では、管理コンプレックス26は、メモリセクション30の記憶装置66を各々がブロックのビット数に等しいブロックサイズの1以上のデータブロックを含むいくつかのパーティションに再構成するようセクションコントローラ54に指示するコマンドをメモリセクション30のセクションコントローラ54に送信するようにしてもよい。異なるサイズのデータブロック及びデータブロックパーティションを使用することにより、ストレージハブは同一のストレージハブに格納されるデータを有する異なるアプリケーションに自らのストレージ構造を適合させることが可能となる。例えば、常時テキストや画像を格納しているオンラインカタログなどのアプリケーションは、好ましくは、テキストのみを格納する顧客予約システムなどのアプリケーションより大きなブロックサイズを選好すべきである。これらのパーティションやブロックサイズは管理コンプレックスからのコマンドにより任意に再構成することが可能であるため、新たなアプリケーションの新しいデータは、その動作を停止する必要なく、あるいは変更されていない他のメモリセクションのデータに影響を与えることなく、ストレージハブにロードすることが可能である。
図14に示されるように、記憶装置66−1は、第1パーティションが8つのブロックを有し、第2パーティションが2つのブロックを有する2つのパーティションを備える。本例では、第1パーティションのデータブロックのブロックサイズは、第2パーティションのデータブロックより小さい。対照的に、記憶装置66−2は、各データブロックが等しいサイズを有する4つのブロックの4つの同一のパーティションを有する。さらに本例では、管理コンプレックス26は、各パーティションのデータブロックサイズを動的に調整し、これらのパーティションを変更し、あるいはパーティションの追加または削除を行うようにしてもよい。例えば、任意の時点において、管理コンプレックス26は、現在のパーティションが以降のパーティションに影響を与えないように記憶装置66を再構成するようメモリセクション30のセクションコントローラ54に指示するようにしてもよい。
[他のメモリインタフェース装置]
図15は、提供される方法及びシステムによるメモリインタフェース装置が記憶装置との読み書きのため共通のシフトレジスタアレイを利用する一実施例を示す。図示されるように、各メモリインタフェース装置64は、直列に相互接続された複数のシフトレジスタ76のシフトレジスタアレイ78を有する。さらに図11の実施例と同様に、これらのメモリインタフェース装置は、チェーンを構成するようペアに接続されている。
図示されるように、メモリインタフェース装置64−1のシフトレジスタアレイ78は、メモリインタフェース装置64−2のシフトレジスタアレイ78に接続され、さらにシフトレジスタアレイ78はセレクタ44に接続される。別のライトチェーンは存在しないため、図5に示されるメモリインタフェース装置64の右上及び左上のI/Oピンは必ずしも必要ではない。さらに、本実施例のメモリインタフェース装置は、ライトセレクタ82を利用する。ライトセレクタ82の動作は、以降においてより詳細に説明される。
以下において、図15の実施例の一例となるライト動作が説明される。図11の実施例と同様に、記憶装置66に書き込まれるデータは、セクションコントローラ54の制御の下、テンポラリストレージインタフェース装置60を介しT−セレクタ62に転送される。本実施例では、データを書き込むための別々のチェーンが存在するため、当該データは、格納される記憶装置66に対応するチェーンに転送される。このため、T−セレクタ62はデータをライトセレクタ82にわたし、ライトセレクタ82は、適切なシフトレジスタアレイにデータを送信するように、セクションコントローラ54から制御信号を受信する。
その後、信号はチェーンの第1メモリインタフェース装置64−1(本例では)のリードセレクタ76にわたされる。これはライト動作であるため、データはシフトレジスタ荒れあい78にクロック処理され、データが書き込まれる記憶装置66に対応するシフトレジスタアレイ78にロードされるまで、シフトレジスタを介しクロック処理される。その後、このデータは記憶装置66に書き込まれる。以下において、シフトレジスタアレイ78から記憶装置66にデータを書き込む方法及びシステムがより詳細に説明される。
図15の実施例に対する一例となる読み出し動作が説明される。まず、データの識別子(宛先アドレス、データブロック識別子など)が、セクションコントローラ54からリードセレクタ84に供給される。その後、宛先アドレスがシフトレジスタアレイチェーンを介しクロック処理される。
次に、識別子(宛先アドレス、データブロック識別子など)がシフトレジスタアレイの先頭に添付されるように、データが記憶装置66からシフトレジスタアレイ78にロードされる。その後、このデータはセレクタ44にわたされるまで、シフトレジスタ76のチェーンを介しクロック処理される。その後、図5及び11を参照して説明されるように、データはサーバ12を介しエンドユーザにわたされる。
さらに図11と同様に、テストデータは記憶装置66に挿入され、T−セレクタ62を用いてシステムを介しわたされる。
当業者には明らかなように、本発明の範囲を逸脱することなくメモリインタフェース装置の他の実施例が可能である。例えば、各メモリインタフェース装置は1つのリードまたはライトシフトレジスタアレイを有するものとして説明されたが、メモリインタフェース装置は、任意数のシフトレジスタアレイのライトまたはリードチェーンを有するようにしてもよい。さらに、シフトレジスタ76は、1ビットシフトレジスタでなく、任意の深さを有するものであってもよい。例えば、シフトレジスタアレイは、実現形態に応じてシステム設計者により決定されるような2×8、4×32、8×16などのN×Mアレイとすることが可能である。さらに、シフトレジスタアレイは、チェーンにロードされたデータがチェーン内で同時に循環するようにリング状に構成されてもよい。シフトレジスタアレイを用いたメモリアクセスのより詳細な説明は、上述の本出願と同日に出願されたWilliam T.LynchとDavid J.Herbisonによる米国特許出願第10/284,198号「Methods and Systems for Improved Memory Access」に与えられている。
[他のメモリセクション]
図16は、提供される方法及びシステムによる他のメモリセクション30を示す。これらのメモリセクションは、本発明を実現するのに利用可能な一例となる機構として提供されるが、請求項の範囲を限定するものではない。
図示されるように、メモリセクション30は、メモリセクション30は、1以上の通信チャネル入出力インタフェース46−1と46−m、セクションコントローラ54、1以上のバスインタフェース1602、バス1604、バスコントローラ1606、アナライザ1608及び1以上の記憶装置66−1と66−nから構成される。本例では、バス1604は、PCI(Peripheral Component Interconnect)規格を利用する。各装置は、好ましくは、本例ではPCIインタフェースであるバスインタフェース1602を介しバスに接続される。本例によるバスコントローラ1606は、バスを成業する装置を調停するためのPCIバスコントローラである。さらに本例では、アナライザ回路1608がPCIバス1604の状態を監視し、セクションコントローラ54にバス1604のリアルタイムの状態を通知する。
通信チャネル入出力インタフェース46−1と46−mは、Fibre Channel、イーサネット(登録商標)上のTCP/IP、Token Ringなどの任意のタイプの通信チャネルインタフェースであってもよい。本例では、通信チャネル入出力インタフェース46−1と46−mは、Fibre Channelプロトコルを利用する。チップ上に実現される市場で入手可能なFibre Channel I/Oコンポーネントは、通信チャネルI/Oインタフェース46として利用されてもよい。これらの市場において入手可能なチップは、典型的には、レイヤ2及び4プロトコルエンジンを実行するマイクロプロセッサ、2.125Gbit送受信機、データコーデック、送信FIFOキュー及び受信FIFOキューから構成される。Fibre Channel I/Oコンポーネントのマイクロプロセッサは、PCIインタフェース1602の制御に関するセクションコントローラ54からコマンドを受信し、記憶装置66に対し情報を送受信することが可能である。本例では、m個の通信チャネルI/Oインタフェースが示される。ただし、m≧1である。
通信チャネルI/Oインタフェース46はまた、好ましくは、セクションコントローラ54から制御指示を受信することが可能である。例えば、セクションコントローラ54は、DMA(Direct Memory Addressing)プロトコルを利用して通信チャネルインタフェース46に対し制御情報を送受信するようにしてもよい。さらに、図示されてはいないが、セクションコントローラ54はまた、1以上のI/O制御ラインを介し通信チャネルインタフェース46との間で割込み及びI/Oコマンドを送受信するようにしてもよい。
本例では、セクションコントローラ54は、内部ランダムアクセスメモリ、ブースとラップローディングのための読み出し専用メモリ、管理コンプレックスとのインタフェース及びマイクロプロセッサを含む1以上のチップ上に実現される。セクションコントローラ54は、上述の実施例と同様に、メモリラッチングを介し記憶装置66を直接制御するようにしてもよい。さらに、セクションコントローラ54は、アナライザ回路1608からバスインタフェース1602に関するリアルタイム状態情報を受信するようにしてもよい。図示されるように、セクションコントローラ54はまた、DMAプロトコルを用いて通信チャネルインタフェースとの間で制御情報を送受信するDMAインタフェースを有する。本例では、DMAプロトコルが使用されるが、上述のように、通信チャネルインタフェース46とセクションコントローラ54との間の制御情報の送信には、他の任意の適切なプロトコルが使用されてもよい。
ROM56は、最新のソフトウェア画像を取得するため、セクションにより用いられるブースとラッププログラムに関するソフトウェアを格納するようにしてもよい。このROM56は、セクションコントローラ54とは別に示されているが、セクションコントローラ54に含まれてもよい。
バスインタフェース1602は、バス1604を介し情報を送受信できるように、記憶装置66及び通信チャネルインタフェース46とバス1604を接続するのに用いられる。本例によるバスインタフェース1602−3と1602−4は、セクションコントローラ54によりバスインタフェース1602−3及び1602−4に制御情報が送信される制御ラインを介しセクションコントローラ54と接続される。この制御情報には、例えば、記憶装置10からデータを読み出すための識別子(宛先アドレスやデータブロック識別子など)が含まれてもよい。従って、バスインタフェース1602−3及び1602−4はまた、メモリインタフェース装置1602−3及び1602−4と呼ばれてもよい。
上述の実施例と同様に、記憶装置66は、DIMMなどの任意のタイプの記憶装置であってもよい。例えば、記憶装置66とセクションコントローラ54との間の制御ラインは、データを転送するアドレス及び記憶装置66との間でデータを転送するためのビット数に関する信号をセクションコントローラ54から記憶装置66に搬送するようにしてもよい。さらに、記憶装置66は、処理が完了すると、記憶装置66の動作状態に関する情報と共に、リアルタイム割込み信号を上記制御ラインを介しセクションコントローラ54に提供することが可能であってもよい。本例では、n個の記憶装置66が設けられる。ただし、n≧1である。
以下において、図14のメモリセクションに対する読み出し処理の一例が概観される。本例では、通信チャネルインタフェース46は、好ましくは、Fibre Channel I/Oコンポーネントである。データリクエストが通信チャネルインタフェース46に到着すると、通信チャネルインタフェース46はそれを検出し、セクションコントローラ54に割込み信号を送信する。この割込み信号には、好ましくは、記憶装置から読み出されるデータブロックに関する情報が含まれる。その後、セクションコントローラ54は、このデータブロック情報を記憶装置内のアドレスに変換する。すなわち、セクションコントローラは、このデータブロック情報から要求されたデータを格納している記憶装置66と当該記憶装置上のこのデータのアドレスを決定する。その後、セクションコントローラ54は、これらのアドレスが上述のメモリラッチングと同様に記憶装置に送信されるように、このアドレス情報をそれの内部メモリにロードする。
その後、要求されたデータブロックは記憶装置66から読み出され、対応するバスインタフェース1602に送信される。さらに、セクションコントローラ54は、識別子(宛先アドレス、データブロック識別子など)をバスインタフェース1602に送信する。この識別子は、例えば、送信されるデータの識別子(データブロック識別子など)やデータを送信するアドレスを特定する宛先アドレスであってもよい。宛先アドレスは、例えば、データが送信される通信チャネルインタフェース46に対応するバスインタフェース1602の内部アドレスであってもよい。あるいは、宛先アドレスは、例えば、データが送信されるサーバ12のアドレス、情報の切り替えにおいてスイッチ22により用いられるアドレス、あるいはデータをそれの送信先にルーティングするのに有用な他の任意の識別子であってもよい。
その後、バスインタフェース1602は、バスのプロトコルに従って、バス1604を介し当該データと識別子(宛先アドレス、データブロック識別子など)を送信する。本例では、バス1604はPCIプロトコルを利用し、PCIコントローラ1606はバス1604へのアクセスにおいてコンフリクトを調停する。
データが送信される通信チャネルインタフェース46のバスインタフェース1602は、それのアドレスを含むデータのバスを監視する。すべての情報が当該バスを介し送信されるため、バスインタフェース1602は、バスインタフェース1602のアドレスを含まないデータは無視する。データが送信される通信チャネルインタフェース46のバスインタフェース1602が自らのアドレスを認識しているとき、バスインタフェース1602はデータをバス1604から読み出す。その後、通信チャネルインタフェース46は、メモリセクション30からデータブロックを送信する。ある例では、通信チャネルインタフェース46はまた、メモリセクション30からデータを送信する前に、宛先アドレスを新たな宛先アドレスに交換するようにしてもよい。
図14の一例となるメモリセクションに対するライト動作が説明される。ライトリクエストが通信チャネルインタフェース46により受信されると、通信チャネルインタフェース46は、それがライトリクエストであると判断し、当該リクエストをDMAインタフェース1610を介しセクションコントローラ54に転送する。本例によるライトリクエストは、メモリセクション30が当該データを書き込む場所を示すデータブロック識別子を有するようにしてもよい。その後、セクションコントローラ54は、メモリセクション30がデータを書き込む記憶装置を当該記憶装置66のアドレスと共に決定するため、このデータブロック識別子を変換する。セクションコントローラ54は、これらのアドレスを適切な記憶装置66に提供する。
ライトデータリクエストをセクションコントローラ54に送信するのに加えて、通信チャネルインタフェース46は、ライトリクエストからデータを取得し、当該データを通信チャネルインタフェースの対応するバスインタフェース1602に送信する。さらに、セクションコントローラ54は、ライトデータを格納する記憶装置66に対応するバスインタフェース1602のバスインタフェースアドレスを通信チャネルインタフェース46に供給するようにしてもよい。その後、バスインタフェース1602は、データとバスインタフェースをバス1604上に送信する。
記憶装置のバスインタフェース1602−3と1603−4は、それらを送信先とするデータを検索するため、バス1604を監視する。バスインタフェース1602によりそれのアドレスが送信されていることが検知されると、バスインタフェース1602はバスからライトデータを読み出す。他方、セクションコントローラ54は、対応する記憶装置66にそれのバスインタフェース1602−3または1602−4からライトデータを受付けるよう通知する。その後、バスインタフェース1602−3または1602−4は、セクションコントローラ54により与えられるアドレスに当該データを書き込む対応する記憶装置66にデータを提供する。
上述した好適な実施例は単なる例示的なものとして与えられた。与えられた開示から、当業者は本発明とその効果を理解するであろうが、開示された方法及び構成に行うことが可能な様々な明らかな変更及び改良を見出すであろう。従って、そのような変更及び改良のすべては、添付された請求項とその均等物により画定される本発明の趣旨及び範囲内に属するものとしてカバーされる。従って、明細書及び実施例は、以下の請求項により示される本発明の真の範囲及び趣旨の単なる例とみなされるべきである。
図1は、提供される方法及びシステムによるストレージハブ環境のブロック図である。 図2は、提供される方法及びシステムによるストレージハブの詳細なブロック図である。 図3は、提供される方法及びシステムによる管理コンプレックスの論理構成を示す。 図4は、提供される方法及びシステムによる管理コンプレックスの物理的構成のブロック図である。 図5は、提供される方法及びシステムによる一例となるメモリセクションのブロック図である。 図6は、本発明による方法及びシステムに従うスイッチ及びメモリセクションの機能図を示す。 図7は、提供される方法及びシステムによるスイッチ及びメモリセクションの他の機能図を示す。 図8は、提供される方法及びシステムによる他の一例となるスイッチの図を示す。 図9は、提供される方法及びシステムによる他のスイッチの図を示す。 図10は、提供される方法及びシステムによる一例となるパイプラインシフトレジスタを示す。 図11は、提供される方法及びシステムによるメモリインタフェース装置の一実施例の詳細なブロック図を含む。 図12は、提供される方法及びシステムによる一例となる書き込み処理のフローチャートを示す。 図13は、提供される方法及びシステムによる一例となる読み出し処理のフローチャートを示す。 図14は、提供される方法及びシステムによる分割された記憶装置の論理図を示す。 図15は、提供される方法及びシステムによるメモリインタフェース装置の他の実施例を示す。 図16は、提供される方法及びシステムによる他のメモリセクションを示す。

Claims (96)

  1. 1以上のメモリセクションと、
    1以上のスイッチと、
    から構成されるストレージシステムであって、
    前記1以上のメモリセクションは、
    データを格納するための格納領域を有する1以上の記憶装置と、
    当該メモリセクションにおける不具合を検出し、該検出した不具合に応答してエラーメッセージを送信することが可能なメモリセクションコントローラと、
    から構成され、
    前記1以上のスイッチは、
    1以上の外部装置と接続するための1以上の外部装置インタフェースと、
    1以上のメモリセクションと前記外部装置インタフェースに接続され、前記メモリセクションと前記外部装置インタフェースをアルゴリズムに基づき相互接続するスイッチファブリックと、
    前記メモリセクションコントローラからエラーメッセージを受信し、該エラーメッセージの受信元のメモリセクションの使用を止めることが可能であり、さらに、前記1以上のメモリセクションと前記外部装置インタフェースとの相互接続において、スイッチファブリックにより用いられるアルゴリズムを決定し、当該スイッチに前記決定したアルゴリズムを実行するよう指示することが可能な管理システムと、
    から構成されることを特徴とするシステム。
  2. 請求項1記載のストレージシステムであって、
    前記スイッチはさらに、
    前記スイッチファブリックが前記1以上のメモリセクションに接続されるように、当該スイッチと前記1以上のメモリセクションを接続するための1以上のメモリセクションインタフェースと、
    前記管理システムから前記指示を受信し、前記アルゴリズムを実行するスイッチコントローラと、
    を有することを特徴とするシステム。
  3. 請求項1記載のストレージシステムであって、
    前記管理システムは、前記スイッチファブリックと前記外部装置インタフェースとに対し直接的な制御を行うことを特徴とするシステム。
  4. 請求項2記載のストレージシステムであって、
    前記管理システムはさらに、前記スイッチコントローラと前記メモリセクションコントローラとにソフトウェア画像を提供することが可能であることを特徴とするシステム。
  5. 請求項1記載のストレージシステムであって、
    前記スイッチのインタフェースは、不揮発性ストレージ装置に接続され、
    前記管理システムはさらに、前記不揮発性ストレージ装置に前記スイッチを介し前記メモリセクションの1以上にデータをロードするよう指示することが可能である、
    ことを特徴とするシステム。
  6. 請求項5記載のストレージシステムであって、
    前記管理システムはさらに、前記メモリセクションの1以上により格納されているデータのバックアップを前記不揮発性ストレージ装置に格納するよう当該ストレージシステムに指示することが可能であることを特徴とするシステム。
  7. 請求項6記載のストレージシステムであって、
    前記管理システムがメモリセクションからエラーメッセージを受信すると、前記管理システムは、前記不具合の生じたメモリセクションのデータのバックアップを機能しているメモリセクションにロードするよう前記不揮発性ストレージ装置に指示し、
    前記スイッチは、前記不具合の生じたメモリセクションのデータに関するデータリクエストを前記機能しているメモリセクションに誘導する、
    ことを特徴とするシステム。
  8. 請求項1記載のストレージシステムであって、さらに、
    設定管理が外部管理システムを介し実行されるように、該外部管理システムに接続するためのインタフェースを有することを特徴とするシステム。
  9. 請求項1記載のストレージシステムであって、
    前記1以上の記憶装置の格納領域は、データブロック識別子により識別可能なデータブロックに分割され、
    当該ストレージシステムにより受信されるデータリクエストは、データブロック識別子を有し、
    前記データリクエストを受信したスイッチは、該データリクエストを前記データブロック識別子により特定される前記データブロックを格納しているメモリセクションに誘導し、
    前記メモリセクションは、前記データブロック識別子により特定される前記1以上の記憶装置の格納領域に格納されているデータを読み出し、該読み出したデータを前記スイッチを介し送信先装置に転送する、
    ことを特徴とするシステム。
  10. 請求項1記載のストレージシステムであって、
    複数のパラレルラインが、前記1以上のメモリセクションの少なくとも1つとスイッチを接続し、
    該メモリセクションからのデータは、前記スイッチのスイッチファブリックを介しパラレルにわたされる、
    ことを特徴とするシステム。
  11. 請求項10記載のストレージシステムであって、
    前記スイッチファブリックを介しパラレルにわたされたデータは、前記スイッチファブリックを介し同時にわたされることを特徴とするシステム。
  12. 請求項1記載のストレージシステムであって、
    複数のパラレルラインが、前記1以上のメモリセクションの少なくとも1つとスイッチを接続し、
    当該ストレージシステムはさらに、前記パラレルラインを多重化するための1以上のマルチプレクサを有する、
    ことを特徴とするシステム。
  13. 請求項12記載のストレージシステムであって、
    少なくとも1つのマルチプレクサが、前記1以上のスイッチの1つに設けられることを特徴とするシステム。
  14. 請求項1記載のストレージシステムであって、
    前記1以上のメモリセクションは、当該ストレージシステムから独立に追加または削除可能であることを特徴とするシステム。
  15. 請求項1記載のストレージシステムであって、
    前記管理システムはさらに、当該ストレージシステムに追加されたメモリセクションを使用することが可能であることを特徴とするシステム。
  16. 請求項1記載のストレージシステムであって、さらに、
    記憶装置に格納されているデータを受信し、1以上のクロック信号の受信に応答して、前記データを出力する1以上のシフトレジスタを有する1以上のパイプラインシフトレジスタを有することを特徴とするシステム。
  17. 請求項1記載のストレージシステムであって、
    前記1以上のメモリセクションは、データリクエストの受信に応答して、記憶装置からデータを受信するメモリインタフェース装置を有し、
    該メモリインタフェース装置は、前記要求されたデータを転送するのに用いられる識別子と前記要求されたデータを合成し、
    前記アドレスは、前記メモリセクションコントローラから前記メモリインタフェース装置により受信される、
    ことを特徴とするシステム。
  18. 請求項17記載のストレージシステムであって、
    前記要求されたデータを転送するのに用いられる識別子は、前記データが転送されるべき装置のアドレスであることを特徴とするシステム。
  19. 請求項17記載のストレージシステムであって、
    前記要求されたデータを転送するのに用いられる識別子は、転送されるべき前記データを特定するための識別子であることを特徴とするシステム。
  20. 請求項17記載のストレージシステムであって、
    前記メモリセクションにより要求されたデータリクエストは、該リクエストに応答して前記1以上の記憶装置の格納領域を特定する1以上のアドレスを決定し、該アドレスを前記記憶装置に提供する前記メモリセクションコントローラに転送され、
    前記1以上の記憶装置は、前記1以上のアドレスにより特定される格納領域のデータを前記メモリインタフェース装置に提供する、
    ことを特徴とするシステム。
  21. 請求項17記載のストレージシステムであって、
    前記1以上の記憶装置は出力を有し、
    前記メモリインタフェース装置の少なくとも1つは、直列に相互接続された少なくとも1つのシフトレジスタ群を有し、
    前記シフトレジスタの少なくとも1つは、シフト周波数を有するクロック信号を受信し、前記シフト周波数に従って、当該シフトレジスタにロードされているデータを前記シフトレジスタ群の次のシフトレジスタにシフトすることが可能であり、
    記憶装置の前記出力の1以上からのデータが、前記少なくとも1つのシフトレジスタ群の対応するシフトレジスタにロードされ、
    該ロードされたデータは、前記シフトレジスタが前記データのロード中に前記シフトレジスタのシフト周波数を維持するように、前記クロック信号に従って前記シフトレジスタから前記シフトレジスタ群の次のシフトレジスタにシフトされる、
    ことを特徴とするシステム。
  22. 請求項17記載のストレージシステムであって、
    前記1以上の記憶装置は出力を有し、
    前記メモリインタフェース装置の少なくとも1つは、直列に相互接続された少なくとも1つのシフトレジスタ群を有し、
    前記シフトレジスタの少なくとも1つは、シフト周波数を有するクロック信号を受信し、前記シフト周波数に従って、当該シフトレジスタにロードされているデータを前記シフトレジスタ群の次のシフトレジスタにシフトすることが可能であり、
    前記シフトレジスタ群のデータは、前記シフトレジスタが前記データのロード中に前記シフトレジスタのシフト周波数を維持するように、前記クロック信号に従って前記シフトレジスタ群の1以上のシフトレジスタから前記シフトレジスタに対応する入力を介し前記記憶装置の1以上にロードされる、
    ことを特徴とするシステム。
  23. 請求項1記載のストレージシステムであって、
    前記管理システムは、
    前記アルゴリズムを決定し、前記スイッチに提供する1以上の制御プロセッサと、
    前記1以上のスイッチと前記1以上のメモリセクションとから統計データを収集する1以上の管理プロセッサと、
    から構成されることを特徴とするシステム。
  24. 請求項1記載のストレージシステムであって、
    少なくとも1つのメモリセクションはさらに、
    記憶装置に書き込まれるデータを格納するテンポラリストレージ装置と、
    前記テンポラリストレージ装置にデータを格納し、前記テンポラリストレージ装置からデータを抽出するテンポラリストレージインタフェース装置と、
    を有し、
    前記スイッチの少なくとも1つは、前記メモリセクションに格納されるデータの受信に応答して、前記データを前記テンポラリストレージインタフェース装置に転送することが可能であり、
    前記テンポラリストレージインタフェース装置は、前記データが書き込まれる記憶装置がビジー状態の場合、前記データを前記テンポラリストレージ装置に格納し、前記記憶装置がもはやビジー状態でなくなると、前記データを前記テンポラリストレージ装置から抽出し、前記記憶装置が前記データを格納するように、前記データを前記記憶装置に転送する、
    ことを特徴とするシステム。
  25. 請求項1記載のストレージシステムであって、
    少なくとも1つのメモリセクションはさらに、当該メモリセクションにより格納されるデータを受信し、該データを前記記憶装置の1以上に転送するための少なくとも1つの通信チャネルインタフェースを有し、
    該通信チャネルインタフェースはさらに、前記記憶装置から読み出されたデータを受信し、該データを前記スイッチの1以上に送信することが可能であり、さらに、データリクエストを受信し、該データリクエストを前記メモリセクションコントローラに転送することが可能である、
    ことを特徴とするシステム。
  26. ストレージシステムにおいて利用される方法であって、
    メモリセクションに設けられる記憶装置の格納領域にデータを格納するステップと、
    管理システムにより、前記メモリセクションと外部装置インタフェースとの接続において、スイッチにより利用されるアルゴリズムを決定するステップと、
    前記管理システムにより、前記スイッチに前記決定されたアルゴリズムを実行するよう指示するステップと、
    前記スイッチにより、前記アルゴリズムに基づき前記メモリセクションと前記外部装置インタフェースを接続するステップと、
    メモリセクションコントローラにより、前記記憶装置に格納されているデータに関して不具合を検出し、前記不具合の検出に応答して、エラーメッセージを前記管理システムに送信するステップと、
    前記エラーメッセージを前記管理システムにおいて受信するステップと、
    前記管理システムにより、前記エラーメッセージの送信元の前記メモリセクションの使用を止めるステップと、
    から構成されることを特徴とする方法。
  27. 請求項26記載の方法であって、さらに、
    前記管理システムにより、ソフトウェア画像を前記スイッチに提供するステップと、
    前記管理システムにより、ソフトウェア画像を前記メモリセクションコントローラに提供するステップと、
    を有することを特徴とする方法。
  28. 請求項26記載の方法であって、さらに、
    前記管理システムにより、不揮発性ストレージ装置に前記スイッチを介しデータをメモリセクションにロードするよう指示するステップと、
    前記不揮発性ストレージ装置からのデータを前記メモリセクションの記憶装置に格納するステップと、
    を有することを特徴とする方法。
  29. 請求項28記載の方法であって、さらに、
    前記記憶装置により格納されているデータのバックアップを前記不揮発性ストレージ装置に格納するステップを有することを特徴とする方法。
  30. 請求項29記載の方法であって、さらに、
    前記管理システムにより、前記不具合の生じた記憶装置のデータのバックアップを機能している記憶装置にロードするよう前記不揮発性ストレージ装置に指示するステップと、
    前記スイッチにより、前記不具合が生じた記憶装置のデータに関するデータリクエストを前記機能している記憶装置に誘導するステップと、
    を有することを特徴とする方法。
  31. 請求項26記載の方法であって、
    前記記憶装置の格納領域は、データブロック識別子により識別可能なデータブロックに分割され、
    前記ストレージシステムにより受信されるデータリクエストはデータブロック識別子を有し、
    当該方法はさらに、
    前記スイッチにより、前記データブロック識別子により特定される前記データブロックを格納する記憶装置を有するメモリセクションに前記データリクエストを誘導するステップと、
    前記メモリセクションにより、前記データブロック識別子により特定される前記記憶装置の格納領域に格納されているデータを前記記憶装置から読み出すステップと、
    前記読み出されたデータを前記スイッチを介し送信先装置に転送するステップと、
    を有することを特徴とする方法。
  32. 請求項26記載の方法であって、
    複数のパラレルラインが、前記メモリセクションと前記スイッチを接続し、
    当該方法はさらに、前記スイッチを介し前記メモリセクションからのデータをパラレルにわたすステップを有することを特徴とする方法。
  33. 請求項26記載の方法であって、さらに、
    データが前記記憶装置から読み出されている間、新たなメモリセクションと前記スイッチを接続するステップと、
    データが前記記憶装置から読み出されている間、前記スイッチかメモリセクションを切断するステップと、
    を有することを特徴とする方法。
  34. 請求項26記載の方法であって、さらに、
    前記管理システムにより、前記スイッチに接続されているメモリセクションを機能させるステップを有することを特徴とする方法。
  35. 請求項26記載の方法であって、さらに、
    前記メモリセクションのメモリインタフェース装置により、前記メモリセクションによるデータリクエストの受信に応答して、記憶装置からデータを受信するステップと、
    前記メモリインタフェース装置により、前記要求されたデータの転送に用いられる識別子を前記メモリセクションコントローラから受信するステップと、
    前記メモリインタフェース装置により、前記要求されたデータと前記識別子とを合成するステップと、
    前記メモリインタフェース装置により、前記合成されたデータと識別子とを送信先装置に転送するステップと、
    を有することを特徴とする方法。
  36. 請求項35記載の方法であって、さらに、
    前記メモリセクションコントローラにデータリクエストを転送するステップと、
    前記メモリセクションコントローラにより、前記リクエストに応答する前記記憶装置の格納領域を特定する1以上のアドレスを決定するステップと、
    前記メモリセクションコントローラにより、前記1以上のアドレスを前記記憶装置に提供するステップと、
    前記記憶装置により、前記1以上のアドレスにより特定される格納領域のデータを前記メモリインタフェース装置に提供するステップと、
    を有することを特徴とする方法。
  37. 請求項26記載の方法であって、さらに、
    メモリセクションのメモリインタフェース装置により、前記メモリセクションによるデータリクエストの受信に応答して、前記記憶装置からデータを受信するステップと、
    シフト周波数を有するクロック信号に基づき、直列に相互接続される前記メモリインタフェース装置に設けられるシフトレジスタ群の1以上のシフトレジスタのデータを該シフトレジスタから前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    前記記憶装置からのデータを前記シフトレジスタ群の対応するシフトレジスタにロードするステップと、
    前記シフト周波数に従って、前記シフトレジスタの1以上にロードされたデータを前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    を有し、
    前記シフトレジスタは、前記記憶装置からのデータの当該シフトレジスタへのロード中、当該シフトレジスタのシフト周波数を維持する、
    ことを特徴とする方法。
  38. 請求項26記載の方法であって、さらに、
    前記メモリセクションのメモリインタフェース装置により、前記メモリセクションによるデータリクエストの受信に応答して、前記記憶装置からデータを受信するステップと、
    シフト周波数を有するクロック信号に基づき、直列に相互接続されるシフトレジスタ群の1以上のシフトレジスタのデータを該シフトレジスタから前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    前記シフトレジスタの1以上からのデータを前記記憶装置にロードするステップと、
    前記データが前記記憶装置にロードされた後、前記シフト周波数に従って1以上のシフトレジスタからロードされたデータを前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    を有し、
    前記シフトレジスタは、前記データのロード中、当該シフトレジスタのシフト周波数を維持する、
    ことを特徴とする方法。
  39. 請求項26記載の方法であって、さらに、
    前記記憶装置に格納されるデータを受信するステップと、
    前記データをテンポラリストレージインタフェース装置に転送するステップと、
    前記テンポラリストレージ装置により、前記データが書き込まれる前記記憶装置がビジー状態である場合、テンポラリストレージ装置に格納されるデータを格納するステップと、
    前記テンポラリストレージインタフェース装置により、前記データが格納される記憶装置がもはやビジー状態でなくなると、前記テンポラリストレージ装置から前記データを抽出するステップと、
    前記記憶装置により、前記データを格納するステップと、
    を有することを特徴とする方法。
  40. 格納領域にデータを格納する手段と、前記格納する手段により格納されるデータに関する不具合を検出し、前記不具合の検出に応答して、エラーメッセージを送信する手段とから構成される格納手段と、前記格納手段と外部装置インタフェースとの間で送信されるデータを切り替える手段と、
    前記エラーメッセージを受信し、前記エラーメッセージの送信元の格納手段の使用をやめ、前記格納手段と前記外部装置インタフェースとの接続において、前記切り替える手段により用いられるアルゴリズムを決定し、前記切り替える手段が前記アルゴリズムに基づき前記格納手段と前記1以上の外部装置インタフェースを接続するように、前記切り替える手段に前記決定されたアルゴリズムを実行するよう指示する手段と、
    から構成されることを特徴とするストレージシステム。
  41. データを格納する格納領域を有する1以上の記憶装置と、記憶装置の格納領域を特定するアドレスを前記1以上の記憶装置に提供するメモリセクションコントローラとから構成される1以上のメモリセクションと、
    格納領域群を特定するデータブロック識別子を有するデータリクエストを受信し、前記データブロック識別子に基づき前記データリクエストを前記メモリセクションの1以上に切り替える1以上のスイッチと、
    から構成されるストレージシステムであって、
    前記1以上の記憶装置は、前記提供されるアドレスを利用して前記1以上の記憶装置に対するデータの読み書きから選ばれた機能を実行し、
    前記データリクエストが切り替えられたメモリセクションは、前記受信したデータブロック識別子により特定される格納領域のアドレス群に前記データブロック識別子を変換する前記メモリセクションのメモリセクションコントローラに前記データブロック識別子を転送し、前記アドレス群を前記メモリセクションの記憶装置の1以上に提供する、
    ことを特徴とするシステム。
  42. 請求項41記載のストレージシステムであって、さらに、
    前記1以上のスイッチの少なくとも1つにアルゴリズムを提供する管理システムを有し、
    前記スイッチは、前記データブロック識別子に基づき前記データリクエストの切り替えにおいて前記アルゴリズムを実行する、
    ことを特徴とするシステム。
  43. 請求項42記載のストレージシステムであって、さらに、
    不具合の検出に応答して、エラー管理を実行することが可能な管理システムを有することを特徴とするシステム。
  44. 請求項43記載のストレージシステムであって、
    前記管理システムは、メモリセクションからメッセージを受信しないことに応答して、前記メモリセクションに関する不具合を検出することが可能であることを特徴とするシステム。
  45. 請求項43記載のストレージシステムであって、
    前記メモリセクションの1以上は、前記メモリセクションの不具合を検出することが可能であることを特徴とするシステム。
  46. 請求項43記載のストレージシステムであって、
    前記管理システムは、
    エラー管理を実行する1以上の制御プロセッサと、
    前記1以上のスイッチと前記1以上のメモリセクションとから統計データを収集する1以上の管理プロセッサと、
    を有することを特徴とするシステム。
  47. 請求項41記載のストレージシステムであって、さらに、
    前記メモリセクションの1以上により格納されているデータのバックアップを前記1以上のスイッチの少なくとも1つに接続される不揮発性ストレージ装置に格納するよう当該ストレージシステムに指示し、前記メモリセクションのデータのバックアップを前記不揮発性ストレージ装置から機能しているメモリセクションにロードするよう当該ストレージシステムに指示することが可能な管理システムを有することを特徴とするシステム。
  48. 請求項41記載のストレージシステムであって、さらに、
    設定管理が外部管理システムを介し実行されるように、前記外部管理システムに接続するためのインタフェースを有することを特徴とするシステム。
  49. 請求項41記載のストレージシステムであって、さらに、
    前記アドレス群により特定される格納領域に格納されているデータを前記記憶装置の少なくとも1つから受信し、前記データと該データを転送するのに用いられる識別子とを合成し、該データを前記スイッチの1以上に転送する1以上のメモリインタフェース装置を有し、
    前記データが転送されたスイッチは、前記識別子を用いて前記データを切り替え、前記データを前記送信先装置に転送することを特徴とするシステム。
  50. 請求項49記載のストレージシステムであって、
    前記要求されたデータを転送するのに用いられる識別子は、前記データが転送されるべき装置のアドレスであることを特徴とするシステム。
  51. 請求項49記載のストレージシステムであって、
    前記要求されたデータを転送するのに用いられる識別子は、転送されるべきデータを特定する識別子であることを特徴とするシステム。
  52. 請求項49記載のストレージシステムであって、
    前記1以上の記憶装置は出力を有し、
    前記メモリインタフェース装置の少なくとも1つは、直列に相互接続された少なくとも1つのシフトレジスタ群を有し、
    前記シフトレジスタの少なくとも1つは、シフト周波数を有するクロック信号を受信し、
    前記シフトレジスタは、前記シフト周波数に従って、前記シフトレジスタにロードされているデータを前記シフトレジスタ群の次のシフトレジスタにシフトすることが可能であり、
    記憶装置の出力の1以上からのデータは、前記シフトレジスタ群の対応するシフトレジスタにロードされ、
    該ロードされたデータは、前記シフトレジスタが前記データのロード中に前記シフトレジスタのシフト周波数を維持するように、前記シフト周波数に従って前記シフトレジスタから前記シフトレジスタ群の次のシフトレジスタにシフトされる、
    ことを特徴とするシステム。
  53. 請求項49記載のストレージシステムであって、
    前記1以上の記憶装置は出力を有し、
    前記メモリインタフェース装置の少なくとも1つは、直列に相互接続された少なくとも1つのシフトレジスタ群を有し、
    前記シフトレジスタの少なくとも1つは、シフト周波数を有するクロック信号を受信し、
    前記シフトレジスタは、前記シフト周波数に従って、前記シフトレジスタにロードされているデータを前記シフトレジスタ群の次のシフトレジスタにシフトすることが可能であり、
    前記シフトレジスタ群のデータは、前記シフトレジスタが前記データのロード中に前記シフトレジスタのシフト周波数を維持するように、前記クロック信号に従って前記シフトレジスタ群の1以上のシフトレジスタから前記シフトレジスタに対応する入力を介し前記記憶装置の1以上にロードされる、
    ことを特徴とするシステム。
  54. 請求項41記載のストレージシステムであって、
    少なくとも1つのメモリセクションはさらに、
    記憶装置に書き込まれるデータを格納するテンポラリストレージ装置と、
    前記テンポラリストレージ装置にデータを格納し、前記テンポラリストレージ装置からデータを抽出するテンポラリストレージインタフェース装置と、
    を有し、
    前記スイッチの少なくとも1つは、前記メモリセクションに格納されるデータを受信することに応答して、前記データを前記テンポラリストレージインタフェース装置に転送することが可能であり、
    前記テンポラリストレージインタフェース装置は、前記データが書き込まれる記憶装置がビジー状態である場合、前記データを前記テンポラリストレージ装置に格納し、前記記憶装置がもはやビジー状態でなくなると、前記データを前記テンポラリストレージ装置から抽出し、前記記憶装置が前記データを格納するように、前記データを前記記憶装置に転送する、
    ことを特徴とするシステム。
  55. 請求項41記載のストレージシステムであって、
    少なくとも1つのメモリセクションはさらに、当該メモリセクションにより格納されるデータを受信し、該データを前記記憶装置の1以上に転送するための少なくとも1つの通信チャネルインタフェースを有し、
    該通信チャネルインタフェースはさらに、前記記憶装置から読み出されたデータを受信し、該データを前記スイッチの1以上に送信することが可能であり、さらに、データリクエストを受信し、該データリクエストを前記メモリセクションコントローラに転送することが可能である、
    ことを特徴とするシステム。
  56. ストレージシステムにおいて利用される方法であって、
    記憶装置の格納領域にデータを格納するステップと、
    スイッチにより、データブロック識別子を有するデータリクエストを受信するステップと、
    前記スイッチにより、前記記憶装置の格納領域群を特定する前記データブロック識別子に基づき、前記データリクエストを前記記憶装置を有するメモリセクションに切り替えるステップと、
    前記受信したデータブロック識別子をメモリセクションコントローラに転送するステップと、
    前記メモリセクションコントローラにより、前記データブロック識別子を該データブロック識別子により特定される格納領域群のアドレス群に変換するステップと、
    前記メモリセクションコントローラにより、前記アドレス群を前記記憶装置に提供するステップと、
    前記記憶装置により、前記提供されたアドレス群を用いて前記記憶装置に対するデータの読み書きから選ばれた機能を実行するステップと、
    から構成されることを特徴とする方法。
  57. 請求項56記載の方法であって、さらに、
    管理システムにより、前記スイッチにアルゴリズムを提供するステップと、
    前記スイッチにより、前記データブロック識別子に基づき前記データリクエストの切り替えにおいて前記アルゴリズムを実行するステップと、
    を有することを特徴とする方法。
  58. 請求項57記載の方法であって、さらに、
    管理システムにより、不具合の検出に応答して、エラー管理を実行するステップを有することを特徴とする方法。
  59. 請求項58記載の方法であって、さらに、
    前記管理システムにより、前記メモリセクションコントローラからメッセージを受信しないことに応答して、不具合を検出ステップを有することを特徴とする方法。
  60. 請求項58記載の方法であって、さらに、
    前記メモリセクションコントローラにより、不具合を検出するステップを有することを特徴とする方法。
  61. 請求項56記載の方法であって、さらに、
    前記記憶装置により格納されているデータのバックアップを前記スイッチに接続される不揮発性ストレージ装置に格納するステップと、
    管理システムにより、前記メモリセクションコントローラから不具合メッセージを受信するステップと、
    前記管理システムにより、前記記憶装置のデータのバックアップを機能している記憶装置に送信するよう前記不揮発性ストレージ装置に指示するステップと、
    を有することを特徴とする方法。
  62. 請求項56記載の方法であって、さらに、
    メモリインタフェース装置により、前記アドレス群により特定される格納領域群に格納されているデータを前記記憶装置から受信するステップと、
    前記メモリインタフェース装置により、前記データと前記要求されたデータを転送するのに用いられる識別子とを合成するステップと、
    前記メモリインタフェース装置により、前記データを前記スイッチに転送するステップと、
    前記スイッチにより、前記識別子を用いて前記データを切り替えるステップと、
    前記スイッチにより、前記データを送信先装置に転送するステップと、
    を有することを特徴とする方法。
  63. 請求項56記載の方法であって、さらに、
    前記メモリセクションのメモリインタフェース装置により、前記メモリセクションによるデータリクエストの受信に応答して、記憶装置からデータを受信するステップと、
    シフト周波数を有するクロック信号に基づき、直列に相互接続されるシフトレジスタ群の1以上のシフトレジスタのデータを前記シフトレジスタから前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    前記記憶装置からのデータを前記シフトレジスタ群の対応するシフトレジスタにロードするステップと、
    前記クロック信号に従って、前記シフトレジスタの1以上にロードされるデータを前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    を有し、
    前記シフトレジスタは、前記記憶装置から前記シフトレジスタへの前記データのロード中、前記シフトレジスタのシフト周波数を維持する、
    ことを特徴とする方法。
  64. 請求項56記載の方法であって、さらに、
    前記メモリセクションのメモリインタフェース装置により、前記メモリセクションによるデータリクエストの受信に応答して、記憶装置からデータを受信するステップと、
    シフト周波数を有するクロック信号に基づき、直列に相互接続されるシフトレジスタ群の1以上のシフトレジスタのデータを前記メモリインタフェース装置に設けられる前記シフトレジスタから前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    前記シフトレジスタの1以上から記憶装置にデータをロードするステップと、
    前記データが前記記憶装置にロードされた後、前記シフト周波数に従って、前記シフトレジスタの1以上からロードされたデータを前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    を有し、
    前記シフトレジスタは、前記データのロード中、前記シフトレジスタのシフト周波数を維持する、
    ことを特徴とする方法。
  65. 請求項56記載の方法であって、さらに、
    前記メモリセクションにより、前記記憶装置に格納されるデータを受信するステップと、
    前記データをテンポラリストレージインタフェース装置に転送するステップと、
    前記テンポラリストレージ装置により、前記データが書き込まれる記憶装置がビジー状態である場合、前記データをテンポラリストレージ装置に格納するステップと、
    前記テンポラリストレージインタフェース装置により、前記データが格納される記憶装置がもはやビジー状態でなくなると、前記テンポラリストレージ装置から前記データを抽出するステップと、
    前記記憶装置により、前記データを格納するステップと、
    を有することを特徴とする方法。
  66. 格納手段を有するストレージシステムであって、
    前記格納手段は、
    格納領域にデータを格納し、アドレスを用いて前記格納領域に格納されているデータを読み出す手段を有する手段と、
    前記格納手段を制御し、データブロック識別子をアドレス群に変換する手段と、格納領域を特定する前記アドレス群を前記格納領域にデータを格納する手段に提供する手段とを有する手段と、
    データブロック識別子を有するデータリクエストを受信する手段と、格納領域にデータを格納する手段の格納領域群を特定するデータブロック識別子に基づき前記データリクエストを格納手段に切り替え手段と、前記受信したデータブロック識別子を前記格納手段に転送する手段とを有する切り替え手段と、
    を有することを特徴とするシステム。
  67. 1以上のアドレスにより特定可能なデータを格納し、制御信号を受信することが可能な1以上の記憶装置と、
    前記記憶装置により格納されるデータに対するリクエストを受信し、前記要求されたデータの1以上のアドレスを決定し、前記要求されたデータを転送するのに用いられる識別子を決定し、前記決定されたアドレスを含む前記記憶装置の制御信号を前記要求されたデータを格納する記憶装置に送信するメモリセクションコントローラと、
    前記記憶装置により格納されている前記要求されたデータを前記記憶装置から受信し、前記要求されたデータを転送するのに用いられる前記決定された識別子を前記メモリセクションコントローラから受信し、前記要求されたデータと前記決定された識別子を合成し、前記要求されたデータを送信先装置に転送するメモリインタフェース装置と、
    から構成されることを特徴とするメモリセクション。
  68. 請求項67記載のメモリセクションであって、
    前記要求されたデータを転送するのに用いられる識別子は、前記データが転送されるべき装置のアドレスであることを特徴とするメモリセクション。
  69. 請求項67記載のメモリセクションであって、
    前記要求されたデータを転送するのに用いられる識別子は、転送されるべきデータを特定するための識別子であることを特徴とするメモリセクション。
  70. 請求項67記載のメモリセクションであって、
    前記1以上の記憶装置は出力を有し、
    前記メモリインタフェース装置の少なくとも1つは、直列に相互接続された少なくとも1つのシフトレジスタ群を有し、
    前記シフトレジスタの少なくとも1つは、シフト周波数を有するクロック信号を受信し、
    前記シフトレジスタは、前記クロック信号に従って、前記シフトレジスタにロードされているデータを前記シフトレジスタ群の次のシフトレジスタにシフトすることが可能であり、
    記憶装置の出力の1以上からのデータが、前記シフトレジスタ群の対応するシフトレジスタにロードされ、
    前記ロードされたデータは、前記シフトレジスタが前記データのロード中に前記シフトレジスタのシフト周波数を維持するように、前記クロック信号に従って前記シフトレジスタから前記シフトレジスタ群の次のシフトレジスタにシフトされる、
    ことを特徴とするメモリセクション。
  71. 請求項67記載のメモリセクションであって、
    前記1以上の記憶装置は出力を有し、
    前記メモリインタフェース装置の少なくとも1つは、直列に相互接続された少なくとも1つのシフトレジスタ群を有し、
    前記シフトレジスタの少なくとも1つは、シフト周波数を有するクロック信号を受信し、
    前記シフトレジスタは、前記クロック信号に従って、前記シフトレジスタにロードされているデータを前記シフトレジスタ群の次のシフトレジスタにシフトすることが可能であり、
    前記シフトレジスタ群のデータは、前記シフトレジスタにより受信されたクロック信号が前記データのロード中に前記シフトレジスタのシフト周波数を維持するように、前記クロック信号に従って前記シフトレジスタ群の1以上のシフトレジスタから前記シフトレジスタに対応する入力を介し前記記憶装置の1以上にロードされる、
    ことを特徴とするメモリセクション。
  72. 請求項67記載のメモリセクションであって、
    前記メモリインタフェース装置はさらに、直列に相互接続された少なくとも1つのシフトレジスタ群を有し、
    該少なくとも1つのシフトレジスタ群は、前記記憶装置にデータを書き込むため直列に相互接続された少なくとも1つのシフトレジスタ群と、前記記憶装置からデータを読み出すため直列に相互接続された少なくとも1つのシフトレジスタ群とを有し、
    前記シフトレジスタ群にロードされたデータは、クロック信号に従って前記シフトレジスタ群のシフトレジスタの1つから前記シフトレジスタ群の次のシフトレジスタにシフトされる、
    ことを特徴とするメモリセクション。
  73. 請求項67記載のメモリセクションであって、
    前記決定されたアドレスは、開始アドレスと送信されるビット数とを含み、
    前記メモリセクションコントローラは、前記記憶装置に前記記憶装置が前記開始アドレスと送信されるビット数により特定される場所に前記データを送信させるため、前記開始アドレスと送信されるビット数が前記記憶装置に送信されるように前記開始アドレスと送信されるビット数が配置される内部メモリを有する、
    ことを特徴とするメモリセクション。
  74. 請求項67記載のメモリセクションであって、さらに、
    前記要求されたデータを前記記憶装置に対応するメモリインタフェース装置から受信し、前記データを1以上の通信経路の1つに送信するスイッチを有し、
    該スイッチは、前記要求されたデータを送信するのに用いられる前記1以上の通信経路の何れかの通信経路を示す制御信号を前記メモリセクションコントローラから受信する、
    ことを特徴とするメモリセクション。
  75. 請求項67記載のメモリセクションであって、
    当該メモリセクションは、前記識別子を用いて前記要求されたデータを前記送信先装置に転送するスイッチに前記要求されたデータを送信することを特徴とするメモリセクション。
  76. 請求項67記載のメモリセクションであって、
    前記メモリセクションコントローラはさらに、テストデータを前記記憶装置に提供し、前記記憶装置から受信したテストデータをチェックし、前記テストデータのチェックに基づき不具合を決定することが可能であることを特徴とするメモリセクション。
  77. 請求項67記載のメモリセクションであって、
    前記記憶装置の格納領域は、データブロック識別子により特定可能なデータブロックに分割され、
    当該メモリセクションにより受信されるデータリクエストは、前記メモリセクションコントローラに転送されるデータブロック識別子を有し、
    前記メモリセクションコントローラは、前記データブロック識別子に基づき1以上のアドレスを決定し、前記決定されたアドレスを前記1以上の記憶装置に提供する、
    ことを特徴とするメモリセクション。
  78. 請求項67記載のメモリセクションであって、さらに、
    記憶装置に書き込まれるデータを格納するテンポラリストレージ装置と、
    前記テンポラリストレージ装置にデータを格納し、前記テンポラリストレージ装置からデータを抽出するテンポラリストレージインタフェース装置と、
    を有し、
    当該メモリセクションに格納されるデータは、前記テンポラリストレージインタフェース装置に転送され、
    前記テンポラリストレージインタフェース装置は、前記データが書き込まれる記憶装置がビジー状態である場合、前記データを前記テンポラリストレージ装置に格納し、前記記憶装置がもはやビジー状態でなくなると、前記データを前記テンポラリストレージ装置から抽出し、前記記憶装置が前記データを格納するように、前記データを前記記憶装置に転送する、
    ことを特徴とするメモリセクション。
  79. 請求項67記載のメモリセクションであって、さらに、
    当該メモリセクションにより格納されるデータを受信し、該データを前記記憶装置の1以上に転送するための少なくとも1つの通信チャネルインタフェースを有し、
    該通信チャネルインタフェースはさらに、前記記憶装置から読み出されたデータを受信し、該データを前記1以上の通信チャネルを介し送信することが可能であり、さらに、データリクエストを受信し、該データリクエストを前記メモリセクションコントローラに転送することが可能である、
    ことを特徴とするメモリセクション。
  80. 1以上のアドレスにより特定可能なデータを格納し、制御信号を受信する1以上の記憶装置と、前記記憶装置により格納されているデータに対するリクエストを受信し、前記要求されたデータの1以上のアドレスを決定し、前記要求されたデータを転送するのに用いられる識別子を決定し、前記決定されたアドレスを含む制御信号を前記要求されたデータを格納する記憶装置に送信するメモリセクションコントローラとから構成される1以上のメモリセクションと、
    前記記憶装置により格納されている前記要求されたデータを前記記憶装置から受信し、前記決定された識別子を前記メモリセクションコントローラから受信し、前記要求されたデータと前記決定された識別子を合成し、前記要求されたデータを送信先装置に転送するメモリインタフェース装置と、
    から構成されるストレージシステム。
  81. 請求項80記載のストレージシステムであって、
    前記要求されたデータを転送するのに用いられる識別子は、前記データが転送されるべき装置のアドレスであることを特徴とするシステム。
  82. 請求項80記載のストレージシステムであって、
    前記要求されたデータを転送するのに用いられる識別子は、転送されるべきデータを特定するための識別子であることを特徴とするシステム。
  83. 請求項80記載のストレージシステムであって、さらに、
    前記メモリセクションの1以上と1以上の通信チャネルに接続される1以上のスイッチと、
    前記1以上のメモリセクションと前記1以上の通信チャネルを接続するのに前記スイッチにより利用されるアルゴリズムを決定し、前記決定されたアルゴリズムを前記スイッチに提供する管理システムと、
    を有することを特徴とするシステム。
  84. 請求項80記載のストレージシステムであって、さらに、
    1以上のスイッチと、
    前記メモリセクションの1以上により格納されているデータのバックアップを前記スイッチの少なくとも1つに接続される不揮発性ストレージ装置に格納するよう当該ストレージシステムに指示し、メモリセクションからエラーメッセージを受信し、不具合の生じたメモリセクションのデータのバックアップを前記不揮発性ストレージ装置から機能しているメモリセクションにロードするよう当該ストレージシステムに指示することが可能な管理システムと、
    を有することを特徴とするシステム。
  85. 請求項80記載のストレージシステムであって、さらに、
    1以上のスイッチを有し、
    前記記憶装置の格納領域は、データブロック識別子により特定可能なデータブロックに分割され、
    当該ストレージシステムにより受信されるデータリクエストは、データブロック識別子を有し、
    前記データリクエストを受信するスイッチは、前記データリクエストを前記データブロック識別子により特定されるデータブロックを格納するメモリセクションに誘導し、
    前記メモリセクションは、前記データブロック識別子により特定される記憶装置の格納領域に格納されているデータを読み出し、該読み出されたデータを前記スイッチを介し送信先装置に転送する、
    ことを特徴とするシステム。
  86. ストレージシステムにおいて利用される方法であって、
    アドレスにより特定可能な記憶装置の格納領域にデータを格納するステップと、
    メモリセクションコントローラにより、前記記憶装置により格納されているデータに対するデータリクエストを受信するステップと、
    前記メモリセクションコントローラにより、前記要求されたデータの1以上のアドレスを決定するステップと、
    前記メモリセクションコントローラにより、前記要求されたデータを転送するのに用いられる識別子を決定するステップと、
    前記メモリセクションコントローラにより、前記決定されたアドレスを含む制御信号を前記記憶装置に送信するステップと、
    前記メモリセクションコントローラにより、前記決定された識別子をメモリインタフェース装置に送信するステップと、
    前記メモリインタフェース装置により、前記要求されたデータを前記記憶装置から受信するステップと、
    前記メモリインタフェース装置により、前記識別子と前記要求されたデータとを合成するステップと、
    前記メモリインタフェース装置により、前記要求されたデータを送信先装置に転送するステップと、
    から構成されることを特徴とする方法。
  87. 請求項86記載の方法であって、さらに、
    シフト周波数を有するクロック信号に基づき、前記メモリインタフェース装置に含まれる直列に相互接続されたシフトレジスタ群の1以上のシフトレジスタのデータを該シフトレジスタから前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    前記記憶装置からのデータを前記シフトレジスタ群の対応するシフトレジスタにロードするステップと、
    前記クロック信号に従って、前記シフトレジスタの1以上にロードされたデータを前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    を有し、
    前記クロック信号が、前記記憶装置から前記シフトレジスタへの前記データのロード中に前記クロック信号のシフト周波数を維持する、
    ことを特徴とする方法。
  88. 請求項86記載の方法であって、さらに、
    シフト周波数を有するクロック信号に基づき、前記メモリインタフェース装置に含まれる直列に相互接続されたシフトレジスタ群の1以上のシフトレジスタのデータを該シフトレジスタから前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    前記シフトレジスタの1以上からのデータを前記記憶装置にロードするステップと、
    前記データが前記記憶装置にロードされた後、前記クロック信号に従って、前記1以上のシフトレジスタからロードされたデータを前記シフトレジスタ群の次のシフトレジスタにシフトするステップと、
    を有し、
    前記クロック信号は、前記データのロード中に前記クロック信号の周波数を維持する、
    ことを特徴とする方法。
  89. 請求項86記載の方法であって、
    前記メモリインタフェース装置はさらに、前記記憶装置へのデータの書き込みのため直列に相互接続された少なくとも1つのシフトレジスタ群と、前記記憶装置からのデータの読み出しのため直列に相互接続された少なくとも1つのシフトレジスタ群とを有し、
    当該方法はさらに、クロック信号に従って、前記シフトレジスタ群にロードされたデータを前記シフトレジスタ群のシフトレジスタの1つから前記シフトレジスタ群の次のシフトレジスタにシフトするステップを有することを特徴とする方法。
  90. 請求項86記載の方法であって、
    前記決定されたアドレスは、開始アドレスと送信されるビット数とを含み、
    当該方法はさらに、
    前記開始アドレスと送信されるビット数とを前記メモリセクションコントローラの内部メモリに配置するステップと、
    前記開始アドレスと送信されるビット数とを前記メモリセクションコントローラから前記記憶装置に送信するステップと、
    前記記憶装置により、前記開始アドレスと送信されるビット数との受信に応答して、前記開始アドレスと送信されるビット数とにより指定される場所に前記データを転送するステップと、
    を有することを特徴とする方法。
  91. 請求項86記載の方法であって、さらに、
    スイッチにより、前記記憶装置に対応する前記メモリインタフェース装置から前記要求されたデータを受信するステップと、
    前記スイッチにより、前記データを1以上の通信経路に送信するステップと、
    前記スイッチにより、前記要求されたデータを送信するのに用いられる前記1以上の通信経路の何れかを示す制御信号を前記メモリセクションコントローラから受信するステップと、
    を有することを特徴とする方法。
  92. 請求項86記載の方法であって、さらに、
    前記メモリセクションにより、前記識別子を用いて前記要求されたデータを前記送信先装置に転送するスイッチに前記要求されたデータを送信するステップを有することを特徴とする方法。
  93. 請求項86記載の方法であって、さらに、
    前記メモリセクションコントローラにより、テストデータを前記記憶装置に提供するステップと、
    前記メモリセクションコントローラにより、前記メモリインタフェース装置から前記テストデータを受信するステップと、
    前記メモリセクションコントローラにより、前記受信したデータをチェックするステップと、
    前記メモリセクションコントローラにより、前記テストデータのチェックに基づき不具合を決定するステップと、
    を有することを特徴とする方法。
  94. 請求項86記載の方法であって、
    前記記憶装置の格納領域は、データブロック識別子により特定可能なデータブロックに分割され、
    前記メモリセクションにより受信されるデータリクエストは、データブロック識別子を有し、
    当該方法はさらに、
    前記データリクエストを前記メモリセクションコントローラに転送するステップと、
    前記メモリセクションコントローラにより、前記データブロック識別子に基づき1以上のアドレスを決定するステップと、
    前記メモリセクションコントローラにより、前記決定されたアドレスを前記1以上の記憶装置に提供するステップと、
    を有する、
    ことを特徴とする方法。
  95. 請求項86記載の方法であって、さらに、
    前記記憶装置に格納されるデータを受信するステップと、
    前記データをテンポラリストレージインタフェース装置に転送するステップと、
    前記テンポラリストレージ装置により、前記データが書き込まれる記憶装置がビジー状態である場合、格納されるデータをテンポラリストレージ装置に格納するステップと、
    前記テンポラリストレージインタフェース装置により、前記データがもはやビジー状態でなくなると、前記テンポラリストレージ装置から前記データを抽出するステップと、
    前記記憶装置により、前記データを格納するステップと、
    を有することを特徴とする方法。
  96. アドレスにより特定可能な格納領域にデータを格納する手段と、
    記憶装置により格納されているデータに対するデータリクエストを受信する手段、前記要求されたデータの1以上のアドレスを決定する手段、前記要求されたデータを転送するのに用いられる識別子を決定する手段、及び前記決定されたアドレスを含む制御信号を前記格納する手段に送信する手段を有する制御手段と、
    前記要求されたデータを前記格納する手段から受信する手段、前記決定されたアドレスを前記制御手段から受信する手段、前記識別子と前記要求されたデータとを合成する手段、前記要求されたデータを送信先装置に転送する手段を有する前記格納する手段におけるデータにアクセスする手段と、
    から構成されることを特徴とするストレージシステム。
JP2004550085A 2002-10-31 2003-10-23 ストレージシステムのための方法及びシステム Pending JP2006505065A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/284,268 US7707351B2 (en) 2002-10-31 2002-10-31 Methods and systems for an identifier-based memory section
US10/284,199 US7197662B2 (en) 2002-10-31 2002-10-31 Methods and systems for a storage system
US10/284,278 US7415565B2 (en) 2002-10-31 2002-10-31 Methods and systems for a storage system with a program-controlled switch for routing data
PCT/US2003/033665 WO2004042505A2 (en) 2002-10-31 2003-10-23 Methods and systems for a storage system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010076275A Division JP2010250813A (ja) 2002-10-31 2010-03-29 ストレージシステムのための方法及びシステム

Publications (1)

Publication Number Publication Date
JP2006505065A true JP2006505065A (ja) 2006-02-09

Family

ID=32314844

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004550085A Pending JP2006505065A (ja) 2002-10-31 2003-10-23 ストレージシステムのための方法及びシステム
JP2010076275A Pending JP2010250813A (ja) 2002-10-31 2010-03-29 ストレージシステムのための方法及びシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010076275A Pending JP2010250813A (ja) 2002-10-31 2010-03-29 ストレージシステムのための方法及びシステム

Country Status (7)

Country Link
EP (3) EP1565819B1 (ja)
JP (2) JP2006505065A (ja)
KR (3) KR20100072068A (ja)
AT (3) ATE557349T1 (ja)
AU (1) AU2003286638A1 (ja)
DE (2) DE60335926D1 (ja)
WO (1) WO2004042505A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227688A (ja) * 2005-02-15 2006-08-31 Hitachi Ltd ストレージシステム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707351B2 (en) 2002-10-31 2010-04-27 Ring Technology Enterprises Of Texas, Llc Methods and systems for an identifier-based memory section
US6879526B2 (en) 2002-10-31 2005-04-12 Ring Technology Enterprises Llc Methods and apparatus for improved memory access
US7058738B2 (en) * 2004-04-28 2006-06-06 Microsoft Corporation Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US7941697B2 (en) 2008-12-30 2011-05-10 Symantec Operating Corporation Failure handling using overlay objects on a file system using object based storage devices
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
WO2015089488A1 (en) 2013-12-12 2015-06-18 Memory Technologies Llc Channel optimized storage modules
US10255134B2 (en) * 2017-01-20 2019-04-09 Samsung Electronics Co., Ltd. Control plane method and apparatus for providing erasure code protection across multiple storage devices
KR20230085629A (ko) * 2021-12-07 2023-06-14 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02168313A (ja) * 1988-12-22 1990-06-28 Fujitsu Ltd 二重化ディスク制御方式
JP2000298556A (ja) * 1999-04-13 2000-10-24 Nec Corp ディスクアレイ装置
JP2000339098A (ja) * 1999-03-25 2000-12-08 Dell Usa Lp ストレージドメイン管理システム
JP2000347811A (ja) * 1999-06-01 2000-12-15 Hitachi Ltd ダイレクトバックアップ方法および記憶装置システム
JP2001331355A (ja) * 2000-05-18 2001-11-30 Hitachi Ltd 計算機システム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914657A (en) * 1987-04-15 1990-04-03 Allied-Signal Inc. Operations controller for a fault tolerant multiple node processing system
US4984240A (en) * 1988-12-22 1991-01-08 Codex Corporation Distributed switching architecture for communication module redundancy
US5134619A (en) * 1990-04-06 1992-07-28 Sf2 Corporation Failure-tolerant mass storage system
JP2829091B2 (ja) * 1990-04-19 1998-11-25 株式会社東芝 データ処理システム
US5729763A (en) * 1995-08-15 1998-03-17 Emc Corporation Data storage system
US5922077A (en) * 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
JPH1117775A (ja) * 1997-06-20 1999-01-22 Sony Corp シリアルインタフェース回路
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
US6370605B1 (en) * 1999-03-04 2002-04-09 Sun Microsystems, Inc. Switch based scalable performance storage architecture
GB2367648B (en) * 2000-10-03 2002-08-28 Sun Microsystems Inc Multiple trap avoidance mechanism
US8949471B2 (en) * 2000-11-02 2015-02-03 Oracle America, Inc. TCP/UDP acceleration
US6880100B2 (en) * 2001-07-18 2005-04-12 Smartmatic Corp. Peer-to-peer fault detection
US6947981B2 (en) * 2002-03-26 2005-09-20 Hewlett-Packard Development Company, L.P. Flexible data replication mechanism
US6879526B2 (en) 2002-10-31 2005-04-12 Ring Technology Enterprises Llc Methods and apparatus for improved memory access

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02168313A (ja) * 1988-12-22 1990-06-28 Fujitsu Ltd 二重化ディスク制御方式
JP2000339098A (ja) * 1999-03-25 2000-12-08 Dell Usa Lp ストレージドメイン管理システム
JP2000298556A (ja) * 1999-04-13 2000-10-24 Nec Corp ディスクアレイ装置
JP2000347811A (ja) * 1999-06-01 2000-12-15 Hitachi Ltd ダイレクトバックアップ方法および記憶装置システム
JP2001331355A (ja) * 2000-05-18 2001-11-30 Hitachi Ltd 計算機システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227688A (ja) * 2005-02-15 2006-08-31 Hitachi Ltd ストレージシステム

Also Published As

Publication number Publication date
EP2060976B1 (en) 2011-01-26
AU2003286638A1 (en) 2004-06-07
WO2004042505A2 (en) 2004-05-21
EP2302517A1 (en) 2011-03-30
KR20050075764A (ko) 2005-07-21
KR20100072068A (ko) 2010-06-29
ATE429676T1 (de) 2009-05-15
WO2004042505A3 (en) 2005-03-10
EP1565819A2 (en) 2005-08-24
AU2003286638A8 (en) 2004-06-07
EP1565819A4 (en) 2007-11-21
EP2302517B1 (en) 2012-05-09
EP2060976A1 (en) 2009-05-20
EP1565819B1 (en) 2009-04-22
DE60327357D1 (de) 2009-06-04
ATE497208T1 (de) 2011-02-15
KR20100072067A (ko) 2010-06-29
DE60335926D1 (de) 2011-03-10
JP2010250813A (ja) 2010-11-04
ATE557349T1 (de) 2012-05-15

Similar Documents

Publication Publication Date Title
US7543177B2 (en) Methods and systems for a storage system
US7941595B2 (en) Methods and systems for a memory section
JP2010250813A (ja) ストレージシステムのための方法及びシステム
US6081883A (en) Processing system with dynamically allocatable buffer memory
US7415565B2 (en) Methods and systems for a storage system with a program-controlled switch for routing data
JP5127491B2 (ja) ストレージサブシステム及びこれの制御方法
US6691209B1 (en) Topological data categorization and formatting for a mass storage system
US6678788B1 (en) Data type and topological data categorization and ordering for a mass storage system
CN100383751C (zh) 用于动态镜像库寻址的系统和方法
US6594775B1 (en) Fault handling monitor transparently using multiple technologies for fault handling in a multiple hierarchal/peer domain file server with domain centered, cross domain cooperative fault handling mechanisms
US7269611B2 (en) Storage system and storage system control method
WO2018054079A1 (zh) 一种存储文件的方法、第一虚拟机及名称节点
JP2006155623A (ja) データベースクラスタリカバリ方法及び装置
US11184435B2 (en) Message transmission method and apparatus in cluster file system
US20160306700A1 (en) Restoring service acceleration
US8108580B1 (en) Low latency synchronous replication using an N-way router
CN112073321B (zh) 信息处理方法、互连设备和计算机可读存储介质
EP3167372B1 (en) Methods for facilitating high availability storage services and corresponding devices
US10506042B2 (en) Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
JP2007334668A (ja) メモリダンプ方法、クラスタシステム、それを構成するノードおよびプログラム
US9753822B1 (en) Automatic non-disruptive connection recovery of a fixed topology fabric in a data storage system
CN115174498A (zh) 锁服务处理方法、装置和数据处理系统
Stensland Fault-tolerant routing in SCI networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091224

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100329

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100713