Macam-macam Register dan contohnya
4.2.1.
Segmen Register
Register
yang termasuk dalam kelompok ini terdiri atas register CS,DS,ES dan SS yang
masing-masingnya merupakan register 16 bit. Register-register dalam kelompok
ini secara umum digunakan untuk menunjukkan alamat dari suatu segmen. Register CS(Code
Segment) digunakan untuk menunjukkan tempat dari segmen yang sedang aktif,
sedangkan register SS(Stack Segment) menunjukkan letak dari segmen yang
digunakan oleh stack. Kedua register ini sebaiknya tidak sembarang diubah
karena akan menyebabkan kekacauan pada program anda nantinya.
Register DS(Data Segment) biasanya digunakan untuk menunjukkan tempat segmen dimana data-data pada program disimpan. Umumnya isi dari register ini tidak perlu diubah kecuali pada program residen. Register ES(Extra Segment), sesuai dengan namanya adalah suatu register bonus yang tidak mempunyai suatu tugas khusus. Register ES ini biasanya digunakan untuk menunjukkan suatu alamat di memory, misalkan alamat memory video.
Register DS(Data Segment) biasanya digunakan untuk menunjukkan tempat segmen dimana data-data pada program disimpan. Umumnya isi dari register ini tidak perlu diubah kecuali pada program residen. Register ES(Extra Segment), sesuai dengan namanya adalah suatu register bonus yang tidak mempunyai suatu tugas khusus. Register ES ini biasanya digunakan untuk menunjukkan suatu alamat di memory, misalkan alamat memory video.
Pada prosesor
80386 terdapat tambahan register segment 16 bit, yaitu FS dan GS.
4.2.2.
Pointer dan Index Register.
Register
yang termasuk dalam kelompok ini adalah register SP,BP,SI dan DI yang
masing-masing terdiri atas 16 bit. Register- register dalam kelompok ini secara
umum digunakan sebagai penunjuk atau pointer terhadap suatu lokasi di memory.
Register SP(Stack
Pointer) yang berpasangan dengan register segment SS(SS:SP) digunakan untuk
mununjukkan alamat dari stack, sedangkan register BP(Base Pointer)yang berpasangan
dengan register SS(SS:BP) mencatat suatu alamat di memory tempat data.
Register SI(Source
Index) dan register DI(Destination Index) biasanya digunakan pada
operasi string dengan mengakses secara langsung pada alamat di memory yang
ditunjukkan oleh kedua register ini.
Pada
prosesor 80386 terdapat tambahan register 32 bit, yaitu ESP,EBP,ESI dan EDI.
4.2.3.
General Purpose Register.
Register
yang termasuk dalam kelompok ini adalah register AX,BX,CX dan DX yang
masing-masing terdiri atas 16 bit. Register- register 16 bit dari kelompok ini
mempunyai suatu ciri khas, yaitu dapat dipisah menjadi 2 bagian dimana
masing-masing bagian terdiri atas 8 bit, seperti pada gambar 4.1. Akhiran H menunjukkan
High sedangkan akhiran L menunjukkan Low.
+ A X + + B X + + C X + + D X +
+-+–+–+-+ +-+–+–+-+ +-+–+–+-+ +-+–+–+-+
| AH | AL | | BH | BL | | CH | CL | | DH | DL |
+—-+—-+ +—-+—-+ +—-+—-+ +—-+—-+
Gambar 4.1. General purpose Register
Secara umum
register-register dalam kelompok ini dapat digunakan untuk berbagai keperluan,
walaupun demikian ada pula penggunaan khusus dari masing-masing register ini
yaitu :
Register AX,
secara khusus digunakan pada operasi aritmatika terutama dalam operasi
pembagian dan pengurangan.
Register BX,
biasanya digunakan untuk menunjukkan suatu alamat offset dari suatu segmen.
Register CX,
digunakan secara khusus pada operasi looping dimana register ini menentukan
berapa banyaknya looping yang akan terjadi.
Register DX,
digunakan untuk menampung sisa hasil pembagian 16 bit.
Pada
prosesor 80386 terdapat tambahan register 32 bit, yaitu EAX,EBX,ECX dan EDX.
4.2.4. Index
Pointer Register
Register IP
berpasangan dengan CS(CS:IP) menunjukkan alamat dimemory tempat dari
intruksi(perintah) selanjutnya yang akan dieksekusi. Register IP juga merupakan
register 16 bit. Pada prosesor 80386 digunakan register EIP yang merupakan
register 32 bit.
4.2.5. Flags
Register.
Sesuai
dengan namanya Flags(Bendera) register ini menunjukkan kondisi dari suatu
keadaan< ya atau tidak >. Karena setiap keadaan dapat digunakan 1 bit
saja, maka sesuai dengan jumlah bitnya, Flags register ini mampu memcatat
sampai 16 keadaan. Adapun flag yang terdapat pada mikroprosesor 8088 keatas
adalah :
- OF . Jika
terjadi OverFlow pada operasi aritmatika, bit ini
akan
bernilai 1.
- SF . Jika
digunakan bilangan bertanda bit ini akan bernilai 1
- ZF . Jika
hasil operasi menghasilkan nol, bit ini akan
bernilai 1.
- CF . Jika
terjadi borrow pada operasi pengurangan atau carry
pada
penjumlahan, bit ini akan bernilai 1.
0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00
+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+
| |NT| IOPL|OF|DF|IF|TF|SF|ZF| |AF| |PF| |CF|
+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+
Gambar 4.2. Susunan Flags Register 8088
- PF .
Digunakan untuk menunjukkan paritas bilangan. Bit ini akan
bernilai 1
bila bilangan yang dihasilkan merupakan bilangan genap.
- DF .
Digunakan pada operasi string untuk menunjukkan arah
proses.
- IF . CPU
akan mengabaikan interupsi yang terjadi jika
bit ini 0.
- TF .
Digunakan terutama untuk Debugging, dengan operasi step by
step.
- AF .
Digunakan oleh operasi BCD, seperti pada perintah AAA.
- NT .
Digunakan pada prosesor 80286 dan 80386 untuk menjaga
jalannya
interupsi yang terjadi secara beruntun.
- IOPL .
Flag ini terdiri atas 2 bit dan digunakan pada
prosesor
80286 dan 80386 untuk mode proteksi.
Adapun
susunan dari masing-masing flag didalam flags register dapat anda lihat pada
gambar 4.2. Pada prosesor 80286 dan 80386 keatas terdapat beberapa tambahan
pada flags register, yaitu :
- PE .
Digunakan untuk mengaktifkan mode proteksi. flag ini
akan
bernilai 1 pada mode proteksi dan 0 pada mode real.
- MP .
Digunakan bersama flag TS untuk menangani
terjadinya
intruksi WAIT.
- EM . Flag
ini digunakan untuk mensimulasikan coprosesor
80287 atau
80387.
- TS . Flag
ini tersedia pada 80286 keatas.
- ET . Flag
ini digunakan untuk menentukan jenis coprosesor
80287 atau
80387.
- RF .
Register ini hanya terdapat pada prosesor 80386 keatas.
- VF . Bila
flag ini bernilai 1 pada saat mode proteksi,
mikroprosesor
akan memungkinkan dijalankannya aplikasi mode real pada mode proteksi. Register
ini hanya terdapat pada 80386 keatas.
Arsitektur von
Neumann
Arsitektur Von Neumann adalah arsitektur komputer yang
menempatkan program (ROM=Read Only Memory) dan data (RAM=Random
Access Memory) dalam peta memori yang sama. Arsitektur ini memiliki address
dan data bus tunggal untuk mengalamati program (instruksi) dan data.
Arsitektur von Neumann atau Mesin Von Neumann merupakan arsitektur
yang diciptakan oleh John von Neumann pada tahun 1903-1957. Yang mana
hampir semua komputer saat ini menggunakan Arsitektur buatan John Von Neumann.
Arsitektur Von Neumann ini menggambarkan komputer dengan empat
bagian utama yaitu:
· Unit Aritmatika dan Logis (ALU),
· unit kontrol (CU)
· memori, dan
·
alat masukan I/O
Diagram blok hubungan antara komponen CPU:
Diagram Arsitektur Von Neumann
Cara kerja
1.
1. Komunikasi Antara Memori dan Unit Pengolahan
Komunikasi antara memori dan unit pengolahan
terdiri dari dua register :
a. Alamat memori Register (MAR).
b. Memori data Register (MDR).
Untuk membaca,
a. The address of the location is put in MAR. Alamat lokasi diletakkan Maret
b. Memori diaktifkan untuk membaca.
c. Nilai ini dimasukkan ke dalam MDR oleh memori.
Untuk menulis,
a. Alamat lokasi diletakkan Maret
b. Data dimasukkan ke dalam MDR.
c. Tulis Aktifkan sinyal menegaskan.
d. Nilai dalam MDR ditulis ke lokasi yang ditentukan.
2. CPU
a. Hardware unit seperti ALU , register, memori, dll, yang
dihubungkan bersama ke dalam jalur data-.
b. Aliran bit sekitar jalur data-dikendalikan oleh "gerbang" yang
memungkinkan bit mengalir atau tidak mengalir (off) melalui jalur data-.
c. Instruksi biner (1 = on, 0 = off) yang mengontrol aliran yang disebut micro-instruksi.
Jalur data
3. Memori Operasi
Ada dua operasi kunci pada memori:
a. fetch( address ) nilai kembali tanpa mengubah nilai yang
disimpan di alamat itu.
b. store( address, value ) menulis nilai baru ke dalam
sel pada alamat yang diberikan.
·
Memori jenis ini adalah acak-akses, yang berarti bahwa CPU dapat
mengakses nilai dari array setiap saat (vs akses sekuensial, seperti pada
tape).
·
Memori seperti ini disebut RAM (random-access memory.)
·
Beberapa memori non-volatile, atau read-only (ROM )
Keuntungan Model Arsitektur Von Neuman
a.
fleksibilitas pengalamatan program dan data.
b.
program selalu ada di ROM dan data selalu ada di RAM.
c.
Arsitektur Von Neumann memungkinkan prosesor untuk menjalankan program yang
ada didalam memori data (RAM).
Kelemahan Model Arsitektur Von Neumann
a.
bus tunggalnya itu
sendiri. Sehingga instruksi untuk mengakses program dan data harus dijalankan
secara sekuensial dan tidak bisa dilakukan overlaping untuk menjalankan
dua isntruksi yang berurutan.
b.
bandwidth program harus
sama dengan banwitdh data. Jika memori data adalah 8 bits maka program
juga harus 8 bits.
c.
prosesor Von Neumann membutuhkan jumlah clock CPI (Clock per
Instruction) yang relatif lebih banyak sehingga eksekusi instruksi dapat
menjadi relatif lebih lama.
Arsitektur Komputer Model Harvard
Arsitektur Harvard memiliki dua memori yang terpisah satu untuk program
(ROM) dan satu untuk data (RAM), yang mana arsitektur ini merupkan kebalikkan
dari arsitektur komputer model von nuemann, jika von neuman mengabungkan ROM
dan RAM menjadi satu maka arsitektur harvard maka kedua memori tersebut
dipisahkan.
Pada
mikroprosesor yang berarsitektur Harvard, overlaping pada saat
menjalankan instruksi bisa terjadi. Satu instruksi biasanya dieksekusi dengan
urutan fetch (membaca instruksi ), decode (pengalamatan), read
(membaca data), execute (eksekusi) dan write (penulisan data)
jika perlu. Secara garis besar ada dua hal yang dilakukan prosesor yaitu fetching
atau membaca perintah yang ada di memori program (ROM) dan kemudian diikuti
oleh executing berupa read/write dari/ke memori data (RAM).
Karena pengalamatan ROM dan RAM yang terpisah, ini memungkinkan CPU untuk
melakukan overlaping pada saat menjalankan instruksi. Dengan cara ini
dua instruksi yang beurutan dapat dijalankan pada saat yang hampir bersamaan.
Yaitu, pada saat CPU melakukan tahap executing instruksi yang pertama,
CPU sudah dapat menjalankan fetching instruksi yang ke-dua dan
seterusnya. Ini yang disebut dengan sistem pipeline, sehingga
program keseluruhan dapat dijalankan relatif lebih cepat.
Pada
arsitektur Harvard, lebar bit memori program tidak mesti sama dengan lebar
memori data. Misalnya pada keluarga PICXX dari Microchip, ada yang memiliki
memori program dengan lebar 12,14 atau 16 bits, sedangkan lebar data-nya tetap
8 bits. Karena bandwith memori program yang besar (16 bits), opcode dan operand
dapat dijadikan satu dalam satu word instruksi saja. Tujuannya adalah
supaya instruksi dapat dilakukan dengan lebih singkat dan cepat.
Kedua hal di
atas inilah yang membuat prosesor ber-arsitektur Harvard bisa memiliki CPI yang
kecil. PICXX dari Microchip dikenal sebagai mikroprosesor yang memiliki 1
siklus mesin (machine cycle) untuk tiap instruksinya, kecuali instruksi
percabangan.
Dari segi
kapasitas memori, tentu arsitektur Harvard memberi keuntungan. Karena memori
program dan data yang terpisah, maka kavling total memori program dan data
dapat menjadi lebih banyak. Mikrokontroler 8bit Motorola 68HC05 memiliki peta
memori 64K yang dipakai bersama oleh RAM dan ROM. Oleh sebab itu pengalamatan
ROM dan RAM hanya dapat mencapai 64K dan tidak lebih. Sedangkan pada
mikrokontroler Intel keluarga 80C51 misalnya, memori program (ROM) dan memori
data (RAM) masing-masing bisa mencapai 64K.
Tetapi ada juga kekurangannya, arsitektur Harvard
tidak memungkinkan untuk menempatkan data pada ROM. Kedengarannya aneh, tetapi
arsitektur ini memang tidak memungkinkan untuk mengakses data yang ada di ROM.
Namun hal ini bisa diatasi dengan cara membuat instruksi dan mekanisme khusus
untuk pengalamatan data di ROM. Mikroprosesor yang memiliki instruksi seperti
ini biasanya disebut ber-arsitektur Modified Harvard. Instruksi
yang seperti ini dapat ditemukan pada keluarga MCS-51 termasuk Intel 80C51,
P87CLXX dari Philips dan Atmel AT89LSXX
DIAGRAM BLOK ARSITEKTUR HARDVARD
Diagram Arsitektur Komputer Model Harvard
Kelebihan Arsitektur Komputer Model Harvard
a.
bandwidth program tidak mesti sama dengan bandwidth data
b.
opcode dan operand
dapat dijadikan dalam satu word instruksi saja
c.
instruksi dapat dilakukan dengan lebih singkat dan cepat
d.
memori program dan data yang terpisah, maka kavling total memori
program dan data dapat menjadi lebih banyak.
Kekurangan Arsitektur Komputer Model Harvard
a.
arsitektur Harvard tidak memungkinkan untuk menempatkan data pada ROM.
b.
arsitektur in tidak memungkinkan untuk mengakses data yang ada di ROM
CISC & RISC
Pada saat ini ada dua konsep populer yang berhubungan
dengan desain CPU dan set instruksi:
1. Complex Instruction Set Computing (CISC).
2. Reduce
Instruction Set Computing (RISC).
Semua sistem yang lama (komputer
mainframe, komputer mini atau komputer mikro) relatif mempunyai sistem CISC.
Walaupun sistem sekarang terdiri atas kedua jenis tersebut. Sistem RISCsaat ini
lebih populer karena tingkat kerjanya, dibandingkan dengan sistem CISC. Namun
karena biayanya tinggi, sistem RISC hanya digunakan ketika diperlukan kecepatan
khusus, keandalan dan sebagainya.
CISC
(Complex Instruction-Set Computer)
Complex Instruction Set Computer (CISC) adalah
sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan
beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi
aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam
sebuah instruksi. Tujuan utama dari arsitektur CISC adalah melaksanakan suatu
perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa
tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan
menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini,
sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita
beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan
menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit
eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar.
Karakteristik CISC yg "sarat
informasi" ini memberikan keuntungan di mana ukuran program-program yang
dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin
berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun
1960) menjadi jauh lebih hemat. Memang setelah itu banyak desain yang
memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga
mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada
kenyataannya tidaklah selalu demikian.
Contoh-contoh prosesor CISC adalah : System/360, VAX,
PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.
CISC mempunyai karakteristrik :
1. Instruksi berukuran tunggal
2. Ukuran yang umum adalah 4 byte.
3. Jumlah mode pengalamatan data yang sedikit,
biasanya kurang dari lima buah.
4. Tidak terdapat pengalamatan tak langsung.
5. Tidak terdapat operasi yang menggabungkan operasi
load/store dengan operasi aritmetika (misalnya, penambahan dari memori,
penambahan ke memori).
RISC (Reduce Instruction Set Computer)
RISC Reduced Instruction Set Computingatau
"Komputasi set instruksi yang disederhanakan. Merupakan sebuah arsitektur
komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis
eksekusi yang paling sederhana. Biasanya digunakan pada komputer berkinerja
tinggi seperti komputer vektor.
Bahasa pemprograman
memungkinkan programmer dapat mengekspresikan algoritma lebih singkat, lebih
memperhatikan rincian, dan mendukung penggunaan pemprograman terstruktur,
tetapi ternyata muncul masalah lain yaitu semantic gap, yaitu perbedaan antara
operasi-operasi yang disediakan oleh HLL dengan yang disediakan oleh arsitektur
komputer, ini ditandai dengan ketidakefisienan eksekusi, program mesin yang
berukuran besar,dan kompleksitas kompiler.
Set-set instruksi yang kompleks tersebut dimaksudkan
untuk :
1. Memudahkan pekerjaan kompiler
2. Meningkatkan efisiensie ksekusi, karena operasi
yang kompleks dapat diimplementasikan didalam mikrokode.
3. Memberikan dukungan bagi HLL yang lebih kompleks
dan canggih.
RISC mempunyai karakteristik :
1. One cycle execution time : satu putaran eksekusi.
2. Prosessor RISC mempunyai CPI (clock per
instruction) atau waktu per instruksi untuk setiap putaran. Hal ini dimaksud
untuk mengoptimalkan setiap instruksi pada CPU.
3. Pipelining adalah sebuah teknik yang
memungkinkan dapat melakukan eksekusi secara simultan. Sehingga proses
instruksi lebih efiisien
4. Large number of registers: Jumlah register yang
sangat banyak
5. RISC didesain dimaksudkan untuk dapat menampung
jumlah register yang sangat banyak untuk mengantisipasi agar tidak terjadi
interaksi yang berlebih dengan memory.
6. Rangkaian instruksi built-in pada processor yang
terdiri dari perintah-perintah yang lebih ringkas dibandingkan dengan CISC.
7. RISC memiliki keunggulan dalam hal kecepatannya
sehingga banyak digunakan untuk aplikasi-aplikasi yang memerlukan kalkulasi
secara intensif.
Ø Perbandingan antara RISC dengan CISC
Cara sederhana untuk melihat
kekurangan dan kelebihan dari CISC dan RISC adalah dengan membandingkannya
secara langsung. Pada tahap perbandingan ini dicoba dengan menghitung perkalian
dua bilangan dalam memori. Memori tersebut terbagi menjadi beberapa lokasi yang
diberi nomor 1(baris): 1 (kolom) hingga 6:4. Unit eksekusi bertanggung-jawab
untuk semua operasi komputasi. Namun, unit eksekusi hanya beroperasi untuk data
yang sudah disimpan kedalam salah satu dari 6 register (A, B, C, D, Eatau F).
Misalnya, kita akan melakukan perkalian (product) dua angka, satu di simpan di
lokasi 2:3 sedangkan lainnya di lokasi 5:2, kemudian hasil perkalian tersebut
dikembalikan lagi kelokasi 2:3.
1.Menggunakan
Pendekatan RISC
Prosesor RISC hanya
menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu
siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya
dibagi menjadi tiga instruksi yang berbeda, yaitu“LOAD”, yang digunakan untuk
memindahkan data dari memori kedalam register, “PROD”, yang digunakan untuk
melakukan operasi produk (perkalian) dua operan yang berada di dalam register
(bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data
dari register kembali kememori. Berikut ini adalah urutan instruksi yang harus
dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC
(dalam 4 baris bahasa mesin):
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
2.Menggunakan
Pendekatan CISC
Tujuan utama dari arsitektur CISC
adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin
sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras
prosesor mampu memahami dan menjalankan beberapa rangkaian operasi.
Sebuah prosesor CISC sudah
dilengkapi dengan sebuah instruksi khusus, yang diberi nama MULT. Saat
dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register
yang berbeda, melakukan perkalian operan di unit eksekusi dan kemudian
mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup
satu saja.
MULT 2:3,
5:2
CISC
- Penekanan
pada perangkat keras (hardware)
- Termasuk
instruksi kompleks multi-clock
-
Memori-ke-memori: “LOAD” dan “STORE” saling bekerjasama
- Ukuran
kode kecil, kecepatan rendah
- Transistor
digunakan untuk menyimpan instruksi-instruksi kompleks
RISC
- Penekanan
pada perangkat lunak (software)
-
Single-clock, hanya sejumlah kecil instruksi
- Register
ke register: “LOAD” dan “STORE” adalah instruksi - instruksi terpisah
- Ukuran
kode besar, kecepatan (relatif) tinggi
- Transistor
banyak dipakai untuk register memori
x86 & ARM
x86
Arsitektur
x86 adalah rancangan Set Instruksi Komputer Kompleks (Complex Instruction Set
Computer) dengan panjang instruksi yang bervariasi. Word disimpan dengan urutan
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.
1.
Mode Real (Real Mode)
Intel 8086 dan 8088 dilengkapi dengan 14 16-bit 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 × 16 + SI = A5677h. Jadi jumlah total alamat memori yang dapat
diakses dalam mode real adalah 220 byte, atau 1 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).
Selain itu, 8086 juga memiliki 64 KB alamat I/O 8-bit (atau 32
K-word dari 16-bit), dan satu 64 KB (satu segmen) stack di memori yang didukung
oleh hardware (memakai register-register SS, SP, dan BP). Hanya word (2 byte)
yang bisa di-push ke stack. Stack tumbuh ke bawah (ke arah alamat yang lebih
rendah secara numerik), dengan ujung bawah diacu oleh SS:SP. Ada 256 interrupt
yang dapat diaktifkan oleh hardware maupun software. Interrupt tersebut bisa
bertingkat, memanfaatkan stack untuk menyimpan alamat balik.
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.
2.
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.
Walaupun dibuatnya prosesor ini merupakan pengembangan yang baik,
prosesor ini sangat jarang digunakan karena mode terproteksi tidak dapat
menjalankan program-program yang berjalan mode real yang sudah ada sebagai
proses, karena program-program mode real sering mengakses perangkat keras
secara langsung dan beberapa ada yang melakukan aritmatika segmen, sehingga
tidak dapat dijalankan pada mode terproteksi.
ARM
Prosesor berasitektur ARM merupakan prosesor yang paling banyak digunakan
dalam perangkat mobile saat ini. Desainnya yang sederhana, membuat prosesor ARM
cocok untuk aplikasi berdaya rendah.
Bebeda dari Intel dan AMD yang memproduksi dan menjual prosesor
rancangan mereka sendiri. ARM hanya menjual lisensi hak paten desain prosesor
mereka kepada berbagai perusahaan manufaktur semikonduktor.
Lisensi arsitektur proseor ARM saat ini dimiliki oleh Alcatel, Atmel,
Broadcom, Cirrus Logic, Digital Equipment Corporation, Freescale, Intel melalui
DEC, LG, Marvell Technology Group, NEC, NVIDIA, NXP Semiconductors, OKI,
Quallcomm, Samsung, Sharp, ST Microelectronics, Symbios Logic, Texas
Instruments, VLSI Technology, Yamah dan ZiiLABS. Dalam situs resmi
perusahaan, ARM mengklaim telah menjual 30 miliar unit prosesor dan lebih dari
16 juta prosesor terjual setiap harinya.
Pada awalnya, Advanced RISC Machines (ARM) yang didirikan pada tahun 1990
ini merupakan sebuah perusahaan patungan antara Acorn Computers, Apple
Computer (sekarang Apple Inc), dan VLSI Technology. Pada tahun 1998, Advanced
RISC Machines berganti nama menjadi ARM Holdings. Perusahaan ini fokus
pada penelitan dan pengembangan desain arsitektur prosesor.
Arsitektur ARM menjadi dasar bagi sebagian besar central processing
unit (CPU) di berbagai perangkat mobile. ARM mempunyai desain
arsitektur Cortex seri M, R, A, hingga seri A57. Mereka juga memiliki desain
arsitektur untuk graphics processing unit (GPU) bernama Mali.
Berikut daftar
rancangan ARM dari awal hingga saat ini.
Arsitektur
|
Bit
|
Design ARM Holdings
|
Design dari Pihak ketiga
|
|
ARMv1
|
32/26
|
|||
ARMv2
|
32/26
|
|||
ARMv3
|
32
|
|||
ARMv4
|
32
|
StrongARM, FA526
|
||
ARMv4T
|
32
|
|||
ARMv5
|
32
|
XScale, FA626TE, Feroceon, PJ1/Mohawk
|
||
ARMv6
|
32
|
|||
ARMv6-M
|
32
|
Microcontroller
|
||
ARMv7-M
|
32
|
Microcontroller
|
||
ARMv7E-M
|
32
|
Microcontroller
|
||
ARMv7-R
|
32
|
Real-Time
|
||
ARMv7-A
|
32
|
Application
|
||
ARMv8-A
|
64
|
Application
|
Menurut data dari ARM Holding, arsitektur ARM menguasai 95 persen
arsitektur prosesor smartphone, 35 persen televisi digital, serta 10
persen komputer mobile. Hampir semua tablet dan smartphone
unggulan, baik yang berbasis Android, iOS, BlackBerry, hingga Windows Phone,
memakai prosesor arsitektur ARM. Beberapa konsol game portabel,
seperti Game Boy Advance, Nintendo DS, dan PlayStation Portable, memakai
prosesor ARM.
ARM juga mengekspansi bisnisnya ke pasar komputer server. Pada
Mei 2012, Dell mengumumkan Copper, server yang memakai prosesor
Marvell dengan desain ARM.
Pada Oktober 2012, ARM juga mengumumkan prosesor 64-bit dari keluarga
Cortex-A57 yang saat ini digunakan oleh iPhone 5s, iPad Air dan iPad Mini
generasi kedua. Samsung juga telah membeli lisensi desain ARM 64-bit untuk
smartphonenya yang akan dirilis di 2014.
Perbedaan
Prosessor X86 dan ARM
Prosessor X86
|
Prosessor ARM
|
|
Tidak ada komentar:
Posting Komentar