Pregunta principal: ¿Cuál es el término preciso para el bloque de memoria direccionable más pequeño?
Agregaré otra respuesta para abordar eso de una manera diferente. En hardware electrónico, lo llamamos el bit - dígito binario. Esa es una entidad que puede representar dos valores cualquiera. Generalmente pensamos en términos de 0 y 1, pero podría ser 3 o 4, 365 o 266, -3 o -4, incluso 25 o 37.
Se puede utilizar cualquier sistema de señalización para representar estos valores: señalización hacia arriba, indicación hacia abajo, ojos abiertos, ojos cerrados, + 5v, -5v. Eso no es importante.
Lo importante es que filosóficamente estamos representando la menor cantidad de información distintiva. Esto podría estar activado, desactivado o verdadero, falso o arriba, abajo o 0, 1, cualquier cosa que distinga dos estados separados. Podemos mapear estos valores en cualquiera de los sistemas de señalización anteriores y en muchos otros.
Ahora la pregunta es, ¿cómo podemos probar y establecer una cantidad tan pequeña de información individualmente? Como dije en la respuesta anterior, el B1700 eligió abordar la menor cantidad de información directamente.
Sin embargo, la mayoría de las máquinas decidieron abordar solo grandes cantidades de información. Consideremos un grupo de cuatro bits con una sola dirección. Entonces, si obtenemos el valor de 1011 en nuestra ubicación, ¿cómo probamos el segundo bit desde la izquierda? Usamos una máscara: las pruebas 1011 y 0100 solo el segundo bit. Entonces, ¿cómo establecemos el segundo bit en 1? Un poco de aritmética de la CPU dice que el valor será 15 o 1111, de modo que cuatro bits enteros se vuelven a escribir en la memoria, aunque en realidad solo hayamos establecido un bit.
Ahora esto no es útil para la mayoría de las aplicaciones. La mayoría de las aplicaciones representan datos o información, arriba, abajo, verdadero, falso, abierto, cerrado.
Queremos decir cosas como:
si está abierto entonces ... más ... final
o más probablemente aplique eso a una entidad más grande:
si la puerta está abierta, lo más probable es 'puerta abierta' ... más ... final
'puerta está abierta' ilustra el direccionamiento jerárquico. El direccionamiento del sistema principal le da a la entidad puerta, y la puerta tiene su propio direccionamiento que le da acceso para abrir (y tal vez otros atributos).
La mayoría de los conjuntos también tienen más de dos valores posibles (un conjunto con un valor nunca cambia y, por lo tanto, ni siquiera necesita representación, por lo tanto, cero bits). Para estos hemos enumerado conjuntos, como (amarillo, verde, azul, neblina púrpura, rojo). Estos definen conjuntos y tipos y el número exacto de bits requeridos viene dado por el número de valores (log2 (número de valores)).
Por lo tanto, el direccionamiento óptimo realmente depende del tamaño de la entidad utilizada en la aplicación, tal vez incluso de entidades de tamaño variable. Pero en la mayoría del hardware, tales direcciones deben traducirse al tamaño fijo que define el hardware. Por supuesto, esto podría costar en términos de tiempo. También debería ser algo que hace un traductor automático (compilador o intérprete), no un programador, tal como un sistema de este tipo generaría código para probar y establecer bits como se indica arriba (si los bits no son directamente direccionables).
Un punto importante aquí es no pensar en términos de electrónica: la electrónica es simplemente una forma realmente buena y rápida de procesar cálculos. No hay nada mágico en la computación electrónica que permita hacer computaciones que de otra manera no podría hacer. La magia solo está en la velocidad. Es por eso que las abstracciones de bajo nivel, como los mecanismos de direccionamiento de bit, byte, palabra o hardware (punteros) realmente no son tan útiles.