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  = 4΄102 + 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