Claims
- 1. A method of controlling a cache to provide memory coherency, comprising the steps of:
- mapping modification data to be written to said cache to a specific location in a system memory;
- writing said modification data only to said cache prior to said cache obtaining ownership of original data residing in said system memory at said specific location;
- mapping said modification data in said cache to an address corresponding to a memory sector address containing said copy of said original data
- reading a copy of said original data at said specific location from said system memory; includes
- arbitrating for ownership of a system bus such that said copy of said original data is read from said system memory; and
- gaining ownership of said original data,
- creating merged data by merging said modification data with said copy of said original data from said specific location in said system memory;
- initiating an operation to write said merged data to said specific location in said system memory;
- detecting a snoop hit, by a snooping processor, during either said step of creating or said step of initiating; and
- preventing a snoop push operation from occurring upon detection of said snoop hit by issuing a retry signal to said snooping processor;
- wherein said step of initiating is implemented independent of said snoop hit.
- 2. A method according to claim 1 wherein said step of creating comprises the step of:
- determining whether said modification data partially fills said memory sector;
- combining said modification data partially filling said memory sector, and a portion of said original data, which is contained in a remainder of said memory sector.
- 3. A method according to claim 2 wherein said step of initiating comprises the step of arbitrating for ownership of said system bus such that said merged data is written to said system memory at said memory sector address.
- 4. A system for controlling a cache to provide memory coherency, comprising:
- means for mapping modification data to be written to said cache to a specific location in a system memory;
- means for writing said modification data only to said cache prior to said cache obtaining ownership of data residing in said system memory at a specific location;
- and further comprises:
- an input/output device writing data to the cache of said at least one control device; and
- first circuit means within said at least one control device for issuing a write control signal,
- second circuit means within said at least one control device for issuing address retry control signal to prevent said snoop push operation upon an occurrence of a snoop hit,
- means for reading a copy of said data at said specific location from said system memory,
- and further comprises
- first circuit means within said at least one control device for issuing a read with intent to modify bus control signal;
- means for creating merged data by merging said modification data with said copy of said data from said specific location in said system memory;
- means for initiating an operation to write said merged data to said specific location in said system memory;
- means for detecting a snoop hit, by a snooping processor, while said merged data is being created or said operation to write is being initiated; and
- means for preventing a snoop push operation from occurring upon detection of said snoop hit, by issuing a retry signal to said snooping processor;
- wherein said means for initiating implements said operation to write independent of said snoop hit
- wherein said means for reading, and said means for initiating further comprise a second circuit means for arbitrating for ownership of said system bus.
- 5. A system according to claim 4 wherein said system for controlling, further comprises:
- a central processing unit;
- at least one control device including said cache;
- a system bus connecting said central processing unit, said system memory and said at least one control device.
Parent Case Info
This is a continuation of application Ser. No. 08/123,817 filed Sep. 20, 1993.
US Referenced Citations (15)
Foreign Referenced Citations (2)
Number |
Date |
Country |
0309994 |
Apr 1989 |
EPX |
0559409A1 |
Mar 1993 |
EPX |
Continuations (1)
|
Number |
Date |
Country |
Parent |
123817 |
Sep 1993 |
|