Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

memory addressing

Status
Not open for further replies.

samcheetah

New Member
is it necessary to use 8-bit memory for an 8-bit microprocessor? i mean if u have enough memory addressing lines on a microprocessor than u can address memory with a greater word length. and why would u want to do that in the first place. is there any benefit ???? lets say i have an 8-bit microprocessor and i have 16-bit memory. now the microprocessor is doing all the calculations in 8-bit so how can i use the other 8-bits. and what are the circumstances under which i would want to do this.

i have one more question. can i connect 4-bit memory with an 8-bit microprocessor? that will reduce (i) the lines in the data bus for the memory and (ii) the cost of the memory. am i right???

and by the way im studying the 8085 microprocessor.
 
samcheetah said:
is it necessary to use 8-bit memory for an 8-bit microprocessor? i mean if u have enough memory addressing lines on a microprocessor than u can address memory with a greater word length. and why would u want to do that in the first place. is there any benefit ???? lets say i have an 8-bit microprocessor and i have 16-bit memory. now the microprocessor is doing all the calculations in 8-bit so how can i use the other 8-bits. and what are the circumstances under which i would want to do this.

i have one more question. can i connect 4-bit memory with an 8-bit microprocessor? that will reduce (i) the lines in the data bus for the memory and (ii) the cost of the memory. am i right???

and by the way im studying the 8085 microprocessor.

An 8 bit processor will require 8 bits of memory, it doesn't have to be in a single 8 bit package though - it was very common for 1 bit memory chips to be used at one time, in multiples of 8.

You could connect two 4 bit memories to an 8 bit processor, but not just a single one - unless the chip is designed in that way!.

There have been various processors over the years which address memory in multiple reads - the 68000 is a good example. It came in various versions - all of which were 32 bit, this means the processor required 32 bit memory. BUT, it didn't mean it had to be 32 bits externally, and there were various versions available. The full (best) one had 32 bit external memory, the next best had external 16 bit memory (and took two reads for each word of memory), the poorest had external 8 bit memory (and took four reads for each word of memory). Obviously making multiple reads makes everything considerably slower, but for many purposes it's still plenty fast enough - and the poorer chips were smaller and cheaper.
 
Reading more than one memory location at a time was also a technique used, when memory access was much slower than processor speed, but optimum processor performance was needed (can you say pre-cache?). I worked with some specialty processors that accessed memory, 2 word lengths at a time. It had special internal registers to store the extra memory fetch, and processed the instructions while preforming the next memory fetch. This setup allowed the processor to work at top speed and not have to wait on memory reads.
Dialtone
 
okay thanx for the replies.

i have another question. lets suppose i have an 8-bit microprocessor and i want to do 16-bit calculations with it. i know that i can use a 16-bit micro instead of the 8-bit micro. but lets just suppose that i want to do it this way. now for that i would require 16-bit memory. right????

and would i be able to accomplish this task?? assume that i have enough address lines for the 16-bit memory.
 
You can do 16 and 32 bit calculations on an 8 bit processor. If you take a 16 bit add for example you have to add the low bytes first find if there was an overflow. Then add the high bytes and add the overflow to them. This will take a fair number of instructions compared to what could be 1 instruction on a 16 bit processor. You don't need 16 bit memory because you do the calculation in 8 bit chunks. A lot of C compilers do this for you. When you declare a 16 bit value its actually 2 8 bit values that the compiler treats as a single 16 bit value.

Brent
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top