Instruction specified register value saving in allocated...

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

C712S229000, C718S108000

Reexamination Certificate

active

06826681

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates generally to a data processing system. More particularly, it relates to saving and restoring processor register values and allocating and deallocating stack memory.
2. Background Art
Two well-known operations performed by computer systems are the storing and retrieving of items on a stack. Stackable items include general purpose register contents; e.g., data and addresses. These operations (also referred to as “push” and “pop” operations) are typically used to facilitate the entry to and exit from subroutines. That portion of a stack created for a particular subroutine is referred to as a “stack frame.” In programmable devices (such as microprocessors), dedicated instructions may be used to carry out these operations.
It is desired to enhance the utility of stack storing and/or retrieving operations by providing additional functionality associated therewith. Such functionality, when added to instructions for carrying out stack operations, make it possible to write more compact application programs since such instructions encode multiple functions.
BRIEF SUMMARY OF THE INVENTION
The present invention provides methods and means for saving and restoring processor registers and allocating and deallocating a stack frame. In one embodiment, a first field of a save instruction encodes whether a value in a register of a processor is saved as an argument value or a static value. A second field of the save instruction encodes a size of a stack frame created during execution of the save instruction. An argument value is saved in a calling program's stack frame. A static value is saved in a called program's stack frame. A restore instruction is used to restore a static value and deallocate the stack frame. The save and restore instructions may be executed using any programmable device, including a single instruction set architecture processor or a multi-instruction set architecture processor. The functionality of such instructions may be achieved through software, hardware or a combination of both.
In another embodiment, a 16-bit instruction according to the invention comprises at least five fields. These five fields are an instruction opcode field, a 1-bit return address register field, a 1-bit first static register field, a 1-bit second static register field, and a 4-bit frame-size field. This instruction can be executed as a single 16-bit instruction or executed in combination with a 16-bit instruction extension. An instruction extension comprises at least four fields. These four fields are an extend instruction opcode field, a 3-bit additional static registers field, a second 4-bit frame-size field, and a 4-bit arguments register field. The 3-bit additional static registers field allows the values in up to seven addition registers to be saved and restored as static values.
Features of the invention allow the invention to be implemented, for example, as a method for encoding an instruction, as a processor core, as a mapper, as a decoder, and/or as a computer program.
Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with reference to the accompanying drawings.


REFERENCES:
patent: 4338663 (1982-07-01), Strecker et al.
patent: 4833640 (1989-05-01), Baba
patent: 5031096 (1991-07-01), Jen et al.
patent: 5109495 (1992-04-01), Fite et al.
patent: 5241679 (1993-08-01), Nakagawa et al.
patent: 5327566 (1994-07-01), Forsyth
patent: 5442761 (1995-08-01), Toda et al.
patent: 5493687 (1996-02-01), Garg et al.
patent: 5517664 (1996-05-01), Watanabe et al.
patent: 5524211 (1996-06-01), Woods et al.
patent: 5542060 (1996-07-01), Yoshida
patent: 5574928 (1996-11-01), White et al.
patent: 6212630 (2001-04-01), Takayama et al.
patent: 2002/0138715 (2002-09-01), Minematsu
ARM Architecture Reference Manual, Advanced RISC Machines Ltd., Prentice Hall, pp. 3-41, 3-42, 3-43, 3-67, and 3-68 (1996).
Diefendorff, Keith, et al., “Organization of the Motorola 88110 Superscalar RISC Microprocessor,”IEEE Micro, 12:2, pp. 40-63 (Apr. 1992).
Diefendorff, Keith, et al., “AltiVec Extension to PowerPC Accelerates Media Processing,”IEEE Micro, 20:2, pp. 85-95 (Mar.-Apr. 2000).
ESA/390 Principles of Operation, IBM Library Server, Table of Contents and Paragraphs 7.5.31 and 7.5.70, 23 pages, at http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOK/DZ9AR001/CCONTENTS (1993).
Kane, Gerry,PA-RISC 2.0 Architecture, Prentice Hall PTR, Upper Saddle River, New Jersey, pp. 7-106 and 7-107(1996).
May, Cathy, et al., eds.,The PowerPC™ Architecture: A Specification for a New Family of RISC Processors, Second Edition, Morgan Kaufmann Publishers, Inc., San Francisco, California, pp. 70-72 (May 1994).
MC68020 32-Bit Microprocessor User's Manual, Third Edition, Prentice Hall, Englewood Cliffs, New Jersey, pp. 3-125, 3-126, and 3-127 (1989).
MC88110 Second Generation RISC Microprocessor User's Manual, Motorola, Inc., pp. 10-66, 10-67, and 10-71 (1991).
Nemirovsky, Mario, et al., U.S. application No. 09/629,805; entitled “Method and Apparatus for Improved Computer Load and Store Operations,” filed Jul. 31, 2000, 41 pages.
LSI TinyRisc Development(visited Apr. 24, 2001) <http://www.redhat.com/support/manuals/gnupro99r1/6_embed/emb09.html>, 13 pages.
VAX11/780 Architecture Handbook, vol. 1, Digital Equipment Corporation, 1979, pp. 8-20 through 8-23.
Hunter, Colin, “Series 32000 Programmer's Reference Manual,” Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1987, pp. 6-81 through 6-86; pp. 6-164 through 6-167; and pp. 6-183 through 6-184.
“ARM Architecture Reference Manual,” Document No. ARM DDI 0100B, Prentice Hall, New York, New York, 1996, pp. 6-62 through 6-65.
CompactRISC™ CR16B Programmer's Reference Manual, National Semiconductor Corporation, Santa Clara, CA, Sep. 1999, pp. Instruction Set 5-44 through Instruction Set 5-47.

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

Instruction specified register value saving in allocated... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Instruction specified register value saving in allocated..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Instruction specified register value saving in allocated... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3358997

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