What does 8-bit / 16-bit actually refer to?
8-bit and 16-bit, for video games, specifically refers to the processors used in the console. The number references the size of the words of data used by each processor. The 8-bit generation of consoles (starting with Nintendo's Famicom, also called Nintendo Entertainment System) used 8-bit processors; the 16-bit generation (starting with NEC/Hudson's PC Engine, also called TurboGrafx-16) used a 16-bit graphics processor. This affects the quality and variety in the graphics and the music by affecting how much data can be used at once; Oak's answer details the specifics of graphics.
If you don't know about a computer bit, then here is the Wikipedia article on bits: http://en.wikipedia.org/wiki/Bit, which I'll quote the first sentence that is all one really needs to know.
A bit or binary digit is the basic unit of information in computing and telecommunications; it is the amount of information that can be stored by a digital device or other physical system that can usually exist in only two distinct states.
Now, note that in modern times, things like "8-bit music" and "16-bit graphics" don't necessarily have anything to do with processors or data size, as most machinery doesn't run that small anymore. They may instead refer specifically to the style of music or graphics used in games during those generations, done as a homage to nostalgia. 8-bit music is the standard chiptune fare; the graphics were simplistic in terms of colour. 16-bit music is higher quality but often still has a distinct electronic feel, while the graphics got much more complex but still largely 2-dimensional and 240p resolution.
8-bit, 16-bit, 32-bit and 64-bit all refer to a processor's word size. A "word" in processor parlance means the native size of information it can place into a register and process without special instructions. It also refers to the size of the memory address space. The word size of any chip is the most defining aspect of it's design. There are several reasons why it is so important:
- First off, the maximum value you can hold. An 8-bit integer can hold a value up to 255. A 16-bit int can be up to 65,535.
- Memory addressing: With bigger numbers, you can track more address space (a gross oversimplification, but it holds true).
- Double-words and quad-words. There are cases when you want to use a larger word for a variable. A double word is just 2 words, so a 32-bit variable on a 16-bit machine or a 16-bit variable on an 8-bit machine.
- Instructions. Again, with a larger number you can have more opcodes (the actual machine instructions). Even though adding 2 integers looks simple, on the hardware level even that is quite complicated. For instance a machine may have separate MOV instructions for loading a nibble (half-byte), byte, word, double word or quad word into a register. From there you would need to add it to another register or add from a variable in memory, and that's another set of possible instructions. Floating point instructions are also a completely separate set of instructions.
- Aside from not having the memory, an 8-bit machine usually has a separate processor for handling floating point math on the hardware. 16-bit machines usually have an integrated floating point unit to handle that.
- With a larger word size you can put in more specialized instructions, like specialized direct hardware access, built-in functions (hardware graphics processing for example), hardware memory management, etc.
- Memory management: With a bigger word comes the possibility of being able to address more memory. Many 8 and 16-bit machines used a variety of schemes to be able to address as much memory as possible, often exceeding the limitations of their word size. Your typical 32 & 64-bit personal computer CPUs use memory registers that are equal to their word size giving them access to 4,294,967,296 and 18,446,744,073,709,551,616 bytes, respectively.
TL;DR
The difference in word size has a dramatic impact on the capabilities and performance of a given chip. Once you get up to 32-bits, the differences mainly become those of refinement (unless you are running a really big application, like genetic analysis or counting all the stars in the galaxy big).
I hope this ramble of an answer is of some help.
Further Reading
- https://en.wikipedia.org/wiki/Word_(computer_architecture)
The term "8-bit graphics" literally means that every pixel uses 8 bits for storing the color value - so only 256 options. Modern systems use 8 bits to store each color channel, so every pixel typically uses 24 bits.
There's nothing preventing modern games from limiting themselves to a stricter, 8-bit color palette; but the term is often used to describe old games in which using 8 bits per pixel was necessary.