14 điểm bởi GN⁺ 17 ngày trước | 1 bình luận | Chia sẻ qua WhatsApp
  • 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

  • Mvidiatrò 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

    • Tôi không thấy bug ở phần tụ điện, nhưng đã thêm cổng enable ở màn 2.4
      Đ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
    • Thứ tự của truth tables đang bị ngược. Nên học khái niệm trước rồi mới làm quiz, nhưng hiện tại thì đang ngược lại
      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 cũng rất thích game này. Có ai biết liệu các nhà phát triển còn hoạt động không?
  • 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ũng chẳng có kinh nghiệm liên quan gì mà vẫn thất bại y hệt
    • Có lẽ là do màu nền trông giống dây nối. Tôi sẽ sửa bằng cách đổi theme màu
    • Không biết giờ anh có phải đã chuyển sang mảng phần mềm rồi không
  • 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

    • Cảm ơn phản hồi. Ban đầu tôi có Act 0 để giải thích vật lý cơ bản và nguyên lý của PMOS/NMOS, nhưng vì không hài lòng với UI nên đã xóa đi. Tôi sẽ thêm lại
    • Tôi cũng ở tình huống tương tự. Tôi thích Turing Complete và các game của Zachtronics, nhưng đây là lần đầu tiên tôi thấy logic 3 trạng thái
      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ảm ơn!
  • 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

    • Gợi ý hay đấy. Tôi sẽ thêm vào bản cập nhật tiếp theo. Trong lúc đó, bạn cũng có thể dùng nút copy circuit để sao chép mạch rồi nhờ GPT kiểm tra. Nhân tiện, bạn có thể cho biết là màn số mấy không?
  • 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

    • Có lẽ có thể thêm vào hộp thông tin để người dùng bấm xem bất cứ lúc nào
      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
    • Ban đầu tôi đã xử lý kỹ những khái niệm cơ bản này trong Arc 0, nhưng đã xóa vì vấn đề UI
      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

    • Tôi đang có kế hoạch thêm tính năng đó. Gemini sẽ phân tích cấu trúc mạch để đưa ra nhận xét, đồng thời cung cấp các gợi ý động nữa