电子说
在和金钱的较量中,支持自由的人们没有输。
Perface
复杂系统执行多种多样的复杂任务。任务常因为市场需求而改变。处理器的软件可编程性使得它可以实现更加快速的功能开发和提供更加敏捷的可适性,已成为SoC最为重要的组件,其性能直接决定了系统性能的优劣。
目前,在SoC中使用的处理器主要分3类:
• 通用处理器(CPU)、
• 数字信号处理器(DSP)
• 可配置处理器。
通用处理器主要负责控制、操作系统平台和一般的信号处理等任务。目前,SoC设计中使用较多的通用处理器有ARM、MIPS、PowerPC等。具有我国自主知识产权的处理器,如龙芯CPU、众志CPU、国芯C-CORE等也正在被越来越多地采用。虽然通用处理器正在得到广泛的应用,但其单一的指令格式及有限的计算能力无法满足计算密集型任务(如视频编解码、信息安全等)对于实时性的需要。
DSP充分挖掘了指令级的并行性,并结合了强大的浮点计算能力,有效地解决了这一问题,已常常被作为SoC中的核心处理器,或者在多核SoC中被作为对计算密集型任务进行加速的处理器。较多使用的DSP,往往来自于TI、Freescale、ADI等厂家。
无论是通用处理器还是DSP,往往体系结构固定,对于不同应用势必造成资源的浪费和计算的低效性。虽然ASIC可以采用最精简的资源达到最快的处理速度,但其不具备处理器的可编程能力,导致设计效率的下降。
可配置处理器(Configurable Processor)结合了二者的双重优势,针对不同应用的需求,允许用户配置具有不同体系结构的处理器。可配置的处理器可以根据需要获得性能和功能的优化,并在开发平台工具的帮助下,自动生成处理器的系统软件和仿真环境,由于以上优点,可配置处理器以及基于这种处理器的SoC设计将会是以后SoC开发的一个重要选择。
一、通用处理器
1.ARM系列处理器
ARM(Advanced RISC Machines)系列处理器是一种RISC架构处理器。ARM处理器具有高性能、低功耗等特点。ARM系列处理器主要有ARM7、ARM9、ARM10、ARM11等。
ARM7系列处理器是低功耗的32位RISC处理器,支持16位的Thumb指令集。
使用精简的Thumb指令集可得到更高密度的代码。其核ARM7TDMI,具有3级的流水线结构,支持Window CE、Linux等嵌入式操作系统。
其中:
• T表示支持Thumb指令集;
• D表示表示Debug,在内核中放置了用于调试的结构,通常它为一个边界扫描链JTAG,可使CPU进入调试模式,从而可方便地进行断点设置、单步调试;
• M表示表示内核有乘法器;
• I表示EmbeddedICE Logic,用于实现断点观测及变量观测的逻辑电路部分,其中的TAP控制器可接入到边界扫描链。
ARM9处理器包括ARM920T、ARM922T、ARM926EJ-S、ARM946E-S等,适用于不同的市场需求。
ARM9系列处理器实现5级的流水。其中,
• E表示处理器包含一些用于支持DSP算法的指令,
• J表示处理器使用ARM的Jazelle技术提供Java加速功能。
ARM9中增加了存储器管理单元(MMU,Memory Management Unit),实现数据和指令分离的存储器结构。
ARM10、ARM11等系列处理器增加了流水线的深度,提高了工作时钟频率。
ARM11中还增加了SIMD功能扩展,提高了对于多媒体处理的能力。
2.MIPS系列处理器
MIPS(Microprocessor without Interlocked Piped Stages)是一种获得广泛应用的RISC处理器。
MIPS的中文意思是无内部互锁流水线的微处理器,其机制是尽量利用软件方法避免流水线中的数据相关问题。
MIPS技术公司是美国的芯片设计公司,在基于MIPS技术的基础上开发了一系列处理器。目前主要有两种架构的处理器:32位和64位的MIPS 32架构和MIPS 64架构。MIPS32的4K系列处理器主要面向SoC应用。4K系列采用5级流水线、32位数据和地址宽度。存储器采用数据和指令分开的哈佛结构(Harvard)。MIPS32的24K系列采用8级流水、32位地址和64位数据宽度。通过代码压缩,MIPS16e可以减少指令的内存需求。MIPS32的24K系列中实现了快速乘法运算。在MIPS64架构的处理器有MIPS64 5K系列和20K系列分别采用6级和7级流水线结构。5K系列的MIPS64 5kf和20K系列的MIPS64 20kc中集成浮点运算单元,面向高性能SoC应用。
3.PowerPC系列处理器
PowerPC处理器在20世纪90年代由IBM、Motorola、Apple公司共同推出,主要面向不同的市场应用,包括个人计算机和其他嵌入式市场。
早期的PowerPC主要面向个人计算机和服务器市场。这种32位Harvard结构的处理器使用5级流水线结构并集成硬件乘法、硬件除法和MMU单元。
Freescale公司有众多基于PowerPC的SoC设计,这些使用单核或双核结构的芯片主要面向通信市场。在Xilinx的Virtex-4系列FPGA中集成了PowerPC的处理器。
二、DSP
1.TI系列DSP
TI是著名的DSP公司,目前主要有C5000和C6000两种DSP平台。TI C5000平台包括TMS320C54系列、TMS320C55系列。TMS320C54系列采用CISC结构的定点和改进的Harvard结构体系,有一组程序总线和三组数据总线、高度并行性的算术逻辑单元ALU、乘法/累加器MAC、桶形移位器、缓冲串口、专用硬件逻辑、片内存储器、片内外设和高度专业化的指令集等,支持32位长操作数指令,支持并行存储和并行装入的算术指令。
TMS320C54系列DSP指令系统很丰富且灵活多变;而TMS320C55系列定点DSP并行性更好,每个周期最大可执行两条指令。
C6000平台的TMS320C62、TMS320C64系列DSP是业内最高性能的DSP,提供高达1GHz的时钟速度。TMS320C64系列DSP采用TI的VLIW结构。TMS320C67系列浮点DSP可以提供高数据精度和高的处理速度。上述DSP通过集成存储器、外设,在SoC设计中实现各种高性能应用。
2.ADI系列DSP
ADI(Analog Devices Inc.)公司开发了一系列的高性能DSP和基于这些DSP的SoC设计,主要包括ADSP-21系列、SHARC系列、TigerSHARC系列和Blackfin系列。Blackfin处理器包括一个10级RISC流水线的高性能16/32位内核,以及具有面向加速视频和多媒体处理的SIMD支持。除了有限的多种64位指令程序包之外,Blackfin架构还支持16位和32位指令长度。通常,把最常用的控制指令编码为精简16位字。
TigerSHARC DSP是一款高性能的静态超标量数字信号处理器,该处理器针对大型的信号处理和通信任务而在结构上进行了优化。该处理器将非常宽的存储带宽和双运算模块结合在一起,每周期能够执行多达4条的指令、24个16位定点运算和6个浮点运算。
3.Freescale系列DSP
Freescale的主要DSP包括DSP56300系列和StarCore系列。DSP563000核是24位信号处理器,采用RISC的流水线结构和超哈佛的存储器结构,主要面向音频领域应用。
StarCore系列DSP采用一种独特、高性能、长度可变的变长执行组(VLES)结构。执行过程以执行组为单位,采用指令预取、取址、指令分配、地址生成和执行组成的5级流水结构。每个执行组采用指令级并行技术,支持SIMD,主要面向多媒体信号处理领域的应用。
三、可配置处理器
1.Tensilica系列处理器
在SoC设计方法学中,强调快速的设计和IP复用。Tensilica基于这种思想提出了可配置处理器的设计思路。对于各种应用,用户可以选择配置不同的处理器结构实现针对性的应用。在自动化平台工具的帮助下,可以自动生成处理器的结构和验证环境,达到快速灵活的目的。
目前,Tensilica主要有3种系列的处理器:Xtensa7系列、Xtensa LX2系列和Diamond Standard Processor系列。其中,Xtensa7、Xtensa LX2属于可配置处理器,而Diamond Standard Processor是基于上述两个系列的处理器的一个优化结构,不能配置。
对于Diamond Standard Processor系列处理器又分为3类,如表4-1所示。第1类作为微控制器,该系列处理器都属于预配置完成,不具有可配置能力。
表4-1 Diamond Standard Processor系列处理器分类
Xtensa7系列、Xtensa LX2系列处理器都属于可配置处理器,对于不同的应用可以配置和开发特定功能的处理器。这样可以做到开销、功耗和性能的平衡。Xtensa系列属于RISC结构,使用5级和7级的流水线、24位和精简的16位的两种指令格式。
在Xtensa7系列、Xtensa LX2系列处理器中,核心功能是固定的,如流水线,以及对操作系统的支持。可配置的选项包括处理器的结构、处理器的指令集、协处理器、存储器系统(包括缓存、本地存储器、外部存储器等)、中断处理、测试等。用户还可以根据不同需要,设计扩展功能。在开发平台下可扩展的设计包括用户指令、状态、寄存器和接口等
2.NIOS系列处理器
Altera的Nios/NiosⅡ是一款基于FPGA的可灵活配置的RISC架构软内核处理器,采用32位指令集,支持5级流水线。其可灵活配置性是指Nios/NiosⅡ处理器架构并不是固定、一成不变的,而是用户可以通过Altera提供的工具根据设计的性能或成本要求增加或裁减一些系统的特性和外设,甚至可以在系统中放置多个Nios/NiosⅡ处理器以满足应用需求。
用户通过Nios/NiosⅡ处理器提供的用户自定义指令逻辑接口可以在处理器的基本指令架构之上进行指令的扩充,以增强处理器的处理能力。此外,Altera还针对Nios/NiosⅡ处理器提供了一套基于GNU C/C++工具链和Eclipse的集成开发环境。
3.ARC系列处理器
ARC系列处理器是一个拥有4级流水线的体系结构,支持16位或32位指令集。它具有能够配置的各种功能组件、外围接口及扩展指令集。本质上,ARC710系列处理器为嵌入式软核,厂商提供针对它的软件集成开发环境及各种DSP的功能部件库。
开发人员可从一个基本的处理器内核开始,通过不断定制、裁剪各种功能,从而达到应用的性能、成本、功耗的最佳匹配。该种处理器支持可选的DSP指令,设计人员可以通过增加指令和内核寄存器来扩展处理器,以便进一步定制系统性能。
四、不同处理器的选择
在介绍了SoC设计中所使用的主要处理器后,需要解决的是在一个SoC中如何在它们之间做出选择。在选择处理器时需要决定的是处理器的类型和数量,它们之间有着非常密切的关系。决定处理器选择的关键因素是要实现的目标应用,包括目标应用的类型和目标应用的运算、控制等需求。
首先对于目标应用的运算能力要有一个量的估计或计算。一般来说运算的任务以MIPS为单位描述,即每秒百万指令数。在SoC设计的开始,计算所有任务每秒的指令需求总和。如果处理器性能不能满足,可以选择更高性能的处理器或者增加处理器的数量。但在多处理器的设计中,每个处理器的任务分配是一个复杂的工作。
其次是根据应用类型选择合适的处理器类型。通用处理器的运算能力和DSP是有较大区别的。需要根据实际目标应用决定处理器的选择。DSP适合计算密集型的任务,如数字信号处理、音视频编解码等,而且DSP存储器结构可以提供较大的存储器访问带宽。此外,一般的DSP在零开销循环、特殊的寻址方式等方面都有专门的硬件支持,而通用处理器在处理用户界面和控制事务方面具有一定优势。由于DSP和通用处理器有各自的性能优势,因此在一些应用中两种处理器的混合使用也较为常见。
总之,在SoC设计中,处理器类型和数量的选择由目标的应用任务决定,需要根据实际应用选用合适的处理器类型,实现优化的方案。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !