??博客主頁:小智_x0___0x_
??歡迎關(guān)注:??點贊??收藏??留言
??系列專欄:Linux入門到精通
??代碼倉庫:小智的代碼倉庫
馮諾依曼體系結(jié)構(gòu)
我們常見的計算機(jī),比如筆記本,還有我們不常見的計算機(jī),比如服務(wù)器,大部分都遵守馮諾依曼體系。
馮諾依曼體系結(jié)構(gòu)的五大部分
當(dāng)我們談?wù)撚嬎銠C(jī)的體系結(jié)構(gòu)時,馮·諾依曼體系結(jié)構(gòu)是不可避免的一個話題。馮·諾依曼體系結(jié)構(gòu)是一種計算機(jī)體系結(jié)構(gòu),它將計算機(jī)分為五個主要部分:輸入設(shè)備、輸出設(shè)備、控制單元、算術(shù)邏輯單元和存儲器。這些部分通過總線連接在一起,形成了馮·諾依曼體系結(jié)構(gòu)的核心。
a.存儲器指的是內(nèi)存
外設(shè):
- b.輸出設(shè)備:顯示器、播放器硬件、磁盤、網(wǎng)卡…
- c.輸入設(shè)備:鼠標(biāo)、鍵盤、攝像頭、麥克風(fēng)、磁盤、網(wǎng)卡…
中央處理器也稱cpu:
- d.運算器:對我們的數(shù)據(jù)進(jìn)行計算任務(wù)(算數(shù)運算,邏輯運算)
- e.控制器:對我們的計算機(jī)硬件流程進(jìn)行一定的控制
它們都是獨立的個體!
各個硬件單元必須用"總線"鏈接起來,總線分為:1.系統(tǒng)總線 2.IO總線
馮·諾依曼體系結(jié)構(gòu)的思想是將程序和數(shù)據(jù)存儲在同一個存儲器中,這種存儲器被稱為隨機(jī)存儲器(RAM)。這一思想的好處是可以讓計算機(jī)更加靈活地運行不同的程序,而不需要改變硬件。
另外,馮·諾依曼體系結(jié)構(gòu)還引入了指令和數(shù)據(jù)的二進(jìn)制表示形式。這種表示形式使得計算機(jī)可以使用相同的硬件執(zhí)行不同的指令,從而實現(xiàn)更高的靈活性和效率。
在馮·諾依曼體系結(jié)構(gòu)中,控制單元負(fù)責(zé)從存儲器中讀取指令,并將其發(fā)送到算術(shù)邏輯單元執(zhí)行。執(zhí)行完成后,結(jié)果將被存儲回存儲器中。這種基于存儲器的設(shè)計極大地簡化了計算機(jī)的設(shè)計和實現(xiàn)。
總的來說,馮·諾依曼體系結(jié)構(gòu)是計算機(jī)設(shè)計的里程碑之一。它的思想和設(shè)計對現(xiàn)代計算機(jī)的發(fā)展產(chǎn)生了深遠(yuǎn)的影響,也為計算機(jī)科學(xué)領(lǐng)域的發(fā)展奠定了堅實的基礎(chǔ)。
馮諾依曼體系結(jié)構(gòu)的運行過程
根據(jù)上面圖可以得出:
對于一個需要處理數(shù)據(jù)而言想要完成相關(guān)操作,那就必須先通過輸入設(shè)備,再通過一系列操作進(jìn)入內(nèi)存;
然后CPU從內(nèi)存中讀取數(shù)據(jù),數(shù)據(jù)經(jīng)過運算器處理完成之后再寫入內(nèi)存中;
最終有存儲器輸出到輸出設(shè)備上,由輸出設(shè)備輸出。
整個過程由控制器來控制完成。
一個小問題:
一個程序要運行,為什么必須加載到內(nèi)存中運行?
因為馮諾依曼體系結(jié)構(gòu)的規(guī)定!??!
存儲器中的木桶效應(yīng)
計算機(jī)存儲器的“木桶效應(yīng)”指的是,類比一個木桶,存儲器的容量由最小的那個存儲單元所決定,即使其他存儲單元的容量比這個最小單元大,也無法利用它們存儲更多的數(shù)據(jù)。這是因為計算機(jī)存儲器是按照固定大小的塊來進(jìn)行分配和管理的,每個塊的大小都是相同的,因此無論某個塊是否被完全使用,它都會占用相同的存儲空間。
例如,如果一個程序需要使用100個字節(jié)的存儲空間,但計算機(jī)存儲器的塊大小為256字節(jié),那么這個程序?qū)加?56字節(jié)的存儲空間,即使只有100字節(jié)被實際使用。這樣就會浪費156字節(jié)的存儲空間,造成了“木桶效應(yīng)”。
為了減少“木桶效應(yīng)”帶來的浪費,計算機(jī)存儲器通常會采用內(nèi)存分頁和虛擬內(nèi)存等技術(shù)來動態(tài)地分配和管理存儲空間,以便更加高效地利用存儲器。
擴(kuò)展:計算機(jī)存儲設(shè)備金字塔
不同層次存儲器設(shè)備特點:
- 越靠近 CPU 速度越快,容量越小,價格越貴。
- 每一種存儲器設(shè)備只和它相鄰的存儲設(shè)備打交道。 比如,CPU Cache 是從內(nèi)存里加載而來的,或者需要寫回內(nèi)存,并不會直接寫回數(shù)據(jù)到硬盤,也不會直接從硬盤加載數(shù)據(jù)到 CPU Cache 中,而是先加載到內(nèi)存,再從內(nèi)存加載到 Cache 中。
實例:qq聊天數(shù)據(jù)傳輸過程
我們平時使用QQ聊天的時候,整個數(shù)據(jù)是怎么流動的呢?
我們先來通過畫圖整體了解一下數(shù)據(jù)的流動方式。
根據(jù)馮諾依曼體系結(jié)構(gòu),可以將使用QQ聊天時的數(shù)據(jù)流動過程描述如下:
- 輸入階段:用戶在QQ客戶端中輸入聊天內(nèi)容。
- 存儲階段:輸入的聊天內(nèi)容被存儲在計算機(jī)的主存儲器(RAM)中。
- 控制階段:QQ客戶端執(zhí)行相應(yīng)的指令,將存儲在主存儲器中的聊天內(nèi)容提取出來。
- 運算階段:QQ客戶端對聊天內(nèi)容進(jìn)行必要的處理和加工,例如打包成數(shù)據(jù)包。
- 存儲階段:處理后的數(shù)據(jù)包被存儲在計算機(jī)的主存儲器中。
- 控制階段:QQ客戶端執(zhí)行發(fā)送指令,將存儲在主存儲器中的數(shù)據(jù)包發(fā)送出去。
- 存儲階段:數(shù)據(jù)包被發(fā)送到目標(biāo)QQ服務(wù)器,并存儲在服務(wù)器的主存儲器中。
- 控制階段:QQ服務(wù)器執(zhí)行相應(yīng)的指令,解析并處理接收到的數(shù)據(jù)包。
- 存儲階段:解析后的聊天內(nèi)容被存儲在服務(wù)器的主存儲器中。
- 控制階段:QQ服務(wù)器根據(jù)接收方的狀態(tài),決定將聊天內(nèi)容發(fā)送給在線接收方或存儲起來等待接收方上線。
- 存儲階段:如果接收方在線,聊天內(nèi)容被存儲在接收方QQ客戶端的主存儲器中。
- 控制階段:接收方QQ客戶端執(zhí)行相應(yīng)的指令,將聊天內(nèi)容顯示給接收方用戶。
以上過程簡要描述了使用QQ聊天時的數(shù)據(jù)流動,根據(jù)馮諾依曼體系結(jié)構(gòu)的基本原理,將輸入、存儲、運算和控制等階段有序地組織起來,實現(xiàn)了聊天數(shù)據(jù)的流動和處理。文章來源:http://www.zghlxwxcb.cn/news/detail-561189.html
??小結(jié)??
今天我們學(xué)習(xí)了"馮諾依曼體系結(jié)構(gòu)思想
相信大家看完有一定的收獲。種一棵樹的最好時間是十年前,其次是現(xiàn)在!
把握好當(dāng)下,合理利用時間努力奮斗,相信大家一定會實現(xiàn)自己的目標(biāo)!加油!創(chuàng)作不易,辛苦各位小伙伴們動動小手,三連一波????~~~
,本文中也有不足之處,歡迎各位隨時私信點評指正!文章來源地址http://www.zghlxwxcb.cn/news/detail-561189.html
到了這里,關(guān)于【Linux】馮諾依曼體系結(jié)構(gòu)思想的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!