32 bit – 64 bit Related to Hardware and Software
First you need to know what a bit is. Bit – (Binary digIT). In the digital world we use only two voltages for less complexity, one for indicating 0, one for indicating 1, this is the binary data system. Also keep in mind that 1 Byte = 8 bits. Microprocessors are made with logic gates. Logic gates are made with transistors.
You know 32 bit computers can handle only 4 GB memory (232) . Ever wondered why? Because the address bus is only 32 bits wide. Ok what are busses? Busses are busses. Like they transport people from one place to another then back to that place, they transfer these bits. It’s like 32 wires. 32-bit wide bus can transfer 32 bits of data simultaneously. For any computer you need an address bus and a data bus. The memory is not a single block, it’s divided to blocks, and each block has an address. For 232 blocks you need 232 addresses. The address bus points to the location of the memory block the data is kept. Then the data bus transfers the data of that block to the CPU. 64 bit CPU s can handle 16.8 million terabytes of memory (264). Windows limit this memory to 128 GB, only because 264 is not practically possible yet.
A CPU has a set of instructions it can understand. This is called machine code. Machine code is binary. So for a 32-bit CPU, you compile 32 bit code (each instruction 32-bit wide, a word size of 32 bits) using a 32-bit compiler. Humans find that it’s very hard to use binary, so they created a language, assembly language, with maybe 4,5 letter word for each instruction of binary, which greatly reduced mistakes. Still these instructions alone were not efficient because same code had to be written in many places. So high level languages (HLL) came. HLL is made with those all the time reused codes, given a single instruction to execute the whole repeating assembly code. For a 64 bit (264) CPU you compile 64 bit code (each instruction 64-bit wide) using a 64-bit compiler. An instruction looks like this, 0110011101111011101… 0 and 1’s all together 64 bits or 32 bits (If you were still wondering).