-
公开(公告)号:US11579934B2
公开(公告)日:2023-02-14
申请号:US17208928
申请日:2021-03-22
Applicant: Apple Inc.
Inventor: 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
IPC: G06F9/50 , G06F9/48 , G06F1/3234 , G06F1/329 , G06F1/3296 , G06F9/38 , G06F9/26 , G06F9/54 , G06F1/20 , G06F1/324 , G06F1/3206 , G06F9/30
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.
-
公开(公告)号:US11301296B2
公开(公告)日:2022-04-12
申请号:US16808021
申请日:2020-03-03
Applicant: Apple Inc.
Inventor: Kushal Dalmia , Andrey V. Talnikov , Lionel D. Desai , Russell A. Blaine
Abstract: Memory management in a data processing system can learn one or more behaviors of software processes such as daemon software processes and application processes, and based on information learned about the behaviors, the memory management can adjust how it controls memory usage in the system. For example, a memory management system can learn how software processes react (e.g. how quickly they relaunch) to memory recovery methods, such as system initiated terminations of one or more software processes that are performed to reclaim memory to increase available volatile memory, and based on information about how they react, the memory recovery methods can operate differently depending upon how the software reacted previously.
-
公开(公告)号:US10908954B2
公开(公告)日:2021-02-02
申请号:US15444186
申请日:2017-02-27
Applicant: Apple Inc.
Inventor: Daniel A. Steffen , Matthew W. Wright , Russell A. Blaine , Daniel A. Chimene , Kevin J. Van Vechten , Thomas B. Duffy
Abstract: In one embodiment, tasks executing on a data processing system can be associated with a Quality of Service (QoS) classification that is used to determine the priority values for multiple subsystems of the data processing system. The QoS classifications are propagated when tasks interact and the QoS classes are interpreted a multiple levels of the system to determine the priority values to set for the tasks. In one embodiment, one or more sensors coupled with the data processing system monitor a set of system conditions that are used in part to determine the priority values to set for a QoS class.
-
4.
公开(公告)号:US20150347192A1
公开(公告)日:2015-12-03
申请号:US14290791
申请日:2014-05-29
Applicant: Apple Inc.
Inventor: Russell A. Blaine , Daniel A. Chimene , Shantonu Sen , James M. Magee
IPC: G06F9/50
CPC classification number: G06F9/5027 , G06F9/4881 , G06F2209/5021
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.
Abstract translation: 在这里描述了用于调度用于在数据处理系统中执行的线程的技术。 根据一个实施例,响应于执行线程的请求,数据处理系统的操作系统的调度器访问全局运行队列以识别与最高进程优先级相关联的全局运行条目。 全局运行队列包括多个全局运行条目,每个条目对应于多个进程优先级中的一个。 基于全局运行条目识别组运行队列,其中组运行队列包括与其中一个进程相关联的多个线程。 调度程序将组运行队列中的线程中具有最高线程优先级的一个线程调度到数据处理系统的一个处理器核心以执行。
-
5.
公开(公告)号:US20140189693A1
公开(公告)日:2014-07-03
申请号:US13893631
申请日:2013-05-14
Applicant: Apple Inc.
Inventor: Benjamin C. Trumbull , Adam C. Swift , Russell A. Blaine , Benjamin H. Nham , Kari E. Christianson
IPC: G06F9/46
CPC classification number: G06F9/466 , G06F9/526 , G06F2209/522 , G06F2209/523
Abstract: An operating system of a data processing system receives a request from a first process to acquire an exclusive lock for accessing a resource of the data processing system. A second priority of a second process is increased to reduce total execution time. The second process is currently in possession of the exclusive lock for performing a transactional operation with the resource. The second priority was lower than a first priority of the first process. The operating system notifies the second process to indicate that another process is waiting for the exclusive lock to allow the second process to complete or roll back the transactional operation and to release the exclusive lock thereafter.
Abstract translation: 数据处理系统的操作系统从第一进程接收到获取用于访问数据处理系统的资源的排他锁的请求。 增加第二个进程的第二个优先级,以减少总执行时间。 第二个进程当前拥有执行与该资源的事务操作的排他锁。 第二个优先次序低于第一个进程的第一优先事项。 操作系统通知第二进程以指示另一进程正在等待排他锁以允许第二进程完成或回滚事务操作并且此后释放排他锁。
-
公开(公告)号:US11860796B2
公开(公告)日:2024-01-02
申请号:US17397966
申请日:2021-08-09
Applicant: Apple Inc.
Inventor: Jeremy C. Andrus , Joseph R. Auricchio , Russell A. Blaine , Daniel A. Chimene , Simon M. Douglas , Landon J. Fuller , Yevgen Goryachok , John K. Kim-Biggs , Arnold S. Liu , James M. Magee , Daniel A. Steffen , Roberto G. Yepez
CPC classification number: G06F13/102 , G06F9/44505 , G06F9/545 , G06F9/546 , G06F13/1673 , G06F13/4072
Abstract: Embodiments described herein provide techniques to manage drivers in a user space in a data processing system. One embodiment provides a data processing system configured perform operations, comprising discovering a hardware device communicatively coupled to the communication bus, launching a user space driver daemon, establishing an inter-process communication (IPC) link between a first proxy interface for the user space driver daemon and a second proxy interface for a server process in a kernel space, receiving, at the first proxy interface, an access right to enable access to a memory buffer in the kernel space, and relaying an access request for the memory buffer from the user space driver daemon via a third-party proxy interface to enable the user space driver daemon to access the memory buffer, the access request based on the access right.
-
公开(公告)号:US20220222116A1
公开(公告)日:2022-07-14
申请号:US17699911
申请日:2022-03-21
Applicant: Apple Inc.
Inventor: Kushal Dalmia , Andrey V. Talnikov , Lionel D. Desai , Russell A. Blaine
Abstract: Memory management in a data processing system can learn one or more behaviors of software processes such as daemon software processes and application processes, and based on information learned about the behaviors, the memory management can adjust how it controls memory usage in the system. For example, a memory management system can learn how software processes react (e.g. how quickly they relaunch) to memory recovery methods, such as system initiated terminations of one or more software processes that are performed to reclaim memory to increase available volatile memory, and based on information about how they react, the memory recovery methods can operate differently depending upon how the software reacted previously.
-
公开(公告)号:US20210318909A1
公开(公告)日:2021-10-14
申请号:US17208928
申请日:2021-03-22
Applicant: Apple Inc.
Inventor: 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
IPC: G06F9/50 , G06F9/48 , G06F1/3234 , G06F1/329 , G06F1/3296 , G06F9/38 , G06F9/26 , G06F9/54 , G06F1/20 , G06F1/324
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.
-
公开(公告)号:US20200379925A1
公开(公告)日:2020-12-03
申请号:US16882087
申请日:2020-05-22
Applicant: Apple Inc.
Inventor: Jeremy C. Andrus , Joseph R. Auricchio , Russell A. Blaine , Daniel A. Chimene , Simon M. Douglas , Landon J. Fuller , Yevgen Goryachok , John K. Kim-Biggs , Arnold S. Liu , James M. Magee , Daniel A. Steffen , Roberto G. Yepez
Abstract: Embodiments described herein provide techniques to manage drivers in a user space in a data processing system. One embodiment provides a data processing system configured perform operations, comprising discovering a hardware device communicatively coupled to the communication bus, launching a user space driver daemon, establishing an inter-process communication (IPC) link between a first proxy interface for the user space driver daemon and a second proxy interface for a server process in a kernel space, receiving, at the first proxy interface, an access right to enable access to a memory buffer in the kernel space, and relaying an access request for the memory buffer from the user space driver daemon via a third-party proxy interface to enable the user space driver daemon to access the memory buffer, the access request based on the access right.
-
公开(公告)号:US10430577B2
公开(公告)日:2019-10-01
申请号:US14576692
申请日:2014-12-19
Applicant: Apple Inc.
Inventor: James Michael Magee , Russell A. Blaine , Vishal Patel , Daniel Andreas Steffen , Kevin James Van Vechten , Jacques Anthony Vidrine , Kelly B. Yancey , Jainam A. Shah
Abstract: A method and an apparatus to dynamically distribute privileges among a plurality of processes are described. Each process may have attributes including a privilege to control access to processing resources. A first process may be running with a first privilege prohibited from access to a processing resource. A second process may be running with a second privilege allowed to access the processing resource. The first process may receive a request from the second process to perform a data processing task for the second process. In response, the second privilege may be dynamically transferred to the first process to allow the first process to access the processing resource. The first process may perform operations for the data processing task with the second privilege transferred from the second process.
-
-
-
-
-
-
-
-
-