# US 12,223,355 B2 · Synchronization of system resources in a multi-socket data processing system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,223,355 B2
- Document ID: US12223355B2
- Status: Granted
- Kind: B2
- Application number: 17/455,074
- Filed: 2021-11-16
- Published: 2023-05-18
- Granted: 2025-02-11
- Earliest claimed: 2021-11-16
- Assignees: Xilinx, Inc.
- Applicants: Xilinx, Inc.
- Inventors: Karthik Shankar; Jaideep Dastidar; Ahmad R. Ansari; Sagheer Ahmad
- Web page: https://patentgrep.com/patent/US12223355B2

## CPC

- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 15/17325: {Synchronisation; Hardware support therefor (intertask synchronisation G06F9/52)}
- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Synchronizing system resources of a multi-socket data processing system can include providing, from a primary System-on-Chip (SOC), a trigger event to a global synchronization circuit. The primary SOC is one of a plurality of SOCS and the trigger event is provided over a first sideband channel. In response to the trigger event, the global synchronization circuit is capable of broadcasting a synchronization event to the plurality of SOCS over a second sideband channel. In response to the synchronization event, the system resource of each SOC of the plurality of SOCS is programmed with a common value. The programming synchronizes the system resources of the plurality of SOCS.

## Claims

### Claim 1

A method of synchronizing system resources of a multi-socket data processing system, the method comprising:
providing, from a primary System-on-Chip (SOC), a trigger event to a global synchronization circuit, wherein the primary SOC is one of a plurality of SOCS, each SOC of the plurality of SOCS is disposed in a different socket, and the trigger event is provided over a first sideband channel;
in response to the trigger event, broadcasting, from the global synchronization circuit, a synchronization event to the plurality of SOCS over a second sideband channel; and
in response to the synchronization event, programming a system resource of each SOC of the plurality of SOCS with a common value, wherein the programming synchronizes the system resource of each SOC of the plurality of SOCS.

### Claim 2 (depends on 1)

The method of claim 1, wherein the providing, the broadcasting, and the programming are performed as part of a boot process for a multi-socket data processing system including the plurality of SOCS.

### Claim 3 (depends on 1)

The method of claim 1, wherein the plurality of SOCS are identical.

### Claim 4 (depends on 1)

The method of claim 1, wherein:
each SOC of the plurality of SOCS includes a plurality of processor cores; and
a selected processor core of the plurality of processor cores of a selected SOC of the plurality of SOCS provides the trigger event.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
the synchronization event is an interrupt;
each SOC of the plurality of SOCS includes a plurality of processor cores; and
a selected processor core of each SOC of the plurality of SOCS executes an interrupt service routine in response to the interrupt to program the system resource located in a same SOC.

### Claim 6 (depends on 5)

The method of claim 5, wherein the selected processor core within each SOC of the plurality of SOCS, in executing the interrupt service routine, writes to a control register of the system resource within the same SOC.

### Claim 7 (depends on 1)

The method of claim 1, wherein, within each SOC of the plurality of SOCS:
the synchronization event is received by control logic of the system resource; and
in response to the synchronization event, the control logic of the system resource resets the system resource within a same SOC.

### Claim 8

A method of synchronizing system resources of a multi-socket data processing system, the method comprising:
halting, under control of a primary System-on-Chip (SOC), each of a plurality of system resources, wherein each system resource is located in a different SOC of a plurality of SOCS of a multi-SOC system, wherein the primary SOC is one of the plurality of SOCS, and wherein each SOC of the plurality of SOCS is disposed in a different socket;
writing, using the primary SOC, an updated value to the system resource of another SOC of the plurality of SOCS while halted; and
initiating operation, using the primary SOC, of the system resource in each SOC of the plurality of SOCS subsequent to the writing.

### Claim 9 (depends on 8)

The method of claim 8, comprising:
subsequent to the halting and prior to the writing, reading, using the primary SOC, a value from each of the plurality of system resources;
determining, by the primary SOC, a difference between the value read from the system resource of the primary SOC and the value read from the system resource of the other SOC; and
wherein the writing includes the primary SOC writing the updated value to the other SOC, wherein the updated value depends on the difference between the value read from the system resource of the primary SOC and the value read from the system resource of the other SOC.

### Claim 10 (depends on 9)

The method of claim 9, wherein the writing the updated value to the system resource of the other SOC and the initiating operation accounts for latency in the primary SOC communicating with the system resource in the other SOC.

### Claim 11 (depends on 8)

The method of claim 8, wherein the plurality of SOCS are identical.

### Claim 12 (depends on 8)

The method of claim 8, wherein the halting, the writing, and the initiating are part of a boot process.

### Claim 13 (depends on 8)

The method of claim 8, wherein communication between the primary SOC and the other SOC is conveyed over a communication bus communicatively linking the plurality of SOCS.

### Claim 14

A system for synchronizing system resources of a multi-socket data processing system, the system comprising:
a plurality of System-on-Chips (SOCS), wherein the plurality of SOCS are interconnected through a communication bus, each SOC includes a plurality of processor cores, one SOC of the plurality of SOCS is designated as a primary SOC, and each SOC of the plurality of SOCS is disposed in a different socket;
a global synchronization circuit; and
a plurality of sideband channels coupling the global synchronization circuit to each of the plurality of SOCS;
wherein the primary SOC is configured to provide a trigger event over a first sideband channel of the plurality of sideband channels, the trigger event initiating synchronization of the system resources disposed in the plurality of SOCS; and
wherein the global synchronization circuit is configured to broadcast a synchronization event to each of the plurality of SOCS over a second sideband channel of the plurality of sideband channels in response to receiving the trigger event.

### Claim 15 (depends on 14)

The system of claim 14, wherein the plurality of SOCS are identical.

### Claim 16 (depends on 14)

The system of claim 14, wherein the trigger event and the synchronization event are conveyed as part of a boot process.

### Claim 17 (depends on 14)

The system of claim 14, wherein a selected processor core of only the primary SOC provides the trigger event.

### Claim 18 (depends on 14)

The system of claim 14, wherein the synchronization event is an interrupt and, within each SOC of the plurality of SOCS:
the interrupt is received by a selected processor core of the plurality of processor cores; and
the selected processor core in each SOC, in response to the interrupt, executes an interrupt service routine to program the system resource by writing to a control register of the system resource within a same SOC.

### Claim 19 (depends on 14)

The system of claim 14, wherein, within each SOC of the plurality of SOCS:
the synchronization event is received by control logic of the system resource; and
in response to the synchronization event, the control logic of the system resource resets the system resource within a same SOC.
