อ่าน 9 นาที
คำสั่งการจัดการบิต
คำสั่งการจัดการบิตคือคำสั่งที่ดำเนิน การ จัดการบิตในฮาร์ดแวร์ แทนที่จะต้องใช้คำสั่งหลายคำสั่งสำหรับการดำเนินการเหล่านั้นดังที่แสดงด้วยตัวอย่างในซอฟต์แวร์
คำสั่งการจัดการบิต
| รหัสเครื่อง |
|---|
| แนวคิดทั่วไป |
| คำแนะนำ |
คำสั่งการจัดการบิตคือคำสั่งที่ดำเนิน การ จัดการบิตในฮาร์ดแวร์ แทนที่จะต้องใช้คำสั่งหลายคำสั่งสำหรับการดำเนินการเหล่านั้นดังที่แสดงด้วยตัวอย่างในซอฟต์แวร์ [ 1 ] สถาปัตยกรรมชั้นนำและสถาปัตยกรรมดั้งเดิมหลายแห่งมีคำสั่งการจัดการบิต ได้แก่ARM , WDC 65C02 , TX-2และPower ISA [ 2 ]
การจัดการบิตมักถูกแบ่งออกเป็นชุดย่อย เนื่องจากคำสั่งแต่ละคำสั่งอาจมีค่าใช้จ่ายสูงในการนำไปใช้ในฮาร์ดแวร์เมื่อแอปพลิเคชันเป้าหมายไม่มีเหตุผลรองรับ ในทางกลับกัน หากมีเหตุผลรองรับ ประสิทธิภาพอาจลดลงหากไม่รวมคำสั่งนั้น การวิเคราะห์ต้นทุนและผลประโยชน์เป็นงานที่ซับซ้อน ความพยายามที่ครอบคลุมที่สุดครั้งหนึ่งในการจัดการบิตคือความร่วมมือที่นำโดย Clare Wolfe ซึ่งให้เหตุผล กรณีการใช้งาน โค้ด C การพิสูจน์ และ Verilog สำหรับคำสั่ง RISC-V ที่เสนอแต่ละคำสั่ง[ 3 ] [ 4 ]
ตัวอย่างเชิงปฏิบัติที่สำคัญ ได้แก่การควบคุมบิตของGPIO โดยใช้ คอนโทรลเลอร์แบบฝังตัวราคาประหยัดเช่นWDC 65C02 , 8051และAtmel PICเนื่องจากความเร็วสัญญาณนาฬิกาของ CPU เหล่านี้ค่อนข้างต่ำ หากไม่มีฟังก์ชันการตั้งค่า/ล้าง/ทดสอบบิต CPU ราคาประหยัดเหล่านี้ก็จะไม่เร็วพอสำหรับแอปพลิเคชันเป้าหมาย
การจัดการบิตฮาร์ดแวร์
สถาปัตยกรรมทั้งหมดด้านล่างมีชุดคำสั่งย่อยและกลุ่มคำสั่งที่การจัดการบิตนั้นมีให้ในฮาร์ดแวร์ จากรายการจะเห็นได้ว่าDSPและไมโครคอนโทรลเลอร์แบบฝังตัว มีคำสั่งทดสอบ/ตั้งค่า/ล้างบิตอย่างน้อยที่สุด แต่ยังมีคำสั่งที่ครอบคลุมมากกว่านั้น เช่นการนับศูนย์นำหน้า , Popcount , การคำนวณ เลขคณิต ฟิลด์กาโลอิส , เลขฐานสิบแบบเข้ารหัสไบนารี , การคูณและการสลับเมทริกซ์บิต, การสลับไบต์, การสลับบิตรวมถึงการกลับบิต , คำสั่งการเข้ารหัสลับเฉพาะทาง และอื่นๆ อีกมากมาย
อินเทลและเอนด์ (x86)
- ชุดคำสั่งหลักของสถาปัตยกรรม x86 ประกอบด้วย:
BSRBit Scan Reverse - ส่งคืนดัชนีบิตของบิตที่ตั้งค่าสูงสุดในอินพุต ซึ่งโดยพื้นฐานแล้วคือการนับเลขศูนย์นำหน้าแบบย้อนกลับ ไม่ได้กำหนดไว้สำหรับ 0BSFBit Scan Forward - ส่งคืนดัชนีบิตของบิตที่ตั้งค่าต่ำที่สุดในอินพุต โดยหลักแล้วจะนับจำนวนศูนย์ต่อท้าย แต่ไม่ได้กำหนดไว้สำหรับ 0
- SSE4และ ส่วนขยายชุดคำสั่ง BMIประกอบด้วยคำสั่งสำหรับ:
- นับเลขศูนย์นำหน้า -
lzcnt - นับจำนวนศูนย์ต่อท้าย -
tzcnt - จำนวนประชากร -
popcnt - การดึงบิต/การฝากบิต -
pext/pdep - การทดสอบบิต -
ptestโดยvptestรับอินพุตสองตัว ทำทั้งANDการดำเนินการ AND และANDNการดำเนินการระหว่างอินพุตทั้งสอง และตั้งค่าบิต ZF และ CF EFLAGS ตามผลลัพธ์ของการดำเนินการ AND และ ANDN ตามลำดับ ว่าเป็น 0 หรือไม่ สามารถใช้เพื่อทดสอบว่าบิตที่ถูกปิดบังทั้งหมดเป็นศูนย์ บิตที่ถูกปิดบังทั้งหมดถูกตั้งค่า หรือเป็นการผสมผสานกัน
- นับเลขศูนย์นำหน้า -
- ส่วนขยายไตรภาค AVX -512ประกอบด้วยคำสั่งตรรกะไตรภาคแบบบิตไวส์นอกจาก
vpternlogนี้ ยังมีคำสั่งตรวจจับความขัดแย้งที่น่าสนใจอีกด้วยVPCONFLICTD - นอกจากนี้ ในชุดย่อย AVX/ AVX-512 GFNIยังมีการแปลงเชิงเส้นของเมทริกซ์บิตและการแปลงผกผัน ซึ่ง
GF2P8AFFINEQBก็คือการคูณเมทริกซ์บิตขนาด 8x8 ในฟิลด์กาโลอิส GF(2^8) [ 5 ] - AVX-512 BITALG นอกจากเวอร์ชัน AVX-512 ของคำสั่งการจัดการบิตที่มีอยู่แล้ว ยังได้เพิ่ม
VPSHUFBITQMBคำสั่งสลับบิตระดับบิต ซึ่งเลือกบิตจากแหล่งหนึ่งโดยใช้ดัชนีในแหล่งที่สอง - คู่มือเทคโนโลยี Intel GNFI เกี่ยวกับส่วนขยาย AVX/AVX512 GNFI ยังระบุการใช้งานมากมาย รวมถึงการตั้งค่า/ล้าง/กลับบิตแบบขนานทีละไบต์ การขยายเครื่องหมาย 5 บิต และชี้ให้เห็นว่าศักยภาพนั้นมีมากกว่ามาก[ 6 ]
- รหัสปฏิบัติการ BCD ของ Intel
พาวเวอร์ ไอเอ
Power ISAมีคำสั่งการจัดการบิตจำนวนมาก[ 7 ]ซึ่งส่วนใหญ่เป็นผลมาจากประวัติและความสัมพันธ์กับเมนเฟรมของ IBM และสถาปัตยกรรม z/
- นับศูนย์นำหน้าและศูนย์ตามหลัง รวมถึงเวอร์ชันที่ถูกปิดบังไว้[ 8 ]มีการผสมผสานระหว่าง คำสั่ง popcount [ 8 ] parity [ 9 ]และ คำสั่งสไตล์ SWARแต่ไม่ใช่ชุดที่สมบูรณ์ของแต่ละแบบ:
popcntbSWAR เป็นระดับไบต์ 8x8 บิต แต่ไม่มี 4x16 บิตpopcnthแต่มีpopcntwสเกลาร์ 2x32 บิตและ 64 บิต ในทำนองpopcntdเดียวกันprtywSWAR เป็นครึ่งเวิร์ด 4x16 บิต แต่ไม่มีprtyb - การสกัดบิตแบบมาสก์
pextdและการฝากบิตpdepdเหล่านี้จะดรอปและกระจายบิตในตำแหน่งตามมาสก์แทนที่จะใช้เทคนิคปกติของการชดเชยและความยาว[ 10 ]คำสั่ง centrifuge ที่ผิดปกติซึ่งย้ายบิตแบบมาสก์ไปทางซ้ายและบิตแบบไม่มาสก์ไปทางขวา โดยรักษาลำดับสัมพัทธ์ไว้ในทั้งสองกรณี ISA ส่วนใหญ่จะมีตัวดำเนินการที่แสดงจำนวนบิตตามลำดับที่จะสกัด บวกกับความยาว:cfugedรวมสิ่งเหล่านี้เข้าเป็นบิตมาสก์อเนกประสงค์หนึ่งเดียว[ 10 ] - การสลับตำแหน่ง 8x8 บิต
vgbbd[ 11 ]ซึ่งถือว่าปริมาณ 64 บิตเป็นเมทริกซ์ 2 มิติ 8x8 และดำเนินการสลับตำแหน่งเมทริกซ์ ดังนั้นบิต 0 ของแต่ละไบต์จึงกลายเป็นไบต์แรก บิต 1 ของแต่ละไบต์กลายเป็นไบต์ที่สอง และอื่นๆ - คำสั่งดัชนีที่แปลกแต่มีประโยชน์มาก (
bpermd) [ 12 ]ซึ่งอนุญาตให้เลือกบิตแต่ละบิตได้มากถึงแปดบิตจากแหล่งข้อมูล 64 บิต โดยถือว่าแต่ละไบต์ของรีจิสเตอร์ 64 บิตตัวที่สองเป็นดัชนีบิตในรีจิสเตอร์ตัวแรก - คำสั่งตรรกะแบบ ไตรภาค 8 บิต แบบบิต
xxeval[ 13 ]คล้ายกับAVX-512 - คำแนะนำเชิงกลยุทธ์สำหรับการเร่งBCD ที่บรรจุ[ 14 ]
- Power v3.1 ยังได้เพิ่มคำสั่งการจัดการบิตเพิ่มเติมอีกหลายคำสั่ง รวมถึงการสลับลำดับของไบต์ภายในครึ่งเวิร์ด เวิร์ด และรีจิสเตอร์ 64 บิตทั้งหมด
ซูเปอร์คอมพิวเตอร์เครย์
Cray จดสิทธิบัตร BMM (Bit matrix multiply) ในปี 1990 ซึ่งสามารถรองรับตัวดำเนินการได้ถึง 64x64 บิต[ 15 ]สิ่งที่เทียบเท่าได้ใกล้เคียงที่สุดในปัจจุบันคือคำสั่ง Affine Transform GF(2) ขนาด 8x8 ของ AVX512
IBM System/360 ผ่าน z/Architecture
ระบบ IBM/360
ระบบIBM System/360มีคำสั่ง RR, RX และ SI สำหรับการดำเนินการ AND แบบบิต, การดำเนินการ OR แบบพิเศษ และการดำเนินการ OR, การดำเนินการ RS ทางคณิตศาสตร์ และการดำเนินการเลื่อนเชิงตรรกะ[ a ] , การทดสอบ SI ภายใต้มาสก์[ b ]และการทดสอบและการตั้งค่า RX แบบอะตอมิก คำสั่งเหล่านี้และส่วนขยายของคำสั่งเหล่านี้ยังคงใช้งานได้ผ่าน z/Architecture
ระบบ IBM/370
ในช่วงท้ายของ วงจรชีวิต S/370นั้น IBM ได้เปลี่ยนคำสั่งย้ายอักขระแบบย้อนกลับ ซึ่งเดิมเป็นคำสั่ง RPQ ให้เป็นคำสั่งมาตรฐาน
การดำเนินการเวกเตอร์ของ IBM S/370, S/370-XA, ESA/370 และ ESA/390
IBM 3090 ได้แนะนำ ฟังก์ชันเวกเตอร์เสริม[ 16 ]ให้กับ ชุดคำสั่ง System/370-XAและEnterprise Systems Architecture/370นอกเหนือจากการคำนวณเลขคณิตเวกเตอร์จำนวนเต็มและจุดลอยตัว และการดำเนินการเชิงตรรกะบนค่าจำนวนเต็มและจุดลอยตัวหลายค่าแล้ว ยังได้แนะนำการดำเนินการจัดการบิตเวกเตอร์ เช่นการนับศูนย์นำหน้าvczvmและ การ นับจำนวนประชากร[ 17 ]vcovm
อีเอสเอ/390
ในช่วงท้ายของ วงจรชีวิตของ ESA/390นั้น IBM ได้นำคำสั่ง z/Architecture บางส่วนมาใช้ใน ESA/390 ซึ่งรวมถึงคำสั่งหมุนซ้ายแบบลอจิกเดี่ยว โหลดแบบกลับด้าน และจัดเก็บแบบกลับด้าน
z/สถาปัตยกรรม สเกลาร์
z/Architectureได้รับสืบทอดคำสั่งการจัดการบิตทั้งหมดจากรุ่นก่อนหน้า และเพิ่มเวอร์ชันการเลื่อนตำแหน่งแบบ 64 บิต ( grande ) และแบบยาว (20 บิต) สำหรับบางคำสั่ง
- สิ่งอำนวยความสะดวกส่วนขยายคำแนะนำทั่วไป[ 18 ]เพิ่ม
- สิ่งอำนวยความสะดวกคำศัพท์ระดับสูง[ 21 ]เพิ่ม
- สิ่งอำนวยความสะดวกการเข้าถึงแบบเชื่อมโยง 1 [ 23 ]เพิ่ม
- สิ่งอำนวยความสะดวกส่วนขยายคำแนะนำเบ็ดเตล็ด 1 [ 27 ]เพิ่ม
- หมุนแล้วแทรกบิตที่เลือก (RISBGN) [ 28 ]
- สิ่งอำนวยความสะดวกส่วนขยายคำแนะนำเบ็ดเตล็ด 3 เพิ่ม
- และด้วยส่วนประกอบเพิ่มเติม (NCRK, NCGRK)
- เคลื่อนจากขวาไปซ้าย
- เอ็นแอนด์ (NNRK, NNGRK)
- ไม่ใช่สิทธิ์เฉพาะ หรือ (NXRK, NXGRK)
- นอร์ (NORK, NOGRK)
- หรือพร้อมส่วนเติมเต็ม (OCRK, OCGRK)
- เลือก (SELR, SELGR)
- เลือกค่าสูง (SELFHR)
- สิ่งอำนวยความสะดวกส่วนขยายคำแนะนำเบ็ดเตล็ด 4 [ 29 ]เพิ่ม
การดำเนินการเวกเตอร์ z/สถาปัตยกรรม
z/Architecture ไม่รองรับฟังก์ชันเวกเตอร์ก่อนหน้านี้[ 32 ]อย่างไรก็ตาม ตั้งแต่ฉบับที่ 11 ของหลักการทำงานของ z/Architecture [ 33 ] เป็นต้นไป จะรองรับคำสั่งต่อไปนี้:
- นับ เวกเตอร์ ศูนย์นำหน้า
vclzนับศูนย์ตามหลังvctz[ 34 ] [ 35 ]และนับประชากร เวกเตอร์vpopct[ 36 ] - การทดสอบเวกเตอร์ภายใต้หน้ากาก
vtm[ 37 ] - กำหนดรหัสเงื่อนไขโดยอิงจากการเปรียบเทียบ องค์ประกอบ ทั้งหมดของรีจิสเตอร์หนึ่งกับเวกเตอร์ที่สองเป็นหน้ากาก: หากการเปรียบเทียบหน้ากากทั้งหมดเป็นศูนย์ทั้งหมด หากทั้งหมดเป็นหนึ่งทั้งหมดหรือผสมกันทั้งสองอย่าง - เวกเตอร์GF(2)คูณและคูณสะสม ,
vgfm, [ 38 ]เรียกว่าการคูณแบบไม่มีตัวทด - BCD ที่บรรจุอย่างครอบคลุม [ 39 ]
- การทดสอบและการตั้งค่าตามหน่วยความจำและการดำเนินการบิตทดสอบ/ล้างแบบมาสก์ต่างๆ ซึ่งย้ายหรือคัดลอกบิตเดียวลงในรหัสเงื่อนไข[ 40 ]
ดีซี พีดีพี-10
DEC PDP-6และPDP-10มีการดำเนินการเชิงตรรกะที่ครอบคลุมชุด ฟังก์ชัน บูลีนตารางค้นหาฮาร์ดแวร์ (LUT2) 2 ตัวดำเนินการ ทั้งหมด [ 41 ] (แทนที่จะเป็นฟังก์ชัน 3 ตัวดำเนินการที่ AVX512 และ Power ISA มี)
รุ่นต่อมาของ PDP-10 มีคำสั่งในการแปลงระหว่างBCD แบบแพ็คและไบนารี[ 42 ]
นอกจากนี้ยังมีคำสั่งโหลดและจัดเก็บไบต์ที่ไม่ธรรมดา (ความยาวบิตแปรผัน) ที่ใช้ตัวชี้ไบต์สำหรับตัวดำเนินการหน่วยความจำ: ในศัพท์สมัยใหม่ คำสั่งเหล่านี้คือการแทรกและดึงข้อมูลบิตฟิลด์ นอกเหนือจากที่อยู่คำแล้ว ยังมีการระบุความยาวบิต (S) และออฟเซ็ตบิต (P) ของไบต์ที่จะโหลดหรือจัดเก็บ คำสั่งเหล่านี้สามารถระบุขนาดไบต์ได้ตั้งแต่ 0-36 แต่ไบต์ต้องไม่คร่อมขอบเขตคำ[ 43 ] คำสั่ง การจัดการสตริง[ 44 ]การแปลง BCD/ไบนารี[ 45 ]และการแก้ไขสตริง[ 46 ]ในรุ่นต่อมาใช้ตัวชี้ไบต์และมีข้อจำกัดเดียวกัน
GE-600 ซีรีส์
เครื่องคิดเลขซีรีส์ GE -600และรุ่นต่อมามีฟังก์ชันแปลงรหัสเกรย์เป็นรหัสไบนารี หากไม่มีคำสั่งดังกล่าวการแปลงรหัสเกรย์จะต้องใช้หลายขั้นตอน การแปลงรหัสไบนารีเป็นรหัสเกรย์นั้นง่ายx^(x>>1)และไม่จำเป็นต้องมีคำสั่งเฉพาะ การเข้ารหัสเกรย์มีประโยชน์ในทางปฏิบัติอย่าง มาก
แขน
- ARM11มีการทดสอบแบบบิตไวส์ AND (การทดสอบแบบบิตมาสก์) และการทดสอบแบบ XOR การดำเนินการแบบบิตไวส์ เชิงตรรกะมาตรฐาน รวมถึง OR-complement การกลับบิตแบบครึ่งเวิร์ดไบต์ และการเลือก/รวมไบต์แบบมีเงื่อนไข การเลื่อนและการหมุนมีให้ใช้งานบน Operand2 [ 47 ]
- ARM Cortex-A มีฟังก์ชันตั้งค่าฟิลด์บิต ล้าง แยก และกลับด้าน[ 48 ]
- ARM A64 มี การสลับไบต์แบบครึ่งเวิร์ดสไตล์ SWARการแทรกและการแยกบิตฟิลด์ และการกลับบิต[ 49 ]
RISC-V
ในส่วนขยายมาตรฐาน RISC-V มีการดำเนินการบิต แบบสเกลาร์ รวมถึงการเลื่อนบิตและการเลื่อนบิตแบบเลขคณิต แต่ไม่มีการหมุนบิต การขาดหายไปนี้ได้รับการชดเชยด้วยส่วนขยายเพิ่มเติม
- ส่วนขยาย RISC-V Zb* ประกอบด้วยคำสั่งการจัดการบิตจำนวนมาก[ 50 ]กลุ่มทั้งสี่กลุ่มถูกแบ่งออกเป็นหมวดหมู่ที่มีประโยชน์ (เช่น ชุดย่อยจำนวนเต็มมี min/max, rotate และpopcount ) และมีการวิจัยอย่างละเอียดถี่ถ้วนเกี่ยวกับเหตุผลในการรวมและการปรับปรุงที่คำสั่งเหล่านี้นำมา[ 51 ]
- ส่วนขยายเวกเตอร์ RISC-V (RVV) มีคำสั่งที่จัดเป็นการจัดการบิตระดับฮาร์ดแวร์ แต่ใช้กับมาสก์เวกเตอร์แทนที่จะเป็นรีจิสเตอร์สเกลาร์ตามปกติ ตัวอย่างเช่นมีคำสั่ง Popcount ที่ใช้มาสก์เวกเตอร์ [ 52 ] RVV ยังมีการดำเนิน การบิตแบบต่อองค์ประกอบอีกด้วย[ 53 ]
ไมโครคอนโทรลเลอร์แบบฝังตัว
อินเทล
- 8086 มี การ ดำเนินการแบบบิตด้วยเช่นกัน[ 54 ]
TEST - 8051 มี คำ สั่ง
SETB,CLRและCPL- คำสั่งล้างและกลับบิต - และคำสั่งจำนวนมากของมันเป็นคำสั่งการจัดการบิต[ 55 ]นอกจากนี้ยังรวมถึง Or-complement และ And-complement ซึ่งมีอยู่ใน RISC-V Zb* [ 56 ]
ซิล็อก ซี80
- ชุดคำสั่งZilog Z80 ประกอบด้วย คำสั่ง , , และคำสั่งเหล่านี้จะทดสอบ รีเซ็ต และตั้งค่าบิตแต่ละบิตในรีจิสเตอร์หรือหน่วยความจำที่ชี้โดย HL, IX หรือ IY [ 57 ]
BITRESSET
MOS 6502
- ชิปWDC 65C02เพิ่มฟังก์ชันการจัดการบิตได้แก่ การทดสอบและตั้งค่า (TSB) และการทดสอบและรีเซ็ต (TRB) บนบิตแต่ละบิต
- Rockwell ได้เพิ่มส่วนขยายที่คล้ายกัน (RMB, SMB, BBR และ BBS) ให้กับซีรี่ส์ R65C00 [ 58 ]
ไมโครชิป PIC
- ไมโครคอนโทรลเลอร์ PIC ของ Microchip Technology ยังมีฟังก์ชันการทำงานแบบบิตไวส์รวมถึงการตั้งค่า การล้างค่า และการทดสอบบิต ซึ่งระบุไว้ในคำแนะนำด้วย
คนอื่น
- DSP ของ Texas Instrumentsเช่น ซีรี่ส์ TMS320C6000มีคำสั่งตั้งค่า ล้าง กลับค่า ทดสอบ แยก และแทรกบิต (หรือฟิลด์บิต) [ 59 ]
- TX -2จากปี 1958 มีการคาดการณ์แบบ "ข้ามบิต"เช่นเดียวกับการตั้งค่า การล้าง การกลับบิต และการสลับบิต รวมถึงการเลื่อนและ การดำเนิน การบิตแบบ อื่นๆ [ 60 ] [ 61 ]
- SuperHมีการจัดการบิตแบบอิงหน่วยความจำที่ครอบคลุม รวมถึง And-complement และ Or-complement แต่ยังมีการทดสอบ/ตั้งค่า/ล้างแบบอิงรีจิสเตอร์มาตรฐาน และคำสั่งที่ไม่ธรรมดาที่แทนที่บิต N (ในช่วง 0 ถึง 7) และคัดลอกบิตที่ถูกแทนที่ไปยังรีจิสเตอร์ทดสอบ[ 62 ]
- Signetics 8X300 เป็นไมโครโปรเซสเซอร์ที่เปิดตัวในปี 1976 โดยปกติโปรเซสเซอร์นี้จะประมวลผลข้อมูลไบต์ขนาด 8 บิต แต่หน่วยมาสก์และหน่วยหมุนทำให้สามารถประมวลผลบิตเดียวหรือหลายบิต ได้ ทำให้โปรเซสเซอร์นี้เป็นโปรเซสเซอร์ที่มีความยาวข้อมูลแปรผันได้
- สถาปัตยกรรม DEC PDP -11จากปี 1970 รองรับการทดสอบ การตั้งค่า และการล้างบิตทั้งในระดับเวิร์ด
BITBISBICและไบต์ ส่วน WD16BITBBISBBICBที่คล้ายกันมากนั้นรองรับเฉพาะคำสั่งในรูปแบบเวิร์ดเท่านั้น นอกจากนี้WD16 ยังรองรับแฟล็กที่ระบุตำแหน่งไบต์ได้เร็วกว่าด้วย คำสั่ง และ(คำสั่งส่วนเติมเต็ม) แต่ PDP-11 ขาดคำสั่ง นี้BISBTSTBSETBCLRBCOMBSETB - ไมโครคอนโทรลเลอร์ Motorola 68000รองรับการทดสอบบิตและการจัดการหน่วยความจำหรือรีจิสเตอร์ข้อมูล หมายเลขบิตอาจเป็นค่าคงที่หรือค่าในรีจิสเตอร์ข้อมูล คำสั่งต่างๆ ได้แก่
BSET(ตั้งค่าเป็น 1),BCLR(ล้างเป็น 0),BCHG(กลับค่า) และBTST(ไม่มีการเปลี่ยนแปลง) คำสั่งทั้งหมดนี้จะทดสอบบิตปลายทางก่อน และตั้งค่าบิต CCR Z หากบิตปลายทางเป็น 0
หมายเหตุ
ดูเพิ่มเติม
- ค้นหาชุดแรก – กลุ่มของการดำเนินการบิตไวส์ที่เกี่ยวข้องกับคำในเครื่องจักร
- การดำเนินการบิต – หัวข้อในวิทยาการคอมพิวเตอร์
- Popcount – จำนวนสัญลักษณ์ที่ไม่ใช่ศูนย์ในสตริง
- นับเลขศูนย์นำหน้า – กลุ่มของการดำเนินการบิตไวส์ที่เกี่ยวข้องกับคำในเครื่องจักร
- มาสก์ (ทางคอมพิวเตอร์) – ข้อมูลที่ใช้สำหรับการดำเนินการแบบบิตไวส์
- เลขฐานสองแบบเข้ารหัสทศนิยม – ระบบการเข้ารหัสตัวเลขแบบดิจิทัล
- ชุดคำสั่ง CLMUL – ส่วนขยายของชุดคำสั่ง x86
- คำสั่งตรรกะไตรภาคแบบบิต – ตรรกะไตรภาคแบบบิต (ฟังก์ชันบูลีน 3 ทาง)
- ชุดคำสั่ง GFNI – ส่วนขยายชุดคำสั่งโดย Intel
อ่านเพิ่มเติม
- ฮิเลวิตซ์, เยดิดยา (2008). คำสั่งการจัดการบิตขั้นสูง: สถาปัตยกรรม การใช้งาน และการประยุกต์ใช้ (PDF) (วิทยานิพนธ์ปริญญาเอก). มหาวิทยาลัยพรินซ์ตัน .
- Hilewitz, Yedidya; Lee, Ruby B. (พฤศจิกายน 2006). สถาปัตยกรรมชุดคำสั่งการจัดการบิตขั้นสูง รายงานทางเทคนิค CE-L2006-004ภาควิชาวิศวกรรมไฟฟ้า มหาวิทยาลัยพรินซ์ตัน
- Koppelmann, Bastian; Adelt, Peer; Mueller, Wolfgang; Scheytt, Christoph (2019). ส่วนขยาย RISC-V สำหรับคำสั่งการจัดการบิต 2019 การประชุมวิชาการนานาชาติครั้ง ที่ 29 ว่าด้วยการ สร้างแบบจำลอง การเพิ่มประสิทธิภาพ และการจำลองพลังงานและเวลา (PATMOS) IEEE หน้า 41–48 doi : 10.1109/PATMOS.2019.8862170 ISBN 978-1-7281-2103-1.
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ คำสั่งการจัดการบิต
คำสั่งการจัดการบิตคือคำสั่งที่ดำเนิน การ จัดการบิตในฮาร์ดแวร์ แทนที่จะต้องใช้คำสั่งหลายคำสั่งสำหรับการดำเนินการเหล่านั้นดังที่แสดงด้วยตัวอย่างในซอฟต์แวร์
การจัดการบิตฮาร์ดแวร์
สถาปัตยกรรมทั้งหมดด้านล่างมีชุดคำสั่งย่อยและกลุ่มคำสั่งที่การจัดการบิตนั้นมีให้ในฮาร์ดแวร์ จากรายการจะเห็นได้ว่า DSP และ ไมโครคอนโทรลเลอร์ แบบฝังตัว มีคำสั่งทดสอบ/ตั้งค่า/ล้างบิตอย่างน้อยที่สุด แต่ยังมีคำสั่งที่ครอบคลุมมากกว่านั้น เช่น การนับศูนย์นำหน้า ,...
อินเทลและเอนด์ (x86)
ชุดคำสั่งหลักของสถาปัตยกรรม x86 ประกอบด้วย: BSR Bit Scan Reverse - ส่งคืนดัชนีบิตของบิตที่ตั้งค่าสูงสุดในอินพุต ซึ่งโดยพื้นฐานแล้วคือการนับเลขศูนย์นำหน้าแบบย้อนกลับ ไม่ได้กำหนดไว้สำหรับ 0 BSF Bit Scan Forward - ส่งคืนดัชนีบิตของบิตที่ตั้งค่าต่ำที่สุดในอินพุต...
พาวเวอร์ ไอเอ
Power ISA มีคำสั่งการจัดการบิตจำนวนมาก [ 7 ] ซึ่งส่วนใหญ่เป็นผลมาจากประวัติและความสัมพันธ์กับเมนเฟรมของ IBM และสถาปัตยกรรม z/