Patents by Inventor James D. Dundas

James D. Dundas 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: 9489203
    Abstract: The present application describes a method and apparatus for prefetching instructions based on predicted branch target addresses. Some embodiments of the method include providing a second cache line to a second cache when a target address for a branch instruction in a first cache line of a first cache is included in the second cache line of the first cache and when the second cache line is not resident in the second cache.
    Type: Grant
    Filed: December 11, 2012
    Date of Patent: November 8, 2016
    Assignee: Advanced Micro Devices, Inc.
    Inventor: James D. Dundas
  • Publication number: 20140244932
    Abstract: The present invention provides a method and apparatus for caching pre-decode information. Some embodiments of the apparatus include a first pre-decode array configured to store pre-decode information for an instruction cache line that is resident in a first cache in response to the instruction cache line being evicted from one or more second cache(s). Some embodiments of the apparatus also include a second array configured to store a plurality of bits associated with the first cache. Subsets of the bits are configured to store pointers to the pre-decode information associated with the instruction cache line.
    Type: Application
    Filed: February 27, 2013
    Publication date: August 28, 2014
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: Akarsh D. Hebbar, James D. Dundas, Robert B. Cohen
  • Publication number: 20140164748
    Abstract: The present application describes a method and apparatus for prefetching instructions based on predicted branch target addresses. Some embodiments of the method include providing a second cache line to a second cache when a target address for a branch instruction in a first cache line of a first cache is included in the second cache line of the first cache and when the second cache line is not resident in the second cache.
    Type: Application
    Filed: December 11, 2012
    Publication date: June 12, 2014
    Inventor: James D. Dundas
  • Publication number: 20140115257
    Abstract: A processor stores branch information at a “sparse” cache and a “dense” cache. The sparse cache stores the target addresses for up to a specified number of branch instructions in a given cache entry associated with a cache line address, while branch information for additional branch instructions at the cache entry is stored at the dense cache. Branch information at the dense cache persists after eviction of the corresponding cache line until it is replaced by branch information for a different cache entry. Accordingly, in response to the instructions for a given cache line address being requested for retrieval from memory, a prefetcher determines whether the dense cache stores branch information for the cache line address. If so, the prefetcher prefetches the instructions identified by the target addresses of the branch information in the dense cache concurrently with transferring the instructions associated with the cache line address.
    Type: Application
    Filed: October 22, 2012
    Publication date: April 24, 2014
    Applicant: Advanced Micro Devices, Inc.
    Inventor: James D. Dundas
  • Patent number: 8694759
    Abstract: A method and apparatus to utilize a branch prediction scheme that limits the expenditure of power and the area consumed caused by branch prediction schemes is provided. The method includes accessing a first entry and a second entry of the data structure, wherein each entry stores a portion of a predicted target address, determining the predicted target address using the portion of the predicted target address stored in the first entry and a portion of a branch address of a fetched branch instruction for a fetched branch instruction of a first type, and determining the predicted target address using the portion of the predicted target address stored in the first entry and the portion of the predicted target address stored in the second entry for a fetched branch instruction of a second type.
    Type: Grant
    Filed: November 12, 2010
    Date of Patent: April 8, 2014
    Assignee: Advanced Micro Devices, Inc.
    Inventors: James D. Dundas, Marvin A. Denman
  • Publication number: 20140059283
    Abstract: Methods and systems for controlling a memory array are provided. A method of controlling a memory array includes: providing a next index to be read that indicates a location in the memory array from which to retrieve an output; reading validity information from a validity memory unit; comparing the next index with a last read index stored in an index memory unit; reading the output from an output memory unit when the last read index is the same as the next index and the validity information indicates the output in the output memory unit is valid; and reducing power to the memory array when the output is read from the output memory unit.
    Type: Application
    Filed: August 23, 2012
    Publication date: February 27, 2014
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventor: James D. Dundas
  • Publication number: 20120124347
    Abstract: A method and apparatus to utilize a branch prediction scheme that limits the expenditure of power and the area consumed caused by branch prediction schemes is provided. The method includes accessing a first entry and a second entry of the data structure, wherein each entry stores a portion of a predicted target address, determining the predicted target address using the portion of the predicted target address stored in the first entry and a portion of a branch address of a fetched branch instruction for a fetched branch instruction of a first type, and determining the predicted target address using the portion of the predicted target address stored in the first entry and the portion of the predicted target address stored in the second entry for a fetched branch instruction of a second type.
    Type: Application
    Filed: November 12, 2010
    Publication date: May 17, 2012
    Inventors: James D. Dundas, Marvin A. Denman
  • Patent number: 8181005
    Abstract: A system and method for branch prediction in a microprocessor. A hybrid device stores branch prediction information in a sparse cache for no more than a common smaller number of branches within each entry of the instruction cache. For the less common case wherein an i-cache line comprises additional branches, the device stores the corresponding branch prediction information in a dense cache. Each entry of the sparse cache stores a bit vector indicating whether or not a corresponding instruction cache line includes additional branch instructions. This indication may also be used to select an entry in the dense cache for storage. A second sparse cache stores entire evicted entries from the first sparse cache.
    Type: Grant
    Filed: September 5, 2008
    Date of Patent: May 15, 2012
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Gerald D. Zuraski, Jr., James D. Dundas, Anthony X. Jarvis
  • Publication number: 20110093658
    Abstract: A system and method for branch prediction in a microprocessor. A branch prediction unit stores an indication of a location of a branch target instruction relative to its corresponding branch instruction. For example, a target instruction may be located within a first region of memory as a branch instruction. Alternatively, the target instruction may be located outside the first region, but within a larger second region. The prediction unit comprises a branch target array corresponding to each region. Each array stores a bit range of a branch target address, wherein the stored bit range is based upon the location of the target instruction relative to the branch instruction. The prediction unit constructs a predicted branch target address by concatenating a bits stored in the branch target arrays.
    Type: Application
    Filed: October 19, 2009
    Publication date: April 21, 2011
    Inventors: Gerald D. Zuraski, JR., James D. Dundas, Anthony X. Jarvis
  • Publication number: 20100064123
    Abstract: A system and method for branch prediction in a microprocessor. A hybrid device stores branch prediction information in a sparse cache for no more than a common smaller number of branches within each entry of the instruction cache. For the less common case wherein an i-cache line comprises additional branches, the device stores the corresponding branch prediction information in a dense cache. Each entry of the sparse cache stores a bit vector indicating whether or not a corresponding instruction cache line includes additional branch instructions. This indication may also be used to select an entry in the dense cache for storage. A second sparse cache stores entire evicted entries from the first sparse cache.
    Type: Application
    Filed: September 5, 2008
    Publication date: March 11, 2010
    Inventors: Gerald D. Zuraski, JR., James D. Dundas, Anthony X. Jarvis
  • Patent number: 6883086
    Abstract: When fetching a load value for a load instruction results in a cache miss, the load instruction and any load-dependent instructions may be speculatively executed with a predicted load value and retired before the missing cache line is retrieved and the actual load value is determined. By storing the predicted load value in a table, when the actual load value is determined it may be compared with the predicted load value from the table. If the predicted load value was incorrect, the load and load-dependent instructions may be re-executed with the actual load value. A compiler may determine which load instructions are highly predictable and likely to result in cache misses, and designate only those load instructions for speculative execution.
    Type: Grant
    Filed: March 6, 2002
    Date of Patent: April 19, 2005
    Assignee: Intel Corporation
    Inventor: James D. Dundas
  • Publication number: 20040193849
    Abstract: A technique for predicating a speculative load miss based on a predicate value generated before a branch. More particularly, embodiments of the invention pertain to providing a hint to a processor as to whether a speculative load miss should be serviced, based upon a predicate value.
    Type: Application
    Filed: March 25, 2003
    Publication date: September 30, 2004
    Inventor: James D. Dundas
  • Publication number: 20030172255
    Abstract: When fetching a load value for a load instruction results in a cache miss, the load instruction and any load-dependent instructions may be speculatively executed with a predicted load value and retired before the missing cache line is retrieved and the actual load value is determined. By storing the predicted load value in a table, when the actual load value is determined it may be compared with the predicted load value from the table. If the predicted load value was incorrect, the load and load-dependent instructions may be re-executed with the actual load value. A compiler may determine which load instructions are highly predictable and likely to result in cache misses, and designate only those load instructions for speculative execution.
    Type: Application
    Filed: March 6, 2002
    Publication date: September 11, 2003
    Inventor: James D. Dundas