Patents by Inventor John P. Shen

John P. Shen has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20040268326
    Abstract: In one embodiment, a method is provided. The method comprises analyzing a first code, and generating a second code based on the first code, the second code including a microarchitecture implementation-specific alternative representation of at least some portions of the first code.
    Type: Application
    Filed: June 26, 2003
    Publication date: December 30, 2004
    Inventors: Hong Wang, John P. Shen
  • Publication number: 20040243767
    Abstract: A method and apparatus for prefetching based upon type identifier tags in an object-oriented programming environment is disclosed. In one embodiment, a register tag including a type identifier and a word count in a cache line may be used to populate a prefetch prediction table. The table may be used to determine correlation between fetches initiated by pointers, and may be used to prefetch to the address pointed to by the value at the word count after a fetch to the address pointed to by the type identifier.
    Type: Application
    Filed: June 2, 2003
    Publication date: December 2, 2004
    Inventors: Michal J. Cierniak, John P. Shen
  • Publication number: 20040154010
    Abstract: A method for generating instructions to facilitate control-quasi-independent-point multithreading is provided. A spawn point and control-quasi-independent-point are determined. An instruction stream is generated to partition a program so that portions of the program are parallelized by speculative threads. A method of performing control-quasi-independent-point guided speculative multithreading includes spawning a speculative thread when the spawn point is encountered. An embodiment of the method further includes performing speculative precomputation to determine a live-in value for the speculative thread.
    Type: Application
    Filed: January 31, 2003
    Publication date: August 5, 2004
    Inventors: Pedro Marcuello, Antonio Gonzalez, Hong Wang, John P. Shen, Per Hammarlund, Gerolf F. Hoflehner, Perry H. Wang, Steve Shih-wei Liao
  • Publication number: 20040154011
    Abstract: The latencies associated with retrieving instruction information for a main thread are decreased through the use of a simultaneous helper thread. The helper thread is a speculative prefetch thread to perform instruction prefetch and/or trace pre-build for the main thread.
    Type: Application
    Filed: April 24, 2003
    Publication date: August 5, 2004
    Inventors: Hong Wang, Tor M. Aamodt, Pedro Marcuello, Jared W. Stark, John P. Shen, Antonio Gonzalez, Per Hammarlund, Gerolf F. Hoflehner, Perry H. Wang, Steve Shih-wei Liao
  • Publication number: 20040128489
    Abstract: In one embodiment a thread management method identifies in a main program a set of instructions that can be dynamically activated as speculative precomputation threads. A wait/sleep operation is performed on the speculative precomputation threads between thread creation and activation, and progress of non-speculative threads is gauged through monitoring a set of global variables, allowing the speculative precomputation threads to determine its relative progress with respect to non-speculative threads.
    Type: Application
    Filed: December 31, 2002
    Publication date: July 1, 2004
    Inventors: Hong Wang, Perry H. Wang, Ross David Weldon, Scott M. Ettinger, Hideki Saito, Milind B. Girkar, Steve Shih-Wei Liao, Mohammad R. Haghighat, Xinmin Tian, John P. Shen, Oren Gershon
  • Publication number: 20040117606
    Abstract: The invention provides a method comprising monitoring an indicator indicating a usage of data speculatively loaded by a processor as a result of executing a speculative instruction; and selectively executing said speculative instruction when it is next encountered as an instruction pointer based on said usage. According to another embodiment, the invention provides a processor comprising a monitoring mechanism to monitor an indicator indicating a usage of data speculative loaded by said processor as a result of executing a speculative instruction; and a speculation control mechanism to selectively execute said speculative instruction when it is next encountered at an instruction pointer based on said usage.
    Type: Application
    Filed: December 17, 2002
    Publication date: June 17, 2004
    Inventors: Hong Wang, Rakesh Ghiya, John P. Shen, Ed Grochowski, Jim Fung, David Sehr, Kevin Rudd
  • Publication number: 20040054990
    Abstract: The latencies associated with cache misses or other long-latency instructions in a main thread are decreased through the use of a simultaneous helper thread. The helper thread is a speculative prefetch thread to perform a memory prefetch for the main thread. The instructions for the helper thread are dynamically incorporated into the main thread binary during post-pass operation of a compiler.
    Type: Application
    Filed: September 17, 2002
    Publication date: March 18, 2004
    Inventors: Steve Shih-wei Liao, Perry H. Wang, Hong Wang, Gerolf F. Hoflehner, Daniel M. Lavery, John P. Shen
  • Patent number: 6668306
    Abstract: A load instruction is classified as vital or non-vital. One of a number of caches with different latencies is selected, based on a vitality of the load instruction. Data are then loaded through the selected cache into a register in a microprocessor.
    Type: Grant
    Filed: June 12, 2001
    Date of Patent: December 23, 2003
    Assignee: Intel Corporation
    Inventors: Ryan N. Rakvic, John P. Shen, Bohuslav Rychlik, Christopher B. Wilkerson, Jared Stark, Hong Wang
  • Publication number: 20030131345
    Abstract: A method and apparatus for predicting instruction results in a program using the compiler are described. In one embodiment, the method includes creating a data flow graph associated with the program, identifying a target instruction that is to be executed after a producer instruction, and determining that the outcome of the target instruction is dependent on the outcome of the producer instruction using the data flow graph. The outcome of the producer instruction represents a key into a software structure that includes a set of keys and a corresponding set of predicted outcomes of the target instruction. The method further includes inserting an additional instruction that will retrieve a predicted outcome of the target instruction from the software structure based on the outcome of the producer instruction. The additional instruction will be executed after the producer instruction and before the target instruction.
    Type: Application
    Filed: January 9, 2002
    Publication date: July 10, 2003
    Inventors: Chris Wilkerson, Ryan N. Rakvic, John P. Shen
  • Publication number: 20030126408
    Abstract: An apparatus and method for a processor microarchitecture that quickly and efficiently takes large steps through program segments without fetching all intervening instructions. The microarchitecture processes descriptors of trace sequences in program order so as to locate and dispatch descriptors of dependence chains that are used to fetch and execute the instructions of the dependence chain in data flow order.
    Type: Application
    Filed: January 3, 2002
    Publication date: July 3, 2003
    Inventors: Sriram Vajapeyam, Bohuslav Rychlik, John P. Shen
  • Publication number: 20030065906
    Abstract: A system and method of storing instructions is disclosed. First an instruction is received. Then if the instruction will be used in a next instruction cycle, the instruction is loaded in a next instruction cycle cache memory.
    Type: Application
    Filed: September 28, 2001
    Publication date: April 3, 2003
    Inventors: Ryan N. Rakvic, Hong Wang, John P. Shen
  • Publication number: 20020188804
    Abstract: A load instruction is classified as vital or non-vital. One of a number of caches with different latencies is selected, based on a vitality of the load instruction. Data are then loaded through the selected cache into a register in a microprocessor.
    Type: Application
    Filed: June 12, 2001
    Publication date: December 12, 2002
    Inventors: Ryan N. Rakvic, John P. Shen, Bohuslav Rychlik, Christopher B. Wilkerson, Jared Stark, Hong Wang
  • Publication number: 20020188806
    Abstract: Parallel cachelets are provided for a level of cache in a microprocessor. The cachelets may be independently addressable. The level of cache may accept multiple load requests in a single cycle and apply each to a respective cachelet. Depending upon the content stored in each cachelet, the cachelet may generate a hit/miss response to the respective load request. Load requests that hit their cachelets may be satisfied therefrom. Load requests that miss their cachelets may be referred to another level of cache.
    Type: Application
    Filed: June 27, 2001
    Publication date: December 12, 2002
    Inventors: Ryan N. Rakvic, John P. Shen
  • Publication number: 20020144083
    Abstract: Speculative pre-computation and multithreading (SP), allows a processor to use spare hardware contexts to spawn speculative threads to very effectively pre-fetch data well in advance of the main thread. The burden of spawning threads may fall on the main thread via basic triggers. The speculative threads may also spawn other speculative threads via chaining triggers.
    Type: Application
    Filed: March 30, 2001
    Publication date: October 3, 2002
    Inventors: Hong Wang, Jamison Collins, John P. Shen, Bryan Black, Perry H. Wang, Edward T. Grochowski, Ralph M. Kling
  • Patent number: 4602210
    Abstract: A testable integrated circuit contains additional circuitry which defines--when operable in a test mode--a plurality of scan paths in each of which are connected in series a plurality of bistable elements (specifically, special scan path flip-flops) isolated from the integrated circuit combinational circuits. The input and output ends of these scan paths are connected by multi-level demultiplexer and multiplexer arrangements with the input and output pins, respectively, of the integrated circuit. The last level demultiplexer and the last level multiplexer include first groups of connections with the input and output ends of the scan paths, respectively, and second groups of connections with the input and output ends of the mission logic. The demultiplexers, the multiplexers and the scan path flip-flops are operable between mission and test modes upon the application of a mode control signal thereto.
    Type: Grant
    Filed: December 28, 1984
    Date of Patent: July 22, 1986
    Assignee: General Electric Company
    Inventors: Patrick P. Fasang, John P. Shen