JPH07114522A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JPH07114522A
JPH07114522A JP5259591A JP25959193A JPH07114522A JP H07114522 A JPH07114522 A JP H07114522A JP 5259591 A JP5259591 A JP 5259591A JP 25959193 A JP25959193 A JP 25959193A JP H07114522 A JPH07114522 A JP H07114522A
Authority
JP
Japan
Prior art keywords
area
message
processor
state
unused
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5259591A
Other languages
English (en)
Inventor
Masaharu Akatsu
雅晴 赤津
Tomohiro Murata
智洋 村田
Kenzo Kurihara
謙三 栗原
Shigeo Honma
繁雄 本間
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
Priority to JP5259591A priority Critical patent/JPH07114522A/ja
Publication of JPH07114522A publication Critical patent/JPH07114522A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【構成】送信側プロセッサ11は、メッセージエリア2
1に処理要求のメッセージを設定する。受信側プロセッ
サ12は、そのメッセージエリア21のメッセージを読
みだす。さらに、要求処理を実行するための制御情報を
格納する実行制御ブロック22を確保して、その中のメ
ッセージエリアポインタ220に、メッセージエリア2
1のアドレスを設定する。そして、要求処理実行中に適
宜参照する。要求処理終了後、使用したメッセージエリ
ア21を解放する。 【効果】プロセッサ間通信で受け渡された要求処理の実
行パラメータを、実行制御情報格納エリアへコピーする
処理が不要となり、性能向上と、制御に必要な共有メモ
リの容量削減が可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサシス
テムに係り、特に、共有メモリを介して、プロセッサ間
通信を行うマルチプロセッサシステムに関する。
【0002】また、マルチプロセッサによって構成され
るディスク制御装置を有するディスクアレイシステムに
関する。
【0003】
【従来の技術】マルチプロセッサシステムで、プロセッ
サ間通信を行う方式として、特開平1−261766 号公報に
記載のように、共有メモリを介した方式が良く知られて
いる。この方式は、送信側のプロセッサがメッセージ内
容を共有メモリに格納しておき、これを受信側のプロセ
ッサが読みだすものである。
【0004】メッセージを格納するエリアは予めすべて
のプロセッサの間で取り決められていて、未使用の状態
の時に送信側のプロセッサがメッセージを入れ、受信側
のプロセッサがメッセージを読みだした時点でそのエリ
アを解放していた。
【0005】なお、メッセージ読みだしに関しては、
「マルチプロセッサと並列処理」(村上洋一訳,近代科
学社,昭和51年)95ページに記載のように、送信側
のプロセッサがメッセージを設定したとき、受信側のプ
ロセッサに割り込み信号を入れることによって読みだし
契機を与える方法と、受信側のプロセッサが一定周期等
の適当なタイミングで、共有メモリを参照することによ
り行う方法がある。
【0006】
【発明が解決しようとする課題】送信側のプロセッサが
受信側のプロセッサに対して処理を依頼するメッセージ
の場合、受信側のプロセッサが読みだしたメッセージ
を、その要求処理の実行制御情報の一部として利用す
る。一般に、処理実行に先立ち、これを制御するための
情報を格納するエリアを割り当てる。このエリアには、
処理の実行状況,確保している資源などの情報を格納す
る。受信側のプロセッサは、処理要求のメッセージを受
け取ったとき、要求された処理に対する実行制御情報格
納エリアを用意して、受け取ったメッセージの内容を、
その実行制御情報格納エリアの一部分にコピーした後、
プロセッサ間通信用のエリアを解放していた。
【0007】この時、この実行制御情報を格納するエリ
アを、自プロセッサのローカルメモリに用意すると、そ
のプロセッサが障害になったとき、要求された処理の継
続が不可能になる。そのため、実行制御情報は共有メモ
リ内に置き、その処理を実行中のプロセッサが障害にな
っても、それを検出した他のプロセッサが実行制御情報
を引き継いで、処理を継続できるようにするのが一般的
である。
【0008】このように、従来では、共有メモリ内に、
プロセッサ間通信用のエリアと、処理の実行制御情報を
格納するためのエリアを別に設け、処理要求のメッセー
ジを受けたとき、プロセッサ間通信用のエリア内にある
実行パラメータを、処理の実行制御情報を格納するため
のエリア内に、コピーしていた。
【0009】本発明の目的は、プロセッサ間通信により
指示された処理を実行するにあたり、メッセージが設定
されたプロセッサ間通信用エリアを解放せずに、要求処
理の実行パラメータを、実行制御情報の一部として利用
することにより、コピー処理を不要にして、効率的なプ
ロセッサ通信を実現するマルチプロセッサシステムを提
供することにある。
【0010】
【課題を解決するための手段】第一の観点では、本発明
は、複数のプロセッサと、共有メモリと、これらを結ぶ
バスから構成されるマルチプロセッサシステムにおい
て、プロセッサ間通信を行うための共有メモリのエリア
を、未使用である第一の状態と、送信側のプロセッサが
メッセージを設定して受信側のプロセッサが読まずにい
る第二の状態と、受信側のプロセッサが読みだしてその
メッセージを制御情報の一部として使用している第三の
状態に分けて状態管理して、送信側のプロセッサは、前
記第一の状態にあるエリアを一つ取り出してメッセージ
を入れて、前記第二の状態に変え、受信側のプロセッサ
は、前記第二の状態にあるエリアを一つ取り出して、メ
ッセージを読み取り、前記第三の状態に変え、また、前
記メッセージで要求された処理を終えたとき、前記第一
の状態に変えることにより、共有メモリのプロセッサ間
通信用のエリアを、要求された処理の実行制御情報格納
用のエリアとしても使用して、エリアを有効活用するこ
とを特徴とするマルチプロセッサシステムを提供する。
【0011】第二の観点では、本発明は、前記マルチプ
ロセッサシステムにおいて、前記受信側のプロセッサ
が、前記共有メモリの前記プロセッサ間通信を行うため
のエリアに設定されている前記メッセージを読みだした
とき、そのメッセージで要求された処理を実行するため
の制御情報を格納するエリアと、前記メッセージが格納
されているエリアとのリンクを取り、前記要求処理を終
了したときに、前記リンクを切り離すと共に、前記プロ
セッサ間通信を行うためのエリアを解放することを特徴
とするマルチプロセッサシステムを提供する。
【0012】第三の観点では、本発明は、前記マルチプ
ロセッサシステムのプロセッサ間通信用のエリアにおい
て、前記未使用である第一の状態と、前記受信待ちであ
る第二の状態にあるエリアをそれぞれFIFOキュー管
理して、前記送信側のプロセッサは、前記未使用エリア
のキューの先頭を抜き出して、メッセージを入れて、前
記受信待ちエリアのキューの最後尾につなげ、前記受信
側のプロセッサは、前記受信待ちエリアのキューの先頭
を抜き出して、メッセージを読みだし、また、前記メッ
セージで要求された処理を終えたとき、前記未使用エリ
アのキューの最後尾につなげることを特徴とするマルチ
プロセッサシステムを提供する。
【0013】第四の観点では、本発明は、前記マルチプ
ロセッサシステムのプロセッサ間通信用のエリアにおい
て、各エリア毎に、そのエリアが使用中であるか否かを
示すフラグと、そのエリアに格納されたメッセージが受
信されたか否かを示すフラグを設けて、前記送信側のプ
ロセッサは、前記使用/未使用フラグの一覧を参照し
て、対応するフラグが未使用を示すエリアから任意の一
つを取り出して、メッセージを入れて、対応する使用/
未使用フラグをエリア使用中の状態に変えるとともに、
対応する受信待ち/完了フラグを受信待ちの状態に設定
して、前記受信側のプロセッサは、前記使用/未使用フ
ラグの一覧と、前記受信待ち/完了のフラグの一覧を参
照して、対応するフラグが使用中かつ受信待ちの組み合
わせとなっているエリアから任意の一つを取り出して、
メッセージを読みだして、対応する受信待ち/完了フラ
グを受信完了の状態に変え、また、前記メッセージで要
求された処理を終えたとき、対応する使用/未使用フラ
グを、エリア未使用の状態に変えることを特徴とするマ
ルチプロセッサシステムを提供する。
【0014】第五の観点では、本発明は、ホストコンピ
ュータと、ディスク制御装置と複数のディスクドライブ
から構成され、データを複数のディスクドライブに分散
して記録するディスクアレイシステムにおいて、前記デ
ィスク制御装置は、前記ホストコンピュータからのデー
タのリード・ライト要求を受ける複数のプロセッサと、
前記ディスクドライブに対してデータのリード・ライト
要求を発行して、その制御を行う複数のプロセッサと、
共有メモリと、これらを結ぶバスから構成され、前記ホ
ストコンピュータからのデータのリード・ライト要求を
受けたプロセッサは、ホストコンピュータが指示したア
クセスデータを格納しているディスクドライブをすべて
求め、個々のドライブ毎に、共有メモリ内のプロセッサ
間通信用のエリアの中から未使用状態であるエリアを抜
き出して、そのディスクドライブを制御するプロセッサ
に対するデータのリード・ライト指示を設定して、受信
待ちの状態にして、前記ディスクドライブを制御するプ
ロセッサは、共有メモリ内のプロセッサ間通信用のエリ
アの中から、前記受信待ちの状態にあるエリアを抜き出
して、前記データのリード・ライト指示を読みだし、そ
の指示を実行するための実行制御情報を格納するエリア
と、前記指示を格納しているプロセッサ間通信用エリア
とのリンクを取り、データアクセスに必要な詳細パラメ
ータは、適宜、前記指示を格納しているプロセッサ間通
信用エリアから参照して、データアクセス処理終了後、
前記リンクを切り離すと共に、前記プロセッサ間通信用
エリアを未使用の状態にすることを特徴とするディスク
アレイシステムを提供する。
【0015】第六の観点では、本発明は、前記ディスク
アレイシステムのプロセッサ間通信において、前記ホス
トコンピュータからのデータリード・ライト要求を受け
たプロセッサによる、前記ディスクドライブを制御する
プロセッサに対するデータのリード・ライト指示の設定
が済み、かつ、前記ディスクドライブを制御するプロセ
ッサが、その指示をまだ受信していない状態にあるエリ
アを、その指示が対象としているディスクドライブ別
に、FIFOキュー管理して、前記ディスクドライブを
制御するプロセッサは、自らと接続のあるディスクドラ
イブに関わる前記受信待ちキューだけを参照して、その
指示メッセージを読みだすことを特徴とするディスクア
レイシステムを提供する。
【0016】
【作用】上記第一の観点による本発明のマルチプロセッ
サシステムでは、プロセッサ間通信用のエリアを、三つ
の状態に分けて管理しており、受信側プロセッサがメッ
セージを読みだした後も、制御情報として使用している
状態に留まり、次のメッセージを格納するエリアとして
解放していない。そのため、そのエリアは、引き続き、
要求処理の実行制御情報の一部を格納しているエリアと
して使用される。従って、プロセッサ間通信用エリアに
設定された要求処理の実行パラメータを、実行制御情報
格納エリアにコピーする処理は不要になる。
【0017】上記第二の観点による本発明のマルチプロ
セッサシステムでは、メッセージを読みだしたとき、そ
のメッセージで指示された要求処理を実行するための制
御情報格納エリアに、そのメッセージが格納されている
プロセッサ間通信用エリアのアドレスを設定する。要求
処理を実行するプロセッサは、このアドレスを読みだし
て、そのアドレスをアクセスすることにより、実行パラ
メータを得ることができる。このように、実行制御情報
を格納するエリア内には、指示された実行パラメータを
コピーする代わりに、その実行パラメータを含むメッセ
ージが格納されているプロセッサ間通信エリアのアドレ
スを設定するだけで、処理の実行に支障はなく、必要な
エリアを削減できる。
【0018】上記第三の観点による本発明のマルチプロ
セッサシステムでは、未使用状態のエリアと受信待ち状
態のエリアをFIFOキュー管理しているので、送信側
のプロセッサがメッセージを格納するエリアを見つける
処理と、受信側のプロセッサがメッセージを読みだすエ
リアを見つける処理が、共に、関連するキューの先頭を
見るだけで行える。また、格納されているメッセージが
実行制御情報の一部として使用中であるエリアは、いず
れのキューにも属さないので、誤って、別のメッセージ
を格納したり、初めて受信したメッセージとして読みだ
したりすることはない。
【0019】上記第四の観点による本発明のマルチプロ
セッサシステムでは、各メッセージ通信用エリアが、上
記第一の観点で述べた三つの状態のいずれにあるかを二
種類のフラグの組み合わせで表現しており、このフラグ
は全エリアのものを一箇所に集めてビットマップ形式に
なっているので、簡単なビット判定だけで、所望する状
態にあるエリアを探索することができる。
【0020】上記第五の観点による本発明のディスクア
レイシステムでは、ホストコンピュータからのデータの
リード・ライト要求を受けるプロセッサと、ディスクド
ライブに対してデータのリード・ライト要求を発行し
て、その制御を行うプロセッサの二種類に分かれてお
り、処理の並列度を上げている。そして、前者のプロセ
ッサは、後者のプロセッサに対して、データのリード・
ライト指示のメッセージを出し、後者のプロセッサは、
そのメッセージで指示された処理に関する実行パラメー
タ(リード/ライトの区別,データの格納アドレス,デ
ータ長など)を引き継ぐことになる。この実行パラメー
タを、実行制御情報格納エリアにコピーすることなく、
メッセージ通信エリアに入れたまま利用できるので、性
能向上と共有メモリの容量削減が可能となる。
【0021】上記第六の観点による本発明のディスクア
レイシステムでは、ドライブに対するデータのリード・
ライト指示に関するメッセージを格納しているエリア
を、その指示が対象としているディスクドライブ毎に、
FIFOキュー管理しているので、ディスクドライブを
制御するプロセッサは、自らと接続のあるディスクドラ
イブに関わるキューの先頭を見るだけで、自らが実行で
きる指示に関するメッセージを簡単に求めることができ
る。そして、自らが実行できない指示に関するメッセー
ジを読みだすことを防ぐことができる。
【0022】
【実施例】以下、本発明の実施例を図面により詳細に説
明する。なお、これにより本発明が限定されるものでは
ない。
【0023】まず、図1を用いて、本発明の概要を説明
する。図1は、本発明の第一,第二実施例に共通の、マ
ルチプロセッサシステムのハードウェア構成ならびに、
テーブルのブロック図である。
【0024】このマルチプロセッサシステムは、プロセ
ッサ11,12,共有メモリ2,これらを接続するバス
3から構成される。プロセッサ11が処理要求を発行す
るプロセッサ,プロセッサ12が処理要求を受けて実行
するプロセッサとする。本実施例では、プロセッサの台
数が2台であるが、この台数には一切の制約はない。ま
た、プロセッサの役割についても制約はなく、一台のプ
ロセッサが、他プロセッサに対して処理要求を発行する
と共に、他プロセッサからの処理要求を受ける処理も行
うものであってもよい。
【0025】共有メモリ内には、メッセージエリア21
と実行制御ブロック22を持つ。
【0026】メッセージエリア21は、送信側のプロセ
ッサ11が、受信側のプロセッサ12に対する処理要求
のメッセージを設定するエリアである。
【0027】実行制御ブロック22は、プロセッサ1
1,12が実行するプログラム(一般に、プロセス、あ
るいは、タスクなどと呼ばれる概念)の実行制御情報を
格納するエリアである。具体的には、処理の実行状況,
確保している資源,処理を実行しているプロセッサID
などが設定される。実行制御ブロック22は、メッセー
ジエリアポインタ220を含んでいる。メッセージエリ
アポインタ220は、その実行制御ブロックに対応する
処理が、プロセッサ間通信を利用して、他のプロセッサ
から要求されたものであった場合に、その処理要求のメ
ッセージが入っていたメッセージエリアのアドレスを設
定するためのテーブルである。
【0028】送信側のプロセッサ11は、メッセージエ
リア21に、プロセッサ12に対する処理要求を設定す
る。
【0029】プロセッサ12は、そのメッセージを読み
だすと、要求された処理を実行するにあたり、実行制御
ブロック22を確保する。そして、その実行制御ブロッ
ク22内のメッセージエリアポインタ220に、読み出
したメッセージが格納されているメッセージエリア21
のアドレスを設定する。
【0030】そして、プロセッサ12は要求された処理
を終了したとき、実行制御ブロック22とメッセージエ
リア21を解放する。
【0031】本実施例によれば、プロセッサ間通信によ
り依頼された処理を実行するに当たり、プロセッサ間通
信エリアに設定された要求処理の実行パラメータを、受
信したあとも同じエリアに保存して、実行制御情報とし
て利用することができる。そのため、実行制御情報格納
エリアへのコピー処理が不要となり、性能向上と、制御
に必要な共有メモリの容量削減が可能となる。
【0032】以下、各プロセッサの制御を詳細に説明す
る。
【0033】(第一実施例)図2は、本発明の第一実施
例にかかるマルチプロセッサシステムのハードウェア構
成ならびに、テーブル構造図である。
【0034】ハードウェア構成、並びに、共有メモリ2
内にあるメッセージエリア211〜216,実行制御ブ
ロック221〜223,メッセージエリアポインタ22
10〜2230は、図1のものと同じである。
【0035】以下、共有メモリ2内のその他のテーブル
の詳細を説明する。
【0036】キューポインタ231〜236は、メッセ
ージエリア211〜216と一対一に対応する情報であ
る。メッセージエリアが、後述する未使用キューあるい
は受信待ちキューに登録されているとき、そのメッセー
ジエリアの次に並んでいるメッセージエリアのアドレス
を設定する。キューの最後尾にある場合には、“null”
が設定される。
【0037】ロックワード24は、プロセッサ通信処理
(送信,受信を問わない。)をプロセッサ間でシリアラ
イズするための情報であり、プロセッサ間通信処理を行
うプロセッサのIDを設定する。このテーブルにIDが
入っているときは、そのIDを持つプロセッサだけがプ
ロセッサ間通信処理を実行でき、他のプロセッサは待た
される。
【0038】未使用キュー先頭ポインタ25は、未使用
状態にあるメッセージエリアのうち、一番長い間使用さ
れていないメッセージエリアのアドレスを設定するため
のテーブルである。未使用状態にあるメッセージエリア
が存在しない場合には、“null”が設定される。
【0039】未使用キュー末尾ポインタ26は、未使用
状態にあるメッセージエリアのうち、一番最近未使用状
態になったメッセージエリアのアドレスを設定するため
のテーブルである。未使用状態にあるメッセージエリア
が存在しない場合には、“null”が設定される。
【0040】受信待ちキュー先頭ポインタ27は、受信
待ち状態にあるメッセージエリアのうち、メッセージの
設定された時刻が一番古いメッセージエリアのアドレス
を設定するためのテーブルである。受信待ち状態にある
メッセージエリアが存在しない場合には、“nul1”が設
定される。
【0041】受信待ちキュー末尾ポインタ28は、受信
待ち状態にあるメッセージエリアのうち、メッセージの
設定された時刻が一番新しいメッセージエリアのアドレ
スを設定するためのテーブルである。受信待ち状態にあ
るメッセージエリアが存在しない場合には、“nul1”が
設定される。
【0042】図2に示した例では、メッセージエリア2
11,213は未使用の状態、メッセージエリア21
2,214は送信側プロセッサのメッセージ設定は済ん
でいるが、まだ受信されていない状態、メッセージエリ
ア215,216はメッセージの読みだしが終わり、実
行制御情報の一部として使用されている状態にある。
【0043】図3は、送信側プロセッサ11のメッセー
ジ送信手順を示すフローである。
【0044】まず、ロックワード24を読みだして、他
のプロセッサIDが設定されているか否かを調べる(ス
テップ1010)。ロックワード24に、他のプロセッ
サIDが設定されていないことを確認するまで、この処
理を繰り返す。そして、その後、自プロセッサのIDを
設定する(ステップ1020)。なお、この二つの処
理、すなわち、図3で点線で囲った部分1000は、い
わゆるアトミック(atomic)命令を用いる。すなわち、
この点線内の処理の間は、他のプロセッサの共有メモリ
アクセスは禁止される。
【0045】次に、未使用キュー先頭ポインタ25を読
みだして、メッセージを格納するメッセージエリアを決
定する(ステップ1030)。
【0046】なお、未使用キュー先頭ポインタ25に
“null”が設定されている場合は、未使用状態のメッセ
ージエリアが存在しないので、今回のメッセージ送信を
諦めて、ステップ1080に飛ぶ(ステップ104
0)。
【0047】メッセージエリアが決定すると、次に、そ
のメッセージエリアを未使用キューから切り離す(ステ
ップ1050)。この処理を、図2の例で、具体的に説
明する。まず、上記で決定したメッセージエリア211
のキューポインタ231を読む。そして、そこに設定さ
れているメッセージエリア213のアドレスを、未使用
キュー先頭ポインタ25に書き込む。最後に、キューポ
インタ231を“null”にする。
【0048】次に、上記で決定したメッセージエリア2
11に、メッセージを設定する(ステップ1060)。
【0049】そして、そのメッセージエリアを受信待ち
キューに登録する(ステップ1070)。この処理を図2の例
で具体的に説明する。まず、受信待ちキュー末尾ポイン
タ28を読み、最後尾のメッセージエリア214のアド
レスを得る。そして、メッセージエリア214に対応す
るキューポインタ234に、新たに登録するメッセージ
エリア211のアドレスを設定する。最後に、受信待ち
キュー末尾ポインタ28にも、メッセージエリア211
のアドレスを設定する。
【0050】以上の処理を終えた後、最後に、ロックワ
ード24をゼロクリアする(ステップ1080)。
【0051】図4は、受信側プロセッサ12のメッセー
ジ受信手順を示すフローチャートである。図4に示した
処理は、プロセッサ12が暇なときに周期的に行う。
【0052】まず、ロックワード24を読みだして、他
プロセッサのIDが入っていないことを確認した後、自
プロセッサIDを設定する(ステップ2010,202
0)。この部分2000は、図3の1000と全く同じ
処理である。
【0053】次に、受信待ちキュー先頭ポインタ27を
読みだして、メッセージを読みだすメッセージエリアを
決定する(ステップ2030)。
【0054】なお、受信待ちキュー先頭ポインタ27に
“null”が設定されている場合は、受信すべきメッセー
ジがないので、ステップ2090に飛ぶ(ステップ20
40)。
【0055】次に、上記で決定したメッセージエリア
(図1の例では、212)から、メッセージを読みだす
(ステップ2050)。
【0056】そして、そのメッセージで指示された処理
を行うための、実行制御ブロックを確保する(ステップ
2060)。実行制御ブロックは、処理の内容によって
使い分けても良いし、未使用の実行制御ブロックをまと
めてキュー管理して、その先頭をアサインしてもよい。
ここでは、図1の実行制御ブロック223を使用するも
のとする。
【0057】次に、確保した実行制御ブロック283内
のメッセージエリアポインタ2230に、読みだしたメッセ
ージが格納されているメッセージエリア212のアドレ
スを設定する(ステップ2070)。
【0058】それから、メッセージエリア212を受信
待ちキューから切り離す(ステップ2080)。本処理
は、先に述べた未使用キューからの切り離し(ステップ1
050)と同じ手順で行う。
【0059】以上の処理を終えた後、最後に、ロックワ
ード24をゼロクリアする(ステップ2090)。
【0060】なお、プロセッサ11,12の間に、専用
のホットラインを結び、プロセッサ11が図3で説明し
たメッセージ送信処理を行った際に、ホットラインを通
じて、プロセッサ12に信号を送り、プロセッサ12
は、その信号を検出したときに、図4で説明したメッセ
ージ受信処理を行う方式もある。この方式では、メッセ
ージが送られていないときにメッセージを読みだしにい
くことがなくなるので、オーバヘッドが削減でき、ステ
ップ2040も不要となる。
【0061】以上述べたプロセッサ間通信を利用して、
送信側プロセッサ11から受信側プロセッサ12へ指示
された処理は、受信側プロセッサ12が、実行制御ブロ
ック221を適宜参照して実行する。指示された処理の
詳細な実行パラメータが必要になったときは、実行制御
ブロック221内のメッセージエリアポインタ2210を読
んで、実行パラメータを格納しているメッセージエリア
215のアドレスを得る。そして、そのメッセージを読
みだすことにより、何度でも実行パラメータを読み返す
ことが可能となる。
【0062】図5は、受信側プロセッサが指示された処
理を終えたときのメッセージエリアの解放手順を示すフ
ローチャートである。
【0063】まず、使用していた実行制御ブロック22
1を解放する(ステップ3010)。これにより、メッセ
ージエリアポインタ2210もゼロクリアされる。
【0064】次に、ロックワード24を読みだして、他
プロセッサのIDが入っていないことを確認した後、自
プロセッサIDを設定する(ステップ3020,303
0)。この部分3000は、図3の1000と全く同じ
処理である。
【0065】そして、解放したメッセージエリア215
を未使用キューに登録する(ステップ3040)。本処
理は、先に述べた受信待ちキューへの登録(ステップ10
70)と同じ手順で行う。
【0066】以上の処理を終えた後、最後に、ロックワ
ード24をゼロクリアする(ステップ3050)。
【0067】第一の実施例によれば、送信側のプロセッ
サがメッセージを格納するエリアを見つける処理と、受
信側のプロセッサがメッセージを読みだすエリアを見つ
ける処理が、共に、関連するキューの先頭を見るだけで
行えるという効果がある。
【0068】(第二実施例)第一実施例では、FIFO
キューにより、メッセージエリアの状態を管理していた
が、第二実施例では、ビットマップによって状態管理を
行う。
【0069】図6は、第二実施例にかかるマルチプロセ
ッサシステムのハード構成ならびにテーブル構造図であ
る。ハードウェア構成は、第一実施例と同じである。共
有メモリ2内にあるテーブルのうち、メッセージエリア
211〜216,実行制御ブロック221〜223,メ
ッセージエリアポインタ2210〜2230,ロックワ
ード24は、図2のものと全く同じである。
【0070】使用/未使用ビットマップ291は、メッ
セージエリア毎に各1ビットが対応するビットマップで
ある。ビットが“1”であるとき、対応するメッセージ
エリアが使用中であることを示し、ビットが“0”であ
るとき、対応するメッセージエリアが未使用状態である
ことを示す。
【0071】受信待ち/完了ビットマップ292も、メ
ッセージエリア毎に各1ビットが対応するビットマップ
である。ビットが“1”であるとき、対応するメッセー
ジエリア内に設定されているメッセージがまだ受信され
ていないことを示し、ビットが“0”であるとき、既に
受信されたことを示す。
【0072】使用/未使用ビットマップ291と受信待
ち/完了ビットマップ292の対応するビットの組み合
わせにより、各メッセージエリアの状態が決まる。表1
に、ビットの組み合わせとメッセージエリアの状態の関
係を示す。
【0073】
【表1】
【0074】図7は、送信側プロセッサ11のメッセー
ジ送信手順を示すフローチャートである。
【0075】まず、ロックワード24を読みだして、他
プロセッサのIDが入っていないことを確認した後、自
プロセッサIDを設定する(ステップ4010,402
0)。この部分4000は、図3の1000と全く同じ
処理である。
【0076】次に、使用/未使用ビットマップ291を
読みだす(ステップ4030)。
【0077】そして、使用/未使用ビットマップ291
がすべて“1”であるか否かを判定する(ステップ40
40)。すべて“1”である場合は、未使用状態のメッ
セージエリアが存在しないので、今回のメッセージ送信
を諦めて、ステップ4080に飛ぶ。一方。“0”であ
るビットがある場合には、その中から任意の一つを選択
する(ステップ4050)。
【0078】次に、上記で選んだビットに対応するメッ
セージエリアにメッセージを設定する(ステップ406
0)。
【0079】そして、使用/未使用ビットマップ291
と受信待ち/完了ビットマップ292内の、選択したメッ
セージエリアに対応するビットを、共に“1”にセット
する(ステップ4070)。
【0080】以上の処理を終えた後、最後に、ロックワ
ード24をゼロクリアする(ステップ4080)。
【0081】図8は、受信側プロセッサ12のメッセー
ジ受信手順を示すフローチャートである。
【0082】まず、ロックワード24を読みだして、他
プロセッサのIDが入っていないことを確認した後、自
プロセッサIDを設定する(ステップ5010,502
0)。この部分5000は、図3の1000と全く同じ
処理である。
【0083】次に、使用/未使用ビットマップ291と
受信待ち/完了ビットマップ292のビット毎の論理積
(AND)を取る(ステップ5030)。
【0084】そして、その論理積の結果が、すべて
“0”であるか否かを判定する(ステップ5040)。
すべて“0”である場合は、受信すべきメッセージがな
いので、ステップ5100に飛ぶ。一方、“1”である
ビットがある場合には、その中から任意の一つを選択す
る(ステップ5050)。
【0085】次に、上記で選んだビットに対応するメッ
セージエリアから、メッセージを読みだす(ステップ5
060)。
【0086】そして、そのメッセージで指示された処理
を行うための、実行制御ブロックを確保して(ステップ
5070)、その実行制御ブロック内のメッセージエリ
アポインタに、読みだしたメッセージが格納されている
メッセージエリアのアドレスを設定する(ステップ50
80)。
【0087】それから、受信待ち/完了ビットマップ2
92内の、選択したメッセージエリアに対応するビット
を、“0”にリセットする(ステップ5090)。
【0088】以上の処理を終えた後、最後に、ロックワ
ード24をゼロクリアする(ステップ5100)。
【0089】送信側プロセッサ11から受信側プロセッ
サ12へ指示された処理の実行に際して、メッセージエ
リアを利用する方法は、第一実施例と同様である。
【0090】図9は、受信側プロセッサが指示された処
理を終えたときのメッセージエリアの解放手順を示すフ
ローチャートである。
【0091】ステップ6010〜6030は、図5のス
テップ3010〜3030と全く同じである。
【0092】次に、使用/未使用ビットマップ291内
の、解放したメッセージエリアに対応するビットを、
“0”にリセットする(ステップ6040)。
【0093】そして、ロックワード24をゼロクリアす
る(ステップ6050)。
【0094】第二の実施例によれば、送信側のプロセッ
サがメッセージを格納するエリアを見つける処理と、受
信側のプロセッサがメッセージを読みだすエリアを見つ
ける処理が、共に、ビット判定だけで行える。また、メ
ッセージエリアの状態変更もビット操作だけで済むの
で、オーバヘッドが少ないうえに、プロセッサ障害発生
時のリカバリ処理も簡単である。
【0095】(第三実施例)次に、上記で説明したマル
チプロセッサシステムを適用したディスクアレイシステ
ムの実施例を説明する。
【0096】図10は、本発明にかかるディスクアレイ
システムのハードウェア構成のブロック図である。
【0097】このディスクアレイシステムは、ホストコ
ンピュータ4,ディスク制御装置5,ディスクドライブ
61〜63から構成されている。本実施例では、ホスト
コンピュータから送られた保存データを、3台のディス
クドライブ61〜63の内の2台に分散して書き込み、
残りの1台にエラー訂正コードを書き込むものとする。
ただし、本発明において、ディスクドライブの台数に制
約はなく、m台のディスクドライブを用意して、その内
のn台をエラー訂正用ドライブとしてよい(m,nはm>
n≧1を満たす任意の自然数)。
【0098】ディスク制御装置5は、プロセッサ511
〜514,共有メモリ52,プロセッサと共有メモリを
結ぶバス53,バッファメモリ54,ホストコンピュー
タ,ディスクドライブ,バッファメモリを結ぶバス55
から構成される。本実施例では、プロセッサ台数が4台
であり、その内の一台(プロセッサ511)がホストコ
ンピュータ1からのデータのリード・ライト要求を受
け、残りの3台(プロセッサ512〜514)がディス
クドライブを制御するものとする。すなわち、プロセッ
サ511は、ホストコンピュータ4からの要求に応じ
て、ホストコンピュータ4とバッファメモリ54間のデ
ータ転送を制御する。そして、プロセッサ512〜51
4は、プロセッサ511からの指示に応じて、バッファ
メモリ54とディスクドライブ61〜63間のデータ転
送を制御する。また、ディスクドライブを制御するプロ
セッサ512〜514は、図10に示すように、それぞ
れ2台のディスクドライブを制御するものとする。ただ
し、本発明において、プロセッサの台数やその構成,デ
ィスクドライブとの接続形態に一切の制約はない。
【0099】図11は、共有メモリ52内のテーブル構
造図である。図2の共有メモリ2内のテーブル構造と基
本的に同じである。異なる点は、メッセージエリアに設
定されている指示が対象としているディスクドライブ毎
に、受信待ちキューが分かれていることにある。
【0100】以下、各プロセッサの制御フローを説明す
る。
【0101】図12に、ホストコンピュータ4からのデ
ータのリード・ライト要求を受けるプロセッサ511の
制御フローを示す。
【0102】まず、ホストコンピュータ4からのデータ
アクセス要求を受けるまでループする(ステップ700
0)。
【0103】データアクセス要求を受けると、まず、そ
のデータのアドレスをパラメータとして受け取る(ステ
ップ7010)。なお、このアドレスは、ホストコンピ
ュータが管理している論理アドレスであり、実際にデー
タが格納されている物理アドレスではない。すなわち、
ホストコンピュータは、自分が所望するデータが実際に
どのディスクドライブに存在するかを気にかける必要が
ない。
【0104】次に、そのアクセス要求がリードかライト
かを判定する(ステップ7020)。
【0105】リード要求の場合には、まず、要求された
データが実際に存在するアドレスを求める(ステップ7
030)。データは分散して格納されているので、複数
のディスクドライブがアクセス対象となる。本実施例で
は、ディスクドライブ61〜63合計3台からのデータ
リード処理が必要となる。
【0106】次に、対象とするディスクドライブ毎に、
データリードの指示を出す(ステップ7040,705
0)。この処理は、図3で説明したメッセージ送信処理
を用いる。
【0107】すべての指示を出し終えると、3台のディ
スクドライブからのデータ転送がすべて終わるのを待つ
(ステップ7060)。
【0108】そして、必要なデータがすべてバッファメ
モリ54に送られたことを確認した後、そのデータをホ
ストコンピュータ4に転送する(ステップ7070)。
【0109】一方、ライト要求の場合は、まず、そのラ
イトデータをホストコンピュータ4から受け取り、バッ
ファメモリ54に転送する(ステップ7080)。
【0110】次に、要求されたデータを実際にディスク
ドライブに格納する際のアドレスを求める(ステップ7
090)。
【0111】そして、対象とするディスクドライブ毎
に、データライトの指示を出す(ステップ7100,7
110)。この処理は、図3で説明したメッセージ送信
処理を用いる。
【0112】以上の処理が終わると、ステップ7000
に戻り、ホストコンピュータからの次の要求を待つ。
【0113】図13に、ディスクドライブを制御するプ
ロセッサ512〜514の制御フローチャートを示す。
【0114】まず、実行制御ブロックを検索して、自分
で実行可能なディスクドライブ制御の処理がないかを調
べる(ステップ8000)。
【0115】実行可能な処理がない場合には、プロセッ
サ511からのディスクドライブアクセス指示に関する
メッセージが来ていないかを調べる。そのために、ま
ず、チェックする受信待ちキューを決める(ステップ8
010)。例えば、プロセッサ512を例にとると、接
続のあるディスクドライブは61と63なので、対象と
なる受信待ちキュー先頭ポインタは、261と263で
ある。そこで、その内のいずれか一つを選ぶ。
【0116】そして、選択した受信待ちキューを参照す
ることによって、図3で説明したメッセージ受信処理を
行う(ステップ8020)。
【0117】一方、実行可能なディスクドライブ制御の
処理がある場合には、それに対応する実行制御ブロック
を参照しながら、処理を実行する(ステップ803
0)。具体的には、リード/ライトの区別,対象データ
のアドレス,データ長などの実行パラメータをメッセー
ジエリアから読みだし、バッファメモリ54とディスク
ドライブ61〜63間のデータ転送を制御する。
【0118】そして、処理が終了すると、図5で説明し
たメッセージエリアの解放処理を行う(ステップ804
0)。
【0119】以上の処理が終わると、実行可能な処理の
探索(ステップ8000)に戻る。
【0120】第三の実施例によれば、ホストコンピュー
タからの要求を受けるプロセッサからディスクドライブ
を制御するプロセッサへの処理要求の効率的な授受が可
能となる。また、受信側のプロセッサは、自分と接続の
あるディスクドライブに関する指示の入ったメッセージ
だけを選ぶことが簡単に行え、実行できないメッセージ
を無駄に読むオーバヘッドがない。
【0121】
【発明の効果】本発明によれば、プロセッサ間通信を通
じて依頼された処理を実行するにあたり、プロセッサ間
通信用エリアに設定された要求処理の実行パラメータ
を、受信した後も保存して、実行制御情報として利用す
ることができる。そのため、実行制御情報格納エリアへ
のコピー処理が不要となり、性能向上と、制御に必要な
共有メモリの容量削減が可能となる。
【図面の簡単な説明】
【図1】本発明にかかるマルチプロセッサシステムのハ
ードウェア構成ならびにテーブルのブロック図。
【図2】本発明の第一実施例にかかるマルチプロセッサ
システムのハードウェア構成ならびにテーブルのブロッ
ク図。
【図3】本発明の第一実施例のメッセージ送信手順を示
すフローチャート。
【図4】本発明の第一実施例のメッセージ受信手順を示
すフローチャート。
【図5】本発明の第一実施例のメッセージエリアの解放
手順を示すフローチャート。
【図6】本発明の第二実施例にかかるマルチプロセッサ
システムのハードウェア構成ならびにテーブルのブロッ
ク図。
【図7】本発明の第二実施例にかかるメッセージ送信手
順を示すフローチャート。
【図8】本発明の第二実施例にかかるメッセージ受信手
順を示すフローチャート。
【図9】本発明の第二実施例にかかるメッセージエリア
の解放手順を示すフローチャート。
【図10】本発明の第三実施例にかかるディスクアレイ
システムのブロック図。
【図11】共有メモリのテーブルのブロック図。
【図12】ホストコンピュータの要求を受けるプロセッ
サの制御フローチャート。
【図13】ディスクドライブを制御するプロセッサの制
御フローチャート。
【符号の説明】
2…共有メモリ、3…バス、11,12…プロセッサ、
21…メッセージエリア、22…実行制御ブロック。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 本間 繁雄 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージシステム事業部内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサと、共有メモリと、これ
    らを結ぶバスから構成されるマルチプロセッサシステム
    において、プロセッサ間通信を行うための共有メモリの
    エリアを、未使用である第一の状態と、送信側のプロセ
    ッサがメッセージを設定して受信側のプロセッサが読ま
    ずにいる第二の状態と、受信側のプロセッサが読みだし
    てそのメッセージを制御情報の一部として使用している
    第三の状態に分けて状態管理して、送信側のプロセッサ
    は、前記第一の状態にあるエリアを一つ取り出してメッ
    セージを入れて、前記第二の状態に変え、受信側のプロ
    セッサは、前記第二の状態にあるエリアを一つ取り出し
    て、メッセージを読み取り、前記第三の状態に変え、ま
    た、前記メッセージで要求された処理を終えたとき、前
    記第一の状態に変えることにより、共有メモリのプロセ
    ッサ間通信用のエリアを、要求された処理の実行制御情
    報格納用のエリアとしても使用して、エリアを有効活用
    することを特徴とするマルチプロセッサシステム。
  2. 【請求項2】請求項1において、前記受信側のプロセッ
    サが、前記共有メモリの前記プロセッサ間通信を行うた
    めのエリアに設定されている前記メッセージを読みだし
    たとき、そのメッセージで要求された処理を実行するた
    めの制御情報を格納するエリアと、前記メッセージが格
    納されているエリアとのリンクを取り、前記要求処理を
    終了したときに、前記リンクを切り離すと共に、前記プ
    ロセッサ間通信を行うためのエリアを解放するマルチプ
    ロセッサシステム。
  3. 【請求項3】請求項1において、前記マルチプロセッサ
    システムのプロセッサ間通信用のエリアで、前記未使用
    である第一の状態と、前記受信待ちである第二の状態に
    あるエリアをそれぞれFIFOキュー管理して、前記送
    信側のプロセッサは、前記未使用エリアのキューの先頭
    を抜き出して、メッセージを入れて、前記受信待ちエリ
    アのキューの最後尾につなげ、前記受信側のプロセッサ
    は、前記受信待ちエリアのキューの先頭を抜き出して、
    メッセージを読みだし、また、前記メッセージで要求さ
    れた処理を終えたとき、前記未使用エリアのキューの最
    後尾につなげるマルチプロセッサシステム。
  4. 【請求項4】請求項1において、前記マルチプロセッサ
    システムのプロセッサ間通信用のエリアで、各エリア毎
    に、そのエリアが使用中であるか否かを示すフラグと、
    そのエリアに格納されたメッセージが受信されたか否か
    を示すフラグを設けて、前記送信側のプロセッサは、前
    記使用/未使用フラグの一覧を参照して、対応するフラ
    グが未使用を示すエリアから任意の一つを取り出して、
    メッセージを入れて、対応する使用/未使用フラグをエ
    リア使用中の状態に変えるとともに、対応する受信待ち
    /完了フラグを受信完了の状態に設定して、前記受信側
    のプロセッサは、前記使用/未使用フラグの一覧と、前
    記受信待ち/完了のフラグの一覧を参照して、対応する
    フラグが使用中かつ受信待ちの組み合わせとなっている
    エリアから任意の一つを取り出して、メッセージを読み
    だして、対応する受信待ち/完了フラグを受信完了の状
    態に変え、また、前記メッセージで要求された処理を終
    えたとき、対応する使用/未使用フラグを、エリア未使
    用の状態に変えるマルチプロセッサシステム。
  5. 【請求項5】ホストコンピュータと、ディスク制御装置
    と複数のディスクドライブから構成され、データを前記
    複数の前記ディスクドライブに分散して記録するディス
    クアレイシステムにおいて、前記ディスク制御装置は、
    前記ホストコンピュータからのデータのリード・ライト
    要求を受ける複数のプロセッサと、前記ディスクドライ
    ブに対してデータのリード・ライト要求を発行して、そ
    の制御を行う複数のプロセッサと、共有メモリと、これ
    らを結ぶバスから構成され、前記ホストコンピュータか
    らのデータのリード・ライト要求を受けたプロセッサ
    は、ホストコンピュータが指示したアクセスデータを格
    納しているディスクドライブをすべて求め、個々のドラ
    イブ毎に、共有メモリ内のプロセッサ間通信用のエリア
    の中から未使用状態であるエリアを抜き出して、そのデ
    ィスクドライブを制御するプロセッサに対するデータの
    リード・ライト指示を設定して、受信待ちの状態にし
    て、前記ディスクドライブを制御するプロセッサは、共
    有メモリ内のプロセッサ間通信用のエリアの中から、前
    記受信待ちの状態にあるエリアを抜き出して、前記デー
    タのリード・ライト指示を読みだし、その指示を実行す
    るための制御情報を格納するエリアと、前記指示を格納
    しているプロセッサ間通信用エリアとのリンクを取り、
    データアクセスに必要な詳細パラメータは、適宜、前記
    指示を格納しているプロセッサ間通信用エリアから参照
    して、データアクセス処理終了後、前記リンクを切り離
    すと共に、前記プロセッサ間通信用エリアを未使用の状
    態にすることを特徴とするディスクアレイシステム。
  6. 【請求項6】請求項5において、前記ディスクアレイシ
    ステムのプロセッサ間通信で、前記ホストコンピュータ
    からのデータリード・ライト要求を受けたプロセッサに
    よる、前記ディスクドライブを制御するプロセッサに対
    するデータのリード・ライト指示を設定が済み、前記デ
    ィスクドライブを制御するプロセッサが、その指示をま
    だ受信していない状態にあるエリアを、その指示が対象
    としているディスクドライブ別に、FIFOキュー管理
    して、前記ディスクドライブを制御するプロセッサは、
    自らと接続のあるディスクドライブに関わる前記受信待
    ちキューだけを参照して、その指示メッセージを読みだ
    すディスクアレイシステム。
