Uso de multiplexores frente a tripes en una memoria RAM

7

¿Por qué se prefieren las tripas sobre los multiplexores para seleccionar la salida de la RAM? La explicación que he escuchado es que la memoria RAM es demasiado grande para usar un multiplexor, pero necesito más detalles.

Una teoría que hemos encontrado es que usar un multiplexor requeriría un árbol de puertas OR para seleccionar la salida que aumentaría dramáticamente el tiempo de propagación de la señal al bus mientras que con tripas, sin importar el tamaño de la memoria RAM, el retraso de propagación sería constante.

¿Eso es correcto?

Gracias

    
pregunta Sid

3 respuestas

6

Es un problema de "fan-out" o "fan-in". Entonces tu teoría es más o menos precisa. Sin embargo, existe la ventaja adicional de utilizar salidas triples que puede conectarlas a un bus. Si usa un multiplexor CMOS, no puede compartir los cables en los que está activada la salida, si usa dispositivos Tri-State, entonces puede compartir el bus con otros dispositivos con bus (bajo el control de un árbitro, por ejemplo) ... en el contexto de RAM, piense en "bus de memoria".

    
respondido por el vicatcu
3

Si uno construye una matriz de memoria rectangular que se lee con un controlador de tres estados en cada celda de memoria, entonces un circuito decodificador puede controlar todas las celdas en una fila. Uno necesitará circuitos alrededor del perímetro de la matriz para controlarlo, pero la cantidad de circuitos de control será proporcional a sqrt (N) * lg (N). Por el contrario, si uno intentara colocar todas las celdas de memoria en un multiplexor, uno terminaría necesitando muchos más circuitos.

El enfoque basado en multiplexor tiene algunas ventajas. Si uno construyera una memoria de una sola palabra usando multiplexores de dos vías, cada bit tendría que pasar a través de 20 multiplexores, pero uno podría lograr un sistema de memoria segmentado de ancho de banda muy alto si cada multiplexor incluyera un pestillo. Se necesitarían 20 ciclos para realizar cualquier operación de lectura en particular, pero en 100 ciclos se podrían comenzar 100 lecturas diferentes. Como la señal no tendría que ir muy lejos en cada ciclo y no conduciría ningún autobús grande, la tasa de ciclo podría ser extremadamente alta.

La cuestión de si usar multiplexores o buses termina siendo algo similar a la cuestión de si usar repetidores de datos cuando se envía información a largas distancias. Por un lado, los repetidores de datos añaden retardo. Por otro lado, el tiempo requerido para que una transición de señal en un extremo de un tramo de cobre produzca una transición en el otro extremo es asintóticamente proporcional al cuadrado de la longitud (ya que agregar longitud agrega resistencia y capacitancia). Agregar un repetidor en el medio de un cable largo puede terminar mejorando la velocidad, ya que el largo plazo será reemplazado por dos más cortos con un lugar entre un cuarto y la mitad del retraso mayor.

Si uno duplicara el ancho y la longitud de una matriz de memoria sin mejorar el 'oomph' de los circuitos de controlador de fila y columna, uno más que duplicaría el tiempo requerido para cambiar las filas y columnas. Por el contrario, si uno utilizara cuatro matrices de memoria más pequeñas y multiplexara las salidas, solo agregaría una constante al tiempo de acceso. Las memorias más rápidas se subdividen en matrices más pequeñas conectadas por multiplexores; los recuerdos más baratos utilizan menos multiplexores pero no son tan rápidos.

    
respondido por el supercat
0

Al realizar una triple declaración en un bus, su sistema se escala mejor. Solo puede agregar más dispositivos tristes, sin tener que reconfigurar los dispositivos antiguos y los nuevos para cooperar a través de un multiplexor nuevo y más grande.

    
respondido por el JustJeff

Lea otras preguntas en las etiquetas