智能嵌入式系统的性能指标反映了智能嵌入式系统的能力。一般除了要规定智能嵌入式系统应该完成什么任务以外,也要规定评价该任务完成度的性能指标,如时间指标、成本指标等。设计与开发智能嵌入式系统时要考虑这些任务的硬件和软件性能指标。
智能嵌入式系统硬件通常是指一种基于特定目的设计的集成电路,又称ASIC,一般是由组合逻辑和触发器组成的单时钟同步电路板。该单时钟同步电路由寄存器、加法器和乘法器等基本模块组成,从底层器件的角度讲,包括逻辑门和晶体管。由时钟驱动的硬件模型通常称为寄存器传输级RTL(Register Transfer Level)模型。
软件在本书中定义为嵌入式系统上可以执行的程序,包括单线程串行执行的程序、多线程并行执行的程序、实现软硬件接口的程序以及实现智能嵌入式系统应用的程序,可用汇编语言、C、C++或Python等编程语言实现。
智能嵌入式系统的性能指标,也称设计指标,是产品可度量的特性。下面列出常用性能指标 [9] 。
成本 :成本是指从设计系统到生产产品所产生的货币成本,这里又分为设计成本和单位生产成本。设计成本:设计系统所需支付的一次性货币成本,包括硬件设计成本和软件开发成本。当系统设计完毕后,不需支付额外的设计费用,就可以制造任意数量的产品。单位生产成本:生产单个产品所需支付的货币成本,包括硬件生产成本和软件开发成本。
产品单位成本=单位生产成本+设计成本÷产品数量
总成本=设计成本+产品单位成本×产品数量
很明显,生产的产品越多,产品单位成本就越低,产品就越有市场竞争力。
大小 :大小是指系统所占用的空间。对于硬件来说是指逻辑门和晶体管数,从高层逻辑讲,是指集成电路板的面积,同时也指FPGA的LUT数;对于软件而言,一般是指字节数,嵌入式系统软件一般比较小,因此字节数也比较小。硬件面积越小(FPGA的LUT越少),其成本也就越低。
功耗 :功耗是指系统所消耗的功率,它决定了电池的寿命或集成电路IC(Integrated Circuit)的散热要求,功率越高系统越热。软件部分的功耗主要是指令执行功耗。硬件部分的功耗主要是逻辑电路和双口RAM的功耗,可以计入硬件整体功耗。通信功耗主要是通信指令的执行、通信电路的工作所产生的功耗。通信代码和电路的功耗都可以和其他部分软件与硬件的功耗合并在一起计算,所以通信功耗可以计入软硬件的整体功耗中。智能移动终端,比如智能手机,要非常关注其功耗,原因为其电池提供的电能是有限的。
时间 :时间是指系统完成规定任务所需要的时间。系统的硬件完成时间和软件完成时间共同影响着系统的时间性能。可以将系统要完成的任务分成若干个子任务,这些子任务的软件完成是串行执行的,而硬件完成一般是并行执行的。因此系统执行时间是这些子任务执行时间之和或者最大执行时间。但在智能嵌入式系统领域中,为了提高时间性能,需要进行并行处理,安排硬件和软件并行处理任务。一般地,硬件执行时间小于软件执行时间。通信时间,也称通信时延,由指令执行与通信总线操作两部分时间构成。一条通信指令需要一个指令周期(Intruction Cycle)与一次总线访问周期(Bus Cycle)。通常指令周期远小于总线访问周期,可以忽略不计,因而通信时延一般指总线访问周期。
通信代价 :单一处理实体可以视为一个任务,该任务可以分解成若干个独立的模块。这些模块中,两个存在关系的模块间的数据交换需要占用一定资源、功耗和时延,通常把这些资源、功耗和时延视为通信代价。通信软件资源会计入相应软件模块的整体资源中,通信硬件资源会计入相应硬件模块的整体资源中。通信功耗,可以计入硬件整体功耗中。由于通信资源和通信功耗通常都计入软硬件各自的资源和功耗中,因此通信代价通常采用通信总线操作时间(即时延)来计算。
能效 :能效是指单位能量可支持的有效工作量。在给定能量的前提下,工作效率高,能效就高。因此,在设计系统时能效是一个要考虑的指标。比如,将应用的部分以软件实现的功能转化为用硬件实现,将会提高整体应用的能效。通常分级表示电器产品能效的高低:等级越高,能效越差,越不环保。
可靠度 :可靠度是指计算机系统在规定的条件下和规定的时间内,完成规定功能的能力 [10] 。可靠度用于量化计算机系统的可靠程度,一般使用失效率 λ 的指数函数计算:exp( -λT )=e -λT ,其中 T 是指系统工作时间。很明显,在给定时间内,系统的失效率越低可靠度就越高;在失效率一定时,系统工作时间越长可靠度就越低。
设计与开发智能嵌入式系统时需要关注和考虑这些常用指标,并优化软硬件配置,以达到这些指标间的一个平衡。针对多个指标而且指标间的性能可能会冲突,优化的目的是在这些指标间找到平衡,但这非常难。比如:大小指标以及时间指标会推动成本指标上涨。人们更关注的是:在成本一定的前提下,如何优化其他指标?
因此,设计智能嵌入式系统时要考虑这些指标的优化,特别要关注软件与硬件的划分与配置。从成本方面考虑软件实施更为合适,而从性能方面考虑则更主张硬件实施。