關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > Cache在POWERPC處理器板中的應(yīng)用

        Cache在POWERPC處理器板中的應(yīng)用

        作者: 時(shí)間:2013-03-25 來源:網(wǎng)絡(luò) 收藏

        摘要:高速緩沖存儲(chǔ)器技術(shù)是現(xiàn)代設(shè)計(jì)中的核心技術(shù),文中詳細(xì)討論了如何應(yīng)用在計(jì)算機(jī)板中。
        關(guān)鍵詞:L1;L2Cache;主存;命中率

        Gibson提出高速緩存存儲(chǔ)器(Cache)技術(shù)后,1969年首先在IBM360/80計(jì)算機(jī)上得以實(shí)現(xiàn)這種技術(shù)。現(xiàn)在,這一技術(shù)不僅為大、中型計(jì)算機(jī)而且也為小型、微型計(jì)算機(jī)廣泛采用。解決主存與CPU的速度差異問題的技術(shù)措施有多種,設(shè)置Cache是提高存儲(chǔ)系統(tǒng)速度一個(gè)有效方法。 Cache是介于主存和CPU之間、速度數(shù)倍于主存而容量較小的快速存儲(chǔ)器,它的作用是使CPU能使用一個(gè)速度與CPU相當(dāng),而容量與主存相同的存儲(chǔ)系統(tǒng)。使用這種方法可使微機(jī)系統(tǒng)在成本增加不大的前提下性能得到較大提高。
        一般的中只有一級(jí)Cache,它與主存儲(chǔ)器構(gòu)成一個(gè)兩級(jí)的存儲(chǔ)系統(tǒng)。一些高性能的都采用兩級(jí)Cache,第一級(jí)Cache在CPU內(nèi)部,容量很小,速度很快;第二級(jí)Cache在主板上,容量較大,速度比第一級(jí)低5倍左右。
        Cache與主存儲(chǔ)器相比容量較小,它所保存的信息只是主存內(nèi)容的一個(gè)子集。特別要注意的是,CPU與Cache之間的信息交換以“字”為單位,而Cache與主存之間的信息交換是以“塊”為單位,一個(gè)塊由若干字組成,是定長的。塊的大小通常取一個(gè)主存周期所訪問到的字節(jié)數(shù)。
        當(dāng)CPU試圖讀取主存一個(gè)字時(shí),發(fā)出此字內(nèi)存地址到Cache和主存,此時(shí)Cache控制邏輯依據(jù)地址進(jìn)行判斷此字當(dāng)前是否在Cache中。若是,此字立即遞交給CPU,否則,要用主存讀取周期把這個(gè)字從主存讀出送到CPU,與此同時(shí)把含有這個(gè)字的整個(gè)數(shù)據(jù)塊從主存讀出送到Cache中。由于程序的存儲(chǔ)器訪問具有局部性,當(dāng)為滿足一次訪問需求而取來一數(shù)據(jù)塊時(shí),下面的多次訪問很可能讀取此塊中的其他字。

        1 局部性原理和命中率
        對(duì)大量典型程序運(yùn)行情況的分析結(jié)果表明,在一個(gè)較短的時(shí)間間隔內(nèi),程序?qū)Υ鎯?chǔ)器的訪問不是任意的、隨機(jī)的,而是對(duì)某一局部范圍的存儲(chǔ)器地址頻繁訪問,對(duì)此范圍以外地址則訪問很少,這就是程序訪問的局部性。根據(jù)程序的局部性原理,可以在主存和CPU之間設(shè)置一個(gè)高速的容量相對(duì)較小的存儲(chǔ)器,把正在執(zhí)行的指令地址附近的一部分指令或數(shù)據(jù)從主存調(diào)入這個(gè)存儲(chǔ)器,供CPU在一段時(shí)間內(nèi)使用。這對(duì)提高程序的運(yùn)行速度有很大的作用。這個(gè)介于主存和CPU之間的高速小容量存儲(chǔ)器稱作高速緩沖存儲(chǔ)器(Cache)。CPU訪問存儲(chǔ)器時(shí),首先檢查Cache,如果訪問的數(shù)據(jù)在Cache中,則CPU就能很快完成訪問,這種情況稱之命中。命中率越高,正確獲取數(shù)據(jù)的可靠性就越大。一般來說,Cache的命中率決定于Cache容量、Cache控制算法和Cache的結(jié)構(gòu)。設(shè)計(jì)較好的Cache系統(tǒng),命中率應(yīng)存90%以上。至于沒有命中的數(shù)據(jù),CPU只好直接從主存中獲取,同時(shí)也把它復(fù)制到Cache中,以備下次訪問。

        2 Cache一致性與寫策略
        在由Cache和主存儲(chǔ)器共同構(gòu)成的Cache存儲(chǔ)系統(tǒng)中,從工作原理可知,CPU只對(duì)Cache某行信息進(jìn)行修改,而主存儲(chǔ)器內(nèi)容卻沒有修改,而其他的主控者(處理器、I/O控制器等)全由主存儲(chǔ)器得到過時(shí)的信息。同樣,若其他主控者修改主存儲(chǔ)器信息,而Cache卻沒有得到修改相應(yīng)行的通知,CPU會(huì)由Cache得到過時(shí)的信息。這兩方面都會(huì)導(dǎo)致Cache與主存容不一致,也就是Cache的一致性問題。
        為了維護(hù)Cache的一致性必須從兩方面入手,一方面涉及到處理器所采用的Cache寫策略,另一方面涉及到處理器所采用的Cache一致性協(xié)議。
        2.1 寫直達(dá)法(Write—Through)
        中文譯名稱為寫貫通法。顧名思義,它的做法是當(dāng)Cache寫命中,Cache與主存同時(shí)發(fā)生寫修改。這種策略顯然較好地維護(hù)了Cache與主存的內(nèi)容一致性,但這并不等于說全部解決一致性問題。例如在多處理器系統(tǒng)中各CPU都有自己的Cache,一個(gè)主存塊若在多個(gè)Cache中都有一份拷貝的話,某個(gè)CPU以寫直達(dá)法來修改它的Cache和主存時(shí),其他Cache中的原拷貝就過時(shí)了。即使在單處理器系統(tǒng)中,也有I/O設(shè)備不經(jīng)過Cache向主存寫入的情況。
        2.2 寫回法(Write—Back)
        當(dāng)CPU對(duì)Cache寫命中時(shí),只修改Cache的內(nèi)容不立即寫入主存,只當(dāng)此行被換出時(shí)才寫回主存。這種策略使Cache在CPU-主存之間,不僅在讀方向而且在寫方向上都起到高速緩存作用。對(duì)一Cache行的多次寫命中都在Cache中快速完成修改,只是需要替換時(shí)才寫回主存,減少了訪問主存的次數(shù)從而提高了效率。
        2.3 寫一次法(Write—Once)
        寫一次法是一種基于寫回法又結(jié)合了寫直達(dá)法的寫策略,即寫命中和寫未命中的處理與寫回法基本相同,只是第一次寫命中時(shí)要同時(shí)寫入主存。這種方法主要用于某些處理器的片內(nèi)Cache。
        L1Cache在中的使用MPC755處理器內(nèi)部Cache的執(zhí)行有以下特點(diǎn):
        分別有兩個(gè)32-Kbyte的數(shù)據(jù)和指令Cache;
        指令和數(shù)據(jù)Cache有8種設(shè)置聯(lián)系方式;
        Cache的地址是物理尋址的,物理地址的標(biāo)簽儲(chǔ)藏在Cache的地址錄中;
        每一種Cache的打開與設(shè)置,可以通過設(shè)置寄存器HID0和特殊的寄存器SPR來設(shè)置。
        2.4 在處理器中設(shè)置Cache
        在Memory中設(shè)置WIMG。其中,WIM改變是在頁表方式和塊方式下進(jìn)行改變和設(shè)置的。
        配置MMU寄存器,對(duì)MMU寄存器的塊模式進(jìn)行配置。
        配置HID0寄存器的Cache管理化。

        3 L2Cache在POWERPC中的使用
        PPC755配置成1M的L2Cache,如下圖。

        本文引用地址:http://www.104case.com/article/201949.htm

        a.JPG


        3.1 L2Cache的初始化
        清除L2CR的L2E,L2CR地址為“1017”;
        設(shè)置L2CR的參數(shù);
        置 L2CR[L2I]位,執(zhí)行L2Cahe的global_invalidata動(dòng)作;
        判 L2CR[IP]位,如果為“1”,則表示global_invalidata動(dòng)作完成,否則繼續(xù)判,直到變?yōu)?ldquo;1”;
        如果 L2CR[IP]位變?yōu)?ldquo;1”,則清除L2CR[L2I]位;
        使能 L2Cache,設(shè)置L2CR[L2E]位為“1”。
        3.2 2Cache有效性測(cè)試
        在原有程序基礎(chǔ)上,初始化L2Cache,使能L1Cache和L2Cache;
        運(yùn)行某段程序(或任務(wù)),通過設(shè)置輸出離散量的高低電平,觀察示波器波形長短,來判斷L2Cache的有效性。

        4 結(jié)束語
        在計(jì)算機(jī)系統(tǒng)中,Cache技術(shù)有效地解決了處理器和存儲(chǔ)器速度問不匹配問題。通過對(duì)POWERPC處理器L1Cache與L2Cache的使用,使POW ERPC處理器的性能得到了很大的提高。

        存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理




        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 达州市| 湖州市| 江达县| 榆社县| 平邑县| 苏尼特右旗| 刚察县| 宜川县| 张家界市| 天台县| 西安市| 如东县| 射洪县| 高邮市| 潼南县| 蒲城县| 六枝特区| 靖西县| 平远县| 慈利县| 南昌市| 伊金霍洛旗| 桦川县| 永康市| 黔东| 隆子县| 福州市| 博客| 仪陇县| 吉林省| 郁南县| 根河市| 罗定市| 密云县| 高台县| 建湖县| 栾川县| 永仁县| 舒兰市| 仙游县| 册亨县|