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个微瓦每兆赫的时钟速度(部分原因是较少的门和现代设计,但主要是更小的晶体管)

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