Patents by Inventor James M. Magee

James M. Magee 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: 20180349176
    Abstract: Systems and methods are disclosed for scheduling threads on a processor that has at least two different core types, such as an asymmetric multiprocessing system. Each core type can run at a plurality of selectable voltage and frequency scaling (DVFS) states. Threads from a plurality of processes can be grouped into thread groups. Execution metrics are accumulated for threads of a thread group and fed into a plurality of tunable controllers for the thread group. A closed loop performance control (CLPC) system determines a control effort for the thread group and maps the control effort to a recommended core type and DVFS state. A closed loop thermal and power management system can limit the control effort determined by the CLPC for a thread group, and limit the power, core type, and DVFS states for the system. Deferred interrupts can be used to increase performance.
    Type: Application
    Filed: January 12, 2018
    Publication date: December 6, 2018
    Inventors: Jeremy C. Andrus, John G. Dorsey, James M. Magee, Daniel A. Chimene, Cyril de la Cropte de Chanterac, Bryan R. Hinch, Aditya Venkataraman, Andrei Dorofeev, Nigel R. Gamble, Russell A. Blaine, Constantin Pistol
  • Publication number: 20180349186
    Abstract: Systems and methods are disclosed for scheduling threads on a processor that has at least two different core types, such as an asymmetric multiprocessing system. Each core type can run at a plurality of selectable voltage and frequency scaling (DVFS) states. Threads from a plurality of processes can be grouped into thread groups. Execution metrics are accumulated for threads of a thread group and fed into a plurality of tunable controllers for the thread group. A closed loop performance control (CLPC) system determines a control effort for the thread group and maps the control effort to a recommended core type and DVFS state. A closed loop thermal and power management system can limit the control effort determined by the CLPC for a thread group, and limit the power, core type, and DVFS states for the system. Deferred interrupts can be used to increase performance.
    Type: Application
    Filed: January 12, 2018
    Publication date: December 6, 2018
    Inventors: Jeremy C. Andrus, John G. Dorsey, James M. Magee, Daniel A. Chimene, Cyril de la Cropte de Chanterac, Bryan R. Hinch, Aditya Venkataraman, Andrei Dorofeev, Nigel R. Gamble, Russell A. Blaine, Constantin Pistol
  • Publication number: 20180349175
    Abstract: Systems and methods are disclosed for scheduling threads on a processor that has at least two different core types, such as an asymmetric multiprocessing system. Each core type can run at a plurality of selectable voltage and frequency scaling (DVFS) states. Threads from a plurality of processes can be grouped into thread groups. Execution metrics are accumulated for threads of a thread group and fed into a plurality of tunable controllers for the thread group. A closed loop performance control (CLPC) system determines a control effort for the thread group and maps the control effort to a recommended core type and DVFS state. A closed loop thermal and power management system can limit the control effort determined by the CLPC for a thread group, and limit the power, core type, and DVFS states for the system. Deferred interrupts can be used to increase performance.
    Type: Application
    Filed: January 12, 2018
    Publication date: December 6, 2018
    Inventors: Jeremy C. Andrus, John G. Dorsey, James M. Magee, Daniel A. Chimene, Cyril de la Cropte de Chanterac, Bryan R. Hinch, Aditya Venkataraman, Andrei Dorofeev, Nigel R. Gamble, Russell A. Blaine, Constantin Pistol, James S. Ismail
  • Publication number: 20180349209
    Abstract: Techniques are disclosed relating to efficiently handling execution of multiple threads to perform various actions. In some embodiments, an application instantiates a queue and a synchronization primitive. The queue maintains a set of work items to be operated on by a thread pool maintained by a kernel. The synchronization primitive controls access to the queue by a plurality of threads including threads of the thread pool. In such an embodiment, a first thread of the application enqueues a work item in the queue and issues a system call to the kernel to request that the kernel dispatch a thread of the thread pool to operate on the first work item. In various embodiments, the dispatched thread is executable to acquire the synchronization primitive, dequeue the work item, and operate on it.
    Type: Application
    Filed: December 8, 2017
    Publication date: December 6, 2018
    Inventors: Daniel A. Steffen, Pierre Habouzit, Daniel A. Chimene, Jeremy C. Andrus, James M. Magee, Puja Gupta
  • Publication number: 20180349182
    Abstract: Systems and methods are disclosed for scheduling threads on a processor that has at least two different core types, such as an asymmetric multiprocessing system. Each core type can run at a plurality of selectable voltage and frequency scaling (DVFS) states. Threads from a plurality of processes can be grouped into thread groups. Execution metrics are accumulated for threads of a thread group and fed into a plurality of tunable controllers for the thread group. A closed loop performance control (CLPC) system determines a control effort for the thread group and maps the control effort to a recommended core type and DVFS state. A closed loop thermal and power management system can limit the control effort determined by the CLPC for a thread group, and limit the power, core type, and DVFS states for the system. Deferred interrupts can be used to increase performance.
    Type: Application
    Filed: January 12, 2018
    Publication date: December 6, 2018
    Inventors: Jeremy C. Andrus, John G. Dorsey, James M. Magee, Daniel A. Chimene, Cyril de la Cropte de Chanterac, Bryan R. Hinch, Aditya Venkataraman, Andrei Dorofeev, Nigel R. Gamble, Russell A. Blaine, Constantin Pistol
  • Patent number: 10140157
    Abstract: Techniques for scheduling threads for execution in a data processing system are described herein. According to one embodiment, in response to a request for executing a thread, a scheduler of an operating system of the data processing system accesses a global run queue to identify a global run entry associated with the highest process priority. The global run queue includes multiple global run entries, each corresponding to one of a plurality of process priorities. A group run queue is identified based on the global run entry, where the group run queue includes multiple threads associated with one of the processes. The scheduler dispatches one of the threads that has the highest thread priority amongst the threads in the group run queue to one of the processor cores of the data processing system for execution.
    Type: Grant
    Filed: May 29, 2014
    Date of Patent: November 27, 2018
    Assignee: Apple Inc.
    Inventors: Russell A. Blaine, Daniel A. Chimene, Shantonu Sen, James M. Magee
  • Patent number: 9286120
    Abstract: A method for resource management of a data processing system is described. According to one embodiment, a request is received via a programming interface from a program to modify a resource budget assigned to the program, where the resource budget specifies an amount of resources of the data processing system the program can utilize during an execution of the program. It is determined whether the program is entitled to modify the resource budget based on entitlement associated with the program. The resource budget for the program is modified if it is determined the program is entitled to modify the resource budget and the modified resource budget is enforced against the program during the execution of the program.
    Type: Grant
    Filed: August 30, 2012
    Date of Patent: March 15, 2016
    Assignee: Apple Inc.
    Inventors: James M. Magee, Russell A. Blaine, Umesh S. Vaishampayan
  • Publication number: 20150347192
    Abstract: Techniques for scheduling threads for execution in a data processing system are described herein. According to one embodiment, in response to a request for executing a thread, a scheduler of an operating system of the data processing system accesses a global run queue to identify a global run entry associated with the highest process priority. The global run queue includes multiple global run entries, each corresponding to one of a plurality of process priorities. A group run queue is identified based on the global run entry, where the group run queue includes multiple threads associated with one of the processes. The scheduler dispatches one of the threads that has the highest thread priority amongst the threads in the group run queue to one of the processor cores of the data processing system for execution.
    Type: Application
    Filed: May 29, 2014
    Publication date: December 3, 2015
    Applicant: Apple Inc.
    Inventors: Russell A. Blaine, Daniel A. Chimene, Shantonu Sen, James M. Magee
  • Publication number: 20130332936
    Abstract: A method for resource management of a data processing system is described. According to one embodiment, a request is received via a programming interface from a program to modify a resource budget assigned to the program, where the resource budget specifies an amount of resources of the data processing system the program can utilize during an execution of the program. It is determined whether the program is entitled to modify the resource budget based on entitlement associated with the program. The resource budget for the program is modified if it is determined the program is entitled to modify the resource budget and the modified resource budget is enforced against the program during the execution of the program.
    Type: Application
    Filed: August 30, 2012
    Publication date: December 12, 2013
    Inventors: James M. Magee, Russell A. Blaine, Umesh S. Vaishampayan
  • Patent number: 8516198
    Abstract: A method and an apparatus for determining a usage level of a memory device to notify a running application to perform memory reduction operations selected based on the memory usage level are described. An application calls APIs (Application Programming Interface) integrated with the application codes in the system to perform memory reduction operations. A memory usage level is determined according to a memory usage status received from the kernel of a system. A running application is associated with application priorities ranking multiple running applications statically or dynamically. Selecting memory reduction operations and notifying a running application are based on application priorities. Alternatively, a running application may determine a mode of operation to directly reduce memory usage in response to a notification for reducing memory usage without using API calls to other software.
    Type: Grant
    Filed: October 21, 2010
    Date of Patent: August 20, 2013
    Assignee: Apple Inc.
    Inventors: Matt Watson, James M. Magee
  • Patent number: 8392925
    Abstract: A method and apparatus which maintain a plurality of counters to synchronize a plurality of requests for a lock independent of interlocks. The plurality of counters include a lock counter and an unlock counter. The requests wait in a wait queue maintained separately from the counters without direct access between the counters and the wait queue. The lock counter indicates a cumulative number of lock requests to acquire the lock. The unlock counter indicates a cumulative number of unlock requests to release the lock acquired. One or more requests waiting for the lock are selected according to the counters to be granted with the lock when the lock is released. A request corresponds to a task performing synchronized operations when granted with the lock.
    Type: Grant
    Filed: March 26, 2009
    Date of Patent: March 5, 2013
    Assignee: Apple Inc.
    Inventors: Ananthakrishna Ramesh, James M. Magee
  • Publication number: 20110035554
    Abstract: A method and an apparatus for determining a usage level of a memory device to notify a running application to perform memory reduction operations selected based on the memory usage level are described. An application calls APIs (Application Programming Interface) integrated with the application codes in the system to perform memory reduction operations. A memory usage level is determined according to a memory usage status received from the kernel of a system. A running application is associated with application priorities ranking multiple running applications statically or dynamically. Selecting memory reduction operations and notifying a running application are based on application priorities. Alternatively, a running application may determine a mode of operation to directly reduce memory usage in response to a notification for reducing memory usage without using API calls to other software.
    Type: Application
    Filed: October 21, 2010
    Publication date: February 10, 2011
    Inventors: Matt Watson, James M. Magee
  • Patent number: 7827358
    Abstract: A method and an apparatus for determining a usage level of a memory device to notify a running application to perform memory reduction operations selected based on the memory usage level are described. An application calls APIs (Application Programming Interface) integrated with the application codes in the system to perform memory reduction operations. A memory usage level is determined according to a memory usage status received from the kernel of a system. A running application is associated with application priorities ranking multiple running applications statically or dynamically. Selecting memory reduction operations and notifying a running application are based on application priorities. Alternatively, a running application may determine a mode of operation to directly reduce memory usage in response to a notification for reducing memory usage without using API calls to other software.
    Type: Grant
    Filed: January 7, 2007
    Date of Patent: November 2, 2010
    Assignee: Apple Inc.
    Inventors: Matt Watson, James M. Magee
  • Publication number: 20080168235
    Abstract: A method and an apparatus for determining a usage level of a memory device to notify a running application to perform memory reduction operations selected based on the memory usage level are described. An application calls APIs (Application Programming Interface) integrated with the application codes in the system to perform memory reduction operations. A memory usage level is determined according to a memory usage status received from the kernel of a system. A running application is associated with application priorities ranking multiple running applications statically or dynamically. Selecting memory reduction operations and notifying a running application are based on application priorities. Alternatively, a running application may determine a mode of operation to directly reduce memory usage in response to a notification for reducing memory usage without using API calls to other software.
    Type: Application
    Filed: January 7, 2007
    Publication date: July 10, 2008
    Inventors: Matt Watson, James M. Magee
  • Patent number: 6543737
    Abstract: A holding device for temporarily attaching a facial tissue box or similar container to a supporting structure such as glove box door, sun visor, window, bed railing or headboard, or similar. The device is removably attachable to both the box and the supporting structure. Two laterally projecting arms grip the box while a clip attaches to the structure. The arms may comprise hooks, points or other features designed to enhance their grip on a paperboard, or similar, box. These features may optionally penetrate, crimp, or depress the side of the container. If desired, one or both of the arms may be adjustable to accommodate a range of box widths and/or depths.
    Type: Grant
    Filed: July 30, 2001
    Date of Patent: April 8, 2003
    Inventors: Clayton O. Decker, James M. Magee
  • Publication number: 20020113187
    Abstract: A holding device for temporarily attaching a facial tissue box or similar container to a supporting structure such as glove box door, sun visor, window, bed railing or headboard, or similar. The device is removably attachable to both the box and the supporting structure. Two laterally projecting arms grip the box while a clip attaches to the structure. The arms may comprise hooks, points or other features designed to enhance their grip on a paperboard, or similar, box. These features may optionally penetrate, crimp, or depress the side of the container. If desired, one or both of the arms may be adjustable to accommodate a range of box widths and/or depths.
    Type: Application
    Filed: July 30, 2001
    Publication date: August 22, 2002
    Inventors: Clayton O. Decker, James M. Magee
  • Patent number: 6394329
    Abstract: A holder for a water, beverage, or similar container which attaches the container to the user's belt. An upright portion of the holder is designed to be inserted behind the user's belt while a lateral projection supports and retains the container. Two openings in the lateral projection have different sizes: the first allows for easy insertion and removal of the neck, or top, of the container; and the second closely matches the size of the container neck and prevents it from being removed vertically. A reduced sized passage provides for movement of the container between the two openings and is sized to resist this movement, but not prevent it. Alternative embodiments of the holder incorporate devices to retain the holder on the user's belt, and or to retain the bottle within the holder.
    Type: Grant
    Filed: September 19, 2000
    Date of Patent: May 28, 2002
    Inventor: James M. Magee
  • Patent number: 5409279
    Abstract: Disclosed is a tong-like hand implement for collecting solid animal waste within a small plastic bag, including a pair of pivotally connected levers having loop handles at one end. The other ends of the levers support a pair of resilient, bendable, bag-engaging arms that lie parallel to the pivot axis of the levers. These resilient arms are engagable within the open end of a plastic bag, and then the loop handles can be manipulated to space the arms from each other, the arms resiliently bowing as they are spread apart against the open end of the bag, the open bag then being invertible to form a cavity for receiving the waste material, the handles then being manipulated to close the bag about the waste material.
    Type: Grant
    Filed: July 5, 1994
    Date of Patent: April 25, 1995
    Inventor: James M. Magee