系统机制:TLB刷新、硬件间接分支控制及相关优化
1. TLB刷新算法
TLB刷新算法主要在三种场景下实现:上下文切换、陷阱进入和陷阱退出。该算法可运行在仅支持全局/非全局位或支持PCID的系统上。
- 全局/非全局位系统 :与非KVA影子配置不同,所有内核页面标记为非全局,而过渡和用户页面标记为全局。页面表切换时,全局页面不会被刷新。
- 支持PCID的系统 :内核页面标记为PCID 2,用户页面标记为PCID 1,此时全局和非全局位被忽略。
当当前执行线程的时间片结束时,会初始化上下文切换。当内核调度属于另一个进程地址空间的线程执行时,TLB算法确保所有用户页面从TLB中移除。在陷阱退出时,算法确保所有内核条目从TLB中移除或失效。
| 配置类型 | 用户页面 | 内核页面 | 过渡页面 |
|---|---|---|---|
| KVA影子禁用 | 非全局 | 全局 | N / D |
| KVA影子启用,PCID策略 | PCID 1,非全局 | PCID 2,非全局 | PCID 1,非全局 |
| KVA影子启用,全局/非全局策略 | 全 |
超级会员免费看
订阅专栏 解锁全文
1524

被折叠的 条评论
为什么被折叠?



