存储器是微控制器的重要组成部分,不同类型的微控制器其采用的存储结构与容量不尽相同,但存储器的用途是相同的,用于存放程序和数据。微控制器中的存储结构有两种基本构成形式。

冯诺依曼结构

冯诺依曼结构也称普林斯顿结构,是一种将程序存储器和数据存储器合并在同一寻址空间中的存储器结构,ROM和RAM指向同一个存储器的不同位置,指令和数据的宽度相同,是通用微型计算机的常用的存储结构。
采用冯诺依曼结构的中央处理器有:Intel公司的8086及其系列处理器、ARM公司的ARM7、MIPS公司的MIPS处理器等。

哈佛结构

哈佛结构是对冯诺依曼结构的改进和完善,是一种将程序存储和数据存储分为两个寻址空间的存储器结构,程序和数据分开存储,可以使指令和数据有不同的数据宽度,是微控制器常用的数据结构。具有较高的执行效率。
采用哈佛结构的微控制器有:Microchip公司的PIC系列芯片,摩托罗拉公司的MC68系列、Atmel公司的AVR系列和ARM公司的ARM9、ARM10和ARM11,8051微控制器也属于哈佛结构。

冯诺依曼结构和哈佛结构总结

首先区分二者最本质的是看存储器,若数据存储器和程序存储器分开则为哈佛结构,反之则为冯诺依曼结构。因为只有一个存储器,而同一存储器中的所存放内容宽度必然相同,所以冯诺依曼结构的程序指令和数据的宽度相同。而哈佛结构有两个存储器,不同的存储器所存放内容的宽度可以不同,所以哈佛结构中指令和数据有不同的数据宽度。
执行效率方面,哈佛结构的执行效率要高于冯诺依曼结构。冯诺依曼结构指令和数据是共享一根总线,这就意味着在执行命令时,冯诺依曼结构要先通过总线读取指令,读取完成后再根据指令对数据进行操作。每一次都是操作都是先指令后数据,不能同时进行取指令和操作数据。而哈佛结构则不同,它的两个存储器分开,有两根总线,可以在读取指令的时候对数据进行操作,二者同时进行,所以效率较高。
冯诺依曼结构:1. 程序存储器和数据存储器为同一个存储器2. 指令和数据宽度相同
哈佛结构:1. 程序存储器和数据存储器分开2.指令和数据宽度不同3.执行效率较高

STM32系统结构

STM32F103微控制器内部通过多层次AHB(先进高速总线)相互连接,如图

Cortex-M3采用哈佛结构,所以STM32为程序指令提供独立的指令总线(ICode)用于连接闪存。其中FLITE用于支持指令预存,具有预取缓冲区的读接口、Flash编程和擦除操作、读写保护操作等功能。

Cortex核心和DMA单元都可以作为总线主设备,当它们同时访问SRAM、外设总线时,需要使用总裁器进行仲裁使用总线的的设备。总线矩阵用于仲裁处理器核心和DMA访问,连接有4个主总线:DCode、System(S-bus)、两个DMA总线。

总线矩阵还连接了4个从总线,用于连接内部SRAM、内部闪存(FLITE)、可变静态存储控制器(FSMC,用于连接外部存储器)以及AHB-APB转换桥。AHB-APB转换桥通过两个先进外设总线APB连接所有外设。APB2可以全速工作于72MHz工作频率,但APB1限制为36MHz,整个系统的时钟管理通过RCC模块实现。

简单地可以记忆为STM32系统结构由总线矩阵及其通过总线连接的各部分组成。包括4个主总线和4个从总线,4个主总线中DCode、System(S-bus)连接Cortex-M3核心,两个DMA总线连接DAM1、DMA2;4个从总线分别连接内部SRAM、内部闪存、外部存储器和AHB转换桥。AHB转换桥又通过APB1和APB2连接外设。

哈佛结构与冯诺依曼结构(含STM32系统结构解析)相关推荐

  1. 哈佛结构和冯诺依曼结构?STM32属于哈佛结构还是冯诺依曼结构?

    现代的CPU基本上归为冯诺伊曼结构(也成普林斯顿结构)和哈佛结构. 冯·诺依曼体系 冯·诺依曼体系结构图如下 冯诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构.数 ...

  2. STM32属于哈佛结构还是冯诺依曼结构?

    目录 01.冯·诺依曼体系 02.哈佛体系 03.arm和哈佛.冯·诺依曼的关系 04.实际芯片制造 现代的CPU基本上归为冯诺伊曼结构(也成普林斯顿结构)和哈佛结构. 冯洛伊曼结构就是我们所说的X8 ...

  3. 哈佛结构和冯诺依曼结构

    已剪辑自: https://zhuanlan.zhihu.com/p/136748306 1946年,第一台计算机ENIAC诞生,人类进入计算机时代,后来,美籍匈牙利数学家:冯.诺依曼提出了计算机&q ...

  4. 哈佛结构和冯诺依曼结构的区别(3)

    冯诺依曼体系结构与哈弗体系结构的区别 材料一:        哈佛结构是一种将程序指令存储和数据存储分开的存储器结构.中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数 ...

  5. 哈佛结构、冯诺依曼结构、改进型哈佛结构

    1.冯诺依曼结构 冯诺依曼结构也称普林斯顿结构,程序指令和数据存放在同一个存储器中,因此数据和指令的长度必须相同. 2.哈佛结构 哈佛结构数据存储和程序存储在不同的存储器中,每一个存储器独立编址,独立 ...

  6. 哈佛结构和冯诺依曼结构区别。

    哈佛结构是一种将程序指令存储和数据存储分开的存储器结构.中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储 器中读取数据,并进行下一步的操作(通常是执行).程序指 ...

  7. 统一编址与独立编址、哈佛结构与冯诺依曼结构

    一.什么是IO.什么是内存 1.内存是程序的运行场所,内存和CPU之间通过总线连接,CPU通过一定地址来访问具体内存单元. 随机访问特点. 2.IO(input and output)是输入输出接口, ...

  8. ARM到底是冯诺依曼结构还是哈佛结构

    参考: ARM到底是冯诺依曼结构还是哈佛结构_朱有鹏老师 1. 问题 嵌入式的学习中ARM处理器是主题,这些年产业界除了PC和服务器市场外,以手机.pad.家电控制等为代表的嵌入式领域都被ARM几乎垄 ...

  9. ARM到底是冯诺依曼结构还是哈佛结构?

    问题 嵌入式的学习中ARM处理器是主题,这些年产业界除了PC和服务器市场外,以手机.pad.家电控制等为代表的嵌入式领域都被ARM几乎垄断了.所以学习嵌入式处理器,其实等同于学习ARM.(当然了,近两 ...

最新文章

  1. iOS 使用UI控件的外观协议UIAppearance进行设置默认UI控件样式
  2. Scala学习笔记--Akka
  3. oracle中通过游标实现查询
  4. 并发请求数_nginx如何限制并发连接和请求数?
  5. C语言模拟实现标准库函数之strlen()
  6. npm如何设置淘宝镜像
  7. twisted系列教程十–可以变化的诗
  8. 重构—改善既有代码的设计4——构筑测试体系
  9. 缺失索引自动创建语句
  10. 解决npm install 报错,亲测有效
  11. Android中使用Iconfont图标制作自己的矢量图库
  12. Cesium地形地貌加载
  13. Problem A: 推理出今天是星期几
  14. 补间动画tween.js
  15. POJ 3295 Tautology (模拟法,栈的使用)
  16. php人人商城定时任务,人人商城异步操作菜单示例
  17. java实现报数游戏
  18. PCIE操作基础原理
  19. 叮咚!您有蜡笔射手等五个新的软件,请注意查收哦
  20. 当神经网络的模型还不如决策树的效果好

热门文章

  1. 分享六款原型设计软件,交流协作更便捷
  2. Oracle 计算百分比
  3. 如何在分析崩溃的边缘分析问题
  4. 如何训练好一个神经网络?
  5. documents4j 实现Word文档、xlsx、等格式转换PDF文件
  6. 云安全类型及预防方法
  7. Pcb课程设计2(GD32E230核心板)
  8. excel多窗口显示设置
  9. Docker使用总结
  10. LincSNP:lncRNA相关SNP位点数据库