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

冯诺依曼结构

冯诺依曼结构也称普林斯顿结构,是一种将程序存储器和数据存储器合并在同一寻址空间中的存储器结构,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. 基于javaGUI的文档识别工具制作
  2. Linux笔记:使用Vim编辑器
  3. MySQL的编译安装
  4. Swift - 简单的原生与网页交互
  5. 算法训练营05-二叉树
  6. oracle中有类似split的方法么,Oracle 实现拆分列数据的split()方法
  7. 程序员熬夜写代码,用C/C++打造一个安全的即时聊天系统
  8. python-模块的嵌套调用-随堂草稿件
  9. PageHelper测试分页插件
  10. c# 获取路径的盘符_C# IO操作之 如何玩转路径
  11. 网站被挂黑链是什么原因,如何解决挂黑链问题!
  12. lvgl 笔记(3)-中文字库的制作和使用(windows模拟和esp32)
  13. SecureCRT无法使用Zmodem上传下载文件
  14. 迅捷pdf在线转换html,如何把PDF转换成HTML?迅捷PDF转换器
  15. Python网络爬虫数据采集实战:基础知识
  16. ACM、OI、IOI编程竞赛模式介绍
  17. PreparedStatement.addbatch()的使用
  18. qq小程序绑定服务器,QQ小程序 用户信息
  19. OTA升级常见问题及流程
  20. Android NDK入门教程之快速定位Crash问题

热门文章

  1. [HNOI2002] 沙漠寻宝题解
  2. 突发奇想 之 古玩中的代码
  3. 蓝桥幼儿园(蓝桥杯)
  4. JS 如何清除页面缓存
  5. 如何制作一个U盘启动盘和重装window系统
  6. git 查看自己秘钥_Git秘钥问题
  7. 跨境电商推广干货:掘金东南亚和这几个推广平台
  8. 人体属性检测与深度实战
  9. 图片抖动的效果(修改后)
  10. c语言void结尾,C语言中void*详解及应用