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