1S3C44B0X处理器体系结构分析体系结构、接口功能2ContentsIntroductionofSamsungARMCPUembeddedMicrocontrollerBusarchitectureTheUsageofICE引脚定义ApplicationofS3C44B0X3AphotoofARM-R44B0X-002(S3C44B0X)SummarizeofS3C44B0X4InnerstructureofS3C44B0X5ArchitectureFeatures-Integratedsystemforhand-helddevicesandgeneralembeddedapplications.-16/32-BitRISCarchitectureandpowerfulinstructionsetwithARM7TDMICPUcore.-Thumbde-compressormaximizescodedensitywhilemaintainingperformance.-On-chipICEbreakerdebugsupportwithJTAGbaseddebuggingsolution.-32x8bithardwaremultiplier.-NewbusarchitecturetoimplementLow-PowerSAMBAII(SAMSUNG'sARMCPUembeddedMicro-controllerBusArchitecture).61.IntroductionofSamsungARMCPUembeddedMicrocontrollerBusarchitecture由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。AMBA(ArmMicrocontrollerBusarchitecture)规范主要包括了AHB(AdvancedHighperformanceBus)系统总线和APB(AdvancedPeripheralBus)外围总线。S3C44B0X采用在AMBA基础上采用了新的更节能的总线结构:SAMBAII(Samsung'sARMCPUembeddedMicro-controllerBusArchitecture).7SAMBAII片上总线AMBA2.0规范包括四个部分:AHB、ASB、APB和TestMethodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。Microprocessors,DMAcontrollers,memorycontrollersandotherhigherperformanceblocksaresuitedforconnectiontotheAHB/ASB.LowerperformanceblockssuchasUARTs,GeneralPurposeInput/Output(GPIO)andTimersaresuitedforconnectiontotheAPB.8ThereasonwhyadoptspartitioningblocksontoseparatebusconnectionsInsystemswhichuseacommonbus,eachblockaddstothetotalcapacitanceonthebus.ItisquitecommonforthetotalcapacitancetoexceedthemaximumdrivingcapabilityofbuffersinASICvendorsstandardcelllibraries.Bussignalsareoftenleftunderdriven,therebyreducingtheperformanceofthebus.9AHB(AdvancedHighperformanceBus)AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。AHB系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummySlave)、虚拟主模块(dummyMaster)所组成。10AHB总线互连结构图AHB总线互连结构图11APB:AdvancedPeripheralBusAPB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB桥。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。1)系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。2)当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP状态停留一个周期。当PCLK的下一个上升沿时到来时,系统进入ENABLE状态。12APB:AdvancedPeripheralBus3)系统进入ENABLE状态时,维持之前在SETUP状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。13APB传输状态图14基于AMBA的片上系统大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB桥等。15基于AMBA的片上系统还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。16基于AMBA的SoC结构图17EnergysavingIncreasinglevelsofonchipsystemintegrationmeansthatmorefunctionalunitsneedtobeinterconnected.Theneedtolimitclockcycletimesandpowerconsumptionmeansthatbuscapacitancemustbeaslowaspossible.Thiscanbedoneeffectivelybypartitioningfunctionalunitsontodiscretebusconnectionsthatarejoinedbybusbridges.18Partitioningblocksontoseparatebusconnectionshasseveraladvantages:Eachbushasalowercapacitancegivinghigherspeedoperationorreducedpowerconsumption.Iffrequentlyaccessedperipheralsaregroupedonaseparatebusfromperipheralsthatareonlyaccessedoccasionallythenpowercanbesaved.ThehighbandwidthdatatransferrequiredfortheLCDcontrolleroccursonitsownlocalbusstub,reducingpowerconsumption.19开发系统ARM全面的调试解决方案包括电路内仿真工具Multi-ICE和MultiTrace™以及片上嵌入式电路单元EmbeddedICE和EmbeddedTraceMacrocell™(ETM).Multi-ICE:Multi-ICE是ARM的JTAG电路内仿真器ICE支持ARM实时调试提供触发点位置上处理器运行的宝贵历史记录和现场信息通过Multi-ICE可以控制存储器和内核寄存器内容.202.TheintroductionofEmbeddedlCETheICEruncontrolunitallowsthecoretobestartedandstoppedundercontroloftheconnecteddebuggersoftware.Theusercanthenexamineandmodifyregistersandmemory,andsetbreakpointsandwatchpoints.ICEalsoprovidessupportforcodedownload,traceandreal-timedebug.21TheintroductionofEmbeddedlCEEmbeddedlCE是集成在ARM内核中的嵌入式ICE仿真器,通过对EmbeddedlCE的控制,对EmbeddedlCE中寄存器的读取,可以获得ARM内核的状态,为程序设置断点以及读取Debug通信通道。EmbeddedICE的长度是38位,包括:32位数据,5位的访问EmbeddedICE中寄存器的地址,1个读写控制位。22TheintroductionofEmbeddedlCEEmbeddedICE的一个主要作用就是可以在ARM的程序中设置软件或者硬件的断点。在ARM7TDMI处理器的内核中,有两种断点的设置方式:硬件断点和软件断点。在有两个Watchpoint资源的ARM7TDMI的内核中,断点可以有如下情况:2个硬件断点,没有软件断点;1个硬件断点,任意多个软件断点;任意多个软件断点。23EmbeddedlCE宏单元组成一个与EmbeddedlCE兼容的ARM7DI宏单元包括一个ARM7内核、少量的内核调试逻辑、一个JTAG测试端口(TAP)控制器和EmbeddedlCE宏单元。EmbeddedlCE宏单元包括断点寄存器,后者能够比较地址、数据和控制总线同寄存器内的设置值。若两者匹配,会产生一个断点信号,该信号将被传送到处理器。举个例子来说,当一个特定地址的指令或一个特定的数据值被加载入指定的位置,宏单元就会产生一个断点。2425EmbeddedlCE使用如果在一条指令上设置了断点,当指令到达流水线的执行级时,指令的执行将被中断,处理器进入调试状态。然后,处理器和存储系统通过TAP控制器由JTAG进行状态检测。一旦处理器进入调试状态,它就会停止从数据总线读取指令,并且与存储系统隔离。EmbeddedlCE此时就可以通过扫描链1将指令读入流水线、驱动处理器。寄存器和存储内容在调试状态下仍可以进行访问。这个过程是可逆的,用户可以在调试器下把代码下载进存储器,避免了烧写EPROM的不便。26EmbeddedlCE在多处理器debug中的使用EmbeddedlCE宏单元提供的调试特征使ARM处理器能够在多处理器环境下进行调试。当ARM处理器遇到一个断点时,它的执行就被中断,控制权通过JTAG接口交由调试器。ARM处理器向存储系统发出一个“调试确认”(debugAcknowledge)信号,告知后者处理器处于调试状态。同时,它不再向存储器发出访问请求,保证了其它处理器或者DMA通道继续工作、继续与存储系统通信。在调