Memory address checking in a proccesor that support both a...

Electrical computers and digital processing systems: memory – Address formation – Address mapping

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S207000, C711S208000, C711S209000, C712S210000

Reexamination Certificate

active

06807616

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention is related to the field of processors and, more particularly, to data reference address checking 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).
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.
Unfortunately, the x86 architecture is limited to a maximum 32 bit operand size and 32 bit address size. The operand size refers to the number of bits operated upon by the processor (e.g. the number of bits in a source or destination operand). The address size refers to the number of bits in an address generated by the processor. Thus, processors employing the x86 architecture may not serve the needs of applications which may benefit from 64 bit address or operand sizes.
The x86 architecture defines a segmented address space. With segmentation, the address space is divided into a set of variable sized segments. Segment descriptors are used to describe the segments, including a base address and limit which define the boundaries of the segment.
SUMMARY OF THE INVENTION
A processor is described which supports several operating modes. In at least one of the operating modes, a segmented address space is used. In at least one other operating mode, an unsegmented address space is used. In the unsegmented address space, a canonical check applies to addresses. In the segmented address space, a segment limit check applies. In some cases, both a segment limit check and a canonical check applies dependent on the segment used (e.g. either user or table segments). In one example, the processor may include an address generation unit and a load/store unit used to perform data references. The address generation unit may generate an effective address of the data reference and may perform a canonical check on the effective address, generating a first canonical check result. The load/store unit may add the effective address to a segment base address (which may be zero in unsegmented address space modes) to form a linear address and may perform a second canonical check on the linear address, generating a second canonical check result. Additionally, a segment limit check may be performed on the effective address to produce a segment limit check result. An exception circuit selects one or more of the first canonical check result, the second canonical check result, and the segment limit check result to be used to generate an exception indication. The selection is dependent on the operating mode and the segment of the data reference.
The processor may also perform selective truncation of addresses based on the operating mode and the segment. Such truncation may replicate behavior in some operating modes which have an address size smaller than the implemented address space. Furthermore, some embodiments may employ a programmable mechanism for disabling truncation (e.g. a bit in a special purpose register or model specific register). The programmable mechanism, in conjunction with segment base addresses extended to the implemented address size, may be used to perform memory sizing in a mode in which the address size is less than the implemented address size.
Broadly speaking, an apparatus for a processor is contemplated. The apparatus comprises circuitry configured to perform one or more canonical checks for a data reference and a segment limit check on an effective address of the data reference. Additionally, the apparatus includes a first circuit coupled to the circuitry and coupled to receive an indication of an operating mode of the processor and an indication of the segment corresponding to the data reference. The first circuit is configured to select, responsive to the operating mode of the processor and the segment, one or more of: a first result of the segment limit check and a second result of the one or more canonical checks for generating an exception indication for the data reference.
Additionally, an apparatus for a processor is contemplated. The apparatus includes a circuit configured to output an address of a data reference and a control circuit. The circuit is coupled to receive a control input and is configured to output the address either truncated to a predetermined number of bits or not truncated dependent on the control input. The control circuit is configured to generate the control input responsive to a segment of the data reference and an operating mode of the processor.
Moreover, a method is contemplated. An indication in a register is set to a first state which prevents truncation of data reference addresses. A plurality of data references are performed to determine a size of memory included in a system. The indication is set to a second state which allows truncation of data reference addresses.


REFERENCES:
patent: 5584005 (1996-12-01), Miyaoku et al.
patent: 5642491 (1997-06-01), Rose et al.
patent: 5774686 (1998-06-01), Hammond et al.
patent: 5826074 (1998-10-01), Blomgren
patent: 5854913 (1998-12-01), Goetz et al.
patent: 5913058 (1999-06-01), Bonola
patent: 5918056 (1999-06-01), Christie
patent: 6223271 (2001-04-01), Cepulis
patent: 6237078 (2001-05-01), Gray
patent: 6289431 (2001-09-01), Bigbee et al.
patent: 6349380 (2002-02-01), Shahidzadeh et al.
patent: 6393544 (2002-05-01), Bryg et al.
patent: 6496923 (2002-12-01), Gruner et al.
patent: 2002/0019902 (2002-02-01), Christie
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 Release, Dec. 11,1 997, 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, p. 1-106.
AMD 64-Bit Technology; The AMD x86-64 Architecture Programmers Overview, AMD, Pulication #24108 Rev: C, Jan. 2001, pp. 1-128.
Intel Architecture Software Developer's Manual, vol. 1: Basic Architecture, © Intel Corporation 1996, 1997, pp. 3-1 through 3-15.
Pentium® Pro Family Developer's Manual, vol. 3: Operating System Writer's Guide, © Intel Corporation 1996, Chapters 2-4, pp. 2-1 through 4-29.
Alpha 21264 Microprocessor Hardware Reference Manual, Compaq Computer Corporation, 1999, pp. 5-4 to 5-6.
PowerPC Microprocessor Family: The Programming Environments, Motorola, Inc., 1997, Chapter 4 pages 4-1 to 4-9, Chapter 7 pages 7-1 to 7-124.

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

Memory address checking in a proccesor that support both 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 Memory address checking in a proccesor that support both a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Memory address checking in a proccesor that support both a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3331004

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