Upload
barny
View
108
Download
1
Embed Size (px)
DESCRIPTION
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. GND. 1. 40. VCC. GND. 1. 40. VCC. - PowerPoint PPT Presentation
Citation preview
EE-2623Mikroprosesor & Antarmuka
Materi 2Team Dosen
2007
Dasar Sistem Mikroprosesor
Mikroprosesor
Memory I/O
Data BusAddress BusControl Bus
Timing Diagram Read Cycle
Timing Diagram Write Cycle
Mikroprosesor i8088 & i8086
GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND
VCCAD15A16/S3A17/S4A18/S5A19/S6
HOLDHLDA
ALE
READYRESET
BHE/S7MN/MXRD
WRM/IODT/RDEN
INTATEST
1234567891011121314151617181920
3130292827262524232221
4039383736353433328086
Data Bus
GNDA14A13A12A11A10 A9 A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND
VCCA15A16/S3A17/S4A18/S5A19/S6
HOLDHLDA
ALE
READYRESET
SS0MN/MXRD
WRIO/MDT/RDEN
INTATEST
1234567891011121314151617181920
3130292827262524232221
4039383736353433328088
Data Bus untuk i8088 dan i8086
GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND
VCCAD15A16/S3A17/S4A18/S5A19/S6
HOLDHLDA
ALE
READYRESET
BHE/S7MN/MXRD
WRM/IODT/RDEN
INTATEST
1234567891011121314151617181920
3130292827262524232221
4039383736353433328086
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
GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND
VCCAD15A16/S3A17/S4A18/S5A19/S6
HOLDHLDA
ALE
READYRESET
BHE/S7MN/MXRD
WRM/IODT/RDEN
INTATEST
1234567891011121314151617181920
3130292827262524232221
4039383736353433328086
Clock -Mikroprosesor membutuhkan clock
untuk sinkronisasi semua aktifitasnya -Maksimum 10 MHz
-Clok generator : i8284
GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND
VCCAD15A16/S3A17/S4A18/S5A19/S6
HOLDHLDA
ALE
READYRESET
BHE/S7MN/MXRD
WRM/IODT/RDEN
INTATEST
1234567891011121314151617181920
3130292827262524232221
4039383736353433328086
Reset• Menghentikan aktifitas mp saat itu• masukan• Aktif ‘high’• Kondisi register di dalam
mikroprosesor setelah reset:
Contents registerFFFFH CS0000H DS0000H SS0000H ES0000H IP0000H FLAGKosong QUEUE
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, ExtraQ : 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)
GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND
VCCAD15A16/S3A17/S4A18/S5A19/S6
HOLDHLDA
ALE
READYRESET
BHE/S7MN/MXRD
WRM/IODT/RDEN
INTATEST
1234567891011121314151617181920
3130292827262524232221
4039383736353433328086
READY:• Masukan • Aktif ‘high’• Digunakan untuk
memasukkan waktu tunggu (wait state), untuk akses memori atau I/O yang lambat.
GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND
VCCAD15A16/S3A17/S4A18/S5A19/S6
HOLDHLDA
ALE
READYRESET
BHE/S7MN/MXRD
WRM/IODT/RDEN
INTATEST
1234567891011121314151617181920
3130292827262524232221
4039383736353433328086
Mode Min
Logic 1
Mode Max
Logic 0
RQ / GT0RQ / GT1LOCK
S2S1S0
QS0QS1
• Fungsi pin 24 s/d 31 dari 8088 dan 8086 berubah sesuai mode yang digunakan, max atau min
* Pin-pin diatas digunakan untuk sinyal kontrol memori dan I/O
Diagram Internal & Register
ESCSSSDS
4321
CONTROLSYSTEM
AH ALBH BLCH CLDH DL
SPBPSIDI
OPERANDFLAGS
C-BUS
IP
ALU
INSTRUCTIONSTREAM
BYTEQUEUE
A- BUS
BIU
EU
Diagram Internal i8088
Q&A uP 8088Q : kenapa 8088 dibagi menjadi BIU dan
EU?A : sesuai fungsi, yaitu BIU menghitung
alamat, EU menghitung dataQ : 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/8086Nama Register Bit KatagoriAX,BX,CX,DX 16 generalAH,AL,BH,BL,CH,CL,DH,DL 8SP,BP 16 pointerSI,DI 16 indexCS,DS,SS,ES 16 segmentIP 16 instructionFR 16 flag
Catatan : register general 16 bit tidak bisa digunakan bersamaan dengan register general 8 bit, contoh : mov ax,bl tidak dilayani
Akses MemoriSebelum 8088, uP mepunyai memori
sekitar 64 kBDigunakan untuk penyimpan : os, program
aplikasi dan data
Peta memori dan I/O 8088/8086External Memory Address Space
Code segment64 k byte
Data Segment64 K Byte
Stack segment64 k Byte
Extra Segment64 k Byte
IP
SPBPSIDI
CSDSSSES
AH ALBHCHDH
BLCLDL
Input / output Address space
00000
FFFFF
0000
FFFF
Limit PC9FFFF
BIOS
Peta Memori
8 bit
00000
FFFFF
Operating System
ProgramAplikasi
Program
Data
00200
?
Mengatur MemoriAplikasi : 48 kB
Sisakan dulu bagian atas memori untuk data10 kB data38kB <= program
memori untuk data adalah sisaUkuran memori data bisa sangat kecil
Solusi IntelSegmentasi
Membagi memori menjadi blok-blok 64 kB secara dinamis
Dipisahkan blok memori menjadi blok fungsi64 kB untuk program Code Segment64 kB untuk data Data Segment64 kB untuk stack Stack Segment64 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
9A00hAlamat akhir data
C1FFhContoh : ambil data
ke-100 accmov acc,9A64
Dengan segmenAlamat awal program
0000h di Code Segment
Alamat akhir 9800h di Code Segment
Dilakukan oleh mesinAlamat awal data
0000h di Data Segment
Alamat akhir data 2800h
Contoh : ambil data ke-100 acc
Mov acc,0064
BIOS
Statis vs Dinamis
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
OS
BIOS
DS
SS
CS
ES
OS
CS
DS
SS
ES
SegmentKarena tersedia lebih dari 4 segment, maka
bisa dibuat lebih dari 1 kelompok segment multi taskingPindah program (task) hanya mengubah
segmentSetiap program bisa dimulai dari alamat 0000
Program1
0000
Program2
0000
Program3
0000
Contoh :
00000
FFFFF
DS
10100 DS : 10000100
DS
0700 20700 DS : 2000
DS
0064 2070F DS : XXXXX
Perhitungan alamat fisik (Physical Address)
• Segmen untuk Program :
Format : CS : IP
physical address A0-A19=2E5F3IP=95F3
CS=2500 0Adder
Geser kiri CS satu digit
• Segmen untuk Data :
Format : DS : EA (Effective Address)
physical address A0-A19=2E5F3EA=95F3
DS=2500 0Adder
Geser kiri DS satu digit
Perhitungan alamat fisik (Physical Address) Cont’d
• Segmen untuk Stack :
Format : SS : SP
physical address A0-A19=2E5F3SP=95F3
SS=2500 0Adder
Geser kiri SS satu digit
Note :• Physical Address• Logical Adress
Ciri alamat segmentTidak bisa diletakkan di alamat awal selain
xxxx0Alamat 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 lainCS:1000, offset : FFFF fisik : 1FFFFFisik:2FFFF, ES:2100 offset:EFFF
H/W Segment
Program IP offset CS segment
Data Offset sesuai mode
pengalamatannya DS segment
Stack SP offset SS segment
ESCSSSDS
4321
CONTROL SYSTEM
AH ALBH BLCH CLDH DL
SPBPSIDI
OPERANDFLAGS
C-BUS
IP
ALU
INSTRUCTIONSTREAM
BYTEQUEUE
A- BUS
BIU
EU
H/W alamat
Alamat programIP offsetCS segmentFisik:IP + CS(digeser)Contoh
IP:2345
ESCSSSDS
4321
CONTROL SYSTEM
AH ALBH BLCH CLDH DL
SPBPSIDI
OPERANDFLAGS
C-BUS
IP
ALU
INSTRUCTIONSTREAM
BYTEQUEUE
A- BUS
BIU
EU
Perintah PUSH
– Asumsi : SP=1236,AX=24B6,DI=85C2,DX=5F93Perhatikan isi stack setiap dijalankan perintah sbb:PUSH AX PUSH DI PUSH DX
PUSH DX PUSH DI PUSH AX start
SS:123624 24 24 SS:1235B6 B6 B6 SS:123485 85 SS:1233C2 C2 SS:12325F SS:123193 SS:1230
Perintah POP
– Asumsi : SP=1230,Perhatikan isi stack setiap dijalankan perintah berikut :POP AX POP DX POP BX
POP BX POP DX POP AX START
SS:123624 24 24 SS:1235B6 B6 B6 SS:1234
85 85 SS:1233C2 C2 SS:1232
5F SS:123193 SS:1230