日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式微處理器
[導(dǎo)讀]來源 :老九學(xué)堂 作為一名程序員,與計(jì)算機(jī)打交道的日子不計(jì)其數(shù)。 不管你是玩硬件還是做軟件,你的世界自然都少不了計(jì)算機(jī)最核心的——CPU。 01 CPU是什么? CPU 的全稱是?Central Processing Unit, 也是你的電腦中最硬核的組件。 CPU 與計(jì)算機(jī)的關(guān)系就相當(dāng)

來源 :老九學(xué)堂


作為一名程序員,與計(jì)算機(jī)打交道的日子不計(jì)其數(shù)。



不管你是玩硬件還是做軟件,你的世界自然都少不了計(jì)算機(jī)最核心的——CPU


01

CPU是什么?


CPU 的全稱是 Central Processing Unit,


也是你的電腦中最硬核的組件。


CPU 與計(jì)算機(jī)的關(guān)系就相當(dāng)于大腦和人的關(guān)系。


它是一種小型的計(jì)算機(jī)芯片,通常嵌入在電腦的主板上。


CPU的構(gòu)建是通過在單個(gè)計(jì)算機(jī)芯片上放置數(shù)十億個(gè)微型晶體管來實(shí)現(xiàn)。


這些晶體管使它能夠執(zhí)行運(yùn)行存儲(chǔ)在系統(tǒng)內(nèi)存中的程序所需的計(jì)算


所以,也可以說CPU決定了你電腦的計(jì)算能力。



02

CPU 實(shí)際做什么?


CPU的工作核心是從程序或應(yīng)用程序中獲取指令并且執(zhí)行計(jì)算。


這個(gè)過程一共有三個(gè)關(guān)鍵階段:提取,解碼和執(zhí)行。


CPU先從系統(tǒng)的RAM中提取指令,隨后解碼該指令的實(shí)際內(nèi)容,最后再由CPU的相關(guān)部分執(zhí)行該指令。


03

CPU 的內(nèi)部結(jié)構(gòu)


剛才提到了很多CPU的重要性,那么 CPU 的內(nèi)部結(jié)構(gòu)是什么呢?


又是由什么組成的呢?


下圖展示了一般程序的運(yùn)行流程(以 C 語言為例),


一般來說,了解程序的運(yùn)行流程是掌握程序運(yùn)行機(jī)制的基礎(chǔ)和前提。



在這個(gè)流程中,CPU負(fù)責(zé)解釋和運(yùn)行最終轉(zhuǎn)換成機(jī)器語言的內(nèi)容。


CPU 主要由兩部分構(gòu)成:控制單元和算數(shù)邏輯單元(ALU)。


控制單元:從內(nèi)存中提取指令并解碼執(zhí)行;


算數(shù)邏輯單元(ALU):處理算數(shù)和邏輯運(yùn)算。


CPU和內(nèi)存都是由許多晶體管組成的電子部件,可以把它比作計(jì)算機(jī)的心臟和大腦。


它能夠接收數(shù)據(jù)輸入,執(zhí)行指令并且處理相關(guān)信息。


它與輸入/輸出(I / O)設(shè)備進(jìn)行通信,這些設(shè)備向 CPU 發(fā)送數(shù)據(jù)和從 CPU 接收數(shù)據(jù)。


從功能上來看,CPU的內(nèi)容是由寄存器、控制器、運(yùn)算器和時(shí)鐘四部分組成的,各個(gè)部分之間通電信號(hào)來連通。




接下來簡單介紹一下內(nèi)存,


為什么說 到CPU需要講一下內(nèi)存呢?


因?yàn)閮?nèi)存是與 CPU 進(jìn)行溝通的橋梁。


計(jì)算機(jī)中所有程序的運(yùn)行都在內(nèi)存中得到運(yùn)行的。


內(nèi)存一般又被稱為主存,它的作用是存放CPU中的運(yùn)算數(shù)據(jù),以及與硬盤等外部存儲(chǔ)設(shè)備交換的數(shù)據(jù)。


CPU會(huì)在計(jì)算機(jī)運(yùn)轉(zhuǎn)時(shí),把需要運(yùn)算的數(shù)據(jù)調(diào)到主存中進(jìn)行運(yùn)算。


在運(yùn)算完成之后,CPU將結(jié)果傳送出來,主存的運(yùn)行也決定了計(jì)算機(jī)的穩(wěn)定運(yùn)行。


主存一般通過控制芯片與CPU相連,由可讀寫的元素構(gòu)成,每個(gè)字節(jié)都有一個(gè)地址編號(hào)。


CPU 通過地址從主存中讀取數(shù)據(jù)和指令,也可以根據(jù)地址寫入數(shù)據(jù)。


注意一點(diǎn):當(dāng)計(jì)算機(jī)關(guān)機(jī)時(shí),內(nèi)存中的指令和數(shù)據(jù)也會(huì)被清除。


04

CPU 是寄存器的集合體


在 CPU 的四個(gè)結(jié)構(gòu)中,寄存器的重要性遠(yuǎn)遠(yuǎn)高于其余三個(gè)。


為什么這么說?


因?yàn)槌绦蛲ǔJ前鸭拇嫫髯鳛閷?duì)象來進(jìn)行描述的。


而說到寄存器,就不得不說到匯編語言,說到匯編語言,就不得不說到高級(jí)語言,說起高級(jí)語言也就不得不提及語言的概念。

05

計(jì)算機(jī)語言


人和人之間最古老和直接的溝通媒介是語言。


但是和計(jì)算機(jī)溝通,就必須按照計(jì)算機(jī)指令來交換,其中就涉及到語言的問題。


最早,為了解決計(jì)算機(jī)和人類的交流的問題,出現(xiàn)了匯編語言。


但是匯編語言晦澀難懂,所以又出現(xiàn)了像是 C,C++,Java的這種高級(jí)語言。


因此,計(jì)算機(jī)語言一般分為低級(jí)語言和高級(jí)語言。


使用高級(jí)語言編寫的程序,經(jīng)過編譯轉(zhuǎn)換成機(jī)器語言后才能運(yùn)行,而匯編語言經(jīng)過匯編器才能轉(zhuǎn)換為機(jī)器語言。


06

匯編語言


我們先來看一段采用匯編語言表示的代碼清單:


mov eax, dword ptr [ebp-8]   /* 把數(shù)值從內(nèi)存復(fù)制到 eax */


add eax, dword ptr [ebp-0Ch] /* 把 eax 的數(shù)值和內(nèi)存的數(shù)值相加 */


mov dword ptr [ebp-4], eax /* 把 eax 的數(shù)值(上一步的結(jié)果)存儲(chǔ)在內(nèi)存中*/



這是采用匯編語言編寫程序的一部分。


匯編語言采用助記符來編寫程序,每個(gè)原本是電信號(hào)的機(jī)器語言指令會(huì)有一個(gè)與其對(duì)應(yīng)的助記符。


比如,


mov,add 分別是數(shù)據(jù)的存儲(chǔ)(move)和相加(addition)的簡寫。


匯編語言和機(jī)器語言一一對(duì)應(yīng)。


這點(diǎn)和高級(jí)語言不同,我們通常把匯編語言編寫的程序轉(zhuǎn)換為機(jī)器語言的這個(gè)過程,稱之為匯編。


與之相反,將機(jī)器語言轉(zhuǎn)化為匯編語言的過程稱之為反匯編。


匯編語言可以幫助你理解計(jì)算機(jī)做了什么工作,機(jī)器語言級(jí)別的程序通過寄存器來處理,


上面代碼中的eax,ebp都是表示的寄存器,它們是CPU內(nèi)部寄存器的名稱。


因此,可以說 CPU 是一系列寄存器的集合體。


一般,在內(nèi)存中的存儲(chǔ)通過地址編號(hào)來表示,寄存器的種類是通過名字來區(qū)分。


那些不同類型的CPU,其內(nèi)部寄存器的種類、數(shù)量以及寄存器存儲(chǔ)的數(shù)值范圍也都是不同的。


不過,根據(jù)功能的不同,我們可以將寄存器劃分為下面幾類:



其中,程序計(jì)數(shù)器、標(biāo)志寄存器、累加寄存器、指令寄存器和棧寄存器只有一個(gè),其他寄存器一般有好幾個(gè)。


07

程序計(jì)數(shù)器


程序計(jì)數(shù)器是用來存儲(chǔ)嚇下一條指令所在單元的地址。


程序在執(zhí)行時(shí),PC的初值作為程序第一條指令的地址,在順序執(zhí)行程序時(shí),


控制器先按照程序計(jì)數(shù)器所指出的指令地址,從內(nèi)存中取出一條指令,


隨后分析和執(zhí)行該指令,并同時(shí)將PC的值加1指向下一條要執(zhí)行的指令。


我們可以通過一個(gè)事例來仔細(xì)看一下程序計(jì)數(shù)器的執(zhí)行過程:



這是一段進(jìn)行相加的操作,程序啟動(dòng),在經(jīng)過編譯解析后,會(huì)經(jīng)由操作系統(tǒng)把硬盤中的程序復(fù)制到內(nèi)存中。


以上示例程序,就是將123和456執(zhí)行相加的操作,隨后將結(jié)果輸出到顯示器上。


因?yàn)槭褂脵C(jī)器語言很難描述,所以這些都是經(jīng)過翻譯后的結(jié)果。


事實(shí)上,每個(gè)指令和數(shù)據(jù)都有可能分布在不同的地址上,但是為了更好的說明,就把組成一條指令的內(nèi)存和數(shù)據(jù)放在了一個(gè)內(nèi)存地址上。


地址0100是程序運(yùn)行的起始位置,


Windows等操作系統(tǒng)把程序從硬盤復(fù)制到內(nèi)存以后,


就會(huì)將程序計(jì)數(shù)器作為設(shè)定為起始位置0100,


然后再執(zhí)行程序,每次執(zhí)行一條指令后,程序計(jì)數(shù)器的數(shù)值就會(huì)增加1,或者是直接指向下一條指令的地址。


隨后,CPU會(huì)根據(jù)程序計(jì)數(shù)器的數(shù)值,從內(nèi)存中讀取命令并且執(zhí)行,


換言之,程序計(jì)數(shù)器控制著程序的流程。


08

條件分支和循環(huán)機(jī)制


小伙伴們都學(xué)過高級(jí)語言,高級(jí)語言匯總的條件控制流程主要分為順序執(zhí)行、條件分支、循環(huán)判斷三種。


順序執(zhí)行是按照地址的內(nèi)容順序的執(zhí)行命令。


而條件分支則是根據(jù)條件執(zhí)行任意地址的指令。


循環(huán)則是重復(fù)執(zhí)行同一地址的指令。


一般情況下,順序執(zhí)行的情況較簡單,每次執(zhí)行一條指令程序計(jì)數(shù)器的值就是+1。


條件和循環(huán)分支會(huì)使得程序計(jì)數(shù)器的值指向任意的地址,


這樣一來,程序就可以返回到上一個(gè)地址來重復(fù)執(zhí)行同一個(gè)指令,或者跳轉(zhuǎn)到其它任意指令。


下面,我們就以條件分支舉例來說明程序的執(zhí)行過程:


程序的開始過程和順序流程是一樣的,


程序的順序流程和開始過程相同。


CPU從0100處就開始執(zhí)行命令,在0100和0101中都是順序執(zhí)行,PC的值順序+1,執(zhí)行到0102地址的指令時(shí),


判斷0106寄存器的數(shù)值大于0,跳轉(zhuǎn)到0104地址的指令,再將數(shù)值輸?shù)斤@示器中,隨后結(jié)束程序,0103的指令就被跳過了。


這和我們程序中的if()判斷相同,在不滿足條件的情況下,指令一般會(huì)直接跳過。


因此,PC的執(zhí)行過程沒有直接+1,而是下一條指令的地址。


09

標(biāo)志寄存器


條件和循環(huán)分支會(huì)使用到 jump(跳轉(zhuǎn)指令),


會(huì)根據(jù)當(dāng)前的指令來判斷是否跳轉(zhuǎn),上面我們提到了標(biāo)志寄存器,


無論當(dāng)前累加寄存器的運(yùn)算結(jié)果是正數(shù)、負(fù)數(shù)還是零,標(biāo)志寄存器都會(huì)將其保存。


CPU 在進(jìn)行運(yùn)算時(shí),標(biāo)志寄存器的數(shù)值會(huì)根據(jù)當(dāng)前運(yùn)算的結(jié)果自動(dòng)設(shè)定,運(yùn)算結(jié)果的正、負(fù)和零三種狀態(tài)由標(biāo)志寄存器的三個(gè)位表示。


標(biāo)志寄存器的第一個(gè)字節(jié)位、第二個(gè)字節(jié)位、第三個(gè)字節(jié)位各自的結(jié)果都為1時(shí),分別代表著正數(shù)、零和負(fù)數(shù)。


CPU 的執(zhí)行機(jī)制比較有意思,


假設(shè)累加寄存器中存儲(chǔ)的 XXX 和通用寄存器中存儲(chǔ)的 YYY 做比較,執(zhí)行比較的背后,CPU 的運(yùn)算機(jī)制就會(huì)做減法運(yùn)算。


無論減法運(yùn)算的結(jié)果是正數(shù)、零還是負(fù)數(shù),都會(huì)保存到標(biāo)志寄存器中。


結(jié)果為正表示 XXX 比 YYY 大,結(jié)果為零表示 XXX 和 YYY 相等,結(jié)果為負(fù)表示 XXX 比 YYY 小。


程序比較的指令,實(shí)際上是在 CPU 內(nèi)部做減法運(yùn)算。


10

通過地址和索引實(shí)現(xiàn)數(shù)組


接下來是基址寄存器和變址寄存器,通過這兩個(gè)寄存器,可以對(duì)主存上的特定區(qū)域進(jìn)行劃分,以此實(shí)現(xiàn)類似數(shù)組的操作。


首先,可以用十六進(jìn)制數(shù)將計(jì)算機(jī)內(nèi)存上的 00000000 - FFFFFFFF 的地址劃分出來。


這樣,凡是該范圍的內(nèi)存地址,只要有一個(gè) 32 位的寄存器,就可以查看全部地址。


但是,要是想像數(shù)組那樣,分割特定的內(nèi)存區(qū)域以達(dá)到連續(xù)查看的目的的話,使用兩個(gè)寄存器會(huì)更方便一些。


比如,我們用兩個(gè)寄存器來表示內(nèi)存的值。


這種表示方式很像數(shù)組的構(gòu)造,數(shù)組是指同樣長度的數(shù)據(jù),在內(nèi)存中進(jìn)行連續(xù)排列的數(shù)據(jù)構(gòu)造。


用數(shù)組名表示數(shù)組全部的值,通過索引來區(qū)分?jǐn)?shù)組的各個(gè)數(shù)據(jù)元素,


例如: a[0] - a[4],[]內(nèi)的 0 - 4 就是數(shù)組的下標(biāo)。


12

CPU 指令執(zhí)行過程


那說了這么多,CPU 到底是怎么一條條的執(zhí)行指令的呢?


幾乎全部的馮·諾伊曼型計(jì)算機(jī)的CPU,


工作都可以分為5個(gè)階段:取指令、指令譯碼、執(zhí)行指令、訪存取數(shù)、結(jié)果寫回。


取指令階段就是將內(nèi)存中的指令讀取到CPU中寄存器的過程,程序起存起用語存儲(chǔ)下一條指令所在的地址;


在取指令完成后,立馬進(jìn)入指令譯碼階段,


在指令譯碼階段,指令編碼器按照預(yù)先的指令格式,對(duì)取回的指令進(jìn)行拆分和解釋,識(shí)別區(qū)分出不同的指令類別和各種獲取操作數(shù)的方法;


執(zhí)行指令階段的任務(wù)是完成指令所規(guī)定的各種操作,具體實(shí)現(xiàn)指令的功能;


訪問取數(shù)階段的任務(wù)是:根據(jù)指令地址碼,得到操作數(shù)在主存中的地址,并從主存中讀取該操作數(shù)用于運(yùn)算;


結(jié)果寫回階段作為最后一個(gè)階段,把執(zhí)行指令階段的運(yùn)行結(jié)果數(shù)據(jù)“寫回”到某種存儲(chǔ)形式:結(jié)果數(shù)據(jù)經(jīng)常被寫到CPU的內(nèi)部寄存器中,以便被后續(xù)的指令快速地存取。


以上就是圍繞CPU分享的12個(gè)內(nèi)容,希望對(duì)小伙伴們有用~


-END-




推薦閱讀



【01】深度科普:CPU與GPU兩者之間的區(qū)別與是什么?xPU又是什么鬼?
【02】我,一個(gè)靠 GitHub 打賞謀生的程序員,如何做到年入 10 萬美元?
【03】CPU緩存有什么用?科普一下關(guān)于CPU緩存的作用
【04】全面分析6大國產(chǎn)CPU處理器
【05】FPGA硬核和軟核處理器的區(qū)別


免責(zé)聲明:整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除

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

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

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

