SoC架构【苍松书苑】.ppt

上传人:rrsccc 文档编号:10029648 上传时间:2021-04-12 格式:PPT 页数:101 大小:6.82MB
返回 下载 相关 举报
SoC架构【苍松书苑】.ppt_第1页
第1页 / 共101页
SoC架构【苍松书苑】.ppt_第2页
第2页 / 共101页
SoC架构【苍松书苑】.ppt_第3页
第3页 / 共101页
SoC架构【苍松书苑】.ppt_第4页
第4页 / 共101页
SoC架构【苍松书苑】.ppt_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《SoC架构【苍松书苑】.ppt》由会员分享,可在线阅读,更多相关《SoC架构【苍松书苑】.ppt(101页珍藏版)》请在三一文库上搜索。

1、1,SoC,1,深层分析,2,目录,1、什么是SOC 2、CPU 3、总线 4、系统控制模块,2,深层分析,3,什么是SoC,逻辑单元,Analog,静态RAM,CPU 内核,PAD,Die裸片,3,深层分析,4,累计流片20余次10多种SoC芯片 65nm,千万门级设计经验,几款SoC芯片的版图,SEP0718 65nm TSMC,4,深层分析,片上系统:SoC (System on Chip) 具有知识产权的内核: IP核(Intellectual Property Core ) 专用集成电路:ASIC(Application Specific Integrated Circuit),5,

2、深层分析,什么是SOC,IP核(intellectual property core)全称知识产权核。是指某一方提供的、形式为逻辑单元、芯片设计的可重用模块。IP核通常已经通过了设计验证,设计人员以IP核为基础进行设计,可以缩短设计所需的周期。1IP核可以通过协议由一方提供给另一方,或由一方独自占有。IP核的概念源于产品设计的专利证书和源代码的版权等。设计人员能够以IP核为基础进行专用集成电路或现场可编程逻辑门阵列的逻辑设计,以减少设计周期。 ASIC(Application Specific Integrated Circuit)特定应用集成电路 让我们从特定应用集成电路(ASIC)开始。这

3、是因特定目的而创建的设备。这是一个完全或主要部分是数字性质的芯片,任何模拟和混合信号功能是沿着物理接口线(物理层)或锁相回路(PLL)的。ASIC通常被设计和使用在特定系统中的单个公司。开发ASIC非常昂贵、耗时、资源密集的,但ASIC确实能提供低功耗的高性能。,6,深层分析,什么是SOC,片上系统(SoC:System-on-a-chip)指的是在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。所谓完整的系统一般包括中央处理器(CPU)、存储器、以及外围电路等。 片上系统技术通常应用于小型的,日益复杂的客户电子设备。例如,声音检测设备的片上系统是在单个芯片上为所有用

4、户提供包括音频接收端、模数转换器(ADC)、微处理器、必要的存储器以及输入输出逻辑控制等设备。此外系统芯片还应用于单芯片无线产品,诸如蓝牙设备,支持单芯片WLAN和蜂窝电话解决方案。 由于空前的高效集成性能,片上系统是替代集成电路的主要解决方案。SoC 已经成为当前微电子芯片发展的必然趋势。,7,深层分析,什么是SOC,CPU,存储区域,接口外设,IP,系统控制,总线,8,深层分析,9,o,SoC整体架构,BUS,CPU,外部存储器 控制器 EMI,系统控制模块,各种接口,9,深层分析,CPU,一个CPU的外部端口都会有地址总线和数据总线,我们选择一种总线,把CPU和这些外围IP连起来,让CP

5、U可以和这些IP进行通讯,完成数据的计算和输入输出,这样就变成了一个具有实际意义的系统了。 在这一点上,不同的厂商做法不同。 对于Intel而言,他是有晶圆的老大,也就是说,它的CPU由他自己设计好后入场流片,生产好之后就诞生一个正方形的下面有很多针脚的东西,就是你们口中的CPU了。它的内存控制器在主板上的北桥里面,而硬盘控制器网络控制器啥的都在主板上的南桥。从这里可以看出,它的CPU和各类控制器都是分开的,因而面积大,功耗高,性能强。 ARM就不一样,首先ARM属于无晶圆。什么意思?就是ARM自己不会去流片,想用ARM的CPU怎么办?直接购买授权,而后ARM就直接把它的CPU的源代码发给你了

6、。我们实验室就有ARM7和ARM11的源代码,这些代码我也读过不少。从这点来说,ARM的确胆子很大。 ARM的功耗较低面积较小,所以各大厂商通常会把它的CPU和各类外围IP都放到一起,然后自己拿着图纸去流片,生产出来的也是一个正方形,下面有很多引脚,这个东西不仅包含了CPU,还包含了其他的控制器,这个东西就叫做SOC(system on chip)。因特尔绝对不会给你看它的RTL代码,只会给你他芯片的spec。 所以目前各大厂商所做的事情,就是买来ARM的授权,得到ARM处理器的源代码,而后自己搞一些外围IP(或者买或者自己设计),组成一个SOC后,去流片。不同的SOC,架构不同(就是CPU如

7、何和IP联系起来,有的以总线为核心,有的以DDR为核心), 当然,厂商会对SOC里面的ARM核做一些小的修改。,10,深层分析,存储区域,RAM 读写方便,断电后不能保存数据。 ROM 断电也能保存数据,但资料写入只能用一般方法或根本无法更改。 Flash存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。,11,深层分析,12,SEP0718,12,深层分析,13,13,SEP0718结构图,13,深层分析,14,Samsung 6410,14,14,深层分析,15,Telechips

8、 8900,15,15,深层分析,16,Samsung S5PV210,16,16,深层分析,17,工作站14,瘦客户机30,SUN 大型服务器,HP server20,矢量信号源,可编程电源,频谱分析仪,网络分析仪,逻辑分析系统,6GHZ混合信号测试,深亚微米EDA软件,芯片设计环境,17,深层分析,18,芯片量产流程,芯片需求分析 芯片定义 模块划分 电路设计 验证 物理设计 流片 封装 ATE测试,板级模块测试 系统级测试 稳定性测试 产品样机 产品小批量 芯片量产,18,市场调研 产品定义 方案设计 芯片需求,18,深层分析,19,目录,1、SoC整体架构 2、CPU 3、总线 4、系

9、统控制模块,19,深层分析,20,CPU SoC中的内核,CPU所做的工作由其指令集决定 CPU的控制和数据通路执行指令集中的各种指令,20,深层分析,21,指令集ISA要完成哪些工作?,以ARM为例 分支指令 数据处理指令 寄存器传送 算术运算 逻辑运算指令 比较指令 乘法指令 存储器访问指令 Load/Store内存访问指令 批量Load/Store内存访问指令 SWP操作指令 SWI系统调用指令 状态寄存器访问指令,21,深层分析,22,控制和数据通路,22,深层分析,23,CPU基本概念,CISC与RISC 流水线技术 分支预测技术 乱序执行技术 标量与超标量处理器 SISD、MIMD

10、、SIMD、SPMD和向量处理器 VLIW处理器,23,深层分析,CISC与RISC,CISC(Complex Instruction Set Computer) 指令长度可变 编译简单 Intel RISC(Reduced Instruction Set Computer) 采用固定长度的指令格式,指令归整、简单、基本寻址方式有23种。 使用单周期指令,便于流水线操作执行。 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指令的执行效率。 编译复杂 ARM、MIPS、PowerPC,24,24,深层分析,处理器位宽,当前高性能嵌入式系统SoC的处理器

11、多为32位处理器。所谓32位处理器,即处理器内部的寄存器(包括地址寄存器与数据寄存器)位宽最大为32位。低性能的嵌入式系统SoC一般多采用16位微控制器(micro-controllers),然而,随着工作负载的增加,此类系统逐渐开始使用32位处理器。可以预见,在不久的将来,伴随高性能及超大存储空间的需求,64位处理器将逐渐成为主流。,25,25,深层分析,26,CPU基本概念,CISC与RISC 流水线技术 分支预测技术 乱序执行技术 标量与超标量处理器 SISD、MIMD、SIMD、SPMD和向量处理器 VLIW处理器,26,深层分析,流水线技术,流水技术无助于减少单个任务的处理延迟(la

12、tency)但有助于提高整体工作负载的吞吐率 多个不同任务同时操作,使用不同资源 潜在加速比=流水线级数 流水线的速率受限于最慢的流水段 流水段的执行时间如果不均衡,那么加速比就会降低 开始填充流水线的时间和最后排放流水线的时间降低加速比 相关将导致流水线暂停,27,深层分析,28,CPU基本概念,CISC与RISC 流水线技术 分支预测技术 乱序执行技术 标量与超标量处理器 SIMD、MIMD和向量处理器 VLIW处理器,28,深层分析,分支预测技术,分支预测(Branch Prediction):是解决处理分支指令(if-then-else)导致流水线失败的数据处理方法,由CPU来判断程序

13、分支的进行方向,能够加快运算速度。当包含流水线技术的处理器处理分支指令时就会遇到一个问题,根据判定条件的真/假的不同,有可能会产生跳转,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕。流水线越长,处理器等待的时间便越长,因为它必须等待分支指令处理完毕,才能确定下一条进入流水线的指令。分支预测技术便是为解决这一问题而出现的。分支预测技术包含编译时进行的静态分支预测和硬件在执行时进行的动态分支预测。 最简单的静态分支预测方法就是任选一条分支。这样平均命中率为50%。更精确的办法是根据原先运行的结果进行统计从而尝试预测分支是否会跳转。任何一种分支预测策略的效果都

14、取决于该策略本身的精确度和条件分支的频率。 动态分支预测是近来的处理器已经尝试采用的技术。最简单的动态分支预测策略是分支预测缓冲区(Branch Prediction Buff)或分支历史表(branch history table)。,29,29,深层分析,乱序执行技术,乱序执行(out-of-order execution),是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。这样将根据某个电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新

15、排列。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU运行程序的速度。,30,30,深层分析,标量与超标量处理器,根据处理器的微架构设计,处理器可以分为标量(scalar)处理器与超标量(superscalar)处理器。 超标量处理器是指在处理器内核中实现了指令级的并发处理。这种技术能够在相同的CPU主频下实现更高的CPU吞吐率(throughput)。处理器的内核中一般有多个执行单元(或称功能单元),如算术逻辑单元、位移单元、乘法器等等。未实现超标量体系结构时,CPU在每个时钟周期仅执行单条指令,因此仅有一个执行单元在工作,其它执行单元空闲。超标量处理器在一个时钟周期

16、可以同时分派多条指令在不同的执行单元中被执行,这就实现了指令级的并行。超标量体系结构可以视作MIMD(多指令多数据)。,31,31,深层分析,SIMD、MIMD和向量处理器,MIMD(Multiple Instruction Multiple Data):可以编写独立的程序并运行在不同的处理器上,而且这些程序可以协同完成一个共同的大型目标。 SIMD(Single Instruction Multiple Data):对向量数据进行操作。例如,一个单一的SIMD指令可以把64个数相加,只需要把64个数据流发送到64个ALU,就可以在一个时钟周期内得到64个和。SIMD的优点是所有并行执行单元都

17、是同步的,它们都对同意指令作出响应。 SIMD的一个更加古老和优雅的称呼是向量体系结构。,32,32,深层分析,VLIW处理器,超长指令字(VLIW:Very long instruction word)指的是一种被设计为可以利用指令级并行(ILP)优势的CPU体系结构。一个按照顺序执行指令的非超标量处理器不能充分的利用处理器的资源,有可能导致低性能。性能可以通过同时执行一系列指令中的不同子步骤来提高(这就是流水线技术),或者像超标量架构一样,甚至完全的并行执行多条处理器指令。进一步的提高可以通过指令的执行顺序与在程序代码中出现的顺序不同来提高,这就是乱序执行。这三种技术都要付出代价:增加了硬

18、件的复杂性。在并行执行任何操作之前,处理器必须确认这些指令间没有相互依赖。例如第一条指令的结果作为第二条指令的输入。很明显,这样的两条指令无法同时执行,并且第二条指令不能在先于第一条指令执行。乱序执行处理器增加了硬件资源用于调度指令和决定相互依赖。 VLIW通过另一种方法来实现并行。VLIW的并行指令执行是基于一个确定的调度。这个调度是程序在编译的时候就已经确定好的。由于决定乱序执行的工作是由编译器来完成的,处理器不再需要上面三种技术所需的调度硬件。结果VLIW处理器相比其他多数的超标量处理器提供了更加强大的处理能力但是更少的硬件复杂性(编译器的复杂性提高了)。正如一些其他比较新颖的架构,这种

19、并行执行的概念只有当编译器能生成有效的代码的时候才变得有用。,33,33,深层分析,34,目录,1、SoC整体架构 2、CPU 3、总线 4、系统控制模块,34,深层分析,35,总线 SoC的桥梁,CPU、高速设备、低速设备、外部存储器控制接口、系统控制模块等等SoC中各个模块之间的数据传输。 SoC中的各个IP模块以统一的接口和总线通信,避免了挂接在不同SoC架构中接口部分代码的重新编写。 常用的总线:AMBA、NoC,35,深层分析,36,目录,1、SoC整体架构 2、CPU 3、总线 4、系统控制模块 中断控制器 RTC Watchdog DMAC PMC ICE Timer,36,深层

20、分析,37,中断控制器,对SoC芯片中各个外设的中断进行管理,进行优先权排队,并送出Irq信号给CPU 连接在APB总线上,Vector Table,FIQ,IRQ,(Reserved),Data Abort,Prefetch Abort,Software Interrupt,Undefined Instruction,Reset,37,深层分析,38,INTC在SoC芯片中的位置,INTC,38,深层分析,39,信号列表,39,深层分析,40,INTC整体框架,Apb_interface: 是INTC与总线的接口模块;而又同时是INTC的控制模块,里面有INTC所有的寄存器信息; Int_g

21、en: 用于接收中断源,选择中断源为irq或者fiq;中断屏蔽;软件中断。 Priority_logic: 用于软件中断优先级屏蔽,并且在所有的未被屏蔽的中断信号里面选出优先级最高的中断源,并产生中断信号,分为irq模块和fiq模块;,40,深层分析,41,Irq中断产生,IRSR:IRQ原始中断状态寄存器 当对应的中断源无效时,该位为0,IFR:IRQ软件强制中断寄存器,是否软件强制该位对应的中断源发出中断信号,IER:中断允许寄存器,是否允许对应中断源的IRQ中断信号。,ISR:中断状态寄存器,当对应中断源或使能位(IER)无效时,该位才为0,IMR:中断屏蔽寄存器,是否屏蔽对应的IRQ中

22、断信号,IMSR:屏蔽状态寄存器,对应的中断源、使能位无效或屏蔽位有效时,该位才为0,IFSR:最终中断状态寄存器,只有优先级大于IPLR寄存器所设置的中断源才能在此寄存器相应位置位,IPLR:中断优先级寄存器,设置普通中断的优先级门限,只有优先级大于此值的中断才能通过优先级过滤逻辑送到CPU,41,深层分析,42,Fiq中断产生,FIRSR:FIQ原始中断状态寄存器 FIFR:FIQ软件强制中断寄存器 FIER:FIQ中断允许寄存器 FISR:FIQ中断状态寄存器 FIMR:FIQ中断屏蔽寄存器 FIFSR:FIQ中断最终状态寄存器,42,深层分析,43,中断源内部中断,RTC 秒中断、分中

23、断、定时中断、Watchdog中断 UART 数据发送结束中断,数据接收有效中断 TIMER 定时/计时中断 DMAC DMA错误和DMA传输完成 LCDC 错误响应、帧结束、帧起始 SPI FIFO空满、发送FIFO下溢、接收FIFO上溢,43,深层分析,44,中断源外部中断,比内部中断复杂,不可控 通常和GPIO口复用 中断源触发方式 上升沿触发 下降沿触发 高电平触发 低电平触发 外部中断信号特殊处理 去除毛刺、寄存、同步到总线时钟 外部中断需要清除,44,深层分析,45,使用外部中断,1、清除外部中断 在使用外部中断以前,必须先清除在此之前的中断信号 2、配置GPIO控制寄存器 先配置

24、管脚方向为输入 再配置中断触发类型 最后配置管脚模式为中断模式 3、配置中断寄存器 设置INTC的中断屏蔽寄存器的相应位屏蔽中断 设置INTC的相应位以允许该中断源产生的中断,45,深层分析,46,ARM异常向量表,46,深层分析,47,异常处理方式,B irq_handler,(Reserved),B data_abort_handler,B prefetch_abort_handler,B SWI_handler,B Undef_handler,B reset_handler,fiq_handler,irq_handler,47,深层分析,48,异常处理程序,LDRpc,RESET_ENT

25、RY LDRpc,UNDEF_ENTRY LDRpc,SWI_ENTRY LDRpc,PABORT_ENTRY LDRpc,DABORT_ENTRY LDRpc,SYSERR_ENTRY LDRpc,IRQ_ENTRY LDRpc,FIQ_ENTRY RESET_ENTRYDCDInitialise_Target UNDEF_ENTRYDCDUNDEF_Handler SWI_ENTRYDCDSWI_Handler PABORT_ENTRYDCDABORT_Handler DABORT_ENTRYDCDABORT_Handler SYSERR_ENTRYDCD0 IRQ_ENTRYDCDIRQ

26、_Handler FIQ_ENTRYDCDFIQ_Handler,48,深层分析,49,IRQ异常处理程序(C),extern void int_vector_handler(void) U32intnum; U8i = 0; intnum = *(RP)(INTC_IFSTAT); while(intnum != 1) intnum = intnum1; i+; (*vectori.handler)(); return; ,INT_VECTOR vector= /* interrupt number, handler */ INT_NULL, NULL , INT_EXT0, NULL ,

27、INT_EXT1, NULL , INT_EXT2, NULL , INT_EXT3, NULL , INT_EXT4, NULL , INT_EXT5, NULL , INT_EXT6, NULL , INT_EXT7, NULL , INT_EXT8, NULL , INT_EXT9, NULL , INT_EXT10, NULL , INT_EXT11, NULL , INT_EXT12, NULL , INT_EXT13, NULL , INT_EXT14, NULL , INT_SSI, ssi_handler , INT_UART, uart_handler , INT_WD, N

28、ULL , INT_GPT, NULL , INT_EMI, NULL , INT_DMA, NULL , ;,49,深层分析,50,IRQ异常处理程序(汇编),IRQ_Handler 入栈,保存现场 IMPORTint_vector_handler BLint_vector_handler 出栈,恢复现场 SUBS PC , LR ,4,50,深层分析,51,UART中断的初始化配置,VOID int_uart0(VOID) UNSIGNED sysclk = 50000000; / 系统时钟 UNSIGNED baudrate = 57600; / 波特率 UNSIGNED databit

29、 = 8; / 数据位 INT recie = 1; / 接收中断使能 0 disable, 1 enble INT thrie = 0; / 发送中断使能 0 disable, 1 enble Intc_mask_irq(INT_UART0); /屏蔽uart0中断,中断屏蔽寄存器相应位置1 intc_enable_irq(INT_UART0); /使能uart0中断,*(RP)INTC_IEN |= 0X01000000 init_uart0(sysclk, baudrate, databit, trigerlevel); /初始化uart0 uart0_int_en(recie, thr

30、ie); /配置UART的寄存器,接受中断使能,发送中断不使能 intc_unmask_irq(INT_UART0); /打开中断屏蔽,中断屏蔽寄存器相应位置0 函数int_uart0()完成使用异步通信收发器UART中断的初始化配置,该函数会对中断允许寄存器、中断屏蔽寄存器等寄存器进行操作。,51,深层分析,52,UART中断服务程序,VOID uart_handler(INT Vector) /中断服务子程序 case 接收数据状态中断 接收数据有效中断 Timeout中断 发送FIFO中断 Modem状态变化中断 ,52,深层分析,53,中断控制器小结(1),中断控制器 挂在APB总线上

31、 对外部中断、内部中断、软件强制中断进行管理,送出IRQ信号给ARM 设计时考虑接口信号和寄存器的设计 APB接口信号 中断源信号 送给ARM的IRQ、FIQ信号,53,深层分析,54,中断控制器小结(2),中断控制器产生IRQ中断送给ARM的过程 外设产生的内部中断 外设的中断允许寄存器 外设中断屏蔽寄存器 与GPIO口复用的外部中断 GPIO的管脚方向、管脚模式、中断触发类型 软件强制中断 INTC 原始中断状态寄存器 中断允许寄存器 中断屏蔽寄存器 中断优先级寄存器 最终中断状态寄存器 送出IRQ信号给ARM,54,深层分析,55,中断控制器小结(3),ARM处理中断的过程 执行完当前指

32、令后PC指向0 x18 跳转指令跳转到IRQ中断服务程序 保存现场 调用C编写的中断服务程序 恢复现场 恢复PC,55,深层分析,56,目录,1、SoC整体架构 2、CPU 3、总线 4、系统控制模块 中断控制器 RTC和Watchdog Timer PMC ICE DMAC,56,深层分析,57,实时时钟RTC,对SoC中锁相环或者外部晶振的32.768kHz的时钟进行计数; 产生时、分、秒三种中断; 送给中断控制器; 中断控制器进行优先权排队后送给CPU; CPU执行中断服务程序; 在中断服务程序中判断中断源,并更新系统的实时时钟。,57,深层分析,58,Watchdog,WATCHDOG

33、 作用: 提供防止系统失败的一种保证措施,通过软件间隔的对WATCHDONG 进行服务,确保系统工作正常。 特征: 提供reset系统 提供watchdog中断,58,深层分析,组成框图,在APB总线上使用PCLK总线时钟,在PAD中使用CLK32提供的时钟,所以RTC模块属于多时钟域设计。其中Sync_Pto32与Sync_32toP模块是保证两个时钟域同步而设置的。APB接口模块完成数据从PAD到APB域的接口转换, CLK32域的Time,Sample,WatchDog模块用来计时或形成中断。,59,深层分析,寄存器列表,60,深层分析,61,目录,1、SoC整体架构 2、CPU 3、总

34、线 4、系统控制模块 中断控制器 RTC和Watchdog Timer PMC ICE DMAC,61,深层分析,62,通用定时器(TIMER),作用: TIMER是片内集成的通用定时器,能够向系统提供定时中断,也可以通过外部时钟进行定时计数。 工作模式 重启计数模式:当通道使能后计数器锁存加载计数寄存器的值,然后在系统时钟的驱动下递减计数。当计数到零时,产生一个标志用于设置相应的中断标志位,若中断未被屏蔽则产生中断;同时,计数器重新锁存加载计数寄存器的值开始一个新的计数周期 自由计数模式:当通道使能后计数器锁存加载计数寄存器的值,然后在系统时钟的驱动下递减计数。当计数到零时,产生一个标志用于

35、设置相应的中断标志位,若中断未被屏蔽则产生中断;同时,计数器加载数据0 xFFFFFFFF(针对32位计数器)或0 xFFFF(针对16位定时器)开始一个新的计数周期 外部捕获功能:利用外部事件捕获计数器的当前值,也就是当检测到输入端口上发生指定的边沿变化时,立即锁存计数器的当前值并发出中断。利用捕获功能可以确定外部输入信号的频率、脉冲宽度等。,62,深层分析,结构框图,63,深层分析,寄存器列表,64,深层分析,65,目录,1、SoC整体架构 2、CPU 3、总线 4、系统控制模块 中断控制器 RTC和Watchdog Timer PMC ICE DMAC,65,深层分析,66,PMC模块介

36、绍,功耗管理模块(PMC)控制处理器不同工作模式之间的切换,以SEP3203为例:slow、normal、idle和sleep。 这些工作模式的开发目的是根据芯片不同的应用,通过动态地管理芯片内部各子模块的时钟源供给和系统的工作频率,从而降低芯片的整体功耗。 另外PMC还包含了各个子模块的时钟控制电路,它可以集中控制、关闭不必要打开的模块达到低功耗的目的。,提供四种低功耗模式:SLOW、NORMAL、IDLE和SLEEP。系统中模块工作时钟的集中控制策略,系统中的模块可以通过PMC来关闭和打开。 SLOW模式不打开DPLL,芯片工作频率为25MHZ/n,其中n=1/2/4/6/8,缺省为25M

37、HZ/1; NORMAL工作在DPLL的时钟之下,此时DPLL的输入为晶振时钟; IDLE模式关闭CORE时钟,减小内核和存储器功耗。 SLEEP关闭所有时钟,SLEEP时的功耗150uW,支持SDRAM的数据自刷新,支持RTC日历保持。,66,深层分析,67,结构框图,67,深层分析,寄存器列表,68,深层分析,69,目录,1、SoC整体架构 2、CPU 3、总线 4、系统控制模块 中断控制器 RTC和Watchdog Timer PMC ICE DMAC,69,深层分析,ARM Debug System Components,Address,Control,EmbeddedICE Logi

38、c,ARM Core,SOC,EmbeddedTraceMacrocell,Trace Port,JTAG Port,TraceCapture Unit,RunControlUnit,Data,EmbeddedTrace Buffer,e.g. Multi-ICE, RVI,e.g. MultiTrace, RVT,Host computer runningAXD (+TDT for trace) or RVD,70,深层分析,基于JTAG的片上ICE,扫描链0:113位,包含数据总线、控制信号、地址总线 扫描链1:33位,为扫描链0子集,包括数据总线和DBGBREAK信号 扫描链2:38位,

39、主要用于访问ICE 逻辑部件中的各寄存器 EmbeddedICE逻辑电路包括一组寄存器和比较器,3个信号 DBGREQ:调试请求 DBGACK:调试确认 BREAKPT:断点信号 TAP控制器可以通过JTAG接口控制各个硬件扫描链,调试原理: 如何设置断点?,如何进入调试状态,和正常运行状态有 什么区别?在调试状态下如何访问内部寄存器、如何访问内存?,The EmbeddedICE Logic,通过扫描链2访问ICE的寄存器,ICE包含三个部分 Debug Control and Status registers(调试寄存器) 调试控制寄存器 调试状态寄存器 Two watchpoint un

40、its 2组,每组3个寄存器(数据,地址,控制) 通过监控数据、地址和控制信号,判断数据观察点watchpoint和程序断点breakpoint 每一个组单元可以提供 1 watchpoint, 1 hardware breakpoint in ROM or RAM, or Multiple software breakpoints in RAM Debug Communications Channel(调试通信通道) 一个6位的通信控制寄存器 一个32位的通信数据读写寄存器,72,深层分析,Watchpoints(数据观察点),Control,Addr Value,Data Value,Co

41、ntrol Value,Addr Mask,Data Mask,Control Mask,A31:0,C o m p a r a t o r,Watchpoint,D31:0,0 xF000,0 x0,0 xffffffff,Data write,0 xF000,Memory,Location to be watched,读写完成访问的数据以后进入调试状态: A watchpoint :当约定存储器被约定的方式访问以后触发断点; 这个例子说明当地址0 xF000 被写入的时候产生的观察点 每一个观察点单元可以产生一个数据观察点断点,73,深层分析,Hardware Breakpoints(硬件

42、断点),0 x8000,ARM - 0 x3Thumb - 0 x1,0 xffffffff,Opcode fetch,0 x8000,Memory,Breakpoint to be set here,Control,Addr Value,Data Value,Control Value,Addr Mask,Data Mask,Control Mask,A31:0,C o m p a r a t o r,Breakpoint,D31:0,A hardware breakpoint :当程序在约定地址取出指令的时候,触发断点 这个例子说明:在0 x8000地址取指令的时候产生程序断点 Hardw

43、are breakpoints can can be set in RAM or ROM. Each watchpoint unit can be used to set one (and only one) hardware breakpoint.,74,深层分析,Software Breakpoints(软件断点),Memory,0 xffffffff,0 xeeeeeeee,0 x0,Opcode fetch,Control,Addr Value,Data Value,Control Value,Addr Mask,Data Mask,Control Mask,A31:0,C o m p

44、 a r a t o r,Breakpoint,D31:0,A software breakpoint:软件断点是约定的一条指令被取指的时候触发程序断点(这条指令可以在任何地址) 这个例子说明了软件断点实现的过程 首先在Data Value寄存器中写入特定指令,Addr Mask为0 xffffffff ,当取值到特殊指令的时候产生断点。只能在RAM中产生。 Each watchpoint unit can be used to set an unlimited number of software breakpoints.,(The “special” value),当需要在某地址代码处设置

45、软件断点的时候,仿真器会先将此处代码进行备份保护,然后将预先设定好的断点特征值(一般为0 x0000等不易与代码混淆的值)写入此地址,覆盖原来的代码数据。,75,深层分析,76,目录,1、SoC整体架构 2、CPU 3、总线 4、系统控制模块 中断控制器 RTC和Watchdog Timer PMC ICE DMAC,76,深层分析,77,数据传送方式,程序控制下的数据传送通过CPU执行程序中的I/O指令来完成传送,又分为:查询传送、中断传送 直接存储器存取(DMA)传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传送,77

46、,深层分析,78,查询传送的两个环节, 查询环节 寻址状态口 读取状态寄存器的标志位 若不就绪就继续查询,直至就绪 传送环节 寻址数据口 是输入,通过输入指令从数据端口读入数据 是输出,通过输出指令向数据端口输出数据,78,深层分析,79,中断传送方式,CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序,79,深层分析,80,DMAC,数据传送的方式: 查询传送: 简单实用,效率较低; 中断传送:每次传送需要大量额外时间开销 ; DMA传送:DMA数据传送是一种完全由硬件执行数据交换的工作方式;数据交换不经过CP

47、U而直接在存储器之间以及存储器和外设之间进行。实现了一个memcpy的功能和赋值的功能;DMA方式一般用于高速传送成组的数据,80,深层分析,81,DMAC的作用,DMA控制器在获得总线仲裁器或CPU授权占用总线后 向内存和外设发出地址和控制信号,修改地址,对传送的字的个数计数 以中断方式向CPU报告传送操作的结束。,81,深层分析,82,DMAC在SoC芯片中的位置,DMAC,82,深层分析,83,SoC芯片中各模块的DMA需求,需要使用DMA的高带宽高速度的模块 LCD控制器、MMA和USB 需要使用DMA的低带宽低速度的模块 AC97控制器、PWM、SPI和UART 使用DMA的存储控制

48、模块 存储控制器和CF卡控制器 不需要使用DMA的模块 RTC、Timer、GPIO等,83,深层分析,84,DMA传送的源设备和目标设备,外设和存储器 外设 DMA传送的地址是某一个数据端口的地址 地址产生方式为非增量 存储器 DMA传送的地址是存储器的地址 地址产生方式为增量,84,深层分析,85,85,深层分析,86,CPU委托DMA控制器为外设进行DMA传输的流程,1、CPU编程外设,然后处理其它任务; 2、外设进行工作,直到需要进行数据传输,向CPU发出DMA中断请求; 3、CPU编程DMAC,委托DMAC进行DMA传输; 4、DMAC进行数据传输; 5、如果发生错误则发送错误中断,否则等传输完成发送传输完成中断; 6、CPU重新接管外设。,86,深层分析,87,DMAC进行传输操作,1、判断所有通道的优先级,选取通道进行DMA传输; 2、向AHB Arbiter发送DMA请求,申请使用总线,直到得到总线许可; 3、根据CPU的配置发送一个成组(Burst)传输; 4、如果传输过程中发生错误,则发送错误中断,否则继续传输; 5、如果一个Burst的数据传输完毕,判断是否该通道所

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1