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

article/2025/8/30 4:51:19

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

冯诺依曼结构

冯诺依曼结构也称普林斯顿结构,是一种将程序存储器和数据存储器合并在同一寻址空间中的存储器结构,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连接外设。


http://chatgpt.dhexx.cn/article/Ea2BMdpS.shtml

相关文章

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

目录 01、冯诺依曼体系 02、哈佛体系 03、arm和哈佛、冯诺依曼的关系 04、实际芯片制造 现代的CPU基本上归为冯诺伊曼结构(也成普林斯顿结构)和哈佛结构。 冯洛伊曼结构就是我们所说的X86架构,而哈佛结构就是ARM架构。一个广泛用于桌面端…

哈佛体系结构

哈佛机:为数据和程序提供了格子独立的存储器。 程序计数器只指向程序存储器,而不指向数据存储器,这样的的后果是很难再哈佛机上编写出一个自修改的程序。独立的程序存储器和数据存储器为数字信号处理提供了较高的性能。结构如下图所示&#x…

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

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

什么是冯诺依曼结构、哈佛结构、改进型哈佛结构?

冯诺依曼结构 冯诺依曼结构,又称为普林斯顿体系结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。取指令和取操作数都在同一总线上,通过分时复用的方式进行;缺点是在高速运行时,不能达到同时取指令和取…

哈佛结构和冯诺依曼结构

已剪辑自: https://zhuanlan.zhihu.com/p/136748306 1946年,第一台计算机ENIAC诞生,人类进入计算机时代,后来,美籍匈牙利数学家:冯.诺依曼提出了计算机“存储程序”的计算机设计理念,即将计算机指令进行编码…

冯·诺依曼、哈佛、改进型哈佛体系结构解析

在如今的CPU中,由于Catch的存在,这些概念已经被模糊了。个人认为去区分他们并没有什么意义,仅作为知识点。 哈佛结构设计复杂,但效率高。冯诺依曼结构则比较简单,但也比较慢。CPU厂商为了提高处理速度,在C…

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

目录 一、哈佛结构 二、冯诺伊曼结构 三、哈佛结构和冯诺伊曼结构对比 一、哈佛结构 哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存…

哈佛架构和冯诺依曼架构

一、两种架构的介绍 1.哈佛结构是一种将程序指令的存储与数据的存储分开的存储器结构。首先,CPU在程序指令存储器中读取程序指令内容,解码后获得数据地址,然后在相应的数据存储器中读取数据,并进行下一步操作。指令存储和数据存储…

2021-05-28

嵌入式--深入理解单片机(一)单片机程序是如何运行起来的以及单片机的ROM和RAM 目录 一、两种处理器的结构体系 1、哈佛结构体系(Harvard architecture)2、冯诺依曼结构体系3、两种结构的总结 哈佛结构的优势冯诺依曼结构的优势当前…

冯诺依曼结构和哈佛结构

参考资料: 全面理解冯诺依曼结构和哈佛结构 CPU采用的是哈佛结构还是冯诺依曼结构? 0. 前言 哈佛结构和冯诺依曼结构都是针对于CPU来说的。 1. 冯诺依曼结构 冯诺伊曼结构又称为普林斯顿体系结构,是一种将程序存储器和数据存储器合并在一起…

哈佛结构和冯·诺依曼结构的区别

哈佛结构 (英语:Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作&#xff08…

~isnan函数

一直不明白~的意思,现在实现一把 才知道表示非的意思

isNaN函数的使用方法

isNaN() 函数用于检查其参数是否是非数字值。

c 语言isnan函数,_isnan, _isnanl

_isnan, _isnanl:判断浮点数为 NAN (不是数,Not a Number) int _isnan(double x); int _isnanl(long double x); #include std x:浮点数 ≠0: 参数 x 是 NAN 0: 参数 x 不是 NAN void __fastcall TForm1::Button1Click(TObject *Sender) { d…

JavaScript中的isNaN函数

在ECMAScript中有一个isNaN()函数,再说这个函数之前,会先说一下NaN: (1)NaN:非数值(not a number),是一个特殊的数值,用来表示本来要返回数值的操作数未返回数值的情况。在ECMAScript中&#xf…

Spring学习---(一)原理理解-llt

Spring学习—(一)原理理解-llt 1.IOC控制反转: ​ 由于引进了中间位置的“第三方”,也就是IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠“第三方”了,全部对象的控制权全部上缴…

matlab lltsa函数,【每日一策】Matlab量化交易策略之 LLT原始

策略思路: LLT择时模型,低延迟趋势线,利用最近20个LLT指标数值,大部分LLT呈现上涨(斜率为正),做多;大部分下跌(斜率为负),做空;反向出场。 回测曲线(由Auto-Trader提供回测报告)&…

matlab lltsa函数,带平方根的(LLT)Cholesky算法分解对称正定矩阵 c语言实现 - 数学 - 小木虫 - 学术 科研 互动社区...

xiuyouxu 建议找一本数值分析的书看一下,里面有具体的算法,我以前实现过,其他语言的,没有用c语言做过. 舒马诺 引用回帖: xiuyouxu at 2012-05-03 21:28:11: 建议找一本数值分析的书看一下,里面有具体的算法,我以前实现过,其他语言的,没有用c语言做过. # include # include v…

python 趋势线计算式_LLT指标-低延迟趋势线对中证500的python复现过程

大家好,我是上海大侠 看了半个小时的研报和视频,对具体实现过程含糊其辞,表述不清,模糊重点,甚至还有多处写错 本着知识开源的想法,我将我的探索过程公开,以期给同样在这条路上摸索的朋友节省一点走弯路的力气 废话先不多讲,我是个喜欢在本地数据上运行代码的男人,因为…

根据《LLT低延迟趋势线与交易性择时 短线择时策略研究》的python模型 策略开发

《低延迟趋势线与交易性择时短线择时策略研究》  传统移动平均线(MA)的缺点 移动平均线(MA)是技术分析中常用的一类趋势跟踪指标,其可以在一定程度上刻画股票价格或指数的变动方向。MA 的计算天数越多,平…