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