[發明專利]在多個處理器之間快速轉移工作負載有效
| 申請號: | 201780022012.6 | 申請日: | 2017-03-24 |
| 公開(公告)號: | CN108885559B | 公開(公告)日: | 2021-12-03 |
| 發明(設計)人: | O·卡甘 | 申請(專利權)人: | 微軟技術許可有限責任公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 上海專利商標事務所有限公司 31100 | 代理人: | 陳斌;胡利鳴 |
| 地址: | 美國華*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 處理器 之間 快速 轉移 工作 負載 | ||
公開了用于一旦對任務的需要被主CPU檢測到就預調度替代CPU的技術和系統。一個過程包括由在第一CPU上運行的生產者線程檢測外部中斷,由生產者線程獲取自旋鎖,以及響應于獲取自旋鎖,由生產者線程向要在第二個CPU上運行的消費者線程發送事件。在由消費者線程接收到該事件之際,消費者線程獲取自旋鎖,該自旋鎖使消費者線程“停滯”在循環中,直到該自旋鎖被生產者線程釋放。當消費者線程響應于從生產者線程接收到該事件而正“喚醒”時,生產者線程創建任務、發布該任務并且釋放自旋鎖,由此致使消費者線程退出循環、檢索該任務并且執行該任務。
背景
嵌入式設備通常用相對便宜的硬件(例如,有限容量的電源、需要較少能量的較慢組件,等等)來構建。使用較便宜的硬件允許制造商經濟地大規模生產這些嵌入式設備,但是經濟上的節省是以降級的設備性能為代價的。例如,在多處理器系統中(且尤其是像樹莓派2(Raspberry Pi 2)這樣的被用于嵌入式設備的低級別多處理器平臺),從中斷僅僅在主中央處理單元(CPU)上被遞送,而非跨多個可用CPU被負載均衡的角度來講,體系結構可以是非對稱的。這可能導致在多處理器系統中的主CPU的過度利用和(諸)其他CPU的未充分利用。此外,許多嵌入式設備利用相對慢的直接存儲器訪問(DMA)控制器。通常,程序員通過以下來變通地解決該約束:設計嵌入式軟件以使用CPU代替較慢的DMA控制器來執行存儲器轉移操作,因為存儲器轉移操作可利用CPU來被更快速地執行。這可能給主CPU帶來更多的工作負載,因為主CPU被完全地占用達存儲器轉移操作的歷時并且不可用于接收中斷。
當前操作系統可通過在多處理器系統中將任務調度到(或將任務轉移至)替代CPU來緩解這些問題,這減輕了主CPU上的一些負擔。例如,設備驅動器和/或操作系統(OS)組件可通過以下來在各CPU之間轉移任務:利用在第一CPU上運行的“生產者”線程創建任務,并且利用在第二CPU上運行的“消費者”線程執行該任務。然而,從生產者線程發信號通知消費者線程執行任務的時間開始,到消費者線程“喚醒”并且實際上準備好執行任務的時間為止存在顯著的延遲。該延遲可由喚醒消費者線程和使消費者線程準備好執行任務中的固有調度等待時間導致。例如,消費者線程要花費時間來從系統存儲器加載堆棧和多個頁面,以便使其自己準備好執行任務。執行這些“加載”操作所花費的時間可致使可辨識的性能降級。許多嵌入式設備(諸如執行時間嚴格的(time-critical)操作的控制設備(例如,機械臂))可以從更高性能OS中受益。
概述
本文中所描述的是用于一旦對任務的需要被主CPU檢測到就預調度替代CPU的技術和系統。預調度替代CPU可包括在向將被用于執行任務的消費者線程提供相關信息之前發送事件——以喚醒要在替代CPU上運行的消費者線程。以這種方式預調度替代CPU最小化或消除了在對任務的需要在生產者線程上下文中出現(被檢測到)的時刻與該任務在消費者線程上下文中被執行的時刻之間的延遲,該消費者線程運行在替代CPU上。在各CPU之間轉移任務方面的延遲的降低或消除對于低端嵌入式設備而言是特別地有用的。
在一些配置中,消費者線程可停滯在非優先搶占的“自旋鎖(spinlock)”中。自旋鎖是一種同步原語,其致使嘗試獲取它的線程在循環中等待(“自旋”),同時重復地檢查該自旋鎖是否被釋放(或可用于被獲取)。由于線程保持活躍但沒有正在執行有用的任務,因此對這樣的自旋鎖的使用是忙等待(busy wait)狀態。相應地,一種用于將任務從第一CPU轉移到第二CPU的過程包括:利用在第一CPU上運行的生產者線程來檢測外部中斷,獲取自旋鎖,以及響應于獲取自旋鎖來將事件發送到要在第二CPU上運行的消費者線程。在由消費者線程接收到該事件之際,消費者線程獲取自旋鎖,該自旋鎖使消費者線程“停滯”在循環中,直到該自旋鎖被生產者線程釋放。當消費者線程響應于從生產者線程接收到該事件而正“喚醒”時,生產者線程創建任務、發布該任務并且釋放自旋鎖,由此致使消費者線程退出循環、檢索該任務并且執行該任務。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟技術許可有限責任公司,未經微軟技術許可有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201780022012.6/2.html,轉載請聲明來源鉆瓜專利網。





