Our experts tackle your nagging questions

Vintage Tech The shuttle’s pea brain is smart enough to control a launch. Sandra Joseph/Kevin O’Connell/NASA

It’s true: The brain of NASA’s primary vehicle has the computational power of an IBM 5150, that ’80s icon that goes for $20 at yard sales. According to NASA and IBM, the shuttle’s General Purpose Computer (GPC)—which controls, among other things, the entire launch sequence—is an upgrade of the 500-kilobyte computer the shuttle flew with until 1991.

Such an antiquated computer works just fine for NASA. The shuttle doesn’t need to support a powerful graphics engine or create PowerPoint presentations or store MP3s. It focuses entirely on raw functions—thrusters on, thrusters off—which, though mathematically complex, don’t require the juice that a user interface like Windows calls for. The GPC has flown so many missions with hardly a hiccup that there’s no reason to replace it, even if it is just 0.005 percent as powerful as an Xbox 360. Besides, a complete overhaul would be horrendously expensive. The GPC’s software would have to be completely reconfigured for a modern computer and tested until proven flawless.

For proof that you shouldn’t fix a space computer if it ain’t broke, consider Russia’s Soyuz space capsule, which since 1974 has been running Argon-16 flight-computer software with just six kilobytes of RAM. In 2003 the Russians rewrote some of the spacecraft’s software, which experts suspect led to its subsequent crash-landing in a desert in Kazakhstan.

Want to read more articles on the military, aviation, and space? Subscribe to Popular Science today, for less than $1 per issue!

33 Comments

Now that's what I call efficiency. I wonder why this hasn't been done with modern tech, including the consumer side of things. Is it too difficult?

Its not efficiency. The shuttle only needs that much power because it only does a bunch of math, just a bunch of simple commands. A home computer needs to do a lot of different things and needs to be versatile while the shuttle only does one thing. For example a Playstation 3 has only 256 mb of ram and it outpreforms my computer that has 2 gb beacuse it is programmed to do specific things.

I don't think it's difficult at all. The problem is that efficiency is not a primary goal of huge corporations that earn billions of dollars in revenue for half finished products that have a never-ending, cycle of patches and "support/security" fixes. They created a self sustaining system of constant "necessary" upgrades and unfortunately, governments and people using those systems are totally buying into those policies that do NOT make any economic sense at all. One of many reasons why the entire world is in Economic abyss right now, is that people responsible for getting and evaluating technology never question or properly test anything and take everything they get at face value. "If it works out of the box it's good enough" is the worst thing you can do with today's technology.

NASA is a perfect example that technology can be made stable without ANY software or hardware upgrades, and can run for years with what they got.
They have systems that have their purpose and they operate at maximum efficiency most of the time, and they get the job done. People supporting and maintaining these systems should be given achievement awards and their names should be praised, as they are a true representation of what our technology minds can accomplish.
Governments and people should protest and refuse to be made to upgrade any technology that companies that made it consider outdated if that technology (be it software or hardware) is working fine.

Computer software follows the "ideal gas" law: it will always expand to fill all available memory. Give a programmer more memory, they will find a way to use it.

@SpeedyB: The PS3 has 512 MB of RAM: "The Playstation 3 has 256mb of GDDR3 at 700mhz and 256Mb of XDR at 3.2ghz." Info from: http://talkplaystation[dawt]com/ps3s-ram-and-rsx-explained/

BAHAHAHAHA! Thats brilliant. Wow. That just shows that retro isnt always bad. I just wonder what they could do with a quad-core. Oh how unimaginably close we are to star trek..kinda. Please someone start work on a warp drive...PLEASE. Im studying for environmental engineering so...ya...no warp gates or the like for me.

I don't know the author of this article, but they are horribly wrong unless something has drastically changed since I worked at the NASA JSC control center (systems architecture work for the new control center).

Many things were, and probably still are changed in the software each mission requiring a huge staff of maintenance programmers to code,and run quality assurane tests/verify the changes. Usually the telemetry stream is different for each mission, and thus tables, calculations, etc. are constantly being redone. At one time, there were 500 programmers maintaining this software and I doubt if it has changed much. A low level assembly language is used that is used no where else in the world so you can't just go out and hire replacement programmers without retraining. I believe the assembly language used was HAL.

In addition, that old box is a large user of power. The memory is probably core memory or something just as power and space inefficient. It is a piece of trash and needs to be scrapped, and the code should be rewritten in something like C, and designed such that any future vehicles can also use the new code and the new hardware. There is absolutely no reason to keep maintaining that junk except to keep a bunch of programmers secure in their out of date language jobs.

That's my humble opinion.

See previous post.

And, unless I am completely wrong, the GPC computers do much more that thrusters on, thrusters off. They collect the data from all of the onboard sensors and downlink 128 Kb of data down to the ground each second. There are multiple GPC's, with three voting on major decisions that the onboard computers are allowed to make. The software documentation alone would probably fill several books and it would probably be revised each mission.

The computers also have to be flight certified - radiation hardened, etc. The cost of flight certification for new computers is expensive, but the Space Station has computers that are flight certified that run a version of POSIX operating system, collect telemetry, etc. etc. Even they are out of date, but at least they use a modern language and modern operation system, not the grow your own such as the GPC's use. Things may have changed with the GPC and their maintenance, but I doubt it. It was a shameful expense 15 years ago and I am sure it still is today..

again,
in my humble opinion.

OH, and give me three or four good programmers and some new hardware and I will fix the problems I outlined in one year.

Here is a link to an article about the programmers for this computer:

http://www.fastcompany.com/magazine/06/writestuff.html

I bet it doesn't run Java. 8-D

One MB of RAM works, as mentioned, because the programming is very specific. The article title is a little misleading because the computer under discussion on the shuttle is only one of several--this is the launch computer. Also, this computer doesn't have to interact with human beings.

Regarding wwww1234's comment about core memory, NASA has historically used core memory because it is considered to be more stable in space than more modern RAM implementations. In particular, the effects of cosmic rays and other radiation outside the Earth's atmosphere are unknown and presumed to be destructive to terrestrial technology implementations.

I don't understand the bashing of twenty-year-old technology. A more interesting and pertinent topic would be a discussion of the shuttle's replacement and the tech being used or under consideration in the new vehicle.

I personally think it's admirable that the shuttle has done as well as it has with such simple technology.

@ alexmg2420

Sorry about the mix up. I guess the site I got the info from wasn't very accurate.

@wwww1234

You sound both knowledgeable on certain topics, and woefully misinformed on others. I would suggest reading the FastCompany article above before you disparage the 260 programmers at the On-board Shuttle Group of Lockheed Martin further.

As another person said, core memory is used instead of semiconductor memory because it is much less susceptible to corruption from cosmic rays.

The guys at OSG are one of 4 orgs in the world with a Level 5 code quality assurance rating. It takes so many people not because the language used is obscure, or that the tech is ancient, it takes that many people because every change in shuttle code is documented, implemented multiple times, tested for accuracy, and recorded for posterity to the nth degree. As an org, they have probably the lowest error in code rate in the world. There is no real need and it would take a lot of resources to port the code to C, and even then the code is task unique to a low earth orbiting man rated vehicle. Very little could ever be reused in other vehicles.

Frankly the cowboy mentality that you think even you and 4 world class programmers could do what the 260 person OSG team does in the same amount of time and as high quality, sounds condescending.

Lets see, 260 programmers at a cost to NASA of about $100,000 each is about $26,000,000 per year, probably more like $40 million per year after management, overhead, and profit is added in. Is that about right? Multiply by 30 years and you have about $1.2 billion dollars spent on software maintenance for those pieces of crap. The NASA IG should investigate the waste I do think.

In another similar example, hundreds of people and IBM programmers specified, checked out, and maintained the mission control center telemetry code, written for and on a IBM mainframe in assembly language. ONE PROGRAMMER, who knew what he was doing, wrote a program on a laptop computer that processed the entire telemetry stream, the same stream that was being processed by a IBM mainframe with large numbers of programmers writing and maintaining the code. I believe you can find that person's software on the laptops on the shuttle today, processing telemetry onboard, which the shuttle onboard computers cannot do. I repeat, ONE PERSON wrote that code, and he happens to be a friend of mine.

When you have to write code with limited memory you do everything possible to save a few bits of memory. You use different number types, pack and unpack data, etc. etc. In a modern computer with plenty of memory you just use floating point numbers, data bases, pointers, etc. and don't worry about having the tightest, least use of memory code in the world. You can also use a language that is as not as efficient as machine code or assembly. It is also much easier to debug and verify code.

And core memory is not used on the space station, so obviously it is not necessary for radiation hardening, etc. The core memory statement by a previous poster is obsolete, just as the computers and programming techniques being used are.

Give this cowboy four good programmers and I will get er done. I might be about to do it with one programmer after I redesign the telemetry stream and the data collection hardware.

By the way, much more that $1.2 billion has been spent on this software. Check the real historical numbers and the number of people that use to maintain the software.

And no, the code is not unique. Data collection and transmission is a common problem. Because the data is unique does not make the software unique any more than the numbers you type into your spreadsheet make the actual spreadsheet program unusable by other users.

I am not a programmer, but I was a darn good systems person and I recognize a serious problem when I see it.

IMHO

@wwww1234

$40m per year for the flight control software on the shuttle sounds like a deal to me. In order of flight criticalness I'd put the flight computer, ground telemetry downlink, onboard telemetry decoding.

Your friend sounds like an intelligent guy who can efficiently write some software, but if his software crashes, does anything happen besides some science experiments being delayed or shuttle crew look at their integrated displays or call to the ground for confirmation? I wouldn't get in any rocket that the flight control or ground telemetry software was written by even 10 world class programmers in a rented office suite.

As for core memory vs. solid state in space, without researching the current state of the art I still think it is a big problem. There are good reasons why the station may use solid state while the shuttle uses core. The first reason I would suspect is the shuttle computer redesign was done before the station and the tech wasn't quite there yet. I also seem to remember the station computers have massive metal shielding around its control computers. This extra shielding may protect the solid state memory sufficiently and be practical where it only has to take 1 trip to space, but wouldn't be economical when it is a vehicle that makes multiple fuel intensive trips to space.

No, you have the time in space backward. The shuttle is short term, the station is years. It is obvious that core memory does not have a advantage. The shuttle is used just a few weeks per year. The Space Station is in space for years, with human occupants all the time. Also, we have many critical communication satellites, GPS satellites, you name it satellites in orbit for years with solid state memory. The core memory people are just blowing smoke. For the weight used in the GPC and core memory I could put five inches of shielding around a cpu and it's memory. Take the GPC's out and you probably could increase the payload a 1000 lbs, and that's money, big money.

And yes, my friend writes reliable software, and of course any software written would go through the verification and reliability process just as the current software is. He also writes critical software for DOD.

Also, the 400,000 lines of code currently being maintained would probably drop to 100,000 lines using a better language, using fixed but large data tables which would be partially empty if a sensor is not active on a particular mission, use other modern data base handling and updating techniques, relational databases for updating onboard data bases, etc. When you remove memory size constraints programming gets much simpler and more reliable. A large part of your code is managing the memory and also managing real time scheduling with your own special written scheduler.

I have seen one of a kind imbedded hardware many times. It is never cost effective compared to using a general purpose computer unless you are building thousands or million of copies. Sure, it's ok in your microwave because of volumn and it never will change or be updated. It is not ok for five computers.

@wwww1234

Well guess what, core memory hasn't been used in the GPC since 1992, it has been CMOS memory. The reason core was originally used was the GPC was developed in the 70's and other delays meant the shuttle wasn't ready until the 80's
http://www.atarimagazines.com/compute/issue132/92_Space_shuttle_techno.php

As to programming ideologies, I can see the value in your approach if it is carefully planned and studied as it is implemented in new vehicles, but frankly it hasn't been worth it for the shuttles. In the 70's to early 90's embedded single use hardware certainly was more capable and reliable for use in safety critical operations. Today we have come far with software methodologies and RTOSes. It probably makes sense to move in that direction with new vehicles. But your flat dismissal of the state of current shuttle operations exudes overconfidence that I think isn't warranted.

@wwww1234
"It is obvious that core memory does not have a advantage. The shuttle is used just a few weeks per year. The Space Station is in space for years, with human occupants all the time."

Your wrong there on the technical aspects, and have faulty reasoning. The shuttle is always occupied when in space also, and the time in space has little to do with it because one cosmic ray at the wrong time and place, whether it goes through the station that has been there for years, or the shuttle that's been there a few days, could ruin the memory contents and cause a catastrophic problem.

