浙江大学高级嵌入式体系结构课件10 Pipeline-Control Hazard
合集下载
最新嵌入式系统简介嵌入式系统的组成嵌入式系统开发流程ppt课件PPT课件
• ROM仿真器 • JTAG仿真器 • 逻辑分析器
• 需求管理工具
• 示波器
• DSP开发工具
• 器件驱动器开发工具
• 软硬件协同验证工具
9.3 嵌入式系统开发流程
1 嵌入式软件开发的特点
▪ 嵌入式系统与通用计算机系统的差别:
– 人机交互界面 – 有限的功能
– 时间关键性和稳定性
▪ 嵌入式软件开发的特点:
嵌入式微控制器EMCU
• 嵌入式微控制器又称为单片机,它将CPU、存 储器(少量的RAM、ROM或两者都有)和其 它外设接口封装在同一片集成电路里。
• 嵌入式微控制器制造商:摩托罗拉、英特尔、 英飞凌科技、 Atmel、日立、NEC、三菱、 东芝、松下、Microchip、富士、飞利浦、德 州仪器、三星、三洋、索尼、Oki、凌阳科技 等。
9.1 嵌入式系统简介
• 广义上讲,凡是带有微处理器的专用软硬 件系统都可称为嵌入式系统。如各类单片
机和DSP系统。这些系统在完成较为单一 的专业功能时具有简洁高效的特点。但由 于他们没有操作系统,管理系统硬件和软 件的能力有限,在实现复杂多任务功能时, 往往困难重重,甚至无法实现 • 从狭义上讲,那些使用嵌入式微处理器构 成独立系统,具有自己操作系统,具有特 定功能,用于特定场合的专用软硬件系统 称为嵌入式系统。
▪ 嵌入式软件开发的特点:
–引入任务设计方法 –需要固化程序 –软件开发难度大
➢ 嵌入式应用软件对实时性、稳定性、可靠性、 抗干扰性等性能的要求都比通用软件的要求 更为严格和苛刻。
2.2 嵌入式系统开发的流程
嵌入式软件的开发流程与通用软件的开发流程 大同小异,但开发所使用的设计方法具有嵌入式 开发的特点。整个开发流程可分为:
嵌入式系统概述(浙江大学)
强实时型:响应时间μ s~ms级;。
嵌入式系统与桌面通用系统的区别(3/7)
嵌入式系统中使用的操作系统一般是实时操作系统 嵌入式实时操作系统数量众多,如:
VxWorks Windows CE pSOS QNX uc/OS
嵌入式系统是以应用为中心,以计算机技 术为基础,采用可剪裁软硬件,适用于对 功能、可靠性、成本、体积、功耗等有严 格要求的专用计算机系统。
计算机应用领域的划分
小型专用型
桌面通用型
高端服务型
嵌入式系统与桌面通用系统的区别(1/7)
嵌入式系统中运行的任务是专用而确定的
心脏监视器只需运行信号输入、信号处理、心电图显示任务 如要更改任务,需要对整个系统进行重新设计或在线维护
早期:10%;90年代初:30%;目前:80~90%
嵌入式系统开发工具越来越丰富 嵌入式系统产业链形成
前车门控 制系统 发动器控 制系统
座椅控制 系统
后车门控 制系统
尾灯控制 系统
所有的控 制系统都 是一个完 整的嵌入 式系统
马达 控制器 车灯
两大分支
嵌入式软件市场规模
• 全球规模600亿美元,过去三年中,年均增长速度超过 12.5%。
嵌入式系统与桌面通用系统的区别(7/7)
嵌入式系统开发是一项综合的计算机应用技术
系统结构:状态控制器、中断控制器处理 汇编语言:操纵外围设备、端口 操作系统:设置运行任务、通讯、互斥 编译原理:交叉编译、bootloader加载
提纲
嵌入式系统的发展历程
嵌入式系统出现于20世纪60年代,40多年来随着计算机技 术、电子信息技术的发展,嵌入式系统的各项技术蓬勃发 展,市场迅猛扩大,已深入生产和生活的各个角落。
嵌入式系统与桌面通用系统的区别(3/7)
嵌入式系统中使用的操作系统一般是实时操作系统 嵌入式实时操作系统数量众多,如:
VxWorks Windows CE pSOS QNX uc/OS
嵌入式系统是以应用为中心,以计算机技 术为基础,采用可剪裁软硬件,适用于对 功能、可靠性、成本、体积、功耗等有严 格要求的专用计算机系统。
计算机应用领域的划分
小型专用型
桌面通用型
高端服务型
嵌入式系统与桌面通用系统的区别(1/7)
嵌入式系统中运行的任务是专用而确定的
心脏监视器只需运行信号输入、信号处理、心电图显示任务 如要更改任务,需要对整个系统进行重新设计或在线维护
早期:10%;90年代初:30%;目前:80~90%
嵌入式系统开发工具越来越丰富 嵌入式系统产业链形成
前车门控 制系统 发动器控 制系统
座椅控制 系统
后车门控 制系统
尾灯控制 系统
所有的控 制系统都 是一个完 整的嵌入 式系统
马达 控制器 车灯
两大分支
嵌入式软件市场规模
• 全球规模600亿美元,过去三年中,年均增长速度超过 12.5%。
嵌入式系统与桌面通用系统的区别(7/7)
嵌入式系统开发是一项综合的计算机应用技术
系统结构:状态控制器、中断控制器处理 汇编语言:操纵外围设备、端口 操作系统:设置运行任务、通讯、互斥 编译原理:交叉编译、bootloader加载
提纲
嵌入式系统的发展历程
嵌入式系统出现于20世纪60年代,40多年来随着计算机技 术、电子信息技术的发展,嵌入式系统的各项技术蓬勃发 展,市场迅猛扩大,已深入生产和生活的各个角落。
浙江大学嵌入式嵌入式系统7
5
(1)总体规划 市场预测-〉技术准备-〉资金准备-〉资料收集-〉
资料研究-〉项目需求报告编制-〉项目需求报告讨论 准备-〉项目需求报告讨论-〉项目需求报告修改-〉 项目需求报告验收 -〉参与者及职责-〉输出成果及后 序工作-〉技术可行性实验-〉项目计划书。 (2)项目立项 立项申请-〉项目立项评估-〉项目进度计划-〉项目 立项审批。 (3)需求分析 资料收集-〉需求分析编制-〉讨论准备-〉需求分析 讨论-〉需求分析修改-〉需求分析验收。
9
三、 开发环境
嵌入式系统,是指嵌入于 宿主设备,智能地完成宿
嵌入 式 软件
嵌入式应用软件
嵌 入 式
主设备功能的计算/控制系
嵌入式操作系统
开 发
统。
工
嵌入 式
嵌入式硬件模块
具
嵌入式系统开发环境,是
硬件
嵌入式处理器
以开发嵌入式系统为目的
的工程开发环境。包括办
公环境支持、软件支持、
硬件设备支持。
软件支持,指集成开发环 境与软件模拟器等。
硬件支持,指仿真器、目 标板、示波器、烧录器等 。
10
3.1集成开发系统
集成开发系统提供高效明晰的图形化的嵌入式应用软 件开发平台,包括一整套完备的面向嵌入式系统的开 发和调试工具 。(BDM/JTAG仿真器)等
11
31.1编译器
8
UML的应用
I-Logix公司的Rhapsody系列产品 基于统一建模语言UML的可视化编程环境 把UML各类视图映射为具体目标机程序语
言 用于复杂实时嵌入式应用软件从分析、设
计一直到代码实现和软件测试的开发环境 NASA的火星探路者航天器就是运用
Rhapsody在VxWorks上开发应用程序。
(1)总体规划 市场预测-〉技术准备-〉资金准备-〉资料收集-〉
资料研究-〉项目需求报告编制-〉项目需求报告讨论 准备-〉项目需求报告讨论-〉项目需求报告修改-〉 项目需求报告验收 -〉参与者及职责-〉输出成果及后 序工作-〉技术可行性实验-〉项目计划书。 (2)项目立项 立项申请-〉项目立项评估-〉项目进度计划-〉项目 立项审批。 (3)需求分析 资料收集-〉需求分析编制-〉讨论准备-〉需求分析 讨论-〉需求分析修改-〉需求分析验收。
9
三、 开发环境
嵌入式系统,是指嵌入于 宿主设备,智能地完成宿
嵌入 式 软件
嵌入式应用软件
嵌 入 式
主设备功能的计算/控制系
嵌入式操作系统
开 发
统。
工
嵌入 式
嵌入式硬件模块
具
嵌入式系统开发环境,是
硬件
嵌入式处理器
以开发嵌入式系统为目的
的工程开发环境。包括办
公环境支持、软件支持、
硬件设备支持。
软件支持,指集成开发环 境与软件模拟器等。
硬件支持,指仿真器、目 标板、示波器、烧录器等 。
10
3.1集成开发系统
集成开发系统提供高效明晰的图形化的嵌入式应用软 件开发平台,包括一整套完备的面向嵌入式系统的开 发和调试工具 。(BDM/JTAG仿真器)等
11
31.1编译器
8
UML的应用
I-Logix公司的Rhapsody系列产品 基于统一建模语言UML的可视化编程环境 把UML各类视图映射为具体目标机程序语
言 用于复杂实时嵌入式应用软件从分析、设
计一直到代码实现和软件测试的开发环境 NASA的火星探路者航天器就是运用
Rhapsody在VxWorks上开发应用程序。
浙江大学高级嵌入式体系结构课件-高级计算机体系结构-第一章汇编
ZJU_Advanced Computer Architecture_sqs
7
Three different computing markets
Desktop Computing
The first, and still the largest market in dollar terms, is desktop computing.
2. 选择一个嵌入式相关体系结构内容,撰写一篇字数不少于
8000字的综述(分析)报告(参考文献要求在10篇以上,并 且引用的参考文献必须在文中加以引用标注,参考文献一并提 交)。
提交时间:待定; 地址: 待定;
ZJU_Advanced Computer Architecture_sqs
5
现代计算机技术的核心体现
ZJU_Advanced Computer Architecture_sqs
2
教材
英文原版: 《Computer Architecture--
A Quantitative Approach》3ed、4th.
John L.Hennessy, David A.Patterson 机械工业出版社原版影印
application-specific circuitry.
₠ DSP
ZJU_Advanced Computer Architecture_sqs
9
嵌入式体系特征
1. The designer uses a combined hardware/software solution that includes some custom hardware and an embedded processor core that is integrated with the custom hardware, often on the same chip.
第2章-CM3嵌入式系统体系结构ppt课件
线,使用于高速设备连接 2、APB(Advanced preformance Bus)外设总线,
使用于低速设备连接
.
CM3 总线接口
包含5个总线接口: 1、Icode存储器接口(32位AHB,可访程存空间0000 0000-1fff ffffH) 2、Dcode存储器接口(32位AHB,可访程存空间0000 0000-1fff ffffH) 3、系统接口(32位AHB,对系存空间2000 0000-dfff ffffH和e010000-ffff ffffH
.
数据类型
Cortex-M3处理器支持以下数据类型
32位字 16位半字 8位字节
.
存储器格式
小端数据格式(数据高位存入高地址)
31
24 23
16 15
87
0
地址 F的 字节 3
地址 E 的 字节 2
地址 D 的 字节 1
地址 C 的 字 节0
地址C 的字
地址 E 的半字 1
地址 C 的半字 0
. 0:结果为正数或大于
中断状态寄存器(IPSR)
中断状态寄存器(IPSR)包含当前激活的异常 的ISR编号。
IPSR的位分配
31
----
保留
9 8 -- 0 中断号
ISR NUMBER
基础级别 =0
Reset =1
NMI =2
SVCall =11
......
.
执行状态寄存器(EPSR)
为什么需要执行状态寄存器EPSR?
程序执行设置2种权限: 用户级和特权级。
特权级可以访问任意资源,用户级对有些资源的访问有限制或不允许访问。
.
操作模式状态转换
1、CM3运行主应用程序时(线程模式),可使用特权级或用户级 2、处理异常服务例程必须使用特权模式。 3、复位后,CM3默认进入线程模式,特权级访问 4、从特权模式切换到用户级,修改CONTROL寄存器即可 5、用户级切换回特权级,必须执行一条系统调用指令SVC,触发
使用于低速设备连接
.
CM3 总线接口
包含5个总线接口: 1、Icode存储器接口(32位AHB,可访程存空间0000 0000-1fff ffffH) 2、Dcode存储器接口(32位AHB,可访程存空间0000 0000-1fff ffffH) 3、系统接口(32位AHB,对系存空间2000 0000-dfff ffffH和e010000-ffff ffffH
.
数据类型
Cortex-M3处理器支持以下数据类型
32位字 16位半字 8位字节
.
存储器格式
小端数据格式(数据高位存入高地址)
31
24 23
16 15
87
0
地址 F的 字节 3
地址 E 的 字节 2
地址 D 的 字节 1
地址 C 的 字 节0
地址C 的字
地址 E 的半字 1
地址 C 的半字 0
. 0:结果为正数或大于
中断状态寄存器(IPSR)
中断状态寄存器(IPSR)包含当前激活的异常 的ISR编号。
IPSR的位分配
31
----
保留
9 8 -- 0 中断号
ISR NUMBER
基础级别 =0
Reset =1
NMI =2
SVCall =11
......
.
执行状态寄存器(EPSR)
为什么需要执行状态寄存器EPSR?
程序执行设置2种权限: 用户级和特权级。
特权级可以访问任意资源,用户级对有些资源的访问有限制或不允许访问。
.
操作模式状态转换
1、CM3运行主应用程序时(线程模式),可使用特权级或用户级 2、处理异常服务例程必须使用特权模式。 3、复位后,CM3默认进入线程模式,特权级访问 4、从特权模式切换到用户级,修改CONTROL寄存器即可 5、用户级切换回特权级,必须执行一条系统调用指令SVC,触发
浙江大学高级嵌入式体系结构课件4 Benchmark
qFundamentals of Computer Design
ComputerArchitecture_Chapt1_3
What we learned last class ?
q Cost trends
!
q Dependability
!
q Performance metrics
•
Figure 4. Denormalizing a user information table.
The Pathologies of Big Data
1
Running Benchmarks
q Key factor: Reproducibility by other experimenters.
q Details, details, and more details !!! List all assumptions and conditions of your experiments.
Ø i.e. program input, version of the program, version of
the compiler, optimization level, OS version, main memory size, disk types, etc.
q A system’s software configuration can significantly affect the performance results for a benchmark. 5
machines or different programs. Why?
• • Performance and Execution time are reciprocals Maximizing performance means minimizing response (execution) time
ComputerArchitecture_Chapt1_3
What we learned last class ?
q Cost trends
!
q Dependability
!
q Performance metrics
•
Figure 4. Denormalizing a user information table.
The Pathologies of Big Data
1
Running Benchmarks
q Key factor: Reproducibility by other experimenters.
q Details, details, and more details !!! List all assumptions and conditions of your experiments.
Ø i.e. program input, version of the program, version of
the compiler, optimization level, OS version, main memory size, disk types, etc.
q A system’s software configuration can significantly affect the performance results for a benchmark. 5
machines or different programs. Why?
• • Performance and Execution time are reciprocals Maximizing performance means minimizing response (execution) time
嵌入式课程第1讲嵌入式系统综述ppt课件
3/92
课程设置的必要性
▪ 应用需求日益复杂 ▪ 微处理器技术长足发展 ▪ 社会对嵌入式技术人才的需求
据统计2002年16/32位嵌入式处理 器的销售额已接近70亿美元 ▪ 嵌入式软件技术成为核心
4/92
嵌入式处理器快速成长
$70亿
5/92
课程目的
了解嵌入式系统的概念和体系结构
掌握嵌入式系统的软硬件开发方法
代表产品有TI的TMS320C2000/C5000 和Motorola的DSP56000
35/92
嵌入式SOC
System On Chip,片上系统/系统芯片 将很多功能模块集成到单个芯片上 ➢ 各种通用处理器内核作为SOC设计公司的标准库,
用VHDL等语言描述 ➢ 除个别无法集成外,嵌入式系统的大部分集成到一
12/92
课程安排(5)
3. 嵌入式Linux设备驱动实验 - 基本的编程实现 - 数码管驱动与按键驱动的结构分析及使用方法
4. 串口通讯与短信收发系统综合实验 - 基于Qt的嵌入式GUI程序设计 - 串口通讯程序设计 - 短信收发程序设计 - 程序编译下载与运行
13/92
评分标准
课堂表现与出勤率:20% 实验表现:50% 实验报告:30%
MIPS公司开发了32位高性能,低功耗的处理器 内核MIPS 32 4Kc和64位的处理器内核MIPS
64 5Kc
应用范围:机顶盒、视频游戏机、Cisco路由
器、激光打印机
30/92
典型的嵌入式微处理器-PowerPC
PowerPC架构特点:可伸缩性好,方便灵活
既有通用处理器,也有嵌入式微控制器和内核, 应用范围非常广泛,从高端服务器、工作站到 PC,从消费类电子到通信设备
课程设置的必要性
▪ 应用需求日益复杂 ▪ 微处理器技术长足发展 ▪ 社会对嵌入式技术人才的需求
据统计2002年16/32位嵌入式处理 器的销售额已接近70亿美元 ▪ 嵌入式软件技术成为核心
4/92
嵌入式处理器快速成长
$70亿
5/92
课程目的
了解嵌入式系统的概念和体系结构
掌握嵌入式系统的软硬件开发方法
代表产品有TI的TMS320C2000/C5000 和Motorola的DSP56000
35/92
嵌入式SOC
System On Chip,片上系统/系统芯片 将很多功能模块集成到单个芯片上 ➢ 各种通用处理器内核作为SOC设计公司的标准库,
用VHDL等语言描述 ➢ 除个别无法集成外,嵌入式系统的大部分集成到一
12/92
课程安排(5)
3. 嵌入式Linux设备驱动实验 - 基本的编程实现 - 数码管驱动与按键驱动的结构分析及使用方法
4. 串口通讯与短信收发系统综合实验 - 基于Qt的嵌入式GUI程序设计 - 串口通讯程序设计 - 短信收发程序设计 - 程序编译下载与运行
13/92
评分标准
课堂表现与出勤率:20% 实验表现:50% 实验报告:30%
MIPS公司开发了32位高性能,低功耗的处理器 内核MIPS 32 4Kc和64位的处理器内核MIPS
64 5Kc
应用范围:机顶盒、视频游戏机、Cisco路由
器、激光打印机
30/92
典型的嵌入式微处理器-PowerPC
PowerPC架构特点:可伸缩性好,方便灵活
既有通用处理器,也有嵌入式微控制器和内核, 应用范围非常广泛,从高端服务器、工作站到 PC,从消费类电子到通信设备
嵌入式软件体系结构课件
客户机/服务器结构模型
客户系统1
客户系统2
客户系统M
产生请求
返回结果
请求服务 请求服务
请求服务 返回结果 请求服务
返回结果
服务系统1
服务系统2
服务系统N
完成操作
客户机/服务器体系结构
信息与软件工程学院
22
第23页/共58页
客户机/服务器结构模型(1)
nanoOS
客户
API
文件 网络 TCP/IP
第9页/共58页
软件体系结构的生命周期
信息与软件工程学院
9
第10页/共58页
软件体系结构的发展方向
各种ADLs(结构描述语言)之间的信息互换:用 一种公共形式把各种语言综合起来,使得能够交换 各种体系结构描述信息 → 体系结构融合
设计工具和环境:用工具实现体系结构的描述和分 析,以实现阶段成果的自动转换
} }
信息与软件工程学院
43
第44页/共58页
轮询(3)—— 典型结构及应用示意
主机 8051
RS485 RS485
从机(0) 2051
从机(1) 2051
从机(2) 2501
• 典型应用 哲学家问题;无线传感信息采集;分时系 统;信号(如雷达信号)采集系统;网络服务应答;....
信息与软件工程学院
体系结构再工程:从遗留系统软件代码和系统中抽 取结构信息,经过描述、统一、抽象、一般化与实 例化等处理,总结出系统的体系结构
信息与软件工程学院
10
第11页/共58页
信11息与软件工程学院
软件体系结构 作用
第12页/共58页
设计计划
领域分析 需求分析 风险分析
浙江大学嵌入式课件--嵌入式系统3
38
微处理器逻辑设计与实现
处理器结构级评价工具总结 寄存器级结构图 指令逻辑寄存器级描述 指令物理寄存器级描述 数据通路设计 控制器设计 中断控制设计 处理器集成
39
处理器结构级评价工具总结:指令级模拟
40
寄存器级结构图
41
微处理器设计
42
处理器逻辑设计:数据通路和控制器
43
微处理器的系统结构设计 微处理器的执行机制设计 微处理器流水线结构设计 微处理器逻辑设计与实现 处理器逻辑综合(Synopsys) 处理器物理综合(Candence) 处理器的验证与测试
17
微处理器的系统结构设计 微处理器的执行机制设计 微处理器流水线结构设计 微处理器逻辑设计与实现 处理器逻辑综合(Synopsys) 处理器物理综合(Candence) 处理器的验证与测试
18
微处理器的执行机制设计
19
微处理器的执行机制设计
20
微处理器的执行机制设计
21
微处理器的执行机制设计
– – – –
–
– – – –
大规模的片上分布式DRAM 深度流水线 8-12 20级以上 Advanced Super-scalar:16-32指令/clock cycle Super-speculative Processor:fine-grain heavy speculation Trace Processor Vector Intelligent RAM Procssor, V-IRAM on-chip multiprocessor Instruction-level Distributed Processing ( ILDP) Clustered Dependence-based Architecture
微处理器逻辑设计与实现
处理器结构级评价工具总结 寄存器级结构图 指令逻辑寄存器级描述 指令物理寄存器级描述 数据通路设计 控制器设计 中断控制设计 处理器集成
39
处理器结构级评价工具总结:指令级模拟
40
寄存器级结构图
41
微处理器设计
42
处理器逻辑设计:数据通路和控制器
43
微处理器的系统结构设计 微处理器的执行机制设计 微处理器流水线结构设计 微处理器逻辑设计与实现 处理器逻辑综合(Synopsys) 处理器物理综合(Candence) 处理器的验证与测试
17
微处理器的系统结构设计 微处理器的执行机制设计 微处理器流水线结构设计 微处理器逻辑设计与实现 处理器逻辑综合(Synopsys) 处理器物理综合(Candence) 处理器的验证与测试
18
微处理器的执行机制设计
19
微处理器的执行机制设计
20
微处理器的执行机制设计
21
微处理器的执行机制设计
– – – –
–
– – – –
大规模的片上分布式DRAM 深度流水线 8-12 20级以上 Advanced Super-scalar:16-32指令/clock cycle Super-speculative Processor:fine-grain heavy speculation Trace Processor Vector Intelligent RAM Procssor, V-IRAM on-chip multiprocessor Instruction-level Distributed Processing ( ILDP) Clustered Dependence-based Architecture
浙江大学高级嵌入式体系结构课件9 Pipeline II
q This is clearly a serious problem ( Control hazard ) that needs to be addressed. We will deal it later.
Pipeline hazard: the major hurdle
q A hazard is a condition that prevents an instruction in the pipe from executing its next scheduled pipe stage
Insert Stall—simplest way
Time (clock cycles)
ALU Mem ALU Reg Mem ALU Reg Mem Reg
I n s t r. O r d e r
Ld/St Instr 1 Instr 2 Stall Instr 3
Mem
Reg Mem
Reg Mem
q Taxonomy of hazard
Ø Structural hazards Ø Data hazards
¡ These are conflicts over hardware resources. ¡ Instruction depends on result of prior
computation which is not ready (computed or stored) yet
q Structural hazards
Structural hazard: Pipe Stage Contention
Ø Occurs when two or more instructions want to
use the same hardware resource in the same cycle
《嵌入式系统结构》课件
云计算和网络化
嵌入式系统将更多地与云计算和网络技术结 合,实现远程控制和数据传输。
定制化设计
随着应用领域的多样化,嵌入式系统的定制 化设计需求越来越高。
02
嵌入式系统硬件结构
微处理器
微处理器是嵌入式系统的核心 ,负责控制和协调整个系统的 运作。
常见的微处理器类型包括ARM 、MIPS、PowerPC等,它们 具有低功耗、高性能的特点。
嵌入式系统优化技术
01
嵌入式系统优化技术概述
介绍嵌入式系统优化的目的、方法和技巧,以及优化工具的种类和功能
。
02
代码优化技术
介绍代码优化的常用方法和技巧,如变量优化、循环优化、函数优化等
,以及如何使用代码优化提高程序执行效率和降低功耗。
03
内存优化技术
介绍内存优化的常用方法和技巧,如内存管理、内存泄漏检测和内存压
嵌入式系统硬件结构实例
ARM架构嵌入式系统
ARM处理器具有低功耗、高性能的特点,广泛应用于移动设备和物联网领域。
MIPS架构嵌入式系统
MIPS处理器具有简单高效的特点,常用于网络设备和数字电视领域。
03
嵌入式系统软件结构
嵌入式操作系统
实时性
嵌入式操作系统能够提供实时响应, 确保系统在规定时间内完成特定任务 。
《嵌入式系统结构》ppt课件
contents
目录
• 嵌入式系统概述 • 嵌入式系统硬件结构 • 嵌入式系统软件结构 • 嵌入式系统的开发工具与技术 • 嵌入式系统的应用案例
01
嵌入式系统概述
定义与特点
定义
嵌入式系统是一种专用的计算机系统,主要 用于控制、监视或帮助操作机器和设备。
嵌入式系统概述浙江大学
定符,强制读取内存中的值。
void main(void) {
volatile int *p_status; int *p_data;
p_status = (int *)0x4001; p_data = (int *)0x4000;
do { } while((*p_status & 0x01) == 0); …… }
嵌入式系统走向繁荣,软、硬件日臻完善
? 嵌入式系统的大发展是在微处理问世之后:
? 1971年11月,Intel公司推出了第一片微处理器Intel4004。
人们再也不必为设计一台专用机而研制专用的电路、专用的运 算器了,只需以微处理器为基础进行设计。 ? 1976年,第一个单片机Intel 8048出现。 ? 1982年,第一个DSP出现,比同期的CPU快10~50倍。 ? 80年代后期,第三代DSP芯片出现。
软件技术的进步使嵌入式系统日臻完善:
? 早期嵌入式系统:采用汇编语言,基本不采用操作系统 ? 硬件的提升 ? 软件技术发展
嵌入式系统应用走向纵深化发展
?应用充分普及: 工业控制、数字化通讯、数字化家电
? 汽车:50个以上嵌入式微处理器 ? 飞机:70个以上嵌入式系统
?嵌入式微处理器 32位、64位、128位 ?嵌入式实时操作系统使用比率越来越高
强实时型:响应时间μ s~ms级; 一般实时:响应时间ms~s级; 弱实时型:响应时间s级以上。
嵌入式系统与桌面通用系统的区别(3/7)
? 嵌入式系统中使用的操作系统一般是实时操作系统 ? 嵌入式实时操作系统数量众多,如:
? VxWorks ? Windows CE ? pSOS ? QNX ? uc/OS
? 国内,2009年嵌入式软件规模300亿元以上,过去三年中, 年均增长速度超过20%,预计未来三年高达25%。
void main(void) {
volatile int *p_status; int *p_data;
p_status = (int *)0x4001; p_data = (int *)0x4000;
do { } while((*p_status & 0x01) == 0); …… }
嵌入式系统走向繁荣,软、硬件日臻完善
? 嵌入式系统的大发展是在微处理问世之后:
? 1971年11月,Intel公司推出了第一片微处理器Intel4004。
人们再也不必为设计一台专用机而研制专用的电路、专用的运 算器了,只需以微处理器为基础进行设计。 ? 1976年,第一个单片机Intel 8048出现。 ? 1982年,第一个DSP出现,比同期的CPU快10~50倍。 ? 80年代后期,第三代DSP芯片出现。
软件技术的进步使嵌入式系统日臻完善:
? 早期嵌入式系统:采用汇编语言,基本不采用操作系统 ? 硬件的提升 ? 软件技术发展
嵌入式系统应用走向纵深化发展
?应用充分普及: 工业控制、数字化通讯、数字化家电
? 汽车:50个以上嵌入式微处理器 ? 飞机:70个以上嵌入式系统
?嵌入式微处理器 32位、64位、128位 ?嵌入式实时操作系统使用比率越来越高
强实时型:响应时间μ s~ms级; 一般实时:响应时间ms~s级; 弱实时型:响应时间s级以上。
嵌入式系统与桌面通用系统的区别(3/7)
? 嵌入式系统中使用的操作系统一般是实时操作系统 ? 嵌入式实时操作系统数量众多,如:
? VxWorks ? Windows CE ? pSOS ? QNX ? uc/OS
? 国内,2009年嵌入式软件规模300亿元以上,过去三年中, 年均增长速度超过20%,预计未来三年高达25%。
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Delayed branch
qGood news
Ø Just 1 cycle to figure out what the right
branch address is Ø So, not 2 or 3 cycles of potential NOP or stall
qStrange news
q Compiler
Ø Can improve the performance by coding the most
frequent case in the taken path.
1.
Pipeline status for predictBranch is taken: 1 stall
44 BEQ R1, 24 48 AND R12, R2, R5 72 LW R4, 50(R7) 76 80 IF ID IF EX idle IF MEM idle ID IF WB idle EX ID IF idle MEM EX ID WB MEM EX
assume the branch to be taken and begin fetching and executing at the target. branch outcome.
Ø Only useful when the target is known before the Ø No advantage at all for MIPS 5-stage pipeline.
1.
Predict –taken
q Hardware
Ø Treat every branch as taken (evidence: more than
60% braches are taken)
Ø As soon as the branch target address is computed,
1.
Recall: solve the hazard by inserting
2 48 or472
48 or 72
1.
The pipeline status
Branch instruction Branch Successor Branch successor+1 Branch successor+2 Branch successor+3 IF ID IF EX MEM WB idle IF idle ID IF EX ID IF stall stall
qCompiler:
Ø Can improve the performance by coding the
1. the untaken path. most frequent case in
Alternative is assuming the branch always
q Most branches(60%) are taken, so we should make
corrupt machine state
1.
Move the Branch Computation
1.
Move the Branch Computation more
store load
1.
Result: New & Improved MIPS
•Need just 1 extra cycle after the BEQ branch to know right address •On MIPS, its called - the branch delay slot
40 ADD R30,R30,R30 44 BEQ R1, 24 48 AND R12, R2, R5 52 OR R13, R6, R2 IF ID IF EX ID IF MEM EX ID IF WB MEM EX ID WB MEM WB EX MEM
Branch is taken: 1 stall
Ø Predict-taken
¡ Treat every branch as taken
Ø Delayed branch
q Note:
Ø Fixed hardware Ø Compile time scheme using knowledge of hardware
scheme and of branch behavior
half of the ideal performance.
1.
Always Stall Hurts the Not- taken
2 4
1.
How about assume Branch Not Taken
1.
What If Branch Was Taken…?
1.
How to do with the branch taken ?
q Consequences
Ø We mistakenly start executing the wrong
instructions
Ø To repair this, must make sure that they DO NOT
really execute
Ø In particular, must ensure they do not incorrectly
1.
Control hazard
1.
Dealing with the control hazard
q Four simple solutions
Ø Freeze or flush the pipeline Ø Predict-not-taken (Predict-untaken)
¡ Treat every branch as not taken
software scheduling, otherwise have to stall
Ø Control hazards ¡ branch condition and the branch PC are not available in time to fetch an instruction on the next clock
Ø Data hazards
¡ Instruction depends on result of prior computation which
is not ready (computed or stored) yet
¡ OK, we did these, Double Bump, Forwarding path,
48 or 72
1.
Flushing : need only to insert one stall
48 or 72
40 ADD R30,R30,R30 44 BEQ R1, 24 48 AND R12, R2, R5 48 or 72
IF
ID IF
EX ID IF
MEM EX idle IF
WB MEM idle ID WB idle EX idle MEM
Ø OK, it’s always 1 cycle, and we always have to
wait Ø And on MIPS, this instruction always executes, no matter whether the branch taken or not
1.
Branch delay slot
1.
Stalls greatly hurt the
qProblem:
Ø With a 30% branch frequency and an ideal
CPI of 1, how much the performace is by inserting stalls ?
qAnswer:
Ø CPI = 1+30%×3=1.9 Ø this simple solution achieves only about
24
1.
Predict –not-taken
qHardware:
Ø Treat every branch as not taken (or as the
formal instruction)
¡ When branch is not taken, the fetched
instruction just continues to flow on. No stall at all. ¡ If the branch is taken, then restart the fetch at the branch target, which cause 3 stall. (should turn the fetched instruction into a noop)
qControl hazards can cause a greater greater performance loss for MIPS pipeline than do data hazards.
1.
Example: Branches
R3, 24
1.
Recall: Basic Pipelined
q Hence the name: branch delay slot
Branch is not taken: 3 stall
44 BEQ R1, 24 48 AND R12, R2, R5 72 LW R4, 50(R7) 76 48 AND R12, R2, R5
1.
IF
ID IF
EX idle IF
MEM idle ID IF
WB idle idle idle IF idle idle idle ID idle idle EX
1.
The Control hazard
qCause
Ø branch condition and the branch PC are not