Pourquoi les "masques de bits" sont-ils appelés ainsi?
Je sais qu'ils sont principalement utilisés pour des opérations au niveau du bit et l'utilisation de masques de bits est plus efficace que l'utilisation de variables distinctes.
Cependant, ma question est pourquoi et quand les masques à mors ont-ils été inventés? Ont-ils été utilisés depuis le début de l'informatique? Existe-t-il un autre type de "masques" en plus des masques de bits dans le domaine informatique?
Un masque (de type facial) est quelque chose qui recouvre certaines parties de votre visage et laisse transparaître d'autres parties. La terminologie est utilisée par analogie en informatique: un masque de bits recouvre (filtre) certains bits d'un jeu de bits et permet à d'autres de passer.
Existe-t-il un autre type de "masques" en plus des masques de bits dans le domaine informatique?
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 quoi masquer et de quoi laisser passer.
Un masque de bits est utilisé pour masquer certains bits d'un champ de bits tout en en exposant d'autres:
initial value: 011011001
bit mask.....: 111110000
result value.: 011010000
Celui-ci a été utilisé avant le calcul en électronique à portes logiques (ET, OU ...) ou à transistors ou en électromécanique à relais.
Les bitmasks sont terriblement vieux. Je n'ai pas pu trouver de référence au premier, mais ils étaient certainement populaires par l'avènement des processeurs 8 bits, et étaient probablement également utilisés dans les processeurs 4 bits.
L'idée derrière les masques de bits est de tirer parti du parallélisme au niveau du bit. Un ordinateur 8 bits peut effectuer la même opération au niveau du bit sur 8 bits à la fois s'il est regroupé dans un seul mot natif (ce qui signifie qu'il tient dans un registre).
Le nom vient du masquage, qui est une approche générale pour couvrir les zones avec lesquelles vous ne souhaitez pas interagir. Par exemple, considérez ce pochoir pour masquer les 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 sont appelés "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, qui est la 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 conduisent plus tard aux motifs de facination sur la puce. (L'image ci-dessous est l'un des masques pour le 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, en masquant tous les autres bits. Dans l'exemple ci-dessous, j'utilise l'opération "et" pour masquer l'entrée de sorte que seuls les 3ème, 4ème et 8ème bits apparaissent. Les autres sont "masqués" afin qu'ils soient à 0. Le masque que j'utilise est 00110001
. Je le montre ci-dessous avec #
représentant 0 et .
représentant 1 car cela rend l'apparence visuelle du masque binaire similaire à celle des masques physiques ci-dessus, et j'affiche une ligne "bits sélectionnés" qui montre les bits de la sortie qui n'ont pas été masqués (les "bits sélectionnés" ne sont pas en fait une opération logique qui se produit ... le processeur passe vraiment directement de l'entrée ET du masque à la sortie en une seule étape, mais je pense que cela clarifie l'image visuelle)
Input 10010111
Mask ##..###. (aka 00110001)
-----------------------
(selected) 01 1
Input AND Mask 00010001
Comme je l'ai mentionné, le bitmasking est terriblement ancien car il augmente considérablement la productivité du processeur. Sur un processeur 4 bits, cela peut rendre le processeur 4x plus rapide. Sur un processus 8 bits, ou cela peut le rendre 8 fois plus rapide (uniquement sur les opérations au niveau du bit, bien sûr).
Une utilisation fascinante pour cela est les moteurs d'échecs. Le plateau d'échecs a 64 cases. Les moteurs modernes ont des entiers 64 bits. C'est un morceau de chance terriblement pratique, donc les moteurs d'échecs en tirent souvent parti. Ils ont ce qu'on appelle " 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.
Dans son utilisation la plus générale en anglais, un masque est un appareil qui cache quelque chose. La sérigraphie est mentionnée dans une autre réponse. Le ruban de peinture "masque" quelque chose pour éviter que de la peinture y soit collée, etc. Le masque de soudure sur une carte à circuit imprimé "masque" la zone à souder de la zone à ne pas souder.
Dans le cas du "masquage de bits", certains bits sont "cachés" ou ignorés de sorte que d'autres plus intéressants peuvent être plus facilement manipulés ou simplement visualisés.
Le masquage des bits n'est pas simplement une "vieille" technique, c'est une opération primitive dans la plupart sinon toutes les instructions de la machine, pour autant que je sache des premiers processeurs. Généralement, cela se présente sous la forme "utiliser le modèle de bits dans ce registre pour masquer les bits dans un autre registre".
Un masque de bits est similaire à sérigraphie . Vous sélectionnez une certaine position de bit à reprendre dans le résultat:
source value = 42 -> 00101010b
mask = 51 -> 00110011b
result 42&51 = 00100010b -> 34
Une autre signification du masque est une page dans une interface utilisateur graphique où le l'utilisateur peut saisir des données.
Les masques de bits ont été inventés pour deux raisons:
Lorsque vous regardez comment vous voyez le modèle de bits que vous voulez activer pour activer un bit ou ET pour désactiver des 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).
Un autre type de masque physique en TI est le masque photographique lithographique utilisé pour graver seulement une partie d'une tranche de silicium. Cela n'était pas utilisé pour fabriquer les premiers ordinateurs, mais quiconque travaillant dans l'industrie au cours des cinquante dernières années en aurait été conscient.
Je ne sais pas quand le terme exact "bitmask" est apparu, mais l'opération elle-même est juste au niveau du bit et, qui est une instruction de base de chaque ordinateur binaire.