www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 架構(gòu)師社區(qū)
[導(dǎo)讀]Part 1. 原來,我們是這樣記數(shù)的 “ 本節(jié)內(nèi)容節(jié)選自下方 參考資料 1 在討論「二進制」和「CPU 如何工作」之前,我們先來討論一下我們生活中最稀疏平常的 數(shù)字,我們與之頻繁地打交道:一個約定的時間、一件商品的價格、一個人的身高....卻很少有人細細想過,


Part 1. 原來,我們是這樣記數(shù)的

一文了解二進制和CPU工作原理

本節(jié)內(nèi)容節(jié)選自下方 參考資料 1

在討論「二進制」和「CPU 如何工作」之前,我們先來討論一下我們生活中最稀疏平常的 數(shù)字,我們與之頻繁地打交道:一個約定的時間、一件商品的價格、一個人的身高....卻很少有人細細想過,這些數(shù)字是如何表達出來的?為什么你理所當(dāng)然地把 1024 理解為「一千零二十四」而不是別的含義?

也許你從未想過,在這簡單的記數(shù)中,沉淀著人類的大智慧。

一進制計數(shù)法

一文了解二進制和CPU工作原理
  • 圖片來源:https://www.goethe.de/ins/cn/cn/kul/mag/20629923.html

早在數(shù)字的概念產(chǎn)生之前,人類就學(xué)會了使用樹枝、石子、貝殼等自然界隨處可見的小物件表示獵物的、果實的、部落人口的數(shù)量。比如在某個角落堆上一堆石子,每打到 1 只獵物,就扔 1 顆石子進去,每吃掉 2 只獵物,就從中取走 2 顆石子。他們并不在意石子的總數(shù),只是時不時地瞅一眼,心底大致有數(shù)。

其實這是一種最樸素的記數(shù)方式,數(shù)學(xué)家稱之為 一進制記數(shù)法(unary numeral system)。我們把它符號化一下,比如用斜杠 / 來表示:

  • 1 就是 /;
  • 2 就是 //;
  • 4 就是 ////

好像沒毛病,我們平時掰手指用的就是這種記數(shù)法,但數(shù)字一大,場面就要失控了。

符值相加記數(shù)法

為了解決記錄大數(shù)的問題,于是我們得發(fā)明一些其他符號來表示更大的數(shù)值,比如用橫杠 - 表示 10,用十字 + 表示 100。那么:

  • 16 就是 -//////;
  • 32 就是 ---//;
  • 128 就是 +--////////;

漂亮....這種靠符號類型和符號數(shù)量表示數(shù)字的方法被稱為 符值相加記數(shù)法(sign-value notation),古埃及和古羅馬用的都是它,只不過符號各不相同。

古埃及的記數(shù)符號:

1 10 100 1000 10000 100000 1000000
一文了解二進制和CPU工作原理 一文了解二進制和CPU工作原理 一文了解二進制和CPU工作原理 一文了解二進制和CPU工作原理 一文了解二進制和CPU工作原理 一文了解二進制和CPU工作原理 一文了解二進制和CPU工作原理

1024 在古埃及就寫作:

一文了解二進制和CPU工作原理

你會發(fā)現(xiàn),符值相加記數(shù)法的一大優(yōu)點是,符號的順序可以任意打亂,數(shù)字含義不受影響。我國藏族曾用石子表示 1、木棍表示 10、果核表示 100、蠶豆表示 1000、瓦片表示 10000,那么,當(dāng)你把 1 顆蠶豆、2 根木棍和 4 顆石子胡亂地攥在手里,別人依然知道它們是 1024。

古羅馬的做法略有不同,他們對五進制情有獨鐘:

1 5 10 50 100 500 1000
I V X L C D M

這些符號沿用至今,想必大家(至少對前 3 個)都比較熟悉,許多鐘表仍保留著使用羅馬數(shù)字的習(xí)慣,1~12 分別表示為:I、II、III、IVV、VIVII、VIII、IXX、XI、XII。你會發(fā)現(xiàn),羅馬記數(shù)法是符值相加記數(shù)法的變種,因為它不光「相加」,還「相減」。這種方式就不允許符號亂序了,IVVI 表示的是不同的數(shù)字。

