Mechanism for writing back selected doublewords of cached dirty data in an integrated processor
First Claim
1. A computer system comprising:
- a bus configured to transfer data signals;
a cache memory operatively coupled to said bus;
a processing unit coupled to said cache memory;
a system memory;
a system memory controller operatively coupled to said bus and to said system memory for controlling storage and retrieval of data within said system memory;
an alternate bus master device coupled to said bus, wherein said alternate bus master device is capable of executing a memory cycle on said bus; and
a cache controller operatively coupled to said cache memory and to said bus for controlling the storage and retrieval of data within said cache memory, wherein said cache controller includes;
a tag logic circuit configured to store a plurality of line addresses indicative of a plurality of lines of data stored within said cache memory and configured to store a plurality of dirty bits associated with each line, wherein a separate dirty bit corresponds to a separate doubleword of data within each line; and
a snoop control circuit configured to control a write-back to said system memory of dirty data stored within said cache memory wherein said snoop control circuit is configured to selectively write-back selected non-sequential doublewords of a given line that are dirty based upon a status of said plurality of dirty bits by asserting an address of a first of said selected non-sequential doublewords on said bus during a first period of a burst write cycle and by modifying a predetermined number of lower order bits of said address to specify an address of a second of said selected non-sequential doublewords during a second period of said burst write cycle;
wherein said system memory controller is configured to sample said predetermined number of lower order bits of said address during said second period of said burst write cycle to determine if a non-sequential doubleword is being written back.
0 Assignments
0 Petitions
Accused Products
Abstract
An integrated processor is provided that includes a cache controller which keeps track of a physical address in the system memory which corresponds to each entry within the cache memory. The address tag and state logic circuit further contains state information consisting of a dirty bit allocated for each doubleword (or word) within each line as well as a valid bit for each line. The dirty bit allocated for each doubleword indicates whether that doubleword is dirty or clean, and the valid bit for each line indicates whether the line is valid or invalid. The cache controller further includes a snoop write-back control circuit which monitors the local bus to determine whether a memory cycle has been executed by an alternate bus master on the local bus. During such a memory cycle of an alternate bus mater, a comparator circuit determines whether a cache hit has occurred. If a cache hit occurs and one or more dirty doublewords are contained within the corresponding line, the snoop write-back control circuit initiates a snoop write-back cycle to write-back only those doublewords within the line that is marked dirty. If two or more doublewords within the hit cache line are marked dirty, the snoop write-back control circuit effectuates the write-back of the dirty data by executing a burst write cycle on the local bus.
60 Citations
12 Claims
-
1. A computer system comprising:
-
a bus configured to transfer data signals; a cache memory operatively coupled to said bus; a processing unit coupled to said cache memory; a system memory; a system memory controller operatively coupled to said bus and to said system memory for controlling storage and retrieval of data within said system memory; an alternate bus master device coupled to said bus, wherein said alternate bus master device is capable of executing a memory cycle on said bus; and a cache controller operatively coupled to said cache memory and to said bus for controlling the storage and retrieval of data within said cache memory, wherein said cache controller includes; a tag logic circuit configured to store a plurality of line addresses indicative of a plurality of lines of data stored within said cache memory and configured to store a plurality of dirty bits associated with each line, wherein a separate dirty bit corresponds to a separate doubleword of data within each line; and a snoop control circuit configured to control a write-back to said system memory of dirty data stored within said cache memory wherein said snoop control circuit is configured to selectively write-back selected non-sequential doublewords of a given line that are dirty based upon a status of said plurality of dirty bits by asserting an address of a first of said selected non-sequential doublewords on said bus during a first period of a burst write cycle and by modifying a predetermined number of lower order bits of said address to specify an address of a second of said selected non-sequential doublewords during a second period of said burst write cycle; wherein said system memory controller is configured to sample said predetermined number of lower order bits of said address during said second period of said burst write cycle to determine if a non-sequential doubleword is being written back. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An integrated processor comprising:
-
a CPU core; a bus operatively coupled to said CPU core and configured to transfer data signals; a cache memory operatively coupled to said bus; a system memory controller operatively coupled to said bus configured to control the storage and retrieval of data within a system memory; an alternate bus master device coupled to said bus, wherein said alternate bus master device is configured to execute a memory cycle on said bus; and a cache controller operatively coupled to said cache memory and to said bus configured to control the storage and retrieval of data within said cache memory, wherein said cache controller includes; a tag logic circuit configured to store a plurality of line addresses indicative of a plurality of lines of data stored within said cache memory and configured to store a plurality of dirty bits associated with each line, wherein a separate dirty bit corresponds to a separate doubleword of data within each line; and a snoop control circuit configured to control said write-back to said system memory of dirty data stored within said cache memory wherein said snoop control circuit is configured to selectively write-back selected non-sequential doublewords of a given line that are dirty based upon a status of said plurality of dirty bits by asserting an address of a first of said selected non-sequential doublewords on said bus during a first period of a burst write cycle and by modifying a predetermined number of lower bits of said address to specify an address of a second of said selected non-sequential doublewords during a second period of said burst write cycle; wherein said system memory controller is configured to sample said predetermined number of lower order bits of said address during said second period of said burst write cycle to determine if a non-sequential doubleword is being written back. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A snoop control method for a cache-based computer system comprising the steps of:
-
storing a plurality of line addresses indicative of a plurality of lines of data within a cache memory; storing a plurality of dirty bits associated with each line, wherein a separate dirty bit corresponds to each doubleword of data within each line; initiating a memory cycle to transfer data from an alternate bus master to a system memory; detecting said memory cycle within a cache controller; determining whether a corresponding line resides within said cache memory; selectively writing back to said system memory non-sequential doublewords within said corresponding line that are indicated to be dirty by a status of said plurality of dirty bits, wherein said selectively writing back includes asserting an address of a first of said selected non-sequential doublewords on said bus during a first period of a burst write cycle and modifying a predetermined number of lower bits of said address to specify an address of a second of said selected non-sequential doublewords during a second period of said burst write cycle; and sampling said predetermined number of lower order bits of said address during said second period of said burst write cycle to determine whether said next doubleword is a sequential or non-sequential doubleword. - View Dependent Claims (12)
-
Specification