多核技術(shù)分析_第1頁(yè)
多核技術(shù)分析_第2頁(yè)
多核技術(shù)分析_第3頁(yè)
多核技術(shù)分析_第4頁(yè)
多核技術(shù)分析_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

多核技術(shù)分析匯報(bào)人:成都研究所日期:2007-11-13?2006,ZTECorporation.Allrightsreserved.目錄多核相關(guān)概念SMP關(guān)鍵技術(shù)多核應(yīng)用模式多核軟件設(shè)計(jì)要素多核相關(guān)概念單核結(jié)構(gòu)、多處理器結(jié)構(gòu)以及多核結(jié)構(gòu)之間的簡(jiǎn)單對(duì)比多核相關(guān)概念SMP:指在兩個(gè)相似(或相同)的處理器通過(guò)一條高速通道連接,并且共享外設(shè)和存儲(chǔ)器空間的體系結(jié)構(gòu)上,運(yùn)行同一個(gè)操作系統(tǒng)實(shí)例,上層應(yīng)用對(duì)于多CPU、線程多實(shí)例無(wú)需了解,由操作系統(tǒng)自動(dòng)協(xié)調(diào)運(yùn)行,并管理共享資源。AMP:在一個(gè)由兩顆或者多顆相同或者不同的處理器通過(guò)各種通信通道連接(比如可以將一個(gè)MCU(MainControlUnit)和一個(gè)DSP集成在一起),在邏輯上共享或者獨(dú)占外設(shè)、存儲(chǔ)器的體系架構(gòu)上,運(yùn)行不同的操作系統(tǒng)實(shí)例,相互之間通過(guò)TIPC(TransparentInter-ProcessCommunication)等機(jī)制通訊。往往是用于主控處理單元與各種專業(yè)協(xié)處理器協(xié)同工作的情形。多核:是一種處理器的結(jié)構(gòu),在一個(gè)芯片上集成了多個(gè)處理器核心。一般各個(gè)核有獨(dú)立的L1cache,但共享L2Cache,同時(shí),也共享存儲(chǔ)器、外設(shè)。SMT(HT):同時(shí)多線程技術(shù)(在intel稱為超線程技術(shù)),是在CPU中提供多個(gè)半獨(dú)立的處理器單元,其中寄存器獨(dú)立,但共享L1cache和ALU單元,其目的是提高ALU的利用率,提升CPU效率。從物理上來(lái)看,是一個(gè)類多CPU體系。當(dāng)然各芯片廠家實(shí)現(xiàn)方案可能不同。多處理器:由多顆相同或者不同的獨(dú)立完整的CPU通過(guò)通信通道連接,可共享也可獨(dú)立擁有存儲(chǔ)器、外設(shè)。多核相關(guān)概念CPU數(shù)量執(zhí)行單元(ALU)體系結(jié)構(gòu)狀態(tài)信息(寄存器)Cache總線/內(nèi)存/中斷/外設(shè)應(yīng)用模式/操作系統(tǒng)需求說(shuō)明單內(nèi)核/多線程單個(gè),復(fù)用單個(gè),復(fù)用1套,復(fù)用1套,共用共用通過(guò)延遲隱藏提升系統(tǒng)性能SMT/HT(超線程)單個(gè),復(fù)用單個(gè),復(fù)用多套,并行1套,共用共用SMP通過(guò)延遲隱藏提升系統(tǒng)性能。性能提升有限多核多個(gè),獨(dú)立并行運(yùn)行多個(gè),獨(dú)立并行運(yùn)行多套,并行1套或者多套,共享或者獨(dú)立一般為共用,也可分段使用SMP/AMP真正并行,理論上可達(dá)到核數(shù)N的加速比多處理器多個(gè),獨(dú)立運(yùn)行多個(gè)獨(dú)立運(yùn)行多套,獨(dú)立多套獨(dú)立一般為獨(dú)立使用,也可共用內(nèi)存AMP/SMP并行,理論上可達(dá)到CPU數(shù)N的加速比SMP關(guān)鍵技術(shù)之一SMP調(diào)度Core1………………………調(diào)度代碼優(yōu)先級(jí)1Ready線程隊(duì)列優(yōu)先級(jí)2……優(yōu)先級(jí)n線程A線程B線程C線程D優(yōu)先級(jí)1Block線程隊(duì)列優(yōu)先級(jí)2……優(yōu)先級(jí)n線程X線程Y線程Z線程QCore2Core3Core4調(diào)度點(diǎn)裝載執(zhí)行掃描線程隊(duì)列裝載線程執(zhí)行調(diào)度點(diǎn)調(diào)度點(diǎn)調(diào)度點(diǎn)裝載執(zhí)行掃描線程隊(duì)列裝載線程執(zhí)行裝載執(zhí)行掃描線程隊(duì)列裝載線程執(zhí)行裝載執(zhí)行掃描線程隊(duì)列裝載線程執(zhí)行調(diào)度點(diǎn)掃描線程隊(duì)列裝載執(zhí)行裝載線程執(zhí)行單核調(diào)度多核調(diào)度同步技術(shù)描述作用范圍CPU獨(dú)立變量每個(gè)CPU單獨(dú)使用各自私有的變量結(jié)構(gòu)AllCPUs原子操作對(duì)計(jì)數(shù)變量的原子修改操作AllCPUs內(nèi)存柵欄(barrier)避免對(duì)CPU指令操作的重排序LocalCPUorAllCPUsSpinlock基于忙等的鎖方式AllCPUs信號(hào)量基于阻塞的鎖方式(sleep)AllCPUs本地中斷鎖在本CPU上實(shí)現(xiàn)中斷屏蔽LocalCPU讀-拷貝-更新鎖(RCU)對(duì)通過(guò)指針訪問(wèn)共享數(shù)據(jù)結(jié)構(gòu)的一種無(wú)鎖機(jī)制AllCPUsSMP關(guān)鍵技術(shù)之二共享資源互斥保護(hù)SMP關(guān)鍵技術(shù)之三中斷管理多核應(yīng)用模式AMP:每個(gè)核運(yùn)行獨(dú)立的OS,或者同種OS的獨(dú)立實(shí)例;SMP:一個(gè)OS的單一實(shí)例同時(shí)管理所有CPU,所有應(yīng)用可以浮動(dòng)到其中任一個(gè)去運(yùn)行;BMP:一個(gè)OS的單一實(shí)例同時(shí)管理所有CPU,但可以將某些應(yīng)用或者線程鎖定在指定的CPU上運(yùn)行,實(shí)際上是SMP的一種特例;多核應(yīng)用模式擴(kuò)展性已有單核代碼遷移效率總體研發(fā)效率及成本性能適用場(chǎng)景AMP差較高要維護(hù)多個(gè)版本,甚至多種操作系統(tǒng)實(shí)現(xiàn),需要多種工具支持,效率低,成本高可以采用不同的操作系統(tǒng)來(lái)實(shí)現(xiàn)非對(duì)稱性業(yè)務(wù),實(shí)時(shí)響應(yīng)能力強(qiáng)并行性差,嚴(yán)重非對(duì)稱性業(yè)務(wù),關(guān)注有序性的業(yè)務(wù)SMP好差,主要是編程理念有變化,遷移成本高版本維護(hù)簡(jiǎn)單,有較好的研發(fā)工具支持,效率高,成本低并行性業(yè)務(wù)處理性能高,ThrougthPut最佳,實(shí)時(shí)響應(yīng)能力不能保證并行性程序較高,負(fù)荷對(duì)稱型業(yè)務(wù)。BMP較好較高,BMP有時(shí)做為SMP的過(guò)渡,但可能不能充分發(fā)揮多核優(yōu)勢(shì)同SMP同SMP與SMP類似,適用于已有單核應(yīng)用遷移到SMP的過(guò)渡階段多核軟件開(kāi)發(fā)總體要求架構(gòu)方面:提升軟件并行性算法級(jí)(使用并行算法、使用OpenMP編程)任務(wù)級(jí)(流水線、多實(shí)例)合理規(guī)劃資源分配(中斷資源分配、處理器分配)編程方面:選用適當(dāng)?shù)耐绞侄慰刂奇i粒度充分認(rèn)識(shí)多核帶來(lái)的程序并發(fā)性提高(同時(shí)多任務(wù)運(yùn)行、關(guān)中斷將不確保安全的同步)下層支撐平臺(tái)提供支持:多種類型同步手段(spinLock,讀寫鎖、全局中斷鎖…)快速核間通訊手段(IPI機(jī)制)并發(fā)任務(wù)管理,二級(jí)調(diào)度任務(wù)間的同步性分解子系統(tǒng)---將系統(tǒng)業(yè)務(wù)分解為相對(duì)獨(dú)立的幾個(gè)子系統(tǒng),盡量減少它們的藕合性;流水線---將耗用CPU大的業(yè)務(wù)流程分解為更細(xì)粒度的流水線,一個(gè)線程處理一步。在流水線的不同階段存在著不同的數(shù)據(jù)集。盡量減少上下流程的共享資源競(jìng)爭(zhēng)沖突;多實(shí)例化---將耗用CPU大的業(yè)務(wù)流程設(shè)計(jì)為可并行的、多實(shí)例化的多線程或者多進(jìn)程,并盡量減少多實(shí)例間的共享資源競(jìng)爭(zhēng)沖突;其中又包含兩種模式:工作線程

