Skip to content
research

Voyager 1의 불가능했던 소프트웨어 구조 작업

수십억 마일 떨어진 우주선이 명령은 계속 수행하면서도 아무도 이해할 수 없는 데이터를 지구로 보내기 시작했습니다. 이 문제를 해결하는 과정에서 현대의 업데이트 시스템에서는 거의 요구되지 않으며, 수동으로 수행하는 사람은 거의 없는 독특한 엔지니어링 방식이 드러났습니다.

Aki Tanaka
Voyager 1의 불가능했던 소프트웨어 구조 작업

Voyager는 신호를 보내고 있었지만, 지구는 이를 읽을 수 없었습니다.

2023년 11월 14일, Voyager 1의 심각한 통신 장애가 시작되었습니다. 지구로부터 150억 마일 이상 떨어진 이 노련한 우주선은 여전히 명령을 수신하고 실행하며 변함없는 운영 무결성을 증명했습니다. 그러나 한때 과학 및 엔지니어링 데이터의 풍부한 흐름이었던 다운링크 원격 측정 데이터는 의미 없는 0과 1의 반복 패턴으로 변질되었습니다.

이 이상 현상은 Voyager 1의 세 대의 온보드 컴퓨터 중 하나인 Flight Data Subsystem (FDS) 내부에서 발생했습니다. FDS는 모든 과학 및 엔지니어링 수치를 패키징하여 우주선의 송신기로 전달하는 역할을 합니다. 이는 통신 두절이 아니었습니다. 지구는 여전히 Voyager와 '대화'할 수 있었지만, 우주선은 더 이상 해독 가능한 언어로 '응답'할 수 없게 된 것입니다.

성간 거리 너머에서 이러한 역설을 해결하는 것은 엄청난 도전이었습니다. 빛의 속도로 이동하는 각 신호는 편도 여행에 약 22.5시간이 소요됩니다. 이는 모든 진단 단계, 시도된 수정, 그리고 확인 과정이 거의 이틀이 걸린다는 것을 의미하며, 문제 해결 과정을 태양계 끝에 있는 기계와의 고통스럽고 긴 대화로 바꾸어 놓았습니다.

“Poke” 명령으로 컴퓨터를 뒤집다

2024년 3월, NASA 엔지니어들은 중요한 진단 기동을 시작했습니다. 그들은 Voyager 1의 Flight Data Subsystem (FDS)이 다른 소프트웨어 경로를 실행하도록 유도하는, 흔히 “poke”라고 불리는 명령을 보냈습니다. 이틀 후, Deep Space Network는 새로운 신호를 수신했습니다. 그것은 FDS의 활성 코드와 변수가 포함된 전체 메모리 덤프였습니다.

팀은 이 새로운 덤프를 고장 전의 초기 기준 데이터와 비교하여 4월에 이상 현상의 원인을 찾아냈습니다. 단 하나의 memory chip이 고장 나 FDS 전체 메모리의 약 3%를 손상시킨 것이었습니다. 이는 단순하고 고립된 비트 오류가 아니었으며, 해당 칩의 독특한 구조로 인해 더 광범위한 문제가 발생했습니다.

FDS 메모리는 데이터를 16-bit words 단위로 구성합니다. 결함이 있는 칩은 256개의 연속된 단어에 걸쳐 특정 비트 하나를 담당하고 있었습니다. 이 칩의 고장으로 인해 해당 256개의 단어 각각에서 그 비트를 사용할 수 없게 되었고, 결과적으로 FDS 프로그램 전반에서 호출되는 중요한 시스템 루틴의 상당 부분이 손상되었습니다. 당면한 과제는 150억 마일 떨어진 곳에서 이 수리 불가능한 하드웨어 손상을 우회하는 것이었습니다.

패치는 빈틈에 딱 맞아야 했습니다

150억 마일 떨어진 곳에서 결함이 있는 칩을 교체하는 것은 물론 불가능했습니다. 대신 엔지니어들은 손상된 메모리를 우회하는 데 집중했습니다. 문제는 고장 난 칩이 256개의 연속된 16-bit words에 걸쳐 한 비트에 영향을 주어 중요한 시스템 루틴을 손상시켰다는 점입니다. 이러한 루틴을 옮기려면 이를 수용할 만큼 충분히 큰 새로운 연속 메모리 블록을 찾아야 했지만, FDS에는 그만한 크기의 빈 공간이 없었습니다.

