在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

一個個開關竟能構(gòu)造出功能強大的CPU

單片機與嵌入式 ? 來源:單片機與嵌入式 ? 2023-06-28 17:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

幾乎每天都會開燈關燈,但這簡單的開關卻是組成CPU的基本單元。

分享本文,來看下怎么構(gòu)建CPU這個非0即1的開關世界。

晶體管到門電路

上世紀出現(xiàn)了晶體管這個小而偉大的發(fā)明。

有了晶體管,也就是開關,在此基礎之上就可以搭建與、或、非門電路。

任何一個邏輯函數(shù)最終都可以通過與、或、非表達出來。也就是說,計算機最終可以通過簡單的與、或、非門構(gòu)造出來。

與或非門實現(xiàn)計算、存儲電路

計算

以加法為例。

由于CPU只認知 0 和 1,也就是二進制,那么二進制的加法有哪些組合呢:

0 + 0,結(jié)果為0,進位為0

0 + 1,結(jié)果為1,進位為0

1 + 0,結(jié)果為1,進位為0

1 + 1,結(jié)果為0,進位為1

注意進位這一列,只有當兩路輸入的值都是 1 時,進位才是 1 ,這就是與門啊!

再看下結(jié)果一列,當兩路輸入的值不同時結(jié)果為1,輸入結(jié)果相同時結(jié)果為0,這就是異或啊!

如下圖,用一個與門和一個異或門就可以實現(xiàn)二進制加法:

fe76ba2e-1592-11ee-962d-dac502259ad0.png

上述電路就是一個簡單的加法器,加法可以用與或非門實現(xiàn)。

除了加法,我們也可以根據(jù)需要將不同的算數(shù)運算設計出來,負責計算的電路有一個統(tǒng)稱,這就是所謂的算術邏輯單元ALU(arithmetic/logic unit),是CPU 中專門負責運算的模塊,本質(zhì)上和上面的簡單電路沒什么區(qū)別,就是更加復雜而已。

現(xiàn)在,通過與或非門的組合我們獲得了計算能力,計算能力就是這么來的。

但,只有計算能力是不夠的,電路需要能記得住信息。

存儲

到目前為止,你設計的組合電路比如加法器天生是沒有辦法存儲信息的,它們只是簡單的根據(jù)輸入得出輸出,但輸入輸出總的有個地方能夠保存起來,這就是需要電路能保存信息。

電路怎么能保存信息呢?有一天一位英國物理學家,給出了這樣一個神奇電路:

fe9c2868-1592-11ee-962d-dac502259ad0.png

這是兩個與非門的組合。

比較獨特的是該電路的組合方式,一個與非門的輸出是另一個與非門的輸入。該電路的組合方式會自帶一種很有趣的特性,只要給S和R端輸入1,那么這個電路只會有兩種狀態(tài):

a端為1,此時B=0、A=1、b=0;

a端為0,此時B=1、A=0、b=1;

不會再有其他可能了,我們把a端的值作為電路的輸出。

此后,你把S端置為0的話(R保持為1),那么電路的輸出也就是a端永遠為1,這時就可以說我們把1存到電路中了;而如果你把R段置為0的話(S保持為1),那么此時電路的輸出也就是a端永遠為0,此時我們可以說把0存到電路中了。

就這樣,電路具備存儲信息的能力了。

現(xiàn)在為保存信息你需要同時設置S端和R端,但你的輸入是有一個(存儲一個bit位嘛),為此你對電路進行了改造:

feb97fc6-1592-11ee-962d-dac502259ad0.png

這樣,當D為0時,整個電路保存的就是0,否則就是1。

寄存器與內(nèi)存

現(xiàn)在你的電路能存儲一個比特位了,想存儲多個比特位還不簡單,復制粘貼就可以了:

fecee26c-1592-11ee-962d-dac502259ad0.png

我們管這個組合電路就叫寄存器。

如果繼續(xù)搭建更加復雜的電路以存儲更多信息,同時提供尋址功能,就這樣內(nèi)存也誕生了。

寄存器及內(nèi)存都離不開上文那個簡單電路,只要通電,這個電路中就保存信息,但是斷電后很顯然保存的信息就丟掉了,現(xiàn)在你應該明白為什么內(nèi)存在斷電后就不能保存數(shù)據(jù)了吧。

構(gòu)建CPU

硬件平臺

通過上文講解知道,電路可以實現(xiàn)數(shù)據(jù)計算、信息存儲的通用功能。但現(xiàn)在還有一個問題,真的有必要把所有的邏輯運算都用與或非門實現(xiàn)出來嗎?這顯然是不現(xiàn)實的。

沒有必要為所有的計算邏輯實現(xiàn)出對應的硬件,硬件只需要提供最通用的功能。

接下來看下硬件是怎么提供所謂的通用功能。

讓我們來思考一個問題,CPU怎么能知道自己要去對兩個數(shù)進行加法計算,以及哪兩個數(shù)進行加法計算呢?