----一個(gè)主線程創(chuàng)建幾個(gè)線程并行執(zhí)行工作流。工作線程數(shù)目應(yīng)與CPU核數(shù)目相當(dāng),這樣每個(gè)核都可以處理相同份額的工作。主線程則監(jiān)控協(xié)調(diào)工作線程的工作。對(duì)等體

----一個(gè)線程創(chuàng)建其他線程,并做為對(duì)等體參與分擔(dān)工作。多核軟件設(shè)計(jì)要素之一業(yè)務(wù)流程并行化多核軟件設(shè)計(jì)要素之一業(yè)務(wù)流程并行化優(yōu)點(diǎn):流程清楚,實(shí)現(xiàn)方式簡(jiǎn)單,可以最大程度地減少互斥操作;缺點(diǎn):如果各部分的處理負(fù)荷嚴(yán)重不對(duì)稱,則無(wú)法利用多核的優(yōu)勢(shì);由于分解的流水線數(shù)量與處理器數(shù)量有關(guān)系,不利于各種多核體系上的移植、擴(kuò)展,比如2核擴(kuò)展為4核;分解子系統(tǒng):系統(tǒng)業(yè)務(wù)分解為多個(gè)子系統(tǒng);分配綁定到多核上,各自獨(dú)立運(yùn)行;多核軟件設(shè)計(jì)要素之一業(yè)務(wù)流程并行化優(yōu)點(diǎn):流程清楚,實(shí)現(xiàn)方式簡(jiǎn)單,可以最大程度地減少互斥操作;缺點(diǎn):如果各部分的處理負(fù)荷嚴(yán)重不對(duì)稱,則無(wú)法利用多核的優(yōu)勢(shì);由于分解的流水線數(shù)量與處理器數(shù)量有關(guān)系,不利于各種多核體系上的移植、擴(kuò)展,比如2核擴(kuò)展為4核;流水線:關(guān)鍵業(yè)務(wù)流程串行化;分配綁定到多核上;多核軟件設(shè)計(jì)要素之一業(yè)務(wù)流程并行化優(yōu)點(diǎn):操作系統(tǒng)自動(dòng)調(diào)度,最大程度上實(shí)現(xiàn)負(fù)荷均衡;與具體多核體系架構(gòu)無(wú)關(guān),移植擴(kuò)展方便;缺點(diǎn):要求線程負(fù)荷盡量均勻、粒度更細(xì),需要對(duì)現(xiàn)有系統(tǒng)進(jìn)行分析改造;線程多實(shí)例對(duì)于編程設(shè)計(jì)要求較高;多實(shí)例化:關(guān)鍵業(yè)務(wù)流程多實(shí)例化;由操作系統(tǒng)動(dòng)態(tài)調(diào)度到多核上執(zhí)行;多核軟件設(shè)計(jì)要素之二合理規(guī)劃共享資源分配同一外設(shè)獨(dú)占式訪問(wèn),減少外設(shè)訪問(wèn)沖突;不同外設(shè)負(fù)荷均分到不同CPU,提高響應(yīng)速度;APIC可實(shí)現(xiàn)中斷輪轉(zhuǎn)到各CPU,對(duì)于處理性能要求極高的外設(shè),也可以由APIC將負(fù)荷分擔(dān)到多個(gè)核上多核軟件設(shè)計(jì)要素之三

