Address-Space Identifier (ASID)
Motivation
- 在 inverted page table 中整個系統只有一個 page table
- 每個 process 都會有重複的 page ID
需要有個方法可以區分不同 process 的相同 page ID
Resolution
我們為每個 process 分配唯一編號稱為 ASID(在此處是 pid),當 CPU 要 access memory 時就會檢查當前 process 的 ASID 是不是等於 page table entry 的 ASID
ASID and TLB
Background
當電腦 context switch 時,TLB 傳統上必須 flush 掉整個 TLB,因為 old process 的 logical address 對於 new process 是無效的
with ASID
如果 TLB 支援 ASID,他會在每個 entry 標註「這是屬於哪個 ASID」,如此 context switch 時就不用將 TLB 清空,這大幅提升了性能