Top Banner
MAKALAH MIKROPROSESOR INTEL “MIKROPROSESOR DAN ARSITEKTURNYA” OLEH: ARWINI REZKY (03320110019) SAMIRUDDIN (03320110013) MULYONO (0332010 FAKULTAS TEKNIK JURUSAN ELEKTRO UNIVERSITAS MUSLIM INDONESIA
33

BAB II MIKROPROSESOR

Oct 21, 2015

Download

Documents

zaogamer
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BAB II MIKROPROSESOR

MAKALAH MIKROPROSESOR INTEL

“MIKROPROSESOR DAN ARSITEKTURNYA”

OLEH:

ARWINI REZKY (03320110019)

SAMIRUDDIN (03320110013)

MULYONO (0332010

FAKULTAS TEKNIK JURUSAN ELEKTRO

UNIVERSITAS MUSLIM INDONESIA

MAKASSAR

2013

Page 2: BAB II MIKROPROSESOR

KATA PENGANTAR

Puji syukur penulis panjatkan kehadirat Allah SWT yang telah melimpahkan rahmat

dan hidayah-Nya sehingga makalah dengan judul ”Mikroprosesor Dan Arsitekturnya” ini

dapat terselesaikan.

Keberadaan makalah ini dimaksudkan untuk memudahkan dalam proses pembelajaran

dan sekaligus bertujuan untuk memberikan pengetahuan tentang salah satu produksi energi

termal dengan mengangkat satu permasalahan disertai dengan solusi penyelesaiannya.

Penulis menyadari bahwa dalam penyusunan makalah ini terdapat banyak

kekurangan. Oleh karena itu, saran dan pendapat yang bersifat membangun dari berbagai

pihak, penulis harapkan demi perbaikan dan penyempurnaan makalah selanjutnya.

Dalam penyusunan makalah ini tentunya tidak lepas dari bantuan dari beberapa pihak.

Oleh karena itu, penulis mengucapkan banyak terima kasih atas peran dan partisipasinya

dalam penyusunan makalah ini.

Semoga keberadaan makalah ini dapat bermanfaat dan berdaya guna dalam proses

belajar mengajar selanjutnya.

Makassar, Oktober 2013

Penulis

Page 3: BAB II MIKROPROSESOR

BAB I

PENDAHULUAN

Mikroprosessor sebagai sebuah peranti yang dapat diprogram, dengan pertama-tama

melihat pada model program internalnya dan kemudian pada bagaimana mikroprosessor

mengalamatkan ruang memorinya. Arsitektur dari seluruh kerabat mikroprosessor Intel

diterangkan secara simultan, demikian pula cara yang digunakan kerabat mikroprosessor Intel

dalam mengalamatkan sistem memori.

Mode-mode pengalamatan pada keluarga mikroprosessor ini digambarkan untuk

kedua mode operasi, yaitu real dan terlindung (protected). Memori mode real ada pada lokasi

00000H-FFFFFH, 1M byte pertama dari sistem memori, dan ada pada semua versi

mikroprosessor. Memori mode terlindung ada pada setiap lokasi didalam seluruh sistem

memori, tetapi hanya tersedia pada mikroprosessor mulai versi 80286 sampai Pentium II, dan

tidak ada pada mikroprosessor 8086 atau 8088. Besarnya memori mode terlindung pada versi

80286 adalah 16MB; untuk 80386-Pentium adalah 4GB; dan untuk Pentium Pro-Pentium II,

bisa 4GB atau 64GB.

TUJUAN BAB

Dengan menyelesaikan bab ini, diharapkan mampu :

1. Menguraiakan fungsi dan kegunaan dari setiap register terlihat-program (program-visible)

pada mikroprosessor 8086-80486 dan Pentium-Pentium II.

2. Memperinci register flag dan kegunaan dari setiap bit flag.

3. Menguraikan bagaimana memori diakses dengan menggunakan teknik pengalamatan

memori mode real.

4. Menguraikan bagaimana memori diakses dengan menggunakan teknik pengalamatan

memori mode terlindung.

5. Menguraikan register-register tak-terlihat-program (program-invisible) yang ada dalam

mikroprosessor 80286, 80386, 80486, Pentium, Pentium Pro, dan Pentium II.

6. Memperinci operasi dari mekanisme paging-memori.

Page 4: BAB II MIKROPROSESOR

BAB II

PEMBAHASAN

A. ARSITEKTUR INTERNAL MIKROPROSESOR

Konfigurasi internal mikroprosessor harus diketahui sebelum kita membuat

sebuah program. Pada sub bab ini secara rinci diperlihatkan arsitektur internal terlihat

program dari mikroprosessor 8086-80486 dan Pentium-Pentium II. Juga dijelaskan

dengan rinci mengenai fungsi dan maksud setiap register-register internal.

Model Pemrograman

Model pemrograman 8086 sampai Pentium II termasuk visibel program (terlihat

program) karena register-registernya digunakan selama pemrograman aplikasi dan

ditentukan oleh instruksi. Register lainnya merupakan invisibel program (tak terlihat-

program) karena register-register itu tidak mampu dialamati selama pemrograman

aplikasi, namun dapat digunakan tak langsung selama pemrograman sistem. Hanya

mikrorosessor 80286 ke atas yang berisi register-register invisibel program yang

digunakan untuk mengontrol dan mengoperasikan sistem memori terlindung.

Model pemrograman berisi register-register 8-, 16-, dan 32 bit. Register-register

8-bit adalah AH, AL, BH, BL, CH, CL, DH, DL dan dirujuk pada saat satu instruksi

dibuat menggunakan perancangan 2-huruf. Sebagai contoh, instruksi ADD AL, AH

menambah isi 8-bit isi register AH pada isi register AL (hanya isi register AL yang

berubah karena instruksi ini). Register-register 16 bit adalah AX, BX, CX, DX, SP, BP,

DI, SI, IP, FLAGS, CS, DS, ES, SS, FS, dan GS. Register-register ini juga dirujuk

dengan perancangan dua huruf. Sebagai contoh, instruksi ADD DX, CX menambah isi

register 16-bit CX pada isi register DX (hanya isi register DX yang berubah karena

instruksi ini). Register-register extended 32-bit berlabel EAX, EBX, ECX, EDX, ESP,

EBP, EDI, ESI, EIP, dan EFLAGS. Register extended 32-bit dan register GS dan FS

16-bit hanya terdapat pada mikroprosessor 80386 ke atas. Register-register ini dirujuk

oleh FS dan GS pada dua register 16-bit baru, dan dengan perancangan tiga huruf pada

register-register 32-bit. Sebagai contoh, instruksi ADD ECX, EBX menambah isi

register EBX 32-bit pada isi register ECX (hanya isi register ECX yang berubah karena

instruksi ini).

Page 5: BAB II MIKROPROSESOR

Ada beberapa register yang tergolong general purpose (serba guna) atau

multipurpose (multiguna), sedangkan yang lain mempunyai kegunaan yang khusus.

Yang termasuk dalam register-register multiguna antara lain EAX, EBX, ECX, EDX,

EBP, EDI, dan ESI. Register-register tersebut mampu menyimpan data berbagai ukuran

(byte, word, atau doubleword) dan digunakan hampir untuk semua tujuan, seperti

tertulis diprogram.

Register-register Multiguna

EAX (akumulator)

EAX dirujuk sebagai register 32-bit (EAX), sebagai register 16-bit (AX), atau 2

register 8-bit (AH dan AL). Akumulator digunakan untuk instruksi-instruksi

perkalian, pembagian, dan beberapa instruksi penyesuaian. Dalam mikroprosessor

80386 ke atas, register EAX juga dapat menyimpan alamat offset sebuah lokasi

dalam sistem memori.

EBX (base index)

EBX dapat dialamati sebagai EBX, BX, BH, BL. Register BX dapat menyimpan

alamat offset sebuah lokasi memori dalam sistem memori semua versi

mikroprosessor. Dalam mikroprosessor 80386 ke atas, EBX juga dapat

mengalamati data memori.

ECX (count)

ECX merupakan register serbaguna yang juga dapat digunakan untuk instruksi

perhitungan. Dalam mikroprosessor 80386 ke atas, register ECX dapat juga

menyimpan alamat offset data memori. Instruksi-instruksi yang menggunakan

perhitungan merupakan instruksi string yang diulang (REP/REPE/REPNE); dan

instruksi pergeseran, perputaran, dan instruksi LOOP/LOOPD. Instruksi

pergeseran dan perputaran menggunakan CL, instruksi string berulang memakai

CX, dan instruksi LOOP/LOOPD menggunakan CX atau ECX.

EDX (data)

EDX merupakan register serbaguna yang dapat digunakan untuk menyimpan hasil

perkalian dan menyimpan sisa dalam pembagian. Dalam mikroprosessor 80386 ke

atas, register ini juga mampu mengalamati data memori.

Page 6: BAB II MIKROPROSESOR

EBP (base pointer)

EBP menunjuk sebuah lokasi memori yang dalam semua versi mikroprosessor

digunakan untuk mentransfer data memori. Register ini dialamati sebagai EBP

dan BP.

EDI (destination index)

EDI sering mengalamati data tujuan string untuk beberapa instruksi string. EDI

juga berfungsi sebagai register serbaguna 32-bit (EDI) atau 16-bit (DI).

ESI (source index)

ESI digunakan sebagai ESI dan SI. Register indeks sumber sering mengalamati

sumber data string untuk beberapa instruksi string. Seperti EDI, ESI, juga

berfungsi sebagai register serbaguna. Sebagai register 16-bit dialamati sebagai SI;

sebagai register 32-bit dialamati sebagai ESI.

Register untuk Tujuan Khusus. Yang termasuk didalamnya antara lain EIP, ESP,

EFLAGS dan register-register segmen CS, DS, ES, SS, FS, dan GS.

EIP (instruction pointer)

EIP mengalamati instruksi selanjutnya dalam sebuah bagian memori yang

didefinisikan sebagai segmen kode. Register ini merupakan IP (16-bit) ketika

mikroprosessor dioperasikan dalam mode real namun menjadi EIP (32-bit) bila

mikroprosessor 80386 ke atas dioperasikan dalam mode terlindung. Penunjuk

instruksi, yang menunjuk ke instruksi selanjutnya dalam satu program, digunakan

oleh mikroprosessor untuk mendapatkan instruksi berurutan berikutnya dalam

suaru program yang lokasinya terletak di dalam segmen kode. Penunjuk instruksi

dapat dimodifikasi dengan instruksi jump atau call.

ESP (stack pointer)

ESP mengalamati sebuah lokasi memori yang disebut stack. Memori stack

menyimpan data melalui penunjuk ini dan akan dijelaskan dengan instruksi

dengan mengalamati data stack. Register disebut SP jika digunakan sebagai

register 16-bit dan disebut register ESP jika digunakan sebagai register 32-bit.

EFLAGS

EFLAGS menunjukkan kondisi mikroprosessor dan mengontrol operasinya.

Register FLAG (16-bit) terdapat dalam mikroprosessor 8086-80286 dan register

EFLAG (32-bit) yaitu extended FLAG terdapat dalam mikroprosessor 80386 ke

atas.

Page 7: BAB II MIKROPROSESOR

Lima bit flag yang paling kanan dan flag overflownya berubah setelah beberapa

instruksi aritmetik dan logika dijalankan. Flag tidak akan berubah dengan adanya

transfer data atau operasi kontrol program. Beberapa flag juga digunakan untuk

mengontrol beberapa fitur yang terdapat dalam mikroprosessor. Selanjutnya dijelaskan

secara singkat fungsi-fungsi setiap bit flag. Instruksi-instruksi diperkenalkan dalam bab-

bab berikutnya, rincian tambahan tentang bit flag akan disediakan. Lima flag terkanan

dan flag overlow diubah oleh sebagian besar operasi aritmatika dan logika, sedangkan

transfer data tidak mempengaruhinya.

C (carry)

Carry menyimpan carry setelah penambahan, atau borrow setelah pengurangan.

Flag carry juga menunjukkan kondisi error seperti yang diperintahkan oleh

program dan prosedur. Hal ini sangat benar bagi fungsi panggil DOS yang akan

diuraikan lebih rinci pada bab-bab selanjutnya dan pada lampiran A.

P (paritas)

Paritas merupakan 0 logika untuk paritas ganjil dan 1 logika untuk paritas genap.

Paritas adalah jumlah angka satu dalam bilangan yang menyatakan genap atau

ganjil. Jika sebuah bilangan terdiri 3 bilangan biner bit satu, maka termasuk

paritas ganjil. Jika terdiri dari nol bit satu, maka termasuk paritas genap. Flag

paritas jarang ditemukan dalam aplikasi pemrograman modern dan telah

diimplementasikan dalam mikroprosessor Intel generasi pertama untuk mengecek

data dalam komunikasi data. Dewasa ini pengecekan paritas tidak dilakukan oleh

mikroprosessor, tetapi oleh peralatan komunikasi data.

A (auxiliary carry)

Carry tambahan (auxiliary carry) menampung carry (carry setengah) setelah

penambahan, atau borrow setelah pengurangan antar posisi bit 3 dan 4. Flag bit

khusus ini diuji oleh instruksi DAA dan DAS untuk menyesuaikan nilai AL

setelah penambahan atau pengurangan suatu BCD. Di luar itu bit flag A tidak

digunakan oleh mikroprosessor atau instruksi lain.

Z (zero)

Flag nol menunjukkan bahwa jumlah dari suatu operasi aritmetika atau logik

adalah nol. Jika Z = 1, jumlahnya adalah nol, jika Z = 0 maka jumlahnya adalah

bukan nol.

Page 8: BAB II MIKROPROSESOR

S (sign)

Flag tanda akan menampung tanda aritmetika dari hasil setelah instruksi

aritmetika atau instruksi logik dieksekusi. Jika S = 1, tanda bit negatif, jika S = 0,

tanda bit positif.

T (trap)

Flag trap memungkinkan trapping melalui suatu chip debugging (suatu program

didebug untuk mencari error atau bug). Jika flag T enable (= 1), mikroprosessor

akan menghentikan alur program pada keadaan yang diindikasikan oleh register

debug dan register kontrol. Jika flag T-nya nol logik, fitur trappingnya

(debugging) adalah disabel. Program Code View dapat menggunakan fitur trap

dan register debug untuk mendebug kesalahan software.

I (interrupt)

Flag interrupt ini mengendalikan operasi dari pin input INTR (interrupt request).

Jika I = 1 pin INTRnya enabel; jika I = 0 pin INTRnya disabel. Kondisi dari bit

flag I dikontrol oleh instruksi STI (set I flag) dan CLI (clear I flag).

D (direction)

Flag arah ini memilih salah satu dari mode penambahan atau pengurangan untuk

register DI dan /atau register SI selama instruksi string. Jika D = 1, register secara

otomatis akan dikurangi; jika D = 0, register secara otomatis akan ditambah. Glag

D diset dengan instruksi STD (set direction) dan diclear dengan instruksi CLD

(clear direction).

O (overflow)

Overflow terjadi ketika bilangan bertanda ditambah atau dikurang. Suatu overflow

menunjukkan hasilnya melebihi kapasitas dari mesin. Contohnya jika 7FH (+127)

ditambah, dengan menggunakan penambahan 8 bit, pada 01H (+1) hasilnya adalah

80H (-128). Hasil ini menunjukkan suatu kondisi overflow untuk penambahan

bertanda. Untuk operasi tak bertanda, flag overflow diabaikan.

IOPL (I/O privilege level)

IOPL digunakan dalam operasi mode terlindung untuk memilih tingkatan operasi

istimewa untuk peranti I/O. jika arus tingkatan istimewa lebih tinggi atau lebih

menjamin daripada IOPL, eksekusi I/O berjalan tanpa gangguan. Jika IOPL lebih

rendah dari tingkatan istimewa sekarang, terjadi suatu interrupt yang

menyebabkan eksekusi tertunda. Perlu diperhatikan bahwa IOPL 00 paling tinggi

Page 9: BAB II MIKROPROSESOR

atau paling menjamin, sedangkan IOPL 11 adalah yang paling rendah atau palin

tak terpercaya.

NT (nested task)

Flag NT menandakan bahwa task yang sedang dilaksanakan bersarang dalam task

yang lain dalam operasi mode terlindung. Flag ini diset ketika task di-nest oleh

perangkat lunak.

RF (resume)

Flag resume digunakan bersama debugging untuk mengontrol kelanjutan eksekusi

setelah instruksi berikutnya.

VM (virtual mode)

Bit flag VM memilih operasi mode virtual dalam suatu sistem mode terlindung.

Suatu sistem mode virtual memungkinkan partisi memori dari DOS yang

panjangnya 1M byte hadir bersamaan dalam sistem memori. Pada dasarnya,

model ini memampukan program sistem mengeksekusi lebih dari satu program

DOS.

AC (alignment check)

Bit flag AC aktif jika suatu word atau doubleword dialamatkan pada batas suatu

nonword atau nondoubleword. Hanya mikroprosessor 80486SX berisi bit AC

yang umum digunakan oleh koprosesor numeric 80487SX pendampingnya untuk

sinkronisasi.

VIF (virtual interrupt flag)

VIF adalah suatu salinan bit flag interrupt yang digunakan pada prosesor Pentium

atau Pentium Pro.

VIP (virtual interrupt pending)

VIP menyediakan informasi tentang suatau interrupt mode virtual untuk

mikroprosessor Pentium-Pentium II. Ini digunakan dalam pemakaian multitasking

untuk memberikan flag virtual interrupt dan informasi pending interrupt pada

sistem operasi.

ID (identification)

Flag ID menunjukkan bahwa mikroprosessor Pentium-Pentium II mendukung

instruksi CPUID. Instruksi CPUID memberikan informasi tentang

mikroprosessor, sesuai dengan versi dan nomor seri dan pabriknya pada sistem.

Page 10: BAB II MIKROPROSESOR

Register Segmen. Registrer tambahan, disebut juga register segmen, menghasilkan

alamat-alamat memori saat dikombinasikan dengan register-register lainnya dalam

mikroprosessor. Bisa ada empat atau enam register segmen dalam bermacam versi

mikroprosessor. Fungsi register segmen berbeda dalam mode real, bila dibandingkan

dengan operasi mode terlindung dari mikroprosessor. Berikut ini daftar dari masing-

masing register segmen berkaitan dengan fungsinya dalam sistem.

CS (code)

Segmen kode adalah suatu bagian dari memori yang memuat kode (program dan

prosedur) yang digunakan oleh mikroprosessor. Register CS mendefinisikan

alamat awal dari bagian kode pemuatan memori. Pada operasi mode real, CS

menetapkan awal dari suatu bagian memori 64K byte; dalam mode terlindug, CS

memilih suatu pendeskripsi yang menggambarkan alamat awal dan panjang dari

suatu bagian code pemuatan memori. Segmen kode panjangnya terbatas sampai

64K byte dalam 8086-80286 dan 4G byte dalam 80386 dan diatasnya ketika

mikroprosessor ini beroperasi pada mode terlindung.

DS (data)

Segmen data adalah bagian dari memori yang berisi sebagiab besar data yang

digunakan oleh program. Data diagses dalam segmen data dalam alamat offset

atau isi dari register lain yang mempunyai alamat offset. Seperti halnya segmen

kode dan segmen yang lain panjangnya dibatasi sampai 64K byte dalam 8086-

80286 dan 4G byte dalam mikroprosesor 80386 dan diatasnya.

ES (extra)

Segmen extra adalah suatu penambahan segmen data yang digunakan oleh

beberapa itruksi string untuk menyimpan data tujuan.

SS (stack)

Segmen stack mendefinisikan area memori yang digunakan untu stack, posisi dari

arus masuk dalam segmen stack dibatasi oleh register penunjuk stack. Register BP

juga mengalami data dalam segmen stack.

FS dan GS

Segmen FS dan GS adalah register segmen tambahan yang tersedia pada

microprosesor 80386, Pentium dan Pentium pro, yang memungkinkan dua segmen

nmemori tambahan diakses oleh program-program yang dijalankan.

Page 11: BAB II MIKROPROSESOR

B. PENGALAMAN MEMORI MODE REAL

Mikroprosesor 80286 dan generasi di atasnya beroperasi baik dalam mode real atau

dalam mode terlindung (protected). Hanya 8086 dan 8088 yang beroperasi pada mode

real . Berikut ini dijelaskan panjang lebar mengenai operasi mikroprosesor pada mode

real. Operasi mode real mengijinkan penempatan ruang memori hanya pada 1M byte

pertama, bahkan pada mikroprosesor Pentium 2. Perhatikan bahwa 1M byte pertama

dari memori disebut juga sistem Memori real atau Memori konvensional. Sistem

operasi DOS menghendaki mikroprosesor beroperasi pada mode real. Operasi mode

real memungkinkan perangkat lunak aplikasi yang ditulis untuk mikroprosesor

8086/8088 yang hanya berisi memori IM byte, untuk difungsikan pada 80286 dan

diatasnya tambah pengubahperankat lunaknya. Dalam semua kasus, masing-masing

mikroprosesor ini mengawali operasinya pada mode real pada saat pertama power

diaktifkan, atau mikroprosesor di seret.

Segmen dan Offset

Kombinasi dari suatu alamat segmen dan alamat offset mengkses lokasi memori

pada mode real terdiri dari alamat segmen dan alamat offset. Alamat segmen berada

dalam satu register segmen, mentapkan alamt awal dari segmen memori 64K byte.

Alamat offset memilih sembarang lokasi yang memiliki yang memilik segmen memori

64K itu. Pada skema pengalamatan segmen dan offset dalam memilih lokasi memori.

Gambaran memperlihatkan suatu segmen memori yang berawal pada lokasi 10000H

dan berakhir ada lokasi IFFFFH- dengan panjang 64K;juga memperlihatkan alamt

offset, yang kadang-kadang disebut displacement, F000H memilih lokasi IF000H dalam

system memori.

Mikroprosesor harus menghasilkan alamat memori 20-bit untuk mengakses

sebuah lokasi dalam memori 1M pertama. Contohnya jika suatu register segmen berisi

1200H, berarti segmen memori 64K byte berawal pada lokasi 12000H. Sama halnya

jika register segmen berisi 1201H, berarti segmen memorinya akan berawal pada lokasi

12010H. Karena ditambahkan dengan 0H, segmen mode real hanya dapat bermula pada

batasan 16 byte dalam sistem memori. Batasan 16 byte ini sering disebut paragraf.

Dalam mikroprosesor 80286 (dengan rangkaian eksternal khusus) dan 80386

sampai Pentium II, memori ekstra 64K kurang 16 byte dari memori dapat digunakan

dalam pengalamatan manakala alamat segmennya adalah FFFFH dan driver

Page 12: BAB II MIKROPROSESOR

HIMEM.SYS diinstal dalam sistem. Area memorinya (0FFFFH0H-10FFEFH) dirujuk

sebagai high memori. Ketika suatu alamat dibangkitkan menggunakan suatu alamat

segmen pada FFFFH, alamat pin A20 adalah enable (jika fasilitas ini ada) ketika suatu

offset ditambahkan. Contohnya, jika alamat segmennya adalah FFFFH dan alamat

offsetnya adalah 4000H, lokasi alamat memori mesin adalah FFFF0H + 4000H atau

103FFH.

Segmen Defult dan Register Offset

Mikroprosesor mempunyai sekumpulan aturan dalam menngunakan segmen

ketika memori dialamatkan. Aturan-aturan ini digunakan untuk mode real atau mode

protected. Sebagai contoh register segmen code CS selalu digunakan dengan instruksi

penunjuk (pointer) untuk mengalamatkan instruksi berikutnya dalam sebuah program.

Kombinasinya adalah CS:IP atau CS:EIP, tergantung pada mode operasi dari

microprosesor. Regiter segmen code mendefinisikan awal segmen kode dan penunjuk

instruksi menempatkan instruksi berikutnya dalam segmen kode. Kombinasi ini (CS:IP

atau CS:EIP) menempatkan instruksi berikutnya yang dieksekusi oleh mikroprosesor.

Sebagai contoh, jika CS = 1400H dan IP/IEP = 1200H, mikroprosesor mengambil

instruksi berikutnya dari lokasi memori 14000H + 1200H atau 15200H.

Kombinasi default yang lain adalah stack, data stack diferensikan sepanjang

segmen stack pada lokasi memori yang ditunjukkan oleh stack poiter (SP/ESP) atau

base pointer (BP/EBP). Kombinasi ini mengacu pada SS:SP (SS:ESP) atau SS:BP

(SS:EBP). Contoh, jika SS = 200H danBP = 300H , mikroprosesor mengalamati lokasi

memori 2300H untuk lokasi memori segmen stack. Catatan bahwa dalam mode real,

segmen memori hanya dapat mengalamati lokasi kurang dari 16-bit yang terkanan saja.

80386-Pentium II, tidak pernah menempatkan angka yang lebih besar dari FFFFH ke

dalam register offset jika mikroprosesor dioperasikan pada mode real. Ini akan

menyebabkan sistem hang dan mengindikasikan kekeliruan pengalamatan.

Misalkan sebuah aplikasi program memerlukan 1000H byte memori kode. 190H

byte memori untuk data, dan 200H memori untuk stack, aplikasi ini tidak memerlukan

segmen tambahan. Ketika program ini ditempatkan dalam TPA yang lain. Area ini

ditunjukkan oleh free pointer (penunjuk bebas) yang disediakan oleh DOS. Pemuatan

program ditangani secara otomatis oleh program loader yang terletak dalam DOS.

Page 13: BAB II MIKROPROSESOR

Skema Pengalamatan Segmen dan Offset Memungkinkan Penempatan Ulang

Skema pengelamatan segmen dan offset kelihatan rumit sekali, tetapi juga

menghasilkan keiuntungan bagi sistem. Skema dari pengelamatan segmen ditambah

offset memperbolehkan program untuk diletakkan ulang dalam system memori. Dan

juga struktur memperbolehkan program yang ditulis untuk berfungsi dalam mode real

untuk dioperasikan dalam mode protected. Program relocatable adalah program yang

dapat ditempatkan dalam area memori manapun dan dieksekusi tanpa mengalami

perubahan, sedangkan data relocatable adalah data yang dapat ditempatkan dalam area

memori manapun dan digunakan untuk program tanpa mengalami perubahan. Skema

alamat segmen dan offset memungkinkan program dan data untuk ditempatkan ulang

tanpa mengalami perubahan apapun baik dalam program maupun data. Ini ideal untuk

penggunaan sistem computer untuk tujuan umum dimana tidak semua mesin berisi area

memori yang sama. Struktur memori komputer pribadi berbeda dari mesin ke mesin.

Karena memori dialamatkan dalam sebuah segmen oleh alamat offset, segmen

memori dapat dipindahkan ketempat manapun dalam sistem memori tanpa mengubah

alamat offset manapun. Hal ini dicapai dengan pemindahan seluruh program, seperti

sebuah blok, ke area baru dan kemudian hanya mengubah isi register segmen. Jika

sebuah intruksi 4 byte diatas awal segmen, alamt offsetnya adalah 4. Jika seluruh

prigram dipindahkan ke area memori yang baru, alamat offset dari 4 ini masih

menunjuk ke 4 byte diatas awal segmen. Hanya isi register segmen harus di ubah ke

alamat program dalam area memori yang baru. Tanpa fitur ini, sebuah program harus

secara akstensif ditulis kembali atau diubah sebelum dipindahkan. Hal ini memerlukan

waktu tambahan atau banyak versi program untuk berbagai konfigurasi sisetm

komputer.

C. PENGENALAN PENGALAMATAN MEMORI MODE PROTECTED

(TERLINDUNG)

Pengalamatan memori mode terlindung (80286 dan diatasnya) memungkinkan

pengaksesan data dan program yang terletak diatas IM-byte pertama dari memori

maupun memori IM-byte pertama. Alamat terletak pada pada memori sistem pada

bagian ekstended (diperpanjang). Ketika data dan program terletak pada memori

extended, alamat offset digunakan untuk mengakses informasi yang terletak pada

segmen memori. Salah satu perbedaan adalah alamat segmen, yang diduskusikan pada

Page 14: BAB II MIKROPROSESOR

pengalamatan memori mode real, tidak ada lagi pada mode protected. Sebagai ganti

alamat segmen tersebutregister segmen berisi selektor yang digunakan untuk memilih

descriptor-deskriptor (pendeskripsi) pada tabel pendeskripsi. Pendeskripsi

menggambarkan lokasi segmen memori, panjang, dan hak akses. Karena register

segmen dan alamat offset masih mengakses memori, maka instruksi pada mode

terlindung identik instruksi pada mode real. Pada kenyataannya program yang ditulis

dalam mode real dapat digunakan dalam mode terlindung tanpa ada perubahan.

Perbedaan dalam metode ini adalah cara mikroprosesor menafsirkan register segmen

untuk mengakses segmen memori. Perbedaan lainnya, dalam 80386 dan versi di

atasnya, adalah bahwa alamat offset menjadi bilangan 32-bit, padahal tadinya bilangan

16-bit, dalam mode terlindung. Alamat offset 32-bit mengijinkan mikroprosesor untuk

mengakses data dalam sebuah segmen yang panjangnya mencapai 4G byte.

Selektor dan Deskriptor (Pendeskripsi)

Selector terdapat dalam register segmen dan digunakan untuk memilih salah satu

dari 8192 pendeskripsi dari salah satu dari dua tabel pendeskripsi. Pendeskripsi

menggambarkan lokasi, panjang dan hak akses dari segmen memori. Secara tidak

langsung register segmen digunakan untuk memilih segmen memori, tetapi secara tidak

langsung seperti dalam mode real. Contoh dalam mode real, jika CS = 0008H, maka

segmen kode akan dimulai pada lokasi 00080H, sedangkan pada mode terlindung angka

segmen dapat mengalamati beberapa lokasi memori sistem untuk segmen kode.

Ada dua tabel pendeskripsi yang digunakan bersama register segmen, satu berisi

pendeskripsi global dan yang lain berisi pendeskripsi lokal. Pendeskripsi global berisi

batas segmen yang digunakan untuk semua program, sedangkan pendeskripsi lokal

biasanya digunakan untuk program-program unik. Anda mungkin menyebut

pendeskripsi global sebagai pendiskripsi sistem, dan penyebut pendeskripsi lokal

sebagai pendeskripsi aplikasi. Masing-masing tabel pendeskripsi 8129 pendeskripsi

sehingga total semua pendeskripsi adalah 16384, yang dapat setiap saat digunakan

untuk aplikas. Karena pendeskripsi mendeskripsikan segmen memori pada masing-

masing aplikasi bisa dideskripsikan sampai 16.384 segmen memori.

Bagian base address (alamat basis) dari pendeskripsi menunjukkan lokasi awal

dari segmen memori. Mikroprosesor 80286 mempunyai alamat basis 24-bit, sehingga

segmen dimulai pada beberapa lokasi dalam 16M byte memori. Perhatikan bahwa

Page 15: BAB II MIKROPROSESOR

batasan paragraf dihilangkan pada mikroprosesor ini pada saat bekerja dalam mode

terlindung. 80386 dan diatasnya menggunakan alamat basis 32-bit yang

memperbolehkan segmen dimulai pada beberapa lokasi memori dalam 4G byte.

Perhatikan bagaimana alamat basis dari pendeskripsi 80286 kompatibel dengan

pendeskripsi 80386 sampai Pentium II karena MSB 16-bitnya adalah 0000H. lihatlah

bab 18 (jilid 2) untuk perincian tambahan tentang ruang memori 64G yang disediakan

oleh Pentium II.

Batasan (limit) segmen berisi alamat offset terakhir yang terdapat dalam segmen.

Sebagai contoh, jika segmen dimulai pada lokasi memori F0000H dan diakhiri pada

lokasi memori F000FFH, maka alamat basisnya adalah F00000H, dan limitnya adalah

FFH. Untuk mikroprosesor 80286, alamat basisnya adalah F00000H dan limitnya

adalah 00FFH. Untuk 80386 keatas alamat basisnya adalah 00F00000H dan limitnya

adalah 000FFH. Sebagai catatan, 80286 mempunyai limit 16-bit dan 80386 sampai

Pentium II mempunyai limit 20-bit. 80286 mengakses segmen memori yang panjangnya

antara 1 dan 64K byte. 80386 keatas mengakses segmen memori yang terletak antara 1

dan 1M byte, atau antara 4K dan 4G.

Kelebihan lain yang dapat ditemukan dalam pendeskripsi 80386 sampai Pentium

11, yang tidak ditemukan pada pendeskripsi 80286 adalah bit G atau granularity bit.

Jika G = 0, batas segmen dispesifikasi 00000H sampai FFFFFH. Jika G = 1, nilai limit

segmen dikalaikan dengan 4K byte (dilampirkan dengan XXXH). Limitnya kemudian

adalah 00000XXXH sampai FFFFFXXXH, jika G = 1. Hal itu menyebabkan panjang

segmen dari 4K sampai 4G byte dalam kelipatan 4K byte. Alas an bahwa panjang

segmen pada 80286 adalah 64K byte adalah karena alamat offset dengan XXXH).

Limitnya kemudian adalah 00000XXXH sampai FFFFFXXXH, jika G = 1. Hal itu

menyebabkan panjang segmen dari 4K sampai 4G byte dalam kelipatan 4K byte. Alas

an bahwa panjang segmen pada 80286 adalah 64K byte adalah karena alamat offset

selalu 16-bit, yang disebabkan rancangan internalnya yang 16-bit. 80386 keatas sudah

menggunakan rancangan internal 32-bit, yang memungkinkan alamat offset dalam

bentuk operasi terlindung dari 32-bit. Alamat offset 32-bit memungkinkan panjang

segmennya mencapai 4Gbyte, dan alamat offset yang 16 byte memungkinkan panjang

segmennya mencapai 64K byte. Sistem operasi dapat beroperasi dalam sistem 16-bit

atau 32-bit sebagai contoh, DOS menggunakan sistem 16-bit, sedangkan sebagian besar

aplikasi windows menggunakan sistem 32-bit.

Page 16: BAB II MIKROPROSESOR

Bit AV dalam deskriptor 80386 ke atas digunakan oleh sebagian sistem operasi

untuk mengindifikasi keberadaan segmen (AV = 1) atau tidak (AV = 0). Bit D

mengidentifikasikan bagaimana instruksi-instruksi pada 80386 hingga Pentium 11

mengakses data register dan memori dalam mode terlindung atau real. Jika D = 0,

instruksinya adalah instruksi 16-bit yang kompatibel dengan mikroprosesor 8086-

80286. Artinya instruksi menggunakan alamat offset dan register 16-bit sebagai standar,

bentuk ini sering disebut bentuk instruksi 16-bit. Jika D = 1, instruksi adalah instruksi

32-bit. Secara mendasar, bentuk instruksi 32-bit menganggap bahwa semua alamat

offset dan register adalah 32-bit. Perlu dicatat bahwa standar dari besarnya register dan

alamat offset dapat digunakan oleh bentuk instruksi 16-bit dan 32-bit. Sistem operasi

MSDOS dan PCDOS selalu menggunakan instruksi dalam mode instruksi 16-bit.

Windows 3.1 juga menghendaki mode instruksi 16-bit. Perhatikan bahwa mode

instruksi 32-bit hanya dipakai untuk mengakses sistem mode terlindung seperti

Windows NT, Windows 95 atau OS/2. Pembahasan lebih terinci mengenai bentuk

tersebut dan aplikasinya dibahas di bab 3 dan 4.

Acces right byte (byte hak akses) yang dapat mengontrol akses ke segmen

memori mode terlindung. Byte ini menjelaskan bagaimana segmen befungsi dalam

sistem. Byte hak akses dapat mengotrol segmen secara keseluruhan. Jika segmen

merupakan segmen data, arah pengembangan lebih spesifik. Jika segmen berkembang

di luar batasnya, program mikroprosesor diinterupsi, mengidentifikasikan kesalahan

proteksi umum. Anda bahkan dapat menspesifikasi jika sebuah segmen data dapat

ditulis atau terproteksi. Kode segmen juga dikontrol dalam bentuk yang sama dan dapat

mencegah pembacaan untuk memproteksi perangkat lunak.

Register Tak Terlihat-Program (Program-Invisible Registers)

Tabel pendeskripsi lokal dan global dapat ditemukan dalam sistem memori. Untuk

mengakses dan menspesifikasi alamat dari tabel ini, 80286, 80386, 80486, Pentium dan

Pentium pro, dan pentium11 berisikan register tak terlihat-program. Register tak terlihat

ini tidak secara langsung dialamatkan oleh perangkat lunak, jadi mereka memberikan

nama tersebut walaupun beberapa dari register ini diakses dengan perangkat lunak

sistem, register ini mengontrol mikroprosesor saat beroperasi pada mode terlindung.

Setiap register segmen berisikan bagian tak terlihat-program yang digunakan

dalam mode terlindung. Porsi tak terlihat-program dari register ini sering disebut

Page 17: BAB II MIKROPROSESOR

memori cache karene cache merupakan memori apapun yang menyimpan informasi.

Cache ini tidak boleh dikelirukan dengan cache (penempungan) tingkat 1 dan tingkat 2

yang ditemukan dalam mikroprosesor. Porsi takterlihat-program dari register segmen

diisi dengan alamat basis, limit dan hak akses setiap saat angka dalam register segmen

berubah. Ketika nomor segmen baru ditempatkan di dalam register segmen,

mikroprosesor mengakses tabel pendeskripsi dan mengisi pendeskripsi ke dalam cache

takterlihat-program dari register segmen. Ia tersimpan dan digunakan untuk mengakses

segmen memori sampai isi segmen berubah lagi. Ini memungkinkan mikroprosesor

untuk mengakses segmen memori berulang kali tanpa merujuk ke tabel pendeskripsi

untuk setiap akses (dari sinilah istilah cache).

GTDR (global descriptor table register) dan IDTR (interrupt descriptor table

register) berisikan alamat basis dari tabel pendeskripsi dan batasannya. Batas setiap

pendeskripsi adalah 16-bit karena panjang tabel maksimun adalah 64K byte. Ketika

operasi mode terlindung diinginkan, alamat dari pendeskripsi global dan limitnya diisi

kedalam GDTR. Sebelum memakai mode terlindung, tabel pendeskripsi interrupt dan

IDTR juga harus diinisialisasi. Rincian mengenai operasi mode terlindung dibahas

kemudian pada bab ini. Untuk saat ini, pemrograman dan penambahan pendeskripsi

untuk register ini adalah mustahil.

Lokasi dari tabel pendeskripsi lokal dipilih dari tabel pendeskripsi global. Satu

dari tabel pendeskripsi global diset pada alamat tabel pendeskripsi lokal. Untuk

mengakses tabel pendeskripsi lokal, LDTR (local descriptor table register) diisi dengan

selektor, seperti halnya register segmen diisi dengan selektor. Selektor ini mengakses

tabel pendeskripsi global dan memuat alamat basis, batas, dan hak akses dari tabel

pendeskripsi lokal ke dalam porsi penampungan (cache) dari LDTR.

Task register (TR) menampung sebuah selector yang mengakses sebuah

pendeskripsi yang menentukan tugas (task). Sebuah task biasanya berupa sebuah

prosedur atau program aplikasi. Pendeskripsi untuk prosedur atau aplikasi program itu

disimpan dalam tabel pendeskripsi global, jadi akses dapat dikontrol melalui tingkat

tertentu (privilege). Pekerjaan register memungkinkan sebuah konteks atau tugas

dikerjakan dalam waktu sekitar 17 µs. task switching ini memungkinkan mikroprosesor

beralih antar tugas dalam waktu yang cukup singkat. Task switching memungkinkan

Page 18: BAB II MIKROPROSESOR

pengerjaan secara multi-tasking (multitugas) dalam beralih dari tugas yang satu ke tugas

yang lainnya dengan cara yang simpel dan teratur.

D. PAGING MEMORI

Mekanisme paging memori yang ada dalam mikroprosesor 80386 dan versi

diatasnya mengijinkan setiap lokasi memori secara fisik ditunjukkan ke setiap alamat

linear. Alamat linear didefinisikan sebagai alamat yang dibangkitkan oleh sebuah

program. Dengan modul paging memori, alamat linear ditranslasikan secara semu ke

dalam setiap alamat fisik, yang mengijinkan sebuah aplikasi yang ditulis ke fungsi

pada alamat khusus dilokasikan kembali melalui mekanisme paging. Modul ini juga

mengijinkan memori ditempatkan kedalam area di mana tidak ada memori, misalnya

pada blok memori atas (UMB) yang di sediakan oleh EMM386.EXE.

Program EMM386.EXE mengalokasikan kembali memori extended, dalam blok

4K, ke memori sistem antara video BIOS dan ROM BIOS sistem pada blok memori

atas. Tanpa mekanisme paging, penggunaan area memori ini tidak dimungkinkan.

Register Paging

Modul paging dikendalikan oleh isi dari register kontrol mikroprosesor. Ingat

bahwa register-register ini hanya ada pada mikroprosesor 80386 sampai Pentium. Mulai

Pentium, registrer kontrol tambahan yang di beri nama CR4 mengendalikan ekstensi

dengan arsitektur dasar yang disediakan dalam Pentium dan mikroprosesor versi

diatasnya. Satu dari fitur-fitur ini adalah sebuah page (halaman) 4M-byte yang

diaktifkan oleh penyetelan bit posisi 4 atau CR4.

Register-register yang penting untuk modul paging adalah CR0 dan CR3. Posisi

bit paling kiri (PG) dari CR0 memilih paging pada saat logika 1. Jika bit PG di-nolkan

(0), alamat linear yang dibangkitkan oleh program menjadi alamat fisik yang digunakan

untuk mengakses memor. Jika bit PG di-set (1), alamat linear diubah ke alamat fisik

melalui mekanisme paging. Mekanisme paging berfungsi baik dalam mode real

maupun mode terlindung.

CR3 terdiri dari alamat basis direktori halaman, dan bit PCD dan PWT. Bit PCD

dan PWT mengendalikan operasi pin PCD dan PWT pada mikroprosesor. Jika PCD

diset (1), pin PCD berstatus logika 1 selama siklus bus yang bukan merupakan halaman.

Page 19: BAB II MIKROPROSESOR

Hal ini mengijinkan perangkat keras luar mengontrol memori cache tingkat 2. (Cache

tingkat 2 merupakan memori kecepatan tinggi luar yang berfungsi sebagai buffer

(penyangga) antara mikroprosesor dan sistem memori DRAM utama). Bit PWT juga

muncul pada pin PWT, selama siklus bus yang bukan merupakan halaman untuk

mengendalikan cache write-through dalam sistem. Alamat basis direktori halaman

menempatkan direktori halaman pada modul translasi page. Ingat bahwa alamat ini

menempatkan direktori halaman pada setiap 4K dalam setiap memori karena ditambah

secara internal dengan 000H. Direktori halaman yang terdiri dari 1024 direktori dari

setiap 4 byte. Setiap direktori halaman mengakses alamat-alamat sebuah table halaman

yang terdiri dari 1024 entri.

Alamat linear, yang dibangkitkan oleh perangkat lunak, dibagi dalam tiga bagian

yang digunakan untuk mengakses page directory entry (entri direktori halaman), page

table entry (entri tabel halaman), dan page offset address (alamat offset halaman).

Direktori Halaman dan Tabel Halaman

Direktori halaman terdiri dari 1024 alamat doubleword yang menempatkan

sampai 1024 tabel halaman. Direktori halaman dan setiap tabel halaman panjangnya

4K. jika seluruh memori 4G byte dipakai, sistem harus mengalokasikan memori 4K

byte pada direktori halaman, dan 4K dikalikan dengan 1024 atau 4M byte untuk 1024

tabel halaman. Dengan demikian memori yang diperlukan dapat diperkirakan.

Sistem DOS dan EMM386.EXE menggunakan tabel halaman untuk

mendefinisikan kembali area memori antara lokasi C8000H-EFFFFH sebagai blok

memori atas. Hal ini dapat dilakukan dengan repaging memori extended untuk mengisi

kembali bagian sistem memori konvensional ini agar DOS dapat mengakses memori

tambahan. Diasumsikan bahwa program EMM386.EXE mengijinkan akses ke memori

extended 16M byte dan memori konvensional melalui paging dan lokasi C8000H-

EFFFFH harus diatur kembali ke lokasi 110000-138000H, dengan area memori lainnya

yang diatur ke lokasi normalnya.

Disini, direktori halaman terdiri dari 4 entri. Setiap entri dalam direktori halaman

berhubungan dengan memori fisik 4M byte. Sistem juga terdiri dari empat tabel

halaman dengan 1024 entri pada setiap tabel. Setiap entri dalam tabel halaman

mengatur kembali memori fisik 4K byte.

Page 20: BAB II MIKROPROSESOR

Seperti halnya DOS, program Windows juga mengatur kembali sistem memori.

Saat ini, karena jumlah memori yang diperlukan untuk menyimpan tabel halaman, maka

Windows versi 3.11 melakukan paging hanya untuk memori 16M byte. Pada

mikroprosesor Pentium dan Pentium Pro, panjang halamannya bisa mencapai 4K byte

atau 4M byte. Meskipun sekarang belum ada perangkat lunak yang mendukung page

4M byte, seperti Pentium II dan versi lebih maju yang mendukung komputer pribadi,

sistem operasi masa datang sudah pasti dapat mendukung halaman memori 4M byte.

Page 21: BAB II MIKROPROSESOR

BAB III

KESIMPULAN

Model pemrograman pada mikroprosesor 8086 sampai 80286 terdiri dari register 8-bit

dan register 16-bit. Model pemrograman pada mikroprosesor 80386dan versi di atasnya

terdiri dari register 8-bit, register 16-bit, dan register 32-bit serta dua register segmen

16-bit tambahan: FS dan GS.

Register 8-bit adalah AH, AL, BH, BL, CH, CL, DH dan DL. Register 16-bit adalah

AX, BX, CX, DX, SP, BP, DI dan SI. Register segmen adalah CS, DS, ES, SS, FS, dan

GS. Register 32-bit extended adalah EAX, EBX, ECX, EDX, ESP, EBP, EDI dan ESI.

Di samping itu, mikroprosesor memiliki sebuah petunjuk instruksi (IP/EIP) dan register

flag (FLAGS atau EFLAGS).

Semua alamat memori mode real merupakan kombinasi dari sebuah alamat ssegmen

ditambah sebuah alamat offset. Lokasi awal dari sebuah segmen ditentukan oleh

bilangan 16-bit dalam register segmen yang ditambah dengans nol heksadesimal pada

digit yang paling kanan. Alamat offset merupakan bilangan 16-bit ditambah dengan

alamat segmen 20-bit untuk membentuk alamat memori mode real.

Register segmen terdiri dari tiga field informasi dalam mode terlindung. 13-bit yang

paling kiri dari register segmen mengalamatkan satu dari 8192 pendeskripsi pada

sebuah tabel pendeskripsi. Bit T1 mengakses tabel pendeskripsi global (T1 = 0) atau

tabel pendeskripsi local T1 = 1). 2-bit paling kanan pada register segmen memilih

tingkat keistimewaan diminta untuk akses segmen memori.

Memory paging diselesaikan melalui register control CR0 dan CR3. Bit PG pada CR0

mengaktifkan paging dan isi CR3 mengalamatkan direktori halaman. Direktori halaman

terdiri dari samapai 1024 alamat tabel halaman yang digunakan untuk mengakses tabel

paging.