【技術實現步驟摘要】
本專利技術涉及多核微處理器領域,具體涉及一種面向多核微處理器的內存拷貝加速 方法及裝置。
技術介紹
隨著計算技術的高速發展,應用程序對微處理器的處理能力的要求越來越高。人 們通過提高處理器主頻、采用超標量與多線程等技術來提高處理器內核的性能。然而,上述 技術已經逐漸不能滿足處理器飛速發展的需要。時鐘頻率的不斷提高意味著處理器功耗激 增和時鐘同步越來越困難,主流處理器已經不再一味追求高主頻。鑒于應用程序本身的并 行性往往存在一定的局限性,超標量與多線程等技術也將無法進一步提高處理器的性能。 處理器研究的重點逐漸轉向在開發指令級與線程級并行的基礎上進一步開發任務級并行, 先進的制造工藝也使得單片上能夠集成更多的晶體管資源,多核微處理器應運而生。在多 核微處理器上,一個襯底上可以制造多個處理器內核。過去20多年來,處理器的性能以平均每年超過40%的速度增長,而存儲器性能的 增速卻低得多,平均每年增長只有約7%。多核處理器的每個核都可同時執行多個不同的進 程或線程,這些進程或線程都可能需要訪問存儲器,因此存儲墻問題在多核時代更加嚴重。 如果存儲器無法為處理器內核提供充足的數據,多核處理器資源將無法得到充分利用。提 高訪存操作的性能成為多核處理器設計者日益關心的問題。一方面,可以通過研究多核處 理器的高速緩存等硬件結構以提高內核訪存性能;另一方面,可以對一些廣泛使用的訪存 操作進行特殊優化。內存拷貝操作已經成為現代計算機系統中最為常見的一種操作。而許多應用程序 的性能直接或間接地依賴于內存拷貝操作的性能。TCP/IP協議及文件拷貝等應用程序一 般都包含大量的內存拷 ...
【技術保護點】
一種面向多核微處理器的內存拷貝加速方法,其特征在于實施步驟如下:1)在微處理器指令集中增加內存拷貝指令,所述內存拷貝指令包括普通內存拷貝指令、MPI點對點發送指令、MPI點對點接收指令、MPI群組發送指令和MPI群組接收指令;在微處理器中的指令執行流水線外部建立用于執行基于MPI通信的內存拷貝請求的MPI通信加速模塊;2)將譯碼得到的內存拷貝指令轉換成對應的內存拷貝請求,如果當前內存拷貝請求為普通內存拷貝請求時,分發給指令執行流水線中的內存拷貝單元并跳轉執行步驟3);否則將內存拷貝請求分發給MPI通信加速模塊并跳轉執行步驟4);3)內存拷貝單元將內存拷貝請求緩存到請求隊列中,并執行請求隊列中的當前內存拷貝請求,以頁為單位取回源數據并寫入目的地址;4)MPI通信加速模塊將內存拷貝請求緩存到請求隊列中,并執行請求隊列中的當前內存拷貝請求;如果當前內存拷貝請求為MPI點對點發送請求,則獲取與當前內存拷貝請求組成點對點通信的關聯MPI點對點接收請求,執行當前內存拷貝請求以頁為單位取回源數據并存儲到共享緩存中,同時將共享緩存中的已經就緒的數據頁以頁為單位寫入關聯MPI點對點接收請求的目的地址中, ...
【技術特征摘要】
1.一種面向多核微處理器的內存拷貝加速方法,其特征在于實施步驟如下1)在微處理器指令集中增加內存拷貝指令,所述內存拷貝指令包括普通內存拷貝指令、MPI點對點發送指令、MPI點對點接收指令、MPI群組發送指令和MPI群組接收指令;在微處理器中的指令執行流水線外部建立用于執行基于MPI通信的內存拷貝請求的MPI通信加速模塊;2)將譯碼得到的內存拷貝指令轉換成對應的內存拷貝請求,如果當前內存拷貝請求為普通內存拷貝請求時,分發給指令執行流水線中的內存拷貝單元并跳轉執行步驟3);否則將內存拷貝請求分發給MPI通信加速模塊并跳轉執行步驟4);3 )內存拷貝單元將內存拷貝請求緩存到請求隊列中,并執行請求隊列中的當前內存拷貝請求,以頁為單位取回源數據并寫入目的地址;4) MPI通信加速模塊將內存拷貝請求緩存到請求隊列中,并執行請求隊列中的當前內存拷貝請求;如果當前內存拷貝請求為MPI點對點發送請求,則獲取與當前內存拷貝請求組成點對點通信的關聯MPI點對點接收請求,執行當前內存拷貝請求以頁為單位取回源數據并存儲到共享緩存中,同時將共享緩存中的已經就緒的數據頁以頁為單位寫入關聯MPI 點對點接收請求的目的地址中,最終完成MPI點對點發送請求和MPI點對點接收請求的執行;如果當前內存拷貝請求為MPI群組發送請求,則獲取與當前內存拷貝請求組成群組通信的MPI群組接收請求,然后執行當前內存拷貝請求以頁為單位取回源數據并存儲到共享緩存中,同時將共享緩存中的已經就緒的數據頁以頁為單位分別寫入各個MPI群組接收請求的目的地址中,最終完成MPI群組發送請求和MPI群組接收請求的執行。2.根據權利要求1所述的面向多核微處理器的內存拷貝加速方法,其特征在于,所述步驟3)的詳細步驟如下3.O內存拷貝單元將內存拷貝請求緩存到請求隊列中;3.2)內存拷貝單元執行請求隊列中的當前內存拷貝請求,將當前內存拷貝請求中的目的地址、拷貝長度與內存拷貝單元的請求隊列中其它內存拷貝指令的源地址、拷貝長度進行比較,如果所述目的地址和所述源地址相同且拷貝長度相同則判定為兩者具有數據相關關系;3. 3)判斷當前內存拷貝請求是否存在具有數據相關關系的關聯內存拷貝請求,如果不存在則執行當前內存拷貝請求以頁為單位取回源數據并寫入目的地址,否則跳轉執行步驟 3.4);3.4)首先從請求隊列中獲取與當前內存拷貝請求具有數據相關關系的關聯內存拷貝指令,然后執行當前內存拷貝指令以頁為單位取回源數據并寫入目的地址,同時將已讀取的數據頁寫入關聯內存拷貝請求的目的地址中,最終完成當前內存拷貝請求及其關聯內存拷貝請求的執行。3.根據權利要求1或2所述的面向多核微處理器的內存拷貝加速方法,其特征在于 所述內存拷貝單元的請求隊列和MPI通信加速模塊的請求隊列中的每一項均由源地址、目的地址、拷貝長度、拷貝類型、源地址’、目的地址’與拷貝長度’組成,其中源地址、目的地址、拷貝長度、拷貝類型分別對應內存拷貝指令中的源地址、目的地址、拷貝長度、拷貝類型;所述源地址’表示此次內存拷貝過程中還未完成的源內存區域的起始地址、所述目的地址’表示還未完成的源內存區域的目的內存區域的起始地址、所述拷貝長度’表示還未完成的源內存區域的待拷貝長度,所述源地址’、目的地址’與拷貝長度’的初始值分別為內存拷貝指令中的源地址、目的地址與拷貝長度;所述將源數據拷貝到共享緩存中時,一并將當前頁拷貝信息存儲在頁拷貝狀態表中,所述頁拷貝狀態表的每一項由源頁起始地址、目的頁起始地址和拷貝長度組成。4.根據權利要求1所述的面向多核微處理器的內存拷貝加速方法,其特征在于,所述步驟4)的詳細步驟包括 4.1) MPI通信加速模塊將內存拷貝請求緩存到請求隊列中; 4.2) MPI通信加速模塊執行請求隊列中的當前內存拷貝請求,當MPI點對點發送請求處于MPI通信加速模塊中請求隊列的隊列頭部時,得到服務并跳轉執行步驟4. 3);當MPI群組發送請求處于MPI通信加速模塊中請求隊列的隊列頭部時,得到服務并跳轉執行步驟4. 7); 4.3)將MPI點對點發送請求的目的地址、拷貝長度與請求隊列中內存拷貝請求的源地址、拷貝長度分別進行比較,如果MPI點對點發送請求的目的地址與請求隊列中內存拷貝請求的源地址相同且兩者的拷貝長度相同,則判定該內存拷貝請求為與所述MPI點對點發送請求組成點對點通信的MPI點對點接收請求,使MPI點對點接收請求同時得到服務; 4.4)將MPI點對點發送請求分解為頁拷貝; 4.5)依次執行頁拷貝從MPI點對點發送請求的源地址中取回源數據并緩存到共享緩存中,同時將取回的源數據頁寫入MPI點對點接收請求的目的地址中,修改MPI點對點接收源數據的拷貝長度’,使MPI點對點...
【專利技術屬性】
技術研發人員:郭御風,石偉,張明,竇強,龔銳,鄧宇,任巨,馬愛永,羅莉,王永文,
申請(專利權)人:中國人民解放軍國防科學技術大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。