搜索
bottom↓
回复: 10

对某所谓“高速单周期51核”的分析和猜想

[复制链接]

出0入0汤圆

发表于 2010-5-1 00:00:25 | 显示全部楼层 |阅读模式
还在学校时,用51用得最多,当时就很喜欢一些增强型(6T)的51,如philips x2系列,国内某公司的6T系列等。走出校门之后,发现慢慢出现了一些性能更强的51核芯片,如某公司所谓的1T系列,据说可以快上8~12倍,也买来玩过一小阵,但对该指标较怀疑,于是从分析,猜想和测试的角度来探讨一下该核的设计。因涉及硬件设计,所以发在fpga版,如有问题请版主帮手挪窝。
有关于指令的描述资料均出自其官方spec。

首先区分一下memory和register的访问性质:
同步sram的读出:在cycle(n)发出读信号(读使能和地址),cycle(n+1)时在sram的Q端获得读出的数据。
同步sram的写入:在cycle(n)发出写信号(写使能和地址,数据),在当前cycle末的时钟上升沿将数据写入,所以写入只占用cycle(n)这一个周期。
寄存器的读出:在cycle(n)发出读信号,当前cycle就可获得需读的数据。
寄存器的写入:在cycle(n)发出写信号,在当前cycle末的时钟上升沿将数据写入,所以写入只占用cycle(n)这一个周期。


1, 所有指令的执行周期数都不小于指令的字节数。
猜想:物理上code memory宽度为8bit,而没有使用更宽的宽度。

例:mov dptr, #data16           3byte, 3cycle
将16bit立即数送入dptr,这条指令执行过程很简单:从指令码中取得操作数,写入dptr寄存器,如果操作数已准备好,只需要一个cycle就可以完成写入过程,而多余的cycle很可能是用于从code memory中读取操作数。分析执行过程如下:

cycle n: code memory 的Q端出现前一cycle request的数据(op code),组合逻辑对其decode之后,认出是“mov dptr, #data16”指令,于是n和n+1连续读两次code memory,取得操作数。

cycle n+1: Q端出现操作数的第一byte,cpu将其锁存,并发出读后8bit的读信号

cycle n+2: Q端出现操作数的第二byte,cpu将其连同前一cycle锁存的第一byte一起写入dptr寄存器。本条指令至此执行完毕。发出对code memory的读信号,读取下一条指令的第一byte数据。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-5-1 00:01:53 | 显示全部楼层
回复【楼主位】sqdym
-----------------------------------------------------------------------


2,关于几条对a操作的指令的比较
猜想:对关键路径使用multi-cycle约束
例:
inc a                        1byte, 2cycle
clr a                        1byte, 1cycle
cpl a                        1byte, 2cycle
rl a                        1byte, 1cycle
swap a                1byte, 1cycle
这几条都是直接对a操作的指令,对比结果非常有趣,指令码长度相同(1byte),inc/cpl是需要经过alu运算才能获得结果的(加法/异或0xff),需要2cycle完成,而clr/rl/swap是不需要alu运算即可获得结果的(clr直接写0/rl和swap只需构建一条扭转的data path),就只需1cycle完成。于是猜想,可能关键路径在alu,为了获得尽量高的运行频率,需要alu运算的指令就使用了multi-cycle设计, 多等待一个cycle以使alu运算结果稳定后再回写。


待续,有空慢慢想慢慢写了......

出0入0汤圆

发表于 2010-5-1 00:10:36 | 显示全部楼层
好帖,流水线怎么不考虑

出0入0汤圆

 楼主| 发表于 2010-5-1 00:30:08 | 显示全部楼层
我估计是没有使用流水线,因为所有直接或间接寻址memory的指令,没有一条是1cycle完成的。而若有使用流水线的话,只要ex段的回写和of段的读取没有相关性,那么是可以做到1cycle完成的。另外,如果有使用流水线,指令的运行速度提高很多,8bit宽的code memory就会造成取指瓶颈(因为很多指令码大于1byte),就是说,想快又没快彻底,从系统均衡性上来说的话,应该不会这样做。

出0入0汤圆

 楼主| 发表于 2010-5-4 21:57:42 | 显示全部楼层
2b, 对第2点的补充。
第2点中分析了类似的指令,经过/不经过alu运算而导致执行cycle数有差异的问题,除了使用multi-cycle约束之外,也有可能是在alu的输出端增加了一级寄存器,切断组合逻辑path造成的(alu本身是由纯组合逻辑构造的,一般来说path比较长)。这样的结构和使用multi-cycle约束可以达到相似的效果,即可以放松对数据稳定时间的要求,且时序约束更简单(综合时不用特别约束multi-cycle),但逻辑量上可能稍微会大一些(FIFO是很大的)。

出0入0汤圆

 楼主| 发表于 2010-5-4 22:50:13 | 显示全部楼层
3,对Rn的读操作可以在当前时钟周期完成
猜想:共32个的Rn是由独立的寄存器构造的,而不是映射至data ram中实现的。
mov a, Rn 这是为数不多的几条1cycle完成的指令中最特别的一条,因为它需要在1cycle中完成Rn的读出。之前有提到,同步sram的读取,数据需要在下一个cycle才能获得,那么说明Rn在物理实现上并不是sram,只能是寄存器。这点从mov a,@Ri指令(1byte,2cycle)也可以得到证实,只有Rn物理上是寄存器时,才只需要读1次sram而不是读2次,从而在2cycle内完成。问题在于这样的结构需要256bit寄存器来构造Rn,逻辑耗费很大,如果将Rn 映射至data ram中实现的话,可以瘦身很多,代价就是执行周期更长,但这无谓好坏,看designer怎样在时间和空间上取得一个平衡罢了。
有点意外的是,mov Rn, a这条指令,却要耗费2cycle完成,这一点是比较奇怪的,因为mov a, Rn,  mov Rn, a这两条指令的opcode都只有1byte,Rn是隐含在opcode中的,不需要再读另外的operand来指定,并且mov Rn, a是直接将acc的内容写入Rn,也不需经过alu,应该不存在第2点讨论的情形。那么为什么还需要多1个cycle呢?这点实在是很费解,暂无结论。

出0入0汤圆

 楼主| 发表于 2010-5-4 22:51:56 | 显示全部楼层
呵呵,似乎大家对rtl结构设计并没有什么兴趣......

出0入0汤圆

发表于 2010-5-5 11:01:05 | 显示全部楼层
晕,你是看的哪个1T的8051?我这边做的inc a/mov rn,a都是1 cycle啊。

出0入0汤圆

 楼主| 发表于 2010-5-5 21:44:01 | 显示全部楼层
回复【7楼】dickhou
晕,你是看的哪个1t的8051?我这边做的inc a/mov rn,a都是1 cycle啊。
-----------------------------------------------------------------------

STC滴...

出0入0汤圆

 楼主| 发表于 2010-5-5 21:59:21 | 显示全部楼层
还有,1T !== pipeline
stc有混淆概念误导大众的嫌疑,1T只是1个指令周期只消耗1个时钟,但绝大多数指令需要多于1个指令周期来完成。而pipeline结构的51,如果不论跳转引起的流水线阻塞的话,只有lcall和acall两条指令是需要2cycle完成,其余所有指令都只需要1cycle。这两者速度是完全不可同日而语的。

出0入0汤圆

发表于 2010-5-6 11:15:41 | 显示全部楼层
呵呵 围观
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 17:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表