国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

從一枚開關開始講解CPU構造的基本原理

算法與數據結構 ? 來源:碼農的荒島求生 ? 作者:碼農的荒島求生 ? 2021-08-25 16:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

每次回家開燈時你有沒有想過,用你按的簡單開關實際上能打造出復雜的 CPU 來,只不過需要的數量會比較多,也就幾十億個吧。

偉大的發明

過去200年人類最重要的發明是什么?蒸汽機?電燈?火箭?這些可能都不是,最重要的也許是這個小東西:這個小東西就叫晶體管,你可能會問,晶體管有什么用呢?實際上晶體管的功能簡單到不能再簡單,給一端通上電,那么電流可以從另外兩端通過,否則不能通過,其本質就是一個開關。就是這個小東西的發明讓三個人獲得了諾貝爾物理學獎,可見其舉足輕重的地位。無論程序員編寫的程序多么復雜,軟件承載的功能最終都是通過這個小東西簡單的開閉完成的,除了神奇二字,我想不出其它詞來。

AND、OR、NOT現在有了晶體管,也就是開關,在此基礎之上就可以搭積木了,你隨手搭建出來這樣三種組合:

兩個開關只有同時打開電流才會通過,燈才會亮

兩個開關中只要有一個打開電流就能通過,燈就會亮

當開關關閉時電流通過燈會亮,打開開關燈反而電流不能通過燈會滅

天賦異稟的你搭建的上述組合分別就是:與門,AND Gate、或門,OR gate、非門,NOT gate,用符號表示就是這樣:

道生一、一生二、二生三、三生萬物最神奇的是,你隨手搭建的三種電路竟然有一種很amazing的特性,那就是:任何一個邏輯函數最終都可以通過AND、OR以及NOT表達出來,這就是所謂的邏輯完備性,就是這么神奇。也就是說給定足夠的AND、OR以及NOT門,就可以實現任何一個邏輯函數,除此之外我們不需要任何其它類型的邏輯門電路,這時我們認為AND、OR、NOT門就是邏輯完備的。這一結論的得出吹響了計算機革命的號角,這個結論告訴我們計算機最終可以通過簡單的AND、OR、NOT門構造出來,這些簡單的邏輯門電路就好比基因。

老子有云:道生一、一生二、二生三、三生萬物,實乃異曲同工之妙。雖然,我們可以用AND、OR、NOT來實現所有的邏輯運算,但我們真的需要把所有的邏輯運算都用AND、OR、NOT門實現出來嗎?顯然不是,而且這也不太可行。

計算能力是怎么來的現在能生成萬物的基礎元素與或非門出現了,接下來我們著手設計CPU 最重要的能力:計算,以加法為例。由于CPU只認知 0 和 1,也就是二進制,那么二進制的加法有哪些組合呢:

0 + 0,結果為0,進位為0

0 + 1,結果為1,進位為0

1 + 0,結果為1,進位為0

1 + 1,結果為0,進位為1,二進制嘛!

注意進位一列,只有當兩路輸入的值都是 1 時,進位才是 1 ,看一下你設計的三種組合電路,這就是與門啊,有沒有!再看下結果一列,當兩路輸入的值不同時結果為1,輸入結果相同時結果為0,這就是異或啊,有沒有!

我們說過與或非門是邏輯完備可以生萬物,異或邏輯當然不在話下,用一個與門和一個異或門就可以實現二進制加法:上述電路就是一個簡單的加法器,就問你神奇不神奇,加法可以用與或非門實現,其它的也一樣能實現,邏輯完備嘛。

除了加法,我們也可以根據需要將不同的算數運算設計出來,負責計算的電路有一個統稱,這就是所謂的arithmetic/logic unit,ALU,CPU 中專門負責運算的模塊,本質上和上面的簡單電路沒什么區別,就是更加復雜而已?,F在,通過與或非門的組合我們獲得了計算能力,計算能力就是這么來的。但,只有計算能力是不夠的,電路需要能記得住信息。

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

你不知道該怎么設計,這個問題解決不了你寢食難安,吃飯時在思考、走路時在思考,蹲坑時在思考,直到有一天你在夢中遇一位英國物理學家,他給了你這樣一個簡單但極其神奇的電路:這是兩個NAND門的組合,不要緊張,NAND也是有你設計的與或非門組合而成的,所謂NAND門就是與非門,先與然后取非,比如給定輸入1和0,那么與運算后為0,非運算后為1,這就是與非門,這些不重要。比較獨特的是該電路的組合方式,一個NAND門的輸出是兩一個NAND門的輸入,該電路的組合方式會自帶一種很有趣的特性,只要給S和R段輸入1,那么這個電路只會有兩種狀態:

要么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存到電路中了。就問你神奇不神奇,電路竟然具備存儲信息的能力了。

現在為保存信息你需要同時設置S端和R端,但你的輸入是有一個(存儲一個bit位嘛),為此你對電路進行了簡單的改造:這樣,當D為0時,整個電路保存的就是0,否則就是1。

寄存器與內存的誕生現在你的電路能存儲一個比特位了,想存儲多個比特位還不簡單,復制粘貼就可以了:我們管這個組合電路就叫寄存器,你沒有看錯,我們常說的寄存器就是這個東西。你不滿足,還要繼續搭建更加復雜的電路以存儲更多信息,同時提供尋址功能,就這樣內存也誕生了。寄存器及內存都離不開上一節那個簡單電路,只要通電,這個電路中就保存信息,但是斷電后很顯然保存的信息就丟掉了,現在你應該明白為什么內存在斷電后就不能保存數據了吧。

硬件還是軟件?現在我們的電路可以計算數據、也可以存儲信息,但現在還有一個問題,那就是盡管我們可以用AND、OR、NOT表達出所有的邏輯函數,但我們真的有必要把所有的邏輯運算都用與或非門實現出來嗎?這顯然是不現實的。這就好比廚師,你沒有聽說只專做一道菜的廚師然后酒店要把各個菜系廚師雇全才能做出一桌菜來吧!

中國菜系博大精深,千差萬別,但制作每道菜品的方式大同小異,其中包括刀工、顛勺技術等,這些是基本功,制作每道菜品都要經過這些步驟,變化的也無非就是食材、火候、調料等,這些放到菜譜中即可,這樣給廚師一個菜譜他就能制作出任意的菜來,在這里廚師就好比硬件,菜譜就好比軟件。同樣的道理,我們沒有必要為所有的計算邏輯實現出對應的硬件,硬件只需要提供最基本的功能,最終所有的計算邏輯都通過這些最基本的功能用軟件表達出來就好,這就是所謂的軟件一詞的來源,硬件不可變,但軟件可變,不變的是硬件但提供不同的軟件就能讓硬件實現全新的功能,無比天才的思想,人類真的是太聰明了。

同樣一臺計算機硬件,安裝上word你就能編輯文檔,安裝上微信你就能讀到碼農的荒島求生公眾號、安裝上游戲你就能玩王者農藥,硬件還是那套硬件,提供不同的軟件就是實現不同的功能,每次打開電腦使用各種App時沒有在內心高呼一聲牛逼你都對不起計算機這么偉大的發明創造,這就是為什么計算機被稱為通用計算設備的原因,這一思想是計算機科學祖師爺圖靈提出的。扯遠了,接下來我們看下硬件是怎么提供所謂的基本功能的。

硬件的基本功讓我們來思考一個問題,CPU怎么能知道自己要去對兩個數進行加法計算,以及哪兩個數進行加法計算呢?很顯然,你得告訴CPU,該怎么告訴呢?還記得上一節中給廚師的菜譜嗎?沒錯,CPU也需要一張菜譜告訴自己該接下來該干啥,在這里菜譜就是機器指令,指令通過我們上述實現的組合電路來執行。

接下來我們面臨另一個問題,那就是這樣的指令應該會很多吧,廢話,還是以加法指令為例,你可以讓CPU計算1+1,也可以計算1+2等等,實際上單單加法指令就可以有無數種組合,顯然CPU不可能去實現所有的指令。實際上CPU只需要提供加法操作,你提供操作數就可以了,CPU 說:“我可以打人”,你告訴CPU該打誰、CPU 說:“我可以唱歌”,你告訴CPU唱什么,CPU 說我可以做飯,你告訴CPU該做什么飯,CPU 說:“我可以炒股”,你告訴CPU快滾一邊去吧韭菜。

因此我們可以看到CPU只提供機制或者說功能(打人、唱歌、炒菜,加法、減法、跳轉),我們提供策略(打誰、歌名、菜名,操作數,跳轉地址)。CPU 表達機制就通過指令集來實現的。

指令集指令集告訴我們 CPU 可以執行什么指令,每種指令需要提供什么樣的操作數。不同類型的CPU會有不同的指令集。指令集中的指令其實都非常簡單,畫風大體上是這樣的:

從內存中讀一個數,地址是abc

對兩個數加和

檢查一個數是不是大于6

把這數存儲到內存,地址是abc

等等

看上去很像碎碎念有沒有,這就是機器指令,我們用高級語言編寫的程序,比如對一個數組進行排序,最終都會等價轉換為上面的碎碎念指令,然后 CPU 一條一條的去執行,很神奇有沒有。接下來我們看一條可能的機器指令:這條指令占據16比特,其中前四個比特告訴CPU這是加法指令,這意味著該CPU的指令集中可以包含2^4也就是16個機器指令,這四個比特位告訴CPU該做什么,剩下的bit告訴CPU該怎么做,也就是把寄存器R6和寄存器R2中的值相加然后寫到寄存器R6中。

可以看到,機器指令是非常繁瑣的,現代程序員都使用高級語言來編寫程序,關于高級程序語言以及機器指令的話題請參見《你管這破玩意叫編程語言?》。

指揮家:讓我們演奏一曲現在我們的電路有了計算功能、存儲功能,還可以通過指令告訴該電路執行什么操作,還有一個問題沒有解決。

我們的電路有很多部分,用來計算的、用來存儲的,以最簡單的加法為例,假設我們要計算1+1,這兩個數分別來自寄存器R1 和 R2,要知道寄存器中可以保存任意值,我們怎么能確保加法器開始工作時R1和R2中在這一時刻保存的都是1而不是其它數?即,我們靠什么來協調或者說靠什么來同步電路各個部分讓它們協同工作呢?就像一場成功的交響樂演離不開指揮家一樣,我們的計算組合電路也需要這樣一個指揮家。負責指揮角色的就是時鐘信號

時鐘信號就像指揮家手里拿的指揮棒,指揮棒揮動一下整個樂隊會整齊劃一的有個相應動作,同樣的,時鐘信號每一次電壓改變,整個電路中的各個寄存器(也就是整個電路的狀態)會更新一下,這樣我們就能確保整個電路協同工作不會這里提到的問題?,F在你應該知道CPU的主頻是什么意思了吧,主頻是說一秒鐘指揮棒揮動了多少次,顯然主頻越高CPU在一秒內完成的操作也就越多。

大功告成現在我們有了可以完成各種計算的ALU、可以存儲信息的寄存器以及控制它們協同工作的時鐘信號,這些統稱 Central Processing Unit,簡稱就是 CPU。

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

本文從一枚開關開始講解了 CPU 構造的基本原理,希望這篇對大家理解 CPU 有所幫助。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開關
    +關注

    關注

    20

    文章

    3310

    瀏覽量

    98081
  • 電路
    +關注

    關注

    173

    文章

    6076

    瀏覽量

    178408
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11279

    瀏覽量

    224991

原文標題:你管這破玩意叫 CPU ?

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    自適應濾波算法介紹之維納濾波器的基本原理和應用示例

    前面我們介紹了匹配濾波器,本文將介紹維納濾波器。首先我們回顧了維納濾波的主人公Norbert Wiener,然后描述了維納濾波的基本原理和推導,最后給出個簡單的維納濾波應用。
    的頭像 發表于 01-07 15:22 ?1798次閱讀
    自適應濾波算法介紹之維納濾波器的<b class='flag-5'>基本原理</b>和應用示例

    一枚納米晶軟磁屏蔽片如何改寫無線充電體驗

    一枚納米晶軟磁屏蔽片如何改寫無線充電體驗
    的頭像 發表于 01-06 11:10 ?373次閱讀
    <b class='flag-5'>一枚</b>納米晶軟磁屏蔽片如何改寫無線充電體驗

    初識馬達基本原理及組成部分

    電機分為發電機和電動機兩類,馬達通常指?電動機?,即利用電磁感應原理將電能轉換為機械能的裝置,常見于起動機、驅動系統等場景。? 以下是關于馬達的詳細介紹: 1.基本原理 馬達的工作基于電磁感應定律
    的頭像 發表于 01-05 09:32 ?627次閱讀
    初識馬達<b class='flag-5'>基本原理</b>及組成部分

    X-ray檢查機的基本原理、主要類型和區別

    射線的穿透和差別吸收成像,但存在用途、設計標準和安全要求等方面差異。基本原理設備通過X射線管發射高能X射線,射線穿透被測物體,不同材料會對X射線產生不同程度的吸收
    的頭像 發表于 12-27 14:25 ?314次閱讀
    X-ray檢查機的<b class='flag-5'>基本原理</b>、主要類型和區別

    麒麟芯片,暴風雪里的綠洲

    一枚芯片,濃縮了中國科技的命運抉擇
    的頭像 發表于 11-26 00:05 ?5691次閱讀
    麒麟芯片,暴風雪里的綠洲

    基于級聯分類器的人臉檢測基本原理

    本次分享的內容是基于級聯分類器的人臉檢測基本原理 1) 人臉檢測概述 關于人臉檢測算法,目前主流方法分為兩類,類是基于知識,主要方法包括模板匹配,人臉特征,形狀和邊緣,紋理特征,顏色特征
    發表于 10-30 06:14

    簡述沖擊電壓發生器的基本原理?

    沖擊電壓發生器的基本原理是 “電容并聯充電、串聯放電”,核心流程分三步: 先通過整流電路,將工頻交流電轉換為直流電,給多組電容器并聯充電,儲存足夠電能并達到設定電壓; 當充電完成后,觸發高壓開關使
    發表于 10-17 14:10

    單相調壓器和三相調壓器的基本原理與主要結構

    調壓器在電力系統中扮演著至關重要的角色,無論是單相調壓器還是三相調壓器,它們都在各自的應用場景中發揮著調節電壓、穩定電力、保護設備的作用,了解這兩種調壓器的基本原理與主要結構,對于電力系統的設計和運維具有重要意義。本文將和大家起探討單相調壓器和三相調壓器的
    的頭像 發表于 08-05 15:27 ?1189次閱讀

    直流電能表鉛封:充電樁計量的把“鎖”

    一枚小小的鉛封,既是計量公正的守護者,更是電力市場秩序的基石。
    的頭像 發表于 06-10 11:48 ?2104次閱讀
    直流電能表鉛封:充電樁計量的<b class='flag-5'>一</b>把“鎖”

    了解信號完整性的基本原理

    ,設計人員必須注意電路板布局并使用適當的導線和連接器,從而最大限度地減少反射、噪聲和串擾。此外,還必須了解傳輸線、阻抗、回波損耗和共振等基本原理。 本文將介紹討論信號完整性時使用的些術語,以及設計人員需要考慮的問題,然后介紹 [Amphenol] 優異的電纜和
    的頭像 發表于 05-25 11:54 ?1360次閱讀
    了解信號完整性的<b class='flag-5'>基本原理</b>

    一枚葉片的獨白

    我是一枚發電機上的葉片。出生不久,我就開始審視自己的身體:身上滿是絕妙飄逸的曲線,身材完美豐盈,真是美的不可方物。我開始無限自戀起來。如果看下自己的體重,說實話愛上自己的身體不免有些
    的頭像 發表于 05-24 08:32 ?506次閱讀
    <b class='flag-5'>一枚</b>葉片的獨白

    STM32定時器基本原理及常見問題之培訓資料

    STM32 定時器基本原理及常見問題之培訓資料v3.10 時基單元、捕捉比較功能、主從觸發與級聯、案例分享 培訓內容:
    發表于 04-08 16:26

    六天專修課程!電子電路基本原理66課

    本資料內容主要分為模擬電路、數字電路及應用技術三個部分,基本涵蓋了與電子電路相關的全部技術內容及必要的知識點。從電路的基本元件開始,介紹了模擬電路的晶體管及場效應晶體管放大電路的基本原理
    發表于 04-08 16:21

    無刷電機電調的基本原理

    有關本文所談論的無刷電機內容, 只涉及低速飛行類航模電調的小功率無傳感器應用,講解的理論比較淺顯易懂 ,旨在讓初學者能夠對無刷電機有個比較快的認 識,掌握基本原理和控制方法,可以在短時間內達到
    發表于 03-17 19:57

    【干貨】BCUK電路講解,工作原理+圖文結合,通俗易懂,帶你搞定

    )變換器是種輸出電壓≤輸入電壓的非隔離直流變換器。Buck變換器的主電路由開關管Q,二極管D,輸出濾波電感L和輸出濾波電容C構成。接下來將從: 開關整流器基本原理 傳說中的“伏-秒
    發表于 03-11 10:44