CN115039085A - 用于高速缓存和存储器相干系统中的自愈的选择性端点隔离 - Google Patents

用于高速缓存和存储器相干系统中的自愈的选择性端点隔离 Download PDF

Info

Publication number
CN115039085A
CN115039085A CN202080095343.4A CN202080095343A CN115039085A CN 115039085 A CN115039085 A CN 115039085A CN 202080095343 A CN202080095343 A CN 202080095343A CN 115039085 A CN115039085 A CN 115039085A
Authority
CN
China
Prior art keywords
memory
cache
processing
processing chips
coherent
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.)
Pending
Application number
CN202080095343.4A
Other languages
English (en)
Inventor
P·V·利亚
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN115039085A publication Critical patent/CN115039085A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0721Error 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 within a central processing unit [CPU]
    • G06F11/0724Error 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 within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • 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/0751Error or fault detection not based on redundancy
    • 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/1417Boot up procedures
    • 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/142Reconfiguring to eliminate the error
    • G06F11/1423Reconfiguring to eliminate the error by reconfiguration of paths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种高速缓存和存储器相干系统包括多个处理芯片,每一个处理芯片托管共享存储器空间的不同子集以及一个或多个路由表,该一个或多个路由表定义该共享存储器空间的逻辑地址与各自对应于该多个处理芯片中的一个所选处理芯片的端点之间的存取路由。该系统进一步包括将该多个处理芯片中的每一对处理芯片物理地耦合在一起的相干网格结构,该相干网格结构被配置成执行用于响应于对该多个处理芯片中的托管故障硬件组件的第一处理芯片的标识而更新该一个或多个路由表的路由逻辑,对路由表的更新有效地移除具有对应于该第一处理芯片的端点的所有存取路由。

Description

