【组成原理】

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

https://blog.csdn.net/qq_34756106/article/details/103524082

  1. 机器字长:cpu中ALU的输入端位数,由于ALU的输入来源通常是通用寄存器或内部数据总线,故也是通用寄存器位数和内部数据总线根数;同时ALU中运算的是定点数和浮点数,所以也是定点数位数,通常为8位,16位,32位,64位反映的是cpu的运算精度

  2. 存储字长:为cpu向内存取某个地址数据时一次性取走的数据量,可理解每行/个地址所拥有的数据量,通常为1B,2B,4B。为外部数据总线根数,通常机器字长为存储字长的整数倍,如1倍,2倍等(也就是机器字长比存储字长大,因为一个能处理32位定点数的cpu必然能处理16位,8位的在主存中的一个定点数,而8位cpu位数处理不了16位定点数)。且决定MDR寄存器位数

  3. 指令字长:是单指令的长度(指令字长可以为双,单,半存储字长指令),若指令字长为双存储字长,则取指时需访问主存2次,指令字长决定IR寄存器位

    注意:指令字长可以是存储字长的0.5,1,2等倍,机器字长可以是存储字长的1,2,4等倍,但指令字长和机器字长两者本身无必然倍数关系即互不影响,只是恰巧各自与存储字长有倍数关系。因为机器字长强调的是参与ALU运算的定点数位数,而定点数位数显然与指令长度也就是指令字长无关。且机器字长,存储字长,指令字长都必须是8bit即1Byte的整数倍,也就是当存储字长为1Byte时,指令字长最小也要1Byte,而不能取0.5倍,而当前者为16Byte时,后者最小可为1Byte
    MAR位数由地址个数决定,地址个数=主存空间大小/存储字长,本题中地址个数=128KB/2B=256K(16位)因为题干提示 按字编址(字为16位即2B,且“字”默认为存储字长且与机器字长相同) MDR位数由存储字长决定
    若无特别说明,计算机字长指的是存储字长,且默认其与机器字长相同,就算不相同也不影响计算,因为32位cpu,必然能处理32位,16位,8位等定点数,最多影响通用寄存器位数和cpu内部数据总线根数

posted @ 2021-07-25 17:21  像走了一光年  阅读(128)  评论(0编辑  收藏  举报