Patents Assigned to Exponential Technologies, Inc.
  • Publication number: 20120269669
    Abstract: The present disclosure describes the use of involute curves for use in energy conversion devices, as well as timing or indexing gears. Several different embodiments are shown using rotors of several examples of lobe numbers and shapes.
    Type: Application
    Filed: April 20, 2012
    Publication date: October 25, 2012
    Applicant: Exponential Technologies, Inc.
    Inventors: Curtis Patterson, Alejandro Juan, Kristjan Gottfried
  • Patent number: 5884057
    Abstract: A processor that can execute both CISC and RISC instructions has an integer pipeline and a floating point pipeline. RISC instructions are sent to the floating point pipeline at the beginning of the integer pipeline, but CISC instructions re-align the floating point pipeline. CISC instructions are sent to the floating point pipeline near the end of the integer pipeline to allow the integer pipeline to fetch memory operands for the floating point pipeline. Thus the floating point pipeline relies on the memory operand fetch facilities of the integer pipeline. Complex CISC fetch-operate instructions pass through the integer pipeline first to fetch a floating point operand, and then begin the floating point pipeline for execution of a floating point operation. However, RISC instructions only use register operands and can begin the floating point pipeline earlier, reducing latency until the floating point result is produced.
    Type: Grant
    Filed: May 8, 1995
    Date of Patent: March 16, 1999
    Assignee: Exponential Technology, Inc.
    Inventors: James S. Blomgren, Cheryl Senter Brashears
  • Patent number: 5809272
    Abstract: A superscalar processor can dispatch two instructions per clock cycle. The first instruction is decoded from instruction bytes in a large instruction buffer. A secondary instruction buffer is loaded with a copy of the first few bytes of the second instruction to be dispatched in a cycle. In the previous cycle this secondary instruction buffer is used to determine the length of the second instruction dispatched in that previous cycle. That second instruction's length is then used to extract the first bytes of the third instruction, and its length is also determined. The first bytes of the fourth instruction are then located. When both the first and the second instructions are dispatched, the secondary buffer is loaded with the bytes from the fourth instruction. If only the first instruction is dispatched, then the secondary buffer is loaded with the first bytes of the third instruction. Thus the secondary buffer is always loaded with the starting bytes of undispatched instructions.
    Type: Grant
    Filed: November 29, 1995
    Date of Patent: September 15, 1998
    Assignee: Exponential Technology Inc.
    Inventors: Shalesh Thusoo, James S. Blomgren
  • Patent number: 5784590
    Abstract: A cache system has a large master cache and smaller slave caches. The slave caches are coupled to the processor's pipelines and are kept small and simple to increase their speed. The master cache is set-associative and performs many of the complex cache management operations for the slave caches, freeing the slaves of these bandwidth-robbing duties. Only the slave caches store sub-line valid bits with all cache lines; the master cache has only full cache lines valid. During a miss from a slave cache, the slave cache sends its sub-line valid bits to the master cache. The slave's sub-line valid bits are loaded into a request pipeline in the master cache. As requests are fulfilled and finish the pipeline, its address is compared to the addresses of all other pending requests in the master's pipeline. If another pending request matches the slave's index and tag, its sub-line valid bits are updated by setting the corresponding sub-line valid bit for the completing request's sub-line.
    Type: Grant
    Filed: March 19, 1996
    Date of Patent: July 21, 1998
    Assignee: Exponential Technology, Inc.
    Inventors: Earl T. Cohen, Jay C. Pattin
  • Patent number: 5781457
    Abstract: A Boolean logic unit (BLU) features a vectored mux. Boolean instructions are executed by applying operands to the select inputs but truth-table signals to the data inputs. Merge and mask operations are performed by reversing the connection and inputting the operands to the data inputs but applying a merge mask to the select inputs. A byte-spreader copies byte or 16-bit operands to 32-bits before being rotated and merged by the vectored mux. A rotator is used to rotate an operand before being applied to the data input of the vectored mux so that compound rotate-merge operations can be executed in a single step through the vectored mux. A carry flag may also be merged in during a multi-step bit-test instruction. Complex CISC instructions such as rotate-through-carry and shift-double are executed in multiple steps on the vectored mux. Intermediate results are stored in the multiplier-quotient temporary registers which are normally used for multiply and divide instructions.
    Type: Grant
    Filed: May 14, 1996
    Date of Patent: July 14, 1998
    Assignee: Exponential Technology, Inc.
    Inventors: Earl T. Cohen, James S. Blomgren, David E. Richter
  • Patent number: 5781750
    Abstract: A dual-instruction-set CPU is able to execute x86 CISC (complex instruction set computer) code or PowerPC RISC (reduced instruction set computer) code. Three modes of operation are provided: CISC mode, RISC mode, both called user modes, and emulation mode. Emulation mode is entered upon reset, and performs various system checks and memory allocation. A special emulation driver is loaded into a portion of main memory set aside at reset. Software routines to emulate the more complex instructions of the CISC architecture using RISC instructions are also loaded into the emulation memory. A TLB is enabled, and translation tables and drivers are set up in the emulation memory. All TLB misses, even in the user modes, will cause entry to a translator driver in emulation mode. Since the TLB is always enabled for the user modes, and all misses are handled by the emulation code, the emulation code can set aside a portion of memory for itself and insure that the user programs never have access to the emulation memory.
    Type: Grant
    Filed: January 11, 1994
    Date of Patent: July 14, 1998
    Assignee: Exponential Technology, Inc.
    Inventors: James S. Blomgren, David E. Richter
  • Patent number: 5757690
    Abstract: An embedded ROM has a column of static RAM cells attached to the end of the row lines. When a row of ROM cells is activated by the row line, a RAM cell is also activated by the row line. The RAM cell indicates if the data in the selected row's ROM cells is valid. When the RAM cell indicates that the ROM data is not valid, external memory is read to obtain a patched instruction and the ROM data is ignored. The ROM's base address is translated to a base address in external memory of patch code. The ROM's offset address is used as the offset into the patch-code region of external memory. Thus address translation is minimal as the offset is not translated. A single ROM instruction can be updated by a single patch instruction in external memory, providing fine granularity of code updates. Longer update routines can be located in a patch-code overflow region of external memory.
    Type: Grant
    Filed: April 23, 1997
    Date of Patent: May 26, 1998
    Assignee: Exponential Technology, Inc.
    Inventor: Scott H. R. McMahon
  • Patent number: 5751614
    Abstract: A processor has an execution unit that includes an arithmetic-logic-unit (ALU). Logic instructions are executed by a Boolean logic unit constructed around a 4:1 vectored mux. For Boolean logic instructions, the two operands are applied to the select control inputs of the vectored mux, while truth-table signals representing a truth-table for the Boolean operation being executed are applied to the data inputs of the vectored mux. Sign-extension of one of the operands can be performed by modifying the truth-table signals for an upper portion where the sign-extension occurs. Merge instructions are also executed on the vectored mux by reversing the connection of the operands to the vectored mux. The operands are applied to the select control inputs of the vectored mux for Boolean operations, but applied to the data inputs for merge operations. A mask is generated and applied to the select control inputs to select the correct portions of the first and second operands to generate the result of the merge operation.
    Type: Grant
    Filed: February 29, 1996
    Date of Patent: May 12, 1998
    Assignee: Exponential Technology, Inc.
    Inventor: Earl T. Cohen
  • Patent number: 5745913
    Abstract: Memory requests from multiple processors are re-ordered to maximize DRAM row hits and minimize row misses. Requests are loaded into a request queue and simultaneously decoded to determine the DRAM bank of the request. The last row address of the decoded DRAM bank is compared to the row address of the new request and a row-hit bit is set in the request queue if the row addresses match. The bank's state machine is consulted to determine if RAS is low or high, and a RAS-low bit in the request queue is set if RAS is low and the row still open. A row counter is reset for every new access but is incremented with a slow clock while the row is open but not being accessed. After a predetermined count, the row is considered "stale". A stale-row bit in the request queue is set if the decoded bank has a stale row. A request prioritizer reviews requests in the request queue and processes row-hit requests first, then row misses which are to a stale row.
    Type: Grant
    Filed: August 5, 1996
    Date of Patent: April 28, 1998
    Assignee: Exponential Technology, Inc.
    Inventors: Jay C. Pattin, James S. Blomgren
  • Patent number: 5732209
    Abstract: A microprocessor die contains several CPU cores that are substantially identical. A large second-level cache on the die is shared among the multiple CPU's. When 3 CPU's are on the die, their outputs are compared during a self-testing mode. If outputs from all three CPU's match, then no error is detected. When two CPU's outputs match, but a third CPU's output mismatches, then the third CPU is faulty. The output compared from each CPU is a serial scan-chain shift-out, parity from internal test points, and a result written to the shared cache. Each CPU core has a serial scan chain. The serial scan chain strings together most flip-flops in the CPU core into a serial chain. A test clock is pulsed to shift out the data from these flip-flops. During each test clock period, the serial data from each CPU is compared to the serial data from other CPU's. Internal test points within each CPU core are defined at high traffic areas in the pipeline.
    Type: Grant
    Filed: May 14, 1996
    Date of Patent: March 24, 1998
    Assignee: Exponential Technology, Inc.
    Inventors: Peter J. Vigil, Louis S. Lederer, James S. Blomgren
  • Patent number: 5692152
    Abstract: A cache system has a large master cache and smaller slave caches. The slave caches are coupled to the processor's pipelines and are kept small and simple to increase their speed. The master cache is set-associative and performs many of the complex cache management operations for the slave caches, freeing the slaves of these bandwidth-robbing duties. The master cache has a tag pipeline for accessing the tag RAM array, and a data pipeline for accessing the data RAM array. The tag pipeline is optimized for fast access of the tag RAM array, while the data pipeline is optimized for overall data transfer bandwidth. The tag pipeline and the data pipeline are bound together for retrieving the first sub-line of a new miss from the slave cache. Subsequent sub-lines only use the data pipeline, freeing the tag pipeline for other operations. Bus snoops and cache management operations can use just the tag pipeline without impacting data bandwidth.
    Type: Grant
    Filed: May 14, 1996
    Date of Patent: November 25, 1997
    Assignee: Exponential Technology, Inc.
    Inventors: Earl T. Cohen, Jay C. Pattin
  • Patent number: 5687336
    Abstract: A pipelined processor executes several stack instructions simultaneously. Additional shadow registers for stack pointers of instructions in the pipeline are not needed. Instead the new stack pointer is generated once at the end of the pipeline and written to the register file. The stack pointer is needed for generating the stack-top address in memory. The stack-top address is generated early in the pipeline. Other stack instructions in the pipeline which have not yet incremented the stack pointer are located with a stack valid bit array. The stack valid array indicates the increment or decrement amounts for stack instructions in each pipeline stage. An overall displacement or increment value is computed as the sum of all increments and decrements for stack instructions in the pipeline which have not yet updated the stack pointer. The overall displacement which accounts for all unfinished stack instructions is added to the stack pointer from the register file to generate the stack-top address.
    Type: Grant
    Filed: January 11, 1996
    Date of Patent: November 11, 1997
    Assignee: Exponential Technology, Inc.
    Inventors: Gene Shen, Shalesh Thusoo, James S. Blomgren
  • Patent number: 5685009
    Abstract: A dual-instruction-set central processing unit (CPU) is capable of executing floating point instructions from a reduced instruction set computer (RISC) instruction set and from a complex instruction set computer (CISC) instruction set. Floating point data is transferred from a CISC program to a RISC program running on the CPU by using shared floating point registers. The architecturally-defined floating point registers in the CISC instruction set are merged or folded into some of the architecturally-defined floating point registers in the RISC architecture so that these merged registers are shared by the two instructions sets. In particular, the floating-point exception-mask and flags registers defined by each architecture are merged together so that CISC instructions and RISC instructions implicitly update the same merged flags register when executing floating point instructions.
    Type: Grant
    Filed: November 29, 1995
    Date of Patent: November 4, 1997
    Assignee: Exponential Technology, Inc.
    Inventors: James S. Blomgren, David E. Richter, Cheryl Senter Brashears
  • Patent number: 5664159
    Abstract: A single breakpoint address register on a CPU is shared to emulate a plurality of breakpoint registers. A plurality of breakpoints are stored in an emulation area of main memory. One of these breakpoints is loaded into the single breakpoint register on the CPU. When a translation-lookaside buffer (TLB) on the CPU detects a page miss, a page miss handler activates a debug processing routine to determine if the faulting page contains one of the breakpoints. If the faulting page does contain a breakpoint, then this breakpoint is written to the single breakpoint register on the CPU. Any page in TLB is invalidated if it contained the old breakpoint that was overwritten by the new breakpoint in the single breakpoint register. Thus only one breakpoint can have a page translation in the TLB at any time, and the breakpoints are swapped in and out of single breakpoint register when the TLB entries are swapped. A TLB invalidate entry instruction finds the old breakpoint's TLB entry and invalidates it.
    Type: Grant
    Filed: May 8, 1995
    Date of Patent: September 2, 1997
    Assignee: Exponential Technology, Inc.
    Inventors: David E. Richter, James S. Blomgren
  • Patent number: 5652872
    Abstract: A computer system emulates segment bounds checking with a paging system. Pages entirely within a segment are designated as `clear pages`, while the first and last pages containing segment bounds may be partially-valid pages. The computer system has a memory with a segment descriptor table and an active segment descriptor cache. The active segment descriptor cache holds a copy of the segment descriptors for the active segments in a central processing unit (CPU). The active segment descriptor cache also hold the first and last clear page numbers and the first and last linear address offsets for the active segment. A software segment load routine copies portions of the segment descriptor from the segment descriptor table to the active segment descriptor cache when a user program loads a new segment. Only the segment base address is copied to the CPU die; the segment limit and selector need not be stored on the CPU die.
    Type: Grant
    Filed: May 8, 1995
    Date of Patent: July 29, 1997
    Assignee: Exponential Technology, Inc.
    Inventors: David E. Richter, James S. Blomgren
  • Patent number: 5644752
    Abstract: A master-slave cache system has a large master cache and smaller slave caches, including a slave data cache for supplying operands to an execution pipeline of a processor. The master cache performs all cache coherency operations, freeing the slaves to supply the processor's pipelines at their maximum bandwidth. A store queue is shared between the master cache and the slave data cache. Store data from the processor's execute pipeline is written from the store queue directly into both the master cache and the slave data cache, eliminating the need for the slave data cache to write data back to the master cache. Additionally, fill data from the master cache to the slave data cache is first written to the store queue. This fill data is available for use while in the store queue because the store queue acts as an extension to the slave data cache. Cache operations, diagnostic stores and TLB entries are also loaded into the store queue. A new store or line fill can be merged into an existing store queue entry.
    Type: Grant
    Filed: December 7, 1994
    Date of Patent: July 1, 1997
    Assignee: Exponential Technology, Inc.
    Inventors: Earl T. Cohen, Russell W. Tilleman, Jay C. Pattin
  • Patent number: 5633819
    Abstract: The sum from a floating point adder is normalized by an initial shift based on a prediction for the position of the leading one or zero in the sum. This leading-one/zero prediction is based not on the operands input to the adder, nor the result from the adder, but on the intermediate generate and propagate signals within the adder. The adder has a first stage that reduces each bit-position to a generate and a propagate signal. The adder's second stage propagates the carries in the adder using these generate and propagate signals to generate the sum. Thus the adder's first-stage logic is also used for the leading one/zero prediction, reducing cost and complexity. An ECL half-adder cell is preferably used for the adder's first stage. A zero output is added to the ECL half-adder cell at minimal cost. The shift for the leading one/zero prediction is accomplished in two stages, with a selective complement of negative sums between the two-stage shift.
    Type: Grant
    Filed: October 24, 1995
    Date of Patent: May 27, 1997
    Assignee: Exponential Technology, Inc.
    Inventors: Cheryl S. Brashears, James S. Blomgren, Earl T. Cohen
  • Patent number: 5634118
    Abstract: A stack-register swap or exchange instruction is executed by splitting the exchange into two halves, and then each half is absorbed into a surrounding instruction by translating its source or destination operands. If one or both surrounding instructions are absent, then one or both halves of the exchange instruction are inserted into the pipeline as separate pipeline flows. When the surrounding instructions are stack-based, the stack operands are first converted to a destination and two source operands that specify a register by absolute number. A translation circuit then translates one of the operands of a surrounding instruction so the surrounding instruction's source is read from the exchange instruction's source, or so that the surrounding instruction's destination is written to the exchange instruction's destination, eliminating the need for processing a separate exchange instruction.
    Type: Grant
    Filed: April 10, 1995
    Date of Patent: May 27, 1997
    Assignee: Exponential Technology, Inc.
    Inventor: James S. Blomgren
  • Patent number: 5608886
    Abstract: A target finder array in the instruction cache contains a lower portion of the target address and a block encoding indicating if the target address is within the same 2K-byte block that the branch instruction is in, or if the target address is in the next or previous 2K-byte block. The upper portion of the target address, its block number, which corresponds to the starting address of a 2K block, is generated from the target finder simply by taking the upper portion or block number of the branch instruction and incrementing and decrementing it, and using the block encoding in the finder to select either the unmodified block number of the branch instruction, or the incremented or decremented block number of the branch instruction. The lower portion of the target address that was stored in the finder is concatenated with the selected block number to get the predicted target address.
    Type: Grant
    Filed: August 31, 1994
    Date of Patent: March 4, 1997
    Assignee: Exponential Technology, Inc.
    Inventors: James S. Blomgren, Earl T. Cohen, Brian R. Baird
  • Patent number: 5598546
    Abstract: A dual-instruction-set processor processes instructions from two or more instruction sets. The processor has several pipelines for processing different types of operations--Memory, ALU, and Branch operations. Instructions are decoded by RISC and CISC instruction decoders which generate control words for the pipelines. The control words are encoded by the operation to be performed by the pipelines, which can overlap for the instruction sets. A different format for the control word is used for each pipeline, but the format is the same for all instruction sets. Once the control words are generated and sent to the pipelines, an indication of the instruction set is no longer needed. Thus instructions from several instruction sets may be freely mixed in the pipelines, and there is no need to flush the pipelines when the instruction set is switched.
    Type: Grant
    Filed: August 31, 1994
    Date of Patent: January 28, 1997
    Assignee: Exponential Technology, Inc.
    Inventor: James S. Blomgren