Address-Space Identifier (ASID)

Motivation

  1. inverted page table 中整個系統只有一個 page table
  2. 每個 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 清空,這大幅提升了性能