机器字长,存储字长,指令字长及其关系

  • 机器字长:cpu中ALU的输入端位数,由于ALU的输入来源通常是通用寄存器或内部数据总线,故也是通用寄存器位数和内部数据总线根数;同时ALU中运算的是定点数和浮点数,所以也是定点数位数,通常为8位,16位,32位,64位反映的是cpu的运算精度 
  • 存储字长:为cpu向内存取某个地址数据时一次性取走的数据量,可理解每行/个地址所拥有的数据量,通常为1B,2B,4B。为外部数据总线根数,通常机器字长为存储字长的整数倍,如1倍,2倍等(也就是机器字长比存储字长大,因为一个能处理32位定点数的cpu必然能处理16位,8位的在主存中的一个定点数,而8位cpu位数处理不了16位定点数)。且决定MDR寄存器位数
  • 指令字长:是单指令的长度(指令字长可以为双,单,半存储字长指令),若指令字长为双存储字长,则取指时需访问主存2次,指令字长决定IR寄存器位数

  • 注意:指令字长可以是存储字长的0.5,1,2等倍,机器字长可以是存储字长的1,2,4等倍,但指令字长和机器字长两者本身无必然倍数关系即互不影响,只是恰巧各自与存储字长有倍数关系。因为机器字长强调的是参与ALU运算的定点数位数,而定点数位数显然与指令长度也就是指令字长无关。且机器字长,存储字长,指令字长都必须是8bit即1Byte的整数倍,也就是当存储字长为1Byte时,指令字长最小也要1Byte,而不能取0.5倍,而当前者为2Byte时,后者最小可为1Byte

  • MAR位数由地址个数决定,地址个数=主存空间大小/存储字长,本题中地址个数=128KB/2B=64K(16位)因为题干提示 按字编址(字为16位即2B,且“字”默认为存储字长且与机器字长相同)
  • MDR位数由存储字长决定

  • 若无特别说明,计算机字长指的是存储字长(经评论区提醒,修改为:计算机字长默认指的是机器字长,,,但我要解释一下,我做忘了是哪年某年408试题的时候,题干的描述给我的感觉是计算机字长是存储字长,而这篇文章就是当时做题的时候记录下的,,,现在来看计算机字长是一个比较令人困惑的东西,没发现有哪篇文章说计算机字长就是存储字长或机器字长的,本身就是个混合怪吧),且默认其与机器字长相同,就算不相同也不影响计算,因为32位cpu,必然能处理32位,16位,8位等定点数,最多影响通用寄存器位数和cpu内部数据总线根数
  • 104
    点赞
  • 389
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值