版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
多核技術(shù)分析匯報人:成都研究所日期:2007-11-13?2006,ZTECorporation.Allrightsreserved.目錄多核相關概念SMP關鍵技術(shù)多核應用模式多核軟件設計要素多核相關概念單核結(jié)構(gòu)、多處理器結(jié)構(gòu)以及多核結(jié)構(gòu)之間的簡單對比多核相關概念SMP:指在兩個相似(或相同)的處理器通過一條高速通道連接,并且共享外設和存儲器空間的體系結(jié)構(gòu)上,運行同一個操作系統(tǒng)實例,上層應用對于多CPU、線程多實例無需了解,由操作系統(tǒng)自動協(xié)調(diào)運行,并管理共享資源。AMP:在一個由兩顆或者多顆相同或者不同的處理器通過各種通信通道連接(比如可以將一個MCU(MainControlUnit)和一個DSP集成在一起),在邏輯上共享或者獨占外設、存儲器的體系架構(gòu)上,運行不同的操作系統(tǒng)實例,相互之間通過TIPC(TransparentInter-ProcessCommunication)等機制通訊。往往是用于主控處理單元與各種專業(yè)協(xié)處理器協(xié)同工作的情形。多核:是一種處理器的結(jié)構(gòu),在一個芯片上集成了多個處理器核心。一般各個核有獨立的L1cache,但共享L2Cache,同時,也共享存儲器、外設。SMT(HT):同時多線程技術(shù)(在intel稱為超線程技術(shù)),是在CPU中提供多個半獨立的處理器單元,其中寄存器獨立,但共享L1cache和ALU單元,其目的是提高ALU的利用率,提升CPU效率。從物理上來看,是一個類多CPU體系。當然各芯片廠家實現(xiàn)方案可能不同。多處理器:由多顆相同或者不同的獨立完整的CPU通過通信通道連接,可共享也可獨立擁有存儲器、外設。多核相關概念CPU數(shù)量執(zhí)行單元(ALU)體系結(jié)構(gòu)狀態(tài)信息(寄存器)Cache總線/內(nèi)存/中斷/外設應用模式/操作系統(tǒng)需求說明單內(nèi)核/多線程單個,復用單個,復用1套,復用1套,共用共用通過延遲隱藏提升系統(tǒng)性能SMT/HT(超線程)單個,復用單個,復用多套,并行1套,共用共用SMP通過延遲隱藏提升系統(tǒng)性能。性能提升有限多核多個,獨立并行運行多個,獨立并行運行多套,并行1套或者多套,共享或者獨立一般為共用,也可分段使用SMP/AMP真正并行,理論上可達到核數(shù)N的加速比多處理器多個,獨立運行多個獨立運行多套,獨立多套獨立一般為獨立使用,也可共用內(nèi)存AMP/SMP并行,理論上可達到CPU數(shù)N的加速比SMP關鍵技術(shù)之一SMP調(diào)度Core1………………………調(diào)度代碼優(yōu)先級1Ready線程隊列優(yōu)先級2……優(yōu)先級n線程A線程B線程C線程D優(yōu)先級1Block線程隊列優(yōu)先級2……優(yōu)先級n線程X線程Y線程Z線程QCore2Core3Core4調(diào)度點裝載執(zhí)行掃描線程隊列裝載線程執(zhí)行調(diào)度點調(diào)度點調(diào)度點裝載執(zhí)行掃描線程隊列裝載線程執(zhí)行裝載執(zhí)行掃描線程隊列裝載線程執(zhí)行裝載執(zhí)行掃描線程隊列裝載線程執(zhí)行調(diào)度點掃描線程隊列裝載執(zhí)行裝載線程執(zhí)行單核調(diào)度多核調(diào)度同步技術(shù)描述作用范圍CPU獨立變量每個CPU單獨使用各自私有的變量結(jié)構(gòu)AllCPUs原子操作對計數(shù)變量的原子修改操作AllCPUs內(nèi)存柵欄(barrier)避免對CPU指令操作的重排序LocalCPUorAllCPUsSpinlock基于忙等的鎖方式AllCPUs信號量基于阻塞的鎖方式(sleep)AllCPUs本地中斷鎖在本CPU上實現(xiàn)中斷屏蔽LocalCPU讀-拷貝-更新鎖(RCU)對通過指針訪問共享數(shù)據(jù)結(jié)構(gòu)的一種無鎖機制AllCPUsSMP關鍵技術(shù)之二共享資源互斥保護SMP關鍵技術(shù)之三中斷管理多核應用模式AMP:每個核運行獨立的OS,或者同種OS的獨立實例;SMP:一個OS的單一實例同時管理所有CPU,所有應用可以浮動到其中任一個去運行;BMP:一個OS的單一實例同時管理所有CPU,但可以將某些應用或者線程鎖定在指定的CPU上運行,實際上是SMP的一種特例;多核應用模式擴展性已有單核代碼遷移效率總體研發(fā)效率及成本性能適用場景AMP差較高要維護多個版本,甚至多種操作系統(tǒng)實現(xiàn),需要多種工具支持,效率低,成本高可以采用不同的操作系統(tǒng)來實現(xiàn)非對稱性業(yè)務,實時響應能力強并行性差,嚴重非對稱性業(yè)務,關注有序性的業(yè)務SMP好差,主要是編程理念有變化,遷移成本高版本維護簡單,有較好的研發(fā)工具支持,效率高,成本低并行性業(yè)務處理性能高,ThrougthPut最佳,實時響應能力不能保證并行性程序較高,負荷對稱型業(yè)務。BMP較好較高,BMP有時做為SMP的過渡,但可能不能充分發(fā)揮多核優(yōu)勢同SMP同SMP與SMP類似,適用于已有單核應用遷移到SMP的過渡階段多核軟件開發(fā)總體要求架構(gòu)方面:提升軟件并行性算法級(使用并行算法、使用OpenMP編程)任務級(流水線、多實例)合理規(guī)劃資源分配(中斷資源分配、處理器分配)編程方面:選用適當?shù)耐绞侄慰刂奇i粒度充分認識多核帶來的程序并發(fā)性提高(同時多任務運行、關中斷將不確保安全的同步)下層支撐平臺提供支持:多種類型同步手段(spinLock,讀寫鎖、全局中斷鎖…)快速核間通訊手段(IPI機制)并發(fā)任務管理,二級調(diào)度任務間的同步性分解子系統(tǒng)---將系統(tǒng)業(yè)務分解為相對獨立的幾個子系統(tǒng),盡量減少它們的藕合性;流水線---將耗用CPU大的業(yè)務流程分解為更細粒度的流水線,一個線程處理一步。在流水線的不同階段存在著不同的數(shù)據(jù)集。盡量減少上下流程的共享資源競爭沖突;多實例化---將耗用CPU大的業(yè)務流程設計為可并行的、多實例化的多線程或者多進程,并盡量減少多實例間的共享資源競爭沖突;其中又包含兩種模式:工作線程
----一個主線程創(chuàng)建幾個線程并行執(zhí)行工作流。工作線程數(shù)目應與CPU核數(shù)目相當,這樣每個核都可以處理相同份額的工作。主線程則監(jiān)控協(xié)調(diào)工作線程的工作。對等體
----一個線程創(chuàng)建其他線程,并做為對等體參與分擔工作。多核軟件設計要素之一業(yè)務流程并行化多核軟件設計要素之一業(yè)務流程并行化優(yōu)點:流程清楚,實現(xiàn)方式簡單,可以最大程度地減少互斥操作;缺點:如果各部分的處理負荷嚴重不對稱,則無法利用多核的優(yōu)勢;由于分解的流水線數(shù)量與處理器數(shù)量有關系,不利于各種多核體系上的移植、擴展,比如2核擴展為4核;分解子系統(tǒng):系統(tǒng)業(yè)務分解為多個子系統(tǒng);分配綁定到多核上,各自獨立運行;多核軟件設計要素之一業(yè)務流程并行化優(yōu)點:流程清楚,實現(xiàn)方式簡單,可以最大程度地減少互斥操作;缺點:如果各部分的處理負荷嚴重不對稱,則無法利用多核的優(yōu)勢;由于分解的流水線數(shù)量與處理器數(shù)量有關系,不利于各種多核體系上的移植、擴展,比如2核擴展為4核;流水線:關鍵業(yè)務流程串行化;分配綁定到多核上;多核軟件設計要素之一業(yè)務流程并行化優(yōu)點:操作系統(tǒng)自動調(diào)度,最大程度上實現(xiàn)負荷均衡;與具體多核體系架構(gòu)無關,移植擴展方便;缺點:要求線程負荷盡量均勻、粒度更細,需要對現(xiàn)有系統(tǒng)進行分析改造;線程多實例對于編程設計要求較高;多實例化:關鍵業(yè)務流程多實例化;由操作系統(tǒng)動態(tài)調(diào)度到多核上執(zhí)行;多核軟件設計要素之二合理規(guī)劃共享資源分配同一外設獨占式訪問,減少外設訪問沖突;不同外設負荷均分到不同CPU,提高響應速度;APIC可實現(xiàn)中斷輪轉(zhuǎn)到各CPU,對于處理性能要求極高的外設,也可以由APIC將負荷分擔到多個核上多核軟件設計要素之三
充分考慮單/多核共享資源互斥保護方式的差異利用同等優(yōu)先級FIFO調(diào)度機制來保證共享資源互斥將不再可靠;低優(yōu)先級任務也可能會與高優(yōu)先級任務并行運行,搶奪共享資源;鎖中斷在多核中將不能保證安全的同步共享資源互斥保護?流程有序性?解決方法:通過合適的、顯式的同步互斥機制來保證;將相關任務鎖定在同一個核內(nèi)運行,保持與單核相同的調(diào)度運行方式;由主線程來監(jiān)控協(xié)調(diào)各工作線程的工作;多核軟件設計要素之四
進程/線程多實例并非越多越好進程/線程增多,調(diào)度效率受到影響,進程/線程切換開銷、Cache命中率都會影響到系統(tǒng)性能解決方法:一般情況下,進程/線程多實例數(shù)量與核數(shù)相同時,效率可以達到最佳;對于并發(fā)度很高的業(yè)務,從設計與實現(xiàn)流程清晰的角度出發(fā),仍然適合采用大量的多實例線程多核軟件設計要素之五
線程飄移or線程綁定線程/進程飄移可充分利用SMP操作系統(tǒng)的調(diào)度能力,實現(xiàn)多核間完全的負荷均衡,可保證平滑地多核擴展能力;線程/進程綁定可減少切換開銷,提高Cache命中率,甚至保證既有單核軟件系統(tǒng)以最小代價遷移到多核上;解決方法:對于提供不同業(yè)務功能的多個線程,或者處理流程前后相關性密切的線程,適合于使用線程綁定;對于提供相同業(yè)務的多實例并行線程,處理流程前后相關性弱的線程,適合于使用線程自動調(diào)度,就可能出現(xiàn)線程飄移;多核軟件設計要素之六
盡量減少共享數(shù)據(jù)的訪問沖突共享數(shù)據(jù)的訪問沖突是制約多核性能提升的一個重要因素,信號量會引起線程阻塞以及切換開銷,自旋鎖會導致CPU短時間空轉(zhuǎn),原子操作會導致總線短暫鎖止;解決方法:通過優(yōu)化的數(shù)據(jù)結(jié)構(gòu)設計,比如多實例化數(shù)據(jù),僅在不得已的情況下才進行沖突數(shù)據(jù)訪問(例如Linux2.6改進的每CPU線程調(diào)度隊列);使用類環(huán)形隊列結(jié)構(gòu),產(chǎn)生者與消費者獨立操作,減少互斥;使用讀寫鎖;多核產(chǎn)品演進步驟第一步:架構(gòu)層面演進多模塊(多實例)方式AMP方式基本思路:任務與CPU進行靜態(tài)綁定分配,屏蔽軟件編程上對多核的感知第二步:代碼層面演進多線程SMP負載平衡根據(jù)對多核技術(shù)的理解過程,產(chǎn)品向多核演進可以采用逐步深入的步驟:AMP應用解決方案一控制層:實現(xiàn)信令、協(xié)議交互、操作維護管理,業(yè)務較為豐富,一般采用通用RTOS;數(shù)據(jù)層:實現(xiàn)高效率數(shù)據(jù)處理、轉(zhuǎn)發(fā),一般采用短小精悍的特殊OS,甚至是單任務OS。但考慮到編程效率、維護成本,也可以采用裁剪過的通用RTOS;Core1控制層Core2數(shù)據(jù)層Core3數(shù)據(jù)層Core4數(shù)據(jù)層AMP應用解決方案二業(yè)務擴展層:提供豐富靈活的業(yè)務擴展能力,良好的用戶交互性,一般采用通用嵌入式OS,甚至包括GUI能力,如WINCE、Linux等;基本服務層:提供設備的基本業(yè)務能力,強調(diào)穩(wěn)定、高可用、高響應能力,如手機中的編解碼、移動信令處理;Core1業(yè)務擴展層Core2基本服務層AMP應用解決方案支撐層需提供支持為通用RTOS和特種OS提供統(tǒng)一的OSS封裝層,主要是TIPC、分布式擴展機制,盡量屏蔽上層應用與異種OS的相關性;為各種OS提供統(tǒng)一、方便的開發(fā)工具(調(diào)試、調(diào)優(yōu));SMP/BMP應用解決方案不考慮多進程地址空間隔離情形,只是多線程調(diào)度運行,則需解決:應用層:線程調(diào)度運行方式,共享資源互斥保護機制;OSS:封裝多種互斥保護機制,如自旋鎖;考慮多進程地址空間隔離情形,則還需解決:應用層:全局數(shù)據(jù)共享訪問;OSS:提供進程間通訊機制,需改進分布式通訊機制、內(nèi)存分配機制、版本管理、任務監(jiān)控;SMP/BMP應用解決方案一單進程多線程模式一、產(chǎn)品應用進程鎖定在某核上應用層:基本無變化,仍然在一個地址空間運行,優(yōu)先級調(diào)度方式、共享資源互斥保護機制、通信方式都延續(xù)??梢灾鸩椒蛛x各模塊為多進程;OSS:基本無變化;二、產(chǎn)品應用進程不鎖定在某核上,即線程可自由調(diào)度到各核上運行應用層:考慮線程調(diào)度運行方式變化帶來的影響,共享資源互斥保護機制;OSS:提供多種互斥保護機制;SMP/BMP應用解決方案二多進程多線程模式應用層:需改造全局數(shù)據(jù)共享訪問機制,共享資源互斥保護機制,調(diào)整線程優(yōu)先級運作方式;OSS:需要實現(xiàn)多實例,改造內(nèi)存管理、進程間通訊、分布式通訊、互斥保護機制、版本管理方式、任務監(jiān)控方式;在性能需求較強的場合,可能需要內(nèi)核任務管理;反之,出于安全性考慮,則可以將所有模塊都放到用戶態(tài);多核開發(fā)支持手段---調(diào)試調(diào)試AMP調(diào)試,需要同時對多個CPU進行調(diào)試,各CPU可能運行不同的OSSMP調(diào)試,smp線程并發(fā)性加強,需要支持線程、進程多種調(diào)試方式KIDE支持多target調(diào)試,已掌握調(diào)試器核心技術(shù),可以方便擴展到多OS上;KIDE支持線程級、進程級、系統(tǒng)級調(diào)試模式,可以靈活切換多核開發(fā)支持手段---性能調(diào)優(yōu)性能分析 多核的效率建立在并發(fā)的基礎上,并發(fā)效率的調(diào)優(yōu),需要性能分析工具的支持:鎖性能(獲取、阻塞、等待時間….)調(diào)度性能軟件流程并發(fā)度分析KProfile與KLinux,KID
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 癲癇病人的急救護理
- 淺談制作課件教學課件
- 測量運動課件教學課件
- 部編版八年級地理上冊第四章第二節(jié)《農(nóng)業(yè)》課件
- 河南省2024九年級語文上冊第一單元3我愛這土地課件新人教版
- 2.3.1共價鍵的極性 課件 高二上學期化學人教版(2019)選擇性必修2
- 特殊藥品管理應急演練
- 董氏奇穴治療頸椎病
- 初中語文教案教學反思
- 護理專業(yè)說課稿
- 全自動洗胃機操作流程及注意事項
- 地籍調(diào)查表(宅基地)模板
- 導管相關性尿路感染學習課件
- 《樹立正確的婚戀觀》課件
- 疑難信訪培訓課件
- 幼兒空間智力課件
- 概率論與數(shù)理統(tǒng)計考試卷題庫2 (七)
- 【制藥廢水預處理技術(shù)的發(fā)展綜述報告6000字(論文)】
- 水利專業(yè)的職業(yè)生涯規(guī)劃書
- 展開友誼共享愉快小學二年級主題班會
- 人教版2023-2024學年數(shù)學六年級上冊 第四單元《比》單元真題拔高卷(參考答案)人教版
評論
0/150
提交評論