CN112259141B - Refreshing method of dynamic random access memory, memory controller and electronic device - Google Patents
Refreshing method of dynamic random access memory, memory controller and electronic device Download PDFInfo
- Publication number
- CN112259141B CN112259141B CN202011162195.1A CN202011162195A CN112259141B CN 112259141 B CN112259141 B CN 112259141B CN 202011162195 A CN202011162195 A CN 202011162195A CN 112259141 B CN112259141 B CN 112259141B
- Authority
- CN
- China
- Prior art keywords
- refresh
- state
- request
- address
- priority
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 46
- 230000000903 blocking effect Effects 0.000 claims description 64
- 230000004888 barrier function Effects 0.000 claims 1
- 230000003111 delayed effect Effects 0.000 description 38
- 240000007320 Pinus strobus Species 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 239000003990 capacitor Substances 0.000 description 6
- 230000007423 decrease Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011010 flushing procedure Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40603—Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
Abstract
Description
技术领域Technical field
本公开的实施例涉及一种用于动态随机存取存储器的刷新方法及内存控制器、电子装置。Embodiments of the present disclosure relate to a refresh method for dynamic random access memory, a memory controller, and an electronic device.
背景技术Background technique
计算机系统通常会采用动态随机存取存储器(Dynamic Random Access Memory,DRAM)作为系统的主存储器(或称为内存)。DRAM具有较高的密度和低廉的价格,因此广泛应用于计算机系统中。DRAM是一种半导体存储器,主要的工作原理是利用电容来存储数据,以电容内存储电荷的多寡来表示二进制比特(bit)为“0”或“1”。Computer systems usually use dynamic random access memory (Dynamic Random Access Memory, DRAM) as the main memory (or memory) of the system. DRAM has high density and low price, so it is widely used in computer systems. DRAM is a kind of semiconductor memory. The main working principle is to use capacitors to store data. The amount of charge stored in the capacitors represents the binary bit (bit) as "0" or "1".
发明内容Contents of the invention
本公开至少一个实施例提供一种用于动态随机存取存储器的刷新方法,其中,所述动态随机存取存储器包括多个存储队列,每个存储队列包括多个区块组,每个区块组包括多个区块,所述方法包括:确定所述多个存储队列对应的多个状态机的状态,其中,所述多个存储队列与所述多个状态机一一对应;确定所述多个存储队列对应的多个预测地址;基于所述多个状态机的状态以及所述多个预测地址,生成刷新请求,并将所述刷新请求发送给与所述动态随机存取存储器连接的仲裁器,以使得所述仲裁器对所述刷新请求进行仲裁,并且响应于所述刷新请求赢得仲裁,将所述刷新请求发送给所述动态随机存取存储器,以用于实现所述动态随机存取存储器的刷新。At least one embodiment of the present disclosure provides a refreshing method for a dynamic random access memory, wherein the dynamic random access memory includes a plurality of storage queues, each storage queue includes a plurality of block groups, and each block The group includes multiple blocks, and the method includes: determining the states of multiple state machines corresponding to the multiple storage queues, wherein the multiple storage queues correspond to the multiple state machines one-to-one; determining the Multiple predicted addresses corresponding to multiple storage queues; based on the states of the multiple state machines and the multiple predicted addresses, generate a refresh request, and send the refresh request to the device connected to the dynamic random access memory an arbiter, such that the arbiter arbitrates the refresh request and wins the arbitration in response to the refresh request, sending the refresh request to the dynamic random access memory for implementing the dynamic random access memory Access memory refresh.
例如,在本公开一实施例提供的方法中,确定所述多个存储队列对应的多个状态机的状态包括:对于每个状态机,根据推迟刷新计数器的数值、自刷新进入请求以及自刷新退出命令,确定所述状态机的状态。For example, in a method provided by an embodiment of the present disclosure, determining the status of multiple state machines corresponding to the multiple storage queues includes: for each state machine, based on the value of the delayed refresh counter, the self-refresh entry request and the self-refresh Exit the command to determine the state of the state machine.
例如,在本公开一实施例提供的方法中,所述状态机包括4种状态:第一优先级状态、第二优先级状态、冲刷状态和自刷新状态,所述第一优先级状态的优先级高于所述第二优先级状态的优先级。For example, in the method provided by an embodiment of the present disclosure, the state machine includes four states: a first priority state, a second priority state, a flushing state and a self-refresh state. The priority of the first priority state is The priority level is higher than the second priority state.
例如,在本公开一实施例提供的方法中,对于每个状态机,根据所述推迟刷新计数器的数值、所述自刷新进入请求以及所述自刷新退出命令,确定所述状态机的状态,包括:响应于所述推迟刷新计数器的数值大于或等于阈值,使所述状态机进入所述第一优先级状态;响应于所述推迟刷新计数器的数值小于所述阈值,使所述状态机进入所述第二优先级状态;响应于所述自刷新进入请求,根据所述状态机的当前状态,使所述状态机立即或延迟进入所述冲刷状态;响应于与所述冲刷状态对应的操作完成,使所述状态机进入所述自刷新状态;响应于所述自刷新退出命令,根据所述推迟刷新计数器的数值,使所述状态机进入所述第一优先级状态或所述第二优先级状态。For example, in the method provided by an embodiment of the present disclosure, for each state machine, the state of the state machine is determined based on the value of the delayed refresh counter, the self-refresh entry request, and the self-refresh exit command, The method includes: in response to the value of the delayed refresh counter being greater than or equal to a threshold, causing the state machine to enter the first priority state; in response to the value of the delayed refresh counter being less than the threshold, causing the state machine to enter The second priority state; in response to the self-refresh entry request, causing the state machine to enter the flush state immediately or delayed according to the current state of the state machine; in response to an operation corresponding to the flush state Completed, causing the state machine to enter the self-refresh state; in response to the self-refresh exit command, causing the state machine to enter the first priority state or the second priority state according to the value of the delayed refresh counter. Priority status.
例如,在本公开一实施例提供的方法中,响应于所述自刷新进入请求,根据所述状态机的当前状态,使所述状态机立即或延迟进入所述冲刷状态,包括:响应于所述自刷新进入请求,在所述状态机处于所述第一优先级状态的情形,使所述状态机保持所述第一优先级状态直至所述推迟刷新计数器的数值小于所述阈值再进入所述冲刷状态;响应于所述自刷新进入请求,在所述状态机处于所述第二优先级状态且刷新地址记录单元中无记录地址的情形,使所述状态机进入所述冲刷状态;响应于所述自刷新进入请求,在所述状态机处于所述第二优先级状态且所述刷新地址记录单元中存在记录地址的情形,使所述状态机保持所述第二优先级状态直至所述刷新地址记录单元中无记录地址再进入所述冲刷状态。For example, in a method provided by an embodiment of the present disclosure, in response to the self-refresh entry request, causing the state machine to enter the flush state immediately or delayed according to the current state of the state machine includes: responding to the The self-refresh entry request, when the state machine is in the first priority state, causes the state machine to maintain the first priority state until the value of the postponed refresh counter is less than the threshold before entering the state machine. The flush state; in response to the self-refresh entry request, when the state machine is in the second priority state and there is no recorded address in the refresh address recording unit, the state machine enters the flush state; in response In the case of the self-refresh entry request, when the state machine is in the second priority state and there is a recorded address in the refresh address recording unit, the state machine is maintained in the second priority state until the If there is no recorded address in the refresh address recording unit, the flushing state will be entered again.
例如,在本公开一实施例提供的方法中,确定所述多个存储队列对应的所述多个预测地址包括:对于每个存储队列,基于区块信息以及所述存储队列对应的状态机的状态,确定所述预测地址。For example, in a method provided by an embodiment of the present disclosure, determining the plurality of predicted addresses corresponding to the plurality of storage queues includes: for each storage queue, based on the block information and the state machine corresponding to the storage queue. status to determine the predicted address.
例如,在本公开一实施例提供的方法中,对于每个存储队列,基于所述区块信息以及所述存储队列对应的状态机的状态,确定所述预测地址,包括:响应于所述状态机处于所述第一优先级状态且对应的存储队列中无正在执行的刷新任务,按照从第一级别至第N级别的优先级顺序将满足要求的区块的地址确定为所述预测地址;响应于所述状态机处于所述第二优先级状态且对应的存储队列中无正在执行的刷新任务,按照从所述第一级别至第M级别的优先级顺序将满足要求的区块的地址确定为所述预测地址;响应于所述状态机处于所述第一优先级状态且对应的存储队列中有正在执行的刷新任务,确定所述预测地址为空;响应于所述状态机处于所述第二优先级状态,并且,不存在满足要求的区块或对应的存储队列中有正在执行的刷新任务,确定所述预测地址为空;其中,N>M>1且N和M均为整数,所述第一级别至所述第N级别的优先级顺序逐渐降低,各个级别的优先级顺序基于所述区块信息确定,所述区块信息至少包括:是否有效、是否被刷新、是否存在访存请求、是否空闲、时序是否符合。For example, in a method provided by an embodiment of the present disclosure, for each storage queue, determining the predicted address based on the block information and the state of the state machine corresponding to the storage queue includes: responding to the state When the machine is in the first priority state and there is no refresh task being executed in the corresponding storage queue, the address of the block that meets the requirements is determined as the predicted address in the order of priority from the first level to the Nth level; In response to the state machine being in the second priority state and there being no refresh task being executed in the corresponding storage queue, the address of the block that satisfies the requirements is determined in priority order from the first level to the Mth level. Determined to be the predicted address; in response to the state machine being in the first priority state and a refresh task being executed in the corresponding storage queue, determining that the predicted address is empty; in response to the state machine being in the The above second priority state, and there is no block that meets the requirements or there is a refresh task being executed in the corresponding storage queue, it is determined that the predicted address is empty; where, N>M>1 and N and M are both Integer, the priority order from the first level to the Nth level gradually decreases, and the priority order of each level is determined based on the block information. The block information at least includes: whether it is valid, whether it is refreshed, whether it is There is a memory access request, whether it is idle, and whether the timing is consistent.
例如,本公开一实施例提供的方法还包括:基于所述多个状态机的状态以及所述多个预测地址,生成阻挡地址,并将所述阻挡地址发送给所述仲裁器,以使得所述仲裁器对所述阻挡地址对应的非刷新命令进行阻挡。For example, the method provided by an embodiment of the present disclosure further includes: generating a blocking address based on the states of the multiple state machines and the multiple predicted addresses, and sending the blocking address to the arbiter, so that the The arbiter blocks the non-refresh command corresponding to the blocking address.
例如,在本公开一实施例提供的方法中,基于所述多个状态机的状态以及所述多个预测地址,生成所述阻挡地址,并将所述阻挡地址发送给所述仲裁器,包括:响应于所述状态机处于所述第一优先级状态以及对应的存储队列中无正在执行的刷新任务,将所述存储队列对应的预测地址确定为所述阻挡地址,并将所述阻挡地址发送给所述仲裁器。For example, in a method provided by an embodiment of the present disclosure, the blocking address is generated based on the states of the multiple state machines and the multiple predicted addresses, and the blocking address is sent to the arbiter, including : In response to the state machine being in the first priority state and there being no refresh task being executed in the corresponding storage queue, determine the predicted address corresponding to the storage queue as the blocking address, and set the blocking address to sent to the arbiter.
例如,在本公开一实施例提供的方法中,基于所述多个状态机的状态以及所述多个预测地址,生成所述刷新请求,并将所述刷新请求发送给与所述动态随机存取存储器连接的所述仲裁器,包括:基于所述多个状态机的状态,根据优先级选择规则选择存储队列并生成所述刷新请求,并且将所述刷新请求发送给所述仲裁器;其中,所述刷新请求包括请求命令、请求地址和标志位,所述请求地址为被选择的存储队列对应的预测地址,所述标志位指示被选择的存储队列对应的状态机处于所述第一优先级状态或所述第二优先级状态。For example, in the method provided by an embodiment of the present disclosure, the refresh request is generated based on the states of the multiple state machines and the multiple predicted addresses, and the refresh request is sent to the server associated with the dynamic random memory. Obtaining the arbiter of a memory connection includes: based on the status of the plurality of state machines, selecting a storage queue according to a priority selection rule and generating the refresh request, and sending the refresh request to the arbiter; wherein , the refresh request includes a request command, a request address and a flag bit. The request address is the predicted address corresponding to the selected storage queue. The flag bit indicates that the state machine corresponding to the selected storage queue is in the first priority. level status or the second priority status.
例如,在本公开一实施例提供的方法中,所述第一优先级状态包括第一子状态和第二子状态,所述第一子状态的优先级高于所述第二子状态的优先级,所述第一子状态为所述推迟刷新计数器的数值达到最大值,所述第二子状态为所述推迟刷新计数器的数值小于所述最大值并且大于或等于所述阈值;所述优先级选择规则为:按照所述第一子状态、所述第二子状态、所述第二优先级状态的优先级顺序选择对应的存储队列,若所有状态机均处于所述第二优先级状态,则选择预测地址不为空的存储队列,若存在多个具有同一优先级顺序的状态机,则在所述多个具有同一优先级顺序的状态机中随机选择一个状态机对应的存储队列。For example, in the method provided by an embodiment of the present disclosure, the first priority state includes a first sub-state and a second sub-state, and the priority of the first sub-state is higher than the priority of the second sub-state. stage, the first sub-state is when the value of the delayed refresh counter reaches the maximum value, the second sub-state is when the value of the delayed refresh counter is less than the maximum value and greater than or equal to the threshold; the priority The level selection rule is: select the corresponding storage queue according to the priority order of the first sub-state, the second sub-state, and the second priority state. If all state machines are in the second priority state , then select a storage queue whose predicted address is not empty. If there are multiple state machines with the same priority order, randomly select a storage queue corresponding to a state machine among the multiple state machines with the same priority order.
例如,本公开一实施例提供的方法还包括:响应于生成所述刷新请求、所述刷新请求的标志位指示所述第一优先级状态以及所述请求地址对应的区块非全空闲,生成预充电请求并将所述预充电请求发送给所述仲裁器;其中,所述预充电请求对应于所述请求地址对应的区块。For example, the method provided by an embodiment of the present disclosure further includes: in response to generating the refresh request, the flag bit of the refresh request indicating the first priority status, and the block corresponding to the request address being not completely free, generating Precharge request and send the precharge request to the arbiter; wherein the precharge request corresponds to the block corresponding to the request address.
例如,在本公开一实施例提供的方法中,所述仲裁器还配置为对读写请求、行选通请求、所述预充电请求进行仲裁,进行仲裁的优先级按如下顺序降低:所述标志位指示所述第一优先级状态的刷新请求、所述读写请求、所述行选通请求、所述预充电请求、所述标志位指示所述第二优先级状态的刷新请求。For example, in the method provided by an embodiment of the present disclosure, the arbiter is further configured to arbitrate read and write requests, row strobe requests, and the precharge request, and the priority of arbitration is reduced in the following order: The flag bit indicates the refresh request of the first priority state, the read-write request, the row strobe request, the precharge request, and the flag bit indicates the refresh request of the second priority state.
本公开至少一个实施例还提供一种用于动态随机存取存储器的内存控制器,其中,所述内存控制器配置为与所述动态随机存取存储器连接且配置为控制所述动态随机存取存储器进行刷新,所述动态随机存取存储器包括多个存储队列,每个存储队列包括多个区块组,每个区块组包括多个区块;所述内存控制器包括刷新控制模块,所述刷新控制模块包括多个状态机、多个地址预测单元和请求生成单元;所述多个状态机与所述多个存储队列一一对应,所述状态机配置为在多个状态之间切换;所述多个地址预测单元与所述多个存储队列一一对应,所述地址预测单元配置为确定对应的存储队列的预测地址;所述请求生成单元配置为基于所述多个状态机的状态以及所述预测地址,生成刷新请求,并将所述刷新请求发送给与所述动态随机存取存储器连接的仲裁器。At least one embodiment of the present disclosure also provides a memory controller for a dynamic random access memory, wherein the memory controller is configured to be connected to the dynamic random access memory and configured to control the dynamic random access memory. The memory is refreshed, the dynamic random access memory includes multiple storage queues, each storage queue includes multiple block groups, and each block group includes multiple blocks; the memory controller includes a refresh control module, so The refresh control module includes multiple state machines, multiple address prediction units and request generation units; the multiple state machines correspond to the multiple storage queues one-to-one, and the state machine is configured to switch between multiple states. ; The plurality of address prediction units are in one-to-one correspondence with the plurality of storage queues, and the address prediction unit is configured to determine the predicted address of the corresponding storage queue; the request generation unit is configured to be based on the plurality of state machines status and the predicted address, generate a refresh request, and send the refresh request to an arbiter connected to the dynamic random access memory.
例如,本公开一实施例提供的内存控制器还包括所述仲裁器,其中,所述刷新控制模块与所述仲裁器连接,所述仲裁器与所述动态随机存取存储器连接,所述仲裁器配置为对所述刷新请求进行仲裁,并且响应于所述刷新请求赢得仲裁,将所述刷新请求发送给所述动态随机存取存储器,以用于实现所述动态随机存取存储器的刷新。For example, the memory controller provided by an embodiment of the present disclosure further includes the arbiter, wherein the refresh control module is connected to the arbiter, the arbiter is connected to the dynamic random access memory, and the arbiter The processor is configured to arbitrate the refresh request, and in response to winning the arbitration for the refresh request, send the refresh request to the dynamic random access memory for implementing refresh of the dynamic random access memory.
例如,在本公开一实施例提供的内存控制器中,所述刷新控制模块还包括多个阻挡地址生成单元;所述多个阻挡地址生成单元与所述多个存储队列一一对应,所述阻挡地址生成单元配置为基于所述预测地址以及所述预测地址对应的存储队列的状态机的状态,生成阻挡地址,并将所述阻挡地址发送给所述仲裁器;所述仲裁器还配置为对所述阻挡地址对应的非刷新命令进行阻挡。For example, in the memory controller provided by an embodiment of the present disclosure, the refresh control module further includes a plurality of blocking address generation units; the plurality of blocking address generation units correspond to the plurality of storage queues one by one, and the The blocking address generation unit is configured to generate a blocking address based on the predicted address and the state of the state machine of the storage queue corresponding to the predicted address, and send the blocking address to the arbiter; the arbiter is further configured to Block the non-refresh command corresponding to the blocked address.
例如,在本公开一实施例提供的内存控制器中,所述刷新控制模块还包括刷新间隔计数器、多个推迟刷新计数器和多个刷新地址记录单元;所述刷新间隔计数器配置为循环计数,并且当计数值达到计数设定值时产生脉冲并清空,以及将所述脉冲发送给所述多个推迟刷新计数器;所述多个推迟刷新计数器与所述多个存储队列一一对应,所述推迟刷新计数器配置为基于接收到的脉冲对对应的存储队列的被推迟的刷新请求进行计数,所述状态机基于对应的推迟刷新计数器的数值确定状态;所述多个刷新地址记录单元与所述多个存储队列一一对应,所述刷新地址记录单元配置为对已刷新的区块的地址进行记录。For example, in the memory controller provided by an embodiment of the present disclosure, the refresh control module further includes a refresh interval counter, a plurality of postponed refresh counters and a plurality of refresh address recording units; the refresh interval counter is configured to count in a loop, and When the count value reaches the count setting value, a pulse is generated and cleared, and the pulse is sent to the multiple delayed refresh counters; the multiple delayed refresh counters correspond to the multiple storage queues in a one-to-one manner, and the delayed refresh counters are in one-to-one correspondence with the multiple storage queues. The refresh counter is configured to count postponed refresh requests of the corresponding storage queue based on the received pulses, and the state machine determines the state based on the value of the corresponding postponed refresh counter; the plurality of refresh address recording units are related to the plurality of refresh address recording units. Each storage queue has a one-to-one correspondence, and the refresh address recording unit is configured to record the address of the refreshed block.
本公开至少一个实施例还提供一种电子装置,包括如本公开任一实施例所述的内存控制器。At least one embodiment of the present disclosure further provides an electronic device, including the memory controller according to any embodiment of the present disclosure.
例如,本公开一实施例提供的电子装置还包括所述动态随机存取存储器。For example, an electronic device provided by an embodiment of the present disclosure further includes the dynamic random access memory.
附图说明Description of drawings
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings of the embodiments will be briefly introduced below. Obviously, the drawings in the following description only relate to some embodiments of the present disclosure and do not limit the present disclosure. .
图1为本公开一些实施例提供的一种用于动态随机存取存储器的内存控制器的结构示意图;Figure 1 is a schematic structural diagram of a memory controller for dynamic random access memory provided by some embodiments of the present disclosure;
图2为本公开一些实施例提供的一种用于动态随机存取存储器的内存控制器中刷新控制模块的结构示意图;Figure 2 is a schematic structural diagram of a refresh control module in a memory controller for dynamic random access memory provided by some embodiments of the present disclosure;
图3为本公开一些实施例提供的一种用于动态随机存取存储器的刷新方法的流程示意图;Figure 3 is a schematic flowchart of a refreshing method for dynamic random access memory provided by some embodiments of the present disclosure;
图4为本公开一些实施例提供的一种用于动态随机存取存储器的刷新方法中的状态机的示意图;Figure 4 is a schematic diagram of a state machine used in a refresh method of a dynamic random access memory provided by some embodiments of the present disclosure;
图5为本公开一些实施例提供的另一种用于动态随机存取存储器的刷新方法的流程示意图;以及Figure 5 is a schematic flowchart of another refresh method for dynamic random access memory provided by some embodiments of the present disclosure; and
图6为本公开一些实施例提供的一种电子装置的示意框图。FIG. 6 is a schematic block diagram of an electronic device provided by some embodiments of the present disclosure.
具体实施方式Detailed ways
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。In order to make the purpose, technical solutions and advantages of the embodiments of the present disclosure more clear, the technical solutions of the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings of the embodiments of the present disclosure. Obviously, the described embodiments are some, but not all, of the embodiments of the present disclosure. Based on the described embodiments of the present disclosure, all other embodiments obtained by those of ordinary skill in the art without creative efforts fall within the scope of protection of the present disclosure.
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。Unless otherwise defined, technical terms or scientific terms used in this disclosure shall have the usual meaning understood by a person with ordinary skill in the art to which this disclosure belongs. "First", "second" and similar words used in this disclosure do not indicate any order, quantity or importance, but are only used to distinguish different components. Likewise, similar words such as "a", "an" or "the" do not indicate a quantitative limitation but rather indicate the presence of at least one. Words such as "include" or "comprising" mean that the elements or things appearing before the word include the elements or things listed after the word and their equivalents, without excluding other elements or things. Words such as "connected" or "connected" are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. "Up", "down", "left", "right", etc. are only used to express relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.
DRAM是易失性存储器,不能持久地保持数据。这是由于DRAM通过电容来存储数据,随着时间推移,电容上的电荷会逐渐流失,从而导致数据的丢失。因此,为了保持数据,需要周期性地对DRAM进行刷新(Refresh),也即是,将电容里的数据读出并重新写入,以将电容上的电荷恢复到原有水平,从而达到保持数据的目的。DRAM is volatile memory and cannot hold data permanently. This is because DRAM uses capacitors to store data. Over time, the charge on the capacitors will gradually drain away, resulting in data loss. Therefore, in order to maintain data, DRAM needs to be refreshed periodically (Refresh), that is, the data in the capacitor is read out and rewritten to restore the charge on the capacitor to its original level, thereby maintaining the data. the goal of.
然而,在刷新的过程中,DRAM不能够进行正常的读写访问,也不能接收其他任何命令,这给内存带宽带来了负面的影响。在第五代双倍数据率动态随机存取存储器(DoubleData Rate Dynamic Random Access Memory,DDR5 DRAM)之前,刷新命令是以队列(Rank)为单位进行的,该类型的刷新命令称为REFab(all bank refresh)。在通常的刷新方案中,大多数是通过对刷新分级来实现刷新调度。当刷新积累到接近可以推迟的上限时间时,再对DRAM进行紧急刷新。紧急刷新发生时,对DRAM性能的影响非常明显。However, during the refresh process, DRAM cannot perform normal read and write access, nor can it receive any other commands, which has a negative impact on memory bandwidth. Before the fifth generation of Double Data Rate Dynamic Random Access Memory (DDR5 DRAM), refresh commands were performed in units of queues (Rank). This type of refresh command was called REFab (all bank refresh). In common refresh schemes, most refresh scheduling is implemented by grading refreshes. When the refresh accumulation is close to the upper limit time that can be postponed, the DRAM is urgently refreshed. When an emergency refresh occurs, the impact on DRAM performance is very obvious.
从DDR5 DRAM开始,可以采用更细粒度的刷新命令,该刷新命令是以区块(Bank)为单位进行的,该类型的刷新命令称为REFsb(same bank refresh),该刷新命令会使一个存储队列内具有某一相同区块地址的所有区块执行刷新。Starting from DDR5 DRAM, a more fine-grained refresh command can be used. This refresh command is performed in units of banks. This type of refresh command is called REFsb (same bank refresh). This refresh command will cause a storage All blocks with the same block address in the queue are refreshed.
然而,当前的刷新方案中,难以兼顾DRAM的刷新和读写访问,刷新对DRAM的性能影响较大,使得DRAM的带宽利用率较低。However, in the current refresh scheme, it is difficult to take into account DRAM refresh and read and write access. Refresh has a greater impact on DRAM performance, resulting in lower bandwidth utilization of DRAM.
本公开至少一个实施例提供一种用于动态随机存取存储器的刷新方法及内存控制器、电子装置。该方法具有多层次优先级和仲裁逻辑,可以兼顾动态随机存取存储器的刷新和读写访问,在保证刷新及时完成的基础上,尽可能地保证读写访问的连续性,降低刷新对动态随机存取存储器性能的影响,改善内存访问的带宽,提高带宽利用率。At least one embodiment of the present disclosure provides a refresh method for dynamic random access memory, a memory controller, and an electronic device. This method has multi-level priority and arbitration logic, which can take into account the refresh and read-write access of the dynamic random access memory. On the basis of ensuring the timely completion of the refresh, it ensures the continuity of the read-write access as much as possible and reduces the impact of the refresh on the dynamic random access memory. The impact of accessing memory performance, improving the bandwidth of memory access, and improving bandwidth utilization.
下面,将参考附图详细地说明本公开的实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. It should be noted that the same reference numbers in different figures will be used to refer to the same elements that have been described.
本公开至少一个实施例提供一种用于动态随机存取存储器的刷新方法,该动态随机存取存储器包括多个存储队列,每个存储队列包括多个区块组,每个区块组包括多个区块。该方法包括:确定多个存储队列对应的多个状态机的状态,多个存储队列与多个状态机一一对应;确定多个存储队列对应的多个预测地址;基于多个状态机的状态以及多个预测地址,生成刷新请求,并将刷新请求发送给与动态随机存取存储器连接的仲裁器,以使得仲裁器对刷新请求进行仲裁,并且响应于刷新请求赢得仲裁,将刷新请求发送给动态随机存取存储器,以用于实现动态随机存取存储器的刷新。At least one embodiment of the present disclosure provides a refreshing method for a dynamic random access memory. The dynamic random access memory includes a plurality of storage queues, each storage queue includes a plurality of block groups, and each block group includes a plurality of block groups. blocks. The method includes: determining the status of multiple state machines corresponding to multiple storage queues, and multiple storage queues corresponding to multiple state machines; determining multiple prediction addresses corresponding to the multiple storage queues; based on the status of multiple state machines and a plurality of predicted addresses, generate a refresh request, and send the refresh request to an arbiter connected to the dynamic random access memory, so that the arbiter arbitrates the refresh request, and in response to the refresh request winning the arbitration, sends the refresh request to Dynamic random access memory is used to realize the refresh of dynamic random access memory.
图1为本公开一些实施例提供的一种用于动态随机存取存储器的内存控制器的结构示意图。例如,该内存控制器100适用于对DDR5 DRAM进行控制。需要说明的是,图1中仅示出了内存控制器100中与刷新操作相关的功能模块,其他功能模块可根据需求设置,本公开的实施例对此不作限制。FIG. 1 is a schematic structural diagram of a memory controller for a dynamic random access memory provided by some embodiments of the present disclosure. For example, the memory controller 100 is suitable for controlling DDR5 DRAM. It should be noted that FIG. 1 only shows the functional modules related to the refresh operation in the memory controller 100. Other functional modules can be set according to requirements, and the embodiments of the present disclosure do not limit this.
例如,需要进行刷新的DRAM包括多个存储队列(Rank),每个存储队列包括多个区块组,每个区块组包括多个区块(Bank)。例如,在一些示例中,DRAM包括32或64个存储队列,每个存储队列包括4或8个区块组,每个区块组包括2或4个区块。关于DRAM的具体结构可参考常规设计,此处不再详述。For example, the DRAM that needs to be refreshed includes multiple storage queues (Ranks), each storage queue includes multiple block groups, and each block group includes multiple blocks (Banks). For example, in some examples, the DRAM includes 32 or 64 storage queues, each storage queue includes 4 or 8 block groups, and each block group includes 2 or 4 blocks. Regarding the specific structure of DRAM, please refer to conventional design and will not be described in detail here.
例如,如图1所示,内存控制器100分别与总线接口和DDR5物理层连接,既可以接收总线接口传输的来自中央处理器(Central Processing Unit,CPU)核心的访存命令来对DRAM进行访问(例如读写数据),又可以控制DRAM进行刷新。例如,内存控制器100通过DDR物理层(DDR PHY Interface,DFI)接口与DDR5物理层连接,例如还可以进一步通过高级外围总线(Advanced Peripheral Bus,APB)接口与DDR5物理层连接,进而实现内存控制器100与DRAM的连接。由此,内存控制器100可以对控制寄存器进行配置、对DRAM进行存储访问,以及发布如刷新、校准等命令。例如,在一些示例中,内存控制器100包含有一个32位宽度不含纠错位(ECC位)的DRAM通道。For example, as shown in Figure 1, the memory controller 100 is connected to the bus interface and the DDR5 physical layer respectively, and can receive memory access commands from the central processing unit (Central Processing Unit, CPU) core transmitted by the bus interface to access the DRAM. (such as reading and writing data), and can control DRAM to refresh. For example, the memory controller 100 is connected to the DDR5 physical layer through a DDR PHY Interface (DFI) interface, and may further be connected to the DDR5 physical layer through an Advanced Peripheral Bus (APB) interface to implement memory control. The connection between the processor 100 and the DRAM. Thus, the memory controller 100 can configure control registers, perform storage access to DRAM, and issue commands such as refresh and calibration. For example, in some examples, the memory controller 100 includes a 32-bit wide DRAM channel without error correction bits (ECC bits).
例如,该内存控制器100包括地址解码器101、命令队列102、数据缓存103、时序检查器104、区块状态记录表105、仲裁器106、刷新控制模块107、出发队列108和预先预充电模块109。For example, the memory controller 100 includes an address decoder 101, a command queue 102, a data cache 103, a timing checker 104, a block status record table 105, an arbiter 106, a refresh control module 107, a start queue 108 and a pre-charge module. 109.
地址解码器101配置为将接收到的访存请求的物理地址按照配置寄存器指定的地址映射方式,转换成DDR5 DRAM的标准地址格式。命令队列102配置为存储收到的访存命令,同时根据仲裁器106提供的信息对存储的访存请求信息实时更新。例如,若接收到写请求,对应的数据会存储在数据缓存103中。除了存储访存信息外,命令队列102也提供一些统计结果以供其他模块使用。例如,命令队列102需要向刷新控制模块107提供如下两种统计信息:(1)对应区块地址的访存命令统计,以告知刷新控制模块107对应区块是否在命令队列102中存在访存请求;(2)对应区块地址是否存在一种类型的访存命令,这种类型的访存命令是指已经有行选通命令发出,但是读写命令还没发出,也即是,读写未完成的命令。The address decoder 101 is configured to convert the physical address of the received memory access request into the standard address format of DDR5 DRAM according to the address mapping method specified by the configuration register. The command queue 102 is configured to store received memory access commands, and at the same time, update the stored memory access request information in real time according to the information provided by the arbiter 106 . For example, if a write request is received, the corresponding data will be stored in the data cache 103 . In addition to storing memory access information, the command queue 102 also provides some statistical results for use by other modules. For example, the command queue 102 needs to provide the following two kinds of statistical information to the refresh control module 107: (1) Statistics of memory access commands corresponding to the block address, to inform the refresh control module 107 whether there is a memory access request for the corresponding block in the command queue 102 ; (2) Whether there is a type of memory access command corresponding to the block address. This type of memory access command means that a row strobe command has been issued, but the read and write commands have not yet been issued, that is, the read and write have not yet been issued. Completed command.
时序检查器104记录、检测访存中用到的各种时序参数,并为仲裁器106和刷新控制模块107提供必要的时序信息,以保证DRAM访存操作的正确性。区块状态记录表105中记录了DRAM各个区块的地址以及状态,并根据仲裁器106的仲裁结果进行更新。同时,每当有访存请求到达时,区块状态记录表105也会为命令队列102提供该访存请求的初始区块状态信息。The timing checker 104 records and detects various timing parameters used in memory access, and provides necessary timing information to the arbiter 106 and the refresh control module 107 to ensure the correctness of the DRAM memory access operation. The block status record table 105 records the address and status of each DRAM block, and is updated according to the arbitration result of the arbiter 106 . At the same time, whenever a memory access request arrives, the block status record table 105 will also provide the command queue 102 with the initial block status information of the memory access request.
仲裁器106配置为接收其他模块的各种请求,按照既定规则对请求进行筛选。当有命令赢得仲裁时,仲裁器106将赢得仲裁的命令发往出发队列108,同时,仲裁器106还会向各个模块提供反馈信号,以帮助这些模块进行信息更新。例如,仲裁器106还配置为按照刷新控制模块107提供的阻挡地址对与该阻挡地址对应的请求(例如读写请求等)进行阻挡。The arbiter 106 is configured to receive various requests from other modules and filter the requests according to established rules. When a command wins arbitration, the arbiter 106 sends the winning command to the departure queue 108. At the same time, the arbiter 106 also provides feedback signals to each module to help these modules update information. For example, the arbiter 106 is further configured to block requests (eg, read and write requests, etc.) corresponding to the blocking address provided by the refresh control module 107 .
刷新控制模块107配置为根据配置寄存器的配置以及命令队列102、时序检查器104和区块状态记录表105提供的信息,推迟或生成刷新请求,并提供相关的优先级指示。由于执行REFsb要求对应地址的区块处于空闲状态,因此刷新控制模块107还配置为根据需要生成同区块地址预充电(same bank pre-charge,PCHGsb)请求,该同区块地址预充电请求会使一个存储队列内具有某一相同区块地址的所有区块执行预充电。为了保证刷新和预充电能够正常有序地进行,同时也为了兼顾读写访问,刷新控制模块107还提供阻挡地址,并告知仲裁器106按照阻挡地址对与阻挡地址对应的其他命令进行阻挡。The refresh control module 107 is configured to defer or generate refresh requests according to the configuration of the configuration register and information provided by the command queue 102, the timing checker 104 and the block status record table 105, and provide relevant priority indications. Since executing REFsb requires the block of the corresponding address to be in an idle state, the refresh control module 107 is also configured to generate a same bank address pre-charge (PCHGsb) request as needed. The same bank address pre-charge request will All blocks with the same block address in a storage queue are precharged. In order to ensure that refresh and precharge can be performed normally and orderly, and to take into account read and write access, the refresh control module 107 also provides a blocking address and tells the arbiter 106 to block other commands corresponding to the blocking address according to the blocking address.
出发队列108配置为将来自仲裁器106的请求按照规则发送给DFI接口,并最终到达DRAM,并且接收从DRAM读回的数据,并将数据返回至总线接口,以使该数据到达CPU核心。例如,当来自仲裁器106的请求为写请求时,出发队列108还将从数据缓存103得到的数据按照规则发送给DFI接口,并最终到达DRAM,以实现数据写入。The departure queue 108 is configured to send the request from the arbiter 106 to the DFI interface according to the rules and eventually reach the DRAM, and receive the data read back from the DRAM and return the data to the bus interface so that the data reaches the CPU core. For example, when the request from the arbiter 106 is a write request, the departure queue 108 will also send the data obtained from the data cache 103 to the DFI interface according to the rules, and finally reaches the DRAM to implement data writing.
预先预充电模块109配置为监测区块访问历史,当某个区块在一定时间内没有被读写访问时,预先预充电模块109会产生预充电命令将该区块关闭。The pre-charging module 109 is configured to monitor the block access history. When a certain block has not been read or written within a certain period of time, the pre-charging module 109 will generate a pre-charging command to close the block.
图2为本公开一些实施例提供的一种用于动态随机存取存储器的内存控制器中刷新控制模块的结构示意图。例如,如图2所示,刷新控制模块107包括刷新间隔计数器201、多个推迟刷新计数器202、多个状态机203、请求生成单元204、多个地址预测单元205、多个阻挡地址生成单元206以及多个刷新地址记录单元207。FIG. 2 is a schematic structural diagram of a refresh control module in a memory controller for a dynamic random access memory provided by some embodiments of the present disclosure. For example, as shown in Figure 2, the refresh control module 107 includes a refresh interval counter 201, a plurality of postponed refresh counters 202, a plurality of state machines 203, a request generation unit 204, a plurality of address prediction units 205, and a plurality of blocking address generation units 206. and multiple refresh address recording units 207.
多个状态机203与多个存储队列一一对应,也即是,每个存储队列单独分配有一个状态机203。状态机203配置为在多个状态之间切换。多个地址预测单元205与多个存储队列一一对应,也即是,每个存储队列分配有一个地址预测单元205。地址预测单元205配置为确定对应的存储队列的预测地址。请求生成单元204配置为基于多个状态机203的状态以及预测地址,生成刷新请求,并将刷新请求发送给与DRAM连接的仲裁器106。Multiple state machines 203 correspond to multiple storage queues in a one-to-one manner, that is, each storage queue is assigned a separate state machine 203. State machine 203 is configured to switch between multiple states. Multiple address prediction units 205 correspond to multiple storage queues in a one-to-one manner, that is, each storage queue is assigned one address prediction unit 205. The address prediction unit 205 is configured to determine the predicted address of the corresponding storage queue. The request generation unit 204 is configured to generate a refresh request based on the states of the plurality of state machines 203 and the predicted addresses, and send the refresh request to the arbiter 106 connected to the DRAM.
多个阻挡地址生成单元206与多个存储队列一一对应,也即是,每个存储队列单独分配有一个阻挡地址生成单元206。阻挡地址生成单元206配置为基于预测地址以及预测地址对应的存储队列的状态机203的状态,生成阻挡地址,并将阻挡地址发送给仲裁器106。Multiple blocking address generating units 206 correspond to multiple storage queues in a one-to-one manner, that is, each storage queue is independently assigned a blocking address generating unit 206. The blocking address generation unit 206 is configured to generate a blocking address based on the predicted address and the state of the state machine 203 of the storage queue corresponding to the predicted address, and send the blocking address to the arbiter 106 .
刷新间隔计数器201配置为循环计数,并且当计数值达到计数设定值时产生脉冲并清空,以及将脉冲发送给多个推迟刷新计数器202。多个推迟刷新计数器202与多个存储队列一一对应,也即是,每个存储队列单独分配有一个推迟刷新计数器202。推迟刷新计数器202配置为基于接收到的脉冲对对应的存储队列的被推迟的刷新请求进行计数,状态机203基于对应的推迟刷新计数器202的数值确定状态。多个刷新地址记录单元207与多个存储队列一一对应,也即是,每个存储队列单独分配有一个刷新地址记录单元207。刷新地址记录单元207配置为对已刷新的区块的地址进行记录。The refresh interval counter 201 is configured to count cyclically, and when the count value reaches a count setting value, it generates a pulse and clears it, and sends pulses to multiple delayed refresh counters 202 . Multiple deferred refresh counters 202 correspond to multiple storage queues in a one-to-one manner, that is, each storage queue is independently assigned a deferred refresh counter 202. The deferred refresh counter 202 is configured to count deferred refresh requests of the corresponding storage queue based on the received pulses, and the state machine 203 determines the state based on the value of the corresponding deferred refresh counter 202 . Multiple refresh address recording units 207 correspond to multiple storage queues in a one-to-one manner, that is, each storage queue is independently assigned a refresh address recording unit 207. The refresh address recording unit 207 is configured to record the address of the refreshed block.
图3为本公开一些实施例提供的一种用于动态随机存取存储器的刷新方法的流程示意图。例如,在一些示例中,如图3所示,该方法包括如下操作。FIG. 3 is a schematic flowchart of a refreshing method for dynamic random access memory provided by some embodiments of the present disclosure. For example, in some examples, as shown in Figure 3, the method includes the following operations.
步骤S10:确定多个存储队列对应的多个状态机的状态,其中,多个存储队列与多个状态机一一对应;Step S10: Determine the states of multiple state machines corresponding to multiple storage queues, where multiple storage queues correspond to multiple state machines one-to-one;
步骤S20:确定多个存储队列对应的多个预测地址;Step S20: Determine multiple prediction addresses corresponding to multiple storage queues;
步骤S30:基于多个状态机的状态以及多个预测地址,生成刷新请求,并将刷新请求发送给与动态随机存取存储器连接的仲裁器,以使得仲裁器对刷新请求进行仲裁,并且响应于刷新请求赢得仲裁,将刷新请求发送给动态随机存取存储器,以用于实现动态随机存取存储器的刷新。Step S30: Generate a refresh request based on the states of multiple state machines and multiple predicted addresses, and send the refresh request to the arbiter connected to the dynamic random access memory, so that the arbiter arbitrates the refresh request and responds to The refresh request wins arbitration, and the refresh request is sent to the dynamic random access memory to implement refresh of the dynamic random access memory.
下面结合图2所示的刷新控制模块107对上述各个步骤进行示例性说明。Each of the above steps will be exemplarily explained below with reference to the refresh control module 107 shown in FIG. 2 .
例如,在步骤S10中,多个存储队列与多个状态机203一一对应,也即是,每个存储队列单独分配有一个状态机203,多个状态机203的状态可以相同或不同。For example, in step S10, multiple storage queues correspond to multiple state machines 203 one-to-one, that is, each storage queue is independently assigned a state machine 203, and the states of the multiple state machines 203 may be the same or different.
如图4所示,状态机203包括4种状态:第一优先级状态302、第二优先级状态303、冲刷状态304和自刷新状态301。例如,第一优先级状态302的优先级高于第二优先级状态303的优先级,也即是,第一优先级状态302为高优先级状态,第二优先级状态303为低优先级状态。自刷新状态301是DRAM的一种用于休眠模式或低功耗模式下的状态,在自刷新状态301下,DRAM会根据内部时钟周期性地刷新以保持数据,此状态下DRAM不接收来自外部的任何命令。冲刷状态304用于为进入自刷新状态301做准备,在冲刷状态304下,命令队列102会进行清空(也即全部发出),除此之外,高优先级的刷新请求也会进行清空(也即全部发出),低优先级的刷新请求会根据需求选择性地进行清空(也即选择是否全部发出)。例如,如图4所示,状态机203可以在4种状态之间按照图中带箭头线条所表示的方向进行跳转和切换,以实现状态的改变。As shown in FIG. 4 , the state machine 203 includes four states: a first priority state 302 , a second priority state 303 , a flush state 304 and a self-refresh state 301 . For example, the priority of the first priority state 302 is higher than the priority of the second priority state 303. That is, the first priority state 302 is a high priority state and the second priority state 303 is a low priority state. . Self-refresh state 301 is a state of DRAM used in sleep mode or low-power mode. In self-refresh state 301, DRAM will refresh periodically according to the internal clock to maintain data. In this state, DRAM does not receive data from the outside. any command. The flush state 304 is used to prepare for entering the self-refresh state 301. In the flush state 304, the command queue 102 will be cleared (that is, all issued). In addition, high-priority refresh requests will also be cleared (also That is, all are issued), low-priority refresh requests will be cleared selectively according to needs (that is, whether to all be issued). For example, as shown in Figure 4, the state machine 203 can jump and switch between four states in the direction indicated by the arrowed lines in the figure to achieve state changes.
例如,确定多个存储队列对应的多个状态机203的状态可以包括:对于每个状态机203,根据推迟刷新计数器202的数值、自刷新进入请求以及自刷新退出命令,确定状态机203的状态。For example, determining the status of multiple state machines 203 corresponding to multiple storage queues may include: for each state machine 203, determining the status of the state machine 203 based on the value of the delayed refresh counter 202, the self-refresh entry request, and the self-refresh exit command. .
进一步地,对于每个状态机203,根据推迟刷新计数器202的数值、自刷新进入请求以及自刷新退出命令,确定状态机203的状态,可以包括如下操作:响应于推迟刷新计数器202的数值大于或等于阈值,使状态机203进入第一优先级状态302;响应于推迟刷新计数器202的数值小于阈值,使状态机203进入第二优先级状态303;响应于自刷新进入请求,根据状态机203的当前状态,使状态机203立即或延迟进入冲刷状态304;响应于与冲刷状态304对应的操作完成,使状态机203进入自刷新状态301;响应于自刷新退出命令,根据推迟刷新计数器202的数值,使状态机203进入第一优先级状态302或第二优先级状态303。Further, for each state machine 203, determining the state of the state machine 203 according to the value of the delayed refresh counter 202, the self-refresh entry request and the self-refresh exit command may include the following operations: in response to the value of the delayed refresh counter 202 being greater than or is equal to the threshold, causing the state machine 203 to enter the first priority state 302; in response to the value of the delayed refresh counter 202 being less than the threshold, causing the state machine 203 to enter the second priority state 303; in response to the self-refresh entry request, according to the state machine 203 In the current state, the state machine 203 enters the flush state 304 immediately or delayed; in response to the completion of the operation corresponding to the flush state 304, the state machine 203 enters the self-refresh state 301; in response to the self-refresh exit command, the value of the delayed refresh counter 202 is , causing the state machine 203 to enter the first priority state 302 or the second priority state 303.
例如,上述阈值可以根据需求设置并由配置寄存器指定。通常,DRAM需要按照刷新平均时间间隔(Trefi)进行周期性刷新,在正常刷新模式下最多可以被推迟4次,在细粒度刷新模式下最多可以被推迟8次。因此,上述阈值可以设置为小于8的数值,例如为5、6或7等,这可以根据实际需求而定,本公开的实施例对此不作限制。For example, the above thresholds can be set according to requirements and specified by configuration registers. Generally, DRAM needs to be refreshed periodically according to the average refresh time interval (Trefi), which can be postponed up to 4 times in normal refresh mode and up to 8 times in fine-grained refresh mode. Therefore, the above threshold can be set to a value less than 8, such as 5, 6, or 7, etc., which can be determined according to actual needs, and embodiments of the present disclosure do not limit this.
状态机203在第一优先级状态302和第二优先级状态303之间进行状态转换的主要依据是推迟刷新计数器202的数值。当推迟刷新计数器202的数值大于或等于阈值时,状态机203进入第一优先级状态302(也即进入高优先级状态);当推迟刷新计数器202的数值小于阈值时,状态机203进入第二优先级状态303(也即进入低优先级状态)。The main basis for the state machine 203 to perform state transition between the first priority state 302 and the second priority state 303 is the value of the delayed refresh counter 202 . When the value of the delayed refresh counter 202 is greater than or equal to the threshold, the state machine 203 enters the first priority state 302 (that is, enters the high priority state); when the value of the delayed refresh counter 202 is less than the threshold, the state machine 203 enters the second Priority state 303 (that is, entering a low priority state).
例如,根据推迟刷新计数器202的数值,第一优先级状态302划分为第一子状态和第二子状态,第一子状态的优先级高于第二子状态的优先级。例如,第一子状态为推迟刷新计数器202的数值达到最大值,第二子状态为推迟刷新计数器202的数值小于最大值并且大于或等于阈值。例如,最大值可以根据实际需求设置,例如可以设置为8或其他适用的数值,本公开的实施例对此不作限制。For example, according to the value of the delayed refresh counter 202, the first priority state 302 is divided into a first sub-state and a second sub-state, and the priority of the first sub-state is higher than the priority of the second sub-state. For example, the first substate is when the value of the delayed refresh counter 202 reaches the maximum value, and the second substate is when the value of the delayed refresh counter 202 is less than the maximum value and greater than or equal to the threshold. For example, the maximum value can be set according to actual requirements, for example, it can be set to 8 or other applicable values, and the embodiments of the present disclosure do not limit this.
例如,刷新间隔计数器201在内存控制器100和DRAM完成初始化后开始工作。刷新间隔计数器201循环计数,并且当计数值达到计数设定值(该计数设定值例如为Trefi)时产生脉冲并清空,将产生的脉冲发送给推迟刷新计数器202。每当刷新间隔计数器201产生脉冲时,所有推迟刷新计数器202均加1计数一次。推迟刷新计数器202的数值代表当前被推迟的刷新请求的数量,推迟刷新计数器202的数值为0时代表DRAM不需要刷新。For example, the refresh interval counter 201 starts working after the memory controller 100 and the DRAM complete initialization. The refresh interval counter 201 counts cyclically, and when the count value reaches a count setting value (the count setting value is Trefi, for example), a pulse is generated and cleared, and the generated pulse is sent to the postponed refresh counter 202 . Whenever the refresh interval counter 201 generates a pulse, all delayed refresh counters 202 are incremented by 1 and counted once. The value of the delayed refresh counter 202 represents the number of currently postponed refresh requests. When the value of the delayed refresh counter 202 is 0, it means that the DRAM does not need to be refreshed.
当刷新控制模块107接收到自刷新进入请求时,根据状态机203的当前状态,使状态机203立即或延迟进入冲刷状态304。例如,响应于自刷新进入请求,在状态机203处于第一优先级状态302的情形,使状态机203保持第一优先级状态302直至推迟刷新计数器202的数值小于阈值再进入冲刷状态304,也即是,延迟进入冲刷状态304。响应于自刷新进入请求,在状态机203处于第二优先级状态303且刷新地址记录单元207中无记录地址(没有记录任何地址)的情形,使状态机203进入冲刷状态304,也即是,立即进入冲刷状态304。响应于自刷新进入请求,在状态机203处于第二优先级状态303且刷新地址记录单元207中存在记录地址的情形,使状态机203保持第二优先级状态303直至刷新地址记录单元207中无记录地址(也即,完成对所有区块地址刷新一次后)再进入冲刷状态304。When the refresh control module 107 receives the self-refresh entry request, it causes the state machine 203 to enter the flush state 304 immediately or delayed according to the current state of the state machine 203 . For example, in response to the self-refresh entry request, when the state machine 203 is in the first priority state 302, the state machine 203 is maintained in the first priority state 302 until the value of the delayed refresh counter 202 is less than the threshold and then enters the flush state 304, also That is, entering flush state 304 is delayed. In response to the self-refresh entry request, when the state machine 203 is in the second priority state 303 and there is no recorded address (no address is recorded) in the refresh address recording unit 207, the state machine 203 is entered into the flush state 304, that is, Immediately enter flush state 304. In response to the self-refresh entry request, when the state machine 203 is in the second priority state 303 and there is a recorded address in the refresh address recording unit 207, the state machine 203 is maintained in the second priority state 303 until there is no record address in the refresh address recording unit 207. Record the address (that is, after completing the refresh of all block addresses) and then enter the flush state 304.
例如,在冲刷状态304下,命令队列102会进行清空(也即全部发出),高优先级的刷新命令也会进行清空(也即全部发出),并且,刷新控制模块107将根据配置寄存器的指示选择是否将剩余积累的低优先级的刷新请求全部发出。当与冲刷状态304对应的操作完成后,也即是,上述需要发出的请求均已发出后,状态机203进入自刷新状态301。For example, in the flushing state 304, the command queue 102 will be cleared (that is, all issued), high-priority refresh commands will also be cleared (that is, all issued), and the refresh control module 107 will be based on the instructions of the configuration register. Select whether to issue all remaining accumulated low-priority refresh requests. After the operation corresponding to the flush state 304 is completed, that is, after all the above-mentioned requests that need to be issued have been issued, the state machine 203 enters the self-refresh state 301.
在接收到自刷新退出命令时,若推迟刷新计数器202的数值大于或等于阈值,则使状态机203进入第一优先级状态302,若推迟刷新计数器202的数值小于阈值,则使状态机203进入第二优先级状态303。通过采用前述的状态转换机制,保证了在进入自刷新状态301之前所有区块都收到了REFsb请求(也即所有区块都刷新了一次),因此,在退出自刷新状态301后,状态机203将跳过发送补偿刷新的过程,直接从自刷新状态301跳转至第一优先级状态302或者第二优先级状态303。由于补偿刷新所需的REFsb数量总是大于或等于进入自刷新状态301前距离达成所有区块均收到REFsb这个条件所需的REFsb数量,因此通过上述方式可以降低进出自刷新状态301的整体过程的额外开销。当然,本公开的实施例不限于此,在其他一些示例中,也可以在进入自刷新状态301前不做任何限制,在退出自刷新状态301后进行补偿刷新。When receiving the self-refresh exit command, if the value of the delayed refresh counter 202 is greater than or equal to the threshold, the state machine 203 is made to enter the first priority state 302. If the value of the delayed refresh counter 202 is less than the threshold, the state machine 203 is made to enter the self-refresh exit command. Second priority status 303. By using the aforementioned state transition mechanism, it is ensured that all blocks have received the REFsb request before entering the self-refresh state 301 (that is, all blocks have been refreshed once). Therefore, after exiting the self-refresh state 301, the state machine 203 The process of sending the compensation refresh will be skipped and directly jump from the self-refresh state 301 to the first priority state 302 or the second priority state 303. Since the number of REFsb required for compensation refresh is always greater than or equal to the number of REFsb required to achieve the condition that all blocks receive REFsb before entering the self-refresh state 301, the overall process of entering and exiting the self-refresh state 301 can be reduced through the above method. of additional overhead. Of course, the embodiments of the present disclosure are not limited to this. In other examples, no restrictions are placed before entering the self-refresh state 301, and compensation refresh can be performed after exiting the self-refresh state 301.
例如,在步骤S20中,多个地址预测单元205分别确定多个存储队列对应的多个预测地址,也即是,多个地址预测单元205与多个存储队列一一对应,每个地址预测单元205确定对应的存储队列所对应的预测地址。例如,预测地址可以是某个区块的地址,表示地址预测单元205所预测的当前存储队列的下一个REFsb请求的区块地址。地址预测单元205将所确定的预测地址提供给请求生成单元204和阻挡地址生成单元206。需要说明的是,每个地址预测单元205都会确定预测地址,该预测地址可以是某个区块的地址,也可以为空。For example, in step S20, the multiple address prediction units 205 respectively determine multiple predicted addresses corresponding to the multiple storage queues. That is, the multiple address prediction units 205 correspond to the multiple storage queues one-to-one. Each address prediction unit 205 determines multiple predicted addresses corresponding to the multiple storage queues. 205 Determine the predicted address corresponding to the corresponding storage queue. For example, the predicted address may be the address of a certain block, indicating the block address of the next REFsb request of the current storage queue predicted by the address prediction unit 205. The address prediction unit 205 supplies the determined predicted address to the request generation unit 204 and the blocking address generation unit 206 . It should be noted that each address prediction unit 205 determines a predicted address, which may be the address of a certain block, or may be empty.
例如,确定多个存储队列对应的多个预测地址包括:对于每个存储队列,基于区块信息以及存储队列对应的状态机203的状态,确定预测地址。For example, determining multiple predicted addresses corresponding to multiple storage queues includes: for each storage queue, determining the predicted address based on block information and the state of the state machine 203 corresponding to the storage queue.
进一步地,对于每个存储队列,基于区块信息以及存储队列对应的状态机203的状态,确定预测地址,可以包括如下操作:响应于状态机203处于第一优先级状态302且对应的存储队列中无正在执行的刷新任务,按照从第一级别至第N级别的优先级顺序将满足要求的区块的地址确定为预测地址;响应于状态机203处于第二优先级状态303且对应的存储队列中无正在执行的刷新任务,按照从第一级别至第M级别的优先级顺序将满足要求的区块的地址确定为预测地址;响应于状态机203处于第一优先级状态302且对应的存储队列中有正在执行的刷新任务,确定预测地址为空;响应于状态机203处于第二优先级状态303,并且,不存在满足要求的区块或对应的存储队列中有正在执行的刷新任务,确定预测地址为空。例如,将区块划分为N个级别,N>M>1且N和M均为整数,第一级别至第N级别的优先级顺序逐渐降低。需要说明的是,N和M的具体数值可以根据实际需求而定,本公开的实施例对此不作限制。Further, for each storage queue, determining the predicted address based on the block information and the state of the state machine 203 corresponding to the storage queue may include the following operations: in response to the state machine 203 being in the first priority state 302 and the corresponding storage queue There is no refresh task being executed, and the address of the block that meets the requirements is determined as the predicted address in priority order from the first level to the Nth level; in response to the state machine 203 being in the second priority state 303 and the corresponding storage There is no refresh task being executed in the queue, and the address of the block that meets the requirements is determined as the predicted address in priority order from the first level to the Mth level; in response to the state machine 203 being in the first priority state 302 and the corresponding There is a refresh task being executed in the storage queue, and it is determined that the predicted address is empty; in response to the state machine 203 being in the second priority state 303, and there is no block that meets the requirements or there is a refresh task being executed in the corresponding storage queue , confirm that the predicted address is empty. For example, if the block is divided into N levels, N>M>1 and N and M are both integers, the priority order from the first level to the Nth level gradually decreases. It should be noted that the specific values of N and M can be determined according to actual needs, and the embodiments of the present disclosure do not limit this.
例如,各个级别的优先级顺序基于区块信息确定,区块信息至少包括:是否有效、是否被刷新、是否存在访存请求、是否空闲、时序是否符合等。For example, the priority order of each level is determined based on block information. The block information at least includes: whether it is valid, whether it is refreshed, whether there is a memory access request, whether it is idle, whether the timing is consistent, etc.
例如,在一些示例中,地址预测单元205进行地址预测时,可以参考如下信息:(1)未被刷新,即区块地址是否在刷新地址记录单元207中有记录;(2)无访存请求,即命令队列102中是否存在该区块的访存请求;(3)区块空闲,即对应区块是否处于空闲状态;(4)区块读写完成,即对应区块没有读写未完成的命令;(5)刷新时序符合,即REFsb请求要求的时序检查是否满足;(6)预充电时序符合,即PCHGsb请求要求的时序检查是否满足;(7)有效区块,即当前区块地址是否是有效地址(每个区块组中包含的区块数可能为2个或者4个)。For example, in some examples, when the address prediction unit 205 performs address prediction, the following information may be referred to: (1) It has not been refreshed, that is, whether the block address is recorded in the refresh address recording unit 207; (2) There is no memory access request. , that is, whether there is a memory access request for the block in the command queue 102; (3) the block is idle, that is, whether the corresponding block is in an idle state; (4) the block reading and writing is completed, that is, the corresponding block has not been read or written yet. command; (5) The refresh timing is consistent, that is, whether the timing check required by the REFsb request is met; (6) The precharge timing is met, that is, whether the timing check required by the PCHGsb request is met; (7) Valid block, that is, the current block address Whether it is a valid address (the number of blocks contained in each block group may be 2 or 4).
需要说明的是,地址预测单元205进行地址预测时所参考的区块信息不限于上文中列举的信息,还可以包括其他任意适用的信息,这可以根据实际需求而定,本公开的实施例对此不作限制。It should be noted that the block information referenced by the address prediction unit 205 when performing address prediction is not limited to the information listed above, and may also include any other applicable information, which may be determined according to actual needs. The embodiments of the present disclosure are suitable for This is not a limitation.
例如,在一些示例中,将区块划分为10个级别,也即是,前述的N等于10。例如,M等于2。地址预测单元205基于如下规则挑选区块以确定预测地址:For example, in some examples, the blocks are divided into 10 levels, that is, the aforementioned N is equal to 10. For example, M equals 2. The address prediction unit 205 selects blocks to determine predicted addresses based on the following rules:
(1)第一级别:有效区块,未被刷新,无访存请求,区块空闲,刷新时序符合;(1) First level: valid block, not refreshed, no memory access request, block is idle, refresh timing is consistent;
(2)第二级别:有效区块,未被刷新,无访存请求,区块空闲,刷新时序不符合;(2) Second level: valid block, not refreshed, no memory access request, block idle, refresh timing does not meet;
(3)第三级别:有效区块,未被刷新,无访存请求,区块非空闲,预充电时序符合;(3) The third level: valid block, not refreshed, no memory access request, block is not idle, precharge timing is consistent;
(4)第四级别:有效区块,未被刷新,无访存请求,区块非空闲,预充电时序不符合;(4) Level 4: Valid block, not refreshed, no memory access request, block not idle, precharge timing does not meet;
(5)第五级别:有效区块,未被刷新,有访存请求,区块读写完成,区块空闲,刷新时序符合;(5) Level 5: Valid block, not refreshed, there is a memory access request, block reading and writing is completed, the block is idle, and the refresh timing is consistent;
(6)第六级别:有效区块,未被刷新,有访存请求,区块读写完成,区块空闲,刷新时序不符合;(6) Level 6: Valid block, not refreshed, memory access request, block read and write completed, block idle, refresh timing does not match;
(7)第七级别,有效区块,未被刷新,有访存请求,区块读写完成,区块非空闲,预充电时序符合;(7) The seventh level, the valid block, has not been refreshed, there is a memory access request, the block read and write is completed, the block is not idle, and the precharge timing is consistent;
(8)第八级别:有效区块,未被刷新,有访存请求,区块读写完成,区块非空闲,预充电时序不符合;(8) Level 8: Valid block, not refreshed, memory access request, block read and write completed, block not idle, precharge timing does not meet;
(9)第九级别:有效区块,未被刷新,区块读写未完成,预充电时序符合;(9) Level 9: Valid block, not refreshed, block reading and writing not completed, precharge timing consistent;
(10)第十级别:有效区块,未被刷新,区块读写未完成,预充电时序不符合。(10) Level 10: Valid block, not refreshed, block read and write not completed, precharge timing does not match.
例如,从第一级别至第十级别的优先级顺序逐渐降低。For example, the priority order gradually decreases from the first level to the tenth level.
当状态机203处于第一优先级状态302且对应的存储队列中无正在执行的刷新任务时,会按照从第一级别至第十级别的优先级顺序将满足要求的区块的地址确定为预测地址,也即是,进行第一级别至第十级别的预测;当状态机203处于第一优先级状态302且对应的存储队列中有正在执行的刷新任务时,确定预测地址为空。When the state machine 203 is in the first priority state 302 and there is no refresh task being executed in the corresponding storage queue, the address of the block that meets the requirements will be determined as a prediction in priority order from the first level to the tenth level. The address, that is, predictions from the first level to the tenth level are performed; when the state machine 203 is in the first priority state 302 and there is a refresh task being executed in the corresponding storage queue, it is determined that the prediction address is empty.
当状态机203处于第二优先级状态303且对应的存储队列中无正在执行的刷新任务时,会按照从第一级别至第二级别的优先级顺序将满足要求的区块的地址确定为预测地址,也即是,进行第一级别至第二级别的预测;当状态机203处于第二优先级状态303,并且,不存在满足第一级别至第二级别的区块或对应的存储队列中有正在执行的刷新任务时,确定预测地址为空。When the state machine 203 is in the second priority state 303 and there is no refresh task being executed in the corresponding storage queue, the address of the block that meets the requirements will be determined as a prediction in priority order from the first level to the second level. Address, that is, prediction from the first level to the second level is performed; when the state machine 203 is in the second priority state 303, and there is no block or corresponding storage queue that satisfies the first level to the second level. When there is a refresh task being executed, it is determined that the prediction address is empty.
低优先级命令只有前两级预测,在没有符合条件的情况时,低优先级命令将会积累,也即是,对应的存储队列所对应的预测地址为空且不会被请求生成单元204选择。高优先级命令拥有所有10级预测。通过这种方式,既可以保证读写和刷新的同时进行,又可以避免造成无意义的行选通,从而提高带宽利用率。这里,“无意义的行选通”是指行选通后,没有发出读写命令就被预充电。Low-priority commands only have the first two levels of prediction. When no conditions are met, low-priority commands will accumulate. That is, the prediction address corresponding to the corresponding storage queue is empty and will not be selected by the request generation unit 204. . High priority commands have all level 10 predictions. In this way, simultaneous reading, writing and refreshing can be ensured, and meaningless row strobes can be avoided, thereby improving bandwidth utilization. Here, "meaningless row strobe" means that after row strobe, it is precharged without issuing a read or write command.
例如,在步骤S30中,请求生成单元204基于多个状态机203的状态以及多个预测地址,生成刷新请求,并将刷新请求发送给与DRAM连接的仲裁器106。由此使得仲裁器106对刷新请求进行仲裁,并且,响应于刷新请求赢得仲裁,仲裁器106将刷新请求发送给DRAM,以用于实现DRAM的刷新。例如,请求生成单元204基于多个状态机203的状态,根据优先级选择规则选择存储队列并生成刷新请求,并且将刷新请求发送给仲裁器106。For example, in step S30, the request generation unit 204 generates a refresh request based on the states of the plurality of state machines 203 and the plurality of predicted addresses, and sends the refresh request to the arbiter 106 connected to the DRAM. This causes the arbiter 106 to arbitrate the refresh request, and in response to winning the arbitration for the refresh request, the arbiter 106 sends the refresh request to the DRAM for implementing refresh of the DRAM. For example, the request generation unit 204 selects a storage queue according to priority selection rules based on the states of the plurality of state machines 203 and generates a refresh request, and sends the refresh request to the arbiter 106 .
例如,所生成的刷新请求包括请求命令、请求地址和标志位。请求地址为被选择的存储队列对应的预测地址。标志位指示被选择的存储队列对应的状态机203处于第一优先级状态302或第二优先级状态303。例如,在一些示例中,可以采用1位二进制数(例如“0”和“1”)来表示被选择的存储队列对应的状态机203处于第一优先级状态302或第二优先级状态303。For example, the generated refresh request includes a request command, a request address and a flag bit. The request address is the predicted address corresponding to the selected storage queue. The flag bit indicates that the state machine 203 corresponding to the selected storage queue is in the first priority state 302 or the second priority state 303. For example, in some examples, a 1-bit binary number (such as “0” and “1”) may be used to indicate that the state machine 203 corresponding to the selected storage queue is in the first priority state 302 or the second priority state 303.
例如,在一些示例中,请求生成单元204根据如下的优先级选择规则来选择存储队列。该优先级选择规则为:按照第一优先级状态302的第一子状态、第一优先级状态302的第二子状态、第二优先级状态303的优先级顺序选择对应的存储队列,也即是,优先级关系为:第一优先级状态302的第一子状态>第一优先级状态302的第二子状态>第二优先级状态303;若所有状态机203均处于第二优先级状态303,则选择预测地址不为空的存储队列;若存在多个具有同一优先级顺序的状态机203,则在多个具有同一优先级顺序的状态机203中随机选择一个状态机203对应的存储队列。基于上述优先级选择规则,请求生成单元204会优先挑选高优先级的存储队列来生成对应的刷新请求并发送至仲裁器106。For example, in some examples, request generation unit 204 selects a storage queue according to the following priority selection rules. The priority selection rule is: select the corresponding storage queue according to the priority order of the first sub-state of the first priority state 302, the second sub-state of the first priority state 302, and the second priority state 303, that is, Yes, the priority relationship is: the first sub-state of the first priority state 302 > the second sub-state of the first priority state 302 > the second priority state 303; if all state machines 203 are in the second priority state 303, then select the storage queue whose predicted address is not empty; if there are multiple state machines 203 with the same priority order, randomly select the storage corresponding to one state machine 203 among the multiple state machines 203 with the same priority order. queue. Based on the above priority selection rules, the request generation unit 204 will preferentially select a high-priority storage queue to generate a corresponding refresh request and send it to the arbiter 106 .
通过按照第一子状态、第二子状态、第二优先级状态303这三级进行存储队列的选择,可以保证优先挑选推迟刷新计数器202的数值达临界点的存储队列进行刷新,保证刷新不会违规。若存在多个具有同一优先级顺序的状态机203,则在多个具有同一优先级顺序的状态机203中随机选择一个状态机203对应的存储队列,通过随机选择,可以避免按照固定顺序导致某个存储队列的刷新积累过多。By selecting the storage queue according to the first sub-state, the second sub-state, and the second priority state 303, it can be ensured that the storage queue whose value of the postponed refresh counter 202 reaches the critical point is selected first for refresh, ensuring that the refresh will not violation. If there are multiple state machines 203 with the same priority order, the storage queue corresponding to one state machine 203 is randomly selected among the multiple state machines 203 with the same priority order. Through random selection, it is possible to avoid causing certain problems in a fixed order. There are too many refreshes accumulated in the storage queue.
通过按照上述优先级选择规则来选择存储队列并生成相应的刷新请求,可以保证刷新没有读写访存请求的区块,使该区块刷新时,其他有读写访存的区块可以进行读写操作,最大化地使刷新和读写并行,从而有效提高带宽。By selecting the storage queue according to the above priority selection rules and generating the corresponding refresh request, it is ensured that blocks without read and write memory access requests are refreshed, so that when the block is refreshed, other blocks with read and write memory access can be read. Write operations maximize the parallelization of refresh, read and write, thereby effectively improving bandwidth.
仲裁器106不仅接收来自请求生成单元204的刷新请求,还接收来自其他单元和模块的读写请求、行选通请求、预充电请求等,仲裁器106配置为对刷新请求、读写请求、行选通请求、预充电请求等多种请求进行仲裁。例如,仲裁器106进行仲裁的优先级按如下顺序降低:标志位指示第一优先级状态302的刷新请求、读写请求、行选通请求、预充电请求、标志位指示第二优先级状态303的刷新请求。仲裁器106能够使高优先级的REFsb及时到达DRAM以保持DRAM的数据。需要说明的是,仲裁器106进行仲裁的优先级顺序不限于上述顺序,也可以采用其他任意适用的规则进行仲裁,并且,参与仲裁的请求还可以包括节能(powerdown)请求、寄存器读(mode register read)请求、阻抗校准(zq calibration)请求等多种其他请求,这可以根据实际需求而定,本公开的实施例对此不作限制。The arbiter 106 not only receives refresh requests from the request generation unit 204, but also receives read and write requests, row strobe requests, precharge requests, etc. from other units and modules. The arbiter 106 is configured to respond to refresh requests, read and write requests, row Various requests such as gating requests and precharge requests are arbitrated. For example, the priority of arbitration by the arbiter 106 decreases in the following order: a refresh request with a flag bit indicating the first priority state 302, a read-write request, a row strobe request, a precharge request, and a flag bit indicating the second priority state 303. refresh request. The arbiter 106 can enable the high-priority REFsb to reach the DRAM in time to maintain the data of the DRAM. It should be noted that the priority order of arbitration by the arbiter 106 is not limited to the above order, and any other applicable rules can also be used for arbitration. Moreover, the requests to participate in arbitration can also include power down requests and mode register requests. read) request, impedance calibration (zq calibration) request, and other various other requests, which may be determined according to actual needs, and embodiments of the present disclosure do not limit this.
当仲裁器106进行仲裁时,若来自请求生成单元204的刷新请求赢得仲裁,仲裁器106会将赢得仲裁的刷新请求发送给DRAM,以用于实现DRAM的刷新。关于DRAM接收到刷新请求后进行刷新的具体操作,可参考常规设计,此处不再详述。When the arbiter 106 performs arbitration, if the refresh request from the request generation unit 204 wins the arbitration, the arbiter 106 will send the refresh request that wins the arbitration to the DRAM to implement refresh of the DRAM. Regarding the specific operation of refreshing the DRAM after receiving the refresh request, please refer to the conventional design and will not be detailed here.
例如,当刷新请求赢得仲裁后,刷新地址记录单元207会记录下已经刷新的区块地址。当所有区块地址都被REFsb刷新后,刷新地址记录单元207清零,并使推迟刷新计数器202减1计数一次。如果刷新地址记录单元207清零的同时刷新间隔计数器201产生脉冲,则推迟刷新计数器202此次不计数。For example, after the refresh request wins arbitration, the refresh address recording unit 207 will record the refreshed block address. When all block addresses are refreshed by REFsb, the refresh address recording unit 207 is cleared, and the delayed refresh counter 202 is decremented by 1 and counted once. If the refresh interval counter 201 generates a pulse while the refresh address recording unit 207 is cleared, the delayed refresh counter 202 does not count this time.
本公开实施例提供的刷新方法运用了REFsb刷新请求,并且通过上述方式,可以结合延迟刷新、刷新地址预测、命令队列监测等一系列因素构成多层次优先级和仲裁逻辑,从而可以兼顾DRAM的刷新和读写访问,在保证刷新及时完成的基础上,尽可能地保证读写访问的连续性,降低刷新对DRAM性能的影响,改善内存访问的带宽,提高带宽利用率。The refresh method provided by the embodiment of the present disclosure uses REFsb refresh request, and through the above method, it can combine a series of factors such as delayed refresh, refresh address prediction, command queue monitoring, etc. to form multi-level priority and arbitration logic, thereby taking into account the refresh of DRAM. And read and write access, on the basis of ensuring the timely completion of refresh, ensure the continuity of read and write access as much as possible, reduce the impact of refresh on DRAM performance, improve the bandwidth of memory access, and increase bandwidth utilization.
图5为本公开一些实施例提供的另一种用于动态随机存取存储器的刷新方法的流程示意图。例如,在该实施例中,该方法可以包括如下操作。FIG. 5 is a schematic flowchart of another refreshing method for dynamic random access memory provided by some embodiments of the present disclosure. For example, in this embodiment, the method may include the following operations.
步骤S10:确定多个存储队列对应的多个状态机的状态,其中,多个存储队列与多个状态机一一对应;Step S10: Determine the states of multiple state machines corresponding to multiple storage queues, where multiple storage queues correspond to multiple state machines one-to-one;
步骤S20:确定多个存储队列对应的多个预测地址;Step S20: Determine multiple prediction addresses corresponding to multiple storage queues;
步骤S40:基于多个状态机的状态以及多个预测地址,生成阻挡地址,并将阻挡地址发送给仲裁器,以使得仲裁器对阻挡地址对应的非刷新命令进行阻挡;Step S40: Generate a blocking address based on the states of multiple state machines and multiple predicted addresses, and send the blocking address to the arbiter, so that the arbiter blocks the non-refresh command corresponding to the blocking address;
步骤S30:基于多个状态机的状态以及多个预测地址,生成刷新请求,并将刷新请求发送给与动态随机存取存储器连接的仲裁器;Step S30: Generate a refresh request based on the states of multiple state machines and multiple predicted addresses, and send the refresh request to the arbiter connected to the dynamic random access memory;
步骤S50:响应于生成刷新请求、刷新请求的标志位指示第一优先级状态以及请求地址对应的区块非全空闲,生成预充电请求并将预充电请求发送给仲裁器。Step S50: In response to generating a refresh request, the flag bit of the refresh request indicating the first priority status, and the block corresponding to the request address being not completely free, generate a precharge request and send the precharge request to the arbiter.
在该实施例中,步骤S10、S20和S30与图3中所示的步骤S10、S20和S30基本相同,相关说明可参考前述内容,此处不再赘述。In this embodiment, steps S10, S20 and S30 are basically the same as steps S10, S20 and S30 shown in Figure 3. For relevant descriptions, please refer to the foregoing content and will not be described again here.
下面结合图2所示的刷新控制模块107对步骤S40和S50进行示例性说明。Steps S40 and S50 will be exemplified below in conjunction with the refresh control module 107 shown in FIG. 2 .
例如,在步骤S40中,阻挡地址生成单元206基于多个状态机203的状态以及多个预测地址,生成阻挡地址,并将阻挡地址发送给仲裁器106,以使得仲裁器106对阻挡地址对应的非刷新命令进行阻挡。例如,地址预测单元205将预测地址发送给阻挡地址生成单元206,以供阻挡地址生成单元206使用。For example, in step S40, the blocking address generation unit 206 generates a blocking address based on the states of the multiple state machines 203 and the multiple prediction addresses, and sends the blocking address to the arbiter 106, so that the arbiter 106 Non-refresh commands are blocked. For example, the address prediction unit 205 sends the predicted address to the blocking address generation unit 206 for use by the blocking address generation unit 206.
进一步地,阻挡地址生成单元206响应于状态机203处于第一优先级状态302以及对应的存储队列中无正在执行的刷新任务,将该存储队列对应的预测地址确定为阻挡地址,并将阻挡地址发送给仲裁器106。Further, in response to the state machine 203 being in the first priority state 302 and the corresponding storage queue having no refresh task being executed, the blocking address generation unit 206 determines the predicted address corresponding to the storage queue as the blocking address, and sets the blocking address Sent to arbiter 106.
需要说明的是,虽然刷新控制模块107包括多个阻挡地址生成单元206,每个存储队列对应于一个阻挡地址生成单元206,但是,只有当对应的状态机203处于第一优先级状态302并且对应的存储队列中无正在执行的刷新任务时,对应的阻挡地址生成单元206才将对应的预测地址确定为阻挡地址并发送给仲裁器106。其他不满足要求的存储队列对应的阻挡地址生成单元206不会生成阻挡地址,也即是,不会提供有效地址信息,以避免同一时间在同一存储队列中有至少两个区块地址不可访问的情况出现。例如,若某一存储队列中有任一区块地址在进行刷新,对应的阻挡地址生成单元206不会生成阻挡地址,可以避免同一时间在同一存储队列中有至少两个区块地址不能进行其他访存请求,避免降低带宽。It should be noted that although the refresh control module 107 includes multiple blocking address generation units 206 and each storage queue corresponds to one blocking address generation unit 206, only when the corresponding state machine 203 is in the first priority state 302 and corresponds to When there is no refresh task being executed in the storage queue, the corresponding blocking address generation unit 206 determines the corresponding predicted address as a blocking address and sends it to the arbiter 106 . The blocking address generation unit 206 corresponding to other storage queues that do not meet the requirements will not generate blocking addresses, that is, will not provide valid address information to avoid having at least two block addresses inaccessible in the same storage queue at the same time. situation arises. For example, if any block address is being refreshed in a certain storage queue, the corresponding blocking address generation unit 206 will not generate a blocking address, which can avoid having at least two block addresses in the same storage queue being unable to perform other operations at the same time. Memory access requests to avoid reducing bandwidth.
仲裁器106接收到阻挡地址后,将阻挡该阻挡地址对应的非刷新命令(例如访存请求)参加仲裁器106的仲裁,从而为高优先级的刷新请求能够尽快发送提供时序和区块状态的保证。例如,在一些示例中,在刷新控制模块107还生成预充电请求的情形,仲裁器106会对阻挡地址对应的命令中除了预充电命令和刷新命令以外的其他命令进行阻挡。这可以为刷新和预充电的进行提供前提条件,使其区块状态和时序要求尽快达到。当某些区块被执行刷新请求或者是被阻挡的目标区块时,仲裁器106会将这些区块从读写切换、读写统计、命令优先级等逻辑中暂时移除,以免阻挡其他访存相关功能逻辑的运行,防止不可读写访问的区块干扰其他读写的进行。After receiving the blocking address, the arbiter 106 will block the non-refresh command (such as a memory access request) corresponding to the blocking address from participating in the arbitration of the arbiter 106, thereby providing timing and block status information for high-priority refresh requests to be sent as soon as possible. ensure. For example, in some examples, when the refresh control module 107 also generates a precharge request, the arbiter 106 blocks commands corresponding to the blocking address except for the precharge command and the refresh command. This can provide prerequisites for refresh and precharge, so that its block status and timing requirements can be achieved as soon as possible. When certain blocks are subject to a refresh request or are blocked target blocks, the arbiter 106 will temporarily remove these blocks from read-write switching, read-write statistics, command priority and other logic to avoid blocking other accesses. The operation of storage-related functional logic prevents blocks that cannot be read and written from interfering with other reading and writing.
在本公开实施例提供的刷新方法中,通过生成阻挡地址以对相应的非刷新命令进行阻挡,可以使高优先级的刷新请求能够尽快赢得仲裁器106的仲裁并到达DRAM,以保证刷新及时完成。In the refresh method provided by the embodiment of the present disclosure, by generating a blocking address to block the corresponding non-refresh command, high-priority refresh requests can win the arbitration of the arbiter 106 and reach the DRAM as soon as possible to ensure that the refresh is completed in time. .
例如,在其他一些示例中,也可以不基于预测地址生成阻挡地址,而是阻挡整个存储队列,然后在发送出REFsb后,放行其他区块地址的访存请求,这可以根据实际需求而定,本公开的实施例对此不作限制。For example, in some other examples, the blocking address can not be generated based on the predicted address, but the entire storage queue can be blocked, and then after the REFsb is sent out, memory access requests for other block addresses can be released. This can be determined according to actual needs. The embodiments of the present disclosure are not limited to this.
例如,在步骤S50中,响应于生成刷新请求、刷新请求的标志位指示第一优先级状态302以及请求地址对应的区块非全空闲,请求生成单元204生成预充电请求并将预充电请求发送给仲裁器106,该预充电请求对应于请求地址对应的区块,预充电请求的地址即为请求地址。例如,在生成标志位指示第一优先级状态302的刷新请求的同时,若对应区块处于开启状态,则需要发布预充电请求(PCHGsb),PCHGsb会关闭对应的区块,以便之后赢得仲裁的对应于该区块的REFsb能够执行。For example, in step S50, in response to generating a refresh request, the flag bit of the refresh request indicating the first priority state 302, and the block corresponding to the request address being not completely free, the request generation unit 204 generates a precharge request and sends the precharge request. To the arbiter 106, the precharge request corresponds to the block corresponding to the request address, and the address of the precharge request is the request address. For example, while generating a refresh request with a flag bit indicating the first priority state 302, if the corresponding block is in the open state, a precharge request (PCHGsb) needs to be issued, and PCHGsb will close the corresponding block in order to win the arbitration later. REFsb corresponding to this block can be executed.
在本公开实施例提供的刷新方法中,通过生成预充电请求,可以为高优先级的刷新请求的执行尽快做好准备,以保证刷新及时完成。In the refresh method provided by the embodiment of the present disclosure, by generating a precharge request, preparations can be made as soon as possible for the execution of a high-priority refresh request to ensure that the refresh is completed in time.
需要说明的是,在生成标志位指示第二优先级状态303的刷新请求的同时,若对应区块处于开启状态,将不会生成PCHGsb。此时,标志位指示第二优先级状态303的刷新请求将等待预先预充电模块109关闭对应区块,否则将一直积累直到达到第一优先级状态302。低优先级刷新请求不产生PCHGsb,可以避免低优先级刷新可能干扰未来到来的读写进程,也可以达到优先放行读写、提高带宽的作用。It should be noted that while generating a refresh request with a flag bit indicating the second priority state 303, if the corresponding block is in an open state, PCHGsb will not be generated. At this time, the flag bit indicates that the refresh request of the second priority state 303 will wait for the pre-charge module 109 to close the corresponding block, otherwise it will be accumulated until the first priority state 302 is reached. Low-priority refresh requests do not generate PCHGsb, which can prevent low-priority refreshes from interfering with future reading and writing processes. It can also achieve the effect of prioritizing reading and writing and increasing bandwidth.
本公开至少一个实施例还提供一种用于动态随机存取存储器的内存控制器,该内存控制器具有多层次优先级和仲裁逻辑,可以兼顾动态随机存取存储器的刷新和读写访问,在保证刷新及时完成的基础上,尽可能地保证读写访问的连续性,降低刷新对动态随机存取存储器性能的影响,改善内存访问的带宽,提高带宽利用率。At least one embodiment of the present disclosure also provides a memory controller for a dynamic random access memory. The memory controller has multi-level priority and arbitration logic and can take into account refresh and read and write access of the dynamic random access memory. On the basis of ensuring that the refresh is completed in time, the continuity of read and write access is ensured as much as possible, the impact of refresh on the performance of dynamic random access memory is reduced, the bandwidth of memory access is improved, and the bandwidth utilization rate is improved.
结合图1和图2所示,该内存控制器100配置为与DRAM连接且配置为控制DRAM进行刷新。DRAM包括多个存储队列,每个存储队列包括多个区块组,每个区块组包括多个区块。As shown in FIG. 1 and FIG. 2 , the memory controller 100 is configured to be connected to the DRAM and configured to control the DRAM to refresh. DRAM includes multiple storage queues, each storage queue includes multiple block groups, and each block group includes multiple blocks.
内存控制器100至少包括仲裁器106和刷新控制模块107。The memory controller 100 includes at least an arbiter 106 and a refresh control module 107 .
刷新控制模块107包括刷新间隔计数器201、多个推迟刷新计数器202、多个状态机203、请求生成单元204、多个地址预测单元205、多个阻挡地址生成单元206和多个刷新地址记录单元207。The refresh control module 107 includes a refresh interval counter 201, a plurality of delayed refresh counters 202, a plurality of state machines 203, a request generation unit 204, a plurality of address prediction units 205, a plurality of blocking address generation units 206 and a plurality of refresh address recording units 207 .
多个状态机203与多个存储队列一一对应,状态机203配置为在多个状态之间切换,例如在第一优先级状态302、第二优先级状态303、冲刷状态304和自刷新状态301之间切换。多个地址预测单元205与多个存储队列一一对应,地址预测单元205配置为确定对应的存储队列的预测地址。请求生成单元204配置为基于多个状态机203的状态以及预测地址,生成刷新请求,并将刷新请求发送给与DRAM连接的仲裁器106。多个阻挡地址生成单元206与多个存储队列一一对应,阻挡地址生成单元206配置为基于预测地址以及预测地址对应的存储队列的状态机203的状态,生成阻挡地址,并将阻挡地址发送给仲裁器106。Multiple state machines 203 correspond to multiple storage queues one-to-one, and the state machines 203 are configured to switch between multiple states, such as the first priority state 302, the second priority state 303, the flush state 304, and the self-refresh state. Switch between 301. Multiple address prediction units 205 correspond to multiple storage queues on a one-to-one basis, and the address prediction units 205 are configured to determine predicted addresses of corresponding storage queues. The request generation unit 204 is configured to generate a refresh request based on the states of the plurality of state machines 203 and the predicted addresses, and send the refresh request to the arbiter 106 connected to the DRAM. Multiple blocking address generation units 206 correspond to multiple storage queues in a one-to-one manner. The blocking address generation unit 206 is configured to generate a blocking address based on the predicted address and the state of the state machine 203 of the storage queue corresponding to the predicted address, and send the blocking address to Arbiter 106.
刷新间隔计数器201配置为循环计数,并且当计数值达到计数设定值时产生脉冲并清空,以及将脉冲发送给多个推迟刷新计数器202。多个推迟刷新计数器202与多个存储队列一一对应,推迟刷新计数器202配置为基于接收到的脉冲对对应的存储队列的被推迟的刷新请求进行计数。状态机203基于对应的推迟刷新计数器202的数值确定状态。多个刷新地址记录单元207与多个存储队列一一对应,刷新地址记录单元207配置为对已刷新的区块的地址进行记录。The refresh interval counter 201 is configured to count cyclically, and when the count value reaches a count setting value, it generates a pulse and clears it, and sends pulses to multiple delayed refresh counters 202 . Multiple deferred refresh counters 202 correspond to multiple storage queues one-to-one, and the deferred refresh counters 202 are configured to count deferred refresh requests of the corresponding storage queue based on received pulses. The state machine 203 determines the state based on the value of the corresponding deferred refresh counter 202 . Multiple refresh address recording units 207 correspond to multiple storage queues one-to-one, and the refresh address recording units 207 are configured to record addresses of refreshed blocks.
刷新控制模块107与仲裁器106连接,仲裁器106与DRAM连接。仲裁器106配置为对刷新请求进行仲裁,并且响应于刷新请求赢得仲裁,将刷新请求发送给DRAM,以用于实现DRAM的刷新。仲裁器106还配置为对阻挡地址对应的非刷新命令进行阻挡。The refresh control module 107 is connected to the arbiter 106, and the arbiter 106 is connected to the DRAM. The arbiter 106 is configured to arbitrate the refresh request, and in response to winning the arbitration for the refresh request, send the refresh request to the DRAM for implementing refresh of the DRAM. The arbiter 106 is also configured to block non-refresh commands corresponding to the blocked addresses.
需要说明的是,本公开的实施例中,内存控制器100还可以包括更多的模块和单元,刷新控制模块107也可以包括更多的模块和单元,不限于图1和图2中示出的模块和单元,这可以根据实际需求而定,本公开的实施例对此不作限制。关于内存控制器100的详细说明和技术效果可以参考上文中关于刷新方法的描述,此处不再赘述。It should be noted that in the embodiment of the present disclosure, the memory controller 100 may also include more modules and units, and the refresh control module 107 may also include more modules and units, which are not limited to those shown in Figures 1 and 2 modules and units, which can be determined according to actual needs, and the embodiments of the present disclosure do not limit this. For detailed description and technical effects of the memory controller 100, please refer to the above description of the refresh method, which will not be described again here.
本公开至少一个实施例还提供一种电子装置,该电子装置包括本公开任一实施例提供的内存控制器。该电子装置中的内存控制器具有多层次优先级和仲裁逻辑,可以兼顾动态随机存取存储器的刷新和读写访问,在保证刷新及时完成的基础上,尽可能地保证读写访问的连续性,降低刷新对动态随机存取存储器性能的影响,改善内存访问的带宽,提高带宽利用率。At least one embodiment of the present disclosure further provides an electronic device, which includes the memory controller provided by any embodiment of the present disclosure. The memory controller in the electronic device has multi-level priority and arbitration logic, which can take into account the refresh and read and write access of the dynamic random access memory, and ensure the continuity of read and write access as much as possible on the basis of ensuring that the refresh is completed in time. , reduce the impact of refresh on the performance of dynamic random access memory, improve the bandwidth of memory access, and increase bandwidth utilization.
图6为本公开一些实施例提供的一种电子装置的示意框图。例如,如图6所示,该电子装置200包括内存控制器100,内存控制器100为本公开任一实施例提供的内存控制器,例如图1所示的内存控制器100。例如,该电子装置200还可以包括动态随机存取存储器210。内存控制器100配置为与动态随机存取存储器210连接且配置为控制动态随机存取存储器210进行刷新。例如,该电子装置200可以实现为中央处理器(CPU)或其他任意的装置,本公开的实施例对此不作限制。FIG. 6 is a schematic block diagram of an electronic device provided by some embodiments of the present disclosure. For example, as shown in FIG. 6 , the electronic device 200 includes a memory controller 100 . The memory controller 100 is a memory controller provided by any embodiment of the present disclosure, such as the memory controller 100 shown in FIG. 1 . For example, the electronic device 200 may further include a dynamic random access memory 210 . The memory controller 100 is configured to be connected to the dynamic random access memory 210 and configured to control the dynamic random access memory 210 to refresh. For example, the electronic device 200 can be implemented as a central processing unit (CPU) or any other device, and the embodiments of the present disclosure are not limited thereto.
需要说明的是,本公开的实施例中,电子装置200还可以包括更多的模块和单元,不限于图6中示出的模块和单元,这可以根据实际需求而定,本公开的实施例对此不作限制。关于电子装置200的详细说明和技术效果可以参考上文中关于刷新方法和内存控制器的描述,此处不再赘述。It should be noted that in the embodiment of the present disclosure, the electronic device 200 may also include more modules and units, which are not limited to the modules and units shown in FIG. 6 . This may be determined according to actual needs. The embodiment of the present disclosure There are no restrictions on this. For detailed descriptions and technical effects of the electronic device 200, please refer to the above descriptions of the refresh method and the memory controller, and will not be described again here.
有以下几点需要说明:The following points need to be explained:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。(1) The drawings of the embodiments of this disclosure only relate to the structures involved in the embodiments of this disclosure, and other structures can refer to common designs.
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。(2) Without conflict, the embodiments of the present disclosure and the features in the embodiments can be combined with each other to obtain new embodiments.
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。The above are only specific embodiments of the present disclosure, but the protection scope of the present disclosure is not limited thereto. The protection scope of the present disclosure should be subject to the protection scope of the claims.
Claims (19)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011162195.1A CN112259141B (en) | 2020-10-27 | 2020-10-27 | Refreshing method of dynamic random access memory, memory controller and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011162195.1A CN112259141B (en) | 2020-10-27 | 2020-10-27 | Refreshing method of dynamic random access memory, memory controller and electronic device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112259141A CN112259141A (en) | 2021-01-22 |
CN112259141B true CN112259141B (en) | 2023-11-03 |
Family
ID=74261120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011162195.1A Active CN112259141B (en) | 2020-10-27 | 2020-10-27 | Refreshing method of dynamic random access memory, memory controller and electronic device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112259141B (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000025105A (en) * | 1998-10-08 | 2000-05-06 | 김영환 | Memory controller |
US6298413B1 (en) * | 1998-11-19 | 2001-10-02 | Micron Technology, Inc. | Apparatus for controlling refresh of a multibank memory device |
CN104137081A (en) * | 2012-02-13 | 2014-11-05 | 国际商业机器公司 | Memory reorder queue biasing preceding high latency operations |
CN110729006A (en) * | 2018-07-16 | 2020-01-24 | 超威半导体(上海)有限公司 | Refresh scheme in a memory controller |
-
2020
- 2020-10-27 CN CN202011162195.1A patent/CN112259141B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000025105A (en) * | 1998-10-08 | 2000-05-06 | 김영환 | Memory controller |
US6298413B1 (en) * | 1998-11-19 | 2001-10-02 | Micron Technology, Inc. | Apparatus for controlling refresh of a multibank memory device |
CN104137081A (en) * | 2012-02-13 | 2014-11-05 | 国际商业机器公司 | Memory reorder queue biasing preceding high latency operations |
CN110729006A (en) * | 2018-07-16 | 2020-01-24 | 超威半导体(上海)有限公司 | Refresh scheme in a memory controller |
Also Published As
Publication number | Publication date |
---|---|
CN112259141A (en) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112382321B (en) | Refreshing method of dynamic random access memory, memory controller and electronic device | |
US9281046B2 (en) | Data processor with memory controller for high reliability operation and method | |
US9293188B2 (en) | Memory and memory controller for high reliability operation and method | |
US11221798B2 (en) | Write/read turn techniques based on latency tolerance | |
US9411757B2 (en) | Memory interface | |
US6647456B1 (en) | High bandwidth-low latency memory controller | |
JP7407167B2 (en) | Configuring Dynamic Random Access Memory Refresh for Systems with Multiple Ranks of Memory | |
KR102705923B1 (en) | Record Bank Group Mask during Arbitration | |
JP2023527981A (en) | DRAM refresh management | |
CN105489240A (en) | DRAM or eDRAM refreshing apparatus and method | |
US10838884B1 (en) | Memory access quality-of-service reallocation | |
US10446215B1 (en) | System and method for adaptively optimized refresh of memory | |
CN1822224B (en) | Memory device capable of refreshing data using buffer and refresh method thereof | |
CN112259141B (en) | Refreshing method of dynamic random access memory, memory controller and electronic device | |
KR20230004912A (en) | Efficient memory bus management | |
CN111158585B (en) | Memory controller refreshing optimization method, device, equipment and storage medium | |
CN113946435A (en) | Memory management technology and computer system | |
US20250004826A1 (en) | Scheduling Multiple Processing-in-Memory (PIM) Threads and Non-PIM Threads | |
CN112965816B (en) | Memory management technology and computer system | |
US12118247B2 (en) | Performance of bank refresh | |
US11687281B2 (en) | DRAM command streak efficiency management | |
CN114564235A (en) | Instruction scheduling method, instruction scheduling device and related equipment |
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 |