题26

题目

Q:【2016 统考真题】计算机主存空间为 4GB,字长为 32 位,按字节编址,采用 32 位定长指令字格式,若指令按字边界对齐存放,则程序计数器 (PC) 和指令寄存器 (IR) 的位数至少分别是( )。
A. 30、30
B. 30、32
C. 32、30
D. 32、32

分析

A:又是题11里涉及的,按照字边界对齐存放的概念,我觉得是A因为在题24里面算出就是30
注意IR和PC在位数上是有区别的
IR应该是取决于指令字长,也就是32位
但是PC是取决于存储器的容量和指令字长
如何理解,答案里面这个为了让 PC 的位数最少, 可以采用字地址, 取指令时将 PC 值左移 2 位到主存中取指令,不是很懂什么意思,看这里就理解了:题2

B
程序计数器 (PC) 用于指出下一条指令在内存中的地址, 虽然可以用 32 位的地址来表示指令地址,但实际上内存中最多只能存放 条指令,故可以用 30 位的字地址来表示指令地址, 这种情况下指令必须采用按边界对齐的方式存放, 故 PC 的位数至少是 30 位, 即 PC 给出的地址是字地址。
题干已说明指令按字边界对齐的方式存放, 也就是说, 指令地址都是 4 字节的整数倍, 因此为了让 PC 的位数最少, 可以采用字地址, 取指令时将 PC 值左移 2 位到主存中取指令。
指令寄存器 (IR) 用于存放从内存中取出的指令, 它取决于指令字长, 故 IR 的位数至少是 32 位。