在存储器错误检测和存储器错误校正之间动态选择的制作方法_2

文档序号:8491814阅读:来源:国知局
条目112-118,但是页表110可包括附加或更少的映射条目来将虚拟存储器地址映射到物理存储器地址。存储在页表110中的虚拟存储器地址由操作系统102使用以定位对应的物理存储器地址(例如数据106被存储在DRAM 108中的什么位置)。
[0018]图示的示例的处理器134还被提供有来自页表110的最近使用的映射条目(例如映射条目112-118)的转译后备缓冲器(TLB)120以由操作系统102使用来在虚拟和物理地址之间转译。图示的示例的TLB 120对来自页表110的页映射进行缓存以用于由操作系统102更快访问。在图1B的TLB 120中图示了用于存储器页104的示例映射条目112。映射条目112包括虚拟地址122和对应物理地址124。当从应用接收访问请求(例如具有对应虚拟地址的读取或写入请求)时,操作系统102在TLB 120上搜索请求的虚拟地址(例如虚拟地址122)。如果请求的虚拟地址在TLB 120中找到(被称为TLB命中),则使用对应于虚拟地址的物理地址(例如物理地址124)用于存储器访问(例如以访问页-1 104)。如果请求的虚拟地址在TLB 120中未找到(被称为TLB未命中),则图示的示例的操作系统102和/或处理器134可在页表110中搜索请求的虚拟地址。如果请求的虚拟地址在页表110中找到,则处理器134在TLB 120中创建映射条目(例如类似于映射条目112)并且使用对应物理地址执行存储器访问。图示的示例的TLB 120中的映射条目(例如映射条目112)还可包含与页映射有关的状态信息,例如存储器引用的数量、存储器取指宽度等。
[0019]在图示的示例中,计算系统100被提供有存储器控制器126以管理对DRAM 108的存储器访问。为了管理对DRAM 108的访问,存储器控制器126包含逻辑来读取和/或写入数据到DRAM 108 (例如存储器页104中的数据106)。附加地,存储器控制器126使用存储在DRAM 108中的错误保护位来实施用于存储器页(例如存储器页104)的存储器错误保护。在图示的示例中,将错误保护位示为存储在与那些存储器页相关联的DRAM 108中的(多个)错误保护位128。如果将不具有错误校正的存储器错误检测使能用于存储器页104,则图示的示例的(多个)错误保护位128包括(多个)奇偶位。如果将使能存储器错误检测和校正用于存储器页104,则(多个)错误保护位128存储ECC。如在图1B的示例中示出的,(多个)奇偶位一般由比ECC更少量的位构成(例如奇偶性仅利用ECC位的子集)。尽管在图示的示例中被示为ECC或奇偶位,可使用任何类型的错误检测或校正码和/或方法。
[0020]为了执行动态错误保护,图示的示例的操作系统102确定不同水平的错误保护在逐个页的基础上被实施。图示的示例的操作系统102确定了一些存储器页将被实施为使能不具有校正的错误检测并且一些存储器页将被实施为使能错误检测和校正。操作系统102还可确定将要实施什么水平的不具有校正的错误检测和什么水平的错误检测和校正。例如,操作系统102可确定针对特定存储器页将实施错误检测和校正的更复杂方法(例如更复杂的ECC)。图示的示例的操作系统102将应当提供用于存储器页的错误保护的水平基于存储器页中的数据是否相对容易可重建或存储器页是否包含不可重建数据内容。例如,自从从数据源将存储器页读取到DRAM 108中还没做出对其的数据改变的该存储器页(例如存储器页104)可以被认为是由操作系统102通过从数据源(例如大容量储存器138、非易失性存储器136、和任何其它本地或远程存储器)再读取该存储器页而容易可重建的。在一些示例中,操作系统102可将应当提供给存储器页的错误保护的水平基于存储在存储器页中的数据的重要性水平。
[0021]如果存储器页能够是相对容易重建的,则图示的示例的操作系统102确定该存储器页将被提供有检错码(例如(多个)奇偶位)作为错误保护信息128来使能不具有校正的错误检测。在这样的示例中,存储器页104被实施以使能不具有错误校正的错误检测,因为如果检测到错误,存储器页104可被丢弃并且通过从数据源再读取存储器页104来被重建在DRAM 108的不同物理存储器区域中。
[0022]在其它示例中,操作系统102确定了存储器页应当被实施有错误检测和错误校正。例如,脏文件输入/输出(I/o)缓冲器(例如自从从数据源读取存储器页以来仍未做出对其的数据改变的存储器页)具有不容易可重建或完全不可重建的内容,并且因此,操作系统102实施用于脏文件I/O缓冲器的存储器页以使能错误检测和错误校正。除了将用于存储器页的错误保护的水平基于存储器页的数据是否可被容易重建之外,图示的示例的操作系统102还可提供应用编程接口(API)(例如API 130)来允许应用和/或操作系统将某些存储器页标记为可重建或不可重建。例如,API 130可指示包括网页浏览器缓存的存储器页是通过从对应统一资源定位器(URL)站点检索对应数据而容易可重建的,并且因此操作系统102将实施包含网页浏览器缓存的存储器页以使能不具有错误校正的错误检测。API130可被用于提供在存储器页内的数据的重要性水平,或指示将被实施用于特定存储器页的错误保护水平。
[0023]为了实施动态错误保护,TLB 120中的映射条目(例如映射条目112)包括保护类型标志132。当图示的示例的操作系统102确定了存储器页104应当被提供有使能不具有校正的错误检测的错误保护位128时,在用于存储器页104的映射条目112中设定保护类型标志132以指示不具有校正的错误检测。当图示的示例的操作系统102确定了存储器页104应当被提供有使能错误检测和错误校正的错误保护位128时,在用于存储器页104的映射条目112中设定保护类型标志132以指示错误检测和校正。在一些示例中,图示的示例的保护类型标志132是被设定为低电平(例如“O”)以指示不具有校正的错误检测并且被设定为高电平(例如“I”)以指示错误检测和校正的位。可替代地,低电平(例如“O”)可指示错误检测和校正,而高电平(例如“I”)可指示不具有校正的错误检测。将图示的示例的保护类型标志132传递到存储器控制器126以实施由此指示的特定类型的错误保护(例如不具有校正的错误检测,或错误检测和校正)用于对对应的存储器页(例如存储器页104)的每个引用。
[0024]在图示的示例中,响应于写入到DRAM 108中的存储器页104的指令,存储器控制器126基于保护类型标志132通过存储用于不具有校正的错误检测的(多个)奇偶位或用于错误检测和校正的(多个)ECC来配置被写入存储器页104的数据。例如,如果保护类型标志132被设定用于不具有校正的错误检测,则图示的示例的存储器控制器126确定并且存储在(多个)错误保护位128处的(多个)奇偶位。如果保护类型标志132被设定用于错误检测和校正,则图示的示例的存储器控制器126确定并且存储在(多个)错误保护位128处的ECC。在图示的示例中,响应于接收到从DRAM 108中的存储器页104进行读取的请求,存储器控制器126从处理器134接收错误保护类型标志132以确定被使能用于存储器页104的错误保护类型。例如,如果将数据存储在具有(多个)奇偶位的存储器页104中,则图示示例的存储器控制器126读取(多个)奇偶位并且基于(多个)奇偶位确定在存储器页104中是否存在错误。如果数据与ECC—起存储,则图示示例的存储器控制器126读取ECC并且基于ECC确定在存储器页104中是否存在错误,并且如果找到错误,则尝试基于ECC校正该错误。
[0025]在一些示例中,DRAM 108包括行缓冲器来存储最近读取的数据和/或将被写入到DRAM 108的数据。在传统DRAM设计中,响应于读取请求,整个行缓冲器将被填充有数据(例如数据106)。响应于写入请求,整个行缓冲器将存储将被写入DRAM 108的数据(例如数据106)。在一些这样的示例中,行缓冲器的大小(例如8KB)可以大于单个存储器页条目(例如条目112)的大小(例如4KB)。如果行缓冲器大小大于存储器页条目大小(例如大于某一阈值),操作系统102尝试确保被在读取或写入操作中涉及的整个行缓冲器内容被实施有不具有校正的错误检测或错误检测和错误保护。例如,行缓冲器中的所有数据应当被实施有(多个)奇偶位或ECC。为了尝试确保整个行缓冲器内容被实施有不具有校正的错误检测或错误检测和错误校正,操作系统102针对一组相邻存储器页(例如相邻地存储在DRAM 108中的存储器页)将保护类型标志(例如保护类型标志132)设定为相同值。例如,如果一组相邻存储器页中的存储器页将被实施有错误检测和错误校正,则操作系统102设定针对该组中的所有存储器页的保护类型标志132以实施错误检测和错误校正。如果该组相邻存储器页中没有存储器页被实施有错误检测和错误校正,则操作系统102设定针对该组中的所有存储器页的保护类型标志132以实施错误检测。
[0026]图示示例的操作系统102还可在不具有校正的错误校测与具有校正的错误检测之间改变用于存储器页的错误保护水平。例如,在从数据源读取存储器页104并且将存储器页104实施为使能不具有校正的错误检测之后,一处理可能随后经由写入访问写入它并且因此改变存储器页104中的数据。这样,图示示例的操作系统102确定了存储器页104不再是容易可重建的,因为其在DRAM 108中的数据不同于存储在原始数据源中的原始读取数据。因为存储器页104中的数据已改变并且不能通过从原始数据源再读取它来重建,操作系统102转换存储器页104以使能错误检测和校正。为了转换现有存储器页的存储器错误保护的水平,图示示例的操作系统102分配DRAM 108中的存储器页。操作系统102针对新的错误保护水平来设定映射条目112中的保护类型标志132(例如将保护类型标志132设定为指示错误检测和错误校正标志),并且发送保护类型标志132给存储器控制器126。位于图示示例的存储器控制器126中的存储器复制引擎140将来自DRAM 108中的原始存储器页104的数据106复制到取代原始存储器页104的新分配的存储器页。在图示示例中,复制引擎140位于存储器控制器126中。在其它示例中,复制引擎140可位于处理器134中或系统100中的其它地方。图示示例的存储器控制器126然后确定ECC并且将ECC存储在新分配存储器页104的(多个)错误保护位128中。图示示例的操作系统102然后更新旧存储器页的映射条目112以对应于新分配的存储器页104。例如,操作系统102更新物理地址124以对应于新分配的存储器页104并且解除分配原始存储器页。
[0027]在一些情况中,存储器页104中的错误是不可校正的,因为保护类型标志132指示存储器页104被使能用于不具有校正的错误检测,或当保护类型标志132指示存储器页104被使能用于错误检测和校正时,因为检测到的错误的量多于使用(多个)错误保护位128中的特定ECC能够校正的量。例如,当保护类型标志132指示不具有校正的错误检测时,存储在(多个)错误保护位128中的(多个)奇偶位不能被用于校正错误并且因此任何检测到的错误依然未被校正。附加地,如果当保护类型标志132指示错
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1