CN104903962B - 具有自适应数量的打开行的存储器设备 - Google Patents
具有自适应数量的打开行的存储器设备 Download PDFInfo
- Publication number
- CN104903962B CN104903962B CN201480004103.3A CN201480004103A CN104903962B CN 104903962 B CN104903962 B CN 104903962B CN 201480004103 A CN201480004103 A CN 201480004103A CN 104903962 B CN104903962 B CN 104903962B
- Authority
- CN
- China
- Prior art keywords
- row
- address
- memory
- buffer
- row address
- 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
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/18—Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/0653—Monitoring storage devices or systems
-
- 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/0673—Single storage device
-
- 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/408—Address circuits
- G11C11/4082—Address Buffers; level conversion 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/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
Abstract
一种存储器设备,包括存储器阵列,至少一个行地址缓冲器,一组行数据缓冲器、行解码器、感测放大器阵列、以及解复用器。该存储器阵列包括被组织成行和列的数据元素。所述行中的每一行能通过行地址来定址。所述行中的每一行中的每个数据元素能通过列地址来定址。所述至少一个行地址缓冲器保持所选一组连续行地址中的一所选行地址。该组行数据缓冲器保持与所选该组连续行地址相对应的所选行的相应内容。该行解码器解码所选行地址以访问所选行。该感测放大器阵列读取所选行并将所选行的内容通过该解复用器传送至所述行数据缓冲器之一,并且将所选行的内容写回到所选行。
Description
公开领域
本文公开的实施例涉及存储器设备领域,更具体而言,涉及能够具有自适应数量的打开行的存储器设备。
背景技术
同步动态随机存取存储器(SDRAM)设备是与外部时钟信号(诸如系统时钟信号)同步地操作的各种类型的动态随机存取存储器(DRAM)。SDRAM的输入和输出数据被同步至系统时钟信号的活跃沿。双速率(DDR)SDRAM是提供常规SDRAM的操作速度的双倍的更快的存储器设备。DDR SDRAM允许在系统时钟信号的上升沿和下降沿两者上的数据传输。DDRSDRAM通常在多核系统中使用。
SDRAM或DDR SDRAM包括一组存储器阵列(也被称为排(bank))。每个存储器阵列包括被组织成行和列的数据元素。行中的每一个数据元素可通过列地址来定址,并且通常是数据字。行也被称为页。当前,在SDRAM或DDR SDRAM中,每次仅可打开一行。一旦打开行的内容被锁存在行数据缓冲器中,对打开行中的不同列地址的后续存储器请求可以从该行数据缓冲器快速地提供。这种存储器访问被称为行击中(row hit)。如果请求一不同行且该不同行需要打开,则该存储器访问被称为“行未击中(row miss)”。对于行击中,仅该行数据缓冲器被利用,而不需要对该存储器阵列的访问。
SDRAM或DDR SDRAM通常在多核系统中使用。多核系统包括多个处理器。处理器通常请求具有不同的存储器访问模式的存储器访问。由于请求者的不同的存储器访问模式,SDRAM或DDR SDRAM中的固定行大小可能导致SDRAM或DDR SDRAM的次优能力或次优性能。
利用大的行大小通常可以增加行击中的数量,但是将导致打开行时的功耗的增加。使用小的行大小可减少打开行时的功耗,但是可能导致不良的性能,因为对于具有高访问局部性的请求者而言将有更少的行击中。
概述
本发明的各示例性实施例涉及一种具有自适应数量的打开行的存储器设备,一种打开此类设备中的行的方法,一种用于访问此类存储器设备的存储器控制器,以及一种包括此类存储器设备的系统。
本发明的一个实施例是一种存储器设备。该存储器设备包括存储器阵列,至少一个行地址缓冲器,一组行数据缓冲器、行解码器、感测放大器阵列、以及解复用器。该存储器阵列包括被组织成行和列的数据元素。所述行中的每一行能通过行地址来定址。一行中的每个数据元素能通过列地址来定址。该至少一个行地址缓冲器用于保持所选择的一组连续行地址中的一所选行地址。所述行数据缓冲器组用于保持与所选择的该组连续行地址相对应的所选行的相应内容。耦合至所述至少一个行地址缓冲器和所述存储器阵列的所述行解码器用于接收所选行地址并用于解码所选行地址以访问存储器阵列的所选行。耦合至所述存储器阵列并耦合至所述一组行数据缓冲器的所述感测放大器阵列用于读取所选行并将所选行的内容传送给所述行数据缓冲器中的一个行数据缓冲器,以及用于将所选行的内容写回到所选行。耦合至所述感测放大器阵列和所述一组行数据缓冲器的所述解复用器用于将所选行的内容从所述感测放大器阵列提供至所述行数据缓冲器中的所述一个行数据缓冲器。
本发明的一个实施例是一种用于打开存储器设备中的行的方法。该存储器设备包括存储器阵列,所述存储器阵列包括被组织成行和列的数据元素,所述行中的每一行能通过行地址来定址,一行中的每个数据元素能通过列地址来定址。该方法包括以下操作:(a)接收打开行的第一命令,所述命令包括所选行地址和指定从所选行地址开始的要打开的行的数量的行模式指示符;(b)将所选行地址加载到至少一个行地址缓冲器中;(c)使用行解码器来解码所选行地址以访问所述存储器阵列中的所选行;(d)读取所选行并使用感测放大器阵列来将所选行的内容传送到一组行数据缓冲器中的相应行数据缓冲器;以及如果要打开的行的指定数量大于1,则:(e)基于所选行地址来计算所选连续行地址;以及(f)重复操作(b)、(c)和(d),其中用所选连续行地址来取代所选行地址。
本发明的一个实施例是一种用于访问存储器设备的存储器控制器。该存储器设备包括存储器阵列,该存储器阵列包括被组织成行和列的数据元素。所述行中的每一行能通过行地址来定址。一行中的每个数据元素能通过列地址来定址。该存储器设备能够具有自适应数量的打开行。该存储器控制器包括仲裁器、存储器映射器、以及命令生成器。该仲裁器用于接收和调度来自请求者的存储器访问请求。该存储器访问请求包括逻辑地址。该仲裁器被配置成确定针对该存储器访问请求的打开行的自适应数量。所述存储器映射器被耦合至所述仲裁器以用于将所述逻辑地址转换为包括行地址和列地址的物理地址。所述命令生成器被耦合至所述存储器映射器和所述仲裁器以用于生成与该存储器访问请求相对应的命令序列并用于向所述存储器设备发送所述命令序列。所述命令序列中的一个命令包括指定打开行的自适应数量的行模式指示符。
本发明的一个实施例是一种包括存储器设备、存储器控制器和处理器的系统,所述存储器设备能够具有自适应数量的打开行。该存储器设备包括存储器阵列,所述存储器阵列包括被组织成行和列的数据元素,所述行中的每一行能通过行地址来定址,一行中的每个数据元素能通过列地址来定址。该存储器设备包括用于保持该自适应数量的行的内容的一组行数据缓冲器。所述存储器控制器被配置成接收来自请求者的存储器访问请求并耦合至所述存储器设备以访问所述存储器设备。该处理器被耦合至该存储器控制器。该处理器能够执行行确定模块。所述自适应数量的打开行是由所述存储器控制器通过监视所述请求者的存储器访问模式来确定的,或者是由所述处理器通过执行所述行确定模块来确定的。
附图简述
给出附图以帮助对本发明实施例进行描述,且提供附图仅用于解说实施例而非对其进行限定。
图1是解说本发明的一个实施例可在其中被实践的系统的图示。
图2解说了根据本发明的一个实施例来构造的存储器设备的实施例。
图3是解说在本发明的一个实施例构造的存储器设备中打开行的过程的流程图。
图4是解说在本发明的一个实施例构造的存储器设备中对请求从行进行读取的命令作出响应的过程的流程图。
图5是解说在根据本发明的一个实施例构造的存储器设备中对请求向行进行写入的命令作出响应的过程的流程图。
图6是解说在根据本发明的一个实施例构造的存储器设备中对请求预充电的命令作出响应的过程的流程图。
图7是解说图1中示出的存储器控制器120的实施例的图示。
图8示出了现有技术的SDRAM的简化状态图。
图9是解说现有技术的典型SDRAM的同一存储器阵列中的两个不同行的两个激活的时序图的图示。
图10是解说根据本发明的一实施例构造的SDRAM的同一存储器阵列中的两个不同行的两个激活的时序图的图示。
图11是解说根据本发明的一实施例构造的SDRAM的简化状态图的图示。
详细描述
本发明的各方面在以下针对本发明具体实施例的描述和有关附图中被公开。可以设计替换实施例而不会脱离本发明的范围。另外,本发明中众所周知的元素将不被详细描述或将被省去以免湮没本发明的相关细节。
这些实施例的所公开的一个特征可能是通常作为被描绘为流程图、流图、结构图、或框图的过程来描述的。尽管流程图可能会把诸操作描述为顺序过程,但是这些操作中有许多操作能够并行或并发地执行。另外,这些操作的次序可以被重新安排。过程在其操作完成时终止。过程可对应于方法、程序、规程等。一个实施例可通过描绘物理结构的示意图来描述。要理解,示意图解说了基本概念,并且可以不是按比例尺的或者按照精确比例来描绘该结构。
如本文所使用的,术语“耦合至……”表示“与……处于电通信”。其不必然暗示“直接连接于……”耦合在一起的元件可以彼此直接连接,或者可以通过一个或多个中间元件彼此电通信。
本发明的各实施例涉及具有自适应数量的打开行的存储器设备、在此类设备中打开行的方法、用于访问此类存储器设备的存储器控制器、以及包括此类存储器设备的系统。
图1是本发明的一个实施例可在其中被实践的系统100的图示。系统100包括中央处理系统110、存储器控制器120、存储器设备130、以及多个请求者140i,其中i=1,2,..,n。
中央处理系统110包括处理器112。处理器112可以是具有相关联的高速缓存存储器和存储器管理单元的处理器核的形式。处理器112表示任何类型架构的中央处理单元,诸如使用超线程、安全、网络、数字媒体技术的处理器、单核处理器、多核处理器、嵌入式处理器、移动处理器、微控制器、数字信号处理器、超标量计算机、矢量处理器、单指令多数据(SIMD)计算机、复杂指令集计算机(CISC)、精简指令集计算机(RISC)、极长指令字(VLIW)、或混合架构。
处理器112可包括行确定模块116。行确定模块116可基于使用情形来计算存储器设备130中要打开的行的自适应数量。行确定模块116可以被实现为硬件模块或软件模块。在一个实施例中,行确定模块116被实现为在处理器112上运行的软件线程以监视存储器控制器120并计算存储器设备130中要打开的行的自适应数量。在一个实施例中,处理器112执行行确定模块116以获得要打开的行的自适应数量,并随后将要打开的行的自适应数量提供给存储器控制器120。
中央处理系统110可经由总线150与存储器控制器120通信并与请求者140i通信,i=1,2,..,n。
请求者140i(其中i=1,2,...,n)可以是能够经由总线150向存储器控制器120发送存储器访问请求的不同处理器或其他设备。
存储器控制器120被配置成经由总线150从中央处理系统110和请求者140i(i=1,2,...,n)接收存储器访问请求以及经由存储器总线125访问存储器设备130。
存储器控制器120在不同请求者(即,中央处理器110和请求者140i,i=1,2,...,n)之间进行仲裁、排定不同请求者的优先级、以及按受调度方式每次一个地向所述请求者中的每一个请求者准予服务。存储器控制器120将每个存储器访问请求转换成命令序列并将该命令序列发送给存储器设备130。该命令序列中的一个命令包括打开存储器设备130中的多个行的请求。要打开的行的数量是自适应的。可打开的行的最大数量等于存储器设备130的存储器阵列中的行数据缓冲器的数量。
在一个实施例中,存储器控制器120通过监视正被服务的请求者的存储器访问模式来确定要打开的行的自适应数量。正被服务的请求者可以是中央处理系统110或请求者140i,i=1,2,...,n之一。存储器访问局部性(locality)可以根据正被服务的请求者的存储器访问模式来确定。存储器访问局部性是指以下概念:如果在特定时间请求特定存储器位置,则很可能不久以后将请求附近的存储器位置。
要打开的行的自适应数量由存储器控制器120根据监视正被服务的请求者的存储器访问模式来确定,或者由处理器112根据执行行确定模块来确定。
存储器设备130包括存储器阵列集合(也被称为排)。每个存储器阵列包括被组织成行和列的数据元素。所述行中的每一行可通过行地址来定址。行中的每一个数据元素可通过列地址来定址。存储器设备130能够具有存储器阵列中自适应数量的打开的行。存储器设备130包括用于保持自适应数量的打开的行的内容的一组行数据缓冲器。
存储器设备130可以是同步动态随机存取存储器(SDRAM)、双数据率同步动态随机存取存储器(DDR SDRAM)或任何其他类型的动态随机存取存储器(DRAM)。
存储器设备130的具有自适应数量的打开的行的特征可以被认为是具有自适应页大小的特征,其中打开的页可包含自适应数量的打开的行,而不仅是如现有技术中的仅一个打开的行。
图2解说了根据本发明的一个实施例构造的存储器设备的实施例200。系统200包括一组存储器阵列,每个存储器阵列具有相对应的外围电路。为了清楚的目的,图2解说了仅具有一个存储器阵列260的系统200。系统200包括控制电路210、一组行地址缓冲器230、复用器240、行解码器250、存储器阵列260、感测放大器阵列270、解复用器275、一组行数据缓冲器280、以及列解码器290。
控制电路210包括控制逻辑212和定址电路220。
控制逻辑212被配置成接收控制信号202作为输入。控制信号202包括命令。控制逻辑212被配置成解码该命令并驱动系统200的其余电路系统。在一个实现中,控制信号202包括系统时钟(CK)信号、时钟使能(CKE)信号、行地址选通(RAS)信号、列地址选通(CAS)信号、写使能(WE)信号、以及芯片选择(CS)信号。CK和CKE信号被用来使存储器设备200的操作与外部系统时钟同步。RAS、CAS、WE和CS的不同组合定义由控制逻辑212接收的不同命令。当命令为打开存储器阵列260中的指定行的“激活”命令时,控制信号202还包括“加载模式寄存器”命令以将行模式指示符加载到控制逻辑212的存储器模式寄存器214中。行模式指示符被用来指定要打开的行的数量。
定址电路220被耦合至控制逻辑212。定址电路220从控制逻辑212接收经解码的控制信号。定址电路220接收地址信号204作为输入。地址信号204提供命令的地址部分。定址电路220在激活命令下从地址信号204接收行地址。定址电路220向组行地址缓冲器230中的第一缓冲器RAB0提供所接收到的行地址。如果存储器模式寄存器214中的行模式指示符指示要打开的行的数量为M(例如M等于4),则定址电路220从接收到的行地址计算M-1个连续行地址并将该M-1个连续行地址分别提供给行数据缓冲器组230中的其余行地址缓冲器RAB1、RAB2、RAB3。定址电路220通过使用简单的递增来从所接收的行地址计算M-1个连续行地址。注意,在此实施例中,组行地址缓冲器230中的行地址缓冲器的数量等于行数据缓冲器组280中的行数据缓冲器的数量。如果在该行数据缓冲器组280中存在N个行数据缓冲器,则在M等于或小于N的情况下,该行模式指示符可指定要打开的M个行。定址电路220在读或写命令下从地址信号204接收列地址。定址电路220向列解码器290提供所接收到的列地址。
在一个实施例中,组行地址缓冲器230通过使用单个寄存器来实现,该单个寄存器被配置成每次一个地保持连续的行地址。定址电路220从所接收到的行地址动态地计算连续行地址。当每次一个地从存储器阵列260读取行时,行数据缓冲器组280被配置成保持分别与该连续行地址相对应的行的内容。在此实施例中,如果在行数据缓冲器组280中存在N个行数据缓冲器,则在M等于或小于N的情况下,该行模式指示符可指定要打开的M个行。在此实施例中,在使用单个寄存器来实现行地址缓冲器230的情况下,不需要复用器240。
在其中该组行地址缓冲器230包括多于一个行地址缓冲器的图2的实施例中,复用器240被耦合至该组行地址缓冲器230并耦合至行解码器250以选择被保持在行地址缓冲器230中所选一个行地址缓冲器中的行地址并向行解码器250提供所选行地址。
行解码器250被耦合至存储器阵列260。行解码器250从复用器240(或在使用单个寄存器来实现行数据缓冲器230的实施例中从该单个寄存器)接收所选行地址,并访问与所选行地址相对应的所选行。
存储器阵列260包括被组织成行和列的数据元素。所述行中的每一行可通过行地址来定址。行中的每一个数据元素可通过列地址来定址。
感测放大器阵列270耦合至存储器阵列260并经由解复用器275耦合至该组行数据缓冲器280。感测放大器阵列270读取所选行并将所选行的内容传送至行数据缓冲器280之一。感测放大器阵列270还被用来在由控制电路210接收到“预充电(Precharge)”命令时将所选行的内容写回到存储器阵列260中的所选行。当控制电路210接收到预充电命令时,使用感测放大器阵列270来将行数据缓冲器280中的内容一个一个地写回到存储器阵列260中的打开行。
取代如上文所述地在接收到预充电命令时使用行数据缓冲器280中的内容一个接一个地写回所有打开的行,在一个实施例中,感测放大器阵列270被配置成在完成将所选行的内容发送至行数据缓冲器280之一时将所选行的内容写回到所选行。
解复用器275被耦合至感测放大器阵列270和该组行数据缓冲器280。解复用器275将所选行的内容从感测放大器阵列提供至行数据缓冲器280之一。行数据缓冲器280中接收到所选行的内容的该一个行数据缓冲器对应于行地址缓冲器230中保持所选行地址的该一个行地址缓冲器。
该组行数据缓冲器280对应于该组行地址缓冲器230。该组行数据缓冲器280中的每个行数据缓冲器被用来保持与该组行地址缓冲器230中相对应的行地址缓冲器中所保持的所选行地址相对应的所选行的内容。该组行数据缓冲器280被用于保持与被保持在行地址缓冲器230中的该组连续的所选行地址相对应的所选行的相应内容。该组行数据缓冲器280被用作系统200的输入/输出缓冲器。在一个实施例中,该组行数据缓冲器280包括4个行数据缓冲器,如图2中所解说的。在另一实施例中,该组行数据缓冲器280包括两个行数据缓冲器。行数据缓冲器280可以使用触发器或脉冲锁存器或其他存储结构来实现。
在读命令或写命令下,定址电路220接收来自地址信号204的列地址。读命令请求从打开的行中在所接收到的列地址处指定的一行进行读取。写命令请求写入到打开的行中在所接收到的列地址处指定的一行。打开的行中指定的一行对应于行数据缓冲器280中的一个行数据缓冲器。定址电路220向列解码器290提供所接收到的列地址。列解码器290访问行数据缓冲器,该行数据缓冲器保持与打开的行中指定的一行相对应的内容并访问该内容内与该列地址相对应的位置。随后对该位置处的行数据缓冲器的内容进行读或写。读请求通过将数据从行数据缓冲器传送至输入/输出端口295来服务。在写请求的情况下,来自输入/输出端口295的传入数据被写到行数据缓冲器280中的一个行数据缓冲器。
当在激活命令之后控制电路220接收到预充电命令时,通过使用相对应的行数据缓冲器的内容以及感测放大器阵列每次一个地写回到该存储器阵列中打开的行以及通过关闭存储器阵列中打开的行来服务该预充电命令。打开的行的地址是从该组行地址缓冲器230获得的。在其中仅使用一个寄存器来实现该组行地址缓冲器的实施例中,可以容易地重新计算打开的行的地址。
图3是解说在根据本发明的一个实施例构造的存储器设备中打开行的过程300的流程图。该存储器设备包括存储器阵列,所述存储器阵列包括被组织成行和列的数据元素,所述行中的每一行能通过行地址来定址,一行中的每个数据元素能通过列地址来定址。
在开始之际,过程300接收打开行的第一命令(框302)。该命令包括所选行地址以及行模式指示符。行模式指示符指定从所选行地址开始的要打开的行的数量。过程300将所选行地址加载到至少一个行地址缓冲器中(框304)。过程300随后使用行解码器来解码所选行地址以访问该存储器阵列中的所选行(框306)。过程300读取所选行并使用感测放大器阵列将所选行的内容传送给一组行数据缓冲器中的相应行数据缓冲器(框308)。如果要打开的行的指定数量不大于1,则过程300终止。如果要打开的行的指定数量大于1,则过程300基于所选行地址来计算所选连续行地址(框310)并重复框304、306和308中的操作,其中用该所选连续行地址来取代所选行地址(框312)。如果要打开的行的指定数量等于N,其中N是大于2的数,则过程300重复框310和框312中的操作,直到从存储器阵列读取的指定N行的内容被保持在该组行数据缓冲器中的相应行数据缓冲器中(框314)。过程300随后终止。
图4是解说在根据本发明的一个实施例构造的存储器设备中对请求从行进行读取的命令进行响应的过程400的流程图。读取命令在激活命令之后。
在开始之际,过程400接收请求从打开的指定数量的行中所标识的行进行读取的命令(框410)。所标识的行的内容被保持在该组行数据缓冲器的相应行数据缓冲器中。过程400响应于该命令而从相应的行数据缓冲器进行读取(框420)。过程400随后终止。
图5是解说在根据本发明的一个实施例构造的存储器设备中对请求向行进行写入的命令进行响应的过程500的流程图。写入命令在激活命令之后。
在开始之际,过程500接收请求向打开的行中所标识的行进行写入的命令(框510)。该命令包括输入数据。所标识的行的内容被保持在相应的行数据缓冲器中。过程500将该输入数据写入到保持所标识的行的内容的相应行数据缓冲器中(框520)。过程500随后终止。
图6是解说在根据本发明的一个实施例构造的存储器设备中对请求预充电的命令进行响应的过程600的流程图。预充电命令在激活命令之后。
在开始之际,过程600接收请求预充电的命令(框610)。过程600使用相应的行数据缓冲器中的内容和感测放大器阵列每次一个地写回到该存储器阵列中打开的行(框620)。打开的行的行地址被保持在该组行地址缓冲器中。过程600随后关闭存储器阵列中的打开的行(框630)。过程600随后终止。
图7是解说图1中示出的存储器控制器120的实施例700的图示。系统700包括仲裁器710、存储器映射器720、以及命令生成器730。
仲裁器710被配置成从多个请求者接收存储器访问请求。仲裁器710被配置成在各请求者之间进行仲裁以每次服务一个请求者。仲裁器710有序地调度对服务的存储器访问请求。来自请求者的存储器访问请求包括数据元素的逻辑地址。仲裁器710还被配置成为正被服务的存储器访问请求确定存储器阵列中要打开的行的数量。
在本发明的一个实施例中,仲裁器710根据从中央处理系统110中所包括的处理器112接收到的指令来确定存储器阵列中要打开的行的数量。来自处理器112的指令指定该存储器阵列中要打开的行的数量。中央处理系统110的处理器112能够执行处理器112中所包括的行确定模块116。所执行的行确定模块116基于通过监视系统700所获得的使用情形来确定存储器阵列260中要打开的行的数量。
在本发明的另一实施例中,仲裁器710通过监视正被服务的请求者的存储器访问模式来确定存储器阵列中要打开的行的数量。仲裁器710监视请求者的存储器使用模式来测量存储器访问局部性。在一个实施例中,仲裁器710被配置成通过监视行未击中与行击中的比值来监视该请求者的存储器访问模式,并且当行未击中与行击中的比值超出一阈值时确定要打开的行的数量大于一行。在其他实施例中,监视请求者的存储器访问模式以及确定要打开的行的数量的操作可以由存储器控制器120中所包括的另一模块来执行。
一旦打开的行的内容被锁存在行数据缓冲器(或在多个打开的行的情况下,打开的行的内容被锁存在多个行数据缓冲器)中,对打开的行(或多个打开的行)中的不同列地址的后续存储器请求可从该行数据缓冲器(或多个行数据缓冲器)快速地服务。这种存储器访问被称为行击中(row hit)。如果一不同行被请求且该行数据缓冲器(或多个行数据缓冲器)的内容(或多个内容)需要被改变,则该存储器访问被称为行未击中。对于行击中,仅该行数据缓冲器280被利用,而不需要对存储器阵列260的访问。
存储器映射器720被耦合至仲裁器710。存储器映射器720被配置成将数据元素的逻辑地址转换为包括行地址和列地址的物理地址。
命令生成器730被耦合至存储器映射器720和仲裁器710。命令生成器730被配置成生成与存储器访问请求相对应的命令序列,以及向存储器设备130发送该命令序列。所述命令序列中的一个命令包括指定要打开的行的数量的行模式指示符。例如,加载模式寄存器命令被发送至存储器设备130以将行模式指示符加载到存储器设备130的存储器模式寄存器中。
在现有技术的典型SDRAM中,每个存储器阵列可仅打开一行。该行在存储器控制器的所谓“打开页”策略下保持打开。当请求打开相同存储器阵列中的新行时,SDRAM关闭当前打开的行并随后激活该新行,从而导致长等待时间惩罚。下面描述典型SDRAM的操作中涉及的各种命令和时间延迟。
图8示出了现有技术的SDRAM的简化状态图。SDRAM可被描述为具有各种状态的简单状态机。为了清楚起见,图8仅示出以下状态:空闲、活跃、读取、带自动预充电的读取、写入、带自动预充电的写入、以及预充电。省略了其他状态。出于清楚目的,现在将仅参考一个存储器阵列来描述状态图。从一个状态到另一个状态的转换由命令来触发,并在该状态机准备好对另一命令做出响应之前要求最小延迟时间。在状态图上,状态转换被示出为箭头,而状态转换的触发命令序列被指示为靠近该箭头。在状态图上,具有细宽度的箭头指示由命令序列触发的状态转换,而具有厚宽度的箭头指示由自动序列触发的状态转换。
在执行初始化序列之后或在“刷新”操作之后,SDRAM处于空闲状态。在空闲状态中,存储器阵列被预充电。
在SDRAM准备好对读或写命令做出响应之前,存储器阵列中的行必须首先被打开,即,激活。为了激活存储器阵列中的行,存储器控制器发送指定要访问的存储器阵列和行的激活(ACT)命令。响应于该激活命令,状态机从空闲状态移动至活跃状态。激活行所需的时间被称为行-列延迟,也被称为“行命令延迟”或“行命令到列命令延迟”,并且由符号tRCD来表示。此变量tRCD表示在SDRAM的控制电路的命令接口处锁存激活命令,对该控制电路进行编程,以及将数据内容从该存储器阵列中的指定行读取到感测放大器阵列中并将该数据内容锁存到该行数据缓冲器,以准备对该行的内容内的指定列地址的访问所需的最小时间。
在指定行被激活后,感测放大器阵列和行数据缓冲器包含该指定行的内容。从该指定行到该感测放大器阵列的此读取对该指定行是破坏性的。此时,读取(RD)或写入(WR)命令可被发出,指定要被访问的起始列地址。响应于读取(RD)命令,该状态机从活跃状态转换到读取状态。响应于写入(WR)命令,该状态机从活跃状态转换到写入状态。从该打开行读取指定列地址处的数据的时间被称为列地址选通(CAS)等待时间并由符号tCAS来表示。变量tCAS表示锁存SDRAM的控制电路的命令接口处的命令、对该控制电路进行编程、选通(gate)来自行数据缓冲器的所请求数据并将该数据放在存储器总线上所需的最小时间。
在现有技术的SDRAM中,每个存储器阵列每次仅可打开一行。对同一存储器阵列中的另一行的访问需要首先关闭打开的行。只要该行保持打开,则存储器控制器就可向相同打开的行发出其他读取(RD)命令,且该状态机保持在读取状态。类似地,只要该行保持打开,则存储器控制器就可向相同打开的行发出其他写入(WR)命令,且该状态机保持在写入状态。当在没有新的读取或写入命令的情况下已经流逝了某个时间区间时,该状态机自动返回到活跃状态。当该打开的行不再被需要或当该存储器阵列中的另一行需要被打开时,存储器控制器发出预充电(PR)命令以关闭该打开的行。响应于该预充电(PR)命令,该状态机从活跃状态转换到预充电状态,随后转换到空闲状态。为了打开另一行,该存储器控制器发出另一激活(ACT)命令,且该状态机从空闲状态移动至活跃状态,如同上面描述的。
带自动预充电的读取(RDA)命令或带自动预充电的写入(WRA)命令可由该存储器控制器发送。这将允许SDRAM的控制电路一满足特定条件就自动关闭打开的行:(1)自从发出激活命令起已经流逝了排激活时间(也被称为RAS激活时间,被表示为tRAS)的最小值,以及(2)自从发出了最近读取命令起已经流逝了读取到预充电延迟(被表示为tRTP)的最小值。响应于带自动预充电的读取(RDA)命令,该状态机首先移动至带自动预充电的读取状态,随后移动至预充电状态,随后移动至空闲状态。响应于带自动预充电的写入(WDA)命令,该状态机首先移动至带自动预充电的写入状态,随后移动至预充电状态,随后移动至空闲状态。
预充电准备数据线以及SDRAM的感测放大器阵列以将该感测放大器阵列中所存储的电荷传送回打开的数据元素行。预充电使得SDRAM核准备好打开下一行数据元素。预充电打开的行的时间被称为行访问选通预充电延迟,也被称为排预充电延迟,并由符号tRP表示。同一存储器阵列的连续激活命令之间的最小时间区间被称为该存储器设备的行周期时间并且由符号tRC表示。行周期时间(tRC)等于排激活时间(tRAS)与排预充电延迟(tRP)之和。SDRAM中的两个不同存储器阵列的两个激活命令之间的最小时间区间被称为读取到读取延迟,由符号tRRD来表示。上述所有时间区间(也被称为延迟)均用时钟周期来表达。为了满足所需的时间延迟,该存储器控制器在其他命令之间发送请求无操作(被表示为Nop)的命令。
图9是解说现有技术的典型SDRAM的同一存储器阵列中的两个不同行的两个激活的时序图的图示。
参考图9,第一行示出了从存储器控制器接收的时钟信号CK及其互补时钟信号CK#,其中时间轴为从左到右。图9中的第二行示出与图9的第三行上所示的命令相关联的地址信号。该地址信号和命令是从存储器控制器接收的。图9中示出的行-列延迟(由tRCD表示)、读取到读取延迟(由tRRD表示)、排激活时间(被表示为tRAS)、排预充电延迟(由tRP表示)、以及行周期时间(由tRC表示)是如图8的描述中所描述的。
参考图9,第二激活命令之后的第二读取命令在图9中未示出。类似于第一读取命令,在同一行-列延迟(tRCD)之后发出的第二读取命令已从第二激活命令流逝。因此,从第一读取操作完成到第二读取操作开始计数,所导致的等待时间等于排预充电延迟(tRP)与行-列延迟(tRCD)之和。
图10是解说根据本发明的一实施例构造的SDRAM的同一存储器阵列中的两个不同行的两个激活的时序图的图示。在从存储器控制器120接收到激活命令之后,从指定行地址开始的多于一行可被打开并且保持打开,直到不再需要打开的行或直到激活当前未打开的行的命令被接收到为止。要打开的行的数量是自适应的并且由存储器控制器120来确定。在访问打开的行中的新行时,不需要关闭当前打开的行(即,不需要对该存储器阵列进行预充电)并且不需要激活该新行。图10解说了此类情形。图10示出了对已经打开的行中的一新行的读取命令可在前一读取操作完成时被发出而无需中间的预充电命令和新激活命令。即,在其中在第一读取之后对已经打开的行中的一不同行做出第二读取的情形中,与其时序图如图9中所示的现有技术的SDRAM不同,不存在由于与现有技术中的SDRAM中的第二读取相关联的排预充电延迟(tRP)和行-列延迟(tRCD)所导致的等待时间。
图11是解说根据本发明的一实施例构造的SDRAM的简化状态图的图示。根据本发明的一实施例构造的SDRAM可被描述为具有各种状态的简单状态机。为了清楚起见,图11仅示出以下状态:空闲、活跃、读取、多行读取、多行写入、带自动预充电的读取、写入、带自动预充电的写入、以及预充电。省略了其他状态。出于清楚目的,现在将仅参考一个存储器阵列来描述状态图。从一个状态到另一个状态的转换由命令来触发,并在该状态机准备好对另一命令做出响应之前要求最小延迟时间。在图11的状态图上,状态转换被示出为箭头,而状态转换的触发命令被指示为靠近该箭头。在状态图上,具有细宽度的箭头指示由命令序列触发的状态转换,而具有厚宽度的箭头指示由自动序列触发的状态转换。图11的状态图由于增加了多行读取状态和多行写入状态而与图8的状态图不同。
在执行初始化序列之后或在“刷新”操作之后,SDRAM处于空闲状态。在空闲状态中,存储器阵列被预充电。
为了打开SDRAM中的行,存储器控制器发送指定要访问的存储器阵列和行的地址的激活(ACT)命令。该激活命令还包括用于指定要打开的连续行的数量的行模式指示符。响应于该激活命令,状态机从空闲状态移动至活跃状态。
如果该行模式指示符指定仅要打开一行,则将仅激活带有该指定行地址的行。在指定行被激活后,感测放大器阵列和行数据缓冲器包含该指定行的内容。从该指定行到该感测放大器阵列的此读取对该指定行是破坏性的。此时,读取(RD)或写入(WR)命令可被发出,指定要被访问的起始列地址。响应于读取(RD)命令,该状态机从活跃状态转换到读取状态。响应于写入(WR)命令,该状态机从活跃状态转换到写入状态。只要所指定的行保持打开,该存储器控制器就可向该相同打开的行发出其他读取(RD)命令,且该状态机保持在读取状态。类似地,只要所指定的行保持打开,该存储器控制器就可向该相同打开的行发出其他写入(WR)命令,且该状态机保持在写入状态。当在没有新的读取或写入命令的情况下已经流逝了某个时间区间时,该状态机自动返回到活跃状态。
如果该行模式指示符指定要打开N个行,其中N大于1并小于或等于SDRAM中的行数据缓冲器的总数量,则每次一个地激活所指定的行和N-1个连续行。当该N个行中的每一行都被激活时,正被激活的行的内容被从该存储器阵列中的该行读取到感测放大器阵列中并随后读取到该N个相应行数据缓冲器之一中。响应于读取(RD)命令,该状态机从活跃状态转换到多行读取状态。响应于写入(WR)命令,该状态机从活跃状态转换到多行写入状态。
只要该N个行保持打开,该存储器控制器就可向该N个打开的行中的任一行发出其他读取(RD)命令,且该状态机保持在多行读取状态。类似地,只要该N个行保持打开,该存储器控制器就可向该N个打开行中的任一行发出其他写入(RD)命令,且该状态机保持在多行写入状态。当在没有新的读取或写入命令的情况下已经流逝了某个时间区间时,该状态机自动返回到活跃状态。当该N个打开的行不再被需要或当该存储器阵列中的未打开的行需要被打开时,该存储器控制器发出预充电(PR)命令以关闭该N个打开的行。响应于该预充电(PR)命令,该状态机从活跃状态转换到预充电状态,随后转换到空闲状态。为了打开另一行,该存储器控制器发出另一激活(ACT)命令,且该状态机从空闲状态移动至活跃状态,如同上面描述的。
带自动预充电的读取(RDA)命令或带自动预充电的写入(WRA)命令可由该存储器控制器发送。这将允许SDRAM的控制电路一满足特定条件就一次一个地自动关闭打开的行:(1)自从发出激活命令起已经流逝了排激活时间(也被称为RAS激活时间,被表示为tRAS)的最小值,以及(2)自从发出了最近读取命令起已经流逝了读取到预充电延迟(被表示为tRTP)的最小值。响应于带自动预充电的读取(RDA)命令,该状态机首先移动至带自动预充电的读取状态,随后移动至预充电状态,随后移动至空闲状态。响应于带自动预充电的写入(WDA)命令,该状态机首先移动至带自动预充电的写入状态,随后移动至预充电状态,随后移动至空闲状态。
措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何实施例不必被解释为优于或胜过其他实施例。同样,术语“本发明的各实施例”并不要求本发明的所有实施例都包括所讨论的特征、优点、或工作模式。
本文中所使用的术语仅出于描述特定实施例的目的,而并不旨在限定本发明的实施例。如本文所使用的,单数形式的“一”、“某”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括”、“具有”、“包含”和/或“含有”在本文中使用时指明所陈述的特征、整数、步骤、操作、元素、和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或其群组的存在或添加。
此外,一些实施例是根据将由例如计算设备的元件执行的动作序列来描述的。将认识到,本文描述的各种动作能由专用电路(例如,专用集成电路(ASIC))、由正被一个或多个处理器执行的程序指令、或由这两者的组合来执行。因此,本发明的各种方面可以用数种不同形式来体现,所有这些形式都已被构想落在所要求保护的主题内容的范围内。另外,对于本文描述的每个实施例,任何此类实施例的对应形式可在本文中被描述为例如“被配置成执行所描述的动作的逻辑”。
而且,一实施例的全部或部分可以根据特定特征、功能取决于应用而通过各种手段来实现。这些手段可包括硬件、软件、或固件、或其任何组合。
本领域技术人员将领会,信息和信号可使用各种不同技术和技艺中的任何一种来表示。例如,贯穿上面描述始终可能被述及的数据、指令、命令、信息、信号、位(比特)、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
此外,本领域技术人员将领会,结合本文中所公开的实施例描述的各种解说性逻辑块、模块、电路、和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
相应地,本发明并不限于所解说的示例且任何用于执行文本所描述的功能性的手段均被包括在本发明的实施例中。
尽管上述公开示出了本发明的解说性实施例,但是应当注意到,在其中可作出各种更换和改动而不会脱离如所附权利要求定义的本发明的范围。根据本文中所描述的本发明实施例的方法权利要求的功能、步骤和/或动作不必按任何特定次序来执行。此外,尽管本发明的要素可能是以单数来描述或主张权利的,但是复数也是已构想了的,除非显式地声明了限定于单数。
Claims (20)
1.一种存储器设备,包括:
存储器阵列,所述存储器阵列包括被组织成行和列的数据元素,所述行中的每一行能通过行地址来定址,所述行中的每一行中的每个数据元素能通过列地址来定址;
用于保持所选一组连续行地址中的一所选行地址的一组行地址缓冲器;
用于保持与所选一组连续行地址相对应的所选行的相应内容的一组行数据缓冲器;
行解码器,所述行解码器耦合至至少一个行地址缓冲器和所述存储器阵列以用于接收所选行地址并用于解码所选行地址以访问所述存储器阵列的所选行;
复用器,所述复用器耦合至所述一组行地址缓冲器并耦合至所述行解码器以用于选择在所述行地址缓冲器中的所选一个行地址缓冲器中保持的行地址并用于将所选行地址提供给所述行解码器;
感测放大器阵列,所述感测放大器阵列耦合至所述存储器阵列并耦合至所述一组行数据缓冲器以用于读取所选行并将所选行的内容传送给所述行数据缓冲器中的一个行数据缓冲器,以及用于将所选行的内容写入到所选行;以及
解复用器,所述解复用器耦合至所述感测放大器阵列和所述一组行数据缓冲器以将所选行的内容从所述感测放大器阵列提供至所述行数据缓冲器中的所述一个行数据缓冲器。
2.如权利要求1所述的存储器设备,其特征在于,所述一组行地址缓冲器是被配置成每次一个地保持所选连续行地址的单个寄存器,所选连续行地址是从所选连续行地址中的第一行地址动态计算的,并且其中所述一组行数据缓冲器被配置成分别保持与所选连续行地址相对应的行的内容。
3.如权利要求1所述的存储器设备,其特征在于,所述一组行地址缓冲器被配置成分别保持所选一组连续行地址,所述一组行地址缓冲器对应于所述一组行数据缓冲器。
4.如权利要求1所述的存储器设备,其特征在于,所述感测放大器阵列被配置成在完成将所选行的内容传送到所述行数据缓冲器中的所述一个行数据缓冲器时将所选行的内容写回到所选行。
5.如权利要求1所述的存储器设备,其特征在于,进一步包括:
用于接收和解码第一命令的控制电路,所述第一命令包括指定的行地址和行模式指示符,所述行模式指示符指定要打开的行的数量,所述控制电路包括用于保持所述行模式指示符的存储器模式寄存器。
6.如权利要求5所述的存储器设备,其特征在于,所述控制电路被配置成指令所述存储器阵列打开从所述指定的行地址开始的指定数量的行,所打开的指定数量的行的内容被传递至相应的行数据缓冲器以供保持。
7.如权利要求6所述的存储器设备,其特征在于,所述控制电路被配置成接收在所述第一命令之后的第二命令,所述第二命令请求从所述打开的指定数量的行中所标识的行进行读取,并且其中对所标识的行的所述读取是通过从相应的行数据缓冲器进行读取来执行的。
8.如权利要求6所述的存储器设备,其特征在于,所述控制电路被配置成接收在所述第一命令之后的第三命令,所述第三命令请求写入到所述打开的指定数量的行中所标识的行,所述所标识的行的内容保持在相应的行数据缓冲器中,并且其中所述写入是通过写入到所述相应的行数据缓冲器来执行的。
9.如权利要求6所述的存储器设备,其特征在于,所述控制电路被配置成接收在所述第一命令之后的第四命令,所述第四命令请求预充电,所述预充电通过使用所述相应的行数据缓冲器的内容和所述感测放大器阵列来每次一个地写回到所述存储器阵列中的所打开的指定数量的行以及关闭所打开的指定数量的行来执行。
10.如权利要求1所述的存储器设备,其特征在于,所述一组行数据缓冲器包括4个行数据缓冲器。
11.一种打开存储器设备中的行的方法,所述存储器设备包括存储器阵列,所述存储器阵列包括被组织成行和列的数据元素,所述行中的每一行能通过行地址来定址,所述行中的每一行中的每个数据元素能通过列地址来定址,所述方法包括以下操作:
(a)接收打开行的第一命令,所述命令包括所选行地址和指定从所选行地址开始的要打开的行的数量的行模式指示符;
(b)将所选行地址加载到一组行地址缓冲器中;
(c)选择保持在所述行地址缓冲器中的所选一个行地址缓冲器中的行地址并且将所选行地址提供给行解码器;
(d)使用所述行解码器来解码所选行地址以访问所述存储器阵列中的所选行;
(e)读取所选行并使用感测放大器阵列将所选行的内容传送到一组行数据缓冲器中的相应行数据缓冲器;以及
如果要打开的行的指定数量大于1,
则:
(f)基于所选行地址来计算所选连续行地址;以及
(g)重复操作(b)、(c)、(d)和(e),其中用所选连续行地址来取代所选行地址。
12.如权利要求11所述的方法,其特征在于,所述要打开的行的指定数量等于N,其中N是大于2的数,所述方法进一步包括:
重复操作(f)和(g),直到从所述存储器阵列读取的指定N个行的内容被保持在所述一组行数据缓冲器中的相应行数据缓冲器中。
13.如权利要求11所述的方法,其特征在于,进一步包括:
接收在所述第一命令之后的第二命令,所述第二命令请求从已打开的所述指定数量的行中所标识的行进行读取,所标识的行的内容被保持在相应的行数据缓冲器中;以及
响应于所述第二命令而从所述相应的行数据缓冲器进行读取。
14.如权利要求11所述的方法,其特征在于,进一步包括:
接收在所述第一命令之后的第三命令,所述第三命令请求写入到已打开的所述指定数量的行中所标识的行并包括输入数据,所标识的行的内容被保持在相应的行数据缓冲器中;以及
将所述输入数据写入到保持所标识的行的内容的相应行数据缓冲器中。
15.如权利要求11所述的方法,其特征在于,进一步包括:
接收所述第一命令之后的第四命令,所述第四命令请求预充电;
使用所述相应行数据缓冲器中的内容和所述感测放大器阵列每次一个地写回到所述存储器阵列中的已打开的所述指定数量的行;以及
关闭所述存储器阵列中的已打开的所述指定数量的行。
16.一种用于访问存储器设备的存储器控制器,所述存储器设备包括存储器阵列,所述存储器阵列包括被组织成行和列的数据元素,所述行中的每一行能通过行地址来定址,所述行中的每一行中的每个数据元素能通过列地址来定址,所述存储器设备进一步包括复用器,所述复用器耦合至一组行地址缓冲器并耦合至行解码器以用于选择在所述行地址缓冲器中的所选一个行地址缓冲器中保持的行地址并用于将所选行地址提供给所述行解码器,所述存储器设备能够具有自适应数量的打开的行,所述存储器控制器包括:
用于接收和调度来自请求者的存储器访问请求的仲裁器,所述存储器访问请求包括逻辑地址,所述仲裁器被配置成针对所述存储器访问请求确定打开的行的自适应数量;
存储器映射器,所述存储器映射器被耦合至所述仲裁器以用于将所述逻辑地址转换为包括行地址和列地址的物理地址;以及
命令生成器,所述命令生成器耦合至所述存储器映射器和所述仲裁器以用于生成与所述存储器访问请求相对应的命令序列并用于将所述命令序列发送至所述存储器设备,所述命令序列中的一个命令包括指定打开的行的所述自适应数量的行模式指示符。
17.如权利要求16所述的存储器控制器,其特征在于,所述仲裁器被配置成监视所述请求者的存储器访问模式以确定打开的行的所述自适应数量。
18.如权利要求16所述的存储器控制器,其特征在于,所述仲裁器被配置成通过监视行未击中与行击中的比值来监视所述请求者的所述存储器访问模式,并且当行未击中与行击中的比值超出一阈值时确定要打开的行的所述自适应数量大于一行。
19.如权利要求16所述的存储器控制器,其特征在于,所述仲裁器被配置成根据从处理器接收到的指令来确定打开的行的所述自适应数量,所述指令指定打开的行的所述自适应数量。
20.一种存储器系统,包括:
存储器设备,所述存储器设备包括存储器阵列,所述存储器阵列包括被组织成行和列的数据元素,所述行中的每一行能通过行地址来定址,所述行中的每一行中的每个数据元素能通过列地址来定址,所述存储器设备进一步包括复用器,所述复用器耦合至一组行地址缓冲器并耦合至行解码器以用于选择在所述行地址缓冲器中的所选一个行地址缓冲器中保持的行地址并用于将所选行地址提供给所述行解码器,所述存储器设备能够具有自适应数量的打开的行,所述存储器设备包括用于保持所述自适应数量的打开的行的内容的一组行数据缓冲器;
存储器控制器,所述存储器控制器被配置成接收来自请求者的存储器访问请求并耦合至所述存储器设备以访问所述存储器设备;以及
耦合至所述存储器控制器的处理器,所述处理器能够执行所述处理器中包括的行确定模块;
其中所述自适应数量的打开的行是由所述存储器控制器通过监视所述请求者的存储器访问模式来确定的,或者是由所述处理器通过执行所述行确定模块来确定的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/736,662 US9281036B2 (en) | 2013-01-08 | 2013-01-08 | Memory device having an adaptable number of open rows |
US13/736,662 | 2013-01-08 | ||
PCT/US2014/010544 WO2014110050A1 (en) | 2013-01-08 | 2014-01-07 | Memory device having an adaptable number of open rows |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104903962A CN104903962A (zh) | 2015-09-09 |
CN104903962B true CN104903962B (zh) | 2017-08-25 |
Family
ID=50030495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480004103.3A Active CN104903962B (zh) | 2013-01-08 | 2014-01-07 | 具有自适应数量的打开行的存储器设备 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9281036B2 (zh) |
EP (1) | EP2943956B1 (zh) |
JP (1) | JP5956089B2 (zh) |
KR (1) | KR101622311B1 (zh) |
CN (1) | CN104903962B (zh) |
WO (1) | WO2014110050A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9281036B2 (en) | 2013-01-08 | 2016-03-08 | Qualcomm Incorporated | Memory device having an adaptable number of open rows |
KR102106064B1 (ko) * | 2013-07-11 | 2020-05-28 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 제어 방법 |
CN106155577B (zh) * | 2015-04-23 | 2019-03-26 | 华为技术有限公司 | 扩展内存的访问方法、设备以及系统 |
US10082964B2 (en) * | 2016-04-27 | 2018-09-25 | Micron Technology, Inc | Data caching for ferroelectric memory |
CN108139994B (zh) * | 2016-05-28 | 2020-03-20 | 华为技术有限公司 | 内存访问方法及内存控制器 |
CN108139992B (zh) * | 2016-08-09 | 2020-06-16 | 华为技术有限公司 | 访问存储设备的方法和存储设备 |
GB2553338B (en) * | 2016-09-02 | 2019-11-20 | Advanced Risc Mach Ltd | Serial communication control |
US11935601B2 (en) | 2019-08-14 | 2024-03-19 | Supermem, Inc. | Bit line sensing circuit comprising a sample and hold circuit |
WO2022132475A1 (en) * | 2020-12-17 | 2022-06-23 | Micron Technology, Inc. | Memory activation timing management |
US11704049B2 (en) * | 2021-02-11 | 2023-07-18 | Micron Technology, Inc. | Optimized command sequences |
US11568932B2 (en) * | 2021-02-22 | 2023-01-31 | Micron Technology, Inc. | Read cache for reset read disturb mitigation |
US11775197B2 (en) * | 2021-03-25 | 2023-10-03 | Kyocera Document Solutions Inc. | Single command for reading then clearing dynamic random access memory |
US11600312B1 (en) * | 2021-08-16 | 2023-03-07 | Micron Technology, Inc. | Activate commands for memory preparation |
CN117608498A (zh) * | 2024-01-22 | 2024-02-27 | 北京象帝先计算技术有限公司 | 一种dram的访问处理方法、缓存控制模块及dram控制器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389514B1 (en) * | 1999-03-25 | 2002-05-14 | Hewlett-Packard Company | Method and computer system for speculatively closing pages in memory |
CN101236547A (zh) * | 2007-01-29 | 2008-08-06 | 国际商业机器公司 | 提供动态存储库页面策略的系统和方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0700050A3 (en) * | 1994-08-17 | 1997-07-23 | Oak Technology Inc | Multi-page storage |
GB2293668B (en) * | 1994-09-30 | 1999-09-29 | Advanced Risc Mach Ltd | Accessing data memories |
US6061759A (en) | 1996-02-09 | 2000-05-09 | Apex Semiconductor, Inc. | Hidden precharge pseudo cache DRAM |
JP3248500B2 (ja) * | 1998-11-12 | 2002-01-21 | 日本電気株式会社 | 半導体記憶装置およびそのデータ読み出し方法 |
JP3930195B2 (ja) * | 1999-04-09 | 2007-06-13 | 株式会社ルネサステクノロジ | データ処理システム |
US6625685B1 (en) | 2000-09-20 | 2003-09-23 | Broadcom Corporation | Memory controller with programmable configuration |
JP2003108438A (ja) * | 2001-09-28 | 2003-04-11 | Supreme Magic:Kk | データ処理装置 |
US7007133B2 (en) | 2002-05-29 | 2006-02-28 | Micron Technology, Inc. | Synchronous memory open page register |
US7082514B2 (en) * | 2003-09-18 | 2006-07-25 | International Business Machines Corporation | Method and memory controller for adaptive row management within a memory subsystem |
US7433258B2 (en) | 2003-10-10 | 2008-10-07 | Datasecure Llc. | Posted precharge and multiple open-page RAM architecture |
KR20050035699A (ko) * | 2003-10-14 | 2005-04-19 | 삼성전자주식회사 | 메모리 시스템의 에너지 절감 방법 및 장치 |
US7162567B2 (en) | 2004-05-14 | 2007-01-09 | Micron Technology, Inc. | Memory hub and method for memory sequencing |
US7389402B2 (en) | 2005-06-07 | 2008-06-17 | Advanced Micro Devices, Inc. | Microprocessor including a configurable translation lookaside buffer |
GB2441726B (en) | 2005-06-24 | 2010-08-11 | Metaram Inc | An integrated memory core and memory interface circuit |
US7917676B2 (en) | 2006-03-10 | 2011-03-29 | Qualcomm, Incorporated | Efficient execution of memory barrier bus commands with order constrained memory accesses |
US7958301B2 (en) | 2007-04-10 | 2011-06-07 | Marvell World Trade Ltd. | Memory controller and method for memory pages with dynamically configurable bits per cell |
US20080282028A1 (en) | 2007-05-09 | 2008-11-13 | International Business Machines Corporation | Dynamic optimization of dynamic random access memory (dram) controller page policy |
US8184487B2 (en) * | 2010-08-30 | 2012-05-22 | Micron Technology, Inc. | Modified read operation for non-volatile memory |
US9141527B2 (en) | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
US9281036B2 (en) * | 2013-01-08 | 2016-03-08 | Qualcomm Incorporated | Memory device having an adaptable number of open rows |
-
2013
- 2013-01-08 US US13/736,662 patent/US9281036B2/en active Active
-
2014
- 2014-01-07 EP EP14702117.4A patent/EP2943956B1/en not_active Not-in-force
- 2014-01-07 WO PCT/US2014/010544 patent/WO2014110050A1/en active Application Filing
- 2014-01-07 JP JP2015551843A patent/JP5956089B2/ja not_active Expired - Fee Related
- 2014-01-07 KR KR1020157021212A patent/KR101622311B1/ko not_active IP Right Cessation
- 2014-01-07 CN CN201480004103.3A patent/CN104903962B/zh active Active
-
2016
- 2016-01-05 US US14/988,079 patent/US9343127B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389514B1 (en) * | 1999-03-25 | 2002-05-14 | Hewlett-Packard Company | Method and computer system for speculatively closing pages in memory |
CN101236547A (zh) * | 2007-01-29 | 2008-08-06 | 国际商业机器公司 | 提供动态存储库页面策略的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2943956B1 (en) | 2018-10-03 |
KR20150104169A (ko) | 2015-09-14 |
EP2943956A1 (en) | 2015-11-18 |
US9281036B2 (en) | 2016-03-08 |
US20140195764A1 (en) | 2014-07-10 |
WO2014110050A1 (en) | 2014-07-17 |
JP2016506009A (ja) | 2016-02-25 |
JP5956089B2 (ja) | 2016-07-20 |
CN104903962A (zh) | 2015-09-09 |
US20160133306A1 (en) | 2016-05-12 |
US9343127B1 (en) | 2016-05-17 |
KR101622311B1 (ko) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104903962B (zh) | 具有自适应数量的打开行的存储器设备 | |
JP6761873B2 (ja) | セルフリフレッシュステートマシンmopアレイ | |
US5822772A (en) | Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties | |
CN102207916B (zh) | 一种基于指令预取的多核共享存储器控制设备 | |
EP2191376B1 (en) | Detection of speculative precharge | |
CN104380383B (zh) | 多级单元存储器 | |
CN109564556A (zh) | 具有条纹和读取/写入事务管理的存储器控制器仲裁器 | |
CN101788963B (zh) | Dram存储控制方法及装置 | |
JP2022514128A (ja) | メモリコントローラのリフレッシュスキーム | |
TWI704568B (zh) | 用於具有快取和複數個獨立陣列的記憶體介面 | |
CN107924375A (zh) | 用于高速存储器接口的命令仲裁 | |
US9641464B2 (en) | FIFO buffer system providing same clock cycle response to pop commands | |
US20210201986A1 (en) | Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training | |
CN103810123B (zh) | 内存控制装置及方法 | |
WO2021252179A1 (en) | Dram command streak management | |
Guoteng et al. | Design and Implementation of a DDR3-based Memory Controller | |
US7778103B2 (en) | Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof | |
JP4707351B2 (ja) | マルチバンクメモリのスケジューリング方法 | |
US20240112722A1 (en) | Directed refresh management for dram |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |