商業(yè)微處理器:歷史抽米、理論和趨勢(三)從DEC到Intel:70年代的小型機(jī)和微型機(jī)

從DEC到Intel:70年代的小型機(jī)和微型機(jī)

計算機(jī)最初是從大型機(jī)開始發(fā)展起來的侵佃,主要面向科學(xué)計算領(lǐng)域或者是統(tǒng)計和字符處理工作抠刺。隨著集成電路的發(fā)展滩届,計算機(jī)市場開始細(xì)分果正,出現(xiàn)了面向中小企業(yè)的小型機(jī)和面向個人用戶的微型機(jī)贸毕。小型機(jī)的典型代表是DEC公司件蚕,從組建到被收購孙技,DEC公司一直從事小型機(jī)的研發(fā)产禾。而微型機(jī)的典型代表則是Intel公司。從1971年的4004到1978年的8086牵啦,Intel逐步調(diào)整微處理器的架構(gòu)亚情,并開始了40年多年的兼容之路。

DEC的小型機(jī)情懷

DEC公司一直致力于小型機(jī)的研發(fā)工作哈雏,1970年推出的16位小型機(jī)PDP-11是此前飽受贊譽(yù)的PDP-8的后續(xù)版本楞件。PDP系列計算機(jī)是CISC的典型代表,其指令包含至多四個操作數(shù)裳瘪,分別表示指令的兩個源操作數(shù)土浸、一個目的操作數(shù)和下一條指令的地址[15]。這樣的設(shè)計使得PDP-11可以模擬零地址彭羹、單地址黄伊、兩地址、三地址的指令派殷,深受高校和計算機(jī)學(xué)習(xí)者的喜愛还最。與此同時,PDP-11還支持多種類型的訪存方式毡惜,這給編程帶來了極大的便利拓轻。PDP-11的Cache大小為1024KB,兩路組相聯(lián)经伙,每個塊包含2個字悦即,使用寫不分配策略和隨機(jī)替代算法〕髀遥基于真實trace的模擬結(jié)果表明命中率高于90%[16]辜梳。

1978年,DEC推出了PDP-11的虛擬地址擴(kuò)展VirtrualAddressExtension計算機(jī)VAX-11[17]泳叠。VAX-11的地址總線有32位作瞄,為了保證市場的平穩(wěn)過渡,早期的VAX-11計算機(jī)使用兼容模式運行16位程序危纫,但是性能上要比新的32位地址程序慢宗挥。在市場逐漸適應(yīng)了這樣的設(shè)計之后,再移除這樣的模式种蝶,從而不至于造成大量的客戶流失契耿。值得一提的是,在量化一書中的螃征,標(biāo)記Moore’sLaw的起點的就是VAX-11/780計算機(jī)[1]搪桂。此時距離UNIX操作系統(tǒng)和C語言的發(fā)明已經(jīng)過去近十年,VAX-11中能夠看到許多明顯為操作系統(tǒng)設(shè)計的硬件,例如堆棧寄存器踢械、分頁和硬件TLB酗电、中斷、用戶態(tài)核心態(tài)訪問權(quán)限控制内列、機(jī)器狀態(tài)字撵术、上下文切換等,許多我以前以為是Intel專有的東西在這里也看到了類似的實現(xiàn)话瞧。VAX-11延續(xù)了許多PDP-11的設(shè)計嫩与,例如UNIBUS、Cache交排,也有為性能增加的額外的浮點單元和預(yù)譯碼技術(shù)蕴纳。作為CISC的一員,VAX-11使得程序員可以根據(jù)自己的直接需要編寫指令个粱,編譯器負(fù)責(zé)生成最短的指令長度,并將一連串的常見指令編譯成一條指令翻翩。這些策略在后來的Intel微處理器也能看到類似的結(jié)構(gòu)都许,將X86預(yù)譯碼成uop,再融合成Macro-up嫂冻。VAX-11的強(qiáng)大功能引起了一系列細(xì)致的性能分析工作[18–25]胶征,這些工作推動了計算機(jī)體系結(jié)構(gòu)的發(fā)展。

在1976年的一篇回顧性文章[26]中桨仿,DEC的工程師詳細(xì)的總結(jié)了PDP-11研發(fā)過程中遇到的種種困難睛低,包括已經(jīng)克服的和沒能克服的。文中提出了小型機(jī)的9個弱點服傍,包括:1.有限的地址空間钱雷;2.有限的寄存器;3.沒有硬件堆棧吹零;4.有限的中斷能力和上下文切換的能力罩抗;5.有限的字符處理能力;6.無法使用ROM灿椅;7.有限的IO能力套蒂;8.有限的擴(kuò)展能力;9.較大的編程難度茫蛹。在半導(dǎo)體工藝尚無法達(dá)到那么高集成度的時候操刀,這些9條限制確實只能在更大的計算機(jī)系統(tǒng)中實現(xiàn)。PDP-11克服了這些困難婴洼,獲得良好的市場贊譽(yù)骨坑,并且在80年代逐漸到達(dá)市值的頂峰。但是柬采,隨著集成電路技術(shù)的發(fā)展卡啰,微處理器上已經(jīng)可以支持更多硬件資源静稻。另一方面,DEC公司忽視了市場昂貴的計算機(jī)價格下壓抑著的巨大的個人計算機(jī)的需求匈辱。雖然小型機(jī)繼續(xù)在發(fā)展振湾,但歷史的潮流已經(jīng)開始轉(zhuǎn)向了個人計算機(jī)。隨著Altair8800亡脸、IBMPC押搪、Apple-II等個人計算機(jī)的推出,DEC公司也逐漸式微浅碾。不由得想起上學(xué)期《計算機(jī)體系結(jié)構(gòu)》里胡偉武老師的一句話:“歷史上比Intel技術(shù)先進(jìn)的計算機(jī)差不多都已經(jīng)消失了大州。”下次我們再見到DEC公司垂谢,是他推出Alpha21264的時候了厦画,那個時候的DEC公司已經(jīng)走到了它最后的歲月。有關(guān)DEC和小型機(jī)的故事還在繼續(xù)滥朱,但是現(xiàn)在我們要把目光轉(zhuǎn)向未來世界的寵兒根暑,Intel公司。

Intel一系列兼容芯片的源頭:8086

目前最新的Intel的芯片可以兼容到最早的8086微處理器徙邻,相信每個寫過匯編程序的人都會被它或多或少的折磨一段時間排嫌。8086作為Intel一系列前向兼容的微處理器的源頭,它也不是一下子憑空冒出來的缰犁。文獻(xiàn)[27]詳細(xì)介紹了從4004到8086架構(gòu)的演變淳地,可以幫助我們更好的理解8086的體系結(jié)構(gòu)。

Intel第一款微處理器芯片4004誕生于1971年帅容,僅有2000多個晶體管的它幾乎和ENIAC具有同樣的計算能力颇象。但這次人們不是用它來計算彈道,而是用它構(gòu)建了一臺BCD碼手持計算器并徘,4004也只支持4位的指令夯到。

次年8008誕生了,這是一款為CRT終端設(shè)計的8位微處理器饮亏。8008通過復(fù)用兩次8位輸出信號產(chǎn)生一個14位的地址和2位有效位耍贾,盡管8008只能尋址16K的內(nèi)存,但卻給了編程人員自己管理內(nèi)存空間的權(quán)利路幸。8008的棧只有8個入口荐开,因此最多只能支持8層的函數(shù)嵌套。在端口分配上简肴,輸入端口有8個晃听,輸出端口有24個,因為架構(gòu)師認(rèn)為輸出比輸入更重要。8008的寄存器包括一個累加器A能扒,6個寄存器BCDEHL佣渴,和一個偽寄存器M。M其實是由H和L定義的一個內(nèi)存地址初斑,盡管在程序員看起來像個寄存器辛润,通過這種方式溝通寄存器和主存。此外见秤,8008還有四個Flags寄存器砂竖。控制流指令包括jump鹃答、call和return乎澄,而Halt指令使得處理器暫停工作等待中斷。no-op指令將A寄存器的值移動到A寄存器测摔,從而不產(chǎn)生任何影響置济。8008僅支持至多8個中斷,對應(yīng)的中斷處理程序在內(nèi)存的固定位置锋八。值得注意的是浙于,8080沒有屏蔽中斷的指令,也沒有中斷發(fā)生時的保存任何寄存器的指令查库。

1974年,半導(dǎo)體工藝的發(fā)展給了8008進(jìn)一步改進(jìn)的空間黄琼,這造就了16位的8080樊销。8080可尋址的范圍為64K,不再使用有效位脏款,同時重新調(diào)整了寄存器的結(jié)構(gòu)围苫,以滿足16位的要求。棾肥Γ空間不再受到限制剂府,理論上可以使用整個內(nèi)存空間,Call指令會導(dǎo)致自動壓棧剃盾,而Return指令會自動彈出腺占。同時,StackPointer也可以被程序員直接引用痒谴,而原本的M寄存器尋址指令替換為3B的生成地址訪問指令衰伯,由HL寄存器提供地址。Flag值被放入到一個8為的寄存器當(dāng)中积蔚,并保留了一些位意鲸,這就是日后eflags寄存器的雛形。在指令集上加入了Load/Store指令、新的寄存器指令怎顾、Carry指令读慎、擴(kuò)展IO指令和中斷指令。

1978年槐雾,我們的8086終于出現(xiàn)了夭委。8086在設(shè)計上要求在完全兼容8080的寄存器和指令集,并且性能要高出一個量級蚜退,同時支持可重入代碼闰靴、位置無關(guān)代碼和動態(tài)可重定位代碼。在內(nèi)存結(jié)構(gòu)上钻注,8086支持1M內(nèi)存的尋址蚂且,這些地址空間劃分為一系列段,每個段包含64K的空間幅恋,微處理器可以直接訪問當(dāng)前的代碼段杏死、數(shù)據(jù)段、棧段和額外段捆交。寄存器文件邏輯上被分為三組:通用寄存器淑翼,指針和索引寄存器和段寄存器。8086一共有13個16位寄存器和9個flag位品追,其中增加了4個flag玄括,分別用于指示溢出、地址方向肉瓦、中斷開關(guān)和調(diào)試遭京。指令集被擴(kuò)展到133條,支持8位和16位有符號和無符號數(shù)的計算泞莉,并且支持五種訪存模式哪雕。外部接口方面,8086可以支持64個IO接口鲫趁。

當(dāng)時的16位微處理器并不只有Intel的8086一家斯嚎,還有Zilog公司的Z8000以及Motorola公司的MC68000。文獻(xiàn)[28]比較了這三者挨厚,結(jié)果顯示性能最好的是Z8000堡僻。盡管如此,IBM在1981年推出IBMPC的時候疫剃,仍然選擇了Intel的8088微處理器苦始,同時還有MicroSoft的MS-DOS操作系統(tǒng)。

不管怎樣慌申,微處理器的歷史已經(jīng)開始了陌选,接下來我們將聚焦那些著重提升微處理器性能的技術(shù)理郑。下次討論具體的微處理器,就到了1996年了咨油。

[15] G. Bell, R. Cady, H. McFarland, B. Delagi, J. O’Laughlin, R. Noonan, and W. Wulf. A new architecture for mini-computers: the dec pdp-11. In Proceedings of the May 5-7, 1970, spring joint computer conference, page 657–675. Association for Computing Machinery.

[16] William D. Strecher. Cache memories for pdp-11 family computers. In Proceedings of the 3rd annual symposium on Computer architecture, page 155–158. Association for Computing Machinery.

[17] W. D. Strecker. Vax-11/780 - a virtual address extension to the dec pdp-11 family. In AFIPS National Computer Conference, volume 47, pages 967–980. IEEE Computer Society.

[18] Douglas W. Clark. Cache performance in the vax-11/780. ACM Trans. Comput. Syst., 1(1):24–37, 1983.

[19] Cheryl A. Wiecek. A case study of vax-11 instruction set usage for compiler execution. In Proceedings of the first international symposium on Architectural support for programming languages and operating systems, page 177–184. Association for Computing Machinery.

[20] Martin L. De Prycker. A new index mode for the vax-11. SIGARCH Comput. Archit. News, 9(2):10–11, 1981.

[21] Douglas W. Clark and Henry M. Levy. Measurement and analysis of instruction use in the vax-11/780. In Proceedings of the 9th annual symposium on Computer Architecture, page 9–17. IEEE Computer Society Press.

