Patents by Inventor Scott A. McFarling

Scott A. McFarling 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: 7571427
    Abstract: Systems and methods are discussed that allow profile information to be reused by various versions of a program. One illustrative aspect includes a method for comparing versions of a program in binary format. The method includes finding equivalent contents in portions of two versions of the program, finding equivalent structure in the portions of the two versions, and forming a match when a portion of one of the two versions is an equivalence of a portion of the other of the two versions.
    Type: Grant
    Filed: June 24, 2004
    Date of Patent: August 4, 2009
    Assignee: Microsoft Corporation
    Inventors: Zheng Wang, Scott A. McFarling, Ken B. Pierce, Ramarathnam Venkatesan
  • Patent number: 7350025
    Abstract: The present invention is directed to a system and method for improved collection of application profile data for performance optimization. The invention provides a mechanism for storing usage bits within the hardware cache of a computing device. These usage bits provide profile data by tracking the memory usage data. In one embodiment, the present invention also provides usage bits for each level of a multi-stage hardware cache to provide multi-stage usage tracking.
    Type: Grant
    Filed: February 2, 2004
    Date of Patent: March 25, 2008
    Assignee: Microsoft Corporation
    Inventor: Scott McFarling
  • Publication number: 20070260862
    Abstract: In one embodiment, the present invention includes an apparatus having a prediction unit to predict a direction to be taken at a branch and a memory coupled to the prediction unit to store prediction data to be accessed by the prediction unit. In this way, great amounts of prediction data may be stored in the memory while keeping the prediction unit of relatively small size. Other embodiments are described and claimed.
    Type: Application
    Filed: May 3, 2006
    Publication date: November 8, 2007
    Inventor: Scott McFarling
  • Publication number: 20060149892
    Abstract: In one aspect, in response to each of plural page faults, a copy of a requested virtual memory page is written to a sorted set of pages in the read order of the sorted pages. A copy of a modified or new data page also can be written to the sorted set. Sorting can be limited to certain kinds of pages (e.g., data pages). Temporary data pages can be deleted from a sorted set to improve efficiency. If a previously sorted page is requested, writing the page back to the sorted set can be omitted. A sorted set of pages also can be sorted based on retirement order. In another aspect, copies of pages that are accessed or not accessed in memory within certain time windows are written in a sorted order based on phase groups.
    Type: Application
    Filed: December 30, 2004
    Publication date: July 6, 2006
    Applicant: Microsoft Corporation
    Inventor: Scott McFarling
  • Patent number: 6954747
    Abstract: Systems and methods are discussed that allow profile information to be reused by various versions of a program. One illustrative aspect includes a method for comparing versions of a program in binary format. The method includes finding equivalent contents in portions of two versions of the program, finding equivalent structure in the portions of the two versions, and forming a match when a portion of one of the two versions is an equivalence of a portion of the other of the two versions.
    Type: Grant
    Filed: November 14, 2000
    Date of Patent: October 11, 2005
    Assignee: Microsoft Corporation
    Inventors: Zheng Wang, Scott A. McFarling, Ken B. Pierce, Ramarathnam Venkatesan
  • Publication number: 20050172079
    Abstract: The present invention is directed to a system and method for improved collection of application profile data for performance optimization. The invention provides a mechanism for storing usage bits within the hardware cache of a computing device. These usage bits provide profile data by tracking the memory usage data. In one embodiment, the present invention also provides usage bits for each level of a multi-stage hardware cache to provide multi-stage usage tracking.
    Type: Application
    Filed: February 2, 2004
    Publication date: August 4, 2005
    Applicant: Microsoft Corporation
    Inventor: Scott McFarling
  • Publication number: 20040230957
    Abstract: Systems and methods are discussed that allow profile information to be reused by various versions of a program. One illustrative aspect includes a method for comparing versions of a program in binary format. The method includes finding equivalent contents in portions of two versions of the program, finding equivalent structure in the portions of the two versions, and forming a match when a portion of one of the two versions is an equivalence of a portion of the other of the two versions.
    Type: Application
    Filed: June 24, 2004
    Publication date: November 18, 2004
    Applicant: Microsoft Corporation
    Inventors: Zheng Wang, Scott A. McFarling, Ken B. Pierce, Ramarathnam Venkatesan
  • Publication number: 20040210885
    Abstract: Systems and methods are discussed that allow profile information to be reused by various versions of a program. One illustrative aspect includes a method for comparing versions of a program in binary format. The method includes finding equivalent contents in portions of two versions of the program, finding equivalent structure in the portions of the two versions, and forming a match when a portion of one of the two versions is an equivalence of a portion of the other of the two versions.
    Type: Application
    Filed: May 10, 2004
    Publication date: October 21, 2004
    Applicant: Microsoft Corporation
    Inventors: Zheng Wang, Scott A. McFarling, Ken B. Pierce, Ramarathnam Venkatesan
  • Publication number: 20040117760
    Abstract: The present invention provides a method for optimizing software by using scenario data along with user data collected from real use of the software by a number of real users. The instrumented version of software is distributed to a number of real users such that user data can be collected that reflects a more complete coverage of the program than traditional scenario data. Due to the time necessary to collect user data from real users, the user data from a previous build of the program can be propagated so that it will accurately predict the behavior of the current build of a program. Additionally, a method of limiting the amount of user data collected from the real users is provided such that the amount of user data can be limited without decreasing either the amount of coverage of the user data or its accuracy.
    Type: Application
    Filed: December 11, 2002
    Publication date: June 17, 2004
    Applicant: Microsoft Corporation
    Inventor: Scott McFarling
  • Patent number: 6374349
    Abstract: System for accurately predicting the outcome of conditional branch instructions subject to execution in a pipelined processor digital computer. The system comprises a series of predictor stages utilizing different prediction algorithms. The stages are linked to successively refine branch predictions only where prediction accuracy from a previous stage is likely to be improved by a subsequent stage. Improvements to each stage and techniques for stage linkage are described.
    Type: Grant
    Filed: March 19, 1998
    Date of Patent: April 16, 2002
    Inventor: Scott McFarling
  • Publication number: 20010056531
    Abstract: System for accurately predicting the outcome of conditional branch instructions subject to execution in a pipelined processor digital computer. The system comprises a series of predictor stages utilizing different prediction algorithms. The stages are linked to successively refine branch predictions only where prediction accuracy from a previous stage is likely to be improved by a subsequent stage. Improvements to each stage and techniques for stage linkage are described.
    Type: Application
    Filed: March 19, 1998
    Publication date: December 27, 2001
    Inventor: SCOTT MCFARLING
  • Patent number: 5758142
    Abstract: A predictor which chooses between two or more predictors is described. The predictor includes a first component predictor which operates according to a first algorithm to produce a prediction of an action and a second component predictor which operates according to a second algorithm to produce a prediction of said action. The predictor also includes means, coupled to each of said first and second predictors, for choosing between predictions provided from said predictors to provide a prediction of the action from the predictor. The predictor can be used to predict outcomes of branches, cache hits, prefetched instruction sequences, and so forth.
    Type: Grant
    Filed: May 31, 1994
    Date of Patent: May 26, 1998
    Assignee: Digital Equipment Corporation
    Inventors: Scott McFarling, Simon C. Steely, Jr., Joel Emer, Edward McLellan