Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In general, a CPU with a large word size can perform a given amount of work fast

ID: 3559500 • Letter: I

Question

  • In general, a CPU with a large word size can perform a given amount of work faster than a CPU with a small word size. A 64-bit CPU should be twice as fast as a 32-bit CPU. A 128-bit CPU should be four times faster than a 32-bit CPU, and so on. In reality, this is not the case. Analyze at least four issues and limitations that prevent the speeds to double, quadruple, etc.
  • A CPU instruction consists of an operation code (opcode) and zero or more operands. These instructions are also referred to as machine code. Each CPU vendor defines a set of instructions that their CPUs support. A programming language defines a high-level language for application development. Compilers and interpreters translate high-level programming languages into machine code. Examine the challenges of developing applications that run on different CPUs from different vendors such as Intel, AMD, IBM, and so on. Select the CPU vendor that you would target for your application development and explain why.

Explanation / Answer

1) The answer for this is pretty straightforward. Contrary to intuition, a 64 bit CPU slows down the code a little bit. Here is why:
a )As the word size increases, the data structures ( pointers, trees etc ) take up more space in the RAM. Common RAM is slow and does not respond as quickly as a CPU does.
b) CPUs usually have an embedded cache ( faster RAM ) but on most systems it is limited to only 32kB.
c) On x86 architecture implementations, the 64 bit CPU not only has twice the word size but also comes with additional instructions which contribute to an increased performance. But on other architectures ( like PowerPC ) a 32 bit processor is preferred since they do not benefit from the aforementioned newer instructions.
d) Most importantly, the clock speed is not affected by the word size, since the word size is determined by the size of the data bus, so the cpu reads/writes from/to the memory only one time, no matter if on 32 or 64 bits.

2) Intel and AMD follow the x86 instruction set (amd64), whereas IBM has PowerPC and there are others like Spark, ARM etc. While x86 is the clear winner on the desktops and the servers, ARM is catching up with the server clusters. A developer has two options to get his/her code to work on multiple platforms. Either choose a platform independent language like Java which relies on a lower level virtual machine to run the code or choose C/C++ and compile the code on multiple platforms and distribute the binaries. The former method sacrifices on speed for platform independence whereas the latter requires one to have access to multiple architechtures ( CPUs ) for the compilation.
Any developer would want to see his/her application on as many systems as possible. In such a case, it would be advisable to target the Intel CPUs first as they have the largest marketshare by volume.