Method and apparatus for transferring data between a...

Electrical computers and digital processing systems: processing – Processing control – Context preserving (e.g. – context swapping – checkpointing,...

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S159000

Reexamination Certificate

active

06314513

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates generally to the architectural state of a microprocessor. Specifically, the present invention relates to a method and apparatus for transferring data between a register stack and a backing store defined in the memory associated with the microprocessor.
BACKGROUND OF THE INVENTION
A register stack may comprise a number of general registers of a microprocessor, which have been designated for the storage of data required by, and pertaining to, procedures of a stored program being executed by the microprocessor. Specifically, upon execution of a particular procedure, a stack frame associated with that procedure is created within the register stack. The stack frame includes saved registers (containing variables local to relevant procedure), an activation record and a frame marker. When a procedure calls a further procedure, the called procedure in turn creates a further stacked frame on top of the stacked frame for the calling procedure. Accordingly, for a program in which a number of nested procedures are being executed, the register stack may include a corresponding number of stack frames.
A register stack accordingly allows multiple procedures to effectively share a large register file by stacking associated stack frames in both on-chip registers and off-chip memory. The call/return patterns of typical programs exhibit high call/return frequencies with small amplitudes. A register stack significantly reduces the number of stores (i.e., register saves) at procedures calls and loads (i.e., register restores) at procedure returns, and thus provide a “cache” of information pertinent to nested procedures. As processor operating frequencies are increasing faster than the access times to memory resources (e.g., RAM) are decreasing, reducing the number of memory accesses performed by a program, as a result of procedure calls and returns, provides a performance advantage. This advantage is becoming increasingly significant in view of the popularity of modular and object-oriented programming, and the use of dynamically linked libraries.
As a register stack has a limited size, it will be appreciated that in a deeply nested procedure call sequence, the capacity of the register stack may be exceeded in what is termed a “spill”. In such situations, it is necessary to transfer some of the registers of previous stack frames from the register stack to a backing store in order to create capacity within the register stack. Similarly, as the register stack empties on procedure returns, it is desirable to restore registers of previous stack frames that have been stored in the backing store to the register stack. The transfer of stack frames between the register stack and the backing store may be problematic where the number of bits contained in a register of the register stack is not a multiple of the addressing scheme employed to address the memory resource where the backing store resides.
SUMMARY OF THE INVENTION
According to the invention there is provided a method of transferring data between a register and a memory resource. A first portion of data stored in a first register is transferred to a first location. A second portion of the data stored in the first register is transferred to a second location. A determination is made as to whether the second location contains a predetermined quantity of stored data. If so, then the stored data of the second location is transferred from the second location to a third location.
Other features of the present invention will be apparent from the accompanying drawings and from the detailed description that follows.


REFERENCES:
patent: 3810117 (1974-05-01), Healey
patent: 4325120 (1982-04-01), Colley
patent: 5327566 (1994-07-01), Forsyth
patent: 5398330 (1995-03-01), Johnson
patent: 5428779 (1995-06-01), Allegrucci et al.
patent: 5530870 (1996-06-01), De Bruler
patent: 5535397 (1996-07-01), Durante et al.
patent: 5564031 (1996-10-01), Amerson et al.
patent: 5628016 (1997-05-01), Kukol
patent: 5640582 (1997-06-01), Hays
patent: 5659703 (1997-08-01), Moore
patent: 5706466 (1998-01-01), Dockser
patent: 5761467 (1998-06-01), Ando
“RISC systems”,Microprocessors and Microsystems,Daniel Tabak, vol. 12, No. 4, May 1988, pp. 179-185.
“A Simple Interprocedural Register Allocation Algorithm and Its Effectiveness for LISP”,amc Transactions on Programming Languages and Systems,Peter A. Steenkiste and John L. Hennessy, vol. 11, No. 1, Jan. 1989, pp. 1-32.
“A VLSI RISC”,Computer,David A. Patterson and Carol H. Sequin, vol. 15, No. 9, Sep. 1982, pp. 1-21.
“Chapter 8, Stack Unwind Library”,The 32-bit PA-RISC Run-Time Architecture Document,Hewlett-Packard Company, HP-UX 10.20 version 3.0, 1985-1997.
“Chapter 7, Stack Unwinding”, Hewlett PackardPA-RISC Procedure Calling Conventions(Reference Manual), 1986.
“Stack Unwinding and Exception Handling”,64-bit Runtime Architecture for PA-RISC 2.0,Version 2.2, Oct. 6, 1997, pp. 21-26.

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 and apparatus for transferring data between 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 and apparatus for transferring data between a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for transferring data between a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2618446

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