A computer system incorporates bus snooping with a bus that does not enable bus snooping, such as the Advanced High-Performance bus (AHB), to maintain cache coherency between caching devices and shared memory. bus snooping capabilities are enabled by a stand-alone bus snooping device connected to the bus and the caching device or by bus snooping functions incorporated into the caching device. The bus snooping device monitors communications on the bus and causes invalidation of cached information to maintain cache coherency before the communications complete.
|
15. A bus snooping system connected to a data bus for maintaining information coherency between caching devices also connected to the data bus, comprising:
a bus snooping logic element coupled to the data bus for determining whether information associated with a particular caching device is consistent with information communicated on the data bus, wherein the bus snooping logic is adapted to generate a delay signal to prevent other devices from receiving the information communicated on the data bus until the data bus snooping logic finishes the determination of consistency; a multiplexer coupled to receive ready signals from the other devices and coupled for selecting which of the other devices receives the communicated information; and a logic gate coupled to receive the delay signal from the bus snooping logic element and coupled to receive from the multiplexer a ready signal of one or more of the other devices, wherein the logic gate is adapted to delay the ready signal based on the delay signal.
1. A computer system comprising:
a receiving device containing primary information for use by the computer system and asserting a signal indicating that the receiving device is ready to receive new information; a bus connected to the receiving device and having data, address and control signals exclusive of a signal related to bus snooping and inclusive of the signal asserted by the receiving device indicating that the receiving device is ready to receive the new information; a caching device connected to the bus and containing cached information that includes a copy of the primary information; a sending device connected to the bus to establish information transfer activity on the bus and to send the new information through the bus to the receiving device in response to assertion of the ready indicating signal by the receiving device, the new information replacing the primary information in the receiving device; and a bus snooping device connected to the bus to disable and enable the ready indicating signal, to monitor the signals on the bus to detect whether the information transfer activity changes the primary information and connected to the caching device to cause invalidation of the cached information in the caching device upon detecting that the information transfer activity changes the primary information, the bus snooping device delaying the information transfer activity by temporarily disabling the ready indicating signal until after detecting whether the information transfer activity changes the primary information, wherein said receiving device acts as a slave device on said bus and wherein said sending device acts as a master device on said bus.
8. A method of maintaining cache coherency in a computer system having a bus that does not include bus snooping capabilities, the computer system including a sending device connected to the bus for sending information, a receiving device connected to the bus for storing the information, a caching device connected to the bus for caching the information and a bus snooping device connected to the bus and the caching device, the sending device initiates transfer activity on the bus, the receiving device sends a ready signal through the bus when the receiving device is ready for the transfer activity, comprising the steps of:
transferring the information through the bus to the receiving device wherein the receiving device acts as a slave device on said bus and wherein said sending device acts as a master device on said bus; caching the information in the caching device; initiating transfer activity on the bus that changes the information in the receiving device; monitoring for the transfer activity on the bus at the bus snooping device; sending the ready signal from the receiving device to the sending device through the bus in response to initiating the transfer activity; detecting the transfer activity at the bus snooping device; delaying the ready signal from reaching the sending device while responding to detecting the transfer activity; determining whether the detected transfer activity changes the information in the receiving device; invalidating the information in the caching device upon determining that the detected transfer activity changes the information in the receiving device; and stopping delaying the ready signal from reaching the sending device.
2. A computer system as defined in
the data, address and control signals of the bus include a signal enabling writing new information to the receiving device; the sending device establishes the information transfer activity on the bus by asserting the write enabling signal on the bus; the bus snooping device monitors the signals on the bus to receive the write enabling signal and to determine whether the new information replaces the primary information in the receiving device; the bus snooping device detects that the information transfer activity changes the primary information by determining that the new information replaces the primary information; and the bus snooping device disables the ready indicating signal while receiving the write enabling signal and determining whether the new information replaces the primary information.
3. A computer system as defined in
a plurality of master devices, including the caching device and the sending device, that initiate the information transfer activity on the bus; and a plurality of slave devices, including the receiving device, that respond to the information transfer activity on the bus; wherein the bus includes a system bus connected to the master devices and the slave devices.
4. A computer system as defined in
each slave device is operative to assert the ready indicating signal when the slave device is ready to respond to the write enabling signal; and only one of the ready indicating signals asserted by the slave devices is selected to be supplied to the master devices and temporarily disabled by the bus snooping device to delay the information transfer activity.
5. A computer system as defined in
6. A computer system as defined in
7. A computer system as defined in
cache coherency within the computer system is maintained by invalidating the cached information in the caching device when the primary information stored in the receiving device is being altered.
9. A method as defined in
changing the information in the receiving device by completing the transfer activity after invalidating the information in the caching device.
10. A method as defined in
asserting a write signal on the bus as part of the initiating of the transfer activity; receiving the write signal at the bus snooping device as part of the detecting of the transfer activity; and disabling the ready signal upon receiving the write signal at the bus snooping device to delay the ready signal from reaching the sending device.
11. A method as defined in
including a plurality of master devices, including the sending device and the caching device, in the computer system connected to the bus to initiate the transfer activity on the bus; including a plurality of slave devices, including the receiving device, in the computer system connected to the bus to respond to the transfer activity on the bus.
12. A method as defined in
each slave device, including the receiving device, asserting the ready signal on the bus in response to initiating the transfer activity; the bus selecting the ready signal from the receiving device for sending to the sending device; the bus snooping device delaying the selected ready signal from reaching the sending device.
14. A method as defined in
including a processor I a cache memory and the bus snooping device within the caching device.
16. The bus snooping system of
17. The bus snooping system of
18. The bus snooping system of
19. The bus snooping system of
20. The bus snooping system of
21. The bus snooping system of
|
This invention relates to computer systems. More particularly, the present invention relates to a new and improved bus snooping device and technique for maintaining coherency between a main memory and one or more cache memories in a computer system having a bus, such as an Advanced High-Performance Bus (AHB), that does not have built-in bus snooping capabilities.
Computer systems typically incorporate information (e.g. data and/or command) "caching" features into some components, such as central processing units (CPU's). The components use a copy of the information maintained in a high-speed memory (cache memory) separate from a slower main memory of the computer system, in which the original, or "primary," copy of the information is kept. Some computer systems, particularly high-end computer systems, incorporate more than one CPU or other component that caches information, i.e. multiple "caching devices." In some of the computer systems that have multiple caching devices, it is sometimes possible for more than one of the caching devices to cache the same information. Therefore, it is important to ensure, after one caching device alters its copy of the information or the original copy in the main memory, that the other caching devices using the same information do not use the previous information, which has become old, or "stale." In other words, the computer system must maintain "coherency" between information stored in the main memory and copies of the information stored in one or more cache memories.
In order to prevent caching devices from using stale information and in order to maintain cache coherency, "bus snooping" features have been incorporated into bus systems through which the caching devices communicate. A protocol for the bus system includes signals which enable bus snooping. Bus snooping essentially monitors activity on the bus system that indicates a change to a copy of the information which has been cached, so that the other copies of the information can be updated or invalidated. The "monitoring" is commonly referred to as "snooping."
A typical prior art bus system 100, which incorporates bus snooping features, as shown in
The caching devices (e.g. bus device 112) that are not involved in the write request monitor the write signal (not shown) on the command lines 102. When the write signal is asserted, the caching bus device 112 reads the address lines 104 and compares the address to the addresses of the information that the caching bus device 112 has cached. Upon a match, the caching bus device 112 invalidates the cached information, so the caching bus device 112 will have to read the new information from the slave bus device 110 when the caching bus device 112 next accesses the information.
Through the command lines 102 the bus system 100 transfers a "hold" signal (not shown) for preventing the master bus device 108 from performing the write command until after the other caching devices (caching bus device 112) have completed the write-signal-snooping and address-comparing functions. After the caching bus device 112 completes the snooping and comparing functions, the caching bus device 112 releases, or deasserts, the hold signal, so the master and slave bus devices 108 and 110 can continue with the write command.
Among bus systems that do not have bus snooping capabilities is the Advanced High-Performance Bus (AHB) (TM) from ARM Limited. The AHB is described in the AMBA (Advanced Microcontroller Bus Architecture) (TM) Specification (Rev 2.0) from ARM Limited. The disclosure of this specification is incorporated herein by this reference. Generally, the AHB is a high-performance "system bus," as distinguished from a "peripheral bus" (e.g. Peripheral Component Interconnect "PCI," Industry Standard Architecture "ISA," etc.), on which the CPU, a Direct Memory Access (DMA), a Digital Signal Processor (DSP), an external memory interface, a peripheral bus bridge and/or an internal memory, among other devices designed to the AMBA Specification (Rev. 2.0), are connected for fast access.
The AMBA Specification (Rev. 2.0) does not include bus snooping capabilities and the AHB protocol described therein does not include signals to maintain cache coherency between devices connected to the AHB. Information cannot be stored in cache memory and shared between caching devices in a computer system having the AHB because the computer system may not operate in a consistent or predictable manner since cache coherency cannot be maintained in the computer system. Therefore, since the AHB does not support bus snooping, only one caching device, such as a master device 118 as shown in
Without the equivalent of a hold signal (not shown) transferred through the command lines 102 (
It is with respect to these and other background considerations that the present invention has evolved.
One aspect of the present invention relates to maintaining cache coherency in a computer system that has a bus system that does not support bus snooping, such as AHB (Advanced High-Performance Bus). The invention also relates to including bus snooping in a computer system having a bus system that does not have a bus signal that enables bus snooping. The invention also relates to a stand-alone bus snooping device, separate from the bus system and the devices that include caching capabilities (caching devices).
Generally, a new and improved bus snooping device monitors, or "snoops," information transfer activity on the bus system on behalf of one or more caching devices to determine when cached information is about to be changed in a "slave" device, such as a main computer memory or other receiving device, so that the cached copy of the information must be invalidated. The protocol under which the bus system operates preferably includes a "ready" signal which the slave device asserts to signal a "master" device, such as a CPU (central processing unit), DMA (direct memory access) or other sending device, that it is ready to receive the information transfer. The bus snooping device intercepts, disables or delays the ready signal until it can determine whether the cached information must be invalidated in the caching device. In this manner, the bus snooping device enables bus snooping capabilities for a bus system that does not include built-in support for bus snooping.
The bus system is preferably a "system bus," such as the AHB, instead of a peripheral bus, since the CPU(s), any other caching devices and other master and/or slave devices typically connect to the system bus of a computer. System. buses, however, are typically proprietary, instead of industry standards, or widely accepted de facto standards, such as PCI (Peripheral Component Interconnect) and ISA (Industry Standard Architecture) are for peripheral buses. The AHB, for example, is a proprietary system bus that has been incorporated into computer systems by several computer makers. The AHB supports multiple CPU's, but does not allow the CPU's to share memory space since it does not support bus snooping. Therefore, without changing any aspect of the AHB, the present invention enables bus snooping and the incorporation of multiple memory-sharing CPU's in a computer system having an AHB.
A more complete appreciation of the present invention and its improvements can be obtained by reference to the accompanying drawings, which are briefly summarized below, by reference to the following detailed description of a presently preferred embodiment of the invention, and by reference to the appended claims.
The bus snooping capabilities of the present invention are preferably incorporated into a computer system, such as the exemplary computer system 200 shown in FIG. 4. The computer system 200 includes a conventional system bus 202, such as an Advanced High-Performance Bus (AHB), that does not have bus snooping capabilities. Several bus devices 204-220 are connected to the system bus 202 to initiate and respond to information transfer activity across the system bus 202. Additionally, a conventional bus controller 222 is connected to the system bus 202 to control operation thereof.
The bus devices 204-222 typically include master devices 204, 206, 208, 210 and 212 that request access to other bus devices through the system bus 202, slave devices 214 and 216 that respond to the access requests from the master devices and master/slave devices 218 and 220 that function as either master devices or slave devices depending on the circumstances. The master devices 204-212 typically include one or more conventional central processing units (CPU's) 204 and 206, master device(s) 208 having bus snooping capabilities and other conventional master devices 210 and 212. The slave devices 214 and 216 typically include a conventional main computer memory 214 and other conventional slave device(s) 216. The master/slave devices typically include conventional bus bridge(s) 218 and other conventional master/slave device(s) 220. The bus bridge 218 preferably connects between the system bus 202 and a peripheral bus 224 to which various conventional peripheral devices are connected, such as a keyboard 226, a pointer device 228, a hard drive 230, a floppy drive 232, a compact disk (CD) drive 234, a printer 236 and other conventional peripheral I/O (input/output) devices 238.
Some of the bus devices include information caching capabilities (caching devices, e.g. 204, 206, 208 and 212). These caching devices 204, 206208 and 212 cache information for which the primary storage location is in the main memory 214 or other slave device 216. To maintain the coherency of the information between the caching devices 204, 206, 208 and 212 and the main memory 214 or other slave device 216, bus snooping capabilities, as described below, are included in or supplied for the caching devices 204, 206, 208 and 212.
The master device 208, for example, includes built-in new and improved bus snooping capabilities, as shown in FIG. 5. The master device 208 preferably includes a conventional processor 240 connected to a conventional cache memory 242 and to the system bus 202. The master device 208 also includes bus snooping logic 244 connected to the cache memory 242 and to the system bus 202 to perform the bus snooping functions and to supply an information transfer enable signal 246 to the system bus 202. The information transfer enable signal 246 enables and disables the information transfer activity on the system bus 202 while the bus snooping logic 244 performs the bus snooping functions.
The master device 212, on the other hand, is similar to the master device 118 (FIG. 2), as shown in
The CPU's 204 and 206 (
The system bus 202, as shown in
The bus snooping device 248 (
In response to the write signal (not shown) transferred on the control lines 250 (FIG. 7), and when ready to receive the data, each slave device 262 supplies a ready signal 267 on the control lines 250 of the system bus 202 at a multiplexor 268. A decoder 270 receives the identifier for the desired slave device 262 through the other command/address/data lines 270 and decodes the identifier into a "select" signal 272. The select signal 272 is also supplied to the multiplexor 268. With the select signal 272, the multiplexor 268 selects the ready signal 267 from the desired slave device 262 and supplies this ready signal 267 as a selected ready signal 274.
The selected ready signal 274 is not supplied directly to the master devices 260. Instead, it is supplied as an input to an AND gate 276, the other inputs of which are the information transfer enable signals 246 supplied by the bus snooping device 248 connected to the master device 212, the bus snooping logic 244 (
The computer system 200 (
Many other advantages and improvements will be apparent after gaining an understanding of the present invention.
The presently preferred embodiments of the present invention have been shown and described with a degree of particularity. These descriptions are of preferred examples of the invention. In distinction to its preferred examples, it should be understood that the scope of the present invention is defined by the scope of the following claims, which should not necessarily be limited to the detailed description of the preferred embodiments set forth above.
Patent | Priority | Assignee | Title |
10795820, | Feb 08 2017 | ARM Limited | Read transaction tracker lifetimes in a coherent interconnect system |
7013340, | May 18 2000 | Microsoft Technology Licensing, LLC | Postback input handling by server-side control objects |
7320054, | Nov 28 2002 | Fujitsu Limited | Multiprocessor system having a shared memory |
7415630, | Feb 28 2003 | Data Device Corporation | Cache coherency during resynchronization of self-correcting computer |
7613948, | Feb 28 2003 | Data Device Corporation | Cache coherency during resynchronization of self-correcting computer |
7757027, | Jun 19 2008 | ARM Limited | Control of master/slave communication within an integrated circuit |
7890604, | May 07 2004 | Microsoft Technology Licensing, LLC | Client-side callbacks to server events |
7890799, | Feb 28 2003 | Data Device Corporation | Self-correcting computer |
8405617, | Jan 03 2007 | Apple Inc | Gated power management over a system bus |
9026578, | May 14 2004 | Microsoft Technology Licensing, LLC | Systems and methods for persisting data between web pages |
Patent | Priority | Assignee | Title |
4141067, | Jun 13 1977 | GENERAL AUTOMATION, INC , A CA CORP | Multiprocessor system with cache memory |
5119485, | May 15 1989 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
5504874, | Sep 29 1993 | Hewlett Packard Enterprise Development LP | System and method of implementing read resources to maintain cache coherency in a multiprocessor environment permitting split transactions |
6341337, | Jan 30 1998 | Oracle America, Inc | Apparatus and method for implementing a snoop bus protocol without snoop-in and snoop-out logic |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 07 2001 | LIN, SHUAIBIN | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011799 | /0086 | |
May 10 2001 | LSI Logic Corporation | (assignment on the face of the patent) | / | |||
Apr 06 2007 | LSI Logic Corporation | LSI Corporation | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 033102 | /0270 | |
May 06 2014 | LSI Corporation | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
May 06 2014 | Agere Systems LLC | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
Aug 14 2014 | LSI Corporation | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035390 | /0388 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | LSI Corporation | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | Agere Systems LLC | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 |
Date | Maintenance Fee Events |
Mar 05 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 22 2008 | ASPN: Payor Number Assigned. |
Mar 14 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Apr 24 2015 | REM: Maintenance Fee Reminder Mailed. |
Sep 16 2015 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Sep 16 2006 | 4 years fee payment window open |
Mar 16 2007 | 6 months grace period start (w surcharge) |
Sep 16 2007 | patent expiry (for year 4) |
Sep 16 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 16 2010 | 8 years fee payment window open |
Mar 16 2011 | 6 months grace period start (w surcharge) |
Sep 16 2011 | patent expiry (for year 8) |
Sep 16 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 16 2014 | 12 years fee payment window open |
Mar 16 2015 | 6 months grace period start (w surcharge) |
Sep 16 2015 | patent expiry (for year 12) |
Sep 16 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |