download

Matakuliah
Tahun
Versi
: H0162/ Mikroprosesor
: 2006
: 1/0
Pertemuan 07
Intel x86
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan
mahasiswa akan mampu:
• menerangkan arsitektur mikroprosesor
keluarga Intel x86 (C2)
2
Outline Materi
•
•
•
•
•
•
Register Set
Format Data
Addressing Mode
Instruction Set
Interrupt
Segmentation
3
4
Keluarga x86
• Yang dimaksud dengan keluarga x86
adalah dari 8086/88, 80186, 80286,
80386, 80486
http://www.cpu-collection.de
5
Little Endian = Low Byte in Low Address
6
Fitur Penting
7
8086 Die Photo
29 ribu
Transistor
8
80386 Die Photo
0.275 Juta
Transistor
9
80486 Die Photo
1.2 Juta Transistor
10
8086
11
80186
12
80386
13
80486
14
Register Set
Arsitektur register dari mikroprosesor x86 terbagi-bagi
kedalam beberapa grup, yaitu :
1. Register Base architecture (atau application register
set), yang terdiri dari :
a. Register General Purpose
b. Instruction Pointer
c. Register Flags
d. Register segment
2. Register system
a. Register memory management
b. Register Control
15
Register Set
3. Register Floating-point
a. Register Data
b. Tag Word
c. Status Word
d. Control Word
e. Instruction dan Data Pointer
4. Register-register Debug
Register Base Architecture dan Register Foating-point
dapat diakses melalui aplikasi program.Register System
dan Debug hanya dapat diakses oleh program system
(seperti Sistem Operasi).
16
17
Format Data
• Dikarenakan mikroprosesor x86 berkembang dari 16-bit
8086 dan i286, maka istilah word dihubungkan dengan
data item 16-bit.
• Data item 32-bit disebut doubleword, atau lebih
singkatnya dword.
• Data integer yang tidak mempunyai sign disebut sebagai
ordinal.Data integer yang mempunyai sign secara
mudahnya hanya cukup disebut sebagai integer saja.
• Arsitektur-nya juga mengenali string-string data, dan bit,
byte, word, dan dword Binary Coded Decimal (BCD)
yang packed dan unpacked.
• Data foating-point adalah 32-bit single-precison, dan
standar IEEE 64-bit double-precision. Dengan demikian
arsitektur ini mengenali format extended 80-bit.
18
Addressing Mode
• Mikroprosesor x86 mempunyai 4 mode
pengalamatan, yaitu :
– Displacement. Displacement menyatakan
offset pada alamat dari suatu operand. Nilai
immediate-nya dapat sebesar 8, 16 atau 32
bit pada akhir dari instruksi.
– Base. Pengalamatan ini berisi dari salah satu
dari general purpose register. Register yang
berisi Base disebut sebagai base register.
Base register biasanya dipakai oleh compiler
untuk menunjuk awal dari daerah variabel.
19
Addressing Mode
– Index. Pengalamat Index mempunyai isi dari
salah satu dari general purpose register
kecuali ESP. Register yang berisi index maka
disebut sebagai index ragister. Index register
digunakan untuk mengakses elemen-elemen
dari suatu array atau sebuah atring dari suatu
karakter. Perbedaan utama antara index da n
base adalah bahwa index tidak dapat discaled.
• Komponen-komponen di atas digunakan untuk
mengkalkulasikan suatu EA dari suatu operand di
memory. EA adalah alamat offset dalam segment, jika
segmentasi sedang dilakukan.EA dalam mode
pengalamatan umumnya disebut sebagai Scaled Index
with Displacement.
20
– Scale. Scale adalah angka yang mungkin
digunakan untuk menggandakan nilai dari
index. Nilai scale berkisar antara 1, 2, 4 atau
8. Faktor penskalaan mengizinkan pengindex-an secara efisien ke dalam suatu array
ketika elemen-elemen array sebesar 2, 4,
atau 8 byte. Untuk array-array byte scale-nya
adalah 1 (tidak di-scale).
21
Instruction Set
•
•
•
•
•
•
•
•
•
•
Data Transfer
Arithmetic
Logic, shift, dan rotate
Manipulasi string
Manipulasi bit
Control transfer
HLL support
Protection suport
Processor control
Floating-point
22
• Instruction set pada arsitektur x86 beroperasi
baik pada 0, 1, 2, atau 3 operand (jarang sekali
3 operand diperbolehkan). Sebuah operand
terletak dalam register CPU, di dalam instruksi
itu sendiri (immediate) atau di dalam memory.
• Berikut ini tipe-tipe operasi yang diperbolehkan :
–
–
–
–
Register ke register
Memory ke register
Register ke memory
Memory ke memory (untuk instruksi yang sangat
kecil)
– Immediate ke register
– Immediate ke memory
23
• Operand-nya dapat mempunyai ukuran
sebesar a byte, satu word, atapun
sepanjang dword.Operand untuk instruksi
move dapat sebesar 8, 16 atau 32 bit
untuk source dan destination. Untuk
source juga bisa 8, 16 atau 32 operand.
Source dan destination dapat berupa di
dalam CPU register atau sebuah lokasi di
memory.
24
Interrupt
• Interrupt umumnya dipahami sebagai sebuah kejadian
dimana sinyal eksternal menghentikan eksekusi sebuah
program oleh prosesor. Sewaktu program diinterupsi,
prosesor menjalankan sebuah interrupt service routine.
Penyebab yang mungkin untuk terjadinya sebuah
interrupt adalah mungkin sebuah I/O interface device
meminta CPU untuk melakukan fungsi tertentu seperti
mengririmkan keluar informasi tertentu.
• Arsitektur x86 mampu menangani hingga 256 interrupt
dan exception (fault / error). Interrupt vektor mempunyai
panjang 8 byte. Interrupt vektor adalah alamat mulai dari
ISR. Interrupt vektor disimpan pada Special Interrupt
Vektor Table dalam memory.
25
• Urutan kejadian saat interrupt di acknowledge
oleh CPU :
– Register EFLAG dan alamat dari instruksi selanjutnya
yang akan dieksekusi di-PUSH ke dalam Stack
memungkinkan untuk meneruskan kembali program
tersebut.
– Nomor Interrupt, 8 bit, disupply ke CPU yang
menandakan entry yang tepat dalam IVT (Interrupt
Vektor Table).
– Alamat mulai dari ISR (Interrupt Service Routine) diextract dari IVT, me-load EIP dan register CS.
– ISR di-eksekusi, berakhir dengan instruksi IRET.
Instruksi ini mengembalikan keadaan prosesor, dan
eksekusi program melanjutkan kembali eksekusi
instruksi berikutnya.
26
Segmentasi
• Memory dibagi-bagi menjadi bagian-bagian
yang dinamakan segment, ukuran segment
berkisar antara 1 byte sampai 1 Gbyte. Segment
dapat mulai dari base address manapun dari
memory dan overlapping-storage antar segment
diijinkan. Alamat virtual dari arsitektur x86
dibentuk dari 2 komponen yaitu :
– Sebuah selektor 16 bit, digunakan untuk menentukan
alamat linear base (alamat byte pertama dari
segment)
– Sebuah offset 32 bit, alamat internal dalam sebuah
segment. Offset dari alamat lokasi memory yang
diberikan adalah jaraknya dalam hitungan byte dari
alamat base segment.
27
28
• Prosesor dengan arsitektur x86 biasa
bekerja dalam PVAM (Protected Virtual
Address Mode) dalam mode ini selektor
16 bit memilih sebuah index yang
ditetapkan oleh sistem operasi. Tabel ini
berisi base address dari segment tersebut.
Alamat fisikal dibentuk dari menambahkan
base address yang didapatkan dari tabel
ke offset.
29