exynos4412中文手册(9.1节)

9.1 综述

GIC(一般中断控制)是在系统中支持和管理中断的集中资源。

GIC提供:

  • 管理中断源,中断工作方式,多处理器中断路由选择的寄存器
  • 支持
  1. ARM架构安全扩展
  2. 从硬件中断源使能、禁止使能、产生处理器中断
  3. 产生软件中断
  4. 中断屏蔽功能和优先级处理功能
GIC在系统级声明中断并且发送适当的信号到每一个级联的处理器,当GIC执行安全扩展,他能执行两种中断请求,架构声明这两种请求为IRQ和FIQ

9.1.1 特点

GIC的特点:

  • 支持3中中断类型
  1. 软件生成的中断(SGI)
  2. 私有外设中断(PPI)
  3. 公有外设中断(SPI)
  • 可编程中断支持配置
  1. 中断安全状态
  2. 中断优先级
  3. 使能或者禁止使能中断
  4. 接收中断处理

9.1.2 安全扩展支持

ARM GIC架构安全扩展支持:
  • 确定每个中断安全与否
  • 使用IRQ或者FIQ异常请求产生安全中断到目标处理器
  • 使用统一格式处理安全或者非安全中断
  • 可选择锁定一些安全中断的配置
包括安全扩展的执行:
  • 系统软件单独的定义每个执行中断是否安全
  • 在GIC中,处理器访问寄存器的行为依赖于访问是否安全,当访问GIC寄存器时:
         -对于一个安全中断,用非安全方式读取存有状态信息的寄存器字段将返回0
 -GIC忽略任何非安全的对存有状态信息的寄存器字段的写操作
非安全访问只能读或者配置非安全中断,安全访问能读或者配置安全与非安全中断
  • 一个非安全中断对目标处理器产生一个IRQ中断请求
  • 一个安全中断能对目标处理器产生一个IRQ或者FIQ

9.1.3 具体执行可配置特征

执行GIC期间,依赖于配置的特征如下:
  • Exynos4412 GIC 配置
  • 一共160个中断被支持,包括软件中断,私有设备中断和共享设备中断
  • SPI中,你可以满足32*4=128个中断请求
  • 表9-1描述了GIC配置值

exynos4412中文手册(9.1节)_第1张图片

9.1.4 术语

章节包括:
  • 中断状态
  • 中断类型
  • 中断处理模型
  • 处理器安全状态与GIC的安全、非安全访问
  • 模块

9.1.4.1 中断状态

在系统中支持的GIC与每个处理器之间的接口状态包括:
  • 非执行:中断处于不动作或者挂起状态
  • 挂起:硬件声明或者软件生成的一个中断从源到GIC被识别到,它等待目标处理器的服务
  • 执行:从源到GIC的中断被处理器识别,并被服务,但未完成
  • 执行和挂起:处理器正在服务中断并且GIC挂起了相同源上的中断

9.1.4.2 中断类型

执行这种GIC架构的的设备能管理如下中断类型:
  • 外设中断:信号声明这种中断到GIC,GIC架构定义的中断外设中断类型包括:
  1. PPI:外设中断特定于一个单处理器
  2. SPI:外设中断利用路由功能可寻址于任何一个连接的的处理器
  3. 每个外设中断是电压触发或者边沿触发的
  • 边沿触发:当探测到中断信号的边沿变化时,中断被声明,这是无论电压高低,直到相同的条件发生时,声明被清除
  • 电压触发:当电压变为高时,中断被声明,电压变低时,清除声明 

9.1.4.2.1 软件中断

向GIC中的指定寄存器写入值会产生软件中断,系统利用软件中断为处理器之间的通信服务。软件中断具有边沿触发的特性,外设输入时,软件触发的中断等效于边沿信号触发的中断。多处理器处理中断有两种模型:
  • 1-N模型:只有一个处理器处理这个中断,系统必须植入一个设备决定哪个处理器处理处理这个中断
  • N-N模型:每个处理器独立的接受中断,当处理器识别到一个中断,这个中断的挂起状态针对于这个处理器被清除,但是其他处理器依然保持挂起状态

9.1.4.3 伪中断

可能GIC产生到一个处理器的中断不被需要了,所以当处理器认识到中断的时候,GIC返回一个特殊的中断ID以确定这个中断是一个伪中断
产生的原因如下:
  • 中断状态的变化
  • 软件重新编写了GIC,改变了中断处理需求
  • 中断工作在1-N模式,但是其他处理器识别到了中断

9.1.4.4 处理器安全状态与GIC安全非安全访问

执行ARM安全扩展的处理器会有一种安全状态:
安全或者非安全:
  • 处理器处于非安全状态只能进行非安全访问GIC
  • 处理器处于安全状态能进行安全与非安全访问GIC
  • 运行在非安全状态下的软件被描述成非安全软件
  • 运行在安全状态下的软件被描述成安全软件

9.1.4.5 块

这个章节包括:
  • 中断块
  • 寄存器块

9.1.4.5.1 中断块

在多处理器中,PPIS,SGIs,GIC能在相同的中断ID下拥有多种中断。这种中断被称为块中断,当结合它的中断ID和它的CPU接口时,它被唯一的识别

9.1.4.5.2 寄存器块

寄存器块指的是对相同地址的寄存器执行多重拷贝,这会发生在如下情况:
  • 相对于块中断的的寄存器的多处理器执行
  • 在安全扩展模式下的GIC,寄存器执行了安全与非安全的两种拷贝

你可能感兴趣的:(翻译)