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

简介: 用于这些高速缓存的散列算法和双路组相联高速缓存所采用的散列算法是相同系列的:使用取模散列函数(modulo hashing function),该函数采用的位数等于组数以2为底的对数值。

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

2.5 n路组相联高速缓存

组内的行数并没有理论上的限制;在当今的计算机中,4路乃至更多路的组相联高速缓存也并非鲜见。例如,Motorola 68040和88200、Intel 80486和i860 XP以及TI SuperSPARC的数据高速缓存都是4路组相联高速缓存。因为在组内并没有索引机制,所以也不要求组的大小一定是2的幂。在这一点上的案例就是TI SuperSPARC的指令高速缓存,它是5路组相联高速缓存。

用于这些高速缓存的散列算法和双路组相联高速缓存所采用的散列算法是相同系列的:使用取模散列函数(modulo hashing function),该函数采用的位数等于组数以2为底的对数值。

每组两行以上的高速缓存往往并不使用严格的LRU替换,因为这样做需要的状态信息太多。常常代之以使用历史信息有限的伪LRU算法。除了68040之外,所有提到过的处理器都采用了这种技术。68040的设计人员选择省略了伪LRU算法所需的额外状态信息,而是采用了一种伪随机替换(pseudorandom replacement)策略。

相关文章
|
8月前
|
存储 缓存 自然语言处理
深入PHP内核:理解Opcode缓存对性能的影响
【4月更文挑战第25天】 在提升PHP应用性能的众多策略中,Opcode缓存技术因其显著的效果和较低的复杂度而备受开发者青睐。本文将深入探讨Opcode缓存机制,解析其对PHP执行效率的提升原理,并通过实验数据展示启用Opcode缓存前后的性能差异。我们还将讨论几种流行的Opcode缓存工具,如APC、OpCache与APCu,并评估它们的优劣及适用场景,帮助开发者根据不同的项目需求做出合适的选择。通过本文,读者不仅能够了解Opcode缓存的工作原理,还能学会如何在实际项目中应用这一技术以优化PHP应用程序的性能。
|
8月前
|
存储 Shell Linux
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
95 0
|
8月前
|
存储 缓存 自然语言处理
深入PHP内核:理解Opcode缓存与性能优化
【5月更文挑战第14天】 在动态语言的世界里,PHP一直因其高性能的执行效率和广泛的社区支持而备受青睐。随着Web应用的复杂性增加,对性能的要求也越来越高。本文将探讨PHP的Opcode缓存机制,解析其对性能提升的贡献,并展示如何通过配置和使用不同的Opcode缓存方案来进一步优化PHP应用的性能。我们将深入到PHP的核心,了解Opcode是如何生成的,以及它如何影响最终的执行效率。
|
缓存 Java 数据库连接
「Java面试」五年Java程序员去某东面试竟然在MyBatis缓存这翻车
一个5年工作经验的小伙伴,去面某东被问到MyBatis何时使用一级缓存,何时使用二级缓存?去之前还特地复习了MyBatis的相关知识,想着自己用MyBatis用得比较熟练了,竟然在这道题上翻车了。 今天,我给大家来分享一下MyBatis的缓存机制。
94 0
|
5月前
|
开发框架 Unix Linux
LangChain 构建问题之在Unix/Linux系统上设置OpenAI API密钥如何解决
LangChain 构建问题之在Unix/Linux系统上设置OpenAI API密钥如何解决
66 0
|
8月前
|
存储 缓存 PHP
深入PHP内核:理解Zend Engine与Opcode缓存
【5月更文挑战第30天】 在PHP的开发世界中,性能优化是一个永恒的话题。随着现代Web应用的复杂性日益增加,仅仅依靠代码层面的优化已经远远不够。本文将深入探讨PHP的执行心脏——Zend Engine,以及如何通过Opcode缓存机制提升PHP应用的执行效率。我们将透过对Zend Engine工作原理的分析,了解Opcode缓存的实现原理,并通过实例来展示其对性能提升的显著影响。
|
8月前
|
Oracle 关系型数据库 Unix
SAP系统拷贝 UNIX + Oracle
SAP系统拷贝 UNIX + Oracle
67 1
|
8月前
|
存储 缓存 自然语言处理
深入PHP内核:探索Opcode缓存机制
【5月更文挑战第1天】 在动态语言如PHP的执行过程中,每次脚本被请求时都需要经过一系列复杂的解析和编译步骤。为了优化这一过程并提高性能,PHP引入了Opcode缓存机制。本文将详细探讨Opcode的概念、作用以及它如何显著提升PHP应用的执行效率。我们将从缓存原理出发,分析几种常见的Opcode缓存工具,并通过实例说明如何在实际项目中实现和优化缓存策略。
|
8月前
|
存储 缓存 自然语言处理
深入PHP内核:探索Opcode缓存对性能的影响
【4月更文挑战第30天】 在动态内容生成的Web开发领域,PHP一直是广受欢迎的脚本语言之一。然而,由于其每次请求都需要经过解释执行的特性,性能上往往受到质疑。随着现代PHP引擎如Zend和Facebook的HipHop Virtual Bytecode (HPHPc)的出现,引入了Opcode(操作码)缓存机制来提升PHP的性能。本文将深入探讨Opcode缓存技术是如何工作的,以及它对PHP应用程序性能的具体影响。我们将通过实验数据与分析,揭示Opcode缓存在不同场景下的优势和局限性,并提出优化策略。
|
8月前
|
存储 缓存 自然语言处理
深入PHP内核:Opcode缓存与性能优化
【5月更文挑战第31天】 在提升PHP应用性能的众多策略中,Opcode缓存技术以其显著的性能提升效果而广受关注。本文旨在深入探讨PHP的Opcode缓存机制,解析其对性能提升的影响,并讨论如何通过配置和优化实践来充分利用Opcode缓存。文章将首先介绍Opcode的概念及其在PHP执行过程中的作用,然后分析几种流行的Opcode缓存解决方案,最后提供针对性的优化建议,帮助开发者实现高效的PHP应用。