CN110058793B - 一种刷新处理方法、装置、系统及内存控制器 - Google Patents

一种刷新处理方法、装置、系统及内存控制器 Download PDF

Info

Publication number
CN110058793B
CN110058793B CN201810052939.0A CN201810052939A CN110058793B CN 110058793 B CN110058793 B CN 110058793B CN 201810052939 A CN201810052939 A CN 201810052939A CN 110058793 B CN110058793 B CN 110058793B
Authority
CN
China
Prior art keywords
memory
memory space
refresh
memory controller
space
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
CN201810052939.0A
Other languages
English (en)
Other versions
CN110058793A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810052939.0A priority Critical patent/CN110058793B/zh
Priority to PCT/CN2018/123223 priority patent/WO2019141050A1/zh
Priority to EP18901053.1A priority patent/EP3736682A4/en
Publication of CN110058793A publication Critical patent/CN110058793A/zh
Application granted granted Critical
Publication of CN110058793B publication Critical patent/CN110058793B/zh
Priority to US16/932,255 priority patent/US11037615B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh

Abstract

本申请实施例公开了一种刷新处理方法、装置、系统及内存控制器,用以提高内存访问效率。刷新处理装置包括与多个内存空间一一对应的多个内存控制器,任意两个内存控制器通信连接;多个内存控制器中的任一第一内存控制器用于:将第一指示信号和第二指示信号分别输出至除第一内存控制器之外的N个内存控制器,N≥1。根据N个内存控制器分别输出的N个第一指示信号和N个第二指示信号,以及第一内存空间的刷新指示信息中的至少一种信息确定第一内存空间的刷新策略。第一指示信号用于指示第一内存控制器控制的第一内存空间是否将要强制刷新,第二指示信号用于指示第一内存空间是否处于空闲状态。

Description

一种刷新处理方法、装置、系统及内存控制器
技术领域
本申请涉及存储技术领域,尤其涉及一种刷新处理方法、装置、系统及内存控制器。
背景技术
由于性能优越,动态随机存储器(dynamic random access memory,DRAM)作为内存芯片广泛应用于计算机设备中。DRAM利用电容里的电荷存储数据,由于电荷会随着漏电现象的存在而不断流失,因此电容里的数据必须被定期读出并重新写入,以补偿流失的电荷,避免数据丢失,这种操作叫做刷新(refresh)。其中,刷新操作由内存控制器(memorycontroller,MC)控制:处理器中可以包含多个MC,每个MC对应部分内存空间,每个MC对其对应的内存空间进行刷新操作的控制。其中,一个MC及其对应的内存空间的集合可以称为一个通道(channel)。每个通道在进行刷新操作时,该通道处于空闲状态,即该通道中不进行数据传输。
现有技术中,在对内存芯片进行刷新操作时,多个通道的刷新操作是独立进行的,即每个MC独立控制其对应的内存空间的刷新操作。下面以图1为例进行解释说明,图1中,CH0、CH1、CH2和CH3代表四个通道,每个通道的时序图中,用竖线标注的时间点代表该通道进行刷新操作的时间点。由于每个通道的刷新操作是独立进行的,因此,多个通道难以同时进行刷新操作。
在内存地址连续访问的情况下,短时间内的访问会被交织到所有通道。若多个通道的刷新操作独立进行,那么在上述内存地址连续访问的情况下,若系统中的任一通道处于刷新状态,内存地址的访问均可能导致系统出现短暂的断流现象。因此,采用上述方案,由于多个通道的刷新操作独立进行,出现系统断流现象的概率较大,影响内存访问的效率。
综上,现有的刷新方法存在影响内存访问效率的问题。
发明内容
本申请实施例提供一种刷新处理方法、装置、系统及内存控制器,用以提高内存访问效率。
第一方面,本申请实施例提供一种刷新处理装置,该刷新处理装置包括多个内存控制器,多个内存控制器与多个内存空间一一对应,多个内存控制器分别控制与其对应的内存空间,多个内存控制器中任意两个内存控制器通信连接。
多个内存控制器中的第一内存控制器用于:
将第一指示信号和第二指示信号分别输出至多个内存控制器中除第一内存控制器之外的N个内存控制器,N≥1;以及,根据N个内存控制器分别输出的N个第一指示信号和N个第二指示信号,以及第一内存空间的刷新指示信息中的至少一种信息确定第一内存空间的刷新策略。
其中,第一指示信号用于指示第一内存控制器控制的第一内存空间是否将要强制刷新,第二指示信号用于指示第一内存空间是否处于空闲状态,第一内存空间的刷新指示信息包括下述中的至少一个:第一内存空间的欠刷新次数,欠刷新次数用于指示第一内存空间在预设的刷新时间未进行刷新的次数;第一内存空间的输入输出数据流量;第一内存控制器的第二指示信号;第一内存控制器为多个内存控制器中的任意一个。
采用第一方面提供的刷新处理装置,由于第一内存控制器不再独立控制第一内存空间的刷新操作,而是结合除第一内存控制器之外的其他N个内存控制器对应控制的内存空间的第一指示信号和第二指示信号,综合考虑多个内存空间的是否正在强制刷新以及是否空闲的信息,并结合第一内存空间的刷新指示信息来确定第一内存空间的刷新策略。采用这种方案,第一内存控制器在确定第一内存空间的刷新策略时可以兼顾到其他多个内存空间,因而可以整合多个内存空间的信息确定第一内存空间的刷新策略,提高多个内存空间同步刷新的概率。在内存访问连续性较强的场景下,采用上述方案,可以降低多个内存空间中任一内存空间处于刷新状态的概率,从而降低被交织到多个通道的访问请求由于某个内存空间处于刷新状态而出现系统断流现象的概率,进而提高内存的访问效率、提升系统性能。
第一内存控制器在根据N个第一指示信号、N个第二指示信号,以及第一内存空间的刷新指示信息中的至少一种信息确定第一内存空间的刷新策略时,在不同的条件和场景下可以有不同的实现方式。下面介绍其中的五种实现方式。
方式一
若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,第一内存控制器确定对第一内存空间进行刷新。
采用上述方案,一方面可以减小第一内存空间的欠刷新次数,从而降低数据丢失的风险;另一方面,由于第一内存空间与正在进行强制刷新的内存空间进行同步刷新,因此在后续出现内存访问连续性较强的场景时,访问请求被交织到多个通道,采用上述方案可以降低多个内存空间中任一内存空间处于刷新状态的概率,从而降低被交织到多个通道的访问请求由于某个内存空间处于刷新状态而出现系统断流现象的概率。
方式二
若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,第一内存控制器在第一内存空间的刷新指示信息满足预设条件时确定对第一内存空间进行刷新。
其中,预设条件包括下述中的至少一个:欠刷新次数大于或等于预设的刷新阈值(例如可以是6);第一内存空间的输入输出数据流量小于预设的流量阈值;第一内存空间处于空闲状态。
采用上述方案,在其他内存空间正在强制刷新的情况下,第一内存控制器有条件地控制第一内存空间进行刷新,既可以在未满足预设条件时兼顾第一内存空间的数据传输,又可以在满足预设条件时减小第一内存空间的欠刷新次数,从而降低数据丢失的风险;同时,若在满足预设条件时对第一内存空间进行刷新,由于第一内存空间与正在进行强制刷新的内存空间进行同步刷新,因此在后续出现内存访问连续性较强的场景时,访问请求被交织到多个通道,采用上述方案可以降低多个内存空间中任一内存空间处于刷新状态的概率,从而降低被交织到多个通道的访问请求由于某个内存空间处于刷新状态而出现系统断流现象的概率。
方式三
若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间均未强制刷新、且第一内存空间的欠刷新次数大于或等于第二阈值、且小于第一阈值,第一内存控制器在第一内存空间处于空闲状态时确定对第一内存空间进行刷新。
采用上述方案,在其他内存空间均没有进行强制刷新、且第一内存空间的欠刷新次数水平中等的情况下,多个内存空间均没有迫切需要进行强制刷新的需求,因此,第一内存空间可以根据自身的空闲情况进行独立刷新:若第一内存空间处于空闲状态,则可以对第一内存空间进行刷新;若第一内存空间处于数据传输状态,则可以不对第一内存空间进行刷新,此时第一内存空间的欠刷新次数会继续增多。由于第一内存空间的欠刷新次数处于中等水平,因而欠刷新次数的增多不会直接导致刷新操作的间隔时长过长,即不会导致数据丢失。
在一种可能的设计中,第一内存控制器在第一内存空间处于空闲状态时确定对第一内存空间进行刷新,具体可通过如下方式实现:第一内存控制器根据第一内存空间的欠刷新次数确定空闲等待时长;第一内存控制器在第一内存空间由数据传输状态转换为空闲状态时,确定等待空闲等待时长后对第一内存空间进行刷新。
一般地,第一内存控制器在确定空闲等待时长时,第一内存空间的欠刷新次数越多,确定的空闲等待时长越长。这是因为,若第一内存空间的欠刷新次数较多,则说明第一内存空间被访问的频率较高,此时可多等待一段时间,避免出现第一内存空间被突发访问时第一内存空间处于刷新状态的情况出现。
方式四
若N个第二指示信号中至少一个第二指示信号指示对应的内存控制器控制的内存空间处于空闲状态、第一内存空间处于空闲状态,第一内存控制器确定对第一内存空间以及至少一个第二指示信号分别对应的至少一个第二内存空间进行同步刷新。
采用上述方案,一方面可以减小第一内存空间的欠刷新次数,从而降低数据丢失的风险;另一方面,由于第一内存空间与处于空闲状态的至少一个第二内存空间进行同步刷新,因此在后续出现内存访问连续性较强的场景时,若访问请求被交织到多个通道,采用上述方案可以降低多个内存空间中任一内存空间处于刷新状态的概率,从而降低被交织到多个通道的访问请求由于某个内存空间处于刷新状态而出现系统断流现象的概率。
方式五
若第一内存空间的欠刷新次数大于或等于第一阈值,第一内存控制器则确定对第一内存空间进行强制刷新。
采用上述方案,可以在第一内存空间的欠刷新次数较大时减小第一内存空间的欠刷新次数,从而降低数据丢失的风险。
在一种可能的设计中,第一内存控制器输出第一指示信号时,具体可通过如下方式实现:当第一内存空间的欠刷新次数大于或等于第一阈值时,第一内存控制器输出用于指示第一内存空间正在强制刷新的第一指示信号;当第一内存空间的欠刷新次数小于第一阈值时,第一内存控制器输出用于指示第一内存空间未强制刷新的第一指示信号。
在一种可能的设计中,第一内存控制器输出第一指示信号时,具体可通过如下方式实现:若第一内存空间包含多个子空间,第一内存控制器在多个子空间中任一子空间正在强制刷新时,输出用于指示第一内存空间正在强制刷新的第一指示信号,或者,第一内存控制器在多个子空间均未强制刷新时,输出用于指示第一内存空间未强制刷新的第一指示信号。
采用上述方案,由于多个子空间共用同一组地址线和同一组命令线,因此在同一时刻第一内存控制器仅可对一个子空间进行刷新。那么,在多个子空间中的任一个子空间强制刷新时,第一内存控制器即可将第一内存空间正在进行强制刷新的第一指示信号发送给刷新处理装置中除第一内存控制器之外的其他N个内存控制器,从而使得其他内存控制器判断是否需要和第一内存空间中正在进行强制刷新的子空间进行同步刷新。
在一种可能的设计中,第一内存控制器输出第二指示信号时,具体可通过如下方式实现:若第一内存空间包含多个子空间,第一内存控制器在多个子空间中任一子空间处于空闲状态时,输出用于指示第一内存空间处于空闲状态的第二指示信号,或者,第一内存控制器在多个子空间均处于数据传输状态时,输出用于指示第一内存空间未处于空闲状态的第二指示信号。
采用上述方案,由于多个子空间共用同一组地址线和同一组命令线,因此在同一时刻第一内存控制器仅可对一个子空间进行刷新。在多个子空间中的任一个子空间处于空闲状态时,第一内存控制器即可将第一内存空间处于空闲状态的第二指示信号发送给刷新处理装置中除第一内存控制器之外的其他N个内存控制器,从而使得其他内存控制器在确定其对应的内存空间处于空闲状态时,控制该内存空间与第一内存空间中处于空闲状态的子空间进行同步刷新。
在一种可能的设计中,第一内存控制器确定第一内存空间的刷新策略时,具体可通过如下方式实现:第一内存控制器根据N个第一指示信号和N个第二指示信号,和/或多个子空间中每个子空间的刷新指示信息确定所第一内存空间的刷新策略,第一内存空间的刷新策略应用于多个子空间中的至少一个子空间;其中,每个子空间的刷新指示信息包括下述中的至少一个:每个子空间的欠刷新次数;每个子空间的输入输出数据流量;每个子空间是否处于空闲状态。
第二方面,本申请实施例提供一种刷新处理方法,该方法包括如下步骤:多个内存控制器中的第一内存控制器将第一指示信号和第二指示信号分别输出至多个内存控制器中除第一内存控制器之外的N个内存控制器,N≥1;第一内存控制器根据N个内存控制器分别输出的N个第一指示信号和N个第二指示信号,以及第一内存空间的刷新指示信息中的至少一种信息确定第一内存空间的刷新策略。
其中,第一指示信号用于指示第一内存控制器控制的第一内存空间是否将要强制刷新,第二指示信号用于指示第一内存空间是否处于空闲状态。多个内存控制器与多个内存空间一一对应,多个内存控制器分别控制与其对应的内存空间,多个内存控制器中任意两个内存控制器通信连接;第一内存控制器为多个内存控制器中的任意一个;第一内存空间的刷新指示信息包括下述中的至少一个:第一内存空间的欠刷新次数,欠刷新次数用于指示第一内存空间在预设的刷新时间未进行刷新的次数;第一内存空间的输入输出数据流量;第一内存控制器的第二指示信号。
在一种可能的设计中,第一内存控制器确定第一内存空间的刷新策略,包括:若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,第一内存控制器确定对第一内存空间进行刷新。
在一种可能的设计中,第一内存控制器确定第一内存空间的刷新策略,包括:若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,第一内存控制器在第一内存空间的刷新指示信息满足预设条件时确定对第一内存空间进行刷新。
其中,预设条件包括下述中的至少一个:欠刷新次数大于或等于预设的刷新阈值;第一内存空间的输入输出数据流量小于预设的流量阈值;第一内存空间处于空闲状态。
在一种可能的设计中,第一内存控制器确定第一内存空间的刷新策略,包括:若第一内存空间的欠刷新次数大于或等于第一阈值,第一内存控制器确定对第一内存空间进行强制刷新。
在一种可能的设计中,第一内存控制器确定第一内存空间的刷新策略,包括:若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间均未强制刷新,且第一内存空间的欠刷新次数大于或等于第二阈值、且小于第一阈值,第一内存控制器在第一内存空间处于空闲状态时确定对第一内存空间进行刷新。
在一种可能的设计中,第一内存控制器在第一内存空间处于空闲状态时确定对第一内存空间进行刷新,包括:第一内存控制器根据第一内存空间的欠刷新次数确定空闲等待时长;第一内存控制器在第一内存空间由数据传输状态转换为空闲状态时,确定等待空闲等待时长后对第一内存空间进行刷新。
在一种可能的设计中,第一内存控制器确定对第一内存空间进行刷新,包括:若N个第二指示信号中至少一个第二指示信号指示对应的内存控制器控制的内存空间处于空闲状态、第一内存空间处于空闲状态,第一内存控制器确定对第一内存空间以及至少一个第二指示信号分别对应的至少一个第二内存空间进行同步刷新。
在一种可能的设计中,第一内存控制器输出第一指示信号,包括:当第一内存空间的欠刷新次数大于或等于第一阈值时,第一内存控制器输出用于指示第一内存空间正在强制刷新的第一指示信号;当第一内存空间的欠刷新次数小于第一阈值时,第一内存控制器输出用于指示第一内存空间未强制刷新的第一指示信号。
在一种可能的设计中,第一内存控制器输出第一指示信号,包括:若第一内存空间包含多个子空间,第一内存控制器在多个子空间中任一子空间正在强制刷新时,输出用于指示第一内存空间正在强制刷新的第一指示信号,或者,第一内存控制器在多个子空间均未强制刷新时,输出用于指示第一内存空间未强制刷新的第一指示信号。
在一种可能的设计中,第一内存控制器输出第二指示信号,包括:若第一内存空间包含多个子空间,第一内存控制器在多个子空间中任一子空间处于空闲状态时,输出用于指示第一内存空间处于空闲状态的第二指示信号,或者,第一内存控制器在多个子空间均处于数据传输状态时,输出用于指示第一内存空间未处于空闲状态的第二指示信号。
在一种可能的设计中,第一内存控制器确定第一内存空间的刷新策略,包括:第一内存控制器根据N个第一指示信号和N个第二指示信号,和/或多个子空间中每个子空间的刷新指示信息确定所第一内存空间的刷新策略,第一内存空间的刷新策略应用于多个子空间中的至少一个子空间。
其中,每个子空间的刷新指示信息包括下述中的至少一个:每个子空间的欠刷新次数;每个子空间的输入输出数据流量;每个子空间是否处于空闲状态。
第三方面,本申请提供了一种内存控制器,该内存控制器具有实现上述第二方面方法示例的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或所述软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,所述内存控制器的结构中包括收发单元和处理单元,这些单元可以执行上述方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第四方面,本申请实施例还提供了一种内存控制器,该内存控制器包括存储器、处理器以及通信模块;存储器,用于存储计算机可读程序;处理器,用于调用存储在存储器中的指令,执行上述方法示例中的相应功能;通信模块,用于执行上述方法示例中接收数据和/或发送数据的功能。
第五方面,本申请实施例提供一种刷新处理系统,该刷新处理系统包括上述第一方面及其任一种可能设计中提供的刷新处理装置以及多个内存空间。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述指令在计算机上运行时,使得计算机执行上述第二方面以及第一方面任意可能的设计中的方法。
第七方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品在被计算机调用时,使得计算机执行第二方面以及第二方面任意可能的设计中的方法。
另外,第二方面至第七方面中任一种可能设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为现有技术提供的一种刷新操作的时序示意图;
图2为本申请实施例提供的一种计算机系统的结构示意图;
图3为本申请实施例提供的一种内存控制器输出片选信号至不同RANK的示意图;
图4为本申请实施例提供的一种刷新操作的时序示意图;
图5为本申请实施例提供的一种推迟刷新操作的时序示意图;
图6为本申请实施例提供的一种刷新处理装置的结构示意图;
图7为本申请实施例提供的另一种刷新处理装置的结构示意图;
图8为本申请实施例提供的一种刷新处理模块的结构示意图;
图9为本申请实施例提供的一种刷新处理方法的流程示意图;
图10为本申请实施例提供的一种内存控制器的结构示意图;
图11为本申请实施例提供的另一种内存控制器的结构示意图;
图12为本申请实施例提供的一种刷新处理系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
需要说明的是,本申请实施例中所涉及的多个,是指两个或两个以上。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
首先对本申请实施例的应用场景作简要介绍。
本申请实施例提供的刷新处理方案可应用于图2所示的计算机系统。
在图2所示的计算机系统中,包含中央处理器(central processing unit,CPU)以及与CPU通信连接的多个双列直插内存模块(dual-inline-memory-modules,DIMM)。其中,CPU中包含两个内存控制器,每个内存控制器对应一个通道(channel);一个通道(channel)连接两个DIMM,每个DIMM包含一个RANK,每个RANK包含四个内存颗粒(chip)。下面对内存控制器、channel、DIMM、RANK和chip逐一加以解释。
内存控制器在计算机系统中用于控制CPU与内存之间的数据传输,通过内存控制器可以使内存与CPU之间交换数据。现有技术中,内存控制器包含命令处理模块、数据处理模块和刷新模块。命令处理模块用于对CPU发出的指令进行处理;数据处理模块用于对CPU读取或写入内存中的数据进行处理;刷新模块则用于根据刷新命令对内存进行刷新。此外,本申请实施例中,内存控制器中还包含刷新处理模块,该模块的功能将在后面的实施例中介绍,此处不再赘述。
需要说明的是,本申请实施例中,内存控制器可以整合在CPU中,也可以是独立于CPU的单独的芯片。将内存控制器整合在CPU中,可以使CPU到内存的路径更短,降低内存的延迟。
通道(channel)可以理解为一个内存控制器以及该内存控制器对应的内存空间。如果计算机系统中包含多个通道(channel),这些通道(channel)通常是完全相同且独立的。通常所说的双通道内存,实质上是指CPU有两个完全独立的内存控制器。一般地,内存控制器的数据位宽为32bit或64bit。
DIMM即俗称的DIMM内存条。计算机系统的主板上设有DIMM插槽,每个DIMM插槽上可以插一根DIMM内存条,而一个通道(channel)可以对应一个或多个DIMM插槽。DIMM是由多个相同的内存颗粒贴在同一个印刷电路板(printed circuit board,PCB)衬板上实现的。
RANK指的是一组内存颗粒,这组内存颗粒并行从而使得数据位宽满足内存控制器的位宽要求。RANK也叫物理BANK(physical bank,P-BANK)。如前所述,内存控制器的数据位宽一般是32bit或64bit,而单颗内存颗粒的位宽可以是4bit、8bit或者16bit,因此需要多颗内存颗粒并行起来组成32bit或64bit的位宽,来满足内存控制器的位宽要求。例如,内存控制器的数据位宽是64bit,内存颗粒的位宽是8bit,则8颗内存颗粒组成一个RANK;同理,内存控制器的数据位宽是64bit,内存颗粒的位宽是16bit,则4颗内存颗粒组成一个RANK。通常,一个DIMM可以包含1~4个RANK。
在实际实现时,不同的RANK连接到内存控制器上的不同的片选(chip select,CS)信号输出管脚,即,内存控制器通过不同的CS信号使能不同的RANK,如图3所示。图3中,a图表示一个内存控制器对应4个DIMM,每个DIMM包含2个RANK,那么,内存控制器输出8个CS信号,每个CS信号用于使能一个RANK;图3中,b图表示一个内存控制器对应4个DIMM,每个DIMM包含4个RANK,那么,内存控制器输出16个CS信号,每个CS信号用于使能一个RANK。
需要说明的是,当一个内存控制器对应的内存空间中包含多个RANK时,多个RANK共用同一组命令线和同一组地址线,每个RANK的刷新操作是独立进行的,即在同一时间段内,内存控制器仅使能多个CS信号中的一个CS信号,来刷新该CS信号使能的RANK。
内存颗粒(chip)是组成DIMM的基本单元。单颗内存颗粒的位宽可以是4bit、8bit或者16bit,多颗内存颗粒并行起来组成32bit或64bit的位宽,来满足内存控制器的位宽要求。
需要说明的是,图2所示的计算机系统CPU支持双通道(channel)为例,实际实现时,本申请实施例提供的刷新处理方案可应用于支持多通道(channel)的计算机系统,即本申请实施例提供的刷新处理方案对计算机系统支持的通道数不做具体限定,只要通道数大于一即可。同样地,图2所示的计算机系统以一个通道(channel)对应两个DIMM、一个DIMM包含一个RANK、一个RANK包含四个内存颗粒为例,实际实现时,本申请实施例提供的刷新处理方案所应用的计算机系统,对每个通道(channel)对应的DIMM的数量、每个DIMM包含的RANK数以及每个RANK包含的内存颗粒的数量均不做限定。
如前所述,内存控制器中包含的刷新模块可以对内存进行刷新。当一个内存控制器对应的内存空间中包含一个RANK时(即一个通道对应一个RANK),计算机系统中的每个通道(channel)的刷新操作是独立进行的;当一个内存控制器对应的内存空间中包含多个RANK时,每个RANK的刷新操作是独立进行的。以一个内存控制器对应的内存空间中包含一个RANK为例,每个通道(channel)的刷新操作的时序可以如图4所示。
图4中,在刷新开始时,该通道对应的内存空间必须处于空闲状态,即该通道对应的内存空间中没有数据传输。tRFC代表一次刷新的持续时长,即刷新命令产生后,在tRFC这一时间段里,内存控制器对该通道对应的内存空间进行刷新,此时该通道对应的内存空间必须处于空闲状态。
tREFI代表刷新操作的平均间隔时长,也就是说,对于相邻的某两次刷新操作来说,二者的间隔时长(即开始进行第二次刷新操作的时间与开始进行第一次刷新操作的时间之差)可以小于tREFI,也可以大于tFEFI。只要多次刷新后,刷新操作的平均间隔时长为tFEFI即可。具体地,如图4所示,在一次刷新结束之后,可以立即开始下一次刷新(即刷新操作的间隔时长为tRFC);在一次刷新开始之后,也可以间隔9tREFI后再进行下一次刷新。
背景技术中提到过,DRAM利用电容里的电荷存储数据,由于电荷会随着漏电现象的存在而不断流失,因此需要在丢失电荷前进行刷新,避免数据丢失。若刷新操作的间隔时长过长,会造成数据丢失。因此,协议中规定刷新操作的最大间隔时长为9tREFI。
为了保证刷新操作的平均间隔时长为tREFI,一种最为简单的实现方式是:在T0时刻进行一次刷新,间隔时长tREFI,然后在T0+tREFI时刻进行下一次刷新,间隔时长tREFI,然后在T0+2tREFI时刻进行下一次刷新……,以此类推。也就是说,周期性地进行刷新操作,进行刷新操作的周期为tREFI。但是,在具体实现过程中,如果在某个周期内用于进行刷新操作的时间段tRFC内,该通道对应的内存空间正在进行数据传输,那么按照上述机制,该内存空间需要停止数据传输、转为空闲状态,在刷新完成后再恢复数据传输。这样的做法无疑会降低内存访问的效率。
因此,为了使得刷新机制更加灵活、提高内存访问的效率,现有技术中引入了刷新的推迟(postponing)机制和提前(pulling-in)机制。顾名思义,postponing机制即推迟刷新的时间,例如,在上面的示例中,若某通道正在进行数据传输,那么此时可不必进行刷新,而是等到数据传输结束后再进行刷新,从而避免刷新操作影响内存访问的效率。同样地,pulling-in机制即提前进行刷新,例如某个通道处于空闲状态时,即使距离上次刷新的时间不足tFEFI,也可以提前进行刷新。
下面以推迟(postponing)机制为例进行简要说明。如图5所示,为postponing机制的一种时序示意图。图5中,刷新操作的间隔时长为9tREFI,由于刷新机制中需要保证刷新操作的平均间隔时长为tREFI,因此在间隔时长为9tREFI的情况下,我们认为该通道欠刷新,该通道的欠刷新次数为8次。然后,在后续进行刷新操作的过程中,可以连续进行8次刷新操作,从而使得刷新操作的平均间隔时长为tREFI。
当然,图5所示的postponing机制为一种极端情况,实际实现时,刷新操作的间隔时长可以为tRFC~9tREFI之间的任意时长,在后续弥补前面postponing造成的欠刷新次数时,可以连续刷新多次,也可以分多次弥补欠刷新次数。
虽然推迟(postponing)机制和提前(pulling-in)机制可以在一定程度上降低本通道中的刷新操作对内存访问效率的影响,但是由于推迟(postponing)机制和提前(pulling-in)机制仅仅是针对本通道的操作,难以实现多个通道的统筹。特别是在内存地址连续访问的情况下,例如在人工智能(artificial intelligence,AI)领域,短时间内的内存访问会被交织到所有通道。采用上述推迟(postponing)机制和提前(pulling-in)机制难以兼顾到多个通道的内存访问需求,若系统中的任一通道处于刷新状态,内存地址的访问均可能出现短暂的断流现象。因此,现有技术中的刷新处理方案,由于多个通道的刷新操作独立进行,出现系统断流现象的概率较大,影响内存访问的效率。
因此,本申请实施例提供一种刷新处理方法、装置、系统及内存控制器,用以提高内存访问效率。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
下面结合附图对本申请实施例提供的刷新处理方案进行具体说明。
参见图6,为本申请提供的刷新处理装置的结构示意图。该刷新处理装置600包括多个内存控制器。其中,多个内存控制器与多个内存空间一一对应,多个内存控制器分别控制与其对应的内存空间,多个内存控制器中任意两个内存控制器通信连接。
多个内存控制器中的第一内存控制器用于:将第一指示信号和第二指示信号分别输出至多个内存控制器中除第一内存控制器之外的N个内存控制器,N≥1。以及,根据N个内存控制器分别输出的N个第一指示信号和N个第二指示信号,以及第一内存空间的刷新指示信息中的至少一种信息确定第一内存空间的刷新策略。
其中,第一指示信号用于指示第一内存控制器控制的第一内存空间是否将要强制刷新,第二指示信号用于指示第一内存空间是否处于空闲状态。第一内存空间的刷新指示信息包括下述中的至少一个:第一内存空间的欠刷新次数,该欠刷新次数用于指示第一内存空间在预设的刷新时间未进行刷新的次数;第一内存空间的输入输出数据流量;第一内存控制器的第二指示信号。
本申请实施例中,刷新处理装置600中的每个内存控制器均向其他内存控制器输出第一指示信号和第二指示信号。示例性地,第一内存控制器可在初始上电后即周期性地向其他N个内存控制器输出第一指示信号,周期为T1。具体地,在不需要对第一内存空间进行强制刷新时,第一内存控制器以T1为周期,周期性地输出低电平;在第一内存控制器确定将要对第一内存空间进行强制刷新时(比如第一内存控制器判断第一内存空间的欠刷新次数为8时),第一内存控制器在该时刻对应的信号周期T1内输出高电平,高电平的持续时长为T1。其他内存控制器在检测到第一指示信号中这一持续时长为T1的高电平后,即可获知第一内存空间将要强制刷新。当然,实际实现时,也可用第一指示信号的高电平指示第一内存空间不需要强制刷新、用第一指示信号的低电平指示第一内存空间即将强制刷新,本申请实施例对此不做具体限定。
同样地,第一内存控制器可在初始上电后即周期性地向其他N个内存控制器输出第二指示信号,周期为T2,T2可以与前面示例中的T1相等。具体地,在第一内存空间处于数据传输状态时,第一内存控制器以T2为周期,周期性地输出低电平;在第一内存空间由数据传输状态转为空闲状态时(即当前数据传输过程结束时),第一内存控制器开始以T2为周期,周期性地输出高电平,直至第一内存空间再次转为数据传输状态。其他内存控制器在检测到第二指示信号为低电平时,即可获知第一内存空间处于数据传输状态;其他内存控制器在检测到第二指示信号为高电平时,即可获知第一内存空间处于空闲状态。当然,实际实现时,也可用第二指示信号的高电平指示第一内存空间处于数据传输状态、用第二指示信号的低电平指示第一内存空间处于空闲状态,本申请实施例对此不做具体限定。
此外,第一内存控制器在输出第一指示信号时,也可以不采用周期性输出的方式。例如,在不需要对第一内存空间进行强制刷新时,第一内存控制器不输出第一指示信号;在第一内存控制器确定将要对第一内存空间进行强制刷新时,第一内存控制通过触发方式向其他内存控制器输出一个脉冲信号(即第一指示信号),其他内存控制器接收到该脉冲信号时即可获知第一内存空间将要强制刷新。
需要说明的是,图6中仅用一根连接线示意任意两个内存控制器通信连接,实际实现时,两个内存控制器间的通信连接不限于图6所示的形式,例如两个内存控制器可通过两条数据线、四条数据线等实现通信连接,以分别向对方输出自身控制的内存空间的第一指示信号和第二指示信号。图6为了简化绘图,仅以两个内存控制器间的一个连接线示意。
下面,对刷新处理装置600中涉及的一些概念进行详细解释。
一、第一内存控制器
刷新处理装置600中,第一内存控制器可以为多个内存控制器中的任意一个。由于刷新处理装置600包括的多个内存控制器中任意两个内存控制器之间通信连接,因而每个内存控制器均可以向刷新处理装置600中除第一内存控制器之外的其他N个内存控制器输出第一指示信号和第二指示信号,也可以接收到其他内存控制器输出的第一指示信号和第二指示信号。对于任意一个第一内存控制器来说,输出的第一指示信号和第二指示信号可以用于其他内存控制器确定刷新策略,接收到的N个第一指示信号和N个第二指示信号可用于确定第一内存空间的刷新策略。
此外,本申请实施例中,第一内存控制器接收到N个第一指示信号和N个第二指示信号。由于刷新处理装置中的每个内存控制器输出一个第一指示信号和一个第二指示信号,那么,第一内存控制器接收到N个第一指示信号和N个第二指示信号,其隐含的含义是:刷新处理装置600中包含N+1个内存控制器。
二、第一内存空间
在刷新处理装置600中,一个内存控制器以及与该内存控制器对应的内存空间可视为一个通道(channel)。对于第一内存控制器来说,与其对应的第一内存空间可以包含一个DIMM,也可以包含多个DIMM;每个DIMM可以包含一个RANK,也可以包含多个RANK。本申请实施例中对此不做具体限定。
此外,本申请实施例中,第一内存空间可以通过DRAM、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、高带宽内存(high-bandwidthmemory,HBM)等存储器的形式实现。
三、第一内存空间的欠刷新次数
第一内存空间的欠刷新次数用于指示第一内存空间在预设的刷新时间未进行刷新的次数。如图4的刷新操作时序所示,刷新操作的平均间隔时长为tREFI。在距离上次刷新操作的时长等于tREFI时,若某个内存空间正在进行数据传输,则该内存空间可以先不进行刷新。由于刷新机制中需要保证刷新操作的平均间隔时长为tREFI,因此在这种情况下,我们称该内存空间欠刷新。具体地,距离上次刷新操作的间隔时长越长,该内存空间的欠刷新次数越多。
示例性地,假设某个内存空间在T0时刻完成一次刷新操作,在T0~T0+2tREFI这一时间段内,由于该内存空间一直在进行数据传输,因此在T0+2tREFI时刻并没有对该内存空间进行刷新,此时该内存空间的欠刷新次数为2次;假设某个内存空间在T0时刻完成一次刷新操作,在T0~T0+5tREFI这一时间段内,由于该内存空间一直在进行数据传输,因此在T0+5tREFI时刻并没有对该内存空间进行刷新,此时该内存空间的欠刷新次数为5次。
四、第一指示信号和第二指示信号
第一指示信号用于指示第一内存控制器控制的第一内存空间是否将要强制刷新,第二指示信号用于指示第一内存空间是否处于空闲状态。
具体地,第一内存空间进行强制刷新的条件可以是:第一内存空间的欠刷新次数大于或等于第一阈值。即,第一内存空间的欠刷新次数大于或等于第一阈值时,第一内存控制器确定对第一内存空间进行强制刷新,并输出用于指示第一内存空间正在强制刷新的第一指示信号;第一内存空间的欠刷新次数小于第一阈值时,第一内存控制器输出用于指示第一内存空间未进行强制刷新的第一指示信号。
前面提到过,由于DRAM利用电容里的电荷存储数据,因此若刷新操作的间隔时长过长,电荷会随着漏电现象的存在而不断流失,进而导致数据丢失。因此需要在丢失电荷前对内存进行刷新,即规定刷新操作的最大间隔时长为9tREFI。当刷新操作的间隔时长过长(即欠刷新次数较多,例如7次或8次)时,会增加数据丢失的风险。因此,可以在第一内存空间的欠刷新次数大于或等于第一阈值时,对第一内存空间进行强制刷新,进而避免数据丢失的情况出现。
示例性地,第一阈值可以是7或8。
此外,刷新处理装置600中的每个内存控制器均可根据该内存控制器对应控制的内存空间中的数据传输情况确定该内存空间是否空闲。因此,第一内存控制器可在第一内存空间空闲时输出用于指示第一内存空间处于空闲状态的第二指示信号,在第一内存空间处于数据传输状态时输出用于指示第一内存空间未处于空闲状态的第二指示信号。
通过以上介绍不难看出,在本申请实施例提供的刷新处理装置600中,第一内存控制器不再独立控制第一内存空间的刷新操作,而是结合其他通道的内存空间的第一指示信号和第二指示信号,综合考虑多个通道的是否正在强制刷新以及是否空闲的信息,并结合第一内存空间的刷新指示信息来确定第一内存空间的刷新策略。采用这种方案,可以兼顾多个内存空间,提高内存的访问效率,提升系统性能。
下面具体介绍第一内存控制器如何根据N个第一指示信号、N个第二指示信号,以及第一内存空间的刷新指示信息中的至少一种信息确定第一内存空间的刷新策略。
方式一
若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,第一内存控制器确定对第一内存空间进行刷新。
在方式一中,第一内存控制器通过N个第一指示信号确定任一内存空间进行强制刷新时,控制第一内存空间与正在进行强制刷新的内存空间进行同步刷新。
采用上述方案,一方面可以减小第一内存空间的欠刷新次数,从而降低数据丢失的风险;另一方面,由于第一内存空间与正在进行强制刷新的内存空间进行同步刷新,因此在后续出现内存访问连续性较强的场景时,访问请求被交织到多个通道,采用上述方案可以降低多个内存空间中任一内存空间处于刷新状态的概率,从而降低被交织到多个通道的访问请求由于某个内存空间处于刷新状态而出现系统断流现象的概率。
方式二
若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,第一内存控制器在第一内存空间的刷新指示信息满足预设条件时确定对第一内存空间进行刷新。
其中,预设条件包括下述中的至少一个:欠刷新次数大于或等于预设的刷新阈值(例如可以是6);第一内存空间的输入输出数据流量小于预设的流量阈值;第一内存空间处于空闲状态。
其中,预设的刷新阈值可以根据不同的需求和场景进行预先设置。例如预设的刷新阈值可以是5、6或者7。
在方式二中,第一内存控制器通过N个第一指示信号确定任一内存空间进行强制刷新时,第一内存控制器可以在第一内存空间的刷新指示信息满足预设条件时控制第一内存空间与正在进行强制刷新的内存空间进行同步刷新;在第一内存空间的刷新指示信息未满足预设条件时,则不对第一内存空间进行刷新。
方式二与方式一的不同之处在于,方式一中,在其他内存空间正在强制刷新的情况下,第一内存控制器无条件地控制第一内存空间进行刷新,而在方式二中,第一内存控制器有条件地控制第一内存空间进行刷新。
方式二中,在设置预设条件时主要是出于以下考虑:一、若第一内存空间的欠刷新次数较小(小于预设的刷新阈值),可不必对第一内存空间进行刷新;二、若第一内存空间的输入输出数据流量较大,则第一内存空间优先用于数据传输,可不必进行刷新;三、若第一内存空间处于空闲状态,则可对第一内存空间进行刷新,若第一内存空间处于数据传输状态,则第一内存空间优先用于数据传输,可不必进行刷新。
采用上述方案,在其他内存空间正在强制刷新的情况下,第一内存控制器有条件地控制第一内存空间进行刷新,既可以在未满足预设条件时兼顾第一内存空间的数据传输,又可以在满足预设条件时减小第一内存空间的欠刷新次数,从而降低数据丢失的风险;同时,若在满足预设条件时对第一内存空间进行刷新,由于第一内存空间与正在进行强制刷新的内存空间进行同步刷新,因此在后续出现内存访问连续性较强的场景时,访问请求被交织到多个通道,采用上述方案可以降低多个内存空间中任一内存空间处于刷新状态的概率,从而降低被交织到多个通道的访问请求由于某个内存空间处于刷新状态而出现系统断流现象的概率。
方式三
若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间均未强制刷新、且第一内存空间的欠刷新次数大于或等于第二阈值、且小于第一阈值,第一内存控制器在第一内存空间处于空闲状态时确定对第一内存空间进行刷新。
若第一内存空间的欠刷新次数大于或等于第二阈值、且小于第一阈值,可以认为第一内存空间的欠刷新次数处于中等水平。此时,若其他内存空间均没有进行强制刷新,则第一内存控制器可以控制第一内存空间在空闲状态时进行刷新。也就是说,若此时第一内存空间处于数据传输状态,则不必对第一内存空间进行刷新;若此时第一内存空间处于空闲状态,则可以对第一内存空间进行刷新。
示例性地,第一阈值可以是6或7,第二阈值可以是2或3。当然,第一阈值和第二阈值可以根据不同的需求和场景进行配置,本申请实施例对第一阈值和第二阈值的取值不做具体限制。
此外,若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间均未强制刷新,那么,在第一内存空间的欠刷新次数小于第二阈值的情况下,第一内存控制器可以确定不对第一内存空间进行刷新;在第一内存空间的欠刷新次数大于或等于第一阈值的情况下,第一内存控制器可以确定对第一内存空间进行强制刷新(可视为下面的方式五的一个示例)。
采用上述方案,在其他内存空间均没有进行强制刷新、且第一内存空间的欠刷新次数水平中等的情况下,多个内存空间均没有迫切需要进行强制刷新的需求,因此,第一内存空间可以根据自身的空闲情况进行独立刷新:若第一内存空间处于空闲状态,则可以对第一内存空间进行刷新;若第一内存空间处于数据传输状态,则可以不对第一内存空间进行刷新,此时第一内存空间的欠刷新次数会继续增多。由于第一内存空间的欠刷新次数处于中等水平,因而欠刷新次数的增多不会直接导致刷新操作的间隔时长过长,即不会导致数据丢失。
需要说明的是,具体实现时,为了避免突发内存访问的情况,一般不会在第一内存空间刚刚由数据传输状态转换为空闲状态时就对第一内存空间进行刷新,而是会等待一段时间,若等待时间内第一内存空间一直处于空闲状态,则可以在等待时间结束后对第一内存空间进行刷新。
也就是说,第一内存控制器在第一内存空间处于空闲状态时确定对第一内存空间进行刷新,具体可通过如下方式实现:第一内存控制器根据第一内存空间的欠刷新次数确定空闲等待时长;第一内存控制器在第一内存空间由数据传输状态转换为空闲状态时,确定等待空闲等待时长后对第一内存空间进行刷新。
一般地,第一内存控制器在确定空闲等待时长时,第一内存空间的欠刷新次数越多,确定的空闲等待时长越长。这是因为,若第一内存空间的欠刷新次数较多,则说明第一内存空间被访问的频率较高,此时可多等待一段时间,避免出现第一内存空间被突发访问时第一内存空间处于刷新状态的情况出现。
示例性地,当第一内存空间的欠刷新次数为3次时,空闲等待时长为100ns;当第一内存空间的欠刷新次数为4次时,空闲等待时长为200ns。
实际实现时,空闲等待时长可以根据不同的需求进行不同的配置。例如,可以将空闲等待时长配置为一个固定数值,或者在第一内存空间的欠刷新次数不同时配置不同的空闲等待时长,或者将空闲等待时长配置为一个随机数值。本申请实施例中对此不做具体限定。
方式四
若N个第二指示信号中至少一个第二指示信号指示对应的内存控制器控制的内存空间处于空闲状态、第一内存空间处于空闲状态,第一内存控制器确定对第一内存空间以及至少一个第二指示信号分别对应的至少一个第二内存空间进行同步刷新。
在方式四中,若至少一个第二内存空间处于空闲状态,则第一内存控制器可以控制处于空闲状态的第一内存空间与处于空闲状态的至少一个第二内存空间进行同步刷新。
此外,在方式四中,若第一内存空间处于空闲状态,第一内存控制器还可以根据第一内存空间的欠刷新次数判断第一内存空间是否和处于空闲状态的至少一个第二内存空间进行同步刷新。例如,当第一内存空间的欠刷新次数小于第二阈值时,第一内存控制器确定第一内存空间和处于空闲状态的至少一个第二内存空间进行同步刷新。示例性地,第二阈值可以是2或3。
在该示例中,若第一内存空间的欠刷新次数小于第二阈值,说明第一内存空间的欠刷新次数较少,也可以在一定层面上说明第一内存空间被访问的频率较低,此时可令第一内存空间和处于空闲状态的至少一个第二内存空间进行同步刷新;若第一内存空间的欠刷新次数大于或等于第二阈值,说明第一内存空间的欠刷新次数较多,也可以在一定层面上说明第一内存空间被访问的频率较高,此时可不对第一内存空间进行刷新,避免出现第一内存空间被突发访问时第一内存空间处于刷新状态的情况出现。
在方式四中,若刷新处理装置600包括的多个内存控制器对应的多个内存空间均处于空闲状态,则多个内存空间可以实现同步刷新。
采用上述方案,一方面可以减小第一内存空间的欠刷新次数,从而降低数据丢失的风险;另一方面,由于第一内存空间与处于空闲状态的至少一个第二内存空间进行同步刷新,因此在后续出现内存访问连续性较强的场景时,若访问请求被交织到多个通道,采用上述方案可以降低多个内存空间中任一内存空间处于刷新状态的概率,从而降低被交织到多个通道的访问请求由于某个内存空间处于刷新状态而出现系统断流现象的概率。
需要说明的是,方式四和方式一可以在第一内存控制器确定第一内存空间的刷新策略时同时实现。例如,第一内存控制器根据N个第一指示信号判断多个内存空间中的内存空间1和内存空间5正在强制刷新,第一内存控制器根据N个第二指示信号判断多个内存空间中的内存空间4处于空闲状态,且第一内存控制器判断第一内存空间处于空闲状态,此时第一内存控制器确定的第一内存空间的刷新策略可以是:第一内存空间和内存空间1、内存空间4、内存空间5进行同步刷新。
同样地,方式四和方式二也可以在第一内存控制器确定第一内存空间的刷新策略时同时实现,此处不再赘述。
方式五
若第一内存空间的欠刷新次数大于或等于第一阈值,则第一内存控制器确定对第一内存空间进行强制刷新,并输出用于指示第一内存空间正在强制刷新的第一指示信号。
示例性地,第一阈值可以是7或8。当然,第一阈值可以根据不同的需求和场景进行配置,本申请实施例对第一阈值的取值不做具体限制。
前面提到过,第一内存空间可以包含一个RANK,也可以包含多个RANK。在第一内存空间包含多个RANK时,多个RANK共用同一组命令线和同一组地址线,且每个RANK的刷新操作是独立进行的。此外,在本申请实施例中,每个RANK均独立维护一个第一指示信号和一个第二指示信号。那么,在这种情况下,需要考虑如下几个问题:1、第一内存控制器输出的第一指示信号和第二指示信号如何兼顾到多个RANK;2、第一内存控制器如何确定第一内存空间的刷新策略并应用到其对应控制的多个RANK中。
针对如上两个问题,本申请实施例中给出如下解决方案:
第一内存控制器输出第一指示信号时,具体可通过如下方式实现:若第一内存空间包含多个子空间,第一内存控制器在多个子空间中任一子空间正在强制刷新时,输出用于指示第一内存空间正在强制刷新的第一指示信号,或者,第一内存控制器在多个子空间均未强制刷新时,输出用于指示第一内存空间未强制刷新的第一指示信号。
第一内存控制器输出第二指示信号时,具体可通过如下方式实现:若第一内存空间包含多个子空间,第一内存控制器在多个子空间中任一子空间处于空闲状态时,输出用于指示第一内存空间处于空闲状态的第二指示信号,或者,第一内存控制器在多个子空间均处于数据传输状态时,输出用于指示第一内存空间未处于空闲状态的第二指示信号。
也就是说,对于第一内存控制器来说,若第一内存空间包含的多个子空间中任一子空间正在强制刷新时,则可以认为第一内存空间正在强制刷新;若第一内存空间包含的多个子空间中任一子空间处于空闲状态时,则可以认为第一内存空间处于空闲状态。
需要说明的是,子空间可以理解为前述的RANK,也可以有其他理解。例如,HBM是一种高带宽的DRAM,在对内存带宽要求较高的场景下普遍应用。在HBM的通道中还包含多个pseudo channel(简称PS-CH),即将一个通道再划分为多个虚拟子通道,多个虚拟子通道共用同一组地址线和同一组命令线,且多个虚拟子通道用于不同内存空间的数据传输。这里,PS-CH对应的内存空间也可以理解为上述子空间。
采用上述方案,由于多个子空间共用同一组地址线和同一组命令线,因此在同一时刻第一内存控制器仅可对一个子空间进行刷新。那么,在多个子空间中的任一个子空间强制刷新时,第一内存控制器即可将第一内存空间正在进行强制刷新的第一指示信号发送给刷新处理装置600中除第一内存控制器之外的其他N个内存控制器,从而使得其他内存控制器判断是否需要和第一内存空间中正在进行强制刷新的子空间进行同步刷新。同样地,在多个子空间中的任一个子空间处于空闲状态时,第一内存控制器即可将第一内存空间处于空闲状态的第二指示信号发送给刷新处理装置600中除第一内存控制器之外的其他N个内存控制器,从而使得其他内存控制器在确定其对应的内存空间处于空闲状态时,控制该内存空间与第一内存空间中处于空闲状态的子空间进行同步刷新。
此外,在第一内存空间包含多个子空间的情况下,第一内存控制器确定第一内存空间的刷新策略时,具体可通过如下方式实现:第一内存控制器根据多个子空间中每个子空间的刷新指示信息确定第一内存空间的刷新策略,第一内存空间的刷新策略应用于多个子空间中的至少一个子空间;其中,每个子空间的刷新指示信息包括下述中的至少一个:每个子空间的欠刷新次数;每个子空间的输入输出数据流量;每个子空间是否处于空闲状态。
具体地,第一内存空间的刷新策略应用于多个子空间中的哪个子空间,可以有不同的实现方式。
比如,随机选择多个子空间中的一个子空间执行第一内存空间的刷新策略;比如,在确定需要对第一内存空间进行刷新时选择欠刷新次数较多的子空间进行刷新;再比如,在确定需要对第一内存空间进行刷新时选择输入输出数据流量较小的子空间进行刷新;再比如,在确定需要对第一内存空间进行刷新时选择处于空闲状态的子空间进行刷新。
当然,实际实现时,选择方式不限于如上列举的几种,应用第一内存空间的刷新策略的子空间的数量也不限于一个。
采用本申请实施例提供的刷新处理装置,由于第一内存控制器不再独立控制第一内存空间的刷新操作,而是结合刷新处理装置600中除第一内存控制器之外的其他N个内存控制器对应控制的内存空间的第一指示信号和第二指示信号,综合考虑多个内存空间的是否正在强制刷新以及是否空闲的信息,并结合第一内存空间的刷新指示信息来确定第一内存空间的刷新策略。采用这种方案,第一内存控制器在确定第一内存空间的刷新策略时可以兼顾到其他多个内存空间,因而可以整合多个内存空间的信息确定第一内存空间的刷新策略,提高多个内存空间同步刷新的概率。在内存访问连续性较强的场景下,采用本申请实施例提供的方案,可以降低多个内存空间中任一内存空间处于刷新状态的概率,从而降低被交织到多个通道的访问请求由于某个内存空间处于刷新状态而出现系统断流现象的概率,进而提高内存的访问效率、提升系统性能。
基于以上实施例,本申请实施例还提供一种刷新处理装置,该刷新处理装置可视为图6所示的刷新处理装置的一个具体示例。参见图7,该刷新处理装置包括四个MC(MC0、MC1、MC2和MC3),四个MC分别对应连接四个双倍速率同步动态随机存储器(double datarate synchronous dynamic random access memory,DDR SDRAM)(简称DDR),即DDR0、DDR1、DDR2和DDR3。其中,每个MC均与其他MC通信连接。
以MC0为例,MC0用于向MC1、MC2和MC3输出第一指示信号和第二指示信号,其中第一指示信号用于指示DDR0是否将要强制刷新,第二指示信号用于指示DDR0是否处于空闲状态。MC0还用于接收MC1、MC2和MC3分别输出的三个第一指示信号和三个第二指示信号,并根据三个第一指示信号和三个第二指示信号、以及DDR0的欠刷新次数、DDR0是否处于空闲状态的信息、DDR0的输入输出数据流量等刷新指示信息确定DDR0的刷新策略。
其中,MC0可视为刷新处理装置600中的第一内存控制器的一个具体示例,DDR0可视为刷新处理装置600中的第一内存空间的一个具体示例。图7所示的刷新处理装置中未详尽描述的实现方式和技术效果可参见图6所示的刷新处理装置600中的相关描述。
由图7不难看出,本申请实施例中提供的刷新处理装置可以视为一种集成有多个MC的CPU。本申请实施例提供的刷新处理装置与现有技术中集成有多个MC的CPU的不同之处在于,现有技术中,CPU中的多个MC分别独立控制其对应的内存空间的刷新操作,即多个MC之间没有通信连接;而本申请实施例中,多个MC中的任意两个MC间均通信连接,任一MC均可根据其他MC对应的内存空间是否将要强制刷新、是否空闲的信息,以及自身的情况来确定其对应的内存空间的刷新策略。因而可以整合多个内存空间的信息确定该MC对应的内存空间的刷新策略,提高多个内存空间同步刷新的概率,从而提高内存的访问效率、提升系统性能。
在本申请实施例提供的刷新处理装置中,MC除了包含现有的命令处理模块、数据处理模块和刷新模块外,还包含刷新处理模块。参见图8,刷新处理模块用于根据N个第一指示信号、N个第二指示信号(例如在图7所示的刷新处理装置中,N=3)、延迟刷新模块输出的第一内存空间的欠刷新次数以及第一内存空间的内部状态等,确定第一内存空间的刷新策略,并根据确定的刷新策略输出刷新指令,同时输出第一指示信号和第二指示信号。其中,刷新指令输出至MC中的刷新模块,刷新模块可根据刷新指令对第一内存空间进行刷新操作;输出的第一指示信号和第二指示信号用于刷新处理装置600中除第一内存控制器之外的其他N个内存控制器确定其对应控制的内存空间的刷新策略。
具体地,刷新处理模块可包含内部空闲判断模块、空闲状态判断模块、强制刷新判断模块以及刷新命令产生模块。内部空闲判断模块用于确定第一内存空间是否处于空闲状态;空闲状态判断模块用于根据第一内存空间是否处于空闲状态的信息以及N个第二指示信号确定是否存在多个处于空闲状态的内存空间,并对多个处于空闲状态的内存空间进行同步刷新;强制刷新判断模块用于分析N个第一指示信号,并将分析结果(例如N个第一指示信号中对应指示的内存控制器对应的内存空间中哪几个内存空间正在进行强制刷新)发送给刷新命令产生模块;刷新命令产生模块即可根据强制刷新判断模块的分析结果,并结合其他内存空间的状态(例如空闲状态或数据传输状态)以及第一内存空间的欠刷新次数,确定刷新策略,并输出刷新指令。
其中,第一内存控制器输出的第二指示信号可直接通过内部空闲判断模块的输出结果确定,而第一内存控制器输出的第一指示信号需要通过刷新命令产生模块确定的刷新策略来确定,例如,在第一内存空间的欠刷新次数大于或等于第一阈值时,刷新命令产生模块确定对第一内存空间进行强制刷新,并输出用于指示第一内存空间进行强制刷新的第一指示信号。
此外,延迟刷新模块可以是MC中的刷新模块中的一个子模块。现有技术中,为了保证刷新操作的间隔时长不超过9tREFI,从而导致数据丢失,第一内存控制器中也会通过延迟刷新模块记录第一内存空间的欠刷新次数。本申请实施例中第一内存空间的欠刷新次数可以直接从延迟刷新模块获取。
基于同一发明构思,本申请实施例提供一种刷新处理方法。该刷新处理方法可视为图6所示的刷新处理装置600中第一内存控制器所执行的方法。参见图9,该方法包括如下步骤:
S901:多个内存控制器中的第一内存控制器将第一指示信号和第二指示信号分别输出至多个内存控制器中除第一内存控制器之外的N个内存控制器。
其中,N≥1;第一指示信号用于指示第一内存控制器控制的第一内存空间是否将要强制刷新,第二指示信号用于指示第一内存空间是否处于空闲状态。多个内存控制器与多个内存空间一一对应,多个内存控制器分别控制与其对应的内存空间,多个内存控制器中任意两个内存控制器通信连接;第一内存控制器为多个内存控制器中的任意一个。
S902:第一内存控制器根据N个内存控制器分别输出的N个第一指示信号和N个第二指示信号,以及第一内存空间的刷新指示信息中的至少一种信息确定第一内存空间的刷新策略。
其中,第一内存空间的刷新指示信息包括下述中的至少一个:第一内存空间的欠刷新次数,欠刷新次数用于指示第一内存空间在预设的刷新时间未进行刷新的次数;第一内存空间的输入输出数据流量;第一内存控制器的第二指示信号。
可选地,第一内存控制器确定第一内存空间的刷新策略,包括:若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,第一内存控制器确定对第一内存空间进行刷新。
可选地,第一内存控制器确定第一内存空间的刷新策略,包括:若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,第一内存控制器在第一内存空间的刷新指示信息满足预设条件时确定对第一内存空间进行刷新。
其中,预设条件包括下述中的至少一个:欠刷新次数大于或等于预设的刷新阈值;第一内存空间的输入输出数据流量小于预设的流量阈值;第一内存空间处于空闲状态。
可选地,第一内存控制器确定第一内存空间的刷新策略,包括:若第一内存空间的欠刷新次数大于或等于第一阈值,第一内存控制器确定对第一内存空间进行强制刷新。
可选地,第一内存控制器确定第一内存空间的刷新策略,包括:若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间均未强制刷新,且第一内存空间的欠刷新次数大于或等于第二阈值、且小于第一阈值,第一内存控制器在第一内存空间处于空闲状态时确定对第一内存空间进行刷新。
可选地,第一内存控制器在第一内存空间处于空闲状态时确定对第一内存空间进行刷新,包括:第一内存控制器根据第一内存空间的欠刷新次数确定空闲等待时长;第一内存控制器在第一内存空间由数据传输状态转换为空闲状态时,确定等待空闲等待时长后对第一内存空间进行刷新。
可选地,第一内存控制器确定对第一内存空间进行刷新,包括:若N个第二指示信号中至少一个第二指示信号指示对应的内存控制器控制的内存空间处于空闲状态、第一内存空间处于空闲状态,第一内存控制器确定对第一内存空间以及至少一个第二指示信号分别对应的至少一个第二内存空间进行同步刷新。
可选地,第一内存控制器输出第一指示信号,包括:当第一内存空间的欠刷新次数大于或等于第一阈值时,第一内存控制器输出用于指示第一内存空间正在强制刷新的第一指示信号;当第一内存空间的欠刷新次数小于第一阈值时,第一内存控制器输出用于指示第一内存空间未强制刷新的第一指示信号。
可选地,第一内存控制器输出第一指示信号,包括:若第一内存空间包含多个子空间,第一内存控制器在多个子空间中任一子空间正在强制刷新时,输出用于指示第一内存空间正在强制刷新的第一指示信号,或者,第一内存控制器在多个子空间均未强制刷新时,输出用于指示第一内存空间未强制刷新的第一指示信号。
可选地,第一内存控制器输出第二指示信号,包括:若第一内存空间包含多个子空间,第一内存控制器在多个子空间中任一子空间处于空闲状态时,输出用于指示第一内存空间处于空闲状态的第二指示信号,或者,第一内存控制器在多个子空间均处于数据传输状态时,输出用于指示第一内存空间未处于空闲状态的第二指示信号。
可选地,第一内存控制器确定第一内存空间的刷新策略,包括:第一内存控制器根据N个第一指示信号和N个第二指示信号,和/或多个子空间中每个子空间的刷新指示信息确定所第一内存空间的刷新策略,第一内存空间的刷新策略应用于多个子空间中的至少一个子空间。
其中,每个子空间的刷新指示信息包括下述中的至少一个:每个子空间的欠刷新次数;每个子空间的输入输出数据流量;每个子空间是否处于空闲状态。
需要说明的是,图9所示的刷新处理方法可视为图6所示的刷新处理装置600中第一内存控制器所执行的方法。图9所示的刷新处理方法中未详尽描述的实现方式可参见图6所示的刷新处理装置600中的相关描述。
采用图9所示的刷新处理方法,由于第一内存控制器不再独立控制第一内存空间的刷新操作,而是结合其他N个内存控制器对应控制的内存空间的第一指示信号和第二指示信号,综合考虑多个内存空间的是否正在强制刷新以及是否空闲的信息,并结合第一内存空间的刷新指示信息来确定第一内存空间的刷新策略。采用这种方法,第一内存控制器在确定第一内存空间的刷新策略时可以兼顾到其他多个内存空间,因而可以整合多个内存空间的信息确定第一内存空间的刷新策略,提高多个内存空间同步刷新的概率。在内存访问连续性较强的场景下,采用上述方法,可以降低多个内存空间中任一内存空间处于刷新状态的概率,从而降低被交织到多个通道的访问请求由于某个内存空间处于刷新状态而出现系统断流现象的概率,进而提高内存的访问效率、提升系统性能。
基于同一发明构思,本申请实施例还提供一种内存控制器。该内存控制器可用于执行图9所示的刷新处理方法。参见图10,该内存控制器1000包括收发单元1001和处理单元1002。
收发单元1001,用于将第一指示信号和第二指示信号分别输出至多个内存控制器中除内存控制器1000之外的N个内存控制器。
其中,N≥1;第一指示信号用于指示内存控制器1000控制的第一内存空间是否将要强制刷新,第二指示信号用于指示第一内存空间是否处于空闲状态。多个内存控制器与多个内存空间一一对应,多个内存控制器分别控制与其对应的内存空间,多个内存控制器中任意两个内存控制器通信连接;内存控制器1000为多个内存控制器中的任意一个。
处理单元1002,用于根据N个内存控制器分别输出的N个第一指示信号和N个第二指示信号,以及第一内存空间的刷新指示信息中的至少一种信息确定第一内存空间的刷新策略。
其中,第一内存空间的刷新指示信息包括下述中的至少一个:第一内存空间的欠刷新次数,欠刷新次数用于指示第一内存空间在预设的刷新时间未进行刷新的次数;第一内存空间的输入输出数据流量;内存控制器1000的第二指示信号。
可选地,处理单元1002确定第一内存空间的刷新策略,包括:若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,处理单元1002确定对第一内存空间进行刷新。
可选地,处理单元1002确定第一内存空间的刷新策略,包括:若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,处理单元1002在第一内存空间的刷新指示信息满足预设条件时确定对第一内存空间进行刷新。
其中,预设条件包括下述中的至少一个:欠刷新次数大于或等于预设的刷新阈值;第一内存空间的输入输出数据流量小于预设的流量阈值;第一内存空间处于空闲状态。
可选地,处理单元1002确定第一内存空间的刷新策略,包括:若第一内存空间的欠刷新次数大于或等于第一阈值,处理单元1002确定对第一内存空间进行强制刷新。
可选地,处理单元1002确定第一内存空间的刷新策略,包括:若N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间均未强制刷新,且第一内存空间的欠刷新次数大于或等于第二阈值、且小于第一阈值,处理单元1002在第一内存空间处于空闲状态时确定对第一内存空间进行刷新。
可选地,处理单元1002在第一内存空间处于空闲状态时确定对第一内存空间进行刷新,包括:处理单元1002根据第一内存空间的欠刷新次数确定空闲等待时长;处理单元1002在第一内存空间由数据传输状态转换为空闲状态时,确定等待空闲等待时长后对第一内存空间进行刷新。
可选地,处理单元1002确定对第一内存空间进行刷新,包括:若N个第二指示信号中至少一个第二指示信号指示对应的内存控制器控制的内存空间处于空闲状态、第一内存空间处于空闲状态,处理单元1002确定对第一内存空间以及至少一个第二指示信号分别对应的至少一个第二内存空间进行同步刷新。
可选地,收发单元1001输出第一指示信号,包括:当第一内存空间的欠刷新次数大于或等于第一阈值时,收发单元1001输出用于指示第一内存空间正在强制刷新的第一指示信号;当第一内存空间的欠刷新次数小于第一阈值时,收发单元1001输出用于指示第一内存空间未强制刷新的第一指示信号。
可选地,收发单元1001输出第一指示信号,包括:若第一内存空间包含多个子空间,收发单元1001在多个子空间中任一子空间正在强制刷新时,输出用于指示第一内存空间正在强制刷新的第一指示信号,或者,收发单元1001在多个子空间均未强制刷新时,输出用于指示第一内存空间未强制刷新的第一指示信号。
可选地,收发单元1001输出第二指示信号,包括:若第一内存空间包含多个子空间,收发单元1001在多个子空间中任一子空间处于空闲状态时,输出用于指示第一内存空间处于空闲状态的第二指示信号,或者,收发单元1001在多个子空间均处于数据传输状态时,输出用于指示第一内存空间未处于空闲状态的第二指示信号。
可选地,处理单元1002确定第一内存空间的刷新策略,包括:处理单元1002根据N个第一指示信号和N个第二指示信号,和/或多个子空间中每个子空间的刷新指示信息确定所第一内存空间的刷新策略,第一内存空间的刷新策略应用于多个子空间中的至少一个子空间。
其中,每个子空间的刷新指示信息包括下述中的至少一个:每个子空间的欠刷新次数;每个子空间的输入输出数据流量;每个子空间是否处于空闲状态。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
同样需要说明的是,内存控制器1000可以实现图9对应的实施例提供的方法。内存控制器1000中未详细描述的实现方式可以参照图9对应的实施例提供的方法中的相关描述。
基于同一发明构思,本申请实施例提供一种内存控制器。该内存控制器可用于执行图9所示的刷新处理方法,该内存控制器可以是与图10所示的内存控制器1000相同的器件。参见图11,内存控制器1100包括至少一个处理器1101、存储器1102和通信接口1103;所述至少一个处理器1101、所述存储器1102和所述通信接口1103均通过总线1104连接;
所述存储器1102,用于存储计算机执行指令;
所述至少一个处理器1101,用于执行所述存储器1102存储的计算机执行指令,使得所述内存控制器1100通过所述通信接口1103与系统中的其它器件(比如其他内存控制器)进行数据交互来执行上述实施例提供的刷新处理方法,或者使得所述内存控制器1100通过所述通信接口1103与系统中的其它器件(比如其他内存控制器)进行数据交互来实现系统的部分或者全部功能。
至少一个处理器1101,可以包括不同类型的处理器1101,或者包括相同类型的处理器1101;处理器1101可以是以下的任一种:CPU、ARM处理器、现场可编程门阵列(fieldprogrammable gate array,FPGA)、专用处理器等具有计算处理能力的器件。一种可选实施方式,所述至少一个处理器1101还可以集成为众核处理器。
存储器1102可以是以下的任一种或任一种组合:RAM、ROM、非易失性存储器(non-volatile memory,NVM)、固态硬盘(solid state drives,SSD)、机械硬盘、磁盘、磁盘阵列等存储介质。
通信接口1103用于内存控制器1100与其他器件(比如其他内存控制器)进行数据交互。通信接口1103可以是以下的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
该总线1104可以包括地址总线、数据总线、控制总线等,为便于表示,图11用一条粗线表示该总线。总线1104可以是以下的任一种或任一种组合:工业标准体系结构(industry standard architecture,ISA)总线、外设组件互连标准(peripheralcomponent interconnect,PCI)总线、扩展工业标准结构(extended industry standardarchitecture,EISA)总线等有线数据传输的器件。
此外,本申请实施例还提供一种刷新处理系统。参见图12,该刷新处理系统1200包括图6所示的刷新处理装置600以及多个内存空间。其中,多个刷新处理装置600中包括多个内存控制器,多个内存控制器与多个内存空间一一对应,多个内存控制器分别控制与其对应的内存空间,实现图9所示的刷新处理方法。
综上,本申请实施例提供一种刷新处理方法、装置、系统及内存控制器。采用本申请实施例提供的方案,可以整合多个内存空间的信息确定第一内存空间的刷新策略,提高多个内存空间同步刷新的概率。在内存访问连续性较强的场景下,采用本申请实施例提供的方案,可以降低多个内存空间中任一内存空间处于刷新状态的概率,从而降低被交织到多个通道的访问请求由于某个内存空间处于刷新状态而出现系统断流现象的概率,进而提高内存的访问效率、提升系统性能。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如SSD)等。

