【手続補正書】
【提出日】平成21年9月16日(2009.9.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと低速メモリの間に配置されて、前記プロセッサによるメモリアクセスをパイプライン処理するキャッシュメモリであって、
前記低速メモリの部分集合に相当するデータを格納するデータメモリと、
前記データメモリに格納されたデータに対応付けられたタグアドレスを格納するタグメモリと、
前記プロセッサより入力される入力アドレスに含まれるインデックスアドレスを用いて前記タグメモリを検索することにより得られるタグアドレスと前記入力アドレスに含まれるタグアドレスとの比較によってキャッシュヒットかミスヒットかを判定するヒット判定部と、
前記入力アドレスに含まれるタグアドレスを保持するラッチ回路と、
前記ラッチ回路の保持データを、前記タグメモリを迂回して前記ヒット判定部に入力するためのバイパス回路と、
前記ヒット判定部によりミスヒットと判定された場合に、前記入力アドレスに含まれるタグアドレスによる前記タグメモリの更新処理、前記低速メモリからのデータ読み出しによる前記データメモリの更新処理、及び前記バイパス回路の動作を制御するコントローラとを備え、
第１のパイプラインステージにおいて、前記インデックスアドレスを用いた前記タグメモリからのタグアドレスの読み出し処理を実行し、
前記第１のパイプラインステージに続く第２のパイプラインステージにおいて、前記ヒット判定部による判定処理を実行し、
前記第２のパイプライステージにおいてミスヒットと判定された場合には、前記第３のパイプラインステージにおいて、前記コントローラによる前記タグメモリの更新制御及び前記タグメモリを迂回して前記ラッチ回路の保持データを前記ヒット判定部に入力するための前記バイパス回路の制御を実行し、前記第３のパイプラインステージに続く第４のパイプラインステージ以降において、前記低速メモリからのデータ読み出しによる前記データメモリの更新処理と、前記低速メモリから読み出されたデータの前記プロセッサへの出力とを実行する、キャッシュメモリ。
【請求項２】
前記低速メモリからのデータ読み出しによる前記データメモリの更新処理が、最終段のパイプラインステージで実行されることを特徴とする請求項１に記載のキャッシュメモリ。
【請求項３】
前記ヒット判定部によりミスヒットと判定された場合に前記第３のパイプラインステージには少なくとも２クロックサイクルが割り当てられ、前記コントローラは前記タグメモリの更新を前記第３のパイプラインステージの最終クロックサイクルより前のクロックサイクルまでに実行するとともに、前記最終クロックサイクルにおいて前記ラッチ部の保持データが前記ヒット判定部に入力されるよう前記バイパス回路の動作を制御する、請求項１又は２に記載のキャッシュメモリ。
【請求項４】
前記バイパス回路は、
前記ラッチ部から出力されるタグアドレス及び前記タグメモリから出力されるデータのいずれかを前記ヒット判定部に対して選択的に出力するセレクタを備え、
前記コントローラは、前記第３のパイプラインステージにおいて、前記ヒット判定部の判定結果がミスヒットであることに応じて前記セレクタに前記ラッチ部に格納されたデータの出力を選択させる、請求項１乃至３のいずれかに記載のキャッシュメモリ。
【請求項５】
順次受信される第１及び第２のロード要求をパイプライン処理するキャッシュメモリであって、
前記第１のロード要求は、第１のタグアドレス及び第１のインデックスアドレスを指定し、
前記第２のロード要求は、第２のタグアドレス及び第２のインデックスアドレスを指定し、
前記キャッシュメモリは、
主記憶に保持されているデータの部分集合に相当するデータを格納できるよう構成されたデータメモリと、
前記データメモリに格納されたデータに対応する複数のタグアドレスを格納するとともに、前記第１のインデックスアドレスの受信に応じて前記第１のインデックスアドレスに対応する第１のタグアドレス群を第１のパイプラインステージにおいて出力し、前記第２のインデックスアドレスの受信に応じて前記第２のインデックスアドレスに対応する第２のタグアドレス群を前記第１のパイプラインステージの次の第２のパイプラインステージにおいて出力するよう構成されたタグメモリと、
前記第１のパイプラインステージにおいて前記第１のタグアドレス群を保持し、前記第２のパイプラインステージにおいて前記第２のタグアドレス群を保持するべく、前記タグメモリに結合されたアドレスラッチと、
前記アドレスラッチに結合され、前記第１のロード要求がキャッシュヒットであるかミスヒットであるかの判定を前記第１のタグアドレスと前記第１のタグアドレス群との比較によって前記第２のパイプラインステージにおいて行うとともに、前記第２のロード要求がキャッシュヒットであるかミスヒットであるかの判定を前記第２のタグアドレスと前記第２のタグアドレス群との比較によって前記第２のパイプラインステージの次の第３のパイプラインステージにおいて行うヒット判定部と、
前記ヒット判定部によって前記第１のロード要求がミスヒットであると判定された場合に、前記タグメモリと前記アドレスラッチの更新処理を制御するとともに、前記第３のパイプラインステージにおける前記パイプライン処理をストールさせるコントローラと、
を備え、
前記更新処理は、前記タグメモリに格納された前記第１のタグアドレス群に含まれる複数のタグアドレスのうち１つを前記第１のタグアドレスによって更新することを含み、
前記更新処理は、前記アドレスラッチに格納された前記第２のタグアドレス群に含まれる複数のタグアドレスのうち１つを前記第１のタグアドレスによって更新することを含み、
前記アドレスラッチは、前記更新処理に基づいて、前記第１のタグアドレスを含む第３のタグアドレス群を保持した状態に変更され、
前記ヒット判定部は、前記パイプライン処理がストールしたことに基づいて、前記第２のロード要求がキャッシュヒットであるかミスヒットであるかの判定を、前記アドレスラッチに保持された前記第３のタグアドレス群と前記第２のタグアドレスとの比較によって再び行う、
キャッシュメモリ。
【請求項６】
前記コントローラは、さらに、前記第１のロード要求がミスヒットであると判定された場合に、前記第１のタグアドレス及び前記第１のインデックスアドレスに対応する前記主記憶に保持されているデータによって前記データメモリに保持された前記データを更新することを含む前記データメモリの更新処理を、前記第３のパイプラインステージの次の第４のパイプラインステージにおいて行う、請求項５に記載のキャッシュメモリ。
【請求項７】
前記タグメモリと前記アドレスラッチの間に結合され、前記第１のタグアドレス、前記第１のタグアドレス群、及び前記第２のタグアドレス群のうち１つを選択するセレクタをさらに備える、請求項５又は６に記載のキャッシュメモリ。
【請求項８】
前記セレクタは、前記第１パイプラインステージにおいて前記第１のタグアドレス群を選択し、前記第２のパイプラインステージにおいて前記第２のタグアドレス群を選択し、前記第３のパイプラインステージにおいて前記第１のタグアドレスを選択する、請求項７に記載のキャッシュメモリ。
【請求項９】
前記第１のタグアドレスを保持可能な第１のラッチ回路と、
前記第１のラッチ回路から前記第１のタグアドレスを受信し、受信した前記第１のタグアドレスを保持するべく、前記第１のラッチ回路と前記タグメモリの間に結合された第２のラッチ回路と、
前記第１のラッチ回路から前記第１のタグアドレスを受信し、受信した前記第１のタグアドレスを保持するべく、前記第１のラッチ回路と前記ヒット判定部の間に結合された第３のラッチ回路と、
前記第１のインデックスアドレスを保持するとともに、保持した前記第１のインデックスアドレスを前記データメモリに供給するべく、前記データメモリに結合された第４のラッチ回路と、
をさらに備える、請求項５〜８のいずれか１項に記載のキャッシュメモリ。
【請求項１０】
前記第１及び第２のロード要求をコンピュータから受信する、請求項５〜９のいずれか１項に記載のキャッシュメモリ。
【請求項１１】
前記主記憶は、低速メモリである、請求項５〜１０のいずれか１項に記載のキャッシュメモリ。
【請求項１２】
前記コントローラは、前記第３のパイプラインステージにおける前記パイプライン処理を停止するためにＷＡＩＴ信号を出力する、請求項５〜１１のいずれか１項に記載のキャッシュメモリ。
【請求項１３】
前記データメモリからの出力データを保持する第５のラッチ回路をさらに備える、請求項９に記載のキャッシュメモリ。