《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》——2.6 全相联高速缓存...

本节书摘来自异步社区《现代体系结构上的UNIX系统:内核程序员的对称多处理和缓存技术(修订版)》一书中的第2章,第2.6节,作者:【美】Curt Schimmel著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.6 全相联高速缓存

在高速缓存内,组的大小可以增加到使组内的行数等于高速缓存内的全部行数。此时的高速缓存就称为全相联高速缓存(fully associative cache)。在全相联高速缓存中只有一组,它包含高速缓存中所有的行。不需要散列计算或者索引机制,因为只有一组要检查。采用任何n路组相联高速缓存时,都是并行搜索组内所有的高速缓存行。顾名思义,全相联高速缓存在每次查找的时候都要在全部高速缓存内进行搜索。

之所以需要全相联高速缓存,是因为它能够把高速缓存颠簸(thrashing)的现象减到最少,原因是在高速缓存中的任何位置都可以保存数据的任何部分。于是,从理论上来说,如果一个程序具有局部引用性的地方小于或者等于高速缓存的大小,那么它就会获得100%的命中率,并从高速缓存得到最大可能的性能提升。

全相联高速缓存构建起来要比同等大小、但每组行数较少的高速缓存成本高,因为必须并行搜索高速缓存中的所有行。这就是全相联高速缓存很少用于指令和数据的主要原因。在使用它们的时候,通常是小规模、有特殊用途且有高度时间局部性的高速缓存,比如转换后备缓冲器(translation lookaside buffer,TLB)。TLB高速缓存最近在MMU内使用过虚拟地址到物理地址的转换。小规模、全相联的TLB比较实用,因为大多数程序都体现出了局部引用特性,这意味着工作集的转换会被多次使用。此外,因为每一次转换都映射了完整的一页数据,所以只需几个转换就能提供良好的性能。例如,TI MicroSPARC使用一个有32项的全相联TLB,而SuperSPARC有64项。Motorola 88200和所有MIPS处理器上的TLB也都是全相联高速缓存。

本书在揭示UNIX内核奥秘的诸多书籍中是具有重要意义的崭新里程碑。在体现当今先进技术水平的系统上,采用对称多处理技术高速缓存存储系统来提高系统性能,已是颇为划算的重要技术。 本书是为NUIX内核开发人员编写的,它全面而通俗地阐述了高速缓存对称多处理机的操作、二者如何协调工作,以及为了在融合两者的机器上运行操作系统必须解决的问题。 在第一部分中回顾了UNIX内部原理之后,Curt Schimmel开始详细描述高速缓存存储系统,其中包括几种虚拟地址物理地址高速缓存,另外还用一章的篇幅讲述了高效的高速缓存管理技术,针对每一种高速缓存的类型,本书不仅说明了它们对软件的影响,而且还说明了操作系统为这些系统所进行的必要调整变化。第二部分说细介绍了紧密耦合,共享存储对称多处理机的操作。这一部分研究了这些多处理机给操作系统带来的问题,比如竞争条件上、死锁以及存储器操作的次序,而且考察了如何对UNIX内核进行调整使之适于在这样的系统上运行。本书最后一部分考察了高速缓存存储系统多处理机之间的相互作用以及这种相互作用给内核带来的新问题,随后阐述了用于解决这些问题的技术。 本书以大量示例来演示所讲述的概述,其中既有代表CISC处理器的例子,也有代表RISC处理器的例子,如何Intel 80486Pentium、Motorla6804088000,以及MIPSSPARC处理器。为了增进读者对概念的理解,每一章还包含了一组练习题,在本书末尾在有选择地给出了习题的答案
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值