計算系統基礎(一)

寫在開頭

   接下來一系列博客將作爲一個初學者對整體計算機系統的理解與概括,主要作爲個人學習總結歸納使用,若能幫助初學者對計算機有整體瞭解,自然再好不過。

參考用書:南京大學《計算系統基礎》

一、計算機整體結構

“計算機”意味着什麼?最直觀的理解:它是一個能夠做運算的機器,但我們知道,與計算器相比,它又能夠做到用數字去進行各種各樣的活動,以至影響現實世界。而做到這一點,必須有一個嚴謹的系統去支持它在一定範圍內實現各種各樣的可能。

美籍匈牙利數學家馮·諾伊曼於1946年提出存儲程序原理,把程序本身當作數據來對待,程序和該程序處理的數據用同樣的方式儲存,這種思想被沿用至今,應用在每一臺計算機上,也就是著名的馮·諾依曼體系結構

   然而對於我們來說,馮·諾依曼體系結構仍然不足以讓初學者對它有清晰的認知,據此,《計算系統基礎》一書給出瞭如下的計算機結構圖:

計算系統基礎(一)

  1. 基於這張結構圖,我們可以從上至下對計算機的工作原理進行大致闡述:人們希望解決某種類型的問題,便設計出相應的程序,類似的“程序”其實我們在高中數學時已經接觸過,即程序流程圖:
    計算系統基礎(一)

  2. 但是,這樣的程序無法讓機器“讀懂”,爲了便於我們理解機器“說話”,同時讓機器聽懂我們“說話”,分別設計出了高級語言與低級語言,同時爲了支持機器對語言的讀取過程,需要操作系統的支持。值得一提的是,高級語言有C,JAVA等,他們與低級語言的明顯區別之一就是接近於人類語言,而低級語言則相對接近於機器預設好的指令格式,契合計算機中被規定好的指令集結構

  3. 爲什麼要預設定計算機的基礎操作?爲什麼要規定一個指令集結構?因爲計算機能聽懂的“拼音”只有兩種,即1和0。對計算機的基礎操作(如加減乘除、高中物理中接觸到的或異非)進行規定後,我們就能在此基礎上設計程序語言,方便人類邏輯思維對計算機的理解。

  4. 接下來,完成了對計算機操作的設計,我們需要在硬件層面實現它,由於底層電路的複雜,《計算系統基礎》選擇從最基礎的元件逐步過度到微處理器與指令集結構。最基礎的元件一般由半導體構成,它們所能實現的功能一般只有兩種:輸入1(有電壓)時通路,或輸入0(無電壓)時通路。我們不難發現,元件對1與0的運用恰好對應了計算機的“拼音”。在實際操作中,這樣設計的原因考慮了實際情況:實際電路中由於不可抗力的種種因素,有可能會出現斷路中有零點幾伏的電壓,因此爲了保證計算機底層電路的準確性不會受到各種因素的干擾,在計算機的思路,我們選擇將靠近0V視爲0,其餘情況均視爲1。並由此產生以高中物理中接觸到的異門或門與門爲基礎的邏輯電路。邏輯電路組成的微處理器根據特定的設計從物理層面上實現指令集結構所規定的計算方法,並逐步向上,實現程序語言的執行,實現問題的解決。

雖然在我們初學者眼中,這樣的計算系統過於繁雜,但它成功地將每個劃分的區域完全分隔開。換句話說,我們使用電腦解決問題,並不需要知道程序語言、指令集結構等。而且,在今後對計算機系統的進一步學習中,我們會真正意識到這樣一個系統的重要性。

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