CN113342615B - 命令监控方法、装置、控制器、系统、设备和存储介质 - Google Patents

命令监控方法、装置、控制器、系统、设备和存储介质 Download PDF

Info

Publication number
CN113342615B
CN113342615B CN202110731684.2A CN202110731684A CN113342615B CN 113342615 B CN113342615 B CN 113342615B CN 202110731684 A CN202110731684 A CN 202110731684A CN 113342615 B CN113342615 B CN 113342615B
Authority
CN
China
Prior art keywords
command
address
memory
counter
refresh
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.)
Active
Application number
CN202110731684.2A
Other languages
English (en)
Other versions
CN113342615A (zh
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202110731684.2A priority Critical patent/CN113342615B/zh
Publication of CN113342615A publication Critical patent/CN113342615A/zh
Application granted granted Critical
Publication of CN113342615B publication Critical patent/CN113342615B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06MCOUNTING MECHANISMS; COUNTING OF OBJECTS NOT OTHERWISE PROVIDED FOR
    • G06M3/00Counters with additional facilities
    • G06M3/02Counters with additional facilities for performing an operation at a predetermined value of the count, e.g. arresting a machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)

Abstract

本申请提供一种命令监控方法、装置、控制器、系统、设备和存储介质,该方法包括:在监测到对存储器的激活命令时,获取激活命令指定的目标存储单元阵列的第一地址信息,和存储器中的所有存储单元阵列的当前配置信息;基于第一地址信息、当前配置信息和预设的地址哈希表,从预设的计数器表中索引出激活命令指定的第一目标计数器,其中,计数器表中计数器的总数量小于存储器中存储单元阵列的总数量;判断第一目标计数器的计数值是否达到第一阈值;若第一目标计数器的计数值达到第一阈值,阻止激活命令的发送,并发送刷新管理命令请求至存储器的刷新控制器。本申请可以保证防止行锤击命令引起的数据丢失的情况下,节省计数器的硬件资源。

Description

