本帖最后由 leijiayou 于 2014-7-3 22:43 编辑
arm体系简介
参与Helper2416开发板助学计划心得
明天板子就可能收到了,这是扫盲篇系列最后一篇。 写扫盲篇的目的,是对即将学习的helper2416 进行一个全面大体上的了解,这就注定只是类似常识一样,不会像技术博客一样深入细节。
接下来聊聊arm体系相关常识吧
ARM是Advanced RISC Machine 的简称。一般可以理解为3个意思:首先,它可以表示arm公司,这个英国的公司主要从事芯片IP设计和相关授权。所谓IP,即知识产权(Intellectual Property);其次,它可以表示arm类处理器,它代表了目前使用arm内核的芯片。
最后它还可以表示arm体系结构。Arm体系结构发展到现在经历了V1--V7版本。
那么,什么是arm体系结构呢? 其实主体上包括存储器组织、流水线、指令集、中断等等一系列,下面选择性的介绍几个。
存储器组织结构主要有两类:冯·诺依曼结构 和 哈佛结构。
冯·诺依曼结构:
它是一种将程序指令与数据统一组织的存储器结构。采用此结构的处理器将程序代码存储地址和数据存储地址公用一个存储空间编址,程序指令和数据在同一个存储器的不同物理位置。 这种结构采用单一的地址及数据总线,程序指令和数据的宽度相同,同一时刻只能通过总线读取指令或者数据。 所以这种结构在高速运算时,在传输通道上会出现速度瓶颈。
哈佛结构:
是一种将程序指令与数据分开存储的组织结构,是一种并行的体系结构。这两个存储器对于系统中的4套总线:指令存储器的数据总线与地址总线、数据存储器的数据总线与地址总线。 这种分离的程序总线与数据总线可以在一个机器内同时进行指令和操作数的访问,从而可以提高速度。
指令系统:
指令系统一般分为两大类:复杂指令集计算机(CISC)和精简指令集计算机(RISC)。通过arm的全称Advanced RISC Machine,可知,即高级精简指令集机器。即采用改进的RISC指令集。
CISC历史:早期的cpu全部都是CISC架构,它设计的目的是用最少的机器语音指令来完成所需的计算任务。然而随着应用的多样性而引入了大量的各种各样的复杂指令,使得指令集与实现这些指令的计算机体系越来越复杂,已经不堪重负。经过后来的应用发现,在CISC中各种指令使用频率相差悬殊,刚好符合二八定律,于是后面就产生了RISC指令集。 当然arm也有自己的arm指令集,这里就不做介绍了。
处理器状态与处理器模式:
arm处理器是32位的,其对应的指令集也是32位的,但是还在32位的arm指令集基础上,还定义了一个称为thumb 的16位指令集。那么这时arm处理器就有两种状态了,即arm状态 和 thumb状态。
(当然我们用M3的用户是幸运的,因为都是thumb2指令集。)
ARM处理器有多种模式:用户模式、快速中断模式、普通中断模式、管理模式、中止模式、未定义指令模式、系统模式。
用户模式(USR):正常程序执行的模式,大部分任务都在这个模式下运行。如果没有异常发生,应用程序不能改变工作模式。
快速中断模式(FIQ):当一个被定义为FIQ的事件发生时,处理器会自动进入这种模式,以实现对事件的快速处理。
普通中断模式(IRQ):当一个被定义为IRQ的事件发生时,处理器会自动进入这种模式,以实现对事件的处理。一个事件可以配置为IRQ或者FIQ,FIQ具有更高的优先级和处理速度。
管理模式(SVC):是操作系统保护模式。当上电复位或者soft中断发生时进入这种模式。
中止模式(ABT):当数据或指令读取过程发生错误时,处理器进入这种模式。
未定义模式(UND):当处理器执行未定义指令时进入这种模式。
系统模式(SYS):该模式下用来执行一些OS的特权任务。
实际上,我们编程使用到的也就其中两三种模式,其他了解一下而已。
流水线:
cpu流水线技术是一种将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。指令的每步有各自独立的电路来处理,每完成一步,就进到下一步,而前一步则处理后续指令
采用流水线技术后,并没有加速单条指令的执行,每条指令的操作步骤一个也不能少,只是多条指令的不同操作步骤同时执行,因而从总体上看加快了指令流速度,缩短了程序执行时间。
如上大体介绍了arm体系相关的一些常识,不必记住,用来了解即可。
如有错误,请指正。
论坛ID:leijiayou
发表时间:2014-07-03
|