JP5259591A 1993-10-18 1993-10-18 マルチプロセッサシステム Pending JPH07114522A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5259591A JPH07114522A (ja) 1993-10-18 1993-10-18 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5259591A JPH07114522A (ja) 1993-10-18 1993-10-18 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JPH07114522A true JPH07114522A (ja) 1995-05-02

Family

ID=17336239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5259591A Pending JPH07114522A (ja) 1993-10-18 1993-10-18 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JPH07114522A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010109609A1 (ja) * 2009-03-25 2010-09-30 トヨタ自動車株式会社 処理装置及び車両用エンジン制御装置
JP2012094174A (ja) * 2012-01-04 2012-05-17 Fujitsu Ltd アプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010109609A1 (ja) * 2009-03-25 2010-09-30 トヨタ自動車株式会社 処理装置及び車両用エンジン制御装置
JP2012094174A (ja) * 2012-01-04 2012-05-17 Fujitsu Ltd アプリケーション連携制御プログラム、アプリケーション連携制御方法およびアプリケーション連携制御装置

Similar Documents

Publication Publication Date Title
US5530897A (en) System for dynamic association of a variable number of device addresses with input/output devices to allow increased concurrent requests for access to the input/output devices
EP0788055B1 (en) Multipath i/o storage systems with multipath i/o request mechanisms
JP3781212B2 (ja) サブシステム
EP0760135B1 (en) Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
JP4703959B2 (ja) 記憶装置システムおよびそのレプリケーション作成方法
JPH02168341A (ja) データ処理システム
JPS5966755A (ja) 記憶システム
JP2532191B2 (ja) 複式バス・ア―キテクチャを有する計算システムに使用するデ―タ伝送の管理方法
US5754887A (en) System for limiting access of plurality of requests to peripheral bus by halting transmission to particular peripheral devices and resuming transmission after second predetermined time period expiration
EP0706134A2 (en) Data processing system having demand based write through cache with enforced ordering
JPH0997184A (ja) 効率的な割込み処理を含む情報処理システム
US5764922A (en) I/O system for off-loading operating system functions
JP3431941B2 (ja) データ処理システムにおける命令の実行順序を決定する方法および装置
US20030014558A1 (en) Batch interrupts handling device, virtual shared memory and multiple concurrent processing device
JPH07114522A (ja) マルチプロセッサシステム
JP2813182B2 (ja) マルチプロセッサコンピュータ複合装置
US6915390B2 (en) High speed memory cloning facility via a coherently done mechanism
EP0290533B1 (en) I/o system for off-loading operating system functions
US6928524B2 (en) Data processing system with naked cache line write operations
JPS603229B2 (ja) 情報処理方式
EP0478337A2 (en) Process of storing data on, or retrieving data from a plurality of disks
JP2517859B2 (ja) 並列プロセス管理方法
JPH07105120A (ja) 入出力制御装置
JPH0449146B2 (ja)
JPH09218859A (ja) マルチプロセッサ制御システム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees