作者kyuudonut (善良老百姓)
看板Grad-ProbAsk
标题Re: [理工] 107 交大 计组 (4)
时间Wed Jan 16 14:07:03 2019
1F:推 b10007034: 嗯对的,总体来说蛮复杂的,我翻了恐龙跟算盘 01/16 12:52
2F:→ b10007034: 大致上的心得跟你说得差不多 01/16 12:53
3F:→ b10007034: 首先看到TLB(恐龙397),看CPU可以让HW处理或是透过中断 01/16 12:56
4F:→ b10007034: 然後是TLB(RISC-V算盘839),TLB miss,HW储存暂存器值 01/16 13:01
5F:→ b10007034: 然後产生exception 01/16 13:01
6F:→ b10007034: exception调用OS,并用一组特殊的instr.(ISR?)更新TLB 01/16 13:02
7F:推 b10007034: 看了一些之後我只能说有三种情况,1全都HW处理2全都OS处 01/16 13:06
8F:→ b10007034: 3.HW+OS处理 01/16 13:06
You got it. 现实情况就是这样。但这会牵扯到 ISA 是如何设计的。
"通常" RISC-style 的 ISA 会尽量避免牵扯到 micro-architecture 相关的指令,
因为 TLB 主要是 micro-architecture level 的最佳化,会让整个 ISA 不够简洁。
但 Intel 就会有 TLB 相关的指令,例如 flush, invalidate, ...
9F:→ b10007034: 目前能确定的是cache一定是HW处理,猜测是为了快 01/16 13:08
10F:→ b10007034: 而memory那部分就是HW(MMU)+OS(决定replacement algo.) 01/16 13:09
→ b10007034: TLB也是HW+OS(参照算盘) *[m 01/16 13:09
这倒不一定,Cache 的部分还会有 prefetch 相关的指令可以用
11F:→ b10007034: 源来做trade-off,而这也就是现实的复杂之处 01/16 13:15
12F:→ b10007034: 说得还蛮模糊的,希望有大神出来点破我XD 01/16 13:17
--
◢ ◣ ▁▂█▂▁◢茄你老木! ◥ ▁▂▁
你这个茄子 ◤◥◤◥ 你有得茄吗? ◢█ ◆ █◣ 【茄~】
◣ ◤ ˋ ˊ ◥ 你有得茄吗?◢ ◤ ◥◥◤◤ ◥ ◤
◤ ㄧ ◣ ◤ (因为很重要 ▉ ⊙ ⊙ ▏
…
▍ 所以说两次)▉ △ ◢ ▏
◣ ◤◤ ◣ ◤◢ ψJeans1020
◢ ◣ ▁▂█▂▁◢茄你老木! ◥ ▁▂▁
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.16.173
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1547618826.A.7CD.html
13F:推 b10007034: 谢拉,原来是ISA,柱子本会讲到这边吗? 01/16 14:32
14F:→ b10007034: Intel flush指令我知道,如果TLB entry没有ASIDs(恐龙) 01/16 14:36
15F:→ b10007034: 为了确保context switch时,下个process不会转换到上个 01/16 14:37
16F:→ b10007034: process的PPN,会用flush来保证这件事情 01/16 14:38
17F:→ skyHuan: 长知识了 01/16 23:11
18F:推 skyHuan: 感谢b大跟原po 01/16 23:11