JPH08212133A - データ処理装置及びキャッシュメモリ制御方法 - Google Patents

データ処理装置及びキャッシュメモリ制御方法

Info

Publication number
JPH08212133A
JPH08212133A JP7034422A JP3442295A JPH08212133A JP H08212133 A JPH08212133 A JP H08212133A JP 7034422 A JP7034422 A JP 7034422A JP 3442295 A JP3442295 A JP 3442295A JP H08212133 A JPH08212133 A JP H08212133A
Authority
JP
Japan
Prior art keywords
data
write
cache
buffer
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
JP7034422A
Other languages
English (en)
Inventor
Toshihiko Kurihara
俊彦 栗原
Kenji Matsubara
健二 松原
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 JP7034422A priority Critical patent/JPH08212133A/ja
Priority to TW084113646A priority patent/TW296442B/zh
Priority to KR1019960001988A priority patent/KR960029986A/ko
Publication of JPH08212133A publication Critical patent/JPH08212133A/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache

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)【要約】 【目的】 同一キャッシュラインを対象とする連続的な
ストアに際してもキャッシュミスによるデータ処理性能
の低下を阻止する。 【構成】 ストア命令実行に際してのキャッシュミスに
おいてミスに係る上位記憶装置からのブロックデータを
新たなキャッシュエントリとして追加するキャッシュ制
御方式において、同一キャッシュラインに置かれるよう
な同一ブロックへのストアが連続するとき、それをアド
レス比較器95が検出し、一旦キャッシュミスが発生し
た後のキャッシュミスにおいてもキャッシュ制御装置6
0がそのストアデータを続けてライトバッファ9に保持
させる。この状態はストア要求に対する応答として命令
処理装置8に返され、命令処理装置は連続する当該スト
ア命令の実行完了を認識して次の命令実行へ制御を進め
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は所謂スワップ方式で制御
されるキャッシュメモリを備えたデータ処理装置、さら
にはそのキャッシュメモリの制御方法に関し、特に、キ
ャッシュメモリ上で同一キャッシュラインとされるよう
なデータの連続的なストアに際してもキャッシュミスに
よるデータ処理性能の低下を阻止する技術に関し、例え
ばキャッシュメモリを備えパイプライン形式で命令を実
行するマイクロプロセッサ(マイクロコンピュータ)に
適用して有効な技術に関するものである。
【0002】
【従来の技術】データ処理システム(データ処理装置)
の処理能力を向上させるためにキャッシュメモリを用い
ることができる。中央処理装置などを含む命令処理装置
が実行するプログラムは、それによって参照されるアド
レスには局所性があるという経験則がある。そのため、
主記憶装置よりも記憶容量は小さいが高速アクセス可能
なキャッシュメモリに、主記憶装置に保持されたデータ
の一部のデータと同一のデータがコピーされて保持され
る。命令処理装置がメモリリードアクセスを行なう時、
命令処理装置はまず、キャッシュメモリをアクセスす
る。キャッシュメモリ上に必要なデータが存在するとき
(キャッシュヒット)は、キャッシュメモリからデータ
がリードされて命令処理装置へ供給される。したがっ
て、主記憶装置へのアクセスが必要となるので見かけ上
のメモリアクセスタイムが減少し、データ処理システム
のデータ処理性能を向上させることができる。主記憶装
置からキャッシュメモリへのデータのコピーは、参照さ
れるアドレスの局所性の程度を考慮して決定されるデー
タのブロックを単位として行なわれる。一つのデータブ
ロックの大きさは通常16〜128バイト程度とされる
ものが多い。
【0003】このようなキャッシュメモリを備えたデー
タ処理装置においてアクセス対象データを含むデータブ
ロックがキャッシュメモリ上に存在しない場合、即ち、
キャッシュミスの場合には、主記憶装置から当該アクセ
ス対象データを含むデータブロックをキャッシュメモリ
に転送(ムーブイン)する必要がある。その間、命令処
理装置は処理待ちの状態にされるので、その分だけ命令
処理装置のデータ処理能力が低下する。そのため、キャ
ッシュミス時における命令処理装置のデータ処理能力低
下をなるべく抑えることができるキャッシュ制御方式が
要求される。
【0004】この点に関し、特開昭63−311548
号公報(公開日:1988年12月20日)には、次の
制御方式が開示されている。キャッシュメモリに対する
ライトデータバッファが設けられる。レジスタからメモ
リへデータの書込みを指示するようなストア命令の実行
においてキャッシュミスした場合には、一旦ライトデー
タバッファにライトデータが書き込まれ、ムーブイン完
了後にライトデータバッファからライトデータがキャッ
シュメモリに書き込まれる。この方式では、命令処理装
置はライトデータバッファにライトデータを書き込んだ
時点で当該データのストアを終了させることができ、後
続の命令の処理を開始することができるため、命令処理
装置の処理待ち時間が減って、そのデータ処理能を向上
させることができる。
【0005】
【発明が解決しようとする課題】本発明者は、上記キャ
ッシュ制御方式について検討した。ライトデータバッフ
ァにライトデータが書き込まれた状態において、後続の
ストア命令によるメモリライトアクセスがさらにキャッ
シュミス(2回目のミス)すると、当該2回目のミスに
係るライトデータもライトデータバッファに格納可能に
されていなければ、先のストア命令に係るデータブロッ
クが主記憶装置から転送完了されるまで命令処理装置は
処理待ちとされることがわかった。このため、汎用レジ
スタの内容をメモリ上に設けられたスタックへ退避する
場合のように、キャッシュメモリ上において同一キャッ
シュラインに置かれることになるような同一ブロックへ
のストアが連続するようなときに、一旦キャッシュミス
が発生すると、データ処理性能が大きく低下してしまう
おそれのあることもわかった。
【0006】本発明の目的は、キャッシュメモリ上で同
一キャッシュラインとされるようなデータの連続的なス
トアに際してもキャッシュミスによるデータ処理性能の
低下を阻止することができるデータ処理装置及びキャッ
シュ制御方法を提供することにある。
【0007】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0008】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0009】〔1〕データ処理装置は、アドレス信号を
生成してメモリアクセス可能な命令処理装置(8)と、
アドレス信号に含まれるインデックスアドレス(IDX
i)によってキャッシュラインが選択され、キャッシュ
ラインは当該アドレス信号に含まれるタグアドレス(T
AGi)と比較されるべきキャッシュタグと対を成す一
つのブロックデータ領域を有し、選択されたキャッシュ
ラインにおけるブロックデータ領域の中から一つのデー
タ領域の所在がデータ語選択情報(BMRK)によって
指定されるキャッシュメモリ(6)と、ライトアクセス
におけるキャッシュメモリのキャッシュミスにおいてミ
スに係るインデックスアドレス及びタグアドレスを共通
とするブロックデータがキャッシュメモリの上位記憶装
置(2,4)より転送されるムーブインデータバッファ
(93)と、ライトアクセスにおけるキャッシュメモリ
のキャッシュミスにおいてミスに係るアドレス信号のタ
グアドレス及びインデックスアドレスを保持するライト
アドレスバッファ(90)、上記一つのブロックデータ
領域に相当する記憶領域にデータ語選択情報に従ってラ
イトデータを保持するライトデータバッファ(91)、
及びライトデータバッファに保持されたライトデータの
データ語選択情報を保持するデータ語選択情報バッファ
(92)を供えたライトバッファ(9)と、ライトアク
セスのアドレス信号に含まれる上記タグアドレス及びイ
ンデックスアドレスを、ライトアドレスバッファが保持
するタグアドレス及びインデックスアドレスと比較する
アドレス比較器(95)と、ライトアクセスにおけるキ
ャッシュメモリのキャッシュミスにおいて上記ライトデ
ータバッファに有効なデータが保持されていないとき
と、同じくライトアクセスにおけるキャッシュメモリの
キャッシュミスにおいてライトデータバッファに有効な
データが保持され上記アドレス比較器による一致が検出
されたときに、当該ライトアクセスに係るライトデータ
をそのデータ語選択情報に応ずるライトデータバッファ
上のブロックデータ領域のデータ領域に格納させるキャ
ッシュ制御装置(60)と、を備えて構成される。
【0010】〔2〕上記データ処理装置において、キャ
ッシュメモリに対するキャッシュライトミスに係る新た
なエントリの追加とライトバッファに格納されたライト
データの書込みとを効率化するには、ライトアクセスに
おけるキャッシュメモリのキャッシュミスにおいて、上
位記憶装置からムーブインデータバッファに転送完了さ
れたブロックデータを、上記データ語選択情報バッファ
のデータ語選択情報が示すライトデータバッファ上のデ
ータ領域のデータで置き換えてキャッシュメモリに供給
する選択回路(94)を更に設ける。
【0011】〔3〕パイプライン方式による命令実行を
考慮する場合、実行命令処理装置(8)は命令フェッチ
(IF)、命令デコード(D)、演算(E)、メモリア
クセス(A)、及び書込み(W)の各ステージを含んで
命令実行をパイプライン制御するシーケンス制御回路
(80)を供え、このシーケンス制御回路は、ストア命
令によるメモリライトアクセスの要求(STRREQ)
をキャッシュ制御装置(60)に与え、それに対する応
答(L/SACK)を待って次命令のメモリアクセスに
進み、且つ、パイプラインロックの指示(LOCK)が
有効にされる期間においてはメモリアクセス以前のパイ
プラインステージの動作を停止させるものとし、上記キ
ャッシュ制御装置(60)は、ストア命令によるメモリ
ライトアクセスが要求されたとき(STRREQ=
1)、その要求に応ずるライトアクセスがキャッシュヒ
ットの状態(DCMISS=0)と、その要求に応ずる
ライトアクセスがキャッシュミス(DCMISS=1)
で且つ上記ライトデータバッファに有効なデータが保持
されていない状態(WBFRVLD=0)と、その要求
に応ずるライトアクセスがキャッシュミス(DCMIS
S=1)で且つライトデータバッファに有効なデータが
保持され(WBFRVLD=1)アドレス比較器による
一致(BLKMCH=1)が検出された状態との夫々に
おいて当該メモリアクセス要求に対する応答(L/SA
CK)を命令処理装置(8)に返し、また、そのメモリ
アクセス要求に応ずるライトアクセスがキャッシュミス
(DCMISS=1)で且つライトデータバッファに有
効なデータが保持され(WBFRVLD=1)アドレス
比較器による不一致(BLKMCH=0)が検出された
状態では命令処理装置にパイプラインロックを指示し
(KOCK=1)その後キャッシュミスに係るアドレス
のブロックデータが上位記憶装置から上記ムーブインデ
ータバッファに転送完了されるのを待ってパイプライン
ロックの解除と当該メモリアクセス要求に対する応答と
を命令処理装置に与えるように構成することができる。
【0012】〔4〕命令処理装置(8)が、演算回路
(82)と、内部バスに結合されたレジスタ回路(8
1)と、内部バス上のライトデータを当該内部バスより
もビット数の多いキャッシュバスに振り分けるためのア
ライナ(84)とを有するとき、上記演算回路から出力
される書込みアドレスと書込みデータのサイズ情報とを
受け書込みアドレスの一部をデコードして得られるビッ
位置を基準にデータサイズに応じたビットを選択レベル
としてデータ語選択情報(BMRK)を生成すると共
に、生成されたデータ語選択情報で指示されるキャッシ
ュバス上のデータ位置に内部バスを振り分け制御するデ
コーダ(83)を設けることにより、キャッシュライト
ミスに係るライトデータをそのデータ語選択情報に応ず
るライトデータバッファ上のブロックデータ領域のデー
タ領域に格納させることができる。
【0013】〔5〕別の観点による本発明、即ち、メモ
リをライトアクセス可能な命令処理装置(8)と、この
命令処理装置に接続されたキャッシュメモリ(6)と、
ライトアクセスにおけるキャッシュメモリのキャッシュ
ミスに係るアクセスアドレス情報とライトデータとを一
時的に保持するライトバッファ(9)と、上記ミスに係
るアクセスアドレスのデータを含むブロックデータがキ
ャッシュメモリの上位記憶装置(2,4)より転送され
るムーブインデータバッファ(93)とを備えたデータ
処理装置におけるキャッシュメモリ制御方法は、ライト
アクセスにおけるキャッシュメモリのキャッシュミスに
対して上記ムーブインデータバッファに上記ブロックデ
ータをデータ転送する第1の処理と、上記ムーブインデ
ータバッファにデータ転送されたブロックデータの一部
をライトバッファが保有するキャッシュミスに係るライ
トデータに置き換えてキャッシュメモリの所定のキャッ
シュラインに格納する第2の処理と、上記第2の処理の
前に、キャッシュラインを共有するアクセスアドレスに
ついてのキャッシュミスに係るライトアクセスが続いた
とき、当該後続のキャッシュミスに係るライトデータ
を、先に格納されているライトデータと格納位置を変え
てライトバッファに格納する第3の処理とを含む。
【0014】
【作用】上記した手段によれば、汎用レジスタの内容を
メモリ上に設けられたスタック領域へ退避する場合のよ
うに、キャッシュメモリ上において同一キャッシュライ
ンに置かれることになるような同一ブロックへのストア
が連続するようなときに、それをアドレス比較器(9
5)が検出することにより、一旦キャッシュミスが発生
した後のキャッシュミスにおいてもキャッシュ制御装置
(60)がそのストアデータを続けてライトバッファ9
に保持させていく。ストアデータがライトバッファ
(9)に保持される状態はストアに対する応答などによ
って命令処理装置(8)に返される。それによって命令
処理装置(8)は、当該ライトアクセス若しくはストア
命令の実行完了を認識して、次の命令実行へ制御を進め
ることができる。このことが、命令処理装置の処理待ち
期間を短縮し、キャッシュメモリ上で同一キャッシュラ
インとされるようなデータの連続的なストアに際しても
キャッシュミスによるデータ処理性能の低下を阻止す
る。
【0015】その間にキャッシュミスに係るブロックデ
ータが上位記憶装置からムーブインデータバッファに転
送される。ムーブインデータバッファに転送されたデー
タとライトバッファのデータはキャッシュメモリに新た
なエントリとして追加されることになる。このとき選択
回路(94)は、ムーブインデータバッファのブロック
データとライトデータバッファのデータとをバイトマー
クに従って合成する。合成されたデータは、キャッシュ
ミスに係るストアデータを含む新たなエントリとしてキ
ャッシュメモリ(6)に追加される。したがって、上記
キャッシュエントリの追加を、ムーブインデータバッフ
ァのブロックデータの書込みと、ライトデータバッファ
のデータをバイトマークで選択して行う書込みとに分け
て行うことを要せず、この点においても命令処理装置の
処理待ちの期間を短縮する。
【0016】
【実施例】図1には本発明の一実施例に係るマイクロプ
ロセッサのブロック図が示される。本実施例のマイクロ
プロセッサ1は、特に制限されないが、RISC(Re
duced Instruction Set Com
puter)アーキテクチャに基づいて形成されたもの
であり、公知の半導体集積回路製造技術によって単結晶
シリコンのような1個の半導体基板に形成される。
【0017】RISCアーキテクチャを有する本実施例
のマイクロプロセッサ1は、特に制限されないが、命令
長は全て32ビットである。命令セット内に含まれる命
令の数が縮少されており、たとえば、メモリをアクセス
する命令は、メモリから汎用レジスタへデータを転送す
るロード命令と、逆に汎用レジスタからメモリへデータ
を転送するストア命令のみとされる。また、キャッシュ
方式は特に制限されないが、2階層キャッシュ方式が採
用され、マイクロプロセッサ1は、互いに独立した命令
1次キャッシュメモリ5と、データ1次キャッシュメモ
リ6とを持ち、マイクロプロセッサ1の外部にデータと
命令が混在するユニファイドキャッシュメモリとしての
2次キャッシュメモリ2が接続されている。主記憶装置
4はメモリバス3を介してマイクロプロセッサ1に接続
される。2次キャッシュメモリ2及び主記憶装置4は後
述する命令1次キャッシュメモリ5及びデータ1次キャ
ッシュメモリ6に対する上位記憶装置として位置付けら
れる。
【0018】データ1次キャッシュメモリ6と2次キャ
ッシュメモリ2との間はストアスルー制御とされ、スト
アデータをデータ1次キャッシュメモリ6に書き込むと
きは必ず2次キャッシュメモリ2にも書き込みされるよ
うになっている。2次キャッシュメモリ2と主記憶装置
4との間はライトバック制御とされ、ストアデータは2
次キャッシュメモリ2のみに書き込まれ、2次キャッシ
ュメモリ2の中の所定キャッシュラインの置き換え即ち
エントリのリプレースが発生し且つ2次キャッシュメモ
リ2のデータと主記憶装置4のデータとが不一致である
ときに2次キャッシュメモリ2のデータが主記憶装置4
に書き込まれる。また、データ1次キャッシュメモリ6
と2次キャッシュメモリ2とのスループットの差を吸収
するためにファースト・イン・ファースト・アウト・バ
ッファによって構成されたストアバッファ7が設けられ
ている。データ転送は1次キャッシュメモリ5,6と2
次キャッシュメモリ2との間では16バイトを1ブロッ
クとする単位で行なわれ、2次キャッシュメモリ2と主
記憶装置4との間も同様に16バイトを1ブロックとす
るデータ単位で行なわれる。また、特に制限されない
が、1次キャッシュメモリ5,6、2次キャッシュメモ
リ2、ストアバッファ7のデータ書き込み幅は全て、1
6バイトとされる。16バイトのデータ書込み幅に対す
る書込み位置の指定は、中央処理装置(CPU)などを
含む命令処理装置8が生成する16ビットのバイトマー
クBMRK(データ語選択情報)によって指定される。
このバイトマークBMRKについては後で詳述するが、
命令処理装置8が管理するアドレスはバイトアドレスと
され、アクセスアドレスの下位4ビットとデータサイズ
とに基づいてバイトマークBMRKが生成される。
【0019】また、命令処理装置8がストア命令を実行
したときにデータ1次キャッシュメモリ6がキャッシュ
ミスを生じた場合、キャッシュミスに係るエントリを主
記憶装置4又は2次キャッシュメモリ2からデータ1次
キャッシュメモリ6に転送するスワップ方式が採用され
る。このとき、ストアバッファ7とは別に、ライトバッ
ファ9が設けられ、ストア命令の実行でデータ1次キャ
ッシュメモリ6がキャッシュミスしたときは当該ライト
バッファ9に一時的にストアデータなどを書き込んでお
くことで、命令処理装置8は、2次キャッシュメモリ2
又は主記憶装置4よりのデータのブロック転送の完了を
待つことなく後続命令の実行を続けることができるよう
になっている。その詳細は後述する。
【0020】命令1次キャッシュメモリ5は命令1次キ
ャッシュ制御装置50によってその動作が制御される。
命令処理装置8は命令フェッチのときに命令アドレスI
ADRSを出力し、命令1次キャッシュ制御装置507
に命令読み出し要求(命令フェッチ要求)IFREQを
送る。このIFREQ要求を受け取った命令1次キャッ
シュ制御装置50は、命令1次キャッシュメモリ5がそ
の命令アドレスIADRSに対してキャッシュヒットし
たときは、命令1次キャッシュメモリ5から読み出され
た命令コードICRDをセレクタ51を介して命令処理
装置8に供給させる。命令1次キャッシュメモリ5がキ
ャッシュミスしたとき命令1次キャッシュ制御装置50
は、2次キャッシュ制御装置10に命令ブロック転送要
求ITREQを出し、それに対する2次キャッシュ制御
装置10の応答(命令ブロック転送応答)ITACKと
共に2次キャッシュメモリ2又は主記憶装置4から転送
される命令コードICRDを命令セレクタ51を介して
命令処理装置8に供給させる。命令1次キャッシュ制御
装置50は命令処理装置8へ命令コードICRDを供給
するとき、命令読み出し応答(命令フェッチ承認)IF
ACKを命令処理装置8に返す。尚、命令1次キャッシ
ュ制御装置50は図示しない命令用アドレス変換バッフ
ァを使って、当該ページに対するアクセスが許されてい
るかどうかを調べ、許されていなければアクセス保護違
反などの例外処理要求を命令処理装置8に与える。
【0021】データ1次キャッシュメモリ6は、特に制
限されないが、複数例えば128のキャッシュラインを
備え、各キャッシュラインは物理ページ番号等の記憶領
域と16バイトのデータ部とから構成される。命令処理
装置8が生成する論理アドレスは論理ページ番号(論理
ページアドレス)とオフセットから成り、当該オフセッ
トの下位4ビット(第0ビット〜第3ビット)は上記バ
イトマークBMRKの生成に利用され、本実施例に従え
ば、16バイトのデータ部(一つのブロックデータ領
域)におけるデータ位置の指定はバイトマークBMRK
によって行われる。バイトマークBMRKは命令処理装
置8が生成するアドレス信号の下位4ビットとデータの
サイズを表わす制御情報から生成される16ビットの情
報である。上記オフセットの上位側7ビット(第4ビッ
トから第10ビット)はインデックスアドレスとされ、
キャッシュラインの選択即ちインデックスに利用され
る。本実施例ではオフセットは11ビットとされ、これ
によりページサイズは2Kバイトとされる。インデック
スされたキャッシュラインが保有する物理ページ番号は
キャッシュタグとされ、アクセスアドレスの物理ページ
番号と比較され、一致であればキャッシュヒット、不一
致であればキャッシュミスとされる。この実施例に従え
ば、キャッシュタグと比較されるアドレス信号の物理ペ
ージ番号がタグアドレスとされる。論理ページ番号を物
理ページ番号に変換するのは図示しないデータ用アドレ
ス変換バッファにて行われる。図1には当該アドレス変
換バッファは図示されていないが、上命令処理装置8に
内蔵されているものと理解されたい。従って、図1に示
されるデータアドレスDADRSは物理ページ番号(タ
グアドレス)とオフセットの内の上記インデックスに利
用されるアドレスビット(インデックスアドレス)とを
含むものとされる。オフセットは物理アドレスと論理ア
ドレス相互間で共通である。
【0022】データ1次キャッシュメモリ6はデータ1
次キャッシュ制御装置60によってその動作が制御され
る。命令処理装置8は、データアクセスのときにデータ
アドレスDADRS及びバイトマークBMARを出力
し、そのデータアクセスがストア(メモリライト)の場
合にはストア要求STRREQを、そのデータアクセス
がロード(メモリリード)の場合にはロード要求LRD
REQを、データ1次キャッシュ制御装置60に与え
る。データアドレスDADRSにてキャッシュタグがイ
ンデックスされると、それによって得られた物理ページ
番号(物理ページアドレス)とデータ用アドレス変換バ
ッファを介して供給された物理ページアドレス(タグア
ドレス)とが比較され、データ1次キャッシュ制御装置
60はその比較結果によってデータ1次キャッシュメモ
リ6のキャッシュヒット/ミスを判定する。このとき、
データ用アドレス変換バッファ上にあるアクセス保護情
報を使って、当該ページに対するアクセスが許されてい
るかなどを調べ、メモリ保護違反などの場合にはそれに
対処するための例外処理が要求される。
【0023】ロード要求においてキャッシュヒットが判
定されたときは、インデックスされたキャッシュライン
のデータ部のデータがバイトマークBMRKに従って選
択され、ロードセレクタ61を介して命令処理装置8に
与えられる。ロード要求においてキャッシュミスが判定
されたときは、データ1次キャッシュ制御装置60は、
2次キャッシュ制御装置10にデータブロック転送要求
DTREQを出し、それに対する応答(データブロック
転送応答)DTACKと共に2次キャッシュメモリ2又
は主記憶装置4から転送されるデータをロードデータセ
レクタ61を介して命令処理装置8に供給させる。
【0024】ストア要求においてキャッシュヒットが判
定されたときは、インデックスされたキャッシュライン
のデータ部の一部がバイトマークBMRKに従って選択
され、命令処理装置8からのストアデータSTRDAT
がライトセレクタ62を介してその部分に書き込みされ
る。データ1次キャッシュメモリ6に対する書込みに際
してデータ1次キャッシュ制御装置60はストアバッフ
ァ書込み要求SBWREQを2次キャッシュ制御装置1
0に与え、これによって当該ストアに係るストアデータ
STRDAT、データアドレスDADRS、及びバイト
マークBMRKが2次キャッシュメモリ2に一時的に格
納される。
【0025】ストア要求においてキャッシュミスが発生
したとき、主記憶装置4又は2次キャッシュメモリ2か
ら当該データブロックをキャッシュメモリに転送(ムー
ブイン)する必要がある。図1において93はムーブイ
ンデータバッファであり、ストア要求時のライトアクセ
スにおけるデータ1次キャッシュメモリ6のキャッシュ
ミスにおいてミスに係るライトアクセスアドレスのデー
タアドレスDADRS(上記タグアドレス及びインデッ
クスアドレス)を共通とするブロックデータが2次キャ
ッシュメモリ2又は主記憶装置4より読出されて格納さ
れる。斯るムーブインデータバッファへのデータブロッ
ク転送の間、命令処理装置8を処理待ちの状態から解放
するために前記ライトバッファ9が設けられている。
尚、ムーブインのためのデータブロック転送要求DTR
EQはデータ1次キャッシュ制御装置60から2次キャ
ッシュ制御装置10に与えられる。
【0026】上記ライトバッファ9は、ライトアドレス
バッファ90、ライトデータバッファ91、及びバイト
マークバッファ92を備える。ライトアドレスバッファ
90は、ライトアクセスにおけるデータ1次キャッシュ
メモリ6のキャッシュミスにおいてミスに係るデータア
ドレスDADRS(本実施例に従えば物理ページ番号で
あるタグアドレスとデータ1次キャッシュメモリ6のイ
ンデックスに利用されるインデックスアドレス)を保持
する。上記ライトデータバッファ91は、データ1次キ
ャッシュメモリ6のデータ部の一つのブロックデータ領
域に相当する記憶領域即ち16バイトの記憶領域を供
え、当該記憶領域にバイトマークBMRKに従ってライ
トデータを保持する。バイトマークバッファ(データ語
選択情報バッファ)92は、ライトデータバッファ91
に保持されたライトデータ(ストアデータ)のバイトマ
ークBMRKを保持する。
【0027】図2には命令処理装置8の内部構成が部分
的に示される。同図にはそれぞれ4バイトの3本のバス
BUS1,BUS2,BUS3が代表的に示されてお
り、80は命令の実行を後述するパイプライン的に制御
すると共に命令実行順序を制御するためのシーケンス制
御回路である。命令処理装置8は汎用レジスタ81を供
え、これがデータレジスタやアドレスレジスタ等に利用
される。デコーダ83は、演算器82で演算された論理
アドレスLADRSの下位4ビットとストアデータのデ
ータサイズが供給され、それに基づいてバイトマークB
MRKを生成する。アライナ84は4バイトのバスBU
S3のデータを16バイトのストアデータバス(図1の
ストアデータSTRDATが供給されるバス)にバイト
単位で割り振る。その割り振り制御はデコーダ83が形
成するバイトマークBMRKによって行われる。例えば
デコーダ83に供給される4ビットのアドレスビットが
全ビット論理値”0”のとき、データサイズが4バイト
ならばバイトマークBMRKの最下位から4ビットが論
理値”1”にされ、これによって4バイトのストアデー
タは16バイトのストアデータバスの下位側4バイトに
配置される。このとき、データサイズが2バイトならば
バイトマークBMRKの最下位から2ビットが論理値”
1”にされ、これによって2バイトのストアデータは1
6バイトのストアデータバスの下位側2バイトに配置さ
れる。尚、上記データアドレスDADRSは、演算器8
2で生成された論理アドレスLADRSの論理ページ番
号を図示しないデータ用アドレス変換バッファで変換し
て得られる物理ページ番号とそのオフセットを利用して
生成されることになる。
【0028】図1において95は、連続するデータスト
アがデータ1次キャッシュメモリ6の同一キャッシュラ
インに対するものか否かを判定するアドレス比較器であ
る。当該アドレス比較器95はライトアドレスバッファ
93が保持する前回のストアに係るデータアドレスDA
DRSと命令処理装置8が今回出力するデータアドレス
DADRSとを比較し、その結果をデータ1次キャッシ
ュ制御装置60に与える。アドレス比較器95による比
較結果が一致する場合は、前後するストアアドレスがデ
ータ1次キャッシュメモリ6の同一キャッシュラインに
対するストアであることを意味する。この場合にライト
データバッファ91は1キャッシュライン分のデータ記
憶領域を有しているので、データ1次キャッシュ制御装
置60は、そのような後続するキャッシュミスに斯るス
トアデータもライトデータバッファ91に格納させるた
めに書込み要求WBWREQをライトバッファ9に与
え、これに並行して今回のストア要求STRREQに対
する応答(ロード/ストア応答)L/SACKを命令処
理装置8に返して次に命令を実行可能にさせる。
【0029】図3には複数回のストア命令実行に係るス
トアデータの格納位置を順次変えてライトバッファ9に
格納した状態が示される。例えば(A)に示されるよう
にデータアドレスDADRS=TAGi(タグアドレ
ス),IDXi(インデックスアドレス)、ストアデー
タSTRDAT=D0,D1,D2,D3(合計4バイ
ト)、バイトマークBMRK=11110000000
00000のときデータ1次キャッシュメモリ6がキャ
ッシュミスをすると、それらがライトバッファ9に書き
込まれ、命令処理装置8は次の命令を実行可能にされ
る。このとき、2次キャッシュ制御装置10によりデー
タアドレスDADRS=TAGi,IDXiを共通とす
るデータブロックが2次キャッシュメモリ2又は主記憶
装置4からムーブインデータバッファ93にブロック転
送開始される。
【0030】命令処理装置8が実行する当該次の命令が
ストア命令であって、データアドレスDADRS=TA
Gi,IDXi、ストアデータSTRDAT=D4,D
5,D6,D7(合計4バイト)、バイトマークBMR
K=0000111100000000とするならば、
このストアは前回と同一キャッシュラインに対するスト
アであるので、前回同様にデータ1次キャッシュメモリ
6はキャッシュミスとされる。このとき、アドレス比較
器95による比較結果は一致であり、且つライトバッフ
ァ9には有効なデータが格納されているので、バイトマ
ークバッファ92に対するリセットを行わずにデータ1
次キャッシュ制御装置60からライトバッファ9に書込
み要求WBWREQが与えられ、(B)に示されるよう
にそれらがライトバッファ9に格納される。4バイトの
ストアデータD4,D5,D6,D7はアライナ84に
てマージされて16バイトのライトデータバッファ91
に格納される。バイトマークバッファ92の各ビットは
例えばRS(リセット/セット)フリップフロップにて
構成され、(B)に示されるようにバイトマークバッフ
ァ92のバイトマークは合計8バイトのデータD0〜D
7に対応して8ビットが論理値”1”にされる。
【0031】更に命令処理装置8が、データアドレスD
ADRS=TAGi,IDXi、ストアデータSTRD
AT=D8,D9,D10,D11(合計4バイト)、
バイトマークBMRK=00000000111100
00とするストア命令を続けて実行すると、このストア
は前回と同一キャッシュラインに対するストアであるの
で、前回同様にデータ1次キャッシュメモリ6はキャッ
シュミスとされる。このとき、アドレス比較器95によ
る比較結果は一致であり、且つライトバッファ9には有
効なデータが格納されているので、バイトマークバッフ
ァ92に対するリセットは行われずにライトバッファ9
に書込み要求WBWREQが与えられ、(C)に示され
るようにそれらがライトバッファ9に格納される。4バ
イトのストアデータD8〜D11はアライナ84にてマ
ージされて16バイトのライトデータバッファ91に格
納され、バイトマークバッファ92のバイトマークは合
計12バイトのデータD0〜D11に対応して12ビッ
トが論理値”1”にされる。
【0032】したがって、汎用レジスタの内容をメモリ
上に設けられたスタックへ退避する場合のように、キャ
ッシュメモリ上において同一キャッシュラインに置かれ
ることになるような同一ブロックへのストアが連続する
ようなときに、一旦キャッシュミスが発生してもストア
データを続けてライトバッファ9に保持させていくこと
ができるので、命令処理装置8の処理待ち期間を短縮で
き、データ1次キャッシュメモリ6上で同一キャッシュ
ラインとされるようなデータの連続的なストアに際して
もキャッシュミスによるデータ処理性能の低下を阻止す
ることができる。
【0033】図1に示されるようにデータ1次キャッシ
ュ制御装置60はライトバッファ9に有効なデータが格
納されているか否かを示すフラグ(ライトバッファ有効
フラグ)600を備える。このフラグ600はマイクロ
プロセッサ1のイニシャライズリセット若しくはパワー
オンリセットによる初期状態において論理値”0”を保
持するようなリセット状態(ライトバッファ9に有効な
データ不存在)に初期化される。フラグ600はそのリ
セット状態においてデータストアのキャッシュミスに起
因してライトバッファ9への書込み要求(WBWRE
Q)が生ずると論理値”1”を保持するようなセット状
態(ライトバッファ9に有効なデータ存在)にされ、ラ
イトバッファ9のデータによってデータ1次キャッシュ
メモリ6が更新されるときにリセット状態に戻される。
バイトマークバッファ92のリセット端子(論理値”
1”の入力によってリセット)は例えばデータ1次キャ
ッシュ制御装置60が保有する上記フラグ600の反転
ビットによって制御される。
【0034】上記ムーブインデータバッファ93へのデ
ータブロック転送の完了はデータブロック転送応答DT
ACKによって2次キャッシュ制御装置10からデータ
1次キャッシュ制御装置60に与えられる。バイト選択
回路94は、ムーブインデータバッファ93のデータ出
力端子とライトデータバッファ91のデータ出力端子に
データ入力端子が結合され、ムーブインデータバッファ
93に格納完了されたブロックデータをデータ1次キャ
ッシュメモリ6の所定のキャッシュラインに登録すると
き、ムーブインデータバッファ93のブロックデータを
上記バイトマークバッファ92のバイトマークBMRK
が示すライトデータバッファ91上のデータ領域のデー
タで置き換えてデータ1次キャッシュメモリ6に供給す
る。この動作はデータ1次キャッシュ制御装置60がデ
ータブロック転送応答DTACKを受けることによって
行う。図4に示されるようにバイト選択回路93は、バ
イト単位でムーブインデータバッファ93のデータを選
択するかライトデータバッファ91のデータを選択する
かをバイトマークバッファ92の対応ビットによって制
御されるセレクタ941を備えている。セレクタ94
は、対応するライトマークバッファのビットが論理値”
1”のときにはライトデータバッファ91のバイトデー
タを選択し、論理値”0”のときにはムーブインデータ
バッファ93のバイトデータを選択する。バイト選択回
路94の出力はライトセレクタ62を介してデータ1次
キャッシュメモリ6に供給される。尚、ストアアクセス
においてデータ1次キャッシュメモリ6がヒットした場
合ライトセレクタ62は命令処理装置8からのストアデ
ータを直接選択してデータ1次キャッシュメモリ6に供
給する。
【0035】上記バイト選択回路93により、キャッシ
ュミスに係るストアデータをデータ1次キャッシュメモ
リ6に新たなエントリとして追加するためのキャッシュ
メモリに対する書込みを、ムーブインデータバッファ9
3のブロックデータの書込みと、ライトデータバッファ
91のデータをバイトマークで選択して行う書込みとに
分けて行うことを要せず、その分だけ命令処理装置8の
処理待ちの期間を短縮することができる。
【0036】本実施例のマイクロプロセッサ1は、特に
制限されないが、IF(命令フェッチ)、D(命令デコ
ード)、E(演算)、A(メモリアクセス)、及びW
(書き込み)の5ステージからなるパイプラインを採用
している。その制御は図2に示されるシーケンス制御回
路80が司る。IFステージでは命令処理装置8は命令
1次キャッシュメモリ5などから命令をフェッチする。
Dステージでは、IFステージから受け取った命コード
をデコードして各種制御情報を生成する。Eステージで
はDステージで生成した制御情報にしたがってロード命
令やストア命令などを実行するためのデータ演算やアド
レス演算を行う。Aステージでは、Eステージで演算さ
れたアドレスやデータを用いたメモリアクセスを行う。
このとき、データ1次キャッシュメモリ6のヒット/ミ
スや割り込みの有無等のチェック結果がデータ1次キャ
ッシュ制御装置60などから与えられ、パイプラインを
ロックするロック信号LOCKがアサートされた場合に
はIF、D、E、Aの各ステージの状態を保持してパイ
プラインをロックする。Aステージでパイプラインロッ
クがロックされた場合にはそれが解除された後にWステ
ージに遷移され、当該Wステージでは、ストア命令の場
合におけるデータ1次キャッシュメモリやライトバッフ
ァへの書込み、ロード命令の場合におけるレジスタへの
書込みなどが行われる。
【0037】図5にはデータ1次キャッシュ制御装置6
0においてデータストアに関する制御論理の一例が示さ
れる。これに示される論理は上記パイプラインロックを
考慮したものとされる。同図においてDCMISSはデ
ータ1次キャッシュメモリ6のキャッシュミス信号であ
り、データ1次キャッシュメモリ6から出力される信号
である。BLKMCHはデータブロック一致信号であ
り、アドレス比較器95から出力される。WBFRVL
Dは上記フラグ600に対応されるフラグであり、ライ
トバッファ9に有効なデータが格納されているか否かを
示す。WBFRBSYはライトバッファ9が空になるの
を待っている状態を示すフラグである。LOCKはパイ
プラインロック信号である。STRREQ,LRDRE
Q,DTACK,L/SREQ,WBWREQ,DTR
EQは上述の要求信号である。それら信号及びフラグは
この例では正論理とされる。同図においてFF1,FF
3はR/Sフリップフロップ、FF2,FF4,FF5
はD型ラッチ、G1〜G3はオアゲート、G4はアンド
ゲート、G5はインバータである。FF1,FF2はノ
ンオーバラップ2相クロック信号の一方のクロック信号
に同期動作され、FF3,FF4,FF5はノンオーバ
ラップ2相クロック信号の他方のクロック信号に同期動
作される。
【0038】図5における信号S1は、ストア要求があ
り(STRREQ=1)、それに対してデータ1次キャ
ッシュミスとされ(DCMISS=1)、このときライ
トバッファ9に有効なデータが存在し(WBFRVLD
=1)、且つ、アドレス比較器95による比較結果の一
致にて前回のストアと同一キャッシュラインに対するス
トアでないこと(BLKMCH*=1)が検出されたと
きに(記号*はそれが付されていない信号の論理反転信
号を意味する)論理値”1”にされる。即ち、ストアデ
ータが同一キャッシュラインとはされないアドレスのデ
ータであるとき信号S1は論理値”1”にされる。この
ときのストアデータはライトバッファ9への書込みが不
可能であるから、ロードストア応答L/SACKがネゲ
ートされ、且つ、パイプラインロックのためにロック信
号LOCKがアサートされる。パイプラインロック状態
とロードストア応答L/SACKのネゲート状態は、デ
ータブロック転送応答DTACKがアサートされて、デ
ータ1次キャッシュメモリ6にストア対象とされるエン
トリがムーブインされるのを待って解除される。尚、デ
ータストアにおいて上記以外の状態ではロードストア応
答L/SACKはハイレベルにアサートされている。命
令処理装置8はAステージの所定タイミングを以てロー
ドストア応答L/SACKをサンプリングする。
【0039】ライトバッファ9への書込み要求WBWR
EQがアサートされるのは、ストア要求があり(ST
RREQ=1)、それに対してデータ1次キャッシュメ
モリ6がキャッシュミスとされ(DCMISS=1)、
更にこのときライトバッファ9に有効なデータが存在し
ないとき(WBFRVLD*=1)即ちライトバッファ
9が空いているときと、ストア要求があり(STRR
EQ=1)、それに対してデータ1次キャッシュメモリ
6がキャッシュミスとされ(DCMISS=1)、更に
このときライトバッファ9に有効なデータが存在し(W
BFRVLD=1)且つアドレス比較器95にて一致が
検出されたとき(BLKMCH=1)である。ライトバ
ッファ9への書込み要求WBWREQがアサートされる
と、FF1がセット状態にされ、ライトバッファ9に有
効なデータが存在することを示す信号WBFRVLDが
アサート状態にされる。上記の状態においてはデータ
ブロック転送要求DTREQがアサートされる。データ
ブロック転送要求DTREQがアサートされる場合はそ
の他に、ライトバッファ9が空になるのを待っている状
態において(WBFRBSY=1)データブロック転送
応答があるとき(DTACK=1)である。データブロ
ック転送要求(DTREQ=1)に応じてデータブロッ
ク転送が完了されたことを示すデータブロック転送応答
があると(DTACK=1)、FF1がリセットされ
て、ライトバッファ9に有効なデータが存在することを
示す信号WBFRVLDがネゲートされることになる
(WBFRVLD=0)。データブロック転送応答DT
ACKがアサートされると(DTACK=1)、ライト
バッファ9の格納情報はバイト選択回路94を介してデ
ータ1次キャッシュ6に書き込まれるからである。
【0040】尚、ゲートG2,G3にはデータロードに
関する図示しない制御論理で生成されるロード応答やパ
イプラインロックのための信号が供給される。
【0041】図6には本実施例のマイクロプロセッサ1
においてストア命令を実行するときの各パイプラインス
テージの動作が示され、図7には本実施例のマイクロプ
ロセッサ1においてロード命令を実行するときの各パイ
プラインステージの動作が示される。図6及び図7にお
いて命令キャッシュデータメモリ500及び命令キャッ
シュタグメモリ501は命令1次キャッシュメモリ5の
データ部とタグ部を構成し、データキャッシュタグメモ
リ600及びデータキャッシュデータメモリ601はデ
ータ1次キャッシュメモリ5のデータ部とタグ部を構成
するものと理解されたい。
【0042】図6及び図7においてIFステージでは命
令処理装置8は、命令アドレスIADRSを出力し、命
令1次キャッシュ制御装置50に命令読み出し要求IF
REQを送る。この要求を受け取った命令1次キャッシ
ュ制御装置50は、命令1次キャッシュにヒットしたと
きは、命令1次キャッシュメモリ5から読み出した命令
コード、キャッシュミスしたときは2次キャッシュ制御
装置10によってブロック転送された命令コードを命令
セレクタ51を介して命令処理装置8に出力し、命令読
み出し応答IFACKを返す。尚、命令用アドレス変換
バッファ(命令TLB)を使って、当該ページに対する
アクセスが許されているかどうかを調べ、許されていな
ければ例外処理を発生させる。
【0043】図6及び図7においてDステージでは、I
Fステージから受け取った命コードを、命令バッファレ
ジスタにセットし、デコードを行なって、各種制御情報
を生成する。
【0044】図6及び図7のEステージではDステージ
で生成した制御情報にしたがってレジスタからデータを
読み出し、演算器を使ってアドレス計算を行い、データ
アクセスのための論理アドレスLADRSを出力する。
アドレスの下位4ビットとデータのサイズを表わす制御
情報から、バイトマークBMRKを生成する。ストア命
令の場合はストアデータSTRDATを出力する。そし
て、ストア命令の時はストア要求STRREQを、ロー
ド命令の時はロード要求LRDREQをデータ1次キャ
ッシュ制御装置60に出力する。それら要求は図6及び
図7において制御情報に含まれる。
【0045】図6及び図7のAステージでは、上記論理
アドレスLADRSをメモリアドレスレジスタAにい
れ、このアドレスを使って、データキャッシュタグメモ
リ600とデータ用アドレス変換バッファ(データTL
B)とをアクセスする。タグメモリ600から読み出し
たキャッシュタグとしての物理ページアドレスと、デー
タTLBから読み出した物理ページアドレスとを比較し
て、データ1次キャッシュメモリ6のヒット判定が行わ
れる。また、データTLB中にあるアクセス保護情報を
使って、当該ページに対するアクセスが許されているか
どうか調べ、許されていなければ例外処理を発生させ
る。そして、データ1次キャッシュメモリ6のヒット/
ミス、割り込みの有無、ストアバッファ7が一杯かどう
か、ライトバッファ9に有効な命令が格納されているか
どうか、等をチェックしてパイプラインをロックする必
要があるかどうか決める。ロックする必要がなければ、
ロード/ストア応答L/SACKを命令処理装置8に返
す。ロックする必要があるときは、パイプラインロック
信号LOCKをアサートして、IF、D、E、Aの各ス
テージのラッチの値が更新されるのを抑止し、Wステー
ジに書込みイネーブル信号を出力するのを抑止して、パ
イプラインをロックする。そして、ロックする必要がな
くなるまで待ってから、ロード/ストア応答L/SAC
Kを命令処理装置8に返し、Wステージの書込みイネー
ブルを出力する。
【0046】図6及び図7のWステージでは、ストア命
令の場合は、データ1次キャッシュメモリ6又はライト
バッファ9にデータを書き込み、当該ストア命令の実行
を完了する。ロード命令の場合はメモリから読出された
データをレジスタ81に書き込んで、当該ロード命令の
実行を完了する。
【0047】上記ストア命令のパイプラインにおいてラ
イトバッファ9が空のときの動作を(A)データ1次キ
ャッシュメモリのヒットの場合と、(B)データ1次キ
ャッシュメモリのミスの場合とに分けて説明する。
【0048】上記(A)のデータ1次キャッシュメモリ
ヒットの場合には、図6のようにAステージでレジスタ
81から読み出したデータをWステージでデータ1次キ
ャッシュメモリ6のデータキャッシュデータメモリ60
1とストアバッファ7に書き込む。
【0049】上記(B)のデータ1次キャッシュミスの
場合には、図6のAステージでデータ1次キャッシュミ
スが判明する。このときライトバッファ9が空であるか
ら、ライトバッファ9に書き込めばパイプラインをロッ
クしなくてよいと判断し、Wステージに対し、ライトバ
ッファかきこみ要求WBWREQを出力する。また、2
次キャッシュ制御装置10にデータブロック転送要求D
TREQを出す。Wステージでは、ライトアドレスバッ
ファ90にストアアドレスSTRADRS、ライトデー
タバッファ91にストアデータSTRDAT、バイトマ
ークバッファ92にバイトマークBMRKを書き込ん
で、当該ストア命令の実行が完了したものとみなされ
る。2次キャッシュ制御装置10からデータ1次キャッ
シュ制御装置60にデータブロック転送応答(完了報
告)DTACKが換えされると、バイト選択回路94
で、バイトマークバッファ92に保存されているバイト
マークBMRKの論理値”1”に対応されるバイトデー
タとしてはライトデータバッファ90の値が選択され、
バイトマークBMKの論理値”0”に対応されるバイト
データとしてはブロック転送データが選択され、合計1
6バイトのデータがデータ1次キャッシュメモリ6に書
き込まれる。この結果、データ1次キャッシュメモリ6
は、ブロック転送データを書き込んだ後、ストアデータ
を書き込んだのと同じ状態になる。またストアバッファ
7にはバイトマークバッファ92の値、ライトアドレス
バッファ90の値、バイト選択回路94で合成したブロ
ック転送データが書き込まれる。
【0050】ロード命令のパイプラインにおいてデータ
1次キャッシュメモリ6のヒットの場合、図7に示され
るようにAステージでデータ1次キャッシュメモリ6を
アクセスして読み出したデータがWステージで汎用レジ
スタ81に書き込まれる。
【0051】ロード命令のパイプラインにおいてデータ
1次キャッシュメモリ6のミスの場合には、図7に示さ
れるようにパイプラインをロックさせ、後続命令の処理
を止めておいて、ブロック転送要求DTREQを2次キ
ャッシュ制御装置10に出す。ブロック転送完了の応答
DTACKが2次キャッシュ制御装置10から返される
と、データ1次キャッシュメモリ6と汎用レジスタ81
にブロック転送データを書き込む。
【0052】上記ストア命令のパイプラインにおいてキ
ャッシュミスにおいてライトバッファ9が空でない場合
は、ライトバッファ9に格納されているデータアドレス
DADRSと後続のストア命令のデータアドレスDAD
RSとがAステージでアドレス比較器95にて比較さ
れ、その比較結果に応じてた動作を、(C)アドレス比
較に一致と(D)アドレス比較の不一致の場合に分けて
説明する。
【0053】上記(C)のアドレス比較が一致の場合と
は、Aステージにおいてデータ1次キャッシュミスであ
るものの、アドレス比較器95によって、ライトバッフ
ァ9にある前回のストア命令のデータアドレスと今回の
ストア命令のデータアドレスが同一データブロックのア
ドレスであることを意味する。即ち双方のデータアドレ
スのタグアドレスとインデックスアドレスが一致であ
り、双方のストアデータはデータ1次キャッシュメモリ
において同一キャッシュラインに格納されるべきデータ
とされる。このため、パイプラインロックは不要であ
り、Wステージにおいて、今回のストアにおけるバイト
マークによって指定されたる位置を以てライトデータバ
ッファ91にストアデータが格納される。バイトマーク
バッファ92の値は、始めに書いてあった値と、後続ス
トア命令の値とのビットごとの論理和を取った値に更新
されることになる。ライトアドレスバッファ90は更新
されない。そして、2次キャッシュ制御装置10から、
ムーブインデータバッファ93へのブロック転送終了の
応答DTACKがあると、ライトデータバッファ91の
内容とムーブインデータバッファ93の内容とがバイト
選択回路94で合成され、データ1次キャッシュメモリ
6に書き込まれる。
【0054】上記(D)のアドレス比較が不一致の場合
とは、ライトバッファ9にある前回のストア命令のデー
タアドレスと今回のストア命令のデータアドレスがタグ
アドレス又はインデックスアドレスの点において不一致
であり、双方のストアデータはデータ1次キャッシュメ
モリにおいて異なるキャッシュラインに格納されるべき
データとされる。このため、今回のストア命令に対する
ロード/ストア応答L/SACKは返されず、先のキャ
ッシュミスに係るムーブインが完了されるのを待つ。当
該ムーブイン完了後、1次データキャッシュメモリ6の
キャッシュミスに基づいて、Wステージで、ライトバッ
ファ9に、そのストア命令に係るデータアドレスだDR
S、ストアデータSTRDAT、バイトマークBMRK
を書き込み、命令実行を継続する。
【0055】ライトバッファに有効なデータが格納され
ている状態においてロード命令が実行されデータ1次キ
ャッシュミスであるときもアドレス比較器95による判
定動作を行うことができる。例えば、その判定結果が一
致の場合は、当該ロード命令が、ライトバッファ9に格
納されるデータに対するロードであることを意味する。
このとき当該ロード命令のA,Wステージはパイプライ
ンストールされなければならないが、必要なデータはラ
イトバッファ中に格納されることになるので、当該ロー
ド命令に対応させてもう1度ブロック転送要求を出すこ
とはしない。ライトバッファ9中の命令のブロック転送
が完了してからデータ1次キャッシュメモリ6を再アク
セスして、ロードデータを読み出し、Wステージでレジ
スタ81に書き込むことができる。
【0056】ライトバッファに有効なデータが格納され
ている状態においてロード命令が実行されデータ1次キ
ャッシュミスであるときのアドレス比較器95による判
定動作の結果が不一致の場合は、パイプラインをストー
ルさせ、ライトデータバッファ9が空になってから、当
該ロード命令に対応してブロック転送要求DTREQを
出す。これは2次キャッシュ制御装置10が2種類のブ
ロック転送要求を同時に扱うことができないためであ
る。2次キャッシュ転送装置10が当該ブロック転送要
求に対する応答DTACKを返すと、データ1次キャッ
シュ制御装置60はブロック転送されたデータをデータ
1次キャッシュメモリ6と汎用レジスタ81に書き込
む。
【0057】上記実施例によれば以下の作用効果があ
る。(1)汎用レジスタ81の内容をメモリ上に設けら
れたスタック領域へ退避する場合のように、データ1次
キャッシュメモリ6上において同一キャッシュラインに
置かれることになるような同一ブロックへのストアが連
続するようなときに、それをアドレス比較器95が検出
することにより、一旦キャッシュミスが発生した後のキ
ャッシュミスにおいてもデータ1次キャッシュ制御装置
60がそのストアデータを続けてライトバッファ9に保
持させていく。ストアデータがライトバッファ9に保持
される状態はストアに対するL/SACKによって命令
処理装置8に返される。それによって命令処理装置8
は、当該ライトアクセス若しくはストア命令の実行完了
を認識して、次の命令実行へ制御を進めることができ
る。これにより、命令処理装置8の処理待ち期間が短縮
され、データ1次キャッシュメモリ6上で同一キャッシ
ュラインとされるようなデータの連続的なストアに際し
てもキャッシュミスによるデータ処理性能の低下を阻止
することができる。
【0058】(2)その間にキャッシュミスに係るブロ
ックデータが2次キャッシュメモリ2又は主記憶装置4
からムーブインデータバッファ93に転送される。ムー
ブインデータバッファ93に転送されたデータとライト
バッファ91のデータはデータ1次キャッシュメモリ6
に新たなエントリとして追加されることになる。このと
きバイト選択回路94は、ムーブインデータバッファ9
3のブロックデータとライトデータバッファ91のデー
タとをバイトマークBMRKに従って合成する。合成さ
れたデータは、キャッシュミスに係るストアデータを含
む新たなエントリとしてデータ1次キャッシュメモリ6
に追加される。したがって、上記キャッシュエントリの
追加を、ムーブインデータバッファ93のブロックデー
タの書込みと、ライトデータバッファ91のデータをバ
イトマークで選択して行う書込みとに分けて処理するこ
とを要せず、この点においても命令処理装置8の処理待
ちの期間を短縮することができる。
【0059】(3)パイプライン方式によって命令を実
行する命令処理装置8に対して、上記キャッシュ制御装
置60は、ストア命令によるメモリライトアクセスが要
求されたとき(STRREQ=1)、その要求に応ずる
ライトアクセスがキャッシュヒットの状態(DCMIS
S=0)と、その要求に応ずるライトアクセスがキャッ
シュミス(DCMISS=1)で且つ上記ライトデータ
バッファに有効なデータが保持されていない状態(WB
FRVLD=0)と、その要求に応ずるライトアクセス
がキャッシュミス(DCMISS=1)で且つライトデ
ータバッファに有効なデータが保持され(WBFRVL
D=1)アドレス比較器による一致(BLKMCH=
1)が検出された状態との夫々において当該メモリアク
セス要求に対する応答(L/SACK)を返し、また、
そのメモリアクセス要求に応ずるライトアクセスがキャ
ッシュミス(DCMISS=1)で且つライトデータバ
ッファに有効なデータが保持され(WBFRVLD=
1)アドレス比較器による不一致(BLKMCH=0)
が検出された状態では命令処理装置にパイプラインロッ
クを指示し(KOCK=1)その後キャッシュミスに係
るアドレスのブロックデータが上位記憶装置から上記ム
ーブインデータバッファに転送完了されるのを待ってパ
イプラインロックの解除と当該メモリアクセス要求に対
する応答とを与えることにより、パイプと整合を採って
上記(1)の制御を実現できる。
【0060】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
【0061】例えば、タグアドレスやインデックスアド
レスのビット数は上記実施例に限定されず、またキャッ
シュタグも上記実施例のような物理ページ番号に限定さ
れず、オフセットの一部を含むような情報であってもよ
い。またキャッシュメモリは論理キャッシュであっても
よい。また、上記実施例のデータ2次キャッシュメモリ
は省略することができる。
【0062】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるマイク
ロプロセッサに適用した場合について説明したが本発明
はそれに限定されるものではなく所謂メインフレームに
も適用することができる。本発明は、少なくともスワッ
プ方式を採用するキャッシュメモリを備えたシステムに
広く適用することができる。
【0063】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0064】すなわち、メモリライトアクセス若しくは
ストア命令実行に際してキャッシュメモリがキャッシュ
ミスを生じた場合、キャッシュミスに係るブロックデー
タを上位記憶装置から転送してキャッシュメモリに新た
なエントリを追加する、スワップ方式を採用するものに
おいて、汎用レジスタの内容をメモリ上に設けられたス
タック領域へ退避する場合のように、キャッシュメモリ
上において同一キャッシュラインに置かれることになる
ような同一ブロックへのストアが連続するようなとき
に、それをアドレス比較器が検出することにより、一旦
キャッシュミスが発生した後のキャッシュミスにおいて
もキャッシュ制御装置がそのストアデータを続けてライ
トバッファに保持させていく。ストアデータがライトバ
ッファに保持される状態はストアに対する応答などによ
って命令処理装置に返される。それによって命令処理装
置は、当該ライトアクセス若しくはストア命令の実行完
了を認識して、次の命令実行へ制御を進めることができ
る。したがって、命令処理装置の処理待ち期間を短縮で
き、キャッシュメモリ上で同一キャッシュラインとされ
るようなデータの連続的なストアに際してもキャッシュ
ミスによるデータ処理性能の低下を最小限に抑えること
ができる。
【0065】スワップ方式ではキャッシュミスに係るブ
ロックデータは上位メモリ装置からムーブインデータバ
ッファに転送される。選択回路は、ムーブインデータバ
ッファのブロックデータとライトデータバッファのデー
タとをバイトマークに従って合成する。合成されたデー
タは、キャッシュミスに係るストアデータを含む新たな
エントリとしてキャッシュメモリに追加される。したが
って、上記キャッシュエントリの追加を、ムーブインデ
ータバッファのブロックデータの書込みと、ライトデー
タバッファのデータをバイトマークで選択して行う書込
みとに分けて行うことを要せず、この点においても命令
処理装置の処理待ちの期間を短縮することができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係るマイクロプロセッサの
ブロック図である。
【図2】命令処理装置の一部を例示するブロック図であ
る。
【図3】複数回のストア命令実行に係るストアデータの
格納位置を順次変えてライトバッファに格納した状態を
示す説明図である。
【図4】バイト選択回路の一例ブロック図である。
【図5】データ1次キャッシュ制御装置におけるデータ
ストアに関する制御論理の一例を示すブロック図であ
る。
【図6】ストア命令にけるパイプラインステージの一例
説明図である。
【図7】ロード命令にけるパイプラインステージの一例
説明図である。
【符号の説明】
1 マイクロプロセッサ 2 2次キャッシュメモリ 4 主記憶装置 6 データ1次キャッシュメモリ 60 データ1次キャッシュ制御装置 600(WBFRVLD) ライトバッファ有効フラグ 8 命令処理装置 80 シーケンス制御回路 81 汎用レジスタ 82 演算器 83 デコーダ 84 アライナ 9 ライトバッファ 90 ライトアドレスバッファ 91 ライトデータバッファ 92 バイトマークバッファ 93 ムーブインデータバッファ 94 バイト選択回路 95 アドレス比較器 10 2次キャッシュ制御装置 DADRS データアドレス STRDAT ストアデータ BMRK バイトマーク LOCK パイプラインロック信号 STRREQ ストア要求 LRDREQ ロード要求 L/SACK ロード/ストア応答 DTREQ データ転送要求 DTACK データ転送応答 WBWREQ ライトバッファ書込み要求

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 アドレス信号を生成してメモリアクセス
    可能な命令処理装置と、 アドレス信号に含まれるインデックスアドレスによって
    キャッシュラインが選択され、キャッシュラインは当該
    アドレス信号に含まれるタグアドレスと比較されるべき
    キャッシュタグと対を成す一つのブロックデータ領域を
    有し、選択されたキャッシュラインにおけるブロックデ
    ータ領域の中から一つのデータ領域の所在がデータ語選
    択情報によって指定されるキャッシュメモリと、 ライトアクセスにおけるキャッシュメモリのキャッシュ
    ミスにおいてミスに係るインデックスアドレス及びタグ
    アドレスを共通とするブロックデータがキャッシュメモ
    リの上位記憶装置より転送されるムーブインデータバッ
    ファと、 ライトアクセスにおけるキャッシュメモリのキャッシュ
    ミスにおいてミスに係るアドレス信号のタグアドレス及
    びインデックスアドレスを保持するライトアドレスバッ
    ファ、上記一つのブロックデータ領域に相当する記憶領
    域にデータ語選択情報に従ってライトデータを保持する
    ライトデータバッファ、及びライトデータバッファに保
    持されたライトデータのデータ語選択情報を保持するデ
    ータ語選択情報バッファを供えたライトバッファと、 ライトアクセスのアドレス信号に含まれる上記タグアド
    レス及びインデックスアドレスを、ライトアドレスバッ
    ファが保持するタグアドレス及びインデックスアドレス
    と比較するアドレス比較器と、 ライトアクセスにおけるキャッシュメモリのキャッシュ
    ミスにおいて上記ライトデータバッファに有効なデータ
    が保持されていないときと、同じくライトアクセスにお
    けるキャッシュメモリのキャッシュミスにおいてライト
    データバッファに有効なデータが保持され上記アドレス
    比較器による一致が検出されたときに、当該ライトアク
    セスに係るライトデータをそのデータ語選択情報に応ず
    るライトデータバッファ上のブロックデータ領域のデー
    タ領域に格納させるキャッシュ制御装置と、を備えて成
    るものであることを特徴とするデータ処理装置。
  2. 【請求項2】 ライトアクセスにおけるキャッシュメモ
    リのキャッシュミスにおいて、上位記憶装置からムーブ
    インデータバッファに転送完了されたブロックデータ
    を、上記データ語選択情報バッファのデータ語選択情報
    が示すライトデータバッファ上のデータ領域のデータで
    置き換えてキャッシュメモリに供給する選択回路を備え
    て成るものであることを特徴とする請求項1記載のデー
    タ処理装置。
  3. 【請求項3】 上記命令処理装置は命令フェッチ、命令
    デコード、演算、メモリアクセス、及び書込みの各ステ
    ージを含んで命令実行をパイプライン制御するシーケン
    ス制御回路を供え、このシーケンス制御回路は、ストア
    命令によるメモリライトアクセスの要求をキャッシュ制
    御装置に与え、それに対する応答を待って次命令のメモ
    リアクセスに進み、且つ、パイプラインロックの指示が
    有効にされる期間においてはメモリアクセス以前のパイ
    プラインステージの動作を停止させるものであり、 上記キャッシュ制御装置は、ストア命令によるメモリラ
    イトアクセスが要求されたとき、その要求に応ずるライ
    トアクセスがキャッシュヒットの状態と、その要求に応
    ずるライトアクセスがキャッシュミスで且つ上記ライト
    データバッファに有効なデータが保持されていない状態
    と、その要求に応ずるライトアクセスがキャッシュミス
    で且つライトデータバッファに有効なデータが保持され
    アドレス比較器による一致が検出された状態との夫々に
    おいて当該メモリアクセス要求に対する応答を命令処理
    装置に返し、また、そのメモリアクセス要求に応ずるラ
    イトアクセスがキャッシュミスで且つライトデータバッ
    ファに有効なデータが保持されアドレス比較器による不
    一致が検出された状態では命令処理装置にパイプライン
    ロックを指示しその後キャッシュミスに係るアドレスの
    ブロックデータが上位記憶装置から上記ムーブインデー
    タバッファに転送完了されるのを待ってパイプラインロ
    ックの解除と当該メモリアクセス要求に対する応答とを
    命令処理装置に与える、ものであることを特徴とする請
    求項2記載のデータ処理装置。
  4. 【請求項4】 命令処理装置は、演算回路と、内部バス
    に結合されたレジスタ回路と、内部バス上のライトデー
    タを当該内部バスよりもビット数の多いキャッシュバス
    に振り分けるためのアライナと、演算回路から出力され
    る書込みアドレスと書込みデータのサイズ情報とを受け
    書込みアドレスの一部をデコードして得られるビッ位置
    を基準にデータサイズに応じたビットを選択レベルとし
    てデータ語選択情報を生成すると共に、生成されたデー
    タ語選択情報で指示されるキャッシュバス上のデータ位
    置に内部バスを振り分け制御するデコーダと、を備えて
    成るものであることを特徴とする請求項1乃至3の何れ
    か1項記載のデータ処理装置。
  5. 【請求項5】 メモリをライトアクセス可能な命令処理
    装置と、この命令処理装置に接続されたキャッシュメモ
    リと、ライトアクセスにおけるキャッシュメモリのキャ
    ッシュミスに係るアクセスアドレス情報とライトデータ
    とを一時的に保持するライトバッファと、上記ミスに係
    るアクセスアドレスのデータを含むブロックデータがキ
    ャッシュメモリの上位記憶装置より転送されるムーブイ
    ンデータバッファとを備えたデータ処理装置におけるキ
    ャッシュメモリ制御方法であって、 ライトアクセスにおけるキャッシュメモリのキャッシュ
    ミスに対して上記ムーブインデータバッファに上記ブロ
    ックデータをデータ転送する第1の処理と、 上記ムーブインデータバッファにデータ転送されたブロ
    ックデータの一部をライトバッファが保有するキャッシ
    ュミスに係るライトデータに置き換えてキャッシュメモ
    リの所定のキャッシュラインに格納する第2の処理と、 上記第2の処理の前に、キャッシュラインを共有するア
    クセスアドレスについてのキャッシュミスに係るライト
    アクセスが続いたとき、当該後続のキャッシュミスに係
    るライトデータを、先に格納されているライトデータと
    格納位置を変えてライトバッファに格納する第3の処理
    と、を含むことを特徴とするキャッシュメモリ制御方
    法。
