Method for providing an atomic memory read using a...

Electrical computers and digital processing systems: memory – Storage accessing and control – Control technique

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S152000, C711S163000, C711S164000

Reexamination Certificate

active

06460121

ABSTRACT:

FIELD OF THE INVENTION
The present invention pertains in general to reading a memory cell in a computer system having a memory shared between multiple processing nodes, and more particularly, but not by way of limitation, to a method for performing a sixty-four bit atomic memory read on a thirty-two bit processor using a sixty-four bit compare-exchange instruction primitive.
BACKGROUND OF THE INVENTION
In a shared memory computing environment wherein a plurality of processing nodes have access to a shared memory cell, many types of situations may arise which can compromise data integrity. One such situation occurs when a processor in one of the processing nodes attempts to read a sixty-four bit memory cell using two, thirty-two bit read operations. Typically, if a processor needs to read the sixty-four bit memory cell, the processor performs a single atomic sixty-four bit memory read operation. In certain situations, however, the processor is unable to perform a single sixty-four bit read operation. Instead, the processor first reads either the low-order thirty-two bits or the high-order thirty-two bits in a first read operation and then reads the remaining high-order thirty-two bits or the low-order thirty-two bits, respectively, in a second distinct read operation.
There are various reasons for the processor to perform two thirty-two bit reads instead of a single sixty-four bit read. For instance, a communication bus used by the processor to access the memory cell may only have the capacity to communicate either the low-order thirty-two bits or the high-order thirty-two bits at a time. In another instance, the communication bus may have the capacity to communicate both the low-order thirty-two bits and the high-order thirty-two bits at the same time but the processor may only have a register, used in the read operation, large enough to store either the low-order thirty-two bits or the high order thirty two bits. In these instances, the processor performs two separate accesses to the memory cell in order to read the entire contents of the memory cell.
A problem arises, however, if a processor other than the processor performing the read operation modifies the contents of the memory cell after the original processor performing the read operation reads the low-order thirty-two bits but before the original processor reads the high-order thirty-two bits. This situation occurs as a result of each processing node operating asynchronously at various speeds with different priorities to access system resources including the memory cell. To prevent this problem from occurring, the processor can be programmed to perform an atomic read operation which locks out other processors from writing to the memory cell until after the reading processor performs both the low-order and high-order reads. There are processors, however, which are not programmed to perform such an atomic read operation.
In situations where the processor must perform a low-order and a high-order read operation and an atomic read operation is unavailable, other methods have been used to perform an atomic read operation. Operating System synchronization techniques have been used as has the implementation of mutual exclusion and semaphore objects to provide an atomic sixty-four bit read operation on two adjacent thirty-two bit data parts. Another method is to utilize floating point registers in the read operation. These methods, however, are either complex or consume a relatively larger number of clock cycles. For example, the use of floating point registers requires that the floating point state be saved and restored to preserve floating state on context switches.
Therefore, it would be advantageous to devise a method to provide a simple mechanism by which an atomic sixty-four bit read operation can be performed in situations where two, thirty-two bit read operations are required.
SUMMARY OF THE INVENTION
The present invention comprises a method for performing an atomic read of a memory cell shared by a plurality of processing nodes. A plurality of data parts of the memory cell are loaded into a respective first plurality of registers and an atomic compare and exchange operation is executed on the memory cell. The first plurality of registers is read and concatenated. The compare and exchange operation results in a value formed by concatenating the first plurality of registers being equal to the value of the memory cell.
In a first embodiment of the present invention, a low-order data part of the memory cell is loaded into registers A and B and a high-order data part of the memory cell is loaded into registers D and C. An atomic compare and exchange operation is executed on the memory cell and register A and register D are read. The contents of the memory cell is equal to a value formed by the concatenation of register D with register A.
In a second embodiment of the present invention, the contents of register A is loaded into register B and the contents or register D is loaded into register C. An atomic compare and exchange operation is executed on the memory cell and register A and register D are read. The contents of the memory cell is equal to a value formed by the concatenation of register D to register A.
In a third embodiment of the present invention, register A is loaded with a known value wherein, the value is known never to exist in the low-order data part of the memory cell and register D is loaded with a value wherein, the value is known never to exist in the high-order data part of the memory cell. An atomic compare and exchange operation is executed on the memory cell and register A and register D are read. The contents of the memory cell is formed by the concatenation of register D with register A.


REFERENCES:
patent: 5243701 (1993-09-01), Muramatsu et al.
patent: 5442755 (1995-08-01), Shibita
patent: 5668971 (1997-09-01), Neufeld
patent: 5995746 (1999-11-01), Sites et al.
patent: 5995750 (1999-11-01), Samson et al.
patent: 6128709 (2000-10-01), Autechaud et al.
Mendel, Brett; “Server I/O all set to flow”;Lantimes, Oct. 27, 1997, vol. 14, Issue 22; cover page and p. 31.
Briggs, Chris; “Smarter and Faster I/O for Servers”, CORE: Operating Systems;Byte, May 1, 1996, vol. 2, No. 5.
Thompson, Tom; “I2O Beats I/O Bottlenecks”,Byte, Aug. 1997, pp. 85, 86 and 3 additional pages.
I2O Introduction; Technology Backgrounder; Aug. 13, 1997; http://www.i2osig.org/Architecture/TechBack.html.
i960®RP I/O Processor—the I2O SIG site; http://134.134.214.1/design/iio/i2osig.html; Feb. 6, 1998.
“Welcome to the I2O SIG® Web Site!”; http://www.i2osig.org; Feb. 6, 1998.
“About I2O Technology”; http://www.i2osig.org/Architecture; Feb. 6, 1998.
“Technology Backgrounder”; http://www.i2osig.org/Architecture/TechBack.html; Feb. 6, 1998; 6 pages.
“Questions and Answers”, http:/www.i2osig.org/Architecture/QandA.html;Feb. 6, 1998; 4 pages.
“I2/O® Specifications For Non-Members”; http://www.i2osig.org/Architecture/GetSpec.html; Feb. 6, 1998.
Amdahl, Carlton G.; “I2O Future Directions”; http://www.i2osig.org; Jun. 1996; 12 pages.
Goble, Scott, et al.; “Intelligent I/O Architecture”; http://www.i2osig.org; Jun. 1996; 22 pages.
“Press Releases and Clips”; http://www.i2osig.org/Press; Feb. 6, 1998; 4 pages.
Listing of Press Releases ; http://altavista.digital.com/cgi-bin/quer . . .=21% 2FMar%2F86&d1=&search.x=46&search.y=6; Feb. 6, 1998; 2 pages.
Crothers, Brooke; “Intel server chip gets big backing”, Oct. 7, 1997; http://www.news.com/News/Item/0,4,14962,00.html; Feb. 6, 1998.
“HP Demonstrates Commitment to I2O Standard With New I2O Disk-array Controller”;Hewlett Packard; Press Release, Atlanta, Oct. 8, 1997; http://hpcc920.external.hp.com/pressrel/oct97/08b.html; Feb. 6, 1998, 2 pages.
“I2O: Disaster in the making for the freeware community”; http://22.kenandted.com/i2o/disaster.html; Feb. 6, 1998; 2 pages.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method for providing an atomic memory read using a... 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 for providing an atomic memory read using a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for providing an atomic memory read using a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2929233

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.