Matakuliah : H0162/ Mikroprosesor Tahun : 2006 Versi : 1/0 Pertemuan 07 Intel x86
Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu: menerangkan arsitektur mikroprosesor keluarga Intel x86 (C2)
Register Set Format Data Addressing Mode Instruction Set Interrupt Outline Materi Register Set Format Data Addressing Mode Instruction Set Interrupt Segmentation
Keluarga x86 Yang dimaksud dengan keluarga x86 adalah dari 8086/88, 80186, 80286, 80386, 80486 http://www.cpu-collection.de
Little Endian = Low Byte in Low Address
Fitur Penting
8086 Die Photo 29 ribu Transistor
80386 Die Photo 0.275 Juta Transistor
80486 Die Photo 1.2 Juta Transistor
8086
80186
80386
80486
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
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).
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.
Mikroprosesor x86 mempunyai 4 mode pengalamatan, yaitu : 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.
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 di-scaled. 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.
Scale. Scale adalah angka yang mungkin digunakan untuk menggandakan nilai dari index. Nilai scale berkisar antara 1, 2, 4 atau 8. Faktor penskalaan mengizinkan peng-index-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).
Instruction Set Data Transfer Arithmetic Logic, shift, dan rotate Manipulasi string Manipulasi bit Control transfer HLL support Protection suport Processor control Floating-point
Berikut ini tipe-tipe operasi yang diperbolehkan : 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
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.
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.
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) di-extract 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.
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.
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.