How many bytes a 64 bit processor processes

32-bit64-bitcpu

This is from an interview question – http://www.glassdoor.com/Interview/Yelp-Software-Engineering-Intern-Interview-Questions-EI_IE43314.0,4_KO5,32_IP4.htm

"there is not more than one way to answer such as number of bytes a 64 bit processor processes and the kill signal for linux"

Kill signal for linux was pretty easy to find. I just did a quick google search and was able to find this article. http://www.maketecheasier.com/kill-command-in-linux/

I am confused about the "number of bytes a 64 bit processor processes" part. One article(http://blog.boson.com/bid/87673/A-Few-Bytes-About-32-bit-vs-64-bit-Processing) states that " In fact, a 64-bit processor can theoretically process up to 18,446,744,073,709,551,616 bytes, or 16 exabytes (EB) at one time." Another article(http://mindprod.com/bgloss/sixtyfourbit.html), which makes more intuitive sense, states that "in 64-bit CPUs (Central Processing Units) such as the Athlon, Itanium and Opteron, programs process information 64 bits (or 8 bytes) at a time". This one made sense to me because 64 bits is 8 bytes (8 bits per byte)

Does at a time in both articles mean in nano second? mili second? From these two articles, what answer would an interviewer expect? Would he/she expect the 8 bytes at a time answer and something that is so much greater?

Best Answer

The thing with the large number is, it's 2^64 (2 to the 64th power). That's the amount of unique states that a x64 register could be in, as there are 64 bits in the register to be set to either on or off thus there are 2^64 unique combinations of bits set to on and off.

Assuming that a register value points to a byte address in memory, it can thus "pinpoint" any byte in a memory of 2^64 bytes. So in that sense, it can "reach" all those bytes in the theoretical 16 EB's of RAM at any time. But it's not like a CPU has 16 EB's of built-in ram, which is what that boson.com article sounds like.

At a time would probably not imply a certain timespan, but a single processing stroke. I would say the answer is indeed 8 bytes. If the timespan were important for this question, it would be a more difficult calculation as one would need the clock speed of the CPU and then also need to define if the count includes error correction retries on the same data, cycles used for CPU-based graphics/audio and many other things.

Related Question