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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
ファ記憶装置を備える1つ又は複数の中央処理装置が、
1つ又は複数の主記憶装置を共用するデータ処理装置に
おいて、バッファ記憶装置においてエラーが発生した時
に、処理を再開するためのバッファ記憶エラー処理方式
に関する。
ば低速・大容量の記憶素子を用いた主記憶装置と、高速
・少容量の記憶素子を用いたバッファ記憶装置のように
記憶装置を階層化している。バッファ記憶装置は、主記
憶装置上のデータを細分化したブロックの写しを持ち、
処理装置から記憶装置に対する見かけ上のアクセスを高
速化している。
は、セットアソシアティブ方式が用いられている。この
セットアソシアティブ方式では、前記ブロックのアドレ
スの一部を用いてアクセスされるライン上に複数のWA
Yを設け、その各WAYにデータ及びラインアドレスに
用いたビットを除くブロックアドレスを登録する。この
データを登録する部分をデータ部と呼び、ブロックアド
レスを登録する部分をタグ部と呼ぶ。
く分類して(1)ストアスルー方式と(2)ストアイン
(スワップ)方式の2つがある。 (1)ストアスルー方式では、フェッチアクセスにおい
ては、対象ブロックがバッファ記憶装置にない場合に
は、主記憶装置からバッファ記憶装置にブロックのムー
ブインを行い、ストアアクセスにおいては、バッファ記
憶装置にストア先のブロックがある場合には、バッファ
記憶装置と主記憶装置の両者にストアを行い、ストア先
のブロックがない場合には、主記憶装置のみにストアを
行う。 (2)これに対して、ストアイン方式では、フェッチア
クセス及びストアアクセス共に、バッファ記憶装置に対
象ブロックがなかった場合には、主記憶装置からムーブ
インを行い、ストアアクセスの時は、バッファ記憶装置
へのみストアを行う。そしてムーブインの際、置き換え
対象になるブロックが、過去にストアがなされたブロッ
クであった場合、あるいは主記憶装置を共有する他の処
理装置が、未だ主記憶装置にストアが反映されていない
ブロックを必要とした場合には、バッファ記憶装置から
主記憶装置への当該ブロックのムーブアウトを行う。
(1)ストアスルー方式は、ムーブアウト操作が不要で
あるから、ストアイン方式と比べて制御が簡単である。
また、バッファ記憶装置でエラーが発生しても、ストア
が反映された最新のデータが、主記憶装置にあるから、
バッファ記憶装置内のブロックを無効化するだけで、エ
ラーが発生した時の処理を行なうことができる。
ある毎に、主記憶装置に対するストアが発生するため、
特に主記憶装置を共有する処理装置が増加すると、主記
憶装置に対するアクセス待ち時間が増大するという問題
があった。このため、主記憶装置を共有する処理装置が
多い場合には、一般的には(2)ストアイン方式のバッ
ファ記憶装置を採用する。
が発生した場合、最新のデータは、このバッファ記憶装
置にあるのみであるから、エラーが発生した時の処置に
おいてバッファ記憶装置内のブロックを無効化できない
という問題があった。また、前述したエラーとしては、
例えば半導体メモリでは、α線等の影響により、メモリ
に記憶した値が化けるソフトエラーが発生することがあ
る。このソフトエラー対策の1つとして、ECC(Erro
r Checking and Correction)コードをデータに付加す
ることが行われている。ECCの付加は、主記憶装置や
マイクロプログラムを格納しておく処理装置内のコント
ロールメモリ等へ広く適用されている。
ード部として余分な半導体メモリを必要とし、またEC
Cコードの生成あるいはECCコードによる誤り訂正の
ために、多くのハードウェアを必要とする。このため、
バッファ記憶装置を構成する上で物量制限がある場合に
は、このECCコードを用いるのは困難であった。
イン方式の記憶装置においては、バッファ記憶装置に格
納されている内容は、主記憶装置の内容とは無関係に変
更されている可能性がある。このため、バッファ記憶装
置でエラーが発生した時は、バッファ記憶装置内でエラ
ーを訂正して再アクセス可能な状態にしなければならな
い。
装置の内容を主記憶装置に戻し、バッファ記憶装置を無
効化する必要があった。しかし、戻すべき主記憶上の位
置を示す情報そのものが壊れていた場合には、バッファ
記憶装置の内容を主記憶装置に戻すことができなかっ
た。このため、処理を続行できないから、ハードエラー
として割り込みをかけることにより、処理を続行するよ
うにしていた。
ーが発生した場合であっても、ムーブアウトまたはブロ
ックの無効化を行い、エラーの発生状態を回避すること
のできるバッファ記憶エラー処理方式を提供することに
ある。
するために次のような構成とした。図1は本発明の原理
図である。図1において、記憶制御ユニット13は、命
令制御ユニット11からの要求により流れるメインパイ
プラインに同期してアクセスされデータを登録するデー
タ部14bと、エントリーを管理するとともに、ブロッ
クアドレスを登録する第1のタグ部14と、他の装置か
らの要求によりアクセスされ且つ前記第1のタグ部14
と同一内容を有する第2のタグ部15とを備えている。
5は、そのブロックが変更可能であることを示す排他フ
ラグEと、そのブロックが変更されたことを示す変更フ
ラグCと、そのブロックの主記憶上のアドレスの一部を
示すアドレス部の各々について、エラーを検出した場合
に、どの部分のエラーかを発見可能にすべく、独立にパ
リティビットを有している。
そのエラーがアドレス部のものである場合は、排他フラ
グ(E)と前記変更フラグCがオンである場合に、前記
第2のタグ部15の情報を用いてムーブアウトを行うよ
う構成した。より好適には、以下のようにするのが望ま
しい。すなわち、前記第2のタグ部15でエラーが検出
されそのエラーがアドレス部のものである場合は、排他
フラグ(E)と前記変更フラグCがオンである場合に、
前記第1のタグ部14の情報を用いてムーブアウトを行
うよう構成する。
2のタグ部15にエラーが発生し、前記排他フラグEに
エラーがなく、かつ排他フラグEがオフである場合に、
そのブロックの無効化を行うよう構成する。さらに、前
記第1のタグ部14にエラーが発生した時、そのエラー
が排他フラグ(E)もしくは変更フラグ(C)のもので
あった場合、前記第2のタグ部15のアクセスにおい
て、前記排他フラグEがオフであった時は、当該ブロッ
クの無効化を行い、前記第2のタグ部15にエラーが発
生した時、そのエラーが排他フラグ(E)または変更フ
ラグ(C)ものであった場合、前記第1のタグ部14の
アクセスにおいて、前記排他フラグEがオフであった時
は、当該ブロックの無効化を行うよう構成する。
ニットIU11からの要求においてアクセスされる第1
のタグ部、記憶制御装置からの要求においてアクセスさ
れる第1のタグ部と同一内容を持つ第2のタグ部を有す
るストアイン方式のバッファ記憶において、一方のタグ
部でエラーが検出された場合には他方のタグ部の情報を
参照して主記憶装置上にムーブアウトを行うので、エラ
ー時の処理が行える。
グCにエラーがなく、かつそのブロックが未変更の状態
である時、単に当該ブロックを無効化することで、エラ
ー処理が行える。また、一方のタグ部の排他フラグE、
変更フラグCでエラーが検出された場合の他方のタグア
クセスにおいて、当該ブロックが未変更であった場合に
も、単に当該ブロックを無効化することで、エラー時の
処理を行える。
インに同期させて使用するために設けた2つのタグ部が
同一内容を有することに着目して、エラー時の処理に用
いることで、継続して処理できるという画期的な効果を
奏する。
する。図2は本発明に係るバッファ記憶エラー処理方式
を実現するためのマルチプロセッサシステムによるデー
タ処理装置の一実施例の構成ブロック図である。図2に
おいて、6つの中央処理装置(CPU0〜CPU5)1は、記憶
制御装置3を介して主記憶装置MSU2に接続され、各中
央処理装置(CPU0〜CPU5)1が主記憶装置MSU2を共有
するようになっている。
中央処理装置(CPU0〜CPU5)1毎に、後述するローカル
バッファストレッジLBS16にムーブインしている。例
えば中央処理装置CPU0,CPU2は、主記憶上の同じデータ
を後述するローカルバッファストレッジLBS16にムー
ブインし、共有状態となっている。また、中央処理装置
CPU1,CPU3 ,CPU4は、主記憶上のそれぞれ違うデータを
ローカルバッファストレッジLBS16にムーブインし、
排他状態となり、中央処理装置CPU5は、主記憶上のある
データをローカルバッファストレッジLBS16にムーブ
インし、更新状態となっている。なお、中央処理装置1
は1つであってもよい。
な構成及びその周辺回路を示す。中央処理装置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に報告する。
らの要求により流れるメインパイプラインに同期してア
クセスされエントリを管理する。TAG2部15は、T
AG1部14と同一内容を持ち、記憶制御装置MCU3か
らの要求により流れるTAG2パイプラインに同期して
アクセスされ、ムーブアウト要求(MO要求)やバッフ
ァ無効化要求(BI要求)の処理等で用いる。本実施例
では、これら2つのTAG部14、15が、同一内容を
持つことに着目して、互いの情報を参照してバッファ記
憶エラー時の処理を行うことを特徴としている。
構成>図4に、ローカルバッファストレッジLBS16の
詳細な構成図を示す。ローカルバッファストレッジLBS
16は、アドレスレジスタTLAR22、アドレスレジ
スタBLAR23、LDS TAG部14、LBSデー
タ部14b、比較器25、31、タグマッチ部26、ア
ラインセレクタ27、ワードレジスタ28を有してい
る。
す。TAG1部14は、例えばブロックサイズを64バ
イトとし、1つの連想レベル(WAYまたはウェイ)が
64エントリーを有するとすれば、4KBの容量を有す
るから、8つの連想レベルでは、32KBの容量を有す
ることになる。このエントリーは、例えばLRU方式に
従って、参照頻度の低いものから主記憶装置MSU2に追い
出されるようになる。
容を示す。64バイトのブロックに対応して1つのエン
トリーが設けられている。1つのエントリーは、そのブ
ロックが有効であることを示す有効フラグVとそのパリ
ティVP、その中央処理装置CPU1がそのブロックを他
の中央処理装置に対して排他的に持っていることを示す
排他制御フラグEとそのパリティEP、そのブロックに
対するストアが行われたことを示す変更フラグCとその
パリティCP、そのブロックの主記憶装置MSU2上のア
ドレスの一部(例えばブロックのアドレスであるビット
1〜25の内、TAGの読み出しに用いるビット20〜
25を引いた残り)を示すアドレスビット(1〜19)
とそのパリティP0〜P2で構成される。
の書き込みが可能または不可能かを示し、変更フラグC
は、該ブロックがバッファ記憶にムーブインされてきた
時から未変更または変更(更新)かを示す。主記憶装置
MSU2上のブロックの写しは、そのブロックのアドレス
ビット20〜25で選択される1つのライン上にある8
WAYの内、任意のWAYに置かれる。どのWAYに置
くかは、LRU(Least Recently Used)アルゴリズム
等によって決められる。
設けられた8つの比較器25に入力し、また、各比較器
25には、TLAR22から変換バッファTLBTLB2
4,比較器31を介してアドレスビット1〜19ビット
が入力するようになっている。 なお、TAG2部15
は、図5及び図6に示すようにTAG1部14と同一内
容で構成されている。
G1部14に該当するブロックが存在する場合に、TA
G1部14に登録されている該アドレスデータによって
アクセスされ、所望のブロックを読み出してブロック内
のデータを演算制御ユニットEU12へ送り、その事実
を命令制御ユニットIU11へ報告する。 <メインパイプラインに沿った各回路の動作>次に、図
7に、メインパイプラインに沿った各回路の動作の流れ
を示す。図6及び図7を参照してメインパイプラインの
各回路の動作を説明する。
クセス)>Tサイクル(変換バッファ及びTAGアクセ
ス)では、アドレスレジスタTLAR22の論理アドレスビ
ット20〜25を用いて、TAG1部14からTAG1
を読み出す。TAG1部14から有効フラグVがオン
(V=1)であって、アドレスビット(1〜19、P0
〜P2)が一致するWAYを探す。
ニットIU11から送られてくるビット1からビット31ま
での論理アドレスは、TLAR22にセットされ、これ
と並行して下位アドレスのビット0〜ビット19が、変
換バッファTLB24のアクセスのためのラインアドレス
として変換バッファTLB24に入力される。このライン
アドレスの入力に応答して、変換バッファTLB24から
プライマリとオルタネイトの2つのエントリーが同時に
読み出され、比較器31により、読み出される論理アド
レスとEAR22のビット1〜12とが比較される。
1から送られてくる論理アドレスのビット20〜25に
よりアクセスされる。仮想アドレス方式では、4Kバイ
ト単位のページアドレス変換を採用する場合には、下位
ビット1〜19はアドレス変換の対象となるが、ビット
20から31は論理アドレスと実アドレスとが同じにな
る。
れる論理アドレスのビット20〜25は、実アドレスと
して、LBSデータ部14bをアクセスするために用い
られる。TAG1部14は、LBSデータ部14bに合
わせて、ウェイ0からウェイ7までの8つの連想レベル
から構成され、論理アドレスのビット20〜25の入力
に応答して、ウェイ0からウェイ7に格納されている8
個の実アドレス情報を読み出していく。
5により、TAG1部14から読み出される実アドレス
と、変換バッファTLB24から読み出される実アドレス
とが比較される。ここで、比較器25は、比較器31に
より実行される変換バッファTLB24の論理アドレスの
比較結果を待たずに、実アドレスの比較処理に入ること
で、TAG1部14の検索を高速に行なうよう処理す
る。
イクル(バッファアクセス)では、アドレスレジスタBL
AR23から読み出したアドレス(アドレスレジスタTLAR
22のアドレスと同値)によって、LBSデータ部14
Bbを読み出す。全WAYが同時に読み出されるが、ア
ラインセレクタ27は、この比較器31の比較結果と比
較器25の比較結果とを入力して、その比較結果が共に
成立するか否かをチェックすることで、命令制御ユニッ
トIU11から送られてきた論理アドレスがTAG1部1
4のどのウェイに存在するのかを特定する。
たウェイから出力されているLBSデータ部14bのブ
ロックを選択し、決定した格納形式に従って、ワードレ
ジスタ28に選択したブロックを格納していく処理を実
行する。このようにして、ワードレジスタ28に格納さ
れた主記憶データの命令語/オペランドデータは、命令
制御ユニットIU11と、演算制御ユニットEU12に送
られ、命令のデコードや演算用オペランドデータとして
使用される。
制御ユニットIU11は、前記データが送られてきた旨を
演算実行ユニットEU12へ報告する。演算実行ユニット
EU12は、命令制御ユニットIU11からの要求に基づき
加減乗除算等の処理(演算)を行なって、処理後のデー
タをストアバッファSTB17へ送出する。なお、ローカ
ルバッファストレッジLBS16への登録は、ストアバッ
ファSTB17経由して行われる。
御装置MCU3からのムーブアウト要求や、バッファ無効
化要求を複数個スタックし、その要求に基づいてTAG
2部15をアクセスするものであって、内部はインポイ
ンタまたはアウトポインタによって記憶制御装置MCU3
からの要求の書き込みまたは取り出しを制御している。
前記TAG2部15は、メインパイプラインとは別に、
記憶制御装置MCU3からのオーダ処理において対象ブロ
ックが、LBSデータ部LBS14b上に存在するか否か
を検索する(これをTAG2パイプラインと呼ぶ)。よ
って、TAG2のパイプラインは、MCUオーダスタッ
クMOS18からのリクエストによって流れる。
御装置MCU3からムーブアウトリクエストがあり、TA
G2部15に対象ブロックが存在した場合には、LBS
データ部16から当該ブロックを取り込んで記憶し、さ
らに記憶制御装置MCU3へムーブアウトさせる。MCU
オーダ完了報告バッファMRB20は、TAG2部15に
対象ブロックが存在しなかった場合には、ブロックなし
の旨を取り込んで記憶し、さらに記憶制御装置MCU2へ
報告する。また、主記憶装置MSU2からバッファ無効化
リクエストがあり、TAG2部15がヒットした時はブ
ロックの無効化を行い、MCUオーダ完了報告バッファ
MRB20を通して記憶制御装置MCU2へ報告する。
作>図8に、LBS TAG1部の制御部の構成を示
す。TAG1内の制御部は、TAG2内の制御部と同一
の構成であり、TAG1内の制御部の構成のみを示す。
TAG1内の制御部は、次のように構成される。エラー
検出部41は、TAG1部14からエラーを検出し、検
出出力を更新部51、排他部52、共有部53、無効部
54に供給する。
にセットされた変更フラグ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を起動さ
せる。
E,変更フラグCの全てが”0”である場合、バッファ
記憶上にデータが存在しない状態(無効状態)となる。 (b)排他回路52は、エラー検出部41の出力,更新
フラグ検出部42からの変更フラグC”0”,排他フラ
グ検出部43からの排他フラグE”1”,有効フラグ検
出部44からの有効フラグV”1”を入力することで、
BI起動部35を起動させる。
Eが”1”であって、変更フラグCが”0”である場
合、バッファ記憶上にデータが存在し、そのデータはム
ーブインされてきた時のまま未変更で、かつ該システム
中の自CPUによって変更可能である状態(排他状態)
となる。 (c)共有回路53は、エラー検出部41の出力,更新
フラグ検出部42からの変更フラグC”0”,排他フラ
グ検出部43からの排他フラグE”0”,有効フラグ検
出部44からの有効フラグV”1”を入力することで、
BI起動部35を起動させる。
排他制御フラグE及び変更フラグCが”0”である場合
には、バッファ記憶上にデータが存在し、そのデータは
ムーブインされてきた時のまま未変更で、かつ変更不可
能な状態(共有状態(非排他状態))となる。 (d)更新回路51は、エラー検出部41の出力,更新
フラグ検出部42からの変更フラグC”1”,排他フラ
グ検出部43からの排他フラグE”1”,有効フラグ検
出部44からの有効フラグV”1”を入力することで、
ブロックをムーブアウトするためのMO起動部33を起
動させる。
E,変更フラグCの全てが”1”である場合には、バッ
ファ記憶上にデータが存在し、そのデータは自CPUの
ストアによって更新されている状態(更新状態)とな
る。(この場合、当該データは必ず自CPUのみが保持
している)。 <TAG1部のエラー発生時におけるムーブアウトの動
作説明>次に、TAG1部にエラーが発生した場合のム
ーブアウトを説明する。図9に、中央処理装置CPU51の
TAG1部14にエラーがあった場合のムーブアウト動
作のタイムチャートを示す。ここで、中央処理装置CPU5
1としたのは、バッファ記憶装置のTAG1部14の制
御情報として、排他フラグE”1”、変更フラグC”
1”が登録され、更新状態となっているからである。
制御ユニットIU11からEXTリクエストが送られてくる
と、アドレスレジスタTLAR22の値(00001000)によっ
て、TAG1部14がアクセスされ、TAG1部14に
エラーがあるか否かをチェックする。エラーがあれば、
比較器25及びタグマッチ部26によりTAG1マッチ
およびTAG1エラーが検出される。
たとすると、次にRサイクルでLMD信号が立ち、R
(Result:結果報告)サイクルの次のタイミング(Pサ
イクル)で、エラーが検出された該リクエストは、エラ
ーポートに入れられて待たされる(WAIT ID=LBS ERRO
R)と共に、エラーポートにおいてTAG1部14でエ
ラーが発生したことを示すフラグが有効になる(タグエ
ラーバリッドV)。
して、TAG1部14のエラーによるムーブアウトのリ
クエスト(MO)が、16バイトずつ4回に分けて64バ
イトデータを読み出すべく、Tサイクル〜Bサイクル〜
Rサイクル〜Pサイクルと4回だけ流され、エラーのあ
ったWAY番号を該リクエスト中、保持する。一方、T
AG1部14からエラーのあったWAY6を読み出す
と、制御情報として、排他制御フラグE”1”,変更フ
ラグC”1”から当該ブロックが更新されているので、
ムーブアウトを行い、最新内容を主記憶装置MSU2へ反
映しなければならないことがわかる。
トすべきアドレス部のアドレス(00*E2000)を読み出す
と、該アドレスにエラーがあることがわかる(アドレス
中の*部分)。一方、TAG1部14の読み出しと同時
に、TAG1と同一内容を持つTAG2内のWAY6を
参照すると(アドレスレジスタTLAR2bの値00001000に
よってアクセス)、TAG1部14で破壊されていたア
ドレスが正しい内容(000E2000)で登録されていること
がわかる。
ために、記憶制御装置MCU3からMCUオーダスタックM
OS18を介して、TAG2部15に登録されているアド
レスを用いることが指示され(SELECT FOR BMOAR)、B
MOARへ該アドレスが送られる。ムーブアウトバッフ
ァMOS19内のムーブアウトアドレスレジスタMOAR
へ該アドレスが、ムーブアウトデータレジスタMODR
へは該アドレスによって読み出されたデータがセットさ
れ、該データはその後に、主記憶装置MSU2にムーブア
ウトされる。
(MO4th)のTサイクルで、TAG1部14及びTAG
2部15の当該ブロックの有効フラグVが、”0”にセ
ットされる。なお、ムーブアウトリクエスト(MO1st)
が完了次第、先ほど待たされていた命令制御ユニットIU
11からのリクエストが再度流される(INT)が、今度
はエラーが検出されず、該リクエストが正常に受け付け
られる。
Yであった場合には、該データは無効化(BI)されて
いるので、再度ムーブインしてくることになる。 <TAG2部のエラー発生時におけるムーブアウトの動
作説明>図10に、中央処理装置CPU51のTAG2部1
5にエラーがあった場合のムーブアウト動作のタイムチ
ャートを示す。記憶制御装置MCU3からのリクエスト(S
RA)がMCUオーダスタックMOS18を通して出される
と、アドレスレジスタTLAR22の値(00001000)によっ
て、TAG2部15がアクセスされ、TAG2マッチお
よびTAG2エラーが検出される。
とすると、Rサイクルの次のタイミングでWAY6がム
ーブアウトの対象として、TAG2エラーによるムーブ
アウトのリクエスト(MOE)からPサイクル〜Tサイク
ル〜Bサイクル〜Rサイクルと4回流されると共に、エ
ラーポートにおいてTAG2部15でエラーが発生した
ことを示すフラグが有効になり(TAG2 ERROR VALID)、
エラーのあったWAY番号を該リクエスト中、保持す
る。
6を読み出すと、制御情報として、排他制御フラグE
を”1”、変更フラグCを”1”から当該ブロックが更
新されているので、バッファ制御部21の更新部51が
動作する。さらにMO起動部33が起動するので、ムー
ブアウトを行い、最新内容を主記憶装置MSU2へ反映し
なければならないことがわかる。
(00*E2000)を読み出すと、該アドレスにエラーがある
ことがわかる(*の部分)。また、TAG2アクセスと
同時にTAG2と同一内容を持つTAG1内のWAY6
を参照すると(TLARによってアクセス)、TAG2部1
5で破壊されていたアドレスが正しい内容(000E2000)
で登録されていることがわかる。
ために、TAG1部14に登録されているアドレスを用
いることが指示され(SELECT FOR BMOAR)、BMOAR
へ該アドレスが送られる。そして、ムーブアウトバッフ
ァMOS19内のムーブアウトアドレスレシズタMOARへ該
アドレスが、ムーブアウトデータレジスタMODRへは該ア
ドレスによって読み出されたデータがセットされ、該デ
ータはその後、8バイトストアとして主記憶装置MSU2
にムーブアウトされる。
(MO4th)のTサイクルでTAG1部14及びTAG2
部15の当該ブロックの有効フラグがオフにセット(V
=1→V=0)される。その後、再度記憶制御装置MCU
3からのリクエスト(SRA)がMCUオーダスタックMOS
18から流されるが、今度はエラーが検出されず、該リ
クエストが正常に受け付けられる。
CPU51のTAG1部14をアクセスした時にエラーが検
出され、そのエラーがアドレス部のエラーであり、エラ
ーがあったブロックが排他フラグEを”1”,変更フラ
グCを”1”に、すなわち、更新状態であった時は、上
述したようにTAG2部15を参照してTAG2部15
内の正常なアドレス値を用いて、ムーブアウトを行うこ
とができる。
エラーが検出され、そのエラーがアドレス部のエラーで
あり、エラーがあったブロックが更新状態(E=1,C
=1)であった時は、TAG1部14を参照してTAG
1部14内の正常なアドレスを用いて該ブロックのムー
ブアウトが行える。 (2)<実施例におけるバッファ無効時のハードウェア
の動作>次に、実施例におけるバッファ無効時のハード
ウェアの動作について説明する。図11に、実施例にお
けるTAG1部のアドレス部にエラーが発生した時の処
理フローチャートを示す。
ッファ記憶において、今、ステップS1で、命令制御装
置IU11からのリクエスト(EXT)で、ステップS2
で、TAG1部14をアクセスすると、ステップS3
で、アドレス部においてエラーが検出されたとする。そ
の場合に、ステップS5で、TAG2部15内に有する
同一ブロックを参照しにいく。この時に、TAG1部1
4内の当該ブロックの制御情報として、ステップS6
で、有効フラグVが”1”であって、ステップS7で、
排他フラグEが”1”であるとする。さらに、ステップ
S8で、変更フラグCにエラーがなく、かつ該ブロック
が未変更(C=0)であったとする。
TAG1部14と同様に、排他フラグE”1”、変更フ
ラグ”0”が登録されており、これらの中央処理装置の
いずれかのTAG1部14のアドレス部にエラーがあっ
た場合である。すると、ステップS9で、TAG1部内
の制御部における排他部52が動作し、排他状態である
ことが判明し、BI起動部35が起動するので、よっ
て、当該ブロックをムーブアウトする必要がなく、ステ
ップS10で、バッファ無効化を行なう。
ける4回のムーブアウトリクエスト(MO)を行なう代わ
りに、バッファ無効化リクエスト(BI)が1回流され、
本リクエストのTサイクルで(ステップS11)、TA
G1部14及びTAG2部15の当該ブロックの有効フ
ラグVがオフにセット、すなわちVが”1”から”0”
に変更される。
クエスト(SRA)が、MCUオーダスタックMOS18を通
して出され、TAG2部15がアクセスされた時に、ア
ドレス部においてエラーが検出された場合、そのブロッ
クの制御情報部として、排他フラグE,変更フラグCに
エラーがなく、かつ未変更(Cが”0”)であったなら
ば、当該ブロックはムーブアウトをする必要がない。
の代わりに、バッファ無効化リクエスト(BI)が1回流
され、本リクエストのTサイクルで、TAG1部14及
びTAG2部15の当該ブロックの有効フラグがオフに
セット、すなわちバリッドビットVが”1”から”0”
に変更される。このように、ムーブアウトする必要がな
い場合、つまり当該ブロックが更新されていない場合に
は、単に当該ブロックを無効化することによって、エラ
ー処理ができる。
0”である場合には、ステップS12で、無効状態とな
り、ステップS10で、バッファ無効化を行なう。ま
た、有効フラグVが”1”であって、排他フラグEが”
0”である場合、すなわち、中央処理装置CPU0,CPU2の
TAG1部14の制御情報の場合のように、CPU0とCPU2
とが同一内容を保持している場合には、ステップS13
で、TAG1内の制御部における共有部53が動作し、
共有状態であることが判明する。さらにBI起動部33
が起動して、ステップS10で、バッファ無効化を行な
う。
排他フラグEが”1”であり、且つ変更フラグCが”
1”である場合には、図9で説明したように、ステップ
S14で、更新状態となり、ステップS15で、ムーブ
アウトを行なう。 (3)<実施例におけるバッファ無効時のハードウェア
の動作>次に、実施例のハードウェアの動作について説
明する。図12に、TAG1部14の排他フラグE等を
登録した制御情報部に、エラーが発生した時の処理フロ
ーチャートを示す。
で、TAG1部14をアクセスした時にエラーが検出さ
れ、ステップS23で、そのエラーが制御情報部におけ
る、排他制御フラグE,変更フラグCに発生した時は、
エラーがあったブロックが更新されているかどうかが不
明ではある。しかし、処理の効率上とりあえず、ステッ
プS25で、該ブロックのデータを正常なアドレス部の
値と共に、ムーブアウトバッファMOB19へ送ってお
く。ステップS26で、有効フラグVを”0”にセット
し、そしてTAG2部15の該エラーのあったブロック
と同ブロックを参照する。
が検出されず、ステップS28で、当該ブロックの状態
が未変更状態(C=0)であった場合には、ステップS
29で、主記憶装置MSU2へ反映する必要がなく、すな
わち、ムーブアウトしない。よって、単にムーブアウト
バッファMOB19内の当該ブロックの無効化がすでに行
われ、該当ブロックを主記憶装置2へ送らないことで、
エラー処理が可能になる。
エラーが検出された時もTAG1部14の時と同様の処
理でエラーの対処を行える。
求においてアクセスされる第1のタグ部、記憶制御装置
からの要求においてアクセスされる第1のタグ部と同一
内容を持つ第2のタグ部を有するストアイン方式のバッ
ファ記憶において、一方のタグ部でエラーが検出された
場合には他方のタグ部の情報を参照して主記憶装置上に
ムーブアウトを行うことで、エラーが発生した時の処理
を行える。
グCにエラーがなく、かつそのブロックが未変更の状態
である時、単に当該ブロックを無効化することで、エラ
ー処理が行える。また、一方のタグ部の排他フラグE、
変更フラグCでエラーが検出された場合は他方のタグア
クセスにおいて、当該ブロックが未変更であった場合に
も、単に当該ブロックを無効化することで、エラー時の
処理を行える。
インに同期させて使用するために設けた2つのタグ部が
同一内容を有することに着目して、エラー時の処理に用
いることで、継続して処理できるという画期的な効果を
奏する。
を示す図である。
図である。
である。
れを示す図である。
の構成を示す図である。
時のムーブアウト動作のタイムチャートである。
た時のムーブアウト動作のタイムチャートである。
ラーが発生した時の処理のフローチャートである。
ーが発生した時の処理のフローチャートである。
Claims (4)
- 【請求項1】 ストアイン方式のバッファ記憶装置を備
える1つ又は複数の中央処理装置が、1つ又は複数の主
記憶装置を共用するデータ処理装置において、 前記バッファ記憶装置は、前記中央処理装置からの要求
によりアクセスされデータを登録するデータ部と、エン
トリーを管理するとともに、ブロックアドレスを登録す
る第1のタグ部と、他の装置からの要求によりアクセス
され且つ前記第1のタグ部と同一内容を有する第2のタ
グ部とを備え、 前記第1のタグ部及び第2のタグ部は、そのブロックが
変更可能であることを示す排他フラグと、そのブロック
が変更されたことを示す変更フラグと、そのブロックの
主記憶上のアドレスの一部を示すアドレス部の各々につ
いて独立にパリティビットを有し、前記バッファ記憶装置は、 前記第1のタグ部でエラーが
検出され前記変更フラグがオンである場合に、前記第2
のタグ部の情報を用いてムーブアウトを行い、前記第1
のタグ部でエラーが検出されそのエラーが排他フラグも
しくは変更フラグのエラーであった場合に、前記第2の
タグ部へのアクセスにおいて前記排他フラグがオフであ
った時は、当該ブロックの無効化を行うことを特徴とす
るデータ処理装置。 - 【請求項2】 前記バッファ記憶装置は、前記第2のタ
グ部でエラーが検出され前記変更フラグがオンである場
合に、前記第1のタグ部の情報を用いてムーブアウトを
行い、 前記第2のタグ部でエラーが検出されそのエラーが排他
フラグもしくは変更フラグのエラーであった場合に、前
記第1のタグ部へのアクセスにおいて前記排他フラグが
オフであった時は、当該ブロックの無効化を行 うことを
特徴とする請求項1記載のデータ処理装置。 - 【請求項3】 ストアイン方式のバッファ記憶装置を備
える1つ又は複数の中央処理装置が、1つ又は複数の主
記憶装置を共用するデータ処理装置において、 前記バッファ記憶装置は、前記中央処理装置からの要求
によりアクセスされデータを登録するデータ部と、エン
トリーを管理するとともに、ブロックアドレスを登録す
る第1のタグ部と、他の装置からの要求によりアクセス
され且つ前記第 1のタグ部と同一内容を有する第2のタ
グ部とを備え、 前記第1のタグ部及び第2のタグ部は、そのブロックが
変更可能であることを示す排他フラグと、そのブロック
が変更されたことを示す変更フラグと、そのブロックの
主記憶上のアドレスの一部を示すアドレス部の各々につ
いて独立にパリティビットを有し、 前記バッファ記憶装置は、 前記第1のタグ部でエラーが
検出され、前記排他フラグ及び変更フラグがオンである
場合に、第2のタグ部の情報を用いてムーブアウトを行
い、前記第1のタグ部でエラーが検出されそのエラーが
排他フラグもしくは変更フラグのエラーであった場合
に、前記第2のタグ部へのアクセスにおいて排他フラグ
がオフであった時は、当該ブロックの無効化を行うこと
を特徴とするデータ処理装置。 - 【請求項4】 前記バッファ記憶装置は、前記第1のタ
グ部または前記第2のタグ部にエラーが発生し、前記排
他フラグにエラーがなく、かつ排他フラグがオフである
場合に、そのブロックの無効化を行うことを特徴とする
請求項1記載のデータ処理装置。
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) |
-
1992
- 1992-03-23 JP JP06478192A patent/JP3171639B2/ja not_active Expired - Lifetime
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 |