Una de las paradojas extrañas de nuestro tiempo es que los microprocesadores son más rápidos que los recuerdos. Es extraño porque los microprocesadores son circuitos complejos de mil millones de transistores, mientras que las DRAM son solo … filas y filas de celdas de memoria idénticas. Los procesadores son caros, pero las DRAM son prácticamente productos que se venden por libra.
Uno de nuestros trabajos como diseñadores de productos es diseñar soluciones para este problema, principalmente mediante el uso de cachés. Envolvemos nuestros procesadores en cachés de primer, segundo y, a veces, tercer nivel para amortiguar la latencia y la falta de coincidencia de ancho de banda entre los procesadores rápidos y las DRAM comparativamente lentas. Es un truco que ha funcionado durante décadas, y todavía funciona ahora.
Figura 1: Un caché de último nivel (también conocido como caché del sistema) reduce el número de accesos a la memoria fuera del chip, lo que reduce la latencia del sistema y el consumo de energía al tiempo que aumenta el ancho de banda alcanzable. A menudo se encuentra físicamente antes de los controladores de memoria para DRAM fuera de chip o memoria flash.
El aprendizaje automático (ML) está haciendo que este diseño sea más desafiante. La inferencia de ML requiere muchos y muchos datos, de la misma manera que las convoluciones gráficas o el procesamiento de señal digital (DSP) destruyen grandes estructuras de datos residentes en la memoria. Los nuevos diseños de SoC para ML no solo necesitan procesadores rápidos, sino que también necesitan acceso rápido a la memoria. De lo contrario, todo ese músculo de la CPU se desperdicia.
Los fabricantes de memoria han comenzado a desarrollar todo tipo de nuevas DRAM para cerrar la brecha. Tenemos memoria de alto ancho de banda (HBM) con un ancho de banda teórico de 1 Gbit / seg, e incluso HBM2 y HBM2E, que prometen alrededor de 3Gbit / seg. Y hay aún más opciones de solución como las SRAM 3D apiladas que utilizan acoplamiento inductivo inalámbrico para lograr el triple del ancho de banda HBM2E. Pero llegar a ese tipo de velocidad requiere trucos de fabricación difíciles y costosos con módulos multichip, matriz de silicio apilada verticalmente, intercaladores de silicio, vías de silicio (TSV), buses de 256 bits y 1024 bits, y / o micro-golpes de silicio.
¿Qué pasa con las memorias gráficas, como GDDR6? Son baratos y abundantes. Seguramente, ¿también pueden hacer el trabajo para las cargas de trabajo de ML? No tan rapido. Como su nombre indica, la interfaz GDDR6 está diseñada para tarjetas gráficas y ya está en su sexta generación. La buena noticia es que las tarjetas / chips gráficos son un mercado de gran volumen. La mala noticia es que es un mercado de corta duración. Aunque es tentador aprovechar el mercado de PC convencional para componentes y tecnología, esa suele ser una receta para la decepción. Cuando la corriente principal avanza, queda buscando componentes obsoletos de proveedores limitados. Un diseñador de SoC necesita componentes e interfaces que estarán disponibles durante la vida útil del diseño, sin importar la vida del producto en el campo.
Entonces, ¿cuál es la mejor solución de memoria? Para obtener pistas, podemos ver lo que otras compañías están haciendo. Los análisis de desmontaje han demostrado que Apple, por ejemplo, resuelve el problema de desajuste de velocidad al agregar otro caché. Si una gran empresa con recursos de I + D casi infinitos diseña en torno a sus cuellos de botella de SoC de esta manera, probablemente valga la pena investigarlo.
El truco es no colocar el caché cerca del procesador. Es contraintuitivo, pero funciona. La mayoría de los procesadores integrados de gama alta, como una serie A de Cortex de brazo, tendrán cachés L1 y L2 para cada núcleo de CPU. A veces, el complejo de procesadores también tiene un caché L3 que se comparte entre todos los núcleos de CPU. Todo eso funciona bien. No es necesario realizar ajustes.
Ahora, agregue un cuarto caché, un caché de último nivel, en el bus del sistema global, cerca de los periféricos y el controlador DRAM, en lugar de como parte del complejo de la CPU. El caché de último nivel actúa como un búfer entre los núcleos Arm de alta velocidad y la memoria principal grande pero relativamente lenta.
Esta configuración funciona porque el controlador DRAM nunca "ve" la nueva caché. Simplemente maneja las solicitudes de lectura / escritura de memoria de manera normal. Lo mismo ocurre con los procesadores Arm. Operan normalmente. No se requiere hardware o software adicional de coherencia de caché. Como todos los buenos cachés, este caché de último nivel es transparente para el software.
Como todas las memorias caché buenas, una memoria caché de último nivel ayuda a mejorar drásticamente el rendimiento sin recurrir a tecnologías de memoria exóticas o caras (o mal definidas). Hace que las DRAM genéricas que tiene funcionen mejor. Específicamente, mejora tanto la latencia como el ancho de banda, porque el caché está en chip y mucho más rápido que DRAM fuera de chip, y porque tiene una conexión más amplia y más rápida al clúster de CPU. Es un ganar-ganar-ganar.
¿Cuál es el inconveniente? Un caché ocupa el área del dado, por supuesto. La lógica de control de la memoria caché (gestión de etiquetas, tablas de búsqueda, etc.) es insignificante, pero la memoria RAM de la memoria caché utiliza una cantidad considerable de espacio. Por otro lado, una memoria caché de último nivel ahorra en consumo de energía, porque nada consume más energía que leer o escribir en / desde DRAM externo, especialmente cuando está martillando DRAM como lo hacen las cargas de trabajo modernas. Cada transacción que permanece en el chip ahorra una tonelada de energía y tiempo.
También hay un beneficio de seguridad. Las transacciones en caché en chip no se pueden espiar ni someter a ataques de canal lateral por sondeo de señal o manipulación de RF. Los cachés son tecnología probada y bien entendida. Eso no significa que sean simples o triviales de implementar, existe un verdadero arte para diseñar un buen caché, pero al menos sabes que no estás probando beta la interfaz de memoria innovadora patentada de algunos proveedores.
Para profundizar en la implementación de caché de último nivel, puede leer CodaCache: Ayuda para romper el muro de la memoria, un documento técnico que describe la implementación de caché de último nivel para desarrolladores de SoC. Está diseñado como IP integrada que se puede incluir en el diseño de SoC sin recurrir a tecnologías extrañas, costosas o en evolución.
Los artículos de la industria son una forma de contenido que permite a los socios de la industria compartir noticias, mensajes y tecnología útiles con los lectores de All About Circuits de una manera que el contenido editorial no es adecuado para ellos. Todos los artículos de la industria están sujetos a estrictas pautas editoriales con la intención de ofrecer a los lectores noticias útiles, conocimientos técnicos o historias. Los puntos de vista y opiniones expresados en los artículos de la industria son los del socio y no necesariamente los de All About Circuits o sus escritores.
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…