JPH06301600A - 記憶装置 - Google Patents

記憶装置

Info

Publication number
JPH06301600A
JPH06301600A JP5091061A JP9106193A JPH06301600A JP H06301600 A JPH06301600 A JP H06301600A JP 5091061 A JP5091061 A JP 5091061A JP 9106193 A JP9106193 A JP 9106193A JP H06301600 A JPH06301600 A JP H06301600A
Authority
JP
Japan
Prior art keywords
data
store
read
cache memory
store buffer
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.)
Pending
Application number
JP5091061A
Other languages
English (en)
Inventor
Kenichi Ishibashi
賢一 石橋
Takehisa Hayashi
林  剛久
Toshio Doi
俊雄 土井
Tsukasa Sato
司 佐藤
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
Priority to JP5091061A priority Critical patent/JPH06301600A/ja
Publication of JPH06301600A publication Critical patent/JPH06301600A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【構成】ストアバッファ1に保持されたアドレスとリー
ドアドレスとの比較回路4と、キャッシュメモリ2に保
持されたアドレスとリードアドレスとの比較回路5と、
比較回路4,5の比較結果とストアデータの有効バイト
情報13から、セレクタ7のセレクト信号を生成するデ
ータセレクト制御回路6と、ストアバッファ1,キャッ
シュメモリ2,主記憶3のいずれかのデータを選択する
セレクタ7を設ける。 【効果】リード要求のあったデータをストアバッファが
保持している場合、そのデータを直接読みだすことがで
き、演算装置から要求されたリードデータの転送時間を
短縮できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は計算機用半導体集積回路
装置に係り、特に、ストアバッファを備える記憶装置に
関する。
【0002】
【従来の技術】演算装置と、キャッシュメモリあるいは
主記憶との間にストアバッファを設け、ストア命令の実
行を高速化する技術が知られている。ストアバッファを
有する記憶装置では、ストア命令を実行すると、演算装
置の待ち時間なしにストアデータがストアバッファに書
き込まれ、その後、ストアバッファからキャッシュメモ
リあるいは主記憶に書き込まれる。ストアバッファから
キャッシュメモリあるいは主記憶への書き込み前に、ス
トアバッファ中のエントリと同じアドレスに対してリー
ド命令を実行すると、ストアバッファに書き込んだデー
タが最新のデータなので、ストアバッファのデータを演
算装置にリードする必要がある。
【0003】従来は、ストアバッファに書き込んだデー
タを、一旦、キャッシュメモリあるいは主記憶に書き込
んだ後に、キャッシュメモリあるいは主記憶からデータ
を演算装置に転送していた。このような記憶装置は特開
平3−257555 号公報において開示されている。
【0004】
【発明が解決しようとする課題】上記従来例では、リー
ド命令の実行時にストアバッファのデータを、一旦、キ
ャッシュメモリあるいは主記憶に書き込むため、リード
命令の実行時間が大きい。また、演算装置はリードデー
タが転送されるまで処理を停止しているため、性能低下
の原因となるという欠点があった。本発明は、この欠点
を解決するためのものであり、演算装置から要求された
リードデータの転送時間を短縮することを目的とする。
【0005】
【課題を解決するための手段】本発明は、キャッシュメ
モリ、あるいは主記憶に対して、演算装置からリード要
求のあったデータをストアバッファが保持している場合
に、ストアバッファのデータを、一旦、キャッシュメモ
リあるいは主記憶に書き込むこと無しに、ストアバッフ
ァから直接データを読みだすことにした。さらに、複数
バイトのストアデータのうち、有効なデータをストアバ
ッファから読みだし、有効でないデータはキャッシュメ
モリあるいは主記憶から読みだすことにした。さらに、
リード要求のあったデータをストアバッファが複数組保
持している場合に、最新のデータを読みだすことにし
た。
【0006】
【作用】キャッシュメモリ、あるいは主記憶に対して、
演算装置からリード要求のあったデータをストアバッフ
ァが保持している場合に、ストアバッファのデータを直
接読みだすことが可能になるため、ストアバッファから
キャッシュメモリ、あるいは主記憶に書き込む時間が省
略され、リードデータの転送時間を短縮することができ
る。
【0007】
【実施例】図1は、本発明の記憶装置の構成を示す図で
あり、キャッシュメモリと主記憶を持つ記憶装置の例で
ある。図1において、1はストアバッファであり、アド
レスバッファ11,バリッドビット12,ストアデータ
の有効バイト情報13,データバッファ14からなる。
ストア命令が実行されると、ストアアドレスはアドレス
バッファに、ストアデータはデータバッファに書き込ま
れる。このときストアバッファ内のエントリが有効であ
ることを示すバリッドビットは1となり、ストアデータ
の有効なバイト位置を示す情報が有効バイト情報に書き
込まれる。ストアバッファ中のストアデータがキャッシ
ュメモリあるいは主記憶に書き込まれると、バリッドビ
ットは0となり、エントリを無効化する。
【0008】2はキャッシュメモリであり、アドレスア
レイ14とデータアレイ15から構成される。3は主記
憶である。比較回路4は、ストアバッファのアドレスバ
ッファに保持されたアドレスとリードアドレスとの比較
を行い、比較回路5はキャッシュメモリのアドレスアレ
イに保持されたアドレスとリードアドレスとの比較を行
う。
【0009】比較回路4では、ストアアドレスとリード
アドレスが一致し、一致したエントリが有効、つまり、
バリッドビットが1であるときにアドレスが一致したと
いう情報をデータセレクト制御回路6に出力する。デー
タセレクト制御回路は、比較回路4,5の出力とストア
バッファの有効バイト情報を入力とし、セレクタ7のデ
ータセレクト信号を出力する。セレクタ7はストアバッ
ファ、キャッシュメモリ、主記憶のいずれかのデータを
選択し、リードデータとして演算装置に転送する。
【0010】次に、演算装置からリード要求が発行され
た場合の動作について説明する。演算装置からリード要
求が発行されると、ストアバッファとキャッシュメモリ
は、要求されたデータを保持しているかどうかを比較回
路4,5でチェックし、この比較結果により、データセ
レクト制御回路6でセレクタ7が選択するデータを決定
する。図2に比較回路4,5の比較結果と選択されるデ
ータの対応を示す。
【0011】項番1のストアバッファ,キャッシュメモ
リ共に不一致である場合は、主記憶のデータをリードデ
ータとしてセレクタで選択する。項番2のストアバッフ
ァが不一致、キャッシュメモリが一致の場合、キャッシ
ュメモリのデータを選択する。項番3のストアバッファ
が一致、キャッシュメモリが不一致の場合、ストアバッ
ファの有効バイト情報で示される有効なデータをデータ
バッファから選択し、その他のデータを主記憶から選択
する。ストアバッファ,キャッシュメモリが共に一致の
場合、ストアバッファの有効バイト情報で示される有効
なデータをデータバッファから選択し、その他のデータ
をキャッシュメモリから選択する。
【0012】図3は、ストアバッファ1の詳細構成を示
す。図3はストアバッファのエントリ数が4,データバ
ッファ14の各エントリがそれぞれ4バイトデータで構
成され、演算装置に転送するリードデータが4バイトで
ある例を示す。また、この例では、ストアバッファは先
入れ先だしバッファであり、エントリ0から順にエント
リ3まで書き込み、その後、エントリ0をキャッシュメ
モリあるいは主記憶に書き込んだ状態を示す。
【0013】アドレスバッファ11中のAD0〜AD3
はストアアドレス、データバッファ14中のDT0〜D
T3はストアデータである。バリッドビット12は、1
であるときにそのエントリが有効であることを示し、図
3の例ではエントリ0が無効、エントリ1〜3が有効で
ある。有効バイト情報13はストアデータが4バイトな
ので、各エントリで1バイト毎に1ビットずつ、計4ビ
ット持つ。有効バイト情報はストアデータのどのバイト
が有効であるかを示し、図3のエントリ0は4バイト目
のデータが有効、エントリ1は全バイトが有効、エント
リ2は有効なバイトは無し、エントリ3は2バイト目と
4バイト目のデータが有効である。
【0014】エントリ0のアドレスがリードアドレスと
一致した場合、エントリ0はバリッドビットが0である
ので、ストアバッファのデータは選択されず、キャッシ
ュメモリあるいは主記憶のデータがリードデータとして
選択される。
【0015】エントリ1のアドレスがリードアドレスと
一致した場合、エントリ1のデータが全バイト有効なの
で、データバッファのデータがリードデータとして選択
される。
【0016】エントリ2のアドレスがリードアドレスと
一致した場合、有効バイト情報が全て0であり、有効な
データがストアバッファに存在しないので、キャッシュ
メモリあるいは主記憶のデータがリードデータとして選
択される。
【0017】エントリ3のアドレスがリードアドレスと
一致した場合、データバッファの2バイト目と4バイト
目のデータ、及び、キャッシュメモリあるいは主記憶の
1バイト目と3バイト目のデータが、リードデータとし
て演算装置に転送されることになる。
【0018】また、エントリ1とエントリ3の両方のア
ドレスがリードアドレスと一致した場合、エントリ3の
データがエントリ1のデータよりも新しいので、2バイ
ト目と4バイト目のデータをエントリ3から読みだし、
1バイト目と3バイト目のデータをエントリ1から読み
だす。
【0019】ストアアドレスとリードアドレスが一致し
た場合の詳細な動作を、図4を用いて説明する。図4
は、リードポインタと、ストアバッファの各エントリの
ヒット情報と、データセレクト制御回路が選択するエン
トリの関係を示す図である。図4は、ストアデータの1
バイトの選択に対応し、この動作を達成する論理を、ス
トアデータのバイト数だけデータセレクト制御回路中に
備える。リードポインタは、キャッシュメモリあるいは
主記憶に対してストアデータを書き込むエントリを指示
するポインタである。ストアバッファが先入れ先だしバ
ッファである場合、ストアバッファ内の最も古いエント
リから順に、キャッシュメモリあるいは主記憶に書き込
む。
【0020】図4中の各値(0,1,X)は、ヒット情
報であり、リードアドレスとストアアドレスの比較結果
と、バリッドビット,有効バイト情報の論理積である。
この値が1であるエントリが、リードデータとして選択
される可能性がある。図3でエントリ1と3のストアア
ドレスがリードアドレスと一致した場合について説明す
る。図3ではエントリ1が最も古いエントリなので、リ
ードポインタはエントリ1を指示する。1バイト目と3
バイト目のヒット情報は、エントリ1が1、その他のエ
ントリが0なので、図4からエントリ1を選択する。2
バイト目と4バイト目のヒット情報は、エントリ1とエ
ントリ3が1、その他のエントリが0なので、図4から
エントリ3を選択する。このような動作を行うことによ
り、リードアドレスが複数のストアアドレスと一致した
場合でも、最新の情報を読みだすことができる。
【0021】上記の実施例では、ストア命令の実行時
に、ストアバッファに既に登録済みのエントリのアドレ
スとストアアドレスが一致した場合でも、有効バイト情
報をそのまま書き込むことを想定している。そのため複
数のエントリのアドレスがリードアドレスと一致した場
合、最新のデータを読みだすために、図4のような論理
を組む必要がある。
【0022】有効バイト情報を書き込む際の別の実施例
を、図5を用いて説明する。図5は、エントリ3をスト
アする際に、エントリ1とアドレスが一致した場合の動
作を示す。図5において(a)はエントリ3をストアす
る前のストアバッファの状態、(b)はエントリ3をス
トアした後のストアバッファの状態である。図5(a)で
は、エントリ3の2バイト目と4バイト目のデータが有
効なので、エントリ3をストアする際に、エントリ1の
2バイト目と4バイト目の有効バイト情報をリセットす
る。このことにより、各バイトで有効なデータを持つエ
ントリが一つしか存在しなくなる。従って、アドレスが
一致し、有効バイト情報が1であるデータを、そのまま
リードデータとして転送すればよく、図4のような動作
が不要になり、制御が簡単になる。
【0023】ストアバッファのデータをキャッシュメモ
リに書き込む際に、ワード単位で書き込み制御を行うシ
ステムでは、図5(b)のエントリ1のように全てのバ
イトが有効でない場合に、キャッシュメモリのデータを
一旦読み、このデータにストアバッファのデータをマー
ジして再びキャッシュメモリに書き込む必要がある。一
方、図3のエントリ1のように全てのバイトが有効であ
る場合には、直接データをキャッシュメモリに書き込む
ことができ、書き込み時間が短い。そこで、リード要求
のあったデータを読みだすための有効バイト情報と、キ
ャッシュメモリに書き込むための有効バイト情報を独立
に設け、前者に図5に示した動作をさせ、後者に図3に
示した動作をさせることにより、ストアバッファからキ
ャッシュメモリへの書き込みを高速化することができ
る。
【0024】なお、本発明でのストアバッファのエント
リ数,データバッファのバイト数,及び、リードデータ
のバイト数は、実施例の説明で用いた数に限定されるも
のではない。また、本実施例では演算装置からのリード
要求あった場合について説明したが、他プロセッサから
のリード要求があった場合でも、同様な動作をし、スト
アバッファのデータを直接リードデータとして転送でき
る。
【0025】図6は、キャッシュメモリを持たない記憶
装置の例を示す。演算装置からリード要求があると、ス
トアバッファ1のアドレスバッファ11に保持されたア
ドレスとリードアドレスとの比較を比較回路4で行う。
比較結果が一致し、バリッドビット12が1であるエン
トリのうち、有効バイト情報13で示される有効データ
をストアバッファからリードデータとして転送し、その
他のデータを主記憶から転送する。ストアバッファのア
ドレスが一致しない場合は、主記憶のデータをリードデ
ータとして転送する。
【0026】
【発明の効果】本発明では、キャッシュメモリ、あるい
は主記憶に対して、演算装置からリード要求のあったデ
ータをストアバッファが保持している場合に、ストアバ
ッファのデータを直接リードデータとして転送する。従
って、ストアデータをストアバッファからキャッシュメ
モリ、あるいは主記憶に書き込む必要がないため、演算
装置から要求されたリードデータの転送時間が短縮され
る。
【図面の簡単な説明】
【図1】本発明の実施例を示すブロック図。
【図2】図1の動作の説明図。
【図3】ストアバッファの実施例を示す説明図。
【図4】データセレクト制御回路の動作を示す説明図。
【図5】ストアバッファの別の実施例を示す説明図。
【図6】本発明の別の実施例を示すブロック図。
【符号の説明】
1…ストアバッファ、2…キャッシュメモリ、3…主記
憶、4,5…比較回路。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 司 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】キャッシュメモリあるいは主記憶に書き込
    むデータを一時的に保持するストアバッファを備える記
    憶装置において、前記キャッシュメモリあるいは主記憶
    に対してリード要求があったデータを前記ストアバッフ
    ァが保持している際に、前記ストアバッファから前記デ
    ータを読みだすことを特徴とする記憶装置。
  2. 【請求項2】請求項1において、前記ストアバッファ
    は、ストアアドレスと、ストアデータと、ストアデータ
    の有効バイト位置を示す情報を、複数組保持する記憶装
    置。
  3. 【請求項3】請求項1または2において、前記キャッシ
    ュメモリあるいは主記憶に対してリード要求のあったデ
    ータのアドレスと、前記ストアアドレスとの比較をする
    手段と、比較結果に従って、前記ストアデータとキャッ
    シュメモリあるいは主記憶のデータのいずれかを選択す
    る手段を備える記憶装置。
  4. 【請求項4】請求項1,2または3において、前記スト
    アデータは、バイト毎に読みだし可能であり、前記キャ
    ッシュメモリあるいは主記憶に対してリード要求のあっ
    たデータを前記ストアバッファが保持している際に、前
    記ストアデータの有効バイト位置を示す情報に対応する
    有効なデータを前記ストアバッファから読みだし、有効
    でないデータを前記キャッシュメモリあるいは主記憶か
    ら読みだす記憶装置。
  5. 【請求項5】請求項1,2,3または4において、前記
    キャッシュメモリあるいは主記憶に対してリード要求が
    あったデータを前記ストアバッファが複数組保持してい
    る際に、最新のストアデータを優先的に読みだす手段を
    備える記憶装置。
  6. 【請求項6】請求項1,2,3,4または5において、
    前記ストアバッファに書き込みを行う前記ストアアドレ
    スと、ストアバッファに登録済みのストアアドレスが一
    致した際に、書き込みを行う前記ストアデータの有効バ
    イト位置を示す情報に対する、ストアバッファに登録済
    みのストアデータの有効バイト位置を示す情報をリセッ
    トする手段を備える記憶装置。
  7. 【請求項7】請求項1,2,3,4,5または6におい
    て、前記ストアバッファは、リード要求のあったデータ
    を読みだすための前記ストアデータの有効バイト位置を
    示す情報と、キャッシュメモリあるいは主記憶に対して
    書き込むための前記ストアデータの有効バイト位置を示
    す情報を備え、ストアバッファに書き込みを行う前記ス
    トアアドレスと、ストアバッファに登録済みのストアア
    ドレスが一致した際に、リード要求のあったデータを読
    みだすためのストアデータの有効バイト位置を示す情報
    のみを、前記リセットする手段によりリセットする記憶
    装置。
