如果采用哈佛结构处理以上同样的3条存取数指令 , 如下图所示 , 由于取指令和存取数据分别经由不同的存储空间和不同的总线 , 使得各条指令可以重叠执行 , 这样 , 也就克服了数据流传输的瓶颈 , 提高了运算速度 。哈佛结构强调了总的系统速度以及通讯和处理器配置方面的灵活性 。
图 哈佛结构处理器指令流的定时关系示意图
总得来说 , 哈佛机构的高性能体现在在单片机、DSP芯片平台上运行的程序种类和花样较少 , 因为各个电子娱乐产品中的软件升级比较少 , 应用程序可以用汇编作为内核 , 最高效率的利用流水线技术 , 获得最高的效率 。
冯诺依曼结构主要是基于电脑购买者对电脑的使用途径不同----各种娱乐型用户、各种专业开发用户等 , 且安装的软件的种类繁多 , 升级频繁 , 多种软件同时运行时处理的优先级比较模糊 , 因特尔芯片不具备彻底智能分配各程序优先级和流水线的机制 , 机械的分配优先和流水线反而容易使用户不便 。
比如 , 你使用电脑过程中对暴风影音播放器的使用中 , 有时希望它最快打开 , 有时希望它的打开实在打开浏览器之后 , 因此人对个人电脑的软件使用习惯是很不同的 。从而 , 致力于提高主频和缓存的冯诺依曼结构才是PC的最佳选择 。
三、总结
体系结构与采用的独立与否的总线无关 , 与指令空间和数据空间的分开独立与否有关 。51单片机虽然数据指令存储区是分开的 , 但总线是分时复用得 , 所以属于改进型的哈佛结构 。ARM9虽然是哈佛结构 , 但是之前的版本(例如ARM7)也还是冯.诺依曼结构 。早期的X86能迅速占有市场 , 一条很重要的原因 , 正是靠了冯.诺依曼这种实现简单 , 成本低的总线结构 。现在的处理器虽然外部总线上看是诺依曼结构的 , 但是由于内部CACHE的存在 , 因此实际上内部来看已经类似改进型哈佛结构的了 。至于优缺点 , 哈佛结构就是复杂 , 对外围设备的连接与处理要求高 , 十分不适合外围存储器的扩展 。所以早期通用CPU难以采用这种结构 。而单片机 , 由于内部集成了所需的存储器 , 所以采用哈佛结构也未尝不可 。现在的处理器 , 依托CACHE的存在 , 已经很好的将二者统一起来了 。