Patents by Inventor James Larus
James Larus 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: 9558040Abstract: A memory management system is described herein that receives information from applications describing how memory is being used and that allows an application host to exert more control over application requests for using memory. The system provides an application memory management application-programming interface (API) that allows the application to specify more information about memory allocations that is helpful for managing memory later. The system also provides an ability to statically and/or dynamically analyze legacy applications to give applications that are not modified to work with the system some ability to participate in more effective memory management. The system provides application host changes to leverage the information provided by applications and to manage memory more effectively using the information and hooks into the application's use of memory.Type: GrantFiled: June 20, 2011Date of Patent: January 31, 2017Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Steven Maillet, Michael Hall, James Larus, Jeremiah C. Spradlin
-
Patent number: 8898652Abstract: Various technologies and techniques are disclosed for providing a hardware accelerated software transactional memory application. The software transactional memory application has access to metadata in a cache of a central processing unit that can be used to improve the operation of the STM system. For example, open read barrier filtering is provided that uses an opened-for-read bit that is contained in the metadata to avoid redundant open read processing. Similarly, redundant read log validation can be avoided using the metadata. For example, upon entering commit processing for a particular transaction, a get-evictions instruction in an instruction set architecture of the central processing unit is invoked. A retry operation can be optimized using the metadata. The particular transaction is aborted at a current point and put to sleep. The corresponding cache line metadata in the metadata are marked appropriately to efficiently detect a write by another CPU.Type: GrantFiled: June 8, 2007Date of Patent: November 25, 2014Assignee: Microsoft CorporationInventors: Jan Gray, Timothy L. Harris, James Larus, Burton Smith
-
Patent number: 8813052Abstract: Various technologies and techniques are disclosed for providing a bounded transactional memory application that accesses cache metadata in a cache of a central processing unit. When performing a transactional read from the bounded transactional memory application, a cache line metadata transaction-read bit is set. When performing a transactional write from the bounded transactional memory application, a cache line metadata transaction-write bit is set and a conditional store is performed. At commit time, if any lines marked with the transaction-read bit or the transaction-write bit were evicted or invalidated, all speculatively written lines are discarded. The application can also interrogate a cache line metadata eviction summary to determine whether a transaction is doomed and then take an appropriate action.Type: GrantFiled: June 8, 2007Date of Patent: August 19, 2014Assignee: Microsoft CorporationInventors: Jan Gray, Timothy L. Harris, James Larus, Burton Smith
-
Patent number: 8386836Abstract: Embodiments are described for managing memory faults. An example system can include a memory controller module to manage memory cells and report memory faults. An error buffer module can store memory fault information received from the memory controller. A notification module can be in communication with the error buffer module. The notification module may generate a notification of a memory fault in a memory access operation. A system software module can provide services and manage executing programs on a processor. In addition, the system software module can receive the notifications of the memory fault for the memory access operation. A notification handler may be activated by an interrupt when the notification of the memory fault in the memory access operation is received.Type: GrantFiled: May 7, 2012Date of Patent: February 26, 2013Assignee: Microsoft CorporationInventors: Doug Burger, James Larus, Karin Strauss, Jeremy Condit
-
Publication number: 20120324196Abstract: A memory management system is described herein that receives information from applications describing how memory is being used and that allows an application host to exert more control over application requests for using memory. The system provides an application memory management application-programming interface (API) that allows the application to specify more information about memory allocations that is helpful for managing memory later. The system also provides an ability to statically and/or dynamically analyze legacy applications to give applications that are not modified to work with the system some ability to participate in more effective memory management. The system provides application host changes to leverage the information provided by applications and to manage memory more effectively using the information and hooks into the application's use of memory.Type: ApplicationFiled: June 20, 2011Publication date: December 20, 2012Applicant: MICROSOFT CORPORATIONInventors: Steven Maillet, Michael Hall, James Larus, Jeremiah C. Spradlin
-
Publication number: 20120221905Abstract: Embodiments are described for managing memory faults. An example system can include a memory controller module to manage memory cells and report memory faults. An error buffer module can store memory fault information received from the memory controller. A notification module can be in communication with the error buffer module. The notification module may generate a notification of a memory fault in a memory access operation. A system software module can provide services and manage executing programs on a processor. In addition, the system software module can receive the notifications of the memory fault for the memory access operation. A notification handler may be activated by an interrupt when the notification of the memory fault in the memory access operation is received.Type: ApplicationFiled: May 7, 2012Publication date: August 30, 2012Applicant: MICROSOFT CORPORATIONInventors: Doug Burger, James Larus, Karin Strauss, Jeremy Condit
-
Patent number: 8225297Abstract: Various technologies and techniques are disclosed for providing software accessible metadata on a cache of a central processing unit. A multiprocessor has at least one central processing unit. The central processing unit has a cache with cache lines that are augmented by cache metadata. The cache metadata includes software-controlled metadata identifiers that allow multiple logical processors to share the cache metadata. The metadata identifiers and cache metadata can then be used to accelerate various operations. For example, parallel computations can be accelerated using cache metadata and metadata identifiers. As another example, nested computations can be accelerated using metadata identifiers and cache metadata. As yet another example, transactional memory applications that include parallelism within transactions or that include nested transactions can be also accelerated using cache metadata and metadata identifiers.Type: GrantFiled: August 6, 2007Date of Patent: July 17, 2012Assignee: Microsoft CorporationInventors: Jan Gray, Timothy L. Harris, James Larus, Burton Smith
-
Patent number: 8225119Abstract: The described implementations relate to energy-aware server management. One implementation involves an adaptive control unit configured to manage energy usage in a server farm by transitioning individual servers between active and inactive states while maintaining response times for the server farm at a predefined level.Type: GrantFiled: February 23, 2009Date of Patent: July 17, 2012Assignee: Microsoft CorporationInventors: Navendu Jain, Charles J. Williams, James Larus, Dan Reed
-
Patent number: 8201024Abstract: Embodiments are described for managing memory faults. An example system can include a memory controller module to manage memory cells and report memory faults. An error buffer module can store memory fault information received from the memory controller. A notification module can be in communication with the error buffer module. The notification module may generate a notification of a memory fault in a memory access operation. A system software module can provide services and manage executing programs on a processor. In addition, the system software module can receive the notifications of the memory fault for the memory access operation. A notification handler may be activated by an interrupt when the notification of the memory fault in the memory access operation is received.Type: GrantFiled: May 17, 2010Date of Patent: June 12, 2012Assignee: Microsoft CorporationInventors: Doug Burger, James Larus, Karin Strauss, Jeremy Condit
-
Patent number: 8001538Abstract: Various technologies and techniques are disclosed for providing software accessible metadata on a cache of a central processing unit. The metadata can include at least some bits for each virtual address, at least some bits for each cache line, and at least some bits for the cache overall. An instruction set architecture on the central processing unit is provided that includes additional instructions for interacting with the metadata. New side effects that are introduced into an operation of the central processing unit by a presence of the metadata and the additional instructions. The metadata can be accessed by at least one software program to facilitate an operation of the software program.Type: GrantFiled: June 8, 2007Date of Patent: August 16, 2011Assignee: Microsoft CorporationInventors: Jan Gray, Timothy L. Harris, James Larus, Burton Smith
-
Publication number: 20100218005Abstract: The described implementations relate to energy-aware server management. One implementation involves an adaptive control unit configured to manage energy usage in a server farm by transitioning individual servers between active and inactive states while maintaining response times for the server farm at a predefined level.Type: ApplicationFiled: February 23, 2009Publication date: August 26, 2010Applicant: MICROSOFT CORPORATIONInventors: Navendu Jain, CJ Williams, James Larus, Dan Reed
-
Publication number: 20080040551Abstract: Various technologies and techniques are disclosed for providing software accessible metadata on a cache of a central processing unit. A multiprocessor has at least one central processing unit. The central processing unit has a cache with cache lines that are augmented by cache metadata. The cache metadata includes software-controlled metadata identifiers that allow multiple logical processors to share the cache metadata. The metadata identifiers and cache metadata can then be used to accelerate various operations. For example, parallel computations can be accelerated using cache metadata and metadata identifiers. As another example, nested computations can be accelerated using metadata identifiers and cache metadata. As yet another example, transactional memory applications that include parallelism within transactions or that include nested transactions can be also accelerated using cache metadata and metadata identifiers.Type: ApplicationFiled: August 6, 2007Publication date: February 14, 2008Applicant: Microsoft CorporationInventors: Jan Gray, Timothy Harris, James Larus, Burton Smith
-
Publication number: 20070245099Abstract: Various technologies and techniques are disclosed for providing a bounded transactional memory application that accesses cache metadata in a cache of a central processing unit. When performing a transactional read from the bounded transactional memory application, a cache line metadata transaction-read bit is set. When performing a transactional write from the bounded transactional memory application, a cache line metadata transaction-write bit is set and a conditional store is performed. At commit time, if any lines marked with the transaction-read bit or the transaction-write bit were evicted or invalidated, all speculatively written lines are discarded. The application can also interrogate a cache line metadata eviction summary to determine whether a transaction is doomed and then take an appropriate action.Type: ApplicationFiled: June 8, 2007Publication date: October 18, 2007Applicant: Microsoft CorporationInventors: Jan Gray, Timothy Harris, James Larus, Burton Smith
-
Publication number: 20070245128Abstract: Various technologies and techniques are disclosed for providing a hardware accelerated software transactional memory application. The software transactional memory application has access to metadata in a cache of a central processing unit that can be used to improve the operation of the STM system. For example, open read barrier filtering is provided that uses an opened-for-read bit that is contained in the metadata to avoid redundant open read processing. Similarly, redundant read log validation can be avoided using the metadata. For example, upon entering commit processing for a particular transaction, a get-evictions instruction in an instruction set architecture of the central processing unit is invoked. A retry operation can be optimized using the metadata. The particular transaction is aborted at a current point and put to sleep. The corresponding cache line metadata in the metadata are marked appropriately to efficiently detect a write by another CPU.Type: ApplicationFiled: June 8, 2007Publication date: October 18, 2007Applicant: Microsoft CorporationInventors: Jan Gray, Timothy Harris, James Larus, Burton Smith
-
Publication number: 20070245309Abstract: Various technologies and techniques are disclosed for providing software accessible metadata on a cache of a central processing unit. The metadata can include at least some bits for each virtual address, at least some bits for each cache line, and at least some bits for the cache overall. An instruction set architecture on the central processing unit is provided that includes additional instructions for interacting with the metadata. New side effects that are introduced into an operation of the central processing unit by a presence of the metadata and the additional instructions. The metadata can be accessed by at least one software program to facilitate an operation of the software program.Type: ApplicationFiled: June 8, 2007Publication date: October 18, 2007Applicant: Microsoft CorporationInventors: Jan Gray, Timothy Harris, James Larus, Burton Smith
-
Publication number: 20070094673Abstract: Described herein are one or more implementations for describing and/or addressing the configuration requirements of applications, extensions, device drivers, and other components of a software system.Type: ApplicationFiled: June 30, 2006Publication date: April 26, 2007Applicant: Microsoft CorporationInventors: Galen Hunt, James Larus, Manuel Fanndrich, Orion Hodson, Steven Levi, Bjarne Steensgaard, David Tarditi, Michael Spear, Michael Carbin
-
Publication number: 20070094495Abstract: Described herein are one or more implementations of an operating system that provides for statically verifiable inter-process communication between isolated processes. Also, described herein are one or more implementations of programming tools that facilitate the development of statically verifiable isolated processes having inter-process communication.Type: ApplicationFiled: June 30, 2006Publication date: April 26, 2007Applicant: Microsoft CorporationInventors: Galen Hunt, James Larus, Martin Abadi, Mark Aiken, Paul Barham, Manuel Fahndrich, Chris Hawblitzel, Orion Hodson, Steven Levi, Nicholas Murphy, Bjarne Steensgaard, David Tarditi, Edward Wobber, Brian Zill
-
Publication number: 20070011199Abstract: Described herein are one or more computer operating environments that include a standard set of web services via a communications network (e.g., the Internet) and a mechanism for extending the standard set of web services to execute one or more extended web services. Since these extended web services may be produced by an unconfirmed or untrusted source (e.g., a third-party software developer), the described computer operating environments isolate the extended web services from the standard set of web services and from the communication network. Furthermore, each extended web service is an isolated process (isoproc) with a limited ability to communicate with other services. In particular, each isoproc's ability to communicate is limited to only associated defined communication channels over which it has express permission to communicate.Type: ApplicationFiled: December 15, 2005Publication date: January 11, 2007Applicant: Microsoft CorporationInventors: Galen Hunt, James Larus, Alexander Gounares, Raymond Endres
-
Publication number: 20060123412Abstract: Described herein is at least one implementation employing multiple self-describing software artifacts persisted on one or more computer-storage media of a software-based computer. In this implementation, each artifact is representative of at least part of the software components (e.g., load modules, processes, applications, and operating system components) of the computing system and each artifact is described by at least one associated “manifest,” which include metadata declarative descriptions of the associated artifact.Type: ApplicationFiled: December 7, 2004Publication date: June 8, 2006Applicant: Microsoft CorporationInventors: Galen Hunt, Thomas Roeder, James Larus, Manuel Fahndrich, John DeTreville, Steven Levi, Benjamin Zorn, Wolfgang Grieskamp
-
Publication number: 20060123430Abstract: Described herein is an implementation of a technology for the construction, identification, and/or optimization of operating-system processes. At least one implementation, described herein, constructs an operating-system process having the contents as defined by a process manifest. Once constructed, the operating-system process is unalterable.Type: ApplicationFiled: April 29, 2005Publication date: June 8, 2006Applicant: Microsoft CorporationInventors: Galen Hunt, James Larus, John DeTreville, Edward Wobber, Martin Abadi, Michael Jones, Trishul Chilimbi