现代CPU基本分为冯·诺依曼结构(又称普林斯顿结构)和哈佛结构。vonLeumann架构就是我们所说的X86架构,Harvard架构就是ARM架构。一种广泛应用于桌面(台式机/笔记本/服务器/工作站等),另一种在移动领域占主导地位,我们的手持设备(大部分用于平板/手机)。01冯诺依曼系统冯诺依曼系统结构图如下冯诺依曼系统的特点:A.数据和指令存储在同一个存储区,指令和数据使用同一条数据总线取数据。B.被大多数早期计算机采用。C、ARM7——冯·诺依曼架构简单,但速度较慢。取指令不能同时取数据。冯·诺依曼结构,又称普林斯顿结构,是一种结合了程序指令存储器和数据存储器的存储器结构。程序指令存储地址和数据存储地址指向同一内存的不同物理位置,因此程序指令和数据具有相同的宽度。例如Intel的8086中央处理器的程序指令和数据都是16位宽。冯·诺依曼结构处理器具有以下特点:1:必须有内存;2:必须有控制器;3:算术逻辑运算必须有运算器;4:必须有输入设备和输出设备,用于人机交流。此外,程序和数据统一存储,在程序控制下自动工作。冯·诺依曼架构:Intel的8086。其他来自IntelCorporation的CPU。ARM的ARM7。MIPS公司的MIPS处理器。02哈佛系统哈佛系统结构图结构特点:A.程序存储器与数据存储器分离。B.提供大内存带宽,各有自己的总线。C.适用于数字信号处理。D.大多数DSP都是Harvard结构。E.ARM9为哈佛结构。取指令和取数据在同一个周期内进行,以提高速度和改进哈佛架构。分为程序、数据、程序和数据共享三个存储区。哈佛结构是一种内存并行架构。主要特点是程序和数据存放在不同的存储空间,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立寻址,独立访问。程序指令存储和数据存储分离,允许指令和数据具有不同的数据宽度。哈佛结构基本上可以解决取指令和取数的冲突。要访问另一个操作数,只能使用增强型哈佛结构。比如像TI一样,数据区又被拆分,增加了一组总线。或者像AD一样,使用指令缓存,部分数据可以存放在指令区。哈佛结构:1.ARM(arm7除外)2.大多数DSP哈佛结构在动态加载程序上有一个致命弱点。想象一下,我们从外部存储器读取一个程序并将其加载到RAM中。这个程序在数据存储器中,我们需要一种机制将数据存储器转移到程序存储器中,这增加了设备的复杂性。对于一个多任务操作系统来说,管理程序内存是一件非常重要的事情,光是保护模式下的页面映射机制就已经足够复杂了。如果还要求把程序和数据分开管理,复杂度会非常大。太高。这时候,冯诺依曼架构就有了很大的优势。03arm与哈佛和冯诺依曼的关系哈佛架构旨在让CPU从缓存中取指令。指令和数据在主存中没有分离,而是在加载到缓存中时分离为指令和数据。CPU可以同时从缓存中取指令和数据。因此,arm系统CPU(arm7除外)对外表现为冯诺依曼架构,对内表现为哈佛架构。04实际芯片制造事实上,绝大多数现代计算机都采用所谓的“改进的哈佛架构”,其中指令和数据共享相同的地址空间,但缓存是分开的。可以说是两种架构的折衷。现实世界中很少有非常纯粹的概念,尤其是在实际应用中。教材中的模型大多是理想化的模型,容易抓住某个概念的重点和本质,但在实践中很难达到这种理想化的状态。哈佛结构和冯诺依曼结构的主要区别在于是否区分指令和数据。这是教科书中两种截然不同的方法。但实际上,在内存中,指令和数据是在一起的。在CPU中的缓存中,还是有指令缓存和数据缓存之分的。当它最终执行时,指令和数据来自两个不同的地方。你可以理解为CPU外部采用的是冯诺依曼模型,而CPU内部采用的是哈佛结构。大多数DSP都没有cache,所以直接是Harvard结构。哈佛的结构设计复杂,但效率高。冯诺依曼结构更简单,但也更慢。为了提高处理速度,CPU制造商增加了CPU中的高速缓存。同样基于同样的目的,区分了指令缓存和数据缓存。有时候为了解决实际问题,什么主义真的没有那么重要。因此,我个人认为争论哪种结构意义不大。
