1P by GN⁺ 13일전 | ★ favorite | 댓글 1개

최소 컴퓨터

  • 초기 생각: 과거에는 키트를 주문하여 집에서 컴퓨터를 조립할 수 있었음. 현대 컴퓨터는 복잡한 칩으로 구성되어 있으며, 많은 전력을 필요로 함. 하지만, 현대 컴퓨터를 집에서 쉽게 조립할 수 있는 키트로 만들 수 있을지에 대한 실험을 시작함.
  • 목표: Debian Linux, vi, gcc, make를 실행할 수 있는 컴퓨터를 만드는 것. 8MB RAM, 1 MIPS CPU, SD 카드, USB를 목표로 설정함.

부품 선택

  • USB 인터페이스: 8핀 칩 중 USB를 지원하는 칩은 거의 없음. PL2303GL과 ATTINYx5 시리즈가 가능함.
  • RAM: SOIC-8 PSRAM 사용. 8MB RAM을 쉽게 구할 수 있음.
  • 마이크로컨트롤러: 여러 옵션을 고려했으나, STM32G031J6가 가장 적합하다고 판단됨. 32KB 플래시, 8KB RAM, 64MHz 클럭 속도를 가짐.

하드웨어 설계

  • 콘솔: UART 핀은 다른 것과 결합할 수 없음.
  • RAM: SPI PSRAM은 QSPI 모드를 지원하나, 핀 수 제한으로 일반 SPI 모드 사용.
  • SD 카드: 핀 부족 문제를 해결하기 위해 RAM과 SD 카드를 동일한 핀에 연결하는 방법을 고안함.

소프트웨어 이야기

  • 에뮬레이터: 기존 MIPS 에뮬레이터를 재사용함. 32KB 플래시를 부트로더와 메인 코드로 나눔.
  • 부트로더: SD 카드에서 펌웨어 업데이트를 지원하는 부트로더를 개발함.

성능

  • 오버클럭: STM32G031은 64MHz로 지정되어 있으나, 150MHz까지 오버클럭 가능함. 148MHz에서 에뮬레이트된 MIPS CPU는 약 1.65MHz MIPS R3000과 동등한 성능을 보임.

조립

  • 초기 조립: SD 카드 소켓, 커패시터, 저항, 마이크로컨트롤러, USB-시리얼 칩을 순서대로 납땜함.
  • 2차 조립: 부트로더를 마이크로컨트롤러에 프로그래밍한 후, RAM 칩을 납땜함.

다운로드 및 사용

  • 파일: 필요한 모든 파일은 다운로드 패키지에 포함되어 있음. SD 카드 이미지를 작성하고, 펌웨어를 SD 카드에 복사하여 부트로더가 첫 부팅 시 이를 인식하도록 함.
  • 사용법: 장치는 셸 프롬프트로 부팅되며, 추가로 bash를 실행할 수 있음. RAM 부족을 방지하기 위해 스왑 파일을 사용하는 것이 권장됨.
Hacker News 의견
  • SDIO의 세 핀과 결합할 수 있는 핀에 대한 고민 끝에, RAM의 nCS를 SD 카드의 CLK로, RAM의 CLK를 SD 카드의 CMD로, RAM의 MOSI를 SD 카드의 DAT로 사용할 수 있음
  • USB와의 인터페이스를 위해 별도의 칩을 사용하는 것이 아쉬움. USB는 복잡한 프로토콜이며, 기본적인 V-USB를 제외하고는 전문 하드웨어와 소프트웨어 스택이 필요함. 반면 SPI는 매우 간단하며, 최소한의 하드웨어로도 가능함
  • 과거 데스크탑과 랩탑에 노출된 직렬 및 병렬 포트가 있었던 것이 그리움. USB 대신 UART, I2C, SPI를 사용하고, 데이터가 많은 주변 장치에는 IEEE 802.3 이더넷 링크를 사용했다면 좋았을 것이라는 생각을 함
  • 이 기사는 매우 유익하고 재미있었음
  • 보드 두께(0.8mm)가 필요하다는 점을 언급하는 것이 좋을 것임. 이는 "USB-C 엣지 커넥터"가 플러그에 맞도록 하기 위함임
  • 8핀 요구사항에 조금 더 유연했으면 프로젝트가 더 간단해졌을 것이라는 생각을 함. 몇 개의 핀이 더 있었다면 복잡성이 크게 줄어들었을 것임
  • 거의 두 개의 칩으로 구성됨. 하나는 USB-시리얼 IC임. SD 카드를 포함하지 않으면 총 핀 수가 매우 적음
  • 이 프로젝트는 매우 멋지지만, 초보자를 위한 새로운 컴퓨터 키트를 만들겠다는 목표와는 모순됨. 초보자에게는 SOIC8이나 SOIC28이나 큰 차이가 없으며, 더 큰 칩이 더 유용한 컴퓨터를 만들 수 있음
  • 서버리스 IoT 인프라에 사용될 수 있을 것이라는 상상을 함. PCB 제공업체가 에너지와 이더넷만 제공하면 SSH 접속이 가능할 것임. 작업이 완료되면 금속/PCB를 재활용할 수 있을 것임
  • RISC-V로도 가능할 것임. 간단한 회사를 만들어 오래된 휴대폰을 AI로 루팅하고 인터넷과 에너지를 제공하는 것을 생각함
  • 보드를 생략하고 회로 조각으로 만들고 싶은 충동이 있음
  • 개인적인 이유로 RISC-V에 알레르기가 있음
  • SD 카드 대신 8핀 SPI 플래시 칩을 저장용으로 사용하는 것도 귀여울 것임