[go: up one dir, main page]

JPH0546475A - バツフア記憶制御方式 - Google Patents

バツフア記憶制御方式

Info

Publication number
JPH0546475A
JPH0546475A JP3204523A JP20452391A JPH0546475A JP H0546475 A JPH0546475 A JP H0546475A JP 3204523 A JP3204523 A JP 3204523A JP 20452391 A JP20452391 A JP 20452391A JP H0546475 A JPH0546475 A JP H0546475A
Authority
JP
Japan
Prior art keywords
address
unit
buffer storage
tag1
line address
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
JP3204523A
Other languages
English (en)
Inventor
Tetsuya Morioka
哲哉 森岡
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 JP3204523A priority Critical patent/JPH0546475A/ja
Priority to US08/039,007 priority patent/US5426749A/en
Publication of JPH0546475A publication Critical patent/JPH0546475A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 本発明は、論理アドレスのページアドレス部
の一部とページ内アドレス部の一部をラインアドレスと
してストアスルー方式でバッファ記憶を制御するバッフ
ァ記憶制御方式に関し、同意性の問題解決時の性能劣化
を防ぎ、性能向上を図ることを目的とする。 【構成】 CPU内に設けたTAG1部およびバッファ
記憶DATA部と、MCU内に設けたTAG2部とを備
え、基本ラインアドレスでTAG1部を検索してミスし
たときに同意ラインアドレスを用いてTAG2部を検索
してヒットしたときにTAG1部を無効化した後、スト
アなどするように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、論理アドレスのページ
アドレス部の一部とページ内アドレス部の一部をライン
アドレスとしてストアスルー方式でバッファ記憶を制御
するバッファ記憶制御方式に関するものである。データ
処理装置は、低速・大容量の記憶素子を用いた主記憶装
置に対し、高速・小容量の記憶素子を用いたバッファ記
憶を演算処理装置(CPU)内に設け、このバッファ記
憶に主記憶装置上のデータを細分化したブロックの写を
持つことにより、演算処理装置から主記憶装置に対する
見かけ上のアクセスを高速化している。
【0002】通常、主記憶装置上のブロックのバッファ
記憶へのマッピングは、セットアソシアティブ方式を用
いる。これは、ブロックのアドレスの一部を用いてアク
セスされるライン上に複数のWAY(ウェイ)を設け、
そこにデータおよびラインアドレスに用いたビットを除
くブロックアドレスを登録する。このバッファ記憶のデ
ータを登録するところをデータ部(DATA部)、ブロ
ックアドレスを登録するところをタグ部(TAG部)と
言う。
【0003】バッファ記憶の制御方式に、ストアスルー
方式がある。これは、フェッチアクセスのとき、バッフ
ァ記憶に対象データが無かった場合、対象データを含む
ブロックを主記憶装置からバッファ記憶へムーブインす
る。また、ストアアクセスのとき、バッファ記憶に対象
データがあった場合、バッファ記憶と主記憶装置の両者
へストアを行い、バッファ記憶に対象データがなかった
場合、主記憶装置のみへストアを行う。
【0004】一方、バッファ記憶をアクセスするアドレ
スは、論理アドレスのページ内アドレス部の一部のみを
用いる方法と、論理アドレスのページアドレス部の一部
およびページ内アドレス部の一部を用いる方法がある。
本発明は、後者を用いた場合のバッファ制御記憶制御方
式に関するものである。
【0005】論理アドレスは、演算制御ユニットが主記
憶装置をアクセスするために生成するアドレスであり、
演算制御ユニットの状態により2つのアドレス・タイプ
が存在する。1つは実アドレスであって、アドレスはプ
リフィックス・レジスタを用いたプリフィックス変換機
構により主記憶装置をアクセスするための絶対アドレス
に変換する。他の1つは、仮想アドレスであって、アド
レスはアドレス変換テーブルを用いたアドレス変換機構
により絶対アドレスに変換する。両アドレス・タイプは
ともに、アドレスの上位のページアドレス部と、アドレ
スの下位のページ内アドレス部に分け、プリフィックス
変換あるいはアドレス変換の前と後で、ページ内アドレ
ス部の値が同じであるが、ページアドレス部の値が異な
る。例えばアドレスビットが01から31で、ページサ
イズが4Kバイトのとき、ビット01から19の19ビ
ットがページアドレス部であり、ビット20から31が
ページ内アドレス部である。
【0006】パイプライン処理の高速化を図る演算処理
装置は、アドレス変換バッファと、バッファ記憶のTA
G部を同時にアクセスする。この場合、アドレス変換バ
ッファを検索して得た絶対アドレスを用いてTAG部を
アクセスできないので、論理アドレスのページ内アドレ
スの一部をバッファ記憶のラインアドレスとして用いる
方法が一般的である。ページサイズが4Kバイトで、ブ
ロックサイズが64バイトとすると、バッファ記憶のラ
インアドレスとして用いることができる論理アドレス
は、ビット20ないし25となるので、1WAY(ウェ
イ)当たり64バイト×64ライン=64Kバイトとな
る。この方式によってバッファ記憶を増やすためにWA
Yの数を増やすしかないが、WAYの数を増やすと、ア
ドレス変換バッファで得られた絶対アドレスとTAG部
の絶対アドレスとを比較するための比較回路、あるいは
DATA部から読み出した各WAYのデータを選択する
ための選択回路などが増大するという問題がある。
【0007】これに対し、WAYの数を増やすのではな
く、ライン数を増やすため、論理アドレスのページ内ア
ドレスの一部のみでなく、ページアドレス部の一部をバ
ッファ記憶のラインアドレスとして用いる方法がある。
この場合、プリフィックス・レジタの値、あるいはアド
レス変換テーブルの値によって、同一絶対アドレスを持
つブロックが、バッファ記憶の異なるライン上に登録す
る可能性がある。例えばページサイズを4Kバイトで、
ブロックサイズが64バイトのとき、論理アドレスのビ
ット18ないし25をバッファ記憶のラインアドレスと
して用いると、論理アドレスと絶対アドレスではビット
18、19は可変であるため、同一絶対アドレスを持つ
ブロックが4つのライン上に登録する可能性が出てく
る。これは、同意性の問題として広く知られている。本
発明は、要求アドレスとして与えられる論理アドレスビ
ットで示すラインを基本ラインアドレスとし、論理アド
レスのページアドレス部のビットを変化して得られるラ
インを同意ラインアドレスと呼ぶこととする。
【0008】本発明は、論理アドレスのページアドレス
部の一部およびページ内アドレス部の一部をラインアド
レスとするストアスルー方式のバッファ記憶を持つ演算
処理装置において、効率的にバッファ記憶を制御しよう
とするものである。
【0009】
【従来の技術】同意性の問題は、同一絶対アドレスを持
つブロックが複数のラインアドレスに登録する可能性が
あり、ストアアクセス時に基本ラインアドレスに存在す
るブロックに対してのみストアアクセスを行い、他の同
意ラインアドレスに存在するブロックに対してストアア
クセスを行わなかったとき、後続のフェッチアクセス時
に、先の同意ラインに存在する古いデータをフェッチし
てしまった場合に発生する。
【0010】例えば、論理アドレスα00と、論理アド
レスα01がともに絶対アドレスβに変換し、フェッチ
アクセス時にそれぞれバッファ記憶のラインアドレスL
00にブロックBが登録されているものとする。以下の
ケースにおいて同意性の問題が発生する。
【0011】(1) ラインアドレスL00のみにブロ
ックBが登録されていたとき、論理アドレスα01にス
トアアクセスがあった後、論理アドレスα00にフェッ
チアクセスがあった場合、古いデータをフェッチしてし
まう。
【0012】(2) ラインアドレスL00と、ライン
アドレスL01の両者にブロックBが登録されていたと
き、論理アドレスα01でストアアクセスがあった後、
論理アドレスα00でフェッチアクセスがあった場合、
古いデータをフェッチしてしまう。
【0013】上述した同意性の問題を解決する手法とし
て、例えば特公昭56−16982号があり、これは次
のようにして解決していた。 (1) フェッチアクセスあるいはストアアクセス時
に、バッファ記憶のTAG部の基本ラインアドレスをア
クセスしてブロックが存在しなかったとき、再度バッフ
ァ記憶のTAG部の論理アドレスのページアドレス部の
可変部分を変化させて得られる同意ラインアドレスにつ
いて検索し、ブロックが存在した場合、そのブロックの
無効化を行う。
【0014】(2) フェッチアクセス時に、バッファ
記憶のTAG部の基本ラインアドレスをアクセスしてブ
ロックが存在したとき、そのデータを使用し、存在しな
かったとき、主記憶装置にブロックのムーブイン要求を
出す。
【0015】(3) ストアアクセス時に、バッファ記
憶のTAG部の基本ラインアドレスをアクセスしてブロ
ックが存在したとき、バッファ記憶および主記憶装置の
両者にストアアクセスを行い、存在しなかったとき、主
記憶装置に対してのみストアアクセスを行う。
【0016】(4) ブロック無効化要求(他の演算処
理装置から)があったとき、バッファ記憶のTAG部の
論理アドレスのページアドレス部の可変部分を変化させ
て得られる同意ラインアドレスを検索し、ブロックが存
在したときにブロックの無効化を行う。
【0017】
【発明が解決しようとする課題】上述した従来の方式
は、以下に示す性能上の問題がある。 (1) フェッチアクセスあるいはストアアクセス時
に、バッファ記憶のTAG部の基本ラインアドレスをア
クセスしてブロックが存在しなかったとき、再度バッフ
ァ記憶のTAG部の同意ラインアドレスを検索する必要
があり、この間、要求アクセス自身、あるいは後続のア
クセスを処理することができないという問題がある。ま
た、全部の同意ラインアドレスを検索するのに多くのサ
イクル数を必要とする問題もある。
【0018】(2) 他の演算処理装置からブロック無
効化要求があった時、バッファ記憶をアクセスするのに
用いる論理アドレスのページアドレス部を変化させて全
てのラインアドレスを検索する必要があり、この間、演
算制御ユニットからのアクセスを処理することができな
いという問題がある。また、全てのラインアドレスを検
索するのに多くのサイクル数を必要とする問題もある。
【0019】本発明は、これらの問題を解決するため
に、ストアスルー方式において、論理アドレスのページ
アドレス部の一部とページ内アドレスの一部からなる基
本ラインアドレスのみでCPU内に設けたTAG1を検
索し、ミスしたときに同意ラインアドレスについてMC
U内に設けたTAG2を検索して処理を行い、同意性の
問題解決時の性能劣化を防ぎ、性能向上を図ることを目
的としている。
【0020】
【課題を解決するための手段】図1は、本発明の原理ブ
ロック図を示す。図1において、TAG1部15は、論
理アドレスのページアドレス部の一部とページ内アドレ
スの一部を基本ラインアドレスとしてヒット/ミスを検
索するものである。
【0021】バッファ記憶DATA部16は、TAG1
部15に登録したアドレスのデータを保持するものであ
る。TAG2部21は、基本ラインアドレスの可変部分
を変化させた同意ラインアドレスなどを用いてヒット/
ミスを検索するものである。
【0022】MCU2は、MSU(主記憶装置)3をア
クセス制御するものである。
【0023】
【作用】本発明は、CPU1内にTAG1部15および
バッファ記憶DATA部16を設けると共に、MCU2
内にTAG2部21を設け、フェッチアクセス時に、基
本ラインアドレスでTAG1部15を検索してヒットし
たときにバッファ記憶DATA部16からデータをフェ
ッチアクセス要求元に送出し、ミスしたときに同意ライ
ンアドレスを用いてTAG2部21を検索してヒットし
たときにTAG1部15を無効化した後におよびミスし
たときにMSU3からフェッチデータをバッファ記憶D
ATA部16にムーブインした後、フェッチアクセス要
求元に送出し、ストアアクセス時に、基本ラインアドレ
スでTAG1部15を検索してヒットしたときにストア
データをバッファ記憶DATA部16およびMSU3に
ストアし、ミスしたときに同意ラインアドレスを用いて
TAG2部21を検索してヒットしたときにTAG1部
15を無効化した後におよびミスしたときにストアデー
タをMSU3にストアするようにしている。
【0024】また、ストアアクセス時に、基本ラインア
ドレスでTAG1部15を検索してミスした場合、同意
ラインアドレスを用いてTAG2部21を検索してヒッ
トしたときにTAG1部15を無効化するまで、あるい
はミスが判明するまで、同一ブロックに対する後続のフ
ェッチアクセスを抑止するようにしている。
【0025】また、ストアアクセス時に、基本ラインア
ドレスでTAG1部51を検索してミスした場合、同一
ブロックに対する以前のストアアクセスで同意ラインア
ドレスについてTAG2部21を検索したあるいは検索
中であることが判明したときに、当該TAG2部21の
検索を省略するようにしている。
【0026】また、他のストアアクセス要求元がストア
アクセスを行った場合、同意ラインアドレス(基本ライ
ンアドレスも含む)についてTAG2部21を検索して
いずれかがヒットしたとき、TAG1部15のエントリ
を無効化するようにしている。
【0027】従って、ストアスルー方式において、論理
アドレスのページアドレス部の一部とページ内アドレス
の一部からなる基本ラインアドレスのみでCPU1内に
設けたTAG1部15を検索し、ミスしたときに同意ラ
インアドレスについてMCU2内に設けたTAG2部2
1を検索して処理を行うことにより、同意性の問題解決
時の性能劣化を防ぎ、性能向上を図ることが可能とな
る。
【0028】
【実施例】次に、図1から図3を用いて本発明の構成お
よび動作の概念を説明し、図4から図8を用いて具体例
について説明する。
【0029】図1は、本発明の原理ブロック図を示す。
図1の(イ)は、ブロック図を示す。図1の(イ)にお
いて、CPU1は、Iユニット(演算制御ユニット)1
1、Eユニット(演算実行ユニット)12、Sユニット
(記憶制御ユニット)13から構成されるものである。
【0030】Sユニット13は、TLB14、TAG1
部15、バッファ記憶DATA部16、ストアバッファ
17などから構成され、命令やオペランドなどのアクセ
ス制御するものである。
【0031】TLB14は、論理アドレスから絶対アド
レスに高速変換するテーブルである(図6参照)。TA
G1部15は、命令やオペランドをフェッチアクセス/
ストアアクセスする際に、バッファ記憶DATA部16
にデータが登録されているか否かを判別、即ちヒット/
ミスを判別するものであって、基本ラインアドレスのみ
について検索してヒット/ミスを判別するようにしたも
のである(図2、図3フローチャートを用いて後述す
る)。
【0032】バッファ記憶DATA部16は、TAG1
部15を検索してヒットしたときのデータ(命令やオペ
ランド)を読み出すためのバッファである。ストアバッ
ファ17は、ストア情報を保持するバッファである。
【0033】MCU2は、主記憶制御装置であって、S
−ユニット13からのMI要求(ムーブイン要求)、ス
トア要求、TAG2検索要求に対応して、MSU(主記
憶装置)3をアクセス制御してデータを転送したり、T
AG2部21を検索したりなどするものである。ここで
は、同意ラインアドレスについて、ヒット/ミスを判定
するためのTAG2部21を設けたものである(図2、
図3のフローチャート参照)。
【0034】図1の(ロ)は、バッファ記憶(TAG1
部、TAG2部、DATA部)のアクセスアドレスの例
を示す。ここで、ページアドレスは、ビット01ないし
ビット19、ページ内アドレスをビット20ないし31
とする。ブロック内アドレスは、ビット26ないし31
とする。バッファ記憶(図1の(イ)のTAG1部1
5、バッファ記憶DATA部16、TAG2部21)
は、ビット18ないし25を用いてアクセス、即ちペー
ジアドレス部の一部(ビット18、19)およびページ
内アドレス部の一部(ビット20ないし25)を用いて
アクセスする。このため、本発明では、CPU1のSユ
ニット13内に設けたTAG1部15を検索してミス/
ヒットを判定する際に、基本ラインアドレスについての
み検索する。基本ラインアドレス以外の同意ラインアド
レス(基本ラインアドレスのビット18、19の値を反
転した残りの3つのアドレス、他のCPUからの要求ア
ドレスのときは4つのアドレス)については、MCU2
内に設けたTAG2部21を検索してヒットしたときに
CPU1内のTAG1部15を無効化する。以下順次詳
細に説明する。
【0035】図2は、本発明のフェッチアクセス時の動
作フローチャートを示す。これは、図1の(イ)で、S
ユニット13のパイプラインから、フェッチアクセスが
あった場合のフローチャートである。
【0036】図2において、S1は、フェチアクセス要
求が発生する。S2は、TAG1部15について、基本
ラインアドレスでヒットか否かを判別する。これは、基
本ラインアドレスで図1の(イ)のTAG1部15を検
索してヒットか否かを判別する。YESの場合には、ヒ
ットして当該基本ラインアドレスのデータが存在すると
判明したので、S9でバッファ記憶DATA部16から
この基本ラインアドレスのデータ(例えば命令、オペラ
ンド)を読み出し、フェッチアクセス要求元(例えば図
1の(イ)のIユニット11など)に転送する。一方、
NOの場合には、ミスで当該基本ラインアドレスにデー
タが存在しないと判明したので、S3に進む。
【0037】S3は、MI要求(ムーブイン要求)を発
行する。これは、図1の(イ)のSユニット13がS2
で基本ラインアドレスでTAG1部15を検索してミス
と判明したので、MCU2に対してMI要求(ムーブイ
ン要求)を発行する。
【0038】S4は、TAG2部21についてヒットか
否かを判別する。これは、S3で要求のあったMI要求
に対応して、基本ラインアドレスのうちのビット18、
19(ページアドレス部の部分)を可変して生成した3
組の同意ラインアドレスについて、MCU2内のTAG
2部21を検索し、ヒットか否かを判別する。いずれか
の同意ラインラインアドレスでヒットした場合、S4で
YESとなり、S5でBI要求(無効化要求)をTAG
1部15に通知し、S6でTAG1部15のエントリを
無効化(有効ビットを0にリセット)する。S4でNO
の場合は何もしない。
【0039】S7は、MIデータの送出する。これは、
S4、S5、S6の処理に並列に、S7でMSU3から
読み出したフェッチアクセス対象のデータについてムー
ブインし、S8でTAG1部15にアドレスを登録およ
び有効ビットを1にセットする。
【0040】S9は、バッファ記憶DATA部16から
読み出し、フェッチアクセス要求元(例えば図1の
(イ)のIユニット11など)に転送する。以上のよう
に、Iユニット11などからのフェッチアクセスに対応
して、TAG1部15を検索してヒットしたときはバッ
ファ記憶DATA部16からデータをフェッチアクセス
元に転送する。一方、ミスしたときは、MI要求をMC
U2に通知し、同意ラインアドレス(ビット18、19
を変えたアドレス)でTAG2部21を検索してヒット
したときにTAG1部15のエントリを無効化すると共
に、MSU3から読み出したデータをバッファ記憶DA
TA部16に格納およびアドレスをTAG1部15に登
録、有効ビットを1にセットする。そして、バッファ記
憶DATA部16からデータを読み出してフェッチアク
セス元に転送する。これにより、基本ラインアドレスの
みでCPU1内に設けたTAG1部15を検索し、ミス
したときに同意ラインアドレスについてMCU2内に設
けたTAG2部21を検索してヒットしたときに無効化
処理を行うことにより、同意性の問題を解決することが
可能となる。
【0041】図3は、本発明のストアアクセス時の動作
フローチャートを示す。これは、図1の(イ)で、Sユ
ニット13のパイプラインから、ストアアクセスがあっ
た場合のフローチャートである。
【0042】図3において、S11は、ストアアクセス
要求が発生する。S12は、TAG1部15について、
基本ラインアドレスでヒットか否かを判別する。これ
は、基本ラインアドレスで図1の(イ)のTAG1部1
5を検索してヒットか否かを判別する。YESの場合に
は、ヒットして当該基本ラインアドレスのデータが存在
すると判明したので、S21でバッファ記憶DATA部
16にストアデータを書き込むと共にS13でストア要
求を発行し、S22でMSU3にストアデータを併せて
書き込む(ストアスルー方式)。一方、NOの場合に
は、ミスで当該基本ラインアドレスにデータが存在しな
いと判明したので、S14に進む。
【0043】S14は、ストアバッファ17内に同一ブ
ロックに対するTAG2の検索要求が有りか否かを判別
する。これは、S12のNOで、基本ラインアドレスを
用いてTAG1部15を検索してミスしたので、以前に
同一ブロックに対するTAG2部15の検索要求があっ
たか否かを判別する。YESの場合には、ストア要求お
よびTAG2部21の検索要求を行うことなく(重複し
て行うことが無駄であるので省略し)、S13でストア
要求を発行し、S22でストアデータをMSU3ヘスト
アする。一方、NOの場合には、S15でストア要求お
よびTAG2検索要求をMCU2に通知する。
【0044】S16は、S15でストア要求およびTA
G2検索要求を受け取ったMCU2が、同意ラインアド
レス(基本ラインアドレスのビット18、19を反転さ
せたラインアドレス)でTAG2部21を検索し、いず
れかがヒットするか否かを判別する。YESの場合に
は、いずれかの同意ラインアドレスでヒットしたので、
S17でBI要求およびTAG2検索完了報告をCPU
1のSユニット13に行い、S18でBI処理(TAG
1部15のエントリの無効化)およびストアバッファ1
7を解放する。一方、NOの場合には、全ての同意ライ
ンアドレスがミスしたので、S19でTAG2完了報告
をCPU1のSユニット13に行い、S20でストアバ
ッファ17を解放する。
【0045】以上の処理によって、Iユニット11など
からのストアアクセスに対応して、TAG1部15を検
索してヒットしたときはバッファ記憶DATA部16に
データが存在したのでここにストアデータを書き込むと
共にMSU3にストアデータを書き込む(ストアスルー
方式)。一方、ミスしたときは、ストアバッファ17内
に以前の同一ブロックに対するTAG2検索要求が格納
されていたとき、TAG2部21を検索することなく、
MSU3にストアデータをストアし、一方、格納されて
いなかったとき同意ラインアドレスについてTAG2部
21を検索してヒットしたときにTAG1部15の無効
化を行うと共にMSU3にストアデータを書き込む。こ
れら処理により、同意性の問題を解決できると共に、同
一ブロックに対する重複したTAG2部21の検索を抑
止し、処理効率を向上させることが可能となる。
【0046】次に、図4から図8を用いて本発明の具体
例回路例および動作を説明する。図4は、本発明の1実
施例構成図を示す。図4において、CPU(0)ないし
CPU(3)は、それぞれ図1の(イ)のCPU1の構
成を持つものであって、並列に処理を行うものである。
これらCPU(0)ないしCPU(3)は、それぞれパ
イプラインを持ち、既述したように、命令をフェッチア
クセスおよびオペランドをフェッチ/ストアアクセスし
て処理を行うようにしている。
【0047】TLB14は、論理アドレスを絶対アドレ
スに高速に変換するテーブルである(図6参照)。バッ
ファ記憶TAG1部15は、基本ラインアドレスで検索
してヒット/ミスを判別し、バッファ記憶DATA部1
6にデータが登録されているか否かを検索するためのも
のである。
【0048】バッファ記憶DATA部16は、データを
登録するものである。ストアバッファ17は、ストア情
報を格納するバッファである。BIスタック18は、B
I要求(無効化要求)をスタックするものである。
【0049】MCU2は、主記憶制御装置であって、C
PU(0)のバッファ記憶TAG1部15対応づけてC
PU0用TAG2部21、同様にCPU(1)、CPU
(2)、CPU(3)についてもそれぞれ設けたもので
ある。この際、図2、図3のフローチャートに付け加え
て、他のCPU(1)ないしCPU(3)についても同
様に検索してヒット/ミスを判別、無効化、MSU3に
ストア、ムーブインを必要に応じて行うようにしてい
る。
【0050】MSU3は、主記憶装置であって、CPU
(0)ないしCPU(3)が共有してアクセスするメモ
リである。図5は、図4のCPU(0)ないしCPU
(3)を構成するSユニットの回路例を示す。ここで、
Pサイクル、、Tサイクル、Bサイクル、Rサイクル
は、CPU内のパイプラインのステージを表わす。
【0051】Pサイクルは、論理アドレスであるIユニ
ット11からの要求アドレスおよびSユニット内部から
の要求アドレスを選択回路によって1つ選択する。Tサ
イクルは、選択回路によって選択された1つの論理アド
レスをTLARにセットし、このセットした論理アドレ
スを用いてTAG1(バッファ記憶TAG1部15)と
TLBをアクセスする。
【0052】Bサイクルは、TLARの論理アドレスを
そのままBLARにセットし、このセットした論理アド
レスを用いてDATA(バッファ記憶DATA部16)
を検索する。また、TLAR上の論理アドレスのページ
アドレス部がTLBによって変換した結果である絶対ア
ドレスをBAARにセットする。
【0053】フェッチアクセスにおけるRサイクルは、
TAG1の基本ラインアドレス上に必要とするブロック
が無かった場合、BLARの値をそのままMILAR
へ、BAARの値をそのままMIAARへセットする。
【0054】また、ストアアクセスにおけるRサイクル
は、BLARの値をそのままSTLARの番号0ないし
3のうちの1つへ、BAARの値をそのままSTLAR
に対応する番号を持つSTAARの1つへセットする。
MILARとSTLARあるいはMIAARとSTAA
Rの値は、MCUに対する要求論理アドレス(MRQL
AR)あるいはMCUに対する要求絶対アドレス(MR
QAAR)としてMCUへ送る。一方、ストアアクセス
で、Eユニットからのストアデータを一度EUSTDR
で受け、これをSTLARに対応する番号を持つSTD
Rの1つにセットし、その後MCUへ送る。また、スト
アアクセスで、TAG1の基本ライン上にストアアクセ
ス先のブロックがあった場合、EUSTDR上のデータ
がバッファ記憶DATA部にストアする。MCUからバ
ッファ記憶のブロック無効化要求がきたときは、BIス
タックで受け、CPU内でバッファ無効化処理を行うと
き、この無効化アドレスBILARの1つが選択回路に
よって選択する。
【0055】図6および図7は、本発明のCPU内のT
AG1部/DATA部の回路例を示す。ここで、TLB
14は、図1の(イ)のTLB14であって、論理アド
レスを絶対アドレスに高速に変換するテーブルである。
【0056】バッファ記憶TAG1部15は、図1の
(イ)のTAG1部15であって、基本ラインアドレス
で検索してヒット/ミスを判別するものである。TLA
Rは、バッファ記憶TAG1部15やTLB14を検索
する論理アドレスを保持するレジスタである。
【0057】BLARは、バッファ記憶DATA部16
を検索などする論理アドレスを保持するレジスタであ
る。動作を説明する。
【0058】(1) TLARにフェッチアクセス/ス
トアアクセスする論理アドレスをセットする(図2のS
1、図3のS11)。 (2) 論理アドレスのページアドレスの一部(ビット
18、19)とページ内アドレスの一部(ビット20か
ら25)の8ビットのアドレス(基本ラインアドレス)
でバッファ記憶TAG1部15を検索する。
【0059】(3) (2)と同時に、論理アドレスの
ページアドレスの下位アドレス(ビット12から19)
でTLB14を検索し、その出力結果(論理アドレスの
ビット01から11)と論理アドレスの上位アドレス
(論理アドレスのビット01から11)とを比較器で比
較し、一致したときにマッチ信号を送出する。
【0060】(4) (2)で検索したバッファ記憶T
AG1部15からの絶対アドレスと、(3)で検索した
TLB14からの絶対アドレスのPRIMARY、AL
TERNATEとからの絶対アドレスを比較器で比較
し、一致した場合、WAY0マッチレジスタないしWA
Y3マッチレジスタのいずれかに1をセットする。
【0061】以上の処理によって、図2、図3で説明し
たフェッチアクセス/ストアアクセス時に、バッファ記
憶TAG1部15を検索してヒット/ミスを判別するよ
うにしている(詳細な動作は、図2、図3のフローチャ
ートの説明を参照)。そして、ヒットした場合、バッフ
ァ記憶DATA部16からデータを読み出し、整列した
データを送出する。
【0062】図8は、本発明のMCU内のTAG2の回
路例を示す。これは、CPU(0)用にMCU2内に設
けたものであって、CPU(1)ないしCPU(3)に
ついても同様に設ける。
【0063】図8において、MRQLAR0は、CPU
(0)からの絶対アドレス(ここではビット01から2
5)を設定するレジスタである。MRQLAR0は、C
PU(0)からの論理アドレスのページアドレスの可変
する一部、ここではビット18、19を設定するレジス
タである。
【0064】SRAAR0は、他のCPU(1)ないし
(3)からの絶対アドレス(ここではビット01から2
5)を選択器で選択して設定するレジスタである。ビッ
ト反転回路23は、基本ラインアドレスをそのまま通過
させるか、あるいは基本ラインアドレスのビット18、
19を順次反転した3種の同意ラインアドレス(他のC
PU(1)ないし(3)からのときは4種の同意ライン
アドレス)を生成して送出する回路である。
【0065】ライン発生回路24は、他CPU(1)な
いし(3)からの要求アドレスに対する同意ラインアド
レス(00、01、10、11)を順次発生する回路で
ある。
【0066】動作を説明する。 (1) 絶対アドレスをMRQAAR0(およびSRA
AR0)、および論理アドレスのビット18、19をM
RQLAR0にセットする。
【0067】(2) MRQAAR0の絶対アドレスの
ビット20ないし25とビット反転回路23あるいはラ
イン発生回路24からのビット18、19との合計8ビ
ットをCPU0バッファ記憶TAG2部21のラインア
ドレスとして読み出し、この読み出した絶対アドレスの
ビット01ないし19と、MRQAAR0(あるいは他
のCPUのSRAAR0)からの絶対アドレス01ない
し19とを比較することを繰り返し、基本ラインアドレ
ス、同意ラインアドレスについてCPU0バッファ記憶
TAG2部21を検索してマッチするWAYが存在する
か否かを判別し、その結果をWAY0マッチレジスタな
いしWAY3マッチレジスタに設定する。
【0068】以上の処理によって、図2、図3で説明し
たフェッチ/ストアアクセス時に、MCU2内のCPU
0バッファ記憶TAG2部21を検索し、同意ラインア
ドレスについてヒット/ミスを判別するようにしている
(詳細な動作は、図2、図3のフローチャートの説明を
参照)。
【0069】
【発明の効果】以上説明したように、本発明によれば、
ストアスルー方式において、論理アドレスのページアド
レス部の一部とページ内アドレスの一部からなる基本ラ
インアドレスのみでCPU1内に設けたTAG1部15
を検索し、ミスしたときに同意ラインアドレスについて
MCU2内に設けたTAG2部21を検索して処理を行
う構成を採用しているため、同意性の問題解決時の性能
劣化を防ぎ、性能向上を図ることができる。これによ
り、 (1) 同意性の問題を解決するため、無効化すべきブ
ロックが存在するか否かの検索を、CPU1内のパイプ
ラインと独立に動作するMCU2内に設けたTAG2部
21を用いて別途行ってこのTAG2部21で検索中の
間もアクセス要求を実行可能とすると共に、メモリアク
セスの誤りが無いことを保障することができる。
【0070】(2) 以前のストアアクセスと同一ブロ
ックについてTAG2部21を重複して検索する無駄を
防止し、同意性問題の解決における性能劣化を防ぐこと
ができる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】本発明のフェッチアクセス時の動作フローチャ
ートである。
【図3】本発明のストアアクセス時の動作フローチャー
トである。
【図4】本発明の1実施例構成図である。
【図5】本発明のSユニットの回路例である。
【図6】本発明のCPU内のTAG1部/DATA部の
回路例(その1)である。
【図7】本発明のCPU内のTAG1部/DATA部の
回路例(その2)である。
【図8】本発明のMCU内のTAG2部の回路例であ
る。
【符号の説明】
1:CPU 11:Iユニット 12:Eユニット 13:Sユニット 14:TLB 15:TAG1部(バッファ記憶TAG1部) 16:バッファ記憶DATA部 17:ストアバッファ 2:MCU 21:TAG2部 3:MSU

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 論理アドレスのページアドレス部の一部
    とページ内アドレス部の一部をラインアドレスとしてス
    トアスルー方式でバッファ記憶を制御するバッファ記憶
    制御方式において、 論理アドレスのページアドレス部の一部とページ内アド
    レスの一部を基本ラインアドレスとしてヒット/ミスを
    検索する、CPU(1)内に設けたTAG1部(15)
    およびデータを保持するバッファ記憶DATA部(1
    6)と、 上記基本ラインアドレスの可変部分を変化させた同意ラ
    インアドレスを用いてヒット/ミスを検索する、MCU
    (2)内に設けたTAG2部(21)とを備え、 フェッチアクセス時に、基本ラインアドレスで上記TA
    G1部(15)を検索してヒットしたときに上記バッフ
    ァ記憶DATA部(16)からデータをフェッチアクセ
    ス要求元に送出し、ミスしたときに同意ラインアドレス
    を用いて上記TAG2部(21)を検索してヒットした
    ときに上記TAG1部(15)を無効化した後におよび
    ミスしたときにMSU(3)からフェッチデータを上記
    バッファ記憶DATA部(16)にムーブインした後、
    フェッチアクセス要求元に送出し、 あるいはストアアクセス時に、基本ラインアドレスで上
    記TAG1部(15)を検索してヒットしたときにスト
    アデータを上記バッファ記憶DATA部(16)および
    MSU(3)にストアし、ミスしたときに同意ラインア
    ドレスを用いて上記TAG2部(21)を検索してヒッ
    トしたときに上記TAG1部(15)を無効化した後に
    およびミスしたときにストアデータをMSU(3)にス
    トアするように構成したことを特徴とするバッファ記憶
    制御方式。
  2. 【請求項2】 上記ストアアクセス時に、基本ラインア
    ドレスで上記TAG1部(15)を検索してミスした場
    合、同意ラインアドレスを用いて上記TAG2部(2
    1)を検索してヒットしたときに上記TAG1部(1
    5)を無効化するまで、あるいはミスが判明するまで、
    同一ブロックに対する後続のフェッチアクセスを抑止す
    るように構成したことを特徴とする請求項第1項記載の
    バッファ記憶制御方式。
  3. 【請求項3】 上記ストアアクセス時に、基本ラインア
    ドレスで上記TAG1部(15)を検索してミスした場
    合、同一ブロックに対する以前のストアアクセスで同意
    ラインアドレスについて上記TAG2部(21)を検索
    したあるいは検索中であることが判明したときに、当該
    TAG2部(21)の検索を省略するように構成したこ
    とを特徴とする請求項第1項記載のバッファ記憶制御方
    式。
  4. 【請求項4】 他のストアアクセス要求元がストアアク
    セスを行った場合、同意ラインアドレス(基本ラインア
    ドレスも含む)について上記TAG2部(21)を検索
    していずれかがヒットしたとき、上記TAG1部(5
    1)のエントリを無効化するように構成したことを特徴
    とする請求項第1項記載のバッファ記憶制御方式。
