Patents by Inventor John Shen

John 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: 20060150183
    Abstract: Method, apparatus and system embodiments to provide user-level creation, control and synchronization of OS-invisible “shreds” of execution via an abstraction layer for a system that includes one or more sequencers that are sequestered from operating system control. For at least one embodiment, the abstraction layer provides sequestration logic, proxy execution logic, transition detection and shred suspension logic, and sequencer arithmetic logic. Other embodiments are also described and claimed.
    Type: Application
    Filed: December 30, 2004
    Publication date: July 6, 2006
    Inventors: Gautham Chinya, Hong Wang, Xiang Zou, James Held, Prashant Sethi, Trung Diep, Anil Aggarwal, Baiju Patel, Shiv Kaushik, Bryant Bigbee, John Shen, Richard Hankins, John Reid
  • Patent number: 7069545
    Abstract: Software reuse instances are found from an execution trace through a process of quantization, discovery, and synthesis. Quantization includes mapping n-dimensional vectors that correspond to instructions, live-in states, and live-out states to one dimensional symbols, and arranging the symbols into a text in program execution order. Discovery includes the identification of recurrent symbols and recurrent phrases of symbols within the text. Recurrent symbols and phrases correspond to reuse instances. Compression algorithms are applied to identify the recurrent symbols and phrases. Synthesis can include correlating the reuse instances with the binary program to identify the reuse regions within the software program. Synthesis can also include generating non-essential code and corresponding triggers for a conjugate processor.
    Type: Grant
    Filed: December 29, 2000
    Date of Patent: June 27, 2006
    Assignee: Intel Corporation
    Inventors: Hong Wang, Perry Wang, Ralph Kling, Neil A. Chazin, John Shen
  • Publication number: 20060117141
    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: January 9, 2006
    Publication date: June 1, 2006
    Inventors: Ryan Rakvic, John Shen, Deepak Limaye
  • Patent number: 7051193
    Abstract: Instruction-level parallelism in software pipelined loops is exploited by predicting future register rotations. A processor includes an architected current frame marker register and at least one unarchitected frame marker register. Register rotation prediction is achieved by setting the register rotation of future iterations of a software loop to be a function of the unarchitected frame marker registers. True data dependencies remain, but the dependencies caused solely by register renaming are removed. Dynamic predication is used to predicate instructions from future iterations, allowing them to be squashed if dependencies are later found. The register renaming that results from the prediction can be included in instructions in a buffer, or a renaming stage in an execution pipeline can perform the renaming.
    Type: Grant
    Filed: March 28, 2001
    Date of Patent: May 23, 2006
    Assignee: Intel Corporation
    Inventors: Hong Wang, Christopher J. Hughes, Ralph Kling, Yong-Fong Lee, Daniel M. Lavery, John Shen, Jamison Collins
  • Publication number: 20060095807
    Abstract: A method and apparatus for changing the configuration of a multi-core processor is disclosed. In one embodiment, a throttle module (or throttle logic) may determine the amount of parallelism present in the currently-executing program, and change the execution of the threads of that program on the various cores. If the amount of parallelism is high, then the processor may be configured to run a larger amount of threads on cores configured to consume less power. If the amount of parallelism is low, then the processor may be configured to run a smaller amount of threads on cores configured for greater scalar performance.
    Type: Application
    Filed: September 28, 2004
    Publication date: May 4, 2006
    Inventors: Edward Grochowski, John Shen, Hong Wang, Doron Orenstein, Gad Sheaffer, Ronny Ronen, Murali Annavaram
  • Publication number: 20060070047
    Abstract: Embodiments of the present invention provide a method, apparatus and system which may include splitting a dependency chain into a set of reduced-width dependency chains; mapping one or more dependency chains onto one or more clustered dependency chain processors, wherein an issue-width of one or more of the clusters is adapted to accommodate a size of the dependency chains; and/or processing in parallel a plurality of dependency chains of a trace. Other embodiments are described and claimed.
    Type: Application
    Filed: September 28, 2004
    Publication date: March 30, 2006
    Inventors: Satish Narayanasamy, Hong Wang, John Shen, Roni Rosner, Yoav Almog, Naftali Schwartz, Gerolf Hoflehner, Daniel LaVery, Wei Li, Xinmin Tian, Milind Girkar, Perry Wang
  • Publication number: 20060027272
    Abstract: This invention relates to a valve assembly for metal hydride hydrogen storage (MHHS) or chemical hydride hydrogen storage (CHHS) devices. The valve assembly comprises a body with an inlet connector for connecting to the MHHS or CHHS device, an outlet connector for connecting to an external device, a cavity in the body that is in gas communication with the inlet and outlet connectors, and a shut-off valve in the cavity that can be moved between an opened position that permits gas flow between the inlet and outlet connectors, and a closed position that denies said gas flow. The outlet connector has a first valve therein that is biased to remain closed when external pressure thereon is less than or equal to ambient pressure, thereby impeding at least atmospheric gas backflow into the cavity.
    Type: Application
    Filed: August 4, 2004
    Publication date: February 9, 2006
    Inventors: Jeremy Tomlinson, John Shen, Zuomin Dong
  • Patent number: 6972464
    Abstract: A system of interconnecting regions on an integrated semiconductor device or discrete components. As first connectivity layer has first and second runners to interconnect a plurality of first and second regions. A second connectivity layer has third runners to interconnect the first runners and fourth runners to interconnect the second runners. A third connectivity layer has first pads connected to the third runners and second pads connected to the fourth runners. Solder bumps are used on the first and second pads to connect the pads to other circuits.
    Type: Grant
    Filed: June 19, 2003
    Date of Patent: December 6, 2005
    Assignee: Great Wall Semiconductor Corporation
    Inventor: Zheng John Shen
  • Patent number: 6954848
    Abstract: After an instruction loads data into a register at a first time, the register is monitored to see if it is read in a next clock cycle. When the data is not read in the next clock cycle, the instruction is classified as a slowable instruction. An instruction address associated with the instruction is used to update a history table. The history table stores information to indicate if an instruction is a slowable instruction or a non-slowable instruction. When the instruction address of the instruction is encountered at a second time, the history table is used to determine if the instruction is slowable or non-slowable.
    Type: Grant
    Filed: January 2, 2002
    Date of Patent: October 11, 2005
    Assignee: Intel Corporation
    Inventors: Ryan Rakvic, Christopher Wilkerson, Bryan Black, Edward Grochowski, John Shen, Edward Brekelbaum
  • Publication number: 20050223199
    Abstract: A method and system to provide user-level multithreading are disclosed. The method according to the present techniques comprises receiving programming instructions to execute one or more shared resource threads (shreds) via an instruction set architecture (ISA). One or more instruction pointers are configured via the ISA; and the one or more shreds are executed simultaneously with a microprocessor, wherein the microprocessor includes multiple instruction sequencers.
    Type: Application
    Filed: March 31, 2004
    Publication date: October 6, 2005
    Inventors: Edward Grochowski, Hong Wang, John Shen, Perry Wang, Jamison Collins, James Held, Partha Kundu, Raya Leviathan, Tin-Fook Ngai
  • Publication number: 20050210197
    Abstract: According to one embodiment a system is disclosed. The system includes a central processing unit (CPU), a first cache memory coupled to the CPU to store only data for vital loads that are to be immediately processed at the CPU, a second cache memory coupled to the CPU to store data for semi-vital loads to be processed at the CPU, and a third cache memory coupled to the CPU, the first cache memory and the second cache memory to store non-vital loads to be processed at the CPU.
    Type: Application
    Filed: March 18, 2004
    Publication date: September 22, 2005
    Inventors: Ryan Rakvic, Youfeng Wu, Bryan Black, John Shen
  • Patent number: 6938126
    Abstract: A method, apparatus, and system that compares a current fetch request having a first start address and length associated with the current fetch request to a second start address of the next fetch request, determines whether the content already loaded in a buffer will be used to at least partially fulfill the next fetch request based upon the comparison, and inhibits access to an instruction cache based upon the comparison.
    Type: Grant
    Filed: April 12, 2002
    Date of Patent: August 30, 2005
    Assignee: Intel Corporation
    Inventors: Alejandro Ramirez, Edward Grochowski, Hong Wang, John Shen
  • Publication number: 20050186462
    Abstract: A proton exchange membrane (PEM) fuel cell end plate assembly provides an axial direction electric lead on an end plate of the assembly, and minimizes the contact resistance between an end fluid separator plate of a fuel cell stack and a current collector of the assembly. The current collector comprises an electrically conductive flat plate and a solid member connected together. The member goes through an opening on the end plate and provides an axial direction electric lead from the fuel cell stack. Means are provided to firmly contact the current collector and the fluid separator plate to maintain good contact across the entire area between the two components. The means of firmly contacting include moulding or bonding the separator plate and current collector together, or applying pressure to the separator plate and current collector such that firm contact is maintained between the two components.
    Type: Application
    Filed: January 11, 2005
    Publication date: August 25, 2005
    Inventors: Raymond Belanger, John Shen, Zuomin Dong, Jeremy Tomlinson
  • Publication number: 20050166039
    Abstract: Method, apparatus, and program means for a programmable event driven yield mechanism that may activate other threads. In one embodiment, an apparatus includes execution resources to execute a plurality of instructions and a monitor to detect a condition indicating a low level of progress. The monitor can disrupt processing of a program by transferring to a handler in response to detecting the condition indicating a low level of progress. In another embodiment, thread switch logic may be coupled to a plurality of event monitors which monitor events within the multithreading execution logic. The thread switch logic switches threads based at least partially on a programmable condition of one or more of the performance monitors.
    Type: Application
    Filed: November 5, 2004
    Publication date: July 28, 2005
    Inventors: Hong Wang, Per Hammarlund, Xiang Zou, John Shen, Xinmin Tian, Milind Girkar, Perry Wang, Piyush Desai
  • Publication number: 20050149697
    Abstract: Method, apparatus, and program means for a programmable event driven yield mechanism that may activate other threads. In one embodiment, an apparatus includes execution resources to execute a plurality of instructions and an event detector to detect a long latency event associated with a synchronization object. The event detector can cause a first thread switch in response to the long latency event associated with the synchronization object. The apparatus may also include a spin detector to detect that the synchronization object is a contended synchronization object. The spin detector can cause a second thread switch in response to the detection of the contended synchronization object to enable a spin detect response.
    Type: Application
    Filed: March 2, 2005
    Publication date: July 7, 2005
    Inventors: Natalie Enright, Jamison Collins, Perry Wang, Hong Wang, Xinmin Tran, John Shen, Gad Sheaffer, Per Hammarlund
  • Publication number: 20050149521
    Abstract: In one embodiment, the invention provides a method comprising determining metadata encoded in instructions of a stored program; and executing the stored program based on the metadata.
    Type: Application
    Filed: December 24, 2003
    Publication date: July 7, 2005
    Inventors: Hong Wang, John Shen, Ali-Reza Adl-Tabatabai, Anwar Ghuloum
  • Publication number: 20050125802
    Abstract: A virtual multithreading hardware mechanism provides multi-threading on a single-threaded processor. Thread switches are triggered by user-defined triggers. Synchronous triggers may be defined in the form of special trigger instructions. Asynchronous triggers may be defined via special marking instructions that identify an asynchronous trigger condition. The asynchronous trigger condition may be based on a plurality of atomic processor events. Minimal context information, such as only an instruction pointer address, is maintained by the hardware upon a thread switch. In contrast to traditional simultaneous multithreading schemes, the virtual multithreading hardware provides thread switches that are transparent to an operating system and that may be performed without operating system intervention.
    Type: Application
    Filed: December 5, 2003
    Publication date: June 9, 2005
    Inventors: Perry Wang, Hong Wang, John Shen, Ashok Seshadri, Anthony Mah, William Greene, Ravi Chandran, Piyush Desai, Steve Liao
  • Publication number: 20050098101
    Abstract: An apparatus is provided for manufacturing one or more fuel cell membrane electrode assembly (MEA) components. The apparatus has a table for supporting one or more MEA components; a motorized arm assembly movable relative to the table; an ultrasonic sprayer assembly connected to the arm assembly and in fluid communication with at least one ink reservoir containing catalyst or electrolyte ink solution; and a controller communicative with the arm and sprayer assemblies and programmable to move the arm assembly along a programmed tool path and spray ink solution from the sprayer assembly onto a substrate supported by the table.
    Type: Application
    Filed: November 4, 2004
    Publication date: May 12, 2005
    Applicant: Palcan Power Systems Inc.
    Inventors: John Shen, Zuomin Dong, Yu Liu
  • Publication number: 20050086652
    Abstract: Methods and apparatus for reducing memory latency in a software application are disclosed. A disclosed system uses one or more helper threads to prefetch variables for a main thread to reduce performance bottlenecks due to memory latency and/or a cache miss. A performance analysis tool is used to profile the software application's resource usage and identifies areas in the software application experiencing performance bottlenecks. Compiler-runtime instructions are generated into the software application to create and manage the helper thread. The helper thread prefetches data in the identified areas of the software application experiencing performance bottlenecks. A counting mechanism is inserted into the helper thread and a counting mechanism is inserted into the main thread to coordinate the execution of the helper thread with the main thread and to help ensure the prefetched data is not removed from the cache before the main thread is able to take advantage of the prefetched data.
    Type: Application
    Filed: October 2, 2003
    Publication date: April 21, 2005
    Inventors: Xinmin Tian, Shih-Wei Liao, Hong Wang, Milind Girkar, John Shen, Perry Wang, Grant Haab, Gerolf Hoflehner, Daniel Lavery, Hideki Saito, Sanjiv Shah, Dongkeun Kim
  • Publication number: 20050081207
    Abstract: Methods and apparatuses for thread management for multi-threading are described herein. In one embodiment, exemplary process includes selecting, during a compilation of code having one or more threads executable in a data processing system, a current thread having a most bottom order, determining resources allocated to one or more child threads spawned from the current thread, and allocating resources for the current thread in consideration of the resources allocated to the current thread's one or more child threads to avoid resource conflicts between the current thread and its one or more child threads. Other methods and apparatuses are also described.
    Type: Application
    Filed: February 13, 2004
    Publication date: April 14, 2005
    Inventors: Gerolf Hoflehner, Shih-wei Liao, Xinmin Tian, Hong Wang, Daniel Lavery, Perry Wang, Dongkeun Kim, Milind Girkar, John Shen