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

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

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

目的是:服務器

  • 幫助你們造成計算機知識的結構體系
  • 幫助你們理解計算機底層原理
  • 幫助你們在工做實踐中借鑑其中的優秀設計

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

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

馮諾依曼體系

馮諾依曼體系,用一句話來歸納就是:將程序指令和數據一塊兒存儲的計算機設計概念結構。學習

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

這樣就很坑爹了啊。若是說計算機只能用來打遊戲,不能用來寫代碼,或者說只能用來寫代碼,不能用來玩遊戲,那麼咱們就不能先玩一會遊戲再寫一會代碼了,這樣子是很是不合理的。因而馮諾依曼就想着將程序存儲起來,而後在設計底層硬件的時候,再也不是設計專有的電路,而是設計一個通用電路,當咱們須要運行某種程序的時候,咱們先把這段程序翻譯成電路可以理解的語言,而後讓通用電路去執行相關的邏輯。計算機網絡

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

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

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

  1. 存儲器:用來存放程序和數據
  2. 控制器:用來控制程序的流轉和數據的輸入運行,以及處理運算結果
  3. 運算器:主要運行算數運算和邏輯運算,並將中間結果暫存到運算器中
  4. 輸入設備:用來將人們熟悉的信息形式轉換爲機器可以識別的信息形式,常見的有鍵盤,鼠標等
  5. 輸出設備:能夠將機器運算結果轉換爲人們熟悉的信息形式,如打印機輸出,顯示器輸出等

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

  1. 可以把須要的程序和數據送至計算機中(由輸入設備完成)
  2. 可以長期記憶程序、數據、中間結果及最終運算結果的能力(由存儲器完成)
  3. 可以具有算術、邏輯運算和數據傳送等數據加工處理的能力(由運算器、控制器完成)
  4. 可以按照要求將處理結果輸出給用戶(由輸出設備完成)

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

咱們能夠看到,存儲器和CPU是分開的,這就致使一個問題:CPU和存儲器速率之間的問題沒法調和。由於CPU是高速運算的,處理速率極快,而存儲器沒有CPU快,到CPU的數據傳輸速度慢,這會致使CPU常常空轉等待數據傳輸,這樣子是很是浪費資源的。

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

現代計算機的結構

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

能夠看到,跟前面不同的是,運算器、控制器和存儲器組成了現代計算機的CPU。

存儲器,從廣義上,能夠理解爲存儲數據的介質,包括磁帶和硬盤。可是,這裏的存儲器主要是指圍繞CPU的高速設備,包括寄存器和內存。現代計算機的結構,能夠理解爲以存儲器爲核心的結構。

關於存儲器,還有不少須要理解的知識,咱們會在後續文章裏詳細介紹。

總結

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

END

相關文章
相關標籤/搜索