双端口内存

DUAL PORT MEMORY

背景

几乎市面上所有的采集卡和示波器都共用一个架构来存储数据:模拟信号数字化,然后将数字化的结果保存在高速的内存里。 数据采集一旦结束,主机进行数据的分析、显示、保存结果或后续的处理。这种架构称之为单端口内存技术。

单端口内存技术 可以用下面的动态图来形象的演示:

Single Port Memory

传统方式的缺点

这种方式有一个主要的不足: 数据只能在采集完成后才能进行处理(分析或保存)。这带来的必然结果是只有已采集数据被处理完成后, 才能再次采集新的数据。

然而,许多应用需要对信号进行联系不间断的监测。更重要的,设备制造商们需要他们的采集卡一直连续不断的工作。想象一下外科手术的成像系统, 它必须连续的工作,为外科医生提供及时的反馈。

可以这样理解这个问题,将基于胶片的相机与能够记录整个场景的现代摄像机进行比较,前者只能对镜头前面的图像进行快照。一个摄像机将给你一个 更好的机会捕捉到你女儿进球的照片!

AlazarTech的优势

在与客户的交谈中,我们意识到客户需要一个更好的解决方案的需求。 2005年,我们发明了双端口存储器,用于PCI总线采集卡。

本发明是为了满足客户对连续监测射频信号的要求。 不久之后,我们意识到许多其他客户,尤其是生物医学成像领域的客户,也需要这种类型的实时数据采集。 从那时起,可以利用这一技术的应用已经发展到包括SS-OCT成像、光纤传感、量子计算、雷达信号分析、激光雷达、双光子光谱……

AlazarTech的双端口内存 解决方案可以用下图演示:

AlazarTech's Dual Port Memory

AlazarTech的双端口存储 技术不仅仅是在电路板上增加一个 双端口存储IC 还特别设计了一个PCI Express DMA引擎,用它来保证总线上连续、无间隙的DMA传输。

我们为Windows和Linux创建了一个完全异步的设备驱动程序,它与DMA引擎通信,管理缓冲区队列,并提供了一个简单的高级API,用户可以将该API部署到他们的 软件中,而不用关心底层的机制。

注意,上图中显示的缓冲区是由用户应用程序分配的,并且存在于用户空间中。 这意味着用户可以在DMA传输结束后立即使用数据。

我们的一些竞争对手声称有 双端口内存技术,但他们只能流数据到内核模式内存,需要CPU控制将数据复制到用户缓冲区。这将导致较慢的数据吞吐量。

用户获利

双端口内存允许用户:

  • 经PCI和PCI Express总线,无间隙地流非常大的数据到快速磁盘驱动器上。

AlazarTech's Dual Port Memory

使用 单端口存储器
获取模拟信号,由于有间歇,采集数据不完整。

Single Port Memory

使用 AlazarTech的双端口内存 获取相同的信号,因为没有间歇,用户可以获取完整的数据。 这就是为什么这种类型的信号采集也被称为 无间隙流

  • 获取无限持续时间的图像数据,为生物医学或其他应用提供实时成像系统

  • 提供使用主机CPU或GPU对采集的数据执行实时信号处理的能力