转储 x86 CPU 的 TLB 缓冲区内容

2023-12-04

是否可以从 TLB(翻译后备缓冲区,这是 CPU 中的特殊缓存)获取翻译列表(从虚拟页到物理页)。我的意思是现代 x86 或 x86_64;我想以编程方式完成此操作,而不是使用 JTAG 并将所有 TLB 条目移出。


Linux内核没有这样的转储器,Linux内核中有关于缓存和tlb的页面:https://www.kernel.org/doc/Documentation/cachetlb.txt“Linux 下的缓存和 TLB 刷新。”大卫·S·米勒

80386DX(和 80486,并且可能在“嵌入式​​奔腾”100-166 MHz / 中)有这样的 TLB 转储嵌入式奔腾MMX200-233 MHz”,1998 年):

  • 1- 书籍《微处理器:8086/8088、80186/80286、80386/80486 和奔腾家族》,ISBN 9788120339422,2010 年,第 579 页

这是通过测试寄存器 TR6 TR7 完成的:

  • 2- Godse&Godse 所著的《Microprocessors & Microcontrollers》一书,2008 ISBN 9788184312973 page SA3-PA19:“3.2.7.3 Test Registers”“当前仅定义了两个测试寄存器 (TR6-TR7)。...这些寄存器用于检查转换后备分页单元的缓冲区(TLB)。”
  • 3“x86-Programmierung und -Betriebsarten (Teil 5). Die Testregister TR6 und TR7”,有关寄存器的德文文章:“Zur Prüfung des Translation-Lookaside-Buffers sind die zwei Testregister TR6 und TR7 vorhanden。Sie werden als Test-Command-Register (TR6) 和 Testdatenregister (TR7) bezeichnet。”
  • 4Intel 的“嵌入式 Pentium® 处理器系列开发人员手册”,“26 型号特定寄存器和功能”部分,第 8 页“26.2.1.2 TLB 测试寄存器”

TR6是命令寄存器,线性地址写入其中。它可用于写入 TLB 或从 TLB 读取行。 TR7是要写入TLB或从TLB读取的数据。

维基百科说https://en.wikipedia.org/wiki/Test_register读取 TR6/TR7“在任何高于 80486 的 CPU 上生成无效操作码异常。”

mov tr6/tr7 的编码仅适用于特权级别 0:http://www.fermimn.gov.it/linux/quarta/x86/movrs.htm

0F 24 /r    movl tr6/tr7,r32    12  Move (test register) to (register)  
   movl %tr6,%ebx
   movl %tr7,%ebx
0F 26 /r    movl r32,tr6/tr7    12  Move (register) to (test register)  
   movl %ebx,%tr6
   movl %ebx,%tr7
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转储 x86 CPU 的 TLB 缓冲区内容 的相关文章

随机推荐

  • 保存到 CSV 时 Spark 写入额外行

    我向 parquet 写入了一个包含 1 000 000 行的文件 当我读回 parquet 文件时 结果是 1 000 000 行 df spark read parquet parquet path df count gt gt gt
  • 当我在我的 Web 应用程序中发送 Ajax 请求时,控制器端会在 laravel 的请求参数中给我脚本

    当我发送这个ajax请求时 ajax url URL to admin repcasetracker getdiscount data serialnumber serialnumberdata success function data
  • 最大并发 TCP/IP 连接数 - Windows XP SP3

    有谁知道 Windows XP SP3 上的最大并发 TCP IP 连接数是多少 我正在尝试对一台机器进行负载测试 并且想知道应用程序 在我的例子中是java应用程序 可以向该机器打开的最大tcp连接数是多少 请注意 您通常可能会受到客户端
  • 如何使用内置的 .net 压缩类来压缩目录?

    使用 System IO Compression 命名空间类 GZIPStream 和 DeflateStream 我成功地可以压缩和解压缩单个文件 但是 如果我传递目录名作为压缩目标 则会出现安全异常 我是否必须 递归地 枚举所有文件和子
  • 同时抽象对象和行为的模式

    我们有一个使用外部旅行系统并允许购买门票的项目 我们在本地保存票证信息 但实际状态在外部系统中定义 FirstCorpService srv1 new FirstCorpService FirstCorpTicket tkt1 srv1 b
  • 如何检查 IEnumerable 返回 null 或是否有任何行?

    我有一个类似于下面的 linq 查询 IEnumerable
  • 日期时间和时间戳有什么区别

    Sql Server 中日期时间和时间戳数据类型有什么区别 一个是日期和时间 另一个是每次更新行时更新的列类型 注意时间戳已被弃用 使用行版本反而
  • sum(Array) 表示索引超过矩阵维度[重复]

    这个问题在这里已经有答案了 我是Matlab的新手 我试图做一些图像匹配 图像X更大 图像Y更小 我们的目标是找到y与x的所有可能重叠 然后计算每个这样的RGB的平方差和重叠 即x 2 y 2 z 2 所以我在更大的图像中找到一个位置 i
  • 使用 $.support.cors = true; 是否安全?在 jQuery 中?

    我试图使用 jQuery 的 ajax 方法访问不同域上的 Web 服务 经过一些研究后 看起来它不允许这样做 这是为了防止跨站点脚本而设计的 我遇到了一个解决办法 其中包括这一行 support cors true 在我的 javascr
  • 基于位置的搜索结果查询速度慢

    我有一个查询 用于查找按位置排序的结果 结果还必须考虑增值税 因此这也在查询中 遗憾的是 在未缓存的情况下 查询可能需要 4 秒以上的时间才能运行 任何人都可以发现任何明显的问题或建议我可以做些什么来改进它吗 只是为了澄清查询中发生的情况
  • 在异步方法中返回和等待任务之间的区别[重复]

    这个问题在这里已经有答案了 下面的方法有什么区别吗 其中一个比另一个更可取吗 public static async Task SendAsync1 string to string subject string htmlBody awai
  • Sails 1.0 模型没有主键

    我尝试使用新版本 1 0 并重构我的项目 我有一个问题 但我现在不知道如何解决她 我的 BD 上的某些表没有主键 当我迁移到 sails 1 0 时 出现此错误 模型中friends 主键设置为id 但没有这样的 在模型上找到属性 您必须定
  • 如何将一种热编码的结果加入到数据帧中?

    我想在人口普查数据集中执行 one hot 编码 https archive ics uci edu ml datasets census venue 我想要执行的列位于国家 地区列中 因此我做了以下操作 import pandas as
  • 我怎样才能让 ruby​​-debug-ide 工作?

    我无法让我的 ruby debug ide 正常工作 我有一个基本的 Rails 应用程序 我想在 RubyMine 中进行调试 在启动 RubyMine 之前 我需要在我的 vagrant VM 中启用 rdebug ide 当我导航到我
  • 需要一种好方法让用户选择“收件人”来发送电子邮件

    我有一个网站 用户可以从中发送电子邮件 我有一种模仿基本形式 To
  • 客户端从哪里获取尚未添加到注册表的远程类的定义?

    我已经成功地创建了一个 RMI 应用程序 该应用程序非常成功地完成了我需要它完成的任务 但是我在了解客户端获取远程对象定义的位置时遇到了一些麻烦 例如 我有一个向 rmiregistry 注册自身的服务器 允许客户端调用其上的方法 Unic
  • 到达字符串中的特定单词

    嗨 我有一个像这样的字符串 word1 to word2 tab word3 tab word4 tab word5 tab word6 我需要从字符串中提取第三个单词 我想逐个字符地阅读并在阅读第二个选项卡后获取单词 但我想这效率很低 您
  • 浮动元素在包含块之外?

    我是 HTML CSS 的初学者 只是一些关于浮动元素的问题 下面是代码 section border 1px solid blue div margin 5px width 200px height 50px left float lef
  • Firebase 静态加密

    我真的很喜欢使用 Firebase 我想在新应用程序中使用它 但该应用程序会让用户上传敏感信息 我知道 Firebase 使用 https 但环顾四周 Firebase 似乎尚未提供静态加密 有没有办法解决这个问题 例如使用 Firebas
  • 转储 x86 CPU 的 TLB 缓冲区内容

    是否可以从 TLB 翻译后备缓冲区 这是 CPU 中的特殊缓存 获取翻译列表 从虚拟页到物理页 我的意思是现代 x86 或 x86 64 我想以编程方式完成此操作 而不是使用 JTAG 并将所有 TLB 条目移出 Linux内核没有这样的转