JP2012058973A - キャッシュメモリ制御装置と方法 - Google Patents

キャッシュメモリ制御装置と方法 Download PDF

Info

Publication number
JP2012058973A
JP2012058973A JP2010200982A JP2010200982A JP2012058973A JP 2012058973 A JP2012058973 A JP 2012058973A JP 2010200982 A JP2010200982 A JP 2010200982A JP 2010200982 A JP2010200982 A JP 2010200982A JP 2012058973 A JP2012058973 A JP 2012058973A
Authority
JP
Japan
Prior art keywords
cache memory
tag
way
data
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.)
Granted
Application number
JP2010200982A
Other languages
English (en)
Other versions
JP5565864B2 (ja
Inventor
Osamu Horikoshi
整 堀越
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.)
NEC Communication Systems Ltd
Original Assignee
NEC Communication Systems 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 NEC Communication Systems Ltd filed Critical NEC Communication Systems Ltd
Priority to JP2010200982A priority Critical patent/JP5565864B2/ja
Publication of JP2012058973A publication Critical patent/JP2012058973A/ja
Application granted granted Critical
Publication of JP5565864B2 publication Critical patent/JP5565864B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】タイミングマージンを確保しつつ、高速化を可能としキャッシュメモリのアクセス時間を短縮する。
【解決手段】第1のクロック信号で、データキャッシュメモリ20Aに供給するアドレス1、データウエイを同期させ、前記データキャッシュメモリに前記第1のクロック信号ととともに供給する第1のクロック同期部16Aと、第2のクロック信号で、タグキャッシュメモリ20Bに供給するアドレス2、タグウエイを同期させ、前記タグキャッシュメモリに、前記第2のクロック信号とともに供給する第2のクロック同期部16Bと、複数ウエイのタグとCPUのアクセスアドレスの所定ビットフィールドのアドレスとの一致・不一致の比較するアドレス比較部11−1/2を備え、前記第2のクロック信号の周波数は前記第1のクロック信号の周波数よりも高く設定される。
【選択図】図2

Description

本発明は、キャッシュ技術に関し、特に、キャッシュメモリを制御する装置と方法に関する。
キャッシュメモリは、CPU(Central Processing Unit:中央処理装置)で高い頻度で使用されるデータを蓄積しておくことで、CPUからメインメモリへのアクセス回数を減らし高速化を図るために用いられる高速メモリである。キャッシュメモリは、通常、SRAM(Static Random Access Memory:スタティックランダムアクセスメモリ)からなり、メインメモリを構成するDRAM(Dynamic Random Access Memory:ダイナミックランダムアクセスメモリ)よりも高速である(アクセス時間が短い)。キャッシュメモリ制御装置は、CPUからキャッシュメモリへのアクセスを制御する。
CPUからキャッシュメモリへのアクセスを高速化するための手法の一つとして、キャッシュメモリ制御装置とキャッシュメモリ間のリード/ライト処理を駆動するクロックの周波数を高くする手法がある。
図6は、キャッシュメモリ制御装置とキャッシュメモリの典型的な接続構成の一例を示す図である。なお、特に制限されるものでないが、図6において、キャッシュメモリ制御装置10’は、CPUに内蔵されているものとする。各キャッシュメモリは、クロック信号で駆動されるSSRAM(Synchronous SRAM:クロック同期型SRAM)で構成されている。4つのデータ・キャッシュメモリ20Aはデータを格納する。タグ・キャッシュメモリ20Bは、タグ(アドレスの予め定められた所定のビットからMSB(Most Significant Bit)側の上位ビット)を格納する。
キャッシュメモリ制御装置10’は、4つのデータ・キャッシュメモリ20Aに、クロック1、アドレス1、データウエイの各信号を共通に供給し、4つのデータ・キャッシュメモリ20Aとの間でデータのパラレル入力/パラレル出力を行う。
キャッシュメモリ制御装置10’は、タグ・キャッシュメモリ20Bに対して、データ・キャッシュメモリ20Aと共通のクロック1、アドレス1を供給し、タグウエイを供給し、タグの入出力を行う。
図6の構成の場合、タグ・キャッシュメモリ20Bに格納されるタグのビット幅に対して、データの入出力単位のビット幅が大きいため(例えば4倍)、1つのタグ・キャッシュメモリ20Bに対して、4つのデータ・キャッシュメモリ20Aが並置されている。特に制限されないが、例えば、タグ・キャッシュメモリ20Bが、CPUからの32ビットのアドレス信号のうちの16から31ビットのビットフィールドをタグとして格納する場合、キャッシュメモリ制御装置10’は、4つのデータ・キャッシュメモリ20Aとの間で、4×16ビット=64ビット幅のデータを単位として入出力を行う。したがって、データのキャッシュラインサイズが128ビットの場合、キャッシュ制御装置10’は、4つのデータ・キャッシュメモリ20Aとの間で、4×16ビット=64ビット幅のデータのパラレル入出力を、時分割で、2回行うことで、128ビット幅のデータを取得する。
なお、図6の構成は、n(nは例えば2、4、8等の整数)ウエイ・セット・アソシエイティブ方式とされる。nウエイ・セット・アソシエイティブ方式のキャッシュメモリは、各セットあたり、nウエイ(ウエイ0〜ウエイn−1)のブロックを有し、各ブロックは、キャッシュアクセス用のアドレス(インデックス)でアクセスされる。特に制限されないが、以下では、単に説明の都合で、2ウエイ・セット・アソシエイティブ方式のキャッシュメモリとするが、4、8ウエイ等のセット・アソシエイティブ方式のキャッシュメモリについても、2ウエイ(ウエイ0、1)を、4ウエイ(ウエイ0−3)、8ウエイ(ウエイ0−7)とすることで同様に説明される。
キャッシュメモリ制御装置10’から4つのデータ・キャッシュメモリ20Aに共通に出力されるデータウエイと、アドレス1は、データ・キャッシュメモリ20Aをアクセスするためのアドレスを構成する。例えばデータウエイ信号を上位ビット、アドレス1を下位ビットとするアドレスにより、ウエイ0、ウエイ1内の該当ロケーション(データの格納エントリ)がアクセスされる。
タグ・キャッシュメモリ20Bにおいて、キャッシュメモリ制御装置10’から出力されるタグウエイと、アドレス1は、タグ・キャッシュメモリ20Bをアクセスするアドレスを構成する。例えばタグウエイ信号を上位ビット、アドレス1を下位ビットとするアドレスにより、ウエイ0、ウエイ1の各ウエイのロケーション(タグの格納エントリ)がアクセスされる。
リードアクセス時、キャッシュメモリ制御装置10’は、2つのウエイのうち先に読み出しを行うウエイ(ウエイ0又は1)に対応したタグウエイ、データウエイを出力し、CPUのアクセスアドレスの下位アドレスからキャッシュアクセス用のアドレス1を生成する。タグ・キャッシュメモリ20Bにおいて、タグウエイとアドレス1とに基づき、指定されたウエイの該当アドレス(ロケーション)からタグが読み出され、キャッシュメモリ制御装置10’は、読み出されたタグと、CPUのアクセスアドレスの上位アドレスとを比較し、一致・不一致を判定する。一致した場合、先に読み出しを行った方のウエイでヒットしているため、キャッシュメモリ制御装置10’は、データ・キャッシュメモリ20Aの該当ウエイから読み出したデータ(例えば図6の4つのデータ・キャッシュメモリ20Aからパラレルに読み出み出されたデータ)をCPUに転送する。あるいは、4つのデータ・キャッシュメモリ20Aからパラレルに読み出み出されたデータのうちCPUのアクセスアドレスの所定の下位ビットで指定されたワードデータ又はバイトデータを選択してCPUに転送する。
キャッシュメモリ制御装置10’において、タグ・キャッシュメモリ20Bから先に読み出しを行ったウエイのタグが、CPUのアクセスアドレスの上位アドレスと不一致の場合、次に読み出すウエイに対応したタグウエイ、データウエイを出力し、タグ・キャッシュメモリ20Bの該当するウエイのアドレス(ロケーション)からタグを読み出してCPUのアクセスアドレスの上位アドレスと比較し、一致・不一致を判定する。ここで、一致した場合、データ・キャッシュメモリ20Aの該ウエイから読み出されたデータ(例えば4つのデータ・キャッシュメモリ20Aからパラレルに読み出されたデータ)をCPUに転送する。一方、タグ・キャッシュメモリ20Bの2つのウエイの該当するアドレス(ロケーション)から読み出されたタグが、CPUのアクセスアドレスの上位アドレスといずれも不一致の場合には、キャッシュ・ミスヒットとなる。この場合、メインメモリからデータを読み出し、データ・キャッシュメモリ20Aの所定のウエイのアドレスにデータを格納してCPUに転送し、タグ・キャッシュメモリ20Bの該所定のウエイにタグ(アクセスアドレスの上位アドレス)を設定する。
ライトアクセス時、キャッシュメモリ制御装置10’は、選択されたウエイのタグ・キャッシュメモリ20Bのアドレスに、タグ(アクセスアドレスの上位アドレス)を格納し、データ・キャッシュメモリ20Aの当該ウエイの対応するロケーション(アドレス)にデータを書き込み、ライトスルー方式またはライトバック方式でメインメモリにデータを書き込む。
図7は、図6のキャッシュメモリ制御装置10’の内部構成の一例を模式的に示す図である。なお、キャッシュメモリにおいて、ウエイ毎に、タグ、データ、フラグ(Validフラグ等)が設けられているが、図7では、ウエイ毎のフラグ情報は省略されている。また、図7では、簡単のため、図6の4つのデータ・キャッシュメモリ20Aのうちの1つが模式図として例示されている。
図7において、ウエイ予測器12は、アクセスに際してウエイの予測(決定)(最初にどのウエイから読み出すか、次にどのウエイを読み出すか等の決定)を行う。またウエイ予測器12は、キャッシュ・ミスヒット時のウエイの予測を行う。ウエイの予測(決定)にあたり、ウエイ予測器12は、例えば直前(最後)に選択されたウエイを選択する。また、ウエイの置き換えを行う場合、ウエイ予測器12は、LRU(Least Recently Used)アルゴリズム等で決定される。
キャッシュアドレス生成部13は、CPU30の予め定められた所定の下位アドレスから、キャッシュアドレス(インデックス)を生成し、アドレス1を出力する。
データウエイ生成部14とタグウエイ生成部15は、ウエイ予測器12の出力(ウエイ情報)を共通に受け、データウエイ信号とタグウエイ信号をそれぞれ出力する。
クロック同期部16は、例えばCPU30のクロック生成部31で生成されたクロック信号CKを受け、クロック信号CKの周波数を逓倍しキャッシュ駆動用の高速なクロック1を生成し、アドレス1、データウエイ、タグウエイを該クロック1に同期して、データ・キャッシュメモリ20A、タグ・キャッシュメモリ20Bに供給し、該クロック1をデータ・キャッシュメモリ20A、タグ・キャッシュメモリ20Bに共通に与える。
データ・キャッシュメモリ20Aにおいて、データウエイとアドレス1から、該当するウエイ内でのアドレスが生成される。タグ・キャッシュメモリ20Bにおいて、タグウエイとアドレス1から、該当するウエイ内でのアドレスが生成される。アドレス1とタグウエイから、例えばタグ・キャッシュメモリ20Bのウエイ0(TagX)内のタグ1のロケーションを指示するアドレスが生成され、アドレス1とデータウエイからデータ・キャッシュメモリ20Aのウエイ0(DataX)内のデータ1のロケーションを指示するアドレスが生成され、タグ1、データ1の読み出しがそれぞれ行われる。
アドレス比較部11−1/2では、タグ・キャッシュメモリ20Bにおいて、ウエイ0とウエイ1から、それぞれ読み出されたタグ(タグX、タグY)を、CPU30のアクセスアドレスの所定の上位アドレス(上位アドレスのビットフィールド)と比較し、一致/不一致の比較結果を、ウエイ予測器12とデータ選択部19とCPU30に供給する。
データ選択部19は、データ・キャッシュメモリ20Aのウエイ0、1から読み出されたデータを受け、アドレス比較部11−1/2からの比較結果(一致/不一致)に基づき、一致した方のウエイから読み出したデータを、CPU30に供給する。すなわち、アドレス比較部11−1/2において、タグXとタグYのうちの一方と、CPU30からのアクセスアドレスの上位アドレスとが一致した場合、キャッシュ・ヒットとなり、データ・キャッシュメモリ20Aの読み出しデータX、データYのうち、ヒットしたウエイから読み出されたデータが、データ選択部19で選択され、CPU30に供給される。なお、キャッシュメモリがウエイを順番に指定して各ウエイから時分割で順次読み出す方式の場合、あるウエイ(例えばウエイ0)でキャッシュ・ヒットした場合、通常、残りのウエイ(例えばウエイ1)からのデータの読み出しは行われない。
また図7では、データ・キャッシュメモリ20Aから読み出され、データ選択部19で選択されたデータがCPU30に読み出しデータとして出力されているが、CPU30からのアクセスアドレスの下位ビットを選択信号として入力し、ワードデータを選択するセレクタ(不図示)を備え、読み出されたデータ(複数ワード、複数バイト長)から、CPU30のアクセスアドレスに対応するワードデータを選択する構成としてもよい。
図6、図7に示した構成において、データ・キャッシュメモリ20Aとタグ・キャッシュメモリ20B、アドレス1、2、データウエイ、タグウエイは共通のクロック1で駆動される。
なお、特許文献1には、4ウエイ・セットアソシアティブ方式のキャッシュメモリのアドレスアレイコントローラと、データアレイコントローラに、クロック信号φ1、φ2(φ2はφ1と周波数は同一であり、φ1から所定の位相遅延している)を供給し、クロック周波数が高い場合において、アドレスアレイをクロックφ1で起動したのちアドレスアレイでのヒットチェックが確定する前の時刻に、クロックφ2でデータアレイの全てを起動し、ヒットチェックが確定したときに、データアレイ内のヒットしたウエイから読み出されたデータをデータ線に出力し、クロック周波数が低いときは、ヒットチェック完了後に、データアレイ内のヒットしたウエイのみを起動する構成とされる。すなわち、特許文献1では、クロック周波数が限界周波数よりもかなり高い場合、ヒットチェック完了時に、センスアンプによるデータの読み出し動作がほぼ完了し、クロック周波数が限界周波数よりも高い場合、センスアンプ起動前(データ読み出し前)にヒットチェックが完了する。低速動作の場合、データアレイ起動前に、ヒットチェックが確定しているため、ヒットした1つのウエイのみが動作することで消費電力を低減している。
特開平9−50403号公報
以下に関連技術の分析を与える。
図6に示した構成においては、データ・キャッシュメモリ20Aとタグ・キャッシュメモリ20Bは共通のクロック1で駆動される。
キャッシュメモリ制御装置と、キャッシュメモリ間の信号の配線遅延や出力遅延のばらつき等により、データ・キャッシュメモリ20Aとタグ・キャッシュメモリ20Bへのクロック1を等しく速くして高速動作させる手法では、タイミング・マージンの確保が困難となり、アクセス時間の短縮が限界となっている。
また、CPUからメインメモリへのアクセスの高速化のためのキャッシュメモリを、CPUの外部に構成する場合、キャッシュメモリ制御装置と、キャッシュメモリ間の動作速度に限界がある。
さらに、データを128ビット等の多ビットで構成する場合、キャッシュメモリとして機能するSSRAMが複数必要となり(図6参照)、キャッシュメモリ制御装置と複数のSSRAM(複数のデータ・キャッシュメモリ20A)の間のタイミング設計(タイミングスキュー、データスキュー)が厳しくなる傾向にある。例えば図6において、キャッシュメモリ制御装置10’と4個のデータ・キャッシュメモリ20A間のデータ信号、クロック信号等のスキューや、そのばらつき等を抑えることは、クロック1の高速化とともに困難となる。
そして、データ・キャッシュメモリ20Aとタグ・キャッシュメモリ20Bとで、同じ速度(動作周波数)のクロックとアドレスを用いているため、タグ・キャッシュメモリのSSRAMも、データ・キャッシュメモリと同一のタイミング設計とする必要があり、さらなる高速化に限界となっている。
したがって、本発明の目的は、タイミング・マージンを確保しつつ、高速化を可能としキャッシュメモリのアクセス時間の短縮を可能とするキャッシュメモリ制御装置と方法を提供することにある。
前記課題の少なくとも1つを解決するため、本発明が概略以下の構成とされる。
本発明の1つの側面によれば、タグを格納するタグ・キャッシュメモリと、データを格納するデータ・キャッシュメモリと、を含む複数ウエイのセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御装置であって、前記データ・キャッシュメモリを第1のクロック信号で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ第1のクロック信号で同期させた第1のアドレス信号とデータウエイとを、前記データ・キャッシュメモリに供給する第1のクロック同期部と、前記タグ・キャッシュメモリを第2のクロック信号で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ第2のクロック信号で同期させた第2のアドレス信号とタグウエイとを、前記タグ・キャッシュメモリに供給する第2のクロック同期部と、CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出されたタグとを比較し一致/不一致を判定するアドレス比較部と、を備え、前記第2のクロック信号の周波数は前記第1のクロック信号の周波数よりも高く設定され、前記タグ・キャッシュメモリの各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリの対応するウエイからのデータの読み出し時間よりも速められ、前記タグ・キャッシュメモリ及び前記データ・キャッシュメモリの複数のウエイに対して所定の順番で順次読み出しを行い、前記データ・キャッシュメモリの一のウエイからデータが読み出される前に、前記タグ・キャッシュメモリの複数のウエイからのタグの読み出しが完了するように制御するキャッシュ制御装置が提供される。
本発明の他の側面によれば、タグを格納するタグ・キャッシュメモリと、データを格納するデータ・キャッシュメモリと、を含む複数ウエイのセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御方法であって、
前記データ・キャッシュメモリを第1のクロック信号で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ第1のクロック信号で同期させた第1のアドレス信号とデータウエイとを、前記データ・キャッシュメモリに供給し、
前記タグ・キャッシュメモリを第2のクロック信号で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ第2のクロック信号で同期させた第2のアドレス信号とタグウエイとを、前記タグ・キャッシュメモリに供給し、
CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出されたタグとを比較し一致/不一致を判定し、
前記第2のクロック信号の周波数を前記第1のクロック信号の周波数よりも高く設定し、前記タグ・キャッシュメモリの各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリの対応するウエイからのデータの読み出し時間よりも速められ、前記タグ・キャッシュメモリ及び前記データ・キャッシュメモリの複数のウエイに対して所定の順番で順次読み出しを行い、前記データ・キャッシュメモリの一のウエイからデータが読み出される前に、前記タグ・キャッシュメモリの複数のウエイからのタグの読み出しが完了するように制御するキャッシュメモリ制御方法が提供される。
本発明によれば、タイミング・マージンを確保しつつ高速化することで、キャッシュメモリのアクセス時間を短縮することができる。
本発明の例示的な一実施形態の構成を示す図である。 本発明の例示的な一実施形態のキャッシュメモリ制御装置の内部構成を示す図である。 本発明の例示的な一実施形態のタイミング動作の一例を示すタイミング図である。 本発明の一実施形態のシステム構成の一例を示す図である。 本発明の一実施形態のシステム構成の別の例を示す図である。 関連技術としてキャッシュメモリとキャッシュメモリ制御装置の典型的な構成の一例を示す図である。 関連技術のキャッシュメモリ制御装置の内部構成の一例を示す図である。 関連技術のタイミング動作の一例を示すタイミング図である。
本発明の一つの態様によれば、キャッシュメモリ制御装置において、タグ・キャッシュメモリを駆動するクロックとアドレスを、データ・キャッシュメモリを駆動するクロックとアドレスから分離し、タグ・キャッシュメモリに対するアクセスを高速化することで、キャッシュメモリへのアクセス時間を短縮する。本発明の一つの態様においては、複数ウエイ(nウエイ、nは2、4、8・・のうちの所定の整数)のセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御装置は、データ・キャッシュメモリ(20A)を第1のクロック信号(クロック1)で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ第1のクロック信号で同期させた第1のアドレス信号(アドレス)1とデータウエイとを、前記データ・キャッシュメモリに供給する第1のクロック同期部(16A)と、タグ・キャッシュメモリ(20B)を第2のクロック信号(クロック2)で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ第2のクロック信号で同期させた第2のアドレス信号(アドレス2)とタグウエイとを、前記タグ・キャッシュメモリに供給する第2のクロック同期部(16B)と、CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出されたタグとを比較し一致/不一致を判定するアドレス比較部(11−1/2)と、を備え、前記第2のクロック信号(クロック2)の周波数は前記第1のクロック信号(クロック1)の周波数よりも高く設定され、前記タグ・キャッシュメモリ(20B)の各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリ(20A)の対応するウエイからデータの読み出し時間よりも短縮され、前記タグ・キャッシュメモリ(20B)及び前記データ・キャッシュメモリ(20A)の複数のウエイに対して所定の順番で順次読み出しを行い、前記データ・キャッシュメモリ(20A)の一のウエイからデータが読み出される前に、前記タグ・キャッシュメモリ(20B)の複数のウエイからのタグの読み出しが完了するように制御する。
本発明の一つの態様によれば、かかる構成により、タグ・キャッシュメモリのタイミング設計を、データ・キャッシュメモリから独立させることができる。また、タグ・キャッシュメモリをキャッシュメモリ制御装置の近くに配置することが可能となり、クロック周波数を上げることが可能となる。
タグ・キャッシュメモリを駆動するクロック信号の周波数を高速にしても、データ・キャッシュメモリは、タグ・キャッシュメモリを駆動するクロック信号よりも低速のクロック信号で駆動すればよいことから、複数のデータ・キャッシュメモリの信号配線遅延、出力遅延、スキュー等のタイミング・マージンを緩和し、タイミング設計を容易化している。またキャッシュメモリ制御装置の近くに配置されるタグ・キャッシュメモリでの信号の配線遅延や出力遅延は、データ・キャッシュメモリとは別個に、そのタイミング設計時点で考慮すればよい。このように、タグ・キャッシュメモリの動作クロックを速くすることによって、キャッシュメモリアクセス全体の高速化を実現可能としている。以下、実施形態に即して説明する。
図1は、本発明の一実施形態の構成を示す図である。図1は、キャッシュメモリ制御装置とキャッシュメモリの接続構成の一例が示されている。特に制限されないが、キャッシュメモリ制御装置10は、図4に示すように、CPU30内部に構成される。なお、図1において、図6の要素と同一又は同等の要素には同一の参照番号が付されている。
各キャッシュメモリ20A、20Bは、SSRAM(Synchronous SRAM)で構成され、データを格納する4つのデータ・キャッシュメモリ20Aと、タグを格納するタグ・キャッシュメモリ20Bを備えている。各キャッシュメモリ20A、20Bは図6の構成と同一である。
図1を参照すると、本実施形態においては、図6と相違して、キャッシュメモリ制御装置10は、4つのキャッシュメモリ20Aに、クロック1、アドレス1、データウエイの各信号を共通に供給し、4つのデータ・キャッシュメモリ20Aの共通に指定されたウエイと、データの入出力をパラレルに行う。
キャッシュメモリ制御装置10は、タグ・キャッシュメモリ20Bに、クロック2、アドレス2、タグウエイを供給し、タグの入出力を行う。タグ・キャッシュメモリ20Bのクロック2とアドレス2を、データ・キャッシュメモリ20Aのクロック1とアドレス1と分離し、タグ・キャッシュメモリ20Bをクロック1よりも高速なクロック2で駆動する。
図1において、タグ・キャッシュメモリ20Bに格納されるタグのビット幅に対して、データのキャッシュラインのビット幅が大きいため、1つのタグ・キャッシュメモリ20Bに対し、4つのデータ・キャッシュメモリ20Aが並置されている。特に制限されないが、図1の構成は、2ウエイ・セット・アソシエイティブ方式のキャッシュメモリとする。
キャッシュメモリ制御装置10から、データ・キャッシュメモリ20Aに出力されるデータウエイとアドレス1で、指定されたウエイにおけるインデックス(データを格納したロケーション)を指定する。タグ・キャッシュメモリ20Bに出力されるタグウエイとアドレス2で、指定されたウエイにおけるインデックス(タグを格納したロケーション)を指定する。
CPUのリードアクセス時、キャッシュメモリ制御装置10は、CPUのアクセスアドレスからキャッシュアクセス用のアドレスを生成し、タグ・キャッシュメモリ20Bからタグを読み出す。その際、タグ・キャッシュメモリ20Bに供給されるクロック2、アドレス2は、データ・キャッシュメモリ20Aに供給されるクロック1、アドレス1よりも高速であるため(クロック2はクロック1の周波数を例えば2逓倍したもの)、タグ・キャッシュメモリ20Bにおいて、ウエイからのタグの読み出しは、データの読み出し時間よりも短時間に行われる。例えばウエイ0のデータ0が出力される前に、ウエイ0のタグが読み出され、読み出されたタグと、CPUからの所定の上位アドレスとを比較することで、キャッシュのヒット/ミスヒットを判定する。
キャッシュメモリ制御装置10は、タグ・キャッシュメモリ20Bのウエイ0又はウエイ1のタグが、CPUからの所定の上位アドレスと一致した時(キャッシュヒット時)には、データ・キャッシュメモリ20Aの該当ウエイから読み出されたデータ(キャッシュラインデータ又は、下位ビットアドレスで指定されたワードデータ)をCPUに転送する。ミスヒット時(ウエイ0、1のいずれのタグも、CPUからの所定の上位アドレスと不一致の場合)には、不図示のメインメモリにアクセスしてデータを読み出し、データ・キャッシュメモリ20Aの所定のウエイのアドレスにデータを格納し、タグ・キャッシュメモリ20Bにタグを設定し、CPUに転送する。CPUからのライトアクセス時に、選択されたウエイのタグ・キャッシュメモリの該当アドレスにタグを格納し、データキャッシュの該当ウエイの該当アドレスにデータを書き込み、ライトスルー方式またはライトバック方式でメインメモリにデータを書き込む。
図2は、図1の2ウエイ・セット・アソシエイティブ方式のキャッシュメモリ制御装置10の構成の一例を模式的に示す図である。なお、図2のキャッシュメモリにおいて、ウエイ毎に、タグ、データ、フラグが設けられるが、フラグ情報は省略されている。
ウエイ予測器12は、ウエイを選択する。キャッシュアドレス生成部13は、CPUの下位アドレスから、キャッシュアドレスを生成して出力する。データウエイ生成部14は、タグウエイ生成部15は、ウエイ予測器12の出力を受け、データウエイ、タグウエイを出力する。
第1のクロック同期部16Aは、CPU30のクロック生成部31からのクロック信号CKを受け、該クロック信号の周波数を逓倍し、データ・キャッシュメモリ20A駆動用の高速のクロック1(第1のクロック信号)を生成する。また、第1のクロック同期部16Aは、キャッシュアドレス生成部13から出力されるキャッシュアドレスと、ウエイ予測器12で決定されたウエイ情報を入力し、該クロック1に同期して、アドレス1(第1のアドレス信号)とデータウエイを、データ・キャッシュメモリ20Aに出力し、該クロック1を、データ・キャッシュメモリ20Aに与える。データ・キャッシュメモリ20Aは、第1のクロック同期部16Aからのクロック1で駆動される。
第2のクロック同期部16Bは、クロック1の周波数を予め定められた逓定数(例えば2)で逓倍したクロック2(第2のクロック信号)を生成し、キャッシュアドレス生成部13から出力されるキャッシュアドレスと、ウエイ予測器12で決定されたウエイ情報を入力し、該クロック1に同期して、アドレス2(第2のアドレス信号)とタグウエイをタグ・キャッシュメモリ20Bに供給し、該クロック2をタグ・キャッシュメモリ20Bに与える。タグ・キャッシュメモリ20Bは該クロック2で駆動される。
アドレス比較部11−1/2は、タグ・キャッシュメモリ20Bのウエイ0、1から読み出されたタグX、Y(レジスタ17−1/2に格納される)を、CPU30からのアクセスアドレスの上位アドレス(タグに対応する上位のビットフィールド)と比較し、一致・不一致を判定する。そして、一致・不一致の比較結果を、ウエイ予測器12と、CPU30とデータ選択部19に供給する。
データ選択部19は、データ・キャッシュメモリ20Aのウエイ0、1から読み出されたデータを受け、アドレス比較部11−1/2からの比較結果に基づき、一致した方のウエイから読み出したデータを、CPU30に供給する。すなわち、アドレス比較部11−1/2において、タグXとタグYのうちの一方と、CPU30からのアクセスアドレスの上位アドレスが一致した場合、キャッシュヒットとなり、データ・キャッシュメモリ20Aの読み出しデータX、データYのうち、ヒットしたウエイから読み出されたデータが、データ選択部19で選択され、CPU30に供給される。なお、特に制限されないが、ここでは、キャッシュメモリは、指定された順番でウエイからタグ、データを順次読み出す方式とされ、あるウエイ(例えばウエイ0)でヒットした場合、残りのウエイ(例えばウエイ1)からのデータの読み出しは行われない。
なお、図2においてレジスタ17−1/2は、クロック2をサンプリングクロックとして、タグ・キャッシュメモリ20Bからの読み出しデータTagX、TagYをキャプチャする。一方、レジスタ(データレジスタ)18−1/2は、クロック1をサンプリングクロックとして、データ・キャッシュメモリ20Aからの読み出しデータ、データYをキャプチャする。
なお、図2では、簡単のため、データ・キャッシュメモリ20Aから読み出されデータ選択部19で選択されたキャシュラインのデータがそのままCPU30に読出しデータとして出力されているが、読み出されたキャッシュラインからワードデータを選択するセレクタを備え、アクセスアドレスに対応するワードデータをCPU30に供給する構成としてもよい。
以下、図2の回路動作の説明を行う。キャッシュメモリ制御装置10にCPU30が必要とするデータのアクセスアドレスが入力されると、上位アドレスと下位アドレスに分離される。
キャッシュアドレス生成部13は、CPU30のアクセスアドレスの下位アドレスから、タグ・キャッシュメモリ20Bとデータ・キャッシュメモリ20Aのアドレスを生成する。
ウエイ予測器12で選択されたウエイの情報から、データウエイ生成部14は、データウエイを生成し、タグウエイ生成部14はタグウエイを生成する。ウエイ予測器12において、ウエイ0と1のどちらを先にリードするかは、直前(最後)に選択されたウエイを選択する等の条件で決定するが、ここでは、ウエイの0を先に選択したと仮定する。
ウエイ0は、タグウエイ0のTagXと、データウエイ0のDataXのメモリ領域に格納されている。また、ウエイ1は、タグウエイ1のTagYと、データウエイ1のDataYのメモリ領域に格納されている。
キャッシュアドレス生成部13、データウエイ生成部14で生成されたアドレス、データウエイは、第1のクロック同期部16Aで、キャッシュメモリをアクセスするためのクロック1(CPU30のクロック生成部31からのクロックCKを逓倍したクロック)と同期され、アドレス1、データウエイとして出力され、最初のアドレスサイクルで、データウエイの0に格納されるDataXのリード動作を実行する。
キャッシュアドレス生成部13、タグウエイ生成部15で生成されたアドレス、タグウエイは、第2のクロック同期部16Bで、キャッシュメモリをアクセスするためのクロック2(クロック1を逓倍したクロック)と同期され、アドレス2、タグウエイとして出力され、最初のアドレスサイクルで、タグウエイの0に格納されるTagX、タグウエイの1に格納されるTagYのリード動作を実行する。
このようなリード動作で読み出されたデータは、キャッシュメモリ制御装置10のデータX、データYを格納するレジスタ18−1/2に格納され、タグはタグX、タグYを格納するレジスタ17−1/2に格納される。
データ・キャッシュメモリに、CPU30が必要とするデータが格納されているか否かは、タグ・キャッシュメモリ20Bに格納されたタグであるTagX、TagYをリードし、アドレス比較部11−1/2でCPUのアクセスアドレスの上位アドレスとの一致・不一致をチェックすることによって判断される。
TagX、TagYには、CPU30が必要とするデータのアクセスアドレスの上位アドレスが格納されている可能性があり、CPU30からのアクセスアドレスが入力された時に、分離した上位アドレスとTagXが一致する場合には、DataXに、CPU30が必要とするデータが格納されている、分離した上位アドレスと、TagYが一致する場合は、DataYにCPUが必要とするデータが格納されている。
CPU30のアクセスアドレスの上位アドレスが、TagX、TagYの両方と不一致の場合、データ・キャッシュメモリ20Aには、CPU30が必要とするデータが格納されていないことになる。すなわち、アドレス比較部11−1/2の出力がともに不一致の場合、不図示のメインメモリからデータが読み出され、ウエイ予測器12で指定されたウエイの、該当アドレスに、メインメモリからの読み出しデータが格納され、タグ・キャッシュメモリの当該ウエイの該当アドレス(アドレス1とデータウエイ信号で指示される格納位置)に、CPUのアクセスアドレスの上位アドレス(タグアドレス)が格納され、該読み出しデータは、CPU30に供給される。
図3は、図1、図2を参照して説明した本発明の一実施形態のキャッシュメモリのリードのタイミング動作の一例を示す図である。図3には、図2のウエイ予測器12の制御よりウエイ0、ウエイ1の順で、タグTagX、TagYを読み出し、CPUの上位アドレス(タグアドレス)とのアドレス比較の結果、ウエイ0のTagXは不一致、ウエイ1のTagYが一致した場合の動作が示されている。なお、図3において、キャッシュメモリのリード動作とクロックサイクルの関係(レーテンシ等)は理解を容易とするために模式的に表されている。また、図3では、説明の簡単のため、データがクロックの立ち上がりエッジに同期して出力される構成とされているが、SSRAMにおいて立ち上がりエッジと立ち下がりエッジ等に同期してデータが転送されるDDR(Double Data Rate)型等であってもよいことは勿論である。
図3に示す例では、図2の第2のクロック同期部16Bから出力されるクロック2は、第1のクロック同期部16Aから出力されるクロック1の2倍の周波数とし(クロック2はクロック1を2逓倍した信号)、タグ・キャッシュメモリ20Bは、データ・キャッシュメモリ20Aよりも2倍高速に動作する。クロック1の立ち上がりエッジと立ち下がりエッジは、クロック2の立ち上がりエッジに同期している。
図3において、データ・キャッシュメモリ20Aでは、アドレス1とデータウエイとにより、データアクセス用のアドレスが生成され、タグ・キャッシュメモリ20Bでは、アドレス2とタグウエイとからタグのアクセス用アドレスが生成される。
タグ・キャッシュメモリ20Bには、時刻t0から始まるクロック2の第1のサイクルにおいて、クロック2の立ち上がりエッジに同期して、アドレス2のAddr0と、タグウエイ(ウエイ0)TwayX、次の第2のサイクルにおいて、クロック2の立ち上がりエッジに同期して、アドレス2のAddr1とタグウエイ(ウエイ1)TwayYが入力され、タイミングt1からt2のクロック2の第3、第4のサイクルにおいて、ウエイ0、ウエイ1からの読み出しデータであるタグTagX、TagYが順次読み出され、レジスタ17−1、17−2に保持される。本実施形態によれば、図6、図7のようにタグ・キャッシュメモリをクロック1で駆動する比較例(図8を参照して後述される)よりも、TagX、TagYの読み出しが速くなる。
一方、データ・キャッシュメモリ20Aには、タイミングt0から始まるクロック1の第1のサイクルに、クロック1の立ち上がりエッジに同期して、アドレス1のAddr0とデータウエイ(ウエイ0)DwayXが入力され、タイミングt1から始まるクロック1の第2のサイクルに、クロック1の立ち上がりエッジに同期して、アドレス1のAddr1とデータウエイ(ウエイ0)DwayXが入力される。
そして、タイミングt2、t3から始まるクロック1の第3、第4のサイクル(クロック2の5、7番目のサイクルに該当する)に、データ・キャッシュメモリ20AのDwayX(ウエイ0)からの読み出しデータであるDataX0、DataX1が順次出力される。本実施形態では、TagX、TagYの読み出しは、タイミングt2からDataX0、DataX1の読み出しサイクル前の完了している。なお、図3に示す例では、データ・キャッシュメモリ20Aから読み出されるデータは、タグ・キャッシュメモリ20Bから読み出されるタグよりもビット幅が大であり、2回に分けて順次時分割で読み出され、DataX0、DataX1は、1個のキャッシュメモリ20Aに格納されるデータ単位を構成している。図2のレジスタ18−1に、DataX0、DataX1が保持される。
アドレス比較部11−1/2で、CPUの上位アドレスとの比較が行われ、ウエイ0のタグTagXは不一致、ウエイ1のタグTagYは一致(キャッシュヒット)していることが判別される。アドレス比較部11−1/2での比較結果を受け、ウエイ予測器12、キャッシュアドレス生成部13、データウエイ生成部14から、アドレス1のAddr0、Addr1、データウエイDwayYが生成され、データ・キャッシュメモリ20Aに供給される(タイミングtn〜tn+1)。
そして、データ・キャッシュメモリ20Aのウエイ1からの読み出しデータであるDataY0、DataY1が順次出力され(タイミングtn+2〜tn+4)、図2のレジスタ18−2に、DataY0、DataY1が保持される。
このように、本実施形態においては、最初に読み出されたウエイ0のTagXがCPUのアクセスアドレスの上位アドレスと一致しない場合には、ただちに、ウエイ1のTagYのチェックを実行し、TagYが該上位アドレスと一致した場合、ウエイ1のデータを、データ・キャッシュメモリ20Aから読み出す。データ・キャッシュメモリ20Aのウエイ1(Dway1)から読み出されたデータDataY0、DataY1は、レジスタ18−2から、データ選択部19を介して、CPU30に転送される。
なお、TagYが上位アドレスと不一致の場合(したがってTagX、TagYとも不一致の場合)、キャッシュ・ミスヒットとなり、メインメモリ(図4の50)からの読み出しが行われ、読み出しデータが、ウエイ予測器で選択されたウエイの該当アドレスに書き込まれ、タグが選択されたウエイの該当アドレスに書き込まれる。タグのタグ・キャッシュメモリへの書き込みはクロック2で駆動される。
本実施形態では、タグ・キャッシュメモリ20Bのクロック信号入力をクロック2、アドレス信号入力をアドレス2とすることにより、データ・キャッシュメモリと分離させ、タグ・キャッシュメモリ20Bのアクセス速度を高速化することを実現させる。
また、本実施形態によれば、TagXのウエイ予測が一致しなかった場合に実行するTagYのチェック実行タイミングを、時間的に速めることにより、DataY0とDataY1をリード開始するまでの時間を短縮している。
比較例として、図8に、図6、図7を参照して説明した関連技術のリード時のタイミングを示す。図8には、図3と同様、ウエイ0、1の順でタグ・キャッシュメモリ20BからタグTagX、TagYを順次リードし、ウエイ0のTagXで不一致、ウエイ1のTagYで一致した場合の動作が示されている。
データ・キャッシュメモリ20A、タグ・キャッシュメモリ20Bには、タイミングt0から始まる第1のサイクルに、クロック1の立ち上がりエッジに同期して、アドレス1のAddr0と、データウエイDwayX、タグウエイTwayXが入力され、タイミングt1から始まる第2のサイクルに、クロック1の立ち上がりエッジに同期して、アドレス1のAddr1と、データウエイDwayX、タグTwayYが入力される。
データ・キャッシュメモリ20A、タグ・キャッシュメモリ20Bからは、タイミングt2、t3から始まる第3、第4のサイクルに、ウエイ0のデータDataX0、DataX1、ウエイ0、ウエイ1から読み出されたタグTagX、TagYが出力される。なお、図3と同様、データ・キャッシュメモリ20Aから読み出されるデータは、タグ・キャッシュメモリ20Bから読み出されるタグよりもビット幅が大であり、2回に分けて時分割で読み出され、DataX0、DataX1は、キャッシュライン(ブロック)を構成している。
タイミングt4以降、ウエイ1のTagYとCPUの上位アドレスとの一致の結果を受け、ウエイ予測器12、キャッシュアドレス生成部13、データウエイ生成部14で、アドレス1データウエイDwayYが生成され、タイミングtn+2から、ウエイ1のアドレス、データウエイがデータキャッシュに出力され、タイミングtn+4からデータDataY0、DataY1が順次出力される。
図3に示した本実施形態では、タイミングtnからウエイ1のアドレス、データウエイがデータ・キャッシュメモリ20Aに出力され、タイミングtn+2から、読み出しデータDataY0、DataY1が出力され、図8の比較例よりも、DataY0、DataY1読み出しが早くなる。すなわち、クロック1の2クロックサイクル分、時間を短縮し、キャッシュメモリのアクセス時間を高速化している。
また本実施形態によれば、タグ・キャッシュメモリ20Bを、クロック1の2逓倍クロックであるクロック2で駆動しているため、タグ・キャッシュメモリ20Bの読み出し時間のほか、更新(書き込み)時間も高速化している。
本実施形態において、キャッシュメモリへの書き込み動作は、タグ・キャッシュメモリ20Bへの書き込み動作がクロック2で行われる他は、図6、図7の関連技術と同一である。
前述したように、本実施形態では、図4に示すように、キャッシュメモリ制御装置10がCPU30内部に構成され、キャッシュメモリ20に接続される。CPU30は、メインメモリ制御装置(メモリコントローラ)40を介して、シンクロナスDRAM(SDRAM)からなるメインメモリ50に接続される。
あるいは、図5に示すように、キャッシュメモリ制御装置10は、CPU30の外部、例えばメインメモリ制御装置(メモリコントローラ)40内部に組み込む構成としてもよい。この場合、CPU30は、メインメモリ制御装置40内のキャッシュ制御装置10を介してキャッシュメモリ20にアクセスする。
なお、上記実施形態では、2ウエイ・セットアソシアティブ方式のキャッシュメモリを例に本発明を説明したが、nウエイ(nは4、8・・・の整数)のセットアソシアティブ方式のキャッシュメモリについても同様にして適用できることは勿論である。この場合、図3において、クロック2はクロック1をn逓倍したクロック信号としてもよい。
本発明は、PCや交換機等、キャッシュメモリを制御する機能を有する装置に適用可能である。
なお、上記の特許文献1の開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
10、10’ キャッシュメモリ制御装置
11−1、11−2 アドレス比較部
12 ウエイ予測器
13 キャッシュアドレス生成部
14 データウエイ生成部
15 タグウエイ生成部
16、16A、16B クロック同期部
17−1 TagX(レジスタ)
17−2 TagY(レジスタ)
18−1 データX
18−2 データY
19 データ選択部
20 キャッシュメモリ
20A データ・キャッシュメモリ
20B タグ・キャッシュメモリ
30 CPU
31 クロック生成部
40 メインメモリ制御装置
50 メインメモリ

Claims (10)

  1. タグを格納するタグ・キャッシュメモリと、
    データを格納するデータ・キャッシュメモリと、
    を含む複数ウエイのセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御装置であって、
    前記データ・キャッシュメモリを第1のクロック信号で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ前記第1のクロック信号で同期させた第1のアドレス信号とデータウエイとを、前記データ・キャッシュメモリに供給する第1のクロック同期部と、
    前記タグ・キャッシュメモリを第2のクロック信号で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ前記第2のクロック信号で同期させた第2のアドレス信号とタグウエイとを、前記タグ・キャッシュメモリに供給する第2のクロック同期部と、
    CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出されたタグとを比較し一致/不一致を判定するアドレス比較部と、
    を備え、
    前記第2のクロック信号の周波数は前記第1のクロック信号の周波数よりも高く設定され、前記タグ・キャッシュメモリの各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリの対応するウエイからのデータの読み出し時間よりも速められ、
    前記タグ・キャッシュメモリ及び前記データ・キャッシュメモリの複数のウエイに対して所定の順番で順次読み出しを行い、前記データ・キャッシュメモリの一つのウエイからデータが読み出される前に、前記タグ・キャッシュメモリの複数のウエイからのタグの読み出しが完了するようにした、キャッシュメモリ制御装置。
  2. 前記第2のクロック信号は、前記第1のクロック信号を予め定められた所定の逓倍数で逓倍したクロック信号であり、
    前記第2のクロック信号で駆動される前記タグ・キャッシュメモリの最初のウエイのタグの読み出しサイクルと、前記第1のクロック信号で駆動される前記データ・キャッシュメモリの最初のウエイのデータの読み出しサイクルとは、同一のタイミングで開始され、
    前記データ・キャッシュメモリでは、与えられた前記第1のアドレス信号と前記データウエイとから、該当するウエイのデータ格納位置から、データを読み出し、
    前記タグ・キャッシュメモリでは、与えられた前記第2のアドレス信号と前記タグウエイから該当するウエイのタグ格納位置からタグを読み出し、
    前記データ・キャッシュメモリの最初に指定されたウエイから読み出しデータが出力されるサイクルよりも前に、前記タグ・キャッシュメモリから複数のウエイ分の複数のタグの読み出しが終了し、
    前記アドレス比較部では、読み出されたタグと前記CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドとの比較が行われる、請求項1に記載のキャッシュメモリ制御装置。
  3. 前記キャッシュメモリが、2ウエイ・セット・アソシアティブ・キャッシュメモリであり、
    前記第2のクロック信号は、前記第1のクロック信号を2逓倍したクロック信号であり、
    前記第2のクロック信号で駆動される前記タグ・キャッシュメモリの最初のウエイのタグの読み出しサイクルと、前記第1のクロック信号で駆動される前記データ・キャッシュメモリの最初のウエイのデータの読み出しサイクルとは、同一のタイミングで開始され、
    前記データ・キャッシュメモリの最初に指定されたウエイから読み出しデータが出力されるサイクルよりも前に、前記タグ・キャッシュメモリから2ウエイ分のタグの読み出しが終了し、
    前記アドレス比較部では、読み出された各ウエイのタグと、前記CPUのアクセスアドレスのうちのタグに対応する所定のビットフィールドとの比較が行われる、請求項1又は2に記載のキャッシュメモリ制御装置。
  4. 前記CPUのアクセスアドレスのタグに対応する所定のビットフィールドと2つのウエイのタグとの一致・不一致を比較した結果、2番目のウエイで一致したことで、前記データ・キャッシュメモリに前記第1のクロック信号に同期して第1のアドレス信号、データウエイを与えて2番目のウエイからデータの読み出しを行う場合の前記読み出しを開始するタイミングは、前記データ・キャッシュメモリを前記第1のクロック信号で駆動した場合よりも時間的に速くなる、請求項3に記載のキャッシュメモリ制御装置。
  5. 前記CPUのアクセスアドレスの所定の下位アドレスから前記キャッシュアドレスを生成するキャッシュアドレス生成部と、
    前記アドレス比較部の比較結果、及び、前記CPUのアクセスアドレスの予め定められた所定の上位アドレスから、アクセスするウエイを決定するウエイ予測器と、
    前記ウエイ予測器で決定されたウエイに対応して前記データウエイを生成するデータウエイ生成部と、
    前記ウエイ予測器で決定されたウエイに対応して前記タグウエイを生成するタグウエイ生成部と、
    前記タグ・キャッシュメモリの複数のウエイに対応して設けられ、読み出されたタグをそれぞれ格納する複数の第1のレジスタと、
    前記データ・キャッシュメモリの複数のウエイに対応して設けられ、読み出されたデータをそれぞれ格納する複数の第2のレジスタと、
    前記複数の第2のレジスタのデータから、前記アドレス比較部で一致したウエイのデータを選択するデータ選択部と、
    を備え、
    前記第1のクロック同期部は、前記キャッシュアドレス生成部からのキャッシュアドレスと、前記データウエイ生成部からのデータウエイとを、前記第1のクロック信号に同期させて、前記第1のアドレス信号と前記データウエイとして出力し、
    前記第2のクロック信号は、前記第1のクロック信号を予め定められた所定の逓倍数で逓倍した信号であり、
    前記第2のクロック同期部は、前記第2のクロック信号により、前記キャッシュアドレス生成部からの前記キャッシュアドレスと、前記タグウエイ生成部からの前記タグウエイとを同期させて、前記第2のアドレス信号と、前記タグウエイとして出力する、請求項1乃至3のいずれか1項に記載のキャッシュメモリ制御装置。
  6. 請求項1乃至5のいずれか1項記載のキャッシュメモリ制御装置を備えたCPU。
  7. CPUとメインメモリに接続されるメモリコントローラであって、請求項1乃至5のいずれか1項記載のキャッシュメモリ制御装置を備えたメモリコントローラ。
  8. タグを格納するタグ・キャッシュメモリと、
    データを格納するデータ・キャッシュメモリと、
    を含む複数ウエイのセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御方法であって、
    前記データ・キャッシュメモリを第1のクロック信号で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ第1のクロック信号で同期させた第1のアドレス信号とデータウエイとを、前記データ・キャッシュメモリに供給し、
    前記タグ・キャッシュメモリを第2のクロック信号で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ第2のクロック信号で同期させた第2のアドレス信号とタグウエイとを、前記タグ・キャッシュメモリに供給し、
    CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出されたタグとを比較し一致/不一致を判定し、
    前記第2のクロック信号の周波数を前記第1のクロック信号の周波数よりも高く設定し、前記タグ・キャッシュメモリの各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリの対応するウエイからのデータの読み出し時間よりも速められ、
    前記タグ・キャッシュメモリ及び前記データ・キャッシュメモリの複数のウエイに対して所定の順番で順次読み出しを行い、前記データ・キャッシュメモリの一のウエイからデータが読み出される前に、前記タグ・キャッシュメモリの複数のウエイからのタグの読み出しが完了するようにした、キャッシュメモリ制御方法。
  9. 前記第2のクロック信号は、前記第1のクロック信号を予め定められた所定の逓倍数で逓倍したクロック信号であり、
    前記第2のクロック信号で駆動される前記タグ・キャッシュメモリの最初のウエイのタグの読み出しサイクルと、前記第1のクロック信号で駆動される前記データ・キャッシュメモリの最初のウエイのデータの読み出しサイクルとは、同一のタイミングで開始され、
    前記データ・キャッシュメモリでは、与えられた前記第1のアドレス信号と前記データウエイとから、該当するウエイのデータ格納位置から、データを読み出し、
    前記タグ・キャッシュメモリでは、与えられた前記第2のアドレス信号と前記タグウエイから該当するウエイのタグ格納位置からタグを読み出し、
    前記データ・キャッシュメモリの最初に指定されたウエイから読み出しデータが出力されるサイクルよりも前に、前記タグ・キャッシュメモリから複数のウエイ分の複数のタグの読み出しが終了し、
    読み出されたタグと前記CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドとの比較が行われる、請求項8に記載のキャッシュメモリ制御方法。
  10. 前記キャッシュメモリが、2ウエイ・セット・アソシアティブ・キャッシュメモリであり、
    前記第2のクロック信号は、前記第1のクロック信号を2逓倍したクロック信号であり、
    前記第2のクロック信号で駆動される前記タグ・キャッシュメモリの最初のウエイのタグの読み出しサイクルと、前記第1のクロック信号で駆動される前記データ・キャッシュメモリの最初のウエイのデータの読み出しサイクルとは、同一のタイミングで開始され、
    前記データ・キャッシュメモリの最初に指定されたウエイからの読み出しデータが出力されるサイクルよりも前に、前記タグ・キャッシュメモリから2ウエイ分のタグの読み出しが終了し、
    読み出された各ウエイのタグと、前記CPUのアクセスアドレスのうちのタグに対応する所定のビットフィールドとの比較が行われる、請求項8又は9に記載のキャッシュメモリ制御方法。
