CN109801659A - Dram内存库激活管理 - Google Patents
Dram内存库激活管理 Download PDFInfo
- Publication number
- CN109801659A CN109801659A CN201811351833.7A CN201811351833A CN109801659A CN 109801659 A CN109801659 A CN 109801659A CN 201811351833 A CN201811351833 A CN 201811351833A CN 109801659 A CN109801659 A CN 109801659A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory bank
- cas
- mode
- dram
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
-
- 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4072—Circuits for initialization, powering up or down, clearing memory or presetting
-
- 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
- Memory System (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及DRAM内存库激活管理。本发明提供一种系统、方法和计算机程序产品,用于按周期管理DRAM内存库的激活。采用具有内嵌调度逻辑的内存控制器来管理该系统、方法和计算机程序产品,以及限制给定周期中活动内存库的数量,从而以最小的性能损失(如果有的话)节省电力。调度逻辑提供管理相关联DRAM内存库的状态的指令。每个内存库处于空闲状态或活动状态,其中空闲状态比活动状态消耗更少的电力。调度逻辑限制任何周期中的活动内存库的数量,其它所有内存库则处于空闲状态,这为相关联的系统提供了电力节省。
Description
技术领域
本发明实施例涉及DRAM中一个或多个内存库(bank)的管理。更具体地,这些实施例涉及通过控制内存库的操作状态管理相关DRAM的电耗,以及缓和相关数据总线上空周期的产生。
背景技术
存储器分为两类,即易失性存储器和非易失性存储器。易失性存储器是仅在相关联的设备接受供电时才保持数据的计算机存储器。在供电被移除时,数据不再被保持。易失性存储器(volatile memory,也称为volatile storage)的例子是随机存取存储器(RAM)。非易失性存储器是计算机存储器的一种形式,其不需要连续的电源就能保持存储在相关存储设备中的数据。非易失性存储器(non-volatile memory,也称为non-volatile storage)的例子是硬盘驱动器(HDD)、固态驱动器(SSD)、通用串行总线驱动器(USB)。
动态随机存取存储器(以下称为DRAM)是多维(multi-dimensional)存储器。DRAM位于插入主板的模块中,有时也称为RAM。之所以称之为动态的,是因为它必须不断被刷新,以免丢失存储的数据。DRAM与静态RAM(SRAM)形成对比,后者用于中央处理单元(CPU)内部或附近的高速缓存。如本文所述,DRAM是多维存储器结构,具有不同的操作状态,并且每个操作状态具有相关联的电耗。
发明内容
本发明提供用于管理DRAM存储器的分层体系(hierarchy)中的内存库(banks)的操作状态的系统、计算机程序产品和方法。
一方面,提供了一种计算机系统,其具有可操作地耦合到DRAM的处理单元。内存控制器可操作地耦合到DRAM以及读队列和写队列。内存控制器被配置为管理DRAM。该管理包括内存控制器跟踪内存区块(rank)中的每个DRAM内存库的操作状态。该状态可能是活动的(active)、在等待CAS命令或空闲的。内存控制器跟踪与每个内存库的被跟踪操作状态有关的所述队列之一中未完成CAS命令的数量。未完成CAS命令可能在CAS的服务下和/或在等待CAS的服务。每个周期,内存控制器识别选择的队列中等待服务的CAS命令的被跟踪数量,并且根据预定义比率评估所识别的数量。鉴于空闲状态比活动状态消耗的电力少,内存控制器基于该周期评估来管理内存库的操作状态,包括单独控制每个内存库的操作状态,对操作状态的单独控制包括延迟DRAM中处于空闲状态的内存库的激活。
另一方面,提供一种用于管理DRAM的计算机程序产品。该计算机程序产品包含计算机可读存储设备,该计算机可读存储设备具有其中体现的程序代码,该程序代码可由处理单元执行以跟踪内存区块中每个DRAM内存库的操作状态。操作状态可以是活动的、在等待CAS命令或空闲的。程序代码跟踪与每个内存库的被跟踪操作状态有关的请求队列中未完成CAS命令的数量。未完成CAS命令包括在CAS的服务下的和在等待CAS的服务的。每个周期,程序代码识别当前周期在选择的队列中等待服务的CAS命令的被跟踪数量,并根据预定义比率评估所识别的数量。程序代码基于周期评估来管理内存库的操作状态。该管理包括单独地控制内存库的每个的操作状态,其中空闲状态比活动状态消耗更少的电力。对操作状态的单独控制包括程序代码延迟DRAM中处于空闲状态的内存库的激活。
再一方面,提供一种用于管理DRAM的操作的方法。跟踪内存区块中每个DRAM内存库的操作状态。内存库操作状态可能是活动的、在等待CAS命令或空闲的。跟踪DRAM中的两个量。被跟踪量之一是与每个内存库的被跟踪操作状态相关地被跟踪的请求队列中的未完成CAS命令。被跟踪量的另一个是与每个内存库的被跟踪状态相关的请求队列中的未完成CAS命令。未完成CAS命令是在CAS的服务下的和/或在等待CAS的服务的。对于每个周期,识别当前周期在选择的队列中等待服务的CAS命令的被跟踪数量,并根据预定义比率评估所识别的数量。基于周期评估来管理内存库的操作状态。该管理包括单独地控制内存库的每个的操作状态,包括延迟处于空闲状态的内存库的激活。
这些和其他特征和优点,将在以下结合附图对当前优选实施例的详细描述中变得显而易见。
附图说明
被视为实施例的主题,在本说明书结尾处的权利要求中予以特别指出,并清楚地要求保护。通过以下结合附图的详细描述,这些实施例的前述和其他特征以及优点是显而易见的,其中:
图1示出例示DRAM芯片的现有技术的框图的框图。
图2示出例示用于管理DRAM中的数据请求的过程的流程图。
图3示出例示图2中示出和描述的管理的示例的流程图。
图4示出例示DRAM内存控制器的框图。
图5示出用于实现本发明实施例的一个实施例的系统的框图。
具体实施方式
容易理解,如本文附图中一般描述和说明的本发明实施例的组件,可以以各种不同的配置来布置和设计。因此,以下对如附图中所示的本发明实施例的装置、系统和方法的实施例的详细描述,并非旨在限制所要求保护的实施例的范围,而仅仅是所选实施例的代表。
贯穿本说明书提及的“所选实施例”、“一个实施例”或“实施例”,意指结合实施例描述的特定特征、结构或特性包括在本发明实施例的至少一个实施例中。因此,贯穿本说明书在各处出现的短语“所选实施例”、“在一个实施例中”或“在实施例中”,不一定是指同一实施例。
通过参考附图,将最好地理解所示实施例,其中相同的部分始终由相同的数字表示。以下描述仅旨在作为示例,并且简单地示出了与本文权利要求书要求保护的实施例一致的设备、系统和过程的某些选择的实施例。
如本文所述,计算机存储器是按层次结构组织的。寄存器、SRAM和DRAM都是各种形式的易失性存储器。DRAM是逻辑上细分为多维形式的计算机芯片,DRAM的维(dimensions)包括寻址用的内存库(bank)行和列。DRAM内存区块(rank)是独立寻址的模块上的独立DRAM芯片组。DRAM内存库是逻辑存储单元(storage unit)。在一个实施例中,内存库由跨越若干芯片的多列和多行存储单元组成。本文公开了一种用于在每个周期期间管理DRAM内存库激活(activation)的系统、方法和计算机程序产品。采用调度逻辑来管理该系统、方法和计算机程序产品,以及限制给定周期中活动(active)内存库的数量,从而以最小的性能损失(如果有的话)节省电力。调度逻辑提供管理相关联的DRAM内存库的状态的指令。每个内存库处于空闲状态或活动状态。可以理解,空闲状态比活动状态消耗的电力少。因此,保持一个或多个非活动DRAM内存库在空闲状态,可以为相关联的系统节电。
参见图1,提供了现有技术的DRAM芯片的框图100。如图所示,芯片DRAM Chip0具有四个内存库,在此称为Bank0 110、Bank1 120、Bank2 130和Bank3 140。虽然只显示了四个内存库,但不应将此数量视为限制。在一个实施例中,芯片可以配置有8个、16个或32个内存库。每个内存库分为行和列。在这里示出的示例中,Bank0 110具有M行和N列。行和列的数量仅用于说明目的,不应视为限制。Bank1 120、Bank2 130和Bank3 140与Bank0 110类似地配置。这里示出的示例限于行的一个选择的部分,并且仅用于说明目的。每个内存库显示有6行和8列。列由宽度定义,可配置为四位(x4)、八位(8x)或十六位(x16)。因此,这里示出的DRAM芯片是x8DRAM。
图1中所示的DRAM示例展示了存储器的三维特征,其中内存区块中的维被标识为内存库、行和列。内存区块中的每个内存库独立于其它内存库而操作,包含一个按行访问—例如一次一个整行—的内存单元格(memory cell)阵列。在一个实施例中,该行被称为内存页(memory page)。当内存阵列(memory array)的行被访问(称为行激活)时,内存阵列的整行被传送到在此称为行缓冲区(row buffer)的缓冲区。在一个实施例中,要访问行,就要指定内存库(memory bank)和行地址。行缓冲区用作高速缓存(cache),由此减少对该行的后续访问的延迟。当行缓冲区中的行是活动的(active)时,可以执行读或写。这里将写称为写访问。在完成对高速缓存行的可用列访问之后,高速缓存行在被称为内存库预充(pre-charge)—在下文中称为预充—的操作中被写回内存阵列。预充准备内存库以用于随后的行激活,其可以是内存库中的任何行。因此,预充的目的是关闭当前行并允许激活另一行。
对存储在DRAM中的数据的访问由内存控制器(例如MC)来管理,并且—如下面详细描述的—由嵌入在MC中的逻辑来管理。CPU通过地址总线向MC发送内存请求。多个内存区块共享称为总线的公共资源。类似地,内存区块中的多个内存库共享公共地址总线和数据总线。MC接收与内存请求相关联的地址,并将地址分成内存区块地址、内存库地址、内存库内的行地址和列地址。MC通过行地址处的行访问选通(RAS-row access strobe)访问适当的行。MC通过列地址处的列访问选通(CAS-column access strobe)访问适当的列,所请求数据在数据总线上被输出到MC。MC可以周期性地发出刷新命令(例如REF),以免丢失相关联的DRAM单元中的数据。
应当理解,内存请求和相关联的操作中有内含的若干拖延(delays)。这些拖延被称为延迟(latency),它们体现了发出请求时和服务请求时之间的延迟。几种延迟定义如下:CAS延迟(例如tCAS)是接收CAS信号和数据可用之间的时间;RAS到CAS延迟(例如tRCD)是RAS和CAS访问之间所需的时间;RAS预充(例如tRP)是关闭行缓冲区并在内存库中预充所需的时间;以及周期时间(cycle time)(例如tRAS)是读取行并将其写入行缓冲区所需的时间。因此,DRAM的结构中存在内含的若干延迟。
除了内含的延迟外,还存在与处理读取和写入请求相关联的物理限制。即,DRAM的结构受共享地址总线的限制。如图4中所示和描述的那样,多个DRAM内存区块共享地址和数据总线。与实现请求的命令有关,预充、行激活和列访问共享公共地址总线。因此,需要把跨总线的争用作为处理读取和写入请求的因素加以管理。
应当理解,多个内存库争用公共地址总线和数据总线。MC—更具体地说是MC的内嵌逻辑,行使管理适应DRAM的时序和资源约束的调度的作用。每个DRAM内存库具有两个稳定状态,本文中称之为活动(状态)和空闲(状态)。可以理解,相比之下,处于空闲状态的内存库比处于活动状态的内存库消耗更少的电力。内存控制器跟踪每个内存区块中处于活动状态的内存库。在空闲状态下,DRAM被预充并准备好进行行访问。空闲状态下没有打开的行(open row)。DRAM保持在空闲状态,直到向内存库发布行激活操作。虽然没有其他操作可以发给正在进行行激活操作的内存库,但在此期间可以向DRAM的其他内存库发布操作。一旦DRAM的激活延迟已经过去,内存库就进入活动状态,所选行的内容被保存在内存库的行缓冲区中。内存库保持在活动状态,直到发布预充操作以使内存库返回空闲状态。预充操作需要使用地址行来指示或识别要预充的内存库。预充操作在规定数量的周期利用内存库资源,在此期间不会向该内存库发布任何操作。无论发布读列访问还是写列访问,地址行都需要指示内存库和该内存库中活动行的列。在预充延迟之后,内存库返回到空闲状态并准备好进行新的行激活操作。因此,MC行使管理与规定的延迟相关联的调度和相关联的内存库状态的作用。
存储器访问调度是对为完成一组待处理内存引用所必需的DRAM操作(例如预充、行激活和列访问)进行排序的过程。MC拥有每个内存区块和内存库的完整信息,以便有效地利用它们。MC,特别是存储器访问调度,结合了DRAM内存库的功耗。在每个稳定状态下,DRAM内存库消耗电力。相对比较而言,与活动状态相比,DRAM内存库在空闲状态下消耗更少的电力,因此,优选地要使每个内存库在其不使用时处于空闲状态。除了规定的内存库状态和相关联的操作之外,还需要考虑通过数据总线传输数据所需的时间。该时间称为突发长度(burst length),即BL。例如,在一个实施例中,BL是四个DRAM周期。与MC相关联的内存逻辑确定在每个周期期间向内存库发布的最有益的命令,同时考虑公共地址和数据总线的限制。
应当理解,内存库的积极激活可能不会导致性能提高。更具体地说,例如,用于数据传输的数据总线的完全利用(例如100%的利用率)增加功耗却不改善性能。目标是使内存库在支持读写请求、同时解决数据总线的争用问题期间,各自尽可能长时间地保持在空闲状态。一种解决方案是对在任何给定时刻可以激活的内存区块中的内存库的数量施加限制,从而减少功耗。该解决方案通过减少地址总线的竞争者的数量来降低调度程序的复杂性。拒绝内存区块中内存库的激活请求的策略,不会影响等待请求的服务时间,因为即使激活请求是在当前周期中发布的,它也必须等到所有当前的CAS请求都被服务。换言之,数据总线忙于当前的CAS请求。调用拒绝激活内存库的策略,实际上降低了功耗。因此,需要设计和调用在特定条件下管理内存库激活的策略,以便管理功耗和DRAM性能。
参看图2,提供了例示用于管理DRAM中的数据请求的方法的流程图200。可以理解,存在与DRAM MC相关联的两个队列,包括读队列和写队列。MC跟踪在每个内存区块中活动的内存库的数量以及在每个内存区块中所识别的活动内存库中在被服务(under-service)或在等待服务的CAS请求的数量。待处理的读请求被放置读队列中。类似地,待处理的写请求被放置在写队列中。评估内存的优先模式(202)。每个周期,检查读请求队列和写请求队列。基于步骤202的评估,评估读请求队列或写请求队列204。具体来说,在步骤202优先模式识别队列,在步骤204,基于该识别,评估队列的任何待处理的CAS请求。每个CAS请求都包含一个激活命令,该命令标识内存库中的行以支持所标识的列,并且也打开该行。因此,该CAS请求内在地知道支持该CAS请求的行。
在步骤204之后,识别在该周期等待被服务的CAS请求的数量,并将其分配给变量N(206)。在计算足以延迟空闲内存库的激活的CAS请求的数量时,考虑该处理周期的物理参数。在步骤206之后,相对于被评估的具有等待的CAS请求的队列监视识别的阈值(208)。当队列中的CAS请求的数量等于或低于阈值时,调度器向内存区块中的空闲内存库发布激活命令(210)。相反,如果队列中的CAS请求的数量大于阈值,则在当前周期中调度器将不发布激活请求(212)。在步骤210激活命令的发布,将主题内存库的状态从空闲状态改变为活动状态,这利用了资源并增加了功耗。在步骤210发布新的激活命令并且内存库被打开这样的时候,与该内存库相关联的新CAS请求可能不会发布,直到在步骤204评估的队列中的先前CAS请求已经被处理。如图所示,调度器采用一种跟踪每个内存区块中的活动内存库的数量以及活动内存库服务或等待服务的CAS命令的数量的策略,其与每个内存区块中的活动内存库与CAS命令的数量的比率相关,并针对地址总线的每个周期。因此,每个内存区块中的内存库的状态,是针对在评估的队列中待处理的CAS请求来管理的。
参看图3,提供了展示图2中示出和描述的管理的示例的流程图300。确定CAS请求在数据总线上需要四个周期来处理(302)。类似地,确定每个激活请求具有16到18个周期的tRCD以激活内存库(304)。将阈值确定为tRCD和BL的商(306)。更具体来说,阈值产生队列中的CAS请求的数量,其足以使数据总线保持忙碌直到新的内存库激活完成。在一个实施例中,该商或比率是预定义的或可配置的。类似地,在一个实施例中,由内存控制器(memorycontroller)或调度器针对每个周期计算该商或比率。在这个例子中,队列中的CAS请求的数量被确定为五(308)。这样,新的内存库激活命令基于该周期评估被延迟,而不是针对该周期被发布(310)。因此,在这个例子中,新的内存库激活被延迟而不丧失数据总线利用率。
如图2和3所示,在任何给定周期中,当MC发现有足够的CAS请求待处理或等待时,MC将不会发布新的内存库激活命令。只有当在识别的队列中等待的CAS请求数量低于量化的阈值时,MC才发布新的内存库激活命令。在一个实施例中,如果MC发现有多个内存库在等待新的内存库激活命令的发布,则MC可以通过采用调度策略来选择内存库。MC对内存库激活命令的发布,受制于由优先模式识别的读或写队列的评估,如图2所示的那样。当发生对所识别的队列中等待服务的CAS请求的查找时,基于当前优先级模式选择读队列(RQ)或写队列(WQ)用于评估。例如,在读优先模式期间检查RQ,在写优先模式期间检查WQ。在一个实施例中,为了计数,RQ和WQ都可以被检查。对于所选队列中待处理的CAS请求,针对正被服务的当前内存区块或所有内存区块(例如一个或全部)为CAS请求计数。类似地,关于用于新内存库激活的策略,该策略对于读请求或写请求可以是选择性的,或者,在一个实施例中,对读请求和写请求都适用。在一个实施例中,不同的通信信道可能受制于新内存库激活策略的不同变体。
参照图4,提供了例示DRAM内存控制器的框图400。如图所示,MC 405包括RQ 402和WQ 404,二者可操作地耦合到事务处理逻辑410和内存定序器412。如图所示,内存定序器412是事务处理逻辑410的一部分。用于激活(ACT)发布的调度决策由逻辑410监督。在一个实施例中,如图2-3中所示的内存排序和调度器逻辑,是事务处理逻辑410的一部分。所示的MC 405可操作地耦合到DRAM器件420、440、和、460。该例中有三个DRAM器件,尽管该数量不应被视为限制。在一个实施例中,可以包括额外的内存器件。如上所述,内存区块是独立寻址的模块上的独立DRAM芯片组。在这里示出的示例中,存在三个内存区块:DRAM0 420,DRAM1440和DRAM2 460。DRAM0 420被示出具有六个内存库,包括Bank0 422、Bank1 424、Bank2 426、Bank3 428、Bank4 430和Bank5 432;DRAM1 440被示出具有六个内存库,包括Bank0 442、Bank1 444、Bank2 446、Bank3 448、Bank4 450和Bank5 452;DRAM2 460被示出具有六个内存库,包括Bank0 462、Bank1 464、Bank2 466、Bank3 468、Bank4 470和Bank5 472。内存库从空闲模式到激活模式的激活受制于由RQ 402和WQ 404支持的事务处理逻辑410。更具体地,事务处理逻辑控制每个内存区块中的一个或多个内存库的状态。例如,在一个实施例中,逻辑410可以识别至少两个处于空闲状态的内存库,并响应于调度策略而选择两个内存库的其中之一。逻辑410将所选内存库的状态从空闲状态改变为活动状态,而未选择的内存库则保持不变,处于空闲状态。因此,管理CAS请求和ACT发布决定的调度的过程由事务处理逻辑控制。
以上在图4中描述的计算机系统已经用逻辑形式的工具标记。该工具可以在可编程硬件设备—例如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等—中实现。该工具还可以用由各种类型的处理器执行的软件实现。所识别的可执行代码的功能单元例如可以包含计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、过程、功能或其他构造。然而,该工具的可执行文件不需要物理地位于一起,而是可以包含存储在不同位置的不同指令,当逻辑地连接在一起时,这些指令包含该工具并实现工具的所述目的。
实际上,可执行代码可以是单个指令或多个指令,甚至可以分布在几个不同的代码段上、不同的应用程序上和若干个内存设备上。类似地,操作数据在本文中可以在工具内被识别和示出,并且可以以任何合适的形式体现并组织在任何合适类型的数据结构内。操作数据可以作为单个数据集被收集,或者可以分布在包括不同存储设备的不同位置上,并且可以至少部分地作为系统或网络上的电子信号而存在。
此外,所描述的特征、结构或特性,可以以任何合适的方式组合在一个或多个实施例中。在以下描述中,提供了许多具体细节,诸如代理的例子,以提供对实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有一个或多个具体细节的情况下或者利用其他方法、组件、材料等来实践实施例。在其他情况下,众所周知的结构、材料或操作并未被详细示出或描述,以避免模糊实施例的各方面。
现在参考图5的框图,描述关于实现本发明实施例的一个实施例的额外细节。计算机系统包括一个或多个处理器,例如处理器502。处理器502连接到通信基础设施504(例如通信总线、交叉杆或网络)。
计算机系统可以包括显示接口506,其从通信基础设施504(或从未予示出的帧缓冲区)转发图形、文本和其他数据,用于在显示单元508上显示。计算机系统还包括主存储器510—优选地是随机存取存储器(RAM)和DRAM,并且还可以包括辅助存储器512。辅助存储器512可以包括代表例如软盘驱动器、磁带驱动器或光盘驱动器的例如硬盘驱动器514和/或可移动存储驱动器516。可移动存储驱动器516以本领域普通技术人员公知的方式对可移动存储单元518进行读取和/或写入。可移动存储单元518代表被可移动存储驱动器516读取和写入的例如软盘、光盘、磁带或光盘等。
在替代性实施例中,辅助存储器512可以包括用于允许将计算机程序或其它指令加载到计算机系统中的其它类似装置。这种装置可以包括例如可移动存储单元520和接口522。这种装置的例子可以包括程序包和包接口(诸如在视频游戏设备中存在的),可移动内存芯片(诸如EPROM或PROM)和相关联的插槽,以及允许将软件和数据从可移动存储单元520传输到计算机系统的其它可移动存储单元520和接口522。
计算机系统还可以包括通信接口524。通信接口524允许软件和数据在计算机系统和外部设备之间传输。通信接口524的例子可以包括调制解调器、网络接口(诸如以太网卡)、通信端口或PCMCIA插槽和卡等。通过通信接口524传送的软件和数据的形式是信号,例如可以是电子、电磁、光学或其它能够被通信接口524接收的信号。这些信号通过通信路径(即信道)526被提供给通信接口524。该通信路径526承载信号,并且可以使用有线或电缆、光纤、电话线、蜂窝电话链路、射频(RF)链路和/或其他通信信道来实现。
本文中的术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”,用于一般性地指代诸如主存储器510和辅助存储器512之类的介质、可移动存储驱动器516和安装在硬盘驱动器514中的硬盘。
计算机程序(也称为计算机控制逻辑)存储在主存储器510和/或辅助存储器512中。计算机程序也可以通过通信接口524被接收。这样的计算机程序在运行时使计算机系统能执行如本文所讨论的本发明实施例的特征。特别地,计算机程序在运行时使处理器502能执行计算机系统的特征。因此,这种计算机程序代表计算机系统的控制器。
本发明实施例可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明实施例的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本实施例操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本实施例的各个方面。
这里参照方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本实施例的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文中使用的术语,仅用于描述特定实施例的目的,而并不旨在限制实施例。本文所使用的单数形式“一”、“一个”和“该”,也旨在包括复数形式,除非上下文另有明确说明。将进一步理解,本说明书中使用的词语“包括”和/或“包含”,指明所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或者添加一个或多个其它特征、整数、步骤、操作、元件、组件和/或它们的组。
以下权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物,旨在包括用于结合具体要求保护的其它要求保护的元件而执行功能的任何结构、材料或动作。已经给出的对本发明实施例的描述,乃出于说明和描述的目的,但是并不旨在穷举或受限于所公开的形式的实施例。在不脱离实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。已经选择和描述的实施例,是为了最好地解释实施例的原理和实际应用,使得本领域普通技术人员能够理解实施例,以运用于适合于预期的特定用途的各种修改的各种实施例。因此,采用DRAM管理中的调度逻辑的实现来通过管理空闲状态和活动状态之间的DRAM内存库的状态来降低电耗,其中的管理与每个周期待处理的CAS请求和评估的阈值有关。
应当理解,尽管为了说明的目的在本文中描述了特定实施例,但是在不脱离实施例的精神和范围的情况下可以进行各种修改。特别地,内存库操作状态的管理,有效地管理电力消耗。为了确保最小化性能影响,可以调整DRAM管理。例如,当一个或多个未完成CAS命令低于预定义比率时,可以选择潜在的ACT发布。在一个实施例中,MC可配置为仅将内存库ACT管理应用于读或写请求,或应用于读和写请求。类似地,MC可配置为将内存库ACT管理应用于选择的内存区块。因此,实施例的保护范围仅受以下权利要求及其等同物的限制。
Claims (20)
1.一种计算机系统,包括:
处理单元,可操作地耦合到DRAM;
内存控制器,可操作地耦合到DRAM,该内存控制器可操作地耦合读队列和写队列;
该内存控制器管理该DRAM,包含:
跟踪内存区块中每个DRAM内存库的操作状态,其中所述状态选自以下组成的组:活动的、在等待CAS命令和空闲的;
跟踪与每个内存库的被跟踪操作状态相关的所述队列之一中未完成CAS命令的数量,其中未完成CAS命令选自以下构成的组:在CAS的服务下的和在等待CAS的服务的;
对于每个周期,识别当前周期在选择的队列中等待服务的CAS命令的被跟踪数量,并根据预定义比率评估所识别的数量;和
基于周期评估来管理内存库的操作状态,包括单独地控制内存库的每个的操作状态,其中空闲状态比活动状态消耗更少的电力,并且操作状态的单独控制包括延迟空闲内存库的激活。
2.如权利要求1所述的系统,其中,所述被跟踪内存库的操作状态的管理进一步包括所述内存控制器限制当前周期的活动内存库的数量。
3.如权利要求2所述的系统,进一步包含:内存控制器调度激活命令向空闲内存库的发布,其中,所述调度包括内存控制器基于周期评估来延迟所述空闲内存库的激活。
4.如权利要求1所述的系统,进一步包含:内存控制器识别至少两个处于空闲状态的内存库,响应调度策略而选择所述内存库的其中之一,并将所选内存库的状态从空闲状态改变为活动状态。
5.如权利要求4所述的系统,其中,所述调度策略包括针对每个周期跟踪每个内存区块中的多个活动内存库以及与所述比率相关的正被服务或等待服务的对所述活动内存库的多个CAS命令。
6.如权利要求1所述的系统,其中,所述预定义比率由内存调度器计算。
7.如权利要求1所述的系统,其中,所述预定义比率是可配置的。
8.一种用于管理DRAM的计算机程序产品,该计算机程序产品包含计算机可读存储设备,该计算机可读存储设备具有其中体现的程序代码,该程序代码可由处理单元执行以
跟踪内存区块中每个DRAM内存库的操作状态,其中所述状态选自以下组成的组:活动的、在等待CAS命令和空闲的;
跟踪与每个内存库的被跟踪操作状态相关的队列中的未完成CAS命令的数量,其中未完成CAS命令选自以下构成的组:在CAS的服务下的和在等待CAS的服务的;
对于每个周期,识别当前周期在选择的队列中等待服务的CAS命令的被跟踪数量,并根据预定义比率评估所识别的数量;和
基于周期评估来管理内存库的操作状态,包括单独地控制内存库的每个的操作状态,其中空闲状态比活动状态消耗更少的电力,并且操作状态的单独控制包括延迟空闲内存库的激活。
9.如权利要求8所述的计算机程序产品,其中,用于管理所跟踪的内存库的操作状态的程序代码还包含:用于限制当前周期的活动内存库的数量的程序代码。
10.如权利要求9所述的计算机程序产品,进一步包含用于调度向空闲内存库发布激活命令的程序代码,包括用于基于周期评估来延迟所述空闲内存库的激活的程序代码。
11.如权利要求8所述的计算机程序产品,进一步包含用于识别至少两个处于空闲状态的内存库、响应调度策略而选择所述内存库的其中之一、并将所选内存库的状态从空闲状态改变为活动状态的程序代码。
12.如权利要求11所述的计算机程序产品,其中,所述调度策略包括针对每个周期用于跟踪每个内存区块中的多个活动内存库以及与所述比率相关的正被服务或等待服务的对所述活动内存库的多个CAS命令的程序代码。
13.如权利要求8所述的计算机程序产品,其中,所述预定义比率由内存调度器计算。
14.如权利要求8所述的计算机程序产品,其中,所述预定义比率是可配置的。
15.一种用于管理DRAM的方法,包含:
跟踪内存区块中每个DRAM内存库的操作状态,其中所述状态选自以下组成的组:活动的、在等待CAS命令和空闲的;
跟踪与每个内存库的被跟踪操作状态相关的队列中未完成CAS命令的数量,其中未完成CAS命令选自以下构成的组:在CAS的服务下的和在等待CAS的服务的;
对于每个周期,识别当前周期在选择的队列中等待服务的CAS命令的被跟踪数量,并根据预定义比率评估所识别的数量;和
基于周期评估来管理内存库的操作状态,包括单独地控制内存库的每个的操作状态,其中空闲状态比活动状态消耗更少的电力,并且操作状态的单独控制包括延迟空闲内存库的激活。
16.如权利要求15所述的方法,其中,管理所述被跟踪内存库的操作状态进一步包含限制当前周期的活动内存库的数量。
17.如权利要求16所述的方法,进一步包含调度激活命令向空闲内存库的发布,其中,所述调度包括基于周期评估来延迟所述空闲内存库的激活。
18.如权利要求15所述的方法,进一步包含识别至少两个处于空闲状态的内存库,响应调度策略而选择所述内存库的其中之一,并将所选内存库的状态从空闲状态改变为活动状态。
19.如权利要求18所述的方法,其中,所述调度策略包括针对每个周期跟踪每个内存区块中的多个活动内存库以及与所述比率相关的正被服务或等待服务的对所述活动内存库的多个CAS命令。
20.如权利要求15所述的方法,其中,所述预定义比率由内存调度器计算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/814646 | 2017-11-16 | ||
US15/814,646 US10572168B2 (en) | 2017-11-16 | 2017-11-16 | DRAM bank activation management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109801659A true CN109801659A (zh) | 2019-05-24 |
CN109801659B CN109801659B (zh) | 2023-04-14 |
Family
ID=64740102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811351833.7A Active CN109801659B (zh) | 2017-11-16 | 2018-11-14 | Dram内存库激活管理 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10572168B2 (zh) |
CN (1) | CN109801659B (zh) |
DE (1) | DE102018119881B4 (zh) |
GB (1) | GB2570041B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009088A (zh) * | 2023-09-25 | 2023-11-07 | 上海芯高峰微电子有限公司 | 内存管理方法、装置、芯片、电子设备及可读存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829348B (zh) * | 2018-05-29 | 2022-03-04 | 上海兆芯集成电路有限公司 | 存储器装置及命令重排序方法 |
US10580481B1 (en) * | 2019-01-14 | 2020-03-03 | University Of Virginia Patent Foundation | Methods, circuits, systems, and articles of manufacture for state machine interconnect architecture using embedded DRAM |
JP7271294B2 (ja) * | 2019-04-24 | 2023-05-11 | キヤノン株式会社 | 情報処理装置および情報処理方法 |
KR20220046211A (ko) * | 2020-10-07 | 2022-04-14 | 에스케이하이닉스 주식회사 | 저항성 메모리 장치를 제어하기 위한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5737258A (en) * | 1995-04-26 | 1998-04-07 | Samsung Electronics Co., Ltd. | Nonvolatile semiconductor memory which is connectable to a DRAM bus |
CN1598964A (zh) * | 2003-06-11 | 2005-03-23 | 因芬尼昂技术股份公司 | 与用于少储存库的控制器兼容的多储存库芯片及操作方法 |
US20120155160A1 (en) * | 2010-12-17 | 2012-06-21 | Everspin Technologies, Inc. | Memory controller and method for interleaving dram and mram accesses |
CN103003804A (zh) * | 2010-07-29 | 2013-03-27 | 松下电器产业株式会社 | 存储器管理装置、图像处理装置及集成电路 |
CN103415842A (zh) * | 2010-11-16 | 2013-11-27 | 阿克蒂菲奥股份有限公司 | 用于数据管理虚拟化的系统和方法 |
CN104391496A (zh) * | 2014-12-09 | 2015-03-04 | 北京四方继保自动化股份有限公司 | 一种工业控制系统数据内存的管理方法 |
US20160216912A1 (en) * | 2010-01-28 | 2016-07-28 | Hewlett Packard Enterprise Development Lp | Memory Access Methods And Apparatus |
US20170069364A1 (en) * | 2015-09-08 | 2017-03-09 | Samsung Electronics Co., Ltd. | Memory system |
US20170168727A1 (en) * | 2015-12-14 | 2017-06-15 | Qualcomm Incorporated | Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache |
CN107003935A (zh) * | 2014-11-20 | 2017-08-01 | 国际商业机器公司 | 优化数据库去重 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154821A (en) * | 1998-03-10 | 2000-11-28 | Rambus Inc. | Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain |
US6219747B1 (en) * | 1999-01-06 | 2001-04-17 | Dvdo Inc | Methods and apparatus for variable length SDRAM transfers |
US7392339B2 (en) | 2003-12-10 | 2008-06-24 | Intel Corporation | Partial bank DRAM precharge |
US7657706B2 (en) * | 2003-12-18 | 2010-02-02 | Cisco Technology, Inc. | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory |
US9384818B2 (en) * | 2005-04-21 | 2016-07-05 | Violin Memory | Memory power management |
US7454632B2 (en) * | 2005-06-16 | 2008-11-18 | Intel Corporation | Reducing computing system power through idle synchronization |
US9542352B2 (en) | 2006-02-09 | 2017-01-10 | Google Inc. | System and method for reducing command scheduling constraints of memory circuits |
US20070260841A1 (en) * | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
US7739461B2 (en) * | 2007-07-10 | 2010-06-15 | International Business Machines Corporation | DRAM power management in a memory controller |
US8838901B2 (en) | 2010-05-07 | 2014-09-16 | International Business Machines Corporation | Coordinated writeback of dirty cachelines |
US8510521B2 (en) * | 2010-09-16 | 2013-08-13 | Apple Inc. | Reordering in the memory controller |
US9256369B2 (en) * | 2012-04-18 | 2016-02-09 | Samsung Electronics Co., Ltd. | Programmable memory controller |
WO2014058994A2 (en) | 2012-10-11 | 2014-04-17 | Everspin Technologies, Inc. | Memory device with timing overlap mode |
EP2926342A4 (en) | 2012-11-30 | 2016-07-13 | Intel Corp | DEVICE, METHOD AND SYSTEM FOR PROVIDING A CLOSURE FOR SEVERAL CHIPS IN A PACKAGE WITH AN INTEGRATED CIRCUIT |
US9355704B2 (en) | 2012-12-28 | 2016-05-31 | Mediatek Inc. | Refresh method for switching between different refresh types based on at least one parameter of volatile memory and related memory controller |
US11243898B2 (en) * | 2014-08-01 | 2022-02-08 | Arm Limited | Memory controller and method for controlling a memory device to process access requests issued by at least one master device |
US20180181335A1 (en) * | 2015-10-05 | 2018-06-28 | Mediatek Inc. | Apparatus and method to speed up memory frequency switch flow |
WO2018081746A1 (en) * | 2016-10-31 | 2018-05-03 | Intel Corporation | Applying chip select for memory device identification and power management control |
-
2017
- 2017-11-16 US US15/814,646 patent/US10572168B2/en not_active Expired - Fee Related
-
2018
- 2018-08-16 DE DE102018119881.7A patent/DE102018119881B4/de active Active
- 2018-11-14 CN CN201811351833.7A patent/CN109801659B/zh active Active
- 2018-11-16 GB GB1818693.2A patent/GB2570041B/en active Active
-
2019
- 2019-08-22 US US16/548,290 patent/US11042312B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5737258A (en) * | 1995-04-26 | 1998-04-07 | Samsung Electronics Co., Ltd. | Nonvolatile semiconductor memory which is connectable to a DRAM bus |
CN1598964A (zh) * | 2003-06-11 | 2005-03-23 | 因芬尼昂技术股份公司 | 与用于少储存库的控制器兼容的多储存库芯片及操作方法 |
US20160216912A1 (en) * | 2010-01-28 | 2016-07-28 | Hewlett Packard Enterprise Development Lp | Memory Access Methods And Apparatus |
CN103003804A (zh) * | 2010-07-29 | 2013-03-27 | 松下电器产业株式会社 | 存储器管理装置、图像处理装置及集成电路 |
CN103415842A (zh) * | 2010-11-16 | 2013-11-27 | 阿克蒂菲奥股份有限公司 | 用于数据管理虚拟化的系统和方法 |
US20120155160A1 (en) * | 2010-12-17 | 2012-06-21 | Everspin Technologies, Inc. | Memory controller and method for interleaving dram and mram accesses |
CN107003935A (zh) * | 2014-11-20 | 2017-08-01 | 国际商业机器公司 | 优化数据库去重 |
CN104391496A (zh) * | 2014-12-09 | 2015-03-04 | 北京四方继保自动化股份有限公司 | 一种工业控制系统数据内存的管理方法 |
US20170069364A1 (en) * | 2015-09-08 | 2017-03-09 | Samsung Electronics Co., Ltd. | Memory system |
US20170168727A1 (en) * | 2015-12-14 | 2017-06-15 | Qualcomm Incorporated | Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009088A (zh) * | 2023-09-25 | 2023-11-07 | 上海芯高峰微电子有限公司 | 内存管理方法、装置、芯片、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
DE102018119881A1 (de) | 2019-05-16 |
US20190146694A1 (en) | 2019-05-16 |
CN109801659B (zh) | 2023-04-14 |
US20190377504A1 (en) | 2019-12-12 |
DE102018119881B4 (de) | 2022-08-04 |
US10572168B2 (en) | 2020-02-25 |
GB2570041A (en) | 2019-07-10 |
GB201818693D0 (en) | 2019-01-02 |
US11042312B2 (en) | 2021-06-22 |
GB2570041B (en) | 2020-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109801659A (zh) | Dram内存库激活管理 | |
CN105653202B (zh) | 一种用于逻辑存储管理的多级方案 | |
EP3005128B1 (en) | Separate memory controllers to access data in memory | |
CN105068940B (zh) | 一种基于Bank划分的自适应页策略确定方法 | |
JP2022514128A (ja) | メモリコントローラのリフレッシュスキーム | |
CN108231109A (zh) | 动态随机存取存储器dram的刷新方法、设备以及系统 | |
CN109863481A (zh) | 用于平台裕度调节和调试的软件模式寄存器访问 | |
CN103915110A (zh) | 一种易失存储器的刷新方法及相关的易失存储器的控制器 | |
KR101204645B1 (ko) | 프리차지 관리의 미세한 세분화를 통한 메모리 처리량 증가 | |
CN105378847A (zh) | Dram子阵列级自动刷新存储器控制器优化 | |
CN106024052A (zh) | 存储器控制器和存储器系统的控制方法 | |
CN103593324A (zh) | 一种具有自学习功能的快速启动低功耗计算机片上系统 | |
CN106919520B (zh) | 访存命令调度方法、装置和系统 | |
CN101957729B (zh) | 逻辑块变换方法及基于该方法兼容用户读写的方法和装置 | |
US11972137B2 (en) | System and memory for artificial neural network (ANN) optimization using ANN data locality | |
US9436625B2 (en) | Approach for allocating virtual bank managers within a dynamic random access memory (DRAM) controller to physical banks within a DRAM | |
CN114444673A (zh) | 基于人工神经网络数据局部性的人工神经网络存储器系统 | |
JP2023543426A (ja) | Dramのリフレッシュ管理リスト | |
Liu et al. | LAMS: A latency-aware memory scheduling policy for modern DRAM systems | |
US10838884B1 (en) | Memory access quality-of-service reallocation | |
CN105359116B (zh) | 缓存器、共享缓存管理方法及控制器 | |
US11922051B2 (en) | Memory controller, processor and system for artificial neural network | |
US20220374154A1 (en) | Methods and apparatus for issuing memory access commands | |
CN102436356B (zh) | 写页面空间分配方法和装置 | |
CN113946435A (zh) | 内存管理技术及计算机系统 |
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 |