• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 15
    • 下载费用:30 金币  

    重庆时时彩买大小技巧: DRAM控制器及其控制方法和计算机程序产品.pdf

    关 键 词:
    DRAM 控制器 及其 控制 方法 计算机 程序 产品
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201710018716.8

    申请日:

    2017.01.10

    公开号:

    CN106782642A

    公开日:

    2017.05.31

    当前法律状态:

    实审

    有效性:

    审中

    法律详情: 实质审查的生效IPC(主分类):G11C 11/406申请日:20170110|||公开
    IPC分类号: G11C11/406 主分类号: G11C11/406
    申请人: 上海兆芯集成电路有限公司
    发明人: 罗德尼·E·虎克; 道格拉斯·R·瑞德; 泰瑞·帕克斯
    地址: 201203 上海市浦东新区上海市张江高科技园区金科路2537号301室
    优先权: 2016.04.15 US 62/323,177; 2016.10.26 US 15/335,141
    专利代理机构: 北京林达刘知识产权代理事务所(普通合伙) 11277 代理人: 刘新宇
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201710018716.8

    授权公告号:

    |||

    法律状态公告日:

    2017.06.23|||2017.05.31

    法律状态类型:

    实质审查的生效|||公开

    摘要

    本发明涉及DRAM控制器及其控制方法和计算机程序产品。一种用于控制包括多个块的动态随机存取存储器即DRAM的控制器??槭荄RAM中的一个或多个存储单元,针对该一个或多个存储单元,DRAM控制器可以选择性地启用或禁用刷新。DRAM控制器包括多个标志,该多个标志各自用于与DRAM的多个块中的块相关联。净化控制器确定要净化块,并且作为响应,设置与该块相关联的标志,并且针对该块禁用刷新。响应于后续接收到从该块中的位置读取数据的请求,在清除了该标志的情况下,DRAM控制器读取该位置并返回从该位置读取到的数据;以及在设置了该标志的情况下,DRAM控制器抑制读取DRAM并且返回零值。

    权利要求书

    1.一种用于控制动态随机存取存储器即DRAM的DRAM控制器,其中,所述DRAM包括多个
    块,所述块是所述DRAM中的一个或多个存储单元,针对该一个或多个存储单元,所述DRAM控
    制器能够选择性地启用或禁用刷新,所述DRAM控制器包括:
    多个标志,其各自用于与所述DRAM的所述多个块中的块相关联;以及
    净化控制器,用于确定为要净化所述多个块中的块,并且作为响应,设置所述多个标志
    中的与所述多个块中的所述块相关联的标志,并且针对所述块禁用刷新;
    其中,响应于后续接收到要从所述块中的位置读取数据的请求:
    在清除了所述标志的情况下,所述DRAM控制器读取所述位置并返回从所述位置读取到
    的数据;以及
    在设置了所述标志的情况下,所述DRAM控制器返回零值并且抑制读取所述DRAM。
    2.根据权利要求1所述的DRAM控制器,其中,还包括:
    响应于后续接收到要向所述块中的位置写入数据的请求:
    (a)在清除了所述标志的情况下,所述DRAM控制器向所述位置写入所述数据;以及
    (b)在设置了所述标志的情况下,所述DRAM控制器:
    针对所述块启用刷新;以及
    将所述数据写入所述位置。
    3.根据权利要求2所述的DRAM控制器,其中,还包括:
    响应于后续接收到要向所述块中的所述位置写入数据的请求:
    (b)在设置了所述标志的情况下,所述DRAM控制器还:
    清除所述标志;以及
    向所述块中的所有其它位置写入零值。
    4.根据权利要求2所述的DRAM控制器,其中,还包括:
    响应于后续接收到要向所述块中的所述位置写入数据的请求:
    在设置了所述标志的情况下,所述DRAM控制器仅在要写入的所述数据非零的情况下进
    行操作(a)和(b)。
    5.根据权利要求1所述的DRAM,其中,还包括:
    控制寄存器;以及
    所述净化控制器通过利用包括所述DRAM和所述DRAM控制器的系统的系统软件来检测
    向所述控制寄存器的写入,确定为要净化所述块。
    6.根据权利要求1所述的DRAM控制器,其中,还包括:
    所述净化控制器包括以下硬件,所述硬件通过检测向所述块的所有位置的一系列零值
    写入,确定为要净化所述块,其中所述一系列零值写入不具有介于其中的向所述块的任何
    位置进行的非零值写入。
    7.根据权利要求6所述的DRAM控制器,其中,所述硬件还包括:
    多个净化检测硬件实例,其中所述净化控制器针对所述DRAM的所述多个块中的不同块
    能够单独分配所述多个净化检测硬件实例。
    8.根据权利要求7所述的DRAM控制器,各净化检测硬件实例包括:
    位图,所述DRAM控制器使用所述位图来记录所述块内的哪些位置已被写入零值;以及
    逻辑,其检测所述位图的位何时全部为真。
    9.根据权利要求7所述的DRAM,其中,各净化检测硬件实例包括:
    寄存器,其保持所述块中最近以零值写入的固定大小的字之后的下一固定大小的字的
    索引,所述寄存器在所述索引与当前为零值的固定大小的字的写入的索引匹配时递增;以

    逻辑,其检测所述当前为零值的固定大小的字的写入的索引何时是所述块中的最高索
    引。
    10.一种用于控制动态随机存取存储器即DRAM的方法,其中,所述DRAM包括多个块,所
    述块是所述DRAM中的一个或多个存储单元,针对该一个或多个存储单元,所述DRAM控制器
    能够选择性地启用或禁用刷新,所述方法包括以下步骤:
    确定为要净化所述多个块中的块,并且作为响应,设置与所述多个块中的所述块相关
    联的标志,并且针对所述块禁用刷新;
    所述标志是各自用于与所述DRAM的所述多个块中的块相关联的多个标志中的标志;以

    响应于后续接收到从所述块中的位置读取数据的请求:
    在清除了所述标志的情况下,读取所述位置并返回从所述位置读取到的数据;以及
    在设置了所述标志的情况下,返回零值并且抑制读取所述DRAM。
    11.根据权利要求10所述的方法,其中,还包括以下步骤:
    响应于后续接收到要向所述块中的位置写入数据的请求:
    (a)在清除了所述标志的情况下,向所述位置写入所述数据;以及
    (b)在设置了所述标志的情况下:
    针对所述块启用刷新;以及
    将所述数据写入所述位置。
    12.根据权利要求11所述的方法,其中,还包括以下步骤:
    响应于后续接收到要向所述块中的所述位置写入数据的请求:
    (b)在设置了所述标志的情况下,进一步:
    清除所述标志;以及
    向所述块中的所有其它位置写入零值。
    13.根据权利要求11所述的方法,其中,还包括以下步骤:
    响应于后续接收到要向所述块中的所述位置写入数据的请求:
    在设置了所述标志的情况下,仅在要写入的所述数据非零的情况下进行操作(a)和
    (b)。
    14.根据权利要求10所述的方法,其中,还包括:
    确定为要净化所述块的步骤包括:利用包括所述DRAM以及DRAM控制器的系统的系统软
    件来检测向控制寄存器的写入,其中所述DRAM控制器包括所述控制寄存器。
    15.根据权利要求10所述的方法,其中,还包括:
    确定为要净化所述块的步骤包括:检测向所述块的所有位置的一系列零值写入,其中
    所述一系列零值写入不具有介于其中的向所述块的任何位置进行的非零值写入。
    16.根据权利要求15所述的方法,其中,还包括:
    所述方法通过包括多个净化检测硬件实例的DRAM控制器来进行,其中所述多个净化检
    测硬件实例能够单独分配给所述DRAM的所述多个块中的不同块。
    17.根据权利要求16所述的方法,其中,还包括以下步骤:
    响应于检测到向所述块内的位置的零值写入而将位图中的位设置为真,其中所述位图
    中的各个位与所述块内的不同位置相关联;以及
    确定为要净化所述块的步骤包括:检测所述位图的位全部为真。
    18.根据权利要求16所述的方法,其中,还包括以下步骤:
    通过以下方式维持寄存器以保持所述块中最近以零值写入的固定大小的字之后的下
    一固定大小的字的索引,该方式为在所述索引与当前为零值的固定大小的字的写入的索引
    相匹配时递增所述寄存器;以及
    确定为要净化所述块的步骤包括:检测所述当前为零值的固定大小的字的写入的索引
    何时为所述块中的最高索引。
    19.一种计算机程序产品,其编码在与计算装置一起使用的至少一个非暂态计算机可
    用介质中,所述计算机程序产品包括:
    在所述介质中包括的计算机可用程序代码,用于指定用于控制动态随机存取存储器即
    DRAM的DRAM控制器,其中,所述DRAM包括多个块,所述块是所述DRAM中的一个或多个存储单
    元,针对该一个或多个存储单元,所述DRAM控制器能够选择性地启用或禁用刷新,所述计算
    机可用程序代码包括:
    第一程序代码,用于指定多个标志,所述多个标志各自用于与所述DRAM的所述多个块
    中的块相关联;以及
    第二程序代码,用于指定净化控制器,所述净化控制器确定要净化所述多个块中的块,
    并且作为响应,设置所述多个标志中的与所述多个块中的所述块相关联的标志,并且针对
    所述块禁用刷新;
    其中,响应于后续接收到要从所述块中的位置读取数据的请求:
    在清除了所述标志的情况下,所述DRAM控制器读取所述位置并返回从所述位置读取到
    的数据;以及
    在设置了所述标志的情况下,所述DRAM控制器抑制读取所述DRAM并且返回零值。
    20.根据权利要求19所述的计算机程序产品,其中,所述至少一个非暂态计算机可用介
    质选自盘、磁带或者其它磁、光或电子存储介质的集合。

    说明书

    DRAM控制器及其控制方法和计算机程序产品

    相关申请的交叉引用

    本申请要求2016年4月15日提交的标题为“SANITIZE-AWARE DRAM CONTROLLER”的
    第62/323,177号美国临时申请的优先权,其全部内容通过引用包含于此。

    背景技术

    动态随机存取存储器(DRAM)在现代计算机系统中无处不在。DRAM由于其相对较低
    的成本、高容量/密度和高速度而无处不在。密度的益处很大程度上是由于用于存储数据位
    的各单元仅需要电容器和单个晶体管的事实而得到的。这与例如静态随机存取存储器
    (SRAM)的每单元所需要的硬件相比,明显是更少的硬件。然而,数据位在单元的电容器上的
    存储暗示了电力消耗成本。这是因为电容器电荷可能随时间经过而泄漏,从而使得单元失
    去其值。结果,电容器必须周期性地“刷新”以保持其值。这涉及从单元读取当前值并将该值
    写回至单元,从而“刷新”单元的值。刷新操作与不需要刷新的其它存储器技术相比消耗额
    外的电力。刷新根据系统对DRAM访问的需求可能带来DRAM的能量消耗中显著的百分比(例
    如,约20%),并且可能劣化系统性能(例如,约30%)。

    本发明的共同发明人之一获得授权的第5,469,559号美国专利说明了用于抑制刷
    新不包含有效数据的DRAM的所选部分的存储器控制器和方法。这可以减少对于无效数据而
    言不必要的刷新所消耗的电量。

    本发明的发明人提供了提供更多益处的DRAM控制器的实施例。额外的益处主要是
    通过发明人认识到如下事实而得到的:许多操作系统通过向解除分配的存储器写入零来
    “净化(sanitize)”该存储器,从而例如通过防止黑客和/或该存储器被分配至的下一用户
    看到第一个用户的数据来提高系统安全性。

    发明内容

    本发明提供一种用于控制动态随机存取存储器即DRAM的DRAM控制器,其中,所述
    DRAM包括多个块,所述块是所述DRAM中的一个或多个存储单元,针对该一个或多个存储单
    元,所述DRAM控制器能够选择性地启用或禁用刷新,所述DRAM控制器包括:多个标志,其各
    自用于与所述DRAM的所述多个块中的块相关联;以及净化控制器,用于确定为要净化所述
    多个块中的块,并且作为响应,设置所述多个标志中的与所述多个块中的所述块相关联的
    标志,并且针对所述块禁用刷新;其中,响应于后续接收到要从所述块中的位置读取数据的
    请求:在清除了所述标志的情况下,所述DRAM控制器读取所述位置并返回从所述位置读取
    到的数据;以及在设置了所述标志的情况下,所述DRAM控制器返回零值并且抑制读取所述
    DRAM。

    本发明还提供一种用于控制动态随机存取存储器即DRAM的方法,其中,所述DRAM
    包括多个块,所述块是所述DRAM中的一个或多个存储单元,针对该一个或多个存储单元,所
    述DRAM控制器能够选择性地启用或禁用刷新,所述方法包括以下步骤:确定为要净化所述
    多个块中的块,并且作为响应,设置与所述多个块中的所述块相关联的标志,并且针对所述
    块禁用刷新;所述标志是各自用于与所述DRAM的所述多个块中的块相关联的多个标志中的
    标志;以及响应于后续接收到从所述块中的位置读取数据的请求:在清除了所述标志的情
    况下,读取所述位置并返回从所述位置读取到的数据;以及在设置了所述标志的情况下,返
    回零值并且抑制读取所述DRAM。

    本发明还提供一种计算机程序产品,其编码在与计算装置一起使用的至少一个非
    暂态计算机可用介质中,所述计算机程序产品包括:在所述介质中包括的计算机可用程序
    代码,用于指定用于控制动态随机存取存储器即DRAM的DRAM控制器,其中,所述DRAM包括多
    个块,所述块是所述DRAM中的一个或多个存储单元,针对该一个或多个存储单元,所述DRAM
    控制器能够选择性地启用或禁用刷新,所述计算机可用程序代码包括:第一程序代码,用于
    指定多个标志,所述多个标志各自用于与所述DRAM的所述多个块中的块相关联;以及第二
    程序代码,用于指定净化控制器,所述净化控制器确定要净化所述多个块中的块,并且作为
    响应,设置所述多个标志中的与所述多个块中的所述块相关联的标志,并且针对所述块禁
    用刷新;其中,响应于后续接收到要从所述块中的位置读取数据的请求:在清除了所述标志
    的情况下,所述DRAM控制器读取所述位置并返回从所述位置读取到的数据;以及在设置了
    所述标志的情况下,所述DRAM控制器抑制读取所述DRAM并且返回零值。

    附图说明

    图1是示出计算系统的框图。

    图2是示出根据替代例的计算系统的框图。

    图3~5是示出系统的操作的流程图。

    图6是示出根据一个实施例的用以进行针对净化后的DRAM块的选择性刷新的系统
    的操作的流程图。

    图7是示出净化检测硬件(SDH)实例的框图。

    图8是示出通过采用图7的SDH实例检测为要对DRAM块进行净化的DRAM控制器的操
    作的流程图。

    具体实施方式

    术语表

    DRAM的块是DRAM中的一个或多个存储单元,其中,针对该一个或多个存储单元,
    DRAM控制器可以选择性地启用或禁用刷新。例如,数据RAM的(通常被称为)“行”是可刷新
    的。对于一些DRAM,作为示例,行是512字节的存储。

    净化DRAM的块是指将块中的所有位置清除为零值。

    现在参考图1,示出用于例示计算系统100的框图。计算系统100包括处理器102、
    DRAM 104、将处理器102连接至DRAM 104的DRAM控制器103、以及经由DRAM控制器103访问
    DRAM 104的其它总线主装置(例如,总线主控I/O装置)。处理器102可以是多核处理器。处理
    器102执行包括系统软件(诸如操作系统和/或系统固件(诸如基本输入/输出系统(BIOS)或
    可扩展固件等)等)、实用工具和应用程序的程序。DRAM 104被配置为多个DRAM块142。除其
    它事项外,系统软件还对包括DRAM块142整体的DRAM 104的一部分进行净化。许多操作系统
    以根据处理器102支持的虚拟存储器系统确定大小的页为粒度来净化存储器。例如,常见页
    大小为4KB、64KB、1MB、16MB、256MB、1GB和2GB。

    DRAM控制器103将DRAM 104中的一个或多个存储单元(例如DRAM 104的行)视为
    DRAM块142,其中,针对该一个或多个存储单元,DRAM控制器可以选择性地启用或禁用刷新。
    在一些实施例中,DRAM块142的大小与处理器102的虚拟存储器系统所支持的最小页的大小
    相对应。例如,如果DRAM控制器可以选择性地启用或禁用刷新所针对的存储单元是512字节
    的行,并且处理器102所支持的最小页的大小为4KB,则DRAM控制器103将DRAM 104的8个邻
    接行视为DRAM块142。

    DRAM控制器103包括多个净化标志132(还被称为净化位132)以及净化控制器134。
    在一个实施例中,DRAM控制器103包括针对DRAM 104的各相应DRAM块142的净化位132。

    在替代例(这里被称为净化范围实施例)中,各净化位132具有相应的范围寄存器,
    其中净化位132和范围寄存器一起构成净化对。范围寄存器保持用以指定邻接DRAM块142的
    范围的地址和计数。该地址指定该范围内的第一个或起始DRAM块142,并且该计数指定该范
    围内的邻接DRAM块142的数量。如以下更详细所述,如果设置了净化位132,则在相应的范围
    寄存器中所指定的DRAM块142的范围被视为经过净化。净化控制器134将多个净化对视为如
    下的池,其中,(例如在图3的块304中)净化控制器134针对邻接DRAM块142的范围可以从该
    池中进行分配,并且(例如,在图5的块508中)净化控制器134可以解除分配到该池中。如果
    设置了净化位132,则这表示该净化对已被分配,并且如果清除了净化位132,则这表示该净
    化对可以自由分配。

    现在参考图2,示出用于例示根据替代例的计算系统100的框图。图2的计算系统
    100与图1的计算系统100类似,并且包括类似的要素。然而,在图2的计算系统100中,DRAM控
    制器103一体化到处理器102中。更具体地,处理器102包括环形总线226,其中DRAM控制器
    103连接至该环形总线226。处理器102还包括连接至环形总线226的多个处理器核222。处理
    器102还包括核222所共用的、连接至环形总线226的末级高速缓存(LLC)224。优选地,DRAM
    控制器103、LLC 224和各核222具有使它们连接至环形总线226的关联环站点。最后,处理器
    102包括将I/O装置106连接至环形总线226的I/O环站点228。

    现在参考图3,示出用于例示系统100的操作的流程图。流程从块302开始。

    在块302中,DRAM控制器103确定为要净化DRAM块142。在一个实施例中,例如,如以
    下参考图6所述,系统软件向DRAM控制器103告知要净化DRAM块142。在另一实施例中,例如,
    如以下参考图7和8所述,DRAM控制器103包括通过监视向DRAM块142的零值写入来进行确定
    的硬件。也考虑到用于确定要净化DRAM块142的其它实施例。流程进入块304。

    在块304中,DRAM控制器103设置与块302中所确定的DRAM块142相关联的净化位
    132。另外,DRAM控制器103禁用DRAM块142的刷新。在净化范围实施例中,DRAM控制器103分
    配净化对、设置净化位132并且利用范围内的第一个DRAM块142的地址以及具有该范围内的
    DRAM块142的数量的计数来填充范围寄存器。另外,DRAM控制器103禁用该范围内的所有
    DRAM块142的刷新。流程在块304处结束。

    现在参考图4,示出用于例示系统100的操作的流程图。流程从块402开始。

    在块402中,DRAM控制器103接收要从DRAM 104的位置进行读取的请求?;诟梦?br />置的地址,该位置关联DRAM块142,即,处于DRAM块142内。流程进入决定块404。

    在决定块404中,DRAM控制器103判断是否设置了与所关联的DRAM块142相对应的
    净化位132。如果是,则流程进入块408;否则,流程进入块406。在净化范围实施例中,净化控
    制器134判断为读取请求的地址落入设置了净化位132的净化对的范围寄存器中所指定的
    范围。

    在块406中,DRAM控制器103从DRAM 104中读取所指定的位置并且返回所读取到的
    数据,即,根据DRAM控制器103的正常操作来进行工作。流程在块406处结束。

    在块408中,DRAM控制器103不读取DRAM 104,而是针对读取请求返回零值。这是因
    为在决定块404中判断为要净化读取请求所关联的DRAM块142。流程在块408处结束。

    (例如,在块408中)在块被净化的情况下不读取DRAM的优点是:(1)由于不需要为
    了维持零值而刷新DRAM块,因此可以消耗更少的电力;(2)即使软件请求读取数据,也由于
    没有为了读取数据而访问DRAM,因此可以消耗更少的电力;以及(3)由于不必为了读取所请
    求的数据而访问DRAM,因此性能因读取请求的延迟缩短而可以得到改善,由于已知数据的
    期望值为零,因此所有这些都是可能的。

    现在参考图5,示出系统100的操作的流程图。流程从块502开始。

    在块502中,DRAM控制器103接收要向DRAM 104的位置写入数据的请求。更具体地,
    DRAM控制器103判断为要写入的数据具有非零值?;诟梦恢玫牡刂?,该位置关联DRAM块
    142,即,处于DRAM块142内,或者在净化范围实施例中该位置关联DRAM块142的范围。在替代
    例中,DRAM控制器103不检查要写入的数据是否非零,而是与数据值无关地进行图5的操作。
    如果DRAM控制器103接收到将具有零值的数据写入DRAM 104的位置的请求,则在设置了净
    化位132的情况下,DRAM控制器103不进行向DRAM 104的写入,而在清除了净化位132的情况
    下,DRAM控制器103将零值写入DRAM 104的指定位置。流程进入决定块504。

    在决定块504中,DRAM控制器103判断是否设置了与所关联的DRAM块142或者DRAM
    块142的范围相对应的净化位132。如果是,则流程进入块508;否则,流程进入块506。在净化
    范围实施例中,净化控制器134判断为写入请求的地址落入设置了净化位132的净化对的范
    围寄存器中所指定的范围。

    在块506中,DRAM控制器103将所指定的数据写入DRAM 104中的指定位置,即,根据
    DRAM控制器103的正常操作来进行工作。流程在块506处结束。

    在块508中,DRAM控制器103清除与所关联的DRAM块142相对应的净化位132。另外,
    DRAM控制器103针对所关联的DRAM块142或净化范围实施例中的范围寄存器所关联的DRAM
    块142的范围重新启用刷新。更进一步地,DRAM控制器103将所指定的数据写入DRAM 104的
    指定位置。最后,DRAM控制器103将零写入除写入请求所指定的位置以外的、DRAM块142的所
    有位置或所关联的DRAM块142的范围。流程在块508处结束。

    在向净化后的块进行首次非零的写入之前等待向块的其它位置写入零值的优点
    是:(1)由于与(例如,如美国专利5,469,559中所述的)操作系统指示块已被分配之后立即
    开始刷新那样相比,针对附加的时间量(并且在一些情况下,在软件对块进行分配之后到对
    块进行写入之前可能是大量时间)没有对DRAM块进行刷新,因此可以消耗更少电力;(2)操
    作系统不必进行针对块的所有零的写入,其中为了将这些零写入块、涉及处理器102执行数
    量级可能为数十到数百的指令。后者的考虑具有如此得到的以下益处:(a)由于处理器102
    不必执行许多写入指令,因此可以消耗更少电力;(b)由于处理器102不必执行许多写入指
    令且因而有空执行其它指令,因此可以改善系统性能;以及(c)由于DRAM控制器103在没有
    额外延迟的情况下向块进行零的写入,因此可以改善系统性能,其中,在处理器102必须执
    行写入指令然后向DRAM控制器103进行写入请求的情况下将会涉及该额外延迟。应理解,第
    二个益处(2)可以不通过图7和8的净化检测硬件(SDH)实施例来实现。

    现在参考图6,示出用于例示根据一个实施例的用以进行针对净化后的DRAM块142
    的选择性刷新的系统100的操作的流程图。流程从块602开始。

    在块602中,系统软件(例如,操作系统或其它执行程序)决定对DRAM块142进行净
    化。例如,一些操作系统提供UNIX操作系统和诸如Mac OS X及较新版本的微软视窗
    (Microsoft Windows)等的相关操作系统中找到的诸如bzero()和memset()等的系统调
    用,其中,可以调用这些系统调用来净化存储器位置的序列,即,从指定存储器地址开始的
    指定数量的邻接存储器位置。传统上,实现这些系统调用的例程向指定序列中的所有存储
    器位置进行一系列的零值的写入。在一个实施例中,利用DRAM控制器103的能力来修改用于
    实现系统调用的例程。更具体地,该例程检查存储器位置的序列是否包括一个或多个整体
    DRAM块142。如果是,则代替传统地进行向所包括的块142的一系列零值写入,如参考块604
    所述,例程向DRAM控制器103进行写入以请求DRAM控制器103净化所包括的块142。流程进入
    块604。

    在块604中,系统软件向DRAM控制器103写入要净化的块142的地址。优选地,DRAM
    控制器103包括接收地址的控制寄存器。也就是说,通过在包括DRAM 104和DRAM控制器103
    的系统100上(例如,处理器102上)运行系统软件,可以对控制寄存器进行写入。在净化范围
    实施例中,系统软件写入该范围的地址和该范围内的DRAM块142的计数两者。流程进入块
    606。

    在块606中,DRAM控制器103针对指定的块142或块142的范围进行图3的操作,即,
    设置与块142或块142的范围相关联的净化位132并且针对块142或块142的范围禁用刷新。
    流程在块606处结束。

    现在参考图7,示出用于例示净化检测硬件(SDH)实例700的框图。在一个实施例
    中,DRAM控制器103包括多个SDH实例700,其中,DRAM控制器103(例如,在图8的块806中)从
    该多个SDH实例700中进行分配,并且(例如,在图8的块818中)解除分配到该多个SDH实例
    700中。SDH实例700包括有效位702、位图704、地址寄存器708和控制逻辑706。有效位702在
    为真的情况下表示SDH实例700已被分配,并且在为假的情况下表示SDH实例700可自由分
    配。位图704包括针对地址保持在地址寄存器708中的DRAM块142的各个位置的位。在各种实
    施例中,DRAM块142中的位置与对齐字节、16位的半字、32位的字、64位的双字、128位的四倍
    长字或256位的八倍长字相对应。在一个实施例中,位置与对齐高速缓存线(例如,处理器
    102的末级高速缓存)相对应??刂坡呒?06进行诸如以下参考图8所述的操作等的与读取并
    更新有效位702、位图704和地址寄存器708相关联的操作。

    现在参考图8,示出用于例示通过采用图7的SDH实例700检测为要净化DRAM块142
    的DRAM控制器103的操作的流程图。流程从块802开始。

    在块802中,DRAM控制器103接收向DRAM 104的位置写入数据的请求?;诟梦恢?br />的地址,该位置关联DRAM块142,即该位置处于DRAM块142内,或者该位置关联净化范围实施
    例中的DRAM块142的范围。流程进入决定块804。

    在决定块804中,DRAM控制器103判断是否已经针对写入请求所关联的DRAM块142
    或DRAM块142的范围分配了SDH实例700。更具体地,DRAM控制器103判断读取请求的地址的
    相关部分是否与有效702的SDH实例700的地址708匹配。如果是,则流程进入决定块808;否
    则,流程进入块806。

    在块806中,净化控制器134分配自由的SDH实例700。优选地,分配SDH实例700包括
    找出自由的SDH实例700(即,有效位702为假的SDH实例700)、将有效位初始化为真、将位图
    704的所有位清除为零以及将写入请求地址的相关部分写入地址寄存器708。优选地,如果
    不存在可分配的自由SDH 700,则DRAM控制器103仅继续正常工作,即,不尝试进行对正在净
    化块142的检测。流程在块806处结束。

    在决定块808中,净化控制器134判断要写入的值是否为零。如果是,则流程进入块
    814;否则,流程进入块812。

    在块812中,净化控制器134对先前(在块806中)针对DRAM块142所分配的SDH实例
    700进行解除分配。优选地,对SDH实例700进行解除分配包括清除有效位702,这样释放了
    SDH实例700以供后续的分配。流程在块812处结束。

    在块814中,净化控制器134设置与块802中通过所接收到的请求而写入的DRAM块
    142中的位置相关联的位图704的位。流程进入决定块816。

    在决定块816中,净化控制器134判断位图704是否已满,即,是否设置了位图704的
    所有位。如果是,则流程进入块818;否则,流程结束。

    在块818中,由于净化控制器134已判断为系统软件已净化了DRAM块142,因此净化
    控制器134对先前针对DRAM块142所分配的SDH实例700进行解除分配,并且开始如针对图3
    所述那样进行针对DRAM块142的操作。

    已考虑到SDH实例的其它实施例。在一个实施例中,DRAM控制器103假定为了净化
    块142而进行的一系列零值写入是以固定大小的字来进行的并且从块142中的第一个位置
    开始。该实施例并不需要位图704,而是需要如下的寄存器,其中该寄存器用于保持在块142
    内的最近以零值写入的块142的字之后的固定大小的字的索引。在操作期间,DRAM控制器
    103检测向块142中的第一个位置的数据值的写入。如果针对块142尚未分配SDH实例并且写
    入的是固定大小的零值的字,则DRAM控制器103分配SDH实例。分配SDF实例包括将寄存器的
    值初始化为一。如果针对块142已经分配了SDH实例,则DRAM控制器103判断数据值是否为零
    以及寄存器的索引是否与当前为零值的写入的索引匹配。如果为否,则DRAM控制器103对
    SDH实例进行解除分配。否则,DRAM控制器103判断寄存器的索引是否是块142中的最高索
    引。如果是,则DRAM控制器103对SDH实例进行解除分配并且针对该块进行图3的操作;否则,
    DRAM控制器103使寄存器递增。

    尽管这里已经说明了本发明的各种实施例,但应理解,这些实施例仅是以示例而
    非限制性的方式所呈现的。对于计算机相关领域的技术人员应显而易见,在没有背离本发
    明的范围的情况下,可以对本发明进行形式和细节方面的各种修改。例如,软件可以启用这
    里所述的设备和方法的例如功能、制造、建模、模拟、说明和/或测试。这可以经由一般编程
    语言(例如,C、C++)、包括Verilog HDL、VHDL等的硬件描述语言(HDL)或其它可用程序的使
    用来实现。这些软件可以放置在诸如磁带、半导体、磁盘或光盘(例如,CD-ROM、DVD-ROM等)
    等的任何已知的计算机可用介质、网络、配线或其它通信介质中。这里所述的设备和方法的
    实施例可以包括在诸如(例如,以HDL实现或指定的)处理器核等的半导体知识产权核中并
    且在生产集成电路时转换成硬件。此外,这里所述的设备和方法可以作为硬件和软件的组
    合来实现。因而,本发明不应局限于这里所述的任何典型实施例,而应仅根据所附权利要求
    书及其等同物来限定。具体地,本发明可以在通用计算机中能够使用的处理器装置中实现。
    最后,本领域技术人员应理解,在没有背离由所附权利要求书限定的本发明的范围的情况
    下,他们可以容易地使用所公开的概念和特定实施例作为用于设计或修改其它结构的基
    础,以实施本发明的相同的目的。

    关于本文
    本文标题:DRAM控制器及其控制方法和计算机程序产品.pdf
    链接地址://www.4mum.com.cn/p-6004736.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 买网络彩票快3稳赚不赔的方法 北京pk10技巧规律破解 内蒙古十一选五购彩平台 dnf那些卖辅助的赚钱吗 有谁知道北京pk10官网网址 福建11选5开奖器 pk106码怎么三倍投 七乐彩走势图带连线带坐标 德晋博娱乐城 地下彩赚钱 pk10技巧稳赚五码论坛 青海省11选5开奖结果 ff14生活职业赚钱吗 双色球胆2拖9 新11选5开奖官网 躺着也赚钱的基金投资