Claims (24)

1.一种刷新处理装置,其特征在于,包括多个内存控制器,所述多个内存控制器与多个内存空间一一对应,所述多个内存控制器分别控制与其对应的内存空间,所述多个内存控制器中任意两个内存控制器通信连接;
所述多个内存控制器中的第一内存控制器用于:
将第一指示信号和第二指示信号分别输出至所述多个内存控制器中除所述第一内存控制器之外的N个内存控制器,N≥1,所述第一指示信号用于指示所述第一内存控制器控制的第一内存空间是否将要强制刷新,所述第二指示信号用于指示所述第一内存空间是否处于空闲状态;以及
根据所述N个内存控制器分别输出的N个第一指示信号和N个第二指示信号,以及所述第一内存空间的刷新指示信息中的至少一种信息确定所述第一内存空间的刷新策略;
其中,所述第一内存空间的刷新指示信息包括下述中的至少一个:所述第一内存空间的欠刷新次数,所述欠刷新次数用于指示所述第一内存空间在预设的刷新时间未进行刷新的次数;所述第一内存空间的输入输出数据流量;所述第一内存控制器的第二指示信号;
所述第一内存控制器为所述多个内存控制器中的任意一个。
2.如权利要求1所述的装置,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略时,具体用于:
若所述N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,所述第一内存控制器确定对所述第一内存空间进行刷新。
3.如权利要求1或2所述的装置,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略时,具体用于:
若所述N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,所述第一内存控制器在所述第一内存空间的刷新指示信息满足预设条件时确定对所述第一内存空间进行刷新;
其中,所述预设条件包括下述中的至少一个:
所述欠刷新次数大于或等于预设的刷新阈值;
所述第一内存空间的输入输出数据流量小于预设的流量阈值;
所述第一内存空间处于空闲状态。
4.如权利要求1或2所述的装置,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略时,具体用于:
若所述第一内存空间的欠刷新次数大于或等于第一阈值,所述第一内存控制器确定对所述第一内存空间进行强制刷新。
5.如权利要求1或2所述的装置,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略时,具体用于:
若所述N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间均未强制刷新,且所述第一内存空间的欠刷新次数大于或等于第二阈值、且小于第一阈值,所述第一内存控制器在所述第一内存空间处于空闲状态时确定对所述第一内存空间进行刷新。
6.如权利要求5所述的装置,其特征在于,所述第一内存控制器在所述第一内存空间处于空闲状态时确定对所述第一内存空间进行刷新时,具体用于:
所述第一内存控制器根据所述第一内存空间的欠刷新次数确定空闲等待时长;
所述第一内存控制器在所述第一内存空间由数据传输状态转换为空闲状态时,确定等待所述空闲等待时长后对所述第一内存空间进行刷新。
7.如权利要求1或2所述的装置,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略时,具体用于:
若所述N个第二指示信号中至少一个第二指示信号指示对应的内存控制器控制的内存空间处于空闲状态、所述第一内存空间处于空闲状态,所述第一内存控制器确定对所述第一内存空间以及所述至少一个第二指示信号分别对应的至少一个第二内存空间进行同步刷新。
8.如权利要求1或2所述的装置,其特征在于,所述第一内存控制器输出所述第一指示信号时,具体用于:
当所述第一内存空间的欠刷新次数大于或等于第一阈值时,所述第一内存控制器输出用于指示所述第一内存空间正在强制刷新的第一指示信号;
当所述第一内存空间的欠刷新次数小于所述第一阈值时,所述第一内存控制器输出用于指示所述第一内存空间未强制刷新的第一指示信号。
9.如权利要求1或2所述的装置,其特征在于,所述第一内存控制器输出所述第一指示信号时,具体用于:
若所述第一内存空间包含多个子空间,所述第一内存控制器在所述多个子空间中任一子空间正在强制刷新时,输出用于指示所述第一内存空间正在强制刷新的第一指示信号,或者,所述第一内存控制器在所述多个子空间均未强制刷新时,输出用于指示所述第一内存空间未强制刷新的第一指示信号。
10.如权利要求1或2所述的装置,其特征在于,所述第一内存控制器输出所述第二指示信号时,具体用于:
若所述第一内存空间包含多个子空间,所述第一内存控制器在所述多个子空间中任一子空间处于空闲状态时,输出用于指示所述第一内存空间处于空闲状态的第二指示信号,或者,所述第一内存控制器在所述多个子空间均处于数据传输状态时,输出用于指示所述第一内存空间未处于空闲状态的第二指示信号。
11.如权利要求9所述的装置,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略时,具体用于:
所述第一内存控制器根据所述N个第一指示信号和所述N个第二指示信号,和/或所述多个子空间中每个子空间的刷新指示信息确定所第一内存空间的刷新策略,所述第一内存空间的刷新策略应用于所述多个子空间中的至少一个子空间;
其中,所述每个子空间的刷新指示信息包括下述中的至少一个:所述每个子空间的欠刷新次数;所述每个子空间的输入输出数据流量;所述每个子空间是否处于空闲状态。
12.一种刷新处理方法,其特征在于,包括:
多个内存控制器中的第一内存控制器将第一指示信号和第二指示信号分别输出至所述多个内存控制器中除所述第一内存控制器之外的N个内存控制器,N≥1,所述第一指示信号用于指示所述第一内存控制器控制的第一内存空间是否将要强制刷新,所述第二指示信号用于指示所述第一内存空间是否处于空闲状态;
其中,所述多个内存控制器与多个内存空间一一对应,所述多个内存控制器分别控制与其对应的内存空间,所述多个内存控制器中任意两个内存控制器通信连接;所述第一内存控制器为所述多个内存控制器中的任意一个;
所述第一内存控制器根据所述N个内存控制器分别输出的N个第一指示信号和N个第二指示信号,以及所述第一内存空间的刷新指示信息中的至少一种信息确定所述第一内存空间的刷新策略;
其中,所述第一内存空间的刷新指示信息包括下述中的至少一个:所述第一内存空间的欠刷新次数,所述欠刷新次数用于指示所述第一内存空间在预设的刷新时间未进行刷新的次数;所述第一内存空间的输入输出数据流量;所述第一内存控制器的第二指示信号。
13.如权利要求12所述的方法,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略,包括:
若所述N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,所述第一内存控制器确定对所述第一内存空间进行刷新。
14.如权利要求12或13所述的方法,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略,包括:
若所述N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间正在强制刷新,所述第一内存控制器在所述第一内存空间的刷新指示信息满足预设条件时确定对所述第一内存空间进行刷新;
其中,所述预设条件包括下述中的至少一个:
所述欠刷新次数大于或等于预设的刷新阈值;
所述第一内存空间的输入输出数据流量小于预设的流量阈值;
所述第一内存空间处于空闲状态。
15.如权利要求12或13所述的方法,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略,包括:
若所述第一内存空间的欠刷新次数大于或等于第一阈值,所述第一内存控制器确定对所述第一内存空间进行强制刷新。
16.如权利要求12或13所述的方法,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略,包括:
若所述N个第一指示信号中任一第一指示信号指示对应的内存控制器控制的内存空间均未强制刷新,且所述第一内存空间的欠刷新次数大于或等于第二阈值、且小于第一阈值,所述第一内存控制器在所述第一内存空间处于空闲状态时确定对所述第一内存空间进行刷新。
17.如权利要求16所述的方法,其特征在于,所述第一内存控制器在所述第一内存空间处于空闲状态时确定对所述第一内存空间进行刷新,包括:
所述第一内存控制器根据所述第一内存空间的欠刷新次数确定空闲等待时长;
所述第一内存控制器在所述第一内存空间由数据传输状态转换为空闲状态时,确定等待所述空闲等待时长后对所述第一内存空间进行刷新。
18.如权利要求12或13所述的方法,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略,包括:
若所述N个第二指示信号中至少一个第二指示信号指示对应的内存控制器控制的内存空间处于空闲状态、所述第一内存空间处于空闲状态,所述第一内存控制器确定对所述第一内存空间以及所述至少一个第二指示信号分别对应的至少一个第二内存空间进行同步刷新。
19.如权利要求12或13所述的方法,其特征在于,所述第一内存控制器输出所述第一指示信号,包括:
当所述第一内存空间的欠刷新次数大于或等于第一阈值时,所述第一内存控制器输出用于指示所述第一内存空间正在强制刷新的第一指示信号;
当所述第一内存空间的欠刷新次数小于所述第一阈值时,所述第一内存控制器输出用于指示所述第一内存空间未强制刷新的第一指示信号。
20.如权利要求12或13所述的方法,其特征在于,所述第一内存控制器输出所述第一指示信号,包括:
若所述第一内存空间包含多个子空间,所述第一内存控制器在所述多个子空间中任一子空间正在强制刷新时,输出用于指示所述第一内存空间正在强制刷新的第一指示信号,或者,所述第一内存控制器在所述多个子空间均未强制刷新时,输出用于指示所述第一内存空间未强制刷新的第一指示信号。
21.如权利要求12或13所述的方法,其特征在于,所述第一内存控制器输出所述第二指示信号,包括:
若所述第一内存空间包含多个子空间,所述第一内存控制器在所述多个子空间中任一子空间处于空闲状态时,输出用于指示所述第一内存空间处于空闲状态的第二指示信号,或者,所述第一内存控制器在所述多个子空间均处于数据传输状态时,输出用于指示所述第一内存空间未处于空闲状态的第二指示信号。
22.如权利要求20所述的方法,其特征在于,所述第一内存控制器确定所述第一内存空间的刷新策略,包括:
所述第一内存控制器根据所述N个第一指示信号和所述N个第二指示信号,和/或所述多个子空间中每个子空间的刷新指示信息确定所第一内存空间的刷新策略,所述第一内存空间的刷新策略应用于所述多个子空间中的至少一个子空间;
其中,所述每个子空间的刷新指示信息包括下述中的至少一个:所述每个子空间的欠刷新次数;所述每个子空间的输入输出数据流量;所述每个子空间是否处于空闲状态。
23.一种内存控制器,其特征在于,包括:收发单元和处理单元;
收发单元,用于将所述内存控制器的第一指示信号和第二指示信号分别输出至多个内存控制器中除所述内存控制器之外的N个内存控制器,N≥1,所述第一指示信号用于指示所述内存控制器控制的第一内存空间是否将要强制刷新,所述第二指示信号用于指示所述第一内存空间是否处于空闲状态;
其中,所述多个内存控制器与多个内存空间一一对应,所述多个内存控制器分别控制与其对应的内存空间,所述多个内存控制器中任意两个内存控制器通信连接;所述内存控制器为所述多个内存控制器中的任意一个;
处理单元,用于根据所述N个内存控制器分别输出的N个第一指示信号和N个第二指示信号,以及所述第一内存空间的刷新指示信息中的至少一种信息确定所述第一内存空间的刷新策略;
其中,所述第一内存空间的刷新指示信息包括下述中的至少一个:所述第一内存空间的欠刷新次数,所述欠刷新次数用于指示所述第一内存空间在预设的刷新时间未进行刷新的次数;所述第一内存空间的输入输出数据流量;所述内存控制器的第二指示信号。
24.一种刷新处理系统,其特征在于,包括:如权利要求1~11任一项所述的刷新处理装置以及多个内存空间。
CN201810052939.0A 2018-01-19 2018-01-19 一种刷新处理方法、装置、系统及内存控制器 Active CN110058793B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810052939.0A CN110058793B (zh) 2018-01-19 2018-01-19 一种刷新处理方法、装置、系统及内存控制器
PCT/CN2018/123223 WO2019141050A1 (zh) 2018-01-19 2018-12-24 一种刷新处理方法、装置、系统及内存控制器
EP18901053.1A EP3736682A4 (en) 2018-01-19 2018-12-24 REFRESHING PROCESS, APPARATUS AND SYSTEM, AND MEMORY CONTROLLER
US16/932,255 US11037615B2 (en) 2018-01-19 2020-07-17 Refresh processing method, apparatus, and system, and memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810052939.0A CN110058793B (zh) 2018-01-19 2018-01-19 一种刷新处理方法、装置、系统及内存控制器

