博主暑期整理了一些计算机组成原理相关的问题,以作保研面试之用。整理过程中也借鉴了一些网上的其他资料,其中绝大部分已不可考,如有侵权,通知删除。
因为计组在面试中被问得不多,所以整理得比较少。只有2次老师问到了冯诺依曼体系结构。
文章目录
1.冯诺依曼机和存储程序的概念?
存储程”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机通称为冯·诺依曼机,其特点如下:
- 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5 大部件组成。
- 指令和数据以同等地位存储在存储器中,并可按地址寻访。
- 指令和数据均用二进制代码表示。
- 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
- 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。
- 早期的冯诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。现代计算机以存储器为中心。
“存储程序”的概念是指将指令以代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
2.计算机的工作过程?
计算机的工作过程分为以下三个步骤:
- 把程序和数据装入主存储器。
- 将源程序转换成可执行文件。
- 从可执行文件的首地址开始逐条执行指令。
3.在计算机系统结构中,什么是编译?什么是解释?
翻译的方式有两种,一个是编译,一个是解释。
编译型语言写的程序在执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,如果源程序不变以后要运行的话就不用重新翻译。
解释则不同,解释性语言的程序不需要编译,在运行程序的时候才翻译,翻译一句执行一句,不生成目标程序,这样解释性语言每执行一次就要翻译一次,效率比较低。
.java文件->编译->.class文件,编译成.class字节码,.class需要jvm解释,然后解释执行。Java很特殊,Java程序需要编译但是没有直接编译成机器语言,即二进制语言,而是编译成字节码(.class)再用解释方式执行。java程序编译以后的class属于中间代码,并不是可执行程序exe,不是二进制文件,所以在执行的时候需要一个中介来解释中间代码,这就是所谓的java虚拟机(JVM)。
C语言编译过程分成四个步骤:
1, 由.c文件到.i文件,这个过程叫预处理,将#include包含的头文件直接拷贝到hello.c当中;将#defifine定义的宏进行替换,同时将代码中没用的注释部分删除等。
2, 由.i文件到.s文件,这个过程叫编译
3, 由.s文件到.o文件,这个过程叫汇编
4, 由.o文件到可执行文件,这个过程叫链接,将翻译成的二进制与需要用到库绑定在一块

4.描述一下指令执行过程?
程序中第一条指令的地址置于PC 中,根据PC 取出第一条指令,经过译码、执行步骤等,控制计算机各功能部件协同运行,完成这条指令的功能,并计算下一条指令的地址。用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止。下面以取数指令(即将指令地址码指示的存储单元中的操作数取出后送至运算器的ACC 中)为例进行说明,其信息流程如下:
- 取指令: PC 一>MAR—>M—>MDR—>IR
根据PC 取指令到IR, 将PC 的内容送MAR, MAR 中的内容直接送地址线,同时控制器

本文总结了计算机组成原理中的核心概念,如冯诺依曼机、存储程序、指令执行过程、性能指标等,深入解析了编译与解释、多级存储系统、Cache与虚拟存储器等技术。适合备考研究生或理解计算机基础架构的学生参考。
最低0.47元/天 解锁文章
6295

被折叠的 条评论
为什么被折叠?



