No una instrucción de un ciclo tomar un ciclo, incluso si la memoria RAM es lenta?

StackOverflow https://stackoverflow.com/questions/1546756

  •  20-09-2019
  •  | 
  •  

Pregunta

Estoy utilizando un procesador RISC incorporado. Hay una cosa básica que tengo un problema de averiguar.

El manual CPU establece claramente que el ld r1, [p1] instrucción (en C: r1 = * p1) realiza un ciclo. Tamaño de registro r1 es de 32 bits. Sin embargo, el bus de memoria es sólo de 16 bits de ancho. Entonces, ¿cómo puede obtener todos los datos en un ciclo?

¿Fue útil?

Solución

veces el reloj están asumiendo memoria llena anchura cero estado de espera. El tiempo que tarda el núcleo para ejecutar esa instrucción es un ciclo de reloj.

Hubo un tiempo en que cada instrucción tomó un número diferente de ciclos de reloj. La memoria era relativamente rápido, entonces también, por lo general estado de espera cero. Hubo un tiempo antes de tuberías, así el que tuvo que quemar un ir a buscar ciclo de reloj, a continuación, una decodificación ciclo de reloj, y luego un ciclo de reloj de ejecución, además de ciclos de reloj adicionales para instrucciones de longitud variable y ciclos de reloj adicionales si la instrucción tenía una operación de memoria.

Hoy velocidades de reloj son altos, chip de bienes raíces es relativamente barato por lo que un ciclo de reloj suma o multiplica es la norma, al igual que las tuberías y cachés. Velocidad de reloj ya no es el factor determinante para el rendimiento. La memoria es relativamente caro y lento. Así cachés (configuración, el número de y tamaño), tamaño del bus, velocidad de la memoria, la velocidad periférica determinar el rendimiento global de un sistema. Normalmente el aumento de la velocidad de reloj del procesador, pero no la memoria o periféricos mostrarán mínimo, o nulo aumento en el rendimiento, en algunas ocasiones puede hacer que sea más lenta.

Tamaño de memoria y estados de espera no son parte de la especificación de ejecución reloj en el manual de referencia, que están hablando sólo lo que el propio núcleo que cuesta en unidades de relojes para cada una de las instrucciones. Si se trata de una arquitectura Harvard, donde la instrucción y el bus de datos son independientes, entonces uno de reloj es posible con el ciclo de memoria. La zona de alcance de la instrucción sucede al menos el ciclo de reloj antes si no antes de que, por lo que al inicio del ciclo de reloj la instrucción está listo, decodificar y ejecutar (el ciclo de memoria de lectura) se producen durante el reloj en el extremo de la un ciclo de reloj el resultado de la lectura se retiene en el registro. Si la instrucción y el bus de datos se comparten, entonces se podría argumentar que todavía termina en un ciclo de reloj, pero no llegar a buscar a la siguiente instrucción así que hay un poco de un puesto allí, que podrían engañar y llamar a que un reloj ciclo.

Otros consejos

Mi opinión es: cuando se dice algo de instrucción tomar un ciclo, no es que la instrucción será terminado en un ciclo. Debemos tener en cuenta de instrucción tubería de línea . Supongamos que su CPU tiene 5 oleoducto etapa, que la instrucción haría tarda 5 ciclos si se exectued secuencialmente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top