CS609 System Programming Assignment 4 Solution Fall 2012

Question No.1: Why it is important for a system programmer to know about the type of processor being installed in the computer? (05 Marks)


 System programmer should know about the type of processor being installed in the computer/ Processor refers to a system that accepts a program as input, prepares it for execution and executes the process defined with data to produce results. Can be a short term for a microprocessor or central processing unit (CPU) in computers.

* Central processing unit (CPU), an electronic circuit that can execute computer programs
* Microprocessor, a CPU on one chip as part of a microcomputer
* Graphics processing unit (GPU / VPU), a dedicated graphics rendering device for a personal computer or game console
* Physics processing unit (PPU), a dedicated microprocessor designed to handle the calculations of physics
* Digital signal processor, a specialized microprocessor designed specifically for digital signal processing
* Network processor, a microprocessor specifically targeted at the networking application domain
* Front end processor, a helper processor for communication between a host computer and other devices
* Coprocessor
Floating point unit
* Data processor, a system that translates or converts between different data formats
* Word processor, a computer application used for the production of printable material
* Audio processor, used in studios and radio stations
32-bit versus 64-bit

As the number of bits increases there are two important benefits.

More bits means that data can be processed in larger chunks which also means more accurately.
More bits means our system can point to or address a larger number of locations in physical memory.
32-bit systems were once desired because they could address (point to) 4 Gigabytes (GB) of memory in one go. Some modern applications require more than 4 GB of memory to complete their tasks so 64-bit systems are now becoming more attractive because they can potentially address up to 4 billion times that many locations.

Since 1995, when Windows 95 was introduced with support for 32-bit applications, most of the software and operating system code has been 32-bit compatible.

Here is the problem, while most of the software available today is 32-bit, the processors we buy are almost all 64-bit.

To utilize and getting full performance of processor its definitely necessary for sys progrmr to fully identify and understand the processor type that is installed in System. For example, if progrmr having 64 bit of processor but writing the program that is utilize the 16 or 32 bit performance of his processor then he is fully wasting the 64 bit functionality of installed processor. So it is necessary for programr first identify the type of processor and then write the program that intended to run on his installed processor. To fully utilize processor performance is not the only purpose for programr there may be a situation arise where the program is written for 64 bit processor but the underlying hardware support 16 or 32 bit programming compatibility.

Identifying the type of processor weather it is 32 bit or 64 bit is also not the only purpose of sys progmr. There is also different other functionality that progmr need to identify. They are, support of Multicore and multithreading, Bus speed, Clock frequency, Cache, instruction etc…

Question No.2:   . (15 Marks)

  1. 8086
  2. 80286
  3. 80386
  4. 80486
  5. Pentium Processor


there are total three tests used to identify givn processors

1. Flag register test (use for 8086 and 80286)

2. Allignment test (use for 80386 and 80486) this test is passed by pentium

3. CPUID test (use for pentium or leter processors)