- เกมจำลองเพื่อการเรียนรู้ ที่ให้ผู้เล่นค่อย ๆ สร้าง สแตกการประมวลผลทั้งหมดตั้งแต่ทรานซิสเตอร์ไปจนถึง GPU ทีละขั้น
- แต่ละช่วงแบ่งเป็น ACT โดยพัฒนาต่อเนื่องจาก ทรานซิสเตอร์·ลอจิกเกต·ALU·โปรเซสเซอร์·GPU·เชดเดอร์
- ใน ACT 1 ผู้เล่นจะสร้างลอจิกเกตพื้นฐานด้วย NMOS·PMOS และใน ACT 2 จะต่อยอดไปสู่ ALU และคอร์โปรเซสเซอร์
- ส่วน ซอฟต์แวร์·GPU·เชดเดอร์ ซึ่งเป็นช่วงถัดไป ขณะนี้อยู่ในสถานะ COMING SOON และกำลังพัฒนา
- เป็น โปรเจกต์อินเทอร์แอกทีฟเพื่อการศึกษา ที่เปิดโอกาสให้สัมผัสทั้งการออกแบบฮาร์ดแวร์และการเขียนโปรแกรมแบบบูรณาการ
ภาพรวมเกม Mvidia
- Mvidia คือ เกมการเรียนรู้แบบอินเทอร์แอกทีฟ ที่ให้ผู้ใช้ได้สัมผัสกระบวนการ ออกแบบและสร้าง GPU ด้วยตัวเอง แบบเป็นลำดับขั้น
- ตัวเกมเริ่มจาก ทรานซิสเตอร์ แล้วค่อยพัฒนาไปเป็น ลอจิกเกต, ALU, โปรเซสเซอร์, GPU
- แต่ละช่วงถูกแบ่งเป็น ‘ACT’ และในแต่ละ ACT ประกอบด้วย โจทย์การเรียนรู้และการลงมือสร้าง หลายรายการ
- ความคืบหน้าจะแสดงในรูปแบบ อัตราความสำเร็จ (เช่น 0/10 COMPLETED) ทำให้มองเห็นพัฒนาการในการเรียนรู้ได้ชัดเจน
ACT 1: วันแรก (YOUR FIRST DAY)
- หัวข้อคือ Transistors → Logic Gates เป็นช่วงที่ใช้ทรานซิสเตอร์เพื่อสร้างลอจิกเกตพื้นฐาน
- โจทย์หลักประกอบด้วย
- 1.1 The Switch: ใช้ NMOS เป็นสวิตช์
- 1.2 The Other Switch: ใช้ PMOS เป็นสวิตช์
- 1.3 Two Halves: รวม NMOS และ PMOS เข้าด้วยกัน
- 1.4 NAND It: สร้างเกต NAND
- 1.5 The Dual: สร้างคู่ของลอจิกเกต
- 1.6 Truth Tables: สร้างตารางค่าความจริง
- 1.7 AND Gate, 1.8 OR Gate, 1.9 XOR Gate: สร้างเกตพื้นฐาน
- 1.10 Choose Wisely: รวมเกตทั้งสามเพื่อสร้างโครงสร้างการเลือก
- เมื่อจบ ACT 1 จะปลดล็อก ACT 2: THE CORE
ACT 2: คอร์ (THE CORE)
- หัวข้อคือ Gates → ALU → Processor เป็นช่วงที่ใช้ลอจิกเกตเพื่อสร้างหน่วยคำนวณและตรรกะ (ALU) และโปรเซสเซอร์
- ประกอบด้วยโจทย์ย่อยทั้งหมด 34 รายการ โดยแต่ละรายการดำเนินต่อจากผลลัพธ์ของขั้นก่อนหน้า
- ขั้นสำคัญประกอบด้วย
- 2.1 Half Adder, 2.5 Full Adder: สร้างวงจรบวก
- 2.3 The Decoder, 2.25 Register File: ออกแบบโครงสร้างสำหรับเลือกและเก็บข้อมูล
- 2.4 The Capacitor, 2.7 1T1C, 2.12 The Sense Amp, 2.17 The Array: สร้างเซลล์หน่วยความจำและวงจรขยายสัญญาณตรวจจับ
- 2.10 Adding Bytes, 2.13 Hex Racer, 2.15 Bit Twiddling: ขยายการคำนวณไปสู่ระดับไบต์
- 2.20 Edge Trigger, 2.21 Refresh, 2.31 Refresh Controller: ควบคุมนาฬิกาและการรีเฟรชหน่วยความจำ
- 2.27 The ALU, 2.30 Fetch, Decode, Execute, 2.32 The Mvidia Core: สร้างโครงสร้างหลักของโปรเซสเซอร์ให้สมบูรณ์
- 2.33 DRAM Memory, 2.34 Mvidia Core v2: ขยายด้วย DRAM และอัปเกรดคอร์
- เมื่อจบ ACT 2 จะปลดล็อก ACT 3: THE SOFTWARE
ACT 3: ซอฟต์แวร์ (THE SOFTWARE)
- หัวข้อคือ Programming the Processor เป็นช่วงของการโปรแกรมโปรเซสเซอร์ที่สร้างเสร็จแล้ว
- ขณะนี้อยู่ในสถานะ COMING SOON และยังไม่เปิดเผยรายละเอียดของโจทย์อย่างเป็นรูปธรรม
ACT 4: GPU (THE GPU)
- หัวข้อคือ Building a Graphics Processor เป็นช่วงของการสร้างหน่วยประมวลผลกราฟิก
- ขณะนี้อยู่ในสถานะ COMING SOON และมีแผนจะเพิ่มโจทย์เกี่ยวกับการออกแบบโครงสร้าง GPU ในอนาคต
ACT 5: เชดเดอร์ (THE SHADER)
- หัวข้อคือ Programming the GPU เป็นช่วงของการเขียนโปรแกรมเชดเดอร์โดยใช้ GPU
- ขณะนี้อยู่ในสถานะ COMING SOON และมีแผนจะขยายเป็นเนื้อหาการเรียนรู้ด้านการเขียนโปรแกรม GPU ในภายหลัง
1 ความคิดเห็น
ความเห็นจาก Hacker News
เป็นโปรเจ็กต์ที่เจ๋งมาก
แต่ในด่าน truth tables มีโจทย์ซ้ำหลายข้อ และข้อแรกก็ให้เวลาแค่ 1 วินาที
ส่วนของคาปาซิเตอร์ก็ค่อนข้างสับสน เพราะคาปาซิเตอร์ไม่มีเกต ‘enable’ แต่ใน 2.7(1T1C) ต้องสร้างด้วยทรานซิสเตอร์โดยตรง
แต่ตอนนี้ใน primitive มีเกต enable อยู่แล้ว เลยไม่จำเป็นต้องใช้ NMOS gate
เลยสงสัยว่าสร้างโดยมี LLM ช่วย หรือเปล่า โดยเฉพาะเวิร์กโฟลว์ที่ทำ UI ออกมาได้ดีแบบนี้น่าประทับใจมาก
การทำคาปาซิเตอร์นี่ลังเลอยู่เยอะตั้งแต่แรก เพราะทำโมเดลคาปาซิเตอร์แบบสมบูรณ์ให้เข้ากับระบบซิมูเลชันได้ยาก
บั๊กของ truth tables มีแผนจะแก้ ไว้ได้ดาวจากการเล่นใน endless mode
ระหว่างพัฒนาใช้ Claude เยอะมาก ส่วนงานเดินสายและซิมูเลชันยากหน่อย แต่กราฟิกทำเสร็จได้ด้วยการสั่งละเอียดมาก
ตอนนี้นิยามของ NAND, NOR, Inverter มาเฉลยหลังทำควิซแล้ว ควรสลับลำดับจะดีกว่า
อีกอย่าง ตัวจับเวลา สั้นเกินไป ขนาดผมรู้ทุกข้อยังกรอกไม่ทันเวลาเลย อาจพิจารณาเอาตัวจับเวลาออกไปเลยก็ได้
ถ้าชอบเกมนี้ ก็ขอแนะนำ Turing Complete ด้วย
ช่วงท้ายจะได้สร้างทั้ง CPU และภาษาแอสเซมบลีของตัวเอง แต่อยู่ในสถานะ Early Access มานานและดูเหมือนหยุดพัฒนาไปพักใหญ่แล้ว
ผมออกแบบ mixed-signal IC มามากกว่า 10 ปี แต่ยังไม่ผ่านด่านแรกเลย
โจทย์คือให้ทำ NMOS ที่เมื่ออินพุตเป็น 1 เอาต์พุตเป็น 0 และเมื่อเป็น 0 ให้เป็นสถานะ Z
ต้องต่อ drain เข้ากับเอาต์พุต, source เข้ากับ GND, และ gate เข้ากับอินพุต
แต่ผลคือเทสต์ล้มไปครึ่งหนึ่ง มารู้ทีหลังว่าเส้นหนาสีเทาที่พื้นหลัง ดูเหมือนสายไฟเลยทำให้เข้าใจผิด ต้องลากเส้นเชื่อมเองเพิ่ม
มีฟีดแบ็กอยู่หลายข้อ
ไอเดียดีมาก แต่ในมุมคนที่เคยเล่น Turing Complete มาแล้ว ผมอยากข้ามด่านต้น ๆ ไปส่วนที่เฉพาะทาง GPU มากกว่า
การจะเข้าใจ NAND ผ่านทรานซิสเตอร์แบบสัญชาตญาณนั้นยาก เลยรู้สึกเหมือนมีกำแพงความยาก
ระดับความยากแกว่งมาก แต่โหมด easy ก็โอเค
ด่านรีเฟรชคาปาซิเตอร์เร็วเกินไปจนพิมพ์คีย์บอร์ดตามไม่ทัน
พอสายเริ่มซับซ้อน ความอ่านง่าย ก็ลดลงอย่างรวดเร็ว และที่แยกสีหรือกำหนดเส้นทางเองไม่ได้ก็ค่อนข้างไม่สะดวก
บน Firefox เลือกจุดเชื่อมต่อได้ยาก และถ้าลากเมาส์ตรงขอบจอแล้ว เลื่อนหน้าจอ (pan) ได้ก็น่าจะดี
“show solution” ตอนนี้ยังเป็นแค่ใบ้มากกว่าจะเป็นคำตอบจริง ถ้ามีตัวเลือกให้ดูเทสต์เคสเพิ่มก็น่าจะดี
เป็นไอเดียที่เจ๋งมากจริง ๆ
แต่เพราะพื้นฐานไม่พอ เลยอ่านข้อความในทิวทอเรียลไม่ค่อยเข้าใจ และก็ติดตั้งแต่ด่านแรก
เกต NOT ในด่าน 3 ก็ยังไม่ค่อยเก็ตเหมือนกัน แต่ก็รู้สึกสดใหม่ดี เพราะไม่เคยเล่น พัซเซิลวงจรแบบ 3-state มาก่อน ถ้าใส่สตอรี่น่ารัก ๆ เข้าไปด้วย น่าจะไปได้ดีบน Steam
เป็นไอเดียที่ดี เลยเพิ่มเข้าไปใน HN Arcade แล้ว
ควรมี “ปุ่มโชว์คำตอบถ้าลองมา 10 ครั้งแล้วยังไม่ได้”
แบบนั้นจะได้แยกออกว่าโจทย์พังเองหรือว่าผมทำผิด
อยากได้ โหนดชั่วคราว สำหรับทดสอบเอาต์พุต
ถ้าให้ดียิ่งขึ้นไปอีก ถ้า truth table อัปเดตแบบเรียลไทม์ โดยไม่ต้องกดรันเทสต์ ก็น่าจะช่วยให้เรียนรู้ได้มากขึ้น
สำหรับการเรียนรู้ น่าจะช่วยถ้ามีการอธิบาย ตัวย่อ (nmos, pmos, gnd, vdd) แบบเต็มสักครั้ง
อินเทอร์เฟซสะอาดดี และเติมเต็มช่องว่างของเครื่องมือเชิงการศึกษาได้ดี
แต่ถึงจะขยายตัวย่อออกมา ก็อาจไม่ได้ช่วยมากนักเพราะตัวคำเองก็ไม่ได้สื่อความหมายตรงนัก
ตอนนี้แก้ชั่วคราวไว้แล้ว แต่จะเพิ่มเวอร์ชันที่ polished กว่านี้กลับเข้ามาอีก และจะทำให้เลือกดูได้
เป็นเกมที่ยอดเยี่ยม ถ้าเพื่อการเรียนรู้ หลังผ่านแต่ละด่านแล้วสามารถดู คำตอบตัวอย่าง หรือคำอธิบายได้ก็น่าจะดี