Perchè le maschere di bit sono chiamate "maschere" e a che scopo servono?

79

Perché le "maschere bit" vengono chiamate così?

So che vengono principalmente utilizzati per operazioni bit a bit e l'utilizzo di maschere di bit è più efficiente rispetto all'utilizzo di variabili separate.

Tuttavia la mia domanda è perché e quando sono state inventate le maschere bit? Erano usati fin dal primo calcolo? Esistono altri tipi di "maschere" oltre alle maschere di bit nel dominio IT?

    
posta yoyo_fun 26.09.2017 - 14:10
fonte

7 risposte

101

Una maschera (della varietà facciale) è qualcosa che copre alcune parti del tuo viso e lascia trasparire altre parti. La terminologia viene utilizzata per analogia nel calcolo: una maschera di bit copre (filtra) alcuni bit in un bitset e consente ad altri di passare.

Are there any other type of "masks" besides bit masks in the IT domain?

Appena fuori dalla mia testa, le maschere vengono utilizzate frequentemente nell'elaborazione delle immagini. È un concetto simile: crei un'immagine in bianco e nero che mostra la forma di cosa mascherare e cosa lasciar passare.

    
risposta data 26.09.2017 - 14:16
fonte
55

Una maschera di bit viene utilizzata per mascherare alcuni bit di un campo di bit mentre espone altri:

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

Questo è stato usato prima del calcolo in elettronica con porte logiche (AND, OR ...) o transistor o in elettromeccanica con relè.

    
risposta data 26.09.2017 - 14:21
fonte
39

Le maschere di bit sono terribilmente vecchie. Non sono stato in grado di trovare un riferimento al primo, ma erano certamente popolari con l'avvento dei processori a 8 bit e probabilmente erano anche usati nei processori a 4 bit.

L'idea alla base delle maschere di bit è quella di sfruttare il parallelismo bit a bit. Un computer a 8 bit può eseguire la stessa operazione bit a bit a 8 bit in una volta se sono impacchettati in una singola parola nativa (il che significa che si inserisce in un registro).

Il nome deriva dal mascheramento, che è un approccio generale per coprire aree con le quali non vuoi interagire. Ad esempio, considera questo stencil per mascherare le aree di un muro (lo stencil è stato spostato dopo la verniciatura per mostrare il motivo)

Lemascherevengonoancheutilizzateinfotografia,dovevengonoutilizzateconiltermine"schivare" piuttosto che con "stencil". È possibile utilizzare una maschera per oscurare parte della luce durante la stampa per schiarire un'area.

Iltermineèancheusatodirettamentenellafotolitografia,cheèlatecnicausataperrealizzarecircuitiintegrati.Lamascheraimpedisceallalucediraggiungereilfotoresistdipintosulchip,ilchecreapatterncheinseguitoportanoaimodellisfaccettatisulchip.(L'immaginequisottoèunadellemaschereperil processore Intel 8080A , se tu " curioso)

Allostessomodo,nelmascheramentodeibit,siselezionanolepartidellaparolasucuisidesideraoperare,mascherandotuttiglialtribit.Nell'esempioseguente,utilizzol'operazione"e" per mascherare l'input in modo tale da mostrare solo il 3 °, il 4 ° e l'8 ° bit. Il resto è "mascherato" in modo che siano 0. La maschera che uso è 00110001 . Lo mostro sotto con # che rappresenta 0 e . che rappresenta 1 perché questo rende l'aspetto visivo della maschera di bit simile a quello delle maschere fisiche di cui sopra, e mostro una riga "bit selezionati" che mostra i bit dall'output che non sono stati mascherati ("i bit selezionati" non sono in realtà un'operazione logica che accade ... il processore passa davvero direttamente dall'ingresso e dalla maschera all'output in un solo passaggio, ma penso che chiarisca l'immagine visiva)

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

Come ho già detto, il bitmasking è terribilmente obsoleto perché aumenta notevolmente la produttività del processore. Su un processore a 4 bit, può rendere il processore 4x più veloce. In un processo a 8 bit, o può renderlo 8 volte più veloce (ovviamente solo sulle operazioni bit a bit).

Un uso affascinante per questo sono i motori di scacchi. La scacchiera ha 64 quadrati. I motori moderni hanno numeri interi a 64 bit. Questo è un po 'di fortuna terribilmente conveniente, quindi i motori di scacchi spesso lo sfruttano. Hanno cosiddetti " bitboard " che contengono le posizioni dei pezzi. Questo ti permette di fare ogni sorta di ottimizzazioni, come cercare tutti i movimenti pedone in un unico passaggio.

    
risposta data 26.09.2017 - 19:08
fonte
34

Nel suo uso più generale in inglese, una maschera è un dispositivo che nasconde qualcosa. La serigrafia è menzionata in un'altra risposta. Il nastro di pittura "maschera" qualcosa per evitare di dipingerci sopra, ecc. La maschera di saldatura su una scheda PC "maschera" l'area da saldare dall'area da non saldare.

Nel caso del "mascheramento del bit", alcuni bit sono "nascosti" o ignorati in modo che altri più interessanti possano essere più facilmente manipolati o semplicemente visualizzati.

Il mascheramento dei bit non è semplicemente una tecnica "vecchia", è un'operazione primitiva nella maggior parte se non tutte le istruzioni della macchina, per quanto ne so dai primi processori. Tipicamente questo è nella forma di "usa lo schema di bit in questo registro per mascherare i bit in qualche altro registro".

    
risposta data 26.09.2017 - 14:32
fonte
10

Una maschera bit è simile alla stampa dello schermo . Seleziona una certa posizione di bit da prendere nel risultato:

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

Un altro significato di maschera è una pagina in un'interfaccia grafica dove l'utente può inserire dati.

    
risposta data 26.09.2017 - 14:24
fonte
3

Le maschere di bit sono state inventate per un paio di motivi:

  • I registri hardware sono stati mappati su un insieme contiguo di bit
  • Lo spazio di memoria era molto limitato nel passato non troppo remoto

Quando guardi come vedi il pattern di bit su cui stai operando ORing per accendere un bit o ANDing per disattivare i bit, sembra una maschera.

La maschera più comune (basata su maschere bit) è una maschera immagine (vedi il link che ho incluso all'inizio).

    
risposta data 26.09.2017 - 14:18
fonte
3

Un altro tipo di maschera fisica nell'IT è il fotomaschera litografico utilizzato per incidere solo parte di un wafer di silicio. Questo non è stato usato per fabbricare i primi computer, ma chiunque lavorasse nel settore negli ultimi cinquanta anni ne sarebbe stato consapevole.

Non so quando è apparso il termine esatto "maschera di bit", ma l'operazione stessa è solo a bit e, che è un'istruzione di base di ogni computer binario.

    
risposta data 26.09.2017 - 16:35
fonte

Leggi altre domande sui tag