Nova Patents
EP0397995A2

Mixed size data cache status fields.

Abstract

A data cache (16) capable of operation in a write-back (copyback) mode. The data cache design provides a mechanism for making the data cache (16) coherent with memory (26), without writing the entire cache entry to memory (26), thereby reducing bus utilization. Each data cache entry is comprised of three items: data, a tag address, and a mixed size status field. The mixed size status fields provide one bit to indicate the validity of the data cache entry and multiple bits to indicate if the entry contains data that has not been written to memory (26) (dirtiness). Multiple dirty bits provide a data cache controller (14) with sufficient information to minimize the number of memory accesses used to unload a dirty entry. The data cache controller (14) uses the multiple dirty bits to determine the quantity and type of accesses required to write the dirty data to memory (26). The portions of the entry being replaced that are clean (unmodified) are not written to memory (26).

EP0397995A2, drawing sheet 1
Sheet 1 of 5

Term

Term ended

Projected expiry passed 23 March 2010, 16.5 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

9 claims: 3 independent, 6 dependent

  1. 1
    A data processing system (10), comprising:a data processor (12);a memory (26) for storing a plurality of data entries, identified by a plurality of memory addresses, and for providing said data entries to said processor;a first communications bus (24), for transferring said plurality of data entries between said memory (26) and said data processor (12), in response to a first control signal;a bus controller (20);a cache (16), coupled to said memory (26) and said data processor (12), for storing in each of a plurality of cache lines an addressable data cache entry containing a plurality of bits of data, for receiving from said data processor (12) a modified data entry, in a first write mode, and for transferring at least one of said plurality of bits of said addressable data cache entry to said memory (26), in a second write mode, said cache (16) comprising: register means (36, 38, 40, 42) for storing in each of said plurality of cache lines said addressable data cache entry containing said plurality of bits of data, and for storing a first state entry, indicating that said cache line is valid, and a second state entry corresponding to each of said plurality of bits of data, indicating said plurality of bits of data is consistent or inconsistent with a data entry at a memory address corresponding to said addressable data cache entry;first means (22), coupled to said cache (16) and said bus controller (20), for receiving said modified data entry from said cache (16) and transferring said modified data entry to said memory (26), when said corresponding second state entry indicates that said plurality of bits of data is inconsistent with said data entry at said memory address corresponding to said addressable data cache entry, and for receiving a plurality of replacement data entries from said memory (26), and transferring said replacement data entries to said register means (36, 38, 40, 42);and cache controller means (14), coupled to said first means (22), and said register means (36, 38, 40, 42), for reading said second state entry corresponding to each of said plurality of bits of data, for controlling the transfer of said modified data entry to said memory (26), and for controlling the transfer of said plurality of replacement data entries from said first means (22) to said cache (16).
  2. 6
    In a data processing system (10) having a cache (16) for storing a plurality of addressable data entries in a plurality of cache lines, with each of said plurality of addressable data entries containing a plurality of bits of data, a first status entry, indicating the validity of said cache line, and a second status entry, indicating the consistency of each of said plurality of bits of data with a data entry contained in a memory (26) at a corresponding memory address, and for selectively transferring at least one of said plurality of bits of data to said memory (26), via a communications bus (24), when at least one of said plurality of bits of data is inconsistent with said data entry contained in said corresponding memory address, said cache (16) comprising:register means (36, 38, 40, 42) for storing each of said plurality of addressable data entries, with each of said plurality of addressable data entries being a copy of said data entry contained in said memory (26) at said corresponding memory address;means, coupled to said register means (36, 38, 40, 42), for transferring at least one of said plurality of bits of data to said memory (26), when said second state entry indicates that at least one of said plurality of bits of data is inconsistent with said data entry at said corresponding memory address, and for receiving a plurality of replacement data entries from said memory (26) to update said cache line, comprising: buffer means (22) for temporarily storing at least one of said plurality of bits of data, for transfer to said memory (26), in a first mode, and for temporarily storing a replacement data cache entry, received from said memory (26), in a second mode;and control means (14), coupled to said register means, for enabling and disabling said cache (16), and for providing a plurality of control signals to a bus controller (20), thereby signalling said bus controller (20) to transfer said plurality of bits of data from said cache (16) to said memory (26), in said first mode, and to transfer said replacement data cache entry from said memory (26) to said cache (16), in said second mode.
  3. 9
    A cache memory system, for storing a plurality of addressable data cache entries in a plurality of cache lines, with each of said plurality of addressable data cache entries containing a plurality of bits of data, a first status entry, indicating the validity of said cache line, and a second status entry, indicating the consistency of each of said plurality of data bits with a data entry contained in a memory (26) at a corresponding memory address, and for selectively transferring at least one of said plurality of bits of data to said memory (26), via a communications bus (24), when at least one of said plurality of bits of data is inconsistent with said data entry contained in said corresponding memory address, said cache memory system, comprising:register means (36, 38, 40, 42) for storing each of said plurality of addressable data cache entries, with each of said plurality of addressable data cache entries being a copy of said data entry contained in said memory (26) at said corresponding memory address;means for transferring at least one of said plurality of bits of data to said memory (26), when said second state entry indicates that at least one of said plurality of bits of data is inconsistent with with said data entry at said corresponding memory address, and for receiving a plurality of replacement data entries from said memory (26) to update said cache line, comprising: buffer means (22) for temporarily storing at least one of said plurality of bits of data, for transfer to said memory, in a first mode, and for temporarily storing a replacement data cache entry, received from said memory, in a second mode;and control means (14), coupled to said register means, for enabling and disabling said cache (16), and for providing a plurality of control signals to a bus controller (20), thereby signalling said bus controller (20) to transfer said plurality of bits of data from said cache (16) to said memory (26), in a first mode, and to transfer said replacement data cache entry from said memory (26) to said cache (16), in said second mode.