第二章 嵌入式系统的基本知识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



ARM存储数据类型
ARM处理器支持以下六种数据类型:


8位有符号和无符号字节。 16 位有符号和无符号半字,以 2 字节的边界
对齐。

32 位有符Hale Waihona Puke Baidu和无符号字,以 4 字节的边界对
齐。

存储器格式
地址空间的规则:
位于地址 A 的字包含的字节位于地址 A,A+1,A+2 和 A+3; 位于地址A的半字包含的字节位于地址 A和A+1; 字
PC
程序存储器 MOV r8,#8
指令 哈佛结构
1、存储器结构—— 冯-诺依曼体系结构与哈佛体系结构
特点: 数据和指令都 存储在同一存 储器中。
通用PC, ARM 7。
冯-诺依曼体系结构
1、存储器结构—— 冯-诺依曼体系结构与哈佛体系结构
特点: 1. 数据存储器 和程序都存 储分开; 2. 数据存储器 的带宽较宽;
Millions of Units
10,000 8,000 6,000 4,000 2,000 0 2000 2001 2002 2003 MPU
12,000
Total Embedded Control Market Shipments by Type
总共约26亿个32位处理器
2004 2005 Cores 2006 2007 2008 2009
1
操作
BL X XX ADD SUB MOV Fetch Decode Execute
2
3
4
5
Linkret
Adjust
Fetch
Decode Fetch
Fetch
Decode Execute
Fetch Decode Execute Fetch
Decode
Fetch

流水线被阻断 注意:内核运行在ARM状态
半字 半字 位于地址A+2的半字包含的字节位于地址 A+2和A+3;
位于地址A的字包含的半字位于地址A和A+2;
字节 字节 字节 字节 地址A A+1 A+2 A+3
存储器格式
存储器系统有两种映射机制: 小端存储器系统:
在小端格式中,高位数字存放在高位字节 中。因此存储器系统字节0连接到数据线7~0(低位 大端模式 对齐)。 低位地址 高位地址
地址A+3 高地址
实例
变量A:word A=0x f6 73 4b cd,在内存中的起始地 址为0x b3 20 45 00 变量B:half word B=218,在内存中的起始地址为 0x dd dd dd word d0 问题: half B=218与word C=218在内

0xb3204500 0xb3204500 存中的存放方式有何不同?请分大端和小 f6 cd 73 4b 端两种情况说明。
可以对存储器和寄存器进行 只能对寄存器对行算术和逻辑 算术和逻辑操作 操作,Load/Store体系结构 难以用优化编译器生成高效 采用优化编译技术,生成高效 的目标代码程序 的目标代码程序
信息存储的字节顺序

以32位的ARM微处理器为例 ARM体系结构将存储器看作是从零地址开始 的字节的线性组合。 从零字节到三字节放置第一个存储的字数据, 从第四个字节到第七个字节放置第二个存储 的字数据,依次排列。 作为32位的微处理器,ARM体系结构所支持 的最大寻址空间为4GB。
CISC与RISC的对比
类别 CISC RISC
指令系统 指令数量很多
较少,通常少于100
执行时间 有些指令执行时间很长,如 没有较长执行时间的指令 整块的存储器内容拷贝;或 将多个寄存器的内容拷贝到 存贮器 编码长度 编码长度可变,1-15字节 寻址方式 寻址方式多样 操作 编译 编码长度固定,通常为4个字节 简单寻址
Execute

PC指向正被取指的指令,而非正在执行的指令
最佳流水线
周期
操作
ADD SUB MOV AND ORR EOR CMP RSB Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch
CISC:复杂指令集(Complex Instruction Set Computer) 具有大量的指令和寻址方式,指令长度可变 8/2原则:80%的程序只使用20%的指令 大多数程序只使用少量的指令就能够运行。 RISC:精简指令集(Reduced Instruction Set Computer) 只包含最有用的指令,指令长度固定
C H A P T E R
2
嵌入式系统的 基本知识
本节提要
1 嵌入式系统硬件基础 2 嵌入式系统软件基础 3 嵌入式操作系统
4
嵌入式系统设计方法
如人的大脑,决定了硬件的操作模 式。通过良好的操作系统以及应用 程序,把硬件功能发挥到极至。
嵌入式系统软件部分
如人的手、脚、神经等部位,决定 了嵌入式系统的先天功能。如运算 能力和I/O接口等。
1
2
3
4
5
6
Decode Execute
Fetch Decode Execute Fetch Decode Fetch

该例中用6个时钟周期执行了6条指令 所有的操作都在寄存器中(单周期执行) 指令周期数 (CPI) = 1
LDR 流水线举例
周期
操作
ADD SUB Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Data
DSP、ARM9
哈佛体系结构
冯.诺曼结构处理器指令流 的定时关系示意图
2、流水线技术
流水线(Pipeline)技术:几个指令可以并行执行 • 提高了CPU的运行效率
• 内部信息流要求通畅流动
Add Sub Cmp 时间 取指 译码 取指 执行add 译码 取指 执行sub 译码 执行cmp
指令流水线—以ARM为例

为增加处理器指令流的速度,ARM7 系列使用3级流水线. 允许多个操作同时处理,比逐条指令执行要快。
ARM
PC
Thumb
PC
Fetch
从存储器中读取指令
PC - 4
PC-2
Decode
解码指令 寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank )
PC - 8
PC - 4
大端存储器系统:
0x12 0x34 0x56 0x78
在大端格式中,高位数字存放在低位字节 低位地址 高位地址 0x78 0x56 0x34 0x12 中。因此存储器系统字节 0连接到数据线31~24(高位
对齐) 。
小端模式
0x12345678字数据的大小端存储方式
大端的数据存放格式
最高有效字节 位于最低地址 最高有效字节的地址 就是该word的地址


RISC的提出与发展




Load/Store结构提出: CDC6600(1963)-CRAY1(1976) RISC思想最早在IBM公司提出,但不叫RISC, IBM801处理器是公认体现RISC思想的机器。 1980年,Berkeley的Patterson和Dizel提出RISC名 词,并研制了RISC-,实验样机。 1981年Stenford的Hennessy研制MIPS芯片。 85年后推出商品化RISC: MIPS1(1986)和SPARC V1(1987)
确保数据通道快速执行每一条指令
使CPU硬件结构设计变得更为简单
CISC与RISC的数据通道
开始
IF
ID
ALU
MEM
微操作通道
REG
退出
CISC:寻址方式复杂
开始
IF
ID
REG
ALU
MEM
退出
单通数据通道
RISC:Load/Store结构
CISC的背景和特点





背景: 存储资源紧缺, 强调编译优化 增强指令功能,设置一些功能复杂的指令,把 一些原来由软件实现的、常用的功能改用硬件 的(微程序)指令系统来实现 为节省存储空间,强调高代码密度,指令格式 不固定,指令可长可短,操作数可多可少 寻址方式复杂多样,操作数可来自寄存器,也 可来自存储器 采用微程序控制,执行每条指令均需完成一个 微指令序列 CPI > 5,指令越复杂,CPI越大。
CISC的主要缺点

指令使用频度不均衡。

高频度使用的指令占据了绝大部分的执行时间,扩充的 复杂指令往往是低频度指令。 VLSI的出现,使单芯片处理机希望采用规整的硬联逻辑 实现,而不希望用微程序,因为微程序的使用反而制约 了速度提高。(微码的存控速度比CPU慢5-10倍)。 复杂指令增加硬件的复杂度,使指令执行周期大大加长, 直接访存次数增多,数据重复利用率低。
典型的高性能RISC处理器

SUN公司的SPARC(1987) MIPS公司的SGI:MIPS(1986)


HP公司的PA-RISC,
IBM, Motorola公司的PowerPC
DEC、Compac公司的Alpha AXP
IBM的RS6000(1990)第一台Superscalar RISC机

大量复杂指令的控制逻辑不规整,不适于VLSI工艺


软硬功能分配


不利于先进指令级并行技术的采用 流水线技术
RISC基本设计思想

减小CPI: CPUtime=Instr_Count * CPI * Clock_cycle

精简指令集:保留最基本的,去掉复杂、使用频 度不高的指令
采用Load/Store结构,有助于减少指令格式, 统一存储器访问方式 采用硬接线控制代替微程序控制
word a=0x f6 73 4b cd
低地址 地址A f6 73 4b cd
地址A+1
地址A+2 地址A+3 高地址
小端的数据格式
最低有效字节的地址 就是该word的地址 最低有效字节 位于最低地址
word a=0x f6 73 4b cd
低地址 cd 4b 73 f6 地址A 地址A+1
地址A+2
超流水线

超流水线(superpiplined)是指某型CPU内 部的流水线超过通常的5~6步以上,例如 Pentium pro的流水线就长达14步。将流水 线设计的步(级)数越多,其完成一条指令 的速度越快,因此才能适应工作主频更高的 CPU。
超标量执行
超标量(Superscalar)执行:超标量CPU采用多条流水线结构
Writeback
1
2
3
4
5
6
LDR
MOV AND ORR
Fetch
Decode
Fetch
Execute
Decode Fetch

该例中,用6周期执行了4条指令 指令周期数 (CPI) = 1.5
分支流水线举例
周期
地址
0x8000 0x8004 0x8008 0x8FEC 0x8FF0 0x8FF4
嵌入式系统硬件部分
嵌入式系统的硬件是以嵌入式微处理器为核心, 主要由嵌入式微处理器、总线、存储器、输入 /输出接口和设备组成。

嵌入式微处理器 总线 存储器 输入/输出接口和设备
嵌入式系统硬件基础



冯· 诺依曼体系结构和哈佛体系结构 RISC和CISC 流水线 信息存储的字节顺序 嵌入式微处理器体系结构
大端: 小端:
0xddddddd0
4b cd
73 f6
da 00
0xddddddd0
00 da
嵌入式微处理器的分类

按体系结构的不同可分为五大类


ARM MIPS POWER PC X86 SH系列
500
Units (millions)
400 300 200 100 0 1997 1998 1999 2000
指令
取指
取指
流 水 线 1
译码1 译码2 执行1 执行2
流 水 线 2
译码1 译码2 执行1 执行2
数据回写
流水线技术中涉及到的两个问题

相关:在一个流水线系统中,如果第二条指 令需要用到第一条指令的结果,这种情况叫 做相关。 目前解决这个问题的方法是乱序执行。 条件转移 分支预测技术

CISC和RISC
ARM MIPS Hitachi SH PowerPC
Source: Andrew Allison, Inside The New Computer Industry, January 2001
Embedded RISC Processor Shipments
32位浪潮的到来
16,000 14,000 12,000

总线 高速输入输出接口 输入输出设备 存储器
嵌入式微处理器


每个嵌入式系统至少包含一个嵌入式微处 理器 嵌入式微处理器体系结构可采用冯•诺依曼 (Von Neumann)结构或哈佛(Harvard) 结构
主存储器 地址 数据 地址 CPU 数据存储器 数据 地址 PC CPU
MOV r8,#8 冯•诺依曼结构
相关文档
最新文档