JP2012504792A - 記憶制御装置及び記憶制御装置の制御方法 - Google Patents

記憶制御装置及び記憶制御装置の制御方法 Download PDF

Info

Publication number
JP2012504792A
JP2012504792A JP2011514949A JP2011514949A JP2012504792A JP 2012504792 A JP2012504792 A JP 2012504792A JP 2011514949 A JP2011514949 A JP 2011514949A JP 2011514949 A JP2011514949 A JP 2011514949A JP 2012504792 A JP2012504792 A JP 2012504792A
Authority
JP
Japan
Prior art keywords
microprocessor
control information
update
shared
local
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
JP2011514949A
Other languages
English (en)
Other versions
JP5198659B2 (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 JP2012504792A publication Critical patent/JP2012504792A/ja
Application granted granted Critical
Publication of JP5198659B2 publication Critical patent/JP5198659B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0815Cache consistency protocols
    • G06F12/0837Cache consistency protocols with software control, e.g. non-cacheable data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本発明の記憶制御装置は、パージメッセージの通信量を低減することができ、記憶制御装置の処理性能を高めることができる。各マイクロプロセッサは、共有メモリ内の制御情報を更新するたびにパージメッセージを作成して保存しておく。一連の更新処理が完了した後で、保存されたパージメッセージを各マイクロプロセッサに送信する。制御情報には、その性質に応じた属性が設定される。その属性に応じてキャッシュ制御及びパージ制御が実行される。

Description

本発明は、記憶制御装置及び記憶制御装置の制御方法に関する。
記憶制御装置は、ハードディスクドライブのような記憶装置を複数用いて、RAID(Redundant Arrays of Inexpensive Disks)に基づく記憶領域をホストコンピュータに提供する。記憶制御装置は、複数のマイクロプロセッサを備えている。各マイクロプロセッサは、共有メモリに記憶されているデータを共有する。マイクロプロセッサが共有メモリに直接アクセスしてデータを使用すると、処理時間がかかる。そこで、共有されるデータの一部を、マイクロプロセッサの近傍に配置されるローカルメモリにコピーして使用する構成が提案されている。
JP−A−2006−285778
従来技術では、いずれかのマイクロプロセッサが共有メモリ内のデータを更新した場合に、他のローカルメモリにコピーされているデータ(つまり、他のローカルメモリにキャッシュされているデータ)を破棄させる必要がある。大元のデータである共有メモリ内のデータが変更された場合、各ローカルメモリにコピーされているデータは古くなり、使用できないためである。
そこで、共有メモリ内のデータが更新された場合、そのデータ更新を行ったマイクロプロセッサから他の各マイクロプロセッサに向けて、ローカルメモリに記憶されたデータが使用できない旨を通知する。この通知を、ここではパージメッセージと呼ぶ。パージメッセージを受け取った他のマイクロプロセッサは、ローカルメモリにコピーされているデータが古くて使えないことを知る。従って、他のプロセッサは、共有メモリにアクセスして新しいデータを読出し、ローカルメモリに記憶させる。
各マイクロプロセッサが比較的高頻度で共有メモリ内のデータを更新すると、各マイクロプロセッサ間で多数のパージメッセージが交換される。従って、パージメッセージを作成したり、パージメッセージを送信したり、パージメッセージに基づいてローカルメモリ内のデータを破棄したり等の処理が多数行われる。
つまり、従来技術では、各マイクロプロセッサ間で多数のパージメッセージが通信されるため、パージメッセージ関連の処理がボトルネックになり易い。そのため、記憶制御装置の処理性能を向上させるのが難しいという問題がある。
そこで、本発明の目的は、複数のマイクロプロセッサ間で通信されるパージメッセージの量を低減することにより、処理性能を向上できるようにした記憶制御装置及び記憶制御装置の制御方法を提供することにある。本発明の他の目的は、共有メモリに記憶される情報を複数種類に分類し、各情報の性質に応じてパージメッセージの送信を制御することにより、処理性能を向上できるようにした記憶制御装置及び記憶制御装置の制御方法を提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明の第1観点に従う記憶制御装置は、ホストコンピュータと記憶装置との間のデータ入出力を制御する記憶制御装置であって、共有制御情報を記憶する共有メモリと、複数のマイクロプロセッサと、各マイクロプロセッサにそれぞれ対応して設けられるローカルメモリであって、共有メモリに記憶される共有制御情報のうち少なくとも一部がローカル制御情報としてコピーされる各ローカルメモリと、各マイクロプロセッサのうちの一つのマイクロプロセッサから他の各マイクロプロセッサに、または、特定の一つまたは複数のマイクロプロセッサに、向けて送信されるパージメッセージであって、ローカルメモリに記憶されているローカル制御情報が無効である旨を通知するためのパージメッセージを記憶するパージメッセージ記憶部と、各ローカル制御情報が共有制御情報に同期しているか否かを管理するための制御情報同期管理部と、を備え、各マイクロプロセッサは、共有制御情報を更新する場合に、パージメッセージを作成してパージメッセージ記憶部に記憶させ、さらに、共有制御情報の更新と非同期で、パージメッセージ記憶部に記憶されたパージメッセージを送信させる。
第2観点では、第1観点において、複数のマイクロプロセッサパッケージを備え、各マイクロプロセッサパッケージは、少なくとも一つのマイクロプロセッサと、少なくとも一つのローカルメモリと、少なくとも一つのパージメッセージ記憶部とを備えており、各マイクロプロセッサパッケージと共有メモリとは、スイッチを介して接続されており、
共有メモリには、共有制御情報に加えて、共有制御情報の更新状態を管理するための共有制御情報更新管理部が設けられており、
各ローカルメモリには、ローカル制御情報及びパージメッセージ記憶部に加えて、ローカル制御情報の更新状態を管理するためのローカル更新管理部と、共有制御情報更新管理部で管理されている更新状態を示す値のコピーを記憶する更新値記憶部とが記憶されており、
共有制御情報更新管理部は、各マイクロプロセッサパッケージ内の各マイクロプロセッサを識別するためのマイクロプロセッサ識別情報と、各マイクロプロセッサにより更新された回数を示すカウンタ値とを対応付けて管理しており、さらに、マイクロプロセッサにより共有制御情報が更新される場合に、更新元のマイクロプロセッサによって当該更新元のマイクロプロセッサに対応するカウンタ値が更新されるようになっており、
各ローカル更新管理部も、各マイクロプロセッサ識別情報毎にカウンタ値を対応付けて管理しており、さらに、各ローカル更新管理部に対応する各マイクロプロセッサがローカル制御情報を更新する場合に、その対応するマイクロプロセッサに関連するカウンタ値が更新されるようになっており、さらに、対応するマイクロプロセッサ以外の他のマイクロプロセッサに関連するパージメッセージに基づいて、他のマイクロプロセッサに対応するカウンタ値が更新されるようになっており、
各更新値記憶部に対応する各マイクロプロセッサが共有メモリ内の共有制御情報にアクセスした場合に、共有制御情報更新管理部で管理されている各カウンタ値が取得されて、それら取得された各カウンタ値が更新値記憶部に上書きで記憶されるようになっており、
共有メモリは、各マイクロプロセッサが各ローカルメモリにコピー可能な情報を記憶するための共有キャッシュ領域と、各マイクロプロセッサのうちオーナーとして設定されるオーナーマイクロプロセッサのみが、オーナーマイクロプロセッサ内のローカルメモリにコピー可能であり、かつ、オーナーマイクロプロセッサ以外の他のマイクロプロセッサはコピーできない情報を記憶するための排他キャッシュ領域と、各マイクロプロセッサのいずれもが各ローカルメモリにコピーできない情報を記憶するための非キャッシュ領域と、を備えており、
共有キャッシュ領域には、比較的更新頻度が少ないが複数のマイクロプロセッサから比較的高頻度でアクセスされ得る第1情報が記憶されるようになっており、
排他キャッシュ領域には、オーナーマイクロプロセッサが比較的高頻度に参照または更新する第2情報が記憶されるようになっており、
非キャッシュ領域には、複数のマイクロプロセッサから比較的高頻度で参照または更新される第3情報が記憶されるようになっており、
各マイクロプロセッサは、
共有キャッシュ領域に記憶されている情報を更新した場合には、更新のたびにパージメッセージを作成してパージメッセージ記憶部に記憶させ、一連の更新処理が完了した後で、パージメッセージ記憶部に記憶された各パージメッセージを他の各マイクロプロセッサにそれぞれ送信し、
排他キャッシュ領域に記憶されている情報を更新する場合において、自分がオーナーマイクロプロセッサである場合は、パージメッセージを作成せず、自分がオーナーマイクロプロセッサ以外の他のマイクロプロセッサである場合は、更新のたびにパージメッセージを作成してパージメッセージ記憶部に記憶させ、一連の更新処理が完了した後で、パージメッセージ記憶部に記憶された各パージメッセージをオーナーマイクロプロセッサのみに送信し、
非キャッシュ領域に記憶されている情報を更新した場合には、パージメッセージを作成しないようになっており、
さらに、各マイクロプロセッサは、共有制御情報のうち同一箇所の更新、または、連続する箇所の更新、または、重複する箇所の更新がされた場合には、複数の更新を統合するようにしてパージメッセージを送信させるようになっている。
第3観点では、第1観点において、各マイクロプロセッサは、制御情報同期管理部に基づいて各ローカル制御情報が共有制御情報に同期していると判定される場合は、対応する各ローカルメモリからローカル制御情報を使用し、制御情報同期管理部に基づいて各ローカル制御情報が共有制御情報に同期していないと判定される場合は、共有メモリ内の共有制御情報を使用する。
第4観点では、第1観点において、共有メモリには、共有制御情報に加えて、共有制御情報の更新状態を管理するための共有制御情報更新管理部が設けられており、各ローカルメモリには、ローカル制御情報及びパージメッセージ記憶部に加えて、ローカル制御情報の更新状態を管理するためのローカル更新管理部と、共有制御情報更新管理部で管理されている更新状態を示す値のコピーを記憶する更新値記憶部とが記憶されており、制御情報同期管理部は、共有制御情報更新管理部と、各ローカル更新管理部と、各更新値管理部とを備えて構成される。
第5観点では、第4観点において、共有制御情報更新管理部は、各マイクロプロセッサパッケージ内の各マイクロプロセッサを識別するためのマイクロプロセッサ識別情報と、各マイクロプロセッサにより更新された回数を示すカウンタ値とを対応付けて管理しており、さらに、マイクロプロセッサにより共有制御情報が更新される場合に、更新元のマイクロプロセッサによって当該更新元のマイクロプロセッサに対応するカウンタ値が更新されるようになっており、各ローカル更新管理部も、各マイクロプロセッサ識別情報毎にカウンタ値を対応付けて管理しており、さらに、各ローカル更新管理部に対応する各マイクロプロセッサがローカル制御情報を更新する場合に、その対応するマイクロプロセッサに関連するカウンタ値が更新されるようになっており、さらに、対応するマイクロプロセッサ以外の他のマイクロプロセッサに関連するパージメッセージに基づいて、他のマイクロプロセッサに対応するカウンタ値が更新されるようになっている。
第6観点では、第5観点において、各更新値記憶部に対応する各マイクロプロセッサが共有メモリ内の共有制御情報にアクセスした場合に、共有制御情報更新管理部で管理されている各カウンタ値が取得されて、それら取得された各カウンタ値が更新値記憶部に上書きで記憶されるようになっている。
第7観点では、第1観点において、共有メモリは、 各マイクロプロセッサが各ローカルメモリにコピー可能な情報を記憶するための共有キャッシュ領域と、各マイクロプロセッサのうちオーナーとして設定されるオーナーマイクロプロセッサのみが、オーナーマイクロプロセッサ内のローカルメモリにコピー可能であり、かつ、オーナーマイクロプロセッサ以外の他のマイクロプロセッサはコピーできない情報を記憶するための排他キャッシュ領域と、を備えている。
第8観点では、第1観点において、共有メモリは、各マイクロプロセッサが各ローカルメモリにコピー可能な情報を記憶するための共有キャッシュ領域と、各マイクロプロセッサのいずれもが各ローカルメモリにコピーできない情報を記憶するための非キャッシュ領域と、を備えている。
第9観点では、第1観点において、共有メモリは、各マイクロプロセッサのうちオーナーとして設定されるオーナーマイクロプロセッサのみが、オーナーマイクロプロセッサ内のローカルメモリにコピー可能であり、かつ、オーナーマイクロプロセッサ以外の他のマイクロプロセッサはコピーできない情報を記憶するための排他キャッシュ領域と、各マイクロプロセッサのいずれもが各ローカルメモリにコピーできない情報を記憶するための非キャッシュ領域と、を備えている。
第10観点では、第1観点において、共有メモリは、各マイクロプロセッサが各ローカルメモリにコピー可能な情報を記憶するための共有キャッシュ領域と、各マイクロプロセッサのうちオーナーとして設定されるオーナーマイクロプロセッサのみが、オーナーマイクロプロセッサ内のローカルメモリにコピー可能であり、かつ、オーナーマイクロプロセッサ以外の他のマイクロプロセッサはコピーできない情報を記憶するための排他キャッシュ領域と、各マイクロプロセッサのいずれもが各ローカルメモリにコピーできない情報を記憶するための非キャッシュ領域と、を備えている。
第11観点では、第10観点において、共有キャッシュ領域には、比較的更新頻度が少ないが複数のマイクロプロセッサから比較的高頻度でアクセスされ得る第1情報が記憶されるようになっており、排他キャッシュ領域には、オーナーマイクロプロセッサが比較的高頻度に参照または更新する第2情報が記憶されるようになっており、非キャッシュ領域には、複数のマイクロプロセッサから比較的高頻度で参照または更新される第3情報が記憶されるようになっている。
第12観点では、第10または第11観点のいずれかにおいて、各マイクロプロセッサは、共有キャッシュ領域に記憶されている情報を更新した場合には、更新のたびにパージメッセージを作成してパージメッセージ記憶部に記憶させ、一連の更新処理が完了した後で、パージメッセージ記憶部に記憶された各パージメッセージを他の各マイクロプロセッサにそれぞれ送信し、排他キャッシュ領域に記憶されている情報を更新する場合において、自分がオーナーマイクロプロセッサである場合は、パージメッセージを作成せず、自分がオーナーマイクロプロセッサ以外の他のマイクロプロセッサである場合は、更新のたびにパージメッセージを作成してパージメッセージ記憶部に記憶させ、一連の更新処理が完了した後で、パージメッセージ記憶部に記憶された各パージメッセージをオーナーマイクロプロセッサのみに送信し、非キャッシュ領域に記憶されている情報を更新した場合には、パージメッセージを作成しないようになっている。
第13観点では、第1観点において、各マイクロプロセッサは、共有制御情報のうち同一箇所の更新、または、連続する箇所の更新、または、重複する箇所の更新がされた場合に、複数の更新を統合するようにしてパージメッセージを送信させる。
第14観点では、第1観点において、各マイクロプロセッサは、他の各マイクロプロセッサが正常に監視しているか否かを監視しており、いずれかのマイクロプロセッサで障害が発生した場合には、共有制御情報更新管理部で管理されている各カウント値を取得して更新値記憶部に上書きで記憶し、障害の発生したマイクロプロセッサについて、ローカル更新管理部で管理されているカウント値と更新値管理部に記憶されているカウント値と異なるか否かを判定し、ローカル更新管理部で管理されているカウント値と更新値管理部に記憶されているカウント値とが異なる場合、ローカル更新管理部で管理されている障害の発生したマイクロプロセッサのカウント値を、更新値管理部内の対応するカウント値で上書きし、ローカルメモリにコピーされているローカル制御情報をクリアさせる。
第15観点に従う記憶制御装置の制御方法は、共有制御情報を記憶する共有メモリと、複数のマイクロプロセッサと、各マイクロプロセッサにそれぞれ対応して設けられるローカルメモリとを備える記憶制御装置の制御方法であって、各ローカルメモリには、共有メモリに記憶される共有制御情報のうち少なくとも一部がローカル制御情報としてコピーされており、共有制御情報を更新する場合には、更新元のマイクロプロセッサに対応するローカルメモリ以外の他の各ローカルメモリに記憶されているローカル制御情報が無効であることを示すパージメッセージを作成して保存し、共有制御情報を更新する一連の処理が完了した場合に、保存されているパージメッセージを他の各ローカルメモリに対応する各マイクロプロセッサに送信し、パージメッセージを受信した他の各マイクロプロセッサは、無効とされた箇所の情報を使用する場合に、共有メモリにアクセスして取得するようになっている。
さらに、本発明の観点は明示された以外に種々組み合わせることも可能であり、そのような組合せは本発明の範囲に含まれる。
本発明の実施形態を示す概念図である。 記憶制御装置のブロック図である。 ローカルメモリ及び共有メモリの構成を模式的に示す図である。 パージバッファの構成を示す図である。 パージメッセージを統合する様子を示す図である。 各更新クロックの関係を示す図である。 クロックの大小を判定する方法を示す図である。 パージメッセージの作成及び送信を示すフローチャートである。 第2実施例に係る記憶制御装置の要部を示すブロック図である。 キャッシュ属性管理テーブルを示す図である。 共有メモリに記憶されるデータの例を示す図である。 共有メモリにデータを書き込む処理を示すフローチャートである。 図12に続くフローチャートである。 パージメッセージを送信する処理を示すフローチャートである。 共有メモリからデータを読み出す処理を示すフローチャートである。 第3実施例に係る記憶制御装置で実行される、マイクロプロセッサに障害が発生した場合の処理を示すフローチャートである。 障害から回復したマイクロプロセッサによって実行される処理を示すフローチャートである。 第4実施例に係る記憶制御装置の要部を示すフローチャートである。
1:記憶制御装置
3:マイクロプロセッサパッケージ
4:共有メモリ
5:スイッチ
6:マイクロプロセッサ
7:ローカルメモリ
8A:共有キャッシュ領域
8B:排他キャッシュ領域
8C:非キャッシュ領域
10:記憶制御装置
110:フロントエンドパッケージ
120:マイクロプロセッサパッケージ
121:マイクロプロセッサ
122:ローカルメモリ
130:メモリパッケージ
131:共有メモリ
140:バックエンドパッケージ
151:記憶装置
図1は、本発明の実施形態の概要を示す説明図である。図1に示す構成は、本発明の範囲を限定するものではなく、図1に示す構成以外の構成も本発明の範囲に含まれる。本実施形態に係る記憶制御装置1は、ホストコンピュータ(以下、「ホスト」と略記)2に接続されている。ホスト2としては、例えば、サーバコンピュータ、メインフレームコンピュータ、エンジニアリングワークステーション、パーソナルコンピュータ等のコンピュータ装置を挙げることができる。
図1は、記憶制御装置1の要部を示している。記憶制御装置1は、複数のマイクロプロセッサパッケージ3と、共有メモリ4と、スイッチ5とを備える。その他、後述する実施例に示すように、記憶制御装置1は、複数の記憶装置151を備えることもできる。
図1では、2つのマイクロプロセッサパッケージ3を示すが、3個以上のマイクロプロセッサを設けることもできる。各マイクロプロセッサパッケージ3は、例えば、マイクロプロセッサ6と、ローカルメモリ7とを備える。
マイクロプロセッサ6は、ホスト2からのコマンドを解釈して所定の処理を実行し、その処理結果をホスト2に返す。ローカルメモリ7は、例えば、ローカル制御情報7Aと、パージバッファ7Bと、ローカルメモリ更新管理部7Cと、共有メモリ更新値記憶部7Dとを備えている。図面では、ローカルメモリを「LM」と、共有メモリを「SM」と略して表示している。なお、実施例においても、ローカルメモリをLM、共有メモリをSMと略記する場合がある。
ローカル制御情報7Aは、共有メモリ4に記憶されている制御情報の一部である。制御情報として、例えば、論理ボリュームを識別するための番号、RAID構成を管理するための情報、ジョブを管理するための情報等のように、コマンド処理及び/または記憶制御装置1の制御等に必要な情報を挙げることができる。
パージバッファ7Bは、パージメッセージを記憶するための記憶領域である。本実施形態におけるパージメッセージには、複数の役割がある。一つの役割は、ローカルメモリ7に記憶されているローカル制御情報7Aが無効である旨を通知することである。この場合、パージメッセージとは、ローカルメモリ7にキャッシュされているローカル制御情報7Aのパージを要求するためのメッセージである。
他の役割は、マイクロプロセッサ6によって共有メモリ4内の制御情報が更新された回数(カウンタ値)を、他のマイクロプロセッサ6に通知することである。この場合、パージメッセージは、更新通知用メッセージとなる。パージメッセージ内の所定ビットを設定することにより、パージ要求メッセージまたは更新通知用メッセージのいずれか一方の役割を与えることができる。
各マイクロプロセッサ6が共有メモリ4内の制御情報を更新する度に、パージ要求のためのパージメッセージが作成されて、パージバッファ7Bに記憶される。なお、同一の領域、または、連続する領域について更新されたような場合、複数の更新を一つのパージメッセージにまとめる。
共有メモリ4内の制御情報に関する一連の更新が完了すると、更新通知用のパージメッセージが作成されてパージバッファ7Bに記憶される。更新通知用のパージメッセージがパージバッファ7Bに記憶された後、他のマイクロプロセッサ6に向けて、パージバッファ7B内の各パージメッセージが送信される。
LM更新管理部7Cは、マイクロプロセッサ6による制御情報の更新状態を管理するための管理部である。LM更新管理部7Cは、各マイクロプロセッサ6毎に、その更新回数(カウンタ値)を管理する。例えば、マイクロプロセッサ6(#0)が共有メモリ4内の制御情報を更新した場合、LM更新管理部7Cは、マイクロプロセッサ6(#0)のカウンタ値を「1」に設定する。さらに、マイクロプロセッサ6(#0)が共有メモリ4内の制御情報を更新した場合、カウンタ値は「2」に変更される。
図1中右側に示す別のマイクロプロセッサ6(#1)が共有メモリ4内の制御情報を更新した場合、その更新の事実は上述のパージメッセージを介して通知される。マイクロプロセッサ6(#0)は、マイクロプロセッサ6(#1)から更新通知用メッセージとしてのパージメッセージを受領すると、LM更新管理部7C内のマイクロプロセッサ6(#1)のカウント値を更新させる。
SM更新値記憶部7Dには、所定のタイミングで、共有メモリ4内のSM更新管理部9で管理されている各マイクロプロセッサ6のカウント値がコピーされる。所定のタイミングとしては、マイクロプロセッサ6が共有メモリ4にアクセスする場合を挙げることができる。例えば、ローカル制御情報7Aに含まれていない他の制御情報を使用する場合、マイクロプロセッサ6は、共有メモリ4にアクセスして所望の制御情報を取得する。その際に、SM更新管理部9で管理されている各カウント値が読み出されて、SM更新値記憶部7Dに記憶される。
共有メモリ4は、スイッチ5を介して各マイクロプロセッサパッケージ3に接続されている。共有メモリ4は、制御情報記憶領域8と、SM更新管理部9とを備える。制御情報記憶領域8は、制御情報を記憶するための領域である。制御情報記憶領域8に記憶される制御情報は、各マイクロプロセッサ6により共有される。
制御情報記憶領域8には、共有キャッシュ領域8Aと、排他キャッシュ領域8Bと、非キャッシュ領域8Cとが含まれている。共有キャッシュ領域8Aには、各マイクロプロセッサ6によって共有され、かつ、各マイクロプロセッサ6によりキャッシュされる第1制御情報D1が記憶される。排他キャッシュ領域8Bには、オーナーとなる特定のマイクロプロセッサ6のみがキャッシュでき、他のマイクロプロセッサ6はキャッシュすることのできない第2制御情報D2が記憶される。非キャッシュ領域8Cには、いずれのマイクロプロセッサ6もキャッシュすることのできない第3制御情報D3が記憶される。
第1制御情報D1としては、例えば、記憶制御装置1の構成を管理する情報、プログラム製品の設定情報等のように、更新頻度が比較的少なく、かつ、複数のマイクロプロセッサ6から比較的高頻度で参照され得る情報が該当する。
第2制御情報D2としては、例えば、論理ボリュームを管理する情報、リモートコピーの差分データを管理する情報等のように、特定のマイクロプロセッサ6が比較的高頻度で更新するような情報が該当する。ここでは、その特定のマイクロプロセッサをオーナーマイクロプロセッサと呼ぶ。オーナーマイクロプロセッサ以外のマイクロプロセッサを、非オーナーマイクロプロセッサ、または、その他のマイクロプロセッサと呼ぶ。理解のために、オーナーマイクロプロセッサを6(#0)とし、その他のマイクロプロセッサを6(#1)とする。
第3制御情報D3としては、例えば、記憶制御装置1内で実行される各種ジョブを管理する情報、障害に関する情報等のように、更新頻度が比較的少ない情報が該当する。但し、第1−第3制御情報の例は、上記に限られない。記憶制御装置1の制御方式等に応じて変化し得る。
本実施形態では、制御情報の使われ方等に基づいて制御情報を複数種類に分類し、制御用の属性を与えて共有メモリ4に記憶させる。共有キャッシュ領域8A内の第1制御情報D1は、各マイクロプロセッサ6がキャッシュ可能である。各マイクロプロセッサ6は、第1制御情報D1について対等であり、各マイクロプロセッサ6は、第1制御情報D1をそれぞれのローカルメモリ7にコピーして使用する。各マイクロプロセッサ6が第1制御情報D1をローカルメモリ7にコピーして使用するため(つまり、第1制御情報D1をキャッシュするため)、各マイクロプロセッサ6間でパージメッセージが交換される。
排他キャッシュ領域8B内の第2制御情報D2は、オーナーマイクロプロセッサ6(#0)のみがローカルメモリ7にコピー可能であり(つまり、オーナーマイクロプロセッサ6(#0)のみがキャッシュ可能であり)、その他のマイクロプロセッサ6(#1)は第2制御情報D2をローカルメモリ7にコピーすることはできない。第2制御情報D2の使用を希望するその他のマイクロプロセッサ6(#1)は、共有メモリ4にアクセスすることにより、第2制御情報D2を使用する。
第2制御情報D2をローカルメモリ7にコピーできるのはオーナーマイクロプロセッサ6(#0)だけであるから、オーナーマイクロプロセッサ6(#0)は、共有メモリ4内の第2制御情報D2を更新した場合でも、その他のマイクロプロセッサ6(#1)にパージメッセージを送信する必要はない。その他のマイクロプロセッサ6(#1)が共有メモリ4内の第2制御情報D2を更新した場合、その他のマイクロプロセッサ6(#1)からオーナーマイクロプロセッサ6(#0)にパージメッセージが送信される。
非キャッシュ領域8C内の第3制御情報D3は、いずれのマイクロプロセッサ6もローカルメモリ7にコピーすることができない。各マイクロプロセッサ6は、第3制御情報D3を必要とする場合、共有メモリ4に直接アクセスして使用する。従って、第3制御情報D3については、各マイクロプロセッサ6間でパージメッセージは交換されない。
SM更新管理部9は、各マイクロプロセッサ6によって共有メモリ4内の各制御情報D1,D2が更新された回数を管理する。非キャッシュ領域8C内の第3制御情報D3については、更新回数を管理する必要はないが、管理してもよい。
SM更新管理部9は、各マイクロプロセッサ6を識別するためのマイクロプロセッサ番号(MP#)と、各マイクロプロセッサ6による更新回数(COUNT)とを対応付けて管理する。なお、各LM更新管理部7C及び各SM更新値記憶部7Dも、マイクロプロセッサ番号と更新回数とを対応付けて管理する。つまり、7C,7D,9は、それぞれ同一の配列を有する。しかし、更新回数が更新されるタイミング等が異なる。ここでは、更新回数をカウンタ値とも呼ぶ。
第1制御情報D1に着目して、パージ制御を説明する。以下、ローカルメモリ7,パージバッファ7B、LM更新管理部7C、SM更新値記憶部7Dに、(#0)または(#1)を添えることにより、一方のマイクロプロセッサ6(#0)側の構成であるのか、それとも他方のマイクロプロセッサ6(#1)側の構成であるのかを区別する。
一方のマイクロプロセッサ6(#0)が共有メモリ4内の第1制御情報D1を更新すると、一方のマイクロプロセッサ6(#0)に対応するLM更新管理部7C(#0)において、一方のマイクロプロセッサ6(#0)のカウンタ値が1つインクリメントされる。さらに、一方のマイクロプロセッサ(#0)による第1制御情報D1の更新について、パージ要求用のパージメッセージが作成される。作成されたパージ要求用のパージメッセージは、パージバッファ7B(#0)に記憶される。
さらに、一方のマイクロプロセッサ6(#0)が共有メモリ4内の第1制御情報D1を更新する場合、一方のマイクロプロセッサ6(#0)は、SM更新管理部9内の一方のマイクロプロセッサ6(#0)のカウンタ値を1つインクリメントさせる。
一方のマイクロプロセッサ6(#0)は、例えば、ホスト2からのコマンドに対応して、共有メモリ4内の第1制御情報D1を複数回更新する。複数の更新のそれぞれについて、パージ要求用のパージメッセージが作成され、保存される。なお、一つにまとめることができる場合、複数のパージメッセージが一つのパージメッセージに統合される。
一連の更新が完了すると、更新通知用のパージメッセージが作成される。その更新通知用のパージメッセージには、LM更新管理部7C(#0)に記憶されている、一方のマイクロプロセッサ6(#0)のマイクロプロセッサ番号及びカウンタ値が含まれる。
更新通知用のパージメッセージがパージバッファ7B(#0)に記憶されて、所定の契機が訪れると、パージバッファ7B(#0)に記憶された各パージ要求用のパージメッセージと一つの更新通知用パージメッセージとが、他方のマイクロプロセッサ6(#1)に送信される。パージメッセージを送信する契機としては、例えば、共有メモリ4内の制御情報への一連の更新が完了し、プログラムが明示的にコールした場合、または、パージバッファ7Bに保存されるパージメッセージの数が予め設定される上限値に達した場合等が挙げられる。
他方のマイクロプロセッサ6(#1)は、一方のマイクロプロセッサ6(#0)からパージメッセージを受領すると、パージ要求用のパージメッセージに基づいて、ローカルメモリ7(#1)内に記憶されている第1制御情報D1を無効とする。
さらに、他方のマイクロプロセッサ6(#1)は、一方のマイクロプロセッサ6(#0)から受信した更新通知用パージメッセージに基づいて、LM更新管理部7C(#1)内の、一方のマイクロプロセッサ6(#0)のカウンタ値を更新させる。
このように、更新元のマイクロプロセッサ6(#0)が共有メモリ4内の制御情報を更新する場合、更新元のマイクロプロセッサ6(#0)に関するカウンタ値は、更新元のマイクロプロセッサ6(#0)側のLM更新管理部7C(#0)とSM更新管理部9との両方で、ほぼ同時期に更新される。
更新元のマイクロプロセッサ6(#0)以外の他のマイクロプロセッサ6(#1)では、更新元マイクロプロセッサ6(#0)から受信する更新通知用パージメッセージに基づいて、LM更新管理部7C(#1)内の更新元マイクロプロセッサ6(#0)のカウンタ値を更新させる。
SM更新値記憶部7Dには、マイクロプロセッサ6が共有メモリ4にアクセスした場合にSM更新管理部9から読み出される各カウンタ値がコピーされる。上述の通り、更新元マイクロプロセッサ6(#0)に関するSM更新管理部9内のカウンタ値は、更新元マイクロプロセッサ6(#0)による更新処理に同期して更新される。
従って、更新元マイクロプロセッサ6(#0)以外の他のマイクロプロセッサ6(#1)は、SM更新値記憶部7D(#1)内の全カウンタ値とLM更新値管理部7C(#1)内の全カウンタ値とを比較することにより、ローカルメモリ7(#1)内に記憶されている第1制御情報D1が有効であるか否かを判定できる。ここで、共有メモリ4とSM更新値記憶部7Dとの区別を明らかにするために、SM更新値をターゲット(TGT)と示す場合がある。
LM更新管理部7C(#1)内の全カウンタ値COUNT(LM#1)がSM更新値記憶部7D(#1)内の全カウンタCOUNT(TGT#1)値と等しいか、あるいは、それよりも大きい場合(COUNT(LM#1)≧COUNT(TGT#1))、ローカルメモリ7(#1)に記憶されている第1制御情報D1は、有効であると判定できる。
逆に、COUNT(LM#1)<COUNT(TGT#1)の場合、更新元マイクロプロセッサ6(#0)から未だ届いていないパージメッセージが存在すると判断できる。従って、この場合、ローカルメモリ7(#1)内に記憶されている第1制御情報D1は古くなっている可能性があり、使用することはできない。
共有キャッシュ領域8Aに記憶される第1制御情報D1についてパージ制御の動作を述べたが、排他キャッシュ領域8Bに記憶される第2制御情報D2についても、同様に理解できる。
但し、第2制御情報D2の場合、オーナーマイクロプロセッサ6(#0)のみがキャッシュ可能である。従って、オーナーマイクロプロセッサ6(#0)が共有メモリ4内の第2制御情報D2を更新した場合でも、その他のマイクロプロセッサ6(#1)にパージ要求用パージメッセージを送信する必要はない。つまり、オーナーマイクロプロセッサ6(#0)は、第2制御情報D2に関するパージメッセージを作成したり、それを保存したりする必要はない。
その他のマイクロプロセッサ6(#1)は、共有メモリ4内の第2制御情報D2に直接アクセスして更新することができる。第2制御情報D2は、オーナーマイクロプロセッサ6(#0)のローカルメモリ7(#0)にコピーされている。従って、その他のマイクロプロセッサ6(#1)が第2制御情報D2を更新した場合、その他のマイクロプロセッサ6(#1)からオーナーマイクロプロセッサ(#0)に向けて、パージ要求用パージメッセージを送信する。
このように構成される本実施形態によれば、以下の効果を奏する。第1に、本実施形態では、共有メモリ4内の制御情報への一連の更新が完了した後で、パージ要求用パージメッセージを各マイクロプロセッサ6間で送受信させる。従って、パージ要求用パージメッセージの通信頻度を少なくでき、パージ処理に要する負荷を低減できる。この結果、マイクロプロセッサ6の演算資源等をホスト2からのコマンドを処理するために用いることができ、記憶制御装置1の処理性能を高めることができる。
第2に、本実施形態では、制御情報の同一箇所または連続する箇所が更新された場合、それら複数の更新を一つのパージ要求用パージメッセージにまとめる。従って、パージ要求用パージメッセージの通信頻度を低減でき、記憶制御装置1の処理性能を高めることができる。
第3に、本実施形態では、LM更新管理部7C内のカウンタ値とSM更新値記憶部7D内のカウント値とを比較することにより、ローカルメモリ7にキャッシュされている制御情報の有効性を判断できる。従って、古い制御情報を誤って使用することを防止し、記憶制御装置の動作の一貫性を保つことができる。
第4に、本実施形態では、共有メモリ4に記憶される制御情報の属性として、共有キャッシュと、排他キャッシュ及び非キャッシュとを用意しており、それら属性に応じてパージ制御を行う。従って、パージメッセージの作成及び送信に関する処理を少なくすることができ、各マイクロプロセッサ6の演算資源等をより一層有効に利用できる。以下、本実施形態についてさらに詳細に説明する。
図2は、記憶制御装置10を含む情報処理システムの全体を示す。本実施例では、制御情報を分類しない場合について述べる。先に図1との対応関係を説明する。記憶制御装置10は記憶制御装置1に、ホスト30はホスト2に、共有メモリ131は共有メモリ4に、マイクロプロセッサ121はマイクロプロセッサ6に、ローカルメモリ122はローカルメモリ7に、対応する。図3に示す制御情報D10Lは制御情報7Aに、図3に示すパージバッファT10はパージバッファ7Bに、図3に示すLM更新クロックT11はLM更新管理部7Cに、図3に示すターゲット更新クロックT12はSM更新値記憶部7Dに、図3に示すSM更新クロックT13は、SM更新管理部9に、対応する。図9の第1制御情報D11は第1制御情報D1に、図9の第2制御情報D12は第2制御情報D2に、図9の第3制御情報D13は第3制御情報D3に、対応する。
記憶制御装置10は、例えば、フロントエンドパッケージ110(図中、FEPK110)と、マイクロプロセッサパッケージ120(図中、MPPK120)と、メモリパッケージ130(図中、メモリPK130)と、バックエンドパッケージ140(図中、BEPK140)と、スイッチ160と、サービスプロセッサ170(図中、SVP170)とを備える。
フロントエンドパッケージ110は、ホスト30との通信を担当するための制御基板である。フロントエンドパッケージ110は、複数の通信ポート111を備える。通信ポート111は、通信ネットワーク41を介してホスト30に接続される。通信ネットワーク41としては、例えば、FC_SAN(Fibre Channel_Storage Area Network)やIP_SAN(Internet Protocol_SAN)を用いることができる。
FC_SANの場合、ホスト30とフロントエンドパッケージ110とは、ファイバチャネルプロトコルに従ってデータ通信を行う。ホスト30がメインフレームの場合は、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルに従って、データ通信が行われる。IP_SANの場合、ホスト30とフロントエンドパッケージ110とは、TCP/IP(Transmission Control Protocol/Internet Protocol)等のプロトコルに従って、データ通信を行う。
バックエンドパッケージ140は、記憶装置151との通信を担当するための制御基板である。バックエンドパッケージ140は、複数の通信ポート141を備えており、各通信ポート141は各記憶装置151に接続されている。
メモリパッケージ130は、共有メモリ領域131と、キャッシュメモリ領域132とを備える。共有メモリ領域131には、例えば、ホスト30から受信したコマンドや制御用の各種情報等が記憶される。キャッシュメモリ領域132には、例えば、ユーザデータやキャッシュメモリ領域132を管理するためのテーブル等が記憶される。以下の説明では、キャッシュメモリ領域132をキャッシュメモリ132と呼ぶ。
マイクロプロセッサパッケージ120は、モジュール100の動作を制御するための制御基板である。マイクロプロセッサパッケージ120は、マイクロプロセッサ121とローカルメモリ122とを備える。
マイクロプロセッサパッケージ120は、ホスト30から発行されたコマンドを実行し、その実行結果をホスト30に送信する。フロントエンドパッケージ110がリードコマンドを受信した場合、マイクロプロセッサパッケージ120は、要求されたデータをキャッシュメモリ132または記憶装置151から取得し、ホスト30に送信させる。
フロントエンドパッケージ110がライトコマンドを受信した場合、マイクロプロセッサパッケージ120は、ライトデータをキャッシュメモリ132に書き込み、ホスト30に処理完了を通知する。キャッシュメモリ132に書き込まれたデータは、その後、記憶装置151に書き込まれる。マイクロプロセッサパッケージ120の構成については、図3でさらに詳述する。
記憶装置151は、ハードディスクドライブまたはフラッシュメモリデバイス等の記憶装置から構成される。複数の記憶装置151を一つのグループ150にまとめることができる。このグループ150は、例えば、RAIDグループまたはパリティグループと呼ばれる。そして、グループ化された記憶領域には、一つまたは複数の論理ボリューム152が形成される。
記憶装置151としては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等のデータを読み書き可能な種々のデバイスを利用可能である。
記憶装置151としてハードディスクデバイスを用いる場合、例えば、FC(Fibre
Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。
記憶装置151として半導体メモリデバイスを用いる場合、例えば、フラッシュメモリ、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(Resistance RAM)」等の種々のメモリデバイスを利用可能である。なお、記憶デバイスの種類は、上記のものに限定されず、将来製品化される他の種類の記憶デバイスを利用することもできるであろう。
スイッチ160は、各パッケージ110,120,130,140を接続するための回路である。フロントエンドパッケージ110、バックエンドパッケージ140、マイクロプロセッサパッケージ130は、スイッチ160を介して、メモリパッケージ130にアクセスする。
SVP170は、記憶制御装置10内の各種情報を収集して管理端末20に提供したり、管理端末20から入力された設定値等を共有メモリ131に記憶させたりするための制御回路である。SVP170は、例えば、LAN(Local Area Network)等の通信ネットワーク42を介して、管理端末20に接続されている。
図3は、マイクロプロセッサパッケージ120の構成を模式的に示す図である。ローカルメモリ122には、制御情報D10Lと、パージバッファT10と、LM更新クロックT11と、ターゲット更新クロックT12とが記憶される。
制御情報D10Lは、共有メモリ131内の制御情報D10の一部をコピーしたものである。パージバッファT10は、パージメッセージを記憶するものである。パージメッセージについては、図4で後述する。LM更新クロックT11は、マイクロプロセッサ121による更新をローカルメモリ側で管理するためのものである。ターゲット更新クロックT12には、所定のタイミングで、共有メモリ131内のSM更新クロックT13の各カウンタ値がコピーされる。
共有メモリ131には、制御情報記憶領域1310とSM更新クロックT13とが設けられる。制御情報記憶領域1310には、制御情報D10が記憶される。SM更新クロックT13は、各マイクロプロセッサ121により更新された回数を示すカウンタ値を、各マイクロプロセッサ121を識別するためのマイクロプロセッサ番号毎にそれぞれ管理している。各LM更新クロックT11及び各ターゲット更新クロックT12も、マイクロプロセッサ番号とカウンタ値とを対応付けて管理する。つまり、各更新クロックT11,T12,T13は、同一の構造を有する。
図4は、パージバッファの構成を示す図である。パージバッファT10は、例えば、メッセージタイプ欄C100と、第1データ欄C101と、第2データ欄C102とを備えている。
メッセージタイプ欄C100には、パージメッセージが、パージ要求用メッセージであるか、それとも、更新通知用メッセージであるかを示すタイプが格納される。メッセージタイプ0は、パージ要求用パージメッセージであることを示す。
パージ要求用パージメッセージの場合、第1データ欄C101には、更新されたデータのサイズが格納される。例えば、データサイズとしてライン数が設定される。1ラインは、例えば64バイトである。パージ要求用パージメッセージの場合、第2データ欄C102には、共有メモリ131内の記憶先アドレス(開始アドレス)が格納される。つまり、パージ要求用パージメッセージを用いれば、第2データ欄C102で示される開始アドレスから、第1データ欄C101で示されるサイズまでのデータ(制御情報D10)が更新された事がわかる。
メッセージタイプ1は、更新通知用パージメッセージであることを示す。更新通知用パージメッセージの場合、第1データ欄C101には、その更新通知用パージメッセージを発行する発行元マイクロプロセッサ121のマイクロプロセッサ番号(MP#)が格納される。第2データ欄C102には、発行元マイクロプロセッサ121側で管理されているLM更新クロックT11内の各カウンタ値のうち、発行元マイクロプロセッサ121のカウンタ値が格納される。
更新元(後の発行元)マイクロプロセッサ121が共有メモリ131内の制御情報を更新するたびに、メッセージタイプ0のパージメッセージが作成されて、パージバッファT10に登録される。一連の更新が完了すると、メッセージタイプ1のパージメッセージが作成されて、パージバッファT10に登録される。
図5は、複数のパージ要求用パージメッセージを一つのパージメッセージに統合する様子を示す図である。一方のパージメッセージMSG1の更新箇所と他方のパージメッセージMSG2の更新箇所とが、同一、または、連続、または、重複する場合、それらパージメッセージMSG1,2を一つのパージメッセージMSG3に統合して、パージバッファT10に記憶させる。これにより、パージメッセージの数を低減して、パージメッセージの通信頻度を少なくできる。
図6は、LM更新クロックT11とターゲット更新クロックT12及びSM更新クロックT13の関係を示す図である。LM更新クロックT11には、各マイクロプロセッサパッケージ120側で管理される各カウンタ値が記憶される。
LM更新クロックT11を管理するマイクロプロセッサ121のカウンタ値は、そのマイクロプロセッサ121による制御情報D10の更新とリアルタイムで更新される。例えば、マイクロプロセッサ121(#0)の管理するLM更新クロックT11の場合、マイクロプロセッサ121(#0)のカウンタ値は、更新処理とほぼ同時にLM更新クロックT11に記録される。他のマイクロプロセッサ121(#1−#3)の各カウンタ値は、他のマイクロプロセッサ121(#1−#3)から発行される更新通知用パージメッセージに基づいて更新される。
なお、図2,図7等ではマイクロプロセッサ121を2個示し、図4ではマイクロプロセッサ121が少なくとも8個ある場合を示し、図6ではマイクロプロセッサ121が4個ある場合を示しているが、説明の便宜上の例示に過ぎない。本発明は、複数のマイクロプロセッサ121が共有メモリ131を共有する構成の場合に有用である。混乱を避けるために、第1実施例では、マイクロプロセッサ121が2個の場合を中心に述べる。
図6に示すターゲット更新クロックT12は、上述の通り、SM更新クロックT13のコピーである。例えば、マイクロプロセッサ121が、ローカルメモリ7にキャッシュされている制御情報D10L以外の制御情報を使用する場合(キャッシュミス時)、マイクロプロセッサ121は共有メモリ131内の制御情報D10にアクセスする。マイクロプロセッサ121が共有メモリ131にアクセスした場合に、共有メモリ131内のSM更新クロックT13の各カウント値が読み出されて、ターゲット更新クロックT12にコピーされる。
図6に示すSM更新クロックT13は、各マイクロプロセッサ121による制御情報D10の更新回数を管理する。上述の通り、更新元マイクロプロセッサ121で管理されているLM更新クロックT11内の更新元マイクロプロセッサ121のカウンタ値と、SM更新クロックT13内の更新元マイクロプロセッサ121のカウンタ値とは、ほぼ同時期に更新される。そして、他の各マイクロプロセッサ121が共有メモリ131にアクセスした場合、SM更新管理クロックT13内の各カウンタ値が、他の各マイクロプロセッサ121で管理されているターゲット更新クロックT12にコピーされる。
図7は、更新クロックの大小を判定する方法を模式的に示す図である。上述の通り、各更新クロックT11,T12,T13は、マイクロプロセッサ番号とカウンタ値とを対応付ける、同一構造を有する。そして、LM更新クロックT11に記憶されている各カウンタ値と、ターゲット更新クロックT12に記憶されている各カウンタ値との大小関係に基づいて、ローカルメモリ122にコピーされている制御情報D10Lが有効であるか否かが判定される。
各更新クロックの大小関係は、次のように判定される。図7に示す更新クロックC1−C3を例に挙げて説明する。更新クロックC1と更新クロックC2との関係のように、更新クロックC2の各カウンタ値が更新クロックC1の対応する各カウンタ値以上の場合に、C2≧C1であると判定する。なお、同一マイクロプロセッサ番号について、カウンタ値の大小を比較する。
同様に、更新クロックC1と更新クロックC3との関係に着目すると、更新クロックC3の各カウンタ値は、更新クロックC1の対応する各カウンタ値以上であるため、C3≧C1と判定される。
更新クロックC2と更新クロックC3の関係に着目すると、マイクロプロセッサ番号#0の場合、更新クロックC2のカウンタ値の方が更新クロックC3の対応するカウンタ値よりも大きい。しかし、別のマイクロプロセッサ番号#1の場合、更新クロックC2のカウンタ値は、更新クロックC3の対応するカウンタ値よりも小さい。従って、更新クロックC2と更新クロックC3の関係は、不定であり、いずれが大でいずれが小であるか区別することはできない。
図8は、パージ制御の動作を示すフローチャートである。共有メモリ131のアドレスXには、制御情報D10の一部としてのデータ”0”が記憶されている(S10)。マイクロプロセッサ121(#0)は、共有メモリ131のアドレスXからデータ”0”を読み出す(S11)。読み出されたデータ”0”は、ローカルメモリ122(#0)に記憶される。
この時点における、LM更新クロック(LM−CLK)T11(#0)の値は、(0,0)である。先の”0”は、マイクロプロセッサ121(#0)のカウンタ値であり、後の”0”は、マイクロプロセッサ121(#1)のカウンタ値である。ターゲット更新クロック(TGT−CLK)T12(#0)の値も(0,0)である。
マイクロプロセッサ121(#0)が再びアドレスXのデータを参照しようとする場合には、ローカルメモリ122(#0)にキャッシュされているデータ”0”が使用される(S12)。LM更新クロックのカウンタ値とターゲット更新クロックのカウンタ値とを比較すると、LM−CLK≧TGT−CLKの関係が成り立つため、ローカルメモリ122(#0)に記憶されているデータ”0”を使用できる。
別のマイクロプロセッサ121(#1)がアドレスXにデータ”8”を書き込む場合を説明する(S13)。その更新元マイクロプロセッサ121(#1)が管理するLM更新クロックT11(#1)内の更新元マイクロプロセッサ121(#1)のカウンタ値は、1つだけインクリメントされる。従って、LM−CLK(LM更新クロック)は、(0,0)から(0,1)に変化する。共有メモリ131内のSM更新クロック(SM−CLK)T13のカウンタ値も、(0,0)から(0,1)に変化する(S14)。
マイクロプロセッサ121(#0)が共有メモリ131の別アドレスYから制御情報D10の一部としてのデータを読み出す場合(S15)、マイクロプロセッサ121(#0)は、SM更新クロックT13の各カウンタ値(0,1)も取得する。これにより、マイクロプロセッサ121(#0)が管理しているターゲット更新クロックT13のカウンタ値は、(0,0)から(0,1)に変化する(S16)。
別のマイクロプロセッサ121(#1)が共有メモリ131のアドレスXにデータ”10”を書き込む場合を説明する(S17)。その更新元マイクロプロセッサ121が管理しているLM更新クロックT11(#1)のカウンタ値は、(0,1)から(0,2)に変化する。2回目の更新だからである。更新元マイクロプロセッサ121(#1)がアドレスXにデータ”10”を書き込む際に、SM更新クロックT13のカウンタ値は(0,1)から(0,2)に更新される(S18)。なお、ターゲット更新クロックT13(#1)のカウンタ値は、(0,0)のまま変化していない。
マイクロプロセッサ121(#0)が、アドレスXのデータを再び参照しようとする場合、ローカルメモリ122(#0)にキャッシュされているデータ”0”が有効であるか否か(最新であるか否か)を判定する。マイクロプロセッサ121(#0)は、LM更新クロックT11(#0)のカウンタ値(0,0)とターゲット更新クロックT13(#0)のカウンタ値(0,1)とを比較する。
LM更新クロックT11(#0)のカウンタ値(0,0)は、ターゲット更新クロックT13(#0)のカウンタ値(0,1)よりも小さいため、ローカルメモリ122(#0)にキャッシュされているデータ”0”は古くて使用できないと判定される。つまり、別のマイクロプロセッサ121(#1)による更新を示すパージメッセージがマイクロプロセッサ121(#0)に届いていないと判断される。
そこで、マイクロプロセッサ121(#0)は、共有メモリ131にアクセスして、アドレスXから最新データ”10”を読み出す(S19)。読み出された最新データ”10”は、ローカルメモリ122(#0)に記憶される。マイクロプロセッサ121(#0)が共有メモリ131のアドレスXからデータ”10”を読み出す際に、SM更新クロックT13のカウンタ値(0,2)も読み出される。これにより、マイクロプロセッサ121(#0)が管理しているターゲット更新クロックT13(#0)のカウンタ値は、(0,1)から(0,2)に更新される(S20)。
別のマイクロプロセッサ121(#1)は、一連の更新処理(S13,S17)が完了すると、更新通知用パージメッセージを作成してパージバッファT10(#1)に登録する。その後、パージバッファT10(#1)に登録された全てのパージメッセージを、マイクロプロセッサ121(#0)に送信する(S21)。マイクロプロセッサ121(#1)は、共有メモリ131内のデータを2回更新しているが(S13,S17)、最終的に1つのパージ要求用パージメッセージに統合される(Type=0,line=1,adr=X)。
マイクロプロセッサ121(#0)は、マイクロプロセッサ121(#1)からのパージメッセージに基づいて、LM更新クロックT11(#0)のカウンタ値を(0,0)から(0,2)に更新させる(S22)。
本実施例によれば、共有メモリ131内の制御情報D10への一連の更新が完了した後で、パージ要求用パージメッセージを発行させる。従って、パージ要求用パージメッセージの通信頻度を少なくでき、パージ処理に要する負荷を低減できる。この結果、記憶制御装置10の処理性能を高めることができる。
本実施例では、制御情報への複数回の更新を一つのパージ要求用パージメッセージに統合させる。従って、パージ要求用パージメッセージの通信頻度を低減でき、記憶制御装置10の処理性能を高めることができる。
本実施例では、LM更新クロックT11のカウンタ値とターゲット更新クロックT12のカウント値とを比較することにより、ローカルメモリ122にキャッシュされている制御情報D10Lの有効性を判断できる。従って、古い制御情報を誤って使用することを防止し、記憶制御装置の動作の一貫性を高めることができる。
図9−図15に基づいて第2実施例を説明する。本実施例を含む以下の各実施例は、第1実施例の変形例に相当する。従って、以下の各実施例では、第1実施例との相違点を中心に説明する。本実施例では、制御情報を、その技術的性質に基づいて複数種類に分類し、それぞれの種類に適した制御を実行する。つまり、本実施例では、制御情報に所定のキャッシュ属性を設定して管理する。
図9は、本実施例による記憶制御装置10の要部を示す図である。本実施例の共有メモリ131に着目すると、制御情報記憶領域1310には、さらに3つの領域1311,1312,1313が設定されている。
第1の領域1311は、共有キャッシュ領域である。共有キャッシュ領域1311には、第1制御情報D11が記憶される。第1制御情報D11は、各マイクロプロセッサ121によって共有され、各ローカルメモリ122にそれぞれキャッシュされる。
図11に示すように、第1制御情報D11としては、例えば、記憶制御装置10の構成を管理する情報D110、プログラム製品の設定情報D111等のように、更新頻度が比較的少なく、かつ、複数のマイクロプロセッサ121から比較的高頻度で参照され得る情報が該当する。
第2の領域1312は、排他キャッシュ領域である。排他キャッシュ領域1312には、第2制御情報D12が記憶される。第2制御情報D12は、オーナーとなる特定のマイクロプロセッサ121のみがキャッシュでき、他のマイクロプロセッサ121はキャッシュすることができない。他のマイクロプロセッサ121は、共有メモリ131に直接アクセスして第2制御情報D12を使用する。
図中では、一つの排他キャッシュ領域1312のみを示すが、排他キャッシュ領域1312は、各マイクロプロセッサ121毎に設けることもできる。つまり、各マイクロプロセッサ121がオーナーとなる排他キャッシュ領域をそれぞれ設定できる。
第2制御情報D12としては、図11に示すように、例えば、論理ボリューム152を管理する情報D120、リモートコピーの差分データを管理する情報D121等のように、特定のマイクロプロセッサ121が比較的高頻度で更新する情報が該当する。
第3の領域1313は、非キャッシュ領域である。非キャッシュ領域1313には、第3制御情報D13が記憶される。第3制御情報D13は、いずれのマイクロプロセッサ121もキャッシュできない。
第3制御情報D13としては、図11に示すように、例えば、記憶制御装置10内で実行される各種ジョブを管理する情報D130、障害に関する管理情報等D131のように、更新頻度が比較的少ない情報が該当する。但し、第1−第3制御情報の例は、上記に限られない。
上述のキャッシュ属性(共有キャッシュ、排他キャッシュ、非キャッシュ)は、キャッシュ属性管理テーブルT14によって管理される。キャッシュ属性管理テーブルT14は、共有メモリ131に記憶されている。各ローカルメモリ122には、共有メモリ131に記憶されたキャッシュ属性管理テーブルT14のコピーが設けられる。
図10の上部は、キャッシュ属性管理テーブルT14を示す図である。キャッシュ属性管理テーブルT14は、例えば、SMアドレス(共有メモリ)の上位を示す欄C140と、エリア属性欄C141とを備える。図10の下部は、エリア属性の関係を模式的に示す図である。
本実施例では、SMアドレスの上位ビット毎にSMのキャッシュ属性を設定するようになっている。図10に示す例では、SMアドレスを32ビットとすると、0x00000000-0x0001FFFFが非キャッシュ、0x00020000-0x0002FFFFが共有キャッシュ、0x00030000-0x0003FFFFが排他キャッシュ(オーナーMPは#0)となる。共有メモリ131にリードまたはライトする場合、図10上部に示すテーブルT14を参照して、アクセスしようとするアドレスのエリア属性を判断する。各制御情報D11,D12,D13は、ひとかたまりずつの連続領域として存在するのではなく、テーブルT14で決定されているアドレス範囲ごとに自由に設定できる。
共有キャッシュの属性を有する第1制御情報D11は、複数のマイクロプロセッサ121によりキャッシュされる。排他キャッシュの属性を有する第2制御情報D12の場合、オーナーマイクロプロセッサは第2制御情報D12をキャッシュ可能であるが、オーナーマイクロプロセッサ以外の他のマイクロプロセッサは、第2制御情報D12をキャッシュすることができない。非キャッシュの属性を有する第3制御情報D13は、いずれのマイクロプロセッサ121もキャッシュすることができない。
キャッシュの可否とパージメッセージの送信可否とは密接に関係する。第1制御情報D11は、全てのマイクロプロセッサ121にキャッシュが許可されている。各マイクロプロセッサ121は、共有メモリ131内の第1制御情報D11を更新すると、パージメッセージを作成し、所定の時点で他の各マイクロプロセッサ121に送信する。
排他キャッシュの場合を説明する。オーナーマイクロプロセッサは、共有メモリ131内の第2制御情報D12を更新した場合でも、パージメッセージを作成したり、パージメッセージを他の各マイクロプロセッサに送信したりする必要はない。第2制御情報D12をキャッシュできるのは、オーナーマイクロプロセッサのみだからである。
これに対し、オーナーマイクロプロセッサ以外の他のマイクロプロセッサ121が共有メモリ131内の第2制御情報D12を更新した場合、他のマイクロプロセッサ121はパージメッセージを作成して、オーナーマイクロプロセッサにのみ送信する。オーナーマイクロプロセッサは、共有メモリ131内の第2制御情報D12をローカルメモリ122にコピーして使用しているためである。
非キャッシュの場合を説明する。各マイクロプロセッサ121は、非キャッシュの属性を有する第3制御情報D13をローカルメモリ122にコピーして使用することができないようになっている。従って、共有メモリ131内の第3制御情報D13が更新された場合でも、パージメッセージを作成して送信する必要はない。
図12は、共有メモリ131にデータ(制御情報)を書き込む場合の処理を示すフローチャートである。マイクロプロセッサ121は、ライトアドレスに基づいてキャッシュ属性管理テーブルT14を参照する(S51)。共有メモリ131内のデータを更新しようとするマイクロプロセッサを、更新元マイクロプロセッサと呼ぶ。
マイクロプロセッサ121は、ライトアクセスが共有キャッシュ領域1311に含まれるか否かを判定する(S52)。共有キャッシュ領域1311への書込みである場合(S52:YES)、つまり、第1制御情報D11を更新する場合、マイクロプロセッサ121は、自分の管理しているLM更新クロックT11内の対応するカウンタ値を1つインクリメントさせる(S53)。即ち、更新元のマイクロプロセッサ121は、更新元マイクロプロセッサ121が管理するLM更新クロックT11内の更新元マイクロプロセッサ121のカウンタ値を1つ増加させる。
さらに、更新元マイクロプロセッサ121は、更新元マイクロプロセッサ121が管理しているパージバッファT10にライトアクセス及びライトデータのサイズを登録する(S54)。
更新元マイクロプロセッサ121は、共有メモリ131に新しいデータを書込み(S55)、SM更新クロックT13内の更新元マイクロプロセッサ121のカウンタ値を1つインクリメントさせる(S56)。
更新元マイクロプロセッサ121は、更新対象のデータ(更新対象の制御情報D11)がローカルメモリ122にコピーされているか否かを判定する(S57)。更新対象データがローカルメモリ122にコピーされている場合(S57:YES)、つまり、キャッシュヒットの場合(S57:YES)、更新元マイクロプロセッサ121は、ローカルメモリ122にコピーされている制御情報を更新させる(S58)。
キャッシュミスの場合(S57:NO)、本処理を終了する。なお、キャッシュミス時に、共有メモリ131内で更新された制御情報D11を読み出して、ローカルメモリ122にコピーさせる構成でもよい。その場合、更新元マイクロプロセッサ121が管理しているターゲット更新クロックT12のカウンタ値は、SM更新クロックT13のカウンタ値で更新される。
そのライトアドレスが共有キャッシュ領域内に存在しない場合(S52:NO)、更新元マイクロプロセッサ121は、そのライトアドレスが更新元マイクロプロセッサ121がオーナーである排他キャッシュ領域1312内に存在するか否かを判定する(S59)。
更新元マイクロプロセッサ121がオーナーである排他キャッシュ領域1312内の第2制御情報D12を更新する場合(S59:YES)、パージメッセージを作成したり保存したりする必要はない。そこで、S53,S54をスキップしてS55に移る。
そのライトアドレスが、更新元マイクロプロセッサ121がオーナーである排他キャッシュ領域1312内に存在しない場合(S59:NO)、更新元マイクロプロセッサ121は、そのライトアドレスが更新元マイクロプロセッサ121がオーナーではない排他キャッシュ領域内に存在するか否かを判定する(S60)。
更新元マイクロプロセッサ121がオーナーではない排他キャッシュ領域内の第2制御情報D12を更新する場合(S60:YES)、更新元マイクロプロセッサ121は、「オーナーマイクロプロセッサ以外の他のマイクロプロセッサ」となる。
更新元マイクロプロセッサ121は、更新元マイクロプロセッサ121が管理しているLM更新クロックT11内の更新元マイクロプロセッサ121のカウンタ値を1つインクリメントさせる(S61)。さらに、更新元マイクロプロセッサ121は、パージバッファT10に、ライトアドレス及びライトデータのサイズを登録する(S62)。
更新元マイクロプロセッサ121は、共有メモリ131内の第2制御情報D12を更新し(S63)、SM更新クロックT13内の更新元マイクロプロセッサ121のカウンタ値を1つインクリメントさせる(S64)。
そのライトアドレスが、更新元マイクロプロセッサ121がオーナーマイクロプロセッサではない排他キャッシュ領域内にも存在しない場合(S60:NO)、そのライトアドレスは、非キャッシュ領域1313内に存在する。従って、更新元マイクロプロセッサ121は、S61,S62をスキップしてS63に移る。非キャッシュ領域1313に属する第3制御情報D13は、いずれのマイクロプロセッサ121もキャッシュできないため、パージメッセージを作成したり保存したりする必要はない。
図14は、パージメッセージを他のマイクロプロセッサ121に送信する処理を示すフローチャートである。ここでは、パージメッセージを送信するマイクロプロセッサを発行元マイクロプロセッサと呼ぶ。
発行元マイクロプロセッサ121は、パージメッセージの送信契機が到来したか否かを判定する(S70)。例えば、共有メモリ13内に記憶されている制御情報について一連の更新が全て完了した場合に、その更新に関するプログラムからの明示的な指示によって、パージメッセージが送信される。または、例えば、パージバッファT10に保存されたパージメッセージ数が所定の上限値に達した場合に、パージメッセージが送信される。その他の送信契機を採用してもよい。
送信契機が到来すると(S70:YES)、発行元マイクロプロセッサ121は、更新通知用パージメッセージを作成する(S71)。つまり、発行元マイクロプロセッサ121は、パージバッファT10に、発行元マイクロプロセッサ121のマイクロプロセッサ番号と、LM更新クロックT11内の発行元マイクロプロセッサ121のカウンタ値とを、登録する(S71)。
そして、発行元マイクロプロセッサ121は、パージバッファT10内の各パージメッセージを、他の各マイクロプロセッサ121に向けて送信する(S72)。但し、第2制御情報D12に関するパージメッセージの場合、発行元マイクロプロセッサ121が、オーナーマイクロプロセッサ以外の他のマイクロプロセッサのときは、オーナーマイクロプロセッサにのみパージメッセージを送信する。
図15は、共有メモリ131内からデータ(制御情報)を読み出す場合の処理を示すフローチャートである。データを読み出すマイクロプロセッサを、ここでは、読み出し元マイクロプロセッサと呼ぶ。
読み出し元マイクロプロセッサ121は、リードアドレスに基づいてキャッシュ属性管理テーブルT14を参照する(S100)。読み出し元マイクロプロセッサ121は、そのリードアドレスが共有キャッシュ領域1311または排他キャッシュ領域(オーナー)のいずれかに存在するか否かを判定する(S101)。
ここで、排他キャッシュ領域(オーナー)とは、マイクロプロセッサがオーナーである排他キャッシュ領域であることを示す。これに対し、排他キャッシュ領域(その他)とは、マイクロプロセッサがオーナーでは無い排他キャッシュ領域であることを示す。
リードアドレスが共有キャッシュ領域1311または排他キャッシュ領域(オーナー)1312のいずれかに含まれる場合(S101:YES)、読み出し元マイクロプロセッサ121は、他の各マイクロプロセッサ121からのパージメッセージが届いているか否かを確認する(S102)。
読み出し元マイクロプロセッサ121は、パージメッセージに基づいて、ローカルメモリ122内のキャッシュデータ(ローカルメモリ122内にコピーされた制御情報)の一部または全部を無効にする(S103)。
さらに、読み出し元マイクロプロセッサ121は、他の各マイクロプロセッサ121から届けられた更新通知用パージメッセージに基づいて、LM更新クロックT11内のカウンタ値を更新させる(S104)。
読み出し元マイクロプロセッサ121は、LM更新クロックT11内の各カウンタ値がターゲット更新クロックT12内の対応する各カウンタ値以上であるか否かを判定する(S105)。LM更新クロックT11≧ターゲット更新クロックT12の場合(S105:YES)、ローカルメモリ122にコピーされている制御情報は有効であると判断される。
読み出し元マイクロプロセッサ121は、ローカルメモリ122内に所望のデータが存在するか否かを確認する(S106)。所望のデータがローカルメモリ122内に存在する場合(S106:YES)、そのデータは有効であるから、読み出し元マイクロプロセッサ121は、ローカルメモリ122から所望のデータを読み出して使用する(S107)。
LM更新クロックT11<ターゲット更新クロックT12の場合(S105:NO)、または、有効とされたデータがローカルメモリ122に記憶されていなかった場合(S106:NO)のいずれかの場合、S108に移る。
読み出し元マイクロプロセッサ121は、ローカルメモリ122に記憶領域を確保し(S108)、所望のデータを共有メモリ131から読み出して使用する(S109)。読み出し元マイクロプロセッサ121は、SM更新クロックT13の各カウンタ値を取得し、それらのカウンタ値でターゲット更新クロックT12内の各カウンタ値を更新させる(S110)。
なお、リードアドレスが排他キャッシュ領域(その他)または非キャッシュ領域に存在する場合(S101:NO)、S109に移って、共有メモリ131から所望のデータを直接読み出す。
このように構成される本実施例も第1実施例と同様の効果を奏する。さらに本実施例では、共有メモリ131内に記憶される制御情報の属性として、共有キャッシュと、排他キャッシュ及び非キャッシュとを用意し、それら属性に応じてパージ制御を行う。従って、パージメッセージの作成及び送信に関する処理を少なくでき、各マイクロプロセッサ121の演算資源等をより一層有効に利用できる。
図16,図17に基づいて第3実施例を説明する。本実施例では、マイクロプロセッサ121に障害が発生した場合の対応方法を説明する。上述の通り、本発明は、パージメッセージの通信量を低減するべく、共有メモリ131内の制御情報の更新時期とパージメッセージの送信時期とを異ならせている。
従って、例えば、何らかの障害がマイクロプロセッサ121に生じた場合、通知すべきパージメッセージが各マイクロプロセッサ121に通知されることなく、マイクロプロセッサ121が機能を停止する可能性がある。
そこで、本実施例では、障害発生時に以下の処理を実行する。障害の発生しているマイクロプロセッサを障害マイクロプロセッサと呼ぶ場合がある。最初に、マイクロプロセッサ121は、他の各マイクロプロセッサ121の状態をチェックする(S120)。例えば、各マイクロプロセッサ121は、自身の状態を所定の記憶領域に書き込む。従って、その所定の記憶領域に書き込まれた値を参照することにより、他の各マイクロプロセッサ121の状態を知ることができる。
マイクロプロセッサ121は、障害マイクロプロセッサが検出されたか否かを判定する(S121)。障害マイクロプロセッサが検出された場合(S121:YES)、マイクロプロセッサ121は、他の各マイクロプロセッサからのパージメッセージを受信する(S122)。さらに、マイクロプロセッサ121は、SM更新クロックT13のカウンタ値を読み出して、ターゲット更新クロックT12にコピーさせる(S123)。
マイクロプロセッサ121は、障害マイクロプロセッサのカウンタ値について、LM更新クロックT11内の値とターゲット更新クロックT12内の値とが異なるか否かを判定する(S124)。つまり、マイクロプロセッサ121は、LM更新クロックT11内の障害マイクロプロセッサのカウンタ値とターゲット更新クロックT12内の障害マイクロプロセッサのカウンタ値とが相違するか否かを判定する(S124)。
LM更新クロックT11内のカウンタ値とターゲット更新クロックT12内のカウンタ値とが相違する場合(S124:YES)、マイクロプロセッサ121は、LM更新クロックT11内の障害マイクロプロセッサのカウンタ値を、ターゲット更新クロックT12内の障害マイクロプロセッサのカウンタ値で上書きする(S125)。
LM更新クロックT11内のカウンタ値とターゲット更新クロックT12内のカウンタ値とが相違する場合(S124:YES)、障害マイクロプロセッサは、送信すべきパージメッセージを送信する前に、停止したと判定されるためである。共有メモリ131内の制御情報を書き換える際に、SM更新クロックT13内のカウンタ値は更新される。従って、障害マイクロプロセッサがパージメッセージの送信前に停止した場合でも、SM更新クロックT13内のカウンタ値は信頼することができる。
マイクロプロセッサ121は、自身が管理するローカルメモリ122内のキャッシュデータ(制御情報のコピーデータ)を全て破棄し、本処理を終了する(S126)。送信すべきパージメッセージを送信するよりも前に、障害マイクロプロセッサが停止したことは判明するが、制御情報のどの部分が更新されたのかを確認できないため、いったんキャッシュデータを全てクリアさせる。
図17は、障害マイクロプロセッサが障害から回復した場合の処理を示す。例えば、障害マイクロプロセッサを含むマイクロプロセッサパッケージ120が正常なマイクロプロセッサパッケージ120に交換された場合に、図17のフローチャートが実行される。なお、記憶制御装置10内にマイクロプロセッサパッケージ120を追加する場合にも、図17の処理を応用可能である。
障害から回復したマイクロプロセッサを、回復済マイクロプロセッサと呼ぶ。回復済マイクロプロセッサ121は、LM更新クロックT11内の回復済マイクロプロセッサのカウンタ値を、ターゲット更新クロックT12内の回復済マイクロプロセッサのカウンタ値で上書きする(S131)。これにより、回復済マイクロプロセッサが管理するLM更新クロックT11内の、回復済マイクロプロセッサのカウンタ値を正しい値に戻すことができる。
このように構成される本実施例も第1実施例と同様の効果を奏する。さらに、本実施例では、いずれかのマイクロプロセッサ121に障害が発生した場合でも適切に対応することができ、記憶制御装置10の信頼性が向上する。
図18に基づいて第4実施例を説明する。図18は、本実施例による記憶制御装置の要部を示すブロック図である。本実施例のマイクロプロセッサパッケージ120Aは、パッケージメモリ123を備えている。
マイクロプロセッサパッケージ120Aは、複数のサブパッケージ124と、複数のサブパッケージ124によって共有されるパッケージメモリ123とを備える。各サブパッケージ124は、マイクロプロセッサ121及びローカルメモリ122を備える。
パッケージメモリ123には、制御情報D10と、LM更新クロックT11及びターゲット更新クロックT12が記憶される。パージバッファT10は、各ローカルメモリ122内に設けられており、パッケージメモリ123内には設けられていない。各マイクロプロセッサ121のアクセス局所性を利用してパージメッセージの量を低減させるために、パージバッファT10はローカルメモリ122内に設ける。なお、パッケージメモリ123としては、比較的高速にアクセス可能なメモリ装置が使用される。
マイクロプロセッサパッケージ120A内の各マイクロプロセッサ121は、パッケージメモリ123内に記憶されている制御情報を使用する。同一のマイクロプロセッサパッケージ120A内に設けられている各マイクロプロセッサ121は、同一のパッケージメモリ123を共有しているため、マイクロプロセッサパッケージ120A内でパージメッセージを交換する必要はない。
本実施例では、マイクロプロセッサパッケージ120A間だけでパージメッセージ通信が行われる。従って、第1実施例よりもパージメッセージの通信頻度及び通信量を少なくすることができる。
なお、本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、各実施例を適宜組み合わせる構成としてもよい。

Claims (15)

  1. ホストコンピュータ(2,30)と記憶装置(151)との間のデータ入出力を制御する記憶制御装置(1,10)であって、
    共有制御情報を記憶する共有メモリ(4,131)と、
    複数のマイクロプロセッサ(6,121)と、
    前記各マイクロプロセッサにそれぞれ対応して設けられるローカルメモリ(7,122)であって、前記共有メモリに記憶される前記共有制御情報のうち少なくとも一部がローカル制御情報としてコピーされる各ローカルメモリと、
    前記各マイクロプロセッサのうちの一つのマイクロプロセッサから他の前記各マイクロプロセッサに、または、特定の一つまたは複数の前記マイクロプロセッサに、向けて送信されるパージメッセージであって、前記ローカルメモリに記憶されている前記ローカル制御情報が無効である旨を通知するためのパージメッセージを記憶するパージメッセージ記憶部(7B,T10)と、
    前記各ローカル制御情報が前記共有制御情報に同期しているか否かを管理するための制御情報同期管理部と、
    を備え、
    前記各マイクロプロセッサは、前記共有制御情報を更新する場合に、前記パージメッセージを作成して前記パージメッセージ記憶部に記憶させ、さらに、前記共有制御情報の更新と非同期で、前記パージメッセージ記憶部に記憶された前記パージメッセージを送信させる、
    記憶制御装置。
  2. 複数のマイクロプロセッサパッケージ(3,120)を備え、前記各マイクロプロセッサパッケージは、少なくとも一つの前記マイクロプロセッサと、少なくとも一つの前記ローカルメモリと、少なくとも一つの前記パージメッセージ記憶部とを備えており、
    前記各マイクロプロセッサパッケージと前記共有メモリとは、スイッチ(5,160)を介して接続されており、
    前記共有メモリには、前記共有制御情報に加えて、前記共有制御情報の更新状態を管理するための共有制御情報更新管理部(9,T13)が設けられており、
    前記各ローカルメモリには、前記ローカル制御情報及び前記パージメッセージ記憶部に加えて、ローカル制御情報の更新状態を管理するためのローカル更新管理部(7C,T11)と、前記共有制御情報更新管理部で管理されている前記更新状態を示す値のコピーを記憶する更新値記憶部(7D,T12)とが記憶されており、
    前記共有制御情報更新管理部は、前記各マイクロプロセッサパッケージ内の前記各マイクロプロセッサを識別するためのマイクロプロセッサ識別情報と、前記各マイクロプロセッサにより更新された回数を示すカウンタ値とを対応付けて管理しており、さらに、前記マイクロプロセッサにより前記共有制御情報が更新される場合に、更新元のマイクロプロセッサによって当該更新元のマイクロプロセッサに対応する前記カウンタ値が更新されるようになっており、
    前記各ローカル更新管理部も、前記各マイクロプロセッサ識別情報毎に前記カウンタ値を対応付けて管理しており、さらに、前記各ローカル更新管理部に対応する前記各マイクロプロセッサが前記ローカル制御情報を更新する場合に、その対応する前記マイクロプロセッサに関連するカウンタ値が更新されるようになっており、さらに、前記対応する前記マイクロプロセッサ以外の他の前記マイクロプロセッサに関連する前記パージメッセージに基づいて、前記他の前記マイクロプロセッサに対応するカウンタ値が更新されるようになっており、
    前記各更新値記憶部に対応する前記各マイクロプロセッサが前記共有メモリ内の前記共有制御情報にアクセスした場合に、前記共有制御情報更新管理部で管理されている前記各カウンタ値が取得されて、それら取得された前記各カウンタ値が前記更新値記憶部に上書きで記憶されるようになっており、
    前記共有メモリは、前記各マイクロプロセッサが前記各ローカルメモリにコピー可能な情報を記憶するための共有キャッシュ領域(8A,1311)と、前記各マイクロプロセッサのうちオーナーとして設定されるオーナーマイクロプロセッサのみが、前記オーナーマイクロプロセッサ内の前記ローカルメモリにコピー可能であり、かつ、前記オーナーマイクロプロセッサ以外の他のマイクロプロセッサはコピーできない情報を記憶するための排他キャッシュ領域(8B,1312)と、前記各マイクロプロセッサのいずれもが前記各ローカルメモリにコピーできない情報を記憶するための非キャッシュ領域(8C,1313)と、を備えており、
    前記共有キャッシュ領域には、比較的更新頻度が少ないが複数のマイクロプロセッサから比較的高頻度でアクセスされ得る第1情報(D1,D11)が記憶されるようになっており、
    前記排他キャッシュ領域には、前記オーナーマイクロプロセッサが比較的高頻度に参照または更新する第2情報(D2,D12)が記憶されるようになっており、
    前記非キャッシュ領域には、複数のマイクロプロセッサから比較的高頻度で参照または更新される第3情報(D3,D13)が記憶されるようになっており、
    前記各マイクロプロセッサは、
    前記共有キャッシュ領域に記憶されている情報を更新した場合には、前記更新のたびに前記パージメッセージを作成して前記パージメッセージ記憶部に記憶させ、一連の更新処理が完了した後で、前記パージメッセージ記憶部に記憶された前記各パージメッセージを他の各マイクロプロセッサにそれぞれ送信し、
    前記排他キャッシュ領域に記憶されている情報を更新する場合において、自分が前記オーナーマイクロプロセッサである場合は、前記パージメッセージを作成せず、自分が前記オーナーマイクロプロセッサ以外の他のマイクロプロセッサである場合は、更新のたびに前記パージメッセージを作成して前記パージメッセージ記憶部に記憶させ、一連の更新処理が完了した後で、前記パージメッセージ記憶部に記憶された前記各パージメッセージを前記オーナーマイクロプロセッサのみに送信し、
    前記非キャッシュ領域に記憶されている情報を更新した場合には、前記パージメッセージを作成しないようになっており、
    さらに、前記各マイクロプロセッサは、前記共有制御情報のうち同一箇所の更新、または、連続する箇所の更新、または、重複する箇所の更新がされた場合には、複数の更新を統合するようにして前記パージメッセージを送信させるようになっている、
    請求項1に記載の記憶制御装置。
  3. 前記各マイクロプロセッサは、前記制御情報同期管理部に基づいて前記各ローカル制御情報が前記共有制御情報に同期していると判定される場合は、対応する前記各ローカルメモリから前記ローカル制御情報を使用し、前記制御情報同期管理部に基づいて前記各ローカル制御情報が前記共有制御情報に同期していないと判定される場合は、前記共有メモリ内の前記共有制御情報を使用する、
    請求項1に記載の記憶制御装置。
  4. 前記共有メモリには、前記共有制御情報に加えて、前記共有制御情報の更新状態を管理するための共有制御情報更新管理部(9,T13)が設けられており、
    前記各ローカルメモリには、前記ローカル制御情報及び前記パージメッセージ記憶部に加えて、ローカル制御情報の更新状態を管理するためのローカル更新管理部(7C,T11)と、前記共有制御情報更新管理部で管理されている前記更新状態を示す値のコピーを記憶する更新値記憶部(7D,T12)とが記憶されており、
    前記制御情報同期管理部は、前記共有制御情報更新管理部と、前記各ローカル更新管理部と、前記各更新値管理部とを備えて構成される、
    請求項1に記載の記憶制御装置。
  5. 前記共有制御情報更新管理部は、前記各マイクロプロセッサパッケージ内の前記各マイクロプロセッサを識別するためのマイクロプロセッサ識別情報と、前記各マイクロプロセッサにより更新された回数を示すカウンタ値とを対応付けて管理しており、さらに、前記マイクロプロセッサにより前記共有制御情報が更新される場合に、更新元のマイクロプロセッサによって当該更新元のマイクロプロセッサに対応する前記カウンタ値が更新されるようになっており、
    前記各ローカル更新管理部も、前記各マイクロプロセッサ識別情報毎に前記カウンタ値を対応付けて管理しており、さらに、前記各ローカル更新管理部に対応する前記各マイクロプロセッサが前記ローカル制御情報を更新する場合に、その対応する前記マイクロプロセッサに関連するカウンタ値が更新されるようになっており、さらに、前記対応する前記マイクロプロセッサ以外の他の前記マイクロプロセッサに関連する前記パージメッセージに基づいて、前記他の前記マイクロプロセッサに対応するカウンタ値が更新されるようになっている、
    請求項4に記載の記憶制御装置。
  6. 前記各更新値記憶部に対応する前記各マイクロプロセッサが前記共有メモリ内の前記共有制御情報にアクセスした場合に、前記共有制御情報更新管理部で管理されている前記各カウンタ値が取得されて、それら取得された前記各カウンタ値が前記更新値記憶部に上書きで記憶されるようになっている、
    請求項5に記載の記憶制御装置。
  7. 前記共有メモリは、
    前記各マイクロプロセッサが前記各ローカルメモリにコピー可能な情報を記憶するための共有キャッシュ領域(8A,1311)と、
    前記各マイクロプロセッサのうちオーナーとして設定されるオーナーマイクロプロセッサのみが、前記オーナーマイクロプロセッサ内の前記ローカルメモリにコピー可能であり、かつ、前記オーナーマイクロプロセッサ以外の他のマイクロプロセッサはコピーできない情報を記憶するための排他キャッシュ領域(8B,1312)と、
    を備えている、
    請求項1に記載の記憶制御装置。
  8. 前記共有メモリは、
    前記各マイクロプロセッサが前記各ローカルメモリにコピー可能な情報を記憶するための共有キャッシュ領域(8A,1311)と、
    前記各マイクロプロセッサのいずれもが前記各ローカルメモリにコピーできない情報を記憶するための非キャッシュ領域(8C,1313)と、
    を備えている、
    請求項1に記載の記憶制御装置。
  9. 前記共有メモリは、
    前記各マイクロプロセッサのうちオーナーとして設定されるオーナーマイクロプロセッサのみが、前記オーナーマイクロプロセッサ内の前記ローカルメモリにコピー可能であり、かつ、前記オーナーマイクロプロセッサ以外の他のマイクロプロセッサはコピーできない情報を記憶するための排他キャッシュ領域(8B,1312)と、
    前記各マイクロプロセッサのいずれもが前記各ローカルメモリにコピーできない情報を記憶するための非キャッシュ領域(8C,1313)と、
    を備えている、
    請求項1に記載の記憶制御装置。
  10. 前記共有メモリは、
    前記各マイクロプロセッサが前記各ローカルメモリにコピー可能な情報を記憶するための共有キャッシュ領域(8A,1311)と、
    前記各マイクロプロセッサのうちオーナーとして設定されるオーナーマイクロプロセッサのみが、前記オーナーマイクロプロセッサ内の前記ローカルメモリにコピー可能であり、かつ、前記オーナーマイクロプロセッサ以外の他のマイクロプロセッサはコピーできない情報を記憶するための排他キャッシュ領域(8B,1312)と、
    前記各マイクロプロセッサのいずれもが前記各ローカルメモリにコピーできない情報を記憶するための非キャッシュ領域(8C,1313)と、
    を備えている、
    請求項1に記載の記憶制御装置。
  11. 前記共有キャッシュ領域には、比較的更新頻度が少ないが複数のマイクロプロセッサから比較的高頻度でアクセスされ得る第1情報(D1,D11)が記憶されるようになっており、
    前記排他キャッシュ領域には、前記オーナーマイクロプロセッサが比較的高頻度に参照または更新する第2情報(D2,D12)が記憶されるようになっており、
    前記非キャッシュ領域には、複数のマイクロプロセッサから比較的高頻度で参照または更新される第3情報(D3,D13)が記憶されるようになっている、
    請求項10に記載の記憶制御装置。
  12. 前記各マイクロプロセッサは、
    前記共有キャッシュ領域に記憶されている情報を更新した場合には、前記更新のたびに前記パージメッセージを作成して前記パージメッセージ記憶部に記憶させ、一連の更新処理が完了した後で、前記パージメッセージ記憶部に記憶された前記各パージメッセージを他の各マイクロプロセッサにそれぞれ送信し、
    前記排他キャッシュ領域に記憶されている情報を更新する場合において、自分が前記オーナーマイクロプロセッサである場合は、前記パージメッセージを作成せず、自分が前記オーナーマイクロプロセッサ以外の他のマイクロプロセッサである場合は、更新のたびに前記パージメッセージを作成して前記パージメッセージ記憶部に記憶させ、一連の更新処理が完了した後で、前記パージメッセージ記憶部に記憶された前記各パージメッセージを前記オーナーマイクロプロセッサのみに送信し、
    前記非キャッシュ領域に記憶されている情報を更新した場合には、前記パージメッセージを作成しないようになっている、
    請求項10または請求項11のいずれかに記載の記憶制御装置。
  13. 前記各マイクロプロセッサは、前記共有制御情報のうち同一箇所の更新、または、連続する箇所の更新、または、重複する箇所の更新がされた場合に、複数の更新を統合するようにして前記パージメッセージを送信させる、
    請求項1に記載の記憶制御装置。
  14. 前記各マイクロプロセッサは、
    他の各マイクロプロセッサが正常に監視しているか否かを監視しており(S120)、
    いずれかのマイクロプロセッサで障害が発生した場合には(S121)、前記共有制御情報更新管理部で管理されている各カウント値を取得して前記更新値記憶部に上書きで記憶し(S123)、
    前記障害の発生した前記マイクロプロセッサについて、前記ローカル更新管理部で管理されているカウント値と前記更新値管理部に記憶されているカウント値と異なるか否かを判定し(S124)、
    前記ローカル更新管理部で管理されているカウント値と前記更新値管理部に記憶されているカウント値とが異なる場合、前記ローカル更新管理部で管理されている前記障害の発生した前記マイクロプロセッサの前記カウント値を、前記更新値管理部内の対応するカウント値で上書きし(S125)、
    前記ローカルメモリにコピーされているローカル制御情報をクリアさせる(S126)、
    請求項1に記載の記憶制御装置。
  15. 共有制御情報を記憶する共有メモリ(4,131)と、複数のマイクロプロセッサ(6,121)と、前記各マイクロプロセッサにそれぞれ対応して設けられるローカルメモリ(7,122)とを備える記憶制御装置の制御方法であって、
    前記各ローカルメモリには、前記共有メモリに記憶される前記共有制御情報のうち少なくとも一部がローカル制御情報としてコピーされており、
    前記共有制御情報を更新する場合には、更新元のマイクロプロセッサに対応する前記ローカルメモリ以外の他の前記各ローカルメモリに記憶されている前記ローカル制御情報が無効であることを示すパージメッセージを作成して保存し、
    前記共有制御情報を更新する一連の処理が完了した場合に、前記保存されている前記パージメッセージを前記他の前記各ローカルメモリに対応する前記各マイクロプロセッサに送信し、
    前記パージメッセージを受信した前記他の前記各マイクロプロセッサは、前記無効とされた箇所の情報を使用する場合に、前記共有メモリにアクセスして取得するようになっている、
    記憶制御装置の制御方法。
JP2011514949A 2009-02-17 2009-02-17 記憶制御装置及び記憶制御装置の制御方法 Expired - Fee Related JP5198659B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/000645 WO2010095166A1 (en) 2009-02-17 2009-02-17 Storage controller and method of controlling storage controller

Publications (2)

Publication Number Publication Date
JP2012504792A true JP2012504792A (ja) 2012-02-23
JP5198659B2 JP5198659B2 (ja) 2013-05-15

Family

ID=40801761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011514949A Expired - Fee Related JP5198659B2 (ja) 2009-02-17 2009-02-17 記憶制御装置及び記憶制御装置の制御方法

Country Status (4)

Country Link
US (1) US8527710B2 (ja)
EP (1) EP2344947B1 (ja)
JP (1) JP5198659B2 (ja)
WO (1) WO2010095166A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014527204A (ja) * 2011-10-07 2014-10-09 株式会社日立製作所 ストレージシステム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223699B2 (en) * 2013-03-15 2015-12-29 Intel Corporation Cache management in managed runtime environments
WO2015030819A1 (en) * 2013-08-30 2015-03-05 Hewlett-Packard Development Company, L.P. Completion packet return
US20150370707A1 (en) * 2014-06-24 2015-12-24 Qualcomm Incorporated Disunited shared-information and private-information caches
US10705958B2 (en) * 2018-08-22 2020-07-07 Advanced Micro Devices, Inc. Coherency directory entry allocation based on eviction costs

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02226449A (ja) * 1989-02-28 1990-09-10 Toshiba Corp キャッシュメモリ制御方式
JPH05298122A (ja) * 1992-04-17 1993-11-12 Daikin Ind Ltd マルチタスク処理装置
JPH09138783A (ja) * 1995-11-15 1997-05-27 Hitachi Ltd マルチプロセッサシステム
JPH10301659A (ja) * 1997-04-28 1998-11-13 Hitachi Ltd マイクロプロセッサ
JPH11102321A (ja) * 1997-09-26 1999-04-13 Nec Corp 分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式
JPH11272552A (ja) * 1998-03-24 1999-10-08 Mitsubishi Electric Corp ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
JP2003044358A (ja) * 2001-07-31 2003-02-14 Mitsubishi Electric Corp キャッシュメモリ制御装置
JP2003316753A (ja) * 2002-04-26 2003-11-07 Fujitsu Ltd マルチプロセッサ装置
JP2006011932A (ja) * 2004-06-28 2006-01-12 Hitachi Ltd ストレージ装置及びストレージ装置の排他制御方法
JP2007249573A (ja) * 2006-03-15 2007-09-27 Hitachi Ltd 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
JP2007280127A (ja) * 2006-04-07 2007-10-25 Oki Electric Ind Co Ltd プロセッサ間通信方法
JP2008065706A (ja) * 2006-09-08 2008-03-21 Hitachi Ltd 記憶システム及びその制御方法並びに記憶制御装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340046A (ja) * 1989-07-06 1991-02-20 Hitachi Ltd キャッシュメモリ制御方式および情報処理装置
US5506967A (en) * 1993-06-15 1996-04-09 Unisys Corporation Storage queue with adjustable level thresholds for cache invalidation systems in cache oriented computer architectures
JP3858492B2 (ja) * 1998-12-28 2006-12-13 株式会社日立製作所 マルチプロセッサシステム
JP2002032265A (ja) * 2000-07-14 2002-01-31 Hitachi Ltd キャッシュ・アクセス制御方式およびデータ処理システム
US7243229B2 (en) * 2001-10-02 2007-07-10 Hitachi, Ltd. Exclusive access control apparatus and method
US7117315B2 (en) * 2002-06-27 2006-10-03 Fujitsu Limited Method and apparatus for creating a load module and a computer product thereof
JP2005267008A (ja) * 2004-03-17 2005-09-29 Hitachi Ltd ストレージ管理方法およびストレージ管理システム
JP4794194B2 (ja) 2005-04-01 2011-10-19 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP4859471B2 (ja) * 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ
JP5183403B2 (ja) 2008-09-30 2013-04-17 株式会社日立製作所 ストレージシステムおよび制御プログラムならびにストレージシステム制御方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02226449A (ja) * 1989-02-28 1990-09-10 Toshiba Corp キャッシュメモリ制御方式
JPH05298122A (ja) * 1992-04-17 1993-11-12 Daikin Ind Ltd マルチタスク処理装置
JPH09138783A (ja) * 1995-11-15 1997-05-27 Hitachi Ltd マルチプロセッサシステム
JPH10301659A (ja) * 1997-04-28 1998-11-13 Hitachi Ltd マイクロプロセッサ
JPH11102321A (ja) * 1997-09-26 1999-04-13 Nec Corp 分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式
JPH11272552A (ja) * 1998-03-24 1999-10-08 Mitsubishi Electric Corp ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
JP2003044358A (ja) * 2001-07-31 2003-02-14 Mitsubishi Electric Corp キャッシュメモリ制御装置
JP2003316753A (ja) * 2002-04-26 2003-11-07 Fujitsu Ltd マルチプロセッサ装置
JP2006011932A (ja) * 2004-06-28 2006-01-12 Hitachi Ltd ストレージ装置及びストレージ装置の排他制御方法
JP2007249573A (ja) * 2006-03-15 2007-09-27 Hitachi Ltd 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
JP2007280127A (ja) * 2006-04-07 2007-10-25 Oki Electric Ind Co Ltd プロセッサ間通信方法
JP2008065706A (ja) * 2006-09-08 2008-03-21 Hitachi Ltd 記憶システム及びその制御方法並びに記憶制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014527204A (ja) * 2011-10-07 2014-10-09 株式会社日立製作所 ストレージシステム

Also Published As

Publication number Publication date
EP2344947B1 (en) 2012-07-04
WO2010095166A1 (en) 2010-08-26
EP2344947A1 (en) 2011-07-20
US20110029736A1 (en) 2011-02-03
US8527710B2 (en) 2013-09-03
JP5198659B2 (ja) 2013-05-15

Similar Documents

Publication Publication Date Title
JP4738941B2 (ja) ストレージシステム及びストレージシステムの管理方法
US7783850B2 (en) Method and apparatus for master volume access during volume copy
JP4387116B2 (ja) ストレージシステムの制御方法、及びストレージシステム
US9069476B2 (en) Method for managing storage system using flash memory, and computer
US9262265B2 (en) Storage system and storage control apparatus
US8495288B2 (en) Storage controller and duplicated data detection method using storage controller
US20150012699A1 (en) System and method of versioning cache for a clustering topology
US8825975B2 (en) Caching source blocks of data for target blocks of data
US8949536B2 (en) Prefetching source tracks for destaging updated tracks in a copy relationship
US20050182906A1 (en) Systems and methods for cache synchronization between redundant storage controllers
JP7010809B2 (ja) デデュープ可能なメモリキャッシュ及びそのための動作方法
US20150339058A1 (en) Storage system and control method
US8627011B2 (en) Managing metadata for data in a copy relationship
US10754780B2 (en) Maintaining track format metadata for target tracks in a target storage in a copy relationship with source tracks in a source storage
JP4920291B2 (ja) 計算機システム、アクセス制御方法及び管理計算機
JP4911198B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
CN100421080C (zh) 改善资料写入效率的方法以及实施此方法的子系统与系统
JP5198659B2 (ja) 記憶制御装置及び記憶制御装置の制御方法
JP2008269374A (ja) ストレージシステムおよびその制御方法
CN110502188A (zh) 一种基于数据库读写性能的数据存储方法与装置
WO2015011825A1 (ja) ストレージシステムおよびストレージシステムの制御方法
CN106610788B (zh) 硬盘阵列控制方法及装置
US6732194B1 (en) Method and apparatus for multi-sequential data operations
EP1855187A2 (en) Computer system for managing number of writes for storage medium and control method therefor
US9864688B1 (en) Discarding cached data before cache flush

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120820

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130206

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

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5198659

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees