Un equipo de ingenieros del MIT ha desarrollado una jerarquía de memoria orientada a objetos para un trabajo más eficiente con datos. El artículo trata sobre cómo está organizado.
/ PxHere / PDComo sabe, el aumento del rendimiento de las CPU modernas no se acompaña de una reducción correspondiente en la latencia al acceder a la memoria. La diferencia en el cambio en los indicadores de un año a otro puede llegar hasta 10 veces (
PDF, p .
3 ). Como resultado, surge un cuello de botella que impide el uso completo de los recursos disponibles y ralentiza el procesamiento de datos.
El llamado retraso de descompresión provoca una pérdida de rendimiento. En algunos casos, hasta 64 ciclos de procesador pueden tomar la descompresión preparatoria de datos.
A modo de comparación: sumar y multiplicar números de punto flotante no
requiere más de diez ciclos. El problema es que la memoria funciona con bloques de datos de un tamaño fijo, y las aplicaciones funcionan con objetos que pueden contener diferentes tipos de datos y difieren en tamaño entre sí. Para resolver el problema, los ingenieros del MIT desarrollaron una jerarquía de memoria orientada a objetos que optimiza el procesamiento de datos.
Como funciona la tecnología
La solución se basa en tres tecnologías: Hotpads, Zippads y el algoritmo de compresión COCO.
Hotpads es una jerarquía controlada por software de memoria de registro super-operativa (
scratchpad ). Estos registros se llaman pads y hay tres de ellos, de L1 a L3. Almacenan objetos de diferentes tamaños, metadatos y conjuntos de punteros.
En esencia, la arquitectura es un sistema de caché, pero afilado para trabajar con objetos. El nivel de la plataforma en la que se encuentra el objeto depende de la frecuencia con la que se usa. Si uno de los niveles "se desborda", el sistema inicia un mecanismo similar a los "recolectores de basura" en Java o Go. Analiza qué objetos se usan con menos frecuencia que otros y los mueve automáticamente entre niveles.
Zippads funciona sobre la base de Hotpads: archiva y desarchiva los datos que llegan o salen de los dos últimos niveles de la jerarquía: el pad L3 y la memoria principal. En el primer y segundo pads, los datos se almacenan sin cambios.

Zippads comprime objetos cuyo volumen no supera los 128 bytes. Los objetos más grandes se dividen en partes, que luego se colocan en diferentes partes de la memoria. Según los desarrolladores, este enfoque aumenta el coeficiente de memoria utilizada de manera eficiente.
Para comprimir objetos, se usa el algoritmo COCO (Cross-Object COmpression), que discutiremos más adelante, aunque el sistema también puede funcionar con
Base-Delta-Immediate o
FPC . El algoritmo COCO es una forma de compresión diferencial. Compara los objetos con los "base" y elimina los bits duplicados; consulte el diagrama a continuación:
Según los ingenieros del MIT, su jerarquía de memoria orientada a objetos es un 17% más productiva que los enfoques clásicos. Está mucho más cerca en su estructura de la arquitectura de las aplicaciones modernas, por lo que el nuevo método tiene potencial.
Se espera que, en primer lugar, la tecnología pueda comenzar a ser utilizada por compañías que trabajan con algoritmos de big data y aprendizaje automático. Otra área potencial son las plataformas en la nube. Los proveedores de IaaS podrán trabajar de manera más eficiente con la virtualización, los sistemas de almacenamiento de datos y los recursos informáticos.
Nuestros recursos y fuentes adicionales:
“Cómo construimos IaaS”: materiales de 1cloud
1cloud Cloud Architecture Evolution
Servicio de almacenamiento de objetos en 1cloud
Posibles ataques a HTTPS y formas de protección contra ellos.
¿Cuáles son las similitudes y diferencias entre los enfoques de entrega continua e integración continua?
Cómo proteger un servidor en Internet: experiencia 1cloud