Claims
- 1. A system, comprising:
a first processor having cache memory; a second processor having cache memory and a coherence buffer that can be enabled and disabled by the first processor; and a memory subsystem coupled to the first and second processors; wherein for a write transaction originating from the first processor, the first processor enables the second processor's coherence buffer, and information associated with the first processor's write transaction is stored in the second processor's coherence buffer to maintain data coherency between the first and second processors.
- 2. The system of claim 1 wherein for write transactions originating from the second processor, the second processor sends a write exception to the first processor to maintain data coherency with an L1 cache system included in the first processor.
- 3. The system of claim 1 wherein the information stored in the coherence buffer is written to the second processor's cache memory.
- 4. The system of claim 3 wherein, while writing the data from the second processor's coherence buffer to the cache memory, the second processor stalls if the second processor accesses the cache memory concurrently with the information being written.
- 5. The system of claim 1 wherein the information stored in the second processor's coherence buffer includes an address and the second processor invalidates a line in the second processor's cache corresponding to the address.
- 6. The system of claim 1 wherein the first processor disables the second processor's coherence buffer upon completing a write transaction to shared data.
- 6. The system of claim 1 wherein the first processor enables the first processor's coherence buffer upon originating a write transaction to an area of shared memory in the memory subsystem.
- 7. The system of claim 1 wherein the memory subsystem comprises an L2 memory subsystem and information is stored in the second processor's coherence buffer concurrently with the write transaction completing to the L2 memory subsystem.
- 8. The system of claim 1 wherein a control bit is associated with the coherence buffer and is programmable by the first processor to enable or disable the coherence buffer.
- 9. A cache coherency method usable in a multi-processor system, comprising:
when a first processor originates a write transaction to shared data, enabling a second processor's coherence buffer, and storing information associated with the first processor's write transaction in the second processor's coherence buffer to maintain data coherency between the first and second processors; and when the second processor originates a write transaction to shared data, sending a write exception to the first processor to cause the first processor to write data into cache local to the first processor.
- 10. The method of claim 9 wherein the information comprises an address associated with the write transaction originated by the first processor and the method further comprises invalidating a line in the second processor's cache corresponding to the address.
- 11. The method of claim 9 wherein the information comprises a data value being written by the write transaction originated by the first processor and the method further comprises writing the data value to cache memory in the second processor.
- 12. The method of claim 9 wherein the first processor disables the coherence buffer in the second processor after completing the write transaction originated by the first processor.
Priority Claims (1)
Number |
Date |
Country |
Kind |
03291925.0 |
Jul 2003 |
EP |
|
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Application Serial No. 60/400,391 titled “JSM Protection,” filed Jul. 31, 2002, incorporated herein by reference. This application also claims priority to EPO Application No. 03291925.0, filed Jul. 30, 2003 and entitled “Cache Coherency In A Multi-Processor System,” incorporated herein by reference. This application also may contain subject matter that may relate to the following commonly assigned co-pending applications incorporated herein by reference: “System And Method To Automatically Stack And Unstack Java Local Variables,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35422 (1962-05401); “Memory Management Of Local Variables,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35423 (1962-05402); “Memory Management Of Local Variables Upon A Change Of Context,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35424 (1962-05403); “A Processor With A Split Stack,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35425 (1962-05404); “Using IMPDEP2 For System Commands Related To Java Accelerator Hardware,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35426 (1962-05405); “Test With Immediate And Skip Processor Instruction,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35427 (1962-05406); “Test And Skip Processor Instruction Having At Least One Register Operand,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35248 (1962-05407); “Synchronizing Stack Storage,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35429 (1962-05408); “Methods And Apparatuses For Managing Memory,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35430 (1962-05409); “Write Back Policy For Memory,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35431 (1962-05410); “Methods And Apparatuses For Managing Memory,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35432 (1962-05411); “Mixed Stack-Based RISC Processor,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35433 (1962-05412); “Processor That Accommodates Multiple Instruction Sets And Multiple Decode Modes,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35434 (1962-05413); “System To Dispatch Several Instructions On Available Hardware Resources,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35444 (1962-05414); “Micro-Sequence Execution In A Processor,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35445 (1962-05415); “Program Counter Adjustment Based On The Detection Of An Instruction Prefix,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35452 (1962-05416); “Reformat Logic To Translate Between A Virtual Address And A Compressed Physical Address,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35460 (1962-05417); “Synchronization Of Processor States,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35461 (1962-05418); “Conditional Garbage Based On Monitoring To Improve Real Time Performance,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35485 (1962-05419); “Inter-Processor Control,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35486 (1962-05420); “Concurrent Task Execution In A Multi-Processor, Single Operating System Environment,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35638 (1962-05422); and “A Multi-Processor Computing System Having A Java Stack Machine And A RISC-Based Processor,” Ser. No. ______, filed Jul. 31, 2003, Attorney Docket No. TI-35710 (1962-05423).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60400391 |
Jul 2002 |
US |