¿Estoy haciendo trampa si uso un chip SRAM como archivo de registro? [cerrado]

7

Actualmente estoy construyendo mi propio procesador con lógica discreta (serie 74LSxx y eso) usando mi propia arquitectura de conjunto de instrucciones. Estoy empezando a acumular un poco de factura porque todas las fichas que necesito. Para cualquiera de ustedes que haya visto a gente construir CPUs caseras como esta, ninguno de los que he leído ha usado un chip SRAM como su archivo de registro

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

    
pregunta DylanG

7 respuestas

26

No, no se está burlando de ninguna regla. Esto se debe a que, en primer lugar, no hay reglas.

Este es tu proyecto. Tú lo definas. Puedes implementarlo de cualquier manera que te satisfaga. A nadie más le importa.

    
respondido por el Olin Lathrop
11

Como se preguntó, esto es puramente una cuestión de opinión, por lo tanto no es una pregunta válida aquí.

Sin embargo, tenga en cuenta que los procesadores convencionales requieren acceso de 3 puertos al archivo de registro: dos para obtener operandos, uno para escribir el resultado. Por lo tanto, necesitará una ruta de datos y un circuito de control mucho más complejos para captar previamente y almacenar en caché los operandos si desea usar una memoria RAM de un solo puerto. O puede construir algo con un acumulador distinto y más privilegiado, y un conjunto de instrucciones que solo permita que aparezca un único registro sin acumulador como origen o destino (en este caso, hay CPU con solo acumulador)

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

    
respondido por el Chris Stratton
5

Tu proyecto, tus reglas.

Pero como dicen, "perfecto es el enemigo de hecho ". Si el proyecto parece estar fuera de control (ya sea con respecto a la complejidad, el tiempo requerido o el dinero requerido), cortarse un poco en una esquina del diseño puede ser la diferencia entre un logro ingenioso (aunque un poco insano) , y un proyecto que nunca se terminó.

Además, incluso si decides "hacer trampa", siempre existe la opción de hacer la versión 2 más tarde, con menos accesos directos. Incluso podría intentar tener en cuenta una posible "actualización" futura en la primera versión del diseño, si desea dedicar algo de tiempo para facilitar la "actualización".

    
respondido por el ilkkachu
4

¡Sí! Incluso es engañoso si usa componentes que no ha fabricado usted solo con los materiales naturales que puede encontrar en su propio jardín.

    
respondido por el Curd
2

Las personas que hacen CPU caseras (¿has visto alguna?) tienden a usar SRAM para los registros. Nadie en su sano juicio soldaría una carga de chanclas. No te preocupes por permitírselo, las necesidades de energía y las posibilidades de que se conecte correctamente.

No necesita doble puerto si solo hace una lectura o escritura a la vez. Entonces, por ejemplo, INC un registro, haga que su CPU lo lea en un ciclo, en un búfer. Incrementa el búfer en el siguiente ciclo, luego vuelve a escribirlo en un tercero. Multiplexación de tiempo!

Se necesitará algún tipo de almacenamiento en búfer si alimenta el contenido de 2 registros en una ALU. Tal vez podría usar solo un búfer y obtener el segundo operando "en vivo" de la SRAM. Pero, por supuesto, no hay un pin de "incremento" en un chip SRAM. Descubrirás dónde debe estar el búfer.

Dicho esto, hay registros de 74 series. Originalmente, las CPU completas estaban hechas de serie 74, o al menos chips lógicos discretos, antes de que se inventara la serie 74. La búsqueda del "archivo de registro de la serie 74" dio algunas pistas. Aunque, por supuesto, solo porque se hizo una vez, no significa que la encontrará ahora.

¿Has mirado en FPGAs, o incluso CPLDs y PALs? Los PAL son demasiado pequeños para hacer una CPU, pero algunos combinados con la otra lógica podrían ahorrarle algunos chips. En un FPGA aunque podría implementar CPUs completas. Los FPGA son básicamente miles de puertas lógicas en un chip. Puedes elegir qué lógica hace cada compuerta y cómo están conectadas. Usted hace esto escribiendo código, como software. Luego dispara los resultados de un cable USB a un programador.

Los FPGA se utilizan mucho en bienes de consumo y en muchos otros campos.

    
respondido por el Sam
2

También soy consciente de un procesador que usa 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 proviene el término registro de archivos? Se registra en una SRAM.

Con una arquitectura canalizada, podría tener una SRAM de un solo puerto y no necesariamente tener un impacto de rendimiento. Una implementación SRAM de un solo puerto Tendría sentido tener muchos registros, digamos 128, 256 o 512 registros de propósito general.

Sí, está perfectamente bien implementar sus "registros" en un archivo de registro creado a partir de una SRAM, siempre que su diseño funcione.

No estoy seguro de si está intentando implementar un conjunto de instrucciones / procesador existente o crear uno propio. En cualquier caso, al hacerlo con partes discretas 74xx, el rendimiento no es necesariamente un objetivo en comparación con la cordura y el éxito. Si tienes algunas SRAM de esa generación, entonces absolutamente. Puede vincular los LED a la dirección y al bus de datos para hacer (más) luces parpadeantes que muestren signos de vida.

O puede tomar el enfoque 6502 y tener 256 registros virtuales o indirectos (página cero) que solo son memoria o tal vez un recuerdo especial. Y su registro de propósito general real (o registros de propósito general) son pocos y caben en algunas partes. Funcionó bastante bien para Tecnología MOS . (La arquitectura, no necesariamente la implementación, aunque tienen afeitada y escaneada y realizada mediante ingeniería inversa en el 6502 para que pueda ver cómo realmente lo implementaron).

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

    
respondido por el old_timer
-2

Utilizar un chip SRAM (moderno) con una CPU basada en 74LS es un poco como filmar Exodus y alguien en la película lleva puesto un reloj digital. (Los SRAMS disponibles. En ese entonces ya no están disponibles como las partes 74LSxx, así que las SRAM modernas no existían, pero entonces este es el único compromiso razonable. )

Se llama anacronismo, un objeto extraviado en el tiempo.

Mi libro favorito " El alma de una nueva máquina " describió el perverso viaje de los ingenieros y su gerente en Data General que hicieron historia con "el Águila" justo antes de los mediados finales de los 70 cuando salió el CMOS.

Era la misma época, comencé mi vida como ingeniero con experiencia en el diseño de una placa UART de 74LSxx porque Rotamola aún tenía que lanzar su MC6821. Lo diseñé en papel en una semana e hice el diseño en un tablero de 4 capas con esos conectores de borde de 44 pines en la tarjeta MC6800 y funcionó en el primer giro. Otra tarjeta se desplegó a 128 salidas y 128 entradas en la consola principal que se iluminó como una casa en Navidad con todos los botones cuadrados retroiluminados grabados.

Pero como "Exodus" , su diseño seguirá siendo un clásico, al igual que Steve en GRC y el homebrew usuarios de PDP8 .

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas