TechWhirl (TECHWR-L) is a resource for technical writing and technical communications professionals of all experience levels and in all industries to share their experiences and acquire information.
For two decades, technical communicators have turned to TechWhirl to ask and answer questions about the always-changing world of technical communications, such as tools, skills, career paths, methodologies, and emerging industries. The TechWhirl Archives and magazine, created for, by and about technical writers, offer a wealth of knowledge to everyone with an interest in any aspect of technical communications.
Well, I don't know if the DOD accepts a dictionary entry as a citation,
but my American Heritage Dictionary defines firmware as:
"Computer programming functions implemented through a small
special-purpose memory unit."
Microsoft's techinical dictionary (or Sun's style guide, or any number
of other special-purpose dictionaries and style guides) would probably
better citations, but I don't have any handy at home.
In practical terms, firmware consists of code in any sort of ROM.
Examples:
* Microcode on a CPU chip.
Microcode consists of direct fundamental operations that, combined in
sequence, cause a chip to execute a single "machine'language"
instruction. In other words, while a programmer writing assembly
language might write an instruction to add register 1 to register 0, the
microcode fetches and decodes the instruction, opens and closes logic
gates, moves bits onto a bus, etc., to make that addition take place.
There is a separate microcode program for each of the available
instructions in the chip's instruction set. (Historical note: The
concept of microcode, in the sense of writing and storing a set of
fundamental operations rather than laying out the operations on circuit
boards, began with System 360, which implemented the concept with a set
of punched plastic strips.)
* Drivers in EEPROM
I bought a Cardinal modem that was 28.8 when I bought it, with the
feature that it was upgradable once the 33.6 driver was available. I
dutifully went to their website and turned control of my computer over
to them. After a fair amount of churning in a "special mode," the
details of which I don't pretend to understand, my computer had
reprogrammed the EEPROM on the modem card with the new firmware.
* Persistent program storage
I worked on a project involving a complicated machine that had several
small robotic subsystems driven by a master computer. The code for
driving each of the robots was stored in FLASH memory on a separate
processor board. When the master computer started up, it exchanged
messages with the slave boards to verify they had the correct version of
code loaded. If so, it went on about its business. If not, it downloaded
the correct code. While this strategy saved a little time, downloading
fresh code was not a long drawn-out affair as it was with my modem.
* Proprietary program code
PostScript is supplied to printer manufacturers as a ROM chip, or at
least it used to be.
Other examples (mostly historical--I don't think that with today's cheap
memory, cheap disk space, and high-speed processors anyone does this any
more, but I could be wrong about this) include storing language
compilers, printer fonts, and emulators (code to enable one CPU to
execute the instruction set for another).
HTH,
Dick
Smokey Lynne L Bare wrote:
>
> Greetings TWs:
>
> I need a definition for FIRMWARE. It is for a miliatary standards doc.
> Anyone got a definition (which also needs to be cited). I know we have
> some great SMEs out there. I need this ASAP, what's new
> .....hmm....seems we all suffer from that. TIA.
>
> Smokey
>