全相聯映像:
特點: 指主存的一個字塊能夠映像到整個Cache的不論什麼一個字塊中。這樣的映射方法比較靈活,cache的使用率高。但位址轉換速度慢,且須要採用某種置換算法将cache中的内容調入調出,實作起來系統開銷大。
直接相聯映像:
特點: 指主存的一個字塊僅僅能映像到Cache的一個準确确定的字塊中,主存的字塊僅僅能夠和固定的Cache字塊相應,方式直接,使用率低。
成本低,命中率低,效率較低。
組相聯映像:
對全相聯和直接映像的一種折中的處理方案。
既不在主存和Cache之間實作字塊的全然任意相應,也不在主存和Cache之間實作字塊的多對一的硬性相應。而是實作一種有限度的任意相應。
特點:折中方案。組間全相聯,組内直接映像。
集中了兩個方式的長處。
成本也不太高。
最常見的Cache映像方式。
總結:
三種映射規則能夠簡單覺得是對取模運算和取商運算的組合; 如果:記憶體=30塊,cache=5塊,1塊=10個字,是以記憶體=300個字。cache=50個字;記憶體包括的字數為memsize,塊包括的字數為blocksize,cache包括的字數為cachesize,每一個區包括的塊數為regionblocknum。每一個組包括的塊數為groupblocknum,區内塊号(區内偏移量)為regionblockoffset。 直接映射:memsize MOD blocksize獲得的是字在塊内的偏移量。memsize / blocksize獲得的是塊的标号作為标記。 全相聯映射:regionblocknum取cache中的塊的數量,是以cahce總是與記憶體中的一個區大小同樣。(memsize / blocksize)獲得全部的塊數,然後再對塊進行分區,分區操作是(memsize / blocksize)/regionblocknum獲得全部的區數, (memsize / blocksize)MOD regionblocknum獲得區内塊号(區内偏移量)。區内偏移量做索引,區号做标記。
組相聯映射:regionblockoffset=(memsize / blocksize)MOD regionblocknum,regionblockoffset / groupblocknum獲得組内偏移量,regionblockoffset MOD groupblocknum獲得組号。