成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

重學(xué)計算機組成原理(一)- 馮·諾依曼體系結(jié)構(gòu)

Yujiaao / 597人閱讀

摘要:馮諾依曼體系結(jié)構(gòu)示意圖總結(jié)馮諾依曼體系結(jié)構(gòu)確立了我們現(xiàn)在每天使用的計算機硬件的基礎(chǔ)架構(gòu)。因此,學(xué)習計算機組成原理,其實就是學(xué)習和拆解馮諾依曼體系結(jié)構(gòu)。

1 計算機的基本硬件組成

早期,DIY一臺計算機,要先有三大件

CPU

內(nèi)存

主板

1.1 CPU

計算機最重要的核心配件,中央處理器(Central Processing Unit)。

計算機的所有“計算”都是由CPU來進行的。

CPU是一個超級精細的印刷電路版

1.2 內(nèi)存(Memory)

你撰寫的程序、打開的瀏覽器、運行的游戲,都要加載到內(nèi)存里才能運行。

程序讀取的數(shù)據(jù)、計算得到的結(jié)果,也都要放在內(nèi)存里。內(nèi)存越大,能加載的東西自然也就越多。

內(nèi)存通常直接可以插在主板上,存放在內(nèi)存里的程序和數(shù)據(jù),需要被CPU讀取,CPU計算完之后,還要把數(shù)據(jù)寫回到內(nèi)存。然而CPU不能直接插到內(nèi)存上,反之亦然。于是,就帶來了最后一個大件——主板(Motherboard)。

內(nèi)存通常直接可以插在主板上

1.3 主板

主板是一個有著各種各樣,有時候多達數(shù)十乃至上百個插槽的配件。

我們的CPU要插在主板上,內(nèi)存也要插在主板上。

主板的芯片組(Chipset)和總線(Bus)解決了CPU和內(nèi)存之間如何通信的問題。

芯片組控制了數(shù)據(jù)傳輸?shù)牧鬓D(zhuǎn),也就是數(shù)據(jù)從哪里到哪里的問題

總線則是實際數(shù)據(jù)傳輸?shù)母咚俟?。總線速度(Bus Speed)決定了數(shù)據(jù)能傳輸?shù)枚嗫臁?/p>

計算機主板上通常有著各種各樣的插槽

有了三大件,只要配上電源供電,計算機差不多就可以跑起來了。

但是現(xiàn)在還缺少各類輸入(Input)/輸出(Output)設(shè)備,也就是我們常說的I/O設(shè)備。

如果你用的是自己的個人電腦,那顯示器肯定必不可少,只有有了顯示器我們才能看到計算機輸出的各種圖像、文字,這也就是所謂的輸出設(shè)備。

同樣的,鼠標和鍵盤也都是必不可少的配件。這樣我才能輸入文本,寫下這篇文章。它們也就是所謂的輸入設(shè)備。

最后,你自己配的個人計算機,還要配上一個硬盤。這樣各種數(shù)據(jù)才能持久地保存下來。

絕大部分人都會給自己的機器裝上一個機箱,配上風扇,解決灰塵和散熱的問題。

不過機箱和風扇,算不上是計算機的必備硬件,我們拿個紙板或者外面放個電風扇,也一樣能用。

顯示器、鼠標、鍵盤和硬盤這些東西并不是一臺計算機必須的部分。

其實只需要有I/O設(shè)備,能讓我們從計算機里輸入和輸出信息就可以了。

很多網(wǎng)吧的計算機就沒有硬盤,而是直接通過局域網(wǎng),讀寫遠程網(wǎng)絡(luò)硬盤里面的數(shù)據(jù)。

各類云服務(wù)器,只要讓計算機能通過網(wǎng)絡(luò),SSH遠程登陸訪問就好了,因此也沒必要配顯示器、鼠標、鍵盤這些東西。

這樣不僅能夠節(jié)約成本,還更方便維護。

還有一個很特殊的設(shè)備,就是顯卡(Graphics Card)。

現(xiàn)在,使用圖形界面操作系統(tǒng)的計算機,無論是Windows、Mac OS還是Linux,顯卡都是必不可少的。

有人可能要說了,我裝機的時候沒有買顯卡,計算機一樣可以正常跑起來??!那是因為,現(xiàn)在的主板都帶了內(nèi)置的顯卡。

如果你用計算機玩游戲,做圖形渲染或者跑深度學(xué)習應(yīng)用,你多半就需要買一張多帶帶的顯卡,插在主板上。

顯卡之所以特殊,是因為顯卡里有除了CPU之外的另一個“處理器”,也就是GPU(Graphics Processing Unit,圖形處理器),GPU一樣可以做各種“計算”的工作。

鼠標、鍵盤以及硬盤都是插在主板上的。作為外部I/O設(shè)備,它們是通過主板上的南橋(SouthBridge)芯片組,來控制和CPU之間的通信的。

“南橋”芯片的名字很直觀

它在主板上的位置,通常在主板的“南面”

它的作用就是作為“橋”,來連接鼠標、鍵盤以及硬盤這些外部設(shè)備和CPU之間的通信。

有了南橋,自然對應(yīng)著也有“北橋”。

是的,以前的主板上通常也有“北橋”芯片,用來作為“橋”,連接CPU和內(nèi)存、顯卡之間的通信。

不過,隨著時間的變遷,現(xiàn)在的主板上的“北橋”芯片的工作,已經(jīng)被移到了CPU的內(nèi)部,所以你在主板上,已經(jīng)看不到北橋芯片了。

2 馮·諾依曼體系結(jié)構(gòu)

剛才我們講了一臺計算機的硬件組成,這說的是我們平時用的個人電腦或者服務(wù)器。那我們平時最常用的智能手機的組成,也是這樣嗎?

我們手機里只有SD卡(Secure Digital Memory Card)類似硬盤功能的存儲卡插槽,并沒有內(nèi)存插槽、CPU插槽這些東西。

沒錯,因為手機尺寸的原因,手機制造商們選擇把

CPU、內(nèi)存、網(wǎng)絡(luò)通信,乃至攝像頭芯片,都封裝到一個芯片,然后再嵌入到手機主板上。

這種方式叫SoC,也就是System on a Chip(系統(tǒng)芯片)。

看起來,個人電腦和智能手機的硬件組成方式不太一樣。

可是,我們寫智能手機上的App,和寫個人電腦的客戶端應(yīng)用似乎沒有什么差別,都是通過“高級語言”這樣的編程語言撰寫、編譯之后,一樣是把代碼和數(shù)據(jù)加載到內(nèi)存里來執(zhí)行。

無論是個人電腦/服務(wù)器/智能手機,還是Raspberry Pi這樣的微型卡片機,都遵循著同一個“計算機”的抽象概念。

這是怎么樣一個“計算機”呢?這其實就是,計算機鼻祖馮·諾依曼提出的馮·諾依曼體系結(jié)構(gòu)(Von Neumann architecture),也叫存儲程序計算機。

什么是存儲程序計算機呢?這里面其實暗含了兩個概念

“可編程”計算機

“存儲”計算機

什么是“不可編程”???

計算機是由各種門電路組合而成的,然后通過組裝出一個固定的電路版,完成一個特定的計算程序。

一旦需要修改功能,就要重新組裝電路。這樣的話,計算機就是“不可編程”的,因為程序在計算機硬件層面是“寫死”的。

最常見的就是老式計算器,電路板設(shè)好了加減乘除,做不了任何計算邏輯固定之外的事情。

計算器的本質(zhì)是一個不可編程的計算機

我們再來看“存儲”計算機。

程序本身是存儲在計算機的內(nèi)存里,可以通過加載不同的程序來解決不同的問題。

有“存儲程序計算機”,自然也有不能存儲程序的計算機。

典型的就是早年的“Plugboard”這樣的插線板式的計算機。整個計算機就是一個巨大的插線板,通過在板子上不同的插頭或者接口的位置插入線路,來實現(xiàn)不同的功能。這樣的計算機自然是“可編程”的,但是編寫好的程序不能存儲下來供下一次加載使用,不得不每次要用到和當前不同的“程序”的時候,重新插板子,重新“編程”。

著名的Engima Machine就用到了Plugboard來進行“編程”


可以看到,無論是“不可編程”還是“不可存儲”,都會讓使用計算機的效率大大下降。
而這個對于效率的追求,也就是“存儲程序計算機”的由來。

