CN115221080A - 存储装置、数据处理的方法及系统 - Google Patents

存储装置、数据处理的方法及系统 Download PDF

Info

Publication number
CN115221080A
CN115221080A CN202210816876.8A CN202210816876A CN115221080A CN 115221080 A CN115221080 A CN 115221080A CN 202210816876 A CN202210816876 A CN 202210816876A CN 115221080 A CN115221080 A CN 115221080A
Authority
CN
China
Prior art keywords
time
controller
memory
threshold value
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210816876.8A
Other languages
English (en)
Inventor
刘卓睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202210816876.8A priority Critical patent/CN115221080A/zh
Publication of CN115221080A publication Critical patent/CN115221080A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Static Random-Access Memory (AREA)

Abstract

提供了一种存储装置、数据处理的方法及系统。该存储装置包括:可并行访问的多个存储单元;控制器,用于执行以下操作:接收针对所述多个存储单元的第一访存命令;响应于所述多个存储单元中的处于打开状态的存储单元的数目小于设定阈值,生成所述第一访存命令对应的激活命令;响应于所述多个存储单元中处于打开状态的存储单元的数目大于或等于所述设定阈值,不生成所述第一访存命令对应的激活命令。本申请实施例根据存储装置内部的处于访问状态的存储单元的数目阈值,限制可以打开的存储单元数目,对访问命令对应的激活命令进行限流,在保证效率的情况下,有助于节省功耗。

Description

存储装置、数据处理的方法及系统
技术领域
本申请实施例涉及数据存储技术领域,并且更为具体地,涉及一种存储装置、数据处理的方法及系统。
背景技术
双倍速率同步动态随机访问存储器是目前应用最广泛的内存产品,也简称为DDR,在成本、带宽、功耗等方面都具有巨大优势。在重载场景下,由于访问命令的累积效应,DDR总线上的命令已经达到满载的情况下,DDR控制器中的激活和预上电命令会打开更多的行和页,这不会带来额外的性能收益,但是会带来功耗的浪费。
发明内容
本申请实施例提供了一种存储装置、数据处理的方法及系统,下面对本申请实施例的各个方面进行介绍。
第一方面,提供一种存储装置,包括:可并行访问的多个存储单元;控制器,用于执行以下操作:接收针对所述多个存储单元的第一访存命令;响应于所述多个存储单元中的处于打开状态的存储单元的数目小于设定阈值,生成所述第一访存命令对应的激活命令;响应于所述多个存储单元中处于打开状态的存储单元的数目大于或等于所述设定阈值,不生成所述第一访存命令对应的激活命令。
第二方面,提供一种数据处理的方法,应用于存储装置,所述存储装置包括:可并行访问的多个存储单元;控制器;所述方法包括:接收针对所述多个存储单元的第一访存命令;响应于所述多个存储单元中的处于打开状态的存储单元的数目小于设定阈值,生成所述第一访存命令对应的激活命令;响应于所述多个存储单元中处于打开状态的存储单元的数目大于或等于所述设定阈值,不生成所述第一访存命令对应的激活命令。
第三方面,提供一种数据处理的系统,包括处理器和如第一发明所述的存储装置。
本申请实施例根据存储装置内部的处于访问状态的存储单元的数目阈值,限制可以打开的存储单元数目,对访问命令对应的激活命令进行限流,在保证效率的情况下,有助于节省功耗。
附图说明
图1本申请实施例提供的存储装置的结构示意图。
图2是图1存储装置的一种可能的实现方式的示意图。
图3是图2的编号机的状态切换的流程示意图。
图4是图2的编号机的机制设置的示意图。
图5是本申请实施例提供的数据处理的方法的流程示意图。
图6是本申请实施例提供的数据处理系统的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。
存储设备是用于储存信息的设备,通常是将信息数字化后再以利用电、磁或光学等方式的媒体加以存储。根据用途的不同可以分为内存(主存储器)和外存(辅助存储器)。计算机或片上系统在运行中,CPU会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。内存(Memory)也称为内存储器或主存储器,用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
内存按工作原理可以分为随机访问存储器(random access memory,RAM)、只读存储器(read only memory,ROM)以及缓存(cache)。RAM是其中最重要的存储器。按内存技术标准可分为动态随机访问存储器(dynamic random access memory,DRAM)、同步动态随机访问存储器(synchronous dynamic random access memory,SDRAM)、双倍速率同步动态随机访问存储器(double data rate synchronous dynamic random access memory,DDRSDRAM)等。DDRSDRAM也简称为DDR,是目前应用最广泛的内存产品,在成本、带宽、功耗等方面都具有巨大优势。
一般的内存系统从逻辑上组织为通道(Channel)、存储库(Bank)、内存行(Row)和内存列(Column)等。多个Bank共享某个Channel与处理器相连。Bank是最小的可以独立并行工作的物理单元,即同时可有多个Bank独立地读/写数据。但是如果两个访问请求的目标数据在同一个Bank中,那么两个请求只能串行处理,不能并行处理。一个Bank可以包含大量的页,所有页可以是横向Row和纵向Column排列成的二维矩阵。
数据访问请求到达Bank后,要完成数据访问需要经历三个步骤:
1)激活(Active):将二维存储阵列中的目标行数据读取到行缓存器。2)读/写:读/写行缓存器中的数据。3)预上电(Precharge):将行缓存器中的数据写回到二维存储阵列,这是行上的最后一项操作。必须完成这一操作之后,才能访问新的行,这一操作也称为关闭打开的行。
相关技术的DDR控制器是基于基础命令的Active和Precharge命令发送,也即是一旦有特定的读写命令缓存在DDR控制器中,DDR控制器就会依据DDR的状态生成特定的Active和Precharge命令。
这种Active和Precharge命令的产生逻辑在轻载的情况下或命令没有累计的情况下,不会有额外的功耗损失,性能也不会有损失。可是在重载的场景下,例如PUBG Gaming和微信视频聊天场景下,由于访问命令的累积效应,DDR总线上的命令已经达到满载的情况,访问命令超过Bank总数,打开更多Bank的行和页已经不会带来额外的性能收益,可是会带来功耗的浪费。
需要说明的是,上文提及的DDR总线上的命令达到满载的情况下打开更多Bank会带来功耗的浪费仅是一个示例,本申请实施例可应用于存储设备的访存命令控制存在功耗浪费的任意类型的场景。
因此,如何开发一种减少功耗浪费的存储设备访存命令控制的方案是需要解决的问题。
针对上述问题,本申请实施例提出一种存储装置,下面对本申请实施例进行详细描述。
图1是本申请实施例提供的一种存储装置的结构示意图。该存储装置100可以包括多个存储单元110和控制器120。
多个存储单元110是可并行访问的多个存储单元,例如可以是多个Bank,从Bank(0)到Bank(n),n例如可以是16、32等。本申请下文中提及的存储单元,均指可并行访问的存储单元。
Bank是最小的可以独立并行工作的物理单元,即同时可有多个Bank独立地读/写数据。但如果两个数据访问请求的目标数据在同一个Bank中,那这两个请求只能串行处理,不能并行处理。一个Bank可以包含大量的页,所有页可以是横向为Row、纵向为Column排列成的二维矩阵。
在一些实现方式中,Bank可以是基于Bank序列的架构。例如16个Bank分为4组,每组包括4个Bank,如Bank(0)到Bank(3)为一组。
控制器120与多个存储单元110相连,用于接收针对多个存储单元110的第一访存命令。第一访存命令可以包括读/写命令,也称为load/store存储器访问指令。load/store存储器访问指令是RISCV架构专门用来访问存储器的指令。
根据可并行访问的多个存储单元110的数目,控制器120可以设置处于打开状态的存储单元的数目,即设定阈值。设定阈值可以为任何大于1且不大于存储单元总数的整数。控制器120对处于打开状态的存储单元数目进行限流,即对多个存储单元110的第一访存命令对应的激活命令的进行限流。如果Bank的总数目为32的话,设定阈值可以为24,则处于打开状态的bank数目最大为24,即同时可有24个Bank独立地读/写数据。在一些实施例中,设定阈值可以为18,处于打开状态的Bank数目最大为18。
控制器120接收到针对多个存储单元110的第一访存命令后,当多个存储单元110中的处于打开状态的存储单元的数目小于设定阈值时,控制器120生成第一访存命令对应的激活命令。当多个存储单元110中处于打开状态的存储单元的数目大于或等于设定阈值时,控制器120不生成第一访存命令对应的激活命令。
在一些实现方式中,可以动态地依据使用场景下对应的存储装置内部的处于访问状态的存储单元的数目,来限制可以打开的存储单元数目。即可以动态地依据使用场景,调整设定阈值。
在一些实现方式中,根据多个存储单元110的闲忙状况,控制器120可以调整设定阈值的取值。例如,在多个存储单元110中的存储单元处于空闲的状况下,设定阈值可以设置较小的数目;在多个存储单元110中的存储单元处于频繁访问的状况下,设定阈值可以设置相对较大的数目。
在一些实现方式中,多个存储单元110的闲忙状况可以采用多个存储单元110中处于空闲状态的时间以及处于访问状态的时间来确定。根据多个存储单元110处于空闲状态的时间以及处于访问状态的时间,可以调整设定阈值。
在一些实现方式中,可以设置一个循环时间周期。在循环时间周期内,确定多个存储单元110中的存储单元处于空闲状态的时间以及处于访问状态的时间。
在一些实现方式中,可以根据控制器120接收第一访存命令的闲忙状况,来调整设定阈值。例如,一段时间内,如果控制器120接收的多个存储单元110的第一访存命令较少,说明控制器120多处于空闲状况。如果控制器120接收的多个存储单元110的第一访存命令较多,说明控制器120多处于阻塞状况。
本申请实施例根据确定的存储装置内部的处于访问状态的存储单元的数目阈值,来限制可以打开的存储单元数目,对访问命令对应的激活命令进行限流,在保证效率的情况下,有助于节省功耗。例如,一个16GB的内存芯片,总共的Bank数目为256个,单个Bank有功不掉电备用电源功率为23.915mw,单个Bank闲置非掉电功率为21.815mw。如果在特定的场景下,设定阈值为192个,更少地打开了64个Bank的情况下,功耗的节省就是134.4mw。
在一些实现方式中,可以设置一个循环时间周期。在循环时间周期内,可以根据控制器120的闲忙状况,调整设定阈值。
在一些实施例中,循环时间周期可以采用标记微架构(Tick Tock)的计时器作为全局时间轮,全局时间轮用作时间基准参考。时间轮的完整旋转周期测量可以为3.2usec,其中,计时器的每个控制点的时间单位为0.025usec(即25Ghz)。还可以包括一个基于标记的7位计数器,可以计数到128个刻度,即128*0.025=3.2usec。
有些使用场景下,外部对存储装置100的访问可能是周期性的,或者时而空闲、时而频繁。在一些实现方式中,在循环时间周期内可以设置第一时间窗口。在第一时间窗口内,控制器120接收多个存储单元110的第一访存命令并做出相应处理。在第一时间窗口外,控制器120接收多个存储单元110的第一访存命令,不做出处理,等待到达在时间窗口内再对第一访存命令做出相应处理。在第一时间窗口内,控制器120可以检查多个存储单元110的打开状态,接收多个存储单元110的第一访存命令并做出相应处理,可以在保证效率的情况下,最大程度地节省功耗。
在循环时间周期内,第一时间窗口的时间可以调整,第一时间窗口的开始时间可以设置或调整,第一时间窗口的停止时间也可以设置或调整。
在一些实施例中,可以为第一时间窗口设置一对周期性的时间寄存器。其中,一个寄存器用于第一时间窗口的开始时间,为启动寄存器,作为计时的起点。第二个寄存器用于第一时间窗口的结束时间,为停止寄存器,作为计时的终点。停止寄存器与启动寄存器的时间差值即为第一时间窗口的时间段。当全局计时器的时间等于启动寄存器时间时,控制器120可以设置存储单元状态类别的允许位,并允许从存储单元的状态类别中检查计数。当全局计时器的时间等于停止寄存器时间时,控制器120将重置存储单元状态类别的允许位,并停止存储单元状态类别的检查。如果启动寄存器和停止寄存器配置为相同的数值,则停止寄存器具有优先级,并且不允许对存储单元的状态类别进行访问。
在一些实现方式中,控制器120在第一时间窗口可以分为空闲时间和阻塞时间,以检测控制器120的闲忙状况。需要指出的是,空闲时间不仅包括控制器120没有接收到第一访存命令的时间,空闲时间还包括:当多个存储单元110中处于打开状态的存储单元的数目大于或等于设定阈值时,控制器120不生成第一访存命令对应的激活命令的时间。阻塞时间为:当多个存储单元110中的处于打开状态的存储单元的数目小于设定阈值时,控制器120接收到第一访存命令后并生成第一访存命令对应的激活命令的时间。
在一些实现方式中,可以设置空闲时间计数器统计空闲时间。可以设置阻塞时间计数器统计阻塞时间。空闲时间与阻塞时间的和为第一时间窗口的总时间。
在一些实现方式中,可以为空闲时间设置两个阈值,分别为总时间阈值和第一阈值,第一阈值也称为空闲阈值。可以为阻塞时间设置两个阈值,分别为总时间阈值和第二阈值,第二阈值也称为阻塞阈值。根据控制器120的空闲时间及阻塞时间的状况,即控制器120的空忙状况,调整可打开状态的存储单元的设定阈值。其中,总时间阈值为第一时间窗口的总时间,为停止寄存器与启动寄存器的时间差值,第一阈值应该小于总时间阈值,第二阈值也应该小于总时间阈值。
例如,在循环时间周期为3.2微秒对应128个刻度的时钟机制下,周期总时间阈值可以为100,第一阈值可以初设为大于30,例如可以为40,第二阈值可以初设为大于50,例如可以为60。
在一些实现方式中,控制器120根据输出第一访存命令对应的激活命令的忙闲状况,可以调整空闲阈值和阻塞阈值的大小,以及调整设定阈值的大小。
可选地,当控制器120处于空闲状态的时间大于第一阈值,并且满足第一条件时,则可以根据调整偏差增加第一阈值的取值。其中,第一条件也称为第一临界条件,第一条件可以包括以下中的一种或多种:达到设定阈值;达到第一时间窗口的开始时间阈值;达到第一时间窗口的停止时间阈值;达到多个存储单元110的总数阈值。在这种情况下,说明控制器120接收的第一访存命令较少,控制器120处于空闲状态的时间较大,可以增大第一阈值的取值。
可选地,如果控制器120处于空闲状态的时间小于第一阈值,则保持第一阈值的取值不变。
可选地,如果控制器120处于阻塞状态的时间小于或等于第二阈值,则保持设定阈值的取值不变。
可选地,在连续两个或多个循环时间周期内,如果控制器120处于阻塞状态的时间都小于第二阈值,则可以减少设定阈值。在这种情况下,说明控制器120接收的第一访存命令较少,控制器120处于阻塞状态的时间较少,可以减少设定阈值的取值。
可选地,如果控制器120处于阻塞状态的时间大于第二阈值,则可以增大第二阈值,或增大设定阈值。
在一些实现方式中,控制器120可以采用编号机来对所有等待访问的存储单元的序列号进行管理。编号机也可以称为存储单元排号机,或存储单元号码管理器,简称为编号机。存储单元为Bank时,编号机也称为Bank编号机。Bank编号机可以存储处于打开状态的存储单元的变量和用于存储所有等待访问的存储单元的队列集合变量。控制器120接收到针对多个存储单元110的第一访存命令后,当多个存储单元110中的处于打开状态的存储单元的数目小于设定阈值时,Bank编号机生成第一访存命令对应的激活命令。当多个存储单元110中处于打开状态的存储单元的数目大于或等于设定阈值时,Bank编号机不生成第一访存命令对应的激活命令。
在一些实现方式中,Bank编号机可以在一定时间周期内循环工作。时间周期可以基于标记微架构的计时器机制,标记微架构的计时器作为全局时间轮用作时间基准参考。循环时间周期内还可以包括第一时间窗口。在第一时间窗口内,接收多个存储单元110的第一访存命令,Bank编号机做出相应处理,生成第一访存命令对应的激活命令。在第一时间窗口外,接收多个存储单元110的第一访存命令,Bank编号机不做出处理,等待到达在第一时间窗口内,Bank编号机再对第一访存命令做出相应处理。
在一些实现方式中,对于时分复用技术(time-division multiplexing,TDM),全局时间轮用作时间基准参考,以允许或不允许检查Bank编号机的设定阈值。TDM是在时间上将信道划分为不同的时隙,在不同的时隙上间插不同的脉冲信号,依次来实现时域上多路信号的复用。
本申请实施例根据确定的存储装置内部处于访问状态的存储单元的数目阈值,来限制可以打开的存储单元数目,对访问命令对应的激活命令进行限流。根据不同的使用场景,可以相应调整处于访问状态的存储单元的数目阈值,在保证效率的情况下,有助于节省功耗。
图2是图1存储装置的一种可能的实现方式的示意图。图2中基于Bank序列的架构和采用存储单元编号机来对所有等待访问的存储单元的序列号进行管理。如图2所示,存储装置可以包括多个存储单元210和编号机220。
多个存储单元210是可并行访问的多个存储单元,可以是多个Bank,从Bank(0)到Bank(n),n例如可以是16。多个存储单元210可以是基于Bank序列的架构。如16个Bank分为4组,每组包括4个Bank,如Bank(0)到Bank(3)为一组。
编号机220与多个存储单元210相连,用于接收针对多个存储单元210的第一访存命令。第一访存命令可以包括读或写命令。
Bank编号机220根据可并行访问的多个Bank的数目,可以设置处于打开状态的Bank的数目,即设定阈值。编号机220对处于打开状态的Bank数目进行限流,即对多个Bank的第一访存命令对应的激活命令的进行限流。如果Bank总的数目为16的话,设定阈值可以为12,处于打开状态的Bank数目为最大为12,即同时可有12个Bank独立地读/写数据。
编号机220接收到针对多个Bank的第一访存命令后,当多个存储单元210中的处于打开状态的Bank的数目小于设定阈值时,编号机220生成第一访存命令对应的激活命令。当多个存储单元210中处于打开状态的Bank的数目大于或等于设定阈值时,编号机220不生成第一访存命令对应的激活命令。
在一些实施例中,可以设置一个循环时间周期。在循环时间周期内,确定编号机220的闲忙状况,调整设定阈值。
循环时间周期可以采用标记微架构(Tick Tock)计时器机制,标记微架构的全局时间轮用作时间基准参考。有些使用场景下,对存储装置的访问是周期性的,或者时而空闲、时而频繁。在一些实施例中,在循环时间周期内可以设置第一时间窗口。在第一时间窗口内,编号机220接收多个存储单元210的第一访存命令并做出相应处理。在第一时间窗口外,编号机220接收多个存储单元210的第一访存命令,不做出处理,等待到达在时间窗口内再对第一访存命令做出相应处理。在第一时间窗口内,编号机220检查多个存储单元210的打开状态,接收多个存储单元210的第一访存命令并做出相应处理,可以在保证效率的情况下,最大程度地节省功耗。
在循环时间周期内,第一时间窗口的时间可以调整,第一时间窗口的开始时间可以设置或调整,第一时间窗口的停止时间也可以设置或调整。
在一些实施例中,可以为第一时间窗口设置一对周期性的时间寄存器。其中,一个寄存器用于第一时间窗口的开始时间,为启动寄存器,作为计时的起点。第二个寄存器用于第一时间窗口的结束时间,为停止寄存器,作为计时的终点。停止寄存器与启动寄存器的时间差值即为第一时间窗口的时间段。当全局计时器的时间等于启动寄存器时间时,编号机220可以设置存储单元状态类别的允许位,并允许从存储单元的状态类别中检查计数。当全局计时器的时间等于停止寄存器时间时,编号机220将重置存储单元状态类别的允许位,并停止存储单元状态类别的检查。如果启动寄存器和停止寄存器配置为相同的数值,则停止寄存器具有优先级,并且不允许对存储单元的状态类别进行访问。
在一些实施例中,编号机220在第一时间窗口可以分为空闲时间和阻塞时间,以反应编号机220在第一时间窗口的闲忙状况。
在一些实现方式中,可以设置空闲时间计数器(Idle CNT)统计空闲时间。例如,当编号机220处于Rdy Assert及Vld Deassert状态时,Idle CNT++。可以设置阻塞时间计数器(Block CNT)统计阻塞时间。例如,当编号机220处于Vld Assert及Rdy Deassert状态时,Block CNT++。空闲时间与阻塞时间的和为第一时间窗口的总时间。
可以为空闲时间设置两个阈值,分别为周期总时间阈值和第一阈值,第一阈值也称为空闲阈值。可以为阻塞时间设置两个阈值,分别为周期总时间阈值和第二阈值,第二阈值也称为阻塞阈值。例如,在循环时间周期为3.2微秒对应128个刻度的时钟机制下,周期总时间阈值可以为100个刻度,第一阈值可以初设为35个刻度,第二阈值可以初设为55个刻度。
如图2所示,编号机220接收Bank总的数目、设定阈值参数,统计出空闲时间和阻塞时间。编号机220根据生成第一访存命令对应的激活命令的忙闲状况,可以调整空闲阈值和阻塞阈值的大小,以及调整设定阈值的大小。
图3是图2的编号机220的状态切换的流程示意图。如图3所示,编号机220有三种状态:空闲状态、监控状态和激活状态。空闲状态下,编号机220到达第一时间窗口的启动时间时,转入监控状态。监控状态下,编号机220可以检查多个Bank的状态,如果多个存储单元210中的处于打开状态的Bank的数目小于设定阈值,当接收到第一访存命令时,编号机220可以生成第一访存命令对应的激活命令,转入激活状态。监控状态下,编号机220等待接收第一访存命令,如果到达第一时间窗口的停止时间时,并且没有第一临界条件满足(例如达到设定阈值、阻塞时间达到阻塞阈值),则编号机220转入空闲状态。激活状态下,当Bank设定阈值改变时,例如减少时,编号机220可以转入空闲状态。
图4是图2的编号机220的机构设置的示意图。如图4所示,编号机220的初始参数可以设置。例如Bank总的数目,设定阈值参数,总的循环时间周期可以为128个刻度,初始空闲阈值大于30个刻度,初始阻塞阈值大于50个刻度等。
编号机220可以设置第一条件,也称为第一临界条件,第一条件可以包括以下中的一种或多种:达到设定阈值;达到第一时间窗口的开始时间阈值;达到第一时间窗口的停止时间阈值;达到多个Bank 210的总数阈值。
编号机220可以设置循环的时间周期,循环时间周期可以采用标记微架构(TickTock)计时器机制,用作时间基准参考。有些使用场景下,对存储装置的访问是周期性的,或者时而空闲、时而频繁。在循环时间周期内可以设置第一时间窗口。可以为第一时间窗口设置一对周期性的时间寄存器,分别为启动时间寄存器和停止时间寄存器。调整启动时间寄存器和停止时间寄存器,可以放大或缩小第一时间窗口。
在第一时间窗口内,编号机220接收多个存储单元210的第一访存命令并做出相应处理。在第一时间窗口外,编号机220接收多个存储单元210的第一访存命令,不做出处理,等待到达在时间窗口内再对第一访存命令做出相应处理。
可选地,当编号机220处于空闲状态的时间大于第一阈值,并且满足第一条件时,则可以根据调整偏差增加第一阈值的取值。在这种情况下,说明控制器120接收的第一访存命令较少,编号机220处于空闲状态的时间较大,可以增大第一阈值的取值。
可选地,如果编号机220处于空闲状态的时间小于第一阈值,则保持第一阈值的取值不变。
可选地,如果编号机220处于阻塞状态的时间小于或等于第二阈值,则保持设定阈值的取值不变。
可选地,在连续两个或多个循环时间周期内,如果编号机220处于阻塞状态的时间都小于第二阈值,则可以减少设定阈值。在这种情况下,说明编号机220接收的第一访存命令较少,编号机220处于阻塞状态的时间较少,可以减少设定阈值的取值。
可选地,如果编号机220处于阻塞状态的时间大于第二阈值,则可以增大第二阈值,或增大设定阈值。
本申请实施例根据使用场景下存储装置内部的存储单元的忙闲状况,可以调整处于访问状态的存储单元的数目阈值,根据处于访问状态的存储单元的数目阈值,来限制可以打开的存储单元数目,对访问命令对应的激活命令进行限流,在保证效率的情况下,有助于节省功耗。
上文结合图1-图4,详细描述了本申请的装置实施例,下面结合图5,详细描述本申请的方法实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面装置实施例。
图5是本申请实施例提供的数据处理的方法的流程示意图。图5的方法可应用于前文任一实施例描述的存储装置。该存储装置可以包括可并行访问的多个存储单元和控制器。图5的方法包括步骤S510至步骤S540,下面对这些步骤进行详细描述。
在步骤S510中,接收针对多个存储单元的第一访存命令。
在步骤S520中,判断多个存储单元中的处于打开状态的存储单元的数目是否小于设定阈值。如果小于设定阈值,则进入在步骤S530;如果不小于设定阈值,则进入在步骤S540。
在步骤S530中,处于打开状态的存储单元的数目小于设定阈值,则生成第一访存命令对应的激活命令,对访问命令对应的激活命令不进行限制。
在步骤S540中,不生成第一访存命令对应的激活命令,对访问命令对应的激活命令进行限流。
图6是本申请实施例提供的数据处理系统的示意图。如图6所示,该数据处理系统可以包括如前文任一描述的存储装置610和处理器620。
处理器620通过数据总线与存储装置610相连,进行数据处理。
应理解,在本申请的各种实施例中,“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
在本申请所提供的几个实施例中,应该理解到,当称某一部分与另一部分“连接”或“相连”时,其意味着该部分不仅可以“直接连接”,而且也可以“电连接”,同时另一个元件介入其中。另外,术语“连接”也意指该部分“物理地连接”以及“无线地连接”。另外,当称某一部分“包含”某一元件时,除非另行加以陈述,否则,其意味着该某一部分可以包括另一元件,而不是排除所述另一个元件。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种存储装置,其特征在于,包括:
可并行访问的多个存储单元;
控制器,用于执行以下操作:
接收针对所述多个存储单元的第一访存命令;
响应于所述多个存储单元中的处于打开状态的存储单元的数目小于设定阈值,生成所述第一访存命令对应的激活命令;
响应于所述多个存储单元中处于打开状态的存储单元的数目大于或等于所述设定阈值,不生成所述第一访存命令对应的激活命令。
2.根据权利要求1所述的存储装置,其特征在于,所述控制器用于执行以下操作:
根据所述多个存储单元的闲忙状况,调整所述设定阈值。
3.根据权利要求1所述的存储装置,其特征在于,所述控制器用于执行以下操作:
确定所述控制器处于空闲状态的时间以及处于阻塞状态的时间;
根据所述控制器处于空闲状态的时间以及处于阻塞状态的时间,调整所述设定阈值。
4.根据权利要求3所述的存储装置,其特征在于,所述控制器用于执行以下操作:
如果所述控制器处于空闲状态的时间大于第一阈值,且第一条件满足,则增加所述第一阈值的取值;
其中,所述第一条件包括以下中的一种或多种:
达到所述设定阈值;
达到所述控制器的开始时间阈值;
达到所述控制器的停止时间阈值;
达到所述多个存储单元的总数阈值。
5.根据权利要求3所述的存储装置,其特征在于,所述控制器用于执行以下操作:
如果所述控制器处于阻塞状态的时间大于第二阈值,则保持所述设定阈值的取值不变。
6.根据权利要求3所述的存储装置,其特征在于,所述控制器用于执行以下操作:
如果所述控制器处于阻塞状态的时间两次或多次没有达到第二阈值,则减少所述设定阈值的取值。
7.一种数据处理的方法,其特征在于,应用于存储装置,所述存储装置包括:
可并行访问的多个存储单元;
控制器;
所述方法包括:
接收针对所述多个存储单元的第一访存命令;
响应于所述多个存储单元中的处于打开状态的存储单元的数目小于设定阈值,生成所述第一访存命令对应的激活命令;
响应于所述多个存储单元中处于打开状态的存储单元的数目大于或等于所述设定阈值,不生成所述第一访存命令对应的激活命令。
8.根据权利要求7所述的方法,其特征在于,所述方法包括:
根据所述多个存储单元的闲忙状况,调整所述设定阈值。
9.根据权利要求7所述的方法,其特征在于,所述方法包括:
确定所述控制器处于空闲状态的时间以及处于阻塞状态的时间;
根据所述控制器处于空闲状态的时间以及处于阻塞状态的时间,调整所述设定阈值。
10.一种数据处理系统,其特征在于,包括处理器和如权利要求1-6任一所述的存储装置。
CN202210816876.8A 2022-07-12 2022-07-12 存储装置、数据处理的方法及系统 Pending CN115221080A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210816876.8A CN115221080A (zh) 2022-07-12 2022-07-12 存储装置、数据处理的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210816876.8A CN115221080A (zh) 2022-07-12 2022-07-12 存储装置、数据处理的方法及系统

Publications (1)

Publication Number Publication Date
CN115221080A true CN115221080A (zh) 2022-10-21

Family

ID=83611847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210816876.8A Pending CN115221080A (zh) 2022-07-12 2022-07-12 存储装置、数据处理的方法及系统

Country Status (1)

Country Link
CN (1) CN115221080A (zh)

Similar Documents

Publication Publication Date Title
KR101259697B1 (ko) 메모리 디바이스의 셀프-리프레시 상태로부터의 고속 탈출
US9418723B2 (en) Techniques to reduce memory cell refreshes for a memory device
KR100870478B1 (ko) 휘발성 메모리들에 대한 독립적 뱅크 리프레시를 제공하는방법 및 시스템
US9343127B1 (en) Memory device having an adaptable number of open rows
JP5032337B2 (ja) 有向自動リフレッシュ同期
JP4961003B2 (ja) リフレッシュフラグを発生させる半導体メモリシステム
CN105378847A (zh) Dram子阵列级自动刷新存储器控制器优化
US20070083701A1 (en) Power throttling in a memory system
CN110520929B (zh) 内存刷新方法、装置及计算机系统
US6963516B2 (en) Dynamic optimization of latency and bandwidth on DRAM interfaces
CN110546707B (zh) 内存刷新技术及计算机系统
KR0142795B1 (ko) 디램 리프레쉬 회로
US20040088472A1 (en) Multi-mode memory controller
US20070016807A1 (en) Method for reducing memory power consumption
US6091667A (en) Semiconductor memory device and a data reading method and a data writing method therefor
US9135966B2 (en) Semiconductor device including memory capable of reducing power consumption
JP3725715B2 (ja) クロック同期システム
US6650586B1 (en) Circuit and system for DRAM refresh with scoreboard methodology
JP2001035158A (ja) メモリアクセス方法及びメモリアクセス方式
CN115221080A (zh) 存储装置、数据处理的方法及系统
US7778103B2 (en) Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof
US11474746B2 (en) Refresh management for DRAM
CN113946435A (zh) 内存管理技术及计算机系统
CN112965816B (zh) 内存管理技术及计算机系统
US9570146B1 (en) Alternate access to DRAM data using cycle stealing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination