为啥MCS-51单片机的程序存储器和数据存储器共处同一地址空间而不会发生总线冲突

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥MCS-51单片机的程序存储器和数据存储器共处同一地址空间而不会发生总线冲突相关的知识,希望对你有一定的参考价值。

编写代码后,不管是汇编还是C代码都会被编译器,编译为机器代码,机器代码中包括操作码和操作数。
而在读取程序存储器和读写数据存储器的内容
可以简单的说成是操作数.
如果在操作
程序存储器

读写数据存储器
的操作数相同.
而操作码不相同。这样就不会发生总线冲突了!
参考技术A

MCS-51 单片机的存储器,是哈佛结构。

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。

哈佛结构的主要特点是将程序和数据存储在不同的存储空间中。

即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。

所以,程序存储器和数据存储器,并非是共处同一地址空间。

另外,“总线冲突”是什么? 

看不懂。也没有听说过。这是你自己发明的吗?

80x86 是冯诺依曼结构,程序和数据,都是存放在同一个存储空间。

即使都存在一起,也没有听说有什么“总线冲突”!


为啥单片机采用哈佛结构而微机采用普林斯顿结构。

这两种结构我知道,我想问的是为什么,这两种方式的各自的优缺点是什么?

哈佛结构是为了高速数据处理而采用的,因为可以同时读取指令和数据(分开存储的)。大大提高了数据吞吐率。缺点是结构复杂。

通用微机指令和数据是混合存储的,结构上简单,成本低。假设是哈佛结构:你就得在电脑安装两块硬盘,一块装程序,一块装数据,内存装两根,一根储存指令,一根存储数据……
参考技术A 是什么结构要看总线结构的。51单片机虽然数据指令存储区是分开的,但总线是分时复用得,所以顶多算改进型的哈佛结构,呵呵。ARM9虽然是哈佛德,但是之前的版本也还是冯诺结构。早期的X86能迅速占有市场,一条很重要的原因,正是靠了冯 诺依曼这种实现简单,成本低的总线结构。楼上的兄弟有一点说的不确切,现在的处理器虽然外部总线上看是诺依曼结构的,但是由于内部CACHE的存在,因此实际上内部来看已经算是改进型哈佛结构的了。
这个问题21ic上讨论翻了无数个帖子,没有什么定论,见仁见智。
至于优缺点,呵呵,楼上的兄弟说的就比较的明白了。哈佛结构就是复杂,对外围设备的连接与处理要求高,十分不适合外围存储器的扩展。所以早期通用CPU难以采用这种结构。而单片机,由于内部集成了所需的存储器,所以采用哈佛结构也未尝不可。现在的处理器,依托CACHE的存在,已经很好的将二者统一起来了。
参考技术B 控制!MCU-micro controller unit!突出的就是高速控制,区别就在这了,呵呵

以上是关于为啥MCS-51单片机的程序存储器和数据存储器共处同一地址空间而不会发生总线冲突的主要内容,如果未能解决你的问题,请参考以下文章

单片机的程序存储器和数据存储器共处同一地址空间为啥不会发生总线冲突?

单片机的程序存储器和数据存储器共处同一地址空间为啥不会发生总线冲突?

MCS-51单片机存储地址空间划分

MCS-51单片机拓展存储器的设计

MCS-51单片机拓展存储器的设计

MCS-51系列单片机是属于啥体系结构