JPH0754484B2 - 複数のプロセッサを有する計算機システムの記憶制御装置 - Google Patents

複数のプロセッサを有する計算機システムの記憶制御装置

Info

Publication number
JPH0754484B2
JPH0754484B2 JP1152346A JP15234689A JPH0754484B2 JP H0754484 B2 JPH0754484 B2 JP H0754484B2 JP 1152346 A JP1152346 A JP 1152346A JP 15234689 A JP15234689 A JP 15234689A JP H0754484 B2 JPH0754484 B2 JP H0754484B2
Authority
JP
Japan
Prior art keywords
block
request
valid
address
store
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
Application number
JP1152346A
Other languages
English (en)
Other versions
JPH0277858A (ja
Inventor
利光 安藤
嗣夫 松浦
忠章 磯部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH0277858A publication Critical patent/JPH0277858A/ja
Publication of JPH0754484B2 publication Critical patent/JPH0754484B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00—Digital computers in general; Data processing equipment in general
    • G06F15/76—Architectures of general purpose stored program computers
    • G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053—Vector processors
    • G06F15/8061—Details on data memory access
    • G06F15/8069—Details on data memory access using a cache
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00—Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02—Addressing or allocation; Relocation
    • G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815—Cache consistency protocols
    • G06F12/0817—Cache consistency protocols using directory methods
    • G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • 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/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824—Operand accessing
    • G06F9/3834—Maintaining memory consistency
    • 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/30—Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、記憶制御方式に関し、特にベクトル処理装置
における主記憶装置とバッファ記憶装置の一致制御方式
に関するものである。
〔従来の技術〕
従来より、計算機システムにおいては、主記憶装置(Ma
in Storage、以下、MSと略記する)の写しを、MSより
も高速の素子で構成されたバッファ記憶装置(Buffer
Storage又はキャッシュ、以下BSと略記する)に格納す
ることにより、処理装置から高速にアクセスするように
している。
各々にBSを備えた複数の命令プロセッサが1つのMSを共
有する、いわゆるマルチプロセッサシステムにおいて、
他の命令プロセッサからMSに対してストア動作が行われ
たときのMSとBS間の一致制御を行う方式としては、例え
ば特公昭54−40182号公報(USP 4056844)に記載され
ている。この方式においては、BSに、MS内アドレスを登
録しておく管理テーブル(Buffer Address Array 以
下、BAAと略記する)とは別個に独立して第2の管理テ
ーブル(Front Address Array 以下、FAAと略記す
る)を設ける。このFAAは、他の処理装置から参照され
るストア・アドレスチェックのための管理テーブルであ
って、MSとBS間の一致制御を高速に処理するものであ
る。
〔発明が解決しようとする課題〕
科学技術演算を高速に処理するために、ベクトル処理装
置(Vector Processor、以下、VPと略記する)が用い
られている。このVPは、ベクトル・データを保持するベ
クトルレジスタ(Vector Register、以下、VRと略記す
る)と、上記ベクトル・データを演算する演算器とをそ
れぞれ複数個備え、1つのベクトル命令で処理されるベ
クトル・データを複数個のブループに分割して、各グル
ープ毎に並列に演算を実行する要素並列方式を採用する
ものが多くなってきている。この場合には、VPからMSを
アクセスする際に、分割された要素単位に並列に複数の
リクエスタ(MSをアクセスし、MSとVRの間のデータ転送
を行う。)に割り当てられる。
従来では、このような複数のVPと、BSを備えてスカラ演
算およびVPに対するセットアップ動作等を実行する複数
のスカラ処理装置(Scalar Processor、以下、SPと略
記する)と、これらのVPおよびSPにより共有されるMSと
から構成されたスーパーコンピュータのマルチプロセッ
サに対しては、MSとBS間の一致制御に関し、何も考慮さ
れていなかった。従って、このようなスーパーコンピュ
ータのマルチプロセッサにおいては、次のような問題が
生じていた。
すなわち、VPからMSに対してストア動作が行われた場
合、MSとBS間の一致制御を行う方法として、前述のよう
なストア・アドレスをチェックするためのFAAを設ける
方式では、VPが同時に複数のストア・リクエストを発行
するために、FAA検索待ちによるストア・リクエストの
大幅なスルー・プットの低減が避けられない。また、VP
のストア・リクエスタに対応して複数のFAAを設ける
と、大幅なハードウェア物量の増大を招き、装置内がFA
Aのみで満杯になってしまうという問題があった。
本発明の目的は、このような従来の課題を解決し、複数
のストア・リクエスタを備えた複数のVPと、それぞれBS
を備えた複数のSPと、これらのVPおよびSPにより共有さ
れるMSから構成されるスーパーコンピュータのマルチプ
ロセッサシステムにおいて、少ないFAAで、効率的にMS
とBS間の一致制御を行うことが可能な記憶制御方式を提
供することにある。
〔課題を解決するための手段〕 上記目的を達成する為、本発明の記憶制御方式は、主記
憶装置に対して各々ストア・リクエスタを備えた複数の
ベクトル処理装置と、該主記憶装置の写しを記憶し、か
つ記憶している写しの主記憶内アドレスを登録している
管理テーブルを付加したバッファ記憶装置をそれぞれ備
えた複数のスカラ処理装置とで構成されるマルチプロセ
ッサ・システムにおいて、上記主記憶装置を上記バッフ
ァ記憶装置の記憶単位であるブロックに分割し、該主記
憶装置上のブロックが上記バッファ記憶装置内に存在す
るか否かを示すBlock Valid Memory(以下、BVMと略
記する)を具備する。BVMは、ブロック対応に設けられ
たBlock Valid bit(以下、BVと略記)を含んでお
り、各bitは対応するブロックがバッファ装置内に存在
するときValidとなる。上記ベクトル処理装置から上記
主記憶装置に対してストア動作が行われたときに、上記
管理テーブルを参照する前に、上記BVMを参照すること
により、主記憶装置とバッファ記憶装置間の一致制御を
行う。また、上記BVHは、その入力側に複数の連続した
ストア・アドレスを持つリクエストを1つのリクエスト
に間引きする回路を具備する。さらに、主記憶装置をバ
ッファ記憶装置の記憶単位であるブロックを複数個集め
たグループに分割し、各グループ内の一部ないし全部の
ブロックがバッファ記憶装置内に存在するか否かを示す
Block Group Valid Table(以下、BGVTと略記)を設
ける。BGVTは、ブロックグループ対応に設けられたBloc
k Group Valid Bit(以下、BGVと略記する。)を含
んでおり、各bitは対応するグループブロック内の一部
ないし全部のブロックがバッファ記憶装置内に存在する
とき、有効となる。ベクトル処理装置から主記憶装置に
対するストア動作が行われる際に、上記BVMを参照する
前に、該BGVTを参照する。
〔作 用〕
本発明においては、MSをBSの記憶単位であるブロックに
分割しておき、さらにMS上のこれらのブロックがBS内に
存在するか否かを示すBVMを複数のSPのBSに対応して設
ける。そして、VPからストア・リクエストが発行される
と、FAAをアクセスする前にBVMでこのストア・アドレス
をチェックし、このストア・アドレスを含むブロックに
対応するBVがバリッドであるときにのみ、FAAをアクセ
スしてMSの内容と一致させるのである。これにより、少
ないFAAしか設けなくても、これらのFAA内に必ずストア
・アドレスが存在することを確認してからアクセスする
ので、無駄なアクセスがなくなるため、待ち時間を減少
させることができる。また、BVMを複数のバンクにイン
タリーブして、各々が独立して動作できるようにする。
これによっても、待ち時間を短縮できる。
さらに、BVMの入力部において、VPの要素並列方向の複
数のストア・リクエストのストア・アドレスを比較する
とともに、VPの時間軸方向の複数のストア・リクエスト
のストア・アドレスを比較することにより、BSの同一ブ
ロック内に対するストア・リクエストか否かを判定し
て、同一ブロック内に対するストア・リクエストを1つ
のリクエストにパックする。これによって、アクセス回
数を減少させることができる。
さらに、MSをBSの記憶単位であるブロックを複数個集合
したグループに分割して、MS上のこれらグループ内の一
部ないし全部のブロックがBS内に存在するか否かを示す
BGVTを、VPのストア・リクエスタ対応に設ける。そし
て、VPからストア・リクエストが発行されると、BVMを
アクセスする前に、このBGVTでストア・アドレスをチェ
ックして、このストア・アドレスを含むブロック・グル
ープに対応するBGVがバリッドであるときのみ、BVMをア
クセスする。これにより、BVMのアクセスも減少するの
で、待時間が短縮される。
〔実施例〕
以下、本発明の原理および実施例を、図面により詳細に
説明する。
〔第1の実施例〕 第1図において、複数のSP3,4および複数のVP5,6に共有
されるMS1、入出力処理装置(I/O Processor、以下、I
OPと略記する)7,8、拡張記憶装置(Extended Storag
e、以下、ESと略記する)9、これらのSP3,4、VP5,6、I
OP7,8およびES9からのMS1に対するリクエストを制御す
る記憶制御装置(Storage Controller、SCと略記す
る)2が示されている。
SP3,4は、それぞれBS31および41と、これらのBS31,41の
MS1内アドレスを登録しておくBAA30および40を備えてい
る。
また、VP5,6は、それぞれVR51A〜51D、VR61A〜61Dと、
それぞれMS1に対するストア・リクエスタ50A〜50Dと、6
0A〜60Dを備えている。VR51A〜61Dは、MS1のベクトル・
データの写しを記憶するもので、SP3,4におけるBS31,41
と同じ役目を果す。
VP5,6は、要素並列方式で演算を実行し、例えば、VP5で
VR51AのデータMS1のある領域に連続して格納するストア
命令が発行されると、VR51A〜51Dのデータを要素単位に
4分割して、第1の要素はリクエスタ50A、第2要素は
リクエスタ50B、・・・のように、4つのリクエスタに
分割して割り当てる(いわゆる要素並列方式)。リクエ
スタ50A〜50Dは、それぞれMS1に対してストア・リクエ
ストを発行する。
SC2は、BAA30および40の写しであるFAA21Aまたは21B
と、MS1上のブロックがBS31および41内に存在するか否
かを示すBVM20Aおよび20Bと、MS1上のブロック・グルー
プ内の一部ないし全部のブロックがBS31または41内に存
在するか否かを示すBGVT22A〜22Hが、VP5,6のストア・
リクエスタ50A〜50Dおよび60A〜60Dに対応して設けられ
ている。
先ず、VP5のストア命令が発行された際には、要素並列
方式によりベクトル・ストア・データを複数個のストア
・リクエスタ50A〜50Dに分割して割り当てる。複数個の
ストア・リクエスタ50A〜50Dから発行されるストア・リ
クエスト・アドレスは、先ずBGVT22A〜22Dでチェックさ
れる。BGVT22A〜22Dは、前述のように、BS31,41のブロ
ックを複数個集めたグループ、例えばセグメント(1048
576バイト)又は、ページ(4096バイト)単位に1ビッ
トのBGVを備えたテーブルであって、そのエントリ数はM
S1の容量分である。BGVT22A〜22Dは、複数個のストア・
リクエスタ50A〜50Dに対応して複数個(この場合は4
個)設けられており、ストア・リクエストが発行される
と、それぞれこのストア・アドレスに含まれるブロック
・グループのBGVを調べる。このBGVがバリッドであると
き、つまりBGV=1であるときには、このストア・リク
エストはBVM20Aと20Bに対しリクエストを発行し、また
インバリッドであるとき、つまりBGV=0であるときに
は、BVM20Aと20Bに対しリクエストを発行しない。
複数個のBGVT22A〜22Dから発行されたBVMリクエストに
伴うストア・アドレスは、それぞれBGVT20A〜20Dに対応
した要素並列方向の複数のストア・アドレスを比較する
回路(後述)に入力され、BS31,41の同一ブロック内に
対するストア・リクエストであるか否かが調べられる。
同一ブロック内に対するBVMリクエストは、1つのBVMリ
クエストに間引かれる。これについては、後で第3図を
用いて説明する。
次に、それぞれ要素並列方向に間引かれたBGVT22A〜22D
に対応するBVMリクエストは、さらに時間軸方向の複数
のストア・アドレスを比較する回路(後述)に入力され
る。この時間軸方向の比較回路では、要素並列方向の比
較回路と同じように、BS31,41の同一ブロック内に対す
るBVMリクエストであるか否かが調べられる。同一ブロ
ック内に対するBVMリクエストは、1つのBVMリクエスト
に間引かれ、BVM20A,20Bをアクセスする。
BVM20A,20Bは、BS31,41のブロック単位に1ビットのBV
を備えたメモリであって、システム内のBS31,41に対応
して設けられている。例えば、BS31を有するSP3およびB
S41を有するSP4の2台で構成されているシステムでは、
2組のBVM20A,20Bが設けられる。また、BVM20A,20Bの各
エントリ数は、MS1の容量分である。BVM20A,20Bは、そ
れぞれ複数のバンクにインタリーブされ、BVM20A,20Bに
対するリクエストを連続して処理することが可能になっ
て、いる。複数組のBVM20A,20Bは、同時に、入力された
BVMリクエストのストア・アドレスに含まれるブロック
のBVを調べて、バリッドであるとき、つまりBV=1であ
るときには、そのBVMに対応するFAA21A,21Bに対してリ
クエストを発行し、インバリッドであるとき、つまりBV
=0であるときには、そのBVMに対応するFAA21A,21Bに
対してリクエストを発行しない。FAAに発行されたリク
エストは、FAA21A,21Bを検索して、そのストア・アドレ
スをチェックする。そのストア・アドレスがFAA21A,21B
内に存在するとき、つまりVP5または6のストア・リク
エストにより、BS31および41のデータを書き替えるとき
には、BS31,41内のそのブロックを無効化することによ
り、MSとBS間の一致制御が可能となる。
BGVT22A〜22H、BVM20A,20Bのバリッド・ビットの登録、
および無効化は、FAA21A,21Bに対するBS31,41のMS内ア
ドレスの登録、および無効化と同期して、そのBSにデー
タが登録されたり、無効化される時点で行われる。すな
わち、BS31,41にMS1のデータを登録するリクエストが発
行されると、そのBSのブロックに対応するFAA21A,21Bの
エントリにBSのMS内アドレスを登録すると同時に、シス
テム内の全BVM20A,20Bをそのブロックを含むBGVT22A〜2
2Hのブロック・グループ単位に読み出す。例えば、ブロ
ックが128バイトであるとして、ブロック・グループが1
048576バイトであると、そのブロックを含む8192エント
リのBVを読み出す。
次に、そのBVMのそのブロックに対応するエントリに対
して、バリッド・ビットを登録する。すなわち、BV=1
として、次にそのブロックを含む8192エントリのBVを調
べる。システム内の全BVMの全てのBVが、BV=0である
とき、つまりそのFAA登録リクエスト以前は、そのブロ
ック・グループに対応するBGVTのBGV=0であったと
き、そのブロック・グループに対応する全BGVTのそのエ
ントリに対して、バリッド・ビットを登録する。つま
り、BGV=1にする。そのブロックを含む8192エントリ
のシステム内の全BVMのBVのうち、いずれか1つでもBV
=1のエントリがあるとき、つまりそのFAA登録リクエ
スト以前に、そのブロック・グループに対応するBGVTの
BGV=1であったとき、BGVTに新たに登録する必要がな
いため、BGVTをアクセスしない。BGVT、BVMのバリッド
・ビットの無効化も、登録と同じように行われる。すな
わち、VPやSP等の他処理装置からMS1に対するストア・
リクエストによって、BS31,41のデータを書き替えたと
き、そのBSのブロックおよびFAAのそのエントリを無効
化すると同時に、そのBVMのそのブロックに対応するエ
ントリを無効化、つまりBV=0にする。次に、そのブロ
ックを含むシステム内全BVMの8192エントリのBVを読み
出して、システム内全BVMの8192エントリのBVを調べ、
全てのBV=0であるとき、つまり他処理装置からのスト
ア・リクエストにより、そのブロック・グループの全ブ
ロックが無効となったとき、そのブロック・グループに
対応する全BGVTのそのエントリを無効化、つまりBGV=
0とする。システム内全BVMの8192エントリのBVのう
ち、いずれか1つでもBV=1のエントリがあるとき、BG
VTのそのエントリを無効化する必要はないため、BGVTを
アクセスしない。このようにして、FAA、BVMおよびBGVT
の一致制御を行うことにより、MS1とBS31,41間の一致制
御が可能となる。
第2図は、第1図のMS1,VP5(又は6)、SP3(又は4)
BGVT22,BVM20およびFAA21のアドレス関係を理解するた
めの概略図である。図においては、説明の簡単化のため
に、第1図のすべての構成要素は示していない。
図において、VP5は4byte(31bti)の実アドレスを発生
する。このアドレスはMS1(231バイト(2Gバイトの容量
を有する))のアドレスである。発生された実アドレス
の上位11ビット(0.1−1.3)は、まずBGVT22に与えられ
る。BGVT22は前述の通り、2K(211)のBGVを持ち、その
うちの1つが実アドレスの上位11ビットにより読出され
る。
読出されたBGVが“1"である時、このBGVに対応するブロ
ックグループの中のブロックが、BS3(or4)に登録され
ている可能性があるので、BVM20を参照する。
BVM20には、VP5からの実アドレスの上位24ビット(0.1
−3.0)が与えられる。BVM20は前述の通り、16M(224)
のBVを持ち、そのうちの1つが読出される。
読出されたBVが“1"である時、このBVに対応するブロッ
クがBS3(or4)の登録されている。BVが“1"であればFA
A31を索引するまでもなく、BS3(or4)に、このBVに対
応するブロックが登録されていることが分かる。したが
って、BVが“1"となれば、FAA31を索引しないで、BS31
のブロックをキャンセルすることができる。しかし乍
ら、BAAに対する無効化のパスが増え、FAA31とBAA30の
一致制御が複雑となる為、BVMから読出されたBVを直接B
AA30の無効化には使用せず、FAA21にVP(5or6)からの
実アドレスを与えて、検索させる為の、セレクタ214Aor
Bへの選択信号としている。セレクタ214AorBには、他の
リクエスト元(IOP等)からのアドレスも与えられてい
る。
FAA21において、一致が検出されると、BS31内のブロッ
クを無効化する為、BAA30内の該ブロックに対応するエ
ントリのValid bitが“0"にリセットされる。
第3図は、第1図におけるVPによりストア・リクエスト
が発行されたときのBGVTおよびBVMの動作を説明する図
である。
VP5およびVP6からストア・リクエスト(ストアアドレス
付)が発行されたときのMS1とBS31および32間の一致制
御を行う動作を、第3図により説明する。
VP5およびVP6のストア・リクエスタ50A〜50Dおよび60A
〜60Dから発行されるストア・リクエスト200A〜200H
(ストアアドレス付)は、SC2で受け付けられ、それぞ
れ対応するBGVT22A〜22Hに入力される。BGVT22A〜22H
は、先に示したように220バイト単位(ブロック・グル
ープ)に1ビットのBGVを有するテーブルであって、そ
れぞれこれらのストア・リクエストに付随するストア・
アドレスを含むブロック・グループのBVVを読み出す。B
GV=1であるとき、つまりそれらのストア・リクエスト
によりBSのデータを書き替える可能性があるとき、その
ストア・リクエストは比較回路202に対するリクエスト2
01A〜201H(ストアアドレス付)となる。また、BGV=0
であるとき、つまりそれらのストア・リクエストにより
BSのデータを書き替える可能性がないとき、そのストア
・リクエストは比較回路202に対するリクエストを発行
することなく終了する。このとき、これらのストア・リ
クエストは、BVM20Aおよび20Bをアクセスする必要がな
いというだけで、当然MS1に対するストア動作は実行す
る。
比較回路202は、BGVT22A〜22Hから発行されたストア・
リクエスト201A〜201H(ストアアドレス付)を、要素並
列方向に間くための回路である。すなわち、比較回路20
2は、入力されたストア・リクエスト201A〜201H(スト
アアドレス付)のストア・アドレスを比較し、BS31の同
一ブロックに対するリクエストが複数個あれば、1つの
リクエストに間引く。比較回路202で間引かれたリクエ
スト203(ストアアドレス付)は、比較回路206およびフ
リップフロップ204に入力される。比較回路206とフリッ
プフロップ204は、要素並列方向に間引かれたリクエス
ト203を、さらに時間軸方向に間引くための回路であ
る。フリップフロップ204は、リクエスト203(ストアア
ドレス付)を一時保持するためのものである。リクエス
ト203(ストアアドレス付)が連続して発行されると、
1回目のリクエストはフリップフロップ204に保持され
ると同時に、比較回路206を通過して、BVM20Aおよび20B
をアクセスするリクエスト207(ストアアドレス付)と
なる。次に、2回目のリクエストが、フリップフロップ
204に保持されると同時に、比較回路206に入力されて、
フリップフロップ204にそれまで保持されていた1回目
のリクエストが比較回路206に対するリクエスト205とな
る。比較回路206は、比較回路202と同じように、リクエ
スト203および205(ストアアドレス付)のアドレスを比
較して、BS31の同一ブロックに対するリクエストであれ
ば、1つのリクエストに間引く。3回目のリクエスト以
降も同じようにして、順次、連続するストア・アドレス
を時間軸方向に間引く。以上のようにして、BGVT22A〜2
2Hを通過したリクエスト201A〜201H(ストアアドレス
付)は、要素並列方向および時間軸方向に間引かれて、
BVM20Aおよび20Bに対するリクエスト207(ストアアドレ
ス付)となる。
ベクトルプロセッサからのデータストアは、一般的にス
トア・アドレスが連続する為、このような間引きによ
り、BVT20の検索回数を大幅に減らすことができる。
BVM20Aおよび20Bは、BSのブロック単位に1ビットのBV
を有するメモリであって、先に示したように各々16,77
7,216エントリから構成されている。BVM20Aは、SP3内の
BS31に対応するものであり、BVM20BはSP4内のBS41に対
応するものであって、各々BS31または41内の有効なブロ
ックに対応したBVM20Aまたは20BのBVは、BV=1であ
る。また、BVM20Aおよび20Bは、各々4つのバンク208A
〜208D,208E〜208Hにインタリーブされている。BVM20A
および20Bに対するリクエスト207(ストアアドレス付)
が発行されると、BYM20Aおよび20Bでは、各々それらの
ストア・アドレスに対応するエントリのBVを読み出す。
それらのBV=1のとき、つまりストア・リクエストによ
りBS31又は41のデータを書き替えるとき、それらのBVM
に対応するFAA21Aまたは21Bに対するリクエスト209Aま
たは209B(ストアアドレス付)を発行する。また、これ
らのBV=0のとき、つまりこれらのストア・リクエスト
によりBSのデータを書き替えないときには、これらのBV
Mに対応するFAA21Aまたは21Bに対するリクエスト209Aま
たは209Bを発行することなく終了する。BVM20Aおよび20
Bは、BGVT22A〜22Hより大容量であるため、BGVT22A〜22
Hより高密度ではあるが、定速なメモリで構成されてい
る(例えば4MDRAMのLSI4ケ)。従って、各々4つのバン
ク208A〜208Dおよび208E〜208Hにインタリーブされ、BV
Mに対するリクエストを連続して処理することが可能で
ある。BVM20Aまたは20Bからのリクエスト209Aまたは209
Bは、ES9からのストア・リクエスト210,IOP7または8か
らのストア・リクエスト211Aまたは211B、およびSP3ま
たは4からのストア・リクエスト212または213ととも
に、セレクタ214Aまたは214Bに入力される。これらのセ
レクタ214A,214Bは、複数のリクエストの優先準位がと
られ、セレクトされたリクエスト215Aまたは215Bは、FA
A21Aまたは21Bをアクセスする。ES9、IOP7および8のリ
クエスト210、211Aおよび211Bは、FAA21Aおよび21Bの両
方をアクセスする必要があるため、セレクタ214Aおよび
214Bの両方に入力される。一方SP3のリクエストは、SP3
内のBS31にストア動作を行うため、このBS31に対応する
FAA21Aをアクセスする必要はなく、SP4内のBS41のデー
タを書き替えたか否かのチェックのみ行えばよいため、
このBS41に対応するFAA21Bに対するセレクタ214Bにのみ
入力される。同じように、SP3のリクエストは、セレク
タ214Aのみに入力される。FAA21Aまたは21Bでは、上記
セレクタ214Aまたは214Bでセレクトされたストア・リク
エストのリクエスト・アドレスをチェックし、このリク
エスト・アドレスがBS31または41に登録されているデー
タのアドレスと一致したとき、つまりそのストア・リク
エストによりBS31または41のデータを書き替えるときに
は、SP3または4に対して、これらBSのエントリの無効
化リクエスト216Aまたは216Bを発行する。
第4図は、第1図におけるBVMおよびBGVTの登録、無効
化の動作を説明する図である。
第4図により、BVM20A,20BのBVおよびBGVT22A〜22HのBG
Vの登録および無効化の動作について、詳述する。
SP3からFAA登録リクエスト217A(リクエストアドレス
付)が発行されると、先ずFAA21Aに対して登録動作を行
う。次にFAA21AからBVM読み出しリクエスト218A(リク
エストアドレス付)を発行する。このリクエスト218A
は、セレクタ219Aおよび219Bに入力され、これらのセレ
クタ219A,219Bでセレクトされたリクエスト220Aおよび2
20Bとなって、BVM20Aおよび20Bに入力される。BVM20Aお
よび20Bでは、これらの登録リクエストのリクエスト・
アドレスを含むブロック・グループの全エントリを読み
出す。本実施例の場合、各々8192エントリのBVを読み出
す。
次に、BVM登録リクエスト218Aを発行する。このリクエ
スト218Aはセレクタ219Aに入力され、このセレクタ219A
でセレクトされたリクエスト220Aは、BVM20Aに入力され
る。BVM20Aでは、この登録リクエストのリクエスト・ア
ドレスを含むブロックのエントリに対して、バリッド・
ビットを登録、つまりBV=1とする。
前のBVM20Aおよび20Bからの読み出し動作により、読み
出された各々8192エントリのBV221Aおよび221Bは、OR回
路222Aおよび22Bに入力される。OR回路222Aおよび222B
において、論理ORがとられた結果の223Aおよび223Bは、
さらにNOR回路224で2つの論理NORがとられる。次に、N
OR回路224の出力225が論理値1であるとき、つまりBVM2
0Aおよび20Bの登録リクエスト・アドレスを含むブロッ
ク・グループのBVが全部0であり、今回の登録リクエス
ト受付け以前のBGVが、BGV=0であったときには、BGVT
22A〜22Hに対してBGVを登録する必要がある。NOR回路22
4の出力225は、AND回路226Aに入力され、この出力225が
論理値1であるとき、AND回路226Aは能動化されて、FAA
0からのストアリクエスト(リクエストアドレス付)はB
GVT登録リクエスト227A(リクエストアドレス)とな
る。このBGVT登録リクエスト227Aは、セレクタ228に入
力され、セレクタ228でセレクトされたリクエスト229
(リクエストアドレス付)は、BGVT22Aないし22Hに入力
される。そして、これらの登録リクエスト・アドレスを
含むブロック・グループのエントリに対して、バリッド
・ビットを登録、つまりBGV=1にする。
NOR回路224の出力225が論理値0であるとき、つまりBVM
20Aおよび20Bの登録リクエストのリクエスト・アドレス
を含むブロック・グループのBVのいずれかが1であり、
今回の登録リクエスト受け付け以前、既にBGV=1であ
ったときには、BGVT22A〜22Hに対してBGVを登録する必
要がない。NOR回路224の出力225が論理値0であると、A
ND回路226Aは能動化されず、BGVT登録リクエスト227Aは
発行されない。
SP4からFAA登録リクエスト217B(リクエストアドレス
付)が発行されたときにも、上述と全く同じ処理を行
う。
次に、SP4からFAA無効化リクエストが発行されたときの
動作を、説明する。
SP4からFAA無効化リクエスト217B(リクエストアドレス
付)が発行されると、先ずFAA21Bに対して無効化動作を
行う。次に、FAA21BからBVM無効化リクエスト218B(リ
クエストアドレス付)が発行される。このリクエストは
セレクタ219Bに入力され、このセレクタ219Bでセレクト
されたリクエスト220B(リクエストアドレス付)はBVM2
0Bに入力される。BVN20Bでは、無効化リクエストのリク
エスト・アドレスを含むブロックのエントリを無効化、
つまりBV=0とする。次に、BVM読み出しリクエスト218
B(リクエストアドレス付)を発行することにより、こ
のリクエストはセレクタ219Aおよび219Bに入力され、こ
のセレクタ219A,219Bでセレクトされたリクエスト220A,
220B(リクエストアドレス付)となってBVM20Aおよび20
Bに入力される。BVM20Aおよび20Bでは、無効化リクエス
ト・アドレスを含むブロック・グループの全エントリを
読み出す。読み出された各々8192エントリのBV221Aおよ
び221Bは、OR回路222Aおよび222Bに入力される。論理OR
出力223Aおよび223Bは、さらにNOR回路224に入力され、
論理NORがとられる。この論理NOR出力225が論理値1で
あるとき、つまりBVM20Aおよび20Bの無効リクエストの
リクエスト・アドレスを含むブロック・グループのBVが
全部0であり、今回の無効化処理により、このブロック
・グループ内の全BVMのBV=0となったとき、BGVT22A〜
22HのBGV=0にする必要がある。NOR回路224の出力225
は、AND回路226Bに入力され、出力225はAND回路226Bに
入力され、その出力225の論理値1であるとき、AND回路
226Bは能動化されて、BGVT無効化リクエスト227B(リク
エストアドレス付)となる。
このBGVT無効化リクエスト227B(リクエストアドレス
付)は、セレクタ228に入力され、セレクタ228でセレク
トされたリクエスト229(リクエストアドレス付)が、B
GVT22A〜22Hに入力されて、無効化リクエストのリクエ
スト・アドレスを含むブロック・グループのエントリを
無効化、つまりBGV=0とする。
NOR回路224の出力225が論理値0であるとき、つまりBVM
20Aおよび20Bの無効化リクエストのリクエスト・アドレ
スを含むブロック・グループのBVのいずれかが1であ
り、今回の無効化リクエスト処理後も、そのブロック・
グループのBVMに、BV=1であるエントリが存在すると
きには、BGVT22A〜22HのBGV=0とする必要がない。NOR
回路224の出力225が論理値0であるとき、AND回路226B
は能動化されず、BGVT無効化リクエスト227Bは発行され
ない。
SP3からFAA無効化リクエスト217Aが発行されたときに
も、全く同じような処理が行われる。
〔第2の実施例〕 第2の実施例は、第1の実施例において、BVMを複数の
スカラプロセッサ3および4に共用させるものである。
本実施例においては、BVMには、各スカラプロセッサのF
AAの登録状況が一つのBVMに反映される。
本実施例においては、あるVPからのストア動作の際に、
先述の実施例と同様BGVTおよび必要な場合にBVMを検索
する。検索結果BVMでヒットした場合は、各SP3および4
のFAAに対し、検索を実行させる。ここにおいて、先の
実施例と異なるのは、先の実施例においては、BVMとFAA
が一対一に対応していたので、BVMでヒットした場合は
対応するFAAでは必ずヒットしたものであって、FAAの検
索は装置の構成上の都合により行っていた。一方本実施
例では、BVMでヒットしたとしても、いずれのFAAでヒッ
トするか分らない為、両方を検索し、いずれのFAAでヒ
ットするかを求めることが必要である。
また、本実施例においては、あるSPからのストア動作に
伴なう他SPのBSの無効化処理を行なう際に、該ストアす
るブロックが、ストア要求を発行したSPのBS内に取込ま
れていることを検出すると、他SPのBSを無効化したとし
ても、該ブロックが少くとも1台のSPのBSには取込まれ
ていると判断して、BVM・BGVTのリセット(BV,BGV)処
理は行なわない。当然、該ストアを要求したSPのBSに該
ブロックが取込まれておらず、他SPのBSに取込まれてい
た場合には、当該ブロックのBVM・BGVTのリセット処理
を起動する。
更に、あるSPからのブロックのBSへの取込動作に伴なう
FAAへの登録処理を行なう際に、登録によって追出され
る旧ブロックおよび追加される新ブロックが、他SPのBS
に取込まれていることを検出すると、該SPのFAAの登録
内容を変更したとしても、該ブロックが少くとも1台の
SPのBSには取込まれていると判断して、BVM・BGVTの更
新処理を行なわないようにする。以上示したような複数
のSPに対応するFAAの一括参照制御によって、複数台のS
PのBSがBVMを共有する構成であっても、BAA(FAA)とBV
M・BGVTの内容の一致性を保証することができる。
また、システムで障害等が発生した場合の後処理とし
て、あるSPのBSの内容を全て無効化する必要が生じた場
合にも、当該SPのBSのみならず、他SPのBSも全無効化を
するとともに、BVM・BGVTのリセット(BV・BVG)を行な
うことにより、BAA(FAA)とBVM・BGVTの内容の一致性
を保証することができる。
以下、図面を参照して、第2の実施例を説明する。
第5図において第3図と同一の符号が付いているもの
は、同一のものである。
MS,BGVT,BVM,FAA,BAAおよびBSアドレス関係について
も、第2図において示したのと同じである。
第5図に示すとおり、スカラプロセッサが複数であるの
に対しBVMは1つのみ設けられている。
第5図において、VPからストア・リクエスト(ストアア
ドレス付)が発行されたとき、BGVT22A〜H,比較回路20
2,フリップフロップ204および比較回路206の動作は、第
3図に示したものと同じである。
BVM20は先に述したBVM20A,Bと同様BSのブロック単位に
1ビットのBVを有するメモリであって、ここでは224エ
ントリから構成されている。BVM20は、SP3内のBS31とSP
4内のBS41に対応するものであり、BS31またはBS41内で
有効なブロックに対応したBVはBV=1となるよう制御し
ている。また、BVM20は、BGVT22A〜22Hより大容量であ
る為、BGVT22A〜22Hより大容量・低速のメモリで構成さ
れる。そこで、BVM20では、四つのバンク208A〜208Dに
インタリーブする構成を採り、これによって、BVMに対
するリクエストを連続に処理することを可能にしてい
る。BVM20に対するリクエスト207(ストアアドレス付)
が発行されると、BVM20では、該リクエスト・アドレス
に対応するエントリのBVを読出す。該BV=1のとき、つ
まりストア・リクエストによりBS31または41のデータを
書替えるとき、FAA21Aおよび21Bに対するリクエスト209
(ストアアドレス付)を発行する。一方、該BV=0のと
き、つまりこのストア・リクエストによりBS31または41
のデータを書替えないときには、FAA21Aおよび21Bに対
するリクエスト209を発行すること無く終了する。BVM20
からのリクエスト209は、ES9からのストア・リクエスト
210,IOP7・8からのストア・リクエスト211a・211b(ス
トアアドレス付)およびSP3・4からのストア・リクエ
スト212・213(ストアアドレス付)とともに、セレクタ
214に入力される。このセレクタ214では、複数のリクエ
スト間の優先順位がとられ、セレクトされたリクエスト
215a,251b(ストアアドレス付)は、FAA21A・21Bをアク
セスする。FAA21A・21Bでは、セレクタ214でセレクトさ
れたストア・リクエストのストア・アドレスをチェック
し、このストア・アドレスがBS31または41に登録されて
いるデータのアドレスと一致したとき、つまり該ストア
・リクエストによりBS31または41のデータを書替えると
きには、SP3または4に対して、該BSのエントリの無効
化リクエスト216aまたは216bを発行する。
第6図は、第5図に於けるBVMおよびBGVTの登録/無効
化の動作を説明する図である。
第6図により、BVM20のBVおよびBGVT22A〜22HのBGVの登
録および無効化の動作について詳述する。
SP3からFAA登録リクエスト23i(リクエストアドレス
付)が発行されると、まずFAA21Aに対して登録に伴なっ
て追出される旧ブロックのアドレスの読出を行ない、判
定回路24から信号線24bを介してセレクタ214に送る。次
に、FAA21Aに対しては、登録動作を、FAA21Bに対して
は、信号線24bを介して送られた追出されるブロックが
登録されているか否かの検索を並行して行なう。この検
索の結果、該登録に伴なって追出されるブロックがSP4
のBS41に登録されていなければ、つまり、該追出しによ
って該ブロックがBS31または41のいずれかにも存在しな
くなることを検出すると、BVM20に対して無効化のリク
エスト24a(リクエストアドレス付)を発行する。
SP4からFAA登録リクエスト23j(リクエストアドレス
付)が発行されたときの、BVM20に対するリクエスト発
行までの処理も、上述と同様の処理を行なう。
IOP7・8およびES9からのMS1に対するストア・リクエス
トに伴なうFAAの無効化要求211a・211bおよび210(リク
エストアドレス付)が送られると、セレクタ214を介し
てFAA21A・21Bに送られる。この無効化要求のリクエス
トアドレスでFAA21A・21Bを検索し、その結果BS31また
は41に、該リクエストアドレスを含むブロックが登録さ
れていることを判定回路24で検出すると、FAAの該エン
トリの無効化を行なうとともにBVM20に対して無効化の
リクエスト24a(リクエストアドレス付)を発行する。
また、SP3からのMS1に対するストア・リクエストに伴な
うFAA21Aの無効化の要求23i(リクエストアドレス付)
が送られると、該要求のアドレスでFAA21A・21Bを検索
する。この結果、判定回路に於て、FAAの無効化要求を
発行したSP(SP3)以外のSP(SP4)のBS(BS41)に、該
アドレスを含むブロックが登録されており、且つFAAの
無効化要求を発行したSP(SP3)のBS(BS31)に該アド
レスを含むブロックが登録されていないことを検出する
と、該FAA21Aの無効化を行なうとともに、BVM20に対し
て無効化のリクエスト24a(リクエストアドレス付)を
発行する。もし、上述の検索に於て、該無効化要求のリ
クエストアドレスを含むブロックが、BS31およびBS41に
登録されていることを検出すると、該BS41に対応するFA
A21Bの無効化を行なうのみで、BVM20に対するリクエス
トは発行しない。これは、BS41に対する無効化を行なっ
ても、BS31には該ブロックが登録されたままになり、BV
M20の更新は不要になる為である。
尚、SP4からFAAの無効化要求が発行されたときの、BVM2
0に対するリクエスト発行までの処理も、上述と同様の
処理を行なう。
BVM20に登録のリクエスト24a(リクエストアドレス付)
が発行されると、BVM20に入力され、登録リクエストの
リクエスト・アドレスを含むブロック・グループの全エ
ントリ(213エントリ)のBVを読出す。その後、該登録
リクエストのリクエスト・アドレスを含むブロックのエ
ントリに対して、BV=1とする。この処理と並行して、
先の読出動作で読出した213エントリのBV20aは、NOR回
路223に入力される。NOR回路223で論理NORがとられた結
果の223aが‘1'である、つまり、登録リクエスト・アド
レスを含むブロック・グループのBVが全部‘0'であり、
今回の登録リクエスト受付け以前のBGVが‘0'であると
きには、BGVT22A〜22Hに対してBGVを登録する必要があ
る。NOR回路223の出力223aは、AND回路226に入力され、
この223aが‘1'のとき、AND回路226は能動化されて登録
リクエスト24a(リクエストアドレス付)は、BGVT登録
リクエスト226a(リクエストアドレス付)になる。この
BGVT登録リクエスト226a(リクエストアドレス付)は、
BGVT22Aないし22Hに入力される。そして、このリクエス
トアドレスを含むブロック・グループのエントリに対し
て、BGVを‘1'にする。また、NOR回路223の出力223aが
‘0'であるとき、つまりBVM20の登録リクエストのリク
エスト・アドレスを含むブロック・グループのBVのいず
れかが‘1'であり、今回の登録リクエスト受付け以前に
既にBGV=‘1'であったときには、BGVT20A〜22Hに対し
てBGVを登録する必要がない。NOR回路223の出力223aが
‘0'であると、AND回路226は能動化されず、BGVT登録リ
クエスト226aは発行されない。
一方、BVM20に無効化のリクエスト24a(リクエストアド
レス付)が発行されると、BVM20に入力され、無効化リ
クエストのリクエスト・アドレスを含むブロックのエン
トリを無効化つまりBV=‘0'とする。次に、無効化アド
レスを含むブロック・グループの全エントリをBVM20か
ら読出す。読出された213エントリのBV20aは、NOR回路2
23に入力される。このNOR回路223の出力223aが‘1'であ
るとき、つまりBVM20の無効リクエストのリクエスト・
アドレスを含むブロック・グループのBVが全部‘0'であ
り、今回の無効化処理により、このブロック・グループ
内のBVが‘0'になるとき、BGVT22A〜22HのBGVを‘0'に
する必要がある。NOR回路223の出力223aは、AND回路226
に入力され、その223aが‘1'のとき、AND回路226は能動
化されて、BGVT無効化リクエスト226a(リクエストアド
レス付)になる。このBGVT無効化リクエスト226aは、BG
VT22A〜22Hに入力されて、無効化リクエストのリクエス
ト・アドレスを含むブロック・グループのエントリを無
効化、つまりBGV=‘0'にする。
また、NOR回路223の出力223aが‘0'であるとき、つまり
BVM20の無効化リクエストのアドレスを含むブロック・
グループのBVのいずれかが‘1'であり、今回の無効化リ
クエスト処理後も、そのブロック・グループのBVMにBV
=‘1'であるエントリが存在するときには、BGVT22A〜2
2HのBGVを‘0'にする必要がない。NOR回路223の出力223
aが‘0'であると、AND回路226は能動化されず、BGVT無
効化リクエスト226aは発行されない。
また、マルチプロセッサ・システムに於て、障害が発生
した場合等のときに、あるSPのBSを全て無効化する必要
が生じることがある。この時には、該BSに対応するFAA
の無効化を行なうだけでなく、BVM・BGVTの無効化も行
なう必要がある。更に、BVM・BGVTを無効化する場合に
は、BVM・BGVTを共有している他SPのBSも全て無効化す
る必要がある。初期化回路25は、SP3・4からのBVM・BG
VTの全無効化要求25i・25J(リクエストアドレス付)を
受け取ると、BVMの第0エントリから最終エントリま
で、BVを‘0'にするリクエスト2a(リクエストアドレス
付)をBVM20に発行する。このリクエスト25aにより、BV
M20内は全て無効化され、これに伴なって、BGVTに対し
てもBGVの無効化リクエストが発行されて、BGVTが全て
無効化される。尚、SP間のBSの全無効化指示は、図示し
ないインタフェースにより、SP間で直接送受してBSの全
無効化が行なわれる。
この場合には、マルチプロセッサを構成するSPのBSをグ
ルーピングし、このグループの単位でBVMに対応させ
て、制御する。つまり、同一のグループに含まれるBSの
いずれかに、あるブロックが登録されているか否かで対
応するBVMのBVを制御するようにし、グループが異なるB
Sでのブロックの登録状況には影響を受けないように制
御するわけである。尚、この場合、BGVTは各BVMに対応
したテーブルを各々備える必要がある。
〔発明の効果〕
以上説明したように、本発明によれば、各々ストア・リ
クエスタを備えた複数のVPと、各々BSを備えた複数のSP
と、これらのVPおよびSPにより共有されるMSから構成さ
れるマルチプロセッサシステムに於ても、BSとMS間の一
致制御を効率的に行なうことができる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す記憶制御装置を含むス
ーパーコンピュータのマルチプロセッサシステムの構成
図、第2図は第1図のシステムにおけるMain Storage,
BGVT,BVMおよびFAAのアドレス関係を示す図、第3図は
第1図において、VPのストア・リクエストが発行された
場合のBGVTとBVMの動作説明図、第4図は第1図におけ
るBVMおよびBGVTの登録、無効化の動作説明図、第5図
は第2の実施例において、VPのストア・リクエストが発
行された場合のBGVTとBVMの動作図、第6図は第2の実
施例においてBVMおよびBGVTの登録無効化の動作説明図
である。 20……BVM、22A〜22H……BGVT、21A・21B……FAA、24…
…判定回路、202・206……比較回路、214……セレク
タ、25……初期化回路。

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサと、該複数プロセッサに
    共有される共有記憶装置と、各プロセッサに設けられ、
    記憶単位がブロック単位であり、該共有記憶装置のデー
    タの一部写しを記憶するバッファ記憶とを有する計算機
    システムの記憶制御装置において、 該共有記憶装置は該バッファ記憶の記憶単位により複数
    のブロックに分割されており、 該共有記憶装置上のブロックの写しが該バッファ記憶内
    に記憶されているか否かを表わす有効ビットを、該共有
    記憶装置の全ブロックに対応して保持するブロックバリ
    ッドメモリと、 あるプロセッサが該共有記憶装置のあるブロックにデー
    タを格納する際、該あるブロックに対応する有効ビット
    が有効であるか否かを検出する手段と、 該あるブロックに対応する有効ビットが有効であるとき
    に実行される、他のプロセッサに属するバッファ記憶内
    に記憶された該あるブロックの写しを無効化する手段と
    を有することを特徴とする複数プロセッサを有する計算
    機システムの記憶制御装置。
  2. 【請求項2】上記ブロックバリッドメモリは、複数のバ
    ンクにインターリーブされることを特徴とする特許請求
    の範囲第1項記載の記憶制御装置。
  3. 【請求項3】上記ブロックバリッドメモリは、その入力
    側に複数の連続したストアアドレスを持つリクエストを
    1つのリクエストに間引く回路を具備することを特徴と
    する特許請求の範囲第1項記載の記憶制御装置。
  4. 【請求項4】上記間引き回路は、複数のストアアドレス
    を持つリクエストのうち、同一のブロックに含まれるス
    トアアドレスを持つリクエストが複数あれば、1つのリ
    クエストにする手段を含む特許請求の範囲第3項記載の
    記憶制御装置。
  5. 【請求項5】上記間引き回路は、連続して発生される複
    数のストアアドレスを持つリクエストか、同一のブロッ
    クに含まれる場合、1つのリクエストにする手段を含
    む、特許請求の範囲第3項記載の記憶制御装置。
  6. 【請求項6】上記記憶制御装置は、さらにブロックグル
    ープバリッドテーブルを含み、該ブロックグループバリ
    ッドテーブルは、多数のブロックから成るブロックグル
    ープに対して夫々設られ、かつ対応するブロックグルー
    プ内に含まれるブロックに対応する有効ビットの一つで
    も有効であるか否かを示すグループバリッドビットを複
    数含むものである特許請求の範囲第1項記載の記憶制御
    装置。
  7. 【請求項7】上記記憶制御装置は、さらに参照手段と取
    下げ手段とを有し、該参照手段は、あるプロセッサがス
    トアアドレスと伴にストアリクエストを発行した際、ブ
    ロックバリッドメモリを参照する前に、ブロックグルー
    プバリッドテーブルを参照するものであり、該取下げ手
    段は、該ストアアドレスに対応するブロックグループバ
    リッドビットが無効である場合に、ブロックバリッドメ
    モリの参照を取り下げるものである特許請求の範囲第6
    項記載の記憶制御装置。
  8. 【請求項8】上記ブロックバリッドメモリは、その入力
    側に複数の連続したストアアドレスを持つリクエストを
    1つのリクエストに間引く回路を具備することを特徴と
    する特許請求の範囲第7項記載の記憶制御装置。
  9. 【請求項9】上記間引き回路は、複数のストアアドレス
    を持つリクエストのうち、同一のブロックに含まれるス
    トアアドレスを持つリクエストが複数あれば、1つのリ
    クエストにする手段を含む特許請求の範囲第8項記載の
    記憶制御装置。
  10. 【請求項10】上記間引き回路は、連続して発生される
    複数のストアアドレスを持つリクエストが、同一のブロ
    ックに含まれる場合、上記連続して発生される複数のリ
    クエストを1つのリクエストにする手段を含む、特許請
    求の範囲第8項記載の記憶制御装置。
  11. 【請求項11】主記憶装置と、基本プロセッサと、少な
    くとも一つの付加プロセッサとを有する計算機システム
    の記憶制御装置において、 記憶単位がブロック単位であり、かつ該主記憶装置のデ
    ータの一部コピーをブロック単位で保持するバッファメ
    モリを有し、 該主記憶装置は該バッファメモリの該記憶単位で複数の
    ブロックに分割されており、 該バッファメモリに保持されたコピーに対応するデータ
    の主記憶装置上のアドレスを保持するバッファアドレス
    アレイと、 該バッファアドレスアレイに接続され、基本プロセッサ
    から発生されたアドレスが、該バッファアドレスアレイ
    に保持されているか否かを検出する第1の検出手段と、 該バッファアドレスアレイの内容の写しを保持するフロ
    ントアドレスアレイと、 該フロントアドレスアレイに接続され、付加プロセッサ
    により発生されたアドレスが、該フロントアドレスアレ
    イに保持されているか否かを検出する第2の検出手段
    と、 バッファメモリ内の、該付加プロセッサが発生したアド
    レスに対応するブロックデータを無効化する手段と、 該バッファメモリ内に該主記憶装置上のブロックデータ
    の写しが格納されているか否かを表わす有効ビットを、
    該主記憶装置の全ブロックに対応して保持するブロック
    バリッドメモリと、 該付加プロセッサによる主記憶装置のあるブロックに対
    する書込み要求に応答して、そのブロックに対応する有
    効ビットをブロックバリッドメモリから読出す手段と、 該読出された有効ビットが有効である時のみに、該第2
    の検出手段を起動する手段とを含む複数プロセッサを有
    する計算機システムの記憶制御装置。
  12. 【請求項12】上記付加プロセッサは、ストアアドレス
    と伴にストアリクエストを発生する複数のメモリリクエ
    スタを有するベクトルプロセッサである特許請求の範囲
    第11項記載の記憶制御装置。
  13. 【請求項13】上記記憶制御装置はさらに、ブロックグ
    ループバリッドテーブルを含み、該ブロックグループバ
    リッドテーブルは、複数のブロックからなるブロックグ
    ループ対応に設けられ、ブロックグループ内の少なくと
    も1つのブロックに対応する有効ビットが有効であるか
    否かを表わすブロックグループバリッドビットを主記憶
    装置の全ブロックグループについて保持する特許請求の
    範囲第11項記載の記憶制御装置。
  14. 【請求項14】上記ブロックバリッドメモリは、その入
    力側に複数の連続したストアアドレスを持つリクエスト
    を1つのリクエストに間引く回路を具備することを特徴
    とする特許請求の範囲第12項記載の記憶制御装置。
  15. 【請求項15】主記憶装置と、複数の基本プロセッサ
    と、少なくとも一つの付加プロセッサとを有する計算機
    システムの記憶制御装置において、 各基本プロセッサは、記憶単位がブロック単位であり、
    かつ該主記憶装置のデータの一部コピーをブロック単位
    で保持するバッファメモリと、該バッファメモリに保持
    されたコピーに対応するデータの主記憶装置上のアドレ
    スを保持するバッファアドレスアレイと、該バッファア
    ドレスアレイに接続され、基本プロセッサから発生され
    たアドレスが、該バッファアドレスアレイに保持されて
    いるか否かを検出する第1の検出手段と含んでおり、 該主記憶装置は該バッファメモリの該記憶単位で複数の
    ブロックに分割されており、 おのおのが対応する基本プロセッサのバッファアドレス
    アレイの内容の写しを保持するフロントアドレスアレイ
    と、 おのおのが対応するフロントアドレスアレイに接続さ
    れ、付加プロセッサにより発生されたアドレスが、対応
    するフロントアドレスアレイに保持されているか否かを
    検出する複数の第2の検出手段と、 複数の基本プロセッサに対して共通に設けられ、ブロッ
    クデータの写しがいずれか1つのバッファメモリに格納
    されている場合に有効となる有効ビットを、該主記憶装
    置の全ブロックに対応して保持するブロックバリッドメ
    モリと、 該付加プロセッサによる主記憶装置のあるブロックに対
    する書込み要求に応答して、そのブロックに対応する有
    効ビットをブロックバリッドメモリから読出す手段と、 該読出された有効ビットが有効である時のみに、全ての
    第2の検出手段を起動する手段とを含む複数プロセッサ
    を有する計算機システムの記憶制御装置。
  16. 【請求項16】上記記憶制御装置はさらに、ブロックグ
    ループバリッドテーブルを含み、該ブロックグループバ
    リッドテーブルは、複数のブロックからなるブロックグ
    ループ対応に設けられ、ブロックグループ内の少なくと
    も1つのブロックに対応する有効ビットが有効であるか
    否かを表わすブロックグループバリッドビットを主記憶
    装置の全ブロックグループについて保持する特許請求の
    範囲第15項記載の記憶制御装置。
  17. 【請求項17】複数のストアアドレスを持つリクエスト
    のうち、同一のブロックに含まれるストアアドレスを持
    つリクエストが複数あれば、1つのリクエストにする手
    段を含む、特許請求の範囲第16項記載の記憶制御装置。
  18. 【請求項18】あるプロセッサが備えるバッファ記憶装
    置内の情報を全て無効化する要求が生じた場合に、該要
    求を、ブロックバリッドメモリを有効にしている他のプ
    ロセッサに通知し、該プロセッサのバッファ記憶制御の
    全情報を無効化するとともに、ブロックバリッドメモリ
    およびブロックグループバリッドテーブルを初期化する
    よう制御することを特徴とする特許請求の範囲第15項記
    載の記憶制御装置。
JP1152346A 1988-06-17 1989-06-16 複数のプロセッサを有する計算機システムの記憶制御装置 Expired - Lifetime JPH0754484B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP63-149446 1988-06-17
JP14944688 1988-06-17

Publications (2)

Publication Number Publication Date
JPH0277858A JPH0277858A (ja) 1990-03-16
JPH0754484B2 true JPH0754484B2 (ja) 1995-06-07

Family

ID=15475297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1152346A Expired - Lifetime JPH0754484B2 (ja) 1988-06-17 1989-06-16 複数のプロセッサを有する計算機システムの記憶制御装置

Country Status (3)

Country Link
US (1) US5475849A (ja)
JP (1) JPH0754484B2 (ja)
DE (1) DE3919802C2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0778786B2 (ja) * 1989-05-10 1995-08-23 株式会社日立製作所 記憶制御方式
JPH0520190A (ja) * 1991-07-10 1993-01-29 Koufu Nippon Denki Kk キヤツシユ無効化処理回路
JP2000259610A (ja) * 1999-03-04 2000-09-22 Nec Kofu Ltd ベクトルデータ処理装置およびマルチプロセッサ構成におけるベクトルデータ処理装置のメモリクリア方式
GB2350910A (en) * 1999-06-08 2000-12-13 Advanced Risc Mach Ltd Status bits for cache memory
US8924654B1 (en) * 2003-08-18 2014-12-30 Cray Inc. Multistreamed processor vector packing method and apparatus
US7213103B2 (en) 2004-04-22 2007-05-01 Apple Inc. Accessing data storage systems without waiting for read errors
US7523146B2 (en) 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US8495015B2 (en) 2005-06-21 2013-07-23 Apple Inc. Peer-to-peer syncing in a decentralized environment
US7797670B2 (en) 2006-04-14 2010-09-14 Apple Inc. Mirrored file system
US7860826B2 (en) 2006-08-04 2010-12-28 Apple Inc. Method and system for using global equivalency sets to identify data during peer-to-peer synchronization
JP5021978B2 (ja) * 2006-08-11 2012-09-12 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
US7657769B2 (en) 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
US11663118B2 (en) * 2021-03-10 2023-05-30 Infineon Technologies Ag Address vectors for data storage elements

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3618041A (en) * 1968-10-31 1971-11-02 Hitachi Ltd Memory control system
US3581291A (en) * 1968-10-31 1971-05-25 Hitachi Ltd Memory control system in multiprocessing system
US3588829A (en) * 1968-11-14 1971-06-28 Ibm Integrated memory system with block transfer to a buffer store
US3735360A (en) * 1971-08-25 1973-05-22 Ibm High speed buffer operation in a multi-processing system
JPS5440182B2 (ja) * 1974-02-26 1979-12-01
US4142234A (en) * 1977-11-28 1979-02-27 International Business Machines Corporation Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
JPS6093563A (ja) * 1983-10-27 1985-05-25 Hitachi Ltd バツフア記憶制御方式
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
JPS62285157A (ja) * 1986-06-04 1987-12-11 Hitachi Ltd 記憶制御方式
CH670715A5 (ja) * 1986-10-03 1989-06-30 Bbc Brown Boveri & Cie

