The Ultimate Apollo Guidance Computer Talk

Video in TIB AV-Portal: The Ultimate Apollo Guidance Computer Talk

Formal Metadata

The Ultimate Apollo Guidance Computer Talk
Title of Series
CC Attribution 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Release Date

Content Metadata

Subject Area
The Apollo Guidance Computer ("AGC") was used onboard the Apollo spacecraft to support the Apollo moon landings between 1969 and 1972. This talk explains "everything about the AGC", including its quirky but clever hardware design, its revolutionary OS, and how its software allowed humans to reach and explore the moon.
Keywords Hardware & Making

Related Material

Video is cited by the following resource
Classical physics Computer program Keyboard shortcut Game controller Context awareness Digital electronics Multiplication sign Plotter Disintegration Floating point Mereology Computer Number Power (physics) Architecture Peripheral Read-only memory Computer hardware Electronic visual display Spacetime Damping Software testing Series (mathematics) Game theory Computer architecture Physical system Pairwise comparison Complementarity Keyboard shortcut Projective plane Expert system Computer Core dump Volume (thermodynamics) Price index Computer Digital electronics Virtual machine Word Numeral (linguistics) Commodore VIC-20 Series (mathematics) Calculation System programming Peripheral Mikrocomputer Quicksort Electronic visual display
Module (mathematics) Service (economics) Dependent and independent variables Game controller Injektivität Module (mathematics) Freeware Graph (mathematics) State of matter Weight Multiplication sign Ferry Corsten Set (mathematics) Mereology Computer Orbit Strategy game Vector space Core dump
Module (mathematics) Trajectory Injektivität Service (economics) Multiplication sign Moment (mathematics) Client (computing) Orbit Power (physics) Estimator Arithmetic mean Visualization (computer graphics) Gradient descent
Implementation Game controller Euler angles Execution unit Virtual machine Computer Peripheral Internetworking Vector space Software Computer hardware Electronic visual display Position operator Physical system Computer architecture Dependent and independent variables Keyboard shortcut State of matter Computer Group action Euler angles Control flow Cartesian coordinate system Film editing Vector space Software Computer hardware Order (biology) Physical system
Machine code Run time (program lifecycle phase) Code Cellular automaton Control flow Computer Formal language Number Population density Read-only memory Semiconductor memory Befehlsprozessor Operator (mathematics) Speichermodell Data structure Endliche Modelltheorie Kolmogorov complexity Structural load Cellular automaton Constructor (object-oriented programming) Data storage device Code Bit Population density Word Process (computing) Logic
Computer program Group action Machine code Correspondence (mathematics) Dimensional analysis Medical imaging Sign (mathematics) Negative number Multiplication Descriptive statistics Physical system Normal-form game Structural load Constructor (object-oriented programming) Bit Arithmetic mean Order (biology) Phase transition Cycle (graph theory) Quicksort Speicheradresse Reading (process) Spacetime Web page Open source Division (mathematics) Control flow Branch (computer science) Mass Computer Code Number Differenz <Mathematik> Bridging (networking) Term (mathematics) Subject indexing Representation (politics) Energy level Codierung <Programmierung> Data structure Binary multiplier Address space Pairwise comparison Default (computer science) Matching (graph theory) Information Weight Physical law Content (media) Code Generic programming Counting Line (geometry) Cartesian coordinate system System call Word Uniform resource locator Error message Personal digital assistant Free variables and bound variables Table (information) Hydraulic jump System call Structural load Code Multiplication sign 1 (number) Combinational logic Set (mathematics) Parameter (computer programming) Image registration Mereology Web 2.0 Mathematics Semiconductor memory Military operation Bus (computing) Endliche Modelltheorie Series (mathematics) Position operator Data storage device Opcode Right angle Resultant Row (database) Dataflow Trail Link (knot theory) Codierung <Programmierung> Complementarity Displacement Mapping Augmented reality Differenz <Mathematik> Revision control Programmschleife Operator (mathematics) Spacetime Integer Absolute value Hydraulic jump Condition number Operations research Addition Multiplication Cellular automaton Division (mathematics) Subject indexing Number Doubling the cube Calculation Address space
Computer program Pulse (signal processing) System call Code Multiplication sign Sheaf (mathematics) Set (mathematics) Formal language Fraction (mathematics) Word Component-based software engineering Different (Kate Ryan album) Semiconductor memory Befehlsprozessor Bus (computing) Social class Physical system Area Rotation Constructor (object-oriented programming) Bit Type theory Interrupt <Informatik> Configuration space Right angle Cycle (graph theory) Speicheradresse Writing Resultant Point (geometry) Game controller Functional (mathematics) Service (economics) Random access Computer Theory Number Prime ideal Peripheral Read-only memory Operator (mathematics) Computer hardware Interrupt <Informatik> Acoustic shadow Data structure Address space Boolean algebra Shift operator Information Tape drive Cellular automaton Forcing (mathematics) Counting Total S.A. System call Word Uniform resource locator Doubling the cube Personal digital assistant Read-only memory Formal grammar Window
Boolean algebra Digital electronics Code Sheaf (mathematics) Set (mathematics) Price index Mereology Rotation Semiconductor memory Extension (kinesiology) Physical system Complementarity Structural load Constructor (object-oriented programming) Interior (topology) Data storage device Sound effect Bit Opcode Arithmetic mean Addressing mode Interrupt <Informatik> Normal (geometry) Resultant Speicheradresse Point (geometry) Game controller Implementation Functional (mathematics) Addition Codierung <Programmierung> Disintegration Data recovery Shift operator Code 2 (number) Number Prime ideal Read-only memory Computer hardware Subject indexing Interrupt <Informatik> Acoustic shadow Data structure Codierung <Programmierung> Hydraulic jump Address space Condition number Computer architecture Buffer overflow Module (mathematics) Core dump Total S.A. Basis <Mathematik> Cartesian coordinate system System call Digital electronics Subject indexing Uniform resource locator Word Software Block diagram Personal digital assistant Interpreter (computing) Routing Buffer overflow Extension (kinesiology)
Computer program Pulse (signal processing) Machine code Digital electronics State of matter Multiplication sign Plotter Orientation (vector space) Execution unit 1 (number) Mereology Component-based software engineering Semiconductor memory Single-precision floating-point format Bus (computing) Cuboid Endliche Modelltheorie Local ring Logic gate Library (computing) Decimal Structural load Data storage device Bit Sequence Flow separation Type theory Order (biology) Interrupt <Informatik> Right angle Cycle (graph theory) Block (periodic table) Speicheradresse Resultant Convolutional code Asynchronous Transfer Mode Game controller Implementation Open source Mass Computer Theory Number Revision control Centralizer and normalizer Differenz <Mathematik> Read-only memory Computer hardware Energy level Data buffer Address space Module (mathematics) Information Cellular automaton Interface (computing) Content (media) Division (mathematics) Line (geometry) Digital electronics Magnetic-core memory Logic Lie group Diagram Address space
Pulse (signal processing) Computer program Greatest element Euler angles Multiplication sign Orientation (vector space) Real-time operating system Angle Function (mathematics) Parameter (computer programming) Fault-tolerant system System software Mechanism design Optics Interpreter (computing) Core dump Electronic visual display Position operator Physical system Control system Electric generator Data recovery Keyboard shortcut Range (statistics) Bit Flow separation Numeral (linguistics) Angle Telecommunication Interrupt <Informatik> MiniDisc Right angle Peripheral Hacker (term) Block (periodic table) Arithmetic progression Physical system Service (economics) Data recovery Virtual machine Device driver Distance Computer Number Flow separation Peripheral Software Selectivity (electronic) Interrupt <Informatik> output Tunis Module (mathematics) User interface Scale (map) Multiplication Graph (mathematics) Key (cryptography) Quantum state Interactive television Line (geometry) Device driver Cartesian coordinate system Error message Personal digital assistant Optics Interpreter (computing) Iteration Gastropod shell Electronic visual display
Point (geometry) Game controller Scheduling (computing) Service (economics) Multiplication sign Set (mathematics) Computer 2 (number) Coefficient of determination Sign (mathematics) Mathematics Different (Kate Ryan album) Semiconductor memory Operator (mathematics) Queue (abstract data type) Electronic visual display Flag Computer multitasking Interrupt <Informatik> Data structure Address space Task (computing) Service (economics) Stapeldatei Flash memory Real number Data storage device Bit Control flow Word Process (computing) Film editing Calculation Interrupt <Informatik> Electronic visual display Scheduling (computing) Sinc function
System call Machine code Structural load Code Ferry Corsten State of matter Multiplication sign Price index Opcode Mereology Formal language Mathematics Semiconductor memory Single-precision floating-point format Vector space Matrix (mathematics) Electronic visual display Flag Process (computing) Physical system Digitizing Opcode Variable (mathematics) Sequence Process (computing) Befehlsprozessor Vector space Computer cluster Phase transition Interrupt <Informatik> MiniDisc Summierbarkeit Cycle (graph theory) Resultant Writing Asynchronous Transfer Mode Rounding Asynchronous Transfer Mode Functional (mathematics) Virtual machine Device driver Regular graph Computer Field (computer science) Product (business) Revision control Read-only memory Operator (mathematics) Interrupt <Informatik> Data structure Summierbarkeit Address space Task (computing) Addition Shift operator Core dump Stack (abstract data type) System call Single-precision floating-point format Mathematics Word Pointer (computer programming) Kontrollfluss Doubling the cube Personal digital assistant Calculation Interpreter (computing) Library (computing) Address space
Computer program Scheduling (computing) Regulärer Ausdruck <Textverarbeitung> Code Multiplication sign Flash memory System software Latent heat Component-based software engineering Bit rate Semiconductor memory Gastropod shell Electronic visual display Representation (politics) Data structure Task (computing) Physical system Form (programming) Real number Digitizing Electronic mailing list Maxima and minima Dirac delta function Process (computing) Interrupt <Informatik> MiniDisc Gastropod shell Quicksort Remote procedure call Task (computing) Electric current
Computer program Intel Scheduling (computing) Presentation of a group Code Euler angles Multiplication sign Set (mathematics) Parameter (computer programming) System software Different (Kate Ryan album) Semiconductor memory Phase transition Core dump Electronic visual display Process (computing) Error message Physical system Data recovery Software developer Electronic mailing list Computer Digital signal Sequence Flow separation Type theory Process (computing) Vector space Phase transition Normal (geometry) output Arithmetic progression Service (economics) Table (information) Data recovery Streaming media Normal operator Number Architecture Goodness of fit Peripheral Software Computer hardware Interrupt <Informatik> Address space Computer architecture Task (computing) User interface Addition Validity (statistics) Interface (computing) Computer program Content (media) Autonomous system (mathematics) Commutator Contingency table Parity (mathematics) Euler angles Vector potential Word Electronic visual display Table (information)
Email Computer program Octahedron Conic section Structural load Dot product Multiplication sign Disintegration Set (mathematics) Electronic mailing list Plastikkarte Degree (graph theory) Insertion loss Installable File System Chi-squared distribution Computer icon Metropolitan area network Democratic Action Party Information Sine Decimal Cycle (graph theory) Electronic mailing list Plastikkarte Coma Berenices Group action Sequence Checklist Mathematics Length of stay Film editing Error message Personal digital assistant Synchronization output MiniDisc Codec
Metre Game controller Execution unit Computer program Set (mathematics) Menu (computing) Extreme programming Computer Cartesian coordinate system Computer Orbit Mathematics Estimator Goodness of fit Bit rate Insertion loss Personal digital assistant MiniDisc Pattern language Procedural programming Position operator Physical system
Point (geometry) Computer program Three-dimensional space Game controller Service (economics) Direction (geometry) Multiplication sign Bit rate Orbit Insertion loss Velocity Hypermedia Determinant Position operator Tunis Module (mathematics) Quantum state Computer program Commutator Horizon Planning Cartesian coordinate system Orbit Angle Optics Spacetime
Game controller Transportation theory (mathematics) INTEGRAL Computer Mathematical model Mathematics Velocity Computer hardware Reduction of order Position operator Module (mathematics) Multiplication Theory of relativity Weight Forcing (mathematics) Chemical equation Conic section Expert system Counting Perturbation theory Orbit Uniform resource locator Film editing Symmetry (physics) Optics Website Gravitation Whiteboard Spacetime
Rotation Computer program Time zone Trail Game controller Implementation Service (economics) Quantum state Open source Link (knot theory) Patch (Unix) Euler angles State of matter Orientation (vector space) Execution unit Source code Set (mathematics) Component-based software engineering Friction Symmetry (physics) Operator (mathematics) Remote procedure call Spacetime
Module (mathematics) Rotation Service (economics) Game controller Distribution (mathematics) Service (economics) Patch (Unix) Euler angles Multiplication sign Heat transfer Mereology Event horizon Thresholding (image processing) Number Coding theory Vector space Personal digital assistant Reduction of order Gravitation Moving average Asynchronous Transfer Mode Stability theory
Computer program Quantum state Length Multiplication sign Counting Flow separation Power (physics) Orbit Arithmetic mean Mathematics output Fiber bundle Resultant Sinc function Form (programming)
Module (mathematics) Computer program Quantum state Surface Moment (mathematics) Maxima and minima Computer Flow separation Event horizon Orbit Bit rate Personal digital assistant Task (computing) Physical system Social class Gradient descent
Module (mathematics) Web page Rotation Point (geometry) Computer program Euler angles Surface Gradient Bit Student's t-test Disk read-and-write head Mereology Radical (chemistry) Average Personal digital assistant Website Metropolitan area network Row (database)
Module (mathematics) Axiom of choice Trail Game controller Service (economics) Multiplication sign Modal logic Projective plane Electronic mailing list System call Orbit Power (physics) Roundness (object) Personal digital assistant Velocity Arithmetic progression Reading (process) Gradient descent
Module (mathematics) Computer program Service (economics) Quantum state State of matter Multiplication sign Moment (mathematics) Electronic mailing list Counting Parallel port Computer Peripheral Visualization (computer graphics) Vector space Personal digital assistant Optics Endliche Modelltheorie Intercept theorem Form (programming)
Module (mathematics) Point (geometry) Metre Injektivität Computer program Service (economics) Euler angles Multiplication sign Client (computing) Heat transfer Parameter (computer programming) Distance Checklist Flow separation Vector potential Orbit Angle Velocity Table (information) Social class
Point (geometry) Module (mathematics) Computer program Trajectory Game controller Range (statistics) MIDI Commutator Mereology Sequence Mixture model Latent heat Uniform resource locator Process (computing) Phase transition Linear programming Reduction of order
Module (mathematics) Computer program Trajectory Constraint (mathematics) Link (knot theory) Structural load Orientation (vector space) Set (mathematics) Modulare Programmierung Computer Power (physics) 2 (number) Process (computing) Computer multitasking Freeware Renewal theory Booting Sanitary sewer Buffer overflow Physical system Gradient descent
Computer program Group action Presentation of a group Open source Code Information overload Real number Virtual machine Mereology Computer Rule of inference Emulator Component-based software engineering Electronic visual display Endliche Modelltheorie Mathematical optimization Module (mathematics) Execution unit Computer Digital signal Complete metric space Variable (mathematics) Flow separation Orbit Hypermedia Software Chain System programming Website MiniDisc Simulation
and what and
the the and uh a kind a so that the the of the following talk is about a very relevant piece of technology good that is the of all of the human race the 1st is a computer that landed on on our moon and actually it became a metric on the started to compare other architectures other computers in volumes of most of posting speed of this computer the it's rocket science but it's even harder it's computer rocket science so I'm very happy to have this enhancement or has the Einstein's was actually 1 of scientists and for the but the computer parts we have the highest i who is the founder of the expert that as project and has gathered with this verdict and many others lots and lots of experience around architectures of computers so please do warrant roles will be what about qualitative thought welcome this on during US Welcome to the other little guidance and talk about a k a comprehensive introduction into computer architecture and operating systems like it my name is registered and and enhancement of this talk is number 6 in the series by various people the idea is to explain as much as possible about a classic computer systems 60 minutes the Apollo Guidance ADC is additional computer that was designed from scratch specifically for use on board the Apollo spacecraft to support the Apollo moon landings between 1969 and 1972 and developed at MIT between 1961 and 1966 of all 42 indices were built at a cost of about 2 thousand dollars each the basic plot is about 1 megahertz all data 15 that's there to the lower the RAM and 36 the word wrong room words wrong it's about the size of a large suitcase with 32 kg and consumes about 55 what's this is a face is a numeric display and keyboard some sort of context in the mid 19 sixties even just uh taken off the shelf computer and put into spacecraft the 1st minicomputers were the size of small things too heavy and to power and too slow for real-time scientific calculations you know the industry has come a long way since already 10 years later go microcomputers with highly integrated circuits started out the ADC hardware in many regards the many reasons that make the AGC especially interesting the architecture is very sixties and he very and us today the holidays very innovative for its time it has some very interesting and unusual peripherals it's operating system was revolutionary for its time and emissions of sulfur has all of its to with the right hardware testifying to the Moon if people program the program was used in 2 unmanned test missions to a more control to the ground and 3 men statisticians and 7 and landing missions as hated the idea of
giving up any control to computer they want to be in charge and why is a fallback most of the mission could also include manually this has got that way to understand the purpose and the responsibilities of the
work that we need to 1st look at the it from which the core strategy of the opponent was
instead of then completes this problem for which is extremely large rocket would be required to unintelligible and what the larger part of the weight vector states in the so the
post graph can be separated into the lunar module command metal and the first one is the set of 5
rocket launchers state in 3 out of 4
key Kennedy into by accelerating at the right time the trust rejection to spacecraft
into a so-called 3 return which which is coasting you travel around and vector
right at the beginning of this three-day during the command
service module extracts the module and looks it by breaking the far side of the
spacecraft into the orbit up to
this not his client into the you know what you have time talking the moment you breaks this is
called power in the city and I think
that there is no room for those who want what you and 2 estimates from the what you
can do what you want and what you do is just the remaining command service module accelerates the
positive and for trajectory toward the for
entry only on means by the way is
excellent visualizations of journal and how the
Apollo spacecraft works use which we can highly
recommend the Conference quadrant modules each
containing 1 AGC it was the same topic but attached to partially different I O devices in the self adapted for the specific spacecraft the Internet to the display and keyboard units which amounted alongside hundreds of switches the the computers
responsibilities during the mission are to track the position the so called the vector of course spacecraft there that this cut attitudes calculate cost for engineers and monitor or control set and 5 during launch in order to understand how the Apollo Guidance Computer does all this will look at its architecture and the hardware implementation some of its interesting peripherals systems offer has now as the persistence of low emissions software the the architecture of the agency can be described as a harmonic accumulate machine with 15 that once complement the arithmetic so I'll talk about
instruction set the arithmetic model and such encoding as well as the memory model I O operations encounters and finally the machine code instructions that vary widely researchers in a modern on process so which is maybe optimized runtime performance consists of about 400 structures some legal language mostly of academic interest that shows that a single instruction can be enough to solve the same problems as all of during the languages while a more complex constructions that can achieve high tech code density and contribute to high performance resulted in also generally means that the city will be drastically more complex the computer from the early 19 sixties consisted of only a few thousand transistors as opposed to today's billions which is why this is the sweet spot for the agency 36 instructions from just about the performance that was required mission these are the basic instructions some load store instructions arithmetic and logic of control flow instructions I O instructions and instructions for dealing with influence the memory model was the
cornerstone of the instructions memory consists of 4 thousand 96 cells number 2 hexadecimal 0 0 0 through with each cell contains a 15 bit word number between 0 and 7 almost all
changes in data in memory go through a 15 bit accumulator also called the marriages a program can copy words between the accumulator and memories of also add subtract multiply and divide values as they moved around the data and then we can have many meanings depending on how to interpret these values may represent integers all those 3 words are meant to be decoded as machine code instructions code and data the displacement the agency a so called for him the CPS program counter PC always holds the address of the instruction to be executed next load instructions copies the contents of human memory so into the the PC goes on to the next instruction to add instruction at the contents of a given memory cell to the accumulate the story structure of the value the accumulated into memory at a given location the generalized version of these instructions we just saw use k as a placeholder for a memory address as an argument these parts of a quick reference of instructions this is the generic syntax of instruction a short description of the exact operations in pseudocode this 1 takes memory address K and as they accumulate in the encoding of the instruction memory and the number of clock cycles the original syntax is the name the original design data structure for this talk I have chosen a more modern syntax here on the right which makes it much easier so much easier to describe the city bus people with and without a background in programming let's have a look at the instructions and it is an example of a load instruction load a common indirect 2 0 0 on the left you can see the set of registers of the agency most operations were the human so will be going while executing the instruction this if you look memory at location to zeros in research content and copies in the and this is the store instructions store a lot indirect 2 0 0 come a line and all sorts of the 1st argument is the destination memory the 2nd 1 the source that you you the looks of research uses a memory and copies the contents of the accumulated that cell there's also an exchange instruction which anatomically swap the contents of the accumulator and memories of the and instruction will look at the contents of memory address and add it to the content you later and store the result back into the human the and there's a subtract instruction takes account of America's subtract from the constant or the content of the and sources of light into thinking human is the result of the subtraction can be negative so we need to talk about funding of numbers are expressed on the so let's look at just for the numbers for the entire unsigned integers can express values from 0 to 15 with sign value encoding the uppermost that correspond to the sign and the remaining 3 that represent the absolute value consequently there several values for plus 0 and minus 0 this encoding is hard work what since 0 transitions in the special case once complementing coding is the order of the negative numbers reverses initializations of simple another they're still 2 representations of 0 modern two's-complement encoding only has a single encoding for 0 it'll backwards compatible on unsigned um addition subtraction in the 19 sixties computers designed for scientific calculations are usually once complement and so is the agency unfavorable numbers to express knowledge from 0 to 50 in one's complement the values 0 from 7 match the unsigned values those in the nanosize side is organized like this and like to complement the 2 sides a perfectly symmetric so negating numbers as easy as complementing the complementing and that is living off it so that a reputation of 0 plus 0 with 0 0 bits and minus 0 with all 1 additional positive space is equivalent to the unsigned version some the negative space when mapping signed negative numbers to the unsigned counterparts it's interesting when we have a 0 transition signed 6 minus 4 is 6 plus minus 4 which is unsigned 6 plus 11 which model 16 is what we have here is uh in one's complement carries the added to the end result of the 2 which is correct the trick to jump over to 0 Mozilla transition by adding that carries on the end around and all flow means that the assigns result does not fit into the numbers assigned 7 plus 1 would result in assignment 7 which is incorrect the same happens when overshooting negative numbers after applying the interrupt carry the result of science and here is incorrect this if you detect this lacks the result became later has an excellent record information about an also we call it the so if we have a code that reads the value of 7 f f f from memory and that's 1 of the result is 0 and all of the detectors so the accumulators the store instruction in addition to writing data memory this extra work if there's an awful condition it clears the awful conditions rights plus 1 or minus 1 into a and uh depending on whether it's a positive or negative flow and that's the next instruction this word problem can detect the offline use the plus 1 or minus 1 to apply the signs carried to hire a forward by storing age memory we now have a double word result was complement negating of using is living every bit and word so there's a delicate instructions for loading indicating value LDC which stands for the complementary to or from memory negated by the inverse thing all and right into the accumulator
incrementing that is adding 1 toward such a common operation that there's a dedicated instruction that increments words in memory in place there is no corresponding document structure instead of that to some instructions government and diminish the increment instruction as 1 to the original value the augmented instruction adds 1 to all positive values and subtract 1 from negative values effectively increment increments the absolute value retaining the sign the dimensions structured documents the positive values in increments in any of the mass scientific calculations this if has dedicated multiplications the mall instruction reads word from memory and multiplies it with cumulative when you multiply 2 signed 15 words you need up to 29 that's that is 2 words for the result of the complete result will be written into 2 registers the other half into a and all have to be be a set of 15 the register which is mostly used together with the accumulator with instructions that deal with that data double word values are expressed the uppermost it's they often memory at lower addresses the law that's in the or at high addresses making the AGC beginning which assuming the normalized form with matching signs the effective values the concatenation of 2 times 40 bits of the values division also words with double words it's takes a combination of the a and B registers as the dividends and what from memory as the device there are also 2 results the results and the remainder of the result is written into a and the remainder to be some of instructions also allow using a and B is a double word register loads AG commentary to 0 0 looks up address to zeros in memory and with the words in this in the next cell into a and B will complement vendors the same inverts of during that there's no instruction to store a and using step but there is a double word exchanges structure and values and add instruction and what people and to load and store just the the register there's an exchange their instructor for that for working with tables there's the indexed addressing an instruction that takes as an argument can use this example load a comma indirect 7 0 0 plus indirect ages 0 1st looks up address 0 8 0 adds it to the base of 7 0 0 which results in 7 0 to read from that address and write the result into a what the system has a table in memory at 7 0 there in example it contains models of 3 and index to that table is stored in memory at 0 8 0 with an example is 2 so we read the entry that index to the table which is 6 without a base address we get the syntax in this example of a comic novel indirect at 0 the base is effectively 0 and that's this if you will of the value of 0 at 0 memory added to the place of zeros all the values of the set and read from the press in this case the memory 0 8 0 effectively stores with the promise not and 3 a series of the destination inspection performed in the room by default instructions are executed sequentially the program counter to the increments as instructions are executed always pointing to the next instruction control flow instructions like jump in conditional jump change that when this if you had to jump instruction in all of its argument into the program counter which means that execution will continue that address J. is jump 0 only in terms of AUC otherwise continues with the next instruction similarly J easy only jumps phase negative ones in CCS count compare and see is a fun 1 the full weight for the execution depending on whether the value memories positive negative plus minus plus 0 minus and will jump to 1 of the next 4 instructions if you know the values of 0 you can in all the other 2 cases and just fill the 1st slots and if it's supposedly negative you have this in the 1st 2 slots they should never be reached but it's good practice for them to to fill them with since the CS also puts the absolute image value of the memory location into a predicament a uh a special case of the CSA can be used for loops that come down it the call instruction is meant for calling subroutines make a functions as like a jump instruction but saves the origin so colleague and return to it later for the cost of the program counter is incremented 1st and then copied into the link register LR finding the argument of the common structures copied into the program counter so that execution continues at the link bridges and return in the end of a subroutine the registration effectively copies the contents of the librettist into the program counter so execution resumes just after the construction yeah if somebody wants to on subroutine the problem has to save encourages the performance restored afterwards there's an exchange instruction specifically for this for additional levels a 2nd constructed manually using the indexing syntax so far we've seen the following registers the a register is used for memory accesses and all the is among the register for double with arithmetic the program katydids to keeps track of what execution of link register remembers the return address when calling suffered we haven't seen the 0 registered always contains 0 so when we read from it we again 0 and women right into the value of the stock the 3 justice that we'll talk about later the 8 registers or number 2 that is there are assigned memory addresses this means that the 1st page words in memory actually occupied by the register so they can be accessed using the addresses in all the structures that take a memory address this allows for much greater flexibility in the instructions we can load a web contents of the register by reading the countries of memory Application 1 into a because of 0 can be loaded it over just reading from memory at 7 which is the 0 and they can be incremented by incrementing memory and a and where 0 and we can use is appointed by reading from Dublin 1 let's look at memory more closely memories 4 thousand 96 words and goes from 0
0 0 2 the registers on looking at the very bottom of memory including them there are a thousand was RAM random access memory and 3 kilowatts of ROM read-only memory the AUC was originally architect and only have this little RAM and ROM section 1 let's look at the RAM area the uppermost floors thank the area is a window through which 1 of 8 different banks can be accessed each 250 words size the erasable bank register you be points to 1 of these facts in the 0 bank 0 is visible and the vendor if use 5 and 5 is addresses in the exterior always represent the same themselves but these are not additional cells of the same thanks 0 1 into this means that there's a total of 8 times 256 words RAM to kill works wrong organized similarly the local word is back to the fixed and register if the selects 1 of the 2 banks support for more than 30 to the words of Rome was added at the last minute this super bank that can switch the uppermost advance to the 2nd set so that a lot of work of afforded by the detector the fixed wrong there will always show the same common sense to the wrong banks the designers chose banks 2 and 3 to simplify this going in practice that's wrong contains presenting system called and RAM corporates in system data that have to be available at all times the remaining functionality is distributed across the different Roman Grand Banks switching around that can be done by writing to be in the region this is not a set of instructions that can be expressed by writing age memory location theory if a is 5 a TV will make Rembrandt 5 visible at 3 0 0 the same stories such a could be used to write to be if you register memory location forces which are on the other that wouldn't work for a common case if 1 bank on so-called code in another bank by force which is the wrong Bangladesh the and then doing a function call writing the bank number interview will switch of the bank the code is currently running on so I will be able to execute the common structure is and will continue running some completely unrelated code that happens to be the same address on the back to call code on a different kind of the PC registers the to be changed atomic call that is only a synonym for the existing the lower exchange structure 1st has to load to the bank and the program counter into a and B with then call it can ultimately moved into the peace the same exchanges fraction can be used for a far return it with the original values back into it the PC the 2 languages only holds 5 and 3 bits respectively the other bits of 0 and there's a 3rd languages to be both banks which mirrors information from both of the bank registers the call for both plants and animals a double word exchange instruction that updates program counter and both things subroutines usually have a private variables on particular ran banks all for both banks passes control to a function on different grammar and also directly switches Grand banks so that the caller can immediately access is return for both banks returns to the caller restoring is rampant configuration the usual ordering of the bank registers was chosen to allow for a double word exchanges with the NPC as well as for double exchange of PC and B notion all in registers and there's a more special occasions memory about the register of the shadow area which we'll talk about later and of those there for so called a registers which make up for the missing shift and rotate instructions when writing a 15 bit value into the RO are getting register it will be moved to the right by 1 of the lowest that will be cycle to the top the result in the new in fact are well rotates left SHR shifts to the right duplicating the top left and SHR 7 shifts to the right by 7 it's the 0 this is the the for the interpreted systems of a component that will learn about we have seen that the city was connected to Ramesh long-lived memory bus of computers also talked to peripheral devices that is the I O bus we've already seen the address space from memory there's a 2nd address space to talk devices there are 512 of I O channels number 0 0 0 look at that each channel is 15 bits and the in and out instructions can read words from and write words to I O channels for many devices the channel contains 15 individual control this controlled it can for example toggle like the out or instruction sets individual bits and out and please individual bits silence sections can work on the whole word or do boolean operations and and OR To make Boolean operations also usable between registers channels 1 and 2 are actually a of the B and L R service which allows for these instructions 4 and there's also the construction works on after the registers shadow area in the editing registers there's another special area the counters like I O channels that connect to external devices but they don't send it's a whole whole words back and forth instead they are controlled by harbor pulses or class hardware pulses on every pulse time 1 gets incremented for example while other counters and take number stored into them by coding counts down generating when I O devices used to signal the CQ they can interrupt normal execution next to the program counter which points to the next instruction there's the instruction register which holds the current so when an interrupt happens this secure copies and PC special memory location PC prime and I are entire and then Johnston magic location depending on the type of interest in this example 8 1 for the interrupt handlers service in the vise IRA destruction will copy PC and I are prime back into the sea and I obs execution will continue at the original location Merrill
places age who had steps are shadows of the registers PC and I are are automatically saved by interrupts and the remaining registers be saved by software if necessary the overflow condition that cannot be said to restored so while there's an awful conditions until the next store instructions which results will flow interrupt will be disabled the 11 interrupt handlers have to reside in fixed from starting at 8 0 0 the full words for each entry to blend code saves and B loads uh a and B with the bank of and PC of the actual header and jobs and from 0 special it's the entry point onwards makes you into the interpreter instruction there's an instruction to cause an interrupt and software instructions to enable and disable interrupts globally is 1 with special memory location and text 3 7 What this location is to be read from on the uh right from written to release every point 6 4 seconds of course the horrible decide the systems of was unresponsive and recoveries norms instruction set any examples we've seen the codes that represent instructions in memory let's look at how the coding works alone instruction about 3 bits of your code representing the load a and the remaining of this thing called the address this allows for a total of 8 instructions for the more than 8 instructions then addresses always started 0 0 and andromeda addresses start with anything about zeros so the store instruction which only makes sense and ran only needs to encode 10 address bits of 12 making room for another 3 gram only instructions the same is true for the increment structure which makes room for 3 more as well as CCS which has a lot of jump which only works on rom addressed since jumps to the bank register don't
make much sense these codes are used to encode STI CLI and extend extend as a prefix that changes the meaning of the of the next instruction allowing for a 2nd set of word instructions there's 1 with special call instruction called 2 which is called L R which is the return instruction of the CP there's a special case this 1 return as a side effect of calling memory application to it executes the instruction encoding the LR adjusted the 12 that address with leading zeros decodes into another common structure which transfers control to return address 1 indexed addressing is achieved by using the index reflects an indexed instruction consists of 2 instruction words index and the base instruction the interesting part in the basis function is the base address in the in the construction cost the address of the index index is an actual construction is secure reads from the given address 0 it's there in the example then adds its value 3 to the instruction code of the following instructions 3 7 0 0 which is stored in the internal biologist then it uses the resulting surgical 3 7 0 3 for the next instruction which is a lot from 7 0 3 the effective address if an interrupt occurs after in the next section that is no problem because I R contains the effective instruction code which will be saved into IR prime and restoring individual finding 1 and it's encoding with special meaning when the address looks like it's referencing the shall instruction register is an interpreter looking at the instruction set architecture as a whole there are many quarantine unusual features when compared to modern architectures uses once complement two's-complement it has no status register the overflow like can even be safe to interrupt disabled until the overflows resolved those store instruction may skip forward under certain certain circumstances the CCS is what you can several words and can be advantageous if the instructions following its use prefixes they are a notion of the route instructions the magic number locations that have been rotate when writing into them most fully instructions on only work on my old channels indexing is done by having the following instruction code and the architecture is not step in that it has to be used in the this was the architecture of the Apollo Guidance Computer now let's look at how this architecture is implemented in hardware the harm implementations of 1 megahertz microcoded uses integrated circuits for memory and or over memory will look at the block diagram enhanced search is implemented in microcode and then about how the schematic synaptic integrated circuits on modules on traits this is the fun part of block diagram shows
the AGC at the hardware level each box contains on the order of 500 logic gates the dotted lines so why is that in a single bit of information the solid lines are 15 wires that in the data work these units you timing and control and these are the central units the Central Register units or stay the linkages and program counter and arithmetic unit can add subtract numbers memory components deal with that and wrong the main plot of about 1 megahertz feeds into the sequence generator which keeps cycling through 12 stages which is 1 memory cycle and CT instructions usually take as many memory cycles as they need memory accesses so low added stored take 2 cycles and John what the sequence general contains a collection of 12 steps microprograms for each entity for each instruction like this 1 for the load instruction in each step the entries send control pulses to the other units which are connected to the right plots the control signal W. a for example instructs the register units to put the contents of a onto the right parts and are aiming to read the value on the bus into a memory is also connected to the right plus W S will talk about contents into the memory address register and R G and WG will be like the G register which offers the cells value after reading before right Signed 6 7 for example RG puts the memory buffer onto the bus and w uh the rights the vast contents into the temporary G register and 1810 he gets put on the bus and he gets really into the air at the beginning of every memory cycle the hardware since the memory address s usually what encoded instructions to memory and copies the contents of that address into G In the 2nd half of the MCT it's source G back into the same cell
so fortunately timing next to the microcode as well as the super version of a load instruction which is easier to read we can see allows the value from memory into G copies it into the and copies more interesting is the exchange instruction it's a state to be reads memory into G copies the resultant into a cup is the old value into G and stores that's due memory division for example take several MCT as microprograms way more complex but there are more microprograms than the ones for the machine instructions to there's only a single adding unit in the whole computer incrementing and decrementing the counters is done by converting the pulses into special instructions that it's injective injected into the instructions to the 14 of the so called unprogrammed sequences with their own microprograms some counter shift some of interacting binding hardware and these to control the interrupt and the interest in the recent the complete schematics publicly available and fit on just 49 sheets the whole implementation only uses a single type of data 3 input and and mandate so these are contained in 1 integrated circuit about a hundred of these i sees formal logic models a 24 logic models and some interface of power supply modules are connected together in trade which also contains the ion Department Trade the contains various rather amplify models as well as wrong RAM is implemented as a magnetic core memory which stores bits and I'm 1st for reading a bit please it's all the memory sequence makes sure so always writes the value anatomy without masses like take the ADC has an unusually high amount from whole world memory encodes that's by wires that either go through all past fairer for the fighters thousand bits per computer will be completed by betrays a and B are put together like this and hermetically sealed making for a rather complex computer this is its orientation when solvent spacecraft with this basic from modules accessible so they could in theory be replaced during the mission and that was the hard the
EU was few let's look at it was connected to a computer we will look at the core US is the only program to maintain the state vector of some quite specially license you don't see many other computers and peripherals used to communication of astronauts and mission control the gyroscope was the corpora for all that the parameter was originally built around the progress of the rotated into a certain based position this you command counters and then the girI excitation along with the axis of the spacecraft that can be read from the you contours using the gyroscope spacecraft always knows this attitude that is its orientation and things that we have built up in just for quarter the reactants with the with 3 values can be read from agriculture the optics on the command module I used to measure the relative position to the celestial bodies the computer uses the opt command counters to move the optics to point towards the generative a stock and will read in the astronauts fine tuning for the other counters the lending going up to the bottom of the new module and measures the distance to the graph the interrupted be triggered whenever new measurements available and the on right counter contains the new value you know what you want to wait a minute distance of the commonsense was monitoring wrong after setting the 2 angles and the and US contest appointed to what's the 2 other spacecraft it automatically triggered and cause redirect interrupting new data is available which can be read from the island right counters the command module service module and the lunar module all reaction control system RCS jets that emits small bursts for holding on charging the attitude on lunar module there's 1 bit for each of the 16 jets sitting in the 2 1 will make it Jetfire assistance that uses a dedicated time time 6 and interrupt the 6 trapped for timing the pulses the user interface is provided by the so-called disk key which stands for display and keyboard is 19 1930's 15 lamps and several numeric output lines keys generate the key wrapped interrupt and the key number can be readily from key you know which anemic display driven by the out of there's the Dirichlet iterate communication and between Mission Control and spacecraft as selectable speed of 1 . 9 of 51 kilobits per 2nd data were from middle torture often encounter entry into aren't abrupt data must to be sent or stored in the ion channel TNT and 1 of the dominant of signal the program when a candle register with the next the something interesting peripherals the agency system the agency system software makes the priority based cooperative but also pre-emptive real-time interactive fault-tolerant computer with virtual machine support the topics will talk about our
multi tasking the interpreter device drivers in the wait-list as well as the user interface and that mechanisms for fault recovery the AGC has many
things to do it does mathematical calculations that can take several seconds and it does I O with its devices but services interrupts when a device once the computers attention for example keypress they does regular servicing sing off devices like updating the display and it supports real-time control like flashing lamp or firing boosters at exactly the right time there's only a single secure so it must switch between the different tasks batch processing
multitasking computers work on long-running jobs 1 after the other but some jobs have higher priorities it makes more sense to run a door from the say 20 milliseconds then check the job cues and keep running the highest priority job in the queue until it terminates and is removed from the queue then keep picking the highest priority dog just have to manually checked at least every 20 ms whether there's a high any job in the queue by don't doing a so-called yields which makes agency a priority schedules cooperative multitasking computer a job is described by 12 were data structure in memory that contains the PC and both thanks register that point to where the dog will start or continue running as was of a word with a disabled flag in the sign bit and a flight which priority the course set consists of 7 . entries minus there and the priority word means that the entries Mt jobs there is always the currently running 1 when a new job cuts created with a higher priority the yield operation wall exchange the 12 words so that new job is job 0 negating the priority will put a stop to sleep so you'll want switched it again negating it again will wake it up the 1st words in the job entry can be used for local storage for the job since it's always job 0 that is running these words are always conveniently located at the same addresses in memory the Executive as a set of subroutines that control the job data structures you can create a new job pointed to by a pair of PC in dB registers of a given priority change the priority of the current job but the current up to sleep wake up a given job and terminate the current current yield is
not an executive function between instruction sequences that checks the new job variable in which the exact is always holds the idea of the highest priority job if job 0 is the highest for job there's nothing to do if there is a high very job at change jobs subroutine which switches to the job new job isn't just a variable in memory but also the watchdog word if is an access regularly that is cooperative multitasking stuck the horrible automatically reset itself the a lot of the code of the AGC does scientific calculations calculating for example just the sum of 2 products of a skill and a vector would acquire hundreds of instructions in HC machine code the there's library code the provides all kinds of operations on single double or triple precision fixed-point values vectors and matrices it also provides a softer multi-purpose accumulator and pack which can hold the double triple or vector depending on the mode flag In C-like pseudo code we would mode of the vector into the impact multiplied with a scalar save do the other multiplication and add the result to the saved value from like this 1 need to store intermediate results so 38 words status provided if a job users math code the impact the mode field on the stack pointer will be stored in the remaining fields of course at entry the stack will be part of a data structure structure called back which will be pointed to by the course at entry a job can be created with or without a that depending on which subroutine it is created with the machine code version of the example code would still be very verbose with many function calls passing pointers the designers of the suffer decided to create a new and compact language that will be interpreted at run-time virtual machine the the interpretive language is Turing-complete and in addition to the impact has to and exegesis two-step registers and it's only register the encoding manages to fit to 7 but of course in 1 word which allows for 128 opcodes and explains why there is a shift to right by 7 function in the CPU the 2 operands of stored in the following 2 words allowing 14 that addresses 14 that addresses means interpretive goats doesn't have to what this complicated memory layout anymore that allows addressing about half of the Rome and the same time at the lowest word of each have RAM is visible so interpretive code can pick between 1 of these 2 memory layouts this is the complete instruction set regular machine code interpretive code can be mixed and matched inside a job the exit instruction will continue executing regular machine code at the next address and call PredPol similarly switch to interpret amount the In addition to long-running math tasks the system of also supports device drivers when device needs to computers attention for example in case of a dispute press it causes an interrupt the current double the interrupted and intra-channel will read the device state and return as quickly as possible if there's more to do we can schedule a job for later some devices need to be serviced regularly of 120 microseconds time causes interrupts that read data and Wright State right every data from and write data to certain devices that merit display of the disk for example only allows updating a few digits of the time so it's drivers triggered by the 120 microsecond time the timer
interrupt cycles through 8 phases which distributes the device drivers across time to minimize the duration of 1 interrupt handler some devices need to be
driven an exact times if for example job decides that it needs a flash lamp twice it would turn it on immediately and give free weightless tasks in the future in the future at specific times the first one will turn the lamp off the 2nd 1 will turn it on again and the 3rd 1 will turn it off again the the sort of time deltas of the waitress tasks of storing the data structure Listing 1 with the 1st entry always currently counting down in a time register and T 2 contains a pair of PC and BB for each task this approach is to create a new task and and the current task the time that controls the wait-list has a granularity of 10 ms other timers can fire at the same rate but are offset and the were triggered by them is designed to be short enough to never overlap with the next potential timer triggered work this is complicated by device interrupts which can come in at any time the duration of an interrupt handler causes latency and the maximum duration will reduce the elapsed time for the timer handlers the course systems offer makes no guarantees about the timing it's all up to components uh to the it's it's up to all the components or cooperate so they're real-time goal can be met the pinball program is the shell of the
agency keypress interrupt schedule a job that collects the digits for the command and updates and in memory representation of what should be on the display the 120 ms time triggers the display update code when the commands completes pinball stages so new jobs Mission Control has a remote shell in form of a disk e connected through the S-band radio systems software that supports
human life has to be able to communicate more functions and be able to recover from them the alarm subroutine takes the following word from the instruction stream displays at an illuminates the probabilites light this should be interpreted as a warning or an error message the agency's offers full validity and plausibility checks that help to find Buxton during development and help better understanding potential issues during the mission some kinds of failures triggered by various hardware watchdogs or by code make impossible for normal operations to continue In addition to showing the error Could they also cause a hardware reset but the systems of all 4 offers recovery services a job can have recovery code for its different phases during execution it sets the respective phase and often aboard happens in any job or task the currently set up a recovery routine gets executed which could for example cleanup and further work again or skip to a different phase or canceled the job altogether the phase change calls that's the current phase for a job in the recovery table for example Phase 5 for jobs for each face is associated with a descriptor of a task or a job with or without a vector so during normal execution with several jobs and tasks scheduled define aboard happens the core set and wait list for clears the contents of the recovered to more activated scheduling tasks and jobs for all jobs that set of recovery code sometimes of failure there like corrupted memory are not recoverable they cause a fresh start meaning a full initialization of the system without running any recovery and that was the AGC system software the that as you know good overview of architecture and have their peripherals and system software the programs can be done it's time would be free on its practical use in addition to the we will look at the news and faint the launch sequence and once and all that the attitude of its determination for that we will understand how the digital departed works and how port flight is being performed as soon as you reach and we look at the lunar landing and you after liftoff and finally re-entry into Earth's atmosphere last but not least contingencies or the lexical them fine issues let's
start the user interface is like any command interface but can say only number said no let us keywords have to be encoded autonomous system you might say displaying memory enter displays the verb memories than on on the program committee is a verb or 1 which means displaying now 0 to memory and supporting last 1 argument or normal system might display a prompt you enter the number presenter on the program's commuter flashing work in now indicate that is waiting for input to type to 5 and turn the knob to address and the progress committed displays the result the memory contents at the address octal to fight the program that uses the same concept
of urban knowledge proactively ask for input verb 6 11 asks for the CSI ignition time to I mean quality sequence initiation come to the at later special cases where people granted after yes no questions road 99 has the astronaut come from engine ignition with the proceeds yes essence the complete reference of all works on some people as well as to cards with the most important information that's how both for each of the face of the mission starting with a list of so
we on our way you programs committee passive
monitoring motor for the cutting of the umbilical cables which you see you right about
now is start the mission clock in cases trigger fails 1 disk he's always prepared with verb 75 just waiting for enter to manually stop mission time we can display the mission elapsed time at any time of verb 16 on 65 during the flight the set
of 5 people arrested as only performing passive monitoring of the flight control the set 5 with its own long cheek digital computer and the instrument
unitary the disk you automatically shows were 16 on 62 which is just teensy per
2nd altitude change rate if the per 2nd and edited above pattern nautical miles note that the units and the position of the decimal point implicit and yes the whole system was working internally but for the benefit of the American astronauts this procedures converted everything into impurity units and how they
can hide case of problems with the certain computer uh the applicant with a Canticle full control of the lingerie goods in extreme cases estimates could even steer the holds they control with themselves to the hand controller in case you wanted to fly to menu controller 110 meter tall rocket with more than 30 million Eugen of trust this is your chance In less than 12 minutes we've
gone through the 1st and 2nd stage in a using a small grant from the 1st stage to get us into
185 kilometer orbit which circles the earth every 88 minutes but how we know where the
Earth we on the right orbit well the programs commuter as well as emission control and monitoring position velocity because to get we want to be the 1st each know where we are to be able to navigate in space need to maintain our
three-dimensional position and or three-dimensional velocity the so-called state vector so let's start with the determination of the position for this we need a telescope in space extant the space X and is very similar
to an 18th century in Sextant position is determined by measuring the angle between the rise in a celestial body
as arising we can either take that of Earth and Moon and celestial bodies well we and all of surrounded by them so that's just pick 1 like media will guide reader already knows the position of 45 of them all optics hot when it in the command service module can be moved to point in the general direction of them with a lot of problem 52 week among people committed to take the spacecraft . 1 axis of the sextant the so-called lent my line of sight LOS to the nearest body which is a moon yes not then used optics systems to exactly aligned horizon to the LOS with the telescope the S not looks for 1 of the known stars points assigned to it and that the programs to we do read the tuning and shaft angle repeating this 1 or more times in a different plane gives a three-dimensional position of the vehicle in space In the module on the other hand
people optics hardware was trimmed down for weight reduction any alignment transportation of the new module this is mostly used to determine the landing site and support the rondavel maneuver idiolects the softer to perform positioning interest in space as in moving
opposition changes all the time but after 2 locations fixes symmetry coasting we are able to establish 0 speeding can determine shooter positions by dead reckoning as position velocity unknown future positions can be extrapolated unfortunately the expert relation doesn't work in space is used rotational forces which banned or pop thankfully there to
mathematical models implemented in the Apollo Guidance Computer conic integration based on the Keplerian orbit mom on the left which assumes want perfectly round gravitational body influencing our flight path and anchors integrating method for perturbation considering multiple bodies with gravitational balances I think this helps to understand by me to compute board encounter started in the hand control as you see there was this cut
perfectly capable to fly zone but against NASA decided that the primary source for state ectopic operational mission control in Houston method with 3 ground stations remote programming Estonia programs to deny the running problem 27 this work and use its link y S stands to update the state vector but is 1 thing Mission Control doesn't know better than us and that's attitude attitude is the orientation of the
spacecraft in 3 three-axis starting from a no attitude we have to ensure that we can measure any rotation about any axis that's what gyrus of
4 there was a major component of the iron you with the notion that I'm unit 3 gyroscopes 1 taxes that any rotation and provide their data to the Apollo Guidance needed to keep track of the attitude of the spacecraft before he drove over to this could be because
discussed the digital autopilot is the single biggest problem in the we with about 10 per cent of all the source code both in the command service module as well as the dome 1 you implementations for each legal significantly different though due to different flight most the sets and symmetry of vehicle and there is no friction space the tiniest
event but constantly make the spacecraft rotate the digital alter poet of the operands reduces the jets to maintain the attitude the thresholds so cold dead that's the other
part is also used in case the yes of need to use a hand controls the fastest basically most the command service module and then what you have fly-by-wire control as any faster could break at any time the other part is capable of calculating the ideal growing mode even with the reduced number of thrusters is something that was also a center of gravity and the distribution as well which are taken into account in calculating thruster maneuvers it can do more than that they will do it a new
attitude and the calculate the most efficient transfer vector to reach the new attitude the certified what might be required have a stable rotation beach for temperature control monitoring and landing side or other reasons the autopilot supports stable constant rolling which can be directly activated the other but it does not only control
attitudinal supports the true performing power flight maneuvers calculate a potential solution which obviously can be overridden by ground as usual but still after confirmation the autopilot automatically fire the engines and take the time off for the correct length of time it doesn't not men and measure the results of the bundle the four-part flight obviously dead reckoning kick is incorrect anymore so the Apollo Guidance Canada consensus supporting coat every GG which takes the input from the a new meaning gyro and accelerometer to compute the change to the state vector
now that we know how to orient ourselves not to control the spaceship it's time the flight to the Moon usually the chance the magic happen in the middle of the 2nd orbit around the Earth so around 2 hours 45 minutes into the flight this is the form by the 1st stage of this the 2 and 5 so the programs the once again should only have a passive role here by monitoring the trans rejection of the dedicated problem P 15 after separation from the US for the we on our way since next addressing faces than lending let's get brighter that 1 once
and orbit separation between the classes Mondrian what you happens for hours and 45 minutes before landing on the module directly after it's wrong to equipment like radar strobing VHF attested as well as the and you which is realigned additionally there's lots of preparation work on the new module 1 of the main task is to prepare the aboard aboard guidance system AGS which is another more simpler computer that is able to get the moment you with the astronauts they control but instead up this season in case of an emergency let's get back to party
sent lunar module agency has a special program for that 1 piece 63 breaking face lending rate are switched on and updates the state vector people events and controls the broad to which the correct chordal Chaucer surface with a minimal amount of fuel this is fully automatic yes not just along for the ride through the modulus oriented with this descent engine towards the moon visibility for the astronauts as close to 0 the 2nd program P 64 starts
automatically at around 8 thousand feet lunar module is
page yes not can actually see the ground and low motor command as getting a better understanding of the landing site can search for suitable sport the program P
68 keep the modernist their attitude about the surface and the commander manually adjust the head of height and once per 2nd command to slowly
descend to the surface ideally at that point the rows of the movement of the what you should be 0 after touched on the crew manually activates problems 68 which confirms to the Apollo grad student and yes we have indeed landed and shows that the engine is switched off terminates the average Ji?etín it's it's the part in a very forgiving setting to avoid any corrections that it measures the rotation of the moon uh the other part is not completely switched although as yes love might need in case of an emergency ascent well we on the moon we do the usual stuff small step for man Gibraltar deflect and against it directly to the interesting bits with this list of and drawn to run the what technique
was developed in the genome project you can see the you rondavel targeting of orbit it follows the principle of active freedom in this case the module which follows the commands of modern approaches that from the lower slightly faster all that there are actually 2
different ways for onto a more conservative method called call it big rendezvous which required 1 another or with for the new module to reach the command service module but give ample oppurtunity for monitoring progress mid-course corrections and all what scenarios in a more risky direct 1 who method which directly in null choice the common would you taking less than 1 all went to the docking this 1 was used starting from the Apollo 14 mission as Mission control had more experience name for the shorter less fuel in a in intensive method preparation had to start 2
hours before liftoff we have to align the a new and it is really more into the orbit of the sea mn and calculated the round would data people don't read has problem 22 season tracking for this purpose left of minus 1 or we start problem 12 power descent and the the the necessary data list of time and velocity targets
the programs written forms the count on us for confirmation we proceed and we have a list of the trip into all which takes only 7 and a half minutes but depending on which method for reaching the target would was used to Texas and 1 and a half of 3 enough hours to come up behind the
command service module during that time problem 20 is running all the time measuring the state vector of the other vehicle command service module with by various peripherals like wrong to write out the GEF antenna and the optic system for visual alignment a kegger is this corridor on respective maneuvers required to get the lunar module into an interception cost model of other programs run in parallel to perform the necessary goes by maneuvers on the climate was module the
pilot is actively tracking the moment you the whole way up to all the chlorophyll is what is computers just calculating the state
vector of the null model to take over the role of the active legal in case anything goes wrong the approach of the Lunar Module
stops at 50 meter distance at which point it rotates to point stocking target on top towards the command service module at that point in time the client so as we take so the active role and activates problem 79 final rendezvous which slows down the commodity was moved to close the distance onto docking 2nd before contact all departed on both spacecraft is switched off toward both trying to correct the attitude of the combined spacecraft so far so good
time to go home the transfer of injection we see Table against we do with the all parameters and let it calculate the burn which is inactivated in controlled any kind of potential mid-course corrections are performed the exact same way yeah once in orbit around us
we had to produce a co calculated on ground and transferred to be about a constant y and the uplink the 1st and you program p 61 entry preparations started entry minus 25 minutes very lending parameters are requested like latitude and longitude of this class known as as the velocity angle center the atmosphere entering confirming these values completes problem 61 starts from 60 to which basically asked the S not to perform a checklist for manual command module service module separation which is not controlled by the Apollo Guidance Computer after that has been performed its which is automatic into programs 63 entry in East is the english
the alleviation at a point the other part is
taking care of thruster control to break the command module older of that's all that into others atmosphere the main programmer for reentry is problem 64 entry with starts automatically the 64 monitors the
trajectory and splashed on location a determines the best entries solution the potential benefit the reduction by invoking to specific programs either piece 65 entry up control which basically makes the command module so the apples to reduce speed and extend the range or program 66 inter ballistic for to the atmosphere like a cannonball the right mixture of the 2 was decided the program 64 the
last program program 67 final phase performs the final maneuvers to the special the following steps like perish deployments on unlocked on linear programs can be done but by the ELSE the US lending sequence control up to the job of the Apollo commuters done before applying the parachutes so this is a beautiful nominal mission what can go wrong
well let's start with Apollo 11 which had at 12 0 2 program Milan during powered descent nominee programs to empower descend use about 85 per cent of the processing power of the computer but you drink incorrect power supply design their own tour of the renewal radar generated an additional 12 thousand 800 involuntary instructions per 2nd ironically amounting to the exact additional 50 % load due to the cooperative multitasking k a Q of jobs buildup which resulted in executive overflow air and the trouble to allow the predict system automatically performed the programmer bought a job for Council and restart all of this took just a few seconds and then link could commence the next Apollo 13 they had an
explosion of the oxygen tank in the sewers modular 55 hours 54 minutes 53 seconds and blue yet correct uh 320 thousand kilometers from growth fortunately they could make use of the free return trajectory to get the US specter of but they had to move to lunar module to survive as the command so as money was completely shut down including its Apollo guidance computer the i knew settings needed to be transferred to the new module system 1st adapted to different orientations of the spacecraft the nine bonds in the course corrections actually done the award guidance system on the module due to power constraints at the Apollo Guidance Computer successful reruns reboot of the command so as not to commit I was lucky done hours before reentry the and last but not least Apollo
14 which it a floating foldable India aboard but which my teacher unwanted activation of abort therefore putting the lunar module back into orbit this little within hours by reprogramming AppleEvents committed to school the execution of a different program which was not listening to the aboard button during the party sent we aboard activation always to be manually activated by the disk the so this was an overview of emissions after was used on a flight to the Moon and back few have no you probably want to run your own code on real Haldeman's computer so you need to know where to find 1 42 computers were built told some lunar module computers crashed onto the moon the ReLU model agencies burned up in the Earth's atmosphere 11 command module computers returned to their all presumably parts of museum because it exhibits and 21 machines were not flown little is known about those 1 is on display at the Computer History Museum in Mountain View California but it is missing some components for luckily several emulation solutions are publicly available as well as a tool chain yeah and a complete mission source Virgil the size of a medium-sized suitcase is available on this book with and future solutions to the presentation we would like to thank everyone who helped and supported us this includes the encouragement to reduce who wrote the book spiritual optimization the sites and the software thank you very much for your attention Thank you right so if the wall the wall and floor and if group that I think this was amazing information overload this is a rule that all of the variables that we few ch be just was
so if the yeah I think it would be the the in the in it is the each Peter Chen the act but