您好,欢迎访问三七文档
1SoC2目录•1、什么是SOC•2、CPU•3、总线•4、系统控制模块3什么是SoC逻辑单元Analog静态RAMCPU内核PADDie裸片4累计流片20余次10多种SoC芯片65nm,千万门级设计经验几款SoC芯片的版图SEP071865nmTSMC•片上系统:SoC(SystemonChip)•具有知识产权的内核:IP核(IntellectualPropertyCore)•专用集成电路:ASIC(ApplicationSpecificIntegratedCircuit)什么是SOC•IP核——(intellectualpropertycore)全称知识产权核。是指某一方提供的、形式为逻辑单元、芯片设计的可重用模块。IP核通常已经通过了设计验证,设计人员以IP核为基础进行设计,可以缩短设计所需的周期。[1]IP核可以通过协议由一方提供给另一方,或由一方独自占有。IP核的概念源于产品设计的专利证书和源代码的版权等。设计人员能够以IP核为基础进行专用集成电路或现场可编程逻辑门阵列的逻辑设计,以减少设计周期。•ASIC——(ApplicationSpecificIntegratedCircuit)特定应用集成电路让我们从特定应用集成电路(ASIC)开始。这是因特定目的而创建的设备。这是一个完全或主要部分是数字性质的芯片,任何模拟和混合信号功能是沿着物理接口线(物理层)或锁相回路(PLL)的。ASIC通常被设计和使用在特定系统中的单个公司。开发ASIC非常昂贵、耗时、资源密集的,但ASIC确实能提供低功耗的高性能。什么是SOC•片上系统(SoC:System-on-a-chip)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等。•片上系统技术通常应用于小型的,日益复杂的客户电子设备。例如,声音检测设备的片上系统是在单个芯片上为所有用户提供包括音频接收端、模数转换器(ADC)、微处理器、必要的存储器以及输入输出逻辑控制等设备。此外系统芯片还应用于单芯片无线产品,诸如蓝牙设备,支持单芯片WLAN和蜂窝电话解决方案。•由于空前的高效集成性能,片上系统是替代集成电路的主要解决方案。SoC已经成为当前微电子芯片发展的必然趋势。什么是SOCCPUIPIPIPIPIPIP存储区域接口外设IP系统控制IPIPIPIP总线9oSoC整体架构BUSCPU外部存储器控制器EMI系统控制模块各种接口CPU一个CPU的外部端口都会有地址总线和数据总线,我们选择一种总线,把CPU和这些外围IP连起来,让CPU可以和这些IP进行通讯,完成数据的计算和输入输出,这样就变成了一个具有实际意义的系统了。在这一点上,不同的厂商做法不同。对于Intel而言,他是有晶圆的老大,也就是说,它的CPU由他自己设计好后入场流片,生产好之后就诞生一个正方形的下面有很多针脚的东西,就是你们口中的CPU了。它的内存控制器在主板上的北桥里面,而硬盘控制器网络控制器啥的都在主板上的南桥。从这里可以看出,它的CPU和各类控制器都是分开的,因而面积大,功耗高,性能强。ARM就不一样,首先ARM属于无晶圆。什么意思?就是ARM自己不会去流片,想用ARM的CPU怎么办?直接购买授权,而后ARM就直接把它的CPU的源代码发给你了。我们实验室就有ARM7和ARM11的源代码,这些代码我也读过不少。从这点来说,ARM的确胆子很大。ARM的功耗较低面积较小,所以各大厂商通常会把它的CPU和各类外围IP都放到一起,然后自己拿着图纸去流片,生产出来的也是一个正方形,下面有很多引脚,这个东西不仅包含了CPU,还包含了其他的控制器,这个东西就叫做SOC(systemonchip)。因特尔绝对不会给你看它的RTL代码,只会给你他芯片的spec。所以目前各大厂商所做的事情,就是买来ARM的授权,得到ARM处理器的源代码,而后自己搞一些外围IP(或者买或者自己设计),组成一个SOC后,去流片。不同的SOC,架构不同(就是CPU如何和IP联系起来,有的以总线为核心,有的以DDR为核心),当然,厂商会对SOC里面的ARM核做一些小的修改。存储区域•RAM读写方便,断电后不能保存数据。•ROM断电也能保存数据,但资料写入只能用一般方法或根本无法更改。•Flash存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。12SEP0718DDR2NOR/SRAM/SDRAMNANDVICPMURTCTIMERDMACARM11GPULCDCI2SSPISDIOUARTI2CTOUCHPWMUSBOTGGPIOHDMICODEC系统与时钟控制多媒体系统外设与接口存储系统GPS系统MULTI-LAYERBUSVPU1313SEP0718结构图DOWNSIZERLCDCVPUBUS1-AHB64DMAC1ARM11NOR/SRAMNANDDOWNSIZERBUS3-AHB32DMAC2SDIO(2)ESRAM(96kB)PWMRTCVICHDMIGPIOGPIO(AO)TOUCH/ADCTIMERBUS5-APB32UART(4)SPI(3)I2CI2SHDMILCDCI2SPHYGPSAUDIOCODECGPUSYSCTRLAUDIOCODECGPSCTRLBUS4-APB32BUS2-AHB32DDR23PHYUSBDMAUSBOTGPHYPMU14Samsung64101415Telechips89001516SamsungS5PV2101617工作站×14瘦客户机×30SUN大型服务器HPserver×20矢量信号源可编程电源频谱分析仪网络分析仪逻辑分析系统6GHZ混合信号测试深亚微米EDA软件芯片设计环境18芯片量产流程芯片需求分析芯片定义模块划分电路设计验证物理设计流片封装ATE测试板级模块测试系统级测试稳定性测试产品样机产品小批量芯片量产18市场调研产品定义方案设计芯片需求19目录•1、SoC整体架构•2、CPU•3、总线•4、系统控制模块20CPU–SoC中的内核•CPU所做的工作由其指令集决定•CPU的控制和数据通路执行指令集中的各种指令21指令集ISA要完成哪些工作?•以ARM为例–分支指令–数据处理指令•寄存器传送•算术运算•逻辑运算指令•比较指令•乘法指令–存储器访问指令•Load/Store内存访问指令•批量Load/Store内存访问指令•SWP操作指令–SWI系统调用指令–状态寄存器访问指令22控制和数据通路23CPU基本概念•CISC与RISC•流水线技术•分支预测技术•乱序执行技术•标量与超标量处理器•SISD、MIMD、SIMD、SPMD和向量处理器•VLIW处理器CISC与RISC•CISC(ComplexInstructionSetComputer)–指令长度可变–编译简单–Intel•RISC(ReducedInstructionSetComputer)–采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种。–使用单周期指令,便于流水线操作执行。–大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。–编译复杂–ARM、MIPS、PowerPC24处理器位宽•当前高性能嵌入式系统SoC的处理器多为32位处理器。所谓32位处理器,即处理器内部的寄存器(包括地址寄存器与数据寄存器)位宽最大为32位。低性能的嵌入式系统SoC一般多采用16位微控制器(micro-controllers),然而,随着工作负载的增加,此类系统逐渐开始使用32位处理器。可以预见,在不久的将来,伴随高性能及超大存储空间的需求,64位处理器将逐渐成为主流。2526CPU基本概念•CISC与RISC•流水线技术•分支预测技术•乱序执行技术•标量与超标量处理器•SISD、MIMD、SIMD、SPMD和向量处理器•VLIW处理器流水线技术•流水技术无助于减少单个任务的处理延迟(latency)但有助于提高整体工作负载的吞吐率•多个不同任务同时操作,使用不同资源•潜在加速比=流水线级数•流水线的速率受限于最慢的流水段•流水段的执行时间如果不均衡,那么加速比就会降低•开始填充流水线的时间和最后排放流水线的时间降低加速比•相关将导致流水线暂停28CPU基本概念•CISC与RISC•流水线技术•分支预测技术•乱序执行技术•标量与超标量处理器•SIMD、MIMD和向量处理器•VLIW处理器分支预测技术•分支预测(BranchPrediction):是解决处理分支指令(if-then-else)导致流水线失败的数据处理方法,由CPU来判断程序分支的进行方向,能够加快运算速度。当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生跳转,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕。流水线越长,处理器等待的时间便越长,因为它必须等待分支指令处理完毕,才能确定下一条进入流水线的指令。分支预测技术便是为解决这一问题而出现的。分支预测技术包含编译时进行的静态分支预测和硬件在执行时进行的动态分支预测。•最简单的静态分支预测方法就是任选一条分支。这样平均命中率为50%。更精确的办法是根据原先运行的结果进行统计从而尝试预测分支是否会跳转。任何一种分支预测策略的效果都取决于该策略本身的精确度和条件分支的频率。•动态分支预测是近来的处理器已经尝试采用的技术。最简单的动态分支预测策略是分支预测缓冲区(BranchPredictionBuff)或分支历史表(branchhistorytable)。29乱序执行技术•乱序执行(out-of-orderexecution),是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。这样将根据某个电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新排列。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU运行程序的速度。30标量与超标量处理器•根据处理器的微架构设计,处理器可以分为标量(scalar)处理器与超标量(superscalar)处理器。•超标量处理器是指在处理器内核中实现了指令级的并发处理。这种技术能够在相同的CPU主频下实现更高的CPU吞吐率(throughput)。处理器的内核中一般有多个执行单元(或称功能单元),如算术逻辑单元、位移单元、乘法器等等。未实现超标量体系结构时,CPU在每个时钟周期仅执行单条指令,因此仅有一个执行单元在工作,其它执行单元空闲。超标量处理器在一个时钟周期可以同时分派多条指令在不同的执行单元中被执行,这就实现了指令级的并行。超标量体系结构可以视作MIMD(多指令多数据)。31SIMD、MIMD和向量处理器•MIMD(MultipleInstructionMultipleData):可以编写独立的程序并运行在不同的处理器上,而且这些程序可以协同完成一个共同的大型目标。•SIMD(SingleInstructionMultipleData):对向量数据进行操作。例如,一个单一的SIMD指令可以把64个数相加,只需要把64个数据流发送到64个ALU,就可以在一个时钟周期内得到64个和。SIMD的优点是所有并行执行单元都是同步的,它们都对同意指令作出响应。•SIMD的一个更加古老和优雅的称呼是向量体系结构。32VLIW处理器•超长指令字(VLIW:Verylonginstructionword)指的是一种被设计为可以利用指令级并行(ILP)优势的CPU体系结构。一个按照顺序执行指令的非超标量处理器不能充分的利用处理器的资源,有可能导致低性能。性能可以通过同时执行一系列
本文标题:SoC架构
链接地址:https://www.777doc.com/doc-3205826 .html