Publications (2)

Publication Number Publication Date
CN110058793A CN110058793A (zh) 2019-07-26
CN110058793B true CN110058793B (zh) 2020-04-28

Family

ID=67301684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810052939.0A Active CN110058793B (zh) 2018-01-19 2018-01-19 一种刷新处理方法、装置、系统及内存控制器

Country Status (4)

Country Link
US (1) US11037615B2 (zh)
EP (1) EP3736682A4 (zh)
CN (1) CN110058793B (zh)
WO (1) WO2019141050A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158585B (zh) * 2019-11-27 2023-08-01 核芯互联科技(青岛)有限公司 一种内存控制器刷新优化方法、装置、设备和存储介质
WO2023087139A1 (en) * 2021-11-16 2023-05-25 Renesas Electronics America Inc. Register clock driver with chip select loopback
US11907141B1 (en) * 2022-09-06 2024-02-20 Qualcomm Incorporated Flexible dual ranks memory system to boost performance

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103038754A (zh) * 2010-07-29 2013-04-10 瑞萨电子株式会社 半导体装置及数据处理系统
CN103996411A (zh) * 2013-02-20 2014-08-20 爱思开海力士有限公司 半导体存储系统
CN105489240A (zh) * 2015-11-30 2016-04-13 中国科学院计算技术研究所 一种用于DRAM或eDRAM刷新的装置及其方法
CN105810235A (zh) * 2016-03-31 2016-07-27 中国人民解放军国防科学技术大学 一种dram刷新控制器及多通道dram同步刷新方法
CN107527648A (zh) * 2017-09-04 2017-12-29 珠海市杰理科技股份有限公司 存储器的刷新方法和系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347027B2 (en) * 2009-11-05 2013-01-01 Honeywell International Inc. Reducing power consumption for dynamic memories using distributed refresh control
JP5932236B2 (ja) * 2011-04-13 2016-06-08 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. 半導体装置及びシステム
JP5917307B2 (ja) * 2012-06-11 2016-05-11 ルネサスエレクトロニクス株式会社 メモリコントローラ、揮発性メモリの制御方法及びメモリ制御システム
US9001608B1 (en) * 2013-12-06 2015-04-07 Intel Corporation Coordinating power mode switching and refresh operations in a memory device
KR20160094767A (ko) * 2015-02-02 2016-08-10 삼성전자주식회사 아이들 구간에서 정보 전달 기능을 수행하는 메모리 장치 및 방법
CN105679360A (zh) * 2016-01-05 2016-06-15 上海新储集成电路有限公司 一种可刷新的非易失性存储器及其刷新方法
US10002657B2 (en) * 2016-03-25 2018-06-19 The Regents Of The University Of Michigan Enhanced memory device
CN107015628B (zh) * 2017-03-30 2020-08-28 中国科学院计算技术研究所 一种面向近似应用的低开销dram刷新方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103038754A (zh) * 2010-07-29 2013-04-10 瑞萨电子株式会社 半导体装置及数据处理系统
CN103996411A (zh) * 2013-02-20 2014-08-20 爱思开海力士有限公司 半导体存储系统
CN105489240A (zh) * 2015-11-30 2016-04-13 中国科学院计算技术研究所 一种用于DRAM或eDRAM刷新的装置及其方法
CN105810235A (zh) * 2016-03-31 2016-07-27 中国人民解放军国防科学技术大学 一种dram刷新控制器及多通道dram同步刷新方法
CN107527648A (zh) * 2017-09-04 2017-12-29 珠海市杰理科技股份有限公司 存储器的刷新方法和系统

Also Published As

Publication number Publication date
US11037615B2 (en) 2021-06-15
US20200357457A1 (en) 2020-11-12
WO2019141050A1 (zh) 2019-07-25
EP3736682A4 (en) 2021-03-10
CN110058793A (zh) 2019-07-26
EP3736682A1 (en) 2020-11-11

Similar Documents

Publication Publication Date Title
US10747605B2 (en) Method and apparatus for providing a host memory controller write credits for write commands
US7433992B2 (en) Command controlling different operations in different chips
US10762008B2 (en) Delay circuit and write and read latency control circuit of memory, and signal delay method thereof
WO2017192346A1 (en) Non-deterministic memory protocol
US7694099B2 (en) Memory controller having an interface for providing a connection to a plurality of memory devices
CN110058793B (zh) 一种刷新处理方法、装置、系统及内存控制器
US9953694B2 (en) Memory controller-controlled refresh abort
US9417816B2 (en) Partitionable memory interfaces
US5253214A (en) High-performance memory controller with application-programmable optimization
CN102236622A (zh) 提高动态存储器带宽利用率的动态存储器控制器及方法
US20090319708A1 (en) Electronic system and related method with time-sharing bus
CN116897395A (zh) 一种存储器的刷新方法、存储器、控制器及存储系统
CN110097898B (zh) 页面大小感知调度方法和非暂时性计算机可读记录介质
US20130097388A1 (en) Device and data processing system
CN108027765B (zh) 一种内存访问方法以及计算机系统
US11403242B2 (en) Control method of multiple memory devices and associated memory system
CN112965816B (zh) 内存管理技术及计算机系统
JP2023068341A (ja) メモリコントローラ、メモリコントローラの制御方法およびプログラム
CN115686383A (zh) 存储器的控制方法和控制器以及芯片系统
CN112035053A (zh) 存储器存储装置及其运作方法
JP2014160433A (ja) 複数のメモリからデータを提供するための装置および方法
US20140002164A1 (en) Delay circuit and delay method using the same

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