CN103136119A - 非易失性高速缓冲存储器、其处理方法以及计算机系统 - Google Patents

非易失性高速缓冲存储器、其处理方法以及计算机系统 Download PDF

Info

Publication number
CN103136119A
CN103136119A CN2012104792848A CN201210479284A CN103136119A CN 103136119 A CN103136119 A CN 103136119A CN 2012104792848 A CN2012104792848 A CN 2012104792848A CN 201210479284 A CN201210479284 A CN 201210479284A CN 103136119 A CN103136119 A CN 103136119A
Authority
CN
China
Prior art keywords
cache
data
cache line
holding state
director
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
CN2012104792848A
Other languages
English (en)
Other versions
CN103136119B (zh
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of CN103136119A publication Critical patent/CN103136119A/zh
Application granted granted Critical
Publication of CN103136119B publication Critical patent/CN103136119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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
    • 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

Landscapes

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

Abstract

本发明公开了非易失性高速缓冲存储器、其处理方法以及计算机系统。该非易失性高速缓冲存储器包括非易失性存储器部和高速缓存控制器。非易失性存储器部被配置为存储高速缓存数据。高速缓存控制器被配置为控制对非易失性存储器部进行的高速缓存数据的读取和写入。此外,高速缓存控制器被配置为执行用于生成待机状态数据并将所生成的待机状态数据存储在非易失性存储器部中的待机准备处理,作为供电中断的准备。此外,高速缓存控制器被配置为在供电恢复时,使用待机状态数据对存储在非易失性存储器部中的高速缓存数据执行恢复处理。

Description

非易失性高速缓冲存储器、其处理方法以及计算机系统
技术领域
本发明涉及非易失性高速缓冲存储器、非易失性高速缓冲存储器的处理方法以及具有非易失性高速缓冲存储器的计算机系统。
背景技术
在已知的计算机系统中,处理器从主存储器获取数据和诸如命令的信息或更新主存储器的信息。此时,诸如主存储器的等待时间的存取性能劣于处理器的处理性能。因此,主存储器和处理器之间的性能差造成计算机系统的总性能的瓶颈。
高速缓冲存储器是新设置在存储层以消除瓶颈并设置在处理器和主存储器之间的存储器。
一般地,使用以高于主存储器的速度运行的SRAM(静态随机存取存储器)作为高速缓冲存储器。
当处理器从主存储器获取数据或更新主存储器的信息时,相同数据也存储在高速缓冲存储器中。然后,当获取或更新相同数据时,高速缓存存储器代替主存储器执行数据的输入和输出。因此,主存储器和处理器之间的性能差被隐蔽掉,从而构建了高速计算机系统。
另一方面,为了对移动设备应用计算机系统,越来越需求节电控制技术。在最新的高性能处理器中使用的半导体电路技术中,漏电流与功耗的比例很大。因此,例如,当没有要处理的命令时,一直使用一种所谓的电源门控的技术来中断对处理器的供电以防止漏电发生。
另一方面,用作高速缓冲存储器的SRAM是易失性存储器。因此,当中断供电时,存储在SRAM中的数据丢失。鉴于上述问题,日本专利申请公开号2011-150653公开了一种方法,在构成高速缓冲存储器的部件中,该方法仅对控制数据的输入和输出的控制器中断供电,而对存储数据的SRAM单元阵列保持供电,以减少高速缓冲存储器中消耗的电力。
发明内容
然而,因为在SRAM单元阵列本身中也会发生漏电,所以通过上述方法难以实现足够的节电。因此,应考虑使用非易失性高速缓冲存储器并且在对处理器中断供电时中断对整个高速缓冲存储器的供电。
作为这种非易失性高速缓冲存储器的候选,已经在关注使用铁磁性体的MRAM(磁性随机存取存储器)、使用相变材料的PCRAM(相变随机存取存储器)、使用具有可变电阻特性的材料的ReRAM(电阻式随机存取存储器)等。
此外,国际公开号2009-028298的小册子公开了一种存储器,该存储器在正常操作下作为SRAM而操作,但是被制作成非易失性的,因为在供电中断时其将数据存储在非易失性元件中。
在非易失性存储器中,即使供电中断,原则上也会保留所存储的数据,但存储器具有保留数据的时间限制。例如,有可能会由于MRAM中的热扰动而使数据丢失。到数据丢失的时间被称为保留时间。
可以通过使对热扰动性的耐性提供来增加保留时间。
然而,须考虑以下事实:保留时间取决于写入数据时消耗的电力和写入数据所需的时间。换言之,需用大的电力来写入数据或需要长时间来写入数据以增加保留时间,这会不利于节电和加速。因此,需要小心设计非易失性高速缓冲存储器的使用时的保留时间。
当非易失性高速缓冲存储器处于启动供电的操作状态下时,数据被频繁地从存储器输出和输入存储器中。因此,需要以高速对非易失性高速缓冲存储器进行数据的输入和输出。此外,需要使用更少的能量来写入数据,以用于节电。为了满足这样的需求,期望的是非易失性高速缓冲存储器的保留时间被设计得很短。
另一方面,当非易失性高速缓冲存储器处于供电中断的待机状态下时,需要在非易失性高速缓冲存储器中保留数据。然而,因为非易失性高速缓冲存储器的停留时间被设计得很短,所以当非易失性高速缓冲存储器处于待机状态下时,有可能丢失数据。这会导致主存储器和非易失性高速缓冲存储器之间的数据的不一致,而使得会降低计算机系统的可靠性。
鉴于上述问题创作了本发明,因此,期望的是当非易失性高速缓冲存储器处于供电中断的待机状态下时,增强非易失性高速缓冲存储器的数据的可靠性。
根据本发明的实施方式,提供了一种非易失性高速缓冲存储器,其包括非易失性存储器部和高速缓存控制器。非易失性存储器部被配置为存储高速缓存数据。高速缓存控制器被配置为控制对非易失性存储器部进行的高速缓存数据的读取和写入。此外,高速缓存控制器被配置为执行用于生成待机状态数据并将所生成的待机状态数据存储在非易失性存储器部中的待机准备处理,作为供电中断的准备。此外,高速缓存控制器被配置为在供电恢复时,使用待机状态数据对存储在非易失性存储器部中的高速缓存数据执行恢复处理。
根据本发明的另一个实施方式,提供了一种非易失性高速缓冲存储器的处理方法,该非易失性高速缓冲存储器具有被配置为存储高速缓存数据的非易失性存储器部。在处理方法中,进行用于生成待机状态数据并在非易失性存储器部中存储所生成的待机状态数据的待机准备处理,作为供电中断的准备。此外,在供电恢复时,使用待机状态数据对存储在非易失性存储器部中的高速缓存数据进行恢复处理。
根据本发明的又一实施方式,提供了一种计算机系统,其包括处理器、非易失性高速缓冲存储器、电力控制电路和主存储器。电力控制电路被配置为控制对处理器和非易失性高速缓冲存储器的供电。
处理器被配置为通过非易失性高速缓冲存储器进行对主存储器的数据的读取和写入。此外,处理器被配置为当电力控制电路中断供电时,将请求转移到待机状态的待机信号发送至非易失性高速缓冲存储器。此外,处理器被配置为当电力控制电路恢复供电时,将请求恢复供电和转移至操作状态的恢复信号发送至非易失性高速缓冲存储器。
非易失性高速缓冲存储器具有非易失性存储器部和高速缓存控制器。非易失性存储器部被配置为存储高速缓存数据。高速缓存控制器被配置为控制对非易失性存储器部的高速缓存数据的读取和写入。此外,高速缓存控制器被配置为在接收到待机信号时,进行生成待机状态数据并将所生成的待机状态数据存储在非易失性存储器部中的待机准备处理。此外,高速缓存控制器被配置为在接收到恢复信号时,使用待机状态数据对存储在非易失性存储器部中的高速缓存数据进行恢复处理。
换言之,根据本发明的实施方式,非易失性高速缓冲存储器在供电中断时执行生成待机状态数据并在非易失性存储器部中存储所生成的待机状态数据的待机准备处理。例如,非易失性高速缓冲存储器存储具有错误纠正数据(ECC(错误纠正码)数据)或错误检测数据(EDC(错误检测码)数据)的待机状态数据。
然后,在供电恢复时,非易失性高速缓冲存储器使用待机状态数据对存储在非易失性存储器部中的高速缓存数据进行恢复处理,作为恢复操作。例如,非易失性高速缓冲存储器进行错误纠正处理或错误检测处理。因此,例如,即使在供电中断期间丢失了高速缓存数据,也能够在供电恢复之后使用正确的高速缓存数据来进行高速缓存操作。
根据本发明的实施方式,能够提高非易失性高速缓冲存储器的可靠性。这是因为即使非易失性高速缓冲存储器在待机状态下丢失了它的信息,其也可以通过检测和恢复信息来保持与主存储器的信息的一致性。
根据附图所示的以下最佳实施方式的详细描述,本发明的这些以及其他目的、特征和优点将变得更加显而易见。
附图说明
图1是根据本发明实施方式的计算机系统的框图;
图2是用于说明根据第一实施方式和第二实施方式的高速缓存线的示图;
图3是用于说明根据第一实施方式的处于操作状态下的高速缓存线的数据结构的示图;
图4是用于说明根据第一实施方式的处于待机状态下的高速缓存线的数据结构的示图;
图5是示出了根据第一实施方式的读取操作的流程图;
图6是示出了根据第一实施方式的写入操作的流程图;
图7是示出了根据第一实施方式的转移到待机状态的处理的流程图;
图8是示出了根据第一实施方式的恢复到操作状态的处理的流程图;
图9是用于说明根据第二实施方式的处于待机状态下的高速缓存线的数据结构的示图;
图10是用于说明根据第二实施方式的在转移到待机状态的过程中高速缓存线的分类的示图;
图11是示出了根据第二实施方式的转移到待机状态的过程的流程图;
图12是用于说明根据第三实施方式的高速缓存线的示图;
图13是用于说明根据第三实施方式的处于操作状态和待机状态下的高速缓存线的数据结构的示图;
图14是示出了根据第三实施方式的转移到待机状态的处理的流程图;
图15是用于说明根据第四实施方式的高速缓存线的示图;
图16是用于说明根据第四实施方式的处于待机状态下的高速缓存线的数据结构的示图;
图17是示出了根据第四实施方式的转移到待机状态的过程的流程图;
图18是示出了根据第四实施方式的恢复到操作状态的过程的流程图。
具体实施方式
下文中,将参照附图详细描述本发明的实施方式。然而,本发明不限于以下实施方式。请注意,将按以下顺序给出描述。
(1)实施方式的基本构造
(2)第一实施方式
(3)第二实施方式
(4)第三实施方式
(5)第四实施方式
(6)变形例
(1)实施方式的基本构造
图1示出了根据实施方式的计算机系统的构造。
图1所示的计算机系统具有处理器10、非易失性高速缓冲存储器11、主存储器12、电力控制电路13、内部总线14和系统总线15。
在计算机系统中,处理器10通过非易失性高速缓冲存储器11对主存储器12进行数据的读取和写入。
非易失性高速缓冲存储器11能够以高于主存储器12的速度进行数据的输入和输出。
电力控制电路13控制对处理器10和非易失性高速缓冲存储器11的供电的执行和中断。
首先,将描述非易失性高速缓冲存储器11。
如图1所示,非易失性高速缓冲存储器11具有管理数据的输入和输出的高速缓存控制器21和存储数据的非易失性存储器部22。
用于对处理器10进行数据的读取和写入的请求通过内部总线14传输至高速缓存控制器21。
高速缓存控制器21管理被称为高速缓存线的单元中的非易失性存储器部22的数据。
图2是以全相关映射(mapping)的方式示出高速缓存线CL的构造示例的示图。每条高速缓存线CL1、CL2,...CLn都具有标记区域和高速缓存数据区域。
在图2中,存储在每个标记区域中的标记信息被表示为“TG”,且存储在每个高速缓存数据区域中的高速缓存数据被表示为“CD”。表示每条高速缓存线的编号被添加至“TG”和“CD”。例如,高速缓存线CL1的标记信息被表示为“TG1”,且其高速缓存数据被表示为“CD1”。此外,高速缓存线CL2的标记信息被表示为“TG2”,且其高速缓存数据被表示为“CD2”。
如图2所示,作为主存储器12的数据的副本的高速缓存数据CD存储在每个高速缓存数据区域中。
标记信息TG存储在每个标记区域中。
每个标记信息TG包括表示主存储器12中的相应高速缓存数据CD的存储位置的信息(地址高阶位)和表示相应高速缓存线CL的状态的控制位。
没有必要存储所有的地址位作为存储在每个标记区域中的地址信息。例如,当每个高速缓存数据区域具有32字节的宽度时,不含低阶五位的高阶位地址存储在每个标记区域中。在这个意义上,地址信息在图2中被表示为“地址高阶位”。
存储在每个标记区域中的控制位包括ECC位Eb、有效位Vb和页面重写标志位(dirty bit)Db。
ECC位Eb是当非易失性高速缓冲存储器11处于待机状态下时使用的位,将在每个实施方式中对其进行详细描述。
有效位Vb是表示相应高速缓存线CL的有效性的位。当有效位Vb是1时,高速缓存控制器21可从高速缓存线CL的高速缓存数据区域中读取高速缓存数据CD。
页面重写标志位Db是表示相应高速缓存数据CD在被读取后发生改变的位。在其页面重写标志位为1的高速缓存线CL中,高速缓存数据CD不同于主存储器12的数据。因此,在释放高速缓存线CL时,需要将高速缓存数据CD写回主存储器12的相应地址,以保持数据与主存储器12的一致性。
在从处理器10接收到用于读取数据的请求时,高速缓存控制器21检索在非易失性存储器部22中是否存在相应有效高速缓存数据CD。如果在非易失性存储器部22中存在有效高速缓存数据CD,则高速缓存控制器21从高速非易失性存储器部22中读取高速缓存数据CD,并通过内部总线14将读取的高速缓存数据CD传输至处理器10。
如果在非易失性存储器部22中不存在有效高速缓存数据CD,则高速缓存控制器21通过系统总线15从主存储器12中读取相应高速缓存数据CD。然后,高速缓存控制器21通过内部总线14将所读取的高速缓存数据CD传输至处理器10,同时将所读取的高速缓存数据CD与其地址一起存储在非易失性存储器部22中。
返回参照图1,将继续进行描述。电力控制电路13控制时钟信号和电力是否被供应至处理器10和非易失性高速缓冲存储器11。处理器10具有节电功能,其中在该节电功能下,例如,当不存在要处理的命令时,处理器10转移到待机状态以中断时钟信号和电力的供应,以减少耗电。
当转移至待机状态时,处理器10将表示其将转移至待机状态的信号PW_OFF输出至电力控制电路13。
一旦接收到信号PW_OFF,电力控制电路13就将输入至处理器10的电力PW_COR4和时钟信号CLK_COR4以及输入至非易失性高速缓冲存储器11的电力PW_CACHE和时钟信号CLK_CACHE设定为低电平,以中断时钟信号和电力的供应。
此时,当中断供电时,保留在寄存器中的内部数据或保留在处理器10中的类似数据丢失。因此,期望的是使预先保存在非易失性高速缓冲存储器11或其本身的寄存器等中的这种数据为非易失性的。在国际公开号2009-028298的小册子中公开了使寄存器等为非易失性的方法。
非易失性高速缓冲存储器11将高速缓存数据CD存储在非易失性存储器部22中。因此,即使中断了供电,高速缓存数据CD原则上也会保留在非易失性存储器部22中。
然而,高速缓存数据CD被丢失的可能性取决于待机时间的长度。鉴于上述问题,在根据实施方式的计算机系统中,当处于待机状态时,非易失性高速缓冲存储器11将高速缓存线CL转换为具有用于待机状态的数据结构的高速缓存线。例如,当用于待机状态的每条高速缓存线CL具有错误纠正码时,即使在待机状态下丢失了数据,原始数据也会被恢复或使丢失的数据无效。因此,能够保持与主存储器12的数据的一致性。
当转移到待机状态时,处理器10将请求转移到待机状态的信号STBY输出至非易失性高速缓冲存储器11,之后将表示其将转移至待机状态的信号PW_OFF输出至电力控制电路13。
一旦接收到信号STBY,非易失性高速缓冲存储器11的高速缓存控制器21就进行待机准备处理,以将非易失性存储器部22内的高速缓存线CL转换为具有供待机状态时使用的数据结构的高速缓存线。如将在下面所详细描述的,高速缓存控制器21生成包含ECC数据或EDC数据的待机状态数据,并将所生成的待机状态数据存储在非易失性存储器部22中。
一旦高速缓存线CL至具有供待机状态时使用的数据结构的高速缓存线的转换完成之后,非易失性高速缓冲存储器11的高速缓存控制器21将表示转换已完成的信号STBYR输出至处理器10。
一旦接收到信号STBYR,处理器10确定非易失性高速缓冲存储器11已完成待机准备处理,以转移到待机状态,并因此将信号PW_OFF输出至电力控制电路13。
以上述方式进行随后的操作,且处理器10和非易失性高速缓冲存储器11转移到待机状态。
为了终止待机状态并恢复到操作状态,可使用从外部输入至电力控制电路13的信号INT。
一旦接收到信号INT,电力控制电路13就将输入至处理器10的电力PW_COR4和时钟信号CLK_COR4以及输入至非易失性高速缓冲存储器11的电力PW_CACHE和时钟信号CKL_CACHE启动,以恢复电力和时钟信号的供应。
一旦检测到电力和时钟信号的供应恢复,处理器10就将请求恢复到正常操作的信号R4S输出至非易失性高速缓冲存储器11。
一旦接收到信号R4S,非易失性高速缓冲存储器11的高速缓存控制器21就将非易失性高速缓冲存储器22内的高速缓存线CL重新转换为具有供操作状态时使用的数据结构的高速缓存线。
一旦完成高速缓存线CL至具有供操作状态时使用的数据结构的高速缓存线的重新转换之后,高速缓存控制器21就将重新转换已完成的信号R4SR输出至处理器10。
一旦接收到信号R4SR,处理器10确定非易失性高速缓冲存储器11已完成准备处理以转移至操作状态,并恢复正常操作。
注意,非易失性高速缓冲存储器11可检测时钟信号和电力的供应的恢复,并在不接收信号RES的情况下,将非易失性存储器部22内的高速缓存线CL重新转换为具有供操作状态时使用的数据结构的高速缓存线。
如上所述,非易失性存储器部22内的高速缓存线CL具有不同数据结构以对应于操作状态和待机状态。
换言之,非易失性高速缓冲存储器11进行待机准备处理,以生成含有EDC数据、ECC数据等的待机状态数据,并将生成的待机状态数据存储在非易失性存储器部22中,作为供电中断的准备。因此,在供电中断之后的待机状态下,使非易失性存储器部22具有包括待机状态数据的数据结构。
然后,在供电恢复时,非易失性高速缓冲存储器11使用所存储的待机状态数据进行存储在非易失性存储器部22中的高速缓存数据CD的恢复处理。如以下所述,非易失性高速缓冲存储器11进行例如错误纠正处理、错误检测处理和其它必要的处理。
因此,例如,即使在待机状态下丢失信息,也能够通过检测和恢复信息来保持与主存储器12的信息一致。即,至少有效高速缓存数据CD被设定为与主存储器12的数据一致。
换言之,根据第一实施方式至第四实施方式(将在下面描述)的非易失性高速缓冲存储器11具有用于存储高速缓存数据CD的非易失性存储器部22和高速缓存控制器21。高速缓存控制器21控制对非易失性存储器部22进行的高速缓存数据CD的读取和写入。此外,高速缓存控制器21进行待机准备处理,以生成待机状态数据,并将所生成的待机状态数据存储在非易失性存储器部22中,作为供电中断的准备。然后,在供电恢复时,高速缓存控制器21使用待机状态数据进行存储在非易失性存储器部22中的高速缓存数据CD的恢复处理。
在第一实施方式至第三实施方式中,高速缓存控制器21生成包含能够至少对存储在非易失性存储器部22中的高速缓存数据CD进行错误纠正的错误纠正数据(ECC数据)的待机状态数据,并将所生成的待机状态数据存储在非易失性存储器部22中,作为待机准备处理。然后,高速缓冲控制器21使用待机状态数据中的错误纠正数据对存储在非易失性存储器部22中的高速缓存数据CD进行错误纠正处理,作为恢复处理。
在第四实施方式中,高速缓存控制器21生成包含能够至少对存储在非易失性存储器部22中的高速缓存数据CD进行错误检测的错误检测数据(EDC数据)的待机状态数据,并将所生成的待机状态数据存储在非易失性存储器部22中,作为待机准备处理。然后,高速缓冲控制器21使用待机状态数据中的错误检测数据对存储在非易失性存储器部22中的高速缓存数据CD进行错误检测处理,作为恢复处理。
(2)第一实施方式
接下来,将描述第一实施方式。
在第一实施方式中,以图2中所述的方式构造高速缓存线CL。如图3和图4所示构造高速缓存线CL的数据结构,以对应于操作状态(供应电力的正常状态)和待机状态(供电中断的状态)。
图3示出操作状态下的高速缓存线CL。
在这种情况下,所有高速缓存线CL(CL1至CLm)都处于高速缓存线模式下。
在高速缓存线模式下,每条高速缓存线CL的控制位的ECC位Eb都被设定为“0”,这表示高速缓存线CL处于高速缓存线模式下。
每条高速缓存线CL的有效位Vb和页面重写标志位Db根据每条高速缓存线CL的状态来设定。在图3中,“×”表示“1”或“0”。
每条高速缓存线CL的地址高阶位存储有主存储器12的地址(主存储器地址)的必要高阶位,作为高速缓存数据CD的参照源,且高速缓存数据CD存储对应于主存储器地址的数据。
然后,当从操作状态转移到待机状态时,进行待机准备处理以将高速缓存线CL1至CLm分为高速缓存线模式下的高速缓存线CL和ECC模式下的高速缓存线CL。
ECC模式是指每条高速缓存线CL存储待机状态数据的状态。
在待机状态下,高速缓存线模式下的高速缓存线CL(例如,高速缓存线CL1、CL2等)具有与操作状态下的高速缓存线CL的数据结构相同的数据结构。
在处于ECC模式下的每条高速缓存线CL(例如,高速缓存线CLx)中,ECC位Eb被设定为“1”,这表示高速缓存线CL处于ECC模式下(即,这表示高速缓存线CL存储ECC数据作为待机状态数据)。
此外,在处于ECC模式下的每条高速缓存线CL中,高速缓存线CL的控制位的有效位Vb和页面重写标志位Db被设定为“0”。
此外,在处于ECC模式下的每条高速缓存线CL中,存储地址高阶位的区域和高速缓存数据区域的组合被新称为ECC区域。ECC区域包括存储高速缓存地址CA的高速缓存地址区域和存储ECC数据EC的ECC数据区域。
下面,将详细描述在类似这样的待机状态下使用这两种模式存储数据的方法。
如上所述,存在待机时间期间非易失性高速缓冲存储器中所存储的数据丢失的可能性。鉴于上述问题,根据本实施方式的非易失性高速缓冲存储器11使用错误纠正码(ECC)检测丢失的数据并在必要时纠正错误。
在待机状态下,高速缓存线模式下的每条高速缓存线CL的页面重写标志位Db、地址高阶位以及高速缓存数据CD构成ECC对象数据。然后,对ECC对象数据进行错误纠正编码,以获得ECC数据。
在此,ECC对象数据和ECC数据的组合是错误纠正码。在所产生的错误纠正码中,ECC对象数据(ECC奇偶校验)除外的部分是ECC数据。
ECC数据存储于处于ECC模式下的每条高速缓存线CL的ECC数据区域中。
此时,每条高速缓存线CL的地址(高速缓存地址CA)存储于高速缓存地址区域中,以显示ECC数据得自于哪条高速缓存线CL。
在图4所示的示例中,对应于高速缓存线CL1的ECC对象数据的ECC数据EC1和表示高速缓存线CL1的高速缓存地址CA1存储于与高速缓存线CL1不同的高速缓存线CLx中。
此外,对应于高速缓存线CL2的ECC对象数据的ECC数据EC2和表示高速缓存线CL2的高速缓存地址CA2也存储于高速缓存线CLx中。
在这种情况下,高速缓存地址CA的总位数量和ECC数据EC的数量被设定为小于ECC区域的位数量。
因此,每个ECC区域可成对地存储高速缓存地址CA和ECC数据EC。
作为示例,图4示出了存储两对高速缓存地址CA和ECC数据EC的情况。然而,高速缓存地址CA和ECC数据EC的对数不限于两个。例如,可存储一对或三对以上高速缓存地址CA和ECC数据EC。
接下来,描述将高速缓存线CL分配为处于高速缓存线模式和ECC模式的方法。
在高速缓存线模式下,通常对象为其有效位是1的有效高速缓存线CL。这是因为没有必要保留其有效位是0的高速缓存线CL,即,待机状态下的无效缓存线CL。
基本上,其有效位为0的无效高速缓存线CL被分配至ECC模式。
然而,如果要被分配至ECC模式的高速缓存线CL的数量大于无效高速缓存线CL的数量,则存储对应于所有有效高速缓存线CL的ECC数据EC的区域会变得不足。因此,有效高速缓存线CL被适当选择并分配至ECC模式。在这种情况下,将被分配至ECC模式的有效高速缓存线CL的有效位Vb设定为无效“0”。
在从有效高速缓存线CL中选择高速缓存线CL时,可使用正常高速缓冲存储器中使用的各种线替换方法。
例如,循环方法、LRU(最近很少使用)方法、随机方法等是可用的。
基于上述的选择,高速缓存线模式下的高速缓存线CL的ECC位Eb和有效位Vb分别变为“0”和“1”,而ECC模式下的高速缓存线CL的ECC位Eb和有效位Vb分别变为“1”和“0”。
在此,需考虑到以下事实:处于待机状态下时,在ECC位Eb和有效位Vb中也会发生错误。当高速缓存线模式下的高速缓存线CL的ECC位Eb变为待机状态下的“1”时,ECC位Eb和有效位Vb都会变为“1。”
因为这样的高速缓存线CL既不处于高速缓存线模式下,也不处于ECC模式下,所以它们是无效的。
类似地,当高速缓存线模式下的高速缓存线CL的有效位Vb变为“0”,ECC模式下的高速缓存线CL的ECC位Eb变为“0”,且ECC模式下的高速缓存线CL的有效位Vb变为“1”时,高速缓存线CL也失效。
因此,即使在不受错误纠正保护的ECC位Eb和有效位Vb中发生错误,也能够防止发生故障。
当由于供电恢复而从待机状态转移至操作状态时,从处于ECC模式下的那些高速缓存线中选择具有与处于高速缓存线模式下的高速缓存线CL的高速缓存地址相同的高速缓存地址CA的高速缓存线CL,以获取ECC数据EC。
然后,ECC对象数据和ECC数据EC组合在一起构成错误纠正码,以进行错误纠正。必要时,正确数据被写入ECC对象数据。视情况而定,由于在ECC位Eb和有效位Vb中发生错误,所以处于具有相同的高速缓存地址CA的ECC模式下的高速缓存线CL可能不会被找到。在这种情况下,因为难以进行错误纠正,所以使高速缓存线CL无效。
接下来,将描述由本实施方式中的高速缓存控制器21执行的处理。
首先,图5示出了在正常操作状态下,高速缓存控制器11从处理器10接收读取数据的请求的情况下的处理示例。
在步骤F101中,一旦从处理器10接收到读取地址A的请求,在步骤F102中,高速缓存控制器21确定在非易失性存储器部22中是否存在对应于地址A的有效高速缓存线CL。即,高速缓存控制器21确定其有效位Vb为“1”且地址A被存储为主存储器地址的高速缓存线CL是否存在。
如果存在有效高速缓存线CL,则高速缓存控制器21继续进行至步骤F103。在步骤F103中,高速缓存控制器21从高速缓存线CL获取高速缓存数据CD,并将所获取的高速缓存数据CD传输至处理器10。
即,在这种情况下,高速缓存控制器21将地址A的数据传输至处理器10而无需存取主存储器12,作为所谓的高速缓存命中(hit)传输。
另一方面,如果对应于地址A的有效高速缓存线CL不存在,则高速缓存控制器21继续进行至步骤F104。在步骤F104中,高速缓存控制器21从主存储器12读取地址A的数据D。
然后,在步骤F105中,高速缓存控制器21确定是否存在任何无效高速缓存线CL,以将从主存储器12中读取的数据D存储在非易失性存储器部22中。
如果存在无效高速缓存线CL,则在步骤F106中,高速缓存控制器21选择一条无效缓存线CL。
接下来,在步骤F110中,高速缓存控制器21将从主存储器12中读取的数据D和地址A新寄存于所选择的高速缓存线CL中。即,高速缓存控制器21在选择的高速缓存线CL中存储数据D作为高速缓存数据CD,并存储地址A作为主存储器地址。
此外,因为高速缓存线CL变为新的有效高速缓存线,所以高速缓存控制器21将高速缓存线CL的有效位Vb和页面重写标志位Db分别设定为“1”和“0”。
然后,在步骤F111中,高速缓存控制器21将数据D传输至处理器10。
即,在这种情况下,因为没有产生高速缓存命中,所以高速缓存控制器21将从主存储器12读取的数据D传输至处理器10。此外,高速缓存控制器21将从主存储器12读取的数据D存储于某些高速缓存线CL中,作为高速缓存数据CD。
另一方面,如果在步骤F105中确定不存在无效高速缓存线CL,则高速缓存控制器21继续进行至步骤F107。在步骤F107中,高速缓存控制器21选择一条有效高速缓存线CL。
接下来,在步骤F108中,高速缓存控制器21确定所选择的高速缓存线CL的页面重写标志位Db是否为“0。”
如果所选择的高速缓存线CL的页面重写标志位Db是“0”,则高速缓存控制器21继续进行至步骤F110和F111。在步骤F110和步骤F111中,高速缓存控制器21将数据D新寄存于高速缓存线CL中并将寄存的数据D传输到处理器10。
在这种情况下,高速缓存控制器21将寄存于某些有效高速缓存线CL中的高速缓存数据CD删除,并将从主存储器12新读取的数据D存储于其中,作为高速缓存数据CD。
此外,如果在步骤F108中确定所选择的高速缓存线CL的页面重写标志位Db是“1”,则高速缓存控制器21进行步骤F109的处理。在这种情况下,高速缓存线CL的高速缓存数据CD不同于从主存储器12读取的地址A的数据D。因此,高速缓存控制器21从高速缓存线CL读取高速缓存数据CD和主存储器地址,并将所读取的高速缓存数据CD和主存储器地址写回主存储器12。
因此,高速缓存控制器21在主存储器12中的地址A的数据上反映高速缓存数据CD的更新。
在此之后,高速缓存控制器21进行步骤F110和步骤F111的处理。
接下来,图6示出了在正常操作状态下,高速缓存控制器21从处理器10接收写入数据的请求的情况下的处理示例。
在步骤F201中,高速缓存控制器21从处理器10接收将数据D写入地址A中的请求。
首先,在步骤F202中,高速缓存控制器21确定在非易失性存储器部22中是否存在对应于地址A的有效高速缓存线CL。
如果在非易失性存储器部22中存在有效高速缓存线CL,则在步骤F203中,高速缓存控制器21将高速缓存线CL的高速缓存数据CD重写成从处理器10提供的数据D。即,高速缓存控制器21更新高速缓存线CL的高速缓存数据CD。此外,随着高速缓存数据CD的更新,高速缓存控制器21将高速缓存线CL的页面重写标志位Db和有效位Vb分别设定为“1”和“1”。
然后,在步骤F210中,高速缓存控制器21将数据D写入主存储器12的地址A中。
然而,没有必要在每次更新高速缓存线CL时更新主存储器12的数据。例如,如果在随后的某一阶段要进行主存储器12的数据更新,则没有必要在步骤F210中进行数据的写入。
此外,当在步骤F210中,在主存储器12上反映高速缓存数据CD的更新数据时,高速缓存控制器21将高速缓存线CL的页面重写标志位Db恢复到“0”。
如果在步骤F202中确定在非易失性存储器部22中不存在对应于地址A的有效高速缓存线CL,则高速缓存控制器21进行至步骤F204。在步骤F204中,高速缓存控制器21确定是否存在任何无效高速缓存线CL,以在非易失性存储器部22中存储数据D。
如果存在无效高速缓存线CL,则在步骤F205中,高速缓存控制器21选择一条无效高速缓存线CL。
接下来,在步骤F209中,高速缓存控制器21将地址A和数据D新寄存于所选择的高速缓存线CL中。即,高速缓存控制器21在所选择的高速缓存线CL中存储数据D作为缓存数据CD并存储地址A作为主存储器地址。
此外,因为高速缓存线CL变为新的有效高速缓存线,所以高速缓存控制器21将高速缓存线CL的有效位Vb设定为“1”。此外,因为新数据D(高速缓存数据CD)在此阶段不对应于主存储器12的地址A的数据,所以高速缓存控制器21将高速缓存线CL的页面重写标志位Db设定为“1”。
然后,在步骤F210中,高速缓存控制器21将数据D写入主存储器12的地址A中。在这种情况下,高速缓存控制器21将高速缓存线CL的页面重写标志位Db恢复为“0”。
可替换地,高速缓存控制器21在该阶段可以不执行步骤F210的处理。
如果在步骤F204中确定不存在无效高速缓存线CL,则在步骤F206中,高速缓存控制器21选择一条有效高速缓存线CL。
接下来,在步骤F207中,高速缓存控制器21确定所选择的有效高速缓存线CL的页面重写标志位Db是否为“0”。
如果在步骤F207中确定所选择的有效高速缓存线CL的页面重写标志位Db是“0”,则高速缓存控制器21将数据CD新寄存在高速缓存线CL中,如步骤F209中的那样。此外,在步骤F210中,高速缓存控制器21将数据CD写入主存储器12中(或在此阶段不写入数据CD)。
在这种情况下,高速缓存控制器21将寄存在某些有效高速缓存线CL中的高速缓存数据CD删除,并在其中新寄存所写入的数据D作为缓存数据CD。
此外,如果在步骤F207中确定所选择的高速缓存线CL的页面重写标志位Db是“1”,则高速缓存控制器21执行步骤F208的处理。在这种情况下,高速缓存数据CD与从主存储器12读取的地址A的数据D不同。因此,高速缓存控制器21从高速缓存线CL读取高速缓存数据CD和主存储器地址,并将读取的高速缓存数据CD和主存储器地址写回主存储器12中的地址A中。
因此,高速缓存控制器21在主存储器12中的地址A的数据上反映高速缓存数据CD的更新。
在此之后,高速缓存控制器21执行步骤F209(和F210)的处理。
接下来,图7示出了在从正常操作状态转移至待机状态的过程中,高速缓存控制器21从处理器10接收待机信号的情况下的处理示例,即,高速缓存控制器21的待机准备处理的示例。
在步骤F301中,高速缓存控制器21从处理器10接收待机信号。
首先,在步骤F302中,高速缓存控制器21计数非易失性存储器部22中的有效高速缓存线CL的数量。换言之,高速缓存控制器21计数其有效位Vb是“1”的高速缓存线CL的数量。高速缓存控制器21计数的数量作为有效高速缓存线的数量(V)。
接下来,在步骤F303中,高速缓存控制器21计算ECC模式所需的高速缓存线CL的数量。所需的高速缓存线CL的数量被表示为E。
如果采用其中两条高速缓存线CL的ECC数据EC和高速缓存地址CA都存储于处于ECC模式下的一条高速缓存线CL中的数据结构(如图4的示例中所示),则建立关系式E=V/2。
然后,在步骤F304中,高速缓存控制器21确定无效高速缓存线CL的数量(I)是否大于所需的高速缓存线CL的数量(E)。
无效高速缓存线CL的数量(I)计算如下:
I=(总高速缓存线CL的数量)-V
在关系式I≥E成立的情况下,可使用无效高速缓存线CL(I)形成ECC模式下的高速缓存线CL。
接下来,高速缓存控制器21进行到步骤F309。在步骤F309中,高速缓存控制器21选择E条无效高速缓存线CL(I)。
高速缓存控制器21将所选择的E条高速缓存线CL的所有ECC位Eb和页面重写标志位Db分别设定为“1”和“0”。
在步骤F310中,高速缓存控制器21计算每条有效高速缓存线CL的ECC数据EC(Ⅴ)。
例如,当高速缓存线CL1、CL2、CL5、CL6、CL7和CL10作为有效高速缓存线CL存在时,高速缓存控制器21计算高速缓存线CL1、CL2、CL5、CL6、CL7和EC10的ECC数据EC1、EC2、EC5、EC6、EC7和CL10。
然后,在步骤F311中,高速缓存控制器21将高速缓存地址CA和ECC数据EC写入在步骤F309中选择的高速缓存线CL中。
例如,假设选择高速缓存线CL15、CL16和CL17用于ECC模式。在这种情况下,高速缓存控制器21例如在高速缓存线CL15中写入对应于高速缓存线CL1和CL2的ECC数据EC1和EC2以及高速缓存地址CA1和CA2。此外,高速缓存控制器21在高速缓存线CL16中写入对应于高速缓存线CL5和CL6的ECC数据EC5和EC6和高速缓存地址CA5和CA6。此外,高速缓存控制器21在高速缓存线CL17中写入对应于高速缓存线CL7和CL10的ECC数据EC7和EC10和高速缓存地址CA7与CA10。
因此,高速缓存控制器21将高速缓存线CL15、CL16和CL17转换为具有供ECC模式时使用的数据结构的高速缓存线。
如上所述,高速缓存控制器21在非易失性存储器部22中完成待机准备处理。因此,高速缓存控制器21在步骤F312中将待机完成信号传输至处理器10,以完成一系列的处理。
另一方面,如果在步骤F304中确定无效高速缓存线CL的数量(Ⅰ)小于所需的高速缓存线CL的数量(E),则仅使用无效高速缓存线CL(I)会变得不足够。
在这种情况下,高速缓存控制器21进行到步骤F305。
首先,在步骤F305中,高速缓存控制器21选择(E-I)条有效高速缓存线CL。
然后,在步骤F306中,高速缓存控制器21确定所选择的(E-I)条高速缓存线CL的页面重写标志位Db是否为“0”。
如果在步骤F306中确定所有(E-I)条高速缓存线CL的页面重写标志位Db是“0”,则高速缓存控制器21直接进行到步骤F308。在步骤F308中,高速缓存控制器21将所选择的高速缓存线CL的有效位Vb设定为“0”。即,高速缓存控制器21使所选择的高速缓存线CL的有效位Vb无效。因为高速缓存线CL仅仅是图1所示的计算机系统中存储高速缓存的区域,所以在使有效高速缓存线CL无效(删除高速缓存数据CD)上没有问题。这是因为仅删除了一些高速缓存。
接下来,高速缓存控制器21再次进行步骤F302和F303的处理。如果在步骤F304中,无效高速缓存线CL的数量(Ⅰ)变得大于所需的高速缓存线CL的数量(E),则高速缓存控制器21进行步骤F309至F312的处理。
此外,如果在步骤F306中确定在所选择的(E-I)条高速缓存线CL中存在其页面重写标志位Db是“1”的一些缓存线CL,则高速缓存控制器21进行步骤F307的处理。在这种情况下,所选择的高速缓存线CL中的其页面重写标志位Db是“1”的高速缓存线CL的高速缓存数据CD与主存储器12的数据不同。因此,高速缓存控制器21从高速缓存线CL读取高速缓存数据CD和主存储器地址,并将读取的高速缓存数据CD和主存储器地址写回主存储器12。
因此,高速缓存控制器21在主存储器12的数据上反映高速缓存数据CD的更新。
在此之后,高速缓存控制器21再次通过步骤F308的处理进行步骤F302和F303的处理。然后,如果在步骤F304中,无效高速缓存线CL的数量(Ⅰ)变得大于所需的高速缓存线CL的数量(E),则高速缓存控制器21进行步骤F309至步骤F312的处理。
注意,在步骤F305中选择的有效高速缓存线CL的数量(Ⅴ)(即,要被无效的高速缓存线CL的数量)是固定值,如一或二,并且可以在某一个阶段重复执行处理以获得步骤F304中的正面结果。
接下来,图8示出了在从待机状态转移至操作状态的过程中高速缓存控制器21从处理器10接收恢复信号的情况下的处理示例,即,高速缓存控制器21的恢复处理的示例。
在步骤F401中,高速缓存控制器21从处理器10接收恢复信号。
在步骤F402中,高速缓存控制器21从非易失性存储器部22中选择处于高速缓存线模式下的一条高速缓存线CL。
在步骤F403中,高速缓存控制器21选择其中存储有所选择的高速缓存线CL的高速缓存地址CA并处于ECC模式下的高速缓存线CL。
在步骤F404中,高速缓存控制器21从在步骤403中选择的处于ECC模式下的高速缓存线CL中读取对应于在步骤F402中选择的处于高速缓存线模式下的高速缓存线CL的ECC数据EC,以对处于高速缓存线模式下的高速缓存线CL进行错误纠正处理。
例如,当应用至图4所示的状态,上述处理如下进行。
高速缓存控制器21在步骤F402中选择高速缓存线CL1,然后在步骤F403中选择存储有表示高速缓存线CL1的高速缓存地址CA1并处于ECC模式下的高速缓存线CLX。接下来,在步骤F404中,高速缓存控制器21读取存储于高速缓存线CLX的ECC数据EC1,并使用ECC数据EC1进行高速缓存线CL1的ECC对象数据的错误纠正处理。
在步骤F405中,高速缓存控制器21确定是否对处于高速缓存线模式下的所有高速缓存线CL进行了步骤F402至步骤F404的错误纠正处理。如果没有,则高速缓存控制器21返回至步骤F402以对处于高速缓存线模式下的剩余高速缓存线CL进行步骤F402至步骤F404的处理。在图4所示的示例的情况下,高速缓存控制器21接下来以相同的方式进行高速缓存线CL2的错误纠正处理。
当已经对处于高速缓存线模式下的所有高速缓存线CL进行了步骤F402至步骤F404的错误纠正处理,则高速缓存控制器21进行到步骤F406。在步骤F406中,高速缓存控制器21将处于ECC模式下的所有高速缓存线CL的ECC位Eb设定为“0”,以仅变为无效缓存线CL。
然后,在步骤F407中,高速缓存控制器21将恢复完成信号传输至处理器10,以完成一系列的处理。
如上所述,在第一实施方式中,非易失性存储器部22具有用于存储高速缓存数据CD的多条高速缓存线CL。高速缓存控制器21为至少一些高速缓存线CL生成待机状态数据,其中每个待机状态数据包含能够对存储在每条高速缓存线CL中的高速缓存数据CD进行错误纠正的错误纠正数据(ECC数据EC),将待机状态数据CD存储在另一条高速缓存线CL(ECC模式下的高速缓存线CL)中,并使另一条高速缓存线CL处于表示它们存储待机状态数据的状态(将ECC位Eb设定为“1”),作为待机准备处理。
包含错误纠正数据的待机状态数据进一步包含用于存储高速缓存数据CD的每条高速缓存线CL的地址信息CA,使用错误纠正数据对该高速缓存数据CD进行错误纠正。
在第一实施方式中,高速缓存控制器21计算转移至待机状态之前有效高速缓存线CL的ECC数据EC,并将ECC数据EC存储在无效高速缓存线CL中。因此,即使在待机状态下丢失数据,也能够以恢复操作纠正数据。
注意,可以不进行步骤F406的处理。即,ECC模式下的高速缓存线CL可保留为原样一定时间。例如,保留ECC模式下的高速缓存线CL,直到高速缓存线CL在正常高速缓存操作中用完,并且可根据需要而使用。
因此,如果ECC模式下的高速缓存线CL保留原样,则当在瞬时断电等的情况下难以进行待机准备处理时,可以获得在其恢复时间经过错误纠正的高速缓存线CL的存在。
(3)第二实施方式
接下来,将描述第二实施方式。注意,将省略与第一实施方式的那些部分相同的部分的描述。
第二实施方式指的是其中高速缓存控制器21在对应于将高速缓存数据CD作为待机状态数据的对象存储的高速缓存线CL的区域中存储用作待机状态数据的ECC数据EC的示例。
如在第一实施方式中,以如图2所示的方法构造第二实施方式中的高速缓存线CL。此外,如图3和图9所示构造高速缓存线CL的数据结构,以对应于操作状态和待机状态。
第二实施方式与第一实施方式相同之处在于,当处于操作状态下时,所有高速缓存线CL进入如图3所示的高速缓存线模式。
此外,第二实施方式与第一实施方式的相同之处在于,在从操作状态转移到待机状态的过程中,高速缓存线CL被分为高速缓存线模式下的高速缓存线CL和ECC模式下的高速缓存线CL。
在第二实施方式中,在处于ECC模式下的每条高速缓存线CL中,控制位的区域以外的区域被设定为ECC数据区域,如图9所示。即,通过图4和图9之间的比较显然的是,ECC模式下的每条高速缓存线CL都没有高速缓存地址区域,如图9所示。
注意,ECC数据区域的功能和构造控制位的方法与第一实施方式的那些相同。
如上所述,在第二实施方式中,ECC模式下的每条高速缓存线CL都没有高速缓存地址区域。因此,以下列方式使ECC数据区域对应于高速缓存线CL。
图10是示出了在转移到待机状态的过程中高速缓存线的分类的示图。
在操作状态下,有效高速缓存线CL(有效位Vb=1)和无效高速缓存线CL(有效位Vb=0)一起存在。
在转移到待机状态的过程中,以高速缓存地址CA的顺序(以从高速缓存线CL1至高速缓存线CL8的顺序)分类有效高速缓存线CL。
分类有效高速缓存线CL(高速缓存线CL1到CL8)的区域被称为高速缓存线模式区域。
此外,在有效缓存线CL1至CL8之后分类无效高速缓存线CL(高速缓存线CL9至CL12)。分类无效高速缓存线CL9到CL12的区域被称为ECC模式区域。
在此,使高速缓存线CL的位置一一对应于ECC数据EC的位置,以使得对应于高速缓存线CL1的ECC数据EC1定位于高速缓存线CL9的前半部分中,对应于高速缓存线CL2的ECC数据EC2定位于高速缓存线CL9的后半部分中,对应于高速缓存线CL3的ECC数据EC3定位于高速缓存线CL10的前半部分中,等。
因此,没有必要将高速缓存地址CA存储在处于ECC模式下的高速缓存线CL中。
注意,在该示例中,每条高速缓存线CL都存储两个ECC数据EC,但是可以存储一个或三个以上ECC数据EC。
当高速缓存线CL的总数表示为T,而且使存储在每条高速缓存线CL中的ECC数据EC的个数表示为N时,高速缓存线模式区域中的高速缓存线CL的数量(C)满足关系式C+C/N=T。换言之,关系式C=NT/(N+1)成立。
因为在图10所示的示例中,使存储在每条高速缓存线CL中的ECC数据EC的条数为二(即,N=2),且高速缓存线CL的总数为12(即,T=12),所以高速缓存线模式区域中的高速缓存线CL的数量是8(即,C=8)。此时,为高速缓存线模式区域分配高速缓存线CL1至CL8,而为ECC模式区域分配高速缓存线CL9至CL12。
图11是示出了第二实施方式中的待机准备处理的流程图。
在步骤F501中,高速缓存控制器21从处理器10接收待机信号。
然后,在步骤F502中,高速缓存控制器21计数非易失性存储器部22中的有效高速缓存线CL的数量。换言之,高速缓存控制器21计数其有效位为“1”的高速缓存线CL的数量。高速缓存控制器21计数的数量作为有效高速缓存线CL的数量(Ⅴ)。
接下来,在步骤F503中,高速缓存控制器21确定高速缓存线模式区域中的高速缓存线CL的数量(C)是否大于有效高速缓存线CL的数量(Ⅴ)。
如果关系式C≥V成立,则高速缓存控制器21进行到步骤F508。在步骤F508中,高速缓存控制器21从高速缓存线模式区域开始逐一分类有效高速缓存线CL。
然后,在步骤F509中,高速缓存控制器21计算ECC模式所需的高速缓存线CL的数量(E)。
接下来,在步骤F510中,高速缓存控制器21从ECC模式区域开始将高速缓存线CL的ECC位Eb和页面重写标志位Db分别设定为“1”和“0”。即,高速缓存控制器21形成处于ECC模式下的高速缓存线CL。
然后,在步骤F511中,高速缓存控制器21计算每个有效高速缓存线CL的ECC数据EC。
接下来,在步骤F512中,高速缓存控制器21将ECC数据EC写入相应高速缓存线CL中,如图10所示。
因此,高速缓存控制器21形成ECC数据区域所需的处于ECC模式下的高速缓存线CL。
因此完成非易失性存储器部22的待机准备处理,并且高速缓存控制器21在步骤F513中将待机完成信号传输到处理器10,以完成一系列的处理。
另一方面,如果在步骤F503中高速缓存线模式区域中的高速缓存线CL的数量(C)小于有效高速缓存线CL的数量(Ⅴ),则高速缓存控制器21进行到步骤F504。
首先,在步骤F504中,高速缓存控制器21选择(V-C)条有效高速缓存线CL。
然后,在步骤F505中,高速缓存控制器21确定所选择的(V-C)条高速缓存线CL中的每一条的页面重写标志位Db是否为“0”。
如果所有的(V-C)条高速缓存线CL的页面重写标志位Db是“0”,则高速缓存控制器21直接进行到步骤F507。在步骤F507中,高速缓存控制器21将所选择的高速缓存线CL的有效位Vb设定为“0”。即,高速缓存控制器21使所选择的高速缓存线CL的有效位Vb无效。
接下来,高速缓存控制器21再次进行步骤F502的处理。然后,如果在步骤F503中关系式C≥V成立,则高速缓存控制器21进行步骤F508至步骤F513的处理。
此外,如果在步骤F505确定在所选择的(Ⅴ-C)条高速缓存线CL中存在其页面重写标志位Db是“1”的高速缓存线CL,则高速缓存控制器21进行步骤F506的处理。在这种情况下,所选择的高速缓存线CL中的其页面重写标志位Db是“1”的高速缓存线CL的高速缓存数据CD与主存储器12的数据不同。因此,高速缓存控制器21从高速缓存线CL中读取高速缓存数据CD和主存储器地址,并将读取的高速缓存数据CD和主存储器地址写回主存储器12。
因此,高速缓存控制器21在主存储器12的数据块上反映高速缓存数据CD块的更新。
在此之后,高速缓存控制器21再次通过步骤F507的处理进行步骤502的处理。然后,如果在步骤F503中关系式C≥V成立,则高速缓存控制器21进行步骤F508至步骤F513的处理。
第二实施方式的恢复处理基本上与图8所示的第一实施方式的恢复处理相同。第一实施方式和第二实施方式之间的恢复处理的区别在于,在图8的步骤F403中进行的对处于ECC模式下的相应高速缓存线CL的选择不是基于高速缓存地址CA的而是唯一确定的,如在第二实施方式中的图10所示。
上述第二实施方式产生与第一实施方式的那些效果相同的效果。此外,由于处于ECC模式下的高速缓存线CL不需要存储高速缓存地址CA,所以它们对于存储ECC数据EC是高效的。例如,第二实施方式是有利的原因在于,利用处于ECC模式下的一条高速缓冲线CL能够对应于处于高速缓冲线模式下的更多条高速缓冲线CL,或能够提高ECC奇偶校验性的冗余性,从而增强纠正性能。
(4)第三实施方式
接下来,将描述第三实施方式。注意,将省略与第一实施方式的那些部分相同的部分的描述。
在第三实施方式中,以如图12所示的方式构造高速缓存线CL。此外,如图13所示构造高速缓存线CL的数据结构,以对应于操作状态和待机状态。
如图12所示,每条高速缓存线CL都包括除了第一实施方式的构造之外的ECC数据区域。
如图13所示,在操作状态下,对每条高速缓存线CL的标记区域和高速缓存数据区域进行数据的输入和输出,但不对其ECC数据区域进行数据的输入和输出。
在转移到待机状态的过程中,所有有效高速缓存线CL进入高速缓存线CL的ECC位Eb被设定为“1”的ECC模式。换言之,高速缓存线CL的ECC位Eb和有效位Vb都变为“1”。
每条高速缓存线CL的页面重写标志位Db、地址高阶位(主存储器地址)和高速缓存数据CD构成要经受错误纠正的ECC对象数据。
ECC数据基于ECC对象数据被计算,并存储于相同高速缓存线CL的每个ECC数据区域中。
因为ECC对象数据和ECC数据一起存在于每条高速缓存线CL中,所以没有必要存储高速缓存地址CA。
在恢复到操作状态的过程中,ECC对象数据和ECC数据被组合到一起以构成错误纠正码,来对其ECC位Eb和有效位Vb都为“1”的每条缓存线CL进行错误纠正对。必要时,在ECC对象数据中写入正确数据。如果在待机状态下高速缓存线CL的任何ECC位和有效位都变为“0”,则高速缓存线CL是无效的。
因此,不需要进行扫描来找到ECC数据EC存在于每条高速缓存线CL的什么地方。
此外,因为每条高速缓存线CL都具有ECC数据区域,所以能够防止这样的情况:使有效缓存线CL进入ECC模式,以应付无效高速缓存线CL的不足。
图14是示出了第三实施方式中的待机准备处理的流程图。
在步骤F601中,高速缓存控制器21从处理器10接收待机信号。
然后,在步骤F602中,高速缓存控制器21选择非易失性存储器部22中的一条有效高速缓存线CL。
接下来,在步骤F603中,高速缓存控制器21将所选择的高速缓存线CL的ECC位Eb设定为“1”。即,高速缓存控制器21将所选择的高速缓存线CL转换成处于ECC模式下的高速缓存线CL。
在步骤F604中,高速缓存控制器21计算所选择的高速缓存线CL的ECC数据EC。
然后,在步骤F605中,高速缓存控制器21将ECC数据EC写入高速缓存线CL的ECC数据区域中。
因此,高速缓存控制器21将有效高速缓存线CL转换为处于ECC模式下的高速缓存线CL。
在步骤F606中,高速缓存控制器21确定是否已经对所有有效高速缓存线CL执行了步骤F602至步骤F605的处理。如果没有,则高速缓存控制器21返回到步骤F602,以对处于高速缓存线模式下的剩余高速缓存线CL进行步骤F602至步骤F605的处理。
在步骤F602至步骤F605的处理中,将处于高速缓存线模式下的所有高速缓存线CL转换到处于ECC模式下的高速缓存线CL之后,高速缓存控制器21进行到步骤F607。在步骤F607中,高速缓存控制器21将待机完成信号传输至处理器10,以完成一系列的处理。
可以与图8所示的第一实施方式的方式相同的方式进行第三实施方式的恢复处理。然而,第一实施方式和第三实施方式的恢复处理之间的差异在于:在第三实施方式中,在图8中的步骤F402的处理中选择处于ECC模式下的一条高速缓存线CL,并去除图8中的步骤F403的处理。此外,在步骤F404的处理中,使用所选择的高速缓存线CL的ECC数据对处于ECC模式下的高速缓存线CL进行错误纠正。
即,因为ECC数据EC存储于高速缓存线CL中以进行错误纠正,所以可简化恢复处理。
如上所述,在第三实施方式中,非易失性存储器部22具有多条高速缓存线CL,每条高速缓存线CL包括高速缓存数据区域和待机状态数据区域(ECC数据区域)。
高速缓存控制器21为至少一些高速缓存线CL生成待机状态数据,其中每个待机状态数据都包含能够对存储在每条高速缓存线CL中的高速缓存数据进行错误纠正的错误纠正数据,作为待机准备处理。然后,高速缓存控制器21将待机状态数据存储在待机状态数据区域中。此外,高速缓存控制器21使高速缓存线CL处于表示高速缓存线CL存储有待机状态数据的状态(即,高速缓存控制器21将高速缓存线CL的ECC位Eb设定为“1”)。
第三实施方式也产生与第一实施方式和第二实施方式的那些效果相同的效果。此外,可以简化待机准备处理和恢复处理。此外,不必使有效高速缓存线CL无效以应对待机准备处理时高速缓存线CL的不足。
(5)第四实施方式
接下来,将描述第四实施方式。本实施方式指的是其中EDC数据(错误检测数据)用作待机状态数据的示例。
图15示出了高速缓存线CL的数据结构。在第四实施方式的数据结构中,由EDC位EDb代替图2所示的第一实施方式的数据结构的ECC位Eb。
EDC位EDb的位是在非易失性高速缓冲存储器11处于待机状态下使用的并表示高速缓存线CL进入EDC模式的位。在其它方面,第四实施方式的高速缓存线CL的数据结构与图3示出的第一实施方式的高速缓存线CL的数据结构相同。
在操作模式下,所有高速缓存线CL都进入如图3所示的高速缓存线模式。
此外,当从操作状态转移至待机状态时,高速缓存线CL被分为高速缓存线模式下的高速缓存线CL和EDC模式下的高速缓存线CL。
在第四实施方式中,EDC模式下的每条高速缓存线CL的EDC位EDb被设定为“1”,且其有效位Vb和页面重写标志位Db被设定为“0”,如图16所示。
此外,EDC模式下的每条高速缓存线CL的控制位的区域以外的区域被称为EDC区域。EDC区域包括存储高速缓存地址CA的高速缓存地址区域和存储EDC数据ED的EDC数据区域。
在图16所示的数据结构中,基本上由EDC数据ED替换第一实施方式的ECC数据EC,且第四实施方式的高速缓存线CL的基本结构和数据内容与图4中所示的第一实施方式的高速缓存线CL的那些相同。
在待机状态下,高速缓存线模式下的每条高速缓存线CL的页面重写标志位Db、地址高阶位和高速缓存数据CD构成EDC对象数据。然后,EDC对象数据经受错误检测编码,以获得EDC数据ED。
在此,EDC对象数据和EDC数据的组合是错误纠正码。在所产生的错误纠正码中,EDC对象数据之外的部分(EDC奇偶校验)是EDC数据。
EDC数据存储于处于EDC模式下的每条高速缓存线CL的EDC数据区域中。
此时,每条高速缓存线CL的地址(高速缓存地址CA)存储于高速缓存地址区域中,以显示EDC数据得自哪条高速缓存线CL。
图17示出在从正常操作状态转移至待机状态的过程中,高速缓存控制器21从处理器10接收待机信号的情况下的处理示例,即,高速缓存控制器21的待机准备处理的示例。处理的基本流程与图7所示的处理的基本流程相同。
在步骤F701中,高速缓存控制器21从处理器10接收待机信号。
在步骤F702中,高速缓存控制器21计数非易失性存储器部22中的有效高速缓存线CL的数量。
接下来,在步骤F703中,高速缓存控制器21计算EDC模式所需的高速缓存线CL的数量。所需的高速缓存线CL的数量被表示为E。
然后,在步骤F704中,高速缓存控制器21确定无效高速缓存线CL的数量(Ⅰ)是否大于所需的高速缓存线CL的数量(E)。
在关系式I≥E成立的情况下,可以使用无效高速缓存线CL来形成处于EDC模式下的高速缓存线CL。因此,高速缓存控制器21进行到步骤F709。在步骤F709中,高速缓存控制器21选择E条无效高速缓存线CL。高速缓存控制器21将所选择的E条高速缓存线CL的所有EDC位EDb和页面重写标志位Db分别设定为“1”和“0”。
在步骤F710中,高速缓存控制器21计算每条有效高速缓存线CL的EDC数据ED。
然后,在步骤F711中,高速缓存控制器21将高速缓存地址CA和EDC数据ED写入在步骤F709中选择的高速缓存线CL中。
高速缓存控制器21在非易失性存储器部22中完成待机准备处理,如上所述。因此,高速缓存控制器21在步骤F712中将待机完成信号传输至处理器10,以完成一系列的处理。
另一方面,如果在步骤F704中,无效高速缓存线CL的数量(Ⅰ)小于所需的高速缓存线CL的数量(E),则高速缓存控制器21进行到步骤F705。注意,步骤F705至步骤F708的处理与图7所示的步骤F305至步骤F308的那些处理相同,因此将省略其说明。
接下来,图18示出当在从待机状态转移至操作状态的过程中从处理器10接收到恢复信号时,高速缓存控制器21的处理示例,即,高速缓存控制器21的恢复处理的示例。
在步骤F901中,高速缓存控制器21从处理器10接收恢复信号。
在步骤F902中,高速缓存控制器21从非易失性存储器部22中选择处于高速缓存线模式下的高速缓存线CL。
在步骤F903中,高速缓存控制器21选择其中存储有所选择的高速缓存线CL的高速缓存地址CA并处于EDC模式下的高速缓存线CL。
在步骤F904中,高速缓存控制器21从在步骤F903中选择的处于EDC模式下的高速缓存线CL读取对应于在步骤F902中选择的处于高速缓存线模式下的高速缓存线CL的EDC数据ED,以进行处于高速缓存线模式下的高速缓存线CL的错误检测处理。
如果从高速缓存线CL中没有检测到错误,则高速缓存线模式下的高速缓存线CL不会发生数据丢失等,且表示高速缓存线CL处于正常状态。
另一方面,如果从高速缓存线CL中检测到错误,则高速缓存线CL遭受任何问题,且高速缓存线CL的数据内容(EDC对象数据的内容)变得不正确。
因此,如果检测到错误,则高速缓存控制器21从步骤F905进行到步骤F906,以使高速缓存线CL无效。具体地,高速缓存控制器21将高速缓存线CL的有效位Vb设定为“0。”
如果没有检测到错误,则高速缓存控制器21保留高速缓存线CL为原样。
在步骤F907中,高速缓存控制器21确定是否对处于高速缓存线模式下的所有高速缓存线CL进行了错误检测处理。如果没有,则高速缓存控制器21返回到步骤F902,以对高速缓存线模式下的剩余高速缓存线CL进行步骤F902至步骤F906的处理。
当对处于高速缓存线模式下的所有高速缓存线CL进行了错误检测处理,则高速缓存控制器21进行到步骤F908。在步骤F908中,高速缓存控制器21将EDC模式下的所有高速缓存线CL的EDC位EDb设定为“0”,以仅变为无效缓存线CL。
然后,在步骤F909中,高速缓存控制器21将恢复完成信号传输至处理器10,以完成一系列的处理。
如在上述第四实施方式中,EDC数据ED可用作待机状态数据。
如果在恢复处理中从任一条高速缓存线CL中检测到错误,则高速缓存控制器21使该高速缓存线CL无效,以防止在随后的阶段使用不正确的高速缓存数据。
与ECC数据区域相比,EDC数据区域可具有每条高速缓存线的更少奇偶校验区域。
注意,如果从高速缓存线CL中检测到错误,则高速缓存控制器21使高速缓存线CL无效。然而,在这种情况下,因为高速缓存控制器21使其页面重写标志位Db为“1”的高速缓存线CL无效,所以存在在主存储器12上不反映非易失性高速缓冲存储器11中的数据更新的可能性。为了防止该问题,因此,期望的是在进行至接收待机信号和转换数据的处理之前,将其页面重写标志位Db是“1”的所有高速缓存线CL的数据写回主存储器12。
(6)变形例
本发明并不限于上述实施方式,而是在不背离本发明范围的前提下,可以采用各种其它构造。
在各个实施方式中,还能够在进行至接收待机信号和转换数据的处理之前,将其页面重写标志位Db是“1”的所有高速缓存线CL的数据写回主存储器12。在高速缓存线CL的数据被写回主存储器12之后,高速缓存线CL的页面重写标志位Db被设定为“0”。因此,每次有效高速缓存线CL分配至ECC模式(或EDC模式)时检查高速缓存线CL的页面重写标志位Db变得不是必要的。
此外,第四实施方式指的是将使用EDC数据ED的示例应用至与第一实施方式的数据结构相同的数据结构的情况。然而,当然,假设对与第二实施方式和第三实施方式的那些数据结构相同的数据结构应用EDC数据而不是ECC数据。
此外,在各个实施方式中,高速缓存控制器21在接收来自处理器10的待机信号时(紧接着电力中断之前),进行待机准备处理以生成待机状态数据并将所生成的待机状态数据存储在非易失性存储器部22中,作为供电中断的准备。然而,高速缓存控制器21可以在其它定时进行待机准备处理。
例如,高速缓存控制器21可基本定期地进行待机准备处理。然而,可不必反映紧接着电力中断之前的高速缓存数据CD的内容。因此,当在紧接着电力中断之前的时间之外的时间进行待机准备处理时,须在后来管理处于ECC模式(或EDC模式)下的高速缓存线CL的有效性和无效性。
此外,例如,在电池驱动的计算机系统等中,非易失性高速缓冲存储器11可检测电力电压状态并紧接着供电中断之前自动进行待机准备处理。
可在第一高速缓存操作之前恢复之后进行恢复处理。因此,可基于来自处理器10的恢复信号以外的信号进行恢复处理。
此外,为了进行处理而不是错误纠正处理或错误检测处理的目的,还能够改变高速缓存线CL的数据结构,以对应于操作状态和待机状态。
注意,本发明还可以采用以下构造。
(1)一种非易失性高速缓冲存储器,包括:
非易失性存储器部,被配置为存储高速缓存数据;以及
高速缓存控制器,被配置为:
控制对所述非易失性存储器部进行的所述高速缓存数据的读取和写入,
执行用于生成待机状态数据并将所生成的待机状态数据存储在所述非易失性存储器部中的待机准备处理,作为供电中断的准备,以及
在供电恢复时,使用所述待机状态数据对存储在所述非易失性存储器部中的高速缓存数据执行恢复处理。
(2)根据(1)所述的非易失性高速缓冲存储器,其中,
所述高速缓存控制器被配置为:
生成包含能够至少对存储在所述非易失性存储器部中的所述高速缓存数据进行错误纠正的错误纠正数据的所述待机状态数据,并将所生成的待机状态数据存储在所述非易失性存储器部中,作为所述待机准备处理,以及
使用包含在所述待机状态数据中的所述错误纠正数据对存储在所述非易失性存储器部中的所述高速缓存数据进行错误纠正处理,作为所述恢复处理。
(3)根据(1)或(2)所述的非易失性高速缓冲存储器,其中,
所述非易失性存储器部具有多条高速缓存线,其中每条所述高速缓存线被配置为存储所述高速缓存数据,以及
所述高速缓存控制器被配置为执行以下处理作为所述待机准备处理:
为至少部分所述高速缓存线生成包含能够对存储在所述高速缓存线中的高速缓存数据进行错误纠正的错误纠正数据的所述待机状态数据,
将所生成的所述待机状态数据存储在另一条高速缓存线中,以及
使所述另一条高速缓存线处于表示所述另一条高速缓存线中存储了所述待机状态数据的状态。
(4)根据(3)所述的非易失性高速缓冲存储器,其中,
包含所述错误纠正数据的所述待机状态数据进一步包含存储了使用所述错误纠正数据被进行错误纠正的所述高速缓存数据的所述高速缓存线的地址信息。
(5)根据(3)所述的非易失性高速缓冲存储器,其中,
所述高速缓存控制器被配置为在与存储了作为所述待机状态数据的对象的所述高速缓存数据的高速缓存线对应的区域中存储所述待机状态数据。
(6)根据(1)或(2)所述的非易失性高速缓冲存储器,其中,
所述非易失性存储器部具有多条高速缓存线,其中每条所述高速缓存线包含高速缓存数据区域和待机状态数据区域,以及
所述高速缓存控制器被配置为执行以下处理作为所述待机准备处理:
为至少部分所述高速缓存线生成包含能够对存储在所述高速缓存线中的高速缓存数据进行错误纠正的错误纠正数据的所述待机状态数据,
将所生成的待机状态数据存储在所述待机状态数据区域中,以及
使所述高速缓存线进入表示所述高速缓存线中存储了所述待机状态数据的状态。
(7)根据(1)所述的非易失性高速缓冲存储器,其中,
所述高速缓存控制器被配置为:
生成包含能够至少对存储在所述非易失性存储器部中的高速缓存数据进行错误检测的错误检测数据的待机状态数据,并将所生成的待机状态数据存储在所述非易失性存储器部中,作为所述待机准备处理,以及
使用包含在所述待机状态数据中的所述错误检测数据对存储在所述非易失性存储器部中的所述高速缓存数据进行错误检测处理,作为所述恢复处理。
(8)根据(7)所述的非易失性高速缓冲存储器,其中,
所述高速缓存控制器被配置为执行用于使被所述错误检测处理检测到错误的高速缓存数据无效的处理。
(9)根据(1)至(8)所述的非易失性高速缓冲存储器,其中,
所述高速缓存控制器被配置为在接收到请求转移到供电中断的待机状态的待机信号时,进行所述待机准备处理。
本发明包含于2011年11月29日向日本专利局提交的日本优先权专利申请JP 2011-259796中公开的相关主题,其全部内容通过引证结合于本申请中。

Claims (13)

1.一种非易失性高速缓冲存储器,包括:
非易失性存储器部,被配置为存储高速缓存数据;以及
高速缓存控制器,被配置为:
控制对所述非易失性存储器部进行的所述高速缓存数据的读取和写入,
执行用于生成待机状态数据并将所生成的待机状态数据存储在所述非易失性存储器部中的待机准备处理,作为供电中断的准备,以及
在供电恢复时,使用所述待机状态数据对存储在所述非易失性存储器部中的高速缓存数据执行恢复处理。
2.根据权利要求1所述的非易失性高速缓冲存储器,其中,
所述高速缓存控制器被配置为:
生成包含能够至少对存储在所述非易失性存储器部中的所述高速缓存数据进行错误纠正的错误纠正数据的所述待机状态数据,并将所生成的待机状态数据存储在所述非易失性存储器部中,作为所述待机准备处理,以及
使用包含在所述待机状态数据中的所述错误纠正数据对存储在所述非易失性存储器部中的所述高速缓存数据进行错误纠正处理,作为所述恢复处理。
3.根据权利要求1所述的非易失性高速缓冲存储器,其中,
所述非易失性存储器部具有多条高速缓存线,其中每条所述高速缓存线被配置为存储所述高速缓存数据,以及
所述高速缓存控制器被配置为执行以下处理作为所述待机准备处理:
为至少部分所述高速缓存线生成包含能够对存储在所述高速缓存线中的高速缓存数据进行错误纠正的错误纠正数据的所述待机状态数据,
将所生成的所述待机状态数据存储在另一条高速缓存线中,以及
使所述另一条高速缓存线处于表示所述另一条高速缓存线中存储了所述待机状态数据的状态。
4.根据权利要求3所述的非易失性高速缓冲存储器,其中,
包含所述错误纠正数据的所述待机状态数据进一步包含存储了用所述错误纠正数据对其进行错误纠正的所述高速缓存数据的所述高速缓存线的地址信息。
5.根据权利要求3所述的非易失性高速缓冲存储器,其中,
所述高速缓存控制器被配置为在与存储了作为所述待机状态数据的对象的所述高速缓存数据的高速缓存线对应的区域中存储所述待机状态数据。
6.根据权利要求1所述的非易失性高速缓冲存储器,其中,
所述非易失性存储器部具有多条高速缓存线,其中每条所述高速缓存线包含高速缓存数据区域和待机状态数据区域,以及
所述高速缓存控制器被配置为执行以下处理作为所述待机准备处理:
为至少部分所述高速缓存线生成包含能够对存储在所述高速缓存线中的高速缓存数据进行错误纠正的错误纠正数据的所述待机状态数据,
将所生成的待机状态数据存储在所述待机状态数据区域中,以及
使所述高速缓存线进入表示所述高速缓存线中存储了所述待机状态数据的状态。
7.根据权利要求1所述的非易失性高速缓冲存储器,其中,
所述高速缓存控制器被配置为:
生成包含能够至少对存储在所述非易失性存储器部中的高速缓存数据进行错误检测的错误检测数据的待机状态数据,并将所生成的待机状态数据存储在所述非易失性存储器部中,作为所述待机准备处理,以及
使用包含在所述待机状态数据中的所述错误检测数据对存储在所述非易失性存储器部中的所述高速缓存数据进行错误检测处理,作为所述恢复处理。
8.根据权利要求7所述的非易失性高速缓冲存储器,其中,
包含所述错误检测数据的所述待机状态数据进一步包含存储了用所述错误检测数据对其进行错误检测的所述高速缓存数据的所述高速缓存线的地址信息。
9.根据权利要求7所述的非易失性高速缓冲存储器,其中,
所述高速缓存控制器被配置为执行用于使被所述错误检测处理检测到错误的高速缓存数据无效的处理。
10.根据权利要求1所述的非易失性高速缓冲存储器,其中,
所述高速缓存控制器被配置为在接收到请求转移到供电中断的待机状态的待机信号时,进行所述待机准备处理。
11.一种非易失性高速缓冲存储器的处理方法,所述非易失性高速缓冲存储器具有被配置为存储高速缓存数据的非易失性存储器部,所述处理方法包括:
进行用于生成待机状态数据并在所述非易失性存储器部中存储所生成的待机状态数据的待机准备处理,作为供电中断的准备;以及
在供电恢复时,使用所述待机状态数据对存储在所述非易失性存储器部中的高速缓存数据进行恢复处理。
12.一种计算机系统,包括:
处理器;
非易失性高速缓冲存储器;
电力控制电路;以及
主存储器,
所述电力控制电路被配置为控制对所述处理器和所述非易失性高速缓冲存储器的供电,
所述处理器被配置为:
通过所述非易失性高速缓冲存储器进行对所述主存储器的数据的读取和写入,
当所述电力控制电路中断供电时,将请求转移到待机状态的待机信号发送至所述非易失性高速缓冲存储器,以及
当所述电力控制电路恢复供电时,将请求恢复供电并且转移至操作状态的恢复信号发送至所述非易失性高速缓冲存储器,以及
所述非易失性高速缓冲存储器具有:
非易失性存储器部,被配置为存储高速缓存数据,以及
高速缓存控制器,被配置为:
控制对所述非易失性存储器部的高速缓存数据的读取和写入,
在接收到所述待机信号时,进行生成待机状态数据并将所生成的待机状态数据存储在所述非易失性存储器部中的待机准备处理,以及
在接收到所述恢复信号时,使用所述待机状态数据对存储在所述非易失性存储器部中的所述高速缓存数据进行恢复处理。
13.根据权利要求12所述的计算机系统,其中,
所述非易失性高速缓冲存储器的所述高速缓存控制器被配置为
在完成所述待机准备处理时,将表示完成转移至所述待机状态的待机完成信号发送至所述处理器,以及
在完成所述恢复处理时,将表示完成转移至所述操作状态的恢复完成信号发送至所述处理器。
CN201210479284.8A 2011-11-29 2012-11-22 非易失性高速缓冲存储器、其处理方法以及计算机系统 Active CN103136119B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-259796 2011-11-29
JP2011259796A JP5803614B2 (ja) 2011-11-29 2011-11-29 不揮発性キャッシュメモリ、不揮発性キャッシュメモリの処理方法、コンピュータシステム

Publications (2)

Publication Number Publication Date
CN103136119A true CN103136119A (zh) 2013-06-05
CN103136119B CN103136119B (zh) 2017-09-22

Family

ID=48467940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210479284.8A Active CN103136119B (zh) 2011-11-29 2012-11-22 非易失性高速缓冲存储器、其处理方法以及计算机系统

Country Status (3)

Country Link
US (1) US9251057B2 (zh)
JP (1) JP5803614B2 (zh)
CN (1) CN103136119B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677258A (zh) * 2016-02-23 2016-06-15 浪潮(北京)电子信息产业有限公司 一种日志数据管理方法及系统
CN106406767A (zh) * 2016-09-26 2017-02-15 上海新储集成电路有限公司 一种非易失性双列直插式存储器及存储方法
CN106663463A (zh) * 2014-07-03 2017-05-10 桑迪士克科技有限责任公司 存储器裸芯的NAND闪存存储器与ReRAM之间的数据的芯片上复制
CN108027710A (zh) * 2015-12-03 2018-05-11 株式会社日立制作所 在软件定义的存储系统中进行高速缓存的方法和装置
CN108874695A (zh) * 2017-05-11 2018-11-23 西部数据技术公司 在电力关闭时保存数据
CN110674054A (zh) * 2018-07-03 2020-01-10 爱思开海力士有限公司 存储系统及其操作方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703704B2 (en) * 2012-05-01 2017-07-11 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
JP6130750B2 (ja) * 2013-07-16 2017-05-17 株式会社東芝 メモリ制御回路およびプロセッサ
JP6275427B2 (ja) * 2013-09-06 2018-02-07 株式会社東芝 メモリ制御回路およびキャッシュメモリ
WO2015057846A1 (en) * 2013-10-15 2015-04-23 Mill Computing, Inc. Computer processor employing cache memory with pre-byte valid bits
JP6030085B2 (ja) 2014-03-20 2016-11-24 株式会社東芝 キャッシュメモリおよびプロセッサシステム
US9042160B1 (en) * 2014-07-03 2015-05-26 Sandisk Technologies Inc. Memory device with resistive random access memory (ReRAM)
KR102131337B1 (ko) * 2014-10-20 2020-07-07 한국전자통신연구원 고장 제어 기능을 구비한 캐시 메모리
US9349952B1 (en) 2014-12-08 2016-05-24 Sony Corporation Methods for fabricating a memory device with an enlarged space between neighboring bottom electrodes
WO2017143502A1 (en) * 2016-02-23 2017-08-31 Intel Corporation Optimizing structures to fit into a complete cache line
US10262721B2 (en) 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US10447278B1 (en) 2018-07-17 2019-10-15 Northrop Grumman Systems Corporation JTL-based superconducting logic arrays and FPGAs
US10818346B2 (en) 2018-09-17 2020-10-27 Northrop Grumman Systems Corporation Quantizing loop memory cell system
US11211117B2 (en) 2019-01-24 2021-12-28 Northrop Grumman Systems Corporation Ferrimagnetic/ferromagnetic exchange bilayers for use as a fixed magnetic layer in a superconducting-based memory device
US11024791B1 (en) 2020-01-27 2021-06-01 Northrop Grumman Systems Corporation Magnetically stabilized magnetic Josephson junction memory cell
US12027196B2 (en) 2021-07-08 2024-07-02 Kioxia Corporation Memory system, control method, and power control circuit
TWI816285B (zh) * 2021-07-08 2023-09-21 日商鎧俠股份有限公司 記憶體系統、控制方法及電力控制電路

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1595332A (zh) * 2003-09-08 2005-03-16 三星电子株式会社 计算机系统及其控制方法
CN1902712A (zh) * 2003-12-31 2007-01-24 桑迪士克股份有限公司 具有写入/擦除中止检测机制的快闪存储系统
CN1991775A (zh) * 2005-12-28 2007-07-04 英业达股份有限公司 存储系统的高速缓存数据的保护方法
US20090150600A1 (en) * 2007-11-29 2009-06-11 Takaya Suda Memory system
CN101916201A (zh) * 2010-08-06 2010-12-15 中兴通讯股份有限公司 一种基于Android移动终端冷启动的方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW576966B (en) * 2000-06-23 2004-02-21 Intel Corp Non-volatile cache integrated with mass storage device
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
JP2007041798A (ja) * 2005-08-02 2007-02-15 Seiko Epson Corp 情報処理装置及び情報処理装置のメモリ書き換え方法
CN101821810B (zh) 2007-08-31 2013-05-01 国立大学法人东京工业大学 利用电流感应磁化反转mtj的非易失性sram/锁存电路
JP5579431B2 (ja) * 2009-12-28 2014-08-27 株式会社日立製作所 ソリッド・ステート・ドライブ装置および平準化管理情報の退避・回復方法
JP2011150653A (ja) 2010-01-25 2011-08-04 Renesas Electronics Corp マルチプロセッサシステム
US8495300B2 (en) * 2010-03-03 2013-07-23 Ati Technologies Ulc Cache with reload capability after power restoration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1595332A (zh) * 2003-09-08 2005-03-16 三星电子株式会社 计算机系统及其控制方法
CN1902712A (zh) * 2003-12-31 2007-01-24 桑迪士克股份有限公司 具有写入/擦除中止检测机制的快闪存储系统
CN1991775A (zh) * 2005-12-28 2007-07-04 英业达股份有限公司 存储系统的高速缓存数据的保护方法
US20090150600A1 (en) * 2007-11-29 2009-06-11 Takaya Suda Memory system
CN101916201A (zh) * 2010-08-06 2010-12-15 中兴通讯股份有限公司 一种基于Android移动终端冷启动的方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106663463A (zh) * 2014-07-03 2017-05-10 桑迪士克科技有限责任公司 存储器裸芯的NAND闪存存储器与ReRAM之间的数据的芯片上复制
CN108027710A (zh) * 2015-12-03 2018-05-11 株式会社日立制作所 在软件定义的存储系统中进行高速缓存的方法和装置
CN108027710B (zh) * 2015-12-03 2020-11-06 株式会社日立制作所 在软件定义的存储系统中进行高速缓存的方法和装置
CN105677258A (zh) * 2016-02-23 2016-06-15 浪潮(北京)电子信息产业有限公司 一种日志数据管理方法及系统
CN106406767A (zh) * 2016-09-26 2017-02-15 上海新储集成电路有限公司 一种非易失性双列直插式存储器及存储方法
CN108874695A (zh) * 2017-05-11 2018-11-23 西部数据技术公司 在电力关闭时保存数据
CN108874695B (zh) * 2017-05-11 2019-09-17 西部数据技术公司 在电力关闭时保存数据
CN110674054A (zh) * 2018-07-03 2020-01-10 爱思开海力士有限公司 存储系统及其操作方法
CN110674054B (zh) * 2018-07-03 2023-08-08 爱思开海力士有限公司 存储系统及其操作方法

Also Published As

Publication number Publication date
JP5803614B2 (ja) 2015-11-04
CN103136119B (zh) 2017-09-22
US9251057B2 (en) 2016-02-02
US20130139007A1 (en) 2013-05-30
JP2013114441A (ja) 2013-06-10

Similar Documents

Publication Publication Date Title
CN103136119A (zh) 非易失性高速缓冲存储器、其处理方法以及计算机系统
CN104798051B (zh) 用于解决碎片化的内存段重映射
CN102081577B (zh) 对Flash存储器的数据存储结构进行数据操作的方法
CN101425041B (zh) 在nand flash存储器上建立fat文件系统的优化方法
CN101876949B (zh) 数据储存系统与方法
CN1900919B (zh) 包括多个块的闪速存储器
CN102160030B (zh) 对于数据存储的写通信的聚集
CN101996689B (zh) 存储器错误处理方法
CN103871447B (zh) 与非门快闪存储器阵列及芯片及其存取、读取及管理方法
CN101379566B (zh) 用于修复高速缓存阵列中单元的装置、系统和方法
CN105843749B (zh) 一种基于FPGA的NAND Flash容错方法
CN106776376B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
US20100185804A1 (en) Information processing device that accesses memory, processor and memory management method
Roberts et al. On-chip cache device scaling limits and effective fault repair techniques in future nanoscale technology
US20100037102A1 (en) Fault-tolerant non-volatile buddy memory structure
JP5950286B2 (ja) アドレス変換テーブルを書き込む装置及び方法
CN101901189A (zh) 更新用户数据的方法以及恢复用户数据的方法
CN106462493A (zh) 固态存储器损坏的减轻
CN106155943B (zh) 一种双控存储设备的掉电保护的方法及装置
CN102385934A (zh) 用于位单元修复的方法和装置
CN103092765B (zh) 固态存储系统、装置及数据写入方法
CN106354652B (zh) 非易失性存储器读写控制电路
CN106062724A (zh) 存储器模块上的数据管理
CN107003810A (zh) 存储器耗损平均
TWI765368B (zh) 具有資料保護架構之記憶體裝置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant