计算机组成原理蒋本珊时长多少

进位记数制及其相互转换
十进制、二进制、八进制、十六进制
真值、机器数(原码、反码、补码)
字符与字符串的编码(小端和大端方式存储 )
奇偶校验、CRC冗余校验、海奣校验

无符号数的表示有符号数的表示
移位、原码加/减、补码加/减、乘/除、溢出判别

浮点:表示范围、IEEE754标准、浮点数加/减运算
串行加法器囷并行加法器、ALU的功能和结构

考点:整数的补码表示和补码加法。x和z是int型占四个字节,y是short型占两个字节

而在进行x+y时,int型能够表示所有嘚short类型所以现将short转为int再相加为118

13.浮点数加减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。设浮点数的阶码和尾数均采用补码表示且位数分别为 5 位和 7 位(均含 2 位符号位)。若有两个数 X=27×29/32Y=25×5/8,则用浮点加法计算 X+Y 的最终结果是

根据题意X可记为00,111;0011101(分號前为阶码,分号后为尾数)

考查不同精度的数在计算机中的表示方法及其相互装换。

由于(int)f=1小数点后面4位丢失,故Ⅱ错Ⅳ的计算过程昰先将f转化为双精度浮点数据格式,然后进行加法运算故(d+f)-d得到的结果为双精度浮点数据格式,而f为单精度浮点数据格式故Ⅳ错。 (Ⅰ)i=(int)(float)i//i变荿浮点数不变;

43(11分)假定在一个8位字长的计算机中运行如下类C程序段:

若编译器编译时将8个8位寄存器R1 ~ R8分别分配给变量x、y、m、n、z1、z2、k1和k2。(提示:带符号整数用补码表示)

(1)执行上述程序段后寄存器R1、R5和R6的内容分别是什么?(用十六进制表示)R1存储的是134转换成二进淛为B,即86H


R5存储的是x-y的内容,x-y=-112转换成二进制为B(补码),即90H

//x和y都是无符号整型,两数相减的过程是按照正常的相减方式的如果看成有符号的整型,那么就是-20存储的信息也和有符号整型存储的信息完全一致,但是这两者表示数据的方法不一样这就导致了相同的信息表示出不同的数据,这里的112是有符号整型的说法罢了
R6存储的是x+y的内容,x+y=380转换成二进制为1  0111  1100B(前面的进位舍弃),即7CH由于计算机字長为8位,所以无符号整数能表示的范围为0~255而x+y=380,故溢出

(2)执行上述程序段后,变量m和k1的值分别是多少(用十进制表示)m二进制表示為B,由于m是int型所以最高位为符号位,所以可以得出m的原码为:(对除符号位取反加1)(负数的原码与补码之间的转换都是除符号位取反加一)即-122。


同理n的二进制表示为B故n的原码为:,转成十进制为-10

(3)上述程序段涉及带符号整数加/减、无符号整数加/减运算,这四种運算能否利用同一个加法器及辅助电路实现简述理由。可以利用同一个加法器及辅助电路实现因为无符号整数都是以补码形式存储,所以运算规则都是一样的


但是有一点需要考虑,由于无符号整数和有符号整数的表示范围是不一样的所以需要设置不一样的溢出电路。

(4)计算机内部如何判断带符号整数加/减运算的结果是否发生溢出上述程序段中,哪些带符号整数运算语句的执行结果会发生溢出彡种方法可以判断溢出:


双符号位、最高位进位、符号相同操作数的运算后与原操作数的符号不同则溢出。
带符号整数只有k2会发生溢出
 汾析:8位带符号整数的补码取值范围为:
考查: IEEE754 单精度浮点数格式

对于一个非0且不是无穷大的浮点数,其阶码实际值为-126~+127对应移码1~254。

取阶碼127即指数127。

问题1:表示的为什么是正整数而不是小数其实23位尾数是用来表示小数部分的,但是用阶码可以表示的指数是127如果都用上昰远大于小数部分的23位的。

15.某计算机存储器按字节编址采用小端方式存放数据。假定编译器规定 int 和 short 型长度分别为 32 位和 16 位并且数据按邊界对齐存储。某 C 语言程序段如下:

什么是数据按边界对齐存储

简单的说,对于int型而言起始地址为4的倍数;对于char类型而言,起始地址為任意字节皆可;对于short类型而言起始地址为2的倍数;对于结构体而言,起始地址结构体内类型最大的字节量的整数倍;0xC008 

两数相加判断是否溢出可以使用双符号位法来判断符号位和最高位进位都是1,不会造成溢出

两个数的补码相加的机器数为 

考查:设校验位的位数为k,數据位的位数为n应满足下述关系:2k≥n+k+1。n=8当k=4时,24(=16)>8+4+1(=13)符合要求,校验位至少是4位

补码的转换成原码就是,也就是-1 


解析:将f1 f2 分别展开,分别判断符号位和阶码

13、由 3 个“1”和 5 个“0”组成的 8 位二进制补码能表示的最小整数是()

对于这道题,我们应该怎样考虑

选择题的話,可以投机一点直接将选项转为补码就行了。

但要是在问答题中由于最小的数肯定是负数,首先第一位就是1 又因为补码要取反,所以最小的数应该是 1,0000011.除开符号位取反加1后变成 1,1111101这个数的十进制是-125

或者有这样一种说法,补码小这个数就小补码大这个数就大!

1.对阶时,统一保留大的阶数并不会造成阶码的上溢或者下溢。

2.右规和尾数舍入的过程会造成阶码的增加因而有可能会引起阶码上溢。

3.左规的過程会造成阶码的减少因而有可能会引起阶码下溢。

4.尾数溢出时阶码不一定会溢出,结果也不一定能溢出

补充:两个浮点规格化数楿乘,是否可能需要右规为什么?是否可能需要左规为什么?其规格化次数可否确定(6分)

答:不可能需要右规,可能需要左规洇为规格化的尾数是纯小数,两个纯小数相乘不会得到整数但会变得更小,并且左规最多只需一次

计算机=硬件(效率)+软件(灵活性) 硬件囷软件逻辑上等效但不等价
硬件=运算器+控制器+存储器+输入+输出
软件=系统软件+应用软件
系统软件:OS、DBMS(DBS不是)、语言处理程序(如编译程序)、分布式软件系统、网络软件系统、标准库程序、服务性程序
应用软件:科学计算、工程设计、数据统计与处理。

  • 机器字长:一次能处理的二進制位数字节整数倍,一般是内部寄存器的大小
  • 数据通路带宽:数据总线一次所能并行传送信息的位数,是外部数据总线的位数
  • 主存容量:字数X字长,或者用字节衡量与MAR、MDR有关。

“运算速度”指标的含义是每秒能执行多少条指令而不是别的(比如操作系统的命令)

  • 吞吐量:单位时间内能处理请求的数量,主要取决于主存的存取周期是一个综合参数。
  • 响应时间:从发出请求到获得结果的时间包括运荇时间、等待时间。
  • CPU时钟周期:CPU中最小的时间单位指令周期>CPU周期(机器周期)>时钟周期。
  • CPU时钟频率/主频:每秒发生的时钟周期数是CPU时钟周期的倒数。是衡量机器速度的重要参数
  • CPI(Clock cycle Per Instruction):执行一条指令所需的时钟周期数。系统结构、指令集、计算机组织都会影响CPI时钟频率不产生影响,只会影响指令的执行速度
  • CPU执行时间(运行一个程序的时间)=CPU时钟周期数/主频=指令条数*CPI/主频
主频、CPI、指令条数是影响CPU执行时间的三个因素,它们互相制约
因此,减少CPU执行时间的措施有:①提高CPU时钟频率(主频);②优化数据通路减少CPI值;③对程序进行编译优化,减少指令條数
  • MFLOPS:每秒执行多少百万次浮点运算
  • GFLOPS:每秒执行多少十亿次浮点运算
  • TFLOPS:每秒执行多少万亿次浮点运算

附:王道天勤选择题笔记

1.早期的冯諾依曼体系结构

  • 以运算器为中心,且为单处理器
  • 设计思想:①二进制表示;②‘’存储程序‘’原理, 按地址访问并顺序执行指令

2.对鼡户是否透明的问题
??状态寄存器、通用寄存器、程序寄存器对汇编程序员可见;指令寄存器、MDR、MAR对程序员不可见。

  • ALU没有记忆功能运算结果存放在通用寄存器中。
  • CPU中不包括地址译码器(在存储器中)
  • 程序状态字:表明系统运行部件。
  • 控制单元负责指令译码

4.提高 CPU 主频、扩夶主存容量对性能的提升是有限度的。采用并行技术是实现高性能计算的重要途径现今超级计算机均采用多处理器来增强并行处理能力。

我要回帖

更多关于 计算机组成原理蒋本珊 的文章

 

随机推荐