一种SRAM位元与非易失性存储位元组成的复合阵列模块及其读写控制方法与流程

文档序号:11950043阅读:329来源:国知局
一种SRAM位元与非易失性存储位元组成的复合阵列模块及其读写控制方法与流程

本发明涉及半导体存储技术领域,尤其涉及一种SRAM位元与非易失性存储位元组成的复合阵列模块及其读写控制方法。



背景技术:

在物联网领域和穿戴式设备等许多应用场景中,对集成电路的功耗要求非常严格,以满足长距离微波供电或者长期难以更换电池等应用需求。因此,在集成电路设计时,除了采用更小的半导体工艺节点以降低逻辑电路的功耗外,还需要综合考虑存储器(包括运行内存和程序存储器)的读写功耗,在存储器的动态运行功耗和静态待机功耗之间做出合理优化,以降低整体能耗。这个优化的过程同时需要考虑到应用的动态/静态运行时间比,以及不同功耗模式之间转换所需的时间,以不影响系统整体性能。

目前主流的半导体存储器解决方案,普遍采用静态随机存储器(SRAM)作为系统运行内存,采用闪存存储器(FLASH memory)作为程序存储器。在系统处于运行状态时,程序和数据都存在SRAM中,逻辑处理单元与SRAM直接交互,而由于SRAM属于易失性存储器,掉电则数据丢失,因此系统无论处于运行状态,还是待机状态,SRAM存储器都处于上电工作状态,以保证数据不丢失,只有当系统确认关闭之前,才会将SRAM中的所有必要数据写回FLASH中稳定存储。因此,SRAM的动态功耗和静态功耗成为了系统运行状态时,存储器的主要能耗来源。

由于SRAM的静态功耗较大,德州仪器曾提出的方案(S.Khanna et al,Solid-State Circuits Conference(ISSCC),2013)以降低系统静态功耗:该方法利用铁电(FRAM)存储器与SRAM存储器组合,当系统处于空闲状态时,系统的逻辑处理单元负责将SRAM中的数据整体搬移到FRAM存储器中,利用FRAM的非易失性存储数据,搬移完成后关闭SRAM存储器和FRAM存储器以将系统静态功耗降到最低。但该方法的缺点是:需要占用系统本身的逻辑处理单元负责数据搬移,对系统运行产生中断性影响,而且FRAM存储器和SRAM存储器相互独立,均有各自的接口和读写驱动电路,从而导致该复合存储芯片面积过大,数据来回搬移的延时和功耗大。



技术实现要素:

本发明为克服上述的不足之处,目的在于提供一种SRAM位元与非易失性存储位元组成的复合阵列模块,主要包括逻辑控制模块、地址解析模块、读写驱动感应电路、SRAM阵列、NVM阵列;该模块具备更高的芯片集成度,降低了成本,也降低了数据搬移延时和功耗。

本发明另一目的在于提供一种SRAM位元与非易失性存储位元组成的复合阵列模块的读写控制方法,该复合模块可随时根据主机端需要进入休眠状态:将数据从SRAM阵列搬移至NVM阵列存储,并关闭SRAM阵列和NVM阵列,将复合模块静态能耗降至最低;当这些数据需要重新取用时,可快速唤醒复合模块,打开SRAM阵列和NVM阵列,并通过查表的方式,直接NVM阵列或SRAM阵列中读取数据供逻辑单元处理,而省去了把所有数据从NVM阵列搬移至SRAM阵列的过程,缩短了复合模块的唤醒时间,从而不会影响系统运行速度。

本发明是通过以下技术方案达到上述目的:一种SRAM位元与非易失性存储位元组成的复合阵列模块,包括:逻辑控制模块、物理地址解析模块、读写驱动感应电路、SRAM阵列、NVM阵列;逻辑控制模块分别与物理地址解析模块、读写驱动感应电路连接;物理地址解析模块分别与SRAM阵列、NVM阵列相连;读写驱动感应电路分别与SRAM阵列、NVM阵列相连。

作为优选,所述的物理地址解析模块在逻辑控制模块的控制下,解析物理地址并根据该地址打开SRAM阵列和NVM阵列中的物理存储单元,使SRAM阵列和NVM阵列进入可被读写的状态。

作为优选,所述的读写驱动感应电路驱动SRAM阵列与NVM阵列的读和写;具备写驱动、读感应放大和数据纠错功能。

作为优选,所述SRAM阵列、NVM阵列用于存储运行数据及逻辑地址映射表,二者共用地址解析模块与读写驱动感应电路。

作为优选,所述SRAM阵列与NVM阵列的容量可相同或者NVM阵列的容量大于SRAM阵列的容量。

作为优选,所述逻辑地址映射表表示的是数据的逻辑地址与物理地址的映射关系以及与每一个逻辑地址对应的一个阵列标志位,标志位只有0和1两种有效状态,标志位为0代表该逻辑地址对应的最新数据存储于SRAM阵列中;标志位为1代表该逻辑地址对应的最新数据存储于NVM阵列中。

作为优选,所述的NVM阵列为STT-MRAM、FRAM、PCRAM、RRAM中的任意一种。

一种SRAM位元与非易失性存储位元组成的复合阵列模块的读写控制方法,该复合阵列模块包括读状态、写状态和休眠状态三种工作状态;三种工作状态根据读指令、写指令、休眠指令可相互切换;读状态、写状态和休眠状态分别对应读流程、写流程和休眠流程;其中读、写流程在执行过程中不可被终止,休眠流程在执行过程中可随时被读指令或写指令终止。

作为优选,所述复合阵列模块的读、写与休眠流程完全受主机端指令控制,流程如下:

1)复合阵列模块解析所接受到的主机端发送的控制指令;

2)判断是否为读指令,若是进入读流程;若不是,进入步骤3);

3)判断是否为写指令,若是进入写流程;若不是,进入步骤4);

4)判断是否为休眠指令,若是进入休眠流程并返回继续等待主机端发送的下一个指令;若不是,则向主机端报错。

作为优选,该复合阵列模块可随时根据主机端需要进入休眠状态,并将数据从SRAM阵列搬移至NVM阵列存储,关闭SRAM阵列和NVM阵列;当数据需要重新取用时,可快速唤醒复合阵列模块,并打开SRAM阵列和NVM阵列,通过查询逻辑地址映射表的方式直接从NVM阵列或SRAM阵列中读取数据。

本发明的有益效果在于:1)本发明可有效解决系统静态待机能耗较大的问题,并且不会对系统运行速度产生中断性影响,保证了系统运行性能;2)相比传统的解决方案具备更高的芯片集成度,降低了成本,数据搬移延时和功耗。

附图说明

图1是本发明的基本结构示意图;

图2是本发明的逻辑地址映射表示意图;

图3是本发明复合阵列模块工作状态及状态切换示意图;

图4是本发明的读写控制总流程框图;

图5是本发明工作时的读流程示意图;

图6是本发明工作时的写流程示意图;

图7是本发明工作时的休眠流程示意图。

具体实施方式

下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:

实施例:如图1所示,一种SRAM位元与非易失性存储位元组成的复合阵列模块包含逻辑控制模块1(以下简称“控制模块1”),物理地址解析模块2,读写驱动感应电路3(以下简称“读写模块3”),SRAM阵列4和非易失性存储阵列(以下简称“NVM阵列”)5。

控制模块1的功能是控制复合阵列模块内部所有模块的功能与时序,具体包括解析所有从主机端(HOST)送来的控制命令(Command Code)和逻辑地址(Logic Address),缓存读写数据(Data Buffering),控制物理地址解析模块2以及读写模块3正常工作,将主机端送来的数据正确写入SRAM阵列4和NVM阵列5,或者将数据从这两个阵列中正确读出。

物理地址解析模块2负责解析控制单元送来的物理地址,并根据该物理地址打开SRAM阵列4和NVM阵列5中相应的物理存储单元,使其进入可被读写的状态。

读写模块3负责驱动SRAM阵列4与NVM阵列5的读和写:将控制模块1送来的数据正确写入存储阵列,或者将数据从存储阵列中读出并送给控制模块1,具体包括写驱动(Write Driving),读感应放大(Sense Amplifier)和数据纠错(ECC)等。

