7 votos

¿Es una trampa si utilizo un chip SRAM como archivo de registro?

Actualmente estoy construyendo mi propio procesador usando lógica discreta (serie 74LSxx y demás) usando mi propia arquitectura de conjunto de instrucciones. Estoy empezando a acumular un poco de una factura porque todos los chips que necesito. Para cualquiera de ustedes que haya visto a la gente construir CPUs caseras como esta, nadie de los que he leído ha utilizado un chip SRAM como su archivo de registro

¿Se consideraría una trampa si utilizara un chip SRAM en lugar de un TON de chips flip flop '374 para los registros? Se supone que este es un procesador hecho de chips discretos

20 votos

¿Trampas? ¿Según las reglas de quién?

4 votos

No sé si es trampa, pero va a hacer que tu diseño sea más lento si sólo puede acceder a 1 registro a la vez.

0 votos

@Marla, nunca he visto a nadie hacer su archivo de registro de SRAM así que me imaginé que no era la forma correcta de hacer este tipo de cosas El fotón, sólo un acceso a la vez de todos modos, sólo hay un bus

26voto

RelaXNow Puntos 1164

No, no se trata de hacer trampa en ninguna regla. Esto se debe a que, en primer lugar, no hay reglas.

Esto es su proyecto. Tú lo defines. Puedes implementarlo de la manera que te satisfaga. A nadie más le importa.

13 votos

Tenga en cuenta que esto significa que es una trampa si usted quiere que sea una trampa.

11voto

Andrew Walker Puntos 9038

Como se ha preguntado, es una cuestión puramente de opinión, por lo que no es una pregunta válida aquí.

Sin embargo, hay que tener en cuenta que los procesadores convencionales requieren 3 puertos de acceso al archivo de registro: dos para obtener los operandos y uno para escribir el resultado. Así que necesitarás una ruta de datos y un circuito de control sustancialmente más complejos para la precomprensión y el almacenamiento en caché de los operandos si quieres utilizar una RAM de un solo puerto. O puede construir algo con un acumulador distinto y más privilegiado, y un conjunto de instrucciones que sólo permita que un único registro no acumulador aparezca como fuente o destino (para ello, hay CPUs con sólo un acumulador)

Utilizar dos memorias escritas en paralelo y leídas individualmente podría simplificar un poco las cosas, pero ese truco funciona mejor con memorias de doble puerto. Esos son algo que se puede comprar en forma de CI, además de ser la forma común de las RAM de bloque de la FPGA.

0 votos

Hay que tener en cuenta que las matrices de registro de 3 puertos (o incluso de 2 puertos) fueron una innovación relativamente tardía. Fue algo que intentamos cuando empecé a trabajar en 1973, pero el gasto era demasiado grande para la mayoría de los diseños con más de 4 registros.

0 votos

Podrías usar dos chips SRAM en paralelo, uno para cada operando y escribir en ambos.

0 votos

@Michael - nota arriba "Usando dos memorias escritas en paralelo y leídas individualmente..." pero si son modelos de puerto único se necesitará alguna lógica de muxing para alternar las líneas de dirección entre lecturas distintas y escrituras compartidas a la dirección del registro de resultado durante los ciclos apropiados.

5voto

ilkkachu Puntos 446

Su proyecto, sus reglas.

Pero como se dice, "lo perfecto es enemigo de lo hecho ". Si el proyecto parece escapársele de las manos (ya sea en lo que respecta a la complejidad, el tiempo necesario o el dinero requerido), dar un poco de margen en una esquina del diseño puede ser la diferencia entre un logro ingenioso (aunque un poco loco), y un proyecto que nunca llegó a terminarse.

Además, aunque decidas hacer "trampa", siempre está la opción de hacer la versión 2 más adelante, con menos atajos. Incluso podrías intentar tener en cuenta una posible "actualización" futura en la primera versión del diseño, si quieres dedicar algo de tiempo a facilitar la "actualización".

5voto

krgrant Puntos 11

Sí, incluso es una trampa si utilizas algún componente que no hayas fabricado tú mismo exclusivamente con materiales naturales que puedas encontrar en tu propio jardín.

0 votos

Pero entonces estarías haciendo trampa si robas arena de los búnkeres de los campos de golf para hacer silicona. Supongo que esta respuesta trata de ayudar a la OP a cuestionar lo que realmente se considera "hacer trampa".

2 votos

Sí, y la energía para este proceso debe provenir del sol, del viento o de los árboles que hayas plantado tú mismo, todo ello desde el propio jardín. No se permite hacer trampas utilizando electricidad de la red o obteniendo combustibles fósiles de otros lugares.

0 votos

Sí, es cierto. La forma correcta de empezar es golpear una roca de cuarzo y un poco de antracita hasta que se forme silicio. Puede ocurrir en cantidades apreciables antes de que el Universo se vaya a pique.

2voto

También conozco un procesador que utiliza SRAM de puerto único para el archivo de registro de propósito general, un procesador muy rápido/eficiente de hecho.

¿De dónde crees que viene el término archivo de registro? De los registros de una SRAM.

Con una arquitectura de canalización puedes tener una SRAM de un solo puerto y no necesariamente tener un golpe de rendimiento. Una implementación de SRAM de un solo puerto tendría sentido para tener muchos registros, digamos 128, 256 o 512 registros de propósito general.

Sí, está perfectamente bien implementar tus "registros" en un archivo de registro construido a partir de una SRAM, siempre y cuando tu diseño funcione.

No estoy seguro de si estás tratando de implementar un procesador/conjunto de instrucciones existente o de hacer el tuyo propio. En cualquier caso, haciéndolo con piezas discretas 74xx, el rendimiento no es necesariamente un objetivo comparado con la cordura y el éxito. Si tienes algunas SRAMs de esa generación entonces absolutamente. Puedes atar LEDs al bus de direcciones y datos para hacer (más) luces parpadeantes que muestren señales de vida.

O puede tomar el 6502 y tienen 256 registros virtuales o indirectos (página cero) que son sólo memoria o quizás memoria especial. Y su verdadero registro de propósito general (o registros de propósito general) son pocos y caben en unas pocas partes. Funcionó bastante bien para Tecnología MOS . (La arquitectura, no necesariamente la implementación, aunque tienen afeitó y escaneó y aplicó ingeniería inversa al 6502 para que puedas ver cómo lo implementaron realmente).

Probablemente también quieras "hacer trampa" y usar una ROM para la tabla de búsqueda que implementa tu microcódigo... Aunque eso tampoco es hacer trampa; es una solución conocida.

0 votos

"Con una arquitectura de pipelines se podría tener un sram de un solo puerto y no necesariamente tener un golpe de rendimiento" - no realmente. Este cuello de botella significa que se produce un bloqueo de la tubería en cualquier serie de operaciones de registro, incluso independientes. Si no se puede para una secuencia de instrucciones sin dependencias estar tanto leyendo dos operandos como escribiendo de vuelta un resultado cada reloj entonces ha sufrido una pérdida de rendimiento en comparación con una máquina que puede.

0 votos

depende del diseño. Estoy de acuerdo con usted en general, pero estoy bien versado en un diseño que no tiene este problema.

0 votos

para ser justos ¿consideras la lectura y la escritura en el mismo ciclo como single ported o dual? No me imagino que el OP esté preocupado por esto, más por la cordura y el éxito que por el alto rendimiento. y un archivo de registro (sin importar el número de puertos) ayudaría en eso.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X