X86: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan
Borgxbot (bicara | kontrib)
k Robot: Cosmetic changes
Baris 4:
'''x86''' atau '''80x86''' adalah nama umum dari arsitektur [[mikroprosesor]] yang pertama kali dikembangkan dan diproduksi oleh [[Intel]]. Arsitektur x86 saat ini mendominasi komputer desktop, komputer portabel, dan pasar server sederhana.
 
[[ImageBerkas:Pentium4_northwood.png|thumb|Keping Mikroposesor Intel Pentium 4; Seri Northwood]]
 
Arsitektur ini dikenal dengan nama '''x86''' karena prosesor-prosesor awal dari keluarga arsitektur ini memiliki nomor model yang diakhiri dengan urutan angka "86": prosesor [[8086]], [[80186]], [[80286]], [[Intel 80386|386]], dan [[Intel 80486|486]]. Karena nomor tidak bisa dijadikan merek dagang, Intel akhirnya menggunakan kata [[Pentium]] untuk merek dagang processor generasi kelima mereka.
Baris 10:
Arsitektur ini telah dua kali diperluas untuk mengakomodasi [[Word (istilah komputer)|ukuran word]] yang lebih besar. Di tahun 1985, Intel mengumumkan rancangan generasi 386 32-bit yang menggantikan rancangan generasi 286 16-bit. Arsitektur 32-bit ini dikenal dengan nama '''x86-32''' atau '''[[IA-32]]''' (singkatan dari '''I'''ntel '''A'''rchitecture, 32-bit). Kemudian pada tahun 2003, [[AMD]] memperkenalkan [[Athlon 64]], yang menerapkan secara lebih jauh pengembangan dari arsitektur ini menuju ke arsitektur 64-bit, dikenal dengan beberapa istilah [[AMD64|x86-64]], [[AMD64]] (AMD), [[EM64T]] atau [[IA-32e]] (Intel), dan x64 (Microsoft).
 
== Sejarah ==
Arsitektur x86 pertama kali hadir melalui [[Intel 8086|8086]] [[Central processing unit|CPU]] pada tahun [[1978]]; Intel 8086 adalah pengembangan dari mikroprosesor [[Intel 8080]] (yang dibangun mengikuti arsitektur dari [[Intel 4004|4004]] dan [[Intel 8008|8008]]), dan program bahasa rakitan dari 8080 dapat diterjemahkan secara mekanik ke program yang setara ke bahasa rakitan untuk 8086. Arsitektur ini diadaptasi (dengan versi yang lebih sederhana dari versi [[Intel 8088|8088]]) tiga tahun kemudian sebagai standar dari CPU pada [[IBM PC]]. Kehadiran platform PC secara luas membuat arsitektur x86 menjadi arsitektur CPU yang paling sukses selama ini. (Rancangan CPU lainnya yang sangat sukses, yang dibagun berdasarkan 8080 dan kompatible pada set-instruksi hingga pada tingkatan bahasa-mesin biner adalah arsitektur [[Zilog Z80]].)
 
Perusahaan lain juga membuat atau pernah membuat [[Central processing unit|CPU]] yang berdasarkan arsitektur x86: diantaranya [[Cyrix]] (sekarang diakuisisi oleh [[VIA Technologies]]), [[NEC Corporation]], [[IBM]], [[Integrated Device Technology|IDT]] (juga telah diakuisisi oleh VIA), dan [[Transmeta]]. Manufaktur yang paling sukses adalah [[AMD]], dengan seri [[Athlon]]-nya, yang meskipun belum se-populer seri [[Pentium]], telah menguasai sebagian pangsa pasar secara nyata. Menurut beberapa perusahaan riset pangsa pasar CPU [[AMD]] telah melampaui penjualan CPU [[Intel]] di pasar retail dekstop pada tahun 2006.
 
== Rancangan ==
Arsitektur x86 adalah rancangan [[CISC|Set Instruksi Komputer Kompleks (Complex Instruction Set Computer)]] dengan panjang instruksi yang bervariasi. Word disimpan dengan urutan [[endian|endian-kecil]]. Kompatibilitas mundur menjadi motivasi terkuat dalam pengembangan arsitektur x86 (keputusan ini menjadi sangat penting dan sering dikritik, terutama oleh pesaing dari pendukung arsitektur prosesor lainnya, yang dibuat frustasi oleh sukses yang berkelanjutan dari arsitektur ini yang secara umum dipandang memilki banyak kelemahan). Prosesor-prosesor terkini dari x86 menerapkan beberapa langkah penerjemah (dekoder) "tambahan" untuk (saat [[eksekusi]]) memecah (sebagian besar) instruksi x86 kedalam potongan-potongan kecil instruksi (dikenal dengan "micro-ops") yang selanjutnya dieksekusi oleh arsitektur setara dengan arsitektur [[RISC]].
 
[[Bahasa rakitan]] dari x86 dibahas secara lebih terperinci di artikel [[Bahasa Rakitan x86]].
 
=== Mode Real (Real Mode) ===
Intel 8086 dan 8088 dilengkapi dengan 14 16-[[bit]] [[register prosesor|register]]. Empat diantaranya (AX, BX, CX, DX) dirancang sebagai fungsi umum (general purpouse) (meskipun masing-masing juga memiliki fungsi khusus tambahan; misalnya hanya register CX yang dapat digunakan sebagai penghitung (counter) dalam instruksi ''loop''). Setiap register dapat diakses sebagai dua byte (8-bit) terpisah (jadi byte-atas BX's dapat diakses sebagai BH dan byte-bawah-nya sebagai BL). Selain itu, terdapat juga empat register segmen ('''CS, DS, SS dan ES'''). Register ini digunakan untuk membangun alamat memori. Ada juga dua register penunjuk (pointer) (SP yang menunjuk pada titik awal ''stack'', dan BP yang dapat menunjuk pada titik manapun dalam ''stack'' atau memori). Ada dua register indeks (SI dan DI) yang dapat digunakan sebagai penunjuk dalam array. Dan terakhir, ada sebuah register penanda ([[register flag]]) yang terdapat didalamnya penanda-penanda seperti [[carry]], [[overflow]], zero dan lain-lain, dan juga sebuah penunjuk instruksi (instruction pointer - IP) yang menunjuk ke alamat instruksi yang sedang dieksekusi.
 
Dalam mode real, memori diakses secara ''tersegmentasi''. Hal ini dilakukan dengan menggeser (shifting) alamat segmen 4 bit ke kiri dan menambah sebuah ofset untuk menghasilkan alamat akhir sepanjang 20-bit. Contohnya, jika DS berisi nilai A000h dan SI berisi nilai 5677h, DS:SI akan mengacu pada titik alamat ''real'' DS &times;× 16 + SI = A5677h. Jadi jumlah total alamat memori yang dapat diakses dalam mode real adalah 2<sup>20</sup> byte, atau 1 [[Mebibyte|MiB]], jumlah yang sangat mengesankan di tahun 1978. Seluruh alamat memori terbagi dalam segmen dan ofset; dan setiap tipe akses (kode, data, atau ''stack'') memiliki register segmen tertentu (untuk data register yang digunakan DS, untuk kode digunakan register CS, dan untuk ''stack'' digunakan SS). Untuk mengakses data, register segmen dapat secara langsung dipilih (dengan melakukan ubah-paksa (override) prefik segmen) dari empat register segmen yang tersedia.
 
Dengan aturan ini, dua pasang segmen/ofset yang berbeda bisa mengacu ke lokasi memori absolut yang sama. Jadi bila DS berisi A111h dan SI 4567h, DS:SI akan menunjuk ke alamat A56777h seperti di atas. Lebih lanjut, CS dan SS berperan vital bagi program agar berfungsi secara benar, sehingga hanya DS dan ES yang dapat dipakai untuk mengacu ke segmen data diluar program (atau lebih tepatnya, diluar segmen program yang sedang dieksekusi) atau stack. Skema ini, yang semula bertujuan mempertahankan kompatibilitas dengan [[Intel 8085]], sering dikeluhkan oleh para programer (walaupun beberapa programer tidak terlalu mempedulikannya, dan popularitas x86 sebelum tahun-tahun mode proteksi diperkenalkan membuktikan bahwa hal ini bukan cacat yang sangat serius).
Baris 31:
CPU x86 32-bit yang modern masih mendukung ''real mode'', bahkan memulai operasi pada ''real mode'' setelah reset. Kode ''real mode'' yang dijalankan pada prosesor-prosesor tersebut bisa memanfaatkan register 32-bit dan register segmen tambahan (FS dan GS) yang mulai tersedia sejak 80386.
 
=== Mode terproteksi 16-bit (16-bit protected mode) ===
[[Prosesor 80286]] dapat menjalankan [[Operating System]] yang menggunakan [[Mode Real]] 16-bit [[prosesor 8086]] tanpa perubahan pada OS, namun prosesor ini juga mempunyai mode lain, yaitu [[mode terproteksi]]. Mode terproteksi memungkinkan program untuk mengakses [[RAM]] yang berukuran 16MB, dan memiliki memori virtual hingga 1GB. Hal ini dimungkinkan karena mode terproteksi menggunakan register segmen untuk menyimpan index ke sebuah [[tabel segmen]]. Pada 80286, terdapat dua buah tabel segmen, yaitu tabel GDT dan tabel LDT, masing-masing dapat menyimpan hingga 8192 perinci segmen, tiap segment memberi akses untuk memori sebesar hingga 64KB. Tabel segmen ini menyimpan alamat dasar yang berukuran 24-bit, yang akan digunakan untuk menghitung alamat absolut dari memori yang akan digunakan. Selain itu, segmen-segmen ini dapat diberikan salah satu dari empat jenis level akses.
 
Baris 112:
* [[x86 assembly language]]
* [[x86 instruction listings]]
* [[Real mode]] &mdash; [[Unreal mode]] &mdash; [[Virtual 8086 mode]] &mdash; [[Protected mode]] &mdash; [[Long mode]]
 
==Pranala Luar==
Baris 119:
* [http://sandpile.org x86 and x86-64 Instruction Set at sandpile.org]
* [http://www.amd.com/us-en/Corporate/VirtualPressRoom/0,,51_104_572_573^10034,00.html AMD Geode Series]
* [http://www.chiplist.com/ The ChipList] &ndash; By Adrian Offerman
* [http://www.cpu-info.com/index.php CPU-INFO: x86 processor information and indepth processor history]
* [http://www.eetimes.com/story/OEG19990805S0021 VIA bought IDT CPU division]