35680|94

58

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM8是冯诺依结构还是哈佛结构? [复制链接]

看了看STM8S的指令手册,发现比AVR 慢了好多。
0.9MPS的性能估计STM8S不是哈佛结构的吧?

好比
STM8的INC要4 cycles,
AVR的INC是1 clocks.
STM8竟然有DIV指令,16 cycles.而MUL指令是4 CYCLES.
AVR只有MUL整数乘法指令,是2 CLOCKS!

STM8的中断返回IRET要11 CYCLES
而AVR的RETI只是4-5  CLOCKS

STM8的RRC移位要4 cycles
AVR 的RCR移位要1 cycles

还有开发软件又没有免费的无限制版的C编译器,或好的IAR D版。
芯片销售--价格未公开,

开始对STM8S有点失望了啊!!
此帖出自stm32/stm8论坛

最新回复

os2
只听说过,哈佛结构,普里斯顿结构。所有的计算机都是冯诺依曼结构吧?  详情 回复 发表于 2012-8-5 12:01
点赞 关注(1)
 

回复
举报

58

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 据我所知应是哈佛的,但我现在用STM8S103K开发点东东,下载不了,我SWIM波形都给到了,但响映,闷
此帖出自stm32/stm8论坛
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

板凳
 


STM8是冯诺依曼结构,即它的数据空间和地址空间是不分开的,同时STM8在传统的冯诺依曼结构增加了一个三级流水线。 (此处有误,请看13楼的更正)

STM8是CISC指令集,而AVR是RISC指令集,所以不能简单地比较某个指令的执行时间,就断言谁快谁慢。

RISC指令集的特点就是减少指令的数目,减小每条指令执行的时间,达到简化硬件设计提供工作频率的目的。很多CISC的指令,在RISC指令集中没有单一的指令对应,所以往往需要多条RISC指令才能完成一条CISC指令的功能,比如你提到的DIV指令。

关于STM8的INC指令,并不都是最长的4个周期,最短的只要1个时钟周期(请看下面的表格)。更进一步地,STM8有非常丰富的寻址方式,可以在一条指令中直接对RAM中的变量进行操作并把结果存回RAM,比如下表中的倒数第2条指令格式,它是一个长基址变址指令,通过改变下标寄存器X的内容,可以直接操作一个数组,我相信对于RISC指令集来说,这样的操作需要更多条指令,综合起来两者应该差不了多少。

STM8S_INC.GIF (32.92 KB)

STM8S_INC.GIF

此帖出自stm32/stm8论坛
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 顶。。。
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
上表中只有哪些需要使用间接寻址的指令才是4个周期,而多数的操作格式只需要1个时钟周期。

对于这些使用间接寻址的指令格式,我相信在RISC指令集下,需要更多指令(>4条)才能实现相同功能。

上面提到的表中的倒数第2条指令格式,对应到C语句如下:
  var[X]++

楼主可以比较一下,这样的操作在AVR中需要几条指令,需要多少周期?
此帖出自stm32/stm8论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
CISC和RISC的效率差不多。

RISC也只有对寄存器的操作是单周期,
涉及到RAM的操作都是多周期。
通常,RISC一个运算包括读入数据+运算+写出数据,
包括2或3条指令
此帖出自stm32/stm8论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

7
 


其实所谓的RISC目的就是让指令精简---- 最终实现单周期运行。
MCU的核结构也是多总线结构,例如多条 数据总线、多条指令总线,目的就是为了减少数据传输瓶颈,总线冲突和占用。最终实现单时钟周期运行。甚至多线程运行。
那个CORTEX-M3就号称1.25MIPS。而ARM7是0.9MIPS.ARM9好像是1MIPS吧?

现在的COMS工艺都已经是8层高K金属,多总线设计已经不是什么很难的事情了。这更有利RISC的设计。
其实CISC同样可以使用多总线设计,同样可以单周期运行,同样可以使用流水线设计等等。

就好比RISC 已经与谓的DSP没什么区别的了,而所谓的DSP也就是个RISC.

如果不计较成本DIV除法指令照样可以单周期实现,不过电路就庞大了,这个肯定不划算了。

这样看,STM8  连 C8051的技术都不如了! 跟AVR明显是有距离的。彼此的指令手册都列出来了时钟数,
电工一看就知道。

做个比喻,STM8是ARM7的水平。 AVR是CORTEX-M3的水平。
差了一代技术啊!
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

8
 
关键是STM8它的工艺,是0.13uM的。
架构其实一点不重要。RISC主要是便于C等高级语言的编译。
AVR的性能指标是8bit的王者,但性价比未必是。PIC性能落后那么多年,不也占了头把交椅。
而且STM8的SRAM比传统的MCU还是多了很多。
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

9
 
                                 一般的冯诺依结构不支持中断嵌套,不知道stm8支持多少级嵌套。一直想整个板子试试,呵呵,还没有机会去做这个事情。
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 我刚刚看了你们的中文手册,翻译的可是哈佛结构的,到底哪个对啊。
此帖出自stm32/stm8论坛
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

11
 
                                 另外,很多软件有支持stm8s的isp,不知道如何设置,手册上没看到相关说明。
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

12
 
一般的冯诺依结构不支持中断嵌套,不知道stm8支持多少级嵌套。一直想整个板子试试,呵呵,还没有机会去做这个事情。
能不能中断嵌套和冯/哈结构没有直接关系,而仅取决于其具体的中断子系统的结构。
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

13
 


先更正一点,STM8使用的是带三级流水线的哈佛结构,而不是冯诺依曼结构。

看了半天也没有明白7楼的“STM8  连 C8051的技术都不如”是根据什么下的结论,Netjob的分析即没有理论根据,也没有实际的测量数据和具体的指令分析。在楼主位Netjob提出了一些STM8和AVR具体指令的对比,我给出了INC指令的分析,指出STM8的INC指令具有更高的效率,不知道你能否认同?

作为8位核心,STM8能够达到0.83DMIPS/MHz,接近ARM7的0.9DMIPS/MHz,是一个非常好的核心。7楼的比喻“STM8是ARM7的水平。 AVR是CORTEX-M3的水平”,请问你有具体的测量数据吗?空口无凭可是没有说服力的。

STM8S_Arch.GIF (21.7 KB)

STM8S_Arch.GIF

此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
能不能中断嵌套和冯/哈结构没有直接关系,而仅取决于其具体的中断子系统的结构。

这个我不太知道,因为我接触到的msp430和arm7是不支持中断嵌套的,而我用的stm32,51,pic,ti的dsp是支持的。
我没研究过结构和中断的关系,具体怎么做的不清楚,只能是根据现在有的cpu说这个事情,呵呵 ,别见怪。
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

15
 
                                 在这争论这些我觉得意义都不大,不是为了搞学术科研,都是为了打工赚钱或者自己当老板做产品赚钱,关乎实际的是,STM8这么好的片子,居然没有好的调试器,比如cm3的jlink和流行的被熟知的编译器厂商的支持,在国内如果没有D版的话不管软件还是硬件都很难推广的,这是实际情况。
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

16
 
                                 午夜霓虹是哪来的啊,msp430怎么会不支持中断嵌套呢?pic的也能叫中断嵌套?哎。
此帖出自stm32/stm8论坛
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

17
 
汗~
午夜霓虹,你的那些“推论”错的太离谱了哦~
此帖出自stm32/stm8论坛
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

18
 
                                 STM8有4个中断嵌套级别。
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

19
 
再来看看楼主提到的其它几条指令:
STM8的中断返回IRET要11 CYCLES
而AVR的RETI只是4-5  CLOCKS

STM8的RRC移位要4 cycles
AVR 的RCR移位要1 cycles


STM8的中断返回指令恢复了9个8位寄存器的内容,大大减少了中断程序中使用指令的数目,虽然中断返回指令时间略长,但总体的中断程序时间并不长。
STM8_IRET.GIF

再看RRC指令,与我前面分析的INC指令相同,它有丰富的寻址方式,可以直接对RAM中的数据进行操作,而不必把数据Load到寄存器中,操作完成后再存回RAM。比如我在下表中用红线圈出的指令,可以直接对任意地址的数据进行直接移位操作,只需要一个时钟周期,AVR的指令能做到吗?
STM8_RRC.GIF

再看楼主提到的除法指令,它使用的时钟周期是由操作数变化的,介于2~17周期之间,如果做一个除以0x01的操作,只需要2个周期,最长的是除以0xFF的操作,需要16个周期。如果在运算过程中有中断发生,则会多出一个周期,所以手册上给出了2~17周期的数据。
STM8_DIV.GIF
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

20
 
                                 我用过msp430的149,当进入一个中断的时候必须把中断许可关掉,怎么嵌套其他的中断啊。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表