context switch的切换过程(TTBR0的切换/ASID的介绍)

news2024/11/24 1:14:18

快速链接:

  • 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈
context switch的切换

操作系统中可能存在多个任务, 内核调度器周期性地将执行从一项任务转移到另一项任务。在这个过程中,操作系统会保存上一个进程的执行状态,然后恢复下一个进程的执行状态,这个过程这称为context switch, 那么context switch的过程中,都保存和恢复了哪些东西呢,如下所示:

  • general-purpose registers X0-X30.
  • Advanced SIMD and Floating-point registers V0 - V31.
  • Some status registers.
  • TTBR0_EL1 and TTBR0.
  • Thread Process ID (TPIDxxx) Registers.
  • Address Space ID (ASID).
ASID的介绍

现代操作系统的所有应用程序似乎都从同一地址区域运,这就是我们所说的用户空间。在实践中,不同的应用程序需要不同的MMU映射。例如,每一个应用程序都有VA 0x8000地址,需要使用各自对应的页表进行转换.

理想情况下,我们希望不同应用程序的翻译都能够存储在TLB,而又希望在上下文切换时无需invalid TLB。但是处理器如何知道目前TLB存储的VA 0x8000是哪个进程的呢?在 Armv8‑A 中,答案就是使用ASID进行标识。
在这里插入图片描述
那么对于TLB条目中,缓存的ASID到底是来自TTBR0还是来自TTBR1呢,由TCR寄存器的配置决定:
在这里插入图片描述

对于 EL0/EL1 虚拟地址空间,Page Descriptor属性字段中的 nG 位将转换标记为Gloabl(G) 或non-Gloabl(nG)。例如,内核映射是Gloabl(G)翻译,应用程序映射是non-Gloabl翻译。Gloabl翻译适用于当前正在运的任何应用程序。非全局翻译仅适用于特定应用程序
在这里插入图片描述

non-Gloabl映射在 TLB 中使用 ASID进行标记。在 TLB 查找时,将 TLB 条目中的 ASID 与当前选择的 ASID 进行比较。如果它们不匹配,则不使用TLB 条目。下图显示了内核空间中没有 ASID 标记的全局映射和用户空间中具有 ASID 标记的非全局映射
在这里插入图片描述

TLB Entry里都有什么?

以cortex-A710为例,TLB Entry(L1 data TLB returned data)里都有什么?

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

Linux Kernel代码导读
TTBR0_EL1 和 ASID 的切换

在这里插入图片描述


关注"Arm精选"公众号,备注进ARM交流讨论区。

1138106487-65f6cf311889c.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1564166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ISELED-演示项目代码

目录 一、main函数二、点灯函数 一、main函数 int main(void) {/* Write your local variable definition here */iseledInitType.crcEnable 1;iseledInitType.firstLedAdr 1;iseledInitType.tempCmpEnable 0;iseledInitType.voltSwing 0;/*** End of Processor Expert in…

windows下通过vscode访问ubuntu(绝大部分Linux下开发所采用的方案)

前言 本篇博客是介绍VSCode远程连接Ubuntu进行开发的解决方案,前提是安装好了VMWare,Ubuntu,windows下的VSCode。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关…

大模型prompt技巧——思维链(Chain-of-Thought)

1、Zero-shot、One-shot、Few-shot 与fintune prompt的时候给出例子答案,然后再让模型回答。 2、zero-shot-CoT “Let’s think step by step”有奇迹效果 3、多数投票提高CoT性能——自洽性(Self-consistency) 多个思维链,然后取…

使用Thymeleaf配置国际化页面

在国际化(i18n,即 Internationalization 的缩写,其中“i”和“n”之间有18个字母)的上下文中,Thymeleaf 和 Spring Boot 可以很容易地一起工作,以支持多种语言的页面显示。下面是如何在 Spring Boot 应用中…

干货教程【AI篇】| AI大模型文字生成视频环境部署小白级教程

只需要一个主题、一个词语,或者一段描述,就可以生成一个完整的短视频的工具来啦! 在文章下方公众号中回复关键词【aivd】即可获取完整代码和配套软件 工具获取 ps:本文不涉及任何代码开发工作,仅仅作为软件推荐。 如…

实验:基于Red Hat Enterprise Linux系统的创建磁盘和磁盘分区(二、三)

目录 一. 实验目的 二. 实验内容 三. 实验设计描述及实验结果 实验二: 1. 为nvme0n2p1设备建立配额属性和文件(EXT) 2. 要求自己名字的用户只能存储不超过200M的文件,总数量不能大于10个 quotacheck [选项] 文件系统 edquota quotaon [选项] 文件系…

java数据结构与算法刷题-----LeetCode127. 单词接龙

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 广度优先双分裂蛇 广度优先双分裂蛇 解题思路:时间复…

monitor link 联合smart link配合应对复杂的网络

monitor link关键词:上行和下行端口,当上行端口异常,下行端口立即down掉,也就是一种联动机制 如果上行端口里面是smart link方式,则当主从端口都出问题时候,下行端口才会down掉 monitor link 配置步骤 1创…

剑指Offer题目笔记24(集合的组合、排序)

面试题79: 问题: ​ 输入一个不含重复数字的数据集合,找出它的所有子集。 解决方案: ​ 使用回溯法。子集就是从一个集合中选出若干元素。如果集合中包含n个元素,那么生成子集可以分为n步,每一步从集合中…

苹果安卓双端短视频直播系统源码,带后台-支持二开和采集

搭建教程 1.PHP5.6-7.2 mysql 5.6 redis5.0 nginx1.15 2.宝塔就完全满足了 我刚开了台服务器,建议用阿里云的 我这个是腾讯云 先让服务器 自己装着 时间比较长 3.搭建前需要准备的东西 腾讯云直播、七牛存储、百度语音、腾讯地图等好多东西 七牛存储…

Adaboost集成学习 | Matlab实现基于GRU-Adaboost门控循环单元结合Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Adaboost集成学习 | Matlab实现基于GRU-Adaboost门控循环单元结合Adaboost集成学习时间序列预测(股票价格预测) 模型设计 股票价格预测是一个具有挑战性的时间序列预测问题,可以使用深度学习模型如门控循环…

LeetCode-142. 环形链表 II【哈希表 链表 双指针】

LeetCode-142. 环形链表 II【哈希表 链表 双指针】 题目描述:解题思路一:快慢指针 判断是否有环见解题思路二:set()解题思路三:0 题目描述: 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如…

Qt5.15以上版本在线安装步骤,可选择更多早期版本

以ubuntu系统为例: 1、先去下载在线安装程序: https://download.qt.io/official_releases/online_installers/ 选择合适的版本,这里是在x64机器的ubuntu虚拟机里安装QT,所以选择如下版本: 或者直接在终端执行如下命令…

VScode-配置文件

导入配置文件 ShiftCtrlp 输入: import 选择文件 点击确认 导出配置文件 设置选择导出 确认导出 保存为本地文件 保存文件

视频素材库哪个好?推荐8个网站助你精彩创作

大家好!在视频创作的世界里,一个好的素材库就像是你在寻宝,能让你的作品焕然一新。那么,视频素材库哪个好呢?今天,我就来给大家分享8个超棒的视频素材网站,让你不再为了视频素材库哪个好&#x…

Boost之Log: (3)、简单封装

设计目标: 1、每个Logging source对应一个目录,可以设置日志文件数,日志大小,目录名,文件名等 2、所有logging source日志目录都在一个根目录下。 3、可以动态创建和删除logging source 4、打印出日期时间和日志严重等级 示例代码…

不同设备使用同一个Git账号

想要在公司和家里的电脑上用同一个git账号来pull, push代码 1. 查看原设备的用户名和邮箱 第1种方法, 依次输入 git config user.name git config user.email第2种方法, 输入 cat ~/.gitconfig2. 配置新设备的用户名和邮箱 用户名和邮箱与原设备保持…

(十一)RabbitMQ及SpringAMQP

1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,…

自动驾驶的世界模型:综述

自动驾驶的世界模型:综述 附赠自动驾驶学习资料和量产经验:链接 24年3月澳门大学和夏威夷大学的论文“World Models for Autonomous Driving: An Initial Survey”。 在快速发展的自动驾驶领域,准确预测未来事件并评估其影响的能力对安全性…

桶排序---

1、算法概念 桶排序:一种非比较的排序算法。桶排序采用了一些分类和分治的思想,把元素的值域分成若干段,每一段对应一个桶。在排序的时候,首先把每一个元素放到其对应的桶中,再对每一个桶中的元素分别排序&#xff0c…