内存控制器、内存控制系统以及内存控制方法转让专利

申请号 : CN201310404429.2

文献号 : CN104425004B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢巍

申请人 : 联想(北京)有限公司

摘要 :

本发明提供一种内存控制器、内存控制系统和内存控制方法。该内存控制器包括:至少一个自刷新模块,所述至少一个自刷新模块中的每一个分别与至少一个存储芯片连接,并且所述至少一个自刷新模块的每一个分别配置来对所连接的存储芯片进行刷新;判断模块,配置来分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别,从而生成与所述至少一个自刷新模块中的每一个对应的判断结果;以及控制逻辑模块,配置来在所述判断结果表示特定的自刷新模块所连接的存储芯片为第一类别的情况下,关闭所述特定的自刷新模块。

权利要求 :

1.一种内存控制器,包括:

至少一个自刷新模块,所述至少一个自刷新模块中的每一个分别与至少一个存储芯片连接,并且所述至少一个自刷新模块的每一个分别配置来对所连接的存储芯片进行刷新;

判断模块,配置来分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别,从而生成与所述至少一个自刷新模块中的每一个对应的判断结果;以及控制逻辑模块,配置来在所述判断结果表示特定的自刷新模块所连接的存储芯片为第一类别的情况下,关闭所述特定的自刷新模块。

2.如权利要求1所述的内存控制器,其中,

所述控制逻辑模块在所述判断结果表示特定的自刷新模块所连接的存储芯片不是第一类别的情况下,开启所述特定的自刷新模块。

3.如权利要求1所述的内存控制器,还包括:

寄存器,配置来分别存储用于表示所述至少一个自刷新模块中的每一个所连接的存储芯片的类别的标志值,所述判断模块与所述寄存器连接,并且基于所述寄存器中的标志值来分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别。

4.如权利要求1所述的内存控制器,其中,

与所述至少一个自刷新模块中的每一个对应地设置了至少一个管脚,所述管脚配置来表示与其对应的自刷新模块所连接的存储芯片的类别,所述判断模块与所述至少一个管脚连接,并且基于所述至少一个管脚的状态来分别判断与所述至少一个管脚的每个管脚对应的自刷新模块所连接的存储芯片的类别。

5.如权利要求1所述的内存控制器,其中,

所述第一类别表示所述自刷新模块所连接的存储芯片为非易失性随机存取存储器。

6.一种内存控制系统,包括:

一个或多个存储芯片;

至少一个自刷新模块,所述至少一个自刷新模块中的每一个分别与至少一个存储芯片连接,并且所述至少一个自刷新模块的每一个分别配置来对所连接的存储芯片进行刷新;

判断模块,配置来分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别,从而生成与所述至少一个自刷新模块中的每一个对应的判断结果;以及控制逻辑模块,配置来在所述判断结果表示特定的自刷新模块所连接的存储芯片为第一类别的情况下,关闭所述特定的自刷新模块。

7.一种内存控制方法,应用于内存控制器,其中,

所述内存控制器包括至少一个自刷新模块,所述至少一个自刷新模块中的每一个分别与至少一个存储芯片连接,并且所述至少一个自刷新模块的每一个分别配置来对所连接的存储芯片进行刷新,所述内存控制方法包括:

分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别,从而生成与所述至少一个自刷新模块中的每一个对应的判断结果;以及在所述判断结果表示特定的自刷新模块所连接的存储芯片为第一类别的情况下,关闭所述特定的自刷新模块。

8.如权利要求7所述的内存控制方法,还包括:

在所述判断结果表示特定的自刷新模块所连接的存储芯片不是第一类别的情况下,开启所述特定的自刷新模块。

9.如权利要求7所述的内存控制方法,其中,

所述内存控制器进一步包括寄存器,在所述寄存器中分别存储用于表示所述至少一个自刷新模块中的每一个所连接的存储芯片的类别的标志值,分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别的步骤进一步包括:基于寄存器中的所述标志值来分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别。

10.如权利要求7所述的内存控制方法,其中,

与所述至少一个自刷新模块中的每一个对应地设置了所述至少一个管脚,所述管脚配置来表示与其对应的自刷新模块所连接的存储芯片的类别,分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别的步骤进一步包括:基于所述至少一个管脚的状态来分别判断与所述至少一个管脚的每个管脚对应的自刷新模块所连接的存储芯片的类别。

说明书 :

内存控制器、内存控制系统以及内存控制方法

技术领域

[0001] 本发明涉及内存控制器、内存控制系统以及内存控制方法。

背景技术

[0002] 诸如DRAM(Dynamic Random Access Memory,动态随机存取存储器)那样的易失性随机存取存储器的结构简单,且存取速度快,因此成为了最为常见的系统内存。但是,在诸如DRAM那样的易失性随机存取存储器中只能将数据保持很短的时间,为了保持数据,必须在每个刷新周期刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。另一方面,诸如NVRAM(Non-Volatile Random Access Memory)那样的非易失性随机存取存储器是指断电后仍能保持数据的一种随机存取存储器。因此不需要如易失性随机存取存储器那样在每个刷新周期进行刷新,但在相同容量下其成本高于易失性随机存取存储器。
[0003] 利用在诸如NVRAM那样的非易失性随机存取存储器中断电后还能够保持数据的特性,有人提出了混合型RAM。在该混合型RAM中,同时存在诸如DRAM那样的易失性随机存取存储器和诸如NVRAM那样的非易失性随机存取存储器。
[0004] 在将针对易失性随机存取存储器设计的内存控制器应用于该混合型RAM的情况下,内存控制器不仅对易失性随机存取存储器进行刷新,还对非易失性随机存取存储器进行刷新。如上所述,非易失性随机存取存储器是即使掉电也不会丢失信息的RAM,因此对非易失性随机存取存储器进行刷新的操作是无用的,从而增加了内存控制器的功耗。

发明内容

[0005] 本发明鉴于上述问题而完成,其目的在于提供一种仅对需要在刷新周期进行刷新的如DRAM那样的易失性随机存取存储器进行刷新,从而减少功耗的内存控制器、内存控制系统和内存控制方法。
[0006] 根据本发明的一个方面,提供一种内存控制器。该内存控制器包括:至少一个自刷新模块,所述至少一个自刷新模块中的每一个分别与至少一个存储芯片连接,并且所述至少一个自刷新模块的每一个分别配置来对所连接的存储芯片进行刷新;判断模块,配置来分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别,从而生成与所述至少一个自刷新模块中的每一个对应的判断结果;以及控制逻辑模块,配置来在所述判断结果表示特定的自刷新模块所连接的存储芯片为第一类别的情况下,关闭所述特定的自刷新模块。
[0007] 根据本发明的另一方面,提供一种内存控制系统。该内存控制系统包括:一个或多个存储芯片;至少一个自刷新模块,所述至少一个自刷新模块中的每一个分别与至少一个存储芯片连接,并且所述至少一个自刷新模块的每一个分别配置来对所连接的存储芯片进行刷新;判断模块,配置来分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别,从而生成与所述至少一个自刷新模块中的每一个对应的判断结果;以及控制逻辑模块,配置来在所述判断结果表示特定的自刷新模块所连接的存储芯片为第一类别的情况下,关闭所述特定的自刷新模块。
[0008] 根据本发明的再一方面提供一种内存控制方法,该内存控制方法应用于内存控制器。所述内存控制器包括至少一个自刷新模块,所述至少一个自刷新模块中的每一个分别与至少一个存储芯片连接,并且所述至少一个自刷新模块的每一个分别配置来对所连接的存储芯片进行刷新。所述内存控制方法包括:分别判断所述至少一个自刷新模块中的每一个所连接的存储芯片的类别,从而生成与所述至少一个自刷新模块中的每一个对应的判断结果;以及在所述判断结果表示特定的自刷新模块所连接的存储芯片为第一类别的情况下,关闭所述特定的自刷新模块。
[0009] 根据本发明的内存控制器、内存控制系统和内存控制方法,在混合RAM中仅对需要进行刷新的存储芯片进行刷新,从而减少内存控制器的功耗。并且,通过对现有的针对易失性随机存取存储器设计的内存控制器进行简单的改进,就能够实现减少内存控制器的功耗的效果。

附图说明

[0010] 图1是表示根据实施例1的内存控制系统的示意图。
[0011] 图2是表示根据实施例2的内存控制系统的示意图。
[0012] 图3是表示自刷新模块具有多个刷新单元的情况的示意图。
[0013] 图4是表示本发明的内存控制方法的流程图。

