- 博客(3)
- 资源 (13)
- 收藏
- 关注
转载 armv64异常保存处理器状态流程(EL1 HW)
异常发生时,armv64首先要做的就是保存处理的当前状态:1)将当前处理器状态PSTATE保存在SPSR_EL1寄存器中2)将返回地址保存在ELR_EL1寄存器中3)设置处理器状态中的调试掩码位D、系统错误掩码位A、中断掩码位I和快速中断掩码位F禁止调试异常、系统错误异常、外部中断和快速中断4)将发生错误的原因保存在ESR_EL1寄存器中5)将同步异常的错误地址保存在FAR_EL1寄存器中7)如果处理器处于异常级别EL0则将异常级别提升到EL18)根据异常向量表基地址、生成异常的
2021-05-07 17:35:45 174
翻译 LPI
概述LPI全称是Locality-specific Peripheral Interrupts(LPIs),GICv3有两种方式支持LPIs:1)使用ITS把从设备发送的EventID转换成LPI INTID2)直接转发LPI INTID到Redistributors(GICR_SETLPIR)如果一个实现支持LPIs,则默认至少需要支持8192个LPIs,因此每一个LPI的配置和pending信息都是以table的形式保存在memory中(不是寄存器中),这些tables的基地址保存在Re
2021-04-22 15:24:45 1142
翻译 Load/Store Non-temporal Pair instructions
Load/Store Non-temporal Pair指令提供给memory system一个暗示(hint):这个访问是non-temporal或者流式(streaming)的,在短时间内很可能不会再次访问,要访问的数据不需要缓存到cache中。这仅仅是一个暗示,这个指令允许preload或者和其他写合并在一起形成bulk transfers。有一点特别要注意,如果两个memory read存在地址依赖,并且Load Non-temporal Pair指令产生了第二个读,在没有barrier机制保证
2021-04-09 20:10:53 1095
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人