엔지니어들은 기발한 우회 방법을 고안했습니다. 그들은 손상된 루틴을 더 작은 조각으로 나누어 FDS 내의 사용 가능한 비연속적 메모리 공간 곳곳에 분산시켰습니다. 이를 위해서는 해당 루틴을 호출하는 모든 프로그램 위치를 세심하게 업데이트하여 시스템이 흩어진 각 조각을 찾아낼 수 있도록 보장해야 했습니다.

이 모든 과정은 현대적인 도구의 도움 없이 진행되었습니다. Voyager의 1970년대 아키텍처에는 적합한 어셈블러가 존재하지 않았기 때문입니다. 팀은 모든 코드 변경 사항과 메모리 주소를 수작업으로 binary로 번역했으며, 이는 로우 레벨 엔지니어링의 정밀함을 보여주는 증거입니다. 초기 진단에 대한 자세한 내용은 Engineers Pinpoint Cause of Voyager 1 Issue, Are Working on Solution을 참조하십시오. 2024년 4월 18일, 그들은 엔지니어링 데이터를 위한 첫 번째 패치를 업링크했고, 이틀 후 가독성을 복구했습니다.

이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.

하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음

150억 마일 떨어진 곳에서의 업데이트, 비트 단위로

NASA 엔지니어들은 2024년 4월 18일에 엔지니어링 데이터 코드를 업링크했습니다. 이틀 뒤인 4월 20일, 읽을 수 있는 엔지니어링 원격 측정 데이터가 돌아오면서 5개월간의 통신 두절이 끝났습니다. 이는 결함이 있는 메모리 칩에 대한 물리적 수리가 아니라, Deep Space Network를 통해 150억 마일 거리로 전달된 소프트웨어 우회 해결책이었습니다.

이 해결책은 FDS 메모리의 정밀한 바이트 단위 조작을 포함했습니다. 엔지니어들은 손상된 루틴을 수동으로 분할한 다음, 파편들을 분산된 가용 메모리 위치에 매핑했습니다. 그들은 이 루틴들을 호출하는 FDS 펌웨어의 모든 주소를 꼼꼼하게 업데이트했으며, 현대적인 어셈블러의 도움 없이 각 변경 사항을 binary로 번역했습니다.

Voyager 1의 복구는 레거시 시스템을 유지하는 데 필요한 독창성을 보여줍니다. 이러한 섬세한 메모리 관리 작업 덕분에 유서 깊은 탐사선이 생명을 유지할 수 있었습니다. 초기 수정 이후, 엔지니어들은 과학 장비 루틴을 재배치하여 2024년 6월까지 4개의 활성 과학 장비를 모두 복구했습니다.

그러나 이 임무는 인간의 끈기와 멈추지 않는 시간의 흐름을 동시에 보여주는 증거로 남아 있습니다. 전력 제약은 여전히 우주선을 제한하고 있으며, 2024년 말 메인 X-band 송신기 문제와 같은 후속 하드웨어 문제는 성간 우주에서 47년 된 탐사선을 운영하는 데 따르는 지속적인 도전 과제를 강조합니다.

자주 묻는 질문

Voyager 1이 읽을 수 없는 데이터를 보낸 원인은 무엇인가요?

메모리 칩 고장으로 인해 Flight Data Subsystem 메모리의 약 3%가 손상되었으며, 이로 인해 원격 측정 데이터를 패키징하는 루틴이 손상되었습니다.

NASA는 Voyager 1의 손상된 메모리를 어떻게 우회했나요?

엔지니어들은 영향을 받은 코드를 조각으로 나누어 분산된 여유 메모리 위치에 배치하고, 해당 루틴을 호출하는 주소를 업데이트했습니다.

엔지니어들은 왜 Voyager 1의 소프트웨어 변경 사항을 수작업으로 binary로 번역했나요?

팀은 Voyager의 오래된 독점 컴퓨터 아키텍처를 위한 작동 가능한 어셈블러를 가지고 있지 않았기 때문에, 변경 사항을 수동으로 기계어로 변환했습니다.

Voyager 1은 언제 엔지니어링 데이터 전송을 재개했나요?

NASA는 2024년 4월 18일에 엔지니어링 데이터 패치를 업링크했으며, 이틀 후에 읽을 수 있는 데이터가 도착했습니다.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$199 · AI tools & software only

빌더를 위해

이 페이지는 지금 다른 사람의 도구를 위해 일하고 있습니다.

AI 에이전트가 읽고, 구매자가 도착합니다. 8개 언어와 MCP로 답합니다. 당신의 도구도 가질 수 있습니다 — 24시간 안에 공개.