IP Library Granted Patent US 12,645,636
Granted Patent B2
US 12,645,636 · App. 18/371,173 · Granted Jun 2, 2026

Time multiplexing technique to transform single core processor in a multicore processor

Inventor: Antonio Anastasio (Naples, IT)
Assignee: STMicroelectronics International N.V.
G06F15/82G06F1/10G06F13/4031
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,645,636
App. No.
18/371,173
Granted
Jun 2, 2026
Kind
B2
Abstract

Disclosed herein a method for transforming a single processor system into an effective multicore system with few modifications to the existing processor. The transformation is achieved by wrapping the processor with a CPU Manager module, which intercepts all CPU transactions, remaps addresses, manages interrupt lines, and controls the CPU clock using clock gating. The transformation to n effective multicore system brings about reduced area and power impacts compared to a full duplication of the whole system, while still reusing the existing program in a multicore environment.

Claims (34)

1 . A computing system, comprising:

a physical memory;

a physical central processing unit (CPU) including a bus arbiter; and

a network-on-chip (NOC) facilitating communication between the physical CPU and the physical memory;

wherein the physical CPU is configured to be subdivided into a plurality of virtual CPUs and a plurality of virtual CPU managers, with each virtual CPU manager being associated with a corresponding one of the virtual CPUs;

wherein the bus arbiter is configured to manage communications between the plurality of virtual CPUs and the NOC by routing communications from the NOC to corresponding ones of the virtual CPUs;

wherein each virtual CPU manager is configured to intercept, dynamically modify, and route transitions on a data bus and an instruction bus of the physical CPU to the virtual CPU associated with that virtual CPU manager; and

wherein each virtual CPU manager is configured to gate clock cycles allocated to its associated virtual CPU during periods when it awaits external data.

2 . The computing system of claim 1 , wherein the clock gating performed by each virtual CPU manager controls an operational frequency of its associated virtual CPU.

3 . The computing system of claim 1 , wherein the external data comprises at least one of an answer to a transaction read or a write acknowledgment.

4 . The computing system of claim 1 , wherein the clock gating performed by each virtual CPU manager pauses clocking of its associated virtual CPU in an absence of an immediate response to a read operation and releases the gating once read data becomes available.

5 . The computing system of claim 1 , wherein the clock gating performed by each virtual CPU manager provides for dynamic allocation of clock cycles among the plurality of virtual CPUs, such that a paused clock cycle from a virtual CPU having its clock gated is reallocated to a virtual CPU not awaiting external data.

6 . The computing system of claim 1 , wherein the bus arbiter manages the communications between the plurality of virtual CPUs and the NOC by executing a round-robin scheme on both the instruction bus and the data bus of the physical CPU.

7 . The computing system of claim 1 , wherein each virtual CPU manager maintains a dynamic mapping between virtual memory addresses used by its associated virtual CPU and physical memory addresses within the physical memory.

8 . The computing system of claim 7 , wherein the dynamic mapping provides that each virtual CPU accesses a distinct memory window within the physical memory.

9 . The computing system of claim 1 , wherein each virtual CPU manager adjusts addresses for transitions on the data bus to enable its associated virtual CPU to access its designated portion of the physical memory.

10 . The computing system of claim 1 , wherein each virtual CPU is associated with a dedicated peripheral space for peripheral access.

11 . The computing system of claim 1 , wherein at least some of the plurality of virtual CPUs are associated with given shared peripherals in a shared peripheral space, with one of the virtual CPU managers exclusively manages the given shared peripherals.

12 . The computing system of claim 11 , wherein the given shared peripherals include timers.

13 . The computing system of claim 11 , wherein the given shared peripherals include UARTs.

14 . A method of dynamically transforming a single-core central processing unit (CPU) into multiple virtual CPUs, the method comprising:

subdividing a physical CPU connected to a physical memory via a network-on-chip (NOC) into a plurality of virtual CPUs;

allocating a plurality of virtual CPU managers such each virtual CPU manager is associated with a corresponding one of the virtual CPUs;

utilizing a bus arbiter within the physical CPU to manage communications between the plurality of virtual CPUs and the NOC, by routing communications from the NOC to corresponding ones of the virtual CPUs;

intercepting, by each virtual CPU manager, transactions on a data bus and an instruction bus of the physical CPU, and dynamically modifying and routing the intercepted transactions to the virtual CPU associated with that virtual CPU manager; and

gating, by each virtual CPU manager, clock cycles allocated to its associated virtual CPU during periods when it awaits external data.

15 . The method of claim 14 , wherein the gating performed by each virtual CPU manager controls an operational frequency of its associated virtual CPU.

16 . The method of claim 14 , wherein the external data comprises at least one of an answer to a transaction read or a write acknowledgment.

17 . The method of claim 14 , wherein gating comprises: detecting, by a given virtual CPU manager, an absence of data transactions for its associated virtual CPU; and temporarily halting clock cycles to the associated virtual CPU in response to the detected absence.

18 . The method of claim 17 , further comprising: monitoring, by the given virtual CPU manager, for a resumption of external data transactions for the associated virtual CPU; and releasing the gating of the clock cycles for the associated virtual CPU upon detection of the resumption.

19 . The method of claim 14 , wherein the gating performed by each virtual CPU manager pauses clocking of its associated virtual CPU in an absence of an immediate response to a read operation and releases the gating once read data becomes available.

20 . The method of claim 14 , wherein the gating performed by each virtual CPU manager provides for dynamic allocation of clock cycles among the plurality of virtual CPUs, such that a paused clock cycle from a virtual CPU having its clock gated is reallocated to a virtual CPU not awaiting external data.

21 . The method of claim 14 , wherein the bus arbiter is used to manages the communications between the plurality of virtual CPUs and the NOC by executing a round-robin scheme on both the instruction bus and the data bus of the physical CPU.

22 . The method of claim 14 , further comprising using each virtual CPU manager to maintain a dynamic mapping between virtual memory addresses used by its associated virtual CPU and physical memory addresses within the physical memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2024
From: STMICROELECTRONICS S.R.L.
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 068434/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2023
From: ANASTASIO, ANTONIO
To: STMIROELECTRONICS S.R.L.
Reel/Frame 064985/0211 →
Continuity (1)
Related Publication 20250103552A1 · Mar 27, 2025
References Cited (8)
US 11740921B2 · Olmsted-Thompson · 2023 [cited by examiner]
US 20220244978A1 · Dale et al. · 2022 [cited by applicant]
US 20220414052A1 · Li et al. · 2022 [cited by applicant]
US 20230070764A1 · Deshpande et al. · 2023 [cited by applicant]
US 20240111560A1 · Panda · 2024 [cited by examiner]
CN 109542831B · 2023 [cited by applicant]
Wilson, Michelle: “What Is Hyper-Threading?,” Hewlett Packard, Nov. 12, 2019, 11 pgs. [cited by applicant]
Intel Corporation: “Hyper-Threading Technology Architecture and Microarchitecture,” Trusted Connectivity Alliance, Dec. 2009, 192 pgs. [cited by applicant]