JP3171639B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP3171639B2
JP3171639B2 JP06478192A JP6478192A JP3171639B2 JP 3171639 B2 JP3171639 B2 JP 3171639B2 JP 06478192 A JP06478192 A JP 06478192A JP 6478192 A JP6478192 A JP 6478192A JP 3171639 B2 JP3171639 B2 JP 3171639B2
Authority
JP
Japan
Prior art keywords
error
tag
flag
block
unit
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
JP06478192A
Other languages
English (en)
Other versions
JPH05265859A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP06478192A priority Critical patent/JP3171639B2/ja
Publication of JPH05265859A publication Critical patent/JPH05265859A/ja
Application granted granted Critical
Publication of JP3171639B2 publication Critical patent/JP3171639B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ストアイン方式のバッ
ファ記憶装置を備える1つ又は複数の中央処理装置が、
1つ又は複数の主記憶装置を共用するデータ処理装置に
おいて、バッファ記憶装置においてエラーが発生した時
に、処理を再開するためのバッファ記憶エラー処理方式
に関する。
【0002】
【従来の技術】従来、データ処理装置においては、例え
ば低速・大容量の記憶素子を用いた主記憶装置と、高速
・少容量の記憶素子を用いたバッファ記憶装置のように
記憶装置を階層化している。バッファ記憶装置は、主記
憶装置上のデータを細分化したブロックの写しを持ち、
処理装置から記憶装置に対する見かけ上のアクセスを高
速化している。
【0003】通常、バッファ記憶装置のマッピングに
は、セットアソシアティブ方式が用いられている。この
セットアソシアティブ方式では、前記ブロックのアドレ
スの一部を用いてアクセスされるライン上に複数のWA
Yを設け、その各WAYにデータ及びラインアドレスに
用いたビットを除くブロックアドレスを登録する。この
データを登録する部分をデータ部と呼び、ブロックアド
レスを登録する部分をタグ部と呼ぶ。
【0004】一方、バッファ記憶装置の制御には、大き
く分類して(1)ストアスルー方式と(2)ストアイン
(スワップ)方式の2つがある。 (1)ストアスルー方式では、フェッチアクセスにおい
ては、対象ブロックがバッファ記憶装置にない場合に
は、主記憶装置からバッファ記憶装置にブロックのムー
ブインを行い、ストアアクセスにおいては、バッファ記
憶装置にストア先のブロックがある場合には、バッファ
記憶装置と主記憶装置の両者にストアを行い、ストア先
のブロックがない場合には、主記憶装置のみにストアを
行う。 (2)これに対して、ストアイン方式では、フェッチア
クセス及びストアアクセス共に、バッファ記憶装置に対
象ブロックがなかった場合には、主記憶装置からムーブ
インを行い、ストアアクセスの時は、バッファ記憶装置
へのみストアを行う。そしてムーブインの際、置き換え
対象になるブロックが、過去にストアがなされたブロッ
クであった場合、あるいは主記憶装置を共有する他の処
理装置が、未だ主記憶装置にストアが反映されていない
ブロックを必要とした場合には、バッファ記憶装置から
主記憶装置への当該ブロックのムーブアウトを行う。
【0005】このような両方式を比較した場合に、
(1)ストアスルー方式は、ムーブアウト操作が不要で
あるから、ストアイン方式と比べて制御が簡単である。
また、バッファ記憶装置でエラーが発生しても、ストア
が反映された最新のデータが、主記憶装置にあるから、
バッファ記憶装置内のブロックを無効化するだけで、エ
ラーが発生した時の処理を行なうことができる。
【0006】しかし、処理装置によるストアアクセスが
ある毎に、主記憶装置に対するストアが発生するため、
特に主記憶装置を共有する処理装置が増加すると、主記
憶装置に対するアクセス待ち時間が増大するという問題
があった。このため、主記憶装置を共有する処理装置が
多い場合には、一般的には(2)ストアイン方式のバッ
ファ記憶装置を採用する。
【0007】しかし、バッファ記憶装置においてエラー
が発生した場合、最新のデータは、このバッファ記憶装
置にあるのみであるから、エラーが発生した時の処置に
おいてバッファ記憶装置内のブロックを無効化できない
という問題があった。また、前述したエラーとしては、
例えば半導体メモリでは、α線等の影響により、メモリ
に記憶した値が化けるソフトエラーが発生することがあ
る。このソフトエラー対策の1つとして、ECC(Erro
r Checking and Correction)コードをデータに付加す
ることが行われている。ECCの付加は、主記憶装置や
マイクロプログラムを格納しておく処理装置内のコント
ロールメモリ等へ広く適用されている。
【0008】しかしながら、データ部分の他のECCコ
ード部として余分な半導体メモリを必要とし、またEC
Cコードの生成あるいはECCコードによる誤り訂正の
ために、多くのハードウェアを必要とする。このため、
バッファ記憶装置を構成する上で物量制限がある場合に
は、このECCコードを用いるのは困難であった。
【0009】
【発明が解決しようとする課題】さらに、(2)ストア
イン方式の記憶装置においては、バッファ記憶装置に格
納されている内容は、主記憶装置の内容とは無関係に変
更されている可能性がある。このため、バッファ記憶装
置でエラーが発生した時は、バッファ記憶装置内でエラ
ーを訂正して再アクセス可能な状態にしなければならな
い。
【0010】あるいは、エラーを訂正してバッファ記憶
装置の内容を主記憶装置に戻し、バッファ記憶装置を無
効化する必要があった。しかし、戻すべき主記憶上の位
置を示す情報そのものが壊れていた場合には、バッファ
記憶装置の内容を主記憶装置に戻すことができなかっ
た。このため、処理を続行できないから、ハードエラー
として割り込みをかけることにより、処理を続行するよ
うにしていた。
【0011】本発明の目的は、バッファ記憶装置にエラ
ーが発生した場合であっても、ムーブアウトまたはブロ
ックの無効化を行い、エラーの発生状態を回避すること
のできるバッファ記憶エラー処理方式を提供することに
ある。
【0012】
【課題を解決するための手段】本発明は前記課題を解決
するために次のような構成とした。図1は本発明の原理
図である。図1において、記憶制御ユニット13は、命
令制御ユニット11からの要求により流れるメインパイ
プラインに同期してアクセスされデータを登録するデー
タ部14bと、エントリーを管理するとともに、ブロッ
クアドレスを登録する第1のタグ部14と、他の装置か
らの要求によりアクセスされ且つ前記第1のタグ部14
と同一内容を有する第2のタグ部15とを備えている。
【0013】前記第1のタグ部14及び第2のタグ部1
5は、そのブロックが変更可能であることを示す排他フ
ラグEと、そのブロックが変更されたことを示す変更フ
ラグCと、そのブロックの主記憶上のアドレスの一部を
示すアドレス部の各々について、エラーを検出した場合
に、どの部分のエラーかを発見可能にすべく、独立にパ
リティビットを有している。
【0014】前記第1のタグ部14でエラーが検出され
そのエラーがアドレス部のものである場合は、排他フラ
グ(E)と前記変更フラグCがオンである場合に、前記
第2のタグ部15の情報を用いてムーブアウトを行うよ
う構成した。より好適には、以下のようにするのが望ま
しい。すなわち、前記第2のタグ部15でエラーが検出
されそのエラーがアドレス部のものである場合は、排他
フラグ(E)と前記変更フラグCがオンである場合に、
前記第1のタグ部14の情報を用いてムーブアウトを行
うよう構成する。
【0015】また、前記第1のタグ部14または前記第
2のタグ部15にエラーが発生し、前記排他フラグEに
エラーがなく、かつ排他フラグEがオフである場合に、
そのブロックの無効化を行うよう構成する。さらに、前
記第1のタグ部14にエラーが発生した時、そのエラー
が排他フラグ(E)もしくは変更フラグ(C)のもので
あった場合、前記第2のタグ部15のアクセスにおい
て、前記排他フラグEがオフであった時は、当該ブロッ
クの無効化を行い、前記第2のタグ部15にエラーが発
生した時、そのエラーが排他フラグ(E)または変更フ
ラグ(C)ものであった場合、前記第1のタグ部14の
アクセスにおいて、前記排他フラグEがオフであった時
は、当該ブロックの無効化を行うよう構成する。
【0016】
【作用】本発明によれば、中央処理装置内の命令制御ユ
ニットIU11からの要求においてアクセスされる第1
のタグ部、記憶制御装置からの要求においてアクセスさ
れる第1のタグ部と同一内容を持つ第2のタグ部を有す
るストアイン方式のバッファ記憶において、一方のタグ
部でエラーが検出された場合には他方のタグ部の情報を
参照して主記憶装置上にムーブアウトを行うので、エラ
ー時の処理が行える。
【0017】また、各タグ部で排他フラグE、変更フラ
グCにエラーがなく、かつそのブロックが未変更の状態
である時、単に当該ブロックを無効化することで、エラ
ー処理が行える。また、一方のタグ部の排他フラグE、
変更フラグCでエラーが検出された場合の他方のタグア
クセスにおいて、当該ブロックが未変更であった場合に
も、単に当該ブロックを無効化することで、エラー時の
処理を行える。
【0018】このように、独立した処理装置のパイプラ
インに同期させて使用するために設けた2つのタグ部が
同一内容を有することに着目して、エラー時の処理に用
いることで、継続して処理できるという画期的な効果を
奏する。
【0019】
【実施例】以下、本発明の具体的な実施例について説明
する。図2は本発明に係るバッファ記憶エラー処理方式
を実現するためのマルチプロセッサシステムによるデー
タ処理装置の一実施例の構成ブロック図である。図2に
おいて、6つの中央処理装置(CPU0〜CPU5)1は、記憶
制御装置3を介して主記憶装置MSU2に接続され、各中
央処理装置(CPU0〜CPU5)1が主記憶装置MSU2を共有
するようになっている。
【0020】主記憶装置MSU2内の主記憶データは、各
中央処理装置(CPU0〜CPU5)1毎に、後述するローカル
バッファストレッジLBS16にムーブインしている。例
えば中央処理装置CPU0,CPU2は、主記憶上の同じデータ
を後述するローカルバッファストレッジLBS16にムー
ブインし、共有状態となっている。また、中央処理装置
CPU1,CPU3 ,CPU4は、主記憶上のそれぞれ違うデータを
ローカルバッファストレッジLBS16にムーブインし、
排他状態となり、中央処理装置CPU5は、主記憶上のある
データをローカルバッファストレッジLBS16にムーブ
インし、更新状態となっている。なお、中央処理装置1
は1つであってもよい。
【0021】図3に、各々の中央処理装置CPU1の詳細
な構成及びその周辺回路を示す。中央処理装置CPU1
は、中央処理装置CPU1のパイプライン全体の制御とバ
ッファをアクセスするためのアドレス計算を行なう命令
制御ユニットIU11と、演算実行ユニットEU12、記憶
制御ユニットSU13からなる。記憶制御ユニットSU13
は、ストアバッファ17、TAG1部14とTAG2部
15とLBSデータ部14bを有するローカルバッファ
ストレッジLBS16、MCUオーダスタックMOS18、ム
ーブアウトバッファ19、MCUオーダ完了報告バッフ
ァMRB20を有し、命令制御ユニットIU11からのメモ
リアクセスに際し、必要とするブロックが、LBSデー
タ部14b上に存在するかどうかを判断し、ここに対象
とする主記憶データのブロックが存在する場合には、如
何なる状態で何処に存在しているのかを調べるためにT
AG1部14を検索し、その結果を命令制御ユニットIU
11に報告する。
【0022】TAG1部14は、命令制御装置IU11か
らの要求により流れるメインパイプラインに同期してア
クセスされエントリを管理する。TAG2部15は、T
AG1部14と同一内容を持ち、記憶制御装置MCU3か
らの要求により流れるTAG2パイプラインに同期して
アクセスされ、ムーブアウト要求(MO要求)やバッフ
ァ無効化要求(BI要求)の処理等で用いる。本実施例
では、これら2つのTAG部14、15が、同一内容を
持つことに着目して、互いの情報を参照してバッファ記
憶エラー時の処理を行うことを特徴としている。
【0023】<ローカルバッファストレッジLBS16の
構成>図4に、ローカルバッファストレッジLBS16の
詳細な構成図を示す。ローカルバッファストレッジLBS
16は、アドレスレジスタTLAR22、アドレスレジ
スタBLAR23、LDS TAG部14、LBSデー
タ部14b、比較器25、31、タグマッチ部26、ア
ラインセレクタ27、ワードレジスタ28を有してい
る。
【0024】図5に、TAG1部14の構成の例を示
す。TAG1部14は、例えばブロックサイズを64バ
イトとし、1つの連想レベル(WAYまたはウェイ)が
64エントリーを有するとすれば、4KBの容量を有す
るから、8つの連想レベルでは、32KBの容量を有す
ることになる。このエントリーは、例えばLRU方式に
従って、参照頻度の低いものから主記憶装置MSU2に追い
出されるようになる。
【0025】図6に、TAG1部14のエントリーの内
容を示す。64バイトのブロックに対応して1つのエン
トリーが設けられている。1つのエントリーは、そのブ
ロックが有効であることを示す有効フラグVとそのパリ
ティVP、その中央処理装置CPU1がそのブロックを他
の中央処理装置に対して排他的に持っていることを示す
排他制御フラグEとそのパリティEP、そのブロックに
対するストアが行われたことを示す変更フラグCとその
パリティCP、そのブロックの主記憶装置MSU2上のア
ドレスの一部(例えばブロックのアドレスであるビット
1〜25の内、TAGの読み出しに用いるビット20〜
25を引いた残り)を示すアドレスビット(1〜19)
とそのパリティP0〜P2で構成される。
【0026】なお、排他制御フラグEは、該ブロックへ
の書き込みが可能または不可能かを示し、変更フラグC
は、該ブロックがバッファ記憶にムーブインされてきた
時から未変更または変更(更新)かを示す。主記憶装置
MSU2上のブロックの写しは、そのブロックのアドレス
ビット20〜25で選択される1つのライン上にある8
WAYの内、任意のWAYに置かれる。どのWAYに置
くかは、LRU(Least Recently Used)アルゴリズム
等によって決められる。
【0027】TAG1部14の各出力は、各WAY毎に
設けられた8つの比較器25に入力し、また、各比較器
25には、TLAR22から変換バッファTLBTLB2
4,比較器31を介してアドレスビット1〜19ビット
が入力するようになっている。 なお、TAG2部15
は、図5及び図6に示すようにTAG1部14と同一内
容で構成されている。
【0028】図4に示すLBSデータ部14bは、TA
G1部14に該当するブロックが存在する場合に、TA
G1部14に登録されている該アドレスデータによって
アクセスされ、所望のブロックを読み出してブロック内
のデータを演算制御ユニットEU12へ送り、その事実
を命令制御ユニットIU11へ報告する。 <メインパイプラインに沿った各回路の動作>次に、図
7に、メインパイプラインに沿った各回路の動作の流れ
を示す。図6及び図7を参照してメインパイプラインの
各回路の動作を説明する。
【0029】<Tサイクル(変換バッファ及びTAGア
クセス)>Tサイクル(変換バッファ及びTAGアクセ
ス)では、アドレスレジスタTLAR22の論理アドレスビ
ット20〜25を用いて、TAG1部14からTAG1
を読み出す。TAG1部14から有効フラグVがオン
(V=1)であって、アドレスビット(1〜19、P0
〜P2)が一致するWAYを探す。
【0030】以下、これを詳細に説明する。命令制御ユ
ニットIU11から送られてくるビット1からビット31ま
での論理アドレスは、TLAR22にセットされ、これ
と並行して下位アドレスのビット0〜ビット19が、変
換バッファTLB24のアクセスのためのラインアドレス
として変換バッファTLB24に入力される。このライン
アドレスの入力に応答して、変換バッファTLB24から
プライマリとオルタネイトの2つのエントリーが同時に
読み出され、比較器31により、読み出される論理アド
レスとEAR22のビット1〜12とが比較される。
【0031】TAG1部14は、命令制御ユニットIU1
1から送られてくる論理アドレスのビット20〜25に
よりアクセスされる。仮想アドレス方式では、4Kバイ
ト単位のページアドレス変換を採用する場合には、下位
ビット1〜19はアドレス変換の対象となるが、ビット
20から31は論理アドレスと実アドレスとが同じにな
る。
【0032】従って、命令制御ユニットIU11から送ら
れる論理アドレスのビット20〜25は、実アドレスと
して、LBSデータ部14bをアクセスするために用い
られる。TAG1部14は、LBSデータ部14bに合
わせて、ウェイ0からウェイ7までの8つの連想レベル
から構成され、論理アドレスのビット20〜25の入力
に応答して、ウェイ0からウェイ7に格納されている8
個の実アドレス情報を読み出していく。
【0033】そして、8×2個備えられている比較器2
5により、TAG1部14から読み出される実アドレス
と、変換バッファTLB24から読み出される実アドレス
とが比較される。ここで、比較器25は、比較器31に
より実行される変換バッファTLB24の論理アドレスの
比較結果を待たずに、実アドレスの比較処理に入ること
で、TAG1部14の検索を高速に行なうよう処理す
る。
【0034】<Bサイクル(バッファアクセス)>Bサ
イクル(バッファアクセス)では、アドレスレジスタBL
AR23から読み出したアドレス(アドレスレジスタTLAR
22のアドレスと同値)によって、LBSデータ部14
Bbを読み出す。全WAYが同時に読み出されるが、ア
ラインセレクタ27は、この比較器31の比較結果と比
較器25の比較結果とを入力して、その比較結果が共に
成立するか否かをチェックすることで、命令制御ユニッ
トIU11から送られてきた論理アドレスがTAG1部1
4のどのウェイに存在するのかを特定する。
【0035】さらに、アラインセレクタ27は、特定し
たウェイから出力されているLBSデータ部14bのブ
ロックを選択し、決定した格納形式に従って、ワードレ
ジスタ28に選択したブロックを格納していく処理を実
行する。このようにして、ワードレジスタ28に格納さ
れた主記憶データの命令語/オペランドデータは、命令
制御ユニットIU11と、演算制御ユニットEU12に送
られ、命令のデコードや演算用オペランドデータとして
使用される。
【0036】次に、図3に示す構成の説明に戻す。命令
制御ユニットIU11は、前記データが送られてきた旨を
演算実行ユニットEU12へ報告する。演算実行ユニット
EU12は、命令制御ユニットIU11からの要求に基づき
加減乗除算等の処理(演算)を行なって、処理後のデー
タをストアバッファSTB17へ送出する。なお、ローカ
ルバッファストレッジLBS16への登録は、ストアバッ
ファSTB17経由して行われる。
【0037】MCUオーダスタックMOS18は、記憶制
御装置MCU3からのムーブアウト要求や、バッファ無効
化要求を複数個スタックし、その要求に基づいてTAG
2部15をアクセスするものであって、内部はインポイ
ンタまたはアウトポインタによって記憶制御装置MCU3
からの要求の書き込みまたは取り出しを制御している。
前記TAG2部15は、メインパイプラインとは別に、
記憶制御装置MCU3からのオーダ処理において対象ブロ
ックが、LBSデータ部LBS14b上に存在するか否か
を検索する(これをTAG2パイプラインと呼ぶ)。よ
って、TAG2のパイプラインは、MCUオーダスタッ
クMOS18からのリクエストによって流れる。
【0038】ムーブアウトバッファMOB19は、記憶制
御装置MCU3からムーブアウトリクエストがあり、TA
G2部15に対象ブロックが存在した場合には、LBS
データ部16から当該ブロックを取り込んで記憶し、さ
らに記憶制御装置MCU3へムーブアウトさせる。MCU
オーダ完了報告バッファMRB20は、TAG2部15に
対象ブロックが存在しなかった場合には、ブロックなし
の旨を取り込んで記憶し、さらに記憶制御装置MCU2へ
報告する。また、主記憶装置MSU2からバッファ無効化
リクエストがあり、TAG2部15がヒットした時はブ
ロックの無効化を行い、MCUオーダ完了報告バッファ
MRB20を通して記憶制御装置MCU2へ報告する。
【0039】<実施例のLBS TAG部の制御部の動
作>図8に、LBS TAG1部の制御部の構成を示
す。TAG1内の制御部は、TAG2内の制御部と同一
の構成であり、TAG1内の制御部の構成のみを示す。
TAG1内の制御部は、次のように構成される。エラー
検出部41は、TAG1部14からエラーを検出し、検
出出力を更新部51、排他部52、共有部53、無効部
54に供給する。
【0040】更新フラグ検出部42は、TAG1部14
にセットされた変更フラグCが”1”であるか否かを検
出し、排他フラグ検出部43はTAG1部14にセット
された排他フラグが”1”であるか否かを検出し、有効
フラグ検出部44は、TAG1部14にセットされた有
効フラグが”1”であるか否かを検出する。実施例のよ
うなストアイン方式のバッファ記憶においては、バッフ
ァ記憶TAG1部14,TAG2部15にエントリされ
ている有効フラグV、排他制御フラグE、変更フラグC
の値によってバッファ記憶内のブロックの状態は次のよ
うになる。 (a)無効回路54は、エラー検出部41の出力,更新
フラグ検出部42からの変更フラグC”0”,排他フラ
グ検出部43からの排他フラグE”0”,有効フラグ検
出部44からの有効フラグV”0”を入力することで、
ブロックの無効化を行うためのBI起動部35を起動さ
せる。
【0041】つまり、有効フラグV,排他制御フラグ
E,変更フラグCの全てが”0”である場合、バッファ
記憶上にデータが存在しない状態(無効状態)となる。 (b)排他回路52は、エラー検出部41の出力,更新
フラグ検出部42からの変更フラグC”0”,排他フラ
グ検出部43からの排他フラグE”1”,有効フラグ検
出部44からの有効フラグV”1”を入力することで、
BI起動部35を起動させる。
【0042】つまり、有効フラグV及び排他制御フラグ
Eが”1”であって、変更フラグCが”0”である場
合、バッファ記憶上にデータが存在し、そのデータはム
ーブインされてきた時のまま未変更で、かつ該システム
中の自CPUによって変更可能である状態(排他状態)
となる。 (c)共有回路53は、エラー検出部41の出力,更新
フラグ検出部42からの変更フラグC”0”,排他フラ
グ検出部43からの排他フラグE”0”,有効フラグ検
出部44からの有効フラグV”1”を入力することで、
BI起動部35を起動させる。
【0043】つまり、有効フラグVが”1”であって、
排他制御フラグE及び変更フラグCが”0”である場合
には、バッファ記憶上にデータが存在し、そのデータは
ムーブインされてきた時のまま未変更で、かつ変更不可
能な状態(共有状態(非排他状態))となる。 (d)更新回路51は、エラー検出部41の出力,更新
フラグ検出部42からの変更フラグC”1”,排他フラ
グ検出部43からの排他フラグE”1”,有効フラグ検
出部44からの有効フラグV”1”を入力することで、
ブロックをムーブアウトするためのMO起動部33を起
動させる。
【0044】つまり、有効フラグV,排他制御フラグ
E,変更フラグCの全てが”1”である場合には、バッ
ファ記憶上にデータが存在し、そのデータは自CPUの
ストアによって更新されている状態(更新状態)とな
る。(この場合、当該データは必ず自CPUのみが保持
している)。 <TAG1部のエラー発生時におけるムーブアウトの動
作説明>次に、TAG1部にエラーが発生した場合のム
ーブアウトを説明する。図9に、中央処理装置CPU51の
TAG1部14にエラーがあった場合のムーブアウト動
作のタイムチャートを示す。ここで、中央処理装置CPU5
1としたのは、バッファ記憶装置のTAG1部14の制
御情報として、排他フラグE”1”、変更フラグC”
1”が登録され、更新状態となっているからである。
【0045】図9のTサイクル(EXT)において、命令
制御ユニットIU11からEXTリクエストが送られてくる
と、アドレスレジスタTLAR22の値(00001000)によっ
て、TAG1部14がアクセスされ、TAG1部14に
エラーがあるか否かをチェックする。エラーがあれば、
比較器25及びタグマッチ部26によりTAG1マッチ
およびTAG1エラーが検出される。
【0046】ここでは例えば、WAY6にエラーがあっ
たとすると、次にRサイクルでLMD信号が立ち、R
(Result:結果報告)サイクルの次のタイミング(Pサ
イクル)で、エラーが検出された該リクエストは、エラ
ーポートに入れられて待たされる(WAIT ID=LBS ERRO
R)と共に、エラーポートにおいてTAG1部14でエ
ラーが発生したことを示すフラグが有効になる(タグエ
ラーバリッドV)。
【0047】そこで、WAY6がムーブアウトの対象と
して、TAG1部14のエラーによるムーブアウトのリ
クエスト(MO)が、16バイトずつ4回に分けて64バ
イトデータを読み出すべく、Tサイクル〜Bサイクル〜
Rサイクル〜Pサイクルと4回だけ流され、エラーのあ
ったWAY番号を該リクエスト中、保持する。一方、T
AG1部14からエラーのあったWAY6を読み出す
と、制御情報として、排他制御フラグE”1”,変更フ
ラグC”1”から当該ブロックが更新されているので、
ムーブアウトを行い、最新内容を主記憶装置MSU2へ反
映しなければならないことがわかる。
【0048】また、TAG1部14からそのムーブアウ
トすべきアドレス部のアドレス(00*E2000)を読み出す
と、該アドレスにエラーがあることがわかる(アドレス
中の*部分)。一方、TAG1部14の読み出しと同時
に、TAG1と同一内容を持つTAG2内のWAY6を
参照すると(アドレスレジスタTLAR2bの値00001000に
よってアクセス)、TAG1部14で破壊されていたア
ドレスが正しい内容(000E2000)で登録されていること
がわかる。
【0049】そこで、当該ブロックをムーブアウトする
ために、記憶制御装置MCU3からMCUオーダスタックM
OS18を介して、TAG2部15に登録されているアド
レスを用いることが指示され(SELECT FOR BMOAR)、B
MOARへ該アドレスが送られる。ムーブアウトバッフ
ァMOS19内のムーブアウトアドレスレジスタMOAR
へ該アドレスが、ムーブアウトデータレジスタMODR
へは該アドレスによって読み出されたデータがセットさ
れ、該データはその後に、主記憶装置MSU2にムーブア
ウトされる。
【0050】また、ムーブアウトの最後のリクエスト
(MO4th)のTサイクルで、TAG1部14及びTAG
2部15の当該ブロックの有効フラグVが、”0”にセ
ットされる。なお、ムーブアウトリクエスト(MO1st)
が完了次第、先ほど待たされていた命令制御ユニットIU
11からのリクエストが再度流される(INT)が、今度
はエラーが検出されず、該リクエストが正常に受け付け
られる。
【0051】また、求めるデータがエラーのあったWA
Yであった場合には、該データは無効化(BI)されて
いるので、再度ムーブインしてくることになる。 <TAG2部のエラー発生時におけるムーブアウトの動
作説明>図10に、中央処理装置CPU51のTAG2部1
5にエラーがあった場合のムーブアウト動作のタイムチ
ャートを示す。記憶制御装置MCU3からのリクエスト(S
RA)がMCUオーダスタックMOS18を通して出される
と、アドレスレジスタTLAR22の値(00001000)によっ
て、TAG2部15がアクセスされ、TAG2マッチお
よびTAG2エラーが検出される。
【0052】ここでは例えばWAY6でエラーがあった
とすると、Rサイクルの次のタイミングでWAY6がム
ーブアウトの対象として、TAG2エラーによるムーブ
アウトのリクエスト(MOE)からPサイクル〜Tサイク
ル〜Bサイクル〜Rサイクルと4回流されると共に、エ
ラーポートにおいてTAG2部15でエラーが発生した
ことを示すフラグが有効になり(TAG2 ERROR VALID)、
エラーのあったWAY番号を該リクエスト中、保持す
る。
【0053】一方、TAG2からエラーのあったWAY
6を読み出すと、制御情報として、排他制御フラグE
を”1”、変更フラグCを”1”から当該ブロックが更
新されているので、バッファ制御部21の更新部51が
動作する。さらにMO起動部33が起動するので、ムー
ブアウトを行い、最新内容を主記憶装置MSU2へ反映し
なければならないことがわかる。
【0054】また、そのムーブアウトすべきアドレス
(00*E2000)を読み出すと、該アドレスにエラーがある
ことがわかる(*の部分)。また、TAG2アクセスと
同時にTAG2と同一内容を持つTAG1内のWAY6
を参照すると(TLARによってアクセス)、TAG2部1
5で破壊されていたアドレスが正しい内容(000E2000)
で登録されていることがわかる。
【0055】よって、当該ブロックをムーブアウトする
ために、TAG1部14に登録されているアドレスを用
いることが指示され(SELECT FOR BMOAR)、BMOAR
へ該アドレスが送られる。そして、ムーブアウトバッフ
ァMOS19内のムーブアウトアドレスレシズタMOARへ該
アドレスが、ムーブアウトデータレジスタMODRへは該ア
ドレスによって読み出されたデータがセットされ、該デ
ータはその後、8バイトストアとして主記憶装置MSU2
にムーブアウトされる。
【0056】また、ムーブアウトの最後のリクエスト
(MO4th)のTサイクルでTAG1部14及びTAG2
部15の当該ブロックの有効フラグがオフにセット(V
=1→V=0)される。その後、再度記憶制御装置MCU
3からのリクエスト(SRA)がMCUオーダスタックMOS
18から流されるが、今度はエラーが検出されず、該リ
クエストが正常に受け付けられる。
【0057】以上説明したように、例えば中央処理装置
CPU51のTAG1部14をアクセスした時にエラーが検
出され、そのエラーがアドレス部のエラーであり、エラ
ーがあったブロックが排他フラグEを”1”,変更フラ
グCを”1”に、すなわち、更新状態であった時は、上
述したようにTAG2部15を参照してTAG2部15
内の正常なアドレス値を用いて、ムーブアウトを行うこ
とができる。
【0058】また、TAG2部15をアクセスした時に
エラーが検出され、そのエラーがアドレス部のエラーで
あり、エラーがあったブロックが更新状態(E=1,C
=1)であった時は、TAG1部14を参照してTAG
1部14内の正常なアドレスを用いて該ブロックのムー
ブアウトが行える。 (2)<実施例におけるバッファ無効時のハードウェア
の動作>次に、実施例におけるバッファ無効時のハード
ウェアの動作について説明する。図11に、実施例にお
けるTAG1部のアドレス部にエラーが発生した時の処
理フローチャートを示す。
【0059】バッファ記憶エラー処理方式を採用するバ
ッファ記憶において、今、ステップS1で、命令制御装
置IU11からのリクエスト(EXT)で、ステップS2
で、TAG1部14をアクセスすると、ステップS3
で、アドレス部においてエラーが検出されたとする。そ
の場合に、ステップS5で、TAG2部15内に有する
同一ブロックを参照しにいく。この時に、TAG1部1
4内の当該ブロックの制御情報として、ステップS6
で、有効フラグVが”1”であって、ステップS7で、
排他フラグEが”1”であるとする。さらに、ステップ
S8で、変更フラグCにエラーがなく、かつ該ブロック
が未変更(C=0)であったとする。
【0060】すなわち、中央処理装置CPU1,CPU3,CPU4の
TAG1部14と同様に、排他フラグE”1”、変更フ
ラグ”0”が登録されており、これらの中央処理装置の
いずれかのTAG1部14のアドレス部にエラーがあっ
た場合である。すると、ステップS9で、TAG1部内
の制御部における排他部52が動作し、排他状態である
ことが判明し、BI起動部35が起動するので、よっ
て、当該ブロックをムーブアウトする必要がなく、ステ
ップS10で、バッファ無効化を行なう。
【0061】すなわち、このような場合には、図9にお
ける4回のムーブアウトリクエスト(MO)を行なう代わ
りに、バッファ無効化リクエスト(BI)が1回流され、
本リクエストのTサイクルで(ステップS11)、TA
G1部14及びTAG2部15の当該ブロックの有効フ
ラグVがオフにセット、すなわちVが”1”から”0”
に変更される。
【0062】同様にして、記憶制御装置MCU3からのリ
クエスト(SRA)が、MCUオーダスタックMOS18を通
して出され、TAG2部15がアクセスされた時に、ア
ドレス部においてエラーが検出された場合、そのブロッ
クの制御情報部として、排他フラグE,変更フラグCに
エラーがなく、かつ未変更(Cが”0”)であったなら
ば、当該ブロックはムーブアウトをする必要がない。
【0063】よって、ムーブアウトリクエスト(MOE)
の代わりに、バッファ無効化リクエスト(BI)が1回流
され、本リクエストのTサイクルで、TAG1部14及
びTAG2部15の当該ブロックの有効フラグがオフに
セット、すなわちバリッドビットVが”1”から”0”
に変更される。このように、ムーブアウトする必要がな
い場合、つまり当該ブロックが更新されていない場合に
は、単に当該ブロックを無効化することによって、エラ
ー処理ができる。
【0064】なお、ステップS6で、有効フラグVが”
0”である場合には、ステップS12で、無効状態とな
り、ステップS10で、バッファ無効化を行なう。ま
た、有効フラグVが”1”であって、排他フラグEが”
0”である場合、すなわち、中央処理装置CPU0,CPU2の
TAG1部14の制御情報の場合のように、CPU0とCPU2
とが同一内容を保持している場合には、ステップS13
で、TAG1内の制御部における共有部53が動作し、
共有状態であることが判明する。さらにBI起動部33
が起動して、ステップS10で、バッファ無効化を行な
う。
【0065】さらに、有効フラグVが”1”であって、
排他フラグEが”1”であり、且つ変更フラグCが”
1”である場合には、図9で説明したように、ステップ
S14で、更新状態となり、ステップS15で、ムーブ
アウトを行なう。 (3)<実施例におけるバッファ無効時のハードウェア
の動作>次に、実施例のハードウェアの動作について説
明する。図12に、TAG1部14の排他フラグE等を
登録した制御情報部に、エラーが発生した時の処理フロ
ーチャートを示す。
【0066】バッファ記憶において、ステップS22
で、TAG1部14をアクセスした時にエラーが検出さ
れ、ステップS23で、そのエラーが制御情報部におけ
る、排他制御フラグE,変更フラグCに発生した時は、
エラーがあったブロックが更新されているかどうかが不
明ではある。しかし、処理の効率上とりあえず、ステッ
プS25で、該ブロックのデータを正常なアドレス部の
値と共に、ムーブアウトバッファMOB19へ送ってお
く。ステップS26で、有効フラグVを”0”にセット
し、そしてTAG2部15の該エラーのあったブロック
と同ブロックを参照する。
【0067】このTAG2部15の制御情報部にエラー
が検出されず、ステップS28で、当該ブロックの状態
が未変更状態(C=0)であった場合には、ステップS
29で、主記憶装置MSU2へ反映する必要がなく、すな
わち、ムーブアウトしない。よって、単にムーブアウト
バッファMOB19内の当該ブロックの無効化がすでに行
われ、該当ブロックを主記憶装置2へ送らないことで、
エラー処理が可能になる。
【0068】同様にして、TAG2部15アクセス時に
エラーが検出された時もTAG1部14の時と同様の処
理でエラーの対処を行える。
【0069】
【発明の効果】本発明によれば、中央処理装置からの要
求においてアクセスされる第1のタグ部、記憶制御装置
からの要求においてアクセスされる第1のタグ部と同一
内容を持つ第2のタグ部を有するストアイン方式のバッ
ファ記憶において、一方のタグ部でエラーが検出された
場合には他方のタグ部の情報を参照して主記憶装置上に
ムーブアウトを行うことで、エラーが発生した時の処理
を行える。
【0070】また、各タグ部で排他フラグE、変更フラ
グCにエラーがなく、かつそのブロックが未変更の状態
である時、単に当該ブロックを無効化することで、エラ
ー処理が行える。また、一方のタグ部の排他フラグE、
変更フラグCでエラーが検出された場合は他方のタグア
クセスにおいて、当該ブロックが未変更であった場合に
も、単に当該ブロックを無効化することで、エラー時の
処理を行える。
【0071】このように、独立した処理装置のパイプラ
インに同期させて使用するために設けた2つのタグ部が
同一内容を有することに着目して、エラー時の処理に用
いることで、継続して処理できるという画期的な効果を
奏する。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】発明を実装するデータ処理システムの一実施例
を示す図である。
【図3】本発明の実施例の構成ブロック図である。
【図4】ローカルバッファストレッジLBSの構成を示す
図である。
【図5】TAG1部の構成の例を示す図である。
【図6】実施例におけるバッファ記憶TAG部の構成図
である。
【図7】メインパイプラインに沿った各回路の動作の流
れを示す図である。
【図8】実施例におけるLBS TAG(内の)制御部
の構成を示す図である。
【図9】実施例におけるTAG1部にエラーが発生した
時のムーブアウト動作のタイムチャートである。
【図10】実施例におけるTAG2部にエラーが発生し
た時のムーブアウト動作のタイムチャートである。
【図11】実施例におけるTAG1部のアドレス部にエ
ラーが発生した時の処理のフローチャートである。
【図12】実施例におけるTAG1部の制御情報にエラ
ーが発生した時の処理のフローチャートである。
【符号の説明】
1・・中央処理装置CPU 2・・主記憶装置MSU 3・・記憶制御装置MCU 11・・命令制御ユニットIU 12・・演算実行ユニットEU 13・・記憶制御ユニットSU 14・・TAG1部 14b・・LBSデータ部 15・・TAG2部 16・・ローカルバッファストレッジLBS 17・・ストアバッファSTB 18・・MCUオーダスタックMOS 19・・ムーブアウトバッファMOB 20・・MCUオーダ完了報告バッファMRB 22・・アドレスレジスタTLAR 23・・アドレスレジスタBLAR 28・・ワードレジスタOWR 41・・エラー検出部PCHK 42・・更新フラグ検出部CCHK 43・・排他フラグ検出部ECHK 44・・有効フラグ検出部VCHK 33・・MO(ムーブアウト)起動部 35・・BI(バッファ無効化)起動部
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭58−6597(JP,A) 特開 昭56−117400(JP,A) 特開 昭64−12348(JP,A) 特開 平3−269743(JP,A) 特開 昭54−76023(JP,A) 特開 昭57−113493(JP,A) 特開 平1−298453(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 - 12/12 G06F 12/16

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 トアイン方式のバッファ記憶装置を
    える1つ又は複数の中央処理装置が、1つ又は複数の主
    記憶装置を共用するデータ処理装置において、 前記バッファ記憶装置は、前記中央処理装置からの要求
    によりアクセスされデータを登録するデータ部と、エン
    トリーを管理するとともに、ブロックアドレスを登録す
    る第1のタグ部と、他の装置からの要求によりアクセス
    され且つ前記第1のタグ部と同一内容を有する第2のタ
    部とを備え、 前記第1のタグ部及び第2のタグ部は、そのブロックが
    変更可能であることを示す排他フラグと、そのブロック
    が変更されたことを示す変更フラグと、そのブロックの
    主記憶上のアドレスの一部を示すアドレス部の各々につ
    いて独立にパリティビットを有し、前記バッファ記憶装置は、 前記第1のタグ部でエラーが
    検出され前記変更フラグがオンである場合に、前記第2
    のタグ部の情報を用いてムーブアウトを行い、前記第1
    のタグ部でエラーが検出されそのエラーが排他フラグも
    しくは変更フラグのエラーであった場合に、前記第2の
    タグ部へのアクセスにおいて前記排他フラグがオフであ
    った時は、当該ブロックの無効化を行うことを特徴とす
    データ処理装置
  2. 【請求項2】 前記バッファ記憶装置は、前記第2のタ
    部でエラーが検出され前記変更フラグがオンである場
    合に、前記第1のタグ部の情報を用いてムーブアウトを
    い、 前記第2のタグ部でエラーが検出されそのエラーが排他
    フラグもしくは変更フラグのエラーであった場合に、前
    記第1のタグ部へのアクセスにおいて前記排他フラグが
    オフであった時は、当該ブロックの無効化を行 うことを
    特徴とする請求項1記載のデータ処理装置
  3. 【請求項3】 ストアイン方式のバッファ記憶装置を備
    える1つ又は複数の中央処理装置が、1つ又は複数の主
    記憶装置を共用するデータ処理装置において、 前記バッファ記憶装置は、前記中央処理装置からの要求
    によりアクセスされデータを登録するデータ部と、エン
    トリーを管理するとともに、ブロックアドレスを登録す
    る第1のタグ部と、他の装置からの要求によりアクセス
    され且つ前記第 1のタグ部と同一内容を有する第2のタ
    グ部とを備え、 前記第1のタグ部及び第2のタグ部は、そのブロックが
    変更可能であることを示す排他フラグと、そのブロック
    が変更されたことを示す変更フラグと、そのブロックの
    主記憶上のアドレスの一部を示すアドレス部の各々につ
    いて独立にパリティビットを有し、 前記バッファ記憶装置は、 前記第1のタグ部でエラーが
    検出され、前記排他フラグ及び変更フラグがオンである
    場合に、第2のタグ部の情報を用いてムーブアウトを行
    い、前記第1のタグ部でエラーが検出されそのエラーが
    排他フラグもしくは変更フラグのエラーであった場合
    に、前記第2のタグ部へのアクセスにおいて排他フラグ
    がオフであった時は、当該ブロックの無効化を行うこと
    を特徴とするデータ処理装置
  4. 【請求項4】 前記バッファ記憶装置は、前記第1のタ
    部または前記第2のタグ部にエラーが発生し、前記排
    他フラグにエラーがなく、かつ排他フラグがオフである
    場合に、そのブロックの無効化を行うことを特徴とする
    請求項1記載のデータ処理装置
JP06478192A 1992-03-23 1992-03-23 データ処理装置 Expired - Lifetime JP3171639B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06478192A JP3171639B2 (ja) 1992-03-23 1992-03-23 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06478192A JP3171639B2 (ja) 1992-03-23 1992-03-23 データ処理装置

Publications (2)

Publication Number Publication Date
JPH05265859A JPH05265859A (ja) 1993-10-15
JP3171639B2 true JP3171639B2 (ja) 2001-05-28

Family

ID=13268106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06478192A Expired - Lifetime JP3171639B2 (ja) 1992-03-23 1992-03-23 データ処理装置

Country Status (1)

Country Link
JP (1) JP3171639B2 (ja)

Also Published As

Publication number Publication date
JPH05265859A (ja) 1993-10-15

Similar Documents

Publication Publication Date Title
JP2557174B2 (ja) データのセット位置の予測装置
US4985825A (en) System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer
KR100204741B1 (ko) 제1및 제2캐시 메모리 사용방법
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US5930832A (en) Apparatus to guarantee TLB inclusion for store operations
JPH0555898B2 (ja)
JPH0345407B2 (ja)
JPS604494B2 (ja) キヤツシユ記憶システム
JPH0321934B2 (ja)
US4831622A (en) Apparatus for forcing a reload from main memory upon cache memory error
US6901540B1 (en) TLB parity error recovery
KR100308675B1 (ko) 캐쉬어드레스발생방법
US5361342A (en) Tag control system in a hierarchical memory control system
US4970643A (en) Mechanism for lock-up free cache operation with a remote address translation unit
EP1725938A1 (en) System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
KR100308674B1 (ko) 멀티사이클데이터캐쉬판독을위한데이터레지스터
US4920536A (en) Error recovery scheme for destaging cache data in a multi-memory system
JPH0580018B2 (ja)
EP0442690A2 (en) Data cache store buffer for high performance computer
JP3171639B2 (ja) データ処理装置
JP2001043133A (ja) マルチプロセッサ・システムにおいてライトスルー・ストア・オペレーションでキャッシュ・コヒーレンシを維持するための方法およびシステム
EP0140533A2 (en) Time shared translation buffer
EP0375892B1 (en) Data processing system
JPS60701B2 (ja) デ−タ処理装置
JP2982197B2 (ja) キャッシュ用バスモニタ回路

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010306

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

Free format text: PAYMENT UNTIL: 20080323

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090323

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100323

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100323

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110323

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110323

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120323

Year of fee payment: 11

EXPY Cancellation because of completion of term