成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

重學(xué)計算機組成原理(十一)- 門電路的"千里傳音"

Shihira / 1963人閱讀

摘要:公元前年,在雅典附近的馬拉松海邊,發(fā)生了波斯和希臘之間的希波戰(zhàn)爭。因為電報員要熟記每一個字母對應(yīng)的摩爾斯電碼,并且需要快速按鍵來進行輸入。

人用紙和筆來做運算,都是用十進制,直接用十進制和我們最熟悉的符號不是最簡單么?

為什么計算機里我們最終要選擇二進制呢?

來看看,計算機在硬件層面究竟是怎么表示二進制的,你就會明白,為什么計算機會選擇二進制。

1 怎么做到“千里傳書”
馬拉松的故事相信你聽說過。公元前490年,在雅典附近的馬拉松海邊,發(fā)生了波斯和希臘之間的希波戰(zhàn)爭。雅典和斯巴達(dá)領(lǐng)導(dǎo)的希臘聯(lián)軍勝利之后,雅典飛毛腿菲迪皮德斯跑了歷史上第一個馬拉松,回雅典報喜。這個時候,人們在遠(yuǎn)距離報信的時候,采用的是派人跑腿,傳口信或者送信的方式。

但是,這樣靠人傳口信或者送信的方式,實在是太慢了

在軍事用途中,信息能否更早更準(zhǔn)確地傳遞出去經(jīng)常是事關(guān)成敗的大事

所以我們看到中國古代的軍隊有“擊鼓進軍”和“鳴金收兵”,通過打鼓和敲鉦發(fā)出不同的聲音,來傳遞軍隊的號令。

如果我們把軍隊當(dāng)成一臺計算機,那“金”和“鼓”就是這臺計算機的“1”和“0”

我們可以通過不同的編碼方式,來指揮這支軍隊前進、后退、轉(zhuǎn)向、追擊等等。

“金”和“鼓”比起跑腿傳口信,固然效率更高了,但是能夠傳遞的范圍還是非常有限,超出個幾公里恐怕就聽不見了。于是,人們發(fā)明了更多能夠往更遠(yuǎn)距離傳信的方式,比如海上的燈塔、長城上的烽火臺。因為光速比聲速更快,傳的距離也可以更遠(yuǎn)。

亞歷山大港外的法羅斯燈塔,位列世界七大奇跡之一,可惜現(xiàn)在只剩下遺跡了??梢娙祟惿鐣茉缇蛯W(xué)會使用類似二進制信號的方式來傳輸信息


但是,這些傳遞信息的方式都面臨一個問題,就是受限于只有“1”和“0”這兩種信號,不能傳遞太復(fù)雜的信息,那電報的發(fā)明就解決了這個問題。

從信息編碼的角度來說,金、鼓、燈塔、烽火臺類似電報的二進制編碼

電報傳輸?shù)男盘栍袃煞N,一種是短促的點信號(dot信號),一種是長一點的劃信號(dash信號)

我們把“點”當(dāng)成“1”,把“劃”當(dāng)成“0”。這樣一來,我們的電報信號就是另一種特殊的二進制編碼了

電影里最常見的電報信號是“SOS”,這個信號表示出來就是 “點點點劃劃劃點點點”。

比起燈塔和烽火臺這樣的設(shè)備,電報信號有兩個明顯的優(yōu)勢

信號的傳輸距離迅速增加

電報本質(zhì)上是通過電信號來進行傳播的,所以從輸入信號到輸出信號基本上沒有延時

輸入信號的速度加快了很多

電報機只有一個按鈕,按下就是輸入信號,按的時間短一點,就是發(fā)出了一個“點”信號
按的時間長一些,就是一個“劃”信號
一個手指,就能快速發(fā)送電報。

一個摩爾斯電碼的電報機

制造一臺電報機也非常容易

電報機本質(zhì)上就是一個“蜂鳴器+長長的電線+按鈕開關(guān)”

