CN118235114A - 多插槽数据处理系统中的系统资源的同步 - Google Patents
多插槽数据处理系统中的系统资源的同步 Download PDFInfo
- Publication number
- CN118235114A CN118235114A CN202280075756.5A CN202280075756A CN118235114A CN 118235114 A CN118235114 A CN 118235114A CN 202280075756 A CN202280075756 A CN 202280075756A CN 118235114 A CN118235114 A CN 118235114A
- Authority
- CN
- China
- Prior art keywords
- soc
- socs
- master
- event
- synchronization
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 82
- 230000004044 response Effects 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims description 54
- 238000004891 communication Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 24
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000005012 migration Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 238000000574 gas--solid chromatography Methods 0.000 description 3
- 230000001364 causal effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Multi Processors (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Hardware Redundancy (AREA)
Abstract
同步多插槽数据处理系统的系统资源可包括从主片上系统(SOC)向全局同步电路提供触发事件。该主SOC是多个SOC中的一者,并且该触发事件通过第一边带信道来提供。响应于该触发事件,该全局同步电路能够通过第二边带信道向该多个SOC广播同步事件。响应于该同步事件,用公共值对该多个SOC中的每个SOC的该系统资源进行编程。该编程使该多个SOC的该系统资源同步。
Description
技术领域
本公开涉及多处理,并且更具体地涉及同步多插槽数据处理系统内的系统资源。
背景技术
对称多处理(SMP)数据处理系统是具有包括多个处理器(例如,两个或更多个处理器)的硬件和软件架构的数据处理系统。处理器是相同的,并且由同等地对待每个处理器的单个操作系统实例来控制。即,没有处理器被保留用于特殊目的。处理器连接到单个共享主存储器,并且具有对所有输入和输出设备的完全访问。
多插槽(MS)数据处理系统是指具有多个互连的处理器的数据处理系统,该多个互连的处理器各自设置在不同物理插槽中。处理器通过在通信总线上运行的相干通信链路连接。这种通信协议的示例是用于加速器的高速缓存相干互连(CCIX)。相干通信链路支持共享主存储器访问。
在一些MS和/或SMP数据处理系统中,每个处理器可被实现为片上系统(SOC)。SOC是包括多个处理器核心的集成电路(IC)。每个处理器核心可被配置为执行程序代码。IC可被实现为封装内的单个裸片或被地此时你为在单个封装中实现的多裸片IC。在SMP数据处理系统内,操作系统和在其中执行的应用程序具有跨所有SOC的统一视图。操作系统还以统一的方式查看每个处理器核心,就好像每个处理器核心是相同SOC的一部分。
某些多处理器数据处理系统的一个方面是某些系统资源必须跨SOC同步。在包括MS-SMP数据处理系统的各种类型系统中必须跨SOC同步的系统资源的示例是系统计数器。作为一个示例,MS-SMP数据处理系统的操作系统可将过程从设置在第一插槽中的第一SOC中的第一处理器核心迁移到设置在第二插槽中的第二SOC中的另一个处理器核心。迁移的过程应当在迁移之前、期间和之后看到某些系统资源的一致状态。例如在系统计数器的情况下,由第一SOC使用的系统计数器应当与第二SOC的系统计数器同步,使得每个系统计数器的值在操作期间匹配(例如,被同步)。这允许迁移的过程相对于迁移之前的第一SOC的系统计数器和迁移之后的第二SOC的系统计数器看到一致状态。
发明内容
在一个或多个示例性具体实施中,一种同步多插槽数据处理系统的系统资源的方法可包括在主片上系统(SOC)的控制下停止多个系统资源中的每一者。每个系统资源位于多SOC系统的多个SOC中的不同SOC中。主SOC是多个SOC中的一者。该方法可包括在停止时使用主SOC将更新的值写入到多个SOC中的每个其他SOC的系统资源。该方法也可包括在写入之后,使用主SOC发起对多个SOC中的每个SOC中的系统资源的操作。
在一个方面中,该方法包括:在该停止之后并且在该写入之前,使用主SOC读取来自多个系统资源中的每一者的值;以及对于多个SOC中除主SOC之外的每个SOC,由主SOC确定从主SOC的系统资源读取的值与从另一SOC的系统资源读取的值之间的差值。
在另一方面中,该写入包括主SOC将更新的值写入到其他SOC中的每一者,其中写入到该其他SOC中的每一者的更新的值取决于从主SOC的系统资源读取的值与从另一SOC的系统资源读取的值之间的差值。
在另一方面中,将更新的值写入到其他SOC的每个系统资源以及发起操作考虑了主SOC与相应其他SOC中的多个系统资源中的相应系统资源通信的时延。
在另一方面中,多个SOC是相同的。
在另一方面中,该停止、写入和发起作为引导过程的一部分被传送。
在另一方面中,主SOC与其他SOC之间的通信通过通信地链接多个SOC的通信总线传送。
在一个或多个示例性具体实施中,一种用于同步多插槽数据处理系统的系统资源的系统可包括多个SOC。多个SOC通过通信总线互连。每个SOC包括多个处理器核心。多个SOC中的一个SOC被指定为主SOC。该系统可包括全局同步电路。该系统可包括多个边带信道,该多个边带信道将全局同步电路耦合到多个SOC中的每一者。主SOC被配置为通过多个边带信道中的第一边带信道提供触发事件。触发事件发起设置在多个SOC中的系统资源的同步。全局同步电路被配置为响应于接收到触发事件,通过多个边带信道中的第二边带信道向多个SOC中的每一者广播同步事件。
在一个方面中,同步事件由多个SOC中的每个SOC同时接收。
在另一方面中,多个SOC中的每个SOC被设置在不同插槽中。
在另一方面中,多个SOC是相同的。
在另一方面中,触发事件和同步事件作为引导过程的一部分被传送。
在另一方面中,仅主SOC的选择的处理器核心提供触发事件。
在另一方面中,同步事件是中断,并且在多个SOC中的每个SOC内,该中断由多个处理器核心中的选择的处理器核心接收,并且响应于该中断,每个SOC中的选择的处理器核心执行中断服务例程,以通过写入到相同SOC内的系统资源的控制寄存器来对系统资源进行编程。
在另一方面中,在多个SOC中的每个SOC内,同步事件由系统资源的控制逻辑接收,并且响应于该同步事件,系统资源的控制逻辑重置相同SOC内的系统资源。
在一个或多个示例性具体实施中,一种同步多插槽数据处理系统的系统资源的方法可包括从主SOC向全局同步电路提供触发事件。该主SOC是多个SOC中的一者,并且该触发事件通过第一边带信道来提供。该方法可包括响应于触发事件,通过第二边带信道从全局同步电路向多个SOC广播同步事件。该方法也可包括响应于同步事件,利用公共值对多个SOC中的每个SOC的系统资源进行编程,其中该编程使多个SOC的系统资源同步。
在一个方面中,该提供、广播和编程作为用于包括多个SOC的多插槽数据处理系统的引导过程的一部分来执行。
在另一方面中,多个SOC是相同的。
在另一方面中,多个SOC中的每个SOC包括多个处理器核心。另外,多个SOC中的选择的SOC的多个处理器核心中的选择的处理器核心提供触发事件。
在另一方面中,同步事件是中断,多个SOC中的每个SOC包括多个处理器核心,并且多个SOC中的每个SOC的选择的处理器核心响应于该中断而执行中断服务例程以对位于相同SOC中的系统资源进行编程。
在另一方面中,多个SOC中的每个SOC内的选择的处理器核心在执行中断服务例程时写入到相同SOC内的系统资源的控制寄存器。
在另一方面中,在多个SOC中的每个SOC内,同步事件由系统资源的控制逻辑接收,并且响应于该同步事件,系统资源的控制逻辑重置相同SOC内的系统资源。
提供本发明内容部分只是为了介绍某些概念,而不是为了识别要求保护的主题的任何关键或必要特征。根据附图和以下详细描述,本发明的布置的其他特征将显而易见。
附图说明
在附图中以举例的方式示出了本发明的布置。然而,附图不应被解释为将本发明的布置仅限于所示特定具体实施。在查看以下详细描述时并且在参考附图时,各种方面和优点将变得显而易见。
图1示出了包括多个互连的片上系统(SOC)的示例性系统。
图2示出了描绘图1的系统的某些操作特征的示例性方法。
图3是示出SOC之间的示例性通信的信号流程图。
图4示出了图1的系统的另一个示例性具体实施。
图5示出了描绘图1的系统的某些操作特征的示例性方法。
图6是示出SOC之间的示例性通信的另一个信号流程图。
图7示出了图1的系统的另一个示例性具体实施。
图8示出了包括多个SOC的另一个示例性系统。
图9示出了描绘图8的系统的某些操作特征的示例性方法。
图10是示出图8的系统的SOC之间的示例性通信的信号流程图。
图11示出了在包括边带信道和全局同步电路的多插槽(MS)数据处理系统中同步系统资源的示例性方法。
图12示出了在不包括边带信道或全局同步电路的MS数据处理系统中同步系统资源的示例性方法。
图13示出了多插槽数据处理系统的示例。
具体实施方式
本公开涉及多处理,并且更具体地涉及同步多插槽(MS)数据处理系统内的系统资源。发明布置也可应用于对称多处理(SMP)数据处理系统。可实现MS数据处理系统,其中每个插槽包括片上系统(SOC)。每个SOC可包括多个处理器核心。
在MS-SMP数据处理系统中,一旦引导过程完成,某些资源必须跨插槽同步,以确保正确且无错误的操作。在MS-SMP数据处理系统内被架构地定义为每个SMP一个(例如,每个SOC一个)的资源需要该同步。这些资源的示例包括但不限于系统计数器、调试跟踪时间戳生成器等。
出于说明的目的,与每个插槽相关联的系统计数器是自由运行的。尽管每个系统计数器被配置为以相同的频率计数,但是不保证每个系统计数器同时开始。如果相应插槽的系统计数器具有不同开始时间,则系统计数器的值将不相等或不同步。在用于每个插槽的系统计数器不同步的情况下,当在不同插槽中的处理器核心上管理和调度过程时,MS-SMP数据处理系统的操作系统可能表现出不可预测的行为。
调试跟踪时间戳是需要同步的系统资源的另一个示例。当调试跟踪时间戳不同步时,系统中生成和存储的调试和/或跟踪事件的时序可能是不正确的。这使得建立此类事件的真实时序非常困难。调试活动可能被不准确的事件时序妨碍。同步调试跟踪时间戳通过改进事件时序的准确性而改进MS-SMP系统的调试能力,这促进调试努力。
本公开内描述的发明布置提供了能够确保MS数据处理系统和/或MS-SMP数据处理系统的某些系统资源被同步的方法、系统和计算机程序产品。下面参考附图来描述本发明的布置的另外的方面。
图1示出了示例性系统100。系统100是MS数据处理系统的示例。另外,系统100可以是MS-SMP数据处理系统。在图1的示例中,系统100包括多个SOC 102。系统100可包括比所示更少或更多的SOC 102。在图1的示例中,每个SOC 102被设置在其自己的插槽中。在图1的示例中,每个SOC 102包括多个处理器核心112。处理器核心112可以是硬连线处理器核心(例如,硬化电路)。每个处理器核心可被配置为执行程序代码。另外,每个SOC 102可以是相同的。
在另一方面中,每个SOC 102可包括由可编程逻辑形成的一个或多个“软处理器”。在又一方面中,每个SOC 102可包括硬连线处理器和软处理器的组合。在一个或多个SOC102实现软处理器的情况下,应当实现确实实现软处理器的那些SOC 102,使得软处理器具有对经同步的系统资源的访问。
在一个方面中,SOC 102中的每一者可设置在相同电路板或卡上。在另一方面中,SOC 102中的每一者可设置在不同电路板或卡上。在其他方面中,可使用两个或更多个电路板或卡,其中SOC 102以每个电路板的一个或多个SOC的不同组合而跨此类电路板/卡分布。SOC 102可用作数据处理系统的处理器,或者可以是包括在包括主机处理器或中央处理单元(CPU)的较大数据处理系统中的加速器。
在系统100内,每个插槽以及由此的每个SOC 102可用唯一地识别插槽以及由此设置在插槽中的SOC 102的插槽标识符(ID)来识别。尽管MS-SMP数据处理系统的操作系统可同等地查看每个SOC,但是一个SOC可被指定为主SOC。因此,设置在主插槽中的SOC 102可被指定为主SOC。设置在主插槽中的SOC通常负责处理与系统100(包括其他插槽)的配置和引导有关的操作。例如,主SOC可执行诸如系统100的引导、功率管理、错误和健康管理的功能。在图1的示例中,SOC 102-1是主SOC 102。
SOC 102耦合到通信总线104。在一个方面中,通信总线104可实现为外围部件互连快速(PCIe)总线。如所讨论的,相干通信链路可在总线104上运行。SOC 102也通信地链接到全局同步电路(GSC)106。在图1的示例中,GSC 106经由一个或多个边带信道耦合到SOC 102中的每一者。例如,每个SOC 102可经由传出边带信道108(例如,108-1、108-2、108-3和108-N)连接到GSC 106。每个SOC 102还经由传入边带信道110耦合到GSC 106,事件和/或中断可通过该传入边带信道从GSC 106广播。边带信道是与相对于通信总线104实现的物理信号路径不同的物理信号路径。即,边带信道可与通信总线104不同。
在一个或多个示例性具体实施中,边带信道108-1可被包括,而边带信道108-2、108-3和108-N可被省略。
在一个或多个示例性具体实施中,在SOC 102设置在相同电路板上的情况下,GSC106可设置在与SOC 102相同的电路板上。在另一个示例性具体实施中,GSC 106可设置在与其上设置有SOC 102的电路板分离且不同的电路板上。在又一个示例性具体实施中,在SOC102设置在多个不同电路板上的情况下,GSC 106可设置在包括SOC 102中的一者或多者的电路板中的一者上。GSC 106可经由边带信道经由电路板中的导线/迹线和/或通过专用电缆耦合到SOC 102(例如,耦合到SOC 102的插槽)。
在一个或多个示例性具体实施中,每个SOC 102可包括被指定用于执行本文所述的同步相关功能的特定处理器核心。在一些情况下,指定的处理器核心被称为系统控制处理器(SCP)。SCP通常处理系统的引导操作、功率管理、错误管理和健康管理。
在其他情况下,指定的处理器核心被称为系统资源重置处理器(SRRP)。应当理解,在其中SOC 102相同的情况下,术语SCP和SRRP(就此类术语用于指代主SOC中和/或非主SOC中的特定处理器核心而言)仅用于指代相应指定的处理器核心在相应SOC 102中的角色。从架构的角度来看,SCP和SRRP可以是相同的处理器核心。
在一个方面中,SCP/SRRP是每个SOC 102中的专用处理器核心,其任务在于执行本公开内描述的操作。在一个或多个其他示例性具体实施中,每个SOC 102的SCP/SRRP可与相应SOC 102中的其他处理器核心相同,但被指定或选择以执行本文所述的功能。即,处理器核心可与SCP/SRRP相同,该SCP/SRRP是在相应的SOC 102中如此指定的多个相同处理器核心中的一者。
每个SOC 102还包括一个或多个同步系统资源(SSR)114。在本公开内,系统计数器被用作示例性SSR 114。系统计数器是在系统的引导会话的寿命期间单调增加并且不翻转的电路。SOC 102的处理器核心可订阅用于该SOC的系统计数器,并且使用该系统计数器在每个处理器核心的基础上生成定时器事件,该定时器事件可被操作系统和/或应用程序用来获得时间概念、用于调度等。
SSR 114的其他示例可包括调试跟踪时间戳生成器。然而,应当理解,SSR 114并不旨在限于所描述的示例。一般来讲,在架构地定义为每个SMP一个(例如,每个SOC 102一个)的SMP资源可能需要同步并且可被认为是SSR 114。
图2示出了描绘图1的系统100的某些操作特征的示例性方法200。出于说明的目的,SOC 102-1被指定为系统100中的“主”SOC。图3是示出图1的系统100的SOC 102之间的示例性通信的信号流程图。图2至图3示出了用于在系统100内同步SSR 114的示例性操作,并且可作为系统100的引导过程的一部分来执行。出于说明的目的,SSR 114被认为是系统计数器。最初,如上所述,SSR 114是自由运行的,并且由于系统资源不具有经同步的开始时间而具有与SSR 114不同的值。相反,SSR 114中的一者或多者或全部可在不同时间开始操作。SSR 114的不同值反映在每个存储的值中,对于SSR 114-1示出为X1,对于SSR 114-2示出为X2,对于SSR 114-N示出为XN。
参考图2至图3,在框202中,SCP 302-1(主SOC 102-1的SCP)向GSC 106提供触发事件304。在一个方面中,触发事件304可以是脉冲。在该示例中,SCP 302-1被配置为通过第一边带信道108-1向GSC 106提供触发事件304。在一个或多个示例性具体实施中,仅SCP 302-1(例如,主SOC的SCP)被配置为生成触发事件304并经由边带信道将该触发事件转发给GSC106。
在框204中,响应于触发事件304,GSC 106能够通过边带信道110向多个SOC 102中的每一者广播同步事件306。在一个方面中,同步事件306是中断。响应于同步事件306,每个SOC 102能够发起中断服务例程。在框206中,响应于接收到同步事件306而中断每个SOC102中的SCP 302-1、SRRP 302-2、302-N。“中断服务例程”(也被称为中断处理程序)是由可从硬件设备、软件中断指令或软件异常生成的中断请求调用的软件过程。中断服务例程处理该请求并将该请求发送到特定程序或代码部分,该特定程序或代码部分在执行中在中断发生之前中断由处理器/处理器核心执行的活动过程。当中断服务例程完成时,被中断的过程被恢复。
在框208中,每个SOC 102中的指定的处理器核心对位于相同SOC中的相应SSR 114进行编程308。指定的处理器核心可以是主SOC 102-1中的SCP 302-1和非主SOC 102-2、102-N中的SRRP 302-2、302-N。每个SOC 102的SSR 114由于编程而被同步。例如,编程可向每个SSR 114写入相同配置数据或值。在该示例中,响应于接收到同步事件306,SCP 302-1、SRRP 302-2、302-N能够执行中断服务例程,该中断服务例程使得相应处理器核心对位于相同SOC中的相应SSR 114进行编程。由于每个SOC 102接收通过边带信道广播的同步事件306,因此每个SOC同时接收同步事件306。参考图3,每个指定的处理器核心(例如,SCP 302-1、SRRP 302-2、302-N)同时将值0写入到对应SSR 114。结果,SSR 114被同步。如图3所示,每个SSR 114继续从初始化值(例如在这种情况下为0)开始操作,并且此后在Xsync处具有相同的值。
图4示出了系统100的另一个示例性具体实施。在图4的示例中,为了易于描述和清楚起见,仅示出SOC 102-1和102-2。在该示例中,每个SOC 102包括多个处理器核心402、404、406和302,系统计数器408(例如,SSR 114),系统计数器控制寄存器410,锁相环路(PLL)412,输出引脚414和输入引脚416。
在图4的示例中,SCP 302-1能够生成经由边带信道108-1从输出引脚414-1传送出到GSC 106的触发事件304。在该示例中,SRRP 302-2可耦合到输出引脚414-2。然而,不是主SOC 102-1的一部分的SRRP 302-2不生成或发送触发事件。
响应于接收到触发事件304,GSC 106通过边带信道110广播同步事件306。每个SOC102经由对应输入引脚416接收同步事件306(例如,中断)。同步事件306被提供给每个SOC102中的指定的处理器核心。主SOC 102的指定的处理器核心是SCP 302-1,而每个非主SOC102中的指定的处理器核心是SRRP 302-2。
响应于接收到同步事件306,SCP 302-1执行中断服务例程,该中断服务例程使得SCP 302-1将配置数据写入到系统控制寄存器410-1以重置系统计数器408-1。响应于接收到同步事件306,SRRP 302-2执行中断服务例程,该中断服务例程使得SRRP 302-2将配置数据写入到系统控制寄存器410-2以重置系统计数器408-2。因为同步事件306被广播到每个SOC 102,所以每个SOC 102同时接收同步事件306。如此,系统计数器408的重置被同步执行。
尽管系统计数器408是自由运行的,但是每个系统计数器用流过PLL 412的公共参考时钟来运行。一旦同步,每个系统计数器408就能够以与每个其他系统计数器408同步的方式计数,因为每个系统计数器由接收公共参考时钟的相应PLL 412驱动。一旦同步,系统计数器408继续彼此同步地操作。因此,一旦同步,每个SOC 102中的处理器核心402、404和406(以及SCP 302-1和SRRP 302-2)各自在任何给定时间无论在系统计数器408-1还是408-2中均看到相同的值。即,系统计数器408-1与系统计数器408-2同步。
如上所述,计数器408可以是在系统100的引导会话的寿命期间不“翻转”的单调递增的计数器。每个SOC 102的处理器核心订阅位于相同SOC中的系统计数器以便生成定时器事件(例如,在每个处理器核心的基础上),该定时器事件可被操作系统和/或应用程序用来确定或获得时间概念以及用于调度。
图5至图7描述了用于同步SSR 114的另选的具体实施,其利用专用边带信道,同时避免了对专用SRRP的需求,如图2至图4所示。
图5示出了描绘图1的系统100的某些操作特征的示例性方法500。出于说明的目的,SOC 102-1被指定为系统100中的“主”SOC。图6是示出图1的系统100的SOC 102之间的示例性通信的信号流程图。图5至图6示出了用于在系统100内同步SSR 114的示例性操作,并且可作为系统100的引导过程的一部分来执行。出于说明的目的,SSR 114被认为是系统计数器。最初,如上所述,SSR 114是自由运行的,并且由于SSR 114不具有经同步的开始时间而具有不同的值。SSR 114的不同值反映在每个存储的值中,对于SSR 114-1示出为X1,对于SSR 114-2示出为X2,对于SSR 114-N示出为XN。
参考图5至图6,在框502中,SCP 302-1(主SOC 102-1的SCP)向GSC 106提供触发事件304。在一个方面中,触发事件304可以是脉冲。在该示例中,SCP 302-1被配置为通过第一边带信道108-1向GSC 106提供触发事件304。在一个或多个示例性具体实施中,仅SCP 302-1(例如,主SOC的SCP)被配置为生成触发事件304并将该触发事件转发给GSC 106。
在框504中,响应于触发事件304,GSC 106能够通过边带信道110向多个SOC 102中的每一者广播同步事件306。在一个方面中,同步事件306可以是脉冲。在图3至图7的示例中,同步事件306不触发中断服务例程的执行。相反,在图3至图7的示例中,同步事件306被直接提供给控制逻辑(例如,用于每个SOC 102中的相应SSR 114的控制逻辑)。在框506中,每个SOC 102中的控制逻辑接收同步事件306。在框508中,响应于接收到同步事件306,每个SOC 102中的控制逻辑重置其中的SSR 114。
由于框508,每个SOC 102的SSR 114作为编程的结果被同步。例如,编程可向每个SSR 114写入相同配置数据或值。由于每个SOC 102接收通过边带信道广播的同步事件306,因此每个SOC同时接收同步事件306。在该示例中,响应于接收到同步事件306,每个SOC 102的控制逻辑将其中的SSR 114同时重置为0,如图6所示,其中在对应于框506的行中具有“0”值。结果,SSR 114被同步。如图6所示,SSR 114中的每一者继续从初始化值(例如在这种情况下为0)开始操作,并且此后在Xsync处具有相同的值。
图7示出了图1的系统100的另一个示例性具体实施。在图7的示例中,为了易于描述和清楚起见,仅示出SOC 102-1和102-2。在该示例中,每个SOC 102包括多个处理器核心402、404、406和302,系统计数器408(例如,SSR 114),控制逻辑702,锁相环路(PLL)412,输出引脚414和输入引脚416。
在图7的示例中,SCP 302-1能够生成经由边带信道108-1从输出引脚414-1传送出到GSC 106的触发事件304。在该示例中,SCP 302-2可耦合到输出引脚414-2。然而,不是主SOC 102-1的一部分的SCP 302-2不生成或发送触发事件。
响应于接收到触发事件304,GSC 106通过边带信道110广播同步事件306。每个SOC102经由对应输入引脚416接收同步事件306。同步事件306被直接提供给每个相应SOC 102中的控制逻辑702。响应于接收到同步事件306,每个SOC 102中的控制逻辑702将对应系统计数器408重置为0。由于每个SOC 102中的计数器控制逻辑702同时接收同步事件306,因此同步地执行系统计数器408的重置。
尽管系统计数器408是自由运行的,但是每个系统计数器用流过PLL 412的公共参考时钟来运行。一旦同步,每个系统计数器408就能够以与每个其他系统计数器408同步的方式计数,因为每个系统计数器由接收公共参考时钟的PLL 412驱动。一旦同步,系统计数器408继续彼此同步地操作。因此,一旦同步,每个SOC 102中的处理器核心402、404和406(以及SCP 302-1和SCP 302-2)各自在任何给定时间无论在系统计数器408-1还是408-2中均看到相同的值。即,系统计数器408-1与系统计数器408-2同步。
在图7的示例中,计数器408可以是在系统100的引导会话的寿命期间不“翻转”的单调递增的计数器。每个SOC 102的处理器核心订阅位于相同SOC中的系统计数器以便生成定时器事件(例如,在每个处理器核心的基础上),该定时器事件可被操作系统和/或应用程序用来确定或获得时间概念以及用于调度。
图8至图10描述了用于同步SSR 114的另一个另选的具体实施,其在没有专用边带信道的情况下利用虚拟化同步。在图8至图10的示例中,不是使用边带信道,而是使用系统软件来执行作为MS-SMP数据处理系统的引导过程的一部分的同步。因为不使用专用边带信道,所以图8至图10的示例性具体实施不需要专用硬件或对要采用的现有系统的硬件更新。然而,边带信道的缺乏导致比利用专用边带信道的示例更大的插槽间通信延迟。
图8示出了示例性系统800。系统800可基本上如结合图1所述的来实现。在图8的示例中,系统800不包括任何边带信道或GSC 106。每个SOC 102可被视为具有多处理器核心架构。出于说明的目的,每个SOC 102可具有如图7的示例中所示的架构,但在每个SOC 102中实现的特定架构并非旨在进行限制。
在图8至图10的示例中,主SOC 102的SCP访问MS-SMP数据处理系统的每个单独插槽中的必要资源。为了使主SOC 102的SCP能够访问用于MS-SMP数据处理系统的每个插槽的系统计数器控制寄存器和/或控制逻辑,MS-SMP数据处理系统的系统地址映射必须将MS-SMP数据处理系统的控制和状态寄存器暴露给主SOC 102的SCP。系统地址映射是指定系统中各种存储器映射目标(例如,部件、电路块、外围设备等)的地址范围的数据结构。另外,在引导序列期间,同步操作依赖于某些硬件部件被带出重置状态以允许主SOC 102的SCP访问此类硬件部件。
图9示出了描绘图8的系统800(例如,不包括边带信道或GSC的MP-SMP数据处理系统)的某些操作特征的示例性方法900。出于说明的目的,SOC 102-1被指定为系统800中的“主”SOC。图10是示出图8的系统800的SOC 102之间的示例性通信的信号流程图。图9至图10示出了用于在系统800内同步SSR 114的示例性操作,并且可作为系统800的引导过程的一部分来执行。出于说明的目的,SSR 114被认为是系统计数器。最初,如上所述,SSR 114是自由运行的,并且由于SSR 114不具有经同步的开始时间而具有不同的值。SSR 114的不同值反映在每个存储的值中,对于SSR 114-1示出为Y1,对于SSR 114-2示出为Y2,对于SSR 114-3示出为Y3,对于SSR 114-N示出为YN。在图8至图10的示例中,传送的事件和/或信号通过总线104传送。
参考图9至图10,在框902中,主SOC 102的SCP(例如,SCP 302-1)向每个SSR 114发出停止事件。在图10的示例中,SCP 302-1向相同SOC中的SSR 114(例如,SSR 114-1)发出停止事件1002,并且向每个其他SOC 102中的SSR 114发出停止事件。作为框902的一部分,一旦停止,SCP进一步读取每个SSR 114的值。一般来讲,相应SSR 114的值可参考SSR 114-1来确定,因为每个其他SSR将具有在SSR 114-1的值之后的某个延迟量(D)的值。SCP 302-1能够参考SSR 114-1确定针对每个SSR 114的延迟。
在框904中,主SOC 102的SCP更新每个其他SOC 102中的SSR。SCP不更新相同SOC中的SSR。参考图10,SCP 302-1使SSR 114-1具有与在框902中初始读取的值相同的值。SCP302-1通过写入1004SSR 114-1的值加上正被更新的特定SSR 114的相应延迟来更新每个其他SSR 114-2、114-3、114-N中的值。图10示出了在框904期间由SCP 302-1写入到SSR 114-2、114-3和114-N中的每一者的更新的值。
在框906中,主SOC 102的SCP发送事件信号通知SSR 114中的每一者以恢复操作。在图10的示例中,SCP 302-1向每个SSR发送事件1006以恢复操作。在发信号通知每个SSR114以恢复操作时,从SCP 302-1提供到每个相应SSR的信号将招致如框902中测量的相同延迟。图10示出了在框908中,每个SSR 114被同步且自由运行。如所讨论的,每个SSR 114可使用公共参考时钟来计时以保持与其他SSR 114同步。
在一个或多个示例性具体实施中,如本文所述和/或结合图9所描述的事件诸如停止、更新等可被实现为与正被同步且通过总线104传送的资源相关联的寄存器写入(例如,到控制寄存器)。可快速连续地背对背执行指向各种插槽的经同步的资源的寄存器写入。在其他示例性具体实施中,可包括向多个插槽传送事件的专用广播功能,使得不需要执行对各种插槽中的经同步的资源的单独写入。无论执行背对背写入还是广播功能,可使用本文所述的示例性技术来考虑与其他插槽通信的延迟。
表1示出了在图9至图10中描述的各个时间点的SSR 114(例如,系统计数器)的示例性状态。
表1
在表1的示例中,插槽1对应于SOC 102-1,例如,主SOC。最初,每个系统计数器可不重置(例如,对应于引导过程)并且自由运行。系统计数器的操作不同步,因为每个系统计数器具有不同值。主SOC的SCP发出停止事件。一旦系统计数器已经停止,SCP读取每个系统计数器的值并且计算相应系统计数器的值与主插槽中的系统计数器的值之间的差值。对于插槽“N”中的给定计数器,该差值为DN,其中DN=Y1-YN。值DN也指示停止插槽“N”的系统计数器与停止插槽1的系统计数器之间的延迟。
该延迟可近似为由主插槽中的SCP访问特定插槽中的特定SSR(例如,在这种情况下为系统计数器)的控制寄存器和/或控制逻辑引起的时延。因此,每个系统计数器值可由SCP重写,使得当SCP不停止每个系统计数器时,更新的计数器值补偿该时延。SCP可将插槽“N”的系统计数器重写为Y1+DN。这确保了当SCP不停止系统计数器时,在恢复系统计数器中引起的延迟将被使用延迟DN在更新的系统计数器值中进行的调整抵消。
表2示出了当主插槽的SCP覆写系统计数器的值并发出恢复事件(例如,事件1006)时SSR 114(例如,系统计数器)的示例性状态。
表2
尽管在MS-SMP数据处理系统的上下文中描述了本公开内描述的示例性具体实施,但是应当理解,本文所述的各种同步机制和技术可被扩展为同步具有多个插槽的不是SMP数据处理系统的其他数据处理系统的系统资源。
图11示出了在MS数据处理系统(系统)中同步系统资源的示例性方法1100。该系统可以是SMP数据处理系统。
在框1102中,系统的主SOC能够向GSC 106提供触发事件。主SOC是多个SOC中的一者,并且触发事件通过第一边带信道108-1来提供。在框1104中,响应于触发事件,GSC 106能够通过第二边带信道110向多个SOC广播同步事件。在框1106中,响应于同步事件,用公共值对系统的多个SOC中的每个SOC中的系统资源进行编程。该编程使该多个SOC的该系统资源同步。
前述和其他具体实施可各自任选地单独或组合地包括以下特征中的一个或多个特征。一些示例性具体实施包括组合的所有以下特征。
在一个方面中,所描述的操作(例如,提供、广播和编程)作为用于包括多个SOC的MS数据处理系统的引导过程的一部分来执行。这些操作可响应于系统资源(例如,SSR 114)脱离重置状态来执行。
在另一方面中,多个SOC是相同的。
在另一方面中,多个SOC中的每个SOC包括多个处理器核心。多个SOC中的选择的SOC的多个处理器核心中的选择的处理器核心提供触发事件。例如,本文所述的SCP可提供触发事件。
在另一方面中,多个SOC中的每个SOC包括多个处理器核心。同步事件可以是中断。多个SOC中的每个SOC的选择的处理器核心响应于该中断而执行中断服务例程以对位于相同SOC中的系统资源进行编程。选择的处理器可以是主SOC中的SCP和非主SOC中的SRRP。
在另一方面中,多个SOC中的每个SOC内的选择的处理器核心在执行中断服务例程时写入到相同SOC内的系统资源的控制寄存器和/或控制逻辑。
在另一方面中,在多个SOC中的每个SOC内,同步事件由系统资源的控制逻辑接收。响应于同步事件,每个相应SOC中的系统资源的控制逻辑重置相同SOC内的系统资源。
图12示出了在MS数据处理系统(系统)中同步系统资源的示例性方法1200。该系统可以是SMP数据处理系统。在图12的示例中,系统不包括边带信道并且不包括GSC 106。
在框1202中,主SOC能够停止系统中的多个系统资源中的每一者。每个系统资源位于多SOC系统的多个SOC中的不同SOC中。主SOC是多个SOC中的一者。在框1204中,主SOC能够在停止时将更新的值写入到多个SOC中的每个其他SOC的系统资源。在框1206中,主SOC能够在写入之后发起(不停止)对多个SOC中的每个SOC中的系统资源的操作。
前述和其他具体实施可各自任选地单独或组合地包括以下特征中的一个或多个特征。一些示例性具体实施包括组合的所有以下特征。
在一个方面中,在停止之后并且在写入之前,主SOC(例如,主SOC的SCP)能够从多个系统资源中的每一者读取值。对于多个SOC中除主SOC之外的每个SOC,SCP能够确定从主SOC的系统资源读取的值与从另一SOC的系统资源读取的值之间的差值。该写入包括主SOC(例如,主SOC的SCP)将更新的值写入到其他SOC中的每一者。写入到其他SOC中的每一者的更新的值取决于从主SOC的系统资源读取的值与从另一SOC的系统资源读取的值之间的差值。
在另一方面中,将更新的值写入到其他SOC的每个系统资源以及发起操作考虑了主SOC与相应其他SOC中的多个系统资源中的相应系统资源通信的时延。
在另一方面中,多个SOC是相同的。
在另一方面中,该停止、写入和发起作为引导过程的一部分被传送。这些操作可响应于系统资源(例如,SSR 114)脱离重置状态来执行。
在另一方面中,主SOC与其他SOC之间的通信通过通信地链接多个SOC的通信总线传送。
图13示出了MS数据处理系统1300的示例性具体实施。数据处理系统1300还可以是SMP类型的系统。数据处理系统1300的部件可包括但不限于多个SOC 1302、存储器1304以及将包括存储器1304的各种系统部件耦合到SOC 1302的总线1306。SOC 1302可包括具有多种不同架构中的任一者的处理器核心,该架构包括但不限于x86类型的架构(IA-32、IA-64等)、功率架构、ARM处理器等。如上所述,在一些情况下,SOC 1302可包括可编程逻辑,该可编程逻辑可用于实现SOC的多个处理器核心中的一者或多者。
如所讨论的,在一些情况下,MS数据处理系统可包括中央处理单元(CPU)并且包括作为加速器的多个SOC 1302。加速器可设置在一个或多个不同的电路板、卡、底盘结构上,或者以例如经由通信总线诸如总线1306与数据处理系统1300通信地链接的其他可用形状因数来实现。在一个或多个示例性具体实施中,加速器可根据作为开放式计算项目(OCP)和/或OCP加速器模块(OAM)规范的一部分阐述的各种标准和/或规范中的任一者来实现。另外,应当理解,任何此类加速器可包括用于使用一个或多个不同通信协议耦合到不同系统和/或设备的各种不同连接器和/或连接器的组合中的任一者。
总线1306代表示各种通信总线结构中的任一者中的一者或多者。以举例的方式而非限制,总线1306可被实现为外围部件互连快速(PCIe)总线。可使用其他通信总线来代替或辅助PCIe。数据处理系统1300通常包括各种计算机系统可读介质。这类介质可包括计算机可读的易失性和非易失性介质以及计算机可读的可移动和不可移动介质。
存储器1304可包括易失性存储器(诸如随机存取存储器(RAM)1308和/或高速缓存存储器1310)形式的计算机可读介质。数据处理系统1300也可包括其他可移动/不可移动、易失性/非易失性计算机存储介质。以举例的方式,可提供存储系统1312,用于从不可移动、非易失性磁和/或固态介质(未示出并且通常被称为“硬盘驱动器”)读取以及向其写入。虽然未示出,但可提供用于从可移动、非易失性磁盘(例如“软盘”)读取以及向其写入的磁盘驱动器,以及用于从可移动、非易失性光盘(例如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。在此类实例中,每一者可通过一个或多个数据介质接口连接到总线1306。存储器1304是至少一个计算机程序产品的示例。
具有一组(至少一个)程序模块1316的程序/实用程序1314可被存储在存储器1304中。程序/实用程序1314可由SOC 1302的处理器核心执行。以举例的方式,程序模块1316可表示操作系统、一个或多个应用程序、其他程序模块和程序数据。程序模块1316在执行时使得数据处理系统1300(例如,一个或多个CPU(未示出)和/或SOC 1302)实施本公开内描述的示例性具体实施的功能和/或方法。由数据处理系统1300使用、生成和/或操作的程序/实用程序1314和任何数据项是在由数据处理系统1300采用时赋予功能的功能数据结构。
例如,在一个或多个示例性具体实施中,SOC 1302可如结合图1描述来实现并且包括GSC(未示出)。在一个或多个其他示例性具体实施中,可如结合图8描述来实现SOC 1302。
数据处理系统1300可包括通信地链接到总线1306的一个或多个输入/输出(I/O)接口1318。I/O接口1318允许数据处理系统1300与一个或多个外部设备1320通信以及/或者通过一个或多个网络诸如局域网(LAN)、广域网(WAN)和/或公用网络(例如,互联网)通信。I/O接口1318的示例可包括但不限于网卡、调制解调器、网络适配器、硬件控制器等。外部设备的示例还可包括允许用户与数据处理系统1300进行交互的设备(例如,显示器、键盘和/或指向设备)和/或其他设备诸如加速器卡。
数据处理系统1300仅是一个示例性具体实施。数据处理系统1300可被实践为独立设备(例如,实践为用户计算设备或服务器、实践为裸金属服务器)、在集群(例如,两个或更多个互连的计算机)中实践或在分布式云计算环境(例如,作为云计算节点)中实践,其中由通过通信网络链接的远程处理设备执行任务。在分布式云计算环境中,程序模块可定位于包括存储器存储设备的本地和远程计算机系统存储介质中。图13的示例并非旨在对本文所述的示例性具体实施的使用范围或功能提出任何限制。数据处理系统是能够执行本公开内描述的各种操作的计算机硬件的示例。
数据处理系统1300可包括比图13所示的部件更少的部件或未示出的附加部件,这取决于实现的设备和/或系统的特定类型。所包括的特定操作系统和/或应用程序可以根据设备和/或系统的类型而变化,所包括的I/O设备的类型也是如此。另外,一个或多个示例性部件可以结合到另一部件中,或者以其他方式形成另一部件的一部分。例如,处理器可包括至少某一存储器。
数据处理系统1300可与众多其他通用或专用计算系统环境或配置一起操作。可适于与数据处理系统1300一起使用的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子器件、网络PC、小型计算机系统、大型计算机系统、以及包括以上系统或设备中的任一者的分布式云计算环境等。
一些计算环境(例如,使用数据处理系统1300或其他合适的数据处理系统的云计算环境和/或边缘计算环境)通常支持FPGA即服务(FaaS)模型。在FaaS模型中,作为在(主机)数据处理系统的控制下操作的可编程IC内实现的电路设计,用户功能是硬件加速的。云计算模型的其他示例在国家标准与技术研究院(NIST)中描述,并且更具体地在NIST的信息技术实验室中描述。
虽然本公开以限定新颖特征的权利要求书结束,但据信通过结合附图来考虑描述将更好地理解在本公开中描述的各种特征。本文所述的过程、机器、制造及其任何变型形式被提供用于说明的目的。在本公开中描述的具体的结构和功能细节不应被解释为限制性的,而是只作为权利要求的基础,以及作为用于教导本领域的技术人员以各种方式采用在几乎任何适当详述的结构中描述的特征的代表性基础。此外,在本公开中使用的术语和短语并不旨在进行限制,而是提供对所描述的特征的可理解的描述。
为了简单和清楚说明的目的,附图中所示的元件不一定按比例绘制。例如,为了清楚,元件中的一些元件的尺寸可相对于其他元件被放大。此外,在被认为适当的情况下,参考标号在附图当中被重复以指示对应的、类似的或相似的特征。
如本文所限定,单数形式“一”和“该”也旨在包括复数形式,除非上下文另外明确指出。
如本文所限定,术语“大约”是指几乎正确或精确、数值或量接近但不精确。例如,术语“大约”可指所列举的特性、参数或值在精确特性、参数或值的预先确定的量内。
如本文所限定,术语“至少一个”、“一个或多个”以及“和/或”为开放式表述,其在操作中既是连词也是转折连词,除非另有明确说明。例如,表述“A、B和C中的至少一者”、“A、B或C中的至少一者”、“A、B和C中的一者或多者”、“A、B或C中的一者或多者”以及“A、B和/或C”中的每个表述意指单独的A、单独的B、单独的C、A和B一起、A和C一起、B和C一起或A、B和C一起。
如本文所限定,术语“自动地”意指没有人工干预。如本文所限定,术语“用户”意指人类。
如本文所用,术语“云计算”是指促进对可配置计算资源(诸如网络、服务器、存储、应用、IC(例如,可编程IC)和/或服务)的共享池的方便的按需网络访问的计算模型。这些计算资源可用最小的管理努力或服务提供商交互来快速供应和释放。云计算促进可用性,并且可通过按需自服务、广泛的网络访问、资源池化、快速弹性和测量的服务来表征。
如本文所限定,术语“计算机可读存储介质”意指包含或存储由指令执行系统、装置或设备使用或结合指令执行系统、装置或设备使用的程序代码的存储介质。如本文所限定,“计算机可读存储介质”不是暂态的传播信号本身。计算机可读存储介质可以是但不限于电子存储设备、磁存储设备、光学存储设备、电磁存储设备、半导体存储设备或前述项的任何合适组合。如本文中所描述的各种形式的存储器是计算机可读存储介质的示例。计算机可读存储介质的更具体示例的不完全列表可包括:便携式计算机磁片、硬盘、RAM、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存存储器)、电可擦除可编程只读存储器(EEPROM)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘等。
如本公开所限定,术语“数据结构”意指物理存储器内的数据的数据模型组织的物理具体实施。由此,数据结构由存储器中的具体的电或磁结构元件形成。数据结构使得使用处理器执行的应用程序所使用的存储在存储器中的数据具有物理组织。
如本文所限定,根据上下文,术语“如果”意指“当……时”或“在……时”或“响应于(in response to)”或“响应于(responsive to)”。因此,根据上下文,短语“如果确定了”或“如果检测到[规定条件或事件]”可理解为意指“在确定……时”或“响应于确定”或“在检测到[规定条件或事件]时”或“响应于(in response to)检测到[规定条件或事件]”或“响应于(responsive to)检测到[规定条件或事件]”。
如本文所限定,术语“响应于”和如上所述的类似语言(例如,“如果”、“当……时”或“在……时”)意指易于对动作或事件作出响应或反应。响应或反应自动地被执行。因此,如果“响应于”第一动作而执行第二动作,则在第一动作的发生与第二动作的发生之间存在因果关系。术语“响应于”指示因果关系。
如本文所限定,“数据处理系统”是指被配置为处理数据的一个或多个硬件系统,每个硬件系统包括被编程以发起操作的至少一个处理器以及存储器。
如本文所限定,术语“处理器”或“处理器核心”是指能够执行包含在程序代码中的指令的至少一个电路。该电路可以是集成电路或嵌入在集成电路中。如本文所述,SOC包括多个处理器核心,并且在一些情况下可被称为“处理器”。
如本文所限定,关于电路的术语“软”是指电路在可编程逻辑或可编程电路中实现。因此,“软处理器”是指在可编程电路中实现的至少一个电路,该可编程电路能够执行包含在程序代码中的指令。
如本文所限定,术语“输出”是指在物理存储器元件(例如,设备)中存储、写入到显示器或其他外围输出设备、发送或传输到另一系统、导出等。
如本文所限定,术语“基本上”意指所述的特性、参数或值不需要精确地实现,而是偏差或变化(举例来说包括公差、测量误差、测量精度限制以及本领域的技术人员已知的其他因素)可以以不妨碍所述特性旨在提供的效果的量出现。
术语第一、第二等可在本文中用于描述各种元件。这些元件不应受到这些术语的限制,因为这些术语仅用于区分一个元件与另一元件,除非另有说明或上下文另有明确指示。
计算机程序产品可包括其上具有用于使处理器执行本文描述的本发明的布置的各方面的计算机可读程序指令的计算机可读存储介质(或媒介)。在本公开中,术语“程序代码”与术语“计算机可读程序指令”可互换地使用。本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如互联网、LAN、WAN和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或包括边缘服务器的边缘设备。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本文描述的本发明的布置的操作的计算机可读程序指令可以是汇编指令、指令集体系结构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、或者以一种或多种编程语言的任何组合编写的源代码或目标代码,编程语言包括面向对象的编程语言和/或过程编程语言。计算机可读程序指令可包括状态设置数据。计算机可读程序指令可以整个地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包、部分地在用户计算机上执行并且部分地在远程计算机上执行或者整个地在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括LAN或WAN)连接到用户计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些情况下,包括例如可编程逻辑电路、FPGA或PLA的电子电路可以执行计算机可读程序指令,具体通过利用计算机可读程序指令的状态信息来个性化处理电子电路,以便执行本文描述的本发明的布置的各方面。
本发明的布置的某些方面在此参考方法、装置(系统)和计算机程序产品的流程图图示和/或框图进行描述。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可通过计算机可读程序指令(例如程序代码)实现。
这些计算机可读程序指令可提供给计算机、专用计算机或其他可编程数据处理装置的处理器以得到机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令形成用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的构件。这些计算机可读程序指令还可存储在可指示计算机、可编程数据处理装置和/或其他设备以特定方式起作用的计算机可读存储介质中,使得其中存储有指令的计算机可读存储介质包含包括实现在流程图和/或框图的一个或多个框中指定的操作的各方面的指令的制品。
计算机可读程序指令还可被加载到计算机、其他可编程数据处理装置或其他设备上,导致在计算机、其他可编程装置或其他设备上执行一系列操作以得到计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。
图中的流程图和框图示出了根据本发明的布置的各方面的系统、方法和计算机程序产品的可能具体实施的架构、功能性和操作。就这一点而言,流程图或框图中的每个框可以表示指令的包括用于实现指定操作的一个或多个可执行指令的模块、段或部分。
在一些另选的具体实施中,框中指出的操作可以不按照图中指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个框可以基本上同时执行,或者这些框有时可以以相反顺序执行。在其他示例中,通常可按递增数字次序执行框,而在其他示例中,可按变化次序执行一个或多个框,其结果被存储且用于后续框或不紧跟其后的框中。还将注意到,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可由执行指定功能或动作或者执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。
Claims (15)
1.一种同步多插槽数据处理系统的系统资源的方法,所述方法包括:
在主片上系统(SOC)的控制下停止多个系统资源中的每一者,其中每个系统资源位于多SOC系统的多个SOC中的不同SOC中,其中所述主SOC是所述多个SOC中的一者;
在停止时使用所述主SOC将更新的值写入到所述多个SOC中的每个其他SOC的所述系统资源;以及
在所述写入之后,使用所述主SOC发起对所述多个SOC中的每个SOC中的所述系统资源的操作。
2.根据权利要求1所述的方法,包括:
在所述停止之后并且在所述写入之前,使用所述主SOC读取来自所述多个系统资源中的每一者的值;以及
对于所述多个SOC中除所述主SOC之外的每个SOC,由所述主SOC确定从所述主SOC的所述系统资源读取的值与从另一SOC的所述系统资源读取的值之间的差值。
3.根据权利要求2所述的方法,其中所述写入包括所述主SOC将所述更新的值写入到其他SOC中的每一者,其中写入到所述其他SOC中的每一者的所述更新的值取决于从所述主SOC的所述系统资源读取的所述值与从所述另一SOC的所述系统资源读取的所述值之间的所述差值。
4.根据权利要求1所述的方法,其中将所述更新的值写入到所述其他SOC的每个系统资源以及所述发起操作考虑了所述主SOC与相应的所述其他SOC中的所述多个系统资源中的相应的所述系统资源通信的时延。
5.根据权利要求1所述的方法,其中所述多个SOC是相同的。
6.根据权利要求1所述的方法,其中所述停止、所述写入和所述发起作为引导过程的一部分被传送。
7.根据权利要求1所述的方法,其中所述主SOC与所述其他SOC之间的通信通过通信地链接所述多个SOC的通信总线传送。
8.一种用于同步多插槽数据处理系统的系统资源的系统,所述系统包括:
多个片上系统(SOC),其中所述多个SOC通过通信总线互连,每个SOC包括多个处理器核心,并且所述多个SOC中的一个SOC被指定为主SOC;
全局同步电路;
多个边带信道,所述多个边带信道将所述全局同步电路耦合到所述多个SOC中的每一者;
其中所述主SOC被配置为通过所述多个边带信道中的第一边带信道提供触发事件,所述触发事件发起设置在所述多个SOC中的所述系统资源的同步;并且
其中所述全局同步电路被配置为响应于接收到所述触发事件,通过所述多个边带信道中的第二边带信道向所述多个SOC中的每一者广播同步事件。
9.根据权利要求8所述的系统,其中所述同步事件由所述多个SOC中的每个SOC同时接收。
10.根据权利要求8所述的系统,其中所述多个SOC中的每个SOC被设置在不同插槽中。
11.根据权利要求8所述的系统,其中所述多个SOC是相同的。
12.根据权利要求8所述的系统,其中所述触发事件和所述同步事件作为引导过程的一部分被传送。
13.根据权利要求8所述的系统,其中仅所述主SOC的选择的处理器核心提供所述触发事件。
14.根据权利要求8所述的系统,其中所述同步事件是中断,并且在所述多个SOC中的每个SOC内:
所述中断由所述多个处理器核心中的选择的处理器核心接收;并且
响应于所述中断,每个SOC中的所述选择的处理器核心执行中断服务例程,以通过写入到相同SOC内的所述系统资源的控制寄存器来对所述系统资源进行编程。
15.根据权利要求8所述的系统,其中在所述多个SOC中的每个SOC内:
所述同步事件由所述系统资源的控制逻辑接收;并且
响应于所述同步事件,所述系统资源的所述控制逻辑重置所述相同SOC内的所述系统资源。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/455,074 | 2021-11-16 | ||
US17/455,074 US20230153156A1 (en) | 2021-11-16 | 2021-11-16 | Synchronization of system resources in a multi-socket data processing system |
PCT/US2022/079574 WO2023091872A1 (en) | 2021-11-16 | 2022-11-09 | Synchronization of system resources in a multi-socket data processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118235114A true CN118235114A (zh) | 2024-06-21 |
Family
ID=84602351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280075756.5A Pending CN118235114A (zh) | 2021-11-16 | 2022-11-09 | 多插槽数据处理系统中的系统资源的同步 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230153156A1 (zh) |
EP (1) | EP4399606A1 (zh) |
KR (1) | KR20240095423A (zh) |
CN (1) | CN118235114A (zh) |
WO (1) | WO2023091872A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU616213B2 (en) * | 1987-11-09 | 1991-10-24 | Tandem Computers Incorporated | Method and apparatus for synchronizing a plurality of processors |
US20100174892A1 (en) * | 2006-08-21 | 2010-07-08 | Nxp, B.V. | Multiprocessor system and method for synchronizing a debugging process of a multiprocessor system |
JP5239751B2 (ja) * | 2008-10-31 | 2013-07-17 | 富士通株式会社 | ノード間同期装置、ノード間同期方法およびノード間同期プログラム |
-
2021
- 2021-11-16 US US17/455,074 patent/US20230153156A1/en active Pending
-
2022
- 2022-11-09 WO PCT/US2022/079574 patent/WO2023091872A1/en active Application Filing
- 2022-11-09 KR KR1020247015164A patent/KR20240095423A/ko unknown
- 2022-11-09 CN CN202280075756.5A patent/CN118235114A/zh active Pending
- 2022-11-09 EP EP22830070.3A patent/EP4399606A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023091872A1 (en) | 2023-05-25 |
US20230153156A1 (en) | 2023-05-18 |
EP4399606A1 (en) | 2024-07-17 |
WO2023091872A8 (en) | 2024-04-25 |
KR20240095423A (ko) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10908941B2 (en) | Timestamping data received by monitoring system in NFV | |
US11609598B2 (en) | Network card, time synchronization methods and devices, and computer storage media | |
CA2675645C (en) | Facilitating synchronization of servers in a coordinated timing network | |
US8001225B2 (en) | Server time protocol messages and methods | |
US9104343B2 (en) | Global synchronous clock circuit and method for blade processors | |
US9329958B2 (en) | Efficient incremental checkpointing of virtual devices | |
US20090259881A1 (en) | Failsafe recovery facility in a coordinated timing network | |
US9552309B2 (en) | Methods, systems, and computer readable media for providing precise timing in virtual data network or storage network test environment | |
WO2013181690A1 (en) | Synchronisation of a system of distributed computers | |
US9459652B1 (en) | Virtual reference clock for virtual machines | |
US20180309565A1 (en) | Correlating local time counts of first and second integrated circuits | |
EP4092531A1 (en) | Systems, methods, and apparatus for coordinating computation systems | |
CA2996789C (en) | Virtual communication router with time-quantum synchronization | |
CN118235114A (zh) | 多插槽数据处理系统中的系统资源的同步 | |
D'Souza et al. | Quartzv: Bringing quality of time to virtual machines | |
US12019466B2 (en) | Virtual precision time protocol clock devices for virtual nodes | |
US20230361900A1 (en) | Synchronized rate control at rate limiter | |
CN117792558B (zh) | 用于集成高精度时间的方法、装置、设备和介质 | |
Chen et al. | Real-time extension technologies on the windows operation system | |
KR101407726B1 (ko) | 점검장치의 실시간 통신 지원방법 | |
US20220137995A1 (en) | Providing clock times to virtual devices | |
WO2022041936A1 (zh) | 一种分布式系统中的时钟同步方法、装置及系统 | |
Kobori et al. | Performance evaluation of portable time synchronization method using eBPF | |
Jünger et al. | X-on-X: Distributed Parallel Virtual Platforms for Heterogeneous Systems | |
Oliveira | Sincronização de alto desempenho para um ambiente de co-simulação |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |