首页> 中国专利> 一种集成电路超低功耗存储器内容保持系统、方法和介质

一种集成电路超低功耗存储器内容保持系统、方法和介质

摘要

本发明公开了一种集成电路超低功耗存储器内容保持系统、方法及存储介质,属于集成电路设计行业。该系统包括:电源管理模块、CPU、数据搬运子系统。数据搬运子系统包括,主存储器,非易失性存储器,数据搬运控制器以及数据压缩解压模块。数据搬运控制器用于在接收CPU发出的数据搬运指令后,将主存储器中的数据搬运到数据压缩解压模块进行压缩,以及通电后将数据压缩解压模块解压后的数据搬运到主存储器。数据压缩解压模块用于对数据搬运控制器搬运来的主存储器中的数据进行压缩以及对非易失性存储器中的数据进行解压。本发明的应用在不丢失数据的前提下降低功耗,提高响应速度。

著录项

  • 公开/公告号CN112363766A

    专利类型发明专利

  • 公开/公告日2021-02-12

    原文格式PDF

  • 申请/专利权人 北京百瑞互联技术有限公司;

    申请/专利号CN202011243650.0

  • 发明设计人 葛颖峰;徐祎喆;朱勇;

    申请日2020-11-10

  • 分类号G06F9/4401(20180101);G06F1/3234(20190101);

  • 代理机构11862 北京国科程知识产权代理事务所(普通合伙);

  • 代理人曹晓斐

  • 地址 100085 北京市海淀区上地信息路2号(北京实创高科技发展总公司2-1号2-2号)2-1幢7层C栋7-1-1

  • 入库时间 2023-06-19 09:54:18

说明书

技术领域

本申请涉及集成电路设计技术领域,特别是一种集成电路超低功耗存储器内容保持系统、方法和介质。

背景技术

在嵌入式系统中,对于低功耗有着非常苛刻的要求。特别是对于系统静默时期的静态功耗而言,往往希望静态功耗能够尽量接近0,从而可以延长电池供电状态下的待机时间。于此同时,应用上的需求又要求系统能够响应外部信号,并且立刻做出回应。

于是现代集成电路设计中引入的一项技术:睡眠。这项技术要求为集成电路芯片的不同部分独立供电,当系统进入睡眠状态后,将系统中尽可能多的部分的供电完全切断,从而保证系统在睡眠的状态下功耗非常低,但此方法牺牲了系统的响应速度。

在追求极致的低功耗的前提下,面临着主存储器断电后会导致数据丢失,使用存储器保持的IP也无法将存储器的掉电功耗做到0的问题。而且主存储器中的内容存入非易失性存储器需要时间,唤醒以后从非易失性存储器中读出来恢复到主存储器中也需要时间。特别是从存储器恢复的时间会影响系统的响应速度。这种响应速度经常是协议或者规范要求规定的,无法宽容。另外,在一些高实时性的系统中响应速度不够会导致非常严重的灾难。

发明内容

集成电路超低功耗存储器内容保持方法解决了主存储器断电后会导致数据丢失,使用存储器保持的IP也无法将存储器的掉电功耗做到0的问题,以及响应速度慢的问题。

为了解决上述问题,本发明采用的一个技术方案是:提供一种集成电路超低功耗存储器内容保持系统,包括电源管理模块、CPU、数据搬运子系统。数据搬运子系统包括主存储器、非易失性存储器、数据搬运控制器以及数据压缩解压模块。数据搬运控制器用于在接收CPU发出的数据搬运指令后,将主存储器中的数据搬运到数据压缩解压模块进行压缩;以及通电后将数据压缩解压模块解压后的数据搬运到主存储器。数据压缩解压模块用于对数据搬运控制器搬运来的主存储器中的数据进行压缩以及对读取的非易失性存储器中的数据进行解压。数据搬运控制器与主存储器直接连接,并且数据搬运控制器与非易失性存储器直接连接。在CPU发出数据搬运指令之后,集成电路只保留数据搬运子系统的供电,将经过数据压缩解压模块压缩后的数据全部存储到非易失性存储器之后,中断数据搬运子系统的供电。电源管理模块接收到系统恢复请求后,首先打开数据搬运子系统的电源,在数据搬运子系统将数据压缩解压模块解压后的数据搬运到主存储器之后,打开集成电路中除数据搬运子系统之外的其他模块电源。数据压缩解压模块对数据搬运控制器搬运来的主存储器中的数据进行压缩以及对读取的非易失性存储器中的数据进行解压的过程,包括使用LZ4算法进行解压或压缩,利用标准LZ4数据流格式除去数据头以及总和检验码之后的数据流格式进行解压或压缩。

本发明采用的另一个技术方案是:提供一种集成电路超低功耗存储器内容保持方法。其包括:数据读出步骤,根据CPU发出的数据搬运指令利用数据搬运控制器将主存储器中的数据搬运到数据压缩解压模块,利用数据压缩解压模块对主存储器中的数据进行压缩,将压缩后的数据存储到非易失性存储器;以及数据写入步骤,根据系统的恢复请求将非易失性存储器中的数据读取到数据压缩解压模块,利用数据压缩解压模块对非易失性存储器中的数据进行解压,利用数据搬运控制器将解压后的数据搬运至主存储器中。

在本申请的另一个技术方案中,提供一种计算机可读存储介质,其存储有计算机指令,其中计算机指令被操作以执行方案中的一种集成电路超低功耗存储器内容保持方法。

本申请技术方案可以达到的有益效果是:计算机系统在进入睡眠或唤醒状态时不丢失数据的前提下降低功耗,提高系统响应速度,降低系统唤醒延迟,无损高效压缩,满足对时间要求很严苛的应用需要。

附图说明

图1为本发明一种集成电路超低功耗存储器内容保持系统一个实施方式的示意图;

图2为本发明数据压缩解压模块采用LZ4算法一个具体实施例的示意图;

图3为本发明一种集成电路超低功耗存储器内容保持方法另一个实施方式的示意图。

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

随着计算机系统的高速发展,对低功耗的要求越来越高,希望静态功耗能够尽量接近0。从而可以延长电池供电状态下的待机时间,应用上的需求又要求系统能够响应外部信号,并且立刻做出回应。而计算机系统存在主断电后数据丢失以及当读写大量数据时响应速度慢的问题。

图1为本发明一种集成电路超低功耗存储器内容保持系统一个实施方式的示意图。

在该具体实施方式中集成电路超低功耗存储器内容保持系统,其包括:电源管理模块、CPU、数据搬运子系统。还包括:

数据搬运子系统,包括主存储器、非易失性存储器、数据搬运控制器以及数据压缩解压模块。

数据搬运控制器,用于在接收CPU发出的数据搬运指令后,将主存储器中的数据搬运到数据压缩解压模块进行压缩;以及通电后将数据压缩解压模块解压后的数据搬运到主存储器。

数据压缩解压模块,用于对数据搬运控制器搬运来的主存储器中的数据进行压缩以及对读取的非易失性存储器中的数据进行解压。

在本发明的一个具体实施例中,在进行集成电路设计时数据搬运子系统包括主存储器RAM、非易失性存储器FLASH、数据搬运控制器、数据压缩解压模块、存储控制器以及总线控制器等。存储控制器将存储设备发出的读、写等命令转换成能够识别的信号,总线控制器管理总线的使用。

在本发明的一个具体实施例中,数据搬运控制器与主存储器RAM直接连接,以及数据搬运控制器与非易失性存储器FLASH直接连接。中间不穿过其他除数据压缩解压模块之外的逻辑模块,使得数据搬运控制器拥有每个时钟周期读取4字节的能力。采用非总线型电路避免了总线等待延迟风险,使得主存储器RAM读取通路达到了理论极限带宽,提高搬运速度,缩短工作时间。数据搬运控制器与非易失性存储器直接连接,所以主存储器RAM与非易失性存储器之间只有数据搬运控制器进行数据搬运工作,因此数据压缩解压模块可以1个时钟周期内完成主存储器RAM的读/写,因此不需要额外的高速缓冲电路。

在本发明的一个具体实施例中,数据压缩解压模块采用LZ4算法进行数据压缩及解压工作,LZ4算法更加注重压缩与解压的速度,用最少的步骤来完成匹配查找和编码,从而尽可能提高数据流带宽,由于算法执行在芯片内部,因此利用标准LZ4数据流格式除去数据头以及总和检验码之后的数据流格式进行数据的解压或压缩。

