NexGen

NexGen

NexGen是一家私人控股的美國半導體公司,專門設計x86相容處理器,之後於1996年由AMD所收並。NexGen與他的競爭業者Cyrix相同,都是無廠半導體公司(Fabless),必須倚賴晶圓廠代為生產晶片。NexGen過去是交由IBM微電子部門代產。

基本介紹

  • 中文名:無
  • 外文名:NexGen
  • 成立1986年
  • 所屬:私人控股的美國半導體公司
  • 業務:設計x86相容處理器
公司介紹,處理器,歷史,常規知識匯總,

公司介紹

NexGen成立於1986年,由Compaq、株式會社ASCII及Kleiner Perkins共同創辦。第一個設計是期望開發出80386相同世代等級的處理器,不過設計過於複雜、電路面積過於龐大,必須用8顆晶片才能等同於1顆晶片的功效;等到晶片數已經收斂減少後,整個業界已經轉移、進入80486世代了。
NexGen的第二顆設計是Nx586 CPU,於1994年推出,並嘗試與IntelPentium直接抗衡,這也是第一顆向Pentium發出挑戰的處理器。此時Nx586處理器的具體型款為Nx586-P80及Nx586-P90。與其他競爭業者(AMD、Cyrix)不同的,Nx586的接腳配置與Pentium不相容,以致必須搭配特有的晶片組與主機板才行。為此,NexGen推出兩款使用Nx586的主機板,一片支援VLB(VESA Local Bus),另一片支援PCI
與AMD、Cyrix的Pentium級處理器一樣,在相同時脈頻率下,AMD、Cyrix的處理器性能皆超越Pentium;所以Nx586-P80以75MHz運作,Nx586-P90以84MHz運作。然而很不幸的,Nx586的性能勝過搭配82430LX、82430NX晶片組的Pentium,但Intel推出Pentium的新搭配晶片組82430FX(Triton)後就超越了Nx586,使Nx586的優勢難以維持。此外,Nx586不具浮點運算能力,必須額外搭配Nx587的浮點運算(協力)處理器才行。
不過,後續的Nx586也具有浮點運算能力,這是由IBM使用MCM(Multi-Chip Module)封裝技術來實現,將Nx586、Nx587兩個裸晶一同封裝,且接腳相容於過去的Nx586;此顆稱為Nx586-PF100,好與之前就已經推出的Nx586-P100(不具浮點運算能力)有所區別。
另外,Compaq在其產品文宣、展示、箱盒上使用586字樣,並以此對抗“Pentium”一詞,不過Compaq並沒有廣泛採用NexGen的處理器。
之後,AMD K5處理器的性能與銷售表現都低於預期,因此AMD買下NexGen,獲得了NexGen的設計團隊,並延續Nx586的設計來開發新處理器,以此成就了在商業上相當成功的AMD K6處理器。

處理器

NexGen產品的銷售地主要集中在北美和歐洲少數國家,並且實際發售量遠低於預期。十幾年後的今天,一台能夠正常使用的NexGen系統算的上是一款不可多得的收藏品。
NexGen Nx587,是唯一配合Nx586使用的浮點運算微處理器,提供快速浮點運算的能力。其出產時間為1994年,頻率為60MHz、前端匯流排60MHz

歷史

同AMD一樣,在那個INTEL如日中天的時候,CYRIX誕生了。無論從實力、經營時間和名氣上,CYRIX都是對抗INTEL陣營中僅次於AMD的成 員。在長期的奮戰中,它舉步維艱,緊緊跟隨著時代的腳步,它也曾以CPU廠商三巨頭之一的名義笑傲江湖,也曾雄心勃勃地勾畫著未來時代的瑰麗畫卷,但身心 疲憊的它終於沒有支撐下去,在“戰友”AMD跨上技術頂峰的時候,在對它不停圍堵封殺的INTEL手忙腳亂、大失水準之前,它卻倒下了,悲壯地退出了 CPU市場的舞台。
應該說CYRIX是個失敗者,在商界和技術界,只有成功者才能生存下去,但CYRIX依然值得我們尊敬。從486時代起,幾乎是白手起家的它便頑強的挑戰 著INTEL—這個處理器市場上的王者,並一直堅持了下去,他的CPU以極低廉的價格,優秀的整數性能,也占據了一定的低端商用市場,並且其推出的ALL -IN-ONE的GX系列產品,使市場掀起了一陣用完就扔的千美圓以下電腦的潮流,而今CYRIX雖然易主了,但這種觀念卻已深入人心,成為技術發展和開 發產品的方向。CYRIX雖然失敗了,但在某種意義上說,它又是成功的,在CPU的發展歷史上,CYRIX已經擁有了自己的位置,在回首這段歷史時,任何 人都不得不提到CYRIX,在與INTEL悲壯的對抗中,那個倔強不屈,拼搏到最後一刻的CYRIX。
儘管失敗者的缺點多於優點,但我還是要先說說CYRIX的成功之處。能夠在競爭如此激烈的市場占據一席之地,成功的推出了一系列產品並得到市場的認可,這就是成功。
首先是CYRIX對自己產品的定位很準確。它的CPU一直是同檔次CPU中浮點性能和整體實力最弱的,基本上不適合玩複雜的遊戲,尤其是3D方面;但它的 CPU整數性能十分突出,甚至超過INTEL,因此,CYRIX便將其產品對準了低端的商用市場和非遊戲玩家的用戶,它的產品對於從事普通商業套用的用戶 和僅從事上網等普通套用的家庭用戶來說,的確是擁有極高的性價比,在這些套用上,CYRIX的CPU性能並沒有落後於別的產品,但其價格卻僅為其它產品的 一半或三分之一,非常具有競爭力,尤其適合於中國市場。
接著,就是其最成功的一個舉措,在定位的基礎上推出一種新的產品和理念,這就是它的GX系列產品。這是第一顆將音效卡和顯示卡集成到CPU裡面的整合型產品, 它充分的表現出了ALL-IN-ONE的理念,用戶只要在其產品上添加上記憶體和驅動器就可以了,其成本大大下降,掀起了一股低價電腦的風潮,打擊了 INTEL高出高走的價格策略,時至今日,ALL-IN-ONE已經成了一種趨勢,整合產品越來越多,可以說和CYRIX是分不開的。
然而CYRIX還是失敗了,這說明它在決策中有相當多的失誤。一是產品的檔次結構不合理。CYRIX的產品沒什麽檔次差距,基本上就一種,雖然價格極低 廉,但其產品委實不盡人意,在INTEL和AMD紛紛大幅降低其產品的價格時,CYRIX產品的競爭力越來越低,甚至到了無人問津的地步;同時CYRIX 在更新換代中,一次又一次的承諾要改善產品的性能和形象,不光吸收其它廠商的精華,還要更上一層樓,但每次產品推出後,總是帶給人們莫大的失望,終於在人 們對它失去耐性時,它的道路也走到頭了。再就是在產品性能無甚改進時,僅以低價來與對手競爭。CPU的技術發展日新月異,成本價格也越來越低,那種只求價 廉、不顧性能的觀念逐漸被屏棄,因此僅以價格競爭的方法也越來越行不通了,會逐漸失去用戶的口碑;而且過低的價格不利於成本回收,使本來就實力不強的企業 更加捉襟見肘,失去了發展的潛力。
還有就是對自己實力不切實際的估計。由於產品取得了一些成功,人們對它有了好的看法,CYRIX似乎有些得意忘形,它曾經認為自己有一款產品性能已經超過 了INTEL的產品,於是其定價居然比INTEL的產品還高,購買者無不大呼上當,迫使它又大幅的將價格降回,自毀了辛辛苦苦創立的形象。
於是CYRIX就這樣失敗了,雖然競爭對手的封殺策略是一定的原因,但最主要的還是自己發展戰略的失誤。現在VIA收購了CYRIX,希望它能夠吸收這些經驗和教訓,憑藉強大的實力讓CYRIX這個品牌東山再起
全美達 痛惜另類英雄!全美達CPU戰史全回顧新聞
Cyrix、NexGen、IDT等等、等等,您是否還記得它們的名字呢?當然,不記得或者不知道都不要緊,因為現在只能在一些處理器回顧的文章,或是二 手市場(還得是比較老的二手市場)里才能看到它們的身影。不過,雖然它們已經距離我們越來越遠了,但不可否認的是,它們同樣為處理器產品的發展起到了非常 重要的推動作用。
Cyrix M3
電腦誕生之日起,處理器領域的戰爭便已經開始爆發。在這場激烈的戰爭中,如今只剩下Intel和AMD兩位勇者,它們一路披荊斬棘,伴隨著戰爭的硝煙不斷 的成長,憑藉各自的實力挫敗了幾乎所有的競爭對手,而那些躍躍欲試的後來者也在強大的對手面前無奈的退卻了。等等,其實不然,還有一個較大且頗有名氣的處 理器廠商在和它們對峙,它便是全美達(Transmeta)。
Transmeta的副主席兼CTO David R.Ditzel
在2000年,在處理器領域誕生了一個陌生的名字——全美達(Transmeta)。這位初出茅廬的少年,高舉手中的利劍,勇敢的站到了Intel和AMD兩位巨龍的面前。人們看到,那少年眉宇中流轉的是天才般的的氣質和無所畏懼的堅定信念……
Efficeon系列碩果僅存,這是TM8800處理器
然而,就在今年4月底,一個不大不小的訊息讓處理器業界再掀波瀾。相信大家都已經看到了《誰叫“美達”誰倒霉?又有一家傳噩耗》這篇文章,大致內容也應該 了解了一些。繼今年年初決定放棄連續4年虧損的處理器部門,轉而將運營重心放在對外技術授權方面之後,移動處理器供應商全美達(Transmeta)終於 在4月底終止0.13微米工藝的Crusoe處理器在台積電的訂單,僅剩與富士通合作的Efficeon處理器繼續出貨。這條訊息預示著這個目前唯一能夠 與AMD和Intel兩大巨龍死斗的品牌在處理器這塊寶地上壯烈犧牲了。
但是,我們依然感謝全美達,因為它讓我們對處理器市場充滿了希望,因為有了它才讓AMD和Intel之間的鬥爭變得更有意義。只可惜,全美達沒能在鷸蚌相 爭的時候得到便宜,就這樣倒下去了多少有些惋惜……。因而,藉助這個機會讓我們再次共同緬懷全美達的奮鬥史、回顧那些經典、回顧曾經的輝煌吧。
Crusoe令人眼前一亮
除了AMD和Intel還有強者
2000年1月,正當Intel與AMD在處理器市場上打得難解難分之時,鮮為人知的全美達(Transmeta)公司帶著一種全新架構的CPU——Crusoe亮相在人們的眼前。
這種處理器獨特的數據處理方式和超的功耗的特性瞬間使得業界眾多軟硬體廠商為之一震。尤其對於Intel和AMD處理器廠商,Transmeta公司的這 款Crusoe處理器是針對整合系統和筆記本電腦而設計的低功耗處理器,這無疑也意味著將要和Intel和AMD爭奪市場份額。
當時發布Crusoe處理器共有兩款,都是基於軟體模擬、超低功耗的智慧型處理器,主要套用範圍是攜帶型計算機設備。這兩種Crusoe處理器分別是主頻為400MHz的TM3200和主頻為700MHz的TM5400/TM5600。
Transmeta公司的TM3200
TM3200內置64KB 8路指令L1快取和32KB
8路數據L1快取,沒有內置二級快取,採用0.22微米生產工藝製造,其被主要套用於手持式設備。
第3頁:滅掉P4!頂級Crusoe憑功耗火拚Intel
Crusoe
CPU可以分為三種,除了我們上面看到的TM5400/TM5600系列外,還有TM5500/TM5800系列和TM5700/TM5900。其中Crusoe
TM5800 CPU是全美達(Transmeta)產品線中工作頻率較高,性能不錯的CPU。它和Northwood核心P4
CPU一樣採用了0.13微米的製作工藝,具有512KB的二級高速快取,而且工作電壓非常低,僅為0.9-1.3V,800MHz的處理器耗電量才5.5W。
Transmeta公司的TM5800
隨後,全美達還推出了Cresoe
TM5900和TM5700兩款處理器,這兩款產品和之前的TM5800相比,尺寸減小了一半。TM5900/5700處理器是為迷你PC和植入系統設計 的,所以核心大小只有21×21mm,而TM5800處理器則是25×32.5mm。這兩款處理器同樣具有128位的VLIW引擎和LongRan技術, 內建DDR記憶體控制器和PCI匯流排控制器,其中TM5900具有512KB
L2快取,而TM5700則具有256KB L2快取,兩款產品工作頻率最高均為1GHz。
Transmeta公司的TM5900
不過,即便是這樣,在速度和性能方面依然無法和Intel相比。硬拼不行可以巧奪,那就要從其它一些方面來趕超了,於是全美達(Transmeta)選擇了功耗,上面我們已經向您提到過了。Intel
P4處理器工作時,每平方厘米會產生50-60W的熱量,而Crusoe CPU在運行Windows
2000作業系統,電耗能低到1W。如此低的功耗會為我們帶來兩個好處,一個是發熱低,另一個是可以延長筆記本電池的工作時間。這兩個好處對於筆記本電腦來說,都是非常重要的。Crusoe
CPU就是憑藉著這些優點一直和Intel保持著競爭狀態。
Transmeta公司的TM5400
Transmeta公司的TM5600
而TM5400內置64KB指令L1快取,64KB數據L1快取和256KB的L2快取,採用0.18微米生產工藝,TM5600與TM5400的區別僅 僅是它集成了512KB的更大L2快取。改系列則面向的是基於Windows的超輕型筆記本PC。兩者都支持普通的SDRAM記憶體。這兩款處理器的標準功 耗都只有1W。另外,在其特有的深度睡眠狀態中耗電量更可降低到20mW,因此當時在業界引起了軒然大波,低功耗也成為了全美達處理器最大的特點和火拚 AMD、Intel最重要的武器。
第4頁:王牌的誕生 Efficeon性能提升的標誌
2003年10月15日Transmeta終於發布了握在手中的王牌——“Efficeon”。其不僅繼承了Crusoe的低耗電特性,而且處理性能也得 到大幅提高。將Crusoe可同時執行的4個32位指令數增加到了8個。同時還提高了工作頻率、增加了二級快取,強化了接口性能。
Transmeta公司的TM8600
Transmeta Efficeon
8600/8300處理器,分別配備1MB(TM8600)和512KB(TM8300)L2快取以及支持多媒體的SSE和SSE2指令,該晶片同時集成了單通道DDR記憶體控制器,支持400MHz記憶體產品。
背面
據稱與Crusoe相比性能提高了50~80%之多。頃刻間關於Efficeon的報導蜂擁而至,Transmeta再次成為業界的焦點。
Dothan核心迅馳的死敵 Efficeon2處理器尚未咽氣
2004年6月中旬,全美達正式發布了Efficeon2處理器,它的前身Efficeon處理器是全美達公司對應P-M的產品,所以可以這樣簡單地認為Efficeon2是對應Dothan核心迅馳的拳頭產品。
在這個計算機技術快速發展的時代,硬體性能的提升已經超過了很多人的實際套用需要,特別是在移動領域,移動電腦的持續使用時間已經成為用戶最關注的問題。 而全美達的Efficeon2處理器在這一方面具有先天的優勢。同時,全美達Efficeon2處理器的高度集成性也可使移動平台的便攜性大大加強。我們 相信,Efficeon2處理器一定會在移動平台上占得一席之地。而事實證明,目前也只有Efficeon2處理器還存活。
第6頁:全美達的輝煌戰績(一):集成度頗高的整合系統
全美達的輝煌戰績不知是以上看到的那些處理器,與處理器整合的產品也頗具看頭。採用了現版Efficeon
2核心的內嵌式處理器TM8620的推出就是一個驚人之舉。
TM8620處理器的晶片面積對比,很明顯TM8620處理器小了很多。
集成度十分之高的TM8620系統,在小小的基板上集成了ALi的南橋晶片1563S和ATI的顯示晶片,基本上已經是一個完整的處理平台。而且背面還同時集成了系統記憶體,怎么樣?夠強悍吧?
第7頁:全美達的輝煌戰績(二):集成96顆CPU的系統始於全美達
還記得下面看到的這個工作站吧?早期它根本不是集成96顆安騰處理器,而是美國加州的名叫Orion公司推出的兩款基於Transmeta
Efficeon處理器構建的高端桌面集群工作站,其性能之強勁足以與主流小型機相媲美。
剛看它時,一時還拿不準這兩款產品究竟是歸於桌面產品還是集群伺服器類,由於全美達系統的特點是功耗極少體積很小,所以對於由它構建的集群產品其體積只有 27英寸(約68.58厘米)高,你完全可以把它放在你的桌面上運行,從外觀來看和一台普通PC沒什麼兩樣,但其內部可是有多達96顆全美達心臟在一起跳 動!
這款由Orion推出的全美達系統有DS-96和DT-12桌面集群工作站兩種,其中DS-96桌面集群工作站擁有多達96個節點CPU,處理能力高達 150Gflops。這款96節點系統同時使用了8塊主機板(每塊20個cpu),總共提供了10個千兆乙太網接,每個節點之間的頻寬高達1GB,每顆 Transmeta
Efficeon處理器(90nm)時鐘頻率為1.6GHz,DS-96可支持使用多達192GB記憶體和9.6TB的存儲設備,同時這款可放置在你桌子底 下的超級電腦的功耗也不小達到了1500W,但它於市場上的同類產品的功耗相比真的算不上什麼,要知道一台2匹的櫃式空調都有1500W了。
DT-12桌面集群工作站為12節點產品,擁有18Gflops的處理能力,支持最大24GB
DDR記憶體和1TB的磁碟存儲設備,同時它的功耗小於220W,另外我們得知1台DT-12桌面集群工作站還能與另外三台DT-12組成擁有48個節點超小型集群系統。怎樣?全美達的戰績還是非常輝煌的吧?
第8頁:嘆息、惋惜!也許有一天它會歸來……
請祝願並感謝全美達(Transmeta)吧,是他的出現把CPU的發展從一條走向極端的路途上拉向了理智的方向,是他在苦痛的掙扎中推動了便攜低功耗處理設備的前進。
面對當今電子硬體市場,我們不得不感嘆:發展速度實在太快,競爭實在太殘酷。當你用一台P4
3.0C上網打字寫文章的時候,你是否會想起還有一個名叫全美達Efficeon的處理器你未曾嘗試使用過。當然,你會認為為什麼非要用它呢!對,沒有必 要用它,但是也並不能否認它曾經的存在,它曾經的輝煌。與(元)美達、雅美達不同的是,也許有一天,全美達的處理器產品還會回來的。

常規知識匯總

CPU又叫中央處理器,是英文單詞Central Processing Unit的縮寫,負責對信息和數據進行運算和處理,並實現本身運行過程的自動化。在早期的計算機當中,CPU被分成了運算器和控制器兩個部分,後來由於電 路集成度的提高,在微處理器問世時,就將它們都集成在一個晶片中了。需要智慧型控制、大量信息處理的地方就會用到CPU。
CPU有通用CPU和嵌入式CPU,通用和嵌入式的分別,主要是根據套用模式的不同而劃分的。通用CPU晶片的功能一般比較強,能運行複雜的作業系統和大 型套用軟體。嵌入式CPU在功能和性能上有很大的變化範圍。隨著集成度的提高,在嵌入式套用中,人們傾向於把CPU、存儲器和一些外圍電路集成到一個晶片 上,構成所謂的系統晶片(簡稱為SOC),而把SOC上的那個CPU成為CPU芯核。
CPU的流派
現在,指令系統的最佳化設計有兩個截然相反的方向。一個是增強指令的功能,設定一些功能複雜的指令,把一些原來有軟體實現的常用功能改用硬體的指令系統來實現,這種計算機成為複雜指令系統計算機。早期Intel的X86指令體系就是一種CISC指令結構。
RISC是Reduced Instruction Set Computer的縮寫中文翻譯成精簡指令系統計算機,是八十年代發展起來的,儘量簡化指令功能,只保留那些功能簡單,能在一個節拍內執行完成的指令,較 複雜的功能用一段子程式來實現,這種計算機系統成為精簡指令系統計算機。目前採用RISC體系結構的處理器的晶片廠商有SUN、SGI、IBM的 Power PC系列、DEC公司的Alpha系列、Motorola公司的龍珠和Power PC等等。
MIPS體系
MIPS是世界上很流行的一種RISC處理器。MIPS的意思是"無內部互鎖流水級的微處理器"(Microprocessor without interlocked piped stages),其機制是儘量利用軟體辦法避免流水線中的數據相關問題。他最早是在80年代初期由斯坦福(Stanford)大學Hennessy教授領 導的研究小組研製出來的。MIPS公司的R系列就是在此基礎上開發的RISC工業產品的微處理器。這些系列產品以為很多打計算機公司採用構成各種工作站和 計算機系統。
指令系統
要講CPU,就必須先講一下指令系統。指令系統指的是一個CPU所能夠處理的全部指令的集合,是一個CPU的根本屬性。比如我們現在所用的CPU都是採用 x86指令集的,他們都是同一類型的CPU,不管是PIII、Athlon或Joshua。我們也知道,世界上還有比PIII和Athlon快得多的 CPU,比如Alpha,但它們不是用x86指令集,不能使用數量龐大的基於x86指令集的程式,如Windows98。之所以說指令系統是一個CPU的 根本屬性,是因為指令系統決定了一個CPU能夠運行什麼樣的程式。
所有採用高級語言編出的程式,都需要翻譯(編譯或解釋)成為機器語言後才能運行,這些機器語言中所包含的就是一條條的指令。
1、指令的格式
一條指令一般包括兩個部分:操作碼和地址碼。操作碼其實就是指令序列號,用來告訴CPU需要執行的是那一條指令。地址碼則複雜一些,主要包括源運算元地址、目的地址和下一條指令的地址。在某些指令中,地址碼可以部分或全部省略,比如一條空指令就只有操作碼而沒有地址碼。
2、指令的分類與定址方式
一般說來,現在的指令系統有以下幾種類型的指令:
(1) 算術邏輯運算指令
算術邏輯運算指令包括加減乘除等算術運算指令,以及與或非異或等邏輯運算指令。現在的指令系統還加入了一些十進制運算指令以及字元串運算指令等。
(2) 浮點運算指令
用於對浮點數進行運算。浮點運算要大大複雜於整數運算,所以CPU中一般還會有專門負責浮點運算的浮點運算單元。現在的浮點指令中一般還加入了向量指令,用於直接對矩陣進行運算,對於現在的多媒體和3D處理很有用。
(3) 位操作指令
學過C的人應該都知道C語言中有一組位操作語句,相對應的,指令系統中也有一組位操作指令,如左移一位右移一位等。對於計算機內部以二進制不碼錶示的數據來說,這種操作是非常簡單快捷的。
(4) 其他指令
上面三種都是運算型指令,除此之外還有許多非運算的其他指令。這些指令包括:數據傳送指令、堆疊操作指令、轉移類指令、輸入輸出指令和一些比較特殊的指令,如特權指令、多處理器控制指令和等待、停機、空操作等指令。
對於指令中的地址碼,也會有許多不同的定址(編址)方式,主要有直接定址,間接定址,暫存器定址,基址定址,變址定址等,某些複雜的指令系統會有幾十種甚至更多的定址方式。
3、 CISC與RISC
CISC,Complex Instruction Set Computer,複雜指令系統計算機。RISC,Reduced Instruction Set Computer,精簡指令系統計算機。雖然這兩個名詞是針對計算機的,但下文我們仍然只對指令集進行研究。
(1) CISC的產生、發展和現狀
一開始,計算機的指令系統只有很少一些基本指令,而其他的複雜指令全靠軟體編譯時通過簡單指令的組合來實現。舉個最簡單的例子,一個a乘以b的操作就可以 轉換為a個b相加來做,這樣就用不著乘法指令了。當然,最早的指令系統就已經有乘法指令了,這是為什麼呢?因為用硬體實現乘法比加法組合來得快得多。
由於那時的計算機部件相當昂貴,而且速度很慢,為了提高速度,越來越多的複雜指令被加入了指令系統中。但是,很快又有一個問題:一個指令系統的指令數是受指令操作碼的位數所限制的,如果操作碼為8位,那么指令數最多為256條(2的8次方)。
那么怎么辦呢?指令的寬度是很難增加的,聰明的設計師們又想出了一種方案:操作碼擴展。前面說過,操作碼的後面跟的是地址碼,而有些指令是用不著地址碼或只用少量的地址碼的。那么,就可以把操作碼擴展到這些位置。
舉個簡單的例子,如果一個指令系統的操作碼為2位,那么可以有00、01、10、11四條不同的指令。現在把11作為保留,把操作碼擴展到4位,那么就可 以有00、01、10、1100、1101、1110、1111七條指令。其中1100、1101、1110、1111這四條指令的地址碼必須少兩位。
然後,為了達到操作碼擴展的先決條件:減少地址碼,設計師們又動足了腦筋,發明了各種各樣的定址方式,如基址定址、相對定址等,用以最大限度的壓縮地址碼長度,為操作碼留出空間。
就這樣,慢慢地,CISC指令系統就形成了,大量的複雜指令、可變的指令長度、多種的定址方式是CISC的特點,也是CISC的缺點:因為這些都大大增加 了解碼的難度,而在現在的高速硬體發展下,複雜指令所帶來的速度提升早已不及在解碼上浪費點的時間。除了個人PC市場還在用x86指令集外,伺服器以及更 大的系統都早已不用CISC了。x86仍然存在的唯一理由就是為了兼容大量的x86平台上的軟體。
(2) RISC的產生、發展和現狀
1975年,IBM的設計師John Cocke研究了當時的IBM370CISC系統,發現其中占總指令數僅20%的簡單指令卻在程式調用中占了80%,而占指令數80%的複雜指令卻只有20%的機會用到。由此,他提出了RISC的概念。
事實證明,RISC是成功的。80年代末,各公司的RISC CPU如雨後春筍般大量出現,占據了大量的市場。到了90年代,x86的CPU如pentium和k5也開始使用先進的RISC核心。
RISC的最大特點是指令長度固定,指令格式種類少,定址方式種類少,大多數是簡單指令且都能在一個時鐘周期內完成,易於設計超標量與流水線,暫存器數量 多,大量操作在暫存器之間進行。由於下文所講的CPU核心大部分是講RISC核心,所以這裡就不多介紹了,對於RISC核心的設計下面會詳細談到。
RISC目前正如日中天,Intel的Itanium也將最終拋棄x86而轉向RISC結構。
CPU核心結構
好吧,下面來看看CPU。CPU核心主要分為兩部分:運算器和控制器。
運算器
1、算術邏輯運算單元ALU(Arithmetic and Logic Unit)
ALU主要完成對二進制數據的定點算術運算(加減乘除)、邏輯運算(與或非異或)以及移位操作。在某些CPU中還有專門用於處理移位操作的移位器。
通常ALU由兩個輸入端和一個輸出端。整數單元有時也稱為IEU(Integer Execution Unit)。我們通常所說的“CPU是XX位的”就是指ALU所能處理的數據的位數。
2、浮點運算單元FPU(Floating Point Unit)
FPU主要負責浮點運算和高精度整數運算。有些FPU還具有向量運算的功能,另外一些則有專門的向量處理單元。
3、通用暫存器組
通用暫存器組是一組最快的存儲器,用來保存參加運算的運算元和中間結果。
在通用暫存器的設計上,RISC與CISC有著很大的不同。CISC的暫存器通常很少,主要是受了當時硬體成本所限。比如x86指令集只有8個通用暫存 器。所以,CISC的CPU執行是大多數時間是在訪問存儲器中的數據,而不是暫存器中的。這就拖慢了整個系統的速度。而RISC系統往往具有非常多的通用 暫存器,並採用了重疊暫存器視窗和暫存器堆等技術使暫存器資源得到充分的利用。
對於x86指令集只支持8個通用暫存器的缺點,Intel和AMD的最新CPU都採用了一種叫做“暫存器重命名”的技術,這種技術使x86CPU的暫存器 可以突破8個的限制,達到32個甚至更多。不過,相對於RISC來說,這種技術的暫存器操作要多出一個時鐘周期,用來對暫存器進行重命名。
4、專用暫存器
專用暫存器通常是一些狀態暫存器,不能通過程式改變,由CPU自己控制,表明某種狀態。
控制器
運算器只能完成運算,而控制器用於控制著整個CPU的工作。
1、指令控制器
指令控制器是控制器中相當重要的部分,它要完成取指令、分析指令等操作,然後交給執行單元(ALU或FPU)來執行,同時還要形成下一條指令的地址。
2、時序控制器
時序控制器的作用是為每條指令按時間順序提供控制信號。時序控制器包括時鐘發生器和倍頻定義單元,其中時鐘發生器由石英晶體振盪器發出非常穩定的脈衝信號,就是CPU的主頻;而倍頻定義單元則定義了CPU主頻是存儲器頻率(匯流排頻率)的幾倍。
3、匯流排控制器
匯流排控制器主要用於控制CPU的內外部匯流排,包括地址匯流排、數據匯流排、控制匯流排等等。4、中斷控制器
中斷控制器用於控制各種各樣的中斷請求,並根據優先權的高低對中斷請求進行排隊,逐個交給CPU處理。
CPU核心的設計
CPU的性能是由什麼決定的呢?單純的一個ALU速度在一個CPU中並不起決定性作用,因為ALU的速度都差不多。而一個CPU的性能表現的決定性因素就在於CPU核心的設計。
1、超標量(Superscalar)
既然無法大幅提高ALU的速度,有什麼替代的方法呢?並行處理的方法又一次產生了強大的作用。所謂的超標量CPU,就是只集成了多個ALU、多個FPU、多個解碼器和多條流水線的CPU,以並行處理的方式來提高性能。
超標量技術應該是很容易理解的,不過有一點需要注意,就是不要去管“超標量”之前的那個數字,比如“9路超標量”,不同的廠商對於這個數字有著不同的定義,更多的這只是一種商業上的宣傳手段。
2、流水線(Pipeline)
流水線是現代RISC核心的一個重要設計,它極大地提高了性能。
對於一條具體的指令執行過程,通常可以分為五個部分:取指令,指令解碼,取運算元,運算(ALU),寫結果。其中前三步一般由指令控制器完成,後兩步 則由運算器完成。按照傳統的方式,所有指令順序執行,那么先是指令控制器工作,完成第一條指令的前三步,然後運算器工作,完成後兩步,在指令控制器工作, 完成第二條指令的前三步,在是運算器,完成第二條指令的後兩部……很明顯,當指令控制器工作是運算器基本上在休息,而當運算器在工作時指令控制器卻在休 息,造成了相當大的資源浪費。解決方法很容易想到,當指令控制器完成了第一條指令的前三步後,直接開始第二條指令的操作,運算單元也是。這樣就形成了流水 線系統,這是一條2級流水線。如果是一個超標量系統,假設有三個指令控制單元和兩個運算單元,那么就可以在完成了第一條指令的取址工作後直接開始第二條指令的取址,這時第一條指令 在進行解碼,然後第三條指令取址,第二條指令解碼,第一條指令取運算元……這樣就是一個5級流水線。很顯然,5級流水線的平均理論速度是不用流水線的4 倍。
流水線系統最大限度地利用了CPU資源,使每個部件在每個時鐘周期都工作,大大提高了效率。但是,流水線有兩個非常大的問題:相關和轉移。
在一個流水線系統中,如果第二條指令需要用到第一條指令的結果,這種情況叫做相關。以上面哪個5級流水線為例,當第二條指令需要取運算元時,第一條指 令的運算還沒有完成,如果這時第二條指令就去取運算元,就會得到錯誤的結果。所以,這時整條流水線不得不停頓下來,等待第一條指令的完成。這是很討厭的問 題,特別是對於比較長的流水線,比如20級,這種停頓通常要損失十幾個時鐘周期。目前解決這個問題的方法是亂序執行。亂序執行的原理是在兩條相關指令中插 入不相關的指令,使整條流水線順暢。比如上面的例子中,開始執行第一條指令後直接開始執行第三條指令(假設第三條指令不相關),然後才開始執行第二條指 令,這樣當第二條指令需要取運算元時第一條指令剛好完成,而且第三條指令也快要完成了,整條流水線不會停頓。當然,流水線的阻塞現象還是不能完全避免的, 尤其是當相關指令非常多的時候。
另一個大問題是條件轉移。在上面的例子中,如果第一條指令是一個條件轉移指令,那么系統就會不清楚下面應該執行那一條指令?這時就必須等第一條指令的 判斷結果出來才能執行第二條指令。條件轉移所造成的流水線停頓甚至比相關還要嚴重的多。所以,現在採用分支預測技術來處理轉移問題。雖然我們的程式中充滿 著分支,而且哪一條分支都是有可能的,但大多數情況下總是選擇某一分支。比如一個循環的末尾是一個分支,除了最後一次我們需要跳出循環外,其他的時候我們 總是選擇繼續循環這條分支。根據這些原理,分支預測技術可以在沒有得到結果之前預測下一條指令是什麼,並執行它。現在的分支預測技術能夠達到90%以上的 正確率,但是,一旦預測錯誤,CPU仍然不得不清理整條流水線並回到分支點。這將損失大量的時鐘周期。所以,進一步提高分支預測的準確率也是正在研究的一 個課題。
越是長的流水線,相關和轉移兩大問題也越嚴重,所以,流水線並不是越長越好,超標量也不是越多越好,找到一個速度與效率的平衡點才是最重要的。
CPU的外核
1、解碼器(Decode Unit)
這是x86CPU才有的東西,它的作用是把長度不定的x86指令轉換為長度固定的類似於RISC的指令,並交給RISC核心。解碼分為硬體解碼和微解碼, 對於簡單的x86指令只要硬體解碼即可,速度較快,而遇到複雜的x86指令則需要進行微解碼,並把它分成若干條簡單指令,速度較慢且很複雜。好在這些複雜 指令很少會用到。Athlon也好,PIII也好,老式的CISC的x86指令集嚴重製約了他們的性能表現。
2、一級快取和二級快取(Cache)
以及快取和二級快取是為了緩解較快的CPU與較慢的存儲器之間的矛盾而產生的,以及快取通常集成在CPU核心,而二級快取則是以OnDie或OnBoard的方式以較快於存儲器的速度運行。對於一些大數據交換量的工作,CPU的Cache顯得尤為重要。

相關詞條

熱門詞條

聯絡我們