在大多数使用arm处理器的系统中都会有很多应用或者任务同时运行,其中每个任务都在物理内存中拥有自己独立的页表。
每当应用程序启动时,操作系统都会为其分配一个页表,页表中的页表项将应用程序即将使用到的指令和数据映射到物理内存。如果应用程序映射到了未分配的物理空间,操作系统会完成相应页的分配,然后任务就可以进行下去。
多个任务可以同时运行,因为它们使用的是不同的va-pa映射关系,而这些映射关系能够同时存在于物理内存中。当任务完成并且相应的页表映射不再需要时,该页表所处的物理空间可以被重新分配,删除相应的页表项(置成无效)并invalid tlb cache。
address space id
在页表中有一个ng(non-global)比特位。如果某个页设置了ng ,那么该页只与特定的应用或者任务相关联。当mmu执行va-pa时,会同时用到va和asid(操作系统分配给每个任务的编号)。
作为页表内容的cache,tlb中的tag除了存储了va,还有相应的asid。在做tlb的hit-miss-check时,只有va和asid同时匹配才算hit。
上下文切换
所以,tlb中可能存放着多个相同va对应的页表项。这些页表项具有不同的asid,当某个asid对应的任务完成或者这个任务的页表发生更改时只需要invalid某个asid的tlb cache。这种操作叫context switches(上下文切换)。只针对特定asid进行上下文切换,能够降低页表修改带来的性能开销,因为它避免了刷新全部的tlb。
华为投资千亿研发100多款芯片,成功跻身世界前5强!
2018德国慕尼黑全球第一芯片展,芯片超人如何带领众国内企业出海捞金?
政策扶持行业站上风口 智能家居普及在望
分享10道有趣的嵌入式C语言面试题及答案
日本发生地震,多家为芯片制造商供应原料企业暂停了生产
页表如何支持多任务并行
盘点华为从冬天到春天的管理智慧
一加5什么时候上市?一加5最新消息:一加5配置、外观、性能提前看,不将就的高颜值旗舰你买吗?
积极应对疫情影响 多方位布局 5G“后移动时代”
三大运营商2020年年底数据盘点:电信是大赢家
苹果全新键盘拆解 内部做工如何
声控传感器构成的防盗监听电路
小米MIX2什么时候上市?小米MIX2最新消息:小米MIX2外观、配置汇总,9月12号发布
国产UVLED固化技术是否成熟,和进口产品相比怎么样
人工智能什么误区你可能会相信
奶粉蛋白质检测仪的特点及功能
共享经济与制造业的结合,将会带来什么变化
多标准视频解码器MB86H61系列SoC
美光服务器用DRAM占年度销售30%,超越PC用DRAM成为第二大产品
汽车检测的重要性主要体现在哪些方面