作者b10007034 (Warren)
看板Grad-ProbAsk
标题[理工] 103电机丙/100清大计系
时间Tue Jan 8 12:23:06 2019
这篇特别讨论一下access policy,有些特别的点没算过还真的很难发现。
本篇稍长,可以看一下大纲决定要不要继续看下去。
一. 复习
二. 概念延伸
三. 解题
四. 前人探讨
五. 结论
六. reference
以下讨论可以搭配一些系统图[5]来记忆并请使用PC版观看比较好,
Page Up和Page Down是你/你的好帮手
复习一下cache access policy
read
hit easy
miss
有两种 read allocate,memory controller把block搬进cache,然後在从cache
读进CPU的reg.
read through,memory controller直接把memory读进CPU的reg.
write
hit
有两种 write back,CPU更新block中某个word,并把dirty bit设为1
write through,CPU同时对cache和memory block中某个word更新
miss
有两种 write allocate,memory controller把在memory的block搬到cache
no write allocate,CPU直接更新memory的某个word
概念延伸,由於write hit和write miss各两种,因此共有四种组合,以下分别探讨。
write back+write allocate
Hit,同上
Miss,memory controller把memory的block搬到cache,之後CPU写入cache并把
dirty bit设为1
write back+no write allocate
Hit,同上
Miss,同上
write through+write allocate
Hit,同上
Miss,memory controller把memory的block搬到cache,之後CPU同时写入cache
和memory block的其中一个word
write through+no write allocate
Hit,同上
Miss,同上
这里讲一个概念,dirty block什麽时候被覆盖?write allocate要把block搬到cache,
所以是有可能把dirty block覆盖的,值得一提的是read allocate也是把block搬到cache
所以同样有可能把dirty block覆盖。
103台大电机丙
http://imgur.com/bHdKHJU
a write through
R
H 0
M 0.05*(4)*0.8
W
H 0.95*(1)*0.2
M 0.05*(4+1)*0.2
bandwidth使用率=0.05*0.8*4+0.95*0.+0.05*5*0.2=40%
b 同a算法,bandwidth使用率=60%
c write back
R
H 0
M 0.05*(4+4*0.3)*0.8
W
H 0
M 0.05*(4+4*0.3)*0.2
bandwidth使用率=5.2*0.05*(0.8+0.2)=26%
d 同c算法,bandwidth使用率=52%
100清大计系
http://imgur.com/a/29xHUzx
a write through
R
H 0
M 0.1*2*0.7
W
H 0.9*1*0.3
M 0.1*1*0.3
bandwidth使用率=0.1*2*0.7+0.9*1*0.3+0.1*1*0.3=44%
b write back
R
H 0
M 0.1*(2+2*0.2)*0.7
W
H 0
M 0.1*1*0.3
bandwidth使用率=0.1*2.4*0.7+0.1*1*0.3=19.8%
蒐集一下前人讨论结果[1][2],然後用一些已知和我的理解回答。
1.CPU和Cache之间资料传输为什麽不用算到bus?
→yupog2003:cache是做在CPU里面的
没错, 实际上Intel的CPU里头有个叫做DMI(Direct Media Interface)的是这两个元件的
通道。
2.write through+write allocate
- write hit时,为什麽只要更新1 word(不是1 block)?
CPU处理大小只有一个word,memory controller是一个block。
- write miss时,为什麽这边更新就是1 block?
Memory controller写入一个block。
- write hit时同时写入cache和memory为什麽只要1 word?
CPU处理大小只有一个word。
3.什麽时候要把dirty block写回memory?
dirt block被取代的时候,什麽时候会被取代?在cache miss的时候,memory controller
会把资料写到cache,这时候有机会覆盖dirty block。
4.→joeboy:为什麽write allocation+write through不是4+1?
国外网站example是有的,看各位怎麽想。
结论
1.算这个干麻?
因为现代computer system的设计原因,memory bus是CPU与I/Odevice 共用的,所以当你
考虑加入新的I/O device时,必须先算现有系统bus的使用率,否则使用率超过100%时多增
加几个I/O device也没办法运作。
2.可以看到write back的设计是把dirty block先放在cahce,并在dirty block被修改时,
写回lower level(memory),这样的好处是bandwidth的需求可以降低。
/*补充可跳过
Computer Architecture会有进阶的概念是Merging Write Buffer[4],其概念为把
dirty block放到一个buffer,之後一起把它们写回memory,可以减少penalty,因为不用
access memory那麽多次,而是一次写回。
*/
3.哪种write policy 的组合的bandwidth最高?相对来说哪种比较省bandwidth?
-也可以知道哪种组合不合乎逻辑
-常见配置,write back+write allocate(why?)
write through+no write allocate(why?)
4.是说清大计系的题库还蛮广的,有时候会在国外网站的hw或是example[3]上看到......
小修改或是原封不动就在考卷上了。
[1][理工] 103台大电机计结 第5题
http://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1484383235.A.C57.html
[2][理工] 103台大电机丙计结
http://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1485331672.A.0D7.html
[3]Example on interaction with main memory
http://web.cs.iastate.edu/~prabhu/Tutorial/CACHE/ex21.html
[4]Computer Architecture pg. 116
Seventh Optimization:Merging Write Buffer
[5]系统图-北桥&南桥
http://imgur.com/dMOm4e9
[ref]Interaction Policies with Main Memory
http://web.cs.iastate.edu/~prabhu/Tutorial/CACHE/interac.html
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.128.232
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1546921393.A.A08.html
※ 编辑: b10007034 (122.116.128.232), 01/08/2019 12:24:28
※ 编辑: b10007034 (122.116.128.232), 01/08/2019 12:24:52
※ 编辑: b10007034 (122.116.128.232), 01/08/2019 12:25:21
※ 编辑: b10007034 (122.116.128.232), 01/08/2019 12:26:20
※ 编辑: b10007034 (122.116.128.232), 01/08/2019 12:26:54
1F:推 ANANquenchan: 必推 01/08 13:42
2F:推 ThreeWater: 未看先推 01/08 20:06
3F:推 skyHuan: 太神啦还真的写了 推推 01/08 23:18
4F:推 oldelette: 推! 01/10 22:55
5F:推 dumpling1234: 好文推一个 01/13 17:25
6F:推 leekevinming: 虽然看不太懂但是推 01/23 16:36
7F:推 denycyc: 现在才看到 好文推推 02/11 22:52