最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

原理筆記

2023-06-13 09:02 作者:bili_75877260277  | 我要投稿

第一章 計算機系統(tǒng)概述

1.計算機發(fā)展歷程

1.1 硬件的發(fā)展

1.四代變化:


①第一代計算機:電子管時代。使用機器語言編程,體積大,成本高;

②第二代計算機:晶體管時代。軟件開始使用高級語言,操作系統(tǒng)雛形;

③第三代計算機:中小規(guī)模集成電路時代。高級語言發(fā)展迅速,開始有分時操作系統(tǒng);

④第四代計算機:超大規(guī)模集成電路時代。產(chǎn)生微處理器,并行,高速緩存等新概念;


2.元件的更新?lián)Q代


1.摩爾定律–》2.半導(dǎo)體存儲器–》3.微處理器的發(fā)展。


①微型計算機的發(fā)展以微處理器為標(biāo)志。

②傳統(tǒng)馮諾依曼體系采用 單指令流,單數(shù)據(jù)流方式。


1.2 軟件的發(fā)展

經(jīng)歷了面向機器的機器語言和匯編語言,面向問題的高級語言。

高級語言的發(fā)展又經(jīng)歷了科學(xué)工程計算的FORTRAN -->結(jié)構(gòu)化設(shè)計的PASCAL --> 面向?qū)ο蟮腃++ -->適應(yīng)網(wǎng)絡(luò)的Java。


2.計算機系統(tǒng)結(jié)構(gòu)層次

2.1 計算硬件的基本組成

輸入設(shè)備:將信息轉(zhuǎn)為計算機能識別的形式輸入。

輸出設(shè)備:將計算機處理結(jié)果以人們能認(rèn)識的形式輸出。

存儲器:計算機的存儲部件,用來存放程序和數(shù)據(jù)。

運算器:是計算機的執(zhí)行部件,進行算數(shù)和邏輯運算。

控制器:指揮中心,協(xié)調(diào)各部件工作。

2.2 早期馮諾依曼

提出“存儲程序”概念。存儲程序?qū)⒅噶钜远M制代碼的形式事先輸入計算機的主存儲器,然后按其在存儲器中首地址執(zhí)行程序的第一條指令,以后就按該程序的規(guī)定順序執(zhí)行其他指令,直到程序執(zhí)行結(jié)構(gòu)。


馮諾依曼體系的特點:


1.由五大部件組成。

2.指令和數(shù)據(jù)以同等地位存于存儲器,可按地址尋訪。

3.指令和數(shù)據(jù)用二進制表示。

4.指令由操作碼和地址碼組成。

5.指令在存儲器內(nèi)按順序存放。

6.早期馮諾依曼以運算器為中心?,F(xiàn)代存儲器已經(jīng)以存儲器為中心,使IO盡可能繞過CPU


現(xiàn)代計算機結(jié)構(gòu):




2.3 認(rèn)識各個部件

1.輸入設(shè)備

2.輸出設(shè)備

3.存儲器


①也稱主存儲器,CPU能直接訪問的存儲器是主存儲器,輔助存儲器(外存)用來幫主存儲器記憶更多信息。

②主存儲器由多個存儲單元組成,每個存儲單元包括若干存儲元件。每個存儲單元可存儲一串二進制代碼,稱這串代碼為存儲字。稱這串代碼的位數(shù)為存儲字長。

③工作方式:按存儲單元地址存取,即按地址存取方式。





1.地址寄存器(MAR):存放訪存地址,用于尋址,來找存儲單元。一般和存儲字長相等。

2.數(shù)據(jù)寄存器(MDR):暫存從存儲器讀寫的信息。

3.時序控制邏輯:產(chǎn)生存儲操作的時序信號。

4.存儲體:數(shù)據(jù)在存儲體內(nèi)按地址存取。


基本概念:


1.存儲單元:每個存儲單元存放一串二進制代碼。

2.存儲字:存儲單元中二進制代碼的組合。

3.存儲字長:存儲單元中二進制代碼的位數(shù)。

4.存儲元:存儲二進制的電子元件,每個存儲元可存1bit。


4. 運算器


運算器用于進行算術(shù)運算和邏輯運算。核心是算數(shù)邏輯單元(ALU)。主要包括:

1.ACC:累加器,用于存儲操作數(shù),或運算結(jié)果。

2.MQ:乘商寄存器,在乘、除運算時,用于存儲操作數(shù)或運算結(jié)果。

3.X:通用的操作數(shù)寄存器,用于存放操作數(shù)。

4.ALU:算術(shù)邏輯單元,通過內(nèi)部復(fù)雜的電路實現(xiàn)算數(shù)運算、邏輯運算。

5.PSW:程序狀態(tài)寄存器,存放標(biāo)志信息,如是否溢出,有無進位。


5.控制器


控制器是計算機的控制中心,協(xié)調(diào)計算機的各項工作。主要包括:

1.CU:控制單元,分析指令,給出控制信號。

2.IR:指令寄存器,存儲當(dāng)前執(zhí)行的指令。

3.PC:程序計數(shù)器,存放下一條指令地址,有自動加1功能。


完成一條指令包括取指令(PC和IR),分析指令,執(zhí)行指令(CU)。

1

3.工作過程

三個步驟:

1.程序和數(shù)據(jù)裝入主存。

2.源程序轉(zhuǎn)換為可執(zhí)行文件。

3.可執(zhí)行文件收地址逐條執(zhí)行指令。


1.計算機的多級結(jié)構(gòu):


1.高級語言機器(用編譯程序翻譯為匯編語言)–》2.匯編語言(用匯編程序翻譯成機器語言程序)–》3.操作系統(tǒng)機器(用機器語言解釋操作系統(tǒng))–》4.用機器語言的機器(用微程序解釋機器指令)–》5.微程序指令(由硬件直接執(zhí)行)。


2.翻譯程序


翻譯程序是把高級語言源程序轉(zhuǎn)換為機器語言程序的軟件。

1

翻譯程序有兩種


編譯程序:將高級語言一次全部翻譯為目標(biāo)程序。

解釋程序:翻譯一句執(zhí)行一句。

3.三個級別的語言:


1.機器語言:稱二進制代碼語言,計算機唯一可以識別的語言。

2.匯編語言:面向機器的低級語言,是機器語言的符號表示,與機器語言一一對應(yīng)。

3.高級語言:如JAVA C++,是方便程序設(shè)計人員解決問題的程序。


4.計算機性能指標(biāo)

1.機器字長:計算機一次運算所能處理的二進制數(shù)據(jù)的位數(shù)。

2.數(shù)據(jù)通路帶寬:數(shù)據(jù)總線一次所能并行傳輸信息的位數(shù)。

3.數(shù)據(jù)通路:子系統(tǒng)通過數(shù)據(jù)總線連接形成的數(shù)據(jù)傳輸路徑。

4.數(shù)據(jù)通路寬度:指數(shù)據(jù)總線的寬度。

5.主存容量:主存儲器能存儲信息的最大量,以字節(jié)衡量。如MAR為16位,則有65536個存儲單元(2的16次方,可稱64K),若MDR為32位,則存儲容量為64K x 32位。

6.運算速度:


1.吞吐量:單位時間內(nèi)處理請求的數(shù)量。

2.響應(yīng)時間:發(fā)送請求到作出響應(yīng)并獲得所需結(jié)果所需要的時間。包括CPU時間(運行花費)與等待時間。

3.CPU時鐘周期:主頻的倒數(shù),是CPU中最小的時間單位。

4.主頻:主時鐘的頻率,衡量機器速度,主頻越高,執(zhí)行時間越短。

5.CPI:執(zhí)行一條指令所需的時鐘周期數(shù)。(不同指令和相同指令CPI都有可能不同)。

6.CPU執(zhí)行時間:運行一個程序花費的時間。CPU執(zhí)行時間等于CPU時鐘周期數(shù)/主頻。

綜上CPU性能取決于:①主頻(時鐘頻率)。②每條指令執(zhí)行用的時鐘周期數(shù)。③指令條數(shù)。

7.MIPS:每秒執(zhí)行多少百萬條指令。IPS=主頻/CPI。


第二章 數(shù)據(jù)的表示和運算

1.二進制轉(zhuǎn)八進制/十六進制:整數(shù)部分三個或四個一組,小數(shù)部分三個或四個一組。

2.八進制/十六進制轉(zhuǎn)二進制:將每位改為三位或四位。

3.任意進制轉(zhuǎn)十進制:各位數(shù)碼與它們的權(quán)值相乘,把乘積相加,稱為按權(quán)展開相加法。如11.1=1x2一次方+1x2的0次方+1x2的負(fù)一次方。

4.十進制轉(zhuǎn)任意進制:整數(shù)部分除基取余(先余為低),小數(shù)部分乘基取整(先整為高)。


任意十進制一定可以表示二進制,任意二進制不一定表示十進制。

1

2.1 真值和機器數(shù)

1.真值:實際生活中帶“+”,“-”的數(shù)稱為真值。真值是機器數(shù)所代表的的實際值。

2.機器數(shù):將數(shù)據(jù)的符號數(shù)字化(0表正,1表負(fù)),這種數(shù)為機器數(shù)。


2.2 BCD碼

1. 8421碼


有權(quán)碼。各位的數(shù)值分別為8,4,2,1。如1000=8,0100=4。

①若8421碼轉(zhuǎn)為十進制<=9,則不需要修正,若>9,即>=10,則需要加6進行修正。

②1010到1111這六個為無效碼


2. 余3碼


無權(quán)碼。在8421碼基礎(chǔ)上加上二進制的 0011形成的。如8–》1011。


3.2421碼


有權(quán)碼。權(quán)值從高到低分別為2,4,2,1。特點是>=5的最高位為1而非0.如5=1011,并非0101。


2.2 校驗碼

1.def:是指能夠發(fā)現(xiàn)或能夠自動糾正錯誤的數(shù)據(jù)編碼,也稱檢錯糾錯編碼。

2.原理:增加冗余碼來檢錯。

3.碼距:指任意兩個合法碼字之間不同的位的個數(shù)。碼距越大,檢錯糾錯能力越強。

1

2

3

1.奇偶校驗碼


源碼基礎(chǔ)上加上一位校驗位,碼距為2,只能檢測一位錯誤,不能確定出錯位置或偶數(shù)位錯誤。

1.奇校驗碼:1的個數(shù)為奇數(shù)。

2.偶檢驗碼:1的個數(shù)為偶數(shù)。


2. 海明校驗碼


檢錯能力:2位。糾錯能力:1位。


3.循環(huán)冗余校驗碼(CRC)


基本思想:在K位信息碼后拼接R位的校驗碼,整個編碼長度為N位。

2.基于線性編碼理論。

2.3 定點數(shù)的表示和運算


1.有符號和無符號數(shù)


1.無符號數(shù):整個機器字長全部二進制均為數(shù)值位。

2.有符號數(shù):約定二進制最高位為符號位,組成有符號數(shù)。


2.機器數(shù)的定點表示


定點表示即約定機器數(shù)中小數(shù)點位置固定不變。

1

1.定點小數(shù):是純小數(shù),小數(shù)點在符號位之后,有效數(shù)值部分最高位之前。

2.定點整數(shù):是純整數(shù),小數(shù)點在數(shù)值部分最低位之后。


