虽然<计算机组成原理>这门课很难,笔试其实知识点很多,但是面试我个人认为问的比较少,而且难点的cache与主存的映射(其实就是cache分配)在计算机操作系统中已经讲过了,还有一个难点是指令执行的两种方法(微程序和硬布线),但这个其实还是很复杂了,单独面试问的可能性不大。所以我只列举一些和计算机相关的常问的问题
指令的寻址方式有哪些
指令的由操作码和地址码(存储操作数的信息)组成。
一定要做到看名字就能知道其工作过程:
- 立即寻址:地址码直接填操作数的值
- 直接寻址:填操作数在内存中的地址
- 寄存器寻址:填操作数所在的寄存器编号
- 间接寻址:操作码在内存中,内存的另一个位置填写这个内存地址,操作码填写这个内存地址
- 寄存器间接寻址:操作码在内存中,一个寄存器存储该内存的地址。操作码填写这个寄存器的编号
- 隐含寻址:操作码隐藏在默认的一个寄存器中
3个偏移寻址方式
基址寻址、变址寻址、相对寻址
操作码/寻址方式 | 基址寻址 | 变址寻址 | 相对寻址 |
---|---|---|---|
一个操作数在操作码中表示含义 | 偏移量 | 形式地址 | 偏移量 |
另一个操作数 | 固定的基址 | 一个变化的值 | 上一条指令地址 |
另一个操作可以是有两种表现形式:
- 隐式:默认存在一个规定的寄存器中
- 显式:操作码指出寄存器地址
这个三个概念非常容易弄混。
我们根据名字进行记忆,比如基址寻址。基
表明另一个寄存器的操作含义是基址,这样反推操作码里面操作数的含义是偏移量(因为两个操作数一定有一个是变化的)。
相对寻址,相对
是相对上一条指令,即上一条指令的地址
。
说说程序的局部性原理
- 时间局部性:如果一个存储项被访问,则相邻的时间内,该项会很快被再次访问.
- 空间局部性:如果一个存储项被访问,则该项及其邻近的项,也可能很快被访问.
说说计算机的结构
CD-ROM就是指光盘,并不是ROM,只是它也是只读的特性和ROM一样,所以有的这个名字。
指令的执行过程
取指令(取指令及其周期)
- 指令地址(在PC中)送到地址寄存器
- 读主存,读出内容(指令代码)送入指令寄存器IR
- 形成下一条指令的地址并送到PC中
执行指令
- 操作数寻址(间址机器周期)
- 操作通过运算器进行运算(执行及其周期)
- 检查是否有中断请求(中断机器周期)