Electrical computers and digital processing systems: memory – Storage accessing and control
Reexamination Certificate
1999-06-07
2002-08-06
Yoo, Do Hyun (Department: 2187)
Electrical computers and digital processing systems: memory
Storage accessing and control
C712S216000, C712S225000
Reexamination Certificate
active
06430649
ABSTRACT:
BACKGROUND
1. Field of the Invention
The present invention relates to techniques for improving computer system performance. More specifically, the present invention relates to a method and apparatus that enforces dependencies between memory references passing through a load store unit.
2. Related Art
As increasing semiconductor integration densities allow more transistors to be integrated onto a microprocessor chip, computer designers are investigating different methods of using these transistors to increase computer system performance. Some recent computer architectures exploit “instruction level parallelism,” in which a single central processing unit (CPU) issues multiple instructions in a single cycle. Given proper compiler support, instruction level parallelism has proven effective at increasing computational performance across a wide range of computational tasks. However, inter-instruction dependencies generally limit the performance gains realized from using instruction level parallelism to a factor of two or three.
Another method for increasing computational speed is “speculative execution” in which a processor executes multiple branch paths simultaneously, or predicts a branch, so that the processor can continue executing without waiting for the result of the branch operation. By reducing dependencies on branch conditions, speculative execution can increase the total number of instructions issued.
Unfortunately, conventional speculative execution typically provides a limited performance improvement because only a small number of instructions can be speculatively executed. One reason for this limitation is that conventional speculative execution is typically performed at the basic block level, and basic blocks tend to include only a small number of instructions. Another reason is that conventional hardware structures used to perform speculative execution can only accommodate a small number of speculative instructions.
What is needed is a method and apparatus that facilitates speculative execution of program instructions at a higher level of granularity so that many more instructions can be speculatively executed.
A significant performance drawback for high performance computer systems is the need to periodically perform “membar” operations in order to flush read and write requests from of a load store unit (LSU) out to memory. A membar operation is typically performed to ensure that a particular read operation does not overtake a preceding write operation by flushing a write buffer in the LSU before the read operation takes place. A membar operation may also be performed to ensure that a particular write operation does not overtake a preceding read operation by to flushing a read buffer in the LSU before the write operation takes place.
Note that using membar operations can adversely affect system performance because membar operations stall the processor while requests in the LSU are flushed. This introduces delay unnecessarily because it typically suffices to ensure that a particular read request does not overtake a particular write request. Hence, waiting until all requests are flushed out of the LSU is often unnecessary.
What is needed is a method and apparatus that enforces dependencies between memory references without incurring the delays inherent in membar operations.
SUMMARY
One embodiment of the present invention provides a system that enforces dependencies between memory references within a load store unit (LSU) in a processor. When a write request is received in the load store unit, the write request is loaded into a store buffer in the LSU. The write request may include a “watch address” specifying that a subsequent load from the watch address cannot occur before the write request completes. Note that the watch address is not necessarily the same as the destination address of the write operation. When a read request is received in the load store unit, the read request is loaded into a load buffer. The system determines if the read request is directed to the same address as a matching watch address in the store buffer. If so, the system waits for the write request associated with the matching watch address to complete before completing the read request.
In one embodiment of the present invention, if the read request is directed to the same address as a matching write request in the store buffer, the system completes the read request by returning a data value contained in the matching write request without going out to memory.
In one embodiment of the present invention, when the read request is directed to the same address as a matching watch address in the store buffer, the system stores an index with the read request in the load buffer. This index specifies a location of the associated write request in the store buffer.
In one embodiment of the present invention, the system provides an executable code write instruction that specifies the watch address.
REFERENCES:
patent: 5613083 (1997-03-01), Glew et al.
patent: 5751983 (1998-05-01), Abramson et al.
patent: 5854914 (1998-12-01), Bodas et al.
patent: 5999727 (1999-12-01), Panwar et al.
patent: 2 321 544 (1998-07-01), None
patent: WO 99/31594 (1999-06-01), None
Franklin, et al.; ARB: A Hardware Mechanism for Dynamic Reordering of Memory Reference; Department of Electrical and Computing Engineering Clemson University, Clemson, SC and Computer Sciences Department University of Wisconsin, Madison, WI; pp. 1-28. Date N/A.
Chaudhry Shailender
O'Connor James M.
Tremblay Marc
Encarnacion Yamir
Park Vaughan & Fleming LLP
Sun Microsystems Inc.
Yoo Do Hyun
LandOfFree
Method and apparatus for enforcing memory reference... 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 and apparatus for enforcing memory reference..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for enforcing memory reference... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2908079