朱保鋒,蔡 艷
(1.鄭州大學信息工程學院,河南鄭州 450052;2.河南教育學院信息技術系,河南鄭州 450046)
計算機系統(tǒng)中不同組織方式的Cache性能分析
朱保鋒1,2,蔡 艷2
(1.鄭州大學信息工程學院,河南鄭州 450052;2.河南教育學院信息技術系,河南鄭州 450046)
分析了Cache的原理,分別從命中率、硬件實現(xiàn)、使用環(huán)境等方面對3種Cache組織方式的性能進行了分析比對.
局部性原理;Cache;組織方式;命中率;性能分析
Cache即高速緩沖存儲器,位于CPU和主存之間,容量小速度快,是為了解決CPU和主存速度不匹配而采用的一項技術,通常由SRAM構成[1].文章結合Cache的3種組織方式,從幾個方面對Cache的性能進行了分析對比.
在程序的執(zhí)行過程中,處理器訪問存儲器中的指令和數據通常是成塊訪問,在一長段時間內,使用的塊是變動的,而在一小段時間內,處理器主要訪問存儲器中固定的塊[2-3].因此可以在Cache中存放主存的部分副本,當CPU訪問主存時,首先判斷該內容在不在Cache中.如果命中,CPU就直接從Cache存取數據.如果未命中,CPU要訪問主存,同時要將主存中的相應數據調入Cache.Cache的命中率越接近1,CPU訪問主存的速度越接近于CPU訪問Cache的速度.總體來說,Cache的命中率和Cache的大小、Cache的組織方式、Cache的控制算法有關.
圖1 全相聯(lián)Cache結構示例Fig.1 Sample of the Cache structure of full association
按照Cache和主存之間的映射關系,主存有3種組織方式[4]:①全相聯(lián)方式,主存中的某塊可以放入Cache的任意一個位置;②直接映射方式,主存的塊和Cache的行之間具有多對一的關系,主存的某塊在Cache中有唯一的存放位置;③組相聯(lián)方式,是前兩種方式的一個折中,主存的某塊在Cache中可以有相對多個位置可以存放.
設Cache為8 KB,每行128 B,共64行.主存1 MB,共8 M塊,如圖1所示.由于主存的行和Cache的塊之間沒有算法約定,Cache的行除了要存儲主存的塊內容外,還要將對應塊的13位塊地址作為標記(tag)存儲起來.Cache有128 B*64=8 KB,用來存儲標記字段的相聯(lián)存儲器(CAM)的容量為13 bit×64=832 bit.
在全相聯(lián)方式中,主存的每一塊,在Cache中都有64個位置可以存放,比較靈活,并且降低了塊沖突率,命中率也較高.當CPU發(fā)送一個主存地址后,主存地址的高13位塊地址要和Cache相聯(lián)存儲器中的64個行標記做比較,共有65組數據參與,這樣的比較器在硬件上較難設計和實現(xiàn).如果Cache塊數減少,可以減小比較器的復雜度,因此全相聯(lián)方式適合容量小的Cache.由于主存地址除去7位塊內地址,剩余為標記字段,標記字段較長,需要容量較大的CAM.
該方式將主存按照Cache的大小分區(qū),則主存地址由3部分構成,分別是區(qū)號、區(qū)內塊號、塊內地址.假設主存1 MB,配備的Cache大小為8 KB,每塊128 B,則主存的區(qū)號為17位,將區(qū)號作為標記(flag),區(qū)內塊號為6位,其余為塊內地址(圖2).
對于主存某一區(qū)的一塊,假設塊號為m(0≤m≤63),只能調入Cache的m(0≤m≤63)塊中,位置是唯一的.當CPU發(fā)送一個20位的主存地址時,假設為FE0FFH,工作過程如下:
(1)根據地址中7~12位的塊號01H找到Cache行號為01H的行;
(2)Cache控制器將高7位7FH和相聯(lián)存儲器中行號為01H的標記做比較,確定該字是否在Cache中;
(3)如果在則命中,找到該字直接讀取;
(4)否則未命中,CPU從主存中讀取該字,并且將該字所在的塊調入行號為01H的Cache中,并將相聯(lián)存儲器中的標記字段改為7FH.
主存中的塊在Cache中的位置是唯一的,沖突率較大,如果CPU頻繁訪問不同區(qū)的第m塊,就會出現(xiàn)頻繁的置換,導致命中率降低.基于訪問的局部性原理,可以增加Cache的行數,減少沖突,適合大容量的Cache.在進行標記比對時只需比對一次,速度得以提高,硬件容易實現(xiàn).Cache的標記位減少到7位,所需的CAM容量也有所減小.
圖2 直接相聯(lián)Cache結構示例Fig.2 Sample of the Cache structure of direct connection
圖3 組相聯(lián)Cache結構示例Fig.3 Sample of the Cache structure of group association
組相聯(lián)方式中,Cache的v行分為一組(v值一般為2、4、8、16)稱為v路組相聯(lián)Cache[4].
圖3是一個2路組相聯(lián)Cache組織示例,每組的兩塊放入兩個4 KB SRAM的相同位置.Cache分為32組,主存地址20位,按照Cache的大小共分為128個區(qū).
Cache除了存儲主存塊內容外,要將塊對應的標記裝入CAM中,CPU發(fā)送一個主存地址,假如為FFFFFH,根據主存地址中的5位索引1F找到Cache的組,Cache組中的每塊對應的標記和主存地址中的標記7F做比對,如果一致則命中.
由于v的值較靈活,合理分配v值可以減少沖突率,提高命中率.另外v值較小,硬件上較易實現(xiàn),是一種理想的組織方式.
Cache的組織方式對計算機的性能有很大的影響,在3種組織方式中,全相聯(lián)方式是一種理想方式,但硬件上較難實現(xiàn),適合容量較小的Cache系統(tǒng).直接映射方式在硬件上容易實現(xiàn),但是沖突率大,適合容量大的Cache系統(tǒng).組相聯(lián)方式是二者的一個折中,可以調整組中的行數,使之用起來較靈活,因此在計算機的存儲系統(tǒng)中有廣泛的應用.
[1] STALLINGS W.Computer Organization and Architecture[M].張昆藏,譯.7版.北京:清華大學出版社,2006.
[2] 戴梅萼.高性能計算機系統(tǒng)中Cache組織方式及性能分析[J].微電子學與計算機,2000,17(5):15-18.
[3] 王恒娜.淺析訪問局部性原理在Cache存儲系統(tǒng)中的作用[J].安徽大學學報:自然科學版,2005,29(1):27-30.
[4] 白中英.計算機組成原理[M].北京:科學技術出版社,2008:92-98.
Analysis on Cache Performance of Different Organization Modes in Computer System
ZHU Bao-feng1,2,CAI Yan2
(1.Institute of Information Engineering,Zhengzhou University,Zhengzhou450052,China; 2.Department of Information Technology,Henan Institute of Education,Zhengzhou450046,China)
The principle of Cache is analyzed.It is discussed respectively about the hit rate,hardware implementation,environment of application and other aspects of Cache performance among three organization modes of the Cache by the example.
locality principle;Cache;organization mode;hit rate;performance analysis
TP333.1
A
1007-0834(2012)01-0038-02
10.3969/j.issn.1007-0834.2012.01.013
2011-12-05
河南省科技攻關項目(102102210248)
朱保鋒(1978—),女,河南滎陽人,鄭州大學信息工程學院在職碩士研究生、河南教育學院信息技術系講師.