JP3204523A 1991-08-15 1991-08-15 バツフア記憶制御方式 Withdrawn JPH0546475A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3204523A JPH0546475A (ja) 1991-08-15 1991-08-15 バツフア記憶制御方式
US08/039,007 US5426749A (en) 1991-08-15 1992-08-13 Buffer control system using synonymic line address to retrieve second tag portion for fetch and store accesses while first tag portion is invalidated

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3204523A JPH0546475A (ja) 1991-08-15 1991-08-15 バツフア記憶制御方式

Publications (1)

Publication Number Publication Date
JPH0546475A true JPH0546475A (ja) 1993-02-26

Family

ID=16491948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3204523A Withdrawn JPH0546475A (ja) 1991-08-15 1991-08-15 バツフア記憶制御方式

Country Status (2)

Country Link
US (1) US5426749A (ja)
JP (1) JPH0546475A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993004431A1 (fr) * 1991-08-15 1993-03-04 Fujitsu Limited Systeme de commande de memoire tampon
US5890221A (en) * 1994-10-05 1999-03-30 International Business Machines Corporation Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
JPH09114734A (ja) * 1995-10-16 1997-05-02 Hitachi Ltd ストアバッファ装置
US9069660B2 (en) * 2013-03-15 2015-06-30 Apple Inc. Systems and methods for writing to high-capacity memory

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59218692A (ja) * 1983-05-27 1984-12-08 Fujitsu Ltd ロジカルバツフア記憶制御方式
JPS6184753A (ja) * 1984-10-01 1986-04-30 Hitachi Ltd バツフアメモリ
JPS6280742A (ja) * 1985-10-04 1987-04-14 Hitachi Ltd バツフア記憶制御方式
US4914582A (en) * 1986-06-27 1990-04-03 Hewlett-Packard Company Cache tag lookaside
US4928239A (en) * 1986-06-27 1990-05-22 Hewlett-Packard Company Cache memory with variable fetch and replacement schemes
US4811209A (en) * 1986-07-31 1989-03-07 Hewlett-Packard Company Cache memory with multiple valid bits for each data indication the validity within different contents
US5168560A (en) * 1987-05-29 1992-12-01 Amdahl Corporation Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line
KR920001282B1 (ko) * 1987-10-02 1992-02-10 가부시키가이샤 히타치세이사쿠쇼 버퍼메모리 제어장치
US5034885A (en) * 1988-03-15 1991-07-23 Kabushiki Kaisha Toshiba Cache memory device with fast data-write capacity
US4825412A (en) * 1988-04-01 1989-04-25 Digital Equipment Corporation Lockout registers
US5003459A (en) * 1988-04-01 1991-03-26 Digital Equipment Corporation Cache memory system
US5226146A (en) * 1988-10-28 1993-07-06 Hewlett-Packard Company Duplicate tag store purge queue
US5067078A (en) * 1989-04-17 1991-11-19 Motorola, Inc. Cache which provides status information
US5197146A (en) * 1989-06-21 1993-03-23 Hewlett-Packard Company Method for maintaining cache coherence in a multiprocessor computer system
US5148538A (en) * 1989-10-20 1992-09-15 International Business Machines Corporation Translation look ahead based cache access
US5226133A (en) * 1989-12-01 1993-07-06 Silicon Graphics, Inc. Two-level translation look-aside buffer using partial addresses for enhanced speed
US5251310A (en) * 1990-06-29 1993-10-05 Digital Equipment Corporation Method and apparatus for exchanging blocks of information between a cache memory and a main memory
JP2646854B2 (ja) * 1990-12-18 1997-08-27 三菱電機株式会社 マイクロプロセッサ

