Mikroprocessor & Antarmuka (SK2023) (2)

Report
EE-2623
Mikroprosesor & Antarmuka
Materi 2
Team Dosen
2007
Dasar Sistem Mikroprosesor
Mikroprosesor
Data Bus
Address Bus
Control Bus
Memory
I/O
Timing Diagram Read Cycle
Timing Diagram Write Cycle
Mikroprosesor i8088 & i8086
Data Bus untuk i8088 dan i8086
GND
A14
A13
A12
A11
A10
A9
A8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8088
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
VCC
A15
A16/S3
A17/S4
A18/S5
A19/S6
SS0
MN/MX
RD
HOLD
HLDA
WR
IO/M
DT/R
DEN
ALE
INTA
TEST
READY
RESET
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
Data
Bus
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8086
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
BHE/S7
MN/MX
RD
HOLD
HLDA
WR
M/IO
DT/R
DEN
ALE
INTA
TEST
READY
RESET
INTR: Interrupt Request
-Aktif pada saat level high
-Masukan
-Di monitor pada cycle clock
terakhir setiap instruksi
NMI: Nonmaskable interrupt
-Positif Edge triggered signal
-Masukan
-Tidak dapat di-masked
(enable/disable) secara s/w
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8086
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
BHE/S7
MN/MX
RD
HOLD
HLDA
WR
M/IO
DT/R
DEN
ALE
INTA
TEST
READY
RESET
Clock
- Mikroprosesor membutuhkan clock
untuk sinkronisasi semua aktifitasnya
- Maksimum 10 MHz
- Clok generator : i8284
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8086
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
BHE/S7
MN/MX
RD
HOLD
HLDA
WR
M/IO
DT/R
DEN
ALE
INTA
TEST
READY
RESET
Reset
•Menghentikan aktifitas mp saat itu
•masukan
•Aktif ‘high’
•Kondisi register di dalam
mikroprosesor setelah reset:
register
Contents
CS
FFFFH
DS
0000H
SS
0000H
ES
0000H
IP
0000H
FLAG
0000H
QUEUE
Kosong
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8086
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
BHE/S7
MN/MX
RD
HOLD
HLDA
WR
M/IO
DT/R
DEN
ALE
INTA
TEST
READY
RESET
Kondisi Reset / Bootup
• Q : Alamat (IO / Memori) berapa yang diakses oleh uP pada saat
•
•
•
•
•
•



pertama kali bootup (sesudah reset) ?
A : Memori
Q : Tahu dari mana yang diakses memori?
A : Register CS di isi FFFF
Q : Memangnya di peta I/O tidak ada segmen?
A : Tidak ada karena peta I/O hanya 64 kB
Q : Apa yang anda tahu tentang segmen? Ukuran? Jenis?
A : Ukuran segmen 64kB, Jenis 4 : Code, Data, Stack, Extra
Q : Alamat (IO / Memori) berapa yang diakses oleh uP pada saat
pertama kali bootup (sesudah reset) ?
A : Alamat Memori FFFF0 yang diakses oleh uP pada saat pertama kali
bootup (sesudah reset)
READY:
•Masukan
•Aktif ‘high’
•Digunakan untuk memasukkan
waktu tunggu (wait state), untuk
akses memori atau I/O yang
lambat.
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8086
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
BHE/S7
MN/MX
RD
HOLD
HLDA
WR
M/IO
DT/R
DEN
ALE
INTA
TEST
READY
RESET
• Fungsi pin 24 s/d 31 dari 8088 dan 8086 berubah sesuai
mode yang digunakan, max atau min
Mode Min
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8086
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
BHE/S7
MN/MX
RD
HOLD
HLDA
WR
M/IO
DT/R
DEN
ALE
INTA
TEST
READY
RESET
Logic 1
Mode Max
Logic 0
RQ / GT0
RQ / GT1
LOCK
S2
S1
S0
QS0
QS1
* Pin-pin diatas digunakan untuk sinyal kontrol memori dan I/O
Diagram Internal & Register
Diagram Internal i8088
BIU
C-BUS
4
3
2
1
INSTRUCTION
STREAM
BYTE
QUEUE
ES
CS
SS
DS
IP
CONTROL
SYSTEM
A- BUS
EU
AH
BH
CH
DH
AL
BL
CL
DL
SP
BP
SI
DI
ALU
OPERAND
FLAGS
Q&A uP 8088
 Q : kenapa 8088 dibagi menjadi BIU dan EU?
 A : sesuai fungsi, yaitu BIU menghitung alamat, EU
menghitung data
 Q : apa bedanya ALU di BIU dengan ALU di EU?
 A : ALU di BIU menggabungkan 16 bit offset dengan 16 bit
segmen menjadi 20 bit alamat fisik, sedangkan ALU di EU
menghitung data 8/16 bit dengan data 8/16 bit menjadi
8/16/32 bit
Fungsi BIU
• Sebagai antarmuka (pengalamatan) dengan
peripheral di luar mikroprosesor.
• Bertanggung jawab terhadap semua operasi
bus eksternal, seperti :
– Instruction fetch
– Operasi baca-tulis memori atau I/O
– Antrian instruksi dan perhitungan alamat (PA)
Fungsi EU (Execution Unit)
• Bertanggung jawab terhadap decoding dan
executing instruksi
• Mengambil instruksi dari Queue
• Transfer data dari dan ke general purpose
Registers
• Check & update flag .
• Perhitungan alamat operand (EA)
• Memberi perintah ke BUI untuk operasi memori
atau I/O
Register di dalam 8088/8086
Katagori
Bit Nama Register
general
16
8
AX,BX,CX,DX
AH,AL,BH,BL,CH,CL,DH,DL
pointer
16
SP,BP
index
16
SI,DI
segment
16
CS,DS,SS,ES
instruction
16
IP
flag
16
FR
Catatan : register general 16 bit tidak bisa digunakan
bersamaan dengan register general 8 bit, contoh : mov ax,bl
tidak dilayani
Akses Memori
 Sebelum 8088, uP mepunyai memori sekitar 64 kB
 Digunakan untuk penyimpan : os, program aplikasi dan data
Peta memori dan I/O 8088/8086
00000
Code segment
64 k byte
IP
CS
DS
SS
ES
AH
BH
CH
DH
0000
Data Segment
64 K Byte
Stack segment
64 k Byte
AL
BL
CL
DL
SP
BP
SI
DI
External Memory
Address Space
Limit PC
9FFFF
FFFFF
Input / output
Address space
Extra Segment
64 k Byte
FFFF
Peta Memori
FFFFF
?
Data
Program
Aplikasi
Program
00200
Operating System
BIOS
8 bit
00000
Mengatur Memori
 Aplikasi : 48 kB
 Sisakan dulu bagian atas memori untuk data
 10 kB data
 38kB <= program
 memori untuk data adalah sisa
 Ukuran memori data bisa sangat kecil
Solusi Intel
 Segmentasi
 Membagi memori menjadi blok-blok 64 kB secara dinamis
 Dipisahkan blok memori menjadi blok fungsi
 64 kB untuk program  Code Segment
 64 kB untuk data  Data Segment
 64 kB untuk stack  Stack Segment
 64 kB untuk tambahan data (option)  Extra Segment
Aplikasi 48 kB :
38 kB program + 10 kB data
 Tanpa segment
 Alamat awal program 200h
 Alamat akhir program 99FFh
Tugas programmer
 Alamat awal data 9A00h
 Alamat akhir data C1FFh
 Contoh : ambil data ke-100
 acc
mov acc,9A64
 Dengan segmen
 Alamat awal program 0000h di
Code Segment
 Alamat akhir 9800h di Code
Segment
Dilakukan oleh mesin
 Alamat awal data 0000h di Data
