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

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

Info

Publication number
CN104572517B
CN104572517B CN201410569257.9A CN201410569257A CN104572517B CN 104572517 B CN104572517 B CN 104572517B CN 201410569257 A CN201410569257 A CN 201410569257A CN 104572517 B CN104572517 B CN 104572517B
Authority
CN
China
Prior art keywords
error
requested date
correction
unit
computer system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410569257.9A
Other languages
English (en)
Other versions
CN104572517A (zh
Inventor
B·L·古德曼
L·A·拉斯特拉斯-莫塔诺
E·E·雷特尔
K·L·赖特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104572517A publication Critical patent/CN104572517A/zh
Application granted granted Critical
Publication of CN104572517B publication Critical patent/CN104572517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1052Bypassing or disabling error detection or correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers

Abstract

本发明涉及一种提供被请求数据的方法、控制器以及计算机系统。一种存储控制器具备多个用于不同错误复杂性级别的错误纠正电路,但首先经由提供最低存储延迟的旁路路径将被请求数据发送到请求单元。所述请求单元执行错误检测,如果发现错误,则向所述存储控制器发送重试选择信号。所述重试选择信号提供应使用哪个错误纠正单元提供所述错误的完整纠正的指示,但增加了必需的最低延迟。在重试传输时,所述控制器使用由所述重试选择信号指示的特定错误纠正单元。所述存储控制器还可以具有永久错误检测电路,当多个重试选择信号重复指示错误时,所述永久错误检测电路将地址标识为有缺陷,并且控制逻辑可使用适当的错误纠正单元自动传输所述被请求数据。

Description

提供被请求数据的方法、控制器以及计算机系统
技术领域
本发明一般地涉及数据处理系统,更具体地说,涉及使用错误纠正代码传输数据的方法。
背景技术
常规计算机系统的基本结构包括一个或多个处理单元,它们连接到存储层次结构和各种外围设备,例如显示器、键盘、网络接口和永久存储设备。处理单元通过各种方式(包括广义互连或总线)与存储器和外围设备通信。在对称多处理器(SMP)计算机中,所有处理单元通常相同,即,它们全部使用公共指令和协议集合或子集以便操作,并且通常具有相同的体系架构。一个示例性处理单元是国际商业机器公司出售的POWER处理器。处理单元还可以具有一个或多个高速缓存,例如指令高速缓存和数据高速缓存,它们使用高速存储器件实现。高速缓存通常用于临时存储可能由处理器重复访问的值,以便通过避免从系统存储器(即,随机存取存储器或RAM)加载值的更长时间的步骤来加快处理。当与处理器核心一起完整封装在单个集成芯片上时,这些高速缓存称为“板上”高速缓存。每个高速缓存与高速缓存控制器(未示出)关联,该控制器管理数据在处理器核心与高速缓冲存储器之间的传输。存储层次结构可以包括其它高速缓存,例如级别2(L2)高速缓存,其支持板上(级别1)高速缓存。L2高速缓存用作系统存储器和板上高速缓存之间的媒介,并且可以比板上高速缓存存储更大量的信息(指令和数据),但以更长的访问时间为代价。可以提供多级别高速缓存层次结构,其中具有许多级别的互连高速缓存。
当提供存储值(指令或操作数数据)时,存储控制器或高速缓存控制器可以使用错误纠正代码(ECC)电路以便检测和纠正值中的某些错误,这些值从存储阵列接收以便传输到请求单元(即,处理器)。值中的位可能不正确,这是由于软错误(例如杂散辐射或静电放电)或硬错误(有缺陷的单元)所致。ECC可以用于重构正确的数据流。许多错误控制代码提供有关错误位(多个)的具体位置的信息。某些ECC仅可以用于检测和纠正单个位错误,即,如果特定块中的两个或更多位无效,则ECC可能无法确定正确的数据流实际上应该是什么,但至少可以检测故障。其它ECC更复杂并且允许检测或纠正双重错误,某些ECC还允许将存储字分为位群集或“符号”,然后可以更详细地分析它们以了解错误。后面这些错误纠正起来成本高昂,但设计权衡是当出现双位(或更高阶)错误时停止机器。错误纠正存储控制器传统上使用汉明码,然而某些控制器使用三重模块冗余。高速缓存或系统存储器可以是“标记存储”阵列,其包含每个存储块或高速缓存行的错误信息。每当遇到错误时,可以将受错误影响的位位置存储在标记存储阵列中,以便用于主存储器中的特定排(rank)。主存储器中的排指访问高速缓存行的特定存储模块。多个存储模块可以使用单个高速缓存,但每次仅一个模块可以访问高速缓存行。
发明内容
本发明一般地涉及一种用于将被请求数据从计算机系统的存储器件提供给所述计算机系统的请求单元的方法和相关系统,为此首先使用具有旁路延迟的旁路路径,将所述被请求数据作为具有纠正信息的未纠正数据从所述存储器件的控制器传输到所述请求单元,使用所述请求单元处的所述纠正信息确定所述未纠正数据包含具有特定复杂性级别的错误,并且将重试选择信号从所述请求单元发送到所述控制器,其中所述重试信号基于所述特定复杂性级别。所述控制器然后可以基于所述重试选择信号,使用多个错误纠正单元中的一个选定错误纠正单元将所述被请求数据作为已纠正数据从所述控制器传输到所述请求单元,其中所述错误纠正单元提供不同的错误纠正复杂性级别并具有不同的纠正电路延迟,每个所述纠正电路延迟大于所述旁路延迟。所述存储器件可以是所述计算机系统的系统存储器件,在这种情况下所述控制器是系统存储控制器。所述请求单元例如可以是所述计算机系统的处理器。尽管执行重试读取将增加该单个操作的延迟,但通过提供多个纠正输出并在该复杂性级别选择完整纠正所需的一个输出,所述存储控制器的整体吞吐量显著增加,但提供最低的附加延迟。在示例性实施例中,具有三个错误纠正单元,包括2位纠正单元、4位纠正单元和8位纠正单元。
所述存储控制器还可以具有永久错误检测电路,当多个重试选择信号针对所述被请求数据的存储地址重复指示错误时,所述永久错误检测电路将所述地址标识为有缺陷,并且控制逻辑可以将所述被请求数据的所述存储地址与所述永久错误检测电路标识为具有包含关联的复杂性级别的永久错误的地址列表相比较,并且当所述被请求数据的所述存储地址与所述列表中的地址相匹配时,所述控制逻辑使用适当的错误纠正单元自动传输所述被请求数据。每次针对所述被请求数据的所述存储地址检测到错误时,所述永久错误检测电路可以递增对应的计数器,并且当所述计数器超过预定义的阈值时,将所述存储地址标识为有缺陷。所述预定义的阈值可以例如经由所述操作系统编程。
本发明的上述以及其它目的、特性和优点将在以下详细的书面说明中变得显而易见。
附图说明
通过参考附图,可以更好地理解本发明并且本发明的众多目标、特性和优点将对所属技术领域的技术人员变得显而易见,这些附图是:
图1是根据本发明的一个实施例构造的计算机系统的框图;
图2是示出根据本发明的一种实现的具有错误纠正选择电路的存储器或高速缓存控制器的框图,所述错误纠正选择电路允许错误旁路或者基于来自请求单元(主单元)的重试信号选择适当的纠正单元;以及
图3是示出根据本发明的一种实现的用于处理加载指令(读取操作)的逻辑流程的图。
在不同附图中使用相同参考符号指示相似或相同项目。
具体实施方式
尽管近年来DRAM速度已经缓慢提高,但它们仍没有跟上处理器核心速度的增加。因此,相对于处理器时钟速率的存储延迟实际上性能降低。最近趋向每个微处理器芯片具有更高的核心计数,这导致增加芯片到芯片互连和DRAM存储位速率的额外压力。这些更高的位速率对于提供存储数据带宽至关重要,而该带宽是保持为处理器核心提供数据所需的。但是,这些更高的位速率在互连方面导致更高的固有位错误率,从而需要更可靠的ECC和/或循环冗余代码(CRC)以便确保合理级别的数据完整性。这些更复杂的错误纠正代码又对存储延迟具有负面影响,这是由于需要更深的ECC和/或CRC逻辑管线以进行数据检查和纠正所致。此外,更多的核心需要更多的高速缓存/存储器排队结构以便满足大量未完成的加载操作的需要,这些操作不能以高速缓存层次结构作为源(即,高速缓存“未命中”)。改进有效存储延迟的传统方式是经由使用片上高速缓存,以使频繁使用的数据更接近使用中的核心。整体微处理器片上解决方案(SOC)大小方面的限制迫使在片上核心数量和片上高速缓存量之间进行权衡。因此,从纯粹的高速缓存容量角度来看,改进有效存储加载延迟的机会进一步被限制。
因此,需要发明一种改进的降低存储延迟的方法。如果所述方法可以减少防止执行流停止所需的存储层次结构中的排队结构深度,则会更有利。在本发明中,这些目标通过提供多输出错误纠正逻辑来实现,该逻辑首先将被请求数据传输到主单元(以未纠正形式但具有纠正数据),然后基于来自主单元的重试信号,通过选定错误纠正输出(2位、4位等)重新传输被请求数据,该重试信号在特定复杂性级别检测到错误。如果发现永久错误,则可以在未来操作中经由适当的错误纠正输出自动传输关联的数据。
现在参考附图,具体地说参考图1,示出根据本发明构造的计算机系统的一个实施例10。计算机系统10是对称多处理器(SMP)系统,其具有连接到系统总线14的多个处理器12a、12b。系统总线14还连接到组合式存储控制器/主桥(MC/HB)16或者与其通信,MC/HB16为系统存储器18提供接口。系统存储器18可以是本地存储器件,或者备选地可以包括多个分布式存储器件,优选地为动态随机存取存储器(DRAM)。系统存储器不同于存储层次结构中的其它结构,因为计算机的操作系统使用的寻址方案参考系统存储器的地址。存储层次结构中可以具有其它结构,例如处理器12a和12b中的板上(L1)高速缓存,以及未示出的第二级(L2)或第三级(L3)高速缓存。
MC/HB16还具有到外围组件互连(PCI)Express链路20a、20b、20c的接口。每个PCIExpress(PCIe)链路20a、20b连接到相应的PCIe适配器22a、22b,并且每个PCIe适配器22a、22b连接到相应的输入/输出(I/O)设备24a、24b。MC/HB16另外可以具有到I/O总线26的接口,I/O总线26连接到交换机(I/O结构)28。交换机28为I/O总线提供到多个PCI链路20d、20e、20f的扇出。这些PCI链路连接到更多的PCIe适配器22c、22d、22e,这些适配器又支持更多的I/O设备24c、24d、24e。I/O设备可以包括但不限于键盘、图形指点设备(鼠标)、麦克风、显示设备、扬声器、永久存储器件(硬盘驱动器)或这些存储器件的阵列、光盘驱动器以及网卡。每个PCIe适配器在PCI链路和相应的I/O设备之间提供接口。MC/HB16提供低延迟路径,处理器12a、12b可以通过该路径访问在总线存储或I/O地址空间中的任何位置映射的PCI设备。MC/HB16还提供高带宽路径以便允许PCI设备访问存储器18。交换机28可以在不同的端点之间提供对等通信,并且如果数据业务不涉及高速缓存一致存储器传输,则不需要将该数据业务转发到MC/HB16。交换机28被示出为单独的逻辑组件,但它可以集成到MC/HB16中。
在该实施例中,PCI链路20c将MC/HB16连接到服务处理器接口30,以便允许I/O设备24a和服务处理器32之间的通信。服务处理器32经由JTAG接口34连接到处理器12a、12b,并且使用中断处理器12a、12b的操作的注意线路(attention line)36。服务处理器32可以具有它自己的本地存储器38,并且连接到只读存储器(ROM)40,ROM40存储用于系统启动的各种程序指令。服务处理器32还可以有权访问硬件操作面板42以便提供系统状态和诊断信息。
在备选实施例中,计算机系统10可以包括对这些硬件组件或其互连的修改,或者其它组件,因此所示实例不应该被解释为暗示有关本发明的任何体系架构限制。本发明还可以在等效的云计算网络中实现。
当首先为计算机系统10供电时,服务处理器32使用JTAG接口34询问系统(主)处理器12a、12b和MC/HB16。在完成询问之后,服务处理器32获得计算机系统10的清单和拓扑。服务处理器32然后针对计算机系统10的组件执行各种测试,例如内置自测试(BIST)、基本保证测试(BAT)和存储器测试。服务处理器32向操作面板42报告在测试期间检测到的故障的任何错误信息。如果在去除测试期间发现有故障的任何组件之后,系统资源的有效配置仍是可能的,则允许计算机系统10继续。将可执行代码加载到存储器18中,并且服务处理器32释放主处理器12a、12b以便执行程序代码(例如,用于启动应用的操作系统(OS)),可以将程序代码的执行结果存储在系统的硬盘驱动器(I/O设备24)中。当主处理器12a、12b执行程序代码时,服务处理器32可以进入监视和报告任何操作参数或错误的模式,这些参数或错误例如包括冷却风扇速度和操作、热传感器、电源调节器,以及处理器12a、12b、存储器18和MC/HB16中的任何一个报告的可恢复和不可恢复的错误。服务处理器32可以基于错误类型和定义的阈值采取进一步操作。
进一步参考图2,示出控制器16',其在示例性实施例中是系统存储器18的存储控制器,但所属技术领域的技术人员应该理解,此处的教导还可以适用于存储器件的高速缓存控制器或其它控制器。控制器16'包含CRC错误检测和纠正电路,其可以纠正具有不同复杂性级别的错误,例如单个符号(2数据位)错误,以及全部的4或8DRAM芯片错误。该电路包括控制逻辑50、2位纠正逻辑52、4位纠正逻辑54以及8位纠正逻辑56(应该理解,实际上由纠正逻辑修改的位数量可以多于这些实例指示的数量,例如,2位纠正逻辑可以影响数据的完整字节)。当主单元60(例如,处理器核心)发出加载指令,并且从存储阵列接收对应的存储块(或高速缓存行)时,经由输出端之一将该存储块(或高速缓存行)传输到主单元60。控制逻辑50的默认操作是旁路模式,其中经由旁路线路或路径传送原始(未纠正)存储读取数据以及随最后数据传输包括的错误信息,即,不经过任何检测/纠正电路(相对延迟为零)。取决于系统体系架构,数据可以在其到达主单元60的途中经过一个或多个总线或互连14。控制器16'可以包括未示出的存储控制器的其它常规特性。
主单元60包括错误检测电路。如果该电路在最后数据传输时指示错误,则请求数据的主单元向控制器16'发出重试命令(选择信号),以便将读取作为非旁路操作执行。在非旁路重试读取时,现在根据控制逻辑50发出的命令,通过适当的纠正逻辑转移存储读取数据。例如,如果主单元60在原始数据中检测到2位错误(该实现的最低错误复杂性级别),则它可以将“1”值作为重试命令(二进制“01”)传输,而检测到4位错误(中间复杂性级别)将导致具有“2”值(二进制“10”)的重试命令,检测到8位错误(最高复杂性级别)将导致具有“3”值(二进制“11”)的重试命令。重试命令可能经过也可能不经过用于传送数据的同一总线或互连14。当控制逻辑50接收“1”重试信号时,它将指示存储器经由2位纠正逻辑52传输数据;当控制逻辑50接收“2”重试信号时,它将指示存储器经由4位纠正逻辑54传输数据;以及当控制逻辑50接收“3”重试信号时,它将指示存储器经由8位纠正逻辑56传输数据。所属技术领域的技术人员应该理解,可以提供多于三个的纠正电路,并且任何错误纠正代码都可以与本发明一起使用,而不仅仅是CRC。
纠正符号错误所需的计算需要的逻辑和时间少于纠正整个DRAM芯片错误所需的计算。如果旁路操作的相对延迟为0,则2位纠正的延迟将为x,4位纠正的延迟将为y,8位纠正的延迟将为z,其中x<y<z。尽管执行重试读取将增加该单个操作的延迟,但通过提供多个纠正输出并且在该复杂性级别选择完整纠正所需的一个输出,存储控制器的整体吞吐量显著增加,但提供最低的附加延迟。
在实验室测试和现场环境中,经常观察到永久DRAM符号错误。这些错误无疑可以影响DRAM芯片中的每个地址。如果在旁路读取操作时检测到符号错误,则每次访问具有错误符号的DRAM芯片时,必须将读取操作作为非旁路操作重试以便获得正确的读取数据,从而导致读取延迟整体大量增加。该问题的一种解决方案是检测永久符号错误,并且禁用到DRAM芯片的读取旁路操作。但是,这需要读取数据流经ECC检测和纠正逻辑,从而也导致延迟增加。一种更好的解决方案是动态配置控制器16',以便在重复检测到永久错误之后使用适当的纠正电路。可以通过为控制逻辑50提供永久错误检测电路62来实现该解决方案,永久错误检测电路62从使用控制器16'的任何主单元接收所有重试读取信号。永久错误检测电路62可以包含内部阵列以便存储被发现在传输时具有一个或多个错误的任何存储块的地址。每次针对相同地址检测到错误时,永久错误检测电路62都会递增对应的计数器。如果计数器超过某一预定义的阈值(例如,3),则存储块被视为有缺陷,并且永久错误检测电路62将该地址作为与永久错误关联的地址传递到控制逻辑50,并且还传递必需的重试选择值。阈值计数器值可以例如由操作系统使用永久错误检测电路62中的寄存器进行编程。控制逻辑50将读取操作的每个入站地址与有缺陷的地址的记录或列表相比较,并且当发现任何匹配时,控制逻辑50自动知道经由适当的纠正电路传输被请求数据。
永久错误检测电路62可能先前将存储位置标识为有缺陷,并且随后经由所指示的错误纠正单元之一(例如,2位纠正逻辑52)发生读取操作,但这种纠正数据的尝试仍可能导致需要更高的纠正复杂性级别的错误(例如,读取数据现在具有4位错误而不仅仅是2位错误)。在这种情况下,请求单元将再次向存储器发回重试信号,但该重试信号现在将提供必需更高的纠正复杂性级别的指示。因此,术语“未纠正数据”指未完全纠正的数据,即,请求单元中的错误检测电路仍可以针对该数据检测到错误,即使可能已对该数据进行某种纠正尝试。
可以参考图3的图进一步理解本发明,该图示出根据一种实现的读取操作70的逻辑流程。过程70开始于存储控制器从主单元接收加载指令(72)。首先将被请求数据的地址与先前标识为具有永久错误的地址相比较(74)。如果存在地址匹配,则存储控制器经由所指示的纠正单元传输已纠正数据(76)。如果检测到新的永久错误(78),则将地址标记为具有永久错误(80),并且再次使用指示纠正单元传输已纠正数据(76)。如果被请求地址不与永久错误关联,则经由旁路以未纠正形式传输数据以及后面的错误信息(82)。在这种情况下,主单元将进一步检查数据以了解任何错误(84)。如果未发现错误,则处理数据而不进行纠正(86)。但是,如果主单元从旁路数据中检测到错误,则它向存储控制器发送重试命令以便允许选择适当的纠正电路(88)。
以此方式,本发明提供一种用于降低存储延迟的改进方法,这将优化错误纠正。额外的优势是减少存储层次结构的排队结构深度和相关电路。
尽管参考特定实施例描述了本发明,但不应以限制意义解释本说明书。当参考本发明的说明书时,对本发明的所公开的实施例以及备选实施例的各种修改将对所属技术领域的技术人员变得显而易见。因此,构想可以在不偏离所附权利要求中限定的本发明的精神或范围的情况下进行此类修改。

Claims (22)

1.一种将被请求数据从计算机系统的存储器件提供给所述计算机系统的请求单元的方法,包括:
首先使用具有旁路延迟的旁路路径,而不经过任何检测/纠正电路,将所述被请求数据作为具有纠正信息的未纠正数据从所述存储器件的控制器传输到所述请求单元;
使用所述请求单元处的所述纠正信息确定所述未纠正数据包含具有特定复杂性级别的错误;
将重试选择信号从所述请求单元发送到所述控制器,其中所述重试选择信号基于所述特定复杂性级别;以及
其次基于所述重试选择信号,使用多个错误纠正单元中的一个选定错误纠正单元将所述被请求数据作为已纠正数据从所述控制器传输到所述请求单元,其中所述错误纠正单元提供不同的错误纠正复杂性级别并具有不同的纠正电路延迟,每个所述纠正电路延迟大于所述旁路延迟。
2.根据权利要求1的方法,其中所述存储器件是所述计算机系统的系统存储器件并且所述控制器是系统存储控制器。
3.根据权利要求1的方法,其中所述请求单元是所述计算机系统的处理器。
4.根据权利要求1的方法,其中所述选定错误纠正单元添加提供所述未纠正数据的完整纠正所必需的最小延迟。
5.根据权利要求1的方法,其中具有至少三个错误纠正单元,包括2位纠正单元、4位纠正单元和8位纠正单元。
6.根据权利要求1的方法,其中所述控制器将所述被请求数据的地址与标识为具有包含关联的复杂性级别的永久错误的地址列表相比较,并且当所述被请求数据的所述地址与所述列表中的地址相匹配时,所述控制器基于关联的复杂性级别,使用所述错误纠正单元之一自动传输所述被请求数据。
7.根据权利要求1的方法,其中所述控制器包括永久错误检测电路,当多个重试选择信号针对所述被请求数据的地址重复指示错误时,所述永久错误检测电路将所述地址标识为有缺陷。
8.根据权利要求1的方法,其中由所述错误纠正单元中具有第一复杂性级别的第一错误纠正单元处理所述未纠正数据,并且所述请求单元确定所述未纠正数据包含具有大于所述第一复杂性级别的第二复杂性级别的错误。
9.一种用于计算机系统的存储器件的控制器,包括:
旁路路径,其用于将由所述计算机系统的请求单元请求的被请求数据作为具有纠正信息的未纠正数据从所述存储器件传输到所述请求单元,所述旁路路径具有旁路延迟;
多个错误纠正单元,它们提供不同的错误纠正复杂性级别并具有不同的纠正电路延迟,每个所述纠正电路延迟大于所述旁路延迟;以及
控制逻辑,其首先使用所述旁路路径将具有所述纠正信息的所述未纠正数据从所述存储器件传输到所述请求单元,而不经过任何检测/纠正电路,并且其次响应于来自所述请求单元的指示所述未纠正数据中具有特定复杂性级别的错误的重试选择信号,基于所述重试选择信号而使用所述错误纠正单元中的一个选定错误纠正单元将所述被请求数据作为已纠正数据传输到所述请求单元。
10.根据权利要求9的控制器,其中所述选定错误纠正单元添加提供所述未纠正数据的完整纠正所必需的最小延迟。
11.根据权利要求9的控制器,其中具有至少三个错误纠正单元,包括2位纠正单元、4位纠正单元和8位纠正单元。
12.根据权利要求9的控制器,其中所述控制逻辑将所述被请求数据的存储地址与标识为具有包含关联的复杂性级别的永久错误的地址列表相比较,并且当所述被请求数据的所述存储地址与所述列表中的地址相匹配时,所述控制逻辑基于关联的复杂性级别,使用所述错误纠正单元之一自动传输所述被请求数据。
13.根据权利要求9的控制器,还包括永久错误检测电路,当多个重试选择信号针对所述被请求数据的存储地址重复指示错误时,所述永久错误检测电路将所述地址标识为有缺陷。
14.根据权利要求13的控制器,其中每次针对所述被请求数据的所述存储地址检测到错误时,所述永久错误检测电路递增对应的计数器,并且当所述计数器超过预定义的阈值时,将所述存储地址标识为有缺陷。
15.根据权利要求14的控制器,其中所述预定义的阈值是可编程的。
16.一种计算机系统,包括:
一个或多个处理器,其处理程序指令;
系统存储器件,其具有多个可寻址存储值;以及
存储控制器,其具有:旁路路径,其用于将由所述计算机系统的请求处理器请求的被请求数据作为具有纠正信息的未纠正数据从所述系统存储器件传输到所述请求处理器,其中所述旁路路径具有旁路延迟;多个错误纠正单元,它们提供不同的错误纠正复杂性级别并具有不同的纠正电路延迟,其中每个所述纠正电路延迟大于所述旁路延迟;以及控制逻辑,其首先使用所述旁路路径将具有所述纠正信息的所述未纠正数据从所述系统存储器件传输到所述请求处理器,而不经过任何检测/纠正电路,并且其次响应于来自所述请求处理器的指示所述未纠正数据中具有特定复杂性级别的错误的重试选择信号,基于所述重试选择信号而使用所述错误纠正单元中的一个选定错误纠正单元将所述被请求数据作为已纠正数据传输到所述请求处理器。
17.根据权利要求16的计算机系统,其中所述选定错误纠正单元添加提供所述未纠正数据的完整纠正所必需的最小延迟。
18.根据权利要求16的计算机系统,其中具有至少三个错误纠正单元,包括2位纠正单元、4位纠正单元和8位纠正单元。
19.根据权利要求16的计算机系统,其中:
所述存储控制器还具有永久错误检测电路,当多个重试选择信号针对所述被请求数据的存储地址重复指示错误时,所述永久错误检测电路将所述地址标识为有缺陷;以及
所述控制逻辑将所述被请求数据的所述存储地址与由所述永久错误检测电路标识为具有包含关联的复杂性级别的永久错误的地址列表相比较,并且当所述被请求数据的所述存储地址与所述列表中的地址相匹配时,所述控制逻辑基于关联的复杂性级别,使用所述错误纠正单元之一自动传输所述被请求数据。
20.根据权利要求19的计算机系统,其中每次针对所述被请求数据的存储地址检测到错误时,所述永久错误检测电路递增对应的计数器,并且当所述计数器超过预定义的阈值时,将所述存储地址标识为有缺陷。
21.根据权利要求20的计算机系统,其中所述预定义的阈值是可编程的。
22.一种将被请求数据从计算机系统的存储器件提供给所述计算机系统的请求单元的方法,包括:
针对所述存储器件的先前被发现具有永久错误以及所述永久错误的复杂性级别的任何存储块维护记录;
确定所述记录指示所述被请求数据的永久错误;以及
基于所述被请求数据的先前发现的永久错误,使用多个错误纠正单元中的一个选定错误纠正单元将所述被请求数据作为已纠正数据传输到所述请求单元,其中所述错误纠正单元提供不同的错误纠正复杂性级别并具有不同的纠正电路延迟。
CN201410569257.9A 2013-10-24 2014-10-22 提供被请求数据的方法、控制器以及计算机系统 Active CN104572517B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/062,856 US9477550B2 (en) 2013-10-24 2013-10-24 ECC bypass using low latency CE correction with retry select signal
US14/062856 2013-10-24

Publications (2)

Publication Number Publication Date
CN104572517A CN104572517A (zh) 2015-04-29
CN104572517B true CN104572517B (zh) 2017-09-01

Family

ID=52996876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410569257.9A Active CN104572517B (zh) 2013-10-24 2014-10-22 提供被请求数据的方法、控制器以及计算机系统

Country Status (2)

Country Link
US (2) US9477550B2 (zh)
CN (1) CN104572517B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10002044B2 (en) 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
US10002043B2 (en) * 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
JP6486723B2 (ja) * 2015-01-21 2019-03-20 東芝メモリ株式会社 メモリシステムおよび処理装置
US9916091B2 (en) 2015-07-13 2018-03-13 Samsung Electronics Co., Ltd. Memory system architecture
KR20170133545A (ko) * 2016-05-25 2017-12-06 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10216571B2 (en) 2016-11-10 2019-02-26 Western Digital Technologies, Inc. System and methodology for error management within a shared non-volatile memory architecture using bloom filters
US10514867B2 (en) 2016-11-10 2019-12-24 Western Digital Technologies, Inc. System and methodology that facilitates error management within a shared non-volatile memory architecture
US10254982B2 (en) 2016-11-10 2019-04-09 Western Digital Technologies, Inc. System and methodology for low latency error management within a shared non-volatile memory architecture
US10372531B2 (en) 2017-01-05 2019-08-06 Texas Instruments Incorporated Error-correcting code memory
US10671497B2 (en) 2018-01-19 2020-06-02 International Business Machines Corporation Efficient and selective sparing of bits in memory systems
KR102477268B1 (ko) * 2018-01-26 2022-12-13 삼성전자주식회사 메모리 모듈의 정보를 실시간으로 모니터링하는 방법 및 시스템
US10777295B2 (en) * 2018-04-12 2020-09-15 Micron Technology, Inc. Defective memory unit screening in a memory system
US10824504B2 (en) * 2018-04-16 2020-11-03 International Business Machines Corporation Common high and low random bit error correction logic
US10901839B2 (en) 2018-09-26 2021-01-26 International Business Machines Corporation Common high and low random bit error correction logic
WO2020157594A1 (en) * 2019-01-31 2020-08-06 International Business Machines Corporation Handling an input/output store instruction
US11360667B2 (en) * 2019-09-09 2022-06-14 Stmicroelectronics S.R.L. Tagged memory operated at lower vmin in error tolerant system
US20210273650A1 (en) * 2020-03-02 2021-09-02 Micron Technology, Inc. Classification of error rate of data retrieved from memory cells
KR20210149314A (ko) * 2020-06-02 2021-12-09 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20220067992A (ko) * 2020-11-18 2022-05-25 삼성전자주식회사 선택적 및 병렬적 에러 정정을 수행하는 메모리 컨트롤러, 이를 포함하는 시스템 및 메모리 장치의 동작 방법
US11593197B2 (en) 2020-12-23 2023-02-28 Samsung Electronics Co., Ltd. Storage device with data quality metric and selectable data recovery scheme
EP4149032A3 (en) * 2021-09-09 2023-05-03 INTEL Corporation Selection of processing mode for receiver circuit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1518696A (zh) * 2001-06-21 2004-08-04 皇家菲利浦电子有限公司 存储器错误处理方法与电路配置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4058851A (en) * 1976-10-18 1977-11-15 Sperry Rand Corporation Conditional bypass of error correction for dual memory access time selection
US4852100A (en) 1986-10-17 1989-07-25 Amdahl Corporation Error detection and correction scheme for main storage unit
DE68924501T2 (de) 1988-06-28 1996-06-13 Ibm Speichersubsystem mit Fehlerkorrekturcache-Speicher.
US5502732A (en) * 1993-09-20 1996-03-26 International Business Machines Corporation Method for testing ECC logic
US5604753A (en) * 1994-01-04 1997-02-18 Intel Corporation Method and apparatus for performing error correction on data from an external memory
US6161208A (en) * 1994-05-06 2000-12-12 International Business Machines Corporation Storage subsystem including an error correcting cache and means for performing memory to memory transfers
JP3199021B2 (ja) * 1998-03-19 2001-08-13 日本電気株式会社 半導体メモリ装置、該半導体メモリ装置の検査方法及び使用方法
US6654925B1 (en) 2000-08-29 2003-11-25 International Business Machines Corporation Method to determine retries for parallel ECC correction in a pipeline
US7117420B1 (en) * 2001-05-17 2006-10-03 Lsi Logic Corporation Construction of an optimized SEC-DED code and logic for soft errors in semiconductor memories
US7984357B2 (en) 2007-04-27 2011-07-19 International Business Machines Corporation Implementing minimized latency and maximized reliability when data traverses multiple buses
US8181094B2 (en) 2008-01-31 2012-05-15 International Business Machines Corporation System to improve error correction using variable latency and associated methods
US20100332942A1 (en) * 2008-09-10 2010-12-30 Arm Limited Memory controller for NAND memory using forward error correction
US8495467B1 (en) * 2009-06-30 2013-07-23 Micron Technology, Inc. Switchable on-die memory error correcting engine
US8615700B2 (en) * 2009-08-18 2013-12-24 Viasat, Inc. Forward error correction with parallel error detection for flash memories
US8943379B2 (en) 2009-12-26 2015-01-27 Intel Corporation Retry based protocol with source/receiver FIFO recovery and anti-starvation mechanism to support dynamic pipeline lengthening for ECC error correction
US8438344B2 (en) * 2010-03-12 2013-05-07 Texas Instruments Incorporated Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes
US8527837B2 (en) * 2010-10-15 2013-09-03 Micron Technology, Inc. Selective error control coding in memory devices
US8694857B2 (en) * 2011-04-13 2014-04-08 Inphi Corporation Systems and methods for error detection and correction in a memory module which includes a memory buffer
KR20130086887A (ko) 2012-01-26 2013-08-05 삼성전자주식회사 메모리 버퍼, 이를 포함하는 장치들 및 이의 데이터 처리 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1518696A (zh) * 2001-06-21 2004-08-04 皇家菲利浦电子有限公司 存储器错误处理方法与电路配置

Also Published As

Publication number Publication date
US9477550B2 (en) 2016-10-25
CN104572517A (zh) 2015-04-29
US20150121166A1 (en) 2015-04-30
US20150121167A1 (en) 2015-04-30
US9436548B2 (en) 2016-09-06

Similar Documents

Publication Publication Date Title
CN104572517B (zh) 提供被请求数据的方法、控制器以及计算机系统
US9684468B2 (en) Recording dwell time in a non-volatile memory system
US11636014B2 (en) Memory system and data processing system including the same
CN105589762B (zh) 存储器装置、存储器模块和用于纠错的方法
US9274866B2 (en) Programming non-volatile memory using a relaxed dwell time
US10002044B2 (en) Memory devices and modules
US9870157B2 (en) Command balancing and interleaving for write and reads between front end and back end of solid state drive
CN101449244B (zh) 使用冗余虚拟机的错误检测
KR102378466B1 (ko) 메모리 장치 및 모듈
CN111475438B (zh) 提供服务质量的io请求处理方法及其装置
JP2008502057A5 (zh)
US10248497B2 (en) Error detection and correction utilizing locally stored parity information
US7383423B1 (en) Shared resources in a chip multiprocessor
CN105359109A (zh) 基于次计算机中的存储器错误移动主计算机中的对象
CN102033818A (zh) 媒体缓冲和流水线式处理组件
US9009548B2 (en) Memory testing of three dimensional (3D) stacked memory
US9106258B2 (en) Early data tag to allow data CRC bypass via a speculative memory data return protocol
US7954012B2 (en) Hierarchical debug information collection
CN114902186A (zh) 非易失性存储器模块的错误报告
CN110737618B (zh) 内嵌处理器进行快速数据通信的方法、装置及存储介质
US20220035530A1 (en) Systems and methods for processing copy commands
EP4227790A1 (en) Systems, methods, and apparatus for copy destination atomicity in devices
US20240004757A1 (en) Electronic device managing corrected error and operating method of electronic device
JP2013205857A (ja) 障害処理方法、情報処理装置および障害処理プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20171107

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171107

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right