用于高速缓存和存储器相干系统中的自愈的选择性端点隔离
背景技术
随着对基于云的存储和计算服务的需求快速增长,对可以在现有数据中心快速扩展(scale)硬件的技术的需求也在增长。传统上,硬件扩展是通过增加资源来“扩大规模”来实现的,例如通过向数据中心增加功率或容量。然而,最近的解决方案以“外向扩展”或“横向扩展”的方式为目标,以支持更高的性能水平、吞吐量和冗余以用于高级容错,而不增加成本和/或硬件总量(例如,不增加服务器、驱动器等的数量)。启用这种水平扩展的架构有时被称为“超大规模”。
发明内容
根据一个实现,一种高速缓存和存储器相干系统包括各自托管共享存储器空间的不同子集的多个处理芯片。一个或多个路由表定义该共享存储器空间的逻辑地址与各自对应于该多个处理芯片中的一个所选处理芯片的端点之间的存取路由。相干网格结构将该多个处理芯片中的每一者物理地耦合在一起并被配置成执行用于响应于对由该系统中的第一处理芯片托管的故障硬件组件的标识而更新(诸)路由表的路由逻辑。对路由表的更新有效地从(诸)路由表中移除具有对应于托管该故障硬件组件的第一处理芯片的端点的所有存取路由。
提供本公开内容以便以简化的形式介绍以下在具体实施方式中还描述的概念的选集。本公开内容并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
本文还描述和列举了其他实现。
附图说明
图1A示出了示例相干CPU系统,该系统实现用于在检测到故障硬件组件后选择性地隔离该系统的一区域的自愈逻辑。
图1B示出了更新图1A的CPU相干系统中的一个或多个路由表以选择性地隔离该系统的一区域的效果。
图2A示出了另一示例相干CPU系统,该系统实现用于在检测到故障硬件组件后选择性地隔离该系统的一区域的自愈逻辑。
图2B示出了更新图1A的CPU相干系统中的一个或多个路由表以选择性地隔离该系统的一区域的效果。
图3示出了相干CPU系统的示例性架构,该系统实现用于在检测到硬件组件故障后选择性地隔离一系统端点的自愈逻辑。
图4示出了用于在高速缓存和存储器相干多芯片系统内实现自愈逻辑的示例操作。
图5解说了适于实现所公开技术的各方面的处理设备的示例示意图。
具体实施方式
允许处理器之间的存储器、高速缓存和/或I/O相干性的超大规模架构作为增加可由现有硬件支持的用户数量的一种方式并且作为次级效果对存储去重(并由此降低数据成本)正受到欢迎。多处理器系统在其多个CPU共享单个存储器空间以使得在任何CPU处都能对任何存储器位置进行数据读写时被称为是“相干的”或具有相干CPU架构。相干CPU架构依赖于高速缓存和存储器这两者的相干性(例如,该系统的每一个处理器知晓数据的最新近版本在哪里,即使该数据在由另一处理器托管的本地高速缓存内)。
在相干CPU架构中,问题可能在共享硬件组件故障时引发并且在事实上被放大。例如,如果多个处理器被配置成从同一存储器组件读写数据,则可能在该存储器组件故障时导致全系统挂起。同样,单个处理组件或共享总线上的故障可具有类似后果,最终扰乱更多用户和/或挂起比原本出现在传统(非相干)CPU架构中更多的系统进程。
尽管某些相干系统包括启用对硬件健康的自监视以便更快地检测到潜在硬件故障问题的模块,但这些系统仅仅生成关于所推荐的替换和修复的通知。在硬件故障与组件维修和/或替换之间的时间中,整个CPU相干系统(例如,具有各自支持不同进程和/或用户的多个片上系统(SoC)的服务器)可能变得无法运作。
本文所公开的技术允许这些相干CPU系统通过响应于检测到并标识(诸)故障(例如,失灵、失败、或失效)硬件组件的相对位置而在逻辑上隔离该系统的包括(诸)故障组件的部分来至少部分地“自愈”。在一个实现中,对故障硬件的这种隔离允许存储器和高速缓存相干系统中的CPU的其余健康子集继续按标称运作,诸如通过继续服务用户请求并执行进程,只要这些请求和进程不需要存取该系统的隔离部分内的资源。在许多情形中,该隔离允许该系统在其标称“健康”水平的高百分比下执行,诸如通过继续支持连接到相干CPU系统(例如,服务器)的用户的重大子集(例如,50%、75%或更多)和/或通过继续按标称操作总处理和存储资源的一大部分(例如,50%、75%或更多)。
图1A示出了示例CPU相干系统100,该系统实现用于在检测到故障硬件组件后选择性地隔离该系统的一区域的自愈逻辑。CPU相干系统100包括通过相干网格结构130耦合在一起的多个处理芯片。相干网格结构130一般可被理解为涵盖允许每一个处理芯片共同作为存储器相干和高速缓存相干系统操作以使得该系统中的所有处理实体能对任何存储器位置进行数据读写并知晓该系统中存储的任何数据的最新近版本的位置(即使该数据驻留在由不同处理芯片托管的本地高速缓存中)的物理互连和逻辑架构。
示例CPU相干系统100包括四个处理芯片,标注为IC_1、IC_2、IC_3和IC_4。这些不同处理芯片中的每一者托管存储器(例如,存储器108、110、112和114)并且包括至少一个CPU(例如,CPU 104、116、118和120)。在一个实现中,处理芯片(IC_1、IC_2、IC_3和IC_4)中的每一者是包括多个处理器的片上系统(SoC),该多个处理器包括例如一个或多个CPU以及一个或多个图形处理单元(GPU)。如此处所使用的,处理芯片在以下情况下被称为“托管”存储器:它物理地包括该存储器或者直接耦合到该存储器以使得路由到该存储器的数据不跨托管该存储器的处理芯片与该存储器自身之间的任何其他处理芯片流动。
在图1A中,在一个实现中,四个不同处理芯片耦合到同一印刷电路板组件(PCBA),诸如以便共同作为同一服务器(例如,有时被称为“刀片”的刀片服务器)的一部分操作。在其他实现中,这些处理芯片中的一者或多者在不同的PCBA上,但仍物理地接近存储器和高速缓存相干系统中的其余处理芯片以允许极快的芯片到芯片易失性存储器存取(对于CPU相干系统的操作是关键的特性)。例如,处理芯片可以在集成在同一服务器内或同一数据存储中心中的物理地接近的两个或更多个服务器内的不同PCBA上。
由每一个处理芯片托管的存储器108、110、112和114可被理解为包括至少易失性存储器并且在许多实现中包括易失性和非易失性存储器。在一个实现中,处理芯片(IC_1、IC_2、IC_3和IC_4)中的每一者托管共同映射到同一逻辑地址空间的系统存储器的不同子集。例如,由各个处理芯片托管的非易失性存储器空间可被映射到由主机在对CPU相干系统100读写数据时使用的逻辑地址范围。在一个实现中,主机寻址方案的每一个逻辑地址被映射到该系统中的仅仅单个非易失性存储器位置(例如,由这四个处理芯片中的单个处理芯片托管的位置)。例如,如果主机的逻辑地址范围由字母数字序列A-Z表示,每一个不同的处理芯片可托管该序列的不同子集(例如,IC_1可托管A-G,而IC_2托管H-N,IC_3托管O-T,并且IC_4托管U-Z)。另外,每一个处理芯片的存储器可包括易失性存储器以及一个或多个本地高速缓存,在本地高速缓存中数据有时可被本地地更新,而不立即更新对应的非易失性存储器位置。
该系统的相干网格结构130提供了允许这四个处理芯片中的每一者通过以下操作来共同作为高速缓存、存储器和I/O相干系统操作的物理和逻辑基础结构:(1)提供该系统中的处理芯片和每一个存储器资源之间的直接数据链路,(2)提供相干方案,该相干方案允许由任一个处理芯片托管的存储器和资源被相干网格结构130的图上的任何地方的任何处理器存取和使用(例如,对其进行读写)。
在物理方面,相干网格结构130可被理解为包括硅级数据总线(例如,物理互连132),该硅级数据总线提供CPU相干系统中的每一个处理芯片和每一个其他处理芯片之间的直接路径。另外,相干网格结构130包括路由逻辑以及用于执行这一逻辑的路由控制电子设备。路由逻辑和路由控制电子设备在图1中由路由引擎122来共同表示。尽管路由引擎122被示为在中央(为了概念简明起见),但应理解,该路由引擎所采用的逻辑和硬件资源实际上可分布在各个处理芯片之间,如参照图2A和2B示出的。
在不同实现中,物理互连132可采取各种不同形式。在一个实现中,物理互连132是提供该系统中的不同的每一对处理芯片之间的物理数据链路的外围组件互连快速(PCIe)物理接口。例如,相干网格结构130可以是使用PCIe接口标准或其他接口标准(例如,串行ATA(SATA)、USB、串行连接SCSI(SAS)、火线、加速图形端口(AGP)、外围组件互连(PCI))的存储器互连以促成CPU相干系统100中的每一对处理芯片之间的快速且直接通信。
路由引擎122经由相干网格结构130实现相干方案,该相干方案允许耦合到该相干网格结构130的每一个处理实体知晓所有系统数据的最新近版本。尽管所利用的确切相干方案可以因实现而异,但路由引擎122至少部分地通过管理并动态地更新一个或多个系统路由表来实现该方案。作为示例而非限制,路由引擎126的放大视图136示出了两个不同时间点t1和t2处的示例路由表134以例示用以隔离该系统的一部分的动态更新,下文中更详细地讨论。
路由表134提供了该系统中的各逻辑地址与物理“端点”之间的映射,其中每一个物理端点标识不同处理芯片中的存储对应于该逻辑地址的数据的最新近版本的一个所选处理芯片。在一个实现中,路由引擎122相对于每一个处理芯片管理路由表。在此情形中,用于每一个不同处理芯片的路由表134可只列出不由该芯片托管的逻辑地址。例如,用于处理芯片“IC_3”的路由表可列出对应于由IC_1、IC_2和IC_4托管的数据存储位置的逻辑地址。在另一些实现中,每一个处理芯片的路由表提供了该系统的存储器空间中的每一个逻辑地址与每一个对应端点(例如,托管存储相关联的数据的存储器的处理芯片)之间的完整映射。
当该系统中的任一个处理芯片接收到读取或写入数据的主机请求时,该处理芯片的路由引擎确定用于存储该数据的端点位置。例如,如果IC_3接收到要读取在逻辑地址“ABC”处的数据的请求,则路由引擎122咨询适当的路由表(例如,路由表134)并确定该数据的最新近版本被存储在由IC_4托管的存储器内。在该示例中,逻辑地址“ABC”的数据可被存储在由IC_4托管的非易失性存储器上,或者改为存储在IC_4上的易失性存储器内,诸如由IC_4托管的本地高速缓存中。路由引擎122沿着物理互连132的适当数据链路将读控制信号定向至IC_4并采用本地地存储在接收方芯片上的逻辑来将该读控制信号进一步定向至适当的物理存储位置,无论该位置是在易失性存储器(例如,高速缓存)中还是在非易失性存储器中。
在CPU相干系统100中实现的相干方案的一个结果是出现在该系统内任何地方的硬件失效都有可能使整个CPU相干系统100崩溃。例如,如果DRAM组件在芯片IC_2的存储器110中失效,则每一个处理芯片上的处理组件可响应于接收到并尝试处理针对失效的DRAM组件的下一读或写命令而冻结(例如,无限挂起)。这可导致系统级失效,这表现在所有四个处理芯片可一次冻结一个,直到整个CPU相干系统100被挂起并且需要重启。
尽管存在其中存储器失效(例如,DRAM)可以在重启之际通过仅仅将先前加载到失效DRAM中的数据重新映射到备用易失性存储器来解决的场景,但存在以下场景:由于例如存储器约束(例如,缺少足够的备用存储器和/或存储器硬件组件的不可交换特质)或其他原因而不可能仅仅为了排除特定物理存储器组件而重新映射逻辑存储器空间。例如,某些系统在启动时需要到DRAM双列直插式存储器模块(DIMM)的存储器映射,而其他系统需要到多个表面安装的存储器通道(例如,焊接到板的DRAM)的存储器映射和/或到整合形成为处理芯片的一部分的高带宽存储器(HBM存储器)的映射。当这些类型的组件失效时,存储器重新映射可能不是可行的选项。
在另一些场景中,硬件失效影响包括硅芯片的各部分以及总线的非存储器芯片组件。例如,焊点失效或风扇失效可能会对处理器造成热损坏。在这些场景中,对托管失效组件的子系统的合适隔离(如下所述)可允许该系统继续按标称运作。
在图1中,CPU相干系统100包括板管理控制器138,其持续监视系统事件数据和健康指示符以将可能关于硬件组件故障和失效的信息记录在错误日志140中。例如,板管理控制器138可尝试周期性地(例如,每10ms)轮询每一个处理芯片并且在任一个处理芯片变得不响应时立即记录加时间戳的事件。
当部分或系统级失效由于已失效或正失效的硬件组件而发生时,板管理控制器138可重启整个系统并且在重启之际分析错误日志140以确定导致系统级失效的故障(例如,已失效、正失效、或失灵)组件的最有可能的位置。在其中故障硬件组件是IC_2的存储器110中的DRAM的示例中,板管理控制器138分析错误日志140以确定IC_2是与失效组件相关联的端点。
错误日志140可用作生成向系统管理员告知特定芯片或服务器需要被修复或替换的通知的基础。在缺少相干网格结构130的系统中,整个CPU相干系统可能在检测到故障组件后保持脱机(不运作),直到系统管理员实际上能够执行必要的维护以修复或替换故障组件为止。然而,在当前公开的系统中,相干网格结构130包括用于选择性地隔离作为已失效或正失效的硬件组件的主机的端点(例如,处理芯片)的逻辑。故障硬件组件的该主机端点以下被称为“失效端点”。
在一个实现中,对失效端点的隔离通过选择性地更新所有系统路由表(例如,路由表134)以移除被定向至由失效端点托管的物理位置的所有存取路由来实现。例如,如果DRAM组件在IC_2的存储器110中失效,则板管理控制器138可以在重启之际分析错误日志140以将IC_2标识为失效端点。板管理控制器138然后可指令相干网格结构130更新其他处理芯片(例如,IC_1、IC_2和IC_4)中的每一者的路由表以移除具有对应于失效端点的端点的所有存取路由。
在图1A的基本示例中,对该系统中的路由表的更新由时间t1和t2之间的相对于路由表134的所示变化来例示。在时间t1,路由表134包括由任一处理芯片端点托管的所有逻辑地址。在时间t1和t2之间,路由引擎126接收到并执行来自板管理控制器138的导致与失效端点相关联的所有地址被移除的指令。这可以例如使得系统中的其余处理芯片(例如,IC_1、IC_3和IC_4)中的每一者无法服务具有被映射到失效端点的存取路由的地址。到失效端点的所有存取路由的移除允许其余端点继续按标称操作并服务不直接取决于失效端点的请求。换言之,失效端点被脱机并且其余端点不无限地挂起,因为它们不再具有处理对失效端点的请求的能力。
图1B示出了通过更新一个或多个路由表来隔离CPU相干系统100中的失效端点(例如,IC_2)(如上所述)的实际效果。尽管相干网格结构130的物理结构不变,但失效端点在逻辑上被隔离以使得该系统中的其他端点(例如,IC_1、IC_3和IC_4)不再能够“看见”失效端点。该系统中的所有路由表都已被更新以辑除对由失效端点托管的逻辑地址的引用。在这些被辑除逻辑地址从该系统的路由表中缺失的时段内,其余端点保持活跃并按标称执行,而不管该系统可能不会立即(或者在一时段或数小时、数天或更多时间内)重新加载与被辑除地址相关联的数据的事实。例如,CPU相干系统100可能不会立即(或未曾)用新路由来替换被辑除路由以替代存储与被辑除地址相关联的数据的物理位置。
值得注意的是,逻辑地址到物理存储器空间的系统映射可通过上述对物理路由表的更新来保持不变。即,尽管更新路由表(例如,提供芯片间存储器存取的表)以移除映射到失效端点的路由子集,但在各个处理芯片上维护的实际逻辑到物理块映射保持不变。
在任何其余活跃端点接收到对先前与失效端点(例如,IC_2)相关联的地址的读或写请求的情况下,处理该读/写请求的路由引擎可返回“未找到地址”指示符。在一些实现中,该系统可以在这一时间发起用于定位先前被存储在该失效端点的数据的应急协议(contingency protocol)。例如,该系统可使用地址本身或读/写命令中的其他信息来定位与该地址相关联的数据的备份副本并且在一些场景中将来自备份位置的数据加载到具有存储器108、112或114的可用位置。然而,除了失效端点以外的所有系统端点在失效端点被隔离之后并且在与该失效端点相关联的数据在该系统上的他处被从冗余(备份)存储位置还原之前的时间段期间继续按标称执行。
图2A示出了另一示例CPU相干系统200,该系统实现用于在检测到故障硬件组件后选择性地隔离该系统的一区域的自愈逻辑。CPU相干系统200包括服务器刀片202,其包括多个SoC 204、206、208和210。SoC 204、206、208和210中的每一者都托管存储器,包括诸如RAM或DRAM之类的易失性存储器(例如,VMem 212)和诸如一个或多个硬盘驱动器组件(HDA)、固态驱动器(SSD)等之类的非易失性存储器(例如,非易失性存储库214)。另外,每个SoC可以包括多个单独处理器(CPU和GPU),这些处理器彼此并且与服务器刀片202中的所有其他处理实体是高速缓存和存储器相干的,这些处理器通过相干网格结构230相互耦合,该相干网格结构230包括系统中的每一对SoC与其相关联的资源之间的物理链路以及相干逻辑和用于执行这一逻辑的硬件(例如,路由引擎222、224、226和228)以将请求路由到系统中的不同端点。
尽管图1A-1B和2A这两者的示例包括示例性CPU相干系统100和200中的四个处理芯片,但应理解此处公开的技术可适用于具有任何数量的互连芯片(在同一PCBA上或者在物理上接近(例如,数据中心中的同一个架子或机架)的不同PCBA上)的存储器和高速缓存相干系统。
作为示例而非限制,服务器刀片202被示为游戏服务器。不同的SoC 204、206、208和210中的每一者充当相关联的在线游戏玩家组(例如,分别为用户组216、218、220或222)的主机。在该示例中,服务器刀片202将多个游戏存储在各个非易失性存储器存储介质中的非冗余位置。例如,SoC 204可以存储游戏,例如
Figure BDA0003775884950000091
Candy
Figure BDA0003775884950000092
和Words With
Figure BDA0003775884950000093
而SoC 206存储其他游戏,例如
Figure BDA0003775884950000094
Call of
Figure BDA0003775884950000095
和Grand Theft
Figure BDA0003775884950000096
等。这些游戏中的每一者都可被存储在系统内的单个非易失性存储器位置。由于CPU相干系统200的存储器和高速缓存相干架构,SoC 204、206、208和210中的每一者都能够将存储在该系统的非易失性存储器中的任何游戏加载到本地易失性存储器,从而允许所有的不同用户组216、218、220和222玩游戏,而不管哪个非易失性驱动器永久存储游戏。例如,
Figure BDA0003775884950000097
实际上可以存储在非易失性存储库214的SSD中,但是只要用户组222中的一个用户请求加载游戏的新实例时就被加载到由SoC 210托管的易失性存储器(例如,DRAM)中。
相干网格结构230包括由物理互连232组成的数据总线,该物理互连在一个实现中是提供各个SoC之间以及每一个SoC与系统中的每一个数据存储资源之间的数据链路的PCIe物理接口。例如,物理互连232给予SoC 204对由SoC 206、SoC 208和SoC 210托管的存储器的直接存取,以使得SoC 204可以读取或更新在任何系统存储器位置处的数据,而不必要求相关联的端点处的处理器采取任何动作。
除了物理互连232之外,相干网格结构230还包括图2A中被表示为路由引擎234、236、238和240的路由逻辑和处理硬件。在一个实现中,相干网格结构304是具有控制电子设备的存储器互连,这些控制电子设备使用PCIe接口标准来促成CPU相干系统300中的每一对处理芯片之间的快速且直接通信。
服务器刀片202包括板管理控制器242,其监视系统中的各种组件的健康和性能并创建记录指示潜在硬件失灵的动作的日志文件(未示出)。例如,板管理控制器242可以持续记录与总线(例如,物理互连232和路由引擎234、236、238和240)、所有系统存储器组件和所有系统处理组件(例如,每个系统CPU、GPU)的功能相关的信息。在检测到给定端点(例如,“失效端点244”,包括SoC 206和由SoC 206托管的所有存储器和硬件)处的任何潜在硬件组件失灵之际,板管理控制器242更新日志文件以指示可能故障的硬件组件的物理位置。
在所示示例中,由SoC 206托管的易失性存储器组件246经历突然失效。该失效可能以不同方式影响系统,这取决于失效驱动器正被用于在该系统中做什么。例如,如果易失性存储器组件246存储游戏
Figure BDA0003775884950000101
的活跃副本,则其他系统端点(例如,SoC 204、SoC208和SoC 210)可能在下一次尝试存取该游戏时经历挂起(系统冻结)。
在一个实现中,板管理控制器242响应于检测到潜在硬件失效而发起服务器刀片202的重启。在重启之际,板管理控制器242分析日志数据并基于该分析来确定失效组件由SoC 206托管。响应于对托管失效组件的端点的标识,板管理控制器242指令相干网格结构230(例如,路由引擎234、236、238和240)更新其相应路由表以移除与对应于托管该失效组件的SoC的端点的所有存取路由。
在另一实现中,对日志文件的分析以及动态重路由是在整个系统不脱机的情况下执行的。例如,板管理控制器242可以在其主机SoC(206)由于硬件失效而经历可被检测到的错误时立即检测到失效的易失性存储器组件246。在该时间点,板管理控制器可动态地(例如,在不重启CPU相干系统200的情况下)指令相干网格结构230更新所有系统路由表以移除与对应于失效端点244的端点的存取路由。
图2B示出了更新图1A的CPU相干系统中的一个或多个路由表以选择性地隔离托管故障硬件组件的SoC之一的实际效果。在所示示例中,路由引擎234、238和240已经从其相应路由表中辑除具有被映射到由失效端点244托管的物理存储位置的端点的所有路由。在一个实现中,这些存取路由被从路由表中完全擦除,而不实现在硬件失效时到由失效存储器组件246托管的数据的替代路由。由于该路由擦除,相干网格结构232不再能够确定该数据的最新版本被存储在何处。由于相干网格结构232的路由表不再包括被映射到失效端点244的路由,因此由SoC 204、SoC 208和SoC 210托管的其余活跃处理实体在硬件失效时再也没有办法将对通过路由表路由的逻辑地址的读或写请求定向至失效端点244。这允许其余SoC204、SoC 208和SoC 210继续以受限或近乎标称容量操作直到失效的易失性存储器组件246能被替换时。
值得注意的是,对失效端点244的隔离可使得系统数据的重大部分暂时对连接到其他系统端点的用户不可用。在一些实现中,服务器刀片202被配置成自启动用于在需要时将先前由失效端点244托管的数据重新加载到替代系统存储位置的应急操作。例如,在下一次SoC 204接收到加入游戏
Figure BDA0003775884950000111
的新实例的请求时,SoC 204可确定该游戏无法在服务器刀片202上被找到并且开始在其他网络位置搜索该数据的备份副本。当该游戏的冗余副本被定位(例如,在其他服务器、备份数据库等上)时,该游戏然后被加载到仍然活跃的端点之一的非易失性存储器中,在该非易失性存储器中该游戏可由所有其余活跃SoC存取。
当驱动器246最初失效时,该突然失效可具有中断连接到SoC 206的用户组218中的所有用户的连接的后果。例如,用户组218中的用户可被临时从服务器刀片202断开并且在尝试重新建立连接之际被添加至由一个不同的系统端点托管的用户组216、220和222之一。或者,用户可以在重新连接之际通过提供相同的游戏服务的完全不同的服务器刀片来连接到游戏系统。
应理解,游戏服务旨在表示用于此处公开的技术的许多不同的可能用例中的仅仅一个。例如,可以针对向云服务提供商提供数据存储和计算资源的云计算服务提供商来实现类似的应用。例如,与服务器刀片202类似的数千到数百万个服务器刀片可以存在于数据服务器中心中以支持非游戏工作负载。在这一系统中,每一个服务器可包括分布在彼此共享存储器和高速缓存资源的不同芯片上的多个处理器核。隔离托管故障组件的端点的能力准许其他端点上的处理核保持活跃并继续执行标称工作负载直到故障组件可被服务或替换时。
同样,上述隔离技术也可用于将多个SoC耦合在一起以创建虚拟机的系统中。例如,存在以下场景:多个SoC被配置成将资源池化在一起以增加以某种方式对(诸)终端用户可用的处理和计算能力。在一个实现中,通过将两个不同SoC上的GPU处理能力池化在一起来创建虚拟机,从而将80核GPU有效地转换成160核GPU。如果虚拟机的两个SoC之一经历硬件失效,则另一个SoC可继续尝试使用失效芯片上的资源。在该示例中,相干网格结构230可将路由表重新配置成移除具有被映射到失效芯片的逻辑地址的存取路由,从而将该虚拟机的有效计算能力从160核降回到80核,但仍允许活跃的80核执行标称计算操作。
图3示出了CPU相干系统300的示例性架构,该系统实现用于在检测到硬件组件失效后选择性地隔离系统端点的自愈逻辑。视图A示出了具有通过相干网格结构304互连的四个不同SoC 306、308、310和312的服务器刀片302。视图B示出了SoC 310的放大视图。可以理解,其他SoC 306、310和312具有相同或相似架构。
SoC 308在视图B中被示为包括各自具有8个处理核的四个CPU 320、322、324和326。在一个示例实现中,这四个不同CPU中的多个CPU被配置成池化资源以向终端用户提供虚拟机体验。除了多个不同CPU以外,SoC 310包括图形处理单元GPU 328以及硬件和软件(例如,各种驱动程序)以及编码器、解码器、I/O组件和总线(由功能框330表示)。
SoC 310另外包括用于到DRAM(例如,DRAM 314、316)的可选耦合的多个连接。另外,SoC 310包括由视图A中的相干网格结构304表示的硬件和可执行逻辑中的某一些。由于相干网格结构304并非整体物理地驻留在SoC 310上,因此视图B引用相干网格结构304a,这将被理解为引用相干网格结构304的子集。相干网格结构304a包括到其他SoC(例如,SoC306、308和312)中的每一者上的存储器和处理资源的物理数据链路。另外,相干网格结构304a包括根据系统级相干方案来在本地管理路由表334的路由引擎332。路由引擎332动态更新路由表334中的存取路由,使得路由表334将系统中的每个逻辑地址映射到存储相关联的数据的最新版本的物理端点(例如,SoC 306、308、310或312),无论该数据是驻留在易失性存储器还是非易失性存储器中。在本文中未显式地描述的路由表334的各方面可以与以上参照图1的路由表134描述的那些方面相同或相似。
在一个实现中,相干网格结构304是1.2到1.8GHz通信总线,其使用PCIe接口链路来提供CPU相干系统300中的每一对端点的资源之间的连接。例如,相干网格结构304可以是结合每一个端点处的控制器以管理跨总线的物理链路的数据流的总线。在其他实现中,相干网格结构304可采取其他物理形式,包括例如使用PCIe或其他接口标准来提供系统端点之间的直接通信的任何硅总线。
图4示出了用于在高速缓存和存储器相干多芯片系统内实现自愈逻辑的示例操作400。根据一个实现,一种高速缓存和存储器相干系统包括各自托管共享存储器空间的不同子集的多个处理芯片。监视操作402监视高速缓存和存储器相干系统中的各种组件的健康并用可能指示硬件失效的事件信息来填充日志文件。例如,监视操作402可包括向多个不同处理组件发送测试信号并记录加时间戳的响应信息。确定操作404确定是否以及何时发生满足预定义应急准则的系统事件。预定义应急准则可以在例如系统事件是指示CPU崩溃、系统挂起等的非响应性CPU或其他事件时被满足。
直到检测到的系统事件满足应急准则时,监视操作402继续监视系统并填充日志文件。当确定操作404事实上确定检测到的事件满足应急准则时,解析操作406解析日志文件以标识导致该系统事件的故障硬件组件。在一些实现中,系统可被重启并且日志文件响应于该重启而被解析。解析操作406标识系统中的多个处理芯片中作为导致该系统事件的故障硬件组件的主机的所选处理芯片。
响应于对作为故障硬件组件的主机的所选处理芯片的标识,路由表更新操作408更新整个高速缓存和存储器相干系统中的路由表以辑除(例如,删除)由这些表定义的具有对应于托管故障硬件组件的所选处理芯片的端点的所有存取路由。例如,该系统的逻辑块地址空间的子集可被临时从该系统中擦除,这表现在这些逻辑地址停止对应于所定义的任何物理存储位置。从系统路由表中辑除这些逻辑地址允许其余处理芯片(例如,排除所选芯片)继续按标称运作,同时所选处理芯片保持被隔离(例如,针对系统路由操作对其他处理芯片不可见)。
图5解说了适于实现所公开技术的各方面的处理设备500的示例示意图。处理设备500可以例如表示与高速缓存和存储器相干系统对接的用户设备或者改为表示包括作为高速缓存和存储器相干系统操作的多个处理芯片的设备。处理设备包括一个或多个处理器单元502、(诸)存储器设备504、显示器506以及其他接口608(例如,按钮)。(诸)处理器单元502可各自包括一个或多个CPU、GPU等。
存储器504一般包括易失性存储器(例如,RAM)和非易失性存储器(例如,闪存存储器)两者。操作系统510(诸如Microsoft
Figure BDA0003775884950000141
操作系统、Microsoft
Figure BDA0003775884950000142
Phone操作系统或设计成用于游戏设备的特定操作系统)可驻留在存储器504中,并且由(诸)处理器单元502来执行,但是应当理解,可以采用其他操作系统。
一个或多个应用512被加载到存储器604中并且由(诸)处理器单元602在操作系统610上执行。应用512可以从诸如话筒534、输入附件535(例如,小键盘、鼠标、触控笔、触摸板、游戏板、方向盘、操纵杆)和相机532(例如,用以为多个对象跟踪器提供场景片段)之类的各种本地输入设备接收输入。此外,应用512可通过使用更多通信收发机530和天线538通过有线或无线网络与一个或多个远程设备(诸如远程定位的智能设备)通信来接收来自此类设备的输入以提供网络连通性(例如,移动电话网络、
Figure BDA0003775884950000143
)。处理设备500还可包括一个或多个存储设备528(例如,非易失性存储)。其他配置也可以被采用。
在处理设备500操作多芯片高速缓存和存储器相干系统的情况下,处理器502可以分布在通过相干网格结构(未示出)互连的不同芯片(例如SoC)上,该相干网格结构包括根据此处参照图1A-1B、2A-2B或3-4中的任一者描述的元件。
处理设备500进一步包括电力供应516,该电力供应由一个或多个电池或其他电源供电并且向处理设备500的其他组件提供电力。电力供应516还可以被连接到外部电源(未示出),该外部电源对内置电池或其他电源进行超驰控制(override)或再充电。
处理设备500可包括各种有形计算机可读存储介质和无形计算机可读通信信号。有形计算机可读存储可由能由处理设备600访问的任何可用介质来体现,并包含易失性和非易失性存储介质、可移动和不可移动存储介质两者。有形计算机可读存储介质不包括无形和瞬态通信信号,而是包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任一方法或技术实现的易失性和非易失性、可移动和不可移动存储介质。有形计算机可读介质包括但不限于,RAM、ROM、EEPROM、闪存存储器或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可被用来储存所需信息且可以由处理设备600访问的任何其他有形介质。与有形计算机可读存储介质对比,无形计算机可读通信信号可用诸如载波或其他信号传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。术语“已调数据信号”意指以在信号中对信息进行编码的方式来使其一个或多个特性被设定或改变的信号。作为示例而非限制,无形通信信号包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、射频、红外线和其他无线介质。
一些实施方式可包括制品。制品可包括用于储存逻辑的有形存储介质(存储器设备)。存储介质的示例可包括能够存储电子数据的一种或多种类型的处理器可读存储介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可包括各种软件元素,诸如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、操作段、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、文字、值、符号、或其任意组合。例如,在一个实现中,制品可储存可执行计算机程序指令,该指令在由计算机执行时致使该计算机执行根据所描述的各实现的方法和/或操作。可执行计算机程序指令可包括任何合适类型的代码,诸如源代码、已编译代码、已解释代码、可执行代码、静态代码、动态代码等。可执行计算机程序指令可以根据用于指令计算机执行特定操作段的预定义计算机语言、方式或句法来被实现。这些指令可以使用任何合适的高级、低级、面向对象、可视、已编译、和/或已解释编程语言来实现。
此处公开的示例高速缓存和存储器相干系统包括多个处理芯片,每一个处理芯片托管共享存储器空间的不同子集以及一个或多个路由表,该一个或多个路由表定义该共享存储器空间的逻辑地址与各自对应于该多个处理芯片中的一个所选处理芯片的端点之间的存取路由。该系统进一步包括将该多个处理芯片中的每一者物理地耦合在一起的相干网格结构。相干网格结构被配置成执行用于响应于检测到故障硬件组件并标识托管该故障硬件组件的第一处理芯片而更新一个或多个路由表的路由逻辑。对该一个或多个路由表的更新有效地移除具有对应于第一处理芯片的端点的所有存取路由。
在根据任何前述系统的示例高速缓存和存储器相干系统中,相干网格结构包括使用外围组件互连快速(PCIe)物理接口的通信总线。在根据任何前述系统的另一示例高速缓存和存储器相干系统中,处理芯片是被布置在同一印刷电路板组件(PCBA)上的片上系统(SoC)。
在任何前述系统的又一高速缓存和存储器相干系统中,该系统包括控制器,该控制器被存储在存储器中并被配置成分析系统日志信息以标识托管故障硬件组件的第一处理芯片。
在任何前述系统的另一示例高速缓存和存储器相干系统中,该高速缓存和存储器相干系统被进一步配置成将这些处理芯片中的两个或更多个处理芯片上的资源池化在一起以向用户提供虚拟机体验。
在根据任何前述系统的又一示例高速缓存和存储器相干系统中,相干网格结构执行用于响应于该高速缓存和存储器相干系统的重启而更新该一个或多个路由表的路由逻辑。
本文公开的示例方法包括分析系统日志信息以标识故障硬件组件在高速缓存和存储器相干系统内的位置,该高速缓存和存储器相干系统包括各自托管共享存储器空间的不同子集的多个处理芯片。该方法进一步提供更新一个或多个路由表以移除将共享存储器空间的逻辑地址映射到与对应于故障硬件组件的位置的第一处理芯片相对应的端点的所有存取路由。
在任何前述方法的又一示例方法中,更新该一个或多个路由表包括移除具有对应于第一处理芯片的端点的存取路由,而不添加去往由被移除存取路由标识的逻辑地址的新存取路由。
在任何前述方法的又一示例方法中,多个处理芯片经由相干网格结构耦合在一起,该相干网格结构包括使用外围组件互连快速(PCIe)物理接口的通信总线。
在任何前述方法的又一示例方法中,处理芯片是被布置在同一印刷电路板组件(PCBA)上的片上系统(SoC)。
在任何前述方法的又一示例方法中,该方法进一步包括生成包括指示由多个处理芯片中的任一者托管的可能故障的硬件组件的系统日志信息的日志文件。
在任何前述方法的又一示例方法中,更新该一个或多个路由表包括更新被存储在该多个处理芯片中的多个不同处理芯片中的每一者上的路由表。
在任何前述方法的又一示例方法中,相干网格结构执行用于响应于高速缓存和存储器相干系统的重启而更新该一个或多个路由表的逻辑。
本文公开的示例有形计算机可读存储介质编码用于执行计算机过程的计算机可执行指令,该计算机过程包括:分析系统日志信息以标识故障硬件组件在高速缓存和存储器相干系统内的位置,该高速缓存和存储器相干系统包括各自托管共享存储器空间的不同子集的多个处理芯片。该方法进一步提供响应于确定故障硬件组件的位置对应于该多个处理芯片中的第一处理芯片而更新一个或多个路由表以移除将共享存储器空间的逻辑地址映射到对应于该第一处理芯片的端点的所有存取路由。
在任何前述存储介质的另一示例有形计算机可读存储介质中,经编码的计算机过程提供更新用于促成经由相干网格结构耦合在一起的多个处理芯片之间的通信的路由表。该相干网格结构包括使用外围组件互连快速(PCIe)物理接口的通信总线。
在任何前述存储介质的又一示例有形计算机可读存储介质中,该路由逻辑促成作为被布置在同一印刷电路板组件(PCBA)上的片上系统(SoC)的处理芯片之间的通信。
在任何前述存储介质的又一示例有形计算机可读存储介质中,更新该一个或多个路由表包括移除具有对应于第一处理芯片的端点的存取路由,而不添加去往由被移除存取路由标识的逻辑地址的新存取路由。
在任何前述存储介质的又一示例有形计算机可读存储介质中,更新该一个或多个路由表包括更新被存储在该多个处理芯片中的多个不同处理芯片中的每一者上的路由表。
在任何前述存储介质的又一示例有形计算机可读存储介质中,用于更新该一个或多个路由表的逻辑是响应于高速缓存和存储器相干系统的重启而执行的。
本文公开的示例系统包括用于分析系统日志信息以标识故障硬件组件在高速缓存和存储器相干系统内的位置的装置,该高速缓存和存储器相干系统包括各自托管共享存储器空间的不同子集的多个处理芯片。该系统进一步包括用于更新一个或多个路由表以移除将共享存储器空间的逻辑地址映射到与对应于故障硬件组件的位置的第一处理芯片相对应的端点的所有存取路由的装置。
本文中所描述的逻辑操作被实现为一个或多个计算机系统中的逻辑步骤。逻辑操作可被实现成:(1)在一个或多个计算机系统中执行的处理器实现的步骤的序列;以及(2)一个或多个计算机系统内的互连机器或电路模块。该实现是取决于被利用的计算机系统的性能要求的选择问题。相应地,组成本文中所描述的各实现的逻辑操作另外还可被称为操作、步骤、对象、或模块。此外,还应该理解,逻辑操作可以以任何顺序来执行,除非明确地声明,或者权利要求语言固有地要求某特定顺序。以上说明、示例和数据连同附图提供了对示例性实现的结构和用途的全面描述。

Claims (15)

1.一种高速缓存和存储器相干系统,包括:
各自托管共享存储器空间的不同子集的多个处理芯片;
一个或多个路由表,所述一个或多个路由表定义所述共享存储器空间的逻辑地址与各自对应于所述多个处理芯片中的一个所选处理芯片的端点之间的存取路由;以及
将所述多个处理芯片中的每一者物理地耦合在一起的相干网格结构,所述相干网格结构被配置成执行用于响应于检测到故障硬件组件并标识所述多个处理芯片中的托管所述故障硬件组件的第一处理芯片而更新所述一个或多个路由表的路由逻辑,对所述一个或多个路由表的所述更新有效地移除具有对应于所述第一处理芯片的端点的所有存取路由。
2.如权利要求1所述的高速缓存和存储器相干系统,其中所述相干网格结构执行所述路由逻辑以移除具有对应于所述第一处理芯片的端点的存取路由,而不添加去往由被移除存取路由标识的逻辑地址的新存取路由。
3.如权利要求1所述的高速缓存和存储器相干系统,其中所述相干网格结构包括使用外围组件互连快速(PCIe)物理接口的通信总线。
4.如权利要求1所述的高速缓存和存储器相干系统,其中所述处理芯片是被布置在同一印刷电路板组件(PCBA)上的片上系统(SoC)。
5.如权利要求1所述的高速缓存和存储器相干系统,进一步包括控制器,所述控制器被存储在存储器中并被配置成分析系统日志信息以标识所述多个处理芯片中托管所述故障硬件组件的所述第一处理芯片。
6.如权利要求1所述的高速缓存和存储器相干系统,其中所述高速缓存和存储器相干系统被进一步配置成将所述处理芯片中的两个或更多个处理芯片上的资源池化在一起以向用户提供虚拟机体验。
7.如权利要求1所述的高速缓存和存储器相干系统,其中所述相干网格结构执行用于响应于所述高速缓存和存储器相干系统的重启而更新所述一个或多个路由表的路由逻辑。
8.一种方法,包括:
分析系统日志信息以标识故障硬件组件在高速缓存和存储器相干系统内的位置,所述高速缓存和存储器相干系统包括各自托管共享存储器空间的不同子集的多个处理芯片;以及
响应于确定所述故障硬件组件的位置对应于所述多个处理芯片中的第一处理芯片,更新一个或多个路由表以移除将所述共享存储器空间的逻辑地址映射到对应于所述第一处理芯片的端点的所有存取路由。
9.如权利要求8所述的方法,其中更新所述一个或多个路由表包括移除具有对应于所述第一处理芯片的端点的存取路由,而不添加去往由被移除存取路由标识的逻辑地址的新存取路由。
10.如权利要求8所述的方法,其中所述多个处理芯片经由相干网格结构被耦合在一起,所述相干网格结构包括使用外围组件互连快速(PCIe)物理接口的通信总线。
11.如权利要求8所述的方法,其中所述处理芯片是被布置在同一印刷电路板组件(PCBA)上的片上系统(SoC)。
12.如权利要求8所述的方法,进一步包括:
生成包括所述系统日志信息的日志文件,所述系统日志信息指示由所述多个处理芯片中的任一者托管的可能故障的硬件组件。
13.如权利要求8所述的方法,其中更新所述一个或多个路由表包括更新被存储在所述多个处理芯片中的多个不同处理芯片中的每一者上的路由表。
14.如权利要求10所述的方法,其中所述相干网格结构执行用于响应于所述高速缓存和存储器相干系统的重启而更新所述一个或多个路由表的逻辑。
15.一种或多种有形计算机可读存储介质,其编码用于执行计算机过程的计算机可执行指令,所述计算机过程包括:
分析系统日志信息以标识故障硬件组件在高速缓存和存储器相干系统内的位置,所述高速缓存和存储器相干系统包括各自托管共享存储器空间的不同子集的多个处理芯片;以及
响应于确定所述故障硬件组件的位置对应于所述多个处理芯片中的第一处理芯片,更新一个或多个路由表以移除将所述共享存储器空间的逻辑地址映射到对应于所述第一处理芯片的端点的所有存取路由。
CN202080095343.4A 2020-01-30 2020-12-14 用于高速缓存和存储器相干系统中的自愈的选择性端点隔离 Pending CN115039085A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/777,502 2020-01-30
US16/777,502 US11531621B2 (en) 2020-01-30 2020-01-30 Selective endpoint isolation for self-healing in a cache and memory coherent system
PCT/US2020/064742 WO2021154404A1 (en) 2020-01-30 2020-12-14 Selective endpoint isolation for self-healing in a cache and memory coherent system

Publications (1)

Publication Number Publication Date
CN115039085A true CN115039085A (zh) 2022-09-09

Family

ID=74181305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080095343.4A Pending CN115039085A (zh) 2020-01-30 2020-12-14 用于高速缓存和存储器相干系统中的自愈的选择性端点隔离

Country Status (4)

Country Link
US (1) US11531621B2 (zh)
EP (1) EP4097594A1 (zh)
CN (1) CN115039085A (zh)
WO (1) WO2021154404A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12001594B2 (en) 2021-04-16 2024-06-04 Seagate Technology Llc Wireless data storage devices and systems
US11966617B2 (en) * 2021-07-28 2024-04-23 Seagate Technology Llc Air gapped data storage devices and systems

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615221B2 (en) 2001-03-09 2003-09-02 Hewlett-Packard Development Company, Lp. Scalable transport layer protocol for multiprocessor interconnection networks that tolerates interconnection component failure
CN102576313A (zh) * 2009-11-02 2012-07-11 惠普发展公司,有限责任合伙企业 采用分布式嵌入式切换的多处理计算
JP6083576B2 (ja) 2011-12-23 2017-02-22 インテル・コーポレーション メモリデバイス、方法、およびシステム
WO2013142742A1 (en) 2012-03-21 2013-09-26 Lightfleet Corporation A packet-flow interconnect fabric
US8750288B2 (en) 2012-06-06 2014-06-10 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US9436623B2 (en) * 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
US10282669B1 (en) * 2014-03-11 2019-05-07 Amazon Technologies, Inc. Logical inference expert system for network trouble-shooting
US9684575B2 (en) 2014-06-23 2017-06-20 Liqid Inc. Failover handling in modular switched fabric for data storage systems
US9460013B2 (en) * 2014-09-05 2016-10-04 Oracle International Corporation Method and system for removal of a cache agent
US10148527B2 (en) * 2014-12-05 2018-12-04 Accenture Global Services Limited Dynamic network component placement
US20160283303A1 (en) 2015-03-27 2016-09-29 Intel Corporation Reliability, availability, and serviceability in multi-node systems with disaggregated memory
US9824042B2 (en) * 2015-03-30 2017-11-21 EMC IP Holding Company LLC Reading data from storage via a PCI express fabric having a fully-connected mesh topology
US9972611B2 (en) 2016-09-30 2018-05-15 Intel Corporation Stacked semiconductor package having fault detection and a method for identifying a fault in a stacked package
US10249597B2 (en) * 2016-09-30 2019-04-02 Intel Corporation Systems, methods, and apparatuses for implementing die recovery in two-level memory (2LM) stacked die subsystems
US10795853B2 (en) * 2016-10-10 2020-10-06 Intel Corporation Multiple dies hardware processors and methods
US10261843B2 (en) * 2017-03-16 2019-04-16 International Business Machines Corporation Speculative execution management in a coherent accelerator architecture
US10530562B2 (en) * 2017-04-21 2020-01-07 Arm Limited Correlating local time counts of first and second integrated circuits
US10249590B2 (en) 2017-06-06 2019-04-02 Globalfoundries Inc. Stacked dies using one or more interposers
KR102416942B1 (ko) 2017-11-13 2022-07-07 에스케이하이닉스 주식회사 적층 반도체 장치 및 반도체 시스템
US10871983B2 (en) * 2018-05-31 2020-12-22 Intel Corporation Process-based multi-key total memory encryption

