嵌入式系统设计方法概论.pdf
嵌入式系统设计方法概论李曦计算机系、计算机应用研究室 2/71内容提要 系统论概要 现行嵌入式系统(软件)开发方法 基于”宿主机目标机“的交叉编译方法 嵌入式系统基本度量指标与权衡 嵌入式系统协同设计方法与流程 嵌入式系统开发环境 3/71系统论 由生物学家 L.V.贝塔朗菲在 1920s 提出,1968 年确立 任何系统都是一个有机整体,它不是各个部分的机械组合或简单相加 系统的整体功能是各要素在孤立状态下所没有的新性质 亚里士多德:”整体大于部分之和“系统”的定义 由若干相互关联的要素以一定结构形式连接,具有明确的边界,共同完成某种功能的有机整体。4/71系统分析 系统的特征 基本特征:整体性、联系性、层次结构性、动态平衡性、时序性 一致性:系统要协调一致 界面等 功能关系 每个部件的特征或行为必须对整体有贡献 每个部件的特征或行为依赖于其他部件 分析 分解、模块化、层次化、耦合度、聚合度 5/71系统建模 模型:对现实的抽象 不是现实,只是对现实中一些要素的反映 常见模型 图像模型:直观模拟现实情况 类比模型:采用类比方法描述对象属性 符号模型:数学模型 6/71系统建模评估 明确建模对象及其特征 定义设计空间 从设计空间中选择须建模分析的候选方案 对候选方案进行模拟评估 性能维 成本维:直接成本、使用成本、维修成本 时空维:系统存在的时空限度 扩展维 7/71嵌入式系统设计步骤 8/71嵌入式系统设计步骤系统需求分析 确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。功能性需求:是系统的基本功能,如输入输出信号、操作方式等;非功能性需求:包括系统性能、成本、功耗、体积、重量等因素。体系结构设计 描述系统如何实现所述的功能和非功能需求包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型等。9/71嵌入式系统设计步骤(续)硬件硬件/软件设计软件设计 基于体系结构,对系统的软件、硬件进行详细设计基于体系结构,对系统的软件、硬件进行详细设计 为了缩短产品开发周期,设计往往是并行的为了缩短产品开发周期,设计往往是并行的 嵌入式系统设计的工作大部分都集中在软件设计上嵌入式系统设计的工作大部分都集中在软件设计上 采用面向对象技术、软件组件技术、模块化设计是现代软采用面向对象技术、软件组件技术、模块化设计是现代软件工程经常采用的方法。件工程经常采用的方法。系统集成系统集成 把系统的软件、硬件和执行装置集成在一起,进行把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。调试,发现并改进单元设计过程中的错误。系统测试系统测试 是否满足规格说明书中给定的功能要求。是否满足规格说明书中给定的功能要求。10/71Our requirements formnam epur posei nput sout put sf unct i onsper f or m ancem anuf act ur i ng costpowerphysi cal si ze/wei ght 11/71Ex:GPS moving map requirements Moving map obtains position from GPS paints map from local database.lat:40 13 lon:32 19I-78Scotch Road 12/71GPS moving map needs Functionality:For automotive use.Show major roads and landmarks.User interface:At least 400 x 600 pixel screen.Three buttons max.Pop-up menu.Performance:Map should scroll smoothly.No more than 1 sec power-up.Lock onto GPS within 15 seconds.Cost:$500 street price=approx.$100 cost of goods 13/71GPS moving map needs,contd.Physical size/weight:Should fit in dashboard.Power consumption:Current draw comparable to CD 14/71GPS moving map requirements formnam eGPS m ovi ng m appur poseconsum er gr adem ovi ng m ap f or dr i vi ngi nput spower but t on,t wocont r ol but t onsout put sback l i t LCD 400 X 600f unct i ons5 r ecei ver GPS;t hr eer esol ut i ons;di spl ayscur r ent l at/l onper f or m anceupdat es scr een wi t hi n0.25 sec of m ovem entm anuf act ur i ng cost$100 cost of goodssol dpower100 m Wphysi cal si ze/wei ghtno m or e t han 2:X 6:,12 15/71如何形成 Specification?A more precise description of the system:should not imply a particular architecture;provides input to the architecture design process.May include functional and non-functional elements.May be executable or may be in mathematical form for 16/71GPS specification Should include:What is received from GPS;map data;user interface;operations required to satisfy user requests;background operations needed to keep the system running.作业:完成 GPS 的 S17/71Architecture design What major components go satisfying the specification?Hardware components:CPUs,peripherals,etc.Software components:major programs and their operations.Must take into account functional and non-functional 18/71GPS moving map block diagramGPSreceiversearchenginerendereruserinterfacedatabasedisplay 19/71GPS moving map hardware arch.GPSreceiverCPUpanel I/Odisplayframebuffermemory 20/71GPS moving map software archpositiondatabasesearchrenderertimeruserinterfacepixels 21/71Designing hw/sw components Must spend time architecting the system before you start coding.Some components are ready-made,some can be modified from existing designs,others must be designed from 22/71System integration Put together the components.Many bugs appear only at this stage.Have a plan for integrating components to uncover bugs quickly,test as much functionality as early as 23/71复杂性和异构性 异构性表现在硬件和软件两方面 SW(粉):control oriented,DSP oriented HW(青):ASICs,COTS ICs controllercontrol panelReal-timeOScontrollerprocessesUIprocessesASICProgrammableDSPProgrammableDSPDSPAssemblyCodeDSPAssemblyCodeDual-portedRAMCODEC 24/71从行为映射到结构Vincentelli 25/71Embedded System Design from a Design Technology Perspective 设计任务 Specification/modeling H/W&S/W partitioning Scheduling&resource allocations H/W&S/W implementation Verification&debugging 关键是软硬件协同设计和软硬件的优化ProcessorAnalog I/OMemoryASICDSPCode 26/71Processor Analog I/OMemoryASICEnviron-mentDSP CodeEmbedded System Design FlowModeling 系统建模,算法实验,评估Refining(or“partitioning”)将功能细分为更小的,相互作用的模块;HW-SW partitioning:Allocating 在细化的模型中,确定(1)硬件部分和(2)运行在特定硬件或合适的可编程处理器上的软件部分Scheduling 确定每一功能的执行时间,这一点对于多个模块共享单一硬件部件时尤为重要.Mapping(Implementing)将功能描述映射到运行在某一处理器上的软件或定制的/半定制的/通用的硬件平台上 27/71嵌入式系统设计 设计目标 设计并实现满足需求约束的一个系统 设计指标(Design metric)系统实现的可度量特征 关键问题:optimizing design metrics Trade-off:需要对多种设计指标(性能、功耗、成本)进行优化和权衡 28/71基本度量指标 Unit cost:the monetary cost of manufacturing each copy of the system,excluding NRE cost NRE cost(Non-Recurring Engineering cost):The one-time monetary cost of designing the system Size:the physical space required by the system Performance:the execution time or throughput of the system Power:the amount of power consumed by the system Flexibility:the ability to change the functionality of the system without incurring heavy NRE cost 29/71基本度量指标(cont)Time-to-prototype:the time needed to build a working version of the system Time-to-market:the time required to develop a system to the point that it can be released and sold to customers Maintainability:the ability to modify the system after its initial release Correctness Safety many more 30/71Time-to-market:a demanding design metric TTM 从设计开始到产品可以销售所需的时间 Market Window 产品投放市场的最佳时间 平均 TTM 是 8 个月 TTM 的推迟将导致产品利润下降Revenues($)Time(months)Market Window 31/71产品收入下降的原因产品延期进入市场 Simplified revenue model Product life=2W,peak at W Time of market entry defines a triangle,representing market penetration Triangle area equals revenue Loss The difference between the on-time and delayed triangle areasOn-time Delayedentry entryPeak revenuePeak revenue from delayed entryMarket riseMarket fallW2WTimeDOn-timeDelayedRevenues($)32/71Losses due to delayed market entry(cont.)Area=1/2*base*height On-time=1/2*2W*W Delayed=1/2*(W-D+W)*(W-D)Percentage revenue loss=(D(3W-D)/2W2)*100%Try some examplesOn-time Delayedentry entryPeak revenuePeak revenue from delayed entryMarket riseMarket fallW2WTimeDOn-timeDelayedRevenues($)Lifetime 2W=52 wks,delay D=4 wks(4*(3*26 4)/2*262)=22%Lifetime 2W=52 wks,delay D=10 wks(10*(3*26 10)/2*262)=50%33/71产品研发成本(NRE)与产品成本(UnitCost)成本:total cost=NRE cost +unit cost*#of units 分摊:per-product cost =total cost /#of units =(NRE cost/#of units)+unit costExample NRE=$2000,unit=$100 For 10 units total cost=$2000+10*$100=$3000 per-product cost=$2000/10+$100=$300Amortizing NRE cost over the units results in an additional$200 per unit 34/71NRE and unit cost metrics$0$40,000$80,000$120,000$160,000$200,000080016002400ABC$0$40$80$120$160$200080016002400Num ber of uni t s (vol um e)ABCNum ber of uni t s (vol um e)Compare technologies by costs-best depends on quantity Technology A:NRE=$2,000,unit=$100 Technology B:NRE=$30,000,unit=$30 Technology C:NRE=$100,000,unit=$2 But,must also consider time-to-market 35/71性能指标 性能(Performance)时钟频率、IPS(instructions per second)等 但不是好指标:用户关心数码相机产生照片的速度 响应时间(response time)任务开始到结束的时间 相机 0.25s 完成照片处理 延迟(Latency)吞吐率(Throughput)Tasks per second,相机 A 每秒处理 4 幅照片 吞吐率比延迟可以更好的描述并发性 相机 B 每秒处理 8 幅照片(存储前一幅照片的同时抓拍一张新照片)加速比(Speedup)如 B 相对于 A 的加速比=B 的性能/A 的性能 Throughput speedup=8/4=2 36/71性能、功耗和能耗度量 功耗与能耗 性能与功耗 性能与能耗 不同的设计目标:关注的指标可能不同 高性能计算:性能与功耗 移动设备:性能与能耗 37/71设计指标的权衡 硬件、软件工程师都需要优化其设计指标 设计者需要选择合适的技术来最好地满足应用需求和约束 improving one may worsen othersSizePerformancePowerNRE costMicrocontrollerCCD preprocessorPixel coprocessorA2DD2AJPEG codecDMA controllerMemory controllerISA bus interfaceUARTLCD ctrlDisplay ctrlMultiplier/AccumDigital camera chiplensCCDHardwareSoftware 38/71传统的嵌入式系统设计模型SystemConceptsSys/HWRequire.AnalysisSys/SWRequire.AnalysisOperation.Testing and Eval.SoftwareRequire.AnalysisPrelim.DesignDetailedDesignCoding,Unit test.,Integ.testSW DevelopmentHWCITestingCSCITestingSystemInteg.and testHardwareRequire.AnalysisPrelim.DesignDetailedDesignFabric.HW Development 39/71传统的嵌入式系统设计过程 传统软硬件设计过程的基本特征传统软硬件设计过程的基本特征:系统在一开始就被划分为软件和硬件两大部分系统在一开始就被划分为软件和硬件两大部分 软件和硬件独立进行开发设计软件和硬件独立进行开发设计“Hardware first”approach often adopted 隐含的一些问题隐含的一些问题:软硬件之间的交互受到很大限制软硬件之间的交互受到很大限制 软硬件之间的相互性能影响很难评估软硬件之间的相互性能影响很难评估 系统集成相对滞后,系统集成相对滞后,NRE 较大较大 因此因此:Poor quality designs(设计质量差)(设计质量差)Costly modifications(设计修改难)(设计修改难)Schedule slippages(研制周期不能有效保障)(研制周期不能有效保障)传统设计过程中的尖锐矛盾 随着设计复杂程度的提高,软硬件设计中的一些错误将使开发过程付出昂贵的代价 在软件设计中,改正设计阶段发现的问题的代价是在需求定义阶段一个数量级在设计过程中进行确认是十分重要的 常规手段是通过仿真进行确认 为了弥补硬件的缺陷,“Hardware first”方法往往增加了软件成本 41/71硬件/软件设计技术的进展 软件设计:设计语言进化 机器指令:手工翻译 汇编器:自动翻译 编译器:高级语言 硬件设计:设计层次提高 逻辑门级 逻辑综合 将表达式或 FSMs 转换成门电路 Register-transfer(RT)级综合 将 FSMDs 转换成 FSMs、逻辑表达式或预定义的 RTL 级部件(registers,adders,etc.)Behavioral synthesis 将顺序代码转换成 FSMDsImplementationAssembly instructionsMachine instructionsLogic gatesLogic equations/FSMsRegister transfersSequential program code(e.g.,C,VHDL)Compilers(1960s,1970s)Assemblers,linkers(1950s,1960s)Behavioral synthesis(1990s)RT synthesis(1980s,1990s)Logic synthesis(1970s,1980s)Microprocessor plus program bitsVLSI,ASIC,or PLD implementationThe codesign ladder 42/71Co-design:软硬件设计过程发展方向 软硬件协同设计定义与主要概念 软硬件协同设计定义 The meeting of system-level objectives by exploiting the trade-offs between hardware and software in a system through their concurrent design 主要理念 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 协同设计模型SystemConceptsSys/HWRequire.AnalysisSys/SWRequire.AnalysisHardwareRequire.AnalysisSoftwareRequire.AnalysisOperation.Testing and EvaluationSW DevelopmentHW DevelopmentSystemInteg.and testHWCITestingCSCITesting Fr anke91Integrated Modeling SubstrateIntegrated Modeling SubstratePrelim.DesignPrelim.DesignDetailedDesignDetailedDesignFabric.Coding,Unit test.,Integ.test IEEE 1991 软硬件协同设计过程 Rozenbl i t 94Analysis of Constraintsand RequirementsSystem Specs.HW/SWPartitioningHardware Descript.Software Descript.HW Synth.andConfigurationInterface SynthesisSoftware Gen.&ParameterizationConfigurationModulesHardwareComponentsHW/SWInterfacesSoftwareModulesHW/SW Integrationand CosimulationIntegratedSystemSystem EvaluationDesign Verification IEEE 1994 实现软硬件协同设计的要求 统一的软硬件描述方式 软硬件支持统一的设计和分析工具(技术)允许在一个集成环境中仿真(评估)系统软硬件设计 支持系统任务在软件和硬件设计之间的相互迁移 交互式软硬件划分技术 允许对多个不同的软硬件划分设计方案进行仿真和比较,辅助最优系统实现方式决策 完整的软硬件模型基础 支持在多个设计阶段进行评估 支持阶段式软硬件开发和集成 正确的验证方法 确保系统设计达到目标要求 统一的设计表示与设计空间搜索 SystemIntegrationInstruction set levelHW/SW evaluationUnified representation(Data/control flow)HW/SWPartitioning Interface Synthesis Software SynthesisSWHardware SynthesisHW System Description(Functional)Concurrent processesProgramming languages FSM-directed graphs Another HW/SWpartition 48/71支持软硬件协同设计的技术关键 设计自动化技术(Automation)用程序设计代替手工设计 综合技术 复用技术(reuse)复用过去已设计好的组件 IP Cores 通用和专用处理器 验证技术(Verification)保证每一设计步骤的正确性和完备性 硬软件协同仿真ReuseSpecificationImplementationAutomationVerification 49/71三种关键技术的应用Libraries/IP:Incorporates pre-designed implementation from lower abstraction level into higher level.SystemspecificationBehavioralspecificationRTspecificationLogicspecificationTo final implementationCompilation/Synthesis:Automates exploration and insertion of implementation details for lower level.Test/Verification:Ensures correct functionality at each level,thus reducing costly iterations between levels.Compilation/SynthesisLibraries/IPTest/VerificationSystemsynthesisBehaviorsynthesisRTsynthesisLogicsynthesisHw/Sw/OSCoresRTcomponentsGates/CellsModel simulat./checkersHw-SwcosimulatorsHDL simulatorsGate simulators 50/71软硬件协同设计基本步骤 Specification 罗列系统功能,明确给出系统行为 Modeling 对 Spec 进行概念化和提炼,生成软硬件模型 DSE(design space exploration)and Partitioning Synthesis and Optimization Validation 确认所设计的系统达到合理的置信度 可以根据应用领域而不同进行性能与功能的协同仿真 Implementation 通过综合实现硬件,通过编译实现可执行的软件 51/71系统级综合 将一个或多个过程映射到一个或多个处理器 对于复杂的嵌入式系统 多个处理器可能会提供更好的 performance/power 用并发程序描述可能更好 基本任务 Transformation 合并、分解一些过程 进行一些高层优化 Procedure inlining Loop unrolling Allocation 必要的系统结构设计 处理器、存储器和总线的选择 52/71系统级综合(续)Partitioning 将 1 个或多个过程映射到 1 个或多个处理器上 确定存储器的容量 确定总线间的通讯 Scheduling 在一个处理器上的多个任务的调度 存储器访问的调度 总线通信的调度 由设计约束驱动的综合 例如:以最小的代价满足性能要求 尽可能的将有些功能分配给 GPP 完成,以便能低成本、高适应性的实现 用最少的 SPP 来满足性能要求 53/71行为级综合 高层综合 将单一的顺序程序映射到特定的处理器上 优化设计非常重要 Compiler Constant propagation dead-code elimination loop unrolling Advanced techniques for allocation,binding,scheduling 54/71验证(Verification)保证设计是正确的和完备的 正确 指精确地实现了所需的功能、性能等要求 完备性 描述与所有输入相关的输出 形式化验证(Formal verification)困难 仅适合于小的设计,或验证某些关键的属性 模拟(Simulation)大多数情况下都采用这种方法来验证 55/71模拟(Simulation)创建所设计的嵌入式系统计算模型 输入样本数据,检查输出 正确性验证举例 ALU 输入所有可能的输入数据 检查输出是否正确 完备性验证举例 电梯在运动时,门是关闭的 输入所有的输入序列 检查电梯运动时,门是否总是关闭的 56/71模拟增加可信度 在通常情况下,模拟不可能输入所有的输入序列 E.g.,32-bit ALU 232*232=264 possible input combinations At 1 million combinations/sec,million years to simulate Sequential circuits even worse 只能模拟一小部分输入 典型值 已知的边界条件 E.g.,32-bit ALU Both operands all 0s Both operands all 1s 模拟仅是增加了正确性和完备性的可信度,无法完全验证正确性和完备性(对大多数系统)57/71模拟与物理实现的比较:优点可控性强Control timeStop/start simulation at any timeControl data valuesInputs or internal values可观测性好Examine system/environment values at any time便于调试Can stop simulation at any pointObserve internal valuesModify system/environment values before restartingCan step through small intervals(i.e.,500nanoseconds)58/71模拟与物理实现的比较:缺点 模拟器构建时间问题 经常需要复杂的外部环境 可能模拟器构造时间比构造系统的时间还长 模型可能不够完备 在复杂环境下,有些环境行为很难表达 可能没有正确地对行为建模 模拟器速度一般比实际执行要慢得多 并行设计设计的顺序执行 IC:门是并行操作的 Simulation:每次为每个门分析输入,产生输出 加入了一些附加程序,分析系统性能参数 59/71性能分析平台-ARMulator 虚拟平台是理想的测试环境 模型能够精确记录计算过程 指令集模拟器 ISS(Instruction Set Simulation)报告出程序运行的 CPU状态信息统计,是程序性能分析的最佳方法。在 ARM 的开发工具ADS 或 RVDS 里面包含的ISS(ARMulator)60/71模拟器的实现方法 不同层次有不同的方法 very detailed E.g.,gate-level model very abstract(simplescaler)E.g.,instruction-level model 实现模拟的手段 GPP 软件实现 Typically with instruction-set simulator(ISS)SPP 硬件实现 Typically with models in HDL environment 系统中如果有 GPP 和 SPP,需要有协同仿真器 61/71GPP/SPP 协同仿真器 简单的方法:统一采用 HDL 模型 建立 HDL model of GPP Runs system software Much slower than ISS Less observable/controllable than ISS 建立 HDL models of SPPs Integrate all models 硬软件协同仿真器(cosimulation)ISS for microprocessor HDL model for SPPs 在两个模拟器间建立通信机制 各自独立运行,只有在需要传送数据时,通过通信传送数据 比较快。但通信频繁时,速度较慢。62/71协同设计中的软硬件划分与调度 划分 将系统功能物理切分为专用的硬件和软件 针对某一特定的功能,选择用硬件还是软件来实现,取决于各种指标的权衡 性能、功耗、NRE cost、适应性等 调度 为任务集中的每个任务分配起始执行时间 63/71软硬件功能分配方法软硬件功能分配是指在系统的功能分解完成以后,如何把这些功能映射到软件/硬件上来实现。问题描述 已知(F1,F2,F3,.,Fn),Fi=0/1,给出一种 0,1 组合,使得成本函数最小需解决的主要问题 搜索算法 系统评估模型 适应度函数与设计约束;软硬件协同设计技术的现状 主要问题:基于过去经验的多种手工方法 软硬件功能划分在设计的早期确定,然后分别设计 Lack of a standardized representation Lack of good validation and evaluation methods 可能的解决方案:Extend existing hardware/software languages to the use of heterogeneous paradigms Extend formal verification techniques to the HW/SW domain 基于 FPGA 的嵌入式系统设计 SOPC 设计 65/71Co-design 研究方向 66/71Modelling What is the best methodology for specifying HW/SW system?a high-level functional/algorithmic spec?HW-type language(VHDL,HW-C)or SW-type(C,C+)?formal spec language?(provably correct)same/differe