计算机体系结构基础知识介绍之缓存性能的十大进阶优化之减少命中时间和流水线访问和多组缓存增加带宽(三)

这篇具有很好参考价值的文章主要介绍了计算机体系结构基础知识介绍之缓存性能的十大进阶优化之减少命中时间和流水线访问和多组缓存增加带宽(三)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

优化二:减少命中时间的方式预测

路预测是一种高速缓存优化技术,它在高速缓存中保存额外的位来预测下一次高速缓存访问的路(或者组内的块)。这种预测可以提前设置多路选择器来选择期望的块,并且在那个时钟周期内,只进行一次标记比较,同时读取高速缓存数据。如果预测正确,高速缓存访问延迟就是快速命中时间。如果不正确,就尝试另一个块,改变路预测位,并且延迟多一个时钟周期。路预测可以减少冲突不命中,同时保持直接映射高速缓存的命中速度。

模拟表明,两路组相联高速缓存的组预测准确度超过 90%,四路组相联高速缓存的组预测准确度超过 80%,I 高速缓存的准确度高于 D 高速缓存。

I高速缓存和D高速缓存是指L1级别的高速缓存,分别用于缓存指令和数据。它们的作用是加速CPU对内存的访问,提高程序的执行效率。I高速缓存和D高速缓存一般是私有的,每个CPU核心都有自己的I高速缓存和D高速缓存。它们的容量一般比较小,通常在几十KB到几百KB之间。

I高速缓存和D高速缓存之间可能存在一致性问题,即当数据被修改为指令时,I高速缓存和D高速缓存中的内容可能不同步。这种情况一般发生在自修改代码(self-modifying code)或者调试器(debugger)等场景中。为了解决这个问题,可以采用硬件或者软件的方法来维护一致性。硬件方法是让I高速缓存和D高速缓存之间进行通信,每次修改数据时,检查并更新I高速缓存中的内容。软件方法是让操作系统在修改数据时,清除D高速缓存中的内容,并使I高速缓存中的内容失效,从而保证从主存中读取新的指令。

路预测还可以扩展为一种形式来降低功耗,通过使用路预测位来决定实际访问哪个高速缓存块(路预测位本质上是额外的地址位);这种方法,也许可以叫做路选择(way selection),在路预测正确时节省功耗,但是在路预测错误时增加了很多时间,因为访问,而不仅仅是标记匹配和选择,必须重复。这种优化可能只适合低功耗处理器。路选择的一个重要缺点是它使得很难流水线化高速缓存访问;然而,随着能源问题的增加,不需要给整个高速缓存供电的方案变得更有意义。

不能流水化原因:每个访问都可能需要两个时钟周期,而不能在一个时钟周期内完成。

优化三:流水线访问和多组缓存以增加带宽

这些优化方法都是通过流水线化高速缓存访问或者增加高速缓存的多路并行性来提高高速缓存的带宽;这些优化方法相当于超流水线和超标量技术提高指令吞吐量的对偶。

超流水线和超标量技术是两种提高CPU性能的技术,它们都利用了指令级并行的思想,但是实现方式不同。

超流水线技术是通过将每个流水线阶段细分为更小的子阶段,从而缩短机器周期,提高时钟频率,使得在相同的时间内执行更多的指令。超流水线技术可以看作是流水线技术的一种延伸,它不需要增加太多的硬件资源,但是会增加流水线级数,从而增加分支预测错误和数据相关的开销。

超标量技术是通过在CPU中设置多条流水线,并且每个时钟周期内可以发射和执行多条指令,从而提高指令吞吐率。超标量技术可以看作是标量流水线技术的一种扩展,它需要增加硬件资源的重复,例如多个取指、译码、执行和写回部件,并且需要由硬件来完成指令调度。

这些优化方法主要针对L1级别的高速缓存,因为访问带宽限制了指令吞吐量。多路并行也用在L2和L3级别的高速缓存中,但主要是作为一种功耗管理技术。流水线化L1可以提高时钟周期,但代价是增加了延迟。例如,Intel Pentium处理器在1990年代中期的指令高速缓存访问流水线需要1个时钟周期;Pentium Pro到Pentium III在1990年代中期到2000年的需要2个时钟周期;Pentium 4在2000年推出的和当前的Intel Core i7需要4个时钟周期。

流水线化指令高速缓存实际上增加了流水线阶段的数量,导致错误预测分支的惩罚更大。相应地,流水线化数据高速缓存导致发出加载指令和使用数据之间的时钟周期更多。

今天,所有的处理器都使用一些L1的流水线化,即使只是为了简单地分离访问和命中检测,而且许多高速处理器有三个或更多级别的高速缓存流水线。流水线化指令高速缓存比数据高速缓存更容易,因为处理器可以依赖高性能的分支预测来限制延迟效应。许多超标量处理器可以每个时钟周期发出和执行多于一个内存引用。

为了处理每个时钟周期多个数据高速缓存访问,我们可以将高速缓存划分为独立的路,每一路支持一个独立的访问。路最初用来提高主存储器的性能,并且现在用在现代DRAM芯片以及高速缓存中。

路并行工作得最好是当访问自然地分布在各路上,所以地址到路的映射影响了内存系统的行为。一个简单的映射方法是将块的地址顺序地分布在各路上,叫做顺序交错(sequential interleaving)。例如,如果有四路,路0有所有地址模4等于0的块,路1有所有地址模4等于1的块,以此类推。计算机体系结构基础知识介绍之缓存性能的十大进阶优化之减少命中时间和流水线访问和多组缓存增加带宽(三),计算机体系结构学习笔记,缓存,risc-v,嵌入式硬件

多路并行也是一种降低高速缓存和DRAM功耗的方法。多路并行也用在L2或者L3级别的高速缓存中,但是出于不同的原因。有了多路并行的L2,我们可以处理多于一个未完成的L1不命中,如果各路没有冲突。

多路并行技术和多路关联技术的区别是:

多路并行技术是指在一个程序中,将一个任务划分为多个子任务,让它们在不同的处理器或线程上同时执行,以提高程序的运行效率和响应速度。
多路关联技术是指在一个处理器中,设置多条流水线,并且每个时钟周期内可以选择其中一条流水线发射和执行一条指令,以提高处理器的指令吞吐率。文章来源地址https://www.toymoban.com/news/detail-524679.html

到了这里,关于计算机体系结构基础知识介绍之缓存性能的十大进阶优化之减少命中时间和流水线访问和多组缓存增加带宽(三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器控制的预取和利用HBM扩展内存层次(七)

    硬件预取的替代方案是编译器在处理器需要数据之前插入预取指令来请求数据。 预取有两种类型: ■ 寄存器预取将值加载到寄存器中。 ■ 高速缓存预取仅将数据加载到高速缓存。 这两种类型都可以分为有错或无错的,即预取的地址是否会导致虚拟地址错误或保护错误的异

    2024年02月13日
    浏览(43)
  • 计算机体系结构基础知识介绍之缓存性能的十大进阶优化之关键词优先和提前重启以减少失误处罚、合并写入缓冲区以减少惩罚(五)

    处理器通常一次只需要缓存块中的一个字(word)。不要等待整个块被加载,而是在请求的字到达后就立即发送给处理器,并让处理器继续执行,同时填充块中的其他字。这两种具体的策略是: 优先(Critical word first)——从内存中先请求缺失的字,并在它到达后立即发

    2024年02月13日
    浏览(39)
  • 计算机体系结构

    目录 第一章 基本概念 1.虚拟计算机 2.计算机系统结构的定义 3.佛林(Flynn)分类法 4.Amdahl定律 5.CPU性能公式 6.程序访问的局部性原理 第二章 指令系统 1.数据表示与数据类型 2.浮点数的表示方式 3.编址方式 4.寻址方式 5.指令系统的优化设计  6.Huffman编码法 7.拓展编码 8.两种方

    2024年02月06日
    浏览(44)
  • 【体系结构】山东大学计算机体系结构知识点清单

    涵盖所有考点,复习绝对高效,点赞+留邮箱获取pdf版本 1. 计算机系统的层次结构 语言实现的两种基本技术: 翻译:先把 N+1 级程序全部转换成 N 级程序后,再去执行新产生的 N 级程序,在执行过程中 N+1 级程序不再被访问。 解释:每当一条 N+1 级指令被译码后,就直接去执

    2024年02月11日
    浏览(48)
  • [Linux]计算机软硬体系结构

    冯诺依曼体系结构的组成 现代计算机大多都遵守冯诺依曼体系结构 冯诺依曼体系结构的示意图如下: 冯诺依曼体系结构计算机由五大部件组成: 输入设备 输出设备 存储器(内存) 运算器 控制器 注:如今大多的计算机都将运算器和控制器集成到一起,被称作中央处理器,简称

    2024年02月13日
    浏览(34)
  • 【Linux】—— 详解计算机体系结构

    前言: 在之前,我们已经对Linux环境开发的基本工具进行了详细的学习。接下来,我们将要学习的第一大块便是关于计算机体系结构的知识!! 目录 前言 (一)冯诺依曼体系结构 基本介绍 木桶原理 数据流动过程 (二)操作系统 1、概念 2、感性理解 总结 在我写的《操作系

    2024年02月09日
    浏览(35)
  • 计算机体系结构(复习资料)

    1.存储程序计算机 (冯诺依曼):4部分                 运算器(用于完成数值运算)                 存储器(用于存储程序和数据)                 输入输出设备(用于完成计算机与外部信息交互)                 控制器(根据程序形成控

    2024年02月02日
    浏览(41)
  • 第一章、计算机组成与体系结构

    第一节.数据的表示   二进制转十进制:权值相加。即一个二进制数为1010.1,转为十进制为: $$ 小数点左边从0开始幂,小数点右边就是-1   十六进制转十进制:同样的,权值相加。即一个十六进制为100121,转为十进制为: $$ 十进制转二进制:整数位用短除法,除二取余,直到

    2024年02月03日
    浏览(32)
  • 【计算机组成原理与体系结构】指令系统

    目录 一、指令概述 二、指令分类 三、扩展操作码 四、指令寻址 五、数据寻址 六、x86汇编指令 计算机指令 :指示计算机硬件进行某种操作的命令 机器指令 :使用二进制编码来表示的计算机指令 能被计算机硬件系统识别并执行的特殊的0/1代码串(机器码) 指定了计算机硬

    2024年02月08日
    浏览(47)
  • 【计算机体系结构】什么是流水线?

    👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容  目录 参考资料 前言 流水线 提高流水线效率的技术 超级流水线 超标量 分支预测 乱序执行 (21条消息) 流水线、超流水线、超标量(superscalar)技术对比(转)_沉迷科研刘

    2024年02月03日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包