El número hexadecimal es una conveniencia basada en el hardware del procesador y la memoria. Un número hexadecimal de 4 dígitos como FA3B representa 16 dígitos en binario (1111 1010 0011 1011), que son las 16 líneas de dirección de la memoria del sistema. Existe una relación física de 1 a 1 entre los números binarios y los "cables" de hardware. Están 1 o 0 , que está activado o desactivado . Hay un poco más de 65,000 combinaciones posibles de esos 16 dígitos (2 a la 16ª potencia que todos llaman 64K).
La decodificación de esto para obtener un solo conjunto de bits de memoria se realiza en paralelo. En su idea de distancia (o alguna norma que mide qué tan difícil es alcanzar una ubicación de memoria) de la ALU, todas son la misma distancia y toman la misma cantidad de tiempo para encontrarlas. Las líneas de dirección van a circuitos de decodificación y las salidas son todas de 0, excepto la combinación que coincide con los bits de dirección. Divida esto en una matriz de 256 filas y 256 columnas para cada bit de datos. Si está obteniendo un byte, como en un AVR, hay 8 conjuntos. Esto encaja en el plano de una rebanada de silicona. Los decodificadores hacen cosas simples. Pueden tener 4 entradas y 16 salidas, como los chips lógicos de la serie 7400. Se pueden mantener así de simple y usar un montón de ellos o en chips modernos, probablemente un gran circuito decodificador. Puedes ver cómo se ramifican como un árbol a lo largo del lado de un bloque de memoria en algunas imágenes microscópicas de chips de memoria.
Verifique alguna información de tipo wiki sobre cómo funciona la RAM o más fácil de fotografiar, ROM, porque no tiene que escribir en ella. Mirando un ejemplo simple, como una ROM de 16 bytes debería dejarlo claro. - ¡Una búsqueda rápida no mostró ningún buen diagrama! Consulte la hoja de datos del 74HC138 para ver un circuito de etapa de decodificador simple .
Para una imagen mental que sea lógicamente válida, vea cada bit de memoria con dieciséis comparadores que comparan los valores en el bus de direcciones con su dirección particular de los 64K valores posibles. Todos hacen la comparación simultáneamente y solo una responde.
Si eso suena como que usaría mucho poder, lo haría. En realidad es una estrategia de divide y vencerás. Toma el dígito más alto. En el caso o FA3B, el bit binario más significativo es 1. Eso significa que la ubicación está en los 32K superiores de memoria, por lo que los 32K inferiores ni siquiera necesitan estar encendidos. El siguiente bit es un 1 por lo que está en el 16K superior del 32 K. superior. Luego, el 8K superior y el 4K superior y el 2K superior. Finalmente un 0! Así que está en el 1K inferior de ese último 2K, luego en el 512 superior de eso y el 256 inferior de eso y el 128 inferior de ese y el 64 inferior en el superior 32 superior 16 superior 8 superior 4 superior 2 y finalmente es el superior De las dos últimas posibilidades. Creo que conté bien.
Como puede ver, si organiza la memoria en pequeños bloques, ni siquiera tiene que encender la mayoría si se trata de un acceso en particular. Puede usar la lógica de dirección para encender también la parte del chip que se necesita sobre la marcha, por así decirlo.
Todo esto para emular el modelo de dirección lineal de la ALU (o la cinta de una máquina de Turing).