Computer Organization
A Preliminary Study
Parts of a Computer
•	Let us look a little closer into Computers
•	The simplest and oldest organization
–	Central Processing Unit (CPU)	
–	Memory (Storage Unit)
–	Input/Output Devices (I/O)
–	Disk, Monitor, Printer
–	all connected by a single bus (collection of wires)
Block Diagram of a Computer
CPU
•	Brain of the computer
•	a number of storage units, called Registers
–	Instruction Register (IR), Program Counter (PC)
•	Control Unit
•	Arithmetic and Logical Unit (ALU)

CPU Function
•	Control unit fetches instruction from memory to IR
•	PC indicates which instruction to be brought
•	PC holds the `address' in memory
•	Instructions specify operation and operands
•	Control unit identifies the operation and operands
•	Control unit brings the operands from memory to registers
•	ALU computes the operation
•	Control unit stores back or prints the result
•	All the above steps repeated forever
Data Path of a Processor
Modern Processor
•	Highly Parallel Architecture
•	Multiple ALUs
•	Control unit divided into various sub units that run in parallel
•	Pipelined Computation

CPU Power
Computing power of a CPU measured in various terms

•	The rate at with which basic steps are performed measured in terms of clock frequency (1GHz)

•	number of instructions executed in a second (MFlops)

•	Size of the data values that can be operated upon in a single instruction  (16 bit, 32 bit, 64 bit)

How big is a CPU?
•	CPU is a very tiny VLSI chip
•	Very Large Scale Integrated Circuit
•	size of 1/4th square inches!
•	 Made of semi-conducting material
•	Millions of Transistors
•	Transistors are switches (0 and 1)
•	Size of a CPU keeps decreasing
•	No. of transistors doubles every eighteen months 
      (Moore’s Law)

Binary Encoding
•	All entities (operations, operands) encoded using BITS
•	BITS - Binary Digits:  0 and 1
•	Decimal Digits: 0,1,2,...,9
•	Sequence of 0 and 1 enough to represent any information!
•	Idea: any type of info. can be enumerated (Is this true?)
•	Numbers can be represented by sequence of bits

Binary Representation
•	Conventional representation – Decimal
             458  = 4102 + 5 101 + 8 100
•	10 is the base - 10 distinct symbols
•	Binary Representation - base 2
•	2 distinct symbol 0,1
•	0100, 10001,110 are examples
•	value of 0100 = 0  23 + 1  22 + 0  21 + 0 20 = 4
•	Compute the other values?
•	How do you represent 458 in binary?
Hexadecimal Representation
•	Any base can be used
•	Another common representation 
•	Often used in System programming
•	Base is 16
•	Distinct symbols are: 0,...,9,A,B,C,D,E,F
•	Examples: 9CAD0, FFF, AAA
•	value of FFF = 15 162 + 15  161 + 15  160 
                         =  4095
Conversion of Representation
•	Binary to Decimal: Expand the number
•	Example: 1011 = 1  23 + 0  22 + 1  21 + 1  20 
                             = 11
•	Decimal to Binary: 
–	keep dividing the number by 2 till you get a 			    quotient less than 2
–	 write down the reminders at each stage from  left to right

Example
•	Convert 28 to binary

          2  28     0
          2  14     0
          2    7     1           Binary representation of
          2    3     1                28  is  11100
                1

   How to convert decimal to Hexadecimal?
Memory
•	Instructions and operands in memory during execution
•	physically, memory is an array of cells
•	each cell contain one BIT of information
•	chunks of 8 adjacent bits is called a BYTE
•	WORDS are chunks of adjacent bytes (usually 2 or 4 bytes)
•	logical view of memory is - array of words
•	words contain meaningful data
•	each word has a numerical address (0, 127, 2067 etc.)
Main Memory
Memory Operations
•	CPU performs two operations on memory
–	READ and WRITE
–	contents of any word can be read or written
–	Random Access Memory (RAM)

•	CPU refers to the contents of memory by their addresses
Memory capacity
•	Measured in various terms

•	Size of the memory: no. of bytes of data it can store
–	Current common sizes are: 
–	 128 Kilo bytes, 256 Mega Bytes, 1 Giga Bytes	         

			1 Kilo byte     = 1024 bytes (210)
			1 Mega Byte 	= 1024 KB (220)
			1 Giga Byte  	= 1024 MB (230)
Memory Capacity
•	Size of the word:

–	Transfer from/to CPU and memory take place in units of words
–	word size determines the number of bytes that can be transferred in a single operation
–	 larger it is, faster the processing power
–	Common word sizes are: 16 bits, 32 bits, 64 bits
Different Memory Types
•	Main memory Speed 
–	 100s of Mbytes per second

•	Types of Memory
–	Random Access Memory (RAM)
–	Read Only Memory (ROM)
–	Programmable ROM (PROM)
–	Erasable/Programmable Memory (EPROM)
Peripherals
•	Secondary Memory - Hard Disk
•	Can store large amount of data (10 GB, 256 GB, ...)
–	Slower (tens of MB/sec)
–	 Date retained even when not powered
–	Magnetic memory
–	 Program and Data files are stored here
•	Video Display Unit (Monitor)
•	Keyboard, Mouse, Printer, Floppy Disk, CDROM
•	Network Devices (Ethernet card, Modem)
•	All these are interfaced to the main bus via CONTROLLERS
•	CPU deals with controllers and the latter with the devices
Machine Programs
Machine instructions
•	involve primitive operations like
–	reading and writing memory/registers
–	arithmetic and logical operations on binary nos.
•	involve references to registers, memory locations and binary strings
•	only one kind of data values: binary numbers
•	Too difficult to program, understand, debug, analyze and maintain
•	Not portable - instructions are machine peculiarities
•	Example: 	mov R1,R2
               	lda R1,#0AB
               	add R1,R2,R3
                	jmp end
High Level Language
•	hides details of machine peculiarities
•	provides high level of abstractions of memory and registers
•	High level data types like integers,real,characters
•	suitable operations on these data types
•	easier to program, debug, analyze and maintain
•	portable - you need a compiler for each (type of) machine
Running a HL program
•	cannot be directly executed
•	translate to low-level programs
•	compilers do the job
•	source and object programs
•	compilers are machine dependent
Simple Picture