una tipos registro rango para obtener necesitan memoria localidad fórmula ejercicios direcciones direccionar direccionamiento direcciona direccion cuántos como bytes memory

memory - registro - tipos de direccionamiento de memoria



¿Por qué la memoria direccionable por byte y no la memoria de 4 bytes direccionables? (3)

Los procesadores realmente acceden a la memoria en cantidades de 64 bits (x86 lo hizo desde Pentium más o menos); Los procesadores de 64 bits a menudo tienen un bus de 128 bits. Además, al acceder a la memoria principal, tiene ráfagas que llenan una línea de caché completa, que es incluso unidades de memoria más grandes.

Es solo el direccionamiento basado en bytes; esto agrega poca sobrecarga y no es excesivo en absoluto.

Hoy, absolutamente necesita un direccionamiento basado en bytes para los protocolos de red. La implementación de TCP con el direccionamiento basado en palabras sería difícil: ¿qué desea que read () devuelva si lo que recibió es 17 bytes? Del mismo modo, las capas superiores están basadas en bytes: HTTP sería bastante difícil de implementar si obtiene una línea de solicitud como "GET / HTTP / 1.0" en unidades de cuatro bytes. En esencia, tendría que dividir las palabras en bytes con operaciones de desplazamiento y tal (que ahora los procesadores hacen en hardware, gracias al direccionamiento basado en bytes).

¿Por qué las computadoras tienen memoria direccionable por byte, y no memoria direccionable de 4 bytes (o memoria direccionable de 8 bytes para 64 bits)? Sí, veo que a veces puede ser útil, parece poco elegante y excesivo. ¿Las ventajas son sustanciales, o es realmente solo por herencia?


Razones históricamente importantes: se ha convertido en el estándar que las CPU entienden. Aquí hay una buena discusión sobre esto:

En general, se debe elegir un tamaño que sea conveniente tanto para los datos como para las instrucciones de la máquina. 8 bits (256 valores) es suficiente para acomodar caracteres comunes en inglés y en otros idiomas. Los diseñadores de procesadores de 8 bits supuestamente descubrieron que poder codificar 256 instrucciones comunes como un byte era una "compensación razonable". Y en ese momento, 8 bits también era suficiente para codificar otras cosas, como un color de píxel o una coordenada de pantalla. Tener un tamaño de byte que sea una potencia de 2 también puede haber sido considerado como un diseño "más limpio". Es interesante observar que, por ejemplo, Marxer, E. (1974), Elements of Data Processing, describe un byte como de 6 bits y de 8 bits, dependiendo de si la computadora era de tipo "octal" o "hexadecimal". " tipo.

Ciertamente, se usaron otros tamaños en los primeros días.


Necesitábamos establecer un tamaño para la estandarización. La gente eligió un tamaño de 8 bits por las razones mencionadas anteriormente por Shane. desde entonces estamos atrapados con memoria direccionable de bytes. ahora es imposible cambiar debido a diversos problemas de compatibilidad y al hecho de que los OPCODES son solo de larga duración. pero usando un truco, la memoria se hace fácilmente direccionable por palabras para buscar / almacenar datos / direcciones.