0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

页表如何支持多任务并行

冬至配饺子 来源:芯片验证工程师 作者:验证哥布林 2022-07-28 17:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在大多数使用ARM处理器的系统中都会有很多应用或者任务同时运行,其中每个任务都在物理内存中拥有自己独立的页表。

每当应用程序启动时,操作系统都会为其分配一个页表,页表中的页表项将应用程序即将使用到的指令和数据映射到物理内存。如果应用程序映射到了未分配的物理空间,操作系统会完成相应页的分配,然后任务就可以进行下去。

多个任务可以同时运行,因为它们使用的是不同的VA-PA映射关系,而这些映射关系能够同时存在于物理内存中。当任务完成并且相应的页表映射不再需要时,该页表所处的物理空间可以被重新分配,删除相应的页表项(置成无效)并invalid TLB cache。

Address Space ID

在页表中有一个nG(non-global)比特位。如果某个页设置了nG ,那么该页只与特定的应用或者任务相关联。当MMU执行VA-PA时,会同时用到VA和ASID(操作系统分配给每个任务的编号)。

poYBAGLiWjqAE4OOAACyqX34lps621.png

作为页表内容的cache,TLB中的tag除了存储了VA,还有相应的ASID。在做TLB的hit-miss-check时,只有VA和ASID同时匹配才算hit。

上下文切换

所以,TLB中可能存放着多个相同VA对应的页表项。这些页表项具有不同的ASID,当某个ASID对应的任务完成或者这个任务的页表发生更改时只需要invalid某个ASID的TLB cache。这种操作叫context switches(上下文切换)。只针对特定ASID进行上下文切换,能够降低页表修改带来的性能开销,因为它避免了刷新全部的TLB。


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM处理器
    +关注

    关注

    6

    文章

    361

    浏览量

    43386
  • MMU
    MMU
    +关注

    关注

    0

    文章

    92

    浏览量

    19289
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    现代摩比斯落地HIL Farm实现测试工厂模式

    HIL系统“资源池”化调度,支持多任务同步推进。以灵活的并行验证能力,从容应对日益增长的测试需求与系统复杂度。
    的头像 发表于 03-18 11:45 488次阅读
    现代摩比斯落地HIL Farm实现测试工厂模式

    一文说透了如何实现单片机的多任务并发!

    在嵌入式系统开发中,多任务并发是非常常见的,对于处理复杂的应用场景、提升系统的并发能力、提高系统的实时性等方面都有很大好处。在单片机中实现多任务并发是非常重要的,本文将为大家介绍如何在单片机中实现
    发表于 01-06 06:46

    高性能网络存储设计:NVMe-oF IP的实现探讨

    •与 UID/动态队列绑定机制协同,避免单一SSD 成为瓶颈 整体架构支持跨 SSD 的 可扩展 IO 并行流水线,非常适合大带宽、多任务、NVMeoFTarget 场景。 ④ 多
    发表于 12-19 18:45

    CW32F030的FLASH存储器支持擦写PC的保护功能

    CW32F030 的 FLASH 存储器支持擦写 PC 保护功能。 当用户程序运行 FLASH 时,如果当前程序指针 PC 正好位于待擦写的 FLASH 地址范围内,则该擦写操作失败,同时
    发表于 12-11 07:38

    多任务系统中,如何平衡任务调度以防止因高负载导致的再次进入低功耗模式的延迟?

    多任务系统中,如何平衡任务调度以防止因高负载导致的再次进入低功耗模式的延迟?
    发表于 12-04 06:37

    一文看懂AI大模型的并行训练方式(DP、PP、TP、EP)

    大家都知道,AI计算(尤其是模型训练和推理),主要以并行计算为主。AI计算中涉及到的很多具体算法(例如矩阵相乘、卷积、循环层、梯度运算等),都需要基于成千上万的GPU,以并行任务的方式去完成。这样
    的头像 发表于 11-28 08:33 2060次阅读
    一文看懂AI大模型的<b class='flag-5'>并行</b>训练方式(DP、PP、TP、EP)

    为什么FPU在MCU中很重要呢?

    甚至上百个周期。 并行处理: 一些高性能 FPU(如 Cortex-M7 的 DPFPU)具有流水线结构,可以并行处理多个操作。 降低 CPU 负载: FPU 承担了繁重的浮点计算任务,释放了主 CPU
    发表于 11-18 07:05

    Swift 的并发系统并行运行多个任务

    ​​前言 Swift 内置并发系统的好处之一是它可以更轻松地并行执行多个异步任务,这反过来又可以使我们显着加快可以分解为单独部分的操作。 在本文中,让我们看一下几种不同的方法,以及这些技术中的每一种
    的头像 发表于 11-11 11:33 561次阅读

    一句话,多个命令同时执行,AI语音模组也能多任务处理?

    、 Ai-WV02-32S   将语音识别、唤醒、语义理解等核心功能, 浓缩在一颗小小的模组中。 安信可AI语音模组支持 MCP 协议(Multi Command Processing,多命令并行处理) ,让语音交互从“单线程”进化为真正的“
    的头像 发表于 10-31 14:45 670次阅读
    一句话,多个命令同时执行,AI语音模组也能<b class='flag-5'>多任务</b>处理?

    爱普科技PSRAM加速wisun无线模块多任务处理

    爱普科技256Mb PSRAM(如APS256XXN-OBR-BG)为WiSUN无线模块提供高速数据缓存与临时存储解决方案,其166MHz速率、1.8V低功耗及小尺寸封装显著提升模块在智能电网、工业自动化中的多任务处理能力和稳定性。
    的头像 发表于 10-14 09:25 519次阅读
    爱普科技PSRAM加速wisun无线模块<b class='flag-5'>多任务</b>处理

    Task任务:LuatOS实现“任务级并发”的核心引擎

    Task任务通过其强大的并发处理能力,使LuatOS能够在单线程环境中模拟多线程执行,通过协程的挂起与恢复机制,实现任务级的并行操作,显著提升系统效能。 sys核心库是LuatOS运行框架库,也是
    的头像 发表于 08-28 13:49 639次阅读
    Task<b class='flag-5'>任务</b>:LuatOS实现“<b class='flag-5'>任务</b>级并发”的核心引擎

    揭秘LuatOS Task:多任务管理的“智能中枢”

    Task任务作为LuatOS的核心组成部分,通过智能化的任务管理机制,实现任务的创建、调度与协同运行,让复杂应用得以高效并行处理,满足实时场景下的严苛需求。 sys核心库是LuatOS
    的头像 发表于 08-28 13:48 782次阅读
    揭秘LuatOS Task:<b class='flag-5'>多任务</b>管理的“智能中枢”

    多节点并行处理架构

    /GPU)、内存及本地存储,节点间通过高速网络通信,避免资源争用,提升扩展性。 数据水平分片‌ 海量数据被分割存储在不同节点,查询时各节点并行处理本地数据,最后汇总结果(如Doris、ClickHouse)。 分布式任务调度‌ 协调节点将
    的头像 发表于 06-12 08:18 752次阅读
    多节点<b class='flag-5'>并行</b>处理架构

    多任务处理卡顿频发,无风扇工控机如何优化性能?聚徽厂家一文读懂

    在工业自动化、物联网等领域的深度应用中,无风扇工控机常常需要同时运行数据采集、实时监控、程序控制等多个任务。然而,频繁出现的多任务处理卡顿问题,不仅影响生产效率,还可能导致数据丢失、系统崩溃等
    的头像 发表于 06-03 15:25 931次阅读

    快速入门——LuatOS:sys库多任务管理实战攻略!

    在嵌入式开发中,多任务管理是提升系统效率的关键。本教程专为快速入门设计,聚焦LuatOS的sys库,通过实战案例带你快速掌握多任务创建、调度与同步技巧。无论你是零基础新手还是希望快速提升开发效率
    的头像 发表于 05-29 14:36 999次阅读
    快速入门——LuatOS:sys库<b class='flag-5'>多任务</b>管理实战攻略!