本篇文章來看看計算機在硬件層面究竟是怎么表示二進制的,CPU究竟是怎么實現的?通過本文的學習,我們也可以反過來明白為什么計算機會采用二進制了。
開關
我們在生活中,處處都是開關,比如控制燈的開關!
我們可以發現一個很簡單的現象:
- 串聯的開關,只有2個開關都閉合,燈泡才亮。這也就是布爾代數中"邏輯運算與"
- 并聯的開關,只要有1個開關閉合,燈泡就會亮。這也就是布爾代數中"邏輯運算或"
我們以最簡單的2個數,0和1來舉個例子,寫出其布爾代數的真值表:
與 | 結果 | |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
1 | 0 | 0 |
或 | 結果 | |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 1 | 1 |
1 | 0 | 1 |
電報和繼電器
在人類信息傳遞發展的歷史上,長途信息傳遞一直是非常困難的時,當時常見的方式有,比如人騎馬送信,訓練信鴿、點燃烽火,但信息傳遞的效率都非常低效。直到電報的出現,電報思想的正式成形是在19世紀早期,它的讓人類傳遞信息的效率得到極大的提升。
電報利用電的特性來傳遞信息,早期設計復雜且不穩定,傳遞的信息復雜度又比較低,1837年美國人摩爾斯通過電磁感應改良了發報機,并發明了 摩爾斯電碼 。他將電報劃分為2種信號,短促的"點信號"和長一點的"劃信號", 將把“點”當成“1”,把“劃”當成“0”(這不就是二進制嘛),并編寫了個“字典”將字母及數字編碼一一對應,這樣就能傳遞復雜的信息,在未來產生了巨大影響力,意味著現代通信的開始。
由于早期的電報傳輸,需要鋪設電線,但是隨著電線越長,其電阻就越大,電信號常常傳輸過程中被消耗點,這樣接受方就無法接收到信息了。幸運的是,工程師發明了 繼電器 ,其原理就是 接收微弱的信號,然后不斷地通過新的電源重新放大已經開始衰減的原有信號,最后把它增強后發送出去 。
當開關是打開的話,燈泡是不亮的;但當開關是閉合的話, 電流流過圍繞在鐵棒上的線圈,會發生電磁效應,鐵棒就具有了磁性,會將彈簧片吸下來,右邊電路就通了,燈泡就會亮了。這樣通過繼電器,一段段放大信號,電報就能長距離傳輸信息了。
雖然繼電器有放大信號的作用,但和開關一樣繼電器也可以串聯或并聯以執行邏輯中的簡單任務,
繼電器比起普通的開關的優勢在于繼電器無需直接被輸入者控制,可以被其他繼電器控制,這樣就可以組合完成更復雜的操作 。
比如我們可以通過繼電器實現: 當我們閉合開關時,燈泡關閉;當我們打開開關時,燈泡去點亮這種燈泡的狀態和開關的閉合狀態相反的操作,普通開關是無法實現這種操作的。這些電路物理的表象下隱藏的邏輯關系,一直沒有被人發現。
直到1938年,克勞德·香農在麻省理工學院所寫的碩士論文《A Symbolic Analysis of Relay and Switching Circuits》中闡述了繼電器和開關電路中的符號分析之間的關系,他將開關、繼電器、二進制、布爾代數聯系起來。也就是發現 人類可以通過開關和繼電器這些普通的電路,直接就能實現布爾代數各種邏輯運算操作 。這些繼電器的組合被稱為 邏輯門 ,他們構造基本的邏輯電路,也叫 門電路 。
門電路
上面是3種最最基本的門:
- 與門,兩個開關只有同時打開,電流才會通過,燈泡才會亮
- 非門,當開關閉合時,電流會通過,燈泡會亮;開關打開,電流不能通過反而,燈泡熄滅
- 或門,兩個開關中只要有一個打開電流就能通過,燈就會點亮
這些門其實就是一個個"開關"的抽象, 以后我們需要的各種復雜的邏輯都可以通過這3個門來實現,真的是非常奇妙 我們再來看一個常見的門:異或門XOR
-
cpu
+關注
關注
68文章
11003瀏覽量
214987 -
二進制
+關注
關注
2文章
803瀏覽量
42031 -
計算機
+關注
關注
19文章
7603瀏覽量
89735
發布評論請先 登錄
相關推薦
計算機為什么使用二進制來表達

為什么計算機內部進行二進制運算,而不是十進制運算?
關于二進制表示和補碼計算的來龍去脈
計算機究竟是如何理解并執行我們所寫的代碼的呢?

評論