Write-only memory (engineering)

Last updated

In information technology, a write-only memory (WOM) is a memory location or register that can be written to but not read. In addition to its literal meaning, the term may be applied to a situation when the data written by one circuit can be read only by other circuitry. The most common occurrence of the latter situation is when a processor writes data to a write-only register of hardware the processor is controlling. The hardware can read the instruction but the processor cannot. This can lead to problems in producing device drivers for the hardware.

Contents

Write-only memories also find applications in security and cryptography as a means of preventing data being intercepted as it is being decrypted.

Hardware uses

In 1972, WOM, an antithesis of read-only memory (ROM), was introduced as an inside practical joke perpetrated by Signetics. [1] However, it was soon recognized that this concept actually describes certain functionalities in microprocessor systems. [2]

The most frequent occurrences of write-only memories are where the memory locations are registers or an integrated circuit being used to control, or pass information to, hardware outside the processor. A central processing unit (CPU) can write to these locations, and thus control the hardware, but cannot read back the information and discover the current state of the hardware. The memory is write-only relative only to the CPU's point of view. Such arrangements are common on small embedded microcontroller systems to save costs and can cause difficulties for authors of device driver software. [3] When the current hardware state is unknown to the CPU it can only put it into a known state by sending a new command, which may result in the state changing. [4] [5] To alleviate this difficulty, the content of the WOM may be mirrored by the CPU in the regular memory. [6] However, this strategy is only reliable if the register is read-only from the perspective of the hardware. If the external hardware is able to change its own state independently of the CPU then the hardware state is able to diverge from the image of that state being mirrored in CPU memory.

An example of this kind of use concerned access to memory on early PCs. The original PCs used 8086 or 8088 processors which had the ability to address only 1 MB of memory. A large part of this was occupied by the BIOS and the video card, resulting in only 640 kB of contiguous addressable RAM being available. The memory requirement of many applications soon surpassed this figure. One method of overcoming the limitation was by the use of bank-switched RAM. A number of banks of RAM are provided, but are not permanently assigned to a memory location. In a particular implementation, a special board is added to a computer, which controls the allocation of banks to memory space. The control board has its own memory chip. A computer can write data into this chip, but only the control board itself can read the chip, [note 1] hence it is dubbed "write only" memory. [7] :200–202

Another example concerns some functions carried out by graphics processing units (GPUs). For instance, a GPU might be carrying out shader processing on the contents of graphics memory. It can be faster and more efficient for the GPU to take input for the shader process from read-only locations and write the shader output to different write-only locations without having to copy data between the read and write buffers after each iteration. [8]

An example that is still of contemporary relevance can be found in the 16550 UART, whose derivatives are still in widespread use. To add a data FIFO without breaking compatibility with the 8250 UART's eight configuration registers, the write-only "FIFO control register" was assigned the same port address as the read-only "interrupt identification register". Writes to that address program the FIFO control register, but there is no way to read it back.

The term is also used to describe the computer view of certain display devices such as the e-ink screens used in e-readers. [9]

Security and encryption

Locking the frame buffer of a GPU to effectively turn it into a write-only memory can be useful in protecting encrypted data. When encrypted data arrives at its destination, it needs to be decrypted before it can be displayed to the user. The existence of unencrypted material in memory where it can be accessed by the CPU or peripheral devices is a potential security weakness. This weakness may be alleviated by carrying out the decryption within the GPU and writing the unencrypted data directly to display memory. Nothing else can read the data while the frame buffer is locked, and when it is unlocked it will be displaying something else. [10] All modern smart cards that feature a chip can also be said to rely on WOM technology, because they are programmed at a factory with certain encryption keys that can not directly be read by a card reader. Instead the keys are indirectly used by algorithms that validate passwords or decrypt certain content. Nintendo had a patent describing using hard disk portions as temporary write only storage for game code that is kept write only until that partition has been verified with an authorizing digital signature. [11]

Computability theory

In computability theory, adding a WOM to some models of computation can increase their computational power. [12]

See also

Notes

  1. The board is installed so that its memory chip is at the same address location as a location in ROM. A write to that address goes both to ROM and to the board, but the read-only memory is unaffected. However a read returns only the contents of ROM since the board hardware does not respond to an external read command. [7]

Related Research Articles

<span class="mw-page-title-main">Cache (computing)</span> Additional storage that enables faster access to main storage

In computing, a cache is a hardware or software component that stores data so that future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation or a copy of data stored elsewhere. A cache hit occurs when the requested data can be found in a cache, while a cache miss occurs when it cannot. Cache hits are served by reading data from the cache, which is faster than recomputing a result or reading from a slower data store; thus, the more requests that can be served from the cache, the faster the system performs.

<span class="mw-page-title-main">FIFO (computing and electronics)</span> Scheduling algorithm, the first piece of data inserted into a queue is processed first

In computing and in systems theory, first in, first out, acronymized as FIFO, is a method for organizing the manipulation of a data structure where the oldest (first) entry, or "head" of the queue, is processed first.

<span class="mw-page-title-main">Microcontroller</span> Small computer on a single integrated circuit

A microcontroller or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs along with memory and programmable input/output peripherals. Program memory in the form of ferroelectric RAM, NOR flash or OTP ROM is also often included on chip, as well as a small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips.

<span class="mw-page-title-main">Original Chip Set</span> Chipset used in Amiga personal computer

The Original Chip Set (OCS) is a chipset used in the earliest Commodore Amiga computers and defined the Amiga's graphics and sound capabilities. It was succeeded by the slightly improved Enhanced Chip Set (ECS) and the greatly improved Advanced Graphics Architecture (AGA).

<span class="mw-page-title-main">16550 UART</span> Integrated circuit serial port implementation

The 16550 UART is an integrated circuit designed for implementing the interface for serial communications. The corrected -A version was released in 1987 by National Semiconductor. It is frequently used to implement the serial port for IBM PC compatible personal computers, where it is often connected to an RS-232 interface for modems, serial mice, printers, and similar peripherals. It was the first serial chip used in the IBM PS/2 line, which were introduced in 1987.

Direct memory access (DMA) is a feature of computer systems that allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU).

<span class="mw-page-title-main">Universal asynchronous receiver-transmitter</span> Computer hardware device

A Universal Asynchronous Receiver-Transmitter is a computer hardware device for asynchronous serial communication in which the data format and transmission speeds are configurable. It sends data bits one by one, from the least significant to the most significant, framed by start and stop bits so that precise timing is handled by the communication channel. The electric signaling levels are handled by a driver circuit external to the UART. Common signal levels are RS-232, RS-485, and raw TTL for short debugging links. Early teletypewriters used current loops.

<span class="mw-page-title-main">Intel 4040</span> 4-bit microprocessor introduced in 1974 by Intel

The Intel 4040 microprocessor was the successor to the Intel 4004. It was introduced in 1974. The 4040 employed a 10 μm silicon gate enhancement load PMOS technology, was made up of 3,000 transistors and could execute approximately 62,000 instructions per second. General performance, bus layout and instruction set was identical to the 4004, with the main improvements being in the addition of extra lines and instructions to recognise and service interrupts and hardware Halt/Stop commands, an extended internal stack and general-purpose "Index" register space to handle nesting of several subroutines and/or interrupts, plus a doubling of program ROM address range.

<span class="mw-page-title-main">PIC microcontrollers</span> Line of single-chip microprocessors from Microchip Technology

PIC is a family of microcontrollers made by Microchip Technology, derived from the PIC1650 originally developed by General Instrument's Microelectronics Division. The name PIC initially referred to Peripheral Interface Controller, and is currently expanded as Programmable Intelligent Computer. The first parts of the family were available in 1976; by 2013 the company had shipped more than twelve billion individual parts, used in a wide variety of embedded systems.

<span class="mw-page-title-main">TI MSP430</span>

The MSP430 is a mixed-signal microcontroller family from Texas Instruments, first introduced on 14 February 1992. Built around a 16-bit CPU, the MSP430 was designed for use with low power consumption embedded applications and for low cost.

Memory-mapped I/O (MMIO) and port-mapped I/O (PMIO) are two complementary methods of performing input/output (I/O) between the central processing unit (CPU) and peripheral devices in a computer. An alternative approach is using dedicated I/O processors, commonly known as channels on mainframe computers, which execute their own instructions.

In digital electronics, especially computing, hardware registers are circuits typically composed of flip flops, often with many characteristics similar to memory, such as:

<span class="mw-page-title-main">Fairchild F8</span> 8-bit microprocessor first shipped in 1975

The Fairchild F8 is an 8-bit microprocessor system from Fairchild Semiconductor, announced in 1974 and shipped in 1975. The original processor family included four main 40-pin integrated circuits (ICs); the 3850 CPU which was the arithmetic logic unit, the 3851 Program Storage Unit (PSU) which contained 1 KB of program ROM and handled instruction decoding, and the optional 3852 Dynamic Memory Interface (DMI) or 3853 Static Memory Interface (SMI) to control additional RAM or ROM holding the user programs or data. The 3854 DMA was another optional system that added direct memory access into the RAM controlled by the 3852.

In computer science, a data buffer is a region of a memory used to store data temporarily while it is being moved from one place to another. Typically, the data is stored in a buffer as it is retrieved from an input device or just before it is sent to an output device. However, a buffer may be used when data is moved between processes within a computer. That is comparable to buffers in telecommunication. Buffers can be implemented in a fixed memory location in hardware or by using a virtual data buffer in software that points at a location in the physical memory.

The boot ROM is a type of ROM that is used for booting a computer system. There are two types: a mask boot ROM that cannot be changed afterwards and a boot EEPROM, which can contain an UEFI implementation.

The AAA chipset was intended to be the next-generation Amiga multimedia system designed by Commodore International. Initially begun as a secret project, the first design discussions were started in 1988, and after many revisions and redesigns the first silicon versions were fabricated in 1992–1993. The project was stymied in 1993 based on a lack of funds for chip revisions.

<span class="mw-page-title-main">Vortex86</span> X86-compatible system-on-a-chip

The Vortex86 is a computing system-on-a-chip (SoC) based on a core compatible with the x86 microprocessor family. It is produced by DM&P Electronics, but originated with Rise Technology.

<span class="mw-page-title-main">Intersil 6100</span> 12-bit microprocessor

The Intersil 6100 is a single-chip microprocessor implementation of the 12-bit PDP-8 instruction set, along with a range of peripheral support and memory ICs developed by Intersil in the mid-1970s. It was sometimes referred to as the CMOS-PDP8. Since it was also produced by Harris Corporation, it was also known as the Harris HM-6100. The Intersil 6100 was introduced in the second quarter of 1975, and the Harris version in 1976.

This glossary of computer hardware terms is a list of definitions of terms and concepts related to computer hardware, i.e. the physical and structural components of computers, architectural issues, and peripheral devices.

<span class="mw-page-title-main">PlayStation technical specifications</span> Overview of the technical specifications of the PlayStation

The PlayStation technical specifications describe the various components of the original PlayStation video game console.

References

  1. Pease, Robert A. (2011). "The origin of the WOM — the "Write Only Memory"". National Semiconductor. Archived from the original on 2011-06-18.
  2. 1976 WESCON technical papers. Los Angeles, California, USA: Western Electronic Show and Convention. 14–17 September 1976. p. 17. Archived from the original on 2014-06-27. Retrieved 2013-05-20.
  3. Roberts, Tim (2004-08-17). "If every hardware engineer just understood that … write-only registers make debugging almost impossible, our job would be a lot easier". DDK MVP Expert Zone. Windows Hardware and Driver Central. Microsoft. Archived from the original on 2004-08-21. Retrieved 2011-11-03.
  4. Prosise, Jeff (1987-07-21). "Mouse software: See how they run". Productivity. PC Magazine . PC Lab Notes. Vol. 6, no. 13. Ziff-Davis Publishing Company. pp. 411–412, 414, 417–418, 420, 422, 425–426, 428 [422]. ISSN   0888-8507 . Retrieved 2023-07-22.
  5. Lipovski, G. Jack (1999-04-27). Single and Multi-Chip Microcontroller Interfacing: For the Motorola 6812. Academic Press. p. 122. ISBN   978-0-08-051726-1. LCCN   98-89451 . Retrieved 2013-05-20.
  6. Ganssle, Jack G.; Barr, Michael (2003). "Write-only register". Embedded Systems Dictionary. p. 285. ISBN   1-57820120-9. Archived from the original on 2014-07-05. Retrieved 2023-07-22.
  7. 1 2 Owen, Bruce (1985-04-02). "Breaking the Memory Barrier". PC Magazine . Ziff-Davis Publishing Company. 4 (7): 193–202 [200–202]. ISSN   0888-8507.
  8. Christof Seiler, Philippe Büchler, Lutz-Peter Nolte, Mauricio Reyes, Rasmus Paulsen, "Hierarchical Markov random fields applied to model soft tissue deformations on graphics hardware", Recent Advances in the 3D Physiological Human, part 1, pp. 133–148 [143], 2009 ISBN   1848825641 doi:10.1007/978-1-84882-565-9_9
  9. "LS0xxB4Dx01 Ultra Low-Power Memory LCD" (PDF). Archived from the original (PDF) on 2014-02-24. Retrieved 2014-02-19.
  10. Angelos D. Keromytis, "Trusted computing platforms and secure operting systems", in: Markus Jakobsson and Steven Myers (eds.), Phishing and Countermeasures: Understanding the Increasing Problem of Electronic Identity Theft, John Wiley & Sons, 2006 ISBN 0-47008609-2. p. 403.
  11. Security system for video game system with hard disk drive and internet access capability Scott Scott Elliott Nintendo 2004 https://patents.google.com/patent/US6942573B2 Archived 2021-12-14 at the Wayback Machine
  12. Yakaryilmaz, Abuzer; Freivalds, Rusins; Say, A. C. Cem; Agadzanyan, Ruben (March 2012). "Quantum computation with devices whose contents are never read". Natural Computing . 11 (1): 81–94. arXiv: 1011.1201 . doi:10.1007/s11047-011-9270-0. S2CID   12513092.

Further reading