JP3920931B2 - キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置 - Google Patents

キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置 Download PDF

Info

Publication number
JP3920931B2
JP3920931B2 JP11418093A JP11418093A JP3920931B2 JP 3920931 B2 JP3920931 B2 JP 3920931B2 JP 11418093 A JP11418093 A JP 11418093A JP 11418093 A JP11418093 A JP 11418093A JP 3920931 B2 JP3920931 B2 JP 3920931B2
Authority
JP
Japan
Prior art keywords
cache
address
data
write
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP11418093A
Other languages
English (en)
Other versions
JPH06243038A (ja
Inventor
ノーマン・エム・ヘイーズ
クマー・ヴェンカタスブラマニアム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH06243038A publication Critical patent/JPH06243038A/ja
Application granted granted Critical
Publication of JP3920931B2 publication Critical patent/JP3920931B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU

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)

Description

【0001】
【産業上の利用分野】
本発明はコンピュータ装置アーキテクチャに関するものである。更に詳しくいえば、本発明はコンピュータ装置の処理能力を向上させるためのキャッシュ・メモリ用のマイクロプロセッサ・バス・プロトコルに関するものである。
【0002】
【従来の技術】
コンピュータ装置の処理能力を向上させるための一般的な技術はキャッシュ・メモリを採用することである。キャッシュ・メモリというのは限られたサイズの高速メモリであって、選択された外部メモリ場所を表す、行として知られているデータのブロックを記憶するスタチックRAM(SRAM)で通常構成される。キャッシュ・メモリは外部メモリより小さい。これは、キャッシュ・メモリが完全にはアドレス可能でなく、各データ行に対してタグ・フィールドを記憶せねばならないことを意味する。タグ・フィールドは特定のデータ行に対応する外部メモリ・アドレスを識別する。
【0003】
プロセッサが読出し要求および希望のデータ行に対応するアドレスを出すと、キャッシュ制御器に維持されているタグ・フィールドとそのアドレスを比較することによりキャッシュ・メモリが検査される。希望のデータ行がキャッシュ・メモリに記憶されているとするとヒットが起き、その希望のデータ行をプロセッサが利用できる。希望のデータ行がキャッシュ・メモリに記憶されていないとするとミスが起き、その希望のデータ行をより遅い外部メモリから取り出さねばならない。
【0004】
従来のキャッシュ・メモリ装置においては、通常読出しトランザクションが次の3つのステップを要求する。すなわち、プロセッサがアドレスをキャッシュ・メモリへ送ること、キャッシュ制御器がタグを検査すること、ヒットが起きたならばプロセッサデータ行をキャッシュ・メモリから読出すことがそれである。その後で、プロセッサは次のアドレスをキャッシュ・メモリへ送り、シーケンスが繰返される。実際に、その3つのステップ順序はキャッシュ・メモリから読出された各データ行に対して繰返される。
【0005】
同様に、従来のキャッシュ装置は3つのステップの書込みトランザクションを典型的に要求する。それらの書込みトランザクションは、プロセッサがアドレスと対応するデータ行をキャッシュ・メモリへ送ること、キャッシュ制御器がタグを検査すること、キャッシュ制御器がデータ行をキャッシュ・メモリに記憶することである。次に、プロセッサは次のアドレスとデータ行をキャッシュ・メモリへ送り、このシーケンスが繰返される。
【0006】
従来のキャッシュ・メモリ装置においては、より高い処理能力を達成するためにバス信号の待ち時間を短くする事を求めていた。しかし、より高いクロック周波数が使用されるにつれて、バス信号線の固有の物理的特性のために待ち時間の限界に達する。たとえば、周波数を高くするとバス信号線における信号反射の問題がひき起こされる。
【0007】
後で述べるように、現在の構成のマイクロプロセッサ・バス・プロトコルは、読出しバースト・トランザクションおよび書込みバースト・トランザクションをキャッシュ・メモリに対して実行し、ミスしたキャッシュ行のために外部命令取り出し段階中にバス・トランザクションをインターリーブすることによりシステムの処理能力を向上させている。全体のバス待ち時間に対する物理的制約にもかかわらず、高いバス周波数において高い処理能力を達成することによりバスの性能が向上される。
【0008】
【発明が解決しようとする課題】
本発明の目的はシステムの性能を向上させるための構成のマイクロプロセッサ・バス・プロトコルを提供するものである。
【0009】
【課題を解決するための手段】
本発明のバス・プロトコルによりキャッシュに対する読出しバースト・トランザクションおよび書込みバースト・トランザクションと、ミスされたキャッシュ行に対する外部命令取り出し段階中のインターリーブされたバス・トランザクションとを並行して行うことが可能にされる。本発明は、バスの全体の待ち時間に対する制約にもかかわらず、高いバス周波数において高い処理能力を達成することによりバスの性能を向上させるものである。このバス・プロトコルは、CPUと第2のキャッシュ・メモリを備える装置において実現される。第2のキャッシュ・メモリはSRAMアレイ・キャッシュ・メモリとキャッシュ制御器を備える。CPUは命令パイプラインと主キャッシュ・システムを含む。
【0010】
第2のキャッシュからのバースト読出しを実行するために、CPUは第1の読出しアドレスをSRAMアレイ・キャッシュ制御器へ送る。トランザクションの第1のバス・クロック・サイクルにおいては、CPUはSRAMアレイ・キャッシュにおいて第1の読出しサイクルを開始し、キャッシュ制御器は第1の読出しアドレスをタグのセットに対してテストする。タグは、第1の読出しアドレスに対応する第1のデータ行がSRAMアレイ・キャッシュに記憶されているかどうかを示す。次のクロック・サイクルにおいては、CPUは第2の読出しアドレスをSRAMアレイ・キャッシュへ送り、SRAMアレイ・キャッシュにおいて第2の読出しサイクルを開始する。その次のクロック・サイクルにおいては、CPUは第3の読出しアドレスをSRAMアレイ・キャッシュへ送り、SRAMアレイ・キャッシュにおいて第3の読出しサイクルを開始し、その間に第1のデータ行をSRAMアレイ・キャッシュから読出す。更に次のクロック・サイクルにおいては、CPUは第4の読出しアドレスをSRAMアレイ・キャッシュへ送り、SRAMアレイ・キャッシュにおいて第4の読出しサイクルを開始し、その間に第2の読出しアドレスに対応する第2のデータ行をSRAMアレイ・キャッシュから読出す。その次のクロック・サイクルにおいては、CPUは第3の読出しアドレスに対応する第3のデータ行をSRAMアレイ・キャッシュから読出す。また次のクロック・サイクルにおいては、CPUは第4の読出しアドレスに対応する第4のデータ行をSRAMアレイ・キャッシュから読出す。
【0011】
データ・ブロックがSRAMアレイ・キャッシュに保存されていないことをキャッシュ制御器内のタグが示したとすると、ミスされたデータ行を含んでいるデータ・ブロックをキャッシュ制御器が外部で取出している間に、CPUは書込みトランザクションをインターリーブできる。同様に、書込みトランザクション中に、データ行がSRAMアレイ・キャッシュに保存されていないことをキャッシュ制御器内のタグが示したとすると、ミスされたデータ行を含んでいるデータ・ブロックをキャッシュ制御器が外部で取出している間に、CPUは読出しトランザクションをインターリーブできる。
【0012】
この明細書ではキャッシュの性能を向上させるための高性能マイクロプロセッサ・バス・プロトコルを開示する。以下の説明においては、本発明を完全に理解できるようにするために、特定の回路装置、特定のアーキテクチャ、および特定に部品等のような数多くの特定の詳細について述べる。しかし、それらの特定の詳細なしに本発明を実施できることが当業者には明らかであろう。他の場合には、本発明を不必要にあいまいにしないようにするために、周知の回路および装置は概略的な態様で示した。
【0013】
【実施例】
図1は本発明に教示を用いるプロセッサおよびキャッシュ・メモリ・サブシステムの一例を示す。このシステムはCPU15と、SRAMアレイ・キャッシュ16と、キャッシュ制御器17とで構成される。CPU15と、SRAMアレイ・キャッシュ16と、キャッシュ制御器17とはアドレス・バス18を介して転送アドレスへ結合される。また、CPU15と、SRAMアレイ・キャッシュ16と、キャッシュ制御器17とはデータ・バス19を介してデータへ結合される。
ここで説明している実施例においては、アドレス・バス18は36ビットであり、データ・バス19は64ビットである。CPU15はストローブ信号を制御バス20を介してキャッシュ制御器17へ送る。CPU15はストローブ信号を制御バス21を介してキャッシュ制御器17から受ける。
【0014】
この実施例においては、SRAMアレイ・キャッシュ16は8つの128k×9ビット同期SRAMを備える。9ビットの8つの層で72ビットを生じ、その72ビットの内64ビットがデータであり、8ビットがパリティである。SRAMアレイ・キャッシュ16はCPU15のための第2のキャッシュとして機能する。キャッシュ制御器17は、SRAMアレイ・キャッシュ16の内容を示すタグ160を維持する。
【0015】
図2は、本発明の教示を用いるCPU15のための主キャッシュ・システムの例を示す。命令パイプライン22がCPU15のための命令プロセッサを表す。命令パイプライン22は命令キャッシュ23から命令を受ける。命令パイプライン22はデータ・キャッシュ24からデータをアクセスする。
命令プリフェッチ装置25が命令を先取りし、命令キャッシュ23へ供給する。プリフェッチ装置26がデータを先取りし、データ・キャッシュ24へ供給する。命令プリフェッチ装置25とプリフェッチ装置26がバス・インターフェイス装置28を介してSRAMアレイ・キャッシュ16とそれぞれ通信する。SRAMアレイ・キャッシュ16に記憶すべきデータは記憶バッファ27に累積される。記憶バッファ27はデータをSRAMアレイ・キャッシュ16へバス・インターフェイス装置28を介して転送する。
以下に詳しく説明する高性能マイクロプロセッサ・バス・プロトコルによりSRAMアレイ・キャッシュ16と、命令プリフェッチ装置25、データ・プリフェッチ装置26、および記憶バッファ27との間の高速転送を可能にする。
【0016】
図3は並行する読出しブロック・トランザクションを示す。それら2つのトランザクションはSRAMアレイ・キャッシュ16をヒットする。第1の読出しブロックはアドレスA0〜A3により定められるデータ行に対応し、第2の読出しブロックはアドレスB0〜B3により定められるデータ行に対応する。
【0017】
アドレス・バス18とデータ・バス19を介する情報データ転送を同期させるためにクロック信号(CLOCK)が用いられる。アドレス・バス18を介して送られるアドレス信号はADDR信号により表される。バースト・トランザクションを指示するためにバースト信号が用いられる。各バス・トランザクションのスタートを支持するためにCMDSが用いられる。読出しトランザクションが進行中であることを示すためにRD信号が用いられ、書込みトランザクションを示すためにWR信号が用いられる。CCサイクルがキャッシュ制御器17の活動を示し、SRAMサイクルがSRAMアレイ・キャッシュ16の活動を示す。読出しトランザクションを行うことができることをRGRT信号が示し、書込みトランザクションを行うことができることをWGRT信号が示す。読出しデータを利用できることをRRDY信号が示し、データバス19の状態をDATAが表す。
【0018】
第1の読出しブロック・トランザクションが時刻30に始まる。その時にはバス・インターフェイス装置28により送られてCMDS信号が有効であって、バス・トランザクションの状態を示す。ADDR信号により示されているように、第1の読出しブロックの第1のアドレスA0も時刻30には有効であって、クロック信号の立上がり縁部でSRAMアレイ・アドレス・レジスタ130とキャッシュ制御器アドレス・レジスタ140へロードされる。その第1のアドレスA0はバス・インターフェイス装置28によりアドレス・バス18を介して送られる。CCサイクル信号により示されているように、キャッシュ制御器17のタグ160がキャッシュ制御器アドレス・レジスタ140に保存されているアドレスA0に対して検査される。また、時刻30には、SRAMサイクル信号により示されているように、SRAMアレイ・キャッシュ16の読出しサイクルが始まる。アドレス・バス18に存在するアドレスA0が読出しトランザクションに対するものであることをRD信号が示し、アドレス・バス18に存在するアドレスA0がバースト・トランザクションの一部であることをバースト信号が示す。信号RDとバーストはバス・インターフェイス装置28により制御バスを介して送られる。
【0019】
時刻31には、バス・インターフェイス装置28により送られて第2のアドレスA1がアドレス・バス18において有効であって、クロック信号の立上がり縁部でSRAMアレイ・アドレス・レジスタ130へロードされる。時刻31と32の間で、SRAMサイクル信号により示されているように、SRAMアレイ・キャッシュ16の読出しサイクルが起きる。同様にして、第1のブロックの第3のアドレスA2と第4のアドレスA3が、時刻32と33におけるクロック信号の立上がり縁部においてSRAMアレイ・キャッシュ130へ供給される。
【0020】
時刻32には、データ・バス19を介して供給される読出しデータが有効であることをRRDY信号がバス・インターフェイス装置28へ示す。そのRRDY信号はキャッシュ制御器17により制御バス21を介して送られる。時刻30と31の間のタグ160の検査の結果としてアドレスA0がヒットされるから、時刻32にはRRDY信号が有効であることをキャッシュ制御器17は表明する。時刻32には、アドレスA0に対応するSRAMアレイ・キャッシュ16からのデータ行がSRAMアレイ・データ・レジスタ131に保存される。それは、RRDY信号により示されているように、データ・バス19において有効である。同様に、時刻33,34,35には、アドレスA1,A2,A3に対応するSRAMアレイ・キャッシュ16からのデータ行がSRAMアレイ・データ・レジスタ131に順次保存され、データ・バス19を介して順次送られる。
【0021】
時刻34においては、第1の読出しブロックの最後のアドレスA3がSRAMアレイ・アドレス・レジスタ130に保存された後の次のクロック・サイクルでは、第2の読出しブロック・トランザクションが始まり、CMDS信号がバス・インターフェイス装置28により有効であると表明される。アドレスB0〜B3に対応する第2の読出しブロックは、時刻30と35の間の読出しブロック・トランザクションと同じ順序で、時刻34から時刻39間で進む。
【0022】
第1の読出しブロック・トランザクションと第2の読出しブロック・トランザクションは時刻34と35においてオーバラップすることがわかるであろう。時刻34においては、第2の読出しブロックの第1のアドレスB0が、第1の読出しトランザクションが終わることを待つことなしに、アドレス・バス18を介して送られる。時刻35においては、第2の呼出しブロックの第2のアドレスB1がSRAMアレイ・アドレス・レジスタ130にロードされ、その間に、第1の読出しブロックの最後のアドレスA3に対応するデータ行がデータ・バスで有効である。
【0023】
図4はSRAMアレイ・キャッシュ16をヒットする書込みブロック・トランザクションを示す。この書込みブロックはアドレスA0〜A3により定められるデータ行に対応する。
時刻40においては、バス・インターフェイス装置28は書込みブロック・トランザクションの開始を示す。時刻40においてADDR信号により示されているように、書込みブロックの第1のアドレスA0はアドレス・バス18において有効である。また、時刻40においてデータ信号により示されているように、アドレスA0に対応するデータ行はデータ・バス19において有効である。バースト信号は、アドレスA0がバースト・トランザクションの一部であることを示し、WR信号が書込みトランザクションであることを示す。バースト信号とWRはバス・インターフェイス装置28により制御バス20を介して送られる。クロック信号の立上がり縁部においてアドレスA0はキャッシュ制御器アドレス・レジスタ140へロードされる。CCサイクル信号により示されているように、キャッシュ制御器17のタグ160は、時刻40と41の間でアドレスA0に対応するデータ行に対して検査される。
【0024】
時刻42においては、アドレスA0に対するタグ160についてのヒットが起きたことをWEE信号が示す。WEE信号はキャッシュ制御器17により制御バス21を介して送られる。時刻43においては、アドレスA0および対応するデータ行はアドレス・バス18およびデータ・バス19において依然として有効であって、WE[0:7]信号がSRAMアレイ・キャッシュ16へ送られてSRAM書込みサイクルを可能にする。WRDY信号がアドレスA0に対応するデータ行書込みの終了を示す。
時刻44〜46においては、残りのアドレスA1〜13と、それらのアドレスに対応するデータ行がアドレス・バス18とデータ・バス19を介して送られる。各クロックサイクルにおいて、WE「0:7」信号はSRAMアレイ・キャッシュ16書込みサイクルを可能にし、WRDYはデータ行書込みの終りを示す。SRAMサイクル信号は時刻43で始まるSRAMアレイ・キャッシュ16書込みサイクルのタイミングを示す。
【0025】
上記の例は、4つのデータ行をSRAMアレイ・キャッシュ16へ転送する書込みブロック・トランザクションを示す。しかし、この実施例においては、書込みブロック・トランザクションは任意の長さにできる。更に、書込みブロックの間に出されたアドレスはSRAMアレイ・キャッシュ16の1つの32バイト・キャッシュ行内の任意のものにできる。
【0026】
図5はSRAMアレイ・キャッシュ16をヒットする読出しブロック・トランザクションと、それに続く、SRAMアレイ・キャッシュ16をヒットする書込みブロック・トランザクションとを示す。読出しブロックのためのアドレスおよびデータは「r」記号により示され、書込みブロックのためのアドレスおよびデータは[w]記号により示される。
【0027】
読出しブロック・トランザクションは時刻50で始まり、その時にはCMDS信号がバス・トランザクションの開始を示す。時刻50においては、ADDR信号により示されているように、読出しブロックの第1のアドレスがアドレス・バス18で有効である。読出しブロックの第1のアドレスはSRAMアレイ・アドレス・レジスタ130とキャッシュ制御器アドレス・レジスタ140へロードされる。CCサイクルが、キャッシュ制御器17のタグ160が時刻50に検査されることを示す。また、時刻50においては、SRAMサイクル信号により示されているように、SRAMアレイ・キャッシュ16の読出しサイクルが始まる。RD信号は、アドレス・バス18におけるアドレスが読出しトランザクションに対するものであることを示し、バス・インターフェイス装置28からのバースト信号が、アドレス・バス18におけるアドレスがバースト・トランザクションの一部であることを示す。時刻50と52の間で、読出しブロック・トランザクションについて先に説明したように、クロック信号の立上がり縁部において、読出しブロックの新しいアドレスがSRAMアレイ・アドレス・レジスタ130へロードされる。
【0028】
時刻51においては、データ・バス19を介して供給された読出しデータが有効であり、データ信号が読出しブロックの第1のアドレスに対応するデータ行を繰り上げる事をキャッシュ制御器17からのRRDY信号がバス・インターフェイス装置28へ知らせる。先に説明したように、時刻52,53,54においては、RRDY信号により示されているように、読出しブロックの残りのアドレスに対応するデータ行が、データ・バス19において有効である。
【0029】
書込みブロック・トランザクション時刻53に始まり、その時にはバス・インターフェイス装置28からのCMDS信号バス・トランザクションの開始を示し、かつその時には、ADDR信号により示されているように、アドレス・バス18において書込みブロックの第1のアドレスが有効である。バス・インターフェイス装置28からのバースト信号が、アドレス・バス18におけるアドレスがバースト・トランザクションの一部であることを示し、バス・インターフェイス装置28からのWR信号が書込みトランザクションを示す。時刻53においては、書込みブロックの第1のアドレスがキャッシュ制御器のアドレス・レジスタ140へロードされる。CC信号サイクルにより示されているように、キャッシュ制御器17のタグ160が時刻53と54の間で検査される。
【0030】
時刻55においては、キャッシュ制御器17からのWEE信号が、書込みブロックの第1のアドレスでタグ160のヒットが起きて、対応するデータ行がSRAMアレイ・キャッシュ16に保存されることを意味する事を示す。時刻56においては、アドレス・バス18におけるアドレスが依然として有効であり、新しいデータ行がバス・インターフェイス装置28によりデータ・バス19を介して送られる。また時刻56においては、WE[0:7]信号がSRAMアレイ・キャッシュ16へ送られて、SRAM書込みサイクルを可能にする。書込みトランザクションの第1のアドレスに対応する書込みの終了をWRDY信号が示す。
【0031】
図6は、SRAMアレイ・キャッシュ16をミスする読出しブロック・トランザクションと、SRAMアレイ・キャッシュ16をヒットするインターリーブされた書込み行トランザクションを示す。書込み行トランザクションはミスされた読出しブロックの外部取り出し中に起きるから、その書込み行トランザクションはインターリーブされる。読出しブロックのためのアドレスとデータは記号「rd」により示され、書込みブロックのためのアドレスとデータは記号「wr」により示される。
【0032】
読出しブロック・トランザクションは通常時刻60で起き、CMDS信号がバス・トランザクションの開始を示す。時刻60においては、ADDR信号により示されているように、読出しブロックの第1のアドレスはアドレス・バス18において有効である。また時刻60においては、読出しブロックの第1のアドレスがSRAMアレイ・アドレス・レジスタ130とキャッシュ制御器アドレス・レジスタ140へロードされる。CC信号により示されているように、キャッシュ制御器17のタグ160の検査が時刻60から始まる。SRAMサイクル信号により示されているように、時刻60にSRAMアレイ・キャッシュ16の読出しサイクルが始まる。前のように、アドレス・バス18におけるアドレスが読出しトランザクションに対するためのものであることをRD信号が示し、バースト信号がバースト・トランザクションであることを示す。読出しブロック・トランザクションについて先に示したように、時刻60から始まって、読出しブロック内のアドレスがクロック信号の立上がり縁部でSRAMアレイ・アドレス・レジスタ130へロードされる。
【0033】
時刻61で始まって、アドレスに対応してSRAMアレイ・アドレス・レジスタ130へロードされたデータは、SRAMアレイ・データ・レジスタ131から転送される。しかし、時刻61においては、キャッシュ制御器17からのRGRT信号はアクティブでない。それは、読出しブロックの第1のアドレスがSRAMアレイ・キャッシュ16をミスした事を示す。RGRT信号はキャッシュ制御器17により制御バス21を介して送られる。
【0034】
キャッシュ制御器17がミスされた読出しブロックを外部から取り出している間に、バス・インターフェイス装置はインターリーブされている書込み行トランザクションを開始する。インターリーブされている書込み行トランザクションは時刻62に開始され、その時にバス・インターフェイス装置28からのCMDS信号がバス・トランザクションの開始を示す。また時刻62には、書込み行のアドレスはアドレス・バスにおいて有効であり、キャッシュ制御器アドレス・レジスタ140へロードされる。バースト信号がアクティブでなくて、アドレス・バス18におけるアドレスがバースト・トランザクションの一部ではない事を示し、WR信号が書込みトランザクションを示す。キャッシュ制御器17のタグが時刻62と63の間で検査されることをCCサイクル信号が示す。
【0035】
時刻64においては、書込みブロックのアドレスにおいてタグ160のヒットが起きたことをキャッシュ制御器17からのWEE信号が示す。時刻65においては、アドレス・バス18におけるアドレスは依然として有効であり、対応するデータ行がデータ・バス19で有効であり、WE[0:7]信号がSRAMアレイ・キャッシュ16へ送られてSRAM書込みサイクルを可能にする。WRDY信号が書込み行の終了を示す。
【0036】
時刻66においては、キャッシュ制御器17からの信号WGRTとRGRTがアクティブではなく、ミスした読出しブロックが受けられているからそれ以上のバス・トランザクションが許されないことを示す。時刻66においては、CCサイクル信号により示されているように、ミスされた読出しブロックの第1のアドレスがキャッシュ制御器17のタグ160の内部へ進む。時刻67においては、ミスされた読出しブロックの第1のアドレスがアドレス・バス18において再び有効であり、対応するデータがターゲット・データ・バス19において有効である。RRDY信号は、有効なデータを利用できることをバス・インターフェイス装置28に示し、WE[0:7]信号がSRAMアレイ・キャッシュ16へ送られてミスされた読出しブロックの第1のデータ行を保存する。このようにして、ミスされたデータ行がSRAMアレイ・キャッシュ16とバス・インターフェイス装置28へ同時に供給される。
【0037】
同様に、ミスされた読出しブロックの残りの3つのデータ行が、時刻68〜時刻69に始まって、バス・インターフェイス装置28とSRAMアレイ・キャッシュ16へ転送される。SRAMサイクルSRAMアレイ・キャッシュ16の書込みサイクルを示して、入来するミスされたデータ行を保存する。CCサイクルがキャッシュ制御器17のタグ160の更新を示す。
【0038】
図7は、SRAMアレイ・キャッシュ16をミスする書込み行トランザクションを、SRAMアレイ・キャッシュ16をヒットするインターリーブされた読出しブロック・トランザクションとともに示す。インターリーブされた読出しブロックの後で、ミスされた書込み行が受けられ、書込み行トランザクションが再び試みられる。ミスされた書込み行の外部取り出し中に読出しブロック・トランザクションが起きるから、そのトランザクションはインターリーブされる。書込み行のためのアドレスとデータが「w」記号により示され、読出し行のためのアドレスとデータが「r」記号により示される。
【0039】
書込み行トランザクションが時刻70に始まる。その時に、バス・インターフェイス装置28からのCMDS信号がバス・トランザクションの開始を示し、ADDR信号により示されているように、書込み行のアドレスがアドレス・バス18で有効である。書込み行のアドレスがキャッシュ制御器アドレス・レジスタ160へロードされる。バス・インターフェイス装置28からのバースト信号がアクティブではなくて、アドレス・バス18におけるアドレスがバースト・トランザクションの一部ではない事を示し、バス・インターフェイス装置28からのWR信号が書込み・トランザクションを示す。時刻70から始まって、キャッシュ制御器17のタグ160が検査され、バス・インターフェイス装置28からの書込みデータ行がデータ・バスにおいて有効である。
しかし、時刻71においては、WGRT信号はアクティブではない。これはタグ160のミスが起きたこと、および希望のデータがSRAMアレイ・キャッシュ16に保存されない事を示す。その後で、キャッシュ制御器17は書込み行に対応するミスされた書込みブロックを外部で取り出す。
【0040】
その間に、バス・インターフェイス装置28は時刻72に、CMDS信号を起動させることにより読出しブロック・トランザクションを開始して、バス・トランザクションの開始を示す。時刻72には、ADDR信号により示されているように、読出しブロックの第1のアドレスがアドレス・バス18で有効であって、SRAMアレイ・アドレス・レジスタ130とキャッシュ制御器アドレス・レジスタ140へロードされる。CCサイクル信号により示されているように、キャッシュ制御器17のタグが時刻72に検査される。SRAMサイクル信号により示されているように、SRAMアレイ・キャッシュ16の読出しサイクルが起きる。RD信号が読出しトランザクションを示し、バースト信号がバースト・トランザクションを示す。読出しブロック・トランザクションは時刻72と73の間で前記のようにして進む。
【0041】
時刻74においては、キャッシュ制御器17からのWGRT信号とRGRT信号はアクティブではない。これは、ミスされた読出しブロックが受けられているから、バス・トランザクションが許されない事をバス・インターフェイス装置28へ示す。時刻75においては、ミスされた読出しブロックの第1のアドレスがSRAMアレイ・アドレス・レジスタ130へロードされ、外部で受けられたデータ行がデータ・バス19で有効である。WE[0:7]信号がSRAMアレイ・キャッシュ16へ送られてミスされたデータ行を保存する。
【0042】
類似のやり方で、残りの3つのミスされたデータ行が、時刻76まで、SRAMアレイ・キャッシュ16へ転送される。CCサイクルはキャッシュ制御器17のタグの更新を示し、SRAMサイクルはSRAMアレイ・キャッシュ16の書込みサイクルを示す。
【0043】
時刻77に書込み行再試行トランザクションが始まる。その時に、バス・インターフェイス装置28からのCMDS信号がバス・トランザクションの開始を示し、書込み行のアドレスはアドレス・バス18で有効である。書込み行のアドレスがキャッシュ制御器アドレス・レジスタに保存される。バースト信号はアクティブでなく、WR信号が書込みトランザクションを示す。CCサイクル信号により示されているように、キャッシュ制御器17のタグ160が時刻77に検査される。
時刻78には、キャッシュ制御器17からのWEE信号がキャッシュ制御器17のタグ160におけるヒットを示す。時刻79には、WE[0:7]信号はSRAMアレイ・キャッシュ16へ送られてデータ行を保存する。WRDY信号は書込み行再試行の終りを示す。
【0044】
図8は、SRAMアレイ・キャッシュ16をミスする読出しブロック・トランザクション、およびその後に続く、同様にミスするインターリーブされた書込み行トランザクションを示す。その後で、ミスされた読出しブロックに対して読出し充填トランザクションが起き、それからミスされた書込み行を含んでいる書込みブロックに対して書込み重点トランザクションが起きる。最後に、ミスした書込み行に対して書き込み行再試行が起きる。読出しブロックに対するアドレスとデータが「r」記号により示され、書込み行に対するアドレスとデータが「w」記号により示される。
試みられた読出しブロック・トランザクションが時刻80で始まり、CMDS信号がバス・トランザクションの開始を示す。時刻80においては、ADDR信号により示されているように、読出しブロックの第1のアドレスがアドレス・バス18において有効である。また、時刻80においては、その第1のアドレスはSRAMアレイ・アドレス・レジスタ130とキャッシュ制御器アドレス・レジスタ140へロードされ、キャッシュ制御器17のタグ160が検査される。SRAMサイクル信号により示されているように、SRAMアレイ・キャッシュ16の読出しサイクルが起き、RD信号は読出しトランザクションを示し、バースト信号はバースト・トランザクションを示す。読出しブロック・トランザクションについて先に説明したように、時刻80から始まって、引き続く読出しブロックがクロック信号の各立上がり縁部においてSRAMアレイ・アドレス・レジスタ130へロードされる。
【0045】
時刻81から始まって、読出しブロック・アドレスに対応する引き続くデータ行がSRAMアレイ・データ・レジスタ131へ転送される。しかし、時刻81には、キャッシュ制御器17からのRGRT信号はアクティブでない。これは読出しブロックの第1のアドレスがキャッシュ制御器17のタグ160をミスした事を示す。
ミスされた読出しブロックがキャッシュ制御器17により外部で取り出されている間に、時刻82に書込み行トランザクションが始まる。その時には、バス・インターフェイス装置28からのCMDS信号がバス・トランザクションの開始を示す。ADDR信号により示されているように、書込み行のアドレスはアドレス・バス18において有効であり、キャッシュ制御器アドレス・レジスタ140へロードされる。バス・インターフェイス装置28からのバースト信号はアクティブでなく、バス・インターフェイス装置28からのWR信号が書込みトランザクションを示す。時刻82から始まって、キャッシュ制御器17のタグ160が検査される。
【0046】
時刻83には、WGRT信号はアクティブでない。これは、希望のデータ行がキャッシュ制御器17のタグ160をミスした事を示す。その後で、希望のデータ行を含んでいる書込みブロックがキャッシュ制御器17により外部で取り出される。
時刻84においては、キャッシュ制御器17からの信号WGRTとRGRTがアクティブでない。これは、ミスされた読出しブロックが受けられているからバス・トランザクションが許されない事を示す。時刻85においては、ミスされた読出しブロックの第1のデータ行はデータ・バス19において有効であり、RRDY信号はアクティブであって、有効なデータを利用できることをバス・インターフェイス装置28へ示し、WE[0:7]信号がSRAMアレイ・キャッシュ16へ送られてデータ行を保存する。
【0047】
類似のやり方で、ミスされた読出しブロックの残りの3つのデータ行が、時刻86まで、バス・インターフェイス装置28とSRAMアレイ・キャッシュ16へ転送される。CCサイクルはキャッシュ制御器17のタグ160が更新される時を示し、SRAMサイクルは入来データ行を保存するSRAMアレイ・キャッシュ16の書込みサイクルを示す。
時刻84においては、信号WGRTとRGRTがアクティブでない。これは、ミスされた書込みブロックが受けられているからバス・トランザクションが許されない事を示す。時刻87においては、ミスされた書込みブロックの第1の行はデータ・バス19において有効であり、WE[0:7]信号がSRAMアレイ・キャッシュ16へ送られてミスされた行を保存する。
【0048】
ミスされた書込みブロックの残りの3つの行が、時刻88まで、SRAMアレイ・キャッシュ16へ転送される。CCサイクルはキャッシュ制御器17のタグ160の更新を示し、SRAMサイクルは入来データ行を保存するSRAMアレイ・キャッシュ16の書込みサイクルを示す。
書込み行エントリ・トランザクションが時刻89で始まる。その時には、バス・インターフェイス装置28からのCMDS信号がバス・トランザクションの開始を示し、ADDR信号により示されているように、書込み行のアドレスがアドレス・バス18において有効である。アドレスはキャッシュ制御器アドレス・レジスタ140へロードされる。バースト信号はアクティブでなく、WR信号が書込みトランザクションを示す。CCサイクル信号により示されているように、キャッシュ制御器17のタグ160が時刻89において検査される。また時刻89においては、書込み行のためのデータはデータ・バス19において有効である。
【0049】
その後で、キャッシュ制御器17からのWEE信号がタグ160におけるヒットを示す。書込みデータ行を保存するためにWE[0:7]信号がSRAMアレイ・キャッシュ16へ送られ、WRDY信号が書込み行再試行の終了を示す。
【0050】
図9は、スワップ・トランザクションを示す。このスワップ・トランザクションはCPU15の内部レジスタの内容をメモリ場所と交換する。スワップ・トランザクションは時刻90で始まり、その時に、バス・インターフェイス装置28はCMDS信号と、スワップ・アドレスA0と、対応するデータ行wと、スワップ・トランザクションを示すLDST信号を送る。その後で、キャッシュ制御器17はデータ行wをバッファする。時刻91と92の間で、データ行が共用されているとすると、スワップ書込みが別のCPUへ放送される。時刻92から始まって、キャッシュ制御器17はデータ行を外部で読出し、データ行をCPU15へ送る。時刻94から始まって、キャッシュ制御器17はバッファされたデータ行wをSRAMアレイ・キャッシュ16へ書込む。
【図面の簡単な説明】
【図1】本発明の教示を採用するプロセッサおよびキャッシュ・メモリ装置の例を示す。
【図2】本発明の教示を採用できるCPU15のための主キャッシュの例を示す。
【図3】オーバラップする読出しブロック・トランザクションを示す。それらのトランザクションの両方はSRAMアレイ・キャッシュをヒットする。第1の読出しブロックはアドレスA0〜A3により定められたデータ行に対応し、第2の読出しブロックはアドレスB0〜B3により定められたデータ行に対応する。
【図4】SRAMアレイ・キャッシュをヒットする書込みブロック・トランザクションを示す。書込みブロックはアドレスA0〜A3により定められたデータ行に対応する。
【図5】オーバラップする読出しブロック・トランザクションと書込みブロック・トランザクションを示す。それらのトランザクションの両方はSRAMアレイ・キャッシュをヒットする。読出しブロックに対するアドレスおよびデータと、書込みブロックに対するアドレスおよびデータはそれぞれ異なる記号により示される。
【図6】SRAMアレイ・キャッシュをミスする読出しブロック・トランザクションを示し、それのインターリーブされた書込み行がSRAMアレイ・キャッシュをヒットする。読出しブロックに対するアドレスおよびデータと、書込みブロックに対するアドレスおよびデータはそれぞれ異なる記号により示される。
【図7】SRAMアレイ・キャッシュをミスする書込み行ブロック・トランザクションを示し、それのインターリーブされた読出しブロック・トランザクションがSRAMアレイ・キャッシュをヒットする。書込み行に対するアドレスおよびデータと、読出しブロックに対するアドレスおよびデータはそれぞれ異なる記号により示される。
【図8】SRAMアレイ・キャッシュをミスする読出しブロック・トランザクションを示し、それに、同様にミスするインターリーブされた書込み行トランザクションが続く。読出しブロックに対するアドレスおよびデータと、書込み行に対するアドレスおよびデータはそれぞれ異なる記号により示される。
【図9】CPUの内部レジスタの内容をメモリ場所と交換するスワップ・トランザクションを示す。このスワップ・トランザクションに対する書込みデータと読出しデータがそれぞれの記号により示される。
【符号の説明】
15 CPU
16 SRAMアレイ・キャッシュ
17 キャッシュ制御器
18 アドレス・バス
19 データ・バス
20,21 制御バス
22 命令パイプライン
23 命令キャッシュ
24 データキャッシュ
25 命令プリフェッチ装置
26 プリフェッチ装置
27 保存バッファ
28 バス・インターフェイス装置
130,140,150 アドレス・レジスタ
141,151 データ・レジスタ