命令监控方法、装置、控制器、系统、设备和存储介质
技术领域
本申请涉及内存技术领域,具体而言,涉及一种命令监控方法、装置、控制器、系统、设备和存储介质。
背景技术
诸如DRAM的易失性存储器装置基于存储在电容器中的电荷来确定数据。然而,由于存储在电容器中的电荷可随着时间以各种形式泄漏,因此,易失性存储器装置周期性地执行刷新操作。随着用于制造存储器装置的工艺缩小并且字线之间的间隔变窄,因字线的电压分布而连接到与该字线邻近的另一字线的存储器单元的电荷的影响增加。当一条字线被密集地访问时,发生行锤击现象,也就是说,由于一条字线的激活状态的电压,因此存储在连接到与该字线邻近的其他字线的存储器单元中的数据丢失。在数据由于电荷的泄漏而丢失之前,可通过再充电来保持存储在存储器单元中的电荷。单元电荷的这种再充电被称为刷新操作,并且在单元电荷大量丢失之前,可重复执行刷新操作。
在已知的方案中大多数行锤击控制是以Row(行)或者Bank(存储块)为单位的Active命令(激活命令)计数,对存储器单元阵列比较多的系统,将耗费比较大的硬件资源。
发明内容
本申请实施例的目的在于提供一种命令监控方法、装置、控制器、系统、设备和存储介质,可以保证防止行锤击命令引起的数据丢失的情况下,节省计数器的硬件资源。
本申请实施例第一方面提供了一种命令监控方法,包括:在监测到对存储器的激活命令时,获取所述激活命令指定的目标存储单元阵列的第一地址信息,和所述存储器中的所有存储单元阵列的当前配置信息;基于所述第一地址信息、所述当前配置信息和预设的地址哈希表,从预设的计数器表中索引出所述激活命令指定的第一目标计数器,其中,所述计数器表中计数器的总数量小于所述存储器中存储单元阵列的总数量;判断所述第一目标计数器的计数值是否达到第一阈值;若所述第一目标计数器的计数值达到所述第一阈值,阻止所述激活命令的发送,并发送刷新管理命令请求至所述存储器的刷新控制器。
本申请实施例第二方面提供了一种命令监控装置,包括:地址获取模块,用于在监测到对存储器的激活命令时,获取所述激活命令指定的目标存储单元阵列的第一地址信息,和所述存储器中的所有存储单元阵列的当前配置信息;第一计数器索引模块,用于基于所述第一地址信息、所述当前配置信息和预设的地址哈希表,从预设的计数器表中索引出所述激活命令指定的第一目标计数器,其中,所述计数器表中计数器的总数量小于所述存储器中存储单元阵列的总数量;判断模块,用于判断所述第一目标计数器的计数值是否达到第一阈值;命令阻止模块,用于若所述第一目标计数器的计数值达到所述第一阈值,阻止所述激活命令的发送,并发送刷新管理命令请求至所述存储器的刷新控制器。
本申请实施例第三方面提供了一种存储控制器,包括:本申请实施例第二方面及其任一实施例所述的命令监控装置;命令队列,用于生成对存储器的访问命令;刷新控制器,用于生成对所述存储器的刷新命令或者刷新管理命令;命令仲裁器,用于接收所述访问命令、所述刷新命令或者所述刷新管理命令,并对接收到的命令进行裁决,确定最终发送至存储器的命令;其中,所述命令监控装置用于监控所述命令仲裁器发出的命令。
本申请实施例第四方面提供了一种存储器系统,包括:本申请实施例第三方面所述的存储控制器和存储器。
本申请实施例第五方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行本申请实施例第一方面及其任一实施例的方法,以对存储器进行行锤击控制。
本申请实施例第六方面提供了一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行本申请实施例第一方面及其任一实施例的方法。
本申请提供的命令监控方法、装置、控制器、系统、设备和存储介质,通过预先配置地址哈希表和多个存储单元阵列共用的计数器表,在监测到激活命令时,基于激活命令指定的目标存储单元阵列的第一地址信息、地址哈希表以及存储器的当前配置信息从计数器表中索引出指定的第一目标计数器,针对该第一目标计数器进行行锤击刷新的阈值判断,进而通过多个存储单元阵列共用计数器的方式,实现对存储器进行行锤击控制,在保证防止行锤击命令引起的数据丢失的基础上,节约了硬件资源。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例的电子设备的结构示意图;
图2A至图2D为本申请一实施例的存储系统的结构示意图;
图3为本申请一实施例的命令监控方法的流程示意图;
图4为本申请一实施例的命令监控方法的流程示意图;
图5为本申请一实施例的命令监控装置的结构示意图;
图6为本申请一实施例的命令监控装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以共用计数器的方式对存储器进行行锤击控制。
于一实施例中,电子设备1可以是行锤击控制器或者可以实现行锤击控制的设备。
为了清楚的描述本实施例的方案,现将涉及的名词定义如下:
DDR5 DRAM:Double Data Rate Dynamic Random Access Memory,第五代双倍数据率动态随机存储器。
3DS:3维堆叠,DRAM颗粒的一种堆叠方式。
Rank:连接到一个片选线的内存条。
Bank:DRAM存储单元阵列,由行和列组成的存储区块。
CS:ChipSelect,Rank的地址。
Lr:Logic Rank,逻辑rank,DRAM地址的一部分。
Bg:Bank Group,所有的存储器阵列(Bank)又划分为多个组,称为Bank Group存储组,DRAM地址的一部分。
Ba:每个Bank Group里的Bank,DRAM地址的一部分。
Active:行激活命令。
Row:行,Active命令能激活一个Bank内任意一个Row。
REFab:All Bank Refresh,全区块刷新命令。
REFsb:Same Bank Refresh,同区块刷新命令。
RFM:Refresh Management,刷新管理命令。
RFMab:All bank Refresh Management,全区块刷新管理命令。
RFMsb:Same Bank Refresh Management,同区块刷新管理命令。
RAAIMT:Rolling Accumulated Active Initial Management Threshold,滚动累计激活初始管理阈值。
RAAMMT:Rolling Accumulated Active Maximum Management Threshold,滚动累计激活最大管理阈值。
RAADec:Rolling Accumulated Active Counter Decrement per REF Command,每个REF命令的滚动累计激活计数器减量。
本申请一实施例的行锤击监控场景:从DDR5 DRAM开始,新增了刷新管理命令(RFM)和同区块地址刷新命令(REFsb)。电子器件工程联合会Jedec的DDR5建议对每个存储器单元阵列(Bank)的行激活命令(Active)进行计数,称为Rolling Accumulated Active(RAA)count。当存储器单元阵列(Bank)收到Active command(激活命令),各自对应的RAA计数器加1.当DRAM收到RFMab命令或者RFMsb命令,存储器单元阵列(Bank)的RAAcnt(RAA计数器)减去一个值RAAIMT,RAA计数器最小可以减到0,不能减到负数。当DRAM收到REFab命令或者REFsb命令时,存储器单元阵列(Bank)的RAAcnt减去一个值RAADEC。RAA最小减到0,不能减到负数。当存储器单元阵列的RAA计数器计数值到最大阈值RAA Maximum ManagementThreshold(RAAMMT)时,将不允许再发送Active命令到对应Bank。直到REF命令或者RFM命令发出,使对应的RAA计数器减小到最大阈值RAAMMT以下,才允许相应的Active命令发送。
在实际的行锤击监控场景中,上述设计需要对每个存储器单元阵列分配一个计数器来计数,这对于存储器单元阵列比较多的存储系统来说,硬件成本是比较高的,为了节省一定的硬件成本,本申请提供了一种可行方案,其结合刷新控制器,命令队列监测等模块,可以做到防止行锤击命令引起的数据丢失,并且最大化的做到兼顾DRAM带宽性能和硬件成本。
请参看图2A至图2D,其为本申请一实施例的一种存储器系统2,其可以应用于上述行锤击监控场景中,以在防止行锤击命令引起的数据丢失的情况下,节约硬件资源。
如图2A所示,该存储器系统2包括:存储控制器100和存储器200,其中,存储器200包括多个存储单元阵列,用于存储相关数据,存储控制器100用于管理控制和调度访问该存储器200的命令和信号。
于一实施例中,存储器200可以是易失性存储器,比如DRAM。
于一实施例中,如图2B所示,本实施例的存储器200假设包括1024个Bank。其中包括4个Rank 120a、120b、120c、120d,可以通过2位地址CS[1:0]选择,这4个Rank也可以单独配置是否使能。
于一实施例中,每个Rank可包括多个Logic Rank,比如可以包括2个、4个或8个Logic Rank,图2B中以每个Rank可包括8个Logic Rank为例,分别是Logic Rank 130a、130b、130c、130d、130e,130f、130g、130h(即3DS堆叠),Logic Rank可以通过3位地址Lr[2:0]选择。
于一实施例中,如图2C所示,每个Logic Rank最多可包括32个Bank,其中可以划分成多个存储组,比如可以划分为8个Bank Group 140a、140b、140c、140d、140e、140f、140g、140h,Bank Group可以通过3位地址Bg[2:0]选择。
于一实施例中,如图2C所示,每个Bank Group里被配置有4个Bank 150a、150b、150c、150d,Bank可以通过2位地址Ba[1:0]选择。
对上述1024个Bank,如果采用现有的方案每个Bank分配一个计数器计数,比较耗费硬件资源。本实施例中在行锤击控制场景中采用一种Hash(哈希)算法对这1024个Bank分配对应的RAA计数器,实现多个存储单元阵列共用一个计数器。
请参看图2D,其为本申请一实施例的一种存储控制器100的结构示意图,该存储控制器100可以包括:命令监控装置101、命令队列104、刷新控制器103、和命令仲裁器102,其中:
命令监控装置101可以是存储器200的行锤击控制器。
刷新控制器103,用于生成对对上述图2A至图2C所示的存储器200的刷新命令或者刷新管理命令。比如刷新控制器103会发出REFab命令、REFsb命令、RFMab命令或者RFMsb命令的请求到命令仲裁器102。
命令队列104,用于生成存储器200的访问命令。比如,在刷新控制器103发送命令请求到命令仲裁器102的同时,命令队列104也可以发出如Active命令、Precharge(预充电)命令、Read(读)命令或者Write(写)命令的访问命令请求到命令仲裁器102。
命令仲裁器102,用于接收访问命令、刷新命令或者刷新管理命令,并对接收到的命令进行裁决,确定最终发送至存储器200的命令。其中,命令监控装置101用于监控命令仲裁器102发出的命令。比如命令仲裁器102可以对收到的命令请求进行仲裁,并决定最终发到存储器200的命令。经命令仲裁器102仲裁后发出的命令同时可以送到行锤击控制器,由行锤击控制器对Active命令、REFab命令、REFsb命令、RFMab命令和RFMsb命令进行监测。
请参看图3,其为本申请一实施例的命令监控方法,该方法可由图1所示的电子设备1作为命令监控装置101来执行,并可以应用于上述图2A至图2D中的存储器系统22中,以在上述行锤击监控场景中,实现在防止行锤击命令引起的数据丢失的情况下,节约硬件资源。该方法包括如下步骤:
步骤301:在监测到对存储器200的激活命令时,获取激活命令指定的目标存储单元阵列的第一地址信息,和存储器200中的所有存储单元阵列的当前配置信息。
在本步骤中,以行锤击控制器作为命令监控装置101为例,行锤击控制器实时监测命令仲裁器102发出的命令,当在监测到对存储器200的激活命令时,首先截获该激活命令,并从中解析出该激活命令指定的目标存储单元阵列的第一地址信息,存储器200中包括多个存储单元阵列,存储器200在实际使用时可以由用户对其资源使用情况进行配置,不同的资源配置会有不同的行锤击控制方式,因此,还需要获取存储器200中的所有存储单元阵列的当前配置信息,比如可以从存储器200的配置寄存器中读取当前配置信息。
步骤302:基于第一地址信息、当前配置信息和预设的地址哈希表105,从预设的计数器表106中索引出激活命令指定的第一目标计数器。
在本步骤中,如图2D所示,行锤击控制器中配置了地址哈希表105,地址哈希表105中配置了在对存储器200资源不同当前配置信息下对应的命令地址处理指令。可以基于当前配置信息对应的地址处理指令,对激活命令的第一地址信息进行相关处理,然后基于处理后的地址信息从计数器表106中查找出该激活指令指定的第一目标计数器。
于一实施例中,计数器表106可以预先配置。计数器个数的选择可以基于存储器200的设计中所有的Bank数和存储器200是否支持REFsb命令或者RFMsb命令,以及存储器200的设计中硬件资源的考量。为了节约硬件资源,计数器表106中计数器的总数量小于存储器200中存储单元阵列的总数量。
于一实施例中,如果芯片设计中需要支持同区块刷新命令REFsb,或者同区块刷新管理命令RFMsb,计数器的个数要大于等于所有Bg地址都掩盖掉的个数。以图2A至图2C的存储器200为例,例如存储器200所有Bank number为1024,即所有地址位宽为10bit,若其中Bg地址位宽为3bit,则计数器的个数需要大于等于2^(10-3)=128个,若设计的计数器个数是128个,则3bit的Bg地址都需要hash(掩盖)掉。若设计的计数器个数是256个,则2bit的Bg地址需要hash掉。若设计的计数器个数是512个,则1bit的Bg地址需要hash掉。若设计的计数器个数大于等于1024,则不需要hash Bg地址。
于一实施例中,如果存储器200设计中不支持REFsb命令或者RFMsb命令,或者支持REFsb命令和RFMsb命令,但是REFsb命令和RFMab命令到来的时候,对计数器值不进行减小。则计数器个数的设计可以根据设计者硬件资源进行选择,不做最小限制,理论上所有的存储单元阵列可以共用一个计数器。
如图2D所示,行锤击控制器中配置有计数器表106,图2D中以存储器200共1024个Bank为例,共被配置有128个RAA计数器(即RAA Counter0至RAA Counter127),实际计数器的个数不限于128个。
步骤303:判断第一目标计数器的计数值是否达到第一阈值。若是,进入步骤304,否则进入步骤305。
在本步骤中,第一阈值可以基于实际行锤击控制需求进行配置,以DDR5 DRAM为例,第一阈值可以是计数器允许的计数最大值RAAMMT,RAAMMT的取值范围可以在96至480。可以读取第一目标计数器的当前计数值,然后比较当前的计数值是否达到第一阈值RAAMMT,若是,进入步骤304,否则进入步骤305。
步骤304:阻止激活命令的发送,并发送刷新管理命令请求至存储器200的刷新控制器103。
在本步骤中,若第一目标计数器的计数值达到第一阈值,比如当前的计数值达到第一阈值RAAMMT,则说明第一目标计数器的计数值已经达到允许的最大值,为了避免行锤击现象造成存储器200数据丢失,需要对存储器200进行行锤击控制的刷新。首先阻止该激活命令的发送,使其暂时不能发送给存储器200,然后发送携带有第一地址信息的刷新管理命令请求至存储器200的刷新控制器103,以使刷新控制器103发送相关的行锤击刷新命令至存储器200,使存储器200得到刷新,避免数据丢失。
步骤305:第一目标计数器的计数加1个单位。
在本步骤中,若第一目标计数器的计数值未达到第一阈值,比如当前的计数值没有达到最大值RAAMMT,则说明还不需要额外的刷新命令给刷新控制器103,可以允许该激活命令按照命令仲裁器102的仲裁结果发送给存储器200,然后对应的第一计数器计数值增加1。
于一实施例中,若第一目标计数器的计数值未达到第一阈值,此时针对存储器200的刷新命令比如REFab命令或者REFsb命令,主要由刷新命令控制器按预先配置的进度控制发出,此时发出的REFsb命令或REFab命令没有行锤击控制器的特别指定。
上述命令监控方法,通过预先配置地址哈希表105和多个存储单元阵列共用的计数器表106,在监测到激活命令时,基于激活命令指定的目标存储单元阵列的第一地址信息、地址哈希表105以及存储器200的当前配置信息从计数器表106中索引出指定的第一目标计数器,针对该第一目标计数器进行行锤击刷新的阈值判断,进而通过多个存储单元阵列共用计数器的方式,实现对存储器200进行行锤击控制,在保证防止行锤击命令引起的数据丢失的基础上,节约了硬件资源。
请参看图4,其为本申请一实施例的命令监控方法,该方法可由图1所示的电子设备1作为命令监控装置101来执行,并可以应用于上述图2A至图2D中的存储器系统2中,以在上述行锤击监控场景中,实现在防止行锤击命令引起的数据丢失的情况下,节约硬件资源。该方法包括如下步骤:
步骤401:获取存储器200的硬件资源信息。
在本步骤中,硬件资源信息是存储器200产品固有的资源,在实际场景中集合所有的针对存储器200的实施方案中,必须考虑存储器200的硬件资源,而节约硬件资源是存储器200使用的根本追求。以图2A至图2C所示的存储器200为例,假设存储器200的硬件资源信息包括1024个Bank。当然每个存储器200包含的Bank数也可以是其他数量,不限于此。
步骤402:基于硬件资源信息,确定存储器200在每一种配置下的命令地址哈希指令,生成地址哈希表105。
在本步骤中,如前述,为了使得多个存储单元阵列可以共用计数器,地址哈希表105中配置了在不同资源配置下对命令地址的处理方式,使不同存储单元阵列的激活命令地址经过处理后,可以索引出相同的计数器。而为了综合存储器200的工作效率和资源利用率,地址哈希表105的配置需要基于存储器200的实际硬件资源信息来考虑,为了适应更多的使用场景,可以基于存储器200的硬件资源信息,在地址哈希表105中确定该存储器200在每一种资源配置下的命令地址哈希指令。在地址哈希表105中,存储的是不同类型命令地址的哈希处理方式,即命令地址哈希指令是用来指示每种类型命令地址需要做什么样的地址位处理的。
在实际场景中,以如图2A至图2D所示的存储系统为例,假设存储器200包括1024个Bank。计数器表106中共被配置有128个RAA计数器(即RAA Counter0至RAA Counter127)。RAA计数器通过idx[7:0]=0~127进行索引。在配置地址哈希表105时,需要对命令仲裁器102发出的命令的地址Cs、地址Lr、地址Bg以及地址Ba分别进行hash处理,其中最终的命令地址hash={CsHash,LrHash,BgHash,BaHash},hash值对应相应的计数器。
如上述,存储器200中使能的Bank总数NumBanks为:
NumBanks=NumRank*NumLr*NumBa*NumBg
其中,NumRank为存储器200中使能的Rank数量,NumLr为存储器200中每个Rank使能的Logic Rank数量,NumBa为存储器200中每个Bank Group中使能的Bank数量,NumBg为存储器200中每个Logic Rank中使能的Bank Group数量。
于一实施例中,当存储器200包括至少一个存储条,每个存储条中包括多个存储单元阵列时。步骤402可以包括:基于存储器200中使能的存储条的数量,确定在地址哈希表105中指向存储条的命令地址哈希指令。
在本步骤中,以如图2A至图2D所示的存储系统为例,其中包括4个Rank(存储条),命令中指向存储条的命令地址为CS,可以通过2位地址CS[1:0]选择,这4个Rank也可以单独配置是否使能。在配置地址哈希表105时,对Cs地址做如下处理,Cs地址的哈希指令CsHash配置方式为:
1)若使能1个Rank,NumRank=1,则CsHash Mask掉,CsHash位数为0。
2)若使能2个Rank,NumRank=2,若Cs0和Cs1使能,或者Cs2和Cs3使能,则CsHash=Cs[0]。若Cs0和Cs2使能,或者Cs0和Cs3使能,或者Cs1和Cs2使能,或者Cs1和Cs3使能,则CsHash=Cs[1]。
3)若使能3或4个Rank,NumRank=4则CsHash=Cs[1:0]。
于一实施例中,若每个使能存储条分配有多个逻辑内存条资源。步骤402还可以包括:基于每个使能存储条包括的逻辑内存条的数量,确定在地址哈希表105中指向逻辑内存条的命令地址哈希指令。
在本步骤中,以如图2A至图2D所示的存储系统为例,每个Rank可包括多个LogicRank(逻辑内存条),比如可以包括2个、4个或8个Logic Rank,指向逻辑内存条的命令地址为Lr,在配置地址哈希表105时,可以对Lr地址做如下处理,Lr地址的哈希指令LrHash配置方式为:
1)若Logic rank数=2,NumLr=2则LrHash=Lr[0]。
2)若Logic rank数=4,NumLr=4则LrHash=Lr[1:0]。
3)若Logic rank数=8,NumLr=8则LrHash=Lr[2:0]。
于一实施例中,若每个逻辑内存条分配有多个存储组。步骤402还可以包括:基于每个存储组中的存储单元阵列的数量,确定在地址哈希表105中指向存储单元阵列的命令地址哈希指令。
在本步骤中,指向存储单元阵列的命令地址是Ba地址,以如图2A至图2D所示的存储系统为例,假设每个Bank Group里被配置有2个Bank或者4个Bank,Bank可以通过2位地址Ba[1:0]选择。在配置地址哈希表105时,可以对Ba地址做如下处理,则Ba地址的哈希指令BaHash配置方式为:
1)若每个BankGroup Bank数=2,NumBa=2则BaHash=Ba[0]。
2)若每个BankGroup Bank数=4,NumBa=4则BaHash=Ba[1:0]。
如此,不同的配置资源下,Ba地址位宽可以不同,比如每个BankGroup Bank数越少,相应的Ba地址位宽可以越小,进而做到多个存储阵列单元可以共用有限的计数器,充分利用资源。
于一实施例中,步骤402还可以包括:基于存储器200中存储单元阵列的使能数量,确定在不同的使能数量下在地址哈希表105中指向存储组的命令地址哈希指令。
在本步骤中,对于实际场景中,不需要特殊指明BankGroup地址的情况,在对命令地址做哈希处理时,可以优先考虑将激活命令的第一地址信息中的某几位BankGroup地址hash掉的方式,使得通过地址哈希表105的处理,不同存储单元阵列的激活命令可以共用同一个计数器,合理利用计数器资源。以如图2A至图2D所示的存储系统为例,指向存储组的命令地址为Bg地址,在配置地址哈希表105时,可以对Bg地址做如下处理,其中Bg地址的哈希命令BgHash配置方式为:
1)若128<NumBanks<=256,将BG2地址忽略,BgHash=Bg[1:0];
2)若256<NumBanks<=512,将BG2,BG1地址忽略,BgHash=Bg[0];
3)若512<NumBanks<=1024,将BG2,BG1,BG0地址忽略,BgHash Mask(掩盖)掉,BgHash位数为0。
根据以上规则可以分别得到的CsHash、LrHash、BgHash、BaHash在地址哈希表105中的分布,上述方案同样适用于支持同区块刷新命令(REFsb)的存储器200。以如图2A至图2D所示的存储系统为例,如表1所示,为使能1个Rank时的地址哈希表105:
表1.使能1个Rank时的地址哈希表105
Figure BDA0003140030650000141
如表2所示,为使能2个Rank时的地址哈希表105:
表2.使能2个Rank时的地址哈希表105
Figure BDA0003140030650000142
如表3所示,为使能3个或4个Rank时的地址哈希表105:
表3.使能3个或4个Rank时的地址哈希表105
Figure BDA0003140030650000151
步骤403:在监测到对存储器200的激活命令时,获取激活命令指定的目标存储单元阵列的第一地址信息,和存储器200中的所有存储单元阵列的当前配置信息。详细参见上述实施例中对步骤301的描述。
步骤404:从地址哈希表105中索引得到在当前配置信息下的目标命令地址哈希指令。
在本步骤中,目标命令地址哈希指令包含但不限于:CsHash、LrHash、BgHash和/或BaHash。基于索引到的目标命令地址哈希指令,可以得到该激活命令最终的地址Hash={CsHash,LrHash,BgHash,BaHash}。
比如,若存储器200当前配置信息为RankNum=4,NumLr=4,NumBg=4,NumBa=4。则可以对应到上述地址哈希表1053,表3中左边数第10行的哈希指令(如表3中加下划线的部分)就是当前配置信息下的各个目标命令地址哈希指令。
步骤405:基于目标命令地址哈希指令,计算第一地址信息的第一哈希值,并从预设的计数器表106中索引出编号为第一哈希值的第一目标计数器。
在本步骤中,假设步骤403中监测到的Active第一地址信息为Cs[1:0]=2’b01,Lr[2:0]=3’b001,Bg[2:0]=3’b010,Ba[1:0]=2’b01,则激活命令最终的地址hash(第一哈希值)={2’b01,2’b01,1’b0,2’b01}=7’b0101001=41(转成十进制值后),则说明该激活命令映射到计数器表106中的RAA counter41(第一目标计数器)。
步骤406:判断第一目标计数器的计数值是否达到第一阈值。若是,进入步骤407,否则,进入步骤412。详细参见上述实施例中对步骤303的描述。
步骤407:若第一目标计数器的计数值达到第一阈值,阻止激活命令的发送,并发送刷新管理命令请求至存储器200的刷新控制器103,刷新管理命令请求携带有第一地址信息。详细参见上述实施例中对步骤304的描述。
于一实施例中,当有RAAcnt计数器达到RAAMMT阈值时,则发送相应的RFM命令请求到刷新控制器103,此RFM命令请求由行锤击控制器根据到达第一阈值的计数器index(比如第一地址信息的第一哈希值)译出相应的Cs、Lr、Ba地址,当刷新命令控制器收到RFM命令请求时会等到条件满足的时间发出相应地址的REFab命令、REFsb命令、RFMab命令或者RFMsb命令,具体发出哪种刷新命令主要由刷新命令控制器决定
于一实施例中,在步骤407之后,还可以包括:
步骤408:在监测到对存储器200的刷新命令时,将第二地址信息中的预设地址位掩盖掉(Mask),得到第三地址信息,并将计数器表的所有计数器地址中的预设地址位掩盖掉,得到掩盖地址后的计数器表。
在本步骤中,此处第二地址信息为监测到的刷新命令携带的命令地址,其中包含完整的地址位,如果行锤击控制器监测到刷新控制器103发送给存储器200的刷新命令,则可以将第二地址信息中的某几位地址掩盖掉,也就是忽略几位地址,以使得到的第三地址信息中的有效地址位减少。比如第二地址信息中包括Cs地址、Lr地址、Bg地址、和Ba地址,共四种地址,可以通过忽略其中某种地址或者某种地址的某几位信息,来得到第三地址信息。并对计数器表的所有计数器地址做同样的地址位掩盖处理,得到掩盖后的计数器表。
于一实施例中,步骤408中监测到的刷新命令由刷新控制器103基于自身的配置条件发出,该步骤408中的刷新命令如果是刷新控制器103基于步骤407的刷新管理命令请求发出的,则第二地址信息与第一地址信息指向同一个存储单元阵列;若步骤408中的刷新命令不是刷新控制器103基于步骤407的刷新管理命令请求发出的,则第二地址信息与第一地址信息可能指向不同的存储单元阵列。
于一实施例中,刷新命令为同区块刷新命令或者同区块刷新管理命令。步骤408可以包括:将第二地址信息中的存储组地址位掩盖掉,得到第三地址信息。
在本步骤中,如果是同区块刷新命令,则是对目标Rank、目标Lr、目标Ba地址的Bank进行刷新,此时要对目标Rank、目标Lr、目标Ba的所有BankGroup组对应的计数器做减值处理,也就可以不必区分BankGroup组。因此,假设存储系统被配置支持同区块刷新命令REFsb,或者同区块刷新管理命令RFMsb,则每来一个RFMsb命令或者REFsb命令,可以将第二地址信息的第二哈希值Hash={CsHash,LrHash,BgHash,BaHash}的Bg地址{BgHash}Mask后,得到第三地址信息的第三哈希值。由于同区块刷新需要指定相应的目标Bank地址,因此BaHash需要保留在第三哈希值中。
于一实施例中,刷新命令为全区块刷新命令或全区块刷新管理命令。步骤408可以包括:将第二地址信息中的存储组地址位和存储区块地址位掩盖掉,得到第三地址信息。
在本步骤中,如果是全区块刷新命令,则是对目标Rank、目标Lr的所有BankGroup里的所有Bank同时刷新,此时要对目标Rank、目标Lr里所有Bank的计数器都做减值处理,此时可以不必区分BankGroup组和Bank。因此,每监测到一个RFMab命令或者REFab命令,将第二地址信息的第二哈希值Hash={CsHash,LrHash,BgHash,BaHash}的Bg地址和Ba地址{BgHash,BaHash}Mask后,得到第三地址信息的第三哈希值。
于一实施例中,在上述对刷新命令的第二地址信息做mask后,可以同时对计数器表的idx[6:0]同步进行同样的mask处理,得到mask之后的计数器表。
于一实施例中,在对预设地址位进行掩盖处理时,目的是将被掩盖的地址位无效掉,可以通过将预设地址位设置为全1来实现。比如,此处若BgHash位宽为1,BaHash位宽为2,当需要mask掉Bg地址时,可以通过将Bg地址位设置为全1,即BaMask=7’b0000011。当需要mask掉Bg地址和Ba地址时,可以通过将Bg地址位和Ba地址位设置为全1,即BgBaMask=7’b0000111。上述地址掩盖处理方式同样适用于对第二地址信息的处理和对计数器表中计数器地址的处理。
步骤409:基于第三地址信息在掩盖地址后的计数器表106中索引出刷新命令指定的第二目标计数器。
在本步骤中,假设步骤408中监测到的RFMab命令或者REFab命令第二地址信息为Cs[1:0]=2’b01,Lr[2:0]=3’b001,Bg[2:0]=3’b010,Ba[1:0]=2’b01,则该刷新命令地址的第二哈希值Hash={2’b01,2’b01,1’b0,2’b01}=41,此时可以mask掉Bg地址和Ba地址,可以通过将第二哈希值的Bg地址位和Ba地址位设置为全1,即BgBaMask=7’b0000111,得到第三地址信息的第三哈希值,然后将计数器表idx[6:0]同步进行同样的mask处理,将计数器表idx[6:0]的Bg地址位和Ba地址位设置为全1,即BgBaMask[6:0]=7’b0000111,则在索引时,可以得到Hash[6:0]|BgBaMask[6:0]==idx[6:0]|BgBaMask[6:0],也就是说,第三地址信息和掩盖地址后的计数器表中的Bg地址位和Ba地址位均是无效的,不再参与地址位计算,以此索引到相应的第二目标计数器,此时,计数器表中只要满足Cs地址和Lr地址与第三地址信息中的Cs地址和Lr地址相同的计数器都是第二目标计数器。
于一实施例中,第二目标计数器可以包括多个计数器。如果是所有区块刷新命令,则是对目标Rank,目标Lr的所有BankGroup里的所有Bank同时刷新,此时要对目标Rank,目标Lr里所有Bank的计数器都做减值处理,如果是同区块刷新命令,则是对目标Rank,目标Lr,目标Ba地址的Bank进行刷新,此时要对目标Rank,目标Lr,目标Ba的所有BankGroup组的计数器做减值处理。
步骤410:将第二目标计数器的计数值做减值处理。
在本步骤中,可以将第二目标计数器的计数值减去一个设定值RAAIMT,以图2A至图2D所示的存储系统为例,该设定值RAAIMT取值范围可以是16至80。减值后的第二目标计数器的计数值会低于第一阈值,如此,下一次有激活命令指定的是第二目标计数器时,可以允许激活命令发送至存储器200进行激活操作。于一实施例中,步骤410可以包括:若第二目标计数器当前的计数值小于被减掉的预设值,将第二目标计数器的计数值减值为0。
在实际场景中,计数器的计数值不允许为负值。因此每来一个RFMsb命令或者RFMab命令,基于第二哈希值从计数器表106中索引出相应的RAA计数器(第二目标计数器),此时,相应的第二目标计数器减去一个预设值RAAIMT,若第二目标计数器当前的计数值RAACnt值小于RAAIMT,则将第二目标计数器减到0。
于一实施例中,每监测到一个REFsb命令或者REFab命令,按照上述方式索引相应的第二目标计数器,相应的第二目标计数器减去RAAIMT*DecRate,若RAACnt值小于RAAIMT*DecRate,则减到0。其中DecRate为一个减值比率,由存储系统的产品硬件属性设定,比如可以为1或者0.5。
步骤411:若第二目标计数器中包括第一目标计数器,发送激活命令至目标存储单元阵列。
在本步骤中,可以是实时监测第一目标计数器的计数值是否被减值,假设第二目标计数器中包括第一目标计数器,也就是说第一目标计数器也被减值处理过,那么即可证明第一目标计数器当前的计数值是小于第一阈值的,因此可以将之前步骤407中被阻止发送的激活命令发送至目标存储单元阵列,完成激活操作。
步骤412:若第一目标计数器的计数值未达到第一阈值,第一目标计数器的计数加1个单位。详细参见上述实施例中对步骤305的描述。
于一实施例中,上述命令监控方法,也可以应用于命令队列104里的命令,对命令队列104里命令的地址Cs、Lr、Bg、Ba也可以同样hash处理,通过最终地址hash值索引相应的RAA计数器,若相应的RAACnt计数值达到RAAMMT阈值,则阻止该命令队列104相应的Active命令的发送,同时发出RFM命令请求到刷新控制器103,直到相应的RFM命令或者REF命令的发出使RAACnt减到低于RAAMMT阈值时,才允许命令队列104里相应的Active命令发出。
于一实施例中,当RAAcnt计数器没有达到RAAMMT阈值时,并没有RFM命令请求发送到刷新控制器103,此时REFab命令或者REFsb命令主要由刷新命令控制器按进度控制发出,此时发出的REFab命令或者REFsb命令没有行锤击控制器的特别指定。
于一实施例中,当有RAAcnt计数器达到RAAMMT阈值时,则发送相应的RFM命令请求到刷新控制器103,此RFM命令请求由行锤击控制器根据到达第一阈值的计数器index译出相应的Cs、Lr、Ba地址,当刷新命令控制器收到RFM命令请求时会等到条件满足的时间发出相应地址的REFab命令、REFsb命令、RFMab命令或者RFMsb命令,具体发出哪种刷新命令主要由刷新命令控制器决定。在没有相应地址的刷新命令发出之前,都需要继续阻止激活命令的发送,同时继续保持RFM刷新命令,直到有相应地址的刷新命令发出为止。
上述命令监控方法,通过采用将相应位数的Bank Group地址掩盖掉的Hash方式,实现多个存储器200单元阵列共用一个计数器,这种Hash方式可以兼顾支持相同区块刷新命令(REFsb)和相同区块刷新管理命令(RFMsb)。结合RFM刷新管理命令和同区块刷新请求REFsb/RFMsb,在保证防止行锤击命令引起的数据丢失的基础上,进一步节约有限的硬件资源,提高DRAM带宽性能。
请参看图5,其为本申请一实施例的命令监控装置500,该装置可应用于图1所示的电子设备1,并可以应用于上述图2A至图2D中的存储器系统2中,以在上述行锤击监控场景中,实现在防止行锤击命令引起的数据丢失的情况下,节约硬件资源。该装置包括:地址获取模块501、第一计数器索引模块502、判断模块503和命令阻止模块504,各个模块的原理关系如下:
地址获取模块501,用于在监测到对存储器200的激活命令时,获取激活命令指定的目标存储单元阵列的第一地址信息,和存储器200中的所有存储单元阵列的当前配置信息。详细参见上述实施例中对步骤301的描述。
第一计数器索引模块502,用于基于第一地址信息、当前配置信息和预设的地址哈希表,从预设的计数器表中索引出激活命令指定的第一目标计数器,其中,计数器表中计数器的总数量小于存储器200中存储单元阵列的总数量。
判断模块503,用于判断第一目标计数器的计数值是否达到第一阈值。
命令阻止模块504,用于若第一目标计数器的计数值达到第一阈值,阻止激活命令的发送,并发送刷新管理命令请求至存储器200的刷新控制器。
如图6所示,于一实施例中,还包括:配置信息获取模块505,用于在基于第一地址信息、当前配置信息和预设的地址哈希表,索引出激活命令指定的第一目标计数器之前,获取存储器200的硬件资源信息。哈希表生成模块506,用于基于硬件资源信息,确定存储器200在每一种配置下的命令地址哈希指令,生成地址哈希表。
于一实施例中,存储器200包括至少一个存储条,每个存储条中包括多个存储单元阵列。哈希表生成模块506用于:基于存储器200中使能的存储条的数量,确定在地址哈希表中指向存储条的命令地址哈希指令。
于一实施例中,每个使能存储条分配有多个逻辑内存条资源。哈希表生成模块506还用于:基于每个使能存储条包括的逻辑内存条的数量,确定在地址哈希表中指向逻辑内存条的命令地址哈希指令。
于一实施例中,每个逻辑内存条分配有多个存储组。哈希表生成模块506还用于:基于每个存储组中的存储单元阵列的数量,确定在地址哈希表中指向存储单元阵列的命令地址哈希指令。
于一实施例中,哈希表生成模块506还用于:基于存储器200中存储单元阵列的使能数量,确定在不同的使能数量下在地址哈希表中指向存储组的命令地址哈希指令。
于一实施例中,第一计数器索引模块502用于:从地址哈希表中索引得到在当前配置信息下的目标命令地址哈希指令。基于目标命令地址哈希指令,计算第一地址信息的第一哈希值,并从预设的计数器表中索引出编号为第一哈希值的第一目标计数器。
于一实施例中,刷新管理命令请求中携带有第二地址信息。装置还包括:地址掩盖掉模块507,用于在发送刷新管理命令请求至存储器200的刷新控制器之后,在监测到对存储器200的刷新命令时,将第二地址信息中的预设地址位掩盖掉,得到第三地址信息,并将计数器表中每个计数器地址的预设地址位掩盖掉,得到掩盖地址后的计数器表。第二计数器索引模块508,用于基于第三地址信息在掩盖地址后的计数器表中索引出刷新命令指定的第二目标计数器。计数减值模块509,用于将第二目标计数器的计数值做减值处理。
于一实施例中,计数减值模块509用于:若第二目标计数器当前的计数值小于被减掉的预设值,将第二目标计数器的计数值减值为0。
于一实施例中,还包括:命令发送模块510,用于在将第二目标计数器的计数值做减值处理之后,若第二目标计数器中包括第一目标计数器,发送激活命令至目标存储单元阵列。
于一实施例中,刷新命令为同区块刷新命令或者同区块刷新管理命令。地址掩盖掉模块507用于:将第二地址信息中的存储组地址位掩盖掉,得到第三地址信息。
于一实施例中,刷新命令为全区块刷新命令或全区块刷新管理命令。地址掩盖掉模块507用于:将第二地址信息中的存储组地址位和存储区块地址位掩盖掉,得到第三地址信息。
于一实施例中,还包括:计数加值模块511,用于若第一目标计数器的计数值未达到第一阈值,第一目标计数器的计数加1个单位。
上述命令监控装置500的详细描述,请参见上述实施例中相关方法步骤的描述。
本发明实施例还提供了一种非暂态电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (19)

