前言
本次計(jì)算機(jī)組成原理學(xué)習(xí)主要分為兩塊
- 1、計(jì)算機(jī)組成原理學(xué)習(xí)(一)
主要對(duì)計(jì)算計(jì)結(jié)構(gòu)和微處理器(CPU)功能原理進(jìn)行學(xué)習(xí) - 2、計(jì)算機(jī)組成原理學(xué)習(xí)(二)
主要對(duì)CPU,操作系統(tǒng),匯編、編程語(yǔ)言之間的運(yùn)行原理進(jìn)行學(xué)習(xí)
通過(guò)計(jì)算機(jī)編程語(yǔ)言的基本數(shù)據(jù)類(lèi)型設(shè)計(jì)的知識(shí)學(xué)習(xí),如果你還想深度了解一下編程語(yǔ)言如何通過(guò)編譯器在計(jì)算機(jī)中運(yùn)行,那么請(qǐng)接著看下面的內(nèi)容:
一、馮諾依曼結(jié)構(gòu)
- 馮·諾依曼結(jié)構(gòu)組成
運(yùn)算器、控制器、存儲(chǔ)器(一個(gè))、輸入設(shè)備和輸出設(shè)備
- 馮·諾依曼結(jié)構(gòu)體系結(jié)構(gòu)上主要特點(diǎn)有:
1、以運(yùn)算單元為中心
2、采用存儲(chǔ)程序原理
3、存儲(chǔ)器是按地址訪問(wèn)、線性編址的空間
4、控制流由指令流產(chǎn)生
5、指令由操作碼和地址碼組成
6、數(shù)據(jù)以二進(jìn)制編碼
馮·諾依曼結(jié)構(gòu)提出后的貢獻(xiàn)就是存儲(chǔ)程序概念的提出,并且得到了實(shí)現(xiàn),因?yàn)橹噶詈蛿?shù)據(jù)都是二進(jìn)制碼,指令和操作數(shù)的地址又密切關(guān)聯(lián),所以基于當(dāng)時(shí)的電子電路結(jié)構(gòu)水平,選擇這種結(jié)構(gòu)是必然的。
缺點(diǎn)就是這種指令和數(shù)據(jù)共享同一總線的結(jié)構(gòu),而且必須按照順序執(zhí)行,使得信息流的傳輸成為限制計(jì)算機(jī)性能的瓶頸,影響了數(shù)據(jù)處理速度的提高。
- 完整執(zhí)行一條指令結(jié)果流程如下:
目前大多數(shù)的計(jì)算機(jī)運(yùn)行都遵守馮諾依曼結(jié)構(gòu)。
二、哈佛結(jié)構(gòu)
- 哈佛結(jié)構(gòu)組成
運(yùn)算器、控制器、指令存儲(chǔ)器(一個(gè))、數(shù)據(jù)存儲(chǔ)器(一個(gè))、輸入設(shè)備和輸出設(shè)備
個(gè)人認(rèn)為哈佛結(jié)構(gòu)特點(diǎn)繼承了馮諾依曼結(jié)構(gòu)的特點(diǎn)。
哈佛結(jié)構(gòu)是將程序指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)分開(kāi)的處理器結(jié)構(gòu),兩條總線數(shù)據(jù)寬度可以不一致。
- 完整執(zhí)行一條指令結(jié)果流程如下:
注意
1、一些51單片機(jī),還有部分DSP芯片是哈佛結(jié)構(gòu)模式,所以它們只能執(zhí)行較少的任務(wù)。
2、隨著科技的發(fā)展,目前的計(jì)算機(jī)基本上混用兩種結(jié)構(gòu)模式,多核心多處理器高級(jí)處理芯片大多外圍采用馮諾依曼結(jié)構(gòu),局部采用哈佛結(jié)構(gòu).
3、哈佛結(jié)構(gòu)與馮諾依曼最大的區(qū)別在于存儲(chǔ)器分切割應(yīng)用上,因?yàn)楣鸾Y(jié)構(gòu)將存儲(chǔ)器分為指令和數(shù)據(jù)兩種,從而CPU與存儲(chǔ)器之間有兩條總線。
二、CPU
在上面中,我們已經(jīng)簡(jiǎn)單的了解了CPU與存儲(chǔ)器之間的通信,接下來(lái)我盡可能把自己的一些認(rèn)知加進(jìn)去,一起共同深度學(xué)習(xí)CPU的工作原理
1、CPU功能
現(xiàn)在市面上的CPU都有下圖的四大功能
注意:
現(xiàn)在新的CPU都有多個(gè)核心以及多級(jí)內(nèi)部復(fù)雜的緩存設(shè)計(jì),這樣的設(shè)計(jì)可以同時(shí)取到多條指令執(zhí)行,從而體現(xiàn)并行處理的目的,即便是這樣程序指令的順序執(zhí)行一直是一條嚴(yán)謹(jǐn)?shù)囊?guī)則。
2、CPU的組成
為了實(shí)現(xiàn)上面的功能,CPU一般有運(yùn)算器,控制器,寄存器三大組成部分,其內(nèi)部可以分的更細(xì),如下圖所示:
他們之間的邏輯處理如下圖所示:
盡管我們熟悉了CPU的運(yùn)作流程,但是必須要對(duì)以下幾個(gè)概念要熟悉掌握
- 指令周期
1、指令周期:執(zhí)行一條指令所需要的時(shí)間,一般由若干個(gè)[機(jī)器周期]組成,是從取指令、分析指令到執(zhí)行完所需的全部時(shí)間。指令周期的長(zhǎng)短與指令的復(fù)雜程度有關(guān)。
2、CPU周期:又稱機(jī)器周期,機(jī)器內(nèi)部各種操作大致可歸屬為對(duì)CPU內(nèi)部的操作和對(duì)主存的操作兩大類(lèi),由于CPU內(nèi)部操作速度較快,CPU訪問(wèn)一次內(nèi)存所花的時(shí)間較長(zhǎng),因此用從內(nèi)存讀取一條指令字的最短時(shí)間來(lái)定義,這個(gè)基準(zhǔn)時(shí)間就是CPU周期(機(jī)器周期)。一指令周期常常用若干個(gè)CPU周期數(shù)來(lái)表示。
3、時(shí)鐘周期:也稱為振蕩周期,定義為時(shí)鐘頻率的倒數(shù)。時(shí)鐘周期是計(jì)算機(jī)中最基本的、最小的時(shí)間單位。在一個(gè)時(shí)鐘周期內(nèi),CPU僅完成一個(gè)最基本的動(dòng)作。時(shí)鐘周期是一個(gè)時(shí)間的量。時(shí)鐘周期表示了SDRAM所能運(yùn)行的最高頻率。更小的時(shí)鐘周期就意味著更高的工作頻率。一個(gè)CPU周期包含有若干個(gè)時(shí)鐘周期。 - 時(shí)序產(chǎn)生器
CPU中一個(gè)類(lèi)似"作息時(shí)間"的東西,使計(jì)算機(jī)可以準(zhǔn)確、迅速、有條不紊地工作。機(jī)器一旦被啟動(dòng),即CPU開(kāi)始取指令并執(zhí)行指令時(shí),操作控制器就利用定時(shí)脈沖的順序和不同的脈沖間隔,提供計(jì)算機(jī)各部分工作時(shí)所需的各種微操作定時(shí)控制信號(hào),有條理、有節(jié)奏地指揮機(jī)器的動(dòng)作,規(guī)定在這個(gè)脈沖到來(lái)時(shí)做什么,在那個(gè)脈沖到來(lái)時(shí)又做什么,給計(jì)算機(jī)各部分提供工作所需的時(shí)間標(biāo)志。
注意:
1、一條指令分為兩部分:操作碼+地址碼。
2、執(zhí)行一條指令的順序是:CPU先把該指令從主存讀取到數(shù)據(jù)寄存器中,然后再傳送至指令寄存器。
3、執(zhí)行任何給定的指令:首先必須對(duì)操作碼進(jìn)行測(cè)試,目的是識(shí)別所要求的操作,而指令譯碼器(Instruction Decoder,ID)就是完成這項(xiàng)工作的。
4、執(zhí)行指令時(shí):CPU能自動(dòng)遞增PC的內(nèi)容,使其始終保持將要執(zhí)行的下一條指令的主存地址,為取下一條指令做好準(zhǔn)備。
5、一個(gè)CPU至少要有一個(gè)累加寄存器
6、這里的數(shù)據(jù)緩沖寄存器就是數(shù)據(jù)寄存器
7、微操作:控制器在實(shí)現(xiàn)一條指令的功能時(shí),總是把每一條指令分解成一系列時(shí)間上先后有序的最基本、最簡(jiǎn)單、不可再分的操作控制動(dòng)作,這種最基本、最簡(jiǎn)單、不可再分的操作稱為微操作
8、數(shù)據(jù)通路:通常把許多寄存器之間傳輸信息的通路稱為數(shù)據(jù)通路(Data Path),它控制信息從什么地方開(kāi)始,中間經(jīng)過(guò)哪個(gè)寄存器或多路開(kāi)關(guān),最后傳送到哪個(gè)寄存器。