用于 C-RORC 与 CRU 读出卡的 ALICE O2 通用驱动程序
摘要
ALICE(A Large Ion Collider Experiment)是专为在欧洲核子研究中心大型强子对撞机(LHC)上研究相对论性重离子碰撞中实现的强相互作用物质态而设计的重离子探测器。实验计划在 2019-2020 年长期停机期间进行重大升级。为了应对比 LHC 第 1 运行期高 100 倍的数据速率以及时间投影室(TPC)的连续读出,有必要将在线与离线计算系统升级为名为 O2 的新通用系统。O2 读出链将使用配备定制 PCIe FPGA 读出卡的商品化 x86 Linux 服务器。本文讨论了 O2 中所用卡片的驱动程序架构:基于 PCIe v2 x8、Xilinx Virtex 6 的 C-RORC(Common Readout Receiver Card)和基于 PCIe v3 x16、Intel Arria 10 的 CRU(Common Readout Unit)。对 PCIe 卡的访问通过三层软件实现。首先是底层 PCIe(PCI Express)层,负责为底层操作(如内存映射 PCIe BAR(Base Address Registers)和创建分散-聚集列表)提供用户空间接口,该层由法兰克福高等研究院(FIAS)开发的 PDA(Portable Driver Architecture)库提供。在此之上是我们的用户空间驱动程序,它实现同步、控制读出卡(例如重置和配置卡片、为其提供用于传输数据的总线地址以及检查数据到达),并提供一个统一的高级 C++ 接口,该接口抽象了 C-RORC 与 CRU 之间的差异。该接口(主要供高性能读出进程直接使用)允许用户配置和使用读出卡的各项功能,如配置、DMA 传输以及向前端发送命令等。[...]
引用
@article{arxiv.1710.05607,
title = {The ALICE O2 common driver for the C-RORC and CRU read-out cards},
author = {Pascal Boeschoten and Filippo Costa},
journal= {arXiv preprint arXiv:1710.05607},
year = {2019}
}
备注
5 pages, 3 figures. ACAT 2017 conference proceedings