Bit maskeleri çok eski. İlki için bir referans bulamadım, ancak 8-bit işlemcilerin ortaya çıkmasıyla kesinlikle popülerdiler ve muhtemelen 4-bit işlemcilerde de kullanıldılar.
Bit maskelerinin ardındaki fikir, bitsel paralellikten yararlanmaktır. 8 bitlik bir bilgisayar, tek bir yerel sözcüğe (bir kayıt defterine sığması anlamına gelir) paketlenmişse aynı bit işlemi bir kerede 8 bite yapabilir.
İsim, etkileşim kurmak istemediğiniz alanları örtmek için genel bir yaklaşım olan maskelemeden gelir. Örneğin, bir duvarın alanlarını maskelemek için bu şablonu düşünün (şablon, resmi göstermek için boyadıktan sonra taşınmış)
Maskeler fotoğrafçılıkta da kullanılırlar; burada “şablon” yerine “kaçma” terimiyle geçerler. Bir alanı aydınlatmak için yazdırma sırasında ışığın bir kısmını gizlemek için maske kullanabilirsiniz.
Terim aynı zamanda doğrudan entegre devreleri yapmak için kullanılan teknik olan fotolitografide de kullanılır. Maske ışığın çip üzerine boyanmış fotorezist'e ulaşmasını önler ve bu daha sonra çip üzerindeki yüzleşme desenlerine yol açar. (Aşağıdaki resim, merak ediyorsanız , Intel 8080A işlemci maskelerinden biridir )
Aynı şekilde, bit maskelemede, çalışmak istediğiniz sözcüğün bölümlerini seçiyorsunuz, kalan kısımları maskeliyorsunuz. Aşağıdaki örnekte, girişi yalnızca 3., 4. ve 8. bitlerin göstereceği şekilde maskelemek için "ve" işlemini kullanıyorum. Gerisi "maskelenmiş" ve 0'lılar. Kullandığım maske 00110001
. Aşağıda #
0 ve .
temsil 1 ile gösteriyorum, çünkü bit maskesinin görsel görünümünü yukarıdaki fiziksel maskelerinkine benzer kılıyor ve maskelenmemiş bitleri gösteren "seçilen bitler" satırını gösteriyorum ( "seçilen bitler" aslında olan mantıklı bir işlem değil ... işlemci gerçekten girdi VE maskeden çıktıya bir adımda çıkıyor, ama görsel imgeyi netleştirdiğini düşünüyorum)
Input 10010111
Mask ##..###. (aka 00110001)
-----------------------
(selected) 01 1
Input AND Mask 00010001
Bahsettiğim gibi, bitmasking korkunç derecede eski çünkü işlemcinin verimliliğini önemli ölçüde arttırıyor. 4 bit işlemcide, işlemciyi 4x daha hızlı hale getirebilir. 8 bitlik bir işlemde, ya da 8 kat daha hızlı hale getirebilir (elbette, yalnızca bitsel işlemlerde).
Bunun için büyüleyici bir kullanım satranç motorları. Satranç tahtasında 64 kare var. Modern motorlar 64 bit tam sayıya sahiptir. Bu oldukça uygun bir şans, yani satranç motorları çoğu zaman bu güçten faydalanır. Parçaların yerlerini içeren sözde " bitboard " a sahipler . Bu, tek bir adımda tüm piyon hamlelerini aramak gibi her tür optimizasyonu yapmanızı sağlar.