精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产又大又黄又爽| 亚洲区自拍偷拍| a'aaa级片在线观看| 成人av在线播放网址| 欧美亚洲免费电影| 午夜国产福利视频| 电影一区二区在线观看| 91久久香蕉国产日韩欧美9色| 最新欧美日韩亚洲| 亚洲欧洲成人在线| 国产一区在线不卡| 欧美孕妇与黑人孕交| 国产3级在线观看| 欧美亚视频在线中文字幕免费| 欧美视频日韩视频在线观看| 欧美亚洲色图视频| av男人的天堂在线| 97久久精品人人做人人爽50路| 国产精品视频公开费视频| 久久久久99精品成人片毛片| 精品国产精品| 精品国产乱码久久久久久夜甘婷婷| 波多野结衣天堂| 91超碰在线免费| 自拍偷拍国产精品| 日本欧洲国产一区二区| 男人的天堂a在线| 美女www一区二区| 国产91在线播放九色快色| 久久亚洲精品大全| 久久久久久久久久久久久久久久久久| 亚洲精品自在久久| 在线xxxxx| 秋霞影院一区| 制服.丝袜.亚洲.另类.中文| 毛葺葺老太做受视频| 超碰在线cao| 夜夜嗨av一区二区三区四季av| 一区二区三区我不卡| 日韩大片b站免费观看直播| 国产成人av电影在线观看| 国产日本欧美在线观看 | 色天下一区二区三区| 日韩一区二区三区视频在线| 91n.com在线观看| 亚洲高清黄色| 色综合久久88色综合天天| 日本欧美黄色片| 九九色在线视频| 一卡二卡三卡日韩欧美| 国产又粗又长又爽视频| www在线观看播放免费视频日本| 国产精品美女一区二区在线观看| 日韩国产精品一区二区三区| 国产小视频免费在线网址| 久久久精品中文字幕麻豆发布| 久久久久久国产精品免费免费| 人妻夜夜爽天天爽| 成人av在线一区二区三区| av一区观看| 国产91久久久| 99久久99久久精品国产片果冻 | 国模精品视频一区二区三区| 国精产品一区一区二区三区mba| 日韩手机在线| 亚洲免费av电影| 最近中文字幕在线mv视频在线| 免费久久精品| 中文字幕精品国产| 男人av资源站| 欧美日韩综合| 欧美诱惑福利视频| 免费在线观看av的网站| 久久精品国产999大香线蕉| 91九色国产在线| 亚洲精品久久久久久久久久 | 久久伦理网站| 成人高清网站| 2023国产一二三区日本精品2022| 欧美亚洲精品日韩| 午夜不卡视频| 亚洲一本大道在线| 欧美少妇性生活视频| 久久免费影院| 亚洲成avwww人| av男人的天堂av| 欧美成人日本| 欧美最猛性xxxxx(亚洲精品)| 中日韩在线观看视频| 国产精品影视网| 九九九久久久| 国产在线看片| 欧美午夜宅男影院在线观看| 天堂中文视频在线| 亚洲视频一起| 在线播放精品一区二区三区| 国产97免费视频| 美女91精品| 2019国产精品视频| 欧美成人片在线| 一区二区三区免费| 狠狠操精品视频| 一区二区三区四区精品视频| 亚洲欧美成人网| www.毛片com| 久久久久久黄| 国产伦精品一区二区三区高清版| av在线第一页| 婷婷开心久久网| 波多野结衣在线免费观看| 国产日产一区| 久久久伊人欧美| 国产精品久久久久久久久毛片 | 亚洲天堂第一区| 色天使综合视频| 日韩成人免费视频| 丰满少妇高潮久久三区| 免费在线观看一区二区三区| 国产亚洲精品自在久久| 老司机精品视频在线观看6| 欧美视频在线视频| 韩国一区二区三区四区| 久久一本综合| 国产成人精品免高潮费视频| 国精产品乱码一区一区三区四区| 亚洲视频网在线直播| 青青青国产在线视频| 日韩人体视频| 668精品在线视频| 亚洲黄色在线免费观看| 亚洲欧美另类小说| 久久成年人网站| 成人区精品一区二区婷婷| 欧美一级高清免费| 深爱五月激情五月| 亚洲一区在线视频| 男人操女人下面视频| 久久精品国产99久久| 国产91色在线|| 青青免费在线视频| 亚洲成人一区二区在线观看| 天堂va欧美va亚洲va老司机| 欧美影院一区| 亚洲最大福利网| 18av在线视频| 日韩亚洲欧美成人一区| 国产精品 欧美激情| 国产精品99久久久久久宅男| 国产对白在线播放| 香蕉大人久久国产成人av| 久久伊人91精品综合网站| 国产精品女人久久久| 日韩毛片一二三区| 91在线第一页| 欧美三级小说| 国产欧美日韩视频一区二区三区| 51av在线| 亚洲欧美www| 中文字幕欧美人妻精品| 中文字幕一区免费在线观看| 欧美日韩久久婷婷| 韩国欧美一区| 久久99精品国产99久久| 欧美xx视频| 深夜福利一区二区| 国产av精国产传媒| 亚洲不卡一区二区三区| 白丝女仆被免费网站| 日韩av二区在线播放| 亚洲视频小说| 亚洲一区二区三区四区电影| 91精品国产99| 777电影在线观看| 日韩色在线观看| 欧美日韩综合在线观看| 国产欧美一区二区三区在线老狼 | 99久久婷婷国产综合精品电影 | 激情都市一区二区| bt天堂新版中文在线地址| 一本久久青青| 91精品久久久久久久久久入口 | 亚洲综合免费观看高清完整版在线 | 国产情侣呻吟对白高潮| 日韩毛片精品高清免费| 国产一卡二卡三卡四卡| 日韩制服丝袜av| 国产又粗又长又爽视频| 久久超碰99| 亚洲最大福利视频| 巨茎人妖videos另类| 久久久999精品| 熟妇人妻一区二区三区四区 | 国产美女主播一区| 久久av色综合| 中文字幕在线精品| 日本黄色三级视频| 欧美日韩视频第一区| 亚洲精品77777| 亚洲人亚洲人成电影网站色| 亚洲熟妇无码av| 国产一级精品在线| 91av俱乐部| 正在播放日韩欧美一页| 欧美人与物videos另类| 99国产精品久久一区二区三区| 国产成人免费av| 波多野结衣精品| 日韩在线观看免费av| 青青青草原在线| 精品三级av在线| 国产孕妇孕交大片孕| 欧美性猛交视频| 国产一级片久久| 亚洲免费观看高清完整 | 一区二区在线观看免费 | 亚洲.国产.中文慕字在线| 影音先锋男人资源在线观看| 久久久不卡影院| 国产乱淫av片| 国精品**一区二区三区在线蜜桃 | 国产一区二区久久精品| 手机看片福利永久| 精品国产一区二区三区av性色| 97在线播放免费观看| 在线观看中文字幕不卡| 国产一级18片视频| 午夜一区二区三区视频| 91精品国产高清一区二区三蜜臀| 中文字幕视频一区| 日本成人免费在线观看| 国产精品网站一区| 无码少妇精品一区二区免费动态| 99久久精品国产一区二区三区 | 亚洲国产成人在线| 亚洲AV无码国产成人久久| 久久综合丝袜日本网| yy6080午夜| 99re在线精品| 亚洲成人av免费在线观看| 成人黄页毛片网站| 无码国产精品一区二区免费式直播| 国产黄色精品网站| 国产精品偷伦视频免费观看了| 国产伦精品一区二区三区免费 | 97精品国产露脸对白| 久久久老熟女一区二区三区91| 大美女一区二区三区| 少妇精品无码一区二区| 成人黄色a**站在线观看| 成人午夜精品无码区| 91最新地址在线播放| 日本一区二区三区网站| 久久网站热最新地址| 在线观看国产精品一区| 国产精品女主播av| 久久久久久视频| 亚洲国产精品久久久久婷婷884 | 欧美天堂一区二区三区| 亚洲中文无码av在线| 欧美美女一区二区在线观看| 国产麻豆精品一区| 欧美成人激情免费网| 午夜福利理论片在线观看| 日韩激情av在线播放| 美国成人毛片| 久久精品国产亚洲一区二区| 欧美v亚洲v| 欧美一区二区视频97| www.一区| 成人综合色站| 亚洲色图丝袜| 天天干天天操天天干天天操| 欧美精品入口| 黄色国产精品视频| 蜜臀av性久久久久蜜臀av麻豆 | 久久久久久9999| 一本在线免费视频| 一区二区激情小说| 五月天综合激情网| 欧美日韩成人高清| 成人午夜福利视频| 亚洲视频999| av网站导航在线观看免费| 欧美做爰性生交视频| av在线播放一区二区| 黄色国产精品一区二区三区| 欧洲福利电影| 日韩精品一区二区三区四| 久热re这里精品视频在线6| 亚洲图片 自拍偷拍| 99国产一区二区三精品乱码| 青青青手机在线视频| 精品福利视频导航| 国产一区二区视频免费观看| 亚洲国产精品专区久久| 国产午夜精品久久久久免费视| 国产69久久精品成人| 国产不卡精品| 欧美一区二区福利| 亚洲国产91| 污视频网站观看| www欧美成人18+| 欧美成人国产精品高潮| 欧美视频在线一区| 天堂国产一区二区三区| 久久久精品久久久| 三上悠亚亚洲一区| 国产一区免费观看| 欧美 日韩 国产精品免费观看| 日韩欧美精品在线观看视频| 国产综合色视频| 青青草视频成人| 午夜精品久久久久久| 99国产精品久久久久99打野战| 亚洲色在线视频| 手机在线理论片| 国产精品入口免费| 欧美99久久| 不卡中文字幕在线观看| 久久久青草青青国产亚洲免观| 日本一区二区三区四区五区| 91精品国产色综合久久久蜜香臀| av影片在线看| 国产精品www网站| 美日韩中文字幕| 女人天堂av手机在线| 成人精品视频.| 久久亚洲av午夜福利精品一区| 91精品国产乱码久久蜜臀| 亚洲搞黄视频| 国产精品亚洲网站| 日韩精品午夜| 久久久久久久少妇| 国产色产综合色产在线视频 | 日韩欧美国产麻豆| а√天堂资源地址在线下载| 成人做爰www免费看视频网站| 欧美日韩有码| 亚洲人辣妹窥探嘘嘘| 国产欧美日韩精品一区| 国产情侣小视频| 伊人精品在线观看| 九九九伊在线综合永久| 日本免费高清一区| 蜜臀av性久久久久蜜臀av麻豆| 天天摸日日摸狠狠添| 欧美午夜一区二区三区免费大片| 国产三级视频在线| 国产精品视频久久久久| 久久人体视频| 一级黄色片在线免费观看| 亚洲精品国产第一综合99久久 | 黄色一级片在线看| 国产精品91一区二区| 久久国产精品波多野结衣| 欧美大片一区二区| hd国产人妖ts另类视频| 精品综合在线| 三级一区在线视频先锋 | 精品国产乱码久久久久夜深人妻| 一区二区免费在线| 视频二区在线| 国产99视频在线观看| 首页国产精品| japan高清日本乱xxxxx| 亚洲午夜激情av| 欧美美女搞黄| 国产欧美在线视频| 欧美激情性爽国产精品17p| 成年人的黄色片| 在线欧美小视频| 国产一二区在线| 好看的日韩精品视频在线| 久久精品1区| 成年人二级毛片| 亚洲黄在线观看| 免费一区二区三区四区| 成年人视频大全| 久久人人97超碰com| 国产裸体永久免费无遮挡| 性欧美在线看片a免费观看| 免费不卡中文字幕在线| 九九久久久久久| 精品国产鲁一鲁一区二区张丽| 成人精品福利| 国产精品有限公司| 美腿丝袜亚洲综合| 日本熟妇毛耸耸xxxxxx| 曰本色欧美视频在线| 国产91精品入| 色乱码一区二区三区在线| 亚洲成人动漫精品| 最新真实国产在线视频| 精品欧美国产| 国产一区二区三区观看| 国产午夜麻豆影院在线观看| 美女国内精品自产拍在线播放| 亚洲黄色录像| 日批视频免费看| 欧美日韩国产另类不卡|