Mikroprosesor Bab 3: Arsitektur Mikroprosesor INTEL 8086 Generasi Awal Prosesor PENTIUM
Arsitektur Mikroprosesor
1
Arsitektur Mikroprosesor INTEL 8086 20 bit
16 bit
Arsitektur Mikroprosesor
Register Antrian (FIFO)
2
Arsitektur Mikroprosesor INTEL 8086 • Prosesor 8086 terbagi menjadi 2 bagian fungsional yang independen, yakni BIU (bus interface unit) dan EU (execution unit). • BIU bertugas mengirim kode-kode alamat keluar, mengambil instruksi dari memori, dan membaca data dari port dan memori. BIU menangani semua trnasfer data dan alamat pada bus untuk membantu EU. • EU meminta BIU untuk mengambilkan instruksi dan data dari memori, mendekode dan melaksanakan instruksi Arsitektur Mikroprosesor
3
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU) • EU mengandung rangkaian-rangkaian kontrol yang berfungsi mengarahkan operasi-operasi internal. • Dekoder pada EU menerjemahkan instruksiinstruksi yang telah diambil dari memori ke dalam urutan aksi. • EU memilki ALU 16-bit dan dapat melakukan penjumlahan, pengurangan, AND, OR, XOR, increment, decrement, complement, atau shift bilangan biner. Arsitektur Mikroprosesor
4
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU) : FLAG REGISTER • 8086 memiliki register bendera dengan panjang 16-bit. Dari 16-bit itu terdapat 9 bendera yang aktif. • Dari 9 bendera yang aktif, 6 bendera di antaranya (bendera kondisi) digunakan untuk menunjukkan kondisi-kondisi yang dihasilkan oleh pelaksanaan instruksi yakni bendera CF(carry flag), PF(parity flag), AF(auxiliary carry flag), ZF(zero flag), SF(sign flag), dan OF(overflow flag). Arsitektur Mikroprosesor
5
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER • Sedangkan 3 bendera lainnya (bendera kontrol) digunakan untuk mengendalikan beberapa operasi prosesor. Bendera-bendera kontrol ini berbeda dengan 6 bendera kondisi dalam hal cara set dan reset-nya. Keenam bendera kondisi diset dan direset oleh EU, berdasarkan hasil operasi-operasi aritmetika atau logika, sedangkan 3 bendera kontrol diset dan direset oleh instruksi-instruksi khusus yang ada pada program. Bendera itu adalah TF (trap flag), IF (interrupt flag), dan DF (direction flag). Arsitektur Mikroprosesor
6
Arsitektur Mikroprosesor INTEL 8086 • Lokasi bit setiap bendera dalam register bendera:
Arsitektur Mikroprosesor
7
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER
• Bendera carry akan diset (CF=1), jika operasi ALU menghasilkan carry. Contoh: 1 ---> carry 1010 1000 1000 1001 + 0011 0001 Penjumlahan bit ke-7 menghasilkan carry sehingga CF=1
isi Akumulator isi TMP isi Akumulator setelah perintah penjumlahan dilaksanakan
Arsitektur Mikroprosesor
8
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER
• Bendera paritas (parity flag) akan diset (PF=1), jika pelaksanaan perintah oleh ALU menghasilkan jumlah bit 1 genap dan reset (PF=0) jika jumlah bit 1 ganjil. Contoh: Output ALU=01100011, maka PF= 1 Output ALU=00101010, maka PF= 0
Arsitektur Mikroprosesor
9
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER
• Bendera AF (auxiliary carry flag) akan diset (AF=1), jika dalam penjumlahan, bit ke 3 menghasilkan carry. Contoh: Bit ke-7
Bit ke-3
Bit ke-0
0011 0010 0000 0101 + 0011 0111 Penjumlahan bit ke-3 tidak menghasilkan carry sehingga AF=0
isi Akumulator isi TMP isi Akumulator setelah perintah penjumlahan dilaksanakan
Arsitektur Mikroprosesor
10
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER
• Contoh yang lain 0010 1000 0000 1001 + 0011 0001 Penjumlahan bit ke-3 menghasilkan carry sehingga AF=1
isi Akumulator isi TMP isi Akumulator setelah perintah penjumlahan dilaksanakan
Arsitektur Mikroprosesor
11
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER • Bendera zero akan diset (ZF=1), jika operasi ALU memberikan hasil 0. • Bendera sign akan diset (SF=1), jika pelaksanaan perintah oleh ALU menghasilkan bilangan negatif. • Bendera OF(overflow flag) akan set jika terjadi overflow yakni jumlah bit hasil operasi lebih besar dari lebar akumulator. Contoh: jika suatu operasi menghasilkan bilangan dengan panjang 17-bit, sedangkan akumulator 8086 hanya 16-bit, maka bendera OF akan set.
Arsitektur Mikroprosesor
12
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): FLAG REGISTER • Bendera TF (trap flag) digunakan pada mode operasi langkah tunggal (single step atau trace). Jika bendera ini set, maka pelaksanaan instruksi akan dilakukan step demi step. • Bendera IF digunakan untuk mengijinkan interupsi dari program. • Bendera DF digunakan pada operasi string.
Arsitektur Mikroprosesor
13
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): REGISTER SERBAGUNA
(GENERAL-PURPOSE REGISTERS) • 8086 memiliki 8 buah register serbaguna yakni: AH, AL, BH, BL, CH, CL, DH, DL. Khusus untuk AL dinamakan pula AKUMULATOR. • Jika register-register tersebut akan digunakan sebagai register 16-bit, maka pasangan AH dan AL membentuk AX, BH dan BL membentuk BX, CH dan CL membentuk CX, serta DH dan DL membentuk DX 16-bit.d Arsitektur Mikroprosesor
14
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): REGISTER SERBAGUNA
(GENERAL-PURPOSE REGISTERS) 8-bit
8-bit
AH
AL
BH
BL
CH
CL
DH
DL AX, 16-bit BX, 16-bit CX, 16-bit DX, 16-bit Arsitektur Mikroprosesor
15
Arsitektur Mikroprosesor INTEL 8086 EXECUTION UNIT (EU): REGISTER SERBAGUNA (GENERAL-PURPOSE REGISTERS) • AX: merupakan akumulator, sering digunakan untuk menyimpan hasil sementara setelah operasi aritmetika dan logika • BX: sering digunakan sebagai register base untuk menyimpan address base data yang terletak di dalam memori dan juga address base tabel data. • CX: dapat digunakan sebagai register count. • DX: dapat digunakan sebagai register data. Arsitektur Mikroprosesor
16
Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Antrian • Pada saat EU mendekode atau melaksanakan suatu instruksi, ia tidak memerlukan menggunakan bus sehingga dapat digunakan oleh BIU untuk mengambil 6 byte instruksi sebagai instruksi berikutnya yang akan dilaksanakan. • Instruksi-instruksi tersebut dinamakan prefetched instruction dan oleh BIU disimpan dalam register FIFO (first-in first-out) yang disebut juga register antrian. Arsitektur Mikroprosesor
17
Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Antrian • Ketika EU siap melaksanakan instruksi berikutnya, ia dengan mudah membaca instruksi-instruksi dari register antrian dalam BIU. • Jadi, ketika EU sedang melaksanakan suatu instruksi, bus dapat digunakan oleh BIU untuk menulis dan membaca memori serta mengambi instruksi berikutnya.
Arsitektur Mikroprosesor
18
Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Antrian • Teknologi yang memungkinkan pengambilan instruksi berikutnya sambil melaksanakan instruksi yang ada dinamakan pipelining. Berikut ini adalah contoh perbedaan prosesor 8085 tanpa pipelining dan 8086 dengan pipelining dalam melakukan pengambilan instruksi, pelaksanaan instruksi, operasi read dan operasi write. Nampak bahwa pipelining memberikan tingkat penggunaan bus yang lebih efektif. Arsitektur Mikroprosesor
19
Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Antrian 8085
8086
Arsitektur Mikroprosesor
20
Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Segmen • 8086 mampu mengalamati 220 lokasi memori, sedangkan panjang register IP yang dimilikinya hanya 16-bit. • Untuk memperoleh 20-bit sinyal alamat, 8086 menggunakan bantuan register segmen. Gabungan antara register segmen 16-bit dan IP 16-bit akan menghasilkan 20-bit sinyal alamat.
Arsitektur Mikroprosesor
21
Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Segmen • 8086 memilki 4 buah register segmen yakni CS (code segment), SS (stack segment), ES (extra segment), dan DS (data segment). • Jika suatu register segmen berisi kode misalnya CS berisi 348A, maka CS dianggap memiliki alamat awal 348A0. BIU secara otomatis akan menambahkan angka 0 di belakang isi segmen. Setiap segmen menempati 64K byte memori, dan dapat ditempatkan di mana saja di dalam ruang alamat 1-M byte. Arsitektur Mikroprosesor
22
Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Segmen • Contoh penempatan alamat segmen pada memori 8086.
Arsitektur Mikroprosesor
23
Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Instrustion Pointer (IP) • IP berisi instruksi berikutnya yang akan diambil. Alamat fisik yang dihasilkan BIU diperoleh dengan cara seperti di samping. Arsitektur Mikroprosesor
24
Arsitektur Mikroprosesor INTEL 8086 Bus Interface Unit (BIU) Register Segmen • Bagian alamat awal segmen yang tersimpan di dalam register segmen dinamakan segment base, dalam contoh 348A adalah segment base yang tersimpan dalam CS. • Isi IP merupakan offset atau jarak (displacement) antara alamat awal segmen dengan alamat fisik yang dihasilkan. Pada contoh, IP=4214 berarti merupakan jarak antara348A0 (alamat awal segmen) s.d. 38AB4 (alamat fisik). Arsitektur Mikroprosesor
25
Arsitektur Mikroprosesor INTEL 8086 • Format penulisan alamat fisik: segment base : offset form Contoh: Jika CS berisi 348A dan IP=4214, akan menghasilkan alamat fisik 38AB4. Alamat fisik tersebut dapat direpresentasikan/disajikan atau ditulis dalam bentuk: CS:IP atau 348A:4214 atau CS:IP=38AB4 Berapa alamat fisik yang direpresentasikan oleh 4370:561E, dan 7A32:0028 Arsitektur Mikroprosesor
26
Arsitektur Mikroprosesor INTEL 8086 Register Stack Pointer(SP) • Stack adalah bagian memori yang digunakan untuk menyimpan alamat dan data selama subprogram dilaksanakan. Jika sub program selesai dilaksanakan, isi stack dikembalikan ke lokasi semula, yakni IP dan akumulator. • SP merupakan register yang berisi offset 16-bit yang menghasilkan alamat fisik teratas dari memori stack. Untuk membangkitkan alamat fisik 20-bit, SP memerlukan bantuan register SS (stack segment). Arsitektur Mikroprosesor
27
Arsitektur Mikroprosesor INTEL 8086 Register Stack Pointer(SP) • Contoh: jika isi SS=5000 dan isi SP=FFE0, maka akan menghasilkan alamat fisik: SS
5 0 0 0 0 ← hardwired zero
SP + F F E 0 Alamat ------> 5 F F E 0 fisik • Alamat fisik tersebut dapat direpresentasikan dalam 5FFE0 (single number) atau dalam bentuk SS:SP yakni 5000:FFE0. Arsitektur Mikroprosesor
28
Arsitektur Mikroprosesor INTEL 8086 Register Index dan Pointer • Kecuali SP, EU pada 8086 juga memiliki register base pointer (BP) 16-bit, dan juga register index SI (source index) 16-bit, dan DI (destination index) 16-bit. • Walaupun BP, SI, dan DI dapat digunakan sebagai penyimpan sementara dari data seperti halnya pada register serbaguna, namun penggunaan utama mereka adalah menyediakan offset 16-bit dari data untuk suatu segmen base. Contoh: Alamat fisik data pada memori akan dibangkitkan dengan menambah isi SI dengan alamat segmen base yang direpresentasikan oleh bilangan 16-bit dalam register DS. Arsitektur Mikroprosesor
29