第2章ARM微处理器硬件结构.ppt

上传人:tang****xu1 文档编号:528363 上传时间:2018-09-27 格式:PPT 页数:81 大小:1.54MB
返回 下载 相关 举报
第2章ARM微处理器硬件结构.ppt_第1页
第1页 / 共81页
第2章ARM微处理器硬件结构.ppt_第2页
第2页 / 共81页
点击查看更多>>
资源描述

《第2章ARM微处理器硬件结构.ppt》由会员分享,可在线阅读,更多相关《第2章ARM微处理器硬件结构.ppt(81页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1,第2章 ARM微处理器硬件结构,本章主要内容:计算机体系结构分类ARM版本及系列ARM处理器结构存储系统机制,2,计算机体系结构,1.冯诺依曼结构,3,计算机体系结构,2. 哈佛体系结构,4,ARM简介,ARM(Advanced RISC Machines)系列微处理器,采用的ARM技术知识产权(IP)核都是由ARM公司提供的。 ARM公司本身不生产芯片,转让设计许可,由合作公司生产各具特色的芯片。 ARM32位体系结构目前被公认为是嵌入式应用领域领先的32位嵌入式RISC微处理器结构。从版本1到版本6,ARM体系的指令集功能不断扩大。,5,ARM版本,1V1版架构 该版架构只在原型机AR

2、M1出现过,没有用于商业产品。其基本性能有: 基本的数据处理指令(无乘法); 基于字节、半字和字的Load/Store指令; 转移指令,包括子程序调用及链接指令; 供操作系统使用的软件中断指令SWI; 寻址空间:64MB(226)。,6,ARM版本,2V2版架构 该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构,版本2a是版本2的变种,ARM3芯片采用了版本2a。V2版架构与版本V1相比,增加了以下功能:乘法和乘加指令;支持协处理器操作指令;快速中断模式;SWP/SWPB的最基本存储器与寄存器交换指令;寻址空间:64MB。,7,ARM版本,3V3版架构 V3版架构对ARM体系结

3、构作了较大的改动: 寻址空间增至32位(4GB); 当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register); 增加了程序状态保存寄存器SPSR(Saved Program Status Register); 增加了中止(Abort)和未定义2种处理器模式; 增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器; 增加了从异常处理返回的指令功能。,8,ARM版本,4V4版架构 V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用

4、该架构。指令集中增加了以下功能: 符号化和非符号化半字及符号化字节的存/取指令; 增加了16位Thumb指令集; 完善了软件中断SWI指令的功能; 处理器系统模式引进特权方式时使用用户寄存器操作; 把一些未使用的指令空间捕获为未定义指令。,9,ARM版本,5V5版架构 V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。这些新增命令有: 带有链接和交换的转移BLX指令; 计数前导零CLZ指令; BRK中断指令; 增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令。,10,ARM版本,6V6版架构 V6版架构是2001年发布的,首先在2002

5、年春季发布的ARM11处理器中使用。此架构在V5版基础上增加了以下功能: THUMBTM:35%代码压缩; DSP扩充:高性能定点DSP功能; JazelleTM:Jova性能优化,可提高8倍; Media扩充:音/视频性能优化,可提高4倍。,11,ARM处理器系列,ARM7系列ARM9系列ARM9E系列ARM10E系列SecurCore系列Inter的XscaleInter的StrongARM,12,ARM处理器结构,从一下四个方面介绍:ARM和Thumb状态 RISC技术流水线技术超标量执行,13,ARM和Thumb状态,V4版以后有:32位ARM指令集16位Thumb指令集,功能是ARM

6、指令集的功能子集。ARM7TDMI核以后,T变种的ARM微处理器有两种工作状态:ARM状态Thumb状态。,14,ARM与Thumb状态转换,在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且该转变不影响处理器的工作模式和相应寄存器中的内容。 进入Thumb状态:当操作数寄存器的状态位(位0)为1时,执行BX指令。 进入ARM状态:当操作数寄存器的状态位(位0)为0时,执行BX指令。,15,RISC技术,RISC体系结构基本特点:大多数指令只需要执行简单和基本的功能,其执行过程在一个机器周期内完成。只保留加载/存储指令。操作数由加载/存储指令从存储器取出放寄存器内操作。芯片逻辑不

7、采用或少采用微码技术,而采用硬布线逻辑。减少指令数和寻址方式。 指令格式固定,指令译码简化。优化编译。,16,RISC技术,ARM体系结构还采用了一些特别的技术:所有的指令都可根据前面的执行结果决定是否被执行,提高了指令的执行效率。可用Load/Store指令批量传输数据,以提高数据的传输效率。可在一条数据处理指令中同时完成逻辑处理和移位处理。,17,流水线技术,1ARM的3级流水线,Fetch取指令Decode解码Excute执行,18,流水线技术,多周期ARM指令的3级流水线操作,19,流水线技术,2ARM的流水线设计问题 (1)缩短程序执行时间: 提高时钟频率fclk减少每条指令的平均时

8、钟周期数CPI (2)解决流水线相关:结构相关 数据相关 控制相关,20,流水线技术,3ARM的5级流水线 ARM9和StrongARM架构都采用了5级流水线.增加了I-Cache和D-Cache,把存储器的取指与数据存取分开;增加了数据写回的专门通路和寄存器; 把指令的执行过程分割为5部分: 取指-指令译码-执行-数据缓存-写回,21,超标量执行,通过重复设置多套指令执行部件,同时处理并完成多条指令,实现并行操作,来达到提高处理速度的目的。所有ARM内核,包括流行的ARM7、ARM9和ARM11等,都是单周期指令机。ARM公司下一代处理器将是每周期能处理多重指令的超标量机。但是:超标量处理器

9、在执行的过程中必须动态地检查指令相关性;必须将分支被执行和分支不被执行这两种情况分开考虑。,22,存储器部件的分类,按在系统中的地位分类: “主存储器”(Main Memory, 简称内存或主存) “辅助存储器”(Auxiliary Memory,Secondary Memory,简称辅存或外存) 按存储介质分类:磁存储器(Magnetic Memory),半导体集成电路存储器(通常称为半导体存储器),光存储器(Optical Memory),激光光盘存储器(Laser Optical Disk)按信息存取方式分类:随机存取存储器RAM只读存储器ROM,23,存储器的组织和结构,嵌入式存储器一

10、般采用存储密度较大的存储器芯片,典型的嵌入式存储器系统由ROM、RAM、EPROM等组成。,24,常用的存储器,随机存储器(RAM) 静态随机存储器(SRAM)动态随机存储器(DRAM) 只读存储器(ROM),它在嵌入式系统中非常有用,因为许多代码或数据不随时间改变。 工厂编程的只读存储器,25,存储器的性能,大容量、高速度、低价格是评价存储器性能的三个主要指标,也是存储体系设计的主要目标。 容量:SwWlm。其中W为存储体的字长(单位为位或字节),l为单个存储体的字数,m为并行工作的存储体个数。 速度:m个存储体并行工作时,可达到的最大频率宽度为BmWmTM 。其中TM是连续起动一个存储器所

11、必要的时间间隔,TMTA。Bm是连续提供数据的速率。价格:具有SM位的存储器,每位价格表示为c=CSm。其中C是总价格。现场可编程只读存储器,26,存储体系的组成,单体单字存储器单体多字存储器 多体单字交叉存取存储器多体多字交叉存取存储器一般把这些能并行读出多个CPU字的单体多字和多体单字及多体多字的交叉存取系统,统称为并行主存系统。,27,存储体系的形式,(a)两级存储器层次结构,(b)三级存储器层次结构,28,总线结构,1.总线协议 :四周期握手协议,29,总线结构,2.总线读写,30,总线结构,3总线的时序图,31,总线结构,4直接内存访问(DMA),32,总线结构,5系统总线配置 多总

12、线系统,33,ARM存储数据类型,ARM处理器支持以下六种数据类型: 8位有符号和无符号字节。16位有符号和无符号半字,以2字节的边界对齐。32位有符号和无符号字,以4字节的边界对齐。,34,ARM存储格式,大端存储模式,小端存储模式(缺省),35,存储器接口,1.存储周期的基本类型:空闲周期非顺序周期顺序周期协处理器寄存器传送周期,36,存储器接口,2.ARM的总线接口信号分成4类(以ARM7TDMI为例说明):时钟和时钟控制信号:MCLK、ECLK、nRESET、nWAIT。地址类信号:A31.0、nRW、MAS1.0、nOPC、nTRANS、LOCK、TBIT。存储器请求信号:nMREQ

13、、SEQ。数据时序信号:D31.0、DIN31.0、DOUT31.0、ABORT、BL3.0。,37,存储器接口,3. ARM的总线接口可以实现4种不同类型的总线周期。,38,高速缓冲存储器,1.分类:统一Cache VS 独立的数据/程序Cache写通cache VS 写回cache读操作分配cache VS 写操作分配cache,39,高速缓冲存储器,2.工作原理:,40,高速缓冲存储器,3.地址映像和变换方式:全相联地址映像和变换组相联地址映像和变换直接映像和变换,41,高速缓冲存储器,4.Cache的替换算法:轮转法随机替换算法,42,存储管理单元MMU,1.在ARM系统中,存储管理单

14、元MMU主要完成工作:虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。存储器访问权限的控制。 设置虚拟存储空间的缓冲的特性。,43,存储管理单元MMU (1),2.存储访问过程使能MMU时存储访问过程 :,44,存储管理单元MMU (2),禁止MMU时存储访问过程: 先要确定芯片是否支持cache和write buffer。如果芯片规定当禁止MMU时禁止cache和write buffer,则存储访问将不考虑C和B控制位。如果芯片规定当禁止MMU时可以使能cache和write buffer,则数据访问时,C=0,B=0;指令读取时,如果使用分开的TLB,那么C=1,如果使

15、用统一的TLB,那么C=0。存储访问不进行权限控制,MMU也不会产生存储访问中止信号。所有的物理地址和虚拟地址相等,即使用平板存储模式。,45,存储管理单元MMU (1),3. MMU中的地址变换过程:通过两级页表实现。a)一级页表中包含有以段为单位的地址变换条目以及指向二级页表的指针。一级页表是实现的地址映射粒度较大。以段为单位的地址变换过程只需要一级页表。b)二级页表中包含有以大页和小页为单位的地址变换条目。有一种类型的二级页表还包含有以极小页为单位的地址变换条目。以页为单位的地址变换过程需要二级页表。,46,存储管理单元MMU (2),一级页表的地址变换过程 :,47,存储管理单元MMU

16、 (1),4.一级描述符: 从页表中得到的相应地址变换条目称为一级描述符。它定义了与之相应的1M存储空间是如何映射的。一级描述符的位1:0定义了该一级描述符的类型,共有4种格式的一级描述符:,48,存储管理单元MMU (2),1)粗粒度页表描述符:当一级描述符的位1.0为0b01(0b代表二进制)时,该一级描述符中包含了粗粒度的二级页表的物理地址,这种一级描述符称为粗粒度页表描述符。它的格式和各个字段的含义如下:,49,存储管理单元MMU (3),由粗粒度页表描述符获取二级描述符的过程 :,50,存储管理单元MMU (4),2)段描述符:当一级描述符的位1:0为0b10时,该一级描述符为段描述

17、符,它的格式和各个字段的含义如下:,51,存储管理单元MMU (5),基于段的地址变换过程 :,52,存储管理单元MMU (6),3)细粒度页表描述符:当一级描述符的位1:0为0b11时,该一级描述符中包含了细粒度的二级页表的物理地址,称为细粒度页表描述符。它的格式和各个字段的含义如下:,53,存储管理单元MMU (7),由细粒度页表描述符获取二级描述符的过程,54,存储管理单元MMU ,5.MMU中的存储访问权限控制,55,存储管理单元MMU ,6. MMU中的域(Domain) MMU中的域指的是一些段、大页或者小页的集合。ARM支持最多16个域,每个域的访问控制特性都是由CP15中的寄存

18、器C3中的两位来控制的。这两位的字段编码和含义:,56,存储管理单元MMU ,7.快速上下文切换技术 快速上下文切换技术FCSE(Fast Context Switch Extension)通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。 FCSE位于CPU和MMU之间,其责任就是将不同进程使用的相同虚拟地址映射为不同的虚拟空间,使得在上下文切换时无需重建TLB等。,57,存储管理单元MMU ,8.存储器映射的输入/输出 在ARM系统中,I/O操作通常被映射成存储器操作,即输入/输出是通过存储器映射的可寻址外围寄存器和中断输入的组合

19、来实现的。 但是,对于存储器映射的I/O空间的操作,不能使用Cache技术。,58,基于ARM体系的结构硬件平台,目前在世界范围内,ARM体系结构的SOC逐渐占领32位嵌入式微处理器市场,并且在国内市场上很容易购买到ARM核的嵌入式处理器,由北京博创兴业科技有限公司开发的UP-NetARM3000和UP-NetARM2410/UP-NetARM2410-S实验仪器,硬件平台也是基于ARM体系结构的。UP-NetARM3000的CPU为AMR7TDMI内核的三星S3C44B0X01芯片,由于没有MMU,只能运行CLinux,UP-NetARM2410的CPU为AMR920T内核的三星S3C241

