ARM64异常模型之系统错误异常System Error

这篇具有很好参考价值的文章主要介绍了ARM64异常模型之系统错误异常System Error。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Know Why

为什么把系统错误System Error称作为异步异常?

在ARM64体系结构中,异常(Exceptions)是处理器响应某种特定事件或错误条件的方式。异常会导致处理器中断当前执行的指令流,并跳转到一个称为异常向量的预定义位置,以运行特定于异常的处理程序。异常分为同步异常和异步异常两类。

同步异常是由处理器当前执行的指令引发的。这意味着当处理器执行特定指令时,它会检测到一个错误或异常条件。在这种情况下,处理器能够精确地确定引发异常的指令和相关的上下文信息。典型的同步异常包括:未对齐访问(Misaligned access)、除以零错误(Division by zero)、未定义指令(Undefined instruction)等。

异步异常与处理器当前执行的指令无关,而是由外部事件或处理器以外的硬件组件引发的。因为异步异常不是由特定指令触发的,所以它们可能在任何时候发生,与当前执行的指令无关。典型的异步异常包括:中断(Interrupts)、系统错误(System Errors)等。

在ARM64体系结构中,将系统错误(System Error)称为异步异常,是因为它们通常由硬件故障、外部信号或系统总线错误引起,这些错误不是由处理器当前执行的指令直接引发的。因此,系统错误与当前执行的指令无关,可能在任何时候发生,因此被归类为异步异常。

System Error常见类型

在ARM体系结构中,系统错误异常(System Error Exceptions)通常是由硬件故障、外部信号或系统总线错误引起的。以下是一些常见的系统错误异常:

  • Synchronous External Abort:同步外部终止,当处理器试图访问一个发生错误的外部存储器位置时触发。它可以由访问权限错误、内存奇偶校验错误或其他外部存储器系统错误引发。

  • Asynchronous External Abort:异步外部终止,由处理器以外的硬件组件报告的错误触发。例如,当一个外部设备报告内存访问问题时,可能会触发异步外部终止。因为这种异常与处理器当前执行的指令无关,所以它可能在任何时候发生。

  • SError(System Error)中断:这是ARMv8架构中引入的一种新异常类型,用于报告来自处理器的内部错误或来自系统内其他硬件的错误。SError中断可以报告诸如RAS(可靠性、可用性和服务性)错误、ECC(错误校验和纠正)错误等系统级别的问题。

  • 内存管理单元(MMU)异常:当处理器检测到与内存管理单元相关的错误时,可能会触发MMU异常。例如,当发生地址翻译错误或访问权限错误时,MMU会引发异常。

这些系统错误异常通常需要特殊的处理程序来诊断和处理错误。操作系统和硬件厂商可能提供用于处理这些异常的工具和故障排除方法。请注意,具体的系统错误异常类型可能因处理器版本和实现而异。

总结

系统错误异常(System Error Exceptions)是处理器在遇到系统级别错误时引发的异常。这些错误通常与硬件故障、外部信号或系统总线错误有关。系统错误异常通常需要特殊的处理程序来诊断和处理,因为它们通常表明硬件设备、内存子系统或其他关键系统组件中存在问题。

以下是一些常见的系统错误异常类型和相关说明:

  • Synchronous External Abort(同步外部终止):这种异常在处理器试图访问发生错误的外部存储器位置时触发。同步外部终止可以由访问权限错误、内存奇偶校验错误或其他外部存储器系统错误引发。因为此异常是由处理器当前执行的指令触发的,所以可以精确地确定引发异常的指令和上下文信息。

  • Asynchronous External Abort(异步外部终止):这种异常由处理器以外的硬件组件报告的错误触发,例如当一个外部设备报告内存访问问题时。异步外部终止与处理器当前执行的指令无关,因此可能在任何时候发生。它通常表示系统内存子系统中存在问题,需要调查和解决。

  • SError(System Error)中断:这是ARMv8架构中引入的一种新异常类型,用于报告来自处理器的内部错误或来自系统内其他硬件的错误。SError中断可以报告诸如RAS(可靠性、可用性和服务性)错误、ECC(错误校验和纠正)错误等系统级别的问题。这些错误可能源于处理器、内存控制器或其他硬件组件的故障。与异步外部终止类似,SError中断也可能在任何时候发生,与处理器当前执行的指令无关。

  • 内存管理单元(MMU)异常:这类异常在处理器检测到与内存管理单元相关的错误时触发。例如,当发生地址翻译错误或访问权限错误时,MMU会引发异常。MMU异常可能表明虚拟地址到物理地址的翻译过程中存在问题,或者是由于访问了受保护的内存区域而触发的。

当处理器遇到系统错误异常时,它会中断当前执行的指令流并跳转到一个称为异常向量的预定义位置,以运行特定于异常的处理程序。操作系统通常需要实现用于处理这些异常的处理程序,这些处理程序可以诊断问题、尝试恢复错误(如果可能的话),或者通知管理员以进行进一步的故障排除和修复。

请注意,具体的系统错误异常类型和处理方式可能因处理器版本和实现而异。在某些情况下,硬件供应商可能会提供专用的故障排除工具和方法来帮助诊断和解决系统错误异常。文章来源地址https://www.toymoban.com/news/detail-833183.html

到了这里,关于ARM64异常模型之系统错误异常System Error的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开发安全之:System Information Leak: External

    Overview  在调用 error_reporting() 过程中,程序可能会显示系统数据或调试信息。由 error_reporting() 揭示的信息有助于攻击者制定攻击计划。 Details 当系统数据或调试信息通过套接字或网络连接使程序流向远程机器时,就会发生外部信息泄露。 示例 1: 以下代码会将一个异常写入

    2024年01月21日
    浏览(44)
  • ARMv8-AArch64 的异常处理模型详解之异常类型 Exception types

    异常(Exception)通俗点来讲,就是系统在正常运行的时候出现的非正常事件,这个非正常事件会导致系统状态更改或者其他错误,为了确保系统功能能正常运行,需要一些带有特权的软件代码(exception handler)来采取一些补救措施或者更新系统状态,这个过程被称为异常处理

    2024年01月21日
    浏览(38)
  • ARMv8-AArch64 的异常处理模型详解之异常处理详解(同步异常和异步异常的分析和处理)

    在文章ARMv8-AArch64 的异常处理模型详解之异常类型 Exception types中提到过,同步异常是处理器在执行指令时产生的异常,是一种精确的,可以具体定位到是哪条指令导致异常的产生。下面笔者将介绍三个用于定位并分析同步异常产生的寄存器。 在文章ARMv8-AArch64 的异常处理模型

    2024年03月27日
    浏览(45)
  • ARMv8-AArch64 的异常处理模型详解之异常向量表vector tables

    目录 一,AArch64 异常向量表  二,栈指针以及SP寄存器的选择 三,从异常返回   异常向量表 (vector tables) 是一组存放于普通内存( normal memory) 空间的,用于处理不同类型异常的指令(exception handler)。 当异常发生时,处理器需要跳转到对应的异常处理器(exception handler)

    2024年02月22日
    浏览(50)
  • ARMv8-AArch64 的异常处理模型详解之异常等级、执行状态以及安全状态

    在了解AArch64异常等级模型之前,有必要先理解特权的概念。现代软件被开发成不同的模块,每个模块对系统和处理器资源有不同的访问级别。比如操作系统内核和用户应用程序的划分。操作系统内核需要高级别的权限来访问系统资源,然而应用程序应当被限制其配置系统的能

    2024年02月03日
    浏览(38)
  • ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions

    在介绍异常处理之前,有必要了解一些关于异常处理状态的术语: 当处理器响应一个异常时,我们称该异常被获取了( taken )。 处理器响应异常之前的状态被称为 taken from 。 处理器响应异常之后的状态被称为 taken to 。 因此,当处理器识别到异常时,此时处理器处于 taken

    2024年02月20日
    浏览(44)
  • arm64位系统中编译ffmpeg

    大致过程仍然和x86平台一致: ./configure xxxx make make install 所需要变化的是需要在 ./configure xxxx 后面多加几个编译选项 所加的几个编译配置说明: –arch=arm:指定ARM平台 –target-os=linux:指定Linux系统 –enable-cross-compile :指定交叉编译 –cross-prefix =arm-linux-gnueabihf-:参数后面跟着

    2024年04月15日
    浏览(25)
  • 查看mac是macOS x64还是macOS ARM64系统

    打开终端输入:

    2024年02月15日
    浏览(47)
  • windows10 64位系统,不能下载pycharm ARM64 的安装程序

    Other Versions - PyCharm 下载红框中上面一个,不知道这个arm64是什么意思?

    2024年02月09日
    浏览(52)
  • 在64位arm上安装ubuntu文件系统

    经过前两篇的步骤, 现在板子上已经有了系统内核镜像文件,就差提供一个内核可挂载的根文件系统了.  制作根文件系统的方式有很多种,  如果是第一次制作根文件系统建议使用busybox,  因为busybox整体结构比较简陋,  纯粹是提供了一些基础工具,  还需要开发者自己移植一些库

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包