作者kyuudonut (善良老百姓)
看板Grad-ProbAsk
标题Re: [理工] 108台大资工 计系 Exception
时间Tue Nov 2 22:30:13 2021
回答这题适当的方式我认为不是用排序,而是用归类的方式回答。
大约分三类 Rank A,B,C,难度为 A > B > C。
Rank A:
Out-of-order (OOO) superscalar
Speculative execution
有翻过 Computer Architecture: A Quantitative Approach 的学生
应该就知道,ILP 章节在讲述 OOO technique,主要就是在聊 Register
怎麽做 rename,最後怎麽 commit 回 ROB (Re-Order Buffer)。
而 Exception 自然是一个重点,既然指令被乱序执行,我们要如何确保
precise exception 这件事情?总不能指令 I 触发 Exception,但是下
面的指令 II 已经被 commit 了吧?走在 false path 上,结果触发
Exception?
而 Speculative execution 比较常用在具 OOO capability 的 core 上,
因为这些 core 通常也自带 Register renaming 的功能。
课本可能常举的例子是,branch 在尚未 resolve 之前,core 可以继续
往下执行。但值得一提的是,只要是 core 在基於臆测下执行的动作都
可以称做 speculative。例如为了避 load-to-use latency,在尚未确定
cache/tlb hit/miss 前,ALU 也可以先 issue consumer 去抢 timing。
而我将这两种 technique 归在一类的原因是,最後都是使用 ROB 去确保
program order 及 precise exception。
Rank B:
Pipelined implementation
Superscalar implementation
Single issue In-order processor
Pipeline 应该不须多讲了。
Superscalar 就定义上来看,是泛指单一 cycle 可以执行一道以上指令的
machine。因为该题有特别把 OOO superscalar 独立,所以合理推论这是指
In-order superscalar impelementation ...。
如果都是指 In-order implementation,那其实处理 exception 的方式就是
白算盘教的那样。管你 Single/multiple issue,有指令发生 exception,
都是要 Flush 掉前面年轻的指令,再跳去 exception handler。所以三者
归在同一类。
Rank C
Hierarchical data caches
Data cache 是 micro-architecture,而 exception 是 ISA 定义的东西,
要不要发生 exception 跟 cache 一点关系都没有。
推文有提到 page fault,但多层 cache 的机器我又不一定要开 OS :p
两件不同的事情。
--
◢ ◣ ▁▂█▂▁◢茄你老木! ◥ ▁▂▁
你这个茄子 ◤◥◤◥ 你有得茄吗? ◢█ ◆ █◣ 【茄~】
◣ ◤ ˋ ˊ ◥ 你有得茄吗?◢ ◤ ◥◥◤◤ ◥ ◤
◤ ㄧ ◣ ◤ (因为很重要 ▉ ⊙ ⊙ ▏
…
▍ 所以说两次)▉ △ ◢ ▏
◣ ◤◤ ◣ ◤◢ ψJeans1020
◢ ◣ ▁▂█▂▁◢茄你老木! ◥ ▁▂▁
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.43.59.224 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1635863416.A.FA9.html
1F:推 lienasd126: 谢谢大大回答,很详细。 11/02 22:48
2F:→ lienasd126: 但是想问一下,假如题目说的 Hierarchical Data Cache 11/02 22:48
3F:→ lienasd126: ,就是 Cache miss的话,是不是就可以看成跟第二类同一 11/02 22:48
4F:→ lienasd126: 类,因为data cache 会造成Memory Stall的关系,只是 11/02 22:48
5F:→ lienasd126: 他是停一个cycle,不是整个flush掉 11/02 22:48
不太清楚你的意思,
题目问的是 handle exception 的难度,cache miss != exception。
6F:→ lienasd126: 所以difficulty 也比大大说的第二类还要低一些,请大 11/02 22:49
7F:→ lienasd126: 大解答,感谢感谢 11/02 22:49
8F:推 jacksoncsie: 的确,cache miss跟page fault没关系 感谢回复 11/02 23:28
但就效能上,两者当然有关系。多层 level cache,可能可以帮忙减少 TLB miss penalty。
但一样,这跟题干想问的无关就是。
※ 编辑: kyuudonut (114.43.59.224 台湾), 11/03/2021 00:11:03
9F:推 lienasd126: 喔喔,我搞混了,我再想一下,谢谢大大 11/03 00:39
10F:推 TWkobe: 补充一下 cache 的议题反而会探讨coherence与llc memory 11/03 10:10
11F:→ TWkobe: 的penalty, 而page fault或多或少会影响没错但通常会讲d 11/03 10:10
12F:→ TWkobe: ata pattern是否具备locality或可以prefetch,而page fa 11/03 10:10
13F:→ TWkobe: ult比较high level且多牵扯os/main mem/disk之间的关联 11/03 10:10