Pourquoi les masques de bits sont-ils appelés «masques» et à quoi servent-ils?


79

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?


14
La photolithographie (utilisation de la lumière UV pour graver des entités sur des plaquettes de silicium) utilise un "photomasque" pour bloquer sélectivement la source de lumière UV de sorte que les zones exposées de silicium présentent le bon motif.
Levi


1
En outre, plusieurs
exemples

14
Avez-vous déjà effectué un travail de peinture et utilisé du ruban-cache?
gnasher729

1
Autre type de masque: la détection de collision parfaite entre pixels consiste à détecter les chevauchements de masques 2D.
aluriak

Réponses:


101

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.

Existe-t-il d'autres types 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 ce qu'il faut masquer et de ce qu'il faut laisser passer.


33
Les masques de sous-réseau sont également assez courants .
Matthieu M.

38
@MatthieuM. mais les masques de sous-réseau ne sont-ils pas aussi des masques de bits? Ils sont utilisés pour filtrer l'adresse réseau et l'adresse hôte.
yoyo_fun

22
@ JenniferAnderson Une image en noir et blanc n'est-elle pas aussi un masque de pixels?
Bergi

8
Les masques d’image physiques sont utilisés dans la production de puces en silicium, dans le cadre d’une technique qui a évolué à partir de la photographie et de l’impression traditionnelles. en.wikipedia.org/wiki/Photolithography
Jander

20
Masquer est aussi un terme artistique pour protéger un domaine du changement tout en permettant le changement d'un autre. Il est souvent utilisé en peinture. Masking Tape est conçu pour que vous ne peigniez pas sur les choses que vous ne voulez pas peindre, tout en apprenant à peindre les choses que vous voulez peindre.
Nate Diamond

54

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

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.


6
"Un masque de bits est utilisé pour masquer certains bits d'un champ de bits tout en en exposant d'autres:" Je n'y ai jamais pensé de la sorte, mais cela a beaucoup de sens. Merci pour l'explication :)
yoyo_fun

1
@mouvicel pouvez-vous m'indiquer des liens sur la manière dont les masques de bits ont été utilisés dans l'électronique avec des portes logiques. Quel était le but, dans quel type de systèmes ces opérations étaient-elles utilisées et quand cette technique a-t-elle commencé?
yoyo_fun

4
pour clarifier: la valeur initiale est ANDed avec le masque, et donc seul les bits du masque en "1" conservent les bits d'origine de la valeur initiale (comme, au niveau du bit, "1 et 1 = 1" et "0 et 1 = 0" ), et les autres bits de la valeur initiale sont mis à 0 comme (bit à bit) "0 et 0 = 0" et "1 et 0 = 0") (car "And" dit que "seulement quand le premier bit ET le 2e les bits sont mis à 1, le résultat est 1. tous les autres résultent en 0 ". (OU signifie: soit avec le 1er bit, il vaut 1, soit le 2e bit vaut 1, le résultat sera 1. etc). voir en.wikipedia. org / wiki /…
Olivier Dulac

2
@JenniferAnderson: Outre les masques de bits logiques, les masques actuels sont utilisés dans l'électronique: un masque de soudure est un pochoir (un morceau de carton) utilisé pour déposer de la pâte de soudure sur des PCB. Vous placez le masque sur le circuit imprimé, utilisez une raclette pour enduire la pâte de soudure sur le masque, puis les trous dans le masque laissent passer pour ne couvrir que les zones dont vous avez besoin ( youtube.com/watch?v=EqJN1CTCOQs ) . Dans la fabrication de puces, les masques sont utilisés pour construire ou graver des structures sur du silicium. Cette utilisation du mot "masque" vient de l'industrie de l'imprimerie.
slebetman

4
@ JenniferAnderson: L'utilisation du mot "masque" en anglais pour désigner quelque chose est plus générale et probablement beaucoup plus ancienne. Par exemple, en anglais, nous disons que le parfum peut être utilisé pour masquer les mauvaises odeurs.
slebetman

39

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)

Pochoirs

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.

Masques de photographie

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)

Masque de photolithographie

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)

Input          10010111
Mask           ##..###.  (aka 00110001)
-----------------------
(selected)       01   1
Input AND Mask 00010001

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.


33

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".


12
Je n'ai pas entendu le terme "bande de peinture". J'imagine que c'est ce que j'appellerais du "ruban de masquage".
leur

12
@thelem: le terme "ruban de masquage", du moins aux États-Unis, fait référence à un ruban à base de tissu facile à déchirer. Lorsqu'il est utilisé pour la peinture, il produit un bord un peu "flou". Du fait que ce type de ruban est utilisé à de nombreuses autres fins, on appelle "ruban de peintre" les rubans plus récents qui conviennent mieux à la peinture (mais sont plus coûteux et peuvent moins convenir à d’autres buts).
Supercat

2
@Barmar Tous ceux qui sont allés à la section peinture de la quincaillerie l'auront croisée.
chrylis -on strike-

5
Je ne suis pas un peintre et je sais que son ruban adhésif et son ruban-cache sont deux types de ruban très différents. Peut-être juste en disant que "la bande de masquage est un type de bande qui est utilisé pour son opacité et qui est facile à écrire."
valbaca

2
J'ai essayé de chercher sur le site Web du géant britannique de la quincaillerie (Australie) et le premier succès de "tape tape" est un produit appelé "tape de masquage", alors je suppose que c'est tout. ;) Je suppose que les bonnes vieilles différences de terminologie entre les régions. Les gens sont vraiment pointilleux sur ce qui compte comme ruban adhésif, en fonction de leur lieu de résidence.
Trejkaz

10

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.


3

Les masques de bits ont été inventés pour plusieurs raisons:

  • Les registres matériels ont été mappés sur un ensemble de bits contigus
  • L'espace mémoire était très limité dans un passé pas si lointain

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).


2
Un bitmap de valeurs d'indicateur est toujours un moyen approprié et plus efficace de faire passer un ensemble d'indicateurs qu'un tableau boolou un autre moyen de placer chaque indicateur dans un octet séparé. Cela permet de faire efficacement des choses comme if (x & (FLAG_A | FLAG_B))au lieu de if (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.
Peter Cordes

Jamais dit que ce n'était pas encore utile. Je viens de dire que les origines avaient leurs racines dans le traitement des registres de matériel et de la mémoire limitée. J'utilise toujours des masques de bits lorsqu'ils conviennent au problème.
Berin Loritsch

1
Ce que je voulais dire, c'est que les origines sont probablement à parts égales en mémoire et en performances sur les vieux ordinateurs lents.
Peter Cordes

1
D'accord. Après avoir programmé un Commodore 64, vous deviez également connaître les masques binaires pour pouvoir utiliser des E / S graphiques, audio, série et parallèle. Les puces du contrôleur ont été mappées sur des adresses de mémoire avec des broches mappées sur des bits de cette adresse. J'imagine que vous pourriez vous demander si le masque de bits a influencé l'interface matérielle ou inversement. De toute façon, vous deviez les connaître pour obtenir quelque chose d'utile.
Berin Loritsch

@BerinLoritsch Merci pour la réponse. Pouvez-vous expliquer ce que vous entendez par "Les registres de matériel ont été mappés sur un ensemble de bits contigus"? Les registres de matériel ne sont-ils pas accessibles indépendamment les uns des autres?
yoyo_fun

3

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.


+1 pour "l'instruction de base dans chaque ordinateur binaire". Les gens doivent savoir ce que sont les ordinateurs et pourquoi ils le sont.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.