JP2010200982A 2010-09-08 2010-09-08 キャッシュメモリ制御装置と方法 Expired - Fee Related JP5565864B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010200982A JP5565864B2 (ja) 2010-09-08 2010-09-08 キャッシュメモリ制御装置と方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010200982A JP5565864B2 (ja) 2010-09-08 2010-09-08 キャッシュメモリ制御装置と方法

Publications (2)

Publication Number Publication Date
JP2012058973A true JP2012058973A (ja) 2012-03-22
JP5565864B2 JP5565864B2 (ja) 2014-08-06

Family

ID=46056001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010200982A Expired - Fee Related JP5565864B2 (ja) 2010-09-08 2010-09-08 キャッシュメモリ制御装置と方法

Country Status (1)

Country Link
JP (1) JP5565864B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300256A1 (en) * 2005-06-24 2009-12-03 Nxp B.V. Self-synchronizing data streaming between address-based producer and consumer circuits

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56130877A (en) * 1980-03-19 1981-10-14 Hitachi Ltd Control system for burrer memory
JP2001075864A (ja) * 1999-09-02 2001-03-23 Fujitsu Ltd キャッシュ制御装置
JP2004164622A (ja) * 2002-10-15 2004-06-10 Stmicroelectronics Inc Dspカーネルの性能/パワー比を改善する方法
JP2004171177A (ja) * 2002-11-19 2004-06-17 Renesas Technology Corp キャッシュシステムおよびキャッシュメモリ制御装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56130877A (en) * 1980-03-19 1981-10-14 Hitachi Ltd Control system for burrer memory
JP2001075864A (ja) * 1999-09-02 2001-03-23 Fujitsu Ltd キャッシュ制御装置
JP2004164622A (ja) * 2002-10-15 2004-06-10 Stmicroelectronics Inc Dspカーネルの性能/パワー比を改善する方法
JP2004171177A (ja) * 2002-11-19 2004-06-17 Renesas Technology Corp キャッシュシステムおよびキャッシュメモリ制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300256A1 (en) * 2005-06-24 2009-12-03 Nxp B.V. Self-synchronizing data streaming between address-based producer and consumer circuits
US8543746B2 (en) * 2005-06-24 2013-09-24 Nxp B.V. Self-synchronizing data streaming between address-based producer and consumer circuits

Also Published As

Publication number Publication date
JP5565864B2 (ja) 2014-08-06

Similar Documents

Publication Publication Date Title
TWI454909B (zh) 減少記憶體裝置之功率消耗之記憶體裝置、方法及系統
US6138225A (en) Address translation system having first and second translation look aside buffers
KR100445927B1 (ko) 메모리 인터페이스를 갖는 프로세서와, 이 프로세서에서 수행되는 방법 및 컴퓨터 시스템
US9641464B2 (en) FIFO buffer system providing same clock cycle response to pop commands
JPH0772877B2 (ja) ダイナミックメモリシステムのタイミングを動的に設定するデータ処理装置
JPH0628254A (ja) ライトスルーキャッシュおよびパイプラインスヌープサイクルを備えたメモリシステムを有するパーソナルコンピュータ
JPH087718B2 (ja) コンピュータメモリシステム
KR20070094429A (ko) 반도체 메모리, 메모리 시스템 및 메모리 시스템의 동작방법
JP2005339348A (ja) 半導体装置
JP4370063B2 (ja) 半導体記憶装置の制御装置および半導体記憶装置の制御方法
JPH0529945B2 (ja)
US8924652B2 (en) Simultaneous eviction and cleaning operations in a cache
US20050232060A1 (en) Memory controller controlling cashed dram
US8473685B2 (en) Cache memory device, processor, and control method for cache memory device to reduce power unnecessarily consumed by cache memory
TW491970B (en) Page collector for improving performance of a memory
JP2005038427A (ja) ダイナミック周波数スケーリングキャッシュメモリの休止時間を利用する方法、回路及びシステム
JP3215105B2 (ja) メモリアクセス装置
JP5565864B2 (ja) キャッシュメモリ制御装置と方法
JPH07248963A (ja) Dram制御装置
JPH0529946B2 (ja)
KR100398954B1 (ko) 멀티웨이 세트 연관 구조의 캐쉬 메모리 및 데이터 판독방법
JP2004171678A (ja) 情報記憶装置、情報記憶方法、及び情報記憶プログラム
US8886895B2 (en) System and method for fetching information in response to hazard indication information
JP2000195262A (ja) Sdram及びsdramのデ―タ・アクセス方法
JP3967921B2 (ja) データ処理装置及びデータ処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140520

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140612

R150 Certificate of patent or registration of utility model

Ref document number: 5565864

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees