[發明專利]用于執行多個線程的數據處理設備中的共享資源有效
| 申請號: | 201580046904.0 | 申請日: | 2015-07-28 |
| 公開(公告)號: | CN106716348B | 公開(公告)日: | 2021-05-18 |
| 發明(設計)人: | 魯納·霍姆;大衛·漢納·曼塞爾 | 申請(專利權)人: | ARM有限公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38;G06F9/52 |
| 代理公司: | 北京東方億思知識產權代理有限責任公司 11258 | 代理人: | 林強 |
| 地址: | 英國*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 執行 線程 數據處理 設備 中的 共享資源 | ||
數據處理設備(100)執行線程且包括通用程序計數器(PC)(120),該通用程序計數器標識要針對線程的至少一子集執行的指令。每一線程具有線程PC(184)。線程的子集具有至少一個鎖定參數(188,500?504)用于追蹤對共享資源的獨占訪問。響應于針對線程執行的第一指令,處理器(160)修改至少一個鎖定參數(188)、(500?504)以指示線程已經獲得對共享資源的獨占訪問。響應于第二指令,處理器修改至少一個鎖定參數(188,500?504)以指示線程不再具有獨占訪問。選擇器(110)基于至少一個鎖定參數(188,500?504)選擇線程的子集中的一者且將通用PC(120)設定為選定線程的線程PC(184)。
技術領域
本技術涉及數字處理領域。具體地,本技術研究在其中執行多個線程的數據處理設備和方法。
背景技術
數據處理設備可執行多個線程。線程可以步調一致(lockstep)的方式進展。具體地,每一線程可維護它自身的程序計數器。系統本身可維護自身的通用程序計數器,以使得針對(程序計數器與通用程序計數器匹配的)線程執行由通用程序計數器所指示的指令。此類系統可稱為例如單指令多線程(SIMT)系統。因此,在每一步驟處,針對多個線程中的至少一子集執行單個指令。一旦已針對線程的子集執行指令,可改變通用程序計數器來指示新的指令。在此類系統中可以優選地設定通用程序計數器以匹配由線程中的每個線程維護的程序計數器中的最小者。以此方式,可允許最落后的線程取得進展,并且從而追趕上具有更高的程序計數器的線程。此可引發線程進入收斂,即共享相同程序計數器值以使得可在盡可能多的線程上執行單個指令。
對此方案的修改涉及追蹤每個線程的函數調用深度。具體地,每當線程做出函數調用時,此線程的函數調用深度計數器遞增,且每當線程自函數調用返回時,此線程的函數調用深度計數器遞減。當通用程序計數器要變化時,即它被設定為匹配首先具有最高函數調用深度計數器的線程的程序計數器,且其次(若存在多個這樣的線程)匹配此集合中具有最低程序計數器值的一個或多個線程的程序計數器。換言之,僅考慮具有最高函數調用深度的全部線程間的程序計數器值。因此,這幫助防止在僅考慮程序計數器值情況下將會發生的性能問題或死鎖情形。當線程的子集做出函數調用時,這可使得與那些線程關聯的程序計數器顯著增加,使得應在函數本身之后下一個執行的指令并不具有最低程序計數器值。通過基于函數調用深度選擇用于執行的線程,即便該函數不具有最低程序計數器也可先處理該函數。
上述兩種機制皆傾向于遭受死鎖,其中待執行的代碼包含要求獨占訪問的共享資源。舉例而言,可在任何一個瞬時處由單個線程保持鎖定,從而允許線程且僅此線程訪問共享資源。
訪問共享資源的線程可比不可訪問共享資源的其余線程具有更高的程序計數器。因此,將能夠執行其余線程,但將無法執行具有對共享資源的訪問權的線程。由于另一線程具有對共享資源的訪問權的同時其余線程將不能夠訪問共享資源,將發生死鎖。然而,具有對共享資源的訪問權的線程可能永遠不被允許執行。因此,無線程取得任何進展且系統暫停。
發明內容
根據本技術的一個方面,提供了一種被配置為執行多個線程的數據處理設備,所述數據處理設備包括:通用程序計數器,用于標識指令流中要針對所述多個線程的至少一子集執行的一個指令,其中所述子集中的每一線程具有相關聯的、用于標識所述指令流中的一個指令的線程程序計數器;選擇器,被配置為選擇線程的所述子集中的選定線程并且將所述通用程序計數器設定為與所述選定線程相關聯的線程程序計數器;以及處理器,被配置為針對線程的所述子集中包括所述選定線程的一個或多個線程執行由所述通用程序計數器標識的指令,其中線程的所述子集與至少一個鎖定參數相關聯,該至少一個鎖定參數用于追蹤線程的所述子集中的哪個線程具有對共享資源的獨占訪問;其中所述處理器被配置為響應于針對一線程執行的第一指令而修改所述至少一個鎖定參數來指示此線程已經獲得對所述共享資源的獨占訪問,并且響應于針對此線程執行的第二指令而修改與所述線程相關聯的所述至少一個鎖定參數來指示所述線程不再具有對所述共享資源的獨占訪問;并且其中所述選擇器被配置為基于所述至少一個鎖定參數選擇所述選定線程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于ARM有限公司,未經ARM有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201580046904.0/2.html,轉載請聲明來源鉆瓜專利網。





