Patents Examined by Daniel Pan
  • Patent number: 7849293
    Abstract: A methodology and implementation of a load-tagged pointer instruction for RISC based microarchitecture is presented. A first lower latency, speculative implementation reduces overall throughput latency for a microprocessor system by estimating the results of a particular instruction and confirming the integrity of the estimate a little slower than the normal instruction execution latency. A second higher latency, non-speculative implementation that always produces correct results is invoked by the first when the first guesses incorrectly. The methodologies and structures disclosed herein are intended to be combined with predictive techniques for instruction processing to ultimately improve processing throughput.
    Type: Grant
    Filed: January 31, 2008
    Date of Patent: December 7, 2010
    Assignee: International Business Machines Corporation
    Inventors: Bartholomew Blaner, Michael K. Gschwind
  • Patent number: 7844807
    Abstract: In at least one embodiment, a processor includes at least one execution unit and instruction sequencing logic that fetches instructions for execution by the execution unit. The instruction sequencing logic includes branch logic that outputs predicted branch target addresses for use as instruction fetch addresses. The branch logic includes a branch target address cache (BTAC) having at least one direct entry providing storage for a direct branch target address prediction associating a first instruction fetch address with a branch target address to be used as a second instruction fetch address immediately after the first instruction fetch address and at least one indirect entry providing storage for an indirect branch target address prediction associating a third instruction fetch address with a branch target address to be used as a fourth instruction fetch address subsequent to both the third instruction fetch address and an intervening fifth instruction fetch address.
    Type: Grant
    Filed: February 1, 2008
    Date of Patent: November 30, 2010
    Assignee: International Business Machines Corporation
    Inventors: David S. Levitan, Lixin Zhang
  • Patent number: 7822948
    Abstract: An apparatus, system, and method are disclosed for discontiguous multiple issue of instructions. An assignment unit assigns a plurality of instruction blocks to a plurality of issue units. The plurality of issue units each comprises a renaming map that maps each architecturally visible register address to a rename register. Each issue unit maps each architecturally visible register in the decoded instruction to a register placeholder if the renaming map entry for that architecturally visible register is invalid else maps the architecturally visible register in the decoded instruction to a rename register if the rename register entry is valid. Each issue unit further receives predecessor mapping information from the renaming map of the issue unit's predecessor issue unit in response to the assignment unit identifying a relationship with the predecessor issue unit and the final mapping information being available from the predecessor issue unit.
    Type: Grant
    Filed: January 3, 2008
    Date of Patent: October 26, 2010
    Assignee: International Business Machines Corporation
    Inventor: Russell Lee Lewis
  • Patent number: 7793080
    Abstract: One or more processor cores of a multiple-core processing device each can utilize a processing pipeline having a plurality of execution units (e.g., integer execution units or floating point units) that together share a pre-execution front-end having instruction fetch, decode and dispatch resources. Further, one or more of the processor cores each can implement dispatch resources configured to dispatch multiple instructions in parallel to multiple corresponding execution units via separate dispatch buses. The dispatch resources further can opportunistically decode and dispatch instruction operations from multiple threads in parallel so as to increase the dispatch bandwidth. Moreover, some or all of the stages of the processing pipelines of one or more of the processor cores can be configured to implement independent thread selection for the corresponding stage.
    Type: Grant
    Filed: December 31, 2007
    Date of Patent: September 7, 2010
    Inventors: Gene Shen, Sean Lie
  • Patent number: 7711925
    Abstract: An information-processing device that executes a specific process more frequently than other processes among a variety of processes is provided. The information-processing device includes a first processor capable of executing an instruction set corresponding to the variety of processes, and a second processor capable of executing a portion of or the entire instruction set, the second processor being capable of executing a part of the instruction set corresponding to the specific process more efficiently than the first processor, wherein the second processor executes the specific process whereas the first processor executes the other processes. Accordingly, the information-processing device can execute a variety of instructions efficiently.
    Type: Grant
    Filed: December 26, 2000
    Date of Patent: May 4, 2010
    Assignee: Fujitsu Limited
    Inventor: Hisashige Ando
  • Patent number: 7685283
    Abstract: The invention comprises a computer-implemented process for managing computing resources provided to customers in an on-demand data center. The process comprises: providing a shared computing environment; providing to each customer one or more logical partitions of computing resources within the shared computing environment; allocating at least one processing engine to each logical partition; modeling a selected customer's resource utilization as a beta distribution; iteratively selecting a random resource utilization value from the beta distribution and, for each logical partition, calculating a processing engine differential; for each iteration, calculating a collective processing engine differential until the collective processing engine differential converges on an optimal processing engine differential; and adjusting the number of processing engines by the optimal processing engine differential to achieve an optimal free pool size.
    Type: Grant
    Filed: January 23, 2006
    Date of Patent: March 23, 2010
    Assignee: International Business Machiens Corporation
    Inventors: Robert L. Boyce, Jr., Randy S. Johnson, Tedrick N. Northway, Walter F. Schmidt, Clea A. Zolotow
  • Patent number: 7650384
    Abstract: A method and system for maintaining real-time conversations over unreliable connections is provided. The reliable messaging system initiates a conversation from a sending participant to a receiving participant by sending an invitation to join the conversation to the receiving participant. Once a connection is established, the reliable messaging system associates the conversation with the connection. If the connection is lost, then the reliable messaging system attempts to restore the connection by sending an invitation to the participant that was disconnected. If the reliable messaging system is able to restore the connection, then the new connection is associated with the previous conversation, and the conversation can continue.
    Type: Grant
    Filed: November 17, 2006
    Date of Patent: January 19, 2010
    Assignee: Microsoft Corporation
    Inventors: Rajesh Ramanathan, Parag Samdadiya
  • Patent number: 7467288
    Abstract: A system and method for processing operations that use data vectors each comprising a plurality of data elements, in accordance with the present invention, includes a vector data file comprising a plurality of storage elements for storing data elements of the data vectors. A pointer array is coupled by a bus to the vector data file. The pointer array includes a plurality of entries wherein each entry identifies at least one storage element in the vector data file. The at least one storage element stores at least one data element of the data vectors, wherein for at least one particular entry in the pointer array, the at least one storage element identified by the particular entry has an arbitrary starting address in the vector data file.
    Type: Grant
    Filed: November 15, 2003
    Date of Patent: December 16, 2008
    Assignee: International Business Machines Corporation
    Inventors: Clair John Glossner, III, Erdem Hokenek, David Meltzer, Mayan Moudgill
  • Patent number: 7464251
    Abstract: A method and an apparatus for configuring arbitrary sized data paths comprising multiple context processing elements (MCPEs) are provided. Multiple MCPEs may be chained to form wider-word data paths of arbitrary widths, wherein a first ALU serves as the most significant byte (MSB) of the data path while a second ALU serves as the least significant byte (LSB) of the data path. The ALUs of the data path are coupled using a left-going, or forward, carry chain for transmitting at least one carry bit from the LSB ALU to the MSB ALU. The MSB ALU comprises configurable logic for generating at least one signal in response to a carry bit received over the left-going carry chain, the at least one signal comprising a saturation signal and a saturation value. The MCPEs of the data path use configurable logic to manipulate a resident bit sequence in response to the saturation signal transmitted thereby reconfiguring, or changing the operation of, the data path in response to the saturation signal.
    Type: Grant
    Filed: February 27, 2003
    Date of Patent: December 9, 2008
    Assignee: Broadcom Corporation
    Inventor: Ethan A. Mirsky
  • Patent number: 7461237
    Abstract: A system that suppresses duplicative prefetches for branch target cache lines. During operation, the system fetches a first cache line into in a fetch buffer. The system then prefetches a second cache line, which immediately follows the first cache line, into the fetch buffer. If a control transfer instruction in the first cache line has a target instruction which is located in the second cache line, the system determines if the control transfer instruction is also located at the end of the first cache line so that a corresponding delay slot for the control transfer instruction is located at the beginning of the second cache line. If so, the system suppresses a subsequent prefetch for a target cache line containing the target instruction because the target instruction is located in the second cache line which has already been prefetched.
    Type: Grant
    Filed: April 20, 2005
    Date of Patent: December 2, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Abid Ali, Paul Caprioli, Shailender Chaudhry, Miles Lee
  • Patent number: 7454601
    Abstract: The present invention relates to a method and system for providing an N-wide add-compare-select instruction includes decoding an instruction as an N-wide add-compare-select instruction and selecting a plurality of branch metrics. The method also includes combining the plurality of branch metrics with a plurality of source operands and outputting a pair of maximum values.
    Type: Grant
    Filed: March 28, 2002
    Date of Patent: November 18, 2008
    Assignee: Intel Corporation
    Inventor: Gad Sheaffer
  • Patent number: 7447880
    Abstract: A processor comprises an arithmetic unit for processing operands, a register memory for storing operands with a register memory space and a register memory configuration unit. The register memory configuration unit is designed to configure the register memory such that memory space in the register memory is assigned to operands, and that memory space in the register memory that is not assigned to operands will be made available for other data than the operands. Thereby, on the one hand the number of operand transfers between an external bus and the arithmetic unit is decreased, since as many operands as possible are stored in the register memory, while on the other hand, when part of the register memory is not needed for storage of operands, this part will not be idle but made available for other data, so that the memory resources of the processors are always utilized optimally.
    Type: Grant
    Filed: November 25, 2003
    Date of Patent: November 4, 2008
    Assignee: Infineon Technologies AG
    Inventors: Astrid Elbe, Norbert Janssen
  • Patent number: 7447886
    Abstract: A system and methods are discussed for providing additional capabilities to some instructions associated with loop execution. A standard set of instructions is processed using only a standard instruction size. Some loop instructions are processed with a standard instruction portion of the standard instruction size and an augmented instruction portion. The augmented instruction portion provides additional capabilities associated with the standard instruction portion. The augmented instruction portion can provide capabilities associated with conditional execution of the standard instruction portion or other instructions within a program loop. Furthermore, the augmented instruction portion can provide an additional operand to be used with the standard instruction portion.
    Type: Grant
    Filed: April 22, 2002
    Date of Patent: November 4, 2008
    Assignee: Freescale Semiconductor, Inc.
    Inventors: Lea Hwang Lee, William C. Moyer
  • Patent number: 7447876
    Abstract: The present invention provides a system and method for managing load and store operations necessary for reading from and writing to memory or I/O in a superscalar RISC architecture environment. To perform this task, a load store unit is provided whose main purpose is to make load requests out of order whenever possible to get the load data back for use by an instruction execution unit as quickly as possible. A load operation can only be performed out of order if there are no address collisions and no write pendings. An address collision occurs when a read is requested at a memory location where an older instruction will be writing. Write pending refers to the case where an older instruction requests a store operation, but the store address has not yet been calculated. The data cache unit returns 8 bytes of unaligned data. The load/store unit aligns this data properly before it is returned to the instruction execution unit.
    Type: Grant
    Filed: April 18, 2005
    Date of Patent: November 4, 2008
    Assignee: Seiko Epson Corporation
    Inventors: Cheryl D. Senter, Johannes Wang
  • Patent number: 7444495
    Abstract: A computing arrangement including a processor and programmable logic. In various embodiments, the arrangement includes an instruction processing circuit coupled to a programmable logic circuit, and a memory arrangement coupled to the instruction processing circuit and to the programmable logic circuit. The instruction processing circuit executes instructions of a native instruction set, and the programmable logic is configured to dynamically translate input instructions to translated instructions of the native instruction set. The translated instructions are stored in a translation cache in the memory arrangement, and the translation cache is managed by the programmable logic. The programmable logic then provides the translated instructions to the instruction processing circuit for execution.
    Type: Grant
    Filed: August 30, 2002
    Date of Patent: October 28, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Gregory S. Snider
  • Patent number: 7441104
    Abstract: The present invention provides for parallel subword instructions that cause results to be non-contiguously stored in a result register. For example, a targeting-type instruction can specify (implicitly or explicitly) a bit position and the result of each of the parallel subword compare operations can be stored at that bit position within the respective subword location of a result register. Alternatively, for a shifting-type instruction, pre-existing contents of a result register can be shifted one bit toward greater significance while the results are of the present operation are stored in the least-significant bits of respective result-register subword locations. This approach provides the results of multiple parallel subword compare instructions to be combined with relatively few instructions and reduces the maximum lateral movement of information—both of which can enhance performance.
    Type: Grant
    Filed: March 30, 2002
    Date of Patent: October 21, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Dale Morris
  • Patent number: 7426631
    Abstract: Methods and systems for storing branch information in an address table of a processor are disclosed. A processor of the disclosed embodiments may generally include an instruction fetch unit connected to an instruction cache, a branch execution unit, and an address table being connected to the instruction fetch unit and the branch execution unit. The address table may generally be adapted to store a plurality of entries with each entry of the address table being adapted to store a base address and a base instruction tag. In a further embodiment, the branch execution unit may be adapted to determine the address of a branch instruction having an instruction tag based on the base address and the base instruction tag of an entry of the address table associated with the instruction tag. In some embodiments, the address table may further be adapted to store branch information.
    Type: Grant
    Filed: February 2, 2005
    Date of Patent: September 16, 2008
    Assignee: International Business Machines Corporation
    Inventors: Brian R. Konigsburg, David Stephen Levitan, Wolfram M. Sauer, Samuel Jonathan Thomas
  • Patent number: RE40942
    Abstract: An integrated data processing platform for processing a digital signal that includes a general purpose processor and a digital signal processor (DSP) module. The DSP module recovers digital data from a digital signal utilizing a sequence of DSP operations selected by the general purpose processor. The general purpose processor processes the digital data recovered by the DSP module, but is also available to perform general purpose tasks. A shared internal memory array selectively provides information to the DSP module and to the general purpose processor. The information stored in the internal memory array includes operands utilized in the execution of the DSP algorithm and selected instructions and data utilized by the general purpose CPU either for controlling the execution of the DSP algorithm or for executing its own general purpose tasks.
    Type: Grant
    Filed: January 20, 1999
    Date of Patent: October 20, 2009
    Assignee: National Semiconductor Corporation
    Inventors: Amos Intrater, Gideon Intrater, Moshe Doron, Lev Epstein, Maurice Valentaten, Israel Greiss
  • Patent number: RE41012
    Abstract: A double indirect method of accessing a block of data in a register file is used to allow efficient implementations without the use of specialized vector processing hardware. In addition, the automatic modification of the register addressing is not tied to a single vector instruction nor to repeat or loop instructions. Rather, the technique, termed register file indexing (RFI) allows full programmer flexibility in control of the block data operational facility and provides the capability to mix non-RFI instructions with RFI instructions. The block-data operation facility is embedded in the iVLIW ManArray architecture allowing its generalized use across the instruction set architecture without specialized vector instructions or being limited in use only with repeat or loop instructions.
    Type: Grant
    Filed: June 3, 2004
    Date of Patent: November 24, 2009
    Assignee: Altera Corporation
    Inventors: Edwin Franklin Barry, Gerald George Pechanek, Patrick R. Marchand
  • Patent number: RE41293
    Abstract: Global address and data routers interconnect individual system units each having its own processors, memory, and I/O. A domain filter coupled to the routers dynamically defines groups of system units as domains and clusters of domains which have both software and hardware isolation from each other. Clusters can share dynamically definable ranges of memory with each other. The domain filter has software-loadable registers on the system units and in the global routers to set the parameters of the domains and clusters. The registers label individual inter-system transactions on the routers as invalid for system units not in the same domain or cluster as the originating unit.
    Type: Grant
    Filed: August 1, 2001
    Date of Patent: April 27, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Daniel P. Drogichen, Andrew J. McCrocklin, Nicholas E. Aneshansley