← Back to Patent Explorer
US5724549A Expired / Lapsed US ⏱️ 0.0 years remaining

Cache coherency without bus master arbitration signals

Assignee: Fuji Electric Co Ltd
•
Filing: 1993-10-01
•
Granted: 1998-03-03
•
Expires: 2013-10-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method of data communication between asynchronous processes of a computer system is disclosed in connection with a cache coherency system for a processor-cache used in a multi-master computer system in which bus arbitration signals either are not available to the processor-cache, or are not exclusively relied on by the processor-cache to assure validity of the data in the cache (e.g., a 386-bus compatible computer system using an external secondary cache in which bus arbitration signals are only connected to and used by the secondary cache controller). In an exemplary external-chip implementation, the cache coherency system (120) comprises two PLAs-a FLUSH module (122) and a WAVESHAPING module (124). The FLUSH module (a) receives selected bus cycle definition and control signals from a microprocessor ((110), (b) detects FLUSH (cache invalidation) conditions, i.e., bus master synchronization events, and for each such FLUSH condition, (c) provides a FLUSH output signal. The WAVESHAPING module provides a corresponding CPU/FLUSH signal to the microprocessor with the appropriate set up and hold time. The exemplary bus master synchronization events, or FLUSH conditions, that cause cache invalidation are: (a) hardware generated interrupts, and (b) read or read/write accesses to I/O address space, except for those directed to a hard disk or an external coprocessor. If the bus architecture uses memory-mapped I/O, accesses to selected regions of memory-mapped I/O space could also be used. The cache coherency functionality could be implemented on-board the microprocessor.

Inventors

  • 👤 Thomas D. Selgas
  • 👤 Thomas B. Brightman
  • 👤 William C. Patton, Jr.

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 15:16
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0831

Claims Analysis

Total Claims: 47
Claim 1
Independent Claim 87 words
A data processor suitable for operation in a shared memory computer system, comprising an execution unit operably coupled with a buffer including addressable data storage locations accessible by said execution unit, and a detector coupled to said processor to detect signals generated by said processor representing at least one of (A) accesses to I/O space, and (B) accesses to memory mapped I/O space, and to output a data invalidation signal to at least some of said data storage locations of said buffer in response to said detection.
Claim 2
Dependent Claim 87 words
A data processor suitable for operation in a shared memory computer system, comprising an execution unit operably coupled with a buffer including addressable data storage locations accessible by said execution unit, and a detector coupled to said processor to detect signals generated by said processor representing at least one of (A) accesses to I/O space, and (B) accesses to memory mapped I/O space, and to output a data invalidation signal to at least some of said data storage locations of said buffer in response to said detection.
Claim 3
Dependent Claim 13 words
The data processor of claim 1, wherein said buffer is a local cache.
Claim 4
Dependent Claim 14 words
The data processor of claim 1, wherein said buffer is processor-local write through cache.
Claim 5
Dependent Claim 30 words
The data processor of claim 1, wherein said detector is coupled to said processor, externally of said processor, to receive either or both of said signals generated by said processor.
Claim 6
Dependent Claim 15 words
The data processor of claim 1, wherein said accesses to I/O space include read accesses.
Claim 7
Dependent Claim 15 words
The data processor of claim 1, wherein said accesses to I/O space include read/write accesses.
Claim 8
Dependent Claim 25 words
The data processor of claim 1, wherein said accesses to I/O space include accesses to all locations except non-DMA disk and external coprocessor space locations.
Claim 9
Dependent Claim 114 words
A data processor suitable for operation in a shared memory computer system in which a plurality of bus masters, including said processor, can access shared memory over a common bus, comprising an execution unit operably coupled with a buffer including addressable data storage locations accessible by said execution unit, and a detector coupled to said processor to detect selected bus cycle definition signals generated by said processor representing at least one of (A) accesses to I/O space, (B) accesses to memory mapped I/O space, and (C) selected hardware generated interrupts, and to output a data invalidation signal to at least some of said data storage locations of said buffer in response to said detection.
Claim 10
Dependent Claim 114 words
A data processor suitable for operation in a shared memory computer system in which a plurality of bus masters, including said processor, can access shared memory over a common bus, comprising an execution unit operably coupled with a buffer including addressable data storage locations accessible by said execution unit, and a detector coupled to said processor to detect selected bus cycle definition signals generated by said processor representing at least one of (A) accesses to I/O space, (B) accesses to memory mapped I/O space, and (C) selected hardware generated interrupts, and to output a data invalidation signal to at least some of said data storage locations of said buffer in response to said detection.
Claim 11
Dependent Claim 40 words
The data processor of claim 8, wherein said accesses to I/O space and to memory mapped I/O space comprise accesses to all I/O space locations and all memory mapped I/O space locations except non-DMA disk and external coprocessor space locations.
Claim 12
Dependent Claim 14 words
The data processor of claim 8, wherein said signals representing accesses include read accesses.
Claim 13
Dependent Claim 14 words
The data processor of claim 8, wherein said signals representing accesses include read/write accesses.
Claim 14
Dependent Claim 22 words
The data processor of claim 8, wherein said invalidation signal is applied to all of said data storage locations of said buffer.
Claim 15
Dependent Claim 18 words
The data processor of claim 8, wherein said detector includes inputs coupled to signal terminals of said processor.
Claim 16
Dependent Claim 22 words
The data processor of claim 8, wherein said detector includes inputs coupled externally of said processor to signal terminals of said processor.
Claim 17
Dependent Claim 105 words
A data processor suitable for use in a computer system in which a plurality of bus masters, including said processor, can access shared memory over a bus, said processor comprising an internal cache, said cache having data storage locations accessible by said processor, and synchronization event detection means for detecting at said processor the occurrence of bus master synchronization events indicative of possible accesses to said shared memory by bus masters other than said processor, said detection means responsive to detection of a said bus-master synchronization event for outputting a data invalidation signal to at least some of said data storage locations of said cache.
Claim 18
Dependent Claim 105 words
A data processor suitable for use in a computer system in which a plurality of bus masters, including said processor, can access shared memory over a bus, said processor comprising an internal cache, said cache having data storage locations accessible by said processor, and synchronization event detection means for detecting at said processor the occurrence of bus master synchronization events indicative of possible accesses to said shared memory by bus masters other than said processor, said detection means responsive to detection of a said bus-master synchronization event for outputting a data invalidation signal to at least some of said data storage locations of said cache.
Claim 19
Dependent Claim 33 words
The data processor of claim 15, wherein said detection means comprises logic circuitry having inputs coupled to said processor to receive signals generated by said processor indicative of said bus master synchronization events.
Claim 20
Dependent Claim 35 words
The data processor of claim 16, wherein said logic circuitry inputs are coupled to signal terminals of said processor, said logic circuitry including an output coupled to a cache invalidation signal input of said processor.
Claim 21
Dependent Claim 14 words
The data processor of claim 17, wherein said detector comprises a programmable logic array.
Claim 22
Dependent Claim 91 words
A single chip microprocessor suitable for operation in a shared memory computer system in which a plurality of bus masters, including said microprocessor can access shared memory over a common bus; comprising an execution unit operably coupled with a buffer including addressable storage locations accessible by said execution unit, and a detector coupled to said microprocessor to detect signals generated by said microprocessor indicative of bus-master synchronization events, and in response to said detection to output a data invalidation signal to at least some of said storage locations of said buffer.
Claim 23
Dependent Claim 91 words
A single chip microprocessor suitable for operation in a shared memory computer system in which a plurality of bus masters, including said microprocessor can access shared memory over a common bus; comprising an execution unit operably coupled with a buffer including addressable storage locations accessible by said execution unit, and a detector coupled to said microprocessor to detect signals generated by said microprocessor indicative of bus-master synchronization events, and in response to said detection to output a data invalidation signal to at least some of said storage locations of said buffer.
Claim 24
Dependent Claim 31 words
The single chip microprocessor of claim 19, wherein said bus-master synchronization events are indicated by selected bus cycle definition signals representing accesses to I/O space or to memory mapped I/O space.
Claim 25
Dependent Claim 19 words
The single chip microprocessor of claim 20, wherein said bus cycle definition signals comprise Memory/IO, Data/Control, and Write/Read signals.
Claim 26
Dependent Claim 19 words
The single chip microprocessor of claim 19, wherein said bus-master synchronization events are indicated by selected hardware generated interrupts.
Claim 27
Dependent Claim 137 words
A cache coherency system for a processor operably coupled to a cache in which data entries can be stored for access by said processor and operable in a multi-master, shared memory computer system in which bus arbitration signals are not used by said processor to assure validity of data in the cache, comprising: synchronization event detection logic coupled to said processor to detect the occurrence at said processor of hardware generated interrupts; and cache invalidation logic coupled between said synchronization event detection logic and said cache to respond to detection by said synchronization event detection logic of each of said hardware generated interrupts by applying an invalidation signal to at least some of the data entry locations in said cache; whereby valid data will be supplied to said processor in response to subsequent accesses to the cache.
Claim 28
Dependent Claim 137 words
A cache coherency system for a processor operably coupled to a cache in which data entries can be stored for access by said processor and operable in a multi-master, shared memory computer system in which bus arbitration signals are not used by said processor to assure validity of data in the cache, comprising: synchronization event detection logic coupled to said processor to detect the occurrence at said processor of hardware generated interrupts; and cache invalidation logic coupled between said synchronization event detection logic and said cache to respond to detection by said synchronization event detection logic of each of said hardware generated interrupts by applying an invalidation signal to at least some of the data entry locations in said cache; whereby valid data will be supplied to said processor in response to subsequent accesses to the cache.
Claim 29
Dependent Claim 14 words
The cache coherency system of claim 23, wherein the cache is a write-through cache.
Claim 30
Dependent Claim 45 words
The cache coherency system of claim 24, wherein said cache invalidation logic is coupled to said cache to apply said invalidating signal to all data entry locations in said cache in response to detection by said synchronization event detection logic of said hardware generated interrupts.
Claim 31
Dependent Claim 20 words
The cache coherency system of claim 23, wherein said synchronization event detection logic detects only programmably selected hardware generated interrupts.
Claim 32
Dependent Claim 79 words
The cache coherency system of claim 23, wherein said synchronization event detection logic is coupled to said processor also to detect signals generated by said processor to access selected regions of I/O space; and said cache invalidation logic also responds to detection by said synchronization event detection logic of said signals generated by said processor to access selected regions of I/O space by applying said invalidation signal to at least some of the data entry locations in said cache.
Claim 33
Dependent Claim 30 words
The cache coherency system of claim 27, wherein said selected regions of I/O space are all I/O space regions except I/O space regions allocated to non-DMA disks and external coprocessors.
Claim 34
Dependent Claim 31 words
The cache coherency system of claim 27, wherein said selected regions of I/O space are defined by selected addresses, bus cycle definition signals and bus control signals, generated by said processor.
Claim 35
Dependent Claim 26 words
The cache coherency system of claim 29, wherein said signals generated by said processor to access selected regions of I/O space are read or read/write signals.
Claim 36
Dependent Claim 82 words
The cache coherency system of claim 23, wherein the synchronization event detection logic is coupled to said processor also to detect selected signals generated by said processor to access selected regions of memory-mapped I/O space; and said cache invalidation logic also responds to detection by said synchronization event detection logic of said signals generated by said processor to access selected regions of memory-mapped I/O space by applying said invalidation signal to at least some of the data entry locations in said cache.
Claim 37
Dependent Claim 29 words
The cache coherency system of claim 23, wherein said synchronization event detection logic further comprises waveshaping logic to control set up and hold times for said cache invalidation signals.
Claim 38
Dependent Claim 19 words
The cache coherency system of claim 23, wherein said synchronization event detection logic is implemented external to said processor.
Claim 39
Independent Claim 111 words
A method of implementing cache coherency in a multi-master computer system in which a plurality of asynchronous processes access shared memory and associate with each such access a synchronization event that indicates when valid data is available from said shared memory, and wherein at least a selected one of said processes accesses data entries stored in a cache, comprising the steps: monitoring said selected process to detect occurrence of hardware generated interrupts; and in response to each said detection, invalidating at least part of the data entries stored in said local cache; thereby enabling valid data to be supplied to said selected process in response to subsequent accesses to said cache.
Claim 40
Independent Claim 111 words
A method of implementing cache coherency in a multi-master computer system in which a plurality of asynchronous processes access shared memory and associate with each such access a synchronization event that indicates when valid data is available from said shared memory, and wherein at least a selected one of said processes accesses data entries stored in a cache, comprising the steps: monitoring said selected process to detect occurrence of hardware generated interrupts; and in response to each said detection, invalidating at least part of the data entries stored in said local cache; thereby enabling valid data to be supplied to said selected process in response to subsequent accesses to said cache.
Claim 41
Dependent Claim 17 words
The cache coherency method of claim 34, wherein said monitoring step detects programmably selected hardware generated interrupts.
Claim 42
Dependent Claim 47 words
The method of claim 34, wherein said monitoring step further detects activation of selected signals by said selected process to access selected regions of I/O space, and in response to each said further detection, invalidates at least part of the data entries stored in said local cache.
Claim 43
Dependent Claim 28 words
The cache coherency method of claim 36, wherein the selected regions of I/O space are all I/O space locations except non-DMA disk and external coprocessor I/O space locations.
Claim 44
Dependent Claim 45 words
The method of claim 34, wherein said monitoring step further detects activation of selected signals by said selected process to access memory-mapped I/O space; and in response to each said further detection, invalidates at least part of the data entries stored in said local cache.
Claim 45
Independent Claim 91 words
A method of data communication between asynchronous processes in a computer system in which at least one selected process has a process-local buffer storing data entries that can be accessed by said selected process; comprising the steps: monitoring said selected process to detect communication between said selected process and another of said asynchronous processes including occurrence of hardware generated interrupts at said selected process; and in response to each said detected occurrence of a said hardware generated interrupt, invalidating at least a portion of the data entries in such process-local buffer.
Claim 46
Independent Claim 91 words
A method of data communication between asynchronous processes in a computer system in which at least one selected process has a process-local buffer storing data entries that can be accessed by said selected process; comprising the steps: monitoring said selected process to detect communication between said selected process and another of said asynchronous processes including occurrence of hardware generated interrupts at said selected process; and in response to each said detected occurrence of a said hardware generated interrupt, invalidating at least a portion of the data entries in such process-local buffer.
Claim 47
Dependent Claim 21 words
The data communication method of claim 39, wherein the process-local buffer is implemented in a cacheable region of memory address space.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-03-02 2001-09-01 2002-03-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-03-02 2005-09-01 2006-03-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-03-02 2009-09-01 2010-03-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag