JPH0934741A - メモリコピーシステム - Google Patents

メモリコピーシステム

Info

Publication number
JPH0934741A
JPH0934741A JP7180406A JP18040695A JPH0934741A JP H0934741 A JPH0934741 A JP H0934741A JP 7180406 A JP7180406 A JP 7180406A JP 18040695 A JP18040695 A JP 18040695A JP H0934741 A JPH0934741 A JP H0934741A
Authority
JP
Japan
Prior art keywords
memory
bus
address
transaction
register
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.)
Withdrawn
Application number
JP7180406A
Other languages
English (en)
Inventor
Shinji Watabe
晋司 渡部
Shuya Hirayama
修也 平山
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.)
NEC Engineering Ltd
Original Assignee
NEC Engineering 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 NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP7180406A priority Critical patent/JPH0934741A/ja
Publication of JPH0934741A publication Critical patent/JPH0934741A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 冗長構成の3系CPUにおける1つの系内の
メモリ内容を他系のメモリへ転送する場合、共通のグロ
ーバルメモリ等を設けることなく、直接メモリコピーを
実行可能とする。 【構成】 各CPU内の入出力制御部において、コピー
開始アドレスレジスタ133,終了アドレスレジスタ1
35を設け、レジスタ133に格納されたアドレスに順
次+1カウンタ137によりカウントアップしつつ自系
メモリからデータを読出す。この処理をレジスタ135
に格納されたアドレスに達するまで(終了チェック回路
144で検出)続けることで、メモリコピーが行われ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はメモリコピーシステムに
関し、特にCPU(中央処理装置)を複数設けて冗長構
成とすることによりシステム全体の信頼性を向上するよ
うにした情報処理システムにおけるメモリコピー方式に
関するものである。
【0002】
【従来の技術】従来のこの種の冗長構成の情報処理シス
テムはいわゆるフォールトトレラントコンピュータ(F
TC)システムとして知られており、例えば特開平2−
202637号公報、特開平3−015946号公報、
特開平3−050916号公報及び特開昭64−046
844号公報等に開示されており、冗長構成のCPU
(情報処理サブシステムとも称されている)の複数出力
の多数決を採り、多数決に合致した出力を選択的に採用
することによってシステム全体の信頼性を向上させる技
術である。
【0003】例えば、特開平2−20637号公報開示
の技術を参照すれば、図8にそのシステム全体構成が示
されており、3つのCPUサブシステム(CPU−a,
b,c)と、2つのグローバルメモリ(グローバルメモ
リ#1,#2)と、複数のI/Oプロセッサ(I/Oプ
ロセッサ#1,#2,#3)と、複数のI/Oコントロ
ーラとから成り立っている。
【0004】各CPUサブシステムは内部に夫々ローカ
ルメモリを有しており各ローカルメモリは他のCPUサ
ブシステムから直接アクセスすることはできないように
なっており、これら3つのCPUサブシステムはローカ
ルメモリ内にOSの核となるプログラムを有しており、
3つのCPUサブシステムは独立したクロックCKによ
り動作するものである。
【0005】本来独立して動作する3つのCPUサブシ
ステムを互いに同期させて同一動作を行わせ、CPUサ
ブシステムの挙動を多数決(Voting)すること
で、フォールトトレラントを実現するものである。
【0006】この多数決のためにグローバルメモリ#
1,#2を設けており、グローバルメモリは3つのCP
Uサブシステムからアクセス可能であり、ローカルメモ
リとの間でページスワッピングが行われる。具体的に
は、ユーザプログラムやユーザプログラムが使用するデ
ータが格納されるものである。3CPUサブシステムか
らグローバルメモリへのアクセスはグローバルメモリで
多数決される。
【0007】2つのグローバルメモリは夫々に複数のI
/Oプロセッサとの間がバスにて接続されており、グロ
ーバルメモリとI/Oプロセッサとの間のバスは二重化
されている。
【0008】周辺装置(I/Oコントローラ配下のディ
スク装置等)のDMA動作は、I/Oプロセッサ及びI
/Oコントローラを介してグローバルメモリに対しての
み行われ、周辺装置からCPUサブシステム内の各ロー
カルメモリへのDMA動作は行われない。
【0009】グローバルメモリ内のレジスタ、I/Oプ
ロセッサ内のレジスタ、I/Oコントローラ内のレジス
タへの各アクセスが行われるが、これらアクセスはグロ
ーバルメモリ内のポート回路にて多数決されるようにな
っている。
【0010】グローバルメモリは二重化されており、各
CPUサブシステムとは1:2接続構成であり、一方が
「プライマリ」、他方が「バックアップ」として定義さ
れている。CPUサブシステムからグローバルメモリへ
のライトは両方へ行われ、グローバルメモリからのリー
ドはプライマリから行われる。リード時、バックアップ
側は内部でリード動作を行うが、リードデータの出力は
行わず、ステータスのみをCPUサブシステムへ返すよ
うになっている。
【0011】I/Oプロセッサからグローバルメモリへ
のライト動作は二重化されたバスを使用してプライマ
リ、バックアップの両方に対して行われる。リード動作
については、両メモリからのデータを受信してプライマ
リ側のデータが用いられる。
【0012】ここで、2つのグローバルメモリ間のメモ
リコピーは2ステップのプロセスで実行される。例とし
て、グローバルメモリ#1から#2へのメモリコピーを
行う場合、第1のステップとしてグローバルメモリ#1
の全てのロケーションをプロセッサがリードし、グロー
バルメモリ#1,#2の両方に対してライトする。グロ
ーバルメモリ#1,#2は通常動作でもプライマリとバ
ックアップとに夫々定義されており、リードはどちらか
一方のプライマリと定義された方からリードされ、ライ
トはプライマリとバックアップとの両方に対して行われ
る。第1のステップでは、IOバスから生じるライトは
全て無視される。
【0013】第2のステップでは、IOバスからのライ
トも実行されることを除いて第1のステップと同一であ
る。この第2のステップがグローバルメモリのアドレス
の最初から最後まで指定された時に、グローバルメモリ
#1と#2とは同一内容となる。この第1と第2のステ
ップは通常の動作が進行中に実行中のタスクに挿入して
行われるようになっている。
【0014】各プロセッサのローカルメモリは、これ等
ローカルメモリ間でメモリコピー機能を有していない。
正常な2つのプロセッサのローカルメモリの内容をグロ
ーバルメモリ#1と#2とにコピーして、その後各プロ
セッサをリセットすることにより、ローカルメモリの内
容はクリアされる。リセット後に、全プロセッサが同期
すると、グローバルメモリ#1,#2にコピーしていた
内容をローカルメモリへコピーして戻すことで、各プロ
セッサのローカルメモリの内容は同一になる。
【0015】
【発明が解決しようとする課題】従来のこの様な構成で
は、多数決論理回路より前段のローカルメモリの内容を
メモリコピーするためには、多数決論理回路以後の段に
3重化モジュールの全てからアクセス可能なグローバル
メモリを設ける必要がある。
【0016】メモリコピーはグローバルメモリに一旦正
常なローカルメモリの内容をコピーし、全てのローカル
メモリの内容をクリアしてしかる後に、全てのローカル
メモリにグローバルメモリにコピーした内容を戻すとい
う作業が必要であるために、1つのローカルメモリの内
容を他のローカルメモリへ直接移すということは不可能
である。
【0017】本発明の目的は、グローバルメモリを必要
とすることなく簡単な構成で1つのローカルメモリの内
容を他のローカルメモリへ直接移すことが可能な情報処
理装置におけるメモリコピーシステムを提供することで
ある。
【0018】
【課題を解決するための手段】本発明によれば、冗長構
成とされた少なくとも3系統の情報処理サブシステム
と、入出力バスと、この入出力バスに接続された複数の
周辺制御装置と、これ等複数の周辺制御装置に共通に設
けられ前記情報処理サブシステムと前記入出力バスとの
間の接続をなし前記情報処理サブシステムの各々から前
記周辺制御装置への出力の多数決論理を実行するバスイ
ンタフェース装置とを含み、前記情報処理装置サブシス
テムの各系は、演算処理を実行する演算処理部と、プロ
グラムデータを格納するメモリと、前記演算処理部から
前記周辺制御装置をアクセスするトランザクション及び
前記周辺制御装置から前記メモリをアクセスするトラン
ザクションを制御する入出力制御部とを有する情報処理
装置におけるメモリコピーシステムであって、前記入出
力制御部の各々は、自系の前記メモリの内容を他系のメ
モリへ転送するメモリコピーの開始及び終了を指示する
指示手段と、前記メモリコピーの開始指示から終了指示
までの間、自系メモリの内容を順次読出しつつ前記バス
インタフェース装置へ送出するメモリコピー制御手段と
を有し、前記バスインタフェース装置は、前記入出力制
御部から送出されてきたメモリの内容を前記他系のメモ
リへ順次送出制御する送出制御手段を有することを特徴
とするメモリコピーシステムが得られる。
【0019】そして、前記指示手段は、指示されたメモ
リコピー開始アドレスと、メモリコピー終了アドレスと
を夫々保持する手段を有し、前記メモリコピー制御手段
は、前記メモリコピ−開始アドレスを前記メモリコピー
終了アドレスまで順次更新する手段と、この更新メモリ
コピーアドレスの前記自系メモリからデータを読出す手
段と、前記更新メモリコピーアドレスと前記自系メモリ
からの読出しデータとを前記バスインタフェース装置へ
送出する手段とを有することを特徴としている。
【0020】
【作用】ある1系の情報処理サブシステム内のメモリの
内容を他系のメモリへコピーするとき、当該1系の情報
処理サブシステム内の入出力制御部において、自系のメ
モリ内容を他系メモリへ転送するメモリコピー開始及び
終了を指示し、このメモリコピーの開始から終了までの
間自系メモリの内容を順次読出しつつバスインタフェー
ス装置へ送出し、当該バスインタフェース装置では、こ
の送出されてきたメモリ内容を他系のメモリへ順次送出
制御することで、メモリ間のデータ転送が直接可能とな
る。
【0021】
【実施例】以下に図面を参照して本発明の実施例を詳細
に説明する。
【0022】図1は本発明の実施例のシステムブロック
図である。図1において、演算処理を実行する演算処理
装置(EPU)100a,100b,100cと、プロ
グラムデータを格納するメモリ101a,101b,1
01cと、EPUから周辺制御装置(PCU)へアクセ
スするたのIOトランザクションとPCUからメモリを
アクセスするためのDMA(ダイレクトメモリアクセ
ス)トランザクションとを制御する入出力制御装置(B
IU)103a,103b,103cとを夫々含んで3
系統の情報処理サブシステム(以下、単にCPUと称す
る)が構成されている。
【0023】これ等各EPU,メモリ,BIUはキャッ
シュコヒーレンシ機能を有するMPバス102a,10
2b,102cにて夫々相互に接続されている。これ等
3系統の冗長構成のCPUは同期クロックにより同期動
作しかつ同一プログラムを実行することにより3重化動
作を行うものである。
【0024】複数のPCUはIOバス108〜111を
夫々介してバスインタフェースアダプタ(BIA)10
4〜107に接続されており、これ等BIA104〜1
07では、3重化された各CPU系からPCUへのアク
セスの多数決論理をとる機能を有している。障害が生じ
ていない限り、各CPU系からのアクセスは一致してい
るが、いずれかのCPU系に障害が生じると、多数決論
理で障害が発見されて他の正常な2つのCPU系と異な
るアクセスのCPU系は故障とみなされる。
【0025】各CPU系からPCUへのアクセスはBI
Aでの多数決論理により1つとなり、PCUをアクセス
する。PCUからのメモリへのアクセスはBIAから全
てのCPU系に対するトランザクションとして実行され
る。各BIAはそのために3つのCPU系への入出力ポ
ートを夫々有してる。
【0026】上記構成において、メモリコピーに関係す
る重要な機能を有するBIU103a,103b,10
3cについて、更に詳述する。BIUは内部に中間バス
であるNAバスを有しており、MPバスとNAバスとの
インタフェース制御はIAC(インタフェースアドレス
コントローラ)及びIDB(インタフェースデータバッ
ファ:IOキャッシュ)により行われる。NAバス配下
には、BIAとのインタフェースとNAバスとのインタ
フェースの制御を行うTIU(トリプルリダンダンシイ
ンタフェースユニット)が複数接続されている。各TI
Uは夫々異なるBIAに接続され、各CPU系のシステ
ム構成として等しいTIUが同じBIAに接続されてい
る。
【0027】本システムでは、CPU系で障害が発生す
るとBIAで検出され、障害の発生したCPU系は切り
離され、残りの2つのCPU系で動作し続ける。障害が
発生したCPU系では、障害の要因が取り除かれた後、
再度システムに組み込まれて3重化運転に戻るようにな
っている。この3重化に戻す場合にメモリコピーが必要
になる。通常動作しているCPU系から、組込もうとし
ている障害を起こしたCPU系にメモリデータをコピー
するもので、1対2のコピーや2対1のコピーが可能と
なる。
【0028】本発明のメモリコピー機能はBIU内のI
ACにあり、このIACについて図2のブロック図を参
照して説明する。NAバススレーブ制御部120はNA
バス121からIACが受信する(つまりTIUからI
ACに発行される)トランザクションの制御を行う。N
Aバス121から受信するトランザクションには、DM
Aリード/ライトトランザクション、IOリードレスポ
ンストランザクション、割込みトランザクションがあ
る。IOリードレスポンストランザクションまたは割込
みトランザクションの場合は、MPバス122にそのト
ランザクションを発行するためのIACの内部要求を行
うように内部要求制御部123に指示を出す。
【0029】DMAリード/ライトトランザクションの
場合は、DMA制御部124に制御が移される。これは
IACでは、メモリアクセスの効率化のためにIOキャ
ッシュを備えているため、DMAトランザクションに対
するキャッシュのヒットチェックを行うためである。D
MA制御部124はIOキャッシュ制御部125にDM
Aトランザクションのヒットチェックを行うよう指示を
出す。
【0030】IOキャッシュ制御部125でDMAトラ
ンザクションがミスヒットした場合は、キャシュに必要
なデータを読込むために、メモリに対してリード要求を
行うためのMPバスのトランザクションを実行する必要
がある。そのために、そのMPバストランザクションを
実行する内部要求を行うように内部要求制御部123に
指示を出す。
【0031】この様に、ミスヒットの場合はキャッシュ
に新しいデータを読込むため、キャッシュのエントリが
全て使用されている(全エントリが有効)場合は、どれ
かのエントリを無効にしなければならない。無効にする
ように選択されたエントリのキャッシュデータが既に変
更されている場合は、そのデータをメモリに書き戻す必
要がある。そのために、上記の場合には選択されたキャ
ッシュのデータを書き戻すためのMPバストランザクシ
ョンを発行する内部要求を行うように内部要求制御部1
23に指示を出す。
【0032】内部要求制御部123では、各内部要求の
調停を行い、その結果選択された内部要求に対するMP
バストランザクションの要求をMPバスマスタ制御部1
26に行う。MPバスマスタ制御部126は内部要求制
御部123から要求されたMPバストランザクションを
MPバス上に発行する。
【0033】IOキャッシュ制御部125でDMAライ
トトランザクションがキュッシュヒットした場合は、ヒ
ットしたキャッシュのエントリにDMAライトデータが
書込まれる。DMAリードトランザクションがキャッシ
ュにヒットした場合はNAバス121にデータレスポン
スを実行する。
【0034】DMAリード/ライトトランザクションで
キャッシュにミスヒットしたトランザクションは、メモ
リからデータがリプライされるのを待つ。MPバススレ
ーブ制御部127でメモリからのデータリプライを受信
すると、IOキャッシュ制御部125に制御を移し、I
Oキャッシュ制御部125はメモリからリプライデータ
をキャッシュに格納する。
【0035】DMAライトトランザクションの場合は、
その後DMAライトデータがリプライデータを格納した
キャッシュのエントリに書込まれ、DMAライトトラン
ザクションは完了する。DMAリードトランザクション
の場合は、DMAレスポンス制御部128にDMAリー
ドトランザクションに対するレスポンスを行うように指
示し、DMAレスポンス制御部128はNAバスマスタ
制御部129にNAバスに対してDMAリードレスポン
ストランザクションを発行するよう指示する。NAバス
マスタ制御部129はDMAリードレスポンストランザ
クションをNAバスに発行して、DMAリードトランザ
クションが終了する。
【0036】MPバススレーブ制御部127がIOリー
ド/ライトトランザクションを受信すると、IO制御部
130に制御を移し、IO制御部130はNAバスマス
タ制御部129にIOトランザクションを実行するよう
指示を出す。IOライトトランザクションの場合は、N
Aバスマスタ制御部129がNAバスにIOライトトラ
ンザクションを発行すると、完了する。
【0037】IOリードトランザクションの場合は、N
AバスにIOリードトランザクションを発行すると、I
Oリードレスポンストランザクションが返ってくるのを
待つ。IOリードレスポンストランザクションをNAバ
ススレーブ制御部120が検出すると、内部要求制御部
123に内部要求を行い、内部要求制御部123はIO
リードレスポンスを行うMPバストランザクションをM
Pバスマスタ制御部126に要求する。MPバスマスタ
制御部126がIOリードに対するレスポンストランザ
クションをMPバス上に発行すると、一連のIOリード
トランザクションは完了する。
【0038】以上がIACの通常の機能の説明である。
以下に、図2のメモリコピー制御部131の説明を図3
のブロック図を使用して説明する。メモリコピー制御部
には、ソフトウェアで設定可能なメモリコピー制御レジ
スタ132,開始アドレスレジスタ133,予告アドレ
スレジスタ134及び終了アドレスレジスタ135があ
る。
【0039】メモリコピー制御レジスタ132はメモリ
コピーの開始及び中止を指示するレジスタである。この
レジスタは上記のソフトウェアで設定可能なレジスタの
中で最後に設定されるものである。
【0040】開始アドレスレジスタ133はメモリコピ
ーを開始するアドレスを示すレジスタである。IACは
IOキャッシュを備えているため、キャッシュのブロッ
クサイズを考慮してブロックアドレスで開始アドレスは
与えられている。この開始アドレスレジスタ133の出
力はコピーアドレスレジスタ136に格納され、メモリ
コピー動作を一度実行する毎に、IOキャッシュブロッ
クサイズ分進めるように、+1カウンタ137とセレク
タ138とにより+1カウントアップされる。このカウ
ントアップの制御はカウンタ制御部139により制御さ
れる。これにより、メモリコピーの開始アドレスから連
続したアドレスでメモリコピーが実行されていくことに
なるのである。
【0041】終了アドレスレジスタ135はメモリコピ
ーを終了するアドレスを示すレジスタである。開始アド
レスレジスタと同様の理由で終了アドレスもブロックア
ドレスで与えられている。ここで、メモリコピー終了動
作について説明する。
【0042】ソフトウェアで設定可能な終了アドレスレ
ジスタ135の値と、メモリコピー動作を一度実行する
毎に+1カウントアップされるコピーアドレスレジスタ
136の値とは、コピー終了検出回路144で比較さ
れ、一致することによりメモリコピーの終了が検出され
ると、メモリコピーは終了となる。
【0043】予告アドレスレジスタ134はメモリコピ
ーが終了する前のある程度前のアドレスを格納する。こ
れは、実際にOSがメモリコピーが終了してからメモリ
コピー終了動作を実行すると時間差が生じて効率が落ち
るため、予め終了が近いことをOSに報告するために使
用される。
【0044】本システムにおいてメモリコピーは新たな
CPU系を組込む場合に使用するため、メモリコピー終
了後には各CPU系の同期をとる必要がある。各CPU
系の同期を取る時は、組込まれる側で動作している全て
のプロセスを停止し、EPUのキャッシュはフラッシュ
され(フラッシュによるメモリ更新もメモリコピーの対
象となる)、メモリ以外を同時にリセットすることによ
り実行される。これらの動作を効率良く予め実行するた
めにも、OSにメモリコピーの終了が近いことを報告す
る必要がある。
【0045】メモリコピーアドレスが予告アドレスに達
したかどうかは、コピーアドレスの出力と予告アドレス
の比較チェックを行う予告チェック回路143によって
監視される。予告アドレスに達した場合は、OSに通知
するためのメモリコピー終了予告割込みを発行するよう
に内部要求制御部123に指令を出す。
【0046】スヌープ制御レジスタ140はメモリの更
新を監視するスヌープの開始及び中止を指示するレジス
タである。メモリコピー制御レジスタ132にメモリコ
ピーの開始を指示する前にセットされる。
【0047】メモリコピー中も通常動作を続けているた
め、既にメモリコピーを終了したアドレスに対するメモ
リへの書込みが発生する。その場合、もう一度書込みの
あったアドレスに対するメモリコピーを実行する必要が
ある。従って、MPバスを監視して既にメモリコピーを
終えたアドレスであった場合は、スヌープバッファに登
録し、もう一度メモリコピーを実行する。
【0048】MPバス上でメモリに対するライトは大き
く分けて2つある。1つはMPバス上でライトトランザ
クションとして実行されるトランザクションであり、E
PUからの直接ライトである1〜8バイト長のシングル
ライト(SW)と、キャッシュのリプレースによって発
生するキャッシュのブロックデータのメモリへのライト
であるブロックライト(BW)である。
【0049】もう1つはMPバス上でコヒーレントリー
ドトランザクション(各キャッシュの一致を保ちながら
リードする)として実行されるトランザクションに対す
るデータレスポンストランザクションである。これは、
MPバスはキャッシュプロトコルとしてイリノイプロト
コルをサポートしているため、データを変更したキャッ
シュに対するアクセスが発生した場合、リード元に対し
てデータレスポンスを実行すると同時にメモリを更新す
る。
【0050】MPバス上のコヒーレントリードトランザ
クションはコヒーレントブロックリード(CR)または
エクスクルーシブコヒーレントブロックリード(CE)
である。データレスポンス時にメモリ更新があるかどう
かは、どのリードに対するレスポンスかを示すIDであ
るRRIDの情報に含まれている。リードレスポンスが
メモリを更新する場合、リードレスポンストランザクシ
ョンからはリードアドレスが分からないため、MPバス
スレーブ制御部127にあるリードトランザクションを
登録し管理するリードリソース管理テーブル(RRM
T)よりリードトランザクションのアドレスを得て、メ
モリコピーを実行するかどうかが判断される。
【0051】スヌープバッファ制御部141ではスヌー
プしたトランザクションのアドレスが既にメモリコピー
を実行したアドレスかどうか、コピーアドレスレジスタ
136のアドレスと比較して小さいかどうかによって判
断する。既にメモリコピーを実行したアドレスであれ
ば、メモリコピーをもう一度実行するため、スヌープし
たトランザクションのアドレスをスヌープバッファ14
2に登録するように指示を出す。
【0052】スヌープバッファ142はライトトランザ
クションのSW/BWを登録するSW/BWアドレスバ
ッファ1420と、リードトランザクションのCR/C
Eトランザクションを登録するCR/CEアドレスバッ
ファ1421との2つのバッファに分かれている。スヌ
ープバッファが溢れることを防ぐために、SW/BWリ
トライチェック回路172及びCR/CEリトライチェ
ック回路173によって夫々のスヌープバッファにある
数以上のトランザクション(IACでは2以上)が登録
されていることをチェックし、ある数以上のトランザク
ションが登録されていた場合は、そのトランザクション
に対してMPバス上でリトライを指示するANACK信
号をアサートするように指示をMPバススレーブ制御部
127に対して出す。
【0053】メモリコピー出力選択回路170では、メ
モリコピー制御レジスタ132とSW/BWスヌープバ
ッファ1420とCR/CEスヌープバッファ1421
とからメモリコピーの要求の何れか一つを選択し、メモ
リコピー要求を行うと同時に、アドレス選択回路171
に選択したメモリコピー要求のアドレスを選択するよう
に指示する。
【0054】アドレス選択回路171はメモリコピー出
力選択回路170の指示するアドレスを選択し、図2の
DMA制御部124へアドレスを出力する。
【0055】以下に、メモリコピー制御部131より要
求されたメモリコピーのIACにおける概略動作を図2
により説明する。メモリコピーはDMAリードトランザ
クションの制御回路を使用して実行する。従って、まず
NAバスを獲得することにより開始される。メモリコピ
ー制御部131からNAバスマスタ制御部129にメモ
リコピーの要求が指示されると、NAバスマスタ制御部
129はNAバスを獲得する。
【0056】NAバスを獲得するとDMAリードトラン
ザクションを受信したのと同様にして、DMA制御部1
24に制御を移す。メモリコピーのデータが自身のキャ
ッシュ上に存在する可能性もあるため、DMAリードト
ランザクション同様にIOキャッシュ制御部125でキ
ャッシュヒットチェックが実行される。
【0057】キャッシュにミスヒットした場合は、DM
Aリードと同様にIOキャッシュ制御部125より内部
要求制御部123に指示を出し、メモリコピーアドレス
のデータをメモリからリードするために、MPバスマス
タ制御部126よりコヒーレントブロックリード(C
R)トランザクションがMPバス122上に発行され
る。メモリからデータリプライがあると、この時もDM
Aリードトランザクションと同様に実行される。
【0058】但し、DMAレスポンス制御部128を通
してNAバスマスタ制御部129よりNAバスに実行さ
れるトランザクションは、DMAリードレスポンストラ
ンザクションではなく、データ長が64バイトのIOラ
イトトランザクションとして実行される。これはデータ
長64バイトのIOライトトランザクションをメモリコ
ピートランザクションとして定義し、NAバス配下のT
IU及びその先のBIAでその他のトランザクションと
区別するためである。
【0059】IOトランザクションの最大データ長はO
SまたはEPUにより左右されるが、一般に現在は64
ビットアーキテクチャの8バイトが最大である。データ
長64バイトのIOライトトランザクションは実際には
存在しないトランザクションであるために、このトラン
ザクションをメモリコピートランザクションと定義し
た。
【0060】キャッシュにヒットした場合は、DMAリ
ードトランザクションと同じ経路でNAバスに出力され
るが、制御は異なってくる。これはNAバスの仕様によ
りDMAリードトランザクションがキャッシュにヒット
した場合、DMAリードトランザクションはスプリット
されず、そのままデータレスポンスが実行されるからで
ある。メモリコピーにおいては、DMAリードトランザ
クションではないためデータレスポンスを行うのは不可
能である。
【0061】そこで、キャッシュにミスヒットして、メ
モリからデータがリプライされたとみなして動作する。
IOキャッシュ制御部125よりDMAレスポンス制御
部128に、そのトランザクションのメモリコピーを実
行するように指示し、ヒットしたキャッシュのエントリ
番号やメモリコピーアドレスなどの情報を送る。その
後、キャッシュミスヒット時と同様にしてNAバスマス
タ制御部129よりデータ長64バイトのメモリコピー
トランザクションが実行される。
【0062】BIAの動作を図4のブロック図を用いて
説明する。尚、図1のシステム構成図より明らかなよう
に、IACとBIAとの間にはTIUが存在するが、こ
のTIUは単なる中継機能を有するにすぎないので、T
IUは本発明に関連する特別な機能はなく、よってその
動作説明は省略する。
【0063】BIAでは、CPU0系、CPU1系、C
PU2系夫々からのリクエストを受けて、リクエストは
夫々リクエスト0レジスタ145,リクエスト1レジス
タ146,リクエスト2レジスタ147に保持される。
各リクエストレジスタの出力を調停回路148で受け、
調停回路148は各リクエストの調停を行う。3重化で
動作している場合は、どのリクエストレジスタにもリク
エストが保持されているが、メモリコピーの場合はどれ
か1つ(または2つ)のCPU系からのリクエストが存
在しない。
【0064】調停結果レジスタ149では、調停回路1
48の出力に基づきどのCPU系からリクエストがあっ
たかを保持する。最終的にメモリコピー先はリクエスト
の来なかったCPU系に対して実行される。また、通常
機能において、調停結果レジスタの情報はVoting
(多数決)判定にも使用される。
【0065】CPU0系、CPU1系、CPU2系から
のトランザクションデータは夫々ダウンデータ0レジス
タ150、ダウンデータ1レジスタ151、ダウンデー
タ2レジスタ152に保持される。トランザクションは
各フェーズで意味が異なり、アクセスコード、アドレ
ス、データの順に転送される。
【0066】ダウンデータ0,1,2レジスタの出力は
比較回路153〜155にて夫々の間で比較チェックさ
れ、その結果と調停結果レジスタ149の出力によりV
oting判定回路156により多数決論理が取られ
る。通常、3重化動作時には、調停結果レジスタ149
は全ての3つのCPU系からリクエストがあったことを
示し、ダウンデータ0,1,2レジスタの全ての出力は
有効となる。
【0067】しかし、メモリコピー時には、調停結果レ
ジスタ149は1つのCPU系からしかリクエストがな
いことを示し、その結果Voting判定回路156で
は、リクエストのあったCPU系のみがVoting対
象となる。2つのCPU系のVotingの場合は、単
にどちらか一方を選択するのみである。Voting判
定回路156はVotingの結果選択されたCPU系
のデータを選択するようデータ選択回路157に指示す
る。データ選択回路157はVoting判定回路15
6から指示のあったCPU系のダウンデータレジスタの
出力を選択して出力する。
【0068】ダウン制御部158はまずデータ選択回路
157から最初のフェーズで受けるアクセスコードによ
りメモリコピートランザクションか通常のトランザクシ
ョンかを判断する。メモリコピートランザクション、つ
まりデータ長64バイトのIOライトトランザクション
である場合は、次のフェーズ以降に続くアドレスとデー
タとを格納するようにデータバッファ161に対して指
示を出す。また通常のトランザクションである場合は、
出力バッファ166に対して次のフェーズ以降に続くア
ドレスとデータとを格納するように指示を出す。
【0069】メモリコピートランザクションの場合は、
メモリコピー先を判定するようにメモリコピー先判定回
路159にダウン制御部158から指示を出し、メモリ
コピー先判定回路159は調停結果レジスタ149の内
容に基づいてメモリコピー先を決定する。メモリコピー
先は調停結果レジスタでリクエストを受けていなかった
CPU系になる。つまり、メモリコピーはデータを出力
したCPU系からデータを出力しなかったCPU系へと
自動的に実行されることになる。メモリコピー先判定回
路159により決定されたメモリコピー先は、メモリコ
ピー先レジスタ160によって保持される。
【0070】データバッファ161はダウン制御部15
8からの指示によりアドレス及びデータを格納し、それ
をアクセスコード変換回路162へ出力する。アクセス
コード変換回路162はメモリコピートランザクション
が64バイト長のIOライトであったアクセスコード
を、データ長64バイトのDMAライトに変換する。こ
のDMAライトの実行先CPU系はメモリコピー先レジ
スタ160から指定されるCPU系に対してのみ実行さ
れる。
【0071】アップデータ0レジスタ163、アップデ
ータ1レジスタ164、アップデータ2レジスタ165
にて指定されたCPU系のアップデータレジスタに対し
て、アクセスコード変換回路162からデータ長64バ
イトのDMAライトが実行され、そのCPU系に対する
メモリへのライトが実行される。その後、DMAライト
は通常と同じに処理される。
【0072】図5,6のIACのブロック図を参照して
IACの詳細説明を行う。この説明に先立ち図2との対
応関係を以下に示す。但し、図5,6の1つの機能が図
2の1つの機能と一対一で対応しているとは限らず、例
えば、図5のSW(ソフトウェア)ビジブルレジスタ群
20は図2の全ての制御部に対応している。
【0073】 NAバススレーブ制御部 :1〜4,5,6,8,9,20 DMA制御部 :7,9,20,50 IOキャッシュ制御部 :10,11,20,31,32,80 内部要求制御部 :12,13,17,20 MPバスマスタ制御部 :14〜16,20〜26,45 MPバススレーブ制御部 :18〜20,27〜30,33〜44,46 IO制御部 :20,47〜49,54,60 DMAレスポンス制御部 :20,51〜53,72 NAバスマスタ制御部 :20,61,63〜71,73〜79 メモリコピー制御部 :20,55〜59,62。
【0074】レジスタ1はNAバスからのトランザクシ
ョンタイプを格納し、レジスタ2,3はNAバスからア
ドレスを格納するものである。NAバスは36ビットで
あり、レジタ2には上位4ビットが格納され、レジスタ
3には下位32ビットが格納される。レジスタ4にはN
AバスからのリードトランザクションのスプリットID
が格納される。IACの場合は、NAバスからDMAリ
ードに対するレスポンスを受けることはないため、IO
リードに対するレスポンストランザクション時のみにそ
のスプリットIDを格納する。
【0075】各レジスタ1〜4でNAバスから受信した
信号はパリティ等の不正チェックを行って、エラーがな
ければレジスタ5〜8に夫々格納される。ここで、レジ
スタ7にはレジスタ2,3のアドレスが両方結合させて
格納される。またレジスタ7はメモリコピー実行時には
メモリコピー元アドレスを格納する。
【0076】レジスタ6はNAバスのアドレスにより転
送される割込みデータを格納する。割込みトランザクシ
ョンではレジスタ3にアドレスが格納された次のサイク
ルには、割込みデータが格納される。この割込みデータ
をレジスタ6は格納する。
【0077】NAバススレーブ制御部9はレジスタ1に
格納されたトランザクションタイプによりNAバスのト
ランザクションが何のトランザクションであるかを判断
し、そのトランザクションに対応するMPバストランザ
クションを開始する要因をセットするように、MPバス
リクエスト要因制御部12に指示を出す。
【0078】例えば、NAバストランザクションが割込
みトランザクションであれば、割込みトランザクション
の要因のセット指示を出し、DMAリードトランザクシ
ョンであれば、コヒーレントブロックリードの要因のセ
ット指示を出す。メモリコピーの場合は、DMAリード
トランザクションと同様にコヒーレントブロックリード
の要因のセット指示を出す。
【0079】レジスタ7に保持されているNAバスから
のアドレスは比較回路80及び10で、バッファ11と
31とに格納されているアドレスとヒットチェックさ
れ、その結果はMPバスリクエスト要因制御部12に通
知される。
【0080】IACには同時に2つのDMAトランザク
ションが存在する場合があり、その管理のためにバッフ
ァ11が存在する。NAバスはスプリット可能なバスで
あり、よって2つのDMAリードトランザクションが登
録されている場合と、DMAリードとDMAライトとの
2つのトランザクションが登録されいる場合がある。
【0081】但し、バッファ11に登録されるDMAト
ランザクションはキャッシュにミスヒットして、メモリ
へデータを要求するMPバストランザクションを実行し
ている場合に登録される。DMAライトトランザクショ
ンがキャッシュにヒットした場合は、ライトを実行して
DMAライトトランザクションを終了し、DMAリード
トランザクションがキャッシュにヒットした場合は、即
座にNAバスへデータレスポンスを行ってDMAリード
トランザクションは終了する。そのために、キャッシュ
にヒットしたDMAトランザクションはバッファ11に
登録されることはない。
【0082】比較回路80でヒットした時は、同じキャ
ッシュブロックアドレスのトランザクションがMPバス
上に既に前DMAトランザクションにより発行されてい
ることを示し、前DMAトランザクションのメモリから
のレスポンスデータに現トランザクションに必要なデー
タ含んでいるため、現トランザクションはキャッシュに
ミスヒットしても、メモリに対してデータを要求するM
Pバストランザクションを発行する必要はない。従っ
て、比較回路80でヒットしたトランザクションはバッ
ファ11に登録されるのみで、MPバスリクエスト要因
制御部12でMPバストランザクションを開始する要因
をセットしない。
【0083】バッファ31はキャッシュのアドレスタグ
であり、バッファ31のアドレスにヒットするというこ
とは、キャッシュにデータが存在することを示す。キャ
ッシュのデータはIDBチップで保持されいる。キャッ
シュは4エントリであるので、バッファ31も4エント
リのアドレスタグである。
【0084】DMAリードトランザクション時に比較回
路10でレジスタ7のアドレスとバッファ31のアドレ
スとが一致すると、DMAリードキャッシュヒット制御
部72にNAバスへのデータレスポンスを開始するよう
に指示を出す。DMAリードキャッシュヒット制御部7
2はDMAリードをスプリットしないでデータレスポン
スをすることを示すNAバスのスプリットIDを出力
し、それが選択回路73で選択されてレジスタ74に格
納される。レジスタ74は格納されたスプリットIDを
NAバス上に出力する。
【0085】MPバスリクエスト要因制御部12はNA
バススレーブ制御部9からの指示に従ってMPバストラ
ンザクションを開始する要因をセットする。但し、DM
Aトランザクションまたはメモリコピーの場合は、比較
回路80及び比較回路10でヒットしなかった場合にの
みMPバストランザクションを開始する要因がセットさ
れる。
【0086】また、MPバスの調停結果を格納している
レジスタ36により、自IACがMPバスにキャッシュ
にデータをリードするコヒーレントブロックリードまた
はコヒーレントブロックリードエクスクルーシブが発行
成功していると、キャッシュの空きエントリを用意する
ために、キャッシュデータのメモリへの書き戻しが発生
する可能性がある。メモリへの書き戻しがあった場合、
MPバスにブロックライト(BW)トランザクションを
発行する必要がある。
【0087】ブロックライトが必要がどうかはブロック
ライト(BW)チェック回路17でチェックされる。ブ
ロックライトが必要だと判断されると、MPバスリクエ
スト要因制御部12にブロックライトトランザクション
を開始する要因がセットされる。
【0088】更に、MPバスのスレーブトランザクショ
ン(自IAC以外が発行したトランザクション)のアド
レスを格納するレジスタ37のアドレスとキャッシュの
アドレスタグ部のバッファ31のアドレスとを比較回路
30でヒットチェックする。スレーブトランザクション
がコヒーレントリードトランザクション(CR/CE)
の時にヒットし、かつそのキャッシュのデータが変更さ
れていた場合は、MPバスに対してブロックデータレス
ポンスを行う必要がある。そのために、比較回路30は
MPバスリクエスト要因制御部12にブロックデータレ
スポンスを開始する要因のセットを指示する。MPバス
リクエスト要因制御部12はMPバスリクエスト内部要
求制御部13にMPバスリクエストのセットを指示す
る。
【0089】MPバスリクエスト内部要求制御部13は
MPバスリクエスト要因制御部12に従ってMPバスト
ランザクションの実行を要求するMPバス内部リクエス
トをセットし、MPバス内部調停回路14にMPバス内
部リクエストを出力する。但し、リードトランザクショ
ンの場合、既に発行されていてまだレスポンスのないM
Pバスリードトランザクションと同じアドレスのリード
トランザクションがあった場合は、キャッシュのコヒー
レンシを保つために、既に発行されている同じアドレス
のリードトランザクションのデータレスポンスが完了す
るまで、MPバス上に発行することはできない。
【0090】そのため、MPバスのリードトランザクシ
ョンを管理するバッファ19に登録されているアドレス
とレジスタ7に格納されているアドレスとが比較回路1
8で一致した場合は、MPバスリクエスト内部要求制御
部13はそのリードトランザクションのMPバスリクエ
ストをセットしない。アドレスが一致したMPバスリー
ドトランザクションのデータレスポンスが終了し、バッ
ファ19より削除されるまで待たされる。尚、リードト
ランザクションのMPバス上でのスプリットIDはバッ
ファ19に登録されるエントリ番号に等しい。
【0091】MPバス内部調停部14では、MPバスリ
クエスト内部要求制御部13からのMPバスリクエスト
を調停し、その調停結果はレジスタ15に格納される。
MPバスは図7にあるように、4ステートを1サイクル
とするバスである。最初の4ステートの中で、ステート
Iでリクエストを出力し、ステートIII でアドレスやコ
マンドやスプリットIDを出力する。
【0092】レジスタ15に格納されている調停結果に
基づきリクエスト生成回路23はリクエストを生成し、
選択回路25はリクエスト生成回路23の出力を選択
し、レジスタ26に格納する。そして、レジスタ26は
ステートIでリクエストをMPバスへ出力する。
【0093】IACはMPバスの全ノードのリクエスト
を取り込んでレジスタ33に格納する。レジスタ33に
格納されているリクエストをMPバス調停回路34で調
停し、その調停結果からレジスタ15に格納されている
リクエストのどれかがMPバスを獲得したかを判断し、
その結果をレジスタ35に格納する。
【0094】レジスタ36はレジスタ35に格納されて
いる自IAC発行のトランザクションがMPバス上でリ
トライにならなかった場合に、レジスタ35の出力が格
納される。コマンド生成回路21はレジスタ15の出力
からMPバスコマンドを生成し、レジスタ22はそのM
Pバスコマンドを格納する。
【0095】割込みデータ生成回路16は割込みトラン
ザクション時に、NAバスから受信した割込みデータを
格納するレジスタ6の出力とSWビジブルレジスタ群2
0にあるレジスタからの出力により、MPバスへの割込
みコードを発生して選択回路24に出力する。
【0096】選択回路24は、割込みトランザクション
時は、割込みデータ生成回路16の出力を選択し、キャ
ッシュのリプレースによるブロックライトの場合は、バ
ッファ31からのアドレスを選択し、それ以外の場合は
レジスタ7に格納されているアドレスを選択して選択回
路25へ出力する。選択回路25はリクエスト生成回路
23からのリクエストを選択した後は、選択回路24の
アドレスを選択してレジスタ26に格納する。
【0097】レジスタ22に格納されているコマンドと
レジスタ26に格納されているアドレスとは、レジスタ
35に格納されているMPバスを獲得したトランザクシ
ョンがコヒーレントブロックリードの様なリードトラン
ザクション、またはブロックライトの様なライトトラン
ザクションの場合にのみMPバスへ出力される。
【0098】リードトランザクションに対するレスポン
ストランザクションの場合は、MPバス出力スプリット
ID選択回路45により選択されたスプリットIDがレ
ジスタ42に格納され、ステートIII でスプリットID
が出力される(図7(2)参照)。MPバス出力スプリ
ットID選択回路45はNAバスに対するIOリードト
ランザクションの場合は、レジスタ8に格納されている
NAバスのスプリットIDとバッファ48に格納されて
いるIOリードトランザクションの情報とにより、MP
バスのスプリットIDを選択する。
【0099】MPバスのスレーブリードトランザクショ
ンのキャッシュヒットによるレスポンスの場合は、スレ
ーブリードトランザクションが登録されるバッファ19
のエントリ番号がMPバス上のスプリットIDになるた
めに、登録ID生成回路29でMPバス上のスプリット
IDを生成し、そのスプリットIDがMPバス出力スプ
リットID選択回路45で選択される。
【0100】レジスタ27はどのSWビジブルレジスタ
にライトするかを判別するために、アドレスの下位バイ
トを格納する。レジスタ28はSWビジブルレジスタに
ライトするデータを格納する。SWビジブルレジスタ群
20はSWビジブルなレジスタの集合であり、メモリコ
ピー機能のSWビジブルレジスタも含まれる。
【0101】レジスタ33はMPバスステートIでリク
エストを取り込み、ステートIII でアドレスを取り込
む。ステートIII で取り込まれたアドレスはアドレス空
間チェック回路38でどのアドレス空間に対するトラン
ザクションかがチェックされる。自IAC配下のIO空
間に対するトランザクションであれば、IOトランザク
ションの開始をIOトランザクション制御部47に対し
て指示する。メモリに対するシングルライト(SW)ま
たはブロックライト(BW)の場合は、メモリコピー時
のスヌープ対象のチェックを行うように、SW/BWス
ヌープ制御部55に指示を出す。
【0102】レジスタ39はMPバスステートIII でス
プリットIDを取り込む。レジスタ40はレジスタ39
の出力を取り込む。バッファ11に登録されているメモ
リからデータレスポンス待ちのトランザクションに対す
るレスポンスかどうか、レジスタ40に格納されている
スプリットIDとバッファ11に登録されているスプリ
ットIDとが比較回路41でチェックされる。
【0103】一致した場合は、バッファ11に登録され
ているデータレスポンス待ちのトランザクションのデー
タがリプライされたことを示しており、バッファ11の
データリプライのあったトランザクションの情報はレジ
スタ32に格納される。データがキャッシュに格納され
ると、キャッシュのアドレスタグ部であるバッファ31
にアドレスが登録される。
【0104】DMAリードトランザクションまたはメモ
リコピーの場合に、NAバスに対してトランザクション
を発行する必要がある。選択回路51はメモリコピーが
バッファ31にヒットしたときはレジスタ7の出力を選
択し、データがリプライされたトランザクションがレジ
スタ32に格納されている場合は、レジスタ32の出力
を選択し、バッファ11に登録されているトランザクシ
ョンがバッファ11のもう一方のエントリのトランザク
ションにヒットしたDMAリードトランザクションであ
りかつそのヒットしたトランザクションのデータレスポ
ンスが確認されている場合は、バッファ11の出力を選
択する。
【0105】選択回路51で選択されたトランザクショ
ンはバッファ52に格納される。バッファ52で、DM
Aリードレスポンストランザクションまたはメモリコピ
ーの実行を待たされる。バッファ52に実行待ちのトラ
ンザクションがあると、DMAリードレスポンス制御部
53はNAバス内部調停部66にバス獲得要求を出し、
DMAリードレスポンストランザクションまたはメモリ
コピーによるIOライトトランザクションを開始する。
【0106】レジスタ43はMPバスステートIII でコ
マンドを取り込む。レジスタ44はレジスタ43の出力
を取り込む。レジスタ43に格納されているコマンドは
コマンドデコード回路46でデコードされ、何のトラン
ザクションであるかが判定される。
【0107】シングルリードまたはシングルライトの場
合は、IOトランザクションを発行するためIOトラン
ザクション制御部47に指示を出す。IOトランザクシ
ョン制御部47では、IOトランザクション制御部47
とアドレス空間チェック回路38との両方からの指示が
あると、IOトランザクションを開始する。リードトラ
ンザクションであれば、バッファ48にIOリードトラ
ンザクションを登録し、ライトトランザクションなら
ば、レジスタ49にライトトランザクションを登録す
る。
【0108】シングルライトまたはブロックライトの場
合は、メモリコピー時のスヌープのためにSW/BWス
ヌープ制御部55に指示を出す。SW/BWスヌープ制
御部55はメモリコピー中であれば、コマンドデコード
回路46からの指示とアドレス空間チェック回路38か
らの指示の両方があった場合、現在メモリコピー中のア
ドレスと比較して既にメモリコピーが終了しているアド
レスならば、レジスタ37に格納されているアドレスを
バッファ57に登録する。
【0109】CR/CEスヌープ制御部56は、MPバ
ス上のコヒーレントブロックリード(CR)またはコヒ
ーレントブロックリードエクスクルーシブ(CE)に対
するデータレスポンストランザクション時に、レジスタ
40に格納されているスプリットIDによりメモリに更
新があるかどうかを判断し、メモリコピー時のスヌープ
するか否かの判断をする。
【0110】メモリ更新があった場合は、MPバス上の
リードトランザクション管理するバッファ19にアドレ
スが登録されているため、スプリットIDによりどのエ
ントリのアドレスかを選択し、そのアドレスが既にメモ
リコピーが終了しているアドレスならば、選択したアド
レスをバッファ58に登録する。
【0111】バッファ57,58は夫々のバッファが溢
れる可能性をチェックし、溢れる可能性のある場合は、
バッファ57はMPバス上の全てのシングルライト及び
ブロックライトに対してリトライ指示を出し、バッファ
58は全てのコヒーレントブロックリード及びコヒーレ
ントブロックリードエクスクルーシブに対してリトライ
指示を出す。リトライ指示はバッファが溢れる可能性が
なくなるまで続けられる。
【0112】選択回路59はメモリコピー時のアドレス
を選択し、ソフトウェアビジブルレジスタ群20からの
メモリコピーアドレスか、シングルライトまたはブロッ
クライトをスヌープしたバッファ57のアドレスか、コ
ヒーレントブロックリードまたはコヒーレントエクスク
ルージブをスヌープしたバッファ58のアドレスの何れ
かを選択し、選択されたアドレスはレジスタ7に格納さ
れる。
【0113】割込みクリア制御部61はコマンドデコー
ド回路46がトランザクションを割込みクリアだと判断
すると、ソフトウェアビジブルレジスタ群20の情報に
従って割込みクリアトランザクションを開始する。
【0114】メモリコピー制御部はソフトウェアビジブ
ルレジスタ群20の指示に従ってメモリコピーを開始す
る。
【0115】DMAリードレスポンス制御部53、IO
リード/ライト制御部60、割込みクリア制御部61、
メモリコピー制御部62からの夫々のリクエストをNA
バス内部調停回路66は調停し、NAバス調停回路67
にNAバス獲得のためのリクエストを出す。
【0116】NAバス調停回路67はレジスタ79で受
け取っているNAバスの他のノードからのリクエスト
に、NAバス内部調停回路66からの自IACのリクエ
ストを含めて調停し、リクエストを出した何れか1つが
NAバスを獲得する。調停結果はレジスタ78に格納さ
れ、NAバスの各ノードに通知される。
【0117】選択回路63は、NAバスのスプリットI
Dを選択し、DMAリードレスポンス制御部53とIO
リード/ライト制御部60とメモリコピー制御部62の
出力の中から、NAバス内部調停回路66で選択された
トランザクションのスプリットIDを選択する。
【0118】選択結果はレジスタ68に格納される。選
択回路73はDMAリード時のキャッシュヒットでない
限りレジスタ68の出力を選択し、レジスタ68に格納
されているNAバスのスプリットIDはレジスタ74に
格納される。その後、レジスタ74に格納されているス
プリットIDがNAバスに出力される。
【0119】選択回路64はNAバスのトランザクショ
ンが何のトランザクションであるかを示すトランザクシ
ョンタイプを、DMAリードレスポンス制御部53とI
Oリード/ライト制御部60と割込みクリア制御部61
とメモリコピー制御部62の出力の中から、NAバス内
部調停回路66で選択されたトランザクションのトラン
ザクションタイプを選択する。
【0120】選択結果はレジスタ69に格納され、次に
レジスタ75に格納された後にNAバスにトランザクシ
ョンタイプが出力される。
【0121】選択回路65は、メモリコピー時のDMA
リードレスポンス制御部53の出力とIOリード/ライ
ト制御部60の出力と割込みクリア制御部61の出力の
中から、NAバス内部調停回路66で選択されたトラン
ザクションのアドレスを選択する。
【0122】選択結果はレジスタ70に格納される。選
択回路71は割込みトランザクションの時のみレジスタ
70のアドレスを選択した後に割込みクリア制御部から
の割込みをクリアデータを選択してレジスタ76及びレ
ジスタ77に格納する。割込みトランザクション以外の
時はレジスタ70のアドレスを選択する。
【0123】レジスタ76はアドレス上位4ビットを格
納しNAバスへ出力する。レジスタ77は下位32ビッ
トを格納しNAバスへ出力する。
【0124】実施例でのメモリコピートランザクション
の動作を説明する。図3のメモリコピー制御部ブロック
図の各機能が実施例のどの機能に対応するかを示す。
【0125】 メモリコピー制御機能 :SWビジブルレジスタ機能群20 メモリコピー制御レジスタ :SWビジブルレジスタ機能群20 コピー開始アドレスレジスタ :SWビジブルレジスタ機能群20 カウンタ制御 :SWビジブルレジスタ機能群20 コピーアドレスレジスタ :SWビジブルレジスタ機能群20 予告アドレスレジスタ :SWビジブルレジスタ機能群20 終了アドレスレジスタ :SWビジブルレジスタ機能群20 スヌープ制御レジスタ :SWビジブルレジスタ機能群20 メモリコピー出力選択 :メモリコピー制御部62 予告チェック回路 :メモリコピー制御部62 終了チェック回路 :メモリコピー制御部62 アドレス選択回路 :選択回路59 スヌープバッファ制御 :SW/BW,CR/CEスヌープバッファ 制御部55,56 スヌープバッファ :バッファ57,58 SW/BWリトライチェック回路:バッファ57 CR/CEリトライチェック回路:バッファ58
【0126】SWビジブルレジスタ群20からのメモリ
コピー開始指示がメモリコピー制御部62に出される
と、メモリコピー制御部62はNAバス内部調停部66
に対してNAバスを獲得するためのリクエストを発行す
る。NAバス内部調停部66でメモリコピーのリクエス
トが選択され、NAバス調停部67でIACがNAバス
を獲得する。すると、選択回路59で選択されたアドレ
スが選択回路50で選択されてレジスタ7に格納され、
メモリコピーのトランザクションが開始される。
【0127】レジスタ7のアドレスがバッファ11のア
ドレスにもバッファ31のアドレスにもヒットしない場
合は、DMAリードトランザクションと同様にMPバス
リクエスト要因制御部12に指示を出し、最終的にはM
Pバスにコヒーレントブロックリードトランザクション
が発行される。この時にレジスタ7のアドレスはバッフ
ァ11に登録され、データがリプライされるのを待つ。
【0128】バッファ11にはアドレスだけでなく、M
Pバスに発行されたコヒーレントブロックリードトラン
ザクションのスプリットIDも登録される。スプリット
IDは、発行したコヒーレントブロックリードがバッフ
ァ19に登録され、登録されたエントリ番号により登録
ID生成回路29で生成され、バッファ11に登録され
る。
【0129】バッファ11に登録されているスプリット
IDと、データレスポンストランザクションのスプリッ
トIDとの比較回路41でのチェックにおいて、バッフ
ァ11に登録されているトランザクションに対するデー
タレスポンスであると確認すると、バッファ11内のア
ドレスはレジスタ32に格納される。レジスタ32の出
力は選択回路51で選択され、バッファ52に登録され
てNAバスにメモリコピーのデータ長64バイトのIO
ライトを実行するのを待つ。
【0130】レジスタ7のアドレスがバッファ11のア
ドレスにヒットした場合、これは偶然にメモリコピーの
アドレスとDMAリードのアドレスが一致した時に起こ
る。この時のメモリコピートランザクションはDMAリ
ードトランザクションと同様に、バッファ11に登録す
るのみでMPバスにコヒーレントブロックリードは発行
しない。
【0131】メモリコピートランザクションはバッファ
11でヒットしたトランザクションのデータレスポンス
が実行されるのを待つ。バッファ11でヒットしたトラ
ンザクションのデータレスポンスが実行され、そのトラ
ンザクションのデータがレジスタ32に格納され、次に
バッファ52に登録されると、その次に選択回路51は
バッファ11のメモリコピートランザクションを選択
し、メモリコピートランザクションがバッファ52に登
録される。
【0132】レジスタ7のアドレスがバッファ31にヒ
ットした場合、選択回路51はレジスタ7の出力を選択
し、メモリコピートランザクションはバッファ52に登
録される。
【0133】以上のようにメモリコピーのトランザクシ
ョンは必ずバッファ52に登録されて、NAバスに出力
されるのを待つ。
【0134】バッファ52はDMAリードレスポンス制
御部53にメモリコピートランザクションであることを
指示し、DMAリードレスポンス制御部53はNAバス
に対するデータ長64バイトのIOライトの実行を開始
する。NAバス内部調停部66にリクエストを出し、N
Aバス内部調停部66の内部調停結果によって選択さ
れ、トランザクションタイプがレジスタ69に格納され
て、アドレスがレジスタ70に格納される。
【0135】NAバス調停部67の結果によってIAC
がNAバスを獲得すると、レジスタ75にトランザクシ
ョンタイプが格納され、アドレスがレジスタ76とレジ
スタ77に格納されて、NAバスに対するデータ長64
バイトのIOライト、すなわちメモリコピーが実行され
る。
【0136】BIAの動作は図4のBIAブロック図を
使用して前述した通りである。メモリコピー時の動作を
以下に述べる。例としてCPU1系と2系とからCPU
0系へメモリコピーする動作の説明をする。
【0137】CPU1系と2系からリクエストがきてリ
クエスト1レジスタ146とリクエストレジスタ147
とに格納され、調停回路148で調停される。調停回路
148ではCPU1系と2系が選択され、その結果が調
停結果レジスタ149に格納される。
【0138】データはダウンデータ1レジスタ151と
ダウンデータ2レジスタ152のみに格納される。Vo
ting判定回路156は単にダウンデータ1レジスタ
151とダウンデータ2レジスタ152の出力のどちら
か一方を選択するのみであり、どちらを選択しても結果
は変わらない。データ選択回路157はダウンデータ1
レジスタ151またはダウンデータ2レジスタ152の
いずれかを選択し、ダウン制御部158は最初のフェー
ズのアクセスコードでデータ長64バイトのIOライト
トランザクションであればメモリコピーと判断し、次フ
ェーズ以降のデータをデータバッファに格納するように
指示を出す。データバッファはダウン制御部158の指
示に従ってデータを格納する。
【0139】メモリコピー先判定回路159では調停結
果レジスタより、リクエストのきていないCPU系をメ
モリコピー先と判断して、結果をメモリコピー先レジス
タ160に格納する。
【0140】アクセスコード変換回路162ではデータ
長64バイトのIOライトのアクセスコードを、データ
長64バイトのDMAライトのアクセスコードに変換す
る。データ長64バイトのDMAライトは通常のトラン
ザクションであり、メモリコピーのための特別なトラン
ザクションではない。
【0141】アクセスコード変換回路162はメモリコ
ピー先レジスタが示しているCPU0系に対して、変換
したデータ長64バイトのDMAライトを実行する。ま
ず、アップデータ0レジスタ163にデータ長64バイ
トのDMAライトのアクセスコードを格納し、CPU0
系に送出する。次にデータバッファ161からメモリコ
ピーデータをアップデータ0レジスタ163に格納し、
CPU0系へデータを送出する。以上によりメモリコピ
ー動作が完了するのである。
【0142】
【発明の効果】以上述べた如く、本発明によれば、グロ
ーバルメモリ等の共通のメモリを特別に設けることな
く、CPU系の各ローカルメモリの内容を他系へ直接に
転送してメモリコピー処理を実行することができるとい
う効果がある。
【図面の簡単な説明】
【図1】本発明の実施例が適用されるシステムブロック
図である。
【図2】図1のIACの機能ブロック図である。
【図3】図2のメモリコピー制御部131の機能ブロッ
ク図である。
【図4】図1のBIAの機能ブロック図である。
【図5】図2のIAC機能ブロックの更に詳細ブロック
の一部を示す図である。
【図6】図2のIAC機能ブロックの更に詳細ブロック
の一部を示す図である。
【図7】MPバストランザクションの処理例を説明する
図である。
【図8】従来の3重化構成の情報処理装置のシステムブ
ロック図である。
【符号の説明】
100a〜100c EPU 101a〜101c メモリ 102a〜102c MPバス 103a〜103c BIU 104〜107 BIA 108〜111 IOバス 120 NAバススレーブ制御部 121 NAバス 122 MPバス 123 内部要求制御部 124 DMA制御部 125 IOキャッシュ制御部 126 MPバスマスタ制御部 127 MPバススレーブ制御部 128 DMAレスポンス制御部 129 NAバスマスタ制御部 130 IO制御部 131 メモリコピー制御部 132 メモリコピー制御レジスタ 133 開始アドレスレジスタ 134 予告アドレスレジスタ 135 終了アドレスレジスタ 136 コピーアドレスレジスタ 137 +1カウンタ 138,171 セレクタ 139 カウンタ制御部 140 スヌープ制御レジスタ 142 スヌープバッファ 144 終了チェック回路 148 調停回路 149 調停結果レジスタ 156 Voting判定回路 157 データ選択回路 158 ダウン制御部 159 メモリコピー先判定回路 160 メモリコピー先レジスタ 161 データバッファ 162 アクセスコード変換回路 170 メモリコピー出力選択回路 171 アドレス選択回路 172 SW/BWリトライチェック回路 173 CR/CEリトライチェック回路

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 冗長構成とされた少なくとも3系統の情
    報処理サブシステムと、入出力バスと、この入出力バス
    に接続された複数の周辺制御装置と、これ等複数の周辺
    制御装置に共通に設けられ前記情報処理サブシステムと
    前記入出力バスとの間の接続をなし前記情報処理サブシ
    ステムの各々から前記周辺制御装置への出力の多数決論
    理を実行するバスインタフェース装置とを含み、 前記情報処理装置サブシステムの各系は、演算処理を実
    行する演算処理部と、プログラムデータを格納するメモ
    リと、前記演算処理部から前記周辺制御装置をアクセス
    するトランザクション及び前記周辺制御装置から前記メ
    モリをアクセスするトランザクションを制御する入出力
    制御部とを有する情報処理装置におけるメモリコピーシ
    ステムであって、 前記入出力制御部の各々は、 自系の前記メモリの内容を他系のメモリへ転送するメモ
    リコピーの開始及び終了を指示する指示手段と、 前記メモリコピーの開始指示から終了指示までの間、自
    系メモリの内容を順次読出しつつ前記バスインタフェー
    ス装置へ送出するメモリコピー制御手段とを有し、 前記バスインタフェース装置は、 前記入出力制御部から送出されてきたメモリの内容を前
    記他系のメモリへ順次送出制御する送出制御手段を有す
    ることを特徴とするメモリコピーシステム。
  2. 【請求項2】 前記指示手段は、指示されたメモリコピ
    ー開始アドレスと、メモリコピー終了アドレスとを夫々
    保持する手段を有し、 前記メモリコピー制御手段は、前記メモリコピー開始ア
    ドレスを前記メモリコピー終了アドレスまで順次更新す
    る手段と、この更新メモリコピーアドレスの前記自系メ
    モリからデータを読出す手段と、前記更新メモリコピー
    アドレスと前記自系メモリからの読出しデータとを前記
    バスインタフェース装置へ送出する手段とを有すること
    を特徴とする請求項1記載のメモリコピーシステム。
  3. 【請求項3】 前記入出力制御部の各々は、更に前記メ
    モリコピー終了アドレスよりも前のアドレスである終了
    予告アドレスを予め保持する手段と、この終了予告アド
    レスに前記メモリコピーアドレスが達した時にメモリコ
    ピー終了予告情報を生成する手段とを有することを特徴
    とする請求項2記載のメモリコピーシステム。
  4. 【請求項4】 前記入出力制御部の各々は、更に前記メ
    モリコピー動作中におけるメモリ内容の更新を監視する
    監視手段と、この監視手段により検出されたメモリ更新
    アドレスを格納する格納手段と、この格納されたアドレ
    スのメモリからデータを読出して前記バスインタフェー
    ス装置へ送出する手段とを有し、前記バスインタフェー
    ス装置は前記入出力制御部から送出されてきたメモリデ
    ータを前記他系のメモリへ送出するようにしたことを特
    徴とする請求項1〜3いずれか記載のメモリコピーシス
    テム。
JP7180406A 1995-07-17 1995-07-17 メモリコピーシステム Withdrawn JPH0934741A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7180406A JPH0934741A (ja) 1995-07-17 1995-07-17 メモリコピーシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7180406A JPH0934741A (ja) 1995-07-17 1995-07-17 メモリコピーシステム

Publications (1)

Publication Number Publication Date
JPH0934741A true JPH0934741A (ja) 1997-02-07

Family

ID=16082693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7180406A Withdrawn JPH0934741A (ja) 1995-07-17 1995-07-17 メモリコピーシステム

Country Status (1)

Country Link
JP (1) JPH0934741A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359419B2 (en) 2008-12-25 2013-01-22 Fujitsu Limited System LSI having plural buses

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359419B2 (en) 2008-12-25 2013-01-22 Fujitsu Limited System LSI having plural buses

Similar Documents

Publication Publication Date Title
JP2641819B2 (ja) キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式
US5319766A (en) Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US6216236B1 (en) Processing unit for a computer and a computer system incorporating such a processing unit
US5553266A (en) Update vs. invalidate policy for a snoopy bus protocol
US5682512A (en) Use of deferred bus access for address translation in a shared memory clustered computer system
US5502728A (en) Large, fault-tolerant, non-volatile, multiported memory
US5629950A (en) Fault management scheme for a cache memory
US5682516A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
US6148416A (en) Memory update history storing apparatus and method for restoring contents of memory
JP3123413B2 (ja) コンピュータシステム
US20060242367A1 (en) Synchronizing memory copy operations with memory accesses
US20050188009A1 (en) High-availability super server
EP0750258B1 (en) Computer system with memory state recovery
JPH0454260B2 (ja)
JP2003162447A (ja) エラー回復
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
US5553258A (en) Method and apparatus for forming an exchange address for a system with different size caches
JPH08249231A (ja) マルチプロセッサ・システムにおける古いデータの処理システム及び方法
JP4182948B2 (ja) フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
EP0567355B1 (en) A method and apparatus for operating a multiprocessor computer system having cache memories
US8010682B2 (en) Early coherency indication for return data in shared memory architecture
JP3424968B2 (ja) 計算機システム及びプロセッサチップ及び障害復旧方法
JPH10240628A (ja) キャッシュメモリ装置
JPH0934741A (ja) メモリコピーシステム
JP2000347933A (ja) バスブリッジ、キャッシュコヒーレンシ制御装置、キャッシュコヒーレンシ制御方法、プロセッサユニット、マルチプロセッサシステム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021001