NEUSOFT Institute of information Technology .ChengDu 嵌入式系统原理与接口技术 NEUSOFT Institute of information Technology .ChengDu 成都东软信息技术学院计算机系 杨宗德 028-82878167 yangzongde@ccniit.com Yangzd@neusoft.com
嵌入式系统的软/硬件框架
嵌入式系统硬件基础 冯·诺依曼体系结构和哈佛体系结构 CISC与RISC IP 核 流水线 存储器系统
冯·诺依曼体系结构模型 指令寄存器 控制器 存储器 程序 指令0 指令1 指令2 指令3 指令4 数据通道 数据 输入 输出 中央处理器 数据0 数据1 数据2
哈佛体系结构 指令寄存器 控制器 程序存储器 地址 指令0 指令1 指令 指令2 地址 数据存储器 数据通道 输入 输出 数据0 中央处理器 数据1 数据 数据2
ARM简介 ARM(Advanced RISC Machines)系列微处理器,采用的ARM技术知识产权(IP)核都是由ARM公司提供的。 ARM32位体系结构目前被公认为是嵌入式应用领域领先的32位嵌入式RISC微处理器结构。从版本1到版本6,ARM体系的指令集功能不断扩大。
ARM Ltd 成立于1990年11月 前身为 Acorn计算机公司 Advance RISC Machine(ARM) 主要设计ARM系列RISC处理器内核 授权ARM内核给生产和销售半导体的合作伙伴 ARM 公司不生产芯片 IP(Intelligence Property) 另外也提供基于ARM架构的开发设计技术 软件工具, 评估板, 调试工具,应用软件, 总线架构, 外围设备单元,等等
ARM处理器系列 ARM7系列 ARM9系列 ARM9E系列 ARM10E系列 SecurCore系列 Inter的Xscale Inter的StrongARM
1.4 命名的含义 标志 含义 说明 T 支持Thumb指令集 Thumb指令集版本1:ARMv4T Thumb指令集版本2:ARMv5T D 片上调试 M 支持长乘法 32位乘32位得到64位,32位的乘加得到64位 I Embedded ICE E DSP指令 增加了DSP算法处理器指令:16位乘加指令,饱和的带符号数的加减法,双字数据操作,cache预取指令 J Java加速器Jazelle 提高java代码的运行速度 S 可综合 提供VHDL或Verilog语言设计文件
ARM的业务模型 IP OEM ARM Partner Customer 单价 业务拓展 / 市场格局 授权费 ARM 创造和 设计IP 产品,例如:芯片 Partner把ARM IP 和其他 IP 集成进产品 ARM Partner OEM Customer 版权费 单价 OEM 用来自ARM Partner的芯片设计制造最终用户产品
ARM处理器结构 从一下四个方面介绍: ARM和Thumb状态 RISC技术 流水线技术 超标量执行
ARM和Thumb状态 V4版以后有: ARM7TDMI核以后,T变种的ARM微处理器有两种工作状态: 32位ARM指令集 16位Thumb指令集,功能是ARM指令集的功能子集。 ARM7TDMI核以后,T变种的ARM微处理器有两种工作状态: ARM状态 Thumb状态。
ARM与Thumb状态转换 在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且该转变不影响处理器的工作模式和相应寄存器中的内容。 进入Thumb状态:当操作数寄存器的状态位(位[0])为1时,执行BX指令。 进入ARM状态:当操作数寄存器的状态位(位[0])为0时,执行BX指令。
CISC和RISC CISC:复杂指令集(Complex Instruction Set Computer) 具有大量的指令和寻址方式 8/2原则:80%的程序只使用20%的指令 大多数程序只使用少量的指令就能够运行。 RISC:精简指令集(Reduced Instruction Set Computer) 在通道中只包含最有用的指令 确保数据通道快速执行每一条指令 使CPU硬件结构设计变得更为简单
知识产权核(IP核, intellectual property) 微处理器微处理器: ARM, PowerPC; 存储器存储器: RAM, memory controller; 外设: PCI, DMA controller; 多媒体处理: MPEG/JPEG ; encoder/decoder ; 数字信号处理器(DSP) 通信: Ethernet controller, router,
IP核的种类 Soft Cores(“code”)(软核) HDL语言描述 灵活度高,可修改 与工艺独立,可根据具体的加工工艺重新综合; Firm cores(“code+structure”)(固核) 逻辑综合后的描述 与工艺相关 Hard cores(“physical”)(硬核) 物理综合后的描述 准备流片 包含工艺相关的布局和时序信息 IP很容易保护 多数的处理器和存储器
IP核的商业模型 三种模式 一、计者提供设计和工具的许可证 二、核厂商设计并制造集成电路芯片 三、核厂商卖核, 负责为客户设计并制造芯片 DSP Group (Pine and Oak Cores), 3Soft, ARM 提供包括HDL在内的模拟模型,工具或仿真器 使用者负责设计制造 二、核厂商设计并制造集成电路芯片 TI, Motorola, Lucent VLSI, SSI, Cirrus, Adaptec 三、核厂商卖核, 负责为客户设计并制造芯片 LSI logic, TI, Lucent
IP核的市场构成 74% 为硬件设计厂商. 26% 将购买IP 核: 40% hard, 68% soft, 32% firm
ARM的IP核 可综合内核(软核) 固化宏单元(硬核) 测试芯片 ARM926EJ-S ARM7TDMI-S ARM1026EJ-S
流水线技术 流水线技术:几个指令可以并行执行 提高了CPU的运行效率 内部信息流要求通畅流动 Add 取指 译码 执行add 取指 译码 执行sub Sub Cmp 取指 译码 执行cmp 时间
指令流水线—以ARM为例 为增加处理器指令流的速度,ARM7 系列使用3级流水线. 允许多个操作同时处理,比逐条指令执行要快。 PC指向正被取指的指令,而非正在执行的指令 ARM Thumb PC PC Fetch 从存储器中读取指令 PC - 4 PC-2 Decode 解码指令 寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank ) PC - 8 PC - 4 Execute
最佳流水线 该例中用6个时钟周期执行了6条指令 所有的操作都在寄存器中(单周期执行) 指令周期数 (CPI) = 1 周期 1 2 3 4 5 6 操作 ADD SUB MOV AND ORR EOR CMP RSB Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Fetch 该例中用6个时钟周期执行了6条指令 所有的操作都在寄存器中(单周期执行) 指令周期数 (CPI) = 1
LDR 流水线举例 该例中,用6周期执行了4条指令 指令周期数 (CPI) = 1.5 周期 1 2 3 4 5 6 操作 Fetch 1 2 3 4 5 6 操作 Fetch Decode Execute ADD SUB LDR MOV AND ORR Fetch Decode Execute Fetch Decode Execute Data Writeback Fetch Decode Execute Fetch Decode Fetch 该例中,用6周期执行了4条指令 指令周期数 (CPI) = 1.5
分支流水线举例 流水线被阻断 注意:内核运行在ARM状态 周期 1 2 3 4 5 地址 操作 0x8000 BL 0x8004 X 1 2 3 4 5 地址 操作 0x8000 BL 0x8004 X 0x8008 XX 0x8FEC ADD 0x8FF0 SUB 0x8FF4 MOV Fetch Decode Execute Linkret Adjust Fetch Decode Fetch Fetch Decode Execute Fetch Decode Execute Fetch Decode Fetch 流水线被阻断 注意:内核运行在ARM状态
流水线技术Ⅲ 2.ARM的流水线设计问题 (1)缩短程序执行时间: 提高时钟频率fclk 减少每条指令的平均时钟周期数CPI (2)解决流水线相关: 结构相关 数据相关 控制相关
2.4 存储系统机制
存储器的分类 ROM(Read only Memory)只读存储器 RAM(Random access Memory)随机存取存储器 PROM(programmable ROM)可编程只读存储器 EPROM(Erasable Programmable)可改写只读存储器 SRAM(Static RAM) DRAM(Dynamic RAM) SDRAM(Synchronization Dynamic RAM )
存储器系统 RAM:随机存取存储器, SRAM:静态随机存储器, DRAM:动态随机存储器 1)SRAM比DRAM快 4)DRM需要周期性刷新 ROM:只读存储器 FLASH:闪存
SDRAM 输入 CE是芯片的输入信号。CE=0,使能。 R/W Address Data 读操作 (1)片选 (2)读/写 (3)地址 (4)数据.
DRAM CE:片选 R/W读写控制信号 RAS行地址选通,地址高位,CAS列地址选通,地址低位; Address地址 DATA数据。
存储器的性能 大容量、高速度、低价格是评价存储器性能的三个主要指标,也是存储体系设计的主要目标。 容量:Sw=Wlm。其中W为存储体的字长(单位为位或字节),l为单个存储体的字数,m为并行工作的存储体个数。 速度:m个存储体并行工作时,可达到的最大频率宽度为Bm=Wm/TM 。其中TM是连续起动一个存储器所必要的时间间隔,TM>TA。Bm是连续提供数据的速率。 价格:具有SM位的存储器,每位价格表示为c=C/Sm。其中C是总价格。
存储体系的组成 一般把这些能并行读出多个CPU字的单体多字和多体单字及多体多字的交叉存取系统,统称为并行主存系统。 单体单字存储器 单体多字存储器 多体单字交叉存取存储器 多体多字交叉存取存储器 一般把这些能并行读出多个CPU字的单体多字和多体单字及多体多字的交叉存取系统,统称为并行主存系统。
存储体系的形式 (a)两级存储器层次结构 (b)三级存储器层次结构
总线结构Ⅰ 1.总线协议 :四周期握手协议
总线结构Ⅱ 2.总线读写
总线结构Ⅲ 3.总线的时序图
总线结构Ⅳ 4.直接内存访问(DMA)
总线结构Ⅴ 5.系统总线配置 多总线系统
ARM存储数据类型 ARM处理器支持以下六种数据类型: 8位有符号和无符号字节。 16位有符号和无符号半字,以2字节的边界对齐。 32位有符号和无符号字,以4字节的边界对齐。
ARM存储格式 大端存储模式 小端存储模式(缺省)
存储器接口Ⅰ 1.存储周期的基本类型: 空闲周期 非顺序周期 顺序周期 协处理器寄存器传送周期
存储器接口Ⅱ 2.ARM的总线接口信号分成4类(以ARM7TDMI为例说明): 时钟和时钟控制信号:MCLK、ECLK、nRESET、nWAIT。 地址类信号:A[31..0]、nRW、MAS[1..0]、nOPC、nTRANS、LOCK、TBIT。 存储器请求信号:nMREQ、SEQ。 数据时序信号:D[31..0]、DIN[31..0]、DOUT[31..0]、ABORT、BL[3..0]。
存储器接口Ⅲ 3. ARM的总线接口可以实现4种不同类型的总线周期。
高速缓冲存储器Ⅰ 1.分类: 统一Cache VS 独立的数据/程序Cache 写通cache VS 写回cache
高速缓冲存储器Ⅱ 2.工作原理:
高速缓冲存储器Ⅲ 3.地址映像和变换方式: 全相联地址映像和变换 组相联地址映像和变换 直接映像和变换
高速缓冲存储器Ⅳ 4.Cache的替换算法: 轮转法 随机替换算法
存储管理单元MMUⅠ 1.在ARM系统中,存储管理单元MMU主要完成工作: 存储器访问权限的控制。 设置虚拟存储空间的缓冲的特性。
存储管理单元MMU Ⅱ(1) 2.存储访问过程 使能MMU时存储访问过程 :
存储管理单元MMU Ⅱ(2) 禁止MMU时存储访问过程: ① 先要确定芯片是否支持cache和write buffer。如果芯片规定当禁止MMU时禁止cache和write buffer,则存储访问将不考虑C和B控制位。如果芯片规定当禁止MMU时可以使能cache和write buffer,则数据访问时,C=0,B=0;指令读取时,如果使用分开的TLB,那么C=1,如果使用统一的TLB,那么C=0。 ② 存储访问不进行权限控制,MMU也不会产生存储访问中止信号。 ③ 所有的物理地址和虚拟地址相等,即使用平板存储模式。
存储管理单元MMU Ⅲ(1) 3. MMU中的地址变换过程:通过两级页表实现。 a)一级页表中包含有以段为单位的地址变换条目以及指向二级页表的指针。一级页表是实现的地址映射粒度较大。以段为单位的地址变换过程只需要一级页表。 b)二级页表中包含有以大页和小页为单位的地址变换条目。有一种类型的二级页表还包含有以极小页为单位的地址变换条目。以页为单位的地址变换过程需要二级页表。
存储管理单元MMU Ⅲ(2) 一级页表的地址变换过程 :
存储管理单元MMU Ⅳ(1) 4.一级描述符: 从页表中得到的相应地址变换条目称为一级描述符。它定义了与之相应的1M存储空间是如何映射的。一级描述符的位[1:0]定义了该一级描述符的类型,共有4种格式的一级描述符:
存储管理单元MMU Ⅳ(2) 1)粗粒度页表描述符:当一级描述符的位[1..0]为0b01(0b代表二进制)时,该一级描述符中包含了粗粒度的二级页表的物理地址,这种一级描述符称为粗粒度页表描述符。它的格式和各个字段的含义如下:
存储管理单元MMU Ⅳ(3) 由粗粒度页表描述符获取二级描述符的过程 :
存储管理单元MMU Ⅳ(4) 2)段描述符:当一级描述符的位[1:0]为0b10时,该一级描述符为段描述符,它的格式和各个字段的含义如下:
存储管理单元MMU Ⅳ(5) 基于段的地址变换过程 :
存储管理单元MMU Ⅳ(6) 3)细粒度页表描述符:当一级描述符的位[1:0]为0b11时,该一级描述符中包含了细粒度的二级页表的物理地址,称为细粒度页表描述符。它的格式和各个字段的含义如下:
存储管理单元MMU Ⅳ(7) 由细粒度页表描述符获取二级描述符的过程
存储管理单元MMU Ⅴ 5.MMU中的存储访问权限控制
存储管理单元MMU Ⅵ 6. MMU中的域(Domain) MMU中的域指的是一些段、大页或者小页的集合。ARM支持最多16个域,每个域的访问控制特性都是由CP15中的寄存器C3中的两位来控制的。这两位的字段编码和含义:
存储管理单元MMU Ⅶ 7.快速上下文切换技术 快速上下文切换技术FCSE(Fast Context Switch Extension)通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。 FCSE位于CPU和MMU之间,其责任就是将不同进程使用的相同虚拟地址映射为不同的虚拟空间,使得在上下文切换时无需重建TLB等。
存储管理单元MMU Ⅷ 8.存储器映射的输入/输出 在ARM系统中,I/O操作通常被映射成存储器操作,即输入/输出是通过存储器映射的可寻址外围寄存器和中断输入的组合来实现的。 但是,对于存储器映射的I/O空间的操作,不能使用Cache技术。