用于線程等待的方法、系統和裝置,包括編碼在計算機存儲介質上的計算機程序。方法中的一種包括:由處理核上的第一線程通過開始執行多個任務指令來開始任務;由第一線程利用事務性存儲器系統來發起原子存儲器事務,包括:給事務性存儲器系統指定用于原子存儲器事務的至少第一存儲器地址,并且通過不繼續執行任務指令來暫時停止任務;作為第二線程訪問指定用于原子存儲器事務的第一存儲器地址的結果,由第一線程接收信號;以及作為接收到信號的結果,由第一線程恢復任務并繼續執行任務指令。
【技術實現步驟摘要】
【國外來華專利技術】
本說明書涉及處理器架構。
技術介紹
一些處理器架構可執行多個獨立線程,例如多線程。在一些情況下,使線程就輸入/輸出(IO)或同步操作進行等待而不是通過上下文切換處理器核上的另一線程來將該線程讓渡給處理器核是合意的。為了實現此目的,軟件可對一個或多個存儲器地址實現繁忙輪詢或自旋輪詢,例如基于自旋鎖的同步。盡管對存儲器地址的繁忙輪詢可通過避免上下文切換開銷來產生有利的延遲,但是其不可避免地導致浪費的執行資源。例如,對于單線程處理核或沒有任何硬件線程切換能力的超線程處理核,處理核可能在繁忙輪詢期間對于實際工作變得未被使用,這可能浪費處理核上其它超線程的資源。另外,如果被輪詢的存儲器地址的數量很多,則這可導致附加延遲。
技術實現思路
本說明書描述了在等待線程中使用原子存儲器事務來監視多個存儲器地址、快速地恢復等待線程并最小化等待線程對共享多線程處理器架構的其它并發線程的影響的技術。一般地,本說明書中描述的主題的一個創新性方面可體現于包括下述動作的方法:由處理核上的第一線程通過開始執行多個任務指令來開始任務;由第一線程利用事務性存儲器系統來發起原子存儲器事務,包括:給事務性存儲器系統指定用于原子存儲器事務的至少第一存儲器地址并且通過不繼續執行任務指令而暫時停止任務;作為第二線程訪問指定用于原子存儲器事務的第一存儲器地址的結果由第一線程接收信號;以及作為接收到信號的結果,由第一線程恢復任務并繼續執行任務指令。在另一一般實施例中,一種方法包括下述動作:在執行第二線程時在第一線程中發起原子存儲器事務;作為確定指定用于所述事務的至少一個存儲器地址被非第一線程的線程訪問的結果而終止所述事務;以及作為終止所述事務的結果而在第一線程中執行任務指令。本方面的其它實施例包括對應的計算機系統、裝置和記錄在一個或多個計算機存儲設備上的計算機程序,每一個都配置為執行所述方法的動作。對于配置為要執行特定操作或動作的一個或多個計算機的系統來說,意味著所述系統已經在其上安裝了在操作時使得所述系統執行所述操作或動作的軟件、固件、硬件或它們的組合。對于配置為要執行特定操作或動作的一個或多個計算機程序來說,意味著所述一個或多個程序包括指令,所述指令在被數據處理裝置執行時使得所述裝置執行所述操作或動作。前述和其它實施例每一個都可以可選地單獨或組合地包括下述特征中的一個或多個。例如,指定用于原子存儲器事務的第一存儲器地址包括指定用于原子存儲器事務的多個存儲器地址,所述多個存儲器地址與耦合到處理核的高速緩存存儲器的多個高速緩存線對應。指定用于原子存儲器事務的多個存儲器地址包括執行來自所述多個存儲器地址中的每個存儲器地址的加載指令。所述特征進一步包括:對于所述多個存儲器地址中的每個存儲器地址處,將多個頭指針的頭指針存儲在所述存儲器地址處,每個頭指針指定多個隊列中的相應隊列,并且所述信號包括用于更新存儲在特定存儲器地址中的特定頭指針的更新信號。所述特征進一步包括在指定用于原子存儲器事務的第一存儲器地址之后執行所述事務中的一個或多個指令,并且所述事務中的一個或多個指令包括配置成對于執行消耗處理核的極少資源的循環。暫時停止任務包括執行低產出指令一次或重復地執行低產出指令。低產出指令包括下列中的一個或多個:存儲器柵欄指令、無操作(NOP)指令或時戳檢查指令。事務性存儲器系統包括硬件事務性存儲器(hardwaretransactionalmemory,HTM)系統,所述HTM系統配置為中斷指定了被不同線程訪問的事務存儲器地址的任意線程。所述信號是從執行第二線程的不同的第二設備接收到的,并且處理核和該第二設備耦合到包括第一存儲器地址的共享存儲器。處理核耦合到第一處理系統中的第一主存儲器,并且第一存儲器地址指定第一主存儲器中的存儲器位置,并且接收信號包括從不同的第二處理系統接收信號,所述不同的第二處理系統配置為直接從第二處理系統中的不同的第二主存儲器讀取數據并且將數據直接寫入到第一主存儲器中的第一存儲器地址。可實現本說明書中描述的主題的特定實施例以取得一個或多個優點。第一,用戶可利用事務來構建輕量級用戶模式通知,以使設備或線程在多線程期間恢復或重新激活等待線程;第二,利用事務可快速地將線程置于等待狀態并快速地恢復等待線程以進行執行;第三,事務可最小化等待線程對共享相同處理核的其它并發線程的影響;第四,事務可同時地監視例如應用(例如,互斥代碼、遠程直接存儲器存取(remotedirectmemoryaccess,RDMA)、OS旁路、NIC卸載或非易失性字節可尋址存儲控制器)中等待線程感興趣的多個存儲器地址(例如,多個高速緩存線或隊列);第五,在一個處理系統上執行的等待線程可遠程地由另一處理系統進行控制(例如,重新激活);第六,操作系統的設備驅動器可利用事務來優化多個高性能隊列上的自旋循環或優化復雜多線程系統中的用戶代碼。在附圖和下面的描述中闡述了本說明書中描述的主題的一個或多個實施例的細節。根據描述、附圖和權利要求書,該主題的其它特征、方面和優點將變得明了。附圖說明圖1是具有事務性存儲器系統的示例多線程處理系統的框圖。圖2A是用于執行多個線程的示例多線程處理系統的框圖。圖2B描繪了通過圖2A的多線程處理系統來執行多個線程。圖3描繪了通過主存儲器直接交互的兩個處理系統。圖4是多線程處理系統執行的示例過程的流程圖。在各個附圖中相同的標號和標記指示相同的元素。具體實施方式圖1是示例多線程處理系統100的框圖。多線程處理系統100可并發地執行多個線程。等待線程可在等待時段期間執行原子存儲器事務并可快速地被其它線程或設備重新激活以進行執行。多線程處理系統100包括處理器102。處理器102可為配置為執行計算機程序指令的物理或邏輯處理核。處理器102經由互連106耦合到主存儲器104(例如,一個或多個隨機存取存儲器(RAM)芯片)。互連106可包括共享系統總線或呈各種拓撲結構的點對點網絡。在一些實現方式中,多線程處理系統100包括經由互連106耦合到主存儲器104的一個或多個其它處理器108。處理器108可為物理或邏輯處理核。處理器102和處理器108可具有共享存儲器(例如,主存儲器104)以進行多線程(例如,同時多線程(simultaneousmultithreading,SMT))。在一些實現方式中,處理器102和處理器108在專用芯片上。在一些實現方式中,處理器102和處理器108在多處理器芯片上并且可通過芯片上網絡連接。處理器102可包括一個或多個本地高速緩存110。高速緩存110可高速緩存來自主存儲器104的數據(例如,存儲被存儲在主存儲器104中的值的本地副本),以供處理器102快速訪問。在一些實現方式中,處理器102包括一個或多個高速緩存層級。各高速緩存層級可以分層次布置,例如L1高速緩存、L2高速緩存和L3高速緩存。在特定示例中,處理器102包括較低層級的高速緩存(例如,八路L1高速緩存)并且通過與其它處理器108共享的較高層級的高速緩存(例如,L3高速緩存)耦合到主存儲器104。在一些實現方式中,處理器102耦合到高速緩存110。多線程處理系統100包括事務性存儲器系統112。在一些實現方式中,事務性存儲器系統112是處理器102的組件,如圖1中所本文檔來自技高網...

