Monday, 15 May 2017

Processor



The emperor of the emperors who from time immemorial has and forever will reign the computer is his imperial majesty, the Processor. It is arguably the most important part of the computer. Without a processor, even top-of-the-line input, output and storage devices are at ebb. The word computer itself suggests that it is a device whose primary purpose is to perform computations. The input, output and storage devices are just there to add more convenience and facility to the core component – the processor upon which the primary functions of the device delve.

Working principle of device:
The CPU consists of two parts, 1) the Control Unit and the 2nd ALU – Arithmetic and Logic Unit. The ALU performs the four basic mathematical operation in addition to logical operations such as equality/inequality comparison of two or more numbers (the largest number that can be stored or manipulated hinges upon the width/size of the register. The size of the register should be equal to or greater than the number of bits obtained when a number is converted to its binary equivalent. For eg. A 4-bit register cannot store the decimal number 20 [10100 in binary] as 5 bits are required to represent 20). The control unit is a director that looks after all operations performed by the CPU. To aid with the operations of the ALU designers of the CPU crunched in what is known as an FPU or floating point unit commonly referred to as the math coprocessor. It is an efficient group of circuits that is insanely fast at computations and handling numeric data. Another crucial piece of component is the register that stores those valuable bits on a temporary basis. Registers store numbers and instructions supplied to the CPU. They also store the result of the calculations made by the ALU and the FPU before they are handed out to the application that called for them.  

The upcoming lines will make you feel that this article’s drafted by a dunce whose thinking has no coherence and whose writing reflects his jumbled state of mind that keeps digressing like an inquisitive baby. But before you decide to quit, I request you to bear with me for the minute and continue on. The seemingly irrelevant blabber will somehow make up a synchronous whole in the end. The entire universe is interdependent. The Autotrophs depend upon the solar energy, water and carbon dioxide to transform their inherent chemical energy into consumable nutrients – a process known as photosynthesis. They in turn are consumed by Consumers or herbivores. The herbivores get eaten by the carnivores. The carnivores, when they die, are torn apart and consumed by decomposers and parasites. This food chain illustrates the primal truth of life – everything needs something to thrive on. It will probably not come to you as a surprise that all of that intricate hardware and the software that runs on your rig flourishes on data. (Perhaps by now you are able to relate to that scientific excursion) And that data needs to be stored somewhere. It is often our observation that when we need to depend on somebody for getting our tasks done we almost invariably cannot have them done at the pace we ourselves could have done. Dependence on external factors introduces delays and inefficiency even on our physical plane, what to say about the virtual world! Had the CPU been required to fetch data from the RAM (primary memory) it would have slowed the system down to a trickle! RAM is very slow compared to the computing power of the processor. Thus cache memory was devised and built into the processor itself. There are 3 levels of cache memory, L1, L2 and L3. The L3 memory used to be present on the motherboard but now even the L3 cache is built into the CPU itself. Cache memories are technically SRAM (static RAM) that store frequently used data and instructions. Special algorithms have been written that can predict the data and instructions that the processor might need and fetch them beforehand improving the performance multifold! The speed of cache memories decreases as it gets farther away from the CPU. (CPU die or CPU core and cache are on the same silicon wafer – the substrate) As a rule of thumb L1 is the fastest and L3 is the slowest with L2’s speed being just between the two. Also larger the memory of the 3 caches, the better it is. The amount of caches often ranges from a few hundred kilobytes to a few megabytes.

Any developer will vouch in favor of multithreading. Seriously, I cannot explain how important multithreading is for the modern computing era. A thread in simple words is the smallest unit of a program that can be executed independently of other programs. It is a way of breaking up a large program into smaller components that can be executed parallely instead of being run sequentially. This improves the speed and can exploit the true processing power of the CPU to the fullest. CPUs manufactured today are all multi-core CPUs. Each core functions as if it were a separate CPU plugged into a different socket altogether. Each core can handle only a single thread at any given time. Thus it is apparent that multicore CPUs outperform single core CPU as they can handle many times more instructions per second. At the very least the number of physical cores for a multi-core CPU is 2 and it can go all the way up to 16. (Just to amuse you a bit, the Intel Xeon virtual SMP system using ScaleMP's Versatile SMP has a phenomenal 128 cores and supports up to a lavish TB of RAM! Well you could stare and gape at those figures with your mouth wide open for a lifetime but out of compassion, I’d you rather focus on the article and not mar the rest of your life in sheer amazement!) Dual core and quad core processors are quite common for home users. Professionals, such as A/V editors or graphic designers, and gamers need dedicated processing power and thus more numbers of cores are propitious for their ‘core-hungry’ programs. Certain applications such as hypervisors (virtualization – the use of multiple simulated systems on the same host simultaneously) and servers (often the ones that provide cloud services) need the most number of cores to complete the tasks assigned to them. Each physical core of the processor can be further broken up into two logical cores. Each of those logical cores will again function as a CPU in itself, i.e., each virtual core can execute one thread. This treachery of beguiling the system is known as hyper-threading in the nerd’s parlance. Thus a dual core processor will act as if it were a quad-core processor! Hyper-threading takes the performance of a multi-core processor to the next level. Don’t just second-guess and consider hyper-threading as some sort of a performance-messiah. There is definitely a performance-hit in creating those virtual cores but it definitely outperforms the processors having the same number of physical cores but no hyper-threading. However, the throughput of a physical core can never be matched by its virtual counter-part and hence the need for physical cores can never be obviated. To illustrate this, let us consider processor 1 to have 4 physical cores with no hyper-threading. Another processor having 2 physical cores with hyper-threading (4 effective virtual cores) enabled will not match the performance of the first processor. But it also must be noted that a quad core processor (4 physical cores) with hyper-threading enabled will for sure be victorious over the one that doesn’t support that feature (as now there are 8 virtual cores). 

Another selling point of CPU is its clock speed. The clock speed of a CPU signifies the number of instructions it can process per second. Gone are the days when the clock speed was measured in MHz. Today it is often rated at GHz. A speed of 1GHz means that the CPU can process a whooping 1 billion instructions in a wink of a fleeting second! Higher the clock rate, greater is the speed.

Next up the line is the architecture. 32-bit CPUs were common before a decade. But today they have been largely superseded by 64-bit architecture. The bits in this case decide the width of the CPU’s register and its memory bus width. Thus a 64-bit CPU’s register can store a 64-bit binary number and that CPU’s memory bus width is 64 bit wide, meaning that 8 bytes (8 bits = 1 byte) of data can be transferred to the CPU at a go from the system’s primary memory or RAM. A 32-bit CPU on the other hand can transfer 4 bytes of data simultaneously. The CPU segregates the primary memory into addressable units of 1 byte each. Thus a 32-bit CPU can generate at the most 232 addresses (there are two kinds of bits, on and off - 1 and 0 - so with every bit there are 2 possible states). Since each address can reference to 1 byte the maximum theoretical memory supported by it also is limited to 4GB (Real world maximum supported memory hinges upon operating system, motherboard and surprisingly the model/version of the processor too. For instance, windows 10 enterprise x64 edition has a limit of 2TB of RAM which is a mere nothing in comparison to the theoretical max supported by a 64-bit processors).  In case of 64 bit processors the theoretical max makes a quantum leap and reaches up to 17.18 Exabytes, a unit that you might not have even heard of earlier (1 Exabyte = 1 billion GBs)! No storage solution by itself has ever even approached 1 Petabyte (1 million gigabytes) at least on this planet, let alone an Exabyte!

Device installation: The CPU just needs to be installed in its socket carefully.



Manufacturer of device, its models and prices:
1.      Intel – Intel Core i7-7700 (Rs. 24,900)

2.      AMD – AMD FX8320E 3.2 GHZ Processor (Rs. 11,395)

Cost: The cost of a CPU increases with the increase in the number of cores, its clock frequency and the amount of cache memory it has. High-end processors targeted for servers are the costliest of all.  

Market share of different models (Standard companies only):

l  Intel
l  AMD

Processor

The emperor of the emperors who from time immemorial has and forever will reign the computer is his imperial majesty, the Processor. I...