ustcanycall / OS

0 stars 0 forks source link

调研2 #3

Open ustcanycall opened 11 years ago

ustcanycall commented 11 years ago

一.影响流水线性能发挥的因素有哪些

ARM微处理器支持7种运行模式,分别为:   

  1. 用户模式(usr):ARM处理器正常的程序执行状态。   
  2. 快速中断模式(fiq):用于高速数据传输或通道处理。   
  3. 外部中断模式(irq):用于通用的中断处理。   
  4. 管理模式(svc):操作系统使用的保护模式。   
  5. 数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。  
  6. 系统模式(sys):运行具有特权的操作系统任务。   
  7. 定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
    • tips:除了用户模式以外,其他6种处理器模式可以称为特权模式,在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。

例如正在用户模式下运行的程序需要处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。当一个异常出现以后,ARM微处理器会执行以下几步操作:

进入异常处理的基本步骤:

  1. 将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。根据异常类型,强制设置CPSR的运行模式位。
  2. 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。

异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:

  1. 将连接寄存器LR的值减去相应的偏移量后送到PC中。
  2. 将SPSR复制回CPSR中。
  3. 若在进入异常处理时设置了中断禁止位,要在此清除。

    分析ARM处理器的中断响应时间

中断响应时间定义为从中断触发到中断服务程序入口点所经历的时间。 以FIQ中断为例,最坏情况下的中断响应时间(即最长响应时间)由下列时间段组成:

  1. 中断请求信号通过同步器的时间Tsyncmax ;
  2. 完成当前正在处理的指令的时间Tldm ;
  3. 取数异常的处理时间Texc ;
  4. FIQ中断服务程序入口时间Tfiq。 由此可得,FIQ的最长响应时间为28个处理器时钟周期。 若处理器的时钟频率为20 MHz,则最长响应时间约1.4 µs。 IRQ 的最长响应时间计算与此类似,但需要注意的是,FIQ比IRQ的优先级高,可能会延迟系统对IRQ的响应,延迟时间取决于FIQ中断服务程序的执行时间。