1.一种命令监控方法,其特征在于,包括:
在监测到对存储器的激活命令时,获取所述激活命令指定的目标存储单元阵列的第一地址信息,和所述存储器中的所有存储单元阵列的当前配置信息;
基于所述第一地址信息、所述当前配置信息和预设的地址哈希表,从预设的计数器表中索引出所述激活命令指定的第一目标计数器,其中,所述计数器表中计数器的总数量小于所述存储器中存储单元阵列的总数量;
判断所述第一目标计数器的计数值是否达到第一阈值;
若所述第一目标计数器的计数值达到所述第一阈值,阻止所述激活命令的发送,并发送刷新管理命令请求至所述存储器的刷新控制器;
其中,在所述基于所述第一地址信息、所述当前配置信息和预设的地址哈希表,索引出所述激活命令指定的第一目标计数器之前,还包括:
获取所述存储器的硬件资源信息;
基于所述硬件资源信息,确定所述存储器在每一种配置下的命令地址哈希指令,生成所述地址哈希表。
2.根据权利要求1所述的方法,其特征在于,所述存储器包括至少一个存储条,每个所述存储条中包括多个所述存储单元阵列;所述基于所述硬件资源信息,确定所述存储器在每一种配置的命令地址哈希指令,生成所述地址哈希表,包括:
基于所述存储器中使能的存储条的数量,确定在所述地址哈希表中指向所述存储条的命令地址哈希指令。
3.根据权利要求2所述的方法,其特征在于,每个使能存储条分配有多个逻辑内存条资源;所述基于所述硬件资源信息,确定所述存储器在每一种配置的命令地址哈希指令,生成所述地址哈希表,包括:
基于每个使能存储条包括的所述逻辑内存条的数量,确定在所述地址哈希表中指向所述逻辑内存条的命令地址哈希指令。
4.根据权利要求3所述的方法,其特征在于,每个所述逻辑内存条分配有多个存储组;所述基于所述硬件资源信息,确定所述存储器在每一种配置的命令地址哈希指令,生成所述地址哈希表,包括:
基于每个所述存储组中的存储单元阵列的数量,确定在所述地址哈希表中指向所述存储单元阵列的命令地址哈希指令。
5.根据权利要求4所述的方法,其特征在于,所述基于所述硬件资源信息,确定所述存储器在每一种配置的命令地址哈希指令,生成所述地址哈希表,包括:
基于所述存储器中所述存储单元阵列的使能数量,确定在不同的所述使能数量下在所述地址哈希表中指向所述存储组的命令地址哈希指令。
6.根据权利要求1所述的方法,其特征在于,所述基于所述第一地址信息、所述当前配置信息和预设的地址哈希表中索引出所述激活命令指定的第一目标计数器,包括:
从所述地址哈希表中索引得到在所述当前配置信息下的目标命令地址哈希指令;
基于所述目标命令地址哈希指令,计算所述第一地址信息的第一哈希值,并从预设的计数器表中索引出编号为所述第一哈希值的所述第一目标计数器。
7.根据权利要求1所述的方法,其特征在于,所述刷新管理命令请求中携带有第二地址信息;在所述发送刷新管理命令请求至所述存储器的刷新控制器之后,还包括:
在监测到对所述存储器的刷新命令时,将所述第二地址信息中的预设地址位掩盖掉,得到第三地址信息,并将所述计数器表中每个计数器地址的所述预设地址位掩盖掉,得到掩盖地址后的计数器表;
基于所述第三地址信息在所述掩盖地址后的计数器表中索引出所述刷新命令指定的第二目标计数器;
将所述第二目标计数器的计数值做减值处理。
8.根据权利要求7所述的方法,其特征在于,所述将所述第二目标计数器的计数值做减值处理,包括:
若所述第二目标计数器当前的计数值小于被减掉的预设值,将所述第二目标计数器的计数值减值为0。
9.根据权利要求7所述的方法,其特征在于,在所述将所述第二目标计数器的计数值做减值处理之后,还包括:
若所述第二目标计数器中包括所述第一目标计数器,发送所述激活命令至所述目标存储单元阵列。
10.根据权利要求7所述的方法,其特征在于,所述刷新命令为同区块刷新命令或者同区块刷新管理命令;所述将所述第二地址信息中的预设地址位掩盖掉,得到第三地址信息,包括:
将所述第二地址信息中的存储组地址位掩盖掉,得到所述第三地址信息。
11.根据权利要求7所述的方法,其特征在于,所述刷新命令为全区块刷新命令或全区块刷新管理命令;所述将所述第二地址信息中的预设地址位掩盖掉,得到第三地址信息,包括:
将所述第二地址信息中的存储组地址位和存储区块地址位掩盖掉,得到所述第三地址信息。
12.根据权利要求1所述的方法,其特征在于,还包括:
若所述第一目标计数器的计数值未达到所述第一阈值,所述第一目标计数器的计数加1个单位。
13.一种命令监控装置,其特征在于,包括:
地址获取模块,用于在监测到对存储器的激活命令时,获取所述激活命令指定的目标存储单元阵列的第一地址信息,和所述存储器中的所有存储单元阵列的当前配置信息;
第一计数器索引模块,用于基于所述第一地址信息、所述当前配置信息和预设的地址哈希表,从预设的计数器表中索引出所述激活命令指定的第一目标计数器,其中,所述计数器表中计数器的总数量小于所述存储器中存储单元阵列的总数量;
判断模块,用于判断所述第一目标计数器的计数值是否达到第一阈值;
命令阻止模块,用于若所述第一目标计数器的计数值达到所述第一阈值,阻止所述激活命令的发送,并发送刷新管理命令请求至所述存储器的刷新控制器;
配置信息获取模块,用于在所述基于所述第一地址信息、所述当前配置信息和预设的地址哈希表,索引出所述激活命令指定的第一目标计数器之前,获取所述存储器的硬件资源信息;
哈希表生成模块,用于基于所述硬件资源信息,确定所述存储器在每一种配置下的命令地址哈希指令,生成所述地址哈希表。
14.根据权利要求13所述的装置,其特征在于,所述存储器包括至少一个存储条,每个所述存储条中包括多个所述存储单元阵列;所述哈希表生成模块用于:
基于所述存储器中使能的存储条的数量,确定在所述地址哈希表中指向所述存储条的命令地址哈希指令;
每个使能存储条分配有多个逻辑内存条资源;所述哈希表生成模块还用于:
基于每个使能存储条包括的所述逻辑内存条的数量,确定在所述地址哈希表中指向所述逻辑内存条的命令地址哈希指令;
每个所述逻辑内存条分配有多个存储组;所述哈希表生成模块还用于:
基于每个所述存储组中的存储单元阵列的数量,确定在所述地址哈希表中指向所述存储单元阵列的命令地址哈希指令;
所述哈希表生成模块还用于:
基于所述存储器中所述存储单元阵列的使能数量,确定在不同的所述使能数量下在所述地址哈希表中指向所述存储组的命令地址哈希指令。
15.根据权利要求13所述的装置,其特征在于,所述刷新管理命令请求中携带有第二地址信息;所述装置还包括:
地址掩盖掉模块,用于在所述发送刷新管理命令请求至所述存储器的刷新控制器之后,在监测到对所述存储器的刷新命令时,将所述第二地址信息中的预设地址位掩盖掉,得到第三地址信息,并将所述计数器表中每个计数器地址的所述预设地址位掩盖掉,得到掩盖地址后的计数器表;
第二计数器索引模块,用于基于所述第三地址信息在所述掩盖地址后的计数器表中索引出所述刷新命令指定的第二目标计数器;
计数减值模块,用于将所述第二目标计数器的计数值做减值处理;
命令发送模块,用于在所述将所述第二目标计数器的计数值做减值处理之后,若所述第二目标计数器中包括所述第一目标计数器,发送所述激活命令至所述目标存储单元阵列;
计数加值模块,用于若所述第一目标计数器的计数值未达到所述第一阈值,所述第一目标计数器的计数加1个单位。
16.一种存储控制器,其特征在于,包括:如上述权利要求13至15中任一项所述的命令监控装置;
命令队列,用于生成对存储器的访问命令;
刷新控制器,用于生成对所述存储器的刷新命令或者刷新管理命令;
命令仲裁器,用于接收所述访问命令、所述刷新命令或者所述刷新管理命令,并对接收到的命令进行裁决,确定最终发送至存储器的命令;
其中,所述命令监控装置用于监控所述命令仲裁器发出的命令。
17.一种存储器系统,其特征在于,包括:如上述权利要求16中所述的存储控制器和存储器。
18.一种电子设备,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行所述计算机程序,以实现如权利要求1至12中任一项所述的方法。
19.一种非暂态电子设备可读存储介质,其特征在于,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行权利要求1至12中任一项所述的方法。
CN202110731684.2A 2021-06-29 2021-06-29 命令监控方法、装置、控制器、系统、设备和存储介质 Active CN113342615B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110731684.2A CN113342615B (zh) 2021-06-29 2021-06-29 命令监控方法、装置、控制器、系统、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110731684.2A CN113342615B (zh) 2021-06-29 2021-06-29 命令监控方法、装置、控制器、系统、设备和存储介质

