Warum werden Bitmasken "Masken" genannt und welchen Zweck erfüllen sie?

79

Warum heißen "Bitmasken" so?

Ich weiß, dass sie hauptsächlich für bitweise Operationen verwendet werden und die Verwendung von Bitmasken effizienter ist als die Verwendung separater Variablen.

Meine Frage ist jedoch, warum und wann Bitmasken erfunden wurden. Wurden sie seit den frühen Computertagen verwendet? Gibt es im IT-Bereich außer Bitmasken noch andere Arten von "Masken"?

yoyo_fun
quelle
14
Die Fotolithografie (mit UV-Licht, um Strukturen in Siliziumwafer zu ätzen) verwendet eine "Fotomaske", um die UV-Lichtquelle selektiv auszublenden, so dass die belichteten Bereiche des Siliziums das richtige Muster aufweisen.
Levi
1
Auch verschiedene von en.wikipedia.org/wiki/Mask_(disambiguation)
OrangeDog
14
Hast du jemals gemalt und Klebeband benutzt?
gnasher729
1
Eine andere Art von Masken: Bei der pixelgenauen Kollisionserkennung geht es ausschließlich darum, Überlappungen von 2D-Masken zu erkennen.
Aluriak

Antworten:

101

Eine Maske (von der Gesichtsart) ist etwas, das einige Teile Ihres Gesichts bedeckt und andere Teile durchscheint. Die Terminologie wird beim Rechnen analog verwendet: Eine Bitmaske überdeckt (filtert) einige Bits in einem Bitset und lässt andere passieren.

Gibt es im IT-Bereich außer Bitmasken noch andere Arten von "Masken"?

Unmittelbar hinter meinem Kopf werden in der Bildverarbeitung häufig Masken verwendet. Es ist ein ähnliches Konzept: Sie erstellen ein Schwarzweißbild, das die Form der zu maskierenden und durchzulassenden Elemente angibt.

Mason Wheeler
quelle
33
Subnetzmasken sind ebenfalls weit verbreitet .
Matthieu M.
38
@MatthieuM. Aber sind Subnetzmasken nicht auch Bitmasken? Sie werden verwendet, um die Netzwerkadresse und die Hostadresse herauszufiltern.
yoyo_fun
22
@JenniferAnderson Ist ein Schwarzweißbild nicht auch nur eine Pixel-Bitmaske?
Bergi
8
Physikalische Bildmasken werden in der Herstellung von Siliziumchips als Teil einer Technik verwendet, die sich aus der traditionellen Fotografie und dem Prozessdruck entwickelt hat. en.wikipedia.org/wiki/Photolithography
Jander
20
Maskierung ist auch ein künstlerischer Begriff, um einen Bereich vor Veränderungen zu schützen und gleichzeitig die Veränderung eines anderen zuzulassen. Es wird oft in der Malerei verwendet. Dafür ist Masking Tape gedacht: Sie malen also nicht auf die Dinge, auf die Sie nicht malen möchten, während Sie immer noch auf die Dinge malen, auf die Sie malen möchten.
Nate Diamond
54

Eine Bitmaske wird verwendet, um einige Bits eines Bitfelds zu maskieren, während andere belichtet werden:

initial value: 011011001
bit mask.....: 111110000
result value.: 011010000

Dies wurde vor dem Rechnen in der Elektronik mit logischen Gattern (AND, OR ...) oder Transistoren oder in der Elektromechanik mit Relais verwendet.

mouviciel
quelle
6
"Eine Bitmaske wird verwendet, um einige Bits eines Bitfeldes zu maskieren, während andere belichtet werden:" Ich habe noch nie so darüber nachgedacht, aber es macht sehr viel Sinn. Vielen Dank für die Erklärung :)
yoyo_fun
1
@mouvicel Kannst du mir bitte einige Links darüber zeigen, wie Bitmasken in der Elektronik mit logischen Gattern verwendet wurden? Was war der Zweck, in welchen Systemen wurden diese Operationen durchgeführt und wann begann diese Technik?
yoyo_fun
4
Zur Verdeutlichung: Der Anfangswert wird mit der Maske UND-verknüpft, und daher halten nur die Maskenbits bei "1" die ursprünglichen Bits vom Anfangswert (als bitweise "1 und 1 = 1" und "0 und 1 = 0"). ), und die anderen Bits des Anfangswerts werden als (bitweise) "0 und 0 = 0" und "1 und 0 = 0" auf 0 gesetzt (weil "Und" das "nur sagt, wenn das erste Bit UND das zweite Bit auf 1 gesetzt sind, ist das Ergebnis eine 1. Alle anderen Ergebnisse sind 0 ". (ODER bedeutet: Entweder mit dem 1. Bit ist es 1 ODER das 2. Bit ist 1, das Ergebnis ist 1. usw.). Siehe en.wikipedia. org / wiki /…
Olivier Dulac
2
@JenniferAnderson: Abgesehen von logischen Bitmasken werden in der Elektronik auch tatsächliche Masken verwendet: Eine Lötmaske ist eine Schablone (ein Stück Karte), mit der Lötpaste auf Leiterplatten aufgebracht wird. Sie setzen die Maske auf die Leiterplatte, streichen mit einem Rakel Lötpaste über die Maske, und die Löcher in der Maske lassen die Paste durch, um nur die Bereiche genau abzudecken, die Sie benötigen. ( Youtube.com/watch?v=EqJN1CTCOQs ) . In der Chipherstellung werden Masken verwendet, um Strukturen auf Silizium aufzubauen oder zu ätzen. Diese Verwendung des Wortes "Maske" stammt aus der Druckindustrie.
Slebetman
4
@JenniferAnderson: Die Verwendung des Wortes "Maske" im Englischen, um etwas zu bedecken, ist allgemeiner und wahrscheinlich viel älter. Zum Beispiel in Englisch sagen wir, Parfüm kann verwendet werden, um schlechten Geruch zu maskieren.
Slebetman
39

Bitmasken sind schrecklich alt. Ich konnte keinen Verweis auf den ersten finden, aber sie waren durch das Aufkommen von 8-Bit-Prozessoren sehr beliebt und wurden wahrscheinlich auch in 4-Bit-Prozessoren verwendet.

Die Idee hinter Bitmasken besteht darin, die bitweise Parallelität auszunutzen. Ein 8-Bit-Computer kann dieselbe bitweise Operation mit 8 Bits gleichzeitig ausführen, wenn sie in ein einziges natives Wort gepackt sind (was bedeutet, dass sie in ein Register passen).

Der Name stammt von Masking, einer allgemeinen Methode zum Verdecken von Bereichen, mit denen Sie nicht interagieren möchten. Betrachten Sie diese Schablone beispielsweise zum Abkleben von Wandbereichen (die Schablone wurde nach dem Malen verschoben, um das Muster anzuzeigen).

Schablonen

Masken werden auch in der Fotografie verwendet, wo sie eher als "Ausweichen" als als "Schablone" bezeichnet werden. Sie können eine Maske verwenden, um einen Teil des Lichts während des Druckvorgangs zu verdecken und einen Bereich aufzuhellen.

Masken für Fotografie

Der Begriff wird auch direkt in der Fotolithografie verwendet, bei der es sich um die Technik zur Herstellung integrierter Schaltkreise handelt. Die Maske verhindert, dass Licht auf den auf dem Chip aufgebrachten Fotolack gelangt, wodurch Muster entstehen, die später zu den Facinierungsmustern auf dem Chip führen. (Das folgende Bild ist eine der Masken für den Intel 8080A-Prozessor , wenn Sie neugierig sind)

Fotolithografiemaske

Ebenso wählen Sie bei der Bitmaskierung die Teile des Wortes aus, die Sie bearbeiten möchten, und maskieren alle übrigen Bits. Im folgenden Beispiel verwende ich die Operation "und", um die Eingabe so zu maskieren, dass nur das 3., 4. und 8. Bit durchscheinen. Der Rest ist "maskiert", so dass sie Nullen sind. Die Maske, die ich benutze, ist 00110001. Ich zeige es unten mit #0 und .1, weil das Aussehen der Bitmaske dem der oben gezeigten physischen Masken ähnelt, und ich zeige eine Zeile mit "ausgewählten Bits", in der die nicht ausgeblendeten Bits der Ausgabe angezeigt werden ( "Ausgewählte Bits" ist eigentlich keine logische Operation, die stattfindet. Der Prozessor geht wirklich in einem Schritt von der Eingabe- UND Maske zur Ausgabe, aber ich denke, es klärt das visuelle Bild.

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

Wie bereits erwähnt, ist Bitmasking sehr alt, da es die Produktivität des Prozessors erheblich steigert. Auf einem 4-Bit-Prozessor kann er den Prozessor 4x schneller machen. Bei einem 8-Bit-Prozess oder 8-mal schneller (natürlich nur bei bitweisen Operationen).

Eine faszinierende Verwendung dafür sind Schachengines. Das Schachbrett hat 64 Felder. Moderne Engines haben 64-Bit-Ganzzahlen. Dies ist ein furchtbar günstiges Glücksspiel, weshalb Schach-Engines es oft nutzen. Sie haben sogenannte " Bitboards ", die die Positionen von Stücken enthalten. Auf diese Weise können Sie alle möglichen Optimierungen vornehmen, z. B. alle Bauernbewegungen in einem einzigen Schritt suchen.

Cort Ammon
quelle
33

In der allgemeinsten englischen Sprache ist eine Maske ein Gerät, das etwas verbirgt. Siebdruck wird in einer anderen Antwort erwähnt. Das Malen von Klebeband "maskiert" etwas, um zu verhindern, dass Farbe darauf gelangt. Die Lötmaske auf einer PC-Platine "maskiert" den zu lötenden Bereich von dem Bereich, der nicht gelötet werden soll.

Bei der "Bit-Maskierung" werden einige Bits "verborgen" oder "ignoriert", damit andere, die von größerem Interesse sind, einfacher manipuliert oder einfach angezeigt werden können.

Das Bitmaskieren ist nicht nur eine "alte" Technik, es ist eine primitive Operation in den meisten, wenn nicht allen Maschinenbefehlen, soweit ich von den frühesten Prozessoren weiß. Typischerweise liegt dies in der Form vor, dass "das Bitmuster in diesem Register verwendet wird, um die Bits in einem anderen Register zu maskieren".

Mickeyf
quelle
12
Ich habe den Begriff "Malerband" nicht gehört. Ich nehme an, das würde ich "Masking Tape" nennen.
26.
12
@thelem: Der Begriff "Masking Tape" bezieht sich zumindest in den USA auf ein leicht zu zerreißendes Klebeband auf Stoffbasis. Beim Malen erzeugt es einen etwas "unscharfen" Rand. Da ein solches Band für viele andere Zwecke verwendet wird, werden neuere Bänder, die besser zum Malen geeignet sind (aber teurer und für andere Zwecke möglicherweise weniger geeignet sind) als "Malerband" bezeichnet.
Supercat
2
@Barmar Jeder, der in den Malerbereich des Baumarkts gegangen ist, ist ihnen begegnet.
chrylis -on strike-
5
Ich bin kein Maler und ich weiß, dass das Klebeband und das Masking Tape zwei sehr unterschiedliche Arten von Klebebändern sind. Vielleicht nur sagen: "Masking Tape ist eine Art Klebeband, das wegen seiner Undurchsichtigkeit verwendet wird und leicht zu beschreiben ist."
Valbaca
2
Ich habe versucht, auf der Website des örtlichen (australischen) großen Baumarkts nach "Malerband" zu suchen. Der erste Treffer ist ein Produkt mit der Bezeichnung "Masking Tape". ;) Gute alte Terminologieunterschiede zwischen Regionen, vermute ich. Die Leute sind sehr wählerisch, was auch als Gaffer Tape gilt, je nachdem, wo sie leben.
Trejkaz
10

