Mengapa "topeng bit" disebut seperti ini?
Saya tahu bahwa mereka terutama digunakan untuk operasi bitwise dan penggunaan bit mask lebih efisien daripada penggunaan variabel yang terpisah.
Namun pertanyaan saya adalah mengapa dan kapan bit mask ditemukan? Apakah mereka digunakan sejak awal komputasi? Apakah ada jenis "topeng" selain topeng bit di domain TI?
Jawaban:
Masker (dari jenis wajah) adalah sesuatu yang menutupi beberapa bagian wajah Anda dan membiarkan bagian lain terlihat. Terminologi digunakan oleh analogi dalam komputasi: bitmask menutupi (menyaring) beberapa bit dalam bitset dan memungkinkan orang lain untuk lulus.
Tak jauh dari kepala saya, topeng sering digunakan dalam pemrosesan gambar. Ini adalah konsep yang serupa: Anda membuat gambar hitam-putih yang menunjukkan bentuk apa yang harus ditutup dan apa yang harus dilewati.
sumber
Topeng bit digunakan untuk menutupi beberapa bit dari bidang bit sambil mengekspos yang lain:
Ini telah digunakan sebelum menghitung dalam elektronik dengan gerbang logis (DAN, ATAU ...) atau transistor atau dalam elektromekanik dengan relay.
sumber
Bitmasks sudah sangat tua. Saya belum dapat menemukan referensi ke yang pertama, tetapi mereka pasti populer dengan munculnya prosesor 8-bit, dan kemungkinan juga digunakan dalam prosesor 4-bit.
Gagasan di balik bitmasks adalah untuk memanfaatkan paralelisme bitwise. Komputer 8 bit dapat melakukan operasi bitwise yang sama hingga 8 bit sekaligus jika mereka dikemas ke dalam satu kata asli (yang artinya cocok dalam register).
Nama berasal dari masking, yang merupakan pendekatan umum untuk menutupi area yang tidak ingin berinteraksi dengan Anda. Sebagai contoh, pertimbangkan stensil ini untuk menutupi area dinding (stensil telah dipindahkan setelah lukisan untuk menunjukkan polanya)
Masker juga digunakan dalam fotografi, di mana mereka pergi dengan istilah "menghindar" daripada "stensil." Anda dapat menggunakan topeng untuk mengaburkan sebagian cahaya selama pencetakan untuk meringankan suatu area.
Istilah ini juga digunakan secara langsung dalam fotolitografi, yang merupakan teknik yang digunakan untuk membuat sirkuit terpadu. Topeng mencegah cahaya dari mencapai photoresist dicat pada chip, yang menciptakan pola yang kemudian mengarah pada pola facinating pada chip. (Gambar di bawah ini adalah salah satu topeng untuk prosesor Intel 8080A , jika Anda penasaran)
Demikian juga, dalam penyembunyian bit, Anda memilih bagian dari kata yang ingin Anda operasikan, menutup semua sisa bit. Dalam contoh di bawah ini, saya menggunakan operasi "dan" untuk menutupi input sehingga hanya bit 3, 4, dan 8 yang terlihat. Sisanya "bertopeng" sehingga mereka adalah 0's. Topeng yang saya gunakan adalah
00110001
. Saya menunjukkannya di bawah ini dengan#
mewakili 0 dan.
mewakili 1 karena itu membuat tampilan visual bitmask mirip dengan topeng fisik di atas, dan saya menunjukkan baris "bit terpilih" yang menunjukkan bit dari output yang tidak ditutup ( "bit yang dipilih" sebenarnya bukan operasi logis yang terjadi ... prosesor benar-benar berjalan dari input DAN mask ke output dalam satu langkah, tapi saya pikir ini memperjelas gambar visual)Seperti yang saya sebutkan, bitmasking sudah sangat tua karena meningkatkan produktivitas prosesor secara dramatis. Pada prosesor 4 bit, itu dapat membuat prosesor 4x lebih cepat. Pada proses 8 bit, atau dapat membuatnya 8x lebih cepat (pada operasi bitwise saja, tentu saja).
Salah satu penggunaan yang menarik untuk ini adalah mesin catur. Papan Catur memiliki 64 kotak. Mesin modern memiliki bilangan bulat 64 bit. Ini adalah keberuntungan yang sangat nyaman, sehingga mesin catur sering memanfaatkannya. Mereka memiliki apa yang disebut " bitboard " yang berisi lokasi potongan-potongan. Ini memungkinkan Anda melakukan segala macam optimasi, seperti mencari semua gerakan gadai dalam satu langkah.
sumber
Dalam penggunaannya yang paling umum dalam bahasa Inggris, topeng adalah perangkat yang menyembunyikan sesuatu. Sablon disebutkan dalam jawaban lain. Lukisan tape 'topeng' sesuatu untuk menghindari cat di atasnya, dll. Solder Mask pada papan PC 'menutupi' area yang akan disolder dari area yang tidak disolder.
Dalam kasus "bit masking", beberapa bit 'disembunyikan' atau diabaikan sehingga yang lain yang lebih menarik dapat lebih mudah dimanipulasi atau dilihat.
Bit masking bukan hanya teknik 'lama', itu adalah operasi primitif di sebagian besar atau tidak semua instruksi mesin, sejauh yang saya tahu dari prosesor paling awal. Biasanya ini dalam bentuk "gunakan pola bit dalam register ini untuk menutupi bit dalam register lain."
sumber
Sebuah sedikit topeng mirip dengan sablon . Anda memilih beberapa posisi bit tertentu untuk diambil alih ke dalam hasil:
source value = 42 -> 00101010b
mask = 51 -> 00110011b
result 42&51 = 00100010b -> 34
Arti lain dari topeng adalah halaman dalam antarmuka pengguna grafis di mana pengguna dapat memasukkan data.
sumber
Topeng bit diciptakan karena beberapa alasan:
Ketika Anda melihat bagaimana Anda melihat pola bit yang Anda ATAU untuk menghidupkan sedikit atau DAN untuk mematikan bit, itu terlihat seperti topeng.
Topeng yang paling umum (berdasarkan bit mask) adalah Image mask (lihat tautan yang saya sertakan di awal).
sumber
bool
atau beberapa cara lain untuk memiliki setiap flag dalam byte yang terpisah. Itu memungkinkan untuk melakukan hal-hal seperti secara efisienif (x & (FLAG_A | FLAG_B))
daripadaif (xflags[FLAG_A] || xflags[FLAG_B])
. Terutama jika topengnya tidak konstan; bisa melewati topeng sebagai bilangan bulat jauh lebih murah daripada melewati daftar bendera yang akan diperiksa. Jadi bahkan jika memori dan cache tidak terbatas, masih akan jauh lebih efisien untuk menggunakan bitet dan mask dalam beberapa kasus.Jenis lain dari topeng fisik dalam TI adalah photomask litograf yang digunakan untuk menghilangkan hanya sebagian dari wafer silikon. Itu tidak digunakan untuk memproduksi komputer paling awal, tetapi siapa pun yang bekerja di industri ini dalam lima puluh tahun terakhir akan menyadarinya.
Saya tidak tahu kapan istilah tepat "bitmask" muncul, tetapi operasi itu sendiri hanya sedikit dan, yang merupakan instruksi dasar dari setiap komputer biner.
sumber