Tiempo de cálculo de dirección efectiva en 8086/8088

5

Comencé a diseñar una implementación de un 8088 desde cero con el objetivo de ser exacto. Puedo entender el razonamiento detrás de la cantidad de ciclos de reloj para la mayoría de las instrucciones, sin embargo, debo decir que estoy bastante confundido por el tiempo de cálculo de la Dirección Efectiva (EA).

Más específicamente, ¿por qué computar BP + DI o BX + SI toma 7 ciclos, pero computar BP + SI o BX + DI toma 8 ciclos? Tenga en cuenta que este es el número de ciclos para todo el cálculo de EA, que incluye un cambio más agregar con un registro de segmento (presumiblemente esto toma un par de ciclos para mantener los retrasos combinacionales lo más bajos posible).

Podría simplemente esperar un número determinado de ciclos en mi diseño, pero estoy realmente interesado en saber por qué existe esta diferencia de 1 ciclo (y en general por qué se necesitan tantos ciclos cualquier cálculo de EA, cuando un ADD entre registros es de solo 3 ciclos).

    
pregunta Matthieu Wipliez

2 respuestas

2

Graciosa respuesta de Stephen Morse (diseñador del 8086) ...

  

Chico, realmente estás haciendo una pregunta desde mi profundo pasado. los   La respuesta, obviamente, tiene que ver con la forma en que se dirigían los modos de direccionamiento.   micro-codificado, y la persona que escribió el microcódigo (Jim McKevitt) es   ya no vivo. Así que no sé cómo se puede obtener una autoridad   respuesta.

Es posible que una respuesta definitiva tenga que esperar a que alguien realice una ingeniería inversa del silicio ...

    
respondido por el bigjosh
0

Yo diría que esto tiene algo que ver con el bus interno. BP + DI o BX + SI no requiere que una parte de los datos se cruce de un bus interno a otro, pero al revés así lo requiere. Esto es cuando el procesador tiene que pasar un ciclo más para permitir que el bus se estabilice.

    
respondido por el Maxthon Chan

Lea otras preguntas en las etiquetas