implementación de un solo ciclo con una sola memoria

1

He leído que la implementación de una CPU de un solo ciclo requiere dos memorias, una para los datos y otra para las instrucciones. ¿Por qué es esto?

Usar una sola memoria con dos puertos de lectura (ver la figura a continuación) ¿no sería posible obtener la instrucción y leer el operando especificado durante el mismo ciclo?

EDITAR:

@supercat

¿Funcionaríaalgocomoesto?

    
pregunta jerry

3 respuestas

2

Realmente no está claro lo que está preguntando, pero no puede obtener un código de operación y su operando en el mismo ciclo independientemente de la arquitectura de la memoria porque no sabe qué operando hay que buscar hasta después de que se decodifique la instrucción. Hacerlos juntos rompe causa y efecto básico.

Hace poco hubo una pregunta similar a esta. Consulte diseño de ciclo único con memoria compartida para datos e instrucciones

    
respondido por el Olin Lathrop
2

De hecho, sería posible diseñar un procesador para obtener simultáneamente el código y los datos de una memoria de doble puerto; de hecho, algunos DSP de Texas Instruments (y probablemente algunos de otros proveedores) contienen alguna RAM de doble puerto que podría usarse de esa manera. Sin embargo, esto generalmente no se hace porque la RAM de doble puerto cuesta aproximadamente el doble por byte que la RAM de un solo puerto, y en general sería más útil, por ejemplo. tener un bloque de memoria de 16K para los datos y un bloque de 16K "principalmente" para el código (probablemente con un medio de lectura y escritura de datos, pero no necesariamente de manera rápida) que tener un bloque de 16K que podría usarse libremente tanto para el código como para los datos con sin penalización de tiempo.

    
respondido por el supercat
1

No, eso no funcionará, porque si desea tener acceso doble a la memoria, tendrá que intercalar ambos accesos, es decir, durante un ciclo, se atenderá la primera solicitud y, a continuación, el otro ciclo. Esto violaría el requisito de un solo ciclo.

    
respondido por el stevenvh

Lea otras preguntas en las etiquetas