Como gran aficionado del 6502, pensé en asumir esto. Si está comparando reloj por reloj, entonces no hay casi nada. No hay instrucciones que tomen menos de 4 ciclos de reloj (estados T). Mientras que el 6502 tiene una serie de instrucciones que toman dos ciclos de reloj. Las cosas que son funcionalmente equivalentes a menudo toman de dos a cuatro veces más ciclos. Esto es:
Copiar un registro
TAY # 6502 – 1 byte, 2 ciclos de reloj
LD H, E # Z80 – 1 byte, 4 estados T
- Cómo recuperar los datos de mi disco duro después de que mi computadora se descompuso
- ¿De qué se trata el tiempo de actividad, el espacio en disco y el ancho de banda? Cómo elegir el alojamiento web adecuado.
- ¿Cuáles son algunas excelentes computadoras portátiles por menos de 400 $?
- ¿Qué hago si el disco duro de mi computadora portátil hace ruido?
- ¿Qué son las tarjetas gráficas en las computadoras?
Cargando un valor en un registro
LDA # 06 # 6502 – 2 bytes, 2 ciclos de reloj
LD A, 06 # Z80 – 2 bytes, 7 estados T
Algunas cosas que están cerca, como regresar de una subrutina.
RTS – 6502 – 1 byte 6 ciclos de reloj
RET – Z80 – 1 byte 10 ciclos de reloj
… y moviendo un bloque de memoria.
# 6502
LDX # $ 30 2 ciclos de reloj
] LOOP LDA $ 2000, X 4 ciclos de reloj (5 si cruza una página)
STA $ 4000, X 5 ciclos de reloj
DEX 2 ciclos de reloj
BNE] LOOP 2 ciclos de reloj
Lo que demora entre 13 y 14 ciclos por byte o aproximadamente 74 KB / s en una máquina de 1Mhz. Comparado con la instrucción Z80 LDIR que toma alrededor de 21 ciclos por byte, aproximadamente 48 KB / s en una máquina hipotética de 1Mhz.
Al menos una cosa en el Z80 es claramente más rápido. La instrucción EXX intercambia los valores de los seis registros principales de 8 bits con otros seis registros alternativos y lo hace en cuatro ciclos. Simplemente no hay una disposición de instrucciones 6502 que pueda crear este mismo tipo de efecto incluso en sus tres registros de 8 bits.
No estoy seguro si algo de eso cuenta como significativo en sí mismo. Sin embargo, vale la pena señalar que este largo ciclo de instrucción crea una clara ventaja. Como hace que la escala entre la velocidad del reloj y la velocidad de la memoria sea mucho más suave.
Usted ve el 6502, debido a su apretado ciclo de instrucciones. Prácticamente requiere un ciclo de memoria por medio reloj. Lo que significa que para una máquina de 1Mhz necesita una memoria que funcione a 500 ns y si su máquina comparte RAM de video con la CPU como la Apple II (o la BBC micro) este requisito se duplica . Lo que significa que Apple IIs necesitaba al menos 250 ns de memoria (IIRC se envió con 200 ns).
Eso significa que para obtener un 6502 con un reloj más alto, necesita una DRAM aún mayor. El micro de la BBC que funcionó a 2Mhz usó 120ns DRAM y la historia dice que el prototipo producido en la década de 1980 usó los únicos cuatro chips en el país que cumplían con esa especificación. Probablemente no había nada como eso disponible en 1977 cuando se lanzó el Apple II. Probablemente por eso MOS solo produjo 1Mhz y 2Mhz 6502 para empezar.
Ahora, el Z80, en contraste, funcionó a 2.5mhz desde el primer momento. El tiempo de memoria fue más complicado: una búsqueda de instrucciones tomó dos ciclos de reloj pero el acceso a datos tomó 1.5. Entonces, una máquina de 4Mhz en el peor de los casos necesitaba una DRAM de 400ns. Comparta esa memoria con video y es posible que solo necesite aproximadamente 187ns DRAM. Una idea confirmada por el hecho de que el ZM Spectrum de 3.5Mhz se envió con 200ns DRAM.
De modo que el espectro de 3.5Mhz podría, en teoría, mover bytes a 166KB / s usando la misma DRAM que una Apple de 1 Mhz, aproximadamente 2.3 veces más rápido. Todo porque la DRAM necesita escalar a 2–4 veces la velocidad del reloj del 6502 y solo 1.5–3 veces la velocidad del reloj del Z80.