文章目錄
- 馮?諾依曼體系結構推導
- 記憶體提高馮?諾依曼體系結構效率的方法
- 你用QQ和朋友聊天時資料的流動程序
- 與馮?諾依曼體系結構相關的一些知識
馮?諾依曼體系結構推導
計算機的作用就是為了解決人的問題,而要解決問題,首先需要將資料或是問題輸入到計算機當中,所以計算機必須要有輸入設備,計算機解決完問題后還需要將計算結果輸出顯示出來,所以計算機必須要有輸出設備,計算機通過輸入設備得到資料,資料在計算機當中進行一系列的算術運算和邏輯運算后,通過輸出設備進行輸出,于是就得到了以下流程圖,

但是計算機當中只有算術運算功能和邏輯運算功能是不夠的,還需要有控制功能,控制何時從輸入設備獲取資料,何時輸出資料到輸出設備等,對應到C語言當中,算術運算就完成一系列的加減乘除,而邏輯運算就對應于一系列的邏輯與邏輯或等,控制功能就對應于C語言當中的判斷、回圈以及各個函式之間的跳轉等等,

而我們后人就將這個具有算術運算功能、邏輯運算功能以及控制功能的這個模塊稱為中央處理器,簡稱CPU,
但是輸入設備和輸出設備相對于中央處理器來說是非常慢的,于是在當前這個體系整體呈現出來的就是,輸入設備和輸出設備很慢,而CPU很快,根據木桶原理,那么最終整個體系所呈現出來的速度將會是很慢的,

所以當前這個體系結構顯然是不合適的,于是我們就不讓輸入設備和輸出設備直接與CPU進行互動,而在這中間加入了記憶體,

記憶體有個特點就是,比輸入設備和輸出設備要快很多,但是比CPU又要慢,現在記憶體就處于慢設備和快設備之間,是一個不快也不慢的設備,能夠在該體系結構當中就起到一個緩沖的作用,
現在該體系的運行流程就是:用戶輸入的資料先放到記憶體當中,CPU讀取資料的時候就直接從記憶體當中讀取,CPU處理完資料后又寫回記憶體當中,然后記憶體再將資料輸出到輸出設備當中,最后由輸出設備進行輸出顯示,
于是就形成了最終的馮諾依曼體系結構,

注意: 這里存盤器只是記憶體,不包括外存,
記憶體提高馮?諾依曼體系結構效率的方法
在這里大多數人有一個疑惑就是,先將輸入設備的資料交給記憶體,再由記憶體將資料交給CPU,這個程序真的比CPU直接從輸入設備獲取資料更快嗎?
說明這個問題之前,我們首先需要知道:記憶體具有資料存盤的能力,雖然記憶體的大小只有4G/8G,但是既然記憶體有大小,那么它就有預裝資料的能力,而這就是提高該體系結構效率的秘訣,
這里不得不說到的就是區域性原理:根據統計學原理,當一個資料正在被訪問時,那么下一次有很大可能會訪問其周圍的資料,所以當CPU需要獲取某一行資料時,記憶體可以將該行資料之后的資料一同加載進來,而CPU處理資料和記憶體加載資料是可以同時進行的,這樣下次CPU就可以直接從記憶體當中獲取資料,
輸出資料的時候也一樣,CPU處理完資料后直接將資料放到記憶體當中,當輸出設備需要時再在記憶體當中獲取即可,這也就有了我們平常所說的緩沖區的概念,例如,緩沖區滿了才將資料列印到螢屏上,使用fflush函式將緩沖區當中的資料直接輸出之類的,都是將記憶體當中的資料直接拿到輸出設備當中進行顯示輸出,
你用QQ和朋友聊天時資料的流動程序
要使用QQ,首先需要聯網,而你和你的朋友的電腦都是馮諾依曼體系結構,在你向朋友發送訊息這個程序中,你的電腦當中的鍵盤充當輸入設備、顯示幕和網卡充當輸出設備,你朋友的電腦當中的網卡充當輸入設備、顯示幕充當輸出設備,

剛開始你在鍵盤當中輸入訊息,鍵盤將訊息加載到記憶體,此時你的顯示幕就可以從記憶體獲取訊息進而顯示在你自己的顯示幕上,此時你就能在你自己的電腦上看到你所發的訊息了,
在鍵盤將訊息加載到記憶體后,CPU從記憶體獲取到訊息后對訊息進行各種封裝,然后再將其寫回記憶體,此時你的網卡就可以從記憶體獲取已經封裝好的訊息,然后在網路當中經過一系列處理(這里忽略網路處理細節),之后你朋友的網卡從網路當中獲取到你所發的訊息后,將該訊息加載到記憶體當中,你朋友的CPU再從記憶體當中獲取訊息并對訊息進行解包操作,然后將解包好的訊息寫回記憶體,最后你朋友的顯示幕從記憶體當中獲取訊息并顯示在他的電腦上,

與馮?諾依曼體系結構相關的一些知識

根據馮諾依曼體系結構圖,我們可以知道,站在硬體角度或是資料層面上,CPU只和記憶體打交道,外設也只和記憶體打交道,到這里我們也可以說明一個問題:為什么程式運行之前必須先加載到記憶體?
因為可執行程式(檔案)是在硬碟(外設)上的,而CPU只能從記憶體當中獲取資料,所以必須先將硬碟上的資料加載到記憶體,也就是必須先將程式加載到記憶體,
常見的輸入設備和輸出設備(拓展):
?輸入設備:鍵盤、滑鼠、網卡、硬碟、話筒、攝像頭、掃描儀等,
?輸出設備:顯示幕、音響、網卡、硬碟、列印機等,
注意: 同種設備在不同場景下可能屬于輸入設備,也可能屬于輸入設備,
我們經常說CPU當中有暫存器,實際上暫存器不僅僅在CPU當中存在,在其他外設當中也是有暫存器的,例如,當我們敲擊鍵盤時,鍵盤是先將獲取到的內容存盤在暫存器當中,然后再通過暫存器將資料寫入記憶體當中,
在物理層面上,各個硬體單元之間是通過總線連接的,外設與記憶體之間的總線叫做IO總線,記憶體與CPU之間的總線叫做系統總線,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/297186.html
標籤:其他
上一篇:CSDN瀏覽器助手新版本!【沉浸式閱讀讓閱讀更純粹】
下一篇:整除分塊
