905c009376ce3848888fb27370fa59ed.ppt
- Количество слайдов: 73
嵌入式系统 — 嵌入式系统设计方法 2006年 4月21日
主要内容 n 嵌入式系统面临的挑战 n 嵌入式系统的设计 n 嵌入式系统软硬件协同设计 n 嵌入式系统节能设计
IEEE/ACM 课程大纲关于计算机学科主领域的划分 CC 1991(9+2个主领域) CC 2001(14个主领域) 离散数学(预备知识) 离散结构(DS) 程序设计语言引论 程序设计基础(PF) 算法与数据结构 算法与复杂性(AL) 计算机系统结构(AR) 操作系统 程序设计语言 人-机通信 操作系统(OS) 网络计算(NC) 程序设计语言(PL) 人机交互(HC) 图形学和可视化计算(GV) 人 智能与机器人学 智能系统(IS) 数据库与信息检索 信息管理(IM) 软件方法学与 程 软件 程(SE) 社会、道德和职业的问题 社会和职业的问题(SP) 数值与符号计算 科学计算(SC)
嵌入式系统 n 嵌入式系统: 以应用为中心,以计算机技术为基础, 软件硬件可裁剪,适应应用系统对功能、可 靠性、成本、体积、功耗诸方面严格要求的 专用计算机系统。
嵌入式系统特点: n n n n 软件硬件协同并行开发 多种多样的微处理器 实时操作系统的多样性 (RTOS) 与台式机相比,可利用系统资源不足 应用支持很少 要求特殊的开发 具 调试很困难 软件硬件的鲁棒性(健壮性,Robust)
嵌入式系统要解决的主要问题 n 需要用什么样的系统结构来实现? n 如何满足时限要求,如何处理多项功能在时间上的协 调一致关系? n 如何保证系统可靠地 作? n 如何满足系统接口要求,嵌入式应用直接和系统接口 输入输出信息? n 如何降低系统的功耗? n 如何使系统可升级?
嵌入式系统设计的挑战性问题 n 软硬件协同设计 n 功耗的优化设计 n 嵌入式操作系统 n 开发环境 n 成本和开发周期 n 代码优化 n 高效的输入和输出 n 测试环境
嵌入式系统软件技术面临的几大问题 n n n 嵌入式软件全生命周期开发 具链 硬件与软件的Co-Design: Verilog + C = ? 驱动程序的设计和生成技术(嵌入式软件开发中 最令人头疼的问题) 嵌入式软件的可靠性问题: 正确性验证技术、测 试技术、调试技术等(可靠性问题是嵌入式软件 开发的基本问题) 可重构计算(Reconfigurable Computing)技术 可构件化的嵌入式实时操作系统及其开发环境
嵌入式系统的设计 设计: 问题: 嵌入式系统 选择 折衷 分析比较 计算 评价 功能、性 能要求 价格、开 发周期等 约束 方法 具
设计流程—自顶向下或自底向上设计 需求 设计说明 自顶向下 设计 体系结构 构件设计 系统集成 自底向上 设计
需求分析 n n n 作用 n 使用户和设计者有效交流、沟通,明确设计目标 n 设计者 - 设计什么?有哪些要求? n 用户 - 将得到的系统是什么样的? 目标 n 形成需求文档 内容 n 功能性需求 做什么? n 输入, 输出, 功能,…… n 非功能性需求 其他属性 n 可靠性,速度,功耗,…… n 成本, 大小, 重量, 设计时间, ……
评价标准 n n n n 正确性 无二义性 完整性 可检验性 一致性 可修改性 可追踪性
需求分析的描述 n 自然语言 n n n 需求说明书 需求分析表 形式化描述 n n 用例图等 DOORS
例:GPS移动地图的需求
规格说明 n 规格说明与需求的比较 n n n 目标 n n 需求的提炼 是可用来创建体系结构的关于系统的更详尽、 更精确、更一致的描述 形成规格说明书 内容 n 包含系统体系结构设计的足够信息
规格说明书的描述 n 自然语言 n 形式化描述 n n n UML RSML SDL
规格说明 n 需求的精确描述 n n 描述明确,可理解 UML (Unified Modeling Language) 统一建模语言是可视化的设计说明语言 统一描述系统的硬件和软件 n n UML 可对系统的功能建模 可自动产生实际设计的HDL 或C++ 代码
UML的应用 n I-Logix公司的Rhapsody系列产品 n 基于统一建模语言UML的可视化编程环境 n 把UML各类视图映射为具体目标机程序语言 n 用于复杂实时嵌入式应用软件从分析、设计一 直到代码实现和软件测试的开发过程 n NASA的火星探路者航天器就是运用Rhapsody在 Vx. Works上开发应用程序。
系统结构设计 n n n 系统如何实现设计说明书描述的功能 基于组件的系统结构 软件/硬件划分 n n 嵌入式系统中软件和硬件协同完成系统的 功能 软件硬件划分通常由速度、灵活性以及开销 来决策
嵌入式计算机系统基本结构 应用软件 嵌入式操作系统 监控程序 板级支持程序 硬件 单片机, X 86, Power. PC, ARM, MIPS, ……
嵌入式系统组成
系统结构设计
系统结构设计 n 作用 n n 目标 n n 实现系统的蓝图,系统整体结构的一个计划 形成结构设计文档 内容 n n 系统分析 系统软硬件整体结构的设计 软硬件划分 标准构件和自行设计构件的确定
评价标准 n n n n 有弹性 简单 可实现 层次清晰 功能分布平衡 平衡技术和经济约束 满足功能需求和非功能需求 可重用
系统结构的描述 n 非形式化方式 n n n 自然语言 结构框图 形式化方法 n UML建模
系统结构的设计过程及方法 n 结构化设计方法 以算法为中心,从处理到处理的 数据流 n n 从输入、输出入手,根据操作和数据流,形成 比较粗的系统大框架; 然后逐步细化框架内的每个部分,进一步确定 内部模块的及模块之间的关系 设计过程应该是逐步细化和逐步完善的过程 面向对象的方法 以类及交互模式为中心
系统软件结构的设计 n 结构化方法(SA/SD) n 面向对象的方法(OOA/OOD) n UML建模
结构设计的验证 n n n 结构设计的正确性非常关键 n 详细设计和实现的基础,对开发周期、成本有很大影响 验证所关心的问题 n 结构设计是否满足功能、性能要求 n 能否实现 验证方法 n 形式化方法 n 仿真 n 系统结构 n 软件结构 n 硬件结构 n 其他方法 n 如基于开发板的原型系统
系统引入错误和修改错误开销分布 引入错误数目 修改错误开销 系统结构 设计 软硬件 详细设计 软硬件 实现 开发周期
软硬件的划分 嵌入式系统的设计涉及硬件与软件部件,设计中必 须决定什么功能由硬件实现,什么功能由软件实现。 n 硬件和软件具有双重性 n 软硬件变动对系统的决策造成影响 n 划分和选择需要考虑多种因素 n 硬件和软件的双重性是划分决策的前提
通常由软件实现的部分 n 操作系统功能 任务调度 n 资源管理 n 设备驱动 n n 协议栈 n TCP/IP 应用软件框架 n 除基本系统、物理接口、基本逻辑电路, 许多由硬件实现的功能都可以由软件实现。 n
双重性部分 n 算法 n n 编码/解码 n 压缩/解压 n n 加密/解密 …… 数学运算 n 浮点运算, FFT, …… n ……
标准构件和自行设计构件 n 构件的实现 n n n 选择标准 自行设计 标准构件 = ?现成构件 n 已经产品化 n 形成规模生产 n 标准构件 + 自行设计构件 = 用户系统 n 构件包括了硬件构件和软件构件 n 构件本身可以是层次性的,可以由子构件组成
标准硬构件 n n 硬构件的形式: IC:集成电路 PCB:印刷电路板 IP:Intellectual Property n 标准 IC n n 标准 IP n n CPU核,…… 标准模块 n n n CPU, DSP, …… RAM, ROM, 接口控制器,…… ASIC, …… GPRS模块, GSM模块, 蓝牙模块, …… 显示模块,…… 标准计算平台 n 基于PC 104的嵌入式计算机 n 基于Compact PCI的嵌入式计算机 n SOC, ……
标准软构件 n n OS / RTOS 协议栈 n TCP/IP n 路由协议 n H. 323 n …… 图形开发包 n Vx. Works的ZINK n …… 驱动程序
自研硬构件 n 内容 n n 实现方式 n n n 逻辑电路,专用加速器,…… PCB: IC:PLD FPGA ASIC, …… EDA设计 具 n 板级: n n n 原理图设计 具 PCB设计 具 IC n n 硬件描述语言: VHDL, Verilog 原理图描述 具 综合仿真 具 布线器, …………
自研软构件 BSP n 驱动程序 n 应用程序 n …… n
软硬件技术对系统结构的影响 n 硬软件设计的趋势——融合、渗透 n 硬件设计的软件化 n n n VHDL, Verilog HANDL-C 软件实现的硬件化 n n 各种算法的ASIC 对系统设计的影响——协同设计 n 增加灵活性 n 增加了风险
嵌入式系统设计者要求 n n n 懂得系统的整个构架 详细了解硬件的细节 软件设计满足: n n 实时要求 低功耗 代码量小 详细了解领域知识
嵌入式系统软硬件协同设计
软硬件协同设计
软硬件协同设计 n 硬件设计 具(EDA 具) n 系统级设计 具 n n n 模拟电路系统仿真 具 n n n Pspice EWB PCB设计 具 n n Cadence的SPW System View Protel PADs 的Power PCB & Tool Kit Mentor的Expedition & Tool Kit 可编程逻辑器件设计 具 n n n Mentor FPGA Advantage & Model. Sim Xilinx Foundation ISE & Tool Kit 各种综合和仿真第三方 具
软硬件协同设计定义与主要概念 n 软硬件协同设计定义 n n The meeting of system-level objectives by exploiting the trade-offs between hardware and software in a system through their concurrent design 主要概念 n n Concurrent(并发): hardware and software developed at the same time on parallel paths Integrated(一体化): interaction between hardware and software developments to produce designs that meet performance criteria and functional specifications
嵌入式系统快速原型设计过程 REUSE DESIGN LIBRARIES AND DATABASE Primarily software VIRTUAL PROTOTYPE HW DESIGN SYSTEM DEF. FUNCTION DESIGN HW & SW CODESIGN HW & SW PART. Primarily hardware HW FAB INTEG. & TEST SW DESIGN HW & SW Partitioning & Codesign SW CODE
嵌入式系统快速原型开发的基本要素 n 系统定义(需求分析) n 软硬件划分 n 结构规划 – 处理器类型, 软硬件之间的接口类型, 等. n 划分目的 – 满足系统速度, 延迟, 体积, 成本等方面的要求. n n 划分策略 - high level partitioning by hand, automated partitioning using various techniques, etc. 调度 n n Instruction scheduling in compilers n n Operation scheduling in hardware Process scheduling in operating systems 软硬件设计过程中的建模
传统的嵌入式系统设计模型 DOD-STD-2167 A HWCI Testing HW Development Fabric. System Concepts Sys/HW Require. Analysis Sys/SW Require. Analysis Hardware Require. Analysis Prelim. Design Detailed Design System Integ. and test Software Require. Analysis SW Development Prelim. Design Detailed Design Coding, Unit test. , Integ. test CSCI Testing Operation. Testing and Eval.
传统的嵌入式系统设计过程 n n n 传统软硬件设计过程的基本特征: n 系统在一开始就被划分为软件和硬件两大部分 n 软件和硬件独立进行开发设计 n “Hardware first” approach often adopted 隐含的一些问题: n 软硬件之间的交互受到很大限制 n 软硬件之间的相互性能影响很难评估 n 系统集成相对滞后,NRE较大 因此: n Poor quality designs(设计质量差) n Costly modifications(设计修改难) n Schedule slippages(研制周期不能有效保障)
传统设计过程中的尖锐矛盾 随着设计复杂程度的提高,软硬件设计中 的一些错误将使开发过程付出昂贵的代价 n “Hardware first” approach often compounds(混合) software cost because software must compensate for( 补偿) hardware inadequacies(不充分) n
软硬件设计过程发展方向-协同设计 Integrated Modeling Substrate(一体化建模底层) HWCI Testing HW Development Fabric. System Concepts Sys/HW Require. Analysis Sys/SW Require. Analysis Hardware Require. Analysis Prelim. Design Detailed Design Integrated Modeling Substrate Software Require. Analysis Prelim. Design Detailed Design SW Development © IEEE 1991 Coding, Unit test. , Integ. test System Integ. and test Operation. Testing and Evaluation CSCI Testing [Franke 91]
嵌入式软件的开发过程(瀑布模型) Requirement Analysis Software Design Coding Testing Release
软硬件协同设计的基本需求 n n 统一的软硬件描述方式 n 软硬件支持统一的设计和分析 具(技术) n 允许在一个集成环境中仿真(评估)系统软硬件设计 n 支持系统任务在软件和硬件设计之间的相互移植 交互式软硬件划分技术 n 允许多个不同的软硬件划分设计进行仿真和比较 n 辅助最优系统实现方式决策 n 将软硬件划分应用到模块设计,以便最佳地实现系统的 设计指标。Partitioning applied to modules to best meet design criteria (功能和性能目标)
软硬件协同设计的基本需求 (续) n 完整的软硬件模型基础 n n n 支持在设计过程中的几个阶段的综合评价 支持软硬件逐步的开发和集成 正确的验证方法 n 确保系统设计达到的目标要求
典型的软硬件协同设计过程 Another HW/SW partition Concurrent processes Programming languages HW/SW Partitioning FSMdirected graphs System Description (Functional) Unified representation (Data/control flow) SW Software Synthesis HW Interface Synthesis System Integration Hardware Synthesis Instruction set level HW/SW evaluation
经典的软硬件协同设计方法 Analysis of Constraints and Requirements System Specs. . HW/SW Partitioning Hardware Descript. HW Synth. and Configuration Modules Software Descript. Interface Synthesis Hardware Components Software Gen. & Parameterization HW/SW Interfaces Software Modules HW/SW Integration and Cosimulation Integrated System Evaluation © IEEE 1994 Design Verification [Rozenblit 94]
软硬件协同设计的优势 n n 在设计初始阶段就可进行软硬件交互设计和调整 n Provides continual verification throughout the design cycle(贯穿整个设计周期) n Separate HW/SW development paths(开发路 线) can lead to costly modifications and schedule slippages(导致代价昂贵的纠错成本 和开发进度的下降) 关键技术(如可编程逻辑综合技术、器件接口和功 能模型描述)的进步使得软硬件交互设计变得简单 起来
软硬件协同设计技术的现状 n 主要问题: n n n 缺乏标准化的表示方法 缺乏好的验证和评价方法 可能的解决方案: n 扩展已有的硬件/软件语言 具并应用到不同种类情况 n 扩展形式验证技术并应用到硬件/软件领域 n 基于FPGA的嵌入式系统设计--SOPC设计
软硬件协同设计基本步骤 HW-SW system involves n Specification(设计描述) n modeling (设计建模) n design space exploration and partitioning n synthesis and optimization(综合与优化) n Validation(设计验证) n implementation (设计实现)
软硬件协同设计基本步骤 Specification(设计描述) n List the functions of a system that describe the behavior of an abstraction clearly with out ambiguity. Modeling(设计建模) n Process of conceptualizing and refining the specifications, and producing a hardware and software model.
软硬件协同设计基本步骤 Validation: Process of achieving a reasonable level of confidence(置信度) that the system will work as designed. n Takes different flavors per application domain(根据 应用领域而不同): cosimulation for performance and correctness(性能与功能的协同仿真)
软硬件协同设计基本步骤 Implementation: n Physical realization of the hardware (through synthesis) n and of executable software (through compilation).
协同设计中的软硬件划分与调度 (where and when) n n A hardware/software partitioning represents a physical partition of system functionality into application-specific hardware and software. Scheduling is to assign an execution start time to each task in a set, where tasks are linked by some relations.
嵌入式系统的节能设计 (硬件节能、软件节能)
嵌入式系统的节能设计 n n 节能计算成为嵌入式系统设计、系统软件重点 考虑的基本方面: 节能计算包括: n 硬件体系结构支持 n n n 在小巧外形尺寸下,如何实现所需电源性能的 艺和技术 热管理、降噪、电池管理和功能整合 软件支持 n n n 节能编译 操作系统 节能策略
现状 n n 电源管理策略 面向PC、笔记本电脑、服务器、通信设 备的刀片服务器 n n n APM:高级电源管理方案 ACPI:高级配置和电源接口 根据嵌入式系统模型定制节能技术非常 缺乏,甚至在某些方面是空白
手持设备电源管理 n 电池寿命不等同于电源管理的成效 n n 性能、多媒体系统、数码摄像 新增功能增加系统的耗电量 缩短电池寿命 影响因素 n n CPU 功能 系统软件 中间件 管理策略
传统手持设备管理策略 n n n 处理器时钟变慢 操作系统转入待机、睡眠状态 动态电源管理 (DPM) n n n 调整内核电压和频率 高性能存储器 彩色显示器 无线接口 固化为通用电源管理IC
软件节能策略 n n 预测什么时候设备的未来使用状况或者 使用率 “time-out”策略预测特定的时间长度 基于GSPN网络和HMM的技术 Montavista n n 基于linux 通用性强,但是嵌入式系统定制性强,效果 不佳
能耗测试 n 测试出每条指令的能耗,估计测试程序 运行完的总能耗 n 测试出每个函数的能耗,然后利用这些 函数作为标准去估计其他函数运行的能 耗
节能操作系统 n 目的 n n n CPU 电压和频率调节会给实时性能带来了严峻挑战 n n 可能造成不稳定 “重新锁定”锁相环路和其它动态时钟机制需要时间,造成了很长 的等待时间(有时是毫秒级别) 锁定期间 CPU 既不能执行计算操作,又不能响应外部事件(中断) 每一软件 n n 保证操作系统实时性的前提下,完成能耗计算 调度算法的节能优化 中断处理优化 低功耗文件系统 相应的手机最低电压 CPU频率 相应设备 通过动态的调节CPU的内核频率与内核电压,以及动态的 关闭系统的某些设备和调整某些设备的状态
外设驱动 n n 针对不同功能部件的能耗,进行合理的功耗优化 从电池开始,严格和精确地电量测量 根据外设特征研究不同的电源管理策略下的驱动 现有情况 n n 硬件产品有几种状态定义 状态提供不同的服务质量和消耗的能量 提供各种状态之间的转换接口 算法目标 n n 实现状态转换的节能策略 减少待机能耗 人 智能技术的应用 通过软件来动态的预测和控制某些部件的开关
节能通讯协议栈 n 连接干预 n 节能的传输调度算法 n n n 缓冲区技术 局部性原理与预取 低功耗压缩算法
节能编译 n 对每条指令的能耗进行测试 n 对函数编译结果的能耗进行估计 n 错误处理代码的能耗设计 n 基于ICE进行函数执行代码统计
905c009376ce3848888fb27370fa59ed.ppt