您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>繼電器>

繼電器是如何成為cpu的 - 繼電器是如何成為cpu的

2018年01月26日 10:05 網(wǎng)絡(luò)整理 作者: 用戶評論(0
關(guān)鍵字:繼電器(148698)cpu(211335)

  十四、傳輸門

  下圖所示的傳輸門的作用是:當(dāng)左邊的“~1G”端輸入為0時,左側(cè)的1A4、1A3、1A2、1A1會直接傳輸?shù)接覀?cè)對應(yīng)的1Y*,就像一條線直接從1A*連接到1Y*一樣;當(dāng)左邊的“~1G”端輸入為1時,左側(cè)的1A4、1A3、1A2、1A1都不能傳輸?shù)接覀?cè)對應(yīng)的1Y*,就像從1A*到1Y*的連線被剪斷了一樣。

  注:本文里我做的電路圖片都是GIF格式的,你可以在瀏覽器里看到隨著開關(guān)的開閉,輸入和輸出電路上的燈泡是如何變化的。每個圖上都有(http://bitzhuwei.cnblogs.com)標(biāo)識我的博客地址,不過每個GIF圖的最后一幀都去掉了這個標(biāo)識。這樣,看到一幀沒有標(biāo)識的時候,就知道下一幀將是GIF圖的第一幀了。

  繼電器是如何成為cpu的

  傳輸門的原理很簡單,就是在每個1A*到1Y*之間的連線上放個繼電器而已,如下圖所示。(取自《穿》)

  繼電器是如何成為cpu的

  十五、寄存器

  在上一篇已經(jīng)說明了寄存器的原理,這里僅僅是為了說明“74LS194”這個帶有各種無聊管腳的四位寄存器的用法。將“~CLR”、“S1”和“S0”置為1,“SR”和“SL”置為0,然后,“74LS194”就是一個簡單的四位寄存器了。(本人在multisim12.0里只找到了這個靠譜的四位寄存器,湊合用吧。)

  繼電器是如何成為cpu的

  十六、數(shù)值顯示器

  為了更直觀地看到CPU的運算結(jié)果,我們將使用“DCD_HEX”這個東西。它能夠把輸入的“0101”顯示為“5”,把“1010”顯示為“A”。

  繼電器是如何成為cpu的

  本文還要用一個四位的加法器,直接在下面這個簡陋的CPU里看就好了,不再單獨展示。

  十七、回到頂部(go to top)

  一個簡陋的CPU現(xiàn)在一切就緒,可以開始設(shè)計CPU了!

  CPU包括運算器和控制器兩部分。我們首先做出運算器,然后逐步實現(xiàn)控制器,最后感受一下用機器語言編程的過程。本文實現(xiàn)的CPU雖然功能及其簡陋,但是能夠傳達(dá)出當(dāng)前真實CPU的原理。

  十八、運算器和手動控制器

  現(xiàn)在我們要做的這個CPU,字長是4位,只能做兩個數(shù)的加法。實現(xiàn)了運算器和手動版的控制器的CPU如下圖所示。我們把這個版本稱為version1的CPU。

  繼電器是如何成為cpu的

  上圖中,“Add”是加法器,能執(zhí)行兩個4位數(shù)的加法運算?!癛A”和“TR”是寄存器,“GAA”和“GBA”是傳輸門?!?”“3”“2”“1”用來準(zhǔn)備需要相加的數(shù)據(jù)(0到15),“KTR”“KRA”“KGA”“KGB”是用來控制傳輸門通斷和寄存器脈沖的開關(guān)。

  在上圖所示的GIF動畫中,顯示了“5+1+2+4”這個過程。這個過程可以分為4個步驟:①加載一個數(shù)值(Load);②加上一個數(shù)值(Add);③加上一個數(shù)值(Add);④加上一個數(shù)值(Add)。具體來說,每一個步驟要做的事情是:

  十九、指令內(nèi)容

  加載一個數(shù)(Load)準(zhǔn)備數(shù)據(jù)(0101); KGB↓, KGA↑; KRA↓↑

  加一個數(shù)(Add)準(zhǔn)備數(shù)據(jù)(0001); KGB↓, KGA↑; KTR↓↑; KGA↓, KGB↑; KRA↓↑

  加一個數(shù)(Add)準(zhǔn)備數(shù)據(jù)(0002); KGB↓, KGA↑; KTR↓↑; KGA↓, KGB↑; KRA↓↑

  加一個數(shù)(Add)準(zhǔn)備數(shù)據(jù)(0004); KGB↓, KGA↑; KTR↓↑; KGA↓, KGB↑; KRA↓↑

  你可以看到,每次執(zhí)行(Add)這一步,要做的事情(搬動開關(guān))是一樣的,規(guī)律性極強。這意味著可以用簡化的方式控制“KTR”“KRA”“KGA”“KGB”這幾個開關(guān)的狀態(tài)。經(jīng)過簡化的CPU就有一定的自動化控制的性質(zhì)了,如下圖所示。我們把這個版本的CPU稱為version2的CPU。

  繼電器是如何成為cpu的

  Verison2要比剛才的verison1進(jìn)化了一些。為便于理解,我們保留原來的“KTR”“KRA”“KGA”“KGB”這四個開關(guān)(把它們挪到了右上角,因為實在沒地方放了),但讓它們永遠(yuǎn)保持閉合的狀態(tài)。這是想說明:version2里新增的電路只是實現(xiàn)了更加自動化地控制“KTR”“KRA”“KGA”“KGB”的開閉,它沒有改變version1中電路的工作流程。

  Version2中的“KLoad”和“KAdd”開關(guān)分別代表了“Load”和“Add”這兩個指令。當(dāng)“KLoad”閉合時,表示CPU要進(jìn)行加載操作,這會把“4”“3”“2”“1”上的數(shù)據(jù)存入寄存器“RA”;當(dāng)“KAdd”閉合時,表示CPU要進(jìn)行相加操作,這會把“4”“3”“2”“1”上的數(shù)據(jù)與“RA”當(dāng)前的數(shù)據(jù)相加,然后相加的結(jié)果又存儲到“RA”。

  Version2中的“K0”和“K1”兩個開關(guān)會依次的開閉,即兩者總有一個是斷開且另一個是閉合的(若出現(xiàn)其它情況那就是電路設(shè)計錯了)。所以實際上“K0”和“K1”可以用一個“2位循環(huán)移位寄存器”代替。(為便于理解,仍然保留“K0”和“K1”這兩個開關(guān),只不過讓它們永遠(yuǎn)保持閉合的狀態(tài))

  Version2中,只需重復(fù)“準(zhǔn)備指令,準(zhǔn)備數(shù)據(jù),執(zhí)行指令(K↓↑↓↑)”這樣的操作,就能完成version1中的控制功能。這需要一個從“KLoad”“KAdd”“K0”“K1”到“KTR”“KRA”“KGA”“KGB”的轉(zhuǎn)換電路,即version2電路圖中的上半部分,如下圖所示。

  繼電器是如何成為cpu的

  這需要一點點設(shè)計邏輯電路的知識,本文直接列出真值表,據(jù)此即可畫出轉(zhuǎn)換電路。(想知道如何推導(dǎo)的話,請查閱《穿》或者數(shù)字電路類書籍)

  KloadKaddK0K1KGAKRAKTRKGB

  10101100

  01101010

  01010101

  其中“KLoad”“KAdd”“K0”“K1”為輸入,“KTR”“KRA”“KGA”“KGB”為輸出。只有如上三種輸入情況下,輸出部分會有1;其它的輸入情況下,輸出全部為0,所以就不需要列出來了。

  舉個例子,“KGA”=“KLoad”“~KAdd”“K0”“~K1” + “~KLoad”“KAdd”“K0”“~K1”=(“KLoad” ⊕“KAdd”)“K0”“~K1”,據(jù)此可以畫出“KGA”的轉(zhuǎn)換電路。

  在version2中,CPU要做的就是重復(fù)“準(zhǔn)備指令,準(zhǔn)備數(shù)據(jù),執(zhí)行指令(K↓↑↓↑)”這件事。其中執(zhí)行指令這一步是完全重復(fù)完全自動化的(只要用振蕩器替換K就可以),而準(zhǔn)備指令和準(zhǔn)備數(shù)據(jù)還需要手工操作。每次要執(zhí)行哪個指令、要準(zhǔn)備的數(shù)據(jù)是多少,這都是沒有規(guī)律的,可改進(jìn)的方法就是:把指令和數(shù)據(jù)按順序保存到一些特別的寄存器里,需要的時候取出來用。這些特別的寄存器,就是內(nèi)存。

非常好我支持^.^

(94) 98.9%

不好我反對

(1) 1.1%

( 發(fā)表人:陳翠 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?