第十章聆听数字的声音.docVIP

  1. 1、本文档共25页,可阅读全部内容。
  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文档。上传文档
查看更多
第十章聆听数字的声音.doc

第十章 聆听数字的声音 每次谈到计算机硬件的时候,人们无一例外地会说总线有多宽,速度有多快。很难说什么样的“快”才叫快,特别是考虑到内存和外部设备在速度上和处理器相比,从来就不在一个数量级上。 数据通常在内存和外部设备之间,以及一个外部设备和另一个外部设备之间流动。典型的例子包括从硬盘读数据到内存中,或者从内存中把数据传送到显存中。如果屏幕的分辨率是1280×1024,在真彩色显示方式下,每个像素至少需要3个字节。想想看,以每秒30帧的速度来刷新屏幕上的画面,这样的事,也只有现在的技术可以做到,在从前是不可想象的。现在,让我们简单快速地回顾一下,以前是怎样的,现在又是怎样的。 10.1 本章意图 10.1.1 过气的直接存储器访问 数据传输毫无疑问地是在总线上进行的,因为不可能在众多的设备之间建立一对一的连线。但是,总线的麻烦之处在于如何避免冲突,当两个家伙对话时,无关的人都应当关上门闭上嘴。在这种情况下,必须有一个能够控制总线的设备,或者称为总线主控设备(bus master),来管理这种事情。 在硬件技术不发达的早期,处理器是最重要的总线主控制设备,它有权决定谁参与总线数据传输。考虑以下代码片断: mov [0x2000],dx 在执行这条指令时,处理器不但发出地址信号,也发出控制信号,控制信号用来表明该地址是发给内存的,还是发给外部设备的。所有设备都有译码电路,这些译码电路的输入就是地址和控制信号。以上指令执行的时候,内存的译码结果是打开通向总线的数据通路,而外部设备则保持同总线的脱离状态。 相反地,下面的指令是发给端口的,内存当然不会工作。而且,只有那个端口号相符的外部设备才会和数据总线连通,其它所有设备都保持同总线的脱离状态: in al,0x70 在这种情况下,如果外部设备希望向内存传输数据,那么,必须由处理器首肯并介入其中: mov bx,0x2000 mov cx,500 ttime: in al,0x50 mov [bx],al loop ttime 在这个例子中,数据先从端口0x50读出,传送到寄存器AL,然后再传送到内存单元,视数据量的大小,这个过程需要重复多次。 当两个外部设备希望对话时,比如从一个设备传送200个字节的数据到另一个设备,情况也差不多: mov cx,200 ttime: in al,0x30 out 0x50,al loop ttime 在过去的岁月中先后出现过多种不同的总线类型,它们的典型代表就是工业标准结构总线(Industrial Standard Architecture:ISA)。总线不单单是数据线路,还包括地址线路的控制信号线路,规定和数据和地址的宽度,以及各种控制信号的规程和电气特性。控制信号规定了设备之间互相交流的协同的方式,而不同的总线有不同的控制信号规程。 ISA是面向单用户和简单应用环境的总线,结构并不复杂。所以,符合ISA信号规程的外部设备都很简单。以今天的眼光看来,或者以数据传输的效能来看,对总线的控制能力有限。尽管如此,它还是提供了一种解决方案,那就是直接存储器访问(Direct Memory Access:DMA)。直接存储器访问的核心器件是DMA控制器(DMA Controller:DMAC),尽管不如处理器那么神通广大,但也是一个总线主控设备。 一台计算机内只有一个DMA控制器,由它负责所有外部设备的直接数据传输协调工作,而且赋予它的总线主控能力要高于处理器。比如,当外部设备需要发起一次针对内存某个区域的数据传输时,应该向DMAC发出请求。DMAC回应此请求,同时告诉处理器不要再使用总线。注意,这是干预处理器的工作,命令它让出总线。接着,由它主导,开始在该外部设备和内存之间直接传输数据。 如图10-1所示,在早期的计算机系统中,DMAC是独立于处理器和外部设备之外的第三方(Thrid party)总线主控器。设备向DMAC发送DMA请求(DMA REQuest:DREQ) 图10-1 直接存储器访问控制逻辑 对大批量、高速数据传输的需求一直是存在着的,区别仅仅在于这种需求有多强烈。所谓水涨船高,要求自然也跟着提高了,当我们的显卡能够支持高分辨率和真彩色显示模式时,大家就开始考虑让它能够播放高码率的高清电影。 DMA技术曾经很流行,但总线技术发展速度更快,所以,现在的情况是,DMA技术依然在大学的教材上非常流行,现实生活中,在实际的计算机系统中,它已经渐渐离我们远去。 在个人计算机中,总线发展的目标是智能、高速和并发地进行输入输出。因此,为那些有批量数据传输需求的设备提供总线主控能力无疑是非常必要的,这就是现行的PCI和PCI-E总线所能为我们做的。在这些新型的总线和总线设备上,DMA已经是一个历史名词,就仿佛它并没有存在过。 不得不说硬件的发展

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档