Patents by Inventor David N. Cutler

David N. Cutler 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: 8024546
    Abstract: Page tables in the last level of a hierarchical page table system are scanned for candidate page tables. Candidate page tables are converted to large pages, having a page table entry in a level before the last level of the hierarchical page table system adjusted to be associated with the newly created large page. Upon receiving a notification that a large page is to be converted into a page table, a new page table is created. Each entry in the new page table is associated with a small segment of memory in the large page and an entry in a page table one level before the last level in a hierarchical page table system is adjusted to be associated with the new page table.
    Type: Grant
    Filed: October 23, 2008
    Date of Patent: September 20, 2011
    Assignee: Microsoft Corporation
    Inventors: Forrest C. Foltz, David N. Cutler
  • Publication number: 20100106930
    Abstract: Page tables in the last level of a hierarchical page table system are scanned for candidate page tables. Candidate page tables are converted to large pages, having a page table entry in a level before the last level of the hierarchical page table system adjusted to be associated with the newly created large page. Upon receiving a notification that a large page is to be converted into a page table, a new page table is created. Each entry in the new page table is associated with a small segment of memory in the large page and an entry in a page table one level before the last level in a hierarchical page table system is adjusted to be associated with the new page table.
    Type: Application
    Filed: October 23, 2008
    Publication date: April 29, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: FORREST C. FOLTZ, DAVID N. CUTLER
  • Patent number: 7634778
    Abstract: In an exemplary media implementation, one or more electronically-accessible media include electronically-executable instructions that utilize an application programming interface, the application programming interface facilitating creation of callback-type dynamic function tables; each callback-type dynamic function table including a begin address, an end address, and a callback function, each callback-type dynamic function table corresponding to a code heap that stores code for multiple functions in a runtime environment; wherein interaction between the runtime environment and an operating system is precipitated upon calling the callback function to acquire exception handling and/or unwind information. In another exemplary media implementation, one or more electronically-accessible media include at least part of an operating system that is configured to request from a runtime environment exception handling and/or unwinding information for functions that are managed by the runtime environment.
    Type: Grant
    Filed: June 26, 2003
    Date of Patent: December 15, 2009
    Assignee: Microsoft Corporation
    Inventors: Scott D. Mosier, Ian H. Carmichael, Lawrence B. Sullivan, James J. Radigan, David N. Cutler
  • Publication number: 20040268370
    Abstract: In an exemplary media implementation, one or more electronically-accessible media include electronically-executable instructions that utilize an application programming interface, the application programming interface facilitating creation of callback-type dynamic function tables; each callback-type dynamic function table including a begin address, an end address, and a callback function, each callback-type dynamic function table corresponding to a code heap that stores code for multiple functions in a runtime environment; wherein interaction between the runtime environment and an operating system is precipitated upon calling the callback function to acquire exception handling and/or unwind information. In another exemplary media implementation, one or more electronically-accessible media include at least part of an operating system that is configured to request from a runtime environment exception handling and/or unwinding information for functions that are managed by the runtime environment.
    Type: Application
    Filed: June 26, 2003
    Publication date: December 30, 2004
    Applicant: MICROSOFT CORPORATION
    Inventors: Scott D. Mosier, Ian H. Carmichael, Lawrence B. Sullivan, James J. Radigan, David N. Cutler
  • Patent number: 6546443
    Abstract: Synchronization services provide a concurrency-safe reader/writer lock supporting a time out feature. The lock can be implemented using lockless data structures to provide efficient synchronization services. Various features such as lock nesting and auto-transformation address common scenarios arising in componentized programs. The lock supports upgrading and suspension, and the time out feature can support an efficient, low-cost optimistic deadlock avoidance scheme. Peculiarities of the reader/writer scenario are addressed in an efficient way to maintain lock stability and consistency, thus providing synchronization services suitable for implementation at the kernel level. In one implementation using event objects, the events are managed for high efficiency and stability of the lock. For multiprocessor machines, a hybrid lock avoids a context switch by behaving as a spin lock before waiting for the lock to become available.
    Type: Grant
    Filed: December 15, 1999
    Date of Patent: April 8, 2003
    Assignee: Microsoft Corporation
    Inventors: Gopala Krishna R. Kakivaya, David N. Cutler, James M. Lyon
  • Patent number: 6223207
    Abstract: A technique for performing multiple simultaneous asynchronous input/output operations in a computer operating system. An input/output completion port object is created and associated with a file descriptor. When I/O services are requested on the file descriptor, completion is indicated by a message queued to the I/O completion port. A process requesting I/O services is not notified of completion of the I/O services, but instead checks the I/O completion port's queue to determine the status of its I/O requests. The I/O completion port manages multiple threads and their concurrency.
    Type: Grant
    Filed: January 13, 1998
    Date of Patent: April 24, 2001
    Assignee: Microsoft Corporation
    Inventors: Mark H. Lucovsky, John D. Vert, David N. Cutler, Darryl E. Havens, Steven R. Wood
  • Patent number: 5758184
    Abstract: A technique for performing multiple simultaneous asynchronous input/output operations in a computer operating system. An input/output completion port object is created and associated with a file descriptor. When I/O services are requested on the file descriptor, completion is indicated by a message queued to the I/O completion port. A process requesting I/O services is not notified of completion of the I/O services, but instead checks the I/O completion port's queue to determine the status of its I/O requests. The I/O completion port manages multiple threads and their concurrency.
    Type: Grant
    Filed: April 24, 1995
    Date of Patent: May 26, 1998
    Assignee: Microsoft Corporation
    Inventors: Mark H. Lucovsky, John D. Vert, David N. Cutler, Darryl E. Havens, Steven R. Wood
  • Patent number: 5752031
    Abstract: A method and system for scheduling the execution of a plurality of threads in a computer system to control the concurrency level. Operating system data structures, called "queue objects," control the number of threads that are concurrently active processing incoming requests to an application program, a server or other processor of requests. The queue objects keep track of how many threads are currently active, and ensure that the number of active threads is at or near a predetermined target level of concurrency. By ensuring that new threads are not added to the pool of active threads if the system is operating at or above the target level of concurrency, the queue objects minimize the number of superfluous context switches that the operating system must perform and thus increases system efficiency and throughput.
    Type: Grant
    Filed: April 24, 1995
    Date of Patent: May 12, 1998
    Assignee: Microsoft Corporation
    Inventors: David N. Cutler, Charles T. Lenzmeier
  • Patent number: 5708814
    Abstract: A peripheral device interrupt controller maintains a count of pending interrupt events for a peripheral device up to a preset limit and times a preset delay interval from a first pending interrupt event or last interrupt servicing before asserting an interrupt request. When the interrupt request is asserted, the then pending interrupt events can be serviced as a group by a central processing unit of a computer. The overhead of processing a separate interrupt request for each interrupt event is thus avoided. The preset limit and preset delay interval can be set under software control to control the rate at which interrupt requests can be asserted by the peripheral device.
    Type: Grant
    Filed: November 21, 1995
    Date of Patent: January 13, 1998
    Assignee: Microsoft Corporation
    Inventors: Robert T. Short, John M. Parchem, David N. Cutler
  • Patent number: 5598562
    Abstract: An object based operating system for a multitasking computer system provides objects which represent the architecture or interrelationships of the system's resources. Access to certain objects is required in order to use corresponding resources in the system. All objects have a consistent data structure, and a consistent method of defining the operations which apply to each type of object. As a result, it is relatively easy to add new types of system objects to the operating system. Waitable objects are used to synchronize the operation of one or more processes with one another or with specified events. The system provides routines for generating new types of waitable objects, and thereby generating a modified operating system, without modifying other aspects of the operating system's kernel.
    Type: Grant
    Filed: March 1, 1994
    Date of Patent: January 28, 1997
    Assignee: Digital Equipment Corporation
    Inventors: David N. Cutler, James W. Kelly, Jr., Frank L. Perazzoli, Jr.
  • Patent number: 5341482
    Abstract: An instruction eases exception handling in a data processing system having one or more parallel pipelined execution units by permitting the central processing unit to complete instructions currently being processed by the execution units, but preventing further instructions from being initiated until all currently executing instructions have been completed and all outstanding exception conditions have been resolved. After all the instructions preceding the DRAIN instruction of the present invention in the program instruction sequence have been executed, the central processing unit can continue to execute the sequential program instructions when no arithmetic exception has been identified, or can invoke an exception handling procedure when an arithmetic exception has been identified. The instruction is typically positioned in an instruction sequence after an instruction that has high degree of probability of resulting in the identification of an arithmetic exception condition.
    Type: Grant
    Filed: December 22, 1992
    Date of Patent: August 23, 1994
    Assignee: Digital Equipment Corporation
    Inventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
  • Patent number: 5317717
    Abstract: In a data processing system, apparatus and method for controlling the type of processing to which data signal groups can be subjected includes a page table entry format having a multiplicity of field positions for storing signals defining page access rights. In addition to the read/write access control, the signal group access rights can be determined by the current mode of operation of the data processing unit and the intended activity of the addressed instruction or data element (i.e., read, write or execute).
    Type: Grant
    Filed: August 20, 1992
    Date of Patent: May 31, 1994
    Assignee: Digital Equipment Corp.
    Inventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
  • Patent number: 5297283
    Abstract: An object based operating system for a multitasking computer system provides objects which represent the architecture or interrelationships of the system's resources. Access to certain objects is required in order to use corresponding resources in the system. All objects have a consistent data structure, and a consistent method of defining the operations which apply to each type of object. As a result, it is relatively easy to add new types of system objects to the operating system. The object based operating system supports multiple levels of visibility, allowing objects to be operated on only by processes with the object's range of visibility. This allows objects to be made private to a process, shared by all processes within a job, or visible to all processes within the system. An object or an entire set of objects can be moved to a higher visibility level when objects need to be shared.
    Type: Grant
    Filed: October 16, 1992
    Date of Patent: March 22, 1994
    Assignee: Digital Equipment Corporation
    Inventors: James W. Kelly, Jr., Frank L. Perazzoli, Jr., David N. Cutler
  • Patent number: 5291581
    Abstract: In a multiprocessor data processing unit, a data element in the main memory unit, that has system wide significance, can have a requirement that this data element be altered in a controlled manner. Because other data processing units can have access to this data element, the alteration of the data element must be synchronized so the other data processing units are not in the process of altering the same data element simultaneously. The present invention includes an instruction that acquires access to an interlock signal in the main memory unit and initiates an interlock in the main memory unit, thereby excluding other data processing units from gaining access to the interlock signal simultaneously. The instruction causes the data element related to the interlock signal to be transferred to the data processing unit where the data element is saved, can be entered in mask apparatus and then have a quantity added thereto.
    Type: Grant
    Filed: February 28, 1992
    Date of Patent: March 1, 1994
    Assignee: Digital Equipment Corporation
    Inventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
  • Patent number: 5278840
    Abstract: In a data processing system, an instruction is disclosed that generates a fault when a predetermined register position (e.g., the low or least significant bit position) has a predetermined logic signal (e.g., a logic `0` signal). This instruction provides a mechanism to determine when a Boolean value indicates a presence of a fault condition and provides a mechanism to generate the fault when present. For example, in arrays of memory locations that can be addressed by a program, this instruction can respond to the presence of an array address (or reference) that is outside the prescribed bounds of the array. When an invalid address is identified, a signal is entered in the low (i.e., least significant) bit position of a processor scalar register.
    Type: Grant
    Filed: January 15, 1993
    Date of Patent: January 11, 1994
    Assignee: Digital Equipment Corporation
    Inventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
  • Patent number: 5218712
    Abstract: In a data processing system employing microcode techniques, complex sequences of microinstructions can be initiated by application of a single macroinstruction. These complex sequences of microinstructions are typically noninterruptible and therefore the execution of a macroinstruction is atomic (i.e., executed as a single entity). Data processing systems that do not employ microcode typically have simpler macroinstruction sets that do not provide for a similar atomicity for complex instruction sequences.
    Type: Grant
    Filed: July 11, 1990
    Date of Patent: June 8, 1993
    Assignee: Digital Equipment Corporation
    Inventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
  • Patent number: 5148544
    Abstract: In a data procesing system having a kernel mode (i.e., for executing privileged instructions) and a user mode of operation, apparatus for responding to interrupt conditions includes a first register, subject to the control of the currently executing program for enabling the generation of a mode-related interrupt signal and includes a second register for indicating the presence of a pending mode-related interrupt condition and a third register for requesting a mode-related interrupt be entered in the second register. The mode of operation and the enable and pending interrupt condition registers are monitored and when the signals in the two registers have the appropriate relationship, an interrupt signal is generated to which a control program will respond. The contents of the first register can be controlled by the currently executing program which can control the enabling signal for the currently executing mode.
    Type: Grant
    Filed: May 17, 1991
    Date of Patent: September 15, 1992
    Assignee: Digital Equipment Corporation
    Inventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
  • Patent number: 5136712
    Abstract: An object based operating system for a multitasking computer system provides objects which represent the architecture or interrelationships of the system's resources. Access to certain objects is required in order to use corresponding resources in the system. All objects have a consistent data structure, and a consistent method of defining the operations which apply to each type of object. As a result, it is relatively easy to add new types of system objects to the operating system. The object based operating system supports multiple levels of visibility, allowing objects to be operated on only by processes with the object's range of visibility. This allows objects to be made private to a process, shared by all processes within a job, or visible to all processes within the system. An object or an entire set of objects can be moved to a higher visibility level when objects need to be shared.
    Type: Grant
    Filed: June 29, 1989
    Date of Patent: August 4, 1992
    Assignee: Digital Equipment Corporation
    Inventors: Frank L. Perazzoli, Jr., David N. Cutler, James W. Kelly, Jr.
  • Patent number: 5132925
    Abstract: A radix-16 divider, generally including two improved radix-4 dividers cascaded combinatorially, also utilizes improved overlapping quotient bit selection, together with concurrent quotient bit selection and rounding techniques, to produce four bits of quotient per divider cycle with reduced hardware requirements.
    Type: Grant
    Filed: October 24, 1990
    Date of Patent: July 21, 1992
    Assignee: Digital Equipment Corporation
    Inventors: Theodore H. Kehl, David N. Cutler
  • Patent number: 5129083
    Abstract: An object based operating system for a multitasking computer system provides objects which represent the architecture or interrelationships of the systems's resources. Access to certain objects is required in order to use corresponding resources in the system. All objects have a consistent data structure, and a consistent method of defining the operations which apply to each type of object. As a result it is relatively easy to add new types of system objects to the operating system. The object based operating system supports multiple levels of visibility, allowing objects to be operated on only by processes with the object's range of visibility. This allows objects to be made private to a process, shared by all processes within a job, or visible to all processes within the system. An object or an enitre set of objects can be moved to a higher visibility level when objects need to be shared.
    Type: Grant
    Filed: June 29, 1989
    Date of Patent: July 7, 1992
    Assignee: Digital Equipment Corporation
    Inventors: David N. Cutler, James W. Kelly, Jr., Frank L. Perazzoli, Jr.