490 likes | 697 Views
第二章 基础知识 1. 大连理工大学 丁男. 章节安排. 2.1 嵌入式系统的硬件基础 2.1.1 基于 ARM 技术的嵌入式系统硬件架构 2.1.2 硬件系统基本体系结构原理. 2.1 嵌入式系统的硬件基础. 1990 年,英国一位叫 罗宾 . 沙科斯比 的人离开了摩托罗拉与另外 12 名工程师一起开始了创业之旅,于是就有了现在的 ARM 公司。 公司正式成立于 1991 年 11 月,全称是 : A dvanced R ISC M achines Limited 。
E N D
第二章 基础知识1 大连理工大学 丁男
章节安排 • 2.1 嵌入式系统的硬件基础 • 2.1.1 基于ARM技术的嵌入式系统硬件架构 • 2.1.2 硬件系统基本体系结构原理
2.1 嵌入式系统的硬件基础 • 1990年,英国一位叫罗宾.沙科斯比的人离开了摩托罗拉与另外12名工程师一起开始了创业之旅,于是就有了现在的ARM公司。 • 公司正式成立于1991年11月,全称是:Advanced RISC Machines Limited 。 • ARM 公司的总部位于英国剑桥,它拥有 1700 多名员工 ARM联合创始人 赫曼 奥塞尔 (Hermann Hauser)
ARM公司特点 • 全球领先的原始设备制造商 (OEM) 都在广泛使用 ARM 技术,应用领域涉及手机、数字机顶盒以及汽车制动系统和网络路由器。 • 当今,全球 95% 以上的手机以及超过四分之一的电子设备都在使用 ARM 技术。 公司的业务是一个纯粹的知识产权的贩卖者,没有硬件,没有软件,只有图纸上的知识产权。
ARM公司的优势 • 全球领先的半导体 IP 公司; • 已销售了超过 150 亿枚基于 ARM 的芯片; • 向 200 多家公司出售了 600 个处理器许可证; • 获得了所有基于 ARM 的芯片的版税; • 赢得了长期成长型市场的市场份额; • ARM 的收益增速通常要比整个半导体行业快;
ARM处理器现状 基于ARM架构的微处理器在市场上占有众多份额,并被不同的具有IP的公司生产为不同型号和封装格式的嵌入式微处理器。 半导体厂商或片上系统SoC设计应用厂商采用ARM架构来生产相应的MPU或SoC芯片。 ARM系统设计人员在MPU或SoC芯片的基础上根据实际需求再进行硬件系统一级的扩展和软件系统的裁剪和应用程序的编写。
ARM微处理器特点(1) • 大量使用寄存器 • 使内部的代码和实时内核的执行时间减少到最低限度。结构上采用RISC结构形式。 • 具有功能很强的存储区保护功能 这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用。 • 支持ARM (32位) 和Thumb(16位)双指令集,兼容8位/16位器件。
ARM微处理器特点(2) • 可扩展的处理器结构 支持协处理器,可扩展出满足应用的最高性能的嵌入式微处理器。 • 小体积、低功耗、成本低、高性能 嵌入式处理器功耗很低,用于便携式的无线及移动的计算和通信设备中,电池供电的嵌入式系统需要功耗只有mW甚至μW级。
CISC RISC 价格 由硬件完成部分软件功能,硬件复杂性增加,芯片成本高 由软件完成部分硬件功能,软件复杂性增加,芯片成本低 性能 减少代码尺寸,增加指令的执行周期数 使用流水线降低指令的执行周期数,增加代码尺寸 指令集 大量的混杂型指令集,有简单快速的指令,也有复杂的多周期指令,符合HLL(high level language) 简单的单周期指令,在汇编指令方面有相应的CISC微代码指令 高级语言支持 硬件完成 软件完成 寻址模式 复杂的寻址模式,支持内存到内存寻址 简单的寻址模式,仅允许LOAD和STORE指令存取内存,其它所有的操作都基于寄存器到寄存器 控制单元 微码 直接执行 寄存器数目 寄存器较少 寄存器较多 RISC&CISC 嵌入式微处理器的指令系统可采用精简指令集系统RISC或复杂指令集系统CISC。
ARM微处理器的技术指标 • 功能 • 字宽 • 处理速度 • 工作温度 • 功耗 • 寻址能力 • 工艺和电磁兼容性指标等
ARM微处理器体系结构(1) • ALU • 与常用的ALU逻辑结构基本相同,由2个操作数锁存器、加法器、逻辑功能、结果及零检测逻辑构成。 • 高速乘法器 • 采用两位乘法并带有加1移位的方法来实现乘法。内部高速乘法器采用32位的结构,这样可以降低集成度。
ARM微处理器体系结构(2) • 桶形移位寄存器 • 采用32位的桶形移位寄存器,置于ALU的操作输入口前。使逻辑移位和算术移位等都可以在一个周期内完成。 • 由多路选择器、符号控制电路、移位寄存器和写选择电路等构成。 • 实现对累加器中的内容进行算术或逻辑移位、操作数的符号位扩展、对累加器进行归一化处理和多媒体数据压缩解压等功能。
2.1.2硬件系统基本体系结构原理 • 硬件系统体系结构: • 适当地组织在一起的一系列系统元素的集合。 • 是程序员所看到的硬件系统的属性,即概念性结构与功能特性。 主要分: 冯.诺依曼结构 哈佛结构
冯.诺依曼结构 • 冯.诺依曼结构计算机内部机构是由一个中央处理单元(CPU)和单存储空间组成。 • 存储空间存储了全部的数据和程序指令,它们内部使用单一的地址总线和数据总线。 • 当进行高速运算时,冯.诺依曼结构计算机不但不能同时进行取指令和取数据,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
冯·诺依曼体系存储器结构模型图 存储器 程序 指令0 指令1 指令2 指令3 指令4 数据 数据0 数据1 数据2
冯.诺依曼结构示意图 I/0 口 串行接口 并行接口 CPU DB AB 外部存储器 接 口 ROM RAM
哈佛体系结构 存储器分为数据和程序二个存储空间,有各自独立程序总线和数据总线,可以进行独立编址和独立访问。 特点: 数据和程序可以并行完成。 数据的吞吐量比上以中提高了大约一倍。 弱点是很难在哈佛机上编写出一个自修改的程序。 大部分DSP和ARM9微处理器都是采用这种哈佛体系结构。
哈佛体系存储系统结构图 控制器 程序存储器 地址 指令寄存器 指令0 指令1 指令 指令2 数据存储器 地址 数据0 数据通道 数据1 输出 输入 数据 数据2 中央处理器
(1)流水线技术 • 计算机中一条指令的执行可分为若干个阶段,由于每个阶段的操作相对都是独立的。 • 采用流水线的重叠技术大大提高系统的性能。 • 在流水线装满以后,几个指令可以并行执行。 嵌入式系统中采用的先进技术 取指 译码 执行add Add 取指 译码 执行sub Sub Cmp 取指 译码 执行cmp 时间
ARM9 架构采用5级流水线: 在ARM7基础上: • 增加了I-Cache和D-Cache,把存储器的取指与数据存取分开; • 增加了数据写回的专门通路和寄存器. 指令从存储器中取出,放入指令流水线 从寄存器中读取寄存器操作数 如需要则访问数据存储器。否则,ALU的结果简单地缓冲一个时钟周期 把一个操作数移位,产生ALU的结果 将指令产生的结果回写到寄存器
更多级的流水线 • ARM10采用了6级流水线。 • ARM11采用了8级流水线。
流水线的数据相关问题(1) 问题一:数据相关性冲突 当一条指令需要前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能会涉及流水线的数据相关,不得不产生停顿。 解决办法: 采用分离式指令Cache和数据Cache。该方法是取指和存储器的数据访问不再发生冲突,同时也解决了相应数据同一通道的问题。
流水线的数据相关问题(2) 问题二:控制相关性冲突 当流水线检测某条指令是分支指令,就要暂停分支指令之后的所有指令,直到分支指令确定了新的PC值为止。 解决办法: 指令预测,尽早判断分支转移是否成功,从而采取相应预测转移和延迟转移,以降低分支转移的损失。 有些ARM架构处理器流水线的译码阶段增加了一个专用加法器来计算分支的目的地址。
(2)超标量执行 • 通过重复设置多套指令执行部件,同时处理并完成多条指令,实现并行操作,来达到提高处理速度的目的。 • 超标量执行:超标量CPU利于采用多条流水线结构。 所有ARM内核,包括流行的ARM7、ARM9和ARM10等,都是单周期指令机。 ARM公司下一代处理器将是每周期能处理多重指令的超标量机。
(3)总线和总线桥 • 总线是CPU与存储器和设备通信的机制, • 是计算机各部件之间传送数据、地址和控制信息的公共通道。 片内总线或内部总线:连接CPU内部各主要功能部件 按相对于CPU位置划分 总线分类 片外总线:CPU与存储器(RAM和ROM)和I/O接口之间进行信息交换的通道 数据总线Dbus 按功能和信号类型 地址总线Abus 控制总线Cbus
总线概述 又称总线位宽,指的是总线能同时 传送数据的位数。如16位总线就是 具有16位数据传送能力。 总线宽度 总线的主要参数 总线带宽(单位:MB/s) =(总线宽度/8)× 总线频率 总线工作速度的一个重要参数, 工作频率越高,速度越快。 通常用MHz表示。 总线频率 • 如:总线宽度32位,频率66MHZ,则 • 总线带宽=(32/8)* 66MHz=264MB/s 又称总线的数据传送率,是指在一 定时间内总线上可传送的数据总量, 用每秒最大传送数据量来衡量。 总线带宽越宽,传输率越高。 总线带宽
总线概述 一个微处理器系统可能含有多条总线 原因: • 数据宽度:高速总线通常提供较宽的数据连接。 • 成本:高速总线通常采用更昂贵的电路和连接器。 • 桥允许总线独立操作,在I/O操作中可提供某些并行性。 高速总线 桥 低速总线 高速设备 低速设备 总线互联的电路
总线和总线桥示意图 CPU 低速设备 低速总线 高速总线 桥 低速设备 存储器 高速设备
嵌入式系统示意图 Micro- processor Cache Memory controller DMA controller Processor-local bus Peripheral Peripheral Peripheral Bridge Peripheral bus 嵌入式系统总线
AMBA总线-AHB 主单元 • 只有主单元可在任何时刻使用总线。 • AHB可以有一个或多个主单元。 • 主单元可以是RISC处理器、协处理器以及DMA控制器,以启动和控制总线操作。 • 可以响应读或写总线操作。 • 总线的从单元在给定的地址范围内对读写操作进行相应的反应。 • 从单元向主单元发出成功、失败信号或等待各种反馈信号。 • 从单元通常视其复杂程度不足以成为主单元的固定功能块,系统的其他外设也包含在AHB的从单元中。 • 用来确定控制总线是哪个主单元,以保证在任何时候只有一个主单元可以启动数据传输。 • 一般来说仲裁协议都是固定好的,例如最高优先级方法或平等方法,可根据实际的情况选择适当的仲裁协议。 从单元 AHB总线 仲裁器 • 总线译码器用于传输译码工作,提供传输过程中从单元的片选信号。 译码器
AMBA总线-桥 桥将系统总线AHB和APB连接起来,并执行下列功能:
嵌入式系统存储器系统组成 • 由寄存器、高速缓冲区Cache、主存储器和辅助存储器组成。 • 又可以分为片内存储系统和片外存储系统。 MPU 主存: SRAM、 DRAM等 寄存器 Cache 辅存: Flash、CF、SD、MMC等 片内RAM和ROM 片外存储 片内存储
(2)高速缓存(Cache) • 高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝(副本), 减少访问主存储器的所花的访问时间。 • 如在ARM9中使用的指令I-Cache和数据D-Cache。 数据 高速缓存控制器 Cache CPU 数据 主存 地址
Cache的组成和工作原理 来自CPU 主存地址 标志 块号 块内地址 修改标记 主 存 访标记 不命中 比较器 NO Cache 标记 Cache满 命中 替 换 算 法 Cache地址 块号 块内地址 访数据 Cache 数据 去CPU
Cache的组成和工作原理 • Cache中内容的放置常使用的方法: • 全相联映像 • 直接映像 • 组相联映像方式。 • 目前新的ARM建构处理器大多采用分块的全相联结构。 • ARM7采用的是4路组相联的8KB指令/数据Cache。
主存储器 Cache 存储器 字块0 标记 字块0 字块0 字块1 字块1 标记 … … 字块2c-1 标记 字块2c-1 … 字块2m-1 ①全相联映像方式 全相联映像方式最灵活。成本最高。实际中较少使用。 主存中的任一块可以映象到缓存中的任一块。 允许从确实已被占满的Cache存储器中替换出任何一个旧字块。 主要问题 它的标记位数要多,为主存总位数 减去块内的位数,这样会使Cache标记容量加大。 在访问Cache时,需要和Cache的全部标记进行比较,才能判断出其地址内容是否已在 Cache中。 缺点:标字位多,所用硬件成本高。 Cache地址=c位+b位 主存地址= m位+b位 具体操作 需要设立一个块号对照表,凡已装入Cache 中的主存块号其标识位都要置1,以便快速使用 Cache字块标记c 字块内地址b 主存字块标记m= t + c位 字块内地址b 二者位数差值 t=m-c位。
t位 Cache存储体 主存储体 字块0 字块0 0 标记 字块 0 字块 0 字块1 * 标记 字块 1 1 … 字块2c-1 … 字块2c 字块2c C-1 标记 字块 2c-1 比较器(t位) 字块2c+1 = ≠ … 字块2c+1-1 主存字 块标记 Cache 字块 否 主存地址 字块2c+1 字块2c+1 字块地址 内地址 有效位=1? … c位 b位 t位 字块2m-1 是 不命中 m位 命中 ②直接映像 i = jmod 2C Cache 的字块号 主存的字块号。主存中有2m 个块,字块大小为2b 字,Cache中有同样大小的2c个块 。 缺点 不够灵活,即主存的2t个字块只能对应唯一的Cache存储器字块。使得Cache存储空间得不到充分利用,并降低了命中率 优点实现简单,只需利用主存地址,按某些字段(t位)直接判断,即可确定所需字块是否已在 Cache存储器中 每个缓存块 i可以和 若干 个 主存块对应 如第0 块,第2c块,第2c+1块… ,只能映像到cache 的第0 块 主存的第1 块,第2c+1块第2c+1十1块… ,只能映像到 Cache的第 1块 每个主存块 j只能和 一个 缓存块对应 。 判别标记位是t位,所以比全相联方式少c位。 做法是先将主存分成与Cache同样大小的若干个区(组),每个区中的某个块只能固定调入Cache 中的对应块
主存储器 Cache 组 共2c’组,每组内两块(r = 1), 字块0 字块0 0 标记 字块 0 字块 0 标记 字块 1 字块 1 字块1 标记 字块 2 标记 字块 3 1 … 字块2c-r- 1 … … … … 字块2c-r 字块2c-r 2c-r-1 标记 字块 2c-2 标记 字块 2c-1 字块2c-r + 1 主存地址 … 主存字块标记 组地址 字块内地址 c’ =c-r位 b位 s = t + r位 字块2c-r+1 字块2c-r+1 m位 … 字块2m-1 全相联映象 直接映象 ③组相联映像 i = j mod Q 某一主存块 j按模 Q映射到 缓存的第 i组中的 任一块
替换算法 • 当发生Cache不命中时,必须选择被替换的项。 • 常用的替换算法: • 先进先出算法(FIFO) • 近期最少使用算法(LRU) • Cache的命中率除了与地址映像的方式有关外,还与Cache的容量有关。Cache容量大,则命中率就高,但达到一定容量后,命中率的提高就不明显了。
FIFO算法 • 在地址变换表中设置一个历史位,当替换时,总是把一组中最先调入Cache存储器的字块替换出去。 • 特点: • 不需要随时记录各个字块的使用情况。 • 实现容易且开销小。
LRU算法 • 将一组中近期最少使用的字块替换出去。 • 这种替换算法需随时记录Cache存储器中各个字块的使用情况, • 即页表为在物理存储取中的每一页保留了一个时间或年龄域,以便确定哪个字块是近期最少使用的字块。 • 特点: • 替换算法的平均命中率比FIFO要高, • 分组容量加大时,能提高LRU替换算法的命中率,能较好地反映出程序的局部性的特点。
Cache和主存的写策略 写直达法(Write-through): 当要写Cache时,数据同时写回主存储器。 写回法(Write-back): 当处理器更新Cache的某一行后,相应数据并不立刻写回主存储单元,而当该行被从Cache淘汰时,才把数据写回主存储器中。 写一次法: 写命中与未命中的处理方法与写回法基本相同,只是第一次写命中是要同时写入主存。例如:L2级Cache采用的是写回法,L1级数据Cache采用的是写一次法。
外部存储器系统简介 • RAM--随机存取存储器: • SRAM--静态随机存储器; • DRAM--动态随机存储器; • 特点: • □SRAM存取速度较快 □SRAM耗电较多 □ DRAM存储密度较高 • □ DRAM需要周期性的刷新 • ROM--只读存储器: • EEPROM:可电擦除存储器 • Flash ROM:闪速只读存储器