아폴로 유도 컴퓨터
Apollo Guidance Computer아폴로 유도 컴퓨터와 DSKY | |
| 발명자 | 찰스 스타크 드레이퍼 연구소 |
|---|---|
| 제조자 | 레이시온 |
| 소개했다 | 1966년 8월;( |
| 단종 | 1975년 7월; 전 ( |
| 유형 |
|
| 프로세서 | 이산 실리콘 집적 회로 (IC) 칩 (RTL 기반) |
| 빈도수. | 2.048MHz |
| 기억 | |
| 포트 | DSKY, IMU, 핸드 컨트롤러, 랑데부 레이더(CM), 착륙 레이더(LM), 원격 측정 수신기, 엔진 명령, 반응 제어 시스템 |
| 소비전력 | 55W[2]: 120 |
| 언어 | AGC 어셈블리 언어 |
| 체중 | 70lb (32kg) |
| 치수 | 24in x 12.5in x 6.5in (61cm x 32cm x 17cm) |
아폴로 안내 컴퓨터(Apollo Guidance Computer, AGC)는 아폴로 계획을 위해 제작된 디지털 컴퓨터로, 각각의 아폴로 명령 모듈(CM)과 아폴로 달 모듈(LM)에 설치되었습니다. AGC는 우주선의 안내, 항해 및 제어를 위한 계산 및 전자 인터페이스를 제공했습니다.[3]AGC는 실리콘 집적회로를 기반으로 한 최초의 컴퓨터였습니다.이 컴퓨터의 성능은 애플 II, TRS-80, 코모도어 PET와 같은 1970년대 후반의 1세대 가정용 컴퓨터와 맞먹었습니다.[4]
AGC는 15개의 데이터 비트와 1개의 패리티 비트로 구성된 16비트 워드 길이를 가지고 있습니다.AGC에 있는 대부분의 소프트웨어는 코어 로프 메모리라고 하는 특수한 읽기 전용 메모리에 저장되며, 자기 코어 주위에 와이어를 짜서 만들어지지만 적은 양의 읽기/쓰기 코어 메모리를 사용할 수 있습니다.
우주 비행사들은 DSKY라고 불리는 숫자 디스플레이와 키보드를 사용하여 AGC와 통신을 했습니다.AGC와 DSKY 사용자 인터페이스는 1960년대 초 MIT 계측 연구소에서 아폴로 프로그램을 위해 개발되었으며 1966년에 처음 비행했습니다.[5]
작동
우주 비행사들은 조종봉을 가지고 제미니 계획을 수동으로 날았지만, 컴퓨터는 달 착륙 동안 잠시를 제외하고 아폴로 계획의 대부분을 날았습니다.[6]각각의 달 비행은 지구 궤도 임무인 아폴로 7호와 달 궤도 임무에 달 모듈이 필요 없는 아폴로 8호를 제외하고, 각각의 달 착륙선과 아폴로 달 착륙선에 한 대씩 두 대의 AGC를 운반했습니다.명령 모듈의 AGC는 GNC(Guidance, Navigation and Control) 시스템의 중심이었습니다.달 모듈에 있는 AGC는 아폴로 PGNCS (기본 안내, 항법 및 제어 시스템)를 실행했으며, 두문자는 ping으로 발음됩니다.


각각의 달 임무에는 두 대의 컴퓨터가 추가로 있었습니다.
- 새턴 V 부스터 계기링에 장착된 발사차량 디지털 컴퓨터(LVDC)
- LM PGNCS의 고장 시 사용되는 달 모듈의 중단 유도 시스템(Ass, ags로 발음됨).AGS는 달에서 이륙하거나 명령 모듈과 랑데부하는데 사용될 수 있지만 착륙에는 사용되지 않습니다.
설계.



AGC는 찰스 스타크 드레이퍼(Charles Stark Draper)의 MIT 계측 연구소에서 설계되었으며, 하드웨어 설계는 Eldon C가 주도했습니다. 홀.[2] J. H. Lanning Jr., Albert Hopkins, Richard Battin, Ramon Alonso,[7] Hugh Blair-Smith로부터 초기 건축 작업이 이루어졌습니다.[9]비행 철물은 Raytheon에 의해 제작되었는데, 그의 Herb Thaler도[10] 건축팀에 속해 있었습니다.
Kurinec et al.에 따르면 칩은 예상했던 대로 납땜이 아니라 보드 위에 용접되어 있었습니다.[11][better source needed]
논리 하드웨어
1963년 행성간 모니터링 플랫폼(IMP)에 집적 회로(IC) 칩이 사용된 이후, IC 기술은 나중에 AGC에 채택되었습니다.[12]아폴로 비행 컴퓨터는 실리콘 IC 칩을 사용한 최초의 컴퓨터였습니다.[13]
블록 I 버전이 각각 하나의 3 입력 NOR 게이트를 포함하는 4,100개의 IC를 사용한 반면, 나중의 블록 II 버전은 대부분 이중 3 입력 NOR 게이트와 더 적은 수의 확장기 및 감지 증폭기를 포함하는 약 2,800개의 IC를 사용했습니다.[14]: 27, 266 Fairchild Semiconductor의 IC는 플랫 팩에서 저항-트랜지스터 논리(RTL)를 사용하여 구현되었습니다.와이어 랩으로 연결한 다음 배선을 주조 에폭시 플라스틱에 내장했습니다.[14]: 129
AGC 전체에서 단일 유형의 IC(dual NOR3)를 사용함으로써 다이오드-트랜지스터 논리와 다이오드 논리 게이트를 혼합하여 사용한 또 다른 초기 IC 컴퓨터 설계인 Minuteman II 유도 컴퓨터를 방해하는 문제를 방지했습니다.[citation needed]NOR 게이트는 다른 게이트를 만들 수 있는 범용 논리 게이트입니다.[15]
기억
이 컴퓨터에는 지워질 수 있는 마그네틱 코어 메모리 2048 워드와 읽기 전용 코어 로프 메모리 36,864 워드가 있었습니다.[14]: 27, 90–93 둘 다 11.72 마이크로초의 주기를 가지고 있었습니다.[14]: 27 메모리 워드 길이는 16비트로 데이터 15비트와 홀수 패리티 비트 1비트였습니다.CPU 내부 16비트 워드 형식은 데이터 14비트, 오버플로 비트 1비트, 부호 비트 1비트(자신의 보어 표현)였습니다.[14]: 35–37
DSKY 인터페이스


AGC에 대한 사용자 인터페이스는 디스플레이와 키보드를 의미하는 DSKY였으며 보통 "DIS-key"라고 발음했습니다.표시기 조명, 숫자 표시, 계산기 스타일 키보드가 있습니다.두 자리 숫자로 명령을 입력했습니다.동사, 명사.Verb는 수행할 작업의 유형을 설명하고 Nun은 Verb 명령에 의해 지정된 작업의 영향을 받는 데이터를 지정합니다.
각 숫자는 녹색(530 nm로[16] 명시) 고전압 전계 발광 7 세그먼트 디스플레이를 통해 표시되었으며, 이는 업데이트 속도를 제한하는 전기 기계식 릴레이에 의해 구동되었습니다.5자리 숫자 3개도 8진수 또는 10진수로 표시할 수 있으며, 일반적으로 우주선 자세 또는 필요한 속도 변화(델타-V)와 같은 벡터를 표시하는 데 사용되었습니다.데이터는 미터 단위로 내부에 저장되었지만, 미국의 관례 단위로 표시되었습니다.이 계산기 스타일의 인터페이스는 이러한 종류의 첫 번째 인터페이스였습니다.
명령 모듈에는 두 개의 DSKY가 AGC에 연결되어 있습니다. 하나는 주 계기판에 위치하고, 다른 하나는 하부 장비 베이에 위치하여 관성 유도 플랫폼을 정렬하는 데 사용되는 6등분선 근처에 위치합니다.달 모듈에는 AGC를 위한 DSKY가 하나 있었습니다.AGC에 의해 통제되는 비행 감독 태도 표시기(FDAI)는 사령관의 콘솔과 LM의 DSKY 위에 위치했습니다.
타이밍.
AGC 타이밍 기준은 2.048 MHz 크리스탈 클럭에서 나왔습니다.AGC가 내부 작업을 수행하기 위해 사용한 4상 1.024 MHz 클럭을 생성하기 위해 클럭을 2개로 나누었습니다.또한 1.024 MHz 클럭을 2개로 나누어 마스터 주파수라고 불리는 512 kHz 신호를 생성했습니다. 이 신호는 외부 아폴로 우주선 시스템을 동기화하는 데 사용되었습니다.
마스터 주파수는 스케일러를 통해 추가로 분할되었으며, 먼저 링 카운터를 사용하여 102.4 kHz 신호를 생성하기 위해 5개로 분할되었습니다.그 다음 F1(51.2 kHz)에서 F17(0.78125 Hz)까지라고 불리는 연속적인 단계를 통해 2개에서 17개로 나누었습니다.F10 스테이지(100Hz)는 Pinc를 사용하여 실시간 클럭 및 기타 비자발적 카운터를 증가시키기 위해 AGC로 피드백되었습니다(아래에서 설명됨).AGC가 스탠바이 모드로 동작할 때 F17 스테이지를 이용하여 간헐적으로 동작하였습니다.
중앙등기부
AGC는 4개의 16비트 레지스터를 가지고 있었는데, 이 레지스터를 중앙 레지스터라고 합니다.
- A: 일반적인 계산을 위한 누산기
- Z: 프로그램 카운터 – 실행할 다음 명령의 주소
- Q: 나머지는.
DV사용설명서, 그리고 반환주소는 다음과 같습니다.TC지침들 - LP: 다음의 하단 제품
MP지침들
또한 코어 메모리에는 주소 20-23에 있는 4개의 위치가 있었는데, 편집 위치라고 불리는 이유는 저장된 모든 것이 오른쪽으로 7비트 위치를 이동한 것을 제외하고 한 비트씩 이동하거나 회전하여 두 단어로 압축된 7비트 해석 op. 코드 중 하나를 추출하기 때문입니다.이는 블록 I 및 블록 II AGC에 공통적으로 적용되었습니다.
기타 레지스터



AGC에는 운영 과정에서 내부적으로 사용된 추가 레지스터가 있었습니다.
- S: 12비트 메모리 어드레스 레지스터, 메모리 어드레스의 하단 부분
- Bank/Fbank: 4비트 ROM 뱅크 레지스터, 고정 전환 모드에서 어드레싱할 때 1킬로어워드 ROM 뱅크 선택
- Ebank: 3비트 RAM 뱅크 레지스터, 소거 가능 전환 모드에서 어드레싱할 때 256 워드 RAM 뱅크 선택
- Sbank (super-bank): Fbank에 대한 1비트 확장이 필요합니다. Fbank 단독으로는 36킬로 워드의 ROM 중 마지막 4킬로 워드에 도달할 수 없기 때문입니다.
- SQ: 4비트 시퀀스 레지스터; 현재 명령어
- G: 16비트 메모리 버퍼 레지스터, 메모리를 오가며 데이터 워드를 저장할 수 있습니다.
- X: 덧셈기에 'x' 입력( 덧셈기는 모든 1의 보산 연산을 수행하는 데 사용됨) 또는 프로그램 카운터(Z 레지스터)에 대한 증가분
- Y: 덧셈기에 대한 다른('y') 입력
- U: 레지스터가 아니라 가산기의 출력(적분의 X, Y 레지스터의 내용의 보합)
- B: 범용 버퍼 레지스터, 다음 명령어를 프리페치할 때도 사용됩니다.다음 명령을 시작할 때 B(다음 op. code 포함)의 상위 비트는 SQ로 복사하고 하위 비트(주소)는 S로 복사했습니다.
- C: 별도의 등기부가 아니라 B등기부를 보완한 것입니다.
- IN: 4개의 16비트 입력 레지스터
- OUT: 5개의 16비트 출력 레지스터
명령어세트
명령어 형식은 opcode에 3비트, address에 12비트를 사용하였습니다.블록 I에는 11개의 지시사항이 있었습니다.TC,CCS,INDEX,XCH,CS,TS,AD,그리고.MASK(기본) 및SU,MP,그리고.DV(extra).기본 명령어라고 불리는 첫 8개는 3비트 op. 코드에 의해 직접 접근되었습니다.마지막 세 개는 코드 추가 명령어로 표시되었는데, 이는 그것들이 특별한 유형을 수행함으로써 접근되었기 때문입니다.TC교시(소명)EXTEND)을 지시 직전에 입력합니다.
블록 I AGC 지침은 다음과 같이 구성되었습니다.
TC(전달제어)- 명령에 의해 지정된 주소에 대한 무조건적인 분기입니다.Q 레지스터에 반송 주소가 자동으로 저장되어 있어서,
TC서브루틴 호출을 위해 명령을 사용할 수 있습니다. CCS(카운트, 비교 및 건너뛰기)- 복잡한 조건부 분기 명령입니다.A 레지스터에는 지시에 의해 지정된 주소에서 검색된 데이터가 로드되었습니다.(AGC는 자신의 보표 표기법을 사용하기 때문에 0의 두 가지 표현이 있습니다.모든 비트를 0으로 설정하면 이를 더하기 0이라고 합니다.모든 비트를 1로 설정하면 이를 마이너스 0이라고 합니다.)그런 다음 데이터의 감소된 절대값(DABS)이 계산되어 A 레지스터에 저장되었습니다.숫자가 0보다 크면 DABS는 값을 1씩 감소시키고, 숫자가 음수이면 감소가 적용되기 전에 보완됩니다. 이것이 절대값입니다.감소는 "감소하지만 영하 이하는 아니다"를 의미합니다.따라서 AGC가 DABS 기능을 수행할 때 양수는 플러스 0으로 향하게 되며, 음수도 마찬가지이지만 먼저 아래의 4방향 스킵을 통해 음수를 드러냅니다.마지막 단계는
CCS는 DABS 이전 레지스터 A의 데이터에 따라 4방향 건너뛰기입니다.레지스터 A가 0보다 크면,CCS다음에 바로 첫 번째 명령으로 건너뜁니다.CCS. 만약 레지스터 A에 0을 더한 값이 포함되어 있다면,CCS다음 두 번째 명령으로 건너뜁니다.CCS. 0보다 작으면 다음 세 번째 명령으로 건너뜁니다.CCS, 그리고 마이너스 제로는 다음 네 번째 명령으로 건너뜁니다.CCS. 계수의 주된 목적은 양의 계수기에 의해 제어되는 보통의 고리가 a로 끝나도록 하는 것이었습니다.CCS그리고.TCIBM 360과 동일한 루프의 시작 부분까지BCT. 절대값 함수는 이 명령어에 포함될 만큼 충분히 중요하다고 여겨졌습니다; 이 목적으로만 사용될 때, 다음 순서는CCS이었다TC*+2,TC*+2,AD하나. 이상한 부작용은 테스트 중인 값이 전혀 양이 아닌 것으로 알려진 경우 홀을 생성하고 사용하는 것이며, 이는 예상보다 더 자주 발생합니다.이로 인해 두 개의 단어가 모두 사용되지 않게 되었고, 특별 위원회는 이러한 구멍에 데이터 상수를 할당하는 역할을 했습니다. INDEX- 명령어가 지정한 주소에서 검색한 데이터를 다음 명령어에 추가합니다.
INDEX다음 명령의 피연산자에 의해 지정된 기본 주소에 인덱스 값을 더하거나 뺄 때 사용할 수 있습니다.INDEX. 이 방법은 배열과 테이블 룩업을 구현하는 데 사용됩니다. 두 단어 모두에 대해 추가가 이루어졌기 때문에, 또한 다음 (추가 코드) 명령어에서 op. 코드를 수정하는 데 사용되기도 했으며 드물게 두 기능을 동시에 수행하기도 했습니다. RESUME- 의 특별한 예.
INDEX(INDEX25). 인터럽트에서 반환할 때 사용하는 명령입니다.이로 인해 중단된 위치에서 실행이 재개됩니다. XCH(교환)- 메모리의 내용과 A 레지스터의 내용을 교환합니다.지정한 메모리 주소가 고정(읽기 전용) 메모리에 있으면 메모리 내용에 영향을 주지 않으며, 이 명령어는 레지스터 A를 로드하기만 합니다.지울 수 있는 메모리에 있으면 16비트 중 가장 왼쪽을 메모리에 부호 비트로 저장하여 오버플로 "수정"이 이루어지지만, 이와 같은 예외적인 동작은 없습니다.
TS. CS(지우기 및 빼기)- 지정된 메모리 주소로 참조된 데이터를 보충한 레지스터 A를 로드합니다.
TS(보관소로 이송)- 지정된 메모리 주소에 레지스터 A를 저장합니다.
TS또한 다중 정밀 추가/subtract을 위해 반송파를 전파하는 방식으로 오버플로를 감지하고 수정합니다.결과에 오버플로가 없으면(가장 왼쪽의 A 비트는 2비트가 같음) 특별한 일이 발생하지 않습니다. 오버플로가 있으면(두 비트가 다름) 가장 왼쪽에 있는 것이 부호 비트로 메모리로 이동하고 레지스터 A는 그에 따라 +1 또는 -1로 변경되며 컨트롤은 다음 명령에 따라 두 번째 명령으로 건너뜁니다.TS. 오버플로우가 가능하지만 비정상적인 이벤트일 때마다TS뒤에 a가 따라왔습니다.TC노-overflow 로직으로; 그것이 정상적인 가능성일 때(다정밀 덧셈/subtract에서와 같이),TS다음으로.CAFZERO()CAF=XCH고정 메모리에 연결)를 사용하여 다음 고정밀 단어로 캐리(+1, 0 또는 -1)의 형성을 완료합니다.각도는 단일 정밀도로, 거리와 속도는 이중 정밀도로, 경과 시간은 3중 정밀도로 유지했습니다. AD(추가)- 메모리의 내용을 A 등록에 추가하고 결과를 A에 저장합니다.A의 가장 왼쪽에 있는 2비트는 (오버플로우 상태) 전후에 다를 수 있습니다.
AD. 오버플로가 이벤트가 아닌 상태라는 사실은 두 개 이상의 숫자를 추가할 때 중간 합계가 단어 용량의 두 배를 초과하지 않는 한 제한된 오버플로 범위를 허용합니다. MASK- 레지스터 A로 비트 단위로 메모리를 수행하고 결과를 레지스터 A에 저장합니다.
MP(multiply)- 레지스터 A의 내용과 참조된 메모리 주소의 데이터를 곱하여 상위 제품은 레지스터 A에, 하위 제품은 레지스터 LP에 저장합니다.제품의 부품들이 사인으로 일치합니다.
DV(divide)- 참조된 메모리 주소의 데이터로 A 레지스터의 내용을 나눕니다.계수는 레지스터 A에, 나머지의 절대값은 레지스터 Q에 저장합니다.현대의 기계와 달리 고정 소수점은 분수(부호 비트의 오른쪽에 있는 소수점 표기)로 취급되어 배당금보다 크지 않으면 쓰레기를 생성할 수 있었습니다. 그 상황에 대한 보호 장치가 없었습니다.블록 II AGC에서, A와 L(블록 II LP)에서 이중 정밀 배당이 시작되었고, 정확하게 서명된 나머지는 L에서 전달되었습니다.이것은 두 배의 정밀도 분할을 위한 서브루틴을 상당히 단순화시켰습니다.
SU(subtract)- 참조된 메모리 주소의 데이터를 레지스터 A의 내용에서 빼서 A에 저장합니다.
명령은 타이밍 펄스(timing pulse)라고 불리는 12단계로 그룹화되어 구현되었습니다.타이밍 펄스의 이름은 TP1 ~ TP12 입니다.12개의 타이밍 펄스들의 각각의 세트를 명령 서브시퀀스(instruction succession.TC와 같은 간단한 명령은 12 펄스의 단일 서브시퀀스로 실행됩니다.좀 더 복잡한 지침은 몇 가지 후속 절차를 필요로 했습니다.곱셈 명령(MP) 8개의 서브스크립트를 사용함: 초기 서브스크립트는 다음과 같습니다.MP0, 뒤를 이어MP16번 반복된 후에 종료되는 succession.MP3뒤를 잇기이것은 블록 II에서 3개의 후속작으로 축소되었습니다.
연속적으로 각 타이밍 펄스는 최대 5개의 제어 펄스를 트리거할 수 있습니다.제어 펄스는 버스에 레지스터의 내용을 읽거나 버스의 데이터를 레지스터에 쓰는 것과 같은 명령의 실제 작업을 수행하는 신호였습니다.
기억

블록 I AGC 메모리는 1킬로 워드 뱅크로 정리되었습니다.가장 낮은 뱅크(bank 0)는 지울 수 있는 메모리(RAM)였습니다. 뱅크 0 위의 모든 뱅크는 고정 메모리(ROM)였습니다. 각 AGC 명령어는 12비트 주소 필드를 가지고 있었습니다.하위 비트(1-10)는 각 뱅크 내부의 메모리를 처리했습니다.비트 11과 12는 뱅크를 선택했습니다. 00는 소거 가능한 메모리 뱅크를 선택했고, 01은 고정 메모리의 최저 뱅크(뱅크 1)를 선택했고, 10은 다음 뱅크(뱅크 2)를 선택했고, 11은 2 이상의 뱅크를 선택할 수 있는 뱅크 레지스터를 선택했습니다.은행 1과 은행 2는 은행 등록부의 내용에 관계없이 항상 사용할 수 있기 때문에 고정 고정 메모리라고 불렸습니다.선택된 은행이 은행 등록부에 의해 결정되었기 때문에 3번 이상의 은행은 고정 전환 가능하다고 불렸습니다.
블록 I AGC는 처음에 12킬로의 고정 메모리를 가지고 있었지만, 나중에 24킬로로로 증가했습니다.블록 II는 36킬로의 고정 메모리와 2킬로의 소거 가능 메모리를 가지고 있었습니다.
AGC는 메모리 사이클이라고 불리는 과정에서 G 레지스터를 통해 메모리와 데이터를 주고 받았습니다.메모리 주기는 12개의 타이밍 펄스(11.72μs)가 걸렸습니다.사이클은 AGC가 메모리 주소를 S 레지스터로 가져올 때 타이밍 펄스 1(TP1)에서 시작되었습니다.메모리 하드웨어는 S 레지스터가 지정한 주소로 메모리에서 데이터 워드를 검색했습니다.삭제 가능한 메모리의 워드는 타이밍 펄스 6(TP6)에 의해 G 레지스터에 축적되었고, 고정 메모리의 워드는 타이밍 펄스 7에 의해 사용 가능했습니다.검색된 메모리 워드는 타이밍 펄스 7 ~ 10 동안 AGC 액세스를 위해 G 레지스터에서 사용할 수 있었습니다.타이밍 펄스 10 이후, G 레지스터의 데이터가 메모리에 다시 기록되었습니다.
AGC 동작 중 AGC 메모리 사이클이 지속적으로 발생하였습니다.메모리 데이터가 필요한 명령은 타이밍 펄스 7-10 동안 액세스해야 했습니다.AGC가 G 레지스터의 메모리 워드를 변경한 경우, 변경된 워드는 타이밍 펄스 10 이후에 메모리에 다시 기록되었습니다.이런 식으로 데이터 워드는 메모리에서 G 레지스터로 계속 순환한 다음 다시 메모리로 돌아갑니다.
각 메모리 워드의 하위 15비트는 AGC 명령 또는 데이터를 보유하고 있으며, 각 워드는 16번째 홀수 패리티 비트로 보호됩니다.이 비트는 패리티 생성기 회로에 의해 1 또는 0으로 설정되어 각 메모리 워드에서 1의 개수가 항상 홀수가 됩니다.패리티 검사 회로는 각 메모리 주기 동안 패리티 비트를 검사했습니다. 비트가 예상 값과 일치하지 않으면 메모리 워드가 손상된 것으로 가정하고 패리티 경보 패널 조명이 켜졌습니다.
인터럽트 및 비자발적 카운터
AGC는 5개의 인터럽트를 차단했습니다.
- DSKY(사용자 디스플레이)를 업데이트하기 위해 주기적으로 Dscrupt가 트리거되었습니다.
- 분출은 다양한 하드웨어 장애나 경보에 의해 발생했습니다.
- 키럽트는 사용자의 키보드에서 키를 누르는 신호를 보냈습니다.
- T3Rrupt는 AGC의 실시간 클럭을 업데이트하기 위해 하드웨어 타이머로부터 일정 간격으로 생성되었습니다.
- 업럽트는 16비트 워드의 업링크 데이터가 AGC에 로드될 때마다 생성되었습니다.
AGC는 현재 프로그램을 일시적으로 중단하고 짧은 인터럽트 서비스 루틴을 실행한 후 인터럽트된 프로그램을 재개함으로써 각 인터럽트에 대응했습니다.
AGC는 또한 20개의 비자발적 카운터를 가지고 있었습니다.이러한 위치는 업/다운 카운터 또는 시프트 레지스터로 작동하는 메모리 위치였습니다.카운터는 내부 입력에 대응하여 증가, 감소 또는 이동합니다.증가(Pinc), 감소(Minc) 또는 이동(Shinc)은 임의의 두 정규 명령 사이에 삽입된 한 개의 마이크로 명령의 서브시퀀트에 의해 처리되었습니다.
카운터가 오버플로되면 인터럽트가 트리거될 수 있습니다.T3rupt 및 Dsrupt 인터럽트는 100Hz 하드웨어 클럭으로 구동되는 카운터가 여러 Pinc 서브시퀀스를 실행한 후 오버플로될 때 생성되었습니다.업럽트 인터럽트는 Shinc succession을 실행하는 카운터가 16비트의 업링크 데이터를 AGC로 이동시킨 후에 트리거되었습니다.
대기모드
AGC는 대기 스위치에 의해 제어되는 절전 모드를 가지고 있었습니다.이 모드는 2.048 MHz 클럭과 스케일러를 제외하고 AGC 전원을 끕니다.스케일러의 F17 신호는 1.28초 간격으로 AGC 전원과 AGC를 다시 켭니다.이 모드에서 AGC는 필수 기능을 수행하고 대기 스위치를 확인한 후 계속 활성화된 경우 전원을 끄고 다음 F17 신호가 나타날 때까지 다시 절전 모드로 전환했습니다.
대기 모드에서 AGC는 대부분의 시간 동안 잠을 잤기 때문에 AGC의 실시간 클럭을 10ms 간격으로 업데이트하는 데 필요한 Pinc 명령을 수행할 수 없었습니다.이를 보완하기 위해 AGC가 대기 모드에서 깨어날 때마다 수행하는 기능 중 하나는 실시간 시계를 1.28초 업데이트하는 것이었습니다.
대기 모드는 AGC가 필요 없을 때 중간 과정 비행 중에 전력을 5~10W(70W에서) 감소시키도록 설계되었습니다.그러나 실제로는 임무의 모든 단계 동안 AGC가 켜져 있었고 이 기능은 사용되지 않았습니다.
데이터 버스
AGC에는 16비트 읽기 버스와 16비트 쓰기 버스가 있었습니다.중앙 레지스터(A, Q, Z 또는 LP) 또는 기타 내부 레지스터의 데이터를 제어 신호와 함께 읽기 버스에 게이팅할 수 있습니다.읽기 버스는 비반전 버퍼를 통해 쓰기 버스에 연결되므로 읽기 버스에 나타나는 모든 데이터도 쓰기 버스에 나타납니다.다른 제어 신호는 쓰기 버스 데이터를 레지스터에 다시 복사할 수 있습니다.
데이터 전송은 다음과 같이 작동했습니다.다음 명령의 주소를 B 레지스터에서 S 레지스터로 이동하기 위해 RB(read B) 제어 신호가 발행되었습니다. 이로 인해 주소가 B 레지스터에서 읽기 버스로, 그리고 쓰기 버스로 이동하게 되었습니다.WS(write S) 제어 신호가 주소를 쓰기 버스에서 S 레지스터로 이동시켰습니다.
여러 레지스터를 읽기 버스에 동시에 읽을 수 있습니다.이 경우 각 레지스터의 데이터가 버스에 포함 ORED로 전송되었습니다.이 inclusive-OR 기능은 논리 AND 연산인 Mask 명령을 구현하는 데 사용되었습니다.AGC는 논리 AND를 수행할 수 있는 고유한 능력이 없었지만 버스를 통해 논리 OR을 수행할 수 있었고 C 레지스터를 통해 데이터를 보완(반전)할 수 있었기 때문에 논리 AND와 동등한 것을 구현하기 위해 De Morgan의 정리가 사용되었습니다.이는 두 피연산자를 모두 반전시켜 버스를 통해 논리적 논리합 연산을 수행한 후 결과를 반전시킴으로써 달성되었습니다.
소프트웨어

AGC 소프트웨어는 AGC 어셈블리 언어로 작성되어 로프 메모리에 저장되었습니다.소프트웨어의 대부분은 읽기 전용 로프 메모리에 있었기 때문에 동작을 변경할 수 없었지만 [18]소프트웨어의 일부 핵심 부분은 표준 읽기-쓰기 마그네틱 코어 메모리에 저장되었고 아폴로 14호에서 했던 것처럼 우주 비행사들이 DSKY 인터페이스를 사용하여 덮어쓸 수 있었습니다.
J. Halcombe Lanning이[19] 설계한 간단한 실시간 운영체제는 'Exec', 협력 멀티태스킹을 이용한 일괄 작업 스케줄링,[20] 타이머에 의해 실행되는 '작업'을 스케줄링하는 'Waitlist'라는 인터럽트에 의해 구동되는 선제적 스케줄러로 구성되어 컴퓨터를 제어했습니다.작업은 대기자 목록에서 재실행을 위해 스스로 일정을 조정하거나, Exec에서 '작업'을 시작하여 더 긴 작업을 시작할 수 있는 짧은 실행 스레드였습니다.계산은 미터법을 사용하여 수행되었지만 디스플레이 판독값은 아폴로 우주비행사들이 익숙했던 단위인 피트, 초당 피트 및 해리 단위였습니다.[21]
AGC에는 MIT Instrumentation Laboratory에서 개발한 정교한 소프트웨어 인터프리터가 있었는데, 이는 네이티브 AGC보다 더 복잡하고 능력 있는 의사 명령어를 가진 가상 머신을 구현했습니다.이 지침에 따라 탐색 프로그램이 간소화되었습니다.이중 정밀 삼각법, 스칼라 및 벡터 산술(16 및 24 비트)을 특징으로 하는 해석된 코드, 심지어MXV(행렬×벡터) 명령어는 기본 AGC 코드와 혼합될 수 있습니다.의사 명령어의 실행 시간은 증가했지만(실행 시간에 이러한 명령어를 해석해야 하기 때문에) 인터프리터는 기본적으로 지원되는 AGC보다 더 많은 명령어를 제공했고 추가가 필요한 AGC 네이티브 언어에 이러한 명령어를 추가하는 경우보다 메모리 요구 사항은 훨씬 낮았습니다.컴퓨터에 내장된 알 메모리(그 당시에는 메모리 용량이 매우 비쌌습니다).평균 의사 명령을 실행하는 데 약 24ms가 필요했습니다.초기의 프로토타입 크리스마스 컴퓨터를 위해 YUL이라는 이름의 어셈블러는 네이티브 코드와 해석 코드 사이의 적절한 전환을 시행했습니다.[22]
'핀볼'이라고 불리는 일련의 인터럽트 기반 사용자 인터페이스 루틴은 AGC에서 실행되는 작업과 작업에 키보드와 디스플레이 서비스를 제공했습니다.사용자가 접근할 수 있는 일련의 루틴이 제공되어 우주 비행사들이 한 번에 1, 2, 3개의 레지스터 그룹으로 다양한 기억 위치의 내용을 8진수 또는 10진수로 표시할 수 있었습니다.작업자가 특정 메모리 위치의 내용을 주기적으로 다시 표시하는 작업을 시작할 수 있도록 '모니터' 루틴이 제공되었습니다.작업을 시작할 수 있습니다.
1960년대 말 Charles Draper가 지휘한 MIT Instrumentation Laboratory에서 AGC를 위해 개발한 설계 원리는 소프트웨어 엔지니어링의 기초가 되었습니다. 특히 비동기 소프트웨어, 우선순위 스케줄링, 테스트 및 루프 내 인간 의사결정 능력에 의존하는 보다 신뢰성 있는 시스템 설계를 위해 더욱 그러했습니다.[23]AGC의 설계 요건이 정의되었을 때, 필요한 소프트웨어 및 프로그래밍 기술이 존재하지 않았기 때문에 처음부터 설계해야 했습니다.사용된 많은 궤적과 안내 알고리즘은 Richard Battin의 이전 연구를 기반으로 했습니다.[19]첫 번째 명령 모듈 비행은 알렉스 코스말라가 개발을 주도한 코로나라는 소프트웨어 패키지에 의해 제어되었습니다.달 임무를 위한 소프트웨어는 Frederic Martin이 개발을 주도한 명령 모듈용 COLOUSUS와 George Cherry가 주도한 달 모듈의 Luminary로 구성되었습니다.이 프로그램들의 세부사항들은 Margaret Hamilton의 지휘 아래 한 팀에 의해 실행되었습니다.[24]해밀턴은 우주 비행사들이 소프트웨어와 어떻게 상호작용할 것인지에 매우 흥미가 있었고 인간의 실수로 인해 발생할 수 있는 오류의 종류를 예측했습니다.[20][24]프로젝트에 대한 소프트웨어 개발은 1,400년 동안의 노력과 350명의 최고 인력으로 구성되었습니다.[19]2016년, 해밀턴은 비행 소프트웨어를 만든 그녀의 역할로 대통령 훈장을 받았습니다.
아폴로 유도 컴퓨터 소프트웨어는 스카이랩, 우주왕복선, 초기 플라이 바이 와이어 전투기 시스템의 설계에 영향을 미쳤습니다.[25][26]
아폴로 가이던스 컴퓨터는 닐 암스트롱, 버즈 올드린, 마이클 콜린스 세 명의 우주 비행사를 돕는 역할로 "제 4의 우주 비행사"라고 불려왔습니다.[27]
블록 II
블록 II 버전의 AGC는 1966년에 설계되었습니다.기본 블록 I 아키텍처는 유지했지만 지울 수 있는 메모리를 1킬로 워드에서 2킬로로 늘렸습니다.고정 메모리는 24킬로 워드에서 36킬로 워드로 확장되었습니다.명령어가 11개에서 34개로 확장되었고 I 블록의 I/O 레지스터를 교체하기 위해 I/O 채널이 구현되었습니다.블록 II 버전은 실제로 달까지 날아간 버전입니다.블록 I은 승무원이 없는 아폴로 4호와 6호의 비행 동안 사용되었고, 불운한 아폴로 1호에 탑승했습니다.
블록 II를 위한 메모리와 명령어 세트를 확장하되 블록 I의 제한적인 3비트 op. 코드와 12비트 주소를 유지하기로 한 결정은 흥미로운 설계 결과를 낳았습니다.참조될 때 특정 기능을 구현할 수 있는 특수 메모리 주소를 갖는 것과 같은 추가 명령을 짜내기 위해 다양한 기법이 사용되었습니다.예를 들면, a.INDEX25개의 주소를 다루다보니.RESUME방해를 받고 돌아오라는 지시저도 마찬가지예요.INDEX17명이 공연을 했습니다.INHINT명령(inhibit 인터럽트).INDEX16개가 그들을 다시 활성화됨)RELINT). 기타 지침은 의 특별한 버전과 함께 선행함으로써 구현되었습니다.TC불렀다EXTEND. Bank(고정형)와 Ebank(지울 수 있는) 레지스터를 사용하여 주소 공간을 확장했기 때문에 언제든지 주소를 지정할 수 있는 메모리는 Current Bank뿐이었고, 여기에 고정 고정형 메모리와 삭제 가능 메모리의 양이 적었습니다.또한 은행 레지스터는 최대 32킬로 워드를 처리할 수 있으므로 마지막 4킬로 워드에 액세스하려면 S뱅크(슈퍼뱅크) 레지스터가 필요했습니다.모든 은행 간 서브루틴 통화는 반환 중에 원래 은행을 복원하기 위해 특수 기능을 통해 고정 고정 메모리에서 시작되어야 했습니다. 즉, 근본적으로 먼 포인터의 시스템입니다.
블록 II AGC는 또한 다음을 가지고 있습니다.EDRUPT명령(요청한 프로그래머인 에드 스몰리의 이름을 따서 에드의 인터럽트를 축약한 이름).이 명령어는 인터럽트를 생성하는 것이 아니라 처리를 중단하는 데 일반적인 두 가지 동작을 수행합니다.첫 번째 조치는 추가적인 인터럽트를 억제합니다(그리고 필요한 것은RESUME다시 활성화할 수 있도록 지시합니다.두 번째 액션에서는.ZRUPT레지스터에 프로그램 카운터(Z)의 현재 값이 로드됩니다.달 모듈의 디지털 오토파일럿에서 DAP 주기 종료 시퀀스를 설정하기 위해 아폴로 소프트웨어에서 한 번만 사용되었습니다.[28]LEM AGC Luminary 소프트웨어를 에뮬레이트하는 문제의 원인으로 추정됩니다.
1201 및 1202 프로그램 알람

PGNCS는 아폴로 11호가 달을 하강하는 동안 예상치 못한 경고를 발생시켰는데, AGC는 1202 경보("Executive overflow - NO CORE SETS")[29]를, 그리고 1201 경보("Executive overflow - NO VAC AREA")를 나타냈습니다.[30][citation needed]어느 경보에 대한 AGC의 반응은 부드러운 재시작이었습니다.그 원인은 랑데부 레이더(궤도 지휘 모듈 추적)에서 신속하고 꾸준한 가짜 주기 스틸의 흐름으로, 중단이 필요할 경우 하강 중에 의도적으로 대기 상태로 남겨두었기 때문입니다.[31][32]
이 접근 방식의 이 부분 동안, 프로세서는 보통 거의 85%의 부하를 받게 됩니다.초당 6,400번의 사이클 스틸을 추가함으로써 13%의 부하가 추가되어 모든 예약된 작업이 완료될 때까지 충분한 시간이 확보되었습니다.하강 5분 만에 버즈 올드린은 컴퓨터에 DELTAH(레이더가 감지한 고도와 계산된 고도 사이의 차이)를 주기적으로 계산하여 표시하도록 명령하는 1668 명령을 내렸습니다.[nb 1]1668은 프로세서 워크로드에 10%를 추가하여 실행 오버플로와 1202 경보를 발생시켰습니다.휴스턴으로부터 "GO"를 받은 후, 올드린은 다시 1668년에 들어갔고 또 다른 1202 경보가 발생했습니다.두 번째 경보를 보고할 때 올드린은 "1668이 뜨면 뜨는 것 같다"는 말을 덧붙였습니다.AGC 소프트웨어는 우선순위 스케줄링을 통해 설계되었으며, 자동으로 복구되어 1668 디스플레이 작업을 포함한 우선순위가 낮은 작업을 삭제하여 중요한 지침 및 제어 작업을 완료했습니다.안내 관제사 Steve Bales와 Jack Garman을 포함한 그의 지원팀은 몇 번의 "GO" 호출을 했고 착륙에 성공했습니다.그의 역할로, 베일스는 전체 관제 센터 팀과 세 명의 아폴로 우주 비행사를 대표하여 미국 대통령 자유 훈장을 받았습니다.[33]
문제는 AGC의 프로그래밍 오류도 아니고 파일럿 오류도 아니었습니다.아폴로 5호 엔지니어들이 이미 알고 문서화한 주변 하드웨어 설계 버그였습니다.[34]하지만, 이 문제가 시험하는 동안 단 한 번 발생했기 때문에, 그들은 이미 시험했던 기존의 하드웨어를 가지고 비행하는 것이 더 새롭지만 대부분 시험되지 않은 레이더 시스템을 가지고 비행하는 것보다 더 안전하다고 결론지었습니다.실제 하드웨어에서 랑데부 레이더의 위치는 컴퓨터가 타이밍 기준으로 사용하는 것과 800Hz AC의 다른 소스에 의해 여기된 싱크로로 인코딩되었습니다.두 개의 800Hz 소스는 주파수가 고정되어 있었지만 위상이 고정되어 있지는 않았습니다. 그리고 작은 무작위 위상 변화로 인해 안테나가 완전히 정지되어 있음에도 불구하고 빠르게 "디디팅"하는 것처럼 보였습니다.이러한 팬텀의 움직임은 사이클 스틸의 급속한 시리즈를 발생시켰습니다.
J. Halcombe Laning의 소프트웨어와 컴퓨터 디자인은 아폴로 11호의 착륙 임무를 지켜냈습니다.만약 라닝의 설계가 없었다면, 안정적인 유도 컴퓨터가 없었기 때문에 착륙은 중단되었을 것입니다.[35][36]
Apollo 외부의 응용 프로그램

AGC는 컴퓨터 구동 FBW의 실용성을 입증하기 위해 F-8 Crusader에 설치된 실험적인 FBW(Fly-by-wire) 시스템의 기초를 형성했습니다.프로그램의 첫 번째 단계에서 사용된 AGC는 두 번째 단계에서 다른 기계로 대체되었고, 프로그램에 대한 연구는 우주왕복선을 위한 플라이 바이 와이어 시스템의 개발로 이어졌습니다.AGC는 간접적으로나마 당시 개발 중이던 전투기 세대를 위한 플라이 바이 와이어 시스템 개발에도 앞장섰습니다.[37]
소스코드공개
2003년, Ron Burkey는 AGC를 구동시킨 소스 코드를 복구하고 그것을 실행할 수 있는 에뮬레이터를 만들기 위한 노력을 시작했습니다.AGC.[38][39] 이러한 노력의 결과로 구조된 많은 양의 소스 코드 중 일부는 2016년 7월 7일 전직 NASA 인턴에 의해 GitHub에 업로드되어 언론의 큰 관심을 끌었습니다.[40][41]원래 아폴로 11 안내 컴퓨터 소스 코드는 2003년에[42] Virtual AGC Project와 MIT Museum에 의해 액세스 할 수 있게 되었습니다.[43]그것은 60년대에 만들어진 원본 하드카피 소스 코드 목록에서 전사되고 디지털화되었습니다.2016년 중반, 전직 나사 인턴 크리스 게리는 GitHub에 AGC 소스 코드를 업로드했습니다.[44][45]
참고 항목
- Apollo PGNCS - 아폴로 기본 유도 및 항법 시스템
- 우주왕복선에 사용되는 AP-101 (IBM S/360 파생) 컴퓨터
- 쌍둥이자리 유도 컴퓨터
- 컴퓨터 하드웨어의 역사
메모들
- ^ 좀 더 구체적으로, 동사 16은 AGC에 명사(이 경우 68, DELTAH)를 초당 약 두 번 인쇄하도록 지시합니다.Aldrin이 이 사실을 알았다면 간단한 0668(DELTAH 계산 및 표시, 한 번)로 시스템에 약 5%의 부하가 추가되었을 뿐만 아니라 ENTER를 눌렀을 때 단 한 번만 부하가 추가되었을 것입니다.
참고문헌
- ^ Programmer's Manual, Block 2 AGC Assembly Language, retrieved 2018-08-27
- ^ a b Hall, Eldon C. (1996), Journey to the Moon: The History of the Apollo Guidance Computer, Reston, Virginia, USA: AIAA, p. 196, ISBN 1-56347-185-X
- ^ Interbartolo, Michael (January 2009). "Apollo Guidance, Navigation and Control Hardware Overview" (PDF).
- ^ "How did the Apollo flight computers get men to the moon and back ?". 11 March 2017.
- ^ NASA.gov
- ^ Agle, D.C. (September 1998). "Flying the Gusmobile". Air & Space. Retrieved 2018-12-15.
- ^ "Ramon Alonso's introduction", AGC History Project (Caltech archive, original site closed), MIT, July 27, 2001, retrieved 2009-08-30
- ^ "Ramon Alonso's interview (Spanish)", Ramón Alonso, el argentino que llevó a la Apollo 11 a la Luna, Diario La Nacion, March 7, 2010
- ^ "Hugh Blair-Smith biography", AGC History Project (Caltech archive, original site closed), MIT, January 2002, retrieved 2009-08-30
- ^ "Herb Thaler introduction", AGC History Project (Caltech archive, original site closed), MIT, 14 September 2001, retrieved 2009-08-30
- ^ Kurinec, Santosh K; Indovina, Mark; McNulty, Karl; Seitz, Matthew (2021). "Recreating History: Making the Chip that went on the Moon in 1969 on Apollo 11" (PDF). Rochester Institute of Technology. p. 9. Retrieved 29 August 2023.
- ^ Butrica, Andrew J. (2015). "Chapter 3: NASA's Role in the Manufacture of Integrated Circuits". In Dick, Steven J. (ed.). Historical Studies in the Societal Impact of Spaceflight (PDF). NASA. pp. 149–250. ISBN 978-1-62683-027-1.
- ^ "Apollo Guidance Computer and the First Silicon Chips". National Air and Space Museum. Smithsonian Institution. 14 October 2015. Retrieved 1 September 2019.
- ^ a b c d e Hall, Eldon C. (1972). MIT's Role in Project Apollo: Final report on contracts NAS 9-163 and NAS 94065 (PDF). Cambridge, MA: MIT. Retrieved 15 June 2021.
- ^ Peirce, C. S. (1880-81년 겨울의 원고), "상수가 하나인 불리언 대수", 1933년 Collected Papers v. 4, 문단 12-20에 발표.1989년 찰스 S의 글로 재인쇄됨. Peirce v. 4, 페이지 218-21, Google [1]로버츠 참조, 돈 D. (2009),찰스 S의 실존적 그래프. 피어스, 131쪽.
- ^ "Apollo DSKY panel relight: The full story". YouTube.
- ^ Weinstock, Maia (2016-08-17). "Scene at MIT: Margaret Hamilton's Apollo code". MIT News. Retrieved 2016-08-17.
- ^ 민델 2008, 페이지 154, 157
- ^ a b c Hoag, David (September 1976). "The History of Apollo On-board Guidance, Navigation, and Control" (PDF). Charles Stark Draper Laboratory.
- ^ a b 민델 2008, 페이지 149.
- ^ "The Moon landings". UK Metric Association. 18 October 2018.
- ^ "Hugh Blair-Smith's Introduction", AGC History Project (Caltech archive, original site closed), MIT, 30 November 2001, retrieved 2010-03-21
- ^ NASA 보도자료 "NASA 아너스 아폴로 엔지니어" (2003년 9월 3일)
- ^ a b Harvey IV, Harry Gould (13 October 2015). "Her Code Got Humans on the Moon—And Invented Software Itself". WIRED. Retrieved 2018-11-25.
- ^ NASA 논리 설계 사무소 "Margaret Hamilton에 대하여" (최종 개정:2010.02.03)
- ^ 저자 A.J.S. Rayl "NASA 엔지니어와 과학자 - 꿈을 현실로 바꿉니다."
- ^ Fong, Kevin (2019). "13 minutes to the moon: Episode 5 The fourth astronaut". bbc.co.uk. BBC World Service.
- ^ O'Brien, Frank (2010-06-25). The Apollo Guidance Computer: Architecture and Operation. Springer Science & Business Media. ISBN 978-1-4419-0877-3.
- ^ Collins, Michael; Aldrin, Edwin (1975), Cortright, Edgar M. (ed.), "A Yellow Caution Light", NASA SP-350, Apollo Expeditions to the Moon, Washington, DC: NASA, pp. Chapter 11.4, ISBN 978-0486471754, retrieved 2009-08-30
- ^ "chrislgarry/Apollo-11". GitHub. Retrieved 2016-07-17.
- ^ Adler, Peter (1998), Jones, Eric M. (ed.), "Apollo 11 Program Alarms", Apollo 11 Lunar Surface Journal, NASA, retrieved 2009-09-01
- ^ Martin, Fred H. (July 1994), Jones, Eric M. (ed.), "Apollo 11 : 25 Years Later", Apollo 11 Lunar Surface Journal, NASA, retrieved 2009-09-01
- ^ Cortright, Edgar M., ed. (1975), "The Lunar Module Computer", Apollo 11 Lunar Surface Journal, NASA, retrieved 2010-02-04
- ^ Eyles, Don (February 6, 2004), "Tales From The Lunar Module Guidance Computer", 27th annual Guidance and Control Conference, Breckenridge, Colorado: American Astronautical Society
- ^ 달 모듈 안내 컴퓨터에서 전해오는 이야기
- ^ Witt, Stephen (June 24, 2019). "Apollo 11: Mission Out of Control". Wired. San Francisco: Condé Nast Publications. Retrieved September 18, 2019.
- ^ Tomayko, James E. (2000), "NASA SP-2000-4224 — Computers Take Flight: A History of NASA's Pioneering Digital Fly-By-Wire Project" (PDF), The NASA History Series, Washington, D.C.: NASA, retrieved 2009-09-01
- ^ Burkey, Ron. "VirtualAGC". iBiblio. Retrieved 10 April 2021.
- ^ "AGC source code collection on Github, maintained by iBiblio". GitHub. Archived from the original on 7 May 2021. Alt URL
- ^ Collins, Keith (9 July 2016). "The code that took America to the moon was just published to GitHub, and it's like a 1960s time capsule". Quartz. Retrieved 19 August 2016.
- ^ Garry, Chris. "Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules". GitHub. Archived from the original on 12 April 2021. Alt URL
- ^ "Archiving and referencing the Apollo source code". www.softwareheritage.org. Retrieved 2021-09-09.
- ^ "Virtual AGC Home Page". ibiblio.org. Retrieved 2021-09-09.
- ^ "GitHub - chrislgarry/Apollo-11: Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules". GitHub. Retrieved 2021-09-09.
- ^ "Apollo 11's source code is now on GitHub". Engadget. Retrieved 2021-09-09.
원천
- Mindell, David A. (2008). Digital Apollo: Human and Machine in Spaceflight. Cambridge, Massachusetts: The MIT Press. ISBN 978-0-262-26668-0.
외부 링크
- AGC 및 AGC 개발에 관한 문서
- AGC4 메모 #9, 블록 II 지침 – 지침 세트의 사실상 공식 문서 역할을 한 악명 높은 메모
- 우주 비행 중인 컴퓨터: NASA 체험 – James Tomayko 지음 (제2장, 제5부, 아폴로 안내 컴퓨터: 하드웨어)
- 비행하는 컴퓨터 – 제임스 토메이코 지음
- 아폴로 안내 컴퓨터 - A Users View (PDF) – David Scott, 아폴로 임무 우주비행사
- 달 모듈 자세 컨트롤러 어셈블리 입력 처리(PDF) – José Portillo Lugo, 기술사
- MIT AGC 프로젝트 – 포괄적 문서 아카이브를 통해
- Luminary 소프트웨어 소스 코드 목록, Lunar Module guidance computer용. (nb. 622Mb)
- Command Module guidance computer용, Colosus 소프트웨어 소스 코드 목록 (nb. 83Mb)
- 국립항공우주박물관 AGC I블록과 Dsky
- Eldon Hall의 달 여행에 대한 주석 – AGC 시스템 프로그래머가 Ed's Interrupt의 세부 사항을 포함하여 AGC 발전에 대한 모호한 세부 사항을 논의합니다.
- AGC 하드웨어 설계 문서화, 특히 트랜지스터 대신 새로운 집적회로 사용
- AGC 소프트웨어 작동 설명서
- Delco Electronics, Apollo 15 - 자세한 사용자 인터페이스 절차, 많은 기본 알고리즘 및 제한된 하드웨어 정보를 포함하여 Apollo 15 임무에 사용되는 CSM 및 LEM AGC 소프트웨어 설명서.이 문서는 500페이지가 넘으며 크기는 150메가바이트가 넘습니다.
- Command Module 코드(Comanche054) 및 Lunar Module 코드(Luminary099)의 소스 코드를 텍스트로 합니다.
- GitHub 완전한 소스 코드 원본 아폴로 11 유도 컴퓨터(AGC) 명령 및 달 모듈용 소스 코드
- 일부 AGC 기반 프로젝트 및 시뮬레이터
- AGC 복제 – John Pultorak의 성공적인 프로젝트로 지하실에 블록 I AGC의 하드웨어 복제품을 제작했습니다.미러 사이트: AGC Replica.
- 가상 AGC 홈 페이지 – Ronald Burkey의 AGC 시뮬레이터와 CSM(Colosus) 및 LEM(Luminary) SW용 소스 및 바이너리 코드 복구 기능.
- Moonjs – Virtual AGC 기반의 웹 기반 AGC 시뮬레이터입니다.
- 작동하는 AGC 및 DSKY가 있는 Eagle Lander 3D Shareware Lunar Lander Simulator입니다(Windows 전용).
- AGC 45년 후 재가동
피쳐 스토리
- 달로 가는 길 짜기 (BBC 뉴스)
- 복원업체는 달 모듈 안내 컴퓨터를 실행하려고 합니다(월스트리트저널).
- 아폴로용 컴퓨터 비디오
