计算机专业研究生复试计算机组成原理面试简答题.docx
- 文档编号:7382981
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:24
- 大小:721.11KB
计算机专业研究生复试计算机组成原理面试简答题.docx
《计算机专业研究生复试计算机组成原理面试简答题.docx》由会员分享,可在线阅读,更多相关《计算机专业研究生复试计算机组成原理面试简答题.docx(24页珍藏版)》请在冰豆网上搜索。
计算机专业研究生复试计算机组成原理面试简答题
计算机系统概述
1.冯诺依曼机和存储程序的概念
冯·诺依曼在研究EDVAC机时提出了“存储程序”的概念,“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机通称为冯·诺依曼机,其特点如下:
1)计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
2)指令和数据以同等地位存储在存储器中,并可按地址寻访。
3)指令和数据均用二进制代码表示。
4)指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
5)指令在存储器内按顺序存放。
通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。
6)早期的冯诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。
现代计算机以存储器为中心。
2.为什么现在计算机以存储器为中心?
早期计算机存储容量小,数据经过运算器较少,在效率上对系统没有明显的影响。
但是现在存储器容量越来越大,且外部设备的速度远小于CPU的速度,所以数据经过运算器会拖慢系统的效率。
现在计算机以存储器为中心,让IO绕过运算器。
3.什么是“存储程序”?
“存储程序”的概念是指将指令以代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
按照“存储程序”原理,计算机有五大功能:
数据传递、数据存储、数据处理、操作控制、操作判断。
4.计算机的工作过程?
计算机的工作过程分为以下三个步骤:
1)把程序和数据装入主存储器。
2)将源程序转换成可执行文件。
3)从可执行文件的首地址开始逐条执行指令。
5.翻译程序、汇编程序、编译程序、解释程序有什么差别?
翻译程序是将高级语言翻译成如汇编语言和机器语言这样的程序。
翻译程序包括,编译程序和解释程序。
汇编程序是将汇编语言翻译成机器语言的程序。
编译程序是将源代码一次全部翻译成目标代码的程序,它将一种代码文件翻译成另一种代码文件,如果源代码不修改,则不用重新编译。
解释程序,是将源代码的一条语句翻译成机器代码,并立即执行。
解释执行是,翻译一条源代码就执行一条,适合调试程序时使用。
.java文件->编译->.class文件,编译成.class字节码,.class需要jvm解释,然后解释执行。
Java很特殊,Java程序需要编译但是没有直接编译成机器语言,即二进制语言,而是编译成字节码(.class)再用解释方式执行。
java程序编译以后的class属于中间代码,并不是可执行程序exe,不是二进制文件,所以在执行的时候需要一个中介来解释中间代码,这就是所谓的java虚拟机(JVM)。
C语言编译过程分成四个步骤:
1,由.c文件到.i文件,这个过程叫预处理,将#include包含的头文件直接拷贝到hello.c当中;将#define定义的宏进行替换,同时将代码中没用的注释部分删除等
2,由.i文件到.s文件,这个过程叫编译
3,由.s文件到.o文件,这个过程叫汇编
4,由.o文件到可执行文件,这个过程叫链接,将翻译成的二进制与需要用到库绑定在一块。
6.描述一下指令执行过程?
程序中第一条指令的地址置于PC中,根据PC取出第一条指令,经过译码、执行步骤等,控制计算机各功能部件协同运行,完成这条指令的功能,并计算下一条指令的地址。
用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止。
下面以取数指令(即将指令地址码指示的存储单元中的操作数取出后送至运算器的ACC中)为例进行说明,其信息流程如下:
1)取指令:
PC一>MAR—>M—>MDR—>IR
根据PC取指令到IR,将PC的内容送MAR,MAR中的内容直接送地址线,同时控制器将读信号送读/写信号线,主存根据地址线上的地址和读信号,从指定存储单元读出指令,送到数据线上,MDR从数据线接收指令信息,并传送到IR中。
2)分析指令:
OP(IR)—>CU
指令译码并送出控制信号。
控制器根据IR中指令的操作码,生成相应的控制信号,送到不同的执行部件。
在本例中,IR中是取数指令,因此读控制信号被送到总线的控制线上。
3)执行指令:
Ad(IR)—>MAR—>M—>MDR—>ACC
取数操作。
将IR中指令的地址码送MAR,MAR中的内容送地址线,同时控制器将读信号送读/写信号线从主存指定存储单元读出操作数,并通过数据线送至MDR,再传送到ACC中。
此外,每取完一条指令,还须为取下一条指令做准备,形成下一条指令的地址,即(PC)+1—>PC。
7.计算机的主要性能指标?
1.机器字长
机器字长是指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数,通常与CPU的寄存器位数、加法器有关。
因此,机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。
计算机字长通常选定为字节(8位)的整数倍。
2.数据通路带宽
数据通路带宽是指数据总线一次所能并行传送信息的位数。
这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同。
各个子系统通过数据总线连接形成的数据传送路径称为数据通路。
3.主存容量
主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可用字数x字长(如512Kx16位)来表示存储容量。
其中,MAR的位数反映存储单元的个数,MAR的位数反映可寻址范围的最大值(而不一定是实际存储器的存储容量)。
4.运算速度
(1)吞吐量和响应时间。
•吞吐量:
指系统在单位时间内处理请求的数量。
它取决于信息能多快地输入内存,CPU能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。
几乎每步都关系到主存,因此系统吞吐量主要取决于主存的存取周期。
•响应时间:
指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。
通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/0操作、操作系统开销等的时间)。
(2)主频和CPU时钟周期。
•CPU时钟周期:
通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,每个动作至少需要1个时钟周期。
•主频:
机器内部时钟的频率。
(3)CPI(ClockcyclePerInstruction),即执行一条指令所需的时钟周期数。
8.主频高的CPU一定比主频低的CPU快吗?
不一定,计算机运算速度,CPU的主频只是其中一个指标。
没有明显的公式表明。
主频越高计算速度越快。
9.机器字长、指令字长、存储字长的区别和联系
机器字长是计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机运算的精度
指令字长是一个指令中包含的二进制代码的位数
存储字长是一个存储单元包含的二进制代码的位数
数据的表示和运算
1.真值和机器数、
用正负号所表示的数就是真值,真值是机器数所代表的实值。
用二进制数所表示的真值就是机器数。
2.有哪些常用BCD码
BCD码是用二进制表示十进制的编码方式。
有8421吗,余三码等
3.ASCII码
国际上用7位二进制码标识一个ASCII码,包括数字、字符、还有不可印刷的字符。
4.大端模式和小端模式
大端模式:
主存字由2B或4B组成时,以先存储高位字节后存储低位字节的方式存储。
小端模式:
相反
5.描述常用校验码
检验码是能够发现或能够自动纠正错误的数据编码。
码距不小于2时开始有了检错能力,码距越大,检错能力就越强,且检错能力总是大于纠错能力。
常用校验码有奇偶校验码、汉明码、CRC循环码
奇偶校验码,在原始数据的最高位添加1或者0使其数据中的1恰好为奇数或者偶数。
只能发现代码中奇数位出错的情况。
常用在对存储器数据的检查或传输数据的检查中
CRC循环码,通常用于数据链路层,适合对大量数据校验。
6.解释各种机器数表示法的其含义表示的范围
原码简单直观的机器数表示法。
原码的0有两种表示方法
补码的正数表示和原码相同,负数等于原码的非符号位取反再+1,补码加减法操作简单,0的表示唯一。
反码的正数表示和原码相同,负数等于原码的非符号位取反。
移码常用来表示浮点数的阶码,它只能表示整数。
7.移码的特点
1、移码中零的表示是唯一的。
2、一个真值的移码和补码仅仅差一个符号位
3、移码全0表示对应真值最小值,移码全1表示对应真值最大值
4、移码保持了数据原有的顺序,方便比较大小
8.溢出的三种判别方法
1、采用溢出逻辑表达式
2、双符号位法。
01正溢出、10负溢出
3、一位符号位判别法。
如果符号位进位和最高数位相同,就没有溢出。
9.浮点数的加减法步骤
①对阶,阶码小的向阶码大的对齐;
②尾数求和;
③规格化;
④舍入,0舍1入法,可能使尾数溢出,再次规格化,恒1法,最后一位置1;
⑤溢出判断。
10.强制类型转化规则
char->int->long->double,float->double最常见,转化过程没有损失。
int转float可能有精读损失,int的32位全部用于表示数值,float有24位描述数值,再多会有舍入。
11.计算机机器字长足够能精确表示每一个数吗?
不能精确表示每一个数,例如0.1这个数,我们只能无限接近它,但不能表示出它。
小数在机器中是被离散地表示的。
12.字长相同情况下浮点数和定点表示的范围有什么不同
字长相同浮点数比定点数表示的范围更广,但是定点数的全部位数都用来表示数值本身,精度要比相同字长的浮点数要大。
13.用移码表示浮点数的阶码有什么好处
浮点数进行加减运算,常常要阶码比较大小,移码保留了原来真值的大小顺序,方便比较大小。
检验特殊值(0或max)比较容易。
当阶码取0或者max表示的结果如下:
0:
表示指数为负无穷大,整个数趋近于0,尾数如果也为0,可以用来表示0;尾数不为0表示未正规化数。
max:
表示指数正无穷大,若尾数为0,表示正负无穷大;尾数不为0,表示浮点数运算错误。
14.IEEE754标准浮点数
15.C语言中的浮点数类型及类型转换
C语言中的float和double类型分别对应于IEEE754单精度浮点数和双精度浮点数。
longdouble类型对应于扩展双精度浮点数,但longdouble的长度和格式随编译器和处理器类型的不同而有所不同。
在C程序中等式的赋值和判断中会出现强制类型转换,以char->int->long->double和float->double最为常见,从前到后范围和精度都从小到大,转换过程没有损失。
1)从int转换为float时,虽然不会发生溢出,但int可以保留32位,float保留24位,可能有数据舍入,若从int转换为double则不会出现。
2)从int或float转换为double时,因为double的有效位数更多,因此能保留精确值。
3)从double转换为float时,因为float表示范围更小,因此可能发生溢出。
此外,由于有效位数变少,因此可能被舍入。
4)从float或double转换为int时,因为int没有小数部分,所以数据可能会向0方向被截断(仅保留整数部分),影响精度。
另外,由于int的表示范围更小,因此可能发生溢出。
16.在计算机中,为什么要采用二进制来表示数据?
从可行性来说,采用二进制,只有0和1两个状态,能够表示0、1两种状态的电子器件很多,如开关的接通和断开、晶体管的导通和截止、磁元件的正负剩磁、电位电平的高与低等,都可表示0、1两个数码。
使用二进制,电子器件具有实现的可行性。
从运算的简易性来说,二进制数的运算法则少,运算简单,使计算机运算器的硬件结构大大简化(十进制的乘法九九口诀表有55条公式,而二进制乘法只有4条规则)。
从逻辑上来说,由于二进制0和1正好和逻辑代数的假(false)和真(true)相对应,有逻辑代数的理论基础,用二进制表示二值逻辑很自然。
17.各编码方式的数值范围
存储系统
1.多级存储系统?
为了解决存储系统大容量、高速度和低成本3个相互制约的矛盾,在计算机系统中,通常采用多级存储器结构,在图中由上至下,位价越来越低,速度越来越慢,容量越来越大,CPU访问的频度也越来越低。
实际上,存储系统层次结构主要体现在"Cache-主存”层次和“主存-辅存”层次。
前者主要解决CPU和主存速度不匹配的问题,后者主要解决存储系统的容量问题。
在存储体系中,Cache、主存能与CPU直接交换信息,辅存则要通过主存与CPU交换信息;主存与CPU、Cache、辅存都能交换信息。
存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存。
从CPU的角度看,"Cache—主存”层次速度接近于Cache,容量和位价却接近千主存。
从“主存—辅存”层次分析,其速度按近于主存,容址和位价动接近于辅存。
这就解决了速度、容量、成本这三者之间的矛盾。
在“主存—辅存”这一层次的不断发展中,逐渐形成了虚拟存储系统,在这个系统中程序员编程的地址范围与虚拟存储器的地址空间相对应。
对具有虚拟存储器的计算机系统而言,编程时可用的地址空间远大于主存间。
2.半导体随机存储器?
主存储器由DRAM实现,靠处理器的那一层(Cache)则由SRAM实现,它们都属于易失性存储器,只要电源被切断,原来保存的信息便会丢失。
DRAM的每比特成本低千SRAM,速度也慢于SRAM,价格差异主要是因为制造DRAM需要更多的硅。
而ROM属千非易失性存储器。
●SRAM的工作原理
通常把存放一个二进制位的物理器件称为存储元,它是存储器的最基本的构件。
地址码相同时多个存储元构成一个存储单元。
若干存储单元的集合构成存储体。
静态随机存储器(SRAM)的存储元是用双稳态触发器(六晶体管MOS)来记忆信息的,因此即使信息被读出后,它仍保持其原状态而不需要再生(非破坏性牍出)。
SRAM的存取速度快,但集成度低,功耗较大,所以一般用来组成高速缓冲存储器。
●DRAM的工作原理
与SRAM的存储原理不同,动态随机存储器(DRAM)是利用存储元电路中栅极电容上的电荷来存储信息的,DRAM的基本存储元通常只使用一个晶体管,所以它比SRAM的密度要高很多。
DRAM采用地址复用技术,地址线是原来的1/2,且地址信号分行、列两次传送。
相对于SRAM来说,DRAM具有容易集成、位价低、容量大和功耗低等优点,但DRAM的存取速度比SRAM的慢,一般用来组成大容量主存系统。
DRAM电容上的电荷一般只能维持1~2ms,因此即使电源不断电,信息也会自动消失。
为此,每隔一定时间必须刷新,通常取2ms,这个时间称为刷新周期。
常用的刷新方式有3种:
集中刷新、分散刷新和异步刷新。
●只读存储器(ROM)的特点
ROM和RAM都是支持随机存取的存储器,其中SRAM和DRAM均为易失性半导体存储器。
而ROM中一旦有了信息,就不能轻易改变,即使掉电也不会丢失,它在计算机系统中是只供读出的存储器。
ROM器件有两个显著的优点:
1)结构简单,所以位密度比可读写存储器的高。
2)具有非易失性,所以可靠性高。
3.有哪些技术能够提高CPU访存速度?
为了提高CPU访问存储器的速度,可以采用双端口存储器、多模块存储器等技术,它们同属并行技术,前者为空间并行,后者为时间并行。
1.双端口RAM
双端口RAM是指同一个存储器有左、右两个独立的端口,分别具有两组相互独立的地址线、数据线和读写控制线,允许两个独立的控制器同时异步地访问存储单元,如图所示。
当两个端口的地址不相同时,在两个端口上进行读写操作一定不会发生冲突。
2.多模块存储器
为提高访存速度,常采用多模块存储器,常用的有单体多字存储器和多体低位交叉存储器。
注意:
CPU的速度比存储器的快,若同时从存储器中取出n条指令,就可充分利用CPU资源,提高运行速度。
多体交叉存储器就是基于这种思想提出的。
(1)单体多字存储器
单体多字系统的特点是存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字。
一次并行读出m个字,地址必须顺序排列并处于同一存储单元。
单体多字系统在一个存取周期内从同一地址取出m条指令,然后将指令逐条送至CPU执行,即每隔1/m存取周期,CPU向主存取一条指令。
显然,这增大了存储器的带宽,提高了单体存储器的工作速度。
缺点:
指令和数据在主存内必须是连续存放的,一旦遇到转移指令,或操作数不能连续存放,这种方法的效果就不明显。
(2)多休并行存储器
多体并行存储器由多体模块组成。
每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器。
它们既能并行工作,又能交叉工作。
多体并行存储器分为高位交叉编址(顺序方式)和低位交叉编址(交叉方式)两种
4.Cache
Cache存储器:
电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(DynamicRandomAccessMemory)之间,规模较小,但速度很高的存储器,通常由SRAM(StaticRandomAccessMemory静态存储器)组成。
Cache的功能是提高CPU数据输入输出的速率。
Cache容量小但速度快,内存速度较低但容量大,通过优化调度算法,系统的性能会大大改善,仿佛其存储系统容量与内存相当而访问速度近似Cache。
Cache通常采用相联存储器。
●使用Cache改善系统性能的依据是程序的局部性原理
替换算法:
当Cache产生了一次访问未命中之后,相应的数据应同时读入CPU和Cache。
但是当Cache已存满数据后,新数据必须替换(淘汰)Cache中的某些旧数据。
最常用的替换算法有随机算法、先进
先出算法(FIFO)和近期最少使用算法(LRU)。
●写操作
因为需要保证缓存在Cache中的数据与内存中的内容一致,Cache的写操作比较复杂,常用的有写直达法、写回法和标记法。
●与主存的映射方式:
直接映射:
主存数据块只能装入Cache中的唯一位置
全相联映射:
可以把主存数据块装入Cache中的任何位置
组相联映射:
将Cache分为若干组,一个数据块可以装入一组内的任何一个位置
5.虚拟存储器
●虚拟存储器的基本概念
虚拟存储器是指具有请求调入和置换功能,能从逻辑上对内存容量加以扩存的一种存储器系统
●页式虚拟存储器
页式管理:
是把虚拟存储空间和实际空间等分成固定大小的页,各虚拟页可装入主存中的不同实际页面位置.页式存储中,处理机逻辑地址由虚页号和页内地址两部分组成,实际地址也分为页号和页内地址两部分,由地址映射机构将虚页号转换成主存的实际页号.
页式管理用一个页表,包括页号,每页在主存中起始位置,装入位等.页表是虚拟页号与物理页号的映射表.页式管理由操作系统进行,对应用程序员的透明的.
●段式虚拟存储器
段式管理:
把主存按段分配的存储管理方式.它是一种模块化的存储管理方式,每个用户程序模块可分到一个段,该程序模块只能访问分配给该模块的段所对应的主存空间.段长可以任意设定,并可放大和缩小.
系统中通过一个段表指明各段在主存中的位置.段表中包括段名(段号),段起点,装入位和段长等.段表本身也是一个段.段一般是按程序模块分的.
●段页式虚拟存储器
段页式管理:
是上述两种方法的结合,它将存储空间按逻辑模块分成段,每段又分成若干个页,访存通过一个段表和若干个页表进行.段的长度必须是页长的整数倍,段的起点必须是某一页的起点.
●快表
在虚拟存储器中进行地址变换时,需要虚页号变换成主存中实页号的内部地址变换这一过程缓存时首先要到主存查页表,然后才能根据主存物理地址访问主存的存取指令或数据。
因此采用虚拟存储器机制后,访存的次数增加了。
为了减少访存的次数,往往将页表中最活跃的几个页表项复制到高速缓存中。
这种在高速缓存中的页表项称为快表(translationlookasidebuffer)
查表时,根据虚页表同时查找快表和慢表,当在快表中查到该虚页号时,就能很快找到对应的实页号,将其送入主存实地址寄存器,同时使慢表的查找作废,这时主存的访问速度没降低多少.如果在快表中查不到,则经过一个访主存的时间延迟后,将从慢表中查到的实页送入实地址寄存器,同时将此虚页号和对应的实页号送入快表。
6.随机存储器、只读存储器、串行访问存储器的特点
随机存储器RAM,任何一个单元都能随机存取,存取时间与存储单元的位置无关。
主要用途是高速缓存或主存。
分为静态RAM和动态RAM,前者以触发器原理寄存信息,后者以电容充电原理寄存信息。
只读存储器ROM,数据一次写入存储器后不能修改,只能读取,断电不易失。
通常用来存储不变的常数、程序。
它和RAM一起作为主存的一部分。
由ROM派生出的存储器,有的是可读可写的,但写的速度比读的速度要慢得多。
串行访问存储器,对存储单元的读写要按照物理位置的先后顺序寻址。
它包括顺序存取存储器和直接存取存储器。
前者的代表是磁带,后者的代表是磁盘。
7.直接存取存储器的特点
存取信息时先寻找整个存储器中的某个小区域,再在小区域内顺序查找。
8.存储器的三个性能指标
存储容量、单位成本、存取速度。
存储容量等于存储字数乘以字长。
单位成本等于总成本除以总容量
存储速度中的数据传输率等于数据的宽度除以存储周期
9.存取时间存取周期主存带宽
存取时间:
启动一次存储器操作到完成该操作所需要的时间。
存取周期:
存储器完成一次完整的读写操作所用的时间,即两次独立访问存储器操作之间所需的最小时间间隔
主存带宽:
主存的数据传输率,每秒从主存进出信息的最大数量
存取时间就是存储周期吗
很显然,不是。
通常存取周期大于存取时间,对任何存储器来说,在读写过后,都有一段内部状态的复原的时间。
对于破坏性的存储器,存取周期往往比存取时间大得多。
10.多级存储系统结构以及成本速度容量
多级存储系统,为了解决存储系统大容量、高速度、低成本三者的矛盾。
从上到下为寄存器、cache、主存、辅存。
从上到下,速度越来越慢、单位成本越来越小、存储容量越来越高。
11.SRAM和DRAM的工作原理和比较
静态随机存储器SRAM的存储元是双稳态触发器,非破坏读出不用再生。
存取速度快,集成密度低,功耗大,一般用来组成高速缓存。
动态随机存储器DRAM存储元是栅极电容,采用地址复用技术,地址线是原来的1/2,地址信号分行列两次传送。
相比SRAM而言它容易集成价格低、容量大、功耗低,但存储速度比SRAM慢,一般用来做主存系统。
12.三种刷新方式
集中刷新、分散刷新、异步刷新
13.DRAM刷新需要注意的问题
刷新对cpu是透明的,刷新不依赖于外部的访问,DRAM的刷新是以行为单位的,刷新仅需要行地址。
刷新操作类似读操作,但不需要读取信息,只需要给电容补充电荷;刷新时不需要片选,整个存储器的芯片同时被刷新。
14.ROM的特点
ROM非易失存储器,不通电也不会丢失信息;结构简单,存储密度比可读写存储器高。
非易失性,可靠性高。
15.时间局部性和空间局部性
时间局部性:
程序当前运行的指令或用到的数据,在不久也可能会用到。
因为程序有循环结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机专业 研究生 复试 计算机 组成 原理 面试 答题