Also Published As

Publication number Publication date
JPH0277858A (ja) 1990-03-16
DE3919802C2 (de) 1997-01-30
US5475849A (en) 1995-12-12
DE3919802A1 (de) 1989-12-21

Similar Documents

Publication Publication Date Title
CA1124888A (en) Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
US4493026A (en) Set associative sector cache
US5193163A (en) Two-level protocol for multi-component bus ownership, and implementation in a multi-processor cache write back protocol
US4394731A (en) Cache storage line shareability control for a multiprocessor system
US5140681A (en) Multi-processing system and cache apparatus for use in the same
US5696937A (en) Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
US5379394A (en) Microprocessor with two groups of internal buses
US4683533A (en) Storage control system using plural buffer address arrays
US5168560A (en) Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line
JPS6118222B2 (ja)
JPH0576060B2 (ja)
US5269009A (en) Processor system with improved memory transfer means
US5475849A (en) Memory control device with vector processors and a scalar processor
EP0365117B1 (en) Data-processing apparatus including a cache memory
JPH03225542A (ja) データ記憶方法及びビットエンコードデータの処理回路
US5603008A (en) Computer system having cache memories with independently validated keys in the TLB
EP0519685A1 (en) Address translation
WO1997004392A1 (en) Shared cache memory device
JPH06348593A (ja) データ転送制御装置
EP0442690A2 (en) Data cache store buffer for high performance computer
EP0271187B1 (en) Split instruction and operand cache management
JPS60701B2 (ja) デ−タ処理装置
JP2001051898A (ja) 階層キャッシュメモリのデータ参照方法、および、階層キャッシュメモリを含むデータ処理装置
JPS6329297B2 (ja)
JPH06103477B2 (ja) 並列キャッシュメモリ