Sunday, 10 February 2013

Microprocessor And Its Internal Architecture

THE MEMORY SYSTEM:

The memory system is classified into three regions -
1. TPA (Transient Program Area)
2. Systems Area
3. XMS (Extended Memory System)

In the 8086 or 8088, The TPA and the systems area exist, but the XMS is absent. The TPA contains 640K bytes of memory and the systems area, 384K bytes, for a total memory of 1M bytes.

Of the three memory divisions, theTPA is of most functional importance. Info about the TPA is discussed here.

 The TPA:

The Transient Program Area holds the DOS ( Disk Operating System) and other programs which are responsible for a computer's functionality. The Windows XP version of MSDOS leaves around 628K bytes of memory in the TPA for applications and other programs. The earlier versions left only 530K bytes of memory. A Typical DOS map shows how many areas are present in the TPA, and their memory locations (via hexadecimal notation). The memory map shows regions in the TPA specified by Interrupt vectors, BIOS and DOS Communications area, the IO.SYS program, device drivers, COMMAND.COM, the MSDOS program and free TPA space.

The BIOS and DOS communications areascontain data used by programs to access the I/O devices and other internal features of a computer. The BIOS program is seen as a collection of programs which operate many of the I/O systems, and these are generally stored in ROM(read only memory) or a flash drive. The BIOS, DOS programs are accessed by the interrupt vectors.


The 8086 microprocessor also has a program called IO.SYS program in the TPA. This program loads into the TPA from the disk whenever the DOS starts. It contains sets of programs which allow the usage of the I/O devices, keyboard, mouse, video graphics etc.


Drivers are programs which lets the microprocessor control the devices like the mouse, keyboard etc. some programs or applications need special drivers of their own too.

Another important program is the COMMAND.COM. This controls the operation of the computer from the keyboard when operated in DOS mode.
It is the COMMAND.COM program which comes into play when we type something into the "run" window or the cmd prompt.


(to be continued...)

Wednesday, 16 January 2013

Microprocessors - The 8086 family



NOTE: Sources include wikipediaHowStuffWorks, etc, a bit of googling and whatever was taught in my class !!

What exactly is this microprocessor?? Well, its the "heart" of any computer. With the microprocessor, the functions or tasks of a computer can be done using a single IC (or a few ICs together) . It takes only BOOLEAN inputs and results are what we see today.

Much before the usage of microprocessors, early computers used ICs which had a few hundreds of transistors burnt on them. Most often, multiple ICs were required and together, all were burnt on a single platform.

Because of this arrangement, a large number of logic gates had to be used, which in turn lead to increased heat dissipation and lower speeds.

But the discovery of microprocessors has changed it all !

The first microprocessor was introduced in 1971, it was called Intel 4004. It was a very primitive version as compared to todays microprocessors. The 4004 could add and subtract 4 bits (and just 4 bits) at a time. Refer wikipedia for much deeper history and evolution of the microprocessors.

The first microprocessor to make it to a home computer is the Intel 8080 and then on, improvised versions kept evolving -
4004, 4040, 8080, 8085, 8086, 8088, 80186, 80126, 80386 SX 80386 DX, 80386 EX, 80486, Pentium Pro, Intel Pentium II, III, IV and so on.

Each version represents a family of microprocessors. Modern microprocessors can be traced back to their basic version - the 8085, 8086 microprocessors. The 8086 contains additional functions when compared to the 8085 and so we shall see more about the 8086 family.

## At this point, I have an unanswered question - Is there any basis for the naming of the microprocessors? Why do they start with an "80-" ? I could do with some opinion, readers :)

--> I think that the "40-" signified 4 bit operations, and the "80-", 8 bit operations, Im not sure. Please do correct me If I am wrong.

Generally, microprocessors can be differentiated using three features:
a) INSTRUCTION SET : The set of instructions that the microprocessor can execute.
b) BANDWIDTH : The number of bits processed in a single instruction.
c) CLOCK SPEED : Specified in MHz (megahertz), the clock speed determines how many instructions the microprocessor can execute per second.

On a rougher note, one can say that a 32-bit microprocessor with clock speed of 50 MHz is more powerful than a 16-bit microprocessor with a clock speed of, say, 25 MHz.


A GENERAL PURPOSE MICROPROCESSOR:




Schematic Diagram of a General purpose Microprocessor

Referring to the figure above, we see that there are two "buses" . A BUS may be seen as a 'path' for establishing communication between the microprocessor and a peripheral. To set up a communication between, say, a device and the microprocessor, the microprocessor should first "address" that device and then communicate. The address bus does just that.

A group of lines are used to identify the devices, these lines constitute the address bus, and its UNIDIRECTIONAL.

A general microprocessor has another bus, namely, the DATA bus, which, as the name suggests, makes the exchange of data possible. This is BIDIRECTIONAL.

A general microprocessor has what forms a path for all communication - Datapath.

The  datapath  consists  of  the  circuitry  for  transforming  data  and  for  storing
temporary  data.  The  datapath  contains  an  arithmetic-logic  unit  (ALU)  capable  of
transforming  data  through  operations  such  as  addition,  subtraction,  logical  AND,  logical OR,  inverting,  and  shifting.  The  ALU  also  generates  status  signals,  often  stored  in  a status register indicating  particular  data  conditions.  Such  conditions  include indicating  whether  data  is  zero,  or  whether  an  addition  of  two  data  items  generates  a carry.  The  datapath  also  contains  registers  capable  of  storing  temporary  data.  Temporary data  may  include  data  brought  in  from  memory  but  not  yet  sent  through  the  ALU,  data coming  from  the  ALU  that  will  be  needed  for  later  ALU  operations  or  will  be  sent  back to  memory,  and  data  that  must  be  moved  from  one  memory  location  to  another.  The internal data bus is the bus  over  which  data  travels  within  the  datapath,  while the  external data bus is the bus over which data is brought to and from the data memory.


When we say a processor is a 16-bit or 32-bit processor, we mean to convey that the width of the DATA bus is 16-bits or 32-bits respectively.

In addition to the data and address buses, we also have what are called control signals, which we shall discuss a little later.
For convenience I shift the further part to the next post.

The Beginning..

I think it would be good if I had mentioned the sole purpose of the blog, so I start..

I am a student of the Electrical and Electronics Engineering, and like majority of us electrical ( trical, henceforth ;) ) students, I faced (and still facing) quite a good number of "understanding" problems!!

So I decided to sort it out, well, with help, from all those who are willing to help. With the advent of the World wide Web, and the blogger, I thought Online platforms were my first resource.

I shall start posting stuff about all what I have Learnt during my course, and i hope to receive improvisations and comments from the well informed lot.

Please do feel free to leave a comment or two!

(Harsh criticism is obviously not wanted, if You do not like the content of this blog, there are many other things much appealing :) )