1. 程式人生 > >程式設計必備基礎知識|計算機組成原理篇(03):計算機的體系與結構

程式設計必備基礎知識|計算機組成原理篇(03):計算機的體系與結構

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗力。

有鑑於此,本系列文章將帶你更快的補足程式設計必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、作業系統、計算機網路,文章選取了作為程式設計師最應該掌握的那部分知識,取其精華,棄之於程式設計師不重要的那部分內容。

目的是:

  • 幫助大家形成計算機知識的結構體系
  • 幫助大家理解計算機底層原理
  • 幫助大家在工作實踐中借鑑其中的優秀設計

本篇是計算機組成原理之計算機的體系與結構。

歡迎關注、轉發、收藏、評論

馮諾依曼體系

馮諾依曼體系,用一句話來概括就是:將程式指令和資料一起儲存的計算機設計概念結構。

在前面學習計算機的發展歷史的時候,我們知道,早期的計算機只能執行固定用途的程式,怎麼理解?舉個例子:有個計算機它只能執行數學運算的程式,那麼它就不能執行文書處理的軟體,也不能拿來玩遊戲,如果要讓它能夠進行別的功能,就需要改變計算機的程式,而在當時,所謂的重寫程式並不是指現在的重新編譯一個程式那麼簡單,而是必須更改電路或者說更改結構,甚至重新設計這個機器。

這樣就很坑爹了啊。如果說計算機只能用來打遊戲,不能用來寫程式碼,或者說只能用來寫程式碼,不能用來玩遊戲,那麼我們就不能先玩一會遊戲再寫一會程式碼了,這樣子是非常不合理的。於是馮諾依曼就想著將程式儲存起來,然後在設計底層硬體的時候,不再是設計專有的電路,而是設計一個通用電路,當我們需要執行某種程式的時候,我們先把這段程式翻譯成電路能夠理解的語言,然後讓通用電路去執行相關的邏輯。

這就是馮諾依曼體系的核心概念——儲存程式指令,設計通用電路。

瞭解了馮諾依曼體系是怎樣誕生的,如果能夠理解馮諾依曼體系給計算機領域帶來的巨大改變,我們就能明白馮諾依曼體系為什麼這麼重要了。由馮諾依曼體系所延伸的儲存型計算機的概念,改變了之前糟糕的一切,皆由創造一種通用的指令集結構,並將所謂的運算轉化為一串程式指令的執行,使整個計算機更有彈性。藉助將指令當成一種特殊型別的計算資料,一臺儲存型的計算機可以輕易地改變其程式,並且在程式的控制下,改變執行的內容,改變的時候不需要重新設計電路,不需要重新改變計算機的結構,這就是馮諾依曼體系所帶來的巨大貢獻。

由馮諾依曼體系指導完成的計算機包含五大元件:

  1. 儲存器:用來存放程式和資料
  2. 控制器:用來控制程式的流轉和資料的輸入執行,以及處理運算結果
  3. 運算器:主要執行算數運算和邏輯運算,並將中間結果暫存到運算器中
  4. 輸入裝置:用來將人們熟悉的資訊形式轉換為機器能夠識別的資訊形式,常見的有鍵盤,滑鼠等
  5. 輸出裝置:可以將機器運算結果轉換為人們熟悉的資訊形式,如印表機輸出,顯示器輸出等

我們現代所有使用的計算機,從本質上講,都是馮諾依曼機,包括膝上型電腦、臺式電腦、普通伺服器、迷你計算機等等。由馮諾依曼體系所指導完成的計算機,必須有以下的幾點功能:

  1. 能夠把需要的程式和資料送至計算機中(由輸入裝置完成)
  2. 能夠長期記憶程式、資料、中間結果及最終運算結果的能力(由儲存器完成)
  3. 能夠具備算術、邏輯運算和資料傳送等資料加工處理的能力(由運算器、控制器完成)
  4. 能夠按照要求將處理結果輸出給使用者(由輸出裝置完成)

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

我們可以看到,儲存器和CPU是分開的,這就導致一個問題:CPU和儲存器速率之間的問題無法調和。因為CPU是高速運算的,處理速率極快,而儲存器沒有CPU快,到CPU的資料傳輸速度慢,這會導致CPU經常空轉等待資料傳輸,這樣子是非常浪費資源的。

既然我們都知道了馮諾依曼體系存在的效能瓶頸,那麼,如何解決呢?

現代計算機的結構

現代計算機在馮諾依曼體系結構基礎上進行了修改,解決了CPU和儲存裝置之間的效能差異問題。下面是現代計算機的結構示意圖:

可以看到,跟前面不一樣的是,運算器、控制器和儲存器組成了現代計算機的CPU。

儲存器,從廣義上,可以理解為儲存資料的介質,包括磁帶和硬碟。但是,這裡的儲存器主要是指圍繞CPU的高速裝置,包括暫存器和記憶體。現代計算機的結構,可以理解為以儲存器為核心的結構。

關於儲存器,還有很多需要理解的知識,我們會在後續文章裡詳細介紹。

總結

這一節,我們需要了解馮諾依曼體系的含義和它是如何產生的,還需要了解現代計算機的結構和特點以及它解決了什麼問題。

相關推薦

程式設計必備基礎知識|計算機組成原理(03)計算機體系結構

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗

程式設計必備基礎知識|計算機組成原理(02)計算機的分類

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗

程式設計必備基礎知識|計算機組成原理(06)計算機的字元編碼集

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗

程式設計必備基礎知識|計算機組成原理(07)計算機的匯流排

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗

程式設計必備基礎知識|計算機組成原理(08)儲存器

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗

程式設計必備基礎知識|計算機組成原理(09)CPU的控制器和運算器

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗

計算機組成原理——匯流排補充地址匯流排、資料匯流排、定址能力、字長及cpu位數等概念之間的關係

地址匯流排決定了CPU的定址能力;資料匯流排的寬度與字長及CPU位數一致。 詳細解釋見下文: 1.地址匯流排與定址能力 要存取資料或指令就要知道資料或指令存放的位置,地址暫存器儲存的就是CPU當前要存取的資料或指令的地址,該地址是由地址匯流排傳輸到地址暫存器上的。

計算機組成原理(三)儲存器的層次結構

組成原理(三)儲存器的層次結構 第三章 儲存器的層次結構 3.1 儲存器分類 按儲存介質分類 (1)半導體儲存器:  &

計算機組成原理】第一章 計算機系統概論

1.1 計算機系統簡介 1.1.1 計算機的軟硬體概念 計算機組成概覽: 1.1.2 計算機系統的層次結構 物理角度: 程式設計師角度: 系統複雜性管理的方法之一:抽象 區別兩點: 計算

計算機組成原理學習筆記1.計算機系統概論

課程:《計算機組成原理》哈工大     計算機系統: 硬體:計算機主體,如主機,外設等 軟體:具有各類特殊功能的資訊(程式)   軟體: 系統軟體:用來管理整個計算機系統 語言處理程式 作業系統 服務性程式 資料庫管理系統 網路軟體

計算機組成原理(6)---計算機運算方法(未完成)

導讀 1.無符號數與有符號數 2.數的定點表示和浮點表示 3.定點運算(移位,加減,乘除) 無符號數與有符號數 整數原碼 +1110 -> 0,1110 -1110->1,1110 小數原碼 +0.1101->0.1101 -0.1101->1.11

計算機組成原理知識點(第一章:計算機系統概論)

** 第一章:計算機系統概論 ** 1.計算機軟硬體概念 軟體: 由人們事先編織的具有各類特殊功能的程式組成. 分為兩大類: 系統軟體和應用軟體. 系統軟體就是使系統資源得到合理排程, 高

計算機組成原理(1)-計算機系統概述

馮·諾依曼設計思想 馮·諾依曼設計思想可以簡要地概括為以下三點: (1) 計算機應包括運算器、儲存器、控制器、輸入和輸出裝置五大基本部件。 (2) 計算機內部應採用二進位制來表示指令和資料。每條指令一般具有一個操作碼和一個地址碼。其中,操作碼錶示運算性質,地址碼指出運算元在

計算機組成原理 運算方法定點數加減

定點數加減 目前計算機普遍使用補碼實現定點數的加減運算。 1.加減運算方法: 根據補碼的設計規則,任意的絕對值相同的負數和正數,負數是正數的反碼加1,所以絕對值相同的負數和正數相加,剛剛好結果就是為全0(最高位進一位,拋棄)。然後對照下補碼錶,可以發現基於

計算機組成原理實驗二RAM實驗

一、實驗專案名稱:RAM實驗 二、實驗目的: 瞭解半導體靜態隨機讀寫儲存器RAM的工作原理及其使用方法。 掌握半導體儲存器的字、位擴充套件技術。 三、實驗內容 ◆採用1K x 4 的晶片,構成1K x 8的儲存器。 ◆選擇五個不連續的存貯單元地址,分別存入不同內容

計算機組成原理基礎知識-總線

異步 數據信息 兩個 定時 共享 信號線 位數 控制線 線性 二.系統總線 --計算機系統五大部件互連的方式有兩種:   分散連接:各部件之間使用單獨的連線   總線連接:將各部件連到一組公共信息傳輸線上 --總線:是連接多個部件的信息傳輸線,是各部件共享的傳輸介質   特

計算機組成原理基礎知識-概述

通過 div post 分享 應用軟件 特定 二進制表示 中間 inf 一、概述 --計算機系統由“硬件”和“軟件”兩大部分組成。 --計算機的軟件又可以分為兩大類--系統軟件和應用軟件(又稱系統程序和應用程序)。 --多級層次結構的計算機系統:    -- 馮-諾依

計算機組成原理基礎知識-運算方法

移位 配置 減法 一個 乘除 求反 計算 機器數 邏輯 五.計算機的運算方法 --在計算機中參與運算的數有兩大類:無符號數和有符號數   無符號數:沒有符號的數   有符號數     機器數與真值:機器中:0表示正,1表示負     原碼表示法:把真值的正負用01表示   

計算機組成原理基礎知識-存儲器

cache 性能 ram 問題 和數 刷新 方式 周期表 inf 三.存儲器 --存儲器是計算機系統的記憶設備,用來存放程序和數據 --存儲器的分類 存儲器速度、容量和位價的關系 --主存儲器   -主存的技術指標:主要是存儲容量存儲速度     存儲容量:主存能存放的

Python基礎班---第一部分(基礎)---Python基礎知識---計算機組成原理

什麼是計算機? 計算機(computer)俗稱電腦,是現代一種用於高速計算的電子機器,可以進行數值計算,又可以進行邏輯判斷,還具有儲存記憶功能,且能夠按照程式的執行,自動、高速處理資料。 計算機是由什麼組成的? 一個完整的計算機系統,是由硬體系統和軟體系統兩大部分組成的。 一、硬體系統: 主要分為主