cache的工作方式

2021-08-10 19:53:33 字數 1470 閱讀 1104

帶有cache的cpu一般是先從cache中取出資料 而不是從記憶體裡取資料

而cpu是怎麼訪問cache的

cache訪問cache使用的類似的位址編碼方式。

處理器訪問儲存器時 會把位址傳遞給tlb和cache

cpu把虛擬位址

頁幀號傳遞給tlb 行索引(index)傳遞給cache匹配到相關的cache line

tlb裡是乙個用於儲存虛擬位址到實體地址轉換的小快取 處理器先使用epn在tlb中查詢出最終的rpn 如果這期間發生tlb miss 就要查詢頁表 如果tlb hit就很快獲得rpn 獲得相應的實體地址

然後去和cache line中的實體地址比較 如果比較不成功就會發生cache miss 這時需要去主儲存器中獲得最終的資料 然後填充在cache中 如果匹配成功就找到這個cache line的資料

cache 位址編碼:處理器訪問cache 時的位址編碼,分成3 個部分,分別是偏移域

(offset)、索引域(index)和標記域(tag)。

�� cache line:cache 中最小的訪問單元,包含一小段主儲存器中的資料,常見的cache

line 大小是32byte 或64byte 等。

�� 索引域(index):cache 位址編碼的一部分,用於索引和查詢是在cache 中的哪一行。

�� 組(set):相同索引域的cache line 組成乙個組。

�� 路(way):在組相聯的cache 中,cache 被分成大小相同的幾個塊。

�� 標記(tag):cache 位址編碼的一部分,用於判斷cache line 存放的資料是否和處

理器想要的

處理器訪問儲存器的時候 處理器訪問的位址可能是虛擬位址 也可能是實體地址

這個要看處理器 通常有三種格式

vivt(virtual index virtual tag):使用虛擬位址索引域和虛擬位址的標記域。

��vipt(virtual index physical tag):使用虛擬位址索引域和實體地址的標記域。

pipt(physical index physical tag):使用實體地址索引域和實體地址的標記域

比如arm9採用的就是vivt 這樣會出現快取記憶體別名的問題 系統效能下降 arm11採用的是vipt方式 也就是之前那個框架 傳送虛擬位址到tlb和cache

arm cortex-a 系列處理器的資料cache 開始採用pipt 的方式。對於pipt 方式,索引

域和標記域都採用實體地址,cache 中只有乙個cache 組與之對應,不會產生快取記憶體別名

的問題。pipt 的方式在晶元設計裡的邏輯比vipt 要複雜得多

工作方式問題

連續幾天的開發培訓終於結束了,明天開始就要實踐了。今天的活動是一團糟。離開公司之前將thunderbird的郵件備份,僅是把原來備份的資料夾複製到預設目錄下,但是卻生成了幾個帶亂碼的收件箱資料夾,非常亂,還不能刪除。後來看了下,是自己把這個資料夾儲存成唯讀的。刪了原來的帳戶,重新新增,結果更是麻煩。...

OKR工作方式

1.okr的定義 okr,英文全稱 objectives and key results 中文意為 目標和關鍵成果 okr是一種工作方式和工作系統,據說可以讓目標管理從上到下貫穿到基層。這套方法和系統是由英特爾的老總安迪 葛洛夫 andy grove,只有偏執狂才能成功 的作者 發明的。隨後被由約翰...

GPIO工作方式

1 浮空 顧名思義就是浮在空中,上面用繩子一拉就上去了,下面用繩子一拉就沉下去了.2 開漏 就等於輸出口接了個npn三極體,並且只接了e,b.c極 是開路的,你可以接乙個電阻到3.3v,也可以接乙個電阻到5v,這樣,在輸出1的時候,就可以是5v電壓,也可以是3.3v電壓了.但是不接電阻上拉的時候,這...