Method and apparatus for transferring data between a...

Electrical computers and digital processing systems: memory – Storage accessing and control – Specific memory composition

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S156000, C710S057000

Reexamination Certificate

active

06263401

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 of 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 on-chip registers. 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 which 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 an apparatus for transferring data from a register stack to a memory resource or storage device. The apparatus includes a temporary storage facility and transfer logic. The transfer logic transfers N bits of the contents of a first register in the register stack to a first location in the memory resource, and also transfers M bits of the contents of the first register to a first location in the temporary storage facility. When a predetermined number of data transfers between the register stack and the memory resource have occurred, the transferred logic transfers the accumulated contents of the temporary storage facility to a second location in the memory resource.
Other features of the present invention will be apparent from the accompanying drawings and from the detailed description which follows.


REFERENCES:
patent: 3810117 (1974-05-01), Healey
patent: 4325120 (1982-04-01), Colley et al.
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), 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 et al.
patent: 5659703 (1997-08-01), Moore et al.
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.
“Hewlett-Packard, Chapter 7 Stack Unwinding from Chapter 6 Millicode Calls”, PA-RISC Procedure Calling Conventions Reference Manual (Palo Alto CA: Hewlett-Packard, 1986).
“The 32-bit PA-PISC Run-Time Architecture Document”, HP-UX 10.20, Version 3.0, Hewlett-Packard Company, 1985-1997.
“64-Bit Runtime Architecture for PA-RISC 2.0”, Version 3.3, Oct. 6, 1997, Hewlett-Packard Company.

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-2476325

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