NAND 게이트 277,248개로 CPU와 RAM, 비디오까지 만든 컴퓨터, 브라우저에서 게이트 단위로 열어본다
- NAND-16은 277,248개 NAND 게이트로 CPU와 ROM, RAM, 비디오 메모리까지 전부 구성한 16비트 컴퓨터임. 시스템 메모리와 비디오 메모리도 NAND로 쌓은 SRAM 래치 배열로 만듦.
- 브라우저에서 데스크에서 칩, 게이트까지 줌인해 회로를 검사할 수 있고, 게이트를 오른쪽 클릭해 Fault Lab에서 고장낸 뒤 어떤 일이 벌어지는지 볼 수 있음. 논리 분석기로 버스와 클럭 파형도 봄.
- 화면의 모든 수치는 게이트 자체의 네트나 계측값에서 읽고, 감사 기능이 샘플링한 사이클을 독립 평가기로 다시 실행해 불일치가 있으면 빨간색으로 표시함.
- 클럭 16.4kHz에서 초당 2,310만 회 게이트 평가, 초당 4,000개 명령을 처리함. Bullet time 모드에서 한 사이클을 게이트 지연 단위로 녹화해 되감고 임계 경로를 볼 수 있음.
- 해커뉴스 댓글 다수는 AI가 만든 결과물이라고 봄. 2입력 NAND가 CMOS에서 트랜지스터 4개라 물리 칩이면 55만 개 규모라는 계산과 i386의 275,000개, ARM1의 25,000개 트랜지스터 비교가 오갔음.
Hacker News 의견들
이거 몇 년 전에 나왔으면 진짜 충격이었을 텐데 지금은 그냥 그러려니 함. 밑바닥부터 손으로 쌓은 거라면 대단한데.
나도 똑같이 생각했음. 몇 달 전에 Rust로 6502 에뮬레이터를 바이브코딩했는데 6502나 CPU 설계에 대해 배운 게 하나도 없더라. 손으로 했으면 그걸 증명할 방법도 없고.
페이지 열어보고 좀 실망함. 누가 진짜 시간 들여서 공부하고 직접 구현했으면 감동했을 텐데.
대학 때 lisp로 비슷한 걸 2주 만에 만들었는데 그것도 트랜지스터의 아날로그 전압부터 시작했음. LLM 보고 감탄하는 사람들은 처음으로 제대로 된 공구를 쥔 사람들 같음.
NAND 게이트 하나에 트랜지스터 2개니까 물리 칩으로 만들면 55만 개임. i386이 275,000 트랜지스터였는데.
CMOS 2입력 NAND는 트랜지스터 4개임. 그리고 ARM1은 25,000개였음.
게이트 수에 비해 컴퓨터가 초라하다고 생각했는데 ROM이랑 RAM까지 NAND 배열이라는 걸 보고 납득했음. Nand2Tetris에서 출발한 것 같더라.
NAND로 모든 게이트를 만들 수 있는 건 원래 아는 사실 아님? 회로를 설계하고 각 게이트를 NAND로 분해하면 되는 거라서 제목이 그렇게 대단한 표현인지 모르겠음.
NOR로도 같은 걸 할 수 있음. 아폴로 유도 컴퓨터가 거의 전부 NOR 게이트로 만들어졌음.
AI한테 'NAND 게이트로 16비트 컴퓨터 만들어줘' 치고 엔터 누른 거 아님? 예전엔 직접 만들었는데 이제는 그러지 않더라.
AI가 만들었든 아니든 잘 만들었음. 모바일에서도 부드럽게 돌아가고, 칩으로 줌인해서 돌아다니는 건 꼭 해봐야 함.
제일 먼저 더블클릭해서 래치로 날아가기를 눌렀는데 안 되길래 슬롭인가 했음. Tab 먼저 누르면 됨.
이제 AI 코딩이 사실상 해결됐으니 더 크게 생각해야 함. ARM 시뮬레이터는 누구나 만드니까. 나는 CT에서 장기별 혈류량을 근사하는 모델들을 Opus로 묶어서 만들고 있는데 결과가 지금까지 본 것보다 좋았음.
그 AI가 뭘 하는지 어떻게 앎? 맞는지 어떻게 확인함? 오늘 Opus한테 X-ray를 읽혀봤는데 별 정보를 못 뽑아내더라. 알고리즘 이어붙이는 것도 어려운 일 아님.
EE로 일하는데 AI 코딩은 인생이 바뀜. 코드베이스 파악에 몇 주가 걸렸는데 이제 드라이버 수정이나 기능 추가를 직접 해버림.
직접 안 했으면 무슨 의미가 있음? 프로듀서 역할도 중요하긴 한데 만든 사람과 시킨 사람은 다르지.
AI 데모는 다 똑같이 생겼음. 줌아웃하면 프레임 버퍼가 비디오 램에 그대로 보임.