Claims (1)

  1. SRAMアレイ・キャッシュ・メモリと、
    バスを介して一連の読み出しまたは書込みメモリアドレスを転送することにより実行されるバースト読み出しまたはバースト書込みを含むバースト・アクセスを実行するよう構成されたプロセッサであって、連続する2つのバースト・アクセスを順次実行させるよう構成されているとともに該バースト・アクセスに関わる一連のメモリアドレスの一つが前記キャッシュメモリでキャッシュミスを生じた場合に、該キャッシュミスに応答して該キャッシュミスを起こしたメモリアドレスを含むバースト・アクセスを中断するとともに、該キャッシュミスを起こしたメモリアドレスを含むバースト・アクセスがバースト読み出しであった場合にはバースト書込みを、前記キャッシュミスを起こしたメモリアドレスを含むバースト・アクセスがバースト書込みであった場合にはバースト読み出しを、該中断されたバースト・アクセスに引き続いて挿入実行するよう構成されたプロセッサと、
    前記一連の読み出しまたは書込みメモリアドレスにしたがってキャッシュメモリをアクセスするとともにその一連の読み出しまたは書込みメモリアドレスの一つでキャッシュミスを生じた場合に、外部メモリから前記キャッシュミスを生じたメモリアドレスに対するデータを取り出している間に前記挿入されたバースト書込みまたはバースト読み出しにしたがってキャッシュメモリをアクセスするキャッシュ制御器と
    を有したコンピュータ・システム。
JP11418093A 1992-04-17 1993-04-19 キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置 Expired - Lifetime JP3920931B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US87056692A 1992-04-17 1992-04-17
US870566 1992-04-17

Publications (2)

Publication Number Publication Date
JPH06243038A JPH06243038A (ja) 1994-09-02
JP3920931B2 true JP3920931B2 (ja) 2007-05-30

Family

ID=25355673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11418093A Expired - Lifetime JP3920931B2 (ja) 1992-04-17 1993-04-19 キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置

Country Status (2)

Country Link
US (1) US5987570A (ja)
JP (1) JP3920931B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100556469B1 (ko) * 1998-01-12 2006-04-21 엘지전자 주식회사 인터리브/디인터리브 장치
US6385687B2 (en) * 1999-05-14 2002-05-07 Micron Technology, Inc. Method and apparatus for simultaneously accessing the tag and data arrays of a memory device
US7069406B2 (en) * 1999-07-02 2006-06-27 Integrated Device Technology, Inc. Double data rate synchronous SRAM with 100% bus utilization
KR100733767B1 (ko) * 2005-12-05 2007-06-29 한국전자통신연구원 시간 디인터리빙 장치 및 방법
US8166368B2 (en) * 2009-02-24 2012-04-24 International Business Machines Corporation Writing a special symbol to a memory to indicate the absence of a data signal
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
US8230276B2 (en) * 2009-09-28 2012-07-24 International Business Machines Corporation Writing to memory using adaptive write techniques
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
KR101635395B1 (ko) * 2010-03-10 2016-07-01 삼성전자주식회사 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법
US8463985B2 (en) 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
US20130073790A1 (en) * 2011-09-16 2013-03-21 Avalanche Technology, Inc. Magnetic random access memory with burst access
US9256531B2 (en) 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
KR20210068734A (ko) * 2019-12-02 2021-06-10 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4169284A (en) * 1978-03-07 1979-09-25 International Business Machines Corporation Cache control for concurrent access
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5179679A (en) * 1989-04-07 1993-01-12 Shoemaker Kenneth D Apparatus and method for permitting reading of data from an external memory when data is stored in a write buffer in the event of a cache read miss
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
US5325499A (en) * 1990-09-28 1994-06-28 Tandon Corporation Computer system including a write protection circuit for preventing illegal write operations and a write poster with improved memory
US5126975A (en) * 1990-10-24 1992-06-30 Integrated Device Technology, Inc. Integrated cache SRAM memory having synchronous write and burst read
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5416739A (en) * 1994-03-17 1995-05-16 Vtech Computers, Ltd. Cache control apparatus and method with pipelined, burst read

