คอมพิวเตอร์ 101 (ฮาร์ดแวร์)

ก่อนจะไปรู้จักกับควอนตัมคอมพิวเตอร์ เรามารู้จักกับคอมพิวเตอร์ที่ใช้งานกันอยู่ในปัจจุบันกันก่อน บทความนี้ต้องการให้ผู้อ่านทราบว่าคอมพิวเตอร์ มือถือ แทปเล็ตหรือเครื่องคำนวณต่างๆ (ในที่นี้เรียกรวมกันเลยว่า คอมพิวเตอร์) ที่ใช้งานกันอยู่ ทำงานได้อย่างไร แน่นอนว่าการที่คนเราใช้คอมพิวเตอร์ได้ เกิดจากส่วนประกอบหลัก 2ส่วน คือ ฮาร์ดแวร์และซอฟต์แวร์ ดังนั้น บทความ COMP101 ขอแบ่งเป็น 2 ตอนด้วย เริ่มจากตอนที่ท่านอ่านอยู่นี้ ตอนฮาร์ดแวร์ ตอนหน้ามาเจอกันในเรื่องของ ซอฟต์แวร์ สำหรับฮาร์ดแวร์ คงต้องเริ่มจากคำว่า สถาปัตยกรรมคอมพิวเตอร์ การที่จะเรียกสิ่งหนึ่งว่าเป็นคอมพิวเตอร์ได้นั้นต้องประกอบจาก 3 ส่วนหลัก ดังแสดงในรูปที่ 1 [(1) CPU ⇔ (2) Memory ⇔(3) I/O] ซึ่งเป็นที่รู้จักกันดีว่า Central Processing Unit(CPU) หรือหน่วยประมวลผล เปรียบเสมือนสมองของคอมพิวเตอร์ ดังนั้นการเข้าใจการทำงานของ CPU ก็เปรียบเสมือนได้เข้าใจหัวใจหลักของการทำงานของคอมพิวเตอร์แล้ว ดังนั้นบทความนี้จะเน้นการทำความเข้าใจกับ CPU เป็นหลักก่อน แต่แน่นอนว่ามันยังไม่ทั้งหมด ยังมีหน่วยความจำ (Main Memory Unit) และหน่วยติดต่ออินพุตเอาต์พุต (I/O Unit) อีก เพื่อประกอบให้เป็นคอมพิวเตอร์ที่สมบูรณ์ ซึ่งถ้ามีโอกาสจะเขียนรายละเอียดในบทความต่อๆไป

รูปที่ 1 สถาปัตยกรรมคอมพิวเตอร์

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

คอมพิวเตอร์คำนวณบนเลขฐานสองโดยนำเสนอเลข 1 ด้วยแรงดันไฟฟ้า5 V และเลข 0 ด้วยแรงดันไฟฟ้า 0 V จากความคิดพื้นฐานนี้นำมาสู่การใช้ความรู้ความสามารถของวิศวกรอิเล็กทรอนิกส์ ในการสร้างอุปกรณ์ทางอิเล็กทรอนิกส์เพื่อควบคุมการไหลของกระแสไฟฟ้า อุปกรณ์พื้นฐานที่สำคัญ ก็คงจะหนีไม่พ้น R L C หรือก็คือ Resistor (R): ตัวต้านทาน Inductor (L):ตัวเหนี่ยวนำ และ Capacitor (C): ตัวเก็บประจุ  แต่ยังมีอีกชนิดที่เป็นพระเอกจริงๆ ทรานซิสเตอร์ (Transistor) นำอุปกรณ์อิเล็กทรอนิกส์ดังกล่าวมาใช้คุณสมบัติเฉพาะของแต่ละชิ้น สร้างเป็นวงจรอิเล็กทรอนิกส์เพื่อใช้ในการคำนวณต่อไป ขออธิบายเพิ่มเกี่ยวกับทรานซิสเตอร์อีกสักหน่อย ทรานซิสเตอร์เปรียบได้กับสวิทต์ไฟที่ติดบนผนังบ้าน ปกติเราใช้นิ้วมือเรากดสวิทต์เพื่อให้กระแสไฟไหลเข้าเครื่องใช้ไฟฟ้าจนครบวงจร ต่างกันนิดหน่อย ทรานซิสเตอร์ใช้กระแสไฟกดสวิทต์แทนนิ้วมือเรา (ดังรูปที่ 2)

รูปที่ 2 สัญลักษณ์ของ Transistor
รูปที่ 3 วงจรอิเล็กทรอนิกส์ภายใน AND Gate

จากอุปกรณ์อิเล็กทรอนิกส์ที่กล่าวไปข้างต้น วิศวกรอิเล็กทรอนิกส์นำมาสร้างเป็นวงจรอิเล็กทรอนิกส์ชนิดหนึ่ง ที่มีความสามารถในการคำนวณทางตรรกศาสตร์ ตัวอย่างเช่น AND, OR, และ XOR เป็นต้น ลองมาดูตัวอย่างวงจรสักหนึ่งตัวอย่าง ในรูปที่ 3ถ้า ให้กระแสไฟฟ้าแรงดัน 0 V มีค่าเลขฐานสองเป็น 0และเทียบได้กับค่าความจริงเป็นเท็จและ กระแสไฟฟ้าแรงดัน 5 V มีค่าเลขฐานสองเป็น และเทียบได้กับค่าความจริงเป็น จริงแล้ว จะเห็นได้ว่าวงจรอิเล็กทรอนิกส์ดังรูปที่ 3 นั้น ทำหน้าที่ทางตรรกศาสตร์คือAND จากตัวอย่างนี้เอง เราเรียกวงจรนี้ว่า AND Gate สัญลักษณ์ต่างๆ ของแต่ละวงจร Gate ก็แตกต่างกันออกไป ดังแสดงในรูปที่ 4 มีทั้งหมด 8 Logic Gate สรุปได้ว่าวงจรอิเล็กทรอนิกส์ในรูปที่ 3 วาดให้ง่ายขึ้นเป็นสัญลักษณ์AND Gate ในรูปที่ 4(ที่มีวงกลมสีแดง) แน่นอนว่า OR Gate, XOR Gate หรือ Logic Gate อื่นๆ ก็ต้องมีวงจรอิเล็กทรอนิกส์ที่แตกต่างกันออกไป ซึ่งไม่ขอแสดงทั้งหมดในบทความนี้ (ค้นหาข้อมูลเพิ่มเติมส่วนนี้ก็จะมีประโยชน์มาก)

รูปที่ 4 สัญลักษณ์ Logic Gate ต่างๆ

มาถึงจุดนี้ วิศวกรอิเล็กทรอนิกส์ก็ไม่นั่งเฉยๆ ได้นำเอาแต่ละ Logic Gate มาสร้างเป็นวงจร Logic Gate เพื่อต่อยอดทำให้เกิดประโยชน์ที่สูงขึ้นไปอีก มาดูตัวอย่างกัน กับวงจร Logic Gate สำหรับบวกเลข (แน่นอนว่าเป็นการคำนวณของเลขฐานสอง) ก่อนจะไปดูตัวอย่างวงจรลองนึกภาพง่ายๆ ว่าจะบวกเลข 3 บิตคือ 5 (101) กับ 2 (010) ที่ต้องได้ 7 (111)แล้วเรากำลังสร้างวงจรบวกเลขทีละบิต จากรูปที่ 5(ก) เราจะบวก x กับ y ซึ่งเป็นเลขฐานสอง 1 บิต ต้องใช้ XOR Gate 1 ตัว แต่ต้องบวกกับตัวทดเข้า (Carry-in: ci) อีกวงจรคู่กันดังรูปที่ 5 (ข) เป็นวงจรบวกตัวทดออก (Carry-out: ci+1) ซึ่งต้องใช้ AND Gate 3 ตัวและ OR Gate อีก 1 ตัว แล้วก็นำวงจร (ก) กับ (ข) รวมกัน นำไปเขียนใหม่เป็นรูปสี่เหลียมง่ายๆ ตั้งชื่อว่า Full Adder ดังแสดงในรูปที่ 5 (ค)

รูปที่ 5 วงจร Logic Gate สำหรับการบวก

คราวนี้ถ้าเราจะสร้างวงจรบวกเลข 3 บิต ก็แค่นำ Full Adder 3 ตัวมาต่อเรียงกัน ดังรูปที่ 6

รูปที่ 6 วงจรบวกเลข 3 บิต

จากย่อหน้าข้างบนสิ่งที่น่าจะงงเป็นอันดับแรกเลย ก็คือ การบวกเลข 1บิตฐานสอง ทำไมต้องใช้ XOR Gate (ถ้าใครเข้าใจแล้วข้ามย่อหน้านี้ได้เลย) เราลองมาทำความเข้าใจเรื่องนี้กัน เริ่มจากเทียบการบวกเลขฐานสอง กับการทำงานของ XORดังแสดงในตารางที่ 1 ได้เทียบให้เห็นว่า เมื่อตัวแปรx และ y มีค่าต่างกันไป 4 แบบ จะเห็นได้ว่า ผลของการบวกเลขฐานสองกับการทำ XOR นั้นได้ผลที่เหมือนกัน แต่สำหรับรูปที่ 5(ก) มีตัวทดเข้า (ci)ด้วยทำให้ความเป็นไปได้ของ x, y, และ cมีค่าต่างกันไป 8 แบบ ดังแสดงในตารางที่ 2 ซึ่งจะเห็นได้ว่าค่าของการบวกเลขฐานสอง 1 บิตก็ยังคงเหมือนกับการทำXOR อยู่ (ถ้าไม่เชื่อลองทำเองก็ได้ ใน MS Excel โดยใช้ฟังก์ชั่น BITXOR) การอธิบายข้างต้นสามารถเข้าใจได้แบบลูกทุ่ง แต่สำหรับวิชาการออกแบบวงจรดิจิตอลแล้ว สามารถอธิบายการสร้างวงจรนี้ได้โดย Karnaugh Map (สำหรับนักเรียน นักศึกษาที่สนใจสามารถ ใช้ชื่อ K-Map นี้เป็น Keyword ในการศึกษาเพิ่มเติมได้เลย) เช่นเดียวกับการทำความเข้าใจวงจรในรูปที่ 5(ข) สามารถใช้ข้อมูลในตารางที่ 2 คอลัม Carry-out เพื่อนำไปเปรียบเทียบกับค่าที่ได้จากวงจรทางตรรกศาสตร์ (หากระดาษหรือเปิด MS Excel ทดลองศึกษาเปรียบเทียบเองได้เลย)

ซึ่งในความเป็นจริงคงไม่ใช้คอมพิวเตอร์มาบวกเลขแค่ 3 บิต สมมุติว่าจะสร้างคอมพิวเตอร์ที่สามารถบวกเลขได้ที่ละ 32 บิต คิดกันง่ายๆ ก็คือการเอา กล่อง Full Adder มาต่อกัน 32 ตัว แล้วตั้งชื่อให้ใหม่ เรียกว่า 32-bit Ripple-Carry Adder(n-bit RCA) ที่ต้องเรียกว่า Ripple-Carry เพราะว่าในวงจรบวกเลขนี้ มีการทะยอยส่งตัวทดบิตต่อบิต จากขวาไปซ้าย จากรูปที่ จะเห็นว่ามีลูกศร Carry-out จากกล่องขวาไป Carry-in กล่องซ้าย แน่นอนว่าเกิดคำถามขึ้นอีก การที่มีชื่อเฉพาะสำหรับ n-bit RCA แสดงว่าต้องมีชื่ออื่นหรือวิธีการบวกแบบอื่นแน่ๆ คำตอบคือ ใช่ แต่ในบทความนี้ขออธิบายคร่าวๆในเรื่องนี้พอ เนื่องจากการบวกแบบ n-bit RCA มีการทำงานจริงที่ช้ามาก วงจรบวกเลขจึงถูกพัฒนาให้เร็วขึ้น ซึ่งอีกวิธีมีชื่อว่า n-bit Carry-Lookahead Adder (nbit CLA) แต่ไม่ว่าจะเป็นวงจรบวกแบบใดก็ตาม เราเพียงเข้าใจแค่ว่า n-bit Adder

การคำนวณในคอมพิวเตอร์ไม่ได้มีแต่บวกเลข แน่นอนว่าต้องมี ลบ คูณ หาร อีก ซึ่งทั้งหมดต่างก็เริ่มต้นจากวงจร n-bit Adder ทั้งสิ้น เพียงประยุกต์ความรู้ทางคณิตศาสตร์เพิ่มเติมเข้าไป บทความนี้ขอนำเสนอวงจรอีกสักตัว เพื่อเพิ่มเติมความเข้าใจต่อวงจรของคอมพิวเตอร์ นั่นคือวงจรลบเลข เพื่อจะเข้าใจการสร้างวงจรลบเลข ต้องอธิบายเพิ่มเติมเกี่ยวกับการคำนวณของเลขฐานสองที่ยากขึ้นมาอีกนิดส์หนึ่ง สมมุติว่ากำลังคำนวณเลขฐานสอง 4 บิต โดยพื้นฐานแล้วถ้า ถ้าจะนำเสนอเลข 5 กับ -5 เลขฐานสองสามารถเขียนได้ว่า 0101 กับ 1101 ตามลำดับ (เรียกว่าการนำเสนอแบบ Sign and Magnitude Bit) โดยถ้าบิตซ้ายสุดเป็นเลข0 แสดงว่ามีค่าติดบวก ถ้าเป็นเลข 1 แสดงว่ามีค่าติดลบ ถ้าเรานำ 5+(-5) จะต้องได้ 0 แต่ถ้าลองคำนวณมือดู จะพบว่า 0101 + 1101 จะไม่ได้ 0 (แย่แล้วทำอย่างไรดี) ถ้าเราเปลี่ยนการนำเสนอเลขฐานสองจากแบบ Sign and Magnitude Bit มาเป็น 2’s Complement Bit แล้วปัญหาจะถูกแก้ไข แล้วมันแก้อย่างไร ลองมาดูกันต่อ

รูปที่ 7 วงจรบวกลบเลข

ก่อนอื่นมาดูกันก่อนว่า 2’s Complement Bitนำเสนอเลขฐานสองแบบติดลบได้อย่างไรกัน พูดให้ง่ายคือนำเลขฐานสองติดบวก มากลับบิตแล้วบวกด้วย 1 ก็จะกลายเป็นเลขนั้นติดลบ เช่น ถ้าจะเขียนเลขฐานสองของ-5 เริ่มด้วยดูที่เลข 0101 (=5) ก็กลับบิตซะ เป็น 1010 แล้วบวก 1 ซึ่งก็จะเท่ากัน 1011 (=-5) โดยตารางที่ 3 แสดงการนำเสนอเลขติดลบ ทั้ง 2 วิธี ความมหัศจรรย์ไม่ได้อยู่ตรงวิธีคิด 2’s Complement Bitแต่อยู่ตรงที่เลขติดลบแบบ 2’s Complement สามารถเอามาผ่านการคำนวณได้อย่างถูกต้อง พิจารณาจากตัวอย่างเดิม ถ้าเรานำ 5+(-5) จะต้องได้0ลองทำดู 0101 + 1011 ได้ 0 แล้ว (Yessss!) และนำไปสู่แนวคิดการสร้างวงจรลบ กล่าวคือ การลบก็เหมือนกับการบวกเพียงแค่กลับเครื่องหมายของเลขตัวลบ เช่น 5-5 มีค่าเท่ากับ 5+(-5)จากรูปที่ 7 ก็ใช้วงจรบวกเหมือนเดิมเลย เพิ่มเติมคือสายสัญญาณ Add/Sub Control ถ้าสัญญาณเส้นนี้มีค่าเป็น 0 ก็คือคำสั่ง บวก ก็จะไม่เกิดการเปลี่ยนแปลงกับตัวบวก ถ้ามีค่าเป็น 1 ก็คือคำสั่ง ลบ สิ่งที่วงจรทำก็เพียงทำ 2’s Complementของเลขตัวลบ (y) โดยให้ตัวลบผ่าน XOR Gate เพื่อกลับบิตนั้นเอง

จากวงจรบวกลบเลขที่ได้รู้จักกันไปข้างต้น ได้นำเรามาถึงหัวใจสำคัญของคอมพิวเตอร์ นั่นก็คือหน่วยประมวลผล (ขอเรียกว่า CPU เลย) ซึ่งใน CPU ก็ต้องมีส่วนประกอบจากวงจรบวกลบเลขดังกล่าว ผนวกกับการคำนวณทางตรรกศาสตร์ที่เป็นวงจรพื้นฐานอยู่แล้ว จึงเป็นที่มาของส่วนที่ใช้ในการคำนวณภายใน CPU มีชื่อเรียกเฉพาะว่าArithmetic and Logic Unit (ALU) ดังแสดงในรูปที่ 8 เป็นการนำเสนอแผนภาพสถาปัตยกรรม CPU อย่างง่าย จะเห็นได้ว่าใน CPU ไม่ได้มีแค่ ALU จากองค์ประกอบต่างๆ ที่ทำงานร่วมกันทั้งหมดถูกเชื่อมต่อกันด้วย CPU Bus องค์ประกอบต่างๆที่นำเสนอในรูป นอกจาก ALU แล้วยังมีอีก 2 องค์ประกอบ (1) Register เป็นหน่วยความจำความเร็วสูงภายใน CPU ดังรูปคือ z, R0, R1, และ IR แต่ละตัวมีหน้าที่ที่แตกต่างกันออกไป (2) Instruction Decoder เป็นส่วนที่ใช้ในการแปลโค้ตคำสั่ง(Instruction Code) ให้เป็นชุดสัญญาณควบคุม แล้วส่งสัญญาณควบคุมนั้นไปยัง ALU เพื่อทำงานต่อไป สำหรับบทความนี้คำถามคงไม่ใช่ว่าสัญญาณควบคุมมีสัญญาณใดบ้าง คำถามที่น่าสนใจกว่าคือโค้ตคำสั่งคืออะไร ได้มาจากไหน

รูปที่ 8 องค์ประกอบใน CPU อย่างง่าย

จากรูปที่ 8 กรอบที่อยู่ขวาสุดแสดงโค้ตคำสั่ง 4 บรรทัด ที่เก็บอยู่ในหน่วยความจำภายใน CPU ตัวหนึ่ง ที่เรียกว่า Instruction Register (IR)แต่ละบรรทัดคือแต่ละคำสั่ง ซึ่งจะถูกโหลดใส่เข้าไปใน Instruction Decoder แล้วแปลเป็นชุดสัญญาณทีละคำสั่ง จากคำถามในย่อหน้าที่แล้ว ว่าโค้ตคำสั่งทั้ง 4 บรรทัดมาจากไหน ตอบแบบสั้นๆ คือได้มาจากการรันโปรแกรมคอมพิวเตอร์ (ซอฟต์แวร์) แล้วซอฟต์แวร์ทำงานอย่างไร มีกลไกอย่างไรจึงได้เป็นโค้ตคำสั่ง ทั้งหมดนี้จะอธิบายในบทความ COMP101 (ตอนซอฟต์แวร์) แต่ที่สำคัญคือ แต่ละคำสั่งต้องเป็นคำสั่งที่ Instruction Decoder สามารถแปลได้ แล้ว Instruction Decoder จะแปลอะไรเป็นบ้าง รู้ได้อย่างไร คำตอบคือ ทุกๆ ยี่ห้อ ทุกๆ รุ่นของ CPU จะถูกออกแบบและสร้างมาไม่เหมือนกัน ซึ่งแต่ละยี่ห้อ CPU ก็จะเข้าใจโค้ตคำสั่งแต่ต่างกันไปนั่นเอง บางยี่ห้อมี 100 โค้ตคำสั่งที่ใช้งานได้ บ้างก็มี 200โค้ตคำสั่งที่ใช้งานได้ ขึ้นอยู่กับวิศวกรคอมพิวเตอร์ที่ออกแบบ CPU นั้นๆ อย่างไรก็ดีจะมีกี่โค้ตคำสั่งที่ CPU เข้าใจนั้น สามารถศึกษาจากคู่มือของแต่ละยี่ห้อ แต่ละรุ่น CPU โดยหาในหัวข้อ Instruction Set Architecture (ISA)

ต่อมา เราลองมาดูกันว่าโค้ตคำสั่งจากรูปที่ 8 ทั้ง 4บรรทัด แปลว่าอะไรบ้าง อาจจะเกินกว่าความเป็น COMP101 ไปสักหน่อย แต่ก็เป็นจุดเริ่มต้นที่ดีสำหรับคนที่กำลังจะศึกษาลงลึกไปอีกขั้น มาเริ่มกับคำสั่งแรกกันเลย Load R0, #14 แปลว่า ให้โหลดค่า 14ใส่ไปในหน่วยความจำภายใน CPU ตัวหนึ่งที่เรียกว่าR0 อีกคำสั่งต่อมาก็ทำคล้ายกัน คือโหลดค่า 16 ไปใส่ใน R1สำหรับคำสั่งที่ 3 ก็นำค่าในR0 บวกกับ ค่าใน R1 ซึ่งก็บวกกันใน ALUผลลัพท์ที่ได้เก็บไว้ใน R2 สำหรับคำสั่งสุดท้ายอาจจะยากสักนิด ซึ่งแปลว่าให้นำผลการบวกที่อยู่ใน R2 ไปเก็บไว้ใน Main Memory ตำแหน่งที่ 4000

สุดท้ายนี้ก่อนจะจบ COMP101 (ตอนฮาร์ดแวร์)ลองนึกถึงตอนที่ไปซื้อคอมพิวเตอร์ มักจะเจอ SPEC ที่มีบรรทัดหนึ่งเขียนไว้ว่า“CPU: ความเร็ว 2.4 GHz” จริงๆแล้วมันคือความถี่ของสัญญาณนาฬิกา แล้วสัญญาณนาฬิกามีไว้ทำอะไร ใช้บอกประสิทธิภาพของ CPU ได้จริงหรือไม่ ลองนึกภาพง่ายๆว่า องค์ประกอบที่อยู่ภายใน CPU อย่าง ALU, Register, และ Instruction Decoder ต่างก็ต้องมีการทำงานร่วมกัน ซึ่งสัญญาณนาฬิกาเปรียบเหมือนตัวให้จังหวะ (ลองดูรูปที่ 9) เพื่อให้ทุกองค์ประกอบใน CPU ทำงานไปด้วยกันได้ ดังนั้นถ้าความถี่ของสัญญาณนาฬิกายิ่งสูงมาก จังหวะการทำงานขององค์ประกอบทั้งหมดใน CPU ก็จะทำงานเร็วขึ้นเป็นเงาตามตัว ฟังอย่างนี้ก็เหมือนสัญญาณนาฬิกาจะเป็นตัวชี้วัดที่บอกความสามารถของ CPU ได้ดี แต่ในความเป็นจริงแล้วความสามารถของ CPU ไม่ได้ขึ้นกับสัญญาณนาฬิกาแต่เพียงอย่างเดียว ซึ่งทำให้ในทางเทคนิคแล้ว การบอกความสามารถหรือความเร็วของคอมพิวเตอร์ (แต่ไม่ใช่เพื่อการขาย) จะใช้ FLOPS (Floating Point Operation Per Second) เช่น 2.2 TFLOPS มีความหมายว่า CPU นี้สามารถทำคำสั่งการคำนวณเลขทศนิยมได้ 2.2 ล้านล้านคำสั่งต่อวินาที (ย่อหน้าข้างบนยังมีแค่ 4คำสั่งเอง)

รูปที่ 9 รูปตัวอย่างแสดงสัญญาณนาฬิกา

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

ชวนคิดว่าวงจรบวกลบเลขตามรูปที่ 7 จะต้องใช้ทราสซิสเตอร์กี่ตัว ถ้าเป็น 32-bit RCA

Hint:     ใช้รูปที่ 3 กับ 5 ช่วยคิด

XOR Gate ใช้ทรานซิสเตอร์ 6 ตัว (2 Fan-in)

OR Gate ใช้ทรานซิสเตอร์ 2 ตัว(2 Fan-in)

 

เรียบเรียง

ราชวิชช์ สโรชวิกสิต (QuTE Co-Founder)

วิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี(มจธ)