Nothing Special   »   [go: up one dir, main page]

YMCA - BC - MP (Wk1)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

Stored Program Concept

7
Stored Program Concept
• There are three major parts
– The CPU (Central Processing Unit) which acts as the brain coordinating all
activities within the computer
– The memory unit where the program instructions and data are temporarily stored
– The I/O (Input/Output) devices which allow the computer to input information for
processing and then output the result
• Today the CPU circuitry has been reduced to ICs called the microprocessor,
the entire computer with the three parts is called a microcomputer
• Several registers (e.g., flip-flops wired in series with each other)
– Some are general purpose, the accumulator for example is reserved for
performing complex mathematical operations like multiply and divide, and all I/O
data has to go thru the accumulator
• The basic timing of the computer is controlled by a square wave oscillator
or a clock generator circuit.
– Synchronization
– Determines how fast the program can be fetched from memory and executed
• Memory Read or Fetch Cycle
– IP: Instruction Pointer

8
Stored Program Concept
• Memory unit consists of a large number of storage locations each
with its own address
– RAM (Random Access Memory) and its volatility
• Typically each memory location is 8 bits wide (byte accessible memory)
– ROM (Read Only Memory)
• The memory unit’s address selector/decoder circuit examines the
binary number on the address line and selects the proper memory
location to be accessed.
– In this example, CPU is reading from memory, it activates its MEMORY
READ control signal
– This causes the selected data byte in memory to be placed onto the
data lines and routed to the instruction register in the CPU
• Once in the CPU, the instruction is decoded and executed
– In this example, instruction has the decimal code 64 which for a 8086
microprocessor is decoded to be INC AX
– The ALU (Arithmetic Logic Unit) is instructed to add 1 to the contents of
the AX
• The cycle repeats itself
9
Instruction Set
• The list of all recognizable instructions by the instruction decoder is
called the instruction set
– CISC (Complex Instruction Set Computers), e.g., 80x86 family has more
than 3000 instructions
– RISC (Reduced Instruction Set Computers) - A small number of very
fast executing instructions
• Most microprocessor chips today are allowed to fetch and execute
cycles to overlap
– This is done by dividing the CPU into
• EU (Execution Unit)
• BIU (Bus Interface Unit)
– BIU fetches instructions from the memory as quickly as possible and
stores them in a queue, EU then fetches the instructions from the queue
not from the memory
• The total processing time is reduced
– Modern microprocessors also use a pipelined execution unit which
allows the decoding and execution of instructions to be overlapped.
10
Three Bus System Architecture
• A collection of electronic signals all dedicated to particular task is
called a bus
– address bus
– data bus
– control bus
• Data Bus
– The width of the data bus determines how much data the processor can
read or write in one memory or I/O cycle
– 8-bit microprocessor has an 8-bit data bus
– 80386SX 32-bit internal data bus, 16-bit external data bus
– 80386 32-bit internal and external data buses
• How can a 64-bit (or 16 bit) microprocessor access an 8-bit
memory?
– The trick is to divide the memory into banks
– 64-bit Pentium requires eight banks of memory with each bank set up to
be one-byte wide
– Bank enable signals are then output by the microprocessor to specify
which bank to access
11
Address Bus

Total amount
of memory is
4Mbytes

• Address Bus
– The address bus is used to identify the memory location or I/O device (also
called port) the processor intends to communicate with
– 20 bits for the 8086 and 8088
– 32 bits for the 80386/80486 and the Pentium
– 36 bits for the Pentium II and III
– The total number of memory locations addressable by a given CPU is always
equal to 2^x where x is the number of address bits, regardless of the data bus.
• 8086 has a 20-bit address bus and therefore addresses all combinations of
addresses from all 0s to all 1s. This corresponds to 2 20 addresses or 1M (1
Meg) addresses or memory locations.
• Pentium: 4Gbyte main memory
12
Control Bus
• How can we tell the address is a memory address or an I/O port
address
– Memory Read
– Memory Write
– I/O Read
– I/O Write
• When Memory Read or I/O Read are active, data is input to the
processor.
• When Memory Write or I/O Write are active, data is output from the
processor.
• The control bus signals are defined from the processor’s point of
view.
• Control and address lines are output lines only but the data bus is
bidirectional

13
Some Important Terminology
• Bit is a binary digit that can have the value 0 or 1
• A byte is defines as 8 bits
• A nibble is half a byte
• A word is two bytes
• A double word is four bytes
• A kilobyte is 2^10 bytes (1024 bytes), The abbreviation K
is most often used
– Example: A floppy disk holding 356Kbytes of data
• A megabyte or meg is 2^20 bytes, it is exactly 1,048,576
bytes
• A gigabyte is 2^30 bytes

