現代計算機已經發展的非常複雜,要理解計算機的運行原理都已經變得異常艱難,雖說我們無法親自去制造他,但我們可以了解下計算機系統是怎麼從0發展而來的。
邏輯門邏輯門是計算機的基礎元件,通過它可以完成邏輯運算(也稱布爾運算),這類運算輸入輸出都隻有0和1。
執行“與”操作,兩個輸入一個輸出,隻有當兩個輸入都為1時輸出才為1,其它情況都為0。
執行“或”操作,兩個輸入一個輸出,隻要兩個輸入其中一個為1輸出就為1。
執行“非”操作,一個輸入一個輸出,取輸入信号的對立信号。
通過以上三種基本的邏輯門就能實現所有邏輯運算,計算機的本質就是由這三種基本門實現,通過成千上萬個邏輯門實現計算。
加法加法是所有一切運算的基礎,我們看怎麼通過前面說到的邏輯門實現加法運算。計算機與人類的計算方式不同,人類常用十進制,而計算機擅長用二進制,計算機計算時以二進制進行。
異或門(XOR)由三種最基礎的門組合得到,異或門結構如下。
簡記為,
組合成半加器,如下,
記為,
半加器隻能處理兩個二進制一位數的相加,并且不能處理前面計算的進位。為了處理進位,可以将兩個半加器和一個或門連接,組成全加器,如下,
全加器隻能處理三個二進制一位數(其中一位是進位輸入)的相加。如果要實現n位二進制數據的相加,就需要使用n個全加器連接起來。
之所以說加法是一切運算的基礎,是因為數學家已經證明了能通過加法能實現其它運算,比如乘法、除法、平方、開方、對數等等。
機器指令雖說有了邏輯運算已經能幫助人類完成計算了,但是人類直接這樣使用是非常不友好而且低效的,比如要做(11 22 33) (44 55)操作時,我們需要分别先輸入三個數并相加,然後自己手動記錄下中間結果,類似地需要将另外一個中間結果記錄下來,然後再一次輸入兩個數執行加法運算。
為了讓上述過程能自動化,人類搞來了内存,它可以用來存放數據,可以把内存看成很多塊,每塊都對應有一個地址,通過地址可以對數據進行存儲、讀取和修改。這裡把相關數據都已放到内存中。
大緻執行步驟如下:
讀取000地址的數到加法器 把001地址的數加到加法器 把002地址的數加到加法器 把加法器的數保存到003地址指向位置 讀取004地址的數到加法器 把005地址的數加到加法器 把加法器的數保存到006地址指向位置 讀取003地址的數到加法器 把006地址的數加到加法器 停止加法器。
這個過程涉及到四個操作,讀取(load)、保存(store)、加(add)和停止(halt)。并且也可以對這些操作進行編碼,比如可以分别用100、101、102、103表示。上述過程可用下面指令操作。
load 000 add 001 add 002 store 003 load 004 add 005 store 006 load 003 add 006 halt
對應指令編碼為,
100 000 102 001 102 002 101 003 ... 103
有了如上指令,将它們保存到内存中,這樣計算機就能夠一條條往下執行,不需要人工介入,直到運行到停止指令才結束,整個過程實現自動化。
以上以加法運算過程簡單介紹指令運算過程,而真正的計算機需要更多的指令集,這也需要更多的硬件來支持。對于計算機系統的指令集的設計有兩種思路:①設計精簡的指令集,然後複雜的計算通過編程實現。②設計複雜的指令集,直接通過硬件實現複雜的指令,這種運算速度更快,但增加了硬件的複雜度和成本。
寄存器實際硬件設計中,因為計算過程中經常涉及到一些常用的數進行操作,于是專門設計了寄存器用來對需要中轉的數據進行暫存,這類暫存方式速度遠超内存方式,速度很快以至于能夠很好匹CPU的執行。類似于前面加法器将計算結果保存在加法器中。
下面兩張圖第一張體現不同存儲直接的速度比較,第二張是一些指令例子。
編程語言
通過邏輯門的設計和并實現各類運算指令,這樣一個計算機系統就設計完成了。計算機運行時就能通過讀取存放在内存中的程序指令,然後執行各種計算和操作。
類似100 000的機器指令對于人類來說很難記住,于是就被編碼成人類容易記住的形式,比如load 000,即彙編語言。但彙編語言對人類可能還不夠友好,比如下面,
左邊的是高級語言C語言,而右邊的是彙編語言,可以看到雖然彙編已經比機器語言方便很多了,但是如果比起高級語言,彙編還是太麻煩低效,這也是高級語言誕生的原因。
這樣一來引入了高級語言,同時也需要額外的一個編譯器将高級語言翻譯成彙編語言。那麼整個過程就為:高級語言->彙編語言->機器指令->CPU執行。
操作系統從邏輯門到編程語言的計算機系統幹的事都是計算,加減乘除等,假如單單隻能用來做計算估計就不會有這麼多人沉迷電腦,所以随着計算機的發展它有了屏幕,有了各種音頻輸入輸出,有了鍵盤鼠标,這樣計算機就能做更多事情,比如遊戲電影。
給計算機系統增加了這麼多設備,要與這些設備交互就需要各種驅動程序,為方便将它們連接起來協同工作,出現了操作系統,通過操作系統能将底層的硬件不同實現屏蔽掉,而且它還提供了很多的系統調用來實現各種功能。
總結
以上介紹了計算機的相關原理。從邏輯門到機器指令,再到寄存器,再到編程語言,最後到操作系統,計算機系統從0發展成如今超級複雜的系統。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!