总线、IO、中断讲述.ppt

这个图显示了中断机制的执行过程,输入输出完成后 * volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j = i; ... int k = i; volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据放在k中。 而优化做法是,由于编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在k中。而不是重新从i里面读。这样以来,如果i是一个寄存器变量或者表示一个端口数据就容易出错,所以说volatile可以保证对特殊地址的稳定访问,不会出错。 * ** 关于中断优先级的一些说明 * 例如:射频芯片 * 例如:射频芯片 * 比如存储单元控制,只有管态的情况下使用。不是每个CPU都有管态,ARM 有,但是很多DSP没有 异常比如说0做除数 陷阱:软件中断 * * * * 中断向量获取 :CPU :设备 收到 中断请求 收到 中断应答 收到 中断向量 中断执行过程 CPU 响应中断请求 设备发送中断向量 CPU 调用中断处理程序 执行中断处理程序 CPU恢复执行前台程序 中断开销 分支跳转及返回开销 额外的时钟周期应答中断和获取中断向量 寄存器的保存与恢复. 流水线相关的开销. Cache相关的开销. ARM interrupts ARM7 支持两种中断: 快速中断请求(FIQs). 一般中断请求(IRQs). 中断向量表保存在内存低地址部分,一般从 0 地址开始. 管态、异常和陷阱 管态:提供用户态不具有的特权指令,避免用户态时错误程序导致的系统安全保护 异常:CPU内部硬件检测到的错误事件,提供应付这类事件的一种机制;异常类似中断,必须有优先级 陷阱:也称软件中断,由程序指令触发进入某种预先定义处理的机制,如进入CPU管态 协处理器 在指令系统层次上提供CPU之外的特殊处理硬件:如浮点运算协处理器 预留操作码 CPU收到协处理器指令时激活该协处理器,并传输该指令 协处理器负责特殊处理过程,CPU等待或者继续运行 在无协处理器情形下,CPU用软件实现相同功能 ARM中的协处理器 最多16个协处理器 浮点处理器:1、2号协处理器 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 这些设备构成了一个系统,这些部件之间需要数据传输,才能协调工作,完成任务。 总线,把CPU和各种设备连接起来。各种总线的作用。 刚才我们所说的计算机的最基本的组成原理,不是一台真是的计算机。这些概念中的部件和我们真实的计算机硬件是如何对应的呢? * 哪些是系统总线哪些是外部总线? * input/output?输入/输出,电脑上的所有插孔都可以叫I/O端口。 为了数据的传输的,CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为 I/O接口,而后者则被称为存储器接口。 标准化 种类有限,外设的的种类有限。 * * 高速总线提供更宽的数据连接 高速总线的电路和连接器比较贵,施工较慢、较便宜的总线可以降低成本 桥允许总线独立操作,这样在I/O操作中可以提供一些并行性 * 拿手环来说,嵌入式系统都是根据应用定制的,手环上有蓝牙芯片、惯性导航传感器、 * 外设有机械式的、电子式的或机电式的,它们的工作速度通常比高速的CPU要低得多,而且各种外设的工作速度互不相同,因而要求I/O接口对输入输出过程能起一个缓冲和联络的作用。 外设提供的信号类型既有数字信号也有连续变化的模拟信号,例如在测量温度时,传感器送出的可能是模拟信号。另外有些外设的信号电平与主机也不相同,因而要求I/O接口对信号类型和信号电平进行转换。 CPU系统总线传送的是并行数据,而有的外设是按位串行传送数据,因而要求I/O接口进行串-并数据格式的转换。另外,如Intel8086CPU字长为16位,而外设数据格式为8位,因而需要对数据格式进行组装或分解。 主机和外设通常按照各自独立的时序进行工作,因而为了协调它们之间的信息交换,I/O接口往往需要进行缓冲暂存

文档评论(0)

1亿VIP精品文档

相关文档