Intel® QAT加速卡之Ring & Ring Bank
阅读原文时间:2023年07月08日阅读:2

Intel 通讯系列芯片对于每种受支持的加速服务(加密,数据压缩),都支持以下应用模式:

  • 内核模式,其中应用程序和加速服务都在内核中运行空间。
  • 用户空间直接访问在用户空间中运行的加速服务。 在此模型中,应用程序和加速服务都在用户空间中运行,并且还可以从用户空间执行对硬件的访问。

上图中的Intel QuickAssist Technology API与操作系统无关,并且在内核或用户空间中具有相同的功能签名。 SAL组件也与操作系统无关,可以编译为用户空间库或内核空间模块。 SAL将OSAL用于所有OS服务,并且已经为Linux用户空间和内核空间实现了OSAL版本。

在Linux操作系统中,同时实现了用户态加速驱动和内核态加速驱动。

硬件辅助环作为一种通信机制,在CPU和加速器之间传输请求。 硬件加速器支持512个环,每个环都有头和尾配置状态寄存器(CSR)指针,这些指针映射到CPU上的PCIe 内存中。这些环可以配置成以下两种模式:

  • 请求环,其中CPU是生产者,加速器是消费者。
  • 响应环,其中加速器是生产者,而CPU是消耗者。

这些环的默认大小均为512个条目(请求环和响应环)。 在任一个环上,可以将CPU作为生产者或消费者,但同一个环上CPU不能同时作为生产者和生产者。 这是为了避免多个生产者可能引发静态的问题。

多个环(Rings)可以构成一个环组(Ring Bank),每个环组(Ring Bank)包含16个环(Rings);每一个加速器包含32个环组(Ring Bank)。此外每一个环组(Ring Bank)都有一个中断号,可以直接递送到特定的CPU核上。每个英特尔通信芯片组8925至8955系列设备有32个环组(Ring Bank),每个环组(Ring Bank)最多两个加密实例和两个压缩实例。 这将每个设备的最大实例数限制为用于加密的64个实例和用于压缩的64个实例。


对于每个环组(Ring Bank),当相应环上的数据可用时,硬件可以产生相应的中断。英特尔QuickAssist Accelerator支持MSI-X中断,如果操作系统支持MSI-X中断,则响应可以定向到系统上的任何内核。 这允许响应处理实现再系统多个核之间的负载均衡。QAT加速器会共享设备上所有的环,并可以通过硬件来实现环的负载均衡。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章