Also Published As

Publication number Publication date
JPH06243038A (ja) 1994-09-02
US5987570A (en) 1999-11-16

Similar Documents

Publication Publication Date Title
US6185660B1 (en) Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
US6496902B1 (en) Vector and scalar data cache for a vector multiprocessor
JP2509766B2 (ja) キャッシュメモリ交換プロトコル
US5499355A (en) Prefetching into a cache to minimize main memory access time and cache size in a computer system
US5642494A (en) Cache memory with reduced request-blocking
US5781926A (en) Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of line fill
JP3920931B2 (ja) キャッシュされたデータを読出しおよび書込む方法ならびにデータをキャッシングする装置
US6507897B2 (en) Memory paging control apparatus
JPH0744458A (ja) キャッシュメモリ構造およびキャッシュ・メモリを動作させる方法
US6434665B1 (en) Cache memory store buffer
US5835929A (en) Method and apparatus for sub cache line access and storage allowing access to sub cache lines before completion of a line fill
US6363460B1 (en) Memory paging control method
US5367657A (en) Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems
JP3407808B2 (ja) コンピュータシステム
US8117400B2 (en) System and method for fetching an information unit
US8886895B2 (en) System and method for fetching information in response to hazard indication information
JP3733604B2 (ja) キャッシュメモリ
US6904500B2 (en) Cache controller
JP3039391B2 (ja) メモリシステム
US6065097A (en) Apparatus and method for sharing a unified memory bus between external cache memory and primary memory
US6385687B2 (en) Method and apparatus for simultaneously accessing the tag and data arrays of a memory device
JP3564343B2 (ja) キャッシュバイパス時のデータ転送装置と方法
JP3093446B2 (ja) 情報処理装置
JPH06243037A (ja) データ先読み装置

Legal Events

Date Code Title Description
A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040604

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060725

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061013

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070216

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100223

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110223

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130223

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130223

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140223

Year of fee payment: 7

EXPY Cancellation because of completion of term