Processor which overrides default operand size for implicit...

Electrical computers and digital processing systems: processing – Instruction decoding – Decoding instruction to accommodate variable length...

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06807622

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention is related to the field of processors and, more particularly, to operand sizes in processors.
2. Description of the Related Art
The x86 architecture (also known as the IA-32 architecture) has enjoyed widespread acceptance and success in the marketplace. Accordingly, it is advantageous to design processors according to the x86 architecture. Such processors may benefit from the large body of software written to the x86 architecture (since such processors may execute the software and thus computer systems employing the processors may enjoy increased acceptance in the market due to the large amount of available software).
The x86 architecture specifies a variable length instruction set (i.e. the size of the various instructions in the instruction set may differ). By providing variable length instructions, each instruction occupies only the amount of memory needed to specify that instruction and any operands thereof. For example, the x86 architecture specifies an instruction set having instructions anywhere from one byte in length to 15 bytes. Thus, the amount of memory occupied by a code sequence may be optimized, as compared to fixed length instruction sets which tend to occupy more memory. In other words, the code density (number of instructions/unit memory) may be higher for variable length instruction sets than for fixed length instruction sets for a given code sequence. Not only is the efficient use of memory possible, but delays in fetching the instructions from memory may be, on average, lower since a given set of bytes fetched from memory may include more variable byte length instructions than fixed length instructions.
As computer systems have continued to evolve, 64 bit address size (and sometimes operand size) has become desirable. A larger address size allows for programs having a larger memory footprint (the amount of memory occupied by the instructions in the program and the data operated upon by the program) to operate within the memory space. A larger operand size allows for operating upon larger operands, or for more precision in operands. More powerful applications and/or operating systems may be possible using 64 bit address and/or operand sizes. Thus, it may be desirable to provide an architecture which is compatible with the x86 processor architecture but which includes support for 64 bit processing as well.
Providing an x86 compatible processor architecture which supports 64 bit processing may exacerbate the problem of operand size selection. In the x86 architecture, the active operating mode specifies a default operand size for instructions and prefix bytes are used for instructions in which a different operand size is desired. If such a mechanism were extended to 64 bit modes, the additional available operand size may lead to additional use of prefix bytes to select the non-default operand size when desired. Since the prefix bytes increase the size of the instruction, code density may decrease. A mechanism for efficient operand size selection is therefore desired.
SUMMARY OF THE INVENTION
A processor is described which supports a mode in which the default operand size is 32 bits, but which supports operand size overrides to 64 bits. Furthermore, the default operand size may automatically be overridden to 64 bits for instructions having an implicit stack pointer reference and for near branch instructions. The overriding of the default operand size may occur without requiring an operand size override encoding in these instructions. For these instructions, it may frequently be more desirable to have the 64 bit operand size, while it may more frequently be desirable to have the 32 bit operand size for many other instructions. In one embodiment, the instruction set specifying the instructions may be a variable byte length instruction set (e.g. x86), and the operand size override encoding may be a prefix byte which increases the instruction length. For such embodiments, code density may be improved for code sequences which generally use a 32 bit operand size but would use a 64 bit operand size for the instructions having an implicit stack reference and near branch instructions.
Broadly speaking, a processor is contemplated. The processor comprises a circuit configured to generate an indication of a default operand size, and an execution core coupled to receive a first instruction. The execution core is configured to override the default operand size with a second operand size responsive to the first instruction having an implicit stack pointer reference.
Additionally, a method is contemplated. A default operand size is generated for instructions. The default operand size is overridden with a second operand size for a first instruction responsive to the first instruction having an implicit stack pointer reference.
Moreover, a processor is contemplated. The processor comprises a circuit configured to generate an indication of a default operand size. Coupled to receive a near branch instruction, the execution core is configured to override the default operand size with a second operand size responsive to the near branch instruction.
Still further, a method is contemplated. A default operand size is generated for instructions. The default operand size is overridden with a second operand size for a near branch instruction.


REFERENCES:
patent: 4620274 (1986-10-01), Boothroyd et al.
patent: 4701946 (1987-10-01), Oliva et al.
patent: 4926322 (1990-05-01), Stimac et al.
patent: 5381537 (1995-01-01), Baum et al.
patent: 5479627 (1995-12-01), Khalidi et al.
patent: 5481684 (1996-01-01), Richter et al.
patent: 5517651 (1996-05-01), Huck et al.
patent: 5617554 (1997-04-01), Alpert et al.
patent: 5644755 (1997-07-01), Wooten
patent: 5692167 (1997-11-01), Grochowski et al.
patent: 5758116 (1998-05-01), Lee et al.
patent: 5774686 (1998-06-01), Hammond et al.
patent: 5784638 (1998-07-01), Goetz et al.
patent: 5787495 (1998-07-01), Henry et al.
patent: 5826074 (1998-10-01), Blomgren
patent: 6086623 (2000-07-01), Broome et al.
patent: 6105125 (2000-08-01), Nemirovsky et al.
patent: 6560694 (2003-05-01), McGrath et al.
patent: 6571330 (2003-05-01), McGrath
patent: 6715063 (2004-03-01), McGrath et al.
Intel; Embedded Intel486 Processor Family Developer's Manual; 1997; pp. 3-24, 4-11, 4-27, 6-12, 6-14, and 6-15.*
James L. Turley; Advanced 80386 Programming Techniques; 1988; Osborne McGraw-Hill; pp. 10, 15-16, 26, 45-84, 180, 259, 264, 266-267, and 407-409.*
Intel, “Intel Architecture Software Developer's Manual,” vol. 1: Basic Architecture, 1997, Chapter 3.
Intel, “Pentium Processor Family Developer's Manual,” vol. 3: Architecture and Programming Manual, 1995, Chapters 2, 3, 10 and 11.
James L. Turley, “Advanced 80386 Programming Techniques,” 1988, Chapters 2 and 9.
The Technology Behind Crusoe™ Processors, Low-Power x86-Compatible Processors Implemented with Code Morphing™ Software,Transmeta Corporation, Jan. 2000, pp. 1-18.
Alpha Learns to Do Windows; Digital's FX!32 is The Key To Running Win32 Software on Alpha/Windows NT.,Selinda Chiquoine, BYTE, Aug. 4, 1998, 4 pages.
Awards Stack Up for DIGITAL FX!32 Windows Compatibility Software for ALPHA,DIGITAL Press Releases, Dec. 11, 1997, 7 pages.
DIGITAL FX!32; White Paper: How DIGITAL FX!32 Works,DIGITAL Semiconductor, Jan. 26, 1998, 4 pages.
An Alpha in PC Clothing; Digital Equipment's New x86 Emulator Technology Makes An Alpha System a Fast x86 Clone,Tom Thompson, BYTE, Aug. 4, 1998, 7 pages.
AMD 64-Bit Technology; The AMD x86 Architecture Programmers Overview,AMD, Publication #24108 Rev: A, Aug. 2000, pp. 1-106.
AMD 64-Bit Technology; The AMD x86-64 Architecture Programmers Overview,AMD, Pulication #24108 Rev: C, Jan. 2001, pp. 1-128.
Intel Software Developer's Manual, Intel, vol. 1: “Basic Architecture”, 1997, pp. 3-14 to 3-15, and 4-1 to 4-17.
Intel Architecture Software Developer's Manual, Intel, vol. 2: “Instruction Set Reference”, 1997, pp. 2-1 to 2-2, 3-38 to 3-48, 3-241 to 3-251, 3-350 to 3-358

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

Processor which overrides default operand size for implicit... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Processor which overrides default operand size for implicit..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Processor which overrides default operand size for implicit... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3282862

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