瀏覽單個文章
phcool
New Member
 

加入日期: Oct 2005
您的住址: TW
文章: 8
技術洞察-您要多緒、超緒 我更要「倒緒、反緒」!

多核心多緒時代的迷思?



技術洞察-您要多緒、超緒 我更要「倒緒、反緒」!
(郭長祐/DigiTimes.com) 2006/08/28


時間回到1999年,筆者在一次公開場合中向AMD的相關人員詢問一個問題:「據知Intel將x86 SMP架構下的APIC技術申請為專利,使得其他x86相容處理器業者無法跟進,之後雖然也提出相仿的OpenPIC作為因應,但似乎還未見到Intel之外的雙處理器系統(主機板),眼前雖然Athlon的效能傲人,然而Intel若用平價訴求的Celeron,並搭配雙處理器的主機板,以此策略來抗衡Athlon,AMD將如何因應?」

 附註:PIC指的是可程式中斷控制器:Programmable Interrupt Controller,雙處理器以上的x86系統必須能進行中斷服務的發派協調,哪一個中斷由哪一顆處理器負責,因此產生了APIC(A為「Advanced」先進之意)的技術需求。

****


 講述完這番帶有推論性的詢問後,AMD的人員立即回應:「即便Intel真的祭出雙Celeron系統的策略也不用擔憂,因為在個人電腦的領域中,仍有為數眾多的軟體是以單處理器的組態進行撰寫、開發及編譯,如此即便在雙處理器上執行,也依然只會用上一顆處理器,另一顆處理器則會閒置等待,或者去執行其他能運用雙處理器的程式工作。」

 AMD的人接續說:「多數軟體都只能在單顆處理器跑(運算、執行),而個人電腦上使用最多的就是Office(辦公室自動化軟體)與Game(遊戲),尤其是Game幾乎可說是清一色以單處理器來開發與執行。」

 ■PC最不用也最晚實現多核多緒

 得到這樣的回覆後,筆者後來去查證的結果也確實是如此,電腦遊戲(PC Game)確實以單處理器執行的設計佔絕大多數,至於Office(Microsoft Office)方面,MS Office 95也確實不支援SMP,不過MS Office 97就有,而從1999年的時間點來看,全球市場也確實有可能仍是Office 95、97並存的態勢,所以雙Celeron系統也確實不會對單Athlon系統造成價格效能比上的威脅,因為就當時來看雙Celeron系統沒有太大的實用價值(或說:軟體實效)。

 當然!之後的實際發展是根本就沒有祭出這樣的競爭策略過,而且近年來會搶先使用高階強效處理器的消費者,多半也是為了酷炫3D特效的遊戲而買,如果雙處理器系統在遊戲中只有一顆能派上用場,相信消費者也是無法接受的。

 不過也因為遊戲取向的需求成為高階x86處理器的主要銷售力道,使得處理器業者持續將研發焦點與心力放在單核架構上,進而讓伺服器用的處理器率先邁入雙核,讓工作站用的處理器率先邁入雙緒。

 很明顯的:如此的發展落差,與各處理器所面對的應用軟體環境有很大的關聯,因為在伺服器上執行的軟體早都支援SMP架構多年,雙核、多核設計對伺服器用的處理器而言不僅技術上可行,在市場面上也是很務實且自然的發展,同樣的工作站用的軟體也多能支援雙處理器,因此率先為工作站用的處理器導入雙緒機制,也是最合理且立即受用的。

 ■多緒不盡然是優點

 好!把時間拉回到現在,筆者有事沒事去回憶一個七年前的老事幹嘛?因為這攸關今年AMD在新處理器中可能植入的一項新技術:Reverse-HyperThreading(倒、反、逆超執行緒)。

 眾人皆知的,Intel在2002年11月所發表的新款Xeon處理器(研發代號:Prestonia)時,也一併發表一項新技術:超執行緒(HyperThreading),這項技術嚴格而論可以回溯到1997年由迪吉多電腦(DEC)與華盛頓大學的技術合作研究成果,之後由Intel買下DEC的半導體部門,並將此技術申請為自有專利,然而此技術的真正商業化運用卻一直到2002年11月,即便如此,該款Xeon依舊是全球率先使用多緒技術的處理器,甚至超越IBM。

 相對來看,AMD雖然比Intel早推出雙核的x86處理器,但Intel的追趕向來快速,根據筆者的觀察,Intel被競爭對手超越後的一年內都會有大幅追趕的回應,如今雙核競爭也是如此,過去的低價電腦用處理器、記憶體策略錯誤的回返等也都是,反倒是AMD,AMD的處理器截至目前為止都不具有多緒、超緒能力,已經落後Intel快四年的時日。

 不過,AMD並不全然將焦點放在「增緒」的追趕上,增緒雖然重要,但眼前Intel的超執行緒(對岸方面多半稱為:線程)也有其弱點,一是執行緒的發派、排程上尚未有更智慧、合理的機制,以致有實測報告指出,在雙處理器的系統上使用兩顆都具有超執行緒的處理器,會因執行緒的排程不佳也造成資源爭搶、等待,反而有效能倒退的情形。IBM在多緒技術上雖落後Intel一些時日,但日後在POWER5上也補足,且在排程智慧性、合理化上優於Intel。

 其次,多緒也容易招致安全問題,病毒與後門程式容易運用另外的執行緒來進行發揮,這一點相信處理器業者也會用其他的硬體設計來防範補足,不過目前來看尚未有更具體的提案。

 不僅如此,另一個問題是:無論有沒有引進雙緒技術,現有的雙核將愈來愈普遍也是事實,在時脈難以像過往般的大幅提昇下,從時間加速改成空間加速,以增核的方式來變相提升效能。但重點來了:雙核在功效機制上等於是雙處理器架構,誰能夠確定今日個人電腦上的所有軟體都已經能夠支援雙處理器、雙核了呢?恐怕還是有軟體是只能在單核上發揮,此外,持續引領高階x86個人電腦市場的遊戲軟體,也依舊偏好單核執行。

 ■重新編譯? 毫無誘因!

 那麼,是要全世界的軟體都改成支援雙核呢?還是要全世界的處理器都能夠以雙核的效能但以單核的方式執行發揮,很明顯是後者較合理,就像現在大家積極做的,不是將全球網站的HTML改成手機可以閱讀的格式(如W@P、CHTML),更合理與可行的方式是:要全球的手機逐漸都可以閱讀現有WWW、HTML格式。

 更重要的是,從過去到現在,處理器業者對軟體業者的呼喊、勸說向來沒有太大作用,過去Intel從80386提升到80486時,Intel希望軟體業者重新編譯(Recompile)他們的軟體,如此可以加速5%左右,但結果是沒有人理Intel,之後80486提升成Pentium後,Intel再次勸說:將軟體以Pentium最佳化方式重新編譯能夠比80486快上30%,但依然沒有太多人響應。

 其實換成誰都一樣,之後的多媒體指令集也一樣,軟體支援MMX、支援3DNow!、支援SSE/SSE2/SSE3等又如何?不支援其實也無大礙,Intel推出HyperThreading後,也期望軟體業者重新針對超執行緒進行編譯,如此可以使超執行緒的效益快上加快,但其實軟體業者也不會過於認真與積極地支援。

 老實說軟體業者要的是不用變動他們原有的東西,只要換新的硬體就能夠自然而然提升,HyperThreading其實不需要軟體重新編譯也能獲得加速,然而若是有重新編譯則可以獲得更澈底的加速。類似的,首次引入超純量(Superscalar)機制的Pentium也是不用軟體重新編譯也可以加速,只是有編譯可以更加速。

 但是有的就相當倚賴重新編譯,Itanium/Itanium 2即是如此,沒有重新編譯等於無法發揮該處理器的硬體架構功效,但問題一樣:對軟體業者而言,為硬體進行改變並沒有太大的誘力,沒有人可以保證為此重新編譯能獲得更大的銷售商機。

 ■「緒」需要更活化、智慧、合理地運用發揮

 所以,會有軟體無法在雙核上發揮功效價值,這也是可以肯定的「現實」,這時是該持續向軟體業者呼喊、勸說其重新編譯呢?還是自立自強比較有用呢?答案一樣是後者:如何改變處理器的硬體設計,使原有只能在單顆處理器上執行的軟體,也能透過雙核而澈底發揮效能?AMD為此構想了Reverse-HyperThreading技術,目標是對軟體進行最少的搭配修改、變動,使原有的單核執行軟體,可將工作負荷同時發配到兩個核(未來甚至多核)上去執行,使雙核執行效能可以同時開啟,而非一核工作、另一核閒置。

 當然!Intel其實也積極讓多核能夠在各種場合都發揮功效,所以正在發展Speculative Threading(推測性執行緒)技術,概念上與IBM POWER5相類似,透過更智慧性、更合理化的排程派緒使多核隨時保持最大的工作狀態。

 所以,現在處理器內的結構設計,「執行緒」將是一大主軸關鍵,無論是Reverse-HyperThreading或Speculative Threading都還是無法完全保證不需要軟體的配合,只是配合度的多寡程度,變動最好只在驅動程式層,若不行最好也壓在作業系統層,如果最後牽涉到應用程式的改變,那就成了最下下策。

 當然!新的內核結構設計趨勢依然有其他的層面要顧,例如快取的設計即是,如何讓一致、一體性的L2 Cache支援多核多緒,如何支援今日最盛行的串流,如何運用內核未存取時與記憶體快速完成交換以增加資料進出量,此外省電的壓力也使過往的快取設計受到空前的質疑,看來各業者的處理器設計團隊還有很多事要忙碌!
     
      
舊 2006-08-30, 08:24 AM #1
回應時引用此文章
phcool離線中