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的更多相关文章

  1. Intel® QAT加速卡之逻辑实例

    Intel QAT加速卡逻辑实例 1. QAT相关的名词组织关系 在本手册中描述的平台上,处理器可以连接到一个或多个英特尔通信芯片组8925至8955系列(PCH)设备. 从软件角度来看,每个PCH设 ...

  2. Intel® QAT 加速卡之IPSec示例

    Intel QAT 加速卡之IPSec示例 文章目录 Intel QAT 加速卡之IPSec示例 1. QAT处理IPSec入站报文 2. QAT处理IPSec出站报文 3. 组织架构 4. 示例源码 ...

  3. Intel® QAT加速卡之加密、哈希操作流程和示例

    Intel QAT 加密API介绍 文章主要讲述了Intel QAT 加密API接口的说明,以及多种应用场景下的使用方法. 文章目录 Intel QAT 加密API介绍 1. 概述 1.1 会话(se ...

  4. Intel® QAT加速卡之同步异步模式

    QAT 的两种操作模式 Intel QAT API同时支持同步和异步两种操作模式. 为了获得最佳性能,该应用程序应能够向加速引擎提交多个未完成的请求. 提交多个未完成的请求可最大程度地减少加速引擎上的 ...

  5. Intel® QAT加速卡之Linux上编程说明

    QAT Software for Linux 1. Introduction 该程序员指南提供了有关软件体系结构和使用指南的信息. 相关的英特尔QAT软件库文档中记录了有关使用英特尔QuickAssi ...

  6. Intel® QAT加速卡之性能简介

    Intel QuickAssist Adapter 8950 设备简介 支持英特尔QuickAssist技术的英特尔QuickAssist适配器提供加密加速和压缩加速服务. 1. Key featur ...

  7. Intel® QAT加速卡之编程demo框架

    QAT demo流程框架 示例一: 代码路径:qat1.5.l.1.13.0-19\quickassist\lookaside\access_layer\src\sample_code\functio ...

  8. Intel® QAT 加速卡之数据面流程(图)

    QAT数据面流程 sessionSetupData数据结构 pOpData数据结构

  9. Golang之ring.Ring的Link操作

    ring.Ring 是一个环链. 其Link操作规则是: r.Link(s) => t = r.Next r.Next.Prev = s.Prev s.Prev.Next = r.Next r. ...

随机推荐

  1. C++ 读 ,写 文件

    1 //文件操作 2 //文本文件 读 ,写文件 3 4 #include <iostream> 5 #include <string> 6 #include<fstre ...

  2. Kerberos委派攻击

    域委派 就是指将域内用户的权限委派给服务账号,使得服务账号能以用户的权限在域内展开活动. 在域中一般只有主机账号和服务账号才具有委派属性 主机账号:主机账号就是AD(活动目录)中Computers中的 ...

  3. Git点赞82K!字节跳动保姆级Android学习指南,干货满满

    这是一份全面详细的<Android学习指南>,如果你是新手,那么下面的内容可以帮助你找到学习的线路:如果你是老手,这篇文章列出的内容也可以帮助你查漏补缺.如果各位有什么其他的建议,欢迎留言 ...

  4. 基于 Clusternet 与 OCM 打造新一代开放的多集群管理平台

    背景 随着 5G.物联网设备的爆炸性增长以及智能终端不断增强的计算能力,带来了前所未有的数据量,传统的中心集中式计算捉襟见肘."新基建"战略的实施,工业互联网.车联网/自动驾驶.智 ...

  5. 算法竞赛中的常用JAVA API :HashSet 和 TreeSet(转载)

    算法竞赛中的常用JAVA API :HashSet 和 TreeSet set set容器的特点是不包含重复元素,也就是说自动去重. HashSet HashSet基于哈希表实现,无序. add(E ...

  6. asp .net core中swagger的简单使用

    相信swagger大家不太陌生,简单来说就是把web api接口以ui的形式呈现到页面上,供方便调用和展示.这边文章就带大家初步简单使用swagger. (1)首先需要安装包:Swashbuckle. ...

  7. Xilinx约束学习笔记(二)—— 定义时钟

    2. 定义时钟 2.1 关于时钟 为了获得最佳精度路径覆盖信息,必须正确定义时钟. 时钟要定义在时钟树的根 pin 或 port 上,称为 source point. 时钟的边缘应该由周期和波形进行组 ...

  8. noip17

    复杂度分析全部摘自题解 T1 sb优化暴力 暴力20-40pts,我只拿了20pts. 正解: bitset 优化暴力,但是会MLE. 再次考虑如何优化,我们统计一下每个点的入度,每次遍历到这个点的时 ...

  9. jvm调优命令

    JDK监控和故障jps,jstat,jmap,jhat,jstack.jinfo jps ,JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程. jstat ...

  10. Windows莫名内存到百分之百,需要修改虚拟内存

    借鉴别人的操作: https://blog.csdn.net/xjpdf10/article/details/82849112