what does 32 bit or 64 bit refer to ?

Solution


The instruction set is a logical interface which specifies how the state of the machine will change when given a particular set of inputs, so the actual hardware implementation needs to be sufficient to meets the needs of that same logical interface.
For example, a CPU that exposes 16 addressable general purpose registers through its instruction set needs to have no less than 16 general purpose registers of sufficient width. It may have more than 16, as these can be used for various architectural optimizations such as register renaming and symmetric multithreading (which Intel calls Hyperthreading).

Behaviour and implementation are separate concerns. The AMD64 and Intel64 instruction sets...
The terms 32-bit and 64-bit refer to the way a computer's processor (also called a CPU), handles information. The 64-bit version of Windows handles large amounts of random access memory (RAM) more effectively than a 32-bit system.

Microsoft.com

http://windows.microsoft.com/en-us/windows/32-bit-and-64-bit-windows#1TC=windows-7
 


No,I want to know what it means for a processor. the Athlon 64 was the first 64 bit processor. How?
 
it refers to the architecture. the whole point of more 'bits' is to enable the processor/operating system to handle more information at one time. 32bit referred to as x86 architecture only handles things in 32bits where as 64bit handles things in 64 bits, simply the more bits there are, the more information can be handled at one time and therefor increases speed.
 


and How can a processor handle more information at one time ?
 
and How can a processor handle more information at one time ?[/quotemsg]

"32bit referred to as x86 architecture only handles things in 32bits where as 64bit handles things in 64 bits" it essentially got to do with deep down in binary. you can fit more data in 1 line. lets say you have an extremely long number, in 32bit. the computer may have to break it up into more numbers, where a 64 bit may be able to do it in one. so lets just look at it like this.
(first stream in 32 bit)
0100001010000101000010100001010000110
(second stream in 32bit)
0100001100101001010101010100010101010
so in 32 its had to make 2 streams which means 2 calculation thus taking more time whereas if you have 64 bit
01000010100001010000101000010100001100100001100101001010101010100010101010
its just in 1 line. so as you can see its handled more data at once. its the same data, just done faster
 


"32bit referred to as x86 architecture only handles things in 32bits where as 64bit handles things in 64 bits" it essentially got to do with deep down in binary. you can fit more data in 1 line. lets say you have an extremely long number, in 32bit. the computer may have to break it up into more numbers, where a 64 bit may be able to do it in one. so lets just look at it like this.
(first stream in 32 bit)
0100001010000101000010100001010000110
(second stream in 32bit)
0100001100101001010101010100010101010
so in 32 its had to make 2 streams which means 2 calculation thus taking more time whereas if you have 64 bit
01000010100001010000101000010100001100100001100101001010101010100010101010
its just in 1 line. so as you can see its handled more data at once. its the same data, just done faster
[/quotemsg]

sorry,I didn't ask correctly. I meant why?. why could the processor that is with x64 architecture handle the 64 bit data faster?
 


64-bit is a very generic term. Its meaning is extremely context dependant. In general it refers to the width of the CPU's general purpose registers, but it can refer to much more than that.

When applied to the 86 family of microprocessors, it refers to CPUs that feature the AMD64 or Intel 64 microprocessor extensions. These extensions were added ~2005, first by AMD and by Intel shortly after. Logically, both extensions are nearly identical (the differences are relevant only to system programmers) and are collectively referred to as either x64, AMD64, or x86_64.

The 64 bit extensions adds a new operating mode to the CPU called long mode. When enabled, the following changes occur relative to protected mode which is the operating mode for legacy 32-bit code:

1. The number of addressable general purpose CPU registers is doubled from 8 to 16

2. The width of the general purpose CPU registers is doubled from 32-bits to 64-bits. New arithmetic instructions can operate on the full 64-bits, which greatly speeds up arithmetic operations on large numbers.

3. The number of addressable SIMD CPU registers is doubled from 8 to 16

4. The size of the virtual address space is extended from 32 bits to to 48 bits

5. Segmentation is made obsolete, paging is required

6. The No-Execute bit (hardware enforced data execution prevention) is mandatory

7. SSE and SSE2 Vector instructions are adopted into the core instruction set while x87 instructions are made obsolete. SSE3 and beyond are still considered optional

8. The virtual 8086 mode is removed. It is no longer possible to run real-mode code once the microprocessor is in long-mode. Real-mode programs can only be run through an emulator such as DOSBox.

Although not a feature of long mode, the maximum size of the physical address space on microprocessors that support AMD64/Intel 64 is extended from 36 bits to 52 bits
 


more clarity,please.
 
ill elaborate my last comment simpler. if you look, the 32bit stream was in 2 parts. therefor 2 calculations are made. whereas the 64 bit only had 1 part. it was the same data, but i could put more data into 1 calculation.

imagine you have 2 people drinking. 1 person (32 bit) has to drink 2 x 500ml. so he drinks the first cup, puts it down and then picks up another cup and continues. the other person (64 bit) has a 1L cup, he can just drink and drink and drink. 64bit can handle longer streams of data (bigger cup) where 32bit has to do more calculations (smaller cup).

i hope this somewhat clarifies it
 


I can't be much more clear than "64-bit refers to a lot of things" without knowing exactly what you want me to be more clear about.
 


The instruction set is a logical interface which specifies how the state of the machine will change when given a particular set of inputs, so the actual hardware implementation needs to be sufficient to meets the needs of that same logical interface.
For example, a CPU that exposes 16 addressable general purpose registers through its instruction set needs to have no less than 16 general purpose registers of sufficient width. It may have more than 16, as these can be used for various architectural optimizations such as register renaming and symmetric multithreading (which Intel calls Hyperthreading).

Behaviour and implementation are separate concerns. The AMD64 and Intel64 instruction sets define behaviour that the CPU must be able to meet. Neither of them specify implementation, so the only "upgrades" that happen in side of the CPU are what are necessary to implement the specified behaviour. If a vendor wishes to implement a 64-bit add instruction as a set of pipelined 32-bit additions using only a single 32-bit carry-lookahead adder with an internal carry they are free to do so; alternatively that vendor may use a single cycle non-pipelined 64-bit ripple-carry adder. Both implementations are logically identical and reach the same functional result but with different consequences in terms of space, power consumption, and performance.

Prior to the introduction of AMD64 and Intel64 a 64-bit addition was broken down into multiple steps

The two operands (64-bits each) were each loaded into a pair of 32-bit general purpose registers. This occupied a total of four registers.

The lower half of each operand would be summed together using an addition instruction that ignores the carry bit in the status register. The result is either written on top of one of the lower halves or to a 5th register. Then, the upper halves of each operand are summed together using an addition instruction that does not ignore the carry bit (which could carry from the lower half). The result is either written on top of one of the upper halves or to a 6th register. Then, the carry bit is checked for overflow.

If the microprocessor is capable of native 64-bit arithmetic, the two operands are loaded into a single 64-bit register each. This occupies only two registers. The two operands are then be added together. The result is either written on top of one of the operands, or to a third register. Then, the carry bit is checked for overflow.

The two scenarios above can be execute on the same microprocessor, both in long mode. However, in protected mode only the first scenario would work due to a lack of support for 64-bit arithmetic.

On x86 microprocessors that support AMD64/Intel64 the general purpose registers are 64-bits wide, but each register can be addressed as either a pair of 8-bit registers, a 16-bit register, a 32-bit register, or a 64-bit register. In hardware, all of these registers occupy the same physical space and the smaller registers are simply a subset of the larger one. The 64-bit register occupies the entire physical space, the 32-bit register occupies the lower half, the 16-bit register occupies the lower quarter, and the pair of 8-bit registers occupy the same space as the 16-bit register. On a microprocessor that does not support AMD64/Intel64 the 32-bit register would occupy the entire physical space and attempting to address it as a 64-bit register would cause an illegal-instruction fault.
 
Solution
Processors contain a number of registersnof differing sizes. The only really sensible definition of the "bitness" is that 32-bit registers have a 32-bit address space whereas 64-bit ones have a 64-bit address space. This is not quite the same as the maximum amount of RAM supported, or the width of the address bus. Current Intel/AMD processors have a 48-bit address bus, but they support 64-bit virtual addresses. So the Instruction Pointer must be a 64-bit register.

The other registers don't really come into it, but the general purpose registers will normally be 64-bits too as they have to be able to handle memory addresses. Some processors, such as the 68000 series had different sets of registers for data and address manipulation. Modern 64-bit processors probably have as many 128-bit registers as 64-bit ones, but they are still regarded as 64-bit processors.