馮.諾依曼 體系結構

1964年,第一臺計算機ENIAC誕生,人類進入計算機時代,後來,美籍匈牙利數學家:馮.諾依曼提出了計算機“存儲程序”的計算機設計理念,即將計算機指令進行編碼後存儲在計算機的存儲器中,需要的時候可以順序地執行程序代碼,從而控制計算機運行,這就是馮.諾依曼計算機體系的開端。

一.馮.諾依曼結構的靈魂

早期的計算機是由各種門電路組成的,這些門電路通過組裝出一個固定的電路板,來執行一個特定的程序,一旦需要修改程序功能,就要重新組裝電路板,所以早期的計算機程序是硬件化的

然而,祖師爺的出現將最初的硬件化程序變爲可編程、可存儲編碼,放在存儲器中,隨意使用,下面大體介紹一下馮.諾依曼結構的靈魂。

要知道,早期的計算機設計中,程序和數據是倆個截然不同的概念,數據放在存儲器中,而程序作爲控制器的一部分,這樣的計算機計算效率低,靈活性較差。馮.諾依曼結構中,將程序和數據一樣看待,將程序編碼爲數據,然後與數據一同存放在存儲器中,這樣計算機就可以調用存儲器中的程序來處理數據了。意味着,無論什麼程序,最終都是會轉換爲數據的形式存儲在存儲器中,要執行相應的程序只需要從存儲器中依次取出指令、執行,馮.諾依曼結構的靈魂所在正是這裏:減少了硬件的連接,這種設計思想導致了硬件和軟件的分離,即硬件設計和程序設計可以分開執行!!!這就催生了程序員這個職業的誕生!!!

概括的來講,馮.諾依曼結構消除了原始計算機體系中,只能依靠硬件控制程序的狀況(程序作爲控制器的一部分,作爲硬件存在),將程序編碼存儲在存儲器中,實現了可編程的計算機功能,實現了硬件設計和程序設計的分離,大大促進了計算機的發展。

靈魂就是將程序從硬件實現轉換爲軟件實現(存儲程序控制原理)!!!

計算機的基本工作原理就是:存儲程序控制原理!

二.馮.諾依曼結構的核心設計思想

核心設計思想主要體現在如下三個方面:

  • 程序、數據的最終形態都是二進制編碼,程序和數據都是以二進制方式存儲在存儲器中的,二進制編碼也是計算機能夠所識別和執行的編碼。(可執行二進制文件:.bin文件)
  • 程序、數據和指令序列,都是事先存在主(內)存儲器中,以便於計算機在工作時能夠高速地從存儲器中提取指令並加以分析和執行。
  • 確定了計算機的五個基本組成部分:運算器、控制器、存儲器、輸入設備、輸出設備

三.馮諾依曼結構的五個主要組成部分

馮.諾依曼在祕密開發的 EDVAC 寫了一篇報告First Draft of a Report on the EDVAC,描述了他心目中的一臺計算機應該長什麼樣。這篇報告在歷史上有個很特殊的簡稱,叫First Draft,翻譯成中文,其實就是《第一份草案》。這樣,現代計算機的發展就從祖師爺寫的一份草案開始了。

First Draft裏面說了一臺計算機應該有哪些部分組成,我們一起來看看。

馮.諾依曼確定了”計算機結構“中的5大部件:

  • 運算器
  • 控制器
  • 存儲器
  • 輸入設備
  • 輸出設備

現在看來,運算器和控制器單元集成在CPU中實現,存儲器的容量不斷擴大、輸入輸出設備不斷更新,這些部件構成了當代計算機硬件系統的基本組成。

在這裏插入圖片描述

我們手機裏只有 SD 卡(Secure Digital Memory Card)這樣類似硬盤功能的存儲卡插槽,並沒有內存插槽、CPU 插槽這些東西。沒錯,因爲手機尺寸的原因,手機制造商們選擇把 CPU、內存、網絡通信,乃至攝像頭芯片,都封裝到一個芯片,然後再嵌入到手機主板上。這種方式叫SoC,也就是 System on a Chip(系統芯片)。

1.運算器

首先計算機要有運算處理數據的能力,所以需要一個處理單元來完成各種算數運算和邏輯運算,這就是算術邏輯單元(Arithmetic Logic Unit,ALU)。ALU的主要功能就是在控制信號的作用下,完成加、減、乘、除等算術運算以及與、或、非、異或等邏輯運算以及移位、補位等運算。

運算器的主要部件就是ALU,運算器的處理對象是數據,所以數據的長度以及數據的表示方法,對運算器的影響很大。大多數通用計算機是以16、32、64位數據作爲運算器一次處理數據的長度。能夠對一個數據的所有位同時處理運算器稱爲並行運算器,一次只能對數據的一個位處理的運算器稱爲串行運算器。

運算器與其他部分的關係:

計算機運算時,運算器的操作對象和操作種類由控制器決定。運算器操作的數據從內存中讀取,處理的結果再寫入內存(或者暫時存放在內部寄存器中),而且運算器對內存數據的讀寫是由控制器來進行的。

2.控制器

控制器又稱爲控制單元(Control Unit),是計算機的神經中樞和指揮中心,只有在控制器的控制下,整個計算機才能夠有條不紊地工作、自動執行程序。

控制器的工作流程爲:從內存中取指令、翻譯指令、分析指令,然後根據指令的內存向有關部件發送控制命令,控制相關部件執行指令所包含的操作。

控制器和運算器共同組成中央處理器(Central Processing Unit),CPU是一塊超大規模集成電路,是計算機運算核心和控制核心,CPU的主要功能是解釋計算機指令以及處理數據。

3.存儲器

存儲器的主要功能是存儲程序和各種數據,並且能夠在計算機運行過程高速、自動地完成程序或者數據的存儲,存儲器是有記憶的設備,而且採用倆種穩定狀態的物理器件來記錄存儲信息,所以計算機中的程序和數據都要轉換爲二進制代碼纔可以存儲和操作。

存儲器可以分爲內部存儲器(內存)和外部存儲器,倆者在計算機系統中各有用處,下面大概介紹一下倆種存儲器的特點:

Ⅰ.內部存儲器

內部存儲器稱爲內存或者主存,是用來存放欲執行的程序和數據

在計算機內部,程序和數據都是以二進制代碼的形式存儲的,它們均以字節爲單位(8位)存儲在存儲器中,一個字節佔用一個存儲單元,並且每個存儲單元都有唯一的地址號。

這裏以字節(8位)爲存儲單元,就與上面運算器的操作數據的大小聯繫起來了,16、32、64都是8的倍數

CPU可以直接使用指令對內部存儲器按照地址進行讀寫倆種操作,讀:將內存中某個存儲單元的內容讀出,送入CPU的某個寄存器中;寫:在控制器的控制下,將CPU中某寄存器內容傳到某個存儲單元中。

要注意,內存中的數據和地址碼都是二進制數,但是倆者是不同的,一個地址可以指向一個存儲單元,地址是存儲單元的位置,數據是存儲單元的內容,數據可以是操作碼、可以是CPU要處理阿數據、也可以是數據的地址,地址碼的長度由內存單元的個數確定。

內存的存取速度會直接影響計算機的運算速度,由於CPU是高速器件,但是CPU的速度是受制於內存的存取速度的,所以爲了解決CPU和內存速度不匹配的問題,在CPU和內存直接設置了一種高速緩衝存儲器Cache。 Cache是計算機中的一個高速小容量存儲器,其中存放的是CPU近期要執行的指令和數據,其存取速度可以和CPU的速度匹配,一般採用靜態RAM充當Cache

內存按工作方式的不同又可以分爲倆部分:

RAM:隨機存儲器,可以被CPU隨機讀取,一般存放CPU將要執行的程序、數據,斷電丟失數據

ROM:只讀存儲器,只能被CPU讀,不能輕易被CPU寫,用來存放永久性的程序和數據,比如:系統引導程序、監控程序等。具有掉電非易失性。

Ⅱ.外部存儲器

外部存儲器主要來存放”暫時“用不着的程序和數據,可以和內存交換數據。

一般是磁盤、光盤、U盤、硬盤等。

4.輸入輸出設備

實際上我們操作計算機都是與輸入輸出設備在打交道。

鼠標鍵盤是輸入設備、顯示器是輸出設備;

手機觸摸屏即時輸入設備又是輸出設備;

服務器中網卡既是輸入設備又是輸出設備;

所有的計算機程序都可以抽象爲輸入設備讀取信息,通過CPU來執行存儲在存儲器中的程序,結果通過輸出設備反饋給用戶。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章