3.理解主存储器与CPU的连接原理;
主存通过数据总线、地址总线和控制总线与CPU连接;
数据总线的位数与工作频率的乘积正比于数据传输率;
地址总线的位数决定了可寻址的最大内存空间;
控制总线(读/写)指出总线周期的类型和本次输入/输出操作完成的时刻。
4.掌握Cache的功能、基本原理和命中率计算方法;
Cache存储阵列由高速存储器构成,用于存放主存信息副本,容量小于主存,编址方式、物理单元长度均与主存相同;
功能:提高存储器的平均访问速度,从而使存储器的速度和CPU的速度相匹配。
原理:程序访问的局部性;
命中率计算方法:CPU要访问的内容在Cache中的比率;Cache命中率一般高于85%
总命中次数为Nc,访问主存次数为Nm,CPU访问Cache的命中率为H:H=Nc/(Nc+Nm)
命中率与程序行为、Cache的容量、Cache的组织和地址映射方式、块的大小有关。
5.理解Cache的几种地址映射的原理和特点;
Cache中存放数据的部分称为数据Cache,存放指令的部分称为指令Cache,二者统称内容Cache;
Cache中有专门实现主存地址与Cache地址映像的机构,一般由相联存储器组成,其中记录主存内容存入Cache时两者地址对应关系的部件称为标识Cache;
替换策略实现机构是在Cache未命中又没有空闲空间是,按照某种替换算法,调出某一Cache块,然后从内存中装入所需的块;
直接映像方式:
任何一块主存块只能复制到某一固定的Cache块中;
当CPU访存时,给出20位主存地址,高14位是主存块号(高6位是主存区号,低8位是区内块号即Cache块号,用于实现与Cache间的地址映像与变换),低6位是块内的字节地址;
主存块在Cache中的位置固定,一个主存块只能对应一个Cache块,故标识Cache中只需存储每一个块所对应的主存区号;
访存时,以主存块号为地址定位到标识Cache的相应位置,将主存中的区号与标识Cache中的区号好比较,
若一样,则Cache命中,主存块号和块内地址变换为Cache块号和块内地址;
若不同,则表示所需块未装入Cache,此时需要将所需块从主存复制到Cache中并修改对应的标识Cache。
特点:硬件实现简单,地址变换速度快,主存块在Cache中位置固定,没有替换策略问题,块的冲突率高,Cache利用率降低。
全相联映像方式:
任意主存单元的数据或指令可以存放到Cache的任意单元中去;
进行地址变换时,主存地址被分为两部分,高14位为主存块号,低6位为块内地址。Cache标记也为14位,用于指示装入Cache对应块中的主存块号;
访存时,主存块号也Cache标记相联比较,
若一样,则表示被访主存块已装入Cache,根据Cache块号访问Cache;
若不同,则被访主存块未复制到Cache中,
若此时Cache中有空块,则从主存调入所需块并建立标记;
若Cache中无空块,则淘汰某一Cache块,再调入新快并修改Cache标记。
特点:空间利用率高,只有Cache中的块全部装满后才会出现块冲突,块冲突概率小,硬件逻辑复杂,价格高;
组相联映像方式:
将Cache进行分组,每组块数固定,主存按照Cache的块尺寸分割成若干块。主存中的任何一块只能存放到Cache中的某一固定组中,但存放在该组的哪一块是灵活的;
12位Cache地址分为3部分,6位组号,2位组内块号和6位块内地址;
20位主存地址高14位为块号(高8位作为标记存储在表示Cache中,低6位为所在的Cache组号),低6位为块内地址;
标识Cache中存放每块对应的Cache组内块号,便于地址映像机构形成Cache地址。组的映像是直接映像,主存块号的低6位可以直接作为Cache的组号,不用在表示Cache中指明;
访存时,地址先被分为两部分,14位块号(8位标记和6位Cache组号)和6位块内地址,根据主存地址中的组号查找表示Cache,在标识Cache中将对应组的4个标记与主存地址中的相联比较,
若一样,则Cache命中,将匹配块的Cache组内块号取出与主存地址中的组号和块内地址拼接得到访问内容的Cache地址;
若不同,则未命中,对主存进行访问,将主存中的块调入Cache,将主存地址中的标记写入标识Cache,改变地址映像关系;
Cache中组的大小为1,则组相联映像就变成直接映像。若Cache只有一个组,则组相联映像就变成全相联映像;
用多个相等比较器来代替相联访问,以加快查表的速度,这种组相联映像方式称为多路组相联,如:每组中有4块,就被称为四路组相联。
6.理解Cache的几种替换算法;理解Cache的写操作策略;
Cache刷新:Cache存放满了之后,必须要替换掉Cache一个块中的数据或指令,来存放新的数据或指令;
替换算法:
最近最久未使用算法LRU:将近一段时间内CPU最久未使用的数据替换掉;
最近最少使用算法LFU:让Cache控制器记录Cache中每块数据最近使用的次数,替换最近使用次数最少的数据块;
随机替换算法;
顺序替换算法;
先进先出替换算法FIFO;
Cache写策略:
写直达法:数据被同时写入主存和Cache中,保证了内存中的数据总是最新的,但是增加了CPU占用系统总线的时间;
写回法:CPU将最新的数据写入Cache中,不写入内存,仅当Cache要替换数据时才写入内存。Cache中增加了一位状态位,称为修改位。要替换数据时先查看修改位,
若修改位为0,则Cache中的数据未修改过可以直接舍弃;
若修改位为1,则Cache中的数据是新数据,需要写入内存,然后修改位清0。写回法必要时才更新内存的内容,减少CPU占用系统总线的时间。