Publications (2)

Publication Number Publication Date
CN113342615A CN113342615A (zh) 2021-09-03
CN113342615B true CN113342615B (zh) 2022-08-26

Family

ID=77481540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110731684.2A Active CN113342615B (zh) 2021-06-29 2021-06-29 命令监控方法、装置、控制器、系统、设备和存储介质

Country Status (1)

Country Link
CN (1) CN113342615B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117012244A (zh) * 2022-04-29 2023-11-07 长鑫存储技术有限公司 信号控制电路、信号控制方法和半导体存储器
CN117198359A (zh) * 2022-05-30 2023-12-08 长鑫存储技术有限公司 刷新地址产生电路及方法、存储器、电子设备
CN117672293A (zh) * 2022-08-30 2024-03-08 长鑫存储技术有限公司 监测电路、刷新方法及存储器
CN116010309B (zh) * 2023-02-20 2023-07-21 北京象帝先计算技术有限公司 存储器控制器、系统及片上系统、时序参数控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632069A (zh) * 2020-12-22 2021-04-09 中科驭数(北京)科技有限公司 哈希表数据存储管理方法、装置、介质和电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9236110B2 (en) * 2012-06-30 2016-01-12 Intel Corporation Row hammer refresh command
US9299400B2 (en) * 2012-09-28 2016-03-29 Intel Corporation Distributed row hammer tracking
US9384821B2 (en) * 2012-11-30 2016-07-05 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
WO2016101145A1 (zh) * 2014-12-23 2016-06-30 华为技术有限公司 一种控制器、识别数据块稳定性的方法和存储系统
US10825534B2 (en) * 2018-10-26 2020-11-03 Intel Corporation Per row activation count values embedded in storage cell array storage cells
US10685696B2 (en) * 2018-10-31 2020-06-16 Micron Technology, Inc. Apparatuses and methods for access based refresh timing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632069A (zh) * 2020-12-22 2021-04-09 中科驭数(北京)科技有限公司 哈希表数据存储管理方法、装置、介质和电子设备

