微机课后习题原理答案.docx

上传人:b****5 文档编号:6223341 上传时间:2023-01-04 格式:DOCX 页数:22 大小:50.12KB
下载 相关 举报
微机课后习题原理答案.docx_第1页
第1页 / 共22页
微机课后习题原理答案.docx_第2页
第2页 / 共22页
微机课后习题原理答案.docx_第3页
第3页 / 共22页
微机课后习题原理答案.docx_第4页
第4页 / 共22页
微机课后习题原理答案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

微机课后习题原理答案.docx

《微机课后习题原理答案.docx》由会员分享,可在线阅读,更多相关《微机课后习题原理答案.docx(22页珍藏版)》请在冰豆网上搜索。

微机课后习题原理答案.docx

微机课后习题原理答案

习题八

1.什么是DMA传输?

DMA传输有什么优点?

为什么?

所谓直接存储器传送(DMA)是指将外设的数据不经过CPU直接送入内存储器,或者,从内存储器不经过CPU直接送往外部设备。

使用DMA传输之后,每个数据的传输过程不需要CPU参与,在DMA控制器的控制下,在一个DMA总线周期里完成数据在外部接口和存储单元之间的直接传输。

所以使用DMA传输既可以减轻CPU的负担,又可以缩短系统对外部设备的响应时间,提高数据传输速率。

2.叙述一次数据块DMA传输和一个数据DMA传输的全过程。

一次数据块DMA传输的全过程:

•程序对DMA控制器进行初始化,写入存储器数据块首地址,传输字节数,传输方向等信息。

同时启动外部设备(例如,启动输出设备进行第一次输出);

•外部设备每完成一次输入/输出,它的完成信号通过DMA控制器启动一次DMA数据传输;

•全部预设的数据传输完成,DMA控制器发出“传输完成”信号,向CPU申请中断。

CPU在中断服务程序中设置完成标志,或者对DMA控制器进行下一次初始化。

一个数据DMA传输的全过程。

•外设准备就绪,需要进行DMA操作时,向DMA控制器发出“DMA请求信号”。

DMA控制器接到此信号后,向CPU发“总线请求信号”。

•CPU接到总线请求信号,在当前总线周期结束后,发出“DMA响应信号”。

•DMAC向外部设备发出“外设读”或“外设写”控制信号,向存储器发出“存储器写”或“存储器读”控制信号,同时发出存储单元地址。

在这二个信号的作用下,一字节的数据从外设接口通过数据总线送往存储单元,或者从存储单元送往外设接口。

•传送1个字节之后,DMAC自动修改内部地址寄存器和字节计数器的内容。

•DMA控制器撤销“总线请求信号”,CPU也撤销“总线应答”信号。

3.什么叫DMA通道?

它如何组成?

DMA通道是控制一个外设接口和存储器进行DMA传输的相关电路的总和。

每个通道包括地址寄存器、字节计数器、方式寄存器、DMA请求触发器、屏蔽触发器、状态寄存器以及所需的其他控制电路。

4.DMA控制器8237A的成组传送方式和单字节传送方式各有什么特点?

它们的适用范围各是什么?

成组传送方式下,DMA控制器获得总线控制权后,可以连续进入多个DMA周期,进行多个字节的传输。

这种方式可以获得最高的数据传输速度。

在数据传输期间,CPU不能访问总线。

如果一次传输的数据较多,这种方式会对系统工作产生一定的影响。

成组传送方式适用于外部设备要求很高的传输速率,系统其他负担较轻,连续占用总线不会产生严重后果的情形。

在单字节传输方式下,8237A完成1个字节传输后都释放系统总线,一次DMA传输结束,CPU可以在每个DMA周期结束后控制总线。

这种方式适用于外部设备的传输速率要求不太高,或者系统不允许有较长时间停顿的情况。

5.怎样用指令启动一次DMA传输?

怎样用指令允许/关闭一个通道的DMA传输?