充分考慮單/多核共享資源互斥保護(hù)方式的差異利用同等優(yōu)先級(jí)FIFO調(diào)度機(jī)制來(lái)保證共享資源互斥將不再可靠;低優(yōu)先級(jí)任務(wù)也可能會(huì)與高優(yōu)先級(jí)任務(wù)并行運(yùn)行,搶奪共享資源;鎖中斷在多核中將不能保證安全的同步共享資源互斥保護(hù)?流程有序性?解決方法:通過(guò)合適的、顯式的同步互斥機(jī)制來(lái)保證;將相關(guān)任務(wù)鎖定在同一個(gè)核內(nèi)運(yùn)行,保持與單核相同的調(diào)度運(yùn)行方式;由主線程來(lái)監(jiān)控協(xié)調(diào)各工作線程的工作;多核軟件設(shè)計(jì)要素之四

進(jìn)程/線程多實(shí)例并非越多越好進(jìn)程/線程增多,調(diào)度效率受到影響,進(jìn)程/線程切換開(kāi)銷、Cache命中率都會(huì)影響到系統(tǒng)性能解決方法:一般情況下,進(jìn)程/線程多實(shí)例數(shù)量與核數(shù)相同時(shí),效率可以達(dá)到最佳;對(duì)于并發(fā)度很高的業(yè)務(wù),從設(shè)計(jì)與實(shí)現(xiàn)流程清晰的角度出發(fā),仍然適合采用大量的多實(shí)例線程多核軟件設(shè)計(jì)要素之五

