Transcript Slide 1

Digital
Fundamentals
Tenth Edition
Floyd
Chapter 13
Floyd, Digital Fundamentals, 10th ed
2008 Pearson
Education
© 2009 Pearson Education,©Upper
Saddle River,
NJ 07458. All Rights Reserved
Summary
Computer Block Diagram
The central processing unit (CPU) controls the operations by issuing
a fetch to memory for an instruction, then executes it.
Peripherals
Memory stores instructions and data
until needed by the CPU.
Keyboard
Mouse
Monitor
Printer
Modem
Removable storage:
CDs, CD-RW, etc.
The ports are the I/O connections to
the peripherals.
Memories/Storage:
RAM, ROM, cache,
hard disk
The buses are groups of conductors
with a common purpose.
Input/Output
ports
Address bus
Peripherals are devices for
inputting or outputting information.
Floyd, Digital Fundamentals, 10th ed
CPU
(microprocessor)
Data bus
Control bus
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Software
Software is all of the instructions that determine what
operations are performed.
System software is the operating
system of the computer and acts
as the system manager.
The BIOS is a portion of the
operating system called “firmware”
because it is a permanent part of
the system software in ROM (readonly memory).
Application software includes
the various programs used to
accomplish a task.
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Microprocessors
Four blocks are common to all microprocessors. These are:
• ALU
Performs arithmetic and logic operations
• Instruction decoder
Translates the programming instruction into an
address where microcode resides for executing
the instruction
• Register array
A group of temporary storage locations within
the processor, each with special features
• Control unit
Synchronizes the processing of instructions
Floyd, Digital Fundamentals, 10th ed
Microprocessor
Arithmetic
logic unit
(ALU)
Register
array
Instruction
decoder
Control
unit
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Microprocessor Buses
Three buses for microprocessors allow data, addresses and
instructions to be moved.
The address bus is used by the microprocessor to specify a
location in memory or external device. Some processors
have 64 address lines and can access 1.8 x 1019 locations.
The data bus transfers data
and instruction codes to and
from memory and I/O ports.
The control bus coordinates
operations and communicates
with external devices.
Memories/Storage:
RAM, ROM, cache,
hard disk
Input/Output
ports
Address bus
CPU
(microprocessor)
Data bus
Control bus
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Microprocessor Programming
Microprocessors work with an instruction set that allows it
to function. Although the instruction set within the
processor is binary, programmers work with English-like
commands, which are divided into seven groups. These are:
•Data transfer
•Arithmetic and logic
•Bit manipulation
•Loops and jumps
•Strings
•Subroutines and interrupts
•Control
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Multicore Processors
The Intel microprocessors up through the Pentium were all
single core processors, meaning they had only one
microprocessor in an IC.
Many newer processors have more
than one core on a single IC. Multicore
processors can execute more than one
instruction at a time. This process is
also called multiprocessing.
Cache
Cache
Processor
core
Processor
core
System bus
An example of multiprocessing is when
two processors work on an image at the same time to adjust the contrast.
The work is sectioned so that each processor works on only one part.
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Multitasking
Multitasking is a technique that allows a computer to
perform more than one task. Unlike multiprocessing, the
work only appears to be simultaneous because of the speed
of the processor.
One type of multitasking parcels time
slices on the processor for each program
– this is called preemptive multitasking.
Another type of multitasking is done
when the program controls the processor
– this is called cooperative multitasking.
Multithreading is a variation on multitasking, where different parts of
the same program are executed simultaneously.
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Operations
Microprocessors execute programs by repeatedly cycling
through three basic steps:
1. Fetch
2. Decode
3. Execute
The processor has two internal units, the EU and the BIU, as shown
in the figure:
8086/8088 Microprocessor
Execution unit
EU
 Executes instructions
Bus interface unit
BIU
 Fetches instructions
 Reads operands
 Writes results
Floyd, Digital Fundamentals, 10th ed
System
buses
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Operations
While the EU is executing instructions, the BIU is fetching
the next instruction from memory, and storing the next
instruction in a high speed memory called the cache.
In the Pentium processors, two execution units (EUs) allow instructions
that are independent of each other to execute at the same time.
8086/8088 Microprocessor
Execution unit
EU
 Executes instructions
Bus interface unit
BIU
 Fetches instructions
 Reads operands
 Writes results
System
buses
The following slide shows the architecture of the 8088 processor …
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
EU
BIU
Address bus (20 bits)
Σ
General registers
AH
BH
CH
DH
AL
BL
CL
DL
Data bus (8 bits)
CS
DS
SS
ES
IP
Internal
communications
registers
SP
BP
DI
SI
ALU data bus (16 bits)
Bus
control
logic
8088
bus
Temporary registers
Instruction queue
ALU
EU
control
system
Q bus (8 bits)
1 2 3 4
Flags
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Addressing
Intel chose a innovative way of generating 20-bit physical
addresses in the 8088 and subsequent processors.
The physical address is formed by combining a 16-bit address in a
segment register with a 16-bit address in a general register. The
addresses “overlap” as shown, with an implied 00002 on the right side
of the segment register (shown in blue).
Segment register
16-bit segment base address
0000
+
General register
16-bit offset address
20-bit physical address
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Addressing
Segment/offset addressing allows 64k blocks of code to be
relocated in memory by changing only the segment address.
Assume IP = 20A016 and CS=B20016.
a) What is the location of the start and end of the block?
b) What physical address is formed?
The addressing is diagramed:
C1FFF16
.
.
.
.
a) The start of the block is at B200016;
it ends at B200016 + FFFF16 = C1FFF16
b) The physical address is
B200016 + 20A016 = B40A016
64 kB
block
B40A0 16
.
.
.
.
B200116
B200016
.
.
.
2
.
.
.
0 A
0
Contents of IP
+
B 2
0
0 0
implied
Contents of CS
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
The Execution Unit
The EU decodes instructions, generates control signals, and
executes instructions. The general registers and flags are key
elements from an assembly language programming view.
15
Data
set
87
AH
AL
BH
BL
CH
CL
DH
DL
15
Accumulator
Base index
Count
Data
0
SP
Pointer and
index set
0
BP
DI
SI
Stack pointer
Base pointer
Destination index
Source index
Control
flags
Status
flags
TF DF IF OF SF ZF AF PF CF
Carry
Parity
Aux carry
Zero
Sign
Overflow
Interrupt enable
Direction
Trap
As processors have evolved, the register set has expanded, both in number
size and number. The following slide shows part of that evolution…
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
The Execution Unit
32-bit names
The software model of later
processors includes expanded
registers, buses, math
coprocessors and the ability to
do “pipelining”. Pipelining is a
technique where the processor
begins executing the next
instruction before the previous
instruction has been
completed.
EAX
AH AX AL
Name
Accumulator
EBX
BH BX BL
Base index
ECX
CH CX CL
Count
EDX
DH DX DL
Data
ESP
SP
Stack pointer
EBP
BP
Base pointer
EDI
DI
Destination index
ESI
SI
Source index
32 bits
16 bits
EIP
EFlags
IP
Instruction pointer
CS
Code segment
DS
Data segment
ES
Extra segment
SS
Stack segment
FS
GS
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Computer Programming
Most programming today is done in a high-level language, which
can run on various machines. It is easier to write and maintain highlevel programs.
Assembly language was developed to make a
simpler interface between the machine and the
programmer. Assembly language is useful today
for many operations because it executes fast and
efficiently, but it must be written for a specific
processor and takes more time to write programs.
High-level language
• Closer to human language
• Portable
Assembly language
• English-like terms representing
binary code
• Machine dependent
Machine language
• Binary code (1s and 0s)
• Machine dependent
Early computers were programmed in machine
language, which was the only instructions the
computer could execute. Machine language is
tedious to write and prone to errors.
Floyd, Digital Fundamentals, 10th ed
Computer hardwar e (the “machine”)
• CPU
• Memory (RAM, ROM)
• Disk drives
• Input/Output
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Computer Programming
High-level languages can run on any machine; the source code is
converted to machine code by a compiler. (In some cases an interpreter is
used; it converts source code line-by-line.)
High-level language
program
(Source program)
Compiler
Machine language
program
(Object program)
Assembly language must written for the specific processor it will be used
on and the programmer must understand the register structure of the
processor. An assembler converts the source code to the machine code.
Assembly language
program
(Source program)
Floyd, Digital Fundamentals, 10th ed
Assembler
Machine language
program
(Object program)
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Assembly Programming
Assembly language is suited to instrumentation and control applications
such as found in a production facility. It is also used to write device
drivers for peripheral devices because necessary instructions are not
readily available in high-level languages.
In assembly language, there are two types of instructions – assembler
directives and executable instructions. Assembler directives provide the
assembler with various types of information such as space requirements,
or where to begin executing instructions. Executable instructions can be
directly translated to machine code and include arithmetic and other
operations.
dw 30 ;an assembler directive that reserves space for 30 as a word
sub ax,bx ;an executable instruction - subtract (bx) from (ax)
The following slide lists categories of executable instructions…
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Instruction type
Examples
Syntax
Transfer
Move (copy)
Input
MOV destination, source
IN destination, port number
Arithmetic
Add with Carry
Subtract
ADC destination, source
SUB destination, source
Bit Manipulation
Invert bits
Shift left (logical)
NOT register
SHL register, quantity
Arithmetic
Add with Carry
Subtract
ADC destination, source
SUB destination, source
Loops and Jumps
Unconditional jump JMP destination
Jump if no carry
JNC destination
Strings
Input a string
INS port number
Subroutines
and Interrupts
Call a procedure
Interrupt
CALL label
INT number
Processor Control
Clear carry flag
CLC
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Interrupts
In microprocessor based systems, there are three ways to
start a service routine for a peripheral device. These are:
Polled I/O – the CPU tests each device one at a time to check if it
needs service. If it does, the service routine is invoked.
Interrupt driven I/O – the peripheral device requests service by
sending an interrupt request signal. The CPU acknowledges the
interrupt, fetches the service routine, and returns to its program
when the routine is completed.
Software interrupts – a software interrupt is issued from software
rather than external hardware. After the interrupt occurs, the steps
are the same as with a hardware interrupt.
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Direct Memory Access
Direct memory access (DMA) is a data transfer technique in
which data is transferred to or from a peripheral device and
memory without involving the CPU. A DMA controller
handles the transfer. The transfer is faster using this method.
CPU
Data bus
MEMR
RAM
Floyd, Digital Fundamentals, 10th ed
DMA
controller
IOW
I/O port
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
Internal Interfacing
It is often necessary to communicate with various devices in
systems. Often, the devices are connected together with a bus
and access to the bus is controlled by a bus controller or bus
arbitrator to avoid conflicts.
To avoid having two or more devices “talking” on a common bus,
tristate buffers are commonly used. These are buffers with three
states: HIGH, LOW, and high impedance (disconnected). An enable
line determines if the device is enabled or disconnected.
HIGH
HIGH
LOW or
HIGH
HIGH
HIGH
Disconnected
(high-Z)
HIGH
Active HIGH enable line
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Summary
The IEEE 488 (GPIB) Bus
An example of a bus system is the IEEE 488 general-purpose interface
bus (GPIB) that has evolved from a standard originally developed in
1965 by Hewlett-Packard. The standard is widely used to allow
instruments to send data over a parallel data bus. There are three types of
devices defined by the standard.
Listeners are devices that receive data
such as monitors or printers.
Instrument
A
Controller
Talker/Listener
(Computer)
Talkers are devices that send data
such as DMMs or signal generators.
Data lines
Controllers are devices
that determine who can talk
and who should listen.
Management
lines
Handshake
lines
Floyd, Digital Fundamentals, 10th ed
Instrument
B
Instrument
C
Instrument
D
Talker/Listener
(DMM)
Listener
(Printer)
Talker
(Counter)
DI/O1
DI/O2
DI/O3
DI/O4
DI/O5
DI/O6
DI/O7
DI/O8
Data bus
IFC
ATN
SRQ
REN
EOI
Interface management bus
DAV
NRFD
NDAC
Data transfer control bus
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
Selected Key Terms
Port
A physical interface on a computer through which
data are passed to or from a peripheral.
Interrupt
A computer signal or instruction that causes the
current process to be temporarily stopped while a
service routine is run.
Assembly
language
A programming language that uses English like
words and has a one-to-one correspondence to
machine language.
Tristate
A type of output on logic circuits that exhibits three
states: HIGH, LOW, and high Z; used to interface
the outputs of a source device to a bus.
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
1. In a computer, the address bus is a
a. one way bus from the CPU
b. one way bus to the CPU
c. two way bus between the CPU and memory
d. two way bus between the CPU and ports
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
© 2008 Pearson Education
2. A example of software that resides in ROM (firmware) is
a. assembly language
b. application software
c. the BIOS
d. all of the above
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
© 2008 Pearson Education
3. The part of a microprocessor that translates the
programming instruction into an address where microcode
resides is the
a. ALU
b. instruction decoder
c. register array
d. control unit
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
© 2008 Pearson Education
4. The part of a microprocessor that fetches the next
instruction from memory is called the
a. ALU
b. BIU
c. EU
d. bus controller
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
© 2008 Pearson Education
5. The figure illustrates the segment/offset method of addressing
used in Intel processors. The advantage of this method is
a. code can be easily relocated
b. a smaller address bus can be used
c. addresses can be “pipelined”
d. the clock speed can be increased
16-bit segment base address
0000
+
16-bit offset address
20-bit physical address
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
© 2008 Pearson Education
6. An advantage to assembly language is that it is
a. fast and efficient
b. easier to write programs
c. can be used on any processor
d. all of the above
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
© 2008 Pearson Education
7. Information given to an assembler such as where to begin
executing instructions is provided by
a. the BIOS
b. system programs
c. executable instructions
d. assembler directives
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
© 2008 Pearson Education
8. The CPU is not involved in
a. arithmetic instructions
b. loop instructions
c. software interrupts
d. direct memory access
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
© 2008 Pearson Education
9. For the circuit shown, the output will be
a. LOW
HIGH
b. HIGH
c. high impedance
?
LOW
d. not enough information to tell
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
© 2008 Pearson Education
10. The IEEE 488 bus standard
a. is a serial bus with 2 types of devices
b. is a parallel bus with 2 types of devices
c. is a serial bus with 3 types of devices
d. is a parallel bus with 3 types of devices
Floyd, Digital Fundamentals, 10th ed
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved
© 2008 Pearson Education
Answers:
Floyd, Digital Fundamentals, 10th ed
1. a
6. a
2. c
7. d
3. b
8. d
4. b
9. c
5. a
10. d
© 2009 Pearson Education, Upper Saddle River, NJ 07458. All Rights Reserved