เหตุใดบิตมาสก์จึงถูกเรียกว่า“ มาสก์” และมีจุดประสงค์อะไร


79

เหตุใดจึงเรียกว่า "มาสก์บิต" แบบนี้

ฉันรู้ว่าส่วนใหญ่จะใช้สำหรับการดำเนินงานระดับบิตและการใช้บิตมาสก์นั้นมีประสิทธิภาพมากกว่าการใช้ตัวแปรแยกต่างหาก

อย่างไรก็ตามคำถามของฉันคือทำไมและเมื่อมาสก์บิตถูกคิดค้นขึ้นมาเมื่อใด พวกเขาใช้งานตั้งแต่คำนวณครั้งแรกหรือไม่ มี "หน้ากาก" ประเภทอื่นนอกเหนือจากมาสก์บิตในโดเมนไอทีหรือไม่


14
Photolithography (การใช้แสง UV เพื่อกัดคุณสมบัติลงในซิลิคอนเวเฟอร์) ใช้ "photomask" เพื่อเลือกปิดกั้นแหล่งกำเนิดแสง UV เพื่อให้บริเวณที่สัมผัสของซิลิคอนมีรูปแบบที่ถูกต้อง
เลวี


1
นอกจากนี้ยังมีสิ่งต่าง ๆ ของen.wikipedia.org/wiki/Mask_(disambiguation)
OrangeDog

14
เคยทาสีและใช้เทปกาวหรือไม่?
gnasher729

1
อีกประเภทของมาสก์: การตรวจจับการชนที่สมบูรณ์แบบของพิกเซลนั้นเป็นเพียงการตรวจจับมาสก์ 2D เท่านั้น
aluriak

คำตอบ:


101

หน้ากาก (ของความหลากหลายของใบหน้า) เป็นสิ่งที่ปกปิดใบหน้าบางส่วนของคุณและให้ส่วนอื่นแสดงผ่าน คำศัพท์ที่ใช้โดยการเปรียบเทียบในการคำนวณ: bitmask ครอบคลุม (กรองออก) บางบิตในบิตเซ็ตและช่วยให้ผู้อื่นผ่าน

มี "หน้ากาก" ประเภทอื่นนอกเหนือจากมาสก์บิตในโดเมนไอทีหรือไม่

เพียงปิดส่วนบนของศีรษะมาสก์จะถูกใช้บ่อยในการประมวลผลภาพ มันเป็นแนวคิดที่คล้ายกัน: คุณสร้างภาพขาวดำที่แสดงรูปร่างของสิ่งที่ปิดบังและสิ่งที่ต้องทำ


33
มาสก์ซับเน็ตนอกจากนี้ยังรักกัน
Matthieu M.

38
@MatthieuM แต่ซับมาสก์ไม่ได้เป็น bitmasks ด้วยหรือ พวกเขาจะใช้ในการกรองที่อยู่เครือข่ายและที่อยู่โฮสต์
yoyo_fun

22
@JenniferAnderson ภาพขาวดำก็ไม่ใช่แค่พิกเซล bitmask ด้วยใช่ไหม
Bergi

8
มาสก์ภาพทางกายภาพนั้นใช้ในการผลิตชิพซิลิกอนซึ่งเป็นส่วนหนึ่งของเทคนิคที่วิวัฒนาการมาจากการถ่ายภาพแบบดั้งเดิมและการพิมพ์ในกระบวนการ en.wikipedia.org/wiki/Photolithography
Jander

20
การกำบังยังเป็นคำศัพท์ทางศิลปะในการปกป้องพื้นที่หนึ่งจากการเปลี่ยนแปลงในขณะที่ยอมให้มีการเปลี่ยนแปลงได้ มันมักจะใช้ในการวาดภาพ นั่นคือสิ่งที่ Masking Tape ใช้สำหรับ: ดังนั้นคุณไม่ควรทาสีในสิ่งที่คุณไม่ต้องการทาสีในขณะที่ยังคงทาสีในสิ่งที่คุณต้องการทาสี
Nate Diamond

54

บิตมาสก์ถูกใช้เพื่อปกปิดบิตของฟิลด์บิตในขณะที่เปิดเผยข้อมูลอื่น ๆ :

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

