0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ARM处理器:“冯·诺依曼”体系结构和“哈佛”体系结构

Q4MP_gh_c472c21 来源:未知 作者:李倩 2018-04-09 14:46 次阅读

保存在存储器中的内容可以是程序,也可以是数据。程序是ARM处理器可以运行的指令代码,数据是指令在运行中用到的操作数或者变量。

1、程序存储

ARM处理器支持两种指令,一种是ARM汇编指令,一种是Thumb汇编指令。ARM汇编指令是32位长,即每条ARM汇编指令都是由四个字节的存储空间保存,所以ARM处理器在执行地址a的ARM汇编指令时,会从地址a + 4取下一条指令。Thumb汇编指令是16位长,即每条Thumb汇编指令都是由两个字节的存储空间保存,所以ARM处理器在执行地址a的Thumb汇编指令时,会从地址a + 2取下一条指令。

ARM处理器可以执行两种格式的指令,运行不同格式的汇编指令在执行和取指方面有很大不同。为了区分,ARM内核可以工作在两种工作状态下。

lARM状态 此时执行32位字对齐的ARM汇编指令。在这种状态下,ARM处理器对指令的存储、读取或者执行都是以一个字(即32位)为基本单位;

lTHUMB状态 此时执行16位半字对齐的Thumb汇编指令。在这种状态下,ARM处理器对指令的存储、读取或者执行都是以一个半字(即16位)为基本单位;

l这两种工作状态可以转换,但转换不影响处理器状态和寄存器的内容。

2、数据存储

ARM处理器对数据操作(读或写)支持三种数据长度:字节(8位)、半字(16位)、字(32位)。假设在地址为0x0000~0x0004的内存空间保存了如图1所示的数据,下面我们以三种数据长度从内存空间读取数据。(假设数据的存储格式是小端存储格式)

图1 内存空间的内容

l字节:从地址0x0000处取一个字节数据,则取出来的内容为12;从地址0x0001处取一个字节数据,则取出来的内容为34;

l半字:从地址0x0000处取一个半字数据,则取出来的内容为3412;从地址0x0001处取一个半字数据,则取出来的内容为5634;

l字:从地址0x0000处取一个字数据,则取出来的内容为78563412;从地址0x0001处取一个字数据,则取出来的内容为9A785634。

需要注意的是,ARM处理器在对数据操作时要边界对齐,要找到正确的地址。在对16位数据操作时,地址数据末位(0)应该为0,在对32位数据操作时,地址数据末两位(1:0)应该都为0。比如上面对字进行操作时,ARM处理器不允许从地址0x0001处读取一个字内容出来。

现在常用的ARM版本中,都不支持非对齐字的传输(ARMv3、ARMv4、ARMv5)。在ARMv6中,开始支持非对齐字的传输。

3、“冯·诺依曼”体系结构和“哈佛”体系结构

说到ARM程序与数据存储,应该讲一下“冯·诺依曼”体系结构和“哈佛”体系结构。因为ARM7系列采用冯·诺依曼体系结构,而ARM9~ARM11采用哈佛体系机构。两种结构描述如下:

“冯·诺依曼”体系结构

20世纪30年代中期,德国科学家冯诺依曼大胆的提出,抛弃十进制,采用二进制作为数字计算机的数制基础。同时,他还说预先编制计算程序,然后由计算机来按照人们事前制定的计算顺序来执行数值计算工作。

冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。

其主要内容是:

l计算机由控制器、运算器、存储器、输入设备、输出设备五大部分组成。

l程序和数据以二进制代码形式不加区别地存放在存储器中,存放位置由地址确定。

l控制器根据存放在存储器中地指令序列(程序)进行工作,并由一个程序计数器控制指令地执行。控制器具有判断能力,能根据计算结果选择不同的工作流程。

“哈佛”体系结构

数字信号处理一般需要较大的运算量和较高的运算速度,为了提高数据吞吐量,在数字信号处理器中大多采用哈佛结构。

哈佛结构特点如下:

l使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;

l具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;

两种结构区别

在典型情况下,完成一条指令需要3个步骤,即:取指令、指令译码和执行指令。从指令流的定时关系也可看出冯.诺曼结构与哈佛结构处理方式的差别。

举一个最简单的对存储器进行读写操作的指令,指令1至指令3均为存、取数指令,对冯.诺曼结构处理器,由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。

如果采用哈佛结构处理以上同样的3条存取数指令,如下图所示,由于取指令和存取数据分别经由不同的存储空间和不同的总线,使得各条指令可以重叠执行,这样,也就克服了数据流传输的瓶颈,提高了运算速度。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9079

    浏览量

    367293
  • ARM处理器
    +关注

    关注

    6

    文章

    360

    浏览量

    41711

原文标题:ARM处理器的程序与数据存储(冯·诺依曼与哈佛结构区别)

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    哈佛结构的比较

    本帖最后由 eehome 于 2013-1-5 09:50 编辑 哈佛结构的比较
    发表于 08-20 23:01

    体系结构和组成

    体系及操作系统
    发表于 06-11 07:09

    ·体系哈佛总线体系的区别是什么

    步骤,即:取指令、指令译码和执行指令。从指令流的定时关系也可看出·结构哈佛
    发表于 07-08 15:39

    你的CPU属于哈佛结构还是结构

    所采用。ARM7——体系结构简单,但速度较慢,取指不能同时取数据。
    发表于 05-11 06:30

    浅析·体系结构

    一.·体系结构1.主要思想如下(1)采用二进制形式表示数据和指令。(2)将程序(数据和指令序列)预先存放在主存储
    发表于 09-16 06:07

    嵌入式微处理器体系结构

    目录一、嵌入式微处理器体系结构1、体系结构2
    发表于 11-08 06:57

    介绍嵌入式微处理器体系结构结构

    嵌入式微处理器体系结构结构:程序和数据共用一
    发表于 12-17 06:04

    嵌入式微处理器硬件体系相关资料推荐

    嵌入式微处理器硬件体系处理器发展过程中,产生了以X86为代表的·
    发表于 12-17 06:32

    ·计算机体系结构缺陷有哪些?

    ·结构的特点是什么?·
    发表于 12-24 07:36

    哈佛结构结构的差别是什么?

    Linux的文件类型有哪几种?哈佛结构结构
    发表于 12-27 06:44

    计算机体系结构是怎样组成的

    计算机体系结构是怎样组成的?微型系统地结构是怎样组成的?
    发表于 02-10 06:15

    浅谈ARM处理器的特点和体系结构

    ARM处理器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、以及Int
    发表于 04-03 11:17 1.7w次阅读

    处理器体系结构

    《微处理器体系结构》适合作为高等院校集成电路设计相关专业工程硕士的教材,并可以作为微处理器硬件与软件设计相关专业高年级本科生和研究生的教材。 《微处理器
    发表于 04-14 10:29 0次下载

    CPU采用的是哈佛结构还是结构

    领域,我们的手持设备(平板手机用的大多就是他了)。 01·体系 ·
    的头像 发表于 04-25 16:45 1.3w次阅读
    CPU采用的是<b class='flag-5'>哈佛</b><b class='flag-5'>结构</b>还是<b class='flag-5'>冯</b><b class='flag-5'>诺</b><b class='flag-5'>依</b><b class='flag-5'>曼</b><b class='flag-5'>结构</b>?

    嵌入式微处理器体系结构 嵌入式微处理器原理与应用

    部组成和相互连接的方式。常见的嵌入式微处理器体系结构主要包括·
    的头像 发表于 05-04 16:53 2112次阅读