armv7 tlb 概述
aarch32 armv7 linux 4.9
经常书中会写到上下文切换的tlb flush的时候为了减少开销,tlb 会有延迟刷新 lru 替换策略
这个具体的问题,内核怎样配合ip core的实现的呢
1.A translation lookaside buffer (TLB) is a memory cache that is used to reduce the time taken to access a user memory location. It is a part of the chip's memory-management unit (MMU). The TLB stores the recent translations of virtual memory to physical memory and can be called an address-translation cache. A TLB may reside between the CPU and the CPU cache, between CPU cache and the main memory or between the different levels of the multi-level cache.
------------from维基百科
2.cache 与tlb
cache speed up cpu access,tlb speed up vaddr translattion
tlb存储的是page table item,cache 存储的是data或者instruction
两者都有可能有L1L2多级,也可能都有data cache/tlb,instruction cache/tlb
3.ASID address space id
进程上下文切换的时候,内存映射不一样,tlb需要flush重新映射,ASID是为了应对这种开销诞生的策略之一,每个进程有唯一的ASID,进程切换的时候就不需要再去flush tlb了
4. global属性
tlb global 和local 两种属性 内核的页表tlb项为global类型,可以一直驻留在tlb里面
In a VMSA implementation, system software can divide a virtual memory map used by memory accesses at PL1 and PL0 into global and non-global regions
如图ARMv8-64 中stage1 descripter中的nGbit的描述
indicated by the nG bit in the translation table descriptors:
nG == 0
The translation is global, meaning the region is available for all processes.
nG == 1
The translation is non-global, or process-specific, meaning it relates to the current ASID, as defined by the CONTEXTIDR.
Each non-global region has an associated Address Space Identifier (ASID). These identifiers mean different translation table mappings can co-exist in a caching structure such as a TLB. This means that software can create a new mapping of a non-global memory region without removing previous mappings.
armv7 tlb 概述相关推荐
- X86汇编语言从实模式到保护模式19:分页和动态页面分配
目录 1. 段式内存管理机制 1.1 任务的全局部分和私有部分 1.2 任务的线性地址空间 1.3 段式内存管理 1.3.1 对物理内存的初步划分 1.3.2 段式内存管理策略 1.4 段式内存管理机 ...
- ARMv8架构概述、相关技术文档以及ARMv8处理器简介
ARMv8架构 文章目录 ARMv8架构 参考文档 ARMv8架构的概述 从32位到64位的变化The changes from 32 bits to 64 bits 1,Larger registe ...
- [architecture]-ARMV7架构下SecureMonitor双系统切换时保存和恢复哪些寄存
★★★ 个人博客导读首页-点击此处 ★★★ . 文章目录 1.armv7的通用寄存器简介 2.寄存器的保存和恢复 3.参考代码: 1.armv7的通用寄存器简介 ARMV7处理器有40个32位寄存器, ...
- linux伙伴系统接口,Linux伙伴系统(一)--伙伴系统的概述
伙伴系统的概述 Linux内核内存管理的一项重要工作就是如何在频繁申请释放内存的情况下,避免碎片的产生.Linux采用伙伴系统解决外部碎片的问题,采用slab解决内部碎片的问题,在这里我们先讨论外部碎 ...
- ARMv8 MMU及Linux页表映射:TLB
<ARM SMMU原理与IOMMU技术("VT-d" DMA.I/O虚拟化.内存虚拟化)> <Linux内存管理:分页机制> <Linux内存管理:内 ...
- Linux内核源码分析--内核启动之(1)zImage自解压过程(Linux-3.0 ARMv7) 【转】
转自:http://blog.chinaunix.net/uid-25909619-id-4938388.html 研究内核源码和内核运行原理的时候,很总要的一点是要了解内核的初始情况,也就是要了 ...
- 【学习笔记】ARM Cortex-A(armv7)编程手册
第一章介绍了 ARM Cortex-A 系列处理器的基本功能,介绍 ARM 体系结构的基础知识,涵盖各种寄存器: 第二章和第三章提供了有关各个处理器的模式和一些背景知识: 第四章和第五章简要介绍了 A ...
- 汇编语言基础--汇编操作指令概述
本文是接续"汇编语言基础--机器级数据存储",主要介绍汇编指令的构造.寻址和指令主要分类. 操作指令 指令的基本要素: 在"计算机处理器(CPU)基础&quo ...
- TLB和cache的关系
一)TLB 1)TLB的概述 TLB是一个内存管理单元用于改进虚拟地址到物理地址转换速度的缓存. TLB是位于内存中的页表的cache,如果没有TLB,则每次取数据都需要两次访问内存,即查页表获得物理 ...
最新文章
- 方差 标准差_方差与标准差——杭州市初中数学核心组寒假微课学习八年级第38课...
- android rfid 数据解析_手持机是什么?RFID手持机是什么?
- 2篇word文档比较重复率_本科论文写作重复率高的原因,毕业论文降重技巧总结!...
- heatmap个人简单理解
- 补习系列(21)-SpringBoot初始化之7招式
- java参数传递时,究竟传递的是什么
- import java.io6_JavaIO(六) 转换流
- 曼昆《经济学原理宏观》读书笔记
- 【JDBC】JDBC的使用(数据库的增删改查询)
- java遍历d盘所有文件夹_java遍历指定盘符的所有文件和文件夹
- 使用Emacs阅读邮件和新闻组:Gnus 中文FAQ
- 【COCA】美国当代语料库常用高频词汇20200个(可直接复制)
- JavaWeb之HttpSession
- linux灵活提取ip脚本
- 携程 | 组织架构如何影响项目管理
- 【蓝桥杯算法模板题--蓝桥题库Java】
- 资源下载--使用Proxy SwitchyOmega+postman下载资源
- google在线翻译二
- 暴力破解之验证码绕过
- python量化实战 顾比倒数线_外汇高手分享:顾比倒数线的画法与经典战法