Upgrading is the process of replacing a product with a newer version of the same product. In computing and consumer electronics an upgrade is generally a replacement of hardware, software or firmware with a newer or better version, in order to bring the system up to date or to improve its characteristics.
Computing and consumer electronics[edit]
Examples of common hardware upgrades include installing additional memory (RAM), adding larger hard disks, replacing microprocessor cards or graphics cards, and installing new versions of software. Many other upgrades are possible as well.
Common software upgrades include changing the version of an operating system, of an office suite, of an anti-virus program, or of various other tools.
Common firmware upgrades include the updating of the iPod control menus, the Xbox 360 dashboard, or the non-volatile flash memory that contains the embedded operating system for a consumer electronics device.
Users can often download software and firmware upgrades from the Internet. Often the download is a patch—it does not contain the new version of the software in its entirety, just the changes that need to be made. Software patches usually aim to improve functionality or solve problems with security. Rushed patches can cause more harm than good and are therefore sometimes regarded with skepticism for a short time after release. Patches are generally free.
A software or firmware upgrade can be major or minor and the release version code-number increases accordingly. A major upgrade will change the version number, whereas a minor update will often append a “.01”, “.02”, “.03”, etc. For example, “version 10.03” might designate the third minor upgrade of version 10. In commercial software, the minor upgrades (or updates) are generally free, but the major versions must be purchased.
Companies usually make software upgrades for the following reasons: 1.) to support industry regulatory requirements 2.) to access emerging technologies with new features, and tools 3.) to meet the demands of changing markets 4.) to continue to receive comprehensive product support.
Risks[edit]
Although developers usually produce upgrades in order to improve a product, there are risks involved—including the possibility that the upgrade will worsen the product.
Upgrades of hardware involve a risk that new hardware will not be compatible with other pieces of hardware in a system. For example, an upgrade of RAM may not be compatible with existing RAM in a computer. Other hardware components may not be compatible after either an upgrade or downgrade, due to the non-availability of compatible drivers for the hardware with a specific operating system. Conversely, there is the same risk of non-compatibility when software is upgraded or downgraded for previously functioning hardware to no longer function.
Upgrades of software introduce the risk that the new version (or patch) will contain a bug, causing the program to malfunction in some way or not to function at all. For example, in October 2005, a glitch in a software upgrade caused trading on the Tokyo Stock Exchange to shut down for most of the day. Similar have occurred: from important government systems to freeware on the internet.
Upgrades can also worsen a product subjectively. A user may prefer an older version even if a newer version functions perfectly as designed. This may happen for a variety of reasons, including the user being already accustomed to the behavior of the old version or because the upgrade removed some features (see iPhone jack removal controversy or OtherOS).
A further risk of software upgrades is that they can brick the device being upgraded, such as if power fails while the upgrade is in the middle of being installed. This is an especially big concern for embedded devices, in which upgrades are typically all-or-nothing (the upgrade is a firmware or filesystem image, which isn’t usable if it’s only partially written), and which have limited ability to recover from a failed upgrade. Solutions to this generally involve keeping multiple copies of firmware, so that one can be upgraded while the other remains intact as a backup, but there are still holes which can cause this to fail. Tools such as Mender.io, Sysup, SWUpdate, RAUC, and OSTree provide more complete solutions that implement upgrades in a safe atomic way, and reduce or eliminate the need to customize bootloaders and other components. Desktop systems are more likely to use something like snapshots or restore points; these are more efficient as they only require a small fraction of space to store the changes from the old system to the new one, but the lack of a turnkey implementation for embedded systems makes this impractical.
Flash memory is an electronic non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for the NOR and NAND logic gates. Both use the same cell design, consisting of floating gate MOSFETs. They differ at the circuit level depending on whether the state of the bit line or word lines is pulled high or low: in NAND flash, the relationship between the bit line and the word lines resembles a NAND gate; in NOR flash, it resembles a NOR gate.
Flash memory, a type of floating-gate memory, was invented at Toshiba in 1980 and is based on EEPROM technology. Toshiba began marketing flash memory in 1987. EPROMs had to be erased completely before they could be rewritten. NAND flash memory, however, may be erased, written, and read in blocks (or pages), which generally are much smaller than the entire device. NOR flash memory allows a single machine word to be written – to an erased location – or read independently. A flash memory device typically consists of one or more flash memory chips (each holding many flash memory cells), along with a separate flash memory controller chip.
The NAND type is found mainly in memory cards, USB flash drives, solid-state drives (those produced since 2009), feature phones, smartphones, and similar products, for general storage and transfer of data. NAND or NOR flash memory is also often used to store configuration data in numerous digital products, a task previously made possible by EEPROM or battery-powered static RAM. A key disadvantage of flash memory is that it can endure only a relatively small number of write cycles in a specific block.
Flash memory is used in computers, PDAs, digital audio players, digital cameras, mobile phones, synthesizers, video games, scientific instrumentation, industrial robotics, and medical electronics. Flash memory has fast read access time, but it is not as fast as static RAM or ROM. In portable devices, it is preferred to use flash memory because of its mechanical shock resistance since mechanical drives are more prone to mechanical damage.
Because erase cycles are slow, the large block sizes used in flash memory erasing give it a significant speed advantage over non-flash EEPROM when writing large amounts of data. As of 2019, flash memory costs much less than byte-programmable EEPROM and had become the dominant memory type wherever a system required a significant amount of non-volatile solid-state storage. EEPROMs, however, are still used in applications that require only small amounts of storage, as in serial presence detect.
Flash memory packages can use die stacking with through-silicon vias and several dozen layers of 3D TLC NAND cells (per die) simultaneously to achieve capacities of up to 1 tebibyte per package using 16 stacked dies and an integrated flash controller as a separate die inside the package.
