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"?
Antworten:
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.
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.
quelle
Eine Bitmaske wird verwendet, um einige Bits eines Bitfelds zu maskieren, während andere belichtet werden:
Dies wurde vor dem Rechnen in der Elektronik mit logischen Gattern (AND, OR ...) oder Transistoren oder in der Elektromechanik mit Relais verwendet.
quelle
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).
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.
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)
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.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.
quelle
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".
quelle
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.
quelle
Bitmasken wurden aus mehreren Gründen erfunden:
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).
quelle
bool
oder 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))
anstattif (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.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.
quelle