As we know the memory is a power to remember things. In psychology, memory is the process by which information is encoded, stored, and retrieved. But in computing, memory refers to the physical devices used to store programs or data on a temporary or permanent basis for use in a computer or other digital electronic device.
Computer data storage, often called storage or memory. It is a core function and fundamental component of computers. A computer’s memory can be said as a list of cells into which numbers can be placed or read. Each cell has a numbered “address” and can store a single number. In almost all modern computers, each memory cell is set up to store binary numbers in groups of eight bits. A bit is the basic unit of information in computing and telecommunications. A bit can have only two values, either 1 or 0. Eight bits form a byte. Each byte is able to represent 256 different numbers either from 0 to 255. To store larger numbers several consecutive bytes typically two, four or eight may be used. When negative numbers are required they are usually stored in tow’s complement notation which is a mathematical operation on binary numbers.
A computer can store any kind of information in memory if it can be represented numerically. The information stored in memory may represent practically anything. Letters, numbers, even computer instructions can be placed into memory with equal ease. A computer consists of at least one processing element, typically a central processing unit (CPU) and some form of memory. Since the CPU does not differentiate between different types of data, it is the software’s responsibility to give significance to what the memory sees as nothing but a series of numbers.
Modern computers have billions or even trillions of bytes of memory. In computer architecture, the CPU contains a special set of memory cells which is called registers. A processor register can be read and written too much faster than the main memory area. Registers are used for the most frequently needed data items to avoid having to access main memory every time data is needed.
First Computer Memory
The first computers were often very large, usually as big as a desk or even a room and had minimal processing capability. These early computers were built to work on specific problems or solve certain types of equations and not much more.
The first computers used punch cards for input and had very limited memory for processing. The average memory in the first computers was between three and forty five kilo-bits Memory was used to store data in the processing of linear equations, and the results were then printed in binary.
When compared to the computers available today, the first computers do not seem very technologically advanced, but at the time they were created these first computers were engineering masterpieces. Many of the concepts created when building early computers are still in use in modern computing technology.
The Atanasoff Berry Computer (ABC) credited with being the very first computer. The ABC had a whopping 3000 bits of memory which allowed it to process sixty items at one time. Other early computers had more memory. Some has high as forty five kilobits, which allowed them to process several more words of data in a shorter amount of time increasing the overall processing speed of the system.
Without the first computers and their ability to make simple calculations, the technology we use today might not be as advanced as it has become.
History of Computer Memory
In 1940s memory technology mostly permitted few bytes capacity. The first electronic programmable digital computer the ENIAC (Electronic Numerical Integrator and Computer) using thousands of octal base radio vacuum tubes. In electronics, a vacuumtube is a device controlling electric current through a vacuum in a sealed container. The ENIAC could perform simple calculations involving 20 numbers of ten decimal digits which were held in the vacuum tube accumulators.
The next significant advance in computer memory is delay line memory. It was a form of computer memory used on some of the earliest digital computers. Like many modern forms of electronic computer memory, delay line memory was a refreshable memory but it was opposed to modern random access memory. Delay line memory was sequential access. Delay lines could store bits of information within a quartz and transfer it through sound waves propagating through mercury. Delay line memory would be limited to a capacity of up to a few hundred thousand bits to remain efficient.
In 1946 two alternatives to the delay line, the Williams tube and Selectron tube, both using electron beams in glass tubes for storage. The Williams tube would prove more capacious than the Selectron tube because the Selectron was limited to 256 bits, while the Williams tube could store thousands. It was also less expensive than Selectron tube.
To find non-volatile memory Jay Forrester, Jan A. Rajchman and An Wang developed magnetic core memory in the late 1940s. It was allowed for recall of memory after power loss. Magnetic core memory would become the dominant form of memory until the development of transistor-based memory in the late 1960s.
Historical Development of Computer Memory
Computer memory is much more than DRAM or Flash. It has come a long way up until the origins of today’s omnipresent memory technologies. If we take it more than 160 years back in time and revisit the milestones of computer memory technology then products we may have never heard of.
1. Punch Cards
A punched card is a piece of stiff paper that contains digital information represented by the presence or absence of holes in predefined positions. Early digital computers used punched cards as the primary medium for input of both computer programs and data. In 1837 Charles Babbage first purposed the Analytical Engine, which was the first computer to use punch cards as memory and a way to program the computer. Punch cards also known as Hollerith cards and IBM cards are paper cards containing several punched holes that where originally punched by hand and later by computers that represent data. Hollerith’s punch cards used in the 1890 census had round holes, 12 rows and 24 columns. The IBM punched card designed in 1928, had rectangular holes, 80 columns with 12 punch locations and each one character to each column. So 80 x 12 = 960, this gives us a maximum capacity of 960 bits or 125 bytes of data. The use of punch cards predates computers. They were used as early as 1725 in the textile industry for controlling mechanized textile looms. From the 1900s, into the 1950s, punched cards were the primary medium for data entry,data storage, and processing in institutional computing. As of 2012, some voting machines still utilize punched cards to input data. During the 1960s, the punched card was gradually replaced by magnetic tape.
2. Drum Memory
Drum memory is an obsolete magnetic data storage device. A drum is a large metal cylinder that is coated on the outside surface with a ferromagnetic recording material. It could be considered the precursor to the hard disk platter, but in the form of a drum rather than a flat disk. In most cases a row of fixed read-write heads runs along the long axis of the drum, one for each track. The drums of the Atanasoff-Berry Computer stored information using regenerative capacitor memory. Regenerative capacitor memory is a type of computer memory that uses the electrical property of capacitance to store the bits of data. A difference between most drums and a modern hard disk drive is that on a drum there was a track per head so that the heads do not have to move to the track to access data. Head per track disks were used mostly for paging. Particularly while drums were used as main working memory, programmers often took to positioning code onto the drum in such a way as to reduce the amount of time needed to find the next instruction. In 1932 Austrian IT engineer Gustav Tauschek invented the first widely used computer memory, called drum memory. In 1942 John Atanasoff successfully tests the Atanasoff-Berry Computer (ABC) which was the first computer to use regenerative capacitor drum memory. It was widely used in the 1950s and 60s as the main working memory of computers. Tauschek’s original drum memory had a capacity of about 500,000 bits or 62.5 kilobytes. One of the early mass-produced computers, IBM 650, had about 8.5 kilobytes of drum memory, which in a later model was doubled to about 17 kilobytes. Some drum memories were also used as secondary storage. Drums were later replaced as the main working memory by memory such as core memory.
3. Williams Tube
Freddie Williams applies for a patent on his cathode-ray tube (CRT) storing device in 1946. The device that later became known as the Williams tube or Williams- Kilburn tube. It was used as a computer memory to electronically store binary data. It was the first random-access digital storage device. The Williams tube depends on an effect called secondary emission. When a dot is drawn on a cathode ray tube, the area of the dot becomes slightly positively charged and the area immediately around it becomes slightly negatively charged, creating a charge well which is unable to convert to another type of energy. The charge well remains on the surface of the tube for a fraction of a second, allowing the device to act as a computer memory. The charge well lifetime depends on the electrical resistance of the inside of the tube.
By drawing a second dot immediately next to the first one the dot can be erased. Information is read from the tube by means of a metal pickup plate that covers the face of the tube. Each time a dot is created or erased, the change in electrical charge induces a voltage pulse in the pickup plate. There is no practical restriction in the order of positions so it is called random-access nature of the lookup.
Reading a memory location creates a new charge well, destroying the original contents of that location, and so any read has to be followed by a write to reinstate the original data. Since the charge gradually leaked away, it was necessary to scan the tube periodically and rewrite every dot.
Some Williams tubes were made from radar-type cathode ray tubes with a phosphor coating that made the data visible. Each Williams tube could store about 512-1024 bits of data.
4. Selectron Tube
Between 1946 and 1953 Jan Rajchman begins his work on developing the Selectron tube. The original 4096-bit Selectron was a large, 5 inch by 3 inch vacuum tube with a cathode running up the middle, surrounded by two separate sets of wires forming a cylindrical grid, a dielectric material outside of the grid, and finally a cylinder of metal conductor outside the dielectric, called the signal plate. The smaller capacity 256-bit system was constructed similarly, but built in a planar fashion rather than cylindrical,resulting in an even larger vacuum tube. The device used an indirectly heated cathode running up the middle, surrounded by two separate sets of wires and offered a storage capacity of 4096 bits to 256 in the proposed production device. The Williams tube was an example of a general class of cathode ray tube (CRT) devices known as storage tubes. The primary function of a conventional CRT is to display an image by lighting phosphor using a beam of electrons fired at it from an electron gun at the back of the tube. Like the Williams Kilburn tube, the Selectron was also a random access storage device. Because of the popularity of magnetic core memory at the time, the Selectron tube was never put into mass production.
5. Magnetic-core Memory
Second major milestone in modern computer memory technology was magnetic core memory which was widely adopted. Core memory or magnetic core memory became a widespread form of random-access memory, relying on an array of magnetized rings and was invented in 1947 and developed up until the mid-1970s. It is said to be non-volatile and will not lose its contents when the power is removed. The term “core” comes from conventional transformers whose windings surround a magnetic core. The basic principle of core memory was using a core as a ring of ferrite that could be magnetized in one of two directions. As a result, the memory was able to store digital information either a 1 or 0. In core memory the wires pass once through any given core, they are single turn devices. The core can take two states, encoding one bit, which can be read when “selected” by a “sense wire”. When the core is read, it is reset to a “zero” which is known as destructive readout. Circuits in the computer memory system then restore the information in an immediate re-write cycle. Magnetic core memory was initially very expensive to fabricate but prices dropped as the market developed. It was the standard form of memory system until displaced by solid-state memory in integrated circuits, starting in the early 1970s.
6. Random access Memory
Random-access memory (RAM) is a form of computer data storage. A random-access device allows stored data to be accessed directly in any random order. Today, random-access memory takes the form of integrated circuits which is a set of electronic circuits on one small plate or chip of semiconductor material, normally silicon. One distinguishing characteristic of RAM is that it is possible both to read data from the memory and to write new data into the memory easily and rapidly. Both the reading and writing are accomplished the use of electrical signals. The other distinguishing characteristic of RAM is that it is volatile. A RAM must be provided with a constant power supply. If the power is interrupted, then the data are lost. Thus, RAM can be used only as temporary storage.
The three main forms of modern RAM are static RAM (SRAM), dynamic RAM (DRAM) and phase-change memory (PRAM). In SRAM, a bit of data is stored using the state of a flip-flop. This form of RAM is more expensive to produce but is generally faster and requires less power than DRAM. In modern computers, it is often used as cache memory for the CPU.
DRAM stores a bit of data using a transistor and capacitor pair which together comprise a memory cell. The capacitor holds a high or low (0 or 1) charge and the transistor acts as a switch that lets the control circuitry on the chip read the capacitor’s state of charge or change it.
Phase-change memory is also known as PRAM, is a type of non-volatile random-access memory. PRAM can offer much higher performance in applications where writing quickly is important, both because the memory element can be switched more quickly and also because single bits may be changed to either 1 or 0 without needing to first erase an entire block of cells. PRAM’s high performance, thousands of times faster than conventional hard drives, makes it particularly interesting in nonvolatile memory roles that are currently performance-limited by memory access timing.
ECC memory, which can be either SRAM or DRAM, includes special circuitry to detect or correct random faults or memory errors in the stored data, using parity bits or error correction code. A parity bit or check bit is a bit added to the end of a string of binary code that indicates whether the number of bits in the string with the value one is even or odd. Parity bits are used as the simplest form of error detecting code. In information theory and coding theory with applications in computer science and telecommunication, error detection and correction or error control are techniques that enable reliable delivery of digital data over unreliable communication channels.
Many computer systems have a memory hierarchy consisting of CPU registers, on-die SRAM caches, external caches, DRAM, paging systems and virtual memory or swap space on a hard drive. This entire pool of memory may be referred to as “RAM” by many developers.
7. Read Only Memory
Read-only memory (ROM) is a class of storage medium used in computers. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty. It is really only suitable for storing data which is not expected to need modification for the life of the device.
When only a small number of ROMs with particular memory content is needed, a less expensive alternative is the programmable ROM (PROM). Like the ROM, the PROM is nonvolatile and may be written into only once. For the PROM, the writing process is performed electrically and may be performed by a supplier or customer at a time later than the original chip fabrication. Special equipment is required for the writing or “programming” process.
Another variation on read only memory is the read mostly memory, which is useful for applications in which read operations far more frequent than write operation but for which nonvolatile storage is required. There are three common forms of read mostly memory, they are EPROM, EEPROM and flash memory.
The optically erasable programmable read only memory (EPROM) is read and written electrically, as with PROM. However, before a write operation, all the storage cells must be erased to the same initial state by exposure of the packaged chip to ultraviolet radiation. Erasure is performed by shining an intense ultraviolet light through a window that is designed into the memory chip. This erasure process can be performed repeatedly. It has the advantage of the multiple update capability.
A more attractive form of read mostly memory is electrically erasable programmable read only memory (EEPROM). This is a read mostly memory that can be written into at any time without erasing prior contents, only the byte or bytes addressed are update. The write operation takes considerably longer than the read operation, on the other of several hundred microseconds per byte. The EEPROM combines the advantage of nonvolatility with the flexibility of being updatable in place, using ordinary bus control, address, and data lines.