1. 程式人生 > >操作系統下cache的幾個概念

操作系統下cache的幾個概念

cpu 程序 性能 存儲 支持 由於 機制 訪問 芯片

  Cache是一種容量比較小,但訪問速度比較快存儲器。由於處理器的速度遠高於主存,處理器直接從內存中存取數據要等待一定周期,而Cache位於處理器與主存之間,保存著最近一段時間處理器涉及到的主存塊內容。在需要讀取數據是,處理器可能就會從Cache中讀取需要的數據,而不是從主存中獲取數據,這樣就提高了系統的運行效率。

說的簡單一點, cache 是為了彌補高速設備和低速設備的鴻溝而引入的中間層,最終起到**加快訪問速度**的作用。

  在芯片中,大多數用的還是arm的內核,arm的cache的怎麽的呢?

  ARM處理器支持Cache機制,並將Cache分開為I-Cache(指令緩存)和D-Cache(數據緩存)。系統剛上電時,I-Cacche中的內容是無效的,並且I-Cacche的功能也是關閉的,CP15協處理器的SCTLR寄存器(系統控制寄存器)的bit[12]控制I-Cache的打開和關閉。I-Cache關閉時,CPU每次取指令都要讀主存,所以性能比較低。因此應該盡快打開I-Cache。同樣,系統剛上電時, D-Cache中的內容是無效的,並且D-Cache的功能也是關閉的,SCTLR寄存器的bit[2]控制D-Cache的打開和關閉。因為D-Cache必須在開啟MMU(內存管理單元)後才能使能,而本程序並不打算開啟MMU,所以這裏我們不是能D-Cache,只研究I-Cache。

  其實,還有最新流行的RSIC-V內核,也是支持cache的,使用的方法和ARM下的基本一樣,比較不同的是,這裏一般系統是不使用D-cache的.

  測試方法,其實有好幾種方法的, 最簡單的一種就是直接直接使用while循環,測試加不加cache的情況下運行的時間.

  其次,使用特殊的指令也行.比如,系統的一些做復雜運算的指令,這種會更準確.

操作系統下cache的幾個概念