Four Decades of Evolution Toward Flexiware

Paul Sollock

NASA Johnson Space Center


Over the life cycle of a flight computer system, the ideal Computer System would begin as a malleable mix of code, conductors and semiconductors initially configured to meet the customerís original perceived requirements. Iíll refer to that mix as Flexiware.  Following project initiation, Flexiware then accommodates the DDT&I phase by easily reconfiguring, often repeatedly, to ultimately meet actual requirements.  At that point, the Flexiware should become firm, but not brittle because it needs to accommodate limited reconfigurations during its operational life.  In the mid-1960s, early flight computers were a two-dimensional mix of hardware and software.  A decade later, a relatively small portion of the hardware had attained enough flexibility to be termed firmware. By the mid-80ís, gate array technology began to appear and effectively created small islands of near-firmware within a sea of hardware.  In the ensuing two decades, rapid advances in gate array density and field programmability have further blurred the once distinct boundary between classical definitions of software, firmware and hardware. Definitions aside, the current toolset of software and hardware technologies offer the system design team many routes to achieving the near ideal Flexiware implementation; however, design flexibility can easily become too much of a good thing in a project which must deliver within cost and schedule constraints.


Presented in Session G: "Digital Engineering and Computer Design: A Retrospective and Lessons Learned for Today's Engineers"

2004 MAPLD International Conference Home Page