14
Internal Working of Computers - Example
• Assume that an imaginary CPU has registers called A,B,C, and D.
• It has an 8-bit data bus and a 16-bit address bus.
• Therefore the CPU can access memory from addresses 0000h to
FFFFh for a total of 2^16 locations
• The action to be performed by the CPU is to put a hexadecimal
value 21 into register A, and add to register A values 42h and 12h.
• Assume that the code for the CPU to move a value to register A is
1011 0000b (B0h) and the code for adding a value to register A is
0000 0100b (04h)
Action Code Data

Move 21h to A B0h 21h

Add 42h to A 04h 42h

Add 12h to A 04h 12h

15
Example Continued

Memory Address Content of memory

1400h B0h

1401h 21h

1402h 04h

1403h 42h

1404h 04h

1405h 12h

1406h F4h (the code for halt)

• Assume program is store at memory locations starting at 1400h

16
Internal Working Of Computers
ACTION Code Data
Move value 21 into register A B0H 21H
Add value 42H to register A 04H 42H
Add value 12H to register A 04H 12H
Memory Address Contents of memory address
1400 (B0) the code for move to A
1401 (21) the value for A
1402 (04) the code for adding a value to A
1403 (42) the value to be added
1404 (04) the code for adding a value to A
1405 (12) the value to be added
1406 (F4) the code for halt

17
Internal Working Of Computers

1- the CPU program counter can have any value between


0000 Æ FFFF H. This one is set to start with 2000
2- the CPU puts out 2000. The memory circuitry finds the
location. Activates the read signal, indicating the memory
location 1400. B0 is put on the bus and brought to the CPU

MEM
PC=2000
Read
CPU
Inst Decoder
B0
B0 decode

3- B0 is decoded internally it now knows it needs to fetch the


next byte!. It brings 21h from 1401. The program counter
automatically increments itself to the next location to fetch the
next data/instruction. 18
General Purpose Microprocessors

Microprocessors lead to versatile products

Data bus

CPU General Serial


Purpose RAM ROM I/O Timer COM
Microprocessor Port

Address bus
These general microprocessors contain no RAM, ROM, or I/O
ports on the chip itself
Ex. Intel’s x86 family (8088, 8086, 80386, 80386, 80486,
Pentium)
Motorola’s 680x0 family (68000, 68010, 68020, etc) 19
Microcontrollers
Microcontroller

CPU RAM ROM

Serial Com
I/O TIMER
Port

A microcontroller has a CPU in addition to a fixed amount of


RAM, ROM, I/O ports on one single chip; this makes them ideal
for applications in which cost and space are critical
Example: a TV remote control does not the computing power of a
486 20
Embedded Systems
• En embedded system uses a microcontroller or a microprocessor to
do one task and one task only
– Example: toys, garage door openers, answering machines, ABS,
keyless entry, etc.
– Inside every mouse, there is a microcontroller that performs the task of
finding the mouse position and sends it to the PC
• Although microcontrollers are the preferred choice for embedded
systems, there are times that the microcontroller is inadequate for
the task
• Intel, Motorola, AMD, Cyrix have also targeted the embedded
market with their general purpose microprocessors
• For example, Power PC microprocessors (IBM Motorola joint
venture) are used in PCs and routers/switches today
• Microcontrollers differ in terms of their RAM,ROM, I/O sizes and
type.
– ROM: One time-programmable, UV-ROM, flash memory

21
Types of Microcomputers
• Microprocessor: Processor on a chip
• In 1982, IBM began selling the idea of a personal computer . It featured a
system board designed around the Intel 8088 8-bit microprocessor, 16 K
memory and 5 expansion slots.
– This last feature was the most significant one as it opened the door for 3rd party
vendors to supply video, printer, modem, disk drive, and RS 232 serial adapter
cards.
– Generic PC: A computer with interchangable components manufactured by a
variety of companies
• Microcontroller is an entire computer on a chip, a microprocessor with on-
chip memory and I/O.
– These parts are designed into (embedded within) a product and run a program
which never changes
– Home appliances, modern automobiles, heat, air-conditioning control, navigation
systems
– Intel’s MCS-51 family, for example, is based on an 8-bit microprocessor, but
features up to 32K bytes of on-board ROM, 32 individually programmable digital
input/output lines, a serial communications channel.

22
Evolution of Intel Microprocessors

23
Evolution of Intel Microprocessors

24
Data Flow Inside the PC

25
Motherboard

