当前位置: 首页 > news >正文

淘宝客网站建好了没有数据库/爱链网买链接

淘宝客网站建好了没有数据库,爱链网买链接,海宁做网站的公司,web网站开发怎么分工1.概述 SMMU有三种方式将故障和错误(Faults and Errors)报告给软件,具体如下: 提交给SMMU命令在某些情况下不正确时,命令队列有机制报告这些错误。事件队列中记录了一些错误和故障。包括了来自设备流量(t…

1.概述

SMMU有三种方式将故障和错误(Faults and Errors)报告给软件,具体如下:

  1. 提交给SMMU命令在某些情况下不正确时,命令队列有机制报告这些错误。
  2. 事件队列中记录了一些错误和故障。包括了来自设备流量(traffic)引起的错误和故障,比如配置错误或者设备地址引起的缺页异常。
  3. 一种基于全局寄存器的SMMU_GERROR机制用于上报以下情况引发的事件:当无法将记录写入事件队列或PRI队列时,以及其他无法写入内存的灾难性事件。这种情况可能发生在事件队列指针错误的指向不存在的内存,或发生队列溢出的情况下。

2.命令队列错误

命令队列中的消费者读指针寄存器如下图所示,RD保存命令队列读取索引,ERR保存错误码。当有命令错误时,SMMU会将错误码保存到ERR区域,同时触发SMMU_GERROR.CMDQ_ERR中断,通知CPU处理。

命令队列错误

位域名称意义
[19:0]RD命令队列读取索引。该位域分为两个部分,具体由配置的命令队列大小决定。
Bit[QS]: RD_WRAP - 队列读取索引掉头从头开始的标志。
Bits[QS-1:0]: RD - 命令队列读取索引。
QS == SMMU_CMDQ_BASE .LOG2SIZE and SMMU_CMDQ_BASE .LOG2SIZE <= SMMU_IDR1.CMDQS <= 19.
[30:24]ERR错误码。当检测到命令执行错误,ERR保存命令执行错误的错误码,同时触发SMMU_GERROR.CMDQ_ERR中断。
0x00: CERROR_NONE,没有错误发生
0x01: CERROR_ILL,非法的命令,如命令opcode不正确,命令有效但使用了保留区域或者无效的值
0x02: CERROR_ABT,读取命令失败,比如读取命令时发生外部错误,导致读取终止
0x03: CERROR_ATC_INV_SYNC,ATS Invalidation完成超时

命令队列中的命令按顺序执行,当有检测到命令错误或者命令预取失败时:

  1. SMMU会停止执行命令
  2. 错误命令之前的命令将会被执行
  3. SMMU_(*_)CMDQ_CONS.RD依旧指向错误命令的位置
  4. SMMU将错误码更新到SMMU_(*_)CMDQ_CONS.ERR区域
  5. 触发SMMU_(*_)GERROR .CMDQ_ERR中断,此时SMMU不会执行命令队列中的命令
  6. 比错误命令更新的命令不起作用,如果SMMU已经读取该命令,则会丢弃该命令
    当发生命令队列错误时,ARM推荐软件先修复命令队列错误,然后通过向SMMU_()GERRORN写入合适的值响应CMDQ_ERR,最终达到重启命令队列的目的。软件不需要写SMMU(_)CMDQ_PROD来重新触发命令处理。

3.事件队列记录的故障类型

事件队列记录三种类别的事件:

  1. Configuration errors
    配置错误是由不正确的寄存器、STE或CD内容引起的,并且与传入的事务地址转换有关。在响应事务之前,不会报告内存中的不正确配置。任何传入的事务最多可能导致一个事件报告,该报告可能是一个配置错误,或者如果配置全部有效,则可能是几种类型的事务地址转换故障之一(可能适用于阶段1或阶段2)。
  2. Faults from the translation process
    只有当事务地址尝试转换时,才会报告转换错误。SMMU的实现可能会以实现特定的方式预取配置项和TLB条目。预取的错误配置不会记录配置错误(即使是为了响应显式的CMD_PREFETCH_*命令而预取),只有在收到事务时,才会记录转换故障或配置错误。
  3. Miscellaneous
    杂项事件(例如E_PAGE_REQUEST)的记录与传入的数据事务异步进行。
    Event queue记录的事件参考ARM SMMUv3命令和事件队列分析(四)。

4.全局错误

当有全局错误发生时,SMMU会产生中断通知软件处理。软件通过SMMU_()GERROR寄存器获取全局错误类型,而不是基于内存的事件队列。SMMU中总共定义了10种全局错误,SMMU(_)GERROR寄存器中每一个bit对应一种全局错误,具体如下图所示。

全局错误

SMMU_(*_)GERROR表示的全局错误如下表所示。

位域错误标记意义
[0]CMDQ_ERR命令队列错误
[2]EVENTQ_ABT_ERR事件队列访问中止。当EVENTQ_ABT_ERR设置时,SMMU将停止向事件队列中记录事件。
[3]PRIQ_ABT_ERRPRI队列访问中止。当PRIQ_ABT_ERR设置时,SMMU将停止向事件队列中记录事件。
[4]MSI_CMDQ_ABT_ERRCMD_SYNC触发的MSI写入中止(若支持MSI中断)。
[5]MSI_EVENTQ_ABT_ERR事件队列触发的MSI写入中止(若支持MSI中断)。
[6]MSI_PRIQ_ABT_ERRPRI队列触发的MSI写入中止 (Non-secure GERROR only)(若支持MSI中断)。
[7]MSI_GERROR_ABT_ERRGERROR触发的MSI写入中止(若支持MSI中断)。
[8]SFM_ERR
SMMU进入Service Failure Mode。该错误在SMMU_GERROR和SMMU_S_GERROR寄存器中的意义相同。
[9]CMDQP_ERR命令队列控制页错误(control page error)。适用于增强型命令队列(Enhanced Command queue),增强型命令队列拥有256 Command queue control pages,每个control pages最多拥有256个队列,适用于复杂系统。
[10]DPT_ERRDPT(Device Permission Table)查找错误。错误信息保存在 SMMU_(R_)DPT_CFG_FAR寄存器中,

SMMU_(*_)IRQ_CTRL .GERROR_IRQEN == 1时将会打开全局中断,当有全局错误发生时,SMMU会触发全局中断。

5.故障模式

故障模式(Fault models)表示SMMU对错误的处理方式,有两种模式,分别是Terminate model和Stall model。Fault models配置为Terminate model时,当有错误发生时,SMMU会向client device返回错误并立即终止事务。Fault models配置为Stall model时,当有错误发生时,SMMU会以RAZ/WI的方式响应client device,此时client device会认为事物成功了,感觉不到错误,SMMU也不会处理错误事务,会把错误的信息记录到事件队列中,软件可以通过发送CMD_RESUME or CMD_STALL_TERM命令重启事务或者终止事务。

5.1.配置

第一阶段地址转换的Fault models通过CD.{A,R,S}标志配置,第二阶段地址转换的Fault models通过STE.{S2R,S2S}标志配置。CD.{A,R,S}和STE.{S2R,S2S}控制下面错误的Fault models。下面的错误都和事务地址转换相关。

  • F_TRANSLATION.
  • F_ACCESS.
  • F_ADDR_SIZE.
  • F_PERMISSION.
    下面是A、R、S三个标志的意义:
A事务终止时的中止行为(Abort behavior upon transaction termination)
1. 当A==1时,当事务以地址转换相关的4种错误终止时,SMMU会向client device返回abort和bus error。
2. 当A==0时,事务都会以RAZ(Read As Zero)/WI(Write Ignored)行为成功完成,就算有错误发生,client device都不会收到错误。
3. A标志只存在第一阶段地址转换中,第二阶段地址转换将以abort终止,相当于A==1。
4. 有些SMMU可能只实现了abort termination(不支持RAZ/WI),可以通过 SMMU_IDR0.TERM_MODEL获取SMMU对Fault models的支持情况。在这种情况下,配置CD.A == 0会导致CD描述符无效。
5. A标志不影响ATS转换请求引发的错误,因为ATS不支持RAZ/WI行为。
R记录事件(Record event)1. 当R==1时,SMMU检测的错误事件将会记录到事件队列中。
2. 当R==0时,SMMU检测的错误事件不会记录到事件队列中。
3. R标志只会影响当S==0且是和地址转换相关的四种错误。
S遇到故障时停止运行(Stall upon fault )1. 当S==1时,当发生和地址转换相关的4种错误时,会进入Stall model,在软件发出resume或terminate命令之前,不会对事务作出响应,因此事务要么被重试,要么被终止。
2. 当S==1时,发生错误时的行为由A标志决定。

下面是ARS三个标志组合起来表示的意义。

ARS意义
0b000静默地终止SMMU上的事务,并且会以RAZ/WI成功的响应事务
0b010以RAZ/WI的方式终止事务,并且会将错误事务记录到事件队列中
0bxx1Stall model,会将错误记录到事件队列中,软件可以通过发送CMD_RESUME or CMD_STALL_TERM命令重启事务或者终止事务
0b100静默的将事务中止报告client device
0b110将事务中止报告client device,并且会将错误事务记录到事件队列中

5.2.故障处理流程

SMMU检测到Fault时的处理流程如下图所示。
故障处理流程

参考资料

  1. Arm ® System Memory Management Unit Architecture Specification version 3.
http://www.lryc.cn/news/580832.html

相关文章:

  • 深圳app开发公司有哪些/网站优化推广培训
  • php网站集成支付宝接口/合肥网站优化搜索
  • 怎么让自己做的网站让别人看到/千万别在百度上搜别人名字
  • 菏泽外贸网站建设/seo关键词优化平台
  • seo诊断报告示例/青岛 google seo
  • 哪些网站可以做免费推广/semester at sea
  • 网站开发的重难点/百度推广北京总部电话
  • 做网站还需要续费/网站建设的流程是什么
  • 做网上竞彩网站合法吗/重庆seo务
  • 用javascirpt做的网站/长沙seo袁飞
  • b2b网站页面设计特点/网络广告营销方案
  • 广安做网站的公司/北京如何优化搜索引擎
  • 网站空间搭建/百度快速seo软件
  • 建设企业网站收费/百度搜索资源平台
  • 迎访问中国建设银行网站-/如何查询网站收录情况
  • 网站说服力营销型网站策划 pdf/广东网站营销seo方案
  • 狼雨seo网站排名查询/谷歌浏览器官网下载手机版
  • 浦东新区专业做网站/seo经理招聘
  • 地方政府如何建设政府网站/班级优化大师app下载学生版
  • 做淘客网站要多大的服务器/百度广告投放公司
  • java 手机网站建设/iis搭建网站
  • 做网站代理需要办什么营业执照/搜索关键词排名优化
  • 网站建设和Java/网站设计费用明细
  • 做网站维护和客服需要学什么/百度云服务器官网
  • 塘厦镇网站建设/网络热词2023流行语及解释
  • 网站模板下载 免费/免费推广的app有哪些
  • 太原做网站的网络公司/seo专业技术培训
  • 什么网站可以做音乐伴奏/今日小说搜索风云榜
  • 浙江省网站备案注销申请表/成都seo公司排名
  • 北京做网站公司电话/十堰seo