Clarification about Atmega128

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hi all,
      We are using atmega128 for one of our project. I heard that it is
a 8 bit microcontroller, ok its accumulator and its data bus are 8 bit
width. Then what about is address bus, is it also 8 bit width? Because
for this 8 bit it can address only up to 2^8 = 256 location. Then how
it can address 4096 SRAM (4K) and 131072 Flash (128K). Can anybody
clear me on this doubt? Thank you

With regards

Re: Clarification about Atmega128
Quoted text here. Click to load it
"8 bit" refers to the data bus width, in every micro I have ever heard

In the mega128 the address bus is 16 bit and each flash location is a
word (16 bits) rather than a byte. Hence there are 64K of flash
locations but actually 128K bytes of flash.
Tim Mitchell

Re: Clarification about Atmega128
On Thu, 21 Jul 2005 09:10:10 +0100, Tim Mitchell

Quoted text here. Click to load it

The AVR is also a harvard architecture. Seperate code and data spaces.
So it can address 64K RAM as well.

  Anton Erasmus

Re: Clarification about Atmega128

Quoted text here. Click to load it

A 4 bit cpu thus only has 16 adress locations ?
There isn't that much that can be done then.

Ing.Buero R.Tschaggelar -
& commercial newsgroups -

Re: Clarification about Atmega128

Quoted text here. Click to load it

Almost certainly not.  

You do need clarification, but not so much on the Atmega128 in
particular, but on what it generally means when somebody describes a
CPU as "n-bit".

That subject has been rehashed here a couple times already, and the
outcome is that this classification is not nearly as well-defined as
one might think.  A typical CPU generally has several different n-bit
qualities at the same time.  Factors to look at are:

1) the ALU width (i.e. what's the widest object you can do all
mathematical and logical operations on?).  This sometimes has to be
considered separately for "expensive" operations, notably mul/div

2) register width (again, there could be several classes of registers
of different width)

3) (optional) external data bus width

4) (optional) external address bus width

5) (optional) internal address bus widths (cache line size,...)

6) (optional) separate I/O port bus widths

It's conceivable for all of these do be different from each other, on
a single CPU, although I'm not aware of any actual hardware of that

A "typical" microcontroller would have ALU width, data bus width, I/O
ports and the majority of register widths the same, while some
registers, and the address bus are about twice as wide.

Hans-Bernhard Broeker (
Even if all the snow were burnt, ashes would remain.

Site Timeline