JP6027567B2 - キャッシュメモリおよびプロセッサシステム - Google Patents

キャッシュメモリおよびプロセッサシステム Download PDF

Info

Publication number
JP6027567B2
JP6027567B2 JP2014045438A JP2014045438A JP6027567B2 JP 6027567 B2 JP6027567 B2 JP 6027567B2 JP 2014045438 A JP2014045438 A JP 2014045438A JP 2014045438 A JP2014045438 A JP 2014045438A JP 6027567 B2 JP6027567 B2 JP 6027567B2
Authority
JP
Japan
Prior art keywords
cache
data
unit
write
frequency
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.)
Active
Application number
JP2014045438A
Other languages
English (en)
Other versions
JP2015170202A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2014045438A priority Critical patent/JP6027567B2/ja
Priority to PCT/JP2015/056824 priority patent/WO2015133643A1/ja
Publication of JP2015170202A publication Critical patent/JP2015170202A/ja
Priority to US15/257,163 priority patent/US10496546B2/en
Application granted granted Critical
Publication of JP6027567B2 publication Critical patent/JP6027567B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1659Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明の実施形態は、キャッシュメモリに関する。
キャッシュメモリは大容量化する傾向にあり、それに伴ってキャッシュメモリのリーク電流の増加が問題となっている。大容量キャッシュメモリの候補として注目されているMRAM(Magnetoresistive RAM)は不揮発性であり、現状のキャッシュメモリで用いられているSRAMよりリーク電流が圧倒的に小さいという特徴がある。
MRAMのデータ書き込み方式の一つとして、スピン注入磁化反転方式がある。スピン注入磁化反転方式は、MRAMを構成する磁気トンネル接合素子(MTJ素子)に所定の電流値以上の書込み電流を流し、データの読出しにおいても、所定の読出し電流をMTJ素子に流す。
スピン注入型MRAMにおける書込み電流の電流値は、スピン注入によって磁化反転が生じる反転閾値よりも大きい電流値に設定され、読出し電流の電流値は、その反転閾値よりも小さな電流値に設定される。
しかしながら、MRAMを構成する複数のMTJ素子の特性ばらつきに起因して、反転閾値がMTJ素子ごとに変動してしまう。また、同じMTJ素子に対してデータを繰り返し書き込むと、その素子に対する反転閾値が揺らいでしまう。
このため、データの書込み時における書込み不良、データの読出し時における読出し電流に起因する読出しディスターブ、データの保持時における熱擾乱によって磁化が反転する不良、およびリテンション不良などが発生する。
これらの不良に対処するために、ECC(Error Correction and Coding)回路を設けてデータの読み出し時に誤り訂正を行うMRAMが提案されている。また、誤り検出時に書込みパルス幅を長くして再度データの書込みを行う技術も提案されているが、誤りが検出されてから書込みパルスを長くして再書き込みを行うことから、MRAMへのアクセス時の平均レイテンシが長くなってしまう。
特開2012−22726号公報
本発明が解決しようとする課題は、アクセス時の平均レイテンシを削減でき、かつ低消費電力化も可能なキャッシュメモリおよびプロセッサシステムを提供することにある。
本実施形態によれば、キャッシュライン単位でデータを格納するデータキャッシュ部と、
前記データキャッシュ部に格納されるデータのアドレス情報を格納するタグ部と、
プロセッサからアクセス要求のあったアドレスが前記タグ部に格納されたアドレス情報に一致するか否かの判定を行い、その判定結果に基づいて前記データキャッシュ部および前記タグ部に対するアクセスを制御するキャッシュコントローラと、
前記データキャッシュ部に格納したデータの読出しエラーの発生頻度と、前記データキャッシュ部に格納したデータの読み出し遅延によるプロセッサの処理能力低下の度合いと、の少なくとも一方に基づいて、前記データキャッシュ部に一つのデータを書き込むのに要する期間を制御する書込み期間制御部と、を備えるキャッシュメモリが提供される。
一実施形態によるキャッシュメモリ1を内蔵したプロセッサシステム2の概略構成を示すブロック図。 本実施形態によるメモリの階層構造を示す図。 図1のキャッシュメモリ1の内部をより具体化したブロック図。 データキャッシュ部12およびキャッシュコントローラ15の周辺の詳細構成を示すブロック図。 図4のタイミング生成器22の内部構成の一例を示す回路図、図6はタイミング生成器22のタイミング図。 タイミング生成器22のタイミング図。 データキャッシュ部12とタグ部13の内部構成の一例を示すブロック図。 ライトパルス信号のパルス幅を制御する場合と制御しない場合の消費電力を比較した図。
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、キャッシュメモリおよびプロセッサシステムの特徴的な構成および動作を中心に説明するが、キャッシュメモリおよびプロセッサシステムには以下の説明で記述しない構成および動作が存在しうる。ただし、これらの省略した構成および動作も本実施形態の範囲に含まれうるものである。
図1は一実施形態によるキャッシュメモリ1を内蔵したプロセッサシステム2の概略構成を示すブロック図である。図1のプロセッサシステム2は、キャッシュメモリ1と、プロセッサコア3と、MMU4と、電源監視回路17とを備えている。キャッシュメモリ1は、階層構造になっており、例えばL1キャッシュ(L1 Cache)6とL2キャッシュ(L2 Cache)7を有する。
MMU4は、プロセッサコア3が発行した仮想アドレスを物理アドレスに変換して、メインメモリ8およびキャッシュメモリ1にアクセスする。MMU4は、プロセッサコア3がアクセスしたメモリアドレスの履歴を元に、メインメモリ8内に格納されているページテーブル(PT)9を参照し、アクセスされているアドレスに該当するページテーブルエントリーを取得して、仮想アドレスと物理アドレスとの変換テーブルを更新する。このページテーブル9は一般にはOSが管理するが、キャッシュメモリ1内にページテーブルを管理する機構を実装してもよい。
電源監視回路17は、プロセッサコア3の処理が一定時間停止していて、かつ外部からの処理要求もない場合に、プロセッサシステム2内の少なくとも一部の回路ブロックの電源電圧を下げたり、電源電圧の供給を停止する電源制御信号をプロセッサシステム2内の各部に供給する。
図1のキャッシュメモリ1は、メインメモリ8に記憶されたデータまたは記憶されるべきデータの少なくとも一部を記憶するものであり、L2以降の高次のキャッシュメモリを含んでいる。
図2は本実施形態によるメモリの階層構造を示す図である。図示のように、最上位の階層にはL1キャッシュ6が位置し、次の階層にはL2キャッシュ7が位置し、最下位の階層にはメインメモリ8が位置する。プロセッサコア(CPU)3が任意のアドレスを発行すると、まずL1キャッシュ6へのアクセスが行われ、L1キャッシュ6にヒットしない場合は、次にL2キャッシュ7へのアクセスが行われ、L2キャッシュ7にヒットしない場合は、メインメモリ8へのアクセスが行われる。上述したように、L3キャッシュ以降の高次のキャッシュメモリ1を設けてもよいが、本実施形態では、キャッシュメモリ1がL1キャッシュ6とL2キャッシュ7の2階層である例を説明する。
L1キャッシュ6は例えば数10kバイトのメモリ容量を持ち、L2キャッシュ7は例えば数100kバイト〜数Mバイトのメモリ容量を持ち、メインメモリ8は例えば数Gバイトのメモリ容量を持っている。プロセッサコア3は、L1キャッシュ6とL2キャッシュ7に対しては通常はキャッシュライン単位でアクセスし、メインメモリ8に対してはページ単位でアクセスする。キャッシュラインは例えば512バイトであり、1ページは例えば4kバイトである。なお、キャッシュラインやページのバイト数は任意である。
L1キャッシュ6に格納されるデータは通常L2キャッシュ7にも格納され、L2キャッシュ7に格納されるデータは通常メインメモリ8にも格納される。
図3は図1のキャッシュメモリ1の内部をより具体化したブロック図である。プロセッサコア3は、例えばマルチコア構成になっており、複数の演算器11を有する。各演算器11にはL1キャッシュ6が接続されている。L1キャッシュ6は、高速性が要求されるため、例えばSRAM(Static Random Access Memory)で構成されている。なお、プロセッサコア3は、シングルコア構成であってもよい。この場合、L1キャッシュ6は一つだけ設けられる。
図3のL2キャッシュ7は、データキャッシュ部12と、タグ部13と、冗長符号記憶部14と、キャッシュコントローラ15と、誤り訂正コントローラ16とを有する。
データキャッシュ部12は、キャッシュライン単位でアクセス可能なキャッシュラインデータを格納する。タグ部13は、各キャッシュラインデータのアドレス情報を格納する。
冗長符号記憶部14は、データキャッシュ部12に格納された各キャッシュラインデータを誤り訂正するための冗長符号を格納している。タグ部13に格納されたアドレス情報に対しても冗長符号を設けて、冗長符号記憶部14に格納してもよい。
データキャッシュ部12は、例えば不揮発性メモリを用いて構成される。データキャッシュ部12として使用可能な不揮発性メモリは、例えば大容量化が容易なMRAM(Magnetoresistive RAM)である。
タグ部13は、例えば揮発性メモリを用いて構成される。タグ部13として使用可能な揮発性メモリは、例えばMRAMよりも高速のSRAM(Static RAM)である。
キャッシュコントローラ15は、プロセッサコア3が発行したアドレスに対応するデータがデータキャッシュ部12に格納されているか否かを判定する。すなわち、キャッシュコントローラ15は、プロセッサコア3が発行したアドレスがタグ部13に格納されているアドレス情報に一致するか否かのヒット/ミス判定を行って、L2キャッシュ7のデータ書き込みおよび読み出しと、メインメモリ8への書き戻しを制御する。
誤り訂正コントローラ16は、L2キャッシュ7に新たなキャッシュラインデータを格納する場合は、このキャッシュラインデータを誤り訂正するための冗長符号を生成して、冗長符号記憶部14に格納する。また、誤り訂正コントローラ16は、プロセッサコア3から読み出し要求のあったキャッシュラインデータをデータキャッシュ部12から読み出した場合は、このデータに対応する冗長符号を冗長符号記憶部から読み出して誤り訂正処理を行い、誤り訂正処理後のキャッシュラインデータをプロセッサコア3に伝送する。
図4はデータキャッシュ部12およびキャッシュコントローラ15の周辺の詳細構成を示すブロック図である。図4に示すように、データキャッシュ部12は、メモリアレイ部20と、デコーダ21と、タイミング生成器(TG:Timing Generator)22と、書込み回路23と、読出し回路24とを有する。この他、データキャッシュ部12とキャッシュコントローラ15の間には、パルスコントローラ(書込み期間制御部)25が設けられている。
メモリアレイ部20は、縦横に配置された複数のMRAMセルを有し、行方向に並ぶMRAMセルのゲートには対応する不図示のワード線が接続され、列方向に並ぶMRAMセルのドレイン/ソースには対応する不図示のビット線とソース線が接続されている。
タイミング生成器22は、データキャッシュ部12内の各部のタイミングを制御する。デコーダ21は、プロセッサコア3からアクセス要求のあったアドレスをデコードした結果に基づいて、タイミング生成器22からの信号に同期して、ワード線を駆動する。
書込み回路23は、タイミング生成器22からのライトパルス信号に同期して、メモリアレイ部20にデータを書き込む。読出し回路24は、タイミング生成器22からのリードパルス信号に同期して、メモリアレイ部20からデータを読み出す。
キャッシュコントローラ15は、タグ部13およびデータキャッシュ部12へのアクセスを制御する。パルスコントローラ25は、データキャッシュ部12に格納したデータの読出しエラーの発生頻度と、データキャッシュ部12に格納したデータの読出し遅延によるプロセッサコア3の処理能力低下の度合いと、の少なくとも一方に応じて変化する周期を持つクロック信号CLKと、このクロック信号CLKの1周期分のパルス幅を持つライトイネーブル信号WEを生成する。タイミング生成器22は、このライトイネーブル信号WEに同期して、ライトパルス信号Wを生成する。ライトイネーブル信号WEのパルス幅に応じて、ライトパルス信号Wのパルス幅(すなわち、書込み有効期間)が変化する。
したがって、ライトイネーブル信号WEのパルス幅は、データキャッシュ部12に格納したデータの読出しエラーの発生頻度と、データキャッシュ部12に格納したデータの読出し遅延によるプロセッサコア3の処理能力低下の度合いと、の少なくとも一方に応じて変化する。データの読出しエラーの発生頻度とは、データ読み出し時に誤り訂正コントローラ16にてエラー検出される頻度を表す。データの読出し遅延によるプロセッサコア3の処理能力低下の度合いとは、より具体的には、データの読出し遅延により、プロセッサコア3の処理に影響を与える度合いを意味する。一例としては、アクセス頻度の高いデータほど、プロセッサコア3の処理能力低下の度合いが高いと判断される。また、アクセス頻度は低くても、読み出したデータがないとプロセッサコア3が後続の処理を実行できないデータ、すなわちクリティカルデータの読出しアクセスも、プロセッサコア3の処理能力低下の度合いが高いと判断される。
タイミング生成器22は、ライトイネーブル信号WEのパルス幅に応じたパルス幅を持つライトパルス信号Wを生成する。より詳細には、ライトパルス信号Wは、ライトイネーブル信号WEと後述する信号CSLEがともにハイレベルの期間のパルス幅を持つ信号である。よって、ライトパルス信号Wのパルス幅が広いほど、データキャッシュ部12には時間をかけてデータ書き込みが行われる。これはすなわち、ライトパルス信号Wのパルス幅が広いほど、信頼性よくデータキャッシュ部12にデータを書き込めることを意味し、エラーの発生頻度を減らすことができる。また、タイミング生成器22は、読出し回路24が読出し動作を行う期間を示すリードパルス信号Rや、その他の制御信号も生成する。
後述するように、タグ部13には、データの読出しエラーの発生頻度を示す情報と、アクセス頻度を示す情報とを格納することができる。よって、パルスコントローラ25は、タグ部13に格納されたこれらの情報に基づいて、クロック信号CLKとライトイネーブル信号WEを生成することができる。
パルスコントローラ25は、例えばその内部に、分周比を2通り以上に切替可能な分周回路を有する。この分周回路は、タグ部13に格納された上述した情報に基づいて、分周比が切り替えられる。これにより、周期が可変のクロック信号CLKと、クロック信号CLKの1周期分のるパルス幅を持つライトイネーブル信号WEを生成することができる。
図5は図4のタイミング生成器22の内部構成の一例を示す回路図、図6はタイミング生成器22のタイミング図である。図5のタイミング生成器22には、パルスコントローラ25から出力されたクロック信号CLKとライトイネーブル信号WEとが入力される。
図5のタイミング生成器22は、遅延回路31と、ORゲートG1と、2つのANDゲートG2,G3と、1つのインバータ32とを有する。遅延回路31は、クロック信号CLKを所定時間遅延させた遅延クロック信号CLK2を生成する。ORゲートG1は、クロック信号CLKと遅延クロック信号CLK2との論理和信号CSLEを生成する。AND回路G2は、信号CSLEとライトイネーブル信号WEの反転信号との論理積であるリードパルス信号Rを生成する。AND回路G3は、信号CSLEとライトイネーブル信号WEとの論理積であるライトパルス信号Wを生成する。なお、ライトパルス信号Wを生成する際に、クロック信号CLKを用いずに信号CSLEを用いているのは、クロック信号CLKは種々の回路で利用されるためであり、クロック信号CLKを遅延させてパルス幅を広げた信号CSLEを用いている。
読出し回路24は、リードパルス信号Rがハイの期間にデータキャッシュ部12からのデータ読出しを行う。書込み回路23は、ライトパルス信号Wがハイの期間にデータキャッシュ部12へのデータ書き込みを行う。ライトパルス信号Wのパルス幅は、図6に示すように、ORゲートG1でで生成される信号CSLEのパルス幅に応じて変化する。信号CSLEのパルス幅が広いほど、ライトパルス信号Wのパルス幅が広くなる。そして、ライトパルス信号Wのパルス幅が大きいほど、データ書き込みに時間がかかるが、信頼性の高い書込みを行うことができる。逆に、ライトパルス信号Wのパルス幅が小さいほど、データ書き込みを高速化できるが、データ書込みの信頼性が低下し、ベリファイ時に再書き込みを行う可能性が高くなる。
なお、タイミング生成器22の内部構成は、図5に示したものに限定されない。また、クロック信号CLK、ライトイネーブル信号WE、リードパルス信号Rおよびライトパルス信号Wの各信号波形も、図6に示したものに限定されない。
図7はデータキャッシュ部12とタグ部13の内部構成の一例を示すブロック図である。図7に示すように、データキャッシュ部12とタグ部13はいずれも、キャッシュライン単位でデータとアドレス情報を格納する。タグ部13には、キャッシュライン単位で、アドレス情報の他に、付加情報を格納する付加情報格納部18が設けられている。付加情報は、有効フラグ情報と、ダーティフラグ情報と、LRU(Least Recently Used)ポジション情報と、セキュリティ情報と、追加フラグ情報とを含んでいる。有効フラグ情報は、対応するキャッシュラインが有効か無効かを示す情報を格納する。ダーティフラグ情報は、下位階層のキャッシュメモリやメインメモリへの書き戻しを行う必要があるか否かを示す情報を格納する。LRUポジション情報は、アクセス頻度が低いデータか否かを示す情報を格納する。セキュリティ情報は、読出し専用、読み書き可能、書込み専用などのデータキャッシュ部12の特性に関する情報を格納する。追加フラグ情報は、本実施形態で新たに追加されたフラグ情報であり、データの読出し遅延によるプロセッサコア3の処理能力の低下が起きるか否かを示す情報を格納する。
図7のデータキャッシュ部12とタグ部13は、それぞれ複数のウェイに分かれており、いずれのウェイも、複数のキャッシュラインを有する。タグ部13における各ウェイは、アドレス情報と上述した付加情報とを有する。同様に、書込み回路23と読出し回路24も複数のウェイに分かれている。図7では、4つのウェイを設ける例を示しているが、ウェイの数については特に制限はない。また、データキャッシュ部12とタグ部13をそれぞれ複数のウェイに分けるか否かは任意である。
図7に示すように、キャッシュコントローラ15の内部には、ヒット/ミス判定部26と、ウェイ制御部27と、タグ書込み制御部28とが設けられている。ヒット/ミス判定部26は、プロセッサコア3からアクセス要求のあったアドレスがタグ部13に格納されたアドレス情報と一致するか否かを判定する。ウェイ制御部27は、ヒット/ミス判定部26による判定信号に基づいて、どのウェイにアクセスするかを示すウェイ選択信号を生成する。また、ウェイ制御部27は、ミスした場合には、LRUポジション情報に基づいて、アクセス頻度の低いキャッシュラインのデータを入れ替える制御を行う。書込み制御部28は、ウェイ制御部27から特定のウェイのキャッシュラインを書換指示があると、そのキャッシュラインのデータ書込みを制御する。
プロセッサコア3が発行する仮想アドレスは、MMUにて、物理アドレスに変換される。物理アドレスは、図7に示すように、上位ビット側から下位ビット側にかけて、タグアドレス、インデックスアドレス、ワードアドレス、バイトアドレスの順に並んでいる。インデックスアドレスにて、タグ部13の特定のキャッシュラインが選択される。この特定のキャッシュラインに格納されているアドレス情報と、プロセッサコア3がアクセス要求したタグアドレスとは、ヒット/ミス判定部26に送られて、ヒット/ミス判定が行われる。ヒットしたと判定されると、この特定のキャッシュラインに対応するデータキャッシュ部12のデータが読み出されて、プロセッサコア3に送られる。ミスしたと判定されると、下位階層のキャッシュメモリまたはメインメモリへのアクセスが行われたり、LRUポジションに対応するキャッシュラインのデータが入れ替えられたりする。
図8はライトパルス信号Wのパルス幅を制御する場合と制御しない場合の消費電力を比較した図である。図8は、65nmプロセスでMRAMを構成し、キャッシュラインを512ビットとし、誤り訂正コントローラが1ビットの誤り訂正と2ビットの誤り検出を行う場合のシミュレーション結果を示している。
図8(a)はデータ書き込み時にベリファイを行う例を示し、図8(b)はデータ読み出し時にベリファイを行う例を示している。図8(a)と図8(b)はライトパルス幅を固定にしている。すなわち、図8(a)と図8(b)は短いパルス幅のライトパルス信号Wで書込みを行う比較例を示している。一方、図8(c)は本実施形態に対応するものであり、長いパルス幅のライトパルス信号Wで書込みを行う場合にはベリファイを省略する例を示している。
図8(a)の場合、書込み動作に4nSかかり、0.372nJの電力を消費する。また、ベリファイ処理時に、読出し動作に4nSかかり、0.142nJの電力を消費し、誤りがあるか否かの判定処理に1nSかかり、0.002nJの電力を消費する。また、誤りがある場合の再書込み動作に4nSかかり、0.372nJの電力を消費する。この結果、誤りがなかった場合の総処理時間は9nS、消費電力は0.516nJとなる。また、誤りがあった場合の総処理時間は13nS、消費電力は0.888nJとなる。
図8(b)の場合、読出し動作に4nSかかり、0.142nJの電力を消費する。また、ベリファイ処理時に、誤りがあるか否かの判定処理に1nSかかり、0.002nJの電力を消費する。誤りがある場合の消去処理に4nSかかり、0.07nJの電力を消費する。続いて行われる再書き込み処理に4nSかかり、0.372nJの電力を消費する。この結果、誤りがなかった場合の総処理時間は5nS、消費電力は0.144nJとなる。また、誤りがあった場合の総処理時間は9nS、消費電力は0.586nJとなる。
図8(c)の場合、短いパルス幅のライトパルス信号Wで書込みを行った場合は4nSかかり、0.372nSの電力を消費する。一方、長いパルス幅のライトパルス信号Wで書込みを行った場合は7nSかかり、0.744nSの電力を消費する。
図8の結果からわかるように、ライトパルス信号Wのパルス幅が長くなると、書込み処理に時間がかかり、かつ消費電力も増大するが、書込みの信頼性はより向上し、再書き込みを行う頻度を削減できる。短いパルス幅のライトパルス信号Wでデータ書き込みを行った結果、再書き込みを行うことになった場合の消費電力は、最初から長いパルス幅のライトパルス信号Wでデータ書き込みを行った場合の消費電力よりも大きくなり、かつ書込みに要する時間も長くなる。よって、読出しエラーの発生頻度や読出し遅延による影響が大きい場合には、予めライトパルス信号Wのパルス幅を長くすることで、消費電力の削減と、迅速なデータ書き込みとが可能となる。
また、本シミュレーションにより、ライトパルス信号Wのパルス幅を2倍にすることで、書込みエラーが生じる確率を約100分の1に低減できることもわかった。
このように、本実施形態では、データキャッシュ部12に格納したデータの読出しエラーの発生頻度と、データキャッシュ部12に格納したデータの読出し遅延によるプロセッサコア3の処理能力低下の度合いとの少なくとも一方に基づいて、ライトパルス信号Wのパルス幅を制御する。これにより、誤り訂正コントローラ16で誤り検出および誤り訂正を行う頻度を低減でき、プロセッサコア3の平均レイテンシを向上できるとともに、消費電力も抑制できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 キャッシュメモリ、2 プロセッサシステム、3 プロセッサコア、4 MMU、6 L1キャッシュ、7 L2キャッシュ、8 メインメモリ、11 演算器、12 データキャッシュ部、13 タグ部、15 キャッシュコントローラ、16 誤り訂正コントローラ、17 電源監視回路、18 付加情報格納部、20 メモリアレイ部、21 デコーダ、22 タイミング生成器、23 書込み回路、24 読出し回路、25 パルスコントローラ

Claims (14)

  1. キャッシュライン単位でデータを格納するデータキャッシュ部と、
    前記データキャッシュ部に格納されるデータのアドレス情報を格納するタグ部と、
    プロセッサからアクセス要求のあったアドレスが前記タグ部に格納されたアドレス情報に一致するか否かの判定を行い、その判定結果に基づいて前記データキャッシュ部および前記タグ部に対するアクセスを制御するキャッシュコントローラと、
    前記データキャッシュ部に格納したデータの読出しエラーの発生頻度と、前記データキャッシュ部に格納したデータの読み出し遅延によるプロセッサの処理能力低下の度合いと、の少なくとも一方に基づいて、前記データキャッシュ部に一つのデータを書き込むのに要する期間を制御する書込み期間制御部と、を備えるキャッシュメモリ。
  2. 前記データキャッシュ部に格納したデータの読出し遅延によるプロセッサの処理能力低下の度合いは、前記データキャッシュ部のキャッシュライン単位でのアクセス頻度に基づいて判断される請求項1に記載のキャッシュメモリ。
  3. 前記データキャッシュ部に格納したデータの読出し遅延によるプロセッサの処理能力低下の度合いは、前記データキャッシュ部にキャッシュライン単位で格納されるデータがクリティカルデータか否かにより判断される請求項1に記載のキャッシュメモリ。
  4. 前記書込み期間制御部は、前記データキャッシュ部に格納したデータの読出しエラーの発生頻度と、前記データキャッシュ部に格納したデータの読み出し遅延によるプロセッサの処理能力低下の度合いと、の少なくとも一方に基づいて、前記データキャッシュ部に一つのデータを書き込むのに要する期間に対応したパルス幅を持つライトパルス信号を生成する請求項1乃至3のいずれかに記載のキャッシュメモリ。
  5. 前記書込み期間制御部は、前記データキャッシュ部に対する各キャッシュライン単位でのアクセス頻度に基づいて、各キャッシュラインごとに、前記ライトパルス信号のパルス幅を制御する請求項4に記載のキャッシュメモリ。
  6. 前記書込み期間制御部は、アクセス頻度が高いキャッシュラインについては、アクセス頻度が低いキャッシュラインよりも、前記ライトパルス信号のパルス幅を長くする請求項5に記載のキャッシュメモリ。
  7. 前記書込み期間制御部は、前記データキャッシュ部に対する各キャッシュライン単位での読出しエラーの発生頻度に基づいて、各キャッシュラインごとに、前記ライトパルス信号のパルス幅を制御する請求項4に記載のキャッシュメモリ。
  8. 前記書込み期間制御部は、読出しエラーの発生頻度の高いキャッシュラインについては、読出しエラーの発生頻度の低いキャッシュラインよりも、前記ライトパルス信号のパルス幅を長くする請求項7に記載のキャッシュメモリ。
  9. 前記データキャッシュ部に格納したデータの読み出し時に、当該データに対応する冗長ビットを用いて当該データの誤り検出および誤り訂正を行う誤り訂正コントローラを備え、
    前記書込み期間制御部は、前記誤り訂正コントローラによる誤り検出結果に基づいて、キャッシュライン単位で、当該データの読出しエラーの発生頻度を検出する請求項1乃至8のいずれかに記載のキャッシュメモリ。
  10. 前記タグ部は、各キャッシュラインごとに、前記データキャッシュ部の対応するキャッシュラインのアクセス頻度を示す情報と読出しエラーの発生頻度を示す情報とを格納する付加情報格納部を有する請求項1乃至9のいずれかに記載のキャッシュメモリ。
  11. 前記書込み期間制御部は、前記付加情報格納部に格納されたアクセス頻度を示す情報と読出しエラーの発生頻度を示す情報とに基づいて、前記ライトパルス信号のパルス幅を制御する請求項10に記載のキャッシュメモリ。
  12. 前記データキャッシュ部および前記タグ部は、それぞれがキャッシュライン単位でアクセス可能な複数のウェイに分かれており、
    前記タグ部は、各ウェイの各キャッシュラインごとに、前記付加情報格納部を有する請求項10または11に記載のキャッシュメモリ。
  13. 前記データキャッシュ部は、MRAM(Magnetoresistive RAM)である請求項1乃至12のいずれかに記載のキャッシュメモリ。
  14. プロセッサと、
    階層化されたk次(k=1からnまでのすべての整数、nは1以上の整数)のキャッシュメモリと、を備え、
    前記k次のキャッシュメモリのうち少なくとも1階層のキャッシュメモリは、
    キャッシュライン単位でデータを格納するデータキャッシュ部と、
    前記データキャッシュ部に格納されるデータのアドレス情報を格納するタグ部と、
    プロセッサからアクセス要求のあったアドレスが前記タグ部に格納されたアドレス情報に一致するか否かの判定を行い、その判定結果に基づいて前記データキャッシュ部および前記タグ部に対するアクセスを制御するキャッシュコントローラと、
    前記データキャッシュ部に格納したデータの読出しエラーの発生頻度と、前記データキャッシュ部に格納したデータの読み出し遅延によるプロセッサの処理能力低下の度合いと、の少なくとも一方に基づいて、前記データキャッシュ部に一つのデータを書き込むのに要する期間を制御する書込み期間制御部と、を備えるプロセッサシステム。
