Patents by Inventor Edmund B. Nightingale

Edmund B. Nightingale 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).

  • Publication number: 20160183191
    Abstract: The techniques and systems described herein implement direct memory access in association with a wireless data transfer. In one example, data units are received at a device and it is determined that the data units have been transferred using low-power consumption data transfer and that the data units are to be directly stored in a predetermined memory (e.g., a dedicated memory) of the device. In another example, a first device provides an instruction to a partner device to store data in specific storage location(s) so that the data can be retrieved from the specific storage location(s) without interrupting a main processor of the partner device. The data may also be directly stored in the predetermined memory of the first device without interrupting a main processor of the first device.
    Type: Application
    Filed: December 23, 2014
    Publication date: June 23, 2016
    Inventors: Anirudh Badam, Edmund B. Nightingale, Ranveer Chandra, Jian Huang
  • Patent number: 9298438
    Abstract: Application code is analyzed to determine if a hardware library could accelerate its execution. In particular, application code can be analyzed to identify calls to application programming interfaces (APIs) or other functions that have a hardware library implementation. The code can be analyzed to identify the frequency of such calls. Information from the hardware library can indicate characteristics of the library, such as its size, power consumption and FPGA resource usage. Information about the execution pattern of the application code also can be useful. This information, along with information about other concurrent processes using the FPGA resources, can be used to select a hardware library to implement functions called in the application code.
    Type: Grant
    Filed: June 20, 2012
    Date of Patent: March 29, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Edmund B. Nightingale, Brian A. LaMacchia
  • Patent number: 9230091
    Abstract: Field programmable gate arrays can be used as a shared programmable co-processor resource in a general purpose computing system. Components of an FPGA are isolated to protect the FPGA and data transferred between the FPGA and other components of the computer system. For example, data written by the FPGA to memory is encrypted, and is decrypted within the FPGA when read back from memory. Data transferred between the FPGA and other components such as the CPU or GPU, whether directly or through memory, can similarly be encrypted using cryptographic keys known to the communicating components. Transferred data also can be digitally signed by the FPGA or other component to provide authentication. Code for programming the FPGA can be encrypted and signed by the author, loaded into the FPGA in an encrypted state, and then decrypted and authenticated by the FPGA itself, before programming the FPGA with the code.
    Type: Grant
    Filed: June 20, 2012
    Date of Patent: January 5, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Brian A. LaMacchia, Edmund B. Nightingale, Paul Barham
  • Patent number: 9170892
    Abstract: A metadata server configured to maintain storage assignment mappings in non-persistent storage is described herein. The tract storage assignment mappings associate servers with storage assignments, the storage assignments representing the data stored on the servers. Responsive to a failure, the metadata server receives the storage assignments from the servers and rebuilds the storage assignment mappings from the storage assignments. The metadata server is also configured to enable clients to operate during a recovery process for a failed server by providing the storage assignment mappings to the clients during the recovery process. Also during the recovery process, the replacement server for the failed server conditionally overwrites stored data with other data received from other servers as part of the recovery process.
    Type: Grant
    Filed: May 26, 2011
    Date of Patent: October 27, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Edmund B. Nightingale, Jeremy E. Elson
  • Publication number: 20150243372
    Abstract: A system and method for mitigating memory errors in a computer system. Faulty memory is identified and tested by a memory manager of an operating system. The memory manager may perform diagnostic tests while the operating system is executing on the computer system. Regions of memory that are being used by software components of the computer system may also be tested. The memory manager maintains a stored information about faulty memory regions. Regions are added to the stored information when they are determined to be faulty by a diagnostic test tool. Memory regions are allocated to software components by the memory manager after checking the stored information about faulty memory regions. This ensures a faulty memory region is never allocated to a software component of the computer system.
    Type: Application
    Filed: April 28, 2015
    Publication date: August 27, 2015
    Inventors: Garrett Leischner, Andrew J. Lagattuta, Matthew Jeremiah Eason, Landy Wang, John R. Douceur, Baskar Sridharan, Edmund B. Nightingale
  • Patent number: 9026889
    Abstract: A system and method for mitigating memory errors in a computer system. Faulty memory is identified and tested by a memory manager of an operating system. The memory manager may perform diagnostic tests while the operating system is executing on the computer system. Regions of memory that are being used by software components of the computer system may also be tested. The memory manager maintains a stored information about faulty memory regions. Regions are added to the stored information when they are determined to be faulty by a diagnostic test tool. Memory regions are allocated to software components by the memory manager after checking the stored information about faulty memory regions. This ensures a faulty memory region is never allocated to a software component of the computer system.
    Type: Grant
    Filed: January 7, 2014
    Date of Patent: May 5, 2015
    Assignee: Microsoft Technologoy Licensing, LLC
    Inventors: Garrett Leischner, Andrew J. Lagattuta, Matthew Jeremiah Eason, Landy Wang, John R. Douceur, Baskar Sridharan, Edmund B. Nightingale
  • Patent number: 8996611
    Abstract: A plurality of servers configured to receive a plurality of requests associated with a plurality of byte sequences are described herein. The requests for each byte sequence are received by a single one of the servers. Each server is further configured to serially process the requests it receives while the other servers also perform serial processing of requests in parallel with the server. Also, the requests for each byte sequence are transmitted to the single one of the servers by a plurality of clients, each client independently identifying the single one of the servers for the byte sequence based on system metadata.
    Type: Grant
    Filed: January 31, 2011
    Date of Patent: March 31, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Edmund B. Nightingale, Jeremy E. Elson
  • Patent number: 8984239
    Abstract: Implementations of a file system that is supported by a non-volatile memory that is directly connected to a memory bus, and placed side by side with a dynamic random access memory (DRAM), are described.
    Type: Grant
    Filed: September 6, 2013
    Date of Patent: March 17, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jeremy P. Condit, Edmund B. Nightingale, Benjamin C. Lee, Engin Ipek, Christopher Frost, Douglas C. Burger
  • Publication number: 20150052392
    Abstract: While connected to cloud storage, a computing device writes data and metadata to the cloud storage, indicates success of the write to an application of the computing device, and, after indicating success to the application, writes the data and metadata to local storage of the computing device. The data and metadata may be written to different areas of the local storage. The computing device may also determine that it has recovered from a crash or has connected to the cloud storage after operating disconnected and reconcile the local storage with the cloud storage. The reconciliation may be based at least on a comparison of the metadata stored in the area of the local storage with metadata received from the cloud storage. The cloud storage may store each item of data contiguously with its metadata as an expanded block.
    Type: Application
    Filed: August 19, 2013
    Publication date: February 19, 2015
    Applicant: Microsoft Corporation
    Inventors: James W. Mickens, Jeremy E. Elson, Edmund B. Nightingale, Bin Fan, Asim Kadav, Osama Khan
  • Patent number: 8898480
    Abstract: Field programmable gate arrays can be used as a shared programmable co-processor resource in a general purpose computing system. Components of an FPGA are isolated to protect the FPGA and data transferred between the FPGA and other components of the computer system. Transferred data can be digitally signed by the FPGA or other component to provide authentication. Code for programming the FPGA can be encrypted and signed by the author, loaded into the FPGA in an encrypted state, and then decrypted and authenticated by the FPGA itself, before programming the FPGA with the code. This code can be used to change the cryptographic operations performed in the FPGA, including keys, or decryption and encryption algorithms, or both.
    Type: Grant
    Filed: June 20, 2012
    Date of Patent: November 25, 2014
    Assignee: Microsoft Corporation
    Inventors: Brian A. LaMacchia, Edmund B. Nightingale
  • Publication number: 20140298356
    Abstract: An illustrative operating system distributes two or more instances of the operating system over heterogeneous platforms of a computing device. The instances of the operating system work together to provide single-kernel semantics to present a common operating system abstraction to application modules. The heterogeneous platforms may include co-processors that use different instruction set architectures and/or functionality, different NUMA domains, etc. Further, the operating system allows application modules to transparently access components using a local communication path and a remote communication path. Further, the operating system includes a policy manager module that determines the placement of components based on affinity values associated with interaction relations between components. The affinity values express the sensitivity of the interaction relations to a relative location of the components.
    Type: Application
    Filed: June 16, 2014
    Publication date: October 2, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Edmund B. Nightingale, Orion T. Hodson, Galen C. Hunt
  • Patent number: 8776088
    Abstract: An illustrative operating system distributes two or more instances of the operating system over heterogeneous platforms of a computing device. The instances of the operating system work together to provide single-kernel semantics to present a common operating system abstraction to application modules. The heterogeneous platforms may include co-processors that use different instruction set architectures and/or functionality, different NUMA domains, etc. Further, the operating system allows application modules to transparently access components using a local communication path and a remote communication path. Further, the operating system includes a policy manager module that determines the placement of components based on affinity values associated with interaction relations between components. The affinity values express the sensitivity of the interaction relations to a relative location of the components.
    Type: Grant
    Filed: March 30, 2009
    Date of Patent: July 8, 2014
    Assignee: Microsoft Corporation
    Inventors: Orion T. Hodson, Galen C. Hunt, Edmund B. Nightingale
  • Publication number: 20140181577
    Abstract: A system and method for mitigating memory errors in a computer system. Faulty memory is identified and tested by a memory manager of an operating system. The memory manager may perform diagnostic tests while the operating system is executing on the computer system. Regions of memory that are being used by software components of the computer system may also be tested. The memory manager maintains a stored information about faulty memory regions. Regions are added to the stored information when they are determined to be faulty by a diagnostic test tool. Memory regions are allocated to software components by the memory manager after checking the stored information about faulty memory regions. This ensures a faulty memory region is never allocated to a software component of the computer system.
    Type: Application
    Filed: January 7, 2014
    Publication date: June 26, 2014
    Applicant: Microsoft Corporation
    Inventors: Garrett Leischner, Andrew J. Lagattuta, Matthew Jeremiah Eason, Landy Wang, John R. Douceur, Baskar Sridharan, Edmund B. Nightingale
  • Publication number: 20140025912
    Abstract: Dynamically replicated memory is usable to allocate new memory space from failed memory pages by pairing compatible failed memory pages to reuse otherwise unusable failed memory pages. Dynamically replicating memory involves detecting and recording memory faults, reclaiming failed memory pages for later use, recovering from detected memory faults, and scheduling access to replicated memory pages.
    Type: Application
    Filed: September 23, 2013
    Publication date: January 23, 2014
    Applicant: Microsoft Corporation
    Inventors: Engin Ipek, Thomas Moscibroda, Douglas C. Burger, Edmund B. Nightingale, Jeremy P. Condit
  • Patent number: 8627176
    Abstract: A system and method for mitigating memory errors in a computer system. Faulty memory is identified and tested by a memory manager of an operating system. The memory manager may perform diagnostic tests while the operating system is executing on the computer system. Regions of memory that are being used by software components of the computer system may also be tested. The memory manager maintains a stored information about faulty memory regions. Regions are added to the stored information when they are determined to be faulty by a diagnostic test tool. Memory regions are allocated to software components by the memory manager after checking the stored information about faulty memory regions. This ensures a faulty memory region is never allocated to a software component of the computer system.
    Type: Grant
    Filed: November 30, 2010
    Date of Patent: January 7, 2014
    Assignee: Microsoft Corporation
    Inventors: Garrett Leischner, Andrew J. Lagattuta, Matthew Jeremiah Eason, Landy Wang, John R. Douceur, Baskar Sridharan, Edmund B. Nightingale
  • Publication number: 20140006701
    Abstract: Implementations of a file system that is supported by a non-volatile memory that is directly connected to a memory bus, and placed side by side with a dynamic random access memory (DRAM), are described.
    Type: Application
    Filed: September 6, 2013
    Publication date: January 2, 2014
    Applicant: Microsoft Corporation
    Inventors: Jeremy P. Condit, Edmund B. Nightingale, Benjamin C. Lee, Engin Ipek, Christopher Frost, Douglas C. Burger
  • Publication number: 20130346979
    Abstract: Application code is analyzed to determine if a hardware library could accelerate its execution. In particular, application code can be analyzed to identify calls to application programming interfaces (APIs) or other functions that have a hardware library implementation. The code can be analyzed to identify the frequency of such calls. Information from the hardware library can indicate characteristics of the library, such as its size, power consumption and FPGA resource usage. Information about the execution pattern of the application code also can be useful. This information, along with information about other concurrent processes using the FPGA resources, can be used to select a hardware library to implement functions called in the application code.
    Type: Application
    Filed: June 20, 2012
    Publication date: December 26, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Edmund B. Nightingale, Brian A. LaMacchia
  • Publication number: 20130346758
    Abstract: Field programmable gate arrays can be used as a shared programmable co-processor resource in a general purpose computing system. Components of an FPGA are isolated to protect the FPGA and data transferred between the FPGA and other components of the computer system. For example, data written by the FPGA to memory is encrypted, and is decrypted within the FPGA when read back from memory. Data transferred between the FPGA and other components such as the CPU or GPU, whether directly or through memory, can similarly be encrypted using cryptographic keys known to the communicating components. Transferred data also can be digitally signed by the FPGA or other component to provide authentication. Code for programming the FPGA can be encrypted and signed by the author, loaded into the FPGA in an encrypted state, and then decrypted and authenticated by the FPGA itself, before programming the FPGA with the code.
    Type: Application
    Filed: June 20, 2012
    Publication date: December 26, 2013
    Applicant: Microsoft Corporation
    Inventors: Brian A. LaMacchia, Edmund B. Nightingale, Paul Barham
  • Publication number: 20130346759
    Abstract: Field programmable gate arrays can be used as a shared programmable co-processor resource in a general purpose computing system. Components of an FPGA are isolated to protect the FPGA and data transferred between the FPGA and other components of the computer system. Transferred data can be digitally signed by the FPGA or other component to provide authentication. Code for programming the FPGA can be encrypted and signed by the author, loaded into the FPGA in an encrypted state, and then decrypted and authenticated by the FPGA itself, before programming the FPGA with the code. This code can be used to change the cryptographic operations performed in the FPGA, including keys, or decryption and encryption algorithms, or both.
    Type: Application
    Filed: June 20, 2012
    Publication date: December 26, 2013
    Applicant: Microsoft Corporation
    Inventors: Brian LaMacchia, Edmund B. Nightingale
  • Publication number: 20130346985
    Abstract: Field programmable gate arrays can be used as a shared programmable co-processor resource in a general purpose computing system. An FPGA can be programmed to perform functions, which in turn can be associated with one or more processes. With multiple processes, the FPGA can be shared, and a process is assigned to at least one portion of the FPGA during a time slot in which to access the FPGA. Programs written in a hardware description language for programming the FPGA are made available as a hardware library. The operating system manages allocating the FPGA resources to processes, programming the FPGA in accordance with the functions to be performed by the processes using the FPGA, and scheduling use of the FPGA by these processes.
    Type: Application
    Filed: June 20, 2012
    Publication date: December 26, 2013
    Applicant: MICROSOFT CORPORATION
    Inventor: Edmund B. Nightingale