JP5091061A 1993-04-19 1993-04-19 記憶装置 Pending JPH06301600A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5091061A JPH06301600A (ja) 1993-04-19 1993-04-19 記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5091061A JPH06301600A (ja) 1993-04-19 1993-04-19 記憶装置

Publications (1)

Publication Number Publication Date
JPH06301600A true JPH06301600A (ja) 1994-10-28

Family

ID=14015993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5091061A Pending JPH06301600A (ja) 1993-04-19 1993-04-19 記憶装置

Country Status (1)

Country Link
JP (1) JPH06301600A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678789B2 (en) 2000-04-05 2004-01-13 Nec Corporation Memory device
US7093074B2 (en) 2000-01-19 2006-08-15 Fujitsu Limited Storage control device and storage control method
EP1703405A2 (en) 2005-03-17 2006-09-20 Fujitsu Limited Information processing device and data control method in information processing device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093074B2 (en) 2000-01-19 2006-08-15 Fujitsu Limited Storage control device and storage control method
US6678789B2 (en) 2000-04-05 2004-01-13 Nec Corporation Memory device
EP1703405A2 (en) 2005-03-17 2006-09-20 Fujitsu Limited Information processing device and data control method in information processing device
JP2006260159A (ja) * 2005-03-17 2006-09-28 Fujitsu Ltd 情報処理装置、情報処理装置におけるデータ制御方法
KR100709541B1 (ko) * 2005-03-17 2007-04-20 후지쯔 가부시끼가이샤 정보 처리 장치, 정보 처리 장치에 있어서의 데이터 제어방법
EP1703405A3 (en) * 2005-03-17 2008-05-28 Fujitsu Limited Information processing device and data control method in information processing device
US7711899B2 (en) 2005-03-17 2010-05-04 Fujitsu Limited Information processing device and data control method in information processing device

