作者xygod (XY)
看板Grad-ProbAsk
標題Re: [理工][OS]台大97 Cache
時間Tue Feb 15 16:43:05 2011
※ 引述《BenLinus (班)》之銘言:
: ※ 引述《charliejack (charliejack)》之銘言:
: : (1)
: : 有TLB
: : Cache 使用virtually memory but phisical tagged cache
: : 請問他是怎麼做Logic -> Phisical的轉換的
: (1) virtually indexed, physically tagged cache
: virtual address
: ┌──────────────────┐
: └──────────────────┘
: ↓
: virtual page number | page offset
: ┌───────────┬──────┐
: └───────────┴──────┘
: | |
: ↓ ↓
: TLB tag, TLB index cache index, block offset
: ┌───────┬───┐ ┌────┬─┐
: └───────┴───┘ └────┴─┘
: | |
: ↓ |
: TLB |用virtual address的這段cache index
: 用上面這段資訊, |可找到要讀取cache的哪一個entry
: (HIT時)可在TLB的某entry找到 |
: 對應的data 就是 ↓
: physical address tag —————→CACHE
: ↑
: 把上面這個 tag 拉去跟 cache 的 tag field 比較,
: 由 virtual index, physical address tag 來取得真正的 data。
: 優點就是這樣只要一產生 virtual address 就可以馬上去讀 cache 的某 entry,
: 然後再用 TLB 查得的 physical address tag 來看 cache 是否 hit。
請問virtual index, physical tagged
是先把virtual page number拿到TLB去找到其對應的physical page(1) ,
用virtual address offset去cache找到對應的tag (2),
(因為virtual address offset內容和physical address後半段一樣)
然後比較(1)和(2)有沒有相同,才決定能不能直接使用所對應的data
因為這個地方不是很懂,麻煩各位教教我,謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.19.143
推 BenLinus:(1) 是TLB的data: physical address tag 的部分, 02/15 16:53
→ BenLinus:virtual addr. offset 是 cache的index, 然後cache 會有 02/15 16:54
→ BenLinus:tag field 跟 data field; cache 的 tag field 若同 (1) 02/15 16:55
→ BenLinus:則表示 cache hit, data可以直接拿去用。 02/15 16:55
→ xygod:喔喔,了解!!!肛溫啊~~~~ 02/15 16:59
→ xygod:所以剛剛討論交大那個,因TLB都MISS了,怎麼能知道cache hit 02/15 17:01
→ xygod:答案才會是no吧! 02/15 17:01
→ BenLinus:嗯 我是這樣想的 02/15 17:04
→ xygod:再一次的肛溫~~~~ 02/15 17:04