簡(jiǎn)明圖解馮·諾依曼計(jì)算機(jī)體系
1 基本硬件組成
一臺(tái)計(jì)算機(jī)組成至少如下:
CPU(Central Processing Unit)
中央處理器,計(jì)算機(jī)的所有計(jì)算由CPU執(zhí)行。
內(nèi)存(Memory)
撰寫的程序、打開的瀏覽器、運(yùn)行的游戲,都要加載到內(nèi)存里才能運(yùn)行。
程序讀取的數(shù)據(jù)、計(jì)算得到的結(jié)果,也都要放在內(nèi)存里。內(nèi)存越大,能加載的東西自然也就越多。
存放在內(nèi)存里的程序和數(shù)據(jù),需要被CPU讀取,CPU計(jì)算完之后,還要把數(shù)據(jù)寫回到內(nèi)存。然而CPU不能直接插到內(nèi)存上,反之亦然。
主板(Motherboard)
一個(gè)有著各種各樣,有時(shí)候多達(dá)數(shù)十乃至上百個(gè)插槽的配件。CPU、內(nèi)存都要插在主板。
主板的芯片組(Chipset)和總線(Bus)解決了CPU和內(nèi)存之間如何通信的問題。
芯片組
控制數(shù)據(jù)流轉(zhuǎn)
總線
實(shí)際數(shù)據(jù)傳輸?shù)母咚俟贰?偩€速度(Bus Speed)決定數(shù)據(jù)傳輸速度
輸入(Input)/輸出(Output)設(shè)備,即I/O設(shè)備。
顯示器這所謂的輸出設(shè)備。
鼠標(biāo)和鍵盤所謂的輸入設(shè)備。
硬盤,數(shù)據(jù)持久化。
顯示器、鼠標(biāo)、鍵盤和硬盤這些東西并不是一臺(tái)計(jì)算機(jī)必須的部分。
其實(shí)只需要有I/O設(shè)備,能讓我們從計(jì)算機(jī)里輸入和輸出信息即可。云服務(wù)器,只要讓計(jì)算機(jī)能通過網(wǎng)絡(luò),SSH遠(yuǎn)程登陸訪問就好了,因此沒必要配顯示器、鼠標(biāo)、鍵盤。
顯卡(Graphics Card),使用圖形界面操作系統(tǒng)的計(jì)算機(jī)必不可少。
有人可能要說了,我裝機(jī)的時(shí)候沒有買顯卡,計(jì)算機(jī)一樣可以正常跑起來啊!那是因?yàn)椋F(xiàn)在的主板都帶了內(nèi)置的顯卡。
如果玩游戲,做圖形渲染或者跑深度學(xué)習(xí)應(yīng)用,就需要買一張單獨(dú)顯卡,因?yàn)轱@卡里有GPU(Graphics Processing Unit,圖形處理器),GPU一樣可以做各種“計(jì)算”的工作。
鼠標(biāo)、鍵盤以及硬盤都是插在主板。作為外部I/O設(shè)備,它們通過主板上的南橋(SouthBridge)芯片組,來控制和CPU之間的通信的。
“南橋”芯片
它在主板上的位置,通常在主板的“南面”
它的作用就是作為“橋”,來連接鼠標(biāo)、鍵盤以及硬盤這些外部設(shè)備和CPU之間的通信。
以前的主板上通常也有“北橋”芯片,用來作為“橋”,連接CPU和內(nèi)存、顯卡之間的通信。不過現(xiàn)在的主板上的“北橋”芯片的工作,已經(jīng)被移到了CPU內(nèi)部。
2 馮·諾依曼體系結(jié)構(gòu)
手機(jī)制造商們把CPU、內(nèi)存、網(wǎng)絡(luò)通信,乃至攝像頭芯片,都封裝到一個(gè)芯片,然后再嵌入到手機(jī)主板上,即SoC,System on a Chip(系統(tǒng)芯片)。
但無論是PC/服務(wù)器/手機(jī)都遵循馮·諾依曼體系結(jié)構(gòu)(Von Neumann architecture),也叫存儲(chǔ)程序計(jì)算機(jī),意味著“可編程”、“存儲(chǔ)”計(jì)算機(jī)。
計(jì)算機(jī)由各種門電路組成完成計(jì)算程序。一旦需要修改功能,就要重新組裝電路。這樣的話,計(jì)算機(jī)就是“不可編程”的,因?yàn)槌绦蛟谟?jì)算機(jī)硬件層面是“寫死”的。最常見的就是老式計(jì)算器,電路板設(shè)好了加減乘除,做不了任何計(jì)算邏輯固定之外的事情。
再看“存儲(chǔ)”計(jì)算機(jī)。程序存儲(chǔ)在計(jì)算機(jī)內(nèi)存,可通過加載不同程序解決不同問題。
不能存儲(chǔ)程序的計(jì)算機(jī)
早年“Plugboard”這種插線板計(jì)算機(jī),在板子上不同的插頭或者接口的位置插入線路實(shí)現(xiàn)不同功能。這樣的計(jì)算機(jī)“可編程”,但編寫好的程序不能存儲(chǔ)下來供下一次加載使用,不得不每次要用到和當(dāng)前不同的“程序”的時(shí)候,重新插板子,重新“編程”。
為了效率,有了“存儲(chǔ)程序計(jì)算機(jī)”。馮基于在秘密開發(fā)的EDVAC寫了一篇報(bào)告First Draft of a Report on the EDVAC,描述了一臺(tái)計(jì)算機(jī)什么樣。
包含處理器單元(Processing Unit):
算術(shù)邏輯單元(Arithmetic Logic Unit,ALU)
處理器寄存器(Processor Register)
完成各種算術(shù)和邏輯運(yùn)算。
因?yàn)樗軌蛲瓿筛鞣N數(shù)據(jù)的處理或者計(jì)算工作,因此也有人把這個(gè)叫作數(shù)據(jù)通路(Datapath)或者運(yùn)算器。
包含控制器單元(Control Unit/CU):
指令寄存器(Instruction Reigster)
程序計(jì)數(shù)器(Program Counter)
控制程序的流程,通常就是不同條件下的分支和跳轉(zhuǎn)。
算術(shù)邏輯單元和控制器單元組成CPU。
存儲(chǔ)器
存儲(chǔ)數(shù)據(jù)(Data)和指令(Instruction)的內(nèi)存。以及更大容量的外部存儲(chǔ),在過去,可能是磁帶、磁鼓這樣的設(shè)備,現(xiàn)在通常就是硬盤。
分類
存儲(chǔ)介質(zhì)
半 導(dǎo)體存儲(chǔ)器:
內(nèi)存、U盤、固態(tài)硬盤
磁存儲(chǔ)器:
磁帶、磁盤
存取方式
隨機(jī)存取存儲(chǔ)器RAM(Random Access Memory),通過電容存儲(chǔ)數(shù)據(jù),必須隔一段時(shí)間刷新一次,如果掉電,那么一段時(shí)間后將丟失所有數(shù)據(jù)。
隨機(jī)讀取、與位置無關(guān)
串行存儲(chǔ)器:
與位置有關(guān)、按順序查找
只讀存儲(chǔ)器(ROM):
只讀不寫
層次結(jié)構(gòu)
原理
局部性原理。即在CPU與主存之間增加一層速度快(容量小)的Cache,以解決主存速度不足問題。
局部性原理。在主存之外增加輔助存儲(chǔ)器(磁盤、SD卡、 U盤等),以解決主存容量不足的問題。
輸入和輸出設(shè)備
無論是使用什么樣的計(jì)算機(jī),都是和輸入輸出設(shè)備打交道。
個(gè)人電腦的鼠標(biāo)鍵盤是輸入設(shè)備,顯示器是輸出設(shè)備
我們用的智能手機(jī),觸摸屏既是輸入設(shè)備,又是輸出設(shè)備
跑在各種云上的服務(wù)器,則是通過網(wǎng)絡(luò)來進(jìn)行輸入和輸出。這個(gè)時(shí)候,網(wǎng)卡既是輸入設(shè)備又是輸出設(shè)備
任何一臺(tái)計(jì)算機(jī)的任何一個(gè)部件都可以歸到運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備中,而所有的現(xiàn)代計(jì)算機(jī)也都是基于這個(gè)基礎(chǔ)架構(gòu)來設(shè)計(jì)開發(fā)的
而所有的計(jì)算機(jī)程序,也都可以抽象為從輸入設(shè)備讀取輸入信息,通過運(yùn)算器和控制器來執(zhí)行存儲(chǔ)在存儲(chǔ)器里的程序,最終把結(jié)果輸出到輸出設(shè)備中。而我們所有撰寫的無論高級(jí)還是低級(jí)語言的程序,也都是基于這樣一個(gè)抽象框架來進(jìn)行運(yùn)作的。
通用設(shè)計(jì)
數(shù)據(jù)線
I/O設(shè)備與主機(jī)之間進(jìn)行數(shù)據(jù)交換的傳送線。
分為:
單向傳輸數(shù)據(jù)線
雙向傳輸數(shù)據(jù)線
狀態(tài)線
I/O設(shè)備狀態(tài)向主機(jī)報(bào)告的信號(hào)線
查詢?cè)O(shè)備是否已經(jīng)正常連接并就緒
查詢?cè)O(shè)備是否已經(jīng)被占用
命令線
CPU向設(shè)備發(fā)送命令的信號(hào)線
發(fā)送讀寫信號(hào)
發(fā)送啟動(dòng)停止信號(hào)
設(shè)備選擇線
主機(jī)選擇I/O設(shè)備進(jìn)行操作的信號(hào)線
對(duì)連在總線上的設(shè)備進(jìn)行選擇
CPU與IO設(shè)備的通信
程序中斷
當(dāng)外圍IO設(shè)備就緒時(shí),向CPU發(fā)出中斷信號(hào)。CPU有專門的電路響應(yīng)中斷信號(hào)。
提供低速設(shè)備通知CPU的一種異步的方式,CPU可以高速運(yùn)轉(zhuǎn)同時(shí)兼顧低速設(shè)備的響應(yīng)。
程序中斷的一個(gè)簡(jiǎn)單流程
不過頻繁切換 CPU 也會(huì)降低性能。所以又有如下方式
DMA (直接存儲(chǔ)器訪問)
DMA直接連接主存與I/O設(shè)備
當(dāng)主存與I/O設(shè)備交換信息時(shí),無需中斷CPU,可提高 CPU 利用率
CPU速度與I/O設(shè)備速度不一致。
硬盤與外接顯卡里都有。
硬件開發(fā)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。