- Trò chơi mô phỏng giúp học tập bằng cách xây dựng toàn bộ stack điện toán từ transistor đến GPU theo từng bước
- Mỗi giai đoạn được cấu thành theo ACT, phát triển lần lượt từ transistor, cổng logic, ALU, bộ xử lý, GPU đến shader
- Trong ACT 1, người chơi tạo các cổng logic cơ bản bằng NMOS và PMOS; trong ACT 2, tiếp tục mở rộng để hoàn thiện ALU và lõi bộ xử lý
- Các phần ở giai đoạn sau như phần mềm, GPU và shader hiện đang trong trạng thái COMING SOON và vẫn đang được phát triển
- Đây là dự án tương tác mang tính giáo dục cho phép trải nghiệm tích hợp cả thiết kế phần cứng lẫn lập trình
Tổng quan về trò chơi Mvidia
- Mvidia là trò chơi học tập tương tác cho phép người dùng trải nghiệm theo từng bước quá trình tự thiết kế và xây dựng GPU
- Trò chơi bắt đầu từ transistor rồi phát triển lên cổng logic, ALU, bộ xử lý, GPU
- Mỗi giai đoạn được chia thành các ACT, và mỗi ACT gồm nhiều nhiệm vụ học tập và triển khai
- Tiến độ được hiển thị dưới dạng tỷ lệ hoàn thành (ví dụ: 0/10 COMPLETED), giúp theo dõi mức độ học tập một cách trực quan
ACT 1: Ngày đầu tiên (YOUR FIRST DAY)
- Chủ đề là Transistors → Logic Gates, giai đoạn sử dụng transistor để tạo nên các cổng logic cơ bản
- Cấu trúc nhiệm vụ chính
- 1.1 The Switch: dùng NMOS làm công tắc
- 1.2 The Other Switch: dùng PMOS làm công tắc
- 1.3 Two Halves: kết hợp NMOS và PMOS
- 1.4 NAND It: xây dựng cổng NAND
- 1.5 The Dual: tạo cặp cổng logic
- 1.6 Truth Tables: lập bảng chân trị
- 1.7 AND Gate, 1.8 OR Gate, 1.9 XOR Gate: triển khai các cổng cơ bản
- 1.10 Choose Wisely: kết hợp ba cổng để hoàn thiện cấu trúc lựa chọn
- Khi hoàn thành ACT 1, ACT 2: THE CORE sẽ được mở khóa
ACT 2: Lõi (THE CORE)
- Chủ đề là Gates → ALU → Processor, giai đoạn sử dụng cổng logic để xây dựng bộ số học logic (ALU) và bộ xử lý
- Gồm tổng cộng 34 nhiệm vụ chi tiết, mỗi nhiệm vụ được triển khai dựa trên kết quả từ bước trước
- Các giai đoạn chính
- 2.1 Half Adder, 2.5 Full Adder: xây dựng mạch cộng
- 2.3 The Decoder, 2.25 Register File: thiết kế cấu trúc chọn và lưu trữ dữ liệu
- 2.4 The Capacitor, 2.7 1T1C, 2.12 The Sense Amp, 2.17 The Array: xây dựng ô nhớ và bộ khuếch đại cảm nhận
- 2.10 Adding Bytes, 2.13 Hex Racer, 2.15 Bit Twiddling: mở rộng phép toán ở mức byte
- 2.20 Edge Trigger, 2.21 Refresh, 2.31 Refresh Controller: điều khiển xung nhịp và làm tươi bộ nhớ
- 2.27 The ALU, 2.30 Fetch, Decode, Execute, 2.32 The Mvidia Core: hoàn thiện cấu trúc cốt lõi của bộ xử lý
- 2.33 DRAM Memory, 2.34 Mvidia Core v2: mở rộng dựa trên DRAM và nâng cấp lõi
- Khi hoàn thành ACT 2, ACT 3: THE SOFTWARE sẽ được mở khóa
ACT 3: Phần mềm (THE SOFTWARE)
- Chủ đề là Programming the Processor, giai đoạn lập trình bộ xử lý đã hoàn thiện
- Hiện ở trạng thái COMING SOON, nội dung nhiệm vụ cụ thể vẫn chưa được công bố
ACT 4: GPU (THE GPU)
- Chủ đề là Building a Graphics Processor, giai đoạn xây dựng bộ xử lý đồ họa
- Hiện ở trạng thái COMING SOON, trong tương lai sẽ bổ sung các nhiệm vụ liên quan đến thiết kế kiến trúc GPU
ACT 5: Shader (THE SHADER)
- Chủ đề là Programming the GPU, giai đoạn lập trình shader bằng GPU
- Hiện COMING SOON, dự kiến sau này sẽ mở rộng thành nội dung học tập về lập trình GPU
1 bình luận
Ý kiến trên Hacker News
Dự án này thật sự rất tuyệt
Chỉ là ở phần truth tables có khá nhiều bài bị trùng, và bài đầu tiên chỉ có giới hạn thời gian 1 giây
Phần tụ điện cũng gây khó hiểu. Tụ điện không có cổng ‘enable’, nhưng ở 2.7(1T1C) thì phải tự làm trực tiếp bằng transistor
Nhưng hiện tại primitive đã có sẵn cổng enable, nên không còn cần cổng NMOS nữa
Không biết có phải nó được làm với sự trợ giúp của LLM hay không. Đặc biệt tôi rất ấn tượng với quy trình làm UI tốt đến vậy
Điều đó là cần thiết do cấu trúc của hệ thống mô phỏng
Cách triển khai tụ điện ngay từ đầu đã khiến tôi phải đắn đo khá nhiều. Rất khó tạo một mô hình tụ điện hoàn chỉnh mà vẫn phù hợp với hệ thống mô phỏng
Bug ở phần truth tables sẽ được sửa. Sao chỉ có thể kiếm được khi chơi endless mode
Trong quá trình phát triển tôi đã dùng Claude rất nhiều. Phần đi dây và mô phỏng khá vất vả, nhưng phần đồ họa thì tôi đã hoàn thiện bằng cách chỉ dẫn rất chi tiết
Bạn lại được học định nghĩa của NAND, NOR, Inverter sau khi làm quiz xong. Đổi lại thứ tự sẽ tốt hơn
Ngoài ra bộ đếm giờ quá ngắn. Ngay cả tôi đã biết hết đáp án cũng khó nhập kịp trong thời gian đó. Có lẽ nên cân nhắc bỏ hẳn timer
Nếu thích trò này thì cũng nên thử Turing Complete
Về cuối bạn có thể tự tạo CPU và ngôn ngữ assembly của riêng mình. Tuy nhiên nó vẫn đang ở trạng thái Early Access và đã đứng yên khá lâu
Tôi đã thiết kế mixed-signal IC hơn 10 năm mà còn không qua nổi màn đầu tiên
Bài yêu cầu làm NMOS sao cho khi đầu vào là 1 thì đầu ra là 0, còn khi là 0 thì ở trạng thái Z
Drain phải nối vào đầu ra, source nối GND, gate nối đầu vào
Nhưng một nửa số bài test lại thất bại. Sau đó tôi mới nhận ra các đường xám đậm ở nền trông giống như dây nối nên gây nhầm lẫn. Phải tự thêm dây nối trực tiếp
Tôi có vài góp ý
Ý tưởng rất hay, nhưng từ góc nhìn của người đã chơi Turing Complete, tôi muốn bỏ qua các màn đầu để vào luôn phần chuyên về GPU
Tôi thấy khó mà hiểu trực quan NAND bằng transistor, nên có cảm giác bị chặn bởi một bức tường độ khó
Độ khó dao động khá lớn, nhưng easy mode thì ổn
Màn refresh tụ điện quá nhanh nên tôi không kịp thao tác bằng bàn phím
Khi đi dây trở nên phức tạp thì độ dễ đọc giảm rất mạnh, và việc không thể phân biệt bằng màu hay chỉ định đường đi thủ công khá bất tiện
Trên Firefox thì việc chọn điểm nối không ổn lắm, và sẽ hay hơn nếu có thể di chuyển màn hình (pan) bằng cách kéo chuột ở mép
“show solution” chỉ ở mức gợi ý chứ không phải lời giải thực sự. Sẽ tốt hơn nếu có tùy chọn hiển thị thêm test case
Ý tưởng thật sự rất tuyệt
Nhưng vì thiếu kiến thức nền nên tôi không hiểu nổi các thông điệp hướng dẫn, và bị mắc ngay từ màn đầu tiên
Tôi vẫn chưa thật sự nắm được cổng NOT ở màn 3. Dù vậy, đây là lần đầu tôi gặp kiểu puzzle mạch 3 trạng thái như thế này nên thấy rất mới mẻ. Nếu thêm một cốt truyện dễ thương thì có lẽ lên Steam cũng ổn
Ý tưởng hay nên tôi đã thêm nó vào HN Arcade
Cần có một nút kiểu “nếu thử 10 lần mà vẫn không được thì hiện đáp án”
Như vậy mới phân biệt được là bài toán bị lỗi hay là do tôi làm sai
Sẽ hay nếu có nút tạm thời để test đầu ra
Xa hơn nữa, nếu truth table được cập nhật theo thời gian thực mà không cần chạy test thì có lẽ sẽ hữu ích cho việc học
Với mục đích học tập, sẽ tốt hơn nếu các chữ viết tắt (nmos, pmos, gnd, vdd) được viết đầy đủ và giải thích ít nhất một lần
Giao diện gọn gàng và lấp rất đúng một khoảng trống trong mảng giáo dục
Tuy nhiên, ngay cả khi viết đầy đủ thì chúng cũng không hẳn là trực quan hơn nhiều
Tôi đã có bản sửa tạm thời, nhưng sẽ thêm lại bằng một phiên bản polished hơn. Tôi sẽ làm để người dùng có thể chọn xem hay không
Đây là một trò chơi rất tuyệt. Với mục đích học tập, sẽ tốt hơn nếu sau khi qua từng màn có thể xem lời giải mẫu hoặc phần giải thích