文章目录

  • 基本计算平台
  • 硬件组件
  • 软件组件
  • CPU总线
  • 总线结构和协议
  • 四周期握手协议—最常见的总线协议
  • 典型的总线组件
  • 时序图
  • 总线读、写
  • 总线读
  • 总线写
  • 读操作的等待状态
  • 突发传输(Burst Transfer)
  • 分离式传输(非链接传输)
  • 状态机
  • 小数据束
  • DMA(直接存储器访问)
  • 总线主控器(Bus mastership)
  • DMA控制器
  • DMA操作
  • 系统总线配置
  • 桥的状态图
  • ARM AMBA 总线
  • 存储设备
  • RAM(Random-access memory)
  • 存储器系统结构
  • PC机上的内存
  • 存储器系统和存储器控制器
  • 通道与块
  • 计算平台的设计
  • 平台选择
  • 知识产权(Intellectual property IP)
  • 开发环境
  • 宿主机/目标机设计方法
  • 基于主机的开发工具
  • Watchdog timer(看门狗定时器)
  • 调试技术
  • 断点
  • ARM设置断点
  • 断点处理的动作
  • LED灯
  • 内部仿真器 (ICE)
  • JTAG仿真器
  • 逻辑分析器(Logic analyzers)
  • 系统层的性能分析
  • 带宽与性能
  • 带宽与数据的传输
  • 总线的带宽
  • 突发传输的带宽
  • 内存的带宽问题---内存的长宽比(64M)
  • 内存的访问时间
  • 练习题


基本计算平台

  • 微处理器、I/O设备和存储器
  • CPU总线连接设备
  • 提供实现嵌入式应用的环境
  • 硬件和软件

硬件组件

  • CPU:提供基本的计算能力
  • RAM:用于存储程序和数据
  • ROM:保存引导程序和一些永久的数据
  • DMA:控制器提供直接内存访问功能
  • 计时器:被OS用于各种目的
  • 高速总线:高速设备与其它设备通讯
  • 低速总线:连接较简单的设备

嵌入式计算机架构 嵌入式计算机平台_时钟周期

软件组件

  • 层次图:描述系统不同软件组件之间的关系
  • 硬件开发商提供一系列基本的软件平台组件
  • HAL:硬件基本抽象
  • 平台软件提供核心功能和应用;
  • 底层功能依赖于架构——中断矢量表

嵌入式计算机架构 嵌入式计算机平台_数据_02

CPU总线

  • 总线(bus)是CPU与存储器、设备通讯的机制
  • 共享通讯介质
  • 总线是:
  • 一束电线
  • 通讯协议
  • 协议通常通过状态机来说明
  • 异步逻辑行为
  • 多种总线的目的:
  • 将设备分配到不同总线,可以减少负载,提高总线的利用率
  • 低速总线相对于高速总线简单成本低,同时低速设备连接到高速总线不能提高性能
  • 数据传输
  • 组件之间的数据传输
  • CPU与存储器之间
  • CPU与I/O设备之间
  • 存储器与存储器之间
  • 存储器与I/O设备之间
  • 采用的方式
  • 基本:CPU执行相关指令
  • 直接存储器存取(DMA)

总线结构和协议

嵌入式计算机架构 嵌入式计算机平台_突发传输_03

  • 总线包括:数据、地址、时钟和控制信号
  • CPU是总线主控器,启动所有传输
  • DMA允许其它设备暂时为总线主控器,传输数据无CPU参与

四周期握手协议—最常见的总线协议

嵌入式计算机架构 嵌入式计算机平台_嵌入式计算机架构_04

  1. 设备1提出请求
  2. 设备2响应该请求
  3. 一旦数据传送完成,设备2发出接收完数据的信号
  4. 设备1结束请求

典型的总线组件

  • 嵌入式计算机架构 嵌入式计算机平台_嵌入式计算机架构_05:时钟,用于同步总线组件
  • 嵌入式计算机架构 嵌入式计算机平台_时钟周期_06:总线的读或写
  • 嵌入式计算机架构 嵌入式计算机平台_时钟周期_07:地址总线,一束信号线
  • 嵌入式计算机架构 嵌入式计算机平台_数据_08:数据总线,一束信号线
  • 嵌入式计算机架构 嵌入式计算机平台_突发传输_09:数据就绪

时序图

嵌入式计算机架构 嵌入式计算机平台_时钟周期_10

  • 时序图表示总线上信号如何随时间变化
  • 稳态:示波器可测出
  • 变化态
  • 时序图有时又叫时序约束
  • 事件发生时间差:A为高电平,至少10ns,B才会变为稳态
  • 事件顺序:B在C之前达到稳态

总线读、写

嵌入式计算机架构 嵌入式计算机平台_突发传输_11

总线读

嵌入式计算机架构 嵌入式计算机平台_时钟周期_12

  • 时钟信号上升沿,设置地址使能信号,地址线上设置所需地址值;嵌入式计算机架构 嵌入式计算机平台_数据_13表示读
  • 在第一个时钟周期后,外设将相应地址的数据传送至数据线,数据准备线使能
  • CPU读取数据,在第二个时钟周期末,撤去地址线上的地址,外设清除数据线上的数据值。
总线写

嵌入式计算机架构 嵌入式计算机平台_时钟周期_14

  • 时钟信号上升沿,设置地址使能信号,地址线上设置所需值;嵌入式计算机架构 嵌入式计算机平台_突发传输_15表示写
  • 在第一个时钟周期后,CPU 将数据传送至数据线,数据准备线使能
  • 外设向相应地址的存储单元写数据,在第二个时钟周期末,撤去地址线上的地址,并清除数据线上的数据。
读操作的等待状态

嵌入式计算机架构 嵌入式计算机平台_嵌入式计算机架构_16

  • 总线连接速度比它慢的设备
  • 等待状态通常用于将慢速、廉价的存储器连到总线上
  • 等待状态:数据可以被读取的最早时间与真正被读取的时间之间的周期

突发传输(Burst Transfer)

嵌入式计算机架构 嵌入式计算机平台_数据_17

  • 收到一个地址,传输一个数据序列
  • 增加一根线路:Burst,低电平有效

分离式传输(非链接传输)

  • 请求和响应是分开的
  • 第一个操作是请求传输
  • 然后总线可以做其它操作
  • 等数据准备好后,传输随后开始

状态机

  • 状态机是对时序图的一个有用的补充
  • 关注控制信号的转换

小数据束

  • 一些总线的数据束比CPU的字小。使用较少的数据线可以降低芯片成本
  • 如何形成数据或地址
    • 通过CPU总线逻辑把它们组合成地址或数据

DMA(直接存储器访问)

  • 标准总线操作,数据的读与写需CPU参与,有些则无需CPU的参与,如DMA
  • Direct memory access (DMA) 无需CPU的加入来完成数据的传输
    • CPU 设置传输
    • DMA 直接完成设备与主存的读写操作
  • 需要一个DMA控制单元

嵌入式计算机架构 嵌入式计算机平台_时钟周期_18

总线主控器(Bus mastership)

  • 总线主控器是能够启动自己总线传输的设备
  • 缺省时,CPU是总线主控器,并初始化传输
  • DMA可以成为总线主控器来完成传输
    • DMA 成为总线主控器时,CPU不能使用总线
  • 通过四周期握手协议获得总线主控器
    • 总线请求(Bus request):是CPU的输入信号,通过它DMA控制器请求总线所有权
    • 总线授权(Bus grant):信号表示总线已经授权给DMA

DMA控制器

  • CPU通过DMA控制器的寄存器来控制DMA
    • 起始地址寄存器:指明传输从何处开始
    • 长度寄存器:指明将要传输的字的数目
    • 状态寄存器:用于CPU操作DMA控制器
    • 嵌入式计算机架构 嵌入式计算机平台_数据_19


DMA操作

  • CPU 设置 DMA寄存器,如开始地址,要读写的长度
  • DMA 状态寄存器允许CPU操作DMA控制器
  • 一旦DMA成为总线主控制器,它就自动传输
    • 可以连续传输直到传输完成
    • 也可以使用几个总线周期

嵌入式计算机架构 嵌入式计算机平台_突发传输_20

系统总线配置

  • 多条总线允许并行:
    • 慢的设备连到一个总线上.
    • 快的设备连到另一个总线上
  • 通过桥(bridge)将它们连接起来.
    • 速度接近,通过状态机连接
    • 速度相差大,需要寄存器暂存数据
  • 使用多总线和桥的原因:
    • 越高速的总线通常提供越宽的数据连接
    • 高速总线通常要更昂贵的电路和连接器。使用较慢、较便宜的总线可以降低设备成本
    • 桥允许总线独立操作,这样在I/O操作中可以提供某些并行性

嵌入式计算机架构 嵌入式计算机平台_嵌入式计算机架构_21

桥的状态图

嵌入式计算机架构 嵌入式计算机平台_数据_22

  • 上半部分从快速总线到低速总线写入
  • 下半部分从低速总线读取,并写入快速总线

ARM AMBA 总线

嵌入式计算机架构 嵌入式计算机平台_嵌入式计算机架构_23

  • ARM为单芯片系统创建一个独立的总线规格说明:AMBA
  • AMBA有两类总线:
    • AHB 高性能总线.
    • APB 低速总线.
  • AHB 支持流水线技术、突发传输、分离事件和多总线主控制器.
  • 连接到APB上的所有设备都是隶属设备.
    • 不执行流水线操作
    • 简化总线逻辑
存储设备

嵌入式计算机架构 嵌入式计算机平台_突发传输_24

  • 类型:
    • DRAM:动态随机存储器.
    • SRAM:静态随机存储器.
    • Flash:闪存,为ROM,但允许芯片在标准系统内部再编程.
  • 存储器的变化:
    • 基本结构简单.
    • 二维阵列,行地址和列地址

RAM(Random-access memory)

  • RAM可以被读和写。它们被称为随机存取是因为它们可以按照任意顺序访问。

  • 动态RAM,DRAM,密度大、定期刷新

    • SDRAM: 同步 DRAM.
    • EDO DRAM: 扩展数据输出.
    • FPM DRAM: 快速页面模式.
    • DDR DRAM: 双倍数据速率.
  • SRAM(Static RAM )快速、密度小,消耗更多的能量.

  • SDRAM 读操作:

    • SDRAM 使用RAS 和 CAS信号将地址分成两部分,从而选择正确的行和列

嵌入式计算机架构 嵌入式计算机平台_突发传输_25

存储器系统结构

PC机上的内存

  • SIMM(Single In-line Memory Modules): 单列直插内存模块.
  • DIMM (Double In-line Memory Modules) :双列直插内存模块.
  • 都是一块小电路板,插入到标准的内存插槽中
  • 为其提供所需的存储空间

存储器系统和存储器控制器

  • 存储器芯片复杂的结构
  • 存储器控制器连接CPU和存储器
    • 存储器控制器屏蔽了内存单元的详细时序

嵌入式计算机架构 嵌入式计算机平台_突发传输_26

通道与块

嵌入式计算机架构 嵌入式计算机平台_嵌入式计算机架构_27

  • 包含多个不同组件
  • 控制器管理这些组件
    • 调度问题
  • 提供存储器并行性
    • 通道:连接到一组存储器组件
    • 支持多通道
    • 块(Bank)是独立的存储阵列.
计算平台的设计
  • 创建一个可行的嵌入式系统
    • 平台及组成
    • 有效的利用平台

平台选择

  • 硬件的选择,包含元素:
    • CPU;
    • bus;
    • memory;
    • I/O 设备: 网络,传感器, 激励器 etc.
  • 软件体系结构的基本任务——划分
    • 按照操作的主要方式和设备的功能划分
    • 功能是在I/O设备中实现
      • 简单、不昂贵的设备,需要更多的软件实现
      • 更复杂、更昂贵的设备上可以自动执行更多的功能
    • 利于实现、测试和修改
  • 硬件与软件的相关性:
    • 软件没有硬件是无法运行的;
    • 需要什么样的硬件取决于软件的需求:
      • 速度;
      • 内存.

知识产权(Intellectual property IP)

  • 硬件的设计、源或者目标代码、网表etc.
  • 应用在设计的所有层上:
    • 硬件设计的原理图.
    • 驱动和运行时库.
    • 软件开发环境.
  • IP的来源
    • 购买厂家的IP
    • 在线开发者团队购买

开发环境

宿主机/目标机设计方法

  • 用主机系统(通常是PC机,宿主机)为目标机开发软件
  • 主机的工作
    • 将程序装载到目标机上
    • 启动或停止目标机的程序
    • 检测内存和CPU的寄存器
    • 嵌入式计算机架构 嵌入式计算机平台_时钟周期_28


基于主机的开发工具

  • 交叉编译器(Cross compiler):
    • 交叉编译:在一类机器上运行,却为另一类机器生成代码
  • 交叉调试:
    • 在主机上显示目标机的状态,允许主机控制目标机.

Watchdog timer(看门狗定时器)

  • 看门狗定时器监控软件的正确运行
  • 看门狗被系统时钟周期性的复位
  • 若看门狗没有被复位,则将产生一个复位信号给CPU
  • 嵌入式计算机架构 嵌入式计算机平台_突发传输_29


调试技术

断点

  • 一个断点允许用户停止执行、检查系统的状态并可以改变状态
  • 断点的实现:用监控程序的子例程调用简单的替换断点处的指令。

ARM设置断点

嵌入式计算机架构 嵌入式计算机平台_突发传输_30

断点处理的动作

  • 保存寄存器
  • 允许用户检查CPU的状态
  • 返回前,必须恢复系统的状态
    • 删除断点,原先的指令被简单的恢复
    • 若断点保留,原来的指令被恢复的同时会将一个新的临时断点放在下一条指令处。

LED灯

  • 在调式中的重要性。
  • 在串行端口,LED指示系统的状态。

