第三章_ARM9体系结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

– 提高了最大时钟频率
ARM9TDMI数据通道 (1)
ARM9TDMI 数据通道 (2)
结果 DINFWD
MU 逻辑
B 寄存器 Bank Imm BDATA 移位器
A
乘法器
ALU
PSR
ADATA
锁存
锁存
ARM9TDMI 处理器结构示意图
第三节 ARM920T的体系结构简介
ARM9系列微处理器包含ARM920T、ARM922T和ARM940T几种类型,可以在 高性能和低功耗特性方面提供最佳的性能。采用5级整数流水线,指令执行 效率更高。提供1.1MIPS/MHz的哈佛结构。支持数据Cache和指令Cache,具 有更高的指令和数据处理能力。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA总线接口。全性能的MMU,支持Windows CE、Linux、 Palm OS等多种主流嵌入式操作系统。MPU支持实时操作系统。 ARM920T处理器核在ARM9TDMI处理器内核基础上,增加了分离式的指令 Cache和数据Cache,并带有相应的存储器管理单元I-MMU和D-MMU、写缓冲器 及AMBA接口等,如图3.1.2所示。
ARM7
ARM9
ARM10 ARM11
ARM9TDMI
Instruction Fetch
ARM or Thumb Inst Decode Reg Reg Decode Read
Shift + ALU
Memory Access
Reg Write
FETCH
DECODE
Байду номын сангаас
EXECUTE
MEMORY
WRITE
3.4.4 协处理器
为了便于片上系统SoC的设计,ARM可以通过协处理器(CP)来支持 一个通用指令集的扩充,通过增加协处理器来增加系统的功能。
• 协处理器可以附属于ARM处理器,一个协处理器通过扩展指令或提供配臵寄 存器来扩展内核处理功能; • 协处理器可以通过一组专门的、提供load-store类型接口的ARM指令来访问。 如协处理器15(CP15),用于控制Cache、TCM和存储器管理;在逻辑上, ARM可以扩展16个(CP15~CP0)协处理器,其中:CP15作为系统控制, CP14作为调试控制器,CP7~4作为用户控制器,CP13~8和CP3~0保留。每 个协处理器可有16个寄存器。例如MMU和保护单元的系统控制都采用CP15协 处理器;JTAG调试中的协处理器为CP14,即调试通信通道DCC(Debug Communication Channel)。 • 协处理器也能通过提供一组专门的新指令来扩展指令集,如,处理向量浮点 运算的指令集; • 这些指令在ARM流水线的译码阶段被处理,如果在译码阶段发现是一条协处 理器指令,则把它送给相应的协处理器。如果该协处理器不存在,或不认识 该指令,则ARM认为发生未定义指令异常; • ARM处理器内核与协处理器接口有以下4类。 ① 时钟和时钟控制信号:MCLK、nWAIT、nRESET; ② 流水线跟随信号:nMREQ、SEQ、nTRANS、nOPC、TBIT; ③ 应答信号:nCPI、CPA、CPB; ④ 数据信号:D[31:0]、DIN[31:0]、DOUT[31:0]。
协处理器
• 协处理器的应答信号中: ● nCPI为ARM处理器至CPn协处理器信号,该信号低电压有效代表“协处理 器指令”,表示ARM处理器内核标识了1条协处理器指令,希望协处理器去执 行它。 ● CPA为协处理器至ARM处理器内核信号,表示协处理器不存在,目前协处 理器无能力执行指令。 ● CPB为协处理器至ARM处理器内核信号,表示协处理器忙,还不能够开始 执行指令。 协处理器也采用流水线结构,为了保证与ARM处理器内核中的流水线同步,在 每一个协处理器内需有1个流水线跟随器(Pipeline Follower),用来跟踪ARM 处理器内核流水线中的指令。由于ARM的Thumb指令集无协处理器指令,协 处理器还必须监视TBIT信号的状态,以确保不把Thumb指令误解为ARM指 令。 协处理器也采用Load/Store结构,用指令来执行寄存器的内部操作,从存储 器取数据至寄存器或把寄存器中的数保存至存储器中,以及实现与ARM处理 器内核中寄存器之间的数据传送。而这些指令都由协处理器指令来实现。
图3.1.2
ARM920T内核结构
第四节 ARM9体系结构的重要特性
• • • • • • • • • 流水线技术 总线技术 Cache技术 协处理器 异常与中断 工作模式 寄存器组 ARM体系结构的命名规则 JTAG调试接口
3.4.1 ARM的流水线技术
取指
译码
执行
周期1 时 间 周期2
周期3
3.4.2 AMBA总线
• 高级微控制器总线协议(AMBA)是1996年提出的,被ARM处理器做为片上总线 结构; ARM处理器内核可以通过先进的微控制器总线架构AMBA(Advanced Microcontroller Bus Architecture)来扩展不同体系架构的宏单元及I/O部 件。AMBA已成为事实上的片上总线OCB(On Chip Bus)标准。 • 最初的AMBA总线包含ARM系统总线(ASB)和ARM外设总线(APB);AMBA有AHB (Advanced High-performance Bus,先进高性能总线)、ASB(Advanced System Bus,先进系统总线)和APB(Advanced Peripheral Bus,先进外围 总线)等三类总线。 • ARM高性能总线(AHB)是新的标准,可以支持64位和128位宽度的ARM总线; • ASB是目前ARM常用的系统总线,用来连接高性能系统模块,支持突发(Burst) 方式数据传送。 • AHB不但支持突发方式的数据传送,还支持分离式总线事务处理,以进一步提 高总线的利用效率。特别在高性能的ARM架构系统中,AHB有逐步取代ASB的趋 势,例如在ARM1020E处理器核中。 • APB为外围宏单元提供了简单的接口,也可以把APB看作ASB的余部。
ARM9嵌入式系统设计基础
—基于S3C2410A与μC/OS-II
第三章 ARM9体系结构
徐卓镛
1 ARM9体系结构简介
2 ARM9TDMI
3
ARM920T的体系结构简介
4 ARM9TDMI体系结构的重要特性
第一节 ARM9体系结构简介
• 一个典型的ARM体系结构方框图如图3.1.1所示, 包含有32位ALU、31个32位通用寄存器及6位状 态寄存器、32×8位乘法器、32×32位桶形移位 寄存器、指令译码及控制逻辑、指令流水线和数 据/地址寄存器等。
• 5 级流水线
• 实现了以下改进: – 改进 CPI(Cycles Per Instruction)
ARM9系列与ARM7TDMI的比较. ARM9TDMI上100条指令平均需176周期,CPI为1.760 。 ARM7TDMI上100条指令平均需224.1个周期,CPI为2.241。 因此在ARM9TDMI上花费的时间平均是ARM7TDMI上的79%,或者说在 同频率下,ARM9TDMI的性能是ARM7TDMI的127%
in[2]
in[1]
out[0]out[1] out[2]out[3]
in[0]
左移3
out[0]
out[1]
out[2]
out[3]
4×4位桶形移位寄存器示意图
第二节 ARM9TDMI
• Harvard架构
– 增加了可用的存储器宽度
• 指令存储器接口 • 数据存储器接口
– 可以实现对指令和数据存储器的同时访问
乘数 An-1An 00 01 进位Cin 0 0 操作 S->2, Cout=“0” S+B->2, Cout=“0”
10
11
0
0
S+2×B->2, Cout=“0”
S-B->2, Cout=“1”
00
01 10 11
1
1 1 1
S+B->2, Cout=“0”
S+2×B->2, Cout=“0” S-B->2, Cout=“1” S->2, Cout=“1”
图2.7.1 一个基于AMBA的典型系统
3.4.3 Cache和紧耦合器
• 冯诺伊曼结构数据和指令共用一个缓存;哈佛体系结构 有独立的指令和数据缓存; • Cache改善了系统的整体性能,但也使程序的执行时间 变得不可预测,对实时系统而言,代码执行的确定性— —装载和存储指令或数据的时间必须是可预测的; • ARM采用紧耦合器TCM实现可预测,TCM紧靠内核,保证 取指或数据操作的时钟周期数。TCM位于存储器的地址 映射中,可作为快速存储器访问; • 结合Cache和TCM,ARM既能改善性能,又能够获得可预 测的实时响应;
ADD
SUB
CMP
ADD
SUB
ADD
ARM的三级流水线(例如ARM7TDMI)
ARM流水线的级数
• • • • ARM9 流水线增加到5级,增加了存储器访问段和回写段,使ARM9处理能力平均可达到1.1 Dhrystone,指令吞吐量增加了约13%。 随着流水线深度(级数)的增加,每一段的工作量被削减了,这使得处理器可以工作在更高的频 率,同时改进了性能; 负面作用是增加了系统的延时,即内核在执行一条指令前,需要更多的周期来填充流水线; 流水线级数的增加也意味着在某些段之间会产生数据相关;
图3.1.1 ARM体系结构方框图






