Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability
Reexamination Certificate
1999-08-23
2004-01-13
Beausoliel, Robert (Department: 2785)
Error detection/correction and fault detection/recovery
Data processing system error or fault handling
Reliability and availability
C710S310000, C711S147000
Reexamination Certificate
active
06678838
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This application relates to a memory buffer architecture, and more particularly to a buffer architecture with the capability to track master information.
2. Description of the Related Art
Many systems contain random access memory, or RAM, to provide temporary storage of data when a system is powered up. A source within the system, often known as a master, will typically read from the RAM or write to the RAM. To illustrate, a processor in a system may be a master. (Because a master must have control of a bus which connects between the master and the RAM in order to access the RAM, the master is also commonly known as a bus owner or bus master during the time.) Also found in many systems is an interface to the memory, or RAM, known as a RAM, controller. So, for example, in a system using dynamic RAM, or DRAM, a DRAM controller may interface between the master and the DRAM itself.
DRAM controllers, as well as other types of memory controllers, may contain a component or mechanism known as a write buffer. Write buffers permit a master to post writes to the DRAM without incurring DRAM latency penalty. Latency refers to the period of time that one component in a system is waiting for another component. Essentially then, latency is wasted time. In a typical system, a master can send data to the DRAM faster than the DRAM can receive the data from the master. The presence of a write buffer in a DRAM controller, therefore, eliminates the latency problem by permitting the master to send a write to the DRAM without having to wait for the DRAM to actually receive the writes. The write buffer, as intermediary between the master and the DRAM, receives write data from the master, and then forwards the write data to the DRAM, freeing up the master to perform other operations.
Some systems include multiple entities which may perform reads from and writes to DRAM. These systems can thus be said to contain multiple masters. The write buffer in the DRAM controller can, at any given moment, potentially contain write data (to be stored in the DRAM) that came from multiple masters.
When debugging a system that uses multiple masters, identifying the source of DRAM write cycles from the DRAM interface has been difficult or infeasible. A developer who is debugging a system typically attaches a logic analyzer to the DRAM interface, in order to “see” what is being written to or read from the DRAM. In the case of writes to DRAM, the write buffer, as opposed to the originating master, appears to be the “source” of write data to the DRAM. The absence of master information during writes to DRAM has frustrated effective system debug. This frustration is particularly acute in systems with many masters.
SUMMARY OF THE INVENTION
Briefly, the illustrative system provides a write buffer containing master trace bits which enable a system debugger to determine which master wrote to system memory. The master trace or master contribution bits of the write buffer can be coupled to pins which are externally accessible to a system debugger. For example, in a microcontroller architecture, in which system memory, or DRAM, a DRAM controller, and one or more masters are all part of the microcontroller, the master trace bits are coupled to a plurality of the microcontroller pins. For systems in which the memory, DRAM controller, and masters are discrete components, the master trace bits of the write buffer may instead be coupled to pins on the DRAM controller.
The external pins identify contributing master information during a write buffer write cycle to DRAM. In addition to address tag and byte valid bits, the write buffer includes master trace bits for tracking this master information. When write data intended for the DRAM is sent by a master to the write buffer, a master trace bit is set which associates the data in a data store of the write buffer to the master which provided the data. These master trace bits are each associated with a master which writes to the DRAM.
The master trace bits are coupled to pins which are external, meaning the pins are accessible to a system debugger. So, in a microcontroller architecture, the master trace bits may be coupled to the microcontroller pins themselves. Using a logic analyzer or other debug tool which connects to these external pins, the debugger can then identify which master wrote to DRAM at a particular address. That is, the external pins help to identify which master or bus owner contributed to the current DRAM write cycle. In some cases, more than one master can be a contributor of a particular DRAM write cycle, a condition which is explained in further detail, below. Alternatively, the external pins identify which master (or bus owner) is requesting the current DRAM read cycle. In the case of a read request, only a single master is involved for a particular DRAM read cycle.
In one embodiment, a microcontroller includes a DRAM, a DRAM controller which includes the illustrated write buffer, and three possible bus masters: a central processing unit, or CPU, a peripheral component interconnect, or PCI, bus master, and a direct memory access, or DMA, controller. For this embodiment, three pins are provided to indicate whether the CPU, the PCI bus master, the DMA controller, or a combination of these three masters, has written into a particular location of the write buffer.
In the illustrative embodiment, the trace information of the external pins is available a full clock before the clock edge where the command (either read or write) is driven to the DRAM. This timing parameter facilitates reliable tracking of the master write to DRAM for the system debugger.
REFERENCES:
patent: 4538226 (1985-08-01), Hori
patent: 4622631 (1986-11-01), Frank et al.
patent: 4646298 (1987-02-01), Laws et al.
patent: 4649475 (1987-03-01), Scheuneman
patent: 4750154 (1988-06-01), Lefsky et al.
patent: 4920539 (1990-04-01), Albonesi
patent: 4959771 (1990-09-01), Ardini, Jr. et al.
patent: 5060144 (1991-10-01), Sipple et al.
patent: 5208914 (1993-05-01), Wilson et al.
patent: 5299147 (1994-03-01), Holst
patent: 5329405 (1994-07-01), Hou et al.
patent: 5428766 (1995-06-01), Seaman
patent: 5440713 (1995-08-01), Lin et al.
patent: 5444583 (1995-08-01), Ehrlich et al.
patent: 5490261 (1996-02-01), Bean et al.
patent: 5551005 (1996-08-01), Sarangdhar et al.
patent: 5590354 (1996-12-01), Klapproth et al.
patent: 5615402 (1997-03-01), Quattromani et al.
patent: 5627993 (1997-05-01), Abato et al.
patent: 5649209 (1997-07-01), Umetsu et al.
patent: 5655100 (1997-08-01), Ebrahim et al.
patent: 5761697 (1998-06-01), Curry et al.
patent: 5809228 (1998-09-01), Langendorf et al.
patent: 5829035 (1998-10-01), James et al.
patent: 5835704 (1998-11-01), Li et al.
patent: 5848264 (1998-12-01), Baird et al.
patent: 5860112 (1999-01-01), Langendorf et al.
patent: 5970246 (1999-10-01), Moughani et al.
patent: 6009528 (1999-12-01), Teraoka
patent: 6021261 (2000-02-01), Barrett et al.
patent: 6044477 (2000-03-01), Jordan et al.
patent: 6085295 (2000-07-01), Ekanadham et al.
patent: 6119254 (2000-09-01), Assouad et al.
patent: 6151658 (2000-11-01), Magro
patent: 6163826 (2000-12-01), Khan et al.
patent: 6219675 (2001-04-01), Pal et al.
patent: 6317847 (2001-11-01), Haubursin et al.
patent: 6401223 (2002-06-01), DePenning
patent: 6546439 (2003-04-01), Strongin et al.
patent: 2001/0001868 (2001-05-01), Klein
patent: 0455946 (1991-11-01), None
patent: 08249289 (1996-09-01), None
“Checkstop Architecture for a Multiprocessor System”, Jan. 1, 1991, IBM Technical Disclosure Bulletin, vol. 33, iss. 8, pp. 321-323.*
“Logic Analyzer”, Microsoft Press Computer Dictionary Third Edition, 1997, p. 289.*
“Program Storage Overlay Detection”, IBM Technical Disclosure Bulletin, Mar. 1994, US, vol. 37, iss. 3, pp. 381-384.*
AMD-640™ System Controller Data Sheet, Advanced Micro Devices, Inc., ©1997, pp. 2-1 through 2-4, 5-1 through 5-3, 5-11, and 5-32.
Motorola Semiconductor Technical Data, Motorola, Inc., Doc. No. MCM69C432, Rev. 2, Sep. 15, 1997, pp. 1 through 20.
Advanced Micro Devices , Inc.
Akin Gump Strauss Hauer & Feld & LLP
Beausoliel Robert
Chu Gabriel L
LandOfFree
Method to track master contribution information in a write... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method to track master contribution information in a write..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method to track master contribution information in a write... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3194051