CN109614256B - 现场错误恢复 - Google Patents

现场错误恢复 Download PDF

Info

Publication number
CN109614256B
CN109614256B CN201811197445.8A CN201811197445A CN109614256B CN 109614256 B CN109614256 B CN 109614256B CN 201811197445 A CN201811197445 A CN 201811197445A CN 109614256 B CN109614256 B CN 109614256B
Authority
CN
China
Prior art keywords
error
downstream port
logic
ler
containment
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
CN201811197445.8A
Other languages
English (en)
Other versions
CN109614256A (zh
Inventor
P·贾亚普拉卡什巴拉德瓦杰
A·布朗
D·达斯夏尔马
J·塔利伊尔
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN109614256A publication Critical patent/CN109614256A/zh
Application granted granted Critical
Publication of CN109614256B publication Critical patent/CN109614256B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

分组在串行数据链路的端口处被识别,且确定分组与错误相关联。基于分组与错误相关联的确定而发起进入错误恢复模式。进入错误恢复模式可使串行数据链路被迫不运行。在一个方面中,在错误恢复模式期间,迫使数据链路不运行使所有随后的入站分组被丢弃以及所有未决的出站请求和完成被异常中止。

Description

现场错误恢复
本申请是2013年12月21日提交的申请号为201380062299.7的同名专利申请的分案申请。
相关申请的交叉引用
本申请要求2012年12月28日提交的美国临时专利申请序列号61/746,972的优先权利益,其被考虑为本申请的部分,并通过对其全部的引用,被并入本申请的公开中。
技术领域
本公开涉及计算系统,且特别是(但不排他地)涉及链路错误遏制(containment)。
背景技术
在半导体处理和逻辑设计中的进步允许可存在于集成电路设备上的逻辑的量的增加。作为必然的结果,计算机系统配置从系统中的单个或多个集成电路发展到存在于单独集成电路上的多个核心、多个硬件线程、以及多个逻辑处理器,以及集成在这样的处理器中的其它接口。处理器或集成电路一般包括单个物理处理器管芯,其中处理器管芯可包括任何数量的核心、硬件线程、逻辑处理器、接口、存储器、控制器中心等。
作为更强的能力来将更多的处理能力放进较小封装中的结果,较小的计算设备在普及性上增加了。智能电话、平板计算机、超薄笔记本计算机、以及其它用户设备指数地增长。然而,这些较小的设备依赖于服务器,用于数据存储和超过形状因子的复杂处理。因此,在高性能计算市场(即服务器空间)中的要求也增加了。例如,在现代服务器中,一般不仅存在具有多个核心的单个处理器,而且存在多个物理处理器(也被称为多个插座)来增加计算能力。但当处理能力连同在计算系统中的设备的数量一起增长时,在插座和其它设备之间的通信变得更重要。
事实上,互连从主要处理的电通信的更传统的多点分支总线增长到便于快速通信的充分发展的互连架构。不幸的是,随着对在甚至更高速率下消耗的未来处理器的要求,对应的要求针对于现有互连架构的能力。
附图说明
图1示出包括多核处理器的计算系统的方框图的实施例。
图2示出包括互连架构的计算系统的实施例。
图3示出包括分层堆栈的互连架构的实施例。
图4示出在互连架构内产生或接收的请求或分组的实施例。
图5示出互连架构的发射机和接收机对的实施例。
图6示出示例能力结构的表示。
图7示出示例控制状态寄存器的表示。
图8示出根据一个实施例的示例错误逻辑的示意图。
图9示出根据一个实施例的示例错误逻辑的另一示意图。
图10示出示例进入错误恢复模式的流程图。
图11示出示例进入错误恢复模式的另一流程图。
图12示出包括多个处理器插座的计算系统的块的实施例。
图13示出计算系统的方框图的另一实施例。
具体实施方式
在下面的描述中,阐述了很多特定的细节,例如特定类型的处理器和系统配置、特定的硬件机构、特定的架构和微架构细节、特定的寄存器配置、特定的指令类型、特定的系统部件、特定的测量/高度、特定的处理器流水线阶段和操作等的示例,以便提供对本发明的彻底理解。然而对本领域中的技术人员将明显,这些特定细节不需要被采用以实施本发明。在其它实例中,公知的部件或方法例如特定的和可选的处理器架构、所述算法的特定的逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实现、以代码形式的算法的特定的表达式、特定的断电和选通技术/逻辑和计算机系统的其它特定的操作细节没有被详细描述,以便避免不必要地使本发明难理解。
虽然关于在特定集成电路中(例如在计算平台或微处理器中)的能量节约和能量效率描述了下面的实施例,其它实施例可应用于其它类型的集成电路和逻辑设备。本文描述的实施例的类似技术和教导可应用于:也可受益于更好的能量效率和能量节约的其它类型的电路或半导体设备。例如,所公开的实施例不限于台式计算机系统或UltrabooksTM。而且也可在其它设备(例如手持设备、平板计算机、其它瘦笔记本计算机、片上系统(SOC)设备、以及嵌入式应用)中使用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字摄像机、个人数字助理(PDA)、以及手持PC。嵌入式应用一般包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或可执行下面教导的功能和操作的任何其它系统。而且,本文描述的装置、方法、以及系统不限于物理计算设备,还可以涉及对能量节约和效率的软件优化。如将在下面的描述中变得容易明显的,本文所述的方法、装置、以及系统的实施例(不管是否关于硬件、固件、软件、或其组合)对与性能考虑因素平衡的“绿色技术”未来是极为重要的。
当计算系统进步时,其中的部件变得更复杂。作为结果,在部件之间耦合和通信的互连架构也在复杂性上增加,以确保为了最佳部件操作而满足带宽要求。此外,不同的市场划分要求互连架构的不同方面适合市场的需要。例如,服务器需要更高的性能,而移动生态系统有时能够为了功率节省而牺牲总性能。然而,大部分结构的单一目的是提供具有最大功率节省的最高可能的性能。下面讨论多个互连,其将潜在地受益于本文描述的发明的方面。
参考图1,描绘了包括多核心处理器的计算系统的方框图的实施例。处理器100包括任何处理器或处理设备,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)、或执行代码的其它设备。处理器100在一个实施例中包括至少两个核心——核心101和102,其可包括非对称核心或对称核心(所示实施例)。然而,处理器100可包括可以是对称或非对称的任何数量的处理元件。
在一个实施例中,处理元件指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核心、和/或能够保持处理器的状态(例如执行状态或架构状态)的任何其它元件。换句话说,处理元件在一个实施例中指能够独立地与代码(例如软件线程、操作系统、应用、或其它代码)相关联的任何硬件。物理处理器(或处理器插座)一般指集成电路,其可能包括任何数量的其它处理元件,例如核心或硬件线程。
核心常常指位于集成电路上的能够维持独立架构状态的逻辑,其中每一个独立维持的架构状态与至少一些专用执行资源相关联。与核心相反,硬件线程一般指位于集成电路上的能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如可看到的,当某些资源被共享且其它资源专用于架构状态时,在硬件线程和核心的术语间的线重叠。然而核心和硬件线程常常被操作系统视为单独的逻辑处理器,其中操作系统能够单独地调度在每一个逻辑处理器上的操作。
如图1所示的物理处理器100包括两个核心——核心101和102。在这里,核心101和102被考虑为对称核心,即具有相同的配置、功能单元、和/或逻辑的核心。在另一实施例中,核心101包括乱序处理器核心,而核心102包括有序处理器核心。然而,核心101和102可单独地选自任何类型的核心,例如原生(native)核心、软件管理的核心、适合于执行原生指令集架构(ISA)的核心、适合于执行转换指令集架构(ISA)的核心、共同设计的核心、或其它已知的核心。在异构核心环境(即非对称核心)中,某种形式的转换(例如二进制转换)可用于调度或执行在一个或两个核心上的代码。然而为了促进讨论,在核心101中所示的功能单元在下面被更详细地描述,因为在核心102中的单元在所描述的实施例中以类似的方式操作。
如所描绘的,核心101包括两个硬件线程101a和101b,其也可以被称为硬件线程槽101a和101b。因此,软件实体(例如操作系统)在一个实施例中可能将处理器100视为四个单独的处理器,即能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上面间接提到的,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程与架构状态寄存器102a相关联,且第四线程与架构状态寄存器102b相关联。在这里,每一个架构状态寄存器(101a、101b、102a、以及102b)可被称为处理元件、线程槽、或线程单元,如上所述。如所示,架构状态寄存器101a在架构状态寄存器101b中被复制,所以能够为逻辑处理器101a和逻辑处理器101b存储单独的架构状态/上下文。在核心101中,也可为线程101a和101b复制其它较小的资源,例如在分配器和重命名器块130中的指令指针和重命名逻辑。可通过分区来共享一些资源,例如在重排序器/引退单元135、ILTB 120、装入/存储缓冲器、以及队列中的重排序缓冲器。其它资源(例如通用内部寄存器、页表基址寄存器、低级数据缓存和数据-TLB 115、执行单元140、以及乱序单元135的部分)可能被完全共享。
处理器100常常包括其它资源,其可以被完全共享、通过分区来共享、或由处理元件专用/专用于处理元件。在图1中,示出了具有处理器的例证性逻辑单元/资源的纯粹示例性的处理器的实施例。注意,处理器可包括或省略这些功能单元中的任一个,以及包括未描绘的任何其它已知的功能单元、逻辑、或固件。如所示,核心101包括简化的、代表性乱序(OOO)处理器核心。但在不同的实施例中可利用有序处理器。OOO核心包括用于预测待执行/采用的分支的分支目标缓冲器120和用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)120。
核心101还包括耦合到取出单元120的解码模块125以对取出的元素进行解码。取出逻辑在一个实施例中包括分别与线程槽101a、101b相关联的单独定序器。通常核心101与(规定/指定在处理器100上可执行的指令的)第一ISA相关联。作为第一ISA的部分的机器代码指令常常包括(提及/指定待执行的指令或操作的)指令的一部分(被称为操作码)。解码逻辑125包括电路,所述电路根据指令的操作码识别这些指令,并在流水线中传递解码的指令,用于如第一ISA所规定的进行处理。例如,如在下面更详细讨论的,解码器125在一个实施例中包括设计成或适合于识别特定的指令(例如事务指令)的逻辑。作为由解码器125识别的结果,架构或核心101采取特定的预定行动来执行与适当的指令相关联的任务。重要地注意到,本文描述的任何任务、块、操作、以及方法可响应于单个或多个指令被执行;其中一些指令可以是新的或老的指令。注意,解码器126在一个实施例中识别相同的ISA(或其子集)。可选地,在异构核心环境中,解码器126识别第二ISA(第一ISA的子集或不同的ISA)。
在一个示例中,分配器和重命名器块130包括用于保存资源(例如存储指令执行结果的寄存器文件)的分配器。然而,线程101a和101b可能能够进行乱序执行,其中分配器和重命名器块130还预留其它资源,例如跟踪指令结果的重排序器缓冲器。单元130还可包括寄存器重命名器以将程序/指令参考寄存器重命名为在处理器100内部的其它寄存器。重排序器/引退单元135包括部件,例如上面提到的重排序器缓冲器、装入缓冲器、以及存储缓冲器,以支持被乱序地执行的指令的乱序执行和稍后的有序引退。
调度器和执行单元块140在一个实施例中包括调度器单元,以调度在执行单元上的指令/操作。例如,浮点指令在具有可用的浮点执行单元的执行单元的端口上被调度。与执行单元相关联的寄存器文件也被包括,以存储信息指令处理结果。示例性的执行单元包括浮点执行单元、整数执行单元、跳跃执行单元、装入执行单元、存储执行单元、以及其它已知的执行单元。
较低级数据缓存和数据转换缓存(D-TLB)150耦合到执行单元140。数据缓存用于存储最近使用/操作的元素,例如数据操作数,其可能保持在存储器相干状态中。D-TLB存储最近的虚拟/线性到物理地址转换。作为特定的示例,处理器可包括页表结构以将物理存储器分成多个虚拟页。
在这里,核心101和102共享对较高级或further-out缓存(例如与片上接口110相关联的第二级缓存)的访问。注意,较高级或further-out指缓存级别从执行单元增加或变得更远。在一个实施例中,较高级缓存是最后一级数据缓存——在处理器100上的存储器等级结构中的最后一个缓存——例如第二或第三级数据缓存。然而,较高级缓存并不被这样限制,因为它可与指令缓存相关联或包括指令缓存。跟踪缓存——一种类型的指令缓存——替代地可在解码器125存储最近解码的踪迹之后被耦合。在这里,指令可能指宏指令(即由解码器识别的一般指令),其可解码成多个微指令(微操作)。
在所描绘的配置中,处理器100还包括片上接口模块110。从历史观点看,下面更详细描述的存储器控制器包括在处理器100外部的计算系统中。在这种情形中,片上接口11与处理器100外部的设备(例如系统存储器175、芯片组(常常包括存储器控制器中心以连接到存储器175,和I/O控制器中心以连接到外围设备)、存储器控制器中心、北桥、或其它集成电路)通信。且在这种情形中,总线105可包括任何已知的互连,例如多点分支总线、点对点互连、串行互连、并行总线、相干(例如缓存相干)总线、分层协议架构、差分总线、以及GTL总线。
存储器175可专用于处理器100或与系统中的其它设备共享。存储器175的类型的共同示例包括DRAM、SRAM、非易失性存储器(NV存储器)、以及其它已知的存储设备。注意,设备180可包括图形加速器、耦合到存储器控制器中心的处理器或卡、耦合到I/O控制器中心的数据存储设备、无线收发机、闪存设备、音频控制器、网络控制器、或其它已知的设备。
然而最近,因为更多的逻辑和设备被集成在单个管芯上,例如SOC,这些设备中的每一个可合并在处理器100上。例如在一个实施例中,存储器控制器中心与处理器100在同一封装和/或管芯上。在这里,核心的一部分(核心上部分)110包括用于与其它设备(例如存储器175或图形设备180)接合的一个或多个控制器。包括与这样的设备接合的互连和控制器的配置常常被称为核心上(或un-core配置)。作为示例,片上接口110包括用于片上通信的环互连和用于片外通信的高速串行点对点链路105。然而在SOC环境中,甚至更多的设备(例如网络接口、协处理器、存储器175、图形处理器180、以及任何其它已知的计算机设备/接口)可集成在单个管芯或集成电路上以提供具有高功能性和低功率消耗的小形状因子。
在一个实施例中,处理器100能够执行编译器、优化、和/或译码器代码177以编译、转换、和/或优化应用代码176,以支持本文所述的装置和方法或与其接合。编译器常常包括程序或一组程序,用于将源文本/代码转换成目标文本/代码。通常,使用编译器对程序/应用代码的编译在多个阶段中完成并传递以将高级编程语言代码转换成低级机器或汇编语言代码。然而,单遍编译器仍可用于简单的编译。编译器可利用任何已知的编译技术并执行任何已知的编译器操作,例如词汇分析、预处理、解析、语义分析、代码产生、代码转换、以及代码优化。
较大的编译器常常包括多个阶段,但最经常地,这些阶段被包括在两个一般阶段中:(1)前端,即通常其中可发生句法处理、语义处理、以及一些转换/优化,以及(2)后端,即通常其中发生分析、转换、优化、以及代码产生。一些编译器指中间,其示出在编译器的前端和后端之间的圈定的模糊。作为结果,对编译器的插入、关联、产生、或其它操作的提及可发生在任一前述阶段或过程以及编译器的任何其它已知的阶段或过程中。作为例证性示例,编译器在编译的一个或多个阶段中可能插入操作、调用、函数等,例如在编译的前端阶段中的调用/操作的插入和然后在转换阶段期间调用/操作到较低级代码的转换。注意,在动态编译期间,编译器代码或动态优化代码可插入这样的操作/调用,以及优化代码用于在运行时间期间执行。作为特定的例证性示例,二进制代码(已经编译的代码)可在运行时期间动态地被优化。在这里,程序代码可包括动态优化代码、二进制代码、或其组合。
类似于编译器,译码器(例如二进制译码器)静态或动态地转换代码以优化和/或转换代码。因此,对代码、应用代码、程序代码、或其它软件环境的执行的提及可以指:(1)动态或静态地执行编译器程序、优化代码优化器、或译码器,以编译程序代码、维持软件结构、执行其它操作、优化代码、或转换代码;(2)执行包括操作/调用的主程序代码,例如被优化/编译的应用代码;(3)执行与主程序代码相关联的其它程序代码(例如库),以维持软件结构、执行其它软件相关操作、或优化代码;或(4)其组合。
一个互连结构架构包括外围部件互连(PCI)Express(PCIe)架构。PCIe的主要目标是使来自不同卖方的部件和设备能够在开放架构中互操作,跨越多个市场划分;客户端(台式计算机和移动设备)、服务器(标准和企业)、以及嵌入式和通信设备。PCI Express是为各种各样的未来计算和通信平台定义的高性能通用I/O互连。一些PCI属性(例如它的使用模型、装入-存储架构、以及软件接口)通过其修订版被维持,而以前的并行总线实现由高度可扩展的全系列接口代替。PCI Express的更近版本利用在点对点互连、基于交换机的技术、以及分组化协议中的进步,交付新级别的性能和特征。功率管理、服务质量(QoS)、热插拨/热交换支持、数据完整性、以及错误处理是由PCI Express支持的高级特征中的一些。
参考图2,示出了由使一组部件互连的点对点链路组成的结构的实施例。系统200包括处理器205和耦合到控制器中心215的系统存储器210。处理器205包括任何处理元件,例如微处理器、主机处理、嵌入式处理、协处理器、或其它处理器。处理器206通过前侧总线(FSB)206耦合到控制器中心215。在一个实施例中,FSB 206是如下所述的串行点对点互连。在另一实施例中,链路206包括符合不同的互连标准的串行差分互连架构。
系统存储器210包括任何存储器设备,例如随机存取存储器(RAM)、非易失性(NV)存储器、或系统200中的设备可访问的其它存储器。系统存储器210通过存储器接口216耦合到控制器中心215。存储器接口的示例包括双数据率(DDR)存储器接口、双通道DDR存储器接口、以及动态RAM(DRAM)存储器接口。
在一个实施例中,控制器中心215是在快速外围部件互连(PCIe或PCIE)互连等级结构中的根中心、根复合体、或根控制器。控制器中心215的示例包括芯片组、存储器控制器中心(MCH)、北桥、互连控制器中心(ICH)、南桥、以及根控制器/中心。术语“芯片组”常常指两个物理上分离的控制器中心,即耦合到互连控制器中心(ICH)的存储器控制器中心(MCH)。注意,当前系统常常包括与处理器205集成的MCH,而控制器215以与下面描述的类似的方式与I/O设备通信。在一些实施例中,可选地通过根复合体215来支持对等路由。
在这里,控制器中心215通过串行链路219耦合到交换机/桥220。也可被称为接口/端口217和221的输入/输出模块217和221包括/实现分层协议堆栈以提供在控制器中心215和交换机220之间的通信。在一个实施例中,多个设备能够耦合到交换机220。
交换机/桥220从设备225向上游(即等级结构向上朝着根复合体)路由分组/消息到控制器中心215,并向下游(即等级结构向下远离根控制器)路由分组/消息从处理器205或系统存储器210到设备225。交换机220在一个实施例中被称为多个虚拟PCI到PCI桥设备的逻辑组件。设备225包括耦合到电子系统(例如I/O设备、网络接口控制器(NIC)、内插附件卡、音频处理器、网络处理器、硬盘驱动器、存储设备、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、Firewire设备、通用串行总线(USB)设备、扫描仪、以及其它输入/输出设备)的任何内部或外部设备或部件。在PCIe术语中,例如设备常常被称为端点。虽然没有特别示出,设备225可包括PCIe到PCI/PCI-X桥以支持旧有或其它版本的PCI设备。在PCIe中的端点设备常常被分类为旧有、PCIe、或根复合体集成端点。
图形加速器230也通过串行链路232耦合到控制器中心215。在一个实施例中,图形加速器230耦合到MCH,其耦合到ICH。交换机220和对应地I/O设备225然后耦合到ICH。I/O模块231和218也实现分层协议堆栈以在图形加速器230和控制器中心215之间通信。类似于上面的MCH讨论,图形控制器或图形加速器230本身可集成在处理器205中。
转到图3,示出了分层协议堆栈的实施例。分层协议堆栈300包括任何形式的分层通信堆栈,例如快速路径互连(QPI)堆栈、PCIe堆栈、下一代高性能计算互连堆栈、或其它分层堆栈。虽然紧接着下面关于图2-5的讨论与PCIe堆栈有关,相同的概念可应用于其它互连堆栈。在一个实施例中,协议堆栈300是包括事务层305、链路层310、以及物理层320的PCIe协议堆栈。接口例如图2中的接口217、218、221、222、226、以及231可被表示为通信协议堆栈300。作为通信协议堆栈的表示也可被称为实现/包括协议堆栈的模块或接口。
PCI Express使用分组来在部件之间传递信息。分组在事务层305和数据链路层310中形成,用于将信息从传输部件传送到接收部件。当所传输的分组流经其它层时,它们以在那些层处处理分组所必需的额外的信息延伸。在接收侧处逆过程出现,且分组从其物理层320表示被转换到数据链路层310表示并最终(对于事务层分组)到可由接收设备的事务层305处理的形式。
事务层
在一个实施例中,事务层305提供在设备的处理核心和互连架构之间的接口,例如数据链路层310和物理层320。在这个方面中,事务层305的主要责任是分组(即事务层分组或TLP)的组合和分解。事务层305一般管理对TLP的基于信用的流控制。PCIe实现分离事务,即具有被时间分开的请求和响应的事务,允许链路传送其它业务,同时目标设备收集数据用于响应。
此外,PCIe利用基于信用的流控制。在这个方案中,设备对事务层305中的每一个接收缓冲器通告信用的初始量。在链路的相对端处的外部设备例如图2中的控制器中心215对每一个TLP所消耗的信用的数量进行计数。如果事务不超过信用限制,则事务可被传输。当接收到响应时,信用的量被恢复。信用方案的优点是,信用返回的时延不影响性能,假定未遭遇信用限制。
在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间、以及消息地址空间。存储器空间事务包括读请求和写请求中的一个或多个,用于将数据传送到存储器映射的地址/从存储器映射的地址传送数据。在一个实施例中,存储器空间事务能够使用两个不同的地址格式,例如短地址格式(例如32位地址)或长地址格式(例如64位地址)。配置空间事务用于访问PCIe设备的配置空间。到配置空间的事务包括读请求和写请求。消息空间事务(或简单地消息)被定义为支持在PCIe代理之间的带内通信。
因此,在一个实施例中,事务层305组合分组头部/有效载荷306。可在PCIe规范网站处的PCIe规范中找到当前分组头部/有效载荷的格式。
快速参考图4,示出了PCIe事务描述符的实施例。在一个实施例中,事务描述符400是承载事务信息的机构。在这方面,事务描述符400支持在系统中的事务的识别。其它可能的使用包括跟踪默认事务排序的修改和事务与通道的相关联性。
事务描述符400包括全局标识符字段402、属性字段404和通道标识符字段406。在所示示例中,全局标识符字段402被描绘为包括本地事务标识符字段408和源标识符字段410。在一个实施例中,全局事务标识符402对于所有未解决的请求是唯一的。
根据一个实现,本地事务标识符字段408是由请求代理产生的字段,且它对于需要该请求代理的完成的所有未解决的请求是唯一的。此外,在这个示例中,源标识符410唯一地识别在PCIe等级结构内的请求者代理。因此,连同源ID 410一起,本地事务标识符408字段提供在等级结构域内的事务的全局识别。
属性字段404规定事务的特性和关系。在这个方面中,属性字段404可能用于提供允许事务的默认处理的修改的额外信息。在一个实施例中,属性字段404包括优先级字段412、预留字段414、排序字段416、以及无窥探字段418。在这里,优先级子字段412可由发起者修改以将优先级分配给事务。预留属性字段414保持为将来或卖方规定的用途预留。可使用预留属性字段来实现使用优先级或安全属性的可能的用途模型。
在这个示例中,排序属性字段416用于提供传达可修改默认排序规则的排序的类型的可选信息。根据一个示例实现,“0”的排序属性表示默认排序规则将被应用,其中“1”的排序属性表示宽松的排序,其中写可在相同的方向上传递写,且读完成可在相同的方向上传递写。窥探属性字段418用来确定事务是否被窥探。如所示,通道ID字段406识别事务关联的通道。
链路层
也被称为数据链路层310的链路层310充当在事务层305和物理层320之间的中间级。在一个实施例中,数据链路层310的责任是提供用于在链路的两个部件之间交换事务层分组(TLP)的可靠机制。数据链路层310的一侧接受由事务层305组合的TLP,应用分组序列标识符311,即标识号或分组号,计算并应用错误检测代码,即CRC 312,并将所修改的TLP提交到物理层320用于跨物理层传输到外部设备。
物理层
在一个实施例中,物理层320包括逻辑子块321和电气子块322以将分组物理地传输到外部设备。在这里,逻辑子块321负责物理层321的“数字”功能。在这个方面中,逻辑子块包括准备外发信息用于由物理子块322传输的传输部分,以及在将所接收的信息传递到链路层310之前识别并准备所接收的信息的接收机部分。
物理块322包括发射机和接收机。通过逻辑子块321给发射机提供符号,发射机将符号串行化并传输到外部设备上。从外部设备将串行化符号提供给接收机并将所接收的信号转换成位流。位流被解串并提供到逻辑子块321。在一个实施例中,使用8b/10b传输代码,其中10位符号被传输/接收。在这里,特殊符号用于用帧323构造分组。此外,在一个示例中,接收机也提供从输入串行流恢复的符号时钟。
如上面陈述的,虽然关于PCIe协议堆栈的特定实施例讨论了事务层305、链路层310、以及物理层320,分层协议堆栈并没有被这样限制。事实上,可包括/实现任何分层协议。作为示例,被表示为分层协议的端口/接口包括:(1)用于组装分组的第一层,即事务层;用于按顺序排列分组的第二层,即链路层;以及用于传输分组的第三层,即物理层。作为特定的示例,利用公共标准接口(CSI)分层协议。
接着参考图5,示出PCIe串行点对点结构的实施例。虽然示出PCIe串行点对点链路的实施例,串行点对点链路并不被这样限制,因为它包括用于传输串行数据的任何传输路径。在所示实施例中,基本PCIe链路包括两个低电压差分驱动信号对:传输对506/511和接收对512/507。对应地,设备505包括将数据传输到设备510的传输逻辑506和从设备510接收数据的接收逻辑507。换句话说,两个传输路径,即路径516和517,以及两个接收路径,即路径518和519被包括在PCIe链路中。
传输路径指用于传输数据的任何路径,例如传输线、铜线、光学线、无线通信通道、红外通信链路、或其它通信路径。在两个设备(例如设备505和设备510)之间的连接被称为链路,例如链路415。链路可支持一个通路(lane)——每一个通路代表一组差分信号对(一对用于传输,一对用于接收)。为了按比例调整带宽,链路可聚合由xN表示的多个通路,其中N是任何所支持的链路宽度,例如1、2、4、8、12、16、32、64、或更宽。
差分对指传输差分信号的两个传输路径,例如线路416和417。作为示例,当线路416从低电压水平切换到高电压水平即上升沿时,线路417从高逻辑水平推进到低逻辑水平,即下降沿。差分信号可能展示更好的电特性,例如电池信号完整性,即,交叉耦合、电压过冲/欠冲、瞬时振荡等。这允许更好的定时窗口,其使更快的传输频率变得可能。
错误处理和遏制可以是互连平台(例如PCIe)以及其它互连平台(包括移动工业处理器接口(MIPI)、
Figure BDA0001829159720000131
快速路径互连(QPI)、以及其它互连平台和架构)的重要元件。例如,在多插座环境中,由单个事务引起的错误可导致丢弃的数据的竞赛条件、全系统复位、以及其它效应。在一些传统架构中,与错误相关联的入站分组被允许继续在系统内传播,直到错误处理程序被调用并采取适当的行动为止。错误处理程序行动的等待时间在一些实例中导致大窗口,其中错误和随后的数据被允许保持未被遏制,连同其它效应。在这样的实例中,系统(主机)存储器可保持未被保护,因为指向系统存储器的随后的写事务或与数据的完成事务继续传播,直到错误处理程序采取行动以补救所检测的错误为止,连同其它问题。
在一些实现中,可在互连架构中的端口(例如符合PCIe的端口)上支持现场错误恢复(LER)特征。LER可用来扑捉在根端口处的错误(在根端口处检测到错误)并防止错误在端口之外传播。错误的检测可通过使链路被迫进入链路不运行状态而触发现场错误恢复,使所有出站请求被异常中止和在触发LER条件的分组后面的所有入站分组也被丢弃。这可使错误在特定的端口处被遏制,其中错误被检测到。错误可被报告到全局错误检测和处理模块,包括端口和链路的识别,其中错误被检测到。在一些情况下,基于软件的错误评估工具(例如错误处理程序)可接着处理并清零所报告的错误,而没有全系统复位。当确认不运行的链路的端口的入站和出站队列被排空时,可以发起链路的恢复,以便将链路带回到传输状态(例如在错误的遏制和清零之后),再次没有全系统复位。
在一个示例实现中,现场错误恢复(LER)模式可包括特定的定义错误的检测,例如高级错误报告(AER)、其它PCIe错误、或在符合PCIe的端口的入站或出站路径上的适当定义的错误。错误的错误掩码可被识别出并用于确定错误类型是否被定义以触发(LER)模式。在触发LER模式事件的错误上,端口的相关联链路被迫进入链路不运行状态,且所有出站请求和入站事务被丢弃。此外,完成分组也被丢弃,虽然在一些情况下,接口逻辑可合成待发送到产生请求的核心(或其它PCIe端口)的主异常中止完成,代替丢弃的完成。基于软件的控制器可检查LER模式“队列空”状态指示器以识别出所有入站(和出站)队列都是空的,且控制器可触发从LER模式的退出以允许不运行链路的链路训练开始恢复链路。在一个示例中,与LER模式相关联的功能可通过PCIe扩展能力结构、或其它寄存器或用于容易识别LER相关条件以及未来灵活性的结构来被适应。
转到图6,示出示例LER能力结构605的简化表示。可在示例能力结构内提供各种字段或部分。例如,在图6的示例中,能力字段可包括LER能力(LER_CAP)字段、LER头部(LER_HDR)字段、LER控制状态(LER_CTRLSTS)字段、LER不可校正错误掩码(LER_UNCERRMSK)字段、LER不可校正专有错误掩码(LER_XPUNCERRMSK)字段、LER根端口错误掩码(LER_RPERRMSK)字段连同可能其它字段。LER_CAP能力字段可识别LER能力结构以及指向下一能力结构。LER_HDR字段可至少部分地是卖方定义的,并识别由特定的设备采用的LER功能的版本和特征。此外,LER_CAP和LER_HDR可识别设备是否(和在什么程度上)支持LER。通过由特定的设备(和对应端口)支持的LER的版本的识别,软件控制器可确定由特定的设备支持的LER特征,连同其它示例。
在LER_CTRLSTS能力字段的情况下,可提供各种方面和控制位,用于提供LER模式。例如,LER_CTRLSTS字段可体现具有各种控制位的LER控制和状态寄存器,以实现LER和LER功能的各种状态位,包括队列空条件、LER严重性映射、攻击丢弃模式、中断使能、严重性重新映射,连同其它示例。
可通过LER能力结构提供各种错误掩码,用于识别哪个错误代码触发LER条件。PCIe和其它平台可支持各种错误条件代码和对应的掩码。LER可提供与标准错误掩码一起被处理以使LER被启用的额外的掩码,连同其它示例。在一个示例中,可提供(映射到通过端口的架构提供的对应的错误状态掩码的)LER掩码。例如,PCIe平台可包括不可校正错误掩码寄存器、根端口错误掩码寄存器、一个或多个专有错误掩码寄存器(例如以扩展可在平台的正式规范中定义的内容之外被掩码处理的那组错误),且LER能力结构可包括对应的错误掩码,例如LER不可校正错误掩码(LER_UNCERRMSK)和LER不可校正专有错误掩码(LER_XPUNCERRMSK)、以及LER根端口错误掩码(LER_RPERRMSK),连同可能其它示例。在一个实现中,LER_UNCERRMSK位可用来从LER模式掩码处理错误事件。换句话说,基于LER错误掩码的值,可确定特定的错误类型(例如也在平台的错误掩码寄存器中被识别或认出)被指定以在检测时触发LER。用户例如管理员可规定LER掩码寄存器的哪个掩码位被设定为选择哪个错误触发LER。作为示例,如果对应于畸形事务层分组(TLP)的位具有在平台(例如符合PCIe的平台)的不可校正错误状态掩码寄存器中设定的值,以指示这样的TLP错误应被登记为不可校正(或其它)错误,且LER_UNCERRMSK寄存器的对应位指示相同的错误将触发LER,当畸形TLP错误被检测到(例如使用事务层逻辑)时,LER模式可被触发,连同其它可能的示例。
暂时转到图7,示出示例LER控制和状态寄存器(或LER_CTRLSTS能力字段)705的表示。在图7的特定示例中,可提供各种字段和控制位,例如LER_Status位、LER_Port_Quiesced、LER_Enable位、LER_Severity_Enable位、LER_Drop_TXN位、以及LER_INTEN位,连同可能其它示例。在一个示例中,LER_Status,或状态,位可指示使PCIe端口进入现场错误恢复(LER)模式的错误被检测到。如上面提到的,在LER模式中,链路可立即被迫进入链路不运行禁用状态中,且当这个位被设定时所有出站事务(包括可能引起错误的分组)被中止。此外,在状态位被设定之后,它可只在所有相关联未掩码处理状态位被清零之后被清零,或对应的LER掩码位被设定,连同其它条件和示例。一旦未掩码处理错误条件被清零,则这个位可以(通过软件将值(例如“1”)写到字段)被清零。在LER事件之后将状态位清零可使链路自动开始重新训练到传输状态,结束出站事务的中止和入站事务的阻止。在一些实现中,迫使链路进入不运行状态可配置成使得LER事件不触发“突发链路不运行”错误。此外在一些实现中,一些设备(例如某些PCIe卡)可配置成当它们接收到指示“禁用”状态的训练序列时进入内部复位,连同其它示例。
继续图7的示例,状态寄存器705可包括指示在端口进入LET模式之后端口没有更多未决(pending)的入站或出站分组的端口静默位(例如LER_Port_Quiesced)。端口静默位可用于确认在LER事件之后分组已成功地从被迫进入链路不运行状态的链路排空。此外,软件控制器(例如错误管理工具或错误处理程序)可参考端口静默位来识别何时将LER状态位清零是安全的,并允许端口被带出LER模式。
其它位可用来实现通过LER模式提供的各种功能。例如,LER中断使能位(例如LER_INTEN)可指示当LER事件被触发(例如通过LER状态位的设定)时,中断(例如消息信号中断(MSI))是否被产生。此外,LER事务丢弃位(例如LER_Drop_Txn)可用于当端口配置允许时,识别在进入LER之后随后的事务是否将被丢弃。此外,可提供LER严重性变化位(例如LER_Severity_En),其在被设定时迫使触发LER模式的错误用信号传送为可校正的错误,而不是不可校正(或类似)的错误。例如,启用LER_Severity_En可使通常用信号传送为不可校正的非致命严重性1或不可校正的致命严重性2的错误替代地用信号传送为可校正的严重性0。这样的位可例如被设定以解释在设备处增强错误处理能力,连同其它情况。此外,额外的位(例如LER_Enable)可被提供以选择性地启用或禁用LER功能,有效地开启或关闭LER功能。
转到图8,示出可用于实现LER功能的至少一部分的示例逻辑的示意性方框图800。例如,可接收对应于在端口处检测的特定类型的错误的错误信号805。信号805的错误条件可由标准错误状态掩码810掩码处理以确定(例如在815)错误条件是否具有比“严重性0”(例如可校正的错误)高的严重性。如果是,则信号815可前进(例如到与门825)以与LER错误掩码820比较以确定错误条件是否触发LER模式。如果LER功能被启用(例如在LER控制状态寄存器705的835处)且LER应用于所检测的错误(在805),则LER状态位可被设定(例如在830)以调用LER模式并迫使链路进入禁用状态840。例如,可发送握手、禁用训练序列、或其它信号以将链路发送到不运行状态中。在禁用或不运行状态中,主异常中止应用于所有出站请求(例如通过用全“1”构造完成),所有出站完成被丢弃,且所有入站分组将被丢弃。此外,如果严重性变化位845被设定,则逻辑(在850)可迫使错误条件的严重性从较高严重性等级(例如不可校正的严重性1或严重性2)以指示较低的可校正的严重性等级。这可确保更侵略性的步骤(例如全系统设定)响应于错误条件(通过信号805传递)而不被执行。
在LER模式中,未解决的事务及入站和出站分组被丢弃并从链路排空。当硬件(或软件)逻辑丢弃未解决的事务时,端口静默位855可被设定。另一控制器(例如至少部分的基于软件的错误处理程序)可试图解决并分析错误条件。错误处理程序(或其它工具)可进一步将错误寄存器清零(例如当解决错误条件时)。此外,当将错误寄存器清零时,错误处理程序可借助于端口静默位855的值,来识别出没有事务在链路(或端口)上是未决的,并将LER状态位清零以使链路退出LER模式。在一个示例中,从LER退出包括链路的重新训练并带回到活动传输状态。
如上面提到的,LER控制状态寄存器(例如705)可包括控制位以改变LER映射的严重性,以改变触发LER的错误代码的严重性。例如,如在图9的示意图900所示的示例中所示的,在LER控制状态寄存器中的LER严重性变化(或映射)位(例如在845)可被启用。启用LER控制状态寄存器可使通常被处理为不可校正的错误(例如没有LER被启用)的错误条件(例如905)替代地用信号传送为可校正的严重性0错误,而不是严重性1或2。因此,在这个特定的示例中,对应的严重性0位可被设定,严重性0MSI可产生,且严重性0ERR[0]pin而不是严重性1或2可被置位(assert)。在没有严重性重新映射的情况下,较高严重性中断(例如系统管理中断(SMI)、不可掩码处理中断(NMI)、机器检查架构(MCA)错误)或其它中断或错误事件可被触发,即使错误通过LER模式被遏制在端口处。示例严重性重新映射可确保通过将严重性重新映射到较低的严重性(可校正的错误)来正确地遏制由于LER触发的错误,使得SMI、NMI等将不从全局错误产生逻辑(例如910)被触发。替代地,全局错误产生逻辑910可将该错误处理为严重性0错误。
如上面介绍的,在LER模式中,不同的分组可紧接着在LER模式被触发之后被处理,以便遏制在特定的端口处的错误。例如,LER可在同一时钟周期上被触发,错误在错误寄存器中被记录以发起使受影响的链路不运行的过程。表1示出在触发LER模式时各种分组类型如何被处理:
表1
Figure BDA0001829159720000181
如上面提到的,在一些情况下,入站完成分组在LER模式中被丢弃时可被拦截和合成,以便将对应的主异常中止完成传递到负责发送对应的请求的核心,其中完成应用于该请求。在一些实例中,核心可等待丢弃的完成,且合成主异常中断完成可防止核心暂停。
可为LER启用不同类别的错误。错误类别可包括例如与输入(例如从另一设备或相关联远程代理)分组(例如TLP)相关联的错误、与外发(例如向外到另一设备或相关联远程代理)分组相关联的错误,以及非分组错误,例如有缺陷的端口错误,连同其它示例。
转到图10,示出说明与错误有关的示例LER事件的流程图,该错误与在链路上的一个或多个输入TLP相关联。端点1005可在符合PCIe的链路的端口(包括PCIe物理层1010、数据链路层1015、以及事务层1020)上与主机(例如1025)通信。多个写(WR)和读(RD)请求分组可在PCIe物理层1010上在传输L0状态中被发送。一些分组可在被传递到系统或主机存储器1025之前在TLP队列1030中被排队或缓冲,连同其它示例。
在图10的示例中,可结合写请求分组WR3来确定错误,例如畸形TLP错误。端口错误检测逻辑可检测错误并进一步确定错误具有应触发LER状态的类型。因此,检测逻辑可立即(例如在同一时钟周期上)使LER状态信号置位,并从而触发相关联链路到不运行或禁用状态1035的转变。在一些情况下,根据基于错误(例如与PCIe正式规范一致)的平台的标准协议,负责错误的分组可被丢弃。此外,置位的LER状态信号也可用于从端点1005丢弃每一个随后的入站分组(例如RD 3、WR 4、RD 4、WR 5等),同时链路转变到禁用状态,以在端口处提供错误遏制。以这种方式,存储器(例如1025)可被保护免受来自(跟着负责错误条件的TLP(例如WR 3)的)TLP的破坏。端点1005在识别出进入禁用状态时可停止发送额外的TLP。此外,出站分组(例如RD_CMP1、RC_CMP2等)也可在进入LER模式期间和在LER模式内被丢弃。然而在一些实现中,如果当LER模式被发起时出站TLP被传输,则出站TLP的传输可被允许不中断地完成。
图11示出到LER模式的示例转变的另一表示。畸形或其它错误TLP(例如“坏”分组1105)可由端点1005的发射机处理并在PCIe链路上的端点1005的发射机(Tx(ex))上被释放以由集成I/O逻辑(IIO)1110(例如端口)处理。IIO可对坏TPL 1105解码并确定(例如从LER错误掩码)TLP 1105将触发LER事件,且坏TLP 1105可被丢弃。因此,IIO 1110可通过进入恢复状态来发起迫使链路不运行,并接着从恢复状态到禁用状态。此外,IIO可开始发送禁用训练序列(例如1115)。此外,端点1005的接收机(Rx(ex))可接收训练序列并识别出链路被关停并停止发送TLP,并且其本身开始重复训练序列(例如在1120)。在一个示例中,训练序列可包括16字节TS1训练序列,连同其它可能的示例。训练序列(例如1115)可被发送以引导链路进入恢复状态。可在禁用位被设定的情况下发送训练序列,使得两个链路都进入禁用状态。
根据LER信号的置位和进入LER状态,IIO流水线的冲洗(flush)(例如1125)可开始。TLP可在IIO切换队列中被缓冲。在LER中,冲洗可包括使队列排空,对从端点1005接收的每一个TLP解码一直到当端点1005停止发送TLP时,并从重试缓冲器丢弃分组。事务层也可丢弃任何未解决的事务。例如,进入禁用状态可使数据链路层转变到DL_Inactive状态,其可使在数据链路层重试缓冲器中的所有分组被丢弃,且事务层丢弃任何未解决的事务。此外,如上所述,LER模式还可包括合成一个或多个丢弃的完成分组、改变LER条件的严重性(例如到不可校正的)连同其它示例。当所有入站和出站队列被排空时,所有寄存器被清零,且LER状态位被清零,链路可被带出LER模式并被重新训练。
可与从入站分组产生的错误类似地处理涉及外发分组的错误。在一个示例中,如果输入非通报请求导致完成以不支持的请求或完成符异常中止状态返回,则这些完成可被丢弃并触发LER模式。在另一示例中,如果出站奇偶校验位错误或毒害的TLP触发LER,则这样毒害的TLP可被丢弃。在非致命毒害错误在端口出站处被检测到的情况下,错误可被记录在入站路径上的标准错误日志寄存器上,且攻击型的分组可被丢弃。此外,如同入站错误一样,LER模式的启用可导致不可校正的错误中断的产生,而不是非致命或致命不可校正的中断(例如,如果LER严重性重新映射特征被启用)。此外,为出站错误触发的LER模式可进一步导致PCI Express端口链路被迫不运行,到该链路的所有出站请求被异常中止且出站完成被丢弃,包括引起错误的请求或完成。链路可接着进入恢复,如在前面的示例中的。
类似的原理也可应用于非分组错误。例如,如上面描述的LER可用于将错误隔离到有缺陷的端口。例如,LER可禁用检测到被认为是致命的错误的端口,并可使系统关闭。这样的致命错误可包括例如流控制协议错误、惊人的故障错误、以及数据链路层协议错误,连同其它示例。
注意,上面描述的装置、方法、以及系统可在如前面提到的任何电子设备或系统中实现。作为特定的例证,下面的附图提供用于利用如本文所述的发明的示例性系统。如系统在下面被更详细地描述的,多个不同的互连被公开、描述、以及从上面的讨论被重温。而且如容易明显的,上面描述的进步可应用于那些互连、结构、或架构中的任一个。
现在参考图12,示出了根据本发明的实施例的第二系统1200的方框图。如图12所示,多处理器系统1200是点对点互连系统,并包括经由点对点互连1250耦合的第一处理器1270和第二处理器1280。每一个处理器1270和1280可以是处理器的某个版本。在一个实施例中,1252和1254是串行、点对点相干互连结构(例如英特尔的快速路径互连(QPI)架构)的部分。作为结果,本发明可在QPI架构内实现。
虽然只示出两个处理器1270、1280,应理解,本发明的范围并不被如此限制。在其它实施例中,一个或多个额外的处理器可存在于给定处理器中。
处理器1270和1280被示为分别包括集成的存储器控制器单元1272和1282。处理器1270还包括点对点(P-P)接口1276和1278作为其总线控制器单元的部分;类似地,第二处理器1280包括P-P接口1286和1288。处理器1270、1280可使用P-P接口电路1278、1288经由点对点(P-P)接口1250交换信息。如图12所示,IMC 1272和1282将处理器耦合到可以是在本地连接到相应的处理器的主存储器的部分的相应的存储器,即,存储器1232和存储器1234。
处理器1270、1280每一个经由单独的P-P接口1252、1254使用点对点接口电路1276、1294、1286、1298与芯片组1290交换信息。芯片组1290还经由接口电路1292沿着高性能图形互连1239与高性能图形电路1238交换信息。
共享缓存(未示出)可被包括在任一处理器中或在两个处理器的外部;然而经由P-P互连与处理器连接,使得任一或两个处理器的本地缓存信息可存储在共享缓存中(如果处理器被置于低功率模式中)。
芯片组1290可经由接口1296耦合到第一总线1216。在一个实施例中,第一总线1216可以是外围部件互连(PCI)总线,或诸如PCI Express总线的总线或另一第三代I/O互连总线,虽然本发明的范围并不被如此限制。
如图12所示,各种I/O设备1214耦合到第一总线1216,连同将第一总线1216耦合到第二总线1220的总线桥1218。在一个实施例中,第二总线1220包括低管脚数(LPC)总线。在一个实施例中,各种设备(包括例如键盘和/或鼠标1222、通信设备1227和存储单元1228,例如磁盘驱动器或常常包括指令/代码和数据1230的其它大容量存储设备)耦合到第二总线1220。此外,音频I/O 1224被示为耦合到第二总线1220。注意,其它架构是可能的,其中所包括的部件和互连架构变化。例如,不是图12的点对点架构,系统可实现多点分支总线或其它这样的架构。
接着转到图13,描绘了根据本发明的片上系统(SOC)设计的实施例。作为特定的说明性示例,SOC 1300被包括在用户设备(UE)中。在一个实施例中,UE指由终端用户使用来通信的任何设备,例如手持电话、智能电话、平板计算机、超薄笔记本计算机、有宽带适配器的笔记本计算机、或任何其它类似的通信设备。UE常常连接到基站或节点,其可能在性质上对应于在GSM网络中的移动站(MS)。
在这里,SOC 1300包括2个核心——1306和1307。类似于上面的讨论,核心1306和1307可符合指令集架构,例如基于
Figure BDA0001829159720000221
Architecture CoreTM的处理器、AdvancedMicro Devices公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计、或其客户,以及其被许可方或采纳者。核心1306和1307耦合到与总线接口单元1309和L2缓存1311相关联的缓存控制器1308,以与系统1300的其它部分通信。互连1310包括可能实现本文描述的一个或多个方面的片上互连,例如IOSF、AMBA、或上面讨论的其它互连。
接口1310将通信通道提供到其它部件,例如:到用户识别模块(SIM)1330,以与SIM卡接合;到引导只读存储器1335,以保存引导代码用于由核心1306和1307执行以初始化并引导SOC 1300;到SDRAM控制器1340,以与外部存储器(例如DRAM 1360)接合;到闪存控制器1345,以与非易失性存储器(例如闪存1365)接合;到外围控制器1350(例如串行外围接口),以与外围设备接合;到视频编码译码器1320和视频接口1325,以显示并接收输入(例如启用触摸的输入);到GPU 1315,以执行图形相关的计算等。这些接口中的任一个可合并本文描述的发明的方面。
此外,系统示出用于通信的外围设备,例如蓝牙模块1370、3G调制解调器1375、GPS1385、以及WiFi 1385。注意,如上面提到的,UE包括用于通信的无线电装置。作为结果,这些外围通信模块并不都是需要的。然而在UE中包括用于外部通信的某个形式的无线电装置。
虽然关于有限数量的实施例描述了本发明,本领域中的技术人员将从其认识到很多修改和变化。意图是所附权利要求覆盖如落在本发明的真实精神和范围内的所有这样的修改和变化。
设计可经历各种阶段,从创建到仿真到制造。表示设计的数据可以用若干方式代表设计。首先,如在仿真中有用的,硬件可被表示为使用硬件描述语言或另一功能描述语言。此外,可在设计过程的一些阶段生产具有逻辑和/或晶体管门的电路级模型。此外,大部分设计在某个阶段达到表示在硬件模型中的各种设备的物理放置的数据的级别。在常规半导体制造技术被使用的情况下,表示硬件模型的数据可以是规定在用于产生集成电路的掩模的不同掩码层上的各种特征的存在或缺乏的数据。在设计的任何表示中,数据可存储在任何形式的机器可读介质中。存储器或磁性或光学存储器(例如盘)可以是机器可读介质以存储经由光波或电波传输的信息,光波或电波被调制或产生以传输这样的信息。当指示或承载代码或设计的电载波被传输时,在电信号的拷贝、缓冲、或重新传输被执行的程度上,新拷贝被制造。因此,通信提供者或网络提供者可在有形、机器可读介质上至少临时存储体现本发明的实施例的技术的物件,例如被编码到载波中的信息。
如本文使用的模块指硬件、软件、和/或固件的任何组合。作为示例,模块包括与非暂时性介质相关联的硬件,例如微控制器,以存储适合于由微控制器执行的代码。因此,对模块的提及在一个实施例中指硬件,其特别配置成识别和/或执行保存在非暂时性介质上的代码。此外在另一实施例中,模块的使用指包括特别适合于由微控制器执行以执行预定的操作的代码的非暂时性介质。而且如可推断出的,在又一实施例中,术语模块(在本例中)可以指微控制器和非暂时性介质的组合。常常被示为单独的模块边界通常变化并可能重叠。例如,第一和第二模块可共享硬件、软件、固件、或其组合,同时可能保留一些独立的硬件、软件、或固件。在一个实施例中,术语逻辑的使用包括硬件,例如晶体管、寄存器、或其它硬件,例如可编程逻辑设备。
短语“用于”或“配置成”的使用在一个实施例中指布置、放置在一起、制造、提供以销售、引入和/或设计装置、硬件、逻辑、或元件以执行指定或确定的任务。在本例中,其中未操作的装置或元件仍然“配置成”执行指定任务(如果它被设计、耦合、和/或互连以执行所述指定任务)。作为纯粹说明性的示例,逻辑门可在操作期间提供0或1。但“配置成”向时钟提供启用信号的逻辑门不包括可提供1或0的每一个可能的逻辑门。替代地,逻辑门是以某种方式耦合的逻辑门,在操作期间,1或0输出将会启用时钟。再一次注意,术语“配置成”的使用并不需要操作,而相反聚焦于装置、硬件、和/或元件的潜在状态,其中在潜在状态中,当装置、硬件、和/或元件正在操作时,装置、硬件、和/或元件设计成执行特定的任务。
此外,短语“能够”、和/或“可操作来”的使用在一个实施例中指以这样的方式被设计的某个装置、逻辑、硬件、和/或元件以便能够以规定方式实现该装置、逻辑、硬件、和/或元件的使用。注意,如上述,用于、能够、或可操作的使用在一个实施例中指装置、逻辑、硬件、和/或元件的潜在状态,其中该装置、逻辑、硬件、和/或元件不操作,但以这样的方式被设计以便以规定方式实现装置的使用。
如在本文使用的值包括数字、状态、逻辑状态、或二进制逻辑状态的任何已知的表示。逻辑电平、逻辑值、或逻辑学值的使用也常常被称为1和0,其简单地代表二进制逻辑状态。例如,1指高逻辑电平而0指低逻辑电平。在一个实施例中,存储单元例如晶体管或闪存单元可能能够保存单个逻辑值或多个逻辑值。然而,在计算机系统中的值的其它表示被使用。例如,十进制数十也可被表示为二进制值1010和十六进制字母A。因此,值包括能够保存在计算机系统中的信息的任何表示。
而且,状态可由值或值的部分表示。作为示例,第一值例如逻辑一可表示默认或初始状态,而第二值例如逻辑零可表示非默认状态。此外,术语复位和设定在一个实施例中分别指默认和更新值和状态。例如,默认值可能包括高逻辑值,即,复位,而更新值可能包括低逻辑值,即,设定。注意,值的任何组合可用于表示任何数量的状态。
可经由处理元件可执行的存储在机器可访问、机器可读、计算机可访问、或计算机可读介质上的指令或代码,来实现上面阐述的方法、硬件、软件、固件或代码的实施例。非暂时性机器可访问/可读介质包括提供(即,存储和/或传输)以机器(例如计算机或电子系统)可读的形式的信息的任何机制。例如,非暂时性机器可访问介质包括随机存取存储器(RAM),例如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁性或光学存储介质;闪存设备;电存储设备;光存储设备;声存储设备;用于保存从暂时性(传播)信号(例如载波、红外信号、数字信号)接收的信息的存储设备的其它形式等,其应与可从那里接收信息的非暂时性介质区分开。
用于对逻辑编程以执行本发明的实施例的指令可存储在系统中的存储器(例如DRAM、缓存、闪存、或其它存储设备)内。此外,可经由网络或通过其它计算机可读介质来分发指令。因此,机器可读介质可包括用于存储或传输以机器(例如计算机)可读的形式的信息的任何机制,但不限于软盘、光学盘、光盘只读存储器(CD-ROM)、以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或在经由电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等)通过互连网的信息传输中使用的有形机器可读存储设备。因此,计算机可读介质包括适合于存储或传输以机器(例如计算机)可读的形式的电子指令或信息的任何类型的有形机器可读介质。
下面的示例涉及根据这个说明书的实施例。一个或多个实施例可提供识别在串行数据链路的端口处的分组、识别在串行数据链路的端口处的分组、确定分组与错误相关联、并基于分组与错误相关联的确定而发起进入错误恢复模式的装置、系统、机器可读存储设备、机器可读介质、以及方法。进入错误恢复模式可使串行数据链路被迫不运行。
在至少一个示例中,迫使数据链路不运行使所有随后的入站分组被丢弃。
在至少一个示例中,迫使数据链路不运行进一步使所有未决的出站请求和完成被异常中止。
在至少一个示例中,错误逻辑针对被异常中止的完成中的一个产生并发送主异常中止完成。
在至少一个示例中,错误逻辑进一步丢弃分组。
在至少一个示例中,错误是事务层分组错误、流控制协议错误、以及数据链路层协议错误中的至少一个。
在至少一个示例中,错误逻辑进一步确定错误是触发错误恢复模式的一组错误中的一个。
在至少一个示例中,这组错误可从对应于错误恢复模式的错误掩码寄存器识别。
在至少一个示例中,这组错误进一步被包括在由另一错误掩码识别为不可校正的错误的错误中。
在至少一个示例中,进入错误恢复模式包括进入禁用状态。
在至少一个示例中,错误与不可校正的严重性相关联,且错误逻辑进一步迫使错误与可校正的严重性相关联。
在至少一个示例中,错误逻辑进一步使错误被校正。
在至少一个示例中,错误逻辑进一步识别出在数据链路上的所有事务被丢弃并识别出数据链路的所有错误寄存器被清零。
在至少一个示例中,错误逻辑基于寄存器的静默控制位值来确定事务被丢弃。
在至少一个示例中,错误逻辑基于识别出数据链路上的所有事务被丢弃以及数据链路的所有错误寄存器被清零,来使对应于数据链路的状态控制寄存器的错误恢复位清零。
在至少一个示例中,错误逻辑进一步基于错误恢复位的清零来发起链路的重新训练。错误恢复位可指示错误恢复模式是否是活动的。
在至少一个示例中,在与错误的检测相同的时钟周期上发起进入错误恢复模式。
在至少一个示例中,迫使数据链路不运行包括进入恢复状态,以及从恢复状态转变到禁用状态。
在至少一个示例中,迫使数据链路不运行包括发送一系列的训练序列,且训练序列包括指示试图进入禁用状态的位。
在至少一个示例中,错误被指定为不可校正的错误,但错误应被指定为可校正的错误,其中错误替代地引起可校正错误中断。
在至少一个示例中,分组是通过数据链路被发送到另一设备的出站分组。
在至少一个示例中,分组是通过数据链路从另一设备接收的入站分组。
在至少一个示例中,分组通过互连被发送,且在一些实例中,是符合快速外围部件互连(PCIe)的互连。
在至少一个示例中,分组在第一和第二微处理器之间传递。
一个或多个实施例可提供与串行数据链路接合、接收使用数据链路传递的分组、确定分组是否与错误相关联、以及基于分组与错误相关联的确定而发起进入错误恢复模式的装置、系统、机器可读存储设备、机器可读介质、以及方法。进入错误恢复模式可使入站分组被丢弃以及出站请求被异常中止。
在至少一个示例中,接口逻辑在错误恢复模式期间异常中止所有未决的出站请求和完成。
在至少一个示例中,接口逻辑在错误恢复模式期间丢弃所有入站分组。
一个或多个实施例可提供装置、系统、机器可读存储设备、机器可读介质、以及方法,来提供具有事务层逻辑、数据链路层逻辑、以及物理层逻辑的错误逻辑,以检测与特定分组相关联的特定错误,基于第一寄存器值来确定特定错误被指定为不可校正的错误,基于第二寄存器值来确定特定错误触发错误恢复模式,其中错误恢复模式使在特定错误后面的入站和出站分组被丢弃,根据第三寄存器值确定错误恢复模式是否被启用,以及至少部分地基于第一、第二、以及第三寄存器值来修复特定错误。
在至少一个示例中,错误逻辑进一步基于第三寄存器值指示错误恢复模式被启用的确定,来发起错误恢复模式,且发起错误恢复模式包括使寄存器的错误恢复状态控制位置位。
在至少一个示例中,错误逻辑进一步识别出错误恢复状态控制位被清零,并基于错误恢复状态控制位的清零来发起数据链路的重新激活。
在整个这个说明书中对“一个实施例”或“实施例”的提及意味着关于该实施例描述的特定特征、结构、或特性被包括在本发明的至少一个实施例中。因此,短语“在一个实施例中”或“在实施例中”在整个这个说明书中不同地方的出现并不一定都指同一实施例。此外,特定特征、结构、或特性在一个或多个实施例中可以用任何适当的方式组合。
在前述说明书中,参考特定的示例性实施例给出了详细描述。然而明显的是,可对其做出各种修改和改变,而不偏离如在所附权利要求中阐述的本发明的更宽的精神和范围。说明书和附图因此在说明性意义而不是限制性意义上被考虑。此外,实施例的前述使用和其它示例性语言并不一定指同一实施例或同一示例,但可以指不同的和独特的实施例,以及可能同一实施例。

Claims (14)

1.一种用于针对与基于快速外围部件互连PCIe的协议兼容的设备的错误遏制的装置,包括:
与下游端口错误遏制模式相关联的能力结构;以及
下游端口,其中,所述下游端口包括硬件实现的逻辑,包括:
I/O逻辑,用于支持通过串行数据链路与另一设备的通信;以及
错误逻辑,用于:
确定与分组相关联的不可校正的错误;
确定在所述能力结构内设定了特定位,以指示所述下游端口错误遏制模式针对所述下游端口被启用,其中,所述下游端口错误遏制模式用于在所述下游端口处遏制不可校正的错误;
至少部分地基于所述特定位被设置以指示所述下游端口错误遏制模式被启用,而设定下游端口错误遏制状态位以触发所述下游端口错误遏制模式;
停止来自处于所述下游端口错误遏制模式的所述下游端口的向下游的业务,以避免传播与所述不可校正的错误相关联的数据破坏,并且允许错误恢复;以及
检测所述下游端口错误遏制状态位被软件清零;
其中,所述I/O逻辑用于基于所述下游端口错误遏制状态位的清零而尝试重新训练所述链路。
2.根据权 利要求1所述的装置,其中,所述I/O逻辑包括用于实现所述基于快速外围部件互连PCIe的协议的物理层、数据链路层和事务层的逻辑。
3.根据权利要求1所述的装置,其中,所述错误逻辑还用于在所述下游端口错误遏制模式中合成一个或多个完成分组。
4.根据权利要求1所述的装置,其中,所述错误逻辑用于在所述下游端口错误遏制模式内用信号传送可校正的错误以指示所述不可校正的错误而不是用信号传送不可校正的错误。
5.根据权利要求4所述的装置,其中,至少部分地基于所述错误逻辑确定针对不可校正的错误的信号控制位在寄存器中被设定而用信号传送所述可校正的错误。
6.根据权利要求1所述的装置,其中,基于软件的管理器用于在所述下游端口错误遏制状态位被设定时尝试恢复所述不可校正的错误。
7.根据权利要求1所述的装置,其中,所述不可校正的错误包括致命的或非致命的不可校正的错误中的一个。
8.根据权利要求1所述的装置,其中,软件设定所述特定位以启用所述下游端口错误遏制模式。
9.根据权利要求1所述的装置,其中,所述错误逻辑用于报告所述不可校正的错误。
10.一种用于针对与基于快速外围部件互连PCIe的协议兼容的设备的错误遏制的方法,包括:
接收互连上的分组,其中,所述互连对计算机中的一组设备进行耦合;
在所述一组设备中的特定设备的下游端口处检测与所述分组相关联的不可校正的错误;
根据所述特定设备的扩展能力结构中的特定位,确定下游端口错误遏制模式针对所述下游端口被启用,其中,所述下游端口错误遏制模式用于在所述下游端口处遏制不可校正的错误;
基于所述下游端口错误遏制模式被启用,而设定下游端口错误遏制状态位以触发所述下游端口错误遏制模式;
停止来自处于所述下游端口错误遏制模式的所述下游端口的向下游的业务,以避免传播与所述错误相关联的数据破坏,并且允许错误恢复;
检测所述下游端口错误遏制状态位被软件清零;以及
基于所述下游端口错误遏制状态位的清零而尝试重新训练链路。
11.一种用于针对与基于快速外围部件互连PCIe的协议兼容的设备的错误遏制的系统,包括用于执行根据权利要求10所述的方法的单元。
12.一种用于针对与基于快速外围部件互连PCIe的协议兼容的设备的错误遏制的设备,包括:
存储指令的存储器;以及
耦合到所述存储器的处理器,所述指令在被所述处理器执行时执行根据权利要求10所述的方法。
13.一种具有指令的计算机可读介质,所述指令在被处理器执行时,使所述处理器执行根据权利要求10所述的方法。
14.一种用于针对与基于快速外围部件互连PCIe的协议兼容的设备的错误遏制的系统,包括:
第一设备;以及
通过串行数据链路与所述第一设备连接的第二设备,
其中,所述第一设备包括:
与下游端口错误遏制模式相关联的能力结构;以及
下游端口,其中,所述下游端口包括硬件实现的逻辑,包括:
I/O逻辑,用于支持通过串行数据链路与另一设备的通信;以及
错误逻辑,用于:
确定与分组相关联的不可校正的错误;
确定在所述能力结构内设定了特定位,以指示所述下游端口错误遏制模式针对所述下游端口被启用,其中,所述下游端口错误遏制模式用于在所述下游端口处遏制不可校正的错误;
至少部分地基于所述特定位被设置以指示所述下游端口错误遏制模式被启用,而设定下游端口错误遏制状态位以触发所述下游端口错误遏制模式;
停止来自处于所述下游端口错误遏制模式的所述下游端口的向下游的业务,以避免传播与所述不可校正的错误相关联的数据破坏,并且允许错误恢复;以及
检测所述下游端口错误遏制状态位被软件清零;
其中,所述I/O逻辑用于基于所述下游端口错误遏制状态位的清零而尝试重新训练所述链路。
CN201811197445.8A 2012-12-28 2013-12-21 现场错误恢复 Active CN109614256B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201261746972P 2012-12-28 2012-12-28
US61/746,972 2012-12-28
US13/892,894 2013-05-13
US13/892,894 US9262270B2 (en) 2012-12-28 2013-05-13 Live error recovery
CN201380062299.7A CN104823167B (zh) 2012-12-28 2013-12-21 现场错误恢复
PCT/US2013/077347 WO2014105768A1 (en) 2012-12-28 2013-12-21 Live error recovery

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380062299.7A Division CN104823167B (zh) 2012-12-28 2013-12-21 现场错误恢复