Core memory is the gold standard for radiation hardening, you set the contents, turn off the power, and the memory is secure. Solid state memory in space has to use various tricks to ensure its reliability including shielding, maintain error correcting code, periodically checking for corruption, and refreshing the memory. These procedures are reliable enough now, and core memory has a big enough weight penalty that it makes economical sense only to use solid state instead.

Glad CMOS is finally being used. That is great.

my comments on your post.

Many of the reliability techniques currently being used can be used again, such a voting by four computers or having a fifth computer with entirely different source code.

The problem with the existing 400,000 lines of code is that much of it is commercially available. The POSIX real time standards specify most, if not all, of the operating system needs, including real time scheduling, priority management, etc. Math and driver libraries provide a lot of code that had to be specially written for this embedded computer. I would expect that if you take out all of this type of code you would have very few lines that are shuttle specific, and even that is not written for large memories and fast CPU's, nor with modern programming techniques.

And, don't forget the similar software that has been written for the Space Station, especially the validation of the libraries and the operating system.

Again, I am not a programmer, but I was on the IEEE committee (for three years) that developed on the POSIX real time standards, so I did pick up a few things, and even wrote a few of the requirements, for instance the requirement that came to be known as threads.

And then I became senile, shortly after.

lololol

I think you have called attention to an important subject.In my opinion, everybody should read this.Thanks for sharing beneficial information,too.
I am looking forward to see your other subjects and I follow those. www.zevkli-forum.com

As another person said, core memory is used instead of semiconductor memory because it is much less susceptible to corruption from cosmic rays

http://www.dovusvideolari.com/

turkish chat, sohbet movies

http://www.cici.gen.tr

BAHAHAHAHA! Thats brilliant. Wow. That just shows that retro isnt always bad. I just wonder what they could do with a quad-core. Oh how unimaginably close we are to star trek..kinda. Please someone start work on a warp drive...PLEASE. Im studying for environmental engineering so...ya...no warp gates or the like for me.

one cosmic ray at the wrong time and place, whether it goes through the station http://www.esacdokulmesi.com that has been there for years, or the shuttle that's been there a few days

experiments being delayed or shuttle crew look at their integrated displays or call to the ground for confirmation?
http://www.ligtvizlee.net

vry nice thanks buddy

trosor");

www.handlanu.com

ByFoB

www.pvpserverler.net

www.zkusohbet.com add links tnk you admin.

Very cool.
http://toronto.en.craigslist.ca/tor/vgm/2084098765.html
http://flightsimreality.com/proflight-simulator/

Windows 7 is an operating system produced by Microsoft. To install it on your computer you have to have windows 7 product key, while installing windows 7 you have to do windows 7 activation to enjoy full features of windows 7. If you have another operating system you can upgrade it to windows 7. Windows 7 upgrade is an easy process. If you not have product key you can you use Windows 7 crack to install, but there is a lot of issues with windows 7 crack.

It probably is true, I used to design 1MB RAM bars for the Space Shuttle in the late 80's. Space was at premium and we designed ultra slim and small RAM bars, the technology was COB (Chip On Board) where the 1Mbit RAM chips (which were about 8x12x0.5mm) where glued on a PCB and bonded with aluminium (or gold) wires then the whole thing was covered by resin, the bars had 8 chips and were 120x20x3.5mm in size (which was tiny in those days!). Those were produced in Switzerland, but I think other suppliers were also involved.

Hope this helps.



July 2013: The Future Of Flight

The incredible innovations, like drone swarms and perpetual flight, bringing aviation into the world of tomorrow. Plus: today's greatest sci-fi writers predict the future, the science behind the summer's biggest blockbusters, a Doctor Who-themed DIY 'bot, the organs you can do without, and much more.


Online Content Director: Suzanne LaBarre | Email
Senior Editor: Paul Adams | Email
Associate Editor: Dan Nosowitz | Email
Assistant Editor: Colin Lecher | Email
Assistant Editor: Rose Pastore | Email

Contributing Writers:

Kelsey D. Atherton | Email
Francie Diep | Email
Shaunacy Ferro | Email

circ-top-header.gif
circ-cover.gif
bmxmag-ps