線程飄移or線程綁定線程/進(jìn)程飄移可充分利用SMP操作系統(tǒng)的調(diào)度能力,實(shí)現(xiàn)多核間完全的負(fù)荷均衡,可保證平滑地多核擴(kuò)展能力;線程/進(jìn)程綁定可減少切換開(kāi)銷,提高Cache命中率,甚至保證既有單核軟件系統(tǒng)以最小代價(jià)遷移到多核上;解決方法:對(duì)于提供不同業(yè)務(wù)功能的多個(gè)線程,或者處理流程前后相關(guān)性密切的線程,適合于使用線程綁定;對(duì)于提供相同業(yè)務(wù)的多實(shí)例并行線程,處理流程前后相關(guān)性弱的線程,適合于使用線程自動(dòng)調(diào)度,就可能出現(xiàn)線程飄移;多核軟件設(shè)計(jì)要素之六

盡量減少共享數(shù)據(jù)的訪問(wèn)沖突共享數(shù)據(jù)的訪問(wèn)沖突是制約多核性能提升的一個(gè)重要因素,信號(hào)量會(huì)引起線程阻塞以及切換開(kāi)銷,自旋鎖會(huì)導(dǎo)致CPU短時(shí)間空轉(zhuǎn),原子操作會(huì)導(dǎo)致總線短暫鎖止;解決方法:通過(guò)優(yōu)化的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),比如多實(shí)例化數(shù)據(jù),僅在不得已的情況下才進(jìn)行沖突數(shù)據(jù)訪問(wèn)(例如Linux2.6改進(jìn)的每CPU線程調(diào)度隊(duì)列);使用類環(huán)形隊(duì)列結(jié)構(gòu),產(chǎn)生者與消費(fèi)者獨(dú)立操作,減少互斥;使用讀寫鎖;多核產(chǎn)品演進(jìn)步驟第一步:架構(gòu)層面演進(jìn)多模塊(多實(shí)例)方式AMP方式基本思路:任務(wù)與CPU進(jìn)行靜態(tài)綁定分配,屏蔽軟件編程上對(duì)多核的感知第二步:代碼層面演進(jìn)多線程SMP負(fù)載平衡根據(jù)對(duì)多核技術(shù)的理解過(guò)程,產(chǎn)品向多核演進(jìn)可以采用逐步深入的步驟:AMP應(yīng)用解決方案一控制層:實(shí)現(xiàn)信令、協(xié)議交互、操作維護(hù)管理,業(yè)務(wù)較為豐富,一般采用通用RTOS;數(shù)據(jù)層:實(shí)現(xiàn)高效率數(shù)據(jù)處理、轉(zhuǎn)發(fā),一般采用短小精悍的特殊OS,甚至是單任務(wù)OS。但考慮到編程效率、維護(hù)成本,也可以采用裁剪過(guò)的通用RTOS;Core1控制層Core2數(shù)據(jù)層Core3數(shù)據(jù)層Core4數(shù)據(jù)層AMP應(yīng)用解決方案二業(yè)務(wù)擴(kuò)展層:提供豐富靈活的業(yè)務(wù)擴(kuò)展能力,良好的用戶交互性,一般采用通用嵌入式OS,甚至包括GUI能力,如WINCE、Linux等;基本服務(wù)層:提供設(shè)備的基本業(yè)務(wù)能力,強(qiáng)調(diào)穩(wěn)定、高可用、高響應(yīng)能力,如手機(jī)中的編解碼、移動(dòng)信令處理;Core1業(yè)務(wù)擴(kuò)展層Core2基本服務(wù)層AMP應(yīng)用解決方案支撐層需提供支持為通用RTOS和特種OS提供統(tǒng)一的OSS封裝層,主要是TIPC、分布式擴(kuò)展機(jī)制,盡量屏蔽上層應(yīng)用與異種OS的相關(guān)性;為各種OS提供統(tǒng)一、方便的開(kāi)發(fā)工具(調(diào)試、調(diào)優(yōu));SMP/BMP應(yīng)用解決方案不考慮多進(jìn)程地址空間隔離情形,只是多線程調(diào)度運(yùn)行,則需解決:應(yīng)用層:線程調(diào)度運(yùn)行方式,共享資源互斥保護(hù)機(jī)制;OSS:封裝多種互斥保護(hù)機(jī)制,如自旋鎖;考慮多進(jìn)程地址空間隔離情形,則還需解決:應(yīng)用層:全局?jǐn)?shù)據(jù)共享訪問(wèn);OSS:提供進(jìn)程間通訊機(jī)制,需改進(jìn)分布式通訊機(jī)制、內(nèi)存分配機(jī)制、版本管理、任務(wù)監(jiān)控;SMP/BMP應(yīng)用解決方案一單進(jìn)程多線程模式一、產(chǎn)品應(yīng)用進(jìn)程鎖定在某核上應(yīng)用層:基本無(wú)變化,仍然在一個(gè)地址空間運(yùn)行,優(yōu)先級(jí)調(diào)度方式、共享資源互斥保護(hù)機(jī)制、通信方式都延續(xù)??梢灾鸩椒蛛x各模塊為多進(jìn)程;OSS:基本無(wú)變化;二、產(chǎn)品應(yīng)用進(jìn)程不鎖定在某核上,即線程可自由調(diào)度到各核上運(yùn)行應(yīng)用層:考慮線程調(diào)度運(yùn)行方式變化帶來(lái)的影響,共享資源互斥保護(hù)機(jī)制;OSS:提供多種互斥保護(hù)機(jī)制;SMP/BMP應(yīng)用解決方案二多進(jìn)程多線程模式應(yīng)用層:需改造全局?jǐn)?shù)據(jù)共享訪問(wèn)機(jī)制,共享資源互斥保護(hù)機(jī)制,調(diào)整線程優(yōu)先級(jí)運(yùn)作方式;OSS:需要實(shí)現(xiàn)多實(shí)例,改造內(nèi)存管理、進(jìn)程間通訊、分布式通訊、互斥保護(hù)機(jī)制、版本管理方式、任務(wù)監(jiān)控方式;在性能需求較強(qiáng)的場(chǎng)合,可能需要內(nèi)核任務(wù)管理;反之,出于安全性考慮,則可以將所有模塊都放到用戶態(tài);多核開(kāi)發(fā)支持手段---調(diào)試調(diào)試AMP調(diào)試,需要同時(shí)對(duì)多個(gè)CPU進(jìn)行調(diào)試,各CPU可能運(yùn)行不同的OSSMP調(diào)試,smp線程并發(fā)性加強(qiáng),需要支持線程、進(jìn)程多種調(diào)試方式KIDE支持多target調(diào)試,已掌握調(diào)試器核心技術(shù),可以方便擴(kuò)展到多OS上;KIDE支持線程級(jí)、進(jìn)程級(jí)、系統(tǒng)級(jí)調(diào)試模式,可以靈活切換多核開(kāi)發(fā)支持手段---性能調(diào)優(yōu)性能分析 多核的效率建立在并發(fā)的基礎(chǔ)上,并發(fā)效率的調(diào)優(yōu),需要性能分析工具的支持:鎖性能(獲取、阻塞、等待時(shí)間….)調(diào)度性能軟件流程并發(fā)度分析KProfile與KLinux,KID

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論