CPU CLUSTER SHARED RESOURCE MANAGEMENT

    公开(公告)号:US20230040310A1

    公开(公告)日:2023-02-09

    申请号:US17392929

    申请日:2021-08-03

    Applicant: Apple Inc.

    Abstract: Embodiments include an asymmetric multiprocessing (AMP) system having a first central processing unit (CPU) cluster comprising a first core type, and a second CPU cluster comprising a second core type, where the AMP system can update a thread metric for a first thread running on the first CPU cluster based at least on: a past shared resource overloaded metric of the first CPU cluster, and on-core metrics of the first thread. The on-core metrics of the first thread can indicate that first thread contributes to contention of the same shared resource corresponding to the past shared resource overloaded metric of the first CPU cluster. The AMP system can assign the first thread to a different CPU cluster while other threads of the same thread group remain assigned to the first CPU cluster. The thread metric can include a Matrix Extension (MX) thread flag or a Bus Interface Unit (BIU) thread flag.

    PERFORMANCE ISLANDS FOR CPU CLUSTERS

    公开(公告)号:US20230067109A1

    公开(公告)日:2023-03-02

    申请号:US17893913

    申请日:2022-08-23

    Applicant: Apple Inc.

    Abstract: Embodiments include an asymmetric multiprocessing (AMP) system having two or more central processing unit (CPU) clusters of a first core type and a CPU cluster of a second core type. Some embodiments include determining a control effort for an active thread group, and assigning the thread group to a first performance island according to the control effort range of the first performance island. The first performance island can include a first CPU cluster of the first core type, where a second performance island includes a second CPU cluster of the first core type, where the second performance island corresponds to a different control effort range than the first performance island. Some embodiments include assigning the first CPU cluster as a preferred CPU cluster of the first thread group, and transmitting a first signal identifying the first CPU cluster as the preferred CPU cluster assigned to the first thread group.

    HAND-OFF SCHEDULING
    4.
    发明申请
    HAND-OFF SCHEDULING 审中-公开
    手动调度

    公开(公告)号:US20160357600A1

    公开(公告)日:2016-12-08

    申请号:US14871837

    申请日:2015-09-30

    Applicant: Apple Inc.

    Abstract: Disclosed herein are systems, methods, and computer-readable media directed to scheduling threads in a multi-processing environment that can resolve a priority inversion. Each thread has a scheduling state and a context. A scheduling state can include attributes such as a processing priority, classification (background, fixed priority, real-time), a quantum, scheduler decay, and a list of threads that may be waiting on the thread to make progress. A thread context can include registers, stack, other variables, and one or more mutex flags. A first thread can hold a resource with a mutex, the first thread having a low priority. A second thread having a scheduling state with a high priority can be waiting on the resource and may be blocked behind the mutex held by the first process. A scheduler can execute the context of the lower priority thread using the scheduler state of the second, higher priority thread. More than one thread can be waiting on the resource held by the first thread. A “pusher list” of threads that are waiting on the first thread can be associated with the first thread. The scheduler can use the pusher list to identify threads that need the first thread to make progress until the first thread releases the resource and mutex. Then, the scheduler can use the pusher list to identify threads that are now runnable and make immediate use of the resource.

    Abstract translation: 这里公开的是指向在多处理环境中调度线程的系统,方法和计算机可读介质,其可以解决优先级反转。 每个线程都有调度状态和上下文。 调度状态可以包括诸如处理优先级,分类(背景,固定优先级,实时),量子,调度器衰减和可能在线程上等待进行的线程列表的属性。 线程上下文可以包括寄存器,堆栈,其他变量和一个或多个互斥标志。 第一个线程可以使用互斥体保存资源,第一个线程具有低优先级。 具有高优先级的调度状态的第二线程可以等待资源并且可能被阻止在由第一进程所保持的互斥体之后。 调度器可以使用第二较高优先级线程的调度器状态来执行较低优先级线程的上下文。 多个线程可以等待第一个线程持有的资源。 在第一个线程上等待的线程的“推送器列表”可以与第一个线程相关联。 调度程序可以使用推送器列表来识别需要第一个线程以在第一个线程释放资源和互斥体之前进行的线程。 然后,调度程序可以使用推送器列表来识别现在可运行的线程,并立即使用该资源。

Patent Agency Ranking