Todo es una jerarquía de proximidad y enredo con la CPU frente al tamaño y la velocidad de la memoria. A medida que los recuerdos se hacen más grandes, se vuelven más lentos.
La memoria más rápida no siempre se considera memoria
Los recuerdos más rápidos posibles son los registros de su CPU. Solo hay un número muy pequeño de registros, pero se ejecutan, en realidad, más rápido que el reloj de su CPU. Esto se debe a que tienen múltiples puertos, por lo que diferentes etapas de una tubería de CPU pueden acceder a ellos al mismo tiempo. Los registros son una parte inherente del funcionamiento interno de la CPU. En una arquitectura moderna de “carga / almacenamiento”, la CPU solo puede realizar operaciones directamente, como operaciones matemáticas y lógicas, en un registro. La razón de esto es simple: cualquier otro acceso a la memoria ralentizará la CPU.
- Mi computadora portátil no inicia algunos juegos, ya que tengo gráficos Radeon de 2 GB y procesador i5 de tercera generación y 4 GB de RAM. ¿Qué debo hacer para jugar esos juegos?
- ¿Es posible construir una buena PC para juegos Skylake (i5 6600k) con 8 GB de RAM DDR4 y una GPU decente para alrededor de Rs? 70000 o con un máximo de 80k?
- ¿Qué ranura de RAM se está utilizando cuando ejecuto un programa en Windows?
- ¿Qué es mejor para los juegos hp pavilion 15 AB 522TX T0Z73PAi5 6th ge 4gb nvidia 940m o lenovo 500-15ISK notebook 80NT006IN I5 6th gen 4gb amd meso xt?
- ¿Agregar más RAM hace que tu computadora sea más rápida?
Su CPU prácticamente solo sabe sobre registros y memoria principal. Pero la memoria principal es demasiado lenta, incluso la memoria DDR4 rápida y loca que tenemos hoy. Sin mencionar el hecho de que colocamos cuatro, seis, ocho, incluso más núcleos de CPU en un solo chip, todos accediendo a la misma memoria y E / S.
El caché de nivel 1 está perfectamente integrado
Entonces, para hacer que la memoria externa parezca más rápida, agregamos caché. Cada arquitectura de CPU moderna tiene un caché de nivel 1 estrechamente integrado con el diseño de la CPU. Estos generalmente son cachés de instrucciones y datos divididos, y estos, como los registros, pueden tener múltiples puertos. Siempre están muy estrechamente integrados, construidos básicamente dentro de cada núcleo de CPU. Por lo tanto, la CPU puede alcanzar el nivel 1 de caché muy rápido, pero aún no tan rápido como un registro. Cada núcleo de CPU normalmente tiene su propio caché de nivel 1. Esta es una memoria costosa, medida en transistores, y la velocidad depende de la proximidad a la CPU. La velocidad de la luz es un factor real en los diseños de memoria en estos días. Por lo tanto, el tamaño del caché L1 es limitado … un i7 típico tiene 32K de datos y 32K de caché de instrucciones.
Una nota al margen interesante … algunas arquitecturas de conjuntos de instrucciones de CPU (ISA) más antiguas como la x86 y x86–64 reciben un tratamiento extraño en una CPU moderna como la Intel Core i7 y regresan a un chip creado por una startup llamada NexGen de vuelta en los años 90. Las instrucciones x86 no son RISC. La Computadora de conjunto de instrucciones reducidas (RISC) es una especie de truco publicitario de los años 90, pero también es esencialmente una bolsa de trucos que los diseñadores de CPU han acumulado para hacer las instrucciones más simples y, por lo tanto, más fáciles de ejecutar en un solo ciclo. Los chips más antiguos usaban microcódigo, básicamente una pequeña subrutina en un lenguaje de máquina que solo se veía dentro del chip, para crear estas instrucciones. Los chips modernos desean ejecutar todas las instrucciones en un solo ciclo que no sean las instrucciones de carga / almacenamiento (por ejemplo, memoria principal).
En los modernos chips x86, las instrucciones complejas se traducen en múltiples instrucciones de tipo RISC. Estas llamadas microoperaciones pueden ser diferentes para cada generación de procesadores, por lo que no se hacen públicas. En algunas arquitecturas, ya sea la caché de instrucciones L1 o una caché de microoperación especializada, almacenará en caché las microoperaciones en lugar de las instrucciones estándar.
Los siguientes niveles de caché
El caché de nivel 2 está más alejado del núcleo de la CPU, pero puede funcionar directamente con la unidad de carga / almacenamiento de la CPU y el caché L1. Será absolutamente más lento que el caché L1.
En estos días, probablemente todavía tenga un caché L2 asociativo de 4 u 8 vías. Esa es una complejidad adicional basada en la forma en que funcionan los cachés, para ofrecer más eficiencia, lo cual es más fácil de hacer en un caché más pequeño que uno muy grande. Las memorias caché L2 en algunos chips antiguos eran de 2 MB, a veces de 4 MB, pero la memoria caché L2 en un Intel i7 es de solo 256K. ¿Por qué? Porque eso permite que sea mucho más rápido … está más cerca de la CPU y un caché más pequeño funciona más rápido, todo lo demás es igual.
Por supuesto, la memoria caché L2 pudo reducirse debido a la memoria caché de nivel 3 que se encuentra en muchas CPU modernas en estos días. El caché de nivel 3 en ese Intel i7 es de 8 MB, en otros es de 12 MB o 20 MB. Esa es la otra clave aquí … cada núcleo de CPU en un i7 tiene su propio caché L1 y L2. AMD tiene algunas arquitecturas en las que los pares de núcleos comparten la memoria caché FPU y L2. Pero el caché L3 simple, asociativo de conjunto único es más lento, más alejado de cada núcleo de CPU, compartido por todos, y se puede escalar en función de la velocidad y el número de núcleos de CPU en un chip.
El caché L1 que funciona de la manera en que lo hace hoy en día el caché L1 debe estar en el chip, debido a su enredado con la CPU. En la década de 1980, los sistemas tenían caché L2 en el bus del procesador principal, funcionando a velocidades del bus del procesador principal. Todavía más rápido que DRAM, pero también complica el acceso a DRAM. En algún momento, las compañías de CPU construyeron buses especiales “backside” para caché L2, ofreciendo buses más rápidos y anchos que el bus principal de propósito general.
Hoy, por supuesto, los procesadores realmente no tienen un bus principal. Tienen controladores de memoria en chip que controlan directamente la DRAM DDR3 o DDR4 y tienen varios enlaces de alta velocidad (PCIe, QuickPath, Hypertransport, etc.) que van punto a punto entre dispositivos. Esta arquitectura permitió una memoria mucho más rápida, pero también significa que cada caché debe estar en el chip.
Pero, por favor, ¿no podemos tener caché?
Bueno, piensalo. Si solo tienes registros, no es muy divertido. Si solo necesitara 64K de memoria, estaría bien con ese caché L1 del i7. Pero en realidad no puedes usar el caché de esa manera. entonces simplemente usarías esa memoria muy rápida como RAM estática, y eso sería todo. O tal vez 256K es suficiente … si es así, el chip podría usar toda la memoria caché de L2 reconfigurada como RAM estática. Pero va a ralentizar la CPU a menos que mantenga la caché L1.
En los sistemas informáticos integrados, los diseños más simples harán exactamente esto: incluirán una CPU con una pequeña cantidad de RAM estática, en lugar de caché. Esa RAM estará profundamente en el chip, estrechamente acoplada a los núcleos de la CPU, posiblemente con múltiples puertos, etc. Pero, por supuesto, cuando haces una CPU de $ 5 o una CPU de $ 50 en lugar de una CPU de $ 500, tienes que hacer algo compensaciones de todos modos. De modo que el chip de $ 5 solo puede funcionar a 50MHz, el chip de $ 50 tal vez solo a 1GHz, por lo que no son tan agresivos en velocidad de todos modos. Aunque el chip ARM de cuatro núcleos de menos de $ 50 que utilizo en algunos de mis diseños tiene sus propios cachés L1 y L2 y 512 MB de memoria DDR3 de 64 bits de ancho de lo que pensé en el sistema. Esto es para el procesamiento en red, una carga más ligera que su PC típica, un trabajo más pesado que su horno tostador.