Linux内存从0到1学习笔记(4,TLB)
一、TLB简介
Kernel初始化的时候,会在初始化内存中创建页表;而处理器读取指令和数据的时候需要首先通过MMU查表得到物理地址,然后在访问物理地址读取指令或数据。MMU查表过程汇中需要4次访问内存,因此MMU的引入大大影响了处理器性能。那么TLB(地址翻译缓冲器 Translation Lookaside Buffer,又称块表)的引入可以缓解这种情况。
TLB是高速缓存第一种,其缓存了从虚拟地址到物理地址的翻译结果,这里的翻译结果就是我们常说的物理地址,TLB将查表得到的物理地址存储在TLB表项中。有了TLB,当处理器需要访问内存的时候,会首先从TLB中查找是否有对应的表项,如果TLB命中,就省去了MMU查表的过程,大大提高了处理器访问内存的速率,提升系统性能;
二、TLB映射方式
TLB的映射方式与Cache类似,包括全相联,直接映射和组内映射,具体可参考:Linux内存从0到1学习笔记(三,高速缓存)_从0到1,突破自己-CSDN博客
Linux内存从0到1学习笔记(4,TLB)相关推荐
- Linux内存从0到1学习笔记(11.2 内存优化方案之内存压缩zram)
写在前面 zram是Linux内核提供的一种虚拟内存压缩功能,通过在将一部分内存模拟成块设备,并将压缩后的内存写到这部分模拟的块设备中,直到必须使用硬盘上的交换空间,zram 本质是就是一个块设备. ...
- Linux内存从0到1学习笔记(6.6,物理内存初始化之预留内存)
写在前面 前面的章节中有提到过,memblock分配器会将内存划分为动态管理的内存(保存在memblock的memory type的数组)和静态预留的内存(保存在memblock的reserved t ...
- Linux内存从0到1学习笔记(6.7,物理内存初始化之CMA初始化)
写在前面 CMA (contiguous memory allocator)连续内存分配器,被开发用于分配大的.物理连续的内存块,其底层还是依赖内核伙伴系统这样的内存管理机制.通过这套机制,在设备驱动 ...
- Linux内存从0到1学习笔记(9.1,内存优化调试之kswapd0触发原理)
写在前面 Linux内核中有一个非常重要的内核线程kswapd,它负责在内存不足时回收页面.kswapd内核线程初始化时会为系统中每个内存结点创建一个名为"kswapd%"内核线程 ...
- Linux内存从0到1学习笔记(8.5,CMA内存分配)
CMA是通过cma_alloc分配的.cma_alloc() --> alloc_contig_range(..., MIGRATE_CMA,...),向刚才释放给buddy system的MI ...
- Linux与C++11多线程编程(学习笔记)
多线程编程与资源同步 在Windows下,主线程退出后,子线程也会被关闭; 在Linux下,主线程退出后,系统不会关闭子线程,这样就产生了僵尸进程 3.2.1创建线程 Linux 线程的创建 #inc ...
- 【C#8.0 and .NET Core 3.0 高级编程学习笔记】
@C#8.0 and .NET Core 3.0 高级编程学习笔记 前言 为了能精细地完成对C#语言的学习,我决定选择一本书,精读它,理解它,记录它.我想选择什么书并不是最重要的,最重要的是持之以恒的 ...
- 《嵌入式Linux内存使用与性能优化》笔记
<嵌入式Linux内存使用与性能优化>笔记 这本书有两个关切点:系统内存(用户层)和性能优化. 这本书和Brendan Gregg的<Systems Performance>相 ...
- 2017-2-15从0开始前端学习笔记(HTML)-图片-表格-表单
2017-2-15从0开始前端学习笔记-图片-表格-表单 标签 图片 图片<img src="#" alt="文本说明 不能加载图片时显示" title= ...
最新文章
- 由init、loadView、viewDidLoad、viewDidUnload、dealloc的关系说起
- mysql存储过程打不开了_请问mysql存储过程的问题,我找了几个例子一个都运行不起来,...
- 中国大学MOOC 人工智能导论第三章测试
- wps office oa控件 痕迹_WPS,Excel,哪个好用?其实真的好用的,是这个工具
- SQL SERVER的锁机制(四)——概述(各种事务隔离级别发生的影响)
- 专门讲讲这个MYSQL授权当中的with grant option的作用
- 【数电】(二) 基本逻辑运算与逻辑门电路
- MFC socket编程
- 排序系列 之 堆排序算法 —— Java实现
- C语言项目-俄罗斯方块
- Cocos2dx入门
- python爬取双色球2003-2022年所有数据
- java月亮代码_Java编程实现月食简单代码分享
- 【180628】VC++方格益智小游戏
- excel分列---多页批量操作--vba宏实现
- 社会化媒体营销方案简介
- UMA Frame Buffer Size 核显显存与CSGO帧率
- 分享给大家一个比较装逼的小代码
- photoshop2021正式版上线,photoshop 2021 mac
- POJ3414-Pots
热门文章
- 杨元原博士国密课堂 · 第三期 | 商用密码应用安全性评估:IPSecVAN协议的原理和测评验证(一)
- linux中文镜像文件iso下载地址,linux系统镜像iso文件下载
- 浅淡XSS跨站脚本攻击的防御方法
- postgres导入excel_将Excel数据导入PostgreSQL 9.3
- 2020年第十一届蓝桥杯javaB组国赛
- Sourcetree安装跳过Bitbucker登录
- CGAL 求三维体数据的交并差(三维布尔运算)
- 安卓刘海屏沉浸式(内容绘制到底部,隐藏底部导航栏,状态栏背景颜色为透明)
- 好系统重装助手如何查看win7电脑的主板型号
- 解决Godaddy付款时的There was a problem processing your transaction. Please verify your payment information