【嵌入式系统—ARM指令系统】CISC与RISC

文章目录

一、CISC—复杂指令集计算机

二、RISC—精简指令集计算机

CISC与RISC的比较

三、ARM 指令结构

冯诺依曼体系与哈佛体系

ARM处理器模式

ARM寄存器


一、CISC—复杂指令集计算机

自从第一台计算机在50年代问世,计算机汇编指令系统经历了几个阶段:

  • 50年代,计算机汇编指令系统主要是以定点数为主的简单的加/减和逻辑运算指令,指令数目在10到90条。
  • 60年代,计算机汇编指令系统发展到以浮点数为主的加/减与乘除指令,体现在计算机的多种寻址方式,指令数目在100到200条。
  • 到70年代,伴随计算机硬件和集成电路的发展,计算机汇编指令系统更为复杂,发展成为了公认的复杂指令集计算机(COMPLEX INSTRUCTION SET COMPUTER-CISC),其最显著的特点是指令繁多,指令长度不固定,长短不一,指令格式多样化,存储器寻址方式多样化。

INTEL公司的PENTINUM就是最典型的复杂指令集计算机(CISC),由于计算机硬件的复杂性和指令系统的复杂性的增加,CPU的面积变得大,其功耗也变高,PENTINUM的处理器上装有小风扇就是出于此原因。

 

解释一下:定点数是什么?与浮点数的区别是什么?

在计算机系统的发展过程中,曾经提出过多种方法表达实数。

 

定点数(Fixed Point Number),一种典型的实数表达形式,小数点固定地位于实数所有位数中间的某个位置

货币的表达就可以使用这种方式,比如 99.00 或 00.99 可以用于表达具有四位精度,小数点后有两位的货币值。

定点数表达法的缺点:形式过于僵硬,固定的小数点位置决定了固定位数的整数部分和小数部分,不利于表达特别大的数或特别小的数。

 

最终,绝大多数现代的计算机系统采纳了所谓的浮点数表达方式,这种表达方式利用了科学计数法来表达实数。

比如:123.45 用十进制科学计数法可以表达为 1.2345 × 102 ,其中 1.2345 为尾数,10 为基数,2 为指数。

浮点数表达法优点利用指数达到了浮动小数点的效果,从而可以灵活地表达更大范围的实数。

 

二、RISC—精简指令集计算机

到了80年代,由于计算机指令系统太复杂,在美国加州大学BERKELEY分校有人提出了精简指令系统计算机(REDUCED INSTRUCTION SET COMPUTER-RISC)的概念,主要思想是选用最常用的指令,指令长度固定,避免繁多的指令格式,存储器寻址方式只有规范的LOAD/STORE方式(RISC访问RAM内存的方式)。

由于指令系统的精简化,基于RISC的CPU面积变小,其功耗也降低。嵌入式设备和手持设备大多采用基于RISC的CPU,小易携带而且功耗低。ARM和MIPS是最典型的基于RISC的处理器。

下表1-1是计算机指令系统 CISC 和 RISC 的性能指标比较。

  • CISC与RISC的比较

 

CISC与RISC的比较
 概述背景特点/基本思想访问RAM内存方式优点/缺点典型代表
CISC COMPLEX INSTRUCTION SET COMPUTER-CISC,即复杂指令集计算机 伴随计算机硬件和集成电路的发展,计算机汇编指令系统更为复杂特点:指令繁多,指令长度不固定,长短不一,指令格式多样化  多种多样 缺点:由于计算机硬件的复杂性和指令系统的复杂性的增加,CPU的面积变得大,其功耗也变高 INTEL公司的PENTINUM
RISC REDUCED INSTRUCTION SET COMPUTER-RISC,即精简指令系统计算机 到了80年代,由于计算机指令系统太复杂,寻求一种指令集较为精简的指令系统主要思想:选用最常用的指令,指令长度固定,避免繁多的指令格式  只有规范的LOAD/STORE方式 优点:指令系统的精简化,基于RISC的CPU面积变小,其功耗也降低。ARM、MIPS

 

三、ARM 指令结构

  • 冯诺依曼体系与哈佛体系

ARM7为冯诺依曼(VON NEUMANNH)体系结构,其主要特点是低功耗,3级流水线作业,每秒种可处理0.9百万条指令,高密度32位ARM指令集兼容16位的THUMB指令集。可应用于有低价位,低功耗要求的工业控制,手机等设备。

ARM9为哈佛(HARVARD)体系结构,其主要特点是低功耗,5级流水线作业,每秒种可处理1.1百万条指令,高密度32位ARM指令集兼容16位的THUMB指令集,存储管理单元(MMU),指令高速缓冲(INSTRUCTION CACHE)和数据高速缓冲(DATA CACHE)。另外,ARM9E还具有DSP和JAVA的功能,可应用于数码相机,数码摄像机和无线设备。ARM9为哈佛体系结构,可并行处理,每秒种处理的指令比ARM7多了20万条。

 

下图是两种体系结构下CPU读取数据的时序图,可以很明显的看出ARM9的优势。

冯诺依曼和哈佛体系结构下读取数据时序比较图

 

  • ARM处理器模式

ARM处理器有6种工作模式,分别是:

  1. User(无优先级的模式,大部分认为在此模式下运行)
  2. FIQ(当高级别的快速中断申请后进入)
  3. IRQ(当普通的中断申请后进入)
  4. Supervisor(复位后并且软中断指令执行后进入)
  5. Abort(用于处理内存访问冲突
  6. Undef(用于处理未定义的指令)

 

  • ARM寄存器

ARM有37个寄存器,均为32位长,其中一个PC,一个程序状态寄存器(CPSR),5个可存的程序状态寄存器(SPSR),30个通用寄存器。

程序状态寄存器(CPSR,SPSR),如下图。

图1 ARM程序状态寄存器结构

 

每种模式下寄存器的分布情况如下图所示,其中通用寄存器R13为堆栈指针寄存器(SP),R14为链接寄存器,R15为PC(Program Counter)寄存器。

ARM 寄存器分布

 

当带链接操作的分支指令执行完操作后,链接寄存器(LR)的作用是存放返回地址。例如:

        BL Label;   //LR=PC+4,记住返回地址(带链接的分支指令)

        ...

Label:  ADDS R0,R1,R2;
        MOV PC,LR;  //将LR中的返回地址存入PC

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜半少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值