热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

是先访问TLB(MMU)还是先访问Cache?

有个疑问,TLB是用来把虚拟地址转换成逻辑地址的缓存,在X86系统中,Cache都是以物理地址映射的,那么就是说CPU在访问Cache之前需要首先访问TLB?那这个效率是不是会很低?还是有
有个疑问,TLB是用来把虚拟地址转换成逻辑地址的缓存,在X86系统中,Cache都是以物理地址映射的,那么就是说CPU在访问Cache之前需要首先访问TLB?那这个效率是不是会很低?


还是有别的解释?

3 个解决方案

#1


自己回答吧,并行访问,但访问cache一般需要TLB的访问结果

#2


TLB本身也算是Cache吧,起码可以算Cache的一部分。

至于TLB带来多少CPU负担,是否降低效率,这个得从系统角度看待。
如果系统有很多Cache Miss,Memory负担很重,有TLB应该是能够提高系统效率的。

#3


TLB 用于缓存一部分标签页表条目。TLB可介于 CPU 和 CPU缓存之间,或在 CPU 缓存和主存之间,这取决于缓存使用的是物理寻址或是虚拟寻址。如果缓存是虚拟寻址,寻址请求将会直接从 CPU 传送给缓存,然后从缓存访问所需的 TLB 条目。如果缓存使用物理寻址,CPU 会先对每一个存储器操作进行 TLB 查寻,并且将取得的物理地址传送给缓存。两种方法各有优缺点。

采用物理寻址的缓存的一种常见优化,是并行的进行 TLB 查寻和缓存的访问。所有虚拟地址的较低比特(例如,在虚拟内存系统中具有 4KB 标签页时,虚拟地址中较低的那 12 比特)代表的是所请求的地址在分页内部的地址偏移量(页内地址),且这些比特不会在虚拟地址转换到物理地址的过程中发生改变。访问CPU缓存的过程包含两步:使用一条索引去寻找CPU缓存的数据存储区中的相应条目,然后比较找到的CPU缓存条目的相应标记。如果缓存是用虚实地址转译过程中不变的页内地址来索引组织起来的,则可并行地执行TLB上虚实地址的较高比特(即分页的页间地址/页号)的转换与CPU缓存的“索引”操作。然后,从 TLB 获得的的物理地址的页号会传送给CPU缓存。CPU缓存会对页号标记进行比较,以决定此次访问是寻中或是缺失。它也有可能并行的进行 TLB 查寻和CPU缓存访问,即使CPU缓存必须使用某些可能会在地址转译后发生改变的比特;参阅缓存条目的地址转译一节,以取得关于虚拟寻址下缓存和 TLB 的进一步细节。

推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • top 命令是一个强大的工具,可以实时动态地监控系统的整体运行状况。它整合了多种信息,提供了一个全面的系统性能和运行信息视图。通过 top 命令的交互界面,用户可以使用热键进行各种管理操作。 ... [详细]
  • 本文介绍了存储器的基本原理及其分类,包括不同类型的存储介质和存储方式,并详细解释了各种存储器的特点和应用场景。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • MySQL Administrator: 监控与管理工具
    本文介绍了 MySQL Administrator 的主要功能,包括图形化监控 MySQL 服务器的实时状态、连接健康度、内存健康度以及如何创建自定义的健康图表。此外,还详细解释了状态变量和系统变量的管理。 ... [详细]
  • PCIe中的弹性缓冲原理解析
    PCIe是一种高速串行总线,其传输信号为差分信号,并采用同步传输方式。然而,PCIe并没有专用的同步时钟。本文将详细介绍PCIe中的弹性缓冲(Elastic Buffer)原理,探讨其如何处理时钟差异,确保数据传输的稳定性和可靠性。 ... [详细]
  • MySQL Hash函数与基础总结(一)
    本文探讨了MySQL中常见的错误提示“不存在此列”的产生原因,以及查询缓存的优缺点。同时,介绍了如何关闭查询缓存,MySQL的常用存储引擎及其特点,以及如何针对表级别设置不同的存储引擎。 ... [详细]
  • 英特尔推出第三代至强可扩展处理器及傲腾持久内存,AI性能显著提升
    英特尔在数据创新峰会上发布了第三代至强可扩展处理器和第二代傲腾持久内存,全面增强AI能力和系统性能。 ... [详细]
  • 大华股份2013届校园招聘软件算法类试题D卷
    一、填空题(共17题,每题3分,总共51分)1.设有inta5,*b,**c,执行语句c&b,b&a后,**c的值为________答:5 ... [详细]
  • PBO(PixelBufferObject),将像素数据存储在显存中。优点:1、快速的像素数据传递,它采用了一种叫DMA(DirectM ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 原子操作是指在执行过程中不会被中断的操作。本文将探讨Java是如何通过不同的技术手段实现原子操作的,包括CPU层面的总线加锁和缓存行加锁,以及Java层面的锁机制和CAS操作。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
author-avatar
电信他爹_186
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有