owerPC处理器原理介绍.ppt
PowerPC处理器原理,PowerPC处理器原理,本章主要介绍PowerPC405嵌入式处理器的结构,其主要内容包括:1)PowerPC处理器结构;2)PowerPC处理器的寄存器;3)PowerPC处理器I/O接口;4)PowrPC处理器的OCM控制器;5)PowerPC处理器的APU控制器。这几部分内容是PowerPC处理器基本原理的核心,也是设计人员使用PowerPC405嵌入式处理器进行SOPC设计的基础。,PowerPC处理器结构,PowerPC处理器为32位的PowerPC嵌入式环境体系结构(embedded environment architecture),该结构来源于PowerPC体系结构。Virtex-II Pro使用PowerPC405D5结构,Virtex-4使用PowerPC405F6结构。本章的处理器块(processor blcok)是指连接PPC405 D5或者PPC405F6核,片上存储器逻辑(on-chip memory logic,OCM),辅助处理器单元(Auxiliary Processor Unit,APU),相关逻辑和接口的处理器集合。,PowerPC处理器结构,PowerPC处理器结构所提供的软件模型保证了在实现PowerPC系列微处理器上的兼容要求。PowerPC体系结构定义的参数保证了在应用程序级上的处理器实现上的兼容。,PowerPC处理器结构PowerPC处理器体系结构概述,PowerPC处理器是定点处理器,它与PowerPC UISA兼容。PowerPC405 VEA和OEA支持大部分都可以用来实现PowerPC405 Book-E的结构。图3.1给出了PowerPC处理器的结构图。,PowerPC处理器结构PowerPC处理器体系结构概述,PowerPC处理器结构PowerPC处理器体系结构概述,1、中央处理单元(CPU)PowerPC处理器采用了5级流水,包括:取指,译码,执行,回写和加载回写;取指队列用于存放指令,由三部分组成:两个预取缓冲区和一个译码缓冲区。取指和译码逻辑可以同时处理两条分支。PowerPC处理器有单线程(single-issue)执行单元,包含通用寄存器GPR,算术逻辑单元ALU和乘-加单元MAC。执行单元支持在硬件内所有的32位PowerPC UISA指令。不支持浮点操作。,PowerPC处理器结构PowerPC处理器体系结构概述,2、异常处理逻辑 异常被分为两类:紧急的和非紧急的;PowerPC405处理用于处理异常(19种可能的异常),这些异常包括:错误条件,内部定时器,调试事件和外部中断控制器EIC接口。每一类异常都有保存/恢复寄存器。SRR0和SRR1用于非紧急中断,SRR2和SRR3用于紧急中断。图3.1 PowerPC处理器的内部结构,PowerPC处理器结构PowerPC处理器体系结构概述,3.存储器管理单元包括:1)转换4GB逻辑地址空间到物理地址空间;2)独立控制指令转换和保护,以及数据转换和保护;3)对TLB的奇偶检测和报告;4)使用转换机制进行页面级访问控制;5)软件控制的页面替换策略;6)为每个虚拟存储器区域的完全写入,缓冲能力,用户定义的 0,保护和段(WIU0GE)存储属性控制;7)实模式下的32个128M空间的WIUOGE存储属性控制;适用区域的额外保护控制;TLB用于控制地址转换和保护。其工作原理MicroBlaze处理器的TLB基本一致。,PowerPC处理器结构PowerPC处理器体系结构概述,4、指令和数据缓存 PowerPC处理器通过指令缓存单元ICU和数据缓存单元DCU访问存储器。每个缓存单元包括:1)PLB主接口 2)缓存阵列 3)缓存控制器;对于CPU来说,对指令和数据缓存的命中是单周期的存储器访问。处理缓存缺失,就是通过PLB向其它PLB设备发出请求,比如外部存储器控制器。,PowerPC处理器结构PowerPC处理器体系结构概述,缓存控制器采用了最近使用的LRU的缓存行替换策略。即缓存行被填充时,最近经常访问的缓存行被保留,而其它均被替换。指令缓存的功能包括:16KB,双向级关联(2-way set associative);奇偶检测和报告(只有Virtex-4);每缓存行8字(32字节);提取行缓冲区;提供了来自提取行缓冲区的取指命中;下一个顺序行的可编程预取到提取行缓冲区;非缓存指令的可编程预取:全行(8字)/半行(4字);提取行满时,非阻塞访问。,PowerPC处理器结构PowerPC处理器体系结构概述,数据缓存的功能包括:1)16KB,双向级关联(2-way set associative);2)奇偶检测和报告(只有Virtex-4);3)每缓存行8字(32字节);4)读、写线缓冲区;5)提供从/到线缓冲行的加载和存储命中;6)可编程的加载和存储缓存行分配;7)在缓存行满时的操作数推进(Operand forward)逻辑;8)在缓存行满并且刷新时的非阻塞访问。,PowerPC处理器结构PowerPC处理器体系结构概述,5、定时器资源 PowerPC405处理器包含一个64位的基准时间和3个定时器。基准时间通过使用CPU 时钟或者外部时钟源,同步进行时间的增加。定时器使用基准时间同步增加。PowerPC处理器支持三种类型的定时器:1)可编程间隔的定时器;2)固定间隔的定时器;3)看门狗定时器;,PowerPC处理器结构PowerPC处理器体系结构概述,6、调试 PowerPC405处理器调试资源包括特殊调试模型,在硬件和软件开发过程中,支持各种类型调试。这些调试包括:1)内部调试模式:ROM监控程序和软件调试器 2)外部调试模式:JTAG调试器 3)调试等待模式:处理器停下来允许服务中断 4)实时跟踪模式:事件触发用于实时跟踪,PowerPC处理器结构PowerPC处理器体系结构概述,7、PowerPC处理器接口,包括:1)处理器本地总线 处理器本地总线PLB接口提供一个32位地址和3个64位数据总线与数据缓存和指令缓存连接。其中的两个64位总线连接到数据缓存单元,一个支持读操作,另一个支持写操作;另一个连接到指令缓存单元。,PowerPC处理器结构PowerPC处理器体系结构概述,2)设备控制寄存器 设备控制寄存器(device control register,DCR)支持与片上寄存器的连接用于设备控制。软件通过使用mfdcr和mtdcr指令来访问这些寄存器。3)时钟和电源管理 时钟和电源管理接口支持几种时钟分配和电源管理的方法。4)JT AG端口 JTAG端口接口支持与外部几种调试工具的连接。使用JTAG测试访问端口,调试工具能单步运行处理器和查看内部处理器的状态,这样可以方便软件调试。,PowerPC处理器结构PowerPC处理器体系结构概述,5)片上中断控制器 片上中断控制器接口是一个外部的中断控制器,它与来自片上或外部的中断源输入连接,并且使用一对中断信号(紧急和不紧急的)将其传递给处理器。异步中断源包括外部信号,JTAG和调试单元和其它片上外设。6)片上存储器控制器 一个片上存储器OCM接口支持在性能级上,将额外的能被访问的、与缓存阵列匹配的存储器连接到指令和数据缓存。,PowerPC处理器结构PowerPC软件结构概述,PowerPC处理器结构是一个有32位子集的,64位的体系结构。PowerPC 体系结构分为三个级别。通过对体系结构以这种方式进行划分,为实现可以选择价格/性能比平衡的复杂性级别留出了空间,同时还保持了实现间的代码兼容性。,PowerPC处理器结构PowerPC软件结构概述,1、用户指令集体系结构(UISA)定义了通用于所有 PowerPC 实现的用户指令和寄存器的基本集合。这些是非特权指令,为大多数程序所用。2、虚拟环境体系结构(VEA)定义了常规应用软件要求之外的附加的用户级功能,比如高速缓存管理、原子操作和用户级计时器支持。虽然这些操作也是非特权的,但是程序通常还是通过操作系统调用来访问这些函数。3、操作环境体系结构(OEA)定义了操作系统级需要和使用的操作。其中包括用于内存管理、异常向量处理、特权寄存器访问、特权计时器访问的函数。该体系结构中详细说明了对各种系统服务和功能的直接硬件支持。,PowerPC处理器结构PowerPC软件结构概述,PowerPC嵌入式环境体系结构的特点有:为嵌入式软件环境进行了存储器管理的优化为性能优化和存储器控制的缓存管理指令用于控制存储器系统行为的存储属性用于控制调试资源控制,定时器资源,中断,实时模式存储属性,存储器管理工具和其它结构的处理器资源,PowerPC处理器结构PowerPC软件结构概述,一个设备控制器寄存器地址空间用于管理片上外设,比如存储器控制一个双级中断结构和中断控制指令多重定时器资源调试资源,能够进行硬件和软件调试功能比如指令断点,数据断点和程序的单步执行。,PowerPC处理器结构PowerPC软件结构概述,PowerPC处理器增持实模式和虚拟模式两种地址转换模式。在实模式下,程序直接寻址物理存储器;在虚拟模式下,程序地址虚拟存储器和虚拟存储器的地址通过处理器转换为物理存储器的地址。这使程序可以访问更大的地址空间。通过加载和存储指令支持数据寻址,其寻址模式有:1)通过立即索引的寄存器间接寻址;2)通过索引的寄存器间接寻址;3)寄存器间接寻址。,PowerPC处理器结构PowerPC软件结构概述,在分支指令中使用下面的分支寻址模式中的一种:1)相对分支(分支相对当前指令的地址);2)绝对分支(分支在存储器中的绝对地址);3)连接寄存器分支(分支地址保存在连接寄存器中);4)计数寄存器分支(分支地址保存在计数寄存器中).,PowerPC处理器结构-PowerPC 寄存器,PowerPC 的寄存器分为两类:1)用户寄存器;2)特权寄存器;,PowerPC处理器结构-PowerPC 寄存器,1、通用寄存器(GPR)用户指令集体系结构规定,所有实现都有 32 个 GPR(从GPR0 到 GPR31)。GPR 是所有整数操作的源和目的,也是所有加载/存储操作的地址操作数的源。GPR 还提供对 SPR 的访问。所有 GRP 都是可用的,只有一种情况例外:在某些指令中,GPR0 只是代表数值 0,而不会去查找 GPR0 的内容。,PowerPC处理器结构-PowerPC 寄存器,2、专用寄存器(SPR)组 用户级的SPR组包括SPRG4-SPRG7,需要系统服务的支持才可以由应用程序读写的 SPR 包括时基(Time Base)和其他各种可能支持的计时器。,PowerPC处理器结构-PowerPC 寄存器,3、链接寄存器(Link Register,LR)这个寄存器存放的是函数调用结束处的返回地址。某些转移指令可以自动加载 LR 到转移之后的指令。每个转移指令编码中都有一个 LK 位。如果 LK 为 1,转移指令就会将程序计数器移为 LR 中的地址。而且,条件转移指令 bclr 转移到 LR 中的值。4、定点异常寄存器(Fixed-Point Exception Register,XER)这个寄存器存放整数运算操作的进位以及溢出信息。它还存放某些整数运算操作的进位输入以及加载和存储指令(lswx 和 stswx)中传输的字节数。,PowerPC处理器结构-PowerPC 寄存器,5、计数寄存器(Count Register,CTR)这个寄存器中存放了一个循环计数器,会随特定转移操作而递减。条件转移指令 bcctr 转移到 CTR 中的值。6、条件寄存器(Condition Register,CR)这个寄存器分为八个字段,每个字段 4 位。,PowerPC处理器结构-特权寄存器,1、机器状态寄存器(Machine State Register,MSR)MSR包含了那些控制处理器运行状态的位域,这些位只能被特许的软件访问 2、核配置寄存器(Core Configuration Register,CCR)该寄存器在Vitex-4以上版本有,CCR寄存器的一些额外的控制比特用于使能奇偶校验。CCR1用于使能奇偶错误插入用于硬件调试。MCSR寄存器包含状态信息用来确定指令缓存、数据缓存或TLB的奇偶错误源。,PowerPC处理器结构-特权寄存器,3、异常处理寄存器(Exception-Handling Register)组 包括EVPR、ESR、DEAR、SR0-SR3、MCSR寄存器。4、存储器管理寄存器(Memory Management Register)组 MMR寄存器组包括PID、ZPR寄存器。,PowerPC处理器结构-特权寄存器,5、存储器属性控制寄存器(Storage-Attribute Control Register)组 SACR寄存器组包括DCCR、DCWR、ICCR、SGR、SLER、SU0R寄存器。6、调试寄存器(Debug Register,DR)组 DR组包括DBSR、DBCR0、DBCR1、DAC1、DAC2、DVC1、DVC2、IAC1、IAC2、IAC3、IAC4、ICDBR寄存器。7、定时器寄存器(Timer Registers)组 TR组包括TCR、TSR、PIT寄存器。,PowerPC处理器结构-特权寄存器,8、处理器版本寄存器(Processor Version Register,PVR)PVR 是一个 32 位只读寄存器,标识处理器的版本和修订级别。处理器版本由PowerPC 体系结构过程分配。修订级别由实现定义。需要有特权才能访问 PVR,所以应用程序只能在操作系统函数的帮助下才可以确定处理器版本。9、基准时间寄存器(Time-Base Register,TBR)TBR由TBRH和TBRL寄存器构成,PowerPC处理器结构-共有寄存器组,专用寄存器(SPR)组 SPR组包括SPRG0-SPRG7,SPR 给出处理器核心内部资源的状态并对其进行控制。不需要系统服务的支持就可以由应用程序读写的 SPR 包括计数寄存器(Count Register)、链接寄存器(Link Register)和整型异常寄存器(Integer Exception Register)。,PowerPC处理器I/O接口,该部分的I/O接口包括:1)时钟和电源管理接口;2)CPU控制接口;3)复位接口;4)指令侧的PLB接口;5)数据侧的PLB接口;6)设备控制寄存器接口;7)内部设备控制寄存器接口;8)外部DCR总线接口;,PowerPC处理器I/O接口,9)外部中断控制器接口;10)PPC405 JTAG接口;11)调试接口;12)跟踪接口;13)处理器版本寄存器接口;14)额外的FPGA指定信号等。,PowerPC处理器I/O接口,PowerPC处理器的I/O接口的信号命名格式为:PREFIX1PREFIX2SIGNAME1SIGNAME2NEG(m:n)PREFIX1,PREFIX2:为大写的前缀,用于标识信号源。这个前缀后者是一个单元(比如CPU),或者是一种类型的接口(比如,DCR)。当指明的是处理器块时,为输出信号;否则为输入信号。下面给出前缀的含义:1)SIGNAME1:指明信号的基本功能 2)SIGNAME2:指明信号的第二个功能 3)NEG:可选,表明信号低有效 4)M:N:可选,表明是一个总线信号,PowerPC处理器I/O接口-时钟和电源管理接口,1、CPM接口功能及信号 时钟和电源管理接口(clock and power management,CPM)接口使能对电源敏感的应用,通过外部逻辑来控制处理器时钟。OCM控制器从处理器核独立的提供时钟。此外,Virtex-4器件的PowerPC405处理器也为APU和DCR使用独立的时钟。PowerPC405的CPM分为三个时钟域:1)核 2)定时器 3)JTAG,PowerPC处理器I/O接口-时钟和电源管理接口,当产生下面的事件时,处理器从休眠模式被唤醒:1)定时器中断或定时器复位 2)确认芯片复位或系统复位请求 3)确认一个外部中断或紧急中断输入 4)确认DBGC405DEBUGHALT芯片输入信号 图3.2给出了CPM接口块的符号,表3.1给出了CPM接口I/O信号的功能描述。,PowerPC处理器I/O接口-时钟和电源管理接口,PowerPC处理器I/O接口-时钟和电源管理接口,PowerPC处理器I/O接口-在系统设计时对时钟域的考虑,使用PowerPC405处理器的嵌入式系统的高级观点和内核连接总线结构包括:1)PowerPC处理器;2)处理器本地总线(Processor Local Bus,PLB)外设;3)指令侧和数据侧的片上存储器控制器(On-Chip Memory Controller,OCM);4)设备控制寄存器(Device Control Register,DCR)外设;5)开关结构模块(Fabric Co-Processor Module,FCM)(Virtex-4),PowerPC处理器I/O接口-在系统设计时对时钟域的考虑,下面的时钟(使用与处理器时钟一定的比例关系)用于和内核块进行通信:CPMC405CLOCK:主处理器块时钟PLBCLK:基本的PLB I/O总线时钟BRAMISOCMCLK:用于指令侧的OCM控制器的参考时钟BRAMDSOCMCLK:用于数据侧的OCM控制器的参考时钟CPMFCMCLK:用于APU控制器的参考时钟CPMDCRCLK:用于外部DCR总线的参考时钟,PowerPC处理器I/O接口-在系统设计时对时钟域的考虑,PowerPC处理器支持多时钟域。使用多个DCM和BUFG元件用来创建和驱动时钟域。时钟域包括:1)PLB时钟,2)FCM时钟,3)DCR时钟,4)OCM时钟。,PowerPC处理器I/O接口-CPU控制接口,CPU控制接口基本上用来提供CPU的建立到PowerPC405处理器的信息。它也用于报告在PowerPC405处理器内的机器检查状态的识别。图3.3给出了CPU控制器接口块符号,表3.2给出了CPU控制接口的信号描述。,PowerPC处理器I/O接口-CPU控制接口,PowerPC处理器I/O接口-复位接口,复位导致处理器模块执行初始化操作。处理器能够识别三种类型的复位:1)处理器复位:只影响处理器模块,包括内核执行单元,缓存单元,DCR和OCM。2)芯片复位:影响处理器模块和其他所有的片上的外设 3)系统复位:影响处理器芯片,所有的其它外设或者与处理器连接的外部设备,其影响范围取决于系统实现。上电复位(POR)是一种形式的复位。,PowerPC处理器I/O接口-复位接口,输入信号被提供给出理器模块用于各种复位类型。信号被用于复位处理器模块和在调试状态寄存器(DBSRMRR)中,记录复位的类型。处理器为每种复位类型产生复位请求输出信号。外部的复位逻辑能处理这些输出信号,并且为处理器产生合适的复位信号。当处理器块请求复位时,并不产生复位行为。只有当外部逻辑确认了合适的复位输入信号后,才发生复位行为。图3.4给出了复位接口的块符号,表3.3给出了复位接口的I/O信号。,PowerPC处理器I/O接口-复位接口,PowerPC处理器I/O接口-指令侧的PLB接口,指令侧的PLB接口(instruction processor local bus,ISPLB)使能PowerPC405指令缓存单元(instruction cache unit,ICU)从与PLB相连的任何存储器设备加载(读)指令。ICU不能写存储器。加载请求由ICU产生,并且和PLB接口通信。当访问缺失的指令缓存或者访问的存储器位置是非缓存的,则产生加载请求。加载指令由PLB的从设备通过PLB接口返回到ICU。送到ICU的指令可以是任意顺序的,当ICU从PLB从设备中接收到指令时,它们被放在ICU填充缓冲区内。,PowerPC处理器I/O接口-指令侧的PLB接口,指令侧的PLB接口提供了预取(prefetch)和地址流水(address pipelining)的功能。预取是指请求8个字的缓存行要求,它是按顺序跟在当前8字取请求后。ICU能将先前的取指请求和一个预取请求重叠,这个过程就叫做地址流水,使在从设备正在返回和第一个地址相关的数据时,第二个地址能出现在PLB从设备上。图3.5给出了指令侧的PLB接口的块符,PowerPC处理器I/O接口-指令侧的PLB接口,PowerPC处理器I/O接口-指令侧的PLB接口,PowerPC处理器I/O接口-数据侧的PLB接口,数据侧的PLB接口(data-side processor local bus,DSPLB)使能PowerPC405数据缓存单元(DCU)加载(读)从和存储(写)数据到任何与PLB连接的存储器设备。该接口有一个专用的32位地址总线输出,一个专用的64位读数据总线输入,一个专用的64位写数据总线输出。该总线也支持32位的操作。该总线能在每个PLB周期传输一个数据。,PowerPC处理器I/O接口-数据侧的PLB接口,DCU产生数据访问请求,并且通过PLB接口通信。当访问缺失的数据缓存或者访问的存储器位置是非缓存的,则产生加载请求。加载指令由PLB的从设备通过PLB接口返回到DCU。送到DCU的指令可以是任意顺序的,当DCU从PLB从设备中接收到指令时,它们被放在DCU填充缓冲区内。,PowerPC处理器I/O接口-数据侧的PLB接口,DCU能将先前的取指请求和一个预取请求重叠,这个过程就叫做地址流水,使在从设备正在返回和第一个地址相关的数据时,第二个地址能出现在PLB从设备上。DSPLB支持非对齐访问。如果操作数超过字边界或者缓存行边界,处理器自动分解访问非对齐的操作数到两个数据访问请求。,PowerPC处理器I/O接口-数据侧的PLB接口,图3.6给出了数据侧PLB接口的块符号,表3.5给出了数据侧PLB接口的信号,PowerPC处理器I/O接口-数据侧的PLB接口,PowerPC处理器I/O接口-数据侧的PLB接口,PowerPC处理器I/O接口-设备控制寄存器接口,设备控制寄存器(device-control register,DCR)接口提供了一种机制,用于处理器模块初始化和控制在同一FPGA芯片上的外设。比如:为总线接口单元BIU的存储器传输特性和地址分配,可以使用DCR通过软件来配置。可以使用PowerPC的mfdcr和mtdcr指令来访问DCR寄存器。这些指令所用的寻址不是使用存储器映射的,因此不会对OCM/PLB存储器的寻址产生影响。DCR被定义在10比特,字对齐的范围内。,PowerPC处理器I/O接口-设备控制寄存器接口,存在下面类型的DCR接口:1)PowerPC内部的设备控制寄存器接口 2)通用DCR总线接口 3)专用的EMAC DCR总线接口(Virtex-4 FX),PowerPC处理器I/O接口-内部的DCR接口,PowerPC处理器块包含了一些内部的DCR,这些DCR能用于为处理器块内的功能单元控制,配置,保持状态。这些DCR使用内部的DCR总线访问,它与外部的DCR总线访问的DCR寄存器共享地址范围。,PowerPC处理器I/O接口-内部的DCR接口,在Virtex-II Pro和Virtex-4 FX处理器中均有下面两个包含DCR控制器的功能单元:1)数据侧的OCM控制器DSOCM,包含DSCNTL和DSARC寄存器 2)指令侧的OCM控制器ISOCM,包含ISCNTL,ISARC,ISINIT和ISFILL寄存器,PowerPC处理器I/O接口-内部的DCR接口,除此之外,在Virtex-4 FX处理器中还包含下面两个包含DCR控制器的功能单元:1)APU控制器,包含APUCFG和UDICFG控制器 2)以太网MAC DCR总线接口(与硬件EMAC控制器固定连接)包含RDYstatus,cntlReg,dataRegLSW和RegMSW寄存器。,表3.6给出了DCR地址偏移量,PowerPC处理器I/O接口-内部的DCR接口,PowerPC处理器I/O接口-外部的DCR接口,内核连接(coreconnect)总线外设的DCR接口组成包括以下:1)10比特的地址总线 2)独立的32位输入和输出数据总线 3)独立的读和写控制信号 4)一个读/写应答信号,PowerPC处理器I/O接口-外部的DCR接口,此外,在Virtex-4 FX器件有一个时钟相关的CPMDCRCLK接口DCR较较喜欢的实现方式是作为一个分布的,复用的链。链上的每一个外设的DCR数据输入和前一个链上的外设的DCR数据输出连接。图3.7给出了Virtex-II Pro外部DCR接口的块符号。表3.7给出了外部DCR接口的信号。Virtex-4的信号与Virtex-II Pro信号功能一样,不同的是Virtex-4 FX信号名字的前缀是EXTD,不是C405。图3.8给出了DCR链的结构图。,PowerPC处理器I/O接口-外部的DCR接口,PowerPC处理器I/O接口-外部的DCR接口,PowerPC处理器I/O接口-外部的DCR接口,PowerPC处理器I/O接口-外部中断控制器接口,PowerPC嵌入式环境结构定义了两类中断:紧急和非紧急的。用于处理外部紧急中断的中断句柄在异常向量偏移0 x100的地方。用于处理外部非紧急中断的中断句柄在异常向量偏移0 x200的地方。当同时发生这两类中断时,处理器将优先处理紧急中断。紧急中断使用SRR2和SRR3寄存器,非紧急中断使用SRR0和SRR1寄存器。紧急中断可以打断一个非紧急中断句柄。,PowerPC处理器I/O接口-外部中断控制器接口,到处理器的外部逻辑可以用来产生这两类中断。外部中断控制器(External Interrupt Controller,EIC)来管理中断源。一旦外部中断请求被确认,EIC必须保持信号被确认,直到软件不在确认为止。这通常是写入到EIC外设逻辑的DCR来实现的。通过使用MSR寄存器内的比特位,软件能使能/禁止外部中断:1)MSREE控制非紧急中断。写1使能,否则禁止。2)MSRCE控制紧急中断。写1使能,否则禁止。图3.9给出了EIC接口块符号,表3.8给出了EIC接口的信号,PowerPC处理器I/O接口-外部中断控制器接口,PowerPC处理器I/O接口-PPC405 JTAG调试端口,powerPC405有一个JTAG接口用于支持软件调试。许多调试器,比如IBM的RISCWatch,Wind River的SingleStep和Xilinx EDK的GNU调试器,都使用了JTAG接口。象其它PPC405的信号一样,设计者也要定义JTAG接口到外部的连接。由于这些连接只能通过可编程的互联实现,因此在PPC405 JTAG接口使用前,必须配置FPGA。,PowerPC处理器I/O接口-PPC405 JTAG调试端口,PPC405的JTAG可以通过FPGA本身的JTAG端口连接,也可通过可编程的I/O连接。至于采用什么连接方式,取决于软件调试器的要求。图3.10给出了JTAG接口块符号,表3.9给出了JTAG接口的信号描述。,PowerPC处理器I/O接口-PPC405 JTAG调试端口,PowerPC处理器I/O接口-PPC405 JTAG调试端口,PowerPC处理器I/O接口-PPC405 JTAG调试端口,1、通过可编程I/O直接连接PPC405 JTAG逻辑 最简单的访问PPC405 JTAG逻辑的方法是将处理器核的JTAG信号直接连接到可编程I/O引脚。对于有多个PPC405核的芯片,用户可以将每个核的JTAG单独的直接连接到可编程I/O引脚。另一种方法是将PPC405使用链进行连接,即公用TMS,TCK,TRST信号,将下一个核的输入TDI和上一个核的TDO连接,最后一个核的TDO的输出连接到可编程I/O引脚上。,PowerPC处理器I/O接口-PPC405 JTAG调试端口,2、通过专用的芯片JTAG逻辑连接PPC405 JTAG逻辑 另一种方法是使用芯片专用的JTAG引脚将多个PPC405和JTAGPPC通过JTAG链连接到一起。,PowerPC处理器I/O接口-调试接口,调试器接口使能一个外部的调试器工具,在外部调试模式下来操作PowerPC405处理器调试资源。该模式能改变一个程序的运行,并且提供了调试系统硬件和软件的能力。该模式支持处理器的启动和停止,单步指令的执行,设置断点和监视处理器状态。图3.11给出了调试接口的块符号,表3.10给出了调试接口的信号描述。,PowerPC处理器I/O接口-调试接口,PowerPC处理器I/O接口-调试接口,PowerPC处理器I/O接口-跟踪接口,当处理器工作在实时跟踪调试模式时,使用跟踪接口。该模式支持实时跟踪处理器所执行的指令流。在这种模式下,调试事件用来引起外部触发事件。一个外部的跟踪工具使用触发器事件来控制跟踪信息的搜集。在跟踪接口上的跟踪信息的广播将独立引起外部触发事件。实时跟踪模式不影响处理器性能。实时跟踪模式总是使能。然而,只有当内部调试模式和外部调试模式禁止时,才能产生触发器事件。当使能调试时,将阻塞触发器事件。图3.12给出了跟踪调试块符号,表3.11给出了跟踪调试接口的信号,PowerPC处理器I/O接口-跟踪接口,PowerPC处理器I/O接口-跟踪接口,PowerPC处理器I/O接口-处理器版本寄存器接口,Virtex-4 PowerPC块提供用户访问处理器版本寄存器(Processor Version Register,PVR)中8比特的功能。其中一个目的是在多处理器系统中识别不同的处理器,或者编码一些处理器环境不同的描述,使类属代码可以基于这个编码来调整其运行。图3.13给出了PVR接口的块符号,表3.12给出了PVR接口的I/O信号。,PowerPC处理器I/O接口-处理器版本寄存器接口,PowerPC处理器I/O接口-处理器版本寄存器接口,PowerPC处理器I/O接口-额外的FPGA指定信号,图3.14给出了额外的FPGA信号的接口块符号,表3.13给出了额外I/O信号的功能,PowerPC处理器OCM控制器,片上存储器(On-Chip Memory,OCM)控制器是一个专用的接口,用于连接FPGA的BRAM和PPC405核的OCM信号。OCM控制器提供了非缓存的对指令侧和数据侧存储器空间的访问。数据侧的接口支持32位双向的存储器空间,指令侧的接口支持64位单向德存储器空间。不象PLB接口,OCM控制器不需要总线仲裁来访问FPGA的结构(fabric)资源。在Virtex-II Pro中,DSOCM和ISOCM控制器设计与BRAM以固定延迟指标接口。在Virtex-4中,DSOCM控制器有一个增强的特性通过额外的信号来支持存储器映射的外设。,PowerPC处理器OCM控制器-OCM控制器特点,下面给出OCM控制器的特点,首先介绍DSOCM和ISOCM的特点,然后再分别介绍各自独有的特点。1)DSCOM和ISOCM的共同特点 在FPGA内的处理器块和BRAM之间,存在独立的指令和数据存储器接口,在指令侧和数据侧接口到外部存储器之间不需要PLB仲裁。,PowerPC处理器OCM控制器-OCM控制器特点,专用的接口到DCR总线,用于ISOCM和DSCOM控制器。在处理器块内的专用的DCR总线循环用于OCM控制器。在DSOCM和ISOCM控制器内的FPGA可配置的DCR寄存器地址。为DSOCM和ISOCM分配了独立的16MB的逻辑存储器空间。为指令侧和数据侧接口提供了多周期模式选择。多周期操作使用N:1的处理器到BRAM的比例系数 Virtex-4可选择的自动时钟比例检测,消除了必须编程控制比例系数的操作,PowerPC处理器OCM控制器-OCM控制器特点,2)DSCOM的特点 32比特的读数据总线和32位的写数据总线 支持字节写访问DSBRAM双端口DSBRAM的第二个端口可用于从FPGA接口读/写操作到DSBRAM端口的22位地址DCR寄存器:DSCNTL,DSARCVirtex-4支持为读/写数据传输可变的延迟,PowerPC处理器OCM控制器-OCM控制器特点,3)ISOCM的特点 ISOCM接口包含64位只读端口用于指令加载和32位读/写端口来初始化或测试ISBRAM。64位只读数据总线(2个BRAM周期)对于Virtex-II Pro,使用DCR指令的32位写总线;对Virtex-4,使用DCR指令的32位读和写总线分离的21位到ISBRAM的只读和只写地址 DCR寄存器:ISCNTL,ISARC,ISINIT,ISFILL 两个可用方法来设置ISBRAM内容:使用DCR来访问32位数据写总线在FPGA配置时,初始化ISBRAM,PowerPC处理器OCM控制器-OCM控制器的操作,OCM控制器分成两块,一块用于ISOCM接口,另一块用于DSOCM接口。图3.15给出了OCM控制器接口。,PowerPC处理器OCM控制器-OCM DCR控制寄存器,1)在DSOCM中有DSARC和DSCNTL两个寄存器;2)在ISOCM中有ISARC,ISCNTL,ISINIT和ISFILL四个寄存器。在使用DSOCM/ISOCM寄存器前,DSARC/ISARC,DSCNTL/ISCNTL控制寄存器必须被初始化。有两种方法来初始化这些寄存器:1)使用DCR汇编指令(mtdcr,mfdcr)访问所有六个OCM控制寄存器。2)在处理器模块指定相关的输入端口。,PowerPC处理器OCM控制器-OCM DCR控制寄存器,ISINIT/ISFILL寄存器用于指令侧的OCM存储器的内容初始化和软件调试。1)在Virtex-II pro,在系统初始化时,使用ISINIT和ISFILL寄存器,允许处理器写指令到ISOCM存储器阵列 2)在Virtex-4,使用ISINIT和ISFILL寄存器,允许处理器写/读指令到ISOCM存储器阵列,PowerPC处理器OCM控制器,2、DSOCM控制器加载/存取操作 DSOCM控制器,在一个加载指令时,接受来自处理器的一个地址和相关的控制信号,然后传递一个有效的地址到DSOCM的FPGA结构或BRAM接口。对于存取指令,来自处理器的有效地址,伴随着存储数据和相关的控制信号。DSOCM控制器在地址最高8位执行指令译码来确定是加载/存储指令。对于DSOCM连接非存储器外设,设计者必须知道OCM特定的行为:执行重排序和旁路存储数据。,PowerPC处理器OCM控制器,3、ISOCM控制器取指操作 在取指周期,ISOCM控制器接受来自处理器的一个地址和相关的控制信号,并将有效地址传递到ISOCM接口。在FPGA配置时,存储在BRAM的指令能加载到ISOCM。可用的其它方法是,使用DCR总线上的ISINIT和ISFILL寄存器,处理器能加载ISOCM空间。,PowerPC处理器OCM控制器,这儿存在从处理器块到访问指令侧存储器的两个数据通路:主64位只读端口用于指令加载。由于该端口为64位宽度,所以一次可以取出两条指令 第2个32位端口用于存储器初始化和软件调试。图3.16(a)给出了Virtex-4 DSOCM接口图,图3.16(b)给出了Virtex-II pro DSOCM接口图。,PowerPC处理器OCM控制器,PowerPC处理器OCM控制器,图3.17(a)给出了Virtex-II pro ISOCM接口图,图3.16(b)给出了Virtex-4 ISOCM接口,PowerPC处理器OCM控制器,图3.18给出了DSOCM接口和BRAM的连接关系。,PowerPC处理器OCM控制器-OCM的编程模型,应用程序读/写访问OCM控制器内的DCR寄存器。一般使用汇编指令mtdcr和mfdcr来完成对DCR控制寄存器的访问。3.3.3.1 OCM的寄存器1、DSARC/ISARC寄存器该寄存器定义了ISOCM和DSOCM存储器位置的最高8位。,Power