JP4241665B2 - キャッシュメモリ装置及びその制御方法 - Google Patents

キャッシュメモリ装置及びその制御方法 Download PDF

Info

Publication number
JP4241665B2
JP4241665B2 JP2005138184A JP2005138184A JP4241665B2 JP 4241665 B2 JP4241665 B2 JP 4241665B2 JP 2005138184 A JP2005138184 A JP 2005138184A JP 2005138184 A JP2005138184 A JP 2005138184A JP 4241665 B2 JP4241665 B2 JP 4241665B2
Authority
JP
Japan
Prior art keywords
tag
data
cache
cache data
flag
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 - Fee Related
Application number
JP2005138184A
Other languages
English (en)
Other versions
JP2006318080A (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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
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 Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2005138184A priority Critical patent/JP4241665B2/ja
Publication of JP2006318080A publication Critical patent/JP2006318080A/ja
Application granted granted Critical
Publication of JP4241665B2 publication Critical patent/JP4241665B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、キャッシュメモリ装置及びその制御方法に関し、特に、CPU等のデータ処理ユニットのメモリアクセス時間を短縮するためのキャッシュメモリ装置及びその制御方法に関する。
従来から、CPU等のメインメモリに対するメモリアクセス時間を短縮するためにキャッシュメモリが広く利用されている。キャッシュメモリには、CPUが必要とする可能性が高いデータが、キャッシュデータとしてメインメモリからコピーされて記憶されており、このキャッシュデータを用いることでメインメモリへのアクセス回数を抑え、メモリアクセスの高速化を図っている。
CPUからアクセスしようとしたメインメモリのアドレスに記憶されているデータがキャッシュメモリに存在するときはヒットと呼ばれ、キャッシュメモリのデータがCPUに与えられる。また、CPUがアクセスしようとしたアドレスに記憶されているデータがキャッシュメモリに存在しないときは、ミスヒットと呼ばれ、メインメモリのデータがCPUに与えられると同時に、そのデータがキャッシュメモリに格納される。
キャッシュメモリは一般に、複数のタグとそれぞれのタグに対応したデータとを保持するキャッシュテーブルを備えており、入力アドレスに含まれるタグがキャッシュテーブルに格納されたタグと比較される。タグが一致した際には、一致したタグに対応したデータがキャッシュテーブルから選択され、CPU等に供給される。
また、このキャッシュメモリには、一般的に高速性を重視し、SRAM(Static RAM)が使用されている。一方、コスト低減や大容量化を図るため、キャッシュメモリにSRAMではなくDRAM(Dynamic RAM)を用いたキャッシュメモリ装置が知られている(例えば、特許文献1参照)。
一般に、SRAMの1つのセルは、4個もしくは6個のトランジスタで構成され、DRAMの1つのセルは、1個のトランジスタと1個のキャパシタで構成されるため、DRAMの方が、ビット当たりのコストが低く、小さいサイズで構成することができる。また、DRAMは、キャパシタの放電によってセルの状態が失われるため、セルの記憶状態を保持するには、周期的にリフレッシュし、キャパシタに電荷を充電する必要がある。
図6は、DRAMを用いた従来のキャッシュメモリ装置のメモリセルアレイとデータ構造を示している。図6(a)は、CPUからキャッシュメモリ装置へ入力される入力アドレス、図6(b)は、CPUとキャッシュメモリ装置との間で入出力される入出力データ、図6(c)は、キャッシュメモリ装置のメモリセルアレイと格納されるデータ構造を示している。
図6(a)に示すように、入力アドレスには、インデックス、タグ、及びオフセットが含まれている。図6(b)に示すように、入出力データには、入出力するデータが含まれている。図6(c)に示すように、従来のキャッシュメモリ装置では、1つのDRAMメモリセルアレイ600に、キャッシュテーブル610が格納される。
キャッシュテーブル610は、複数のタグとこれらのタグに対応するデータが格納される。キャッシュテーブル610は、各キャッシュライン(行)611ごとに、読み出しや書き込みのアクセスが行われる。各キャッシュライン611にはインデックスが付され、入力アドレスのインデックスに対応するキャッシュライン611がアクセス対象となる。各キャッシュライン611には、タグと、タグに対応するデータと、そのデータの有効/無効(活性/非活性)を示すための活性化ビット(Valid bit:V)が設けられている。活性化ビット「1」は、そのキャッシュライン611のデータが有効(活性)であることを示し、活性化ビット「0」は、そのキャッシュライン611のデータが無効(非活性)であることを示す。キャッシュライン611のデータは、複数のオフセットに分割されており、メインメモリのデータが入力アドレスのオフセットに対応する位置に格納される。
例えば、従来のキャッシュメモリ装置は、CPUからアクセスがあると、入力アドレスをデコードし、入力アドレスのインデックスに対応するキャッシュライン611の全体を、メモリセルアレイ600から読み出す。そして、読み出したキャッシュライン611のタグと、入力アドレスのタグとが一致するか判定する。タグ一致した場合には、さらに、活性化ビットが有効かどうか判定する。活性化ビットが「1」の場合には、読み出したキャッシュライン611から、入力アドレスのオフセットに対応するデータを取得しCPUへ出力する。
また、読み出したキャッシュライン611のタグと、入力アドレスのタグとが不一致の場合や、活性化ビットが「0」(無効)の場合には、メインメモリにアクセスし、メインメモリから読み出したデータをCPUへ出力する。このとき、キャッシュライン611に、タグ、メインメモリのデータ、及び活性化ビット「1」を書き込む。
このように、CPUからアクセスがあるたびに、メモリセルアレイ600の該当するキャッシュライン611には、読み出しや書き込みのアクセスが行われる。したがって、キャッシュライン611にアクセスすることによって、キャッシュライン611のメモリセルに電荷が充電されてリフレッシュされたことになり、各メモリセルの状態が保持される。
すなわち、DRAMの特性表で規定されたリフレッシュ時間内にCPUからアクセスがあれば、キャッシュライン611のデータや活性化ビットはメモリセルに維持され、このリフレッシュ時間内にCPUからアクセスがなければ、キャッシュライン611のデータや活性化ビットはメモリセルから自動的に消滅する。
すなわち、従来のキャッシュメモリ装置では、DRAMを使用することで、DRAMの定期的にリフレッシュが必要という特性を利用し、効率よくキャッシュ動作を実現している。
特開平6−337815号公報
しかしながら、従来のキャッシュメモリ装置では、CPUからのアクセスをDRAMのリフレッシュに利用するために、CPUからのアクセスのたびにデータまでを含むキャッシュライン全体を読み出している。したがって、タグがヒットせず、データにアクセス不要な場合でも、常に、データも読み出すため、消費電力が大きいという問題があった。例えば、入出力データのサイズを64ビットとし、オフセットを3ビットとすると、キャッシュラインのデータの最大サイズは64×8=512ビットとなり、512ビット読み出すための電力を無駄に消費することになってしまう。
本発明にかかるキャッシュメモリ装置は、データ処理ユニットから入力される入力アドレスに基づいて、キャッシュデータもしくは外部メモリの外部データを出力するキャッシュメモリ装置であって、前記入力アドレスに含まれるタグと前記タグの有効/無効を示すタグ用フラグとをそれぞれ複数記憶し、DRAMで構成されたタグ記憶部と、前記キャッシュデータと前記キャッシュデータの有効/無効を示すキャッシュデータ用フラグとをそれぞれ複数記憶し、DRAMで構成されたキャッシュデータ記憶部と、前記入力アドレスに含まれるインデックスに対応した前記タグ及び前記タグ用フラグを前記タグ記憶部から読み出すタグ読み出し部と、前記読み出したタグ及びタグ用フラグを判定するタグ判定部と、前記タグ判定部の判定に応じて、前記タグに対応する前記キャッシュデータ及び前記キャッシュデータ用フラグを前記キャッシュデータ記憶部から読み出すキャッシュデータ読み出し部と、前記読み出したキャッシュデータ用フラグを判定するキャッシュデータ判定部と、前記キャッシュデータ判定部の判定に応じて、前記読み出したキャッシュデータもしくは前記外部メモリから取得する外部データを前記データ処理ユニットに出力するキャッシュデータ出力部と、を備えるものである。
本発明にかかるキャッシュメモリ装置によれば、データ処理ユニットからのアクセス時、キャッシュデータ記憶部にはアクセスせずにタグ記憶部のみアクセスするようになるため、消費電力を低減することができる。また、タグ用フラグとは別にキャッシュデータ用フラグを設けることで、タグ記憶部とキャッシュデータ記憶部との状態が不一致となった場合でも、正確にデータの内容を保障することができる。
本発明にかかるキャッシュメモリ装置の制御方法は、データ処理ユニットから入力される入力アドレスに基づいて、キャッシュデータもしくは外部メモリの外部データを出力するキャッシュメモリ装置の制御方法であって、DRAMで構成されたタグ記憶部に、前記入力アドレスに含まれるタグと前記タグの有効/無効を示すタグ用フラグとをそれぞれ複数記憶し、DRAMで構成されたキャッシュデータ記憶部に、前記キャッシュデータと前記キャッシュデータの有効/無効を示すキャッシュデータ用フラグとをそれぞれ複数記憶し、前記入力アドレスに含まれるインデックスに対応した前記タグ及び前記タグ用フラグを前記タグ記憶部から読み出し、前記読み出したタグ及びタグ用フラグを判定し、前記タグ及びタグ用フラグの判定に応じて、前記タグに対応する前記キャッシュデータ及び前記キャッシュデータ用フラグを前記キャッシュデータ記憶部から読み出し、前記読み出したキャッシュデータ用フラグを判定し、前記キャッシュデータ用フラグの判定に応じて、前記読み出したキャッシュデータもしくは前記外部メモリから取得する外部データを前記データ処理ユニットに出力するものである。
本発明にかかるキャッシュメモリ装置の制御方法によれば、データ処理ユニットからのアクセス時、キャッシュデータ記憶部にはアクセスせずにタグ記憶部のみアクセスするようになるため、消費電力を低減することができる。また、タグ用フラグとは別にキャッシュデータ用フラグを設けることで、タグ記憶部とキャッシュデータ記憶部との状態が不一致となった場合でも、正確にデータの内容を保障することができる。
本発明によれば、安価な構成で、かつ消費電力を低減できるキャッシュメモリ装置及びその制御方法を提供することができる。
発明の実施の形態1.
まず、本発明の実施の形態1にかかるキャッシュメモリ装置について説明する。本実施形態にかかるキャッシュメモリ装置は、第1のメモリセルアレイにタグとタグの有効性を示すフラグを格納し、第2のメモリセルアレイにデータとデータの有効性を示すフラグを格納することを特徴としている。
ここで、図1を用いて、本実施形態にかかるキャッシュメモリ装置の構成について説明する。このキャッシュメモリ装置1は、CPU(データ処理ユニット)2とメインメモリ(外部メモリ)3の間に設けられており、CPU2から入力される入力アドレスに基づいて、キャッシュメモリ装置1内のデータ(キャッシュデータ)もしくはメインメモリ3のデータ(外部データ)を出力する。例えば、キャッシュメモリ装置1は、CPU2からアクセスがあると、キャッシュメモリに該当するデータが存在する(ヒットした)場合、キャッシュメモリ装置1の内部に記憶したデータをCPU2へ出力し、キャッシュメモリに該当するデータが存在しない(ミスヒットした)場合、メインメモリ3のデータを取得しCPU2へ転送する。また、キャッシュメモリ装置1とメインメモリ3の間はバスを介して接続されている。図において、キャッシュメモリ装置1とCPU2は、直接接続されているが、内部バスなどを介して接続することもできる。
図に示されるように、キャッシュメモリ装置1は、アドレス制御部110、データ制御部120、タグ格納部130、データ格納部140を備えている。
アドレス制御部110は、CPU2から入力される入力アドレスを解析し、入力アドレスのインデックスにしたがって、タグ格納部130からタグと活性化ビットを読み出すタグ読み出し部であるとともに、読み出したタグの判定や活性化ビットの判定を行う判定部である。また、アドレス制御部110は、タグ格納部130のタグと活性化ビットの更新や、入力アドレスのインデックスとオフセットのデータ制御部120への出力を行う。例えば、アドレス制御部110は、デコーダや比較器などにより構成することができる。
データ制御部120は、アドレス制御部110のタグや活性化ビットの判定に応じて、与えられるインデックスとオフセットにしたがって、データ格納部140のデータと活性化ビットを読み出す読み出し部であるとともに、読み出した活性化ビットを判定する判定部である。データ制御部120は、読み出した活性化ビットの判定に応じて、読み出したデータもしくはメインメモリ3から取得するデータをCPU2へ出力する出力部でもある。また、データ制御部120は、メインメモリ3データを出力する場合、データ格納部140のデータと活性化ビットを更新する、例えば、データ制御部120は、デコーダや比較器などにより構成することができる。
タグ格納部130は、タグとタグの有効/無効(活性/非活性)を示す活性化ビット(タグ用フラグ)を格納する。タグ格納部130のタグ領域131に、CPU2からの入力アドレスに含まれるタグが格納され、タグ格納部130のフラグ領域132に、タグの活性化ビットが格納される。タグ格納部130は、後述するように、DRAMメモリセルアレイから構成される。
データ格納部140は、データ(キャッシュデータ)とデータの有効/無効(活性/非活性)を示す活性化ビット(キャッシュデータ用フラグ)を格納する。データ格納部140のデータ領域141に、メインメモリ3から取得したデータが格納され、データ格納部140のフラグ領域142に、データの活性化ビットが格納される。データ格納部140は、後述するようにDRAMメモリセルアレイから構成される。
図2は、本実施形態にかかるキャッシュメモリ装置のメモリセルアレイとデータ構造を示している。図2(a)は、CPU2からキャッシュメモリ装置1へ入力される入力アドレス、図2(b)は、CPU2とキャッシュメモリ装置1との間で入出力される入出力データ、図2(c)は、キャッシュメモリ装置1のメモリセルアレイと格納されるデータ構造を示している。
図2(a)に示すように、CPU2から入力される入力アドレスには、インデックス、タグ、及びオフセットが含まれている。例えば、入力アドレスのサイズは、32ビットであり、インデックスは17ビット、タグは12ビット、オフセットは3ビットである。図2(b)に示すように、入出力データには、入出力するデータが含まれている。例えば、入出力データのサイズは、64ビットである。
図2(c)に示すように、キャッシュメモリ装置1には、DRAMメモリセルアレイ210と220が設けられている。DRAMメモリセルアレイ210は、タグ格納部130を構成するメモリであり、DRAMメモリセルアレイ220は、データ格納部140を構成するメモリである。タグ格納部130とデータ格納部140とをDRAMで構成することにより、記憶状態を保持するためにはリフレッシュ時間内にリフレッシュ(アクセス)が必要というDRAMの特性を利用して、効率よくキャッシュメモリを実現することができる。例えば、DRAMメモリセルアレイ210とDRAMメモリセルアレイ220のリフレッシュ時間は、ほぼ同じである。
DRAMメモリセルアレイ210には、タグ領域131とフラグ領域132が含まれ、タグ領域131とフラグ領域132にタグテーブル211が格納される。例えば、フラグ領域132のリフレッシュ時間は、タグ領域131のリフレッシュ時間とほぼ同じであるが、フラグ領域132のリフレッシュ時間をより短くしてもよい。フラグ領域132のリフレッシュ時間をより短くすることで、タグよりも活性化ビットが早く消滅するため、より確実にタグの有効性を保障することができる。例えば、フラグ領域132を構成するメモリセルのキャパシタの容量をタグ領域131を構成するメモリセルのキャパシタよりも小さくすることで、リフレッシュ時間を短くすることができる。
タグテーブル211は、各タグライン(行)212ごとに、読み出しや書き込みのアクセスが行われる。各タグライン212にはインデックスが付され、入力アドレスのインデックスに対応するタグライン212がアクセス対象となる。各タグライン212には、タグと、そのタグの有効/無効を示す活性化ビット(Valid bit:V)が設けられている。活性化ビット「1」は、そのタグライン212のタグが有効(活性)であることを示し、活性化ビット「0」は、そのタグライン212のデータが無効(非活性)であることを示す。
また、本実施形態のキャッシュメモリ装置1は、キャッシュ方式として、Nウェイセットアソシアティブマッピング方式をとっている。1つのインデックスに対し1つのタグのみが対応するダイレクトマッピング方式に対して、Nウェイセットアソシアティブマッピング方式は、1つのインデックスに対しN個のタグを対応付けられるため、よりキャッシュのヒット率を向上することができる。キャッシュメモリ装置1では、Nウェイセットアソシアティブマッピング方式のウェイの数分のタグテーブル211が設けられる。2ウェイの場合、タグテーブル211は、2つ設けられる(211a,211b)。例えば、ウェイ1用のテーブルがタグテーブル211aであり、ウェイ2用のテーブルがタグテーブル211bである。
DRAMメモリセルアレイ220には、データ領域141とフラグ領域142が含まれ、データ領域141とフラグ領域142にデータテーブル221が格納される。DRAMメモリセルアレイ220と同様に、フラグ領域142のリフレッシュ時間は、データ領域141のリフレッシュ時間とほぼ同じであるが、より確実にタグの有効性を保障するため、フラグ領域142のリフレッシュ時間をより短くしてもよい。
データテーブル221は、各データライン(行)222ごとに、読み出しや書き込みのアクセスが行われる。各データライン222にはインデックスが付され、入力アドレスのインデックスに対応するデータライン222がアクセス対象となる。各データライン222には、データと、そのデータの有効/無効を示す活性化ビット(Valid bit:V)が設けられている。タグテーブル211と同様に、活性化ビット「1」は、そのデータライン222のデータが有効(活性)であることを示し、活性化ビット「0」は、そのデータライン222のデータが無効(非活性)であることを示す。データライン222のデータは、複数のオフセットに分割されており、メインメモリのデータが入力アドレスのオフセットに対応する位置に格納される。また、データテーブル221は、タグテーブルに対応して設けられるため、タグテーブル211と同様にウェイの数分設けられる。(221a,221b)。
次に、図3のフローチャートを用いて、本実施形態にかかるキャッシュメモリ装置の動作について説明する。図3は、キャッシュメモリ装置1において、CPU2からアクセスがあったときの動作を示している。
まず、CPU2から入力アドレスがキャッシュメモリ装置1へ入力されると、アドレス制御部110は、この入力アドレスを解析する(S301)。例えば、アドレス制御部110は、入力された入力アドレスについて、インデックス、タグ、オフセットのそれぞれをデコードし解析する。
次いで、アドレス制御部110は、タグラインを読み出すためのタグテーブル(ウェイ)を選択する(S302)。例えば、アドレス制御部110は、複数あるタグテーブル211の中から1つのタグテーブルを選択する。選択する順番は任意であるが、例えば、先頭のタグテーブル211aを選択する。
次いで、アドレス制御部110は、インデックスに対応するタグラインを読み出す(S303)。例えば、アドレス制御部110は、S302で選択したタグテーブル211の中から、S301の解析で得た入力アドレスのインデックスに対応するタグライン212を読み出す。このとき、アドレス制御部110は、タグライン212の全体、すなわち、タグと活性化ビットとを一度に読み出す。
次いで、アドレス制御部110は、タグラインのタグが有効かどうか判定する(S304)。例えば、アドレス制御部110は、S303で読み出したタグライン212に含まれる活性化ビットが「1」かどうか判定し、活性化ビットが「1」であればタグは有効、活性化ビットが「0」であればタグは無効とする。
S304において、タグが有効であると判定された場合、アドレス制御部110は、タグラインのタグが入力アドレスのタグと一致するかどうか判定する(S305)。例えば、アドレス制御部110は、S303で読み出したタグラインに含まれるタグと、S301の解析で得た入力アドレスのタグとを比較し、一致するかどうか判定する。
S305において、タグが一致すると判定された場合、データ制御部120は、インデックスに対応するデータラインを読み出す(S306)。例えば、データ制御部120は、アドレス制御部110から入力アドレスのインデックス、オフセット、ウェイの番号をアドレス制御部110から取得し、このウェイのデータテーブル221の中から、このインデックスに対応するデータライン222を読み出す。このとき、データ制御部120は、データライン222の全体、すなわち、全オフセットのデータと活性化ビットとを一度に読み出す。尚、データ制御部120は、入力アドレスのオフセットに対応するデータと活性化ビットのみ読み出してもよい。
次いで、データ制御部120は、データラインのデータが有効かどうか判定する(S307)。データ制御部120は、S306で読み出したデータライン222に含まれる活性化ビットが「1」かどうか判定し、活性化ビットが「1」であればタグは有効、活性化ビットが「0」であればタグは無効とする。
S307において、データが有効であると判定された場合、キャッシュがヒットしたことになり、データ制御部120は、このデータをCPU2へ出力する(S308)。例えば、データ制御部120は、S306で読み出したデータライン222に含まれる、入力アドレスのオフセットに対応するデータをCPU2へ出力する。キャッシュがヒットした場合は、ここで処理が終了し、CPU2からのアクセス待ちとなる。
一方、S304において、タグが有効ではないと判定された場合、もしくは、S305において、タグが一致しないと判定された場合、アドレス制御部110は、全てのテーブル(ウェイ)が選択済みかどうか判定する(S309)。例えば、アドレス制御部110は、複数あるタグテーブル211の全てが選択され、活性化ビットやタグが判定されたかどうか、すなわち、全てのタグテーブル(ウェイ)でミスヒットとなったかどうか判定する。
S309において、まだ全てのテーブルが選択されていないと判定された場合、アドレス制御部110は、S302で他のタグテーブル(ウェイ)を選択し、さらにS302以降の処理を繰り返す。
また、S307において、データが有効ではないと判定された場合や、S309において、すでに全てのテーブルが選択されたと判定された場合、キャッシュがミスヒットしたことになり、ミスヒット処理を行う(S310、S311)。まず、データ制御部120は、メインメモリ3からデータを取得する(S310)。例えば、アドレス制御部110もしくはデータ制御部120は、入力アドレスをメインメモリ3へ転送し、メインメモリ3から入力アドレスのデータを読み出す。
次いで、アドレス制御部110は、タグラインに書き込みを行い、データ制御部120は、データラインに書き込みを行う(S311)。例えば、アドレス制御部110は、タグテーブル(ウェイ)を選択し、入力アドレスのインデックスに対応するタグライン212へ、入力アドレスに含まれるタグを書き込むとともに、活性化ビットに「1」を書き込む。このとき、アドレス制御部110は、タグライン212へ、タグと活性化ビットを一度に書き込む。データ制御部120は、書き込まれたタグテーブルと同じウェイのデータテーブルを選択し、入力のインデックスに対応するデータライン222へ、入力アドレスのオフセットに対応する位置に、S310で読み出したデータを書き込むとともに、活性化ビットに「1」を書き込む。このとき、データ制御部120は、データライン222へデータと活性化ビットを一度に書き込む。
さらに、データ制御部120は、データをCPU2へ出力する(S308)。例えば、データ制御部120は、S310でメインメモリから読み出したデータを、CPU2へ出力する。尚、ミスヒットの場合、S311の書き込みより前や、S311と同時に、CPU2への出力を行ってもよい。CPU2へのデータ出力は、できるだけ早い方が、よりCPU2のメモリアクセス時間を短縮することができる。
ここで、図4及び図5を用いて、本実施形態にかかるキャッシュメモリ装置の動作の具体例について説明する。
図4は、ウェイ1のタグテーブル211aとデータテーブル221aにデータが格納された後、DRAMのリフレッシュ時間経過した場合の例である。図4(a)は、この例で、CPU2からキャッシュメモリ装置1に入力される入力アドレスである。ここでは、インデックス「0002」、タグ「0005」、オフセット「1」である。
図4(b)に示すように、初期状態では、タグテーブル211、データテーブル221の値は、全て「0」にリセットされている。図4(b)の状態で図4(a)の入力アドレスが入力されると、まず、アドレス制御部110は、入力アドレスを解析した後、ウェイ1のタグテーブル211aを選択し、タグテーブル211aからインデックス「0002」のタグラインを読み出す。初期状態では、このタグラインの活性化ビットは「0」(無効)であり、ウェイ2についても同様のため、ミスヒットとなり、データ制御部120によって、メインメモリ3からデータ(例えば「0111」)が読み出される。そして、アドレス制御部110は、タグテーブル211aのインデックス「0002」のタグラインへ、タグ「0005」と活性化ビット「1」を書き込み、データ制御部120は、データテーブル221aのインデックス「0002」のデータラインへ、オフセット1にデータ「0111」と活性化ビット「1」を書き込む。そうすると、図4(c)に示す状態となる。
図4(c)の状態で、DRAMのリフレッシュ時間内に同じ入力アドレスでCPU2からアクセスがあると、アドレス制御部110は、ウェイ1のタグテーブル211aからインデックス「0002」のタグラインを読み出す。このタグライン活性化ビットは「1」(有効)であり、タグラインのタグ「0005」が入力アドレスのタグ「0005」と一致するため、データ制御部120は、ウェイ1のデータテーブル221aからデータラインを読み出す。このデータラインの活性化ビットは「1」(有効)のため、キャッシュヒットとなり、データ制御部120は、データラインのオフセット「1」のデータ「0111」をCPU2へ出力する。
その後、DRAMのリフレッシュ時間経過しても、CPU2からのアクセスがない場合、メモリセルのキャパシタが放電されてしまうため、図4(d)に示すように、タグラインとデータライン、すなわち、タグ、タグの活性化ビット、データ、データの活性化ビットの全てが、自動的に全てクリアされ「0」となる。
図5は、ウェイ1のタグテーブル211a、データテーブル221aとウェイ2のタグテーブル211b、データテーブル221bにデータが格納され、DRAMのリフレッシュ時間経過した場合の例である。図5(a)は、この例で、CPU2からキャッシュメモリ装置1に入力される入力アドレスである。ここでは、インデックス「0002」、タグ「0006」、オフセット「1」である。
例えば、すでに図5(b)に示すように、図4(c)と同様にしてウェイ1のタグテーブル211aとデータテーブル221aが設定されているとする。図5(b)の状態で図5(a)の入力アドレスが入力されると、アドレス制御部110は、ウェイ1のタグテーブル211aを選択し、タグテーブル211aからインデックス「0002」のタグラインを読み出す。このタグライン活性化ビットは「1」(有効)であるが、タグラインのタグ「0005」が入力アドレスのタグ「0006」と一致しないため、アドレス制御部110は、ウェイ2のタグテーブル211bを選択し、タグテーブル211bからインデックス「0002」のタグラインを読み出す。このタグラインの活性化ビットは「0」(無効)であるため、ミスヒットとなり、データ制御部120によって、メインメモリ3からデータ(例えば「0110」)が読み出される。そして、アドレス制御部110は、タグテーブル211bのインデックス「0002」のタグラインへ、タグ「0006」と活性化ビット「1」を書き込み、データ制御部120は、データテーブル221bのインデックス「0002」のデータラインへ、オフセット1にデータ「0110」と活性化ビット「1」を書き込む。そうすると、図5(c)に示す状態となる。
図5(c)の状態で、DRAMのリフレッシュ時間内に同じ入力アドレスでCPU2からアクセスがあると、アドレス制御部110は、ウェイ1のタグテーブル211aからインデックス「0002」のタグラインを読み出し、活性化ビットとタグを判定した後、ウェイ2のタグテーブル211bからインデックス「0002」のタグラインを読み出す。このタグライン活性化ビットは「1」(有効)であり、タグラインのタグ「0006」が入力アドレスのタグ「0006」と一致するため、データ制御部120は、ウェイ2のデータテーブル221bからデータラインを読み出し、活性化ビットは「1」のため、キャッシュヒットとなり、データ制御部120は、データラインのオフセット「1」のデータ「0110」をCPU2へ出力する。すなわち、この場合には、ウェイ1のタグテーブル211aはアクセスされリフレッシュされるが、ウェイ1のデータテーブル221aはアクセスされずリフレッシュされない。
その後、ウェイ1のデータテーブル221aにデータが書き込まれてからDRAMのリフレッシュ時間経過しても、CPUからのアクセスがない場合、図5(c)に示すように、ウェイ1のデータテーブル221aのデータライン、すなわち、データとデータの活性化ビットが自動的にクリアされる。すなわち、この場合に、タグテーブルは有効、データテーブルは無効となり、タグテーブルとデータテーブルとで状態が不一致となる。このとき、例えば、図4(a)のような入力アドレスが入力された場合、ウェイ1のタグテーブル211aで活性化ビットが有効でタグが一致したとしても、データテーブル221aの活性化ビットが「0」のためデータが無効と判断され、メインメモリ3からデータが読み出されることになる。
以上説明したように、本実施形態のキャッシュメモリ装置では、タグとデータを格納するメモリセルアレイを分けることで、CPUからのアクセスの際、最低限必要なタグと活性化ビットを含むタグラインのみにアクセスするようになり、消費電力を低減することができる。例えば、入出力データのサイズを64ビット、オフセットを3ビットの場合、最大512ビット(=64×8)読み出すための電力を低減することができる。ウェイが複数ある場合には、さらにウェイの数だけ、消費電力を低減することができるため、より効果が大きい。
また、タグの有効性を示すフラグに加えて、データの有効性を示すフラグを新たに設けることにより、図5のように、タグテーブルとデータテーブルの状態が不一致となった場合でも、データの有効性を正確に把握でき、データの内容を確実に保障することができる。
その他の発明の実施の形態.
上述の例では、タグテーブルとデータテーブルとでメモリセルアレイを分けたが、これに限らず、同じメモリセルアレイにタグテーブルとデータテーブルを格納し、アクセスの際に、タグとデータを別々にアクセスしてもよい。
また、上述の例では、Nウェイセットアソシアティブマッピング方式のキャッシュメモリとして説明したが、これに限らず、その他のマッピング方式のキャッシュメモリであってもよい。1つのタグに対し複数のタグが対応付けられた方式であれば、上記の例をそのまま適用することができる。その他、ダイレクトマッピング方式のキャッシュメモリに適用してもよい。この場合には、1つのインデックスに対し1つのタグが対応するため、タグテーブルとデータテーブルは一つずつとなる。よって、図5のような状態不一致が発生しないため、ダイレクトマッピング方式の場合は、データテーブルの活性化ビットを設けなくてもよい。
このほか、本発明の要旨を逸脱しない範囲で種々の変形、実施が可能である。
本発明にかかるキャッシュメモリ装置の構成を示すブロック図である。 本発明にかかるキャッシュメモリ装置のメモリセルとデータ構造を示す図である。 本発明にかかるキャッシュメモリ装置の動作を示すフローチャートである。 本発明にかかるキャッシュメモリ装置の動作を説明するための説明図である。 本発明にかかるキャッシュメモリ装置の動作を説明するための説明図である。 従来のキャッシュメモリ装置のメモリセルとデータ構造を示す図である。
符号の説明
1 キャッシュメモリ装置
2 CPU
3 メインメモリ
110 アドレス制御部
120 データ制御部
130 タグ格納部
131 タグ領域
132 フラグ領域
140 データ格納部
141 データ領域
142 フラグ領域
210,220 DRAMメモリセルアレイ
211 タグテーブル
212 タグライン
221 データテーブル
222 データライン

Claims (10)

  1. データ処理ユニットから入力される入力アドレスに基づいて、キャッシュデータもしくは外部メモリの外部データを出力するキャッシュメモリ装置であって、
    前記入力アドレスに含まれるタグと前記タグの有効/無効を示すタグ用フラグとをそれぞれ複数記憶し、DRAMで構成されたタグ記憶部と、
    前記キャッシュデータと前記キャッシュデータの有効/無効を示すキャッシュデータ用フラグとをそれぞれ複数記憶し、DRAMで構成されたキャッシュデータ記憶部と、
    前記入力アドレスに含まれるインデックスに対応した前記タグ及び前記タグ用フラグを前記タグ記憶部から読み出すタグ読み出し部と、
    前記読み出したタグ及びタグ用フラグを判定するタグ判定部と、
    前記タグ判定部の判定に応じて、前記タグに対応する前記キャッシュデータ及び前記キャッシュデータ用フラグを前記キャッシュデータ記憶部から読み出すキャッシュデータ読み出し部と、
    前記読み出したキャッシュデータ用フラグを判定するキャッシュデータ判定部と、
    前記キャッシュデータ判定部の判定に応じて、前記読み出したキャッシュデータもしくは前記外部メモリから取得する外部データを前記データ処理ユニットに出力するキャッシュデータ出力部と、
    を備えるキャッシュメモリ装置。
  2. 前記タグ記憶部と前記キャッシュデータ記憶部とは、それぞれ異なるメモリセルアレイで構成されている、
    請求項1に記載のキャッシュメモリ装置。
  3. 前記タグ読み出し部は、前記タグ記憶部から前記タグ及び前記タグ用フラグを一度に読み出す、
    請求項1又は2に記載のキャッシュメモリ装置。
  4. 前記キャッシュデータ読み出し部は、前記キャッシュデータ記憶部から前記キャッシュデータ及び前記キャッシュデータ用フラグを一度に読み出す、
    請求項1乃至3のいずれか一つに記載のキャッシュメモリ装置。
  5. 前記キャッシュデータ出力部は、前記外部メモリの外部データを出力する場合、前記キャッシュデータ記憶部のキャッシュデータに前記外部データを書き込むとともに、前記キャッシュデータ用フラグを有効に設定する、
    請求項1乃至4のいずれか一つに記載のキャッシュメモリ装置。
  6. 前記タグ判定部が、前記入力アドレスに含まれるインデックスによりアクセスされるいずれかのラインについて、前記タグ記憶部から読み出した前記タグ用フラグを有効と判定し、かつ、前記タグ記憶部から読み出したタグと前記入力アドレスに含まれるタグが一致すると判定した場合、前記キャッシュデータ読み出し部は前記キャッシュデータ記憶部から前記キャッシュデータ及び前記キャッシュデータ用フラグの読み出しを行い、
    前記タグ判定部が、前記入力アドレスに含まれるインデックスによりアクセスされる全てのラインについて、前記タグ記憶部から読み出した前記タグ用フラグを無効と判定するか、または、前記タグ記憶部から読み出したタグと前記入力アドレスに含まれるタグが一致しないと判定した場合、前記キャッシュデータ出力部は前記外部メモリの外部データを出力する、
    請求項1乃至5のいずれか一つに記載のキャッシュメモリ装置。
  7. 前記キャッシュデータ出力部は、前記キャッシュデータ判定部が前記キャッシュデータ用フラグを有効と判定した場合、前記読み出したキャッシュデータを出力し、前記キャッシュデータ判定部が前記キャッシュデータ用フラグを無効と判定した場合、前記外部メモリの外部データを出力する、
    請求項1乃至6のいずれか一つに記載のキャッシュメモリ装置。
  8. 前記タグ記憶部において、前記タグ用フラグを記憶するメモリセルのリフレッシュ時間は、前記タグを記憶するメモリセルのリフレッシュ時間よりも短い、
    請求項1乃至7のいずれか一つに記載のキャッシュメモリ装置。
  9. 前記キャッシュデータ記憶部において、前記キャッシュデータ用フラグを記憶するメモリセルのリフレッシュ時間は、前記キャッシュデータを記憶するメモリセルのリフレッシュ時間よりも短い、
    請求項1乃至8のいずれか一つに記載のキャッシュメモリ装置。
  10. データ処理ユニットから入力される入力アドレスに基づいて、キャッシュデータもしくは外部メモリの外部データを出力するキャッシュメモリ装置の制御方法であって、
    DRAMで構成されたタグ記憶部に、前記入力アドレスに含まれるタグと前記タグの有効/無効を示すタグ用フラグとをそれぞれ複数記憶し、
    DRAMで構成されたキャッシュデータ記憶部に、前記キャッシュデータと前記キャッシュデータの有効/無効を示すキャッシュデータ用フラグとをそれぞれ複数記憶し、
    前記入力アドレスに含まれるインデックスに対応した前記タグ及び前記タグ用フラグを前記タグ記憶部から読み出し、
    前記読み出したタグ及びタグ用フラグを判定し、
    前記タグ及びタグ用フラグの判定に応じて、前記タグに対応する前記キャッシュデータ及び前記キャッシュデータ用フラグを前記キャッシュデータ記憶部から読み出し、
    前記読み出したキャッシュデータ用フラグを判定し、
    前記キャッシュデータ用フラグの判定に応じて、前記読み出したキャッシュデータもしくは前記外部メモリから取得する外部データを前記データ処理ユニットに出力する、
    キャッシュメモリ装置の制御方法。
JP2005138184A 2005-05-11 2005-05-11 キャッシュメモリ装置及びその制御方法 Expired - Fee Related JP4241665B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005138184A JP4241665B2 (ja) 2005-05-11 2005-05-11 キャッシュメモリ装置及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005138184A JP4241665B2 (ja) 2005-05-11 2005-05-11 キャッシュメモリ装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2006318080A JP2006318080A (ja) 2006-11-24
JP4241665B2 true JP4241665B2 (ja) 2009-03-18

Family

ID=37538732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005138184A Expired - Fee Related JP4241665B2 (ja) 2005-05-11 2005-05-11 キャッシュメモリ装置及びその制御方法

Country Status (1)

Country Link
JP (1) JP4241665B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753858B2 (en) * 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows

Also Published As

Publication number Publication date
JP2006318080A (ja) 2006-11-24

Similar Documents

Publication Publication Date Title
JP4989872B2 (ja) 半導体記憶装置および演算処理装置
US7590021B2 (en) System and method to reduce dynamic RAM power consumption via the use of valid data indicators
KR100816053B1 (ko) 셀프 카피 기능을 가지는 메모리 장치, 메모리 시스템 및듀얼 포트 메모리 장치
US7617355B2 (en) Parity-scanning and refresh in dynamic memory devices
US8369168B2 (en) Devices and system providing reduced quantity of interconnections
US7917692B2 (en) Method and system for using dynamic random access memory as cache memory
KR20230069234A (ko) Dram을 위한 리프레시 관리 목록
JP2006236550A (ja) 集積回路装置
US5802586A (en) Cache memory having a read-modify-write operation and simultaneous burst read and write operations and a method therefor
US11288188B1 (en) Dynamic metadata relocation in memory
US7146454B1 (en) Hiding refresh in 1T-SRAM architecture
US6829195B2 (en) Semiconductor memory device and information processing system
JP4241665B2 (ja) キャッシュメモリ装置及びその制御方法
US7333388B2 (en) Multi-port memory cells
US20010034808A1 (en) Cache memory device and information processing system
US20090144507A1 (en) APPARATUS AND METHOD FOR IMPLEMENTING REFRESHLESS SINGLE TRANSISTOR CELL eDRAM FOR HIGH PERFORMANCE MEMORY APPLICATIONS
EP4379721A1 (en) Address decoding method, and memory controller and semiconductor memory system using the same
US20230420027A1 (en) Memory device and refresh method thereof
JPH06314240A (ja) キャッシュメモリ
US9773533B2 (en) Memory with low current consumption and method for reducing current consumption of a memory
TWI409816B (zh) 解決單埠靜態隨機存取記憶體之請求衝突的系統及方法
JP2004046481A (ja) 半導体集積回路装置
JP2006351140A (ja) 半導体メモリ装置および電子機器
JP2004296088A (ja) 半導体メモリ
JPH03205680A (ja) 行列配置の複数の記憶セルを有する記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080812

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081114

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: 20081202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081222

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

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

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: 20120109

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140109

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees