考研复试计算机组成原理面试题(一)—概述、数制的表示与计算

考研复试计算机组成原理面试题—概述、数制的表示与计算

写作目的:为了应对考研复试中的面试,我整理了导师可能提问的地方,力求用口语化的语言描述出来。

这只是第一篇文章,陆续还有计算机组成原理的其它章节,还会推出操作系统、数据结构、计算机网络、数据库的复试题整理

思维导图在我的processon。如果对你有帮助就打赏一下吧。

https://www.processon.com/view/link/5e6ca476e4b0f2f3bd1f89cd

计算机概述

冯诺依曼机的特点?

1、五个组成部分:运算器、控制器、存储器、输入设备、输出设备。

2、数据和指令以同等的地位存储在主存储器当中,可按照地址访存

3、指令和数据均用二进制代码表示

4、指令由操作码和地址码组成,操作码表示操作性质,地址码表示操作数所在位置

5、指令以顺序存放的。通常指令按顺序执行,在特定条件下根据运算结果或特定的条件改变执行顺序

6、早期冯诺依曼机以运算器为中心,输入输出设备通过运算器与存储器相连

为什么现在计算机以存储器为中心?

早期计算机存储容量小,数据经过运算器较少,在效率上对系统没有明显的影响。但是现在存储器容量越来越大,且外部设备的速度远小于CPU的速度,所以数据经过运算器会拖慢系统的效率。现在计算机以存储器为中心,让IO绕过运算器。

什么是“存储程序”

程序在运行前,都先存在主存储器当中,按照其在程序中的首地址执行第一条指令,然后就按照该程序规定的顺序执行其它指令,顺序程序结束。关键词:主存储器、首地址、第一条指令、顺序执行

按照“存储程序”原理,计算机应该有哪五大功能

数据传递、数据存储、数据处理、操作控制、操作判断

计算机工作的步骤?

1、把指令和程序装入主存储器

2、从程序的首地址运行程序

3、取出第一条指令,然后译码、执行,控制计算机各个部件协同运行,完成这条指令后,计算下一条指令的地址。关键词 取出、译码、执行、下一条指令

4、用新得到的指令地址,继续读取第二条指令执行。每条指令都是取指、译码、执行直到结束

翻译程序、汇编程序、编译程序、解释程序有什么差别?

翻译程序是将高级语言翻译成如汇编语言和机器语言这样的程序。翻译程序包括,编译程序和解释程序。

汇编程序是将汇编语言翻译成机器语言的程序。

编译程序是将源代码一次全部翻译成目标代码的程序,它将一种代码文件翻译成另一种代码文件,如果源代码不修改,则不用重新编译。

解释程序,是将源代码的一条语句翻译成机器代码,并立即执行。解释执行是,翻译一条源代码就执行一条,适合调试程序时使用。

计算机体系结构和计算机组成结构的联系和区别

计算机体系结构是汇编语言或机器语言程序员所能看到的传统机器属性,例如指令集、数据类型、存储器寻址技术,都是抽象属性。

计算机组成是指如何实现计算机体系结构所体现的属性,它包括很多对程序员来说透明的硬件细节。

如计算机指令系统属于结构问题,而如何实现取指、取操作数就是计算机组成问题。不同的计算机可能有相同的结构,但是如何实现这些结构可以完全不同,即他们的组成方式不同。例如计算机有没有乘法操作是系统结构问题,如何实现乘法就是计算机组成问题。

计算机主要性能指标

机器字长、数据通路带宽、主存容量、运算速度。

运算速度包括:吞吐量和响应时间、主频和CPU周期、CPI等

主频高的cpu一定比主频低的cpu快吗?

不一定,计算机运算速度,cpu的主频只是其中一个指标。没有明显的公式表明。主频越高计算速度越快。

机器字长、指令字长、存储字长的区别和联系

机器字长是计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,她决定了计算机运算的精度

指令字长是一个指令中包含的二进制代码的位数

存储字长是一个存储单元包含的二进制代码的位数

指令字长一般是存储字长的整数倍

数据的表示和运算

真值和机器数

用正负号所表示的数就是真值,真值是机器数所代表的实值。

用二进制数所表示的真值就是机器数。

有哪些常用BCD码

BCD码是用二进制表示十进制的编码方式。有8421吗,余三码等

ASCII码

国际上用7位二进制码标识一个ASCII码,包括数字、字符、还有不可印刷的字符。

大端模式和小端模式

大端模式,主存字由2B或4B组成时,以先存储高位字节后存储低位字节的方式存储。

小端模式相反

描述常用校验码

检验码是能够发现或能够自动纠正错误的数据编码。码距不小于2时开始有了检错能力,码距越大,检错能力就越强,且检错能力总是大于纠错能力。

常用校验码有奇偶校验码、汉明码、CRC循环码

奇偶校验码,在原始数据的最高位添加1或者0使其数据中的1恰好为奇数或者偶数。只能发现代码中奇数位出错的情况。常用在对存储器数据的检查或传输数据的检查中

CRC循环码,通常用于数据链路层,适合对大量数据校验。

解释各种机器数表示法的其含义表示的范围

原码简单直观的机器数表示法。原码的0有两种表示方法

补码的正数表示和原码相同,负数等于原码的非符号位取反再+1,补码加减法操作简单

,0的表示唯一。

反码的正数表示和原码相同,负数等于原码的非符号位取反+1。

移码常用来表示浮点数的解码,它只能表示整数。

移码的特点

1、移码中零的表示是唯一的。

2、一个真值的移码和补码仅仅差一个符号位

3、移码全0表示对应真值最小值,移码全1表示对应真值最大值

4、移码保持了数据原有的顺序,方便比较大小

溢出的三种判别方法

1、采用溢出逻辑表达式

2、双符号位法。01正溢出、10负溢出

3、一位符号位判别法。如果符号位进位和最高数位相同,就没有溢出。

描述IEEE754标准

IEEE754标准规定浮点数类型有短浮点数、长浮点数、临时浮点数类型。

常用的浮点数格式 由符号位、阶码、尾数组成

短浮点数有8位阶码、23位尾数、偏置127

浮点数11位阶码、52位尾数、偏置1023

规格化的二进制浮点数,数值的最高位总是1,为了能多多表示一位有效为,就把这个1隐藏了。

短浮点数,阶码取值范围1到254;长浮点数取值范围1到2046

浮点数的加减法步骤

对阶,阶码小的向阶码大的对齐;尾数求和;规格化;舍入,0舍1入法,可能使尾数溢出,再次规格化,恒1法,最后一位置1;溢出判断。

强制类型转化规则

char->int->long->double,float->double最常见,转化过程没有损失。

int转float可能有精读损失,int的32位全部用于表示数值,float有24位描述数值,再多会有舍入。

计算机机器字长足够能精确表示每一个数吗?

不能精确表示每一个数,例如0.1这个数,我们只能无限接近它,但不能表示出它。小数在机器中是被离散地表示的。

字长相同情况下浮点数和定点表示的范围有什么不同

字长相同浮点数比定点数表示的范围更广,但是定点数的全部位数都用来表示数值本身,精读要比相同字长的浮点数要大。

用移码表示浮点数的阶码有什么好处

浮点数进行加减运算,常常要阶码比较大小,移码保留了原来真值的大小顺序,方便比较大小。

检验特殊值(0或max)比较容易。当阶码取0或者max表示的结果如下:

0:表示指数为负无穷大,整个数趋近于0,尾数如果也为0,可以用来表示0;尾数不为0表示未正规化数。

max:表示指数正无穷大,若尾数为0,表示正负无穷大;尾数不为0,表示浮点数运算错误。

发布了19 篇原创文章 · 获赞 10 · 访问量 1944

猜你喜欢

转载自blog.csdn.net/qq_30719815/article/details/104863725