Catalogue
1.數據的編碼表示(原、反、補、移碼的編碼和轉換方法)
1.1知識儲備
三種機器數的小結:
- 最高位為符號位,書寫上用“,”/不寫(整數)或“.”(小數)將數值部分和符號位隔開。
- 對於正數,原碼=補碼=反碼
- 對於負數,符號位為1,其數值部分
原碼除符號位外每位取反末位加1—>補碼
原碼除符號位外每位取反—>反碼
1.2典型例題
1、定點數x=-100,其8位原碼是(1)、反碼是(2)、補碼是(3)、移碼是(4)
(例如10110110)
參考解答:
(1)1 1100100
(2)1 0011011
(3)1 0011100
(4)0 0011100
2.數據檢錯糾錯方法(奇偶校驗、海明編碼解碼與檢錯1、2和糾錯1位方法並給出過程)
2.1知識儲備
2.2典型例題
1.給出兩個編碼1001101和1010111的奇校驗碼和偶校驗碼。
設最高位為校驗位,余7位是信息位,則對應的奇偶校驗碼為:
解析:
奇校驗碼:整個校驗碼(有效信息位和校驗位)中“1”的個數為奇數。
偶校驗碼:整個校驗碼(有效信息位和校驗位)中“1”的個數為偶數。
參考解答:
奇校驗:11001101 01010111
偶校驗:01001101 11010111
2.設待校驗的數據為D8-D1=10100001,則采用海明校驗,
(1)求其海明碼(設海明碼具有一位糾錯能力,H13采用全校驗)。給出海明碼求解過程。
(2)假設信息傳輸前10100001–>傳輸后10101001,給出海明碼檢錯糾錯過程。
參考解答:
(1)
(2)
3.定點數補碼加減法及溢出判斷
3.1知識儲備
3.2典型例題
9、若機器字長為8位,用定點小數表示。已知X=-0.10110,Y=0.10010。
求[X]補=(1)
[Y]補=(2)
和[-Y]補=(3)(格式如1.0101010)
用變形補碼計算[X+Y]補=(4)(格式如:11.0101010)。並判斷結果(5)(有或無)溢出。
用變形補碼計算[X-Y]補= (6)(格式如:11.0101010)。並判斷結果(7)(有或無)溢出。
參考解答:
(1)1.0101000
(2)0.1001000
(3)1.0111000
(4)11.1110000
(5)無
(6)10.1100000
(7)有
4.浮點數加減法
4.1知識儲備
-
左規,是為了去掉真值小數點后的零,符號位不能動,所以是算術左移。
-
右規,是為了把進位到符號位的值移到小數點后面來,采用雙符號位,
既可以保留原符號位,又可以保留進位位,所以這個地方的右移是需要保留符號位的,是算術右移。 -
規格化浮點數:規定尾數的最高數值位必須是一個有效值。
-
原碼表示的尾數規格化:尾數的最高數值位必須是1。
-
補碼表示的尾數規格化:尾數的最高數值位必須和尾數的符號位相反。
4.2典型例題
1.已知十進制數X=-5/256,Y=+59/1024,舍入用0舍1入法,按機器補碼浮點運算規則計算
X-Y,結果用二進制表示。
浮點數格式如下:階符取2位,階碼取3位,數符取2位,尾數取9位。
參考解答:
5.定點數乘除法(原碼/布斯法補碼一位乘法,加減交替法原碼一位除)
5.1知識儲備
5.2典型例題
1.根據題中數據用原碼一位乘法求乘積,並寫出計算步驟,設機器字長為5位二進制。
X= -0.1101,Y=+0.0110
參考解答:
2.根據題中數據用補碼一位乘法(布斯法)求乘積,並寫出計算步驟,設機器字長為5位二進制。
X= - 0.1101,Y=+0.0110
參考解答:
3.請用原碼加減交替法完成 X除以 Y的運算,並寫出運算步驟,設機器字長為6位二進制。
X=-0.10101,Y=+0.11011
參考解答:
6.磁盤計算(容量、平均等待時間、平均尋址時間、最大數據傳輸率等計算)
6.1知識儲備(書本P124、125)
- 磁盤存儲器的存儲總容量C=n X k X s,其中n為存放信息的盤面數,k為每個盤面的磁道數,s為每條磁道上記錄的二進制代碼數。
- 磁盤平均等待時間,又叫潛伏期,是指磁頭已處於要訪問的磁道,等待所要訪問的扇區旋轉至磁頭下方的時間。平均等待時間為盤片旋轉一周所需的時間的一半。
- 平均尋址時間=平均找道時間+平均等待時間。
- 數據傳輸率=位密度 X 線速度,又線速度=周長 X 轉速 ,因此數據傳輸率=位密度 X 周長 X 轉速。又位密度 X 周長=每個磁道的總位數,因此數據傳輸率=每個磁道的總位數 X 轉速。
6.2典型例題
2.每條磁道有12個扇段,每個扇段有512B,磁盤機以7200rpm速度旋轉。
求磁盤數據傳輸率。
參考解答:
7.存儲器系統(根據條件選擇若干芯片、連接線路、給出擴展連接圖和地址空間簡單分析)
7.1知識儲備
注:位擴展擴展的是數據位寬度,字擴展擴展的是CPU訪問存儲空間的容量。
7.2典型例題
1、使用4K x 8位的RAM芯片組成一個容量為8K x 16位的存儲器,需要(1)片,進行(2)擴展,
需要連接(3)根地址線,(4)根數據線,還需要連接一根(5),一根(6)。
畫出連線圖,給出其存儲器地址范圍。
參考解答:
(1)4
(2)字、位
(3)13
(4)16
(5)片選線
(6)讀寫控制線
A12為0時,選擇的是1#、2#芯片,它們的地址空間范圍相同,
都是0 000000000000~0 111111111111。
A12為1時,選擇的是3#、4#芯片,它們的地址空間范圍相同,
都是1 000000000000~1 111111111111。
2、使用4K x 8位的RAM芯片組成一個容量為4K x 16位的存儲器,需要(1)片,進行(2)擴展,
需要連接(3)根地址線,(4)根數據線,還需要連接1根(5),一根(6)。
畫出連線圖,給出其存儲器地址范圍。
參考解答:
(1)2
(2)位
(3)12
(4)16
(5)片選線
(6)讀寫控制線
CS非為0時,同時選擇兩個芯片,它們有相同地址空間,
地址空間范圍是:0 000000000000~0 111111111111
3、使用4K x 8位的RAM芯片組成一個容量為16K x 8位的存儲器,需要(1)片,進行(2)擴展,
需要連接(3)根地址線,(4)根數據線,還需要連接1根(5),一根(6)。
畫出連線圖,給出其存儲器地址范圍。
參考解答:
(1)4
(2)字
(3)14
(4)8
(5)片選線
(6)讀寫控制線
A13A12為00時,選擇的是1#芯片,其地址空間范圍為00 000000000000~00 111111111111
A13A12為01時,選擇的是2#芯片,其地址空間范圍為01 000000000000~01 111111111111
A13A12為10時,選擇的是3#芯片,其地址空間范圍為10 000000000000~10 111111111111
A13A12為11時,選擇的是4#芯片,其地址空間范圍為11 000000000000~11 111111111111
8.指令系統(定長操作碼數量計算、不定長操作碼的數量計算和根據條件的編碼擴展)
8.1知識儲備
8.2典型例題
1.假設某計算機的指令長度固定為16位,具有雙操作數,單操作數和無操作數三類指令,
每個操作數地址規定用6位表示。
(1)現已設計出m條雙操作數指令,n條無操作數指令,
在此情況下,這台計算機最多可設計出多少條單操作數指令?
(2)當雙操作數指令取最大數,且在此基礎上,單操作數指令條數也取最大值,
試計算這3類指令最多可擁有多少條指令?
參考解答:
(1)
計算機最多有2^4=16條雙操作數指令,雙操作數指令為m條,則操作碼字段還有16-m種擴展標志,
用於表示操作碼向一地址字段擴展,計算機最多有(16-m)X 2^6條單操作數指令;
又無操作數指令是在單操作數指令的基礎上,通過將操作碼向最后一個地址字段擴展得到的,
加上擴展的過程中用了y個擴展標志,則有無操作數指令n=y X 2^6=64y,y=n/64;
因此計算機最多可設計出(16-m) X 64-n/64條單操作數指令。
(2)
雙操作數指令最多有2^4-1=15條
單操作數指令最多有1*2^6-1=63條
無操作數指令最多有1*2^6=64條
2.假設某計算機指令長度為20位,具有雙操作數、單操作數和無操作數3類指令格式,
每個操作數地址規定用6位表示。
問:若操作碼字段固定為8位,現已設計出m條雙操作數指令,n條無操作數指令,
在此情況下,這台計算機最多可以設計出多少條單操作數指令?
參考解答:
由於設定全部指令采用8位固定的OP字段,故這台計算機最多的指令條數為2^8=256條。
因此最多還可以設計出(256-m-n)條單操作數指令。
9.高速緩存(三種映射方法、主存地址划分、命中率、平均訪問時間)
9.1知識儲備
9.2典型例題
1.若cache以字為塊,其存取時間為10ns,主存的存取時間為100ns,存儲系統的平均存取時間為16ns,
則cache的命中率為()
2.假設某計算機的存儲系統由cache和主存組成,某程序執行過程中訪存10000次 ,
其中訪問主存1000次,cache的訪問時間是10ns,主存的訪問時間是cache的10倍,
則存儲系統的平均訪問時間是?
填空題:
1、設主存地址空間大小為1KB,按字節編址,cache大小為128B,每個cache塊(cache的每行)大小為16B。
CPU要訪問的地址是:196。
當cache為空的情況下,主存地址是(1)位,
主存地址十進制196的二進制是:(2),
主存塊數是:(3)個,
cache塊數是:(4)個,
采用直接映射方式,不論cache是否為空,地址196所在的塊(5)(必須或不一定)放在cache的(6)2塊,
196對應到cache地址是:(7)2。
采用全相聯映射時,196對應到cache地址是:(8)2;
采用4路組相聯映射時,196對應到cache地址是:(9)2。
參考解答:
(1)10
(2)0011000100
(3)64
(4)8
(5)必須
(6)100
(7)1000100
(8)0000100
(9)0000100
解析:
(1)主存地址空間大小為1KB—>主存地址為10位。(當cache為空時)
(2)196=128+64+4,對應的二進制為0011000100(補全10位)
(3)Cache—主存地址映射的實質:字塊內地址一樣,主存的塊號—>Cache所在塊塊號,
每個cache塊(cache的每行)大小為16B—>字塊內地址為4位,因此主存的地址為6位(10-4=6),
主存的塊數為2^6=64個。
(4)cache大小為128B,每個cache塊(cache的每行)大小為16B,cache的塊數=128/16=8塊。
(5)直接映射方式:每個主存塊只能和一個緩存塊對應。因此填"必須"。
(6)cache的塊數為8塊,則cache字塊地址為3位(2^3=8)
【取十進制196對應二進制的低5位到低7位,即(100)2;低4位為字塊內地址,即(0100)2為字塊內地址。】
(7)cache地址包括cache字塊地址(3位)和字塊內地址(4位)
【取十進制196對應二進制的低7位,即(1000100)2。】
(8)全相聯映射,主存中的任一塊可以映射到緩存中的任一塊,cache為空的情況下時,
映射到cache中的第0塊(即cache字塊地址為(000)2的那一塊),字塊內地址不變。
(9)cache共有8塊,采用4路組相聯映射時(組內cache塊為4塊),cache共分8/4=2組
(2^1=2);因此主存地址中的組地址占1位,為十進制196對應二進制的從右往左數第5位0,
所以cache中的組地址為0,又cache塊為空,因此196對應到cache第0組的第00塊中。
2、某計算機的cache共有8塊,假設為空,每個主存塊大小為32字節(按字節編址),
采用直接映像法,主存129號單元所在主存塊應裝入到的cache塊號是(1);
采用全相聯映像法,主存129號單元所在主存塊應裝入到的cache塊號是(2);
采用4路組相聯映像法,主存129號單元所在主存塊應裝入到的cache塊號是(3)
參考解答:
每個主存塊大小為32字節(按字節編址)
故主存129號單元所在主存塊為第129÷32=4塊(塊號從0開始編號)
(1)
直接映射方式下,主存塊按模C(C為cache塊數)映射到cache中的某一塊,4 mod 8=4,
故主存129號單元所在主存塊應裝入到的cache塊號為4。
(2)
全相聯映射方式下,主存塊中的任一快可以映射到cache中的任一塊。由於cache為空,
故129號單元所在的主存塊應裝入塊號為0的cache塊中。
(3)
組相聯映射方式下,主存塊按模Q(Q為cache組數)映射到cache對應組中的任一塊。
cache共有8塊,采用4路組相聯映射(組內cache塊為4塊),故cache共分8÷4=2組,
4 mod 2=0,由於cache為空,故129號單元所在主存塊應裝入cache第0組第0個cache塊。
3、某32位計算機的cache容量為16KB,cache行的大小為16B,若主存與cache地址映像采用直接映像方式,
則主存地址為0x1234E8F8的單元裝入cache的地址是()
請給出解題過程
參考解答:
cache行大小為16B(2^4)—>字塊內地址為4位
cache塊數=16*2^10B÷16B=2^10—>cache字塊地址為10位
十六進制主存地址0x1234E8F8的二進制為0001 0010 0011 0100 1110 1000 1111 1000
取二進制低14位得裝入cache的地址為10 1000 1111 1000
10.控制器(理解指令的四個周期對應微操作序列及所需對應的微命令)
10.1知識儲備
10.2典型例題
參考資料
計算機組成原理期末復習90分以上選擇填空大題總考點
【計算機組成原理】——磁盤容量計算,磁盤平均尋址時間計算以及數據傳輸速率的計算