Como a compactação funciona em uma arquitetura de memória orientada a objetos

Uma equipe de engenheiros do MIT desenvolveu uma hierarquia de memória orientada a objetos para um trabalho mais eficiente com os dados. O artigo trata de como é organizado.


/ PxHere / PD

Como você sabe, o aumento de desempenho das CPUs modernas não é acompanhado por uma redução correspondente na latência ao acessar a memória. A diferença na mudança de indicadores de ano para ano pode chegar até 10 vezes ( PDF, p . 3 ). Como resultado, surge um gargalo que impede o uso completo dos recursos disponíveis e diminui o processamento dos dados.

O chamado atraso de descompressão causa uma perda de desempenho. Em alguns casos, até 64 ciclos do processador podem consumir descompressão de dados preparatória.

Para comparação: adicionar e multiplicar números de ponto flutuante não leva mais que dez ciclos. O problema é que a memória funciona com blocos de dados de tamanho fixo e os aplicativos operam com objetos que podem conter diferentes tipos de dados e diferem em tamanho um do outro. Para resolver o problema, os engenheiros do MIT desenvolveram uma hierarquia de memória orientada a objetos que otimiza o processamento de dados.

Como a tecnologia funciona


A solução é baseada em três tecnologias: Hotpads, Zippads e o algoritmo de compressão COCO.

Hotpads é uma hierarquia controlada por software de memória de registro super-operativa (bloco de notas). Esses registros são chamados de blocos e existem três deles - de L1 a L3. Eles armazenam objetos de diferentes tamanhos, metadados e matrizes de ponteiros.

Em essência, a arquitetura é um sistema de cache, mas aprimorado para trabalhar com objetos. O nível do bloco em que o objeto está localizado depende da frequência com que é usado. Se um dos níveis "estourar", o sistema inicia um mecanismo semelhante aos "coletores de lixo" no Java ou Go. Ele analisa quais objetos são usados ​​com menos frequência que outros e os move automaticamente entre os níveis.

O Zippads funciona com base nos Hotpads - ele arquiva e desarquiva dados que chegam ou saem dos dois últimos níveis da hierarquia - o bloco L3 e a memória principal. Nos primeiro e segundo blocos, os dados são armazenados inalterados.



Zippads compacta objetos cujo volume não exceda 128 bytes. Objetos maiores são divididos em partes, que são colocadas em diferentes partes da memória. Segundo os desenvolvedores, essa abordagem aumenta o coeficiente de memória usada com eficiência.

Para compactar objetos, é usado o algoritmo COCO (Cross-Object COmpression), o qual discutiremos mais adiante, embora o sistema também possa trabalhar com Base-Delta-Immediate ou FPC . O algoritmo COCO é uma forma de compressão diferencial. Ele compara objetos com os “base” e remove os bits duplicados - veja o diagrama abaixo:



Segundo os engenheiros do MIT, sua hierarquia de memória orientada a objetos é 17% mais produtiva do que as abordagens clássicas. Sua estrutura está muito mais próxima da arquitetura de aplicativos modernos, portanto o novo método tem potencial.

Espera-se que, em primeiro lugar, a tecnologia possa começar a ser usada por empresas que trabalham com big data e algoritmos de aprendizado de máquina. Outra área potencial são as plataformas em nuvem. Os provedores de IaaS poderão trabalhar com mais eficiência com virtualização, sistemas de armazenamento de dados e recursos de computação.

Nossos recursos e fontes adicionais:

“Como construímos IaaS”: materiais 1cloud

1cloud Cloud Architecture Evolution
Serviço de armazenamento de objetos no 1cloud

Ataques potenciais ao HTTPS e maneiras de se proteger contra eles
Quais são as semelhanças e diferenças entre as abordagens de Entrega Contínua e Integração Contínua?
Como proteger um servidor na Internet: experiência 1cloud

Source: https://habr.com/ru/post/pt451356/


All Articles