3.原碼


用機器數(shù)的最高位表示數(shù)的符號,其余表示數(shù)的絕對值。

若機器字長n+1位,原碼整數(shù)的表示范圍:-(2n-1)≤x≤2n-1

真值0有+0和-0兩種形式。【+0】原=*0*0000,【-0】=*1*0000

若機器字長n+1位,原碼小數(shù)的表示范圍:-(1-2-n)≤1-2-n(關(guān)于原點對稱)


4.反碼




真值0的反碼不唯一,負(fù)數(shù)的反碼符號位為“1”,數(shù)值部分取反?!?0】反=0.0000;【-0】反=1.1111。

1

5.補碼



補碼的真值0的表示是唯一的。【+0】補=0.0000,【-0】補=0.0000.

1

6.移碼



移碼的真值0只有一種表示形式。移碼與真值最接近,移碼大真值就大。

1

1.原碼--》反碼:為正:原=反;為負(fù):符號位不變,數(shù)值位取反。

2.原碼--》補碼:為正:原=補;為負(fù):原碼先變反碼,反碼末尾+1。即除了符號位,其余位取反末尾再加1。

3.原碼--》移碼:先變?yōu)檠a碼,符號位取反得移碼。


1.補碼的作用:使用補碼可將減法操作轉(zhuǎn)變?yōu)榈葍r的加法,ALU中無需集成減法器。執(zhí)行加法操作時,符號位一起參與運算。


2.4 定點數(shù)的運算

移位:通過改變各個數(shù)碼位和小數(shù)點的相對位置,從而改變各數(shù)碼位的位權(quán)。可用移位運算實現(xiàn)乘除。

1

1.算術(shù)移位


算數(shù)移位的對象是有符號數(shù),☆移位過程符號位保持不變

1

1.對于正數(shù):原碼,補碼,反碼均添0.

2.對于復(fù)數(shù):①原碼:左右移動都添0。②補碼:左移添0,右移添1。③對于反碼:左右都添1。

3.左移高位舍棄,若舍棄位=0,則相當(dāng)于x2,若舍棄為=1,則會出現(xiàn)誤差。

4.右移低位舍棄,舍棄位=0,相當(dāng)于÷2,若舍棄位=1,丟失精度。


2.邏輯移位


將操作數(shù)視為無符號數(shù),僅對無符號數(shù)操作。

1.邏輯左移:高位丟失,低位補0。

2.邏輯右移:低位丟失,高位補0。


3.循環(huán)移位


分為帶進位標(biāo)志位CF的循環(huán)移位(大循環(huán))和不帶進位標(biāo)志位的循環(huán)移位。

特點:移出的數(shù)位又被移入數(shù)據(jù)中,是否帶進位要看是否將進位標(biāo)志位加入循環(huán)移位。


4.原碼定點數(shù)加減法


1.加法規(guī)則:符號位相同,絕對值相加,符號位不變。符號位不同,做減法,絕對值大的減絕對直小的,結(jié)果符號位與絕對值大的相同。

2.減法規(guī)則:先將減數(shù)符號取反,被減數(shù)與符號取反的減數(shù)按原碼加法運算。溢出位丟掉。


5.補碼定點數(shù)加減法


1.【B】補變?yōu)椤?B】補:所有位取反(包括符號位),末尾+1。

2.【A+B】補=【A】補+【B】補。

3.【A-B】補=【A】補+【-B】補。


6.符號擴展


作用:計算機運算中,有時必須把給定位數(shù)的數(shù)轉(zhuǎn)換為具有不同位數(shù)的形式。如8位機器字變?yōu)?6位。


7.溢出和判斷方法


1.溢出:指運算結(jié)果超出了數(shù)的表示范圍。大于機器所能表示的最大正數(shù)為上溢,小于所能表示的最小負(fù)數(shù)為下溢。同符號數(shù)相加或異符號數(shù)相減才會溢出。

2.補碼定點數(shù)加減法運算三個判斷溢出方法:


采用一位符號位:參加的數(shù)符號相同,結(jié)果符號不同則表示溢出。

采用雙符號位:也稱模4補碼。最高符號位的情況:①00:正數(shù),無溢出。②01:結(jié)果正溢出。③10:結(jié)果負(fù)溢出。④11:結(jié)果為負(fù),無溢出。

采用一位符號位根據(jù)數(shù)據(jù)位進位情況判斷溢出。

2.5 強制類型轉(zhuǎn)換

1.長度相同無符號數(shù)與有符號數(shù):不改變數(shù)據(jù)內(nèi)容,改變解釋方式。

2.長整數(shù)變短整數(shù):高位截斷,保留低位。

3.短整數(shù)變長整數(shù):符號擴展。


2.6 數(shù)據(jù)存儲和排列

1.大端和小端方式


1.大端方式:從低地址開始,最高有效字節(jié)存放在前。便于人閱讀。

2.小段方式:從低地址開始,最低有效字節(jié)存放在前。便于機器處理。


2.按邊界處理


假設(shè)存儲字長32位i,可按字節(jié),半字和字尋址。

邊界對齊訪問一個字一次方寸,不對齊可能兩次。


2.7 浮點數(shù)的表示



r是階碼的底,一般為2。E為階碼,M為尾數(shù)。

1

1.左規(guī):當(dāng)浮點數(shù)運算結(jié)果為非規(guī)格化時要進行規(guī)格化,將尾數(shù)算數(shù)左移一位,階碼減一的方法為左規(guī)。需要時要進行多次。

2.右規(guī):浮點數(shù)運算結(jié)果尾數(shù)溢出(雙符號位01或10)時,將尾數(shù)算術(shù)右移一位,階碼+1的方法為右規(guī)。只進行一次。


規(guī)格化浮點數(shù):為了提高運算的精度,需要充分利用尾數(shù)的有效數(shù)位,進行規(guī)格化處理,即規(guī)定尾數(shù)的最高數(shù)位必須是一個有效值。

1

規(guī)格化操作:就是通過調(diào)整一個非規(guī)格化浮點數(shù)尾數(shù)和階碼大小,使非零浮點數(shù)在尾數(shù)的最高數(shù)位上保證是一個有效值。



3.規(guī)格化浮點數(shù)特點


1.原碼規(guī)格化:基數(shù)為2----原碼規(guī)格化的尾數(shù)最高位一定是1?;鶖?shù)是4----尾數(shù)最高兩位不全為0。

2.補碼規(guī)格化:基數(shù)為2----補碼規(guī)格化符號位與最高數(shù)值位相反。


4.IEEE 754標(biāo)準(zhǔn)


1.階碼全1,全0用作特殊用途。

2.階碼真值= 移碼 - 偏移量


5.定點,浮點數(shù)的區(qū)別


1.若兩者字長相同,則浮點表示法表示的數(shù)值范圍大于定點表示法。

2.精度是指一個數(shù)所含有效數(shù)值位的位數(shù)。字長相同的兩者,浮點數(shù)擴大了數(shù)表示范圍,但精度降低了。

3.浮點數(shù)包括階碼和尾數(shù),運算時要做階碼和尾數(shù)的運算,而且運算結(jié)果要規(guī)格化,所以運算復(fù)雜。

4.定點運算中,結(jié)果超出數(shù)表示范圍會溢出。浮點運算超出數(shù)表示范圍不一定溢出。只有規(guī)格化后解碼超出表示范圍才會溢出。


6.規(guī)格化情況


1.尾數(shù)出現(xiàn)00.0xxx或11.1xxx,需左規(guī),尾數(shù)左移一位,階碼-1;

2.運算和出現(xiàn)溢出,需右規(guī),尾數(shù)右移,階碼+1;


7.浮點數(shù)溢出判斷


浮點數(shù)的溢出由階碼判斷。當(dāng)階碼符號位為10表上溢,01時表下溢。

1

2.8 加法器

1.一位全加器。

2.串行加法器。

3.并行加法器:①串行進位。②并行進位。


第三章 存儲系統(tǒng)

3.1 存儲器概述

3.1.1 存儲器分類

1.按層次分類


1.主存儲器:存放程序和數(shù)據(jù)。

2.輔助存儲器:存放當(dāng)前暫時不用的程序和數(shù)據(jù)以及一些永久性保存的信息。

3.高速緩沖存儲器:Cache,位于主存和CPU之間,存放正在執(zhí)行的程序段和數(shù)據(jù)。



2.按存儲介質(zhì)


1.磁表名存儲器(磁盤)。2.磁心存儲器半導(dǎo)體存儲器。3.光存儲器(光盤)。


3.按存取方式分類


1.隨機存儲器(RAM):隨機存取,用作主存和高速緩存存儲器。如內(nèi)存條。

2.只讀存儲器(ROM):只能隨機讀不能寫入,一旦寫入就不變,斷電信息不會丟失。

3.串行訪問存儲器:讀寫時,要按物理位置先后順序?qū)ぶ贰0樞虼嫒〈鎯ζ鳎ù艓В┖椭苯哟嫒〈鎯ζ鳎ù疟P)。


4.按信息的可保存性分類


1.易失性存儲器:斷電后存儲信息消失。如RAM。

2.非易失性存儲器:斷電后信息不消失。如ROM。

3.破壞性讀出:信息讀出后,原存儲信息被破壞。如DRAM芯片。

4.非破壞性讀出:信息讀出后,被讀取存儲單元信息不被破壞。如SRAM芯片,磁盤。


3.1.2 存儲器性能指標(biāo)

1.存儲容量。2.單位成本。3.存儲速度。



note:存取時間不等于存儲周期,通常存儲周期大于存取時間。存儲周期=存取時間+恢復(fù)時間。

1

3.2 存儲器層次化結(jié)構(gòu)

1.Cache--主存:解決CPU和主存速度不匹配問題。數(shù)據(jù)調(diào)度由硬件自動完成,對所有程序員透明。

2.主存--輔存:解決存儲系統(tǒng)容量問題。數(shù)據(jù)調(diào)度由硬件和操作系統(tǒng)共同完成,對應(yīng)用程序員透明。





3.3 半導(dǎo)體隨機存儲器

3.3.1 DRAM和SRAM工作原理

1.SRAM工作原理


靜態(tài)隨機存儲器(SRAM)存儲元是雙穩(wěn)態(tài)觸發(fā)器來記憶信息,屬于非破壞性讀出。


2.DRAM工作原理


動態(tài)隨機存儲器(DRAM)利用存儲元電路上的柵極電容的電荷存儲信息的。

采用地址復(fù)用技術(shù),地址信號分行列兩次傳送。密度比SRAM高。屬于破壞性讀出。


因為DRAM電荷維持時間段,不斷電信息也會消失,所以必須定時刷新,三種方式:


集中刷新:刷新周期內(nèi)利用固定時間刷新,期間停止讀寫,稱為“死時間”。

分散刷新:刷新分散到各個工作周期,即前半周期 讀寫,后半刷新。

異步刷新:前兩者的結(jié)合,刷新周期除以行數(shù),得到時間間隔t,每隔t刷新一次。把對每行的刷新分散到整個刷新周期。

1.刷新對CPU透明,即不依賴于外部訪問。

2.刷新類似于讀操作,但不同,僅給柵極電容補充電荷,無信息輸出。

3.刷新的單位是行,所以刷新僅需要行地址。

1

2

3



3.DRAM和SRAM對比


1.DRAM容易集成,容量大,密度高。破壞性讀出。

2.SRAM速度快。非破壞性讀出。

3.兩者都是易失性存儲,即斷電后內(nèi)容消失。


NOTE:RAM--內(nèi)存。ROM--輔存。

1

3.3.2 只讀存儲器

1.只讀存儲器ROM特點


1.結(jié)構(gòu)簡單,位密度比可讀寫存儲器高。

2.非易失性,所以可靠性高。


2.ROM的類型


1.掩模式只讀存儲器(MROM):廠商直接寫入,無法改變。

2.一次可編程只讀存儲器(PROM):一次性編程,用戶可用專門設(shè)備寫入,寫入后無法改變。

3.可擦除可編程只讀存儲器(EPROM):可多次讀寫,先擦除后編程。

4.閃存存儲器(FLASH Memory):不加電也可長期保存,又能快速擦除重寫。如(u盤,sd卡)。

5.固態(tài)硬盤(ssd):


3.主存儲器的構(gòu)成




地址線單向。從主存地址送到主存中的地址寄存器。

1

3.4 主存儲器與CPU連接

3.4.1 連接原理

1.主存儲器通過數(shù)據(jù)總線,地址總線,控制總線與CPU連接。

2.地址總線位數(shù)決定了可尋址的最大空間。

3.控制總線支出總線周期類型和本詞輸入/輸出操作完成的時刻。


3.4.2 主存容量的擴展

1.位擴展法CPU的數(shù)據(jù)線數(shù)與存儲芯片的不一致,進行位擴展。


1.連接方式是將多個存儲芯片的地址端,片選端,讀寫控制端并聯(lián),將數(shù)據(jù)端分別引出。8片8K x 1位的存儲芯片 —> 1個8K x 8位的存儲芯片。


2.字?jǐn)U展法


1.增加存儲器數(shù)量,位數(shù)不變。字?jǐn)U展將芯片地址線,數(shù)據(jù)線,讀寫控制線并聯(lián),由片選信號CS區(qū)分芯片地址范圍,片選號譯碼給出。


3.字位同時擴展法


4.字?jǐn)U展法中片選信號的選擇


1.線選法:除了片內(nèi)尋址外的高位地址線,其余分別連接各個存儲芯片的片選端。即n個線對應(yīng)n個地址。優(yōu):線路簡單,不需要譯碼器。缺:不能充分利用系統(tǒng)的存儲空間。

2.譯碼片選法:除了片內(nèi)尋址的高位地址線,通過地址譯碼器產(chǎn)生片選信號來選擇哪個存儲芯片。



3.5 雙端口RAM和多模塊存儲器

3.5.1 雙端口RAM

1.指一個存儲器有左右兩個獨立的端口,有兩組獨立的數(shù)據(jù)線和讀寫控制線,允許兩個獨立的控制器異步訪問存儲單元。

2.兩端口同時存取存儲器的同一單元地址會沖突。有四種情況:①同時同一地址讀。②同時同一地址寫。③不同時同一地址寫。④同時同一地址一個讀一個寫。



3.5.2 多模塊存儲器

`為提高訪存速度`

1

1.單體多字存儲器


存儲器中只有一個存儲體,每個存儲單元存儲m個字,總線寬度也為m個字,一次并行讀出m個字,地址必須順序排列并在同一存儲單元。


2.多體并行存儲器


由多體模塊組成,每個模塊相同容量和存取速度,由獨立的寄存區(qū),讀寫控制電路。他們既能并行又能串行。

1

多體并行存儲器分兩種:


1. 高位交叉編址(順序方式):高位表體號,低位為體內(nèi)地址。訪問連續(xù)主存塊時總數(shù)先在一個模塊內(nèi)訪問,訪問完才到 下一個模塊,不能并行訪問,所以不能提高吞吐量,相當(dāng)于單純的擴容。(低位送高位進行譯碼)(連續(xù)存取n個字耗時nT)

2. 低位交叉編址(交叉方式):①低位地址為體號,高位為體內(nèi)地址。②程序連續(xù)存放在相鄰模塊,所以采用此方式的存儲器稱為交叉存儲器。③訪問時候采用流水線的方式進行存取。④(高位體內(nèi)地址送到低位確定的模塊譯碼)(連續(xù)存取n個字耗時T+(n-1)r)T為存取周期,總線傳送周期(即存取時間)為r。⑤存儲器交叉模塊數(shù)(即存儲體個數(shù))m>=T/r。



3.6 高速緩存存儲器

3.6.1 Cache工作原理

1.位于存儲器層次結(jié)構(gòu)頂層,由SRAM構(gòu)成,(速度快,成本高)。

2.Cache和主存都劃為相等的塊,以塊為單位交換信息,僅保存主存中活躍的副本。若讀命令訪問命中cache,直接對cache讀。若未命中,訪問主存,并從主存將讀的一塊調(diào)入cache。


3.6.2 Cache和主存的映射方式

1.地址映射是把主存地址空間映射到Cache地址空間,即把存放在主存的信息按某規(guī)則裝入Cache。

2.地址變換是CPU訪存時,將主存地址按映射規(guī)則換算稱Cache地址的過程。




地址映射的3種方法:


1. 直接映射:每個主存塊只能放到Cache的一個特定位置。Cache塊號=主存塊號 % Cache總塊數(shù)。


直接映射地址結(jié)構(gòu)為:【標(biāo)記】【Cache行號】【塊內(nèi)地址】。

訪存過程:先根據(jù)中間行號找到Cache行,然后主存高t位于標(biāo)記對比,若相等且有效位為1,則Cache命中。否則不命中,從CPU讀出的塊存入Cache。

優(yōu)缺點:實現(xiàn)簡單,但不靈活,容易沖突,利用率低。


2. 全相聯(lián)映射:主存塊可存放在Cache任意位置。


全相聯(lián)地址結(jié)構(gòu)為:【標(biāo)記】【塊內(nèi)地址】。

訪存過程:每行的標(biāo)記位用來指出取自主存哪一塊,訪存時與標(biāo)記位比較。

優(yōu)缺點:靈活,沖突低,空間利用率高,但標(biāo)記速度慢,成本高(需要相聯(lián)存儲器)。


3. 組相聯(lián)映射:Cache塊分為若干組,每個主存塊可放到特定分組中的任意一個位置。組號=主存塊號 % 分組數(shù)。


主存地址映射結(jié)構(gòu):【標(biāo)記】【Cache組號】【塊內(nèi)地址】。組內(nèi)采用直接映射,組件全相聯(lián)映射。

CPU訪存過程:先找到Cache組號,行標(biāo)記與主存高位標(biāo)記比較,相等且有效位為1則命中。

組內(nèi)塊越多,沖突越少,


三者比較:

1.直接映射命中率最低,全相聯(lián)最高。

2.直接映射判斷開銷小,需時間短。全相聯(lián)判斷開銷最大,時間長。

3.直接映射標(biāo)記占的額外空間開銷最少,全相聯(lián)標(biāo)記占的最多。

1

2

3

4

3.6.3 Cache中主存塊的替換算法

當(dāng)Cache中的行數(shù)被占滿時,又傳送來一個新塊,需要進行替換。

1

1.三種替換算法


1.隨機算法(RAND):隨機確定替換的塊。優(yōu):實現(xiàn)簡單。缺:未依據(jù)局部性原理,命中率低。

2.先進先出算法(FIFO):命中率低。未依據(jù)局部性原理。

3.近期最少使用算法(LRU):依據(jù)程序訪問的局部性原理,選擇近期內(nèi)長久未訪問的Cache行替換。(設(shè)置計數(shù)器記錄使用情況,命中行計數(shù)器清0,其余比他低的+1.未命中且有空閑行,裝入的行計數(shù)器為0,其余+1.未命中且無空閑行,計數(shù)器數(shù)值為3的被淘汰,新裝入行的塊變0,其余+1.)

4.最不經(jīng)常使用算法(LFU):將一段時間內(nèi)訪問次數(shù)最少的存儲行換出。(設(shè)置計數(shù)器,新建的從0開始,被訪問+1,每次替換出計數(shù)器最小的行。)未遵循局部性原理。




3.6.4 Cache寫策略

為了保持Cache與主存數(shù)據(jù)一致性。

1

1.對于Cache寫命中,兩種策略


1.全寫法:當(dāng)CPU對Cache寫命中時,把數(shù)據(jù)同時寫入Cache和主存。一般用寫緩沖(減少直接寫入主存的時間耗費)。優(yōu)缺點:訪存次數(shù)增加,速度變慢,但更能保證數(shù)據(jù)一致性。

2.寫回法:CPU對Cache寫命中時,只修改Cache的內(nèi)容,不立即寫入主存,僅當(dāng)此塊被換出時才寫回主存。優(yōu)缺:減少了訪存,但存在數(shù)據(jù)不一致隱患。此種方法通常每個Cache行必須設(shè)置一個標(biāo)志位(臟位),反映此塊是否被修改過。


2.對于Cache寫不命中,兩種策略


1.寫分配法:CPU對Cache塊寫不命中時,把主存中的塊調(diào)入Cache,在Cache中修改,當(dāng)Cache行被替換時再寫會主存。通常搭配寫回法。

2.非寫分配法:寫不命中時只寫入主存,不調(diào)入Cache(只有讀命令未命中才調(diào)入Cache),當(dāng)再次使用該塊時,調(diào)入Cache。搭配全寫法。


note:1.各級cache間常用“全寫法 + 非寫分配法”。

2.cache與主存之間常用“寫回法 + 寫分配法”。

1

2



3.7 虛擬存儲器

3.7.1 基本概念

1.用戶編程允許涉及的地址稱為虛地址/邏輯地址。

2.虛地址對應(yīng)的存儲空間稱為虛擬空間。

3.實際的主存單元地址稱為實地址/物理地址。

4.實地址空間對應(yīng)的是主存地址空間,也稱實地址空間。


3.7.2 頁式虛擬存儲器

1.拆分成大小相等的頁面。

2.虛擬存儲器:在操作系統(tǒng)的管理下,只把當(dāng)前需要的部分?jǐn)?shù)據(jù)調(diào)入主存,暫不需要的部分留在輔存中。在用戶看來,似乎獲得了一個超大的主存(虛擬性)。

3.有效位:也稱裝入位,來表示對應(yīng)頁面是否在主存。若為1表示虛頁號已從外存調(diào)入內(nèi)存,為0則沒有調(diào)入。

4.臟位:也稱修改位,表示當(dāng)前頁面是否被修改過。

5.引用位:`也稱使用位,來配合替換策略進行設(shè)置。如實現(xiàn)FIFO。統(tǒng)計頁面被訪問多少次。


以頁為單位的虛擬存儲器為頁式虛擬存儲器。

1

優(yōu)缺點:


頁面長度固定,調(diào)入方便。但會存在最后一頁的零頭無法利用,因頁不是邏輯上的實體所以處理,保護和共享不及段式虛擬存儲器方便。


3.7.3 快表(TLB)

經(jīng)常訪問的頁存入快表。

1

3.7.4 段式虛擬存儲器

1.按照功能模塊拆分。如#0段是自己代碼,#1是庫函數(shù)代碼。

2.段表結(jié)構(gòu):【段號】【段首址】【裝入位】【段長】


優(yōu)缺點


把程序按邏輯結(jié)構(gòu)分段,具有邏輯獨立性,使得它易于編譯,管理,修改和保護,也便于多道程序共享。但因段長度可變,分配空間不變,容易留下碎片。


3.7.5 段頁式虛擬存儲器

先分段,再分頁,調(diào)入調(diào)出仍以頁為基本單位。

一個程序一個段表,多個頁表。

優(yōu)缺點:兼具頁式和段式優(yōu)點,但地址變換需查兩次表,開銷大。


3.7.6虛擬存儲器與Cache的比較

1.相同


1.都是為了提高系統(tǒng)性能。

2.都把數(shù)據(jù)劃分為小信息塊。

3.都有地址映射,替換算法,更新策略。

4.依據(jù)局部性原理,將常用的數(shù)據(jù)存放在高速部件中。


2.不同


1.Cache解決系統(tǒng)速度,虛擬存儲器解決主存容量。

2.Cache由硬件實現(xiàn),是硬件存儲器,虛擬存儲器是邏輯上的存儲器。

3.不命中時,因為cache速度快,虛擬存儲系統(tǒng)對系統(tǒng)性能影響大。

4.CPU與Cache和主存都建立了直接訪問的通路,而輔存沒有。


第四章 指令系統(tǒng)

4.1 指令格式

1.指令(又稱機器指令),是指示計算機執(zhí)行某種操作的命令,是計算機運行的最小功能單位。

2.一臺計算機的所有指令的集合構(gòu)成該機的指令系統(tǒng),也稱指令集。

3.指令系統(tǒng)是計算機的主要屬性,位于硬件和軟件的交界面上。

1

2

3

4.1.1 指令的基本格式

一條指令 = 操作碼 + 地址碼。

1.操作碼:指出該指令應(yīng)該執(zhí)行什么性質(zhì)的操作和具有何種功能。如指出是算數(shù)加還是減運算。

2.地址碼:給出被操作信息(指令或數(shù)據(jù))的地址。

3.指令的長度:即一條指令中二進制代碼的位數(shù)。

4.指令字長取決于操作碼,地址碼及地址碼的個數(shù)。

5.單字長指令:指令字長等于機器字長 。

6.定長指令字結(jié)構(gòu):一個指令系統(tǒng)中所有指令的長度相等。

7.變長指令字結(jié)構(gòu):各種指令的字長隨指令功能而異。


根據(jù)指令中操作數(shù)地址碼的數(shù)目不同,指令分為幾種格式:


零地址指令:

只給出操作碼OP。無顯式地址。指令有兩種可能:

①不需要操作數(shù)的指令,空操作,停機指令。

②0地址的運算類僅用在堆棧計算機中。兩個操作數(shù)隱含存放在棧頂。


一地址指令:

地址格式:【OP操作碼】【地址碼A1】

兩種常見形態(tài):

①單操作數(shù)指令,如+1,-1。完成一條指令三次訪存:①取指②讀A1③寫會A1。

②隱含約定目的地址的雙操作數(shù),一個數(shù)在地址A1,一個在寄存區(qū)ACC。完成一條指令兩次訪存:①取指②讀A1。(寫回寄存器不需要訪存)


二地址指令:

地址格式:【OP】【A1】【A2】。

常見形態(tài):

約定兩個數(shù)的運算,分別存在A1,A2。完成一條指令4次訪存:①取指②讀A1③讀A2④寫會A1。


三地址指令:

地址格式:【OP】【A1】【A2】【A3(結(jié)果)】

一條指令四次訪存:①取指②讀A1③讀A2④寫回A3。


四地址指令:

地址格式:【OP】【A1】【A2】【A3(結(jié)果)】【A4(下地址)】

一條指令四次訪存:同三地址指令。執(zhí)行結(jié)束后,PC的值改為A4所指地址。





4.1.2 定長操作碼指令格式

定長操作碼在指令最高位部分分配固定的若干位表操作碼。n位操作碼字段的指令系統(tǒng)最大表示2的n次方條指令。

若指令長度不變,地址碼越多,尋址能力越差。


4.1.3 擴展操作碼指令格式



定義:可變長操作碼:即全部指令的操作碼字段的位數(shù)不固定,且分散的存放在指令的不同位置上。雖然增加了豐富的指令種類但顯然會增加指令譯碼難度。

擴展操作碼:屬于變長操作碼,它使操作碼的長度隨地址碼減少而增加,不同地址數(shù)的指令有不同長度的操作碼,可以在滿足需要前提有效縮短指令字長。


設(shè)計擴展操作碼格式要注意的兩點:


不允許短碼是長碼的前綴,否則會出現(xiàn)歧義。

指令的操作碼不能重復(fù)。會導(dǎo)致無法識別。

通常使用頻率高的分配操作碼短,使用頻率低的分配長。

4.2 指令的尋址方式

1.尋址方式是指尋找指令/操作數(shù)有效地址的方式,即確定本條指令的數(shù)據(jù)地址和下一條待執(zhí)行指令的地址的方法。

2.指令中的地址碼存放的是信息的形式地址,通過尋址方式+形式地址找到有效地址。

3.尋址方式包括:1.指令尋址。2.數(shù)據(jù)尋址

1

2

3

4.2.1 指令尋址和數(shù)據(jù)尋址

1.指令尋址即如何確定下一條指令的地址。兩種方式:


1.順序?qū)ぶ罚和ㄟ^程序計數(shù)器(PC)加1,自動跳轉(zhuǎn)下一條指令地址。

2.跳躍尋址:通過轉(zhuǎn)移指令實現(xiàn)。包括相對尋址和絕對尋址。跳躍后將地址賦給PC,仍訴通過PC給出下一條指令。


2.數(shù)據(jù)尋址指如何在指令中表示操作數(shù)地址,得到操作數(shù)或操作數(shù)的地址。


指令格式:【操作碼】【尋址特征】【形式地址A】


4.2.2 數(shù)據(jù)尋址的常見方式

隱含地址:不明確給出操作數(shù)地址,而在指令中隱含操作數(shù)地址。



立即尋址:形式地址A中存放的就是操作數(shù)本身。只需訪存1次。



直接尋址:指令中的形式地址A是操作數(shù)的真是地址EA。



間接尋址:形式地址A中給出的是操作數(shù)有效地址所在的地址。可以一次也可以多次間接尋址。



寄存器尋址:在指令字中直接給出操作數(shù)所在的寄存器編號。訪存一次:僅取指令。



寄存器間接尋址:指在寄存器R中給出的是操作數(shù)所在主存單元的地址。兩次訪存:①取指②尋址。



相對尋址:指程序計數(shù)器(PC)的內(nèi)容加上指令格式中的形式地址A形成的操作數(shù)有效地址。A是相對于下一條指令(PC先+1)的位移量,可正負(fù),補碼表示。



基址尋址:將CPU中基址寄存器(BR)的內(nèi)容加上指令格式中的形式地址A形成操作數(shù)的有效地址。EA=B



變址尋址:指有效地址A等于指令中形式地址A與變址寄存器IX的內(nèi)容之和。EA=(IX)+A

變址寄存器是面向用戶的:程序執(zhí)行過程用戶可改變寄存器的內(nèi)容。

主要處理循環(huán)問題數(shù)組問題。


偏移尋址包括:1.基址尋址。2.變址尋址。3.相對尋址。



10.堆棧尋址: 操作數(shù)存放在堆棧中,隱含SP棧頂作為操作數(shù)地址。


1.堆棧:是存儲器中一塊特定的,按后進先出管理的存儲區(qū)。包括軟堆棧和硬堆棧。

2.軟堆棧:從主存中劃分一段區(qū)域做堆棧。訪存1次。

3.硬堆棧:又稱寄存器堆棧,成本高,不適合做大容量堆棧。




4.3 CISC 和 RISC 的概念

指令系統(tǒng)朝兩個截然不同方向發(fā)展:

1.增強原有指令功能,設(shè)置更復(fù)雜的新指令實現(xiàn)軟件功能的硬化,這類機器稱為復(fù)雜指令系統(tǒng)計算機(CISC)。X86,主要用于筆記本

2.減少指令種類和簡化指令功能,提高指令的執(zhí)行速度,這類機器稱為精簡指令系統(tǒng)計算機(RISC)。用于手機。


4.3.1 復(fù)雜指令系統(tǒng)計算機(CISC)(Complex Instruction Set Computer)

設(shè)計思路:一條指令完成一個復(fù)雜的基本功能。


4.3.2 復(fù)雜指令系統(tǒng)計算機(RISC)(Reduced Instruction Set Computing )

設(shè)計思路:一條指令完成一個基本“動作”,多條指令組合完成一個復(fù)雜的基本功能。


4.3.3 兩者比較

1.CISC控制器大多采用微程序控制,即采用存儲程序,設(shè)計好的指令提前存儲。RISC控制器采用組合邏輯控制。

2.RISC更能提高運算速度。因為RISC采用流水線技術(shù),指令數(shù)、尋址方式、指令格式種類少,所以運算速度快。

3.RISC便于設(shè)計,可降低成本,提高可靠性。

4.RISC有利于編譯程序代碼優(yōu)化。


第五章 中央處理器



5.1 CPU的功能和基本結(jié)構(gòu)

中央處理器(CPU)由運算器和控制器組成。

1.控制器功能:負(fù)責(zé)協(xié)調(diào)控制計算機各部件執(zhí)行程序的指令序列,取指,分析指,執(zhí)行指令。是整個系統(tǒng)的指揮中心。

2.運算器功能:對數(shù)據(jù)進行邏輯運算,加工。

1

2

3

CPU的具體功能包括:


指令控制:完成取指,分析指,執(zhí)行指令,即程序的順序控制。

操作控制:CPU管理從內(nèi)存取出的指令的操作信號,將信號送到相應(yīng)部件,從而控制部件。

時間控制:對操作加以事件上的控制,為每條指令按時間順序提供控制信號。

數(shù)據(jù)加工:對數(shù)據(jù)進行算術(shù)和邏輯運算。

中斷處理:對運行過程出現(xiàn)的異常和特殊請求進行處理。

1.運算器


運算器基本功能接收控制器發(fā)來的命令并執(zhí)行相應(yīng)動作,對數(shù)據(jù)進行加工處理。

運算器組成:

1.算術(shù)邏輯單元。2.暫存寄存器。3.累加寄存器。4.通用寄存器。5.程序狀態(tài)寄存器。6.移位器。7.計數(shù)器。

————————————————

版權(quán)聲明:本文為CSDN博主「vcoy」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/weixin_43917045/article/details/123588032


原理筆記的評論 (共 條)

分享到微博請遵守國家法律
澄迈县| 嵊州市| 和田县| 衡水市| 鹿邑县| 香河县| 阜新| 策勒县| 观塘区| 临西县| 肥西县| 耒阳市| 邓州市| 民勤县| 深泽县| 阿瓦提县| 镶黄旗| 永清县| 繁峙县| 宜良县| 上饶县| 天峨县| 昌宁县| 安多县| 湘阴县| 肃宁县| 改则县| 沭阳县| 长治市| 剑阁县| 格尔木市| 申扎县| 泰顺县| 阜阳市| 南充市| 梅州市| 屏山县| 洪洞县| 大田县| 高平市| 通许县|