當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]本文我們以Intel為例對(duì)CPU的工作原理做簡(jiǎn)單介紹,僅僅是簡(jiǎn)單介紹,那么AMD,ARM,MIPS甚至PowerPC你應(yīng)該會(huì)觸類旁通才對(duì)。

 一直以來(lái),總以為CPU內(nèi)部真是如當(dāng)年學(xué)習(xí)《計(jì)算機(jī)組成原理》時(shí)書上所介紹的那樣,是各種邏輯門器件的組合。當(dāng)看到納米技術(shù)時(shí)就想,真的可以把那些器件做的那么小么?直到看了Intel CPU制作流程及AMD芯片的制作流程的介紹不禁感慨,原來(lái)科技是如此的發(fā)達(dá)。

本文我們以Intel為例對(duì)CPU的工作原理做簡(jiǎn)單介紹,僅僅是簡(jiǎn)單介紹,那么AMD,ARM,MIPS甚至PowerPC你應(yīng)該會(huì)觸類旁通才對(duì)。

還記得那是1968年7月18日,鮑勃-諾斯和戈登-摩爾的新公司在美國(guó)加利福尼亞州,美麗的圣弗朗西斯科灣畔芒延維尤城的梅多費(fèi)大街365號(hào)開張了。并在成立不久斥資15000美元從一家叫INTELCO的公司手中買下了Intel名稱的使用權(quán)。由此Intel這位半導(dǎo)體巨人開始了他在IT行業(yè)傳奇般的歷史。

1971年11月15日,這一天被當(dāng)作全球IT界具有里程碑意義的日子而被寫入許多計(jì)算機(jī)專業(yè)教科書。Intel公司的工程師特德·霍夫發(fā)明了世界上第一個(gè)微處理器—4004,這款4位微處理器雖然只有45條指令,而且每秒只能執(zhí)行5萬(wàn)條指令。甚至比不上1946年由美國(guó)陸軍賓夕法尼亞大學(xué)研制的世界第一臺(tái)計(jì)算機(jī)ENIAC。但它的集成度卻要高很多,一塊4004的重量還不到一盅司。 他因發(fā)明了微處理器,被英國(guó)《經(jīng)濟(jì)學(xué)家》雜志稱為“第二次世界大戰(zhàn)以來(lái)最有影響的科學(xué)家之一”。Intel公司的CPU發(fā)展歷程如下表所示:

 

 

以及后面的Pentium 1,2,3和4,再到酷睿、酷睿2,這里就不再一一列舉。Intel從8086開始,就進(jìn)入了我們所謂的x86時(shí)代。而80386的誕生則標(biāo)志著Intel正是進(jìn)入了32位微處理器的時(shí)代。從80386到Pentium 4這個(gè)年代的CPU,就是傳說(shuō)中的IA-32時(shí)代。

我們都知道CPU的根本任務(wù)就是執(zhí)行指令,對(duì)計(jì)算機(jī)來(lái)說(shuō)最終都是一串由“0”和“1”組成的序列。CPU從邏輯上可以劃分成3個(gè)模塊,分別是控制單元、運(yùn)算單元和存儲(chǔ)單元,這三部分由CPU內(nèi)部總線連接起來(lái)。如下所示:

 

 

控制單元:控制單元是整個(gè)CPU的指揮控制中心,由指令寄存器IR(Instruction Register)、指令譯碼器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,對(duì)協(xié)調(diào)整個(gè)電腦有序工作極為重要。它根據(jù)用戶預(yù)先編好的程序,依次從存儲(chǔ)器中取出各條指令,放在指令寄存器IR中,通過指令譯碼(分析)確定應(yīng)該進(jìn)行什么操作,然后通過操作控制器OC,按確定的時(shí)序,向相應(yīng)的部件發(fā)出微操作控制信號(hào)。操作控制器OC中主要包括節(jié)拍脈沖發(fā)生器、控制矩陣、時(shí)鐘脈沖發(fā)生器、復(fù)位電路和啟停電路等控制邏輯。

運(yùn)算單元:是運(yùn)算器的核心??梢詧?zhí)行算術(shù)運(yùn)算(包括加減乘數(shù)等基本運(yùn)算及其附加運(yùn)算)和邏輯運(yùn)算(包括移位、邏輯測(cè)試或兩個(gè)值比較)。相對(duì)控制單元而言,運(yùn)算器接受控制單元的命令而進(jìn)行動(dòng)作,即運(yùn)算單元所進(jìn)行的全部操作都是由控制單元發(fā)出的控制信號(hào)來(lái)指揮的,所以它是執(zhí)行部件。

存儲(chǔ)單元:包括CPU片內(nèi)緩存和寄存器組,是CPU中暫時(shí)存放數(shù)據(jù)的地方,里面保存著那些等待處理的數(shù)據(jù),或已經(jīng)處理過的數(shù)據(jù),CPU訪問寄存器所用的時(shí)間要比訪問內(nèi)存的時(shí)間短。采用寄存器,可以減少CPU訪問內(nèi)存的次數(shù),從而提高了CPU的工作速度。但因?yàn)槭艿叫酒娣e和集成度所限,寄存器組的容量不可能很大。寄存器組可分為專用寄存器和通用寄存器。專用寄存器的作用是固定的,分別寄存相應(yīng)的數(shù)據(jù)。而通用寄存器用途廣泛并可由程序員規(guī)定其用途,通用寄存器的數(shù)目因微處理器而異。這個(gè)是我們以后要介紹這個(gè)重點(diǎn),這里先提一下。

我們將上圖細(xì)化一下,可以得出CPU的工作原理概括如下:

 

 

總的來(lái)說(shuō),CPU從內(nèi)存中一條一條地取出指令和相應(yīng)的數(shù)據(jù),按指令操作碼的規(guī)定,對(duì)數(shù)據(jù)進(jìn)行運(yùn)算處理,直到程序執(zhí)行完畢為止。

上圖中我沒有畫總線,只是用邏輯方式對(duì)其進(jìn)行呈現(xiàn)。原因早期Intel的微處理器,諸如8085,8086/8088CPU,普遍采用了地址總線和數(shù)據(jù)總線復(fù)用技術(shù),即將部分(或全部)地址總線與數(shù)據(jù)總線共用CPU的一些引腳。例如8086外部地址總線有20根,數(shù)據(jù)總線復(fù)用了地址總線的前16根引腳。復(fù)用的數(shù)據(jù)總線和地址總線雖然可以少CPU的引腳數(shù),但卻引入了控制邏輯及操作序列上的復(fù)雜性。所以,自80286開始,Intel的CPU才采用分開的地址總線和數(shù)據(jù)總線。

不管是復(fù)用還是分開,對(duì)我們理解CPU的運(yùn)行原理沒啥影響,上圖沒畫總線的目的就是怕有些人太過于追求細(xì)節(jié),一頭扎下去,浮不起來(lái),不能從宏觀上藐視敵人。

OK,總結(jié)一下,CPU的運(yùn)行原理就是:控制單元在時(shí)序脈沖的作用下,將指令計(jì)數(shù)器里所指向的指令地址(這個(gè)地址是在內(nèi)存里的)送到地址總線上去,然后CPU將這個(gè)地址里的指令讀到指令寄存器進(jìn)行譯碼。對(duì)于執(zhí)行指令過程中所需要用到的數(shù)據(jù),會(huì)將數(shù)據(jù)地址也送到地址總線,然后CPU把數(shù)據(jù)讀到CPU的內(nèi)部存儲(chǔ)單元(就是內(nèi)部寄存器)暫存起來(lái),最后命令運(yùn)算單元對(duì)數(shù)據(jù)進(jìn)行處理加工。周而復(fù)始,一直這樣執(zhí)行下去,天荒地老,??葜€,直到停電。

如果你對(duì)這段話還是覺得比較暈乎,那么就看我們老師是怎么講的:

1、取指令:CPU的控制器從內(nèi)存讀取一條指令并放入指令寄存器。指令的格式一般是這個(gè)樣子滴:

 

 

操作碼就是匯編語(yǔ)言里的mov,add,jmp等符號(hào)碼;操作數(shù)地址說(shuō)明該指令需要的操作數(shù)所在的地方,是在內(nèi)存里還是在CPU的內(nèi)部寄存器里。

2、指令譯碼:指令寄存器中的指令經(jīng)過譯碼,決定該指令應(yīng)進(jìn)行何種操作(就是指令里的操作碼)、操作數(shù)在哪里(操作數(shù)的地址)。

3、 執(zhí)行指令,分兩個(gè)階段“取操作數(shù)”和“進(jìn)行運(yùn)算”。

4、 修改指令計(jì)數(shù)器,決定下一條指令的地址。

 

 

關(guān)于CPU我們從宏觀上把握到這個(gè)程度就OK了,后面我們會(huì)逐步進(jìn)入微觀階段,依次介紹80X86寄存器及其用途,NASM匯編和AT&T的區(qū)別,以及C代碼中嵌入的匯編語(yǔ)言的寫法。之所以介紹匯編語(yǔ)言目的不是說(shuō)用匯編去寫代碼,那是相當(dāng)?shù)牟滑F(xiàn)實(shí),除非你是硬件驅(qū)動(dòng)工程師。稍微偏上層一點(diǎn)的開發(fā)人員懂點(diǎn)低等的東西,對(duì)自己理解整個(gè)系統(tǒng)的架構(gòu)和原理是相當(dāng)有好處的。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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