word文档资源下载
计算机组成原理
疑难知识点与错题笔记
1.1.只有当程序执行时才将源程序翻译成机器语言,并且依次只能翻译一行语句,边翻译边执行的是什么程序?把汇编语言源程序转变为机器语言程序的过程是什么?
答:解释;汇编。解释程序的特点是翻译一句执行一句,边翻译边执行;由高级语言转化为汇编语言的过程称为编译,把汇编语言源程序翻译成机器语言的过程称为汇编。
1.1.1.将高级语言源程序转换为机器级目标代码文件的程序是?
答:编译程序。翻译程序有两种:①编译程序;②解释程序。编译程序分两步:编译和汇编
1.1.2.编译程序和解释程序的区别?
编译程序和解释程序的作用都是将高级语言程序装换成机器语言程序。
1.2.冯·诺依曼机的基本工作方式是什么?
答:控制流驱动方式。早期的冯·诺依曼机以运算器为中心,且是单处理机。冯·诺依曼机最根本的特征是采用“存储程序”原理,将指令以代码的形式事先输入到计算机主存当中,然后按照程序的规定顺序执行。
1.3.MAR和MDR的位数分别为?
答:地址码长度,存储字长
1.4.运算器中有哪些硬件?
答:运算器的核心部分是算数逻辑运算单元。运算器通常包含若干通用寄存器,用于暂存操作数和中间结果,如累加器、乘商寄存器、操作数寄存器、变址寄存器、基址寄存器等,其中前三个寄存器是必须具备的。还有程序状态寄存器
1.4.1.地址寄存器在运算器中吗?
答:不在
1.5.数据库系统属于系统软件吗?
答:不属于;数据库系统是指在计算机系统中引入数据库后的系统,比计算机系统更高一级;一般由数据库、数据库管理系统、应用系统、数据库管理员构成,其中数据库管理系统属于系统程序。
1.6.什么是相联存储器?
答:相联存储器既可以按地址寻址又可以按内容(通常是某些字段)寻址,为与传统存储器区别,又称按内容寻址的存储器。
1.7.机器字长、指令字长、存储字长、数据字长的区别和联系是什么?
答:机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。机器字长等于用于整数运算的ALU位数和通用寄存器宽度。
指令字长:一个指令字中包含的二进制代码的位数。
存储字长:一个存储单元存储的二进制代码的长度,等于MDR的位数。
数据字长:数据总线一次能并行传送信息的位数,它可以不等于MDR的位数。
它们都必须是字节的整数倍。
指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2次访存来取出一条指令,因此取指周期为机器周期的两倍;若指令字长等于存储字长,则取指周期等于机器周期。
1.8.机器周期、时钟周期联系?
答:机器周期也称为CPU周期。一个机器周期有多个CPU时钟周期。
CPU时钟周期,通常也称节拍脉冲或T周期,它是CPU中最小的时间单位
1.9.在CPU寄存器中,哪些寄存器对用户完全透明?
答:程序计数器、状态寄存器、通用寄存器对汇编程序员可见,不透明;
IR、MAR、MDR对程序员不可见,透明。
1.10.CPU的CPI与什么因素有关?
答:系统结构、指令集、计算机组织都会影响CPI。而时钟频率并不会影响CPI,无论主频快慢,指令需要的时钟周期个数都固定(即CPI固定)
1.11.会计电算化属于科学计算方面的应用?
答:错;会计电算化属于计算机数据处理方面的应用
2.1.有C语言片段:short si=-32767;unsigned short usi=si;执行这两句后,usi的值为?
答:32769;short与unsigned short类型占两字节,16bit;short数据表示范围-32767-+32767,unsigned short数据表示范围0-65535。c语言在内存中以补码形式存储,所以si在内存中二进制的存储形式为1000 0000 0000 0001.
2.2.对真值0表示形式唯一的机器数是?
答:补码和移码;
假设位数为5位,则
[+0]原=00000,[-0]原=10000
[+0]反=00000,[-0]反=11111
[+0]补=00000,[-0]补=00000
[+0]移=10000,[-0]移=10000
2.3.定点小数反码[X]反=x0.x1···xn表示的数值范围是?
答:-1+2-n ≤ x ≤ 1-2-n
2.4.若定点整数为64位,含一位符号位,采用补码表示,所能表示的绝对值最大负数为?
答:-263;
2.5.设[X]补=1.x1x2x3x4,当x1x2x3x4满足什么条件时,x<-1/2成立?
答:x1必须为0,x2x3x4任意。[-1]补=1.0000,小于-1/2,[-]原=1.1000,比-小的原码x2x3x4位至少有一位是1就可以,换成补码就是x1必须为0,x2x3x4至少有一位是1。
2.6.设[X]补=1,x1x2x3x4x5x6,当x1x2x3x4x5x6满足什么条件时,x>-32成立?
答:x1为1,x2···x6中至少有一位为1。
2.7.设x为真值,x为其绝对值,满足[-x]补=[-x]补,x在什么情况下成立?
答:当x为0或正数时。
2.8.什么是模2补码?什么是模4补码?
答:模2补码就是单符号位补码,模4补码就是双符号位补码。模4补码在存储时并没有增加存储负担,而是在计算时复制符号位达到双符号位的效果,即模4补码在存储时只需要一个符号位。
2.9.什么是符号位的进位与最高数值位的进位?什么运算中用到它们?
答:在二进制加减法溢出判断时用到它们,符号位的进位指的是符号位相加后的进位数值,最高数值位的进位指的是最高数值位相加后产生的进位,若两者不同则溢出。
2.10.若[X]补=X0.X1X2···Xn,其中X0为符号位,X1为最高位。X0X1在什么情况下,当补码左移时,将会发生溢出。
答:X0 ≠ X1;
2.11.某字长为8位的计算机中,已知整型变量x,y的机器数分别为[x]补=1 1110100,[y]补=1 0110000。若整型变量z=2x+y/2,则z的机器数为?
答:1 1000000;
2.12.逻辑右移与算数右移的区别?
答:逻辑右移包括符号位也要移,算数右移只移数值位,符号位不变。
2.13.IEEE754标准的浮点数的单精度双精度指的是什么?
答:单精度指的是32位二进制数表示,双精度表示64位二进制数表示。
2.14.定点数的运算
总结:乘除全用的是补码计算,无论表明是原码计算凡是用补码计算,在计算式全部用补码进行的加减,两者最大区别是符号位不参与计算。
2.14.1.定点数的加减法运算
(1)原码定点数加减法运算
正常加减,注意计算结果符号位可能被溢出去掉。
(2)补码定点数加减法运算
这是计算机的计算方式。
首先确定两个数为补码形式,接着正常计算,符号位也参与运算,若产生溢出,直接舍弃溢出位。得到的值为结果的补码形式。
计算式会遇到[x]补转[-x]补,转换方法是取x]补的补码,然后符号位取反。
会有溢出判断,有三种方式①一位符号位判断,公式是V=;②符号位进位与最高数值位进位判断;③双符号位判断。
2.14.2.定点数的乘法运算
(1)原码一位乘法
①步骤
1)用异或逻辑算法算符号位,两数取绝对值参与运算(计算时符号位置零)
2)乘商寄存器放乘数,被乘数放通用寄存器,依次逻辑右移,将每次求和得到的部分积放到CLU中,乘数绝对值有几位逻辑右移几次。
(2)补码一位乘法(Booth)
①步骤
1)符号位参与运算,运算的数用补码表示。
2)被乘数一般取双符号位参与运算,部分积取双符号位,初值为0,乘数可取单符号位。
3)乘数末位增设附加位yn+1,且初值为0。
4)yn-yn+1=0,部分积加0,计算结果右移一位;yn-yn+1=-1,部分积加乘数的补码,计算结果右移一位;yn-yn+1=1,部分积加乘数相反数的补码,计算结果右移一位。
5)重复步骤4) n+1次,最后一次计算结果不用再移位(共计n+1次累加和n次右移),最后一次应该是最开始的符号位—数值位最高位。
2.14.3.定点数的除法运算
(1)原码除法运算(不恢复余数法/原码加减交替法)
①步骤
1)计算符号位,符号位不参与运算。
2)求被除数、除数的补码,除数相反数的补码,因为除法需要减法运算。此时除数和被除数都是正数,因为符号位不参与计算。
3)直接拿被除数(补码)减除数(补码),如果余数大于0,终止计算,因为定点小数只能表示小于1的小数,除得的结果大于1无法表示。余数小于0,为负,商0,余数和商左移一位,加除数(补码),计算余数。
4)经计算得余数,余数为正商1,余数和商左移一位,加除数相反数的补码;余数为负商0,余数和商左移一位,加除数(补码)。
5)经过N+1或N+2轮,得到商,商是左移了N次,N+1是因为步骤3)多了一步,N+2是因为多步骤3)和最后一步若余数是个负值要商0加余数,这次在加余数的时候不用左移,得到正确的余数。求得的商和余数是补码,但商和余数是正数,原码等于补码。
(2)补码除法运算(补码加减交替法)
①步骤
1)符号位参与运算,除数和被除数用补码表示,商和余数都是补码。
2)若被除数与除数同号,被除数减去除数;若被除数与除数异号,被除数加上除数。
3)若余数和除数同号,则商1,余数和商都左移一位,余数减去除数;若余数和除数异号,商0,余数和商都左移一位,余数加上除数。
4)重复步骤3)
5)若对商的精度没有特殊要求,则一般采用“末尾恒置1法”。
2.15.定点数原码一位乘法与补码一位乘法(Booth)的区别?
2.16.定点数的原码补码除法运算与区别
2.17.浮点数的运算
2.17.1.浮点数的加减运算
答:浮点数的加减运算一律采用补码!
步骤:(1)对阶;阶码小的向大的对齐,无论正负。阶码小的尾数右移即算术右移
(2)位数求和
(3)规格化
(4)舍入
(5)溢出判断
2.18.长度相同、格式相同的两种浮点数,假设前者基数大,后者基数小,其他规定均相同,则它们可表示的数的范围和精度怎么样?
答:前者表示的数的范围大但精度低。精度是指N=rE*M里面的r。
2.19.在规格化浮点运算中,若某浮点数为25×1.10101,其中尾数为补码表示,则该数需要规格化吗?怎么规格化?
答:需要将尾数左移一位规格化。
2.19.1.什么时候浮点数规格化需要左规?
答:原码表示时,数值位最高位为0需要左规;
补码表示时,数值位最高位与符号位相同需要左规;
左规时可能需要进行多次
2.19.2.什么时候浮点数规格化需要右规?
答:尾数出现溢出,也就是两位符号位不一致时需要右规。
右规时最多只需要一次。
2.19.3.原码表示的浮点数规格化后尾数M取值范围?
答:正数:1/2 ≤ M≤(1-2-n)
负数:-(1-2-n)≤ M≤ -1/2
注意:原码表示的浮点数规格化后不能表示-1/2到1/2
2.19.4.补码表示的浮点数规格化后尾数M取值范围?
答:正数:1/2 ≤ M≤(1-2-n)
负数:-1≤ M≤ -(1/2+2-n)
注意:补码表示的浮点数规格化后不能表示-(1/2+2-n)到1/2
2.20.浮点数格式如下:7位阶码,1位数符,8位尾数,若阶码用移码,尾数用补码表示,则浮点数所能表示数的范围是多少?
答:-263 _______ (1-2-8)×263
阶码最大表示263,偏置值为2n-1-1,该题偏置值是63,阶码不能全1或全0。
用补码表示的尾数范围是-1—1-2-8
2.21.采用规格化的浮点数主要是为了方便浮点数运算?
答:错;无论是否规格化,都需要对阶然后计算。采用规格化的浮点数主要是为了增加数据的表示精度。
2.22.已知X=-0.875×21,Y=0.625×22,设浮点数格式为阶符1位,阶码2位,数符1位,尾数3位,通过补码求出Z=X-Y的二进制浮点数规格化结果为?
答:解题步骤:
(1)求XY的二进制机器码(无论是否规格化都要对阶,不用规格化)
①-0.875=-7/8 → -0.111 尾数三位,除以8等于向右移三位;X机器码为0 01 1 001(补码运算)
②0.625=5/8→ 0.101 X的机器码为 0 10 0 101
(2)对阶
Y 0 10 0 101
X 0 10 1 100
(3)尾数相加
[-Y]补=1 011
1 100
1 011
10 111
(4)规格化
尾数相加溢出需右移同时阶码加1
计算结果 0 11 1 011
(5)判溢出
判断的是阶码溢出情况,无溢出。
2.23.在算数移位的情况下,双符号位的移位操作只有低符号位需要参与移位操作。
答:对;
2.24.浮点数什么时候会出现下溢?
答:左规时,阶码要减小,可能会下溢。
2.25.加法器中每位的进位生成信号g表达式是什么?
答:g=XiYi;相与全1则为1。
加法器中有进位生成信号g和进位传递信号p;g=XiYi;p=Xi⨁Yi
Ci=Gi+PiCi-1,全一G有效,一个1一个0再加上低位的进位表达式后面有效,或操作一个有效就可以生成进位信号。
3.1.顺序存取存储器、直接存取存储器、随机存取存储器和只读存储器有哪些?
答:
随机存取存储器:RAM
只读存取存储器:ROM
3.2.某一SRAM芯片,其容量为1024×8位,除电源和接地端外,该芯片的引脚的最小数目为?
答:20或21,选择题有哪个选哪个。
地址线10根,数据线8根,片选线,读/写控制线,读写控制线可能1根可能2根
3.3.某一DRAM芯片,采用地址复用技术,其容量为1024×8位,除电源和接地端外,该芯片的引脚数最少是几根?(读写控制线两根)
答:17根;地址线5根,数据线8根,行通选和列通选(片选线用行通选代替),读/写控制线。
3.4.某计算机系统,其操作系统保存于硬盘上,其内存储器应该采用什么存储器?
答:RAM和ROM;不能只写一个。因计算机的操作系统保存在硬盘上,所以需要BIOS的引导程序将操作系统引导到主存(RAM)中,而引导程序则固化在ROM中。
3.5.EPROM是可改写的,因此可以作为随机存储器?
答:错,随机存储器(RAM)是断电丢失的内存。EPROM擦写次数有限,且读写速度慢。
3.6.地址码如何通过片选信号选中某个芯片?
答:给译码器输入机器码,译码器通过计算输出信号比如3-8译码器,输入三位机器码,输出端为8根信号线,通过计算给某条选通线输入信号,如果芯片太多,比如4M×16,需要4096根选通线,则分为行译码器和列译码器
3.7.某计算机存储器按字节编址,主存地址空间大小为64MB,现用4M×8位的RAM芯片组成32MB的主存储器,则存储器地址寄存器MAR的位数至少是多少位?
答:26位;该题是说设计是按64MB设计的,但实际是32MB的内存条,寄存器应该是多少位来存储地址,肯定是按设计的来。
3.8.某计算机主存按字节编址,由4个64M×8位的DRAM芯片采用交叉编址方式构成,并与宽度为32位的存储器总线相连,主存每次最多读写32位数据。若double型变量x的主存地址为804 001AH,则读取x需要的存储周期是多少?
答:3;由4个DRAM芯片采用交叉编址方式构成主存可知,主存地址最低两位代表芯片编号。double类型变量占64位,最低两位10,代表从第三块芯片读数据,一个周期最多读32位,则需要三个周期才能读完。如下图:
开始读
结束
3.9.某存储系统,主存容量是Cache容量的4096倍,Cache被分为64个块,当主存地址和Cache地址采用直接映射方式时,地址映射表的大小应为多少?假设不考虑一致维护和替换算法位。
答:64×13bit;直接映射方式的地址映射表是由有效位、脏位、替换控制位和标记位组成,组号由计算机硬件直接访问,不需要在表里设置组号位。脏位和替换控制位不算,还剩有效位和标记位,标记位该题是212中的指数12.再加上有效位1位,也就是地址映射表每行13位,一共64行。所以地址映射表大小为64×13bit。
3.10.对于由高速缓存、主存、硬盘构成的三级存储体系,CPU访问该存储系统时发送的地址是虚拟地址吗?
答:错,是主存物理地址。只有在虚拟存储器中,CPU发出的才是虚拟地址,这里并未指出是虚拟存储系统。
3.11.采用指令Cache与数据Cache分离的主要目的是?
答:减少指令流水线资源冲突。把指令Cache与数据Cache分离后,取指和取数分别到不同的Cache中寻找,则指令流水线中取指部分和取数部分就可以很好地避免冲突,即减少了指令流水线地冲突。
3.12.页式虚拟存储器的页面若很小,主存中存放的页面数较多,导致缺页频率降低,换页次数减少,最终可以提升操作速度。
答:页式虚拟存储器中,页面若很小,虚拟存储器包含的页面数就会过多,使得页表的体积过大,导致页表本身占据的存储空间过大,使操作速度变慢。
3.13.缺页处理完成后回到发生缺页的指令的下一条指令执行。
答:错;缺页处理由缺页中断处理程序完成,根据发生缺页故障的地址从外存读入所缺失的页,缺页处理完成后回到发生缺页的指令继续执行。
3.14.假定主存地址为32位,按字节编址,主存和Cache之间采用直接映射方式,主存块大小为4个字,每字32位,采用回写方式,则能存放4K字数据的Cache的总容量的位数至少是多少?
答:148K;
Cache由标记阵列容量和存储容量构成;
标记阵列容量由有效位、脏位、替换控制位和标记位Tag构成;
主存地址为32位由标记、Cache组号和块内地址构成;主存地址中的标记就是标记阵列容量中的标记位Tag。
该题存储容量为4k×32bit,标记阵列容量由有效位、脏位和标记位构成,有效位和脏位都是1位,标记位就是主存地址中的标记。主存地址Cache组号4K/4=1K=210确定,为10位。块内地址是4位,由每块存储16字节确定。所以主存地址中的标记是32-10-4=18位。标记阵列容量有20×1K位,Cache容量为128K+20K=148Kbit。
4.1.指令系统是计算机软/硬件的界面?指令系统和机器语言是无关的?
答:指令系统是计算机软/硬件的界面,指令系统和机器语言是有关。指令系统是计算机硬件的语言系统。
4.2.CPU执行指令的过程中,指令的地址有谁给出?
答:程序计数器(PC)
4.3.程序控制指令有什么?中断隐指令是程序控制指令吗?
答:无条件转移、有条件转移、子程序调用和返回指令、循环指令等。中断隐指令是由硬件实现的,并不是指令系统中存在的指令,更不可能属于程序控制类指令。
4.4.单地址指令是固定长度的指令?
答:错;指令的地址个数与指令的长度是否固定没有必然联系,即使是单地址指令也可能由于单地址的寻址方式不同而导致指令长度不同。
4.5.单地址指令可能有一个操作数,也可能有两个操作数?
答:对;地址码指明一个操作数,另一个操作数来自于隐含寻址。
4.6.一个计算机系统采用32位单字长指令,地址码为12位,若定义了250条二地址指令,则还可以有多少条单地址指令?
答:24K;二地址指令250条由8位地址表示,8位地址一共可以表示256个数据,单地址则把12地址码改为操作码,则单地址指令可以有6*212=24K。
4.7.常见的寻址方式有哪些?
答:寻址分为指令寻址和数据寻址。
指令寻址有顺序寻址和跳跃寻址。
数据寻址有:(1)隐含寻址
(2)立即寻址
(3)直接寻址
(4)间接寻址
(5)寄存器寻址
(6)寄存器间接寻址
(7)相对寻址
(8)基址寻址
(9)变址寻址
(10)堆栈寻址
4.8.指令系统采用不同寻址方式的作用是什么?
答:可缩短指令字长,扩大寻址空间,提高编程的灵活性。
4.9.为了缩短指令中某个地址段的位数,有效的方法是采取什么寻址方式?
答:寄存器寻址;寄存器寻址中,只需指定寄存器的编号,因此能有效地缩短地址码的位数。
4.10.简化地址结构的基本方法是尽量采用什么寻址方式?
答:隐地址;隐地址不给出明显的操作数地址,而在指令中隐含操作数的地址,因此可以简化地址结构,如零地址指令。
4.11.设指令中的地址码为A,变址寄存器为X,程序计数器为PC,则变址间址寻址方式的操作数的有效地址EA是?
答:((X)+A);注意两对括号表达含义。(X)指的是X里面存的数据是一个地址偏移量,该题要求的是变址间址寻址,变址后还需要间接寻址一次。(X)+A得到的是一个地址如果是变址寻址到现在可以停止,但还有一次间接寻址,取变址后地址里面保存的数据,才是最终的答案。
4.12.堆栈寻址方式中,设A为累加器,SP为堆栈指示器,Msp为SP指示的栈顶单元。若进栈操作的动作是(A)→Msp,(SP)-1→SP,则出栈操作的动作应该是(Msp)→A,(SP)-1→SP吗?
答:错;由题干知该题先存数再变SP,可知SP指向的是一个空地址。应该先(SP)-1→SP,再(Msp)→A。
4.13.在多道程序设计中,最重要的寻址方式是?
答:相对寻址;在多道程序设计中,各个程序段可能要在内存中浮动,而相对寻址特别有利于程序浮动。
4.14.程序的浮动指的是什么?和程序的转移有什么区别?
答:程序的无条件浮动和条件浮动指的是程序在内存中的位置发生了改变。程序的无条件转移和条件转移可以采用跳跃寻址方式实现
4.15.某机器有一个标志寄存器,其中有进位/借位标志CF、零标志ZF、符号标志SF和溢出标志OF,条件转移指令bgt(无符号整数比较大于时转移)的转移条件是?
答:;当两数相减小于零时借位标志CF=1,当两数相等时两数相减后ZF=0,满足这两种条件的表达式是CF+ZF=1,再将其取反就是两数比较大于0的表达式。
4.16.某计算机有16个通用寄存器,采用32位定长指令字,操作码字段(含寻址方式位)为8位,Store指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式。若基址寄存器可使用任一通用寄存器,且偏移量用补码表示,则Store指令中偏移量的取值范围是多少?
答:-32768—32767;首先要确定表示偏移量的位数是多少,指令是32位,8位是操作码;源操作数保存在16个通用寄存器中,用4位就可以覆盖;目的操作数需要保存基址和偏移量,基址保存在寄存器中,也是4位就可以覆盖,剩下的就是偏移量32-8-4-4=16位。16位的补码表示范围则是-32768—32767。
4.17.对按字寻址的机器,程序计数器和指令寄存器的位数取决于?
答:存储器的字数,指令字长。
4.18.算数与逻辑运算指令,通常完成算数运算或逻辑运算,都需要两个数据,这句话对吗?
答:算数逻辑运算指令用于完成对一个(如自增、取反等)或两个数据的算数运算或逻辑运算。
4.19.某计算机采用大端方式,按字节编址。某指令中操作数的机器数为1234 FF00H,该操作数采用基址寻址方式,形式地址(用补码表示)为FF12H,基址寄存器的内容为F000 0000H,则该操作数的LSB(最低有效字节)所在地址是多少?
答:EFFF FF15H;
形式地址代表着偏移量,计算最终地址不能拿补码表示的偏移量和基址寄存器中的无符号数进行运算,形式地址换为原码FFEEH→ -00EEH,F000 0000H±00EEH=EFFF FF12H,这是操作数第一个字节12H的保存位置,操作数的最低有效字节是00H,在EFFF FF12H的基础上再加3就是操作数的LSB所在地址EFFF FF15H。
该题中的16进制原码加减法要注意一下:
F000 0000
5.1.控制器由什么组成?
答:程序计数器、指令寄存器、指令译码器、存储器地址寄存器、存储器数据寄存器、时序系统和微操作信号发生器等主要的7种。
5.2.运算器由什么组成?
答:算数逻辑单元、暂存寄存器、累加寄存器、通用寄存器组、程序状态字寄存器、移位器和计时器等主要的7种。
5.3.通用寄存器是可编程指定多种功能的寄存器?
答:通用寄存器对用户是可见的,所以可编程。
5.4.PC的值由CPU在执行指令过程中进行修改吗?
答:对,在取指周期末进行修改。
5.5.程序计数器的位数取决于什么?
答:存储器的容量,存储器的字数。比如主存空间4GB,字长32位,PC至少(232B/4B=230)30位。
5.6.CPU中通用寄存器的位数取决于什么?
答:机器字长
5.7.地址译码器在CPU中吗?
答:不在;地址译码器是主存等存储器的组成部分,其作用是根据输入的地址码唯一选定一个存储单元,它不是CPU的组成部分。
5.8.间址周期结束时,CPU内寄存器MDR中的内容为?
答:操作数地址。间址周期的任务是取操作数有效地址。
5.9.某计算机的主存空间为4GB,字长为32位,按字节编址,采用32位字长指令字格式。若指令按字边界对齐存放,则程序计数器和指令寄存器的位数至少分别是?
答:30,32;程序计数器的位数取决于存储器的字数,所以(232B/4B=230)30位,指令寄存器的位数取决于字长(32位)。
5.10.冯·诺伊曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是指令操作码的译码结果吗?
答:不是;依据是指令周期的不同阶段。取指周期取出的是指令,执行周期取出的是数据。
5.11.采用DMA方式传递数据时,每传送一个数据就要占用多长时间?
答:DMA(Direct Memory Access)直接存储器访问,是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。
传送数据就是存储器进行读或写操作,则占用一个存取周期。存取周期指的是存储器进行两次独立的存储器操作。
5.12.指令周期是指CPU执行一条指令的时间?
答:指令周期是指CPU从主存取出一条指令加上执行这条指令的时间。
5.13.指令根据地址寄存器从主存中读出?
答:指令根据程序计数器从主存中读出,地址寄存器只是一个中间暂存的存储器,不是根源。
5.14.为了进行取指操作,控制器需要得到相应的指令?
答:取指操作是控制器自动进行的,不需要得到相应的指令。
5.15.取指操作是控制器自动进行的?
答:对
5.16.执行各条指令的机器周期数可变,各机器周期的长度均匀?
答:执行各条指令的机器周期数可变,各机器周期的长度可变。机器周期的节拍数可以不相等,指令的机器周期长度相等的称为定长的机器周期,指令内机器周期长度不相等的称为不定长的机器周期。
5.17.所有指令的间址操作都是相同的?
答:指令的间址分为一次间址,两次间址和多次间址,因此它们的操作是不同的。并且存储器间接寻址和寄存器间接寻址,它们的操作是不同的。
5.18.CPU相应中断的时间是什么时候?
答:一条指令执行结束时发生CPU相应中断。
5.19.所有指令的取指操作时是相同的?
答:不同长度的指令,其取指操作可能是不相同的。例如双字指令、三字指令与单字指令的取指操作是不相同的。
5.20.为了硬件设计方便,指令字长都和存储字长一样大?
答:指令字长一般取字节或存储字长的整数倍,而不一定都和存储字长一样大。若指令字长等于存储字长,则取指周期等于机器周期。
5.21.在单总线的CPU中,ALU的一个输入端可与总线相连,其输出端也可与总线相连?
答:错;ALU的输出端也不能直接与内部总线相连,否则其输出又会通过总线反馈到输入端,影响运算结果,因此输出端需要一个暂存器(用来暂存结果的寄存器)与总线相连。
5.22.采用CPU内部总线的数据通路与不采用CPU内部总线的数据通路相比,前者的性能较高,硬件量大,实现难度高,后者的数据冲突问题较严重?
答:不采用CPU内部总线的数据通路指的是专用数据通路方式。采用CPU内部总线方式的数据通路的特点:结构简单,容易实现,性能较低,存在较多的冲突现象;不采用CPU内部总线方式的数据通路的特点:结构复杂,硬件两大,不易实现,性能高,基本不存在数据冲突现象。
5.23.相对于微程序控制器,硬布线控制器的特点是什么?
答:硬布线控制器执行速度更快,指令功能的修改和扩展更难。硬布线控制器的工作原理是位操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生。在RISC中适用。
5.24.某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有几位?
答:15位;每类指令还要再加上1,表示不执行(0···0),四类也就是8、4、13、6、7,对应的可以表示的位数就是3、2、4、3、3,加起来15位。
5.25.某计算机采用微程序控制器,共32条指令,公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成,采用断定法(下地址字段法)确定下条微指令地址,则微指令中下地址字段的位数至少是几位?
答:8;一条指令对应一个微程序,一个微程序由多条微指令组成,该题一个微程序平均由4条微指令构成,一共有32*4+4=130条微指令,控制存储器共有130条微指令,则需要8位地址来表示,7位只能表示128条微指令。
5.26.某带中断的计算机指令系统共有101种操作,采用微程序控制方式时,控制存储器相应最少有几个微程序?
答:103;每条指令都会有的取指指令和中断周期的中断服务程序都有微指令,所以应该是103个微程序。若指令系统具有n种机器指令,则控制存储器中的微程序至少是(n+2)个。
5.27.通常情况下,一个微程序的周期对应一个什么周期?
答:指令周期。一条指令的功能由一段微程序来实现。微指令对应机器周期。微周期指从控制存储器中读取一条微指令并执行相应的微操作所需的时间。
5.28.影响流水线的因素,以及解决办法?
答:影响流水线的因素有三种:(1)资源冲突(结构冒险)(2)数据冲突(数据冒险)(3)控制冲突(控制冒险)
控制冲突是指当流水线遇到转移指令和其他改变PC值的指令而造成断流时。
解决资源冲突的放法有两种:暂停一个时钟周期;单独设置指令存储器和数据存储器
解决数据冲突的方法有三种:暂停一个或几个时钟周期;数据旁路技术;指令编译优化
解决控制冲突的方法有五种:分支预测,尽早生成转移目标地址;预取转移成功和不成功的目标指令(早点算出成功或失败的目标地址);加快和提前形成条件码;提高转移方向的猜准率;在分支指令加入若干空操作可以避免控制冒险。
5.29.超标量流水线是指运算操作并行?
答:错;不止运算操作并行,还有取指阶段,译码阶段,写回阶段都能并行。
5.30.超标量流水线能结合动态调度技术提高指令执行并行性?
答:对;在执行微指令期间需要用到动态调度技术来判断指令间是否存在关联,比如这次指令得到的数据下条指令要用。让没有关联的指令并行运行。
5.31.流水CPU是由一系列称为“段”的处理线路组成的,一个m段流水线稳定时的CPU的吞吐能力,与m个并行部件的CPU的吞吐能力相比怎么样?
答:具有同等水平的吞吐能力。
5.32.流水线数据通路包含什么部件?
答:程序计数器(PC),算数逻辑运算部件(ALU),通用寄存器组,取指部件等,不包含控制部件。由组合逻辑电路和时序逻辑电路组合而成。
5.33.在分支指令加入若干空操作可以避免控制冒险?
答:对。
5.34.流水线按序流动时,在RAW、WAR、WAW中,只可能出现RAW相关?
答:对;若是多条指令并行执行,则三种数据冲突都可能发生。该题流水线是按序流动,不会出现第二条指令写回操作发生在第一条指令的译码操作之前。
6.1.地址总线的宽度由什么决定?
答:主存单元空间大小和I/O设备的数量
6.2.在系统总线的数据线上,指令,操作数,握手信号,中断类型号哪个可以传输,哪个不可以传输?
答:指令,操作数,中断类型号可以传输,握手(应答)信号不可以传输。
中断类型号用以指出中断向量的地址,CPU响应中断请求后,将中断应答信号(INTR)发回数据总线,CPU从数据总线上读取中断类型号后,查找中断向量表,找到相应的中断处理程序入口。
6.3.在总线上,同一时刻只能有一个主设备和一个从设备控制总线传输操作?
答:只有主设备才能获得总线控制权,总线上的信息传输由主设备启动,一条总线上可以有多个设备作为主设备,但在同一时刻只能有一个主设备控制总线的传输操作。
6.4.计算机使用总线结构便于增减外设,同时提高信息的传输速度?
答:计算机使用总线结构便于增减外设,同时减少信息传输线的条数。相对于专线结构,降低了信息传输的并行性和信息的传输速度。
6.5.系统总线中地址线的功能是什么?
答:指定主存和I/O设备接口电路的地址。
6.6.传输一幅分辨率为640×480像素、颜色数量为65536的照片(采用无压缩方式),设有效数据传输率为56kb/s,大约需要的时间是多少?
答:87.77秒;一共有640×480个数据单元,每个单元要存储16位二进制,因为216=65535可以表示65535个数据,所以一共需要传输640×480×16=4915200位数据,4915200/56k≈87.77秒。
6.7.OPI总线是一种点对点全工同步串行总线,总线上的设备可同时接收和发送信息,每个方向可同时传输20位信息(16位数据+4位校验位),每个QPI数据包有80位信息,分两个时钟周期传送,每个时钟周期传递2次。因此,QPI总线带宽为:每秒传送次数×2B×2,若QPI时钟频率为2.4GHz,则总线带宽为多少?
答:2.4G22B*2=19.2GB/s;每秒传输次数为4.8G;注意此处的GB/s,G是10的9次方不是2的30次方。
6.8.在计数器定时查询方式下,各设备的优先级相等,各设备获得总线控制权的机会均等?
答:错;机会有可能不均等。在计数器定时查询方式下,根据计数器的初始值的不同,总线设备的优先级是可变的。若计数器从0开始,则离总线控制器最近的设备具有最高的优先级。若计数值从上一次的中止点开始,则各个设备使用总线的机会均等。
6.9.在总线总裁中,计数器定时查询方式有一根总线请求(BR)和一根设备地址线,若每次计数都从0开始,则设备号小的优先级高?
答:错;在计数器定时方式下,n个I/O接口需要[log2n]根设备地址线。
6.10.计数器定时查询方式不需要总线同意信号?
答:对。计数器定时查询方式只需要总线忙信号线和总线请求信号线,而不需要总线同意信号线。
6.11.同步控制方式是所有指令执行时间都相同的方式?
答:同步控制是指由统一时序控制的通信方式,同步通信采用公共时钟,有统一的时钟周期。同步控制既可用于CPU控制,又可用于高速的外部设备控制。
6.12.同步通信之所以比异步通信具有较高的传输速率,是因为同步通信用一个公用的时钟信号进行同步?
答:不全对;原因有三点该题只说了一点。①不需要应答信号且总线长度较短;②用一个公共的时钟信号进行同步;③各部件的存取时间较接近。
6.13.在异步总线中,传送操作由什么控制?
答:传送操作是由双方按需求分配时间的。
6.14.常用的总线标准
6.15.在现代微机主板上采用局部总线技术的作用是什么?
答:高速设备采用局部总线连接,可以节省系统的总带宽。
7.1.在微型机系统中,I/O设备通过DMA控制器与主板的系统总线相连?
答:错;I/O设备不可能与主板总线相连,它总是通过设备控制器来相连的。DMA控制器只有在通过DMA方式传输时才用DMA控制器与主板的系统总线相连。
7.2.CRT的分辨率为1024×1024像素,像素的颜色数为256,则刷新存储器的每单元字长为多少,总容量为多少?
答:8bit,1MB;颜色数256,用8位就可以表示256种颜色,所以单元字长8位,总容量为8×1024×1024=8×220bit=1MB
7.3.一个磁盘转速为7200转/分,每个磁道有160个扇区每个扇区有512字节,则在理想情况下,其数据传输率为多少?
答:9600KB/s;120×160×512B/1024=9600KB/s,此处的K是210 ,为什么不是1000呢?
7.4.若磁盘转速为7200转/分,平均寻道时间为8ms,每个磁道包含1000个扇区,则访问一个扇区的平均存取时间大约是多少?
答:12.2ms;磁盘的平均存储时间由寻道时间,旋转延迟时间和传输时间三部分构成,有时候可能会有启动磁头时间。寻道时间8ms,旋转延迟时间是60/7200/2≈4.17ms,传输时间是60/7200/1000≈0.01ms;三者相加等于12.18ms≈12.2ms。
7.5.磁盘存储器的最小读写单位为1字节?
答:错;磁盘存储器的最小读写单位是一个扇区,即磁盘按块存取。
7.6.在I/O总线的数据线上传输的信息有什么?
答:I/O总线分为:数据线、控制线和地址线,是I/O设备与CPU连接的线。数据线可以发送数据,命令,状态字,中断类型号(是一种地址);控制线发送读/写信号;地址线传送与CPU交换数据的端口地址。
7.7.中断类型号和中断向量是什么?
答:中断类型号是中断向量的地址;
中断向量是中断服务程序的入口地址。
7.8.只有I/O指令可以访问I/O设备?
答:在统一编址的情况下,访存指令也可以访问I/O设备。
7.9.磁盘驱动器向盘片磁道记录数据时采用串行-并行方式写入?
答:错;采用串行方式写入。
7.10.若设备中断请求的响应和处理时间为100ns,每400ns发出一次中断请求,中断响应所允许的最长延迟时间为50ns,则在该设备持续工作过程中,CPU用于该设备的I/O时间占整个CPU时间的百分比至少是多少?
答:25%;100/400=25%。50ns是迷惑信息。
延迟时间50ns 中断响应和处理时间100ns 设备工作时间250ns
7.11.单级中断系统中,中断服务程序内的执行顺序是:关中断-保存断点-中断事件处理-恢复现场-中断返回?
答:错;关中断-保存断点是由硬件完成。
7.12.中断处理过程?
答:
7.13.响应外部中断的过程中,中断隐指令完成的操作,除保护断点外,还包括关中断,保护通用寄存器的内容,形成中断服务程序入口地址并送PC?
答:中断隐指令包括三个:关中断、保存断点和引出中断服务程序(即题中形成中断服务程序入口地址并送PC)。保护通用寄存器的内容是进入中断服务程序首先进行的操作。
7.14.中断向量地址是中断服务程序的入口地址?
答:错;中断向量地址是中断服务程序的入口地址的地址。
7.15.浮点数运算下溢时。CPU可执行相应的中断服务程序?
答:错;浮点数运算下溢,可以当作机器0处理,不需要中断来处理。
7.16.程序中断方式的中断请求是为了报告CPU数据的传输结束,而DMA方式的中断请求完全是为了传送数据。程序中断方式需要保护现场,DMA方式不需要保护现场?
答:错;程序中断方式需要保护现场,DMA方式不需要保护现场,这句话是对的。但前一句应该是:程序中断方式的中断请求是为了传送数据,而DMA方式的中断请求是为了报告CPU数据的传输结束。
7.17.在每条指令的执行过程中,每个总线周期要检查一次有无中断请求?
答:错;总线周期又称总线的传输周期,指一次总线操作所用的时间(包括申请阶段、寻址阶段、传输阶段和结束阶段),每条指令的执行包含多个总线周期。每条指令又分为取指,间址,执行和中断四个阶段,只有每条指令执行阶段完成时才会检查一次有无中断请求,若有进入中断阶段,若没有进入下一个指令周期。
7.18.检测有无DMA请求,一般安排在一条指令执行过程的末尾?
答:错;只要总线空闲就可检测有无DMA请求,在一个指令周期内,总线空闲的时候有多次,贯穿整个指令周期。
7.19.中断服务程序的最后指令是无条件转移指令?
答:错;中断服务程序的最后指令是中断返回指令,该指令在中断恢复后,即CPU中的所有寄存器都已恢复到中断前的状态,因此该指令不需要无条件转移。
7.20.能产生DMA请求的总线部件是什么?
答:只有具有DMA接口的设备才能产生DMA请求,即使当前设备是高速设备或需要与主机批量交换数据,若没有DMA接口的话,也不能产生DMA请求。
7.21.外部,访管和程序性的中断,它们的优先级由高到低依次是外部,访管和程序性?
答:错;访管指的是进入核心态,大多与资源分配有关。要比外部的中断优先级要高。
7.22.主存故障引起的中断是外中断?
答:错;主存故障引起的中断是机器校验中断,属于内中断。外中断一般是指主存和CPU外的中断,如外设引起的中断等。
7.23.在配有通道的计算机系统中,用户程序需要输入/输出时,一起的中断是程序性中断?
答:错;用户程序需要输入/输出时,需要操作系统提供的接口(请求操作系统服务),此时会引起访管中断,系统由用户态转为核心态。
7.24.在中断周期中,由关中断指令将允许中断触发器置0?
答:错;允许中断触发器置零表示关中断,由中断隐指令完成,即由硬件自动完成。
7.25.在各种I/O方式中,中断方式的特点是CPU与外设串行工作,DMA方式的特点是传送与主程序并行工作?
答:中断方式的特点是CPU与外设并行工作,传送与主程序串行工作
DMA方式的特点是CPU与外设并行工作,传送与主程序并行工作;在传送阶段完全由DMA控制,并不需要CPU。
7.26.程序中断方式和DMA方式中实现数据传送都需要中断请求?
答:错;程序中断方式在数据传输时,首先要发出中断请求,此时CPU中断当前正在进行的操作,转而进行数据传输。DMA方式只是在DMA的预处理和后处理过程中需要用中断的方式请求CPU操作,但在数据传送过程中,并不需要中断请求。
7.27.程序中断方式和DMA方式中都有中断请求,但目的不同?
答:对;程序中断方式的中断请求是为了进行数据传输,DMA方式中的中断请求是为了获得总线控制权或交回总线控制权。
7.28.CPU响应DMA请求的条件是当前总线周期执行完?
答:错;CPU响应DMA请求的条件是当前机器周期执行完。每个机器周期结束后,CPU就可以响应DMA请求。
7.29.DMA方式可用于键盘和鼠标的数据输入?
答:错;DMA方式只能用于数据传输,它不具有对异常事件的处理能力,不能中断现行程序,而键盘和鼠标均要求CPU立即响应。
7.30.某设备以中断方式与CPU进行交换,CPU主频为1GHz,设备接口中的数据缓冲寄存器为32位,设备的数据传输率为50kB/s。若每次中断开销(包括中断响应和中断处理)为1000个时钟周期,则CPU用该设备输入/输出的时间占整个CPU时间的百分比最多是多少?
答:1.25%;
每秒最多传输50kB/4B=12.5k次
一次需要1000个时钟周期;每秒一共需要12.5k*1000=12.5M个时钟周期;
一秒一共有1G个时钟周期,则占比12.5M/1G=1.25%。
7.31.自陷是通过陷阱指令预先设定的一类外部中断事件?
答:错;自陷是一种内部异常。
7.32.采用DMA方式传输数据,数据块大小为512字节,数据缓冲器为32位,则每准备好32位数据,DMA控制器就发出一次总线请求?
答:对。
8.1.机器周期,指令周期,总线周期?
机器周期:机器周期也称为CPU周期。一个机器周期有多个CPU时钟周期。
指令周期:一个指令周期包含多个机器周期,不固定。
总线周期:总线周期又称总线的传输周期,指一次总线操作所用的时间(包括申请阶段、寻址阶段、传输阶段和结束阶段)
第九章 专业名词英文缩写
ACC:累加器
MQ:乘商寄存器
ALU:算数逻辑运算单元
CU:控制单元
IR:指令寄存器
PC:程序计数器
X:操作数寄存器
IX:变址寄存器(Index Register)
BR:基址寄存器(Base address register)
PSW:程序状态字寄存器
MAR:地址寄存器
MDR:数据寄存器
CPI:执行一条指令所需要的时钟周期(Clock cycle Per Instruction)
IPS:每秒执行指令数
FLOPS:每秒执行浮点运算次数(Floating-point Operations Per Second)
CF:进位标志位
MM:主存储器
或:地址片选信号(低电平有效)
DRAM:动态随机存储器
SRAM:静态随机存储器
SAM:顺序存取存储器(Sequential Access Memory)
DAM:直接存取存储器(Direct Memory Access)
EPROM:可擦编程只读存储器(Erasable Programmable Read Only Memory)
RAND:随机算法
FIFO:先进先出算法
LRU:近期最少使用算法(Least Recently Used)
LFU:最不经常使用算法(least frequently used)
EA:有效地址(effective address)
CISC:复杂指令系统计算机
RISC:精简指令系统计算机
FE:取指触发器,对应取指周期
IND:间址触发器,对应间址周期
EX:执行触发器,对应执行周期
INT:中断触发器,对应中断周期
ID:指令译码器(Instruction Decoder)
Nop:空指令
RS:源操作数(source)
Rd:目的操作数(destination)
Imm:立即数(Immediately)
IF:取指
ID:指令译码
OF:取操作数
EX:执行
WB:写回
RAW:写后读
WAR:读后写
WAW:写后写
DB:数据总线
AB:地址总线
CB:控制总线
DMA:直接存储器访问(Direct Memory Access)
BG:总线允许
BR:总线请求
BS:总线忙
ISA:工业标准体系结构(Industry Standard Architecture)
EISA:扩展的ISA(Extended Industry Standard Architecture)
VESA:视频电子标准协会(Video Electronics Standard Association)
PCI:外部设备互联(Peripheral Component Interconnect)
PCI-Express:(PCI-E)
AGP:加速图形接口(Accelerated Graphics Port)
RS-232C:(Recommended Standard)
USB:通用串行总线(Universal Serial Bus)
PCMCIA:(Personal Computer Memory Card International Association)
IDE:继承设备电路(Intergrated Drive Electronics)
SCSI:小型计算机系统接口(Small Computer System Interface)
SATA:串行高级技术附件(Serial Advanced Technology Attachment)
CRT:阴极射线管
LCD:液晶显示器
VRAM:显示存储器(也称刷新存储器)
RAID:廉价冗余磁盘阵列(Redundant Array of Inexpensive Disks)