types of memory available

Status
Not open for further replies.

gopi the king

Junior Member level 2
Joined
Nov 20, 2012
Messages
22
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Coimbatore, Tamil Nadu, India
Visit site
Activity points
1,421
i have lot of confusion in memory. since i came through the tutorial. they mention lot of memory types

like
1. cpu memory
2. register memory
3. stack memory
4. data memory
5. Rom memory
6. heap memory
7. main memory

i can't just understand these memory.

where these memory are available .

if we declare a variable as static, it will be stored in cpu memory

if we declare a variable as register then it will be stored in register memory

cpu memory means ??? where register memory located ????

please some who expert in this, give a clear picture of all these memory with explanation
 

There are only two main types of memory in any microprocessor system, volatile and nonvolatile memory. The volatile memory will loose the content when the power goes off, and the nonvolatile memory will keep the contents 'forever'.

That said, there are numerous implementations, or variants of each type in a microprocessor system.

RAM or Random Access Memory, is a volatile memory and in your list most of the 'types' are of this kind. 2, 3, 4, 6, and possibly 7, are of the RAM type. 1) CPU memory can be several types depending on the CPU in question, but normally it will be RAM type.

ROM or Read Only Memory is a non volatile memory, and will normally hold the program code and constant parameters in the program.
This memory can be of several basic types, like Flash, EPROM, EEPROM.

The microprocessor or CPU may contain several types of these types internally, as well as address them externally. All memory are addressed as blocks of different size in a sequential address space. The program and the CPU datasheet will define where the different types resides in this address space, and what they are used for.

Register memory will normally be defined by the CPU hardware, or in some cases just be a part/ block of the RAM defined for this use.

Heap memory is normally the rest of not defined RAM memory that may be used dynamically by the running programs.

Stack memory is only a block of RAM memory defined for this purpose. It is also common to let the heap and the stack share the same block of unused memory, since the heap is growing from low to high and the stack is growing from high to low memory addresses. This may be dangerous if your program need more dynamic memory than available, and will then result in a program crash.
 

thanks for your information

but how these above mentioned memory are differ from each other. they are come under the categorize of RAM and ROM. but what is the difference between cpu memory & register memory & data memory ...

still i am not clear with this stuff.
 

The difference is mainly in the intended use. Register memory is part of the CPU memory. There are several types of registers, basically what is used as 'memory' for the executing program, and what is used to configure the CPUs hardware device modules. These registers are only memory positions that contain specified functional parameters that control the devices. The program 'registers' are general and defined functional memory used to execute your program. Like the program and stackpointer registers, and the different accumulator registers. There are index registers and so on. These are connected to the program instructions and have special use.

Most memory store a number of bits, like a byte(8bits) or word(16/32/64bits) all defined by the CPU in use. It's the intended or predefined use that normally specify what we call it.
 
Status
Not open for further replies.

Similar threads

Cookies are required to use this site. You must accept them to continue using the site. Learn more…