蜂鳴器裝在接收方手里,開關(guān)留在發(fā)送方手里。雙方用長長的電線連在一起。當(dāng)按鈕開關(guān)按下的時候,電線的電路接通了,蜂鳴器就會響。短促地按下,就是一個短促的點信號;按的時間稍微長一些,就是一個稍長的劃信號。

有了電池開關(guān)和鈴鐺,你就有了最簡單的摩爾斯電碼發(fā)報機

2 理解繼電器,給跑不動的信號+1s

有了電報機,只要鋪設(shè)好電報線路,就可以傳輸我們需要的訊息了

但是這里面又出現(xiàn)了一個新的挑戰(zhàn),就是隨著電線的線路越長,電線的電阻就越大

當(dāng)電阻很大,而電壓不夠的時候,即使你按下開關(guān),蜂鳴器也不會響。

你可能要說了,我們可以提高電壓或者用更粗的電線,使得電阻更小,這樣就可以讓整個線路鋪得更長一些

但是這個再長,也沒辦法從北京鋪設(shè)到上海吧

要想從北京把電報發(fā)到上海,我們還得想些別的辦法。

對于電報來說,電線太長了,使得線路接通也沒有辦法讓蜂鳴器響起來

那么,我們就不要一次鋪太長的線路,而把一小段距離當(dāng)成一個線路,也和驛站建立一個小電報站。我們在小電報站里面安排一個電報員,他聽到上一個小電報站發(fā)來的信息,然后原樣輸入,發(fā)到下一個電報站去

這樣,我們的信號就可以一段段傳輸下去,而不會因為距離太長,導(dǎo)致電阻太大,沒有辦法成功傳輸信號。為了能夠?qū)崿F(xiàn)這樣接力傳輸信號,在電路里面,工程師們造了一個叫作繼電器(Relay) 的設(shè)備。

中繼,其實就是不斷地通過新的電源重新放大已經(jīng)開始衰減的原有信號

事實上,這個過程中,我們需要在每一階段原樣傳輸信號,是不是可以設(shè)計一個設(shè)備來代替這個電報員?

相比使用人工聽蜂鳴器的聲音,來重復(fù)輸入信號,利用電磁效應(yīng)和磁鐵,來實現(xiàn)這個事情會更容易。

我們把原先用來輸出聲音的蜂鳴器,換成一段環(huán)形的螺旋線圈,讓電路封閉通上電。因為電磁效應(yīng),這段螺旋線圈會產(chǎn)生一個帶有磁性的電磁場。我們原本需要輸入的按鈕開關(guān),就可以用一塊磁力稍弱的磁鐵把它設(shè)在“關(guān)”的狀態(tài)。這樣,按下上一個電報站的開關(guān),螺旋線圈通電產(chǎn)生了磁場之后,磁力就會把開關(guān)“吸”下來,接通到下一個電報站的電路。

如果我們在中間所有小電報站都用這個“螺旋線圈+磁性開關(guān)”的方式,來替代蜂鳴器和普通開關(guān),而只在電報的始發(fā)和終點用普通的開關(guān)和蜂鳴器,我們就有了一個拆成一段一段的電報線路,接力傳輸電報信號。這樣,我們就不需要中間安排人力來聽打電報內(nèi)容,也不需要解決因為線纜太長導(dǎo)致的電阻太大或者電壓不足的問題了。我們只要在終點站安排電報員,聽寫最終的電報內(nèi)容就可以了。這樣是不是比之前更省事了?

事實上,繼電器還有一個名字就叫作電驛,這個“驛”就是驛站的驛,可以說非常形象了

這個接力的策略不僅可以用在電報中,在通信類的科技產(chǎn)品中其實都可以用到。

比如說,你在家里用WiFi,如果你的屋子比較大,可能某些房間的信號就不好。你可以選用支持“中繼”的WiFi路由器,在信號衰減的地方,增加一個WiFi設(shè)備,接收原來的WiFi信號,再重新從當(dāng)前節(jié)點傳輸出去。這種中繼對應(yīng)的英文名詞和繼電器是一樣的,也叫Relay。

