网站大量收购独家精品文档,联系QQ:2885784924

基于Virtual Box虚拟机的硬盘DMA实验设计.docVIP

基于Virtual Box虚拟机的硬盘DMA实验设计.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Virtual Box虚拟机的硬盘DMA实验设计   摘要:我院开设了基于Virtual Box虚拟机的硬盘DMA实验,覆盖了DMA传输机制、PCI设备配置空间、PCI-IDE控制器编程、ATAPI协议等多个知识点,构成一个软硬件结合的综合性实验。应用Virtual Box虚拟机软件,避免了不同微机系统中的硬件配置差异,实验过程不会破坏物理硬盘上的系统数据,保证了实验环境的稳定和安全。本文介绍了我院的教学经验。   关键词:虚拟机;硬盘;DMA;VirtualBox   中图分类号:G642 文献标识码:B   1引言      DMA(Direct Memory Access,直接内存访问)是外围设备和内存之间的数据传送方式,在汇编语言、计算机原理、接口技术、操作系统等课程中均涉及到这部分知识。DMA实验的开设,使学生从实际应用和底层的角度理解DMA技术在计算机系统的地位,对于多门课程知识的融合、提高学生的实践创新能力具有十分重要的意义。   早期的IBM PC机中使用集中式的DMA控制器,总线控制和地址产生的逻辑由系统中的2个DMA控制器(8237芯片)完成,外部设备需要向8237发送请求信号,由8237来控制DMA传输。软盘控制器使用DMA通道2,常采用软盘扇区读写作为DMA实验。然而,现代微机已不再配置软盘驱动器,已经不具备采用软盘DMA实验的条件。软盘控制器所依赖的集中式的DMA控制器也已经过时。因此,有必要重新设计DMA实验,使它适合现代微机技术的发展。   计算机系统的外部设备日趋智能化,PCI总线主设备能自主地产生总线周期和内存地址,DMA控制器作为设备接口控制器的内部模块,而不再采用集中式DMA控制器。为此,需要在研究现代微机DMA机制的基础上,开设出与之相适应的课程实验。作者所在的课程组结合科研实践中所取得的成果,选择了硬盘作为DMA实验的外部设备,并采用VirtualBox虚拟机解决了不同微机存在配置差异和实验环境的安全保障两方面的问题。      2硬盘DMA传输      硬盘一般采取IDE(Integrated Drive Electronics)接口,硬盘控制器与硬盘盘体集成在一起。现代微机的主板上一般都集成了2个IDE控制器,每个控制器上可以连接2个硬盘(或光驱),其中的一个作为主盘,而另一个作为从盘。在编程控制接口方面,硬盘、CD/DVD设备采用了ATAPI标准。   硬盘有2种数据传输模式:PIO模式和DMA传输模式。在PIO模式下,由CPU执行IN/OUT指令访问IDE控制器的端口,将数据从硬盘读出或者写入到硬盘。在DMA模式下,数据的传送在IDE控制器的端口和内存之间直接进行,不需要通过CPU中转。   主机对硬盘的读写操作是通过IDE控制器上的两组寄存器来实现,第一组寄存器中占用8个端口(例如1F0H~1F7H),包括数据寄存器、特征寄存器、错误寄存器、扇区数寄存器、扇区号寄存器、低位柱面寄存器、高位柱面寄存器、设备/磁头寄存器、状态寄存器、命令寄存器。第二组寄存器中只有一个有效端口(例如3F6H),为设备控制寄存器。   每一个控制器上可以连接两个ATA设备,这两个设备使用同样的端口地址,在设备/磁头寄存器中用DEV位来区分这两个设备。DEV=0时,表示主盘;DEV=1时,表示从盘。   硬盘的每个扇区的大小为512字节。主机在读写硬盘时,需要指定它要读写的是哪一个扇区,即扇区地址。   PCI-IDE控制器中含有一个DMA控制器,它能够在硬盘和内存之间直接传送数据。在数据传送期间,这个DMA控制器接管PCI总线,产生对硬盘的I/O操作和对内存的读写操作,根据设定的传送字节数,在全部数据传送完成后,结束DMA传输。   PCI-IDE控制器作为一个PCI设备,在256字节的配置空间中,偏移020h处的基地址寄存器4(BAR4)作为DMA主控寄存器的首地址。每个通道有3个寄存器,主控命令寄存器、主控状态寄存器和描述符指针表寄存器。PCI-IDE控制器支持2个IDE通道(主通道和次通道),每个通道占用8个字节的端口地址。设BAR4中的首地址为0C000H,这些寄存器的端口地址如表1所示。      主控命令寄存器控制DMA的传输方向(从IDE设备到内存,或者从内存到IDE设备)、启动或停止DMA传输。   主控状态寄存器中保存了DMA是否正在传输、是否出现错误、IDE设备是否产生了一个中断请求,主盘或从盘是否能够执行DMA操作等状态信息。   描述符表指针寄存器是一个指向描述符表的指针。描述符表中包含一个或多个物理区域描述符。每个描述符占8个字节,包括32位的内存缓冲区物理地址及16位缓冲区长度,以及缓冲区是否是最后一个等信息。例如,读写一

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档