内部仿真器 (ICE)

  • 专用的硬件工具,帮助调试软件
  • 微处理器的一个特殊版本
  • 当它停止时,其内部寄存器的内容可以被读出

JTAG仿真器

  • JTAG 仿真器也称为 JTAG 调试器,是通过 ARM 芯片的 JTAG 边界扫描口进行调试的设备。
  • JTAG 仿真器比较便宜,连接比较方便,无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。
  • JTAG 调试的目标程序是在目标板上执行,仿真更接近于目标硬件。
  • 使用集成开发环境配合 JTAG 仿真器进行开发是目前采用最多的一种调试方式。

逻辑分析器(Logic analyzers)

  • 可以看成是一组低成本的示波器:
    • 同时采样多个信号
    • 把信号上的值纪录,并在显示器上显示
    • 2种模式:
      • 状态模式:面向过程问题中的调试,系统自带时钟,每个时钟周期采用一个信号
      • 定时模式:采用内部时钟,频率高,每个时钟阶段抽取多个样本

嵌入式计算机架构 嵌入式计算机平台_时钟周期_31

系统层的性能分析
  • 依赖于系统的各个元素
    • CPU.
    • Cache.
    • 总线.
    • 内存.
    • I/O 设备.
    • 嵌入式计算机架构 嵌入式计算机平台_时钟周期_32


带宽与性能

  • 带宽:数据传输的速率
  • 带宽应用到下面的部件:
    • 内存.
    • Bus.
    • CPU .
  • 系统的不同部件应用到不同的时钟频率上.
  • 不同的部件有不同的带宽 (bus, memory).

带宽与数据的传输

  • 视频一帧: 320 x 240 x 3 = 230,400 bytes.
    • 在 1/30 秒=0.033 秒通过一帧.
  • 若传输速度 嵌入式计算机架构 嵌入式计算机平台_嵌入式计算机架构_33嵌入式计算机架构 嵌入式计算机平台_数据_34嵌入式计算机架构 嵌入式计算机平台_数据_35, 则0.23 秒每帧.
    • 太慢.
  • 增加带宽:
    • 增加总线的宽度.
    • 增加总线时钟的频率.

总线的带宽

嵌入式计算机架构 嵌入式计算机平台_突发传输_36

  • T: 总线的周期数.
  • P: 总线时钟周期time/bus_cycle.
  • 总的传输时间:
    • t = TP.
  • W:基本总线宽度,字节单位.
  • N:传送的字节数
  • D: 传输W字节宽的数据消耗D个时钟周期.
  • 额外消耗:O=O1 + O2

突发传输的带宽

嵌入式计算机架构 嵌入式计算机平台_时钟周期_37

  • T: 总线的周期数.
  • P: 总线时钟周期time/bus_cycle.
  • 总的传输时间:
    • t = TP.
  • W:基本总线宽度,字节单位.
  • N:传送的字节数
  • B: 一次突发传送连续执行了B次传输.
  • D: 传输W字节宽的数据消耗D个时钟周期.
  • 额外消耗:O=O1 + O2

内存的带宽问题—内存的长宽比(64M)

嵌入式计算机架构 嵌入式计算机平台_突发传输_38

  • 存储器类型可改变存储器带宽
  • 改变数据类型来适应存储器
  • 相同尺寸的存储器具有不同的长宽比
    • 64M存储器
  • 存储器没有非常宽的长宽比
  • 并行数块芯片获得更宽的存储器

内存的访问时间

  • 数据类型与存储器宽度不匹配.
    • 传输一个24位的标准像素:
      • 24位的带宽的存储器允许一次读写一个完整的像素值
      • 8位的带宽存储器则要访问3次
      • 32位的存储器?
        • 两种选择:浪费空间或者像素打包
练习题
  1. 为写入4个单元的突发写操作绘制一个时序图


  1. 绘制时序图
    a.设备成为总线主控的过程。
    b.设备将总线控制权返回给CPU的过程


  1. 给你一个内存系统,其中系统开销记为O(O=2),单字传输时间为1(无等待状态)。你将使用这个内存系统执行1024个单元的传输,尝试给出传输总需时钟周期总数T与单次突发传输字节大小B(1<=B<=8)的函数关系,并画出函数曲线。
T = (BD + O) * (1024 / B)

嵌入式计算机架构 嵌入式计算机平台_突发传输_39

  1. 单字传输时间为1,单字传输开销为O = 1,一次突发传输开销为 O = 3, 总的传输量为两字节。

故两次单字传输时间为:T = 2*2 = 4
一次突发传输时间为:T = ( 2 * 1 + 3 ) * ( 2 / 2 ) = 5
因此选择两次单字传输更为快捷。