Por que as máscaras de bits são chamadas de "máscaras" e a que finalidade elas servem?

79

Por que as "máscaras de bits" são chamadas assim?

Eu sei que eles são usados ​​principalmente para operações bit a bit e o uso de máscaras de bits é mais eficiente do que o uso de variáveis ​​separadas.

No entanto, minha pergunta é por que e quando foram inventadas as máscaras de bits? Eles foram usados ​​desde o início da computação? Existem outros tipos de "máscaras" além de máscaras de bits no domínio de TI?

yoyo_fun
fonte
14
A fotolitografia (usando a luz UV para gravar os recursos nas pastilhas de silício) usa uma "máscara fotográfica" para bloquear seletivamente a fonte de luz UV, para que as áreas expostas do silício tenham o padrão correto.
Levi
1
Além disso, vários
tipos
14
Já fez uma pintura e usou fita adesiva?
gnasher729
1
Outro tipo de máscaras: a detecção de colisões perfeitas em pixels tem como objetivo detectar sobreposições de máscaras 2D.
precisa saber é o seguinte

Respostas:

101

Uma máscara (da variedade facial) é algo que cobre algumas partes do seu rosto e permite que outras partes apareçam. A terminologia é usada por analogia na computação: uma máscara de bits encobre (filtra) alguns bits de um conjunto de bits e permite que outros passem.

Existem outros tipos de "máscaras" além de máscaras de bits no domínio de TI?

No topo da minha cabeça, as máscaras são usadas com frequência no processamento de imagens. É um conceito semelhante: você cria uma imagem em preto e branco que mostra a forma do que mascarar e do que deixar passar.

Mason Wheeler
fonte
33
Máscaras de sub-rede também são bastante comuns .
Matthieu M.
38
@MatthieuM. mas as máscaras de sub-rede também não são máscaras? Eles são usados ​​para filtrar o endereço de rede e o endereço do host.
yoyo_fun
22
@JenniferAnderson Uma imagem em preto e branco não é apenas uma máscara de pixel também?
Bergi 26/09/17
8
As máscaras físicas de imagem são usadas na produção de chips de silício, como parte de uma técnica que evoluiu da fotografia tradicional e da impressão de processos. pt.wikipedia.org/wiki/Fotolitografia
Jander 26/09
20
Mascarar também é um termo artístico para proteger uma área da mudança e permitir a mudança de outra. É frequentemente usado em pintura. É para isso que serve a fita adesiva: para que você não pinte o que não deseja pintar enquanto ainda pinta o que deseja pintar.
Nate Diamond
54

Uma máscara de bit é usada para mascarar alguns bits de um campo de bits enquanto expõe outros:

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

Isso foi usado antes da computação em eletrônica com portas lógicas (AND, OR ...) ou transistores ou em eletromecânica com relés.

mouviciel
fonte
6
"Uma máscara de bits é usada para mascarar alguns bits de um campo de bits enquanto expõe outros:" Eu nunca pensei nisso assim, mas faz muito sentido. Obrigado pela explicação :)
yoyo_fun
1
@mouvicel, você pode me indicar alguns links sobre como as máscaras de bits foram usadas em eletrônicos com portas lógicas. Qual era o objetivo, em que tipo de sistemas essas operações foram usadas e quando essa técnica começou?
precisa saber é o seguinte
4
para esclarecer: o valor inicial é ANDed com a máscara e, portanto, apenas os bits da máscara em "1" mantêm os bits originais do valor inicial (como em bits, "1 e 1 = 1" e "0 e 1 = 0" ) e os outros bits do valor inicial são definidos como 0 como (bit a bit) "0 e 0 = 0" e "1 e 0 = 0") (porque "And" diz isso "somente quando o primeiro bit E o segundo bit é definido como 1, é o resultado a 1. todos os outros resultam em 0 ". (OR significa: com o 1º bit 1 ou o 2º bit é 1, o resultado será 1. etc). veja en.wikipedia. org / wiki /…
Olivier Dulac 26/09
2
@JenniferAnderson: Além das máscaras de bits lógicas, as máscaras reais são usadas na eletrônica: uma máscara de solda é um estêncil (um pedaço de cartão) usado para depositar pasta de solda nos PCBs. Você coloca a máscara na PCB, usa um rodo para manchar a pasta de solda sobre a máscara, para que os orifícios da máscara deixem a pasta cobrir com precisão apenas as áreas que você precisa de pasta de solda ( youtube.com/watch?v=EqJN1CTCOQs ) . Na fabricação de chips, máscaras são usadas para construir ou gravar estruturas no silício. Este uso da palavra "máscara" vem da indústria gráfica.
slebetman 26/09/17
4
@JenniferAnderson: O uso da palavra "máscara" em inglês para significar cobrir algo é mais geral e provavelmente muito mais antigo. Por exemplo, em inglês, dizemos que o perfume pode ser usado para mascarar o mau cheiro.
slebetman 26/09/17
39

As máscaras de bits são terrivelmente antigas. Não consegui encontrar uma referência ao primeiro, mas eles certamente foram populares com o advento dos processadores de 8 bits e provavelmente também foram usados ​​em processadores de 4 bits.

A idéia por trás das máscaras de bits é aproveitar o paralelismo bit a bit. Um computador de 8 bits pode executar a mesma operação bit a bit de 8 bits de uma só vez se estiver compactado em uma única palavra nativa (o que significa que se encaixa em um registro).

O nome vem do mascaramento, que é uma abordagem geral para encobrir áreas com as quais você não deseja interagir. Por exemplo, considere este estêncil para mascarar áreas de uma parede (o estêncil foi movido após a pintura para mostrar o padrão)

Stencils

As máscaras também são usadas na fotografia, onde passam pelo termo "esquivar" em vez de "estêncil". Você pode usar uma máscara para obscurecer parte da luz durante a impressão para clarear uma área.

Máscaras de fotografia

O termo também é usado diretamente na fotolitografia, que é a técnica usada para fazer circuitos integrados. A máscara impede que a luz atinja o fotorresistente pintado no chip, o que cria padrões que mais tarde levam a padrões fascinantes no chip. (A imagem abaixo é uma das máscaras do processador Intel 8080A , se você estiver curioso)

Máscara de fotolitografia

Da mesma forma, no mascaramento de bits, você está selecionando as partes da palavra em que deseja operar, mascarando todo o resto dos bits. No exemplo abaixo, eu uso a operação "and" para mascarar a entrada, de modo que apenas o terceiro, o quarto e o oitavo bits sejam exibidos. O restante é "mascarado" para que sejam zeros. A máscara que eu uso é 00110001. Eu mostro abaixo com a #representação de 0 e a .representação de 1, porque isso torna a aparência visual da máscara de bits semelhante à das máscaras físicas acima, e mostro uma linha "bits selecionados" que mostra os bits da saída que não foram mascarados ( "bits selecionados" não é realmente uma operação lógica que acontece ... o processador realmente passa da entrada E da máscara para a saída em uma etapa, mas acho que esclarece a imagem visual)

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

Como mencionei, o bitmasking é terrivelmente antigo porque aumenta drasticamente a produtividade do processador. Em um processador de 4 bits, ele pode tornar o processador 4x mais rápido. Em um processo de 8 bits, ou pode torná-lo 8x mais rápido (somente em operações bit a bit, é claro).

Um uso fascinante para isso são os motores de xadrez. O tabuleiro de xadrez tem 64 quadrados. Os motores modernos têm números inteiros de 64 bits. Essa é uma sorte terrivelmente conveniente, de modo que os mecanismos de xadrez costumam aproveitá-la. Eles têm os chamados " painéis de bit " que contêm a localização das peças. Isso permite que você faça todos os tipos de otimizações, como procurar todos os movimentos de peões em uma única etapa.

Cort Ammon
fonte
33

Em seu uso mais geral em inglês, uma máscara é um dispositivo que oculta algo. A serigrafia é mencionada em outra resposta. A fita de pintura 'disfarça' algo para evitar que ela seja pintada, etc. A máscara de solda em uma placa de PC 'disfarça' a área a ser soldada da área a não ser soldada.

No caso de "mascaramento de bits", alguns bits são "ocultos" ou ignorados, para que outros que sejam de maior interesse possam ser mais facilmente manipulados ou simplesmente visualizados.

O mascaramento de bits não é apenas uma técnica "antiga", é uma operação primitiva na maioria das senão em todas as instruções da máquina, tanto quanto eu sei dos processadores mais antigos. Normalmente, isso está na forma de "use o padrão de bits neste registro para mascarar os bits em algum outro registro".

mickeyf
fonte
12
Eu não ouvi o termo "fita adesiva". Presumo que isso seja o que eu chamaria de "fita adesiva".
Thelem 26/09
12
@ thelem: O termo "fita adesiva", pelo menos nos EUA, refere-se a uma fita à base de tecido rasgada facilmente. Quando usado para pintura, produz uma borda um tanto "confusa". Como essa fita é usada para muitos outros propósitos, as fitas mais novas, melhores para a pintura (mas são mais caras e podem ser menos adequadas para outros fins), são chamadas de "fita do pintor".
supercat
2
@ Barmar Qualquer pessoa que tenha ido para a seção de pintura da loja de ferragens terá passado por eles.
precisa saber é o seguinte
5
Não sou pintor e sei que a fita adesiva e a fita adesiva são dois tipos muito diferentes de fita. Talvez apenas dizendo que "a fita adesiva é um tipo de fita usada por sua opacidade e fácil de escrever".
Valbaca
2
Tentei pesquisar no site da loja de ferragens gigante local (Austrália) e o primeiro hit de "fita adesiva" é um produto rotulado como "fita adesiva", então acho que é isso. ;) Boas diferenças terminológicas antigas entre regiões, suspeito. As pessoas são muito exigentes com o que conta como fita adesiva também, dependendo de onde moram.
precisa saber é o seguinte
10

Uma máscara de bit é semelhante à serigrafia . Você seleciona uma certa posição de bit para assumir o resultado:

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

Outro significado de máscara é uma página em uma interface gráfica do usuário na qual o usuário pode inserir dados.

Timothy Truckle
fonte
3

As máscaras de bit foram inventadas por alguns motivos:

  • Os registros de hardware foram mapeados para um conjunto contíguo de bits
  • O espaço da memória era muito limitado no passado não muito distante

Quando você observa como vê o padrão de bits que deseja ORing para ativar um pouco ou ANDing para desativar bits, parece uma máscara.

A máscara mais comum (baseada em máscaras de bits) é uma máscara de imagem (consulte o link que incluí no início).

Berin Loritsch
fonte
2
Um bitmap de valores de sinalizador ainda é uma maneira apropriada e mais eficiente de transmitir um conjunto de sinalizadores do que uma matriz boolou outra maneira de ter cada sinalizador em um byte separado. Isso torna possível fazer coisas com eficiência, em if (x & (FLAG_A | FLAG_B))vez de if (xflags[FLAG_A] || xflags[FLAG_B]). Especialmente se a máscara não for uma constante; poder passar uma máscara como um número inteiro é muito mais barato do que passar uma lista de sinalizadores a serem verificados. Portanto, mesmo que a memória e o cache fossem ilimitados, ainda seria muito mais eficiente usar bitsets e máscaras em alguns casos.
Peter Cordes
Nunca disse que ainda não era útil. Acabei de dizer que as origens têm raízes em lidar com registros de hardware e memória limitada. Eu ainda uso máscaras de bits quando elas são apropriadas para o problema.
Berin Loritsch 26/09
1
O que eu quis dizer foi que as origens são provavelmente partes iguais de memória e desempenho em computadores lentos antigos.
Peter Cordes
1
Acordado. Depois de programar um Commodore 64, você também precisava conhecer máscaras de bits para fazer coisas com gráficos, som, E / S serial e paralela. Os chips do controlador foram mapeados para endereços de memória com pinos mapeados para bits dentro desse endereço. Eu acho que você poderia argumentar se a máscara de bits influenciou a interface do hardware ou vice-versa. De qualquer forma, você precisava conhecê-los para obter qualquer coisa útil.
Berin Loritsch 26/09
@BerinLoritsch Obrigado pela resposta. Você poderia explicar o que você quer dizer com "Registros de hardware foram mapeados para um conjunto contíguo de bits"? Os registros de hardware não são acessados ​​independentemente um do outro?
yoyo_fun 27/09/17
3

Outro tipo de máscara física em TI é a fotomáscara litográfica usada para gravar apenas parte de uma pastilha de silício. Isso não foi usado para fabricar os primeiros computadores, mas qualquer pessoa que trabalhe no setor nos últimos cinquenta anos estaria ciente disso.

Não sei quando o termo exato "máscara de bits" apareceu, mas a operação em si é apenas um pouco e, que é uma instrução básica de todo computador binário.

Davislor
fonte
+1 para "instruções básicas em todos os computadores binários". As pessoas precisam saber o que são computadores e por que são assim.