JP7034422A 1995-01-31 1995-01-31 データ処理装置及びキャッシュメモリ制御方法 Withdrawn JPH08212133A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP7034422A JPH08212133A (ja) 1995-01-31 1995-01-31 データ処理装置及びキャッシュメモリ制御方法
TW084113646A TW296442B (ja) 1995-01-31 1995-12-20
KR1019960001988A KR960029986A (ko) 1995-01-31 1996-01-30 데이타처리장치 및 캐쉬메모리제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7034422A JPH08212133A (ja) 1995-01-31 1995-01-31 データ処理装置及びキャッシュメモリ制御方法

Publications (1)

Publication Number Publication Date
JPH08212133A true JPH08212133A (ja) 1996-08-20

Family

ID=12413777

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7034422A Withdrawn JPH08212133A (ja) 1995-01-31 1995-01-31 データ処理装置及びキャッシュメモリ制御方法

Country Status (3)

Country Link
JP (1) JPH08212133A (ja)
KR (1) KR960029986A (ja)
TW (1) TW296442B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999049395A1 (fr) * 1998-03-23 1999-09-30 Hitachi, Ltd. Controleur de memoire tampon
KR100794312B1 (ko) * 2006-12-27 2008-01-11 삼성전자주식회사 명령어 자동 처리 유니트를 포함한 메모리 컨트롤러 및그를 포함한 메모리 시스템
JPWO2012093475A1 (ja) * 2011-01-05 2014-06-09 富士通株式会社 情報転送装置および情報転送装置の情報転送方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999049395A1 (fr) * 1998-03-23 1999-09-30 Hitachi, Ltd. Controleur de memoire tampon
KR100794312B1 (ko) * 2006-12-27 2008-01-11 삼성전자주식회사 명령어 자동 처리 유니트를 포함한 메모리 컨트롤러 및그를 포함한 메모리 시스템
US8060669B2 (en) 2006-12-27 2011-11-15 Samsung Electronics Co., Ltd. Memory controller with automatic command processing unit and memory system including the same
JPWO2012093475A1 (ja) * 2011-01-05 2014-06-09 富士通株式会社 情報転送装置および情報転送装置の情報転送方法

