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

文档序号:11407382阅读:455来源:国知局
非易失性高速缓冲存储器、其处理方法以及计算机系统与流程
本发明涉及非易失性高速缓冲存储器、非易失性高速缓冲存储器的处理方法以及具有非易失性高速缓冲存储器的计算机系统。

背景技术:
在已知的计算机系统中,处理器从主存储器获取数据和诸如命令的信息或更新主存储器的信息。此时,诸如主存储器的等待时间的存取性能劣于处理器的处理性能。因此,主存储器和处理器之间的性能差造成计算机系统的总性能的瓶颈。高速缓冲存储器是新设置在存储层以消除瓶颈并设置在处理器和主存储器之间的存储器。一般地,使用以高于主存储器的速度运行的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和页面重写标志位(dirtybit)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中,高速缓存控...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1