JP3141948B2 - 計算機システム - Google Patents
計算機システムInfo
- Publication number
- JP3141948B2 JP3141948B2 JP03515017A JP51501791A JP3141948B2 JP 3141948 B2 JP3141948 B2 JP 3141948B2 JP 03515017 A JP03515017 A JP 03515017A JP 51501791 A JP51501791 A JP 51501791A JP 3141948 B2 JP3141948 B2 JP 3141948B2
- Authority
- JP
- Japan
- Prior art keywords
- access
- shared memory
- state
- instruction
- write
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
- G06F11/0724—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
モジュールがシステムバスを介して接続されたマルチプ
ロセッサシステムの共有メモリの非同期アクセス方式に
関する。
を物理アドレスで直接アクセスすることから、システム
バスによるデータ転送は1アクセス命令に同期して1ワ
ード単位で行われ、多数のプロセッサを搭載した場合に
はシステムバスのアクセス頻度が増加する。そのためプ
ロセッサのシステム搭載台数が制限され、結果としてシ
ステム性能が制限される。従って、共有メモリのアクセ
スの高速化と、システムバスのオーバーヘッドの低減に
よ負荷低減が望まれる。
サモジュールと複数の共有メモリモジュールが、情報転
送のためのシステムバスを介して接続され、マルチプロ
セッサシステムとして知られた計算機システムを構築し
ている。
は、各プロセッサモジュールの中央処理ユニットは、自
己の物理アドレス空間に存在す共有メモリモジュールを
システムバスを介して物理アドレスにより直接アクセス
する同期アクセス方式を採用している。
モジュールによるシステムバスを使用した共有メモリへ
のアクセスには、プロセッサモジュール内のメインメモ
リへのアクセスに比べ非常に大きな時間を必要とすると
いう問題があった。
もので、共有メモリのアクセスの高速化と、システムバ
スのオーバヘッド低減による負荷の低減を図るようにし
た共有メモリの非同期アクセス方式を提供することを目
的とする。
に対する接続ユニットをキャッシュメモリのように使う
ことで、アクセスの高速化を図るようにした共有メモリ
の非同期アクセス方式を提供することを目的とする。
スにおいてバス上でコマンド、アドレス、データ、ステ
ータス(C,A,D,S)の4ワードが必要であるが、たとえ
ばプログラムモードの4アクセス分の16ワードを1ブロ
ックにブロック化してDMA形式でアクセスすると、コマ
ンド、アドレス、4データ、ステータス(C,A,D,D,D,D,
S)の7ワードで済み、プログラムモードに比べ半分以
下のワード数で済み、これによりオーバヘッドを低減し
てシステムバスの効率化を図ることのできる共有メモリ
の非同期アクセス方式を提供することを目的とする。
ことにより、このブロックの実際の書き込み動作は、プ
ロセッサモジュールのプロセッサの命令処理と非同期と
なるため、ブロック書き込みにおいてエラーが生じた場
合に、どの命令に対応してエラーが生じたかが分からな
くなる。従って、本発明では、上記ブロック化の他に、
ブロック書き込みの際に生じたエラーのリカバリを行う
ためのシリアライズ命令を設け、ブロック書き込みにお
いてエラーのリカバリを可能とすることを更なる目的と
する。
モリ20、中央処理ユニット18及びシステムバス16への接
続ユニット22を備えた複数の処理モジュール(プロセッ
サモジュール)10と、少なくとも共有メモリユニット26
及びシステムバス16への接続ユニット28を備えた複数の
共有メモリモジュール12とを備えた計算機システムを対
象とする。
非同期アクセス方式として本発明は第1B図に示すよう
に、処理モジュール10の接続ユニット22が中央処理ユニ
ット18による共有メモリモジュール12への書込命令また
は読出命令のアクセスアドレスの連続を認識した際に、
システムバス(16)を介して共有メモリモジュール12に
ブロックアクセスを要求することを特徴とする。
メモリモジュール12の接続ユニット28は、共有メモリユ
ニット26からアクセスアドレスに続く所定ワード数でな
る1ブロック分のデータを読出して処理モジュール10へ
送信する。
答は、処理モジュール10の接続ユニット22で受信され、
接続ユニット22の内部バッファにブロック読出による所
定ワード数でなる1ブロック分のデータを格納し、格納
後に中央処理ユニット18からの次の読出命令に対し内部
バッファに格納した対応する読出データを送出する。
ユニット18からのアクセスアドレスの連続する書込命令
を受けた際には、中央処理ユニット18からの書込データ
を内部バッファに格納し、格納データが所定ワード数で
なる1ブロック分に達したバッファフル時に共有メモリ
モジュール12に対しブロック書込要求を行う。
処理モジュール10の接続ユニット22によりアクセス対象
となった共有メモリモジュール12を示す相手先IDコード
(DID)、発信元を示す発信元IDコード(SID)、アクセ
スの種類を示すオペランド、及びアクセスデータ容量
(BCT)で構成される起動転送コマンド(SC)を作成
し、この起動転送コマンド(SC)を相手先共有メモリモ
ジュール12のアクセスアドレス(A)と共に前記システ
ムバス16に送信する。
送コマンド(SC)及びアクセスアドレス(A)を送信
し、書込アクセス時には起動転送コマンド(SC)、アク
セスアドレス(A)及び書込データ(D)を送信する。
は、アクセスバス16を監視して前記起動転送コマンド
(SC)の相手先IDコードと自己のユニットIDとの一致を
判別した時に該起動転送コマンド(SC)の受信動作を行
う。
受信動作により取り込んだ起動転送コマンド(SC)に基
づいて共有メモリユニット26のアクセスを終了した時に
は、相手先処理モジュール10を示すIDコード(DID)、
発信元を示す発信元IDコード(SID)および終結コード
を含む応答転送コマンド(EC)を作成してシステムバス
16に送信する。
22は、システムバス16を監視し、応答転送コマンド(E
C)の相手先IDコード(DID)と自己のユニットIDとの一
致を判別した時に、該応答転送コマンド(EC)の受信動
作を行う。
同期アクセス方式によれば、同期アクセスによるアクセ
スアドレスの連続するアクセス命令については、一命令
に対し所定ワード数となるブロック単位でのデータ転送
をシステムバス上で行うことから、このブロック化によ
りシステムバスに対するアクセスの高速化と、システム
バスのオーバーヘッドの低減により負荷を低減し、シス
テムバスを高能率化してシステム性能を向上することが
できる。
ク化してアクセスした場合にエラーが生じてもリカバリ
処理を正常に行うことが出来るので、本発明で導入する
ブロック化アクセス方式を実際のシステムにおいて有効
に実現可能とすることができる。
ニット構成図、 第6図は本発明の共有メモリモジュール内蔵の接続ユ
ニット構成図、 第7図は本発明のシステムバス上の転送コマンド説明
図、 第8図は本発明の書込転送動作説明図、 第9図は本発明の読出転送動作説明図、 第10図は本発明のアドレス空間マップ説明図、 第11図は本発明の拡張SSU空間説明図、 第12図は本発明の第1制御レジスタによるSSM構成定
義の説明図、 第13図は本発明の第2制御レジスタによるSSM構成定
義の説明図、 第14図は第12図及び第13図の構成定義に対応する共有
メモリモジュールの実装説明図、 第15A図及び第15B図は本発明のプログラムモードアク
セスのフローチャート、 第16A図及び第16B図は本発明のDMAモードアクセスの
フローチャート、 第17図は本発明のDMAモードアクセスで用いるディス
クリプタ説明図、 第18図は本発明の非同期プログラムモードにおけるSS
M読出動作説明図、 第19図は本発明の非同期プログラムモードにおけるSS
M書込動作説明図、 第20A図及び第20B図は従来の動作を示すタイミング
図、 第21A図は本発明において、シリアライズ命令を受信
して状態制御を行うプロセッサ側の接続ユニットの構成
図、 第21B図は前記接続ユニット内の状態制御部の状態遷
移図、 第21C図は状態遷移回路の回路図、 第22A図及び第22B図は本発明の動作を示すタイミング
図、 第22C図はシリアライズ命令に対する割込みハンドラ
の処理を説明する図である。
ルチプロセッサシステムの一部を示したシステム構成図
である。
個のプロセッサモジュール(PM)10と、複数個の共有メ
モリモジュール(SSM)12を有し、各プロセッサモジュ
ール10と各共有メモリモジュール12は、スプリットバス
である共有システムバス(SS−BUS)16に接続ユニット
(SSBC−P)22を通して接続される。共有システムバス
16は共有システムバスハンドラ(SSBH)14により制御さ
れ、共有システムバス16のアービトレーションは共有シ
ステムバスハンドラ14が集中管理する。
ニットIDとして、 PM#0;UID=1000000 PM#1;UID=1000001 PM#2;UID=1000010 が付けられ、また#0〜#2の共有メモリモジュール12
には、それぞれユニットIDとして SSM#0;UID=0000000 SSM#1;UID=0000001 SSM#2;UID=0000010 が付けられる。
ュール12は、フォールトトレラントを目的として二重化
した#0及び#1の共有システムバス16による制御され
ているが、より多くの共有システムバス16に接続しても
良い。
施例構成図である。
央処理ユニット(μP)18、ローカルなメインメモリユ
ニット(LSU)20、および2本の共有システムバス16に
対する2つの接続ユニット(SSBC−P)22が内部バス24
を介して設けられる。
ト18及びメインメモリ20上で動作するソフトウェア(O
S)が走行し、第2図に示した各プロセッサモジュール1
0内のソフトウェアは、相互に協調して一連の動作を行
う分散OSを構成する。またプロセッサモジュール10内の
中央処理ユニット18は、自己のプロセッサモジュール10
内のメインメモリ20からのみ命令コードをフェッチする
ようにしている。
施例構成図である。
有メモリユニット(SSU)24及び2本の共有システムバ
ス16に対する2つの接続ユニット(SSBC−S)28が内部
バス30を介して設けられる。共有メモリユニット26には
第2図に示した複数のプロセッサモジュール10で共有化
が必要なデータが格納される。
続ユニット(SSBC−P)22の実施例構成図である。
16を介して第2図の共有メモリモジュール12に対し、 プログラムモード DMAモード の2モードによるアクセスを行う。更に、プログラムモ
ードは1アクセス命令につき1ワード単位で行う同期ア
クセス方式と、1アクセス命令につき複数ワードでなる
ブロック単位で行う非同期アクセス方式とに分かれる。
ードとの2つのアクセスモードに対応してプログラムモ
ード・アクセス制御回路32及びDMAモード・アクセス制
御回路34、共有システムバス16との送受信回路36及びバ
ッファとして機能するデュアルポートRAM38によって構
成される。ここでプログラムモード・アクセス制御回路
32には、アドレスデコーダ40、タイミング制御回路42、
構成定義レジスタ44が設けられ、またDMAモード・アク
セス制御回路34には、アドレス発生器46、タイミング制
御回路48及びDMA制御レジスタ50が設けられる。
けた接続ユニット(SSBC−S)28の実施例構成図であ
る。
制御する内部バス制御回路74,アドレス発生器70及びタ
イミング制御回路72を備えたDMA制御回路52、第4図の
ように共有メモリモジュール12に複数の接続ユニット28
が搭載された場合に内部バス30のアービトレーションを
行う内部バスアービタ回路54、共有システムバス16に対
する送受信回路56、及びバッファ機能を有するデュアル
ポートRAM58によって構成される。
共有メモリモジュール12間を共有システムバス16を介し
て接続する接続ユニット22,28は、1回のアクセスを起
動転送、応答転送に分離して行うスプリット転送方式を
採用している。
ジュールごとにユニットIDを割り付け、ユニットIDをバ
ス上のモジュール識別子とする。
ンドSCと応答転送コマンドECの例を示す。
tion ID)は受信先モジュールのユニットIDであり、SID
(Source ID)は送信元モジュールユニットIDである。
またオペランドはアクセス種類を示す。アクセス種類と
しては、共有メモリモジュール12に対するメモリアクセ
スの他に、共有メモリモジュール12や他のプロセッサモ
ジュール10に対するホルト指示、或いはリセット指示な
どの制御レジスタのアクセス等がある。更にBCT(Byte
Count)は、共有メモリモジュール12のアクセスにおけ
るデータ容量を示す。
送コマンドSCと同じであるが、終結コードはアクセス先
における終結状態、即ち正常終結と異常終結をコード化
したものである。
ール10から共有メモリモジュール12にデータを転送して
書き込む書込アクセス(ストアアクセス)の動作説明図
である。
送コマンドSCを作成する。即ち、自己のユニットIDを示
すSID、アクセス先の共有メモリモジュール12のユニッ
トIDを示すDID、メモリ書込アクセスを示すオペラン
ド、アクセス容量を示すBCTによって転送起動コマンドS
Cを作成する。共有システムバス16上には転送起動コマ
ンドSCに続いて、アクセス先の共有メモリモジュール12
上のアクセスアドレスA及び書き込むべきデータDを送
信する。
ス16上を監視し、起動転送コマンドSCに含まれる受信先
を示すDIDと自己のユニットIDを比較し、両者一致した
場合に受信動作を行う。受信動作を行った共有メモリモ
ジュール12は、共有メモリモジュール12内に設けた共有
メモリユニット26(第4図参照)に書込アクセスを行
い、書込アクセスの終結コードを含め、転送方向が起動
転送と応答転送では逆のためDISとSIDを交換した応答転
送コマンドECを作成してアクセス元のプロセッサモジュ
ール10に対して送信する。
ムバス16上を監視し、応答転送コマンドEC中の相手先を
示すDIDが自己のユニットIDと一致した場合に受信動作
を行い、1回のアクセスを終了する。
マンドECの送信の開始までの間の空き時間については、
他のアクセスにおける起動転送コマンドSCあるいは応答
転送コマンドECの転送に共有システムバス16を使用して
も良い。
ュール10にデータを読み出す読出アクセス(フェッチア
クセス)の動作説明図である。
送コマンドSCを作成する。即ち、自己のユニットIDを示
すSID、アクセス先の共有メモリモジュール12のユニッ
トIDを示すDID、メモリ読出アクセスのオペランド、ア
クセス容量を示すBCTによって転送起動コマンドSCを作
成する。共有システムバス16上には転送起動コマンドSC
に続いて、アクセス先の共有メモリモジュール12上のア
クセスアドレスAを送信する。
16上を監視し、転送コマンドSCに含まれる受信先を示す
DIDと自己のユニットIDを比較し、一致した場合に受信
動作を行う。受信動作を行った共有メモリモジュール12
は、共有メモリモジュール12内の共有メモリユニット26
(第4図参照)に読出アクセスを行い、読出アクセスの
終結コードを含め、転送方向が起動転送と応答転送では
逆のためDIDとSIDを交換した応答転送コマンドEC及び読
出データDをアクセス元のプロセッサモジュール10に対
して送信する。
ムバス16上を監視し、応答転送コマンドEC中の相手先を
示すDIDが自己のユニットIDと一致した場合に受信動作
を行い、1回の読出アクセスが終了する。
ドの2モードがあるが、いずれのアクセスにおいても共
有システムバス16上での動作は同じである。
プ説明図を示す。
ドレス空間は共有メモリモジュール空間(以下「SSU空
間」という)と、プロセッサモジュール固有空間(以下
「PM固有空間」という)に大別される。
アリソース固有の空間であり、各プロセッサモジュール
10ごとに存在し、システムにおけるプロセッサモジュー
ル10の搭載台数分の多重アドレス空間となる。この実施
例ではPM固有空間を2GBとしている。
共通な空間である。すなわち、SSU空間は複数の共有メ
モリモジュール12によって構成され、システム搭載プロ
セッサモジュール12から見て共通の空間となり、しかも
プロセッサモジュール10の物理アドレスによって直接ア
クセスすることができる。従って、SSU空間には、全て
のプロセッサモジュール10で共通に必要なデータのみが
格納される。
空間は右側に取り出して示すように更に256MB単位の8
つの部分SSU空間#0〜#7に分割される。この部分SSU
空間#0〜#7の1つ1つが本発明の共有メモリモジュ
ール12で構成される。
空間と制御空間に分けられる。PM固有空間の一部である
LSU空間には、各プロセッサモジュール10が必要とする
オペランド、各プロセッサモジュール10固有のデータが
格納される。このLSU空間の存在により各プロセッサモ
ジュール10は共有メモリモジュール12で構成されるSSU
空間に対するアクセス回数を削減することができる。
U空間を指している場合には、そのプロセッサモジュー
ル10内での閉じたアクセスとなる。
(物理アドレス)がSSU空間を指している場合には、プ
ロセッサモジュール10の接続ユニット22がSSU空間アク
セスであることを認識し、該当する共有メモリモジュー
ル12に対し共有システムバス16を介してアクセスを行
う。
ール10上の物理アドレス空間にマッピングされているこ
とにより、ソフトウェアは空間切り替え等を行う必要な
しに、SSU空間及びLSU空間のアクセスが可能となる。
へのアクセス法としては、第10図のようにSSU空間が各
プロセッサモジュール10の物理アドレス空間に直接マッ
プされていることから、 ソフトウェアに基づく中央処理ユニット18の命令によ
り物理アドレスで直接アクセスするプログラムモード
と、 アクセスすべき共有メモリモジュール12を選択し、ア
クセスアドレスと転送長を指定してプロセッサモジュー
ル10と共有メモリモジュール12間のデータ転送を起動す
るDMAモード の2種類のアクセスモードがある。
なSSU空間は異なる。この実施例においては、プログラ
ムモードによってアクセス可能なSSU空間は、各プロセ
ッサモジュール10の物理アドレス空間に直接マップされ
た2GBのみである。しかし、DMAモードにおいてはアクセ
ス先の共有メモリモジュール12をユニットIDで指定する
ことにより、さらに大きなSSU空間、すなわち拡張SSU空
間に対するアクセスが可能である。
マンドSC中のDIDによってアクセス先の共有メモリモジ
ュール10のユニットIDを指定し、続くアドレスAで共有
メモリモジュール10内のアドレスを指定する。従って、
理論上は、 拡張SSU空間容量=2n (但し、nは中央処理ユニット18のアドレスビット幅に
ユニットIDのビット幅を加える) となる拡張SSU空間に対してアクセス可能となる。即
ち、拡張SSU空間は、ユニットIDを識別子として区別さ
れる拡張空間となる。
にマッピングされたSSU空間と、DMAモードでのみアクセ
ス可能な拡張SSU空間を示したマップ説明図である。
メモリモジュール12のユニットIDのビット数は7ビット
であり、0000000〜0111111の64個のユニットIDを共有メ
モリモジュール12に割り当てる。
のユニットIDは、プログラムモード及びDMAモードの両
方によるアクセスが可能であり、更に後述する二重化共
有メモリを構成する共有メモリモジュール12の構成定義
用に使用するため、物理アドレス空間の2GBに割り当て
る。また、残りの56個のユニットIDを4GB単位に割りつ
ける。その結果、合計226GBの拡張SSU空間に対してDMA
モードによるアクセスが可能である。
されず、全二重化の共有メモリ空間(拡張でない2GBの
空間)を16の共有メモリモジュール12を使って例えば00
00000〜0001111で作ることも可能である。
数の増加、あるいはユニットIDの共有メモリモジュール
12に対する割り当て率の増加によって、DMAモードアク
セスによる拡張SSU空間は拡大可能である。
複数の共有メモリモジュール12によって構成されるが、
SSU空間分の全てのメモリを実装する必要はなく、未実
装領域があってもかまわない。また、フォールトトレラ
ントを目的としてSSU空間の一部分を二重構成とするこ
とが可能である。
サモジュール10のSSU空間に示すように、プロセッサモ
ジュール10のSSU空間を複数個の部分SSU空間に分割し、
その分割された部分SSU空間ごとに共有メモリモジュー
ル12との関係、即ち、第11図に示した拡張SSU空間を構
成するユニットID=0000000〜0000111をもつ共有メモリ
モジュール12との関係を定義する構成制御によって実現
される。
間に分割し、それぞれの分割された部分SSU空間#0〜
#7ごとに共有メモリモジュール12との対応関係を示す
構成定義をしている。
ッサモジュール10に搭載された第5図に示した接続ユニ
ット22内の構成定義レジスタ44を操作することにより実
現される。この構成定義レジスタ44は、第12図に示す第
1レジスタ60と第13図に示す第2制御レジスタ62−1,62
−2で構成される。
B単位に8分割されたSSU空間に対応する共有メモリモジ
ュール12の存在の有無、すなわち共有メモリモジュール
12が実装されているか、未実装であるかを指定する。こ
の実施例では第12図は第1制御レジスタ60のビット1で
示すI0,I1,I2,I4,I7に対応した部分SSU空間#0,#1,#
2,#4,#7の5つが実装されており、ビット0で示すI
3,I5,I6に対応した部分SSU空間#3,#5,#6の3つが未
実装であることを示している。
御レジスタ60において実装が指定された部分SSU空間に
どの共有メモリモジュール12が対応するか、一重/二重
構成の指定、及び二重構成が指定された場合のアクセス
順序を指定している。
に対するビットD0,D1,D2,D4,D7のみ有効であり、対応す
る共有メモリモジュール12の構成及びアクセス形態を指
定している。即ち、ビットD0,D1,D7は0であり、部分SS
U空間#0,#1,#7が一重構成であることを指定してい
る。この一重構成の部分SSU空間#0,#1,#7に対して
アクセスが行われた場合、ユニットID=0,1,7で指定さ
れた共有メモリモジュール12に対するアクセスを行う。
いる。この二重構成の部分SSU空間#2,#4に対しアク
セスが行われると、ユニットID2,ユニットID4で指定さ
れた片方の共有メモリモジュール12から読み出しを行
う。
き込みは、1回目は第2制御レジスタ62−1,2のユニッ
トIDで指定された共有メモリモジュール12に対して書き
込みを行った後、2回目は最初のユニットIDの特定ビッ
ト、例えば最下位ビットを反転したユニットIDをもつ他
の共有メモリモジュール12に対して書き込みを行う。
る共有メモリモジュール12のペアは、例えば ユニットID=0000100 ユニットID=0000101 のように最下位ビットのみが反転しているユニットIDを
有する共有メモリモジュール12となる。
がビットD2,D4=1により二重構成の指定を受けてお
り、部分SSU空間#2については、 [部分SSU空間] [ユニットID] #2 0000010 #3 0000011 となるペアか設定され、また部分SSU空間#4について
は、 [部分SSU空間] [ユニットID] #4 0000100 #5 0000101 となるペアが設定される。
づく共有メモリモジュール12の実装状態及び構成定義を
示した説明図である。
#0〜#7に対応して8つの共有メモリモジュール12が
設けられるが、SSU空間#6に対応した共有メモリモジ
ュールは未実装である。またSSU空間#3と#5につい
ては、二重構成によりSSU空間#2と#4の共有メモリ
モジュール12に対し二重化されるため、SSU空間#3,#
5に対応する共有メモリモジュール12は存在しないこと
になる。残りの#0,#1,#7のSSU空間についてはて一
重構成であることから1対1に共有メモリモジュール12
が対応している。
アクセスできるSSU空間を分割して構成定義を行うこと
により、システム運用中においても、分割されたSSU空
間単位に共有メモリモジュールの有効/無効あるいは、
一重/二重構成の指定が可能となる。
理ユニット18の命令により物理アドレス空間で直接SSU
空間をアクセスするプログラムモードにおいては、32ビ
ットのSSU空間アドレスのビットb0〜b3の4ビットが共
有メモリモジュール12の選択子として機能し、残りビッ
トb4〜b31の28ビットが共有メモリモジュール12内のア
ドレスとして機能する。
6MBを越える場合、共有メモリモジュール12を選択する
選択子の意味に変わりはないが、共有メモリモジュール
12の内部アドレスは、共有メモリモジュール12に搭載さ
れるメモリ容量に対応させる。例えばメモリ容量が2倍
の512MBの場合、アドレス情報のビットb3〜b31の29ビッ
トが共有メモリモジュール12の内部アドレスの指定に使
用される。また1GBの場合は、ビットb2〜b31の30ビット
が共有メモリモジュール12の内部アドレスの指定に使用
され、さらに2GBまで拡張された場合は、31ビット全て
が共有メモリモジュール12の内部アドレスに使用され
る。このように共有メモリモジュール12のメモリ容量が
256MBを越える場合には、共有メモリモジュールを選択
する選択子のビット数が減少することから、256MB単位
に分割された複数の部分SSU空間に対して実装容量に対
応した同一のユニットIDを指定することになる。
第15A図,第15B図のフローチャートに示す手順となる。
プ」は省略)でソフトウェアが中央処理ユニット18の命
令としてSSU空間をアドレッシングするアクセスを行う
と、S2に進んで接続ユニット22は中央処理ユニット18か
らのアドレスビットb0〜b3の4ビットと共有メモリモジ
ュール12の構成定義を行う第2制御レジスタ62−1,2の
内容から、どのユニットIDを持つ共有メモリモジュール
12がアドレッシングされたSSU空間を有するかを判断す
る。更に第1制御レジスタ60の内容から指定された共有
メモリモジュール12が未実装か否かを判定し、未実装で
あればS4に進んで異常終了とする。
中央処理ユニット18に対してリトライ信号を返し、中央
処理ユニット18をウェイト状態とする。
メモリモジュール12からデータを読み出すフェッチ命令
か、共有メモリモジュール12にデータを書き込むストア
命令かを判別する。
S7に進んで第2制御レジスタ62−1,2の内容から相手先
の共有メモリモジュールのユニットIDをDIDとして起動
転送コマンドSCを作成し、S8で共有システムバス16のバ
ス権を獲得した後、起動転送コマンドSC及びアドレスA
を共有システムバス16に送信する。
同様に第2制御レジスタ62−1,2の内容から相手先の共
有メモリモジュールのユニットIDをDIDとして起動転送
コマンドSCを作成し、S14で共有システムバス16のバス
権を獲得した後、起動転送コマンドSC、アドレスA、更
に書込用のデータDを共有システムバス16に送信する。
B図のフローチャートに示すように、接続ユニット28がS
1で共有システムバス16を監視し、S2で起動転送コマン
ド中のDIDと自己のユニットIDとの一致を判別すると、S
3に進んで内蔵したジュアルポートRAM56に受信データを
書き込む。
ニット28は内部バス30に対するバス権を獲得した後に、
内部バス制御回路64の制御のもとにデュアルポートRAM5
6と共有メモリユニット26の間でデータ転送を行う。S5
で共有メモリモジュール12内でのデータ転送終了後、接
続ユニット28はアクセス元のプロセッサモジュール10に
対し応答を行う。
ドECを作成し、続いてS7で共有システムバス16に対する
バス権を獲得し、最終的にS8で応答転送コマンドEC、読
み出されたデータDを共有システムバス16に送信する。
続ユニット28は内部バス30に対するバス権を獲得した後
に、内部バス制御回路64の制御のもとにデュアルポート
RAM56と共有メモリユニット26との間のデータ転送によ
りデータ書込を行う。S9で共有メモリモジュール12内で
のデータ転送(データ書込)が終了すると、接続ユニッ
ト28はアクセス元のプロセッサモジュール10に対し応答
を行う。
ンドECを作成し、続いてS11で共有システムバス16に対
するバス権を獲得し、最終的にS12で応答転送コマンドE
Cを共有システムバス16に送信する。
と、プロセッサモジュール10の接続ユニット22は、S9又
はS16に示すように共有システムバス16を監視してお
り、応答転送コマンドECのDIDと自己のユニットIDとの
一致をS10,S17で判別すると、フェッチ命令の際にはS11
に進んで応答転送コマンドECとデータDを受信し、スト
ア命令の場合はS18に進んで応答転送コマンドECを受信
する。
対し発行しているリトライ信号を取り下げ、中央処理ユ
ニット18のウェイト状態を解除する。そしてフェッチ命
令であればS13で中央処理ユニット18に内部バス24の終
結信号DCを受信したデータDと共に返し、またストア命
令であればS20で中央処理ユニット18に内部バス24の終
結信号DCを返す。
る。
ては後の説明で明らかにする。
におけるDMAモードによるアクセスを説明する。
8は、まずS1で予めプロセッサモジュール10のメインメ
モリ20上に第17図に示す相手先の共有メモリモジュール
12のユニットID、アクセスアドレス、転送長等の制御内
容を含んだディスクリプタを配置する。
Count)は転送バイト数を指定し、バッファアドレスBUF
Aはメインメモリ20上に置かれるデータバッファの先頭
物理アドレスを指定し、DIDはアクセス対象となる共有
メモリモジュール12のユニットIDを指定する。更にSSUA
はアクセス対象となった共有メモリモジュール12内の相
対アドレス(DIDで指定された共有メモリモジュール12
内の内部アドレス)を指定するもので、プログラムモー
ドにおけるSSU空間の物理アドレスとは異なる。
ニット22に設けたDMAモード制御回路34内のDMA制御レジ
スタ50に転送方向、共有メモリモジュール12への二重化
書込指定、メインメモリ20上のディスクプリタのアドレ
ス等の制御指示を行い、DMAモードアクセスを起動す
る。
ト22がプロセッサモジュール10の内部バス24のバス権を
獲得してバスマスタとなり、DMA制御回路34の制御もと
にメインメモリ20を直接アクセスし、メインメモリ20上
のディスクリプタを読み出し、メインメモリ20から接続
ユニット22内のデュアルポートRAM38へのデータ転送を
行う。
転送終了後、S4でデータの転送方向を判別する。共有メ
モリモジュール12からメインメモリ20へ読出データを転
送する転送方向(以下「SSU→LSU)方向」という)であ
ればS5に進んで送受信回路36で第7図に示した共有メモ
リモジュール12のユニットID、転送長を含んだ起動転送
コマンドSCを作成する。一方、メインメモリ20から共有
メモリモジュール12へ書込データを転送する転送方向
(以下「SSU→LSU)方向」という)であればS13に進ん
で送受信回路36で同様に転送起動コマンドSCを作成す
る。
ス16のバス権を獲得する。
み、起動転送コマンドSC、アドレスAを共有システムバ
ス16に送信する。また(LSU→SSU)方向の場合にはS15
からS16に進み、起動転送コマンドSC、アドレスA及び
データDを共有システムバス16に送信する。
は、第16B図のS1で共有システムバス16を監視してお
り、起動転送コマンドSC中のDIDと自己のユニットIDと
の一致をS2で判別するとS3に進み、接続ユニット28内の
デュアルポートRAM56に受信データを書き込む。
方向かを判別し、(LSU→SSU)方向であればS5に進み、
また(SSU→LSU)方向であればS9に進む。S5,S9では、
接続ユニット28に設けたDMA制御回路52の内部バス制御
回路64が内部バス30のバス権を獲得し、デュアルポート
RAM56と共有メモリユニット26との間でデータ転送を行
い、S5では共有メモリユニット26からのデータ読み出し
を行い、またS9では共有メモリユニット26に対するデー
タ書込を行う。
と、S6,S10で第7図に示した終結コードを含んだ応答転
送コマンドECを作成し、S7,S11で共有システムバス16の
バス権利を獲得してS8,S12に進む。即ち、(LSU→SSU)
方向となるS8では、応答転送コマンドECに読み出したデ
ータDを付加して共有システムバス16に送信する。また
(SSU→LSU)となるS12では応答転送コマンドECを共有
システムバス16に送信する。
と、プロセッサモジュール10の接続ユニット22は、S8ま
たはS17に示すように共有システムバス16を監視してお
り、応答転送コマンドのDIDと自己のユニットIDとの一
致をS9,S18で判別すると、S10,S19に進んで受信動作を
行い、受信データを接続ユニット22内のデュアルポート
RAM38に格納する。
バス42のバス権を獲得し、DMA制御によりデュアルポー
トRAM38の受信データDをメインメモリ20に転送し、最
終的にS12でDMA制御レジスタ50に終結コードをセット
し、中央処理ユニット18に割り込み上げて終了を通知す
る。
み、DMA制御レジスタ50に終結コードをセットし、中央
処理ユニット18に割り込みを上げて終了を通知する。
ては後の説明で明らかにする。
ール12は、フォールトトレラントを目的として二重化す
ることが可能である。二重化された共有メモリモジュー
ル12をアクセスした際の書込動作は、二重化された両方
の共有メモリモジュール12に行われ、一方、読出動作は
片方の共有メモリモジュール12より行われる。
ソフトウェアに基づく中央処理ユニット18からの1回の
アクセス指示で、接続ユニット22のハードウェア制御に
よって二重化された共有メモリモジュール12へのアクセ
スが実行される。このハードウェア制御による二重化さ
れた共有メモリモジュール12への書込アクセスは、ハー
ドウェア制御上、同時に行われるのではなく、まず片方
の共有メモリモジュール12へ書き込みを行い、その動作
が完了すれば、もう一方の共有メモリモジュール12への
書込動作に入る。具体的な二重化アクセス方法は、プロ
グラムモードとDMAモードのアクセスによって異なる。
19,S22〜S28の処理となる。
場合と同じに処理され、S18で1回目の共有メモリモジ
ュール12に対する書込アクセスが終了して正常終了を示
す応答確認コマンドECを受領すると、S19に進んで共有
メモリモジュール12の構成を定義している第13図に示し
た第2制御レジスタ62−1,2を参照する。
ル12の二重化構成の指定、二重構成を指定した時の読出
し側の共有メモリモジュールのユニットID、更に先に書
き込む共有メモリモジュールのユニットIDが指定されて
いる。
アドレスに対応する共有メモリモジュール12が一重構成
の指定であれば、S20に進んで接続ユニット22はアクセ
ス対象となった共有メモリモジュール12に対する1回の
書込アクセスで終了する。
進み、既にアクセスが終了した第2制御レジスタ62−1,
2で最初に指定された共有メモリモジュール12のユニッ
トIDの最下位ビットを反転したユニットIDをDIDとする
ストア用の転送起動コマンドSCを作成する。次にS23で
共有システムバス16のバス権を獲得して起動転送コマン
ドSC、アドレスA及び1回目と同じデータDを共有シス
テムバス16に送信し、二重化された他方の共有メモリモ
ジュール12に対してアクセスを行う。
B図のS1〜S4,S9〜S12の処理が共有メモリモジュール12
側で行われ、最終的に終結コードを含む応答転送コマン
ドECを共有システムバス16に送信してくる。
の転送データを監視し、S25でDIDと自己のユニットIDの
一致を判別するとS26で応答転送コマンドECの受信動作
を行い、S12,S13の場合と同様にして二重構成の共有メ
モリモジュールに対する一連のストアアクセスを終了す
る。
モリモジュール12の構成定義を行っておけば、ソフトウ
ェアに基づき中央処理ユニット18でプログラムモードで
共有メモリモジュール12の物理アドレスをアクセスした
際(SSU空間のアクセス)に、プロセッサモジュール10
側の接続ユニット22がハードウェア制御によって共有メ
モリユニット12が一重構成か二重構成か判断し、二重構
成であれば、1回目のアクセス終了で自動的にユニット
IDを変えて2回目のアクセスを行うことができる。
−1,2で指定された共有メモリモジュール12の構成定義
が二重構成であっても、二重化された片方の共有メモリ
モジュール12が障害によりアクセスが不可能となる場合
があり得る。このような一時的に縮退運転を行わざるを
得ない状況においては、アクセス終了で得られた応答確
認コマンドECの異常終結コードを判別した際に、第2制
御レジスタ62−1,2の動作モードを二重化モードから一
重化モードへ変更することによって対応可能となる。
ール12へのアクセスが異常終結した場合は、異常が検出
された共有メモリモジュール12のユニットIDと、第2制
御レジスタ62−1,2の内容によるアクセス順序と合わせ
て、二重化されている2つの共有メモリモジュールの内
容の等価性の有無の判定も可能である。特に、プログラ
ムモードにおいては、基本的にアクセスの成功、失敗が
ワード単位で認識できるので、二重化された共有メモリ
モジュール12間でデータ等価性が失われた場合も、不一
致が生じたワードとアクセスに失敗した共有メモリモジ
ュール12側を考慮してリカバリ処理を行えば良い。
22〜S27の処理となる。
回目のDMAアクセスについては一重構成の場合と同じに
処理され、S19で1回目の共有メモリモジュール12に対
する書込アクセスが終了して正常終了を示す応答確認コ
マンドECを受領すると、S20に進んで二重化書込みの有
無を判定する。
ュール12を選択し、共有メモリモジュール12上のアクセ
スアドレスと転送長を指定して起動するが、その転送方
向、共有メモリモジュール12への書込み時の一重/二重
構成の指定等の動作モードは、起動する単位で接続ユニ
ット22のDMA制御レジスタ50で指定されている。
義しているDMA制御レジスタ50を参照して二重化書込み
の有無を判定する。
スに対応する共有メモリモジュール12が一重構成の指定
であれば、S21に進んで接続ユニット22はアクセス対象
となった共有メモリモジュール12に対する1回目の書込
アクセスで終了する。
進み、既にアクセスが終了したDMA制御レジスタ50で最
初に指定された共有メモリモジュール12のユニットIDの
最下位ビットを反転したユニットIDをDIDとする書込用
の転送起動コマンドSCを作成する。次にS23で共有シス
テムバス16のバス権を獲得して起動転送コマンドSC、ア
ドレスA及び1回目と同じデータDを共有システムバス
16に送信し、二重化された他方の共有メモリモジュール
12に対してDMAアクセスによる書き込みを行う。
第16B図のS1〜S4,S9〜S12の処理が共有メモリモジュー
ル12側で行われ、最終的に終結コードを含む応答転送コ
マンドECを共有システムバス16に送信してくる。
転送データを監視し、S25でDIDと自己のユニットIDの一
致を判別するとS26で応答転送コマンドECの受信動作を
行い、S11,S12の場合と同様にしてS26,S27を経て二重構
成の共有メモリモジュール12に対するDMAアクセスによ
る書き込みを終了する。
における二重化書込同様、動作モードを指定しておけ
ば、ハードウェアによる二重化書込が自動的に行われ
る。
セス中に異常終結した場合、アクセス中のユニットID
と、1回目のアクセス時に指定された共有メモリモジュ
ール12のユニットIDの最下位ビットによるアクセス順序
と合わせて、二重化された2つの共有メモリモジュール
12間のデータ等価性の有無も判定可能である。
10を示しているが、プロセッサモジュール10を1台とし
たシステム構成でもよい。
ードにあっては、第15A図に示したように、書込み/読
出しの完了が命令の実行完了と同期する同期型アクセス
となっている。そこでアクセスをブロック化すること
で、アクセスに対する応答を高速化することができる。
また、共有システムバス16の使用率の低減も可能であ
り、システム性能を向上できる。SSU空間に対するアク
セスをブロック化した場合、書込みの完了は命令の実行
完了と非同期となる。
モードによる共有メモリモジュール12の読み出し動作を
行った場合の動作説明図である。
モジュール10の中央処理ユニット(μP)18より発行さ
れた1ワードの共有メモリモジュー 12に対する読出要
求(a−R)に対して、接続ユニット22は、アドレスn
を先頭とするブロック読出要求(B1k−R)を共有シス
テムバス16を介して共有メモリユニット12に発行する。
この実施例では、アドレスn,n+1,n+2,n+3でなる4
ワードのブロック読み出し要求(B1k−R)を発行して
いる。
ステムバス16に送信されたブロック読み出し要求(B1k
−R)を受信し、プロセッサモジュール10の接続ユニッ
ト22に対し共有メモリユニット26から読み出したアドレ
スn,n+1,n+2,n+3の4ワードのデータ(B1k−D)を
送信する。
(B1k−D)を受信して接続ユニット22内のバッファ
(デュアルポートRAM38)に格納し、中央処理ユニット1
8へは共有メモリモジュール12の読み出しアドレスnに
対応したデータ(a−D)を返す。
R),(d−R)である場合は、先のブロックアクセス
により既に接続ユニット22内のバッファ内に得られてい
るため、接続ユニット22のバッファよりデータ(b−
D),(c−D)及び(d−D)の高速応答を行うこと
ができる。
無効化は、物理アドレスn+4に示すように、次のアク
セス要求がバッファ内に格納されていない領域である場
合(INV−OV)か、或いは物理アドレスn+6に示すよ
うに、連続アドレスでない場合(INV−NG)に行う。こ
れらの場合は1ワード単位のプログラムモードによって
共有メモリモジュール12に対しプロアクセスを行い、読
み出されたブロックデータの中の対応するアドレスのデ
ータのみを中央処理ユニット18に返す。
ログラムモードによるSSU書込動作を示す。
央処理ユニット(μP)19からソフトウェアに基づいて
発行された共有メモリモジュール12に対する物理アドレ
スnの書き込み要求(a−W)及びデータは、接続ユニ
ット22内のバッファ(デュアルポートRAM38)へ格納さ
れる。接続ユニット22内のバッファに対しては物理アド
レスn+1,n+2,n+3に示すように、4ワードの連続し
たアドレスの書込要求(b−W),(c−W),(d−
W)が続き、バッファがフルになれば、接続ユニット22
は共有システムバス16を介して共有メモリモジュール12
に対してブロック書き込み要求(B1k−W)を発行し、
ブロック書き込みが行われる。
ドレスが連続でないという書込要求(e−W)の条件が
検出された場合には、共有メモリモジュール12に対し、
ワード単位のプログラムモードによる書込要求(E−
W)を発行してワード単位の書き込みを行う。
で、命令終結後に検出される例外(例えばSSMの非実装
領域へアクセスしたとか、システムバス上でハードエラ
ーが発生した)の処理が問題となる。ここで、命令非同
期動作とは、書き込み命令実行完了と実際の書き込み完
了とが非同期に行われることである。命令同期動作の場
合に例外が検出されると、該命令に同期して例外割り込
みを発生させれば、ソフトウェアはどの命令が失敗した
かが、スタックに格納される情報から従来のように簡単
に認識できる。しかし本発明では、例えばブロック書き
込みのように命令非同期動作を採用しているのでどの命
令が失敗したかは一般には認識できない。そこで、例外
すなわちハードウェアによる実際の書き込みが失敗した
場合に、命令非同期動作すなわち書き込み突き離しにお
けるリカバリ処理が必要となる。
理を簡易に実現する為に、書き込み完了を保証する書き
込みシリアライズ命令を用意し、書き込み命令の後続に
付加する。書き込みシリアライズ命令が発行されると、
ハードウェアはその時点でバッファに格納されている書
き込み要求を実行した後に、該シリアライズ命令の実行
を完了する。シリアライズ命令は書き込み完了をもって
終結し、書き込み中に例外が発生すると、該命令に同期
して例外割り込みを発生させる。従って特定の書き込み
単位(極端には書き込み命令単位)に対して必ず後続に
シリアライズ命令を付加すれば、ハードウェアの書き込
みと、命令実行の同期を確立することができる。すなわ
ち、シリアライズ命令が実行されるということは、ハー
ドウェアによる実際の書き込みが完了したことになる。
つまり1ワード書き込みの場合とアクセスアドレスが連
続しているブロック書き込みとがある。
セスが実行され、アクセスアドレスが連続でないという
書き込み要求(e−w)の条件が検出された場合か、あ
るいは上記シリアライズ命令が発行されると、共有メモ
リモジュール12に対し、書き込み要求を(E−W)発行
してその時点でバッファに格納されているデータの書き
込みを行う。
し動作については読出しデータがCPUに到達する時点に
同期して、命令の実行が完了するので特に問題は無い
が、書き込み動作についてはCPUの命令実行完了後、メ
モリへの書き込みが行われる為、メモリ書き込み時の例
外(バス上で検出されるパリティエラー等やプログラム
例外)発生時の処理が問題となる。
うに、SSM書き込み命令に同期してメモリへの書き込み
を行う場合は、SSM書き込み命令のみが、CPU命令として
発行されると、SSBC−Pからコマンド(SC)、アドレス
(A)及び書き込みデータ(D)がSSMに出力され、書
き込みが正常であると、第20A図に示すように、正常で
あることを示す終結コマンド(EC)がSSBC−Pを介して
CPU側に返される。しかし、書き込みが異常である場合
には、第20B図に示すように、異常を示す終結コマンド
(EC)がSSBC−Pを介してCPU側に返される。CPUの具備
する命令同期割り込み機構を使用して、該書き込み命令
に同期して上記同期割り込みを発生させる。そして、CP
Uはスタック等にアクセスアドレスやストアデータを格
納した後に、割り込み処理ルーチンへの分岐を行う。割
り込みハンドラは、リトライ等の適切なリカバリ処理に
必要な情報は全てスタック情報から取得することができ
る。そして、SSM書き込みに対するリトライが実行さ
れ、正常であればそのECをかえす。このような同期書き
込みによる従来法では、SSM書き込みの実行中に、CPUは
他の命令を実行できず、命令の実行を全体として考えた
時に、時間がかかるという問題があった。
場合はCPUの命令自体は先に進んでおり、書き込みの高
速化がはかれる。ところが、例外が検出された時点で
は、書き込みアドレスやストアデータ等はその後の命令
によって更新されていることもあり、従ってCPUが具備
する従来型の同期割り込み機能だけではリカバリ処理が
実施できない。すなわち、本発明のように書き込み突き
離しを行い、そして従来の機能のみを使った場合の問題
点は、例外の検出時点がCPU命令と非同期であり、単
純な命令同期割り込みを使用することはできない。例
外の検出時点では、リカバリ処理に必要な情報が残存し
ておらずリカバリ処理ができない。
うなアーキテクチャを構築した。
た。本命令はPM固有空間への特定アドレスへのアクセス
とて実行される。本命令の実行完了は、その時点で滞留
している共有メモリへの書き込み実行完了に同期する。
が、割り込み契機は共有メモリへのアクセスかあるいは
(1)の書き込み用シリアライズ命令の実行に同期させ
る。シリアライズ命令の実行に同期して割り込みが発生
した場合、直前の書き込みに失敗したことを意味する。
一方共有メモリへのアクセスに同期して割り込みが発生
した場合、該割り込みが発生した原因は、直接割り込み
を発生させた共有メモリへのアクセス命令か、すなわち
書き込み或いは読み出し命令の後に続くシリアライズ命
令か或いは1つ前の共有メモリへの書き込み命令かが不
明であるが、SSBC−P内の制御レジスタに、直前の書き
込みを発生させたアクセス命令か、あるいは1つ前の割
り込みを発生させた書き込み命令かを判別する為のフラ
グを用意し、該フラグをSSBC−P内部の制御レジスタと
して読み出すことにより判定可能とする。
することができるが、依然としてリカバリ処理(リトラ
イ処理)に必要な情報は不完全である。本問題を解決す
る為、SSBC−Pはアクセスに失敗したブロック書き込み
の情報を全て保留しておく。更にCPUより保留している
アクセスの再試行指示があれば、該保留アクセスの再試
行を行う機能を設けた。本機構により割り込みハンドラ
は何ら例外発生の情報を取得・解析することなくリカバ
リ処理を実行することができる。
場合、上記機構を使用して何回再試行を行っても例外発
生を繰り返すだけである。このような場合の対策として
SSBC−Pが保留している再試行をキャンセルする必要が
ある。保留中の再試行をキャンセルする制御レジスタが
SSBC−P内部に設けられ、割り込みハンドラは再試行不
能と判定した場合、本レジスタをアクセスすることで保
留中の再試行はキャンセルされる。
P)の構成を示す。接続ユニット22は書き込み用バッフ
ァ381と読み出し用バッファ382とSS−BUS制御を行う送
受信回路36とからなり、更に書き込み用シリアライズ命
令に対応して状態の制御を行う状態制御部80を有する。
状態制御部80は共有メモリへのアクセスが失敗して、例
外が検出された場合には、例外検出信号を入力し再試行
を行う(リカバリ処理)、さらにはCPUに対して同期割
込み要求を行う。
の書き込み制御を行う接続ユニット22(SSBC−P)内に
設けられた状態制御部80内にある第21C図に示す状態遷
移回路の動作状態の遷移を第21B図を参照して説明す
る。下記説明において、〜は状態遷移図(第21B
図)と状態遷移回路(第21C図)における各番号に対応
している。そして、状態としては次のものがある。
アクセスの受付けが可能な状態。
てから、アクセスが終了する迄の状態。
終了し、例外発生(割り込み発生)の保留状態。
アクセスの再試行の保留状態。
する。
ロップ801と802のRST(リセット信号)を0にしてフリ
ップフロップ801と802の出力Q,をそれぞれ0,1にす
る。このときアンド回路812,813,814,815の出力である
A,B,EP,RPの状態は(A,B,EP,RP)=(1,0,0,0)とな
り、状態Aとなる。
る。すなわちA=1でライトアクセプト(WRITE ACCEP
T)信号(WT ACPT)が1となると、アンド回路806の出
力が1となりオア回路810を介してフリップフロップ8
02のセット入力Sを1にし、B=0,RT=0でアンド回路
803,807,808の出力が0であるからオア回路811の出力は
0である。従って、S=1,R=0となってフリップフロ
ップ802は、リセットからセットに移行する。すなわち
出力Q=1,=0なる。このときフリップフロップ801
はまだリセット状態であるから、そのは1であるので
アンド回路813の出力が0から1となり、すなわちB=
1となる。またフリップフロップ802の=0によって
Aは1から0となる。フリップフロップ801の出力Qは
まだQ=0であるから、アンド回路814,815の出力EPとR
Pはまだ0である。従って、(A,B,EP,RP)=(0,1,0,
0)となり、状態Bとなる。
る。すなわちA=0,EP=0であるから、アンド回路806
及び807の出力及びオア回路810の出力が1になると、ア
ンド回路808の出力が1となり、オア回路811の出力が1
となってフリップフロップ802の状態はリセット状態に
戻る。従って、フリップフロップ801と802もリセット状
態であるので(A,B,EP,RP)=(1,0,0,0)となり、状態
Aに戻る。
遷移する。すなわちアクセスエクセプション(ACCESS
EXCEPTION)信号(ACEXC)を受けると、B=1であるか
ら、アンド回路803の出力が1で、この時RP=0である
から、アンド回路804、805そしてオア回路806の出力は
0であるので、フリップフロップ801のセット端子Sと
リセット端子Rはそれぞれ1,0となってセット状態とな
る。フリップフロップ801はセット状態すなわちQ=
であり、フリップフロップ802はリセット状態すなわち
Q=0、Q=であるので、(A,B,EP,RP)=(0,0,1,
0)となってEP状態となる。
リアライズ命令が実行されると、CPUに同期割り込みを
発生させると同時にRP状態へ遷移し、再試行保留状態と
なる。すなわち、EP=1のときニューアクセス(NEW A
CCESS)信号(NEW・ACCS)が1であるとアンド回路807
の出力が1となり、オア回路810と811の出力はそれぞれ
1,0となる。ここでオア回路811を0にする条件はB=
0、従ってアンド回路803とアンド回路808の出力は0お
よびRP=0すなわちアンド回路805の出力は0である。
従ってフリップフロップ802もセット状態となる。すな
わちフリップフロップ801も802もセット状態となる。こ
のとき(A,B,EP,RP)=(0,0,0,1)となる。なお、第21
A図において、状態制御部80への例外検出信号の入力は
に相当し、同期割込要求の出力はに相当する。
リアライズ命令が実行されると、新たなアクセスは待機
させ、保留している再試行を実行する為にB状態へ遷移
する。すなわちRP=1で、ニューアクセス(NEW ACCES
S)信号が1であると、アンド回路806の出力が1となっ
て、A=0,B=0,RP=1であるからアンド回路803が0な
ので、フリップフロップ801がリセット状態となり、ま
たアンド回路803,805,808は0であるからフリップフロ
ップ802はリセットされず、フリップフロップ802はセッ
ト状態を保持する。すなわちフリップフロップ801はリ
セット、フリップフロップ802はセットであるから(A,
B,EP,RP)=(0,1,0,0)となる。
をキャンセルしA状態に復帰する。すなわちRP=1でキ
ャンセルアクセプト(CANCEL ACCEPT)信号(CAN・ACP
T信号)が1であると、アンド回路805の出力が1とな
り、オア回路809,811の出力が0となりフリップフロッ
プ801と802は共にリセット状態となり、(A,B,EP,RP)
=(1,0,0,0)となる。
グ図である。第22A図においてCPUからSSM書き込み命令
が発行されると本発明では書き込み突き離しとなるの
で、CPUの命令とは非同期にコマンド(SC)とアドレス
(A)および書き込みデータ(D)はバッファを介し
て、SS−BUSに出力される。この時書き込み状態を制御
する状態遷移回路は、状態Aから状態Bに移っている。
そしてCPUでは書き込み命令に続いてシリアライズ命令
が発行されている。共有メモリへの書き込みが正常終了
すると、正常を示す終結コマンド(EC)をCPUに返し、
状態遷移回路は状態BからAに遷移する。次にSSM書き
込みがあれば、同じ動作を行うこととなる。CPUは書き
込み命令の後に、他の命令を実行することができる。
共有メモリへのアクセスに例外が検出されると、Bの状
態からEP状態となり、異常を示す同期割り込みがCPUに
発せられて状態遷移回路は更にRP状態となる。この状態
でCPUはその割り込み処理ルーチンが実行される。状態
遷移回路は、RP状態において新たな共有メモリへのアク
セスのため、リトライとしてのシリアライズ命令が実行
されると、再度SS−BUSにバッファに既に保持されてい
る前回と同じコマンド(SC)アドレス(A)及びデータ
(D)が伝送され、共有メモリ側にわたされる。この時
新たなアクセスは待機させ、その保留している再試行
(リトライ)を実行するため、状態遷移回路はRPからB
状態遷移する。このリトライが正常に実行されれば、正
常を示す終結コードECがかえされ、状態遷移回路は再び
A状態になる。そして、次の書き込みが同様に実行され
る。
R,Rはレジスタからレジスタへのデータ書き込み、R,S
SMはレジスタからSSMへのデータ転送、R,LSUレジスタ
からLSUへのデータ転送、LSU,LSUはLSUからLSUへのデ
ータ転送を行う転送命令である。R,SSRはシリアライ
ズ命令である。
う。
態へ遷移する。でシリアライズ命令(あるいは新たな
SSMアクセス命令)の発行の際に書き込みが失敗し、例
外検出信号が状態制御部80に入力すると、CPUへ同期割
り込みを発生させると同時にEP状態はRP状態へ遷移す
る。そして、割り込みハンドラはリトライの可否を判定
する。リトライ可なら再試行の為に元のプログラムに復
帰する。リトライ不可なら再試行取消し命令を発行して
動作状態をA状態に戻した後復帰する。が再実行さ
れ、RP状態であれば保留中の再試行を行った後、の命
令を実行する。A状態であれば直ちにの命令を実行す
る。
スが連続する場合には複数ワードを1ブロックとしたブ
ロックアクセスによるデータ転送が行われ、システムバ
スのアクセス高速化とオーバヘッドの低減による負荷低
減を実現し、システムバスの高効率化によってシステム
性能を向上することができる。また、ブロック転送で書
き込みを突き離して行うことにより動作を高速化した場
合において、各書き込み命令のあとにシリアライズ命令
を付加して、その書き込み動作が正しく行われるか否か
チェックし、書き込み異常のときにCPUに同期割り込み
をかけて、書き込みの再試行を行うことにより、ブロッ
ク転送においても書き込み異常のリカバリ処理を可能と
し、システムの信頼性を高めるという効果を有する。
Claims (8)
- 【請求項1】少なくともメインメモリ、中央処理ユニッ
ト及びシステムバスへの接続ユニットを備えた1又は複
数の処理モジュールと、少なくとも共有メモリユニット
及び前記システムバスへの接続ユニットを備えた1又は
複数の共有メモリモジュールとを備えた計算機システム
において、 前記処理モジュールの接続ユニットが前記中央処理ユニ
ットによる共有メモリモジュールへの書き込み命令また
は読み出し命令のアクセスアドレスの連続を認識した際
に、前記システムバスを介して前記共有メモリモジュー
ルに前記連続したアクセスアドレスへのブロックアクセ
スを要求する手段と、 前記処理モジュールに設けられた、書き込み命令の後に
書き込み命令に対するエラーが発生したときのリカバリ
を実施するためのシリアライズ命令を発行する手段と、 書き込み中に例外が発生し、かつ、シリアライズ命令が
検出されると、例外割り込みを発生する手段とを具備
し、エラーが発生した書き込み処理に対応する書き込み
命令の判別を可能としたことを特徴とする計算機システ
ム。 - 【請求項2】請求項1記載の計算機システムにおいて、 前記接続ユニットは、更に、直前の割り込みを発生させ
た書き込み命令か1つ前の割り込みを発生させた書き込
み命令かを示す情報を記憶するレジスタを有し、 前記書き込み制御手段は新たな割り込みが可能なA状態
と、共有メモリへのアクセスを開始してから、アクセス
が終了するまでのB状態と、共有メモリへのアクセスが
異常終了し、例外発生の保留を行っているEP状態と、直
前に失敗した共有メモリへのアクセスの再試行の保留を
行っているRP状態とを有し、 共有メモリへのアクセスに例外が検出された時にB状態
からEP状態に遷移し、EP状態において新たな共有メモリ
へのアクセスかシリアライズ命令が実行されると、CPU
に同期割り込みを発生させると共に再試行保留状態とな
ることを特徴とする計算機システム。 - 【請求項3】請求項2記載の計算機システムにおいて、 前記書き込み制御手段は、更に、中央処理ユニットの初
期化によりA状態に遷移し、また、共有メモリへの書き
込み受け付けによりB状態に遷移し、共有メモリへの書
き込みが正常終了するとA状態に遷移し、RP状態におい
て新たな共有メモリへのアクセスがシリアライズ命令が
実行されると、新たなアクセスを待機させ、保留してい
る再試行を実行するためB状態に遷移し、保留中の再試
行の取り消し指示を受領すると、再試行をキャンセルし
てA状態に遷移することを特徴とする計算機システム。 - 【請求項4】中央処理ユニットと、該中央処理ユニット
による書き換え可能なメモリと、前記中央処理ユニット
とメモリ間に設けられ、該メモリの書き込み制御する手
段からなり、 前記中央処理ユニットから該メモリへの書き込み命令ま
たは読み出し命令のアクセスアドレスの連続を認識した
際に、該連続したアクセスアドレスへのブロックアクセ
スを要求する手段と、 書き込み中に例外が発生し、かつ、シリアライズ命令が
検出されると、例外割り込みを発生する手段とを具備
し、エラーが発生した書き込み処理に対応する書き込み
命令の判別を可能としたことを特徴とする計算機システ
ム。 - 【請求項5】前記中央処理ユニットは複数個設けられ、
前記メモリは前記中央処理ユニットによりアクセスされ
る共有メモリであることを特徴とする請求項4記載の計
算機システム。 - 【請求項6】更に、直前の割り込みを発生させた書き込
み命令か1つ前の割り込みを発生させた書き込み命令か
を示す情報を記憶するレジスタを有し、 前記書き込み制御手段は新たな受付けが可能なA状態
と、メモリへのアクセスを開始してから、アクセスが終
了するまでのB状態と、メモリへのアクセスが異常終了
し、例外発生の保留を行っているEP状態と、直前に失敗
したメモリへのアクセスの再試行の保留を行っているRP
状態とを有し、 メモリへのアクセスに例外が検出された時にB状態から
EP状態に遷移し、EP状態において新たな共有メモリへの
アクセスかシリアライズ命令が実行されると、CPUに同
期割り込みを発生させると同時に再試行保留状態となる
ことを特徴とする請求項4記載の計算機システム。 - 【請求項7】前記書き込み制御手段は、更に中央処理ユ
ニットの初期化によりA状態に遷移し、またメモリへの
書き込み受け付けによりB状態に遷移し、メモリへの書
き込みが正常終了するとA状態に遷移し、RP状態におい
て新たなメモリへのアクセスかシリアライズ命令が実行
されると、新たなアクセスは待機させ、保留している再
試行を実行するためのB状態に遷移し、保留中の再試行
の取り消し指示を受領すると再試行をキャンセルしてA
状態に遷移することを特徴とする請求項6記載の計算機
システム。 - 【請求項8】前記メモリは共有メモリであることを特徴
とする請求項7記載の計算機システム。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2-248205 | 1990-09-18 | ||
| JP24820590 | 1990-09-18 | ||
| PCT/JP1991/001238 WO1992005489A1 (fr) | 1990-09-18 | 1991-09-18 | Procede d'acces non synchrone a une memoire partagee |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO1992005489A1 JPWO1992005489A1 (ja) | 1993-02-04 |
| JP3141948B2 true JP3141948B2 (ja) | 2001-03-07 |
Family
ID=17174757
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP03515017A Expired - Lifetime JP3141948B2 (ja) | 1990-09-18 | 1991-09-18 | 計算機システム |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP0500967B1 (ja) |
| JP (1) | JP3141948B2 (ja) |
| DE (1) | DE69132670T2 (ja) |
| WO (1) | WO1992005489A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2006030650A1 (ja) * | 2004-09-16 | 2008-05-15 | 日本電気株式会社 | 複数の処理ユニットでリソースを共有する情報処理装置 |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201015579A (en) * | 2008-09-18 | 2010-04-16 | Panasonic Corp | Buffer memory device, memory system, and data readout method |
| TW201015321A (en) * | 2008-09-25 | 2010-04-16 | Panasonic Corp | Buffer memory device, memory system and data trnsfer method |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS53135232A (en) * | 1977-04-30 | 1978-11-25 | Hitachi Ltd | Main memory control system |
| JPS56156978A (en) * | 1980-04-30 | 1981-12-03 | Toshiba Corp | Memory control system |
| JPS6252663A (ja) * | 1985-09-02 | 1987-03-07 | Hitachi Ltd | 情報処理方法及び装置 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5941215B2 (ja) * | 1979-10-09 | 1984-10-05 | 富士通株式会社 | 主記憶装置書込み制御方式 |
| JPS5725053A (en) * | 1980-07-22 | 1982-02-09 | Nec Corp | Memory device |
| JPS57211628A (en) * | 1981-06-22 | 1982-12-25 | Hitachi Ltd | Controller for shared input and output loop bus of multicomputer system |
| US4539637A (en) * | 1982-08-26 | 1985-09-03 | At&T Bell Laboratories | Method and apparatus for handling interprocessor calls in a multiprocessor system |
| JPS59116866A (ja) * | 1982-12-23 | 1984-07-05 | Toshiba Corp | 計算機システムの記憶装置 |
| JPS61165170A (ja) * | 1984-12-19 | 1986-07-25 | Fujitsu Ltd | バス制御方式 |
| JPH02103656A (ja) * | 1988-10-12 | 1990-04-16 | Fujitsu Ltd | 主記憶参照の遂次化制御方式 |
-
1991
- 1991-09-18 JP JP03515017A patent/JP3141948B2/ja not_active Expired - Lifetime
- 1991-09-18 EP EP91916224A patent/EP0500967B1/en not_active Expired - Lifetime
- 1991-09-18 WO PCT/JP1991/001238 patent/WO1992005489A1/ja not_active Ceased
- 1991-09-18 DE DE69132670T patent/DE69132670T2/de not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS53135232A (en) * | 1977-04-30 | 1978-11-25 | Hitachi Ltd | Main memory control system |
| JPS56156978A (en) * | 1980-04-30 | 1981-12-03 | Toshiba Corp | Memory control system |
| JPS6252663A (ja) * | 1985-09-02 | 1987-03-07 | Hitachi Ltd | 情報処理方法及び装置 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPWO2006030650A1 (ja) * | 2004-09-16 | 2008-05-15 | 日本電気株式会社 | 複数の処理ユニットでリソースを共有する情報処理装置 |
| JP4737438B2 (ja) * | 2004-09-16 | 2011-08-03 | 日本電気株式会社 | 複数の処理ユニットでリソースを共有する情報処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO1992005489A1 (fr) | 1992-04-02 |
| EP0500967A4 (ja) | 1995-04-26 |
| DE69132670T2 (de) | 2001-11-15 |
| EP0500967A1 (en) | 1992-09-02 |
| EP0500967B1 (en) | 2001-07-25 |
| DE69132670D1 (de) | 2001-08-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5963976A (en) | System for configuring a duplex shared storage | |
| JP3645281B2 (ja) | 共用メモリを有するマルチプロセッサ・システム | |
| KR970001919B1 (ko) | 다수의 버스간의 정보 전송 시스템 및 방법 | |
| JP3204961B2 (ja) | I/oバス対システムバス・インタフェース | |
| JP2602599B2 (ja) | 多重プロセッサ・データ処理システム及びその動作方法 | |
| US4939643A (en) | Fault tolerant digital data processor with improved bus protocol | |
| JP2641819B2 (ja) | キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式 | |
| JPS63208963A (ja) | デジタルデータ処理システム | |
| JPH07282025A (ja) | クロック回路 | |
| JPH05250293A (ja) | 通信装置及び通信装置を使用する方法 | |
| US5410650A (en) | Message control system for data communication system | |
| US20050050244A1 (en) | Method for controlling data transfer unit, data transfer unit, channel control unit, and storage device control unit | |
| US6108755A (en) | Asynchronous access system to a shared storage | |
| US5761728A (en) | Asynchronous access system controlling processing modules making requests to a shared system memory | |
| JP3141948B2 (ja) | 計算機システム | |
| KR0153487B1 (ko) | 장치간의 통신 수행 방법 및 통신 수행 시스템 | |
| US20020174282A1 (en) | Multiprocessor system | |
| JP2936036B2 (ja) | メモリアクセス装置 | |
| JPS63208151A (ja) | デジタルデータ処理システムのプロセッサと特殊命令プロセッサの間のインターフェイス | |
| WO1998009221A1 (en) | Method and apparatus for supporting multiple overlapping address spaces on a shared bus | |
| KR960005395B1 (ko) | 최소 경합 프로세서 및 시스템 버스 시스템 | |
| JPWO1992005489A1 (ja) | 計算機システム | |
| JP3112280B2 (ja) | 計算機システム | |
| JPS6035698B2 (ja) | デ−タ処理システム | |
| JP3246736B2 (ja) | 計算機システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071222 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081222 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091222 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091222 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101222 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111222 Year of fee payment: 11 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111222 Year of fee payment: 11 |