Patents Examined by Richard L. Ellis
  • Patent number: 6351844
    Abstract: A method is shown for selecting active, or hot, code traces in an executing program for storage in a code cache. A trace is a sequence of dynamic instructions characterized by a start address and a branch history which allows the trace to be dynamically disassembled. Each trace is terminated by execution of a trace terminating condition which is a backward taken branch, an indirect branch, or a branch whose execution causes the branch history for the trace to reach a predetermined limit. As each trace is generated by the executing program, it is loaded into a buffer for processing. When the buffer is full, a counter corresponding to the start address of each trace is incremented. When the count for a start address exceeds a threshold, then the start address is marked as being hot. Each hot trace is then checked to see if the next trace in the buffer shares the same start address, in which case the hot trace is cyclic.
    Type: Grant
    Filed: November 5, 1998
    Date of Patent: February 26, 2002
    Assignee: Hewlett-Packard Company
    Inventor: Vasanth Bala
  • Patent number: 6349379
    Abstract: The present invention discloses an image processor (224) for executing a computer instruction set (280, 290) in the form of an opcode (281), at least one operand (283-285) which is, or indicates the location of data to be processed. The data to be processed consists of a variable length stream of data and each instruction includes a length field (297) containing data specifying the number of items of data to be processed or, if that number exceeds the size of the length field, a predetermined location of a previously allocated storage area at which that number is stored.
    Type: Grant
    Filed: February 18, 1998
    Date of Patent: February 19, 2002
    Assignee: Canon Kabushiki Kaisha
    Inventors: Ian Gibson, Timothy Merrick Long, Christopher Amies
  • Patent number: 6349383
    Abstract: An apparatus and method are provided for combining multiple instructions prescribing accesses to a microprocessor stack into a single micro instruction. The apparatus includes a translator and access alignment logic. The translator receives a first stack access instruction and a second stack access instruction from an instruction queue, and decodes them into an associated micro instruction directing the microprocessor to accomplish both accesses prescribed by the stack access instructions during a combined access, wherein the combined access is achieved in a single instruction cycle. The access alignment logic is coupled to the translator and indicates alignment of two data entities within a cache for the combined access. The two stack access instructions are not combined when the access alignment logic indicates that the combination of the data entities is misaligned within the cache.
    Type: Grant
    Filed: September 10, 1998
    Date of Patent: February 19, 2002
    Assignee: IP-First, L.L.C.
    Inventors: Gerard M. Col, G. Glenn Henry, Arturo Martin-de-Nicolas
  • Patent number: 6349381
    Abstract: A pipelined instruction dispatch or grouping circuit allows instruction dispatch decisions to be made over multiple processor cycles. In one embodiment, the grouping circuit performs resource allocation and data dependency checks on an instruction group, based on a state vector which includes representation of source and destination registers of instructions within said instruction group and corresponding state vectors for instruction groups of a number of preceding processor cycles.
    Type: Grant
    Filed: July 25, 2000
    Date of Patent: February 19, 2002
    Assignee: Sun Microsystems, Inc.
    Inventor: Marc Tremblay
  • Patent number: 6345321
    Abstract: A memory component on a single integrated circuit includes a RAM, one or more configuration registers, and an associated controller. The behavior of the memory component, including selection from a number of different operating modes, is controllable via configuration register mode bits. The various modes include several transfer-length modes, where each mode corresponds to data transfers of a predetermined length. Based on the mode selection specified by the mode bits, the controller determines the length of the data transfers.
    Type: Grant
    Filed: May 24, 2000
    Date of Patent: February 5, 2002
    Assignee: Busless Computers Sarl
    Inventors: Daniel Litaize, Jean-Claude Salinier, Abdelaziz Mzoughi, Fatima-Zahra Elkhlifi, Mustapha Lalam, Pascal Sainrat
  • Patent number: 6338134
    Abstract: A method and system in a superscalar data processing system are disclosed for the efficient processing of an instruction by moving only pointers to data. Multiple instructions in the superscalar data processing system are processed during a single clock cycle. A determination is made whether one of these instructions is a particular type of instruction which specifies data to be moved or copied from a logical origination location to a logical destination location during processing of the instruction. In response to a determination that the instruction is a particular type of instruction, a first pointer field is established associated with the instruction for associating a pointer stored in the first pointer field with the logical origination location. A second pointer field is also established associated with the instruction for associating a pointer stored in the second pointer field with the logical destination location.
    Type: Grant
    Filed: December 29, 1998
    Date of Patent: January 8, 2002
    Assignee: International Business Machines Corporation
    Inventors: Wan Lin Leung, Frank Cassatt Harwood
  • Patent number: 6332189
    Abstract: A branch prediction architecture is disclosed, having a branch predictor, a target address register, first and second multiplexors, a cache memory, and a trace cache. The branch predictor may advantageously be a series-parallel branch predictor, and alternatively may be a serial-BLG branch predictor or a choosing branch predictor. The first multiplexor receives an input from the target address register, and provides an output to the cache memory. The cache memory receives output from both the branch predictor and the first multiplexor, and provides an output to the second multiplexor. The trace cache receives the output from the branch predictor, and provides an output received by the second multiplexor. The second multiplexor, receiving input from both the trace cache and the cache memory, outputs branch predictions and instruction bundles.
    Type: Grant
    Filed: October 16, 1998
    Date of Patent: December 18, 2001
    Assignee: Intel Corporation
    Inventors: Gunjeet Baweja, Harsh Kumar
  • Patent number: 6332191
    Abstract: A line predictor is configured to speculatively fetch instructions following a branch instruction. The line predictor stores a plurality of lines that each contain instruction line information. Each line stored by the line predictor includes a fetch address, information regarding one or more instructions, and one or more next fetch addresses. In response to receiving a fetch address, the line predictor is configured to provide instruction line information corresponding to the one or more instructions located at the fetch address to an alignment unit. The line predictor is also configured to provide a next fetch address associated with the fetch address to an instruction cache for speculative fetching and to a branch prediction unit for a branch prediction. The next fetch address is further fed back into the line predictor to generate the instruction line information associated with it and a subsequent next fetch address.
    Type: Grant
    Filed: January 19, 1999
    Date of Patent: December 18, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventor: David B. Witt
  • Patent number: 6327607
    Abstract: An invocation architecture for generally concurrent process resolution comprises a plurality of interconnected processors, some of the processors being homogeneous processors and others of the processors being special purpose processors. Each homogeneous processor being capable of invoking a connected processor to have the connected processor resolve instructions. Each processor capable of being invoked by a connected processor to resolve instructions at the invocation of the connected processor.
    Type: Grant
    Filed: June 25, 1999
    Date of Patent: December 4, 2001
    Assignee: Theseus Research, Inc.
    Inventor: Karl M. Fant
  • Patent number: 6304932
    Abstract: A shared bus system having a bus and a set of client modules coupled to the bus. Each client module is capable of sending transactions on the bus to other client modules and receiving transactions on the bus from other client modules for processing. Each module has a queue for storing transactions received by the module for processing. A bus controller limits the types of transactions that can be sent on the bus to prevent any module's queue from overflowing.
    Type: Grant
    Filed: October 25, 2000
    Date of Patent: October 16, 2001
    Assignee: Hewlett-Packard Company
    Inventors: Michael L. Ziegler, Robert J. Brooks, William R. Bryg, Craig R. Frink, Thomas R. Hotchkiss, Robert D. Odineal, James B. Williams, John L. Wood
  • Patent number: 6289440
    Abstract: A virtual network consists of many distributed virtual computers interconnected over a communication network of individual links, such as optical fibers or electrical conductors, for example. Each distributed virtual computer has at least two ports connected over respective links to other respective distributed virtual computers on the network. Each distributed virtual computer is connected to or resident within its own host, each host typically being a conventional computer such as a personal computer or a work station, for example, although at least one of the hosts may itself be another virtual computer. Each distributed virtual computer has reconfigurable logic elements such as an FPGA or an array of FPGAs.
    Type: Grant
    Filed: July 14, 1999
    Date of Patent: September 11, 2001
    Assignee: Virtual Computer Corporation
    Inventor: Steven Casselman
  • Patent number: 6279101
    Abstract: A super-scalar microprocessor performs operations upon a plurality of instructions at each of its fetch, decode, execute, and write-back stages. To support such operations, the super-scalar microprocessor includes a dispatch arrangement including an instruction cache for fetching blocks of instructions including a plurality of instructions and an instruction decoder which decodes and dispatches the instructions to functional units for execution. The instruction decoder applies a dispatch criteria to selected instructions of each block of instructions and dispatches the selected instructions which satisfy the dispatch criteria. The dispatch criteria includes the requirement that the instructions be dispatched speculatively in order, that supporting operands be available for the execution of the instructions, or tagged values substituted that will be available later, and that the functional units required for executing the instructions be available.
    Type: Grant
    Filed: June 7, 1995
    Date of Patent: August 21, 2001
    Assignee: Advanced Micro Devices, Inc.
    Inventors: David B. Witt, William M. Johnson
  • Patent number: 6279096
    Abstract: The inventive system and method provides a processing resource which performs bit reversing and Boolean algebraic operations. These operations are commonly needed by discrete transform algorithms to reorder data samples. By selectively remapping the address bus, a series of non-linear accesses to the data memory are converted to linear accesses. Another use of the invention to pack floating point numbers in memory is also disclosed. An embodiment using an in-circuit reprogrammable logic device is disclosed which allows processing software to dynamically reconfigure the mapping logic and rules.
    Type: Grant
    Filed: October 1, 1998
    Date of Patent: August 21, 2001
    Assignee: Intelect Communications, Inc.
    Inventors: James Kevin McCoy, Robert Heflin Frantz
  • Patent number: 6275924
    Abstract: According to one embodiment of the invention, a method of buffering instructions in a processor having a pipeline having a decode stage includes detecting stalling of the decode stage, reissuing a previous fetch for an instruction in a memory until the decode stage is no longer stalled, and writing the fetch instruction into an instruction buffer after the decode stage is no longer stalled.
    Type: Grant
    Filed: September 15, 1998
    Date of Patent: August 14, 2001
    Assignee: Texas Instruments Incorporated
    Inventors: Chandar G. Subash, Deepak Mital
  • Patent number: 6269439
    Abstract: A signal processor for pipeline processing which can effectively avoid deterioration of the processing efficiency caused by branch instructions and methods thereof: wherein when obtaining a result that an instruction decoded in an ID module is a branch instruction, determination is made as to branch existence in an EX module in the next cycle, and an instruction in a branch destination and an instruction in a non-branch destination are fetched simultaneously in an IF module; consequently, in the next cycle, in response to the result of the branch existence, one of the fetched instructions of the branch destination or the non-branch destination is selected and is then decoded in an ID module.
    Type: Grant
    Filed: June 12, 1998
    Date of Patent: July 31, 2001
    Assignee: Sony Corporation
    Inventor: Hirokazu Hanaki
  • Patent number: 6269431
    Abstract: A data storage system has a primary data storage subsystem including primary data storage and a secondary data storage subsystem including secondary data storage. The secondary data storage contains backup versions of data stored in the primary data storage. To permit a host processor to access a specified backup version, the primary data storage subsystem assigns a virtual storage address to a specified backup version, and the host processor sends to the primary data storage subsystem data access requests that specify the virtual storage address. If the primary data storage subsystem has spare data storage, then a copy of the specified backup version is read from the secondary storage and written into the spare storage, and the address of the copy in the spare storage is mapped to the virtual storage address and accessed in response to the storage access requests from the host processor. Otherwise, a block-level direct access of the secondary storage is performed to access the specified backup version.
    Type: Grant
    Filed: August 13, 1998
    Date of Patent: July 31, 2001
    Assignee: EMC Corporation
    Inventor: Scott R. Dunham
  • Patent number: 6266759
    Abstract: A vector-processor SIMD RISC computer system uses virtual addressing and overlapped instruction execution. Indicators for each of the architected registers assume different states when an instruction, overlapped with a vector memory-reference instruction, has or has not read from or written to a particular register. Multiple overlapped vector memory-reference instructions are assigned separate sets of indicators. Indicators in a certain state prevents a subsequent overlapped instruction from writing to its associated register.
    Type: Grant
    Filed: December 14, 1998
    Date of Patent: July 24, 2001
    Assignee: Cray, Inc.
    Inventor: Mark S. Birrittella
  • Patent number: 6260136
    Abstract: In addition to a register file having four general-purpose registers each for storing data, an arithmetic and logic unit for executing an addition instruction, a subtraction instruction, or the like, and a multiplier unit for executing a multiplication instruction, there are provided a controller and a substitute register for storing only data representing the result of operation performed by the multiplier unit in place of any of the four general-purpose registers in the register file. The controller controls the writing and reading of data in and from the register file and the writing and reading of data in and from the substitute register based on a multiplication tag indicative of the one of the four general-purpose registers in place of which the substitute register stores the data representing the result of multiplication and on a multiplication execute flag indicative of whether the data stored in the substitute register is effective or ineffective.
    Type: Grant
    Filed: August 18, 1998
    Date of Patent: July 10, 2001
    Assignee: Matsushita Electric Industrial Co., Ltd.
    Inventor: Hideyuki Kabuo
  • Patent number: 6249861
    Abstract: The present invention provides an instruction fetch unit aligner. In one embodiment, an apparatus for an instruction fetch unit aligner includes selection logic for selecting a non-power of two size instruction from power of two size instruction data, and control logic for controlling the selection logic.
    Type: Grant
    Filed: December 3, 1998
    Date of Patent: June 19, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, Graham R. Murphy, Frank C. Chiu
  • Patent number: 6247148
    Abstract: A server extension architecture provides means for intercepting input events and output protocol requests. Remote terminal emulation on an XWindows system is possible. The architecture comprises a portion of memory in the server extension which is identical to a portion in memory in the server where the server stores the addresses of input and output handling routines. By swapping these addresses with addresses in the server extension portion of memory, the server extension intercepts input and output, for monitoring a server or an application program or controlling a workstation. The server extension architecture is operated under the control of an application program.
    Type: Grant
    Filed: June 1, 1993
    Date of Patent: June 12, 2001
    Assignee: Compaq Computer Corporation
    Inventors: Richard Francis Annicchiarico, Robert Todd Chesler, Alan Quentin Jamison