SRAM阵列4和NVM阵列5都是数据存储阵列,NVM阵列可以是STT-MRAM(Spin-Transfer-Torque Magnetic Random Access Memory),FRAM(Ferroelectric Random Access Memory),也可以是PCRAM(Phase Change Random Access Memory)或者RRAM(Resistance Random Access Memory)。NVM阵列的容量与SRAM阵列一样,两个阵列的编址方式也完全相同。两个阵列中除了存储数据之外,还需要负责存储一张逻辑地址映射表(Logic Address Mapping Table,LAMT),这张表中存储的是数据的逻辑地址与物理地址的映射关系,以及与每一个逻辑地址对应的一个阵列标志位,标志位只有“0”和“1”两种有效状态,当标志位为“0”时,代表该逻辑地址对应的最新数据存在于SRAM阵列中,当标志位为“1”时,代表该逻辑地址对应的最新数据存在于NVM阵列中。LAMT的结构如图2所示。当主机端将所需读写的数据的逻辑地址送入控制模块1之后,控制模块1会解析该逻辑地址,并通过查找LAMT得到该数据的物理地址,然后将物理地址送给物理地址解析模块2,由物理物理地址解析模块2解析并根据解析得到的地址打开SRAM阵列4或NVM阵列5中相应的物理存储单元;

数据在SRAM阵列4和NVM阵列5之间的搬移行为全部由复合模块内部控制电路负责调度完成,从而无需占用主机端逻辑处理单元的控制资源,不会影响因数据搬移而产生的系统运行性能降低。

另外,由于本发明中的SRAM阵列4和NVM阵列5共用地址解析电路以及读写驱动电路,因此比德州仪器曾提出的方案(S.Khanna et al,Solid-State Circuits Conference(ISSCC),2013)具有更小的芯片面积,增加了芯片集成度,降低了成本,数据搬移延时和功耗。

一种SRAM位元与非易失性存储位元组成的复合阵列模块的读写控制方法,该复合模块可随时根据主机端需要进入休眠状态:将数据从SRAM阵列搬移至NVM阵列存储,并关闭SRAM阵列和NVM阵列,将复合模块静态能耗降至最低;当这些数据需要重新取用时,可快速唤醒复合模块,打开SRAM阵列和NVM阵列,并通过查表的方式,直接NVM阵列或SRAM阵列中读取数据供逻辑单元处理,而省去了把所有数据从NVM阵列搬移至SRAM阵列的过程,缩短了复合模块的唤醒时间,从而不会影响系统运行速度。

复合阵列模块总共会处于3种不同的工作状态,分别是“读状态”,“写状态”和“休眠状态”,3种工作状态之间会由于收到的主机端控制指令不同而相互切换,复合阵列模块中的控制模块1主要功能之一就是随时接收主机端送过来的控制指令并解析成相应的工作状态,然后控制复合模块进入相应的工作流程,“读状态”对应“读流程”,“写状态”对应“写流程”,“休眠状态”对应“休眠流程”,“读流程”和“写流程“在执行过程中不可被打断,“休眠流程”在执行过程中可以随时被读控制指令或者写控制指令终止,进而根据指令进入相应的读写流程。状态切换示意图如图3所示。

复合阵列模块的读写与休眠工作完全受主机端指令控制,总工作流程图如图4所示,复合模块根据所接受到的主机端控制指令进入相应的工作流程:“读流程”,“写流程”和“休眠流程”,执行流程完毕后,根据获取到的新的主机端控制指令再次进入相应的工作流程。流程如下:1)复合阵列模块解析所接受到的主机端发送的控制指令;

2)判断是否为读指令,若是进入读流程;若不是,进入步骤3);

3)判断是否为写指令,若是进入写流程;若不是,进入步骤4);

4)判断是否为休眠指令,若是进入休眠流程并返回继续等待主机端发送的下一个指令;若不是,则向主机端报错。

其中,“读流程”,“写流程”和“休眠流程”的具体细节分别如图5,图6,图7所示。

“读流程”如图5所示:

1)控制模块1持续监听主机端是否有控制指令发送过来,如果没有,则继续监听,如果有,则接收并解析该控制指令是否为“读指令”,如果是,则前往步骤(2),且一旦进入步骤(2),则必须执行完整个“读流程”之后方可执行新的控制指令;否则,则解析该指令是否为“写指令”,如果是,则跳往“写流程”,否则,则解析该指令是否为“休眠指令”,如果是,则跳往“休眠流程”,如果不是,则向主机端报错;

