首页>>厂商>>系统集成及应用软件开发商>>杭州三汇

杭州三汇将DMA技术成功应用于数字中继语音卡

2007/01/30

   杭州三汇作为一家自主研发语音卡的成熟厂商,近年来一直不断致力于提高现有语音卡的功能,使其更为完善,效率更高。

  三汇新一代大容量PCI/cPCI数字中继语音卡全面换装了功能更为强大的PCI接口芯片,该接口芯片能够支持对PCI总线进行MASTER模式操作,从而实现了真正的DMA操作,也就是实现了大流量的语音数据通过PCI总线时不需要占用CPU时间。

  DMA技术的成功运用,并不仅仅是换一个芯片这么简单,而是对数据流处理方式的一系列重大改变。电话语音卡的数据传输主要是在主机CPU和板载的DSP之间进行,用来实现语音录放和控制命令和状态的交互。传统的由CPU进行直接I/O操作的数据传送方式,主机CPU可以直接访问DSP的内存数据,就可以直接读写每个语音通道的各类数据,包括录放音缓冲及其指针,命令/状态寄存器等,相对来说实现起来比较简单。但是采用了DMA之后,这种工作方式就行不通了。

  先从DMA的工作原理说起:DMA(Direct Memory Access) ,即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,或是从一段内存到另一段内存。利用它进行数据传送时不需要CPU的参与。每台电脑主板上都有DMA控制器,通常计算机对其编程,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。利用DMA传送数据的另一个好处是,数据直接在源地址和目的地址之间传送,不需要中间媒介。如果通过CPU把一个字节从适配卡传送至内存,需要两步操作。首先,CPU把这个字节从适配卡读到内部寄存器中,然后再从寄存器传送到内存的适当地址。DMA控制器将这些操作简化为一步,它操作总线上的控制信号,使读写字节一次完成。这样就大大提高了计算机运行速度和工作效率。

  计算机发展到今天,DMA已不再用于内存到内存的数据传送,因为CPU速度非常快,做这件事,比用DMA控制器还要快,但要在适配卡和内存之间传送数据,仍然是非DMA莫属。要从适配卡到内存传送数据,DMA同时触发从适配卡读数据总线(即I/O读操作)和向内存写数据的总线。激活I/O读操作就是让适配卡把一个数据单位(通常是一个字节或一个字)放到PC数据总线上,因为此时内存写总线也被激活,数据就被同时从总线上拷贝到内存中。

  在DMA工作期间,主机CPU仍然可以处理其他事务,这是基于以下两点:首先是现代计算机在CPU内部或是外部配备了容量较大的高速缓存(Cache),当DMA控制器占用内存时,CPU仍可利用Cache中的程序和数据继续运行;其次是采用周期挪用或交替访问等技术,实现了DMA控制器和CPU同时访问内存。因此,采用DMA技术,既可以加快数据传送速度,又可以减少对CPU的占用。

  然而,要充分利用DMA传输的优势,就必需实现数据的“大块传输”,这是因为每一次DMA的初始化,仍需要一定的额外开销,如果每次传送的数据量过少,则这个开销所占的比例就会相当大,DMA的优势就不纯在了。这个要求在显卡,网卡等设备上很容易实现,因为需要传送的数据本来就是大块的,但对多通道异步工作的语音卡来说,就很很困难了。为此三汇研发人员重新设计了数据结构,将原来分散传输的数据重新按照消息队列的方式组织起来,人为构造了“大块数据”,从而成功地解决了这个难题。

  成功应用了DMA技术之后,三汇新一代大容量数字中继语音卡在性能上有了质的飞跃,满负荷时的CPU占用率成倍下降,使得应用软件跑起来更为顺畅,并且极大地提高了单机实用容量,使得原先难以用板卡实现的1000路以上的满负荷录放音运行的单机系统成为现实,并且在部分录放音负荷的情况下,更是可以达到CTI系统的极限4096个通道。

  下表是三汇SHD-120A-CT/PCI数字中继卡(未采用DMA技术)和SHD-240D-CT/PCI数字中继卡(采用DMA技术)在相同的配置环境下的测试结果:

 

杭州三汇公司供稿 CTI论坛编辑



相关链接:
ADI Blackfin推出适合三汇的VoIP电话和呼叫中心方案 2009-05-11
杭州三汇荣获CIPCA 2008中国IP通信大奖 2008-10-08
三汇成功开发高性能真人接听检测算法助推外拨应用 2008-08-26
三汇新一代C型传真卡撼市登场 2008-05-15
三汇ATP-24A新型模拟录音产品问世 2008-05-05

分类信息:     技术_语音板卡_文摘