Intel® QAT加速卡之Ring & Ring Bank
1. QAT的应用模式
Intel 通讯系列芯片对于每种受支持的加速服务(加密,数据压缩),都支持以下应用模式:
- 内核模式,其中应用程序和加速服务都在内核中运行空间。
- 用户空间直接访问在用户空间中运行的加速服务。 在此模型中,应用程序和加速服务都在用户空间中运行,并且还可以从用户空间执行对硬件的访问。

上图中的Intel QuickAssist Technology API与操作系统无关,并且在内核或用户空间中具有相同的功能签名。 SAL组件也与操作系统无关,可以编译为用户空间库或内核空间模块。 SAL将OSAL用于所有OS服务,并且已经为Linux用户空间和内核空间实现了OSAL版本。
在Linux操作系统中,同时实现了用户态加速驱动和内核态加速驱动。
2. 硬件辅助环(Ring)
硬件辅助环作为一种通信机制,在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加速器会共享设备上所有的环,并可以通过硬件来实现环的负载均衡。
Intel® QAT加速卡之Ring & Ring Bank的更多相关文章
- Intel® QAT加速卡之逻辑实例
Intel QAT加速卡逻辑实例 1. QAT相关的名词组织关系 在本手册中描述的平台上,处理器可以连接到一个或多个英特尔通信芯片组8925至8955系列(PCH)设备. 从软件角度来看,每个PCH设 ...
- Intel® QAT 加速卡之IPSec示例
Intel QAT 加速卡之IPSec示例 文章目录 Intel QAT 加速卡之IPSec示例 1. QAT处理IPSec入站报文 2. QAT处理IPSec出站报文 3. 组织架构 4. 示例源码 ...
- Intel® QAT加速卡之加密、哈希操作流程和示例
Intel QAT 加密API介绍 文章主要讲述了Intel QAT 加密API接口的说明,以及多种应用场景下的使用方法. 文章目录 Intel QAT 加密API介绍 1. 概述 1.1 会话(se ...
- Intel® QAT加速卡之同步异步模式
QAT 的两种操作模式 Intel QAT API同时支持同步和异步两种操作模式. 为了获得最佳性能,该应用程序应能够向加速引擎提交多个未完成的请求. 提交多个未完成的请求可最大程度地减少加速引擎上的 ...
- Intel® QAT加速卡之Linux上编程说明
QAT Software for Linux 1. Introduction 该程序员指南提供了有关软件体系结构和使用指南的信息. 相关的英特尔QAT软件库文档中记录了有关使用英特尔QuickAssi ...
- Intel® QAT加速卡之性能简介
Intel QuickAssist Adapter 8950 设备简介 支持英特尔QuickAssist技术的英特尔QuickAssist适配器提供加密加速和压缩加速服务. 1. Key featur ...
- Intel® QAT加速卡之编程demo框架
QAT demo流程框架 示例一: 代码路径:qat1.5.l.1.13.0-19\quickassist\lookaside\access_layer\src\sample_code\functio ...
- Intel® QAT 加速卡之数据面流程(图)
QAT数据面流程 sessionSetupData数据结构 pOpData数据结构
- Golang之ring.Ring的Link操作
ring.Ring 是一个环链. 其Link操作规则是: r.Link(s) => t = r.Next r.Next.Prev = s.Prev s.Prev.Next = r.Next r. ...
随机推荐
- 聊聊TCP Keepalive、Netty和Docker
聊聊TCP Keepalive.Netty和Docker 本文主要阐述TCP Keepalive和对应的内核参数,及其在Netty,Docker中的实现.简单总结了工作中遇到的问题,与大家共勉. 起因 ...
- Java面向对象11——多态
多态 package oop.demon01.demon06; public class Application { public static void main(String[] a ...
- OpenStack镜像制作笔记 --以windows8.1-amd64为例
by hyc 目录 1.下载win8_64位的iso文件 2.下载对应电脑的vnc 3.下载Xshell软件 4.连接成功后,在Xshell下安装软件包 5.下载FileZilla Client软件 ...
- Longhorn,Kubernetes 云原生分布式块存储
Longhorn 是用于 Kubernetes 的轻量级.可靠且功能强大的分布式块存储系统. Longhorn 使用容器(containers)和微服务(microservices)实现分布式块存储. ...
- netty系列之:自定义编码和解码器要注意的问题
目录 简介 自定义编码器和解码器的实现 ReplayingDecoder 总结 简介 在之前的系列文章中,我们提到了netty中的channel只接受ByteBuf类型的对象,如果不是ByteBuf对 ...
- Golang语言系列-13-常用内置包
常用内置包 net/http包 http请求和响应 http服务端 main.go文件 package main import ( "fmt" "io/ioutil&qu ...
- Windows提权总结
当以低权用户进去一个陌生的windows机器后,无论是提权还是后续做什么,第一步肯定要尽可能的搜集信息.知己知彼,才百战不殆. 常规信息搜集 systeminfo 查询系统信息 hostname 主机 ...
- HCNA Routing&Switching之PPPoE协议
前文我们了解了广域网中的HDLC和PPP协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15174240.html:今天我们来聊一聊PPPoE协议相 ...
- NOIP 模拟 $13\; \text{卡常题}$
题解 一道环套树的最小点覆盖题目,所谓环套树就是有在 \(n\) 个点 \(n\) 条边的无向联通图中存在一个环 我们可以发现其去掉一条环上的边后就是一棵树 那么对于此题,我们把所有 \(x\) 方点 ...
- C++11 unique_ptr智能指针详解
在<C++11 shared_ptr智能指针>的基础上,本节继续讲解 C++11 标准提供的另一种智能指针,即 unique_ptr 智能指针. 作为智能指针的一种,unique_ptr ...