Microprocessors are typically categorised as 4 bit, 8 bit, 16 bit etc. What does the number of bits imply?

If you are novice, it is simple to say ' A processor which can process a n bits data at a time is called n bits processor'. Now to understand with more accuracy what actually it means, we need to know about processor. To avoid complexity , I shouldn't explain in complete engineering sense.

Just think that processor is not a single element device but set of elements are packed to make it.

Such as-

----> control unit

......> ALU or Data processing unit

-----> registers

-----> system bus

When you give an instruction , a control unit in processor which generate a control signal . This control signal is r

If you are novice, it is simple to say ' A processor which can process a n bits data at a time is called n bits processor'. Now to understand with more accuracy what actually it means, we need to know about processor. To avoid complexity , I shouldn't explain in complete engineering sense.

Just think that processor is not a single element device but set of elements are packed to make it.

Such as-

----> control unit

......> ALU or Data processing unit

-----> registers

-----> system bus

When you give an instruction , a control unit in processor which generate a control signal . This control signal is responsible for collecting data from memory or outside world and maintain the operation unit or ALU what it must be performed.

Actually data come from memory or outside world and store it in registers. Then ALU collect it from registers and process it and sent back to registers. After data is sent back to memory or outside world. All the communication among memory-to-registers-to-ALU or vice versa are done through system bus ( a cable system ) . System bus has three different line to pass data, address of data at memory and control signal respectively known as data bus, address bus and control bus.

Now some basic facts-

If ALU is 16 bits , then it can perform operation on 16 bits data at a time.

If register is 16 bits , then it can store 16 bits data at a time.

If data bus is 16 bits , then it can pass 16 bits data at a time.

If address bus is 16 bits , then it can pass 16 bits address of data at a time.

In ideal case, a n(16) bits processor, all these are n(16) bits.

But several manufacture brand makes it complicated by changing the elements size. Like in a 16 bits processor several manufactures use 20/16 bits address bus , 8/13/14/16 bits registers, 16 bits ALU.

So how they determine the processor bits.

Now we consider the situation for a 16 bit processor:

Actually size of the address bus related to memory. If memory size is huge, each data address is also long as so address bus. Higher bits of address bus is used so that processor may work with more big memory storage. If registers are 8 bits , two combining registers can be used to store 16 bits data. if ALU is 8 bits , it can't process a 16 bit data at a time need twice. But some manufacture uses extra bits ALU in a 16 bits processor to get faster operation.But in a 16 bits processor , data path always be 16 bits. Because you need to transfer data memory-to-registers-to-ALU at a time to process.

Therefore we can say that a n bits processor means it has n bits data path.

The width of data bus.

i.e. the maximum amount of data a processor's accumulator/working register can handle at a particular time instant.

Example :

Intel 4004 was the 1st 4 bit microprocessor.

PIC 16F877A is an 8 bit microcontroller Whereas Intel 8086 is a 16 bit microprocessor because their data bus is 8 and 16 bit respectively.

ARM 7 TDMI is a 32 bit microcontroller because of the same reason.

Intel i3/5/7 are 64 bit microprocessors.

Number of bits used in categorisation of microprocessor is the data size handled by most of instructions.

A classic case is Intel 8088, which was i internaly 16 bit and externally 8 bits.

It could mean the Intel 4004.

Note the bitness of a CPU is somewhat overloaded. In modern CPUs at least, e.g. 4-bit, or 8-bit, or 32- or 64-bit processor means the size of the (integer) registers (not accounting for SIMD), and the ALU. With 4-bit registers you can only (easily) handle values that have 16 possibilities, and it’s very restrictive. You can do calculations with bigger values (then no longer in one instruction). And if 4-bit were the size of the program counter too, you would have only memory locations 0 to 15, for 16 locations in total for your the instructions of your program; and

It could mean the Intel 4004.

Note the bitness of a CPU is somewhat overloaded. In modern CPUs at least, e.g. 4-bit, or 8-bit, or 32- or 64-bit processor means the size of the (integer) registers (not accounting for SIMD), and the ALU. With 4-bit registers you can only (easily) handle values that have 16 possibilities, and it’s very restrictive. You can do calculations with bigger values (then no longer in one instruction). And if 4-bit were the size of the program counter too, you would have only memory locations 0 to 15, for 16 locations in total for your the instructions of your program; and likely those locations would also likely need to cover the storage for ALL your data you want to handle in memory (and each location also has small capacity).

