MEMORY - it221

advertisement
PC IBM Organization
4/13/2015
241 Computer Organization
1
16-Bit Intel Processor
Architecture
• A-16 bit microprocessor can operate
on 16 bits of data at a time.
• 8086/8088 have the simplest
structure
• 8086/8088 have the same instruction
set, it forms the basic set of
instructions for other Intel families.
4/13/2015
241 Computer Organization
2
Example 8086 microprocessor
4/13/2015
241 CAP Computer Organization
3
Example 8086
microprocessor
2 main components:
. Execution Unit (EU).
. Bus Interface Unit (BIU).
EU: ALU + Registers (AX, BX, CX, DX, SI, DI,
BP, and SP) + FLAGS register.
ALU: performs arithmetic & logic operations.
Registers: store data
FLAGS register: Individual bits reflect the result
of a computation.
4/13/2015
241 CAP Computer Organization
4
Example 8086
microprocessor
BIU: facilitates communication between the EU &
the memory or I/O circuits.
Responsible for transmitting addresses,
data, and control signals on the buses.
Registers (CS, DS, ES, SS, and IP) hold
addresses of memory locations.
IP (instruction pointer) contain the address
of the next instruction to be executed by the EU.
4/13/2015
241 CAP Computer Organization
5
Organization of the 8088/8086
16-bit registers,
1M Bytes Memory
Registers:
Information is stored in registers
Registers are classified according to
the functions they perform:
4/13/2015
241 Computer Organization
6
Registers
• Data registers: 4 general data registers
hold data for an operation.
• Address registers: (segment, pointer
and index registers) hold the address of an
instruction or data.
• Status register: FLAG register keeps the
current states of the processor.
•
14 16-bit registers
4/13/2015
241 Computer Organization
7
16-Bit Intel Processor Architecture
Register
4/13/2015
241 Computer Organization
8
General Data Register: Used for
general data manipulation.
• They are 16-bit registers
that can also be used as
two 8 bit registers: low
and high bytes can be
accessed separately →
more registers to use
when dealing with bytesize data.
• In addition to being
general-purpose registers,
they perform special
functions:
4/13/2015
241 Computer Organization
9
AX (Accumulator)
• Most efficient register for
arithmetic, logic operations
and data transfer: the use of
AX generates the shortest
machine code.
4/13/2015
241 Computer Organization
10
BX (Base)
• Can hold addresses (offset),
ex. a table look-up table
instruction XLAT (translation
EBCDIC to ASCII)
4/13/2015
241 Computer Organization
11
CX (Counter)
• Counter for looping operations:
loop counter, in REP
instruction, and in the shift and
rotate bits
4/13/2015
241 Computer Organization
12
DX (Data)
• Used in multiply and divide,
also used in I/O operations
4/13/2015
241 Computer Organization
13
Address registers
• Store addresses of instructions
and data in memory.
4/13/2015
241 Computer Organization
14
The 8086 processor
The 8086 processor assign a 20-bit physical
address to its memory locations.
20
2 → 1 Mbytes
20 bits → 5 hex digits
first addresses: 00000h, 00001h,…,0000Ah,…
16
last address: FFFFFh
The addresses are too big to fit in a 16-bit register.
registers are 16-bits → can address only 2
= 64 K Bytes.
→ Partition the memory into segments
4/13/2015
241 Computer Organization
15
Memory Segment
16
• Is a block of 2 (64) K Bytes consecutive
memory bytes.
• Each segment is identified by a 16-bit number
called segment number, starting with 0000 up
to FFFFh . Segment registers hold segment
number.
• Within a segment, a memory location is
specified by giving an offset (16-bit) = It is the
number of bytes from the beginning of the
segment (0→ FFFFh).
4/13/2015
241 Computer Organization
16
Memory Segment
F0000
E0000
D0000
C0000
B0000
A0000
90000
8000:FFFF
80000
8000:0000
One Segment
70000
60000
50000
segment offset
40000
30000
20000
10000
00000
4/13/2015
241 Computer Organization
17
Segment : Offset Address
• A memory location may be specified by a
segment number and offset ( logical
address ).
Example :
A4FB : 4872
h
Segment
4/13/2015
Offset
241 Computer Organization
18
• Offset : is the distance from the
beginning to a particular location
in the segment.
• Segment number : defines the
starting of the segment within the
memory space.
4/13/2015
241 Computer Organization
19
Start location of the
segment must be 20 bits 
the absolute address is
obtained by appending a
hexadecimal zero to the
segment number (shift 4-bit to
the left) , i.e. multiplying by
16(10h).
4/13/2015
241 Computer Organization
20
Physical Address
Physical Address : is equal to
segment number X 10 + Offset
h
4/13/2015
241 Computer Organization
21
Physical Address for A4FB : 4872
A4FB0
+
4872
A9822 ( 20 bits )
4/13/2015
241 Computer Organization
22
Location of Segments
Segment 0
starts at address 0000:0000  00000
h
ends at address 0000:FFFF  0FFFF
4/13/2015
241 Computer Organization
h
23
Location of Segments
Segment 1
starts at address 0001:0000  00010
h
ends at address 0001:FFFF  1000F
h
Overlapping between segments
4/13/2015
241 Computer Organization
24
Segment
End of Segment 2
End of Segment 1
End of Segment 0
Start of Segment 2
Start of Segment 1
Start of Segment 0
4/13/2015
Physical Address (hex)
…
10021
10020
1001F
1001E
…
10010
1000F
1000E
…
10000
Seg.0002
0FFFF
0FFFE
…
00021
00020
0001F
Seg.0001
…
00011
00010
0000F
…
00003
Seg. 0000
00002
00001
00000
241 Computer Organization
25
Location of Segments
• The segments start every 10 = 16 bytes
( called Paragraph ) and the 16
starting
address of a segment always ends with a
hex digit 0.
• Paragraph boundary is an address
divisible by 16(ends with a hex digit 0).
• Because of overlapping, the segment:
offset form of an address is not unique.
4/13/2015
241 Computer Organization
26
Example
For the memory location whose physical
address is specified by 1256A (hex) ,
give the address in “ segment : offset “
form for the segments 1256 & 1240 .
Solution :
Physical address = segment X 10 + offset
offset = physical address – segment X 10
4/13/2015
241 Computer Organization
27
Solution
a) Segment 1256 :
offset = 1256A - 12560 = A
Address  1256 : 000A
b) Segment 1240 :
offset = 1256A - 12400 = 0016A
Address  1240 : 016A
4/13/2015
241 Computer Organization
28
Program Segments
• A typical machine language program
consists of:
– instructions ( CODES )
– data
– stack  is a data structure used by the
processor to implement procedure calls.
4/13/2015
241 Computer Organization
29
• Codes , data , and stack are loaded into
different memory segments :
– Code segment. CS : holds segment
number of the code segment.
– Data Segment DS : holds segment
number of the data segment.
ES extra segment : holds
alternate segment number of the data
segment.
– Stack Segment SS : holds segment
number of the stack segment.
4/13/2015
241 Computer Organization
30
Program Segment
• A program segment can
occupy less than 64 Kbytes.
• Overlapping permits program
segments that are less than 64
KB to be placed close together.
4/13/2015
241 Computer Organization
31
- At
any time, only those memory
locations addressed by the 4
segment registers are
accessible; → only 4 memory
segments are active. However,
the contents of a segment
register can be modified by a
program to address different
segments.
4/13/2015
241 Computer Organization
32
Pointer and Index Registers
• Used for offset of data, often
used as pointers. Unlike
segment registers, they can be
used in arithmetic and other
operations.
4/13/2015
241 Computer Organization
33
Pointer Registers
• SP (Stack Pointer): Used with SS
for accessing the stack segment.
• BP ( Base Pointer): Used with SS
to access data on the stack.
However, unlike SP, BP can be
used to access data in other
segments.
4/13/2015
241 Computer Organization
34
Index Registers
• SI (Source Index): Source of string
operations. Used with DS (or ES) to
point to memory locations in the data
segment.
• DI (Destination Index): Destination
of string operation. the same function
as SI. Used with ES (or DS).
4/13/2015
241 Computer Organization
35
Instruction pointer
To access instructions, the 8086 uses the
registers CS and IP.
CS contains the segment number of the
next instruction.
IP (Instruction pointer): Points to the next
instruction (contains the offset). Used with
CS.
An instruction may not contain IP as its
operand.
4/13/2015
241 Computer Organization
36
Flags register
Flags: Bits specify status of CPU and information about
the results of the arithmetic operations.
Status flags: reflect the result of an instruction executed by
the processor.
Control flags: enable or disable certain operations of the
processor.
4/13/2015
241 Computer Organization
37
Organization of the PC
• A computer is made of:
Hardware & software. Software
controls the H/W operations.
• The purpose of the OS is to
coordinate the operations of all
the devices that make up the
computer systems.
4/13/2015
241 Computer Organization
38
Some of the OS functions
1) reading and executing the
commands typed by the user.
2) performing I/O operations
3) generating error messages
4) managing memory and other
resources.
4/13/2015
241 Computer Organization
39
Very popular O.S. for IBM PC is
DOS.
• DOS manage only 1 M byte memory, does
not support multitasking.
• DOS is a collection of routines that
coordinates the operations of the
computer. The routine that executes user
command is COMMAND.COM.
• Information stored on disk is organized
into files. A file has a name and an
optional extension.
4/13/2015
241 Computer Organization
40
• The BIOS routines are used to perform I/O
operations.
• DOS routines operate over the entire PC family.
• BIOS routines are machine specific.
• Each PC model has its own H/W configuration
and its own BIOS routines.
• The compatibility of PC clones with the IBM PC
depends on how well their BIOS routines match
those of the IBM PC
• The addresses of BIOS routines (interrupt
vectors) are placed in memory starting at
00000h.
4/13/2015
241 Computer Organization
41
Memory Organization
• 8086/8088 used 20-bit
memory addresses (physical
addresses go from 0 to 2^{n}
– 1)
• That allowed 1MB =
1,048,576 bytes of memory
• IBM PC’s allowed up to 640
K RAM for the operating
system and application
• 360 K was reserved for
system hardware (e.g. video
and hard drives) and ROM
4/13/2015
241 Computer Organization
42
Memory Organization
• Interrupt Vector Table: Lowest 1024 bytes.
- each entry of this table contains the segment:offset
address of an interrupt handler
- this is the routine invoked when an interrupt has
occurred (more later)
 Bios Data Area:
- serial and parallel port addresses, time and date, keyboard
buffer pointers …
 Software BIOS: Basic I/O routines loaded from IO.SYS.
 DOS Kernel, Device Drivers, Etc: Basic operating
systems routines from MSDOS.SYS.
4/13/2015
241 Computer Organization
43
Memory Organization
 Resident part of COMMAND.COM: The permanently
loaded code needed to interpret commands typed at the
DOS prompt.
 Available RAM for transient programs: Space
available for applications.
 Transient part of COMMAND.COM: Code from
COMMAND.COM that is loaded as needed. It may
disappear when applications are running.
 Video Graphics Buffer: Used by EGA and VGA for
graphics
4/13/2015
241 Computer Organization
44
Memory Organization
MDA Text Buffer: Storage for information displayed on a
Monochrome Display Adapter.
 CGA/EGA/VGA Text Buffer: Area for text.
 Reserved: Examples: Code for special cards such as SCSI
cards.
 ROM BIOS: Provided by machine manufacturer. Code
needed to boot and run the machine's hardware. It is
hardware dependent.
4/13/2015
241 Computer Organization
45
I/O Ports Addresses
• I/O devices are connected to the computer
through i/o circuits. Each of them contains
several registers called ports.
• I/O ports have addresses
I/O
addresses .
• 8086/8088 supports 64 KB of I/O ports.
Example: keyboard controller: 60h- 63h
4/13/2015
241 Computer Organization
46
Start-up operation
• When PC is powered on CS is set to
FFFFh & IP is set to 0000h.
PC
executes the instruction with the address
FFFF0h. This instruction transfers the
control to the BIOS routines.
4/13/2015
241 Computer Organization
47
Start-up operation
BIOS:
•
Tests the microprocessor (µp) , and the
system's RAM memory.
•
Looks for a master boot record to which to
turn over control of the computer; it checks
the floppy disk drive first, then the hard disk.
4/13/2015
241 Computer Organization
48
Start-up operation
• BIOS loads the boot program.
• Boot program loads the OS and
COMMAND.COM is given control
4/13/2015
241 Computer Organization
49
Download