Also Published As

Publication number Publication date
KR960029986A (ko) 1996-08-17
TW296442B (ja) 1997-01-21

Similar Documents

Publication Publication Date Title
JP5421458B2 (ja) Simdベクトルの同期
JP4045062B2 (ja) ロード命令を実行する方法、プロセッサ、およびシステム
US6665749B1 (en) Bus protocol for efficiently transferring vector data
US5202972A (en) Store buffer apparatus in a multiprocessor system
US4926323A (en) Streamlined instruction processor
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
US5634027A (en) Cache memory system for multiple processors with collectively arranged cache tag memories
US6813701B1 (en) Method and apparatus for transferring vector data between memory and a register file
US6742106B2 (en) Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
JPH02190930A (ja) ソフトウエア命令実行装置
JPH0342745A (ja) 複数キャッシュ・メモリ・アクセス方法
JP2001256105A (ja) 非整列循環アドレス指定を用いるマイクロプロセッサ
JPH0559455B2 (ja)
US6553486B1 (en) Context switching for vector transfer unit
JPH0564813B2 (ja)
JPH07311711A (ja) データ処理装置とその動作方法及びメモリ・キャッシュ動作方法
US5594884A (en) Cache memory system having a plurality of ports
JP2001290702A (ja) 記憶装置
JPS62102344A (ja) バツフア・メモリ制御方式
US20040255102A1 (en) Data processing apparatus and method for transferring data values between a register file and a memory
JPH08212133A (ja) データ処理装置及びキャッシュメモリ制御方法
US8156283B2 (en) Processing function connected to processor memory hierarchy
US5881256A (en) Bus interface unit capable of simultaneously proceeding with two bus cycles in a high-performance microprocessor
US6625720B1 (en) System for posting vector synchronization instructions to vector instruction queue to separate vector instructions from different application programs
EP0375892B1 (en) Data processing system

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020402