<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 探秘Intel 80核處理器

          探秘Intel 80核處理器

          ——
          作者:Max Baron 時(shí)間:2007-06-29 來源:電子產(chǎn)品世界 收藏

          如今多核已不算是什么新鮮的詞匯,甚至很多人對(duì)多核技術(shù)感到厭煩——因?yàn)橐呀?jīng)看得多了。而在各種文獻(xiàn)和媒體中,常常會(huì)看到關(guān)于多核處理器缺乏相應(yīng)的軟件的評(píng)論與報(bào)道,這些評(píng)論與報(bào)道來自專家、媒體甚至是芯片設(shè)計(jì)者本身。

          多核芯片往往如潮水般來去匆匆,過去人們?yōu)槎嗪诵酒械脚d奮與激動(dòng),點(diǎn)燃著瞬間激情,可是又像黑夜中的煙花那樣空留絢麗的色彩后就歸于寂靜。

          這次卻不同了,在今年的ISSCC(國(guó)際固態(tài)電子電路會(huì)議)上,Intel展示了80核Tera-Scale研究芯片。留意一下Intel所用的詞匯, “Tera-Scale”的定義可將其從能夠把TRP(TeraFLOPS Research Processor)從其他的雙核、四核等處理器區(qū)分開。雖然按照Intel的定義,“Tera-Scale”只是多核處理器的一個(gè)系列,但卻是下一代多核架構(gòu)。Intel指出,“它將帶我們進(jìn)入TeraFLOP(每秒兆兆級(jí)浮點(diǎn)運(yùn)算)和兆兆位處理能力的全新領(lǐng)域中?!?/P>

          Intel的戰(zhàn)略:多核原理

          長(zhǎng)久以來,將理想化的工程與商業(yè)戰(zhàn)略分離并且使其獲得成功,是非常困難的。Intel一直致力于在性能開發(fā)上做執(zhí)牛耳者。從用戶的角度上來講,在挑選臺(tái)式機(jī)和筆記本這樣的產(chǎn)品時(shí),性能是首要考慮的因素。處理器的性能與其內(nèi)部時(shí)鐘頻率息息相關(guān),可是高頻和高功耗產(chǎn)生的漏電,將會(huì)導(dǎo)致高溫。Intel將在45nm工藝中采用high-k(高介電率)絕緣體技術(shù)。借助于metal gate(金屬柵極技術(shù)),Intel希望其能夠全面改善芯片漏電情況若,若漏電降為原先的十分之一,則性能可提高20%。同時(shí),由于45nm的低寄生效應(yīng),晶體管開關(guān)功耗也會(huì)降低百分之三十。為了更好地理解Intel TRP芯片的基本原理,這里對(duì)high-k和45nm硅技術(shù)結(jié)合的效益進(jìn)行一個(gè)估算。粗略算來,我們假設(shè)high-k 45nm技術(shù)使芯片的功率降低到先前半導(dǎo)體工藝的二分之一,在同樣峰值包絡(luò)功率下,新的功率存儲(chǔ)使得VDD電壓值高出了大約1.4倍(也就是2的平方根),由于VDD和頻率范圍可被近似為呈線性變化,包括20% 金屬柵極晶體管開關(guān)效應(yīng)引起的頻率增長(zhǎng)在內(nèi),頻率提高1.7倍。在此,我們忽略了頻率限制因素,比如時(shí)鐘分布,晶圓內(nèi)部與晶圓之間的差異等等。high-k絕緣體技術(shù)能給單核或多核芯片提供可觀的短期成果。而對(duì)于長(zhǎng)期投資來說,依據(jù)摩爾定律的優(yōu)勢(shì),Intel已經(jīng)在多芯體系的道路上領(lǐng)跑了2~3年,在世界上,當(dāng)頻率,功率和通信等重要角色發(fā)生變化,如何為用戶設(shè)計(jì)一個(gè)多核平臺(tái)?如果只是一個(gè)模擬平臺(tái),那么如何在大負(fù)荷工作量中快速地執(zhí)行程序來獲得結(jié)果?Intel沒有選擇的余地,只有為研究人員量身設(shè)計(jì)芯片。在國(guó)際固態(tài)電路大會(huì)上展示了Intel 65nm技術(shù)中的8層金屬設(shè)計(jì)初衷,是用來“證明100W以下的TeraFLOP性能”,盡管這只是其功能之一。

          一個(gè)芯片,更是一個(gè)系統(tǒng)

          把單處理器的速率與主體內(nèi)存匹配起來是一件很難的事情,如果傳統(tǒng)的單核處理器是通過高速緩沖存儲(chǔ)器(cache)來解決CPU和內(nèi)存之間的速度差異的話,如今的多核處理器由于需要通過核與核之間的合作來實(shí)現(xiàn)數(shù)據(jù)共享,因此復(fù)雜性大大增加。和單核處理器相比,多核處理器同樣表現(xiàn)出對(duì)于任務(wù)程序以及數(shù)據(jù)局部性的依賴,以及數(shù)據(jù)可執(zhí)行代碼的數(shù)據(jù)共享特性。Intel的架構(gòu)師們致力于研究用戶芯片的核內(nèi)存,核間通信以及工作量類型,但是和他們的前人一樣,還是無法確定一個(gè)嚴(yán)密又明確的工作量。

          可以理解,Intel仍然無法為未來的Tera-Scale(兆兆規(guī)模)芯片下一個(gè)明確的定義,畢竟,目前這只是一個(gè)研究型的項(xiàng)目。然而軟件和系統(tǒng)的開發(fā)者們卻被鼓勵(lì)著繼續(xù)完成這個(gè)體系。那么Intel團(tuán)隊(duì)在開發(fā)的時(shí)候,他們對(duì)于體系的定義又是什么呢?有一點(diǎn)可以肯定,TRP不會(huì)采用80核技術(shù),80是一個(gè)不可思議的數(shù)字,雖然80核芯片的晶圓尺寸較好地平衡了可用晶圓空間以及能效(<100W@1TF)。

          第一個(gè)另人感興趣的地方是Intel采用的平鋪式“瓷片”(tile)結(jié)構(gòu)(圖1),小的內(nèi)核像“瓷片”一樣重復(fù)地平鋪開來,每個(gè)“瓷片”內(nèi)都包含自己的處理引擎(Processing Engine,簡(jiǎn)稱PE),局部?jī)?nèi)存和通信路由,如同臺(tái)式機(jī)和服務(wù)器的網(wǎng)絡(luò)連接一樣,每個(gè)瓷片使用自身的路由成為芯片網(wǎng)狀配置的一部分。

          圖1 Intel的平鋪式“磁片”構(gòu)架

          在Intel所選擇的這種結(jié)構(gòu)中,芯片能方便地檢測(cè)出內(nèi)含單元數(shù),不同的“瓷片”數(shù)目決定了不同的功能應(yīng)用和價(jià)位。傳輸延時(shí),時(shí)鐘分布,功率減少和部分功率管理等只要對(duì)一個(gè)“瓷片“進(jìn)行了優(yōu)化處理,對(duì)于整個(gè)芯片也將行之有效。此外,大型芯片兩個(gè)邊緣上的瓷片之間通過路由網(wǎng)絡(luò)進(jìn)行通信,因此不用擔(dān)心由于電磁在硅中的傳播速度限制0.8c(c是光在真空中的傳播速度)從而影響了通信同步。根據(jù)Intel表示,渡越時(shí)間(the time of flight)(在一個(gè)時(shí)鐘周期內(nèi))不會(huì)成為問題所在。因?yàn)椤按善钡穆酚赏ㄐ欧绞侥軌蚝芎玫氐玫焦芾韽亩哂腥哂嘁约案呖煽啃浴!按善奔軜?gòu)的任務(wù)一旦完成編譯,將在虛擬處理器上進(jìn)行執(zhí)行,把“瓷片”當(dāng)作內(nèi)存管理模塊來處理,提高了物理內(nèi)存資源的系統(tǒng)可用性。因此“瓷片”的高利用率提高了性能,較少的“瓷片”不需要再編譯,多個(gè)線程能夠在同一芯片中同時(shí)運(yùn)行。

          Intel的這種結(jié)構(gòu)體系,提供了一個(gè)研究通用處理器軟件和芯片性能的機(jī)會(huì),Intel或許會(huì)將研究成果用來連接IA架構(gòu)和NoC(片上網(wǎng)絡(luò)),而這也許就是未來的服務(wù)器。

          路由和每個(gè)“瓷片”結(jié)為一體,能夠?qū)崿F(xiàn)可避免死鎖的雙32位帶寬的邏輯通道以及非阻塞交叉開關(guān)(non-blocking crossbar);當(dāng)時(shí)鐘頻率為4GHz時(shí),帶寬可達(dá)到80GB/s。然而,在訪問周期內(nèi),有效的通道對(duì)象用來完成數(shù)據(jù)傳輸。由于雙通道采取用double pumped(兩倍汞,指時(shí)鐘頻率能執(zhí)行兩次操作,上升沿和下降沿同時(shí)傳輸信號(hào))來節(jié)省芯片內(nèi)部空間,但是也帶來了一些新的問題。 從表面上看,這種方法帶來了額外的功耗,但當(dāng)它被切斷時(shí),兩倍泵只會(huì)對(duì)路由產(chǎn)生局部影響。不過double pumped的采用會(huì)使時(shí)鐘負(fù)載增加。Intel的分析報(bào)告指出,在最壞的狀況下,交叉區(qū)域的50%就會(huì)用于補(bǔ)償全局時(shí)鐘負(fù)載和數(shù)據(jù)通道的RC效應(yīng)。通道采用16x6位的緩沖隊(duì)列管理和基于Intel FLIT(流程控制單元)的32位數(shù)據(jù)字(參照?qǐng)D2)。流程控制邏輯依照FLIT的要求來解碼。

          圖2 Intel的NoC(片上網(wǎng)絡(luò))數(shù)據(jù)包形式:三個(gè)32位字包含了路由,元件處理控制和包含2位控制字段的數(shù)據(jù)。每一個(gè)都涉及到FLIT(流程控制單元)。最小的封裝包是2個(gè)FLIT。長(zhǎng)度能夠進(jìn)行鏈?zhǔn)綌U(kuò)展

          軟件和硬件工作可以用Intel的NoC(片上網(wǎng)絡(luò))封裝形式來劃分。它定義了三種可能的32位字——其中包括了路由信息,基本處理單元控制和數(shù)據(jù)。其中的每一部分開頭都包含6位控制字段。該字段包括兩個(gè)通道的流程控制(FC),通道ID(L),F(xiàn)LIT有效位(V)以及位標(biāo)志,用來指示控制字段位于數(shù)據(jù)包的頭部還是尾部。鏈表頭明確定義了路由能夠保持10 個(gè)3位地址指向8個(gè)相鄰PE,這里假定為北,東北,東,東南,南,西南,西和西北(N,NE,E,SE,S,SW,W,NW),若添加第二個(gè)鏈表地址FLIT,那么任意一個(gè)PE就能直接尋址其他10個(gè)以上的PE。我們注意到,軟件設(shè)計(jì)中定義了在不互相沖突的情況下,最優(yōu)的連接路線和通道,軟件必須能夠利用硬件來支持動(dòng)態(tài)路由和PE通道分配,不同的線程在不同時(shí)間能夠同步執(zhí)行,或者在不同的芯片內(nèi)能夠照常運(yùn)行,或者只是在有問題的PE周圍標(biāo)記,即便是對(duì)靜態(tài)路由而言,這也是一個(gè)艱巨的任務(wù)。

          6位控制字段包含一類或兩類32位數(shù)據(jù):一個(gè)32位信息控制字段用于PE定位和32位數(shù)據(jù)字傳輸??刂谱侄文軌蛘?qǐng)求多種行為,比如發(fā)送原始PE數(shù)據(jù)到外部?jī)?nèi)存,或是將目標(biāo)PE改變?yōu)樗郀顟B(tài)或是喚醒。PE通過開關(guān)晶體管完成電源切換,由于可在數(shù)周期之內(nèi)完成,因此優(yōu)于用開關(guān)把電源打開和關(guān)掉的方法 。讓此類電路有4GHz的時(shí)鐘頻率著實(shí)是一項(xiàng)挑戰(zhàn)。

          在設(shè)計(jì)中整合了輪循仲裁,但其中不包含可能增加復(fù)雜性的優(yōu)先處理機(jī)制。此部分任務(wù)將留給軟件完成,從而確保在對(duì)處理器中關(guān)鍵數(shù)據(jù)進(jìn)行訪問時(shí),只能就近映射。輪循仲裁使用未決的FLIT信息,用于在數(shù)據(jù)傳輸之前,于源和目的之間建立一個(gè)完整的路徑。

          同步接口與光速

          同步接口是“瓷片”體系有效利用并得以大規(guī)模結(jié)合的關(guān)鍵技術(shù)。考慮到功率、電壓、溫度,大型芯片處理差異以及硅中電磁傳播的極限速度,要想同步時(shí)鐘幾乎不可能。假設(shè)硅中電磁傳播的速度接近于0.8c(0.8

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();