Patents by Inventor Gurindar S. Sohi

Gurindar S. Sohi 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).

  • Patent number: 10209997
    Abstract: A system for parallel execution of program portions on different processors permits speculative execution of the program portions before a determination is made as to whether there is a data dependency between the portion and older but unexecuted portions. Before commitment of the program portions in a sequential execution order, data dependencies are resolved through a token system that tracks read access and write access to data elements accessed by the program portions.
    Type: Grant
    Filed: June 2, 2015
    Date of Patent: February 19, 2019
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Gagan Gupta, Gurindar S. Sohi
  • Patent number: 10185569
    Abstract: Interrupt handling on a multiprocessor computer executing multiple computational operations in parallel is provided by establishing a total ordering of the multiple computational operations and defining an architectural state at the time of the interrupt as if the computational operations executed in the total ordering.
    Type: Grant
    Filed: February 13, 2013
    Date of Patent: January 22, 2019
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Gagan Gupta, Gurindar S. Sohi
  • Patent number: 10089240
    Abstract: A computer architecture provides a memory cache that is accessed not by physical addresses but by virtual addresses directly from running processes. Ambiguities that can result from multiple virtual addresses mapping to a single physical address are handled by dynamically tracking synonyms and connecting a limited number of virtual synonyms mapping to the same physical address to a single key virtual address that is used exclusively for cache access.
    Type: Grant
    Filed: September 28, 2015
    Date of Patent: October 2, 2018
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Gurindar S. Sohi, Hongil Yoon
  • Patent number: 9830157
    Abstract: A system and method of parallelizing programs employs runtime instructions to identify data accessed by program portions and to assign those program portions to particular processors based on potential overlap between the access data. Data dependence between different program portions may be identified and used to look for pending “predicate” program portions that could create data dependencies and to postpone program portions that may be dependent while permitting parallel execution of other program portions.
    Type: Grant
    Filed: August 18, 2010
    Date of Patent: November 28, 2017
    Assignee: Wisconsin ALumni Research Foundation
    Inventors: Gagan Gupta, Gurindar S. Sohi, Srinath Sridharan
  • Patent number: 9652301
    Abstract: A system and method of parallelizing programs assigns write tokens and read tokens to data objects accessed by computational operations. During run time, the write sets and read sets for computational operations are resolved and the computational operations executed only after they have obtained the necessary tokens for data objects corresponding to the resolved write and read sets. A data object may have unlimited read tokens but only a single write token and the write token may be released only if no read tokens are outstanding. Data objects provide a wait list which serves as an ordered queue for computational operations waiting for tokens.
    Type: Grant
    Filed: September 15, 2010
    Date of Patent: May 16, 2017
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Gagan Gupta, Gurindar S. Sohi, Srinath Sridharan
  • Publication number: 20160357608
    Abstract: A system for parallel execution of program portions on different processors permits speculative execution of the program portions before a determination is made as to whether there is a data dependency between the portion and older but unexecuted portions. Before commitment of the program portions in a sequential execution order, data dependencies are resolved through a token system that tracks read access and write access to data elements accessed by the program portions.
    Type: Application
    Filed: June 2, 2015
    Publication date: December 8, 2016
    Inventors: Gagan Gupta, Gurindar S. Sohi
  • Publication number: 20160188486
    Abstract: A computer architecture provides a memory cache that is accessed not by physical addresses but by virtual addresses directly from running processes. Ambiguities that can result from multiple virtual addresses mapping to a single physical address are handled by dynamically tracking synonyms and connecting a limited number of virtual synonyms mapping to the same physical address to a single key virtual address that is used exclusively for cache access.
    Type: Application
    Filed: September 28, 2015
    Publication date: June 30, 2016
    Inventors: Gurindar S. Sohi, Hongil Yoon
  • Patent number: 9223717
    Abstract: A computer cache system delays cache coherence invalidation messages related to cache lines of a common memory region to collect these messages into a combined message that can be transmitted more efficiently. This delay may be coordinated with a detection of whether the processor is executing a data-race free portion of the program so that the delay system may be used for a variety of types of programs which may have data-race and data-race free sections.
    Type: Grant
    Filed: October 8, 2012
    Date of Patent: December 29, 2015
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Gurindar S. Sohi, Hongil Yoon
  • Patent number: 8843932
    Abstract: Execution of a computer program on a multiprocessor system is monitored to detect possible excess parallelism causing resource contention and the like and, in response, to controllably limit the number of processors applied to parallelize program components.
    Type: Grant
    Filed: January 12, 2011
    Date of Patent: September 23, 2014
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Gurindar S. Sohi, Srinath Sridharan, Gagan Gupta
  • Publication number: 20140101390
    Abstract: A computer cache system delays cache coherence invalidation messages related to cache lines of a common memory region to collect these messages into a combined message that can be transmitted more efficiently. This delay may be coordinated with a detection of whether the processor is executing a data-race free portion of the program so that the delay system may be used for a variety of types of programs which may have data-race and data-race free sections.
    Type: Application
    Filed: October 8, 2012
    Publication date: April 10, 2014
    Applicant: Wiscosin Alumni Research Foundation
    Inventors: Gurindar S. Sohi, Hongil Yoon
  • Patent number: 8417919
    Abstract: A method of dynamic parallelization in a multi-processor identifies potentially independent computational operations, such as functions and methods, with a serializer that assigns a computational operation to a serialization set and a processor based on assessment of the data that the computational operation will be accessing upon execution.
    Type: Grant
    Filed: August 18, 2009
    Date of Patent: April 9, 2013
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Matthew Allen, Gurindar S. Sohi
  • Publication number: 20120180062
    Abstract: Execution of a computer program on a multiprocessor system is monitored to detect possible excess parallelism causing resource contention and the like and, in response, to controllably limit the number of processors applied to parallelize program components.
    Type: Application
    Filed: January 12, 2011
    Publication date: July 12, 2012
    Inventors: Gurindar S. Sohi, Srinath Sridharan, Gagan Gupta
  • Publication number: 20120066690
    Abstract: A system and method of parallelizing programs assigns write tokens and read tokens to data objects accessed by computational operations. During run time, the write sets and read sets for computational operations are resolved and the computational operations executed only after they have obtained the necessary tokens for data objects corresponding to the resolved write and read sets. A data object may have unlimited read tokens but only a single write token and the write token may be released only if no read tokens are outstanding. Data objects provide a wait list which serves as an ordered queue for computational operations waiting for tokens.
    Type: Application
    Filed: September 15, 2010
    Publication date: March 15, 2012
    Inventors: Gagan Gupta, Gurindar S. Sohi, Srinath Sridharan
  • Patent number: 7962774
    Abstract: An over-provisioned multicore processor employs more cores than can simultaneously run within the power envelope of the processor, enabling advanced processor control techniques for more efficient workload execution, despite significantly decreasing the duty cycle of the active cores so that on average a full core or more may not be operating.
    Type: Grant
    Filed: October 4, 2007
    Date of Patent: June 14, 2011
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Koushik Chakraborty, Philip M. Wells, Gurindar S. Sohi
  • Publication number: 20100070740
    Abstract: A method of dynamic parallelization in a multi-processor identifies potentially independent computational operations, such as functions and methods, with a serializer that assigns a computational operation to a serialization set and a processor based on assessment of the data that the computational operation will be accessing upon execution.
    Type: Application
    Filed: August 18, 2009
    Publication date: March 18, 2010
    Inventors: Matthew D. Allen, Gurindar S. Sohi
  • Publication number: 20090094438
    Abstract: An over-provisioned multicore processor employs more cores than can simultaneously run within the power envelope of the processor, enabling advanced processor control techniques for more efficient workload execution, despite significantly decreasing the duty cycle of the active cores so that on average a full core or more may not be operating.
    Type: Application
    Filed: October 4, 2007
    Publication date: April 9, 2009
    Inventors: Koushik Chakraborty, Philip M. Wells, Gurindar S. Sohi
  • Patent number: 6944754
    Abstract: Parallelization of a program is performed by creating a distilled version of the program having higher execution speed but with unverified execution. The distilled program is executed rapidly to create state snapshots of the program that may be forwarded to secondary processors for execution of the actual program in parallel with other secondary processors similarly allocated. Each state snapshot is verified as the task is executed on a secondary processor by the preceding processor. The degree of parallelization is limited only by the speed up of the distilled program.
    Type: Grant
    Filed: October 2, 2002
    Date of Patent: September 13, 2005
    Assignee: Wisconsin Alumni Research Foundation
    Inventors: Craig Buchanan Zilles, Gurindar S. Sohi
  • Publication number: 20040068727
    Abstract: Parallelization of a program is performed by creating a distilled version of the program having higher execution speed but with unverified execution. The distilled program is executed rapidly to create state snapshots of the program that may be forwarded to secondary processors for execution of the actual program in parallel with other secondary processors similarly allocated. Each state snapshot is verified as the task is executed on a secondary processor by the preceding processor. The degree of parallelization is limited only by the speed up of the distilled program.
    Type: Application
    Filed: October 2, 2002
    Publication date: April 8, 2004
    Inventors: Craig Buchanan Zilles, Gurindar S. Sohi
  • Patent number: 6658554
    Abstract: A data dependence prediction technique is used to establish linkage between two instructions using data so that accessing the data from memory may be bypassed. Instead, the data retrieved in the first data using instruction is temporarily stored in a local register to be used by the second data using instruction. Parallel processing techniques of squashing are used in the event that the prediction is erroneous.
    Type: Grant
    Filed: October 14, 1999
    Date of Patent: December 2, 2003
    Inventors: Andreas I. Moshovos, Gurindar S. Sohi
  • Patent number: 5860151
    Abstract: The data cache features an improved mechanism for accessing data from the data memory array of a data cache, by generating a predicted address and using it to access the data cache array in parallel with the effective address computation. The logic circuitry consists of elements which are capable of performing a carry-free addition (logical or arithmetic) of a predetermined number of base register address bits with the same number of offset register address bits. Methods to generate and verify the predicted index are also provided.
    Type: Grant
    Filed: December 7, 1995
    Date of Patent: January 12, 1999
    Assignee: Wisconsin Alumni REsearch Foundation
    Inventors: Todd M. Austin, Dionisios N. Pnevmatikatos, Gurindar S. Sohi