相联存储器是按照内容指定方式和地址指定方式相结合进行寻址的存储器
Cache和主存同时访问的方式,若题目没有特别说明,Cache未命中的时间为访问Cache和主存的时间
DRAM的刷新是以行为单位进行刷新的
分散刷新是没有死时间的,(刷新时间不在存取周期内的就是死时间)
一次完整的刷新过程只需要占用一个存储周期
传统的DRAM芯片与CPU采用异步交换方式交换数据,SDRAM是一种同步设备,它在每个时钟周期都可以响应一个信号
SDRAM的行缓冲器通常用SRAM实现
DRAM芯片采用地址线复用技术, 行地址和列地址分时复用,每增加一根地址线,行地址和列地址各增加一列,所以容量至少提高到原来的四倍
DRAM芯片的容量=位平面数* 行数* 列数字
EPROM 可擦除可变成只读存储器,可以读也可以写,读写的次数是有限的,所以不能取代RAM
若数据总线的位数=每个模块的存储单元件数 就要采用轮流启动 m>=T/r 模块m0,m1,,,,数量大于或者等于存取周期/总线周期
轮流启动默认从T开始
每1/m 个存取周期可读出或写入一个数据(一个存储单元)
同时启动就是看总线宽度是不是跟存储单元的总比特位相加是否相等,如果相等就同时启动
对于单体多字存储器,数据或者指令是连续存放的话,无过多的跳转指令可以提高我们的读写效率
一定一定要注意字节和比特的转换,1B=8bit
芯片内缓冲行就是芯片的存储单元数量乘以每个存储单元的比特位
字扩展✖2存储空间,位扩展位数✖2
MAR->地址寄存器和主存大小息息相关
RAID将多个物理盘组成成像单个逻辑盘,不会影响磁记录密度,也不能提高磁盘利用率
磁盘的地址一般如下所示
柱面(磁道号) 盘面(磁头)号 扇区号
磁盘存储器最小的读/写单位是一个扇区
磁盘存储器通过DMA方式与内存直接进行数据交换
Cache部分
Cache一致性问题
Cache写命中分为两种方法
全写法:CPU对Cache写命中后同时修改主存和Cache中的内容
回写法:CPU对Cache写命中后只修改Cache的内容,不立马写入主存,只有被替换出去以后才写入主存,一般有个标志位,1表示被修改需要写回
Cache写不命中分为两种方法
写分配法:更新主存单元先把这个主存单元调入Cache,然后再进行修改
非写分配法:只更新主存,不调入Cache
一般来说,非写分配法与全写法搭配使用,写分配法与回写法搭配使用。
在使用写分配法的时候,先把主存调入Cache,然后再修改数据的内容,此时主存中的数据还是原来的数据,所以我们要搭配回写法,在Cache中的数据被淘汰的时候再将数据写回我们的主存进行更新
根据一模一样的数据,非写分配法不会把主存的内容掉入Cache,所以要保持Cache的数据跟主存的数据是一样的,一般来说,非写分配法搭配全写法来使用
Cache的功能是完全由硬件来决定的
刚开始Cache为空的时候,也算上Cache未命中,算缺页率的时候这个也要算上去
![](file:///C:/Users/fuqia/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg)
地址映射表=(有效位+标记位+维护位+替换位)*Cache行
采用写回法的意思就是有1个脏位置,告诉你有没有被修改过内容,而采用随机替换则表示没有替换位
字节编址,一个字节对应一个地址,例如告诉你主存块的大小为32字节,一个字节对应一个地址,说明块内有32个地址,32行,所以块内地址需要5位来表示
突发传送就是把多个存储单元看成一个存储单元来进行传送,突发传送就是每次把几个存储单元看成一个存储单元
Cache的比较器
直接映射 1个
全相邻映射 Cache行个
组相邻映射 组内块数
比较器的位数就是Tag位的位数
虚拟存储系统
为了使得虚拟存储系统有效地发挥其预期的作用,所运行程序应该具有的特征是:具有良好的局部性原理,虚拟存储系统应用的是局部性的原理,所以程序应该具有良好的局部性,跳转的指令不应该过多
一次访存的时候,页表不命中则说明该页还没调入内存,所以Cache一定没命中,Cache不命中则到主存中去找数据,而页表不命中则要到外存中去找数据,所以页表不命中的损失更大,Cache的缺失由硬件解决,而TLB的缺失既可以由硬件解决也可以由软件解决。
页表是在主存里面的
快表TLB(高速相联存储器)是在MMU中里面的
TLB缺失->到主存的慢表中去寻找,cache缺失,到主存中去寻找
cache缺失由硬件解决,而TLB缺失由硬件或者操作系统解决。
每个进程都有一个唯一的页表去进行逻辑地址和物理地址的转化
页表中每一个页表项都与一个虚页对应,每个页表项都包含一个装入位(有效位)
页表在内核空间进行管理的,只有在内核空间中的内核进程才能访问页表,但是用户进程是无法直接访问页表的,但是可以通过系统调用来访问