目录
流水线技术
流水线周期:各子任务中执行时间最长的(最慢的)子任务的执行时间
流水线执行完n条指令所需要的时间:Tn=执行一条指令所需时间+(n-1)*流水线周期
吞吐率:单位时间里流水线处理机流出的结果数。对指令而言,就是单位时间里执行的指令数。
吞吐率:p=1/max(t1,t2,...,t3)即最长子过程所用时间的倒数。
高速缓存
Cache是介于CPU与主存之间的一级存储器,其容量较小,,但速度较快,一般比主存快5-10倍。
主要作用:调和CPU的速度与内存存取速度之间的差异,从而提升系统性能。
它使用的是程序的局部性原理,内容是主存局部域的副本
当CPU需要读取数据时,首先判断要访问的信息是否在Cache中,如果在即为命中,如果不在,就要按替换算法把主存中的一块信息调入Cache中。
替换算法:随机替换算法、先进先出替换算法、近期最少使用替换算法、优化替换算法等。
CPU工作时给出的主存地址,要从Cache存储器中读写信息,就需要将主存地址转换成Cache存储器的地址,这种地址的转换叫做地址映像
地址映像
直接映像
主存的块与Cache块的对应关系是固定,主存中的块只能存放在Cache存储器的相同块号中。
优点:地址变换简单、访问速度快。
缺点:块冲突率高、Cache空间得不到充分利用
主存地址:主存区号/区内块号/块内地址(例:主存容量为1Mb,高速缓存容量为16kb,块的大小为512B)
全相联映像
主存与Cache存储器均分成容量相同的块。允许主存的任一块可以调入Cache存储器的任何一个块的空间中。
优点:灵活、块冲突率低,只有在Cache中的块全部装满后才会出现冲突,Cache利用率高。
缺点:无法从主存块中直接获得所对应Cache的块号,变换比较复杂,地址变换速度慢,成本高。
主存地址:主存块号/块内地址
组相联映像
前两种方式的折衷。将Cache中的块再分成组,组采用直接映像方式,而块采用全相联映像方式。主存的任何区的0组只能存到Cache的0组,1组只能存放到1组中,以此类推。而组内的块可以存入Cache中相同组的任一块中。
公式:
主存地址位数=区号+组号+主存块号+块内地址
Cache地址位数=组号+组内块号+块内地址