① 高速緩存與主內存的關系是什麼
高速緩存是為了解決主內存存取速度一直比中央處理器操作速度慢得多,使中央處理器的高速處理能力不能充分發揮,整個計算機系統的工作效率受到影響問題而出現的。
根據程序局部性原理,正在使用的主內存某一單元鄰近的那些單元將被用到的可能性很大。
因而,當中央處理器存取主內存某一單元時,計算機硬體就自動地將包括該單元在內的那一組單元內容調入高速緩存,中央處理器即將存取的主內存單元很可能就在剛剛調入到高速緩存存儲器的那一組單元內。
於是,中央處理器就可以直接對高速緩存存儲器進行存取。在整個處理過程中,如果中央處理器絕大多數存取主內存的操作能為存取高速緩存存儲器所代替,計算機系統處理速度就能顯著提高。
(1)主存儲和高速緩存的地址映射方法擴展閱讀:
高速緩沖存儲器的容量一般只有主存儲器的幾百分之一,但它的存取速度能與中央處理器相匹配。
有很多方法可用來緩和中央處理器和主存儲器之間速度不匹配的矛盾,如採用多個通用寄存器、多存儲體交叉存取等,在存儲層次上採用高速緩沖存儲器也是常用的方法之一。
很多大、中型計算機以及新近的一些小型機、微型機也都採用高速緩沖存儲器。
參考資料來源:網路-高速緩沖存儲器
② Cache與主存之間的全相聯映射,直接映射和組相聯映射的區別
高速緩沖存儲器是存在於主存與CPU之間的一級存儲器,由靜態存儲晶元(SRAM)組成,容量比較小但速度比主存高得多,接近於CPU的速度。Cache的功能是用來存放那些近期需要運行的指令與數據。目的是提高CPU對存儲器的訪問速度。為此需要解決2個技術問題:一是主存地址與緩存地址的映象及轉換;二是按一定原則對Cache的內容進行替換。
Cache的結構和工作原理如圖2.3.1所示。
主要由三大部分組成:
Cache存儲體:存放由主存調入的指令與數據塊。
地址轉換部件:建立目錄表以實現主存地址到緩存地址的轉換。
替換部件:在緩存已滿時按一定策略進行數據塊替換,並修改地址轉換部件。
2.3.2地址映象與轉換
地址映象是指某一數據在內存中的地址與在緩沖中的地址,兩者之間的對應關系。下面介紹三種地址映象的方式。
1.全相聯方式
地址映象規則:主存的任意一塊可以映象到Cache中的任意一塊
(1)主存與緩存分成相同大小的數據塊。
(2)主存的某一數據塊可以裝入緩存的任意一塊空間中。
全相聯方式的對應關系如圖2.3.2所示。如果Cache的塊數為Cb,主存的塊數為Mb,則映象關系共有Cb×Mb種。
③ 緩存的緩存映射
根據E的數值,高速緩存可以被分為不用的類,包括直接映射緩存,組相聯緩存和全相聯緩存。 在組相聯緩存里,E大於1,就是說一個組裡面有多個cacheline。E等於多少,就叫有多少路,所以叫E路組相聯。
組相聯的行匹配就要復雜一些了,因為要檢查多個行的標記位和有效位。如果最終找到了,還好。當然,找不到會從下一級存儲器中取出包含所需求數據的行來替換,但一個組裡面這么多行,替換哪個行。如果有一個空行,自然就是替換空行,如果沒有空行,那就引發了一些其他的替換策略了。除了剛才介紹過的隨機策略,還有最不常使用策略,最近最少使用策略。這些策略本身是需要一定開銷的,但要知道,不命中的開銷是很大的,所以為了保證命中率,採取一些相對復雜的策略是值得的。 所謂全相聯,就是由一個包含所有緩存行的組組成的緩存。由於只有一個組,所以組選擇特別簡單,此時地址就沒有組索引了,只有標記和偏移,也就是t部分和b部分。其他的步驟,行匹配和數據選擇,和組相聯原理是一樣的,只是規模大得多了。如果說上面關於這三種映射方法的描述非常抽象,為了能理解得更加透徹,把存儲器比作一家大超市,超市裡面的東西就是一個個位元組或者數據。為了讓好吃好玩受歡迎的東西能夠容易被看到,超市可以將這些東西集中在一塊放在一個專門的推薦櫃台中,這個櫃台就是緩存。如果僅僅是把這些貨物放在櫃台中即完事,那麼這種就是完全關聯的方式。
可是如果想尋找自己想要的東西,還得在這些推薦貨物中尋找,而且由於位置不定,甚至可能把整個推薦櫃台尋找個遍,這樣的效率無疑還是不高的。於是超市老總決定採用另一種方式,即將所有推薦貨物分為許多類別,如「果醬餅干」,「巧克力餅干」,「核桃牛奶」等,櫃台的每一層存放一種貨物。這就是直接關聯的訪問原理。這樣的好處是容易讓顧客有的放矢,尋找更快捷,更有效。
但這種方法還是有其缺點,那就是如果需要果醬餅乾的顧客很多,需要巧克力餅乾的顧客相對較少,顯然對果醬餅乾的需求量會遠多於對巧克力餅乾的需求量,可是放置兩種餅乾的空間是一樣大的,於是可能出現這種情況:存放的果醬餅乾的空間遠不能滿足市場需求的數量,而巧克力餅乾的存放空間卻被閑置。為了克服這個弊病,老闆決定改進存貨方法:還是將貨物分類存放,不過分類方法有所變化,按「餅干」,「牛奶」,「果汁」等類別存貨,也就是說,無論是什麼餅干都能存入「 餅干」所用空間中,這種方法顯然提高了空間利用的充分性,讓存儲以及查找方法更有彈性。
④ 電腦的事,急~!
http://..com/question/40018468.html?si=7&wtp=wk
cache
開放分類: 緩存、計算機組成原理
cache n. 高速緩沖存儲器 一種特殊的存儲器子系統,其中復制了頻繁使用的數據以利於快速訪問。存儲器的高速緩沖存儲器存儲了頻繁訪問的 RAM 位置的內容及這些數據項的存儲地址。當處理器引用存儲器中的某地址時,高速緩沖存儲器便檢查是否存有該地址。如果存有該地址,則將數據返回處理器;如果沒有保存該地址,則進行常規的存儲器訪問。因為高速緩沖存儲器總是比主RAM 存儲器速度快,所以當 RAM 的訪問速度低於微處理器的速度時,常使用高速緩沖存儲器。另見 wait state。【英】A special memory subsystem in which frequently useddata values are plicated for quick access. A memory cache stores the contents of frequently accessed RAMlocations and the addresses where these data items are stored. When the processor references an address inmemory, the cache checks to see whether it holds that address. If it does hold the address, the data is returned tothe processor; if it does not, a regular memory access occurs. A cache is useful when RAM accesses are slowcompared with the microprocessor speed, because cache memory is always faster than main RAM memory.
Cache的出現是基於兩種因素:首先,是由於CPU的速度和性能提高很快而主存速度較低且價格高,第二就是程序執行的局部性特點。因此,才將速度比較快而容量有限的SRAM構成Cache,目的在於盡可能發揮CPU的高速度。很顯然,要盡可能發揮CPU的高速度就必須用硬體實現其全部功能。
Cache與主存之間可採取多種地址映射方式,直接映射方式是其中的一種。在這種映射方式下,主存中的每一頁只能復制到某一固定的Cache頁中。由於Cache塊(頁)的大小為16B,而Cache容量為16KB。因此,此Cache可分為1024頁。可以看到,Cache的頁內地址只需4位即可表示;而Cache的頁號需用10位二進制數來表示;在映射時,是將主存地址直接復制,現主存地址為1234E8F8(十六進制),則最低4位為Cache的頁內地址,即1000,中間10位為Cache的頁號,即1010001111。Cache的容量為16KB決定用這14位編碼即可表示。題中所需求的Cache的地址為10100011111000。
Cache中的內容隨命中率的降低需要經常替換新的內容。替換演算法有多種,例如,先入後出(FILO)演算法、隨機替換(RAND)演算法、先入先出(FIFO)演算法、近期最少使用(LRU)演算法等。這些替換演算法各有優缺點,就以命中率而言,近期最少使用(LRU)演算法的命中率最高。
瀏覽器緩存
緩存用於存儲一些臨時的文件。在瀏覽網頁的過程中,網頁會自動存儲在用戶的硬碟上。下次再瀏覽相同的網站的時候,系統會自動從硬碟中調出該網頁,既節省了時間也減少了網路的交換。用戶可以自行設定緩存方便其上網的需要。電腦中還存在高速緩沖存儲器和硬碟緩存。緩存的種類:本地伺服器緩存、網頁緩存、硬碟緩存、一級高速緩存、二級高速緩存。
簡單理解
cache是一個高速小容量的臨時存儲器,可以用高速的靜態存儲器晶元實現,或者集成到CPU晶元內部,存儲CPU最經常訪問的指令或者操作數據。
回
⑤ 高速緩沖存儲器的工作原理
高速緩沖存儲器的工作原理:
當中央處理器存取主存儲器時,硬體首先自動對存取地址的列號欄位進行譯
碼,以便將聯想存儲器該列的全部行號與存取主存儲器地址的行號欄位進行比較:若有相同的,表明要存取的主存儲器單元已在高速存儲器中,稱為命中,硬體就將
存取主存儲器的地址映射為高速存儲器的地址並執行存取操作;若都不相同,表明該單元不在高速存儲器中,稱為脫靶,硬體將執行存取主存儲器操作並自動將該單
元所在的那一主存儲器單元組調入高速存儲器相同列中空著的存儲單元組中,同時將該組在主存儲器中的行號存入聯想存儲器對應位置的單元內。
當出現脫靶而高速存儲器對應列中沒有空的位置時,便淘汰該列中的某一組以
騰出位置存放新調入的組,這稱為替換。確定替換的規則叫替換演算法,常用的替換演算法有:最近最少使用演算法(LRU)、先進先出法(FIFO)和隨機法
(RAND)等。替換邏輯電路就是執行這個功能的。另外,當執行寫主存儲器操作時,為保持主存儲器和高速存儲器內容的一致性,對命中和脫靶須分別處理。
高速緩沖存儲器(Cache)其原始意義是指存取速度比一般隨機存取記憶體(RAM)來得快的一種RAM,一般而言它不像系統主記憶體那樣使用DRAM技術,而使用昂貴但較快速的SRAM技術,也有快取記憶體的名稱。
⑥ 關於計算機組成原理的Cache-主存地址映象問題
CPU工作速度較高,但內存存取速度相對較低,則造成CPU等待,降低處理速度,浪費CPU的能力,cache用於做cpu和內存的緩存。
Cache的工作原理是基於程序訪問的局部性(通俗說就是把經常用到的數據放在一個高速的cache裡面)。
對大量典型程序運行情況的分析結果表明,在一個較短的時間間隔內,由程序產生的地址往往集中在存儲器邏輯地址空間的很小范圍內。指令地址的分布本來就是連續的,再加上循環程序段和子程序段要重復執行多次。因此,對這些地址的訪問就自然地具有時間上集中分布的傾向。
數據分布的這種集中傾向不如指令明顯,但對數組的存儲和訪問以及工作單元的選擇都可以使存儲器地址相對集中。這種對局部范圍的存儲器地址頻繁訪問,而對此范圍以外的地址則訪問甚少的現象,就稱為程序訪問的局部性。
根據程序的局部性原理,可以在主存和CPU通用寄存器之間設置一個高速的容量相對較小的存儲器,把正在執行的指令地址附近的一部分指令或數據從主存調入這個存儲器,供CPU在一段時間內使用。這對提高程序的運行速度有很大的作用。這個介於主存和CPU之間的高速小容量存儲器稱作高速緩沖存儲器(Cache)。
系統正是依據此原理,不斷地將與當前指令集相關聯的一個不太大的後繼指令集從內存讀到Cache,然後再與CPU高速傳送,從而達到速度匹配。
CPU對存儲器進行數據請求時,通常先訪問Cache。由於局部性原理不能保證所請求的數據百分之百地在Cache中,這里便存在一個命中率。即CPU在任一時刻從Cache中可靠獲取數據的幾率。
命中率越高,正確獲取數據的可靠性就越大。一般來說,Cache的存儲容量比主存的容量小得多,但不能太小,太小會使命中率太低;也沒有必要過大,過大不僅會增加成本,而且當容量超過一定值後,命中率隨容量的增加將不會有明顯地增長。
只要Cache的空間與主存空間在一定范圍內保持適當比例的映射關系,Cache的命中率還是相當高的。
一般規定Cache與內存的空間比為4:1000,即128kB Cache可映射32MB內存;256kB Cache可映射64MB內存。在這種情況下,命中率都在90%以上。至於沒有命中的數據,CPU只好直接從內存獲取。獲取的同時,也把它拷進Cache,以備下次訪問。
⑦ 高速緩存Cache問題
本題高速緩沖存儲器地址映像與變換的內容
高速緩沖存儲器(Cache)簡稱高速緩存,它的功能是提高CPU數據輸入輸出的速率,突破所謂的「馮·諾依曼瓶頸」。使用高速緩存改善系統性能的依據是程序的局部性原理。如果CPU需要訪問的內容大多能在高速緩存中找到(稱為訪問命中,hit)則可大大提高系統的性能
1、高速緩存Cache的存儲系統的平均存儲時間可以表示為:t3=h*t1+(1-h)*t2.其中,Cachce的存取時間t1、主存的存取時間t2及平均存取時間為t3已知後,可以求出Cache的命中率h為99%
2、高速緩存與主存之間有多種地址映射方式。常見的有直接映射方式、全相聯映射方式和組相聯映射方式。
全相聯映射方式的基本單元分為兩部分:地址部分和數據部分、數據部分用於存放數據,而地址部分用於存放該數據的存儲器地址。
當進行映射時,相聯存儲器把CPU發出的存儲器地址與高速緩存內所有的地址信息同時進行比較,已確定是否命中。
全相聯映射方式的主存地址構成為:塊內地址+區號+塊號。高速緩存Cache的地址構成為:塊號+塊內地址。
將主存地址8888888H從十六進制轉換為二進制為:1000100010001000100010001000B
即塊內地址為10001000100010001000B,相聯存儲器中區號為100010B,區塊號為00B,所以相聯存儲器中存儲的是10001000B=88H。由相聯存儲器的地址變換表查出88H塊號為01B。最後根據Cache的地址構成,把Cache塊號與塊內地址連接起來後得到高速緩存Cache的地址為0110001000100010001000B,轉換為十六進制後即188888H
⑧ 計算機組成原理中,比較一下緩存管理中各種地址映射的方法
在計算機中,數據只用0和1兩種表現形式,(這里只表示一個數據點,不是數字),一個0或者1佔一個「位」,而系統中規定8個「位」為一個「位元組」,用來表示常用的256個字母、符號、控制標記。在64位計算機中,「一個字長」所佔的位元組數為8。字長的位元組數 = 計算機位數/8。 單位 是「比特」,也就是「位」(bit,簡稱b),它表示 1個二進制位 。比「位」大的單位是「位元組」(byte,簡稱B),它等於 8個二進制位 。
⑨ 高分!!!關於匯編地址映像 急
看到上面的這些亂七八糟的回答,我說兩句:
1.直接映像法 2.全相映像法 3.組相映像法
這三種映射是在 計算機組成原理 里有詳細的解釋。
大概說一下,這三種映射涉及的對象是寄存器,CACHE,和內存;
其中cache(高速緩沖存貯器,簡稱高速緩存)是在兩者之間的,寄存器定址的時候要判斷目前找的地址是否在CACHE中,如果不在就從內存讀取,並且把讀近來的地址保存到CACHE的某一個位置上,如果CACHE已經寫滿了數據就按照某種演算法淘汰掉某一項。如果在CACHE中,那麼就直接從CACHE中讀取這個地址。
所謂1.直接映像法 2.全相映像法 3.組相映像法 是指把內存的地址寫到CACHE的一種方法。
1.直接映像法 是指內存中的某段地址只能映射到CACHE的某一項上,而不能映射到別的地方,不管別的地方是否有數據。這種方法的優點是讀寫和存貯都很方便,但是缺點是CACHE的利用律低。
2.全相映像法 是指內存的地址可以映射到CACHE的任何一項上。這種雖然可以提高CACHE的利用律,但是讀寫的時候不方便;
3.組相映像法 這種方法是把上面的兩種方法組合起來,就是把CACHE分成幾組。特定的內存地址只能映射的特定的某一組,但是可以映射到這一組的任何一項上。
這是我理解和記憶的內容,不知樓主能不能理解,如果想了解更多的,可是參考《組成原理》這本書。有錯誤還請指正,謝謝!