E906的中断系统|学习笔记

简介: 快速学习 E906的中断系统

开发者学堂课程【高校精品课-大连理工大学-计算机组织与结构:E906的中断系统】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/3/detail/16055


E906的中断系统

 

内容介绍

一、E906的中断系统

二、E906实现的 Click 单元基本功能

三、E906的中断架构

 

一、E906的中断系统

E906的中断系统包括两个主要的部分,处理器局部中断和核内局部中断。

image.png

在这张图中最外侧的大方框是 SoC,即处理器芯片。内部的白色方框是E906核,在里面画出处理器局部中断叫做Clint,还有核内局部中断的控制器叫做 Click。E906支持多种不同类型的中断,比如软件中断是由 E906内部发出的由Clint 处理,还有外部计时器中断也由 Clint 来处理。注意虽然他称作外部计时器,但是这个外部指的是对 E906而言是外部,这个计时器中断的中断源其实还是在 SoC 的内部。Click 主要是用来处理外部中断,这个外部中断包括整个处理器芯片外部发起的中断以及soc内部E906外部发起的中断,是在最右侧的外部中断。

E906处理器局部中断实现了处理器的局部中断,简称做 Clint,包括软件中断和计时器中断,这个模块式设计在紧耦合 IP 部分。E906实现了核内局部中断控制器称作 Click,支持最多240个外部中断,用于对中断源进行采样优先级仲裁和分发,这就是 Click 的功能。

第一种中断软件中断 Clint 可用于软件配置产生软件中断,机器模式软件中断是由机器模式软件中断配置寄存器来进行控制。

image.png

在这个字当中,右侧是低位左侧是高位,右侧的第零位这个写作 MSIP 就是当前这个寄存器的最低位,当他置1的时候表示当前存在有效的机器模式软件中断请求,他置0的时候表示当前不存在有效的机器模式的软件中断。

计时器中断

ロ CLINT 可用于生成机器模式计时器中断,该计时器中断需要搭配 E906外部由系统设计实现的64位计数器使用,其值可被读取到 E906内部的系统计数器当前值寄存器中。

-E906内部设计实现了一个64位的机器模式计时器比较值寄存器。

--CLINT 通过比较以上两个寄存器值,确定是否产生中断

系统计数器当前值寄存器≥机器模式计时器比较值寄存器

Clint 也可以产生计时器的中断,这个计时器中断需要搭配 E906外部由系统设计实现的64位的计数器来使用,它的值可以被读取到E906内部的叫做系统计数器当前值寄存器,这是一个当前计数器的值,同时在 E906内部还设计实现了一个同样64位的叫做机器模式,计时器比较值寄存器,当前这个中断是否产生是由这两个寄存器的值做对比来产生,所以Clint 通过比较以上两个寄存器的值确定是否产生中断,当前值大于等于比较值,这个时候就会产生计时器中断。

 image.png

 

二、E906实现的 Click 单元的基本功能

支持 RISC-V 标准的clic spec-0.8,最多支持240个外部中断源可配,支持电瓶和脉冲中断,兼容 Clint 的最多16个中断,一共支持256个中断处理。

下面就是 Click 用到的典型的一些控制寄存器的定义。

 image.png

前三行是所有外部中断共用的寄存器,后面四行每一个外部中断都有下面四个寄存器。CLICCFG 是一个八位的全局配置寄存器,定义了支持的中断响应特权态以及是否支持硬件矢量中断。中断信息寄存器是一个只读存储器里面提供了Click 的部分信息,包括 Click 的架构版本信息、修改版本信息以及该 Click 控制器硬件支持的中断源个数最多可以达到256个。

中断阈值寄存器定义了当前处于等待状态的中断请求,能够像 CPU 流水线核心发起中断请求的优先级临界值,处于等待状态的中断请求的优先级必须高于该寄存器定义的阈值才能像处理器发起中断,中断等待寄存器,该寄存器的最低位备置位表示对应的中断源有中断请求等待被处理。中断使能寄存器的最低位备置位表示对应的中断源被使能在满足条件的情况下,CPU 可响应该中断。中断属性计算器用于配置不同的中断源的属性包括了可响应中断的 CPU 特权探中断的触发模式以及中断是否有硬件矢量模式。中断控制寄存器用于表示每一个中断源参与仲裁的优先级。

 

三、E906的中断架构

 image.png

最外侧是 SoC,白色部是 E906处理器内核,它里面有处理器局部中断 Clint 还有核内局部终端控制器 Click,上面这个Clint 会处理软件中断和外部计数器的中断,下面这个 Click 负责处理外部中断,包括芯片外部的中断和 E906和外部的中断。

它内部包含有三个共用的寄存器以及每一个外部中断单独配有的四个控制寄存器。

相关文章
|
7月前
|
Linux
中断系列第二篇:中断的使用场景?
中断系列第二篇:中断的使用场景?
151 0
|
传感器 调度
什么是中断系统?
一、什么是中断系统 中断系统是计算机系统中的一种机制,它允许外部设备和程序请求处理器的注意力,以便进行特定的操作。当一个中断请求被触发时,处理器会暂停当前正在执行的程序,转而执行与中断相关的程序或服务例程。中断系统可以提高计算机系统的效率和响应速度,因为它允许处理器在等待某些事件的同时执行其他任务。常见的中断包括硬件中断(例如键盘输入、鼠标移动、网络数据传输等)和软件中断(例如操作系统调度、系统调用等)。 二、中断系统的特点 中断系统具有以下特点: 1. 实时性:中断系统能够及时响应外部设备的请求,提高计算机系统的响应速度和效率。 2. 可靠性:中断系统能够保证中断请求的可靠性,确保外部设备的
293 0
定时中断实验【嵌入式系统】
定时中断实验【嵌入式系统】
109 0
|
C语言
《计算机操作系统-第三章》之中断与系统调用
《计算机操作系统-第三章》之中断与系统调用
294 0
【C51单片机】中断系统之单一外中断应用
【C51单片机】中断系统之单一外中断应用
|
内存技术
【嵌入式】位带操作+咬尾中断+晚到中断 解析
位带操作 什么是位带操作? 对32MB SRAM 别名区的访问映射为对1MB SRAM的bit-band 区的访问。 对32MB 外设别名区的访问映射为对1MB 外设bit-band 区的访问。
777 0
|
存储 芯片 开发者
E906的异常和中断|学习笔记
快速学习 E906的异常和中断
854 0
E906的异常和中断|学习笔记
详解中断系统
本文针对地详解了中断系统
276 0
|
芯片
中断系统结构及中断控制详解
本文详解了中断系统结构及中断控制。
534 0
|
芯片
【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )(一)
【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )(一)
835 0
【嵌入式开发】ARM 关闭中断 ( CPRS 中断控制位 | 中断使能寄存器 | 中断屏蔽寄存器 | 关闭中断 | 汇编代码编写 )(一)