




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
多核技術分析匯報人:成都研究所日期:2007-11-13?2006,ZTECorporation.Allrightsreserved.目錄多核相關概念SMP關鍵技術多核應用模式多核軟件設計要素多核相關概念單核結構、多處理器結構以及多核結構之間的簡單對比多核相關概念SMP:指在兩個相似(或相同)的處理器通過一條高速通道連接,并且共享外設和存儲器空間的體系結構上,運行同一個操作系統實例,上層應用對于多CPU、線程多實例無需了解,由操作系統自動協調運行,并管理共享資源。AMP:在一個由兩顆或者多顆相同或者不同的處理器通過各種通信通道連接(比如可以將一個MCU(MainControlUnit)和一個DSP集成在一起),在邏輯上共享或者獨占外設、存儲器的體系架構上,運行不同的操作系統實例,相互之間通過TIPC(TransparentInter-ProcessCommunication)等機制通訊。往往是用于主控處理單元與各種專業協處理器協同工作的情形。多核:是一種處理器的結構,在一個芯片上集成了多個處理器核心。一般各個核有獨立的L1cache,但共享L2Cache,同時,也共享存儲器、外設。SMT(HT):同時多線程技術(在intel稱為超線程技術),是在CPU中提供多個半獨立的處理器單元,其中寄存器獨立,但共享L1cache和ALU單元,其目的是提高ALU的利用率,提升CPU效率。從物理上來看,是一個類多CPU體系。當然各芯片廠家實現方案可能不同。多處理器:由多顆相同或者不同的獨立完整的CPU通過通信通道連接,可共享也可獨立擁有存儲器、外設。多核相關概念CPU數量執行單元(ALU)體系結構狀態信息(寄存器)Cache總線/內存/中斷/外設應用模式/操作系統需求說明單內核/多線程單個,復用單個,復用1套,復用1套,共用共用通過延遲隱藏提升系統性能SMT/HT(超線程)單個,復用單個,復用多套,并行1套,共用共用SMP通過延遲隱藏提升系統性能。性能提升有限多核多個,獨立并行運行多個,獨立并行運行多套,并行1套或者多套,共享或者獨立一般為共用,也可分段使用SMP/AMP真正并行,理論上可達到核數N的加速比多處理器多個,獨立運行多個獨立運行多套,獨立多套獨立一般為獨立使用,也可共用內存AMP/SMP并行,理論上可達到CPU數N的加速比SMP關鍵技術之一SMP調度Core1………………………調度代碼優先級1Ready線程隊列優先級2……優先級n線程A線程B線程C線程D優先級1Block線程隊列優先級2……優先級n線程X線程Y線程Z線程QCore2Core3Core4調度點裝載執行掃描線程隊列裝載線程執行調度點調度點調度點裝載執行掃描線程隊列裝載線程執行裝載執行掃描線程隊列裝載線程執行裝載執行掃描線程隊列裝載線程執行調度點掃描線程隊列裝載執行裝載線程執行單核調度多核調度同步技術描述作用范圍CPU獨立變量每個CPU單獨使用各自私有的變量結構AllCPUs原子操作對計數變量的原子修改操作AllCPUs內存柵欄(barrier)避免對CPU指令操作的重排序LocalCPUorAllCPUsSpinlock基于忙等的鎖方式AllCPUs信號量基于阻塞的鎖方式(sleep)AllCPUs本地中斷鎖在本CPU上實現中斷屏蔽LocalCPU讀-拷貝-更新鎖(RCU)對通過指針訪問共享數據結構的一種無鎖機制AllCPUsSMP關鍵技術之二共享資源互斥保護SMP關鍵技術之三中斷管理多核應用模式AMP:每個核運行獨立的OS,或者同種OS的獨立實例;SMP:一個OS的單一實例同時管理所有CPU,所有應用可以浮動到其中任一個去運行;BMP:一個OS的單一實例同時管理所有CPU,但可以將某些應用或者線程鎖定在指定的CPU上運行,實際上是SMP的一種特例;多核應用模式擴展性已有單核代碼遷移效率總體研發效率及成本性能適用場景AMP差較高要維護多個版本,甚至多種操作系統實現,需要多種工具支持,效率低,成本高可以采用不同的操作系統來實現非對稱性業務,實時響應能力強并行性差,嚴重非對稱性業務,關注有序性的業務SMP好差,主要是編程理念有變化,遷移成本高版本維護簡單,有較好的研發工具支持,效率高,成本低并行性業務處理性能高,ThrougthPut最佳,實時響應能力不能保證并行性程序較高,負荷對稱型業務。BMP較好較高,BMP有時做為SMP的過渡,但可能不能充分發揮多核優勢同SMP同SMP與SMP類似,適用于已有單核應用遷移到SMP的過渡階段多核軟件開發總體要求架構方面:提升軟件并行性算法級(使用并行算法、使用OpenMP編程)任務級(流水線、多實例)合理規劃資源分配(中斷資源分配、處理器分配)編程方面:選用適當的同步手段控制鎖粒度充分認識多核帶來的程序并發性提高(同時多任務運行、關中斷將不確保安全的同步)下層支撐平臺提供支持:多種類型同步手段(spinLock,讀寫鎖、全局中斷鎖…)快速核間通訊手段(IPI機制)并發任務管理,二級調度任務間的同步性分解子系統---將系統業務分解為相對獨立的幾個子系統,盡量減少它們的藕合性;流水線---將耗用CPU大的業務流程分解為更細粒度的流水線,一個線程處理一步。在流水線的不同階段存在著不同的數據集。盡量減少上下流程的共享資源競爭沖突;多實例化---將耗用CPU大的業務流程設計為可并行的、多實例化的多線程或者多進程,并盡量減少多實例間的共享資源競爭沖突;其中又包含兩種模式:工作線程
----一個主線程創建幾個線程并行執行工作流。工作線程數目應與CPU核數目相當,這樣每個核都可以處理相同份額的工作。主線程則監控協調工作線程的工作。對等體
----一個線程創建其他線程,并做為對等體參與分擔工作。多核軟件設計要素之一業務流程并行化多核軟件設計要素之一業務流程并行化優點:流程清楚,實現方式簡單,可以最大程度地減少互斥操作;缺點:如果各部分的處理負荷嚴重不對稱,則無法利用多核的優勢;由于分解的流水線數量與處理器數量有關系,不利于各種多核體系上的移植、擴展,比如2核擴展為4核;分解子系統:系統業務分解為多個子系統;分配綁定到多核上,各自獨立運行;多核軟件設計要素之一業務流程并行化優點:流程清楚,實現方式簡單,可以最大程度地減少互斥操作;缺點:如果各部分的處理負荷嚴重不對稱,則無法利用多核的優勢;由于分解的流水線數量與處理器數量有關系,不利于各種多核體系上的移植、擴展,比如2核擴展為4核;流水線:關鍵業務流程串行化;分配綁定到多核上;多核軟件設計要素之一業務流程并行化優點:操作系統自動調度,最大程度上實現負荷均衡;與具體多核體系架構無關,移植擴展方便;缺點:要求線程負荷盡量均勻、粒度更細,需要對現有系統進行分析改造;線程多實例對于編程設計要求較高;多實例化:關鍵業務流程多實例化;由操作系統動態調度到多核上執行;多核軟件設計要素之二合理規劃共享資源分配同一外設獨占式訪問,減少外設訪問沖突;不同外設負荷均分到不同CPU,提高響應速度;APIC可實現中斷輪轉到各CPU,對于處理性能要求極高的外設,也可以由APIC將負荷分擔到多個核上多核軟件設計要素之三
充分考慮單/多核共享資源互斥保護方式的差異利用同等優先級FIFO調度機制來保證共享資源互斥將不再可靠;低優先級任務也可能會與高優先級任務并行運行,搶奪共享資源;鎖中斷在多核中將不能保證安全的同步共享資源互斥保護?流程有序性?解決方法:通過合適的、顯式的同步互斥機制來保證;將相關任務鎖定在同一個核內運行,保持與單核相同的調度運行方式;由主線程來監控協調各工作線程的工作;多核軟件設計要素之四
進程/線程多實例并非越多越好進程/線程增多,調度效率受到影響,進程/線程切換開銷、Cache命中率都會影響到系統性能解決方法:一般情況下,進程/線程多實例數量與核數相同時,效率可以達到最佳;對于并發度很高的業務,從設計與實現流程清晰的角度出發,仍然適合采用大量的多實例線程多核軟件設計要素之五
線程飄移or線程綁定線程/進程飄移可充分利用SMP操作系統的調度能力,實現多核間完全的負荷均衡,可保證平滑地多核擴展能力;線程/進程綁定可減少切換開銷,提高Cache命中率,甚至保證既有單核軟件系統以最小代價遷移到多核上;解決方法:對于提供不同業務功能的多個線程,或者處理流程前后相關性密切的線程,適合于使用線程綁定;對于提供相同業務的多實例并行線程,處理流程前后相關性弱的線程,適合于使用線程自動調度,就可能出現線程飄移;多核軟件設計要素之六
盡量減少共享數據的訪問沖突共享數據的訪問沖突是制約多核性能提升的一個重要因素,信號量會引起線程阻塞以及切換開銷,自旋鎖會導致CPU短時間空轉,原子操作會導致總線短暫鎖止;解決方法:通過優化的數據結構設計,比如多實例化數據,僅在不得已的情況下才進行沖突數據訪問(例如Linux2.6改進的每CPU線程調度隊列);使用類環形隊列結構,產生者與消費者獨立操作,減少互斥;使用讀寫鎖;多核產品演進步驟第一步:架構層面演進多模塊(多實例)方式AMP方式基本思路:任務與CPU進行靜態綁定分配,屏蔽軟件編程上對多核的感知第二步:代碼層面演進多線程SMP負載平衡根據對多核技術的理解過程,產品向多核演進可以采用逐步深入的步驟:AMP應用解決方案一控制層:實現信令、協議交互、操作維護管理,業務較為豐富,一般采用通用RTOS;數據層:實現高效率數據處理、轉發,一般采用短小精悍的特殊OS,甚至是單任務OS。但考慮到編程效率、維護成本,也可以采用裁剪過的通用RTOS;Core1控制層Core2數據層Core3數據層Core4數據層AMP應用解決方案二業務擴展層:提供豐富靈活的業務擴展能力,良好的用戶交互性,一般采用通用嵌入式OS,甚至包括GUI能力,如WINCE、Linux等;基本服務層:提供設備的基本業務能力,強調穩定、高可用、高響應能力,如手機中的編解碼、移動信令處理;Core1業務擴展層Core2基本服務層AMP應用解決方案支撐層需提供支持為通用RTOS和特種OS提供統一的OSS封裝層,主要是TIPC、分布式擴展機制,盡量屏蔽上層應用與異種OS的相關性;為各種OS提供統一、方便的開發工具(調試、調優);SMP/BMP應用解決方案不考慮多進程地址空間隔離情形,只是多線程調度運行,則需解決:應用層:線程調度運行方式,共享資源互斥保護機制;OSS:封裝多種互斥保護機制,如自旋鎖;考慮多進程地址空間隔離情形,則還需解決:應用層:全局數據共享訪問;OSS:提供進程間通訊機制,需改進分布式通訊機制、內存分配機制、版本管理、任務監控;SMP/BMP應用解決方案一單進程多線程模式一、產品應用進程鎖定在某核上應用層:基本無變化,仍然在一個地址空間運行,優先級調度方式、共享資源互斥保護機制、通信方式都延續。可以逐步分離各模塊為多進程;OSS:基本無變化;二、產品應用進程不鎖定在某核上,即線程可自由調度到各核上運行應用層:考慮線程調度運行方式變化帶來的影響,共享資源互斥保護機制;OSS:提供多種互斥保護機制;SMP/BMP應用解決方案二多進程多線程模式應用層:需改造全局數據共享訪問機制,共享資源互斥保護機制,調整線程優先級運作方式;OSS:需要實現多實例,改造內存管理、進程間通訊、分布式通訊、互斥保護機制、版本管理方式、任務監控方式;在性能需求較強的場合,可能需要內核任務管理;反之,出于安全性考慮,則可以將所有模塊都放到用戶態;多核開發支持手段---調試調試AMP調試,需要同時對多個CPU進行調試,各CPU可能運行不同的OSSMP調試,smp線程并發性加強,需要支持線程、進程多種調試方式KIDE支持多target調試,已掌握調試器核心技術,可以方便擴展到多OS上;KIDE支持線程級、進程級、系統級調試模式,可以靈活切換多核開發支持手段---性能調優性能分析 多核的效率建立在并發的基礎上,并發效率的調優,需要性能分析工具的支持:鎖性能(獲取、阻塞、等待時間….)調度性能軟件流程并發度分析KProfile與KLinux,KID
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高溫爐膛三維隔熱設計行業深度調研及發展項目商業計劃書
- 美容護理行業可持續發展趨勢的政策支持-洞察闡釋
- 高速鐵路信號系統企業制定與實施新質生產力項目商業計劃書
- 綠色物流解決方案行業深度調研及發展項目商業計劃書
- 生物保健品企業制定與實施新質生產力項目商業計劃書
- 高精度醫學影像診斷平臺行業深度調研及發展項目商業計劃書
- 金融科技創業加速器行業跨境出海項目商業計劃書
- 中小企業信用融資服務行業跨境出海項目商業計劃書
- 氣候變化對生物群落影響的評估模型-洞察闡釋
- 肺炎衣原體治療效果的成本效益研究-洞察闡釋
- 小學生防跟蹤安全教育
- DB32/T 4880-2024民用建筑碳排放計算標準
- 浙江大學研究生導師培訓心得體會
- 勞動與社會保障專業大學生職業生涯發展
- DB11T 2335-2024 既有建筑外門窗改造及驗收技術標準
- 外研版(三起)小學英語三年級下冊Unit 1 Animal friends Get ready start up 課件
- 數碼相機-SONY索尼-α200(DSLR-A200)(快速入門指南)說明書
- 2024年中國海鮮水餃市場調查研究報告
- 模擬試卷(7)-【中職專用】2025年職教高考語文沖刺模擬卷(職教高考)解析版
- 【MOOC】成本會計學-西北農林科技大學 中國大學慕課MOOC答案
- 《反洗錢培訓》課件
評論
0/150
提交評論