英特爾推動(dòng)多核技術(shù)在嵌入式系統(tǒng)的應(yīng)用
在過去相當(dāng)長一段時(shí)間,處理器廠商都不遺余力地通過不斷提高主頻來提高處理器的性能。但是隨著處理器的發(fā)展,單處理器核心內(nèi)部晶體管的集成度已超過上億個(gè),主頻提高帶來的功耗及發(fā)熱量呈幾何倍數(shù)增長,傳統(tǒng)處理器體系結(jié)構(gòu)的瓶頸日益顯現(xiàn)。于是,另一種全新的芯片構(gòu)架誕生了,這就是多核處理器,即在單個(gè)芯片上集成多個(gè)個(gè)處理器內(nèi)核。通過優(yōu)化的核內(nèi)部體系架構(gòu),多核處理器能在較低的主頻下實(shí)現(xiàn)更加優(yōu)越的性能。
對(duì)于嵌入式系統(tǒng)而言,多核技術(shù)較過去可以提供更高的處理器性能、更有效的電源利用率,并且占用更小的物理空間,因而具有許多單核處理器無法具備的優(yōu)勢(shì)。英特爾嵌入式和通信集團(tuán)總經(jīng)理Doug Davis就曾指出,在高端通信和醫(yī)療成像等計(jì)算密集型應(yīng)用領(lǐng)域,嵌入式系統(tǒng)客戶們已經(jīng)紛紛要求英特爾公司提供具有更長生命周期的多核器件。多核已經(jīng)成為世界半導(dǎo)體發(fā)展的必然趨勢(shì),更是嵌入式設(shè)計(jì)的未來趨向。
英特爾Core 2 duo架構(gòu)
英特爾最新的基于Core 微架構(gòu)的多核處理器即是片上多核處理器的典型代表。如圖 1中 Core 2 duo的架構(gòu)所示,兩個(gè)內(nèi)核集成在一個(gè)芯片上,共享4MB的二級(jí)緩存, 每個(gè)內(nèi)核都有獨(dú)立的CPU 狀態(tài),中斷邏輯,執(zhí)行單元和一級(jí)緩存。處理器的每個(gè)內(nèi)核可以獨(dú)立執(zhí)行單獨(dú)的線程。由于共享了二級(jí)緩存,對(duì)于大量數(shù)據(jù)共享的不同線程,可以大大減少線程間通訊開銷,從而提高系統(tǒng)性能,這也是片上多核比多處理器性能優(yōu)越的根本原因。
圖1 Intel Core 2 duo 架構(gòu)
英特爾所有的x86平臺(tái)(臺(tái)式機(jī)、筆記本和服務(wù)器平臺(tái))處理器中的每個(gè)內(nèi)核都統(tǒng)一采用先進(jìn)的Core 微架構(gòu),如圖 2 所示。每個(gè)內(nèi)核由指令緩存/譯碼部件、重命名/地址分配部件、重排序緩沖區(qū)、調(diào)度器、微代碼ROM、緩存部件等功能組成。每個(gè)內(nèi)核都采用亂序執(zhí)行,支持EM64T 與SSE4 指令集,具有14 級(jí)有效流水線,內(nèi)建32KB一級(jí)指令緩存與32KB一級(jí)數(shù)據(jù)緩存,并且2 個(gè)核心的一級(jí)數(shù)據(jù)緩存之間可以傳輸數(shù)據(jù);同時(shí)為每個(gè)一級(jí)緩存和二級(jí)緩存配置多個(gè)預(yù)取器。
這些預(yù)取器同時(shí)檢測多個(gè)數(shù)據(jù)流和大跨度的存取類型,使得在一級(jí)緩存中及時(shí)準(zhǔn)備待執(zhí)行的數(shù)據(jù)。二級(jí)緩存的預(yù)讀器可以分析內(nèi)核的訪問情況,確保二級(jí)緩存擁有潛在需要數(shù)據(jù)。Core具有4 組指令解碼單元,支持微指令融合與宏指令融合技術(shù),每個(gè)時(shí)鐘周期最多可以解碼5 條X86 指令,生成7 條微指令,并擁有改進(jìn)的分支預(yù)測功能;擁有3 個(gè)調(diào)度端口,內(nèi)建5 個(gè)執(zhí)行單元,包括3 個(gè)64bit 的整數(shù)執(zhí)行單元(ALU)、2 個(gè)128bit 的浮點(diǎn)執(zhí)行單元(FPU)和3 個(gè)128bit的SSE 執(zhí)行單元;采用新的內(nèi)存相關(guān)性預(yù)測技術(shù),支持增強(qiáng)的電源管理功能,支持硬件虛擬化技術(shù)和硬件防病毒功能。
圖 2. Intel Core 微架構(gòu)
多核的挑戰(zhàn)和機(jī)遇
“芯片是IT產(chǎn)業(yè)的心臟,軟件是IT產(chǎn)業(yè)的靈魂。”多核的CPU已經(jīng)很普及了,但是經(jīng)常聽到人說并沒有覺得使用了多核性能就加倍了,為什么呢?因?yàn)橛脩羰褂玫能浖€停留在單核時(shí)代,根本就沒有使用到多核的功能。要想充分發(fā)揮多核以及多處理器解決方案的潛能,僅僅依靠強(qiáng)有力的芯片是不夠的,還需要采用新的編程方法。利用多核處理器的編程應(yīng)用是一個(gè)巨大的編程挑戰(zhàn)!
首先是并行的思考方式,比如要分辨出哪些任務(wù)是可以同時(shí)執(zhí)行的。其次是線程的創(chuàng)建和管理。開發(fā)人員把任務(wù)劃分成多個(gè)并行步驟之后,就要通過線程的方式來實(shí)現(xiàn)。多線程編程是相當(dāng)困難的,很多傳統(tǒng)的編程語言都需要一組新的函數(shù)或結(jié)構(gòu)來創(chuàng)建、同步、加解鎖線程,這意味著工作量的增加。與此同時(shí),開發(fā)人員還需要考慮并行代碼段之間哪些資源是不能共享的,比如文件、內(nèi)存、硬件等等,否則會(huì)導(dǎo)致資源的沖突和競爭,使得并行線程因等待資源而暫停。此外,如何對(duì)復(fù)雜的多線程編程進(jìn)行調(diào)試,以及如何在多核的實(shí)時(shí)系統(tǒng)中保持確定性,都是值得考慮的問題。
在面對(duì)多核編程的同時(shí),多核也給我們帶來了無窮的機(jī)遇。首先全世界都站在同一起跑線上,美國也遇到了和我們一樣的問題和挑戰(zhàn),讓中國有機(jī)會(huì)走到世界前列。其次,以前需要用占幾個(gè)房間的每秒千億次計(jì)算機(jī)現(xiàn)在一個(gè)多核芯片就能解決,這個(gè)多核芯片可以非常小,小到車載或便攜。這樣就會(huì)有很多以前無法做到的新應(yīng)用被發(fā)明創(chuàng)造出來。例如,東軟公司做的汽車輔助安全駕駛系統(tǒng),在汽車行駛中,可以自動(dòng)偵查汽車附近的物體,如有碰撞的危險(xiǎn),會(huì)及時(shí)報(bào)警和剎車。這個(gè)過程需要每秒進(jìn)行幾千億次的運(yùn)算,過去是沒法實(shí)現(xiàn)的,現(xiàn)在有了多核CPU,在一個(gè)最新的8核CPU上就可以實(shí)現(xiàn)了。這個(gè)系統(tǒng)是完全在國內(nèi)設(shè)計(jì)開發(fā)的,在國際上也是處于領(lǐng)先。
嵌入式多核技術(shù)在高校的推廣
“2008年英特爾杯大學(xué)生電子設(shè)計(jì)競賽嵌入式系統(tǒng)專題邀請(qǐng)賽”上首次采用基于英特爾雙核處理器的嵌入式系統(tǒng)作為競賽平臺(tái)。雙核系統(tǒng)推出市場不到兩年的時(shí)間,此次競賽就采用市場上的主流技術(shù)作為競賽平臺(tái),旨在鼓勵(lì)學(xué)生充分發(fā)揮創(chuàng)新精神,在雙核平臺(tái)上設(shè)計(jì)出具有多任務(wù)處理能力的作品。為了幫助參賽學(xué)生更好地了解英特爾雙核處理器,組委會(huì)和英特爾公司在賽前專門組織參賽學(xué)生和指導(dǎo)教師代表進(jìn)行了為期三天的賽前培訓(xùn)。通過本次培訓(xùn),參賽學(xué)生和老師代表均反映,培訓(xùn)幫助他們打下了多核技術(shù)的基礎(chǔ),對(duì)更快地進(jìn)入競賽氛圍有很大的幫助。英特爾也希望提供給中國理工科學(xué)子以及未來的工程師更多接觸國際先進(jìn)技術(shù)的機(jī)會(huì),由此幫助提升中國技術(shù)研發(fā)和自主創(chuàng)新能力。
為幫助中國的高校及軟件開發(fā)企業(yè)盡快掌握最新的多核知識(shí),更好地開發(fā)基于多核平臺(tái)的并行程序,英特爾軟件學(xué)院作為英特爾公司的專業(yè)培訓(xùn)機(jī)構(gòu),已經(jīng)并且正在廣泛開展面向高校的多核師資培訓(xùn)及面向軟件開發(fā)企業(yè)的多核技術(shù)培訓(xùn)。一些重點(diǎn)高校的教師通過培訓(xùn)及參加英特爾軟件學(xué)院的大學(xué)項(xiàng)目,已經(jīng)在英特爾多核課程的基礎(chǔ)上開發(fā)出面向?qū)W生的多核課程。
評(píng)論