那羅馬人何苦要使用這種更復(fù)雜的記數(shù)法呢?無非是為了讀寫方便。同樣表示 9,IXVIIII 更簡潔。

其實有一種更好使的方法——用另外一些列符號來表示符號的數(shù)量。比如用 A 表示 1 個符號,用 B 表示 2 個符號,以此類推,用 I 表示 9 個符號。

如此,上文表示 256++-----////// 就可以寫作 B+E-F/。你一定感覺莫名其妙,這種寫法哪里方便了。其實中文的數(shù)字表示就是這種形式,只不過我們用得太習(xí)慣了,以至于沒有發(fā)現(xiàn)。

在中文中,、、 代替了 /、-、+,而 、、 代替了 AB、C256 就寫作 二百五十六個, 比較累贅,我們通常把它省略了。

其實像日語、英語用的也同樣是這種記數(shù)法,簡潔、優(yōu)雅。

美中不足的是,這種形式雖便于讀寫,卻不便于計算。中國古人為算籌和算盤這類經(jīng)典算具搭建起廣闊的舞臺,卻沒給筆算留出一席之地。想象一下,如果讓你把這些漢字寫在草稿紙上,列個豎式,你的內(nèi)心一定非常別扭。

位值制記數(shù)法

公元5世紀(jì),印度數(shù)學(xué)家阿耶波多(Aryabhata 476–550)創(chuàng)立了現(xiàn)在廣泛使用的 位值制記數(shù)法(positional notation/place-value notation),該記數(shù)法使用的主要符號,是同為印度人發(fā)明的阿拉伯?dāng)?shù)字:0、1、23、4、5、6、78、9

與符值相加記數(shù)法類比,位值制中的 12、3 代替的是 A、B、C,那 /-、+ 呢?是 靠阿拉伯?dāng)?shù)字的位置來表示的。眾所周知,最右位相當(dāng)于 /,次右位相當(dāng)于 -。靠每個位置上的數(shù)值來表示數(shù)字,故名位值制。

嚴(yán)謹?shù)臄?shù)學(xué)家用一種多項式高度概括了位值制記數(shù)法的本質(zhì),在十進制中,這個多項式是這樣的:

一文了解二進制和CPU工作原理
一文了解二進制和CPU工作原理

這是一個 n 位十進制數(shù),ai 就是第 i 位上的數(shù)值。為便于直觀理解,舉個 1024 的例子吧:

一文了解二進制和CPU工作原理

由于我們熟悉了十進制,這樣費心費力的展開可能會讓你覺得好笑,但當(dāng)我們把它推廣到其他進制時,這個多項式的價值就體現(xiàn)了出來。n 位 b 進制數(shù)的位值制表示:

一文了解二進制和CPU工作原理
一文了解二進制和CPU工作原理

1024 用二進制怎么表示?

一文了解二進制和CPU工作原理

因此,1024 的二進制寫作 10000000000。

除了最普遍的十進制和計算機中的二進制,常見的還有七進制(如 17 天)、十二進制(如 112 個月)、十六進制(如古代 116 兩)、六十進制(如六十甲子)等等,只要有意義,任何進制都可以為你所用。

非標(biāo)準(zhǔn)位值制

在上述的多項式中,如果 ai 或 b 的取值奇葩一點,就形成了 非標(biāo)準(zhǔn)位值制(non-standard positional numeral systems),這類記數(shù)法往往應(yīng)用于專業(yè)領(lǐng)域,很難在日常生活中見到。比如標(biāo)準(zhǔn)位值制中的三進制 ai 的取值為 0、1、2,但在一種名為平衡三進制(balanced ternary)的非標(biāo)準(zhǔn)位值制中,ai-10、1,蘇聯(lián)曾使用這種進制研發(fā)電子計算機。

Part 2. 二進制簡介

一文了解二進制和CPU工作原理
  • 圖片來源:https://zhuanlan.zhihu.com/p/26743163

至此,你對「二進制」應(yīng)該會感覺親切了些,它只是一種數(shù)制而已,本質(zhì)上與我們熟悉的十進制沒有很大的差別,我們這一 Part 來稍微理解一下二進制。(至于電腦為什么使用二進制我們在下一 Part 中介紹)

