Pourquoi les "masques de bits" sont-ils appelés ainsi?
Je sais qu'ils sont principalement utilisés pour les opérations sur les bits et que l'utilisation de masques de bits est plus efficace que l'utilisation de variables séparées.
Cependant, ma question est de savoir pourquoi et quand les masques de bits ont-ils été inventés? Ont-ils été utilisés depuis les débuts de l'informatique? Existe-t-il d'autres types de "masques" en plus des masques de bits dans le domaine informatique?
Réponses:
Un masque (de la variété du visage) recouvre certaines parties de votre visage et laisse apparaître d'autres. La terminologie est utilisée par analogie en informatique: un masque binaire recouvre (filtre) certains bits d'un ensemble de bits et en laisse passer d'autres.
Juste au dessus de ma tête, les masques sont fréquemment utilisés dans le traitement d'images. C'est un concept similaire: vous créez une image en noir et blanc qui montre la forme de ce qu'il faut masquer et de ce qu'il faut laisser passer.
la source
Un masque de bits est utilisé pour masquer certains bits d'un champ de bits tout en en exposant d'autres:
Cela a été utilisé avant le calcul en électronique avec des portes logiques (AND, OR ...) ou des transistors ou en électromécanique avec des relais.
la source
Les bitmasks sont terriblement vieux. Je n'ai pas pu trouver de référence au premier, mais ils étaient certainement populaires grâce à l'avènement des processeurs 8 bits, et ont probablement aussi été utilisés dans les processeurs 4 bits.
L'idée derrière les masques de bit est de tirer parti du parallélisme au niveau des bits. Un ordinateur 8 bits peut effectuer la même opération bit par bit à 8 bits à la fois s’ils sont regroupés dans un seul mot natif (c’est-à-dire qu’il entre dans un registre).
Le nom vient du masquage, qui est une approche générale pour couvrir des zones avec lesquelles vous ne souhaitez pas interagir. Par exemple, considérons ce pochoir pour masquer des zones d'un mur (le pochoir a été déplacé après la peinture pour montrer le motif)
Les masques sont également utilisés en photographie, où ils utilisent le terme "esquive" plutôt que "pochoir". Vous pouvez utiliser un masque pour masquer une partie de la lumière pendant l’impression afin d’éclaircir une zone.
Le terme est également utilisé directement en photolithographie, technique utilisée pour fabriquer des circuits intégrés. Le masque empêche la lumière d’atteindre la résine photosensible peinte sur la puce, ce qui crée des motifs qui finissent par créer des motifs facettés sur la puce. (L'image ci-dessous est l'un des masques du processeur Intel 8080A , si vous êtes curieux)
De même, dans le masquage de bits, vous sélectionnez les parties du mot que vous souhaitez utiliser, masquant ainsi le reste des bits. Dans l'exemple ci-dessous, j'utilise l'opération "and" pour masquer l'entrée de sorte que seuls les 3ème, 4ème et 8ème bits soient visibles. Le reste est "masqué" pour être 0. Le masque que j'utilise est
00110001
. Je le montre ci-dessous avec#
0 et.
1 parce que cela rend l'apparence visuelle du masque binaire similaire à celle des masques physiques ci-dessus, et je montre une ligne "bits sélectionnés" qui montre les bits de la sortie qui n'ont pas été masqués ( "bits sélectionnés" n'est pas réellement une opération logique qui se produit ... le processeur va vraiment droit de l'entrée AND masque à la sortie en une seule étape, mais je pense que cela clarifie l'image visuelle)Comme je l'ai mentionné, le masquage est terriblement vieux, car il augmente considérablement la productivité du processeur. Sur un processeur 4 bits, le processeur peut être 4x plus rapide. Sur un processus 8 bits, cela peut accélérer 8 fois (sur les opérations au niveau des bits uniquement, bien sûr).
Une utilisation fascinante pour cela est les moteurs d'échecs. Le plateau d'échecs a 64 carrés. Les moteurs modernes ont des entiers 64 bits. C’est une chance terriblement commode, alors les moteurs d’échecs en tirent souvent parti. Ils ont ce qu'on appelle des " bitboards " qui contiennent les emplacements des pièces. Cela vous permet d'effectuer toutes sortes d'optimisations, telles que la recherche de tous les mouvements de pion en une seule étape.
la source
Dans son utilisation la plus courante en anglais, un masque est un dispositif qui cache quelque chose. La sérigraphie est mentionnée dans une autre réponse. Le ruban de peinture «masque» quelque chose pour éviter de mettre de la peinture, etc. Le masque de soudure sur un tableau de PC «masque» la zone à souder de la zone à ne pas souder.
Dans le cas du "masquage de bits", certains bits sont "masqués" ou ignorés, de sorte que d'autres, plus intéressants, peuvent être plus facilement manipulés ou visualisés.
Le masquage de bits n'est pas simplement une technique "ancienne", il s'agit d'une opération primitive dans la plupart sinon toutes les instructions machine, autant que je sache depuis les premiers processeurs. Cela se présente généralement sous la forme "utilise la configuration de bits dans ce registre pour masquer les bits dans un autre registre".
la source
Un masque de bits est similaire à la sérigraphie . Vous sélectionnez une certaine position de bit à prendre en compte dans le résultat:
source value = 42 -> 00101010b
mask = 51 -> 00110011b
result 42&51 = 00100010b -> 34
Une autre signification de masque est une page dans une interface utilisateur graphique où l'utilisateur peut saisir des données.
la source
Les masques de bits ont été inventés pour plusieurs raisons:
Lorsque vous regardez comment vous voyez le modèle de bits que vous voulez activer un bit ou AND pour désactiver les bits, cela ressemble à un masque.
Le masque le plus courant (basé sur les masques de bits) est un masque d'image (voir le lien que j'ai inclus au début).
la source
bool
ou un autre moyen de placer chaque indicateur dans un octet séparé. Cela permet de faire efficacement des choses commeif (x & (FLAG_A | FLAG_B))
au lieu deif (xflags[FLAG_A] || xflags[FLAG_B])
. Surtout si le masque n'est pas une constante; pouvoir passer un masque en tant qu'entier coûte beaucoup moins cher que de passer une liste de drapeaux à vérifier. Ainsi, même si la mémoire et le cache étaient illimités, il serait toujours beaucoup plus efficace d’utiliser des bits et des masques dans certains cas.Un autre type de masque physique en informatique est le photomasque lithographique utilisé pour graver uniquement une partie d'une tranche de silicium. Cela ne servait pas à fabriquer les premiers ordinateurs, mais tous ceux qui travaillaient dans l'industrie au cours des cinquante dernières années en auraient été conscients.
Je ne sais pas quand le terme exact «masque de bits» est apparu, mais l'opération elle-même est juste un bitwise, une instruction de base de tout ordinateur binaire.
la source