Re: [理工] 107 交大 计组 (4)

楼主: kyuudonut (善良老百姓)   2019-01-16 14:07:03
推 b10007034: 嗯对的,总体来说蛮复杂的,我翻了恐龙跟算盘 01/16 12:52
→ b10007034: 大致上的心得跟你说得差不多 01/16 12:53
→ b10007034: 首先看到TLB(恐龙397),看CPU可以让HW处理或是透过中断 01/16 12:56
→ b10007034: 然后是TLB(RISC-V算盘839),TLB miss,HW储存暂存器值 01/16 13:01
→ b10007034: 然后产生exception 01/16 13:01
→ b10007034: exception调用OS,并用一组特殊的instr.(ISR?)更新TLB 01/16 13:02
推 b10007034: 看了一些之后我只能说有三种情况,1全都HW处理2全都OS处 01/16 13:06
→ 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, ...
→ b10007034: 目前能确定的是cache一定是HW处理,猜测是为了快 01/16 13:08
→ b10007034: 而memory那部分就是HW(MMU)+OS(决定replacement algo.) 01/16 13:09
→ b10007034: TLB也是HW+OS(参照算盘) *[m 01/16 13:09
这倒不一定,Cache 的部分还会有 prefetch 相关的指令可以用
→ b10007034: 源来做trade-off,而这也就是现实的复杂之处 01/16 13:15
→ b10007034: 说得还蛮模糊的,希望有大神出来点破我XD 01/16 13:17
作者: b10007034 (Warren)   2018-01-16 12:52:00
嗯对的,总体来说蛮复杂的,我翻了恐龙跟算盘大致上的心得跟你说得差不多首先看到TLB(恐龙397),看CPU可以让HW处理或是透过中断然后是TLB(RISC-V算盘839),TLB miss,HW储存暂存器值然后产生exceptionexception调用OS,并用一组特殊的instr.(ISR?)更新TLB看了一些之后我只能说有三种情况,1全都HW处理2全都OS处3.HW+OS处理目前能确定的是cache一定是HW处理,猜测是为了快而memory那部分就是HW(MMU)+OS(决定replacement algo.)源来做trade-off,而这也就是现实的复杂之处说得还蛮模糊的,希望有大神出来点破我XD谢拉,原来是ISA,柱子本会讲到这边吗?Intel flush指令我知道,如果TLB entry没有ASIDs(恐龙)为了确保context switch时,下个process不会转换到上个process的PPN,会用flush来保证这件事情
作者: skyHuan (Huan)   2019-01-16 23:11:00
长知识了感谢b大跟原po

Links booklink

Contact Us: admin [ a t ] ucptt.com