再比如說,我們現(xiàn)在互聯(lián)網(wǎng)使用的光纜,是用光信號來傳輸數(shù)據(jù)。隨著距離的增長、反射次數(shù)的增加,信號也會有所衰減,我們同樣要每隔一段距離,來增加一個用來重新放大信號的中繼。

有了繼電器之后,我們不僅有了一個能夠接力傳輸信號的方式,更重要的是,和輸入端通過開關(guān)的“開”和“關(guān)”來表示“1”和“0”一樣,我們在輸出端也能表示“1”和“0”了。

輸出端的作用,不僅僅是通過一個蜂鳴器或者燈泡,提供一個供人觀察的輸出信號,通過“螺旋線圈 + 磁性開關(guān)”,使得我們有“開”和“關(guān)”這兩種狀態(tài),這個“開”和“關(guān)”表示的“1”和“0”,還可以作為后續(xù)線路的輸入信號,讓我們開始可以通過最簡單的電路,來組合形成我們需要的邏輯。

通過這些線圈和開關(guān),我們也可以很容易地創(chuàng)建出 “與(AND)”“或(OR)”“非(NOT)”這樣的邏輯。我們在輸入端的電路上,提供串聯(lián)的兩個開關(guān),只有兩個開關(guān)都打開,電路才接通,輸出的開關(guān)也才能接通,這其實就是模擬了計算機里面的“與”操作。

我們在輸入端的電路,提供兩條獨立的線路到輸出端,兩條線路上各有一個開關(guān),那么任何一個開關(guān)打開了,到輸出端的電路都是接通的,這其實就是模擬了計算機中的“或”操作。

當(dāng)我們把輸出端的“螺旋線圈+磁性開關(guān)”的組合,從默認(rèn)關(guān)掉,只有通電有了磁場之后打開,換成默認(rèn)是打開通電的,只有通電之后才關(guān)閉,我們就得到了一個計算機中的“非”操作。輸出端開和關(guān)正好和輸入端相反。這個在數(shù)字電路中,也叫作反向器(Inverter)

反向器的電路,其實就是開關(guān)從默認(rèn)關(guān)閉變成默認(rèn)開啟而已

與、或、非的電路都非常簡單,要想做稍微復(fù)雜一點的工作,我們需要很多電路的組合。不過,這也彰顯了現(xiàn)代計算機體系中一個重要的思想,就是通過分層和組合,逐步搭建起更加強大的功能。

回到我們前面看的電報機原型,雖然一個按鈕開關(guān)的電報機很“容易”操作,但是卻不“方便”操作。因為電報員要熟記每一個字母對應(yīng)的摩爾斯電碼,并且需要快速按鍵來進行輸入。一旦輸錯很難糾正。但是,因為電路之間可以通過與、或、非組合完成更復(fù)雜的功能,我們完全可以設(shè)計一個和打字機一樣的電報機,每按下一個字母按鈕,就會接通一部分電路,然后把這個字母的摩爾斯電碼輸出出去。

雖然在電報機時代,我們沒有這么做,但是在計算機時代,我們其實就是這樣做的。我們不再是給計算機“0”和“1”,而是通過千萬個晶體管組合在一起,最終使得我們可以用“高級語言”,指揮計算機去干什么。

3 總結(jié)延伸

可以說,電報是現(xiàn)代計算機的一個最簡單的原型。它和我們現(xiàn)在使用的現(xiàn)代計算機有很多相似之處。我們通過電路的“開”和“關(guān)”,來表示“1”和“0”。就像晶體管在不同的情況下,表現(xiàn)為導(dǎo)電的“1”和絕緣的“0”的狀態(tài)。

我們通過電報機這個設(shè)備,看到了如何通過“螺旋線圈+開關(guān)”,來構(gòu)造基本的邏輯電路,我們也叫門電路

一方面,我們可以通過繼電器或者中繼,進行長距離的信號傳輸

