1.处理器技术
处理器技术与实现系统功能的计算引擎结构有关,很多不可编程的数字系统也可以视为处理器,这些处理器的差别在于其面向特定功能的专用化程度,导致其设计指标与其它处理器不同。
(1)通用处理器
这类处理器可用于不同类型的应用,一个重要的特征就是存储程序,由于设计者不知道处理器将会运行何种运算,所以无法用数字电路建立程序。另一个特征就是通用的数据路径,为了处理各类不同的计算,数据路径是通用的,其数据路径一般有大量的寄存器以及一个或多个通用的算术逻辑单元。设计者只需要对处理器的存储器编程来执行所需的功能,即设计相关的软件。
在嵌入式系统中使用通用处理器具有设计指标上的一些优势。上市时间和NRE成本较低,因为设计者只需编写程序,而不需要做任何数字设计,灵活性高,功能的改变通过修改程序进行即可。与自行设计处理器相比,数量少时单位成本较低。
当然,这种方式也有一些设计指标上的缺陷,数量大时的单位成本相对较高,因为数量大时,自行设计的NRE成本分摊下来,可降低单位成本。同时,对于某些应用,性能可能很差。由于包含了非必要的处理器硬件,系统的体积和功
(2)单用途处理器
单用途处理器是设计用于执行特定程序的数字电路,也指协处理器、加速器、外设等。如JPEG编码解码器执行单一程序,压缩或解压视频信息。嵌入式系统设计者可通过设计特定的数字电路来建立单用途的处理器。设计者也可以采用预先设计好的商品化的单用途处理器。
在嵌入式系统中使用单用途处理器,在指标上有一些优缺点。这些优缺点与通用处理器基本相反,性能可能更好,体积与功率可能较小,数量大时的单位成本可能较低,而设计时间与NRE成本可能较高,灵活性较差,数量小时的单位成本较高,对某些应用性能不如通用处理器。
(3)专用处理器
专用指令集处理器(ASIP)是一个可编程处理器,针对某一特定类型的应用进行最优化。这类特定应用具有相同的特征,如嵌入式控制、数字信号处理等。在嵌入式系统中使用ASIP可以保证良好的性能、功率和大小的情况下,提供更大的灵活性,但这类处理器仍需要昂贵的NRE成本建立处理器本身和编译器,单片机和数字信号处理器是两类应用广泛的ASIP,数字信号处理器是一种针对数字信号进行常见运算的微处理器,而单片机是一种针对嵌入式控制应用进行最佳化的微处理器,通常控制应用中的常见外设,如串行通信外设、定时器、计数器、脉宽调制器及数/模转换器等都集成到了微处理器芯片上,从而使得产品的体积更小、成本更低。
2.IC技术
(1)全定制/VLSI
在全定制IC技术中,需要根据特定的嵌入式系统的数字实现来优化各层设计人员从晶体管的版图尺寸、位置、连线开始设计以达到芯片面积利用率高、速度快、功耗低的最优化性能。利用掩膜在制造厂生产实际芯片,全定制的IC设计也常称为大规模集成电路设计(VLSI),具有很高的NRE成本、很长的制造时间,适用于大量或对性能要求严格的应用。
(2)半定制ASIC
半定制ASIC是一种约束型设计方法,包括门阵列设计法和标准单元设计法。它是在芯片制作好一些具有通用性的单元元件和元件组的半成品硬件,设计者仅需要考虑电路的逻辑功能和各功能模块之间的合理连接即可。这种设计方法灵活方便、性价比高,缩短了设计周期,提高了成品率。
(3)可编程ASIC
可编程器件中所有各层都已经存在,设计完成后,在实验室里即可烧制出设计的芯片,不需要IC厂家参与,开发周期显著缩短。可编程ASIC具有较低的NRE成本,单位成本较高,功耗较大,速度较慢。
3.设计/验证技术
嵌入式系统的设计技术主要包括硬件设计技术和软件设计技术两大类。其中,硬件设计领域的技术主要包括芯片级设计技术和电路板级设计技术两个方面。
芯片级设计技术的核心是编译/综合、库/IP、测试/验证。编译/综合技术使设计者用抽象的方式描述所需的功能,并自动分析和插入实现细节。库/IP技术将预先设计好的低抽象级实现用于高级。测试/验证技术确保每级功能正确,减少各级之间反复设计的成本。
软件设计技术的核心是软件语言。软件语言经历了从低级语言(机器语言、汇编语言)到高级语言(如结构化设计语言、面向对象设计语言)的发展历程,推动其发展的是汇编技术、分析技术、编译/解释技术等诸多相关技术。软件语言的级别也从实现级、设计级、功能级逐渐向需求级语言发展过渡。
早期,随着通用处理器概念的逐渐形成,软件技术迅速发展,软件的复杂度也开始增加,软件设计和硬件设计的技术和领域完全分开。设计技术和工具在这两个领域同步得到发展,也使得行为描述可以在越来越抽象的级别上
进行,以适应设计复杂度不断增长的需要。这种同步发展如今又使得这两领域都在使用同样的时序模型来描述行为,因而这两领域再度统一为一个领域即将成为可能。