This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to find the uC is 8bit 16 bit or 32 bit

Hi all,

May be it a very basic question. How do we find a uC is 8bit 16 bit or 32 bit ? As per my understanding data bus and address bus and ALU is the main factors to be considered to find the uC is 8 bit or 16 bit. Is my understanding is correct? If not, can anyone explain this , also if there is any document available to explain this please share me the path.

Thanks

  • Hi Prakash!

    I think the datasheet for each device will give you this information. Maybe I have a wrong understanding of your question, but from where do you get the information about the width of the address or the data bus? It may be listed in the datasheet as well and things like 8 bit, 16 bit or 32 bit microcontroller are normally written on the first page.

    Dennis

  • Hi Prakash,

    Usually, it is defined by the direct addressing space. For example, a 32bits CPU can address up to 4GB while a 16bits CPU can only address up to 64KB. This is why MSPX has to support extended address mode since 64KB is pretty small. And, I guess, this is also why TI want to develop MSP432 family using 32bits M4F. 32bits is much easier and efficiency for programming.
  • Usually, the width of the data bus and the internal structures (register) is considered when naming an uC. That doesn't mean that this bus width is consistently used everywhere. The PIC18, a (notoriously mediocre) 8 bit controller, has a 14 bit instruction bus. DSPs often have "odd" sizes - like 24 bit. In addition, they usually feature larger ALUs to improve accuracy of operation, e.g. 32 bit for 24 bit DSPs, 40 bit for 32 bit DSPs.

    Address bus is something different. The width of the address bus is associated with the maximal usable address space, not register size. However, register size plays a role here, since registers are used for addressing. While the address space could in theory be made arbitrary large, it rarely makes sense in term of costs and performance. 16 bit architectures like the 80251 and MSP430 are good examples for an address space exceeding the register size. Or think of the i8086, which used the segmentation crutch as well. The downside of this address space extension is reduced performance, and increased complexity.

    A 32 bit controller is optimal here. It can comfortably address a sufficient space, and has enough register width to achieve sufficient accuracy in calculations with a minimum of instructions. And a good 32 bit architecture requires no more transistors/gates than a 8 bit architecture. The Cortex M0 core (TI doesn't offer) requires less than 12.000 gates. And with competitive prices, backward compatibility is often the only reason to use a 8/16 bit uC.

  • Hi all,

    From the above discussion I conclude the data bus and internal registers are to be considered to decide the uC is 8 or 16 or 32 bit and ALU is not required to consider. Is that correct?
  • There is not any universally accepted definition.

    Anyway, for the MSPs, it does not really matter at which particular property you look:

**Attention** This is a public forum