很顯然,你得告訴CPU,該怎么告訴呢?

CPU也需要機器指令告訴自己該接下來該干什么,而指令通過我們上述實現(xiàn)的組合電路來執(zhí)行。

指令集

指令集告訴我們 CPU 可以執(zhí)行什么指令,每種指令需要提供什么樣的操作數(shù)。不同類型的CPU會有不同的指令集。

指令集中的指令其實都非常簡單,畫風大體上是這樣的:

從內(nèi)存中讀一個數(shù),地址是abc

對兩個數(shù)加和

檢查一個數(shù)是不是大于6

把這數(shù)存儲到內(nèi)存,地址是abc

等等

看上去很像碎碎念有沒有,這就是機器指令,我們用高級語言編寫的程序,比如對一個數(shù)組進行排序,最終都會等價轉(zhuǎn)換為上面的碎碎念指令,然后 CPU 一條一條的去執(zhí)行。

接下來看一條可能的機器指令:

feeb1d92-1592-11ee-962d-dac502259ad0.png

這條指令占據(jù)16比特,其中前四個比特告訴CPU這是加法指令,這意味著該CPU的指令集中可以包含2^4也就是16個機器指令,這四個比特位告訴CPU該做什么,剩下的bit告訴CPU該怎么做,也就是把寄存器R6和寄存器R2中的值相加然后寫到寄存器R6中。

可以看到,機器指令是非常繁瑣的,現(xiàn)代程序員都使用高級語言來編寫程序。

時鐘信號

現(xiàn)在我們的電路有了計算功能、存儲功能,還可以通過指令告訴該電路執(zhí)行什么操作,還有一個問題沒有解決。

靠什么來協(xié)調(diào)或者說靠什么來同步電路各個部分讓它們協(xié)同工作呢?

時鐘信號就像指揮家手里拿的指揮棒,指揮棒揮動一下整個樂隊會整齊劃一的有個相應動作,同樣的,時鐘信號每一次電壓改變,整個電路中的各個寄存器(也就是整個電路的狀態(tài))會更新一下,這樣我們就能確保整個電路協(xié)同工作不會這里提到的問題。

現(xiàn)在你應該知道CPU的主頻是什么意思了吧,主頻是說一秒鐘指揮棒揮動了多少次,顯然主頻越高CPU在一秒內(nèi)完成的操作也就越多。

大功告成

現(xiàn)在我們有了可以完成各種計算的ALU、可以存儲信息的寄存器以及控制它們協(xié)同工作的時鐘信號,這些統(tǒng)稱 Central Processing Unit,簡稱就是 CPU。

