硬盘与内存之间交换数据的单位是页,通过页面置换算法(FIFO、LRU、OPT)确定页,通过页表来判断对应的页在不在内存,不在的引发缺页中断,去硬盘将该页置换到内存中。虚拟内存和物理内存之间通过页表来映射;虚拟地址分为:页号和页内偏移。 高速缓cache存和内存间交换数据的单位就是缓存行,当线程要访问的变量在CPU的缓存里没有找到时,就会去访问主内存,然后根据程序运行的局部性原理,此时就会把主内存中该变量所在的大小为缓存行的内存放入缓存中。准确的说,主存的一块数据放到cache的一行中,每个数据块和cache的行的大小完全一样, 而且每个块或行都是由若干个连续的字组成的。其中的地址映射,一般有直接映射方式(一些约定的主存块只能复制到cache中的一个特定行中)、全相连映射(主存中任意一个块可以映射到cache中的任意一行中。需要在cache中的一行增加标记部分,存放该行内容的主存块的块号)、组相联映射(组间直接映射,组内全相联映射)。一般来说,全相连映射更适合小容量的cache,直接映射方式适合大容量的cache。而容量不大不小的cache更适用用组相联映射方式。替换策略有:LFU(最不经常使用)、LRU(近期最少使用)、FIFO、随机替换算法。 CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干字组成,是定长的。
点赞 评论

相关推荐

牛客网
牛客企业服务