计算机组成原理学习笔记3
计算机组成原理学习笔记3
存储系统
一个完整的存储系统应该包括主存储器、高速缓冲存储器(Cache)和辅助存储器
存储器的分类
按存储介质分类
存储器主要分为半导体存储器,磁表面存储器,磁心存储器和光盘存储器。
按存取方式分类
存储器可分为随机存取存储器,只读存储器、顺序存取存储器和直接存取存储器
随机存取存储器(RAM):在随机存取存储器中存取信息,存取时间和存储位置没有关系,其优点是读写方便,使用灵活,缺点是断电信息丢失。RAM分为静态RAM(SRAM)和动态RAM(DRAM),静态RAM常用作高速缓冲存储器,动态RAM常用做主存
只读存储器(ROM):只读存储器的内容只能随机读出而不能写入,并且其内容断电后可以保存,所以一般存放固定不变的程序,只读存储器与随机存取存储器一起构成了主存,注意ROM不能叫做随机存取存储器是因为它只能随机取而不能随机存。
串行访问存储器
串行访问存储器对存储单元进行读/写操作时,需要按照物理位置的先后顺序依次访问,主要包括顺序存取存储器(磁带)和直接存取存储器(磁盘)
按在计算机中的作用分类
可分为主存储器(主存)、辅助存储器(辅存)、缓冲存储器。
存储器的性能指标
存储容量:
存储容量=存储字数x字长。存储字数表示存储器的地址空间大小,即存储器的存储单元数目,字长即存储字长,表示一次存取操作的数据量
单位成本:
每位价格=总成本/总容量
存储速度:
数据传输率=数据的宽度/存储周期。存储周期又称为读写周期或访问周期,指的是连续两次独立地访问存储器操作之间所需的最小时间间隔
存储器的层次化结构
缓存-主存层次主要解决CPU和主机速度不匹配的问题。主存和缓存之间的数据交换是由硬件自动完成的,对程序员是透明的
主存-辅存层次主要解决存储系统的容量问题。主存和辅存之间的数据交换是由硬件和操作系统共同完成的
cache高速缓冲处理器
cache具有速度快容量小的特点,因为主存处理数据的速度远远赶不上CPU处理数据的速度,所以需要cache高速缓冲处理器来帮忙存放数据
存入cache的数据的两个条件
(1)时间局部性:同一份数据在短时间内往往会被多次重复使用。比如说如果我们打开了一个文件,那么接下来一段时间我们很有可能会不断访问这个文件,此时就可将此文件存入cache
(2)空间局部性:如果我们访问了某个数据,那么我们往往也需要访问它附近的数据。比如说如果我们访问了一个数组里的某一个元素,往往也会随之访问这个数组里的其它元素,此时就可将这个数组放入cache
当CPU要访问的数据不在cache高速缓冲处理器中时称为不命中
cache的结构
cache的存储单位和主存一样是块,且块中也存在块号和块内地址,同时cache内还多了个标记,标记用于存储对应主存中的地址的高位部分,当CPU要查数据时,就看能不能在cache标记内找到想要的地址,找到了就可以直接从cache中读取,没找到再去主存中找
cache的读写
读数据:CPU读数据时会先从cache高速缓冲处理器中寻找,如果没找到再去主存中找,同时将数据写入cache内,如果cache满了,则需要将cache内的数据替换为新写进的数据
替换方式可以按先后顺序替换-FIFO,即把最旧的数据换出去,也可以按使用频率替换-LRU,即把用的最少的数据换出去
写数据:CPU向主存写入数据时会先在cache内寻找是否有写入主存的目标地址所对应的标记,如果没有,则先将主存的目标数据块的地址加载到cache中在写入
写入有两种方法:
(1)写直达:数据同时写入cache和主存
(2)写回:数据先写入cache中,并标记为“脏”(“脏”表示数据在cache内发生改变与主存中对应数据不一致),等被替换出去时再写入主存