2019-12-28 17:49发布
wye11083 发表于 2017-5-15 11:50 只要你地址是对齐的,访问8/16/32时间是一样的,计算时间也是一样的。。
myxiaonia 发表于 2017-5-15 12:08 存取时间确实一样,但是8/16位内部干的活更多,尽管都可以在2个时钟完成 但是和乘除法相关的话,一般原 ...
最多设置5个标签!
请不要误人子弟,在Cortex-M内核里,32位间的运算的效率最高,除非手写汇编采用8位或16位的SIMD运算
存取时间确实一样,但是8/16位内部干的活更多,尽管都可以在2个时钟完成
但是和乘除法相关的话,一般原生位数的数据会有对应的指令进行乘除,但是8/16位就未必有了
所有比较而言,还是用原生位数的数据类型会更好,而且这也是有依据的,比如c++预定义类型site_t就是原生位数的int
错也。对这类RISC内核,所有操作都是基于32位的——它里面根本没有16位/8位流水线单元!有符号数LD时做符号扩展,无符号数直接进,然后32位出来,
所以8b/16b并没有多干任何活,反而在一些场合要做&操作,多消耗一个周期。
什么是RISC?顾名思义,越简单越好。至于数据的组织等等,是编译器干的活。基本上优化得当的话,你8位进来,可以说在出来之前,都是32位数在做运算!
一周热门 更多>