搜索
bottom↓
回复: 8

关于avr怎么用1个时钟周期处理16位和32位指令的问题

[复制链接]

出0入0汤圆

发表于 2014-7-30 00:10:34 | 显示全部楼层 |阅读模式
今天看了马潮老师的《AVR单片机嵌入式系统原理与应用实践》,有个问题百思不解。
问题是:ATmega16是8位单片机,说明数据总线宽度是8位的,也就说明CPU做一次基本运算的字符处理能力是8位数据,那么马潮老师书中所说,AVR的一条指令是16位,甚至是32位,这个8位的CPU是怎么在一个时钟周期里处理16位甚至是32位的指令的??
先谢谢大家了!

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

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

出0入93汤圆

发表于 2014-7-30 06:02:19 | 显示全部楼层
数据总线宽度是8位的,不是所有总线宽度都是8位的。Flash和数据总线是分开的,Flash组织成16位的了,一个时钟周期处理32位指令还得依靠流水线

出0入0汤圆

发表于 2014-7-30 07:28:48 | 显示全部楼层
mark                                 

出0入0汤圆

发表于 2014-7-30 08:08:15 | 显示全部楼层
AVR指令按16位编码,指令16位,有外加数据就是32位。
指令长度和执行周期不是对应的,有单周期指令,也有多周期指令。

再一个,单周期指令也是因为流水线的结构才实现的。

出0入0汤圆

发表于 2014-7-30 08:47:51 | 显示全部楼层
看来你没理解指令的构成啊。指令宽度不等于ALU的宽度啊,只是把指令里面包含的数据送到ALU啊。
指令是 操作码+操作数,难道指令宽度16位就必须对应寄存器宽度16位?51单片机指令从1字节到3字节的都有呢,x86处理器更是乱套了呢。
虽然avr指令宽度是16位或32位,但里面最多包含8位或者16位的立即数,比如向R寄存器写入立即数的指令,32位的指令是向XYZ寄存器写入16位数据而准备的。

在研究stm32的汇编时,经常遇到间接寻址的问题,就是从一个内存或者外设地址进行读写。但这地址是32位的,stm32指令集的也是32位的,要是立即寻址直接把一个32位数据放在R寄存器的话,那指令长度就变成64位了,难道就可以说stm32是64位了?实际不是呢,这代码翻译成汇编的时候,32位的立即数是被放在一个地址里,给R寄存器赋值的汇编语句用了一个间接寻址,从当前PC加上一个偏移的地址中读取32位数据放在R寄存器中,就像51单片机的MOVC A,@A+PC指令一样。

出0入0汤圆

发表于 2014-7-30 09:02:45 | 显示全部楼层
指令是放在flash里的,avr的flash是以字为单位的,所以一个单字指令占一个单位,avr采用流水线操作,一个时钟周期就可以执行一个单字的指令,跟数据总线宽度没关系

出0入0汤圆

发表于 2014-7-30 09:22:26 | 显示全部楼层
之前我也是对这个位数不是很理解,看到大神们的回复。学习了!

出0入0汤圆

 楼主| 发表于 2014-8-7 09:49:10 | 显示全部楼层
XA144F 发表于 2014-7-30 08:47
看来你没理解指令的构成啊。指令宽度不等于ALU的宽度啊,只是把指令里面包含的数据送到ALU啊。
指令是 操作 ...

谢谢!我往后面看了,发现指令中的操作数的位数才是和ALU的字长相关的,指令的位数不应考虑在内

出0入0汤圆

 楼主| 发表于 2014-8-7 09:50:28 | 显示全部楼层
sbk100 发表于 2014-7-30 09:02
指令是放在flash里的,avr的flash是以字为单位的,所以一个单字指令占一个单位,avr采用流水线操作,一个时 ...

我觉得指令是指令,它和ALU的字长无关联,指令中的操作数的位数才和ALU有关联
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-4 02:19

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

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