深入理解计算机系统——内存
缓存,有层级概念hierarcy,多级缓存
理想状态下,指令和存储构成最简单的计算机系统运算功能
内存大小限制
内存访问速度
cpu 算数逻辑单元ALU运算速度单位时间内运算速度有限
所以要1、提高计算速度2、提高I/O速度
及对应两种设计理念——计算密集型和IO密集型
听说过迪奥西多城墙么?
cpu存在“内存之墙”。cpu运算速度再快,但因为其存在与内存之间IO的耗时,制约运算能力的并不是cpu的算力本身,而是“内存之墙”——内存IO
当前多核CPU成为常态,有一个关键问题需要解决——一致性问题consistency
存储在同一块内存里的资源被两个不同的核同时进行处理,需要做状态同步,保持一致
包括多级不同存储之间的同步
缓存要解决的最重要的两个问题:
1、内存之墙
2、一致性问题
都用寄存器不行吗?
Locality局部性原理,尤其是在mem hierarcy的设计上
短时间内用到的有效存储是有限的,大部分是闲置的,都用寄存器成本太高



内存是怎么设计的
SRAM
DRAM
虚拟内存,看到的都是虚拟内存
进程与内存关系、内存与指令集 进程上下文切换——中断系统(中断器)
不管进程还是线程与虚拟内存的关系密切
进程间的内存空间是互相隔离的
线程间的内存空间是共用的
这里所说的内存地址空间,指的也都是虚拟内存


用户态下进程的虚拟地址控件分布如下图所示:

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