您的位置 首页 ADAS

【E问E答】51单片机是冯诺依曼仍是哈佛结构

关于这个问题,有人说51地址线复用,就是冯诺依曼结构。很多入门的书上基本上都说:由运算器、控制器、存储器、输入设备、输出设备组成的系统 都叫冯氏结构。也有的说:“程序存储器的数据线地址线”

  关于这个问题,有人说51地址线复用,便是冯诺依曼结构。

  许多入门的书上基本上都说:由运算器、控制器、存储器、输入设备、输出设备组成的系统 都叫冯氏结构。

  也有的说:“程序存储器的数据线地址线”与“数据存储器的数据线地址线”共用的话,就 是冯氏结构,所以51是该结构。(我以为说得太肯定了)

  我以为冯氏结构与哈佛结构的差异应该在存储器的空间分别上,哈佛结构的数据区和代码区是分隔的,它们即便地址相同,但空间也是不同的,首要表现在数据不能够当作代码来运转。(比方51—注)

  口线复用,就将它以为成冯氏结构,我以为这样不足取,应该是依照空间是否彻底重合来辨 别。比方PC机的代空间和数据空间是同一空间,所以是冯氏结构;51因为IO口不行,但代 码空间和数据空间是分隔的,所以仍是哈佛构.(此种观念才是正确的–注)

  别的,还有的把CISC RISC 和地址是否复用与是哪种结构 这3这都混到一同。我以为这三者都没有必定的联系。只不过 RISC因为精简了指令集,没有了履行杂乱功用的指令,为了进步功能,常选用哈佛结构,而且不复用地址线。(这种说法不详细,有待弥补—注)

  资料二:

  哈佛结构是一种将程序指令存储和数据存储分隔的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储 器中读取数据,并进行下一步的操作(通常是履行)。程序指令存储和数据存储分隔,能够使指令和数据有不同的数据宽度,如Microchip公司的 PIC16芯片的程序指令是14位宽度,而数据是8位宽度。

  现在运用哈佛结构的中央处理器和微控制器有许多,除了上面说到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公 司的Z8系列、ATMEL公司的AVR系列和安谋公司的ARM9、ARM10和ARM11,51单片机也归于哈佛结构

  冯·诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器兼并在一同的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理方位,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。

  现在运用冯·诺伊曼结构的中央处理器和微控制器有许多。除了上面说到的英特尔公司的8086,英特尔公司的其他中央处理器、安谋公司的ARM7、MIPS公司的MIPS处理器也选用了冯·诺伊曼结构。

  谈论:哈佛结构和冯.诺依曼结构都是一种存储器结构。哈佛结构是将指令存储器和数据存储器分隔的一种存储器结构;而冯.诺依曼结构将指令存储器和数据存储器合在一同的存储器结构。—–注

  资料三:

  MCS-51单片机有着嵌入式处理器经典的系统结构,这种系统结构在当时嵌入式处理器的高端ARM系列上仍然在连续,这便是哈佛结构。相关于大名鼎鼎的 冯·诺依曼结构,哈佛结构的知名度明显差劲许多,但在嵌入式运用领域,哈佛结构却拥有着肯定的优势。哈佛结构与冯·诺依曼结构的最大差异在于冯·诺依曼结 构的核算机选用代码与数据的一致编址,而哈佛结构是独立编址的,代码空间与数据空间彻底分隔。

  在 通用核算机系统中,运用软件的多样性使得核算机要不断地改变所履行的代码的内容,而且频频地对数据与代码占有的存储器进行重新分配,这种情况下,冯·诺依 曼结构占有肯定优势,因为一致编址能够最大极限地运用资源,而哈佛结构的核算机若运用于这种景象下则会对存储器资源发生理论上最大可达50%的糟蹋,这显 然是不合理的。

  但 是在嵌入式运用中,系统要履行的使命相对单一,程序一般是固化在硬件里。当然这时运用冯·诺依曼结构也彻底能够,代码区和数据区在编译时一次性分配好了而 已,可是其灵活性得不到表现,所以现在很多的单片机也还在沿袭冯·诺依曼结构,如TI的MSP430系列、Freescale的HCS08系列等。

  那 是为什么说哈佛结构有优势呢?嵌入式核算机在作业时与通用核算机有着一些差异:嵌入式核算机在作业期间的绝大部分时刻是无人值守的,而通用核算机作业期间 一般是有人操作的;嵌入式核算机的毛病或许会导致灾难性的结果,而通用核算机一般便是死死机,重新启动即可。这两点决议了对嵌入式核算机的一个基本要求: 可靠性。

  使 用冯·诺依曼结构的核算机,程序空间不关闭,期程序空间的数据在运转期理论上能够被修正,此外程序一旦跑飞也有或许运转到数据区。尽管都是一些不常见的特 殊情况下,可是看看哈佛结构德核算机在这些情况下是怎样的:根据哈佛结构的处理器入MCS-51,不需求能够对代码段进行写操作的指令,所以不会有代码区 被改写的问题;程序只能在关闭的代码区中运转,不或许跑到数据区,这也是跑飞的几率削减而且跑飞后的行为有规则(数据区的数据是不断改变的而代码区是不变 的)。

  所以,相关于冯·诺依曼结构,哈佛结构愈加适合于那些程序固化、使命相对简略的控制系统。

  总结::::::::::

  冯.诺依曼(Von Neumann)指出:程序仅仅一种(特别)的数据,它能够像数据相同被处理,因此能够和数据一同被存储在同一个存储器中——这便是闻名的冯.诺依曼原理。留意:数据总线和地址总线共用。–注

  哈佛结构:

  哈佛结构是一种并行系统结构,它的首要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独 立拜访。与两个存储器相对应的是系统的4条总线:程序的数据总线与地址总线,数据的数据总线与地址总线。这种别离的程序总线和数据总线答应在一个机器周期 内一同取得指令字(来自程序存储器)和操作数(来自数据存储器),然后进步了履行速度,使数据的吞吐率进步了1倍。又因为程序和数据存储器在两个分隔的物 理空间中,因此取指和履行能彻底堆叠。CPU首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一 步的操作(通常是履行)。

  哈佛结构选用数据存储器与程序代码存储器分隔,各自有自己的数据总线与地址总线。但这是需求CPU供给很多的数据线,因此很少运用哈佛结构作为CPU外部 构架来运用。可是关于 CPU内部,经过运用不同的数据和指令cache,能够有用的进步指令履行的功率,因此现在大部分核算机系统都是CPU内部的哈佛结构+CPU外部的冯· 诺伊曼的结构

  ###############################################

  呵呵,当咱们还在研讨啥佛与冯诺依曼的差异的时分

  你却发现实际国际现已含糊了他们的概念,半导体厂商现已将他们揉在了一同, 差不多就行了…

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/210879.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部