Patents by Inventor Spiros Kalogeropulos

Spiros Kalogeropulos 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: 7234136
    Abstract: One embodiment of the present invention provides a system that generates code to perform anticipatory prefetching for data references. During operation, the system receives code to be executed on a computer system. Next, the system analyzes the code to identify data references to be prefetched. This analysis can involve: using a two-phase marking process in which blocks that are certain to execute are considered before other blocks; and analyzing complex array subscripts. Next, the system inserts prefetch instructions into the code in advance of the identified data references. This insertion can involve: dealing with non-constant or unknown stride values; moving prefetch instructions into preceding basic blocks; and issuing multiple prefetches for the same data reference.
    Type: Grant
    Filed: November 2, 2001
    Date of Patent: June 19, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Partha P Tirumalai, Spiros Kalogeropulos, Mahadevan Rajagopalan, Yonghong Song, Vikram Rao
  • Publication number: 20070022412
    Abstract: One embodiment of the present invention provides a system that generates code for software scouting the regions of a program. During operation, the system receives source code for a program. The system then compiles the source code. In the first step of the compilation process, the system identifies a first set of loops from a hierarchy of loops in the source code, wherein each loop in the first set of loops contains at least one effective prefetch candidate. Then, from the first set of loops, the system identifies a second set of loops where scout-mode prefetching is profitable. Next, for each loop in the second set of loops, the system produces executable code for a helper-thread which contains a prefetch instruction for each effective prefetch candidate. At runtime the helper-thread is executed in parallel with the main thread in advance of where the main thread is executing to prefetch data items for the main thread.
    Type: Application
    Filed: November 9, 2005
    Publication date: January 25, 2007
    Inventors: Partha Tirumalai, Yonghong Song, Spiros Kalogeropulos
  • Publication number: 20070022422
    Abstract: One embodiment of the present invention provides a system for communicating and performing synchronization operations between a main thread and a helper-thread. The system starts by executing a program in a main thread. Upon encountering a loop which has associated helper-thread code, the system commences the execution of the code by the helper-thread separately and in parallel with the main thread. While executing the code by the helper-thread, the system periodically checks the progress of the main thread and deactivates the helper-thread if the code being executed by the helper-thread is no longer performing useful work. Hence, the helper-thread is executes in advance of where the main thread is executing to prefetch data items for the main thread without unnecessarily consuming processor resources or hampering the execution of the main thread.
    Type: Application
    Filed: November 9, 2005
    Publication date: January 25, 2007
    Inventors: Partha Tirumalai, Yonghong Song, Spiros Kalogeropulos
  • Patent number: 6948162
    Abstract: A method includes scheduling instructions within a trace disregarding data dependencies from off trace basic blocks. After scheduling, errors caused by instruction movement are corrected. By disregarding data dependencies from off trace basic blocks, more parallelism is exposed resulting in more instruction motion. In this manner, efficiency is maximized.
    Type: Grant
    Filed: January 9, 2002
    Date of Patent: September 20, 2005
    Assignee: Sun Microsystems, Inc.
    Inventor: Spiros Kalogeropulos
  • Publication number: 20040093591
    Abstract: One embodiment of the present invention provides a system that generates prefetch instructions for indexed array references. Upon receiving code to be executed on a computer system, the system analyzes the code to identify candidate references to be prefetched, wherein the candidate references can include indexed array references that access a data array through an array of indices. Next, the system inserts prefetch instructions into the code in advance of the identified candidate references. If the identified candidate references include indexed array references, this insertion process involves, inserting an index prefetch instruction into the code, which prefetches a block of indices from the array of indices. It also involves inserting data prefetch instructions into the code, which prefetch data items in the data array pointed to by the block of indices.
    Type: Application
    Filed: April 10, 2003
    Publication date: May 13, 2004
    Inventors: Spiros Kalogeropulos, Partha P. Tirumalai, Mahadevan Rajagopalan, Yonghong Song, Subbarao Vikram Rao
  • Publication number: 20030145313
    Abstract: A trace scheduler schedules instructions within a trace and after register allocation. The trace scheduler computes critical path information across the trace, which is used to schedule instructions across basic block boundaries. In this manner, the efficiency of the compiler is maximized.
    Type: Application
    Filed: January 30, 2002
    Publication date: July 31, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Spiros Kalogeropulos
  • Publication number: 20030131346
    Abstract: A method includes scheduling instructions within a trace disregarding data dependencies from off trace basic blocks. After scheduling, errors caused by instruction movement are corrected. By disregarding data dependencies from off trace basic blocks, more parallelism is exposed resulting in more instruction motion. In this manner, efficiency is maximized.
    Type: Application
    Filed: January 9, 2002
    Publication date: July 10, 2003
    Applicant: Sun Microsystems, Inc.
    Inventor: Spiros Kalogeropulos
  • Publication number: 20030088864
    Abstract: One embodiment of the present invention provides a system that generates code to perform anticipatory prefetching for data references. During operation, the system receives code to be executed on a computer system. Next, the system analyzes the code to identify data references to be prefetched. This analysis can involve: using a two-phase marking process in which blocks that are certain to execute are considered before other blocks; and analyzing complex array subscripts. Next, the system inserts prefetch instructions into the code in advance of the identified data references. This insertion can involve: dealing with non-constant or unknown stride values; moving prefetch instructions into preceding basic blocks; and issuing multiple prefetches for the same data reference.
    Type: Application
    Filed: November 2, 2001
    Publication date: May 8, 2003
    Inventors: Partha P. Tirumalai, Spiros Kalogeropulos, Mahadevan Rajagopalan, Yonghong Song, Vikram Rao
  • Publication number: 20030088863
    Abstract: One embodiment of the present invention provides a system that generates code to perform anticipatory prefetching for data references. During operation, the system receives code to be executed on a computer system. Next, the system analyzes the code to identify data references to be prefetched. This analysis can involve: using a two-phase marking process in which blocks that are certain to execute are considered before other blocks; and analyzing complex array subscripts. Next, the system inserts prefetch instructions into the code in advance of the identified data references. This insertion can involve: dealing with non-constant or unknown stride values; moving prefetch instructions into preceding basic blocks; and issuing multiple prefetches for the same data reference.
    Type: Application
    Filed: November 2, 2001
    Publication date: May 8, 2003
    Inventors: Partha P. Tirumalai, Spiros Kalogeropulos, Mahadevan Rajagopalan, Yonghong Song, Vikram Rao