220 likes | 347 Views
Memory and Storage. Aldon Tom. What is Memory?. Memory is a solid-state digital device that stores data values. Memory holds running programs and the data that those programs use. It also stores data that is not currently being used, although
E N D
Memory and Storage Aldon Tom
What is Memory? Memory is a solid-state digital device that stores data values. Memory holds running programs and the data that those programs use. It also stores data that is not currently being used, although most memory falls into the category of temporary storage.
The Key Aspects of Memory There are two basic aspects of memory: • Technology The properties of the underlying hardware that are used to construct the memory system. • Organization The format of the memory system.
Memory Volatility Memory is considered volatile if the contents of the memory disappears when the power is shut off. RAM (not magnetic) is a common example of volatile memory. Nonvolatile memory is the exact opposite. Its contents remain even after power is shut off. An example would be your hard drive.
Nonvolatile Memory (cont) Nonvolatile memory is usually much larger than volatile memory -Additionally nonvolatile memory is in the form of rotating disks -hard disks, floppy disks, CDs, etc -it is also usually much slower, but much cheaper Data access must wait for seek time, which is the positioning of the head. It also must wait for rotational latency.
Types of Memory Access The most common types of memory is random access. That is to say that any value in the memory can be accessed at any point in time. The alternative to random access is sequential access. Sequential access memory must be read in the same order that they were inputted. An example is the FIFO: First-In-First-Out method. There are also methods that combine both forms of access in various ways.
Just what is a memory chip made of? Well each chip is an integrated circuit made up of millions of transistors and capacitors. Capacitors are paired with transistors to make a memory cell which holds one bit and can thus store a 1 or 0 by filling or emptying the capacitor. There are still many other forms of memory, but this is the most common form of RAM.
Each memory cell has an address. This is how it can be randomly accessed. The cells are then further divided into a grid layout. This is why your RAM modules have something called RAS and CAS delays. The delays are time it takes for the Row Access Select and Column Access Select to execute between cycles. Then the system fetches what is stored at a particular address and then it stores it to a register for use in calculations.
Permanence of Values Memory is characterized by whether it can be read, written, or both. The primary form of memory can be both read and written at anytime. There are some types of memory that are more permanent, namely ROM: Read Only Memory
Types of ROM The standard ROM contains values that can only be accessed, but not changed. There is also PROM: Programmable ROM which allows data values to be written only once, and then accessed many times. Intermediate forms also exist. For example, EEPROM: Electronically Erasable Programmable ROM. Although it is an oxymoron, it allows data to be electronically burned into the memory, but it takes a long time. A popular form of EEPROM is Flash Memory, which is commonly used in digital cameras. Although it is slow, the memory works faster than a human can aim and take a picture.
Primary and Secondary Memory Primary memory refers to the fast, volatile, internal memory of the computer: -RAM -Cache Secondary memory refers to the slower, nonvolatile, external storage usually provided by electromechanical devices such as: -Hard Disk -CDs
Memory Hierarchy Primary and Secondary memory arose from the idea of a Memory Hierarchy. This hierarchy came about due to the economy of production. That is to say the cost versus the performance. Research revealed that using given budget, the best performance is not achieved by using the same type of memory throughout the system. It is most efficient to use a very small amount of the highest performance memory, which is backed up by a slightly larger amount of a slightly slower memory, and so on. This creates a sort of pyramid or a funnel.
The CPU accesses memory according to a distinct hierarchy. Whether it comes from permanent storage or input, it is all stored in RAM first. The CPU then stores pieces of information that it will need to access often in the cache and then it maintains certain instructions in registers.
Virtual Memory Disk Storage RAM CPU Cache In order to maximize performance with powerful CPUs, the data has to be easy and quick to access. If the CPU does not get the data it needs it stops and waits for it, therefore you need memory that can keep up with the CPU. The problem is that memory fast enough to keep up with the CPU is extremely expensive.
The solution is to tier the memory as described earlier. Using progressively cheaper memory to back up each other provides maximal efficiency in terms of price. From slowest to fastest: -Hard Drive -RAM -Cache
Instruction and Data Store The earliest computers used to have separate memories for programs and data. Later, most architects adopted the Von Neumann Architecture which combines both into one memory. With the advent of new memory technologies, the separation of data and programs has come back into use, but only in special-purpose systems.
Memory used to hold a program is called instruction store. Memory used to hold data is called data store. The motivations for separating data and instructions is basically since the data for a program only needs to be loaded less frequently, but the instructions that utilize that data are executed much more often. Therefore if both data and instruction are both in the same memory, the extra speed is useless for the data portion, where as the instructions suffer from lack of speed.
By separating the data and instructions into separate memories, faster memory can be used for instructions, while slower memory can be used for the data.
Fetching and Storing All memory uses a fetch-store architecture. That is there are only two operations that memory understands: Read and Write This is also known as a load-store architecture, or read-write, but they all just refer to the same thing.
Executing a Program After the system loads the necessary data, all that is really left is the instructions. The system only retrieves new data a small percentage of the time. The rest of the time is spent on instructions -Each instruction is fetched from memory -Decoded -Executed -Then next, where next can be the next in the sequence or a jump