Segment
 Alamat akhir data 2800h
 Contoh : ambil data ke-100
 acc
 Mov acc,0064
64 KB
64 KB
SS
64 KB
ES
64 KB
ES
64 KB
DS
64 KB
64 KB
64 KB
SS
64 KB
64 KB
CS
64 KB
64 KB
64 KB
DS
64 KB
CS
OS
OS
BIOS
BIOS
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
Statis
vs Dinamis
Segment
 Karena tersedia lebih dari 4 segment, maka bisa dibuat lebih
dari 1 kelompok segment
  multi tasking
 Pindah program (task) hanya mengubah segment
Setiap program bisa dimulai dari alamat 0000
Program1
Program2
0000
Program3
0000
0000
Contoh :
DS
FFFFF
0064
X
2070F  DS : XXXX
DS
0700
20700  DS : 2000
DS
0100
10100  DS : 1000
00000
Perhitungan alamat fisik (Physical Address)
•Segmen untuk Program :
Format : CS : IP
IP=95F3
CS=2500
Adder
physical address A0-A19=2E5F3
0
Geser kiri CS satu digit
•Segmen untuk Data :
Format : DS : EA (Effective Address)
EA=95F3
DS=2500
Adder
0
Geser kiri DS satu digit
physical address A0-A19=2E5F3
Perhitungan alamat fisik (Physical Address)
Cont’d
•Segmen untuk Stack :
Format : SS : SP
SP=95F3
SS=2500
Adder
0
Geser kiri SS satu digit
Note :
• Physical Address
• Logical Adress
physical address A0-A19=2E5F3
Ciri alamat segment
 Tidak bisa diletakkan di alamat awal selain xxxx0
 Alamat segmen terakhir pasti F000
 Contoh : CS= F100 tidak boleh
• Min CS:IP  F100:0000 alamat fisik F1000
• Maks CS:IP  F100:FFFF alamat fisik 100FFF diluar
batas maksimum FFFFF
Contoh lain
 CS:1000, offset : FFFF  fisik : 1FFFF
 Fisik:2FFFF, ES:2100  offset:EFFF
H/W Segment
BIU
C-BUS


Program
 IP  offset
 CS  segment
Data



Offset sesuai mode
pengalamatannya
DS  segment
Stack


SP  offset
SS  segment
4
3
2
1
INSTRUCTION
STREAM
BYTE
QUEUE
ES
CS
SS
DS
IP
CONTROL
SYSTEM
A- BUS
EU
AH
BH
CH
DH
AL
BL
CL
DL
SP
BP
SI
DI
ALU
OPERAND
FLAGS
H/W alamat
BIU
C-BUS
 Alamat program
 IP  offset
 CS  segment
 Fisik:IP + CS(digeser)
 Contoh
 IP:2345
4
3
2
1
INSTRUCTION
STREAM
BYTE
QUEUE
ES
CS
SS
DS
IP
CONTROL
SYSTEM
A- BUS
EU
AH
BH
CH
DH
AL
BL
CL
DL
SP
BP
SI
DI
ALU
OPERAND
FLAGS
Perintah PUSH
– Asumsi : SP=1236,AX=24B6,DI=85C2,DX=5F93
Perhatikan isi stack setiap dijalankan perintah sbb:
PUSH AX
PUSH DI
PUSH DX
start
PUSH AX
PUSH DI
PUSH DX
SS:1235
24
24
24
SS:1234
B6
B6
B6
SS:1233
85
85
SS:1232
C2
C2
SS:1236
SS:1231
5F
SS:1230
93
Perintah POP
– Asumsi : SP=1230,
Perhatikan isi stack setiap dijalankan perintah berikut :
POP AX
POP DX
POP BX
START
POP AX
POP DX
SS:1236
SS:1235
24
24
24
SS:1234
B6
B6
B6
SS:1233
85
85
SS:1232
C2
SS:1231
C2
5F
SS:1230
93
POP BX

similar documents