CN102356385B - 存储器存取控制器、系统及用于最优化存储器存取时间的方法 - Google Patents
存储器存取控制器、系统及用于最优化存储器存取时间的方法 Download PDFInfo
- Publication number
- CN102356385B CN102356385B CN201080012764.2A CN201080012764A CN102356385B CN 102356385 B CN102356385 B CN 102356385B CN 201080012764 A CN201080012764 A CN 201080012764A CN 102356385 B CN102356385 B CN 102356385B
- Authority
- CN
- China
- Prior art keywords
- memory
- memory access
- access configuration
- controller
- storage page
- 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
- 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/4085—Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
-
- 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
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- 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/1694—Configuration of memory controller to different memory types
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
本发明揭示一种可配置存储器存取控制器及相关系统及方法。在本发明中所描述的实施例中,所述可配置存储器控制器适于为给定存储器系统中的多个存储器组中的每一者提供单独的存储器存取配置。为每一存储器组提供的所述存储器存取配置可为维持每一存储器组中的至少一个存储器页开放或关闭。以此方式,可在个别化基础上为每一存储器组提供存储器存取配置,以基于每一存储器组中的数据活动性的类型而最优化存储器存取时间。在本发明中所描述的实施例中,所述存储器控制器还可经配置以允许一个或一个以上存储器组的动态配置。动态配置涉及改变或越权控制特定存储器组的所述存储器存取配置以最优化存储器存取时间。
Description
技术领域
本申请案的技术大体上涉及存储器存取控制器及相关系统以及用于最优化基于处理器的系统中的存储器存取时间的方法。
背景技术
基于处理器的系统(包括基于中央处理单元(CPU)的系统)通常将动态存储器用作系统存储器。动态存储器比静态存储器便宜,因为与每静态存储器位通常所需的多个晶体管相对比,动态存储器中每存储器位通常需要仅一个晶体管。然而,使用动态存储器具有取舍。动态存储器存取时间通常比静态存储器存取时间长。存取动态存储器涉及两个离散任务,所述两个任务均需要处理时间。首先,开放对应于待存取的存储器组中的所要存储器位置的存储器页(即,行)。这也被称为“行选择”,其指代二维行及列存储器布置。其次,存取存储器页内的所要存储器位置。这也被称为“列选择”。通过使用动态存储器所引起的存储器存取时间增加可在减小的带宽与在给定时间中所执行的指令数目(例如,每秒百万指令(MIPS))两方面影响CPU性能。
为了减轻在基于处理器的系统中采用动态存储器时的增加的存储器存取时间,存储器控制器可经配置以在存取存储器页之后保持或维持给定存储器组内的存储器页开放。在存储器组中的存取之后保持或维持存储器页开放可在连续存储器存取同一存储器页的情况下改善存储器存取时间性能。不需要处理时间来关闭存储器页且重新开放其供随后存取。然而,由于在存取之后保持或维持存储器组中的存储器页开放,因此存在取舍。举例来说,如果CPU希望从同一存储器组中的不同存储器页存取数据,则与两个任务相对比,必须执行三个任务。首先,必须关闭存储器组中的当前开放的存储器页。其次,必须开放含有待存取的所要存储器位置的新存储器页。接着,存取存储器页内的所要存储器位置。在可开放新存储器页之前关闭先前存取的存储器页中所引起的额外处理时间导致减小的带宽且减小CPU的MIPS。
配置存储器控制器以在存取之后保持或维持存储器页开放对于某些存储器应用可为理想的,尤其对于涉及存取连续存储器位置的那些应用,例如,视频、图形及显示存储器应用及其它应用(作为实例)。在这些情况下,存储器页关闭较不频繁地发生,因为连续存储器存取是针对给定存储器组中的同一存储器页。然而,配置存储器控制器以在存储器存取之后保持或维持存储器页开放可能对于其它存储器存取应用不理想,例如,具有高速缓冲存储功能的CPU存取。这是由于连续存储器存取将不可能针对给定存储器组中的同一存储器页。因此,归因于在可开放新存储器页之前关闭先前存取的存储器页中所涉及的增加的处理时间,存储器存取时间将增加。
发明内容
实施方式中所揭示的实施例包括存储器存取控制器及相关系统及方法。存储器控制器可配置以为给定存储器系统中的多个存储器组中的每一者提供单独的存储器存取配置。为每一存储器组提供的存储器存取配置可为在存储器存取之后保持或维持每一存储器组中的至少一个存储器页开放或关闭。以此方式,可在个别化基础上为每一存储器组提供存储器存取配置,以基于存储于每一存储器组中的数据的类型而最优化存储器存取时间。举例来说,如果存储器组经配置以存储通常涉及对同一存储器页中的存储器位置的连续存储器存取的数据,则存储器组可经配置以在每一存取之后维持其存储器页开放。由于在连续存取同一存储器页之间将不必重新开放存储器页,因此将实现存储器存取时间节省。然而,如果存储器组通常涉及对不同存储器页中的存储器位置的连续存储器存取,则所述存储器组可经配置以在每一存取之后关闭其存储器页。以此方式,存储器存取时间损失不会因必须首先关闭先前存取的存储器页以执行对同一存储器组中的不同存储器页的存储器存取而引起。
在实施方式的实施例中,可将静态或动态配置提供用于每一存储器组。静态配置涉及提供用于存储器组的存储器存取配置,以在每一存取之后保持或维持其存储器页开放或关闭。可在初始化或起动期间将静态配置提供用于存储器组。可在无更改的运行时间期间维持静态配置。存储器控制器可经配置以在运行时间期间允许存储器组的动态配置。动态配置涉及改变特定存储器组的存储器存取配置以进一步最优化存储器存取时间。动态配置可涉及存储器存取配置的暂时越权控制(override)或永久改变(至少直到下一永久配置改变为止)。存储器存取配置的暂时越权控制将自动导致配置返回先前静态存储器存取配置。
可基于对给定存储器页的未来未决存储器存取的审阅、或对给定存储器组的未来存储器存取是否将可能针对同一存储器页的预测来执行动态存储器存取配置。在此情况下,视审阅或预测而定,可通过动态地改变给定存储器组的存储器存取配置来实现另外的存储器存取时间节省。
附图说明
图1为作为示范性基于处理器的系统的一部分的示范性可配置存储器控制器及相关联存储器的图;
图2为说明给定存储器组中的示范性存储器页存取的表格图,借此当将维持存储器页开放配置提供用于存储器组时实现存储器存取时间节省;
图3为说明给定存储器组中的示范性存储器页存取的表格图,借此当将维持存储器页开放配置提供用于存储器组时实现存储器存取时间损失;
图4为提供于存储器控制器中以用于确定存储器组中的存储器页是否开放的示范性内部寄存器的图;
图5为提供于存储器控制器中以存储用于存储器组中的每一者的存储器存取配置的示范性内部寄存器的图;
图6及图7为说明用于基于针对存储器组的提供于存储器控制器中的存储器存取配置来存取所述存储器组的存储器页中的数据的示范性过程的流程图;
图8到图10为说明用于存取存储器组的存储器页中的数据的另一示范性过程的流程图,其中可将动态存储器存取配置提供用于存储器组;
图11及图12为存储器控制器的示范性存储器请求队列的图;
图13为说明用于存取存储器组的存储器页中的数据的另一示范性过程的流程图,其中可将基于预测性的动态存储器存取配置提供用于存储器组;
图14为提供于存储器控制器中以用于启用或停用动态存储器存取配置的示范性内部寄存器的图;
图15为提供于存储器控制器中以用于在存储器组的基础上启用或停用动态存储器存取配置的示范性内部寄存器的图;及
图16为示范性基于处理器的系统的框图,所述系统包括图1的经配置以为提供于系统存储器中的每一存储器组提供存储器存取配置的存储器控制器。
具体实施方式
现参看图式,描述本发明的若干示范性实施例。词“示范性”在本文中用于表示“充当实例、例子或说明”。不必将本文中描述为“示范性”的任何实施例解释为比其它实施例优选或有利。
实施方式中所揭示的实施例包括存储器存取控制器及相关系统及方法。存储器控制器可配置以提供用于给定存储器系统中的多个存储器组中的每一者的单独存储器存取配置。为每一存储器组提供的存储器存取配置可为在存储器存取之后保持或维持每一存储器组中的至少一个存储器页开放或关闭。以此方式,可在个别化基础上为每一存储器组提供存储器存取配置,以基于存储于每一存储器组中的数据的类型而最优化存储器存取时间。举例来说,如果存储器组经配置以存储通常涉及对同一存储器页中的存储器位置的连续存储器存取的数据,则存储器组可经配置以在每一存取之后维持其存储器页开放。由于在连续存取同一存储器页之间将不必重新开放存储器页,因此将实现存储器存取时间节省。然而,如果存储器组通常涉及对不同存储器页中的存储器位置的连续存储器存取,则所述存储器组可经配置以在每一存取之后关闭其存储器页。以此方式,存储器存取时间损失不会由于必须首先关闭先前存取的存储器页以执行对同一存储器组中的不同存储器页的存储器存取而引起。
图1说明示范性存储器系统10。存储器系统10采用可配置存储器控制器12,其经配置以提供用于存储器系统10中的每一存储器组的单独存储器存取配置。存储器控制器12对去往及来自存储器14的数据流负责。在所说明的实例中,存储器控制器12负责控制去往及来自两个动态存储器芯片14A、14B的数据流。在此实例中,每一存储器芯片14A、14B为16位双数据速率(DDR)动态随机存取存储器(DRAM)芯片,其标记为DDR0及DDR1。关于此,用于驱动两个DDR DRAM存储器芯片14A、14B的存储器控制器12可为DDR存储器控制器。DDR存储器控制器可比单数据速率(SDR)存储器控制器更复杂,但其允许在不增加时钟速率或总线宽度的情况下将两倍的数据传送到存储器单元。然而,存储器芯片14A、14B可为任何类型的动态存储器。实例包括SDRAM、DDR、DDR2、DDR3、MDDR(移动DDR)、LPDDR及LPDDR2。存储器控制器12可为与其存储器芯片兼容的任何类型的存储器控制器。此外,如所说明的存储器控制器12可作为单独装置提供于母板或其它印刷电路板(PCB)上,或集成于至少一个CPU或半导体裸片上,其可减小存储器等待时间。
存储器控制器12控制经由存储器总线16去往及来自存储器芯片14A、14B的数据流。在此实例中,存储器总线16包括两个芯片选择(CS0、CS1)18、20;分别用于每一存储器芯片14A、14B。芯片选择18、20由存储器控制器12选择性启用以使得能够存取含有所要存储器位置的存储器芯片14A、14B。存储器控制器12一次仅启用存储器芯片14A、14B中的一者,以使得一次仅一个DDR DRAM存储器芯片14A、14B断言数据总线(DATA)22上的数据以避免数据冲突。存储器总线16还包括地址/控制总线(ADDR/CTRL)24,其允许存储器控制器12控制存取于存储器芯片14A、14B中的存储器地址以用于将数据写入到存储器14或从存储器14读取数据。存储器总线16还包括时钟信号(CLK)26以同步存储器控制器12与存储器芯片14A、14B之间的时序以用于存储器存取。在此实例中,在用于DDR DRAM存储器芯片14A、14B的存储器系统10的时钟信号(CLK)26的上升及下降存取上传送数据。
每一DDR DRAM存储器芯片14A、14B含有多个存储器组,其通常被称为元件28。存储器组为存储器的逻辑单元,其大小由系统的CPU确定。在图1的所说明实例中,DDR存储器芯片14A、14B为16位,所述情况意味着其经设计以用于16位CPU,需要存储器组28一次提供16位的信息。在所说明的实例中,每一DDR DRAM存储器芯片14A、14B含有四个存储器组。图1中仅说明DDR DRAM存储器芯片(DDR0)14A的四个存储器组(B0、B1、B2及B3)28A、28B、28C、28D;然而,DDR DRAM存储器芯片(DDR1)14B也含有类似的存储器组及存储器页。因此对于每一DDR DRAM存储器芯片14A、14B,存储器组及存储器页在本文中通常分别被称为元件28及29。
将每一存储器组28组织为具有“行”及“列”的网格状图案。存储于DDR DRAM存储器芯片14A、14B中的数据进入由特定信息的行及列的坐标所界定的块中。每一行被称为存储器页29。为了存取DDR DRAM存储器芯片14A、14B中的存储器14,存储器控制器12断言芯片选择(CS0或CS1)18、20且发出存储器页开放命令,所述存储器页开放命令激活如由ADDR/CTRL总线22上的地址所指示的某一存储器页29。此命令通常花费少许时钟循环。在开放所要存储器页29之后,如“读取”或“写入”的列地址30由存储器控制器12发出以存取所要存储器位置中的数据。当请求对存储器组28中的另一存储器页29的存取时,存储器控制器12必须减活或关闭当前激活的存储器页29,所述情况通常花费少许时钟循环。因此,对存储器芯片14A、14B中的数据的存储器存取通常涉及开放含有所要存储器位置的存储器页29以用于写入或读取数据,及接着在存储器存取完成之后关闭存储器页29。以此方式,不同的存储器页29随后可由存储器控制器12存取。
如果对给定存储器组28中的同一存储器页29进行连续存储器存取,则可在存储器页29在第一存储器存取之后保持开放的情况下节省时钟循环。以此方式,对同一存储器页29的随后存储器存取将不需要重新开放存储器页29。总时钟循环节省的量取决于对同一存储器页29的连续存储器存取的数目。以下将关于图5通过实例更详细论述此情况。然而,如果通常对不同存储器页29进行存储器存取,则在存取之后保持或维持存储器页29开放可导致时钟循环损失。这是由于在可开放随后存储器存取的存储器页29之前,存储器控制器12将首先必须关闭先前维持开放的存储器页29。时钟循环损失的量取决于对不同存储器页29的连续存储器存取的数目。以下将关于图6通过实例更详细论述此情况。
根据本文中所描述的实施例,存储器控制器12可配置以个别地提供用于存储器组28中的每一者的存储器存取配置。存储器存取配置是存储于存储器控制器12中或对存储器控制器12可存取以指示从特定存储器组28存取的存储器页29在存取之后维持开放还是关闭的配置。关于此,可经由不允许用于每一存储器组28的存储器存取配置的存储器系统10来实现存储器系统10的总存储器存取时间节省。举例来说,图1的存储器系统10中的DDR DRAM存储器芯片14A可经设计以将系统数据存储于其存储器组28中,所述存储器组28通常涉及随机存储器存取,其中连续存储器存取通常不涉及对同一存储器页29中的存储器位置的存取。实例包括CPU系统存储器,其包括高速缓冲存储器存取。在此情况下,提供用于DDR DRAM存储器芯片14A的存储器组28的存储器存取配置以在每一存取之后关闭存储器页29将防止因存储器控制器12必须在可存取给定存储器组28中的新存储器页29之前首先关闭先前存取的存储器页29而导致的存储器存取损失。另一方面,DDR DRAM存储器芯片14B可经设计以存储应用程序或其它类型的数据,例如,视频、图形或基于显示的数据,其中通常连续存取同一存储器页29。在此情况下,提供用于DDR DRAM存储器芯片14B的存储器组28的存储器存取配置以在每一存取之后维持其存储器页29开放将导致存储器存取时间节省。这是由于对同一存储器页29的连续存储器存取将不需要针对每一存取开放存储器页29。
应注意虽然先前实例提供用于给定DDR DRAM存储器芯片14A、14B的所有存储器组28的相同存储器存取配置,但可为相同DDR DRAM存储器芯片14A、14B内的每一存储器组28提供不同的存储器存取配置。这通过图2及图3中所陈述的存储器存取实例进一步说明。
图2及图3提供存储器存取时间节省的其它实例,其可通过可配置以将存储器存取配置提供到存储器14中的每一存储器组28的存储器控制器12来实现。图2中说明第一存储器存取实例36。如本文中所说明,展示全部针对存储器组B0(28A)的一系列八(8)个存储器存取请求70。前四个存储器存取请求全部针对存储器页0。后四个存储器存取请求全部针对存储器页1。如果存储器组B0由存储器控制器12配置以在每一存取之后关闭存储器页,则每一存储器存取在此实例中将产生6个时钟循环,以开放且关闭对应于待存取的存储器位置的存储器页29。然而,如果存储器组B0经配置以在每一存取之后保持或维持其存储器页29开放,则每一存储器存取视是否在连续存储器存取请求之间存取同一存储器页29而定将产生不同的存储器存取时间。举例来说,第一存储器存取将涉及六(6)个循环:开放对应于待存取的存储器位置的存储器页29的三(3)个循环,及存取开放的存储器页29中的存储器位置的三(3)个循环。然而,下三个存储器存取请求仅将花费三(3)个时钟循环,从而导致三(3)个时钟循环存取节省,因为存储器页0根据存储器存取配置在存储器组B0中保持开放。
仅在存取不同存储器页29时,将发生存储器存取损失。如图2的第五号存储器存取请求所示,当首先存取存储器页1时,需要九(9)个时钟循环。这是由于存储器控制器12必须在其可开放存储器页1之前关闭存储器页0。在此实例中对于总共六(6)个时钟循环,每一存储器页开放需要三(3)个时钟循环。对存储器位置的存取引起另外三(3)个时钟循环,从而达到总共九(9)个时钟循环。因此,如果提供用于存储器组B0的存储器存取配置以在每一存取之后关闭存储器页29,则与所需的六(6)个时钟循环相比产生三(3)个时钟循环损失。然而,由于随后连续存取存储器页0三次,因此针对每一存取实现三(3)个时钟循环存储器存取节省,因为维持存储器页1开放。因此,在此实例中提供用于存储器组B0的存储器存取配置以在每一存取之后保持其存储器页29开放在存储器存取时间方面更为有利,因为对存储器组B0的存储器存取请求通常导致对同一存储器页29的连续存储器存取。概述图2中的存储器存取实例36,十五(15)个时钟循环的总存储器存取时间节省通过提供用于存储器组B0以在每一存取之后保持其存储器页29开放(与在每一存取之后关闭其存储器页29相对比)的存储器存取配置来实现。
图3说明另一存储器存取实例38,其包括对存储器组28的一系列九(9)个存储器存取请求72,其中总存储器存取损失因提供存储器存取配置以在每一存取之后保持存储器页29开放而发生。如所说明,存储器组B1经存取九次。连续存储器存取请求通常涉及存取存储器组B1内的不同存储器页29,如所说明。因此,在可执行新存储器存取之前需要存储器控制器12更频繁地关闭先前开放的存储器页29,因而导致九(9)个时钟循环及三(3)个时钟循环存储器存取损失。然而,如果将存储器存取配置提供用于存储器组B1以在每一存取之后关闭存储器页,则对于九个存储器存取请求将需要较少的总时钟循环。尽管在此情况下每一存储器存取请求将引起六(6)个时钟循环,且因此未实现存储器存取节省,但将也不会带来存储器存取损失。因此在此实例中,提供用于存储器组B1的存储器存取配置以在每一存取之后关闭存储器页在存储器存取时间方面更为有利,因为对存储器组B1的存储器存取请求通常导致对不同存储器页29的连续存储器存取。概述图3中的实例,通过提供用于存储器组B1以在每一存取之后关闭其存储器页29(与在每一存取之后保持其存储器页29开放相对比)的存储器存取配置来实现十二(12)个时钟循环的总存储器存取时间节省。
一旦经由存储器总线16存取所要存储器位置,则存储器控制器12可将存取的数据提供到系统总线31。在所说明的实例中,系统总线31为不同于存储器总线16的总线。然而,在其它系统中,存储器总线16及系统总线31可为相同总线。存取的数据由存储器控制器12经由系统总线31提供到基于处理器的系统中的另一组件。在图1的所说明实例中,系统总线31包括地址/控制/写入数据(ADDR/CTRL/W_DATA)总线32,其接收待存取的存储器位置的地址以及待写入到存储器14的任何数据。还提供读取数据总线34(R_DATA)以载运从存储器14读取的数据。存储器控制器12将来自存储器14中的读取存储器位置的数据断言到R_DATA总线34上。
图4及图5说明内部寄存器的实例,其可提供于存储器控制器12中以控制存储器存取且配置存储器存取配置。特定来说,将存储器存取配置提供用于每一存储器组28以控制其中的存储器页29是否在每一存储器存取之后维持开放。如图4中所说明,可提供内部寄存器40,其包括页地址(PAGE_ADDR)寄存器42及页开放(PAGE_OPEN)寄存器44。PAGE_ADDR寄存器42含有当前保持于存储器系统10的存储器14中的存储器页29的物理地址。众所周知,PAGE_ADDR寄存器42可用于存储器控制器12中以避免某些操作系统的地址表的过度使用。PAGE_OPEN寄存器44指示给定存储器组28中的存储器页29是否开放。
图5说明在存储器控制器12内部的组开放页启用(BANK_OPEN_PAGE_EN)寄存器46的实例。BANK_OPEN_PAGE_EN寄存器46可配置以控制在对存储器组28的每一存储器存取之后每一存储器组28是否保持其存储器页29开放。以此方式且如上所论述,存储器控制器12可基于对存储器组28的存储器存取的设计及可能的使用及特性而个别地提供用于每一存储器组28的配置。如所说明,在此实例中BANK_OPEN_PAGE_EN寄存器46为8位寄存器。这是由于存在总共八个存储器组28提供于图1中的存储器系统10的DDR DRAM存储器芯片14A、14B中。组B0-B3包括于DDR DRAM存储器芯片14A、14B中的每一者中。为第一存储器芯片14A中在位位置七(7)到(4)中的存储器组29中的每一者提供存储器存取配置。为第二DDR DRAM存储器芯片14B中在位位置三(3)到零(0)中的存储器组29中的每一者提供存储器存取配置。存储于用于给定存储器组28的BANK_OPEN_PAGE_EN寄存器46中的位中的逻辑“1”指示在每一存取之后维持所述存储器组28的存储器页29开放。存储于用于给定存储器组28的BANK_OPEN_PAGE_EN寄存器46中的位中的逻辑“0”指示在每一存取之后关闭所述存储器组28的存储器页29。
可通过发出适当命令以设定存储器控制器12中的BANK_OPEN_PAGE_EN寄存器46的位来为DDR DRAM存储器芯片14A、14B提供存储器存取配置。命令经由系统总线31发出到存储器控制器12。这允许CPU(未图示)或其它处理器或电子设备提供用于DDR DRAM存储器芯片14A、14B的存储器存取配置。这还允许存储器存取配置由存储器系统10的设计者根据需要通过对设定BANK_OPEN_PAGE_EN寄存器46的位的软件进行编程来提供。可在起动或加电时、在运行时间期间或任何其它所要时间设定存储器存取配置。存储器存取配置可在起动或加电时具有默认设定。默认设定可为在每一存取之后关闭存储器页(例如,BANK_OPEN_PAGE_EN寄存器46等于或设定为“00000000”),或在每一存取之后维持存储器页开放(例如,BANK_OPEN_PAGE_EN寄存器46等于或设定为“11111111”)。存储器存取配置可经配置为静态配置,其意味着存储器存取配置保持永久存储于BANK_OPEN_PAGE_EN寄存器46中。现将论述存储器存取配置的静态控制及使用静态存储器存取配置的存储器存取的实例。
图6说明使用由BANK_OPEN_PAGE_EN寄存器46提供的存储器存取配置由存储器控制器12对存储器组28中的存储器页29的示范性存储器存取的流程图。在此实例中,BANK_OPEN_PAGE_EN寄存器46已针对存储器组28中的每一者经配置为在每一存取之后维持开放或关闭其存储器页29。存储器控制器12咨询BANK_OPEN_PAGE_EN寄存器46以确定是否在对存储器页29的存取之后维持开放或关闭给定存储器组28中的存储器页29。处理可用存储器控制器12的微代码来实施。应注意虽然示范性存储器存取过程通过流程图中的依序任务提供,但这些动作通常由存储器控制器12以管线架构执行以在可能时处理多个存储器存取请求。
在此实例中,过程通过存储器控制器12首先接收对存储器14内的特定存储器地址的存储器存取请求而开始(框50)。存储器存取请求可为读取请求或写入请求。存储器控制器12经由系统总线31接收待存取的存储器地址,如先前所描述。如果存储器存取请求为写入数据,则存储器控制器12还经由系统总线31接收待写入到存储器14的经接收存储器地址中的数据。
存储器控制器12确定哪一存储器组28及存储器组28内的存储器页29对应于存储器存取请求中的经接收存储器地址(框52)。因此存储器控制器12可启用含有存储器请求的所要存储器位置的用于DDR DRAM存储器芯片14A、14B的正确芯片选择(CS)。存储器控制器12还使用此信息以激活对应于待存取存储器位置的DDR DRAM存储器芯片14A、14B中的正确存储器页29及列。存储器控制器12接着确定为含有待存取存储器位置的存储器组28提供的存储器存取配置是否用于使其存储器页29在每一存取之后维持开放或关闭(决策54)。关于此,存储器控制器12咨询BANK_OPEN_PAGE_EN寄存器46。如果在每一存取之后关闭,则这意味着在可存取存储器页29中的存储器位置之前首先开放对应于存储器位置的存储器页29。关于此,如图7中所说明,存储器控制器12开放对应于待存取存储器位置的存储器页29(框56)。更新PAGE_OPEN及PAGE-ADDR寄存器44、42以相应地指示当前开放的存储器页29(框58)。存储器控制器12接着直接存取从开放的存储器页29所请求的存储器位置(框60)。存储器控制器12接着关闭经存取存储器位置的当前开放的存储器页29(框62)。再次更新PAGE_OPEN及PAGE-ADDR寄存器44、42以指示存储器页29不再开放(框64)。存储器存取请求过程接着针对此特定存储器存取请求而结束(框66)。一个或一个以上其它存储器存取请求可继续在存储器控制器12的管线中执行。
然而,如果存储器控制器12确定为含有待存取的存储器位置的存储器组28提供存储器存取配置以在每一存取之后维持开放(经由BANK_OPEN_PAGE_EN寄存器46)(决策54),则存储器控制器12可能够在不必首先开放含有存储器位置的存储器页29的情况下直接存取所要的存储器位置。这将带来存储器存取时间节省。关于此,如图6中所说明,存储器控制器12确定对应于待存取的存储器位置的存储器页29是否已开放(决策68)。关于此咨询PAGE_ADDR及PAGE_OPEN寄存器42、44。如果对应于待存取的存储器位置的存储器页29已开放,则存储器控制器12在此后不关闭存储器页29的情况下直接存取所请求的存储器位置(框70),且存储器存取请求结束(框72)。由于所存取的存储器页29保持开放,因此不更新PAGE_OPEN及PAGE-ADDR寄存器44、42。
存储器存取由存储器控制器12在比原本需要的时钟循环少的时钟循环中进行,因为在此情况下在存取存储器位置之前存储器控制器12不必首先开放含有待存取的存储器位置的存储器页29。因此,在此实例中,对同一存储器页29的连续存储器存取将带来存储器存取时间节省,因为在可存取存储器位置之前存储器控制器12将不必首先开放存储器页29。作为实例,如果开放存储器页29需要存储器控制器12的时钟循环,则可在对同一存储器页29的连续存储器存取之间实现三个时钟循环存取时间节省。先前通过图2及图3中的实例论述且说明可针对由存储器系统10所采用的存储器存取所实现的存储器存取时间节省及损失。
如果存储器控制器12确定对应于待存取的存储器位置的存储器页29尚未开放(决策68),则当前可开放不对应于待存取的存储器位置的另一存储器页29。关于此咨询PAGE_ADDR及PAGE_OPEN寄存器42、44。如果如此,则在可开放对应于待存取的存储器位置的新存储器页29(框76)之前,存储器控制器12必须首先关闭存储器组28中的当前开放的存储器页29(框74)。更新PAGE_ADDR及PAGE_OPEN寄存器42、44以存储新开放的存储器页29(框78)。存储器控制器12接着可直接存取待存取的存储器位置(框70)。在此实例中,对同一存储器组28中的不同存储器页29进行两个连续存储器存取请求。存储器存取时间增加,因为存储器控制器12必须消耗处理时间及时钟循环来关闭先前开放的存储器页29且接着开放对应于待存取的存储器位置的新存储器页29。作为一实例,如果关闭存储器页29花费三个时钟循环且开放存储器页29花费三个时钟循环,则在对不同存储器页29的连续存储器存取之间实现三个时钟循环存取时间损失。
在另一实施例中,存储器控制器12经配置以具有动态地改变或越权控制用于给定存储器组28的存储器存取配置以进一步最优化存储器存取时间的能力。存储器控制器12可经配置以在运行时间期间允许存储器组28的动态配置。动态配置涉及改变特定存储器组28的存储器存取配置以进一步最优化存储器存取时间。如下文将更详细地论述,存储器控制器12可基于存储器控制器12的存储器存取请求队列中的即将到来的未决存储器存取请求来决定改变或越权控制用于特定存储器组28的存储器存取配置。举例来说,如果对给定存储器组28的下一经调度存储器存取请求是针对不同于同一存储器组28中由存储器控制器12当前所存取的存储器页29的存储器页29,则存储器控制器12可动态地辨识此条件。作为响应,存储器控制器12可在存取之后动态地关闭当前存取的存储器页29而非维持其开放。以此方式,当处理对同一存储器组28的不同存储器页29的存储器存取请求时,将不需要存储器控制器12稍后关闭当前存取的存储器页29。通过动态,意味着存储器控制器12经配置以基于实际或预测的未来存储器存取请求而在运行时间辨识且越权控制或改变存储器存取配置。存储器控制器12可在不改变存储器组29的存储器存取配置(其原本为越权控制)的情况下关闭当前存取的存储器页29。或者,存储器控制器12可关闭当前存取的存储器页29,且通过在存储器存取配置寄存器(例如,BANK_PAGE_OPEN_EN寄存器46)中改变指派到存储器组29的位来改变存储器组29的存储器存取配置。
转到图8到图10的流程图,说明由存储器控制器12执行的示范性存储器存取过程,其包括动态存储器存取配置能力。存储器控制器12接收来自系统总线31的存储器存取请求,且基于为对应于所述请求的存储器位置的存储器组28提供的静态存储器存取配置来处理所述请求,正如图6的框50到54中所提供(框80到84)。如果含有所请求存储器地址的存储器组28经配置以在存取之后关闭其存储器页29(决策84),则过程接着确定待存取的存储器页29当前是否关闭(决策86)。以此方式咨询PAGE_ADDR及PAGE_OPEN寄存器42、44。这是由于如下进一步论述,归因于存储器存取配置的越权控制,待存取的存储器页29的存储器存取配置先前可能已维持开放。如果待存取的存储器页29关闭,则在存取之前首先开放存储器页29(框88)。更新PAGE_OPEN及PAGE_ADDR寄存器44、42以指示存储器页29当前开放(框90)。接着存取存储器位置(框92)。
存储器控制器12可基于未决或未来存储器存取请求来执行动态存储器存取配置。在一个实施例中,在关闭存储器页29之前,存储器控制器12首先确定对同一存储器组28的下一经调度存取是否针对当前开放的同一存储器页29(图9,决策94)。如果如此,则另外的存储器存取时间节省可通过维持存储器页29开放而非关闭存储器页29来越权控制存储器存取配置而实现,因此结束过程(框100)。在图11中在存储器请求队列110中提供实例。如其中所说明,假定存储器控制器12当前正存取存储器组1中的存储器位置(存储器请求“C2”112中的存储器页2)。在存储器控制器12关闭存储器页2之前,存储器控制器12首先审阅存储器请求队列110,以确定对存储器组1的下一存取是否针对同一或不同存储器页29(图9,决策94)。在图11的存储器请求队列110的实例中,对存储器页1的下一存取是针对如存储器存取请求“C5”114中所提供的同一存储器页2。因此,在此状况下,存储器控制器12在经存取存储器页29的存储器存取配置之后通过维持存储器页29开放而动态地越权控制关闭页,因此结束过程(框100)。结果,与在关闭存储器页29(例如,在图11的存储器存取请求“C2”112之后)且接着在随后存取时重新开放且再次关闭(例如,对于图11的存储器存取请求“C5”114)的情况下的十二(12)个时钟循环相对比,在存储器存取请求“C5”114中的第二存取之后,视存储器页29维持开放或关闭而定分别引起六(6)个或九(9)个时钟循环。如果对同一存储器组28的下一存取并非针对同一存储器页29,则存储器控制器12通过在存取之后关闭存储器页29(图9,框96)且相应地更新PAGE_OPEN及PAGE_ADDR寄存器44、42(图9,框98)而遵循静态存储器存取配置。
返回转到图8,如果含有待存取的存储器页29的存储器组28具有用于使存储器页在每一存取之后维持开放的存储器存取配置(决策84),则在存取存储器页29之前,如图10中所说明,存储器控制器12确定待存取的存储器页29是否已开放(决策120)。如果如此,则可在不必首先开放存储器页29的情况下请求存储器位置(框121)。关于此,存储器控制器12确定存储器组28中的不同存储器页29是否开放(决策122)。如果否,则意味着存储器控制器12在先前存储器存取请求期间先前越权控制用于待存取的存储器组28的维持开放的页存储器存取配置,如下文将更详细地论述。如果存储器组28中的不同存储器页29是开放的(决策122),则关闭当前开放的存储器页29(框124)。此后,开放待存取的存储器页29(框126),且相应地更新PAGE_OPEN及PAGE_ADDR寄存器44、42(框128)。在开放存储器页29之后接着请求存储器位置(框121)。
在存取所请求的存储器位置(框121)之后,存储器控制器12确定是否应越权控制用于具有经存取的存储器页29的存储器组28的维持页开放的存储器存取配置。如果对同一存储器组28的下一存储器存取请求是针对不同存储器页29,则存储器控制器12可通过越权控制维持页开放的配置以关闭经存取的存储器页29而非维持其开放来节省另外的时钟循环。否则,存储器控制器12将必须在开放同一存储器组28中的随后不同存储器页29之前首先关闭经存取的存储器页29。存储器控制器12审阅存储器请求队列140以确定是否存在对同一存储器组28但对不同存储器页29的未来未决存储器存取请求(决策130)。如果如此,则存储器控制器12动态地越权控制用于经存取的存储器组28的维持页开放的存储器存取配置,且在存取之后关闭当前存取的存储器页29(框132),且相应地更新PAGE_OPEN及PAGE_ADDR寄存器44、42(框134)。如果否,则当前存取的存储器页29维持开放且过程结束(框136)。这在以下论述的图12的实例中经进一步说明。
如图12中所说明,存储器组0中的存储器页0当前由存储器控制器12存取,如队列位置“C1”142中所说明。对存储器组0的下一已知存储器存取请求是针对存储器页3,如队列位置“C4”144中所示。因此,由于存在对同一存储器组28中的不同存储器页29的下一未决存储器存取请求,因此存储器控制器12在存取之后关闭当前存取的存储器页29(即,存储器组0中的存储器页0)而非维持其开放(图10,框132)。在此实例中这引起六(6)个时钟循环而非三(3)个时钟循环。然而,如果存储器组0中的存储器页0未由动态存储器存取配置越权控制关闭,则在此实例中当存取存储器组0中的存储器页3时将引起九(9)个时钟循环。
存储器控制器12可经配置以基于预测性分析而非对存储器请求队列的审阅来提供动态存储器存取配置。通过预测性分析,存储器控制器12执行对存储器组28及其存储器页29的存储器存取请求的审阅,以预测未来存取以用于确定是否应越权控制存储器存取配置。可采用预测未来存储器存取的任何方法。图13中的流程图说明存储器组28经配置以在存取之后关闭其存储器页29的一个实例。如本文中所说明,过程开始(框150),且存储器控制器12或可由存储器控制器12存取的另一电路或控制器开始收集存储器存取请求的业务统计(框152)。此过程可由命令起始或经由存储器控制器12的编程而启用。开始一倒数定时器,且针对经配置以在存取之后保持存储器页29开放的一些或所有存储器组28收集存储器页29命中、存储器页29未命中及存储器页29开放(框154)。可将倒数定时器设定到所要的任何开始计数。在倒数定时器达到零(决策156)之后,停止关于每一存储器组28的存储器页29命中、存储器页29未命中及存储器页29开放的统计的收集(框158)。存储器页29未命中是在对给定存储器组28中的不同于紧接先前的对给定存储器组28的存储器存取请求的存储器页29进行存储器存取请求时。在此状况下,在紧接先前的存储器存取请求之后关闭存储器页29导致净存储器存取时间节省。存储器页29命中是在对给定存储器组28的存储器存取请求是针对与紧接先前的对给定存储器组28的存储器存取请求相同的存储器页29时。在此状况下,保持存储器页29开放将会导致存储器存取时间节省。
如果对于给定存储器组28,导致存储器页29命中的存储器存取事务的百分比比导致存储器页29开放的存储器存取事务的百分比大某一阈值量(决策160),则所述给定存储器组28的存储器存取配置经配置以在存取之后保持其存储器页29开放(框162)。换句话说,对给定存储器组28的存储器存取请求的历史用于预测对给定存储器组28的未来存取,以及对于给定存储器组28保持存储器页29开放的配置是否将可能导致净存储器存取时间节省。如果对于给定存储器组28,导致存储器页29命中的存储器存取事务的百分比不比导致存储器页29开放的存储器存取事务的百分比大某一阈值量(决策160),则不改变用于给定存储器组28的存取之后关闭存储器页29的配置。
或者或另外,对于经配置以在存取之后保持存储器页29开放的存储器组28,存储器控制器12可执行类似分析以确定是否应越权控制用于存储器组28的存储器存取配置以在存取之后关闭存储器页29。关于此,过程涉及相同过程150到158。然而,确定对于给定存储器组28,导致存储器页29未命中的存储器存取业务的百分比大于存储器页29命中的百分比。如果导致存储器页29未命中的存储器存取业务的百分比较大,则存储器控制器12改变用于给定存储器组28的存储器存取配置以在存取之后关闭存储器页29(作为框162的替换)。如果否,则不改变用于给定存储器组28的在存取之后保持存储器页29开放的配置。此外,进行关于净存储器存取时间节省是否将可能导致改变保持存储器页29开放的存取配置以在存取配置之后关闭存储器页29的预测。
可能需要提供可经编程以允许(即,启用)或不允许(即,停用)动态存储器存取配置的存储器控制器12。关于此,图14说明标记为“DYNAMIC_CONTROL”的示范性内部动态存储器存取配置寄存器,其可提供于存储器控制器12中以启用或停用动态存储器存取配置。关于此,提供两个寄存器170、172。如果需要允许存储器控制器12在存取配置之后越权控制正常关闭的存储器页29以在存取之后保持存储器页29开放,则提供且设定第一寄存器170(例如,见图9)。如果需要允许存储器控制器12在存取配置之后越权控制正常保持存储器页29开放以在存取之后关闭存储器页29,则提供且设定第二寄存器172(例如,见图10)。设定寄存器170、172以控制由存储器控制器12可存取的所有存储器组28的动态存储器存取配置。通过提供用于正常保持页开放及关闭的存储器页配置的动态存储器存取配置的单独寄存器170、172,存储器控制器12可经编程以允许用于两种状况、这些状况中的一者或不用于这些状况中的任一者的动态存储器存取配置。此外,如果不需要不允许动态存储器存取配置的编程,则DYNAMIC_CONTROL寄存器170、172的位可硬编码到所要设定。
图15说明标记为“DYNAMIC_CONTROL”的示范性内部动态存储器存取配置寄存器,其允许个别地为每一存储器组28而非同等地为所有存储器组28提供动态存储器存取配置。关于此,提供两个寄存器174、176,每一寄存器具有用于可由存储器控制器12存取的每一存储器组28的位。在此实例中,每一寄存器174、176具有八位,因为存在可由存储器控制器12存取的八个存储器组28。如果需要允许存储器控制器12在存取配置之后越权控制正常关闭的存储器页29以在存取之后保持存储器页29开放,则提供且设定第一寄存器174(例如,见图9)。如果需要允许存储器控制器12在存取配置之后越权控制正常保持存储器页29开放以在存取之后关闭存储器页29,则提供且设定第二寄存器176(例如,见图10)。设定每一存储器组28的寄存器174、176以控制可由存储器控制器12存取的动态存储器存取配置。通过提供用于每一存储器组28的位,可控制存储器控制器12以在个别基础上允许或不允许用于每一存储器组28的动态存储器存取配置。此外,如果不需要不允许动态存储器存取配置的编程,则DYNAMIC_CONTROL寄存器174、176的位可硬编码到所要设定。
图16说明基于处理器的系统180,其可采用以上所述的存储器控制器12及存储器存取配置方面。基于处理器的系统180包括中央处理单元(CPU)182,所述CPU 182包括微处理器184及集成到CPU 182的高速缓冲存储器系统186。高速缓冲存储器系统186包括高速缓冲存储器管理单元187,其控制对微处理器184可存取的高速缓存存储器188的存取以用于对频繁存取数据的暂时存储的快速存取。CPU 182耦合到系统总线31,系统总线31使包括于基于处理器的系统180中的其它装置互连。众所周知,CPU 182通过经由系统总线31交换地址、控制及数据信息与这些其它装置通信。这些装置可包括任何类型的装置。如图16中所说明,这些装置可包括系统存储器190、一个或一个以上输入装置192、一个或一个以上输出装置194、网络接口装置196及显示器控制器198(作为实例)。
输入装置192可包括任何类型的输入装置,其包括(但不限于)输入键、开关、语音处理器等。输出装置194可包括任何类型的输出装置,其包括(但不限于)音频、视频、其它视觉指示器等。网络接口装置196可为经配置以允许数据到网络200及从网络200的交换的任何装置。网络200可为任何类型的网络,其包括(但不限于)有线或无线网络、专用或公用网络、局域网(LAN)、广域网(WLAN)及因特网。网络接口装置196可支持所要的任何类型的通信协议。
CPU 182也可经由系统总线31存取系统存储器190。系统存储器190可包括如同先前图1中所描述且说明的存储器控制器12,以介接系统存储器190且控制对系统存储器190的存取。系统存储器190可包括动态存储器202。如先前所论述,代替或除静态存储器以外,可将动态存储器202提供用于系统存储器190。动态存储器202可包括用于CPU 182的程序存储装置204及数据存储装置206。动态存储器202可包含先前图1中所描述且说明的DDR DRAM存储器14。
CPU 182也可经由系统总线31存取显示器控制器198以控制发送到显示器214的信息。显示器控制器198可包括存储器控制器208及存储器210以响应于与CPU 182的通信而存储待发送到显示器214的数据。存储器控制器208及存储器210可包括存储器控制器及动态存储器,如同先前图1中所描述且说明的存储器控制器12及DDR DRAM存储器14。显示器控制器198将信息发送到显示器214以经由视频处理器212显示,所述视频处理器212将待显示的信息处理为适合于显示器214的格式。显示器214可包括任何类型的显示器,其包括(但不限于)阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
根据本文中所揭示的实施例的存储器控制器可提供于或集成于半导体裸片、集成电路、用于控制对存储器的存取的基于处理器的装置或包括电子装置的任何其它装置中。电子装置的实例包括(但不限于)机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器及便携式数字视频播放器。
应注意,描述本文中示范性实施例中的任一者中所描述的操作任务以提供实例及论述。所描述的操作可以不同于所说明的序列的众多序列来执行。此外,单一操作任务中所描述的操作实际上可在许多不同任务中执行。另外,可组合示范性实施例中所论述的一个或一个以上操作任务。应理解,流程图中所说明的操作任务可经受如所属领域的技术人员将容易明白的众多不同修改。所属领域的技术人员还将理解信息及信号可使用多种不同技术和技艺中的任一者来表示。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示可遍及以上描述所引用的数据、指令、命令、信息、信号、位、符号及码片。
所属领域的技术人员将进一步了解,可将结合本文中所揭示的实施例描述的各种说明性逻辑块、模块、电路及算法任务实施为电子硬件、计算机软件或两者的组合。为清楚地说明硬件与软件的此可互换性,上文已大体上在功能性方面描述各种说明性组件、块、模块、电路及任务。此功能性实施为硬件还是软件视特定应用及强加于整个系统的设计约束而定。所属领域的技术人员可针对每一特定应用以变化的方式实施所描述的功能性,但不应将这些实施决策解释为引起脱离本发明的范围。
可通过通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或经设计以执行本文中所描述的功能的其任何组合来实施或执行结合本文中所揭示的实施例描述的各种说明性逻辑块、模块及电路。通用处理器可为微处理器,但在替代例中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器,或任何其它此配置。
结合本文中所揭示的实施例描述的方法或算法的任务可直接体现于硬件中、由处理器执行的软件模块中,或两者的组合中。软件模块可驻留于随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可抹除可编程ROM(EEPROM)、寄存器、硬盘、可装卸式盘、CD-ROM或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器以使得此处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代例中,存储媒体可与处理器成一体。处理器及存储媒体可驻留于ASIC中。ASIC可驻留于远程台中。在替代例中,处理器及存储媒体可作为离散组件驻留于远程台、基站或服务器中。
提供本发明的先前描述以使得任何所属领域的技术人员能够制作或使用本发明。对本发明的各种修改对于所属领域的技术人员来说将为容易明白的,且可在不脱离本发明的精神或范围的情况下将本文中所定义的一般原理应用于其它变体。因此,本发明并不既定限于本文所描述的实例及设计,而应被赋予与本文中所揭示的原理及新颖特征一致的最广范围。
Claims (33)
1.一种存储器控制器,其包含:
控制器,其经配置以根据为多个存储器组中的每一存储器组提供的存储器存取配置来存取对应于所述多个存储器组中的至少一个存储器组中的至少一个存储器页的至少一个存储器位置;
一个或多个静态存储器存取配置寄存器,其经配置以存储所述存储器存取配置,所述存储器存取配置指示所述多个存储器组中的每一存储器组在对所述存储器组的存储器存取之后被维持开放还是关闭;及
一个或多个动态存储器存取配置寄存器,其经配置以存储越权控制信息,所述越权控制信息指示是否可以使所述控制器越权控制所述存储器存取配置,
其中所述控制器经配置以基于存储在所述一个或多个静态存储器存取配置寄存器中的所述存储器存取配置和存储在所述一个或多个动态存储器存取配置寄存器中的所述越权控制信息中的至少一者来关闭所述至少一个存储器页或维持所述至少一个存储器页开放。
2.根据权利要求1所述的存储器控制器,其中所述存储器存取配置包含至少一个维持开放存储器页配置及至少一个关闭存储器页配置。
3.根据权利要求1所述的存储器控制器,进一步包含:
第一动态存储器存取配置寄存器,其指示是否可以使所述控制器越权控制用于所述多个存储器组中的任何存储器组的维持开放存储器页配置;及
第二动态存储器存取配置寄存器,其指示是否可以使所述控制器越权控制用于所述多个存储器组中的任何存储器组的关闭存储器页配置。
4.根据权利要求1所述的存储器控制器,进一步包含:
第一多个动态存储器存取配置寄存器,其中所述第一多个动态存储器存取配置寄存器中的每一寄存器指示是否可以使所述控制器越权控制用于相应的存储器组的维持开放存储器页配置;及
第二多个动态存储器存取配置寄存器,其中所述第二多个动态存储器存取配置寄存器中的每一寄存器指示是否可以使所述控制器越权控制用于相应的存储器组的关闭存储器页配置。
5.根据权利要求1所述的存储器控制器,其中所述控制器经进一步配置以确定用于所述多个存储器组中的存储器组的所述存储器存取配置是否指示维持所述至少一个存储器页开放。
6.根据权利要求5所述的存储器控制器,其中所述控制器经进一步配置以在用于所述存储器组的所述存储器存取配置指示关闭所述至少一个存储器页的情况下开放所述存储器组中的所述至少一个存储器页。
7.根据权利要求5所述的存储器控制器,其中所述控制器经进一步配置以确定所述存储器组中的所述至少一个存储器页是否开放。
8.根据权利要求7所述的存储器控制器,其中所述控制器经进一步配置以在所述控制器确定所述至少一个存储器页已开放的情况下存取所述至少一个存储器页而无需首先开放所述存储器页。
9.根据权利要求7所述的存储器控制器,其中所述控制器经进一步配置以在所述控制器确定所述至少一个存储器页未开放的情况下关闭先前开放的存储器页。
10.根据权利要求1所述的存储器控制器,其中所述控制器经进一步配置以确定用于所述多个存储器组中的存储器组的所述存储器存取配置是否应动态地改变。
11.根据权利要求10所述的存储器控制器,其中所述控制器经配置以确定用于所述存储器组的所述存储器存取配置是否应随一个或多于一个存储器存取请求而动态地改变。
12.根据权利要求10所述的存储器控制器,其中所述控制器经配置以确定用于所述存储器组的所述存储器存取配置是否应随存储器存取请求的预测而动态地改变。
13.根据权利要求1所述的存储器控制器,其集成于至少一个半导体裸片中。
14.根据权利要求1所述的存储器控制器,其进一步包含装置,所述装置选自由以下各物组成的群组:机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器及便携式数字视频播放器,所述控制器集成到所述装置中。
15.一种存取存储器系统中的存储器的方法,其包含:
在存储器控制器处接收包含存储器地址的存储器存取请求;
存取一个或多个静态存储器存取配置寄存器,所述一个或多个静态存储器存取配置寄存器存储用于多个存储器组中的每一存储器组的存储器存取配置,其中所述存储器存取配置指示所述多个存储器组中的每一存储器组在对所述存储器组的存储器存取之后被维持开放还是关闭,且其中每一存储器组含有至少一个存储器页;
确定用于含有所述存储器地址的存储器组的所述存储器存取配置是否经配置以关闭存储器页或维持所述存储器页开放;
通过存取一个或多个动态存储器存取配置寄存器来确定是否动态改变所述存储器存取配置,所述一个或多个动态存储器存取配置寄存器存储越权控制信息,所述越权控制信息指示是否可以使所述存储器控制器越权控制所述存储器存取配置;及
基于存储在所述一个或多个静态存储器存取配置寄存器中的所述存储器存取配置和存储在所述一个或多个动态存储器存取配置寄存器中的所述越权控制信息中的至少一者而关闭含有所述存储器地址的所述存储器组中的所述存储器页或维持含有所述存储器地址的所述存储器组中的所述存储器页开放。
16.根据权利要求15所述的方法,其进一步包含确定用于所述存储器组的所述存储器存取配置是否经配置以在存取之后关闭其存储器页或维持其存储器页开放。
17.根据权利要求15所述的方法,其进一步包含存取所述存储器页以存取存储于所述存储器地址处的数据。
18.根据权利要求17所述的方法,其进一步包含在用于所述存储器组的所述存储器存取配置经配置以关闭所述存储器页的情况下在存取所述存储器页之前开放所述存储器页。
19.根据权利要求16所述的方法,其进一步包含确定所述存储器页在存取所述存储器页之前是否开放。
20.根据权利要求19所述的方法,其进一步包含在所述存储器页开放的情况下存取所述存储器页而无需首先开放所述存储器页。
21.根据权利要求19所述的方法,其进一步包含在含有所述存储器地址的所述存储器页未开放的情况下关闭先前开放的存储器页。
22.根据权利要求15所述的方法,其中所述越权控制信息指示是否可以使所述存储器控制器越权控制用于所述存储器组的维持开放存储器页配置,或者是否可以使所述存储器控制器越权控制用于所述存储器组的关闭存储器页配置。
23.根据权利要求22所述的方法,其进一步包含通过基于存储在所述一个或多个动态存储器存取配置寄存器中的所述越权控制信息而暂时越权控制所述存储器存取配置或存储用于所述存储器存取配置的新配置来动态地改变用于含有所述存储器地址的所述存储器组的所述存储器存取配置。
24.根据权利要求22所述的方法,其进一步包含:
审阅一个或多于一个未决存储器存取请求;及
基于所述一个或多于一个未决存储器存取请求而动态地改变所述存储器存取配置。
25.根据权利要求22所述的方法,其进一步包含:
预测对所述存储器组的未来存储器存取请求;及
基于所预测的对所述存储器组的未来存储器存取请求而动态地改变所述存储器组的所述存储器存取配置。
26.一种存储器系统,其包含:
多个存储器组,每一存储器组含有至少一个存储器页;
存储器控制器,其经配置以根据为所述多个存储器组中的每一存储器组提供的存储器存取配置来存取对应于所述多个存储器组中的至少一个存储器组中的所述至少一个存储器页的至少一个存储器位置;
一个或多个静态存储器存取配置寄存器,其经配置以存储所述存储器存取配置,所述存储器存取配置指示所述多个存储器组中的每一存储器组在对所述存储器组的存储器存取之后被维持开放还是关闭;及
一个或多个动态存储器存取配置寄存器,其经配置以存储越权控制信息,所述越权控制信息指示是否可以使所述存储器控制器越权控制所述存储器存取配置,
其中所述存储器控制器经配置以基于存储在所述一个或多个静态存储器存取配置寄存器中的所述存储器存取配置和存储在所述一个或多个动态存储器存取配置寄存器中的所述越权控制信息中的至少一者来关闭所述至少一个存储器页或维持所述至少一个存储器页开放。
27.根据权利要求26所述的存储器系统,其中所述存储器存取配置包含至少一个维持开放存储器页配置及至少一个关闭存储器页配置。
28.根据权利要求26所述的存储器系统,其中所述存储器控制器经进一步配置以确定用于所述多个存储器组中的存储器组的所述存储器存取配置是否指示维持所述至少一个存储器页开放。
29.根据权利要求26所述的存储器系统,其中所述存储器控制器经进一步配置以确定用于所述多个存储器组中的存储器组的所述存储器存取配置是否应动态地改变。
30.根据权利要求29所述的存储器系统,其中所述存储器控制器经进一步配置以动态地改变用于所述存储器组的所述存储器存取配置。
31.根据权利要求26所述的存储器系统,其集成于至少一个半导体裸片中。
32.一种存储器控制器,其包含:
控制器,其经配置以根据为多个存储器组中的每一存储器组提供的存储器存取配置来存取对应于所述多个存储器组中的至少一个存储器组中的至少一个存储器页的至少一个存储器位置;
用于存储所述存储器存取配置的装置,所述存储器存取配置指示所述多个存储器组中的每一存储器组在对所述存储器组的存储器存取之后被维持开放还是关闭;
用于存储越权控制信息的装置,所述越权控制信息指示是否可以使所述控制器越权控制所述存储器存取配置,
其中所述控制器经配置以基于存储在所述用于存储所述存储器存取配置的装置中的所述存储器存取配置和存储在所述用于存储越权控制信息的装置中的所述越权控制信息中的至少一者来关闭所述至少一个存储器页或维持所述至少一个存储器页开放。
33.一种存取存储器系统中的存储器的方法,其包含:
用于在存储器控制器处接收包含存储器地址的存储器存取请求的步骤;
用于存取一个或多个静态存储器存取配置寄存器的步骤,所述一个或多个静态存储器存取配置寄存器存储用于多个存储器组中的每一存储器组的存储器存取配置,其中所述存储器存取配置指示所述多个存储器组中的每一存储器组在对所述存储器组的存储器存取之后被维持开放还是关闭,且其中每一存储器组含有至少一个存储器页;
用于确定用于所述存储器组的所述存储器存取配置是否经配置以关闭所述至少一个存储器页或维持所述至少一个存储器页开放的步骤;
用于通过存取一个或多个动态存储器存取配置寄存器来确定是否动态改变所述存储器存取配置的步骤,所述一个或多个动态存储器存取配置寄存器存储越权控制信息,所述越权控制信息指示是否可以使所述存储器控制器越权控制所述存储器存取配置;及
用于基于存储在所述一个或多个静态存储器存取配置寄存器中的所述存储器存取配置和存储在所述一个或多个动态存储器存取配置寄存器中的所述越权控制信息中的至少一者而关闭含有所述存储器地址的所述存储器组中的所述至少一个存储器页或维持含有所述存储器地址的所述存储器组中的所述至少一个存储器页开放的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/407,910 US8347020B2 (en) | 2009-03-20 | 2009-03-20 | Memory access controller, systems, and methods for optimizing memory access times |
US12/407,910 | 2009-03-20 | ||
PCT/US2010/027981 WO2010108096A2 (en) | 2009-03-20 | 2010-03-19 | Memory access controller, systems, and methods for optimizing memory access times |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102356385A CN102356385A (zh) | 2012-02-15 |
CN102356385B true CN102356385B (zh) | 2014-11-19 |
Family
ID=42738597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080012764.2A Active CN102356385B (zh) | 2009-03-20 | 2010-03-19 | 存储器存取控制器、系统及用于最优化存储器存取时间的方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8347020B2 (zh) |
EP (1) | EP2409235B1 (zh) |
JP (1) | JP5746136B2 (zh) |
KR (1) | KR101268978B1 (zh) |
CN (1) | CN102356385B (zh) |
ES (1) | ES2719544T3 (zh) |
HU (1) | HUE041677T2 (zh) |
TW (1) | TWI421695B (zh) |
WO (1) | WO2010108096A2 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9431091B2 (en) | 2008-06-06 | 2016-08-30 | Uniquify, Inc. | Multiple gating modes and half-frequency dynamic calibration for DDR memory controllers |
US8712751B2 (en) * | 2009-05-08 | 2014-04-29 | Qualcomm Incorporated | System and method of verification of analog circuits |
US8593866B2 (en) * | 2011-11-11 | 2013-11-26 | Sandisk Technologies Inc. | Systems and methods for operating multi-bank nonvolatile memory |
US8819379B2 (en) * | 2011-11-15 | 2014-08-26 | Memory Technologies Llc | Allocating memory based on performance ranking |
US9275692B2 (en) * | 2012-02-28 | 2016-03-01 | Micron Technology, Inc. | Memory, memory controllers, and methods for dynamically switching a data masking/data bus inversion input |
US8914604B2 (en) * | 2012-06-12 | 2014-12-16 | The Boeing Company | Creating optimal comparison criterion within associative memories |
US9251048B2 (en) * | 2012-10-19 | 2016-02-02 | International Business Machines Corporation | Memory page management |
KR101484600B1 (ko) * | 2013-05-28 | 2015-01-22 | 부산대학교 산학협력단 | 카운터 기반 멀티 사이클 프로세서 제어 장치 |
CN103309781B (zh) * | 2013-06-28 | 2016-05-04 | 福州大学 | 基于dsp与fpga的单倍率同步动态内存的检测方法 |
KR20160061704A (ko) | 2014-11-24 | 2016-06-01 | 삼성전자주식회사 | 페이지 상태 알림 기능이 있는 메모리 장치 |
US9703493B2 (en) | 2015-12-14 | 2017-07-11 | Qualcomm Incorporated | Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache |
US11183248B1 (en) | 2020-07-29 | 2021-11-23 | Micron Technology, Inc. | Timing parameter adjustment mechanisms |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008015370A1 (en) * | 2006-08-03 | 2008-02-07 | Arm Limited | Memory controller address mapping scheme |
CN101185140A (zh) * | 2005-05-31 | 2008-05-21 | 英特尔公司 | 存储器技术的部分页方案 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052134A (en) * | 1997-12-22 | 2000-04-18 | Compaq Computer Corp. | Memory controller and method for dynamic page management |
US6212598B1 (en) * | 1998-11-30 | 2001-04-03 | Micron Technology, Inc. | Controlling a paging policy based on a requestor characteristic |
JP2002063069A (ja) * | 2000-08-21 | 2002-02-28 | Hitachi Ltd | メモリ制御装置、データ処理システム及び半導体装置 |
US6799241B2 (en) * | 2002-01-03 | 2004-09-28 | Intel Corporation | Method for dynamically adjusting a memory page closing policy |
JP2004013618A (ja) * | 2002-06-07 | 2004-01-15 | Renesas Technology Corp | 同期型半導体記憶装置のアクセス制御装置 |
JP4250989B2 (ja) * | 2003-03-26 | 2009-04-08 | 日本電気株式会社 | メモリアクセス制御装置 |
JP4804803B2 (ja) * | 2005-06-08 | 2011-11-02 | 京セラミタ株式会社 | メモリアクセス制御装置及びコンピュータプログラム |
US7606988B2 (en) * | 2007-01-29 | 2009-10-20 | International Business Machines Corporation | Systems and methods for providing a dynamic memory bank page policy |
JP5340658B2 (ja) * | 2007-07-10 | 2013-11-13 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コマンド選択のメモリ・コントローラ読み取りキュー動的最適化 |
US7761656B2 (en) * | 2007-08-22 | 2010-07-20 | Advanced Micro Devices, Inc. | Detection of speculative precharge |
-
2009
- 2009-03-20 US US12/407,910 patent/US8347020B2/en active Active
-
2010
- 2010-03-19 ES ES10754172T patent/ES2719544T3/es active Active
- 2010-03-19 WO PCT/US2010/027981 patent/WO2010108096A2/en active Application Filing
- 2010-03-19 KR KR1020117024834A patent/KR101268978B1/ko active IP Right Grant
- 2010-03-19 CN CN201080012764.2A patent/CN102356385B/zh active Active
- 2010-03-19 JP JP2012500994A patent/JP5746136B2/ja active Active
- 2010-03-19 EP EP10754172.4A patent/EP2409235B1/en active Active
- 2010-03-19 HU HUE10754172A patent/HUE041677T2/hu unknown
- 2010-03-22 TW TW099108427A patent/TWI421695B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101185140A (zh) * | 2005-05-31 | 2008-05-21 | 英特尔公司 | 存储器技术的部分页方案 |
WO2008015370A1 (en) * | 2006-08-03 | 2008-02-07 | Arm Limited | Memory controller address mapping scheme |
Also Published As
Publication number | Publication date |
---|---|
WO2010108096A3 (en) | 2011-01-13 |
CN102356385A (zh) | 2012-02-15 |
WO2010108096A2 (en) | 2010-09-23 |
EP2409235A4 (en) | 2012-05-09 |
KR101268978B1 (ko) | 2013-05-29 |
JP5746136B2 (ja) | 2015-07-08 |
EP2409235B1 (en) | 2019-01-09 |
JP2012520535A (ja) | 2012-09-06 |
EP2409235A2 (en) | 2012-01-25 |
TWI421695B (zh) | 2014-01-01 |
KR20110128949A (ko) | 2011-11-30 |
TW201104435A (en) | 2011-02-01 |
US8347020B2 (en) | 2013-01-01 |
ES2719544T3 (es) | 2019-07-11 |
US20100241782A1 (en) | 2010-09-23 |
HUE041677T2 (hu) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102356385B (zh) | 存储器存取控制器、系统及用于最优化存储器存取时间的方法 | |
US9524117B2 (en) | Control of page access in memory | |
US7721011B1 (en) | Method and apparatus for reordering memory accesses to reduce power consumption in computer systems | |
KR101136141B1 (ko) | 캐시 메모리의 동적 재구성 | |
CN112272816B (zh) | 存储器系统或子系统中的预取信令 | |
US20110055495A1 (en) | Memory Controller Page Management Devices, Systems, and Methods | |
KR101881089B1 (ko) | 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들 | |
CN102681946B (zh) | 内存访问方法和装置 | |
US11355169B2 (en) | Indicating latency associated with a memory request in a system | |
CN102692991A (zh) | 协调多个电路中的性能参数 | |
CN109801659B (zh) | Dram内存库激活管理 | |
US20190198081A1 (en) | Selective refresh with software components | |
US20180188988A1 (en) | Partial page access in a low power memory system | |
EP1728166B1 (en) | Integrated circuit and method for memory access control | |
US20070239955A1 (en) | Memory Scoreboard | |
US7080217B2 (en) | Cycle type based throttling | |
US6687821B1 (en) | System for dynamically configuring system logic device coupled to the microprocessor to optimize application performance by reading from selection table located in non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |