资源描述
1TMT H E A R C H I T E C T U R E F O R T H E D I G I T A L W O R L DARM7TDMI 总线接口总线接口2TM2ARM7TDMI Bus InterfaceARM7TDMI 外部接口外部接口n存储器接口存储器接口n中断n调试接口n协处理器接口3TM3ARM7TDMI Bus InterfaceARM7TDMI 接口信号接口信号 MCLKnWAITA31:0D31:0nMREQ,SEQnRWLOCKABEDBEnTRANSABORTClocks and Clock ControlMemoryManagementMemoryInterfaceData andAddressBusControlMemoryAccessControlnM4:0MAS1:0BL3:0APE,ALETBE ECLKTBITBUSENnENINBIGENDARM7TDMInENOUT4TM4ARM7TDMI Bus Interface时钟与时钟控制时钟与时钟控制nMCLK 输入n处理器工作的时钟。n静态设计的ARM通过延长时钟周期来访问慢速的设备。nnWAIT 输入n在ARM内部与MCLK相与。n必须在MCLK为低的相位阶段改变。n容许该信号从一个周期扩展到另一个周期,延长总线访问周期。nECLK 输出n核心逻辑的时钟的输出。n在正常和调试状态下反映内部时钟。nph1&ph2 内部信号n双相位非覆盖的内部时钟。n处理器内部工作周期。5TM5ARM7TDMI Bus InterfaceMCLKnWAIT时钟控制时钟控制-nWAIT 控制控制Phase 1Phase 2Phase 2Phase 1ph2Internal ClockECLKph1Internal Clock6TM6ARM7TDMI Bus Interface时钟控制时钟控制 扩展扩展 MCLKMCLKnWAITPhase 1Phase 2Phase 2Phase 1ph2Internal ClockECLKph1Internal Clock7TM7ARM7TDMI Bus Interface数据总线数据总线n32 位位 双或单向数据总线双或单向数据总线 nBUSEN=0 配置双向数据总线。nBUSEN=1 配置单向数据总线。n字节、半字及字访问字节、半字及字访问.n读取数据必须有效且稳定到相位读取数据必须有效且稳定到相位2结束。结束。n写入数据在相位写入数据在相位1改变,保持稳定贯穿相位改变,保持稳定贯穿相位2。nnENOUT 输出(和和 nENIN 输入输入):数据总线控制数据总线控制n如果采用片外双向数据总线的话,可以用来控制数据总线的方向。8TM8ARM7TDMI Bus Interface数据总线配置数据总线配置(1)DIN31:0DOUT31:032D31:032ARM7TDMMacrocellEmbeddedICEmacrocellGDoutlatEnbMDen9TM9ARM7TDMI Bus Interface数据总线配置数据总线配置(2)MCLKDIN31:0DOUT31:0D31:0READWRITEREADDIN1DIN1DOUTDIN2DIN2DOUT10TM10ARM7TDMI Bus Interface地址总线地址总线n32 位位(4G字节字节)寻址能力。寻址能力。n默认时序默认时序n在前一周期的相位2阶段变为有效,保持稳定贯穿当前周期的相位1阶段。n流水线地址。n地址时序可以通过地址时序可以通过APE(或或ALE)移位。移位。n为获得较好的系统性能,建议使用默认时序。地址可以锁存到存储器系统中。11TM11ARM7TDMI Bus Interface地址总线控制地址总线控制nAPE 和和 ALE 输入nARM 建议两个信号都为高,以便有最长的时间进行地址译码。n任何一个信号都可以连接到在数据访问期间需要稳定地址的设备。nAPE:地址流水线使能地址流水线使能nAPE=1 地址是流水线的(在后续的相位2提供).nAPE=0 重新定时地址改变的时序,从MCLK的下降沿开始。n控制对A31:0的透明锁存。nALE:地址锁存使能地址锁存使能n控制对A31:0的透明锁存。n仅用于已有的系统设计,因为它比APE更复杂。12TM12ARM7TDMI Bus Interface流水线地址时序流水线地址时序(推荐设置推荐设置)nALE 和 APE 均为高MCLKA31:0ALEAPEPhase 2Phase 1AddressD31:0(in)Dx13TM13ARM7TDMI Bus InterfaceAPE对地址时序的作用对地址时序的作用MCLKA31:0ALEAPEPhase 2Phase 1AddressD31:0(in)Dx14TM14ARM7TDMI Bus Interface总线三态控制总线三态控制(1)nABE 输入:地址总线使能地址总线使能n当ABE 为低时,下面的信号处于高阻状态:A31:0,nRW,LOCK,MAS1:0,nOPC,and nTRANSnDBE 输入:数据总线使能数据总线使能n当 DBE 为低时,D31:0 处于高阻状态。nTBE 输入:测试总线使能测试总线使能n当 TBE 为低时,下面的信号处于高阻状态:D31:0,A31:0,nRW,LOCK,MAS1:0,nOPC,and nTRANSn在ABE和DBE都为低时,情况一样。15TM15ARM7TDMI Bus Interface总线三态控制总线三态控制(2)ABEDBED31:0(out)A31:0TBE16TM16ARM7TDMI Bus Interface存储器访问控制存储器访问控制nnMREQ 输出:存储器请求存储器请求.n低有效,指示在接下来的周期中进行存储器访问。nSEQ 输出:连续地址访问连续地址访问n高有效,指示在接下来的周期中地址不变或大一个操作数(字或半字)nnRW 输出:非读非读/写写n区分存储器读写访问nLOCK 输出:锁定操作锁定操作n指示一条交换指令正在执行,接下来的两个处理器总线周期是不可见的。nMAS1:0 输出:存储器访问大小存储器访问大小n指示字、半字或字节访问。nBL3:0 输入:数据总线上的字节区段锁存使能数据总线上的字节区段锁存使能n容许数据由小数构成。17TM17ARM7TDMI Bus Interface存储器控制存储器控制nRWMAS1:0nMAS1:0 指示数据传送大小(8,16 或 32 位)AddressDataA31:0D31:0nMREQSEQCycle TypeLOCKnTRANS nOPCMCLK18TM18ARM7TDMI Bus Interface字节区段锁存使能字节区段锁存使能ARM7TDMID 7:0D 15:831GD31:088GBL0MCLKnWAITECLKBL119TM19ARM7TDMI Bus Interface32 位存储器接口位存储器接口nOEBWE3:032nWAITMAS1:0MCLKID31:0A31:0A31:232BL3:0ARM7TDMIMacrocellMemory ControlMemory32-bitBoard ASICBoard ASICnRWnMREQ,SEQ20TM20ARM7TDMI Bus Interface16 位存储器接口位存储器接口n16位存储器接口位存储器接口x2Board ASICBoard ASICnOEBWE1:0nWAITMAS1:0MCLKID15:0A31:0A31:232BL3:0ARM7TDMIMacrocell Memory ControlMemory16-bitnRWnMREQ,SEQ3216MUXC,TSTATETSTATEA 121TM21ARM7TDMI Bus Interface使用字节区段锁存使用字节区段锁存APEA31:0,MAS1:0nWAITD31:0BL3:0MCLKD15:0 latchedD31:16 latchedECLK0 x30 xC22TM22ARM7TDMI Bus Interface改变操作状态改变操作状态nT位指示位指示ARM核的状态。核的状态。n高高-Thumb 状态,状态,低低-ARM 状态状态MCLKnMREQ,SEQA31:0nWAITTBITD31:0MAS1:0ARM Instr.T Instr.01-Half Word10-WordN-CycleBX Instr.Destination Address23TM23ARM7TDMI Bus Interface取指取指n在在ARM状态,指令是字(状态,指令是字(32位位)n在在THUMB状态,指令是半字(状态,指令是半字(16位)位)n指令可以从32位数据总线的高或低半段取得。n取决于Endian配置和 A1的状态。Endian ConfigurationLittleBIGEND=0BigBIGEND=1A1=0A1=1D15:0D31:16D15:0D31:16Thumb Instruction Fetches24TM24ARM7TDMI Bus Interface取数据取数据n字数据取操作类似于字数据取操作类似于ARM状态的指令取操作。状态的指令取操作。n半字数据的取操作类似于半字数据的取操作类似于THUMB状态的指令取操作。状态的指令取操作。n字节数据的取操作取决于字节数据的取操作取决于Endian 配置和配置和A1:0的状态。的状态。Endian ConfigurationLittleBIGEND=0BigBIGEND=1A1:0=00D7:0D31:24D23:16D15:8A1:0=10D23:16D15:8D7:0D31:24A1:0=11A1:0=01Byte Data Fetches25TM25ARM7TDMI Bus Interface周期类型周期类型n非连续非连续(N)n在接下来的周期中的地址与前一个地址无关。n连续连续(S)n在接下来的周期中的地址与前一个地址一样或大一个操作数(字或半字)。n内部内部(I)n处理器正在执行一个内部操作,同时,没有有用的预取执行。n协处理器寄存器传送协处理器寄存器传送(C).n处理器和协处理器之间通讯,不涉及存储器访问,但 D31:0 用于传送数据。n合并的内部连续合并的内部连续(IS)nI和S周期的特殊组合,容许优化存储器访问。26TM26ARM7TDMI Bus Interface周期类型周期类型 nMREQ SEQ Cycle Type 0 0 Non-sequential 0 1 Sequential 1 0 Internal 1 1 Coprocessor register transfer27TM27ARM7TDMI Bus Interface非连续周期非连续周期n在接下来的周期中在接下来的周期中(nMREQ=0)且且(SEQ=0)n下一个周期将是非连续访问。n指令译码 nMREQ and SEQ 条件提前一个周期建立。nA31:0 在接下来的周期的相位2阶段有效。n对于读操作,D31:0 必须在相位2结束时有效。n典型地典型地n对于基于DRAM的系统的初始的行访问,N 周期要占用更长的时间。n处理器停下来(通过停止时钟)一个或更多的完整的时钟周期(等待状态),以便容许较长的访问时间。28TM28ARM7TDMI Bus Interface典型的典型的 N 周期周期MCLKnMREQSEQA31:0D31:0nRASnCASN-Cycle(DRAM Row Address Strobe)(DRAM Column Address Strobe)nMCLK 可以扩展,通过停止可以扩展,通过停止MCLK 或者声明或者声明nWAIT。29TM29ARM7TDMI Bus Interface典型的典型的 NS 周期周期Destination address(A)A+4MCLKnMREQSEQA31:0D31:0nRASnCASN-Cycle S-Cyclen ARM state.30TM30ARM7TDMI Bus Interface内部周期内部周期(I)n处理器在下一个周期中执行内部操作。处理器在下一个周期中执行内部操作。n例子有乘、寄存器特定的移位操作、在从存储器加载数据之后的回写操作。例子有乘、寄存器特定的移位操作、在从存储器加载数据之后的回写操作。nnMREQ 和和 SEQ 先于内部(先于内部(I)周期一个周期的时间有效。周期一个周期的时间有效。nnMREQ=1 指示处理器没有存储器访问操作执行。nA31:0 在跟着内部(在跟着内部(I)周期的下一个周期的相位周期的下一个周期的相位2阶段有效。阶段有效。n数据总线不驱动。n地址总线驱动。31TM31ARM7TDMI Bus Interface内部(内部(I)周期周期nMREQA31:0AMCLKSEQI-Cycle32TM32ARM7TDMI Bus Interface合并的合并的 IS 周期周期(1)n处理器执行内部操作。处理器执行内部操作。n下一条指令的取指地址出现在地址总线上,容许提前译码。nnMREQ和SEQ先于存储器访问周期一个周期的时间有效。n存储器系统可以设计成识别存储器系统可以设计成识别IS情况。情况。n 可以在内部周期期间启动对在内部周期期间的地址位置的访问。n例如,对于非连续的DRAM的访问,建立和声明 nRAS。n在连续(S)周期期间,访问可以结束。n例如,nCAS 完成访问。nD31:0 可以变为有效,直到连续(可以变为有效,直到连续(S)周期的结束(周期的结束(MCLK的下降沿),而不的下降沿),而不增加等待状态。增加等待状态。33TM33ARM7TDMI Bus Interface合并的合并的 IS 周期周期(2)MCLKnMREQSEQA31:0D31:0nRASnCASI-CycleS-CycleAddress34TM34ARM7TDMI Bus Interface代码序列代码序列BL label;带连接跳转到“label”;将PC-4存入R14;x;ARM7TDMI是三级流水,该条指令执行时,PC指向“XX”XX.labelLDRR2,R0;从存储在R0中的地址取数,加载到 R2 SUBR2,R2,R3;R2的内容减R3,结果存入R2ORRR2,R2,R4;R2与R4逻辑或操作,结果存入 R2MOVPC,R14;返回到分支之后的指令.35TM35ARM7TDMI Bus Interface流水线及总线动作流水线及总线动作Ab+4FEDFDFFBLXXXLDRSUBORR1234BAbAb+8XXXLDRSSNECLKSEQA31:0D31:0EDataDF567Ai+4Ai+8AdSUBORRDataSNWriteBackEE89D10Ai+12Ai+16MOV.IISSDSnMREQFDMOVAiF36TM36ARM7TDMI Bus Interface流水线及总线动作流水线及总线动作n周期周期 1-3n分支指令及后续指令取自地址 Ab,Ab+4,Ab+8。BL 指令译码和执行在周期2和3中完成。n周期周期 4-6nLDR 从非连续地址 Ai 取得,SUB 和 ORR 从连续地址Ai+4,Ai+8 取得。LDR 指令在周期 5 和 6 译码执行。n周期周期 7-8n在周期 7 中,非连续地从存储器位置Ad 加载,在周期 8 中,将这个数据写入R2中,由此可见,在内部(I)周期中,下一条指令的地址Ai+12 放在了 A31:0 上。n周期周期 9-10n周期 9 是一个合并的IS周期,在周期10的连续访问中,下一条指令MOV从地址Ai+12 取得。37TM37ARM7TDMI Bus Interface存储器管理信号存储器管理信号nnOPC 输出n低有效,指示处理器正在从存储器取指。nnTRANS 输出n低有效,指示处理器处于 user mode.nnM4:0 输出n当前操作模式,即 User,FIQ,IRQ,Supervisor,Abort,System or Undefined.nABORT 输入n指示请求的访问不容许。n既用于指令预取,又用于Data abort。38TM38ARM7TDMI Bus Interface存储器管理存储器管理MCLKA31:0nM4:0nOPC nTRANSABORTPhase 1Phase 239TM39ARM7TDMI Bus InterfaceARM7TDMI 外部接口外部接口n存储器接口n中断中断n调试接口n协处理器接口40TM40ARM7TDMI Bus InterfaceARM7TDMI 接口信号接口信号nIRQnFIQISYNCInterruptsARM7TDMI41TM41ARM7TDMI Bus Interface中断中断n2 个中断源个中断源:nIRQ and nFIQ 输入nnFIQ 比nIRQ 优先级高。nFIQ 代码可以在进入中断后直接访问执行。n可以选择(ISYNC 输入)同步或异步时序。n异步时序异步时序(ISYNC=0)n损失一个周期的同步。n同步时序同步时序(ISYNC=1)nnIRQ 和和 nFIQ 必须在必须在MCLK的下降沿的时候已经建立且保持。的下降沿的时候已经建立且保持。nnFIQ 和和 nIRQ 中断可以通过设置中断可以通过设置CPSR寄存器中的寄存器中的 F 和和 I 位屏蔽。位屏蔽。42TM42ARM7TDMI Bus Interface异步时序异步时序ISYNC=0Earliest Start of Interrupt SequenceInstruction from Interrupt vectorInterrupt Vector AddressMCLKnFIQ/nIRQA31:0D31:043TM43ARM7TDMI Bus Interface同步时序同步时序ISYNC=1Earliest Start of Interrupt SequencevectorMCLKnFIQ/nIRQA31:0D31:0Interrupt Vector AddressInstruction from Interrupt 44TM44ARM7TDMI Bus InterfaceARM7TDMI 外部接口外部接口n存储器接口n中断n调试接口调试接口n协处理器接口45TM45ARM7TDMI Bus InterfaceARM7TDMI 接口信号接口信号DBGRQBREAKPTDBGACKDebugInterface ECLKEXTERN1:0DBGENARM7TDMIJTAG Interface46TM46ARM7TDMI Bus InterfaceJTAG 信号信号nTDI-Input-Test Data InnTDO-Output-Test Data OutnTMS-Input-Test Mode SelectnTCK-Input-Test ClocknnTRST-Input-Test Reset(active low)47TM47ARM7TDMI Bus Interface调试调试 Interface(1)nDBGEN 输入(DEBUG ENABLE)n必须保持高电平,以允许ARM7TDMI的软件调试。nEXTERN1:0 输入n输入到 EmbeddedICE 宏单元,允许基于外部条件的断点。48TM48ARM7TDMI Bus Interface调试接口调试接口(2)下面的信号仅用于扩展外部调试。下面的信号仅用于扩展外部调试。nMulti-ICE 不使用这些信号。nBREAKPT 输入(BREAK POINT)n在指令上标志断点。n在数据上标志观察点。n如果不用,保持低电平。nDBGRQ 输入(DEBUG REQUEST)n强制ARM7TDMI核进入调试状态,高有效。n如果不用,保持低电平。nDBGACK 输出(DEBUG ACKNOWLEDGE)nARM7TDMI进入调试状态的响应信号。高电平指示ARM7TDMI核已进入调试状态。49TM49ARM7TDMI Bus InterfaceARM7TDMI增加的扫描链增加的扫描链nTAP信号容许增加额外的链信号容许增加额外的链nSCREG3:0-输出当前选择的扫描链nIR3:0-输出当前已加载的指令当前已加载的指令nTAPSM3:0-输出TAP 状态机状态状态机状态nSDINBS-输出扫描链串行数据输入扫描链串行数据输入nSDOUTBS-输入扫描链串行数据输出扫描链串行数据输出n所需其它的移位、捕获时钟及多路复用器或选择线。所需其它的移位、捕获时钟及多路复用器或选择线。50TM50ARM7TDMI Bus InterfaceBREAKPT-DBGACK 时序时序MCLKBREAKPTDBGACKA31:0 D31:0 Breakpoint/Watchpoint51TM51ARM7TDMI Bus InterfaceDBGRQ-DBGACK 时序时序MCLKEarliest Start of Debug SequenceDBGRQDBGACK52TM52ARM7TDMI Bus InterfaceARM7TDMI 接口信号接口信号nCPI,nOPCCPB,CPACoprocessorInterfaceARM7TDMI53TM53ARM7TDMI Bus Interface协处理器接口协处理器接口n可以支持多达可以支持多达 16 个协处理器。个协处理器。nnOPC 输出:取操作码取操作码n低有效,指示正在取指令。n使能协处理器跟踪处理器指令流水线。nnCPI 输出:协处理器指令协处理器指令n低有效,指示当前正在执行的指令是一条协处理器指令,且该指令应该执行。nCPA 输入:协处理器缺少协处理器缺少n高有效,当能够执行所要求的协处理器操作的协处理器存在时变低。nCPB 输入:协处理器忙协处理器忙n高有效,当协处理器准备好要执行要求的协处理器操作时变低。n如果没有连接外部协处理器的话,将如果没有连接外部协处理器的话,将CPA和和CPB拉高。拉高。54TM54ARM7TDMI Bus InterfaceARM7TDMI 接口信号接口信号 MCLKnWAITA31:0D31:0nMREQ,SEQnRWLOCKnIRQnFIQISYNCABEDBEDBGRQBREAKPTDBGACKnTRANSABORTnCPI,nOPCCPB,CPAClocks and Clock ControlInterruptsDebugInterfaceMemoryManagementMemoryInterfaceCoprocessorInterfaceData andAddressBusControlMemoryAccessControlnM4:0MAS1:0BL3:0APE,ALETBE ECLKTBITEXTERN1:0BUSENnENINDBGENBIGENDARM7TDMIJTAG InterfacenENOUT55TM55ARM7TDMI Bus Interface
展开阅读全文