군사 & 우주용 CPU
1. 개요
군용기나 우주선용 컴퓨터의 경우 일반 CPU를 사용하면 극저온에서 극고온까지 변하는 전장과 우주의 험악한 환경과 핵 공격이나 EMP 병기에 의해 발생하는 강력한 전자기파나 우주선(Cosmic Ray)과 같은 극단적인 조건에 의해 반도체 소자가 고장나거나 오류가 발생하면 큰 사고를 일으킬 수 있기에 특별한 CPU를 사용한다.
사실 최신 CPU들은 미세공정이 상당부분 적용된 상태라 전압과 전류의 변동에 극히 취약하며, 냉각팬 같은 냉각장치가 없으면 상온에서도 금세 뻗어버리는 문제점이 있는데, 우주는 진공이라 열을 내보낼 매질이 없어서 컴퓨터를 쓰듯이 밖에 팬 달고 쿨링을 하게 되면 쿨러를 달지 않은것과 같은 상황이 되버려서 금새 온도가 100도를 넘어 뻗어버린다. 진공이라 매질이 없다면 수냉을 하면 되지 않겠냐고 생각하는 사람들도 있는데, 수냉도 열을 없애는게 아니라 CPU의 열을 물이 끌어다가 라디에이터에서 식히는 구조인데, 라디에이터도 결국에는 공랭이라 의미없는 짓이다. 또한, 미세화가 진행된 반도체일수록 방사선에 더 취약해진다. 반도체의 로직 상태 변화에 필요한 전하량이 감소하기 때문. 따라서 최신 CPU는 극단적인 환경에서 매우 취약할 수밖에 없다. 방사선 때문은 아니지만, 이는 산업용으로 폭넓게 쓰이는 마이크로컨트롤러와 비슷한 부분이 있다.
여기서 말하는 방사선 혹은 우주선(Cosmic Ray)의 영향은 우리가 흔히 생각할 수 있는 칩이 고장난다든가 하는 내구성의 문제이기 전에 컴퓨팅 신뢰성의 문제이다. 방사선과 우주선은 전하를 띤 입자들인데, 이것들이 반도체의 메모리에 부딪히면 메모리의 전하 상태가 바뀔 수도 있다. 다르게 말하면 방사선이나 우주선의 영향으로 0이었던 메모리 비트가 멋대로 1로 바뀌게 될 수 있다는 것인데, '''이에 대한 내성이 없으면 1이었던 변수값이 갑자기 1073741825[1] 가 될 수 있다'''는 소리. 이런 비트 단위 오류를 일명 소프트 에러(Soft Error)라 부른다. 이게 단순히 가능성이 아니라 인텔은 이미 1970년대에 방사선 불순물 때문에 자사의 16 KB DRAM 칩에서 소프트 에러 버그를 겪었고[2] , 실제로 지금도 DRAM에서 발생하는 일회성 소프트에러의 일부는 우주 방사선에 의해 발생한다! 물론 오류 보정 알고리즘 때문에 일반적으로 이게 문제가 되는 경우는 거의 없지만. 우주선까지 안 가도 단순히 대기권 내를 날아다니는 비행기 레벨만 되어도 통계적으로 유의미하게 오류율이 올라간다.#
게다가 방사선은 반도체의 정보 처리 과정에서 오류를 일으킬 뿐만 아니라, 반도체 자체를 열화시켜 수명을 감소시킨다. 군사용이나 우주용 CPU는 당연히 이에 대해서도 내성을 지녀야만 한다. 방사선이 반도체에 미치는 영향
방사선에 저항이 있는 우주용 반도체 혹은 CPU를 'Rad-hard'라고 부른다. 이런 Rad-hard 반도체의 재료로 실리콘 대신 '''사파이어'''가 쓰이기도 한다.
그런데다가 개발 주기 자체가 상용품과는 비교하기 힘들게 길어서 80486 같은 구형 [3] CPU가 현역으로 돌아가는것도 흔하다.
지디넷에 따르면 스페이스X의 팰컨 9에는 일반 상용 인텔 듀얼코어 CPU가 사용되고 있다고 전해진다. 유인 우주선 크루 드래곤에 GUI 인터페이스를 제공하는 등 최신 상용 IT 기술을 도입하는데 가장 급진적인 스페이스X가 채택하고 있는 CPU이니 아마도 이 녀석이 가장 최신의 우주용 CPU에 가깝다고 볼 수 있을 것이다. 같은 기사에서는 NASA에서도 ARM Holdings의 A-53 아키텍처 채용을 긍정적으로 검토하고 있는 점 등을 언급하고 있어 우주선과 가전제품에서 사용되는 CPU의 갭은 일단은 줄어들고 있다고 볼 수 있다.
여담으로 ISS에서 근무하는 우주비행사들은 현용 CPU를 탑재한 평범한 개인 노트북을 업무용으로 가지고 다닌다고 한다. 이것은 수치계산이나 문서작업 등의 연구 목적으로 쓰는 것이다. 우주선이나 우주정거장을 제어하는 게 아니기에 고장나거나 약간의 오류가 생겨도 상관없고, 뭣보다 그거마저 저성능이면 일을 못 한다. 상기한 우주공간에서의 안전성 문제는, 우주선 선내는 인간의 생활공간으로써 우주방사능 차단대책이 서있고, 당연히 공기도 있으므로 지구환경에서와 같은 발열/냉각과정이 통용되므로 일반 PC를 사용해도 문제가 없다. 2010년대 이후로는 ISS에서도 아이패드를 사용하는 것이 심심치 않게 목격되고 있어 그들도 이제 우주까지 올라오고 있는 것으로 보인다.[4]
2. 실제로 사용되는 제품
2.1. MIL-STD-1750A
MIL-STD-1750A는 미군이 사용하는 CPU 명령어 집합을 규정하는 군사 표준 규격이다. 16비트에다가 512개의 페이지 맵핑 레지스터를 사용하며, 명령어 집합과 데이터 저장공간이 분리되어 있고, 메모리 접근 관리를 잠글 수 있다.
1980년에 만들어진 구식 규격이라 현재의 일반 CPU 규격과 비교하면 엄청나게 뒤떨어진다. 규격 발표 당시만 해도 시대의 조류를 따라가는 물건이었지만, 현재 64비트를 넘어 128비트 CPU가 나오는 시점에선 현시창. 그렇지만, 미 공군은 이런 규격을 계속 사용 중에 있다. 왜냐면 현재 이걸 바꿔버린다면 미 공군에서 사용되는 거의 모든 군용 CPU를 갈아버려야 하기 때문이다.
미 공군은 이 규격을 F/A-18, F-16, AH-64D, F-111 등의 컴퓨터에 써먹었으며, 이를 보고 ESA나 NASA 측에서도 이 규격의 CPU를 써먹었다. 대표적인 예시로는 1997년에 쏘아올린 카시니-하위헌스 호, NOAA의 GOES 기상위성, 마스 글로벌 서베이어 등이 있다.
물론 이 MIL-STD-1750A 규격의 CPU만 항공 & 우주용으로 쓰이는 건 아니다. 다른 CPU도 항공 & 우주용으로 사용되는데, IBM사의 System/4 Pi는 스카이랩, B-52 스트라토포트리스, 우주왕복선, F-15 등에서 사용되었다.
물론, 현재는 너무 사양이 낮아서 최신 기종엔 사용하지 않는다. KHz 수준의 처리속도와 메모리 용량을 최대치로 잡아봐야 640~1MB(1,024KB) 남짓이다. 참고로 카시니-하위헌스 호의 메인 메모리 용량은 고작 512KB였다.
2.2. 그 외
- 인텔 i960 : 1980년대 중반 인텔에서 개발된 RISC 프로세서로 F-22 랩터 스텔스 전투기, F-35 JSF와 한국의 KA-1 웅비호 등에 이용되었다. 참고로 JSF에 사용된 프로그래밍 언어는 ADA.
- 프리스케일 PowerPC G3 : 개조를 왕창 하여 큐리오시티의 CPU 등 여러 인공위성과 우주탐사선의 CPU에 사용되었다. 자세한 사항은 RAD750 문서를 참조.
- 프리스케일 PowerPC G4 : F-22 랩터 스텔스 전투기와 F/A-18E/F 슈퍼호넷 전투기에 탑재되었다.[5]
- 텍사스 인스트루먼트 TMS320C40 : TI의 DSP로서 T-50 골든이글의 개발에 이용되었다.
- 자일로그 Z8002 : 8bit의 본좌 프로세서로 F-16D, 스웨덴의 JAS 39 그리펜, 이스라엘의 LAVI에 이용되었다. F-16, JAS-39에는 PZAP와 어셈블리어로, LAVI에는 C 언어와 어셈블리어로 프로그래밍.
- MD, MAS281 : F-15E와 대만의 경국 전투기에 이용되었다. 사용된 프로그래밍 언어는 JOVIAL과 1750A.
- F9450 : B-2 스텔스 폭격기에 사용했다. 프로그래밍 언어는 JOVIAL.
- P1750 : P-7A[6] 와 B-2 스텔스 폭격기에 사용되었다. 프로그래밍 언어는 1750A.
- P1750AE : RAH-66 코만치 공격헬기에 사용되었다. 프로그래밍 언어는 ADA와 1750A.
- 옐브루스 프로세서 : 소련에서 무기개발 및 기술자립을 위해 설계한 컴퓨터용 제어 프로세서. 하지만 냉전 이후 이런 곳 까지 오라클의 SPARC 프로세서 기술이 폭넓게 채용되었다.
- 진공관 : 소련에서 MiG-25 전투기의 통제장치, 우주선용 시스템등에 사용하고 있으며, 서방이라도 구형 레이더등에서는 현역으로 들어간다.
- FPGA/ASIC
[1] 아무렇게나 쓴 수가 아니라 230+1이다. 2진법으로 쓰면 0'''1'''00 0000 0000 0000 0000 0000 0000 0001[2] A New Physical Mechanism For Soft Errors In Dynamic Memories, May T., Woods M., Rel. Phys. Symp. 1978, p. 33-40.[3] 일부러 구형 CPU를 쓰기 보다는 개발당시에는 최신이었는데 배치될 때는 구형이된것. 단적으로 개발 당시 슈퍼컴퓨터급 성능이었던 F-22가 공개되던 1990년대에는 펜티엄 3보다도 구린 프로세싱 파워를 지니고 있었다.[4] 정확히는 애플은 Apple III 시절부터 우주왕복선에서 사용된적이 있었다. 이걸로 광고도 만들었었는데 하필 그 우주왕복선이...[5] F-22에는 i960, G4로 구성된 모듈을 66개까지 설치하여 2개의 CIP를 구성할 수 있다.[6] P-3 후속기종으로 개발 중이었으나 냉전 종식과 함께 사업 취소.