IP Library › Granted Patent US 12,147,343
Granted Patent B2
US 12,147,343 · App. 18/507,836 · Granted Nov 19, 2024

Multiprocessor system and data management method thereof

Inventors: Do Hun Kim (Yongin-si, KR); Keebum Shin (Seongnam-si, KR); Kwangsun Lee (Yongin-si, KR)
Assignee: METISX CO., LTD.
G06F12/0811G06F9/30043
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,147,343
App. No.
18/507,836
Granted
Nov 19, 2024
Kind
B2
Abstract

A multiprocessor system may include a plurality of processors including a first processor and a second processor; a first cache memory corresponding to the first processor; a second cache memory corresponding to the first processor and the second processor and storing a plurality of cache lines; and a controller manages data stored in the second cache memory. The second cache memory includes at least one first cache line in which data is written by the first processor and at least one second cache line in which data is written by the second processor. The controller: receives a command associated with a data update from the first processor, and in response to the command, sets the first cache line as a clean cache line or an invalidated cache line while not setting the second cache line as a clean cache line or an invalidated cache line.

Claims (69)

1. A multiprocessor system comprising:

a plurality of processors including a first processor and a second processor;

a first cache memory configured to correspond to the first processor;

a second cache memory being at a level different from the first cache memory, corresponding to the first processor and the second processor, and configured to store a plurality of cache lines; and

a controller configured to manage data stored in the second cache memory,

wherein the second cache memory comprises at least one first cache line in which data is written by the first processor and at least one second cache line in which data is written by the second processor, and

wherein the controller is further configured to:

receive a command associated with a data update from the first processor, and

in response to the command, set the at least one first cache line as a clean cache line or an invalidated cache line while not setting the at least one second cache line as a clean cache line or an invalidated cache line,

wherein the controller is further configured to, in response to the command, selectively set a cache line, in which a first identifier (ID) of the first processor is written to a cache tag, out of a plurality of cache lines of the second cache memory as a clean cache line or an invalidated cache line,

wherein the controller is further configured to receive a signal indicating an ID of a processor that writes data to the second cache memory according to an Advanced extensible Interface (AXI) protocol from any one of the plurality of processors.

2. The multiprocessor system of claim 1 , wherein the command associated with the data update is a partial flush command or a partial invalidate command.

3. The multiprocessor system of claim 2 , wherein the command associated with the data update is the partial flush command, and

the controller is further configured to:

in response to the partial flush command, set the at least one first cache line as a clean cache line while not setting the at least one second cache line as a clean cache line.

4. The multiprocessor system of claim 2 , wherein the command associated with the data update is the partial invalidate command, and

the controller is further configured to:

in response to the partial invalidate command, set the at least one first cache line as an invalidated cache line while not setting the at least one second cache line as an invalidated cache line.

5. The multiprocessor system of claim 1 , wherein the controller is further configured to:

write the first ID of the first processor to a cache tag of the at least one first cache line, and

write a second ID of the second processor to a cache tag of the at least one second cache line.

6. The multiprocessor system of claim 1 , wherein the second cache memory comprises:

a first memory region dedicated to the first processor; and

a second memory region dedicated to the second processor, which is different from the first memory region, and

wherein the at least one first cache line is included in the first memory region, and

wherein the at least one second cache line is included in the second memory region.

7. The multiprocessor system of claim 6 , wherein the second cache memory further comprises a third memory region shared by the first processor and the second processor,

the third memory region comprises at least one third cache line to which data is written by the first processor and at least one fourth cache line to which data is written by the second processor, and

wherein the controller is further configured to:

in response to the command associated with the data update, set the at least one third cache line and the at least one fourth cache line as clean cache lines or invalidated cache lines.

8. The multiprocessor system of claim 1 , wherein the controller is further configured to:

manage a tag table in which a cache tag for each of the plurality of cache lines of the second cache memory is written, and

based on the tag table, determine one or more cache lines, which are to be set as clean cache lines or invalidated cache lines, according to the command from the first processor.

9. A data management method for a system comprising a first processor, a second processor, a first cache memory configured to correspond to the first processor, and a second cache memory being at a level different from the first cache memory and corresponding to the first processor and the second processor, the data management method comprising:

writing data to a first cache line of the second cache memory by the first processor;

writing data to a second cache line of the second cache memory by the second processor;

receiving a command associated with a data update from the first processor;

in response to the command, setting the first cache line as a clean cache line or an invalidated cache line while not setting the second cache line as a clean cache line or an invalidated cache line; and

determining one or more cache lines, which are to be set as clean cache lines or invalidated cache lines, according to the command from the first processor, based on a tag table in which a cache tag for each of a plurality of cache lines of the second cache memory is written,

wherein the writing the data to the first cache line comprises receiving a first signal indicating a first identifier (ID) of the first processor from the first processor according to an Advanced extensible Interface (AXI) protocol, and

wherein the writing the data to the second cache line comprises receiving a second signal indicating a second ID of the second processor from the second processor according to the AXI protocol.

10. The data management method of claim 9 , wherein the command associated with the data update is a partial flush command or a partial invalidate command.

11. The data management method of claim 9 , wherein the writing the data to the first cache line comprises writing the first ID of the first processor to a cache tag of the first cache line; and

the writing the data to the second cache line comprises writing the second ID of the second processor to a cache tag of the second cache line.

12. The data management method of claim 9 , wherein the setting of the first cache line as the clean cache line or the invalidated cache line while not setting the second cache line as the clean cache line or the invalidated cache line comprises:

selectively setting a cache line, in which the first ID of the first processor is written to a cache tag, out of a plurality of cache lines of the second cache memory as a clean cache line or an invalidated cache line.

13. The data management method of claim 9 , wherein the second cache memory comprises:

a first memory region dedicated to the first processor; and

a second memory region dedicated to the second processor, which is different from the first memory region, and

wherein the first cache line is included in the first memory region, and

wherein the second cache line is included in the second memory region.

14. The data management method of claim 13 , wherein the second cache memory further comprises a third memory region shared by the first processor and the second processor,

the third memory region comprises at least one third cache line to which data is written by the first processor and at least one fourth cache line to which data is written by the second processor, and

the data management method further comprising:

in response to the command associated with the data update, setting the at least one third cache line and the at least one fourth cache line as clean cache lines or invalidated cache lines.

15. A data management method for a system comprising a first processor, a second processor, a first cache memory configured to correspond to the first processor, and a second cache memory being at a level different from the first cache memory and corresponding to the first processor and the second processor, the data management method comprising:

writing data to a first cache line of the second cache memory by the first processor;

writing data to a second cache line of the second cache memory by the second processor;

receiving a command associated with a data update from the first processor; and

in response to the command, setting the first cache line as a clean cache line or an invalidated cache line while not setting the second cache line as a clean cache line or an invalidated cache line,

wherein the second cache memory comprises a first memory region dedicated to the first processor, and a second memory region dedicated to the second processor, which is different from the first memory region,

wherein the first cache line is included in the first memory region,

wherein the second cache line is included in the second memory region,

wherein the second cache memory further comprises a third memory region shared by the first processor and the second processor,

wherein the third memory region comprises at least one third cache line to which data is written by the first processor and at least one fourth cache line to which data is written by the second processor,

wherein the data management method further comprises:

in response to the command associated with the data update, setting the at least one third cache line and the at least one fourth cache line as clean cache lines or invalidated cache lines,

wherein the writing the data to the first cache line comprises receiving a first signal indicating a first identifier (ID) of the first processor from the first processor according to an Advanced extensible Interface (AXI) protocol, and

wherein the writing the data to the second cache line comprises receiving a second signal indicating a second ID of the second processor from the second processor according to the AXI protocol.

Assignments (2)
CHANGE OF NAME Recorded Jan 13, 2025
From: METISX CO., LTD.
To: XCENA INC.
Reel/Frame 069877/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2023
From: KIM, DO HUN; SHIN, KEEBUM; LEE, KWANGSUN
To: METISX CO., LTD.
Reel/Frame 065561/0064 →
Priority Claims (1)
KR 10-2023-0051369 · Apr 19, 2023 · national
Continuity (1)
Related Publication 20240354250A1 · Oct 24, 2024