Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus
First Claim
1. A writethrough cache coherency module for a computer system wherein said computer system includes a bus a CPU connected to said bus, a cache memory connected to said CPU, a main memory connected to said bus, and a DMA controller connected to said bus, said cache coherency module comprising:
- a. a bus snooping sub-module connected to said bus for detecting address, control and data signals on said bus;
b. a DMA address table defining the addresses of registers of said DMA controller;
c. a system address table defining standard I/O addresses;
d. a control logic sub-module connected to said cache memory and said bus snooping sub-module and communicating with said DMA address table and said system address table, said control logic sub-module comparing addresses detected by said bus snooping module with the addresses defined by said DMA address table and said system address table to;
(1) detect a memory write period during which said DMA controller is programmed to allow a device other than said CPU to write to main memory;
(2) flush said cache memory when an I/O address other than a standard I/O address defined by said system address table is read by said CPU during said memory write period; and
(3) flush said cache memory at the end of said memory write period.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and method for supporting a writethrough cache in a computer system not otherwise supporting cache is disclosed. Cache coherency is guaranteed by a cache coherency module detecting the CPU programming a DMA controller to allow a device other than the CPU to transfer data to main memory and, until the data transfer is concluded, flushing the cache each time the CPU reads an address other than an address of a standard computer system component. The cache is also flushed upon conclusion of the data transfer. In computer systems including a bus master device, the cache is flushed whenever the cache coherency module detects the CPU reading an address other than an address of a standard computer system component and whenever the cache coherency module detects an interrupt other than a standard computer system interrupt. The cache coherency module includes a bus snooping sub-module to snoop address, control and data on the bus; a DMA address table and a system address table to define DMA addresses, standard system component addresses and standard system interrupts; and a control logic sub-module to identify DMA programming actions, non-standard addresses and non-standard interrupts, and to issue cache flush signals. Also disclosed is an apparatus and method to automatically determine the range of cacheable addresses in the computer system and to turn on the cache after the computer system is reset.
43 Citations
32 Claims
-
1. A writethrough cache coherency module for a computer system wherein said computer system includes a bus a CPU connected to said bus, a cache memory connected to said CPU, a main memory connected to said bus, and a DMA controller connected to said bus, said cache coherency module comprising:
-
a. a bus snooping sub-module connected to said bus for detecting address, control and data signals on said bus; b. a DMA address table defining the addresses of registers of said DMA controller; c. a system address table defining standard I/O addresses; d. a control logic sub-module connected to said cache memory and said bus snooping sub-module and communicating with said DMA address table and said system address table, said control logic sub-module comparing addresses detected by said bus snooping module with the addresses defined by said DMA address table and said system address table to; (1) detect a memory write period during which said DMA controller is programmed to allow a device other than said CPU to write to main memory; (2) flush said cache memory when an I/O address other than a standard I/O address defined by said system address table is read by said CPU during said memory write period; and (3) flush said cache memory at the end of said memory write period. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A writethrough cache coherency module for a computer system wherein said computer system includes a bus, a CPU connected to said bus, a cache memory connected to said CPU, a main memory connected to said bus, a plurality of addressable devices some portion of which have standard addresses, a DMA controller connected to said bus, at least one external I/O device connected through said DMA controller to said bus, a plurality of additional addressable devices in said computer system each connected to said bus and having either a standard or non-standard address, said cache coherency module comprising:
-
monitoring means connected to said bus for monitoring signals on said bus; storage means including the addresses of all standard address devices in said computer system; logic means connected to said monitoring means and said memory means and to said cache memory for determining the period of time during which said external device is writing to main memory and for supplying a cache flush signal to said cache memory upon the completion of said period of time during which said external device is writing to main memory. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A method to maintain cache coherency in a computer system, the method comprising the steps of a cache coherency module:
-
(a) detecting a CPU programming a DMA controller to transfer data to a main memory; (b) detecting conclusion of the data transfer and flushing a cache coupled to the CPU in response; (c) detecting the CPU reading a non-standard address during the time interval between steps (a) and (b) and flushing the cache in response. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method to maintain cache coherency in a computer system having a bus intercoupling a CPU and cache coherency module, the method comprising the steps of the cache coherency module:
-
(a) detecting a bus master coupled to the bus; (b) detecting the CPU reading a non-standard address and flushing a cache coupled to the CPU in response; and (c) detecting a non-standard interrupt and flushing the cache in response thereto. - View Dependent Claims (29, 30, 31, 32)
-
Specification