計(jì)算機(jī)極簡發(fā)展史
點(diǎn)擊藍(lán)色“程序員cxuan?”關(guān)注我喲
加個(gè)“星標(biāo)”,歡迎來撩

計(jì)算機(jī)自從 20 世紀(jì) 40 年代誕生以來,一直以史無前例的進(jìn)步向前發(fā)展,如果說農(nóng)業(yè)革命是第一次革命、工業(yè)革命是第二次革命的話,那么第三次革命就是 信息革命。
計(jì)算機(jī)技術(shù)的進(jìn)步幾乎影響著社會(huì)的方方面面,硬件的進(jìn)步使得程序員可以編寫出各種各樣優(yōu)秀的應(yīng)用軟件。也許不久的將來虛擬現(xiàn)實(shí)、無人駕駛、無現(xiàn)金支付就會(huì)成為現(xiàn)實(shí)。

1
?計(jì)算機(jī)分類?
計(jì)算機(jī)從用途上來講主要分為三種:
個(gè)人計(jì)算機(jī)(Personal Computer),也稱為 PC,這是人們最熟知的一種計(jì)算機(jī),個(gè)人計(jì)算機(jī)強(qiáng)調(diào)用戶體驗(yàn),價(jià)格低廉,性價(jià)比高,個(gè)人計(jì)算機(jī)雖然出現(xiàn)時(shí)間很短,但是卻大大推動(dòng)了計(jì)算機(jī)歷史的進(jìn)程。

服務(wù)器(Server),服務(wù)器通常借助網(wǎng)絡(luò)訪問,用于執(zhí)行大負(fù)載任務(wù),可以處理復(fù)雜的應(yīng)用,服務(wù)器相比個(gè)人計(jì)算機(jī),有著更強(qiáng)的計(jì)算、存儲(chǔ)和 I/O 能力。發(fā)生故障時(shí),服務(wù)器比個(gè)人計(jì)算機(jī)恢復(fù)代價(jià)高。服務(wù)器分為兩種,一種用于處理簡單小型的 web 服務(wù),沒有顯示器和鍵盤。而另外一種是高端服務(wù)器,高端服務(wù)器通常稱為超級(jí)計(jì)算機(jī),一般由成千上萬臺(tái)處理器組成,內(nèi)存非常大,同時(shí)價(jià)格也非常高。
嵌入式計(jì)算機(jī)(embedded computer)是數(shù)量最多的一類計(jì)算機(jī),應(yīng)用和性能十分廣泛,一般應(yīng)用于汽車、電視中的微處理器,飛機(jī)、火車、家用冰箱、洗衣機(jī)等,嵌入式計(jì)算機(jī)系統(tǒng)是由單一應(yīng)用程序或者一組相關(guān)聯(lián)的應(yīng)用程序組成,用戶通常意識(shí)不到自己正在使用計(jì)算機(jī)。
技術(shù)的不斷發(fā)展也讓計(jì)算機(jī)在不斷進(jìn)步,對(duì)整個(gè)信息技術(shù)工業(yè)產(chǎn)生影響,自從個(gè)人計(jì)算機(jī) PC 出現(xiàn)以來,計(jì)算機(jī)發(fā)展迅速,出現(xiàn)了一種個(gè)人移動(dòng)設(shè)備(Personal Mobile Device, PMD),PMD 由鋰電池供電,通過無線的方式訪問網(wǎng)絡(luò),價(jià)格低廉。PMD 不再像 PC 一樣擁有顯示器和鼠標(biāo),作為替代的是一塊觸摸屏,甚至支持語音輸入,PMD 的出現(xiàn)代表后 PC 時(shí)代的到來,而 PMD 將在未來生活中扮演更多角色。
云計(jì)算(cloud computing) 替代了傳統(tǒng)的服務(wù)器,它依賴于一種倉儲(chǔ)規(guī)模計(jì)算機(jī)(Warehouse Scale Computer, WSC) 的巨型數(shù)據(jù)中心,比如 AWS ,Google 這樣的頂級(jí)科技公司,通過云計(jì)算實(shí)現(xiàn) 軟件即服務(wù)(Software as a Service, Saas) 是軟件工業(yè)的使命。

2
?八個(gè)偉大設(shè)計(jì)思想?
計(jì)算機(jī)世界的快速發(fā)展,離不開幾個(gè)關(guān)鍵思想的影響,這些思想深刻影響著計(jì)算機(jī)設(shè)計(jì)人員
使用抽象簡化設(shè)計(jì)
抽象真是一個(gè)牛逼的詞匯,提高硬件和軟件生產(chǎn)率的主要技術(shù)之一就是使用抽象(abstraction)來表示不同的設(shè)計(jì)層次,對(duì)高層次隱藏內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),使其只看到一個(gè)大致簡化版的模型。
摩爾定律
計(jì)算機(jī)設(shè)計(jì)者一個(gè)永恒的問題就是 摩爾定律(Moore's Law) 驅(qū)動(dòng)的快速變化,它是由英特爾的創(chuàng)始人 摩爾 提出的,它的主要內(nèi)容是:當(dāng)價(jià)格不變時(shí),集成電路上可容納的元器件的數(shù)目,約每隔 18 - 24 個(gè)月便會(huì)增加一倍,性能也將提升一倍,這一定律揭示了信息進(jìn)步的速度。
通過并行提高性能
并行處理是計(jì)算機(jī)的一大進(jìn)步,并行指的是計(jì)算機(jī)系統(tǒng)中能同時(shí)執(zhí)行兩個(gè)或多個(gè)處理的一種計(jì)算方法,并行處理的主要目的是提高效率,縮短工作時(shí)間,但是會(huì)帶來更大的復(fù)雜性。
通過流水線提高性能
在計(jì)算機(jī)結(jié)構(gòu)設(shè)計(jì)中,一個(gè)特殊的并行場景是使用流水線,流水線也是一種硬件并行的設(shè)計(jì)。你一定見過大型車間或者制造廠中的流水線工業(yè)設(shè)計(jì)。
加速大概率事件
加速大概率事件要比優(yōu)化小概率事件更能提高性能,大概率事件通常比小概率事件簡單,大概率事件規(guī)則意味著設(shè)計(jì)者需要知道什么事件是經(jīng)常發(fā)生的。
通過預(yù)測提高性能
古人通常講一句話是 未雨綢繆,表明要做一件事情需要提前做好準(zhǔn)備,才能更好的完成工作。預(yù)測也是一種提前做好準(zhǔn)備的思想,通過預(yù)測的方式提前開始某些操作,會(huì)比等到確切知道這些操作啟動(dòng)時(shí)要快,通過另一方面提高系統(tǒng)性能。
存儲(chǔ)器層次
存儲(chǔ)器層次我在之前的文章中多次提到了,這是金字塔的層次設(shè)計(jì)模型,如下圖所示

在存儲(chǔ)器層次結(jié)構(gòu)中,速度最快,容量最小的并且價(jià)格最昂貴的位于頂層,而速度最慢、容量最大而且價(jià)格便宜的位于底層。
通過冗余提高可靠性
計(jì)算機(jī)不僅要保證工作的速度、還要保證工作的可靠。由于任何一個(gè)物理器件都有可能會(huì)失效,因此可以通過使用冗余部件的方式提高系統(tǒng)的可靠性(dependable),冗余部件可以替代失效部件并且可以幫助其檢測錯(cuò)誤。

3
?計(jì)算機(jī)程序?
一個(gè)應(yīng)用程序可能由數(shù)千萬行代碼組成,我們知道,計(jì)算機(jī)中的硬件只能提供最簡單的低級(jí)指令,從復(fù)雜的應(yīng)用程序到簡單的指令需要經(jīng)過軟件的幾個(gè)層次來逐步解釋和翻譯。下圖展示了軟件結(jié)構(gòu)的幾個(gè)層次

最外層是應(yīng)用軟件,最核心是硬件 ,系統(tǒng)軟件(systems software)位于兩者之間。
系統(tǒng)軟件:通常提供服務(wù)性質(zhì)的軟件,包括操作系統(tǒng)、編譯程序等。
操作系統(tǒng)和編譯程序是對(duì)于所有計(jì)算機(jī)來說都是必須的,這兩個(gè)系統(tǒng)軟件是非常重要的,操作系統(tǒng)是計(jì)算機(jī)硬件和軟件之間的接口;為用戶提供各種調(diào)用和協(xié)調(diào)服務(wù),操作系統(tǒng)主要的功能如下
處理用戶輸入和輸出 協(xié)調(diào)內(nèi)存和 CPU 為各種應(yīng)用軟件提供服務(wù)
而編譯程序是完成另一項(xiàng)重要功能的程序:它把高級(jí)語言例如 C、Java、C++ 編寫的程序翻譯成為機(jī)器指令,這個(gè)翻譯過程是非常復(fù)雜的。
編譯程序
在計(jì)算機(jī)世界中,它能識(shí)別的只有兩個(gè)信號(hào):0 和 1,所以我們認(rèn)為計(jì)算機(jī)只能識(shí)別二進(jìn)制數(shù)。每個(gè)字母就代表計(jì)算機(jī)中的二進(jìn)制位(binary digit) 或者 一位(bit)。八個(gè)二進(jìn)制位成為一個(gè)字節(jié)(byte),字節(jié)是最小的尋址單元,一連串的二進(jìn)制位構(gòu)成了計(jì)算機(jī)術(shù)語中的 指令(instruction),即 01010101110110 等等。。。。。。
第一代程序員是直接使用二進(jìn)制數(shù)與計(jì)算機(jī)通信的,這是一項(xiàng)非常乏味的工作,所以為了改善這種枯燥無聊的編寫方式,程序員很快發(fā)明了助記符,最初助記符是通過手工翻譯成為二進(jìn)制的,這種轉(zhuǎn)換過程過于浮躁無聊和繁瑣,為了改善這種情況,程序員發(fā)明了一種 匯編程序(assembler) 的軟件,可以將助記符自動(dòng)轉(zhuǎn)換為對(duì)應(yīng)的二進(jìn)制。比如我們使用助記符 add A,B ,這段代碼就會(huì)自動(dòng)的被二進(jìn)制 0101011011。該指令告訴計(jì)算機(jī)將使用 A 和 B 進(jìn)行相加操作。這種助記符使用的語言就是匯編語言(assembly language)。而機(jī)器可以理解的二進(jìn)制語言稱為 機(jī)器語言(machine language)。
匯編程序:將指令由助記符形式翻譯成二進(jìn)制形式的程序 匯編語言:以助記符形式表示的語言 機(jī)器語言:以二進(jìn)制元形式表示的機(jī)器指令
然而,隨著時(shí)代的發(fā)展,匯編語言也慢慢面的枯燥乏味,所以出現(xiàn)了像是 C、Java 這樣的高級(jí)語言,也就是我們開發(fā)所使用的語言,高級(jí)語言的出現(xiàn),大大提高了編程效率,但是,萬變不離其宗,高級(jí)語言也要經(jīng)過

這一個(gè)轉(zhuǎn)換過程。高級(jí)編程語言和編譯程序大大提高了軟件的生產(chǎn)率。
使用高級(jí)語言有以下幾個(gè)好處:
其一,可以讓程序員使用更自然的語言來思考
其二,高級(jí)語言提高了程序員的生產(chǎn)率,加速程序的開發(fā)過程
其三,采用高級(jí)語言編寫程序提高了程序?qū)τ谟?jì)算機(jī)的獨(dú)立性