二進制的基本運算

十進制中的那些基本運算原則,二進制中同樣適用,只不過需要稍加變幻而已,下面我們分別就加、減、乘、除四則運算來介紹。

二級制加法

根據(jù)「逢二進一」規(guī)則,二進制數(shù)加法的法則為:

0+0=0
0+1=1+0=1
1+1=0 (進位為1)
1+1+1=1 (進位為1)

例如:11011011 相加過程如下:

一文了解二進制和CPU工作原理

二進制數(shù)的減法

根據(jù)「借一有二」的規(guī)則,二進制數(shù)減法的法則為:

0-0=0
1-1=0
1-0=1
0-1=1 (借位為1)

例如:1101 減去 1011 的過程如下:

一文了解二進制和CPU工作原理

二進制的乘法

二進制數(shù)乘法過程可仿照十進制數(shù)乘法進行。但由于二進制數(shù)只有 01 兩種可能的乘數(shù)位,導(dǎo)致二進制乘法更為簡單。二進制數(shù)乘法的法則為:

0×0=0
0×1=1×0=0
1×1=1

例如:10011010 相乘的過程如下:

一文了解二進制和CPU工作原理

二進制的除法

二進制數(shù)除法與十進制數(shù)除法很類似。

例如:100110 ÷ 110 的過程如下:

一文了解二進制和CPU工作原理

二進制為什么能表示所有的數(shù)據(jù)

因為編碼規(guī)定。

之前我們有說到,所有保存的程序和數(shù)據(jù)在計算機中都被描述為 文件,也就是說我們能夠知道當(dāng)前的數(shù)據(jù)集合被期望的用途是什么,也就能夠找到對應(yīng)的 處理器 來正確處理當(dāng)前的數(shù)據(jù)。

例如保存文字

拿文字舉例,為了讓一串 0、1 能夠代表特定的文字,人們規(guī)定使用一個字節(jié)中的七位來表達特定的文字, 這就是大名鼎鼎 ASCII (American Standard Code for Information Interchange) 碼,ASCll 碼能夠表達 27=128 種字符(編碼從 0~127),對于 26 個英文字母和一些常用的可打印字符,這完全足夠了:

一文了解二進制和CPU工作原理

可是,世界文化是多元的,面對類似漢字這樣的象形文字,ASCll碼表用起來自然是捉襟見肘。

窮則思變,一個字節(jié)不行,那就兩個字節(jié),這就是大名鼎鼎的 Unicode 碼,不難看出,Unicode 碼有 216=65536 種表示方式,這樣就足以表達一些常用的字符了,值得一提的是,Unicode 碼算是在 ASCll 碼上的一種擴充,其第 0~127 個編碼字符與 ASCll 碼表一模一樣。

再比如圖片

這里涉及一點點物理知識,話說很久以前,牛頓通過三棱鏡把白色的光分解成七種不同顏色的光,后來又通過各種實驗發(fā)現(xiàn)紅、綠、藍三種顏色的光是無法被分解的,因此我們就稱為紅藍綠為光的三原色。

一文了解二進制和CPU工作原理

至此人類已經(jīng)知道了:可以通過組合不同比例的紅、綠、藍三種顏色來獲得各種各樣的顏色,那么我們就可以在計算機上模擬了?,F(xiàn)在的計算機,一般使用 32 位來表示顏色,32 位平分給四個分量,也就是每個分量 8 位。

為啥是四個顏色分量?

因為顏色模型中有一個 alpha 值,用來表示透明度,這一點我們先不考慮??傊N顏色,每個使用 8 位來表示的話,我們就能夠表示 256 * 256 * 256 = 16777216 種顏色了,已經(jīng)足夠基礎(chǔ)的使用了。

先來看一張圖片:

一文了解二進制和CPU工作原理

這張圖像的尺寸是 600px * 664px(px 是一種圖片單位,中文名稱為像素,你可以暫時理解為一個點)。我們把它放大一下,如下圖所示:

一文了解二進制和CPU工作原理

看見了嗎?實際上,大部分圖像(你拍攝的照片、你掃描的圖片、你使用 iPad 畫的圖片等等...)都是位圖文件,位圖就是由像素點構(gòu)成的,它就像是一個網(wǎng)格一樣,每個格子里面填一個顏色。(除了位圖外,還有一種圖是矢量圖,它描述的是形狀而非網(wǎng)格)

OK,我想你已經(jīng)能理解圖像是由像素點組成的了(事實上我們的顯示器也是),我們只需要在編碼中附帶上一些額外的信息,例如圖像有多大的尺寸、時間、作者、顏色深度、是否支持透明度之類的就能夠?qū)D像進行正確表示了。(視頻可以簡單理解成一張張連續(xù)不斷的圖片)

要讓顯示器正確顯示圖片或者視頻,只需要讓顯示器上每個像素顯示特定的顏色就好了。

一文了解二進制和CPU工作原理
  • 圖片來源:https://www.bbc.co.uk/bitesize/topics/zf2f9j6/articles/z2tgr82

Part 3. 為什么是二進制?

一文了解二進制和CPU工作原理
  • 圖片來源:https://zhuanlan.zhihu.com/p/33439000

可為什么一定是二進制呢?使用人類習(xí)慣的十進制不好嗎?

理由一:物理上易于實現(xiàn)

計算機依靠電力工作,這也就意味著需要將數(shù)字信號映射到電信號,實現(xiàn)這種映射最簡單的方法是:

  • 0 - 沒有電(0 V)
  • 1 - 有點(5 V)

二進制在技術(shù)上最容易實現(xiàn)。這是因為具有兩種 穩(wěn)定狀態(tài) 的物理器件很多,如門電路的導(dǎo)通與截止、電壓的高與低等,而它們恰好可以對應(yīng)表示 “1” 和 “0” 這兩個數(shù)碼。假如采用十進制,那么就要制造具有 10穩(wěn)定狀態(tài) 的物理電路,而這是非常困難的。

理由二:機器可靠性高

為什么使用更復(fù)雜的數(shù)字系統(tǒng)是一個問題?

假設(shè)我們使用三元(3 位數(shù)字)數(shù)字系統(tǒng)涉及計算機,如果我們具有從 0 V5 V 的電壓,那么我們可以進行以下的映射:

  • 0 - 0 V;
  • 1 - 2.5 V;
  • 2 - 5 V;
一文了解二進制和CPU工作原理
  • 圖片來源:https://pmihaylov.com/intro-binary-numbers/

看起來合理吧?但是,想象一下,我以 2.5 V 的電壓發(fā)送了一個數(shù)字。但是由于電路中的一些噪聲,我在輸出端得到 2.3 V 的電壓,因此將其視為 0。結(jié)果是?

有人給我發(fā)送了 1,但我將其視為 0。數(shù)據(jù)丟失可是一個非常嚴(yán)重的問題。

使用二進制則可靠得多,由于電壓的高和低、電流的有和無等都是一種 質(zhì)的變化,兩種物理狀態(tài)穩(wěn)定、分明,因此,二進制碼傳輸?shù)目垢蓴_能力強,鑒別信息的可靠性高。

為什么計算機系統(tǒng)必須有時鐘

一文了解二進制和CPU工作原理
  • 圖片來源:http://programmedlessons.org/Java9/chap02/ch02_11.html

建立數(shù)字系統(tǒng)的目的是 僅在某些時間點測試開/關(guān)(二進制)值,這使電線(或其他設(shè)備)有時間更換。這就是計算機系統(tǒng)有時鐘的原因。

時鐘會周期性地進行信號的測量,圖中所示的 T1 和 T2 就是可以測量信號的時間點。

時鐘利用所有這些時間點來保持同步。更快的時鐘意味著每秒可以對電線進行更多次測試,并且整個系統(tǒng)運行得更快。2 GHz 處理器每秒檢查二進制值 20 億次。在這些時間之間,允許值改變并穩(wěn)定下來。處理器芯片速度越快,每秒可以測試的次數(shù)就越多,每秒可以做出的決策就越多。

理由三:運算規(guī)則簡單

數(shù)學(xué)推導(dǎo)已經(jīng)證明,對 N 進制數(shù)進行算術(shù)求和或求積運算,其運算規(guī)則各有 N(N+1)/2 種。如采用十進制,則 N=10,就有 55 種求和或求積的運算規(guī)則;而采用二進制,則 N=2,僅有 3 種求和或求積的運算規(guī)則,以上面提到的加法為例:

0+0=0,0+1=1 (1+0=1),1+1=10

因而可以大大簡化運算器等物理器件的設(shè)計。

理由四:邏輯判斷方便

采用二進制后,僅有的兩個符號 “1” 和 “0” 正好可以與邏輯命題的兩個值 “真” 和 “假” 相對應(yīng),能夠方便地使用邏輯代數(shù)這一有力工具來分析和設(shè)計計算機的邏輯電路。

雖然在 1950 年代就造出了更加高效的三元計算機,但在效率和復(fù)雜度的取舍上,始終抵不過二進制。二進制仍然在當(dāng)今世界中長期存在。

Part 4. CPU 的實際工作方式

上面我們了解到計算機以二進制的形式運行,它們只有兩種狀態(tài):開(1)和關(guān)(0),為了執(zhí)行二進制計算,我們需要采用一種特殊的電子元器件,稱為 「晶體管」。暫時我們把它理解為一種開關(guān)吧,通電就打開,沒電流通過就關(guān)閉。

利用"開關(guān)"搭建邏輯電路

我們知道,給電燈通上電,它就會亮:

一文了解二進制和CPU工作原理

于是,結(jié)合上開關(guān),我們就能搭建出最基礎(chǔ)的 與門或門

與門

一文了解二進制和CPU工作原理

該電路的邏輯是:只有當(dāng) A 和 B 同時開啟時,LED 燈才會亮,也就是認為輸出 1,我們可以利用電信號來簡單模擬一下:

A B Y
0 0 0
1 0 0
0 1 0
1 1 1

或門

一文了解二進制和CPU工作原理

該電路的邏輯是:當(dāng) A 或者 B 開啟時,LED 燈就會亮,也就是認為輸出 1,我們可以利用電信號來簡單模擬一下:

A B Y
0 0 0
1 0 1
0 1 1
1 1 1

其他門

類似地,我們可以借助更多的電子元器件來創(chuàng)造出基礎(chǔ)的 7 種邏輯門電路:

一文了解二進制和CPU工作原理
  • 圖片來源:https://www.zhihu.com/question/348237008/answer/843382847 | @Zign

這里需要特別提一下 異或門,我們需要先知道有一種電子元器件可以利用電氣特性對 輸入取反,也就是說輸入 1 則輸出 0,輸入 0 則輸出 1,那么我們就可以 簡單模擬 出異或門邏輯電路(實際會更復(fù)雜些,這里僅展示出異或的意思):

一文了解二進制和CPU工作原理

A'B' 分別表示 AB 開關(guān)的反值,從圖中我們很容易知道只有當(dāng) A、B 只存在一個輸入 1 時,整個電路才會輸出 1。

利用邏輯門簡單計算加法

OK,上面我們了解到我們能夠利用 "開關(guān)" 來模擬邏輯的運算,我們接下來試著還原一個簡單的加法運算器是如何實現(xiàn)的:

一文了解二進制和CPU工作原理

僅需兩個門,就可以完成基本的二進制加法運算。上圖是利用 logic.ly 創(chuàng)建的半加法器,A、B 相當(dāng)于使我們計算的兩個數(shù),最后一塊相當(dāng)于是我們的數(shù)顯芯片,它的功能是根據(jù)輸入顯示數(shù)字,從上到下的引腳(也就是圖中輸入的地方,通常我們這樣稱呼)分別對應(yīng)了 20=1、21=222=4、23=8 的輸入,沒有任何輸入時顯示為 0,如果 引腳 1(對應(yīng) 20=1)像上圖一樣有輸入,則顯示 0 + 1 = 1

我們來理解一下上方的電路:

  • 如果僅打開一個輸入,但不同時打開兩個輸入,則此處的 XOR 門(異或門)將打開,此時對應(yīng)輸入 引腳 1,顯示 數(shù)字 1(類似于 1 + 0 和 0 + 1);
  • 如果兩個輸入均打開,則 AND 門(與門)將打開,此時對應(yīng)輸入 引腳 2,顯示 數(shù)字 2(類似于 1 + 1);
  • 如果沒有輸入,則 AND 門和 XOR 門都保持關(guān)閉,此時顯示 數(shù)字 0(類似于 0 + 0);

因此,如果兩個都打開,則 XOR 保持關(guān)閉,并且 AND 門打開,得出正確的答案為 2

一文了解二進制和CPU工作原理

但這只是最基礎(chǔ)的半加法運算器,不是太有用,因為它只能解決最簡單的數(shù)學(xué)問題之一。但如果我們把它們兩個與另一個輸入連接,就會得到一個完整的加法器:

一文了解二進制和CPU工作原理

仔細思考幾遍,你就會得知這個三個輸入的加法器已經(jīng)可以計算 3 個二進制數(shù)字的加法運算了,我們?nèi)绶ㄅ谥疲梢酝ㄟ^連接更多的"進位"來使這個加法器能夠運算更多的數(shù),這當(dāng)然也意味著這個計算鏈條更長。

大多數(shù)其他數(shù)學(xué)運算都可以加法完成。乘法只是重復(fù)加法,減法可以通過一些奇特的位反轉(zhuǎn)來完成,而除法只是重復(fù)減法。并且,盡管所有現(xiàn)代計算機都具有基于硬件的解決方案以加快更復(fù)雜的操作,但從技術(shù)上講,您可以使用完整的加法器來完成全部操作。

總線和內(nèi)存

現(xiàn)在,我們的計算機只不過是一個計算器,它記不住任何內(nèi)容也對輸出沒有任何操作,上述電路只是接了一個顯示單元而已。

一文了解二進制和CPU工作原理

上面展示的是一個存儲單元。它使用了大量的 NAND 門,并且在實際生產(chǎn)中,根據(jù)存儲技術(shù)的不同,它們可能會大不相同,但其功能是相同的。

您給它一些輸入,并打開“寫”位(Write 輸入 1),它將把輸入存儲在單元內(nèi)。這不僅是一個存儲單元,因為我們還需要一種從中讀取信息的方法。這是通過一個使能器完成的,該使能器是「存儲器」中每個位的“與”門的集合,所有位都與另一個輸入(即“讀取”位)綁定在一起。寫入和讀取位通常也稱為“設(shè)置”(set)和“啟用”(enable)。

上面整個存儲單元都包裹在所謂的寄存器中。這些寄存器連接到 總線,總線是圍繞整個系統(tǒng)運行的一束電線,并連接到每個組件。即使現(xiàn)代計算機也具有總線,盡管它們可能具有多個總線以提高多任務(wù)處理性能。

一文了解二進制和CPU工作原理

每個寄存器仍有一個讀寫位,但是在這種設(shè)置下,輸入和輸出是一樣的。這實際上很好。例如:如果要將 R1 的內(nèi)容復(fù)制到 R2,則應(yīng)打開 R1 的讀取位,這會將 R1 的內(nèi)容壓入總線。當(dāng)讀取位打開時,您將打開 R2 的寫入位,這會將總線內(nèi)容復(fù)制到 R2 中。

寄存器也用于制作 RAM。RAM 通常布置在網(wǎng)格中,并且導(dǎo)線有兩個方向:

一文了解二進制和CPU工作原理

解碼器采用二進制輸入并打開相應(yīng)的編號線。例如,11 在二進制數(shù)中是 3,即最高的 2 位數(shù)字,因此解碼器將打開最高的線路。每個路口都有一個寄存器。所有這些都連接到中央總線以及中央寫入和讀取輸入。只有跨寄存器的兩條導(dǎo)線也都打開時,讀和寫輸入才會打開,從而有效地允許您選擇要從中進行讀寫的寄存器。同樣,現(xiàn)代 RAM 要復(fù)雜得多,但是此設(shè)置仍然有效。

時鐘,步進器和解碼器

寄存器無處不在,是在 CPU 中移動數(shù)據(jù)并將信息存儲在 CPU 中的基本工具。那么,是什么告訴他們移動數(shù)據(jù)的呢?

時鐘是 CPU 核心中的第一個組件,它將按設(shè)置的時間間隔(以赫茲或每秒周期為單位)關(guān)閉和打開。這就是您看到的最直觀的 CPU 速度指標(biāo)。

一文了解二進制和CPU工作原理

時鐘具有三種不同的狀態(tài):基本時鐘,使能時鐘和設(shè)置時鐘?;緯r鐘將打開半個周期,另一半關(guān)閉。使能時鐘用于打開寄存器,并且需要更長的時間才能確保數(shù)據(jù)被使能。設(shè)置時鐘必須始終與使能時鐘同時打開,否則可能會寫入錯誤的數(shù)據(jù)。

時鐘連接到步進器,步進器將從 1 到最大步數(shù)進行計數(shù),并在完成后將自身重置為 1。時鐘還連接到 CPU 可以寫入的每個寄存器的 AND 門:

一文了解二進制和CPU工作原理

這些 “與” 門還連接到另一個組件的輸出,即指令解碼器。指令解碼器接受 SET R2 TO R1 之類的指令,并將其解碼為 CPU 可以理解的內(nèi)容。它有自己的內(nèi)部寄存器,稱為“指令寄存器”,該寄存器存儲了當(dāng)前操作。它的精確程度取決于您正在運行的系統(tǒng),但是一旦解碼,它將打開正確的設(shè)置并啟用正確寄存器的位,這些寄存器將根據(jù)時鐘觸發(fā)。

程序指令存儲在 RAM(或現(xiàn)代系統(tǒng)中的 L1 高速緩存,更靠近 CPU)中。由于程序數(shù)據(jù)與其他所有變量一樣都存儲在寄存器中,因此可以隨時對其進行操作以在程序中跳轉(zhuǎn)。這就是程序通過循環(huán)和 if 語句獲取結(jié)構(gòu)的方式。跳轉(zhuǎn)指令將指令解碼器正在讀取的存儲器中的當(dāng)前位置設(shè)置到其他位置。

一切如何配合

一文了解二進制和CPU工作原理

現(xiàn)在,我們對 CPU 工作原理的有了一些基本的了解。主總線跨越整個系統(tǒng),并連接到所有寄存器。完整的加法器以及其他一系列運算都打包在算術(shù)邏輯單元或 ALU 中。該 ALU 將與總線建立連接,并且還將具有自己的寄存器來存儲正在操作的第二個數(shù)字。

為了執(zhí)行計算,將程序數(shù)據(jù)從系統(tǒng) RAM 加載到控制部分??刂撇糠謴?RAM 中讀取兩個數(shù)字,將第一個數(shù)字加載到 ALU 的指令寄存器中,然后將第二個數(shù)字加載到總線上。同時,它向 ALU 發(fā)送指令代碼,告知其操作方法。然后,ALU 執(zhí)行所有計算,并將結(jié)果存儲在另一個寄存器中,CPU 可以從該寄存器中讀取該值,然后繼續(xù)該過程。

參考資料

  1. 原來,我們是這樣記數(shù)的 - https://www.jianshu.com/p/58844323e4fb
  2. 二進制數(shù)的運算方法 - https://www.jianshu.com/p/560aba49c9a4
  3. 文字,圖片,視頻,音頻的二進制表示 - https://blog.csdn.net/c46550/article/details/91040925
  4. 知乎 - 計算機只認識0和1但是怎么表示圖像和影視等等眾多應(yīng)用的?| @kross - https://www.zhihu.com/question/36269548
  5. Introduction to binary numbers - https://pmihaylov.com/intro-binary-numbers/
  6. What is Binary, and Why Do Computers Use It? - https://www.howtogeek.com/367621/what-is-binary-and-why-do-computers-use-it/
  7. CPU 是怎樣認識代碼的?| 知乎 - https://www.zhihu.com/question/348237008/answer/843382847 | @Zign
  8. HTG Explains: How Does a CPU Actually Work? - https://www.howtogeek.com/367931/htg-explains-how-does-a-cpu-actually-work/

特別推薦一個分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:

一文了解二進制和CPU工作原理

長按訂閱更多精彩▼

一文了解二進制和CPU工作原理

如有收獲,點個在看,誠摯感謝

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