1. 现在RISC架构的单片机,哈佛结构有什么特点
risc
因为指令集的精简,所以许多工作都必须组合简单的指令,而针
对较复杂组合的工作便需要由‘编译程式’(compiler)
来执行,而
cisc
mcu
因为硬体所提供的指令集较多,所以许多工作都能够以一个或是数个指令来代
替,compiler
的工作因而减少许多。以一个数值运算程式来说,使用
cisc
指
令集的
mcu
运算对于一个积分运算式可能只需要十个机器指令,而
risc
mcu
在执行相同的程式时,却因为
cpu
本身不提供浮点数乘法的指令,所以可能需
要执行上百个机器指令
(但每一个指令可能只需要
cisc
指令十分之一的时
间),而由程式语言转换成机器指令的动作是由程式语言的
compiler
来执行,
所以在
risc
mcu
的
compiler
便会较复杂
。因为同样一个高阶语言
a=b*c
的运算,在
risc
mcu
转换为机器指令可能有许多种组合,而每一种组合的‘时
间/空间’组合都不尽相同。所以
risc
与
cisc
的取舍之间,似乎也是
mcu
硬体架构与软体(compiler)
的平衡之争,应该没有绝对优势的一方,只能说因应
不同的需求而有不同的产品,例如工作单纯的印表机核心
mcu,便适合使用效
能稳定,但单位指令效率较佳的
risc
mcu。
2. 51单片机是冯诺依曼还是哈佛结构
51单片机结构比较老套,是冯诺依曼结构,只能顺序执行,没有哈佛结构的流水线方式。
3. 为什么很多人说8051单片机是哈佛结构
只是一种总线结构
是描述芯片内部的专业名词,不必太介意
主要是会使用和编程才是最重要的
4. 为什么单片机采用哈佛结构而微机采用普林斯顿结构。
哈佛结构是为了高速数据处理而采用的,因为可以同时读取指令和数据(分开存储的)。大大提高了数据吞吐率。缺点是结构复杂。
通用微机指令和数据是混合存储的,结构上简单,成本低。假设是哈佛结构:你就得在电脑安装两块硬盘,一块装程序,一块装数据,内存装两根,一根储存指令,一根存储数据……
5. 51单片机使用哈佛结构,它RAM和ROM的总线是同一套总线分时复用的还是两套总线
由于采用改进型哈佛架构,51单片机具备独立的程序存储器ROM、数据存储器RAM,两者地址空间独立,且独立编址,如下是单片机的存储器结构图。
程序存储器ROM,用于存储用户代码,由于程序计数器PC是16位的,因此系统具备64kB寻址能力,地址空间为0x0000 ~ 0xFFFF,厂商在单片机内部实现一部分程序存储器,例如4kB、8kB,剩余的根据用户需要可以外部扩展。访问程序存储器使用MOVC A, @A + DPTR,MOVC A, @A + PC指令,只能进行读取访问,无法写入。
数据存储器分为RAM和外部RAM,两者地址空间独立,且独立编址。以子系列52为例,由于具备256B寻址能力,编址空间为0x00~0xFF。RAM除了临时存储用户数据外,还用于CPU通用寄存器,位寻址区,堆栈等。可以使用MOV指令对RAM进读写访问。外部RAM具备64kB寻址能力,用于用户临时数据存放,但是需要用户外部扩展。可以使用MOVX指令访问外部RAM,外部RAM访问由地址总线触发,数据总线读写,P0、P2用于生成16地址,P0还时分复用兼用于数据总线。
SFR属于特殊寄存器区,它既不属于ROM,也不属于RAM,地址空间为0x80~0xFF,只能以直接寻址方式访问,是片上外设的核心控制区域和输入输出的咽喉要塞。它是用来配置外设的工作参数的,属于外设寄存器,例如串口波特率、收发控制,定时器定时时间、模式,中断系统中断使能、优先级等。
学习一种单片机或者微控制器,首先了解它的架构、总线结构,然后熟悉存储器映射图、分区,最后详细研究它的片上外设例如UART、Timer、中断系统以及输入输出电路。根据自己的职业,工作类型,研究不同的层次。
6. 51系列单片机的哈佛结构与通用哈佛结构的不同之处,以及在性能取向上的差别,比如速度与可靠性方面的差别.
单片机的存储体系就是两种结构
冯诺依曼或普林斯顿,数据、程序一体化,结构简化
哈佛,数据、程序分开存储,性能更高
传统51单片机的数据、程序分开存储,从外貌看属于哈佛;
但是51的数据和程序共享同一条总线,不是两条独立的总线,从本质看属于普林斯顿。
老51是Intel发明的,40多年前的事了,沿用计算机传统的普林斯顿是正常的,因此速度也比较慢;
现在STC、C8051F等新型51的总线有了改进,属于哈佛,速度也提升了十几倍。
7. ARM单片机是哈佛结构,还是冯.诺依谩结构.
ARM有许多系列,如ARM7,ARM9,ARM10E,XScale,Cortex等,其中哈佛结构,冯诺依谩结构都有。如控制领域最常用的ARM7系列是冯诺依谩结构,而Cortex-M3系列是哈佛结构。
8. 为什么51单片机存储器要用哈佛结构而不用冯诺依曼结构
哈佛结构,是ROM、RAM分离的。
这种结构,程序,永远不会被修改。
当年,应该是认为比较可靠吧。
在工控领域,干扰较强的环境应用时,比较稳妥。
现在再看,这种结构,可以分别取指和取数据,整体速度可以提高。
而 80x86 系列的,则是冯诺依曼结构,这应该是考虑修改程序方便。
一会玩这个游戏,一会聊QQ,一会感染病毒。