เป็นไปได้ไหมที่จะกำหนดโอเปอเรเตอร์ bitwise ทั้งหมดโดยใช้ 'bitwise nand' คล้ายกับวิธีบูลลอจิกทั้งหมดที่สามารถสร้างโดยใช้เพียง 'บูลีน nand'?


9

Nand เป็นที่รู้จักในฐานะประตูตรรกะสากลเพราะมันช่วยให้คุณกำหนดประตูตรรกะแบบบูลอื่น ๆ ทั้งหมด:

not(x) = nand(x,x)
and(x, y) = not(nand(x, y))
or(x, y) = nand(not(x), not(y))
nor(x, y) = not(or(x, y))
xor(x, y) = nand(nand(a, nand(a, b)), nand(b, nand(a, b)))

สิ่งนี้เรียกว่าnand-logicและมักใช้ในคอมพิวเตอร์สมัยใหม่เพราะทรานซิสเตอร์สามารถทำตัวเหมือน nand-gate

ฉันสงสัยว่ามันเป็นไปได้ที่จะทำสิ่งที่คล้ายกับการดำเนินงานระดับบิต Can เช่นบิต NAND (bnand) ถูกนำมาใช้ในการกำหนดbnot, bor, band, bnor, bxor? มีการดำเนินการระดับบิตสากล?

คำตอบ:


13

ในระดับฮาร์ดแวร์ไม่มีความแตกต่างระหว่าง bitwise และตรรกะ ใช่. การดำเนินการเชิงตรรกะเป็นเพียงการดำเนินการระดับบิตในบิตเดียว


2

ในไมโครโปรเซสเซอร์ที่ทันสมัยส่วนใหญ่การดำเนินการระดับบิตจะถูกนำมาใช้อย่างเป็นธรรมชาติดังนั้นจึงไม่มีประโยชน์ในการใช้งาน NAND

ตัวอย่างเช่นชุดคำสั่ง x86 มี: AND , OR , XOR , ไม่ ทั้งหมดนี้ดำเนินการในรอบเดียวเท่าที่ฉันรู้เพื่อที่จะไม่มีประโยชน์โดยแทนที่พวกเขาด้วยการดำเนินงาน NAND หลายแห่ง นอกจากนี้ยังมีANDNซึ่งเทียบเท่ากับ((NOT x) AND y)ที่สามารถสร้างขึ้นโดยคอมไพเลอร์การเพิ่มประสิทธิภาพที่ฉลาดเพื่อให้ได้รอบ

การเคลื่อนไหวของRISCพยายามที่จะส่งเสริมชุดคำสั่งที่ลดลงเพื่อให้สถาปัตยกรรมที่มีประสิทธิภาพมากขึ้นง่ายขึ้น แนวคิดก็คือคอมไพเลอร์จะต้องรวมคำสั่งที่ง่ายและเร็วขึ้น อย่างไรก็ตามปรากฏว่านอกเหนือจากตัวประมวลผลการทดลองหรือการสอนบางส่วนส่วนใหญ่ยังให้ NAND แบบดั้งเดิมเช่นเดียวกับการดำเนินการระดับบิตปกติ (เช่นPowerPCหรือARM )


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

2
ความจริงที่ว่า OR, XOR และ NOT ถูกนำไปใช้ "natively" และใช้เวลาไม่เกินหนึ่งรอบสัญญาณนาฬิกาบอกว่าไม่มีอะไรเกี่ยวกับว่าพวกเขากำลังสร้างโดยใช้เพียงวงจร NAND หรือ ฉันสงสัยว่าพวกเขากำลังสร้างโดยใช้ NAND เพียงแค่วันนี้เพราะทรานซิสเตอร์มีราคาถูกและเร็วมาก วิธี 4-to-1 ของ Vatine ได้รับการปรับให้เหมาะสมสำหรับการใช้ทรานซิสเตอร์จำนวนเล็กน้อยซึ่งไม่มีจุดในยุคนาโนเมตร
Martin Maat

RISC แสดงผลอย่างไม่มีความหมายตามเวลา เมื่อมันเกิดขึ้นคำแนะนำที่ซับซ้อนโดยทั่วไปใช้เวลาหลายรอบนาฬิกาเช่น 10 หรือมากกว่านั้น และนี่ไม่ใช่เรื่องเกี่ยวกับ OR / AND / NOT สิ่งเหล่านี้รวดเร็วและถือว่า "ง่าย" และจำเป็นสำหรับ CPU ใด ๆ ดังนั้นพวกเขาจะไม่ถูกทิ้งโดยหน่วยประมวลผล RISC วันนี้คำแนะนำที่ซับซ้อนต้องใช้เวลาน้อยกว่ารอบนาฬิกา (เนื่องจากการวางท่อและมัลติเธรด / มัลติคอ
ร์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.