用指令将DMA请求寄存器中相关位置位,可以启动一次DMA传输。

用指令将DMA屏蔽寄存器中相关位复位,可以允许一个通道的DMA传输。

将DMA屏蔽寄存器中相关位置位,可以关闭一个通道的DMA传输。

6.DMA控制器8237A能不能用中断方式工作?

请说明。

DMA控制器8237A可以用中断方式工作。

将8237A的

信号反相后连接到中断控制器的中断请求输入端,则一次数据块传输结束后,可以向CPU申请中断,由专门的中断服务程序进行结束处理。

7.如何判断某通道的DMA传输是否结束?

有几种方法可供使用?

判断某通道的DMA传输是否结束有二种方法。

其一是读出DMA控制器的状态寄存器内容,测试其中代表该通道的状态位,可以得知该通道的DMA传输是否结束。

其二是读出该通道的字节计数器内容,如果值为0(对8237A而言为-1),表示该通道的DMA传输已经结束。

此外,可以用8237A的

信号向CPU申请中断。

一旦进入这个中断服务程序,表明该通道的DMA传输已经结束。

8.叙述一次DMA控制器8237A编程使用的主要步骤。

DMA控制器8237A初始化编程的主要步骤为:

•发复位命令;

•写命令字,设置8237A的工作方式;

•写方式字,设置需使用的通道的工作方式;

•清除先/后触发器;

•写入内存储器起始地址;

•写入传送的字节数-1;

•清除该通道的屏蔽位;

•启动外部设备,如果是内存到输出设备,用指令设置第一次DMA请求。

 

9.使用DMA控制器8237A传输一个字节需要多少时间?

受那些因素影响?

请作具体分析。

使用DMA控制器8237A传输1字节数据需要4个DMA控制器使用的时钟周期,对于速度稍慢的外设/存储器,也可以插入一个或多个等待周期。

影响DMA周期时间长短的因素有:

•DMA控制器使用的时钟频率:

频率越高,DMA周期越短;

•存储器和外部设备的工作速度:

如果速度跟不上DMA时钟的要求,则需要插入等待周期,从而延长整个DMA周期;

•使用压缩时序可以缩短DMA周期;

•如果存储器数据块首地址低8位为“0”,前256个字节内存地址的高8位相同,它们传送时只需要发送一次高8位地址,后面255个数据的DMA周期达到最小;

•如果进行存储器之间数据传输,每个字节的传输需要二个DMA周期。

习题九

1.A/D和D/A转换在微机应用中分别起什么作用?

计算机加工、处理的信号可以分为数字量(Digit)和模拟量(Analog)两种类型。

现代计算机内部都采用二进制表示的数字量进行信号的输入、存储、传输、加工与输出。

为了使用计算机对模拟量进行采集、加工和输出,需要把模拟量转换成便于数字计算机存储和加工的数字量(A/D转换),或者把数字量转换成模拟量(D/A转换)。

因此,D/A与A/D转换是计算机用于多媒体、工业控制等领域的一项重要技术。

2.怎样将D/A转换器连接到微型计算机?

D/A转换器将数字量转换成模拟量输出。

为了保存由计算机送来的数字信号,通常需要配置一个“数据寄存器”,向D/A转换器提供稳定的数字信号。

D/A转换芯片输出的模拟信号功率一般比较小,为了能够驱动执行机构工作,D/A转换器的输出一般都要连接到运算放大器进行功率放大。

3.修改图9-5,将DAC0832的两级锁存合为一级使用,画出连接图,并编写输出三角波和锯齿波的程序。

为了将DAC0832的二级缓冲锁存器合为一级使用,可以将它的第二级置为“直通”,也就是把

接地,用第一级的

对输入进行控制,如下图。

输出三角波的程序段如下:

S0:

MOVAL,0;AL中置初值0,输出三角波的上升段

S1:

CALLOUTPUT;调用输出子程序,输出一个值

INCAL;产生上升段下一个值

JNZS1;上升段未结束,继续输出

DECAL;恢复到最大值

S2:

CALLOUTPUT;输出三角波的下降段

DECAL;产生下降段下一个值

JNZS2;下降段未结束,继续输出

JMPS1;下降段结束,输出下一个三角波

输出锯齿波的程序段如下:

MOVAL,0

J1:

CALLOUTPUT;输出当前值

INCAL;产生下一个输出值

JMPJ1

子程序“OUTPUT”为上面两段程序共用:

OUTPUTPROCNEAR

MOVDX,PORT0;DAC0832端口地址

OUTDX,AL

PUSHAX

MOVAX,N;延时的时间常数

WT:

DECAX

JNZWT;延时

POPAX

RET

OUTPUTENDP

4.一个8位D/A转换器的满量程(对应于数字量255)为10V。

分别确定模拟量2.0V和8.0V所对应的数字量。

模拟量2.0V所对应的数字量为(2.0/10)×255=51

模拟量8.0V所对应的数字量为(8.0/10)×255=204

5.简述逐次逼近式A/D转换器的工作原理,并将它和∑-△A/D转换器进行比较。

逐次逼近型(也称逐位比较式)A/D转换器主要由逐次逼近比较寄存器SAR,D/A转换器、比较器以及时序和控制逻辑等部分组成。

它从SAR的最高位开始,逐位设定SAR寄存器中的数字量,经D/A转换得到电压VC,与待转换模拟电压Vx进行比较。

通过比较,逐次确定各位的数码应是“1”还是“0”。

转换结果能否准确逼近模拟信号,主要取决于SAR和D/A的位数。

位数越多,越能准确逼近模拟量。

∑-△型模数转换器是根据二次采样的差进行计算的,有很强的抗干扰能力,转换精度高,以串行方式输出数据。

常用于高分辨率(常见为16、18、24位)的中、低频信号测量。

当模拟量输入端接有多路开关时,通道切换后要等待足够长的时间,才能读取转换结果。

6.若ADC输入模拟电压信号的最高频率为100KHZ,采样频率的下限是多少?

完成一次A/D转换时间的上限是多少?

香农定理告诉我们:

采样频率一般要高于或至少等于输入信号最高频率的2倍。

因此,采样频率的下限应是200KHz。

在200KHz采样频率下,完成一次A/D转换时间的上限是5μs。

实际应用中,采样频率可以达到信号最高频率的4~8倍。

如果采用400KHz的采样频率,完成一次A/D转换时间的上限是2.5μs。

7.在使用A/D和D/A转换器的系统中,地线连接时应注意什么?

模拟信号很容易受到电源和数字信号的干扰引起波动。

为提高输出的稳定性,减少误差,模拟信号部分必须采用高精度基准电源VREF和独立的地线。

所以,要把数字地和模拟地分开。

模拟地是模拟信号及基准电源的参考地,其余信号的参考地,包括工作电源地,数据、地址、控制等对应的“地”都是数字地。

连接时,先所有的模拟地连接在一起,把所有的数字地连接在一起,然后在一个点上(注意:

不是两个或更多)把模拟地和数字地连接起来。

8.怎样用一个AD芯片测量多路信息?

模拟量多于一个时,可以使用多路模拟开关,轮流接通其中的一路进行转换,使多个模拟信号共用一个ADC进行A/D转换。

9.一台工控PC有两块818卡,基地址分别为BASE1,BASE2,试编制采样24路(一块卡16路,一块卡8路)模拟量的C语言程序。

#include“dos.h”

#defineN24/*采样点数*/

#defineBASE10x300

#defineBASE20x310

#defineINTERRUPT0x1c/*定时中断类型号*/

staticunsignedad,tad[N],tt[N][16];

voidfarhandler();/*函数handler()声明*/

voidAD818(int);/*函数AD818()声明*/

void(interruptfar*oldhandler)();/*定义oldhandler为指向中断服务程序的指针*/

…………..

main()

{

oldhander=getvect(INTERRUPT);/*读出原1CH中断向量*/

setvect(INTERRUPT,handler);/*把新的1CH中断向量写入向量表*/

…………..

}

voidAD818(intscan)/*函数AD818从AD818卡采集一次数据*/

{intlbit,hbit,it=0,status,base,ch;/*采集结果置入全局变量ad中*/

base=(scan<=15)?

BASE1:

BASE2;/*根据点号确定所在采集卡的基地址*/

ch=scan%16;/*计算该点在本采集卡上的通道号*/

outportb(base+2,ch);/*向AD818输出通道号*/

outportb(base+1,0);/*AD输入量程控制*/

outportb(base+9,0);/*不使用中断或DMA*/

outportb(base+0,0);/*启动AD转换*/

do{it=it+1;

status=inportb(base+8)&128;

/*读出AD状态寄存器,查询EOC,等待AD转换完成*/

}while(status!

=0&&it<=10000);

lbit=inportb(base+0)&240;/*读入低8位,清除其中无效的最低4位*/

hbit=inportb(base+1);/*读入高8位*/

if(it<=10000)ad=hbit*16+lbit/16;/*采集正常,拼接二段数据*/

elsead=0;/*采集数据超时,818卡有故障*/

}

voidinterruptfarhandler()/*55ms定时中断服务程序,采集每个点的数据*/

{intisp,s,i;

for(isp=0;isp<=N-1;isp++)

{AD818(isp);/*采集一个模拟量,存入ad*/

for(i=0,s=0;i<=14;i++)

{tt[isp][i]=tt[isp][i+1];/*移动队列中的数据,以便装入新的数据*/

s=s+tt[isp][i];}/*求前15个数据的累加和*/

tt[isp][15]=ad;s=s+ad;/*新数据进队列,求出16个数据的累加和*/

tad[isp]=s/16;/*求出16个数据的平均值*/

}

oldhandler();/*进入原1CH中断服务程序,此后返回断点*/

}

习题十

1.查找相关资料,用列表方式给出8088,8086,……直到P4各代微处理器的地址、数据线引脚数量,并推算出各自的内存寻址空间。

处理器

数据线

地址线

内存寻址空间

8088

8

20

1MB

8086

16

20

1MB

80286

16

24

16MB

80386/486

32

32

4GB

Pentium

64

32

4GB

Pentium2~4

64

36

64GB

2.什么是MMX指令?

它有什么特点?

MMX指令是“多媒体扩展指令”的英文简称,它采用SIMD(单指令流多数据流)技术,使得处理器在一条指令中对多个数据进行处理,提高了对多媒体数据的处理能力。

3.什么叫动态执行?

使用动态执行技术会带来什么好处?

动态执行是通过预测指令流和数据流,调整指令的执行顺序,最大地发挥CPU内部各部件的功效,提高系统执行指令的速度。

动态执行主要采用了:

多路分支预测:

利用转移预测技术允许程序几个分支流同时在处理器内执行;

数据流分析:

通过分析指令数据的相关性,把指令进行优化排序后执行,充分利用处理器内部资源;

推测执行:

根据各推测最终的正确性,对多个分支的运行结果进行取舍。

4.32位微处理器有哪几种工作方式?

各有什么特点?

32位微处理器有4种不同的工作方式:

实地址方式、保护方式、虚拟8086方式、系统管理方式。

实地址方式:

实地址方式使用16位80x86处理器的寻址方式(使用20位地址寻址1MB空间)、存储器管理和中断管理。

可以使用32位寄存器,使用特权级0,可以执行大多数指令。

保护方式:

保护方式是32位微处理器的基本工作方式。

它使用32位地址寻址4GB的实存空间,通过虚拟存储管理、用户优先级管理、I/O管理等技术,扩大可使用的存储空间,对操作系统和用户程序进行隔离和保护。

