南大第一学期计算机组成原理期末复习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
冯诺依曼结构计算机的硬件由哪几部分组成?各部分的功能是什么?
运算器:算术逻辑运算
控制器:执行指令
存储器:存放指令和程序
输入/出设备:输入/出各种信息
软件分为两类?系统软件和应用软件
冯诺依曼结构规定计算机内部的程序和数据采用什么方式表示?
采用二进制编码来表示,所有信息都是由0和1组成的序列。
处于软件和硬件交界面的是什么?指令系统
计算机能够直接识别和理解的是什么语言?机器语言
用什么将高级语言程序转换成机器语言程序?编译程序
表示计算机性能的指标有哪些?主频、MIPS、FLOPS、CPI等的含义是什么?
主频:CPU时钟的频率;MIPS:每秒钟多少百万条加法指令;
FLOPS:每秒钟多少条浮点运算指令指令;CPI:每条指令平均时钟周期数
摩尔定律的内容是什么?每18个月集成度翻一翻,速度提高一倍,而价格降低一半
第一台电子计算机ENIAC是否是冯诺依曼结构计算机?为什么?
ENIAC不是冯诺依曼结构计算机。
因为它没有采用二进制表示,也没有采用“存储程序”的工作方式。
什么是“存储程序”工作方式?
将事先编好的程序和原始数据先装入主存中,然后自动按顺序逐条取出指令,在CPU上执行。
也就是说,程序和数据不是直接从磁盘取到CPU中执行的。
什么是“兼容性(或系列机)”的概念?能试举一、两例。
同一个程序可以在不同的机器上执行。
如:Intel X86系列机,IBM370系列机
什么是总线?它的职能是什么?
总线是共享的传输介质。
用于连接多个设备,在部件设备间传输信息。
系统总线由哪几种信号线组成?各自的功能是什么?
由数据线、地址线和控制线组成。
数据线用于传输数据;地址线用于传输地址,包括主存单元地址和I/O端口的地址;控制线用于传输各种控制和状态信息。
什么叫突发传输方式?
突发传输是指一次总线事务中可连续传多个数据。
所以,一次突发总线事务可以完成多个数据的传送。
什么叫总线事务处理?“存储器读”总线事务的过程是什么?
总线上完成一次数据交换的过程,称为一次总线事务。
如:“存储器读”、“存储器写”、“I/O读”等。
“存储器读”事务一般总是先把地址信息和“存储器读”命令同时送到总线上。
总线可否同时连接多个设备?可否多个设备对同时进行传输?
可以同时接多个设备,但同时只能有一对设备使用总线进行传输。
根据总线定时方式,总线分为哪两种?
根据不同定时方式的不同,总线分为两种,一种是同步总线,一种是异步总线。
同步总线中总有一根时钟信号线,用于设备定时。
异步总线是指通过总线中的“就绪”、“完成”等异步应答信号进行定时。
可以将“同步”和“异步”方式结合起来,这种方式称为“半同步”方式。
什么是总线宽度?什么是总线带宽?它们之间的关系是什么?
总线宽度是指总线中数据线的条数。
总线带宽是指总线连续传送信息时每秒钟传输的信息量。
举例说明其关系:
若总线时钟频率为20MHz,总线宽度为32位,假定一次数据传送需要4个时钟周期。
则总线的带宽是?
什么叫总线裁决?
总线裁决是指多个设备要求使用总线时,要有一种方法决定让哪个设备使用总线,这个决定过程称为总线裁决。
有集中和分布两种。
什么叫主(内)存?什么叫辅(外)存?
主存是用半导体元器件实现的,用来存放被启动的程序代码和数据的存储器。
辅存是用磁盘等实现的用来存放系统中所有程序及其数据的大容量慢速存储器。
因此,程序被启动后,首先要和所用数据一起从辅存调到主存。
什么叫ROM?主存地址空间是否包含ROM芯片所占空间?
ROM是Read Only Memory的缩写,表示只读存储器,其数据只能读出,不能写入。
主存地址空间由RAM和ROM两种芯片构成的空间组成。
什么叫易失性?哪些类型的存储器是易失性的?哪些是非易失性的?
易失性存储器的电源掉电后信息就消失了。
如RAM,Cache;非易失性存储器不因电源掉电而丢失信息。
如:各种ROM芯片,闪存、磁盘、磁带、光盘等。
在计算机内部,存储器系统是如何分层的?
按速度从快到慢、容量由小变大、价格由贵到便宜的顺序是:寄存器-Cache-主存-磁盘-磁带和光盘。
半导体存储器芯片的组织:位片式/字片式
位片式(一个字地址中只有一位):如:1Kx1位,需用10位地址,1位数据
字片式(一个字地址中有多位):如:4Kx4位,需用12位地址,4位数据
半导体存储器的组织:位扩展/字扩展
位扩展:位方向上有多个芯片组合;
字扩展:字方向上有多个芯片组合;
例如:用4Kx1位芯片组合成64Kx8位的存储器,则需用16x8个芯片,即:在位方向和字方向上分别扩大8倍和16倍。
存储器地址寄存器(MAR)的位数和寻址空间的关系是什么?
若MAR有n位地址,则寻址空间范围为0~111…1(n个1) ,即:最大的地址为111…1(n个1)
Cache中存放的内容与主存中的内容有何关系?
Cache中存放的内容是主存中的某些内容的副本。
因此程序和数据都可能装入到Cache,所需指令在Cache时就从Cache中读取,而不需再访问主存。
Cache和主存间的数据是如何映射的?有哪几种映射方式?
主存分成若干大小相等的主存块,Cache也分成同样大小的槽,主存块调到Cache时,
有三种映射方式:直接映射、全相联映射和组相联映射。
什么是命中率?什么是平均访问时间?
命中率指100次访问中有多少次在Cache得到信息。
假设CPU执行一段程序时,在Cache中访问到的次数是98,在主存中取到信息的次数是2,则Cache的命中率为98%。
假设Tc和Tm分别表示在Cache和主存中访问一个数据所花的时间,p是命中率,则平均访问时间是多少?
磁表面存储器的性能指标
记录密度(道密度、位密度、面密度):
单位面积或单位长度上存储的信息量。
平均存取时间:
包括道间移动时间(寻道时间)和旋转时间(或等待时间、查找时间)
数据传输率:每秒钟传输的二进制位数
转速:与平均等待时间有关。
例如:若转速为7200转/分时,平均等待时间约为4.2s。
磁盘存储器中记录块的地址如何标识?
柱面号(磁道号)、磁头号(盘面号)和扇区号
磁盘上的数据是如何组织存放的?
按磁道存放,每个磁道有若干扇区,每个扇区一个记录块。
磁盘上的数据访问的过程是什么?
先移动磁头到目标磁道上(寻道过程),再旋转磁盘到要读写数据区(扇区)的起始位置(旋转等待过程),然后开始进行读写。
磁盘转速与旋转等待时间和扇区读写时间都有关系。
什么是RAM? 什么是SRAM?什么是DRAM?什么叫刷新?
RAM是随机访问存储器的意思。
随机访问存储器每个单元所花的访问时间都一样。
SRAM指静态随机访问存储器。
DRAM指动态随机访问存储器。
刷新是指对DRAM中的每一行定时(每隔2ms)充/放电。
什么叫地址线复用?地址线为什么要被复用?
DRAM芯片中的行地址和列地址用同一组地址线引脚称为地址复用。
地址线引脚可以减少一半。
如:对于采用地址复用的1Kx4位芯片,因为210=1K,所以,只需用10/2=5个地址引脚
什么叫编址单位?
一个存储单元编号中所含的信息量。
编址单位是字节时,称为按字节编址。
什么叫Cache?为什么要引入Cache?
Cache称为高速缓冲存储器,或高速缓存。
其容量比主存小得多,速度比主存快得多。
目的是在CPU和主存之间增加快速的缓存,使得大大减少CPU访问主存的次数。
程序的什么特性能使Cache达到预期目的?
程序访问的局部性特点是指程序在执行过程中,所产生的指令和数据的地址总是在一个很小的内存区中。
如果事先把这个区域调到Cache,则大多数情况下数据只要从Cache中取,速度就加快了。
所以若程序具有较好的局部性,那么Cache的效率发挥得更好。
什么是I/O接口?I/O接口的职能是什么?
I/O接口是介于外设和主机之间的I/O模块。
例如,网卡、显示卡、磁盘控制器等。
I/O接口主要用来提供数据缓冲、错误和状态的检测、控制和定时、数据格式转换等。
从传输方式来分,有哪两类接口?
有串行接口和并行接口两种。
异步串行通信协议规定的字符格式是什么?数据传输率与比特率间的关系是什么?
一个字符包括:一位起始位后跟若干数据位、奇/偶校验位、停止位。
例如,若波特率为9600,传送ASCII字符时,通信规程为1个校验位和一个停止位,因为b必定有且仅有一位起始位,所以,每个字符所占的位数为:1+7+1+1=10位。
因此,字符传输率为:9600/10=960字符/秒.
什么是I/O端口(I/O Port)?I/O端口的两种编址方式是什么?
I/O接口中的寄存器被称为I/O端口,有两种编址方式:统一编址法(或称存储器映射法)和独立编址法。
如何表示外部设备的地址?
外部设备通过外设的I/O接口和主机连接,因此外设的访问是通过I/O接口中的寄存器进行的,每个寄存器有编号,所以这个编号可看成外设的地址。
而每个I/O接口中可能有多个寄存器,所以可能会分配多个端口地址。
有哪三种常用输入/出方式?数据的传送各自由什么来控制完成?
程序直接控制(或程序查询方式)、程序中断方式和DMA方式。
一台计算机中可同时存在多种I/O方式。
程序查询方式由查询程序完成数据传送,主机和外设完全串行;中断方式由中断服务程序来完成数据的传送,可以实现主机和外设的并行;DMA方式下,初始化阶段和结束阶段要由CPU介入,而数据传送阶段由DMA控制器来完成,不需CPU介入。
DMA称为什么? DMA方式主要用在哪类设备和计算机主存之间进行信息交换?
DMA称为直接存储器访问。
DMA方式主要用于磁盘等高速设备,这些设备和主机交换数据时,一定在外设和主存之间直接进行,而不通过CPU。
DMA请求的是什么?为什么DMA响应不是在一条指令执行结束后?
DMA请求的是总线的使用权,要求使用总线访问内存,而不是CPU的执行时间,所以DMA响应不要等到一条指令执行结束后。
DMA周期内,CPU能否执行程序?周期挪用法挪用的是什么周期?
DMA周期内,CPU可以执行程序。
但DMA请求的是总线,所以总是在一次总线事务结束后响应DMA的请求(中断请求是在一条指令结束后被响应),要求通过总线和主存交换信息。
所以,周期挪用法挪用的是存储周期。
有哪三种常用输入/出方式?数据的传送各自由什么来控制完成?
程序直接控制(或程序查询方式)、程序中断方式和DMA方式。
一台计算机中可同时存在多种I/O方式。
程序查询方式由查询程序完成数据传送,主机和外设完全串行;中断方式由中断服务程序来完成数据的传送,可以实现主机和外设的并行;DMA方式下,初始化阶段和结束阶段要由CPU介入,而数据传送阶段由DMA控制器来完成,不需CPU介入。
DMA称为什么? DMA方式主要用在哪类设备和计算机主存之间进行信息交换?
DMA称为直接存储器访问。
DMA方式主要用于磁盘等高速设备,这些设备和主机交换数据时,一定在外设和主存之间直接进行,而不通过CPU。
DMA请求的是什么?为什么DMA响应不是在一条指令执行结束后?
DMA请求的是总线的使用权,要求使用总线访问内存,而不是CPU的执行时间,所以DMA响应不要等到一条指令执行结束后。
DMA周期内,CPU能否执行程序?周期挪用法挪用的是什么周期?
DMA周期内,CPU可以执行程序。
但DMA请求的是总线,所以总是在一次总线事务结束后响应DMA的请求(中断请求是在一条指令结束后被响应),要求通过总线和主存交换信息。
所以,周期挪用法挪用的是存储周期。
无符号数的表数范围:0~2n-1,如8位数的范围为0~255
有符号整数的表示范围:
原码和反码:-(2n-1 -1) ~(2n-1-1),补码和移码:-2n-1~(2n-1-1)
例如,8位原(反)码和补(移)码的表示范围分别为:-127~+127,-128~+127
什么叫机器数?什么叫真值?
机器数就是计算机内部用二进制编码的数。
真值就是机器数真正的值,即带正负号的数据。
真值和原码、补码和移码之间的关系是什么?
原码:符号位正数为0负数为1,数值部分不变。
例如:真值X=-0.X1X2……Xn ,则[X] 原=1X1X2……Xn 补码:符号位正数为0负数为1,正数数值部分不变,负数数值各位取反末位加1。
例如:真值X=-0.1010010 ,则[X] 补=1.0101110
移码:真值加上一个偏置常数。
通常用来表示整数(因为移码表示阶,而阶总是
整数)。
例如:真值X=-01010010 ,则[X] 移=10000000-01010010 = 00101110
为什么机器中整数一般用补码表示?
因为用补码表示有以下好处:零的表示惟一;符号位可以和数值部分一起参加运算;减法可以用加法来实现;可以多表示一个最小负数。
所以,现代计算机大多用补码表示有符号整数。
如何实现十进制、二进制、八进制、十六进制、BCD码(8421码)之间的转换?
计算机中如何表示西文字符?(一般用ASCII码)
真值和补码整数如何相互转换?
例:若x=-17,则二进制x=-10001,[x]补=1 1101111,用16进制表示为EFH.
什么叫溢出?
运算结果的值太大,无法用给定的格式表示,称为溢出。
IEEE754单精度浮点数的格式是什么?
(共32位,阶8位(偏置常数127),尾数23+1位,阶范围为-126~127)
真值和IEEE754单精度浮点数如何相互转换?
例:若x=-(6/16),则二进制x= -0.0110= -1.10x2-2,
s=1, f=0.1000…0, e=(127-2)10=(125)10=(0111 1101)2
IEEE754单精度浮点数表示为:1 0111 1101 1000…0000 000
按4位一组进行组合:1011 1110 1100 0000 (0000)
转换成十六进制表示为:BEC00000H
给定两个十进制整数,如何表示为补码,然后用补码加减法进行运算,最终得到和与差的十进制表示?如何进行溢出判断?
例:x=-7, y=-9, 则:
x=(-7)10 =(-0111)2 [x]补= 1 1001
y=(-9)10 =(-1001)2 [y]补= 1 0111 [-y]补= 0 1001 [x+y]补=[x]补+[y]补=1 1001 +1 0111 =1 0000
结果符号与加数符号相同,所以不溢出。
x+y= -16
[x-y]补=[x]补+[-y]补= 1 1001 + 0 1001 =0 0010
两个异号数相加不会溢出。
x-y = (+ 0010) 2 =(+ 2) 10
什么叫对阶?为什么需要对阶?
浮点数加减运算时首先要让两数的阶码一样,才能对尾数进行加减。
对阶时小阶向大阶看齐,阶小的那个数的尾数右移。
(如同十进制的科学计数法)
浮点数运算时需在中间值后增设保护位,为什么?运算结果在什么情况下溢出?
增设若干保护位是为了减少结果误差,提高精度。
运算中发生阶码溢出时,则结果一定溢出;而尾数溢出时,可以通过右规来调整尾数,所以结果不一定溢出。
无符号数如何移位?有符号定点数(补码)如何移位?
无符号数采用逻辑移位方式,移出低位或高位,空出的位补0;
有符号定点数移位时,符号位不动,仅对数值部分进行移位。
例如对于补码,左移时,高位数值移出,低位补0;右移时低位移出,高位补符。
乘、除运算是如何实现的?
“加减”加“右移”实现乘法运算;“加减”加“左移”实现除法运算;
什么叫ALU?它的主要功能是什么?
ALU称为算术逻辑部件,主要用于进行算术逻辑运算。
什么叫奇偶校验?
添加一位校验位,使数据和校验信息中有奇(或偶)数个1。
(奇(偶)校验是奇(偶)数个1)
转移指令大多采用相对寻址方式,其转移目标地址是如何计算的?
相对寻址方式下,转移目标地址= (PC)+相对位移量。
例如,假定转移指令占两个字节,第一字节是操作码,第二字节是相对位移量,用补码表示(说明相对位移量的范围为:-128~+127),CPU执行指令时,每取出一个字节,PC 自动加1。
若转移指令的地址是1000H,则取完该指令时,PC的值是1002H了。
所以,该转移指令的目标地址范围为:1002H –128 ~1002H+127。
即:1002H–0080H ~1002H+007FH
即:0F82H ~1081H.
指令运行后有可能会改变机器的状态(运行状态、结果的标志信息等),用于记录这些状态信息的寄存器被称为什么?
被称为机器状态字寄存器PSWR。
什么叫CISC?什么叫RISC?
CISC称为复杂指令集计算机;RISC称为精简指令集计算机;
相比CISC,RISC风格的计算机有何特点?
指令格式规整、设置有大量通用寄存器、有专门的访存指令等
一条指令必须明显或隐含地给出哪些信息?一般哪些信息在指令中会明显给出?哪些会隐含给出?
一条指令必须明显或隐含地给出操作性质、操作数的位置和下条指令的地址。
操作性质由操作码给出,操作数地址由地址码给出。
而下条指令地址隐含由程序计数器PC指出。
概括地说,指令包括操作码和地址码两部分。
指令的符号表示形式一般被称为什么语言?汇编语言
程序计数器PC的功能是什么?指令寄存器IR的功能是什么?
程序计数器PC用来指出下条要执行的指令的地址。
所以它的位数应该和主存地址寄存器的位数相同。
指令寄存器IR用来存放正在执行的指令,程序员编程时感觉不到IR的存在,所以,IR对程序员来说是透明的。
指令的操作数可能存放在何处?
操作数可能在CPU的通用寄存器中、内存单元中、I/O端口中、堆栈中或指令中的立即数。
所以,“存储器读”指令的功能是将数据从内存单元中读到CPU的通用寄存器中。
以下指令寻址方式中,如何从地址码得到最终的操作数?寄存器直接、寄存器间接、直接地址、间接地址、立即、变址、基址、相对、堆栈
寄存器直接方式下,操作数在寄存器中;
寄存器间接方式下,操作数在主存单元中;
直接方式下,操作数在主存单元中;
间接方式下,操作数和操作数的地址都在主存单元中;
立即方式下,操作数就是指令的地址码;
变址、基址、相对方式下,操作数都在主存单元中;
堆栈方式下,操作数在堆栈中;
(说明:有效地址EA指操作数的地址)
一个较完整的指令系统应该包含哪些类型的指令?
传送指令、算术/逻辑指令、程序控制指令、I/O指令、字符串操作指令、系统控制指令等
指令的执行过程如何?
取指令、计算下条指令地址送PC、指令译码、取操作数、运算、送结果。
CPU的职能是什么?指令的执行过程是什么?
CPU通过周而复始地执行程序中一条条指令来完成计算机任务。
一条指令的执行过程是:取指令、计算下条指令的地址送PC、指令译码、
取源操作数和目操作数、执行后送结果。
一条指令执行结束后,在取下条指令前,要检查有无中断请求,若有,则
需转到中断服务程序去执行。
原来正在执行的程序被中止。
如何确定CPU中主存数据寄存器、主存地址寄存器、程序计数器和指令寄存器的宽度?
主存地址寄存器和程序计数器的宽度应该一样,与主存地址空间大小有关。
指令寄存器的宽度与指令的长度有关。
主存数据寄存器的宽度与字长有关。
什么叫指令流水线?
将指令执行的过程分成若干阶段来执行,同一时间CPU可以执行不同指令的不同阶段,使指令的执行按流水线方式进行。
采用流水线方式能否缩短一条指令的执行时间?
不能缩短一条指令的执行时间,但能缩短整个程序的运行时间。
有哪些设备可能请求中断?试列举几个?
键盘或鼠标有输入、打印机缺纸等等
什么叫中断响应优先级?什么是中断处理优先级?
中断响应优先级是指同时有多个中断请求发生时,优先选择哪个中断请求被响应。
需要立即响应的中断事件其优先级高。
如:电源掉电等。
中断处理优先级是指正在进行中断处理的过程中,又发生了新的中断请求,此时,新中断请求能不能打断正在处理的中断服务程序的执行。
所以,两种优先级是完全不同的概念。
中断响应的条件是什么?中断响应过程中应完成哪些操作?中断响应的结果是什么?
当有未被屏蔽的中断请求发生,且CPU处在”开中断”状态,则在一条指令执行结束后,可以响应中断。
所以,并不是只要有中断请求,马上就能响应。
中断响应过程:CPU中止现行程序的执行,并“关中断”使CPU处在中断禁止状态,然后把现行程序被中断处的当前指令地址(即:返回地址)和当前PSW寄存器中的内容保存到堆栈中。
然后转到中断服务程序去执行。
执行结束,将根据返回地址返回到原被中断的程序继续执行。
什么是中断向量?什么是向量地址?
中断向量指中断服务程序的入口地址。
中断向量地址指中断服务程序的入口地址的地址。