Also Published As

Publication number Publication date
US5426749A (en) 1995-06-20

Similar Documents

Publication Publication Date Title
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US4583165A (en) Apparatus and method for controlling storage access in a multilevel storage system
EP0144121B1 (en) Virtually addressed cache
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
JP2557174B2 (ja) データのセット位置の予測装置
US4731739A (en) Eviction control apparatus
EP0036110B1 (en) Cache addressing mechanism
US5717895A (en) Associative scalar data cache with write-through capabilities for a vector processor
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US6012135A (en) Computer having multiple address ports, each having logical address translation with base and limit memory management
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
JPH03225542A (ja) データ記憶方法及びビットエンコードデータの処理回路
EP0468804A2 (en) Hierarchical memory control system
JPH0221342A (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法
US5341485A (en) Multiple virtual address translation per computer cycle
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
JPH0519176B2 (ja)
JPH0546475A (ja) バツフア記憶制御方式
US5510973A (en) Buffer storage control system
US4737908A (en) Buffer memory control system
EP0271187B1 (en) Split instruction and operand cache management
JPH02214937A (ja) データ処理装置
EP0140533A2 (en) Time shared translation buffer
JP2637320B2 (ja) バッファ記憶制御方式
JPS63284648A (ja) キャッシュメモリ制御方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19981112