挑戰408——存儲器與存儲系統——刷題

這部分的刷題,其知識點是計算機組成原理與操作系統的交叉篇,計算機組成原理,應該說在Cache這部分內容後,就有了千絲萬縷的關係。
本節刷題內容:存儲器
題庫參考:百度文庫,王道考研,408真題
涉及的知識點:

  1. Cache與主存之間的映射
  2. Cache地址字段含義
  3. 程序的局部性原理
  4. 虛擬存儲器原理
  5. 虛實地址映射的過程
  6. TLB
第一題

在這裏插入圖片描述
解析:概念題,Cache只是主存中的一部分內容的副本,所以,Cache的內容本身就從屬於主存,選B

第二題

在這裏插入圖片描述
解析:這道題信息量有點多,慢慢分析.Cache一共有16塊,每組有2塊,所以一共有8組。那麼一塊的大小爲32B,試問,129號存儲單元位於第幾塊呢?(注意存儲塊與存儲單元是不同的)
在這裏插入圖片描述

第三題

在這裏插入圖片描述
解析:這是一道典型的操作系統跟組成原理結合的題目,很是有意思。先從條件推已知:
按字編址(不是字節了),Cache有4行,採用的是2路,於是得出結論,有兩組,每組兩行。在Cache的設計中我們知道,cache中的塊大小跟主存中的塊大小是一樣的,所以,在主存中的兩個相鄰的單元,被劃分成爲同一塊。
在這裏插入圖片描述
由計算組數的公式可以算出塊號所在的組號,在組內的塊隨機存放,但是一旦存滿了,就要進行置換,方式題目中說了是LRU,所以,根據LRU的算法,畫出對應的置換過程:
在這裏插入圖片描述
爲什麼這裏倒數第二列中,4置換掉的是0而不是8呢?明明8存在的時間最長?注意了LRU是指最近未被訪問,8在倒數第四次的時候,被訪問,只不過是命中罷了。

第四題

在這裏插入圖片描述
解析:先讀題,容量爲16kb,若按字節編址,那麼就要用到14位來表示它的地址。所以把所給地址中,取後面的14位就可以得到正確答案。不過,這樣似乎有些不太好理解,因爲我們教材中的地址格式是這樣的:
在這裏插入圖片描述
我們更想知道具體的位數,所以,一行有16B,所以按字節編址的形式容量應該是 1K X 16B,也就是說,字塊內地址是4位,Cache字塊地址爲10位(因爲有1k塊)。最後得出結果:
在這裏插入圖片描述

第五題

在這裏插入圖片描述
解析:對比上一題,都是考對地址字段的理解,先讀題。128kB,每塊16B,所以我們知道一共有8K塊。8路組相聯,自然是8塊爲一組。所以有1K個組
顯然,我們可以得出組內地址有10位,塊內地址有4位。現在問的不是地址了,是tag。所以我們反過來取出所給的地址中,除去後面的14位的二進制數就好了,具體過程如下:
在這裏插入圖片描述

第五題

在這裏插入圖片描述
分析:首先從題目中我們可以得到下面這些信息:一塊的大小爲8X32位,也就是32B,每個字32位,所以字塊內的地址爲5位。
所以Cache中一共有(16kb/32B) = 0.5K塊。也就是需要9位來表示,題目問的是塊號,我們寫出直接映射的地址格式:
在這裏插入圖片描述
所以我們只要寫出所給地址的後14位,再把後面的5位去掉,就可以得到塊號。計算中,答案給的是十進制數,多位的二進制數往往不好直接轉換成10進制數,所以,靈活點,變成16進制數,再轉10進制。過程如下:
在這裏插入圖片描述

第六題

在這裏插入圖片描述
分析:這是一道含有代碼的題目。咋看之下,第一眼確實是沒什麼思路,都不知道跟題目有什麼關係。這需要一定的編程基礎。先看看信息。一個int類型的數據佔4B,一個塊大小爲16B,這裏我們知道一個塊最多可以裝4個int類型的數據。一開始Cache爲空,我們知道,第一次訪問一定不會命中(這是廢話)。
學過C/C++的同學應該知道,數組是順序存儲的,第一個元素的地址就是其首指針。所以,循環裏面的語句,是從數組的地址中,取出這個數,然後運算後再重新放回其同一地址,所以,一次操作要進行兩次訪存。這裏有個很重要的知識點,就是主存與Cache之間是使用塊作爲單位傳遞的。所以Cache不命中的時候,就會從主存中,調入一個塊出來(裏面有4個整型值)。k自增的時候,除了第一次會缺失,其他三次都會命中,所以:
在這裏插入圖片描述
8次訪問,第一次會缺失,後面都存在Cache中,不會缺失。

第七題

在這裏插入圖片描述
分析:這也是一道代碼題。不過比上題簡單多了。這裏只要明白了時間局部性跟空間局部性的原理就可以了。
1.循環執行某一個操作,體現了時間局部性
2.頻繁的訪問數組A的地址,體現了空間局部性。

第八題

在這裏插入圖片描述
分析:這道題目看起來挺嚇人的,不過認真分析,發現也挺簡單的。採用頁式管理,首先想到的是,它的頁內偏移地址跟實地址中的偏移地址是一樣的(這個不多解釋,之前的博文有解釋)。而頁面的大小是4KB,意味着,頁內偏移有12位二進制數,也就是3位16進制數,所以實地址的後三位一定是180H。顯然,頁內偏移地址前面的就是頁號了,查所給的頁表,找到03FFFH,於是找到對應的頁框號,有效位爲1,說明所要找的存在與主存中,所以沒有缺頁。最後,實際地址與頁偏移拼接在一起得到A答案。

第九題

在這裏插入圖片描述
分析這裏寫的很詳細了

未完待續…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章