You are on page 1of 34

MAKALAH

ARSITEKTUR CPU

DI SUSUN

OLEH:

Nama : Muhammad Zulfan Azhari


NIM : 090412026
Kelas : G2
Jurusan : T. Elektro
Prodi : T. Informatika

POLITEKNIK NEGERI LHOKSUEMAWE


JURUSAN TEKNIK ELEKTRO
PRODI TEKNIK INFORMATIKA
2011
KATA PENGANTAR

Puji syukur mari sama-sama kita panjatkan kehadirat Allah swt yang telah memberi kita
kesempatan dan kesehatan kepada kita semua sehingga penulis dapat menyelesaikan sebuah
makalah yang sangat sederhana ini dengan judul “Arsitektur CPU”.

Selanjutnya salawat dan salam kita limpahkan kepada junjungan kita Nabi Muhammad saw
yang telah membawa kita dari alam kebodohan ke alam yang penuh dengan ilmu
pengetahuan dan rahmat seperti yang dapat kita rasakan sekarang ini.

Penulis menyadari sepenuhnya bahwa makalah ini masih jauh dari kesempurnaan, baik dari
segi tata bahasa maupun dari segi-segi lainnya, oleh sebab itu penulis mengharapkan saran
dan kritikannya yang bersifat positif dan membangun dari semua pihak.

Akhirnya semoga Allah swt memberikan yang layak atas seluruh jasa dan kebijakan yang
penulis terima. Semoga hasil karya ini bermanfaat bagi penulis sendiri maupun bagi pihak
yang lain.

Wassalam
BAB I :
SET INSTRUKSI

Operasi CPU ditentukan oleh instruksi-instruksi yang dieksekusinya. Instruksi-instruksi ini


dikenal sebagai instruksi mesin atau instruksi computer. Set fungsi dari instruksi-instruksi
yang berbeda yang dapat dieksekusi oleh CPU dikenal sebagai set instruksi CPU.

1. Elemen-elemen Instruksi Mesin


Setiap instruksi harus terdiri dari informasi yang diperlukan oleh CPU untuk dieksekusi.
Gambar 1.1 menunjukkan langkah-langkah yang terdapat dalam eksekusi instruksi dan
bentuk elemen-elemen instruksi mesin. Elemen-elemen tersebut adalah sebagai berikut:

Gambar 1.1
Diagram Status Siklus Instruksi

 Kode operasi: menentukan operasi-operasi yang akan dilakukan (misalnya, ADD,


I/O). Operasi itu dispesifikasikan oleh suatu kode biner yang dikenal sebagi opcode.
 Acuan Operand Sumber: Operasi dapat melibatkan satu atau lebih operand sumber
dengan kata lain operand adalah input bagi operasi.
 Acuan Operand Hasil: Operasi dapat menghasilkan sebuah hasil.
 Acuan Instruksi Berikutnya: Elemen ini memberitahukan CPU posisi instruksi
berikutnya yang harus diambil setelah menyelesaikan eksekusi suatu instruksi

Melihat dari sumbernya, operand suatu operasi dapat berada di salah satu dari ketiga
daerah berikut ini:
 Memori Utama aatau Memori Virtual: Dengan adanya acuan instruksi berikutnya
maka alamat memori utama atau memori virtual harus diketahui.
 Register CPU: Dengan suatu pengecualian yang sangat jarang terjadi, CPU terdiri
dari sebuah register atau lebih yang dapat diacu oleh instruksi-instruksi mesin. Jika
hanya terdapat sebuah register saja, acuan ke instruksi tersebut dapat berbentuk
implisit. Sedangkan jika terdapat lebih dari satu register, setiap register diberi nomor
yang unik dan instruksi harus terdiri dari nomor register yang dimaksud.
 Perangkat I/O: Instruksi harus menspesifikasikan modul I/O dan perangkat yang
diperlukan oleh operasi. Jika digunakan I/O memori terpetakan, perangkan ini
merupakan memori utama atau memori virtual.

2. Representasi Instruksi
Di dalam computer, instruksi direpresentasikan oleh sehimpunan bit. Himpunan bit ini
dibagi menjadi beberapa bidang yang berkaitan degan elemen-elemen yang akan memuat
isntruksi. Layout instruksi ini dikenal sebagai bentuk instruksi. Contoh yang sederhana
ditunjukkan pada Gambar 1.2. Selama berlangsungnya eksekusi instruksi, instruksi dibaca
ke dalam register (Instruction Register) yang terdapat dalam CPU. Untuk melakukan
operasi yang diperlukan, CPU harus dapat mengeluarkan data dari berbagai bidang
instruksi.

Sangatlah sulit bagi seorang programmer untuk memahami representasi biner dari
instruksi-instruksi mesin. Oleh karena itu, diperlukan untuk memahami representasi
simbolik instruksi mesin.

Opcode direpresentasikan dengan singkatan-singkatan yang disebut dengan mnemonik,


yang mengindikasikan operasi. Contohnya adalah:
ADD Add (menambahkan)
SUB Substract (pengurangan)
MPY Multiply (perkalian)
DIV Divide (pemagian)
LOAD Muatkan data dari memori
STORE Simpan data ke memori

Operand-operand juga dapat direpresentasikan secara simbolik. Misalnya instruksi


ADD R, y
Berarti tambahkan nilai yang terdapat pada lokasi Y ke isi register R. Dalam contoh ini, Y
berkaitan dengan alamat lokasi di dalam memori dan R berkaitan dengan register tertentu.
Perlu dicatat bahwa operasi dilakukan terhadap isi alamat, bukan terhadap alamatnya.

Gamber 1.2
Sebuah Bentuk Instruksi Sederhana

3. Jenis-jenis Instruksi
Berikut merupakan sebuah contoh instruksi yang diekspresikan dalam bahasa BASIC.
Misalnya:
X = X + Y
Pernyataan ini menginstruksikan komputer untuk menambah nilai yang tersimpan di Y ke
nilai yang tersimpan di X dan menyimpan hasilnya di X. Bagaimana hal ini dapat
dilakukan dengan instruksi mesin? Kita anggap bahea variabel X dan Y berkorespondensi
dengan lokasi 513 dan 514. Jika kita mengasumsikan set instruksi mesin yang sederhana,
operasi ini dapat dilakukan dengan tiga buah instruksi:

1. Muatkan sebuah regiser degan isi lokasi memori 513


2. Tambahkan isi lokasi memori 514 ke register
3. Simpan isi register di lokasi memori 514
Seperti yang terlihat diuraian diatas, bahwa sebuah instruksi bahasa BASIC memerlukan
tiga buah instruksi meisn. Ini merupakan hubungan yang umum antara bahasa tingkat
tinggi dengan bahasa mesin. Bahasa tingkat tinggi mengekspresikan operasi-operasi dalam
bentuk aljabar yang singkat, yaitu dengan menggunakan variabel. Sedangkan bahasa
mesin mengekspresikan operasi dalam bentuk dasar yang meliputi perpindahan data dari
register ke register.

Dengan menggunakan contoh sederhana ini sebagai tuntutan, kita perhatikan jenis-jenis
instruksi yang harus dimasukkan ke dalam komputer. Suatu komputer harus memiliki set
instruksi yang memungkinkan pengguna untuk memformulasikan pengolahan data. Cara
lain dalam memandang hal tersebut adalah dengan memperhatikan kemampuan
pemograman bahasa tingkat tinggi. Agar dapat dieksekusi, setiap program yang ditulis
dalam bahasa pemograman tingkat tinggi harus diterjemahkan ke dalam bahasa mesin.
Jadi, set instruksi mesin harus dapat mengekspresikan setiap instruksi bahasa tingkat
tinggi. Dalam hal ini kita dapat menggolongkan jenis-jenis instruksi menjadi seperti di
bawah ini:

 Pengolahan data: Instruksi-instruksi aritmatika dan logika


 Penyimpanan data: Instruksi-instruksi memori
 Perpindahan data: Instruksi I/O
 Kontrol: Instruksi pemeriksaan dan percabangan

Instruksi aritmatika memiliki kemampuan komputasi untuk pengolahan data numeri.


Sedangkan instruksi logika atau Boolean beroperasi terhadap bit-bit word sebagai bit,
bukannya sebagai bilangan, sehingga instruksi-instruksi ini memiliki kemampuan untuk
pengolahan data lain yang akan digunakan oleh pengguna. Operasi-operasi tersebut
dilakukan terutama bagai data yang terdapat pada register-register CPU. Dengan
demikian, harus ada instruksi-instruksi memori untuk memindahkan data yang terdapat
dalam memori dan register. Instruksi I/O diperlukan untuk memindahkan program dan
data ke dalam memori dan mengembalikan hasil komputasi kepada pengguna. Instruksi-
instruksi pengujian digunakan untuk menguji/memeriksa nilai word data atau status
komputasi. Kemudian instruksi percabangan digunakan untuk mencabangkan ke set
instruksi yang lain.
4. Jumlah Alamat
Salah satu cara yang sering digunakan dalam menjelaskan arsitektur CPU adalah dengan
memakai jumlah alamat yang terdapat pada masing-masing instruksi. Dimensi instruksi
telah menjadi kurang signifikan dengan semakin meningkatnhya kompleksitas rancangan
CPU.

Beberapa jumlah alamat maksimum yang akan diperlukan dalam sebuah instruksi?
Sebenarnya, instruksi aritmatika dan logika memerlukan operand yang berjulah banyak.
Secara virtual operasi aritmatika dan logika merupakan unary (suatu operand) atau biner
(dua operand). Dengan demikian diperlukan maksimum dua alamat untuk acuan operand.
Hasil operasi tersebut memerlukan alamat ketiga. Terakhir, setelah sebuah instrusksi
selesai, instruksi berikutnya harus diambil dan alamatnya diperlukan juga.

Pernyataan di atas menyatakan bahwa instruksi perlu memiliki empat buah acuan alamat:
dua alamat untuk operand, satu alamat untuk hasil operasi, dan satu buah alamat instruksi
berikutnya. Dalam praktriknya instruksi empat alamat sangat jarang ditemukan. Sebagian
besar CPU merupakan variasi satu, dua, atau tiga alamat dengan alamat instruksi
berikutnya merupakan implisit (diperboleh dari pencacah program).

Gambar 1.3 membandingkan instruksi satu, dua, dan tiga alamat yang dapat dipakai untuk
menghitung Y = (A – B) : (C + D x E). Dengan menggunakan tiga buah alamat, setipa
instruksi menspesifikasikan dua lokasi operand dan sebuah lokasi hasil operasi. Karena
kita tidak akan mengubah nilai-nilai lokasi operand, lokasi sementara T digunakan untuk
menyimpan beberapa hasil operasi.

Gambar 1.3
Program-program untuk mengeksekusi
Y = (A – B) : (C + D x E)

(a) Instruksi tiga alamat


(b) Instuksi dua alamat

Instruksi Komentar
LOAD D AC ← D
MPY E AC ← AC x E
ADD C AC ← AC + C
STOR Y Y ← AC
LOAD A AC ← A
SUB B AC ← AC – B
DIV Y AC ← AC : Y
STOR Y Y ← AC

(c) Instruksi satu alamat

5. Rancangan Set Instruksi


Salah satu hal yang paling menarit tentang rancangan komputer adalah rancangan set
instruksi. Karena rancangan ini mempengaruhi banyak aspek sistem komputer, maka
rancangan set instruksi sangat kompleks. Set isntruksi menentukan banyak fungsi yang
akan dilakukan oleh CPU dan karena itu memiliki efek yang sangat menentukan
implementasi CPU. Set Instruksi merupakan alat bagi pemograman untuk mengontrol
CPU. Dengan demikian kebutuhan-kebutuhan pemograman harus menjadi bahan
pertimbangan dalam merancang set instruksi.

Dalam rancangan set instruksi terdapat beberapa masalah yang paling fundamental.
Masalah rancangan fundamental itu sendiri meliputi:
 Repertoir operasi: Berapa banyak dan operasi-operasi apa yang harus disediakan
dan sekompleks apakah operasi itu seharusnya.
 Jenis data: Berbagai jenis data pada saat operasi dijalankan
 Bentuk instruksi: Panjang instruksi (dalam bit), jumlah alamat, ukuran bidang dan
sebagainya.
 Register: Jumlah register CPU yang dapat dipacu oleh instruksi dan fungsinya.
 Pengalamatan: Mode untuk menspesifikasikan alamat suatu operand.
BAB II :
MODE PENGALAMATAN

Bidang alamat atau bidang pada bentuk instruksi yang umum adalah relatif kecil. Kita dapat
mengambil acuan cakupan yang besar tentang lokasi memori utaa atau untuk beberapa sistem
memroi virtual. Untuk mencapainya, berbagai teknik pengalamatan telah dilakukan. Semua
teknik tersebut melibatkan beberapa terik-menarik antara cakupan alamat atau fleksibilitas
pangalamatan pada satu sisi. Dalam bab ini kita akan membahas teknik-teknik pengalamatan
paling umum:

 Segera (Immediate)
 Langsung
 Tidak langsung
 Register
 Register tidak langsung
 Penggantian
 Stack

Mode-mode ini diilustrasikan pada Gambar 2.1. Pada bagian ini kita menggunakan notasi
berikut:

A = terdiri dari bidang alamat instruksi


R = terdiri dari bidang alamat pada instruksi yang mengacu pada register
EA = alamat aktual (efektif) dari lokasi yang berisi operand yang diacu
(X) = terdiri dari lokasi memori X atau register X

Instruksi

(a) segera
(b) Langsung (c) Tidak langsung

(d) Regiser (e) Register tidak langsung

(f) Penggantian (g) Stack

1. Pengalamatan Segera (Immediate Addressing)


Bentuk yang paling sederhana dari beberapa mode pengalamatan adalah pengalamatan
segera, dimana operasi benar-benar diberikan pada instruksi:

OPERAND = A
Mode ini dapat digunakan untuk mendefinisikan dan menggunakan nilai awal variabel
tetap atau yang di-set. Secara umum, bilangan akan disimpan dalam bentuk komplemen
dua dan bit paling kiri bidang operand digunakan sebagai bit tanda.

Keuntungan mode ini adalah tidak ada acuan memori selain dari pengambilan instruksi
yang diperlukan untuk memperoleh operand, sehingga menghemat satu memori dalam
siklus isntruksi. Kerugiannya adalah ukuran bilangannya terbatas pada ukuran bidang
alamat karena kebanyakan set instruksi lebih kecil dibandingkan dengan panjang word.

2. Pengalamatan Langsung (Direct Addressing)


Bentuk pengalamatan yang sangat sederhana adalah pengalamatan langsung, di mana
bidang alamat terdiri dari alamat efektif operand:

EA = A

Teknik ini adalah umum pada generasi awal komputer tetapi tidak umum pada arsitektur
kontemporer. Teknik tersebut hanya memerlukan satu acuan memori dan tidak ada
kalkulasi khusus. Pembatasan yang jelas adalah teknik tersebut memberikan hanya ada
sebuah ruang alamat terbatas.

3. Pengalamatan Tidak Langsung (Indirect Addressing)


Dengan pengalamatan langsung, panjang bidang alamat pada umumnya kurang dari
panjang word, sehingga membatasi cakupan alamat. Penyelesaiannya adalah bidang
alamat yang mengacu pada alamat word dalam memori dan terdiri dari sepajang alamat
operand. Pengalamatan ini dikenal sebagai pengalamatan tidak langsung:

EA = (A)

Tanda kurung digunakan untuk diinterpretasikan sebagai arti yang terdiri dari. Keuntungan
yang jelas nyata dari pendekatan ini adalah panjang word N, suatu ruang alamat 2 N kini
tersedia. Sedangkan kerugiannya adalah eksekusi instruksi memerlukan dua acuan memori
untuk mengambil operand tersebut: satu untuk mendapatkan alamatnya dan yang satu lagi
untuk mendapatkan nilainya.
4. Pengalamatan Register (Register Addressing)
Pengalamtan register adalah sama dengan pengalamatan langsung. Satu-satunya perbedaan
adalah bidang alamat mengacu pada register daripada alamat memori utama:

EA = R

Secara umum, bidang alamat yang mengacu register mempunyai panjang 3 sampai 5 bit,
sehingga total register general purpose dapat diacu dari 8 sampai dengan 32 bit.

Keuntungan mode pengalamatan ini adalah:


(1) Hanya bidang alamat kecil diperlukan dalam instruksi
(2) Tidak diperlukan acuan memori.

Kerugian dari mode ini adlah ruang alamat sangat dibatasi.

5. Pengalamatan Register Tidak Lansung (Register Indirect Addressing)


Seperti halnya pengalamtan register yang dapat dianalogikan dengan pengalamatan
langsung, pengalamatan register tidak langsung juga dapat disamakan dengan
pengalamatan tidak langsung. Pada kedua kasus tersebut, satu-satunya perbedaan adalah
bidang alamat mengacu ke lokasi memori atau register. Jadi, untuk alamat register tidak
langsung adalah:

EA = (R)

Keuntungan dan keterbatasan pengalamtan register tidak langsung pada dasarnya sama
dengan pengalamatan tidak langsung:

 keterbatasan bidang alamat diatasi dengan pengakesan memori yang tidak langsung
sehingga alamat yang dapat diacu makin banyak.
 Dalam satu siklus pengambilan dan penyimpanan, mode pengalamtan register tidak
langsung hanya menggunakan satu referensi memori utama sehingga lebih cpat
daripada mode pengalamatan tidak langsung.
6. Pengalamatan penggantian (Displacement Addressing)
Mode pengalamatan yang handal dapat diperoleh dengan mengkombinasikan kemampuan
pengalamatan langsung dan register pengalamatan tidak langsung. Hal tersebut dikenal
dengan berbagai macam nama tergantung pada konteks yang digunakan, tetapi mekanisme
dasarnya adalah sama. Kita akan mengacu pada mekanisme dasar ini sebagai pengalamtan
penggantian:

EA = A + (R)

Mode ini mensyaratkan instruksi memiliki dua buah bidang alamat, sedikitnya sebuah
biang yang ekspilit. Bidang ekspilit bernilai A dan bidang implisit mengarah pada register.
Operand berada pada alamat A ditambah isi register untuk menghasilkan alamat yang
efektif.

7. Pengalamatan Stack (Stack Addressing)


Stack adalah array lokasi yang linier = pushdown list = last-in-first-out-queue dan
merupakan blok lokasi yang terbalik. Ada beberapa hal yang berkaitan dengan stack,
diantaranya adalah pointer yang nilainya merupakan alamat bagian paling atas stack.

Dua elemen teratas stack dapat berada di dalam register CPU, yang dalam hal ini stack
pointer mengacu ketiga stack dengan stack pointer tetap berada di dalam register. Dengan
demikian, acuan-acuan ke lokasi stack di dalam memori pada dasarnya merupakan
pengalamatan register tidak langsung.
BAB III :
STRUKTUR DAN FUNGSI CPU

1. Organisasi CPU
Untuk memahami organisasi CPU ada beberapa syarat yang perlu diperhatikan,
diantaranya adalah:

 Menambil instruksi: CPU membaca instruksi dari memori.


 Interpret instruksi: Instruksi dikodekan untuk menentukan tindakan apa yang
diperlukan.
 Mengambil data: Eksekusi suatu instruksi dapat memerlukan pembentukan
beberapa aritmatika atau operasi logika pada data.
 Mengolah data: Eksekusi satu instruksi dapat memerlukan pembentukan beberapa
operasi aritmatika atau operasi logika pada data.
 Menulis data: hasil suatu eksekusi dapat memerlukan penulisan data ke memori
atau modul I/O.

Untuk melakukan hal ini, jelas bahwa CPU diperlukan untuk menyimpan beberapa data
untuk sementara. CPU harus mengingat lokasi instruksi terakhir sehingga CPU dapat
mengetahui di mana mendapatkan instruksi selanjuntnya. CPU diperlukan untuk
menyimpan instruksi dan data untuk sementara selagi suatu instruksi sedang dieksekusi.
Dengan kata lain CPU memerlukan sebuah internal kecil.

Gambar 3.1
CPU dengan BUS sistem
Gambar 3.1 merupakan pandangan sederhana tentang CPU, mengindikasikan koneksi
yang lain dari sistem via bus sistem.

CPU mempunyai tiga komponen utama, yaitu:

(1) ALU (Aritmatic and Logic Unit)


Melakukan komputasi atau pengolahan data berdasar instruksi yang diberikan
padanya.
(2) CU (Control Unit)
Mengontrol perpindahan data dan instruksi ke CPU atau dari CPU dan mengontrol
operasi ALU. Selain itu CU menunjukkan memori internal minimum, yang terdiri
dari beberapa lokasi penyimpanan yang disebut register.
(3) Register
Merupakan tempat penyimpanan sementara.

2. Organisasi Register
Pada tingkat hirarki yang lebih tinggi, memori lebih cepat, lebih keci, dan lebih mahal (per
bit). Di dalam CPU terdapat set daftar yang berfungsi sebagai tingkatan memori di atas
memori utama dan cache pada hirarki. Register pada CPU membentuk dua peran:

a. Register terlihat oleh pengguna (User-visible registers)


Ini memungkinkan pemograman bahasa mesin atau bahasa asembler untuk
memperkecil acuan memori utama dengan pengoptimalan penggunaan register.
Register ini merupakan register yang dapat direferansikan dengan menggunakan
bahasa mesin yang dieksekusi CPU. Register ini mempunyai beberapa kategori,
yaitu:

 General purpose
 Data
 Alamat
 Kode kondisi
b. Register kontrol dan status (Control and Status registers)
Register ini digunakan oleh unit kontrol untuk mengontrol operasi CPU dan oleh
program sistem opeasi untuk mengotrol eksekusi program. Terdapat berbagai
macam register yang mengontrol operasi CPU. Kebanyakan CPU sebagian register
dapat terdeteksi oleh instruksi mesin yang dieksekusi di dalam mode kontrol atau
mode sistem operasi.

Pada setiap mesin yang berbeda tentu akan mempunyai organisasi register yang
berbeda pula. Berikut merupakan daftar dari jenis-jenis register:

 Pencacah program (Program counter – PC): Berisi alamat instruksi yang


diambil.
 Register instruksi (Instruction register – IR): Berisi instruksi yang paling
akhri diambil.
 Register alamat memori (Memory address register – MAR): Berisi alamat
lokasi dalam memori.
 Register buffer memori (Memory buffer register – MBR): Berisi word data
yang perlu ditulis ke memori atau word yang paling akhir dibaca.

Semua rancangan CPU meliputi sebuah register atau sekelompok register, sering
dikenal sebagai Program Status Word (PSW), yang terdiri dari informasi status.
PSW secara umu terdiri dari kode kondisi ditambah informasi status lainnya.
Common field atau flag meliputi hal-hal berikut:

 Sign: Berisi bit tanda hasil dari operasi aritmatika terakhir.


 Zero: Di-set ketika hasilnya sama dengan 0.
 Carry: Di-set jika sebuah operasi menghasilkan suatu pembawa
(penambahan) ke dalam atau meminjam (pengurangan) ke luar dari bit order
tinggi. Digunakan untuk operasi aritmatika multiword.
 Equal: Di-set apabila hasil perbandingan logikanya sama.
 Overflow: Digunakan untuk mengindikasikan overflow perhitungan operasi
aritmatika.
 Interrupt Enable/Disable: Digunakan untuk mengizinkan atau mencegah
interrupt.
 Supervisor: Mengindikasikan apakah CPU secang mengeksekusi dalam mode
supervisor atau mode user. Instruksi tertentu hanya dapat dieksekusi dalam
mode supervisor saja dan daerah-daerah tertentu di dalam memori hanya dapat
diakses dalam mode supervisor saja.

3. Pipelining
Pipeline adalah input baru yang akan diterima pada sebuah sisi sebelum input yang
diterima sebelumnya keluar seagai output di sisi lainnya. Pipeline instruksi mirip dengan
penggunaan rangkaian perakitan pada pabrik. Rangkaian perakitan ini memanfaatkan
kelebihan yang didapat dari fakta bahwa suatu produk diperoleh dengan melalui berbagai
langkah-langkah produksi. Dengan menggunakan pipeline perakitan, maka berbagai
langkah dapat dilakukan secara serempak.

Seharusnya proses ini akan mempercepat eksekusi instruksi. Jika langkah-langkah


pengambilan dan eksekusi dalam jangka waktu yang sama, waktu siklus instruksi akan
dibagi dua. Bagaimanapaun jika kita lihat lebih dekat pada pipeline ini (Gambar 3.2),
bahwa hal ini akan menggandakan kelajuan eksekusi tidak terjadi karena dua
pertimbangan:

1. Waktu eksekusi biasanya lebih panjang dibangingkan dengan waktu pengambilan.


Eksekusi akan melibatkan operand pembacaan dan penyimpanan dan kinerja
beberpa operasi. Jadi, langkah pengambilan dapat menunggu untuk beberapa waktu
sebelum dapat mengosongkan buffernya.
2. Sebuah instruksi caban bersyarat membuat alamat dari instruksi berikutnya untuk
mengambil yang tidak dikenal. Sehingga, langkah pengambilan harus menunggu
sampai menerima alamat instruksi berikutnya dari langkah eksekusi. Langkah
eksekusi kemudian dapat menunggu ketika instruksi berikutnya diambil.

Gambar 3.2
Pipeline Instruksi dua langkah
(a) Simplifield view

(b) Expanded view

Untuk memperoleh peningkatan kecepatan lebih lanjut, pipeline harus mempunyai lebih
banyak langkah-langkah. Perhatikan dekomposisi pengolahan instruksi berikut:

 Mengambil instruksi (Fetch isntruction - FI): Membaca instruksi berikutnya ke


dalam suatu buffer.
 Pemecahan kode instruksi (Decode instruction – DI): Menentukan spesifier
opcode dan operand.
 Kalkulasi operand (Calculate operand – CO): Kalkulasi alamat efektif dari setiap
operand sumber.
 Pengambilan operand (Fetch operand – FO): Pengambilan setiap operand dari
memori. Operand dalam register tidak perlu diambil.
 Eksekusi instruksi (Execute instruction – EI): Membentuk operasi yang
diindikasikan dan menyimpan hasilnya.
 Tulis operand (Write operand – WO): Menyimpan hasilnya di dalam memori.

Dengan dekomposisi ini, berbagai macam langkah akan mendekati jangka waktu yang
hampir sama.
BAB IV :
DUKUNGAN SISTEM OPERASI

1. Pengertian Sistem Operasi


Sistem operasi merupakan program yang mengatur sumber daya komputer, menyediakan
layanan bagi pemograman dan menjadwal eksekusi proram lainnya. Selain itu sistem
operasi juga mengontrol eksekusi program-proram aplikasi dan berfungsi sebagai
interface antara pengguna komputer dan perangkat keras komputer.

2. Fungsi Sistem Operasi


Sistem operasi mempunyai beberapa fungsi, yaitu:

 Fungsi kenyamanan: suatu sistem operasi akan membuat sistem komputer lebih
mudah digunakan.
 Fungsi efisiensi: Sistem operasi memungkinkan sumber daya sistem komputer
dapat digunakan dengan cara efisien.

3. Jenis-jenis Sistem Operasi


Pembedaan jenis sistem operasi didasarkan pada karakteristik. Karakteristik dapat dibagi
menjadi 2 dimensi:

 Dimensi pertama:
Ditinjau dari segi interaksi pengguna dengan sistem komputer, ada dua jenis sistem
operasi yang independen, yaitu:
o Sistem bersifat interaktif
o Sistem bersifat batch

 Dimensi kedua:
Ditinjau dari segi banyaknya program yang dieksekusi secara simultan, ada dua jenis
sistem operasi, yaitu:
o Sistem yang menggunakan Multiprogramming
o Sistem yang tidak menggunakan Multiprogramming yaitu: Uniprogrammed /
One task at a time

Sistem Interaktif
Pengguna/pemrogram berinteraksi secara langsung dengan komputer, biasanya melalui
keyboard/layar monitor, untuk meminta eksekusi tugas atau membentuk transaksi.

Sistem Batch
 Program-program pengguna ditampung bersama-sama (secara offline) dengan
pengguna lainnya dan kemudian diserahkan ke sistem operasi oleh operator
komputer.
 Program diselesaikan, hasilnya dicetak dan dikembalikan ke pengguna.
 Sistem batch murni sudah jarang ditemukan saat ini.

Dimensi Multiprogramming
 Prosesor selalu berada dalam keadaan sibuk karena prosesor mengerjakan lebih dari
satu program pada saat yang sama,
 Beberapa program dimuatkan ke dalam memori,
 Prosesor beralih dengan cepat dari satu program ke program lainnya
 Bila menggunakan sistem interaktif, menerapkan time sharing
 Persyaratan lain untuk meningkatkan kecanggihan dibanding dengan sistem operasi
tipe batch adalah
o Manajemen memori
o Penjadwalan

Tabel Jenis Sistem Operasi


Batch System Interactive System
Uniprogrammed / One task at Simple batch Dedicated system
a time
Multiprogrammed Sophisticated batch Time sharing

Jadi ada empat jenis sistem operasi secara umum:


1. Sistem Batch sederhana
2. Sistem Batch canggih
3. Sistem Multiprogramming
4. Sistem Time Sharing

4. Penjadwalan (Schedulling)
 Tugas utama sistem operasi modern adalah multiprogramming
 Hal terpenting dalam multiprogramming adalah scheduling
 Dalam sistem operasi multiprogramming, beberapa job dipertahankan di memori,
setiap job saling bergantian menggunakan CPU dan menunggu I/O
 Kunci peningkatan efisiensi menggunakan multiprogramming adalah penjadwalan
yang efektif.
 Ada dua jenis penjadwalan :

(1) Penjadwalan tingkat tinggi


o Menentukan job mana yang akan dimasukkan ke sistem untuk pemrosesan
o Mengontrol derajat multiprogramming (jumlah proses yang berada di dalam
memori).
o Job yang diijinkan ditambahkan pada antrian job pada penjadwal jangka
pendek
o Bekerja dalam modus batch atau interaktif

(2) Penjadwalan jangka pendek


a. Dikenal dengan istilah dispatcher
b. Mengeksekusi dan membuat keputusan yang lebih detil tentang job yang akan
dieksekusi untuk kesempatan selanjutnya.
c. Keadaan proses
Ada lima keadaan proses :
 New : Sebuah program diijinkan oleh penjadwal tingkat tinggi namun
belum siap melakukan eksekusi. Sistem akan menginisialisasi proses, yang
akan mengubahnya menjadi berada dalam keadaan siap.
 Ready : Proses telah berada dalam keadaan siap dieksekusi dan sedang
menunggu akses ke prosesor
 Running : Proses sedang dieksekusi oleh prosesor
 Waiting : Proses ditahan eksekusinya untuk menunggu sumber daya
sistem, misal I/O.
 Halted : Proses telah dihentikan dan akan dihancurkan oleh sistem
operasi.

Gambar 4.1

New Ready Runningew Halted

Waiting

Untuk setiap proses direpresentasikan dalam sistem operasi dengan blok kontrol
proses yang berisi sebagai berikut:

 Identifier : Setiap proses saat itu memiliki identifier yang unik.


 State : Keadaan proses saat itu (new, ready, dll)
 Priority : Tingkatan prioritas relatif
 Program Counter : Alamat instruksi berikutnya di dalam program yang
akan dieksekusi.
 Memori pointers : Lokasi awal dan akhir proses di dalam memori
 Context Data : Data ini adalah data yang berada di dalam register pada
prosesor pada saat proses sedang dieksekusi.
 I/O Status Information : Meliputi request I/O yang belum dipenuhi
perangkat I/O yang diassign ke proses ini, daftar file yang di-assign ke
proses dll.
 Accounting Information : dapat meliputi jumlah waktu prosesor dan clock
time yang digunakan, batas waktu, nomor account, dll.
Ketika prosesor menerima job baru, prosesor menerima blok kontrol proses yang
kosong dan menempatkan proses yang bersangkutan di dalam keadaan yang baru,
setelah sistem terisi blok kontrol proses dengan benar, maka proses dipindahkan
ke keadaan siap (ready).

5. Manajemen Memori
 Dalam sistem uniprogramming, memori utama dibagi menjadi dua bagian:
o Bagian untuk sistem operasi (monitor resident)
o Bagian untuk program yang saat itu sedang dieksekusi

 Dalam sistem multiprogramming, bagian “pengguna” dari memori harus dibagi lagi
untuk mengakomodasi sejumlah proses. Tugas pembagian dilakukan secara dinamis
oleh sistem operasi dan dikenal sebagai manajemen memori.
BAB V :
RISC & CISC

A. RISC (REDUCED INSTRUCTION SET COMPUTER)


Sejak perkembangan program komputer sekitar 1950, telah terjadi sejumlah perubahan di
bidang organisasi dan arsitektur komputer. Berikut ini beberapa kemajuan besar di bidang
komputer sejak awalnya:

 Family Concept: Diperkenalkan oleh IBM dengan system/360-nya pada tahun 1964,
setelah itu diikuti oleh DEC, dengan PDP-8-nya. Family Concept memisahkan
arsitektur mesin dari implementasinya. Sejumlah komputer dibuat dengan
karakteristik kinerja yang berbeda dan dengan arsitektur yang sama kepada
pengguna. Perbedaan harga dan kinerja terjadi karena adanya implementasi yang
berbeda dari arsitektur yang sama.
 Microprogrammed Control Unit: Dibuat oleh Wilkes pada tahun 1951 dan
diluncurkan oleh IBM pada seri S/360 ditahun 1964. Pemograman mikro
mempermudah pekerjaan perancangan dan implementasi unit kontrol dan mendukung
family concept.
 Memori cache: Pertama kali diperkenalkan secara komersil pada IBM S/360 Model
85 ditahun 1968. Penyisipan elemen ini ke dalam hirarki memori telah meningkatkan
kinerja secara dramatis.
 Mutiple processors: Kategori ini meliputi sejumlah organisasi komputer dan tujuan
yang berbeda

Berdasarkan inovasi di atas, sekarang sudah ditambahkan salah satu inovasi yang paling menarik dan
berpotensi, salah satu dari inovasi tersebut adalah Reduced Instruction Set Computer (RISC).
Arsitektur RISC merupakan kemajuan yang dramatis dari kecendrungan sejarang arsitektur
prosessor. RISC sendiri adalah rancangan prosessor yang sederhana, tetapi dalam kesederhanaan
tersebut didapatkan kecepatan operasi tiap-tiap siklus instruksinya.

1. Alasan menggunakan RISC


Rancangan arsitektur CPU yang mengambil dasar filosofi bahwa prosessor dibuat dengan
arsitektur yang tidak rumit dengan membatasi jumlah instruksi hanya pada instruksi dasar
yang diperlukan saja. Racangan ini berawal dari pertimbangan-pertimbangan dan analisa
model perancangan lain yang kompleks, sehingga harus ada pengurangan set
instruksinya.

Ide dasar prosesor RISC sebenarnya bisa dilacak dari apa yang disarankan oleh Von
Neumann pada tahun 1946. Von Neumann menyarankan agar rangkaian elektronik untuk
konsep logika diimplementasikan hanya bila memang diperlukan untuk melengkapi
sistem agar berfungsi atau karena frekuensi penggunaannya cukup tinggi (Heudin, 1992 :
18). Jadi ide tentang RISC, yang pada dasarnya adalah untuk menyederhanakan realisasi
perangkat keras prosesor dengan melimpahkan sebagian besar tugas kepada perangkat
lunaknya, telah ada pada komputer elektronik pertama. Seperti halnya prosesor RISC,
komputer elektronik pertama merupakan komputer eksekusi-langsung yang memiliki
instruksi sederhana dan mudah didekode.

Hal yang sama dipercayai juga oleh Seymour Cray, spesialis pembuat superkomputer. Pada tahun
1975, berdasarkan kajian yang dilakukannya, Seymour Cray menyimpulkan bahwa penggunaan
register sebagai tempat manipulasi data menyebabkan rancangan instruksi menjadi sangat
sederhana. Ketika itu perancang prosesor lain lebih banyak membuat instruksi-instruksi yang
merujuk ke memori daripada ke register seperti rancangan Seymour Cray. Sampai akhir tahun
1980-an komputer-komputer rancangan Seymour Cray, dalam bentuk superkomputer seri Cray,
merupakan komputer-komputer dengan kinerja sangat tinggi.

Pada tahun 1975, kelompok peneliti di IBM di bawah pimpinan George Radin, memulai
merancang komputer berdasar konsep John Cocke. Berdasarkan saran John Cocke,
setelah meneliti frekuensi pemanfaatan instruksi hasil kompilasi suatu program, untuk
memperoleh prosesor berkinerja tinggi tidak perlu diimplementasikan instruksi kompleks
ke dalam prosesor bila instruksi tersebut dapat dibuat dari instruksi-instruksi sederhana
yang telah dimilikinya. Kelompok IBM ini menghasilkan komputer 801 yang
menggunakan instruksi format-tetap dan dapat dieksekusi dalam satu siklus detak
(Robinson, 1987 : 143). Komputer 801 yang dibuat dengan teknologi ECL (emitter
coupled logic) , 32 buah register, chace terpisah untuk memori dan instruksi ini
diselesaikan pada tahun 1979.
2. Karakteristik RISC
RISC mempunyai beberapa karakteristik, yaitu: siklus instruksi, operasi pertukaran data,
mode pengalamatan dan format instruksi. Berikut akan dibahas dari masing-masing
karakteristik dari RISC.

1. Siklus instruksi
Satu instruksi mesin persiklus mesin. Suatu siklus mesin dinyatakan oleh waktu yang
dibutuhkan untuk mengambil dua operand dari register, untuk melakukan suatu
operasi ALU dan menyimpan hasilnya pada register. dengan demikian instruksi mesin
RISC tidak boleh lebih kompleks dan harus dapat mengeksekusi secepat
mikroinstruksi pada mesin-mesin CISC. Dengan menggunakan instruksi sederhana
atau instruksi satu siklus hanya dibutuhkan satu mikrokode atau tidak sama sekali,
instruksi mesin dapat dihardwired. Instruksi seperti itu akan dieksekusi lebih cepat
dibanding yang sejenis pada yang lain karena tidak perlu mengakses penyimapanan
kontrol mikroprogram saat eksekusi instruksi berlangsung.

2. Operasi pertukaran data


Kebanyakan operasi harus dalam bentuk register ke register, dengan hanya operasi
akses memori LOAD dan STORE yang sederhana. Rancangan ini menyederhanakan
set intsruksi dan sekaligus menyederhanakan unik kontrol. Sebagai contoh, sebuah set
instruksi RISC bisa mengandung hanya satu atau dua instruksi ADD (misalnya,
penambahan bilangan bulat, penambahan dengan carry). VAX mempunyai 25
instruksi ADD yang berbeda. Keuntugan lain adalah bahwa arsitektur seperti itu
meningkatkan optimasi penggunaan register, sehingga operand-operand yang sering
diakses akan tetap berada dalam penyimpanan berkecepatan tinggi.

Penekanan pada operasi register ke register ini merupakan ciri khas dari rancangan
RISC. Mesin CISC yang modern menyediakan instruksi seperti operasi memori ke
memori dan operasi campuran register / memori. Perbandingan kedua pendekatan ini
telah dilakukan pada tahun 1970-an, sebelum terwujudnya RISC. Gambar 1a
menunjukkan pendekatan yang diambil. Arsitektur hipotesis sudah dievaluasi dalam
hal ukuran program dan banyaknya bit dalam memori. Hasil seperti ini yang
mendorong seorang peneliti untuk menyatakan bahwa arsitektur masa depan tidak
berisi register sama sekali [MYER78]. Suatu hal yang menarik untuk dipikirkan,
mesin RISC yang diproduksi oleh Pyramid, yang isi registernya tidak kurang dari 528
register.

Suatu hal yang hilang dari penelitian-penelitian di atas adalah cara untuk mengetahui
akses yang sering terjadi ke sejumlah kecil saklar lokal dan dengan menggunakan
papan besar untuk register atau suatu compiler optimasi, kebanyakan operand bisa
berathan di dalam register untuk periode waktu yang cukup lama. Gambar 1b
merupakan gambaran perbandingan yang cukup adil.

Gambar 5.1
Dua perbandingan dari pendekatan register ke register dan memori ke memori.

8 16 16 16
Tambah B C A
Memori ke memori

8 4 16
Muatkan rB B
Muatkan rC B
Tambah rA rB rC
Simpan rA A
Register ke memori

(a) A ← B + C

8 16 16 16
Tambah B C A
Tambah A C B
Kurang B D D
Memori ke memori
8 4 4 4
Tambah rA rB rC
Tambah rB rA rC
Kurang rD rD rB
Register ke register

(b) A ← B + C; B ← A + C; D ← D - B

3. Mode pengalamatan
Penggunaan mode pengalamatan sederhana, hampir sama dengan instruksi
menggunakan pengalamatan register,. Beberapa mode tambahan seperti pergeseran
dan pe-relatif dapat dimasukkan selain itu banyak mode kompleks dapat disintesis
pada perangkat lunak dibanding yang sederhana, selain dapat menyederhanakan sel
instruksi dan unit kontrol.

4. Format instuksi
penggunaan format-format instruksi sederhana, panjang instruksinya tetap dan
disesuaikan dengan panjang word. Fitur ini memiliki beberapa kelebihan karena
dengan menggunakan field yang tetap pendekodean opcode dan pengaksesan operand
register dapat dilakukan secara bersama-sama

Setelah dipertimbangkan semua karakteristik secara bersamaan, dapat dilihat keuntungan-


keuntungan potensial dari pendekatan RISC. Keuntungan-keuntungan ini dikategorikan
dalam dua kategori utama: yang pertama berhubungan dengan kinerja dan yang kedua
berhubungan dengan implementasi VLSI.

Berkaitan dengan kinerja, suatu jumlah tertentu “circumstansial evidence” dapat


direpresentasikan. Pertama pengoptimalan compiler yang lebih efektif dan dapat
dikembangkan. Yang kedua bahwa kebanyakan instruksi yang dihasilkan oleh kompiler
biasanya sederhana dan relatif. Yang ketiga adalah penggunaan pipeline instruksi. Dan
yang terakhir bahwa prosessor RISC lebih respontif ke interupsi.

3. Pipelining pada RISC


a. Pipelining dengan Menggunakan Instruksi Reguler
Pipelining adalah instruksi yang sering digunakan untuk meningkatkan kinerja.
Kebanyakan instruksi merupakan register ke register dan suatu siklus instruksi
mempunyai dua langkah berikut:
 I: Mengambil Instruksi
 E: Eksekusi. Melakukan suatu operasi ALU dengan masukan dan keluaran
register.

Untuk operasi load dan store, tiga langkah –langakah diperluakan :

 I: Mengambil Instruksi
 E: Eksekusi. Menghitung alamat memori.
 D: Memori. Operasi Register ke memori atau operasi memori ke register.

Gambar 2a menggambarkan pewaktuan set instruksi tanpa menggunakan pipelining.


Jelas, bahwa ini adalah suatu proses yang banyak memakan waktu. Bahkan pipelining
yang sangat sederhana dapat meningkatkan kinerja. Gambar 2b menunjukkan suatu
rancangan pipelining dua tahap, di mana I dan E adalah langkah-langkah dari dua
instruksi yang berbeda dan dapat dieksekusi secara bersamaan. Rancangan ini dapat
menghasilkan proses eksekusi yang dua kali lebih cepat dari pada proses eksekusi
rancangan serial. Ada dua masalah yang menghampat untuk mencapai kecepatan
maksimum. Yang pertama, diasumsikan bahwa memori yang digunakan adalah
single-port dan memori hanya dapdat mengakses satu langkah saja. Ini memerlukan
waktu tunggu tambahan untuk beberapa instruksi. Kedua, suatu instruksi yang
menginterupsi aliran eksekusi. Untuk mengakomodasi suatu rangkaian yang
minimum, suatu instruksi NOOP dapat disisipkan arus instruksi oleh kompiler atau
assembler.

Pipelining dapat ditingkatkan lebih lanjut dengan menggunakan dua akses memori
perlangkah. Cara ini menghasilkan suatu deretan, seperti yang ditunjukkan pada
gambar 2c. Dengan menggunakan cara ini dapat dilakukan lebih dari tiga instruksi
dan peningkatannya sebanyak tiga kali. Demikian juga dengan instruksi
pencanbangan yang menghalangi tercapainya kecepatam maksimum. Perlu diingat
bahwa ketergantungan data mempunyai suatu efek tertentu. Jika suatu instruksi
memerlukan sebuah operand yang sudah diubah oleh instruksi sebelumnya, sebuah
penundaan akan terjadi. Sekali lagi, hal ini dapat diatasi dengan menggunakan NOOP.

Pipelining yang dibahas sejauh ini akan bekerja dengan baik jika ketiga langkah-
langkahnya memiliki waktu yang kira-kira sama. Sebab langkah E pada umumnya
melibatkan suatu operasi ALU, maka langkah ini akan lebih lam. Dalam hal ini, dapat
dibagi dalam dua sublangkah:

 E1: Membaca file Register


 E2: Operasi ALU dan ditulis di register

Karena adanya keserdehanaan dan keteraturan set instruksi RISC rangcangan tiga atau
empat langkah mudah dilakukan. Gambar 2d menunjukkan hasil dengan suatu proses
pipeline empat tahap. Keempat instruksi dapat berjalan dengan waktu yang sama dan
peningkatan kecepatan potensi yang maksimum dengan kelipatan 4. Perlu diingat lagi
penggunaan NOOPS untuk mengatasi ketundaan data dan pencabangan.

Gambar 5.2
B. CISC (Complex Instruction-Set Computer)
1. Pengertian CISC
CISC adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan
menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memori,
operasi aritmatika, dan penyimpanan ke dalam memori, semuanya sekaligus hanya di
dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan
RISC.

Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer
mencoba menjembatani celah semantik", yaitu bagaimana cara untuk membuat set-set
instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan
instruksi "level tinggi" seperti pemanggilan procedure, proses pengulangan dan mode-
mode pengalamatan kompleks sehingga struktur data dan akses array dapat
dikombinasikan dengan sebuah instruksi. 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.

2. Mengapa CISC
Set instrusi yang lebih komplek terdiri dari jumlah instruksi yang lebih banyak dan
instruksinya lebih rumit. Ada dua buah pertimbangan prinsip yang mempengaruhi
kecenderungan ini. Pertama adalah suatu keinginan untuk menyederhanakan kompiler
dan yang kedua adalah untuk meningkatkan kerja. Oleh karena alasan ini para
perancang arsitekur CPU berusaha untuk mendesain suatu mesin yang mendukung
HLL (High Level Language) yang lebih baik.

Alasan lainnya penggunaan CISC adalah suatu harapan yang akan menghasilkan
program lebih cepat dan lebih kecil. Ada dua keuntungan memperkecil program.
Pertama, program memerlukan memori yang lebih sedikit dan akan menghemat
sumber daya. Yang kedua program yang lebih kecil akan meningkatkan kinerja.

3. Karakteristik CISC
 Sarat informasi 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
 Dimaksudkan untuk meminimumkan jumlah perintah yang diperlukan untuk
mengerjakan pekerjaan yang diberikan. (Jumlah perintah sedikit tetapi rumit)
Konsep CISC menjadikan mesin mudah untuk diprogram dalam bahasa rakitan

DAFTAR PUSTAKA
1. Organisasi dan Arsitektu Komputer: Rancangan Kinerja/William Stallings; Alih Bahasa,
Thamir Abdul Hafedh. – Jakarta: PT INDEKS Kelompok GRAMEDIA, 2005

2. http://iskandar-zulkarnaen1.tripod.com/risc.pdf

3. http://rachma-taskblog.blogspot.com/2009/05/risc-reduce-instruction-set-computer.html

4. http://www2.eepis-its.edu/~setia/Modul/ArKom/Pertemuan%2013.pdf

5. http://id.wikipedia.org/wiki/CISC

6. http://ukyku.files.wordpress.com/2008/02/sistem-operasi.doc

7. http://msgt.files.wordpress.com/2010/01/risc-cisc1.doc

You might also like