Similar Documents

Publication Publication Date Title
US5283883A (en) Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
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
JPH08263424A (ja) コンピュータ装置
JPH04306748A (ja) 情報処理装置
JPH0668736B2 (ja) 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法
EP0167089B1 (en) Memory access control system and method for an information processing apparatus
JPH0532775B2 (ja)
JP3407808B2 (ja) コンピュータシステム
US4737908A (en) Buffer memory control system
US6374344B1 (en) Methods and apparatus for processing load instructions in the presence of RAM array and data bus conflicts
JP2580263B2 (ja) バッファ記憶装置
JPH05282208A (ja) キャッシュメモリ制御方式
US5926840A (en) Out-of-order fetching
JP3132566B2 (ja) 命令先行制御装置
JPH06103477B2 (ja) 並列キャッシュメモリ
JP3039391B2 (ja) メモリシステム
JPS6236258B2 (ja)
JPH10111798A (ja) 情報処理装置
JPS59112479A (ja) キヤツシユメモリの高速アクセス方式
JP2762798B2 (ja) 命令キャッシュを有するパイプライン構成の情報処理装置
JP2645477B2 (ja) マイクロプロセッサ及びそのキャッシュメモリ
JP2762797B2 (ja) 命令キャッシュを有するパイプライン構成の情報処理装置
JP2864548B2 (ja) 命令キャッシュ装置
JPH09282231A (ja) ライトバック型キャッシュ装置
EP0400851A2 (en) Efficient cache utilizing a store buffer