สิ่งนี้ถูกนำมาใช้ก่อนการคำนวณในอุปกรณ์อิเล็กทรอนิกส์ที่มีลอจิกเกต (AND, OR ... ) หรือทรานซิสเตอร์หรือในอิเล็กทรอนิคส์พร้อมรีเลย์


6
"หน้ากากขนาดเล็กใช้เพื่อปกปิดส่วนหนึ่งของบิตขณะที่เปิดเผยคนอื่น:" ฉันไม่เคยคิดมาก่อนว่ามันจะเป็นแบบนี้ แต่มันก็สมเหตุสมผลดี ขอบคุณสำหรับคำอธิบาย :)
yoyo_fun

1
@mouvicel คุณช่วยชี้ให้ฉันดูลิงก์บางส่วนเกี่ยวกับวิธีใช้มาสก์บิตในอุปกรณ์อิเล็กทรอนิกส์ที่มีประตูตรรกะ จุดประสงค์อะไรระบบปฏิบัติการแบบนี้ที่ใช้ในและเริ่มเทคนิคนี้เมื่อไหร่?
yoyo_fun

4
เพื่อชี้แจง: ค่าเริ่มต้นคือ ANDed กับรูปแบบและดังนั้นเพียงหน้ากากบิตที่ "1" เก็บบิตเดิมจากค่าเริ่มต้น (เช่น bitwise "1 และ 1 = 1" และ "0 และ 1 = 0" ) และบิตอื่น ๆ ของค่าเริ่มต้นถูกตั้งค่าเป็น 0 เป็น (bitwise) "0 และ 0 = 0" และ "1 และ 0 = 0") (เพราะ "และ" บอกว่า "เฉพาะเมื่อบิตแรกและที่ 2 บิตถูกตั้งค่าเป็น 1 คือผลลัพธ์คือ 1. ผลลัพธ์อื่น ๆ ทั้งหมดเป็น 0 "(หรือหมายถึง: ด้วยบิตแรกที่ 1 หรือบิตที่ 2 คือ 1 จะได้ผลลัพธ์เป็น 1 ฯลฯ ) ดูen.wikipedia org / wiki / …
Olivier Dulac

2
@ เจนนิเฟอร์แอนเดอร์สัน: นอกเหนือจากมาสก์บิตตรรกะมาสก์ที่เกิดขึ้นจริงที่ใช้ในอุปกรณ์อิเล็กทรอนิกส์: หน้ากากประสานเป็นลายฉลุ (ชิ้นส่วนของการ์ด) ที่ใช้ในการฝากวางประสานลงบน PCB คุณวางแผ่นมาสก์ลงบน PCB ใช้ไม้กวาดหุ้มยางเพื่อทำการบัดกรีประสานเหนือหน้ากากจากนั้นรูที่อยู่ในหน้ากากจะช่วยให้การแปะแผ่นผ่านไปอย่างถูกต้องครอบคลุมเฉพาะพื้นที่ที่คุณต้องการวางประสาน ( youtube.com/watch?v=EqJN1CTCOQs ) . ในรูปแบบการผลิตชิปนั้นใช้เพื่อสร้างหรือสลักโครงสร้างลงบนซิลิกอน การใช้คำว่า "หน้ากาก" นี้มาจากอุตสาหกรรมการพิมพ์
slebetman

4
@JenniferAnderson: การใช้คำว่า "mask" ในภาษาอังกฤษหมายถึงการครอบคลุมบางสิ่งที่เป็นเรื่องทั่วไปและอาจแก่กว่ามาก ตัวอย่างเช่นในภาษาอังกฤษเราบอกว่าน้ำหอมสามารถใช้เพื่อปกปิดกลิ่นเหม็นได้
slebetman

39

Bitmasks นั้นเก่ามาก ฉันไม่สามารถค้นหาการอ้างอิงถึงคนแรกได้ แต่พวกเขาได้รับความนิยมอย่างมากจากการถือกำเนิดของตัวประมวลผล 8 บิตและน่าจะใช้ในตัวประมวลผล 4 บิต

แนวคิดเบื้องหลัง bitmasks คือการใช้ประโยชน์จากความเท่าเทียมกันในระดับบิต คอมพิวเตอร์ 8 บิตสามารถทำการดำเนินการในระดับบิตเดียวกันกับ 8 บิตในครั้งเดียวหากพวกเขาบรรจุเป็นคำภาษาเดียว (ซึ่งหมายความว่ามันเหมาะกับการลงทะเบียน)

ชื่อนี้มาจากการปิดบังซึ่งเป็นวิธีการทั่วไปในการครอบคลุมพื้นที่ที่คุณไม่ต้องการโต้ตอบด้วย ตัวอย่างเช่นลองใช้ลายฉลุนี้เพื่อปิดพื้นที่ของกำแพง (ลายฉลุถูกย้ายหลังจากการทาสีเพื่อแสดงลวดลาย)

ลายฉลุ

มาสก์ยังใช้ในการถ่ายภาพโดยใช้คำว่า "หลบ" แทน "ลายฉลุ" คุณสามารถใช้หน้ากากปิดบังแสงบางส่วนในระหว่างการพิมพ์เพื่อทำให้พื้นที่สว่างขึ้น

หน้ากากถ่ายภาพ

คำนี้ยังใช้โดยตรงใน photolithography ซึ่งเป็นเทคนิคที่ใช้ในการทำวงจรรวม หน้ากากป้องกันแสงจากการไปถึงช่างภาพที่ทาสีบนชิปซึ่งสร้างรูปแบบที่จะนำไปสู่รูปแบบ facinating บนชิปในภายหลัง (ภาพด้านล่างเป็นหนึ่งในหน้ากากสำหรับโปรเซสเซอร์ Intel 8080Aหากคุณสงสัย)

หน้ากาก photolithography

ในทำนองเดียวกันในการปิดบังบิตคุณกำลังเลือกบางส่วนของคำที่คุณต้องการเปิดใช้งานปิดบังส่วนที่เหลือทั้งหมดของบิต ในตัวอย่างด้านล่างฉันใช้การดำเนินการ "และ" เพื่อปิดบังอินพุตที่แสดงเฉพาะบิตที่ 3, 4 และ 8 ส่วนที่เหลือเป็น "หน้ากาก" เพื่อให้เป็น 0 00110001หน้ากากที่ผมใช้เป็น ฉันแสดงด้านล่างด้วยการ#แทนค่า 0 และ.แทน 1 เพราะนั่นทำให้ลักษณะที่ปรากฏของ bitmask คล้ายกับรูปแบบทางกายภาพด้านบนและฉันแสดงแถว "บิตที่เลือก" ซึ่งแสดงบิตจากผลลัพธ์ที่ไม่ถูกปิดบัง ( "bits ที่เลือก" ไม่ใช่การดำเนินการทางตรรกะที่เกิดขึ้นจริง ... โปรเซสเซอร์ไปจากอินพุตและมาสก์เพื่อเอาท์พุทในขั้นตอนเดียว แต่ฉันคิดว่ามันทำให้ภาพที่แสดงชัดเจนขึ้น)

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

อย่างที่ฉันได้กล่าวไปแล้วการบิตบิทนั้นเก่ามากเพราะมันช่วยเพิ่มประสิทธิภาพของโปรเซสเซอร์อย่างมาก สำหรับโปรเซสเซอร์ 4 บิตสามารถทำให้โปรเซสเซอร์เร็วขึ้น 4x ในกระบวนการ 8 บิตหรือสามารถทำให้เร็วขึ้น 8 เท่า (แน่นอนว่าในการทำงานระดับบิตเดียว)

สิ่งหนึ่งที่น่าสนใจสำหรับเรื่องนี้คือกลไกหมากรุก กระดานหมากรุกมี 64 ช่อง เครื่องมือที่ทันสมัยมีจำนวนเต็ม 64 บิต นี่เป็นโชคที่แสนสะดวกสบายมากดังนั้นเครื่องมือหมากรุกมักจะใช้ประโยชน์จากมัน พวกเขามี " bitboards " ซึ่งมีที่ตั้งของชิ้นส่วน สิ่งนี้ช่วยให้คุณสามารถปรับแต่งได้ทุกประเภทเช่นการค้นหาการจำนำทั้งหมดในขั้นตอนเดียว


33

ในการใช้งานทั่วไปเป็นภาษาอังกฤษหน้ากากเป็นอุปกรณ์ที่ซ่อนอะไรบางอย่างไว้ การพิมพ์หน้าจอถูกกล่าวถึงในคำตอบอื่น การทาสีเทป 'ปิดมาสก์' เพื่อหลีกเลี่ยงการพ่นสีเป็นต้น Solder Mask บนบอร์ด PC 'ปิดการใช้งาน' บริเวณที่จะทำการบัดกรีจากบริเวณที่ไม่ได้ทำการบัดกรี

ในกรณีของ "การปิดบังบิต" บางบิตเป็น 'ซ่อน' หรือถูกละเว้นเพื่อให้คนอื่น ๆ ที่สนใจสามารถจัดการได้ง่ายขึ้นหรือดูได้ง่ายขึ้น

การปิดบังบิตไม่ได้เป็นเพียงเทคนิค 'เก่า' แต่เป็นการดำเนินการดั้งเดิมในที่สุดหากไม่ใช่คำสั่งเครื่องทั้งหมดเท่าที่ฉันรู้จากโปรเซสเซอร์รุ่นแรกสุด โดยทั่วไปจะอยู่ในรูปแบบของ "ใช้รูปแบบบิตในการลงทะเบียนนี้เพื่อปกปิดบิตในการลงทะเบียนอื่น ๆ "


12
ฉันไม่ได้ยินคำว่า "Painting tape" ฉันถือว่านี่คือสิ่งที่ฉันเรียกว่า "masking tape"
thelem

12
@thelem: คำว่า "masking tape" อย่างน้อยในสหรัฐอเมริกาหมายถึงเทปผ้าที่ฉีกขาดได้ง่าย เมื่อใช้สำหรับการทาสีมันจะสร้างขอบที่ "คลุมเครือ" เนื่องจากเทปดังกล่าวใช้เพื่อวัตถุประสงค์อื่น ๆ อีกมากมายเทปรุ่นใหม่ที่ดีกว่าสำหรับการทาสี (แต่มีราคาแพงกว่าและอาจไม่เหมาะสำหรับวัตถุประสงค์อื่น) เรียกว่า "เทปของจิตรกร"
supercat

2
@Barmar ทุกคนที่ไปส่วนภาพวาดของร้านฮาร์ดแวร์จะได้ข้ามพวกเขา
chrylis -on strike-

5
ฉันไม่ใช่จิตรกรและฉันรู้ว่าเทปของนักวาดและเทปปิดบังเป็นเทปสองชนิดที่แตกต่างกันมาก บางทีแค่พูดว่า "เทปกาวเป็นเทปชนิดหนึ่งที่ใช้สำหรับความทึบและง่ายต่อการเขียน"
valbaca

2
ฉันลองค้นหาเว็บไซต์ของร้านฮาร์ดแวร์ยักษ์ใหญ่ในออสเตรเลีย (ออสเตรเลีย) และการตีครั้งแรกสำหรับ "จิตรกรรมเทป" เป็นผลิตภัณฑ์ที่มีป้ายกำกับว่า "เทปกาว" ดังนั้นฉันเดาว่าเป็นเช่นนั้น ;) ความแตกต่างของคำศัพท์เก่า ๆ ที่ดีระหว่างภูมิภาคฉันสงสัย ผู้คนต่างก็จู้จี้จุกจิกเกี่ยวกับสิ่งที่นับว่าเป็นเทป gaffer เช่นกันขึ้นอยู่กับว่าพวกเขาอยู่ที่ไหน
Trejkaz

10

หน้ากากบิตจะคล้ายกับการพิมพ์หน้าจอ คุณเลือกตำแหน่งบิตบางอย่างที่จะเข้าสู่ผลลัพธ์:

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

อีกความหมายของหน้ากากคือหน้าในส่วนติดต่อผู้ใช้แบบกราฟิกที่ผู้ใช้สามารถป้อนข้อมูล


3

บิตมาสก์ถูกประดิษฐ์ขึ้นด้วยเหตุผลสองประการ:

  • การลงทะเบียนฮาร์ดแวร์ถูกแมปกับชุดบิตต่อเนื่อง
  • พื้นที่หน่วยความจำมี จำกัด มากในอดีตที่ไม่ไกลเกินไป

เมื่อคุณดูวิธีที่คุณเห็นรูปแบบของบิตที่คุณกำลัง ORing เพื่อเปิดบิตหรือ ANDing เพื่อปิดบิตดูเหมือนว่ามาสก์

มาสก์ที่พบบ่อยที่สุด (อิงกับมาสก์บิต) คือมาสก์ของรูปภาพ (ดูลิงก์ที่ฉันรวมไว้ในตอนต้น)


2
บิตแมปของค่าสถานะยังคงเป็นวิธีที่เหมาะสมและมีประสิทธิภาพมากขึ้นในการผ่านรอบชุดของธงกว่าอาร์เรย์boolหรือวิธีอื่นของการมีค่าสถานะแต่ละรายการในไบต์แยกต่างหาก ที่ทำให้มันเป็นไปได้อย่างมีประสิทธิภาพทำสิ่งที่ชอบแทนif (x & (FLAG_A | FLAG_B)) if (xflags[FLAG_A] || xflags[FLAG_B])โดยเฉพาะอย่างยิ่งถ้าหน้ากากนั้นไม่คงที่ ความสามารถในการส่งผ่านหน้ากากเป็นจำนวนเต็มเป็นมากราคาถูกกว่าผ่านรายการของธงที่จะได้รับการตรวจสอบ ดังนั้นแม้ว่าหน่วยความจำและแคชจะไม่ จำกัด แต่ก็ยังมีประสิทธิภาพมากกว่าในการใช้บิตเซ็ตและมาสก์ในบางกรณี
Peter Cordes

ไม่เคยบอกว่ามันยังไม่มีประโยชน์ เพิ่งกล่าวว่าต้นกำเนิดมีรากฐานในการจัดการกับการลงทะเบียนฮาร์ดแวร์และหน่วยความจำที่ จำกัด ฉันยังคงใช้รูปแบบบิตเมื่อพวกเขาเหมาะสมกับปัญหา
Berin Loritsch

1
สิ่งที่ฉันหมายถึงคือต้นกำเนิดอาจเป็นส่วนหน่วยความจำและประสิทธิภาพเท่ากันบนคอมพิวเตอร์ที่ช้า
Peter Cordes

1
ตกลง เมื่อตั้งโปรแกรม Commodore 64 คุณจำเป็นต้องรู้บิตมาสก์เพื่อทำสิ่งต่างๆด้วยกราฟิกเสียงอนุกรมและ I / O แบบขนาน ชิปคอนโทรลเลอร์ถูกแมปไปยังที่อยู่หน่วยความจำด้วยหมุดที่แมปกับบิตภายในที่อยู่นั้น ฉันเดาว่าคุณสามารถโต้แย้งได้ว่า bit mask มีอิทธิพลต่อส่วนต่อประสานฮาร์ดแวร์หรือในทางกลับกัน ไม่ว่าจะด้วยวิธีใดคุณต้องรู้จักพวกเขาเพื่อให้ได้สิ่งที่มีประโยชน์
Berin Loritsch

@BerinLoritsch ขอบคุณสำหรับคำตอบ คุณช่วยอธิบายว่า "การลงทะเบียนฮาร์ดแวร์ถูกแมปกับชุดบิตต่อเนื่อง" ได้อย่างไร การลงทะเบียนฮาร์ดแวร์ไม่สามารถเข้าถึงซึ่งกันและกันได้หรือไม่
yoyo_fun

3

รูปแบบทางกายภาพอีกประเภทหนึ่งใน IT คือ photomask พิมพ์หินที่ใช้ในการกัดเพียงส่วนหนึ่งของแผ่นเวเฟอร์ซิลิคอน นั่นไม่ได้ใช้ในการผลิตคอมพิวเตอร์เครื่องแรกสุด แต่ทุกคนที่ทำงานในอุตสาหกรรมในช่วงห้าสิบปีที่ผ่านมาจะได้รับรู้ถึงมัน

ฉันไม่รู้ว่าเมื่อไหร่ที่คำว่า“ bitmask” ปรากฏขึ้นอย่างแน่นอน แต่การดำเนินการนั้นเป็นเพียงบิตและซึ่งเป็นคำสั่งพื้นฐานของคอมพิวเตอร์ไบนารีทุกเครื่อง


+1 สำหรับ "คำสั่งพื้นฐานในคอมพิวเตอร์ไบนารีทุกเครื่อง" ผู้คนจำเป็นต้องรู้ว่าคอมพิวเตอร์คืออะไรและทำไมจึงเป็นเช่นนั้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.