Patents by Inventor Andrew Kegel

Andrew Kegel 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: 9286248
    Abstract: A method of managing peripherals is performed in a device coupled to a processor in a computer system. For example, the method is performed in an input/output memory management unit (IOMMU) or a peripheral. The method includes recording information associated with I/O activity for one or more peripherals in a log that has a first base address. The method also includes, without pausing the I/O activity, specifying a second base address for the log and setting a head pointer and a tail pointer for the log to indicate that the log is empty. The second base address is distinct from the first base address.
    Type: Grant
    Filed: October 4, 2013
    Date of Patent: March 15, 2016
    Assignee: ADVANCED MICRO DEVICES, INC.
    Inventor: Andrew Kegel
  • Patent number: 9239804
    Abstract: A system and method of managing requests from peripherals in a computer system are provided. In the system and method, an input/output memory management unit (IOMMU) receives a peripheral page request (PPR) from a peripheral. In response to a determination that a criterion regarding an available capacity of a PPR log is satisfied, a completion message is sent to the peripheral indicating that the PPR is complete and the PPR is discarded without queuing the PPR in the PPR log.
    Type: Grant
    Filed: October 3, 2013
    Date of Patent: January 19, 2016
    Assignee: ADVANCED MICRO DEVICES, INC.
    Inventors: Andrew Kegel, Jimshed Mirza, Paul Blinzer, Philip Ng
  • Publication number: 20150100708
    Abstract: A method of managing peripherals is performed in a device coupled to a processor in a computer system. For example, the method is performed in an input/output memory management unit (IOMMU) or a peripheral. The method includes recording information associated with I/O activity for one or more peripherals in a log that has a first base address. The method also includes, without pausing the I/O activity, specifying a second base address for the log and setting a head pointer and a tail pointer for the log to indicate that the log is empty. The second base address is distinct from the first base address.
    Type: Application
    Filed: October 4, 2013
    Publication date: April 9, 2015
    Applicant: Advanced Micro Devices, Inc.
    Inventor: Andrew Kegel
  • Publication number: 20150100818
    Abstract: A system and method of managing requests from peripherals in a computer system are provided. In the system and method, an input/output memory management unit (IOMMU) receives a peripheral page request (PPR) from a peripheral. In response to a determination that a criterion regarding an available capacity of a PPR log is satisfied, a completion message is sent to the peripheral indicating that the PPR is complete and the PPR is discarded without queuing the PPR in the PPR log.
    Type: Application
    Filed: October 3, 2013
    Publication date: April 9, 2015
    Applicants: ATI Technologies ULC, Advanced Micro Devices, Inc.
    Inventors: Andrew Kegel, Jimshed Mirza, Paul Blinzer, Philip Ng
  • Patent number: 8984255
    Abstract: A data processing device is provided that employs multiple translation look-aside buffers (TLBs) associated with respective processors that are configured to store selected address translations of a page table of a memory shared by the processors. The processing device is configured such that when an address translation is requested by a processor and is not found in the TLB associated with that processor, another TLB is probed for the requested address translation. The probe across to the other TLB may occur in advance of a walk of the page table for the requested address or alternatively a walk can be initiated concurrently with the probe. Where the probe successfully finds the requested address translation, the page table walk can be avoided or discontinued.
    Type: Grant
    Filed: December 21, 2012
    Date of Patent: March 17, 2015
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Lisa Hsu, Nuwan Jayasena, Andrew Kegel, Bradford M. Beckmann
  • Publication number: 20140181460
    Abstract: A data processing device is provided that employs multiple translation look-aside buffers (TLBs) associated with respective processors that are configured to store selected address translations of a page table of a memory shared by the processors. The processing device is configured such that when an address translation is requested by a processor and is not found in the TLB associated with that processor, another TLB is probed for the requested address translation. The probe across to the other TLB may occur in advance of a walk of the page table for the requested address or alternatively a walk can be initiated concurrently with the probe. Where the probe successfully finds the requested address translation, the page table walk can be avoided or discontinued.
    Type: Application
    Filed: December 21, 2012
    Publication date: June 26, 2014
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: Lisa Hsu, Nuwan Jayasena, Andrew Kegel, Bradford M. Beckmann
  • Publication number: 20140181461
    Abstract: A method and apparatus for reporting events into at least one event log are presented. An “access” event entry may be added to an event log stored in memory when a peripheral device accesses an address of a memory page described by a page table entry (PTE). A “dirty” event entry may be added to an event log stored in memory when a page writes to a memory page. The event log may reside in an input/output memory management unit (IOMMU) that includes a translation lookaside buffer (TLB). The IOMMU may report the event log entries to system memory. When there is no entry in the TLB and a direct memory access (DMA) read operation enters the IOMMU, a PTE may be loaded into the TLB after updating an access log to calculate an address. If the DMA operation is not a read operation, both dirty and access logs may be updated.
    Type: Application
    Filed: December 21, 2012
    Publication date: June 26, 2014
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: Andrew Kegel, Thomas R. Woller
  • Patent number: 8719464
    Abstract: The present system enables passing a pointer, associated with accessing data in a memory, to an input/output (I/O) device via an input/output memory management unit (IOMMU). The I/O device accesses the data in the memory via the IOMMU without copying the data into a local I/O device memory. The I/O device can perform an operation on the data in the memory based on the pointer, such that I/O device accesses the memory without expensive copies.
    Type: Grant
    Filed: November 30, 2011
    Date of Patent: May 6, 2014
    Assignee: Advanced Micro Device, Inc.
    Inventors: Andrew Kegel, Mark Hummel, Anthony Asaro, Phillip Ng
  • Publication number: 20130262736
    Abstract: The present system enables receiving a request from an I/O device to translate a virtual address to a physical address to access the page in system memory. One or more memory attributes of the page defining a cacheability characteristic of the page is identified. A response including the physical address and the cacheability characteristic of the page is sent to the I/O device.
    Type: Application
    Filed: March 30, 2012
    Publication date: October 3, 2013
    Applicants: ATI Technologies ULC, Advanced Micro Devices, Inc.
    Inventors: Andrew KEGEL, Mark Hummel, Anthony Asaro
  • Publication number: 20130145051
    Abstract: A system is enabled for configuring an IOMMU to provide direct access to system memory data by at least one I/O device/peripheral. Further, the IOMMU is configured to pass a pointer to at least one I/O device without having to translate the pointer. Further, commands are sent from a process within a guest operating system (OS) directly to a peripheral without intervention from a hypervisor. Further, the IOMMU is configured to grant peripherals access permissions to memory blocks to maintain isolation among peripherals.
    Type: Application
    Filed: December 2, 2011
    Publication date: June 6, 2013
    Inventors: Andrew Kegel, Mark Hummel
  • Publication number: 20130145055
    Abstract: The present system enables an input/output (I/O) device to request memory for performing a direct memory access (DMA) of system memory. Further, the system uses an input/output memory management unit (IOMMU) to determine whether or not the system memory is available. The IOMMU notifies an operating system associated with the system memory if the system memory is not available, such that the operating system allocates non-system memory for use by the I/O device to perform the DMA.
    Type: Application
    Filed: December 2, 2011
    Publication date: June 6, 2013
    Inventors: Andrew Kegel, Mark Hummel, Anthony Asaro, Phillip NG
  • Publication number: 20130138840
    Abstract: The present system enables passing a pointer, associated with accessing data in a memory, to an input/output (I/O) device via an input/output memory management unit (IOMMU). The I/O device accesses the data in the memory via the IOMMU without copying the data into a local I/O device memory. The I/O device can perform an operation on the data in the memory based on the pointer, such that I/O device accesses the memory without expensive copies.
    Type: Application
    Filed: November 30, 2011
    Publication date: May 30, 2013
    Inventors: Andrew Kegel, Mark Hummel, Anthony Asaro, Phillip Ng
  • Patent number: 8244978
    Abstract: Embodiments allow a smaller, simpler hardware implementation of an input/output memory management unit (IOMMU) having improved translation behavior that is independent of page table structures and formats. Embodiments also provide device-independent structures and methods of implementation, allowing greater generality of software (fewer specific software versions, in turn reducing development costs).
    Type: Grant
    Filed: February 17, 2010
    Date of Patent: August 14, 2012
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Andrew Kegel, Mark Hummel, Erich Boleyn
  • Publication number: 20070260545
    Abstract: Embodiments of the present invention address deficiencies of the art in respect to trusted platform module (TPM) unification in a trusted computing environment and provide a novel and non-obvious method, system and computer program product for trusted platform module data harmonization. In one embodiment of the invention, a TPM log harmonization method can include designating both a single master TPM for a master node among multiple nodes, and also a multiplicity of subsidiary TPMs for remaining ones of the nodes. The method further can include extending the single master TPM with a measurement representing a rendezvous operation for the nodes.
    Type: Application
    Filed: May 2, 2006
    Publication date: November 8, 2007
    Applicant: International Business Machines Corporation
    Inventors: Steven Bade, Richard Dayan, James Hanna, Andrew Kegel
  • Publication number: 20070198214
    Abstract: A solution for evaluating trust in a computer infrastructure is provided. In particular, a plurality of computing devices in the computer infrastructure evaluate one or more other computing devices in the computer infrastructure based on a set of device measurements for the other computing device(s) and a set of reference measurements. To this extent, each of the plurality of computing devices also provides a set of device measurements for processing by the other computing device(s) in the computer infrastructure.
    Type: Application
    Filed: February 16, 2006
    Publication date: August 23, 2007
    Applicant: International Business Machines Corporation
    Inventors: Steven Bade, Andrew Kegel, Leendert Van Doorn
  • Publication number: 20070136577
    Abstract: A method, system and computer program product for implementing general purpose PCRs with extended semantics (referred to herein as “ePCRs”) in a trusted, measured software module. The module is designed to run in one of a hypervisor context, an isolated partition, or under other isolated configurations. Because the software module is provided using trusted (measured) code, the software implementing the PCRs is able to run as a simple software process in the operating system (OS), as long as the software is first measured and logged. The software-implemented ePCRs are generated as needed to record specific measurements of the software and hardware elements on which an application depends, and the ePCRs are able to ignore other non-dependencies.
    Type: Application
    Filed: December 13, 2005
    Publication date: June 14, 2007
    Inventors: Steven Bade, Andrew Kegel, Leendert Van Doorn
  • Publication number: 20060090085
    Abstract: Indicating when the cover for a computer chassis has been opened is disclosed. A computer of an embodiment of the invention includes a chassis and a basic input/output system (BIOS), or another type of firmware. The chassis has an openable cover, and circuitry indicating when the openable cover has been opened. The BIOS has a non-volatile memory in which a flag is set when the circuitry indicates that the openable cover has been opened. The computer may further include always-on circuitry, such as time-of-day and real-time clock circuitry, to which the circuitry indicating when the openable cover has been opened is electrically connected. The computer may also include one or more encryption and/or signing modules that encrypt and/or sign data according to one or more keys. The keys are rendered invalid when the cover of the chassis has been opened.
    Type: Application
    Filed: October 23, 2004
    Publication date: April 27, 2006
    Inventors: Paul McKenney, Paul Landsberg, James Ward, Andrew Kegel
  • Publication number: 20050257073
    Abstract: Multiple trusted platform modules within a data processing system are used in a redundant manner that provides a reliable mechanism for securely storing secret data at rest that is used to bootstrap a system trusted platform module. A hypervisor requests each trusted platform module to encrypt a copy of the secret data, thereby generating multiple versions of encrypted secret data values, which are then stored within a non-volatile memory within the trusted platform. At some later point in time, the encrypted secret data values are retrieved, decrypted by the trusted platform module that performed the previous encryption, and then compared to each other. If any of the decrypted values do not match a quorum of values from the comparison operation, then a corresponding trusted platform module for a non-matching decrypted value is designated as defective because it has not been able to correctly decrypt a value that it previously encrypted.
    Type: Application
    Filed: April 29, 2004
    Publication date: November 17, 2005
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Steven Bade, Linda Betz, Andrew Kegel, David Safford, Leendert Doorn
  • Publication number: 20050257248
    Abstract: Server discovery, spawning collector threads to collect information from servers, and reporting such information, is disclosed. A method of one embodiment determines a number of servers communicatively coupled to a network. For each server, a collector thread is spawned to collect information regarding the server by sending requests to the server and receiving responses from the server. The collector threads can be spawned by and run on a computing device other than the number of servers, such that no computer-executable code is installed on the servers for collecting the information. Upon completion of the collector thread for each server, the information regarding the server as collected is stored to a database by one or more writer threads.
    Type: Application
    Filed: May 17, 2004
    Publication date: November 17, 2005
    Inventors: Andrew Kegel, Deepa Srinivasan, Steven Cook, Robert Smith
  • Publication number: 20050246552
    Abstract: A method, an apparatus, a system, and a computer program product is presented for virtualizing trusted platform modules within a data processing system. A virtual trusted platform module along with a virtual endorsement key is created within a physical trusted platform module within the data processing system using a platform signing key of the physical trusted platform module, thereby providing a transitive trust relationship between the virtual trusted platform module and the core root of trust for the trusted platform. The virtual trusted platform module can be uniquely associated with a partition in a partitionable runtime environment within the data processing system.
    Type: Application
    Filed: April 29, 2004
    Publication date: November 3, 2005
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Steven Bade, Linda Betz, Andrew Kegel, Michael Kelly, William Terrell