存储器层次结构

存储技术

CPU读取数据:总线接口发起读事务(1.CPU将地址放到系统总线上 2.I/O桥将信号传递到内存总线 3.内存总线根据信号从内存中读取数据,并将数据写到内存总线 4.I/O桥将内存总线信号翻译成系统总线信号,然后发到系统总线 5.CPU收到系统总线的数据,将数据复制到寄存器) CPU写入数据:CPU发起写事务(1.CPU将地址放到系统总线 2.内存从内存总线中获取地址,并等待数据到达 3.CPU将寄存器重的数据复制到系统总线 4.驻村从系统中独处数据,并存储到内存中) CPU一直是访问内存的,如果要读取磁盘内容,也是告诉磁盘,然后磁盘把数据放到内存里,然后CPU才去读取(因为局部性原理)

磁盘存储器读写:磁盘是有一个个盘片组成的,盘片上有一个个磁道跟扇区,然后有个传动臂一直在高速运行查找读写相应的磁道扇区以及具体的内容 SSD:基于闪存做的 SSD容易磨损的原因是,它是以页为单位写的,每次要写入数据,如果改页上有数据,都需要把页上的数据先copy到另外一个页,然后才能对改页进行写入

局部性

局部性:系统倾向于引用临近该数据项的数据项,这种倾向性被称为局部性原理(例如:加载某一内存地址后,系统会倾向认为你会加载周边的地址,然后就会将这些地址加入快速缓存中,方便访问,所以,我们写程序的时候要有效利用这种特性,能够加快我们程序的执行速度)

时间局部性(Temporal Locality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。 空间局部性(Spatial Locality):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。

存储器层次结构

存储器层次结构的本质是:每一层存储设备都是较低一层的缓存

高速缓存存储器

高速缓存的读很简单,先从高层读数据,如果缓存命中了就返回数据。如果不命中就去低层读,如果从低层命中,返回数据的同时将低层的数据写入高层。 高速缓存的写复杂一点,先直接向高层写入数据,但是何时向低层写入呢?一种是直写(write-through),就是立即向低层写入。另一种是写回(write-back),等到算法淘汰的时候再向底层写入。直写实现起来简单,但是每次写入都会有更多的总线流量


--EOF--

若无特别说明,本站文章均为原创,转载请保留链接,谢谢