¿Por qué las "máscaras de bits" se llaman así?
Sé que se usan principalmente para operaciones bit a bit y el uso de máscaras de bits es más eficiente que el uso de variables separadas.
Sin embargo, mi pregunta es ¿por qué y cuándo se inventaron las máscaras de bits? ¿Se usaron desde la informática temprana? ¿Hay algún otro tipo de "máscaras" además de las máscaras de bits en el dominio de TI?
Respuestas:
Una máscara (de la variedad facial) es algo que cubre algunas partes de la cara y deja ver otras partes. La terminología se usa por analogía en la informática: una máscara de bits cubre (filtra) algunos bits en un conjunto de bits y permite que otros pasen.
Justo en la parte superior de mi cabeza, las máscaras se usan con frecuencia en el procesamiento de imágenes. Es un concepto similar: crea una imagen en blanco y negro que muestra la forma de qué enmascarar y qué dejar pasar.
fuente
Una máscara de bits se usa para enmascarar algunos bits de un campo de bits mientras se exponen otros:
Esto se ha utilizado antes de computar en electrónica con puertas lógicas (AND, OR ...) o transistores o en electromecánica con relés.
fuente
Las máscaras de bits son terriblemente viejas. No he podido encontrar una referencia al primero, pero ciertamente fueron populares por la llegada de los procesadores de 8 bits, y probablemente también se usaron en procesadores de 4 bits.
La idea detrás de las máscaras de bits es aprovechar el paralelismo bit a bit. Una computadora de 8 bits puede hacer la misma operación de 8 bits a la vez si están empaquetados en una sola palabra nativa (lo que significa que cabe en un registro).
El nombre proviene del enmascaramiento, que es un enfoque general para cubrir áreas con las que no desea interactuar. Por ejemplo, considere esta plantilla para enmascarar áreas de una pared (la plantilla se ha movido después de pintar para mostrar el patrón)
Las máscaras también se usan en la fotografía, donde van por el término "esquivar" en lugar de "plantilla". Puede usar una máscara para oscurecer parte de la luz durante la impresión para aclarar un área.
El término también se usa directamente en fotolitografía, que es la técnica utilizada para hacer circuitos integrados. La máscara evita que la luz llegue a la fotorresistencia pintada en el chip, lo que crea patrones que luego conducen a patrones fascinantes en el chip. (La imagen a continuación es una de las máscaras para el procesador Intel 8080A , si tiene curiosidad)
Del mismo modo, en el enmascaramiento de bits, está seleccionando las partes de la palabra en las que desea operar, enmascarando el resto de los bits. En el ejemplo a continuación, uso la operación "y" para enmascarar la entrada de modo que solo se muestren los bits 3, 4 y 8. El resto está "enmascarado" para que sean 0's. La máscara que uso es
00110001
. Lo muestro a continuación#
representando 0 y.
representando 1 porque eso hace que la apariencia de la máscara de bits sea similar a la de las máscaras físicas anteriores, y muestro una fila de "bits seleccionados" que muestra los bits de la salida que no se enmascararon ( "bits seleccionados" en realidad no es una operación lógica que sucede ... el procesador realmente pasa directamente de la entrada Y la máscara a la salida en un solo paso, pero creo que aclara la imagen visual)Como mencioné, el enmascaramiento de bits es terriblemente antiguo porque aumenta dramáticamente la productividad del procesador. En un procesador de 4 bits, puede hacer que el procesador sea 4 veces más rápido. En un proceso de 8 bits, o puede hacerlo 8 veces más rápido (solo en operaciones bit a bit, por supuesto).
Un uso fascinante para esto son los motores de ajedrez. El tablero de ajedrez tiene 64 casillas. Los motores modernos tienen enteros de 64 bits. Esta es una suerte terriblemente conveniente, por lo que los motores de ajedrez a menudo la aprovechan. Tienen los llamados " paneles de bits " que contienen las ubicaciones de las piezas. Esto le permite hacer todo tipo de optimizaciones, como buscar todos los movimientos de peones en un solo paso.
fuente
En su uso más general en inglés, una máscara es un dispositivo que oculta algo. La serigrafía se menciona en otra respuesta. La cinta de pintura "enmascara" algo para evitar que quede pintura, etc. La máscara de soldadura en una placa de PC "enmascara" el área que se va a soldar del área que no se va a soldar.
En el caso del "enmascaramiento de bits", algunos bits están 'ocultos' o ignorados para que otros que sean de mayor interés puedan manipularse más fácilmente o simplemente verse.
El enmascaramiento de bits no es simplemente una técnica "antigua", es una operación primitiva en la mayoría de las instrucciones de la máquina, si no en todas, hasta donde yo sé por los primeros procesadores. Por lo general, se trata de "usar el patrón de bits en este registro para enmascarar los bits en algún otro registro".
fuente
Una máscara de bits es similar a la serigrafía . Selecciona alguna posición de bit determinada para tomar en el resultado:
source value = 42 -> 00101010b
mask = 51 -> 00110011b
result 42&51 = 00100010b -> 34
Otro significado de máscara es una página en una interfaz gráfica de usuario donde el usuario puede ingresar datos.
fuente
Las máscaras de bits se inventaron por un par de razones:
Cuando observa cómo ve el patrón de bits que está ORing para activar un bit o ANDing para desactivar los bits, parece una máscara.
La máscara más común (basada en máscaras de bits) es una máscara de imagen (vea el enlace que incluí al principio).
fuente
bool
alguna otra forma de tener cada indicador en un byte separado. Eso hace posible hacer cosas de manera eficiente enif (x & (FLAG_A | FLAG_B))
lugar de hacerloif (xflags[FLAG_A] || xflags[FLAG_B])
. Especialmente si la máscara no es una constante; ser capaz de pasar una máscara como un número entero es mucho más barato que pasar una lista de banderas para verificar. Por lo tanto, incluso si la memoria y la memoria caché fueran ilimitadas, en algunos casos sería mucho más eficiente usar conjuntos de bits y máscaras.Otro tipo de máscara física en TI es la fotomáscara litográfica utilizada para grabar solo parte de una oblea de silicio. Eso no se usó para fabricar las primeras computadoras, pero cualquiera que haya trabajado en la industria en los últimos cincuenta años lo habría sabido.
No sé cuándo apareció el término exacto "máscara de bits", pero la operación en sí misma es solo bit a bit y, que es una instrucción básica de cada computadora binaria.
fuente