計(jì)算機(jī)組成原理----學(xué)習(xí)筆記2020-06-12
第一章? 計(jì)算機(jī)系統(tǒng)概論
1. 計(jì)算機(jī)的分類
(1)電子模擬計(jì)算機(jī)-----------特點(diǎn):數(shù)值由連續(xù)量來表示仁卷,運(yùn)算過程也是連續(xù)的。
(2)電子數(shù)字計(jì)算機(jī)-----------特點(diǎn):按位計(jì)算,并且不連續(xù)地跳動計(jì)算
數(shù)字計(jì)算機(jī)分為:通用計(jì)算機(jī)和專用計(jì)算機(jī)
通用計(jì)算機(jī):超級計(jì)算機(jī)镀梭、大型機(jī)、服務(wù)器苍姜、PC機(jī)鲁僚、單片機(jī)和多核級,? 其復(fù)雜性容达、性能古涧、價(jià)格依次遞減
2.計(jì)算機(jī)性能指標(biāo)
吞吐量、響應(yīng)時(shí)間花盐、利用率羡滑、處理機(jī)字長、總線寬度算芯、存儲器容量柒昏、存儲器帶寬、主頻/時(shí)鐘周期熙揍、CPU執(zhí)行時(shí)間职祷、CPI、MIPS诈嘿、FLOPS
3.計(jì)算機(jī)硬件
計(jì)算機(jī)的硬件有有形的電子器件構(gòu)成堪旧,包括運(yùn)算器、存儲器奖亚、控制器淳梦、適配器、輸入輸出設(shè)備昔字。早期將運(yùn)算器和控制器合在一起稱為CPU(中央處理器)爆袍。目前的CPU包含了存儲器首繁,因此稱為中央處理機(jī)。存儲程序并按地址順序執(zhí)行陨囊,這是馮.諾依曼型計(jì)算機(jī)的工作原理弦疮,也是CPU自動工作的關(guān)鍵。
4.計(jì)算機(jī)軟件
計(jì)算機(jī)軟件分為系統(tǒng)程序和應(yīng)用程序蜘醋。
系統(tǒng)程序用來簡化程序設(shè)計(jì)胁塞,簡化使用方法,提高計(jì)算機(jī)的使用效率压语,發(fā)揮和擴(kuò)大計(jì)算機(jī)的功能和用途啸罢,包括:各種服務(wù)性程序、語言類程序胎食、操作系統(tǒng)扰才、數(shù)據(jù)庫管理系統(tǒng)
應(yīng)用程序是針對某一應(yīng)用課題領(lǐng)域開發(fā)的軟件。
5.計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)
計(jì)算機(jī)系統(tǒng)是一個(gè)由硬件厕怜、軟件組成的多級層次結(jié)構(gòu)衩匣,通常由微程序級、一般機(jī)器級粥航、操作系統(tǒng)級琅捏、匯編語言級、高級語言級組成躁锡,每一級上都能進(jìn)行程序設(shè)計(jì)午绳,且得到下面各級的支持。
計(jì)算機(jī)的性能指標(biāo)主要是CPU性能指標(biāo)映之、存儲器性能指標(biāo)和I/O吞吐率
第二章:運(yùn)算方法和運(yùn)算器
1.對數(shù)據(jù)與文字的表示方法進(jìn)行了了解
2.理解并會運(yùn)用定點(diǎn)加法、減法蜡坊、乘法和除法運(yùn)算杠输,以及浮點(diǎn)運(yùn)算方法,但不太熟練
第三章 多層次儲存器
1秕衙、存儲器按存取方式蠢甲,可以分成哪四類?哪些屬于隨機(jī)訪問存儲器据忘,哪些屬于串行訪問存儲器鹦牛?
1)可以分為隨機(jī)存儲器、只讀存儲器勇吊、順序存儲器和直接存儲器曼追;
2)隨機(jī)存儲器和只讀存儲器屬于隨機(jī)存儲器,即存取時(shí)間與物理地址無關(guān)汉规;
3)順序存儲器(典型的如磁帶)和直接存儲器(典型的如磁盤)屬于串行存儲器礼殊,即存取時(shí)間與物理地址有關(guān)驹吮。
2、衡量存儲器使用哪三個(gè)指標(biāo)晶伦?寄存器碟狞、緩存、主存中婚陪,哪個(gè)速度最快族沃?哪個(gè)最便宜?
1)速度泌参、容量脆淹、位價(jià)格。
2)寄存器速度最快及舍,主存最便宜未辆。
3、常見的存儲系統(tǒng)層次結(jié)構(gòu)有哪兩種锯玛?透明性如何咐柜?各自用來解決什么問題的?
1)緩存-主存層次:用來緩解CPU和主存速度不匹配的問題攘残,由硬件來完成拙友,對所有的程序員完全透明。
2)主存-輔存層次:用來解決主存容量不夠的問題歼郭,由操作系統(tǒng)和硬件共同完成遗契,對應(yīng)用程序設(shè)計(jì)者透明,對系統(tǒng)程序設(shè)計(jì)者不透明病曾。
(現(xiàn)在一般存儲器都即能按字訪問牍蜂,也能按照字節(jié)訪問,因此泰涂,存儲器編址時(shí)鲫竞,每個(gè)字節(jié)都有一個(gè)獨(dú)立的地址。)
4逼蒙、字在存儲單元中有兩種存儲方式从绘,大端方式和小端方式。各是什么含義是牢?x86采用的是哪種存儲方式僵井?
1)大端方式:字的低位存在內(nèi)存的高地址中,而字的高位存在內(nèi)存的低地址中驳棱;
2)小端方式:字的低位存在內(nèi)存的低地址中批什,而字的高位存在內(nèi)存的高地址中。
3)x86CPU采用的是小端方式蹈胡。
5渊季、主存的三個(gè)主要技術(shù)指標(biāo)
存儲容量朋蔫、存取速度和存儲帶寬
6、什么是存取時(shí)間却汉?什么是存取周期驯妄?哪個(gè)大?
1)存取時(shí)間:啟動一次存儲器完成本次操作(讀或?qū)懀┧璧臅r(shí)間合砂;
2)存取周期:連續(xù)兩次啟動存儲器所需要的最小間隔時(shí)間青扔;
3)存取周期包含存取時(shí)間;
7翩伪、什么是存儲器帶寬微猖?(要了解如何計(jì)算存儲器帶寬)
單位時(shí)間內(nèi)存儲器存取的信息量;
8缘屹、半導(dǎo)體存儲芯片譯碼驅(qū)動包含哪兩種方式凛剥,請簡要說明。
1)線選法:所有的地址芯片通過一個(gè)譯碼器譯碼轻姿,選擇一個(gè)存儲單元的各位犁珠,適合于存儲容量不大的芯片;
2)重合法:將地址分為兩組互亮,每組通過一個(gè)譯碼器譯碼犁享,選擇行或列,行豹休、列交叉處就是要訪問的存儲位炊昆。
9、隨機(jī)存儲器包含哪兩大類威根?哪個(gè)需要刷新凤巨?請從速度、容量洛搀、價(jià)格等方面進(jìn)行簡要比較磅甩。
1)靜態(tài)RAM:采用鎖存器原理實(shí)現(xiàn);
2)動態(tài)RAM:采用電容原理實(shí)現(xiàn)姥卢,需要刷新。
3)相比于動態(tài)RAM渣聚,靜態(tài)RAM的速度快独榴、容量小、價(jià)格高奕枝,一般用于緩存棺榔,而動態(tài)RAM一般用于內(nèi)存。
10隘道、只讀存儲器有哪幾種症歇?
1)掩模ROM(MROM):出廠后內(nèi)容不能被更改郎笆。
2)PROM:可編程只讀存儲器,可以進(jìn)行一次性編程忘晤;
3)EPROM:可擦除只讀ROM宛蚓,用紫外線照射;
4)EEPROM:電可擦除只讀ROM设塔。
6)FLash Memory:采用EEPROM的非易失性存儲器凄吏。
11、單片存儲器芯片的容量有限闰蛔,很難滿足實(shí)際需要痕钢,因此必須將若干存儲芯片連接在一起才能組成足夠容量的存儲器。
存儲器的擴(kuò)展通常有位擴(kuò)展和字?jǐn)U展序六,什么是字?jǐn)U展任连,什么是位擴(kuò)展?請舉例簡要說明
1)位擴(kuò)展:增加存儲器的字長例诀,例如兩個(gè)1K * 4位的存儲芯片構(gòu)成1個(gè)1K*8位的存儲器随抠;
2)字?jǐn)U展:增加存儲器的字?jǐn)?shù),例如兩個(gè)1K * 8位的存儲芯片構(gòu)成1個(gè)2K * 8位的存儲器余佃;
通常字?jǐn)U展和位擴(kuò)展兩種方式混合使用暮刃。
12、熟慮掌握存儲器的擴(kuò)展爆土,包括地址空間分配椭懊、地址線的連接、數(shù)據(jù)線的連接步势、片選信號的產(chǎn)生及連接等氧猬;
參看P94頁,例4.1
13坏瘩、假設(shè)欲檢測的二進(jìn)制代碼為n位盅抚,為了使其具有1位的糾錯(cuò)能力,需添加K位檢測位倔矾,組成n+k位的代碼妄均。問,應(yīng)添加多少位檢測位哪自?
應(yīng)添加的檢測位位數(shù):2的k次方大于等于n+k+1丰包。
因?yàn)橐蛊溆?位的檢測能力,必須使用k位來說明n+k位到底哪一位出現(xiàn)了錯(cuò)誤壤巷,k位能表達(dá)的數(shù)量為2的k次方邑彪,而n+k位到底哪一位
出現(xiàn)了錯(cuò)誤或者是全部正確,共有n+k+1種狀況胧华,因此寄症,k的取值需要滿足:2的k次方大于等于n+k+1
14宙彪、對于漢明碼,應(yīng)熟練掌握漢明碼的編碼方式(按照配偶或配奇的原則)有巧,以及給出漢明碼释漆,得到要傳送的原始信息(包括糾錯(cuò)過程)。
15剪决、提高訪存速度的三種方式灵汪。
1)采用高速元器件;
2)采用存儲層次結(jié)構(gòu):cache-主存結(jié)構(gòu)柑潦;
3)調(diào)整主存結(jié)構(gòu):包括單體多字享言,多體并行兩種方式。
16渗鬼、簡述單體多字的存儲系統(tǒng)的工作原理览露,及其優(yōu)點(diǎn)。
1)單體多字存儲系統(tǒng)一次訪存取出多個(gè)CPU字譬胎,即存儲字為CPU字的n倍(假設(shè)一次訪存取出n個(gè)cpu字)差牛。
2)優(yōu)點(diǎn)是:顯著提高了存儲器帶寬。
17堰乔、多體并行系統(tǒng)有哪兩種編址方式偏化?請簡要說明其編址方式及其優(yōu)點(diǎn)。
1)高位交叉編址方式:存儲體的編址方式為順序存儲镐侯,即一個(gè)存儲體存滿后侦讨,再存入下一個(gè);存儲單元地址的高位為存儲體的編號苟翻。
高位交叉編址并不能提高單次訪存速度韵卤,但能使多應(yīng)用并行訪存,提高系統(tǒng)的并發(fā)性崇猫。
2)低位交叉編址方式:存儲體的編址方式為交叉存儲沈条。即程序連續(xù)存放在相鄰的存儲體之中。存儲單元地址的低位為存儲體的編號诅炉。
低位交叉編址能顯著提高單次訪存速度蜡歹。
19、在四位低位交叉編址中涕烧,假設(shè)存取周期為T季稳,總線傳輸周期為τ,為了實(shí)現(xiàn)流水線方式存儲澈魄,應(yīng)滿足什么條件?如果連續(xù)讀取四個(gè)字仲翎,所需要的時(shí)間是多少痹扇?
1)T= 4τ
2)連續(xù)讀取四個(gè)字铛漓,所需要的時(shí)間為T + (4-1)τ
注意:假設(shè)不是低位交叉編址,而是高位交叉編址鲫构,連續(xù)讀取四個(gè)字所需要的時(shí)間仍然為4T浓恶。
20、需要大家掌握多體并行存儲器在高位交叉編址(順序存儲)和低位交叉編址(交叉存儲)的情況下结笨,存儲器帶寬的計(jì)算方式包晰。
21、在CPU和內(nèi)存之間引入cache的原因炕吸。
1)避免cpu空等I/O訪存伐憾;
2)緩解CPU和主存速度不匹配的問題。
22赫模、什么是程序的局部性原理树肃。
CPU從主存取指令或數(shù)據(jù),在一定時(shí)間內(nèi)瀑罗,只是對主存局部地址區(qū)域訪問胸嘴。
23、Cache命中率斩祭、平均訪問時(shí)間以及訪問效率的計(jì)算劣像。
24、Cache寫操作有哪兩種方式摧玫?
1)寫直達(dá)法:寫操作既寫入Cache又寫入主存耳奕;
2)寫回法:只把數(shù)據(jù)寫入Cache而不寫入主存,當(dāng)Cache中數(shù)據(jù)被替換出去之后才寫入主存席赂。
25吮铭、將主存地址映射到Cache地址稱為地址映射,常見的Cache映射方式有哪幾種颅停?
直接映射谓晌、全相聯(lián)映射、組相聯(lián)映射癞揉。
26纸肉、直接映射的優(yōu)缺點(diǎn)?
優(yōu)點(diǎn):地址變換速度快喊熟。缺點(diǎn):cache利用率不高柏肪,塊沖突率高;
27芥牌、全相聯(lián)映射的優(yōu)缺點(diǎn)烦味?
優(yōu)點(diǎn):cache利用率高,塊沖突率低。缺點(diǎn):地址變換復(fù)雜谬俄,需要較多的硬件柏靶。
28、需要大家掌握各種映射方式之下溃论,寫出主存地址格式屎蜓、cache地址格式,以及主存地址向cache地址的轉(zhuǎn)換钥勋。
29炬转、Cache常用的替換算法有哪些?哪個(gè)命中率最高算灸?
1)先進(jìn)先出扼劈、近期最少使用算法和隨機(jī)替換算法;
2)命中率最高的是近期最少使用算法乎婿;
30测僵、磁盤的三地址結(jié)構(gòu)包括哪些?
柱面谢翎、磁頭號和扇區(qū)號
第4章 指令系統(tǒng)
4.1 指令系統(tǒng)的發(fā)展與性能需求
4.1.1指令系統(tǒng)的發(fā)展
程序:計(jì)算機(jī)的程序是由一系列的機(jī)器指令組成的捍靠。
指令就是計(jì)算機(jī)執(zhí)行某種操作的命令。
計(jì)算機(jī)的指令有微指令森逮、機(jī)器指令和宏指令榨婆。
微指令:微程序級的命令,屬于硬件褒侧。
宏指令:若干條機(jī)器指令組成的軟件指令良风,屬于軟件。
機(jī)器指令:介于微指令和宏指令之間闷供,通常簡稱為指令烟央。
每一條指令可完成一個(gè)獨(dú)立的算術(shù)運(yùn)算或算術(shù)邏輯運(yùn)算操作。
4.1.2指令系統(tǒng)的性能要求
完備性
指令系統(tǒng)豐富歪脏、功能齊全疑俭、使用方便。
有效性
該指令系統(tǒng)編寫的程序能夠高效率地運(yùn)行婿失。
高效率主要表現(xiàn)在程序占據(jù)存儲空間小钞艇、執(zhí)行速度快。
規(guī)整性
對稱性
勻齊性
指令格式和數(shù)據(jù)格式的一致性
兼容性
系列機(jī)各機(jī)種之間具有相同的基本結(jié)構(gòu)和共有的基本指令集豪硅,因而指令系統(tǒng)是兼容的哩照,即各機(jī)種上基本軟件可以通用。
4.2 指令格式
機(jī)器指令
機(jī)器指令是機(jī)器字來表示懒浮。
表示一條指令的機(jī)器字飘弧,就稱為指令字,通常簡稱指令。
指令格式眯牧,則是指令字用二進(jìn)制代碼來表示的結(jié)構(gòu)形式蹋岩,通常由操作碼字段和地址碼字段組成。
一條指令的結(jié)構(gòu)如下形式來表示:
操作碼
設(shè)計(jì)計(jì)算機(jī)時(shí)学少,對指令系統(tǒng)的每一條指令都要規(guī)定一個(gè)操作碼。
操作碼字段應(yīng)該執(zhí)行怎樣的操作秧骑?
加法版确,減法,乘法乎折,除法绒疗,取數(shù),存數(shù)等等骂澄。
一般來說吓蘑,一個(gè)包含 nn 位的操作碼最多能表示 2n2n 條指令。
地址碼
有幾個(gè)操作數(shù)地址坟冲,稱為幾操作數(shù) 或 幾地址指令磨镶。
在早期,一般操作數(shù)有被操作數(shù)健提、操作數(shù)和操作結(jié)果這三種數(shù)琳猫,所以就形成了三地址指令格式。
后來發(fā)展成二地址格式私痹、一地址格式和零地址格式脐嫂。
(1)零地址指令:只有操作碼,沒有地址碼紊遵。
(2)一地址指令只有一個(gè)地址碼账千,指定一個(gè)操作數(shù),另一個(gè)操作數(shù)是隱含的暗膜。
例數(shù)學(xué)含義:AC<–(AC)op(A)
累加寄存器AC中的數(shù)據(jù)位隱含的被操作數(shù)匀奏,操作結(jié)果又回到累加寄存器AC中,而累加寄存器中原來的數(shù)隨即被沖掉桦山。
op表示操作性質(zhì):加攒射、減、乘恒水、除…
(AC)表示累加寄存器中AC的數(shù)会放;(A)表示內(nèi)存中地址A的存儲單元中的數(shù);然后運(yùn)算完又送回到(AC).
(3)二地址指令钉凌,有兩個(gè)地址碼字段A1,A2A1,A2?,分別指明參與操作的兩個(gè)數(shù)在內(nèi)存中或運(yùn)算器中通用寄存器的地址咧最,其中A1A1?兼做存放操作結(jié)構(gòu)的地址。so數(shù)學(xué)含義:A1<?(A1)op(A2)
在二地址指令格式中,從操作數(shù)的物理位置來說矢沿,可以歸結(jié)為三種類型:
1.訪問內(nèi)存的指令格式滥搭,稱為存儲器-存儲器(SS)型。
2.訪問寄存器的指令格式捣鲸,稱為寄存器-寄存器(RR)型瑟匆。
3.即要訪問內(nèi)存單元,又要訪問寄存器栽惶,稱為寄存器-存儲器(RS)型愁溜。
(4)三地址指令中有三個(gè)操作數(shù) A1,A2,A3A1,A2,A3,其數(shù)學(xué)含義:A3<?(A1)op(A2)
指令字長度
一個(gè)指令字中包含二進(jìn)制代碼的位數(shù),稱為指令字長度外厂。
機(jī)器字長:計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù)冕象,他決定了計(jì)算機(jī)的運(yùn)算精度。
半字長指令:指令字長度等于半個(gè)機(jī)器字長度的指令汁蝶。
單字長指令:指令字長度等于機(jī)器長度的指令渐扮。
雙字長指令:指令字長度等于兩個(gè)機(jī)器長度的指令。
多字長指令的缺點(diǎn):必須兩次或三次訪問內(nèi)存以取出一整條指令掖棉,這就降低了CPU的運(yùn)算速度墓律,同時(shí)又占用了更多的空間
4.3 操作數(shù)類型
4.3.1 一般的數(shù)據(jù)類型
地址數(shù)據(jù)
無符號整數(shù)
數(shù)值數(shù)據(jù)
①定點(diǎn)整數(shù)或定點(diǎn)小數(shù);②浮點(diǎn)數(shù)啊片;③壓縮十進(jìn)制數(shù)只锻,一個(gè)字節(jié)用兩位BCD碼表示
字符數(shù)據(jù)
目前廣泛使用ASCII碼
邏輯數(shù)據(jù)
一個(gè)單元有若干二進(jìn)制位項(xiàng)組成,每個(gè)位的值可以是1或0.
4.4 指令和數(shù)據(jù)的尋址方式
尋址方式分為 指令尋址方式 和 地址尋址方式紫谷。
在馮·諾依曼型結(jié)構(gòu)的計(jì)算機(jī)中齐饮,內(nèi)存中指令的尋址和數(shù)據(jù)的尋址是交替進(jìn)行的。
4.4.1 指令的尋址方式
有兩種笤昨;
順序?qū)ぶ贩绞?/h4>
指令地址在內(nèi)存中按順序安排祖驱,當(dāng)執(zhí)行一段程序時(shí),通常是一條指令接一條指令的順序進(jìn)行瞒窒。
指令的順序?qū)ぶ贩绞睫嗥В仨毷褂贸绦蛴?jì)數(shù)器PC來計(jì)數(shù)指令的順序號,該順序號就是指令在內(nèi)存中的地址崇裁。
跳躍尋址方式
所謂跳躍匕坯,是指下條指令的地址碼不是由程序計(jì)數(shù)器給出,而是由本條指令給出拔稳。
4.4.2 操作數(shù)基本尋址方式
隱含尋址
不是明顯地給出操作數(shù)的地址葛峻,而是在指令中隱含著操作數(shù)的地址。操作數(shù)在專用寄存器中
直接尋址
特點(diǎn):在指令格式的地址字段中直接指出操作數(shù)在內(nèi)存的地址A巴比。
如果用D表示操作數(shù)术奖,那么直接尋址的表達(dá)式為:D=(A).
EA=A.
寄存器尋址
當(dāng)操作數(shù)不在內(nèi)存中礁遵,而是放在CPU的通用寄存器中,可采用寄存器尋址方式采记。
指令結(jié)構(gòu)中的RR型指令佣耐,就是采用寄存器尋址方式的例子。
EA=R
寄存器間接尋址
與寄存器尋址的區(qū)別:
指令格式中的寄存器內(nèi)容不是操作數(shù)唧龄,而是操作數(shù)的地址兼砖,該地址指明的操作數(shù)在內(nèi)存中。
EA=(R).
偏移尋址
直接尋址和寄存器間接尋址的結(jié)合既棺。
EA=A+(R)掖鱼;
常用的三種偏移尋址:
相對尋址:EA=A+(PC);引用的專用寄存器是程序計(jì)數(shù)器(PC).
基址尋址:EA=A+(R);引用的專用寄存器是基址寄存器.
變址尋址:EA=A+(R);引用的專用寄存器是變址寄存器.
段尋址方式
EA=A+(R);
堆棧尋址
EA=棧頂