20、0芯片,由于有MMU,就可以运行标准的ARM-Linux内核。通过这两个平台,可以学习嵌入式Linux中的针对有MMU和无MMU的不同开发过程。,59,60,UP-NetARM2410的硬件配置,61,62,63,S3C2410芯片介绍(1/3) (1)S3C2410X芯片集成了大量的功能单元,包括:,内部1.8V,存储器3.3V,外部I/O3.3V,16KB数据CACHE,16KB指令CACHE,MMU。内置外部存储器控制器(SDRAM 控制和芯片选择逻辑)。LCD控制器,一个LCD专用DMA。4个带外部请求线的DMA。3个通用异步串行端口(IrDA1.0, 16-Byte Tx FIFO,

21、 and 16-Byte Rx FIFO),2通道SPI。一个多主I2C总线,一个I2S总线控制器。SD主接口版本1.0和多媒体卡协议版本2.11兼容。,64,S3C2410芯片介绍(2/3),两个USB HOST,一个USB DEVICE(VER1.1)。4个PWM定时器和一个内部定时器。看门狗定时器。117个通用I/O。24个外部中断。电源控制模式:标准、慢速、休眠、掉电。8通道10位ADC和触摸屏接口。带日历功能的实时时钟。芯片内置PLL。,65,S3C2410芯片介绍(3/3),设计用于手持设备和通用嵌入式系统。16/32位RISC体系结构,使用ARM920T CPU核的强大指令集。带

22、MMU的先进的体系结构支持WinCE、EPOC32、Linux。指令缓存(CACHE)、数据缓存、写缓冲和物理地址TAG RAM,减小了对主存储器带宽和性能的影响。ARM920T CPU 核支持 ARM 调试的体系结构。内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB)。,66,S3C2410 ARM MPU 体系结构框图,67,S3C2410 ARM MPU 体系结构框图(1/3),68,S3C2410 ARM MPU 体系结构框图(2/3),69,S3C2410 ARM MPU 体系结构框图(3/3),70,图示为2410-S 开发平台之间以及与PC 机之间的连接概况,7

23、1,72,73,(2)系统管理 (1/2),小端/大端支持。地址空间:每个BANK128MB(全部为1GB)。每个BANK可编程为8/16/32位数据总线。BANK 0到BANK 6为固定起始地址。BANK 7可编程BANK起始地址和大小。一共8个存储器BANK。6个存储器BANK用于ROM、SRAM和其他。,74,系统管理 (2/2),两个存储器BANK用于ROM、SRAM和同步DRAM。每个存储器BANK可编程存取周期。支持等待信号用以扩展总线周期。支持SDRAM掉电模式下的自刷新。支持不同类型的ROM用于启动(NOR/NAND Flash、EEPROM和其他)。,75,嵌入式Linux开

24、发流程,1建立开发环境操作系统一般使用RedHat-Linux,版本从7到9都可以,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(例如arm-Linux-gcc、arm-clibc-gcc),或者安装产品厂家提供的交叉编译器。,76,2配置开发主机,配置MINICOM,一般的参数为波特率为115200bps,数据位为8位,停止位为1,无奇偶校验,软件硬件流控设为无。在Windows下的超级终端的配置也是这样的。MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络,主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置

25、过程。,77,3建立引导装载程序BOOTLOADER,从网络上下载一些公开源代码的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据自己具体的芯片进行移植修改。有些芯片没有内置引导装载程序,例如三星的ARM7、ARM9系列芯片,这样就需要编写开发板上Flash的烧写程序,网络上有免费下载的Windows下通过JTAG并口简易仿真器烧写ARM外围Flash芯片的烧写程序,也有Linux下的公开源代码的J-Flash程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是系统正常运行的第一步。如果购买了厂家的仿真器当然

26、比较容易烧写Flash,这对于需要迅速开发自己产品的人来说可以极大地提高开发速度,但是其中的核心技术是无法了解的。,78,4下载别人已经移植好的Linux操作系统,如CLinux、ARM-Linux、PPC-Linux等,如果有专门针对所使用的CPU移植好的Linux操作系统那是再好不过的,下载后再添加自己的特定硬件的驱动程序,进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,对于CLinux这样的系统则需编译进内核进行调试。,79,5建立根文件系统,从下载使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他程序。默认的启动脚本一般都不会符合应

27、用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs、genromfs等工具产生烧写映像文件。,80,6建立应用程序的Flash磁盘分区,一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性Flash(NOR型)512KB32MB,有的系统使用非线性Flash(NAND型)8512MB,有的两个同时使用,需要根据应用规划Flash的分区方案。,81,7开发应用程序应用程序可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于COS-II的方式。8烧写内核、根文件系统、应用程序9发布产品,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com