虚拟8086方式:

虚拟8086方式是保护模式下为任务提供的的8086工作环境。

每个任务使用16位地址寻址1MB的内存空间,以最低特权级运行,不能使用特权指令。

系统管理方式:

系统管理模式主要用于电源管理,可以使处理器和外围设备部件进入“休眠”状态,在有键盘按下或鼠标移动时“唤醒”系统,使之继续工作。

利用SMM可以实现软件关机。

5.叙述XT总线与ISA总线的异同之处。

XT总线可以看作是ISA总线的一个“子集”,它包括8位数据线,20根地址线,使用与CPU相同的4.77MHz的时钟信号。

ISA总线在XT总线的基础上,把数据线扩展到16根,地址线扩展到24根,使用独立于CPU的8MHz时钟信号,中断和DMA通道数目都有所增加。

ISA总线插槽由8位的XT总线插槽和ISA总线扩展插槽两部分组成。

6.什么叫分级总线?

使用分级总线有什么优点?

所谓分级总线是指系统中存在多组总线,每组总线可以有不同的数据线宽度、数据传输速率和不同的信号传输协议。

系统内的设备按照它们对传输速率、数据吞吐量的不同要求合理地连接在不同的总线上。

不同总线之间通过“桥”电路进行连接。

使用分级总线可以使各种设备的数据传输要求得到最大程度的满足,同时使整个系统的数据吞吐量和效能达到最大化。

7.简述“两个中心”结构与“南北桥”结构的区别,同时说明“两个中心”结构的优越之处。

“南北桥”结构和“中心结构”都支持多级总线的系统结构。

它们的主要区别在于,南桥芯片连接的所有高速外设都要通过PCI总线与处理器相连接,而“中心结构”里所有连接IO设备的总线(PCI,ISA,USB……)都通过IO控制中心(ICH)与中心高速接口直接连接,从而缓解了PCI总线数据交换的拥挤程度。

相比较而言,“中心结构”对信息流的路径分配更为合理。

8.CPU←→Cache,Cache←→主存,主存←→辅存之间的数据传输各有什么特点?

为什么?

请分析原因。

CPU与Cache之间数据传输的主要特点是:

高速:

Cache以与CPU相同或接近的速度工作;

不确定:

CPU对Cache的访问可能因“命中”而成功,也可能以“失靶”而失败。

Cache与主存之间数据传输的主要特征是:

数据传输以“页”为单位,使用“成组传输方式(突发总线方式)”进行。

导致上述特点的原因是,这一层次以“高速”为追求的目标,利用了程序、数据的“局部性”原理。

主存与辅存之间的数据传输以“数据块/扇区”为单位,通常以DMA方式进行。

导致上述特点的原因是,这一层次以“大容量”、“低价格”为追求的目标,辅存大容量、“粗粒度”的结构特点正好能够满足对上述目标的要求。

系统对不同层次的数据传输有着不同的要求,因而设置了不同的软硬件结构,最终导致了传输方式上的差异。

9.什么叫“相联存储映像表”?

说明它的结构和用途。

相联存储映像表是Cache内纪录Cache中各页在主存的位置和其他信息的表格,由各页的“标记(Tag)”,“状态”和“LRU位”组成。

“标记(Tag)”记录了该页在主存中的位置,供CPU访问时进行匹配查找使用。

“状态”和“LRU位”用于Cache页的替换操作。

10.为什么要进行Cache和主存的“映像”?

有哪几种相联映像的方法?

比较各自的利弊。

Cache和主存的“映像”是主存页调入Cache的“规则”,为了提高CPU在Cache中查找信息的速度,这种“规则”是必须的。

常见相联映像的方法有三种:

全相联映像法:

内存页可以调入Cache的任何一页,规则简单,页冲突的可能性最小,查找所需工作量最大。

直接映像法:

每一个内存页只能调入Cache中相同页号的一个页,规则简单,查找方便,块冲突的可能性大。

组相联映像法:

每一个内存页可以与Cache中一个组内的若干个页面相对应,规则稍复杂,查找工作量中等,块冲突的可能性中等。

11.什么叫“突发总线周期”?

它有什么优点?

“突发总线周期”也称为“成组传送方式”,总线主设备在发送一个主存地址之后,通过连续的多个周期,传输(读/写)多个地址相连的存储单元的数据。

这种方式省去了多次发送地址、多次申请总线和多次相互联络的过程,因此可以获得很高的数据传输速率。

12.逻辑地址是怎样转换成线性地址的?

简要叙述转换过程。

实地址方式下没有“线性地址”。

保护模式下,逻辑地址由“段号”和“段内地址”两部分组成。

使用“段号”查找“段描述符表”,可以获得该段的起始地址,与“段内地址”相加,就得到了对应的“线性地址”。

13.线性地址是怎样转换成物理地址的?

简要叙述转换过程。

“线性地址”由处于高位的“页组号”、处于中间的“页号”和处于低位的“页内地址”三部分组成。

用“页组号”查找“页组表”,得到“页表”的起始地址;用“页号”查找该“页表”,得到该页的起始地址;页起始地址加上“页内地址”就得到了它对应的物理地址。

14.请分析使用虚拟存储管理带来的利弊。

虚拟存储管理把辅存的一部分用作“虚拟”的主存,扩大了操作系统可分配,程序员可利用的存储空间,便于实现任务之间的隔离和保护,有效地支持了“多任务”运行环境的实现。

它还可以有效地克服“内存碎片”问题,简化了存储管理。

但是,实现虚拟存储后,每次访问主存都需要进行两次地址的转换,增加了系统的复杂性,增加了系统的硬件成本,降低了访问主存的速度,而且,由于系统复杂程度的增加,系统的可靠性也会受到影响。

15.32位微处理器实施保护机制的目的是什么?

有哪些主要措施?

32位微处理器实施保护机制的根本目的在于增加在“多任务”运行环境下系统的可靠性,使得任务之间、任务和操作系统之间实现隔离和保护。

为了实现隔离和保护,采取了以下几项措施:

为任务和资源设定一个“优先级”,优先级较低的任务不能访问优先级较高的资源,不能调用优先级较高的程序模块。

使用虚拟内存管理机制,使得任务和任务、任务和操作系统所使用的存储空间相互隔离,从而保证每个任务的正常运行不受其它任务的影响,一个任务的故障不影响整个系统的正常运行。

16.说明操作系统在保护模式下启动一个任务的过程。

一个任务用JMP或CALL指令启动一个新的任务时,处理器将当前任务的所有通用寄存器、所有段寄存器中的选择子、EFLAGS、EIP存入该任务自身的TSS,然后将新任务的选择子、描述符装入TR寄存器,并且将对应TSS段中所保存的通用寄存器、段寄存器、EFLAGS、EIP副本装入处理器对应的寄存器中。

在CS:

EIP的控制下,一个新的任务开始执行。

用JMP、CALL指令调用同一个任务中其他程序段时,指令中的“段选择子”及其描述符被存入CS寄存器,“偏移地址”进入EIP,于是,目标程序被执行。

对于CALL指令,原来程序的返回信息“CS:

EIP”被压入堆栈,和16位微处理器中十分相似。

中断和异常也会导致任务的转换。

17.32位微处理器如何实施对I/O过程的管理?

保护方式下对I/O过程的管理主要有两项措施:

任务状态段TSS中有一个最多64Kbits组成的“I/O允许位图(IOM)”,它的每一位对应一个I/O端口,为0表示该端口允许这个用户进行I/O操作。

处理器首先检查存放在CS中的当前任务的CPL(当前任务优先级),如果CPL的特权级高于或等于EFLAGS中由IOPL规定的特权级,I/O操作不会受限制,否则将进一步检查IOM,对IOM为1的端口进行操作将产

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1