SlideShare a Scribd company logo
1 of 52
第 2 章 ARM/THUMB 微处理器结构及指令系统   本章简要介绍了 ARM/THUMB 微处理器的一些基本概念、应用领域及特点,以引导读者进入 ARM/THUMB 的殿堂。 本章主要内容有: ◆   ARM/THUMB 及相关技术简介 ◆   ARM/THUMB 微处理器系列 ◆   ARM/THUMB 微处理器的结构 ◆   ARM/THUMB 指令系统
2.1 ARM 微处理器概述  ,[object Object],[object Object]
[object Object],[object Object]
2.1.1 ARM 处理器系列  ,[object Object],[object Object],[object Object],[object Object],[object Object]
1. ARM7 微处理器系列 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ARM 的 JTAG 调试接口 1 。 ARM 的 JTAG 调试结构 一个典型的 ARM 基于 JTAG 调试结构 如图所示。 Debug 主控( Host ) 通常是运行有 ARM 公司或者第三方提供的调式软件的 PC ,通常用的调试软件有 ARM Debug for Window(ADW),Linux 下的 arm-elf-gdb 等。  通过这些调试软件,可以发送高级的 ARM 指令,比如:设置簖点,读写存储器,单步跟踪,全速运行等。 协议转换器( Protrocol converter ) 负责转换 Debug 主控端发出的高级 ARM 调式命令为底层的和 ARM 内核通信的 JTAG 命令。 Debug 主控端和协议转换器之间的介质可以有很多种,比如:以太网, USB , RS-232 ,并口等。主控端和协议转换器之间的通信协议最典型的就是 ARM 公司提供的 Angle 标准,也可以是第三方厂家自己定义的标准。 关于 Angle 的协议,请参考 ARM SDT 和 ADS , ajj 公司的 OpenICE32,EPI 公司的 Jeeni 等。
协议转换器( Protrocol converter ) 负责转换 Debug 主控端发出的高级 ARM 调式命令为底层的和 ARM 内核通信的 JTAG 命令。 Debug 主控端和协议转换器之间的 介质 可以有很多种,比如:以太网, USB , RS-232 ,并口等。主控端和协议转换器之间的通信协议最典型的就是 ARM 公司提供的 Angle 标准,也可以是第三方厂家自己定义的标准。 关于 Angle 的协议,请参考 ARM SDT 和 ADS , ajj 公司的 OpenICE32,EPI 公司的 Jeeni 等。 Debug 目标板就是指系统的调试对象.以一个典型的 ARM7TDMI 处理器内核为例 , 说明 ARM7TDMI 内核的 JTAG 调试结构 .
ARMJTAG 的 JTAG 宏单元( Macricell )主要包括 3 条 JTAG 扫描链( Scan Chain )和一个 JTAG 的控制 TAP 状态机。 2 . JTAG 与 AngelJTAG 调试: 协议转换器解释上位机传送来的命令,通过 JTAG 控制 ARM 执行。 Angle 调试:协议转换器可以直接做为目标板 Firmware 的一部分 . 直接执行从宿主机转送过来的调试指令;并回送相应数据。 Angel 可以节省专门的 JTAG 仿真器,但是,它需要软件,或者是嵌入式操作系统的支持,做不到完全的实时仿真。而 JTAG 仿真是通过硬件和控制 ARM 的 EmbeddedICE 实现的可以做到实时仿真。
JTAG 的基本知识 1 . 什么是 JTAG JTAG 是 Joint Test Action Group 的缩写:是 IEEE1149.1 标准。 2 . 使用 JTAG 的优点 JTAG 的建立使得集成电路固定在 PCB 上,只通过边扫描便可以通过测试。 在 ARM7TDMI 处理器中,可以通过 JTAG 直接控制 ARM 的内部总线, I/O 口等信息,从而达到调试的目的。
3 . JTAG 的典型信号 TMS :测试模式选择( Test Mode Select ) , 通过 TMS 信号控制 JTAG 状态机的状态。 TCK : JTAG 的时钟信号。 TDI :数据输入信号。 TDO :数据输出信号。 nTRST : JTAG 复位信号,复位 JTAG 的状态机和内部的宏单元( Macrocell )。 4 . JTAG 状态机 5 . JTAG 链的组成
ARM7TDMI 内核的 JTAG 扫描链结构 ARM7TDMI 内核的 JTAG 扫描链结构 . 主要包括3条扫描链: Scan chain0, Scan chain1 Scan chain2 . Scan Chain0 : 有 113 个扫描单元 , 包括 ARM 核的所有 I/O, 地址数据总线和输入输出控制信号 . 这条链上的信号复杂 , 不易控制 , 但是 , 包含的信息丰富 , 可以通过这条链得到 ARM7TDMI 所有的内核信息。
Scan Chain1 :有 33 个扫描单元,包括 ARM 核的数据总线和一个断点控制信号。这是一条很有用地链,通过控制这条链,可以控制 ARM 核执行指定的指令,从而实现对 ARM 的内部寄存器,协处理器以及外部存储器的读写操作。 Scan Chain2 :有 38 个扫描单元,通过控制 EmbeddedICE 宏单元,实现对 ARM 执行指令的断点,观察点控制。 EmbeddedICE 是集成在 ARM 内核的中的嵌入式 ICE 防真器。其结构如图所示。通过对 EmbeddedICE 的控制,对 EmbeddedICE 中寄存器的读取,可以获得 ARM 内核的状态,为程序设置断点以及读取 Debug 通信通道。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2. ARM9 微处理器系列   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
3. ARM9E 微处理器系列  ,[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
4. ARMl0E 微处理器系列  ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
5. SecurCore 微处理器系列 ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
6. StrongARM 微处理器系列  ,[object Object],[object Object],[object Object]
7. Xscale 处理器  ,[object Object],[object Object],[object Object]
2.1.2 RISC 体系结构 ,[object Object]
[object Object],[object Object]
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object]
2.1.3 ARM 和 Thumb 状态 ,[object Object],[object Object],[object Object],[object Object]
在 ARM 状态下的处理器不能执行 Thumb 指令 , 在 Thumb 状态下的处理器也不能执行 ARM 指令。 必须确保处理器不接受对当前状态来说为错误指令集的指令。 每个指令集都包括切换处理器状态的指令。 ARM 处理器总是在 ARM 状态下开始执行代码。 ARM 处理器支持 7 种处理器模式,取决于体系结构版本。
2.1.4.  寄存器  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object]
2.1.5 ARM 指令集概述 ,[object Object],[object Object],[object Object]
2.1.6 Thumb 指令集概述  ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
3 AMBA 总线   ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
3.1 AHB   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
3.2 ASB   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
3.3 APB   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
扫描链 0   ARM7 内核 扫描链 1+ 链 0 EmbeddedICE 宏单元 TAP 控制器 TAP 核 控制信号 数据总线 扫描链 2 JTAG 接口 ARM7TDMI 内核的 JTAG 扫描链结构 地址总线 返回
Debug 主控 协议转换器 调试目标机 以 ARM7TDMI 为 处理器的开发系统 负责转换 Debug 主控端发出的高级 ARM 调试指令为底层的和 ARM 内核通信的 运行ARM公司或第三方 提供的调试软件的PC机 ARM 的 JTAG 调试系统 返回
ARM7TDMI 处理器 扫描链0 EmbeddedICE ARM 核 扫描链2 TAP 状态控制器 BREAKPT 扫描链1 ARM7TDMI 内核的 JTAG 调试结构 返回
High Performance CPU core APB Bridge UART High Performance Memory High Performance DMA core Keyboard Arbiter Timer PIO APB AHB/ASP AMBA 总线逻辑结构 返回

