Intel Data Streaming Accelerator: o que é e como funciona na CPU

O futuro das relações entre o CPU e a memória acontece no endereçamento universal, o que requer novos tipos de unidades para eles dentro do processador, como o Data Streaming Accelerator. Mas o que é e como melhora o desempenho do processador?

Acelerador de transmissão de dados Intel

Nos últimos tempos, um dos avanços em que mais está sendo investigado tem a ver com a movimentação de dados dentro de uma arquitetura. Algo que à primeira vista pode parecer completamente resolvido há muito tempo, mas nos últimos anos tornou-se um ponto crucial no sentido de aumentar o desempenho das CPUs.

Existem duas razões pelas quais a movimentação de dados se tornou a obsessão dos arquitetos ao projetar um novo hardware. O primeiro diz respeito ao consumo de energia e o segundo à latência, que é o tempo que leva para realizar uma operação de memória, e é neste segundo ponto que temos que deixar bem clara a relação entre latência e largura. banda.

Largura de banda é igual a latência?

Movimentos dados

Não, eles não são os mesmos, latência é o tempo em ciclos de clock que leva para resolver uma solicitação à memória e isso tem uma série de etapas que sempre devem ser executadas. O problema é que embora a interface de memória possa ser muito rápida, o controlador de memória pode não ser e acaba acontecendo que este ou o MMU da CPU fica saturado e todos os pedidos de memória são atrasados.

Bem, não importa o quão rápida a interface seja, se a solicitação de memória for bloqueada, o resto da fila será bloqueado e nenhum dado será transmitido. E isso pode acontecer se acabar saturando um grande número de solicitações para o RAM. O pior é que isso pode até mesmo deixar a CPU esperando um longo tempo para obter os dados para a próxima instrução a ser executada.

Em vez disso, a largura de banda é simplesmente a velocidade de transferência. Por exemplo, você pode ter 100 requisições a 1 GB / ou 1 requisição a 100 GB / s, mas deve-se levar em consideração que o controlador de memória do processador que é responsável por gerenciar os acessos a ela terá maiores dificuldades com o primeiro caso. do que com o segundo.

Unidades de movimentação de dados

Portada-CPU-Genérica-Placa-Base

Pegue qualquer ISA, não importa o que seja e dê uma olhada, nele você verá instruções que não realizam uma operação aritmético-lógica, nem se encarregam de realizar um salto ou um navio, mas estão em encarregado de realizar movimentos de dados que envolvam movimento para a memória.

Muitas dessas instruções são antiquadas e têm uma latência de ciclo de clock específica. E se adicionássemos um processador de suporte para atuar como um mensageiro e pudéssemos resolver essas solicitações para RAM ou qualquer memória no mesmo endereço com menor latência? Bem, o desempenho do processador aumentaria e permitiria que ele concentrasse os ciclos de clock que normalmente estão esperando para resolver novas instruções.

Bem, a Intel O Data Streaming Accelerator é baseado neste princípio e é uma das chaves para melhorar o desempenho dos diferentes processadores.

Acelerador de transmissão de dados Intel

Acelerador de fluxo de dados Diagrama

Como o próprio nome indica, é um acelerador, ou seja, uma unidade que realiza uma tarefa específica, que neste caso é a emissão de dados em menos tempo do que a CPU faria. A particularidade do DSA é que ele é projetado para uma das características que o Compute Express Link traz consigo sobre o PCI Express 5.0, que é conceder acesso coerente à memória RAM a todos os periféricos conectados à porta PCI Express, ou seja, eles compartilham os mesmos endereços de memória.

Portanto, é usado para realizar as seguintes operações:

  • Você pode mover dados da CPU para a RAM e vice-versa.
  • Para acessar espaços de memória não coerentes, com outro endereçamento de memória, pode-se realizar a conversão de endereços automaticamente, portanto, tecnicamente estamos diante de uma unidade DMA atualizada.
  • Ele também tem acesso a memórias persistentes ou não voláteis, para que também possa acessar SSDs NVMe, módulos Intel Optane, NVDIMMs etc ...
  • Por meio de NTB e em um ambiente de servidor, ele dá acesso a outra RAM ou memória não volátil de outra placa no data center ou servidor.
  • Ele tem funções integradas para aplicar os pontos acima às máquinas virtuais.

Como muitos de vocês podem ter deduzido, é um tipo de unidade projetada especialmente para processadores de servidor, embora não seja uma unidade de função fixa que funciona automaticamente.

Instruções Intel DSA

O Data Streaming Accelerator não é uma unidade de função fixa, pois nem sempre aplica o mesmo programa aos dados que o inserem, mas suporta uma série de instruções, por isso é o que chamamos de um processador de domínio específico. Entre as operações que você pode realizar estão:

  • Mover: as instruções clássicas de movimentação de dados x86, aqueles que escreveram assembler saberão. Se o processador tiver um ou mais Intel Data Streaming Accelerators, ele será executado por eles e não pelos núcleos da CPU.
  • DIF: isso é responsável por realizar o processo de verificação da integridade das informações da memória.
  • Geração CRC: Gera a soma de verificação CRC nos dados transmitidos.
  • Preencher: É responsável por preencher repetidamente uma seção da memória com um dado específico, é ideal para apagar o conteúdo de uma parte da memória, pois nos permite definir todos os bits para 0.
  • Comparar: Ele é usado para comparar dois blocos de memória e verificar se eles são idênticos.
  • Criação de registro delta: Faça uma verificação e gere um novo fluxo de dados com a diferença entre os dois.

O Data Streaming Accelerator também pode controlar vários dispositivos de armazenamento ao mesmo tempo:

  • Habilitar desabilitar : permite que você conecte ou desconecte um dispositivo de memória, seja RAM ou armazenamento não volátil.
  • Abortar: abortar todos os pedidos de memória para RAM ou outro dispositivo de memória.
  • Drenar: solicita que todas as solicitações sejam feitas a um dispositivo de memória ao mesmo tempo.

A lista de instruções é bem maior, mas é para que você tenha uma ideia aproximada de como é o funcionamento dessa nova unidade que a Intel integrou aos seus processadores. Os benefícios são claros e devem ser aprimorados ainda mais no Sapphire Rapids.