市售新款的處理器都標榜高容量的L2快取記憶體,為何要把快取區分為L1和L2呢?這樣做對於處理效能有什麼好處?
現在有許多CPU的L1快取記憶體(L1 Cache Memory)是128K的容量,但是有的會介紹到64K+64K的L1快取記憶體,為什麼要這樣子寫呢?有沒有什麼特別的原因呢?第二個64K是L2快取記憶體嗎?
原來,在中央處理器內部的快取記憶體,我們便稱為L1快取記憶體。快取記憶體的運作,主要是將CPU運算的部份結果先放置於快取記憶體裡,待CPU要繼續運算時,能夠快速地讀取;或者是先將要處理的資料先放置於快取記憶體裡,由於在CPU內部的傳輸速度比起CPU外部的傳輸速度要快許多,因此資料處理的速度比起沒有內建快取記憶體的CPU快了許多。
快取記憶體,就好像皮包與口袋的關係,當我們從銀行裡領錢出來後就會把錢放在皮包裡,當我們要用時,不僅從皮包裡拿錢出來,把剩下來的錢放到口袋裡去,等待要買時再拿出來花用,最後,我們才會把一天剩下來的錢,重新放到皮包裡,而不夠時再去銀行領。CPU的運作也是如此,銀行就好像是硬碟的資料一樣,先會讀取所需要的資料到像皮包的記憶體裡,而處理器便會從皮包裡再將部份資料給放到像口袋的快取記憶體裡去,等到運算處理完部份資料時,再丟到口袋裡放著待用,直到處理完後一次丟到記憶體去。
因此快取的感覺很有層次,有時候記憶體也會擔任快取的角色,尤其是CPU裡沒有快取記憶體的容量時,又或者在主機板上就會建置有快取記憶體的設備。一般而言,現在的CPU都有L2快取記憶體了,而主機板上又有快取,所以一共就有三層快取的設計。這三層呢,其中有二層是在CPU內部的,所以CPU的運算速度會因為資料傳輸度的增快,而加速許多。
不過,在CPU裡,有的快取記憶體是建置在晶圓上(on die)的,有的是建置在CPU的基板上的。因此,即使是L1的快取記憶體,也會有兩種層次的出現,所以有的文章會用64K+64K的方式來表達。但是,我們一般在表達時,還是僅用總和的方式來表示,因為不管是那種L1的快取,它的地位應該是相同的。
隨著CPU製作技術的提昇,製程的進步讓快取記憶體的空間愈來愈大,也讓CPU運算的速度,有了劃時代的提昇,不管是那一種製作方式,在面對琳瑯滿目的CPU產品時,可別讓快取記憶體混淆我們的耳目囉。