由臺(tái)達(dá)集團(tuán)于2026年3月29日通過美通社發(fā)布新聞稿《集裝箱式SST直流移動(dòng)智算中心發(fā)布》中,第3張有誤,已進(jìn)行替換。特此更正,更新后的全文及圖片如下: 集裝箱式SST直流移動(dòng)智算中心發(fā)布 臺(tái)達(dá)、漢騰科技、龍芯中科攜...

關(guān)鍵字: 移動(dòng) ST 固態(tài)變壓器 CPU

面對(duì)AI Agent與Physical AI的浪潮,單純依靠增加GPU或NPU的補(bǔ)丁式方案已難以為繼,CPU架構(gòu)必須進(jìn)行面向AI的底層重塑。 阿里達(dá)摩院發(fā)布的玄鐵C950旗艦處理器,不僅刷新了單核性能紀(jì)錄,更通過原生A...

關(guān)鍵字: 玄鐵C950 CPU AI 物理AI RISC-V

北京2026年3月27日 /美通社/ -- 當(dāng)?shù)谑鍖萌珖\(yùn)動(dòng)會(huì)辦公系統(tǒng)全程穩(wěn)定運(yùn)行時(shí),當(dāng)銀行柜員輕點(diǎn)鼠標(biāo)實(shí)現(xiàn)業(yè)務(wù)秒級(jí)響應(yīng)時(shí),當(dāng)大學(xué)生刷一卡通順暢進(jìn)出宿舍、食堂、圖書館時(shí),當(dāng)新能源汽車充電樁智能調(diào)度、巨災(zāi)預(yù)警系統(tǒng)精準(zhǔn)響應(yīng)...

關(guān)鍵字: CPU 指令集 芯片 操作系統(tǒng)

成立三十余年來,Arm一直是芯片行業(yè)特殊的“幕后推手”——不生產(chǎn)一顆芯片,卻定義了全球99%智能手機(jī)的底層架構(gòu)。然而,這家長期保持中立的IP授權(quán)巨頭,如今正打破自己一手建立的商業(yè)規(guī)則。

關(guān)鍵字: ARM CPU 芯片

Arm 首次將其平臺(tái)矩陣拓展至量產(chǎn)芯片產(chǎn)品,為業(yè)界提供覆蓋 IP、Arm計(jì)算子系統(tǒng) (CSS)及芯片的最廣泛的計(jì)算產(chǎn)品選擇。 發(fā)布首款由 Arm 設(shè)計(jì)的數(shù)據(jù)中心 CPU——Arm AGI CPU,專為代理式AI 基...

關(guān)鍵字: ARM CPU 數(shù)據(jù)中心 代理式AI

2026年3月24日,美國加州圣何塞訊——Super Micro Computer, Inc.(NASDAQ:SMCI)作為云端計(jì)算、AI/機(jī)器學(xué)習(xí)、存儲(chǔ)和5G/邊緣領(lǐng)域的全方位IT解決方案供應(yīng)商,宣布推出基于NVIDI...

關(guān)鍵字: DCBBS液冷架構(gòu) CPU 存儲(chǔ)

3月24日,由阿里巴巴達(dá)摩院主辦的2026玄鐵RISC-V生態(tài)大會(huì)在上海舉行。高通、Arteris、Canonical、SHD Group、海爾、中興通訊、全志科技、北京智芯微、南芯科技等全球數(shù)百家產(chǎn)學(xué)研機(jī)構(gòu)齊聚一堂,分...

關(guān)鍵字: RISC-V CPU 算力

Supermicro的NVIDIA Vera Rubin NVL72與HGX Rubin NVL8系統(tǒng)是基于DCBBS液冷架構(gòu)所設(shè)計(jì),與NVIDIA Blackwell...

關(guān)鍵字: CPU MICRO NVIDIA SUPER

3月24日消息,今日,在上海舉行的2026玄鐵RISC-V生態(tài)大會(huì)上,阿里巴巴達(dá)摩院發(fā)布新一代旗艦CPU產(chǎn)品玄鐵C950。

關(guān)鍵字: RISC-V CPU

March 18, 2026 ---- 根據(jù)TrendForce集邦咨詢最新AI Server研究,在大型云端服務(wù)供應(yīng)商(CSP)加大自研芯片力道的情況下,NVIDIA(英偉達(dá))在GTC 2026大會(huì)改為著重各領(lǐng)域的AI...

關(guān)鍵字: ASIC GPU CPU
關(guān)閉