计算机组成原理三章
- 格式:doc
- 大小:522.50 KB
- 文档页数:12
第三章运算方法与运算器3.1定点数运算及溢出检测随堂测验1、定点运算器可直接进行的运算是() (单选)A、十进制数加法运算B、定点数运算C、浮点数运算D、定点数和浮点数运算2、设计计算机字长为8位,两个十进制数X = -97 ,Y = 63, [x]补- [y]补的结果为()(单选)A、01100000B、11011110C、负溢出D、正溢出3、下列关于定点运算溢出的描述中,正确的是( ) (多选)A、补码数据表时,同号数相加可能发生溢出B、补码数据表时,异号数相减可能发生溢出C、参加运算的两个数,当作为有符号数和无符号数进行加法运算时,不可能两者都溢出D、溢出检测既可用硬件实现,也可用软件实现4、设X为被加(减)数,Y为加(减)数,S为运算结果,均采用补码数据表示,下列关于溢出电路设计的描述中,正确的是()(多选)A、采用单符号位时,直接用X、Y和S的符号位就可设计溢出监测电路B、采用双符号位时,可直接用S的双符号位设计溢出检测电路C、采用单符号位时,可直接用X、Y最高有效数据位运算后的进位位和S的进位设计溢出监测电路D、对无符号数的加/减运算,可利用运算器的进位信号设计溢出检测电路3.2 定点数补码加、减运算器设计随堂测验1、如图所示为基于FA的运算器:为了利用一位全加器FA并配合使用控制信号P,当P= 0/1时实现A、B两个数的加法/减法运算,图中空白方框处电路的逻辑功能应该是()(单选)A、与门B、或门C、异或门D、非门2、如图所示为带溢出检测功能的运算器该电路完成的溢出检测功能是()(多选)A、带符号数的加法溢出检测B、带符号数的加法溢出检测C、无符号数的加法溢出检测D、无符号数减法的溢出检测3、下列关于并行进位的描述中,正确的是()(多选)A、并行进位可以提高运算速度B、并行进位模式下,各进位位采用不同电路各自产生,相互间不再有依存关系C、采用先行进位部件和ALU模块可构建长度可变的并行进位运算器D、并行进位只对加法有效,而对减法无效4、四位并行ALU中有两个特殊的输出端,分别是:G =A3B3+(A3+B3)(A2B2+(A2+B2)(A1B 1+ (A1+B1) A 0B0)) 为进位产生函数,P=(B3+A3) (B2+A2)( A1+B1 ) (A0+B0)为进位传递函数下列关于P、G的描述中,正确的是()(多选)A、设计P和G的目的是为了构建位数更长的并行ALUB、P和G对算术运算和逻辑运算都有意义C、P的作用是将本片ALU的最低进位输入位传递到本片ALU的最高进位输出端D、G的作用是根据参与运算的两个数据产生本片ALU的最高进位输出3.3 原码一位乘法随堂测验1、设计算机字长为8位,X = - 19,对该分别执行算术左移和逻辑左移一位后的结果分别为()(单选)A、11011010 ,11011010B、11110010 ,11110010C、11011000 ,11011000D、11110000 ,111100002、设计算机字长为8位,X = - 19,对该分别执行算术右移和逻辑右移一位后的结果分别为()(单选)A、11111001,11111001B、11111001,01111001C、11110110,01110110D、11110110,111101103、关于原码一位乘法的下列描述中,正确的是()(多选)A、数据取绝对值参加运算B、符号位单独处理C、乘法执行过程中的所有移位都是算术移位D、最后的结果由部分积寄存器和乘数寄存器共同保存4、计算机字长为n位, 下列关于原码一位乘法操作过程的描述中,正确的是() (多选)A、乘法过程中共执行n 次算术右移和n 次加法运算B、乘法过程中共执行n -1次算术右移和n-1 次加法运算C、乘法过程中,部分积加0 还是加x的绝对值,取决于此时的YnD、乘法过程中右移部分积是为了使部分积与下次的加数按位对齐3.4 补码一位乘法随堂测验1、16位补码0X 8FA0扩展为32位的结果是() (单选)A、0X 0000 8FA0B、0X FFFF 8FA0C、0X FFFF FFA0D、0X8000 8FA02、计算机字长为n位, 下列关于补码一位乘法操作过程的描述中,正确的是() (多选)A、乘法过程中共执行n 次加法和n-1 部分积右移B、乘法过程中共执行n -1次算术右移和n-1 次加法运算C、乘法过程中,部分积加0 、[x]补还是[-x]补,取决于此时的Yn+1 与Yn的差D、乘法过程中右移部分积的目的是为了使部分积与下次的加数对齐3、关于补码码一位乘法的下列描述中,正确的是()(多选)A、符号位和数据位一起参加运算B、运算开始前,需要在乘数寄存器Y后面补上Yn+1且其初值为0C、乘法执行过程中的对部分积的移位是算术右移D、最后的结果由部分积寄存器和乘数寄存器共同保存3.5 乘法运算器设计随堂测验1、下图为原码一位乘法器原理图正确的是()(单选)A、A: 部分积寄存器B:乘数寄存器C: |X| D: YnB、A: 部分积寄存器B:乘数寄存器C: |X| D: Yn+1C、A: 被乘数寄存器B:乘数寄存器C: |X| D: YnD、A: 被乘数寄存器B:乘数寄存器C: |X| D: Yn+12、下图为补码一位乘法原理图正确的是() (单选)。
计算机组成原理——第三章系统总线3.1 总线的基本概念1. 为什么要⽤总线计算机系统五⼤部件之间的互连⽅式有两种:分散连接——各部件之间使⽤单独的连线总线连接——各部件连到⼀组公共信息传输线上早期的计算机⼤多采⽤分散连接⽅式,内部连线⼗分复杂,尤其当I/O与存储器交换信息时都需要经过运算器,使运算器停⽌运算,严重影响CPU的⼯作效率。
2. 什么是总线总线是连接各个部件的信息传输线,是各个部件共享的传输介质3. 总线上的信息传送串⾏并⾏3.2 总线的分类1. ⽚内总线芯⽚内部的总线CPU芯⽚内部寄存器之间寄存器与算逻单元ALU之间2. 系统总线计算机各部件(CPU、主存、I/O设备)之间的信息传输线按系统总线传输信息不同分为:数据总线——传输各功能部件之间的数据信息双向与机器字长、存储字长有关数据总线宽度——数据总线的位数地址总线——⽤来指出数据总线上的源数据或⽬的数据在主存单元的地址或I/O设备的地址单向(由CPU输出)与存储地址、I/O地址有关地址线位数(2n)与存储单元的个数(n)有关控制总线——⽤来发出各种控制信号的传输线出——中断请求、总线请求⼊——存储器读/写、总线允许、中断确认常见控制信号:时钟:⽤来同步各种操作复位:初始化所有部件总线请求:表⽰某部件需获得总线使⽤权总线允许:表⽰需要获得总线使⽤权的部件已获得了控制权中断请求:表⽰某部件提出中断申请中断响应:表⽰中断请求已被接收存储器写:将数据总线上的数据写⾄存储器的指定地址单元内存储器读:将指定存储单元中的数据读到数据总线上I/O读:从指定的I/O端⼝将数据读到数据总线上I/O写:将数据总线上的数据输出到指定的I/O端⼝内传输响应:表⽰数据已被接收,或已将数据送⾄数据总线上3. 通信总线⽤于计算机系统之间或计算机系统与其它系统(控制仪器、移动通信等)之间的通信通信⽅式:串⾏通信数据在单条1位宽的传输线上,⼀位⼀位地按顺序分时传送。
第三章课后习题参考答案1.有一个具有20位地址和32位字长的存储器,问:(1)该存储器能存储多少个字节的信息?(2)如果存储器由512K×8位SRAM芯片组成,需要多少芯片?(3)需要多少位地址作芯片选择?解:(1)∵ 220= 1M,∴该存储器能存储的信息为:1M×32/8=4MB (2)(1024K/512K)×(32/8)= 8(片)(3)需要1位地址作为芯片选择。
3.用16K×8位的DRAM芯片组成64K×32位存储器,要求:(1) 画出该存储器的组成逻辑框图。
(2) 设DRAM芯片存储体结构为128行,每行为128×8个存储元。
如单元刷新间隔不超过2ms,存储器读/写周期为0.5μS, CPU在1μS内至少要访问一次。
试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少?解:(1)组成64K×32位存储器需存储芯片数为N=(64K/16K)×(32位/8位)=16(片)每4片组成16K×32位的存储区,有A13-A0作为片内地址,用A15 A14经2:4译码器产生片选信号,逻辑框图如下所示:(2)根据已知条件,CPU在1us内至少访存一次,而整个存储器的平均读/写周期为0.5us,如果采用集中刷新,有64us的死时间,肯定不行;所以采用分散式刷新方式:设16K×8位存储芯片的阵列结构为128行×128列,按行刷新,刷新周期T=2ms,则分散式刷新的间隔时间为:t=2ms/128=15.6(s) 取存储周期的整数倍15.5s(0.5的整数倍)则两次刷新的最大时间间隔发生的示意图如下可见,两次刷新的最大时间间隔为tMAXt MAX=15.5×2-0.5=30.5 (μS)对全部存储单元刷新一遍所需时间为tRt R=0.5×128=64 (μS)4.有一个1024K×32位的存储器,由128K×8位DRAM芯片构成。
第三章运算方法和运算器3.1补码的移位运算1、左移运算:各位依次左移,末位补0对于算术左移,若没有改变符号位,左移相当于乘以2。
2、右移运算:算术右移:符号位不变,各位(包括符号位)依次右移。
(相当于除以2)逻辑右移:最高位补0,其余各位依次右移例1:已知X=0.1011 ,Y=-0.0101 求 [0.5X]补;[0.25X]补;[-X]补;2[-X]补;[0.5Y]补;[0.25Y]补; [-Y]补;2[-Y]补[X]补=0.1011 [Y]补=1.1011[0.5X]补=0.01011 [0.5Y]补=1.11011[0.25X]补=0.001011 [0.25Y]补=1.111011[-X]补=1.0101 [-Y]补=0.01012[-X]补=0.1010 (溢出) 2[-Y]补=0.10103.2定点加减法运算及其实现3.2.1 补码加减法运算方法由于计算机中的进行定点数的加减运算大都是采用补码。
(1)公式:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补(证明过程见教材P38)例1 X=0.001010 Y=-0.100011 求[X-Y]补,[X+Y]补解:[X]补=0.001010 [-Y]补=0.100011则 [X-Y]补=[X]补+[-Y]补=0.001010 + 0.100011=0.101101 [X]补=0.001010 [Y]补=1.011101则 [X+Y]补=[X]补+[Y]补=0.001010 + 1.011101=1.100111例2:已知X=+0.25,Y=-0.625,求X+Y; X-Y写出计算的过程.例3:已知X=25,Y=-9,求X+Y; X-Y写出计算的过程.例4:已知X=-25,Y=-9,求X+Y; X-Y写出计算的过程.解: (8位二进制表示)例2: X=0.0100000 Y=-0.1010000[X]补=0.0100000 [Y]补=1.0110000则 [X+Y]补=[X]补+[Y]补=0.0100000 + 1.0110000=1.1010000[X+Y]原=-0.0110000=(-0.375)D[X]补=0.0100000 ,[-Y]补=0.1010000则 [X-Y]补 = [X]补+[-Y]补 = 0.0100000+0.1010000=0.1110000[X+Y]原 = 0.1110000 =(0.875)D例3: X=+0011001 Y=-0001001[X]补=00011001,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 00011001 + 11110111= 00010000[X+Y]原 =+0010000=(+16)D[X]补= 00011001 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 00011001 + 00001001= 00100010[X+Y]原 = +0100010 =(34)D例4: X=-0011001 Y=-0001001[X]补=11100111,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 11100111 + 11110111[X+Y]原 =-00100010=(-34)D[X]补= 11100111 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 11100111 + 00001001= 11110000[X+Y]原 = -0010000 =(-16)D3.2.2 定点加减法运算中的溢出问题溢出:运算结果大于机器所能表示的最大正数或者小于机器所能表示的最小负数.溢出只是针对带符号数的运算.比如:[X]补=0.1010,[Y]补=0.1001,那么[X]补+[Y]补=1.0011(溢出)溢出是一种错误,计算机中运算时必须能够发现这个现象,并加以处理判断溢出的方法:1、采用变形补码法[X+Y] 变补=[X] 变补+[Y] 变补[X-Y] 变补=[X] 变补+[-Y] 变补例1 X=0.1011 Y=0.0011 求[X+Y]补解: [X]变补 = 00.1011, [Y]变补 = 00.0011[X+Y]变补 = 00.1011 + 00.0011 = 00.1110所以 [X+Y]补 = 0.1110例2 X=0.1011 Y=0.1001 求[X+Y]补解: [X]变补 = 00.1011 [Y]变补 = 00.1001[X+Y]变补 = 00.1011 + 00.1001 = 01.0100运算结果的两符号位是01,不相同,发生溢出,因第一符号位是0,代表正数,所以称这种溢出为“正溢出”。
第3章习题参考答案1、设有一个具有20位地址和32位字长的存储器,问 (1) 该存储器能存储多少字节的信息?(2) 如果存储器由512K ×8位SRAM 芯片组成,需要多少片? (3) 需要多少位地址作芯片选择? 解:(1) 该存储器能存储:字节4M 832220=⨯(2) 需要片8823228512322192020=⨯⨯=⨯⨯K (3) 用512K ?8位的芯片构成字长为32位的存储器,则需要每4片为一组进行字长的位数扩展,然后再由2组进行存储器容量的扩展。
所以只需一位最高位地址进行芯片选择。
2、已知某64位机主存采用半导体存储器,其地址码为26位,若使用4M ×8位的DRAM 芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问; (1) 若每个内存条为16M ×64位,共需几个内存条? (2) 每个内存条内共有多少DRAM 芯片?(3) 主存共需多少DRAM 芯片? CPU 如何选择各内存条? 解:(1) 共需条4641664226=⨯⨯M 内存条 (2) 每个内存条内共有32846416=⨯⨯M M 个芯片(3) 主存共需多少1288464648464226=⨯⨯=⨯⨯M M M 个RAM 芯片, 共有4个内存条,故CPU 选择内存条用最高两位地址A 24和A 25通过2:4译码器实现;其余的24根地址线用于内存条内部单元的选择。
3、用16K ×8位的DRAM 芯片构成64K ×32位存储器,要求: (1) 画出该存储器的组成逻辑框图。
(2) 设存储器读/写周期为μS ,CPU 在1μS 内至少要访问一次。
试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少? 解:(1) 用16K ×8位的DRAM 芯片构成64K ×32位存储器,需要用16448163264=⨯=⨯⨯K K 个芯片,其中每4片为一组构成16K ×32位——进行字长位数扩展(一组内的4个芯片只有数据信号线不互连——分别接D 0?D 7、D 8?D 15、D 16?D 23和D 24?D 31,其余同名引脚互连),需要低14位地址(A 0?A 13)作为模块内各个芯片的内部单元地址——分成行、列地址两次由A 0?A 6引脚输入;然后再由4组进行存储器容量扩展,用高两位地址A 14、A 15通过2:4译码器实现4组中选择一组。
画出逻辑框图如下。
(1) (2) (3) (4)(5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) CPUD 0~D 31RAS 0RAS 1RAS 2RAS 3A 0~A 13A 14 A 15A 0~A 6A 0~A 6 A 0~A 6 A 0~A 6 WE WE2-4 译码RASD 0~7 D 8~15 D 16~23 D 24~31D 0~7 D 8~15 D 16~23 D 24~31D 0~7 D 8~15 D 16~23 D 24~31D 0~7 D 8~15 D 16~23 D 24~31WEWEWERASRASRAS(2) 设刷新周期为2ms ,并设16K ?8位的DRAM 结构是128?128?8存储阵列,则对所有单元全部刷新一遍需要128次(每次刷新一行,共128行)若采用集中式刷新,则每2ms 中的最后128??s=64?s 为集中刷新时间,不能进行正常读写,即存在64?s 的死时间若采用分散式刷新,则每1?s 只能访问一次主存,而题目要求CPU 在1μS 内至少要访问一次,也就是说访问主存的时间间隔越短越好,故此方法也不是最适合的比较适合采用异步式刷新:采用异步刷新方式,则两次刷新操作的最大时间间隔为s msμ625.151282=,可取?s ;对全部存储单元刷新一遍所需的实际刷新时间为:?s ?128=;采用这种方式,每?s 中有?s 用于刷新,其余的时间用于访存(大部分时间中1?s 可以访问两次内存)。
4、有一个1024K ×32位的存储器,由128K ×8位的DRAM 芯片构成。
问: (1) 总共需要多少DRAM 芯片? (2) 设计此存储体组成框图。
(3) 采用异步刷新方式,如单元刷新间隔不超过8ms ,则刷新信号周期是多少? 解:(1) 需要32488128321024=⨯=⨯⨯K K 片,每4片为一组,共需8组(2) 设计此存储体组成框图如下所示。
(3) 设该128K ?8位的DRAM 芯片的存储阵列为512?256?8结构,则如果选择一个行地址进行刷新,刷新地址为A 0?A 8,那么该行上的2048个存储元同时进行刷新,要求单元刷新间隔不超过8ms ,即要在8ms 内进行512次刷新操作。
采用异步刷新方式时需要每隔s msμ625.155128=进行一次,可取刷新信号周期为?s 。
5、要求用256K×l6位SRAM 芯片设计1024K×32位的存储器。
SRAM 芯片有两个控制端:当CS 有效时,该片选中。
当W/R =1时执行读操作,当W/R=0时执行写操作。
解:片82416256321024=⨯=⨯⨯K K ,共需8片,分为4组,每组2片即所设计的存储器单元数为1M ,字长为32,故地址长度为20位(A 19~A 0),所用芯片存储单元数为256K ,字长为16位,故占用的地址长度为18位(A 17~A 0)。
由此可用字长位数扩展与字单元数扩展相结合的方法组成组成整个存储器字长位数扩展:同一组中2个芯片的数据线,一个与数据总线的D 15~D 0相连,一个与D 31~D 16相连;其余信号线公用(地址线、片选信号、读写信号同名引脚互连)字单元数扩展:4组RAM 芯片,使用一片2:4译码器,各组除片选信号外,其余信号线公用。
其存储器结构如图所示6、用32K ×8位的E 2PROM 芯片组成128K ×16位的只读存储器,试问: (1) 数据寄存器多少位? (2) 地址寄存器多少位?(3) 共需多少个E 2PROM 芯片? (4) 画出此存储器组成框图。
解:(1) 系统16位数据,所以数据寄存器16位(2) 系统地址128K =217,所以地址寄存器17位(3)共需片82483216128=⨯=⨯⨯K K ,分为4组,每组2片(4) 组成框图如下~A 147.某机器中,已知配有一个地址空间为0000H ?3FFFH 的ROM 区域。
现在再用一个RAM 芯片(8K ×8)形成40K ×l6位的RAM 区域,起始地为6000H 。
假设RAM 芯片有CS 和WE 信号控制端。
CPU 的地址总线为A 15?A 0,数据总线为D 15?D 0,控制信号为W R / (读/写),MREQ (访存),要求:(1) 画出地址译码方案。
(2) 将ROM 与RAM 同CPU 连接。
解:(1) 由于RAM 芯片的容量是8K ×8,要构成40K ×16的RAM 区域,共需要 片1025881640=⨯=⨯⨯K K ,分为5组,每组2片;8K=213,故低位地址为13位:A 12~A 0每组的2片位并联,进行字长的位扩展有5组RAM 芯片,故用于组间选择的译码器使用3:8译码器,用高3位地址A 15~A 13作译码器的选择输入信号 地址分配情况:(2) ROM、RAM与CPU的连接如图:8、设存储器容量为64M ,字长为64位,模块数m=8,分别用顺序和交叉方式进行组织。
存储周期T =100ns ,数据总线宽度为64位,总线传送周期,?=50ns 。
求:顺序存储器和交叉存储器的带宽各是多少? 解:顺序存储器和交叉存储器连续读出m = 8个字的信息总量都是:q = 64位×8 = 512位顺序存储器和交叉存储器连续读出8个字所需的时间分别是:t 1 = mT = 8×100ns = 8×10-7st 2 = T+(m-1)τ = 100ns+7×50ns = 450 ns = ×10-7 s顺序存储器和交叉存储器的带宽分别是: W 1=q/t 1=512/(8×10-7)=64×107[位/s] W 2=q/t 2=512/×10-7)=×107 [位/s]9、CPU 执行一段程序时,cache 完成存取的次数为2420次,主存完成存取的次数为80次,已知cache 存储周期为40ns ,主存存储周期为240ns ,求cache /主存系统的效率和平均访问时间。
解:cache 的命中率:%8.968024202420=+=+=m c c N N N h主存慢于Cache 的倍率:640240===c m t t r Cache/主存系统的效率:%2.86968.0561)1(1=⨯-=-+=h r r e平均访问时间:ns e t t c a 4.46862.040===10、已知cache 存储周期40ns ,主存存储周期200ns ,cache/主存系统平均访问时间为50ns ,求cache 的命中率是多少?解:已知cache /主存系统平均访问时间t a =50ns 由于m c a t h t h t )1(-+*= 所以有%75.934020050200=--=--=c m a m t t t t h11、某计算机采用四体交叉存储器,今执行一段小循环程序,此程序放在存储器的连续地址单元中,假设每条指令的执行时间相等,而且不需要到存储器存取数据,请问在下面两种情况中(执行的指令数相等),程序运行的时间是否相等。
(1) 循环程序由6条指令组成,重复执行80次。
(2) 循环程序由8条指令组成,重复执行60次。
解:设取指周期为T ,总线传送周期为τ,每条指令的执行时间相等,并设为t 0,存储器采用四体交叉存储器,且程序存放在连续的存储单元中,故取指令操作采用流水线存取方式,两种情况程序运行的总的时间分别为: (1) t = (T+5τ+6t 0)*80 = 80T+400τ+480 t 0 (2) t = (T+7τ+8t 0)*60 = 60T+420τ+480 t 0 所以不相等12、一个由主存和Cache 组成的二级存储系统,参数定义如下:T a 为系统平均存取时间,T 1为Cache 的存取时间,T 2为主存的存取时间,H 为Cache 命中率,请写出T a 与T 1、T 2、H 参数之间的函数关系式。
解:21)1(T H T H T a *-+*=13、一个组相联cache 由64个行组成,每组4行。