现代微型计算机与接口教程(杨文显)第十章课后答案

  • 格式:doc
  • 大小:54.50 KB
  • 文档页数:4

习 题 十 1. 总线的指标有哪几项?总线标准和总线产品哪一个先产生? (1) 总线宽度: 总线宽度是可以同时传输的数据位数,位数越多,一次传输的信息就越多。 (2) 总线频率: 总线通常都有一个基本时钟,总线上其它信号都以这个时钟为基准,这个时钟的频率也就是总线工作的最高频率。总线频率越高,单位时间内传输的数据量就越大。 (3) 单个数据传输周期数: 传输方式的不同,使得每个数据传输所用的时钟周期数不同。单个数据传输周期数越少,传输率越高。 此外,总线的仲裁方式,容错性能,是否支持突发成组传输,也反映了总线的性能。 总线标准的产生有多种形式。有的总线产品推出后得到广泛的认同,随后成为事实上的工业标准,这个产品所采用的技术规范最终成为标准,标准产生在产品之后。有的技术问题得到较多的关注,由标准化组织或者相关集团发起,制定了相应的标准。这时,产品的出现晚于标准的制定。

2. ISA卡设计时如何解决资源冲突问题? ISA的I/O空间仅有100H~3FFH的768个地址可供使用,其中不少端口已分配给“常规”的设备使用,新设计I/O扩充卡的端口地址不能与它们冲突。另外,扩充卡之间使用的地址也不能发生冲突。为解决这个矛盾,ISA卡上一般都设有一组开关(switch),用户可以通过设定这组开关来设置这块ISA所占用的I/O起始地址,使它位于所使用计算机I/O的空闲位置,从而避免发生冲突。

3. ISA总线需要进行总线仲裁吗?为什么? ISA总线是一个简单的多主控总线,需要使用总线的“主设备”是CPU和最多7个使用DMA传送的设备。当CPU以外的一个或多个设备需要使用总线时,需要进行“总线仲裁”。对于使用DMA请求使用总线的设备来说,“仲裁”要分两次进行: ① DMA请求信号送到8237,由8237进行第一次“仲裁”; ② 8237的请求信号发送到CPU,在一个总线周期结束时释放总线。

4. 若有两块818ISA卡BASE1= 0x0250, BASE2 = 0x0330, switch分别应如何设置? BASE1 = 0x250:swith 1, 4, 6 = off swith 2, 3, 5 = on BASE2 = 0x320:swith 1, 2, 5 = off swith 3, 4, 6 = on

5. PCI总线怎样的信号组合启动一个总线的访问周期,又怎样结束一个访问周期?它的AD0~AD31同CPU的同名引脚有何不同? 主设备获得总线使用权后,将FRAME#置为有效,在AD0~31上发出地址信号,C/BE#上发出总线命令,一次总线访问周期开始。 主设备在发出最后一组数据读写的启动信号之后,将FRAME#信号置为无效,表示数据传输即将结束。在最后一项数据传输后,主设备撤销IRDY信号,从设备撤销TRDY#和DEVSEL#信号,一次PCI总线传输结束。 PCI总线信号独立于CPU,使用独立于CPU的时钟信号。对于PCI总线来说,CPU是它所连接的众多设备中的一个。PCI总线的AD0~31是地址和数据分时复用信号,它们与CPU同名引脚传输的信号类型相同,但是并不等同。CPU对PCI总线上设备进行访问时,CPU发出的地址经Host/PCI桥缓冲,按照PCI的时序定时后由桥电路向PCI总线“转发”。DMA传输时,PCI总线上的AD0~31来自DMA控制器而不是来自CPU。

6. 一块PCI卡上最多可以实现多少路中断信号? 由于PCI总线上只有4条中断请求线,因而一块PCI卡最多可以实现4路中断请求。 说明: ① 对于单项功能的PCI卡,只能使用INTA#请求中断;对于对功能PCI卡,可以使用其它的三根中断请求引脚。 ② PCI总线允许“共享”中断请求信号线,这是与以前有较大区别的。例如,有两块PCI卡插在PCI总线上,按照规定,他们都使用同一个INTA#申请中断。在“中断描述符表”上,中断服务的入口可能是设备甲,或者是设备乙,现假设为设备甲。如果设备乙申请中断,那么,首先会进入设备甲的中断服务程序。该程序通过查询状态,发现自己并没有申请中断,于是发出相应信息后返回。此后,由操作系统调度进入设备乙的中断服务程序(参见习题11第8题答案)。 ③ PCI总线上的中断请求进入ICH芯片后,与“SIO”芯片送来的“串行中断”(由传统设备键盘、鼠标、串口、并口、软驱发出,通过L/F总线传送到ICH芯片)一起,被送往ICH芯片内的“中断申请信号路由器”。可以通过程序来设置每一个中断请求使用的实际的中断请求引脚(除少数已集成在CPU内,中断类型固定的申请以外),最终由“路由器”产生12个中断申请信号,送到芯片内两个级联的8259中断控制逻辑。主片8259产生的中断请求最终由ICH的INTR引脚送往CPU。

7. 在PCI卡配置空间中,基地址寄存器的作用是什么?一个PCI设备最少可申请多少地址空间?最少可申请多少I/O空间? PCI总线上的设备采用“即插即用”的方法,所有设备使用的存储空间和IO空间的具体位置事先是不确定的,需要在系统初始化时通过“配置”过程来确定。PCI卡上的基地址寄存器有两个方面的作用: (1) 寄存器的最低的几位记录申请所需空间的类型(存储器空间/IO空间)、空间的大小等信息(寄存器的这几位是只读的)。 (2) 寄存器的高位用来纪录操作系统分配给它的存储空间/IO空间的起始地址(寄存器的这几位是部分可写的)。 由于有6个基地址寄存器,PCI设备最多可以申请6段地址空间。 对于申请存储空间的基地址寄存器,它的第0~3位是只读位,第4~31位用来表示申请地址空间的大小,因而一个PCI设备申请地址空间最少是16个byte。对于申请I/O空间的基地址寄存器,它的第0~1位是只读位,第2~31位用来表示申请地址空间的大小,因而申请I/O地址空间最少是4个byte。 例如,某PCI设备申请1MB的存储空间,它的基地址寄存器位0~位19均为只读。其中: 位0固定为0,表示申请存储器空间; 位1~2表示“映射”的类型,如果基地址寄存器为32位,可以“映射”到32位地址空间的任何位置,这两位可以固定为“00”; 其余位均固定为0。 系统进行配置操作时,向该寄存器写入32位全“1”,然后读出该寄存器的内容。由于低20位均为只读位,所以实际读出的内容为高位12个“1”和低位20个“0”。其中位0~位2表示空间类型和“映射”类型,其它的“0”(位4~位19)表示了申请空间的大小。随后,系统根据各设备的请求进行空间的统一分配,将分配给该设备的存储空间首地址写入该基地址寄存器。对于1MB的空间而言,它首地址的低20位应为0,它的高12位反映了实际的起始地址。基地址寄存器的高12位正好能容纳这12位“有效”的起始地址。

8. USB主机怎样了解USB设备的接入? USB主控制器和根集线器合称为USB主机(HOST)。USB主机通过根集线器监测外设的连接和断开。

8. 一台微机有5台USB设备,另一台微机有10台USB设备,各需用四端口的集线器几个?画出它们的结构图。 5台USB设备,需用四端口的集线器1个(不包括根集线器)。 10台USB设备,需用四端口的集线器3个(不包括根集线器)。 它们的连接如右图所示。

10. 用8086汇编程序读出(注意是32位)PCI设备所分配到的存储器首地址。 MOV AH, 0B1H ; MOV AL, 02H ; MOV CX, 设备ID值 ; MOV DX , 厂商ID值 ; MOV SI, 0 ; 索引号 INT 1AH ; 得到总线号(BH)、设备号(BL高5位)、功能号(BL低3位) JC ERROR ; 错误时转ERROR PP: MOV AH, 0B1H ; MOV AL, 09H ; AL=09H, 读取基址寄存器内容 QQ: MOV DI, 10H ; 第一个PCI基址寄存器地址 INT 1AH ; AND AH, AH ; AH = 0 表示读取成功 JNZ ERROR TEST ECX, 01 ;ECX末位= 0,该寄存器存放存储空间首地址 JZ MM AND ECX, 0FFFFFFFCH ;ECX末位=1,该寄存器存放I/O空间首地址(高30位) STC JMP DONE MM: AND ECX, 0FFFFFFF0H ; 从基地址寄存器获取存储空间首地址(高28位) DONE: MOV EAX, ECX ; 说明: (1) 读取PCI配置信息需要知道该PCI设备的设备ID值(置于CX中)和厂商ID值(置于DX中)。然后用AH = 0B1H, AL= 02H 的 INT 1AH 功能调用获得该PCI设备的总线号(BH),设备号(BL高5位)、功能号(BL低3位)。 (2) 一个PCI总线设备可以有6个基地址寄存器,本程序只读取了第一个基地址寄存器所存储

根集线器HUB连接5台设备根集线器HUBHUBHUB

连接10台设备 的配置空间首地址。读取其他配置空间首地址可以重复使用从“PP”标号开始的程序,同时修改标号为“QQ”的指令中的PCI基地址寄存器地址。第二个基地址寄存器地址为14H,第3个为18H,„„ ,以此类推。 (3) 如果基地址寄存器存放的是存储空间基地址,它的末位为0,高28位添加4个0就是操作系统分配给该设备的存储空间首地址(不讨论64位基地址的情况)。如果基地址寄存器存放的是I/O空间基地址,它的末位为1,高30位添加2个0就是操作系统分配给该设备的I/O空间首地址。 (4) 为了区分读出的是存储空间基地址还是I/O空间首地址,上述程序用CF加以区分: CF = 0, 读出的是存储空间基地址(在EAX中); CF = 1, 读出的是I/O空间基地址(在EAX中)。

11. 两台PCI设备之间可直接传输数据吗?两台USB设备之间呢? 两台PCI设备之间可直接传输数据。由PCI主设备申请使用总线,获得总线使用权后用地址信号呼叫从设备,然后进行数据传输。 两台USB设备之间不可直接传输数据。USB总线采用“主-从”方式进行通讯,每一次数据传输必须由USB主机发起。这样,两台USB设备之间的数据传输必需通过USB主机间接进行。

12. 那些总线具有热插拔功能?对哪一类总线这个功能是必需具备的? USB总线和PCI总线都支持热插拔(Hot Plug In)。对于USB总线来说,热插拔功能是必需的。 需要说明的是,目前一般PC机内的PCI总线设备不支持“热插拔”功能。实现该功能需要相应的软、硬件的支持。“热插拔”的PCI总线设备主要应用于某些通讯设备中。

13. 从硬件来讲,一个USB信息传输到微处理器需经过那几个环节? USB总线上的数据传输是一种“主-从式”的传输,所有的传输都由USB主机发起。一个USB信息传输到CPU需经过集线器、根集线器和控制器这几个环节。