1.ALU – ARM体系结构的ALU与常用的ALU逻辑结构基本相同,由两个操作数锁存器、加法器、 逻辑功能、结果及零检测逻辑构成。ALU的最小数据通路周期包含寄存器读时间、 移位器延迟、ALU延迟、寄存器写建立时间、双相时钟间非重叠时间等几部分。 2.桶形移位寄存器 – ARM采用了32×32位桶形移位寄存器,左移/右移n位、环移n位和算术右移n位等 都可以一次完成,可以有效的减少移位的延迟时间。在桶形移位寄存器中,所有 的输入端通过交叉开关(Crossbar)与所有的输出端相连。交叉开关采用NMOS晶 体管来实现。 3.高速乘法器 – ARM为了提高运算速度,采用两位乘法的方法,2位乘法可根据乘数的2位来实现 “加-移位”运算。ARM的高速乘法器采用32×8位的结构。完成32×2位乘法也只 需5个时钟周期。 4.浮点部件 – 在ARM体系结构中,浮点部件作为选件可根据需要选用,FPA10浮点加速器以协处 理器方式与ARM相连,并通过协处理器指令的解释来执行。 – 浮点的Load/Store指令使用频度要达到67%,故FPA10内部也采用Load/Store结构, 有8个80位浮点寄存器组,指令执行也采用流水线结构。 5.控制器 – ARM的控制器采用硬接线的可编程逻辑阵列PLA,其输入端有14根、输出端有40根, 分散控制Load/Store多路、乘法器、协处理器以及地址、寄存器ALU和移位器。 6.寄存器 – ARM内含37个寄存器,包括31个通用32位寄存器和6个状态寄存器。
预取 译码 执行 (Fetch) (Decode) (Execute) 预取 译码 执行 访存 写入 (Fetch) (Decode) (Execute) (Memory) (Write) 预取 (Fetch) 预取 (Fetch) 发送 译码 执行 访存 写入 (Issue) (Decode) (Execute) (Memory) (Write) 预取 (Fetch) 发送 译码 (Issue) (Decode) 转换 执行 访存 写入 (Snny) (Execute) (Memory) (Write)
A操作数锁存
反相A
B操作数锁存
反相B
XOR门
XOR门
功能
逻辑功能运算器
加法器
C 输入 C 进位位 V 溢出
逻辑/算术
结果多路器 N 符号位 零检测
Z 为零标志
结果
ALU 逻辑框图
高速乘法器
下面我们以两位乘法器为例。所谓的两位乘法器是指把乘数每两位分成一段,根据该段 值,通过硬件实现被乘数与该段值的相乘。规则如下:
AMBA总线
• AMBA通过测试接口控制器TIC(Test Interface Controller)提供了模块测 试的途径,允许外部测试者作为ASB总线的主设备来分别测试AMBA上的各个模 块。 • AMBA中的宏单元也可以通过JTAG方式进行测试。虽然AMBA的测试方式通用性 稍差些,但其通过并行口的测试比JTAG的测试代价也要低些。
这里S为低二位乘以被乘数的部分积、B为被乘数、Cin为低二位乘以被乘数时产生 的进位。Cout为当前二位乘以被乘数时产生的进位,在下二位乘以被乘数时,传递 给Cin。 被乘数(B) 10110110 乘数 10110101
右移3
in[0] in[1] in[2] in[3]
右移2
右移1
不移位
in[3] 左移1 左移2
相关文档
最新文档