计算机组成原理—唐朔飞 第七-九章
Posted considinej
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机组成原理—唐朔飞 第七-九章相关的知识,希望对你有一定的参考价值。
第七章 指令系统
1、什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及与硬件结构之间存在着密切的关系?
机器语言构成的语句称为机器指令,全部机器指令的集合称为机器的指令系统。机器的指令系统集中反映了机器的功能。
机器指令:是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数两部分组成。
指令系统:计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。
指令系统是计算机硬件和软件的接口部分,是全部机器指令的集合。
2、什么叫寻址方式?为什么要学习寻址方式?
寻址方式是指如何确定本条指令的操作数地址以及下一条将要执行指令的地址,它与硬件结构紧密相关,而且直接影响指令格式和指令功能。寻址方式分指令寻址和数据寻址。
3、什么是指令字长、机器字长、存储字长?
指令字长:取决于操作码的长度、操作数地址的长度和操作数地址的个数。不同机器的指令字长是不同的,同一机器的指令字长可以是固定的,也可以是可变的(按字节的倍数变化)。
机器字长:是指计算机能直接处理的二知进制数据的位数,决定了计算机的运算精度。
指令字长:一个指令字中包含二进制代码的位数。
存储字长:一个存储单元存储一串二进制代码(存储字专),这属串二进制代码的位数称为存储字长,存储字长可以是8位、16位、32位等。
4、零地址指令的操作数来自哪里?在一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得?各举一例说明。
双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器中。
操作数的地址隐藏在堆栈指针的SP中
例如,空操作(NOP)、停机(HLT)等指令只有操作码。子程序返回(RET)、中断返回(IRET)等指令无地址码。
5、对于二地址指令而言,操作数的物理地址可以安排在什么地方?举例说明。
存储器-存储器(SS)型指令:参与操作的数都放在内存里,从内存某
单元中袭取操作数,操作结果存放百至内存另一单元中。
因此机器执行这种指令需要多次访问内存。
寄存器-寄存器(RR)型指令:需要多个通用寄存器或个别专用寄存
器,度从寄存器中取操作数,把操作结果放到另一寄存器中。
机器执行这种指令的速度很快,不需要访知问内存。
寄存器-存储器(RS)型指令:执行此道类指令,既要访问内存单元,
又要访问寄存器
6、某指令字长为16位,地址码取4位,试提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。
三地址指令格式如下:
4 4 4 4
OP A1 A2 A3
以三地址指令格式为该指令系统的基本格式,以此格式为基础,采用扩展操作码技术,设计出题意所要求的地址码结构的指令。
指令操作码分配方案如下:
4位OP
0000,
……, A1,A2,A3:8条三地址指令
0111,
1000,0000,
……,……, A2,A3:16条二地址指令
1000,1111,
1001,0000,0000,
……,……,……, A3:100条一地址指令
1001,0110,0011,
1001,0110,0100,
……,……,……, 冗余编码
1001,1111,1111, 可用来扩充一、零地址指令条数
1010,
……, 冗余编码
1111, 可用来扩充三、二、一、零地址指令条数
7、设指令字长为16位,采用扩展操作码技术,每个操作数的地址为6位。如果定义了13条二地址指令,试问还可以安排多少一地址指令?
二地址指令格式:
4 6 6
OP A1 A2
设二地址指令格式是该指令系统的基本格式,4位操作码共有16种编码,其中13种用来定义二地址指令,还剩3种可用来作扩展标志。如不考虑零地址指令,该指令系统最多还能安排一地址指令条数为 3*2^6 = 192条
8、某机指令字长16位,每个操作数地址码6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式,若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多有几种?
根据操作数地址码为6位,则二地址指令中操作码位数位16-6-6=4,4位操作码有16种,则剩下二地址指令最多有16-M-N种。
操作码位数可变,则最多15种,留一种编码作扩展标志用。
9、试比较间接寻址和寄存器间接寻址。
间接寻址的特点是:指令在执行阶段要多次访存(一次间址需两次访存,多次间址需根据存储字的最高位确定几次访存);可扩大寻址范围(有效地址EA的位数大于形式地址A的位数);便于编程。
寄存器间接寻址:指令的执行阶段需要访存(因有效地址在寄存器中,操作数在存储器中)便于编制循环程序。
10、试比较基址寻址和变址寻址。
基址寻址:可扩大操作数的寻址范围(基址寄存器的位数大于形式地址A的位数);有利于多道程序运行;基址寄存器的内容由操作系统或管理程序确定;在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址A可变(作为偏移量)。
变址寻址:可扩大操作数的寻址范围(变址寄存器的位数大于形式地址A的位数);变址寄存器的内容由用户给定;在程序执行过程中,变址寄存器的内容可变(作为偏移量),形式地址A不变(作为基地址);便于处理数组问题。
11、画出先变址再间址再变址的寻址过程示意图。
1)先变址再间址寻址过程简单示意如下:
EA=[(IX)+A],(IX)+1->lX
2) 先间址再变址寻址过程简单示意如下:EA=(IX)+(A),IX® (IX)+1
20、RISC
精简指令集计算机
选取使用频度高的简单指令;
指令长度固定,格式少,寻址方式少;
只有存数/取数指令访存,其他指令不访存;
CPU内有多个通用寄存器;
采用流水线技术,大部分指令一个时钟完成;
控制器采用组合逻辑实现;
采用优化的编译程序;
第8章 CPU的结构和功能
1、CPU有哪些功能?说明个部件的作用。
CPU具有控制程序顺序执行、产生完成每条指令所需的控制命令、对各种操作实施时间上的控制、对数据进行算术和逻辑运算以及中断处理等功能。寄存器包括专用寄存器(如程序计数器、指令寄存器、堆栈指示器、存储器地址寄存器、存储器数据寄存器、状态寄存器等)以及通用寄存器(存放操作数);CU产生各种微操作命令序列;ALU完成算术和逻辑运算;中断系统用于处理各种中断。
2、什么是指令周期?指令周期是否有一个固定值?为什么?
指令周期是CPU每取出并执行一条指令所需的全部时间,也即CPU完成一条指令的时间。由于各种指令的操作功能不同,因此各种指令的指令周期是不同的,指令周期的长短主要和指令在执行阶段的访存次数和执行阶段所需完成的操作有关。
3、中断周期前和后各是CPU的什么工作周期?中断周期完成什么操作?
CPU中断周期前为执行周期,中断周期后为取指周期。中断周期完成下列操作:保存程序断点;硬件关中断;将向量地址送至程序计数器(硬件向量法)或将中断识别程序入口地址送至程序计数器(软件查询法)。
4、什么叫系统的并行性?粗粒度并行性和细粒度并行性有何区别?
所谓并行包含同时性和并发性两个方面。前者是指两个或多个事件在同一时刻发生,后者是指两个或多个事件在同一时间段发生。也就是说,在同一时刻或同一时间段内完成两种或两种以上性质相同或不同的功能,只要时间上互相重叠,就存在并行性。
并行性可分为粗粒度并行和细粒度并行两类。粗粒度并行性是在多个处理机上分别运行多个进程,由多台处理机合作完成一个程序,一般用算法(软件)实现。细粒度并行性是指在处理机的操作级和指令级的并行性,一般用硬件实现,其中指令流水就是一项重要技术。
5、指令流水线和运算流水线的共同点是:由于相邻两段在执行不同的操作,所需的时间可能不相同,因此在两段之间必须设置锁存器或寄存器,以保证在一个时钟周期内流水线各段的输出信号不变。
6、什么是中断?设计中断系统需考虑哪些主要问题?
CPU在程序运行过程中,遇到异常情况或特殊请求,需暂停现行程序,转至对这些异常情况或特殊请求的处理,处理完后再返回到原程序断电处继续执行,这一过程即为中断。设计中断系统需考虑如下几个问题:
中断源如何向CPU提出请求?
当多个中断源同时提出请求时,CPU如何确定响应的优先次序?
CPU在什么条件、什么时间、以什么方式响应中断?
如何保护现场?
如何寻找中断服务程序的入口地址?
如何恢复现场?
当出现中断嵌套时如何处理?
7、在计算机系统中,为了管理中断,硬件上通常有哪些设置?各有何作用?指令系统应有哪些设置?
在计算机系统中,为了管理中断需设置下列这些硬件,它们的作用分别是:
中断请求触发器,其个数与中断源个数相等,用以标志某个中断源向CPU提出中断请求。
中断屏蔽触发器,其个数与中断请求触发器相等,当其为1时,表示该中断源的中断请求被屏蔽,CPU不能响应。
排队器,用来进行中断判优,当多个中断源同时请求时,排队器可选中优先级最高的中断请求。
向量地址形成部件,用以产生中断源的向量地址,从而可找到中断服务程序的入口地址。
允许中断触发器,当其为1时,CPU允许处理中断。
中断标志触发器,标志系统进入中断周期。
堆栈,用来保护现场。
中断查询信号电路。在每条指令执行周期结束时刻,该电路向各中断源发查询信号。
在计算机系统中,为了管理中断,指令系统应设有开中断、关中断、置屏蔽字及中断返回等指令。
8、CPU在处理中断过程中有两种方法找到中断服务程序的入口地址。
(1)硬件向量法是由硬件电路产生对应某中断的向量地址,在向量地址内可设置一条无条件转移指令,转向中断服务程序的入口地址。只需在中断响应周期将向量地址送至PC,在CPU进入下一取指周期时,就可取出无条件转移指令,执行该指令即可转至中断服务程序。也可以在向量地址内直接存放服务程序的入口地址,通过访问向量地址的存储单元,采用间址的方法找到服务程序的入口地址。
(2)软件查询法是在主存中存有一段中断识别程序,它通过程序判断是那个中断源提出请求,并转至相应的入口地址。只要在中断响应周期将中断识别程序的首地址送至PC,在CPU进入下一取指周期,就可以取出中断识别程序的第一条指令,逐条执行指令,便可找到相应的服务程序入口地址。
9、在一个四级指令流水线中,假设时钟周期为50ns,共有30条指令连续输入此流水线,试求流水线的最大吞吐率、实际吞吐率和加速比
最大吞吐率:1/50ns=20*10^6条指令/s
实际吞吐率:30/[4*50ns + (30-1)*50ns] = 18*10^6条指令/s
加速比:30*4/[4+(30-1)] = 3.63
第九章 控制单元的功能
1、p382 例9.1
2、一台机器时钟信号的频率即为主频,主频的倒数称为时钟周期,机器周期包含若干时钟周期。
以上是关于计算机组成原理—唐朔飞 第七-九章的主要内容,如果未能解决你的问题,请参考以下文章