處理器訪問記憶體時,CPU核 cache

2021-07-22 06:15:02 字數 1415 閱讀 5645

圖1cpu

訪問記憶體時的硬體操作順序

cpu

訪問記憶體時的硬體操作順序,各步驟在圖中有對應的標號:

1:cpu核心(

圖1中的

arm)

發出va

請求讀資料,

tlb(translation lookaside buffer)

接收到該位址,那為什麼是

tlb先接收到該位址呢?因為

tlb是

mmu中的一塊快取記憶體

(也是一種

cache

,是cpu

核心和物理記憶體之間的

cache)

,它快取最近查詢過的

va對應的頁表項,如果

tlb裡快取了當前

va的頁表項就不必做

translation table walk

了,否則就去物理記憶體中讀出頁表項儲存在

tlb中,

tlb快取可以減少訪問物理記憶體的次數。

2:頁表項中不僅儲存著物理頁面的基位址,還儲存著許可權和是否允許

cache

的標誌。

mmu首先檢查許可權位,如果沒有訪問許可權,就引發乙個異常給

cpu核心。然後檢查是否允許

cache

,如果允許

cache

就啟動cache

和cpu

核心互操作。

3: 如果不允許

cache

,那直接發出

pa從物理記憶體中讀取資料到

cpu核心。

4:如果允許

cache

,則以va

為索引到

cache

中查詢是否快取了要讀取的資料

,如果cache

中已經快取了該資料(稱為

cache hit)

則直接返回給

cpu核心,如果

cache

中沒有快取該資料(稱為

cache miss)

,則發出

pa從物理記憶體中讀取資料並快取到

cache

中,同時返回給

cpu核心。但是

cache

並不是只去

cpu核心所需要的資料,而是把相鄰的資料都取上來快取,這稱為乙個

cache line

。arm920t

的cache line是32

個位元組,例如

cpu核心要讀取位址

0x30000134~0x3000137的4

個位元組資料,

cache

會把位址

0x30000120~0x3000137(

對齊到32

位元組位址邊界)的

32位元組都取上來快取。

CPU 什麼是雙核處理器

雙核處理器 dual core processor 雙核處理器是指在乙個處理器上整合兩個運算核心,從而提高計算能力。雙核 的概念最早是由ibm hp sun等支援risc架構的高階伺服器廠商提出的,主要運用於伺服器上。而台式電腦上的應用則是在intel和amd的推廣下,才得以普及。目前intel推出...

CPU處理器架構

系統有x64,x86與ia 64三種版本之分,分別用於不同的cpu。較老的cpu只能安裝x86版的系統,也就是我們常見的32位系統。因為微軟的緣故,32位系統在過去的很長一段時間內,佔據著桌面計算機的主流地位。64位系統能夠在較新的x86 64架構的cpu上執行。而ia 64則只能執行於intel的...

雙核處理器ARM DSP

針對當前應用的複雜性,soc晶元更好能能滿足應用和 的需求,整合眾多介面,用arm做為應用處理器進行多樣化的應用開發和使用者介面和介面,利用dsp進行演算法加速,特別是 的編譯碼演算法加速,既能夠保持演算法的靈活性,又能提供強大的處理能力。傳統的晶元,基本是乙個處理器核心,或者是通用處理器如arm,...