Often, e.g. with 32-bit and 64-bit CPUs, the bitness given is also the the size of the addresses too (while e.g. with 64-bit CPUs at least the chip may not have pins for all the address bits, as we do not have such huge memories yet).

4-bit (or 8-bit in most cases) is too small for addressing, to do anything useful, so in that case you need to also specify the bitness for addressing separately. I.e. the program counter (strictly an integer register) is then bigger than the other registers, unlike today in 32-bit and 64-bit CPUs.

E.g. all 8-bit CPUs I recall had 16-bit addressing. For the 8-bit CPUs, as 16-bit addresses where the norm, it was usually just implied, and they where just called 8-bit CPUs, rather than 16-bit, while that also has some truth (and untruth) too it.

4-bit CPUs may have addressed 4-bit memory (in chunks of 4 bits for the data bus, with the address bus at least 8-bit, or three times as big, for 12-bits as with the 4004, or potentially some other size).


The size of the (external) data bus is strictly independent of register size (can be same or even smaller, or larger), e.g. now on 64-bit CPUs, the data bus to external memory (or to cache inside of the chip) is commonly larger. This is invisible to the program, only affects performance.

When the term n-bit microcontroller is used, this refers to the size of the internal data registers (e.g. accumulators) and data bus.

Virtually all 8-bit processors have a wider address bus, as an 8-address bus would only address 256 bytes of memory.

The 8-bit 8051 microcontroller, one of the oldest designs still in use, has a register set consisting of an 8-bit accumulator (A), an 8-bit extension register (B) used for multiply and divide, 8-bit stack pointer, 16-bit address register (DPTR), and four banks of eight 8-bit general purpose registers (R0-R7). It can address up to 64KB with its 16-bi

When the term n-bit microcontroller is used, this refers to the size of the internal data registers (e.g. accumulators) and data bus.

Virtually all 8-bit processors have a wider address bus, as an 8-address bus would only address 256 bytes of memory.

The 8-bit 8051 microcontroller, one of the oldest designs still in use, has a register set consisting of an 8-bit accumulator (A), an 8-bit extension register (B) used for multiply and divide, 8-bit stack pointer, 16-bit address register (DPTR), and four banks of eight 8-bit general purpose registers (R0-R7). It can address up to 64KB with its 16-bit address bus.

More modern 8-bit microcontrollers, many based on RISC (reduced instruction set architecture) typically have many more registers. For example, the Atmel 8-bit AVRs have 32 general-purpose 8-bit registers, and the last six (R26:R27, R28:R29 and R30:R31) can be paired and used as 16-bit pointer (index) registers, named X, Y and Z.

16-bit processors have 16-bit data and address registers, and a 16-bit or larger address bus.

The Freescale S12, based on the older 68HC11, has two 8-bit accumulators that can be concatenated to form a 16-bit accumulator D, two 16-bit index registers (IX and IY), a 16-bit program counter and 16-bit stack pointer.

The Texas Instrument’s 16-bit microcontroller has 16 16-bit registers, of which four are dedicated to special purposes: R0 is the program counter, R1 is the stack pointer, and R2 is the status register. Some R2 and R3 source encodings yield six commonly used constant values without requiring an additional operand. (R3 can only be used as a constant generator.) R4 through R15 are available for general purpose use (data or addressing). Most MSP430’s can only address 64K of memory; some have an extension to address 20-bits.

Microchip’s 16-bit PIC24 series also has 16 16-bit registers, the last two (W14 and W15) used as a frame pointer and stack pointer. The others can be used as either data or address registers. W0 aka WREG is the only one that can address memory. PIC24’s have 24-bit instructions (hence their name) and 24-bit program counters, which can theoretically address 24M instructions, however the largest part has only 1M instructions words. Most parts use 16-bit data addresses; a few parts use a page register to extend that to 24-bits also.

Most 32-bit microcontrollers today also use RISC designs, typically MIPS (e.g. Microchip PIC32) or ARM (many vendors). They have 32-bit data and address registers, and 32-bit addressing (though most parts only address up to several MB of physical memory).

MIPS microcontrollers have 32 32-bit general-purpose registers ($0-$31) and 32 32-bit floating point registers ($f0-$f31). Register $0 is hardwired with the value 0, all others are general purpose but several are reserved for special use by convention; e.g. $29 for a stack pointer, $30 for a frame pointer, and $31 for a return address. Other registers are also by convention used for arguments, return values, and save areas.

ARM Cortex microcontrollers have 16 32-bit registers, of which 13 are general-purpose registers, R0-R12; R13 is the stack pointer (one for the user and one for kernel); R14 is the link register, and R15 is the program counter. Some parts have 32 64-bit floating point registers.

The number of bits refers to the size of a memory address supported by the CPU and the operating system.

A memory address is a number used by programs to know where information is stored in system memory (RAM).

The size of a memory address is determined by the CPU manufacturer.

At first computers would just have 8 bit memory addresses, but this would only accommodate 256 bytes of memory or less. As CPUs became more powerful they supported more and more memory, sometimes by adding clever tricks to support more memory using the same size memory address, but ultimately increasing the size of a memor

The number of bits refers to the size of a memory address supported by the CPU and the operating system.

A memory address is a number used by programs to know where information is stored in system memory (RAM).

The size of a memory address is determined by the CPU manufacturer.

At first computers would just have 8 bit memory addresses, but this would only accommodate 256 bytes of memory or less. As CPUs became more powerful they supported more and more memory, sometimes by adding clever tricks to support more memory using the same size memory address, but ultimately increasing the size of a memory address.

Powers of two are preferred for memory address sizes for various reasons, e.g. 2, 4, 8, 16, 32, 64, 128. The main reason, I think, is that each size up neatly fits a power of two multiple of the prior sizes within it. This creates a lot of conveniences in the CPU design.

With 32 bit systems, it is difficult to support 4GB of memory or more. And it has increasingly been the case that people want to have systems with 4GB of memory or more. This is why we transitioned to 64 bits.

A 64 bit address can support rather large amounts of memory, billions more than most current PCs have in them. I'm tempted to say it would be hundreds of years or even to the end of human existence before 64 bits are too few, but I can't really say for sure.

If we did decide we need to move beyond 64 bits, it seems logical we would go with 128 bits but there's no law saying that this must be the case.

This question is a bit like asking, “What determines that a vehicle’s engine is 4, 6, or 8 cylinder?” The short answer is that the manufacturer determines whether a microprocessor is 8, 16, 32, or 64 bit. Even today, some manufacturers produce microprocessors (and/or microcontrollers) with a variety of bit sizes, including 8-bit products.

In general, an N-bit microprocessor (CPU) has an ALU (Arithmetic Logic Unit), registers, an address bus, or data bus having N bits. Notice that I said or. This is a pretty broad definition, because some CPU architectures have a mixture of internal sizes and mi

This question is a bit like asking, “What determines that a vehicle’s engine is 4, 6, or 8 cylinder?” The short answer is that the manufacturer determines whether a microprocessor is 8, 16, 32, or 64 bit. Even today, some manufacturers produce microprocessors (and/or microcontrollers) with a variety of bit sizes, including 8-bit products.

In general, an N-bit microprocessor (CPU) has an ALU (Arithmetic Logic Unit), registers, an address bus, or data bus having N bits. Notice that I said or. This is a pretty broad definition, because some CPU architectures have a mixture of internal sizes and might use different sizes internally and externally. The size of the data bus has often been used to drive the bitness of the CPU, but that’s not always the case.

Consider the following examples:

  • Zilog Z80 - Considered an 8-bit CPU, it has an 8-bit data bus, 16-bit address bus, and a mix of 8-bit and 16-bit registers.
  • Intel 8086 - Considered a 16-bit CPU, it has a 16-bit data bus, a 20-bit address bus, and 16-bit registers.
  • Intel 8088 - Considered a 16-bit CPU, even though it has only an 8-bit external data bus. Everything else is identical to the 8086. The original IBM PC was based on this CPU.
  • Intel 80386 - Considered a 32-bit CPU, it has a 32-bit data bus, 32-bit address bus, and 32-bit registers.
  • Intel 80386SX - Considered a 32-bit CPU, even though it has only a 16-bit external data bus and a 24-bit external address bus. Everything else is identical to the 80386.

As you can see, the bitness of a CPU is not always based on the size of the external data bus, the size of the external address bus, or the size of the largest registers. It usually has to do with how much data it can move around at a time internally, but that’s not always the case.

The proper name for what a certain numeric quantification of bits refers to would be “digital microchip architecture.”

External appearance of microchip architecture typically would be that of a matte black package surrounded by evenly-spaced distribution of wire-like appendages that resemble legs. Some chips have these legs on all four sides, some only on two sides, and others have them only on the bottom.

Chip size in practice describes the scale of architecture, roughly being how many devices to find on it. Terms such as SSI, MSI, LSI, and VLSI refer simply to the size of scale — small scale,

The proper name for what a certain numeric quantification of bits refers to would be “digital microchip architecture.”

External appearance of microchip architecture typically would be that of a matte black package surrounded by evenly-spaced distribution of wire-like appendages that resemble legs. Some chips have these legs on all four sides, some only on two sides, and others have them only on the bottom.

Chip size in practice describes the scale of architecture, roughly being how many devices to find on it. Terms such as SSI, MSI, LSI, and VLSI refer simply to the size of scale — small scale, medium scale, large scale, and very large scale. These chips will sometimes be soldered into a circuit board but can be often be plugged into a socket soldered onto the PCB, which makes replacement or upgrade much more streamlined for an owner or technician.

The SSI will generally encompass simple, 4-bit chips, whereas MSI can reach into devices of 8-bit and 16-bit architectures. However, since a number of 4-bit devices can be engineered into a chip, it would be entirely possible to see MSI or LSI with many 4-bit chips embedded. And a VLSI device could have many different chip architectures embedded in the form of different devices, possibly in characteristic form of a minicomputer, microcomputer, or controller chip. The difference in chips therefore goes from simple, single device to complex, many devices, such as billions of different-size bit devices, all on one chip. Such a chip can, rather than be a dimple device, instead have all necessary components to function fully as a computer, accept input(s), and deliver outputs.

Many microchip units also extend their legs (electrodes) from one side only, as common with transistor packages. Some chips, called SMT, a newer type of chip package called “surface mount technology,” can be extremely small. And these use flat electrodes rather than legs. When mounted to a circuit board, solder is not typically visible since the chip sits on top of it.

As any geek would know, each bit refers to a specific condition of voltage that, during operation, will always be either a zero-weight or one-weight form of logic in each of the bits present in the chip. As such, the voltage for either logic level cannot be identical. Logic one were considered true, or ON, or HIGH; and logic zero were considered off, or false, or LOW. Timing within the microchip sets up regulation of the conditional terms of what bit will remain or change between HIGH bit & LOW bit.

Not all packages that look like microchips actually contain digital devices, by the way. Some will contain linear devices such as BPT-based analog amplifiers, which are not bitwise devices, and others can actually contain a hybrid mix of both analog and digital devices!

Numbers come by the digit - to count to 100 you need 3 digits. You can’t represent 100 in 2 digits. Computers use binary, so a digit in a computer is one binary bit or one binary digit (BInary digiT = BIT).

A 4 bit microprocessor can handle a value of up to 15 in one byte (group of bits). 16 is 10000 - 5 bits.

An 8 bit microprocessor can handle up to 255 in one byte. 256 is 100000000 - 9 bits.

It does make a difference whether you’re talking about the data space or the address space of a microprocessor. Usually “an 8 bit microprocessor” refers to the data bus - 8 wires, or 8 bits - but the addres

Numbers come by the digit - to count to 100 you need 3 digits. You can’t represent 100 in 2 digits. Computers use binary, so a digit in a computer is one binary bit or one binary digit (BInary digiT = BIT).

A 4 bit microprocessor can handle a value of up to 15 in one byte (group of bits). 16 is 10000 - 5 bits.

An 8 bit microprocessor can handle up to 255 in one byte. 256 is 100000000 - 9 bits.

It does make a difference whether you’re talking about the data space or the address space of a microprocessor. Usually “an 8 bit microprocessor” refers to the data bus - 8 wires, or 8 bits - but the address space can be 16 bits.

(An 8 bit microprocessor can handle larger numbers, of course - and by different means. We usually just use multibyte arithmetic - 2 bytes of 8 bits each can handle 16 bits of data. You can expand that idea as far as you need, so a 4 [data] bit microprocessor can handle 50 digit [decimal] numbers.)

If you hop in the wayback machine to the 1975 - 1980 time frame, I’d say the main difference is the natural bitwidth that the instructions work on for data. 8-bit CPUs worked most naturally on 8 bit data, while 16-bit CPUs worked most naturally on 16-bit data.

I say “most naturally,” as in that was the default computation width. Many 16-bit CPUs had instructions for operating on 8-bit data as well. TMS9900 and 8086 are examples.

Under the hood, a number of 16-bit CPUs had an 8-bit ALU that got double-pumped. TMS9900 and CP1600 fit this description. Both were considered 16-bit CPUs though.

Heck, t

If you hop in the wayback machine to the 1975 - 1980 time frame, I’d say the main difference is the natural bitwidth that the instructions work on for data. 8-bit CPUs worked most naturally on 8 bit data, while 16-bit CPUs worked most naturally on 16-bit data.

I say “most naturally,” as in that was the default computation width. Many 16-bit CPUs had instructions for operating on 8-bit data as well. TMS9900 and 8086 are examples.

Under the hood, a number of 16-bit CPUs had an 8-bit ALU that got double-pumped. TMS9900 and CP1600 fit this description. Both were considered 16-bit CPUs though.

Heck, the Z-80 was considered an 8-bit CPU despite having a 4-bit ALU.

That difference still holds with modern microcontrollers: 8-bit MCUs work on 8 bit data naturally, while 16-bit MCUs work on 16-bit data naturally.

This is in contrast to modern microprocessors, where “bitness” more accurately describes the size of a pointer.

You might note that I left the 68000 out of this. It’s in a weird space between 16-bit and 32-bit. It’s one of my favorite examples for the argument that the “bitness” of an architecture is not a well defined concept, and is best understood in the context of the era a given processor was popular.

When the term 8-bit microprocessor is used, this refers to the size of the internal data registers (e.g. accumulators) and data bus. Virtually all 8-bit processors have a wider address bus, as an 8-address bus would only address 256 bytes of memory. So most early 8-bit microprocessors like the 6800 and 8080 had a 16-bit program counter, stack pointer, index register(s), and address bus, and therefore could address 64 KB of memory. The 6800 had two 8-bit accumulators and the 8080 had one. The 6502 had a 16-bit program counter, stack pointer, and address bus but two 8-bit index registers along w

When the term 8-bit microprocessor is used, this refers to the size of the internal data registers (e.g. accumulators) and data bus. Virtually all 8-bit processors have a wider address bus, as an 8-address bus would only address 256 bytes of memory. So most early 8-bit microprocessors like the 6800 and 8080 had a 16-bit program counter, stack pointer, index register(s), and address bus, and therefore could address 64 KB of memory. The 6800 had two 8-bit accumulators and the 8080 had one. The 6502 had a 16-bit program counter, stack pointer, and address bus but two 8-bit index registers along with two 8-bit accumulators.

In machines using Von Nuemann architecture, both the program and data fit into the same address space. In Harvard architecture, there are separate address spaces for programs and data. So in the case of the Intel 8048 microcontroller, which could only address 256 bytes of RAM in its largest variant (the 8050), it did have an 8-bit data address bus.

As program sizes for 8-bit microprocessors and microcontrollers grew larger, the 64 KB maximum for a 16-bit address bus became limiting. So some processors widened the program counter by adding a paging register, like NXP’s MC9S08 which can address 128 KB of Flash memory.

It means that the microprocessor has a data bus of 8 bit which implies that it can process 8 bits of data in one clock cycle. (2^8 = 0–255).

Every microprocessor has an address bus and a data bus. Say, your microprocessor has a data bus of 8 bit and address bus of 16 bit. Say what?!

Okay, so bus is nothing but a collection of wires through which data is transmitted from one part of a computer to another.

Address bus of 16 bit means that it has total of 65536 (2^16 = 0–65535) memory locations which can store data.

Now the next quest question that comes to mind is how much data can these memory loc

It means that the microprocessor has a data bus of 8 bit which implies that it can process 8 bits of data in one clock cycle. (2^8 = 0–255).

Every microprocessor has an address bus and a data bus. Say, your microprocessor has a data bus of 8 bit and address bus of 16 bit. Say what?!

Okay, so bus is nothing but a collection of wires through which data is transmitted from one part of a computer to another.

Address bus of 16 bit means that it has total of 65536 (2^16 = 0–65535) memory locations which can store data.

Now the next quest question that comes to mind is how much data can these memory locations store? That is where data bus comes into play. The data bus of 8 bit means that each of these locations can store data of 8 bit (2^8 = 0–255).

So the specifications of your microprocessor tells you that it has 65536 number of memory locations each of which can store 8 bit of data.

When someone refers to as a 8 bit or 16 bit processor, they are referring to the size of the data bus (The amount of data it can process in a clock cycle).