提供被请求数据的方法、控制器以及计算机系统的制作方法

文档序号:8258394阅读:369来源:国知局
提供被请求数据的方法、控制器以及计算机系统的制作方法
【技术领域】
[0001]本发明一般地涉及数据处理系统,更具体地说,涉及使用错误纠正代码传输数据的方法。
【背景技术】
[0002]常规计算机系统的基本结构包括一个或多个处理单元,它们连接到存储层次结构和各种外围设备,例如显示器、键盘、网络接口和永久存储设备。处理单元通过各种方式(包括广义互连或总线)与存储器和外围设备通信。在对称多处理器(SMP)计算机中,所有处理单元通常相同,即,它们全部使用公共指令和协议集合或子集以便操作,并且通常具有相同的体系架构。一个示例性处理单元是国际商业机器公司出售的POWER处理器。处理单元还可以具有一个或多个高速缓存,例如指令高速缓存和数据高速缓存,它们使用高速存储器件实现。高速缓存通常用于临时存储可能由处理器重复访问的值,以便通过避免从系统存储器(即,随机存取存储器或RAM)加载值的更长时间的步骤来加快处理。当与处理器核心一起完整封装在单个集成芯片上时,这些高速缓存称为“板上”高速缓存。每个高速缓存与高速缓存控制器(未示出)关联,该控制器管理数据在处理器核心与高速缓冲存储器之间的传输。存储层次结构可以包括其它高速缓存,例如级别2 (L2)高速缓存,其支持板上(级别I)高速缓存。L2高速缓存用作系统存储器和板上高速缓存之间的媒介,并且可以比板上高速缓存存储更大量的信息(指令和数据),但以更长的访问时间为代价。可以提供多级别高速缓存层次结构,其中具有许多级别的互连高速缓存。
[0003]当提供存储值(指令或操作数数据)时,存储控制器或高速缓存控制器可以使用错误纠正代码(ECC)电路以便检测和纠正值中的某些错误,这些值从存储阵列接收以便传输到请求单元(即,处理器)。值中的位可能不正确,这是由于软错误(例如杂散辐射或静电放电)或硬错误(有缺陷的单元)所致。ECC可以用于重构正确的数据流。许多错误控制代码提供有关错误位(多个)的具体位置的信息。某些ECC仅可以用于检测和纠正单个位错误,即,如果特定块中的两个或更多位无效,则ECC可能无法确定正确的数据流实际上应该是什么,但至少可以检测故障。其它ECC更复杂并且允许检测或纠正双重错误,某些ECC还允许将存储字分为位群集或“符号”,然后可以更详细地分析它们以了解错误。后面这些错误纠正起来成本高昂,但设计权衡是当出现双位(或更高阶)错误时停止机器。错误纠正存储控制器传统上使用汉明码,然而某些控制器使用三重模块冗余。高速缓存或系统存储器可以是“标记存储”阵列,其包含每个存储块或高速缓存行的错误信息。每当遇到错误时,可以将受错误影响的位位置存储在标记存储阵列中,以便用于主存储器中的特定排(rank)。主存储器中的排指访问高速缓存行的特定存储模块。多个存储模块可以使用单个高速缓存,但每次仅一个模块可以访问高速缓存行。

【发明内容】

[0004]本发明一般地涉及一种用于将被请求数据从计算机系统的存储器件提供给所述计算机系统的请求单元的方法和相关系统,为此首先使用具有旁路延迟的旁路路径,将所述被请求数据作为具有纠正信息的未纠正数据从所述存储器件的控制器传输到所述请求单元,使用所述请求单元处的所述纠正信息确定所述未纠正数据包含具有特定复杂性级别的错误,并且将重试选择信号从所述请求单元发送到所述控制器,其中所述重试信号基于所述特定复杂性级别。所述控制器然后可以基于所述重试选择信号,使用多个错误纠正单元中的一个选定错误纠正单元将所述被请求数据作为已纠正数据从所述控制器传输到所述请求单元,其中所述错误纠正单元提供不同的错误纠正复杂性级别并具有不同的纠正电路延迟,每个所述纠正电路延迟大于所述旁路延迟。所述存储器件可以是所述计算机系统的系统存储器件,在这种情况下所述控制器是系统存储控制器。所述请求单元例如可以是所述计算机系统的处理器。尽管执行重试读取将增加该单个操作的延迟,但通过提供多个纠正输出并在该复杂性级别选择完整纠正所需的一个输出,所述存储控制器的整体吞吐量显著增加,但提供最低的附加延迟。在示例性实施例中,具有三个错误纠正单元,包括2位纠正单元、4位纠正单元和8位纠正单元。
[0005]所述存储控制器还可以具有永久错误检测电路,当多个重试选择信号针对所述被请求数据的存储地址重复指示错误时,所述永久错误检测电路将所述地址标识为有缺陷,并且控制逻辑可以将所述被请求数据的所述存储地址与所述永久错误检测电路标识为具有包含关联的复杂性级别的永久错误的地址列表相比较,并且当所述被请求数据的所述存储地址与所述列表中的地址相匹配时,所述控制逻辑使用适当的错误纠正单元自动传输所述被请求数据。每次针对所述被请求数据的所述存储地址检测到错误时,所述永久错误检测电路可以递增对应的计数器,并且当所述计数器超过预定义的阈值时,将所述存储地址标识为有缺陷。所述预定义的阈值可以例如经由所述操作系统编程。
[0006]本发明的上述以及其它目的、特性和优点将在以下详细的书面说明中变得显而易见。
【附图说明】
[0007]通过参考附图,可以更好地理解本发明并且本发明的众多目标、特性和优点将对所属技术领域的技术人员变得显而易见,这些附图是:
[0008]图1是根据本发明的一个实施例构造的计算机系统的框图;
[0009]图2是示出根据本发明的一种实现的具有错误纠正选择电路的存储器或高速缓存控制器的框图,所述错误纠正选择电路允许错误旁路或者基于来自请求单元(主单元)的重试信号选择适当的纠正单元;以及
[0010]图3是示出根据本发明的一种实现的用于处理加载指令(读取操作)的逻辑流程的图。
[0011]在不同附图中使用相同参考符号指示相似或相同项目。
【具体实施方式】
[0012]尽管近年来DRAM速度已经缓慢提高,但它们仍没有跟上处理器核心速度的增加。因此,相对于处理器时钟速率的存储延迟实际上性能降低。最近趋向每个微处理器芯片具有更高的核心计数,这导致增加芯片到芯片互连和DRAM存储位速率的额外压力。这些更高的位速率对于提供存储数据带宽至关重要,而该带宽是保持为处理器核心提供数据所需的。但是,这些更高的位速率在互连方面导致更高的固有位错误率,从而需要更可靠的ECC和/或循环冗余代码(CRC)以便确保合理级别的数据完整性。这些更复杂的错误纠正代码又对存储延迟具有负面影响,这是由于需要更深的ECC和/或CRC逻辑管线以进行数据检查和纠正所致。此外,更多的核心需要更多的高速缓存/存储器排队结构以便满足大量未完成的加载操作的需要,这些操作不能以高速缓存层次结构作为源(即,高速缓存“未命中”)。改进有效存储延迟的传统方式是经由使用片上高速缓存,以使频繁使用的数据更接近使用中的核心。整体微处理器片上解决方案(SOC)大小方面的限制迫使在片上核心数量和片上高速缓存量之间进行权衡。因此,从纯粹的高速缓存容量角度来看,改进有效存储加载延迟的机会进一步被限制。
[0013]因此,需要发明一种改进的降低存储延迟的方法。如果所述方法可以减少防止执行流停止所需的存储层次结构中的排队结构深度,则会更有利。在本发明中,这些目标通过提供多输出错误纠正逻辑来实现,该逻辑首先将被请求数据传输到主单元(以未纠正形式但具有纠正数据),然后基于来自主单元的重试信号,通过选定错误纠正输出(2位、4位等)重新传输被请求数据,该重试信号在特定复杂性级别检测到错误。如果发现永久错误,则可以在未来操作中经由适当的错误纠正输出自动传输关联的数据。
[0014]现在参考附图,具体地说参考图1,示出根据本发明构造的计算机系统的一个实施例10。计算机系统10是对称多处理器(SMP)系统,其具有连接到系统总线14的多个处理器12a、12b。系统总线14还连接到组合式存储控制器/主桥(MC/HB) 16或者与其通信,MC/HB16为系统存储器18提供接口。系统存储器18可以是本地存储器件,或者备选地可以包括多个分布式存储器件,优选地为动态随机存取存储器(DRAM)。系统存储器不同于存储层次结构中的其它结构,因为计算机的操作系统使用的寻址方案参考系统存储器的地址。存储层次结构中可以具有其它结构,例如处理器12a和12b中的板上(LI)高速缓存,以及未示出的第二级(L2)或第三级(L3)高速缓存。
[0015]MC/HB16还具有到外围组件互连(PCI)Express链路20a、20b、20c的接口。每个PCI Express (PCIe)链路20a、20b连接到相应的PCIe适配器22a、22b,并且每个PCIe适配器22a、22b连接到相应的输入/输出(I/O)设备24a、24b。MC/H
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1