19 votos

¿Cómo puede un procesador de 8 bits soportar más de 256 bytes de RAM?

Si un 32 -bit puede manejar aproximadamente 4 GiB de RAM (es decir. \$2^{32} = 4 294 967 296\$ ) bytes, ¿por qué mi Arduino Mega 2560 tiene 8 KiB de SRAM, si siendo un 8 -le permite manejar sólo 256 bytes ( \$2^8\$ )? ¿O estoy leyendo mal la siguiente página?

http://www.atmel.com/devices/atmega2560.aspx?tab=parameters

2voto

Kamil Puntos 3745

Wikipedia lo explica bastante bien:

Las CPU de ocho bits utilizan un bus de datos de 8 bits y, por tanto, pueden acceder a 8 bits de datos en una única instrucción de máquina. El bus de direcciones suele ser doble octeto de ancho (es decir, 16 bits), por razones prácticas y económicas. consideraciones prácticas y económicas. Esto implica un espacio de direcciones directas de sólo 64 KB en en la mayoría de los procesadores de 8 bits.

1voto

user9730 Puntos 11

Los AVR de 8 bits de Atmel utilizan en realidad una dirección de datos de 16 bits. Tienen muchos otros registros de 16 bits e incluso algunos temporizadores de 16 bits. Dado que es sólo un procesador de 8 bits, por lo general utiliza dos ciclos de reloj para cargar un registro de 16 bits.

1voto

Jamie Hanrahan Puntos 150

La noción de que la "anchura de bits" de un procesador establece la cantidad máxima de RAM que el procesador puede direccionar es uno de los mitos más extendidos en informática. De hecho, la historia de la industria está plagada de CPU en las que no se cumple esta relación.

HP 21MX, HP 1000: CPU de 16 bits, memoria de hasta 16 MB

PDP-11: CPU de 16 bits, memoria de hasta 4 MB

VAX-11/780: CPU de 32 bits, memoria de hasta 512 MB

etc., etc.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X