馮,基于當時在秘密開發(fā)的EDVAC寫了一篇報告First Draft of a Report on the EDVAC,描述了他心目中的一臺計算機應(yīng)該長什么樣。這篇報告在歷史上有個很特殊的簡稱,叫First Draft。這樣,現(xiàn)代計算機的發(fā)展就從祖師爺寫的一份草案開始了。

First Draft里面說了一臺計算機應(yīng)該有哪些部分組成

首先是一個包含

算術(shù)邏輯單元(Arithmetic Logic Unit,ALU)

處理器寄存器(Processor Register)

處理器單元(Processing Unit),用來完成各種算術(shù)和邏輯運算。

因為它能夠完成各種數(shù)據(jù)的處理或者計算工作,因此也有人把這個叫作數(shù)據(jù)通路(Datapath)或者運算器。

然后是一個包含

指令寄存器(Instruction Reigster)

程序計數(shù)器(Program Counter)

控制器單元(Control Unit/CU),用來控制程序的流程,通常就是不同條件下的分支和跳轉(zhuǎn)。

在現(xiàn)在的計算機里,上面的算術(shù)邏輯單元和這里的控制器單元,共同組成了我們說的CPU。

接著是用來存儲數(shù)據(jù)(Data)和指令(Instruction)的內(nèi)存。以及更大容量的外部存儲,在過去,可能是磁帶、磁鼓這樣的設(shè)備,現(xiàn)在通常就是硬盤。

最后就是各種輸入和輸出設(shè)備,以及對應(yīng)的輸入和輸出機制。

我們現(xiàn)在無論是使用什么樣的計算機,其實都是和輸入輸出設(shè)備在打交道。

個人電腦的鼠標鍵盤是輸入設(shè)備,顯示器是輸出設(shè)備

我們用的智能手機,觸摸屏既是輸入設(shè)備,又是輸出設(shè)備

跑在各種云上的服務(wù)器,則是通過網(wǎng)絡(luò)來進行輸入和輸出。這個時候,網(wǎng)卡既是輸入設(shè)備又是輸出設(shè)備

任何一臺計算機的任何一個部件都可以歸到運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備中,而所有的現(xiàn)代計算機也都是基于這個基礎(chǔ)架構(gòu)來設(shè)計開發(fā)的

而所有的計算機程序,也都可以抽象為從輸入設(shè)備讀取輸入信息,通過運算器控制器來執(zhí)行存儲在存儲器里的程序,最終把結(jié)果輸出到輸出設(shè)備中。而我們所有撰寫的無論高級還是低級語言的程序,也都是基于這樣一個抽象框架來進行運作的。

馮·諾依曼體系結(jié)構(gòu)示意圖

3 總結(jié)

馮·諾依曼體系結(jié)構(gòu)確立了我們現(xiàn)在每天使用的計算機硬件的基礎(chǔ)架構(gòu)。

因此,學(xué)習計算機組成原理,其實就是學(xué)習和拆解馮·諾依曼體系結(jié)構(gòu)。

具體來說,其實就是

學(xué)習控制器、運算器的工作原理,也就是CPU是怎么工作的,以及為何這樣設(shè)計

學(xué)習內(nèi)存的工作原理,從最基本的電路,到上層抽象給到CPU乃至應(yīng)用程序的接口是怎樣的

學(xué)習CPU是怎么和輸入設(shè)備、輸出設(shè)備打交道的。=

學(xué)習組成原理,就是在理解從控制器、運算器、存儲器、輸入設(shè)備以及輸出設(shè)備,從電路這樣的硬件,到最終開放給軟件的接口,是怎么運作的,為什么要設(shè)計成這樣,以及在軟件開發(fā)層面怎么盡可能用好它。

4 推薦閱讀

First Draft of a Report on the EDVAC

對于工程師來說,直接讀取英文論文的原文,既可以搞清楚、弄明白對應(yīng)的設(shè)計及其背后的思路來源,還可以幫你破除對于論文或者核心技術(shù)的恐懼心理。

5 思考

計算機行業(yè)的兩大祖師爺之一,除了馮·諾依曼機之外,還有一位就是著名的圖靈(Alan Mathison Turing)。對應(yīng)的,我們現(xiàn)在的計算機也叫圖靈機(Turing Machine)。那么圖靈機和馮·諾依曼機是兩種不同的計算機么?圖靈機是一種什么樣的計算機抽象呢?

歡迎留言分享你的思考和疑惑,也可以把本文分享給你的朋友,一起學(xué)習和進步!

參考

深入淺出計算機組成原理

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75969.html

相關(guān)文章

  • 重學(xué)算機組成原理(三)- 進擊,更強的性能!

    摘要:在上一篇中我們談到過程序的執(zhí)行時間指令數(shù)要提升計算機的性能,可以從上面這三方面著手。在摩爾定律和并行計算之外,在整個計算機組成層面,還有這樣幾個原則性的性能提升方法。 showImg(https://ask.qcloudimg.com/http-save/1752328/uskvyzme4j.png); 在上一篇中,我們談到過 程序的CPU執(zhí)行時間 = 指令數(shù)×CPI×Clock Cy...

    Tecode 評論0 收藏0
  • 新型神經(jīng)網(wǎng)絡(luò)芯片會對科技領(lǐng)域乃至整個世界產(chǎn)生什么巨大影響?

    摘要:三人造神經(jīng)元工作原理及電路實現(xiàn)人工神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò),縮寫,簡稱神經(jīng)網(wǎng)絡(luò),縮寫,是一種模仿生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和功能的數(shù)學(xué)模型或計算模型。神經(jīng)網(wǎng)絡(luò)是一種運算模型,由大量的節(jié)點或稱神經(jīng)元,或單元和之間相互聯(lián)接構(gòu)成。 一、與傳統(tǒng)計算機的區(qū)別1946年美籍匈牙利科學(xué)家馮·諾依曼提出存儲程序原理,把程序本身當作數(shù)據(jù)來對待。此后的半個多世紀以來,計算機的發(fā)展取得了巨大的進步,但馮·諾依曼架構(gòu)中信息存儲...

    weakish 評論0 收藏0
  • TrueNorth:IBM的百萬神經(jīng)元類人腦芯片

    摘要:年的時候,首先推出了單核含個神經(jīng)元,個突觸和個軸突的芯片原型。個內(nèi)核,萬個神經(jīng)元億個突觸集成在直徑只有幾厘米的方寸是年原型大小的之間,而且能耗只有不到毫瓦,的集成的確令人印象深刻。 郵票大小、重量只有幾克,但卻集成了54億個硅晶體管,內(nèi)置了4096個內(nèi)核,100萬個神經(jīng)元、2.56億個突觸,能力相當于一臺超級計算機,功耗卻只有65毫瓦。這就是IBM公布的仿人腦芯片:TrueNorth。為什...

    you_De 評論0 收藏0
  • JavaScript函數(shù)式編程(1):基本思想

    摘要:中的函數(shù)式編程思想匿名函數(shù)在函數(shù)式編程語言中,函數(shù)是可以沒有名字的,匿名函數(shù)通常表示可以完成某件事的一塊代碼。匿名函數(shù)中包含對的局部變量的引用,因此當返回時,的值被保留不會被垃圾回收機制回收,持續(xù)調(diào)用,將會改變的值。 1 函數(shù)式編程簡介 函數(shù)式編程是和傳統(tǒng)命令式編程區(qū)分的一種編程思想,在函數(shù)式編程語言中,函數(shù)是第一類的對象,也就是說,函數(shù) 不依賴于任何其他的對象而可以獨立存在,而在面向...

    時飛 評論0 收藏0
  • JavaScript函數(shù)式編程(1):基本思想

    摘要:中的函數(shù)式編程思想匿名函數(shù)在函數(shù)式編程語言中,函數(shù)是可以沒有名字的,匿名函數(shù)通常表示可以完成某件事的一塊代碼。匿名函數(shù)中包含對的局部變量的引用,因此當返回時,的值被保留不會被垃圾回收機制回收,持續(xù)調(diào)用,將會改變的值。 1 函數(shù)式編程簡介 函數(shù)式編程是和傳統(tǒng)命令式編程區(qū)分的一種編程思想,在函數(shù)式編程語言中,函數(shù)是第一類的對象,也就是說,函數(shù) 不依賴于任何其他的對象而可以獨立存在,而在面向...

    y1chuan 評論0 收藏0

發(fā)表評論

0條評論

Yujiaao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<