JP2014045438A 2014-03-07 2014-03-07 キャッシュメモリおよびプロセッサシステム Active JP6027567B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014045438A JP6027567B2 (ja) 2014-03-07 2014-03-07 キャッシュメモリおよびプロセッサシステム
PCT/JP2015/056824 WO2015133643A1 (ja) 2014-03-07 2015-03-09 書き込みパルス幅可変のキャッシュメモリ
US15/257,163 US10496546B2 (en) 2014-03-07 2016-09-06 Cache memory and processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014045438A JP6027567B2 (ja) 2014-03-07 2014-03-07 キャッシュメモリおよびプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2015170202A JP2015170202A (ja) 2015-09-28
JP6027567B2 true JP6027567B2 (ja) 2016-11-16

Family

ID=54055437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014045438A Active JP6027567B2 (ja) 2014-03-07 2014-03-07 キャッシュメモリおよびプロセッサシステム

Country Status (3)

Country Link
US (1) US10496546B2 (ja)
JP (1) JP6027567B2 (ja)
WO (1) WO2015133643A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6364365B2 (ja) 2015-02-25 2018-07-25 株式会社東芝 半導体記憶装置
GB2560336B (en) 2017-03-07 2020-05-06 Imagination Tech Ltd Address generators for verifying integrated circuit hardware designs for cache memory
JP2018156463A (ja) 2017-03-17 2018-10-04 東芝メモリ株式会社 メモリシステム
CN111727477A (zh) * 2020-05-06 2020-09-29 长江存储科技有限责任公司 3d nand闪存的控制方法和控制器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525800A (en) * 1981-06-01 1985-06-25 General Electric Co. Enhanced reliability data storage system with second memory for preserving time-dependent progressively updated data from destructive transient conditions
JP2004069961A (ja) * 2002-08-06 2004-03-04 Seiko Epson Corp 半導体集積回路
JP4093853B2 (ja) * 2002-12-12 2008-06-04 三洋電機株式会社 光ディスク装置、光ディスク装置のセキュリティ管理方法及び光ディスク装置のセキュリティ管理プログラム
KR100525107B1 (ko) * 2004-02-06 2005-11-01 주식회사 하이닉스반도체 메모리 장치의 동작 주파수 변동에 따라 비트라인 감지증폭기와 데이타 감지 증폭기를 연결하는 데이타 버스의동작을 제어하는 신호의 인에이블 구간을 제어하는 방법과그 장치
EP1717708B1 (en) * 2005-04-29 2010-09-01 STMicroelectronics Srl An improved cache memory system
JP4435207B2 (ja) 2007-06-13 2010-03-17 株式会社東芝 磁気ランダムアクセスメモリ
US8347175B2 (en) 2009-09-28 2013-01-01 Kabushiki Kaisha Toshiba Magnetic memory
JP4956640B2 (ja) * 2009-09-28 2012-06-20 株式会社東芝 磁気メモリ
US8488363B2 (en) 2010-05-11 2013-07-16 Qualcomm Incorporated Write energy conservation in memory
US20130080687A1 (en) * 2011-09-23 2013-03-28 Avalanche Technology, Inc. Solid state disk employing flash and magnetic random access memory (mram)
CN102591799B (zh) * 2011-12-30 2015-04-15 华为技术有限公司 一种存放数据的方法和装置
US9679664B2 (en) * 2012-02-11 2017-06-13 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
US9317448B2 (en) * 2013-07-30 2016-04-19 Advanced Micro Devices, Inc. Methods and apparatus related to data processors and caches incorporated in data processors
JP2015049918A (ja) 2013-09-03 2015-03-16 マイクロン テクノロジー, インク. 書き込みパルス幅設定方法、データ書き込み方法及び半導体装置

Also Published As

Publication number Publication date
WO2015133643A1 (ja) 2015-09-11
US10496546B2 (en) 2019-12-03
US20160371189A1 (en) 2016-12-22
JP2015170202A (ja) 2015-09-28

Similar Documents

Publication Publication Date Title
US11769557B2 (en) Techniques for preventing read disturb in NAND memory
CN109416666B (zh) 用于存储和读取多个缓存行的装置和方法
US7941692B2 (en) NAND power fail recovery
JP5479479B2 (ja) 超低電圧動作時にキャッシュラインが動作可能かを判断する装置、方法、及びコンピューティングシステム
TWI457756B (zh) 記憶體系統及其操作方法
JP5202130B2 (ja) キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
KR20140067819A (ko) 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템
JP6497393B2 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
US10496546B2 (en) Cache memory and processor system
US11609712B2 (en) Write operations to mitigate write disturb
JP2018156463A (ja) メモリシステム
JP6228523B2 (ja) メモリ制御回路および半導体記憶装置
US20210019254A1 (en) Wear leveling based on sub-group write counts in a memory sub-system
JP2009289014A (ja) 記憶装置
US10950318B2 (en) Memory proximity disturb management
US9141451B2 (en) Memory having improved reliability for certain data types
US20240071459A1 (en) Row tracking for row hammer mitigation
TWI760702B (zh) 資料寫入系統與方法
US11630594B2 (en) Storing data based on a probability of a data graph
US11789861B2 (en) Wear leveling based on sub-group write counts in a memory sub-system
US11416401B2 (en) Memory system and operating method thereof
US11955175B2 (en) Copy redundancy in a key-value data storage system using content addressable memory
TWI823649B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置
JP2018049387A (ja) メモリシステム及びプロセッサシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160325

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161014

R151 Written notification of patent or utility model registration

Ref document number: 6027567

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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