天天看點

Intel® QAT加速卡之Ring & Ring Bank

1. QAT的應用模式

Intel® 通訊系列晶片對于每種受支援的加速服務(加密,資料壓縮),都支援以下應用模式:

  • 核心模式,其中應用程式和加速服務都在核心中運作空間。
  • 使用者空間直接通路在使用者空間中運作的加速服務。 在此模型中,應用程式和加速服務都在使用者空間中運作,并且還可以從使用者空間執行對硬體的通路。
    Intel® QAT加速卡之Ring & Ring Bank

上圖中的

Intel® QuickAssist Technology API

與作業系統無關,并且在核心或使用者空間中具有相同的功能簽名。 SAL元件也與作業系統無關,可以編譯為使用者空間庫或核心空間子產品。 SAL将OSAL用于所有OS服務,并且已經為Linux使用者空間和核心空間實作了OSAL版本。

在Linux作業系統中,同時實作了使用者态加速驅動和核心态加速驅動。

2. 硬體輔助環(Ring)

硬體輔助環作為一種通信機制,在CPU和加速器之間傳輸請求。 硬體加速器支援512個環,每個環都有頭和尾配置狀态寄存器(CSR)指針,這些指針映射到CPU上的PCIe 記憶體中。這些環可以配置成以下兩種模式:

  • 請求環,其中CPU是生産者,加速器是消費者。
  • 響應環,其中加速器是生産者,而CPU是消耗者。
    Intel® QAT加速卡之Ring & Ring Bank

這些環的預設大小均為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個執行個體。

Intel® QAT加速卡之Ring & Ring Bank
Intel® QAT加速卡之Ring & Ring Bank

對于每個環組(Ring Bank),當相應環上的資料可用時,硬體可以産生相應的中斷。英特爾®QuickAssist Accelerator支援MSI-X中斷,如果作業系統支援MSI-X中斷,則響應可以定向到系統上的任何核心。 這允許響應處理實作再系統多個核之間的負載均衡。QAT加速器會共享裝置上所有的環,并可以通過硬體來實作環的負載均衡。