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

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

Info

Publication number
JP6030085B2
JP6030085B2 JP2014058848A JP2014058848A JP6030085B2 JP 6030085 B2 JP6030085 B2 JP 6030085B2 JP 2014058848 A JP2014058848 A JP 2014058848A JP 2014058848 A JP2014058848 A JP 2014058848A JP 6030085 B2 JP6030085 B2 JP 6030085B2
Authority
JP
Japan
Prior art keywords
redundant code
storage unit
stored
code storage
processor core
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
JP2014058848A
Other languages
English (en)
Other versions
JP2015184799A (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 JP2014058848A priority Critical patent/JP6030085B2/ja
Priority to PCT/JP2015/058418 priority patent/WO2015141821A1/ja
Publication of JP2015184799A publication Critical patent/JP2015184799A/ja
Priority to US15/262,218 priority patent/US10642685B2/en
Application granted granted Critical
Publication of JP6030085B2 publication Critical patent/JP6030085B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/221Static RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明の実施形態は、不揮発メモリを有するキャッシュメモリおよびプロセッサシステムに関する。
従来のキャッシュメモリでは、誤り訂正符号(ECC:Error Correction Code)を用いてデータの信頼性を高める技術を導入している。高速に動作させるために、誤り訂正のための冗長符号は、データよりも符号長が短いことが一般的である。また、メモリ回路への書き込みは、一般に符号長が長い方が遅延も大きい。そこで、データビットを書き込んでいる間に、冗長符号の演算とその書き込みを並列して行う動作シーケンスを採用することが考えられる。
このような動作シーケンスを採用することで、冗長符号の演算とその書き込みの遅延は、長いデータビットの書き込みの遅延に隠蔽されることになり、高速な書き込み動作が実現できる。
不揮発メモリセル自身の書き込み遅延は、不揮発メモリ回路内の他の回路ブロックの遅延よりもはるかに大きいことが多いため、不揮発メモリ回路の書き込み時間は不揮発メモリセル自身の書き込み遅延に依存する。したがって、冗長符号の符号長をデータビット長より短くしても、冗長符号の書き込み遅延はあまり低減されない。よって、キャッシュメモリとして不揮発メモリセルを用いる場合、冗長符号の演算とその書き込みに時間がかかるために、データアクセス時間が増大してしまうおそれがある。
特開2013−218403号公報 特表2010−512601号公報 特開2009−282752号公報
本実施形態は、不揮発メモリセルを使用しながらも高速データアクセスが可能なキャッシュメモリおよびプロセッサシステムを提供するものである。
本実施形態によれば、メインメモリに記憶されたデータまたは記憶されるべきデータの少なくとも一部を記憶する、不揮発メモリセルを有するキャッシュ部と、
前記キャッシュ部に記憶されたデータの冗長符号を記憶可能な、不揮発メモリセルを有する第1冗長符号記憶部と、
前記冗長符号を記憶可能な、揮発メモリセルを有する第2冗長符号記憶部と、を備えるキャッシュメモリが提供される。
第1の実施形態によるプロセッサシステム1の概略構成を示すブロック図。 図1のプロセッサシステム1の機能的なブロック図。 3次元積層技術を利用して実装したプロセッサシステムの一例を示す図。 TSVを用いた積層技術を説明する図。 マイクロバンプを用いた積層技術を説明する図。 プロセッサコア2の通常動作時におけるプロセッサシステム1内の各回路ブロックへの電源供給状況を示す図。 電源遮断時におけるプロセッサシステム1内の各回路ブロックへの電源供給状況を示す図。 電源復帰直後におけるプロセッサシステム1内の各回路ブロックへの電源供給状況を示す図。 キャッシュ制御部13と誤り訂正コントローラ14の内部構成の一例を示すブロック図。 プロセッサコア2が通常の書き込み動作を行う場合の冗長符号フローコントローラ53の動作を説明する図。 プロセッサコア2が通常の読み出し動作を行う場合の冗長符号フローコントローラ53の動作を説明する図。 電源遮断時の冗長符号フローコントローラ53の動作を説明する図。 電源復帰直後の冗長符号フローコントローラ53の動作を説明する図。 電源復帰直後にプロセッサコア2から読み出し要求があった場合の冗長符号フローコントローラ53の動作を説明する図。 更新フラグを説明する図。 監視回路27の処理動作の一例を示すフローチャート。 監視回路27のタイミング図。 Cステートの第1例を示す図。 Cステートの第2例を示す図。 Cステートの第3例を示す図。 Cステートの第4例を示す図。 第2の実施形態による誤り訂正コントローラ14の内部構成を示すブロック図。 プロセッサコア2の通常書き込み動作時における第2の実施形態の冗長符号フローコントローラ53の動作を説明する図。 プロセッサコア2の通常読み出し動作時における第2の実施形態の冗長符号フローコントローラ53の動作を説明する図。 電源遮断時における第2の実施形態の冗長符号フローコントローラ53の動作を説明する図。 電源復帰直後における第2の実施形態の冗長符号フローコントローラ53の動作を説明する図。 電源復帰直後にプロセッサコア2から読み出し要求があった場合の冗長符号フローコントローラ53の動作を説明する図。 第2の実施形態による監視回路27のタイミング図。
以下、図面を参照しながら、本発明の実施形態について説明する。
(第1の実施形態)
図1は第1の実施形態によるプロセッサシステム1の概略構成を示すブロック図である。図1のプロセッサシステム1は、プロセッサコア2と、キャッシュメモリ3と、電源制御部4とを備えている。
プロセッサコア2は、例えばマルチコア構成になっており、複数の演算器5と、複数のL1キャッシュ(L1 Cache)6とを有する。L1キャッシュ6は、高速性が要求されるため、例えばSRAM(Static Random Access Memory)で構成されている。なお、プロセッサコア2は、シングルコア構成であってもよい。
図1のキャッシュメモリ3は、メインメモリ7に記憶されたデータまたは記憶されるべきデータの少なくとも一部を記憶するものであり、L2以降の高次のキャッシュメモリを含んでいる。図1のキャッシュメモリ3は、不揮発メモリ部11と、揮発メモリ部12と、キャッシュ制御部13と、誤り訂正コントローラ14と、を有する。
不揮発メモリ部11は、不揮発メモリセルを用いて構成され、上述した高次のキャッシュメモリ3として用いられる。高次のキャッシュメモリ3は、SRAMほどの高速性は要求されないが、キャッシュメモリ3として使用可能な高速性が要求される。具体的には、例えば、不揮発メモリセルとしてMRAM(Magnetoresistive RAM)セルが用いられる。
不揮発メモリ部11は、キャッシュデータ部21と、タグ部22と、不揮発冗長符号記憶部(第1冗長符号記憶部)23とを有する。キャッシュデータ部21は、メインメモリ7に記憶されたデータまたは記憶されるべきデータを記憶する。キャッシュデータ部21は、キャッシュラインを単位としてデータを記憶する。キャッシュラインは例えば512ビットである。タグ部22は、キャッシュデータ部21に格納されているデータに対応するアドレス情報を記憶する。不揮発冗長符号記憶部23は、キャッシュデータ部21に記憶されたデータの冗長符号(データ冗長符号)と、タグ部22に記憶されたデータの冗長符号(タグ冗長符号)とを記憶する。
揮発メモリ部12は、レジスタ回路やSRAM等の高速アクセスが可能な揮発メモリを用いて構成されている。本明細書では、揮発メモリ部12は不揮発メモリ部11よりもアクセス速度が高速であることを想定している。揮発メモリ部12は、揮発冗長符号記憶部(第2冗長符号記憶部)24を有する。揮発冗長符号記憶部24は、キャッシュデータ部21に記憶されたデータの冗長符号(データ冗長符号)と、タグ部22に記憶されたデータの冗長符号(タグ冗長符号)とを記憶する。
キャッシュ制御部13は、プロセッサコア2が発行したアドレスに対応するデータがキャッシュデータ部21に格納されているか否かを判定する。
誤り訂正コントローラ14は、キャッシュメモリ3に記憶されているデータを誤り訂正するための冗長符号を不揮発冗長符号記憶部23と揮発冗長符号記憶部24のどちらに記憶するかを決定して、決定した記憶部に冗長符号を記憶するとともに、記憶した冗長符号を読み出す制御を行う。
電源制御部4は、不揮発メモリ部11用の第2電源回路26と、CMOS回路用の第1電源回路25と、監視回路27とを有する。第2電源回路26は、監視回路27からの信号に基づいて、不揮発メモリ部11に電源電圧を供給する。第1電源回路25は、監視回路27からの信号に基づいて、図1のプロセッサシステム1内の不揮発メモリ部11以外の回路ブロックに電源電圧を供給する。
監視回路27は、外部からプロセッサコア2に対して処理要求があったか否かとプロセッサシステム1内の処理状態とを監視する。監視回路27は、プロセッサコア2の処理が一定時間停止していて、かつ外部からの処理要求もない場合は、プロセッサシステム1内の少なくとも一部の回路ブロックの電源電圧を下げたり、電源電圧の供給を停止する電源制御信号を各電源回路に供給する。この電源制御信号は、誤り訂正コントローラ14にも送られる。誤り訂正コントローラ14は、この電源制御信号に基づいて、不揮発冗長符号記憶部23と揮発冗長符号記憶部24に対する冗長符号の読み書きを制御する。
図1のプロセッサコア2と、キャッシュ制御部13、誤り訂正コントローラ14、揮発メモリ部12、第1電源回路25および監視回路27は、複数のCMOSトランジスタを備えたCMOS部10である。
図2は図1のプロセッサシステム1の機能的なブロック図である。図2の第1ブロック31には、プロセッサコア2とL1キャッシュ6が配置される。第2ブロック32には、キャッシュ制御部13と誤り訂正コントローラ14が配置される。第3ブロック33には、不揮発メモリ部11内のキャッシュデータ部21が配置される。第4ブロック34には、不揮発メモリ部11内のタグ部22が配置される。第5ブロック35には、不揮発メモリ部11内の不揮発冗長符号記憶部23の一部(データ冗長符号の記憶領域)が配置される。第6ブロック36には、不揮発メモリ部11内の不揮発冗長符号記憶部23の一部(タグ冗長符号の記憶領域)が配置される。第7ブロック37には、揮発メモリ部12内の揮発冗長符号記憶部24の一部(データ冗長符号の記憶領域)が配置される。第8ブロック38には、揮発メモリ部12内の揮発冗長符号記憶部24の一部(タグ冗長符号の記憶領域)が配置される。第9ブロック39には、電源制御部4が配置される。
図1のプロセッサシステム1は、例えば図3に示すように、不揮発メモリチップ41とCMOSチップ42とを3次元積層技術を利用して積層した多チップ構成にすることができる。不揮発メモリチップ41には、図1の不揮発メモリ部11が実装される。CMOSチップ42には、図1のプロセッサシステム1内の不揮発メモリ部11以外のすべての回路ブロックが実装される。
適用可能な3次元積層技術は、図4に示すTSV(Through Silicon Via)43を用いた積層技術や、図5に示すマイクロバンプ44を用いた積層技術などである。図4の場合、例えばシリコン基板45上にCMOSチップ42が積層され、その上に不揮発メモリチップ41が積層される。一方のチップ上の各パッド46は、対応するTSV43を介して、他方のチップ上の対応するパッドと電気的に接続される。図5の場合、CMOSチップ42上の各パッドと、不揮発メモリチップ41上の各パッドとを対向させてマイクロバンプ44で接合する。
なお、図3〜図5のいずれにおいても、不揮発メモリチップ41とCMOSチップ42を積層する順序は特に問わない。
上述したように、監視回路27は、プロセッサコア2の動作状態に応じて、プロセッサシステム1内の各回路ブロックに供給する電源電圧を制御する。
図6はプロセッサコア2の通常動作時におけるプロセッサシステム1内の各回路ブロックへの電源供給状況を示す図である。図6に示すように、プロセッサコア2の通常動作時には、灰色で示す第5ブロック35と第6ブロック36には電源電圧が供給されず、それ以外の全ブロックには電源電圧が供給される。これは、プロセッサコア2の通常動作時には、不揮発メモリ部11内の不揮発冗長符号記憶部23は使用されないことを意味する。すなわち、プロセッサコア2の通常動作時には、データ冗長符号とタグ冗長符号は、揮発メモリ部12内の揮発冗長符号記憶部24に記憶される。
なお、プロセッサコア2の通常動作時とは、プロセッサコア2が処理動作を行っている期間を指す。
図7は電源遮断時におけるプロセッサシステム1内の各回路ブロックへの電源供給状況を示す図である。電源遮断時には、監視回路27は、第1ブロック31〜第4ブロック34への電源電圧の供給を遮断する。すなわち、プロセッサコア2、キャッシュ制御部13、誤り訂正コントローラ14、不揮発メモリ部11内のキャッシュデータ部21およびタグ部22に電源電圧が供給されなくなる。また、電源遮断時には、揮発メモリ部12内の揮発冗長符号記憶部24に記憶されているデータ冗長符号とタグ冗長符号を、不揮発メモリ部11内の不揮発冗長符号記憶部23にコピーする。そして、コピー完了後に、監視回路27は、揮発メモリ部12と不揮発メモリ部11への電源供給を遮断する。すなわち、監視回路27は、第5ブロック35〜第8ブロック38への電源供給を遮断する。この結果、電源遮断時には、電源制御部4内の監視回路27のみが動作している状態になる。なお、不揮発メモリ部11への電源電圧を遮断しても、不揮発メモリ部11内のデータが消失することはない。よって、不揮発メモリ部11にコピーしたデータ冗長符号とタグ冗長符号は、その後に電源が復帰した後に再利用できる。
図8は電源復帰直後におけるプロセッサシステム1内の各回路ブロックへの電源供給状況を示す図である。電源復帰直後は、揮発メモリ部12には有効なデータは記憶されていない。そこで、不揮発メモリ部11内の不揮発冗長符号記憶部23に記憶されているデータ冗長符号とタグ冗長符号を、揮発メモリ部12内の揮発冗長符号記憶部24にコピーする。これにより、誤り訂正コントローラ14が揮発冗長符号記憶部24にこれら冗長符号を書き戻すよりも速いタイミングで、プロセッサコア2は処理を再開できる。コピーが完了すると、図6に示す通常動作に復帰する。
図9はキャッシュ制御部13と誤り訂正コントローラ14の内部構成の一例を示すブロック図である。図9のキャッシュ制御部13は、Hit/Miss判定回路51と、誤り訂正回路52とを有する。Hit/Miss判定回路51は、プロセッサコア2からアクセス要求のあったデータがデータ部21に記憶されているか否かをタグ部22を参照して判定する。誤り訂正回路52は、プロセッサコア2からのアクセス要求に応じてキャッシュデータ部21から読み出したデータの誤り訂正を行う。誤り訂正後のデータがプロセッサコア2に送られる。また、誤り訂正回路52は、プロセッサコア2から書き込み要求のあったデータとアドレスから、データ冗長符号とタグ冗長符号を生成する。
図9の誤り訂正コントローラ14は、冗長符号フローコントローラ53と、コピーアドレスレジスタ54と、状態判定回路55とを有する。冗長符号フローコントローラ53は、不揮発メモリ部11内の不揮発冗長符号記憶部23と揮発メモリ部12内の揮発冗長符号記憶部24とに、データ冗長符号とタグ冗長符号を記憶する制御を行う。
コピーアドレスレジスタ54は、電源復帰直後に不揮発メモリ部11から揮発メモリ部12にデータ冗長符号とタグ冗長符号をコピーしている最中にプロセッサコア2がキャッシュメモリ3にアクセスできるように、コピーしているデータの対応アドレスをコピーアドレスレジスタ54に記憶する。
これにより、電源復帰直後に不揮発メモリ部11から揮発メモリ部12にデータ冗長符号とタグ冗長符号をコピーしている最中であっても、プロセッサコア2はキャッシュメモリ3へのアクセスが可能となる。より具体的には、電源復帰直後は、まだ不揮発メモリ部11から揮発メモリ部12へのデータ冗長符号とタグ冗長符号のコピーが完了していないため、不揮発メモリ部11からこれら冗長符号を読み出す。読出しが完了した後は、コピーアドレスレジスタ54に保存されているアドレスの次のアドレスからコピーを再開する。よって、コピー完了前であっても、データ冗長符号とタグ冗長符号の読み出しを正常に行うことができる。
状態判定回路55は、プロセッサコア2の通常動作期間中か、または電源復帰直後かを判定する。状態判定回路55は、例えばレジスタにて構成可能である。状態判定回路55は、例えば、コピーアドレスレジスタ54を参照し保存されているアドレスが途中のアドレスであれば電源復帰直後と判断し、最後のアドレスであれば通常動作期間中と判断する。
図10はプロセッサコア2が通常の書き込み動作を行う場合の冗長符号フローコントローラ53の動作を説明する図である。プロセッサコア2が通常の書き込み動作を行っている最中は、誤り訂正回路52で生成されたデータ冗長符号とタグ冗長符号は、冗長符号フローコントローラ53を介して、揮発メモリ部12内の揮発冗長符号記憶部24に記憶される。この場合、不揮発メモリ部11内の不揮発冗長符号記憶部23には、データ冗長符号とタグ冗長符号は記憶されない。
図11はプロセッサコア2が通常の読み出し動作を行う場合の冗長符号フローコントローラ53の動作を説明する図である。この場合、揮発メモリ部12内の揮発冗長符号記憶部24から読み出されたデータ冗長符号とタグ冗長符号が冗長符号フローコントローラ53を介して、プロセッサコア2に送られる。
図12は電源遮断時の冗長符号フローコントローラ53の動作を説明する図である。電源を遮断する際には、まず揮発メモリ部12内の揮発冗長符号記憶部24に記憶されているデータ冗長符号とタグ冗長符号が、不揮発メモリ部11内の不揮発冗長符号記憶部23にコピーされる。コピーが完了すると、監視回路27は、揮発メモリ部12と不揮発メモリ部11への電源供給を遮断する。
図13は電源復帰直後の冗長符号フローコントローラ53の動作を説明する図である。電源復帰直後は、不揮発メモリ部11内の不揮発冗長符号記憶部23に記憶されているデータ冗長符号とタグ冗長符号が、揮発メモリ部12内の揮発冗長符号記憶部24にコピーされる。また、コピーしている最中に、プロセッサコア2から読み出し要求または書き込み要求がある場合に備えて、不揮発冗長符号記憶部23に記憶されているデータ冗長符号とタグ冗長符号に対応するアドレスがコピーアドレスレジスタ54に記憶される。
図14は電源復帰直後にプロセッサコア2から読み出し要求があった場合の冗長符号フローコントローラ53の動作を説明する図である。電源復帰直後には、不揮発冗長符号記憶部23から揮発冗長符号記憶部24にデータがコピーされるが、コピーが完了する前は不揮発冗長符号記憶部23に記憶されているデータ冗長符号とタグ冗長符号は冗長符号フローコントローラ53を介してプロセッサコア2に送られる。
電源が復帰して、不揮発冗長符号記憶部23から揮発冗長符号記憶部24に各冗長符号をコピー中にプロセッサコア2から書き込み要求があった場合、まだコピーが完了しない間に、揮発冗長符号記憶部24に最新の冗長符号が記憶されてしまうことがありうる。この場合、不揮発冗長符号記憶部23には、コピーしようとする古い冗長符号が記憶されていることから、このままでは、揮発冗長符号記憶部24内の最新の冗長符号が、不揮発冗長符号記憶部23内の古い冗長符号に上書きされてしまうおそれがある。
そこで、図15に示すように、揮発冗長符号記憶部24に記憶される各冗長符号ごとに更新フラグ56を設けて、更新フラグ56によって、揮発冗長符号記憶部24に記憶されている各冗長符号が最新の値であるかを識別できるようにするのが望ましい。例えば、電源遮断時にすべての更新フラグ56を0にする。電源復帰後に新たな冗長符号の書き込みを行った場合に、対応する更新フラグ56を1にする。また、不揮発冗長符号記憶部23から揮発冗長符号記憶部24に冗長符号をコピーする場合には、対応する更新フラグ56が0の場合のみコピーを行う。これにより、コピーによって、新しい冗長符号を古い冗長符号で上書きする不具合を防止できる。更新フラグ56は1ビットの情報でよいため、揮発冗長符号記憶部24内に設けても、それほどメモリ容量の増大にはならない。
次に、監視回路27の動作を説明する。監視回路27は、プロセッサコア2の動作状態をモニタし、プロセッサコア2の動作が停止してからの経過時間によって、プロセッサシステム1内の各回路ブロックを段階的に低消費電力モードに移行させる。ここで、低消費電力モードとは、例えば電源電圧を下げたり、プロセッサシステム1内の一部の回路ブロックへの電源供給を停止するモードである。
プロセッサコア2の低消費電力モードは、一般にCステートと呼ばれている。C0ステートは、プロセッサコア2が通常動作を行っている状態であり、最も消費電力が多い。C1、C2、…と状態が遷移していくに従って、より低消費電力のモードに移行する。
図16は監視回路27の処理動作の一例を示すフローチャートである。プロセッサシステム1を構成する図3に示す不揮発メモリチップ41とCMOSチップ42に電源電圧を供給し、変数i=0、時刻T=Tiに初期化する(ステップS1)。変数iはCステートの状態を表す変数である。当初は変数i=0であるため、プロセッサシステム1はC0ステートの状態で動作する。時刻Tはプロセッサコア2が動作を停止している継続時間である。
次に、プロセッサコア2が所定時間T=To以上動作を停止しているか否かを判定する(ステップS2,S3)。ステップS3でT≧Toと判定されるまでは、ステップS2,S3の処理を繰り返す。
プロセッサコア2が所定時間To以上動作を停止している場合には、変数i<imaxか否かを判定する(ステップS4)。変数i<imaxであれば、変数iを1だけインクリメントするとともに、時刻T=Tiに初期化する。これにより、Cステートは、1段階低消費電力モードに切り替えられて、ステップS2以降の処理が繰り返される(ステップS5)。
ステップS4で、変数i≧imaxと判定されると、プロセッサシステム1の電源を遮断する(ステップS6)。ステップS6では、監視回路27以外のすべての回路ブロックへの電源供給が遮断される。
図17は監視回路27のタイミング図である。このタイミング図は、電源復帰直後からプロセッサコア2が動作を停止した後までのタイミングを示している。時刻t1でプロセッサシステム1に電源電圧が供給されると、不揮発メモリ部11内の不揮発冗長符号記憶部23に記憶されているデータ冗長符号とタグ冗長符号が揮発メモリ部12内の揮発冗長符号記憶部24にコピーされる(時刻t1〜t2)。
時刻t2で各冗長符号のコピーが完了すると、プロセッサコア2は、キャッシュメモリ3にアクセス要求を行う際には、不揮発メモリ部11内の不揮発冗長符号記憶部23ではなく、揮発メモリ部12内の揮発冗長符号記憶部24にアクセスする。これにより、不揮発冗長符号記憶部23にアクセスするよりも、高速アクセスが可能となる。
時刻t3でプロセッサコア2が動作を停止すると、冗長符号フローコントローラ53は、揮発冗長符号記憶部24に記憶されているデータ冗長符号とタグ冗長符号を、不揮発冗長符号記憶部23にコピーする(時刻t3〜t4)。そして、コピー完了後に、監視回路27は、揮発メモリ部12と不揮発メモリ部11への電源供給を遮断する。
また、監視回路27は、動作停止時刻からの経過時間をモニタし、経過時間に応じて、Cステートを段階的に切り替えて低消費電力動作を行う。最終的に、プロセッサシステム1内で監視回路27のみが動作している状態まで移行する(時刻t4)。
図18はCステートの第1例を示す図である。図18の例では、CステートがC0,C1,C2と段階的に切り替わる。C0ステートでは、プロセッサシステム1内のすべての回路ブロックに電源電圧が供給される。
C1ステートでは、キャッシュ制御部13および誤り訂正コントローラ14に対応する第2ブロック32と、不揮発メモリ部11内のキャッシュデータ部21とタグ部22に対応する第3ブロック33および第4ブロック34とに供給されていた電源供給が遮断される。ただし、C1ステートでは、不揮発メモリ部11内の不揮発冗長符号記憶部23と揮発メモリ部12内の揮発冗長符号記憶部24とには、電源電圧が供給される。その理由は、揮発冗長符号記憶部24から不揮発冗長符号記憶部23に各冗長符号をコピーする必要があるためである。
C2ステートでは、監視回路27を含む第9ブロック39を除く第1〜第8ブロック31〜38への電源供給が遮断される。これにより、プロセッサシステム1で消費する電力を最低限に抑制できる。
Cステートは図18よりも細かく遷移させることも可能である。例えば図19はCステートの第2例を示す図であり、CステートをC0〜C3まで4つの状態に順に切り替える例を示している。図19のC0、C3ステートはそれぞれ、図18のC0、C2ステートと同じである。
図19のC1ステートでは、不揮発メモリ部11内のキャッシュデータ部21とタグ部22に対応する第3ブロック33および第4ブロック34に供給されていた電源供給が遮断される。ただし、キャッシュ制御部13および誤り訂正コントローラ14に対応する第2ブロック32には電源電圧が供給される。
また、図19のC2ステートでは、第3ブロック33および第4ブロック34に加えて、プロセッサコア2に対応する第1ブロック31と、キャッシュ制御部13および誤り訂正コントローラ14に対応する第2ブロック32とへの電源供給が遮断される。
電源供給を遮断する面積が小さい方が、一つ前の状態に迅速に復帰可能である。図19の場合、図18よりも状態の数を一つ増やしており、電源供給を遮断する面積を少しずつ増やすようにしている。これにより、C0ステートに迅速に復帰することができる。なお、図19のC1ステート時に電源電圧を供給する面積は、図18のC1ステート時に電源電圧を供給する面積よりも大きいため、図19のC1ステートは、図18のC1ステートよりも消費電力が大きい。よって、図19のC1ステートには長時間留まらないように状態遷移の設計を行うのが望ましい。また、状態の分割数と各状態に留まる時間は、プロセッサシステム1が実行する処理に応じて適切に設計するのが望ましい。
図20はCステートの第3例を示す図である。図20のC0ステートとC2ステートは図18と同様であるが、C1ステートが異なっている。図20のC1ステートでは、図18のC1ステートでの電源遮断範囲に加えて、プロセッサコア2への電源供給も遮断される。プロセッサコア2への電源供給を遮断するタイミングを早めた方がよいかどうかは、プロセッサコア2とキャッシュメモリ3の復帰のオーバーヘッドを考慮に入れて決めるのが望ましい。すなわち、復帰に要するオーバーヘッドが小さい回路ブロックへの電源供給を先に遮断するのが望ましい。例えば、キャッシュメモリ3の復帰のオーバーヘッドがプロセッサコア2の復帰のオーバーヘッドより小さい場合は、図18や図19に示したように、プロセッサコア2はC2ステート以降で電源供給を遮断すればよい。逆に、プロセッサコア2の復帰のオーバーヘッドがキャッシュメモリ3の復帰のオーバーヘッドよりも小さい場合は、図20に示したように、C1ステートでプロセッサコア2への電源供給を遮断すればよい。
図21はCステートの第4例を示す図である。図21は、図20よりも状態遷移数が多く、図19のC1,C2ステートをC2,C3ステートにずらすとともに、新たにC1ステートを追加したものである。図21のC1ステートでは、プロセッサコア2に対応する第1ブロック31と、キャッシュ制御部13および誤り訂正コントローラ14に対応する第2ブロック32とへの電源供給が遮断される。これにより、図21では、C1ステートからC0ステートへの復帰と、C2ステートからC1ステートへの復帰とを迅速に行うことができる。ただし、図21のC1ステートは、図20のC1ステートよりも、電源電圧を供給する面積が大きいため、消費電力が増大するおそれがある。よって、図21のC1ステートに留まる時間ができるだけ短くなるように設計を行うのが望ましい。
このように、第1の実施形態では、キャッシュメモリ3内のキャッシュデータ部21とタグ部22に記憶される各データの冗長符号を、プロセッサコア2の動作状態に応じて、不揮発メモリ部11と揮発メモリ部12のいずれかに記憶するため、冗長符号を迅速に書き込めるとともに、電源遮断時や電源復帰直後に冗長符号が消失してしまう不具合が起きなくなる。より具体的には、プロセッサコア2が通常動作をしているときは、揮発メモリ部12に冗長符号を書き込むため、冗長符号の書き込みを高速に行うことができる。また、電源遮断時には、揮発メモリ部12から不揮発メモリ部11に冗長符号をコピーするため、電源を遮断しても、冗長符号が消失するおそれがない。さらに、電源復帰直後には、不揮発メモリ部11から揮発メモリ部12に冗長符号をコピーするため、過去に生成した冗長符号を有効利用でき、電源復帰後にプロセッサコア2が通常動作を再開するまでの時間を短縮できる。
(第2の実施形態)
以下に説明する第2の実施形態は、誤り訂正コントローラ14内にライトバッファを設けるものである。
第2の実施形態は、キャッシュメモリ3内の誤り訂正コントローラ14の内部構成が図14とは一部異なる他は、第1の実施形態と共通する。よって、以下では、相違点を中心に説明する。
図22は第2の実施形態による誤り訂正コントローラ14の内部構成を示すブロック図である。図22の誤り訂正コントローラ14は、図14の構成に加えて、ライトバッファ(一時記憶部)57を有する。ライトバッファ57は、冗長符号フローコントローラ53と不揮発冗長符号記憶部23との間に設けられている。
誤り訂正コントローラ14は、データ冗長符号とタグ冗長符号を揮発メモリ部12に書き込む際に、ライトバッファ57にも書き込む。すなわち、誤り訂正コントローラ14は、これら冗長符号を、揮発メモリ部12とライトバッファ57に並行して書き込む。ライトバッファ57に書き込まれた冗長符号は、事後的(例えば、電源遮断時)に不揮発メモリ部11に書き込まれる。すなわち、不揮発メモリ部11は、ライトバッファ57が書込み動作を行っていないときに冗長符号を順次記憶する。したがって、電源遮断時には、揮発メモリ部12内の揮発冗長符号記憶部24から不揮発メモリ部11内の不揮発冗長符号記憶部23に冗長符号のコピーを行わなくて済む。
なお、冗長符号を不揮発メモリ部11に直接書き込む代わりにライトバッファ57に書き込む理由は、不揮発メモリ部11は、揮発メモリ部12よりもデータ書き込みに時間がかかるためである。ライトバッファ57をレジスタ回路等の高速書き込みが可能な回路で構成することにより、冗長符号を迅速に書き込むことができる。また、ライトバッファ57に書き込んだ冗長符号は、所定のタイミングで、不揮発符号記憶部にコピーすることができる。
図23はプロセッサコア2の通常書き込み動作時における第2の実施形態の冗長符号フローコントローラ53の動作を説明する図である。図23では、誤り訂正回路52で生成されたデータ冗長符号とタグ冗長符号は、冗長符号フローコントローラ53を介して、揮発メモリ部12内の揮発冗長符号記憶部24に記憶されるだけでなく、ライトバッファ57にも並行して記憶される。これら冗長符号がライトバッファ57にも記憶される点で図10とは異なっている。
図24はプロセッサコア2の通常読み出し動作時における第2の実施形態の冗長符号フローコントローラ53の動作を説明する図である。図24では、図11と同様に、揮発冗長符号記憶部24から読み出したデータ冗長符号とタグ冗長符号が冗長符号フローコントローラ53を介してプロセッサコア2に送られる。
図25は電源遮断時における第2の実施形態の冗長符号フローコントローラ53の動作を説明する図である。図25では、ライトバッファ57に書き込んだ冗長符号のうち、まだ不揮発メモリ部11内の不揮発冗長符号記憶部23に記憶されていない冗長符号を不揮発冗長符号記憶部23にコピーする。ライトバッファ57内のすべての冗長符号が不揮発冗長符号記憶部23にコピーされた場合は、プロセッサシステム1内の監視回路27以外の回路ブロックへの電源供給が遮断される。
図26は電源復帰直後における第2の実施形態の冗長符号フローコントローラ53の動作を説明する図である。図26では、図13と同様に、不揮発メモリ部11内の不揮発冗長符号記憶部23に記憶されているデータ冗長符号とタグ冗長符号が、揮発メモリ部12内の揮発冗長符号記憶部24にコピーされる。また、コピーしている最中に、プロセッサコア2から読み出し要求または書き込み要求がある場合に備えて、不揮発冗長符号記憶部23に記憶されているデータ冗長符号とタグ冗長符号に対応するアドレスがコピーアドレスレジスタ54に記憶される。さらに、電源復帰直後にプロセッサコア2から読み出し要求があった場合には、図27に示すように、不揮発冗長符号記憶部23に記憶されているデータ冗長符号とタグ冗長符号は冗長符号フローコントローラ53を介してプロセッサコア2に送られる。
図28は第2の実施形態による監視回路27のタイミング図である。図28は、図17と同様に、電源復帰直後からプロセッサコア2が動作を停止した後までのタイミングを示している。図28において、電源の復帰時刻t1からプロセッサコア2の動作停止時刻t3までの監視回路27の動作は図17と同様である。
時刻t3でプロセッサコア2が動作を停止すると、ライトバッファ57に記憶された冗長符号を不揮発冗長符号記憶部23にコピーする処理が行われる。監視回路27は、ライトバッファ57から不揮発冗長符号記憶部23への冗長符号の記憶処理が終了した後に、ライトバッファ57と不揮発メモリ部11への電源供給を遮断する。
このように、第2の実施形態では、誤り訂正コントローラ14内にライトバッファ57を設けるため、電源遮断時に、揮発冗長符号記憶部24から不揮発冗長符号記憶部23に冗長符号をコピーしなくて済み、揮発冗長符号記憶部24への電源供給をより速いタイミングで遮断できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 プロセッサシステム、2 マルチコア部、3 キャッシュメモリ、4 電源制御部、10 CMOS部、11 不揮発メモリ部、12 揮発メモリ部、13 キャッシュ制御部、14 誤り訂正コントローラ、21 キャッシュデータ部、22 タグ部、23 不揮発冗長符号記憶部、24 揮発冗長符号記憶部、25 第1電源回路、26 第2電源回路、27 監視回路、31〜39 第1〜第9ブロック、41 不揮発メモリチップ、42 CMOSチップ、51 Hit/Miss判定回路、52 誤り訂正回路、53 冗長符号フローコントローラ、54 コピーアドレスレジスタ、55 状態判定回路、56 更新フラグ

Claims (16)

  1. メインメモリに記憶されたデータまたは記憶されるべきデータの少なくとも一部を記憶する、不揮発メモリセルを有するキャッシュ部と、
    前記キャッシュ部に記憶されたデータの冗長符号を記憶可能な、不揮発メモリセルを有する第1冗長符号記憶部と、
    前記冗長符号を記憶可能な、揮発メモリセルを有する第2冗長符号記憶部と、を備えるキャッシュメモリ。
  2. 前記キャッシュ部は、前記メインメモリに記憶されたデータまたは記憶されるべきデータの他に、当該データにアクセスするためのタグ情報を記憶し、
    前記第1冗長符号記憶部および前記第2冗長符号記憶部は、前記キャッシュ部に記憶されたデータの冗長符号と、当該データに対応する前記タグ情報の冗長符号と、を記憶可能である請求項1に記載のキャッシュメモリ。
  3. 前記第2冗長符号記憶部は、プロセッサコアの動作中に前記冗長符号の記憶および読み出しに用いられ、
    前記第1冗長符号記憶部は、前記プロセッサコアが動作を停止した後に、前記第2冗長符号記憶部に記憶された前記冗長符号を記憶する請求項1または2に記載のキャッシュメモリ。
  4. 前記第2冗長符号記憶部は、プロセッサコアが動作を再開した際に、前記第1冗長符号記憶部に記憶された前記冗長符号を記憶する請求項3に記載のキャッシュメモリ。
  5. 前記第2冗長符号記憶部は、プロセッサコアが動作を再開した際に、前記第1冗長符号記憶部に記憶された前記冗長符号を記憶するべきか否かを示す更新可否情報を記憶する請求項4に記載のキャッシュメモリ。
  6. 前記第1冗長符号記憶部に記憶されるべき前記冗長符号を、前記第1冗長符号記憶部に記憶する前に記憶する一時記憶部を備え、
    前記一時記憶部および前記第2冗長符号記憶部は、並行して前記冗長符号を記憶し、
    前記第1冗長符号記憶部は、前記一時記憶部が書込み動作をしていないときに前記冗長符号を順次記憶し、
    前記第1冗長符号記憶部は、プロセッサコアが動作を停止した際には、前記一時記憶部に記憶されていて、まだ前記第1冗長符号記憶部に記憶されていない前記冗長符号を記憶する請求項1または2に記載のキャッシュメモリ。
  7. プロセッサコアの動作状態に応じて、前記第1冗長符号記憶部および前記第2の冗長符号記憶部に対する前記冗長符号の読出しと書込みとを制御する冗長符号フローコントローラを備える請求項1乃至6のいずれかに記載のキャッシュメモリ。
  8. プロセッサコアと、
    キャッシュメモリと、を備えるプロセッサシステムにおいて、
    前記キャッシュメモリは、
    メインメモリに記憶されたデータまたは記憶されるべきデータの少なくとも一部を記憶する、不揮発メモリセルを有するキャッシュ部と、
    前記キャッシュ部に記憶されたデータの冗長符号を記憶可能な、不揮発メモリセルを有する第1冗長符号記憶部と、
    前記冗長符号を記憶可能な、揮発メモリセルを有する第2冗長符号記憶部と、を有するプロセッサシステム。
  9. 前記キャッシュ部は、前記メインメモリに記憶されたデータまたは記憶されるべきデータの他に、当該データにアクセスするためのタグ情報を記憶し、
    前記第1冗長符号記憶部および前記第2冗長符号記憶部は、前記キャッシュ部に記憶されたデータの冗長符号と、当該データに対応する前記タグ情報の冗長符号と、を記憶可能である請求項8に記載のプロセッサシステム。
  10. 前記キャッシュメモリは、前記プロセッサコアの動作状態に応じて、前記第1冗長符号記憶部および前記第2冗長符号記憶部に対する前記冗長符号の読出しと書込みとを制御する冗長符号フローコントローラを有する請求項8または9に記載のプロセッサシステム。
  11. 前記冗長符号フローコントローラは、前記プロセッサコアの動作中では、前記冗長符号を前記第1冗長符号記憶部に記憶せずに前記第2冗長符号記憶部に記憶する制御を行う請求項10に記載のプロセッサシステム。
  12. 前記冗長符号フローコントローラは、前記プロセッサコアが動作を停止すると、前記第2冗長符号記憶部に記憶された前記冗長符号を前記第1冗長符号記憶部にコピーする制御を行う請求項10または11に記載のプロセッサシステム。
  13. 前記冗長符号フローコントローラは、前記プロセッサコアが動作を再開した際に、前記第1冗長符号記憶部に記憶された前記冗長符号を前記第2冗長符号記憶部にコピーする制御を行う請求項10乃至12のいずれかに記載のプロセッサシステム。
  14. 前記第1冗長符号記憶部に記憶されるべき前記冗長符号を、前記第1冗長符号記憶部に記憶する前に記憶する一時記憶部を備え、
    前記第1冗長符号記憶部は、前記一時記憶部が書込み動作をしていないときに前記冗長符号を順次記憶し、
    前記冗長符号フローコントローラは、前記プロセッサコアの動作中では、前記一時記憶部および前記第2冗長符号記憶部に並行して前記冗長符号を記憶する制御を行い、前記プロセッサコアが動作を停止した際には、前記一時記憶部に記憶されていて、まだ前記第1冗長符号記憶部に記憶されていない前記冗長符号を前記第1冗長符号記憶部に記憶する制御を行う請求項10に記載のプロセッサシステム。
  15. 前記キャッシュ部および前記第1冗長符号記憶部を実装する第1半導体チップと、
    前記第1半導体チップに積層され、前記プロセッサコアおよび前記第2冗長符号記憶部を実装する第2半導体チップと、を備える請求項8乃至14のいずれかに記載のプロセッサシステム。
  16. 前記不揮発メモリセルは、MRAM(Magnetoresistive RAM)セルである請求項8乃至15のいずれかに記載のプロセッサシステム。
JP2014058848A 2014-03-20 2014-03-20 キャッシュメモリおよびプロセッサシステム Active JP6030085B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014058848A JP6030085B2 (ja) 2014-03-20 2014-03-20 キャッシュメモリおよびプロセッサシステム
PCT/JP2015/058418 WO2015141821A1 (ja) 2014-03-20 2015-03-20 冗長符号を退避するキャッシュメモリ
US15/262,218 US10642685B2 (en) 2014-03-20 2016-09-12 Cache memory and processor system

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2015184799A JP2015184799A (ja) 2015-10-22
JP6030085B2 true JP6030085B2 (ja) 2016-11-24

Family

ID=54144782

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US10642685B2 (ja)
JP (1) JP6030085B2 (ja)
WO (1) WO2015141821A1 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10163479B2 (en) 2015-08-14 2018-12-25 Spin Transfer Technologies, Inc. Method and apparatus for bipolar memory write-verify
US9929750B2 (en) 2015-09-08 2018-03-27 Toshiba Memory Corporation Memory system
US10437491B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register
US10437723B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device
US10192601B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers
US10460781B2 (en) 2016-09-27 2019-10-29 Spin Memory, Inc. Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank
US10818331B2 (en) 2016-09-27 2020-10-27 Spin Memory, Inc. Multi-chip module for MRAM devices with levels of dynamic redundancy registers
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
US10546625B2 (en) 2016-09-27 2020-01-28 Spin Memory, Inc. Method of optimizing write voltage based on error buffer occupancy
US10360964B2 (en) 2016-09-27 2019-07-23 Spin Memory, Inc. Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device
US10192602B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Smart cache design to prevent overflow for a memory device with a dynamic redundancy register
US10628316B2 (en) 2016-09-27 2020-04-21 Spin Memory, Inc. Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register
US10366774B2 (en) 2016-09-27 2019-07-30 Spin Memory, Inc. Device with dynamic redundancy registers
US10489245B2 (en) 2017-10-24 2019-11-26 Spin Memory, Inc. Forcing stuck bits, waterfall bits, shunt bits and low TMR bits to short during testing and using on-the-fly bit failure detection and bit redundancy remapping techniques to correct them
US10481976B2 (en) 2017-10-24 2019-11-19 Spin Memory, Inc. Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers
US10656994B2 (en) 2017-10-24 2020-05-19 Spin Memory, Inc. Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques
US10529439B2 (en) 2017-10-24 2020-01-07 Spin Memory, Inc. On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects
US10360962B1 (en) 2017-12-28 2019-07-23 Spin Memory, Inc. Memory array with individually trimmable sense amplifiers
US10395712B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Memory array with horizontal source line and sacrificial bitline per virtual source
US10891997B2 (en) 2017-12-28 2021-01-12 Spin Memory, Inc. Memory array with horizontal source line and a virtual source line
US10424726B2 (en) 2017-12-28 2019-09-24 Spin Memory, Inc. Process for improving photoresist pillar adhesion during MRAM fabrication
US10811594B2 (en) 2017-12-28 2020-10-20 Spin Memory, Inc. Process for hard mask development for MRAM pillar formation using photolithography
US10395711B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Perpendicular source and bit lines for an MRAM array
US10886330B2 (en) 2017-12-29 2021-01-05 Spin Memory, Inc. Memory device having overlapping magnetic tunnel junctions in compliance with a reference pitch
US10784439B2 (en) 2017-12-29 2020-09-22 Spin Memory, Inc. Precessional spin current magnetic tunnel junction devices and methods of manufacture
US10367139B2 (en) 2017-12-29 2019-07-30 Spin Memory, Inc. Methods of manufacturing magnetic tunnel junction devices
US10840439B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Magnetic tunnel junction (MTJ) fabrication methods and systems
US10546624B2 (en) 2017-12-29 2020-01-28 Spin Memory, Inc. Multi-port random access memory
US10840436B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Perpendicular magnetic anisotropy interface tunnel junction devices and methods of manufacture
US10424723B2 (en) 2017-12-29 2019-09-24 Spin Memory, Inc. Magnetic tunnel junction devices including an optimization layer
US10438995B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Devices including magnetic tunnel junctions integrated with selectors
US10438996B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Methods of fabricating magnetic tunnel junctions integrated with selectors
US10446744B2 (en) 2018-03-08 2019-10-15 Spin Memory, Inc. Magnetic tunnel junction wafer adaptor used in magnetic annealing furnace and method of using the same
US11107978B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Methods of manufacturing three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US11107974B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Magnetic tunnel junction devices including a free magnetic trench layer and a planar reference magnetic layer
US10529915B2 (en) 2018-03-23 2020-01-07 Spin Memory, Inc. Bit line structures for three-dimensional arrays with magnetic tunnel junction devices including an annular free magnetic layer and a planar reference magnetic layer
US10784437B2 (en) 2018-03-23 2020-09-22 Spin Memory, Inc. Three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US10411185B1 (en) 2018-05-30 2019-09-10 Spin Memory, Inc. Process for creating a high density magnetic tunnel junction array test platform
US10600478B2 (en) 2018-07-06 2020-03-24 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10559338B2 (en) 2018-07-06 2020-02-11 Spin Memory, Inc. Multi-bit cell read-out techniques
US10692569B2 (en) 2018-07-06 2020-06-23 Spin Memory, Inc. Read-out techniques for multi-bit cells
US10593396B2 (en) 2018-07-06 2020-03-17 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10650875B2 (en) 2018-08-21 2020-05-12 Spin Memory, Inc. System for a wide temperature range nonvolatile memory
US10699761B2 (en) 2018-09-18 2020-06-30 Spin Memory, Inc. Word line decoder memory architecture
US11621293B2 (en) 2018-10-01 2023-04-04 Integrated Silicon Solution, (Cayman) Inc. Multi terminal device stack systems and methods
US10971680B2 (en) 2018-10-01 2021-04-06 Spin Memory, Inc. Multi terminal device stack formation methods
US11107979B2 (en) 2018-12-28 2021-08-31 Spin Memory, Inc. Patterned silicide structures and methods of manufacture
CN116107413A (zh) * 2021-11-10 2023-05-12 Oppo广东移动通信有限公司 数据处理芯片、模组、终端及电源管理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890836B2 (en) * 2006-12-14 2011-02-15 Intel Corporation Method and apparatus of cache assisted error detection and correction in memory
JP2008276646A (ja) * 2007-05-02 2008-11-13 Hitachi Ltd ストレージ装置及びストレージ装置におけるデータの管理方法
JP5386111B2 (ja) 2008-05-22 2014-01-15 株式会社日立ソリューションズ ファイルシステムの記録方法
US9003118B2 (en) * 2009-01-09 2015-04-07 Dell Products L.P. Systems and methods for non-volatile cache control
JP2011257966A (ja) 2010-06-09 2011-12-22 Mitsubishi Electric Corp キャッシュ装置及び情報処理装置
JP2012190359A (ja) * 2011-03-11 2012-10-04 Toshiba Corp キャッシュシステムおよび処理装置
JP5803614B2 (ja) * 2011-11-29 2015-11-04 ソニー株式会社 不揮発性キャッシュメモリ、不揮発性キャッシュメモリの処理方法、コンピュータシステム
JP5498526B2 (ja) 2012-04-05 2014-05-21 株式会社東芝 キャッシュシステム
JP6097845B2 (ja) * 2013-12-24 2017-03-15 株式会社日立製作所 不揮発性キャッシュメモリにデータをバックアップするストレージシステム

Also Published As

Publication number Publication date
US20160378592A1 (en) 2016-12-29
US10642685B2 (en) 2020-05-05
WO2015141821A1 (ja) 2015-09-24
JP2015184799A (ja) 2015-10-22

Similar Documents

Publication Publication Date Title
JP6030085B2 (ja) キャッシュメモリおよびプロセッサシステム
US9251057B2 (en) Nonvolatile cache memory, processing method of nonvolatile cache memory, and computer system
JP2010152962A (ja) 半導体記憶装置
JP2012190359A (ja) キャッシュシステムおよび処理装置
US10152244B2 (en) Programmable memory command sequencer
JP2011150653A (ja) マルチプロセッサシステム
JP5337277B1 (ja) 磁気ランダムアクセスメモリ及びメモリシステム
JP2007080325A (ja) 半導体記憶装置
US10146483B2 (en) Memory system
JP6092019B2 (ja) プロセッサ
JP2014222425A (ja) 半導体集積回路、半導体集積回路の製造方法、コンピュータシステム及び半導体集積回路の制御方法
US9003128B2 (en) Cache system and processing apparatus
US9135988B2 (en) Semiconductor device and control method of the same
JP6039772B1 (ja) メモリシステム
KR101502998B1 (ko) 메모리 시스템 및 그 관리 방법
JP5601372B2 (ja) 半導体記憶装置
JP2016031768A (ja) データ転送回路
US20200264681A1 (en) Power management for partial cache line sparing
JP5477384B2 (ja) 半導体集積回路装置および半導体集積回路装置の制御方法、ならびに、キャッシュ装置
JP6130949B1 (ja) メモリシステムおよびプロセッサシステム
JP4118249B2 (ja) メモリシステム
WO2014057662A1 (ja) 予め決められたイベントの検知により更新設定されるアドレス変換器を有する半導体装置
JP2012103967A (ja) 情報処理装置及びそのデータ退避方法
JP2008083904A (ja) キャッシュメモリ装置およびその制御方法
KR101469848B1 (ko) 메모리 시스템 및 그 관리 방법

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161019

R151 Written notification of patent or utility model registration

Ref document number: 6030085

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