Lab Notes: May 2011

May Lab Notes
Steven Turvey

I have often heard that, "Such-and-such was developed for the space program and now I use it in the home".  Back a generation or two this was probably quite true, but not anymore.

Now new widgets are developed, not for use in space, but for us - 'Homo Sapien Consumeris'. While we have always been consumers to some extent, over the past few decades, consumerism has exploded.

If you ever needed convincing that it is you and I driving technology, not NASA, compare the recently retired space shuttle to your PlayStation 3.  I recall reading once that the early space shuttle had around 0.005% of the computing power of the current PS3.

The shuttle's on board computer was a derivative of the flight computer from an old 1960's F-15 fighter jet, developed by Rockwell.  When the first shuttle flew in 1981 it had just 424KB of memory, and in 1990 it was upgraded to 1MB of memory.  Just think about that! That prehistoric computer was responsible for controlling the flight of a 2040 tonne mass of metal and highly explosive rocket fuel - over 1730kg of the takeoff mass was fuel alone!  At the time, the Shuttle's flight computer was one of the most sophisticated computers fitted to a spacecraft.  The comparisons are interesting: the Soviet Soyuz capsules, for example, ran on just 6KB of memory up until the early 2000s, and when the Eagle landed on the moon its flight computer boasted a measly 4KB of memory.

Why weren't the  shuttle’s ageing computers replaced with those  more powerful and modern?  The simple answer, reliability.  NASA and the military simply could not risk using leading-edge technology where a failure in the hardware could lead to catastrophe; unlike the less catastrophic consequence of your Xbox resetting itself during a game of Call of Duty 3.

It’s amazing what can be done with such modest computing power.  Bear in mind, though, that the shuttle’s computers each have a single dedicated task to perform, unlike the myriad of tasks of today’s consumer computer.  Also, the shuttle’s software was written in low level assembly language optimised and extensively tested to ensure there were no bugs. 2040 tonnes of flaming metal falling to Earth was not an option!

To ensure there is no rain of metal and fire, the shuttle had five 32-bit IBM General Purpose Computers (GPCs).  Four of the computers ran identical software and work in lock-step, checking each other’s calculations.  If the calculation of one GPC disagreed with the other three, then that GPC was disabled.  The fifth GPC ran backup flight system software made up of different, independently-created code to the other four GPCs. If a bug was detected in the primary software and all four GPCs lock up, the fifth GPC would take over with code that should not have the same bug.

The coding of the four main GPCs was so reliable that the fifth GPC was never needed.  Reminisce now, if you will,  the number of times your PC's programs have crashed.  Imagine, then, if Microsoft was able to write Windows in assembly language and extensively debug the code - your PC would be blindingly fast and stable.  To be fair to Microsoft, though, the effort involved would see the cost of Windows software matching that of a home in downtown Sydney.

Let's put the processing power of the Shuttle systems into perspective.  Each GPC was capable of 400,000 instructions per second.  Although not directly comparable, the PS3 is rated at 230,400,000,000 single precision floating point operations per second (230GFLOPs).

While we are up in the heady world of GFLOPS (109) Cray has planned to produce an ExaFLOP (1015) super computer by 2020 and it has been theorised that by 2030 a ZetaFLOP (1018) computer could carry out such precise weather modelling that an accurate two week forecast is possible.

It's nice to know that sometime after 2030 when I'm shuffling around the park with my Zimmer frame I will at least know for sure if I need an umbrella or not.

 


Space Shuttle Flight Controller Board


Space Shuttle Core Memory Board

Images from: http://klabs.org/DEI/Processor/shuttle/