在本发明的一个具体实施例中,非易失性存储器FLASH拥有4线并行操作的能力。如果不考虑准备操作需要消耗的时间,在现有技术中对于非易失性存储器FLASH一个周期最多可以读/写4比特数据,也就是说用一个周期从主存储器RAM获取的数据最少需要8个时钟周期才能写入到非易失性存储器FLASH中,反之亦然。粗略的推算8KB的数据量在64MHz的时钟频率下需要250us的时间进行操作。这250us的时间中大量的电力会被消耗在非易失性存储器FLASH操作上,而非易失性存储器FLASH的操作速度是有工艺结构决定的,在绝大部分场景下无法改变。因此通过数据压缩减小需要经过非易失性存储器FLASH读写的数据量,加速整个过程,达到节省功耗的目的。

在本发明的一个具体实施例中,在计算机进入睡眠之前,数据搬运控制器接收CPU发出的数据搬运指令后电源管理模块中断计算机系统除数据搬运子系统之外的其他部分电源,数据搬运控制器开始工作,数据搬运控制器将搬运来的主存储器RAM中存储的数据通过LZ4算法进行压缩,压缩后得到一个压缩包写入非易失性存储器FLASH,将主存储器RAM中存储的数据全部搬运并存储到非易失性存储器FLASH后,数据压缩工作就完成了,此时对数据搬运子系统下电,计算机进入睡眠。此过程便于计算机进入睡眠后不会造成数据丢失。

在本发明的一个具体实施例中,在计算机需要唤醒时,电源管理模块接收到集成电路或外部信号触发的系统恢复请求后,首先打开数据搬运子系统的电源,数据压缩解压模块将通过读取来的非易失性存储器FLASH中存储的数据通过算法进行解压,解压得到压缩前的源数据,源数据通过数据搬运控制器将解压后的非易失性存储器FLASH中存储的数据搬运到主存储器RAM,将非易失性存储器FLASH中存储的数据全部搬运并存储到主存储器RAM,数据解压工作就完成了,此时对计算机的CPU等其他子系统通电,计算机唤醒进入工作状态。此过程便于计算机唤醒后数据快速恢复。

图2为本发明数据压缩解压模块采用LZ4算法一个具体实施例的示意图

在该具体实施例中,数据压缩解压模块采用LZ4算法进行数据压缩解压。当集成电路中有两块RAM时,可以直接获得双倍的RAM带宽,RAM0主要存放源数据,其余空间用以缓冲,RAM1用以存放LZ4算法匹配字符及距离的哈希表,LZ4算法通过计算哈希表来查找匹配字符串。哈希表使用(Key,Value)的结构来表示映射关系。Key是4个字节的二进制数。Value为4个字节表示数据在数据块中的位置。

在该具体实施例中,LZ4算法的数据块格式包括:1字节的令牌、0~N字节的字符串长度标识,0~M字节的未压缩字符串、2字节的偏移量、0~Z字节的匹配长度。LZ4算法使用一个滑动窗口和一个预读缓存区来实现数据压缩解压。预读缓冲区用来保存当前输入数据的前4个字节,也就是32bits,正好是一次RAM读取的宽度。然后将这4个字节进行哈希计算后,判断当前字节是否曾经在滑动窗口中出现过。若在滑动窗口中出现过则可以进行匹配。然后继续滑动窗口向后搜索。整个滑动结束后用当前字节与之前出现过的字节的距离来代表实际数据,从而实现数据的压缩。LZ4算法压缩以后数据量一般情况下大约是原始数据量的1/2~1/3之间,整个系统睡眠/恢复时间可以缩短到150us以内。

在该具体实施例中,LZ4算法中滑动窗口的宽度是可变的。窗口越长平均的压缩率就越高。一般这个窗口长度可能是20字节或者几十KB。越长的窗口就需要增加遍历滑动窗口所需要的时间。还会增大哈希表需要的存储空间,同时也会增大出现哈希冲突的概率。因此选择的滑动窗口的宽度为最小保存数据量8KB,在最少数据时可以用一次滑动完成压缩。

