Multi-thread synchronization primitive

    公开(公告)号:US11048562B2

    公开(公告)日:2021-06-29

    申请号:US15836459

    申请日:2017-12-08

    Applicant: Apple Inc.

    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.

    MULTI-LEVEL SCHEDULING
    23.
    发明申请

    公开(公告)号:US20200379804A1

    公开(公告)日:2020-12-03

    申请号:US16882092

    申请日:2020-05-22

    Applicant: Apple Inc.

    Abstract: Embodiments described herein provide multi-level scheduling for threads in a data processing system. One embodiment provides a data processing system comprising one or more processors, a computer-readable memory coupled to the one or more processors, the computer-readable memory to store instructions which, when executed by the one or more processors, configure the one or more processors to receive execution threads for execution on the one or more processors, map the execution threads into a first plurality of buckets based at least in part on a quality of service class of the execution threads, schedule the first plurality of buckets for execution using a first scheduling algorithm, schedule a second plurality thread groups within the first plurality of buckets for execution using a second scheduling algorithm, and schedule a third plurality of threads within the second plurality of thread groups using a third scheduling algorithm.

    METHOD AND SYSTEM FOR SCHEDULING THREADS FOR EXECUTION

    公开(公告)号:US20190155656A1

    公开(公告)日:2019-05-23

    申请号:US16195429

    申请日:2018-11-19

    Applicant: Apple Inc.

    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.

    Multiple process scheduling of threads using process queues

    公开(公告)号:US10140157B2

    公开(公告)日:2018-11-27

    申请号:US14290791

    申请日:2014-05-29

    Applicant: Apple Inc.

    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.

    Quality of service classes
    27.
    发明授权
    Quality of service classes 有权
    服务质量等级

    公开(公告)号:US09582326B2

    公开(公告)日:2017-02-28

    申请号:US14292687

    申请日:2014-05-30

    Applicant: Apple Inc.

    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.

    Abstract translation: 在一个实施例中,在数据处理系统上执行的任务可以与用于确定数据处理系统的多个子系统的优先级值的服务质量(QoS)分类相关联。 当任务交互并且QoS类被解释为系统的多个级别以确定为任务设置的优先级值时,QoS分类被传播。 在一个实施例中,与数据处理系统耦合的一个或多个传感器监视在一部分中用于确定为QoS类设置的优先级值的一组系统条件。

    Multi-level scheduling
    28.
    发明授权

    公开(公告)号:US11422857B2

    公开(公告)日:2022-08-23

    申请号:US16882092

    申请日:2020-05-22

    Applicant: Apple Inc.

    Abstract: Embodiments described herein provide multi-level scheduling for threads in a data processing system. One embodiment provides a data processing system comprising one or more processors, a computer-readable memory coupled to the one or more processors, the computer-readable memory to store instructions which, when executed by the one or more processors, configure the one or more processors to receive execution threads for execution on the one or more processors, map the execution threads into a first plurality of buckets based at least in part on a quality of service class of the execution threads, schedule the first plurality of buckets for execution using a first scheduling algorithm, schedule a second plurality thread groups within the first plurality of buckets for execution using a second scheduling algorithm, and schedule a third plurality of threads within the second plurality of thread groups using a third scheduling algorithm.

    Performance Telemetry Aided Processing Scheme

    公开(公告)号:US20210019258A1

    公开(公告)日:2021-01-21

    申请号:US16513225

    申请日:2019-07-16

    Applicant: Apple Inc.

    Abstract: A processing system can include a plurality of processing clusters. Each processing cluster can include a plurality of processor cores and a last level cache. Each processor core can include one or more dedicated caches and a plurality of counters. The plurality of counters may be configured to count different types of cache fills. The plurality of counters may be configured to count different types of cache fills, including at least one counter configured to count total cache fills and at least one counter configured to count off-cluster cache fills. Off-cluster cache fills can include at least one of cross-cluster cache fills and cache fills from system memory. The processing system can further include one or more controllers configured to control performance of one or more of the clusters, the processor cores, the fabric, and the memory responsive to cache fill metrics derived from the plurality of counters.

Patent Agency Ranking