一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储器、数据处理方法以及电子设备与流程

2022-04-27 10:59:43 来源:中国专利 TAG:


1.本公开的实施例涉及一种存储器、数据处理方法以及电子设备。


背景技术:

2.寄存器阵列是一种高速存储介质,应用于各类设计中。寄存器阵列是cpu内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。由于寄存器阵列的广泛使用,寄存器阵列的功耗对于芯片的整体功耗具有明显的影响。目前通常使用的一种动态功耗节省技术是将时钟开关(clock gating)应用到寄存器阵列,通过关断时钟,从而达到节省寄存器阵列的动态功耗的目的。


技术实现要素:

3.本公开至少一实施例提供一种存储器,包括:
4.多个存储段,每个存储段包括多个存储单元;
5.移位电路;以及
6.时钟控制电路;
7.其中,移位电路与所述多个存储段耦接,且配置为在每个存储段中分别在所述存储段的多个存储单元间进行移位操作;
8.所述时钟控制电路与所述多个存储段耦接,且配置为根据控制信号在所述多个存储段中为从所述存储器的起始位开始的一个或多个连续的存储段提供时钟信号。
9.例如,本公开一些实施例提供的存储器,还包括监测电路,其中,所述监测电路与所述多个存储段耦接,且配置为监测当前被提供所述时钟信号的一个或多个连续的存储段中至少距离所述存储器的起始位最远的存储段的使用情况,并根据所述使用情况,向所述时钟控制电路提供所述控制信号,以向所述距离所述存储器的起始位最远的存储段的下一个存储段提供所述时钟信号。
10.例如,在本公开一些实施例提供的存储器中,所述使用情况包括所述距离所述存储器的起始位最远的存储段的多个存储单元被占用率是否大于阈值。
11.例如,在本公开一些实施例提供的存储器中,所述监测电路包括多个子监测电路,与所述多个存储段分别对应,且每个子监测电路配置为监测对应的一个或多个存储段的使用情况。
12.例如,在本公开一些实施例提供的存储器中,所述移位电路包括多个子移位电路,与所述多个存储段分别对应,且每个子移位电路配置为向对应的一个或多个存储段进行所述移位操作。
13.例如,在本公开一些实施例提供的存储器中,所述时钟控制电路包括多个子时钟控制电路,与所述多个存储段分别对应,且每个子时钟控制电路配置为根据所述控制信号为对应的一个或多个存储段提供所述时钟信号。
14.例如,本公开一些实施例提供的存储器,还包括读写控制电路,其中,所述读写控
制电路与所述多个存储段耦接,且配置为响应于读操作,从所述读操作针对的存储段中获取读出数据,以及响应于写操作,将写入数据写入所述写操作针对的存储段。
15.例如,在本公开一些实施例提供的存储器中,所述读写控制电路包括数据读出电路,
16.所述数据读出电路与所述多个存储段以及所述移位电路耦接,且配置为响应于所述读操作,从所述读操作针对的多个存储段中获取所述读出数据,以及触发所述移位电路对所述读出数据对应的存储段执行所述移位操作。
17.例如,在本公开一些实施例提供的存储器中,所述读写控制电路包括数据写入电路,
18.所述数据写入电路与所述多个存储段耦接,且配置为响应于所述写操作,将所述写入数据写入所述多个存储段中未被使用的存储单元中距离所述存储器的起始位最近的存储单元中。
19.例如,在本公开一些实施例提供的存储器中,所述数据写入电路还配置为响应于当前的存储段写满之后,写入所述当前的存储段的下一个存储段。
20.例如,在本公开一些实施例提供的存储器中,所述存储器包括寄存器阵列,所述存储单元为寄存器单元。
21.本公开至少一实施例还提供一种存储器的数据处理方法,其中,所述存储器包括多个存储段以及时钟控制电路,每个存储段包括多个存储单元,
22.所述方法包括:
23.所述时钟控制电路根据控制信号,在所述多个存储段中为从所述存储器的起始位开始的一个或多个连续的存储段提供时钟信号,以对所述多个存储段中的数据进行处理。
24.例如,在本公开一些实施例提供的数据处理方法中,所述存储器还包括监测电路,所述监测电路与所述多个存储段耦接,
25.所述方法还包括:
26.所述监测电路监测当前被提供所述时钟信号的一个或多个连续的存储段中至少距离所述存储器的起始位最远的存储段的使用情况,并根据所述使用情况,向所述时钟控制电路提供所述控制信号,
27.所述时钟控制电路根据所述控制信号向距离所述存储器的起始位最远的存储段的下一个存储段提供所述时钟信号。
28.例如,在本公开一些实施例提供的数据处理方法中,所述存储器还包括读写控制电路,所述读写控制电路与所述多个存储段耦接,
29.所述方法还包括:
30.响应于读操作,利用所述读写控制电路从所述读操作针对的存储段中获取读出数据,以及
31.响应于写操作,利用所述读写控制电路将写入数据写入所述写操作针对的存储段。
32.例如,在本公开一些实施例提供的数据处理方法中,所述存储器还包括移位电路,所述移位电路与所述多个存储段耦接,
33.所述对所述多个存储段中的数据进行处理,包括:
34.响应于从所述读操作针对的存储段中获取读出数据,利用所述移位电路在所述读操作针对的存储段中的多个存储单元间进行移位操作。
35.例如,本公开一些实施例提供的数据处理方法,还包括:
36.利用所述监测电路确定所述移位操作后的当前被开启的一个或多个连续的存储段中距离所述存储器的起始位最远的存储段的使用情况,并根据所述使用情况,向所述时钟控制电路提供所述控制信号,以向所述距离所述存储器的起始位最远的存储段的下一个存储段提供所述时钟信号。
37.例如,在本公开一些实施例提供的数据处理方法中,对所述多个存储段中的数据进行处理,还包括:
38.响应于所述写操作,利用所述读写控制电路将所述写入数据写入所述多个存储段中未被使用的存储单元中距离所述存储器的起始位最近的存储单元中。
39.本公开至少一实施例还提供一种电子设备,包括如上述任一项所述的存储器。
附图说明
40.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
41.图1a-图1c示出了一种针对寄存器阵列中多个缓冲单元进行移位操作的示意图;
42.图2为一种基于移位电路的存储器的结构框图;
43.图3为本公开一实施例提供的一种存储器的结构框图;
44.图4为本公开一些实施例提供的另一种存储器的示例性结构图;
45.图5为本公开一实施例提供的一种监测子电路的结构框图;
46.图6为本公开一些实施例提供的一种数据处理方法的流程图;
47.图7为本公开一些实施例提供的一种监测电路的控制流程图;
48.图8为本公开一些实施例提供的一种电子设备的示意框图;
49.图9为本公开一些实施例提供的另一种电子设备的示意框图。
具体实施方式
50.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
51.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也
可能相应地改变。
52.下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。当本公开实施例的任一部件在一个以上的附图中出现时,该部件在每个附图中由相同或类似的参考标号表示。
53.例如,寄存器阵列包括多个寄存器单元,即多个缓冲单元(entry),每个缓冲单元中可以存放写入该寄存器阵列中的数据。将寄存器阵列中被占用的缓冲单元从起始地址(最低地址)开始集中进行排列,以形成连续地址的多个缓冲单元,例如,假设有n个被占用的连续地址(地址0~地址n-1)的多个缓冲单元。在进行读写操作时,通过移位算法(shift)对该连续的多个缓冲单元中的数据进行移位操作。
54.例如,如图1a所示,数据包packet0~packet(n-1)队列顺次写入寄存器阵列,并顺序存储在地址0~地址n-1(地址0对应于起始地址)对应的缓冲单元中,并设定数据包packet_1相对其它数据包具有高优先级(即优先读出该数据包)。如图1b所示,由于数据包packet_1具有高优先级,所以packet_1先于packet_0被读出,数据包packet_1被读出后,地址1对应的缓冲单元为空。地址1以上的非空缓冲单元中的数据包整体向下移动一位,使得地址1对应的缓冲单元写入packet_2,地址2对应的缓冲单元写入packet_3

地址n-2对应的缓冲单元写入packet_n-1,地址n-1对应的缓冲单元为空,而地址0对应的缓冲单元中的数据包packet_0保持不变,移位后的结果如图1c所示。若有新的数据包写入该寄存器阵列时,应当从移位后地址最低且为空的缓冲单元(例如,地址n-1对应的缓冲单元)中开始写入。上述实施例中可以使用基于shift算法的移位电路对缓冲单元中的数据包进行移位操作。例如,读操作时,由被读出数据包的缓冲单元(例如,地址1的缓冲单元)触发移位电路进行移位操作,例如:响应于地址m(m大于0且小于n)对应的缓冲单元中的数据包被读出,该缓冲单元为空,触发移位电路对高于地址m的缓冲单元中的数据包进行下移一位。之后,写操作时,对新的需要写入的数据包(packet)优先分配未使用的低位地址的缓冲单元。
55.图2示出一种基于移位电路的存储器。该存储器包括寄存器阵列10、时钟控制电路20、移位电路30以及读写控制电路40。时钟控制电路20与寄存器阵列10、移位电路30以及读写控制电路40分别耦接,移位电路30与寄存器阵列10耦接,读写控制电路40与寄存器阵列10耦接以及与移位电路30耦接。
56.芯片实际工作过程中,有些电路并不需要一直开启,时钟控制电路20就可以在这些电路(例如寄存器阵列10、移位电路30以及读写控制电路40不用的时候将其时钟信号关闭,信号不再翻转,从而能够有效减少动态功耗。时钟控制电路20的控制信号(en)输入端接收软件配置的控制信号,时钟控制电路20的时钟信号(clk)输入端接收例如系统时钟信号。通过该钟控制电路20,控制信号与时钟信号(clk)相互作用得到门控时钟信号(gclk),并将其发送到寄存器阵列10中,以控制寄存器阵列10打开或关闭。例如,en=0时,时钟控制电路20不向寄存器阵列10提供门控时钟信号,控制寄存器阵列10关闭,en=1时,时钟控制电路20向寄存器阵列10提供门控时钟信号,控制寄存器阵列10开启。
57.移位电路30对寄存器阵列10中的多个缓冲单元中的数据进行移位操作。例如,在读写控制电路40接收读操作信号以获取读出数据的地址,读写控制电路40释放读出数据的地址给移位电路30,移位电路30移除将读出数据的地址连续排布,并根据连续的地址在寄存器阵列中查询该对应的缓冲单元,并通过读写控制电路40读出该读出数据,该缓冲单元
变成空的缓冲单元,读出流程完成。然后,移位电路30控制地址高于该空的缓冲单元的一个或多个连续的缓冲单元中的数据依次下移一位,该空缓冲单元被占用。移位后,距离寄存器阵列初始地址最远的被占用的缓冲单元之后的高地址的缓冲单元为空的缓冲单元。读写控制电路40接收写操作信号以获取写入数据,并为移位后这些空的缓冲单元分配一个或多个地址,将该写入数据从分配的多个地址由低地址到高地址的空缓冲单元中依次写入,写入流程完成。读写控制电路40中存储有位图(bitmap),例如,位图可以为256bit数组,表示寄存器阵列中缓冲单元的物理地址的被使用状态。当移位电路30进行移位操作后,移位电路30触发读写控制电路40根据当前移位后的寄存器阵列的被使用状态更新该位图,以便于下一次在进行读操作时,读写控制电路40可以根据更新后的位图获取读出数据的新地址。
58.在上述情形中,时钟控制电路20控制整个寄存器阵列10进行开启或关闭,即便寄存器阵列中缓冲单元使用率低(例如只有少数缓冲单元被不断使用),仍然需要时钟控制电路20开启整个寄存器阵列10,而无法对部分寄存器阵列进行开启或关闭,导致整个寄存器阵列10的功耗较大。而且,通常情况下通过软件控制时钟控制电路20来对寄存器阵列10进行开启或关闭,软件控制的复杂流程和软件操作的延时导致不能及时进行时钟的开启和关闭,进而增大整个寄存器阵列10的功耗。
59.本公开至少一实施例提供一种存储器,该存储器包括:多个存储段,每个存储段包括多个存储单元;移位电路;以及时钟控制电路;其中,移位电路与多个存储段耦接,且配置为在每个存储段中分别在存储段的多个存储单元间进行移位操作;时钟控制电路与多个存储段耦接,且配置为根据控制信号在多个存储段中为从存储器的起始位开始的一个或多个连续的存储段提供时钟信号。
60.本公开的一些实施例还提供一种数据处理方法,应用于如上述存储器,该数据处理方法包括:时钟控制电路根据控制信号,在多个存储段中为从存储器的起始位开始的一个或多个连续的存储段提供时钟信号,以对多个存储段中的数据进行处理。
61.本公开的一些实施例还提供一种电子装置,该电子装置包括如上述存储器。
62.本公开的上述实施例提供的存储器和数据处理方法,通过将存储器分为多个存储段,利用时钟控制电路对每个存储段提供时钟信号,实现对部分存储段(一个或多个连续的存储段)进行单独的开启或关闭,例如,关闭未使用的存储段,动态开启使用的存储段,来降低存储器的动态功耗。
63.本公开的至少一实施例中,存储器包括寄存器阵列,存储单元为寄存器单元(即缓冲单元)。
64.下面结合附图对本公开的一些实施例及其示例进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
65.例如,图3为本公开一些实施例提供的一种存储器的结构框图。如图3所示,该存储器包括多个存储段100、时钟控制电路200、移位电路300、读写控制电路400,其中,每个存储段100包括多个存储单元。移位电路300、时钟控制电路200以及读写控制电路400分别与多个存储段100耦接。移位电路300配置为在每个存储段100中分别在存储段的多个存储单元间进行移位操作。时钟控制电路200配置为根据控制信号在多个存储段中为从存储器的起始位开始的一个或多个连续的存储段100提供时钟信号。读写控制电路400配置为响应于读操作,从读操作针对的存储段中获取读出数据,以及响应于写操作,将写入数据写入写操作
针对的存储段。
66.例如,参考前述实施例,该存储器包括寄存器阵列,该寄存器阵列包括多个存储段100(即寄存器段),也即,多个存储段100组成前述实施例中的寄存器阵列,存储单元为前述实施例中的缓冲单元。例如,多个存储段100包括按照低地址到高地址顺序连续排列的n个存储段,即存储段0~存储段n-1,每个存储段包括i个存储单元(图中未示出,可参考图1a-图1c),n和i为大于0的正整数;最低位地址为起始地址。
67.时钟控制电路200接收控制信号,并根据控制信号为存储段0~存储段m提供时钟信号,假设存储段0~存储段m为开启状态,能够读取或写入数据。例如,时钟控制电路200包括时钟信号接收端以接收例如系统时钟信号,包括控制信号接收端以接收控制信号。每个存储段的缓冲单元需要时钟信号才能进行工作,时钟控制电路200根据控制信号停止向某个存储段提供时钟信号,则该存储段将被关闭,对应地时钟控制电路200根据控制信号持续向某个存储段提供时钟信号,则该存储段将被开启。
68.读写控制电路400接收读操作信号,读操作信号包括读出数据的地址,根据读出数据的地址在存储段0~存储段m查询读操作针对的存储段,并从读操作针对的存储段中获取读出数据。读操作针对的存储段触发移位电路300对该存储段中i个存储单元之间进行移位操作。读写控制电路400获取移位操作后的存储段0~存储段m中为空的存储单元的地址,当接收写操作信号时,根据获取的地址将写入数据写入写操作针对的存储段,即存储段0~存储段m中为空的存储单元。
69.进一步的,由于将寄存器阵列分为多个存储段,时钟控制电路200可以为每个存储段单独进行时钟控制,读写控制电路400可能对存储段0~存储段n-1中的任意一个或多个存储段进行读写操作,以及移位电路300对在读操作针对的存储段进行移位操作,所以存储段0~存储段n-1中的多个存储单元存储数据在动态变化。为了更好的节省功耗,需要对存储段0~存储段n-1进行动态的开启或关闭,本实施例提出为多个存储段设置监测电路,用于监测各个存储段的使用情况,不需要软件配置时钟控制电路200的控制信号情况下,而是通过监测电路根据监测到的当前存储段的使用情况来自适应的开启或关闭下一存储段,不仅降低了软件控制导致的时钟开启和关闭的延时,而且根据存储段的使用情况来动态的开启或关闭存储段,进一步节省功耗。
70.应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
71.例如,如图3所示,存储器还包括监测电路500,监测电路500与多个存储段100以及时钟控制电路200耦接。监测电路500配置为监测当前被提供时钟信号的一个或多个连续的存储段中至少距离存储器的起始位最远的存储段的使用情况,并根据使用情况,向时钟控制电路200提供控制信号,以向距离存储器的起始位最远的存储段的下一个存储段提供时钟信号。其中,使用情况包括距离存储器的起始位最远的存储段的多个存储单元被占用率是否大于阈值。监测电路例如可以通过数字电路等实现,本公开的实施例对此不做限制。
72.例如,在持续的工作中,对存储段进行读操作或写操作时,各个存储段中存储单元被占用情况会发生动态变化,通过监测电路500可以实时获取当前存储段中的多个存储单元的占用情况,通过占用情况向时钟控制电路200提供控制信号,时钟控制电路200根据控制信号为下一个存储段提供时钟信号,以开启或关闭下一个存储段。例如,如果低地址的存
储段的占用率大于阈值的情况下,时钟控制电路200控制开启与其相邻的高地址的存储段,如果低地址的存储段的占用率小于阈值的情况下,时钟控制电路200控制关闭与其相邻的高地址的存储段。
73.具体而言,参考上述实施例,假设时钟控制电路200通过控制信号和时钟信号开启存储段0~存储段m,在对存储段0~存储段m进行读操作和移位操作之后,监测电路500至少监测到存储段0~存储段m中距离存储段0最远的一个或多个连续的存储段的使用情况。假设存储段0~存储段m满足占用率都大于阈值(例如阈值为75%)。由于存储段m满足占用率大于阈值,那么时钟控制电路200根据控制信号为存储段m 1提供时钟信号,以开启存储段m 1。如果存储段m 1的占用率小于阈值,时钟控制电路200根据控制信号为存储段m 2提供时钟信号,仍然关闭存储段m 2。需要说明的是,占用率的阈值可以在芯片初始化过程中进行配置,该阈值的大小根据实际需求进行设定,本公开的实施例对此不做限制。
74.需要指出的是,监测电路500可以设置在多个存储段构成的寄存器阵列内部,也可以单独设置在多个存储段构成的寄存器阵列外部,本实施方式不做具体限定。
75.在另一种示例中,图4为本公开一些实施例提供的另一种存储器的示例性结构图。结合图3和图4对存储器的内部结构进行进一步详细的说明。
76.例如,移位电路300包括多个子移位电路,与多个存储段100分别对应,且每个子移位电路配置为向对应的一个或多个存储段进行移位操作。监测电路500包括多个子监测电路,多个子监测电路与多个存储段分别对应,且每个子监测电路配置为监测对应的一个或多个存储段的使用情况。
77.时钟控制电路200包括多个子时钟控制电路,多个子时钟控制电路与多个存储段分别对应,且每个子时钟控制电路配置为根据控制信号为对应的一个或多个存储段提供时钟信号。并且,如图4所示,对应于每个存储段的时钟信号也被提供至对应于该存储段的子移位电路,还用于控制该子移位电路的开启和关闭,由此实现进一步的功耗节省。
78.例如,每个存储段对应单独的子移位电路,以达到对每个存储段的占有率进行精细化管理。通过对每个存储段独立的插入子时钟控制电路,对每个存储段进行独立的时钟管理。每个存储段对应单独的子监测电路,通过低位地址的子监测电路完成对高位地址的存储段的时钟开关控制。例如,低地址的存储段对应的子监测电路与相邻高地址的存储段对应的子时钟控制电路的控制信号输入端对应连接,子监测电路根据监测的低地址的存储段的使用情况,向相邻高地址的存储段对应的子时钟控制电路提供控制信号。
79.例如,图5示出一种子监测电路510的结构框图,子监测电路例如可以通过数字电路等实现,本公开的实施例对此不做限制。子监测电路510包括统计单元511、阈值配置单元512、开关控制单元513。统计单元511和阈值配置单元512分别与开关控制单元513电连接,当前存储段对应的子监测电路510中的开关控制单元513与下一个存储段对应的子时钟控制电路的控制信号接收端(en)连接(参见后续的描述)连接。统计单元511配置为统计该子监测电路510对应的一个或多个存储段的使用情况。阈值配置单元512配置为接收软件配置的阈值。开关控制单元513配置为基于统计单元511输出的一个或多个存储段的使用情况和软件配置的阈值,提供控制信号给下一个子时钟控制电路的控制信号接收端(en)。例如,当子监测电路510对应的存储段的使用情况为该存储段中多个存储单元的被占用率大于阈值,提供开启的控制信号,当子监测电路510对应的存储段的使用情况为该存储段中多个存
储单元的被占用率小于阈值,提供关闭的控制信号。
80.例如,图4示出了存储器中的部分结构,监测电路500包括子监测电路501、子监测电路502、子监测电路503、子监测电路504,分别与存储段101、存储段102、存储段103、存储段104对应。各个子监测电路可以设置在对应的存储段中,也可以设置在对应的存储段之外,不做具体限定。时钟控制电路200包括子时钟控制电路201、子时钟控制电路202、子时钟控制电路203、子时钟控制电路204,分别与存储段101、存储段102、存储段103、存储段104对应。移位电路300包括子移位电路301、子移位电路302、子移位电路303、子移位电路304分别与存储段101、存储段102、存储段103、存储段104对应。
81.每个子时钟控制电路包括时钟信号接收端以接收例如系统时钟信号,包括控制信号接收端(en)以接收控制信号。如图4所示,各个子时钟控制电路的时钟信号接收端例如都耦接到相同的时钟信号源以接收同一时钟信号,子时钟控制电路201的控制信号接收端(en1)接收系统提供的控制信号,而子时钟控制电路202的控制信号接收端(en2)接收子监测电路501提供的控制信号,子时钟控制电路203的控制信号(en3)接收端接收子监测电路502提供的控制信号,子时钟控制电路204的控制信号(en4)接收端接收子监测电路503提供的控制信号,以此类推,由此实现对于各个子时钟控制电路的级联和移位控制。例如,假设子时钟控制电路201、子时钟控制电路202、子时钟控制电路203、子时钟控制电路204被提供时钟信号,开启各自对应的存储段。读写控制电路400根据读出数据的地址对存储段103进行读操作,存储段103中的存储单元释放读出数据,并通过读写控制电路400读出该读出数据,同时,存储段103触发对应的移位子电路303对存储段103中的多个存储单元进行移位操作。移位操作之后,当存储段103对应的子监测电路503监控到存储段103的使用情况为多个存储单元的占用率大于阈值时,向子时钟控制电路204的控制信号端(en)提供控制信号,子时钟控制电路204根据该控制信号为存储段104提供时钟信号,以控制存储段104开启,便于写入数据。当存储段103对应的子监测电路503监控到存储段103的使用情况为多个存储单元被占用率小于阈值时,向子时钟控制电路204的控制信号端(en)提供控制信号,子时钟控制电路204根据该控制信号为存储段104提供时钟信号,以控制存储段104关闭,节省功耗。
82.例如,读写控制电路400包括数据读出电路(图4未示出),数据读出电路与多个存储段以及移位电路耦接,且配置为响应于读操作,从读操作针对的多个存储段中获取读出数据,以及触发移位电路对读出数据对应的存储段执行移位操作。读写控制电路还包括数据写入电路(图4未示出),数据写入电路与多个存储段耦接,且配置为响应于写操作,将写入数据写入多个存储段中未被使用的存储单元中距离存储器的起始位最近的存储单元中。数据写入电路还配置为响应于当前的存储段写满之后,写入当前的存储段的下一个存储段。
83.例如,参考上述实施例,假设读操作针对的存储段为存储段103,当数据读出电路接收读操作信号时,从存储段103获取读出数据,并触发存储段103对应的移位电路303对存储段103中的多个存储单元进行移位操作。数据写入电路获取存储段103和存储段104中为空的存储单元的地址,当接收写操作信号时,将写入数据按照从低地址到高地址顺序写入存储段103和存储段104中为空的存储单元,当存储段103中的存储单元写满之后,再写入存储段104中的存储单元。
84.图6为本公开一些实施例提供的一种上述存储器的数据处理方法的流程图。
85.例如,该数据处理方法包括步骤s100至步骤s200。下面结合图3所示的存储器,来说明数据处理方法应用于存储器的具体流程。
86.步骤s100:时钟控制电路根据控制信号,在多个存储段中为从存储器的起始位开始的一个或多个连续的存储段提供时钟信号。
87.步骤s200:对多个存储段中的数据进行处理。
88.例如,参考上述实施例,读操作时,读写控制电路400接收读操作信号,读操作信号中包含读出数据的地址,并根据读出数据的地址在存储段0~存储段m中查询该地址对应的存储段m中的存储单元i(m大于等于0或小于等于m,i大于等于0或小于等于i),并获取存储单元i中的读出数据。释放读出数据的存储段m触发移位电路300对该存储段中的多个存储单元间进行移位操作,具体移位操作过程和前述实施例相同,在此不再赘述。需要指出的是,读出数据的地址可以包括多个地址,根据多个地址查询的多个存储单元中的读出数据被释放,这些存储单元可能属于同一个存储段,也可能分别属于不同的存储段,相应的,移位电路300对释放读出数据的存储段m中的多个存储单元间进行移位操作,使得存储段0~存储段m整体发生移位。
89.存储段0~存储段m整体进行移位操作后,距离存储段0最远的一个或多个连续的存储段中的存储单元变为空,存储段0~存储段m各个存储段再次监测各自的占用情况,如果距离存储段0最远的一个或多个连续的存储段中存在占有率小于阈值的存储段的情况下,利用时钟控制电路200关闭占有率小于阈值的存储段的下一个存储单元。如果距离存储段0最远的一个或多个连续的存储段中有存储段满足占有率大于阈值的情况下,那么利用时钟控制电路200开启满足占有率大于阈值的存储段的下一个存储段。例如,如果监测到距离存储段0最远的占用率大于阈值的存储段为存储段j,触发时钟控制电路200开启存储段j 1,如果监测到存储段j 1的占用率小于阈值,触发时钟控制电路200关闭存储段j 2。
90.写操作时,假设时钟控制电路200重新对移位操作后的存储段0~存储段m进行开启和关闭控制后,最终使得存储段0至距离存储段0最远且满足占用率大于第一阈值的存储段j和下一个存储段j 1处于开启状态,存储段j 1至存储段m处于关闭状态。读写控制电路400获取已开启的存储段0~存储段j 1中已经读出数据的存储单元的地址,当接收写操作信号时,将写入数据存储至这些地址对应的存储单元中,写入数据可以是从低地址到高地址顺序进行写入,例如,写满存储段j之后再写入存储段j 1。
91.例如,在步骤s100之前,该数据处理方法还可以包括:
92.步骤s300:监测电路监测当前被提供时钟信号的一个或多个连续的存储段中至少距离存储器的起始位最远的存储段的使用情况,并根据使用情况,向时钟控制电路提供控制信号。
93.例如,图7示出监测电路对存储段的使用情况进行监测的流程图。参考上述实施例,假设当前被提供时钟信号的存储段包括存储段0~存储段m,在上电复位撤销之后,这些存储段对应的时钟控制电路的控制信号端en输出默认为高电平。在对存储段0~存储段m进行读操作和移位操作后,利用监测电路确定移位操作后的当前被开启的存储段0~存储段m中距离存储器的起始位即存储段0最远的存储段m的使用情况,如果存储段m大于阈值,向存储段m 1对应的子时钟控制电路的控制信号端en提供开启的控制信号即en端输入高电平,如果存储段m小于阈值,向存储段m 1对应的子时钟控制电路的控制信号端en提供关闭的控
制信号即en端输入低电平。
94.需要指出的是,由于存储段m 1对应的子时钟控制电路的控制信号端en开启需要一定时间,因此,可以根据开启存储段m 1所需要的时间适应性调整存储段m中存储单元的占用率的阈值。
95.例如,在步骤s300之前,该数据处理方法还包括:
96.步骤s400:响应于读操作,利用读写控制电路400从读操作针对的存储段中获取读出数据,以及利用移位电路300在读操作针对的存储段中的多个存储单元间进行移位操作。
97.例如,参考上述实施例,利用读写控制电路400对当前被提供时钟信号的存储段0~存储段m中的存储段m进行读操作,获取读出数据,利用存储段m对应的子移位电路对存储段m进行移位操作。当然,读操作针对的存储段还可以是存储段0~存储段m中其他任意的存储段,不做具体限定。
98.例如,对多个存储段中的数据进行处理,该数据处理方法还可以包括:
99.步骤s500:响应于写操作,利用读写控制电路400将写入数据写入写操作针对的存储段,将写入数据写入多个存储段中未被使用的存储单元中距离存储器的起始位最近的存储单元中。
100.例如,参考上述实施例,读操作和移位操作之后,监测到存储段m大于阈值,控制开启存储段m 1,读写控制电路400将写入数据写入存储段m和存储段m 1中的空的存储单元中。
101.本公开至少一个实施例还提供一种电子设备,该电子设备包括本公开任一实施例提供的存储器。该电子设备可以降低软件控制导致的时钟开启和关闭的延时,以及降低存储器的动态功耗。
102.图8为本公开一些实施例提供的一种电子设备的示意框图。如图8所示,电子设备600包括存储器610,存储器610为本公开任一实施例提供的存储器,例如为图3至图4所示的存储器。电子设备600可以用于大数据、云计算、人工智能(ai)等新型应用场景,相应地,电子设备600可以为大数据计算设备、云计算设备、人工智能设备等,本公开的实施例对此不作限制。
103.图9为本公开一些实施例提供的另一种电子设备的示意框图。如图9所示,该电子设备700例如适于用来实施本公开实施例提供的数据处理方法。电子设备700可以是终端设备或服务器等。需要注意的是,图9示出的电子设备700仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
104.如图9所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)21,其可以根据存储在只读存储器(rom)22中的程序或者从存储装置28加载到随机访问存储器(ram)23中的程序而执行各种适当的动作和处理。例如,存储装置28可以为本公开任一实施例提供的存储器,例如为图3至图4所示的存储器。在ram 23中,还存储有电子设备700操作所需的各种程序和数据。处理装置21、rom 22以及ram 23通过总线24彼此相连。输入/输出(i/o)接口25也连接至总线24。
105.通常,以下装置可以连接至i/o接口25:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置26;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置27;包括例如磁带、硬盘等的存储装置28;以及通信装置29。通信装置29可以
允许电子设备700与其他电子设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备700,但应理解的是,并不要求实施或具备所有示出的装置,电子设备700可以替代地实施或具备更多或更少的装置。
106.关于电子设备600/700的详细说明和技术效果,可以参考上文中关于处理器的描述,此处不再赘述。
107.有以下几点需要说明:
108.(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
109.(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
110.以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献