[理工] 計組 TLB

看板Grad-ProbAsk作者 (Stitch)時間8年前 (2017/02/05 23:24), 編輯推噓10(10058)
留言68則, 8人參與, 最新討論串4/4 (看更多)
http://i.imgur.com/XVqzLyk.jpg
http://i.imgur.com/zCAIOf8.jpg
TLB vaild bit 跟 page table vaild bit 差在哪裡 ----- Sent from JPTT on my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.114.183.224 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1486308262.A.62B.html

02/05 23:35, , 1F
TLB Valid bit 是零 表示那是不要的舊資料 而page
02/05 23:35, 1F

02/05 23:35, , 2F
table的valid bit是零 表示頁還沒被使用
02/05 23:35, 2F

02/05 23:35, , 3F
有錯誤的話 麻煩大家幫我訂定
02/05 23:35, 3F

02/05 23:37, , 4F
我覺得是一樣的?樓上說的有沒有被使用應該是dirty bit
02/05 23:37, 4F

02/05 23:37, , 5F
或modified bit?
02/05 23:37, 5F

02/05 23:40, , 6F
阿我錯了抱歉,在page table的valid bit是在指有沒有在
02/05 23:40, 6F

02/05 23:40, , 7F
memory裡
02/05 23:40, 7F

02/05 23:40, , 8F
如果1是在memory裡,0的話在Disk中,要存取會發生page
02/05 23:40, 8F

02/05 23:40, , 9F
fault
02/05 23:40, 9F

02/05 23:43, , 10F
張凡下冊185頁有寫TLB
02/05 23:43, 10F

02/05 23:43, , 11F
Valid:to indicate the page to be access is in physic
02/05 23:43, 11F

02/05 23:43, , 12F
al memory 不過不太懂意思
02/05 23:43, 12F

02/05 23:46, , 13F
dirty bit我記得是用來判斷LRU的 ~~
02/05 23:46, 13F

02/05 23:48, , 14F
page table的valid bit 好像就是S大說的
02/05 23:48, 14F

02/06 01:07, , 15F
dirty bit 表明置換page時要不要寫入disk
02/06 01:07, 15F

02/06 01:07, , 16F
reference bit才是給LRU的
02/06 01:07, 16F

02/06 01:09, , 17F
TLB和page table的 valid bit是一樣的
02/06 01:09, 17F

02/06 01:09, , 18F
就是你看到這個entry時 他看到valid是0就表示 page fa
02/06 01:09, 18F

02/06 01:09, , 19F
ult了
02/06 01:09, 19F

02/06 07:08, , 20F
我印象也是TLB跟page table的valid bit是一樣的
02/06 07:08, 20F

02/06 07:08, , 21F
就像l大說的那樣
02/06 07:08, 21F

02/06 10:21, , 22F
我覺得是不一樣的,page table的是指有沒有在memory
02/06 10:21, 22F

02/06 10:21, , 23F
,TLB是指是否有效可存取。當context switch後TLB
02/06 10:21, 23F

02/06 10:21, , 24F
內可能都是invalid(都是上個process的)但那些page在
02/06 10:21, 24F

02/06 10:21, , 25F
該process的page table 上是valid的
02/06 10:21, 25F

02/06 10:22, , 26F
我只知道全名是 translation lookaside buffer 然後昨
02/06 10:22, 26F

02/06 10:22, , 27F
天考中興不知道是這三個字
02/06 10:22, 27F

02/06 10:42, , 28F
考量到context switch之後他們的值的確會不一樣
02/06 10:42, 28F

02/06 10:43, , 29F
不過他們的用意應該是一樣的?
02/06 10:43, 29F

02/06 10:46, , 30F
都是想要指出這個PPN是否可以直接存取,不過TLB的valid
02/06 10:46, 30F

02/06 10:46, , 31F
用意是指?
02/06 10:46, 31F

02/06 10:47, , 32F
bit為0代表的意義可能是剛context switch完,而page
02/06 10:47, 32F

02/06 10:47, , 33F
table的valid bit為0的原因是不在physical memory
02/06 10:47, 33F

02/06 10:47, , 34F
這樣講一講好像又不一樣了XD
02/06 10:47, 34F

02/06 10:49, , 35F
不過剛context switch完page table也被換掉了,這裡是
02/06 10:49, 35F

02/06 10:49, , 36F
我是覺得這樣就不能說這兩個valid bit一樣,不然硬
02/06 10:49, 36F

02/06 10:49, , 37F
要說的話都是要讓系統順利進行不就所有東西都一樣了
02/06 10:49, 37F

02/06 10:49, , 38F
@@
02/06 10:49, 38F

02/06 10:49, , 39F
會直接把TLB的valid bit全清為0嗎?還是會去看
02/06 10:49, 39F

02/06 10:49, , 40F
page table來設定呢?
02/06 10:49, 40F

02/06 10:50, , 41F
也是拉,OS裡面很多東西用意都是一樣的,實踐方法不同
02/06 10:50, 41F

02/06 10:51, , 42F
硬說他們一樣也不太對,我覺得我再去研究一下好了
02/06 10:51, 42F

02/06 10:51, , 43F
這應該就看怎麼設計了吧,沒有唸到這部分...但全清
02/06 10:51, 43F

02/06 10:51, , 44F
為0是一個選項
02/06 10:51, 44F

02/06 10:53, , 45F
不過我有一個想法,如果先不考慮context switch的話
02/06 10:53, 45F

02/06 10:53, , 46F
TLB的valid bit為0應該不太可能是因為不在physical
02/06 10:53, 46F

02/06 10:54, , 47F
memory?因為在TLB裡面的page應該都是最新剛用到的,
02/06 10:54, 47F

02/06 10:54, , 48F
應該都會在physical memory裡面,這觀念是否有誤?
02/06 10:54, 48F

02/06 10:57, , 49F
但是過程中也有可能被swap out ,如果你要限制說pro
02/06 10:57, 49F

02/06 10:57, , 50F
cess都很順利執行,沒有其他事情發生,那應該就沒
02/06 10:57, 50F

02/06 10:57, , 51F
02/06 10:57, 51F

02/06 10:58, , 52F
所以一般寫操作題目比較不會有這種情況吧,因為不
02/06 10:58, 52F

02/06 10:58, , 53F
用考慮那麽多
02/06 10:58, 53F

02/06 11:00, , 54F
我的認知是 TLB不需要 Vaild bit
02/06 11:00, 54F

02/06 11:01, , 55F
雖然好像在交大的考古題有過一次使用TLB 使用Vaild
02/06 11:01, 55F

02/06 11:01, , 56F
嗯嗯,被swap out之後TLB的valid bit會被設為0
02/06 11:01, 56F

02/06 11:01, , 57F
還是gary大考慮週到XD
02/06 11:01, 57F

02/06 11:02, , 58F
怕就是問True or False沒考慮到一些情況會寫錯QQ
02/06 11:02, 58F

02/06 11:06, , 59F
我想錯了QQ 考前一個大崩潰
02/06 11:06, 59F

02/06 11:10, , 60F
喔喔我剛剛看到一個東西,張凡書上寫TLB hit imply
02/06 11:10, 60F

02/06 11:11, , 61F
page table hit,應該就是說若TLB的valid bit為1,則
02/06 11:11, 61F

02/06 11:12, , 62F
page table的valid bit為1,但TLB valid bit為0的情況
02/06 11:12, 62F

02/06 11:13, , 63F
page table valid bit倒是沒說,而且他只用imply,不是
02/06 11:13, 63F

02/06 11:14, , 64F
用等價的關係,確實是不太一樣
02/06 11:14, 64F

02/06 15:33, , 65F
我也認為不一樣,TLB的Valid bit應該是判斷是不是舊資
02/06 15:33, 65F

02/06 15:33, , 66F
料,因為在TLB中的一定在memory上(SWAP OUT感覺有點
02/06 15:33, 66F

02/06 15:33, , 67F
太細,畢竟學校教的跟講義上都會認為在TLB上就一定在me
02/06 15:33, 67F

02/06 15:33, , 68F
mory上),而且PT是專屬的但TLB是共用的buffer
02/06 15:33, 68F
文章代碼(AID): #1ObqEcOh (Grad-ProbAsk)
討論串 (同標題文章)
文章代碼(AID): #1ObqEcOh (Grad-ProbAsk)