訪問(wèn)memory數(shù)據(jù)的速度與core的運(yùn)行速度相比,要花費(fèi)更多的時(shí)鐘周期。為了減少這個(gè)差異計(jì)算機(jī)系統(tǒng)引進(jìn)了存儲(chǔ)器層次結(jié)構(gòu),如圖1所示。在層次結(jié)構(gòu)中,越往上,讀寫速度越快,價(jià)格越貴,存儲(chǔ)容量也越小。
圖1 存儲(chǔ)器結(jié)構(gòu)層次
隨著摩爾定律的發(fā)展,人們?cè)噲D增加CPU的core數(shù)以提升系統(tǒng)整體性能,這類系統(tǒng)稱之為多core系統(tǒng)。一個(gè)包含多core的系統(tǒng)中,每個(gè)core可能都有自己的私有cache,并且有可能會(huì)對(duì)相同的memory地址進(jìn)行修改。如果多個(gè)core同時(shí)對(duì)同一memory地址進(jìn)行讀寫操作,很可能導(dǎo)致cache內(nèi)容不一致,從而導(dǎo)致數(shù)據(jù)不一致,最終造成系統(tǒng)出錯(cuò)和崩潰。因此,在設(shè)計(jì)多core系統(tǒng)時(shí),必須考慮cache一致性(cache coherency)問(wèn)題來(lái)確保數(shù)據(jù)的正確性和系統(tǒng)的穩(wěn)定性。舉個(gè)例子,假設(shè)2個(gè)core的系統(tǒng),每個(gè)core私有的L1 cache的cacheline大小是64Bytes。兩個(gè)core都讀取0x80地址數(shù)據(jù),導(dǎo)致0x80開(kāi)始的64Bytes數(shù)據(jù)都分別加載到core0和core1的私有L1 cache中。
本文鏈接:http://www.www897cc.com/showinfo-26-82752-0.html一文讀懂Cache一致性原理
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com