The Translation Lookaside Buffer

一、参考资料

ARM Cortex-A Series Programmer’s Guide for ARMv7-A

二、Translation Lookaside Buffer

Translation Lookaside Buffer(TLB)是MMU内最近执行的页面翻译的缓存。在存储器访问时,MMU首先检查翻译是否缓存在TLB中。如果请求的翻译可用,则TLB命中,并且TLB立即提供物理地址的翻译。如果TLB没有该地址的有效转换,则表示TLB未命中,需要进行外部转换表遍历。然后,这个新加载的翻译可以被缓存在TLB中以供可能的重用。

TLB的确切结构在ARM处理器的实现方式之间有所不同。下面是一个典型系统的描述,但各个实现可能与此不同。有一个或多个微TLB位于指令和数据缓存附近。具有命中微TLB的条目的地址不需要额外的内存查找,也不需要周期惩罚。然而,微TLB只有少量映射,通常在指令端有八个,在数据端有八。这是由更大的主TLB(通常为64个条目)支持的,但可能会有一些与在微TLB中未命中但在主TLB中命中的访问相关联的惩罚。图9.3显示了每个TLB条目如何包含物理和虚拟地址,以及Address Space ID中描述的属性(如内存类型、缓存策略和访问权限)和潜在的ASID值。

TLB与其他缓存类似,因此有一个TLB行替换策略,但这对用户来说实际上是透明的。如果转换表条目是有效的条目,则将整个页面或部分的虚拟地址、物理地址和其他属性存储为TLB条目。如果转换表条目无效,则不会更新TLB。ARM体系结构要求在TLB中只缓存有效的转换表描述符。

在这里插入图片描述

三、TLB coherency

当操作系统更改翻译表条目时,TLB可能包含过时的翻译信息。操作系统必须采取措施使TLB条目无效。有几种CP15操作可用于允许TLB全局失效或删除特定条目。

由于推测性指令获取和数据读取可能会导致转换表遍历,因此当有效的转换表条目发生更改时,必须使TLB无效。无效的转换表条目不能缓存在TLB中,因此可以在不失效的情况下进行更改。

Linux内核有许多使用这些CP15操作的函数,包括flush_tlb_all()和flush_tlib_range()。设备驱动程序通常不需要这样的功能。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值