深入理解计算机系统——内存

缓存,有层级概念hierarcy,多级缓存

理想状态下,指令和存储构成最简单的计算机系统运算功能
内存大小限制
内存访问速度
cpu 算数逻辑单元ALU运算速度单位时间内运算速度有限

所以要1、提高计算速度2、提高I/O速度
及对应两种设计理念——计算密集型和IO密集型

听说过迪奥西多城墙么?
cpu存在“内存之墙”。cpu运算速度再快,但因为其存在与内存之间IO的耗时,制约运算能力的并不是cpu的算力本身,而是“内存之墙”——内存IO

当前多核CPU成为常态,有一个关键问题需要解决——一致性问题consistency
存储在同一块内存里的资源被两个不同的核同时进行处理,需要做状态同步,保持一致
包括多级不同存储之间的同步

缓存要解决的最重要的两个问题:
1、内存之墙
2、一致性问题

都用寄存器不行吗?
Locality局部性原理,尤其是在mem hierarcy的设计上
短时间内用到的有效存储是有限的,大部分是闲置的,都用寄存器成本太高

![](../../public/img/截屏2021-07-20 下午8.26.46.png)
![](../../public/img/截屏2021-07-20 下午8.32.08.png)
![](../../public/img/截屏2021-07-20 下午8.32.31.png)

内存是怎么设计的

SRAM

DRAM

虚拟内存,看到的都是虚拟内存

进程与内存关系、内存与指令集 进程上下文切换——中断系统(中断器)

不管进程还是线程与虚拟内存的关系密切

进程间的内存空间是互相隔离的
线程间的内存空间是共用的

这里所说的内存地址空间,指的也都是虚拟内存

![](../../public/img/截屏2021-07-21 下午11.50.59.png)
![](../../public/img/截屏2021-07-21 下午11.54.54.png)

用户态下进程的虚拟地址控件分布如下图所示:
![](../../public/img/截屏2021-07-21 下午11.43.10.png)

线程间的内存空间是共用的,也为线程级并行计算提供了可能

文章作者: ゴウサク
文章链接: http://dapaner.top/2021/07/20/深入理解计算机系统——内存/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Corner&Coder
微信赞赏码
支付宝赞赏码