처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.05.24 18

1980년 우주왕복선 Spacelab 컴퓨터를 회로 단위로 역설계한 이야기

Hacker News 원문 보기
1980년 우주왕복선 Spacelab 컴퓨터를 회로 단위로 역설계한 이야기

45년 전 우주를 날던 컴퓨터를 다시 뜯어본다

레트로 컴퓨팅 분야에서 유명한 엔지니어 Ken Shirriff 가 또 한 번 흥미로운 분해 글을 올렸어요. 이번 대상은 1980년대 초반 NASA의 우주왕복선(Space Shuttle) 미션에 실렸던 Spacelab 컴퓨터의 회로 기판입니다. Spacelab은 우주왕복선 화물칸에 실어서 우주 공간에서 과학 실험을 수행하던 모듈형 실험실이었는데요. 유럽우주국(ESA)이 NASA와 협력해서 만든 시스템이고, 1983년 첫 비행을 시작했어요. 이 안에 들어가던 컴퓨터를 Ken이 직접 손에 넣고 회로를 한 줄 한 줄 따라가며 어떻게 동작하는지 복원해낸 거예요.

왜 이런 작업이 중요한가

요즘 우리가 쓰는 컴퓨터는 CPU 하나에 수십억 개의 트랜지스터가 들어가 있고, 마이크로코드며 캐시며 모든 게 칩 안에 숨겨져 있죠. 그런데 1980년 무렵의 컴퓨터는 달랐어요. CPU에 해당하는 연산 기능조차 개별 IC 칩 수십~수백 개를 PCB 위에 늘어놓고 와이어로 연결해서 만들었거든요. 이걸 bit-slice 아키텍처 라고 부르는데, 4비트짜리 작은 ALU(산술논리연산장치) 칩을 여러 개 이어붙여서 16비트나 32비트 프로세서를 구성하는 방식이었어요. AMD의 Am2901 같은 칩이 대표적이고, Spacelab 컴퓨터도 이런 비슷한 구조를 따르고 있어요.

우주에서 쓰는 컴퓨터는 또 한 가지 제약이 더 있어요. 바로 방사선 이에요. 우주 공간에는 지구 대기권이 막아주지 못하는 고에너지 입자가 끊임없이 날아드는데, 이게 반도체 셀을 때리면 비트가 뒤집히는 "single event upset"이라는 현상이 일어나요. 그래서 우주용 컴퓨터는 일부러 옛날 공정(피쳐 사이즈가 큰 공정)으로 만들거나, 같은 회로를 세 개 두고 다수결로 결과를 정하는 TMR(Triple Modular Redundancy) 같은 기법을 씁니다. Spacelab 컴퓨터의 회로에도 이런 신뢰성 확보를 위한 설계 흔적이 곳곳에 남아 있다고 해요.

어떻게 역설계하는가

Ken의 작업 방식은 정말 인내심의 결정체예요. 먼저 보드를 고해상도로 사진 찍고, 칩의 마킹을 읽어서 어떤 IC가 쓰였는지 데이터시트를 찾아냅니다. 1980년대 군용/우주용 칩은 데이터시트 자체가 기밀이었던 경우가 많아서, 이미 공개된 비슷한 칩의 동작을 보고 추론해야 할 때도 많아요. 그다음에는 현미경 수준의 사진을 보면서 PCB 트레이스(회로 패턴)를 한 줄씩 따라가며 어떤 핀이 어디에 연결됐는지 도식화하는 작업이 이어집니다. 이게 "리버스 엔지니어링"이라는 단어 그대로의 의미죠.

이번 글에서는 특히 컴퓨터의 마이크로코드 시퀀서 부분이 자세히 다뤄졌어요. 마이크로코드라는 게 뭐냐면, CPU가 하나의 머신 인스트럭션(예: ADD)을 받았을 때 그걸 더 작은 단계들(레지스터에서 값을 꺼내고, ALU에 전달하고, 결과를 다시 저장하는 등)로 쪼개서 실행하는 내부 프로그램이에요. 시퀀서는 이 단계들을 어떤 순서로 진행할지 결정하는 일종의 "작은 CPU 안의 CPU"입니다.

80386 마이크로코드 역공학과의 연결

사실 같은 시점에 또 다른 화제 글이 하나 있었는데요. Andrew Jenner라는 분이 인텔 80386 CPU의 마이크로코드를 통째로 디스어셈블해서 공개한 작업이에요. 80386은 1985년에 나온 인텔 최초의 32비트 x86 프로세서로, 오늘날 우리가 쓰는 모든 x86-64 CPU의 조상이라고 할 수 있죠. 이 칩 안에 숨겨져 있던 마이크로코드를 다이 샷(die shot, 칩 내부를 현미경으로 찍은 사진)에서 비트 패턴을 읽어내고, 그걸 다시 사람이 읽을 수 있는 형태로 풀어낸 거예요.

이 두 작업이 같은 결을 갖고 있어요. 한쪽은 보드 레벨, 한쪽은 다이 레벨이라는 차이는 있지만, "옛날 컴퓨터가 어떻게 동작했는지 칩 안에서부터 복원한다" 는 점에서 같습니다. 그리고 이런 작업이 단순한 취미를 넘어서는 이유는, 이 안에 컴퓨터 구조의 본질이 다 들어 있기 때문이에요.

한국 개발자에게 주는 시사점

매일 React 컴포넌트를 짜거나 백엔드 API를 만드는 입장에서 "우주왕복선 컴퓨터 분해"가 무슨 의미가 있나 싶을 수 있어요. 그런데 한 가지 분명한 게 있어요. 이런 글을 읽으면 추상화의 층이 얼마나 두꺼운지 가 실감 나거든요. 우리가 무심코 쓰는 x + y 한 줄이, 결국에는 트랜지스터의 스위칭, 클럭 동기화, 마이크로코드 시퀀스를 거쳐 실행된다는 걸 한 번이라도 봐두면 디버깅 감각이 달라져요. 특히 임베디드, 반도체 설계, 자율주행, 항공 같은 분야로 가고 싶은 분에게는 이런 글이 좋은 영감이 됩니다.

마무리

45년 전 우주를 날던 컴퓨터를 한 줄 한 줄 복원하는 일은, 단순한 향수가 아니라 컴퓨터의 본질을 다시 들여다보는 작업이에요.

여러분은 본인이 쓰는 추상화 "아래쪽"을 얼마나 알고 계시나요? 한 번쯤 자기 분야에서 "내가 모르고 쓰는 가장 깊은 층"이 어디인지 생각해보면 재미있는 토론이 될 것 같아요.


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.