Also Published As

Publication number Publication date
WO2021154404A1 (en) 2021-08-05
US20210240622A1 (en) 2021-08-05
EP4097594A1 (en) 2022-12-07
US11531621B2 (en) 2022-12-20

Similar Documents

Publication Publication Date Title
US9645940B2 (en) Apparatus and method for accessing a non-volatile memory blade using multiple controllers in a non-volatile memory based storage device
US10114716B2 (en) Virtual failure domains for storage systems
CN103534688B (zh) 数据恢复方法、存储设备和存储系统
US10916326B1 (en) System and method for determining DIMM failures using on-DIMM voltage regulators
US9535619B2 (en) Enhanced reconstruction in an array of information storage devices by physical disk reduction without losing data
CN115039085A (zh) 用于高速缓存和存储器相干系统中的自愈的选择性端点隔离
US20180341585A1 (en) Write-back cache for storage controller using persistent system memory
US20140281273A1 (en) Providing Local Cache Coherency in a Shared Storage Environment
EP4027243A1 (en) Data recovery method and related device
US8819484B2 (en) Dynamically reconfiguring a primary processor identity within a multi-processor socket server
US11630731B2 (en) System and device for data recovery for ephemeral storage
US10579476B2 (en) Using alternate recovery actions for initial recovery actions in a computing system
US8972777B2 (en) Method and system for storage management
CN113391937A (zh) 用于存储管理的方法、电子设备以及计算机程序产品
CN111767169A (zh) 数据处理方法、装置、电子设备及存储介质
US20230244385A1 (en) Storage apparatus and control method
US10782989B2 (en) Method and device for virtual machine to access storage device in cloud computing management platform
JP5773446B2 (ja) 記憶装置、冗長性回復方法、およびプログラム
US11442637B1 (en) Managing drive space among different data services environments within a storage system
CN110851443A (zh) 数据库的存储管理方法、装置、存储介质及电子设备
US9836359B2 (en) Storage and control method of the same
US20160147458A1 (en) Computing system with heterogeneous storage and method of operation thereof
JP2019192221A (ja) メモリシステム及びその動作方法
US10082967B2 (en) Transfer apparatus and recovery control device
US12050778B2 (en) Data restoration method and related device

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