【計算機組成原理】01-馮諾依曼體系結構


1. 計算機的基本硬件組成

1.1 CPU(Central Processing Unit)

  CPU 是計算機最重要的核心配件,負責進行運算。

1.2 內存(Memory)

  程序都要加載到內存中才能運行。此外,程序讀取的數據、計算得到的結果,也都要放到內存里。內存越大,能加載的東西越多。

1.3 主板(Motherboard)

  前兩個小節提到,CPU 從內存讀取程序和數據,運算完畢后又要將數據寫回內存。但 CPU 和內存不能直接插在一起,此時就需要主板。主板是一個有很多插槽的配件,CPU 和內存都插在主板上。

  主板的芯片組(Chipset)和總線(Bus)解決了 CPU 和內存的通信問題。芯片組控制數據傳輸的流轉,解決了數據從哪里到哪里的問題。總線則是實際數據傳輸的通路,總線速度(Bus Speed)決定了數據能傳輸得多快。

1.3.1 南橋(South Bridge)

  鼠標、鍵盤、硬盤等 I/O 設備插在主板上,它們和 CPU 的通信是由主板上的南橋控制的。

1.3.2 北橋(North Bridge)

  北橋主要負責 CPU 和內存、顯卡之間的通信。但隨着技術發展,北橋的工作已經轉移到 CPU 內部完成。現在的新主板上已經沒有北橋芯片了。

1.4 輸入設備(Input Device)

  有了鼠標、鍵盤等輸入設備,我們才能向計算機傳入數據。

1.5 輸出設備(Output Device)

  有了顯示器這類輸出設備,我們才能看到計算機輸出的圖像、文字等信息。

1.6 硬盤

  硬盤用於持久保存數據。

1.7 顯卡(Graphics Card)

  使用圖形界面操作系統的計算機,都需要顯卡。

  顯卡中有另一個處理器——GPU(Graphics Processing Unit)。GPU 也可以做各種“計算”工作。

1.8 電源

  以上設備,均需供電方能使用。

 

  上述的各部分硬件中,顯示器、鼠標、鍵盤、硬盤並非是必需的部分。譬如網吧的電腦沒有硬盤,雲服務器沒有鍵鼠、顯示器。

 

2. 馮·諾伊曼體系結構

2.1 First Draft

  上一節中,我們列舉了計算機的硬件組成。為了引出馮·諾伊曼體系結構,我們先來看看,手機是怎么做的。

  手機里沒有內存插槽、CPU 插槽這些東西。受限於手機尺寸,手機的做法是將 CPU、內存等模塊封裝到一個芯片里,然后將這個芯片嵌入到手機主板上。這就是所謂的片上系統(System On a Chip,SoC)

  從硬件的組成方式來看,手機和計算機有明顯的差異。但具體到移動端和 PC 端的軟件開發,似乎又沒有什么差別。這是因為,不論是 PC、手機還是樹莓派這類平台,都遵循同一個“計算機”的抽象概念——馮·諾依曼體系結構(Von Neumann architecture)

  馮·諾依曼體系結構,也叫存儲程序計算機。這里暗含兩個概念,一個是“可編程”計算機,一個是“存儲”計算機。

  所謂“可編程”計算機,要和“不可編程”對照來理解。有些計算機是由門電路組成,用於實現特定的計算程序。這種計算機就是“不可編程”的,因為已經在硬件層面寫死了。

  所謂“存儲”計算機,就是說程序本身存儲在計算機的內存里,可以通過加載不同的程序來解決不同的問題。像早期的插線板式計算機,每次修改程序都要重新插線,無法將程序存儲下來,這就是“不可存儲”的。

  無論是“不可編程”還是“不可存儲”,都會讓使用計算機的效率大大降低。這也是“存儲程序計算機”的由來。馮·諾依曼寫了一篇名為《First Draft of a Report on the EDVAC》的報告,描述了他所構想的計算機。這篇文章有個特殊的簡稱——First Draft。現代計算機的發展由此開始。

2.2 計算機的組成單元

  按照 First Draft 的描述,計算機由以下幾部分組成。其中處理器單元和控制器單元共同組成了 CPU。

2.2.1 處理器單元(Processing Unit,PU)

  處理器單元亦稱運算器,用於完成各種算術和邏輯運算。

  處理器單元又包含算術邏輯單元(Arithmetic Logic Unit,ALU)處理器寄存器(Processor Register,PR)

2.2.2 控制器單元(Control Unit,CU)

  控制器單元用於控制程序的流程,通常是分支和跳轉。

  控制器單元包含指令寄存器(Instruction Register,IR)程序計數器(Program Counter,PC)

2.2.3 存儲單元

  存儲單元分為兩部分——用於存儲數據和指令的內存,以及更大容量的外部存儲。

2.2.4 輸入輸出設備

  我們無論使用什么形式的計算機,其實都是在和輸入輸出設備打交道。即使是跑在各種雲上的服務器,也要通過網絡進行輸入輸出,此時網卡即使輸入設備,又是輸出設備。

2.2.5 現代計算機的基礎架構

  計算機的任何一個部件都可以歸到運算器控制器存儲器輸入設備輸出設備中。現代計算機也是基於這個基礎架構來設計開發的。

  計算機程序,都是從輸入設備讀取信息,通過運算器和控制器執行存儲在存儲器中的程序,最終將結果輸出到輸出設備中。

馮·諾依曼體系結構示意圖

 

3. 腦圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM