JP2015501957A - 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置 - Google Patents

二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置 Download PDF

Info

Publication number
JP2015501957A
JP2015501957A JP2014524174A JP2014524174A JP2015501957A JP 2015501957 A JP2015501957 A JP 2015501957A JP 2014524174 A JP2014524174 A JP 2014524174A JP 2014524174 A JP2014524174 A JP 2014524174A JP 2015501957 A JP2015501957 A JP 2015501957A
Authority
JP
Japan
Prior art keywords
processor
packet
shared memory
switch
transparent bridge
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.)
Granted
Application number
JP2014524174A
Other languages
English (en)
Other versions
JP5833756B2 (ja
Inventor
田中 勝也
勝也 田中
正法 高田
正法 高田
晋太郎 工藤
晋太郎 工藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2015501957A publication Critical patent/JP2015501957A/ja
Application granted granted Critical
Publication of JP5833756B2 publication Critical patent/JP5833756B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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/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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/552Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Multi Processors (AREA)

Abstract

【課題】従来のストレージ装置において、共有メモリは、冗長化された2個のプロセッサの主記憶に二重化される。二重化共有メモリ間で書き込み順序の一致が保証されない場合、プロセッサは、二重化共有メモリの一方のみを読み出すことにより、読み出すデータの書き込み順序を2個のプロセッサ間で一致させる必要がある。その結果、共有メモリ読み出しの際、一方のプロセッサが他方のプロセッサの主記憶を読み出す必要があり、各プロセッサがそれぞれの主記憶を読み出す場合に比べてオーバーヘッドが大きくなる。【解決手段】本発明のストレージ装置は、非透過性ブリッジを応用したパケット方向転換手段により、プロセッサから主記憶への書き込みに対してもPCI Expressマルチキャストを適用可能とし、共有メモリへの書き込み順序を二重化したメモリ間で一致させる。その結果、各プロセッサの各主記憶アクセスにより共有メモリを高速に読み出すことができる。【選択図】図26

Description

本発明は、ストレージ装置に係わり、特に、ストレージコントローラ内の制御情報の格納場所である二重化共有メモリへのアクセス方法に関する。
ストレージ装置は、一般的に、ストレージコントローラと、ランダムアクセス可能な不揮発性記録媒体とを有する。この記録媒体は、例えば、ハードディスクドライブ(HDD)や不揮発性半導体メモリドライブ(SSD)を多数備えたディスクアレイである。ストレージコントローラは、上位装置(ホストシステム等)を接続するためのフロントエンドインターフェース(FEIFと略す)と、ディスクアレイを接続するためのバックエンドインターフェース(BEIFと略す)と、上位装置がディスクアレイに対して読み書きするデータを一時的に保存するキャッシュメモリ(CMと略す)を有する。更に、ストレージコントローラは、上位装置とキャッシュメモリとの間、及びディスクアレイとキャッシュメモリとの間におけるデータ転送を制御するためのプロセッサを有する。
複数のプロセッサを搭載するストレージ装置では、ストレージコントローラ内に複数のプロセッサからアクセス可能な、ストレージ装置の制御情報を格納する共有メモリ(SMと略す)を有する。ストレージ装置の制御情報とは、例えば、上位装置から参照されるデータ格納先アドレス情報とストレージ装置内部で使用するディスクアレイ上のデータ格納先アドレス情報を変換するアドレス変換テーブル等がある。
汎用技術を適用したストレージコントローラにおいて、キャッシュメモリ及び共有メモリは汎用プロセッサ(以下、プロセッサ)に接続された主記憶内に構成される。また、プロセッサとFEIFやBEIF等とを接続するための通信ネットワークの標準規格として、「PCI Express」(登録商標)が知られている。
高信頼性が要求されるストレージ装置では、共有メモリを含むストレージコントローラ内コンポーネントが冗長化される。ストレージコントローラは2個以上のクラスタで構成され、共有メモリはクラスタ間で二重化される。二重化共有メモリは、高信頼化の他に、複数クラスタ間における負荷分散や、クラスタ間連携による多ポート動作及びバックアップ処理等により、ストレージ装置を高性能化する目的にも使用される。
特許文献1には、二重化された共有メモリを備えたストレージ装置に関する技術が開示されている。特許文献2には、共有メモリに対するアクセス順序保証に関する技術が開示されている。特許文献3には、複数のクラスタからなるストレージ装置に関する技術が開示されている。また、非特許文献1には、PCI Expressで標準化されたマルチキャストについて開示されている。非特許文献2には、PCI Expressを応用したクラスタ間接続に関する技術が開示されている。
日本公開特許2000−010901号公報 (対応米国特許6、341、332号公報) 日本公開特許2000−181891公報 米国公開特許2011/0167189号公報
「PCI Express Base Specification、Revision 3.0、Section 6.14.」、2010年発行、著者PCI-SIG、第546〜553頁 「Using Non-transparent Bridging in PCI Express Systems」、2004年発行、著者Jack Regula、第4〜30頁、URL http://www.plxtech.com/pdf/technical/expresslane/NontransparentBridging.pdf
共有メモリ実現の要件は、特許文献2にも記載されている通り、あるプロセッサからの共有メモリへのアクセスが、別のプロセッサからも同様に見えることである。特にストレージ装置の二重化共有メモリにおいては、物理的に異なる場所にある2個のメモリに対する書き込み順序が一致することが求められる。
従来技術を適用したストレージ装置において、共有メモリは、2個のプロセッサの主記憶に二重化される。二重化共有メモリ間で書き込み順序の一致が保証されない場合、2個のプロセッサは、二重化共有メモリの一方のみを読み出すことにより、読み出すデータの書き込み順序をプロセッサ間で一致させる必要がある。その結果、共有メモリ読み出しの際、一方のプロセッサが他方のプロセッサの主記憶を読み出す必要がある。
さらに、ストレージコントローラにおける他方のプロセッサの主記憶に対する読み出しは、障害処理の観点から、読み出し命令を使用するのではなく、特許文献3に記載されているように複数の書き込み命令を組み合わせて読み出さなければならいので、各プロセッサがそれぞれの主記憶を読み出す場合に比べてオーバーヘッドが大きくなる。
また、PCI Expressで標準化されたマルチキャストは、PCI Expressで接続されたコンポーネント間において、複数の異なる場所に同じ順序でデータを書き込むことができる機能である。しかし、プロセッサ発の書き込みは、マルチキャスト機能を使ってプロセッサの主記憶に書き込むことはできない。従って、プロセッサの主記憶に共有メモリを構成するストレージ装置において、マルチキャストをプロセッサから二重化共有メモリへの書き込みに適用することは困難である。
本発明は以上のような問題に鑑みてなされたものであり、その主な目的は、ストレージコントローラ内にプロセッサ及び二重化された共有メモリを備え、ストレージコントローラ内コンポーネントがPCI Expressで接続されたストレージ装置に関わり、プロセッサから共有メモリへの書き込みにおいて、二重化された共有メモリ間で書き込み順序が一致することが保証されたストレージ装置を提供することである。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。前記目的を達成するために、本発明の代表的な実施の形態は、ストレージコントローラを備えるストレージ装置であって、ストレージコントローラは、2個のプロセッサと、各プロセッサに接続された2個のメモリと、少なくとも一つがマルチキャスト機能を備える各プロセッサに接続された2個のスイッチと、各スイッチに内蔵され2個のスイッチをリンクで接続するための非透過性ブリッジと、2個のメモリ内に二重化された共有メモリを持つストレージ装置の技術であって、以下に示す構成を有することを特徴とする。
ストレージコントローラは、2個のスイッチの少なくとも一つに接続されたパケット方向転換手段を備える。マルチキャスト機能を備えるスイッチにおいては、スイッチに接続したプロセッサと非透過性ブリッジが同じマルチキャストグループに設定される。パケット方向転換手段は、受信したパケットを、受信した順番でマルチキャストグループのアドレスへ転送する。マルチキャスト機能を備えるスイッチと接続したプロセッサは、パケットをパケット方向転換手段に送信することにより二重化共有メモリへの書き込みを実行する。2個のプロセッサの他方はパケットを、非透過性ブリッジで接続したスイッチ間リンクを経由してパケット方向転換手段に送信するか、或いは、別の非透過性ブリッジで接続したスイッチ間リンクを経由してマルチキャスト機能(マルチキャスト機能のマルチキャストグループのアドレス)にパケットを送信することにより、二重化共有メモリへの書き込みを実行する。
より具体的には、ストレージコントローラを備えるストレージ装置であって、ストレージコントローラは、第1のプロセッサと第1のプロセッサに接続された第1のメモリと第1のプロセッサに接続され第1のマルチキャスト機能と第1の非透過性ブリッジを備える第1のスイッチと、第2のプロセッサと第2のプロセッサに接続された第2のメモリと第2のプロセッサに接続され第2の非透過性ブリッジを備える第2のスイッチとを備え、第1の非透過性ブリッジと第2の非透過性ブリッジが第1のリンクで接続され、第1のメモリと第2のメモリ内にユーザデータを格納するキャッシュメモリと制御情報を格納する二重化共有メモリが構成され、更にストレージコントローラは、第1のスイッチに接続された第1のパケット方向転換手段を備え、第1のスイッチでは、第1のプロセッサと第1の非透過性ブリッジとが同じマルチキャストグループに設定され、第1のパケット方向転換手段は、受信したパケットを、受信した順番でマルチキャストグループのアドレスへ転送し、第1のプロセッサは、パケットを第1のパケット方向転換手段に送信することにより二重化共有メモリへの書き込みを実行する構成を備える。
また、ストレージ装置において、第2のスイッチは第2のマルチキャスト機能を備え、第2のスイッチに第2のパケット方向転換手段が接続され、第2のスイッチでは、第2のプロセッサと第2の非透過性ブリッジとが同じマルチキャストグループに設定され、第2のパケット方向転換手段は、受信したパケットを、受信した順番でマルチキャストグループのアドレスへ転送し、第1のプロセッサは、パケットを第1のパケット方向転換手段または第2のパケット方向転換手段に送信することにより二重化共有メモリへの書き込みを実行し、第2のプロセッサは、パケットを第1のパケット方向転換手段または第2のパケット方向転換手段に送信することにより二重化共有メモリへの書き込みを実行する構成を備える。
更に、ストレージ装置において、第1のスイッチは第3の非透過性ブリッジを備え、第2のスイッチは第4の非透過性ブリッジを備え、第3の非透過性ブリッジと第4の非透過性ブリッジが第2のリンクで接続され、第1のプロセッサまたは第2のプロセッサからキャッシュメモリへの書き込みには第2のリンクが使用され、第1のプロセッサまたは第2のプロセッサから二重化共有メモリへの書き込みには第1のリンクが使用される構成を備える。加えて、第1のパケット方向転換手段は、第2のスイッチに内蔵された第5の非透過性ブリッジである構成を備える。
また、第2のパケット方向転換手段は、第1のスイッチに内蔵された第6の非透過性ブリッジであり、第1のスイッチと第5の非透過性ブリッジを接続するリンクと、第2のスイッチと第6の非透過性ブリッジを接続するリンクが同じ第3のリンクである構成を備える。
更に、第3のリンクは第1の仮想チャネルと第2の仮想チャネルを備え、第1のプロセッサが第1のスイッチから第5の非透過性ブリッジにパケットを送信する場合には第1の仮想チャネルを使用し、第2のプロセッサが第2のスイッチから第6の非透過性ブリッジにパケットを送信する場合には第2の仮想チャネルを使用する構成を備える。
また、第1のパケット方向転換手段は第7の非透過性ブリッジを備えた第3のスイッチであり、第3のスイッチの、第7の非透過性ブリッジに対応するポートを含む2個のポートと第1のスイッチとが接続される構成を備える。更に、第2のパケット方向転換手段は第8の非透過性ブリッジを備えた第4のスイッチであり、第4のスイッチの、第8の非透過性ブリッジに対応するポートを含む2個のポートと第2のスイッチとが接続される、ことを特徴とする構成を備える。加えて、第1のスイッチは第3の非透過性ブリッジを、第2のスイッチは第4の非透過性ブリッジを備え、第3の非透過性ブリッジと第4の非透過性ブリッジとが第2のリンクで接続され、第1のプロセッサまたは第2のプロセッサからキャッシュメモリへの書き込みには第2のリンクが使用され、第1のプロセッサまたは第2のプロセッサから二重化共有メモリへの書き込みには第1のリンクが使用される構成を備える。
更に、二重化共有メモリから制御情報を読み出す場合、第1のプロセッサは第1のメモリから読み出し、第2のプロセッサは第2のメモリから読み出す構成を備える。更に、第1のプロセッサから二重化共有メモリへの書き込み実行状態を管理する第1のテーブルを第1のメモリに備え、第2のプロセッサから二重化共有メモリへの書き込み実行状態を管理する第2のテーブルを第2のメモリを備える。
また、ストレージ装置における二重化共有メモリアクセス方法における第1のプロセッサから二重化共有メモリへの制御情報の書き込み方法は、第1のテーブルに第1のプロセッサが制御情報に関連する書き込み未完了フラグを設定するステップと、第1のプロセッサが制御情報を格納したパケットを送信するステップと、第1のプロセッサが、制御情報を格納したパケットを送信したのと同じデータ転送経路で、書き込み未完了フラグをクリアするためのデータを格納したパケットを送信するステップを備え、第2のプロセッサから二重化共有メモリへの制御情報の書き込み方法は、第2のテーブルに第2のプロセッサが制御情報に関連する書き込み未完了フラグを設定するステップと、第2のプロセッサが制御情報を格納したパケットを送信するステップと、第2のプロセッサが、制御情報を格納したパケットを送信したのと同じデータ転送経路で、書き込み未完了フラグをクリアするためのデータを格納したパケットを送信するステップを備える。
更に、第1のプロセッサから二重化共有メモリへの書き込み実行状態を管理する第1のテーブルを第1のメモリに、第2のプロセッサから二重化共有メモリへの書き込み実行状態を管理する第2のテーブルを第2のメモリにそれぞれ備える二重化共有メモリアクセス方法において、第1のプロセッサから二重化共有メモリへの制御情報の書き込み方法は、制御情報を格納したパケットの送信先を第1のパケット方向転換手段または第2のマルチキャスト機能のマルチキャストグループのアドレスのどちらに送信するかを判定するステップと、第1のテーブルに第1のプロセッサが制御情報に関連する書き込み未完了フラグを設定するステップと、第1のプロセッサが制御情報を格納したパケットを送信するステップと、第1のプロセッサが、制御情報を格納したパケットを送信したのと同じデータ転送経路で、書き込み未完了フラグをクリアするためのデータを格納したパケットを送信するステップを備え、第2のプロセッサから二重化共有メモリへの制御情報の書き込み方法は、制御情報を格納したパケットの送信先を第2のパケット方向転換手段または第1のマルチキャスト機能のマルチキャストグループのアドレスのどちらに送信するかを判定するステップと、第2のテーブルに第2のプロセッサが制御情報に関連する書き込み未完了フラグを設定するステップと、第2のプロセッサが制御情報を格納したパケットを送信するステップと、第2のプロセッサが、制御情報を格納したパケットを送信したのと同じデータ転送経路で、書き込み未完了フラグをクリアするためのデータを格納したパケットを送信するステップを備える。
加えて、二重化共有メモリから第1のプロセッサへの制御情報の読み出し方法は、第1のプロセッサが制御情報に関連する書き込み未完了フラグを第1のテーブルから読み出すステップと書き込み未完了フラグが書き込み完了状態を示す場合に第1のプロセッサが第1のメモリから制御情報を読み出すステップを備え、二重化共有メモリから第2のプロセッサへの制御情報の読み出し方法は、第2のプロセッサが制御情報に関連する書き込み未完了フラグを第2のテーブルから読み出すステップと書き込み未完了フラグが書き込み完了状態を示す場合に第2のプロセッサが第2のメモリから制御情報を読み出すステップを備える。更に、書き込み未完了フラグが書き込み未完了状態を示す場合に、第1のプロセッサは第1のメモリから制御情報の読み出しを書き込み未完了フラグが書き込み完了状態を示すまで延期するステップ、または第2のプロセッサは第2のメモリから制御情報の読み出しを書き込み未完了フラグが書き込み完了状態を示すまで延期するステップを備える。
本発明によれば、パケット方向転換手段により、プロセッサから主記憶メモリへの書き込みに対してもPCI Expressマルチキャストを適用可能にできる。更に、ストレージコントローラ内2個のプロセッサからの二重化された共有メモリに対する書き込みの順序を一致できるので、各プロセッサはそれぞれの主記憶にアクセスすることにより共有メモリ内の制御情報を高速に読み出すことができ、ストレージ装置を高性能化することができる。
図1は、実施例1に係るストレージ装置の構成例を示す図である。 図2は、PCI Expressスイッチにおけるマルチキャスト動作を示す図である。 図3は、実施例1に係るプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図4は、実施例1に係るプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図5は、実施例1に係るプロセッサから共有メモリへの書き込みのフローチャートを示す図である。 図6は、実施例1に係る共有メモリ管理テーブルを示す図である。 図7は、実施例1に係るプロセッサから共有メモリへの書き込み動作を示す図である。 図8は、実施例1に係るプロセッサから共有メモリへの書き込み動作を示す図である。 図9は、実施例1に係るプロセッサから共有メモリへの書き込み動作を示す図である。 図10は、実施例1に係るプロセッサから共有メモリへの書き込み動作を示す図である。 図11は、実施例1に係るプロセッサから共有メモリへの書き込み動作を示す図である。 図12は、実施例1に係るプロセッサから共有メモリへの書き込み動作を示す図である。 図13は、実施例1に係る共有メモリからプロセッサへの読み出しデータ転送経路を示す図である。 図14は、実施例1に係る共有メモリからプロセッサへの読み出しのフローチャートを示す図である。 図15は、実施例1に係る共有メモリからプロセッサへの読み出し動作を示す図である。 図16は、実施例1に係る共有メモリからプロセッサへの読み出し動作を示す図である。 図17は、実施例1に係る共有メモリからプロセッサへの読み出し動作を示す図である。 図18は、実施例2に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図19は、実施例2に係る共有メモリ管理テーブルを示す図である。 図20は、実施例2に係るプロセッサから共有メモリへの書き込みのフローチャートを示す図である。 図21は、実施例3に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図22は、実施例3に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図23は、実施例3に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図24は、実施例4に係る非透過性ブリッジの動作を示す図である。 図25は、実施例4に係る非透過性ブリッジとスイッチによるパケット方向転換手段の構成例を示す図である。 図26は、実施例4に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図27は、実施例4に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図28は、実施例5に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図29は、実施例5に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図30は、実施例5に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図31は、実施例5に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図32は、実施例5に係るストレージ装置の構成例を示す図である。 図33は、実施例6に係るパケット方向転換手段の構成例を示す図である。 図34は、実施例6に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図35は、実施例6に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図36は、実施例6に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図37は、実施例6に係るストレージ装置の構成例を示す図である。 図38は、実施例6に係るストレージ装置の構成例を示す図である。 図39は、実施例7に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図40は、実施例7に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。 図41は、実施例8に係るストレージ装置の適用例を示す図である。 図42は、実施例8に係るストレージ装置の適用例を示す図である。 図43は、実施例8に係るストレージ装置の適用例を示す図である。
以下、図面を参照しながら、本発明の幾つかの実施例を説明する。なお、全ての実施例を通して、同一符号が付されている構成要素は、実質的に同じものであるとする。また、以下の説明では、「管理テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「管理テーブル」を「管理情報」と呼ぶことができる。
また、「プログラム」を主語として処理を説明する場合がある。そのプログラムは、プロセッサ、例えば、CPU(Central Processing Unit)によって実行されるもので、定められた処理をするものである。なお、適宜に記憶資源(例えばメモリ)及び通信インターフェース装置(例えば、通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プロセッサは、CPUの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各コンピュータにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアなどで提供されるものであっても良い。
また、各要素、例えば、LU(Logical Unit)などは番号などで識別可能であるが、識別可能な情報であれば、名前など他種の識別情報が用いられても良い。本発明の図及び説明において同一部分には同一符号を付与しているが、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
<実施例1>
図1〜図17を用いて、本発明の実施の形態1のストレージ装置とその動作について説明する。実施の形態1では、概要としては、PCI Expressスイッチのマルチキャスト機能とPCI Expressスイッチに接続したパケット方向転換手段により、プロセッサから2個の共有メモリに対する書き込みの順序を一致させる。
図1は、本発明の実施の形態1のストレージ装置の構成例を示す。ストレージ装置100は、ストレージコントローラ101とディスクアレイ102で構成されている。ディスクアレイ102は、例えば、複数のハードディスクドライブ(HDD)や半導体メモリドライブ(SSD)等の記憶装置群から構成される。ストレージコントローラ101には、外部の上位装置103(Host1)、104(Host2)(例えば、ホストシステム等)が接続される。
ストレージコントローラ101は、2個のクラスタ111(Cluster1)、121(Cluster2)で構成されている。クラスタ111(Cluster1)は、プロセッサ112(MP1)と、フロントエンドインターフェース118(FEIF1)と、バックエンドインターフェース119(BEIF1)と、それらを接続するPCI Expressスイッチ116(PCIe(登録商標) SW1)で構成されている(以下、PCI Expressスイッチを単にスイッチと記す)。
主記憶113(MEM1)は、プロセッサ112(MP1)と接続され、キャッシュメモリ114(CM1)と共有メモリ115(SM1)を構成する。また主記憶113(MEM1)は、プロセッサ112(MP1)により実行されるプログラムや、参照される管理テーブルを格納する。
プロセッサ112(MP1)は、フロントエンドインターフェース118(FEIF1)とキャッシュメモリ114(CM1)の間、及びキャッシュメモリ114(CM1)とバックエンドインターフェース119(BEIF1)の間のデータ転送を制御する。また、プロセッサ112(MP1)は、スイッチ116と接続するためのルートコンプレックス(図示せず)を内蔵する。
フロントエンドインターフェース118(FEIF1)は、上位装置103(Host1)、104(Host2)とストレージコントローラ101間のデータ転送プロトコルと、ストレージコントローラ101内のデータ転送プロトコルを変換する。
バックエンドインターフェース119(BEIF1)は、ストレージコントローラ101内のデータ転送プロトコルと、ストレージコントローラ101とディスクアレイ102間のデータ転送プロトコルを変換する。
スイッチ116は、PCI Expressで標準化されたマルチキャスト機能106(MC1)を備える。実施の形態1のストレージ装置100では、スイッチ116のアップストリームポートに接続したプロセッサ112(MP1)(詳細にはプロセッサが内蔵するルートコンプレックス(図示せず))と非透過性ブリッジ(Non Transparent Bridge)が、同じマルチキャストグループに設定されている。また、スイッチ116は、クラスタ間接続を実現する非透過性ブリッジ117(NT1)を備える。
パケット方向転換手段107(Redirector1)は、スイッチ116に接続されている。パケット方向転換手段107(Redirector1)は、スイッチを介して受信したパケットを、受信した順にスイッチのマルチキャストアドレスへ転送する機能を備える。
クラスタ121(Cluster2)は、パケット方向転換手段107(Redirector1)が無い点と、スイッチ126にマルチキャスト機能が備えられていない点以外は、クラスタ111(Cluster1)と同様の構成である。つまり、クラスタ121(Cluster2)は、プロセッサ122(MP2)と、フロントエンドインターフェース128(FEIF2)と、バックエンドインターフェース129(BEIF2)と、それらを接続するスイッチ126(SW2)で構成されている。
主記憶123(MEM2)は、プロセッサ122(MP2)と接続され、キャッシュメモリ124(CM2)と共有メモリ125(SM2)を構成する。また主記憶123(MEM2)は、プロセッサ122(MP2)により実行されるプログラムや、参照される管理テーブルを格納する。
プロセッサ122(MP2)は、フロントエンドインターフェース128(FEIF2)とキャッシュメモリ124(CM2)の間、及びキャッシュメモリ124(CM2)とバックエンドインターフェース129(BEIF2)の間のデータ転送を制御する。また、プロセッサ122(MP2)は、スイッチ126と接続するためのルートコンプレックス(図示せず)を内蔵する。
フロントエンドインターフェース128(FEIF2)は、上位装置103(Host1)、104(Host2)とストレージコントローラ101間のデータ転送プロトコルと、ストレージコントローラ101内のデータ転送プロトコルを変換する。
バックエンドインターフェース129(BEIF2)は、ストレージコントローラ101内のデータ転送プロトコルと、ストレージコントローラ101とディスクアレイ102間のデータ転送プロトコルを変換する。
スイッチ126は、クラスタ間接続を実現する非透過性ブリッジ127(NT2)を備える。クラスタ111(Cluster1)とクラスタ121(Cluster2)との間は、非透過性ブリッジ117(NT1)と非透過性ブリッジ127(NT2)を接続するNT(Non Transparent)リンク105で接続されている。
プロセッサ112(MP1)とプロセッサ122(MP2)は、NTリンク105を介して相互に通信し、上位装置103(Host1)、104(Host2)から受信したユーザデータをキャッシュメモリ114(CM1)、124(CM2)内に二重化して一時的に格納してもよい。また、プロセッサ112(MP1)とプロセッサ122(MP2)は、NTリンク105を介して相互に通信し、ストレージ装置100内の制御情報を共有メモリ115(SM1)、125(SM2)内に二重化して格納する。
なお、プロセッサ112(MP1)が複数のPCI Expressポートを備える場合は、プロセッサ112(MP1)と、フロントエンドインターフェース118(FEIF1)、またはバックエンドインターフェース119(BEIF1)は、スイッチを介さずに接続してもよい。同様に、プロセッサ122(MP2)が複数のPCI Expressポートを備える場合は、プロセッサ122(MP2)と、フロントエンドインターフェース128(FEIF2)、またはバックエンドインターフェース129(BEIF2)は、スイッチを介さずに接続してもよい。
次に、図2でPCI Expressで標準化されたマルチキャストについて説明する。図2は、マルチキャストをサポートするPCI Expressスイッチ200の動作を説明する図である。スイッチ200は、アップストリームポート201と、2個のダウンストリームポート202、203を備える。アップストリームポート201は透過性ブリッジ(Transparent Bridge)204(TB0)に、ダウンストリームポート202は透過性ブリッジ205(TB1)に、ダウンストリームポート203は透過性ブリッジ206(TB2)に、スイッチ200内部でそれぞれ接続している。透過性ブリッジ204(TB0)、205(TB1)、206(TB2)は、仮想PCIバス207で、相互に接続されている。
まず、マルチキャストではない通常のスイッチ動作について説明する。PCIアドレス空間208において、透過性ブリッジ204(TB0)の通過アドレス範囲209は、透過性ブリッジ205(TB1)の通過アドレス範囲210と、透過性ブリッジ206(TB2)の通過アドレス範囲211を含む。アップストリームポート201からスイッチ200に入力したパケットは、その送信先アドレスが通過アドレス範囲210に含まれればダウンストリームポート202へ、通過アドレス範囲211に含まれればダウンストリームポート203へ転送される。
次にマルチキャストの動作について説明する。PCI Expressスイッチのマルチキャストでは、パケットを複製して転送したい1個以上のエンドポイントを組み合わせて、マルチキャストグループを設定する。詳細には、プロセッサ内蔵のルートコンプレックスもマルチキャストグループに含めることができる。つまり、マルチキャストパケットの送信先として、スイッチのダウンストリームポートに接続した1個以上のエンドポイント、またはアップストリームポートに接続したプロセッサを設定することができる。
例えば、図2のように、マルチキャストグループ0(MCG0)には透過性ブリッジ204(TB0)に接続したプロセッサ220(MP)と、透過性ブリッジ205(TB1)に接続したエンドポイント221(EP1)を設定する。マルチキャストグループ1(MCG1)には透過性ブリッジ204(TB0)に接続したプロセッサ220(MP)と、透過性ブリッジ205(TB1)に接続したエンドポイント221(EP1)と、透過性ブリッジ206(TB2)に接続したエンドポイント222(EP2)を設定する。さらに、マルチキャストグループ2(MCG2)には透過性ブリッジ204(TB0)に接続したプロセッサ220(MP)と、透過性ブリッジ206(TB2)に接続したエンドポイント222(EP2)を設定する。各透過性ブリッジのMC_Receiveレジスタには、その透過性ブリッジを通過するマルチキャストパケットが属するマルチキャストグループを設定する。つまり、透過性ブリッジ204(TB0)のMC_Receiveレジスタには、マルチキャストグループ0(MCG0)とマルチキャストグループ1(MCG1)とマルチキャストグループ2(MCG2)が、透過性ブリッジ204(TB0)を通過するマルチキャストグループとして設定される。透過性ブリッジ205(TB1)のMC_Receiveレジスタには、マルチキャストグループ0(MCG0)とマルチキャストグループ1(MCG1)が、透過性ブリッジ205(TB1)を通過するマルチキャストグループとして設定される。透過性ブリッジ206(TB2)のMC_Receiveレジスタには、マルチキャストグループ1(MCG1)とマルチキャストグループ2(MCG2)が、透過性ブリッジ206(TB2)を通過するマルチキャストグループとして設定される。
アップストリームポート201からスイッチ200に入力したパケットは、その送信先アドレスがマルチキャストアドレス212(MCG0)に含まれれば、マルチキャストグループ0(MCG0)がMC_Receiveレジスタに設定された透過性ブリッジ205(TB1)を経てダウンストリームポート202へ転送される。アップストリームポート201からスイッチ200に入力したパケットは、その送信先アドレスがマルチキャストアドレス213(MCG1)に含まれれば、マルチキャストグループ1(MCG1)がMC_Receiveレジスタに設定された透過性ブリッジ205(TB1)、206(TB2)を経てダウンストリームポート202、203へ転送される。
アップストリームポート201からスイッチ200に入力したパケットは、その送信先アドレスがマルチキャストアドレス214(MCG2)に含まれれば、マルチキャストグループ2(MCG2)がMC_Receiveレジスタに設定された透過性ブリッジ206(TB2)を経てダウンストリームポート203へ転送される。
PCI Expressスイッチのマルチキャストでは、パケットが入力したポートの方向へはマルチキャストされないという制約がある。この制約により、例えば、図2のように、アップストリームポート201から入力したパケットの送信先アドレスがマルチキャストアドレス213(MCG1)に含まれる場合であっても、パケットは、マルチキャストグループ1がMC_Receiveレジスタに設定された透過性ブリッジ204(TB0)に接続されたアップストリームポート201の方向へは転送されない。
言い換えると、ストレージ装置100において、プロセッサ112(MP1)が、スイッチ116(SW1)のマルチキャスト機能106(MC1)のマルチキャストアドレスへパケットを送信したとしても、主記憶113(MEM1)にパケットを送信することはできない。つまり、プロセッサ112(MP1)から、「直接」、スイッチのマルチキャストアドレスへパケットを転送しても、2個の共有メモリ115(SM1)、125(SM2)へ書き込むことはできない。
図3は、上記制約を回避するため、スイッチ116(SW1)にパケット方向転換手段107(Redirector1)を接続した場合のデータ転送経路を示す図である。上述の通り、スイッチのマルチキャスト機能は、パケットが入力したポートの方向へは働かない。そこで実施の形態1のストレージ装置は、図3のようにスイッチ116(SW1)にパケット方向転換手段107(Redirector1)を接続し、プロセッサ112(MP1)から送信されたパケットを方向転換させてスイッチのマルチキャスト機能106(MC1)に転送する。
スイッチ116(SW1)では、アップストリームポート301に接続されたプロセッサ112(MP1)と、非透過性ブリッジ117(NT1)が同じマルチキャストグループに設定される。さらに、パケット方向転換手段107(Redirector1)は、そのグループのマルチキャストアドレス(マルチキャストアドレス1とする)に、受信パケットを転送する。
プロセッサ112(MP1)から共有メモリ115(SM1)、125(SM2)への書き込みにおいて、先ず、プロセッサ112(MP1)は、共有メモリへの書き込みデータを格納したパケットを、パケット方向転換手段107(Redirector1)に送信する(符号303)。パケット方向転換手段107(Redirector1)は、受信したパケットを、スイッチ116(SW1)のマルチキャストアドレス1に転送する(符号304)。スイッチ116(SW1)のマルチキャスト機能106(MC1)は、受信したパケットを複製する。
複製されたパケットの一方は、ポート301とプロセッサ112(MP1)を介して、主記憶113(MEM1)内の共有メモリ115(SM1)へ送信される(符号305)。複製されたパケットの他方は、非透過性ブリッジ117(NT1)に接続されたポート302と、NTリンク105と、スイッチ126(SW2)のポート307と、非透過性ブリッジ127(NT2)と、プロセッサ122(MP2)を介して、主記憶123(MEM2)内の共有メモリ125(SM2)へ送信される(符号306)。
図4は、プロセッサ122(MP2)から共有メモリ115(SM1)、125(SM2)へのデータ転送経路を示す図である。プロセッサ122(MP2)から共有メモリ115(SM1)、125(SM2)への書き込みにおいて、プロセッサ122(MP2)はプロセッサ112(MP1)と同様に、共有メモリへの書き込みデータを格納したパケットを、パケット方向転換手段107(Redirector1)に送信する(符号403)。
そのデータ転送経路は、非透過性ブリッジ127(NT2)と、ポート307と、NTリンク105と、ポート302と、非透過性ブリッジ117(NT1)と、を経由する。パケット方向転換手段107(Redirector1)は、受信したパケットを、スイッチ116(SW1)のマルチキャストアドレス1に転送する(符号304)。その後のマルチキャスト動作は、プロセッサ112(MP1)発の書き込みの場合と同様である。
以上説明したように、プロセッサ112(MP1)発パケットもプロセッサ122(MP2)発パケットも、同じマルチキャスト機能106(MC1)において複製され、共有メモリ115と125(SM1とSM2)に送信される。マルチキャスト機能106(MC1)は、受信したパケットの順序と同じ順序で複製パケットを共有メモリに送信する。従って、2個の共有メモリ115(SM1)と125(SM2)の間で、書き込まれるパケットの順序が一致することになる。
図5から図9により、プロセッサ112(MP1)から共有メモリ115(SM1)、125(SM2)への書き込みの手順を説明する。図5は書き込み手順のフローチャートである。図6はプロセッサ112(MP1)が共有メモリ書き込み時に使用し、主記憶113(MEM1)内に格納される共有メモリ管理テーブル600を示す図である。図7から図9は、図5のフローチャートの各ステップにおける、共有メモリへの書き込みパケットのデータ転送経路と、共有メモリ管理テーブル600の内容について示す図である。
図6において、共有メモリ管理テーブル600は、共有メモリアドレス601に対する書き込み未完了フラグ602を格納する。書き込み未完了フラグが「0」の場合は、その共有メモリアドレスへの書き込みが完了していることを示す。それに対して、書き込み未完了フラグが「1」の場合は、その共有メモリアドレスへの書き込みは未完了であることを示す。
例えば、図6において、共有メモリアドレス「abcd」に対する書き込み未完了フラグは「0」なので(符号603)、そのアドレスに対する書き込みは完了している。一方、共有メモリアドレス「efgh」に対する書き込み未完了フラグは「1」なので(符号604)、そのアドレスに対する書き込みは未完了である。
図5のフローチャートのステップS501において、プロセッサ112(MP1)は、主記憶113(MEM1)内の共有メモリ管理テーブル600において、書き込み先共有メモリアドレスの書き込み未完了フラグに「1」を書き込む。この場合は、図7に示すように、プロセッサ112(MP1)は主記憶113(MEM1)に直接アクセスして(符号702)、共有メモリ管理テーブル600を更新する。共有メモリ管理テーブル600の書き込み先アドレスの書き込み未完了フラグは「0」から「1」へ更新される(符号701)。
次に、ステップS502において、プロセッサ112(MP1)は、共有メモリへの書き込みデータを格納したパケットを、図8に示すように、パケット方向転換手段107(Redirector1)へ送信する(符号802)。そして、パケット方向転換手段107(Redirector1)は、スイッチ116(SW1)のマルチキャストアドレス1に対して前記パケットを送信する。この場合、共有メモリ管理テーブル600の書き込み先アドレスの書き込み未完了フラグは「1」であり、書き込み未完了を示す(符号801)。
次に、ステップS503において、プロセッサ112(MP1)は、共有メモリ管理テーブル600の書き込み未完了フラグをクリアするデータを格納したパケットを、図9に示すように、共有メモリへ送信した書き込みデータパケットと同じ経路で送信する(符号902)。つまり、前記フラグをクリアするパケットを、パケット方向転換手段107(Redirector1)を介して、スイッチ116(SW1)のマルチキャストアドレス1に対して送信する。
その結果、共有メモリ管理テーブル600の書き込み先アドレスの書き込み未完了フラグは「1」から「0」へ更新される(符号901)。共有メモリ125(SM2)に対しても、前記フラグをクリアするパケットがマルチキャストされるが、プロセッサ122(MP2)は対象アドレスに書き込みをしていないので、影響を受けない。
図10から図12は、プロセッサ122(MP2)から共有メモリ115、126(SM1、SM2)への書き込みの手順を説明する図である。プロセッサ122(MP2)から共有メモリへの書き込み手順も図5のフローチャートに従う。
図5のフローチャートのステップS501において、プロセッサ122(MP2)は、共有メモリ管理テーブル1001において、書き込み先共有メモリアドレスの書き込み未完了フラグに「1」を書き込む。この場合は、図10に示すように、プロセッサ122(MP2)は主記憶123(MEM2)に直接アクセスして(符号1003)、共有メモリ管理テーブル1001を更新する。共有メモリ管理テーブル1001の書き込み先アドレスの書き込み未完了フラグは「0」から「1」へ更新される(符号1002)。
次に、ステップS502において、プロセッサ122(MP2)は、共有メモリへの書き込みデータを格納したパケットを、図11に示すように、パケット方向転換手段107(Redirector1)へ送信する(符号1102)。そして、パケット方向転換手段107(Redirector1)は、スイッチ116(SW1)のマルチキャストアドレス1に対して前記パケットを送信する。この場合、共有メモリ管理テーブル1001の書き込み先アドレスの書き込み未完了フラグは「1」であり、書き込み未完了を示す(符号1101)。
次に、ステップS503において、プロセッサ122(MP2)は、共有メモリ管理テーブル1001の書き込み未完了フラグをクリアするデータを格納したパケットを、図12に示すように、共有メモリへ送信した書き込みデータパケットと同じ経路で送信する(符号1202)。つまり、前記フラグをクリアするパケットを、パケット方向転換手段107(Redirector1)を介して、スイッチ116(SW1)のマルチキャストアドレス1に対して送信する。
その結果、共有メモリ管理テーブル1001の書き込み先アドレスの書き込み未完了フラグは「1」から「0」へ更新される(符号1201)。共有メモリ115(SM1)に対しても、前記フラグをクリアするパケットがマルチキャストされるが、プロセッサ112(MP1)は対象アドレスに書き込みをしていないので、影響を受けない。
以上説明したように、本発明の実施の形態1では、各プロセッサが直接主記憶にデータを書き込む場合に比べて、共有メモリ書き込みデータパケットが経由するデータ経路長が長くなるので、書き込みに時間がかかる。すると、プロセッサが共有メモリからデータを読み出そうとした場合、読み出し対象データが書き込み途中である可能性がある。
そこで書き込み未完了フラグを使用することにより、プロセッサ112(MP1)、122(MP2)は、共有メモリ115(SM1)、125(SM2)への書き込みの状態を調べることができる。次に、共有メモリからのデータ読み出し手順について説明する。
図13から図17により、共有メモリ115(SM1)、125(SM2)からプロセッサ112(MP1)、122(MP2)への読み出し手順を説明する。
図13は、共有メモリ115(SM1)、125(SM2)からプロセッサ112(MP1)、122(MP2)への読み出し時に使用するデータ転送経路を示す図である。上述の通り、共有メモリ115(SM1)と共有メモリ125(SM2)に格納されるデータの内容は、その書き込み順序を含めて一致している。
従って、プロセッサ112(MP1)、122(MP2)は、それぞれの主記憶113(MEM1)、123(MEM2)にアクセスすることで、共有メモリからデータを読み出すことができる。つまり、図13に示すように、プロセッサ112(MP1)は共有メモリ115(SM1)に直接アクセスし(符号1301)、プロセッサ122(MP2)は共有メモリ125(SM2)に直接アクセスする(符号1302)。
図14から図17により、共有メモリ115(SM1)からプロセッサ112(MP1)への読み出しの手順を説明する。図14は読み出し手順のフローチャートである。共有メモリ125(SM2)からプロセッサ122(MP2)への読み出し手順も、図14のフローチャートに従う。読み出しに際して、共有メモリへの書き込み時と同様に、図6の主記憶113(MEM1)内に格納される共有メモリ管理テーブル600を使用する。図15から図17は、図14のフローチャートの各ステップにおける、共有メモリからの読み出しパケットのデータ転送経路と、共有メモリ管理テーブル600の内容について示す図である。
図14のフローチャートのステップS1401において、プロセッサ112(MP1)は、共有メモリ管理テーブル600から、読み出し先共有メモリアドレスの書き込み未完了フラグを読み出す。この場合は、図15に示すように、プロセッサ112(MP1)は主記憶113(MEM1)に直接アクセスして(符号1502)、共有メモリ管理テーブル600から書き込み未完了フラグ(符号1501)を読み出す。プロセッサ112(MP1)は、読み出した書き込み先アドレスの書き込み未完了フラグが「0」か「1」、つまりは書き込み完了か未完了かを判断する。書き込み未完了フラグが「0」(書き込み完了)の場合はステップS1403へ進み、書き込み未完了フラグが「1」(書き込み未完了)の場合はステップS1402へ進む。
次に、ステップS1402において、プロセッサ112(MP1)は、共有メモリ管理テーブル600の読み出し先アドレスの書き込み未完了フラグが「1」から「0」へ更新されるのを待つ(図16の符号1601)。
次に、ステップS1403において、読み出し先アドレスの書き込み未完了フラグの「0」(書き込み完了)への更新(図17の符号1701)を検出したプロセッサ112(MP1)は、共有メモリ115(SM1)から所望のデータを読み出す。この場合、プロセッサ112は、図17に示すように、直接主記憶113(MEM1)内の共有メモリ115(SM1)にアクセスする(符号1702)。
以上説明したように、本発明の実施の形態1のストレージ装置では、2個のプロセッサ112(MP1)、122(MP2)の各主記憶113(MEM1)、123(MEM2)に格納された2個の共有メモリ115(SM1)、125(SM2)の内容を、書込込み順序を含めて、一致させることができる。さらに、共有メモリ115(SM1)、125(SM2)からプロセッサ112(MP1)、122(MP2)への読み出しにおいては、各プロセッサの主記憶アクセスにより、共有メモリのデータを読み出し可能なので、アクセス時間を短縮することができる。
具体的には、従来技術でのプロセッサ122(MP2)は、主記憶113(MEM1)に格納された共有メモリ115(SM1)の内容を読み出さなければならなかった。そのため、代行読み出し処理の要求のプロセッサ112(MP1)への送信、プロセッサ112(MP1)での共有メモリ115(SM1)内容の読み出し、読み出しデータのプロセッサ122(MP2)への送信という動作が必要であった。
その動作に要する時間は、スイッチでの伝搬遅延時間(約200nsec/スイッチ*4スイッチ(スイッチ116及びスイッチ126の往復))及び共有メモリ115(SM1)内容の読み出し時間((約200nsec)の計約1000nsecである。一方、本発明では、プロセッサ122(MP2)が、直接、主記憶123(MEM2)に格納された共有メモリ125(SM2)の内容を読み出して所望のデータを取得できるのでその所要時間は5分の1の約200nsecに短縮できる。
<実施例2>
以下、図18から図20を参照して、実施例2に係るストレージ装置とその動作について説明する。実施例2は、スイッチ126(SW2)もマルチキャスト機能1806を備え、且つスイッチ126(SW2)にパケット方向転換手段1807(Redirector2)を接続することにより、2個の共有メモリ115(SM1)、125(SM2)への書き込みの負荷を2個のスイッチ間で分散させることを特徴とする。ただし、書き込み順序の一致が必要な制御情報は、同じマルチキャスト機能を使用して、共有メモリへ書き込むことにする。
スイッチ126(SW2)では、アップストリームポート1801に接続されたプロセッサ122(MP2)(詳細にはプロセッサが内蔵するルートコンプレックス(図示せず))と、非透過性ブリッジ127(NT2)が同じマルチキャストグループに設定される。さらに、パケット方向転換手段1807(Redirector2)は、そのグループのマルチキャストアドレス(マルチキャストアドレス2とする)に、受信パケットを転送する。
図18は、プロセッサ112(MP1)が、NTリンク105とパケット方向転換手段1807(Redirector2)を介して、スイッチ126(SW2)のマルチキャスト機能1806(MC2)へパケットを送信するデータ転送経路を示す。
プロセッサ112(MP1)が、マルチキャスト機能106(MC1)を使って、共有メモリ115(SM1)、125(SM2)にパケットを送信するデータ転送経路は、図3に示した。
プロセッサ122(MP2)が、マルチキャスト機能106(MC1)を使って、共有メモリ115(SM1)、125(SM2)にパケットを送信するデータ転送経路は、図4に示した。
プロセッサ122(MP2)が、マルチキャスト機能1806(MC2)を使って、共有メモリ115(SM1)、125(SM2)にパケットを送信するデータ転送経路は、プロセッサ112(MP1)をプロセッサ122(MP2)に、マルチキャスト機能106(MC1)をマルチキャスト機能1806(MC2)に置き換えれば、図3と同様である。
図19は、実施例2に係る共有メモリ管理テーブルを示す図である。図19において、共有メモリ管理テーブル1900は、共有メモリアドレス1901に対する送信先マルチキャスト情報1905、及び書き込み未完了フラグ1902を格納する。送信先マルチキャスト情報が「0」の場合、プロセッサ112(MP1)は、スイッチ116(SW1)のマルチキャスト機能106(MC1)を使って共有メモリ115(SM1)、125(SM2)へパケットを送信する。それに対して、送信先マルチキャスト情報が「1」の場合、プロセッサ112(MP1)は、スイッチ126(SW2)のマルチキャスト機能1806を使って共有メモリ115(SM1)、125(SM2)へパケットを送信する。
書き込み未完了フラグが「0」の場合は、その共有メモリアドレスへの書き込みが完了していることを示す。それに対して、書き込み未完了フラグが「1」の場合は、その共有メモリアドレスへの書き込みは未完了であることを示す。例えば、図19において、共有メモリアドレス「abcd」に対する書き込み未完了フラグは「0」なので(符号1903)、そのアドレスに対する書き込みは完了している。一方、共有メモリアドレス「efgh」に対する書き込み未完了フラグは「1」なので(符号1904)、そのアドレスに対する書き込みは未完了である。
図20は、実施例2に係るプロセッサから共有メモリへの書き込みのフローチャートを示す図である。図20のフローチャートのステップS2001において、プロセッサ112(MP1)は、共有メモリ管理テーブル1900から、書き込み先共有メモリアドレスの送信先マルチキャスト情報を読み出す。読み出した送信先マルチキャスト情報に従い、プロセッサ112(MP1)は、共有メモリへの書き込みデータを格納したパケットを、パケット方向転換手段107(Redirector1)とパケット方向転換手段1807(Redirector2)のどちらに送信するのかを決定する。パケットをパケット方向転換手段107(Redirector1)へ送信する場合は、マルチキャスト機能106が共有メモリへの書き込みデータを格納したパケットをマルチキャストする。パケットをパケット方向転換手段1807(Redirector2)へ送信する場合は、マルチキャスト機能1806が共有メモリへの書き込みデータを格納したパケットをマルチキャストする。
次に、ステップS2002において、プロセッサ112(MP1)は、共有メモリ管理テーブル1900において、書き込み先共有メモリアドレスの書き込み未完了フラグに「1」を書き込む。
次に、ステップS2003において、プロセッサ112(MP1)は、共有メモリへの書き込みデータを格納したパケットを、ステップS2001で読み出した送信先マルチキャスト情報に従って、送信する。つまり、送信先マルチキャスト情報が「0」ならば、マルチキャスト機能106(MC1)のマルチキャストグループのアドレスへ、「1」ならばマルチキャスト機能1806(MC2)のマルチキャストグループのアドレスへ、プロセッサ112(MP1)はパケットを送信する。
次に、ステップS2004において、プロセッサ112(MP1)は、共有メモリ管理テーブル1900の書き込み未完了フラグ1902をクリアするデータを格納したパケットを、共有メモリへ送信した書き込みデータパケットと同じ経路で送信する。
以上、説明したデータ転送経路で、プロセッサ112(MP1)、122(MP2)は、マルチキャスト機能106(MC1)または1806(MC2)を使って、共有メモリ115(SM1)、125(SM2)へ、共有メモリへの書き込みデータを格納したパケットを送信することができる。
<実施例3>
図21から図23は、実施例3に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。以下、図21から図23を参照して、実施例3に係るストレージ装置を説明する。実施例3は、実施例2に対して、スイッチ間を2本のNTリンクで接続することを特徴とする。
<2本のNTリンクを使った共有メモリへの書き込みその1>
図21では、図18の構成に対して、スイッチ116(SW1)は非透過性ブリッジ2102(NT3)を、スイッチ126(SW2)は非透過性ブリッジ2103(NT4)を、それぞれ備える。非透過性ブリッジ2102(NT3)と非透過性ブリッジ2103(NT4)は、NTリンク2101で接続されている。実施例2と同様に、スイッチ126(SW2)では、アップストリームポート1801に接続されたプロセッサ122(MP2)と、非透過性ブリッジ127(NT2)が同じマルチキャストグループに設定されている。
プロセッサ112(MP1)は、共有メモリへの書き込みに際し、書き込みデータを格納したパケットを、NTリンク2101を介してマルチキャスト機能1806(MC2)へ送信する(符号2104)。パケットを受信したマルチキャスト機能1806(MC2)は受信パケットを複製し、複製したパケットを共有メモリ115(SM1)へ送信(符号1804)するとともに、共有メモリ125(SM2)へも送信する(符号1805)。
図18では、プロセッサ112(MP1)がパケット方向転換手段1807(Redirector2)とマルチキャスト機能1806を使って共有メモリへのパケット送信を実施していたのに対して、図21では、パケット方向転換手段1807(Redirector2)を使用する代わりにNTリンク2101を使用することにより、2個の共有メモリへの書き込みを実現している。
<2本のNTリンクを使った共有メモリへの書き込みその2>
図22は、プロセッサ112(MP1)が、スイッチ126(SW2)に接続されたパケット方向転換手段1807(Redirector2)と、スイッチ126(SW2)のマルチキャスト機能1806(MC2)を使って、共有メモリへの書き込みを行う場合のデータ転送経路を示す。プロセッサ112(MP1)は、NTリンク2101を介して、共有メモリへの書き込みデータを格納したパケットをパケット方向転換手段1807(Redirector2)へ送信する(符号3601)。
パケット方向転換手段1807(Redirector2)は、受信したパケットをマルチキャスト機能1806(MC2)へ送信する(符号3602)。マルチキャスト機能1806(MC2)は、受信パケットを共有メモリ115(SM1)と125(SM2)へ送信する(符号1804、符号1805)。
同様に、プロセッサ122(MP2)が、NTリンク2101を介して、スイッチ116(SW1)に接続されたパケット方向転換手段107(Redirector1)と、スイッチ116(SW1)のマルチキャスト機能106(MC1)を使って、共有メモリへの書き込みを行うことも可能である。このようにスイッチ間を2本のNTリンクで接続した場合は、プロセッサがNTリンクを挟んで反対側のパケット方向転換手段とマルチキャスト機能を使って、2個の共有メモリへの書き込みを実現できる。
<2本のNTリンクの使い分け>
図23は、プロセッサ122(MP2)が、マルチキャスト機能106(MC1)を使って共有メモリへ書き込む場合のデータ転送経路を示す。プロセッサ122(MP2)は、NTリンク105を介してパケット方向転換手段107(Redirector1)にパケットを送信する(符号3701)。パケット方向転換手段107(Redirector1)は、受信したパケットをマルチキャスト機能106(MC1)へ送信する。マルチキャスト機能106(MC1)は、受信したパケットを、共有メモリ115(SM1)と125(SM2)へ送信する(符号3703、符号3704)。
プロセッサ112(MP1)が、マルチキャスト機能106(MC1)を使って共有メモリへ書き込む場合のデータ転送経路は、図示していないが、図3と同様であり、NTリンク105を使用する。
プロセッサ122(MP2)が、マルチキャスト機能1806(MC2)を使って共有メモリへ書き込む場合のデータ転送経路は、図示していないが、図3でプロセッサ112(MP1)をプロセッサ122(MP2)に置き換えた場合と同様であり、NTリンク105を使用する。つまり、プロセッサ122(MP2)は、パケット方向転換手段1807(Redirector2)にパケットを送信する。パケット方向転換手段1807(Redirector2)は、受信したパケットをマルチキャスト機能1806(MC2)へ送信する。マルチキャスト機能1806(MC2)は、受信したパケットを、共有メモリ115(SM1)と125(SM2)へ送信する。
プロセッサ112(MP1)が、マルチキャスト機能1806(MC2)を使って共有メモリへ書き込む場合のデータ転送経路は、図示していないが、図18と同様である。つまり、プロセッサ112(MP1)は、NTリンク105を介してパケット方向転換手段1807(Redirector2)にパケットを送信する。パケット方向転換手段1807(Redirector2)は、受信したパケットをマルチキャスト機能1806(MC2)へ送信する。マルチキャスト機能1806(MC2)は、受信したパケットを、共有メモリ115(SM1)と125(SM2)へ送信する。
以上述べた4通りの共有メモリ書き込みに関するデータ転送経路は、NTリンク105を使用するが、NTリンク2101は使用しない。その代わりにNTリンク2101は、クラスタ間でキャッシュメモリに格納されるユーザデータを転送するために使用することにする。共有メモリに格納する制御情報は数バイト程度の大きさであり、キャッシュメモリに格納するユーザデータは、数百からキロバイト以上の大きさである。従って、制御情報とユーザデータを同じリンクで転送すると、制御情報のデータ転送がユーザデータ転送の完了を待たされる場合がある。そこで、共有メモリへの書き込みはNTリンク105を使い、キャッシュメモリ間ユーザデータ転送はNTリンク2101を使うことにする。このように2本のNTリンクを使い分けることにより、共有メモリ書き込みにかかる時間を短縮することができる。
<実施例4>
以下、図24から図27を参照して、実施例4に係るストレージ装置を説明する。
図24は、非透過性ブリッジの動作を説明する図である。非透過性ブリッジ2209は、2個のエンドポイント2210と2211を含む。エンドポイント2210はPCIアドレス空間2201に属し、エンドポイント2211はPCIアドレス空間2202に属する。非透過性ブリッジ2209は、パケットを通過させるための、エンドポイント2210のベースアドレスで特定されるアドレスウィンドウ2205と、エンドポイント2211のベースアドレスで特定されるアドレスウィンドウ2207を備える。
PCIアドレス空間2201において、プロセッサ等のリクエスタがコンプリータとなるエンドポイント2210のアドレスウィンドウ2205内のアドレス(Address1)に向けて、パケット2203(TLP1)を送信する。同様に、PCIアドレス空間2202において、プロセッサ等のリクエスタが、コンプリータとなるエンドポイント2211のアドレスウィンドウ2207内のアドレス(Address3)に向けて、パケット2204(TLP2)を送信する。
非透過性ブリッジ2209は、2個のPCIアドレス空間2201と2202の間で、非透過性ブリッジ2209を通過するパケット2203(TLP1)および2204(TLP2)の送信先アドレスを変換する。例えば、パケット2203(TLP1)のPCIアドレス空間2201内の送信先アドレスAddress1を、PCIアドレス空間2202内のアドレス(Address2)に変換する。なお、透過性ブリッジは前述の通り、受信したパケットをそのまま通過させるブリッジである。
また、非透過性ブリッジ2209は、パケット2203(TLP1)とは逆の方向に進むパケット2204(TLP2)のPCIアドレス空間2202内の送信先アドレス(Address3)を、PCIアドレス空間2201内のアドレス(Address4)に変換する。
図25は、非透過性ブリッジとスイッチを組み合わせたパケット方向転換手段の実現方法を示す図である。PCI Expressスイッチは、図2で説明したように、パケットの送信先アドレスに従ってルーティングを行う。そこで、図25に示すように、非透過性ブリッジ2209とスイッチ2304のポート2306を接続する。さらに、非透過性ブリッジの変換アドレスとベースアドレスを同じに、言い換えるとアドレスウィンドウ2206とアドレスウィンドウ2207を等しく設定する。
非透過性ブリッジ2209は、非透過性ブリッジ2209に入力したパケット2301(TLP3)の送信先アドレスをAddress1からアドレスAddress2に変換したパケット2302(TLP4)を生成する。パケット2302(TLP4)はスイッチ2304に入力する。スイッチ2304は、パケット2302(TLP4)をその送信先アドレスに従い、非透過性ブリッジ2209のアドレスウィンドウ2207へ送信する。
非透過性ブリッジ2209は、非透過性ブリッジ2209に入力したパケット2302(TLP4)の送信先アドレスをAddress3からAddress4に変換したパケット2303(TLP5)を生成する。このようにして、非透過性ブリッジ2209とスイッチ2304により、パケットの方向転換が実現可能である。
さらに非透過性ブリッジ2209は、パケット方向転換に使用するアドレスウィンドウ2205〜2208のほかに、別のアドレスウィンドウ2307、2308を備える。アドレスウィンドウ2307に入力したパケットは、その送信先アドレス(Address5)をアドレスウィンドウ2308内のアドレス(Address6)に変換された後、スイッチ2304のポート2306以外のポート等に転送される。
PCIアドレス空間2201において、プロセッサ等のリクエスタが、アドレスウィンドウ2205とアドレスウィンドウ2307のどちらにパケットを送信するかによって、パケットが送信される経路を選択することができる。プロセッサがアドレスウィンドウ2205に向けてパケットを送信した場合は、そのパケットは方向転換してアドレスウィンドウ2208から出力される。それに対して、プロセッサがアドレスウィンドウ2307に向けてパケットを送信した場合は、そのパケットはスイッチ2304のポート2306以外のポートから出力されることになる。
図25では、非透過性ブリッジ2209とスイッチ2304を別のコンポーネントとして示した。図26のスイッチ116(SW1)、126(SW1)のように、スイッチが非透過性ブリッジを内蔵する場合は、スイッチ内部の透過性ブリッジと非透過性ブリッジが、スイッチ内部バスで接続される。
図26において、スイッチ126(SW2)は非透過性ブリッジ2402(NT5)を備える。スイッチ116(SW1)と非透過性ブリッジ2402(NT5)は、リンク2401で接続されている。ここで非透過性ブリッジ2402(NT5)とスイッチ126(SW2)は、それぞれ図25の非透過性ブリッジ2209とスイッチ2304に相当し、それらと同様な設定がなされている。従って、非透過性ブリッジ2402(NT5)は、パケット方向転換手段として機能する。言い換えると、図26における非透過性ブリッジ2402(NT5)は、図3のパケット方向転換手段107(Redirector1)に相当する。
図26は、プロセッサ112(MP1)から共有メモリ115(SM1)と125(SM2)への書き込みに使用するデータ転送経路を示す。共有メモリへの書き込みに際し、プロセッサ112(MP1)は、書き込みデータを格納したパケットを非透過性ブリッジ2402(NT5)へ送信する(符号2403)。非透過性ブリッジ2402(NT5)は、受信したパケットをマルチキャスト機能106(MC1)へ送信する。そして、マルチキャスト機能106(MC1)は、受信したパケットを、共有メモリ115(SM1)と125(SM2)へ送信する(符号2404、符号2405)。
図27は、プロセッサ122(MP2)から共有メモリ115(SM1)と125(SM2)への書き込みに使用するデータ転送経路を示す。共有メモリへの書き込みに際し、プロセッサ122(MP2)は、書き込みデータを格納したパケットを、NTリンク105を介して、非透過性ブリッジ2402(NT5)へ送信する(符号2501)。非透過性ブリッジ2402(NT5)は、受信したパケットをマルチキャスト機能106(MC1)へ送信する。そして、マルチキャスト機能106(MC1)は、受信したパケットを、共有メモリ115(SM1)と125(SM2)へ送信する(符号2404、符号2405)。
以上説明したように、実施例4では、非透過性ブリッジとスイッチを組合せることにより、パケット方向転換手段を実現することができる。その結果、実施例1と同様に、共有メモリ115(SM1)、125(SM2)の内容を、書込み順序を含めて、一致させることができる。
<実施例5>
図28から図32は、実施例5に係るストレージ装置のプロセッサから共有メモリへの書き込みデータ転送経路を示す図である。以下、図28から図32を参照して、実施例5に係るストレージ装置を説明する。
図28において、スイッチ116(SW1)は非透過性ブリッジ2602(NT6)を備え、スイッチ126(SW2)は非透過性ブリッジ2402(NT5)を備える。非透過性ブリッジ2402(NT5)と非透過性ブリッジ2602(NT6)は、NTリンク2601で接続されている。ここで非透過性ブリッジ2402(NT5)とスイッチ126(SW2)は、それぞれ図25の非透過性ブリッジ2209とスイッチ2304に相当し、それらと同様な設定がなされている。従って、非透過性ブリッジ2402(NT5)は、パケット方向転換手段として機能する。
同様に、非透過性ブリッジ2602(NT6)とスイッチ116(SW1)は、それぞれ図25の非透過性ブリッジ2209とスイッチ2304に相当し、それらと同様な設定がなされている。従って、非透過性ブリッジ2602(NT6)は、パケット方向転換手段として機能する。
言い換えると、図28における非透過性ブリッジ2402(NT5)は図21のパケット方向転換手段107(Redirector1)に、図28における非透過性ブリッジ2602(NT6)は図21のパケット方向転換手段1807(Redirector2)に、それぞれ相当する。更には、スイッチ116(SW1)とパケット方向転換手段107(Redirector1)を接続するリンクと、スイッチ126(SW2)とパケット方向転換手段1807(Redirector2)を接続するリンクが、同じNTリンク2601に相当する。
図28は、プロセッサ112(MP1)から共有メモリ115(SM1)、125(SM2)への書き込みに使用するデータ転送経路を示す。共有メモリへの書き込みに際し、プロセッサ112(MP1)は、書き込みデータを格納したパケットを非透過性ブリッジ2402(NT5)へ送信する(符号2603)。非透過性ブリッジ2402(NT5)は、受信したパケットをマルチキャスト機能106(MC1)へ送信する。そして、マルチキャスト機能106(MC1)は、受信したパケットを、共有メモリ115(SM1)と125(SM2)へ送信する(符号2604、符号2605)。
図29は、プロセッサ122(MP2)から共有メモリ115(SM1)、125(SM2)への書き込みに使用するデータ転送経路を示す。共有メモリへの書き込みに際し、プロセッサ122(MP2)は、書き込みデータを格納したパケットを非透過性ブリッジ2602(NT6)へ送信する(符号2701)。非透過性ブリッジ2602(NT6)は、受信したパケットをマルチキャスト機能1806(MC2)へ送信する。そして、マルチキャスト機能1806(MC2)は、受信したパケットを、共有メモリ115(SM1)と125(SM2)へ送信する(符号2702、符号2703)。
図30は、プロセッサ112(MP1)がスイッチ126(SW2)のマルチキャスト機能1806(MC2)を使って共有メモリへの書き込みに使用するデータ転送経路を示す。この場合、共有メモリへの書き込みデータを格納したパケットは、非透過性ブリッジ2402(NT5)、2602(NT6)で方向転換せずに通過する必要がある。そのため、非透過性ブリッジ2402(NT5)、2602(NT6)は、図25の非透過性ブリッジ2209と同様に複数のアドレスウィンドウを備える。そして、プロセッサ112(MP1)が、2個のスイッチのどちらのマルチキャスト機能を使うか(送信するパケットを方向転換させるか否か)の判断により、送信先のアドレスウィンドウを選択する。
共有メモリへの書き込みに際し、プロセッサ112(MP1)は、書き込みデータを格納したパケットを非透過性ブリッジ2402(NT5)の方向転換用ではないアドレスウィンドウへ送信する(符号4101)。非透過性ブリッジ2402(NT5)は、受信したパケットをマルチキャスト機能1806(MC2)へ送信する。そして、マルチキャスト機能1806(MC2)は、受信したパケットを、共有メモリ115(SM1)と125(SM2)へ送信する(符号2702、符号2703)。
図31は、プロセッサ122(MP2)がスイッチ116(SW1)のマルチキャスト機能106(MC1)を使って共有メモリへの書き込みに使用するデータ転送経路を示す。共有メモリへの書き込みに際し、プロセッサ122(MP2)は、書き込みデータを格納したパケットを非透過性ブリッジ2602(NT6)の方向転換用ではないアドレスウィンドウへ送信する(符号4201)。非透過性ブリッジ2602(NT6)は、受信したパケットをマルチキャスト機能106(MC1)へ送信する。そして、マルチキャスト機能106(MC1)は、受信したパケットを、共有メモリ115(SM1)と125(SM2)へ送信する(符号2604、符号2605)。
図32は、実施例5のストレージ装置において、プロセッサ112(MP1)からマルチキャスト機能106(MC1)へのパケット送信と、プロセッサ122(MP2)からマルチキャスト機能1806(MC2)へのパケット送信が同時に発生した場合を示す。このように2通りのパケット転送経路(符号2603、符号2703)を合成するとループ状になる場合、NTリンク2601上でデッドロックが発生する可能性がある。デッドロック防止のため、NTリンク2601は、2個の仮想チャネル(VC0とVC1)を備える。
非透過性ブリッジ2602(NT6)から非透過性ブリッジ2402(NT5)へのパケット送信では、NTリンク2601上で仮想チャネルVC0を使ってパケットを転送する。非透過性ブリッジ2402(NT5)から非透過性ブリッジ2602(NT6)へのパケット送信では、NTリンク2601上で仮想チャネルVC1を使ってパケットを転送する。これにより、2方向のパケットのデータ転送は論理的には独立したデータ転送になるので、デッドロックを回避することができる。
<実施例6>
以下、図33から図38を参照して、実施例6に係るストレージ装置を説明する。
図33は、パケット方向転換手段の構成例を示す。パケット方向転換手段2900は、非透過性ブリッジ2903とスイッチ2910で構成される。また、パケット方向転換手段2900は、2個のアップストリームポート2901と2902を備える。
非透過性ブリッジ2903は、内部にエンドポイント2908と2909を備える。スイッチ2910は、内部に透過性ブリッジ2904と2905を備える。透過性ブリッジ2904と2905は、内部バス2907で接続されている。エンドポイント2909と透過性ブリッジ2904は、内部バス2906で接続されている。
パケット方向転換手段2900の動作は、図25で説明した非透過性ブリッジ2209とスイッチ2304の組み合わせによるパケット方向転換手段の動作と同様である。つまり、アップストリームポート2901からエンドポイント2908の方向転換用アドレスウィンドウに入力したパケットは、スイッチ2910を介して方向転換されて、アップストリームポート2901から出力される。また、アップストリームポート2901からエンドポイント2908の方向転換用ではないアドレスウィンドウに入力したパケットは、方向転換されずに、アップストリームポート2902から出力される。
図34は、図3のパケット方向転換手段107(Redirector1)を、パケット方向転換手段2900で置換したストレージ装置の構成例を示す。パケット方向転換手段2900のアップストリームポート2902は、スイッチ116(SW1)のポート3001と接続されている。この接続は、データ転送経路として使用する他、パケット方向転換手段2900内のスイッチ2910およびエンドポイント2909を設定するためにも使用される。
更に、図34は、プロセッサ112(MP1)からパケット方向転換手段2900とマルチキャスト機能106(MC1)を使った共有メモリ115(SM1)、125(SM2)への書き込みのデータ転送経路を示す。プロセッサ112(MP1)は、共有メモリへの書き込みデータを格納したパケットを、パケット方向転換手段2900内エンドポイント2908の方向転換用アドレスウィンドウへ送信する(符号3002)。パケット方向転換手段2900は、受信したパケットを、マルチキャスト機能106(MC1)へ送信する(符号3003)。マルチキャスト機能106(MC1)は、受信したパケットを複製し、共有メモリ115(SM1)と共有メモリ125(SM2)へ送信する(符号305、符号306)。
プロセッサ122(MP2)からパケット方向転換手段2900とマルチキャスト機能106(MC1)を使った共有メモリ115(SM1)、125(SM2)への書き込みは、図4と同様である。
図35は、プロセッサ112(MP1)からパケット方向転換手段2900とマルチキャスト機能106(MC1)を使った共有メモリ115(SM1)、125(SM2)への書き込みのデータ転送経路の別の例を示す。プロセッサ112(MP1)は、共有メモリへの書き込みデータを格納したパケットを、パケット方向転換手段2900内エンドポイント2908の、方向転換用でないアドレスウィンドウへ送信する(符号3101)。
パケット方向転換手段2900は、受信したパケットを、スイッチ116(SW1)のポート3001を介して、マルチキャスト機能106(MC1)へ送信する(符号3102)。マルチキャスト機能106(MC1)は、受信したパケットを複製し、共有メモリ115(SM1)と共有メモリ125(SM2)へ送信する(符号305、符号306)。
図36は、プロセッサ112(MP1)からパケット方向転換手段2900とマルチキャスト機能106(MC1)を使った共有メモリ115(SM1)、125(SM2)への書き込みのデータ転送経路の、さらに別の例を示す。パケット方向転換手段2900は、アップストリームポート2902から入力したパケットに対して、その送信先アドレスをスイッチ116(SW1)のマルチキャスト機能106(MC1)のマルチキャストアドレスへ変換する。プロセッサ112(MP1)は、共有メモリへの書き込みデータを格納したパケットを、パケット方向転換手段2900のアップストリームポート2902へ、スイッチ116(SW1)のポート3001を介して送信する(符号3201)。
パケット方向転換手段2900は、受信したパケットを、パケット方向転換手段2900のアップストリームポート2901を介して、マルチキャスト機能106(MC1)へ送信する(3202)。マルチキャスト機能106(MC1)は、受信したパケットを複製し、共有メモリ115(SM1)と共有メモリ125(SM2)へ送信する(符号305、符号306)。
図37は、図34から図36の構成に対して、パケット方向転換手段2900と同じ機能を備えるパケット方向転換手段3300を、スイッチ126(SW2)に接続した、ストレージ装置の構成例を示す。図37の構成のストレージ装置は、実施例2の図18で説明したストレージ装置と同様に、2個のマルチキャスト機能106(MC1)と1806(MC2)間で、共有メモリに対する書き込み処理の負荷を分散させることができる。
図38は、図37の構成に対して、スイッチ116(SW1)は非透過性ブリッジ2102(NT3)を備え、スイッチ126(SW2)は非透過性ブリッジ2103(NT4)を備え、さらに非透過性ブリッジ2102(NT3)と非透過性ブリッジ2103(NT4)をNTリンク2101で接続した、ストレージ装置の構成例を示す。
図38の構成のストレージ装置は、実施例3の図23で説明したストレージ装置と同様に、NTリンク105を、共有メモリへの書き込みデータ(制御情報)を格納したパケットのデータ転送専用に使う。そして、NTリンク2101を、キャッシュメモリへ書き込むユーザデータを格納したパケットのデータ転送専用に使う。これにより、制御情報のデータ転送が、ユーザデータのキャッシュメモリへのデータ転送完了を待つ必要がなくなり、共有メモリへの書き込み時間を短縮させることができる。
<実施例7>
以下、図39及び図40を参照して、実施例7に係るストレージ装置を説明する。実施例7は、マルチキャスト機能とパケット方向転換手段との間で、共有メモリへの書き込みデータを格納したパケットが通過する順が、他の実施例とは異なる。図39は、プロセッサ112(MP1)が、スイッチ116(SW1)のマルチキャスト機能106(MC1)と、スイッチ116(SW1)に接続されたパケット方向転換手段107(Redirector1)を使って、共有メモリへの書き込みを行う場合のデータ転送経路を示す。
共有メモリへの書き込みに際し、プロセッサ112(MP1)は、書き込みデータを格納したパケットを、マルチキャスト機能106(MC1)のマルチキャストグループのアドレスへ送信する(符号3501)。スイッチ116(SW1)は、パケット方向転換手段107(Redirector1)と、非透過性ブリッジ117(NT1)が、同じマルチキャストグループに設定される。マルチキャスト機能106(MC1)は、受信したパケットを複製し、一つはパケット方向転換手段107(Redirector1)へ送信し(符号3502)、もう一つはNTリンク105を介して共有メモリ125(SM2)へ送信する(符号3503)。パケット方向転換手段107(Redirector1)は、受信したパケットを、共有メモリ115(SM1)へ送信する(符号3504)。
プロセッサ122(MP2)が、マルチキャスト機能1806(MC2)を使って共有メモリへ書き込む場合のデータ転送経路も、図示していないが、図39と同様である。つまり、共有メモリへの書き込みに際し、プロセッサ122(MP2)は、書き込みデータを格納したパケットを、マルチキャスト機能1806(MC2)のマルチキャストグループのアドレスへ送信する。スイッチ126(SW2)は、パケット方向転換手段1807(Redirector2)と、非透過性ブリッジ127(NT2)が、同じマルチキャストグループに設定される。マルチキャスト機能1806(MC2)は、受信したパケットを複製し、一つはパケット方向転換手段1807(Redirector2)へ送信し、もう一つはNTリンク105を介して共有メモリ115(SM1)へ送信する。パケット方向転換手段1807(Redirector2)は、受信したパケットを、共有メモリ125(SM2)へ送信する。
図40は、プロセッサ122(MP2)が、スイッチ116(SW1)のマルチキャスト機能106(MC1)と、スイッチ116(SW1)に接続されたパケット方向転換手段107(Redirector1)を使って、共有メモリへの書き込みを行う場合のデータ転送経路を示す。共有メモリへの書き込みに際し、プロセッサ122(MP2)は、書き込みデータを格納したパケットを、NTリンク2101を介してマルチキャスト機能106(MC1)のマルチキャストグループのアドレスへ送信する(符号4301)。マルチキャスト機能106(MC1)は、受信したパケットを複製し、一つはパケット方向転換手段107(Redirector1)へ送信し(符号3502)、もう一つはNTリンク105を介して共有メモリ125(SM2)へ送信する(符号3503)。パケット方向転換手段107(Redirector1)は、受信したパケットを、共有メモリ115(SM1)へ送信する(符号3504)。
プロセッサ112(MP1)が、マルチキャスト機能1806(MC2)を使って共有メモリへ書き込む場合のデータ転送経路は図示していないが、図40と同様の動作で転送が可能である。つまり、共有メモリへの書き込みに際し、プロセッサ112(MP1)は、書き込みデータを格納したパケットを、NTリンク2101を介してマルチキャスト機能1806(MC2)のマルチキャストグループのアドレスへ送信する。マルチキャスト機能1806(MC2)は、受信したパケットを複製し、一つはパケット方向転換手段1807(Redirector2)へ送信し、もう一つはNTリンク105を介して共有メモリ115(SM1)へ送信する。パケット方向転換手段1807(Redirector2)は、受信したパケットを、共有メモリ125(SM2)へ送信する。このように、マルチキャスト機能を先に、パケット方向転換手段を後に、パケットを通過させた場合でも、順序を一致させて2個の共有メモリへ書き込むことができる。
<実施例8>
以下、図41から図43を参照して、実施例8に係るストレージ装置を説明する。図41は、2個のクラスタ111(Cluster1)、121(Cluster2)の連携動作の一例を示す。上位装置3801は、ストレージ装置100内の2個の論理ボリューム3802(LU1)と3803(LU2)にアクセスしている。ストレージ装置100は、2個のクラスタ間でI/O処理に関する負荷を分散している。例えば、論理ボリューム3802(LU1)に関するI/O処理は、クラスタ111(Cluster1)内のプロセッサ112(MP1)が行い(符号3804)、論理ボリューム3803(LU2)に関するI/O処理は、クラスタ121(Cluster2)内のプロセッサ122(MP2)が行う(符号3805)。
プロセッサ112(MP1)は、I/O処理に伴い、共有メモリ115(SM1)内の制御情報3806を参照し、共有メモリ115(SM1)、125(SM2)内の制御情報3806、3807を更新する。プロセッサ122(MP2)は、I/O処理に伴い、共有メモリ125(SM2)内の制御情報3807を参照し、共有メモリ115(SM1)、125(SM2)内の制御情報3806、3807を更新する。
図42は、2個のクラスタ111(Cluster1)、121(Cluster1)の連携動作の別の例を示す。上位装置3901は、ストレージ装置100内の論理ボリューム3802(LU1)に、フロントエンドインターフェース118(FEIF1)とフロントエンドインターフェース128(FEIF2)を介してアクセスしている。クラスタ111(Cluster1)とクラスタ121(Cluster2)は、両方とも論理ボリューム3802(LU1)に対するI/O処理(符号3804、符号3902)を行う。
図41の場合と同様に、プロセッサ112(MP1)は、I/O処理に伴い、共有メモリ115(SM1)内の制御情報3806を参照し、共有メモリ115(SM1)、125(SM2)内の制御情報3806、3807を更新する。プロセッサ122(MP2)は、I/O処理に伴い、共有メモリ125(SM2)内の制御情報3807を参照し、共有メモリ115(SM1)、125(SM2)内の制御情報3806、3807を更新する。
図43は、2個のクラスタのそれぞれにおけるバックアップ動作を示す。クラスタ111(Cluster1)において、プロセッサ112(MP1)がバックアッププログラム4003を実行し、リモートサイト4001へ、バックアップ処理を行っている。クラスタ121(Cluster2)においても同様に、プロセッサ122(MP2)がバックアッププログラム4004を実行し、リモートサイト4002へ、バックアップ処理を行っている。これらバックアップ処理の対象には、共有メモリ115と125(SM1、SM2)に格納されている制御情報も含まれる。
実施例8のストレージ装置100は、2個のクラスタが図41または図42のように、連携して動作し、共有メモリ内の制御情報を頻繁に更新する。しかしながら、本発明の効果により、制御情報3806と3807の内容は、データの書き込み順序まで含めて一致させることができる。その結果、クラスタ111(Cluster1)とクラスタ121(Cluster2)が、それぞれリモートサイト4001とリモートサイト4002に作成するバックアップデータは、制御情報の書き込み順序を含めて一致させることができる。
以上説明したように、本発明のストレージ装置では、2個のプロセッサの各主記憶に格納された2個の共有メモリの内容を、書込み順序を含めて、一致させることができる。さらに、共有メモリからプロセッサへの読み出しにおいては、各プロセッサが近接した主記憶へ直接アクセスし共有メモリのデータを読み出せるので、アクセス時間を短縮することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発
明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可
能であることは言うまでもない。
本発明は、ストレージコントローラ内部ネットワークにPCI Expressを適用したストレージ装置のみならず、二重化共有メモリを備える大型コンピュータ、汎用コンピュータ、サーバなどの情報処理装置や計算機システムなどに対しても広く適用が可能である。
100 ストレージ装置
101 ストレージコントローラ
102 ディスクアレイ
103、104 上位装置(Host)
106 マルチキャスト機能
107 パケット方向転換手段(Redirector)
111、121 クラスタ
112、122 プロセッサ
113、123 主記憶(MEM1、MEM2)
114、124 キャッシュメモリ(CM1、CM2)
115、125 共有メモリ(SM1、SM2)
116、126 スイッチ(PCI Expressスイッチ)
117、127 非透過性ブリッジ
118、128 フロントエンドインターフェース
119、129 バックエンドインターフェース
105 NT(Non Transparent)リンク
200 スイッチ
201 アップストリームポート
202、203 ダウンストリームポート
204、205、206 透過性ブリッジ
207 仮想PCIバス
208 PCIアドレス空間
209、210、211 通過アドレス範囲
212、213、214 マルチキャストアドレス
301 アップストリームポート
302、307 ポート
600、1001、1900 共有メモリ管理テーブル
601 共有メモリアドレス
602 書き込み未完了フラグ
603、604 書き込み未完了フラグ状態
1801 アップストリームポート
1806 マルチキャスト機能
1807、2900 パケット方向転換手段
2101 NTリンク
2102、2103 非透過性ブリッジ
2209、2402、2602、2903非透過性ブリッジ
2904、2905 透過性ブリッジ
2210、2211 エンドポイント
2201、2202 PCIアドレス空間
2205、2206、2207、2208、2307、2308 アドレスウィンドウ
2203、2204、2301、2302、2303 パケット
2304、2910 スイッチ
2306、3001 ポート
2401、2601 リンク
2901、2902 アップストリームポート
2907 内部バス
2908、2909 エンドポイント
3801、3901 上位装置
3802、3803 論理ボリューム
3806、3807 制御情報
4001、4002 リモートサイト
4003、4004 バックアッププログラム

Claims (16)

  1. ストレージコントローラを備えるストレージ装置であって、
    前記ストレージコントローラは、
    第1のプロセッサと、
    前記第1のプロセッサに接続された第1のメモリと、
    前記第1のプロセッサに接続され、第1のマルチキャスト機能と第1の非透過性ブリッジを備える第1のスイッチと、
    第2のプロセッサと、
    前記第2のプロセッサに接続された第2のメモリと、
    前記第2のプロセッサに接続され、第2の非透過性ブリッジを備える第2のスイッチと、
    を備え、
    前記第1の非透過性ブリッジと前記第2の非透過性ブリッジは第1のリンクで接続され、
    前記第1のメモリと前記第2のメモリ内にユーザデータを格納するキャッシュメモリと制御情報を格納する二重化共有メモリが構成され、
    前記ストレージコントローラは、更に前記第1のスイッチに接続された第1のパケット方向転換手段を備え、
    前記第1のスイッチでは、前記第1のプロセッサと前記第1の非透過性ブリッジとが第1のマルチキャストグループに設定され、
    前記第1のパケット方向転換手段は、受信したパケットを、受信した順番で前記第1のマルチキャストグループのアドレスへ転送し、
    前記第1のプロセッサは、パケットを前記第1のパケット方向転換手段に送信することにより前記二重化共有メモリへの書き込みを実行する、ことを特徴とするストレージ装置。
  2. 前記第2のスイッチは第2のマルチキャスト機能を備え、
    前記第2のスイッチに第2のパケット方向転換手段が接続され、
    前記第2のスイッチでは、前記第2のプロセッサと前記第2の非透過性ブリッジとが第2のマルチキャストグループに設定され、
    前記第2のパケット方向転換手段は、受信したパケットを、受信した順番で前記第2のマルチキャストグループのアドレスへ転送し、
    前記第1のプロセッサは、パケットを前記第1のパケット方向転換手段または前記第2のパケット方向転換手段に送信することにより前記二重化共有メモリへの書き込みを実行し、
    前記第2のプロセッサは、パケットを前記第1のパケット方向転換手段または前記第2のパケット方向転換手段に送信することにより前記二重化共有メモリへの書き込みを実行する、ことを特徴とする請求項1記載のストレージ装置。
  3. 前記第1のスイッチは第3の非透過性ブリッジを備え、
    前記第2のスイッチは第4の非透過性ブリッジを備え、
    前記第3の非透過性ブリッジと前記第4の非透過性ブリッジは第2のリンクで接続され、
    前記第1のプロセッサまたは前記第2のプロセッサから前記キャッシュメモリへの書き込みには前記第2のリンクが使用され、
    前記第1のプロセッサまたは前記第2のプロセッサから前記二重化共有メモリへの書き込みには前記第1のリンクが使用されること、を特徴とする請求項2記載のストレージ装置。
  4. 前記第1のパケット方向転換手段は、前記第2のスイッチに内蔵された第5の非透過性ブリッジである、ことを特徴とする請求項1記載のストレージ装置。
  5. 前記第2のパケット方向転換手段は、第1のスイッチに内蔵された第6の非透過性ブリッジであり、
    前記第1のスイッチと前記第5の非透過性ブリッジを接続するリンクと、前記第2のスイッチと前記第6の非透過性ブリッジを接続するリンクが同じ第3のリンクである、ことを特徴とする請求項2記載のストレージ装置。
  6. 前記第3のリンクは第1の仮想チャネルと第2の仮想チャネルを備え、前記第1のプロセッサが前記第5の非透過性ブリッジにパケットを送信する場合には前記第1の仮想チャネルを使用し、前記第2のプロセッサが前記第6の非透過性ブリッジにパケットを送信する場合には前記第2の仮想チャネルを使用する、ことを特徴とする請求項5記載のストレージ装置。
  7. 前記第1のパケット方向転換手段は第7の非透過性ブリッジを備えた第3のスイッチであり、前記第3のスイッチの、前記第7の非透過性ブリッジに対応するポートを含む2個のポートが前記第1のスイッチと接続される、ことを特徴とする請求項1記載のストレージ装置。
  8. 前記第2のパケット方向転換手段は第8の非透過性ブリッジを備えた第4のスイッチであり、前記第4のスイッチの、前記第8の非透過性ブリッジに対応するポートを含む2個のポートが前記第2のスイッチと接続される、ことを特徴とする請求項2記載のストレージ装置。
  9. 前記第1のスイッチは第3の非透過性ブリッジを備え、
    前記第2のスイッチは第4の非透過性ブリッジを備え、
    前記第3の非透過性ブリッジと前記第4の非透過性ブリッジは第2のリンクで接続され、
    前記第1のプロセッサまたは前記第2のプロセッサから前記キャッシュメモリへの書き込みには前記第2のリンクが使用され、
    前記第1のプロセッサまたは前記第2のプロセッサから前記二重化共有メモリへの書き込みには前記第1のリンクが使用される、ことを特徴とする請求項8記載のストレージ装置。
  10. 前記二重化共有メモリから制御情報を読み出す場合、前記第1のプロセッサは前記第1のメモリから読み出し、前記第2のプロセッサは前記第2のメモリから読み出す、ことを特徴とする請求項1記載のストレージ装置。
  11. 前記第1のプロセッサから前記二重化共有メモリへの書き込み実行状態を管理する第1のテーブルを前記第1のメモリに備え、前記第2のプロセッサから前記二重化共有メモリへの書き込み実行状態を管理する第2のテーブルを前記第2のメモリにそれぞれ備える、ことを特徴とする請求項1記載のストレージ装置。
  12. 前記第1のプロセッサは、
    前記第1のテーブルに前記制御情報に関連する書き込み未完了フラグを設定し、
    前記制御情報を格納したパケットを送信し、
    前記制御情報を格納したパケットを送信したのと同じデータ転送経路で、前記書き込み未完了フラグをクリアするためのデータを格納したパケットを送信し、
    前記第2のプロセッサは、
    前記第2のテーブルに前記制御情報に関連する書き込み未完了フラグを設定し、
    前記制御情報を格納したパケットを送信し、
    前記制御情報を格納したパケットを送信したのと同じデータ転送経路で、前記書き込み未完了フラグをクリアするためのデータを格納したパケットを送信する、ことを特徴とする請求項11記載のストレージ装置。
  13. 前記第1のプロセッサから前記二重化共有メモリへの書き込み実行状態を管理する第1のテーブルを前記第1のメモリに備え、
    前記第2のプロセッサから前記二重化共有メモリへの書き込み実行状態を管理する第2のテーブルを前記第2のメモリに備え、
    前記第1のプロセッサは、
    前記制御情報を格納したパケットの送信先を前記第1のパケット方向転換手段または前記第2のマルチキャスト機能のどちらに送信するかを判定し、
    前記第1のテーブルに前記制御情報に関連する書き込み未完了フラグを設定し、
    前記制御情報を格納したパケットを送信し、
    前記制御情報を格納したパケットを送信したのと同じデータ転送経路で、前記書き込み未完了フラグをクリアするためのデータを格納したパケットを送信し、
    前記第2のプロセッサは、
    前記制御情報を格納したパケットの送信先を前記第2のパケット方向転換手段または前記第1のマルチキャスト機能のどちらに送信するかを判定し、
    前記第2のテーブルに前記制御情報に関連する書き込み未完了フラグを設定し、
    前記制御情報を格納したパケットを送信し、
    前記制御情報を格納したパケットを送信したのと同じデータ転送経路で、前記書き込み未完了フラグをクリアするためのデータを格納したパケットを送信する、ことを特徴とする請求項2記載のストレージ装置。
  14. 前記第1のプロセッサは、
    前記制御情報に関連する書き込み未完了フラグを前記第1のテーブルから読み出し、
    前記書き込み未完了フラグが書き込み完了状態を示す場合に、前記第1のメモリから前記制御情報を読み出し、
    前記第2のプロセッサは、
    前記制御情報に関連する書き込み未完了フラグを前記第2のテーブルから読み出し、
    前記書き込み未完了フラグが書き込み完了状態を示す場合に、前記第2のメモリから前記制御情報を読み出す、ことを特徴とする請求項12記載のストレージ装置。
  15. 前記書き込み未完了フラグが書き込み未完了状態を示す場合に、前記第1のプロセッサは前記書き込み未完了フラグが書き込み完了を示すまで前記第1のメモリから前記制御情報の読み出しを延期し、前記第2のプロセッサは前記書き込み未完了フラグが書き込み完了を示すまで前記第2のメモリから前記制御情報の読み出しを延期する、ことを特徴とする請求項14記載のストレージ装置。
  16. ストレージコントローラを備えるストレージ装置の二重化共有メモリアクセス方法であって、
    前記ストレージコントローラは、
    第1のプロセッサと、
    前記第1のプロセッサに接続された第1のメモリと、
    前記第1のプロセッサに接続され、第1のマルチキャスト機能と第1の非透過性ブリッジを備える第1のスイッチと、
    第2のプロセッサと、
    前記第2のプロセッサに接続された第2のメモリと、
    前記第2のプロセッサに接続され、第2の非透過性ブリッジを備える第2のスイッチと、
    前記第1のスイッチに接続された第1のパケット方向転換手段を備え、
    前記第1の非透過性ブリッジと前記第2の非透過性ブリッジを第1のリンクで接続し、
    前記第1のメモリと前記第2のメモリ内にユーザデータを格納するキャッシュメモリと制御情報を格納する二重化共有メモリを構成し、
    前記第1のスイッチにおいて、前記第1のプロセッサと前記第1の非透過性ブリッジを同じマルチキャストグループに設定し、
    前記第1のパケット方向転換手段により、受信したパケットを、受信した順番で前記マルチキャストグループのアドレスへ転送し、
    前記第1のプロセッサにより、パケットを前記第1のパケット方向転換手段に送信することにより前記二重化共有メモリへの書き込みを実行する、ことを特徴とする二重化共有メモリアクセス方法。
JP2014524174A 2012-03-23 2012-03-23 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置 Expired - Fee Related JP5833756B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/002007 WO2013140459A1 (en) 2012-03-23 2012-03-23 Method for accessing mirrored shared memories and storage subsystem using method for accessing mirrored shared memories

Publications (2)

Publication Number Publication Date
JP2015501957A true JP2015501957A (ja) 2015-01-19
JP5833756B2 JP5833756B2 (ja) 2015-12-16

Family

ID=49213443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014524174A Expired - Fee Related JP5833756B2 (ja) 2012-03-23 2012-03-23 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置

Country Status (3)

Country Link
US (1) US8700856B2 (ja)
JP (1) JP5833756B2 (ja)
WO (1) WO2013140459A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018503156A (ja) * 2015-12-17 2018-02-01 華為技術有限公司Huawei Technologies Co.,Ltd. 書込み要求処理方法、プロセッサおよびコンピュータ
JP2018190368A (ja) * 2017-04-28 2018-11-29 株式会社日立製作所 ストレージシステム
JP2019511772A (ja) * 2016-02-17 2019-04-25 ハネウェル・インターナショナル・インコーポレーテッドHoneywell International Inc. 効率的な同時使用のためのメモリイメージの複製
JP2020113137A (ja) * 2019-01-15 2020-07-27 株式会社日立製作所 ストレージ装置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8189603B2 (en) 2005-10-04 2012-05-29 Mammen Thomas PCI express to PCI express based low latency interconnect scheme for clustering systems
CN103365259B (zh) * 2012-04-10 2016-09-28 泰科电子(上海)有限公司 控制线路模组、电气设备以及调制解调装置
US9189441B2 (en) * 2012-10-19 2015-11-17 Intel Corporation Dual casting PCIE inbound writes to memory and peer devices
WO2014081414A1 (en) * 2012-11-20 2014-05-30 Empire Technology Development Llc Multi-element solid-state storage device management
KR102007368B1 (ko) * 2012-12-17 2019-08-05 한국전자통신연구원 Pci 익스프레스 스위치 및 이를 이용한 컴퓨터 시스템
JP6107413B2 (ja) * 2013-05-22 2017-04-05 富士通株式会社 分析装置、ネットワークシステム、ポートの切り替え方法及びプログラム
US10152412B2 (en) * 2014-09-23 2018-12-11 Oracle International Corporation Smart flash cache logger
CN104881368B (zh) * 2015-05-07 2018-01-12 北京华胜天成软件技术有限公司 应用于双控存储系统的缓存同步方法及系统
JP6764927B2 (ja) 2016-03-01 2020-10-07 株式会社日立製作所 ストレージシステム、ストレージ装置、およびストレージシステムの制御方法
EP3469486B1 (en) 2016-06-10 2021-07-21 Liqid Inc. Multi-port interposer architectures in data storage systems
US10171257B2 (en) * 2016-06-22 2019-01-01 International Business Machines Corporation Updating data objects on a system
US9996273B1 (en) 2016-06-30 2018-06-12 EMC IP Holding Company LLC Storage system with data durability signaling for directly-addressable storage devices
US9996291B1 (en) * 2016-07-29 2018-06-12 EMC IP Holding Company LLC Storage system with solid-state storage device having enhanced write bandwidth operating mode
DE102016218280B4 (de) * 2016-09-22 2018-07-19 Infineon Technologies Ag Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen
US10402361B2 (en) * 2017-04-28 2019-09-03 Hitachi, Ltd. Storage system
US10795842B2 (en) 2017-05-08 2020-10-06 Liqid Inc. Fabric switched graphics modules within storage enclosures
JP7179489B2 (ja) * 2018-05-18 2022-11-29 キヤノン株式会社 ストレージシステム及びその制御方法、プログラム、並びに記憶制御システム
US11900004B2 (en) * 2018-12-07 2024-02-13 Lg Electronics Inc. Vehicle apparatus and control method
TWI704460B (zh) * 2019-01-19 2020-09-11 神雲科技股份有限公司 叢集式系統中維持記憶體共享方法
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications
CN111666231B (zh) * 2019-03-05 2023-02-10 佛山市顺德区顺达电脑厂有限公司 于丛集式系统中维持存储器共享方法
JP2023038548A (ja) 2021-09-07 2023-03-17 株式会社日立製作所 ストレージシステム
US12079154B2 (en) * 2023-01-10 2024-09-03 Dell Products, L.P. Non-transparent bridge selection

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010901A (ja) * 1998-06-19 2000-01-14 Hitachi Ltd ディスクアレイ制御装置
JP2000181891A (ja) * 1998-12-18 2000-06-30 Hitachi Ltd 共有メモリアクセス順序保証方式
US7340555B2 (en) * 2001-09-28 2008-03-04 Dot Hill Systems Corporation RAID system for performing efficient mirrored posted-write operations
US20110167189A1 (en) * 2009-07-24 2011-07-07 Hitachi, Ltd. Storage apparatus and its data transfer method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117409B2 (en) * 2006-11-22 2012-02-14 Hitachi, Ltd. Method and apparatus for backup and restore in a dynamic chunk allocation storage system
US20110238909A1 (en) * 2010-03-29 2011-09-29 Pankaj Kumar Multicasting Write Requests To Multiple Storage Controllers
US8429325B1 (en) * 2010-08-06 2013-04-23 Integrated Device Technology Inc. PCI express switch and method for multi-port non-transparent switching
US8554963B1 (en) * 2012-03-23 2013-10-08 DSSD, Inc. Storage system with multicast DMA and unified address space

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010901A (ja) * 1998-06-19 2000-01-14 Hitachi Ltd ディスクアレイ制御装置
JP2000181891A (ja) * 1998-12-18 2000-06-30 Hitachi Ltd 共有メモリアクセス順序保証方式
US7340555B2 (en) * 2001-09-28 2008-03-04 Dot Hill Systems Corporation RAID system for performing efficient mirrored posted-write operations
US20110167189A1 (en) * 2009-07-24 2011-07-07 Hitachi, Ltd. Storage apparatus and its data transfer method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018503156A (ja) * 2015-12-17 2018-02-01 華為技術有限公司Huawei Technologies Co.,Ltd. 書込み要求処理方法、プロセッサおよびコンピュータ
JP2019511772A (ja) * 2016-02-17 2019-04-25 ハネウェル・インターナショナル・インコーポレーテッドHoneywell International Inc. 効率的な同時使用のためのメモリイメージの複製
JP7053476B2 (ja) 2016-02-17 2022-04-12 ハネウェル・インターナショナル・インコーポレーテッド 効率的な同時使用のためのメモリイメージの複製
JP7053476B6 (ja) 2016-02-17 2022-05-16 ハネウェル・インターナショナル・インコーポレーテッド 効率的な同時使用のためのメモリイメージの複製
JP2018190368A (ja) * 2017-04-28 2018-11-29 株式会社日立製作所 ストレージシステム
JP2020113137A (ja) * 2019-01-15 2020-07-27 株式会社日立製作所 ストレージ装置

Also Published As

Publication number Publication date
WO2013140459A1 (en) 2013-09-26
JP5833756B2 (ja) 2015-12-16
US8700856B2 (en) 2014-04-15
US20130254487A1 (en) 2013-09-26

Similar Documents

Publication Publication Date Title
JP5833756B2 (ja) 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置
JP5957647B2 (ja) スケーラブルな記憶装置
US9052829B2 (en) Methods and structure for improved I/O shipping in a clustered storage system
US8589723B2 (en) Method and apparatus to provide a high availability solid state drive
US9213500B2 (en) Data processing method and device
US9542320B2 (en) Multi-node cache coherency with input output virtualization
JP6074056B2 (ja) 計算機システムおよびデータ制御方法
JP7135162B2 (ja) 情報処理システム、ストレージシステム及びデータ転送方法
US10970237B2 (en) Storage system
US20110145452A1 (en) Methods and apparatus for distribution of raid storage management over a sas domain
US10901626B1 (en) Storage device
WO2016101287A1 (zh) 一种存储系统数据分发的方法、分发装置与存储系统
US10831386B2 (en) Remote direct memory access
US10277678B2 (en) Method and an apparatus, and related computer-program products, for managing access request to one or more file systems
JP2008112399A (ja) ストレージ仮想化スイッチおよびコンピュータシステム
US10877674B2 (en) Determining layout templates identifying storage drives
KR20120084693A (ko) Sas 기반 반도체 저장 장치 메모리 디스크 유닛
US20170212692A1 (en) Reducing Read Access Latency by Straddling Pages Across Non-Volatile Memory Channels
JP2007310448A (ja) 計算機システム、管理計算機、および、ストレージシステム管理方法
US9921753B2 (en) Data replication across host systems via storage controller
US9990284B2 (en) Storage control device
WO2016088372A1 (ja) アクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法及びコンピュータ読み取り可能記録媒体
US10289576B2 (en) Storage system, storage apparatus, and communication method
JP2022105659A (ja) ストレージ装置
JP2006268708A (ja) 冗長接続構成を持つコンピュータシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150918

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151029

R150 Certificate of patent or registration of utility model

Ref document number: 5833756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees