Path: utzoo!utgpu!water!watmath!clyde!bellcore!faline!thumper!ulysses!andante!princeton!udel!gatech!uflorida!ukma!husc6!rice!titan!phil From: phil@titan.rice.edu (William LeFebvre) Newsgroups: sci.space.shuttle Subject: Re: Shuttle computer reprogramming Message-ID: <1938@kalliope.rice.edu> Date: 1 Oct 88 15:49:47 GMT References: <6689@nsc.nsc.com> <6980@ihlpl.ATT.COM> Sender: usenet@rice.edu Reply-To: phil@Rice.edu (William LeFebvre) Organization: Rice University, Houston Lines: 58 In article <6980@ihlpl.ATT.COM> knudsen@ihlpl.ATT.COM (Knudsen) writes: >Well, the network (ABC) said it was memory limitations. >... >I gather the programs are compiled with >a #define WIND_SPEED 12345 or some such thing It's not just memory and it's not as simple as changing a constant... more on that later. >One of the flight crew said that every time they want to >put a new capability into the computers (like yet another >emergency abort scenario), something else has to be >taken out. This is true. The software used on ascent almost completely fills the memory capacity of the computers. To add anything requires removing something else (or at least getting the memory from somewhere). >So I'll bet every byte of that code is hand-optimized >to hell and back. I doubt any hi-level language, >or even C, got anywhere near those computers. They call the language HAL/S (for "High-level Assembly Language"). I have seen some of the flight software (about a page or so) and it looked a whole lot like IBM assembly language. When I saw "BAL" I knew instantly what it meant. >Would someone who knows like to tell us how much RAM & ROM >these babies have? I know they use core memory... No RAM, no ROM. They use iron-ferrite core memory. I believe I mentioned in this list previously what I *thought* was a correct figure for the amount of memory. It turns out I was wrong. It is most definitely 208K half-words (IBM-ese for "16 bit word"). That would be 416K bytes. But the machine is only half-word addressable, so giving the size in terms of bytes is a little misleading. Remember that K=1024, so that's almost 213 thousand half-words (it's possible that some non-technical types would incorrectly say 212K or 213K). Now as to why they can't put all the difference scenarios into one program (and some of this is conjecture on my part)....They have calculated ahead of time a handful of different flight profiles. The profiles are based, in part, on the wind velocities and directions at different altitudes. Apparently, this is a very complicated model and takes quite a bit of CPU time and power to calculate the expected route. There is just no way that the on-board computers are going to be able to perform the calculations in real time. I suspect that it's hard for any computer to do the calculations in real time (maybe a Cray). So they perform all these tough calculations ahead of time and the on-board software becomes much simpler. So it's not really a matter of simply changing a constant. My understanding of this is very limited and my explanation may be a bit fuzzy, but it made sense to me. This has alot to do with flight dynamics which is apparently a very intense science. William LeFebvre Department of Computer Science Rice University