Patents Examined by John Lindlof
  • Patent number: 8949585
    Abstract: One embodiment of the present invention includes a method of making a bootable image for a computer, wherein the bootable image corresponds to a first virtual machine but is bootable on a target machine, the method comprising: (a) instantiating the first virtual machine within a virtualization system and executing computations thereof, the computations operating upon an encapsulation of virtual machine state for the instantiated virtual machine; and (b) introducing into the encapsulation, a boot loader that defines at least one transformation to be performed on the encapsulation to allow the target machine to boot from the virtual machine state.
    Type: Grant
    Filed: March 19, 2008
    Date of Patent: February 3, 2015
    Assignee: VMware, Inc.
    Inventors: Daniel Hiltgen, Rene W. Schmidt
  • Patent number: 8943509
    Abstract: A method, apparatus, and computer program product for scheduling stream-based applications in a distributed computer system with configurable networks are provided. The method includes choosing, at a highest temporal level, jobs that will run, an optimal template alternative for the jobs that will run, network topology, and candidate processing nodes for processing elements of the optimal template alternative for each running job to maximize importance of work performed by the system. The method further includes making, at a medium temporal level, fractional allocations and re-allocations of the candidate processing elements to the processing nodes in the system to react to changing importance of the work. The method also includes revising, at a lowest temporal level, the fractional allocations and re-allocations on a continual basis to react to burstiness of the work, and to differences between projected and real progress of the work.
    Type: Grant
    Filed: March 21, 2008
    Date of Patent: January 27, 2015
    Assignee: International Business Machines Corporation
    Inventors: Nikhil Bansal, Kirsten W. Hildrum, James Giles, Deepak Rajan, Philippe L. Seto, Eugen Schenfeld, Rohit Wagle, Joel L. Wolf, Xiaolan J. Zhang
  • Patent number: 8943299
    Abstract: A pointer is for pointing to a next-to-read location within a stack of information. For pushing information onto the stack: a value is saved of the pointer, which points to a first location within the stack as being the next-to-read location; the pointer is updated so that it points to a second location within the stack as being the next-to-read location; and the information is written for storage at the second location. For popping the information from the stack: in response to the pointer, the information is read from the second location as the next-to-read location; and the pointer is restored to equal the saved value so that it points to the first location as being the next-to-read location.
    Type: Grant
    Filed: June 17, 2010
    Date of Patent: January 27, 2015
    Assignee: International Business Machines Corporation
    Inventors: Kattamuri Ekanadham, Brian R. Konigsburg, David S. Levitan, Jose E. Moreira, David Mui, Il Park
  • Patent number: 8938605
    Abstract: A method, information processing system, and computer program product manage instruction execution based on machine state. At least one instruction is received. The at least one instruction is decoded. A current machine state is determined in response to the decoding. The at least one instruction is organized into a set of unit of operations based on the current machine state that has been determined. The set of unit of operations is executed.
    Type: Grant
    Filed: March 5, 2010
    Date of Patent: January 20, 2015
    Assignee: International Business Machines Corporation
    Inventors: Fadi Busaba, Bruce Giamei, David Hutton, Eric Schwarz
  • Patent number: 8935515
    Abstract: A processor that can execute instructions in either scalar mode or vector mode. In scalar mode, instructions are executed once per fetch. In vector mode, instructions are executed multiple times per fetch. In vector mode, the processor recognizes scalar variables and vector variables. Scalar variables may be assigned a fixed memory location. Vector variables use different physical locations at different iterations of the same instruction. The processor includes circuitry to automatically index addresses of vector variables for each iteration of the same instruction. This circuitry partitions a register into a vector region and a scalar region. Accesses to the vector region are automatically indexed based on the number of iterations of the instruction that have been performed.
    Type: Grant
    Filed: August 20, 2009
    Date of Patent: January 13, 2015
    Assignee: STMicroelectronics, Inc.
    Inventors: Osvaldo M. Colavin, Davide Rizzo, Vineet Soni, William L. Schubert, Jr.
  • Patent number: 8924689
    Abstract: The present invention realizes an efficient superscalar instruction issue and low power consumption at an instruction set including instructions with prefixes. An instruction fetch unit is adopted which determines whether an instruction code is of a prefix code or an instruction code other than it, and outputs the result of determination and the 16-bit instruction code. Along with it, decoders each of which decodes the instruction code, based on the result of determination, and decoders each of which decodes the prefix code, are disposed separately. Further, a prefix is supplied to each decoder prior to a fixed-length instruction code like 16 bits modified with it. A fixed-length instruction code following the prefix code is supplied to each decoder of the same pipeline as the decoder for the prefix code.
    Type: Grant
    Filed: October 29, 2010
    Date of Patent: December 30, 2014
    Assignee: Renesas Electronics Corporation
    Inventors: Hiroaki Nakaya, Yuki Kondoh, Makoto Ishikawa
  • Patent number: 8924962
    Abstract: The present invention provides a method and a computer system for sharing a graphics card among multiple Operation Systems (OSs). The method includes: detecting a first GOS to be displayed, the first GOS being a primary GOS or one of at least one secondary GOS; determining the kind of the first GOS, so that different display control register bank(s) and graphics card memory resources are allocated to the first GOS depending on whether it is a primary GOS or a secondary GOS; controlling the display control register bank(s) allocated to the first GOS to connect to a display output port; obtaining display contents based on the graphics card memory resources allocated to the first GOS; and displaying the display contents based on display mode parameters in the display control register bank(s) connected to the display output port. According to the present invention, it is possible to share the graphics card among the multiple OSs without modifying the drivers of the primary GOS.
    Type: Grant
    Filed: December 24, 2008
    Date of Patent: December 30, 2014
    Assignees: Beijing Lenovo Software Ltd., Lenovo (Beijing) Limited
    Inventors: Bibo Wang, Yongfeng Liu, Chunmei Liu, Jun Chen
  • Patent number: 8909902
    Abstract: Systems, methods, and apparatuses for decomposing a sequential program into multiple threads, executing these threads, and reconstructing the sequential execution of the threads are described. A plurality of data cache units (DCUs) store locally retired instructions of speculatively executed threads. A merging level cache (MLC) merges data from the lines of the DCUs. An inter-core memory coherency module (ICMC) globally retire instructions of the speculatively executed threads in the MLC.
    Type: Grant
    Filed: November 24, 2009
    Date of Patent: December 9, 2014
    Assignee: Intel Corporation
    Inventors: Fernando Latorre, Josep M. Codina, Enric Gibert Codina, Pedro Lopez, Carlos Madriles, Alejandro Martinez Vincente, Raul Martinez, Antonio Gonzalez
  • Patent number: 8904156
    Abstract: A multithreaded microprocessor includes an instruction fetch unit including a perceptron-based conditional branch prediction unit configured to provide, for each of one or more concurrently executing threads, a direction branch prediction. The conditional branch prediction unit includes a plurality of storages each including a plurality of entries. Each entry may be configured to store one or more prediction values. Each prediction value of a given storage may correspond to at least one conditional branch instruction in a cache line. The conditional branch prediction unit may generate a separate index value for accessing each storage by generating a first index value for accessing a first storage by combining one or more portions of a received instruction fetch address, and generating each other index value for accessing the other storages by combining the first index value with a different portion of direction branch history information.
    Type: Grant
    Filed: October 14, 2009
    Date of Patent: December 2, 2014
    Assignee: Oracle America, Inc.
    Inventors: Manish K. Shah, Gregory F. Grohoski, Robert T. Golla, Jama I. Barreh
  • Patent number: 8893142
    Abstract: In a conventional multiprocessor system, an access right with respect to a shared resource could not be changed in a flexible manner. The present invention provides a multiprocessor system having a first processor element (PE-A) and a second processor element (PE-B), the first processor element (PE-A) and the second processor element (PE-B) independently executing a program, in which the first processor element (PE-A) includes: a central processing unit (CPUa) for performing an operation processing based upon the program; a shared resource (18a) which is shared between the first processor element (PE-A) and the second processor element (PE-B); and a guard unit (16a) for restricting an access request from the second processor element (PE-B) to the shared resource (18a) based upon an access protection range setting value designated by the central processing unit (CPUa).
    Type: Grant
    Filed: March 25, 2008
    Date of Patent: November 18, 2014
    Assignee: Renesas Electronics Corporation
    Inventor: Masayuki Daito
  • Patent number: 8832418
    Abstract: A microprocessor includes a branch target address cache (BTAC), each entry thereof configured to store branch prediction information for at most N branch instructions. An execution unit executes a branch instruction previously fetched in a fetch quantum. Update logic determines whether the BTAC is already storing information for N branch instructions within the fetch quantum (N is at least two), updates the BTAC for the branch instruction if the BTAC is not already storing information for N branch instructions, determines whether a type of the branch instruction has a higher replacement priority than a type of the N branch instructions if the BTAC is already storing information for N branch instructions, and updates the BTAC for the branch instruction if the type of the branch instruction has a higher replacement priority than the type of the N branch instructions already stored in the BTAC.
    Type: Grant
    Filed: October 8, 2009
    Date of Patent: September 9, 2014
    Assignee: VIA Technologies, Inc.
    Inventor: Thomas C. McDonald
  • Patent number: 8793699
    Abstract: A computer program product, apparatus and method for negating initiative for select entries from a shared, strictly FIFO initiative queue in a multi-tasking multi-processor environment. An exemplary embodiment includes a computer program product for negating initiative for select entries from a shared initiative queue in a multi-tasking multi-processor environment, the computer program product including a tangible storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method including identifying an element within the environment that has failed and recovered, not removing the element from the shared initiative queue and entering a boundary element entry into the shared initiative queue.
    Type: Grant
    Filed: March 19, 2008
    Date of Patent: July 29, 2014
    Assignee: International Business Machines Corporation
    Inventors: Richard K. Errickson, Geoffrey A. Crew, Welela Haileselaissie, Robert M. Whalen, Jr.
  • Patent number: 8782379
    Abstract: A device employing techniques to optimize Context-based Adaptive Binary Arithmetic Coding (CABAC) for the H.264 video decoding is provided. The device includes a processing circuit operative to implement a set of instructions to decode multiple bins simultaneously and renormalize an offset register and a range register after the multiple bins are decoded. The range register and offset registers may be 32 or 64 bits. The use of a larger range register allows renormalization to be skipped when enough bits are still in the range register.
    Type: Grant
    Filed: September 27, 2007
    Date of Patent: July 15, 2014
    Assignee: QUALCOMM Incorporated
    Inventors: Zhen Liu, Kai Wang, Yiliang Bao
  • Patent number: 8762687
    Abstract: An apparatus providing for a secure execution environment is presented. The apparatus includes a microprocessor and a secure non-volatile memory. The a microprocessor is configured to execute non-secure application programs and a secure application program, where the non-secure application programs are accessed from a system memory via a system bus. The microprocessor has a plurality of timers which are visible and accessible only by the secure application program when executing in a secure execution mode. The secure non-volatile memory is coupled to the microprocessor via a private bus and is configured to store the secure application program in encrypted form. Transactions over the private bus between the microprocessor and the secure non-volatile memory are isolated from the system bus, the system memory, and corresponding system bus resources within the microprocessor.
    Type: Grant
    Filed: October 31, 2008
    Date of Patent: June 24, 2014
    Assignee: Via Technologies, Inc.
    Inventors: G. Glenn Henry, Terry Parks
  • Patent number: 8762694
    Abstract: Method, apparatus, and system for a programmable event-driven yield mechanism. The mechanism may disrupt processing of a program to deliver a yield event. The event may be treated as a fault-like yield event or a trap-like event. For a fault-like yield event, the faulting instruction is canceled before retirement and processor state is not updated before the yield event is delivered. For a trap-like yield event the instruction causing the trap is retired and the yield event is delivered on an interrupt boundary. Multiple pending yield events may be handled according to priority. Other embodiments are also described and claimed.
    Type: Grant
    Filed: March 31, 2006
    Date of Patent: June 24, 2014
    Assignee: Intel Corporation
    Inventors: Xiang Zou, Hong Wang, Robert Knight, Robert Geva, Gautham Chinya, Scott Dion Rodgers, Chris Newburn, Bryant E. Bigbee, Per Hammarlund, Ittai Anati, Jim B. Crossland, John P. Shen
  • Patent number: 8701112
    Abstract: Computer-implemented methods, computer program products and systems for a scalable workload scheduling system to accommodate increasing workloads within a heterogeneous distributed computing environment. In one embodiment, a modified average consensus method is used to evenly distribute network traffic and jobs among a plurality of computers. The user establishes a virtual network comprising a logical topology of the computers. State information from each computer is propagated to the rest of the computers by the modified average consensus method, thereby enabling the embodiment to dispense with the need for a master server, by allowing the individual computers to themselves select jobs which optimally match a desired usage of their own resources to the resources required by the jobs.
    Type: Grant
    Filed: April 14, 2009
    Date of Patent: April 15, 2014
    Assignee: International Business Machines Corporation
    Inventors: Stefano Borghetti, Gianluca Della Corte, Leonida Gianfagna, Antonio Marlo Sgro'
  • Patent number: 8683180
    Abstract: A method, processor, and computer program product employing an intermediate register mapper within a register renaming mechanism. A logical register lookup determines whether a hit to a logical register associated with the dispatched instruction has occurred. In this regard, the logical register lookup searches within at least one register mapper from a group of register mappers, including an architected register mapper, a unified main mapper, and an intermediate register mapper. A single hit to the logical register is selected among the group of register mappers. If an instruction having a mapper entry in the unified main mapper has finished but has not completed, the mapping contents of the register mapper entry in the unified main mapper are moved to the intermediate register mapper, and the unified register mapper entry is released, thus increasing a number of unified main mapper entries available for reuse.
    Type: Grant
    Filed: October 13, 2009
    Date of Patent: March 25, 2014
    Assignee: International Business Machines Corporation
    Inventors: Brian D. Barrick, Michael Billeci, Lee E. Eisen
  • Patent number: 8667260
    Abstract: Mechanisms for building approximate data dependences using a moving look-back window are provided. The mechanisms track dependence information for memory accesses over iterations of execution of a portion of code. The mechanisms receive a memory access of an iteration of the portion of code, the memory access having an address for access the memory and an access type indicating at least one of a read or a write access type. An entry in a moving look-back window data structure is generated corresponding to a memory location accessed by the memory access. The entry comprises at least an identification of the address, the access type, and an iteration number corresponding to the iteration of the memory access. The moving look-back window data structure is utilized to determine dependence information for memory accesses over a plurality of iterations of the portion of code.
    Type: Grant
    Filed: March 5, 2010
    Date of Patent: March 4, 2014
    Assignee: International Business Machines Corporation
    Inventors: Alexandre E. Eichenberger, John K. P. O'Brien, Kathryn M. O'Brien, Kai-Ting A. Wang, Xiaotong Zhuang
  • Patent number: 8621184
    Abstract: A novel technique for improving throughput in a multi-core system in which data is processed according to a producer-consumer relationship by eliminating latencies caused by compulsory cache misses. The producer and consumer entities run as multiple slices of execution. Each such slice has an associated execution context that comprises of the code and data that particular slice would access. The execution contexts of the producer and consumer slices are small enough to fit in the processor caches simultaneously. When a producer entity scheduled on a first core completed production of data elements as constrained by the size of cache memories, a consumer entity is scheduled on that same core to consume the produced data elements. Meanwhile, a second slice of the producer entity is moved to another core and a second slice of a consumer entity is scheduled to consume elements produced by the second slice of the producer.
    Type: Grant
    Filed: October 31, 2008
    Date of Patent: December 31, 2013
    Assignee: NetApp, Inc.
    Inventors: Prashanth Radhakrishnan, Kiran Srinivasan
  • Patent number: 8607034
    Abstract: An apparatus including a microprocessor, a system memory, and a secure non-volatile memory. The microprocessor executes non-secure application programs and a secure application program. The secure application program is executed in a secure execution mode. The microprocessor has secure watchdog logic that monitors environmental attributes corresponding to the microprocessor and to the secure application program, and that transfers program control to one of a plurality of event handlers within the secure application program. The system memory has non-secure application programs stored therein. The secure non-volatile memory is coupled to the microprocessor via a private bus.
    Type: Grant
    Filed: October 31, 2008
    Date of Patent: December 10, 2013
    Assignee: VIA Technologies, Inc.
    Inventors: G. Glenn Henry, Terry Parks