1. 程式人生 > >跟我到CPU內部去看1+1=2是如何執行的!(2)

跟我到CPU內部去看1+1=2是如何執行的!(2)

         1  電晶體是CPU中的核心部件.

         2 可以通過控制電晶體並對其進行邏輯組合便可以計算.

那麼1+1=2是如何通過電晶體來進行呢?

要知道1+1=2如何運作,首先需要知道12在計算機中如何通過電晶體來表示呢?

在上文中我們已經提到,一個小燈泡的狀態可以通過兩個電晶體(開關)進行邏輯組合來控制.現在你可以這樣理解:

一個小燈泡的狀態代表著計算機中的兩個數值:亮著表示1 關閉表示0

現在我們可以拿出四個小燈泡,並且把四個小燈泡排成一排,如果你稍微懂一些二進位制的話,現在已經很清楚了.我們可以通過這四個小燈泡的開關組合最多能夠表示我們常用數制即十進位制的16

個數字(也就是24次方).

現在就會有一下情況出現:

1四個小燈泡全部熄滅:       二進位制:0000   十進位制:0

2從右面數第一個小燈泡開啟,其他關閉:   二進位制:0001十進位制:1

3從右面數第二個小燈泡開啟,其他關閉二進位制:0010   十進位制:2

依次類推,直到全部的四個小燈泡都開啟:二進位制:1111   十進位制15

以上過程可以通過下圖來進行概括:

計算機生成了可選文字: 月.098761勻43丹乙月.0月.月.00000nU0000―丁十豐―丁十十工―丁十牛上土!1、0、1、1(,1:01:O:,,:00,:i,010:O宕10111;1:1011110;101101,};011010}00'1'1:00,O0001:'00'00';留谷曾曾

那麼1+1=2如果用上圖進行表示的話可以得到下面的示例圖:

計算機生成了可選文字: 月.月.J『.月.曰.〕戶.婦0000月.月.月.月.J『.J飛.翻.』翻r』月.月.月.月.月.月.月.月.曰.』翻.〕月.月.月.月.0:0:11丁才不而0;0!0:10000QQ日Q月.月.月.月.00011O雲000雲QQQQ④日Q公

好了,至此為止我們已經知道1 2 還有其他的數值是如何在計算機中通過電晶體來表示,但具體"+"的這個過程是如何執行呢?

現在我們開始進行下一步的理解

.

把一個電晶體抽象成一個開關,一個開關可以表示數字10,我們可以通過連線兩個開關和兩個燈泡通過一定的結構,開關用來表示輸入0或者1 而兩個燈泡表示通過特殊結構的處理所得到的結果,這個特殊結構便是"加法器".加法器裡面都是有各種邏輯閘來構成的.這些邏輯閘包括:"","",""與非",兩個開關通過加法器相連的邏輯圖如下

計算機生成了可選文字: H日IfAddef翩O.栩一.』一.一.』口且.}一.}.一日.}一月.一

上圖只是一個兩個開關的相加,但是計算機要處理的是龐大的資料,這就需要將一個個的開關進行邏輯的相連線,變形成了下面的圖,通過下圖的方式將一個個的開關和燈泡進行相連.

計算機生成了可選文字: HalfAdderl泛\{朋一/一AND.,日OR長H日!fAdd6r卜‘八吒角八囚O目價目口.,日ANO〔用

如果有兩排八個開關通過加法器相連,沒有一個開關的話.從巨集觀的角度來看的話,便是下圖所示:

計算機生成了可選文字: 回回圈0。回回日。。回回圈0。回回圈0。回尚圖日向U回回囚品》回回圈印。回回圃問。0『0009000二0009000

而我們此次的主角:1+1=2的運作流程便是下圖所示

計算機生成了可選文字: .曰日.10000000,回回回回回回回1D0000O01回回回回回回回}回+圈日日圈圈日瞥曾曾曾曾曾幾BOO,決dd陌四.,01CO呂.栩八BC.,,0決山如dA卜10CO,u舊2200000010曾

此篇部落格解決在準備軟體設計師的過程中的疑惑.通過對CPU運作原理的探索,再一次理解了大道至簡的道理,我們看似複雜的CPU,看似複雜的很多事物,歸根到底都是一些特別簡單的元素,而也就是這些"元素"通過各種組合,變換,便形成了複雜的運算,解決各種複雜的問題.

想起了老子<<道德經>>裡的一段話:“道生一,一生二,二生三,三生萬物,萬物負陰而抱陽,衝氣以為和。”