zoukankan      html  css  js  c++  java
  • 冯诺依曼结构和哈佛结构

    哈佛结构是,数据和代码分开存在。

    wps5749.tmp

    冯诺依曼结构是在哈佛结构之后提出的,冯诺依曼提出“代码本身也是一种数据”,解决了哈佛结构的一个问题——总线暂用资源太多。

    冯诺依曼结构是,数据和代码放在一起。

    wps574A.tmp

    首先,通过BIOS(Uboot)将硬盘(Flash)中的程序(数据和代码),全部拷贝到RAM。所以此时

    RAM内部会分为多个段——代码段,date段,bss段等等。这样相比哈佛结构,就节省了一套外部的数据总线和地址总线。

    但是这样也会带来的坏处——速度变慢了。本来数据和代码是分开存储的,他们分别对应“两条高速通道”。现在,数据和代码都放在一起对应“一条高速通道”。

    而随着半导体工业的发展,很多东西可以集成到芯片内部。在芯片内部走线比在PCB外部走线成本要低出很多。

    也就是说,哈佛结构很适合被设计到芯片内部。而冯诺依曼结构仍然存在于芯片外部。

    于是乎,便出现了现在的冯诺依曼和哈佛结构并存的混合式结构:

    wps575A.tmp

    这种结构就是目前ARM的结构,将两种结构扬其长,避其短。其中,芯片内部的cache,表示高速缓存(cache一词据说来自法语,难道cache是法国人发明的?哈哈。)Dcache用来缓存部分代码,icache用来缓存部分数据。只有需要改变时,cache才会到RAM中加载新的数据。所以大部分时间CPU都是通过哈佛结构和cache(高速缓存)通讯,这个速度是非常快的~~

    这样在芯片外部,利用冯诺依曼结构,节省了外部的PCB走线资源。

    在芯片内部,利用哈佛结构提高了CPU访问数据的速度。可谓是两全其美~~

  • 相关阅读:
    bzoj 1086 [SCOI2005]王室联邦——思路
    bzoj 3809 Gty的二逼妹子序列——莫队+分块
    bzoj 3781 小B的询问——分块
    bzoj 3309 DZY Loves Math——反演+线性筛
    洛谷 1079 Vigenère 密码——模拟水题
    洛谷 1082 同余方程——exgcd(水题)
    bzoj2662 [BeiJing wc2012]冻结 ——分层图
    bzoj2242 [SDOI2011]计算器——BSGS
    bzoj1008 [HNOI2008]越狱——快速幂
    bzoj1607 [Usaco2008 Dec]Patting Heads 轻拍牛头——暴力
  • 原文地址:https://www.cnblogs.com/littleKing163/p/4876752.html
Copyright © 2011-2022 走看看