Random-access memory is a form of computer data storage that stores data and machine code being used. A random-access memory device allows data items to be read or written in the same amount of time irrespective of the physical location of data inside the memory. In contrast, with other direct-access data storage media such as hard disks, CD-RWs, DVD-RWs and the older magnetic tapes and drum memory, the time required to read and write data items varies depending on their physical locations on the recording medium, due to mechanical limitations such as media rotation speeds and arm movement. RAM contains multiplexing and demultiplexing circuitry, to connect the data lines to the addressed storage for reading or writing the entry. More than one bit of storage is accessed by the same address, RAM devices have multiple data lines and are said to be "8-bit" or "16-bit", etc. devices. In today's technology, random-access memory takes the form of integrated circuits. RAM is associated with volatile types of memory, where stored information is lost if power is removed, although non-volatile RAM has been developed.
Other types of non-volatile memories exist that allow random access for read operations, but either do not allow write operations or have other kinds of limitations on them. These include most types of ROM and a type of flash memory called NOR-Flash. Integrated-circuit RAM chips came into the market in the early 1970s, with the first commercially available DRAM chip, the Intel 1103, introduced in October 1970. Early computers used relays, mechanical counters or delay lines for main memory functions. Ultrasonic delay lines could only reproduce data in the order. Drum memory could be expanded at low cost but efficient retrieval of memory items required knowledge of the physical layout of the drum to optimize speed. Latches built out of vacuum tube triodes, out of discrete transistors, were used for smaller and faster memories such as registers; such registers were large and too costly to use for large amounts of data. The first practical form of random-access memory was the Williams tube starting in 1947.
It stored data. Since the electron beam of the CRT could read and write the spots on the tube in any order, memory was random access; the capacity of the Williams tube was a few hundred to around a thousand bits, but it was much smaller and more power-efficient than using individual vacuum tube latches. Developed at the University of Manchester in England, the Williams tube provided the medium on which the first electronically stored program was implemented in the Manchester Baby computer, which first ran a program on 21 June 1948. In fact, rather than the Williams tube memory being designed for the Baby, the Baby was a testbed to demonstrate the reliability of the memory. Magnetic-core memory was developed up until the mid-1970s, it became a widespread form of random-access memory. By changing the sense of each ring's magnetization, data could be stored with one bit stored per ring. Since every ring had a combination of address wires to select and read or write it, access to any memory location in any sequence was possible.
Magnetic core memory was the standard form of memory system until displaced by solid-state memory in integrated circuits, starting in the early 1970s. Dynamic random-access memory allowed replacement of a 4 or 6-transistor latch circuit by a single transistor for each memory bit increasing memory density at the cost of volatility. Data was stored in the tiny capacitance of each transistor, had to be periodically refreshed every few milliseconds before the charge could leak away; the Toshiba Toscal BC-1411 electronic calculator, introduced in 1965, used a form of DRAM built from discrete components. DRAM was developed by Robert H. Dennard in 1968. Prior to the development of integrated read-only memory circuits, permanent random-access memory was constructed using diode matrices driven by address decoders, or specially wound core rope memory planes; the two used forms of modern RAM are static RAM and dynamic RAM. In SRAM, a bit of data is stored using the state of a six transistor memory cell.
This form of RAM is more expensive to produce, but is faster and requires less dynamic power than DRAM. In modern computers, SRAM is used as cache memory for the CPU. DRAM stores a bit of data using a transistor and capacitor pair, which together comprise a DRAM cell; the capacitor holds a high or low charge, the transistor acts as a switch that lets the control circuitry on the chip read the capacitor's state of charge or change it. As this form of memory is less expensive to produce than static RAM, it is the predominant form of computer memory used in modern computers. Both static and dynamic RAM are considered volatile, as their state is lost or reset when power is removed from the system. By contrast, read-only memory stores data by permanently enabling or disabling selected transistors, such that the memory cannot be altered. Writeable variants of ROM share properties of both ROM and RAM, enabling data to persist without power and to be updated without requiring special equipment; these persistent forms of semiconductor ROM include USB flash drives, memory cards for cameras and portable devices, solid-state drives.
ECC memory includes special circuitry to detect and/or correct random faults (mem
Alphanumeric Television Interface Controller is an LSI ASIC dedicated to generating 2D computer graphics to be shown on a television screen or computer display. Under the direction of Jay Miner, the chip was designed in 1977-1978 by Joe Decuir, Francois Michel, Steve Smith for the Atari 8-bit family of home computers first released in 1979 and was patented by Atari, Inc. in 1981. ANTIC is used in the Atari 5200 video game system released in 1982, which shares most of the same hardware as the 8-bit computers. ANTIC is responsible for the generation of playfield graphics, delivered as a datastream to the related CTIA/GTIA chip; the CTIA/GTIA provides the coloring of the playfield graphics, is responsible for adding overlaid sprites referred to as "Player/Missile graphics" by Atari. Atari advertised it as a true microprocessor, in that it has an instruction set to run programs to process data. ANTIC has no capacity for writing back computed values to memory, it reads data from memory and processes it for output to the screen, therefore it is not Turing complete.
The list below describes ANTIC's inherent hardware capabilities meaning the intended functionality of the hardware by itself, not including results achieved by CPU-serviced interrupts or display kernels driving register changes. ANTIC uses DMA to read a program called the "Display List" controlling these Playfield features: 14 different Playfield graphics modes 6 character modes 4 types of font/glyph rendering 8 map modes Output a variable number of blank scan lines Playfield Text and Map modes can be mixed onscreen Variable screen height up to vertical overscan Horizontal and Vertical coarse scrolling Identify sections of the display subject to Horizontal and/or Vertical Fine scrolling Trigger a CPU-serviced interrupt routine, called the "Display List Interrupt", at specific scan lines Trigger a CPU-serviced interrupt routine, called the "Vertical Blank Interrupt", at the end of the display frame. Other Register-based functions: Variable screen width up to horizontal overscan Define the distance of movement for Horizontal and Vertical Fine scrolling Provides real-time information of the electron beam's vertical screen location.
Reads a light pen horizontal/vertical coordinates re-definable character set. Adjustable display of inverse video characters. Characters may be vertically reflected. Control the display-oriented Vertical Blank and Display List interrupts, the Reset key interrupt. Performs DMA for CTIA/GTIA to produce Player/Missile graphics Non-fixed RAM; this allows RAM for graphics features to be located anywhere in the 16-bit memory address range. This applies to: Display lists. Playfield Graphics data Character set fonts Player/Missile Graphics data by part number C012296 — NTSC: Used in Atari 400, 800, 1200XL computers. C014887 -- PAL/SECAM: Used in 800 computers. C021697 — NTSC: Used in Atari 600XL, 800XL, XE models. C021698 — PAL/SECAM: Used in Atari XL, XE models. Atari, Inc. intended to combine functions of the ANTIC and GTIA chips in one integrated circuit to reduce production costs of Atari computers and 5200 consoles. Two such prototype circuits were being developed. C020577 — CGIA C021737 — KERI The Atari 8-bit computers and the Atari 5200 console map the ANTIC chip to the $D4xxhex page.
ANTIC provides 15 Read/Write registers controlling Playfield display parameters, DMA for Player/Missile graphics, fine scrolling, light pen input, interrupts. Hardware registers do not return the written values back; this problem is solved by Operating System Shadow registers implemented in regular RAM as places to store the last value written to registers. Operating System Shadow registers are copied from RAM to the hardware registers during the vertical blank. Therefore, any writes to hardware registers which have corresponding shadow registers will be overwritten by the value of the Shadow registers during the next vertical blank; some Write hardware registers do not have corresponding Shadow registers. They can be safely written by an application without the value being overwritten during the vertical blank. If the application needs to know the last state of the register it is the responsibility of the application to remember what it wrote. Operating System Shadow registers exist for some Read registers where reading the value directly from hardware at an unknown stage in the display cycle may return inconsistent results.
In the individual register listings below the following legend applies: SHADOW: SDMCTL $022F Direct Memory Access Control DMACTL controls ANTIC's DMA behavior for the Playfield and Player-Missile graphics. Playfield Width bit values: Also see Display List DMA bit regarding Playfield display. Player/Missile DMA bits values: ANTIC's Player/Missile DMA feature reads bytes from memory and delivering data to update CTIA/GTIA's GRAFP0, GRAFP1, GRAFP2, GRAFP3, GRAFM graphics pattern registers relieving the CPU from creating Player/Missile graphics; these bits turn on ANTIC's transmission of Player data and Missile data to CTIA/GTIA. CTIA/GTIA must be configured to receive the data via its GRACTL register in order for Player/Missile DMA to function as expected; when Player DMA is enabled, Missile DMA automatically occurs to keep the DMA timing consistent, but the data is not delivered to the Missile's GRAFM register. When enabled, Player/Missile DMA occurs on every scan line in the visible display—from scan line 8 to 247.
Therefore, the Player/Missile data in the memory map above and below those scan line counts is unused and undisplayed. Player/Missile Resolution bit values: $00
Atari MMU is a custom memory management unit chip for the Atari 8-bit computers. It enables access to the hardware registers on ANTIC, GTIA, POKEY and 6520 PIA; the XL/XE MMU selects OS ROM, Atari BASIC ROM, self-test ROM and LEDs in the 1200XL. On the 128K 130XE the EMMU chip handles similar functionality; the user cannot directly manipulate the Atari MMU, but selects the various ROMS and memory via the memory-mapped hardware register known as PORTB. Atari changed PORTB from an input port on the 400/800 machines to an output port on the XL/XE machines, leaving two joystick ports instead of four on the XL/XE machines. By setting and clearing specific bits in PORTB, the user can access either the ROMs or memory locations. No synchronization is required; the bit assignments for PORTB on the XL/XE machines are: Note: The 1200XL does not have BASIC built-in. Atari FREDDIE Chadwick, Ian. Mapping the Atari Revised Edition. COMPUTE! Publications, Inc. ISBN 0-87455-004-1. Jindroush site MMU info INSIGHT: Atari - Compute!
Magazine - Talks about Bank Selection in the Atari XL machines
Atari 8-bit family
The Atari 8-bit family is a series of 8-bit home computers introduced by Atari, Inc. in 1979 and manufactured until 1992. All of the machines in the family are technically similar and differ in packaging, they are based on the MOS Technology 6502 CPU running at 1.79 MHz, were the first home computers designed with custom co-processor chips. This architecture enabled graphics and sound capabilities that were more advanced than contemporary machines at the time of release, gaming on the platform was a major draw. Star Raiders is considered the platform's killer app; the original Atari 400 and 800 models launched with a series of plug-n-play peripherals that used the Atari SIO serial bus system, an early analog of the modern USB. To meet stringent FCC requirements, the early machines were enclosed in a cast aluminum block, which made them physically robust but expensive to produce. Over the following decade, the 400 and 800 were replaced by the XL series the XE; the XL and XE are much lighter in construction and less expensive to build, while having Atari BASIC built-in and reducing the number of joystick ports from 4 to 2.
The 130XE, released in 1985, increased the memory to 128K of bank-switched RAM. The Atari 8-bit computer line sold two million units during its major production run between late 1979 and mid-1985, they were not only sold through dedicated computer retailers, but department stores such as Sears, using an in-store demo to attract customers. The primary competition in the worldwide market came several years when the Commodore 64 was introduced in 1982; this was the first computer to offer similar graphics performance, went on to be the best selling computer of the 8-bit era. Atari found a strong market in Eastern Europe and had something of a renaissance in the early 1990s as these countries joined a uniting Europe. In 1992, Atari Corp. dropped all remaining support of the 8-bit line. Some time in 1975, Steve Jobs called his former boss at Atari, Al Alcorn, Vice President of Engineering. Jobs was sourcing components for the soon-to-released Apple II, asked Alcorn if he knew of a good switched mode power supply.
Such devices were commercially available. Alcorn instead suggested. Holt worked in Atari's consumer division and had become a leading expert on power supplies, at that time was between projects. Instead, Jobs hired Holt away from Atari, offering him "a ton of stock". Jobs began hiring many Atari engineers and refused to stop this behaviour when asked. In response, Joe Keenan, one of Atari's co-founders, began a project to make an Apple II clone machine, which Atari could produce for much less than Apple, they began design work. It was not long after that news of this project reached Jobs, two weeks he agreed to stop poaching Atari staff; the project was cancelled, ending Atari's first attempt at a personal computer. Design of the 8-bit series of machines started at Atari as soon as the Atari 2600 games console was released in late 1977. While designing the 2600 in 1976, the engineering team from Atari Grass Valley Research Center felt that the 2600 would have about a three-year lifespan before becoming obsolete.
They started blue sky designs for a new console that would be ready to replace it around 1979. What they ended up with was a updated version of the 2600, fixing its more obvious limitations but sharing a similar overall design philosophy; the newer design would be faster than the 2600, have better graphics, would include much better sound hardware. Work on the chips for the new system continued throughout 1978 and focused on much-improved video hardware known as the CTIA. During the early development period, the home computer era began in earnest in the form of the TRS-80, Commodore PET, Apple II family—what Byte Magazine would dub the "1977 Trinity". Nolan Bushnell sold Atari to Warner Communications for $28 million in 1976 in order to raise funds for the launch of the 2600. Warner had sent Ray Kassar to act as the CEO of the company. Kassar felt. In order to adapt the machine to this role, it would need to support character graphics, include some form of expansion for peripherals, run the then-universal BASIC programming language.
The 2600 had no bitmap graphics support or a character generator, all on-screen graphics were created using Player-Missile graphics and a simple background using fixed patterns. The CTIA was designed on the same model, mainly used sprites for drawing. Instead of expanding the CTIA to handle these tasks, the designers introduced an new chip for this purpose, the Alphanumeric Television Interface Controller, or ANTIC; the CTIA and ANTIC worked together to produce a complete display, with the CTIA in charge of sprites and producing color video output, the ANTIC in charge of bitmap and character graphics. Management identified two sweet spots for the new computers: a low-end version known as "Candy", a higher-end machine known as "Colleen"; the primary difference between the two models was marketing. Colleen included user-accessible expansion slots for RAM and ROM, two 8 KB ROM cartridge slots, RF and monitor output and a full keyboard. Candy was designed as a games console, lacking a keyboard and input/output ports, although an external keyboard was planned tha
In electronics, a multiplexer is a device that selects between several analog or digital input signals and forwards it to a single output line. A multiplexer of 2 n inputs has n select lines, which are used to select which input line to send to the output. Multiplexers are used to increase the amount of data that can be sent over the network within a certain amount of time and bandwidth. A multiplexer is called a data selector. Multiplexers can be used to implement Boolean functions of multiple variables. An electronic multiplexer makes it possible for several signals to share one device or resource, for example, one A/D converter or one communication line, instead of having one device per input signal. Conversely, a demultiplexer is a device taking a single input signal and selecting one of many data-output-lines, connected to the single input. A multiplexer is used with a complementary demultiplexer on the receiving end. An electronic multiplexer can be considered as a multiple-input, single-output switch, a demultiplexer as a single-input, multiple-output switch.
The schematic symbol for a multiplexer is an isosceles trapezoid with the longer parallel side containing the input pins and the short parallel side containing the output pin. The schematic on the right shows a 2-to-1 multiplexer on the left and an equivalent switch on the right; the s e l wire connects the desired input to the output. One use for multiplexers is economizing connections over a single channel, by connecting the multiplexer's single output to the demultiplexer's single input; the image to the right demonstrates this benefit. In this case, the cost of implementing separate channels for each data source is higher than the cost and inconvenience of providing the multiplexing/demultiplexing functions. At the receiving end of the data link a complementary demultiplexer is required to break the single data stream back down into the original streams. In some cases, the far end system may have functionality greater than a simple demultiplexer; this would be typical when: a multiplexer serves a number of IP network users.
A multiplexer and demultiplexer are combined together into a single piece of equipment, conveniently referred to as a "multiplexer". Both circuit elements are needed at both ends of a transmission link because most communications systems transmit in both directions. In analog circuit design, a multiplexer is a special type of analog switch that connects one signal selected from several inputs to a single output. In digital circuit design, the selector wires are of digital value. In the case of a 2-to-1 multiplexer, a logic value of 0 would connect I 0 to the output while a logic value of 1 would connect I 1 to the output. In larger multiplexers, the number of selector pins is equal to ⌈ log 2 ⌉ where n is the number of inputs. For example, 9 to 16 inputs would require no fewer than 4 selector pins and 17 to 32 inputs would require no fewer than 5 selector pins; the binary value expressed on these selector pins determines the selected input pin. A 2-to-1 multiplexer has a boolean equation where A and B are the two inputs, S is the selector input, Z is the output: Z = + Which can be expressed as a truth table: Or, in simpler notation: These tables show that when S = 0 Z = A but when S = 1 Z = B.
A straightforward realization of this 2-to-1 multiplexer would need 2 AND gates, an OR gate, a NOT gate. While this is mathematically correct, a direct physical implementation would be prone to race conditions that require additional gates to suppress. Larger multiplexers are common and, as stated above, require ⌈ log 2 ⌉ selector pins for n inputs. Other common sizes are 4-to-1, 8-to-1, 16-to-1. Since digital logic uses binary values, powers of 2 are used to maximally control a number of inputs for the given number of selector inputs; the boolean equation for a 4-to-1 multiplexer is: Z = + ( B
Computer data storage
Computer data storage called storage or memory, is a technology consisting of computer components and recording media that are used to retain digital data. It is a core function and fundamental component of computers; the central processing unit of a computer is. In practice all computers use a storage hierarchy, which puts fast but expensive and small storage options close to the CPU and slower but larger and cheaper options farther away; the fast volatile technologies are referred to as "memory", while slower persistent technologies are referred to as "storage". In the Von Neumann architecture, the CPU consists of two main parts: The control unit and the arithmetic logic unit; the former controls the flow of data between the CPU and memory, while the latter performs arithmetic and logical operations on data. Without a significant amount of memory, a computer would be able to perform fixed operations and output the result, it would have to be reconfigured to change its behavior. This is acceptable for devices such as desk calculators, digital signal processors, other specialized devices.
Von Neumann machines differ in having a memory in which they store their operating instructions and data. Such computers are more versatile in that they do not need to have their hardware reconfigured for each new program, but can be reprogrammed with new in-memory instructions. Most modern computers are von Neumann machines. A modern digital computer represents data using the binary numeral system. Text, pictures and nearly any other form of information can be converted into a string of bits, or binary digits, each of which has a value of 1 or 0; the most common unit of storage is the byte, equal to 8 bits. A piece of information can be handled by any computer or device whose storage space is large enough to accommodate the binary representation of the piece of information, or data. For example, the complete works of Shakespeare, about 1250 pages in print, can be stored in about five megabytes with one byte per character. Data are encoded by assigning a bit pattern to digit, or multimedia object.
Many standards exist for encoding. By adding bits to each encoded unit, redundancy allows the computer to both detect errors in coded data and correct them based on mathematical algorithms. Errors occur in low probabilities due to random bit value flipping, or "physical bit fatigue", loss of the physical bit in storage of its ability to maintain a distinguishable value, or due to errors in inter or intra-computer communication. A random bit flip is corrected upon detection. A bit, or a group of malfunctioning physical bits is automatically fenced-out, taken out of use by the device, replaced with another functioning equivalent group in the device, where the corrected bit values are restored; the cyclic redundancy check method is used in communications and storage for error detection. A detected error is retried. Data compression methods allow in many cases to represent a string of bits by a shorter bit string and reconstruct the original string when needed; this utilizes less storage for many types of data at the cost of more computation.
Analysis of trade-off between storage cost saving and costs of related computations and possible delays in data availability is done before deciding whether to keep certain data compressed or not. For security reasons certain types of data may be kept encrypted in storage to prevent the possibility of unauthorized information reconstruction from chunks of storage snapshots; the lower a storage is in the hierarchy, the lesser its bandwidth and the greater its access latency is from the CPU. This traditional division of storage to primary, secondary and off-line storage is guided by cost per bit. In contemporary usage, "memory" is semiconductor storage read-write random-access memory DRAM or other forms of fast but temporary storage. "Storage" consists of storage devices and their media not directly accessible by the CPU hard disk drives, optical disc drives, other devices slower than RAM but non-volatile. Memory has been called core memory, main memory, real storage or internal memory. Meanwhile, non-volatile storage devices have been referred to as secondary storage, external memory or auxiliary/peripheral storage.
Primary storage referred to as memory, is the only one directly accessible to the CPU. The CPU continuously reads instructions executes them as required. Any data operated on is stored there in uniform manner. Early computers used delay lines, Williams tubes, or rotating magnetic drums as primary storage. By 1954, those unreliable methods were replaced by magnetic core memory. Core memory remained dominant until the 1970s, when advances in integrated circuit technology allowed semiconductor memory to become economically competitive; this led to modern random-access memo