JP2000267815A - ディスクアレイ制御装置 - Google Patents

ディスクアレイ制御装置

Info

Publication number
JP2000267815A
JP2000267815A JP11071400A JP7140099A JP2000267815A JP 2000267815 A JP2000267815 A JP 2000267815A JP 11071400 A JP11071400 A JP 11071400A JP 7140099 A JP7140099 A JP 7140099A JP 2000267815 A JP2000267815 A JP 2000267815A
Authority
JP
Japan
Prior art keywords
shared memory
path
processing
double
disk array
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
JP11071400A
Other languages
English (en)
Other versions
JP3716126B2 (ja
Inventor
Atsushi Tanaka
淳 田中
Akira Fujibayashi
昭 藤林
Kazuhisa Fujimoto
和久 藤本
Hiroki Kanai
宏樹 金井
Nobuyuki Minowa
信幸 箕輪
Hikari Mikami
光 三上
Makoto Asari
誠 浅利
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 Software Engineering Co Ltd
Hitachi Ltd
Hitachi Advanced Digital Inc
Original Assignee
Hitachi Software Engineering Co Ltd
Hitachi Ltd
Hitachi Video and Information System Inc
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 Software Engineering Co Ltd, Hitachi Ltd, Hitachi Video and Information System Inc filed Critical Hitachi Software Engineering Co Ltd
Priority to JP07140099A priority Critical patent/JP3716126B2/ja
Priority to EP00104378A priority patent/EP1037137A3/en
Priority to US09/526,461 priority patent/US6502167B1/en
Publication of JP2000267815A publication Critical patent/JP2000267815A/ja
Priority to US10/294,691 priority patent/US6629204B2/en
Application granted granted Critical
Publication of JP3716126B2 publication Critical patent/JP3716126B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error 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 interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 ディスクアレイ制御装置において、2重化さ
れた共有メモリのメアクセスの応答時間の短縮と、処理
トランザクション数の増加にある。 【解決手段】 ホストコンピュータ/ディスク装置との
複数のインタフェース部と、各インタフェース部とそれ
ぞれアクセスパスにより1対1に接続される2重化され
た共有メモリ部と、上記複数のインタフェース部に接続
されるセレクタと、上記セレクタに接続されるキャッシ
ュメモリとを設ける。上記複数のインタフェース部と上
記セレクタとの間のアクセスパスの本数は、上記キャッ
シュメモリと上記セレクタとの間のアクセスパスの本数
よりも多くする。上記複数のインタフェース部の上記プ
ロセッサは、上記2重化された共有メモリ部に2重ライ
トを行う。 【効果】 メモリアクセスの応答時間の短縮、処理トラ
ンザクション数の増加を図れる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ホストコンピュー
タ又はディスク装置とのインタフェース部を制御する複
数のCPUと、制御情報を格納する複数のメモリを含ん
で構成されるディスクアレイ制御装置に関する。
【0002】
【従来の技術】共有メモリ型マルチプロセッサシステム
を用いるディスクアレイ制御装置として、図21に示す
構成のものが知られている。図21に示す制御装置で
は、複数のCPU−PK(パッケージ)2101と、制
御情報を格納する共有メモリを搭載する共有メモリパッ
ケージ(SM−PK)#A 2103、及び共有メモリ
パッケージ(SM−PK)#B 2104とが、共有メ
モリバス2102を介して接続されている。各CPU−
PKは、ホストコンピュータ又はディスク装置の何れか
に接続される。各CPU−PKは、複数のCPUを有し
ており、各CPUは、共有メモリに格納されている制御
情報を用いて、ホストコンピュータ又はディスク装置か
らのデータ転送、又はホストコンピュータ又はディスク
装置へのデータ転送を制御等を行う。
【0003】また、従来のメモリ制御装置では、メモリ
アクセスの応答時間の短縮、処理トランザクション数の
増大を図るため、複数のCPUとメモリとの間を複数の
バスで接続したものがある。また、処理トランザクショ
ン数を増加させるには、処理トランザクションをそれら
複数のバスに最適に振り分ける必要がある。トランザク
ションを振り分ける技術に関しては、特開平9−146
863号公報に、各パスの使用、未使用のフラグを見て
トランザクションを振り分ける旨が開示されている。
【0004】また、、従来のメモリ制御装置では、信頼
性を向上させるため、バスを2系統化、メモリを2重化
したものがある。このようなメモリ制御装置は、例え
ば、特開平9−325916号公報に、メモリアクセス
に関して2本のバスを使うことにより、処理トランザク
ション数を増大させ、同時にデータの信頼性を向上する
ために重要なデータは2個のメモリに2重化ライトして
いる。この様な方式では非同期な複数メモリに同一デー
タを書くため、同時に複数の2重ライトが発生するとデ
ータの不一致またはデットロックを起こす可能性があ
る。ここでは2重ライトについて、メモリアドレス毎に
使用するバスを固定することによりアクセス経路を単一
化し、データの不一致またはデットロックの問題を避け
ている。
【0005】しかし、このような方式では、多数のアク
セスが発生した場合、バスでの処理がシリアルになり応
答時間、処理トランザクション数に関して性能ボトルネ
ックとなる。またバスを2重化したとはいえ、バスの故
障が発生した場合、接続しているCPUはすべて影響を
受けることになる。
【0006】性能、信頼性の向上を図ったものとして
と、CPUとメモリの間を一対一に接続するスター接続方
式がある。特開昭58−16362号公報には、各CP
Uから2重化された各メモリに対し、1本づつパスが接
続されている。この方式は、上述の方式に比較して同時
にアクセスできるパス数が増え、処理トランザクション
数もさらに増大する。また、各CPU毎にパスが接続さ
れているので、本方式は、上述の方式に比較し、1本の
パスの故障により影響を受けるCPUの範囲は狭く、信
頼性も高い。さらに、この技術では,2重ライト処理時
のデータの不一致またはデットロックを避けるために、
共有メモリ間インターフェィスをもうけている。
【0007】
【発明が解決しようとする課題】ディスクアレイ制御装
置において、共有メモリではキャッシュメモリほど大量
のデータの転送は必要としないが、トランザクション数
を増加させ、一回の転送の応答時間の短縮が必要であ
る。したがって、特開昭58−16362号公報に記載
されている技術のように、各CPUと共有メモリとの間
を1対1接続するのが適している。
【0008】一方、各CPUとキャッシュメモリとの間
では、大量のデータを高速に転送する必要があるので、
これらの間のアクセスパス数を増やす必要がある。その
ためには、特開昭58−16362号公報に記載されて
いる技術のように、これらの間を1対1接続するのが適
している。
【0009】しかし、キャッシュメモリを構成するパッ
ケージに実装できるコネクタ数、又は、各メモリを構成
するLSIに実装できるピン数の数には物理的に限りが
あるので、各CPUと共有メモリとの間のアクセスパス
数を増やすことには限界がある。
【0010】また、上述のように,処理トランザクショ
ン数を増加し、信頼性を向上するには,バス接続方式よ
りスター接続方式の方が優れているが、特開昭58-1
6362号公報に開示された技術では、2重ライト処理
用に共有メモリ間にインターフェィスを設けているた
め、このインターフェィスに障害が発生すると共有メモ
リ全体が使用できなくなるという問題がある。また、2
重ライト時には両方の共有メモリをすべてロックして他
のアクセスを拒絶するため、処理トランザクション数が
減少するという問題もある。さらに、パスの本数を単純
に増やしても、先ほどのバス方式の様に2重ライトをシ
リアルに処理する必要があるので、トランザクション数
はそれほど増加しない。また各CPUと共有メモリ間の
パスは1本なので,そのパスに障害が発生した場合,デ
ータにアクセスできなくなる可能性がある。
【0011】そこで、本発明の目的は、複数のCPUと
2重化された各メモリとの間を、メモリアクセスの応答
時間の短縮と、処理トランザクション数を増加させるこ
とにある。
【0012】また、2重ライト時にデータの不一致また
はデットロックを起こさないパスの選択制御手段を提供
することにある。
【0013】
【課題を解決するための手段】上記問題を解決するため
に、本発明はCPUと各共有メモリパスを接続し、制御
を行う共有メモリバスインターフェィス部に各パスの使
用状況を示すパスロックテーブルを設け、共有メモリと
各共有メモリパスを接続し制御する共有メモリ制御回路
にメモリのロック情報を示すメモリロックテーブルを設
ける。2重ライト以外の処理(1重リード、1重ライ
ト、アトミックモディファイ)の場合は各パスの中で処
理待ちトランザクション数を示す、バスキュー長の短い
パスを選択する。2重ライト、2重アトミックモディフ
ァイの場合、パスを選択する時に上記パスロックテーブ
ルを参照し、既に処理中の2重ライト数が一定数以下な
ら2重処理を開始し一定数以上なら待つ。さらに2重ラ
イトするパスを選択する際に、すでに処理中の2重ライ
ト処理とは異なるパスで処理を行う様にパスを選択す
る。
【0014】
【発明の実施の形態】以下、本発明の実施例について説
明する。
【0015】まず、最初に、本発明のディスクアレイ制
御装置の全体構成例を図2を用いて説明する。ディスク
アレイ制御装置610は、上位装置500と、磁気ディ
スク570、580等に接続されている。500は汎用
コンピュータ、ワークステーション、パーソナルコンピ
ュータに代表される上位装置(ホスト)であり、二次記
憶装置に対してリード、ライト等の命令を発行し、結果
を受けとる。CHA−PK510、520はチャネルア
ダプタパッケージであり、上位装置500からの命令を
受け取り、キャッシュ550、共有メモリ560、DK
A-PK530、540をアクセスする。DKA-PK5
30、540はディスクアダプタパッケージであり、共
有メモリ560またはCHA-PK510、520から
の命令により、磁気ディスク570、580、590、
600をアクセスする。ここでCHA-PK510、5
20、DKA-PK530、540は図1のCPU−P
K10等と同じ構成になっている。511、512、5
13、514、521、522、523、524、53
3、534、543、544はCPUであり各パッケー
ジを制御する。DDTA515、525、533、54
3は、上位装置500または磁気ディスク570、58
0、590、600とキャッシュ550との間のデータ
の送受信を行う。MPA516、526、534、54
4は、各CPUと共有メモリ560との間の共有データ
のやり取りを制御する。550はキャッシュであり、上
位装置500または磁気ディスク570、580、59
0、600のデータを一時的に格納する。Select
or551、552、553、554は、DDTA51
5、525、533、543とCache555、556、
557、558との間の接続を制御する。555、55
6、557、558はCacheであり、各Selec
torから来るデータを格納する制御回路とメモリであ
る。560は共有メモリであり上位装置500との応
答、キャッシュ550、磁気ディスク570、580、
590、600のデータのアクセスに関する制御データ
を格納する。561、562はSMA-A、Bであり、各
MPAから来る制御データを格納する制御回路とメモリ
である。ここでSMA-A561、SMA-B562は図
1のSMA-PK#A120、SMA-PK#B140と
同じ構成を取っている。570、580、590、60
0は磁気ディスクであり、データを格納し必要とあれば
キャッシュ550にデータをロードする。
【0016】DDTA515、525等とCache5
55、556等との間では、大量のデータを高速に転送
する必要があるので、DDTA515、525等とCa
che555、556等との間のアクセスパス数を増や
す必要がある。そのためには、DDTA515、525
等とCache555、556等との間を1対1接続す
るのが適している。しかし、Cache555、556
等を構成するパッケージに実装できるコネクタ数、又
は、キャッシュ113を構成するLSIに実装できるピ
ン数の数には物理的に限りがあるので、DDTA51
5、525等とCache555、556等との間のア
クセスパス数を増やすことには限界がある。そこで、D
DTA515、525等とCache555、556等
との間にセレクタ551、552等を設け、DDTA5
15、525等とセレクタ551、552等との間を1
対1接続することにより、DDTA515、525等と
セレクタ551、552等との間のアクセスパス数を増
やす。一方、セレクタ551、552等で、複数のDD
TA515、525等からのアクセス要求を所定数に絞
ることにより、Cache555、556等とセレクタ
551、552等との間のアクセスパス数を、DDTA
515、552等とCache555、556等との間
のアクセスパス数よりも減らし、上述のコネクタ数、又
はピン数の問題を解決している。
【0017】一方、共有メモリではキャッシュメモリほ
ど大量のデータの転送は必要としないが、トランザクシ
ョン数を増加させ、一回の転送の応答時間の短縮が必要
である。そこで、SMA−A561、SMA−B562
と各CPU−PKとの間は、セレクタ部での遅延を避け
るため、セレクタを介さずに接続している。ただし、M
PAとSMA−A、SMA−Bとの間にも、セレクタを
設ける構成してもよい。
【0018】なお、以下の説明で利用するディスクアレ
イ制御装置の構成図では、キャッシュメモリを省略して
いる。
【0019】[実施例1]図1は、本発明のディスクア
レイ制御装置の一実施例を示している。
【0020】10,40,50はCPUパッケージ(C
PU-PK#1、#2、#3)であり,複数のCPU,
メモリ等からなる。15,18はCPUであり各メモリ
のリード,ライト,演算,命令実行を行う。20,23
はローカルメモリであり各CPUに必要な情報,プログ
ラムを格納する。25,28はローカルバス回路であり
CPU15,ローカルメモリ20,共有メモリインター
フェィス30を接続し,互いのデータのやり取りを管理
する。30は共有メモリインターフェィス(MPA)で
あり,CPU15,18等と共有メモリパス(60〜1
15)との間を接続しデータのやり取りを制御する。共
有メモリインターフェィス30は内部にバスロックテー
ブルを持ち,パスの選択,排他処理を行う際に用いる。
60,65,70,75,80,85,90,95,1
00,105,110,115は共有メモリバスであ
り,CPU15,18と共有メモリ130,150との
間で送信されるデータは、この共有メモリバスを用いて
送信される。120はSMA-PK#A、140はSMA-
PK#Bであり、各MPAから来る制御データを格納す
る制御回路とメモリである。SMA-PK#A120と
SMA-PK#B140はメモリの一部が互いに対とな
っており、2重化されている。125は共有メモリ制御
回路A(SMA-A),145は共有メモリ制御回路B
(SMA-A)であり各CPUパッケージからくる共有
メモリアクセスを処理する。126、146はメモリロ
ックテーブルであり、共有メモリのロック情報を管理す
る。130、150は共有メモリであり、各CPU間で
共有する制御情報等を格納する。
【0021】図3は、図1の構成を更に詳細に説明した
ものである。
【0022】CPU-PK#1(10)内の共有メモリ
バスインターフェィス(MPA)内には、バスロックテーブ
ル31以外に、各パス毎に処理待ちトランザクションを
登録するキューがある。32はA面バス0キュー、33
はA面バス1キュー、34はB面パス0キュー、35は
B面バス1キューである。MPA30はこのキュー並ん
でいる順番通りにトランザクションを各パスに通す。ま
たこのキューで処理を待っているトランザクションの数
をバスキュー長としてカウントし、バスロックテーブル
31に記録する。また現在処理中のアクセスの種類や、
キュー内にある2重アクセスの数等もバスロックテーブ
ル31に記録する。CPU-PK10からSMA-PK1
25、145へは各2本のパスがあり、よって最大で同
時に4回のアクセスが処理できることになる。各パスか
らのアクセス要求を受けた共有メモリ制御回路-A12
5、共有メモリ制御回路-A145はアクセス要求の優
先順位を決めて、共有メモリ130、150のアクセス
を行う。その際メモリロックテーブルにアクセス中のア
ドレスを記憶し、他のアクセスがそのアドレスを後から
要求しても排他する。また2重ライトの場合、A面の共
有メモリ130、B面の共有メモリ150の内、先にラ
イトする方をマスタとし後でライトする方をスレーブと
する。この順番はユーザが設定したデータ長によってマ
スタ、スレーブが入れ替わる。図3の例ではA面の0x0
0..000から0xA0..000までがマスタ面であるとすると、
次の0xB0..000まではスレーブ面となる。その時B面は0
x00..000から0xA0..000までがスレーブ面であり、次の0
xB0..000まではマスタ面となる。この方式によって従来
ではシリアルに処理していた2重ライトを、条件によっ
ては並列に処理することが可能となる。図3の例では2
重ライト、リード領域についてのみ示しているが、1重
ライト、リード領域の場合A面とB面では異なるアドレ
スが割り当てられるので、上記に示したようなマスタ、
スレーブの設定はない。
【0023】図4を用いて、本発明の実施例1を適用し
た場合の利点を示す。2重ライトが効率よく処理できる
例では、2個の2重ライトに対し、互い異なる共有メモ
リがマスタに割り当てられた場合に、マスタ面のアクセ
ス、スレーブ面のアクセスに対し、4本のパスを使い分
けることによってほぼ平行してアクセスが可能になる。
よって処理トランザクション数を増加させることが可能
になる。ただし、2重ライトでデッドロックが生じる例
にあるようにパスの選択を間違えると、お互いに相手が
使いたいパスを占有し続けデッドロックが生じ、処理は
前に進まなくなる。よってバスロックテーブル31やメ
モリロックテーブル126、146を用いてデッドロッ
クの無いバスの選択を行う必要がある。
【0024】図5は、バスロックテーブル31を示す。
400は共有メモリ面であり、パスの接続している共有
メモリ面を示している。405は使用バス番号であり、
システム全体で何番目のパスなのかを示す。410はバ
スキュー長でパスのキューで処理を順番待ちしているト
ランザクション数を示している。415はキュー内の2
重アクセスであり、処理中または待ち行列に並んでいる
トランザクションの中に2重ライトが含まれているかど
うかを示している。420は処理中のアクセス種類であ
り、処理中のアクセスが1重リード、1重ライト、2重
ライト、アトミックモディファイ(リード、ライト)、
2重アトミックモデファイ(リード、ライト)のどれで
あるかを示す。425は処理中のロックの有無であり、
アトミックモディファイの様に処理中のリードの終了後
もパスをロックし続けるか否かを示す。430は処理中
のマスタ、スレーブの有無を示し、処理中のアクセスが
マスタ側なのか、スレーブ側なのかを示している。
【0025】図6は、メモリロックテーブル126、1
46を示す。450は使用バス番号であり、システム全
体で何番目のパスからのアクセスなのかを示す。455
は排他開始アドレスであり、アクセスしている共有メモ
リの先頭アドレスを示す。460は排他終了アドレスで
あり、アクセスしている共有メモリの終端アドレスを示
す。排他開始アドレス455と排他終了アドレス460
の範囲のデータは排他となり、他のアクセスはできない
ことになる。また排他するデータ長はユーザが前もって
設定する。465はロックアクセスの有無であり、マス
タ、アトミックモディファイの場合は共有メモリ13
0、150のアクセス終了後も排他を解除しないことを
示す。アクセスが完全に終了後、共有メモリバスインタ
ーフェィス30からの命令によって初めてこのロックは
解除され、ロックアクセスの有無の欄は空欄になる。
【0026】図7に本発明の実施例1における1重ライ
ト、1重リードの動作を示す。以下特に断らない限り図
2の構成を例に説明する。(1)1重ライトの動作では
アドレス、コマンド、データはCPU15、18からロ
ーカルバス回路25、28を通してMPA30に送信さ
れ、MPA30から共有メモリパスの0番目60、70
または1番目65、75のバスを選択してSMA-PK
#A120、SMA-PK#B140の共有メモリ制御
回路125、145へ送られる。ライト処理が終了する
と終了情報を乗せたステータスがSMAから同じ共有メ
モリバスを通してMPA30に送信され、MPA30か
らローカルパス回路25、28を通して次の送信が可能
であることを示すレディがCPU15、18に戻され
る。(2)のリードの動作ではアドレス、コマンドはC
PU15、18からローカルバス回路25、28を通し
てMPA30に送信され、MPA30から共有メモリパ
スの0番目60、70または1番目65、75のバスを
選択してSMAの共有メモリ制御回路125、145へ
送られる。リード処理が終了するとデータ、ステータス
がSMAの共有メモリ制御回路125、145から同じ
共有メモリバスを通してMPA30に送信され、MPA
30からデータとレディがCPU15、18に戻され
る。1重ライト、1重リードの動作中MPA30はSM
A-PK#A120、SMA-PK#B140からステー
タスが返ってくるまで共有メモリバスを切り離さず保持
している。
【0027】図8に2重ライトの動作を示す。これ以
降、特に断りがなければ、A面共有メモリ130をマス
タとして話を進めるが、これはB面共有メモリ150が
マスタになった場合でも同様である。(3)2重ライト
の動作ではアドレス、コマンド、データはCPUからロ
ーカルバスを通してMPA30に送信される。MPA3
0からはマスタになる面(図9の例ではA面)の0番目
60または1番目65のバスを選択してSMA-PK#
A120の共有メモリ制御回路-A125に送信され
る。ライト処理が終了すると終了情報を乗せたステータ
スがSMA-PK#A120の共有メモリ制御回路-A1
25から同じ共有メモリバスを通してMPA30に送信
される。この後もマスタ側のパスは共有メモリ制御回路
-A125が保持し、他のアクセスはこのパスを使うこ
とができない。ステータスが正常ならば、MPA30は
次にスレーブになる面(図9の例ではB面)の0番目7
0または1番目75のバスを選択してSMA-PK#B
140の共有メモリ制御回路-B145にアドレス、コ
マンド、データを送信する。ライト処理が終了すると終
了情報を乗せたステータスがSMA-PK#B140か
ら同じ共有メモリバスを通してMPA30に送信され
る。スレーブ側は転送終了後パスをすぐに開放する。ス
テータスが正常ならば、MPA30が保持していたマス
タ側のパスを開放するためのアンロック命令が共有メモ
リ制御回路-A125に送信され、マスタ側のパスが開
放される。次にローカルパスを通して次の送信が可能で
あることを示すレディがCPU15、18に戻される。
【0028】図9に、1重アトミックモディファイ、2
重アトミックモディファイの動作を示す。アトミックモ
ディファイは、共有メモリのリードの後に他のアクセス
を介入させることなくライトを行う処理で、マルチプロ
セッサの同期化等に必要な機能である。(4)1重アト
ミックモディファイの動作では、アドレス、コマンドは
CPU15、18からローカルバスを通してMPA30
に送信され、MPA30から共有メモリパスの0番目6
0または1番目65のバスを選択してSMA-PK#A
120(この例では共有メモリ制御回路-A125)へ
送られる。リード処理が終了するとデータ、ステータス
がSMA-PK#A120から同じ共有メモリバスを通
してMPA30に送信され、MPA30からデータとス
テータスがCPU15、18に戻される。この後もリー
ドで用いたパスは共有メモリ制御回路-A125が保持
し、他のアクセスはこのパスを使うことができない。ス
テータスが正常でCPU15、18がモディファイ処理
を行った後、MPA30は次にSMA-PK#A120
の共有メモリ制御回路-A125にアドレス、コマン
ド、データを送信する。ライト処理が終了すると終了情
報を乗せたステータスがSMAの共有メモリ制御回路-
A125から同じ共有メモリバスを通してMPA30に
送信される。また同時に今までロックしていたパスも開
放する。次にMPA30から次の送信が可能であること
を示すレディがCPU15、18に戻される。(5)2
重アトミックモディファイ動作では、前半のリードは1
重アトミックモディファイと同じである。ステータスが
正常でCPU15、18がモディファイ処理を行った
後、MPA30はすでにパスを確保しているマスタ側共
有メモリ130とまだ確保していないスレーブ側共有メ
モリ150に対して、2重ライトの処理を行う。MPA
30からアドレス、コマンド、データはマスタ側バスを
使ってSMA-PK#A120の共有メモリ制御回路-A
125に送信される。ライト処理が終了すると終了情報
を乗せたステータスがSMAの共有メモリ制御回路から
同じ共有メモリバスを通してMPA30に送信される。
スレーブ側では、0番目70または1番目75のパスを
選択してSMA-PK#Bの共有メモリ制御回路B-14
5にアドレス、コマンド、データを送信する。ライト処
理が終了すると終了情報を乗せたステータスがSMA-
PK#Bから同じ共有メモリバスを通してMPA30に
送信される。スレーブ側は転送終了後パスをすぐに開放
する。ステータスが正常ならば、MPA30が保持して
いたマスタ側のパスを開放するためのアンロック命令が
共有メモリ制御回路-A125に送信され、マスタ側の
パスが開放される。次にローカルパスを通して次の送信
が可能であることを示すレディがCPU15、18に戻
される。図7、8、9で示した各アクセスを実現するた
めに共有メモリバスインターフェィス(MPA)30と
共有メモリ制御回路A(SMA-A)125、共有メモ
リ制御回路B(SMA-B)145で以下に述べる様
な、処理フローが必要である。
【0029】図10に、パスキュー振り分け処理のフロ
ーを示す。これは共有メモリバスインターフェィス(M
PA)30においてCPU15、18等からトランザク
ションを受け取り、MPA30の各バスキューに投入す
るまでのフローである。700からパスキュー振り分け
処理が開始される。ステップ701では複数のCPU1
5、18等から来る処理をラウンドロビン等を使って優
先順位をつけて、一番優先度の高い処理を選択する。ス
テップ702ではその処理がSMA-PK#A120
(A面)処理から開始するかを判定する。もしSMA-
PK#B120(B面)から処理が開始されるのならば
ステップ703のアクセス処理に進む。もしA面から処
理が開始されるのならば、ステップ710のアクセス処
理へ進む。ここでステップ703とステップ710はA
面、B面の違いを除いて、処理内容はまったく同じであ
る。ステップ711では処理が2重ライトまたは2重ア
トミックモディファイであるかを判定する。もし、2重
ライトまたは2重アトミックモディファイならばステッ
プ730の2重ライトまたは2重アトミックモディファ
イ処理に進む。ステップ730については後で説明す
る。もし2重ライトまたは2重アトミックモディファイ
でないならばステップ720のキュー選択処理に進む。
ステップ720内のステップ721ではMPA30内の
パスロックテーブル31のパスキュー長410をA面に
関して見る。ステップ722ではパス0(60)とパス
1(65)のパスキュー長410を比較する。もしパス
0(60)の方が長ければ、ステップ723に進み、パ
スキュー1に処理を入れる。次にステップ724に進
み、パスロックテーブル31内のパス1キュー長を1加
算し、処理の登録を行う。もしパス1(65)の方が長
ければ、ステップ727に進み、パスキュー0に処理を
入れる。次にステップ727に進み、パスロックテーブ
ル31内のパス1キュー長を1加算し、処理の登録を行
う。もしどちらの長さも同じならば、ステップ725に
進み、前回CPUが使わなかったパスキューに処理を入
れる。次にステップ728へ進み、パスロックテーブル
31内の該当するバスキュー長を1加算し、処理の登録
を行う。ステップ723、726、728の後はステッ
プ701に戻る。ステップ703のB面のアクセス処理
が終了した後も同様にステップ701へ戻る。以上のキ
ュー選択処理710により、CPU15、18の出す処
理は2本のパスのパスキュー長の短い方へ入る制御が行
われるので、パス効率が向上する。
【0030】図11に、2重ライト、2重アトミックモ
ディファイ処理のフローを示す。ステップ731ではア
クセスがマスタ側の処理なのかを判定する。もしスレー
ブ側の処理ならば、ステップ734へ進む。もしマスタ
側の処理ならばステップ732に進みバスロックテーブ
ル31のキュー内の2重アクセス415、処理中のマス
タ/スレーブの有無430を調べ、マスタ側の処理およ
び2重アトミックモディファイの個数を数える。ステッ
プ733ではマスタ数が2以下であるかを判定する。2
以上であればすでに2個以上マスタ側の処理が入ってお
り、これ以上2重ライト、2重アトミックモディファイ
の処理は不可能である。よってステップ732に戻り、
マスタ数が1以下になるまで待つ。もしマスタ数が1以
下になったら、ステップ734に進む。ステップ734
ではバスロックテーブル31より、アクセスする共有メ
モリ面(該当面)のパスが2本とも正常で、かつどちら
かにマスタ側の処理があるかを調べる。もしどちらかに
マスタ側の処理があるならば、ステップ735に進み、
マスタがないパスに処理を入れる。次にステップ736
に進み、バスロックテーブル31内の該当バスのバスキ
ュー長410を1加算してステップ737へ進む。もし
マスタがどちらにも無ければ、ステップ720に進みキ
ュー選択処理を行い、入れるパスを確定しステップ73
7に進む。ステップ737ではバスロックテーブルのキ
ュー内2重アクセス415を登録する。以上の2重ライ
ト、2重アトミックモディファイ処理730によってパ
スを確定することにより、デッドロックなしに2重ライ
ト、2重アトミックモディファイのアクセスを最適にキ
ューに振り分けることが可能になる。
【0031】図12に、各パスキューの処理のフローを
示す。これは各キューに入った処理を各パスを通してS
MA-PK#A120、SMA-PK#B140に送信
し、その返答があれば、それをCPU15、18等に返
す処理である。ステップ750から各パスキューの処理
が開始される。ステップ751ではバスキューより実行
可能な処理を取り出す。ステップ752では取り出した
処理についてパス毎にSMAアクセス処理を行う。SMA
アクセス処理はSMAに対して図7、8、9のようなプ
ロトコルでコマンド等を発行し、データ、ステータス等
を受け取ることである。ステップ753では返ってきた
ステータス等より処理が正常終了したかを判定する。も
し正常終了ならば、ステップ760のコマンド終了処理
へ進む。もし異常終了ならば、ステップ754の障害処
理を行い、ステップ760へ進む。障害処理の詳細につ
いては本発明とは直接関係ないのでこれ以上の説明は省
略する。ただしパス障害処理については後で説明する。
ステップ760のコマンド終了処理については後で説明
する。コマンド終了処理760が終了した後ステップ7
51に戻る。
【0032】図13にコマンド終了処理を示す。SMA
アクセス処理が終了した後、バスロックテーブル31の
処理中アクセス種類420、処理中のロックの有無42
5、処理中のマスタ/スレーブの有無430を調べその
組み合わせによってコマンド終了処理760にある次に
行う処理を選択する。次に行う処理は図7、8、9のプ
ロトコルを実現するために必要な処理である。
【0033】以上図10、11、12で説明した処理を
MPA30の中で行う。MPA30から発行されたコマ
ンド等はSMA-PK#A120、SMA-PK#B14
0に送信されて、処理が行われる。
【0034】図14に、SMA内各パス処理のフローを
示す。これはSMA-PK#A120、SMA-PK#B
140に到着した各パスからの処理に優先順位をつけメ
モリロック等を行い,共有メモリのアクセス処理を実
行、その後終了処理を行いMPA30に終了報告を行う
までのフローである。ステップ800からSMA内各パ
ス処理が開始される。ステップ801では各パスに到着
した処理のデコード、エラーのチェックを行う。ステッ
プ802では到着した処理が2重ライト、アトミックモ
ディファイ等の最後発生するアンロック以外かどうかの
判定を行う。もしアンロック以外であればステップ80
3に進む。アンロックであれば図15の4へ進む。ステ
ップ803では各パスに到着した処理の実行順位をラウ
ンドロビン等で決定する。ステップ804では各パスに
有る処理がランドロビンの結果実行可能かどうかを判定
する。実行可能でない場合再度ステップ803に戻る。
実行可能ならば、ステップ805に進み、メモリロック
テーブル126、146の排他開始アドレス455、排
他終了アドレス460を参照してすでに排他処理中のの
アドレスと重なるかどうかを検索する。アドレスが重な
っていればその領域はロックされていることになる。ス
テップ806では検索結果よりアクセス先が未ロック領
域であるかどうかを判定する。もしロック領域ならば、
ロックが開放されるまで待つ。もし未ロック領域なら
ば、ステップ807に進み、メモリロックテーブル12
6、146に排他開始アドレス455、排他終了アドレ
ス460で示されるアクセス範囲、ロックアクセスの有
無等を登録する。その後ステップ810では共有メモリ
のアクセス処理を行い共有メモリ130、150のリー
ド、ライト等が処理される。共有メモリ130、150
の処理が終わった後のフローについては図14、15の
2以降に示す。
【0035】図15に、SMA内各パス処理(続き)の
フローを示す。ステップ820では共有メモリ130、
150からデータ、ステータスを受け取る。ステップ8
21ではデータ、ステータスより、処理が正常終了した
かどうかを判定する。もし正常終了ならば、ステップ7
823へ進む。もし異常終了ならば、ステップ822の
障害処理を行い、ステップ823へ進む。障害処理の詳
細については本発明とは直接関係ないのでこれ以上の説
明は省略する。ステップ823では終了した処理がロッ
クアクセス処理であるのかを判定する。もしロックアク
セスならば、そのままメモリ、パスをロックしたまま
で、ステップ825へ進む。もしロックアクセスでない
ならば、ステップ824に進み、メモリロックテーブル
126、146に登録した使用パス番号450、排他開
始アドレス455、排他終了アドレス460、ロックア
クセスの有無465を削除する。その後ステップ825
に進む。ステップ825では処理の正常終了、異常終了
等のステータスを生成してMPA30に送信する。
【0036】図16に、共有メモリのアクセス処理のフ
ローを示す。ステップ810より共有メモリのアクセス
処理が開始される。ステップ811ではSMA内各パス
よりメモリアクセスを受け取る。ステップ812では先
行している処理があるかどうかを判定する。もしなけれ
ば、ステップ818に進む。もしあればステップ813
に進み、アクセスが終了している処理があるかどうかを
判定する。もしなければ、ステップ814に進みメモリ
多重アクセスが可能かどうか判定する。もし可能でなけ
ればそのままステップ813にもどる。もし可能ならば
ステップ818に進む。アクセスが終了している処理が
あれば、ステップ815に進み、その処理が正常終了し
たかどうかを判定する。もし正常終了ならば、ステップ
7817へ進む。もし異常終了ならば、ステップ816
の障害処理を行い、ステップ817へ進む。障害処理の
詳細については本発明とは直接関係ないのでこれ以上の
説明は省略する。ステップ817では処理の正常終了、
異常終了等のステータスを生成してMPA30に送信す
る。ステップ818では共有メモリへのリード、ライト
を実際に行っている。その後ステップ811に戻る。
【0037】以上、図10から図16に示した、MPA
30とSMA-PK#A130、SMA-PK#B150
の処理フローを実現することにより、2重ライト時にデ
ータの不一致またはデットロック無しで効率の良いパス
選択ができる。また図17で示すようなパス障害処理を
行うことで、パスの2重化が実現でき、信頼性が向上す
る。
【0038】図17に本発明の実施例1におけるパス障
害処理のフローを示す。ステップ850からバス障害処
理が開始される。ステップ851ではエラー情報の収集
をステータス等から集める。ステップ852ではパス障
害であるかどうかを判定する。もしパス障害でなければ
その他の障害処理を行う。もしバス障害であれば、ステ
ップ854に進み障害パスの特定を行う。ステップ85
5では障害パスを利用する各CPU15、18、SMA
-PK#A130、SMA-PK#B150に対してパス
閉塞を報告する。ステップ856ではパスロックテーブ
ル31内の使用パス番号を変更する。ステップ857で
は障害パスを論理的、物理的に閉塞を行う。ステップ8
58でパス障害処理は終了する。
【0039】以上図1から図17に示した実施例1によ
れば、2重化したパスをスター型に接続した2重化共有
メモリ制御装置において、共有メモリバスインターフェ
ス側にパスロックテーブルを、共有メモリ制御回路側に
メモリロックテーブルを持ち、これを参照しながらパス
を選択することにより、1重系アクセスだけでなく、2
重ライト、2重アトミックモディファイのパス選択をデ
ットロック無しに効率よくできるので、処理待ち時間が
短縮し、処理トランザクション数の増加を図ることが可
能になる。
【0040】[実施例2]次に、本発明のディスクアレ
イ制御装置の他の実施例について説明する。以下、特に
説明のない部分は実施例1と同じとする。
【0041】図18に、本実施例の基本構成を示す。こ
こで実施例1と異なる所は共有メモリ130、150に
おけるマスタスレーブの配置の方法である。実施例2で
は共有メモリ120、140のどちらか片面をすべてマ
スタとしている。これにより2重ライト、2重アトミッ
クモディファイのパス選択は必ずマスタになった共有メ
モリの面から始まるので、デッドロックの可能性が無く
なり、制御も楽になる。ただし、これらのアクセスがす
べてシリアルな処理になるので、トランザクション数の
増加は実施例1に比較して少なくなる。
【0042】図19に本発明の実施例2における2重ラ
イト、2重アトミックモディファイ処理のフローを示
す。この部分は図11の2重ライト、2重アトミックモ
ディファイ処理730に対応する部分である。ステップ
921ではアクセスマスタ側の処理かどうかを判定す
る。もしスレーブ側の処理であれば、ステップ924に
進む。もしマスタ側であれば、ステップ922に進みバ
スロックテーブル31より全キュー内のマスタ処理数を
数える。ステップ923ではマスタ処理数が2以下かど
うか判定する。2以上ならば、これ以上2重ライト、2
重アトミックモディファイ処理は入れないので、ステッ
プ922に戻り、待つ。もしマスタ数が1以下であれ
ば、処理が可能なのでステップ721のキュー選択処理
へ進む。ステップ924ではステップ737ではバスロ
ックテーブル31のキュー内2重アクセス415を登録
する。
【0043】以上の様な場合、2重ライトの処理時間が
余計にかかる欠点があるが、もし2重ライトの中でマス
タ、スレーブの順番が入れ替わっても問題ないライトが
ある場合、たとえば、CPU15、18のマイクロプロ
グラムの中で2重ライトの順番が制御できる場合は以下
に示すようなライトの順番を無視する2重ライトを用い
ることで2重ライトの処理時間を削減することが可能に
なる。
【0044】図20に本発明の実施例2におけるライト
の順番無視する2重ライトを示す。ここでは、MPA3
0から送信するマスタ面へのライトとスレーブ面へのラ
イトは同時に発生し、バスのロックも行わないので、応
答時間は短縮できる。
【0045】以上図18から図20に示した実施例2に
よれば、2重化したパスをスター型に接続した2重化共
有メモリ制御装置において、共有メモリバスインターフ
ェス側にパスロックテーブルを、共有メモリ制御回路側
にメモリロックテーブルを持ち、これを参照しながらパ
スを選択することにより、1重リード、1重ライト、1
重リードモディファイライトの処理待ち時間が短縮し、
処理トランザクション数の増加を図ることが可能にな
る。
【0046】本実施例では、ディスクアレイ制御装置に
ついて説明したが、上述の2重化共有メモリ装置は、高
信頼性と高トランザクション性能が必要なシステム、具
体的にはフォールトトレラントコンピュータに適用して
も良い。
【0047】
【発明の効果】2重ライト時に各パスの使用状況を示す
パスロックテーブルを参照することにより、2重ライト
以外の処理(1重リード、1重ライト、アトミックモデ
ィファイ)の場合は各パスの中で処理待ちトランザクシ
ョン数の少ないパスを選択し、2重ライト、2重アトミ
ックモディファイの場合、パスを選択する時に上記パス
ロックテーブルを参照しすでに処理中の2重ライト数が
一定数以下なら2重処理を開始し、さらに2重ライトす
るパスを選択する際に、すでに処理中の2重ライト処理
とは異なるパスで処理を行う様にパスを選択するので、
データの不一致またはデットロック無しで効率の良いパ
ス選択ができ、処理待ち時間が短縮し、処理トランザク
ション数が増加する。また共有メモリパスは2系統化さ
れており、1本障害時にも共有メモリアクセスが可能に
なり、信頼性が向上する。
【図面の簡単な説明】
【図1】本発明のディスクアレイ制御装置の全体構成を
示す。
【図2】本発明のディスクアレイ制御装置の全体構成を
示す図である。
【図3】本発明のディスクアレイ制御装置の基本構成を
示す図である。
【図4】本発明のディスクアレイ制御装置の利点を示す
図である。
【図5】本発明のディスクアレイ制御装置におけるバス
ロックテーブルを示す図である。
【図6】本発明のディスクアレイ制御装置におけるメモ
リロックテーブルを示す図である。
【図7】本発明のディスクアレイ制御装置における、1
重リード、1重ライトの動作を示す図である。
【図8】本発明のディスクアレイ制御装置における2重
ライトの動作を示す図である。
【図9】本発明のディスクアレイ制御装置における1重
アトミックモディファイ、2重アトミックモディファイ
の動作を示す図である。
【図10】本発明のディスクアレイ制御装置におけるバ
スキュー振り分け処理のフローを示す図である。
【図11】本発明のディスクアレイ制御装置における2
重ライト、2重アトミックモディファイ処理のフローを
示す図である。
【図12】本発明のディスクアレイ制御装置における各
パスキューの処理のフローを示す図である。
【図13】本発明のディスクアレイ制御装置におけるコ
マンド終了処理を示す図である。
【図14】本発明のディスクアレイ制御装置におけるS
MA内各パス処理のフローを示す図である。
【図15】本発明のディスクアレイ制御装置におけるS
MA内各パス処理(続き)のフローを示す図である。
【図16】本発明のディスクアレイ制御装置における共
有メモリのアクセス処理のフローを示す図である。
【図17】本発明のディスクアレイ制御装置におけるパ
ス障害処理のフローを示す図である。
【図18】本発明のディスクアレイ制御装置の基本構成
を示す図である。
【図19】本発明のディスクアレイ制御装置における2
重ライト、2重アトミックモディファイ処理のフローを
示す図である。
【図20】本発明のディスクアレイ制御装置におけるラ
イトの順番無視する2重ライトを示す図である。
【図21】従来のディスクアレイ制御装置を示す図であ
る。
【符号の説明】
10、40、50・・・CPUパッケージ(CPU-P
K)、 15、18・・・CPU、 20、23・・・ローカルメモリ、 25、28・・・ローカルバス回路、 30・・・共有メモリパスインターフェィス(MPA)、 31・・・パスロックテーブル、 60、65、70、75、80、85、90、95、1
00、105、110、115・・・共有メモリパス、 120・・・SMAパッケージA(SMA-PK#A)、 140・・・SMAパッケージB(SMA-PK#B)、 125・・・共有メモリ制御回路A(SMA-A)、 140・・・共有メモリ制御回路B(SMA-B)、 130、150・・・共有メモリ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 田中 淳 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 藤林 昭 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 藤本 和久 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 金井 宏樹 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 箕輪 信幸 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージシステム事業部内 (72)発明者 三上 光 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウェアエンジニアリング株式会 社内 (72)発明者 浅利 誠 神奈川県横浜市戸塚区吉田町292番地 株 式会社日立画像情報システム内 Fターム(参考) 5B065 BA01 CA12 CA30 CE11 CH13 EA40 ZA13

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】それぞれプロセッサを有する、ホストコン
    ピュータ又はディスク装置との複数のインタフェース部
    と、 それぞれ、制御情報を格納する共有メモリを有し、上記
    複数のインタフェース部の各インタフェース部との間が
    それぞれアクセスパスにより1対1に接続される2重化
    された共有メモリ部と、 上記複数のインタフェース部に接続されるセレクタと、 上記セレクタに接続されるキャッシュメモリ、とを有
    し、 上記複数のインタフェース部と上記セレクタとの間のア
    クセスパスの本数は、上記キャッシュメモリと上記セレ
    クタとの間のアクセスパスの本数よりも多く、 上記複数のインタフェース部の上記プロセッサは、上記
    2重化された共有メモリ部に2重ライトを行うことを特
    徴とするディスクアレイ制御装置。
  2. 【請求項2】上記複数のインタフェース部と上記共有メ
    モリ部とに接続されるセレクタを有し、 上記複数のインタフェース部と、上記複数のインタフェ
    ース部と上記共有メモリ部とに接続される上記セレクタ
    との間のアクセスパスの本数は、上記キャッシュメモリ
    と、上記複数のインタフェース部と上記共有メモリ部と
    に接続される上記セレクタとの間のアクセスパスの本数
    よりも多いことを特徴とする請求項1に記載のディスク
    アレイ制御装置。
  3. 【請求項3】それぞれプロセッサを有する、ホストコン
    ピュータ又はディスク装置との複数のインタフェース部
    と、 それぞれ、制御情報を格納する共有メモリを有し、上記
    複数のインタフェース部の各インタフェース部との間が
    それぞれ2系統化されたアクセスパスにより1対1接続
    される2重化された共有メモリ部とを有し、 上記インタフェース部の各インタフェース部は、該イン
    タフェース部内の上記プロセッサから上記2重化された
    共有メモリ部に対する2重ライトの要求を受け取った場
    合、対応するデータを、上記2重化された共有メモリ部
    の各共有メモリ部に対し交互に送信する手段を有するこ
    とを特徴とするディスクアレイ制御装置。
  4. 【請求項4】上記インタフェース部は、2重ライトに関
    しては最初にライトする方の共有メモリの面をアドレス
    毎に異なる共有メモリに割り当てることを特徴とする請
    求項3に記載のディスクアレイ制御装置。
  5. 【請求項5】上記複数のインタフェース部の各インタフ
    ェース部は、上記2系統化された各アクセスパス対応に
    複数のキューを有し、 上記プロセッサの要求に応じて上記共有メモリにアクセ
    スする際に、上記複数のキューにキューイングされてい
    る処理待ちの数に応じて、上記2系統化されたアクセス
    パスの何れか一方のアクセスパスを選択する選択手段を
    有することを特徴とする請求項2乃至4の何れかに記載
    のディスクアレイ制御装置。
  6. 【請求項6】上記選択手段は、上記複数のキューにキュ
    ーイングされている処理待ちの数が少ない方のアクセス
    パスを選択することを特徴とする請求項5に記載のディ
    スクアレイ制御装置。
  7. 【請求項7】上記複数のインタフェース部の各インタフ
    ェース部は、上記キューにキューイングされている処理
    待ちの2重ライト、又は2重アトミックモディファイの
    数に応じて、次の処理要求を上記キューにキューイング
    するか否かを制御する制御手段を有することを特徴とす
    る請求項5に記載のディスクアレイ制御装置。
  8. 【請求項8】上記制御手段は、上記キューに格納されて
    いる処理待ちの2重ライト、2重アトミックモディファ
    イの数が一定数以下であれば、次の処理要求を、上記キ
    ューの内、上記2重ライト、又は2重アトミックモディ
    ファイの処理かキューイングされていないキューにキュ
    ーイングすることを特徴とする請求項7に記載のディス
    クアレイ制御装置。
  9. 【請求項9】上記2系統化されたパスの内、1系統が故
    障した場合、他の1系統に処理を割り当てることを特徴
    とする請求項3乃至請求項8の何れかに記載のディスク
    アレイ制御装置。
JP07140099A 1999-03-17 1999-03-17 ディスクアレイ制御装置及びディスクアレイ Expired - Fee Related JP3716126B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP07140099A JP3716126B2 (ja) 1999-03-17 1999-03-17 ディスクアレイ制御装置及びディスクアレイ
EP00104378A EP1037137A3 (en) 1999-03-17 2000-03-02 Disk array controller
US09/526,461 US6502167B1 (en) 1999-03-17 2000-03-16 Duplicated shared memory controller for disk array
US10/294,691 US6629204B2 (en) 1999-03-17 2002-11-15 Disk array controller including a plurality of access paths

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07140099A JP3716126B2 (ja) 1999-03-17 1999-03-17 ディスクアレイ制御装置及びディスクアレイ

Publications (2)

Publication Number Publication Date
JP2000267815A true JP2000267815A (ja) 2000-09-29
JP3716126B2 JP3716126B2 (ja) 2005-11-16

Family

ID=13459442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07140099A Expired - Fee Related JP3716126B2 (ja) 1999-03-17 1999-03-17 ディスクアレイ制御装置及びディスクアレイ

Country Status (3)

Country Link
US (2) US6502167B1 (ja)
EP (1) EP1037137A3 (ja)
JP (1) JP3716126B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961788B2 (en) 2002-04-26 2005-11-01 Hitachi, Ltd. Disk control device and control method therefor
US7032068B2 (en) 2002-02-04 2006-04-18 Nec Corporation Disk cache management method of disk array device
US7231490B2 (en) 2003-04-16 2007-06-12 Hitachi, Ltd. Storage device control apparatus and control method for the storage device control apparatus
JP2007529060A (ja) * 2003-07-14 2007-10-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 冗長アレイからのマルチパス・データ取出
EP1895413A2 (en) 2006-08-18 2008-03-05 Fujitsu Limited Access monitoring method and device for shared memory
JP2008525923A (ja) * 2004-12-29 2008-07-17 インテル・コーポレーション マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662253B1 (en) * 2000-09-13 2003-12-09 Stmicroelectronics, Inc. Shared peripheral architecture
JP2002108567A (ja) * 2000-09-28 2002-04-12 Hitachi Ltd 記憶制御装置
JP4700204B2 (ja) * 2001-03-07 2011-06-15 株式会社日立製作所 ストレージ管理データ制御システム
US7437493B2 (en) * 2001-09-28 2008-10-14 Dot Hill Systems Corp. Modular architecture for a network storage controller
JP2003242097A (ja) * 2002-02-15 2003-08-29 Hitachi Ltd クロスコール機能を備えるディスク制御装置
JP4014923B2 (ja) * 2002-04-30 2007-11-28 株式会社日立製作所 共有メモリ制御方法および制御システム
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7870346B2 (en) 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7080188B2 (en) 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US6979825B1 (en) 2003-04-11 2005-12-27 The United States Of America As Represented By The Secretary Of The Army Quantum-grid infrared photodetector (QGIP) spectrometers and related methods
GB2402758B (en) * 2003-06-12 2006-09-27 Sun Microsystems Inc Method,apparatus and computer program product for simulating a storage configuration for a computer system
US20050015542A1 (en) * 2003-07-15 2005-01-20 Gateway, Inc. Multiple write storage device
US7343440B2 (en) * 2003-07-30 2008-03-11 Hewlett-Packard Development Company, L.P. Integrated circuit with a scalable high-bandwidth architecture
US7426596B2 (en) * 2003-07-30 2008-09-16 Hewlett-Packard Development Company, L.P. Integrated circuit with a scalable high-bandwidth architecture
JP4468666B2 (ja) * 2003-08-22 2010-05-26 富士通株式会社 二重書込機能を有する装置およびストレージ制御装置
JP2005078596A (ja) * 2003-09-03 2005-03-24 Hitachi Ltd データ転送装置の制御方法、データ転送装置、チャネル制御装置、及び記憶デバイス制御装置
US7099994B2 (en) * 2003-09-29 2006-08-29 Hewlett-Packard Development Company, L.P. RAID memory system
US7437425B2 (en) * 2003-09-30 2008-10-14 Emc Corporation Data storage system having shared resource
US7058758B2 (en) * 2003-10-16 2006-06-06 International Business Machines Corporation Load balancing to support tape and disk subsystems on shared fibre channel adapters
US20060036790A1 (en) * 2004-08-10 2006-02-16 Peterson Beth A Method, system, and program for returning attention to a processing system requesting a lock
US7743180B2 (en) * 2004-08-10 2010-06-22 International Business Machines Corporation Method, system, and program for managing path groups to an input/output (I/O) device
JP4504134B2 (ja) * 2004-08-16 2010-07-14 富士通株式会社 システム制御装置、投機フェッチ方法および情報処理装置
JP4587756B2 (ja) * 2004-09-21 2010-11-24 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP2006268215A (ja) * 2005-03-23 2006-10-05 Hitachi Ltd ストレージシステム
US7406711B2 (en) * 2005-09-02 2008-07-29 Motorola, Inc. Method and apparatus for enforcing independence of processors on a single IC
JP2007109141A (ja) * 2005-10-17 2007-04-26 Hitachi Ltd ストレージシステム
US20080077749A1 (en) * 2006-09-22 2008-03-27 Daniel Scott Cohen Access control of memory space in microprocessor systems
US8139071B1 (en) * 2006-11-02 2012-03-20 Nvidia Corporation Buffering unit to support graphics processing operations
US7999817B1 (en) 2006-11-02 2011-08-16 Nvidia Corporation Buffering unit to support graphics processing operations
WO2010134134A1 (en) * 2009-05-22 2010-11-25 Hitachi, Ltd. Storage system comprising plurality of processor units
US8862775B2 (en) * 2010-11-26 2014-10-14 Industrial Technology Research Institute Network server and load balancing routing method for networks thereof
US20160283303A1 (en) * 2015-03-27 2016-09-29 Intel Corporation Reliability, availability, and serviceability in multi-node systems with disaggregated memory
US20200401412A1 (en) * 2019-06-24 2020-12-24 Intel Corporation Hardware support for dual-memory atomic operations
CN110275680B (zh) * 2019-06-24 2020-12-01 浙江大华技术股份有限公司 一种双控双活存储系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5816362A (ja) 1981-07-21 1983-01-31 Hitachi Ltd 二重化共有メモリ制御装置
US5459857A (en) * 1992-05-15 1995-10-17 Storage Technology Corporation Fault tolerant disk array data storage subsystem
US5572694A (en) * 1992-11-25 1996-11-05 Fujitsu Limited Virtual system for detecting access paths belonging to same group from plurality of access paths to reach device designated by command with reference to table
JP2905373B2 (ja) * 1993-10-01 1999-06-14 富士通株式会社 ディスク制御装置及びその制御方法
JPH09146863A (ja) 1995-11-17 1997-06-06 Hitachi Ltd 通信パス選択方法
US5787304A (en) * 1996-02-05 1998-07-28 International Business Machines Corporation Multipath I/O storage systems with multipath I/O request mechanisms
JPH09325916A (ja) 1996-06-07 1997-12-16 Hitachi Ltd メモリ制御装置
US5884055A (en) * 1996-11-27 1999-03-16 Emc Corporation Method and apparatus including a shared resource and multiple processors running a common control program accessing the shared resource
US5890219A (en) * 1996-11-27 1999-03-30 Emc Corporation Redundant writing of data to cached storage system

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032068B2 (en) 2002-02-04 2006-04-18 Nec Corporation Disk cache management method of disk array device
US6961788B2 (en) 2002-04-26 2005-11-01 Hitachi, Ltd. Disk control device and control method therefor
US7231490B2 (en) 2003-04-16 2007-06-12 Hitachi, Ltd. Storage device control apparatus and control method for the storage device control apparatus
US7320051B2 (en) 2003-04-16 2008-01-15 Hitachi, Ltd. Storage device control apparatus and control method for the storage device control apparatus
US7581060B2 (en) 2003-04-16 2009-08-25 Hitachi, Ltd. Storage device control apparatus and control method for the storage device control apparatus
JP2007529060A (ja) * 2003-07-14 2007-10-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 冗長アレイからのマルチパス・データ取出
JP2008525923A (ja) * 2004-12-29 2008-07-17 インテル・コーポレーション マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション
US7984248B2 (en) 2004-12-29 2011-07-19 Intel Corporation Transaction based shared data operations in a multiprocessor environment
JP4764430B2 (ja) * 2004-12-29 2011-09-07 インテル・コーポレーション マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション
US8176266B2 (en) 2004-12-29 2012-05-08 Intel Corporation Transaction based shared data operations in a multiprocessor environment
US8458412B2 (en) 2004-12-29 2013-06-04 Intel Corporation Transaction based shared data operations in a multiprocessor environment
EP1895413A2 (en) 2006-08-18 2008-03-05 Fujitsu Limited Access monitoring method and device for shared memory

Also Published As

Publication number Publication date
US20030110354A1 (en) 2003-06-12
JP3716126B2 (ja) 2005-11-16
EP1037137A2 (en) 2000-09-20
EP1037137A3 (en) 2005-01-19
US6629204B2 (en) 2003-09-30
US6502167B1 (en) 2002-12-31

Similar Documents

Publication Publication Date Title
JP2000267815A (ja) ディスクアレイ制御装置
JP3657428B2 (ja) 記憶制御装置
JP3946873B2 (ja) ディスクアレイ制御装置
US7062591B2 (en) Controller data sharing using a modular DMA architecture
CN103810133B (zh) 用于管理对共享读缓冲器资源的访问的方法和装置
US6557069B1 (en) Processor-memory bus architecture for supporting multiple processors
US7500059B2 (en) Inter-processor communication method using a shared cache memory in a storage system
US5682551A (en) System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
US20030065733A1 (en) Modular architecture for a network storage controller
JPS61109164A (ja) バス制御方法
JP2002509625A (ja) インターバスブリッジ回路
JP3690295B2 (ja) ディスクアレイ制御装置
JP4112050B2 (ja) コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム
JP3195489B2 (ja) 外部記憶制御装置およびバス切り替え制御方法
JP3080552B2 (ja) 複合計算機システムのメモリ装置
US20080295120A1 (en) Asynchronous remote procedure calling method and computer product in shared-memory multiprocessor
US6502150B1 (en) Method and apparatus for resource sharing in a multi-processor system
JP4173110B2 (ja) 記憶装置システム
JP4179303B2 (ja) 記憶装置システム
JP3684902B2 (ja) ディスクアレイ制御装置
US20240232120A1 (en) Non-Transparent Bridge Selection
JP3644158B2 (ja) 並列計算機におけるデータ送受信方法
JP4737702B2 (ja) ディスクアレイ制御装置
JP2009015670A (ja) 中継転送装置、プログラム、方法及びシステム
US6839820B1 (en) Method and system for controlling data access between at least two memory arrangements

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050711

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050829

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080902

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090902

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100902

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110902

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120902

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130902

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees