操作系统——笔记day7

Cache程序放在哪

程序局部性原理:CPU大多数时间在执行相同的指令或者与此相邻的指令

内存

动态随机存储器,DRAM,根据电容存储电荷的多少来代表0和1

与CPU数据吞吐量天差地别,内存是决定系统整体性能的瓶颈

Cache

可以通过一块小而快的存储器,放在CPU和内存之间,利用程序局部性原理,来缓解CPU和内存之间的性能问题,即Cache,高速缓存

Cache中存放了内存中一部分数据,CPU在访问内存时要先访问Cache,如果Cache中有需要的数据就直接从Cache中拿,没有就从内存中读取数据,并同时把这块数据放入Cache中

Cache构成:静态储存器,地址转换模式,Cache行替换

Cache把静态储存器和内存分成大小相同的行——Cache和内存交换数据的最小单位,多个行形成一组

Cache工作流程

1.CPU发出的地址由Cache的地址转换模块分成3段:组号,行号,行内偏移

2.Cache根据组号,行号查找静态存储器对应的行。如果命中,用行内偏移读取并返回数据给CPU,否则新分配一个新行并访问内存,把内存中对应的数据加载到Cache行并返回给CPU

3.没有新行,进入行替换逻辑,找出一个Cache行写回内存,腾出空间

Cache带来的问题

Cache一致性问题

1.一个CPU核心中的指令Cache和数据Cache的一致性问题

2.多个CPU核心各自的2级Cache的一致性问题

3.CPU的3级Cache与设备之间一致性问题

Cache的MESI协议

多核心Cache数据同步协议有MESI和MOESI

MESI协议定义了4种基本的状态:M(Modified 修改),E(Exclusive 独占),S(Shared 共享),I(Invalid 无效)

M修改(Modified):当前Cache的内容有效,数据已经被修改而且与内存中的数据不一致,数据只在当前Cache里存在

E独占(Exclusive):当前Cache中的内容有效,数据与内存中的数据一致,数据只在当前Cache里存在

S共享(Shared):当前Cache中的内容有效,Cache中的数据与内存中的数据一致,数据在多个CPU核心中的Cache里面存在

I无效(Invalid):当前Cache无效

上一篇:黑马程序员pink老师前端h5(html5)+css3(14)CSS第二天的总结


下一篇:杀毒软件对Platform Builder编译的影响