首页> 中国专利> 存储器存取控制器、系统及用于最优化存储器存取时间的方法

存储器存取控制器、系统及用于最优化存储器存取时间的方法

摘要

本发明揭示一种可配置存储器存取控制器及相关系统及方法。在本文中所描述的实施例中,所述可配置存储器控制器适于为给定存储器系统中的多个存储器组中的每一者提供单独的存储器存取配置。为每一存储器组提供的所述存储器存取配置可为维持每一存储器组中的至少一个存储器页开放或关闭。以此方式,可在个别化基础上为每一存储器组提供存储器存取配置,以基于每一存储器组中的数据活动性的类型而最优化存储器存取时间。在本文中所描述的实施例中,所述存储器控制器还可经配置以允许一个或一个以上存储器组的动态配置。动态配置涉及改变或越权控制特定存储器组的所述存储器存取配置以最优化存储器存取时间。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-11-19

    授权

    授权

  • 2012-03-28

    实质审查的生效 IPC(主分类):G06F13/16 申请日:20100319

    实质审查的生效

  • 2012-02-15

    公开

    公开

说明书

技术领域

本申请案的技术大体上涉及存储器存取控制器及相关系统以及用于最优化基于处 理器的系统中的存储器存取时间的方法。

背景技术

基于处理器的系统(包括基于中央处理单元(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可驻留于远程台中。在替代例中,处理器及存储媒体可作为离 散组件驻留于远程台、基站或服务器中。

提供本发明的先前描述以使得任何所属领域的技术人员能够制作或使用本发明。对 本发明的各种修改对于所属领域的技术人员来说将为容易明白的,且可在不脱离本发明 的精神或范围的情况下将本文中所定义的一般原理应用于其它变体。因此,本发明并不 既定限于本文所描述的实例及设计,而应被赋予与本文中所揭示的原理及新颖特征一致 的最广范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号