另一方面,我們也可以通過設(shè)置不同的線路和開關(guān)狀態(tài),實現(xiàn)更多不同的信號表示和處理方式,這些線路的連接方式其實就是我們在數(shù)字電路中所說的門電路。而這些門電路,也是我們創(chuàng)建CPU和內(nèi)存的基本邏輯單元。我們的各種對于計算機二進制的“0”和“1”的操作,其實就是來自于門電路,叫作組合邏輯電路。

4 推薦閱讀

《編碼:隱匿在計算機軟硬件背后的語言》第6~11章,是一個很好的入門材料,可以幫助深入理解數(shù)字電路,值得你花時間好好讀一讀

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76282.html

相關(guān)文章

  • 重學(xué)算機組成原理(五)- "旋轉(zhuǎn)跳躍"指令實現(xiàn)

    摘要:在中央處理器的控制部件中,包含的寄存器有指令寄存器和程序計數(shù)器。這條指令的第一個操作數(shù),代表累加寄存器在中央處理器中,累加器是一種寄存器,用來儲存計算產(chǎn)生的中間結(jié)果。第二個操作數(shù)則是進制的的表示。 showImg(https://ask.qcloudimg.com/http-save/1752328/57mlmnq3i5.png); CPU執(zhí)行的也不只是一條指令,一般一個程序包含很多條...

    siberiawolf 評論0 收藏0
  • 重學(xué)算機組成原理(十)- "燙燙燙"亂碼由來

    摘要:而大寫字母,就是第個,也就是二進制的,對應(yīng)的十六進制表示就是。在中文世界里,最典型的就是手持兩把錕斤拷,口中疾呼燙燙燙的典故。既然今天要徹底搞清楚編碼知識,我們就來弄清楚錕斤拷和燙燙燙的來龍去脈。參考深入淺出計算機組成原理 showImg(https://image-static.segmentfault.com/206/872/2068726052-5d5922b2effb9_art...

    wenzi 評論0 收藏0
  • 重學(xué)算機組成原理(二)- 制定學(xué)習(xí)路線,攀登“性能”之巔

    摘要:計算機組成中的大量原理和設(shè)計,都對應(yīng)著性能這個詞。時間的倒數(shù)性能計算機的性能,其實和體力勞動很像,好比是我們要搬東西。對于計算機的性能,我們需要有個標(biāo)準(zhǔn)來衡量。花的時間越少,自然性能就越好。 0 學(xué)習(xí)路線的知識點概括 showImg(https://segmentfault.com/img/remote/1460000020031616?w=3832&h=2540); 學(xué)習(xí)計算機組成原...

    DrizzleX 評論0 收藏0
  • 重學(xué)算機組成原理(一)- 馮·諾依曼體系結(jié)構(gòu)

    摘要:馮諾依曼體系結(jié)構(gòu)示意圖總結(jié)馮諾依曼體系結(jié)構(gòu)確立了我們現(xiàn)在每天使用的計算機硬件的基礎(chǔ)架構(gòu)。因此,學(xué)習(xí)計算機組成原理,其實就是學(xué)習(xí)和拆解馮諾依曼體系結(jié)構(gòu)。 showImg(https://ask.qcloudimg.com/http-save/1752328/g6cdrb45jg.png); 1 計算機的基本硬件組成 早期,DIY一臺計算機,要先有三大件 CPU 內(nèi)存 主板 1.1 C...

    Yujiaao 評論0 收藏0
  • 重學(xué)算機組成原理(四)- 玩玩紙帶編程

    摘要:匯編器是怎么把對應(yīng)的匯編代碼,翻譯成為機器碼的??偨Y(jié)打孔卡,其實就是一種存儲程序型計算機。推薦閱讀了解的指令集參看計算機組成與設(shè)計軟硬件接口第版的小節(jié)參考深入淺出計算機組成原理 你在學(xué)寫程序的時候,有沒有想過,古老年代的計算機程序是怎么寫出來的?showImg(https://ask.qcloudimg.com/http-save/1752328/fpfs9776q8.png); 當(dāng)...

    lentrue 評論0 收藏0

發(fā)表評論

0條評論

Shihira

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<