Computer system supporting both dirty-shared and non dirty-shared data processing entities
First Claim
1. A computer system comprising:
- a plurality of processors; and
a main memory coupled to the plurality of processors by an interconnect fabric, the main memory organized to store data in terms of memory blocks at least one or more of which are shared by the plurality of processors, wherein, the processors store memory blocks to which they have write access in a dirty state, at least one processor operates in a dirty-shared mode such that the at least one dirty-shared processor is configured to share memory blocks that the dirty-shared processor holds in the dirty state with one or more other processors, and at least one processor operates in a non dirty-shared mode such that the at least one non dirty-shared processor is precluded from sharing memory blocks that the non dirty-shared processor holds in the dirty state with one or more other processors.
5 Assignments
0 Petitions
Accused Products
Abstract
A computer system supports a first set of processors configured to operate in a dirty-shared mode and a second set of processors configured to operate in a non dirty-shared mode. The computer system may include a portion of shared memory that stores data in terms of memory blocks. Upon receiving a snoop read requesting shared access to a memory block held in a dirty state, a dirty-shared processor sends a copy of the memory block to the originator of the snoop read and retains a valid a copy of the block in its cache. Non dirty-shared processors additionally write the block back to main memory in response to snoop reads and may also send a copy to the originator. Until the write back is completed at main memory or another processor is granted write access to the block, the dirty-shared and non dirty-shared processors preferably continue to satisfy subsequent snoop reads targeting the memory block.
25 Citations
14 Claims
-
1. A computer system comprising:
-
a plurality of processors; and
a main memory coupled to the plurality of processors by an interconnect fabric, the main memory organized to store data in terms of memory blocks at least one or more of which are shared by the plurality of processors, wherein, the processors store memory blocks to which they have write access in a dirty state, at least one processor operates in a dirty-shared mode such that the at least one dirty-shared processor is configured to share memory blocks that the dirty-shared processor holds in the dirty state with one or more other processors, and at least one processor operates in a non dirty-shared mode such that the at least one non dirty-shared processor is precluded from sharing memory blocks that the non dirty-shared processor holds in the dirty state with one or more other processors. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for use by a computer system having a plurality of processors and a main memory configured to store data in terms of memory blocks accessible by the plurality of processors through an interconnect fabric, the method comprising the steps of:
-
storing a memory block at a processor that has write access to the memory block in a dirty state;
responding to a snoop read received at a first processor that targets a dirty memory block by writing the dirty memory block from the first processor back to the main memory; and
responding to a snoop read initiated by a source processor and received at a second processor that targets a dirty memory block by sending a copy of the dirty memory block from the second processor to the source processor without writing the dirty memory block back to the main memory. - View Dependent Claims (13, 14)
-
Specification