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?
terminology
efficiency
low-level
bitwise-operators
yoyo_fun
fonte
fonte
Respostas:
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.
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.
fonte
Uma máscara de bit é usada para mascarar alguns bits de um campo de bits enquanto expõe outros:
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.
fonte
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)
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.
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)
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)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.
fonte
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".
fonte
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.
fonte
As máscaras de bit foram inventadas por alguns motivos:
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).
fonte
bool
ou outra maneira de ter cada sinalizador em um byte separado. Isso torna possível fazer coisas com eficiência, emif (x & (FLAG_A | FLAG_B))
vez deif (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.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.
fonte