Eine Bitmaske ähnelt dem Siebdruck . Sie wählen eine bestimmte Bitposition aus, die in das Ergebnis übernommen werden soll:

source value = 42 -> 00101010b
mask = 51 -> 00110011b
result 42&51 = 00100010b -> 34

Eine andere Bedeutung von Maske ist eine Seite in einer grafischen Benutzeroberfläche, auf der der Benutzer Daten eingeben kann.

Timothy Truckle
quelle
3

Bitmasken wurden aus mehreren Gründen erfunden:

  • Hardware-Register wurden auf einen zusammenhängenden Satz von Bits abgebildet
  • Der Speicherplatz war in der nicht allzu fernen Vergangenheit sehr begrenzt

Wenn Sie sich ansehen, wie Sie das Muster der Bits sehen, die Sie ODER-verknüpft haben, um ein Bit zu aktivieren, oder UND-verknüpft, um Bits zu deaktivieren, sieht es wie eine Maske aus.

Die am häufigsten verwendete Maske (basierend auf Bitmasken) ist eine Bildmaske (siehe den Link, den ich am Anfang eingefügt habe).

Berin Loritsch
quelle
2
Eine Bitmap von Flag-Werten ist immer noch eine geeignete und effizientere Möglichkeit, einen Satz von Flags zu umgehen, als ein Array booloder eine andere Möglichkeit, jedes Flag in einem separaten Byte zu haben. Das macht es möglich, Dinge effizient zu erledigen, if (x & (FLAG_A | FLAG_B))anstatt if (xflags[FLAG_A] || xflags[FLAG_B]). Besonders wenn die Maske keine Konstante ist; Die Möglichkeit, eine Maske als Ganzzahl zu übergeben, ist viel billiger als die Übergabe einer Liste von zu überprüfenden Flags. Selbst wenn Speicher und Cache unbegrenzt wären, wäre es in einigen Fällen immer noch effizienter, Bitsets und Masken zu verwenden.
Peter Cordes
Ich habe nie gesagt, dass es nicht immer noch nützlich ist. Nur gesagt, die Ursprünge hatten ihre Wurzeln im Umgang mit Hardwareregistern und begrenztem Speicher. Ich benutze immer noch Bitmasken, wenn sie für das Problem geeignet sind.
Berin Loritsch
1
Was ich damit sagen wollte war, dass die Ursprünge wahrscheinlich zu gleichen Teilen aus Speicher und Leistung auf alten langsamen Computern bestehen.
Peter Cordes
1
Einverstanden. Nachdem Sie einen Commodore 64 programmiert hatten, mussten Sie auch Bitmasken kennen, um mit Grafiken, Sound, seriellen und parallelen E / A-Vorgängen umgehen zu können. Die Controller-Chips wurden auf Speicheradressen abgebildet, wobei Pins auf Bits innerhalb dieser Adresse abgebildet wurden. Man könnte sich wohl überlegen, ob die Bitmaske die Hardwareschnittstelle beeinflusst oder umgekehrt. In jedem Fall musste man sie kennen, um etwas Nützliches zu erledigen.
Berin Loritsch
@BerinLoritsch Danke für die Antwort. Könnten Sie erklären, was Sie mit "Hardware-Register wurden einem zusammenhängenden Satz von Bits zugeordnet" meinen? Wird nicht unabhängig voneinander auf Hardware-Register zugegriffen?
yoyo_fun
3

Eine andere Art von physikalischer Maske in der IT ist die lithografische Fotomaske, mit der nur ein Teil eines Siliziumwafers weggeätzt wird. Das wurde nicht verwendet, um die frühesten Computer herzustellen, aber jeder, der in den letzten fünfzig Jahren in der Branche tätig war, hätte es gewusst.

Ich weiß nicht, wann der genaue Begriff „Bitmaske“ auftauchte, aber die Operation selbst ist nur eine bitweise und eine grundlegende Anweisung für jeden Binärcomputer.

Davislor
quelle
+1 für "grundlegende Anweisung in jedem Binärcomputer". Die Leute müssen wissen, was Computer sind und warum sie so sind.