一個小小的開關竟然能構(gòu)造出功能強大的 CPU ,這背后理論和制造工藝的突破是人類史上的里程碑時刻,說 CPU 是智慧的結(jié)晶簡直再正確不過。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5433

    瀏覽量

    124324
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11074

    瀏覽量

    216908
  • 晶體管
    +關注

    關注

    77

    文章

    10015

    瀏覽量

    141523
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    AD原理圖中怎樣將庫中的多個元件選中次性放置到原理圖中?而不用一個個放置。

    似乎只能一個個的放置,能不能多個次性放置.
    發(fā)表于 05-19 11:54

    用labview編程的頻譜分析儀,在進行正弦信號幅頻譜顯示時,為什么不是脈沖,而是一個個三角波的疊加?

    用labview編程的頻譜分析儀,在進行正弦信號幅頻譜顯示時,為什么不是脈沖,而是一個個三角波的疊加
    發(fā)表于 05-23 10:01

    看效果像是控制很多LED一個個亮起來,請教下大家有沒有做過得或者額類似的方案?

    `看效果像是控制很多LED一個個亮起來,請教下大家有沒有做過得或者額類似的方案~謝謝啦`
    發(fā)表于 05-29 11:54

    變頻串聯(lián)諧振試驗裝置功能強大在哪?

    高壓耐壓試驗裝置中,變頻串聯(lián)諧振試驗裝置是非常理想的選擇,。由于變頻串聯(lián)諧振相比傳統(tǒng)的耐壓試驗裝置有非常多的優(yōu)勢,因此串聯(lián)諧振耐壓試驗裝置也深受廣大電力工作者的歡迎。變頻串聯(lián)諧振耐壓試驗裝置功能強大
    發(fā)表于 11-26 15:19

    如何利用DMA將數(shù)據(jù)一個個搬到USART1的DR寄存器中去呢

    如何利用DMA將數(shù)據(jù)一個個搬到USART1的DR寄存器中去呢?有哪些操作步驟?
    發(fā)表于 12-13 06:47

    分享功能強大的APP藍牙調(diào)試器

    數(shù)據(jù)發(fā)送到上位機,省去了串口連線到電腦的步驟。今天分享功能強大的APP,藍牙調(diào)試器,它具備以下功能發(fā)送/接收藍牙串口的數(shù)據(jù)自定義藍牙串口 發(fā)送/接收數(shù)據(jù)包格式支持多種控件:如按鍵,
    發(fā)表于 02-22 06:03

    labview中能實現(xiàn)將一個個圓堆疊成圓柱嗎?

    labview中能實現(xiàn)將一個個圓堆疊成圓柱嗎? 類似下圖
    發(fā)表于 05-03 15:05

    用arduino做一個功能強大體化萬用表

    教你用arduino做一個功能強大體化萬用表。附帶資料包含PCB設計圖、相關代碼等。你也可以簡單自己制作!
    發(fā)表于 09-27 07:06

    如果所有的機器人可以互聯(lián),在未來也許你只需要一個個性化數(shù)字助手

    未來,也許你需要一個個性化數(shù)字助手。 機器人在今年變得越來越火,但其實人們對機器人的開發(fā)還處于萌芽階段。Barry Coleman認為,為了使機器人更自然地像人類樣執(zhí)行命令、進行交互,對種叫做機器人群體的新方法的運用將成為必
    發(fā)表于 12-31 02:23 ?499次閱讀

    如何用舊手機做一個個性十足的音箱?

    買了新手機,舊手機該怎么辦?賣二手吧嫌價格低,送人吧也沒人要。反正閑著也是閑著,就把舊手機回收利用來做一個個性十足的音箱吧!
    的頭像 發(fā)表于 08-10 16:24 ?3.2w次閱讀

    功能強大的三級9V FM發(fā)射器電路

    該電路是功能強大的三級 9V FM 發(fā)射器 (Tx),開放范圍可達 1 公里。它在其輸出級使用射頻晶體管,前兩級使用兩
    發(fā)表于 07-26 17:25 ?1441次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>功能強大</b>的三級9V FM發(fā)射器電路

    基于功能強大的子域收集工具

    OneForAll 收集能力強大、支持子域爆破、支持子域驗證、支持子域爬取、支持子域置換、支持子域接管、處理功能強大、速度極快、體驗良好,是款集百家之長,功能強大的全面快速子域收集工
    的頭像 發(fā)表于 10-25 14:50 ?1189次閱讀

    小小開關竟能構(gòu)造出功能強大CPU

    幾乎每天都會開燈關燈,但這簡單的開關卻是組成CPU的基本單元。
    的頭像 發(fā)表于 06-25 17:19 ?588次閱讀
    小小<b class='flag-5'>開關</b><b class='flag-5'>竟能</b><b class='flag-5'>構(gòu)造出</b><b class='flag-5'>功能強大</b>的<b class='flag-5'>CPU</b>

    分享非常實用且強大的Linux nc命令

    nc是netcat的簡寫,是功能強大的網(wǎng)絡工具,其功能是用于掃描與連接指定端口,有著網(wǎng)絡界的瑞士軍刀美稱。
    的頭像 發(fā)表于 08-16 09:15 ?1.7w次閱讀
    分享<b class='flag-5'>一</b><b class='flag-5'>個</b>非常實用且<b class='flag-5'>強大</b>的Linux nc命令

    【干貨分享】還在傻傻的一個個調(diào)整PCB元件的絲印位號?

    針對后期元件裝配,特別是手工裝配元件,般都得出 PCB 的裝配圖,用于元件放料定位之用,這時絲印位號就顯示出其必要性了。 初學畫PCB的朋友們定有過這樣的操作,一個個手動調(diào)整元件的絲印位號,非常
    的頭像 發(fā)表于 03-05 08:40 ?1789次閱讀
    【干貨分享】還在傻傻的<b class='flag-5'>一個個</b>調(diào)整PCB元件的絲印位號?
    主站蜘蛛池模板: 国产精品久久久久久久久免费hd | 四虎现在的网址入口 | 日日艹| 天天干天天添 | 中文天堂在线www | 色日韩在线 | 人人草草| 日韩欧美成人乱码一在线 | 理论片亚洲 | 中国胖女人一级毛片aaaaa | 天堂影院jav成人天堂免费观看 | 黄网站视频| 色香焦| 天天cao在线 | 久久天天躁狠狠躁狠狠躁 | 久久久久久夜精品精品免费 | 国产精品成人aaaaa网站 | 亚洲va中文字幕 | 成人激情视频网 | 夜夜五月天 | 美女被免费视频网站九色 | 午夜网站免费版在线观看 | 色综合激情丁香七月色综合 | 狠狠躁 | 手机看片福利视频 | 亚洲第一区第二区 | 午夜视频一区 | 综合欧美一区二区三区 | 国产色视频网站 | 卡1卡2卡3精品推荐老狼 | 人人插人人爱 | 成年大片免费视频播放手机不卡 | 轻点灬大ji巴太粗太长了爽文 | 中国业余老太性视频 | 五月婷婷之婷婷 | 成人在线一区二区三区 | 日韩一卡 二卡 三卡 四卡 免费视频 | 国产精品视频色拍拍 | 四虎精品成在线播放 | 女a男o肉文| 激情六月婷婷开心丁香开心 |