cpu内存怎么看win10 (电脑内存怎么看 win10) 分层时延

1cycle=0.3纳秒

L1 Data cache=1纳秒

L2 Data cache=4纳秒

RAM= 80+纳秒

读写硬盘15+毫秒

互联网访问 80毫秒




内存访问的分层机制


分层机制


CPU读取内存是一个分层的过程,先VA查MMU转换成PA(先查询TLB cache缓存VA到PA映射),再在L1 Cache(一个core上)寻找,不命中继续到L2 Cache(一个物理核),否则在L3 Cache寻找,最后到总线查询DDRC去查询DDR,同时逐层刷新Cache。Cache是空间换时间的策略,多级Cache速度变慢和容量变大。

跨节点内存访问

不同节点下内存访问开销也不同。


MMU映射和TLB

4K个VA映射到一个PA,映射的页表也是保存到内存中,访问一次一次内存需要2次DDR操作,所以需要TLB cache。

每个进程需要一套页表,页表需要携带进程ID和虚拟化ID,所以进程切换需要切换页表。


Cache更新策略

Cache一般有2种更新策略:

Write-through(直写模式)在数据更新时,同时写入缓存Cache和后端存储。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。
Write-back(回写模式,效率最高)在数据更新时只写入缓存Cache。只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储。此模式的优点是数据写入速度快,因为不需要写存储;缺点是一旦更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回。


Cache一致性Coherence

Cache一致性Coherence:一个多处理器系统中,多个处理器核心都能够独立地执行计算机指令,从而有可能同时对某个内存块进行读写操作,并且由于我们之前提到的回写和直写的Cache策略,导致一个内存块同时可能有多个备份,有的已经写回到内存中,有的在不同的处理器核心的一级、二级Cache中。由于Cache缓存的原因,我们不知道数据写入的时序性,因而也不知道哪个备份是最新的。

为了正确性,一旦一个核心更新了内存中的内容,硬件就必须要保证其他的核心能够读到更新后的数据。目前大多数硬件采用的策略或协议是MESI或基于MESI的变种:
M代表更改(modified),表示缓存中的数据已经更改,在未来的某个时刻将会写入内存;
E代表排除(exclusive),表示缓存的数据只被当前的核心所缓存;
S代表共享(shared),表示缓存的数据还被其他核心缓存;
I代表无效(invalid),表示缓存中的数据已经失效,即其他核心更改了数据。


Cache映射

1:直接映射:每个内存映射到一个cache行,硬件实现简单,但是效率不高。


直接映射


2:全相连:每个内存任意映射到一个cache行。硬件线路复杂。


全相连


2:组(set)相联映射:可以将一个主存块存储到唯一的一个Cache组中任意一个行。
将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的,即有如下函数关系:cache总行数m=u×v 组号q=j mod u

组间采用直接映射,组内为全相联
硬件较简单,速度较快,命中率较高



Cache组成



1:cache通过index行和offset列定位具体单元(每个是一个cache line),tag是对应主存地址。

2: set和way

直接映射的cache一个set包含一个line frame

N-way组相连映射的cache分为N组set,每个组有N个Cache Line。N就是way个数

Full-associative cache仅有一个set,这个唯一的set包含所有的line frames


具体例如下:

L1 cache – 32KB,8 way组相联,64字节缓存线

Set index指示行,每行有8个cache line(8way),每个cache lin是64字节


L1 Cache示意图

CPU通过地址统一访问内存和外设。

CPU主要通过3种方式与外界交互:内存地址空间,I/O地址空间,还有中断。




这是水淼·dedeCMS站群文章更新器的试用版本更新的文章,故有此标记(2023-11-01 08:32:04)