Patents by Inventor C. Fanning

C. Fanning 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: 20150006181
    Abstract: The invention is a multi-microphone voice processing SoC primarily for head worn applications. It bypasses the use of conventional pre-amp voice CODEC (ADC/DAC) chips all together by replacing their functionality with digital MEMS microphone(s) and digital speaker driver (DSD). Functionality necessary for speech recognition such as noise/echo cancellation, speech compression, speech feature extraction and lossless speech transmission are also integrated into the SoC. One embodiment is a noise cancellation chip for wired, battery powered headsets and earphones, as smart-phone accessory. Another embodiment is as a wireless Bluetooth noise cancellation companion chip. The invention can be used in headwear, eyewear glass, mobile wearable computing, heavy duty military, aviation and industrial headsets and other speech recognition applications in noisy environments.
    Type: Application
    Filed: June 27, 2014
    Publication date: January 1, 2015
    Inventors: Dashen Fan, Jang Ho Kim, Yong Seok Seo, John C. C. Fan
  • Patent number: 8924437
    Abstract: A script engine for a dynamic language can collect memory allocation information for dynamic objects created by the scripting engine and for dynamic objects created by the script engine host. A native interface can be exposed to a client comprising a software development tool. The software development tool can be a third-party tool. In response to a query, the script engine can take a snapshot of a garbage collector heap and return an object record for each dynamic object in the heap. The object information can include memory allocation information, object type and other information. Multiple snapshots can be taken and the delta between snapshots can be determined and sent to a requestor.
    Type: Grant
    Filed: March 13, 2012
    Date of Patent: December 30, 2014
    Assignee: Microsoft Corporation
    Inventors: Gaurav Seth, Michael C. Fanning, Jennifer Hamilton, Curtis Man
  • Publication number: 20140372988
    Abstract: The use of a static analysis for configuring a follow-on dynamic analysis for the evaluation of program code is provided. A request may be received for configuring a static analysis session for the evaluation of the program code. The static analysis may be executed and an output may be produced therefrom. The output may be analyzed to determine whether a dynamic analysis is needed for resolving code ambiguities in the program code. If it determined that the dynamic analysis is needed, then the dynamic analysis of the program code is initiated.
    Type: Application
    Filed: June 14, 2013
    Publication date: December 18, 2014
    Inventors: Michael C. Fanning, Frederico A. Mameri, Zachary A. Nation, Christopher Michael Henry Faucon, Alexander Robin Gordon Lucas
  • Patent number: 8914776
    Abstract: Aspects of the subject matter described herein relate to assisting development tools. In aspects, statements that influence runtime behavior may be inserted into code of a program. For example, a statement inserted into a function may set a property of a runtime object to indicate that a debugger is to be notified for exceptions that are encountered within the scope of the function. When a runtime environment encounters an exception, the runtime environment may determine whether the property applies to the currently-executing scope. If so, the runtime environment may notify or not notify a development tool of the exception based on the value of the property.
    Type: Grant
    Filed: May 17, 2012
    Date of Patent: December 16, 2014
    Assignee: Microsoft Corporation
    Inventors: Timothy S. Rice, Akrosh Gandhi, Tae Hyung Kim, Gregory Bernard Miskelly, Michael C. Fanning, Andrew R. Sterland
  • Publication number: 20140358961
    Abstract: Aspects of the subject matter described herein relate to grid queries. In aspects, a client sends search criteria that represent two or more dimensions to a service. The service obtains results that satisfy the search criteria and performs intersection operations to populate a data grid. The data grid is then returned to the client for output on an output device of the client. The client may provide a user interface that allows quick updating of the search criteria to obtain a new data grid.
    Type: Application
    Filed: June 4, 2013
    Publication date: December 4, 2014
    Inventors: Scott M. Louvau, Michael C. Fanning, Christopher M. Faucon
  • Patent number: 8877442
    Abstract: The present invention provides a method, device and a computer program for haplotyping single cells, such that a sample taken from a pregnant female, without directly sampling the fetus, provides the ability to non-invasively determine the fetal genome. The method can be performed by determining the parental and inherited haplotypes, or can be performed merely on the basis of the mother's genetic information, obtained preferably in a blood or serum sample. The novel device allows for sequence analysis of single chromosomes from a single cell, preferably by partitioning single chromosomes from a metaphase cell into long, thin channels where a sequence analysis can be performed.
    Type: Grant
    Filed: December 7, 2011
    Date of Patent: November 4, 2014
    Assignee: The Board of Trustees of the Leland Stanford Junior University
    Inventors: Stephen R. Quake, Hei-Mun C. Fan
  • Patent number: 8869106
    Abstract: A language service provider framework that generates an application context of a dynamic language program being authored. The application context includes a description of the dynamic language application being authored, one or more specific locations within the program, and runtime environment information. A language service provider port component holds one or more language service providers. Each language service provider may receive the application context and generate a set of available symbols corresponding to each of at least one of the identified one or more specific locations. A management component receives the application context from the application context generation component, provides the application context the language service provider, and correspondingly receives the available symbol set from the language service provider.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: October 21, 2014
    Assignee: Microsoft Corporation
    Inventors: Charles P. Jazdzewski, Michael C. Fanning, Randy S. Kimmerly, A. Michael Horton
  • Publication number: 20140283096
    Abstract: A request that includes an indication of an execution context and data that represents executable code is obtained. An analysis of the data is initiated based on generating a first templatized representation of the executable code. A list of clearance indicators that indicate a blocking status associated with respective forms of templatized representations is accessed. A workflow policy is determined based on the accessing of the list of clearance indicators. The list of clearance indicators is updated, based on a result of the analysis of the data.
    Type: Application
    Filed: March 15, 2013
    Publication date: September 18, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Bala Neerumalla, Alain Comeau, Johann Rehberger, Graham Calladine, Wing Kwong Wan, George Raymond Derryberry, JR., Michael C. Fanning, David A. Ross, Mark Cartwright
  • Publication number: 20140282427
    Abstract: A method for diagnosing computer readable instructions related to transfers of control is disclosed. A state transition of a unit of execution within a logical operation is logged during runtime of the computer readable instructions. Diagnostic information of the logical operation is associated with the state transition. The state transition and associated diagnostic information is provided for retrieval at a selected point in the computer readable instructions.
    Type: Application
    Filed: March 13, 2013
    Publication date: September 18, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Michael C. Fanning, Felix Gerard Torquil Ifor Andrew, Daniel J. Moseley, Simon Calvert, Andrew R. Sterland, Timothy Rice, Jeffrey T. Fisher, Robert A. Paveza, Taylor C. Woll, Gregg Miskelly, Harold L. Pierson, III, Christopher Edmonds, Elliot H. Omiya, Karthik Vivek Nadig, Francisco Javier Wong, Zhaochuan Gao, Andriy Stasyuk
  • Patent number: 8796783
    Abstract: Each gate structure formed on the substrate includes a gate dielectric, a gate conductor, a first etch stop layer, and a gate cap dielectric. A second etch stop layer is formed over the gate structures, gate spacers, and source and drain regions. A first contact-level dielectric layer and a second contact-level dielectric layer are formed over the second etch stop layer. Gate contact via holes extending at least to the top surface of the gate cap dielectrics are formed. Source/drain contact via holes extending to the interface between the first and second contact-level dielectric layers are subsequently formed. The various contact via holes are vertically extended by simultaneously etching exposed gate cap dielectrics and exposed portions of the first contact-level dielectric layer, then by simultaneously etching the first and second etch stop layers. Source/drain contact vias self-aligned to the outer surfaces gate spacers are thereby formed.
    Type: Grant
    Filed: February 26, 2013
    Date of Patent: August 5, 2014
    Assignee: International Business Machines Corporation
    Inventors: Su C. Fan, David V. Horak, Charles W. Koburger, Shom Ponoth, Chih-Chao Yang
  • Patent number: 8789018
    Abstract: Creating metadata for dynamic code in a descriptive metadata language. The method includes obtaining one or more first data structures defining constructs in a body of dynamic language source code. From the one or more first data structures, identifier information is extracted for one or more of the defined constructs. Knowledge about the constructs is augmented. Metadata about the body of the dynamic language source code is provided, with the source code, in a specific metadata format, to a user.
    Type: Grant
    Filed: May 31, 2011
    Date of Patent: July 22, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael C. Fanning, Steven Edward Lucco, Frederico A. Mameri
  • Publication number: 20140189662
    Abstract: Concepts and technologies are described herein for extending the behavior of a software development tool. An extension can be accessed and consumed by a software development tool to configure the software development tool to perform an operation in an extended mode. In one example, an extension can extend a compiler based on the input source code. In one configuration, the compiler extension can provide a compiler with one or more runtime semantics of various source code elements for a particular programming language. The compiler can access an extensions list to determine if the compiler is to perform a compilation operation on a particular source code element or logical unit in an extended mode.
    Type: Application
    Filed: December 31, 2012
    Publication date: July 3, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Frederico A. Mameri, Michael C. Fanning
  • Patent number: 8765585
    Abstract: Each gate structure formed on the substrate includes a gate dielectric, a gate conductor, a first etch stop layer, and a gate cap dielectric. A second etch stop layer is formed over the gate structures, gate spacers, and source and drain regions. A first contact-level dielectric layer and a second contact-level dielectric layer are formed over the second etch stop layer. Gate contact via holes extending at least to the top surface of the gate cap dielectrics are formed. Source/drain contact via holes extending to the interface between the first and second contact-level dielectric layers are subsequently formed. The various contact via holes are vertically extended by simultaneously etching exposed gate cap dielectrics and exposed portions of the first contact-level dielectric layer, then by simultaneously etching the first and second etch stop layers. Source/drain contact vias self-aligned to the outer surfaces gate spacers are thereby formed.
    Type: Grant
    Filed: April 28, 2011
    Date of Patent: July 1, 2014
    Assignee: International Business Machines Corporation
    Inventors: Su C. Fan, David V. Horak, Charles W. Koburger, III, Shom Ponoth, Chih-Chao Yang
  • Publication number: 20140181592
    Abstract: A method for diagnosing declarative source elements in an application, such as in debugging markup source elements or visual elements in an application, is disclosed. Diagnosis information is associated with an object source of a visual element. The diagnosis information is provided for the visual element during the runtime of the application.
    Type: Application
    Filed: December 21, 2012
    Publication date: June 26, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Felix Gerard Torquil Ifor Andrew, Ahmad Khalifa Eesa Ahmad, Michael C. Fanning
  • Publication number: 20140181792
    Abstract: A deployment package descriptor may be obtained. One or more application files that include application content in a plurality of different data formats may be obtained. An analysis of the application content included in the obtained one or more application files may be initiated, based on a plurality of different data formats and descriptive information associated with the obtained application files, the descriptive information included in the obtained deployment package descriptor.
    Type: Application
    Filed: December 20, 2012
    Publication date: June 26, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Michael C. Fanning, Frederico Mameri, Christopher M.H. Faucon
  • Patent number: 8752035
    Abstract: Transforming dynamic code. The method includes obtaining one or more first data structures defining constructs in a body of dynamic language source code. From the one or more first data structures, identifier information is extracted for one or more of the defined constructs. Knowledge about the constructs is augmented. Using the identifier information and augmented knowledge, metadata is generated about the body of the dynamic language source code. The generated metadata is represented as a symbol table. Using the symbol table, the body of dynamic language source code is transformed.
    Type: Grant
    Filed: May 31, 2011
    Date of Patent: June 10, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael C. Fanning, Frederico A. Mameri, Zachary A. Nation
  • Patent number: 8713532
    Abstract: Various technologies and techniques are disclosed for providing a code analysis debugger. A code analysis process is performed to identify possible program defects that are present in particular source code. The results of the code analysis are stored in a results file in a structured format. The structured format contains sections that describe details about the one or more portions of source code that have been identified as possibly having the program defects. The analysis results are retrieved for display. A debugger-like feature allows a user to review a representation of the program defects identified during the code analysis. The debugger-like feature has a graphical user interface that can display at least some of the possible program defects in a call stack for further review.
    Type: Grant
    Filed: January 19, 2007
    Date of Patent: April 29, 2014
    Assignee: Microsoft Corporation
    Inventors: Jeffrey van Gogh, Michael C. Fanning
  • Publication number: 20140109106
    Abstract: Generation of a dependency graph for code that includes code portions such as resources or functions or both. For some or all of the nodes, the dependency is calculated by determining that the given node, a depending node, depends on an affecting node. The dependency is recorded so as to be associated with the node. Furthermore, the dependency calculation method is recorded so as to be associated with the dependency. The code may perhaps include portions within two different domains, in which the mechanism for calculating dependencies may differ. In some cases, the dependency graph may be constructed in stages, and perhaps additional properties may be associated with the node, and metadata of the properties may also be recorded.
    Type: Application
    Filed: October 17, 2012
    Publication date: April 17, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Michael C. Fanning, Christopher M. H. Faucon, Matthew Thornhill Hall, Nachiappan Nagappan, Benjamin Livshits, Magnus Madsen
  • Publication number: 20140082595
    Abstract: Embodiments provided a formalized set of intermediate analysis contexts that are relevant for analysis checks of target code. Such intermediate analysis context may include, but are not limited to, the development phase of targeted code, the type or state of the targeted code, a source manipulating the targeted code, a purpose for the targeted code, or other development or runtime requirements. Accordingly, embodiments dynamically identify a current analysis context under which targeted code is being developed and can then execute rules based on knowledge of what contexts the rule(s) may apply. More specifically, analysis rules can describe (e.g., via metadata) those context conditions under which a rule can run. Based on such description and the current context, those rules that have been configured to apply to such context conditions can be executed.
    Type: Application
    Filed: November 19, 2013
    Publication date: March 20, 2014
    Inventors: Jeffrey Van Gogh, Michael C. Fanning, Sean D. Sandys
  • Publication number: 20140075451
    Abstract: Techniques are described herein that are capable of constructing an inter-process communication channel, for example, between a requesting component and a targeted process. The communication channel may have one or more links, such that each link is defined by a respective node pair in a plurality of nodes. The plurality of nodes includes the requesting component, the targeted process, and optionally one or more intermediate nodes. An attachment request is received via a user interface. The requesting component is attached to the targeted process. For instance, the links may be traversed to discover the targeted process. The communication channel is established. For instance, in each node of a subset of the plurality of nodes, node information may be retained to indicate a next consecutive node of the plurality of nodes to which messages from the requesting component to the targeted process are to be delivered.
    Type: Application
    Filed: September 12, 2012
    Publication date: March 13, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Benjamin J. Anderson, Michael C. Fanning, Timothy S. Rice, Andrew R. Sterland