Also Published As

Publication number Publication date
CN113342615A (zh) 2021-09-03

Similar Documents

Publication Publication Date Title
CN113342615B (zh) 命令监控方法、装置、控制器、系统、设备和存储介质
US11048442B2 (en) Scalable in-memory object storage system using hybrid memory devices
US9983793B2 (en) Memory resource optimization method and apparatus
US9652379B1 (en) System and method for reducing contentions in solid-state memory access
US20170262372A1 (en) Cache Memory System and Method for Accessing Cache Line
KR102048762B1 (ko) 다이나믹 랜덤 액세스 메모리(dram)를 리프레시하기 위한 방법, 장치 및 시스템
US11705180B2 (en) Memory refresh technology and computer system
JP2015133119A (ja) メモリローに対するアクティベーションをトラッキングする方法及びそのためのメモリコントローラ
CN103019948A (zh) 使用连续排序的交换文件的工作集合交换
CA3058778C (en) Memory refresh technology and computer system
CN101271435B (zh) 一种访问外部存储器的方法
CN110727517A (zh) 一种基于分区设计的内存分配方法和装置
CN106294192B (zh) 内存分配方法、内存分配装置及服务器
CN110287127A (zh) 一种多粒度多核可扩展的非易失性内存管理方法及系统
CN116724287A (zh) 一种内存控制方法及内存控制装置
CN110556139B (zh) 用以控制存储器的电路及相关的方法
CN110209350B (zh) 一种混合存储架构hpc系统中应用i/o请求的动态调度方法
CN111158585B (zh) 一种内存控制器刷新优化方法、装置、设备和存储介质
CN102279821B (zh) Ddr控制器端口命令传输的方法及系统
US11749332B2 (en) Effective DRAM interleaving for asymmetric size channels or ranks while supporting improved partial array self-refresh
CN113918483B (zh) 一种多主设备缓存控制方法及系统
CN111240825A (zh) Docker集群的内存配置方法、存储介质、计算机设备
CN116483260A (zh) Buffer管理方法、装置及存储设备
CN117271382A (zh) 一种fifo空间分配方法、装置、设备及存储介质
JP2021056931A (ja) メモリシステムおよびメモリシステムの制御方法

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
GR01 Patent grant
GR01 Patent grant