问题标签 [tlb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4266 浏览

arm - ARM11 翻译后备缓冲区 (TLB) 的使用情况?

是否有一个体面的指南来解释如何在ARM1176JZF-S内核上使用 TLB(翻译后备缓冲区)表?

在查看了该 ARM 平台的技术文档后,我仍然不知道 TLB 是什么或它看起来像什么。据我了解,每个 TLB 条目都将一个虚拟页面映射到一个物理页面,从而允许重新映射和控制内存权限。

除此之外,我完全不知道如何使用它们。

  • TLB 条目有什么结构?如何创建新条目?
  • 如何在用户空间线程的上下文切换中处理 VM?如何确保这些线程只能访问分配给其父进程的特定页面(强制内存保护)?我是否为每个上下文保存 TLB 状态?
  • 为什么有两个 TLB?如果 MicroTLB 只能有 10 个条目,我可以使用它做什么?当然,我需要超过 10 个。
  • 它说主要 TLB 的一部分是“一个由八个元素组成的全关联数组,可锁定”。那是什么?主 TLB 是否只能有 8 个条目?

先感谢您。如果有人解释什么是 TLB,我会非常高兴。我目前正在为我的内核开发一个内存映射器,而且我几乎走到了死胡同。

0 投票
1 回答
5160 浏览

profiler - 测量 x86-64 中的 TLB 未命中处理成本

我想估计在运行 Linux 的 x86-64 (Intel Nehalem) 机器上由于 TLB 未命中而导致的性能开销。我希望通过使用一些性能计数器来获得这个估计值。有人对估计这个的最佳方法有一些指示吗?

谢谢阿卡

0 投票
1 回答
2039 浏览

operating-system - 如何记录进程的页面引用字符串?

操作系统问题:

假设我们有一个进程在分页内存系统中运行,并且我们想要跟踪它按照特定顺序访问哪些页面。我们怎么能这样做?

我在想我们可以在每次需要将页面加载到 TLB 时将页面写入字符串,但是我的操作系统将无法跟踪 TLB 中每个页面的引用顺序(和引用数量),除非以某种方式每次内存访问我都可以检查 TLB。总的来说,我发现这个问题有点令人困惑......

假设每个页表条目为 64 位,虚拟页为 20 位,对应的物理帧为 20 位。有几个位是状态/特权,但有一些“免费”位可以使用。

谢谢。

编辑 - 一个例子:如果操作系统的页面大小为 1000,并且进程访问一些地址,如 1234、5660、1220、7442...,那么页面引用字符串看起来像 1、5、1、7。 ..

0 投票
1 回答
6730 浏览

c - OS161:加载时 TLB 未命中

当我运行 fork 测试时,我有一个 TLB 未命中错误,我知道这是由于将错误的 stackptr 传递给 mips_usermode ,我的实现似乎围绕这里的一些建议,如果我得到纠正她将不胜感激。我下面的代码作为 thread_fork 中的入口点函数提供。我错过了什么吗?

0 投票
3 回答
19754 浏览

performance - TLB 未命中与缓存未命中?

有人可以解释一下 TLB(翻译后备缓冲区)未命中和缓存未命中之间的区别吗?

我相信我发现 TLB 指的是某种虚拟内存地址,但我并不太清楚这实际上意味着什么?

我理解当一块内存(缓存行的大小)被加载到(L3?)缓存中并且如果当前缓存行中没有保存所需的地址时会导致缓存未命中 - 这是缓存未命中。

0 投票
1 回答
3096 浏览

linux-kernel - Linux(x86-64)中的多个大页面大小?

x86-64 上的 Linux 是否支持多个大页面大小(例如,超过 4KB 基本页面大小的 2MB 和 1GB 页面大小)?如果是,有没有办法为给定的分配指定使用哪个大页面大小?换句话说,我的问题是在执行此操作时是否使用“MAP_HUGETLB”标志mmap()将它们映射到默认大小的大页面。无论如何请求分配映射到非默认的大页面大小?

0 投票
1 回答
1232 浏览

linux-kernel - 为什么内核向所有其他处理器发送 tlb 无效中断,当修改的页表对于正在运行的进程而言是个人的

当一个进程的页表条目时,内核线程向所有其他处理器发出 tlb 击落中断以使其他处理器上的 tlb 无效?但是,不是这样吗,页表是特定于这个进程的,我们为什么要进行 tlb 击落呢?

0 投票
2 回答
5842 浏览

caching - 两级分页中的有效地址时间

我目前正在做一些关于操作系统的项目,我知道如何在单级分页中找到 EAT

EAT = (MAT+TLB-AT)*a+(2*MAT+TLB-AT)*(1-a)

在哪里

我试图EAT在两个级别上找出,如果 TLB 未命中或四次,它会访问内存 3 次。

0 投票
1 回答
230 浏览

tlb - PowerPC e500:任何“页面全局启用”标志等效?

来自英特尔 x86 系统编程指南:

PGE 页面全局启用(CR4 的第 7 位)—(在 P6 系列处理器中引入。)设置时启用全局页面功能;清除时禁用全局页面功能。全局页面功能允许将经常使用或共享的页面标记为对所有用户都是全局的(使用页面目录或页表条目中的全局标志位 8 完成)。全局页面不会在任务切换或写入寄存器 CR3 时从转换后备缓冲区 (TLB) 中刷新。

PowerPC e500 核心系列是否有任何等效功能?

谢谢,泰伦

0 投票
2 回答
1419 浏览

c - 更改一些 MMU 转换表条目 - 正确的方法?

更新翻译表中的条目的步骤是什么?

我使用 ARM920T 的 MMU 来获得一些内存保护。当我在进程之间切换时,我需要更改一些条目以保护其他进程的内存。更新表(在内存中)后,我发出一个完整的 TLB 失效(只是为了确定,也没有锁定的条目),但新进程仍然可以访问前一个进程的数据。

当我遍历表时,一切看起来都应该如此(意味着其他进程区域设置为“在 USR 模式下不可访问”)。

编辑 在 TLB 失效之前,我还进行了完整的缓存清理和失效(在两个缓存上),但这不会改变任何内容。