60 likes | 70 Views
Memory is an array of Cells . Memory keeps information in the cells. Each Cell has a unique address and could be selected by its Address . Information could be loaded from Memory Cell to Register or stored from Register to Memory Cell.
E N D
Memory is an array of Cells. • Memory keeps information in the cells. • Each Cell has a unique address and could be selected by its Address. • Information could be loaded from Memory Cell to Register or stored from Register to Memory Cell. • The source of information in this case is not changed. Only the destination is overwritten. Von Neumann model - Memory
Memory example 4 cells • In this example: • The memory contains 4 Cells. • They are addressed by 2 bit address which is enough to select all 4 Cells. • If the memory is larger, then the address bits have to be more to be able to address more Cells.
Memory example 8 cells, 8 bits • Address length is 3 bits • Memory Cell length is 8 bits (1 byte) • We can load or store 8 bits at once. • 3 address bits address 23 = 8 Memory Cells. • Data and Address registers lengths do not depend each of other.
Memory example 8 cells, 16 bits • Address length is 3 bits • Memory Cell length is 16 bits (2 bytes) • We can load or store 16 bits at once. • 3 address bits address 23 = 8 Memory Cells. • Data and Address registers lengths do not depend each of other.
MIPS model 232 cells, each 8 bits • MIPS memory is an array of 232 bytes. • Each byte has a 32-bit address. • Each byte can hold an 8-bit pattern, one of the 256 possible 8-bit patterns. • The addresses of MIPS main memory range from 0x00000000 to 0xFFFFFFFF. 232 bytes Memory Size • Operations • Load: a bit pattern starting at a designated address in memory is copied into a register inside the processor. • Store: a bit pattern is copied from a processor register to memory at a designated address. Address 32 bits General Purpose Register
MIPS memory layout • The lower half (most of it anyway) is for user programs. • User memory is further divided (by software convention) into text, dataand stack segments. • Text Segment: This holds the machine language of the user program (called the text). • Data Segment: This holds the data that the program operates on. • Static Data • Dynamic Data • Stack Segment:With high level languages, local variables and parameters are pushed and popped on the stack as procedures are activated and deactivated. ROM, Device buffers, … not available for user programs Dynamic Data Dynamic Data Static Data User program machine code • User programs and data are restricted to the last 231 bytes. The last half of the address space is used for specialized purposes. OS Kernel