4
?硬件入門
看到這里你可能會(huì)有疑問,為什么要學(xué)硬件呢?換個(gè)角度來講,憑什么培訓(xùn)三個(gè)月出來的程序員能夠和科班學(xué)習(xí)四年的程序員一起競爭找工作?想過這個(gè)問題沒有?
那是因?yàn)椋嘤?xùn)機(jī)構(gòu)不會(huì)為你的長遠(yuǎn)考慮,短期找到工作能夠交差即可。把一個(gè)程序員的素養(yǎng)等價(jià)為找到工作即可,這本來就是這個(gè)行業(yè)的污點(diǎn)所在,CRUD 程序員不需要專業(yè)的程序素養(yǎng),完成工作即可。為什么程序總有填不完的坑,不考慮程序健壯性、可拓展性、設(shè)計(jì)模式,寫代碼只為了自己,而不是以工程化的標(biāo)準(zhǔn)來要求自己就是培訓(xùn)班和科班的素養(yǎng)和差距。這也是我為什么最近在研究計(jì)算機(jī)基礎(chǔ)的原因,因?yàn)槲也粔蛴?/span>素質(zhì)。
為什么學(xué)硬件?就是能夠讓你從計(jì)算機(jī)的角度思考問題。好了不多說了,說多了該被培訓(xùn)班 diss 了。
任何一臺(tái)計(jì)算機(jī)的基礎(chǔ)硬件都需要完成最基本的功能:輸入數(shù)據(jù)、輸出數(shù)據(jù)、處理數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)。我們討論的主題就是描述這些功能是怎樣完成的。
下面我們就要探討一下這些硬件
顯示器
顯示器是一個(gè)非常吸引人的輸出設(shè)備,大多數(shù)個(gè)人移動(dòng)設(shè)備都用 液晶顯示(Liquid Crystal Display, LCD) 來獲得輕巧、低功耗的顯示效果。LCD 能夠控制光的傳輸。今天,大多數(shù) LCD 顯示器都采用 動(dòng)態(tài)矩陣顯示(active matrix display) 技術(shù),其每個(gè)像素(pixel) 都由一個(gè)晶體管精確的控制電流,從而使圖像更加清晰。在彩色動(dòng)態(tài)矩陣 LCD 中,還有一個(gè) 紅 - 綠 - 藍(lán)屏決定三種顏色分量的強(qiáng)度,每個(gè)點(diǎn)需要三個(gè)晶體管開關(guān)。
液晶顯示,這是一種顯示技術(shù),用液體聚合物薄層的帶電或者不帶電來傳輸或者阻止光線的傳輸 動(dòng)態(tài)矩陣顯示,一種液態(tài)顯示技術(shù),使用晶體管控制單個(gè)像素上光線的傳輸 像素,圖像元素的最小單位,屏幕由成千上萬的像素來組成
圖像由像素矩陣組成,可以表示成二進(jìn)制位的矩陣,稱為 位圖(bit map)。不同分辨率所能夠支持的矩陣大小不同,彩色顯示器使用 8 位來表示每個(gè)三原色(紅、綠和藍(lán)),每個(gè)像素用 24 位表示,可以顯示百萬種不同的顏色。
計(jì)算機(jī)硬件使用光柵刷新緩沖區(qū)(又稱為幀緩沖區(qū))來保存位圖以支持圖像。