2)控制模块1打开自身数据缓存区,负责接收主机端发送过来的逻辑地址,并查找LAMT表格,得到与该逻辑地址对应的阵列标志位以及物理地址;

3)控制模块1将物理地址和阵列标志位均送给物理地址解析模块2解析,如果阵列标志位为“0”,则前往步骤(4),否则,跳往步骤(5);

4)物理地址解析模块2根据地址解析结果,打开SRAM阵列4中相应的物理存储单元,然后由控制模块1控制读写模块3读出该物理单元中的数据,完成纠错,跳往步骤(7);

5)物理地址解析模块2根据地址解析结果,打开NVM阵列5中相应的物理存储单元,然后由控制模块1控制读写模块3读出该物理单元中的数据,完成纠错;

6)由物理地址解析模块2根据地址解析结果,打开SRAM阵列4中相应的物理存储单元,读写模块3将完成纠错的数据写入SRAM中的存储单元,并将LAMT中与该地址对应的阵列标志位改为“0”;

7)读写模块3将完成纠错后的数据送入控制模块1中的数据缓存中,随时供主机端读取,控制模块1给主机端发送“读流程完成”信号;

8)等主机端将数据从缓存区取走之后,“读流程”结束,并跳回步骤(1)。

“写流程”如图6所示:

1)控制模块1持续监听主机端是否有控制指令发送过来,如果没有,则继续监听,如果有,则接收并解析该控制指令是否为“写指令”,如果是,则前往步骤(2),且一旦进入步骤(2),则必须执行完整个“写流程”之后方可执行新的控制指令;否则,则解析该指令是否为“读指令”,如果是,则跳往“读流程”,否则,则解析该指令是否为“休眠指令”,如果是,则跳往“休眠流程”,如果不是,则向主机端报错;2)控制模块1打开自身数据缓存区,负责接收主机端发送过来的逻辑地址和需要写入的数据,并根据逻辑地址查找LAMT表格,得到与该逻辑地址对应的物理地址;

3)控制模块1将物理地址送给物理地址解析模块2解析,物理地址解析模块2根据地址解析结果,打开SRAM阵列4中相应的物理存储单元,准备接受数据写入

4)控制模块1将自身缓存区内待写入的数据送给读写模块3,由读写模块3对该数据完成纠错编码之后,直接写入SRAM阵列4中相应的物理存储单元;

5)控制模块1查找LAMT表格中与本次写入数据的逻辑地址对应的阵列标志位,并将其修改为“0”;

6)控制模块1给主机端发送“写流程完成”信号;

7)“写流程”结束,并跳回步骤(1)。

为了降低静态待机功耗,主机端可发送“休眠指令”给复合阵列模块,将复合阵列模块从运行状态切换到休眠状态。“休眠流程”的如图7所示:

1)控制模块1持续监听主机端是否有控制指令发送过来,如果没有,则继续监听,如果有,则接收并解析该控制指令是否为“休眠指令”,如果是,则前往步骤(2),否则,则解析该指令是否为“写指令”,如果是,则随时中断“休眠流程”并跳往“写流程”,否则,则解析该指令是否为“读指令”,如果是,则随时中断“休眠流程”并跳往“读流程”,如果不是,则向主机端报错;

2)控制模块1同时打开物理地址解析模块2和读写模块3,由物理地址解析模块2按顺序将SRAM阵列4中所有物理存储单元依次打开,由读写模块3驱动,将SRAM阵列4中所有存储数据依次读出,完成纠错,并写入NVM阵列5中,保持数据在SRAM阵列4中的物理地址与NVM阵列5中物理地址完全一致;

3)读写模块3将SRAM阵列4中所有的数据全部写入NVM阵列5之后,向控制模块1返回“数据搬移完成”信号;

4)控制模块1将LAMT表格中所有的阵列标志位全部修改为“1”,并关闭物理地址解析模块2,读写模块3,SRAM阵列4,以及NVM阵列5的所有电源,将复合阵列模块的能耗降至最低,然后向主机端返回“休眠完成”信号;

5)“休眠流程”结束。

以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1