ARM处理器内核介绍.ppt_第1页
ARM处理器内核介绍.ppt_第2页
ARM处理器内核介绍.ppt_第3页
ARM处理器内核介绍.ppt_第4页
ARM处理器内核介绍.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ARM 处理器内核,简要定义,固化宏单元(硬核) ARM920T ARM7TDMI ARM720T ARM1022E,可综合内核(软核) ARM926EJ-S ARM7TDMI-S ARM1026EJ-S,测试芯片 ARM10200E,议程,ARM7TDMI 处理器内核系列 ARM9TDMI 处理器内核系列 ARM10E处理器内核系列 其他处理器,什么是 ARM7TDMI?,ARM7TDMI 是基于 ARM7 内核 3 级流水线-0.9MIPS/MHz 冯.诺依曼架构 CPI(Cycle Per Instruction) 约为1.9 T - Thumb 架构扩展, 提供两个独立的指令集: ARM 指令,均为 32位 Thumb指令,均为 16位 两种运行状态,用来选择哪个指令集被执行 D - 内核具有Debug扩展结构 M - 增强乘法器 (32x8) 支持64位结果. I - EmbeddedICE-RT逻辑-提供片上断点和调试点支持,ARM7TDMI 内核信号,ARM内核信号解释,时钟和时钟控制信号: MCLK:主时钟信号,可以被倍频(如44B0,外频8M,可倍频为40M) ECLK: 向外部输出的时钟信号 nWAIT:总线等待请求信号 nRESET:内核复位信号,ARM内核信号解释,地址类信号: A31:0:地址总线,单向传输 nRW: “1”写周期,“”读周期,突发传送期间不能改变方向 MAS1:0:对传送数据的宽度进行编码:,ARM内核信号解释,地址类信号: nOPC:用于判断取操作码还是操作数 “”操作码,“”操作数 nTRANS:用于判断访问来自特权模式还是用户模式 “”特权模式,“”用户模式 LOCK:用于指示总线上正在进行原子操作 TBIT:用于指明工作状态是ARM还是T状态 “”T状态,“”ARM状态,ARM内核信号解释,存储器请求信号: nMREQ:存储器请求信号 SEQ:用于与nMREQ一起产生总线周期信号编码,ARM内核信号解释,数据时序信号: D31:0:双向数据总线 DIN31:0: 单向数据总线 DOUT31:0:单向数据总线 ABOUT:用于指明存储器事务完成情况 BL3:0:用于内核和不同字宽的存储系统连接,ARM内核信号解释,其它信号: BUSEN:”1”-单向数据总线,”0”-双向数据总线 nENIN: 允许外部系统操纵总线三态 nENOUT:表明处理器正在驱动双向数据总线作为输出 TBE:“”强制所有三态输出为高阻,测试时使用,不用时接“” DBE:与ABE组合控制处理器总线变为高阻态 APE:和ALE:用于控制地址产生时序,以便SRAM,DRAM与处理器的连接APE”1” 用于DRAM, APE”0” SRAM,ARM7TDMI 方框图,ARM7TDM 内核,TAP 控制器,JTAG 接口,数据总线,控制信号,D31:0,地址总线,A31:0,DIN31:0,DOUT31:0,BUS Splitter,Embedded ICE 逻辑,乘法器,ARM7TDMI 内核,指令 解码,地址 自增器,nRESET,nMREQ,SEQ,ABORT,nIRQ,nFIQ,nRW,MAS1:0,LOCK,nCPI,CPA,CPB,nWAIT,MCLK,nOPC,BIGEND,ISYNC,nTRANS,nM4:0,D31:0,桶形 移位器,32 位 ALU,DBE,写数据 寄存器,读数据 寄存器,地址寄存器,寄存器,A31:0,ABE,及,控制 逻辑,PC Update,解码站,指令 解码,Incrementer,P C,A B u s,B B u s,A L U B u s,外部地址产生,PC31:2 ARM State PC31:1 Thumb State,ALU31:0,INC,自增器,A31:0,向量,0x1C,0x00,地址 寄存器,指令流水线,为增加处理器指令流的速度,ARM7 系列使用3级流水线. 允许多个操作同时处理,比逐条指令执行要快。 PC指向正被取指的指令,而非正在执行的指令,Fetch,Decode,Execute,从存储器中读取指令,解码指令,寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank ),PC PC,PC - 4 PC-2,PC - 8 PC - 4,ARM Thumb,最佳流水线,该例中用6个时钟周期执行了6条指令 所有的操作都在寄存器中(单周期执行) 指令周期数 (CPI) = 1,操作,周期,1 2 3 4 5 6,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Decode,Execute,Fetch,Decode,Fetch,Fetch,LDR 流水线举例,该例中,用6周期执行了4条指令 指令周期数 (CPI) = 1.5,周期,操作,1 2 3 4 5 6,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Data,Writeback,Fetch,Decode,Execute,Fetch,Decode,Fetch,分支流水线举例,流水线被阻断 注意:内核运行在ARM状态,周期,1 2 3 4 5,地址 操作,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Fetch,Fetch,Decode,Execute,Linkret,Adjust,Fetch,Decode,Fetch,中断流水线举例,周期,1 2 3 4 5 6 7 8,IRQ,IRQ 中断的反应时间最小=7周期,地址 操作,F,D,E,Linkret,Adjust,F,F,Decode IRQ,Linkret,Execute IRQ,Adjust,F,D,E,F,D,F,F,D,E,F,D,F,F,对齐,存储器访问必须始终适当地保持地址对齐 非对齐地址将产生不可预测的/未定义的结果 用Data Abort 异常来检测无效的非对齐数据存取 扩展逻辑要求,或使用MMU在 720T, 920T, 926E-S, 1020E 谨防指令读取时出现非对齐 非对齐数据存取能够完成, 但不是用 LDR 使用 LDRB, STRB 传递字节,ARM 存储器接口,顺序周期 (S cycle) (nMREQ,SEQ存储器请求信号) nMREQ = 0, SEQ = 1 ARM 内核要求如下地址转换:地址可以相同,也可以比前一地址大一字或半字 非顺序周期(N cycle) (nMREQ,SEQ存储器请求信号) nMREQ = 0, SEQ = 0 ARM 内核要求如下地址转换: 与前一周期的地址不相关. 内部周期(I cycle) (nMREQ,SEQ存储器请求信号) nMREQ =1, SEQ = 0 ARM 内核不要求地址转换,因为它在完成一个内部功能,不需要取指 协处理寄存器转换周期(C cycle) (nMREQ,SEQ存储器请求信号) nMREQ = 1, SEQ = 1 ARM 内核希望用总线协处理器通信,但不要求存储器系统的任何动作,T标志位的作用,16,16,32-bit data,16,A1,Mux,Thumb 指令 解码,Mux,Mux,T标志,ARM 指令 解码,阶段 1,阶段 2,D31:0,0,1,1,0,Fetch,Decode,Execute,带Cache的ARM7TDMI,ARM710T 8K 统一的 cache 完整的内存管理单元(mmu),支持虚拟地址和存储器保护 写缓冲,ARM720T 同ARM710T,但支持 WinCE ARM740T 8K 统一的 cache 内存管理单元 写缓冲,ARM7TDMI 内核,地址,地址,数据读,AMBA 接口,写 缓冲,MMU,数据写,数据,ARM7xxT,控制 逻辑,Cache,AMBA 总线 接口,JTAG 和非 AMBA 信号,CP15,ARM7TDMI-S,ARM7TDMI-S 是ARM7TDMI 的完全可综合版本 指令集和周期与ARM7TDMI 固化版本兼容 完全可综合的 RTL 使用了纲要设计构件的组件 ALU 寄存器组 单时钟设计(上升沿)单一总线接口,SecurCore SC100,第一个适合安全应用的32位 RISC 处理器 可用于smart 卡和其他有安全性要求的嵌入式领域 基于ARM7内核的专为安全解决方案设计 完全可综合的,全静态设计 提供安全的存储器保护单元 Thumb指令支持,提高代码密度和系统性能 特殊的、独一无二的防伪造设计 小尺寸 (1mm2 典型的 0.25 工艺) 低功耗 ( 0.7mW/MHz at 2.5V),小测验,1) 一条简单的算术操作( 如: ADD )要占用几个周期? 2) ARM7TDMI指令流水线有几个阶段? 3) ARM7TDMI 是否使用 ALU 计算地址? 4) ARM在存储器里,可寻址几种类型的数据? 5) 试举一非顺序周期的例子? 6) 数据总线的哪一半可被内核用作Thumb 指令?,议程,ARM7TDMI 处理器内核系列 ARM9TDMI 处理器内核系列 ARM10E处理器内核系列 其他处理器,ARM9TDMI,Harvard架构 增加了可用的存储器宽度 指令存储器接口 数据存储器接口 可以实现对指令和数据存储器的同时访问 5 级流水线 实现了以下改进: 改进 CPI 到 1.5 提高了最大时钟频率,ARM9TDMI流水线的变化,Instruction Fetch,Shift + ALU,Memory Access,Reg Write,Reg Read,Reg Decode,FETCH,DECODE,EXECUTE,MEMORY,WRITE,ARM9TDMI,ARM or Thumb Inst Decode,Reg Select,Reg Read,Shift,ALU,Reg Write,ThumbARM decompress,ARM decode,Instruction Fetch,FETCH,DECODE,EXECUTE,ARM7TDMI,ARM9TDMI数据通道 (1),寄存器 Bank,ALU,C,B,A,DINFWD,结果,DA,DD,数据递增,向量,指令递增,IA,字节旋转 /符号扩展.,MU 逻辑,双向 缓冲器,字节/半字 复制,MU逻辑单元包含有:多路复用器,乘法器和桶形移位器,数据总线,地址总线,字节/半字,指令地址总线,ARM9TDMI 数据通道 (2),寄存器 Bank,PSR,乘法器,移位器,ALU,B,A,Imm,DINFWD,BDATA,ADATA,锁存,锁存,MU 逻辑,(至 IA 生成逻辑),结果,周期,操作,ADD R1, R1, R2,SUB R3, R4, R1,ORR R8, R3, R4,AND R6, R3, R1,EOR R3, R1, R2,1,2,3,4,5,6,7,8,LDR R4, R7,9,F,D,E,F,D,E,W,F,D,E,W,F,D,E,W,F,D,W,E,F,D,E,W,F 取指(Fetch)D 解码(Decode) E 执行(Execute) I 互锁(Interlock)M 存储器(Memory )W 写回( Writeback),I,LDR互锁,本例中,用了7个时钟周期执行6条指令, CPI = 1.2 。 LDR指令之后立即跟一条数据操作指令,由于使用了相同的寄存器,将会导致互锁 。,W,I,M,周期,操作,ADD R1, R1, R2,SUB R3, R4, R1,ORR R8, R3, R4,AND R6, R3, R1,EOR R3, R1, R2,LDR R4, R7,最佳流水线,本例中,用了6个时钟周期执行6条指令, CPI = 1。 LDR指令没有引起流水线互锁,LDM互锁 (1),本例中,用了8个时钟周期执行5条指令, CPI = 1.6 在LDM期间,有并行的存储器访问和回写周期,周期,操作,LDMIA R13!, R0-R3,SUB R9, R7, R8,ORR R8, R4, R3,AND R6, R3, R1,1,2,3,4,5,6,7,8,STR R4, R9,9,F 取指(Fetch)D 解码(Decode) E 执行(Execute)MW-存储器和回写同时执行 I 互锁(Interlock)M 存储器(Memory )W 写回( Writeback),F,D,E,W,F,D,E,W,D,E,F,D,E,W,F,M,D,W,E,I,I,I,I,I,I,M,F,LDM 互锁 (2),本例中,用了9个时钟周期执行5条指令, CPI = 1.8 此处SUB 使用了 R3,增加了一个额外的互锁周期来完成该寄存器数据的获取 这种情况对任何LDM 指令,像带IA, DB, FD,等,都会发生 。,ARM9TDMI系统举例,注意: 数据接口必须能够读取指令存储器中的数据。 为调试方便,建议数据接口能够读写指令存储器。,带Cache的ARM9TDMI,ARM9TDMI,D Cache,I Cache,MMU,GLUE,外部 存储器,ARM920T 2x 16K caches MMU 支持虚拟地址和内存保护 写缓冲,ARM940T 2x 4K caches MPU 写缓冲,ARM9xxT,ARM9E-S 系列概述,ARM9E 基于 ARM9TDMI 内核,有以下扩展和增强: 单周期 32x16 乘法器 EmbeddedICE 逻辑 RT 改进的 ARM/Thumb 交互操作 新的32x16和 16x16 乘法指令 新的计数到零指令 新的饱和算术指令 ARM946E-S ARM9E-S 内核 指令和数据cache, 大小可选择 指令和数据RAM,大小可选择 保护单元 AHB 总线接口 ARM966E-S 与 ARM946E-S相似, 但无 cache。,v5TE架构,ARM926EJ-S 概述,Jazelle状态允许直接执行Java 8位码 ARM926EJ-S ARM9E-S 内核 可配置的cacheTCM TCM(Terminal-to-ComputerMultiplexer终端设备至计算机多路转接器) 内存管理单元 双重 32位 AHB 总线接口 (多层),小测验,1) Harvard结构带来了哪些优势? 2) ARM9TDMI流水线有几级? 3) 在流水线的哪一个阶段读寄存器? 4) 寄存器 bank由几个读或写端口? 5) 什么条件下会出现互锁?,议程,ARM7TDMI 处理器内核系列 ARM9TDMI 处理器内核系列 ARM10E处理器内核系列 其他处理器,ARM10E 系列概述,ARM1020E v5TE架构 CPI 1.3 6 级流水线 静态分支预测 32kB 指令cache和32kB数据cache 支持“Hit under miss” 非阻塞的执行单元 每周期64 位的 LDM / STM操作 EmbeddedICE逻辑 - RT-II 支持新的 VFPv1 结构 ARM1022E 同上,除了cache大小为16kB 对SUDL(single user design license )有效,ARM10 与ARM9的流水线对比,指令 取指,移位+ ALU,寄存器 写,寄存器 读,寄存器 译码,FETCH,DECODE,EXECUTE,MEMORY,WRITE,ARM9TDMI,ARM 或 Thumb 指令解码,ARM10,指令地址 生成,移位+ ALU,数据 Cache 接口,寄存器 写,FETCH,DECODE,EXECUTE,MEMORY,WRITE,寄存器 读 + 结果 前向迁移 + 记分板,乘法,乘 加,协处理器 数据接口,分支 预测,指令 取指,ISSUE,寄存器 访问,数据+ 分支地址 生成,ARM 或 Thumb 指令解码,协处理器 指令发出,ARM10 整数单元数据通道,寄存器 Bank,PSR,乘法器,移位器,ALU,B,A,Imm,B,A,结果,CLZ,写端口,PC,数据装载,周期,Operation,LDR A B C,ADD A B,1,2,3,4,5,6,7,MUL A,F - Fetch I - Issue D - Decode E - Execute M Memory Wb - Writeback Wl - Write to register using load port,顺序代码的执行 开始于64位的对齐地址,Address,0x07334,0x0732C,0x07330,SUB B C,0x07328,ADD A C,0x07324,ADD B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论