Publications (2)

Publication Number Publication Date
CN109614256A CN109614256A (zh) 2019-04-12
CN109614256B true CN109614256B (zh) 2023-02-17

Family

ID=51018762

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201811197445.8A Active CN109614256B (zh) 2012-12-28 2013-12-21 现场错误恢复
CN201380062299.7A Active CN104823167B (zh) 2012-12-28 2013-12-21 现场错误恢复

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201380062299.7A Active CN104823167B (zh) 2012-12-28 2013-12-21 现场错误恢复

Country Status (6)

Country Link
US (3) US9262270B2 (zh)
EP (1) EP2939116A4 (zh)
KR (1) KR101702292B1 (zh)
CN (2) CN109614256B (zh)
TW (2) TWI592797B (zh)
WO (1) WO2014105768A1 (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262270B2 (en) * 2012-12-28 2016-02-16 Intel Corporation Live error recovery
JP5800847B2 (ja) * 2013-03-26 2015-10-28 京セラドキュメントソリューションズ株式会社 情報処理装置、エラー処理方法
TWI517634B (zh) * 2013-06-18 2016-01-11 聯詠科技股份有限公司 串列封包資訊偵測與控制方法及其接收器
US9397792B2 (en) * 2013-12-06 2016-07-19 Intel Corporation Efficient link layer retry protocol utilizing implicit acknowledgements
US9325449B2 (en) 2013-12-06 2016-04-26 Intel Corporation Lane error detection and lane removal mechanism to reduce the probability of data corruption
RU2645288C2 (ru) 2013-12-26 2018-02-19 Интел Корпорейшн Усовершенствование интерфейса pci express
US9507675B2 (en) * 2014-04-15 2016-11-29 Qualcomm Incorporated Systems and methods for recovering from uncorrected DRAM bit errors
JP6525555B2 (ja) * 2014-11-04 2019-06-05 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
US11321263B2 (en) 2014-12-17 2022-05-03 Intel Corporation High bandwidth core to network-on-chip interface
WO2016206012A1 (en) * 2015-06-24 2016-12-29 Intel Corporation Systems and methods for isolating input/output computing resources
US10599510B2 (en) * 2015-07-08 2020-03-24 Hitachi, Ltd. Computer system and error isolation method
US10089196B2 (en) 2015-07-14 2018-10-02 Shannon Systems Ltd. Methods for reconfiguring a storage controller when control logic fails and apparatuses using the same
CN106648439B (zh) * 2015-07-14 2019-11-29 上海宝存信息科技有限公司 于控制逻辑错误时重新配置存储控制器的方法及装置
US10114790B2 (en) * 2016-05-17 2018-10-30 Microsemi Solutions (U.S.), Inc. Port mirroring for peripheral component interconnect express devices
US10762030B2 (en) * 2016-05-25 2020-09-01 Samsung Electronics Co., Ltd. Storage system, method, and apparatus for fast IO on PCIE devices
US10713202B2 (en) * 2016-05-25 2020-07-14 Samsung Electronics Co., Ltd. Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports
TW201741899A (zh) * 2016-05-31 2017-12-01 創義達科技股份有限公司 設備分配控制器以及資料分享方法
JP6666439B2 (ja) * 2016-06-06 2020-03-13 オリンパス株式会社 データ転送装置、画像処理装置、および撮像装置
CN106294228B (zh) * 2016-08-17 2019-06-04 上海兆芯集成电路有限公司 输入输出扩展芯片以及其验证方法
US11042496B1 (en) * 2016-08-17 2021-06-22 Amazon Technologies, Inc. Peer-to-peer PCI topology
CN106844082A (zh) * 2017-01-18 2017-06-13 联想(北京)有限公司 处理器预测故障分析方法及装置
US10853299B2 (en) * 2017-09-15 2020-12-01 Dell Products L.P. Hot-plugged PCIe device configuration system
US10379937B2 (en) 2017-10-31 2019-08-13 Stmicroelectronics International N.V. Memory architecture including response manager for error correction circuit
US10657002B2 (en) 2017-11-10 2020-05-19 International Business Machines Corporation Method and apparatus to rollback memory DIMM lane sparing
US10636577B2 (en) 2018-05-25 2020-04-28 Qualcomm Incorporated Safe handling of link errors in a peripheral component interconnect express (PCIE) device
US10922203B1 (en) * 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
CN110989918B (zh) 2018-10-03 2023-03-28 慧荣科技股份有限公司 写入控制方法以及数据存储装置及其控制器
CN110990175B (zh) 2018-10-03 2023-03-14 慧荣科技股份有限公司 错误处置方法以及数据存储装置及其控制器
TWI684988B (zh) * 2018-10-03 2020-02-11 慧榮科技股份有限公司 錯誤處置方法以及資料儲存裝置及其控制器
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11080122B2 (en) 2019-09-19 2021-08-03 International Business Machines Corporation Software-invisible interrupt for a microprocessor
US11256488B1 (en) 2020-07-29 2022-02-22 Bank Of America Corporation Graph-based vectorization for software code optimizations
US11301218B2 (en) 2020-07-29 2022-04-12 Bank Of America Corporation Graph-based vectorization for software code optimization references
US11520653B2 (en) * 2020-10-15 2022-12-06 Nxp Usa, Inc. System and method for controlling faults in system-on-chip
US11836059B1 (en) 2020-12-14 2023-12-05 Sanblaze Technology, Inc. System and method for testing non-volatile memory express storage devices
KR20220162336A (ko) * 2021-06-01 2022-12-08 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
KR102635450B1 (ko) 2021-05-26 2024-02-13 에스케이하이닉스 주식회사 PCIe 장치 및 그 동작 방법
KR20220162377A (ko) 2021-06-01 2022-12-08 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법
US11921657B2 (en) 2021-05-26 2024-03-05 SK Hynix Inc. Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller
CN114356811B (zh) * 2022-03-17 2022-06-07 苏州浪潮智能科技有限公司 一种通信链路更新方法、装置及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939735A (en) * 1988-07-21 1990-07-03 International Business Machines Corporation Information handling system having serial channel to control unit link
US5218680A (en) * 1990-03-15 1993-06-08 International Business Machines Corporation Data link controller with autonomous in tandem pipeline circuit elements relative to network channels for transferring multitasking data in cyclically recurrent time slots
US5958064A (en) * 1992-06-20 1999-09-28 International Business Machines Corporation Multiple node dual level error recovery system and method
CN1510964A (zh) * 1998-08-27 2004-07-07 ض� 计算机网络中输入/输出链路重试、故障及恢复方法和设备
GB0723929D0 (en) * 2007-12-06 2008-01-16 Advanced Risc Mach Ltd Recovering from errors in streaming DSP applications
CN101605283A (zh) * 2009-06-29 2009-12-16 中兴通讯股份有限公司 Wson中节点资源状态的恢复方法及装置
CN101841838A (zh) * 2009-03-20 2010-09-22 中兴通讯股份有限公司 逻辑链路告警的处理方法和装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805922A (en) * 1994-05-02 1998-09-08 Motorola, Inc. Queued serial peripheral interface having multiple queues for use in a data processing system
KR960003444A (ko) * 1994-06-01 1996-01-26 제임스 디. 튜턴 차량 감시 시스템
US5528749A (en) 1994-08-05 1996-06-18 Thomson Consumer Electronics, Inc. Automatic instrument turn off/on for error correction
JPH08123520A (ja) * 1994-10-25 1996-05-17 Mitsubishi Electric Corp 駆動制御指令装置と複数台の駆動制御指令装置の同期制御システム及びその同期制御方法
EP0747817B1 (en) * 1995-06-07 2003-09-03 Compaq Computer Corporation Method and apparatus for controlling data communication flow in a fault-tolerant multiprocessor system
FR2759796B1 (fr) * 1997-02-19 2001-12-07 Bull Sa Dispositif et procede de detection d'erreurs sur un circuit integre comportant un port parallele serie
US6259693B1 (en) * 1997-08-28 2001-07-10 Ascend Communications, Inc. Cell combination to utilize available switch bandwidth
US6728210B1 (en) 1998-12-21 2004-04-27 Nec America, Inc. Multi-logical access for a serial data link
US7099318B2 (en) * 2001-12-28 2006-08-29 Intel Corporation Communicating message request transaction types between agents in a computer system using multiple message groups
KR20040083617A (ko) * 2003-03-24 2004-10-06 삼성전자주식회사 향상된 역방향 전용전송채널을 서비스하는 비동기 방식의부호분할다중접속 이동통신시스템에서 소프트 핸드오버영역에 위치하는 이동단말이 역방향 데이터를 재전송하는방법 및 시스템
JP3826940B2 (ja) * 2004-06-02 2006-09-27 日本電気株式会社 障害復旧装置および障害復旧方法、マネージャ装置並びにプログラム
EP1810534B1 (en) * 2004-10-12 2015-06-17 Telefonaktiebolaget LM Ericsson (publ) Communication between a radio equipment control node and multiple remote radio equipment nodes
US7543179B2 (en) 2005-03-21 2009-06-02 Intel Corporation Error management topologies
US20060271718A1 (en) 2005-05-27 2006-11-30 Diplacido Bruno Jr Method of preventing error propagation in a PCI / PCI-X / PCI express link
KR100692813B1 (ko) 2005-06-28 2007-03-14 엘지전자 주식회사 액정 표시 장치의 구동 장치 및 그의 구동 방법
CN100531183C (zh) * 2005-07-08 2009-08-19 华为技术有限公司 一种均衡复数条并行的串行反串行链路数据的方法
US20070240018A1 (en) * 2005-12-29 2007-10-11 Intel Corporation Functional level reset on a per device/function basis
US7694204B2 (en) * 2006-03-09 2010-04-06 Silicon Image, Inc. Error detection in physical interfaces for point-to-point communications between integrated circuits
US7836328B1 (en) * 2006-05-04 2010-11-16 Oracle America, Inc. Method and apparatus for recovering from system bus transaction errors
JP2008015856A (ja) * 2006-07-07 2008-01-24 Seiko Epson Corp データ転送制御装置及び電子機器
US7594144B2 (en) * 2006-08-14 2009-09-22 International Business Machines Corporation Handling fatal computer hardware errors
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US7620854B2 (en) * 2007-01-30 2009-11-17 Hewlett-Packard Development Company, L.P. Method and system for handling input/output (I/O) errors
US8010860B2 (en) 2007-10-22 2011-08-30 International Business Machines Corporation Method and architecture to prevent corrupt data propagation from a PCI express retry buffer
JP2012010020A (ja) * 2010-06-23 2012-01-12 Fujitsu Telecom Networks Ltd リンクダウン転送方法
US8782461B2 (en) 2010-09-24 2014-07-15 Intel Corporation Method and system of live error recovery
JP5532143B2 (ja) * 2010-11-12 2014-06-25 富士通株式会社 エラー箇所特定方法、エラー箇所特定装置およびエラー箇所特定プログラム
US8365046B2 (en) 2010-11-23 2013-01-29 Lsi Corporation Method and apparatus for non-uniform redundancy packet error correction
US9577788B2 (en) * 2011-06-15 2017-02-21 Denso Corporation Coding apparatus, coding method, data communication apparatus, and data communication method
US9086965B2 (en) * 2011-12-15 2015-07-21 International Business Machines Corporation PCI express error handling and recovery action controls
US8964791B2 (en) * 2012-10-11 2015-02-24 Freescale Semiconductor, Inc. Method and system for low power transmission and data alignment
US9262270B2 (en) 2012-12-28 2016-02-16 Intel Corporation Live error recovery

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939735A (en) * 1988-07-21 1990-07-03 International Business Machines Corporation Information handling system having serial channel to control unit link
US5218680A (en) * 1990-03-15 1993-06-08 International Business Machines Corporation Data link controller with autonomous in tandem pipeline circuit elements relative to network channels for transferring multitasking data in cyclically recurrent time slots
US5958064A (en) * 1992-06-20 1999-09-28 International Business Machines Corporation Multiple node dual level error recovery system and method
CN1510964A (zh) * 1998-08-27 2004-07-07 ض� 计算机网络中输入/输出链路重试、故障及恢复方法和设备
GB0723929D0 (en) * 2007-12-06 2008-01-16 Advanced Risc Mach Ltd Recovering from errors in streaming DSP applications
CN101841838A (zh) * 2009-03-20 2010-09-22 中兴通讯股份有限公司 逻辑链路告警的处理方法和装置
CN101605283A (zh) * 2009-06-29 2009-12-16 中兴通讯股份有限公司 Wson中节点资源状态的恢复方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
实时系统自检测与出错处理技术研究与实现;田青;《中国优秀博硕士学位论文全文数据库(硕士)》;20051115(第07期);I138-430 *

Also Published As

Publication number Publication date
US20140189427A1 (en) 2014-07-03
TWI516915B (zh) 2016-01-11
US20160335148A1 (en) 2016-11-17
WO2014105768A1 (en) 2014-07-03
US20180225167A1 (en) 2018-08-09
KR20150079883A (ko) 2015-07-08
TW201439749A (zh) 2014-10-16
TW201629769A (zh) 2016-08-16
KR101702292B1 (ko) 2017-02-06
CN104823167A (zh) 2015-08-05
EP2939116A4 (en) 2016-08-17
US10691520B2 (en) 2020-06-23
EP2939116A1 (en) 2015-11-04
CN104823167B (zh) 2018-11-16
CN109614256A (zh) 2019-04-12
TWI592797B (zh) 2017-07-21
US9262270B2 (en) 2016-02-16
US10019300B2 (en) 2018-07-10

Similar Documents

Publication Publication Date Title
CN109614256B (zh) 现场错误恢复
US11283466B2 (en) PCI express enhancements
US10139889B2 (en) Method, apparatus, and system for improving resume times for root ports and root port integrated endpoints
US11663154B2 (en) Virtualized link states of multiple protocol layer package interconnects
WO2017165056A1 (en) In-band retimer register access
CN107078850B (zh) 边带奇偶校验处理
US11874724B2 (en) Mechanism of enabling fault handling with PCIE re-timer
US10817454B2 (en) Dynamic lane access switching between PCIe root spaces
US20230281080A1 (en) Correctable error tracking and link recovery
JP2019192287A (ja) 装置、方法、プログラム、システム、およびコンピュータ可読ストレージ媒体
JP2018049658A (ja) 装置、方法、およびシステム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant