精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

CPU 進化論:復雜指令集 CISC

商務辦公
本文從歷史的角度講述了復雜指令集出現的必然,復雜指令集對于那些直接使用匯編語言進行編程的程序員來說是很方便的,同時復雜指令集的指令密度更高,相同的存儲空間可以存儲更多程序,這一切都推動了復雜指令集的發展。

[[401849]]

英國生物學家達爾文于 1859 年出版了震動整個學術界和宗教界的《物種起源》,達爾文在這本書里提出了生物進化論學說,認為生命在不斷演變進化,物競天擇適者生存。

沒有歷史的計算機

生命是這樣,實際上計算機技術也是如此。

計算機技術也和生命體一樣在不斷演變進化,在討論一項技術時,如果不了解其演變過程而僅僅著眼于當下就會讓人疑惑,不巧的是這正是當前計算機教育的現狀——沒有歷史。

因此,在這里我將嘗試從歷史的角度來講講 CPU,以及 CPU 的發展歷程。

本篇主要關注CPU與復雜指令集CISC。

首先來看下什么是CPU。

什么是CPU?

我們都是程序員,那么從程序員的角度來看,CPU的工作其實是很簡單的。

我們編寫的所有程序,不管是簡單的Hello World,還是復雜的比如PhotoShop之類大型App,最終都會被編譯器轉為一條條簡單的機器指令,因此在CPU看來所有程序是沒有什么本質區別的,無非就是一個包含的指令多,一個包含的指令少,這些指令就保存在可執行文件中,程序運行時被加載到內存開始被CPU執行。

管你是簡單程序還是復雜程序,CPU才不關心這些,它只需要簡單一條一條的執行就可以了,因此,在程序員眼里 CPU 是一個很簡單的家伙。

有很多同學可能會好奇CPU是怎么構造出來,你可以參考《你管這破玩意叫CPU》。

接下來我們的視角就可以進一步聚焦了,CPU執行的是什么機器指令呢?

CPU的能力圈:指令集

我們該怎樣描述一個人的能力呢?寫過簡歷的同學肯定都知道,就像這樣:

會寫代碼

  • 會炒菜
  • 會唱歌
  • 會跳舞
  • 會炒股
  • 。。。

巴菲特有一個詞用的很好,這叫能力圈,如果一個人會“寫代碼”,那么你命令這個人“寫代碼”,他就能寫出代碼來(現實情況下你讓他寫代碼他可能會過來打你)。

CPU也是同樣的道理,每種類型的CPU都要自己的能力圈,只不過CPU的能力圈有一個特殊的名字,叫做 Instruction Set Architecture ,ISA,也就是指令集,指令集中包含各種各樣的指令:

  • 會加法
  • 會從內存把數據搬運到寄存器
  • 會跳轉
  • 會比較大小
  • 。。。

指令集告訴我們一個CPU可以干嘛。

你從ISA中找一條指令發給CPU,CPU就是完成這條指令所代表的任務。

ISA有什么用呢,當然是程序員用來編程啦!

沒錯,最初的程序都是面向CPU直接用匯編來寫程序,這一時期也非常的樸實無華,沒有那么多花哨的概念,什么面向對象啦,什么設計模式啦,統統沒有,總之這個時期的程序員寫代碼只需要看看ISA就可以了。

這就是指令集的概念,注意,指令集是CPU告訴程序員該怎么讓自己工作的。

不同的CPU會有不同類型的指令集,指令集的類型除了影響程序員寫匯編程序之外還會影響CPU的硬件設計,到底CPU該采用什么類型的指令集,CPU該如何設計,這一論戰持續至今,并且愈發精彩。

接下來我們看一下第一種也是最先誕生的指令集類型:復雜指令集,Complex Instruction Set Computer,簡稱CISC。當今普遍存在于桌面PC以及服務器端的x86架構就是基于復雜指令集CISC,生產x86處理器的廠商就是我們熟悉的“等,等等等等”英特爾以及AMD。

抽象:少就是多

直到1970s年代,這一時期編譯器還非常菜,不像現在這么智能,沒多少人信得過編譯器,大部分程序還是用匯編語言純手工編寫 (這一點極為重要,對于接下來理解復雜指令集非常關鍵),這對現代程序員來說是無法想象的,不要說手寫匯編語言,就是看懂匯編語言的程序員都不會很多。

當然,現代編譯器已經足夠強大足夠智能,編譯器生成的匯編語言已經足夠優秀,因此當今程序員,除了編寫操作系統以及部分驅動的那幫家伙,剩下的幾乎已經意識不到匯編語言的存在了,不要覺得可惜,這是生產力進步的表現,用高級語言編寫程序的效率可是匯編語言望塵莫及的。

題外話說的有點多,總之,這一時期的大部分程序都是直接通過匯編語言編寫的,因此大家普遍認為指令集應該更加豐富一些、指令本身功能更強大一些,程序員常用的操作最好都有對應的特定指令,畢竟大家都在直接用匯編語言來寫程序,如果指令集很少或者指令本身功能單一,那么程序員用匯編指令寫起程序會會非常繁瑣,很不方便,如果你在這個時期用匯編寫程序你也會這樣想。

這就是這個時期一些計算機科學家所謂的抹平差異,semantic gap,抹平什么差異呢?

大家認為高級語言中的一些概念比如函數調用、循環控制、復雜的尋址模式、數據結構和數組的訪問等都應該直接有對應的機器指令,這些就是現代大家認為的復雜指令集CISC非常鮮明的特點。

除了更方便的使用匯編語言寫程序,另一點需要考慮就是存儲。

物種起源

當今的計算機都遵從馮諾依曼架構,該架構的核心思想之一是“程序應該和數據一樣都作為比特保存在計算機存儲設備中”,下面這張圖是所有計算設備的鼻祖,你現在看這篇文章用計算設備,不管是智能手機或者iPad、PC,亦或是存放這篇文章的微信數據中心服務器,其本質都是下面這張簡單的圖,這張圖是一切計算設備的起源。

代碼也是要占存儲空間的

從馮諾依曼結構中我們就能知道為什么當今可執行程序中,比如Windows下的EXE或者Linux下的ELF文件,即包含機器指令也包含數據,對于程序員來說我們可以簡單的認為可執行程序中有兩部分內容:數據段以及代碼段:

由此可見,程序員寫的代碼是要占據存儲空間的,要知道在1970s年代,內存大小僅僅數KB到數十KB,這是當今程序員不可想象的,因為現在(2021年)的智能手機內存都已經數GB。如圖所示是1974年發布的Intel 1103內存芯片:

[[401851]]

大小只有 1KB 的英特爾1103存儲芯片的于1974年發布,這標志著計算機工業界開始進入動態隨機存儲DRAM時代,DRAM也就是我們熟知的內存。

大家可以思考一下,幾KB的內存,可謂寸土寸金,這么小的內存要想裝入更多的程序就必須仔細的設計機器指令以節省程序占據的空間,這就要求:

  1. 一條機器指令盡可能完成更多的任務,這很容易理解,就像在《你管這破玩意叫編程語言》這篇中的例子一樣,你更希望有一條“給我端杯水”的指令,而不是自己去寫“邁出左腳;停住;邁出右腳;直到飲水機;伸出右手;拿起水杯;接水。。。”等等這樣的匯編代碼
  2. 機器指令長度不固定,也就是變長機器指令,簡單的指令占據更少的空間
  3. 機器指令高度編碼(encoded),提高代碼密度,節省空間

復雜指令集誕生的必然

基于對程序員方便編寫匯編語言以及節省代碼存儲空間的需要,直接促成了復雜指令集的設計,因此我們可以看到復雜指令集是這一時期必然的選擇,該指令集就這樣誕生了并開始成為主流。

就這樣經過一段時間后,人們發現了新的問題,由于單條指令比較復雜,設計解碼機器指令的硬件(CPU的一部分)成了一件非常麻煩的事情,該怎樣解決這一問題呢?

CPU真的在直接執行機器指令嗎?

作為程序員,我們知道,對于重復使用的代碼其實是沒有必要一遍遍編寫的,你可以把這些代碼封裝到函數中,這樣每次使用時只需要調用這個函數就好了,這個思路可以解決上述問題。

對于指令集中的每一條機器指令都有一小段對應的程序,這些程序存儲在CPU中,這些程序都是由更簡單的指令組成,這些指令就是所謂的微代碼,Microcode。

就這樣CPU的指令集可以添加更多的指令,代價僅僅是再多一些簡單的微代碼而已,是不是很天才的設計。

在這里也可以看到,一般我們認為CPU直接執行機器指令,嚴格來說這是不正確的,對于含有微代碼設計的CPU來說,CPU直接執行的并不是機器指令,而是微代碼,微代碼是CPU以及機器指令的中間層,機器指令相對于微代碼來說是“更高級的語言”,機器指令對程序員來說可見,但微代碼對程序員來說不可見,程序員無法直接使用微代碼來控制CPU。

而在這一時期,這些微代碼普遍存放在ROM中,Read-Only Memory,而ROM普遍要比內存便宜,因此依靠存儲在ROM中的微代碼來設計更多復雜指令進而減少程序本身對內存的占用是非常劃算的。

新的問題

一切看上去都很好,有了復雜指令集,程序員可以更方便的編寫匯編程序,這些程序也不需要占用很多存儲空間,代價就是CPU中需要有微代碼來簡化CPU設計。

然而這一設計隨著時間的推移又出現了新的問題。

作為程序員我們知道代碼難免會有bug,微代碼也不會有例外。但修復微代碼的bug要比修復普通程序的bug困難的多,你無法像普通程序那樣來測試、調試微代碼,這一切都太復雜了。

而且微代碼設計非常消耗晶體管,1979年代的Motorola 68000 處理器就采用該設計,其中三分之一的晶體管都用在了微代碼上。

同年,計算機科學家Dave Patterson被委以重任來改善微代碼設計,為此他還專門發表了論文,但他后來又推翻了自己想法,認為微代碼設計的復雜性問題很難解決,有問題的是微代碼這種設計本身。。

因此,有人開始反思,是不是還會有更好的設計。。。

預知后事如何請聽下回分解。

總結

CPU是整個計算機系統的核心,CPU指令集ISA更是核心中的核心。

本文從歷史的角度講述了復雜指令集出現的必然,復雜指令集對于那些直接使用匯編語言進行編程的程序員來說是很方便的,同時復雜指令集的指令密度更高,相同的存儲空間可以存儲更多程序,這一切都推動了復雜指令集的發展。

然而任何事物都有其必然性以及局限性,復雜指令集也不例外,隨著時間的推移采用復雜指令集的CPU設計出現各種各樣的問題,面對這些問題一部分人開始重新思考指令集到底該如何設計,我們將在下篇文章中繼續講述這一話題。

希望本篇對大家理解復雜指令集有所幫助。

本文轉載自微信公眾號「碼農的荒島求生」,可以通過以下二維碼關注。轉載本文請聯系碼農的荒島求生公眾號。

 

責任編輯:武曉燕 來源: 碼農的荒島求生
相關推薦

2013-03-06 09:51:54

2009-10-28 09:11:17

2012-07-25 10:44:39

2020-11-18 13:03:10

云防火墻安全運營云安全

2018-11-06 12:23:12

2017-04-10 10:06:09

互聯網

2013-10-17 16:46:00

DevOps

2016-07-11 11:28:22

華三

2009-12-07 10:19:19

服務器IT基礎架構惠普

2014-10-08 15:13:12

GITC2014全球互聯網技術大會

2012-03-31 11:09:24

ITWindows

2025-04-25 00:00:00

2014-10-22 09:09:16

敏捷華為

2021-03-13 08:00:59

機器人AI人工智能

2015-06-05 12:14:57

DevOps云應用開發Docker

2023-09-14 07:25:07

自主指令集核心

2020-10-25 19:56:22

物聯網區塊鏈IOT

2024-09-25 12:32:28

數據中臺數據飛輪

2010-05-11 10:56:41

HTML 5
點贊
收藏

51CTO技術棧公眾號

999精品色在线播放| 精品一区二区在线观看视频| 国产美女一区视频| 国产成人综合网| 欧美精品在线观看| 四虎1515hh.com| 国产乱妇乱子在线播视频播放网站| 国产福利一区二区三区视频在线| 久久成人精品电影| 免费看三级黄色片| 91在线中文| 成人一区二区视频| 欧美日韩国产成人高清视频| 国产亚洲色婷婷久久99精品91| 免费看男女www网站入口在线| 久久免费偷拍视频| 91精品久久久久久久久久另类 | h视频在线免费观看| 国产v综合v亚洲欧| 欧美亚洲在线观看| 日日操免费视频| 韩国女主播一区二区| 亚洲久草在线视频| 国产伊人精品在线| 日产电影一区二区三区| 免费一区二区三区在线视频| 精品久久香蕉国产线看观看gif| 久久av一区二区| 91精品国产综合久| 欧美日韩一区二区国产| 欧美videofree性高清杂交| 日韩 欧美 高清| 国产原创精品视频| 久久久久久久久久电影| 成人午夜在线观看| 日日夜夜狠狠操| 欧美日韩视频一区二区三区| 伊人精品在线观看| 丰满少妇在线观看| 黄色污网站在线观看| 91视频com| 国产欧美日韩中文字幕| 成人精品在线看| 欧美 日韩 国产 一区| 日韩精品在线免费观看视频| 中文字幕在线视频一区二区| 极品视频在线| 亚洲综合在线免费观看| 欧美日韩在线播放一区二区| 六月丁香综合网| 狠狠狠色丁香婷婷综合激情| 国产精品扒开腿爽爽爽视频| 日韩免费一二三区| 这里只有精品在线| 亚洲欧美激情在线视频| 美女流白浆视频| 91精品国产一区二区在线观看| 图片区日韩欧美亚洲| www.激情网| 国产盗摄在线观看| 中文字幕一区二区三区乱码在线 | 国产成人在线中文字幕| 欧美日韩中文另类| 激情婷婷综合网| 性国裸体高清亚洲| 无码av免费一区二区三区试看| 国产免费内射又粗又爽密桃视频| 日本在线免费播放| 国产欧美中文在线| 日韩三级电影网站| 国产爆初菊在线观看免费视频网站| 97精品视频在线观看自产线路二| 国产精品一区二区三区免费视频 | 高清不卡一区| 欧美一区永久视频免费观看| 国产三级日本三级在线播放| 范冰冰一级做a爰片久久毛片| 精品久久久久久国产| 黄色www网站| 国产高潮在线| 色综合久久久久网| 国产 日韩 欧美在线| 久久久久黄久久免费漫画| 亚洲午夜三级在线| 久久综合九色综合88i| 是的av在线| 一个色综合av| av7777777| 亚洲一区资源| 欧美性生活大片视频| 亚洲一区二区三区四区五区| 国产精选久久| 91麻豆精品国产综合久久久久久| 欧美熟妇另类久久久久久多毛| 日韩第一区第二区| 亚洲黄色www| 久久偷拍免费视频| 国产精品一区高清| 久久精品国产96久久久香蕉| 欧美激情精品久久| 国产婷婷精品| 国产精品稀缺呦系列在线| 美女又爽又黄免费视频| 另类人妖一区二区av| 成人综合国产精品| 国产熟女一区二区三区五月婷| 国产一区二区在线影院| 精品国产一区二区三区四区精华| 天天操天天插天天射| 国产网红主播福利一区二区| 国产高潮呻吟久久久| 成人性生交大片免费看网站| 色先锋久久av资源部| 天堂在线资源视频| 色8久久久久| 亚洲精品国产综合区久久久久久久| 日本女人性视频| 日韩美脚连裤袜丝袜在线| 中文字幕无线精品亚洲乱码一区 | 高清在线观看日韩| 久久久精品有限公司| 香蕉视频在线看| 亚洲国产精品久久艾草纯爱| 日韩 欧美 高清| 欧洲美女精品免费观看视频| 精品国产人成亚洲区| 日韩av一二区| 欧美精品羞羞答答| 午夜精品久久久久久久99热| 欧美另类高清videos的特点| 久草精品在线观看| 99re视频| av天在线观看| 亚洲成人午夜影院| 91香蕉视频污版| 九九热播视频在线精品6| 日韩小视频网址| 欧美日韩免费一区二区| 免费成人美女在线观看| 国产精品乱子乱xxxx| chinese偷拍一区二区三区| 亚洲va天堂va国产va久| 久久久久久久高清| 日韩一区二区中文| 日韩av色综合| 天堂资源最新在线| 亚洲男人电影天堂| 性生活免费在线观看| 婷婷综合电影| 韩国三级电影久久久久久| 国产精品高潮呻吟AV无码| 久久久久国产精品厨房| 美脚丝袜脚交一区二区| 视频二区欧美| 欧美老女人性视频| 99精品视频在线播放免费| 国产情人综合久久777777| 久久久久久久中文| 国产精品自在| 国产清纯白嫩初高生在线观看91 | 日韩免费在线电影| 精品亚洲va在线va天堂资源站| 日本一级特级毛片视频| 日韩专区一卡二卡| 欧美日本亚洲| 亚洲美女炮图| 亚洲欧美在线免费观看| 伊人中文字幕在线观看| 久久久久国产精品免费免费搜索| 波多野结衣家庭教师在线| www.久久av| 免费在线毛片| 亚洲一区二区在线观看视频| 一级黄色片国产| 亚洲激情久久| 亚洲a在线观看| 9191在线| 色94色欧美sute亚洲线路二 | 午夜精品一区二区三区在线视| 韩国中文字幕hd久久精品| 天天色综合成人网| 手机毛片在线观看| 国产乱码精品一区二区三区五月婷| 成年人视频网站免费| 久久久国产欧美| 欧美a一欧美| 国产精品扒开腿做爽爽爽的视频| 黄色在线观看网| 欧美丰满高潮xxxx喷水动漫| 久草国产在线观看| 强制捆绑调教一区二区| 黄色一级片网址| 日韩av三区| 川上优av一区二区线观看| 国产偷倩在线播放| 亚洲天堂av综合网| 欧美国产二区| 日本亚洲精品| 精品国产不卡一区二区三区| 国产极品美女高潮无套嗷嗷叫酒店| aaa亚洲精品一二三区| 婷婷六月天在线| 欧美一区二区三区高清视频| 成人欧美一区二区三区视频| 中国色在线日|韩| 蜜臀久久99精品久久久久久宅男 | 最近2019年手机中文字幕| a天堂在线视频| 日本韩国视频一区二区| 免费一级片在线观看| 国产视频911| 亚洲免费观看在线| 久久国产三级精品| 久久久免费视频网站| 羞羞答答成人影院www| 欧美另类一区| 国产香蕉精品| 18成人免费观看网站下载| 在线天堂www在线国语对白| 欧美午夜大胆人体| 中文字幕日韩精品在线观看| 色综合久久久久久| 欧美一区二区免费视频| 国产成人精品亚洲| 亚洲成a人片综合在线| 99re6热在线精品视频| 99re亚洲国产精品| 肉丝美足丝袜一区二区三区四| 美女视频黄a大片欧美| 国产偷人视频免费| 一区二区国产在线观看| 日韩人妻一区二区三区蜜桃视频| 大胆日韩av| 久久久久久亚洲精品不卡4k岛国 | 91色视频在线| mm131亚洲精品| 免费亚洲电影在线| 三年中国国语在线播放免费| 亚洲在线日韩| 国产极品粉嫩福利姬萌白酱| 亚洲国产专区| 成人性免费视频| 黄色日韩在线| 国产手机免费视频| 亚洲国产mv| 久久综合色影院| 国产亚洲色婷婷久久99精品91| 久久99精品国产麻豆不卡| 国产成人黄色网址| 美女网站一区二区| 欧美日韩在线免费播放| 欧美美女在线观看| 欧美婷婷久久| jizzjizz欧美69巨大| 久久精品成人欧美大片| 国产一区二区三区福利| 一本色道久久综合亚洲精品按摩| 国产午夜福利一区二区| 一区二区三区在线免费| 久久激情免费视频| 一区二区三区在线观看网站| 国产在线观看成人| 亚洲欧美电影院| 欧美人妻一区二区| 一区二区三区四区不卡在线| 久久精品性爱视频| 精品日韩美女的视频高清| 在线观看日本视频| 色呦呦国产精品| 一级黄色在线观看| 欧美日韩国产成人在线免费| 99精品免费观看| 青草国产精品| 欧美综合在线观看| 深夜视频一区二区| 国产主播精品在线| 亚洲无线观看| 久久99精品久久久久子伦| 精品国产91乱码一区二区三区四区 | 一区二区高清不卡| 美女av一区二区| 波多野结衣久久| 日韩av黄色在线观看| 99久久这里有精品| 好吊色欧美一区二区三区四区 | 视频三区二区一区| 欧美在线不卡| 国产超级av在线| 久久99精品国产麻豆婷婷洗澡| 动漫av在线免费观看| 久久久天堂av| 蜜桃av免费在线观看| 亚洲一区二区综合| 中文字幕+乱码+中文| 精品久久久久久久久久久久久久久 | 蜜桃久久精品乱码一区二区| 日韩电影二区| 超薄肉色丝袜足j调教99| 久久不射网站| 久久久国产精品久久久| 国产视频亚洲色图| 日韩黄色精品视频| 久草在线资源福利站| 国语自产精品视频在线看抢先版图片| 欧美国产大片| 国产精品v欧美精品v日韩| 欧美丝袜美腿| 麻豆一区二区三区在线观看| 99精品免费视频| 久久精品国产露脸对白| 久久久天堂av| 日本三级免费看| 在线不卡a资源高清| 欧美少妇另类| 久久久久久久久国产精品| 四虎国产精品永久在线国在线| 好吊妞www.84com只有这里才有精品| 国产精品97| 欧美伦理片在线看| 91免费国产视频网站| 91插插插插插插| 欧美日韩国产中文| 国产中文在线| 久久6精品影院| 久久久加勒比| 日本婷婷久久久久久久久一区二区 | 美女一区二区三区在线观看| 亚洲成人av免费在线观看| 一区二区三区av电影| 中日精品一色哟哟| 亚洲香蕉伊综合在人在线视看| 超碰99在线| 成人片在线免费看| 中文乱码免费一区二区三区下载| 免费在线激情视频| 99精品欧美一区二区三区综合在线| 成熟的女同志hd| 欧美三级资源在线| 草碰在线视频| 欧美在线xxx| 真实原创一区二区影院| 玩弄中年熟妇正在播放| 成人av免费观看| 欧美激情国产精品免费| 日韩视频不卡中文| www.18av.com| 欧美日韩国产欧| 青青草精品在线| 一二三四社区欧美黄| 国产高中女学生第一次| 欧美成人午夜激情| 在线精品自拍| 日本a在线天堂| 国产成人午夜99999| 人妻人人澡人人添人人爽| 91精品一区二区三区在线观看| 麻豆tv免费在线观看| 91久久在线播放| 欧美在线精品一区| 国产农村妇女精品久久| 亚洲精品成人少妇| 韩国av永久免费| 日本韩国欧美精品大片卡二| 国产成人精品999在线观看| 粉嫩虎白女毛片人体| 中文字幕国产精品一区二区| 一级黄色片在线| 美女视频黄免费的亚洲男人天堂| 国产亚洲精aa在线看| 奇米777四色影视在线看| av激情综合网| av手机天堂网| 久久视频在线播放| 香蕉成人app| 亚洲一区二区三区精品视频 | 激情成人在线观看| 亚洲一区二区三区在线| 亚洲欧美丝袜中文综合| 国产精品18久久久久久麻辣| 久久国产精品亚洲人一区二区三区 | 欧美日韩成人在线| 欧美午夜大胆人体| 欧美人与物videos另类| 老司机午夜精品| 国产午夜福利片| 在线观看亚洲区| 北条麻妃一区二区三区在线| 久久国产亚洲精品无码| 亚洲国产高清在线观看视频| 97caocao| 91a在线视频| 欧美电影免费| 国产精品入口麻豆| 欧美日韩视频一区二区| 久草在线视频福利| 色视频一区二区三区| 国产精品一区三区| 五月天激情四射| 欧美激情第三页| 欧美丝袜一区|