Sei sulla pagina 1di 3

FIRMWARE

Firmware is a term sometimes used to denote the fixed, usually rather small, programs that internally control various electronic devices. Typical examples range from end-user products such as remote controls or calculators, through computer parts and devices like hard disks, keyboards, TFT screens or memory cards, all the way to scientific instrumentation and industrial robotics. Also more complex consumer devices, such as mobile phones, digital cameras, synthesizers, etc., contain firmware to enable the device's basic operation as well as implementing higher level functions. There are no strict, or well defined, boundaries between firmware and software; both are loose descriptive terms. However, firmware is typically involved with very basic low-level operations in a device, without which the device would be completely non-functional. Firmware is also a relative term, as most embedded devices contain firmware at more than one level. Subsystems such as LCD modules, flash chips, communication controllers etc, have their own (usually fixed) program code and/or microcode, regarded as 'part of the hardware' by the higher level firmware. Simple firmware typically reside in ROM or OTP/PROM, while more complex firmware often employ flash memory to allow for updates. Common reasons for updating firmware include fixing bugs or adding features to the device. Doing so usually involves loading a binary image file provided by the manufacturer into the device, according to a specific procedure; this is sometimes intended to be done by the end user.

Origin of the term


The term "firmware" was coined by Ascher Opler in a 1967 Datamation article. Originally, it meant the microcode contents of a writable control store (a specialized small area of RAM memory), which defined and implemented the computer's instruction set. The firmware could be reloaded if needed to specialize or modify the instructions that the central processing unit (CPU) could execute. As originally used, firmware was contrasted with hardware (the CPU itself) and software (normal instructions executing on a CPU). It was not composed of CPU machine instructions, but of lower-level microcode involved in the implementation of machine instructions. It existed on the boundary of hardware and software, thus the term firmware. Later the term was broadened to include any type of microcode, whether in RAM or ROM. Still later, the term was again broadened in popular usage to denote anything ROM-resident, including processor machine instructions for BIOS, bootstrap loaders, or specialized applications. When it comes to the subject of updating the firmware to a new version, a typical procedure until the mid 1990s was to replace a storage medium containing firmware, usually a socketed ROM. Nowadays, this approach is largely abandoned in presence of firmware's capability to overwrite itself in a convenient, purely electronic operation.

Firmware today
Firmware has evolved to mean almost any programmable content of a hardware device, not only machine code for a processor, but also configurations and data for application-specific integrated circuits (ASICs), programmable logic devices, etc.
1. Computer peripherals

Most computer peripherals are indeed special-purpose computers. While external devices have firmware stored internally, modern computer peripheral cards typically have large parts of the firmware loaded by the host system at start-up, as this is more flexible. Such hardware may therefore be unable to function fully until the host computer has fed it the requisite firmware, often via the specific device driver (or, more exactly, via a subsystem within a device driver package). Modern device drivers may also expose a direct user interface for configuration in addition to the fundamental operating system calls/interfaces or application program interfaces (APIs).
2. Firmware challenges in PCs

In some respects, the various firmware components are as important as the operating system in a working computer. However, unlike most modern operating systems, firmware rarely has a well evolved automatic mechanism of updating itself to fix functionality issues that are detected after the unit is shipped. The BIOS is fairly easy to update in a modern PC; devices like video cards or modems often rely on firmware dynamically loaded by a device driver and may thus be transparently updated through the operating system update mechanisms. In contrast, firmware in storage devices is rarely updated; mechanisms for detecting firmware versions and updating them are not standardized. However, in practice, such devices have a low rate of functionality issues compared to parts where the firmware may be updated. The reasons for this probably belongs to the realm of psychology; a partial explanation could be that designers (programmers) may not be inclined to invest as much energy in error proofing the code when it is known that it can easily be updated, as compared to when it "must be" correct in the very first production run. A difference in complexity may be another factor, as devices with fixed firmware tend to be simpler.
3. Portable music players

Some companies use firmware updates to add new playable file formats (encodings); iriver added the ogg format this way, for instance. Other features that may change with firmware updates are the GUI and even the battery life. Most modern music players support firmware upgrades.

4. Mobile phones

Most mobile phones have a firmware upgradable capability for much the same reasons as above, but some may even be upgraded to enhance reception or sound quality.
5. Automobiles

Since 1996 most automobiles have employed an on-board computer and various sensors to detect mechanical problems. Modern vehicles also employ computer controlled ABS systems, and computer operated Transmission Control Systems. The driver can also be given in-dash information while driving in this manner, such as real-time Fuel Economy and Tire Pressure readings. Most vehicle firmware can be updated at a local dealer.
6. IEEE Definition

Institute of Electrical and Electronics Engineers (IEEE) Standard Glossary of Software Engineering Terminology, Std 610.12-1990, defines firmware as follows:
"The combination of a hardware device and computer instructions and data that reside as readonly software on that device. Notes: (1) This term is sometimes used to refer only to the hardware device or only to the computer instructions or data, but these meanings are deprecated. (2) The confusion surrounding this term has led some to suggest that it be avoided altogether."

Examples
Examples of firmware include:

Timing and control systems for washing machines The BIOS found in IBM-compatible Personal Computers; The platform code found on Itanium systems, Intel-based Mac OS X machines, and many Intel desktop boards is EFI compliant firmware; Open Firmware, used in computers from Sun Microsystems, Apple Computer

Potrebbero piacerti anche