基于需求的纠错的制作方法

文档序号:6574378阅读:215来源:国知局
专利名称:基于需求的纠错的制作方法
技术领域
0001]本公开涉及信息处理领域,以及更具体来说,涉及存储
器、如高速緩冲存储器中的数据纠错的领域。
背景技术
计算机系统和/或微处理器可采用一个或多个高速緩冲 存储器来提供对最近使用数据的较快访问。例如,图l说明由处理器、 高速緩存和存储器组成的计算机系统。 一般来说,高速緩存模块可由 多级高速緩存组成,但是为了简洁起见,仅示出一级高速緩存。当处 理器取指令或数据(一般称作"数据")时,它可能首先访问高速緩存 模块。如果访问产生高速緩存"命中"(即高速緩存中存在所请求数 据),则高速緩存可向处理器提供该数据。如果访问引起丢失(即高速 緩存中不存在所请求数据),则高速緩存可从存储器(例如DRAM)中访 问相应线并将其存储在高速緩存中。 在处理器把数据编程或"写"到存储器(例如经由发出从 处理器到存储器的"写请求"事务处理)的情况中,根据高速緩存的写 入策略,数据可能是或者可能不是直接被写入存储器。例如,如果高 速緩存采用"直写"策略,则数据可被写入高速緩存以及存储器。但 是,如果高速緩存采用"回写"策略,则数据只可被写入高速緩存, 并且相应的高速緩存线可标签为"已修改",然后在该线被逐出高速 緩存时再回写到存储器中。
0004]是采用回写高速緩存还是直写高速緩存的选择取决于若
千设计考虑、如可用总线带宽。 一般来说,回写高速緩存可能需要比 直写高速緩存更小的总线带宽。为了保存芯片外的总线带宽(即从处理
器到存储器的总线带宽),许多现代高速緩存分层结构可采用回写策 略。高速緩存存储器可能容易受到数据破坏影响,从而导致 错误数据存储在高速緩存中并由处理器使用。高速緩存中的错误数据 在未被检测到的情况下可能导致处理器采用错误数据来进入不希望的 状态和/或产生不希望的结果。4皮检测到但未纠正的高速緩存错误或 "故障"有时称作检测到的不可恢复错误(DUE)。
〖0006] 对于直写高速緩存(即采用直写策略的那些高速緩存), 所有緩存数据的副本均在存储器中可得到。因此,通过只是例如经由 可用于针对高速緩存数据的奇偶校验的检错码(EDC)来检测高速緩存 错误,可使直写高速緩存避免高速緩存故障。在直写高速緩存中,如 果在高速緩存线中检测到错误,则使相应的高速緩存线无效,并从存 储器中读取该线的副本。 但是,对于回写高速緩存,修改高速緩存线的副本不一 定在存储系统中可得到。如果回写高速緩存仅采用EDC来保护,则修 改线中的错误可能产生DUE状况。为了避免DUE状况,回写高速緩存 通常采用不仅用于检测而且还用于纠正高速緩存故障的纠错码 (ECC)。 图2说明一种现有技术的四路组关联高速緩存阵列,其 中,各线(线0、 1、 2、 3)具有相应的ECC(ECC 0、 1、 2、 3)。在图2 的示例中,各线包含表明该线是否有效("vld"字段)、该线是否经过 修改("mod"字段)以及该线是否将被替换或"逐出"("repl"字段) 的信息,此外,各线还包含关于该线所对应的存储器地址的指示("标 签"字段)以及高速緩存线中存储的数据/指令("数据"字段)。通过附图
、作为示例而不是限制来说明本发明。图l说明包括处理器、高速緩存模块和存储器的现有技
术计算机系统。 图2说明一种现有技术的四路组关联高速緩存阵列,其 中,各高速緩存线具有相应的ECC。 图3说明根据本发明的一个实施例的四路组关联高速緩 存阵列。 图4是流程图,说明可用于执行本发明的至少一个实施 例的操作。图5是在其中可"f吏用本发明的一个实施例的共享总线系统。
0016] 图6是在其中可4吏用本发明的一个实施例的点对点总线 系统。
具体实施例方式
本发明的实施例涉及计算机系统。更具体来说,本发明 的至少 一个实施例涉及减小包含纠错码(ECC)的高速緩冲存储器的存 储开销、同时基本上保持高速緩存的相同性能的技术。本发明的至少 一个实施例利用以下事实只有已修改高速緩存线(即处于'已修改, 状态的那些高速緩存线)才需要纠错,而未修改高速緩存线(即不是处 于'已修改,状态的那些高速緩存线)可能仅仅需要检错。因此,在一 个实施例中,通过仅包括高速緩存线的足够ECC字段来实现可能在高 速緩存阵列中同时存在的最大数量的已修改高速緩存线的纠错,可节
省存储开销。
〖0018] 在一个实施例中,可通过仅对处于'已修改,状态的高 速緩存线使用ECC字段来减小回写高速緩存的存储开销。此外,至少 一个实施例使ECC代码能够在高速緩存线进入和离开已修改状态时与 不同的高速緩存线动态关联。在一个实施例中,在任何特定时间可能 处于已修改状态的高速緩存线的特定阵列(例如四路组关联高速緩存
阵列)中的高速緩存线的数量限制为两个。在其它实施例中,可能同时 处于已修改状态的阵列中的高速緩存线的数量可能少于或多于两个。 此外,在其它实施例中,可能同时处于已修改状态的阵列中的高速緩 存线的数量可动态改变。图3说明根据一个实施例的高速緩存线的阵列,其中, 每次只有两个ECC字段可用于与不超过两个的已修改高速緩存线关 联。具体来说,ECC阵列303中的两个ECC字段301和305可同时动 态地分配给高速緩存线阵列300中的四个高速緩存线310、 315、 320 和330的任何两个。这样,ECC字段的数量、因而存储它们所需的存 储区可减少。虽然图3所示的高速緩存阵列是四路组关联高速緩存阵 列,但是本发明的至少一个实施例的原理可适用于在其中保持ECC、 EDC或其它状态相关信息开销的任何类型的高速緩存线。 一般来说, 本发明的实施例可扩展到在其中保持某种开销量以及在其中所保持开 销取决于其中存储的信息(数据或指令)的状态的高速緩存或其它存储 类型。 在一个实施例中,根据由高速緩存线的已修改字段表明 的、高速緩存线的哪些同时处于已修改状态,两个BCC字段动态分配 给图3的四路组关联高速緩存中所示的四条线的两条。此外,本发明 的至少一个实施例通过在各高速緩存线中包含标识高速緩存线所对应 的ECC字段的标识符,来限制可能同时处于已修改状态的图3的阵列 中的高速緩存线的数量。在一个实施例中,如果处于已修改状态的已 修改高速緩存线的数量少于所允许的数量(例如在一个实施例中为2),则标识符可能改变。 例如,高速緩存线320的内容在图3中表示为包括有效 字段指示符321、已修改字段指示符322、标识符字段指示符323、替 换指示符字段324、标签字段325以及数据(或指令)字段326。在一个 实施例中,标识符字段("ID"字羊殳)标识高速緩存线所对应的ECC字 段之一。类似地,可能存在其ID字段标识其它的ECC字段的另一个高 速緩存线。在其它实施例中,可能有更多的ECC字段,因而更多高速 緩存线的ID字段将标识相应的ECC字段。在一个实施例中,例如,一 个高速緩存线的ID可能包含"0"值来标识ECC字段之一,而笫二高 速緩存线可能包含'T,值来标识另一个ECC字段。在其它实施例中, 其它ID值可用来标识与特定高速緩存线对应的ECC字段。 但是,在图3所示的实施例中,ECC字段的数量、因而 可能处于已修改状态的高速緩存线的数量限制为两个。图3中只有两 条高速緩存线可能同时处于已修改状态,由此减少必须保持的ECC字 段的数量。但是,其余高速緩存线可采用EDC。在其它实施例中,其 余未修改高速緩存线可能不采用EDC。 如果在操作401写高速緩存线,以及如果在操作"2,处 于已修改状态的高速緩存线的数量没有由于写操作而超过允许极限, 则在操作403,把来自写操作的数据编程到寻址高速緩存线的数据字 段,并且高速緩存线的ID字段;故更新为指向ECC字段之一 (例如仍未 与处于已修改状态的高速緩存线关联的一个ECC字段)。但是,如果写 操作使处于已修改状态的高速緩存线的数量超过允许极限,则在操作
410,来自已经与ECC字段关联的已修改高速緩存线的数据被回写到存 储器,并更新"已清理"高速緩存线的已修改字段以表明该高速緩存 线不再处子已修改状态,以及已清理高速緩存线的ID字段被更新为指 向EDC字段而不是ECC字段。当ECC字段再次能够自由使用之后,在 操作415,来自挂起写操作的数据可被编程到已清理高速緩存线,已修 改(例如困3中的"mod"字段)字段被更新以表明数据经过修改,以及 高速緩存线的ID字段设置为指向空闲ECC字段。 图5的处理器中所示的是机器状态的存储区506。在一 个实施例中,存储区可能是一组寄存器,而在其它实施例中,存储区 可能是其它存储器结构。图5中还表示的是根据一个实施例、用于保 存区段的存储区507。在其它实施例中,保存区段可能位于其它装置 或存储器结构中。处理器可具有任何数量的处理核。但是,本发明的 其它实施例可在系统的其它装置、如独立总线代理中实现,或者通过 硬件、软件或它们的某种组合分布于整个系统。 主存储器可通过各种存储源来实现,例如动态随机存取 存储器(DRAM)、硬盘驱动器(HDD) 520或者经由网络接口 HO远离计算 机系统设置的包含各种存储装置和技术的存储源。高速緩冲存储器可 设置在处理器内或者设置在处理器附近,例如设置在处理器的本地总 线507上。 此外,高速緩沖存储器可包舍较快的存储单元、如六晶 体管(6T)单元,或者接近相等或更快的存取速度的其它存储单元。图5 的计算机系统可能是例如微处理器等的总线代理的点对点(PtP)网 络,它们经由专用于PtP网络上的各代理的总线信号进行通信。图6 说明以点对点(PtP)配置来设置的计算机系统。具体来说,图6说明其 中的处理器、存储器和输入/输出装置通过多个点对点接口互连的系 统。 图6的系统还可包括若干处理器,为了筒洁起见仅示出 其中两个处理器670、 680。处理器670、 680均可包括与存储器22、 24连接的本地存储控制器集线器(MCH) 672、 682。处理器670、 680可 采用PtP接口电路678、688经由点对点(PtP)来交换数据。处理器670、 680均可采用点对点接口电路676、 694、 686、 698经由各个PtP接口 652、 654与芯片组690交换数据。芯片组690还可经由高性能图形接 口 639与高性能图形电路638交换数据。本发明的实施例可设置在具 有任何数量的处理核的任何处理器中或者设置在图6的PtP总线代理 的每个中。 但是,本发明的其它实施例可存在于图6的系统的其它 电路、遲辑单元或装置中。此外,本发明的其它实施例可分布于图6 所示的若干电路、逻辑单元或装置上。
0031] 本文涉及的处理器或者根据本发明的一个实施例设计的 其它任何组件可在从创建到模拟到制造的各个阶段中进行设计。表示 设计的数据可通过多种方式来表示设计。首先,如在模拟中可用的那 样,硬件可采用硬件描述语言或者另一种功能描述语言来表示。作为 补充或替代,采用逻辑和/或晶体管门的电路级模型可在设计过程的部 分阶段产生。此外,在某个阶段,大部分设计达到在其中它们可采用 表示各种装置的物理设置的数据来建模的等级。在使用传统半导体制 造技术的情况中,表示装置设置模型的数据可能是指定在用于生产集 成电路的掩模的不同掩模层上的各种特征是否存在的数据。 在设计的任何表示中,数据可存储在任何形式的机器可 读媒体中。经调制或者以其它方式产生以便传送这种信息的光或电 波、存储器或者磁或光存储装置、如盘可能是机器可读媒体。这些媒
体的任一个可"承栽"或"表明"该设计或者在本发明的实施例中使 用的其它信息、如差错恢复例程中的指令。传送表明或承栽信息的电 栽波以便执行电信号的复制、緩冲或重传时,制作新的副本。因此, 通信提供商或网络提供商的动作可能是制作体现本发明的技术的产 品、如栽波的副本。 因此,公开用于引导存储器存取、如加载或存储的技术。 虽然在附图中描述和表示了某些实施例,但是要理解,这些实施例只 是对广泛的发明的说明而不是限制,以及本发明不限于所示及所述的 具体构造和配置,因为本领域的技术人员在研究本公开"^后可能会想 到其它各种修改。在其中的增长迅速并且不易预见其它进步的例如这
样的技术的领域中,通过实现:汰术进步进行促进,所公开的实施例在 配置和细节上可易于修改,而没有背离本公开的原理或所附权利要求 书的范闺。
0034] 本发明的 一个或多个实施例的各个方面可能在可使用本 发明的一个或多个实施例的处理器或计算机系统的广告中描述、论述 或引用。这类广告可包括但不限于新闻纸、杂志、广告牌或其它报纸 或有形媒体。具体来说,本发明的一个或多个实施例的各个方面可经 由网站、"弹出"广告或其它基于万维网的々某体在互联网上做广告, 而不管包含生成网站或弹出广告的程序是位于美国还是其领区。
权利要求
1.一种设备,包括多个高速缓存线;多个纠错码(ECC)存储区,所述多个ECC存储区小于高速缓存线的数量。
2. 如权利要求l所述的设备,其中,ECC存储区的数量等于已修 改高速壤存线的最大数量。
3. 如权利要求l所述的设备,其中,所述多个高速緩存线包括表 明相应高速緩存线所对应的相应ECC存储区的标识(ID)字段。
4. 如权利要求3所述的设备,其中,所述多个高速緩存线包括表 明所述相应高速緩存线是否包舍已修改数据的已修改字段(MOD)。
5. 如权利要求2所述的设备,其中,所述已修改高速緩存线的最 大数量为二。
6. 如权利要求5所述的设备,其中,所述高速緩存线位于将要釆 用回写相干性策略的组关联高速緩存中。
7. 如权利要求6所述的设备,其中,不处于已修改状态的所述高 速緩存线将对应于许多检错码(EDC)存储区之一而不是ECC存储区。
8. 如权利要求l所述的设备,其中,所述高速緩存线位于第l级 高速緩冲存储器中。
9. 一种系统,包括 存储器;处理器,耦合到所述存储器,把数据写入多个高速緩存线,所迷 高速緩存线存储少于或等于最大数量的已修改数据,所述最大已修改 数据小于所述多个高速緩存线。
10. 如权利要求9所述的系统,其中,所述已修改数据的最大数 量的每个对应于纠错码(ECC)字段的最大数量。
11. 如权利要求10所述的系统,其中,所述多个高速緩存线包括 表明相应高速緩存线所对应的相应ECC字段的标识(ID)字段。
12. 如权利要求ll所述的系统,其中,所述已修改高速緩存数据 的最大数量为二。
13. 如权利要求12所述的系统,其中,所述多个高速緩存线位于 将要采用回写相干性策略的组关联高速緩存中。
14. 如权利要求13所述的系统,其中,不处于已修改状态的所述 高速緩存线将对应于许多检错码(EDC)存储区之一而不是ECC存储 区。
15. 如权利要求9所述的系统,其中,如果所述处理器尝试把数 据写入所述多个高速緩存线,并且已修改数据的数量等于所述已修改 数据的最大数量,则所述已修改数据中的数据将被写入所述存储器。
16. 如权利要求15所述的系统,其中,所述多个高速緩存线位于 第1级(L1)高速緩沖存储器中。
17. 如权利要求15所述的系统,其中,所述多个高速緩存线位于 第2级(L2)高速緩冲存储器中。
18. —种方法,包括 向高速緩存线阵列发出写操作;在所述高速緩存线阵列包舍最大数量的已修改高速緩存线时把已 修改数据回写到存储器,已修改高速緩存线的所述最大数量少于所迷高速緩存线阵列中的全部所述高速緩存线;把所述数据写入清理高速纟复存线,对应于所述已修改数据。
19. 如权利要求18所述的方法,还包括把所述清理高速緩存线中 的标识(ID)字段更新为指向纠错码(ECC)字段,其中ECC字段的最大数 量等于所述已修改高速緩存线的最大数量。
20. 如权利要求19所迷的方法,如果读取所述高速緩存线数据, 则针对检错码(BDC)对高速緩存线数据执行奇偶校验而不执行纠错。
21. 如权利要求20所述的方法,其中,所述ECC字段的最大数量 动态分配给所述高速緩存线阵列中的高速緩存线。
22. 如权利要求21所迷的方法,最大数量为二。
23. 如权利要求22所述的方法,在组关联高速緩存中。
24. 如权利要求23所述的方法, 四路。 其中,所述已修改高速緩存线的 其中,所述高速缓存线阵列包舍 其中,所述组关联高速緩存包括
全文摘要
一种用于基于需求的纠错的技术。更具体来说,本发明的至少一个实施例涉及减小包含纠错码(ECC)的高速缓冲存储器的存储开销、同时基本上保持高速缓存的相同性能的技术。
文档编号G06F11/10GK101187886SQ200710085299
公开日2008年5月28日 申请日期2007年2月27日 优先权日2006年2月27日
发明者M·屈雷施, P·拉库纳斯, S·穆克赫吉 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1