Intel的Sandy Bridge CPU中TLB的大小是如何确定的?

2024-01-05

维基百科网页(https://en.wikipedia.org/wiki/Sandy_Bridge https://en.wikipedia.org/wiki/Sandy_Bridge)提到数据TLB对于4KB、2MB和1GB页面分别有64、32和4个条目。

我发现这些数字很难理解。 Sandy Bridge的虚拟地址为48位,这意味着对于4K页面,可以有2^36个页面,对于2MB和1GB页面,应该有2^27和2^18个页面。如果TLB 4K 页有64 个条目,则每个条目的大小应不少于6+36 = 42 位。为什么2M页面只有32个条目,而不是2^15(42-27)个条目?

我知道在 TLB 条目中会有额外的位用于控制目的。但对于不同的页面大小,该空间不应该是恒定的吗?


因为他们是不同的 TLBs.
执行中cpuid with EAX=2在我的 Haswell 上解码 TLB 描述符得到:

指令TLB:
2M/4M 页,完全关联,8 个条目
4KByte 页,8 路,64 个条目

Data TLB:
2M/4M 页,4 路,32 个条目和一个单独的数组1 GB 页,4 路,4 个条目
4 KB 页,4 路,64 个条目

共享二级 TLB:
4K/2M 页,8 路,1024 个条目

TLB 缓存是highly专门CAM https://en.wikipedia.org/wiki/Content-addressable_memory具有固定布局,它不是具有通用布局的暂存存储器。

某些 TLB 可以处理超过一页大小的内容,但如果信息以通用格式缓存,则这些都是权衡。
使用不同的 TLB 处理不同的页面大小可以提高缓存命中率,就像使用 DTLB 和 ITLB 一样。

数据缓存的工作方式有所不同,因为它们不缓存信息,它们缓存没有布局的数据,这就是为什么以 KiB 为单位给出大小是有意义的,但对于处理结构化信息的缓存则不然。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Intel的Sandy Bridge CPU中TLB的大小是如何确定的? 的相关文章

  • 为什么 JavaScript 在普通浏览器中没有自己的线程?

    JavaScript 不是多线程还不够 显然 JavaScript 甚至没有自己的线程 而是与大量其他东西共享一个线程 即使在大多数现代浏览器中 JavaScript 通常也与绘画 更新样式和处理用户操作处于同一队列中 这是为什么 根据我的
  • 如何动态添加 mixin 作为基类而不出现 MRO 错误?

    说我有课A B and C Class A and B都是 Class 的 mixin 类C class A object pass class B object pass class C object A B pass 这在实例化 C 类
  • 架构:API 作为网站和移动应用程序的核心

    我对完整的架构理念有不同的问题 我希望有丰富经验的人可以帮助我 因为我几乎陷入了所有可能性之中 我正计划重写一个社区网站 我们的客户希望将来使用本机移动应用程序 所以我需要考虑到这一点 因此 我决定创建一个基于 PHP 框架 Kohana
  • 存储徽章标准的最佳方式?

    我一直在考虑如何在新网站上实现类似于SO的徽章功能 存储徽章标准的最佳方式是什么 两个想法 All code 第二系统 创建一个元架构来定义徽章及其标准 在数据库中存储一些信息 并让代码查询它以找出徽章及其标准 还有更好的方法吗 Rules
  • MVP 和 GWT 小部件之间的通信

    如果我将 MVP 模式与 GWT 结合使用 如 2009 年 Google I O 中的 GWT 架构最佳实践讨论 但已将信息分散到多个小部件中 那么应该如何填充值对象 假设我有一个 EditPersonView Presenter 一个
  • 与云无关的架构? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在对一个新解决方案进行一些架构工作 该解决方案最初将在 Windows Azure 中运行 不过 我希望解决方案 或至少是架构 设计 与云无
  • python 进程占用 100% CPU

    我正在尝试运行 python 应用程序并根据指定的时间间隔执行操作 下面的代码持续消耗 100 的 CPU def action print print hello there interval 5 next run 0 while Tru
  • 你现在在做MDA(模型驱动架构)吗?如果是这样,您使用什么工具,效果如何?

    模型驱动架构是这样一种想法 您创建模型 以一种不依赖任何 或至少大多数 实现技术的方式表达您需要解决的问题 然后为一个或多个特定平台生成实现 人们声称 在更高的抽象级别上工作更加强大和高效 此外 您的模型比技术更长寿 因此 当您的第一语言
  • C:epoll和多线程

    我需要创建专门的 HTTP 服务器 为此我计划使用 epoll sycall 但我想利用多个处理器 核心 但我无法提出架构解决方案 ATM我的想法如下 使用自己的epoll描述符创建多个线程 主线程接受连接并将它们分配给线程epoll 但还
  • C++ 中的 CPUID 实现

    我想知道这里是否有人有一些可以从任何托管 net 语言引用的 C CPUID 实现的好示例 另外 如果情况并非如此 我是否应该注意 X86 和 X64 之间的某些实现差异 我想使用 CPUID 来获取运行我的软件的机器上的信息 崩溃报告等
  • 在 LINUX 上测量 TLB 未命中的命令

    有人可以指导我使用一个命令来测量 LINUX 上的 TLB 未命中吗 是否可以将轻微页面错误视为 TLB 未命中 您可以使用perf去做这个 前提是你的CPU支持 Use perf list了解可用的计数器 当我拿到这个列表并查找 TLB
  • 普通的 x86 或 AMD PC 是直接从 ROM 运行启动/BIOS 代码,还是先将其复制到 RAM? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我知道现代计算机已经修改了哈佛架构 它们可以从保存数据的地方以外的地方读取指令 这一事实是否允许它们直接从 ROM 芯片获取指令 他们是先
  • “if”在 ASP.NET MVC View (.aspx) 文件中被认为有害?

    我记得看到一个博客 或其他内容 说你不应该在 ASP NET MVC 的 aspx 文件中使用 但我不记得它说的替代方案是什么 有人记得看过这个并指出我吗 基本上 这意味着您的视图中不应该有大量的 if 语句 您的控制器和视图模型应该能够处
  • 获取总体 CPU 百分比使用率的可能性有哪些

    我有以下问题 在UWP中 我们如何获取总体CPU使用率 RAM使用率 可用RAM 正在运行的进程等 UWP 中的任务管理器需要它 您好 经过一番查看后 您似乎无法获得设备 CPU RAM 和可用 RAM 或正在运行的进程 您可以获得 CPU
  • 使用 LINQ to SQL 的 .NET 架构的最佳设计实践(DAL 必要吗?我们真的可以使用 POCO吗?要采用的设计模式吗?)

    我避免在 net arch n 层架构上编写看起来像是另一个线程的内容 但请耐心等待 希望我和其他人一样 在选择用于企业应用程序的架构时 考虑到当今的趋势和新兴技术 仍然没有 100 满意或不清楚应采取的最佳方法 我想我正在寻求大众社区对方
  • 服务作为 SOA 中的中介

    我知道什么是 通常的 中介设计模式 维基百科中有一些描述 http en wikipedia org wiki Mediator pattern http en wikipedia org wiki Mediator pattern 在我的
  • C#中为线程指定特殊的cpu

    我有 2 个线程 我想告诉其中一个在第一个 cpu 上运行 第二个在第二个 cpu 上运行 例如在具有两个 cpu 的机器中 我怎样才能做到这一点 这是我的代码 UCI UCIMain new UCI Thread UCIThread ne
  • 关于多客户端和可定制 Web 应用程序的架构所需的建议[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • NodeJS CPU 一次飙升至 100%

    我有一个用 NodeJS 编写的 SOCKS5 代理服务器 我正在使用原生net and dgram打开 TCP 和 UDP 套接字的库 它可以正常工作大约 2 天 所有 CPU 的最大利用率约为 30 两天没有重新启动后 一个 CPU 峰
  • CPU 周期与总 CPU 时间

    在 Windows 上 GetProcessTimes 和 QueryProcessCycleTime 可用于获取应用程序所有线程的总计 我期望 显然是天真地 找到总周期数和总处理器时间 用户 内核 之间的比例关系 当转换为相同的单位 秒

随机推荐

  • 查找两个位置的交集

    我想找到 Android 中两个位置的交点 我不想考虑如图所示的圆圈不相交或包含或完全重叠的情况 我的问题是位置以度为单位给出 半径 精度 以米为单位给出 我不知道如何混合这些单位 就我而言 环境是 Android 但问题不是 Androi
  • 业力启动找不到模块“jasmine-core”

    当我运行 karma start 时出现以下错误 模块 js 340 抛出错误 错误 找不到模块 jasmine core 在 Function Module resolveFilename module js 338 15 在 Funct
  • 安装 travis-cli 时,macOS 中找不到 libffi 的包配置

    我正在尝试安装gem install travis to use travis cli根据参考https rubygems org gems travis https rubygems org gems travis但低于错误 尝试过这里提
  • 在 AppDelegate 中调用时子视图下移 20 像素

    当我调用 AdMob 广告时 我遇到了这个问题 rootController view addSubview adMobAd setup the ad 从点击的广告返回后 AdMob 框架会向下移动 20 像素 然而 这似乎不是 AdMob
  • var 是集合,而不是项目

    我正在循环访问 RSVP 对象的集合并打印出每个对象的 Name 属性的值 如下所示
  • ZF3 Bootstrap上的单元测试认证

    我在为我的设备运行单元测试时遇到问题IndexController class 单元测试仅执行以下操作 灵感来自zf3单元测试教程 https docs zendframework com tutorials unit testing yo
  • JavaScript 中 eval 的替代方案是什么?

    我有一些代码 看起来像这样 function StrippedExample i1 i2 i3 i4 i5 i6 i7 i8 this i for var i 1 j 0 i lt 9 i var k eval i i if k gt 0
  • 可迭代多次的Python名称

    我正在努力改进我的文档 我想说这个函数接受一个 collections Iterable 的东西 但是代码会迭代这个 iterable 多次 列表 太具体 而 可迭代 不起作用 因为某些可迭代只能迭代一次 事物有名字吗 可重复 多重迭代 您
  • 我可以将 SAML 应用程序与 Azure AD B2C 集成吗?

    我们当前的应用程序正在使用 SAML IdP 对用户进行身份验证 我们希望保留他们的 SAML 实现并使用 Azure AD B2C 更新应用程序的配置 而不是切换到 OAuth2 或 OpenID Connect Azure AD B2C
  • Google Drive 的 FileID 的格式是什么?我需要使用 API 查明新文件是否已上传到我的驱动器

    如果 FileID 遵循特定格式 例如新文件具有更高的值或更低的值 我可以跟踪旧值并查明我是否在驱动器中上传了新文件 格式为264位数字 bit 0 5 6 261 261 263 110101 256 RANDOM BITS 00 url
  • 新添加的列不可见

    我在本地主机上使用 xampp 我创建了一个表 然后对其进行了更改 在一段时间后又添加了一列 新添加的列在浏览表数据时是看不到的 但在看到表结构时是可见的 为什么我在表数据中看不到它 我使用的是xampp的便携式包 此外 与该列相关的查询运
  • 无法安全锁定 ConcurrentDictionary 的值

    我在锁定集合中的项目时遇到问题 特别是 ConcurrentDictionary 我需要接受一条消息 在字典中查找该消息 然后对其进行长时间的扫描 由于程序占用大量内存 扫描后对象返回true如果他们认为现在是删除它的好时机 我通过将其从词
  • Safari xhr拖放文件上传似乎发生了两次

    它可能与 Webfaction 配置有关 他们有 nginx 代理 我的应用程序是在 apache2 mod wsgi 下运行的 webpy 因为它在我的 devcherrypy 服务器中工作 以下是我用于上传的 javascript 代码
  • Rails 4.2:将 Deliver_later 与无表模型结合使用

    我正在尝试使用 Rails 4 2 的 Deliver later 方法设置联系表单 但是 我只能让 Deliver now 工作 因为 Deliver later 试图序列化我的对象 但每次都失败 这是我的设置 消息控制器 rb clas
  • 作曲家不会自动加载

    我按照作曲家的说明并成功安装了作曲家 我想使用 tumblr 的全新产品PHP API 客户端 https packagist org packages tumblr tumblr 我的文件夹结构 vendor composer json
  • 获取 2 个分隔符之间的第 n 个文本字符串

    我有一长串由字符 管道字符 分隔的文本 我需要获取第三个和第四个管道之间的文本 不知道该怎么做 对正则表达式或非正则表达式开放 以最有效的为准 如果不存在能够传入的扩展方法 则特别开放 分隔符 index If string textBet
  • XServer启动后运行shell脚本? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 XServer 和 lightdm 启动时运行 shell 脚本 我尝试在 etc 目录中使用 init d 和 rc local
  • python numpy 向量数学

    是什么numpy相当于euclid https pypi python org pypi euclid的 2d 向量类 操作 喜欢 euclid Vector2 到目前为止我有这个 创建两个向量 import numpy as np loc
  • 如何获取网格视图中隐藏字段的值?

    网格视图中隐藏字段的序号为 7 当我点击按钮时 string sValue HiddenField GridView1 SelectedRow Cells 7 FindControl HiddenField1 Value 给出错误 未将对象
  • Intel的Sandy Bridge CPU中TLB的大小是如何确定的?

    维基百科网页 https en wikipedia org wiki Sandy Bridge https en wikipedia org wiki Sandy Bridge 提到数据TLB对于4KB 2MB和1GB页面分别有64 32和