【技術保護點】
一種裝置,包括:處理核,配置為執行多個線程;以及事務性存儲器系統,用于執行原子存儲器事務,其中所述處理核配置為執行操作,所述操作包括:由第一線程通過開始執行多個任務指令來開始任務;由所述第一線程利用所述事務性存儲器系統來發起原子存儲器事務,包括:給所述事務性存儲器系統指定用于所述原子存儲器事務的至少第一存儲器地址;并且通過不繼續執行所述任務指令而暫時停止所述任務;作為第二線程訪問指定用于所述原子存儲器事務的第一存儲器地址的結果,由所述第一線程接收信號;以及作為接收到所述信號的結果,由所述第一線程恢復所述任務并繼續執行所述任務指令。
【技術特征摘要】
【國外來華專利技術】2014.05.05 US 14/269,7791.一種裝置,包括:處理核,配置為執行多個線程;以及事務性存儲器系統,用于執行原子存儲器事務,其中所述處理核配置為執行操作,所述操作包括:由第一線程通過開始執行多個任務指令來開始任務;由所述第一線程利用所述事務性存儲器系統來發起原子存儲器事務,包括:給所述事務性存儲器系統指定用于所述原子存儲器事務的至少第一存儲器地址;并且通過不繼續執行所述任務指令而暫時停止所述任務;作為第二線程訪問指定用于所述原子存儲器事務的第一存儲器地址的結果,由所述第一線程接收信號;以及作為接收到所述信號的結果,由所述第一線程恢復所述任務并繼續執行所述任務指令。2.根據權利要求1所述的裝置,其中指定用于所述原子存儲器事務的所述第一存儲器地址包括指定用于所述原子存儲器事務的多個存儲器地址,所述多個存儲器地址與耦合到所述處理核的高速緩存存儲器的多個高速緩存線對應。3.根據權利要求2所述的裝置,其中指定用于所述原子存儲器事務的多個存儲器地址包括執行來自所述多個存儲器地址中的每個存儲器地址的加載指令。4.根據權利要求3所述的裝置,所述操作進一步包括:對于所述多個存儲器地址中的每個存儲器地址,將多個頭指針的頭指針存儲在所述存儲器地址處,每個頭指針指定多個隊列中的相應隊列,并且其中所述信號包括用于更新存儲在特定存儲器地址中的特定頭指針的更新信號。5.根據權利要求1所述的裝置,進一步包括在指定用于所述原子存儲器事務的所述第一存儲器地址之后執行所述事務中的一個或多個指令,其中所述事務中的所述一個或多個指令包括配置成對于執行消耗所述處理核的極少資源的循環。6.根據權利要求1所述的裝置,其中暫時停止所述任務包括執行低產出指令一次或重復地執行低產出指令。7.根據權利要求6所述的裝置,其中所述低產出指令包括下列中的一個或多個:存儲器柵欄指令、無操作(NOP)指令或時戳檢查指令。8.根據權利要求1所述的裝置,其中所述事務性存儲器系統包括硬件事務性存儲器(HTM)系統,所述HTM系統配置為中斷指定了被不同線程訪問的事務存儲器地址的任意線程。9.根據權利要求1所述的裝置,其中所述信號是從執行所述第二線程的不同的第二設備接收到的,并且其中所述處理核和第二設備耦合到包括所述第一存儲器地址的共享存儲器。10.根據權利要求1所述的裝置,其中所述處理核耦合到第一處理系統中的第一主存儲器,并且所述第一存儲器地址指定所述第一主存儲器中的存儲器位置,并且其中接收信號包括從不同的第二處理系統接收所述信號,所述不同的第二處理系統配置為直接從第二處理系統中的不同的第二主存儲器讀取數據并且將所述數據直接寫入到所述第一主存儲器中的所述第一存儲器地址。11.一種由多線程處理系統執行的方法,所述多線程處理系統包括處理核和事務性存儲器系統,所述方法包括:由所述處理核上的第一線程通過開始執行多個任務指令...
【專利技術屬性】
技術研發人員:BC塞雷布林,
申請(專利權)人:谷歌公司,
類型:發明
國別省市:美國;US
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。