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. ...
随机推荐
- noip模拟30[毛毛毛探探探]
\(noip模拟30\;solutions\) 所以说,这次被初中的大神给爆了????? 其实真的不甘心,这次考场上的遗憾太多,浪费的时间过多,心情非常不好 用这篇题解来结束这场让人伤心的考试吧 \( ...
- 为什么说使用 Linux 系统学习 OpenGL 更方便
前言 上一篇随笔介绍了我的电脑,同时也介绍了 Ubuntu 20.10 系统的安装和美化.这一篇,我将正式开始 OpenGL 之旅.使用 Ubuntu 来进行开发,不仅仅只是因为我对 Linux 桌面 ...
- Java 17 将要发布,补一下 Java 13 中的新功能
本文章属于Java 新特性教程 系列,已经收录在 Github.com/niumoo/JavaNotes ,点个赞,不迷路. 自从 Oracle 调整了 Java 的版本发布节奏之后,Java 版本发 ...
- vivo 全球商城:优惠券系统架构设计与实践
一.业务背景 优惠券是电商常见的营销手段,具有灵活的特点,既可以作为促销活动的载体,也是重要的引流入口.优惠券系统是vivo商城营销模块中一个重要组成部分,早在15年vivo商城还是单体应用时,优惠券 ...
- 2020年度钻石C++C学习笔记(3)--《博学谷》
1.Unix/Linux操作系统介绍 1.1 操作系统的作用 1.1.1 操作系统的目标 l 方便:使计算机系统易于使用 l 有效:以更有效的方式使用计算机系统资源 l 扩展:方便用户有效开发.测试和 ...
- postman 常见异常问题的处理
1.postman一直转圈打不开的问题 一般这种问题是因为缓存过多,所以这里需要清理下缓存文件,即:删除%appdata%目录下的postman文件,删除之后可恢复正常. 这个文件夹是隐藏的,对于文件 ...
- MIT Scheme Development on Ubuntu
sudo apt-get mit-scheme; run "scheme" then you enter the command line scheme repl; sudo ap ...
- JavaScript学习04(标准对象)
标准对象 在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用 typeof 操作符获取对象的类型,它总是返回一个字符串: typeof 12 ...
- CentOS6与CentOS7的几点区别
重新安装了一个CentOS7,顺便整理一下与自己之前用的CentOS6的区别 CentOS6以下简称c6 CentOS7以下简称c7 1.关于文件系统: c6 6.x使用EXT4,EXT4单个文件系 ...
- zlib开发笔记(三):zlib库介绍、在ubuntu上进行arm平台交叉编译
前言 方便做嵌入式arm的交叉移植zlib库. Zlib库 zlib被设计为一个免费的,通用的,法律上不受限制的-即不受任何专利保护的无损数据压缩库,几乎可以在任何计算机硬件和操作系统上使 ...