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

上传人:a1 文档编号:1001246 上传时间:2018-03-24 格式:PDF 页数:31 大小:867.10KB
返回 下载 相关 举报
摘要
申请专利号:

CN201080012764.2

申请日:

2010.03.19

公开号:

CN102356385A

公开日:

2012.02.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 13/16申请日:20100319|||公开

IPC分类号:

G06F13/16; G06F12/06; G06F12/08

主分类号:

G06F13/16

申请人:

高通股份有限公司

发明人:

斯里尼瓦斯·马达利; 迪提·维贾亚拉卡什米·西拉马格瑞

地址:

美国加利福尼亚州

优先权:

2009.03.20 US 12/407,910

专利代理机构:

北京律盟知识产权代理有限责任公司 11287

代理人:

宋献涛

PDF下载: PDF下载
内容摘要

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

权利要求书

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: 一种存取存储器系统中的存储器的方法, 其包含 : 在存储器控制器处接收包含存储器地址的存储器存取请求 ; 2 确定用于含有所述存储器地址的存储器组的存储器存取配置是否经配置以关闭存储 器页或维持所述存储器页开放 ; 存取用于含有至少一个存储器页的存储器组的存储器存取配置, 其中所述存储器存取 配置提供用于多个存储器组中的每一者以关闭所述至少一个存储器页或维持所述至少一 个存储器页开放 ; 及 基于所述存储器存取配置而关闭含有所述存储器地址的所述存储器组中的存储器页 或维持含有所述存储器地址的所述存储器组中的所述存储器页开放。
16: 根据权利要求 15 所述的方法, 其进一步包含确定用于所述存储器组的所述存储器 存取配置是否经配置以在存取之后关闭其存储器页或维持其存储器页开放。
17: 根据权利要求 15 所述的方法, 其进一步包含存取所述存储器页以存取存储于所述 存储器地址处的数据。
18: 根据权利要求 17 所述的方法, 其进一步包含在用于所述存储器组的所述存储器存 取配置经配置以关闭存储器页的情况下在存取所述存储器页之前开放所述存储器页。
19: 根据权利要求 16 所述的方法, 其进一步包含确定所述存储器页在存取所述存储器 页之前是否开放。
20: 根据权利要求 19 所述的方法, 其进一步包含在所述存储器页开放的情况下存取所 述存储器页而无需首先开放所述存储器页。
21: 根据权利要求 19 所述的方法, 其进一步包含在含有所述存储器地址的所述存储器 页未开放的情况下关闭先前开放的存储器页。
22: 根据权利要求 15 所述的方法, 其进一步包含确定用于含有所述存储器地址的所述 存储器组的所述存储器存取配置是否应动态地改变。
23: 根据权利要求 22 所述的方法, 其进一步包含通过暂时越权控制所述存储器存取配 置或存储用于所述存储器存取配置的新配置而动态地改变用于含有所述存储器地址的所 述存储器组的所述存储器存取配置。
24: 根据权利要求 22 所述的方法, 其进一步包含 : 审阅一个或一个以上未决存储器存取请求 ; 及 基于所述一个或一个以上未决存储器存取请求而动态地改变所述存储器存取配置。
25: 根据权利要求 22 所述的方法, 其进一步包含 : 预测对所述存储器组的未来存储器存取请求 ; 及 基于预测对所述存储器组的未来存储器存取请求而动态地改变所述存储器组的所述 存储器存取配置。
26: 一种存储器系统, 其包含 : 多个存储器组, 每一存储器组含有至少一个存储器页 ; 及 存储器控制器, 其经配置以根据为所述多个存储器组中的每一者提供的存储器存取配 置来存取对应于含于所述多个存储器组中的每一者中的所述至少一个存储器页的至少一 个存储器位置 ; 其中所述存储器控制器经配置以基于为所述多个存储器组中的每一者提供的所述存 储器存取配置来关闭所述存储器页或维持所述存储器页开放。
27: 根据权利要求 26 所述的存储器系统, 其中所述存储器存取配置包含至少一个维持 3 开放存储器页及至少一个关闭存储器页。
28: 根据权利要求 26 所述的存储器系统, 其中所述存储器控制器经进一步配置以确定 用于所述多个存储器组中的存储器组的所述存储器存取配置是否经配置以维持存储器页 开放。
29: 根据权利要求 26 所述的存储器系统, 其中所述存储器控制器经进一步配置以确定 用于所述多个存储器组中的存储器组的所述存储器存取配置是否应动态地改变。
30: 根据权利要求 29 所述的存储器系统, 其中所述存储器控制器经进一步配置以动态 地改变用于所述多个存储器组中的存储器组的所述存储器存取配置。
31: 根据权利要求 26 所述的存储器系统, 其集成于至少一个半导体裸片中。
32: 一种存储器控制器, 其包含 : 控制器, 其经配置以根据为多个存储器组中的每一者提供的存储器存取配置来存取对 应于含于所述多个存储器组中的每一者中的至少一个存储器页的至少一个存储器位置 ; 及 用于配置所述存储器控制器的装置, 其用以基于为所述多个存储器组中的每一者提供 的所述存储器存取配置来关闭所述至少一个存储器页或维持所述至少一个存储器页开放。
33: 一种存取存储器系统中的存储器的方法, 其包含 : 用于在存储器控制器处接收包含存储器地址的存储器存取请求的步骤 ; 用于存取用于含有至少一个存储器页的存储器组的存储器存取配置的步骤, 其中所述 存储器存取配置提供用于多个存储器组中的每一者以关闭所述至少一个存储器页或维持 所述至少一个存储器页开放 ; 用于确定用于所述存储器组的所述存储器存取配置是否经配置以关闭所述至少一个 存储器页或维持所述至少一个存储器页开放的步骤 ; 及 用于基于所述存储器存取配置而关闭含有所述存储器地址的所述存储器组中的存储 器页或维持含有所述存储器地址的所述存储器组中的所述存储器页开放的步骤。

