1、内容安排嵌入式处理器体系结构嵌入式处理器体系结构 典型嵌入式处理器典型嵌入式处理器 嵌入式处理器开发嵌入式处理器开发 多核技术多核技术 什么是嵌入式处理器什么是嵌入式处理器 内容安排嵌入式处理器体系结构嵌入式处理器体系结构 典型嵌入式处理器典型嵌入式处理器 嵌入式处理器开发嵌入式处理器开发 多核技术多核技术 什么是嵌入式处理器什么是嵌入式处理器 后PC时代,有一种东西,更加明显地,把整个半导体产业链粘合在一起。这种东西叫做:“用户的真正需求”。衣服的例子各种SOC各种OS技术特点技术特点各异的板各异的板级设计级设计不同消费取不同消费取向的消费者向的消费者差异化的差异化的产品产品通用定制化什么是
2、用户的真正需求 产品的生产厂商:挖掘消费者内心需求,向产业链的高端寻求技术的可行性;板级的设计者:进一步抽象各个产品厂家的需求,在更基础的平台上各种嵌入式SoC处理器和嵌入式操作系统选择实现的方案;芯片业者:调研板级设计者的真实需求。什么样的东西应该集成?什么样的东西应该给予设计者灵活性?什么样的部件应该在SoC内部预留更多的资源?什么样的功能应该由OS去做而不是硬件化?芯片设计者真实的苦恼是不知道自己该设计出什么,而不是自己如何实现这个设计。嵌入式时代的产业链价值核心 PC时代,Intel与Microsoft最大,核心价值全部掌握在他们的手里,他们对产业链下游具有生杀予夺的权力,PC作为一种
3、产品,其模式非常固定。现在:谁能够找到用户的真正需求,谁将是产业链条中的王者。嵌入式处理器特点低功耗可移动集成度 嵌入式系统的核心部件是各种类型的嵌入式处理器,目前据不完全统计,全世界嵌入式处理器的品种总量已经超过1000多种;流行体系结构有30几个系列,其中8051体系的占有多半。生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅Philips有近100种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的特点 继承了整个PC机时期的技术成就;种类多;面向应用的专用芯片;新技术的不断应用;使用寿命长;低功耗、低电压内容安排嵌入式处
4、理器体系结构嵌入式处理器体系结构 典型嵌入式处理器典型嵌入式处理器 嵌入式处理器开发嵌入式处理器开发 多核技术多核技术 什么是嵌入式处理器什么是嵌入式处理器 嵌入式硬件系统 嵌入式处理器 各种类型存储器 模拟电路及电源 接口控制器及接插件电源供应电源供应晶振电路晶振电路重置电路重置电路PortsROMFLASHDRAMSRAMPrescalerProcessorDMATimerA/DI/O Ports中断中断控制器控制器调试接口调试接口 USBLCDKEYBOARDIRDAOTHERS核心处理器外围电路和存储器外部设备硬件无关软件系统硬件无关软件系统嵌入式系统的软件结构 软件系统 实时操作系统
5、(实时操作系统(RTOS)协议栈(协议栈(Protocol Stack)应用程序(应用程序(Application)RTOS核核I/O系统系统RTOS库库文件系统文件系统协议栈协议栈(TCP/IP)应用程序(应用程序(Applications)嵌入式软件系统 设备驱动(设备驱动(Device Driver)板级支持包(板级支持包(BSP)实时操作系统(实时操作系统(RTOS)协议栈(协议栈(Protocol Stack)应用程序(应用程序(Application)硬件无关软件系统硬件无关软件系统RTOS核核I/O系统系统RTOS库库文件系统文件系统协议栈协议栈(TCP/IP)应用程序(应用程序
6、(Applications)FLASH驱动驱动SCSI驱动驱动MMU驱动驱动Cache驱动驱动设备驱动设备驱动硬件抽象层硬件抽象层BSP&驱动驱动硬件硬件CPU存储存储 外围设备外围设备电源电源硬件层系统软件层应用层存储结构存储结构 冯诺依曼结构 哈佛结构指令结构指令结构 RISC CISC VILW 体系结构体系结构什么是指令系统 指令 一般含义:指明要执行的操作以及操作的对象.指令系统 CPU依靠指令来计算和控制系统 CPU在设计时就规定了一系列与其硬件电路相配合的指令系统 指令系统指CPU能识别和执行的所有指令集合 指令系统 CISC:Complex Instruction Set Co
7、mputer RICS:Reduced Instruction Set Computer VLIW:Very Long(Large)Instruction WordCISC计算机性能的提高往往是通过增加硬件的复杂性来获得随着集成电路技术(特别是VLSI)的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式。使硬件越来越复杂,造价也相应提高为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能 分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设
8、计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条日益庞大的指令系统不仅使计算机研制周期变长,而且还有难以调试、难以维护等一些自身无法克服的缺点。比如,IBM公司的大、中型计算机,Intel公司的8086、80286、80386微处理器等。RISC采用复杂指令系统的计算机有着较强的处理高级语言的能力,对提高计算机的性能是有益的IBM公司在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题,因为当时已感到,日趋庞杂的
9、指令系统不但不易实现而且还可能降低系统性能1979年以帕特逊教授为首的一批科学家也开始在美国加州大学伯克莱分校开展这一研究结果表明,CISC存在许多缺点首先在这种计算机中各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80指令只占一个处理器指令系统的20事实上最频繁使用的指令是取、存和加这些最简单的指令也就是说,机器执行的指令中85左右的都是简单指令,复杂指令甚少,这样-来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器同时复杂的指令系统必然带来结构的复杂性这不但增加了设计的时间与成本还容易造成设计失误尽管VLSI技术现在已达到很高的水平,但也很难
10、把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差降低被频繁调用的简单指令系统的运行速度针对CISC的这些弊病帕特逊等人提出了精简指令的设想指令系统只包含那些使用频率很高的少量指令提供一些必要的指令以支持操作系统和高级语言按照这个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构简称RISCCISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。早期的
11、CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。如对于乘法运算,在CISC架构的CPU上,需要一条指令:MUL ADDRA,ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。将ADDRA,ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。增加CPU结构的复杂性和对CPU工艺的要求 对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。RISC的理念是使用简单的指令,降低硬件复杂度 如上例子,MOV A,ADDRA;MOV B,ADDRB;MUL A,B;
12、STR ADDRA,A。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU 对编译器的设计有更高的要求 CISC和RISC的区别 指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。程序:RISC汇编语言程
13、序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序社设计相对容易,效率较高。中断:RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断。CPU:RISCCPU包含有较少的单元电路,因而面积小、功耗低;而CISC CPU包含有丰富的电路单元,因而功能强、面积大、功耗大。设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。用户使用:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大
14、,实现特殊功能容易。应用范围:由于RISC指令系统的确定与特定的应用领域有关,故RISC机器更适合于专用机;而CISC机器则更适合于通用机。RISC特点 1.有限、简单的指令集 2.CPU配备大量的通用寄存器 3.强调对指令流水线的优化 4.使用等长指令 5.寻址方式少,绝不出现存储器间接寻址 6.指令集中指令数一般少于100条,指令格式少于4种 7.指令功能简单,控制器多采用硬布线方式等。精简指令系统计算机RISC的指令系统精简了,复杂指令系统计算机CISC的一条指令,在RISC中要用一串指令才能实现,那么,为什么RISC执行程序的速度比CISC还要快呢?PICPIT 其中:P是执行这个程序
15、所使用的总的时间;I是这个程序所需执行的总的指令条数;CPI是每条指令执行的平均周期数;T是一个周期的时间长度。类型类型指令条数指令条数指令平均周期数指令平均周期数 CPI 周期时间周期时间 T CISC1215 33ns5ns RISC1.31.4 1.11.4 10ns2ns 程序所执行的总的指令条数I 由于RISC的指令都比较简单,CISC中的一条复杂指令所完成的功能在RISC中可能要用几条指令才能实现。对于同一个源程序,分别编译后生成的动态目标代码,显然RISC的要比CISC的多。由于CISC中复杂指令使用的频度很低,程序中使用的绝大多数指令都是与RISC一样的简单指令,因此,实际上的
16、统计结果表明,RISC的I长度只比CISC的长30至40。指令平均执行周期数CPI 由于CISC一般是用微程序实现的,一条指令往往要用好几个周期才能完成,一些复杂指令所要的周期数就更多。据统计,大多数CISC处理机,指令平均执行周期数CPI在4到6。RISC的大所数指令都是单周期执行的,它们的CPI应该是1。由于RISC中还有LOAD和STORE指令,也还有少数复杂指令,所以,CPI要略大于1。SUN公司的SPARC处理机的CPI为1.3到1.4,SGI公司的MIPS处理机的CPI为1.1到1.2。一个周期的时间长度T RISC一般采用硬布线逻辑实现,指令要实现的功能都比较简单,所以,RISC
17、的T通常要比CISC的T小。目前使用中RISC处理机的工作主频一般要比CISC处理机高。RISC的速度要比CISC快3倍左右。其中的关键在于RISC的指令平均执行周期数CPI减小了,这正是RISC设计思想的精华 减小CPI是多个方面共同努力的结果 在硬件方面,采用硬布线控制逻辑,减少指令和寻址方式的种类,使用固定的指令格式,采用LOAD/STORE结构 指令执行过程中设置多级流水线等 软件方面强调优化编译技术的作用流水线 不同功能部件 指令并行执行DecodeFetchExecute从存储器中读取指令从存储器中读取指令解码指令中用到的寄存器解码指令中用到的寄存器寄存器读(从寄存器寄存器读(从寄
18、存器Bank)移位及移位及ALU操作操作寄存器写(到寄存器寄存器写(到寄存器Bank)三级最佳流水v 该例中用8个时间片执行了6条指令v 所有的操作都在寄存器中(单周期执行)操作操作 1 2 3 45 6 ADD SUB MOV AND ORR EOR CMP RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch 利用并行性是始终贯穿计算机体系结构的思想网络级并行多处理器Multi proces
19、sor多核Multicore指令级并行(ILP)网络并行,cluster,distribute,grid每个节点是独立机器多个CPU,进程并行每个处理器独立memory多个CPU核每个核心有独立部件多条指令并行只有特定运算部件是独有的 超标量(Super Scalar)超级流水线(Super Pipeline)超长指令字(VLIW)向量机(Vector Machine)SIMD技术 超标量(Super Scalar)将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用率的技术叫做标量流水技术.超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理 在单流水线结构中
20、,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能发射(issue)或退休(retire)一条指令.超级标量结构的cpu支持指令级并行,每个周期可以发射多条指令(2-4条居多).这样,可以使得cpu的IPC(Instruction Per Clock)1,从而提高cpu处理速度.超级标量机能同时对若干条指令进行译码,将可以并行执行的指令送往不同的执行部件,在程序运行期间,由硬件(通常是状态记录部件和调度部件)来完成指令调度.超级标量机主要是借助硬件资源重复(例如有两套译码器和ALU等)来实现空间的并行操作.pentium系列(可能是p-II开始),还有SUN SPARC系列的较高级型号,以及
21、MIPS若干型号等都采用了超级标量技术.超级流水线(Super Pipeline)超级流水线又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,那么需要的时间久越短,时间越短,频率就可以提得越高。所以超级流水线就是将cpu处理指令是得操作进一步细分,增加流水线级数来提高频率。频率高了,当流水线开足马力运行时平均每个周期完成一条指令(单发射情况下),这样cpu处理得速度久提高了。当然,这是理想情况下,一般是流水线级数越多,重叠执行的执行就越多,那么发生竞争冲突得可能性就越大,对流水线性能有一定影
22、响。现在很多cpu都是将超标量和超级流水线技术一起使用,例如pentium IV,流水线达到20级,频率最快已经超过3GHZ 超长指令字(VLIW)超长指令字是由美国Yale大学教授Fisher提出的。它有点类似于超级标量,是一条指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。那些指令可以并行执行是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。
23、融合了CISC和RISC的优点 向量机(Vector Machine)平时接触的计算机都是标量机,向量机都是大型计算机,一般用于军事工业,气象预报,以及其他大型科学计算领域 普通的计算机所做的计算,例如加减乘除,只能对一组数据进行操作,被称为标量运算。向量运算一般是若干同类型标量运算的循环。向量运算通常是对多组数据成批进行同样运算,所得结果也是一组数据。很多做科学计算的大(巨)型机都是向量机,例如国产银河。SIMD技术 单指令多数据(Single Instruction Multiple Data)简称SIMD。SIMD结构的CPU有多个执行部件,但都在同一个指令部件的控制下。以加法指令为例,
24、单指令单数据(SISD)的CPU对加法指令译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。在SIMD型CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使得SIMD特别适合于多媒体应用等数据密集型运算。AMD公司的3D NOW!技术其实质就是SIMD。存储结构 冯.诺依曼结构(普林斯顿结构)哈佛结构冯诺依曼体系结构指令寄存器控制器数据通道输入输出中央处理器存储器程序指令0指令1指令2指令3指令4数据数据0数据1数据2哈佛体系结构指令寄存器控制器数据通道输入输出CPU程序存储器指令0指令1指令2数据存储器
25、数据0数据1数据2地址指令地址数据比较地址地址数据数据主存储器主存储器MOV r8,#8MOV r8,#8CPUCPUPCPC指令指令程序存储器程序存储器CPUCPUPCPC地址地址数据存储器数据存储器MOV r8,#8MOV r8,#8地址地址数据数据冯冯诺依曼结构诺依曼结构哈佛结构哈佛结构内容安排嵌入式处理器体系结构嵌入式处理器体系结构 典型嵌入式处理器典型嵌入式处理器 嵌入式处理器开发嵌入式处理器开发 多核技术多核技术 什么是嵌入式处理器什么是嵌入式处理器 嵌入式处理器的种类 嵌入式微处理器 (Embedded Microprocessor Unit,EMPU)嵌入式微控制器 (Micr
26、ocontroller Unit,MCU)嵌入式DSP处理器 (Embedded Digital Signal Processor,EDSP)嵌入式片上系统 (System On Chip,SOC)元件可编程逻辑门阵列 (System On Chip,FPGA)MPU 嵌入式微处理器是由通用计算机中的CPU演变而来的。它的特征是具有32位以上的处理器,具有较高的性能 价格也相应较高。只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。目前主要的嵌入式处理器
27、类型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/StrongARM系列等。MCU嵌入式微控制器的典型代表是单片机,从70年代末单片机出现到今天位的电子器件目前在嵌入式设备中仍然有着极其广泛的应用。单片机芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能和外设。和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,
28、适合于控制,因此称微控制器。比较有代表性的包括8051、MCS-251、MCS-96/196/296、P51XA、C166/167、68K系列以及 MCU 8XC930/931、C540、C541,并且有支持I2C、CAN-Bus、LCD及众多专用MCU和兼容系列。目前MCU占嵌入式系统约70的市场份额。DSPDSP处理器是专门用于信号处理的处理器系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令的执行速度。在数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用。1982年世界上诞生了首枚DSP芯片。其运算速度比MPU快了几十倍,在语音合成和编码解码器中得到了广泛应用。至8
29、0年代中期,随着CMOS(互补金属氧化物半导体,是一种大规模应用于集成电路芯片制造的原料)技术的进步与发展,第二代基于CMOS工艺的DSP芯片应运而生,其存储容量和运算速度都得到成倍提高,成为语音处理、图像硬件处理技术的基础。到80年代后期,DSP的运算速度进一步提高,应用领域也从上述范围扩大到了通信和计算机方面。90年代后,DSP发展到了第五代产品,集成度更高,使用范围也更加广阔。目前最为广泛应用的是TI的TMS320C2000/C5000系列,另外如Intel的MCS-296和Siemens的TriCore也有各自的应用范围。SOC 20世纪90年代中期,因使用ASIC(Applicati
30、on-Specific Integrated Circuits)实现芯片组受到启发,萌生应该将完整计算机所有不同的功能块一次直接集成于一颗硅片上的想法。这种芯片,初始起名叫System on a Chip(SoC)如何界定SoC,认识并未统一。但可以归纳如下:SoC应由可设计重用的IP核组成,IP核是具有复杂系统功能的能够独立出售的VLSI块;IP核应采用深亚微米以上工艺技术;SoC中可以有多个MPU、DSP、MCU或其复合的IP核。FPGA Field Programmable Gate Array,元件可编程逻辑门阵列 作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定
31、制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。Xilinx 和 Altera 是目前 FPGA 的领导厂商 ARM核 MIPS核 PowerPC核 68K/COLDFIRE核内容安排嵌入式处理器体系结构嵌入式处理器体系结构 典型嵌入式处理器典型嵌入式处理器 嵌入式处理器开发嵌入式处理器开发 多核技术多核技术 什么是嵌
32、入式处理器什么是嵌入式处理器 什么是多核处理器?两个或多个独立运行的内核集成于同一个处理器上面 双核处理器双核处理器=一个处理器上一个处理器上包含包含2个内核个内核 多核处理器多核处理器=一个处理器一个处理器上包含上包含2个或多个内核个或多个内核为什么要采用多核技术?最终目标:提升用户的体验 摩尔定律 不断发展和改进处理器的性能 最大限度地利用越来越多的晶体管 实现最优的价值 缩减处理时间,提高计算能力 开发平台的新特性和新功能多核技术的发展几种不同的技术 HT Hyper Threading:2 threads running on the same processor core 处理器上的
33、某些资源会被共享 使用相同的缓存和运算器 DC Dual Core:2 execution cores in the same processor package 共享系统总线 与双处理器的性能相同 DP/MP Dual/Multi-Processing:2 or more processors in the same system 只共享系统总线,独立缓存 高性能,资源冲突少双核技术 VS.超线程技术双核是真正意义上的双处理器 不会发生资源冲突 每个线程拥有自己的缓存、寄存器和运算器一个3.2GHz Smithfiled在性能上并非等同于3.2GHz P4 with HT 的2倍 HT 使处
34、理器的性能至少提升了1/3 双核的性能相当于2块 non-HT 处理器双核技术与HT技术在性能上的对比Ex 1:两个floating point线程(Smithfield client)每个线程拥有自己的FPU,没有资源冲突 尽管性能上没有提升太多,但仍然优于HTEx 2:一个integer线程与一个floating point线程 性能大幅度提升 没有资源冲突多核 VS HT HT与多核不同的是核心资源是共享的,如ALU等.而核心资源在多核平台是独立的 当你的多个线程同时有大量计算时,HT平台只能在线程间作切换,多核平台却可平行计算.HT 是 Intel Netburst 架构处理器特有的技术,HT 技术实质上通过增加一组寄存器和指令调度机制实现两个指令入口,模拟出 2 个 CPU,由于共享执行单元、缓存、总线,所以对性能提高很有限,大约提高 20%30%,双核心理论上能够提高接近 100%的性能。Add your company slogan