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: 8024546Abstract: 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: GrantFiled: October 23, 2008Date of Patent: September 20, 2011Assignee: Microsoft CorporationInventors: Forrest C. Foltz, David N. Cutler
-
Publication number: 20100106930Abstract: 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: ApplicationFiled: October 23, 2008Publication date: April 29, 2010Applicant: MICROSOFT CORPORATIONInventors: FORREST C. FOLTZ, DAVID N. CUTLER
-
Patent number: 7634778Abstract: 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: GrantFiled: June 26, 2003Date of Patent: December 15, 2009Assignee: Microsoft CorporationInventors: Scott D. Mosier, Ian H. Carmichael, Lawrence B. Sullivan, James J. Radigan, David N. Cutler
-
Publication number: 20040268370Abstract: 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: ApplicationFiled: June 26, 2003Publication date: December 30, 2004Applicant: MICROSOFT CORPORATIONInventors: Scott D. Mosier, Ian H. Carmichael, Lawrence B. Sullivan, James J. Radigan, David N. Cutler
-
Patent number: 6546443Abstract: 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: GrantFiled: December 15, 1999Date of Patent: April 8, 2003Assignee: Microsoft CorporationInventors: Gopala Krishna R. Kakivaya, David N. Cutler, James M. Lyon
-
Patent number: 6223207Abstract: 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: GrantFiled: January 13, 1998Date of Patent: April 24, 2001Assignee: Microsoft CorporationInventors: Mark H. Lucovsky, John D. Vert, David N. Cutler, Darryl E. Havens, Steven R. Wood
-
Patent number: 5758184Abstract: 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: GrantFiled: April 24, 1995Date of Patent: May 26, 1998Assignee: Microsoft CorporationInventors: Mark H. Lucovsky, John D. Vert, David N. Cutler, Darryl E. Havens, Steven R. Wood
-
Patent number: 5752031Abstract: 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: GrantFiled: April 24, 1995Date of Patent: May 12, 1998Assignee: Microsoft CorporationInventors: David N. Cutler, Charles T. Lenzmeier
-
Patent number: 5708814Abstract: 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: GrantFiled: November 21, 1995Date of Patent: January 13, 1998Assignee: Microsoft CorporationInventors: Robert T. Short, John M. Parchem, David N. Cutler
-
Patent number: 5598562Abstract: 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: GrantFiled: March 1, 1994Date of Patent: January 28, 1997Assignee: Digital Equipment CorporationInventors: David N. Cutler, James W. Kelly, Jr., Frank L. Perazzoli, Jr.
-
Patent number: 5341482Abstract: 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: GrantFiled: December 22, 1992Date of Patent: August 23, 1994Assignee: Digital Equipment CorporationInventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
-
Patent number: 5317717Abstract: 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: GrantFiled: August 20, 1992Date of Patent: May 31, 1994Assignee: Digital Equipment Corp.Inventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
-
Patent number: 5297283Abstract: 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: GrantFiled: October 16, 1992Date of Patent: March 22, 1994Assignee: Digital Equipment CorporationInventors: James W. Kelly, Jr., Frank L. Perazzoli, Jr., David N. Cutler
-
Patent number: 5291581Abstract: 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: GrantFiled: February 28, 1992Date of Patent: March 1, 1994Assignee: Digital Equipment CorporationInventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
-
Patent number: 5278840Abstract: 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: GrantFiled: January 15, 1993Date of Patent: January 11, 1994Assignee: Digital Equipment CorporationInventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
-
Patent number: 5218712Abstract: 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: GrantFiled: July 11, 1990Date of Patent: June 8, 1993Assignee: Digital Equipment CorporationInventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
-
Patent number: 5148544Abstract: 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: GrantFiled: May 17, 1991Date of Patent: September 15, 1992Assignee: Digital Equipment CorporationInventors: David N. Cutler, David A. Orbits, Dileep Bhandarkar, Wayne Cardoza, Richard T. Witek
-
Patent number: 5136712Abstract: 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: GrantFiled: June 29, 1989Date of Patent: August 4, 1992Assignee: Digital Equipment CorporationInventors: Frank L. Perazzoli, Jr., David N. Cutler, James W. Kelly, Jr.
-
Patent number: 5132925Abstract: 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: GrantFiled: October 24, 1990Date of Patent: July 21, 1992Assignee: Digital Equipment CorporationInventors: Theodore H. Kehl, David N. Cutler
-
Patent number: 5129083Abstract: 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: GrantFiled: June 29, 1989Date of Patent: July 7, 1992Assignee: Digital Equipment CorporationInventors: David N. Cutler, James W. Kelly, Jr., Frank L. Perazzoli, Jr.