具体实施方式

[0014] 将参照附图详细描述根据本发明的具体实施方式。这里,需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,并且将省略关于它们的重复描述。
[0015] 根据本发明的内存控制器对至少一个存储芯片的刷新进行控制。该内存控制器包括:至少一个自刷新模块、判断模块以及控制逻辑模块。该至少一个自刷新模块中的每一个分别与至少一个存储芯片连接,并且该至少一个自刷新模块的每一个分别配置来对所连接的存储芯片进行刷新。判断模块可以分别判断至少一个自刷新模块中的每一个自刷新模块所连接的存储芯片的类别,从而生成与至少一个自刷新模块中的每一个自刷新模块对应的判断结果。控制逻辑模块可以在判断结果表示特定的自刷新模块所连接的存储芯片为第一类别的情况下,关闭该特定的自刷新模块。
[0016] 在这里,第一类别可以表示诸如NVRAM之类的在断电后仍能够保持数据的存储芯片。即,在存储芯片是断电后仍能够保持数据的存储芯片的情况下,不需要对存储芯片进行刷新。NVRAM例如为PCM(Phase Change RAM)、STT RAM(Shared Transistor Technology RAM)等。
[0017] 以下,参照实施例1与实施例2分别说明通过寄存器和管脚来判断与自刷新模块连接的存储芯片的类别的方式,但本发明并非限定于这两种方式。只要能够判断出与各个自刷新模块连接的存储芯片的类别,并能够根据判断结果来对自刷新模块,都在本发明的范围内。
[0018] 下面,结合具体实施例来说明本发明的技术方案。
[0019] 《实施例1》
[0020] 在实施例1中,在内存控制器中设置寄存器,并在寄存器存储关于各个自刷新模块所连接的存储芯片的类别的标志值。判断模块通过读取寄存器中的标志值,从而对各个自刷新模块所连接的存储芯片的类别进行判断。
[0021] 图1是表示根据实施例1的内存控制系统的示意图。该内存控制系统包括内存控制器1和存储器2。其中,内存控制器1包括至少一个自刷新模块11、判断模块12、控制逻辑模块13和寄存器14。存储器2包括至少一个存储芯片。
[0022] 为了便于说明,下面以内存控制器1包含两个自刷新模块11A以及11B,并且每个自刷新模块分别连接到两个存储芯片为例进行描述。显然,本发明不限于此,根据内存的总容量以及单个内存芯片的容量,内存控制器1还可以包含其它数量的自刷新模块,并且每个自刷新模块可以与任意数量的存储芯片连接。
[0023] 自刷新模块11A与存储芯片A1、A2连接,并且负责在每个刷新周期对所连接的存储芯片A1、A2进行刷新。对应地,自刷新模块11B与存储芯片B1、B2连接,并且负责在每个刷新周期对所连接的存储芯片B1、B2进行刷新。
[0024] 关于是否需要刷新,根据配置需要,本实施例的存储芯片可以是如DRAM那样需要在每个刷新周期进行刷新的类别,也可以是如NVRAM那样不刷新也能够保持数据的类别。但是,在将现有技术中的针对DRAM设计的内存控制器应用到混合型RAM的情况下,在存储芯片属于如NVRAM那样的不需要刷新的存储芯片时,自刷新模块还对该存储芯片刷新的情况下,导致功耗的浪费。
[0025] 在本实施例中,如果与特定的自刷新模块连接了多个存储芯片的情况下,优选设置为在与同一个自刷新模块连接的多个存储芯片的类别是相同的。即,与同一个自刷新模块连接的多个存储芯片,要么都需要刷新,要么都不需要刷新。具体地,在图1中,存储芯片A1、A2的类型相同,存储芯片B1、B2的类型相同。
[0026] 寄存器14中预存有关于存储芯片的类别的标志值。在本实施例中,由于与同一个自刷新模块连接的各个存储芯片的关于是否需要刷新的类别相同,因此对每个自刷新模块存储关于该每个自刷新模块所连接的存储芯片的类别。在本示例中,在寄存器14中,存储有关于自刷新模块11A所连接的存储芯片A1、A2的类别的标志值、以及关于自刷新模块11B所连接的存储芯片B1、B2的类别的标志值。这里,可以针对自刷新模块的数量设置具有相应位数的寄存器14,使得寄存器14可以分别存储与各个自刷新模块11A所连接的存储芯片的类别相关的标志值。
[0027] 例如,标志值“0”表示不需要刷新的类别,标志值“1”表示需要刷新的类别。在自刷新模块11A所连接的存储芯片A1、A2是需要刷新的类别的情况下,关于自刷新模块11A在寄存器14的对应存储位置上存储的标志值为“1”,在自刷新模块11B所连接的存储芯片B1、B2是不需要刷新的类别的情况下,关于自刷新模块11B在寄存器14的对应存储位置上存储的标志值为“0”。
[0028] 在寄存器14中,对每个自刷新模块都设定了特定的存储位置。根据各个自刷新模块所连接的存储芯片的类别,预先将标志值存储到寄存器14,并且在特定的自刷新模块所连接的存储芯片的类别因更换等情况而变化的情况下,变更在寄存器14中存储的关于与类别变化的存储芯片连接的自刷新模块的标志值。例如,在自刷新模块11A所连接的存储芯片A1、A2的类别从DRAM变换为NVRAM的情况下,将在寄存器14的与自刷新模块11A对应的存储位置存储的标志值,从“1”变更为“0”。
[0029] 判断模块12与寄存器14连接,在具有本发明的内存控制系统的设备因接通电源等情况而启动的情况下,判断模块12可以读取在寄存器14中存储的关于各自刷新模块存储的标志值。关于自刷新模块11A所读取的标志值表示与该自刷新模块11A连接的存储芯片A1、A2的类别,同样地,关于自刷新模块11B所读取的标志值表示与该自刷新模块11B连接的存储芯片B1、B2的类别。
[0030] 其中,判断模块12根据从寄存器14读取的标志值,对各个自刷新模块所连接的存储芯片的类别进行判断。例如,关于自刷新模块11A存储的信息为“1”,则判断模块12判断为存储芯片A1、A2的类别是需要刷新的类别,关于自刷新模块11B所读取的信息为“0”,则判断模块12判断为存储芯片B1、B2的类别是不需要进行刷新的类别。判断模块12根据所读取的标志值,对各个自刷新模块11A、11B所连接的存储芯片的类别进行了判断之后,将判断结果传送给控制逻辑模块13。
[0031] 控制逻辑模块13根据从判断模块12接收到的判断结果,开启/关闭各个自刷新模块。例如,控制逻辑模块13接收的判断结果表示存储芯片A1、A2属于需要刷新的DRAM的情况下,使得与存储芯片A1、A2连接的自刷新模块11A开启。在判断结果表示存储芯片B1、B2属于不需要刷新的NVRAM的情况下,关闭与存储芯片B1、B2连接的自刷新模块11B。其中,关闭特定的自刷新模块,可以通过任意的方法实现,例如通过切断对自刷新模块的电源供应来实现,或者通过对自刷新模块的使能端(Enable)进行设置来实现。
[0032] 但是,在针对DRAM设计的现有的内存控制器中,常态下各个自刷新模块处于开启的状态。即,各个自刷新模块在常态下,在每个刷新周期对所连接的存储芯片进行刷新。若如此,则控制逻辑模块13仅在判断结果表示特定的自刷新模块所连接的存储芯片属于NVRAM等的不需要刷新的类别的情况下,关闭该特定的自刷新模块即可。在判断结果表示特定的自刷新模块所连接的存储芯片属于DRAM等的需要刷新的类别的情况下,控制逻辑模块13可以不对该特定的自刷新模块进行任何控制,该特定的自刷新模块也保持在开启状态。
具体地,在本实施例1中,将与判断为属于NVRAM的存储芯片B1、B2连接的自刷新模块11B关闭即可。
[0033] 为了便于说明,在图1所示的例子中,内存控制器1包括自刷新模块11A、11B,存储器2包括存储芯片A1、A2、B1、B2。但是,自刷新模块的数目和存储芯片的数目并非限定于2个和4个,只要每个自刷新模块都具有至少一个对应的存储芯片即可,能够根据具体情况任意地设定。
[0034] 例如,在内存控制器1中可以仅设置1个或多个自刷新模块。在设置1个自刷新模块11的情况下,判断模块12仅对该1个自刷新模块所连接的存储芯片的类别(是否需要刷新)进行判断,并根据判断结果对该自刷新模块11进行关闭/开启。
[0035] 此外,在上面的描述中,虽然以判断模块12以及控制逻辑模块13为分离的模块为例进行了描述,但是本发明不限于此,可以由单独的微处理器基于其中预设的固件或软件来同时实现判断模块12以及控制逻辑模块13的功能。
[0036] 《实施例2》
[0037] 在本发明的实施例2中,判断模块基于管脚的状态来判断与各个自刷新模块连接的存储芯片的类别。其中,该管脚与各个自刷新模块相对应地设置,例如通过通电之后的电平来表示所对应的自刷新模块所连接的存储芯片的类别。
[0038] 在本实施例2的说明中,以与实施例2不同的部分为重点展开说明,与实施例1相同的部分简略/不重复其说明。
[0039] 图2是表示根据实施例2的内存控制系统的示意图。该内存控制系统包括内存控制器1、和存储器2。其中,内存控制器1包括自刷新模块11A、11B、判断模块12、控制逻辑模块13。存储器2包括存储芯片A1、A2、B1、B2。
[0040] 与图1不同,在实施例2中的内存控制系统中,与各个自刷新模块11A、11B对应地单独设置了管脚15A、15B。这里,判断模块12分别与自刷新模块11A、11B对应的管脚15A、15B连接。其中,该管脚15A、15B设置在内存控制器1的外部,例如设置在配置了内存控制器1和存储器2的基板上,并且能够由内存控制器1的判断模块12读取其状态。
[0041] 根据各个自刷新模块所连接的存储芯片的类别,对与各个自刷新模块对应的管脚进行硬件设置。例如,在与特定自刷新模块连接的存储芯片是需要进行刷新的类别的情况下,将与该特定的自刷新模块对应的管脚连接到电源使得在接通电源的情况下保持在高电平。此外,在与特定自刷新模块连接的存储芯片是不需要进行刷新的NVRAM的情况下,对与该特定的自刷新模块对应的管脚接地使得在接通电源的情况下保持在低电平。具体地,在存储芯片A1、A2是DRAM,并且存储芯片B1、B2是NVRAM的情况下,将与自刷新模块11A对应的管脚15A连接到电源,并且将与自刷新模块11B对应的管脚15B接地。
[0042] 判断模块12与管脚15A、15B连接,在具有本发明的内存控制系统的设备因接通电源等情况而启动的情况下,读取管脚15A、15B的状态。具体地,判断模块12判断管脚15A、15B的状态,在管脚15A为高电平的情况下,将自刷新模块11A所连接的存储芯片的类型判断为需要刷新的类别,对应地,在管脚15B为低电平的情况下,将自刷新模块11B所连接的存储芯片的类型判断为不需要刷新的类别。然后,判断模块12将关于各个自刷新模块11A、11B的判断结果发送给控制逻辑模块13。
[0043] 如在实施例1的说明中所述,控制逻辑模块13根据接收到的判断结果,开启/关闭各个自刷新模块11A、11B。
[0044] 另外,在本实施例2中,说明了判断模块12根据与各个自刷新模块对应的管脚的电平的高低来判断对应的存储芯片的类别的方案,但是并不限定于利用电平的高低,也可以利用管脚的其他的状态,只要判断模块12能够根据管脚的状态区分出表示与各个自刷新模块连接的存储芯片的不同类别即可。进而,管脚的硬件连接的方式没有限定,只要管脚能够表现出与所对应的自刷新模块所连接的存储芯片的状态即可。
[0045] 此外,在实施例1和实施例2的说明中,以连接到同一个自刷新模块的多个存储芯片的类别相同为例,进行了描述。但是,本发明也可以应用于连接到同一个自刷新模块的多个存储芯片的类别不同的情况。
[0046] 在该情况下,关于特定的自刷新模块,判断模块12判断与该特定的自刷新模块连接的存储芯片的类别,仅在判断模块12判断出与该特定的自刷新模块连接的多个存储芯片都属于不需要刷新的类别时,控制逻辑模块13才关闭该特定的自刷新模块。如果判断模块12判断出在与该特定的自刷新模块连接的多个存储芯片中,一部分存储芯片属于需要刷新的类别,一部分属于不需要刷新的类别,则控制逻辑模块13依然开启该特定的自刷新模块。
从而,能够保证在一部分需要刷新的存储芯片中存储的数据的不丢失。
[0047] 即,在与特定的自刷新模块连接的多个存储芯片,判断模块12判断出的判断结果存在3种情况:“全部是需要刷新的类别”、“全部是不需要刷新的类别”、“部分是需要刷新的类别、部分是不需要刷新的类别”。控制逻辑模块13仅在关于特定的自刷新模块的判断结果表示“全部是需要刷新的类别”的情况下,关闭该特定的自刷新模块。
[0048] 例如,在连接到同一个自刷新模块的多个存储芯片的类别不同的情况下,例如在实施例1中,在寄存器14中,与各个自刷新模块对应的存储位置存储关于各个自刷新模块所连接的多个存储芯片的每一个的类别的标志值。
[0049] 具体地,在实施例1中,例如与自刷新模块11A连接的存储芯片A1为NVRAM、存储芯片A2为DRAM的情况下,在寄存器14中,在与自刷新模块11A对应的存储位置存储“10”。判断模块12关于自刷新模块11A判断出与该自刷新模块连接的多个存储芯片不全是需要刷新的类别。控制逻辑模块13接收该判断结果,不关闭该自刷新模块11A(或者,保持开启该自刷新模块11A)。
[0050] 此外,在连接到同一个自刷新模块的多个存储芯片的类别不同的情况下,例如在实施例2中,与各个自刷新模块对应地,设置了关于各自刷新模块所连接的多个存储芯片的每一个存储芯片的多个管脚,并根据存储芯片的类别对该多个管脚进行硬件设置。判断模块12关于各个自刷新模块的多个管脚判断与该自刷新模块连接的存储芯片的类别,控制逻辑模块13接收该判断结果,并根据该判断结果对该特定的自刷新模块进行控制。
[0051] 具体地,在实施例2中,例如与自刷新模块11A连接的存储芯片A1为NVRAM、存储芯片A2为DRAM的情况下,与自刷新模块11A对应地设置管脚15A1、15A2。并且,根据存储芯片A1、A2的状态,分别对管脚15A1和15A2进行硬件设置。例如在存储芯片A1为NVRAM的情况下,将管脚15A1接地,在存储芯片A2为DRAM的情况下,将管脚15A2连接到电源。判断模块12关于自刷新模块11A读取管脚15A1、15A2的状态(例如为电平),对自刷新模块11A所连接的各个存储芯片的类别进行判断。控制逻辑模块13接收该判断结果,并根据该判断结果对自刷新模块11A进行控制。
[0052] 此外,在上述实施例中,自刷新模块统一对所连接的至少一个存储芯片进行刷新,并且判断模块12关于多个自刷新模块的每一个判断其连接的存储芯片的类别,控制逻辑模块13根据判断结果对自刷新模块的关闭/开启进行控制。即,在实施例1和实施例2中,判断模块12的判断和控制逻辑模块13的控制,都以自刷新模块为单位进行。
[0053] 但是,在特定的自刷新模块所连接的存储芯片为多个的情况下,该自刷新模块也可以具有多个刷新单元。多个刷新单元的每一个分别执行对特定的存储芯片的刷新,从而由多个刷新单元构成的自刷新模块能够执行对所连接的存储芯片的刷新。
[0054] 例如,如图3所示,自刷新模块11A与存储芯片A11、A12、A21、A22连接,并且具有第一刷新单元和第二刷新单元。该第一刷新单元负责对存储芯片A11、A12进行刷新,该第二刷新单元负责对存储芯片A21、A22进行刷新,从而自刷新模块11A能够分别通过执行第一刷新单元和第二刷新单元,实现对存储芯片A11、A12、A21、A22的刷新。此外,在图3中为了方便说明仅示出了自刷新模块11A具有两个刷新单元的情况,但是,其他的自刷新模块(例如自刷新模块11B)也可以具有多个刷新单元,并且刷新单元的数量也不限定于两个,只要确保每个刷新单元都具有对应的存储芯片即可。
[0055] 本发明也能够应用到上述的自刷新模块具有多个刷新单元,并通过执行多个刷新单元来对所连接的存储芯片进行刷新的结构。在将本发明应用到上述结构的情况下,判断模块12的判断和控制逻辑模块13的控制,也能够以刷新单元为单位进行。
[0056] 具体地,判断模块12判断与各个刷新单元对应的存储芯片的类别,并生成关于各个刷新单元的判断结果。例如在寄存器14中,与各个刷新单元对应的存储位置存储关于与各个刷新单元的每一个对应的存储芯片的类别的标志值。在图3的例子中,与自刷新模块11A的第一刷新单元对应的存储芯片A11、A12为NVRAM、与自刷新模块11A的第二刷新单元对应的存储芯片A21、A22为DRAM的情况下,在寄存器14中,在与第一刷新单元对应的存储位置存储“0”,在与第二刷新单元对应的存储位置存储“1”。判断模块12根据寄存器14中存储的标志值,关于自刷新模块11A的第一刷新单元和第二刷新单元判断出与第一刷新单元对应的存储芯片不需要刷新、与第二刷新单元对应的存储芯片需要刷新。此外,也可以是,与各个刷新单元对应地设置管脚,并根据与刷新单元对应的存储芯片的类别,对所设置的管脚进行硬件设置。从而,判断模块12通过读取管脚的状态来判断与各个刷新单元对应的存储芯片的类别。如上所述,判断模块12可以通过寄存器和管脚来判断与各个刷新单元对应的存储芯片的类别,但是也可以通过其他的方式来判断与各个刷新单元对应的存储芯片的类别。
[0057] 具体地,控制逻辑模块13接收由判断模块12生成的关于各个刷新单元的判断结果,根据从判断模块12接收到的判断结果,开启/关闭各个刷新单元。即,控制逻辑模块13在与特定的刷新单元对应的存储芯片的类别为不需要刷新的类别的情况下,关闭该特定的刷新单元,并且在与特定的刷新单元对应的存储芯片的类别为需要刷新的类别的情况下,开启该特定的刷新单元。例如,在图3的例子中,控制逻辑模块13接收的判断结果表示与第一刷新单元对应的存储芯片A11和A12不需要刷新的情况下,关闭该第一刷新单元,在判断结果表示与第二刷新单元对应的存储芯片A21和A22需要刷新的情况下,开启该第二刷新单元。其中,例如可以通过切断特定的刷新单元的信号的发送,从而关闭该特定的刷新单元的操作,但是也可以通过其他的方法实现,只要能够使该特定的刷新单元不对与该特定的刷新单元对应的存储芯片进行刷新即可。
[0058] 根据本发明的技术方案,在特定的自刷新模块所连接的存储芯片为第一类别的情况下,关闭该特定的自刷新模块。从而在混合RAM中仅对需要进行刷新的存储芯片进行刷新,减少内存控制器的功耗。上述改进仅需要通过对现有的针对DRAM设计的内存控制器进行简单的改变,就能够实现减少内存控制器的功耗的效果。例如,在实施例1中,通过在内存控制器中增加寄存器,并基于寄存器中预存的标志值来控制自刷新模块的关闭/开启,从而不对如NVRAM那样的存储器进行刷新。在实施例2中,通过设置管脚,通过其状态来表示与特定的自刷新模块对应的存储芯片的类别,通过读取该管脚的状态来判断与特定的自刷新模块对应的存储芯片的类别,进而对自刷新模块进行控制,从而在内存控制器中能够减少因开启不需要的自刷新模块而浪费的功耗。
[0059] 下面,参照图4来说明本发明的内存控制器中的内存控制方法。图4是表示本发明的内存控制器中的内存控制方法的步骤的流程图。这里,图4的方法可以应用到图1或图2所示的内存控制系统中。该内存控制系统可以包括内存控制器1和存储器2,并且内存控制器1包括至少一个自刷新模块11、判断模块12以及控制逻辑模块13。该至少一个自刷新模块11中的每一个分别与存储器2中的至少一个存储芯片连接,并且至少一个自刷新模块的每一个分别可以对所连接的存储芯片进行刷新。
[0060] 首先,例如在具有应用本发明的内存控制方法的内存控制系统的设备(例如、信息处理终端、计算机等)接通电源而启动的情况下,本发明的内存控制方法开始执行(步骤S11)。
[0061] 之后,在步骤S12,分别判断至少一个自刷新模块中的每一个所连接的存储芯片的类别,从而生成与至少一个自刷新模块中的每一个对应的判断结果。
[0062] 具体地,判断模块12以自刷新模块为单位,判断与各个自刷新模块连接的至少一个存储芯片的类别。
[0063] 例如,在实施例1中,步骤S12可以进一步包括:基于寄存器中的标志值来分别判断至少一个自刷新模块中的每一个所连接的存储芯片的类别。具体地,如上所述,在寄存器14中预存了用于表示至少一个自刷新模块中的每一个所连接的存储芯片的类别的标志值,因此判断模块12根据在寄存器14中存储的关于各个自刷新模块的标志值,判断各个自刷新模块所连接的存储芯片的类别。
[0064] 此外,在实施例2中,步骤S12可以进一步包括:基于至少一个管脚的状态来分别判断与至少一个管脚的每个管脚对应的自刷新模块所连接的存储芯片的类别。具体地,如上所述,根据各个自刷新模块分别设置管脚,并且将其与判断模块12连接。这里,可以设置与特定自刷新模块对应的管脚在通电时的状态(高电平/低电平),并且该状态(高电平/低电平)可以表示该特定自刷新模块所连接的存储芯片的类别。在这种情况下,判断模块12读取各个管脚的状态,根据各个管脚的状态来判断对应的自刷新模块所连接的存储芯片的类别。在这里,存储芯片的类别表示该存储芯片是否需要通过刷新来保持数据。
[0065] 之后,在步骤S13,在判断结果表示特定的自刷新模块所连接的存储芯片为第一类别的情况下,关闭该特定的自刷新模块。
[0066] 具体地,控制逻辑模块13根据判断模块12判断出的判断结果,关闭各个自刷新模块。在关于特定的自刷新模块的判断结果表示该自刷新模块所连接的存储芯片不需要进行刷新(如,NVRAM)的情况下,关闭该特定的自刷新模块。此外,图4的方法还可以包括步骤:在关于特定的自刷新模块的判断结果表示该自刷新模块所连接的存储芯片需要进行刷新的情况下,启动该特定的自刷新模块。
[0067] 在这里,在针对DRAM设计的内存控制器中,自刷新模块在初始状态下都设置为启动,因此在本发明的内存控制方法中,可以仅在关于特定的自刷新模块的判断结果表示该自刷新模块所连接的存储芯片不需要进行刷新的情况下,关闭该特定的自刷新模块。
[0068] 此外,在本发明中,在步骤S12,判断模块12也可以以自刷新模块中包括的刷新单元为单位,判断与各个刷新单元对应的存储芯片的类别,并生成关于各个刷新单元的判断结果。具体地,在图3的例子中,与自刷新模块11A的第一刷新单元对应的存储芯片A11、A12为NVRAM、与自刷新模块11A的第二刷新单元对应的存储芯片A21、A22为DRAM的情况下,判断模块12根据寄存器14中存储的标志值或与各个刷新单元对应的管脚的状态,关于自刷新模块11A的第一刷新单元和第二刷新单元判断出与第一刷新单元对应的存储芯片不需要刷新、与第二刷新单元对应的存储芯片需要刷新。
[0069] 之后,在步骤S13,也可以是,在判断结果表示与特定的刷新单元对应的存储芯片为第一类别(不需要刷新)的情况下,关闭该特定的刷新单元。具体地,控制逻辑模块13在与特定的刷新单元对应的存储芯片的类别为不需要刷新的类别的情况下,关闭该特定的刷新单元。例如,在图3的例子中,控制逻辑模块13接收的判断结果表示与第一刷新单元对应的存储芯片A11和A12不需要刷新的情况下,关闭该第一刷新单元。如上所述,在自刷新模块具有多个刷新单元的内存控制器中,也可以在初始状态下将多个刷新单元都设置为启动,因此可以仅在关于特定的刷新单元的判断结果表示与该刷新单元对应的存储芯片不需要进行刷新的情况下,关闭该特定的刷新单元。
[0070] 在上面详细描述了本发明的各个实施例。然而,本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例进行各种修改,组合或子组合,并且这样的修改应落入本发明的范围内。