说明书


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

    技术领域 本申请案的技术大体上涉及存储器存取控制器及相关系统以及用于最优化基于 处理器的系统中的存储器存取时间的方法。
     背景技术 基于处理器的系统 ( 包括基于中央处理单元 (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 可驻留于远 程台中。在替代例中, 处理器及存储媒体可作为离散组件驻留于远程台、 基站或服务器中。
     提供本发明的先前描述以使得任何所属领域的技术人员能够制作或使用本发明。 对本发明的各种修改对于所属领域的技术人员来说将为容易明白的, 且可在不脱离本发明 的精神或范围的情况下将本文中所定义的一般原理应用于其它变体。因此, 本发明并不既定限于本文所描述的实例及设计, 而应被赋予与本文中所揭示的原理及新颖特征一致的最 广范围。

存储器存取控制器、系统及用于最优化存储器存取时间的方法.pdf_第1页
第1页 / 共31页
存储器存取控制器、系统及用于最优化存储器存取时间的方法.pdf_第2页
第2页 / 共31页
存储器存取控制器、系统及用于最优化存储器存取时间的方法.pdf_第3页
第3页 / 共31页
点击查看更多>>
资源描述

《存储器存取控制器、系统及用于最优化存储器存取时间的方法.pdf》由会员分享,可在线阅读,更多相关《存储器存取控制器、系统及用于最优化存储器存取时间的方法.pdf(31页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102356385A43申请公布日20120215CN102356385ACN102356385A21申请号201080012764222申请日2010031912/407,91020090320USG06F13/16200601G06F12/06200601G06F12/0820060171申请人高通股份有限公司地址美国加利福尼亚州72发明人斯里尼瓦斯马达利迪提维贾亚拉卡什米西拉马格瑞74专利代理机构北京律盟知识产权代理有限责任公司11287代理人宋献涛54发明名称存储器存取控制器、系统及用于最优化存储器存取时间的方法57摘要本发明揭示一种可配置存储器存取控制器及相关系统及。

2、方法。在本文中所描述的实施例中,所述可配置存储器控制器适于为给定存储器系统中的多个存储器组中的每一者提供单独的存储器存取配置。为每一存储器组提供的所述存储器存取配置可为维持每一存储器组中的至少一个存储器页开放或关闭。以此方式,可在个别化基础上为每一存储器组提供存储器存取配置,以基于每一存储器组中的数据活动性的类型而最优化存储器存取时间。在本文中所描述的实施例中,所述存储器控制器还可经配置以允许一个或一个以上存储器组的动态配置。动态配置涉及改变或越权控制特定存储器组的所述存储器存取配置以最优化存储器存取时间。30优先权数据85PCT申请进入国家阶段日2011091986PCT申请的申请数据PCT。

3、/US2010/0279812010031987PCT申请的公布数据WO2010/108096EN2010092351INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书14页附图13页CN102356395A1/3页21一种存储器控制器,其包含控制器,其经配置以根据为多个存储器组中的每一者提供的存储器存取配置来存取对应于含于所述多个存储器组中的每一者中的至少一个存储器页的至少一个存储器位置;其中所述控制器可配置以基于为所述多个存储器组中的每一者提供的所述存储器存取配置来关闭所述至少一个存储器页或维持所述至少一个存储器页开放。2根据权利要求1所述的存储器控制器,其中所。

4、述存储器存取配置包含至少一个维持开放存储器页及至少一个关闭存储器页。3根据权利要求1所述的存储器控制器,进一步包含所述控制器中的含有所述存储器存取配置的一个或一个以上内部寄存器。4根据权利要求1所述的存储器控制器,进一步包含所述控制器中的一个或一个以上动态存储器存取配置寄存器。5根据权利要求1所述的存储器控制器,其中所述控制器经进一步配置以确定用于所述多个存储器组中的存储器组的所述存储器存取配置是否经配置以维持存储器页开放。6根据权利要求5所述的存储器控制器,其中所述控制器经进一步配置以在用于所述存储器组的所述存储器存取配置经配置以关闭存储器页的情况下开放所述存储器组中的存储器页。7根据权利要。

5、求5所述的存储器控制器,其中所述控制器经进一步配置以确定所述多个存储器组中的存储器组中的存储器页是否开放。8根据权利要求7所述的存储器控制器,其中所述控制器经进一步配置以在所述控制器确定所述存储器页已开放的情况下存取所述存储器页而无需首先开放所述存储器页。9根据权利要求7所述的存储器控制器,其中所述控制器经进一步配置以在所述控制器确定含有存储器地址的所述存储器页未开放的情况下关闭先前开放的存储器页。10根据权利要求1所述的存储器控制器,其中所述控制器经进一步配置以确定用于所述多个存储器组中的存储器组的所述存储器存取配置是否应动态地改变。11根据权利要求10所述的存储器控制器,其中所述控制器经配。

6、置以确定用于所述多个存储器组中的存储器组的所述存储器存取配置是否应随一个或一个以上存储器存取请求而动态地改变。12根据权利要求10所述的存储器控制器,其中所述控制器经配置以确定用于所述多个存储器组中的存储器组的所述存储器存取配置是否应随存储器存取请求的预测而动态地改变。13根据权利要求1所述的存储器控制器,其集成于至少一个半导体裸片中。14根据权利要求1所述的存储器控制器,其进一步包含装置,所述装置选自由以下各物组成的群组机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理PDA、监视器、计算机监视器、。

7、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘DVD播放器及便携式数字视频播放器,所述存储器控制器集成到所述装置中。15一种存取存储器系统中的存储器的方法,其包含在存储器控制器处接收包含存储器地址的存储器存取请求;权利要求书CN102356385ACN102356395A2/3页3确定用于含有所述存储器地址的存储器组的存储器存取配置是否经配置以关闭存储器页或维持所述存储器页开放;存取用于含有至少一个存储器页的存储器组的存储器存取配置,其中所述存储器存取配置提供用于多个存储器组中的每一者以关闭所述至少一个存储器页或维持所述。

8、至少一个存储器页开放;及基于所述存储器存取配置而关闭含有所述存储器地址的所述存储器组中的存储器页或维持含有所述存储器地址的所述存储器组中的所述存储器页开放。16根据权利要求15所述的方法,其进一步包含确定用于所述存储器组的所述存储器存取配置是否经配置以在存取之后关闭其存储器页或维持其存储器页开放。17根据权利要求15所述的方法,其进一步包含存取所述存储器页以存取存储于所述存储器地址处的数据。18根据权利要求17所述的方法,其进一步包含在用于所述存储器组的所述存储器存取配置经配置以关闭存储器页的情况下在存取所述存储器页之前开放所述存储器页。19根据权利要求16所述的方法,其进一步包含确定所述存储。

9、器页在存取所述存储器页之前是否开放。20根据权利要求19所述的方法,其进一步包含在所述存储器页开放的情况下存取所述存储器页而无需首先开放所述存储器页。21根据权利要求19所述的方法,其进一步包含在含有所述存储器地址的所述存储器页未开放的情况下关闭先前开放的存储器页。22根据权利要求15所述的方法,其进一步包含确定用于含有所述存储器地址的所述存储器组的所述存储器存取配置是否应动态地改变。23根据权利要求22所述的方法,其进一步包含通过暂时越权控制所述存储器存取配置或存储用于所述存储器存取配置的新配置而动态地改变用于含有所述存储器地址的所述存储器组的所述存储器存取配置。24根据权利要求22所述的方。

10、法,其进一步包含审阅一个或一个以上未决存储器存取请求;及基于所述一个或一个以上未决存储器存取请求而动态地改变所述存储器存取配置。25根据权利要求22所述的方法,其进一步包含预测对所述存储器组的未来存储器存取请求;及基于预测对所述存储器组的未来存储器存取请求而动态地改变所述存储器组的所述存储器存取配置。26一种存储器系统,其包含多个存储器组,每一存储器组含有至少一个存储器页;及存储器控制器,其经配置以根据为所述多个存储器组中的每一者提供的存储器存取配置来存取对应于含于所述多个存储器组中的每一者中的所述至少一个存储器页的至少一个存储器位置;其中所述存储器控制器经配置以基于为所述多个存储器组中的每一。

11、者提供的所述存储器存取配置来关闭所述存储器页或维持所述存储器页开放。27根据权利要求26所述的存储器系统,其中所述存储器存取配置包含至少一个维持权利要求书CN102356385ACN102356395A3/3页4开放存储器页及至少一个关闭存储器页。28根据权利要求26所述的存储器系统,其中所述存储器控制器经进一步配置以确定用于所述多个存储器组中的存储器组的所述存储器存取配置是否经配置以维持存储器页开放。29根据权利要求26所述的存储器系统,其中所述存储器控制器经进一步配置以确定用于所述多个存储器组中的存储器组的所述存储器存取配置是否应动态地改变。30根据权利要求29所述的存储器系统,其中所述存。

12、储器控制器经进一步配置以动态地改变用于所述多个存储器组中的存储器组的所述存储器存取配置。31根据权利要求26所述的存储器系统,其集成于至少一个半导体裸片中。32一种存储器控制器,其包含控制器,其经配置以根据为多个存储器组中的每一者提供的存储器存取配置来存取对应于含于所述多个存储器组中的每一者中的至少一个存储器页的至少一个存储器位置;及用于配置所述存储器控制器的装置,其用以基于为所述多个存储器组中的每一者提供的所述存储器存取配置来关闭所述至少一个存储器页或维持所述至少一个存储器页开放。33一种存取存储器系统中的存储器的方法,其包含用于在存储器控制器处接收包含存储器地址的存储器存取请求的步骤;用于。

13、存取用于含有至少一个存储器页的存储器组的存储器存取配置的步骤,其中所述存储器存取配置提供用于多个存储器组中的每一者以关闭所述至少一个存储器页或维持所述至少一个存储器页开放;用于确定用于所述存储器组的所述存储器存取配置是否经配置以关闭所述至少一个存储器页或维持所述至少一个存储器页开放的步骤;及用于基于所述存储器存取配置而关闭含有所述存储器地址的所述存储器组中的存储器页或维持含有所述存储器地址的所述存储器组中的所述存储器页开放的步骤。权利要求书CN102356385ACN102356395A1/14页5存储器存取控制器、系统及用于最优化存储器存取时间的方法技术领域0001本申请案的技术大体上涉及存。

14、储器存取控制器及相关系统以及用于最优化基于处理器的系统中的存储器存取时间的方法。背景技术0002基于处理器的系统包括基于中央处理单元CPU的系统通常将动态存储器用作系统存储器。动态存储器比静态存储器便宜,因为与每静态存储器位通常所需的多个晶体管相对比,动态存储器中每存储器位通常需要仅一个晶体管。然而,使用动态存储器具有取舍。动态存储器存取时间通常比静态存储器存取时间长。存取动态存储器涉及两个离散任务,所述两个任务均需要处理时间。首先,开放对应于待存取的存储器组中的所要存储器位置的存储器页即,行。这也被称为“行选择”,其指代二维行及列存储器布置。其次,存取存储器页内的所要存储器位置。这也被称为“。

15、列选择”。通过使用动态存储器所引起的存储器存取时间增加可在减小的带宽与在给定时间中所执行的指令数目例如,每秒百万指令MIPS两方面影响CPU性能。0003为了减轻在基于处理器的系统中采用动态存储器时的增加的存储器存取时间,存储器控制器可经配置以在存取存储器页之后保持或维持给定存储器组内的存储器页开放。在存储器组中的存取之后保持或维持存储器页开放可在连续存储器存取同一存储器页的情况下改善存储器存取时间性能。不需要处理时间来关闭存储器页且重新开放其供随后存取。然而,由于在存取之后保持或维持存储器组中的存储器页开放,因此存在取舍。举例来说,如果CPU希望从同一存储器组中的不同存储器页存取数据,则与两。

16、个任务相对比,必须执行三个任务。首先,必须关闭存储器组中的当前开放的存储器页。其次,必须开放含有待存取的所要存储器位置的新存储器页。接着,存取存储器页内的所要存储器位置。在可开放新存储器页之前关闭先前存取的存储器页中所引起的额外处理时间导致减小的带宽且减小CPU的MIPS。0004配置存储器控制器以在存取之后保持或维持存储器页开放对于某些存储器应用可为理想的,尤其对于涉及存取连续存储器位置的那些应用,例如,视频、图形及显示存储器应用及其它应用作为实例。在这些情况下,存储器页关闭较不频繁地发生,因为连续存储器存取是针对给定存储器组中的同一存储器页。然而,配置存储器控制器以在存储器存取之后保持或维。

17、持存储器页开放可能对于其它存储器存取应用不理想,例如,具有高速缓冲存储功能的CPU存取。这是由于连续存储器存取将不可能针对给定存储器组中的同一存储器页。因此,归因于在可开放新存储器页之前关闭先前存取的存储器页中所涉及的增加的处理时间,存储器存取时间将增加。发明内容0005实施方式中所揭示的实施例包括存储器存取控制器及相关系统及方法。存储器控说明书CN102356385ACN102356395A2/14页6制器可配置以为给定存储器系统中的多个存储器组中的每一者提供单独的存储器存取配置。为每一存储器组提供的存储器存取配置可为在存储器存取之后保持或维持每一存储器组中的至少一个存储器页开放或关闭。以此。

18、方式,可在个别化基础上为每一存储器组提供存储器存取配置,以基于存储于每一存储器组中的数据的类型而最优化存储器存取时间。举例来说,如果存储器组经配置以存储通常涉及对同一存储器页中的存储器位置的连续存储器存取的数据,则存储器组可经配置以在每一存取之后维持其存储器页开放。由于在连续存取同一存储器页之间将不必重新开放存储器页,因此将实现存储器存取时间节省。然而,如果存储器组通常涉及对不同存储器页中的存储器位置的连续存储器存取,则所述存储器组可经配置以在每一存取之后关闭其存储器页。以此方式,存储器存取时间损失不会因必须首先关闭先前存取的存储器页以执行对同一存储器组中的不同存储器页的存储器存取而引起。00。

19、06在实施方式的实施例中,可将静态或动态配置提供用于每一存储器组。静态配置涉及提供用于存储器组的存储器存取配置,以在每一存取之后保持或维持其存储器页开放或关闭。可在初始化或起动期间将静态配置提供用于存储器组。可在无更改的运行时间期间维持静态配置。存储器控制器可经配置以在运行时间期间允许存储器组的动态配置。动态配置涉及改变特定存储器组的存储器存取配置以进一步最优化存储器存取时间。动态配置可涉及存储器存取配置的暂时越权控制OVERRIDE或永久改变至少直到下一永久配置改变为止。存储器存取配置的暂时越权控制将自动导致配置返回先前静态存储器存取配置。0007可基于对给定存储器页的未来未决存储器存取的审。

20、阅、或对给定存储器组的未来存储器存取是否将可能针对同一存储器页的预测来执行动态存储器存取配置。在此情况下,视审阅或预测而定,可通过动态地改变给定存储器组的存储器存取配置来实现另外的存储器存取时间节省。附图说明0008图1为作为示范性基于处理器的系统的一部分的示范性可配置存储器控制器及相关联存储器的图;0009图2为说明给定存储器组中的示范性存储器页存取的表格图,借此当将维持存储器页开放配置提供用于存储器组时实现存储器存取时间节省;0010图3为说明给定存储器组中的示范性存储器页存取的表格图,借此当将维持存储器页开放配置提供用于存储器组时实现存储器存取时间损失;0011图4为提供于存储器控制器中。

21、以用于确定存储器组中的存储器页是否开放的示范性内部寄存器的图;0012图5为提供于存储器控制器中以存储用于存储器组中的每一者的存储器存取配置的示范性内部寄存器的图;0013图6及图7为说明用于基于针对存储器组的提供于存储器控制器中的存储器存取配置来存取所述存储器组的存储器页中的数据的示范性过程的流程图;0014图8到图10为说明用于存取存储器组的存储器页中的数据的另一示范性过程的流程图,其中可将动态存储器存取配置提供用于存储器组;说明书CN102356385ACN102356395A3/14页70015图11及图12为存储器控制器的示范性存储器请求队列的图;0016图13为说明用于存取存储器组。

22、的存储器页中的数据的另一示范性过程的流程图,其中可将基于预测性的动态存储器存取配置提供用于存储器组;0017图14为提供于存储器控制器中以用于启用或停用动态存储器存取配置的示范性内部寄存器的图;0018图15为提供于存储器控制器中以用于在存储器组的基础上启用或停用动态存储器存取配置的示范性内部寄存器的图;及0019图16为示范性基于处理器的系统的框图,所述系统包括图1的经配置以为提供于系统存储器中的每一存储器组提供存储器存取配置的存储器控制器。具体实施方式0020现参看图式,描述本发明的若干示范性实施例。词“示范性”在本文中用于表示“充当实例、例子或说明”。不必将本文中描述为“示范性”的任何实。

23、施例解释为比其它实施例优选或有利。0021实施方式中所揭示的实施例包括存储器存取控制器及相关系统及方法。存储器控制器可配置以提供用于给定存储器系统中的多个存储器组中的每一者的单独存储器存取配置。为每一存储器组提供的存储器存取配置可为在存储器存取之后保持或维持每一存储器组中的至少一个存储器页开放或关闭。以此方式,可在个别化基础上为每一存储器组提供存储器存取配置,以基于存储于每一存储器组中的数据的类型而最优化存储器存取时间。举例来说,如果存储器组经配置以存储通常涉及对同一存储器页中的存储器位置的连续存储器存取的数据,则存储器组可经配置以在每一存取之后维持其存储器页开放。由于在连续存取同一存储器页之。

24、间将不必重新开放存储器页,因此将实现存储器存取时间节省。然而,如果存储器组通常涉及对不同存储器页中的存储器位置的连续存储器存取,则所述存储器组可经配置以在每一存取之后关闭其存储器页。以此方式,存储器存取时间损失不会由于必须首先关闭先前存取的存储器页以执行对同一存储器组中的不同存储器页的存储器存取而引起。0022图1说明示范性存储器系统10。存储器系统10采用可配置存储器控制器12,其经配置以提供用于存储器系统10中的每一存储器组的单独存储器存取配置。存储器控制器12对去往及来自存储器14的数据流负责。在所说明的实例中,存储器控制器12负责控制去往及来自两个动态存储器芯片14A、14B的数据流。。

25、在此实例中,每一存储器芯片14A、14B为16位双数据速率DDR动态随机存取存储器DRAM芯片,其标记为DDR0及DDR1。关于此,用于驱动两个DDRDRAM存储器芯片14A、14B的存储器控制器12可为DDR存储器控制器。DDR存储器控制器可比单数据速率SDR存储器控制器更复杂,但其允许在不增加时钟速率或总线宽度的情况下将两倍的数据传送到存储器单元。然而,存储器芯片14A、14B可为任何类型的动态存储器。实例包括SDRAM、DDR、DDR2、DDR3、MDDR移动DDR、LPDDR及LPDDR2。存储器控制器12可为与其存储器芯片兼容的任何类型的存储器控制器。此外,如所说明的存储器控制器12。

26、可作为单独装置提供于母板或其它印刷电路板PCB上,或集成于至少一个CPU或半导体裸片上,其可减小存储器等待时间。0023存储器控制器12控制经由存储器总线16去往及来自存储器芯片14A、14B的数据说明书CN102356385ACN102356395A4/14页8流。在此实例中,存储器总线16包括两个芯片选择CS0、CS118、20;分别用于每一存储器芯片14A、14B。芯片选择18、20由存储器控制器12选择性启用以使得能够存取含有所要存储器位置的存储器芯片14A、14B。存储器控制器12一次仅启用存储器芯片14A、14B中的一者,以使得一次仅一个DDRDRAM存储器芯片14A、14B断言数。

27、据总线DATA22上的数据以避免数据冲突。存储器总线16还包括地址/控制总线ADDR/CTRL24,其允许存储器控制器12控制存取于存储器芯片14A、14B中的存储器地址以用于将数据写入到存储器14或从存储器14读取数据。存储器总线16还包括时钟信号CLK26以同步存储器控制器12与存储器芯片14A、14B之间的时序以用于存储器存取。在此实例中,在用于DDRDRAM存储器芯片14A、14B的存储器系统10的时钟信号CLK26的上升及下降存取上传送数据。0024每一DDRDRAM存储器芯片14A、14B含有多个存储器组,其通常被称为元件28。存储器组为存储器的逻辑单元,其大小由系统的CPU确定。。

28、在图1的所说明实例中,DDR存储器芯片14A、14B为16位,所述情况意味着其经设计以用于16位CPU,需要存储器组28一次提供16位的信息。在所说明的实例中,每一DDRDRAM存储器芯片14A、14B含有四个存储器组。图1中仅说明DDRDRAM存储器芯片DDR014A的四个存储器组B0、B1、B2及B328A、28B、28C、28D;然而,DDRDRAM存储器芯片DDR114B也含有类似的存储器组及存储器页。因此对于每一DDRDRAM存储器芯片14A、14B,存储器组及存储器页在本文中通常分别被称为元件28及29。0025将每一存储器组28组织为具有“行”及“列”的网格状图案。存储于DDRD。

29、RAM存储器芯片14A、14B中的数据进入由特定信息的行及列的坐标所界定的块中。每一行被称为存储器页29。为了存取DDRDRAM存储器芯片14A、14B中的存储器14,存储器控制器12断言芯片选择CS0或CS118、20且发出存储器页开放命令,所述存储器页开放命令激活如由ADDR/CTRL总线22上的地址所指示的某一存储器页29。此命令通常花费少许时钟循环。在开放所要存储器页29之后,如“读取”或“写入”的列地址30由存储器控制器12发出以存取所要存储器位置中的数据。当请求对存储器组28中的另一存储器页29的存取时,存储器控制器12必须减活或关闭当前激活的存储器页29,所述情况通常花费少许时钟。

30、循环。因此,对存储器芯片14A、14B中的数据的存储器存取通常涉及开放含有所要存储器位置的存储器页29以用于写入或读取数据,及接着在存储器存取完成之后关闭存储器页29。以此方式,不同的存储器页29随后可由存储器控制器12存取。0026如果对给定存储器组28中的同一存储器页29进行连续存储器存取,则可在存储器页29在第一存储器存取之后保持开放的情况下节省时钟循环。以此方式,对同一存储器页29的随后存储器存取将不需要重新开放存储器页29。总时钟循环节省的量取决于对同一存储器页29的连续存储器存取的数目。以下将关于图5通过实例更详细论述此情况。然而,如果通常对不同存储器页29进行存储器存取,则在存取。

31、之后保持或维持存储器页29开放可导致时钟循环损失。这是由于在可开放随后存储器存取的存储器页29之前,存储器控制器12将首先必须关闭先前维持开放的存储器页29。时钟循环损失的量取决于对不同存储器页29的连续存储器存取的数目。以下将关于图6通过实例更详细论述此情况。0027根据本文中所描述的实施例,存储器控制器12可配置以个别地提供用于存储器组28中的每一者的存储器存取配置。存储器存取配置是存储于存储器控制器12中或对存储器控制器12可存取以指示从特定存储器组28存取的存储器页29在存取之后维持开放说明书CN102356385ACN102356395A5/14页9还是关闭的配置。关于此,可经由不允。

32、许用于每一存储器组28的存储器存取配置的存储器系统10来实现存储器系统10的总存储器存取时间节省。举例来说,图1的存储器系统10中的DDRDRAM存储器芯片14A可经设计以将系统数据存储于其存储器组28中,所述存储器组28通常涉及随机存储器存取,其中连续存储器存取通常不涉及对同一存储器页29中的存储器位置的存取。实例包括CPU系统存储器,其包括高速缓冲存储器存取。在此情况下,提供用于DDRDRAM存储器芯片14A的存储器组28的存储器存取配置以在每一存取之后关闭存储器页29将防止因存储器控制器12必须在可存取给定存储器组28中的新存储器页29之前首先关闭先前存取的存储器页29而导致的存储器存取。

33、损失。另一方面,DDRDRAM存储器芯片14B可经设计以存储应用程序或其它类型的数据,例如,视频、图形或基于显示的数据,其中通常连续存取同一存储器页29。在此情况下,提供用于DDRDRAM存储器芯片14B的存储器组28的存储器存取配置以在每一存取之后维持其存储器页29开放将导致存储器存取时间节省。这是由于对同一存储器页29的连续存储器存取将不需要针对每一存取开放存储器页29。0028应注意虽然先前实例提供用于给定DDRDRAM存储器芯片14A、14B的所有存储器组28的相同存储器存取配置,但可为相同DDRDRAM存储器芯片14A、14B内的每一存储器组28提供不同的存储器存取配置。这通过图2及。

34、图3中所陈述的存储器存取实例进一步说明。0029图2及图3提供存储器存取时间节省的其它实例,其可通过可配置以将存储器存取配置提供到存储器14中的每一存储器组28的存储器控制器12来实现。图2中说明第一存储器存取实例36。如本文中所说明,展示全部针对存储器组B028A的一系列八8个存储器存取请求70。前四个存储器存取请求全部针对存储器页0。后四个存储器存取请求全部针对存储器页1。如果存储器组B0由存储器控制器12配置以在每一存取之后关闭存储器页,则每一存储器存取在此实例中将产生6个时钟循环,以开放且关闭对应于待存取的存储器位置的存储器页29。然而,如果存储器组B0经配置以在每一存取之后保持或维持。

35、其存储器页29开放,则每一存储器存取视是否在连续存储器存取请求之间存取同一存储器页29而定将产生不同的存储器存取时间。举例来说,第一存储器存取将涉及六6个循环开放对应于待存取的存储器位置的存储器页29的三3个循环,及存取开放的存储器页29中的存储器位置的三3个循环。然而,下三个存储器存取请求仅将花费三3个时钟循环,从而导致三3个时钟循环存取节省,因为存储器页0根据存储器存取配置在存储器组B0中保持开放。0030仅在存取不同存储器页29时,将发生存储器存取损失。如图2的第五号存储器存取请求所示,当首先存取存储器页1时,需要九9个时钟循环。这是由于存储器控制器12必须在其可开放存储器页1之前关闭存。

36、储器页0。在此实例中对于总共六6个时钟循环,每一存储器页开放需要三3个时钟循环。对存储器位置的存取引起另外三3个时钟循环,从而达到总共九9个时钟循环。因此,如果提供用于存储器组B0的存储器存取配置以在每一存取之后关闭存储器页29,则与所需的六6个时钟循环相比产生三3个时钟循环损失。然而,由于随后连续存取存储器页0三次,因此针对每一存取实现三3个时钟循环存储器存取节省,因为维持存储器页1开放。因此,在此实例中提供用于存储器组B0的存储器存取配置以在每一存取之后保持其存储器页29开放在存储器存取时间方面更说明书CN102356385ACN102356395A6/14页10为有利,因为对存储器组B0。

37、的存储器存取请求通常导致对同一存储器页29的连续存储器存取。概述图2中的存储器存取实例36,十五15个时钟循环的总存储器存取时间节省通过提供用于存储器组B0以在每一存取之后保持其存储器页29开放与在每一存取之后关闭其存储器页29相对比的存储器存取配置来实现。0031图3说明另一存储器存取实例38,其包括对存储器组28的一系列九9个存储器存取请求72,其中总存储器存取损失因提供存储器存取配置以在每一存取之后保持存储器页29开放而发生。如所说明,存储器组B1经存取九次。连续存储器存取请求通常涉及存取存储器组B1内的不同存储器页29,如所说明。因此,在可执行新存储器存取之前需要存储器控制器12更频繁。

38、地关闭先前开放的存储器页29,因而导致九9个时钟循环及三3个时钟循环存储器存取损失。然而,如果将存储器存取配置提供用于存储器组B1以在每一存取之后关闭存储器页,则对于九个存储器存取请求将需要较少的总时钟循环。尽管在此情况下每一存储器存取请求将引起六6个时钟循环,且因此未实现存储器存取节省,但将也不会带来存储器存取损失。因此在此实例中,提供用于存储器组B1的存储器存取配置以在每一存取之后关闭存储器页在存储器存取时间方面更为有利,因为对存储器组B1的存储器存取请求通常导致对不同存储器页29的连续存储器存取。概述图3中的实例,通过提供用于存储器组B1以在每一存取之后关闭其存储器页29与在每一存取之后。

39、保持其存储器页29开放相对比的存储器存取配置来实现十二12个时钟循环的总存储器存取时间节省。0032一旦经由存储器总线16存取所要存储器位置,则存储器控制器12可将存取的数据提供到系统总线31。在所说明的实例中,系统总线31为不同于存储器总线16的总线。然而,在其它系统中,存储器总线16及系统总线31可为相同总线。存取的数据由存储器控制器12经由系统总线31提供到基于处理器的系统中的另一组件。在图1的所说明实例中,系统总线31包括地址/控制/写入数据ADDR/CTRL/W_DATA总线32,其接收待存取的存储器位置的地址以及待写入到存储器14的任何数据。还提供读取数据总线34R_DATA以载运。

40、从存储器14读取的数据。存储器控制器12将来自存储器14中的读取存储器位置的数据断言到R_DATA总线34上。0033图4及图5说明内部寄存器的实例,其可提供于存储器控制器12中以控制存储器存取且配置存储器存取配置。特定来说,将存储器存取配置提供用于每一存储器组28以控制其中的存储器页29是否在每一存储器存取之后维持开放。如图4中所说明,可提供内部寄存器40,其包括页地址PAGE_ADDR寄存器42及页开放PAGE_OPEN寄存器44。PAGE_ADDR寄存器42含有当前保持于存储器系统10的存储器14中的存储器页29的物理地址。众所周知,PAGE_ADDR寄存器42可用于存储器控制器12中以。

41、避免某些操作系统的地址表的过度使用。PAGE_OPEN寄存器44指示给定存储器组28中的存储器页29是否开放。0034图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提供于。

42、图1中的存储器系统10的DDRDRAM存说明书CN102356385ACN102356395A7/14页11储器芯片14A、14B中。组B0B3包括于DDRDRAM存储器芯片14A、14B中的每一者中。为第一存储器芯片14A中在位位置七7到4中的存储器组29中的每一者提供存储器存取配置。为第二DDRDRAM存储器芯片14B中在位位置三3到零0中的存储器组29中的每一者提供存储器存取配置。存储于用于给定存储器组28的BANK_OPEN_PAGE_EN寄存器46中的位中的逻辑“1”指示在每一存取之后维持所述存储器组28的存储器页29开放。存储于用于给定存储器组28的BANK_OPEN_PAGE_E。

43、N寄存器46中的位中的逻辑“0”指示在每一存取之后关闭所述存储器组28的存储器页29。0035可通过发出适当命令以设定存储器控制器12中的BANK_OPEN_PAGE_EN寄存器46的位来为DDRDRAM存储器芯片14A、14B提供存储器存取配置。命令经由系统总线31发出到存储器控制器12。这允许CPU未图示或其它处理器或电子设备提供用于DDRDRAM存储器芯片14A、14B的存储器存取配置。这还允许存储器存取配置由存储器系统10的设计者根据需要通过对设定BANK_OPEN_PAGE_EN寄存器46的位的软件进行编程来提供。可在起动或加电时、在运行时间期间或任何其它所要时间设定存储器存取配置。。

44、存储器存取配置可在起动或加电时具有默认设定。默认设定可为在每一存取之后关闭存储器页例如,BANK_OPEN_PAGE_EN寄存器46等于或设定为“00000000”,或在每一存取之后维持存储器页开放例如,BANK_OPEN_PAGE_EN寄存器46等于或设定为“11111111”。存储器存取配置可经配置为静态配置,其意味着存储器存取配置保持永久存储于BANK_OPEN_PAGE_EN寄存器46中。现将论述存储器存取配置的静态控制及使用静态存储器存取配置的存储器存取的实例。0036图6说明使用由BANK_OPEN_PAGE_EN寄存器46提供的存储器存取配置由存储器控制器12对存储器组28中的存。

45、储器页29的示范性存储器存取的流程图。在此实例中,BANK_OPEN_PAGE_EN寄存器46已针对存储器组28中的每一者经配置为在每一存取之后维持开放或关闭其存储器页29。存储器控制器12咨询BANK_OPEN_PAGE_EN寄存器46以确定是否在对存储器页29的存取之后维持开放或关闭给定存储器组28中的存储器页29。处理可用存储器控制器12的微代码来实施。应注意虽然示范性存储器存取过程通过流程图中的依序任务提供,但这些动作通常由存储器控制器12以管线架构执行以在可能时处理多个存储器存取请求。0037在此实例中,过程通过存储器控制器12首先接收对存储器14内的特定存储器地址的存储器存取请求而。

46、开始框50。存储器存取请求可为读取请求或写入请求。存储器控制器12经由系统总线31接收待存取的存储器地址,如先前所描述。如果存储器存取请求为写入数据,则存储器控制器12还经由系统总线31接收待写入到存储器14的经接收存储器地址中的数据。0038存储器控制器12确定哪一存储器组28及存储器组28内的存储器页29对应于存储器存取请求中的经接收存储器地址框52。因此存储器控制器12可启用含有存储器请求的所要存储器位置的用于DDRDRAM存储器芯片14A、14B的正确芯片选择CS。存储器控制器12还使用此信息以激活对应于待存取存储器位置的DDRDRAM存储器芯片14A、14B中的正确存储器页29及列。。

47、存储器控制器12接着确定为含有待存取存储器位置的存储器组28提供的存储器存取配置是否用于使其存储器页29在每一存取之后维持开放或关闭决策54。关于此,存储器控制器12咨询BANK_OPEN_PAGE_EN寄存器46。如果在每一说明书CN102356385ACN102356395A8/14页12存取之后关闭,则这意味着在可存取存储器页29中的存储器位置之前首先开放对应于存储器位置的存储器页29。关于此,如图7中所说明,存储器控制器12开放对应于待存取存储器位置的存储器页29框56。更新PAGE_OPEN及PAGEADDR寄存器44、42以相应地指示当前开放的存储器页29框58。存储器控制器12接。

48、着直接存取从开放的存储器页29所请求的存储器位置框60。存储器控制器12接着关闭经存取存储器位置的当前开放的存储器页29框62。再次更新PAGE_OPEN及PAGEADDR寄存器44、42以指示存储器页29不再开放框64。存储器存取请求过程接着针对此特定存储器存取请求而结束框66。一个或一个以上其它存储器存取请求可继续在存储器控制器12的管线中执行。0039然而,如果存储器控制器12确定为含有待存取的存储器位置的存储器组28提供存储器存取配置以在每一存取之后维持开放经由BANK_OPEN_PAGE_EN寄存器46决策54,则存储器控制器12可能够在不必首先开放含有存储器位置的存储器页29的情况。

49、下直接存取所要的存储器位置。这将带来存储器存取时间节省。关于此,如图6中所说明,存储器控制器12确定对应于待存取的存储器位置的存储器页29是否已开放决策68。关于此咨询PAGE_ADDR及PAGE_OPEN寄存器42、44。如果对应于待存取的存储器位置的存储器页29已开放,则存储器控制器12在此后不关闭存储器页29的情况下直接存取所请求的存储器位置框70,且存储器存取请求结束框72。由于所存取的存储器页29保持开放,因此不更新PAGE_OPEN及PAGEADDR寄存器44、42。0040存储器存取由存储器控制器12在比原本需要的时钟循环少的时钟循环中进行,因为在此情况下在存取存储器位置之前存储。

50、器控制器12不必首先开放含有待存取的存储器位置的存储器页29。因此,在此实例中,对同一存储器页29的连续存储器存取将带来存储器存取时间节省,因为在可存取存储器位置之前存储器控制器12将不必首先开放存储器页29。作为实例,如果开放存储器页29需要存储器控制器12的时钟循环,则可在对同一存储器页29的连续存储器存取之间实现三个时钟循环存取时间节省。先前通过图2及图3中的实例论述且说明可针对由存储器系统10所采用的存储器存取所实现的存储器存取时间节省及损失。0041如果存储器控制器12确定对应于待存取的存储器位置的存储器页29尚未开放决策68,则当前可开放不对应于待存取的存储器位置的另一存储器页29。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1