[22] Joel S. Emer and Douglas W. Clark. A characterization of processor performance in the vax-11/780. In Proceedings of the 11th annual international symposium on Computer architecture, page 301–310. Association for Computing Machinery.

[23] Joel S. Emer and Douglas W. Clark. Retrospective: characterization of processor performance in the vax-11/780. In 25 years of the international symposia on Computer architecture (selected papers), page 37–38. Association for Computing Machinery.

[24] Douglas W. Clark and Joel S. Emer. Performance of the vax-11/780 translation buffer: simulation and measurement. ACM Trans. Comput. Syst., 3(1):31–62, 1985.

[25] Stephen Tolopka. An event trace monitor for the vax 11/780. In Proceedings of the 1981 ACM SIGMETRICS conference on Measurement and modeling of computer systems, page 121–128. Association for Computing Machinery.

[26] Gordon Bell and William D. Strecker. Computer structures: What have we learned from the pdp-11? In Proceedings of the 3rd annual symposium on Computer architecture, page 1–14. Association for Computing Machinery.

[27] Morse, Raveiel, Mazor, and Pohiman. Intel microprocessors–8008 to 8086. Computer, 13(10):42–60, 1980.

[28] R. K. Bell, W. D. Bell, T. C. Cooper, and T. K. McFarland. The big three - today’s 16-bit microprocessor. In Proceedings of the 13th annual workshop on Microprogramming, page 126–138. IEEE Press.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末您炉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子役电,更是在濱河造成了極大的恐慌赚爵,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件法瑟,死亡現(xiàn)場離奇詭異冀膝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)霎挟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進(jìn)店門窝剖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酥夭,你說我怎么就攤上這事赐纱。” “怎么了熬北?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵疙描,是天一觀的道長。 經(jīng)常有香客問我讶隐,道長起胰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任巫延,我火速辦了婚禮效五,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烈评。我一直安慰自己火俄,他們只是感情好犯建,可當(dāng)我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布讲冠。 她就那樣靜靜地躺著,像睡著了一般适瓦。 火紅的嫁衣襯著肌膚如雪竿开。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天玻熙,我揣著相機(jī)與錄音否彩,去河邊找鬼。 笑死嗦随,一個胖子當(dāng)著我的面吹牛列荔,可吹牛的內(nèi)容都是我干的敬尺。 我是一名探鬼主播,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼贴浙,長吁一口氣:“原來是場噩夢啊……” “哼砂吞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起崎溃,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤蜻直,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后袁串,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體概而,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年囱修,在試婚紗的時候發(fā)現(xiàn)自己被綠了赎瑰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡蔚袍,死狀恐怖乡范,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啤咽,我是刑警寧澤晋辆,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站宇整,受9級特大地震影響瓶佳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鳞青,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一霸饲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧臂拓,春花似錦厚脉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至孵滞,卻和暖如春中捆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坊饶。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工泄伪, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匿级。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓蟋滴,卻偏偏與公主長得像染厅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子津函,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 內(nèi)容要點:x86 ISA糟秘,MIPS ISA 構(gòu)造一臺自己的計算機(jī) 指令格式 第一個字節(jié)第二個字節(jié)xxxx ...
    Lynn_4f26閱讀 1,130評論 2 5
  • 王爽匯編全書知識點大綱 第一章 基礎(chǔ)知識 機(jī)器語言 匯編語言的產(chǎn)生 匯編語言的組成 存儲器 cpu對存儲器的讀寫 ...
    2c3ba901516f閱讀 2,408評論 0 1
  • 5-Level Paging and 5-Level EPT white paper原文 修訂版本1.1 2017...
    公子小水閱讀 3,728評論 0 3
  • 1.地址總線,數(shù)據(jù)總線球散,控制總線在哪里尿赚,它們有什么作用?答:它們都是cpu連接外部組件的線路。地址總線:地址總線A...
    MagicalGuy閱讀 1,439評論 0 1
  • 我想去一次遠(yuǎn)方不帶什么行囊只有安靜的思緒伴隨輕盈的腳步 我不想涂寫什么也不要人聲紛擾只想摘一枝春葉把青蔥握在手上 ...
    紙蛾子閱讀 190評論 2 7