More Related Content

Similar to computer organization

20200625040100253.ppt
20200625040100253.ppt20200625040100253.ppt
20200625040100253.pptssuser7270b41
 
Emc存储培训
Emc存储培训Emc存储培训
Emc存储培训Mq Sfs
 
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure National Cheng Kung University
 
Aix操作系统培训文档
Aix操作系统培训文档Aix操作系统培训文档
Aix操作系统培训文档lwj2012
 
项目3-工程创建与调试.pdf
项目3-工程创建与调试.pdf项目3-工程创建与调试.pdf
项目3-工程创建与调试.pdfyangmeng22
 
Deployment instruction trus guard utm 400
Deployment instruction trus guard utm 400Deployment instruction trus guard utm 400
Deployment instruction trus guard utm 400ahnlabchina
 
Erlang Emulator Implementation
Erlang Emulator ImplementationErlang Emulator Implementation
Erlang Emulator ImplementationFeng Yu
 
Erlang Optimize
Erlang OptimizeErlang Optimize
Erlang OptimizeFeng Yu
 
计算机组成原理 6
计算机组成原理 6计算机组成原理 6
计算机组成原理 6lqarenas
 
Deployment instruction trus guard utm 1000
Deployment instruction trus guard utm 1000Deployment instruction trus guard utm 1000
Deployment instruction trus guard utm 1000ahnlabchina
 
Cuda基本介绍
Cuda基本介绍Cuda基本介绍
Cuda基本介绍caolejun
 
Team work4.3华为
Team work4.3华为Team work4.3华为
Team work4.3华为zy620713
 
分会场二Storage foundation 中的多通道技术
分会场二Storage foundation 中的多通道技术分会场二Storage foundation 中的多通道技术
分会场二Storage foundation 中的多通道技术ITband
 

Similar to computer organization (20)

17 cpu01
17 cpu0117 cpu01
17 cpu01
 
20200625040100253.ppt
20200625040100253.ppt20200625040100253.ppt
20200625040100253.ppt
 
ARM and SoC Traning Part II - System
ARM and SoC Traning Part II - SystemARM and SoC Traning Part II - System
ARM and SoC Traning Part II - System
 
Godson x86
Godson x86Godson x86
Godson x86
 
Emc存储培训
Emc存储培训Emc存储培训
Emc存储培训
 
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
Accelerating or Complicating PHP execution by LLVM Compiler Infrastructure
 
Plc3
Plc3Plc3
Plc3
 
Aix操作系统培训文档
Aix操作系统培训文档Aix操作系统培训文档
Aix操作系统培训文档
 
项目3-工程创建与调试.pdf
项目3-工程创建与调试.pdf项目3-工程创建与调试.pdf
项目3-工程创建与调试.pdf
 
20 cpu04
20 cpu0420 cpu04
20 cpu04
 
AX58400產品簡介
AX58400產品簡介AX58400產品簡介
AX58400產品簡介
 
Deployment instruction trus guard utm 400
Deployment instruction trus guard utm 400Deployment instruction trus guard utm 400
Deployment instruction trus guard utm 400
 
Erlang Emulator Implementation
Erlang Emulator ImplementationErlang Emulator Implementation
Erlang Emulator Implementation
 
Banquet 09
Banquet 09Banquet 09
Banquet 09
 
Erlang Optimize
Erlang OptimizeErlang Optimize
Erlang Optimize
 
计算机组成原理 6
计算机组成原理 6计算机组成原理 6
计算机组成原理 6
 
Deployment instruction trus guard utm 1000
Deployment instruction trus guard utm 1000Deployment instruction trus guard utm 1000
Deployment instruction trus guard utm 1000
 
Cuda基本介绍
Cuda基本介绍Cuda基本介绍
Cuda基本介绍
 
Team work4.3华为
Team work4.3华为Team work4.3华为
Team work4.3华为
 
分会场二Storage foundation 中的多通道技术
分会场二Storage foundation 中的多通道技术分会场二Storage foundation 中的多通道技术
分会场二Storage foundation 中的多通道技术
 

computer organization

  • 1. 第 2 章 ARM/THUMB 微处理器结构及指令系统 本章简要介绍了 ARM/THUMB 微处理器的一些基本概念、应用领域及特点,以引导读者进入 ARM/THUMB 的殿堂。 本章主要内容有: ◆   ARM/THUMB 及相关技术简介 ◆   ARM/THUMB 微处理器系列 ◆   ARM/THUMB 微处理器的结构 ◆   ARM/THUMB 指令系统
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. ARM 的 JTAG 调试接口 1 。 ARM 的 JTAG 调试结构 一个典型的 ARM 基于 JTAG 调试结构 如图所示。 Debug 主控( Host ) 通常是运行有 ARM 公司或者第三方提供的调式软件的 PC ,通常用的调试软件有 ARM Debug for Window(ADW),Linux 下的 arm-elf-gdb 等。 通过这些调试软件,可以发送高级的 ARM 指令,比如:设置簖点,读写存储器,单步跟踪,全速运行等。 协议转换器( Protrocol converter ) 负责转换 Debug 主控端发出的高级 ARM 调式命令为底层的和 ARM 内核通信的 JTAG 命令。 Debug 主控端和协议转换器之间的介质可以有很多种,比如:以太网, USB , RS-232 ,并口等。主控端和协议转换器之间的通信协议最典型的就是 ARM 公司提供的 Angle 标准,也可以是第三方厂家自己定义的标准。 关于 Angle 的协议,请参考 ARM SDT 和 ADS , ajj 公司的 OpenICE32,EPI 公司的 Jeeni 等。
  • 7. 协议转换器( Protrocol converter ) 负责转换 Debug 主控端发出的高级 ARM 调式命令为底层的和 ARM 内核通信的 JTAG 命令。 Debug 主控端和协议转换器之间的 介质 可以有很多种,比如:以太网, USB , RS-232 ,并口等。主控端和协议转换器之间的通信协议最典型的就是 ARM 公司提供的 Angle 标准,也可以是第三方厂家自己定义的标准。 关于 Angle 的协议,请参考 ARM SDT 和 ADS , ajj 公司的 OpenICE32,EPI 公司的 Jeeni 等。 Debug 目标板就是指系统的调试对象.以一个典型的 ARM7TDMI 处理器内核为例 , 说明 ARM7TDMI 内核的 JTAG 调试结构 .
  • 8. ARMJTAG 的 JTAG 宏单元( Macricell )主要包括 3 条 JTAG 扫描链( Scan Chain )和一个 JTAG 的控制 TAP 状态机。 2 . JTAG 与 AngelJTAG 调试: 协议转换器解释上位机传送来的命令,通过 JTAG 控制 ARM 执行。 Angle 调试:协议转换器可以直接做为目标板 Firmware 的一部分 . 直接执行从宿主机转送过来的调试指令;并回送相应数据。 Angel 可以节省专门的 JTAG 仿真器,但是,它需要软件,或者是嵌入式操作系统的支持,做不到完全的实时仿真。而 JTAG 仿真是通过硬件和控制 ARM 的 EmbeddedICE 实现的可以做到实时仿真。
  • 9. JTAG 的基本知识 1 . 什么是 JTAG JTAG 是 Joint Test Action Group 的缩写:是 IEEE1149.1 标准。 2 . 使用 JTAG 的优点 JTAG 的建立使得集成电路固定在 PCB 上,只通过边扫描便可以通过测试。 在 ARM7TDMI 处理器中,可以通过 JTAG 直接控制 ARM 的内部总线, I/O 口等信息,从而达到调试的目的。
  • 10. 3 . JTAG 的典型信号 TMS :测试模式选择( Test Mode Select ) , 通过 TMS 信号控制 JTAG 状态机的状态。 TCK : JTAG 的时钟信号。 TDI :数据输入信号。 TDO :数据输出信号。 nTRST : JTAG 复位信号,复位 JTAG 的状态机和内部的宏单元( Macrocell )。 4 . JTAG 状态机 5 . JTAG 链的组成
  • 11. ARM7TDMI 内核的 JTAG 扫描链结构 ARM7TDMI 内核的 JTAG 扫描链结构 . 主要包括3条扫描链: Scan chain0, Scan chain1 Scan chain2 . Scan Chain0 : 有 113 个扫描单元 , 包括 ARM 核的所有 I/O, 地址数据总线和输入输出控制信号 . 这条链上的信号复杂 , 不易控制 , 但是 , 包含的信息丰富 , 可以通过这条链得到 ARM7TDMI 所有的内核信息。
  • 12. Scan Chain1 :有 33 个扫描单元,包括 ARM 核的数据总线和一个断点控制信号。这是一条很有用地链,通过控制这条链,可以控制 ARM 核执行指定的指令,从而实现对 ARM 的内部寄存器,协处理器以及外部存储器的读写操作。 Scan Chain2 :有 38 个扫描单元,通过控制 EmbeddedICE 宏单元,实现对 ARM 执行指令的断点,观察点控制。 EmbeddedICE 是集成在 ARM 内核的中的嵌入式 ICE 防真器。其结构如图所示。通过对 EmbeddedICE 的控制,对 EmbeddedICE 中寄存器的读取,可以获得 ARM 内核的状态,为程序设置断点以及读取 Debug 通信通道。
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. 在 ARM 状态下的处理器不能执行 Thumb 指令 , 在 Thumb 状态下的处理器也不能执行 ARM 指令。 必须确保处理器不接受对当前状态来说为错误指令集的指令。 每个指令集都包括切换处理器状态的指令。 ARM 处理器总是在 ARM 状态下开始执行代码。 ARM 处理器支持 7 种处理器模式,取决于体系结构版本。
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49. 扫描链 0 ARM7 内核 扫描链 1+ 链 0 EmbeddedICE 宏单元 TAP 控制器 TAP 核 控制信号 数据总线 扫描链 2 JTAG 接口 ARM7TDMI 内核的 JTAG 扫描链结构 地址总线 返回
  • 50. Debug 主控 协议转换器 调试目标机 以 ARM7TDMI 为 处理器的开发系统 负责转换 Debug 主控端发出的高级 ARM 调试指令为底层的和 ARM 内核通信的 运行ARM公司或第三方 提供的调试软件的PC机 ARM 的 JTAG 调试系统 返回
  • 51. ARM7TDMI 处理器 扫描链0 EmbeddedICE ARM 核 扫描链2 TAP 状态控制器 BREAKPT 扫描链1 ARM7TDMI 内核的 JTAG 调试结构 返回
  • 52. High Performance CPU core APB Bridge UART High Performance Memory High Performance DMA core Keyboard Arbiter Timer PIO APB AHB/ASP AMBA 总线逻辑结构 返回