Patents by Inventor Duane A. Averill

Duane A. Averill 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: 8028128
    Abstract: In a method of managing a cache directory in a memory system, an original system address is presented to the cache directory when corresponding associativity data is allocated to an associativity class in the cache directory. The original system address is normalized by removing address space corresponding to a memory hole, thereby generating a normalized address. The normalized address is stored in the cache directory. The normalized address is de-normalized, thereby generating a de-normalized address, when the associativity data is cast out of the cache directory to make room for new associativity data. The de-normalized address is sent to the memory system for coherency management.
    Type: Grant
    Filed: October 10, 2007
    Date of Patent: September 27, 2011
    Assignee: International Business Machines Corporation
    Inventors: Duane A. Averill, Herman L. Blackmon, Joseph A. Kirscht, David A. Shedivy
  • Patent number: 7925857
    Abstract: In a method of generating a cache directory to include a plurality of associativity classes, each associativity class includes an address tag including a plurality of address bits. Each address tag is configured to store a unique address to a specific location in an memory space. An amount of memory that is in an actually configured portion of the memory space is determined. A minimum number of bits necessary to address each memory location in the actually configured portion of the memory space is determined. Each address tag is configured in each associativity class to include the minimum number of bits necessary to address each memory location in the actually configured portion of the memory space. The cache directory is configured to include a maximum number of associativity classes per line in the cache directory.
    Type: Grant
    Filed: January 24, 2008
    Date of Patent: April 12, 2011
    Assignee: International Business Machines Corporation
    Inventors: Duane A. Averill, Herman L. Blackmon, Joseph A. Kirscht, David A. Shedivy
  • Patent number: 7865854
    Abstract: A method for allowing simultaneous parameter-driven and deterministic simulation during verification of a hardware design, comprising: enabling a plurality of random parameter-driven commands from a random command generator to execute in a simulation environment during verification of the hardware design through a command managing device; and enabling a plurality of deterministic commands from a manually-driven testcase port to execute in the simulation environment simultaneously with the plurality of random parameter-driven commands during verification of the hardware design through the command managing device, the plurality of deterministic commands and the plurality of random parameter-driven commands each verify the functionality of the hardware design.
    Type: Grant
    Filed: April 23, 2008
    Date of Patent: January 4, 2011
    Assignee: International Business Machines Corporation
    Inventors: Duane A. Averill, Christopher T. Phan, Corey V. Swenson, Sharon D. Vincent
  • Publication number: 20090271165
    Abstract: A method for allowing simultaneous parameter-driven and deterministic simulation during verification of a hardware design, comprising: enabling a plurality of random parameter-driven commands from a random command generator to execute in a simulation environment during verification of the hardware design through a command managing device; and enabling a plurality of deterministic commands from a manually-driven testcase port to execute in the simulation environment simultaneously with the plurality of random parameter-driven commands during verification of the hardware design through the command managing device, the plurality of deterministic commands and the plurality of random parameter-driven commands each verify the functionality of the hardware design.
    Type: Application
    Filed: April 23, 2008
    Publication date: October 29, 2009
    Inventors: Duane A. Averill, Christopher T. Phan, Corey V. Swenson, Sharon D. Vincent
  • Publication number: 20090265534
    Abstract: A method, apparatus, and computer program are provided for assessing fairness, performance, and livelock in a logic development process utilizing comparative parallel looping. Multiple loop macros are generated, the multiple loop macros respectively correspond to multiple processor threads, and the multiple loop macros are parallel comparative loop macros. The multiple processor threads for the multiple loop macros are executed in which a common resource is accessed. A forward performance of each of the multiple processor threads is verified. The forward performance of the multiple processor threads is compared with each other. It is determined whether any of the multiple processor threads fails to meet a minimum loop count or a minimum loop time. It is determined whether any of the multiple processor threads exceeds a maximum loop count or a maximum loop time. It is recognized whether fairness is maintained during the execution of the multiple processor threads.
    Type: Application
    Filed: April 17, 2008
    Publication date: October 22, 2009
    Inventors: Duane A. Averill, Anthony D. Drumm, Christopher T. Phan, Brian T. Vanderpool, Sharon D. Vincent
  • Publication number: 20090193199
    Abstract: In a method of generating a cache directory to include a plurality of associativity classes, each associativity class includes an address tag including a plurality of address bits. Each address tag is configured to store a unique address to a specific location in an memory space. An amount of memory that is in an actually configured portion of the memory space is determined. A minimum number of bits necessary to address each memory location in the actually configured portion of the memory space is determined. Each address tag is configured in each associativity class to include the minimum number of bits necessary to address each memory location in the actually configured portion of the memory space. The cache directory is configured to include a maximum number of associativity classes per line in the cache directory.
    Type: Application
    Filed: January 24, 2008
    Publication date: July 30, 2009
    Inventors: Duane A. Averill, Herman L. Blackmon, Joseph A. Kirscht, David A. Shedivy
  • Publication number: 20090100229
    Abstract: In a method of managing a cache directory in a memory system, an original system address is presented to the cache directory when corresponding associativity data is allocated to an associativity class in the cache directory. The original system address is normalized by removing address space corresponding to a memory hole, thereby generating a normalized address. The normalized address is stored in the cache directory. The normalized address is de-normalized, thereby generating a de-normalized address, when the associativity data is cast out of the cache directory to make room for new associativity data. The de-normalized address is sent to the memory system for coherency management.
    Type: Application
    Filed: October 10, 2007
    Publication date: April 16, 2009
    Inventors: Duane A. Averill, Herman L. Blackmon, Joseph A. Kirscht, David A. Shedivy
  • Publication number: 20070073974
    Abstract: A cache eviction algorithm for an inclusive cache determines which among a plurality of cache lines may be evicted from the inclusive cache based at least in part upon the state of the cache lines in a higher level cache. In particular, a cache eviction algorithm may determine, from an inclusive cache directory for a lower level cache, whether a cache line is cached in the lower level cache but not cached in any of a plurality of higher level caches for which cache directory information is additionally stored in the cache directory. Then, based upon determining that a cache line is cached in the lower level cache but not cached in any of the plurality of higher level caches, the cache eviction algorithm may select that cache line for eviction from the cache.
    Type: Application
    Filed: September 29, 2005
    Publication date: March 29, 2007
    Applicant: International Business Machines Corporation
    Inventors: Duane Averill, Brian Vanderpool
  • Publication number: 20060080509
    Abstract: An apparatus and method is disclosed for flushing a cache in a computing system. In a multinode computing system a cache in a first node may contain modified data in an address space of a second node. The cache in the first node must be purged prior to shutting down the first node. The computing system uses a random class replacement scheme for the cache. A cache flush routine sets a cache flush mode in a class replace select mechanism, overriding the random class replacement scheme. With the random class replacement scheme overridden, a minimum number of fetches will flush all the cache lines in the cache, each fetch loading the cache with a cache line not already in the cache. No additional delay penalty is incurred in a critical path through which fetches and stores to the cache must pass.
    Type: Application
    Filed: October 8, 2004
    Publication date: April 13, 2006
    Applicant: International Business Machines Corporation
    Inventors: Duane Averill, John Borkenhagen, Philip Hillier
  • Publication number: 20050160226
    Abstract: A computer system includes multiple caches and a cache line state directory structure, having at least a portion dedicated to a particular device cache within a particular device, and contains a fixed number of entries having a one-to-one correspondence to the cache lines of the cache to which it corresponds. The cache line state directory is used to determine whether it is necessary to send an invalidation message to the device cache. In the preferred embodiment, a dedicated portion of the cache line state directory structure corresponds to an I/O bridge device cache. Preferably, the cache line state directory also maintains state for one or more processor caches in a different format. The computer system preferably uses a NUMA architecture, the directories being maintained by node servers in each node.
    Type: Application
    Filed: January 20, 2004
    Publication date: July 21, 2005
    Applicant: International Business Machines Corporation
    Inventors: Duane Averill, Russell Hoover, David Shedivy, Martha Voytovich
  • Patent number: 6088788
    Abstract: The data processing system includes a plurality of execution units forming a plurality of processing pipelines. The plurality of processing pipelines process instructions and include a storage pipeline. The data processing system further includes an instruction unit and a storage control unit. The instruction unit outputs instructions to the plurality of execution units, and controls execution of multiple threads by the plurality of execution units. If an instruction for a first thread in the storage pipeline experiences a cache miss and the instruction unit decides to switch threads, the instruction unit begins processing a second thread. The instruction unit also issues a data request to the storage control unit to obtain the missing data. During processing of the second thread, unused slots will appear in the storage pipeline because it is not possible to always dispatch instructions to completely keep the pipelines filled.
    Type: Grant
    Filed: December 27, 1996
    Date of Patent: July 11, 2000
    Assignee: International Business Machines Corporation
    Inventors: John M. Borkenhagen, Richard J. Eickemeyer, Sheldon B. Levenstein, Andrew H. Wottreng, Duane A. Averill, James I. Brookhouser