26
Motherboard
• The motherboard is the heart of the PC on which all components
that are absolutely necessary are located.
• Motherboard and several slots into which the circuit boards of the
graphics adapter and the interfaces are located.
• 80x86 is the central unit of the board.
– It executes all data processing, that is, numbers are added, subtracted,
multiplied, etc. logic operations with two operations with two items are
executed (logical AND, XOR).
• For extensive mathematical operations (like the tangent of a real
number), a mathematical coprocessor is available. Intel calls the
processor as 80x87.
• Other companies also supply coprocessors (Weitex, Cyrix).
• May be 100 times faster than normal processors.
• Usually PCs are not equipped with a coprocessor when shipped, only with a
socket for it.
• The 486DX and its successors Pentium and Pentium Pro already implement
an FPU on-chip so that a coprocessor is obsolete.

27
Motherboard
• Another important motherboard component is the main memory or RAM.
– Usually, the main memory is divided into several banks; each bank has to be
fully equipped with memory chips.
– AT-386s main memory size is typically 4 Mbytes, fully equipped Pentium PCs
have at least 32 Mbytes of RAM.
– CPU stores data and intermediate results, as well as programs, in its memory
and read them later.
– Address: house number of the data unit requested
– Transferring the address to the memory is carried out by an address bus and the
transfer of data by a data bus.
– Bus means a number of lines through which data and signals are transferred.
– Address bus is
• 20 for PC XT/AT
• 24 for AT
• 32 for 386, 486, and Pentium
• Access time:Time period between the CPU’s command to the memory that data should
be read and this data being transferred to the processor.
– Modern memory chips have an access time of about 60-70 ns; access time is one of the most
important restrictions on the operational speed of a PC.

28
Motherboard
• Fast-clocked computers above 150 Mhz have a cache or cache memory
which is significantly smaller than the main memory but much faster (access
time of 10-20 ns).
– Cache holds data that is frequently accessed by the CPU.
– Uses a cache controller to check if the required data is in the cache.
– On the new and powerful 80x86 processors, the processor, coprocessor, cache
memory, and a cache controller are all integrated on a single chip to form the
i486 or Pentium.
• Motherboard also includes Read Only Memory (ROM)
– Located on this chip are the programs and data that the PC needs at power-up.
– In the ROM, there are also various support routines for accessing the keyboard,
graphics adapter, etc. known collectively as ROM-BIOS.
• To control the data transfer process, additional control signals are required:
e.g., write-enable signal for which one bus line is reserved.
– Data bus, address bus, and and all control lines are known as the system bus.
– 62 contacts for the XT (XT’s system bus) and 62 contacts for the AT
• Bus slots: memory expansion card may be inserted in one bus slot.

29
Motherboard
• Frequently, extensive amounts of data must be transferred from a
hard or floppy disk into the main memory (word processor
application for example). For this purpose, the motherboard has
several chips optimized for data transfer within the computer - the
DMA chips (Direct Memory Access).
– The CPU is bypassed in this process.
• Timer chip for memory refresh (Dynamic RAM) and for supporting
DOS routines time and date.

30
Graphics Adapters and Monitors

31
Drive Controllers, Floppy and Hard Disk Drives

32
Parallel Interfaces and Printers

• I/O chip on the interface card accepts eight bits together and transfers them together (that
is, in parallel) to the connected device (printer).
• Besides the data byte, control signals are also present to indicate whether the data has
arrived.
• Up to 100 Kbytes of data can be transferred per second if the interface and the connected
peripheral are correctly adapted.
• On the interface is a jack with 25 holes which supply signals according to the Centronix
standard.
• The standard claims 36 holes, IBM uses 25 of them: de-facto standard
• The max distance between the computer and the printer is about 5m
• Data is exchanged via handshaking
• Usually the parallel interface only supplies data but does not receive any.
• New versions of I/O chips can receive data and it is thus possible to exchange data
between computers via the parallel interface and a suitable software. 33
Serial Interfaces and Modems

• A PC usually has one or more serial interfaces; these are integrated on an interface
adapter card together with a parallel interface.
• The central component is a so-called UART which transmits via single data line as
opposed to eight as in the case for the parallel interface.
• Older PC/XTs have an 8250 chip, the AT has the more advanced 16450/16550 chip.
• UART adds additional bits; start, stop and parity bits.
• Much longer distances are possible (up to 100 m) but the transfer rate is lower.
• Serial interfaces conform to the RS232 standard which requires 25 contacts; only 14 at
most are used.
• Used in modems
34
Network Adapters and LANs

• Networking is essential.
• A network adapter has two interfaces: one to the PC’s CPU and a network interface for
accessing the network.
• Network adapter can be inserted in any free slot.
• The network interface depends on the network used: Ethernet, token ring, or ATM
• 10/100/G Ethernet
• I/O chip converts the data into a form that is adapted for transmission via the network.

35
Binary and Hexadecimal Systems - Overview
• Conversion to decimal:
– 110.101 b = ?
– 110.101 b = 6.625
– 6AC h = ?
– 6AC h = 106.75
• Conversion from decimal
– for a whole number: divide by the
radix and save the remainder as the
significant digits
– 10 = ? B
– 10 = ? 8 – 10 = 1010 b
– 10 = 12 8
• Converting from a decimal fraction
– multiply the decimal fraction by the
radix
– save the whole number part of the
result
– repeat above until fractional part of
step 2 is 0
– 0.125 = ? b – 0.125 = 0.001 b
– 0.046875 = ? h – 0.046875 = 0.0C h

36
Two’s Complement
• If the number is positive make no changes
• If the number is negative, complement all bits and add by 1
– -6 => 0000 0110 + 1 = 1111 1001 + 1 = FAh
• 8 bit signed numbers
– 0 to 7Fh (+127) are positive numbers
– 80h (-128)to FFh (-1) are negative numbers
• Conversion of signed binary numbers to their decimal equivalent
– 1101 0001
• 1101 0001 + 1 = 0010 1110 + 1 = 0010 1111 = 2Fh => -47
– 1000 1111 0101 1101
• 0111 0000 1010 0010 + 1 = 0111 0000 1010 0011 = 70C3h => -28835
• Two’s complement arithmetic
– +14 - 20
– 0000 1110 + 0001 0100 + 1 = FAh
• Overflow: Whenever two signed numbers are added or subtracted the
possibility exist that the result may be too large for the number of bits
allocated Ex: +64 +96 using 8-bit signed numbers

37
Two’s complement
• -128 1000 0000b 80h
• -127 1000 0001b 81h
• -126 1000 0010b 82h

• -2 11111110b FEh Numbers in the range


• -1 11111111b FFh -2^n … 2^n –1
• 0 0000000b 00h are represented by signed arithmetic
• 1 00000001b 01h

• +127 01111111b 7Fh

38
ASCII
• The standard for text
• In this code each letter of the alphabet, punctuation mark, and
decimal number is assigned a unique 7-bit code number
• With 7 bits, 128 unique symbols can be coded
– e.g., Uppercase A 41h
• Error detection codes
– Parity
• F has the ASCII code 46h or 100 0110
• Even parity encoded F becomes 1100 0110 or C6h
• Which of the following are errored transmissions if even parity is
used?
– E1h = 1110 0001
– 20h = 0010 0000
– 72h = 0111 0010 error
• Parity method of error detection can only be used to detect odd
numbers of errors
– 72h => 77h use more sophisticated checksums

39
BCD
• BCD code provides a way for decimal numbers to be encoded in binary
form that is easily converted back to decimal
– 26 => 0010 0110 (BCD) => 11010 (unsigned binary)
– 243 => 0010 0100 0011 (BCD) => 1111 0011 (unsigned binary)
• Used in seven segment displays

40
Computer Programming
• Machine Language vs Assembly Language
– Machine language or object code is the only code a computer can
execute but it is nearly impossible for a human to work with
– E4 27 88 C3 E4 27 00 D8 E6 30 F4 the object code for adding two
numbers input from the keyboard
• When programming a microprocessor, programmers often use
assembly language
– This involves 3-5 letter abbreviations for the instruction codes
(mnemonics) rather than the binary or hex object codes

Source code
41
Edit, Assemble, Test, and Debug Cycle
• Using an editor, the source code of the program is created. This
means selecting the appropriate instruction mnemonics to
accomplish the task
• A compiler program which examines the source code file generated
by the editor and determines the object code for each instruction in
the program, is then run. In assembly language programming, this is
called an assembler.
• The object code produced by the computer is loaded into the target
computer’s memory and is then run.
• Debugging: locating and fixing the source of error
• High-level programming Languages
– Basic
– C

42
Computer Operating Systems
• What happens when the computer is first turned on?
• MS-DOS
– A startup program in the BIOS is executed
– This program in turn accesses the master boot record on the floppy or
hard disk drive
– A loader then transfers the system files IO.SYS and MSDOS.SYS from
the disk drive to the main memory
– Finally, the command interpreter COMMAND.COM is loaded into
memory which puts the DOS prompt on the screen that gives the user
access to DOS’s built-in commands like DIR, COPY, VER.
• The 640 K Barrier
– DOS was designed to run on the original IBM PC
– 8088 microprocessor, 1Mbytes of main memory
– IBM divided this 1Mb address space into specific blocks
• 640 K of RAM (user RAM)
• 384 K reserved for ROM functions (control programs for the video system,
hard drive controller, and the basic input/output system)

43
Memory Map

44
MS-DOS Functions and BIOS Services
• Program Support
• BIOS: usually stored in ROM these routines provide access to the
hardware of the PC
• Access to the BIOS is done through the software interrupt instruction
Int n
• For example, the BIOS keyboard services are accessed using the
instruction INT 16h
• In addition to BIOS services DOS also provides higher level
functions
– INT 21h
– More details later

45

You might also like