Chip Builder: 논리 게이트에서 CPU까지 교육용 게임

Chip Builder은 기본 논리 게이트로부터 CPU 구축을 가능하게 함

Chip Builder은 컴퓨터 아키텍처의 기초를 가르치기 위해 설계된 교육용 시뮬레이션 게임입니다. 이 게임은 사용자가 기본 논리 게이트(AND, OR, NOT)를 배치하고 점차적으로 더 복잡한 구성 요소인 가산기, 멀티플렉서, 메모리 유닛, 그리고 산술 논리 장치(ALU)를 조립하여最終的に 어셈블리 프로그램을 실행할 수 있는 완전한 CPU 설계를 완성하는 점진적인 학습 경로를 따릅니다.

사용자 경험 및 인터페이스 도전 과제

커뮤니티의 초기 피드백에서 게임의 현재 사용자 인터페이스 및 경험(UX)에서 몇 가지 중요한 마찰점이 강조되었습니다. 사용자들은 상호작용 모델이 직관적이지 않다고 보고했으며, 특히 '모드 기반' 워크플로우와 관련하여 그러했습니다.

도구 및 상호작용

  • 모드 전환: 사용자들은 'select', 'wire', 'delete' 모드 간 전환이 번거롭다고 자주 언급했습니다. 커뮤니티에서는 연결 지점에서 직접 드래그하여 와이어를 생성하는 것과 같은 컨텍스트 기반 행동을 구현하는 것을 제안했습니다.
  • 캔버스 컨트롤: 피드백에 따르면 기본 캔버스 탐색(팬/줌)이 부족하고 겹치는 구성 요소를 이동하는 데 문제가 있다고 나타났습니다.
  • 입력 처리: 일부 사용자는 게이트에 입력을 연결하는 데 어려움을 보고했으며, 다른 사용자들은 캔버스에 user-select: none;가 없어서 구성 요소 이동 중에 의도치 않은 텍스트 하이라이트가 발생한다고 지적했습니다.

기술적 안정성 및 진행 상황

  • 상태 지속성: 반복되는 불만은 저장 시스템이 부족하다는 점이며, 페이지 새로 고침 또는 탐색 시 진행 상황이 손실된다고 보고되었습니다.
  • 레벨 디자인: 일부 사용자는 NAND 게이트 레벨을 넘어 진행할 수 없거나 'Pipelining' 레벨이 손상되어 배치할 구성 요소가 부족하다고 보고했습니다.
  • 테스트 가시성: 사용자들은 논리 보드와 상호작용하면서 테스트 결과를 동시에 볼 수 있기를 원했는데, 현재 탭 기반 시스템은 캔버스를 클릭할 때 뷰를 전환하기 때문입니다.

기존 교육 도구와의 비교

Chip Builder은 'NAND-to-CPU' 교육 도구가 포화된 분야에 진입했습니다. 커뮤니티 구성원들은 이 프로젝트를 여러 가지 확립된 대안과 비교했습니다.

  • Turing Complete: 스팀에서 이용 가능한 더 다듬어진 대안으로 자주 언급되며, 작동하는 CPU로 가는 유사한 경로를 사용자에게 안내합니다.
  • NANDGame: NAND 게이트로부터 컴퓨터를 구축하기 위한 잘 알려진 웹 기반 대안입니다.
  • Nand2Tetris: 하드웨어-소프트웨어 스택을 이해하기 위한 기초 과정 및 프로젝트입니다.
  • Digital Logic Sim (Sebastian Lague): NAND 게이트를 주요 구성 요소로 시작하는 또 다른 시뮬레이션 도구입니다.
  • Mvidia: GPU 아키텍처에 초점을 맞춘 유사한 게임입니다.

학습을 위한 커뮤니티 추천

게임 시뮬레이션을 넘어, 경험 많은 사용자들은 CPU 아키텍처에 대한 이해를 깊게 하고자 하는 사람들을 위해 실제 연습을 추천합니다:

나는 작동하는 CPU에 도달할 때까지 Turing Complete를 플레이했으며, 매우 재미있었다고 느꼈습니다.その後, 나는 Verilog로 나만의 RV32I(가장 간단한 RISC-V 명령어 세트) 코어를 구축했습니다... 나는 CPU가 어떻게 작동하는지 배우고 싶은 사람에게 이 연습을 추천합니다.

또한, Ben Eater의 6502 시리즈는 이러한 개념의 물리적 구현에 관심이 있는 사람들에게 강력히 추천됩니다. 구체적으로 브레드보드에서 6502 마이크로프로세서를 ROM과 RAM에 연결하는 것을 말합니다.

Sources