¿El archivo de registro está hecho de SRAM?

Estudio ingeniería informática y leí el libro de Hennessy sobre Organización informática donde se describe cómo el microprocesador canaliza y que el microprocesador tiene caché en el chip, tanto como 8 MB de caché en el chip en un microprocesador moderno como el Opteron de AMD. ¿Ese caché en chip está hecho de SRAM o cuáles son las características físicas de un archivo de registro moderno y sus 2 cachés, instrucciones y memoria? ¿Es el mismo material en los cachés L1, L2 y L3?

Respuestas (2)

Lo implementarán de tal manera que utilice la cantidad mínima de transistores posible y, al mismo tiempo, cumpla con los objetivos de rendimiento. Para los microprocesadores, esto generalmente significa que sí, será una forma de SRAM/latches. Estoy siendo ambiguo porque hay muchas formas diferentes de implementar pestillos. La única razón por la que no llamaría a SRAM y a los pestillos de la misma manera es que están optimizados para un rendimiento diferente y eso afecta sutilmente el diseño del transistor. Pero podría diseñar y diseñar todo el diseño solo usando pestillos para todo.

Además, la mayoría de los flujos lógicos y el diseño de los microprocesadores utilizan esquemas de doble reloj basados ​​en latch por motivos de rendimiento y temporización. Así que los pestillos son abundantes en la biblioteca de células.

Hay procesos disponibles que integran DRAM con lógica estándar, pero estos tienden a no usarse en microprocesadores debido a problemas de costo y rendimiento (debido a la complejidad de los pasos de proceso adicionales)

es el mismo material? - sí, todo esto está en el mismo sustrato de Si, la pregunta debería ser si es la misma biblioteca de células. Sí.

Una cosa sobre la que me he preguntado: en los procesadores que permiten que el contenido de dos buses de datos se escriba en registros diferentes (por ejemplo, 32 bits) simultáneamente, ¿es mejor tener un grupo de 32 celdas de memoria para cada registro y tener eso grupo de celdas de memoria sea capaz de obtener datos de cualquiera de los buses, o es mejor tener dos grupos de 32 celdas de memoria para cada registro, uno de los cuales se encuentra en cada bus, y luego tener un bit adicional que diga qué grupo se escribió en último lugar ? Creo que el último enfoque podría permitir una operación más rápida...
...ya que el valor que se registrará en cada registro aparecerá en las entradas de ese registro tan pronto como esté en el bus, sin tener que pasar primero por un retraso mux. No estoy al tanto de que tales diseños se usen en la práctica, pero en el lado del software, estos enfoques pueden ser bastante comunes.
Los núcleos blandos de @supercat implementados en FPGA con RAM de bloque de un solo puerto pueden proporcionar dos puertos de lectura al replicar el archivo de registro (la escritura se realiza en una fase separada y se aplica a ambas copias). Se utiliza una técnica similar en algunos procesadores superescalares, por ejemplo, Alpha 21264, para reducir el número de puertos (y registrar el tamaño del archivo y la complejidad del enrutamiento); dos archivos de registro con cuatro puertos de lectura y cuatro puertos de escritura son más pequeños que un archivo de registro con ocho puertos de lectura y cuatro puertos de escritura, p.
@PaulA.Clayton: Agregar puertos de lectura mediante la duplicación de contenido es bastante fácil. Además, incluso cuando se usan celdas SRAM estándar, duplicar la capacidad de lectura solo requiere tener dos cables seleccionados por fila; cada celda debe tener uno de sus transistores seleccionados controlados por cada cable. Un cable seleccionado solo podría escribir ceros y uno solo podría escribir unos, por lo que, para la mayoría de los propósitos prácticos, solo se podría realizar una escritura a la vez, y tendría que estar separada de cualquier lectura. Lo que me intrigaba era cómo los diseñadores de memoria agregan puertos de escritura.
Depende del tamaño de los búferes, la cantidad de celdas conectadas al bus y la complejidad de señalización del bus. el mayor esfuerzo últimamente en los SOC ha sido en la señalización de buses, como el AMBA de ARM. Sin embargo, su pregunta es más localizada. Muxing local no incurre en una gran demora como en el nivel del transistor que sería una puerta de transmisión. estas estructuras serán hechas a mano y combinadas muy estrechamente. Sin embargo, sería difícil hablar de generalidades debido a las diferencias de proceso. Por ejemplo, dos S/D de un TG tienen mucha menos carga que 1 carga de compuerta de una entrada lógica (2 Tr)

Una memoria SRAM que tiene muchos kilobytes o megabytes de tamaño generalmente se construirá de tal manera que minimice el área de superficie por bit. Un diseño típico tendrá celdas de memoria dispuestas en una cuadrícula. Cada celda de memoria tendrá cuatro transistores para contener cada bit y dos transistores de "habilitación de acceso" para conectar cada bit a los buses normales e invertidos que se utilizan para escribir y leer. Por lo general, todos los transistores de "habilitación de acceso" en una fila se conectarán juntos, y todas las celdas de memoria en una columna se vincularán a los mismos dos buses. El efecto neto es que, en un momento dado, solo se pueden leer o escribir celdas de memoria en una sola fila seleccionada.

Los archivos de registro son generalmente pequeños en comparación. El archivo de registro ARM probablemente tenga alrededor de 200 bits (128 para el archivo de registro principal, pero también algunas partes de varios registros sombra). Reducir el espacio físico de cada bit de memoria es mucho menos importante que maximizar su velocidad. Como mínimo, debería ser posible leer dos registros seleccionados arbitrariamente mientras se escribe un tercero. También debería ser posible leer simultáneamente el valor de un registro y escribir un nuevo valor en ese registro, con la garantía de que la operación de escritura no afectará el valor visto por la lectura simultánea. Una SRAM de diseño convencional no podrá hacer esas cosas. En cambio, los archivos de registro a menudo se construyen utilizando flip-flops discretos o pestillos con lógica de multiplexación o habilitación cableada.

+1 por mencionar los múltiples puertos de lectura y el puerto de escritura separado del archivo de registro .