在该具体实施例中,哈希算法都需要先规定哈希计算的数据块的大小。也就是以page来压缩数据。Page的尺寸通常是4KB~32KB。因此可以直接用滑动窗口一样大的8KB作为我们单个page的操作对象。哈希计算完成后就需要计算匹配距离等信息,然后将此信息打包后存储到非易失性存储器FLASH中。

在该具体实施例中,在进行解压时,由于非易失性存储器FLASH中存储的数据是连续的流信息,先一次性读取不超过8KB的数据量存入RAM缓冲区,然后开始解压。数据中的一部分数据块为不重复数据,直接复制到原始数据恢复区RAM中,另一部分为重复数据,可以迅速通过距离找到未压缩数据段,然后复制到原始数据恢复区RAM中,解压就完成了。LZ4算法解压要求的运算量很低,使得整个系统的瓶颈不会发生在数据解压的过程上。

在该具体实施例中,哈希表不需要搬运。它是动态产生和消亡的,存储在主存储器RAM中,用完后丢弃。

图3所示为本发明一种集成电路超低功耗存储器内容保持方法另一个实施方式的示意图。

在该具体实施方式中,集成电路超低功耗存储器内容保持方法主要包括:提供一种集成电路超低功耗存储器内容保持方法。其包括:数据读出步骤,计算机进入睡眠之前,数据搬运控制器接收CPU发出的数据搬运指令后将主存储器中的数据搬运到数据压缩解压模块进行压缩,将压缩后的主存储器中的数据写入非易失性存储器。数据写入步骤,计算机需要唤醒时,电源管理模块接收到集成电路或外部信号触发的系统恢复请求后,数据压缩解压模块通过读取非易失性存储器中的数据进行解压,解压后的非易失性存储器中的数据经过数据搬运控制器搬运到主存储器。

在本发明的一个具体实施例中,本申请的集成电路超低功耗存储器内容保持方法包括过程S101,数据读出步骤,包括:计算机进入睡眠之前,数据搬运控制器接收CPU发出的数据搬运指令后,电源管理模块中断计算机系统除数据搬运子系统之外的其他部分电源。数据搬运控制器将主存储器中的数据搬运到数据压缩解压模块进行压缩,数据压缩解压模块采用LZ4算法进行压缩,LZ4算法将主存储器RAM中的数据通过匹配字符及距离进行压缩,压缩后的主存储器中的数据写入到非易失性存储器。由于数据压缩解压模块可以1个时钟周期内完成主存储器的读/写,所以不需要额外的高速缓冲电路。纯硬件的集成电路设计,芯片的CPU在进入休眠之前已经掉电,那么芯片的主存储器RAM实际上是被大量释放的。于是就有了大量的存储器空间,从而为无损数据压缩/解压算法提供数据空间存放数据压缩解压所需的字典。此过程便于计算机进入睡眠后不会造成数据丢失。

在本发明的一个具体实施例中,本申请的集成电路超低功耗存储器内容保持方法包括过程S102,数据读出步骤,包括:计算机需要唤醒时,电源管理模块接收到集成电路或外部信号触发的系统恢复请求后,数据压缩解压模块通过读取非易失性存储器中的数据进行解压,此时非易失性存储器中的数据即压缩后的压缩包,LZ4算法解压要求的运算量很低,使得整个系统的瓶颈不会发生在数据解压的过程上。LZ4算法将非易失性存储器FLASH中的数据通过匹配字符及距离进行解压,其中一部分数据块为不重复数据,直接复制到原始数据恢复区RAM中,另一部分为重复数据,可以迅速通过距离找到未压缩数据段,然后复制到原始数据恢复区RAM中,解压后的非易失性存储器FLASH中的数据通过数据搬运控制器搬运到主存储器RAM。此过程便于计算机唤醒后数据快速恢复。

本发明提供的一种集成电路超低功耗存储器内容保持系统,可用于执行上述任一实施例描述的集成电路超低功耗存储器内容保持方法,其实现原理和技术效果类似,在此不再赘述。

在本发明的另一个具体实施方式中,一种计算机可读存储介质,其存储有计算机指令,其特征在于,计算机指令被操作以执行任一实施例描述的集成电路超低功耗存储器内容保持方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号