Patents Assigned to Institute for the Development of Emerging Architecture L.L.C.
  • Patent number: 6665793
    Abstract: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault.
    Type: Grant
    Filed: December 28, 1999
    Date of Patent: December 16, 2003
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Achmed Rumi Zahir, Cary A. Coutant, Carol L. Thompson, Jonathan K. Ross
  • Patent number: 6631460
    Abstract: A computer system includes physical registers holding data for compiled programs and a portion of the physical registers form a register stack which wraps around when full. An N-bit current wraparound count state tracks physical register remapping events which cause the register stack to wraparound or unwrap. An advanced load address table (ALAT) has entries corresponding to load instructions, each entry has at least one memory range field defining a range of memory locations accessed by a corresponding load instruction, a physical register number field corresponding to a physical register accessed in the corresponding load instruction, and an N-bit register wraparound field which corresponds to the N-bit current wraparound count state for the corresponding load instruction. A check instruction accesses the ALAT to determine whether a store instruction and an advanced load instruction, which is scheduled before the store instruction, potentially accessed a common memory location.
    Type: Grant
    Filed: April 27, 2000
    Date of Patent: October 7, 2003
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Dale C. Morris, William R. Bry, Alan H. Karp, William Chen
  • Patent number: 6578059
    Abstract: A floating-point unit of a computer includes a floating-point computation unit, floating-point registers and a floating-point status register. The floating-point status register may include a main status field and one or more alternate status fields. Each of the status fields contains flag and control information. Different floating-point operations may be associated with different status fields. Subfields of the floating-point status register may be updated dynamically during operation. The control bits of the alternate status fields may include a trap disable bit for deferring interruptions during speculative execution. A widest range exponent control bit in the status fields may be used to prevent interruptions when the exponent of an intermediate result is within the range of the register format but exceeds the range of the memory format. The floating-point data may be stored in big endian or little endian format.
    Type: Grant
    Filed: October 10, 1998
    Date of Patent: June 10, 2003
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Jerome C. Huck, Peter Markstein, Glenn T. Colon-Bonet, Alan H. Karp, Roger Golliver, Michael Morrison, Gautam B. Doshi
  • Patent number: 6430657
    Abstract: Atomic memory operations are provided by using exportable “fetch and add” instructions and by emulating IA-32 instructions prepended with a lock prefix. In accordance with the present invention, a CPU includes a default control register that includes IA-32 lock check enable bit (LC) that when set to “1”, causes an IA-32 atomic memory reference to raise an IA-32 intercept lock fault. An IA-32 intercept lock fault handler branches to appropriate code to atomically emulate the instruction. Furthermore, the present invention defines an exportable fetch and add (FETCHADD) instruction that reads a memory location indexed by a first register, places the contents read from the memory location into a second register, increments the value read from the memory location, and stores the sum back to the memory location.
    Type: Grant
    Filed: October 12, 1998
    Date of Patent: August 6, 2002
    Assignee: Institute for the Development of Emerging Architecture L.L.C.
    Inventors: Millind Mittal, Martin J. Whittaker, Gary N. Hammond, Jerome C. Huck
  • Patent number: 6408380
    Abstract: Method and apparatus for storing and executing an instruction to load two independent registers with two values is disclosed. In one embodiment, a computer-readable medium is encoded with an instruction including an opcode field specifying that the instruction is an instruction to load two independent registers with a first value and a second value, a source field specifying the first value and the second value, a first target register field specifying a first target register to load with the first value; a second target register field specifying a second target register to load with the second value. A system to execute the instruction is also disclosed.
    Type: Grant
    Filed: May 21, 1999
    Date of Patent: June 18, 2002
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Jerome C. Huck, Glenn T. Colon-Bonet, Alan H. Karp, David A. Fotland, Dean A. Mulla
  • Patent number: 6393544
    Abstract: A method and apparatus calculate a page table index from a virtual address. Employs a combined hash algorithm that supports two different hash page table configurations. A “short format” page table is provided for each virtual region, is linear, has a linear entry for each translation in the region, and does not store tags or chain links. A single “long format” page table is provided for the entire system, supports chained segments, and includes hash tag fields. The method of the present invention forms an entry address from a virtual address, with the entry address referencing an entry of the page table. To form the entry address, first a hash page number is formed from the virtual address by shifting the virtual address right based on the page size of the region of the virtual address.
    Type: Grant
    Filed: October 31, 1999
    Date of Patent: May 21, 2002
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: William R. Bryg, Stephen G. Burger, Gary N. Hammond, James O. Hays, Jerome C. Huck, Jonathan K. Ross, Sunil Saxena, Koichi Yamada
  • Patent number: 6370639
    Abstract: A floating-point unit of a computer includes a floating-point computation unit, floating-point registers and a floating-point status register. The floating-point status register may include a main status field and one or more alternate status fields. Each of the status fields contains flag and control information. Different floating-point operations may be associated with different status fields. Subfields of the floating-point status register may be updated dynamically during operation. The control bits of the alternate status fields may include a trap disable bit for deferring interruptions during speculative execution. A widest range exponent control bit in the status fields may be used to prevent interruptions when the exponent of an intermediate result is within the range of the register format but exceeds the range of the memory format. The floating-point data may be stored in big endian or little endian format.
    Type: Grant
    Filed: October 10, 1998
    Date of Patent: April 9, 2002
    Assignee: Institute for the Development of Emerging Architectures L.L.C.
    Inventors: Jerome C. Huck, Peter Markstein, Glenn T. Colon-Bonet, Alan H. Karp, Roger Golliver, Michael Morrison, Gautam B. Doshi, Guillermo Juan Rozas
  • Patent number: 6301705
    Abstract: The present invention is generally directed to a system and method for supporting speculative execution of an instruction set for a central processing unit (CPU) including non-speculative and speculative instructions. In accordance with one aspect of the invention a method includes the steps of evaluating the instructions of the program to determine whether the individual instructions are speculative or non-speculative, and assessing each of the speculative instructions to determine whether it generates an exception. For each of the speculative instructions that generates an exception, the method then encode a deferred exception token (DET) into an unused register value of a register of the CPU. In accordance with another aspect of the invention, a system is provided, which system includes circuitry configured to evaluate the instructions of the instruction set to determine whether the individual instructions are speculative or non-speculative.
    Type: Grant
    Filed: October 1, 1998
    Date of Patent: October 9, 2001
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Gautam B. Doshi, Peter Markstein, Alan H. Karp, Jerome C. Huck, Glenn T. Colon-Bonet, Michael Morrison
  • Patent number: 6269438
    Abstract: A method and apparatus for handling branch instructions contained within a source program includes applying a set of heuristics to classify each of the branch instructions in the source program as either a hard-to-predict type or a simple type of branch. A system implements a multi-heuristic branch predictor comprising a large, relatively simple branch predictor having many entries, to accommodate the majority of branch instructions encountered in a program, and a second, relatively small, sophisticated branch predictor having a few entries. The sophisticated branch predictor predicts the target addresses of the hard-to-predict branches. By mapping hard-to-predict branches to the sophisticated branch predictor, and easy-to-predict branches to the relatively simple branch predictor, overall performance is enhanced.
    Type: Grant
    Filed: March 1, 1999
    Date of Patent: July 31, 2001
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventor: Po-Hua Chang
  • Patent number: 6263401
    Abstract: A computer-implemented method and apparatus for transferring the contents of a general register, in a register stack, to a location in a backing store in a main memory are described. When transferring the contents of a general register to a location in the backing store, the invention proposes collecting attribute bits included in each general register of a predetermined group of registers in a temporary collection register. Once the temporary collection register has been filled, the contents of this register are written to the next available location in the backing store. Similarly, on the restoration of registers from the backing store, a collection of attribute bits saved in the backing register is transferred to a temporary collection register. Thereafter, each attribute bit is saved together with associated data into a general register, thereby to restore the former contents of each general register.
    Type: Grant
    Filed: September 30, 1997
    Date of Patent: July 17, 2001
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Jonathan K. Ross, Cary A. Coutant, Carol L. Thompson, Achmed R. Zahir
  • Patent number: 6249798
    Abstract: An apparatus, a processor, a computer system and a method may be used to directly transfer and translate data between a memory format in an integer processing unit and a floating point format in a floating point processing unit. Data is stored in integer registers of the integer processing unit in a memory format and is stored in floating point registers of the floating point processing unit in a floating point format. A direct data link is provided between the integer register file of the integer processing unit and the floating point register file of the floating point processing unit. The direct data link includes a logic circuit which translates data between the memory format and the floating point format.
    Type: Grant
    Filed: October 10, 1996
    Date of Patent: June 19, 2001
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Roger A. Golliver, Michael James Morrison, Glenn Colon-Bonet, Guatam Bhawandas Doshi, Jerome C. Huck, Alan Hersh Karp, Sivakumar Makineni
  • Patent number: 6230248
    Abstract: A method and apparatus pre-validate regions in a virtual addressing scheme by storing both the virtual region number (VRN) bits and region identifiers (RIDs) in translation lookaside buffer (TLB) entries. By storing both the VRN bits and RIDs in TLB entries, the region registers can be bypassed when performing most TLB accesses, thereby removing region registers the critical path of the TLB look-up process and enhancing system performance. A TLB in accordance with the present invention includes entries having a valid field, a region pre-validation valid (rpV) field, a virtual region number (VRN) field, a virtual page number (VPN) field, a region identifier (RID) field, a protection and access attributes field, and a physical page number (PPN) field. In addition, a set of region registers contains the RIDs that are active at any given time.
    Type: Grant
    Filed: October 12, 1998
    Date of Patent: May 8, 2001
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Stephen G. Burger, James O. Hays, Jonathan K. Ross, William R. Bryg, Rajiv Gupta, Gary N. Hammon, Koichi Yamada
  • Patent number: 6216214
    Abstract: The present invention generally relates to an apparatus and method for efficiently translating virtual addresses utilizing either single address space or multiple address space models in a virtual memory management system. In particular, a Virtual Hash Page Table (VHPT), an extension of the Translation Lookaside Buffer (TLB) hierarchy, is designed to enhance virtual address translation performance. Virtual Hash Page Table (VHPT) efficiently supports two different methods of operating systems use to translate virtual addresses to physical addresses. This directly benefits the highly frequented path of address resolution.
    Type: Grant
    Filed: February 3, 1998
    Date of Patent: April 10, 2001
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: William R. Bryg, Stephen G. Burger, James O. Hays, John M. Kessenich, Jonathan K. Ross, Gary N. Hammond, Sunil Saxena, Koichi Yamada
  • Patent number: 6212603
    Abstract: A processor prefetches instructions in a pipelined manner from a first (L1) cache to a local instruction cache, with an instruction pointer device being utilized to select one of a plurality of incoming addresses for fetching purposes. Instructions returned from the L1 cache are stored in an instruction streaming buffer before they are actually written into the instruction cache. A way multiplexer outputs instructions to dispersal logic in the processor, and is fed by either the local cache or a bypass path that provides the instruction to the way multiplexer from a plurality of bypass sources, which includes the instruction streaming buffer. A request address buffer registers physical and virtual addresses associated with an instruction of a miss request by the processor to the L1 cache. Each entry of the request address buffer has an ID that is sent to the L1 cache with the miss request.
    Type: Grant
    Filed: April 9, 1998
    Date of Patent: April 3, 2001
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Rory McInerney, Eric Sindelar, Tse-Yu Yeh
  • Patent number: 6212539
    Abstract: A floating-point unit of a computer includes a floating-point computation unit, floating-point registers and a floating-point status register. The floating-point status register may include a main status field and one or more alternate status fields. Each of the status fields contains flag and control information. Different floating-point operations may be associated with different status fields. Subfields of the floating-point status register may be updated dynamically during operation. The control bits of the alternate status fields may include a trap disable bit for deferring interruptions during speculative execution. A widest range exponent control bit in the status fields may be used to prevent interruptions when the exponent of an intermediate result is within the range of the register format but exceeds the range of the memory format. The floating-point data may be stored in big endian or little endian format.
    Type: Grant
    Filed: October 10, 1998
    Date of Patent: April 3, 2001
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Jerome C. Huck, Peter Markstein, Glenn T. Colon-Bonet, Alan H. Karp, Roger Golliver, Michael Morrison, Gautam B. Doshi
  • Patent number: 6151669
    Abstract: A floating-point unit of a computer includes a floating-point computation it, floating-point registers and a floating-point status register. The floating-point status register may include a main status field and one or more alternate status fields. Each of the status fields contains flag and control information. Different floating-point operations may be associated with different status fields. Subfields of the floating-point status register may be updated dynamically during operation. The control bits of the alternate status fields may include a trap disable bit for deferring interruptions during speculative execution. A widest range exponent control bit in the status fields may be used to prevent interruptions when the exponent of an intermediate result is within the range of the register format but exceeds the range of the memory format. The floating-point data may be stored in big endian or little endian format.
    Type: Grant
    Filed: October 10, 1998
    Date of Patent: November 21, 2000
    Assignee: Institute For The Development of Emerging Architectures, L.L.C.
    Inventors: Jerome C. Huck, Peter Markstein, Glenn T. Colon-Bonet, Alan H. Karp, Roger Golliver, Michael Morrison, Gautam B. Doshi, Guillermo Juan Rozas
  • Patent number: 6138135
    Abstract: A floating point arithmetic unit provides consistent propagation of NaNs le performing high precision calculations on hardware designed to perform lower precision calculations. In one embodiment, the floating point arithmetic unit is provided with a microcode memory that stores more than one set of NaN propagation rules. In operation, the floating point arithmetic unit accesses one of the sets of NaN propagation rules according to the precision of the calculation being performed. A method of performing calculations in a floating point arithmetic unit includes dynamically determining if a calculation to be performed is to be a quad precision calculation or a double precision calculation. If it is determined that a quad precision calculation is to be performed, quad precision NaN propagation rules are selected and a quad precision calculation is performed using the selected quad precision NaN propagation rules.
    Type: Grant
    Filed: August 27, 1998
    Date of Patent: October 24, 2000
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventor: Alan H. Karp
  • Patent number: 6128706
    Abstract: Apparatus and method for efficiently sharing data in support of hardware he coherency and coordinated in software with semaphore instructions. Accordingly, a new instruction called "Load-Bias" which, in addition to normal load operations, requests a private copy of the data, and hints to the hardware cache to try to maintain ownership until the next memory reference from that processor. When used with the Cmpxchg instruction semaphore operation, the Load-Bias instruction will reduce coherency traffic, and minimize the possibility of coherency ping-ponging or system deadlock that causes the condition in which no processor is getting useful work done.
    Type: Grant
    Filed: February 3, 1998
    Date of Patent: October 3, 2000
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: William R. Bryg, Stephen G. Burger, Gary N. Hammond, Michael L. Ziegler
  • Patent number: 6119218
    Abstract: A method and apparatus for prefetching data in a computer system that inces a processor. A prefetch instruction is executed and, in response, data is prefetched from a memory location. It is determined if a memory exception occurred during the prefetching of the data. If a memory exception occurred, the exception is handled if the prefetch instruction indicates to do so.
    Type: Grant
    Filed: July 8, 1999
    Date of Patent: September 12, 2000
    Assignee: Institute for the Development of Emerging Architectures, L.L.C.
    Inventors: Judge K. Arora, Jack D. Mills, Jerome C. Huck
  • Patent number: 6088780
    Abstract: A method and apparatus for implementing a page table walker that uses at least one of a default page size and a page size selected for a virtual address space to position a sliding field in a virtual address. According to one aspect of the invention, an apparatus for use in a computer system is provided that includes a page size storage area and a page table walker. The page size storage area is used to store a number of page sizes each selected for translating a different set of virtual addresses. The page table walker includes a selection unit coupled to the page size storage area, as well as a page entry address generator coupled to the selection unit. For each of the virtual address received, the selection unit positions a field in that virtual address based on the page size selected for translating the set of virtual addresses to which that virtual address belongs.
    Type: Grant
    Filed: March 31, 1997
    Date of Patent: July 11, 2000
    Assignee: Institute for the Development of Emerging Architecture, L.L.C.
    Inventors: Koichi Yamada, Gary N. Hammond, Jim Hays, Jonathan Kent Ross, Stephen Burger, William R. Bryg