圖中的 X0 Y0 ,X1 Y1 都表示像素
觸摸屏
后 PC 時(shí)代,移動(dòng)設(shè)備的高速發(fā)展,使觸摸屏成為一種趨勢,觸摸屏有兩種實(shí)現(xiàn)
電阻式觸摸屏(Resistive touchscreens):電阻式觸摸屏基于施加到屏幕上的壓力來工作。電阻屏由許多層組成。當(dāng)按下屏幕時(shí),外部的后面板將被推到下一層,下一層會(huì)感覺到施加了壓力并記錄了輸入。電阻式觸摸屏用途廣泛,可以用手指,指甲,手寫筆或任何其他物體進(jìn)行操作。

電容式觸摸屏(capacitive touchscreen):電容式觸摸屏通過感應(yīng)物體(通常是指尖上的皮膚)的導(dǎo)電特性來工作。手機(jī)或智能手機(jī)上的電容屏通常具有玻璃表面,并且不依賴壓力。當(dāng)涉及到手勢(如滑動(dòng)和捏合)時(shí),它比電阻式屏幕更具響應(yīng)性。電容式觸摸屏只能用手指觸摸,而不能用普通的手寫筆,手套或大多數(shù)其他物體來響應(yīng)。

機(jī)箱
下面是一個(gè) ipad2 的剖面圖

這里面包括集成電路,也稱為芯片(chip)、CPU、前置攝像頭、后置攝像頭、麥克風(fēng)、耳機(jī)插孔、揚(yáng)聲器、加速計(jì)、陀螺儀、Wi-Fi 網(wǎng)絡(luò)和藍(lán)牙網(wǎng)絡(luò)等。
為了進(jìn)一步理解硬件,下面展示了一款蘋果 A5 微處理器的實(shí)現(xiàn)細(xì)節(jié),處理器從邏輯上包括兩個(gè)主要部件:數(shù)據(jù)通路和控制器

數(shù)據(jù)通路主要用來執(zhí)行算數(shù)運(yùn)算
控制器主要負(fù)責(zé)指導(dǎo)數(shù)據(jù)通路、存儲(chǔ)器和 I/O 設(shè)備按照正確的指令進(jìn)行執(zhí)行
除此之外,上述剖面圖還包括 GPIO,通用型之輸入輸出的簡稱。
DDR SDRM 接口是內(nèi)存條接口,通過提供多個(gè)隔行掃描的內(nèi)存訪問,從而提高內(nèi)存帶寬
內(nèi)存是程序運(yùn)行的存儲(chǔ)空間,它同時(shí)用于保存程序運(yùn)行時(shí)所使用的數(shù)據(jù),內(nèi)存由 DRAM 芯片組成。DRAM(Dynamic random access memory) 是動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器的縮寫。在處理器內(nèi)部使用的是另外一種存儲(chǔ)器 - 緩存(cache memory) ,這是一種小而快的存儲(chǔ)器,一般作為 DRAM 的緩沖。cache 使用的是 靜態(tài)訪問存儲(chǔ)器(Static Random Access Memory, SRAM) ,它的速度要比 DRAM 更快,價(jià)格也更加昂貴。
我們上面探討了影響計(jì)算機(jī)的幾大設(shè)計(jì)思想,其中非常重要的一個(gè)思想就是 抽象,計(jì)算機(jī)硬件和軟件的接口就是一種抽象,這種抽象又被叫做 指令集體系結(jié)構(gòu)(instruction set architecture) ,或者簡稱為 體系結(jié)構(gòu)(architecture)。提供給應(yīng)用程序員基本指令集和操作系統(tǒng)接口稱為 應(yīng)用二進(jìn)制接口(Application Binary Interface)。
這種抽象的好處是讓程序員能夠單獨(dú)的實(shí)現(xiàn)應(yīng)用程序,而不用考慮其內(nèi)部的硬件,內(nèi)部硬件和系統(tǒng)應(yīng)用程序只提供對(duì)用戶的服務(wù)。對(duì)程序員隱藏內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。
與其他計(jì)算機(jī)通信
上面我們已經(jīng)基本介紹到了輸入、輸出、控制器、存儲(chǔ)器,但是對(duì)于計(jì)算機(jī),還有一項(xiàng)非常重要的功能我們沒有介紹 - 計(jì)算機(jī)網(wǎng)絡(luò),通過計(jì)算機(jī)聯(lián)網(wǎng),可以實(shí)現(xiàn)與其他計(jì)算機(jī)通信,任何計(jì)算機(jī)都不能成為信息的 孤島,計(jì)算機(jī)通信能為我們帶來下面這些好處
信息交互:在聯(lián)網(wǎng)的兩臺(tái)計(jì)算機(jī)之間實(shí)現(xiàn)信息交互 資源共享:有些 I/O 設(shè)備可以由網(wǎng)絡(luò)上的計(jì)算機(jī)共享 遠(yuǎn)距離訪問:用戶可以通過遠(yuǎn)距離操作計(jì)算機(jī)
隨著傳輸速度以及通信傳輸?shù)木嚯x,通信代價(jià)也在隨之增長,網(wǎng)絡(luò)的傳輸是多種多樣的,最常見的就是 以太網(wǎng),以太網(wǎng)是一種連接局域網(wǎng)的傳統(tǒng)技術(shù),它能夠使設(shè)備通過協(xié)議(一組規(guī)則或通用網(wǎng)絡(luò)語言)相互通信,以太網(wǎng)的接入設(shè)備可以相互識(shí)別對(duì)方,以太網(wǎng)中的一個(gè)例子就是 局域網(wǎng)(Local Area Network, LAN) ,局域網(wǎng)通過交換機(jī)進(jìn)行組網(wǎng)。還有一種距離更遠(yuǎn)的網(wǎng)絡(luò)是 廣域網(wǎng),廣域網(wǎng)可支持萬維網(wǎng)(World Wide Web)。
局域網(wǎng):一種在一定的地理區(qū)域使用的傳輸數(shù)據(jù)的網(wǎng)絡(luò) 廣域網(wǎng):一種可將區(qū)域擴(kuò)展到幾百幾千米范圍的網(wǎng)絡(luò)
隨著計(jì)算機(jī)的不斷發(fā)展,通信速度和性能也在不斷提升。
處理器和存儲(chǔ)器制造技術(shù)
處理器和存儲(chǔ)器在高速發(fā)展,計(jì)算機(jī)最初使用的是晶體管,然后后面慢慢出現(xiàn)了集成電路、超大規(guī)模集成電路。下表展示了這個(gè)演變過程
| 時(shí)間 | 計(jì)算機(jī)構(gòu)造 |
|---|---|
| 1951 | 真空管 |
| 1965 | 晶體管 |
| 1975 | 集成電路 |
| 1995 | 超大規(guī)模集成電路 |
| 2013 | 更大規(guī)模集成電路 |
晶體管(transistor)是一種固體半導(dǎo)體器件,具有多種功能。晶體管作為一種可變電流開關(guān),能夠基于輸入電壓控制輸出電流。集成電路(IC) 由成千上萬的晶體管組成。后面不斷的發(fā)展為更多晶體管組成的 超大規(guī)模集成電路(VLSL)。
性能
計(jì)算機(jī)的性能是很難評(píng)判的,我們將從以下幾個(gè)方便來展開探討
性能的定義
個(gè)人計(jì)算機(jī)用戶比較感興趣的就是 響應(yīng)時(shí)間(response time),響應(yīng)時(shí)間就是指一個(gè)任務(wù)從開始到完成所需要的時(shí)間,又稱為執(zhí)行時(shí)間。而數(shù)據(jù)中心感興趣的常常是 吞吐率(throughput)。
響應(yīng)時(shí)間:也叫 執(zhí)行時(shí)間(execution time),是計(jì)算機(jī)完成某項(xiàng)任務(wù)所需要的總時(shí)間,包括硬盤訪問、內(nèi)存訪問、I/O 活動(dòng)、操作系統(tǒng)開銷和 CPU 的執(zhí)行時(shí)間等。吞吐率:也叫 帶寬(bandwidth),性能的另一種度量參數(shù),表示單位時(shí)間內(nèi)完成的任務(wù)數(shù)量。
性能的度量
如果使用時(shí)間來度量計(jì)算機(jī),那么完成同樣的任務(wù),需要時(shí)間最少的計(jì)算機(jī)是最快的。程序的執(zhí)行時(shí)間一般以秒為單位。我們可以使用 CPU 執(zhí)行時(shí)間 來表示在 CPU 上花費(fèi)的時(shí)間,而不包括其他 I/O 或應(yīng)用程序的時(shí)間。CPU 時(shí)間可以進(jìn)一步分為用于用戶程序的時(shí)間和操作系統(tǒng)為用戶服務(wù)花去的 CPU 時(shí)間,前者稱為 CPU 時(shí)間,后者稱為系統(tǒng) CPU 時(shí)間。
CPU 執(zhí)行時(shí)間:簡稱 CPU 時(shí)間,執(zhí)行某一任務(wù)在 CPU 上花費(fèi)的時(shí)間 用戶 CPU 時(shí)間:為用戶服務(wù)所花費(fèi)的時(shí)間 系統(tǒng) CPU 時(shí)間:為執(zhí)行程序花費(fèi)在操作系統(tǒng)上的時(shí)間。
為了一致性,我們使用 CPU 性能表示用戶 CPU 時(shí)間,用系統(tǒng)性能表示系統(tǒng)空運(yùn)行的響應(yīng)時(shí)間。
幾乎所有的計(jì)算機(jī)都會(huì)使用時(shí)鐘來驅(qū)動(dòng)硬件中的各種事件。時(shí)鐘間隔的時(shí)間稱為 時(shí)鐘周期(clock cycle)。也可以用它的倒數(shù)來描述,稱為 時(shí)鐘頻率(clock rate)。
CPU 性能及其因素
我們一般使用下面的公式來表示 CPU 的性能
CPU 執(zhí)行程序的時(shí)間 = 程序 CPU 時(shí)鐘周期數(shù) * 時(shí)鐘周期時(shí)間
由于時(shí)鐘頻率和時(shí)鐘周期互為倒數(shù)的關(guān)系,所以也可以用
CPU 執(zhí)行程序的時(shí)間 = 程序 CPU 時(shí)鐘周期數(shù) / 時(shí)鐘頻率
有了公式后,我們可以對(duì)各個(gè)指標(biāo)進(jìn)行描述,在時(shí)鐘周期時(shí)間內(nèi),程序 CPU 時(shí)鐘周期數(shù)越低,CPU 性能越高。在周期數(shù)相同的情況下,時(shí)鐘頻率越高,CPU 性能越高。
指令的性能
CPU 最終是要執(zhí)行指令的,一個(gè)考慮指令執(zhí)行時(shí)間的方法是:執(zhí)行時(shí)間等于執(zhí)行的指令 * 每條指令的平均時(shí)間。所以,一個(gè)程序需要的時(shí)鐘周期數(shù)為
CPU 時(shí)鐘周期數(shù) = 程序指令數(shù) * 每條指令的平均執(zhí)行周期
我們一般使用 CPI(clock cycle per instruction) 表示執(zhí)行每條指令所需的時(shí)鐘周期的平均值。不同指令執(zhí)行的周期可能不同,所以 CPI 表示的是一個(gè)平均值。
所以我們可以使用 CPU 時(shí)間 = 指令數(shù) * CPI * 時(shí)鐘周期時(shí)間
或者 CPU 時(shí)間 = 指令數(shù) * CPI / 時(shí)鐘頻率

5
?總結(jié)
本篇文章我們主要介紹了 計(jì)算應(yīng)用分類、計(jì)算機(jī)發(fā)展的八大思想、計(jì)算機(jī)結(jié)構(gòu)層次、基本硬件入門,還有計(jì)算機(jī)通信、處理器發(fā)展、性能的定義。
往期精彩回顧


