5.嵌入式系统
对于嵌入式系统来说
首先有硬件 例如 处理器 计时器 中断控制器 输入输出设备 记忆 和接口
然后有软件 可以同时(concurrently)执行一系列任务或多个任务
还有实时操作系统RTOS (real-time operating system)RTOS决定着这个系统的工作方式
它超过了应用软件,小型的嵌入式系统不需要RTOS,它在应用程序执行期间设置规则
一个嵌入式系统的软件设计主要由以下三个限制(constraints)
可获得的系统记忆 可获得的处理速度 可控的能量散耗(dissipation)
不同的处理器
1.GPP(general purpose processor)通用处理器
微处理器 (microprocessor) 微控制器(microcontroller)嵌入式处理器(EP)
数码信号处理器(digital signal processor)
2.ASSP(application specific system processor)
3.multi-processor system
微控制器包含微处理器 微控制器如下图所示,剩下的多种通用处理器可以参考教材
peripheral是外围设备
EP的实例设备有ARM7 INTEL i960 AMD29050
ARM Processor ARM处理器
ARM Cortex-M3结构
用于指令和数据的不同总线–哈佛体系结构
ICode总线:从闪存ROM获取指令
DCode总线:从闪存ROM获取数据或调试信息
系统总线:从RAM或I/O端口读取/写入数据
ISA指令集结构对一个简单电脑
指令作为程序存储在RAM或ROM中
下一条指令的地址由程序计数器(PC)提供program counter
PC和相关控制逻辑是控制单元的一部分
典型的指令指定:
要使用的操作数
待执行的操作
将结果放置在何处,或下一步执行哪条指令
(program status register)程序状态寄存器(PSR)包含有关指令结果的信息,例如,结果是否为零
执行一个指令的步骤
(effective address register)有效地址寄存器(EAR):包含用于获取当前指令所需数据的内存地址
RISC(精简指令集计算)和CISC(复杂指令集计算)比较
RICS
指令不能读取和写入内存中的
同一总线周期
❖ 只有加载和存储(store)指令才能访问内存(memory)
❖ 小型指令集
❖ 固定尺寸指令
❖ 极少数寻址模式
❖ 许多相同的通用寄存器
CISC
长度可变的复杂指令
❖ 大指令集
❖ 多种寻址方式(addressing mode)
❖ 许多指令可以访问内存
❖ 指令可以在同一总线周期中读取和写入内存
❖ 越来越多的专用寄存器(仅数据或仅地址)
易于流水线 easy topipeline
ISA例子
RISC
ARM
Sun SPARC
MIPS RX000(使用32位微控制器)
IBM PowerPC(过去在Macintosh中使用)
Microchip PIC16(通常八位微控制器)
CISC
英特尔(Intel)x86和奔腾(Pentium)系列
Motorola 68000(用于原始Macintosh)
DEC VAX
微处理器
SHARC是来自模拟设备的数字信号处理器(digital signal processor)(DSP)的一个例子。这是一个专门的设备,可以非常快速地为DSP进行计算
流水线可以增加吞吐量,但不会减少总吞吐量任务的计算时间
❖每200ps就有一个答案,但是
❖一次计算仍然需要1ns
❑限制:
❖计算必须可分为阶段大小
❖管道寄存器增加了开销
(了解内容)
为什么使用ARM
世界上许可证最多、使用最广泛的处理器内核之一
核心用于不同类型的嵌入式系统
用于PDA、手机、多媒体播放器、手持游戏机、数字电视和照相机
ARM7:GBA,iPod,2000年左右的手机
ARM9:NDS、PSP、索尼爱立信、明基
ARM11:苹果iPhone、诺基亚N93、N800
75%的32位嵌入式处理器
Cortex-M3使用三级管道进行
指令执行
❖ 获取=>解码=>执行
❖ 管道设计允许有效的吞吐量
增加到每个时钟周期一条指令
❖ 允许在静止时提取下一条指令
解码或执行上一条指令
不同ARM版本
ARM体系结构已扩展到几个版本。
❖ARM7TDMI
❖ARM9-包括“Thumb”指令集
❖ARM10-用于多媒体(图形、视频等)
❖ARM11-高性能+Jazelle(Java)
❖SecureCore-用于安全应用程序(智能卡片)
❖Cortex-M-为微控制器优化
❖Cortex-A-高性能(多媒体系统)
❖Cortex-R-针对实时应用程序的
❖StrongARM-便携式
通信设备
Cortex-M系列
Cortex-M家族有几个成员:
•Cortex-M0–最小,仅56条指令
•Cortex-M0+–功能更强,但MCU的成本低于40
•Cortex-M3–原始版本,用于我们的mbed平台
•Cortex-M4–更强大的数字信号处理功能;也许包括浮点(M4F)
•Cortex-M7–功能更强大新设计更简单,耗电更少。粗略比较:
•ARM7TDMI大约有45k个门,每兆赫使用1兆瓦时钟速度
•Cortex-M0+至少需要12k门,最多需要3个微瓦每兆赫的时钟速度(部分原因是较少的门和现代设计,但主要是更小的晶体管)
5.嵌入式系统
对于嵌入式系统来说
首先有硬件 例如 处理器 计时器 中断控制器 输入输出设备 记忆 和接口
然后有软件 可以同时(concurrently)执行一系列任务或多个任务
还有实时操作系统RTOS (real-time operating system)RTOS决定着这个系统的工作方式
它超过了应用软件,小型的嵌入式系统不需要RTOS,它在应用程序执行期间设置规则
一个嵌入式系统的软件设计主要由以下三个限制(constraints)
可获得的系统记忆 可获得的处理速度 可控的能量散耗(dissipation)
不同的处理器
1.GPP(general purpose processor)通用处理器
微处理器 (microprocessor) 微控制器(microcontroller)嵌入式处理器(EP)
数码信号处理器(digital signal processor)
2.ASSP(application specific system processor)
3.multi-processor system
微控制器包含微处理器 微控制器如下图所示,剩下的多种通用处理器可以参考教材
peripheral是外围设备
EP的实例设备有ARM7 INTEL i960 AMD29050
ARM Processor ARM处理器
ARM Cortex-M3结构
用于指令和数据的不同总线–哈佛体系结构
ICode总线:从闪存ROM获取指令
DCode总线:从闪存ROM获取数据或调试信息
系统总线:从RAM或I/O端口读取/写入数据
ISA指令集结构对一个简单电脑
指令作为程序存储在RAM或ROM中
下一条指令的地址由程序计数器(PC)提供program counter
PC和相关控制逻辑是控制单元的一部分
典型的指令指定:
要使用的操作数
待执行的操作
将结果放置在何处,或下一步执行哪条指令
(program status register)程序状态寄存器(PSR)包含有关指令结果的信息,例如,结果是否为零
执行一个指令的步骤
(effective address register)有效地址寄存器(EAR):包含用于获取当前指令所需数据的内存地址
RISC(精简指令集计算)和CISC(复杂指令集计算)比较
RICS
指令不能读取和写入内存中的
同一总线周期
❖ 只有加载和存储(store)指令才能访问内存(memory)
❖ 小型指令集
❖ 固定尺寸指令
❖ 极少数寻址模式
❖ 许多相同的通用寄存器
CISC
长度可变的复杂指令
❖ 大指令集
❖ 多种寻址方式(addressing mode)
❖ 许多指令可以访问内存
❖ 指令可以在同一总线周期中读取和写入内存
❖ 越来越多的专用寄存器(仅数据或仅地址)
易于流水线 easy topipeline
ISA例子
RISC
ARM
Sun SPARC
MIPS RX000(使用32位微控制器)
IBM PowerPC(过去在Macintosh中使用)
Microchip PIC16(通常八位微控制器)
CISC
英特尔(Intel)x86和奔腾(Pentium)系列
Motorola 68000(用于原始Macintosh)
DEC VAX
微处理器
SHARC是来自模拟设备的数字信号处理器(digital signal processor)(DSP)的一个例子。这是一个专门的设备,可以非常快速地为DSP进行计算
流水线可以增加吞吐量,但不会减少总吞吐量任务的计算时间
❖每200ps就有一个答案,但是
❖一次计算仍然需要1ns
❑限制:
❖计算必须可分为阶段大小
❖管道寄存器增加了开销
(了解内容)
为什么使用ARM
世界上许可证最多、使用最广泛的处理器内核之一
核心用于不同类型的嵌入式系统
用于PDA、手机、多媒体播放器、手持游戏机、数字电视和照相机
ARM7:GBA,iPod,2000年左右的手机
ARM9:NDS、PSP、索尼爱立信、明基
ARM11:苹果iPhone、诺基亚N93、N800
75%的32位嵌入式处理器
Cortex-M3使用三级管道进行
指令执行
❖ 获取=>解码=>执行
❖ 管道设计允许有效的吞吐量
增加到每个时钟周期一条指令
❖ 允许在静止时提取下一条指令
解码或执行上一条指令
不同ARM版本
ARM体系结构已扩展到几个版本。
❖ARM7TDMI
❖ARM9-包括“Thumb”指令集
❖ARM10-用于多媒体(图形、视频等)
❖ARM11-高性能+Jazelle(Java)
❖SecureCore-用于安全应用程序(智能卡片)
❖Cortex-M-为微控制器优化
❖Cortex-A-高性能(多媒体系统)
❖Cortex-R-针对实时应用程序的
❖StrongARM-便携式
通信设备
Cortex-M系列
Cortex-M家族有几个成员:
•Cortex-M0–最小,仅56条指令
•Cortex-M0+–功能更强,但MCU的成本低于40
•Cortex-M3–原始版本,用于我们的mbed平台
•Cortex-M4–更强大的数字信号处理功能;也许包括浮点(M4F)
•Cortex-M7–功能更强大新设计更简单,耗电更少。粗略比较:
•ARM7TDMI大约有45k个门,每兆赫使用1兆瓦时钟速度
•Cortex-M0+至少需要12k门,最多需要3个微瓦每兆赫的时钟速度(部分原因是较少的门和现代设计,但主要是更小的晶体管)