FishMan,
The only "official" chips with bootloaders are the ATMega8, ATMega168, ATMega328p, and ATMega1280. The ATMega644 can be used with the open-source Sanguino bootloader which is a modification of the official bootloader. Otherwise, you're pretty much on your own. I dunno about differences between other chips, I don't know if there is any standard meaning to the model number other than that bigger numbers usually seems to mean "more powerful."
nauticac4, as FishMan mentioned, there are different types of memory used for different purposes, just like in a PC. Generally, the AVRs have:
Program memory (aka flash): More or less like the hard drive in a PC, it's used to store the program you want to execute. Program memory is persistent - it stays put when the chip is power cycled.
RAM: Like the RAM in your PC, it's used to store variables that your program uses to run. RAM is wiped clean when the chip power cycles.
EEPROM: Sorta like a hybrid between a PC's RAM and hard disk. It's used like RAM (to store variables, not code) but it is persistent.
The chips have the following specs, in kb (using a code tag to preserve spacing in the table):
Code:
ATMega168 ATMega328 ATMega644 ATMega1280
Flash 16 32 64 128
RAM 1 2 4 8
EEPROM .5 1 2 4
With the current 328, we are running in to two problems:
1) Our code will likely come close to filling up the program memory (flash).
2) Our code needs so many variables that we are filling up the RAM, too. This can be solved by shuffling larger variables (i.e. text arrays to provide a UI on an LCD) into program memory space.
An SD card cannot really solve either of these problems. There's just no way to store program code or variables on an SD card. You can buy external EEPROM chips, but it doesn't totally solve the problem for "static" things because you'd still need to write those things to the AVR and have it write them to the EEPROM. EEPROMs are really best for variables you need persistent (i.e. settings configured through a UI on the device) and SD cards are really best for when your device will be generating historical data you want to look at later, i.e. datalogging over long periods of time.