Uploaded by jessicaatshn17

Buku Arsitektur Komputer Jilid II

advertisement
Arsitektur Sistem Komputer Jilid II | Rozeff Pramana & Alena Uperiati
UMRAH Press
Gedung Rektorat Lantai III Kompleks Kampus
Universitas Maritim Raja Ali Haji
Jalan Dompak, Tanjungpinang, Provinsi Kepri 29111.
Telp 0771-7001550 Fax. 0771-7038999
Email: umrahpress@gmail.com
umrahpress@umrah.ac.id
UMRAH Press
Arsitektur
Sistem Komputer
Jilid II
Rozeff Pramana
Alena Uperiati
Rozeff Pramana & Alena Uperiati
Buku Ajar
Arsitektur Sistem Komputer
Jilid 2
Arsitektur Sistem Komputer Jilid 2
Rozeff Pramana & Alena Uperiati
© Rozeff Pramana & Alena Uperiati, 2017
ix, 200 hlm, 15,5 cm x 23,5 cm
Cetakan 1, November 2017
Hak Penerbitan pada UMRAH Press, Tanjungpinang
Kantor:
Kampus Universitas Maritim Raja Ali Haji, Gedung Rektorat Lantai
III
Jl. Dompak, Tanjungpinang - Kepulauan Riau 29111
Telp/Fax : (0771) 7001550 – (0771) 7038999, 4500091
E-mail
: umrahpress@gmail.com / umrahpress@umrah.ac.id
Hak cipta dilindungi Undang-Undang.
Dilarang mengutip atau memperbanyak sebagian atau seluruh isi
buku ini
tanpa ijin tertulis dari Penerbit
ISBN 978-602-6770-83-7
ii
KATA PENGANTAR
Puji Syukur kepada Allah SWT penulisan buku ini telah selesai
dilaksanakan. Buku yang berada dihadapan anda ini merupakan
buku ajar bagi dosen dan mahasiswa pada mata kuliah Arsitektur
Sistem Komputer di Fakultas Teknik jurusan Teknik Elektro
Universitas Maritim Raja Ali Haji. Buku ini merupakan buku jilid
ke dua pada matakuliah yang sama.
Buku ini menyajikan materi-materi perkuliahan yang dirancang
agar pembacanya dapat dengan mudah memahami materi mata
kuliah Arsitektur Sistem Komputer dan menjadi referensi bagi
dosen serta mahasiswa dalam mempelajari tentang komputer.
Setiap materi disajikan dengan penjelasan umum, definisi dan subsub materi yang dijelaskan secara sistematis dengan sumber
referensi diambil dari berbagai literatur. Penyajian suatu materi
dilengkapi dengan gambar-gambar, blok diagram, dan ilustrasi
untuk memberikan pemahaman bagi pembaca.
Semoga Buku ini menjadi referensi bagi civitas di Fakultas Teknik
jurusan Teknik Elektro Universitas Maritim Raja Ali Haji
khususnya, dan memberi wawasan baru dalam mempelajari
komputer.
Tanjungpinang, Oktober 2017
Penulis
iii
DAFTAR ISI
KATA PENGANTAR ................................................... ii
DAFTAR ISI ............................................................... ivv
DAFTAR TABEL ........................................................ vii
DAFTAR GAMBAR .................................................. viii
BAB I PENDAHULUAN ......................................... 1
A. Informasi Mata Kuliah.......................................... 1
B. Deskripsi Mata Kuliah .......................................... 2
C. Rencana Kegiatan Program Pembelajaran dan
Rencana Pembelajaran Semester ......................... 6
BAB II INPUT OUTPUT ........................................ 11
A. Standar Kompetensi dan Indikator ..................... 11
B. Materi ................................................................. 11
1. Pengertian dan Fungsi Peralatan Input Pada
Komputer ......................................................... 11
2. Pengertian dan Fungsi Peralatan Output Pada
Komputer ......................................................... 18
C. Rangkuman ......................................................... 23
D. Latihan Soal ........................................................ 26
BAB III SET–SET INSTRUKSI .............................. 27
A. Standar Kompetensi dan Indikator ..................... 27
B. Materi ................................................................. 27
1. Karakteristik dan Fungsi ................................. 27
2. Mode dan Bentuk Pengalamatan ..................... 54
C. Rangkuman ......................................................... 74
D. Latihan soal ........................................................ 77
BAB IV PARALEL PROSESOR ............................. 78
A. Standar Kompetensi dan Indikator ..................... 78
B. Materi ................................................................. 78
1. Pembahasan Awal ........................................... 78
2. Organisasi berbagai Prosesor .......................... 80
3. Organisasi Multiprosesor ................................ 92
4. Mainframe SMP ............................................ 100
iv
5. Cluster ........................................................... 106
6. Non Uniform Memory Access (NUMA) ...... 109
7. Komputasi Vektor ......................................... 113
C. Rangkuman ....................................................... 117
D. Latihan soal: ..................................................... 119
BAB V PENGANTAR ARSITEKTUR RISC ..... 120
A. Standar Kompetensi dan Indikator ................... 120
B. Materi ............................................................... 120
1. Pembahasan Awal ......................................... 120
2. Reduced Instruction Set Computing (RISC) . 121
3. Pendekatan RISC ........................................... 127
4. Prospek Arsitektur RISC di Masa Mendatang150
C. Rangkuman ....................................................... 152
D. Latihan soal: ..................................................... 154
BAB VI
ARSITEKTUR KOMPUTER CISC........................ 155
A. Standar Kompetensi dan Indikator ................... 155
B. Materi ............................................................... 155
1. Definisi .......................................................... 155
2. Karakteristik desain CISC ............................. 159
3. Arsitektur Hardware ...................................... 161
4. Mesin CISC Ideal .......................................... 162
5. Realistis mesin CISC ..................................... 163
6. Persamaan Kinerja CISC Classic .................. 163
7. Pendekatan CISC ........................................... 166
8. Implementasi ................................................. 167
9. Karakteristik CISC versus RISC ................... 170
10. Perbedaan karakteristik CISC dan RISC serta
Superscalar .................................................... 174
C. Rangkuman ....................................................... 175
D. Latihan Soal: ..................................................... 177
BAB VII PIPELINE .................................................. 178
A. Standar Kompetensi dan Indikator ................... 178
B. Materi ............................................................... 178
1. Pembahasan Awal ......................................... 178
v
2. Kategori Pipeline ........................................... 181
3. Metode kerja Pipeline .................................... 185
4. Permasalahan Pipeline ................................... 191
C. Rangkuman ..................................................... 1977
D. Latihan Soal: ..................................................... 200
Daftar Pustaka ........................................................... 201
Glosarium ................................................................... 202
Indeks ..................................................................... 204
Profil Penulis .............................................................. 210
vi
DAFTAR TABEL
Tabel 1 Three Address Instruction ....................................... 38
Tabel 2 One Address Instruction .......................................... 38
Tabel 3 Two Address Instruction ......................................... 39
Tabel 4 operasi-operasi set instruksi .................................... 44
Tabel 5 Operasi Logika pada data Boolean atau biner ......... 48
Tabel 6 Mode Pengalamatan ................................................ 62
Tabel 7 Tabel frekuensi dinamis relatif berbobot dari operasioperasi HLL .......................................................... 132
Tabel 8 Tabel Presentase Dinamis Operand-operand......... 132
Tabel 9 Memori ke memori dan Register ke memori ......... 142
Tabel 10 Karakteristik dari beberapa Prosesor CISC, RISC,
dan Superskalar .................................................... 146
Tabel 11 Perbedaan CISC dan RISC .................................. 173
Tabel 12 Pelaksanaan intruksi ............................................ 186
vii
DAFTAR GAMBAR
Gambar 1 Keyboard ...................................................................... 12
Gambar 2 Mouse ........................................................................... 13
Gambar 3 Joystick (Sumber: https://google.com) ......................... 13
Gambar 4 Scanner (Sumber: https://google.com) ......................... 14
Gambar 5 Touch pad ..................................................................... 14
Gambar 6 Track ball (Sumber: https://google.com) ...................... 15
Gambar 7 Light pen (Sumber: https://google.com)....................... 15
Gambar 8 Camera digital (Sumber: https://google.com) .............. 16
Gambar 9 Handy cam (Sumber: https://google.com) .................... 16
Gambar 10 Webcam ...................................................................... 17
Gambar 11 Microphone and headphone (Sumber:
https://google.com)...................................................... 17
Gambar 12 Graphics pads(Sumber: https://google.com) .............. 18
Gambar 13 Barcode (Sumber: https://google.com) ....................... 18
Gambar 14 Printer (Sumber: https://google.com) ......................... 20
Gambar 15 Monitor (Sumber: https://google.com) ....................... 20
Gambar 16 LCD proyektor (Sumber: https://google.com) ........... 21
Gambar 17 Speaker (Sumber: https://google.com) ....................... 22
Gambar 18 Plotter (Sumber: https://google.com) ......................... 22
Gambar 19 Elemen-elemen set instruksi ....................................... 30
Gambar 20 Gambar Bentuk instruksi ............................................ 33
Gambar 21 Mode-mode Pengalamatan ......................................... 63
Gambar 22 Taksonomi Arsitektur Paralel Prosesor ...................... 86
Gambar 23 Arus instruksi ke sebuah PU....................................... 87
Gambar 24 Arus instruksi tunggal ke PU multiple ....................... 87
Gambar 25 MIMD share memori dan MIMD distributed memori 89
Gambar 26 Unit control pusat ....................................................... 94
Gambar 27 Organisasi Multiprosesor Simetris ............................. 96
Gambar 28 Memori Multiport ....................................................... 97
Gambar 29 Gambaran seluruh organisasi SMP S/390 ................ 101
Gambar 30 Konfigurasi Cluster .................................................. 108
Gambar 31 organisasi CC-NUMA .............................................. 111
viii
Gambar 32 Operasi vektor .......................................................... 114
Gambar 33 Taksonomi organisasi komputer............................... 115
Gambar 34 RISC CISC ............................................................... 130
Gambar 35 Pewaktuan set instruksi tanpa menggunakan pipelining,
rancangan pipelining dua tahap, dua akses memori per
langkah, dan pipelining empat tahap ......................... 147
Gambar 36 Transfer register-logika ............................................ 168
Gambar 37 Penafsir microcode melakukan cabang bersyarat..... 170
Gambar 38 Tahapan Pipeline ...................................................... 181
Gambar 39 4-segmen arithmetic pipeline ................................... 182
Gambar 40 5-segmen instruction pipeline .................................. 182
Gambar 41 Mikroprosesor .......................................................... 183
Gambar 42 Metode kerja pipeline ............................................... 185
Gambar 43 Permasalahan pipeline .............................................. 191
ix
BAB I
PENDAHULUAN
A. Informasi Mata Kuliah
1. Nama Mata Kuliah
: Arsitektur Sistem
Komputer
2. Bobot Kredit
: 3 SKS
3. Program Studi
: Teknik Elektro
4. Kode Mata Kuliah
: TE-1114
5. Status Mata Kuliah/Semester
: Wajib / III
6. Prasyarat
:-
7. Bentuk Pengajaran
: Ceramah, diskusi, tanya
jawab, tugas, praktikum
8 Penilaian
:
a. Absensi 10%
b. Tugas dan Kuis 30%
c. UTS 30%
d. UAS 30%
9 Jumlah Pertemuan
: 16 kali pertemuan
(termasuk UTS dan
UAS)
10 Masa Perkuliahan
: 150 menit tatap muka di
kelas perminggu
11 Dosen Pengajar
: Rozeff Pramana, ST., MT
12 Tujuan Mata Kuliah
:
Setelah mengikuti mata kuliah Arsitektur Komputer,
mahasiswa dapat mengetahui dengan jelas
tentang
penggolongan komputer dan evolusinya, cara kerja dasar
komputer, bagian- bagian dari komputer, fungsi CPU, proses
kerja pada CPU, komponen- komponen CPU, aplikasiaplikaksi pada organisasi Input/Output dan peripheral, jenisjenis memori komputer serta aplikasinya, sistem Bus, set
instruksi, prosesor paralel, arsitektur RISC dan CISC serta
Pipeline pada komputer.
B. Deskripsi Mata Kuliah
Kata komputer berasal dari bahasa latin yaitu “computare”
yang artinya berhitung. Secara definisi komputer
diterjemahkan sebagai sekumpulan alat elektronika yang
saling bekerjasama, dapat menerima data (input), mengolah
data (proses) dan memberikan informasi (output) serta
terkoordinasi dibawah kontrol program yang tersimpan pada
memorinya.
Pada matakuliah ini akan di bahas tentang penggolongan
komputer, konsep dasar dan kinerja komputer, perangkat
Input/ Output, CPU, memori, sistem Bus, set instruksi,
prosesor paralel, arsitektur RISC dan CISC serta Pipeline
pada komputer.
2
Standar Kompetensi
1.
Mampu menjelaskan dan menganalisa perangkatperangkat I/O
2.
Mampu menjelaskan dan mendeskripsikan fungsi set
instruksi, mode dan pengalamatan
3.
Mampu mengaplikasikan paralel prosesor secara umum
4.
Mampu menganalisa perbandingan komputer RISC dan
CISC serta aplikasi penggunaannya
5.
Memahami teknologi dan aplikasi CISC komputer dan
penggunaannya
6.
Dapat
mengaplikasikan
dan
berinovasi
dalam
penggunaan Pipeline
Pokok Bahasan Dan Sub Pokok Bahasan
No.
1.
Pokok
Bahasan
Input/Output
Sub Pokok Bahasan
1.
2.
2.
Set instruksi,
karakteristik
dan fungsi;
Mode dan
pengalamatan
1.
2.
3.
4.
5.
6.
7.
8.
9.
Peralatan dan fungsi perangkat
input pada komputer
Jenis-jenis perangkat input pada
komputer
Karakteristik instruksi
Jenis-jenis instruksi
Pemrosesan instruksi
Instruction fetch
Instruction execute
Pengalamatan
Bentuk-bentuk instruksi
Jenis operasi
Cycle time
3
3.
Parallel
Processor
1.
2.
3.
4.
5.
4.
Register
transfer, RISC
dan CISC
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
5.
Pipelining
12.
13.
14.
15.
1.
2.
3.
4.
5.
Organisasi berbagai prosesor
Multiprosesor simetris
Koherensi Cache dan protokol
Mesi
Cluster
Non Uniform Memory Access
(NUMA)
Sejarah
Konsep Arsitektur RISC.
Elemen penting dan ciri-ciri.
Arah perkemba-ngan prosesor
RISC.
Eksekusi Instruksi
Transfer Bus dan Memori
Definisi CISC.
Konsep CISC.
Arsitektur CISC.
Ciri-ciri prosesor CISC
Aspek
komputasi
dalam
merancang RISC.
Chip-chip RISC.
Prospek arsitektur RISC.
Deskripsi transfer register.
Bahasa transfer register
Pengertian Pipelining.
Kategori Pipeline.
Arithmetic pipeline
Instruction pipeline
Pipeline pada mikroprosesor
4
Daftar Pustaka
1. Albert Paul Malvino, “Elektronika Komputer Digital’,
edisi kedua, Penerbit Erlangga 1996.
2. Andrew S.
Tanenbaum,
“Organisasi
Komputer
Tersetruktur”, edisi Bahasa Indonesia, edisi pertama,
jilid 2, Penerbit Salemba Teknika, 2002.
3. M. Morris Mano, “Computer System Architecture”,
third edition, Prentice Hall International, 1993.
4. Prof.
Dr.
Jogiyanto
H.M,
M.B.A.,
Akt,
“Pengenalan komputer”, penerbit Andi, 2005.
5. Syahrul, “Organisasi dan Arsitektur Komputer”,
Penerbit Andi Yogyakarta, 2010.
6. William
Stalling,
Komputer”,
edisi
“Organisasi
bahasa
dan
Indonesia,
Arsitektur
Jilid
I,
Prenhallindo, 1998.
7. William
Stalling,
“Organisasi
dan
Arsitektur
Komputer”, edisi bahasa Indonesia, Jilid II, edisi 6,
PT. Indeks, Kelompok Gramedia, 1998.
5
C. Rencana
Kegiatan
Program
Pembelajaran
dan
Rencana Pembelajaran Semester
Mata Kuliah
Arsitektur
Komputer
Kode MK
TE-1114
SK
S
3
Semester
Dosen Pengampu
3/
Ganjil
Rozeff
Pramana, ST,
MT
Deskripsi Mata Kuliah
Komputer berasal dari bahasa latin yaitu “computare” yang
artinya berhitung. Secara definisi komputer diterjemahkan
sebagai sekumpulan alat elektronika yang saling bekerjasama,
dapat menerima data (input), mengolah data (proses) dan
memberikan informasi (output) serta terkoordinasi dibawah
kontrol program yang tersimpan pada memorinya.
Pada matakuliah ini akan di bahas tentang penggolongan
komputer, konsep dasar dan kinerja komputer, perangkat
Input/ Output, CPU, memori, sistem Bus, Set Instruksi,
Prosesor Paralel, Arsitektur RISC dan CISC serta Pipeline
pada komputer.
1. Mampu
Standar Kompetensi
menjelaskan dan menganalisa
perangkat-
perangkat I/O
2. Mampu menjelaskan dan mendeskripsikan fungsi set
instruksi, mode dan pengalamatan
3. Memahami dan mampu mengaplikasikan paralel prosesor
6
secara umum
4. Memahami
dan
mampu
menganalisa
perbandingan
komputer RISC dan CISC serta aplikasi penggunaannya
5. Memahami teknologi dan aplikasi RISC dan CISC
komputer dan penggunaannya
6. Dapat mengaplikasikan dan berinovasi dalam penggunaan
Pipeline
Perte
muan
ke-
9
Capaian
Pokok dan
pembelajaran sub pokok bahasan
Mahasiswa
1. Peralatan
EstiDaftar
masi
Pustak
Wak- a
tu
(menit)
dan 150
dapat
fungsi perangkat
memaparka
input
n perangkat-
komputer
perangkat
pada
2. Jenis-jenis
Input /
perangkat
input
Output pada
pada komputer
komputer
10
Mahasiswa
dapat
1. Karakteristik
150
instruksi
menganalisa 2. Jenispemprosesa
n Set
jenisinstruksi.
3. Pemrosesan
7
instruksi
instruksi.
pada
4. Instruction fetch.
komputer.
5. Instruction
execute.
11
Mahasiswa
1. Pengalamatan.
dapat
2. Bentuk-bentuk
menganalisi
instruksi.
s hubungan
3. Jenis operasi.
dari mode
4. Cycle time
150
dan bentuk
pengalamata
n
12
Mahasiswa
1. Organisasi
dapat
berbagai
menjelaskan
prosesor
kategori
sistem
komputer
2. Multiprosesor
simetris
3. Koherensi Cache
dan
dan
keterkaitann
Mesi
nya antara
4. Cluster
satu dengan
5. Non
lain
150
protokol
Uniform
Memory Access
(NUMA)
8
13
Mahasiswa
1. Sejarah
dapat
2. Konsep
menjelaskan
Arsitektur RISC.
penggunaan
3. Elemen penting
teknologi
RISC
dan ciri-ciri.
4. Arah perkemba-
dibanding
ngan
teknologi
RISC.
yang ada
5. Eksekusi
sebelumnya
14
150
Mahasiswa
dapat
prosesor
Instruksi
1. Transfer Bus dan
75
Memori
menjelaskan 2. Definisi CISC
penggunaan
3. Konsep CISC
teknologi
4. Arsitektur CISC
CISC
5. Ciri-ciri prosesor
dibanding
CISC.
teknologi
yang ada
sebelumnya
14
Mahasiswa
1. Aspek komputasi
dapat
dalam
menjelaskan
merancang RISC
perbedaan
75
2. Chip-chip RISC
9
antara
teknologi
RISC dan
CISC.
3. Prospek
arsitektur RISC
4. Deskripsi
transfer register
5. Bahasa
transfer
register.
15
Mahasiswa
dapat
menghitung
jumlah set
instruksi
1. Pengertian
Pipelining
2. Kategori
Pipeline
3. Arithmetic
yang masuk
pipeline
pada suatu
4. Instruction
pipelining
pipeline
dan dapat
5. Pipeline
mengkreasi
150
pada
mikroprosesor
kannya
dengan
kategori
pipeline lain
16
UAS
10
BAB II
INPUT OUTPUT
A.
Standar Kompetensi dan Indikator
Standar Kompetensi
Mampu menjelaskan dan menganalisa perangkat-perangkat
I/O
pada komputer
Indikator
Setelah mengikuti perkuliahan mahasiswa diharapkan dapat
memaparkan perangkat-perangkat Input / Output pada
komputer.
B.
Materi
1. Pengertian dan Fungsi Peralatan Input Pada
Komputer
Peralatan input pada komputer adalah perangkat yang
memberikan perintah langsung atau data ke peralatan proses
yang
ada
pada
komputer
untuk
diproses
kemudian
dikeluarkan berupa informasi kepada pengguna. Peralatan
input merupakan bagian komputer yang mempunyai peranan
yang sangat penting karena langsung berhubungan dengan
user atau pengguna komputer. Berikut adalah macam-macam
peralatan input pada komputer dan fungsi masing-masing
komponen tersebut:
a.
Keyboard
Merupakan peralatan input pada komputer yang
berfungsi untuk memasukan data atau perintah berupa angka,
huruf maupun symbol. Keyboard merupakan perangkat input
yang umum terdapat pada suatu Komputer. Keyboard disebut
juga papan ketik pada komputer yang terdiri dari susunan
huruf A s/d Z dan angka 0 s/d 9 dan ada beberapa simbol
seperti titik dua, koma, titik dan lain-lain, juga terdapat tobol
sortcut yang memudahkan kita untuk mengoperasikan
komputer. Terdapat berbagai macam jenis dan ukuran
keyboard, dan untuk konektifitasnya pada komputer dapat
dilakukan dengan kabel maupun nirkabel.
Gambar 1 Keyboard
b.
Mouse
Mouse adalah peralatan input pada komputer yang
berfungsi untuk menggerakan pointer pada layar monitor.
Mouse sangat berguna untuk sistem operasi yang berbasis
12
grafis. Seperti halnya keyboard, konektifitas Mouse dengan
komputer dapat dilakukan dengan kabel maupun nirkabel.
Gambar 2 Mouse
c.
Joy Stick
Joy Stick adalah alat input yang digunakan untuk
memasukan perintah untuk menggerakan permainan pada
komputer maupun suatu instrumen.
Gambar 3 Joystick (Sumber: https://google.com)
d.
Scanner
Scanner adalah alat input yang mempunyai fungsi
hampir mirip dengan mesin foto copy, akan tetapi dengan
scanner data dapat diubah dalam bentuk file sehingga dapat
disimpan ke dalam harddisk komputer.
13
Gambar 4 Scanner (Sumber: https://google.com)
e.
Touch Pad
Perangkat yang berfungsi sebagai penggerak kursor
pada monitor melalui stimulasi gerakan jari yang menyentuh
touchpad tersebut.
Gambar 5 Touch pad
f.
Track Ball
Mensimulasikan pergerakan vertikal mouse, sehingga
pengguna tidak perlu menggerakkan mouse berulang kali
untuk dapat menaikkan atau menurunkan layar.
14
Gambar 6 Track ball (Sumber: https://google.com)
g.
Light Pen
Perangkat yang berbentuk pena yang dipergunakan
pada layar monitor jenis touchscreen untuk memodifikasi
atau mendesain gambar secara langsung pada layar monitor.
Gambar 7 Light pen (Sumber: https://google.com)
h.
Camera digital
Perangakat sejenis kamera yang dapat menangkap
obyek gambar dan dapat menampilkannya ke layar komputer
untuk diproses lebih lanjut.
15
Gambar 8 Camera digital (Sumber: https://google.com)
i.
Handy cam
Perangkat
perekam
gambar/
video
yang
dapat
ditampilkan ke layar monitor untuk diproses lebih lanjut.
Gambar 9 Handy cam (Sumber: https://google.com)
j.
Webcam
Perangakat komputer yang digunakan untuk konferensi
video jarak jauh atau sebagai kamera pemantau. Webcam ada
yang terintegrasi langsung pada suatu komputer dan ada yang
terpisah.
16
Gambar 10 Webcam
k.
Microphone and headphone
Microphone berfungsi untuk merekam suara yang akan
disimpan dalam memori komputer, selain itu kita juga dapat
berbicara dengan orang lain pada saat chatting. Headphone
berfungsi untuk mendengarkan suara.
Gambar 11 Microphone and headphone (Sumber:
https://google.com)
l.
Graphics Pads
Perangkat yang biasa digunakan untuk mempermudah
menggambar suatu objek pada monitor sebagai pengganti
kertas.
17
Gambar 12 Graphics pads(Sumber: https://google.com)
m.
Barcode
Berfungsi untuk membaca suatu kode yang berbentuk
kotak-kotak atau garis-garis tebal vertikal dan mengubahnya
menjadi informasi.
Gambar 13 Barcode (Sumber: https://google.com)
2. Pengertian dan Fungsi Peralatan Output Pada
Komputer
Peralatan Output pada komputer merupakan komponen
komputer yang berfungsi menghasilkan informasi yang
diperoleh dari hasil proses dari peralatan proses komputer.
18
Output hasil proses dari komputer digolongkan menjadi 4
bentuk yaitu: huruf, gambar, suara dan video. Peralatan
output akan menghasilkan informasi untuk manusia sehingga
bisa dibaca, dilihat, didengar dan dipahami.
Komputer akan memproses informasi dari peralatan
input komputer kemudian menampilkan hasil proses dalam
bentuk informasi ke pengguna komputer (manusia). Peralatan
output sendiri sangat penting karena akan memberikan
informasi secara langsung ke pengguna. Perangkat output
juga menjadi suatu keharusan dalam sistem komputer
meskipun beberapa peralatan output komputer tersebut dalam
kategori periperal komputer (perangkat tambahan komputer).
Macam-macam dan fungsi peralatan output komputer :
a. Printer
Printer merupakan peralatan output pada komputer
yang berfungsi mencetak hasil dari proses komputer
ke dalam media kertas. Hasil cetakan dari printer
dapat
berupa
gambar
maupun
tulisan.
Printer
merupakan komponen komputer yang digolongkan ke
dalam
peripheral
membantu
kerja
yang
sangat
manusia.
penting
untuk
Berdasarkan
media
cetaknya printer ada beberapa macam, yaitu: printer
19
inkjet,
printer
laserjet
dan
printer
dotmatrik.
Konektifitas Printer dengan komputer juga dapat
dilakukan dengan kabel maupun nirkabel.
Gambar 14 Printer (Sumber: https://google.com)
b. Monitor
Monitor merupakan peralatan output pada komputer
yang berfungsi untuk menampilkan grafik atau
gambar yang telah diproses oleh bagian pemproses
sehingga informasi dapat diterima oleh manusia.
Gambar 15 Monitor (Sumber: https://google.com)
20
c. LCD Proyektor
LCD Proyektor mempunyai fungsi sama dengan
monitor, akan tetapi pada LCD Proyektor gambar
ditampilkan pada screen ekternal dan dapat diatur
ukurannya. Sehingga, dapat dilihat oleh lebih dari 1
orang.
Gambar 16 LCD proyektor (Sumber: https://google.com)
d. Speaker
Speaker adalah peralatan output pada komputer yang
berfungsi untuk mengeluarkan output berupa suara.
Speaker akan terhubung dengan soundcard pada
komputer agar bisa menerima hasil proses berupa
suara dari komputer.
21
Gambar 17 Speaker (Sumber: https://google.com)
e. Plotter
Perangkat yang digunakan untuk mencetak gambar
ukuran yang cukup besar, seperti gambar mesin dan
konstruksi bangunan.
Gambar 18 Plotter (Sumber: https://google.com)
22
C.
Rangkuman
1.
Peralatan input pada komputer adalah perangkat yang
memberikan perintah langsung atau data ke peralatan
proses yang ada pada komputer untuk diproses
kemudian dikeluarkan berupa informasi kepada
pengguna.
2.
Beberapa jenis peralatan input, antara lain:
a.
Keyboard Merupakan peralatan input pada
komputer yang berfungsi untuk memasukan data
atau perintah berupa angka, huruf maupun symbol.
b.
Mouse adalah peralatan input pada komputer yang
berfungsi untuk menggerakan pointer pada layar
monitor.
c.
Joy Stick adalah alat input yang digunakan untuk
memasukan
perintah
untuk
menggerakan
permainan pada komputer maupun suatu
instrumen.
d.
Scanner adalah alat input yang mempunyai fungsi
hampir mirip dengan mesin foto copy, akan tetapi
dengan scanner data dapat diubah dalam bentuk
file sehingga dapat disimpan ke dalam harddisk
komputer.
e.
Touchpad adalah perangkat yang berfungsi sebagai
penggerak kursor pada monitor melalui stimulasi
gerakan jari yang menyentuh touchpad tersebut.
23
f. Trackball mensimulasikan pergerakan vertikal mouse,
sehingga pengguna tidak perlu menggerakkan
mouse berulang kali untuk dapat menaikkan atau
menurunkan layar.
g.
Light Pen merupakan perangkat yang berbentuk
pena yang dipergunakan pada layar monitor jenis
touchscreen untuk memodifikasi atau mendesain
gambar secara langsung pada layar monitor.
h.
Camera digital yaitu perangakat sejenis kamera
yang dapat menangkap obyek gambar dan dapat
menampilkannya ke layar komputer untuk
diproses lebih lanjut.
i. Handy cam adalah perangkat perekam gambar/ video
yang dapat ditampilkan ke layar monitor untuk
diproses lebih lanjut.
j. Webcam
merupakan perangakat komputer yang
digunakan untuk konferensi video jarak jauh atau
sebagai kamera pemantau. Webcam ada yang
terintegrasi langsung pada suatu komputer dan ada
yang terpisah.
k.
Microphone berfungsi untuk merekam suara yang
akan disimpan dalam memori komputer, selain itu
kita juga dapat berbicara dengan orang lain pada
saat
chatting. Headphone berfungsi untuk
mendengarkan suara
l. Graphics Pads adalah perangkat yang biasa digunakan
untuk mempermudah menggambar suatu objek
pada monitor sebagai pengganti kertas.
24
m. Barcode berfungsi untuk membaca suatu kode
yang berbentuk kotak-kotak atau garis-garis tebal
vertikal dan mengubahnya menjadi informasi.
3.
Peralatan Output pada komputer merupakan komponen
komputer yang berfungsi menghasilkan informasi yang
diperoleh dari hasil proses dari peralatan proses
komputer.
4.
Beberapa jenis peralatan output, antara lain:
a.
Printer merupakan peralatan output pada komputer
yang berfungsi mencetak hasil dari proses
komputer ke dalam media kertas.
b.
Monitor
merupakan
peralatan
output
pada
komputer yang berfungsi untuk menampilkan
grafik atau gambar yang telah diproses oleh bagian
pemproses sehingga informasi dapat diterima oleh
manusia.
c.
LCD Proyektor mempunyai fungsi sama dengan
monitor, akan tetapi pada LCD Proyektor gambar
ditampilkan pada screen ekternal dan dapat diatur
ukurannya
d.
Speaker adalah peralatan output pada komputer
yang berfungsi untuk mengeluarkan output berupa
suara.
e.
Plotter perangkat yang digunakan untuk mencetak
gambar ukuran yang cukup besar, seperti gambar
mesin dan konstruksi bangunan.
25
D.
Latihan Soal
1.
Apa yang anda ketahui mengenai peralatan input dan
output?
2.
Sebutkan 3 contoh peralatan input dan output beserta
fungsinya!
3.
Jelaskan bagaimana suatu inputan dapat diproses oleh
computer hingga dikeluarkan berupa informasi kepada
pengguna.
26
BAB III
SET–SET INSTRUKSI
A.
Standar Kompetensi dan Indikator
Standar Kompetensi
Mampu menjelaskan dan mendeskripsikan fungsi set instruksi,
mode dan pengalamatan
Indikator
Mahasiswa dapat menganalisis hubungan dari mode dan
bentuk pengalamatan.
B.
Materi
1.
Karakteristik dan Fungsi
Kumpulan dari instruksi-instruksi yang berbeda yang
dapat dijalankan oleh CPU disebut set Instruksi (Instruction
Set).
Dua bagian utama Arsitektur Komputer:

Instruction-Set Architecture (ISA) / Arsitektur Set
Instruksi
ISA meliputi spesifikasi yang menentukan bagaimana
programmer bahasa mesin akan berinteraksi dengan
komputer.
ISA
menentukan
sifat
komputasional
komputer.

Hardware-System Architecture (HSA) / Arsitektur
Sistem Hardware
HSA berkaitan dengan subsistem hardware utama
komputer (CPU, sistem memori dan IO). HSA
mencakup desain logis dan organisasi arus data dari
subsistem.
Instruction Set Architecture (ISA) atau disebut juga
dengan Set Instruksi /Instruction Set merupakan sebagai
suatu aspek dalam arsitektur komputer yang dapat dilihat
oleh para pemrogram. Secara umum, set instruksi ini
mencakup jenis data yang didukung, jenis instruksi yang
dipakai, jenis register, mode pengalamatan, arsitektur
memori, penanganan interupsi, eksepsi, dan operasi I/O
eksternalnya (jika ada). ISA merupakan sebuah spesifikasi
dari kumpulan semua kode-kode biner (opcode) yang
diimplementasikan dalam bentuk aslinya dalam sebuah
desain prosesor tertentu.
ISA kadang-kadang digunakan untuk membedakan
kumpulan karakteristik yang disebut di atas dengan
mikroarsitektur prosesor, yang merupakan kumpulan teknik
28
desain prosesor untuk mengimplementasikan set instruksi
(mencakup microcode, pipeline, sistem cache, manajemen
daya,
dan
lainnya).
Komputer-komputer
dengan
mikroarsitektur berbeda dapat saling berbagi set instruksi
yang sama. Sebagai contoh, prosesor Intel Pentium dan
prosesor AMD Athlon mengimplementasikan versi yang
hampir identik dari set instruksi Intel x86, tetapi jika ditinjau
dari desain internalnya, perbedaannya sangat radikal. Konsep
ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI
yang terdapat dalam IBM System/38 dan IBM IAS/400.
TIMI merupakan sebuah ISA yang diimplementasikan
sebagai perangkat lunak level rendah yang berfungsi sebagai
mesin virtual. TIMI didesain untuk meningkatkan masa hidup
sebuah platform dan aplikasi yang ditulis untuknya, sehingga
mengizinkan platform tersebut agar dapat dipindahkan ke
perangkat keras yang sama sekali berbeda tanpa harus
memodifikasi perangkat lunak (kecuali yang berkaitan
dengan TIMI). Hal ini membuat IBM dapat memindahkan
platform AS/400 dari arsitektur mikroprosesor CISC ke
arsitektur mikroprosesor POWER tanpa harus menulis ulang
bagian-bagian dari dalam sistem operasi atau perangkat lunak
yang diasosiasikan dengannya.
Ketika
mendesain
mikroarsitektur,
para
desainer
menggunakan Register Transfer Language (RTL) untuk
29
mendefinisikan operasi dari setiap instruksi yang terdapat
dalam ISA.
Karakteristik-Karakteristik Instruksi Mesin
Operasi
CPU
ditentukan
oleh
instruksi
yang
dieksekusinya. Instruksi-instruksi ini di sebut sebagai
instruksi
mesin
(machine
komputer (Computer
Instructions)
Instructions).
Set
atau
instruksi
instruksi
dari
instruksi-instruksi yang berbeda yang dapat dieksekusi oleh
CPU dikenal sebagai set instruksi CPU.
Elemen-elemen Instruksi Mesin (set instruksi)
Setiap instruksi harus terdiri dari informasi yang
diperlukan oleh CPU untuk dieksekusi. Gambar berikut
menunjukkan langkah-langkah yang terdapat dalam eksekusi
instruksi dan bentuk elemen-elemen instruksi mesin.
Gambar 19 Elemen-elemen set instruksi
30
Elemen-elemen tersebut adalah :

Operation Code (opcode) : Menentukan operasi yang
akan dilaksanakan. Operasi ini dispesifikasikan oleh
sebuah kode biner, dikenal sebagai kode operasi atau
opcode.

Source Operand Reference : Merupakan input bagi
operasi
yang akan
dilaksanakan.
Operasi
dapat
melibatkan satu atau lebih operand sumber, operand
merupakan input bagi operasi.

Result Operand Reference : Merupakan hasil dari
operasi yang dilaksanakan.

Next instruction Reference : Memberitahu CPU untuk
mengambil
(fetch)
instruksi
berikutnya
setelah
menyelesaikan eksekusi suatu instruksi.
Instruksi yang akan diambil berikut berada di memori
utama atau pada sistem memori virtual. Akan lebih baik bila
berada di memori utama/memori sekunder (disk). Umumnya
instruksi yang akan segera diambil selanjutnya berada setelah
instruksi saat itu.
Source Operand dan Result Operand dapat berupa salah
satu dari tiga jenis berikut ini:
31
1.
Main or Virtual Memory
Dengan adanya acuan instruksi berikutnya, maka
alamat memori utama /memori virtual harus diketahui.
2.
CPU Register
Dengan suatu pengecualian yang jarang terjadi, CPU
terdiri dari sebuah register atau lebih yang dapat diacu oleh
instruksi-instruksi mesin. Bila hanya terdapat sebuah register,
maka acuan ke instruksi tersebut dapat berbentuk implisit.
Jika terdapat lebih dari satu register, maka setiap register
diberi nomor yang unik dan instruksi harus terdiri dari nomor
register yang dimaksud.
3.
I/O Device
Instruksi harus menspesifikasikan modul I/O dan
perangkat yang diperlukan oleh operasi. Jika digunakan I/O
memori terpetakan, maka perangkat ini merupakan memori
utama /memori virtual.
Representasi Instruksi
Pada komputer instruksi direpresentasikan oleh
sekumpulan bit yang dibagi dalam beberapa bidang yang
berkaitan
dengan
elemen-elemen
yang
akan
memuat
instruksi.
32
Gambar 20 Gambar Bentuk instruksi
Pada sebagian set instruksi bisa digunakan lebih dari
satu bentuk. Selama berlangsungnya eksekusi instruksi,
instruksi dibaca ke dalam register instruksi (IR) yang terdapat
dalam CPU. Untuk melakukan operasi yang diperlukan, CPU
harus dapat mengeluarkan data dari berbagai bidang
instruksi.
Opcodes direpresentasikan dalam bentuk singkatan yang
disebut mnemonics, yang menunjukkan operasi yang akan
dilaksanakan.
Contoh dari mnemonics adalah :
- ADD Add (penambahkan)
- DIV Divide (pembagian)
- SUB Subtract (pengurangan)
- LOAD Load data from memory
- MPY Multiply (perkalian)
- STOR
Store data to memory
33
Operand
juga
direpresentasikan
secara
simbolik,
contoh; ADD R,Y ---> yang berarti tambahkan nilai pada
lokasi Y ke isi register R.
Operasi dilakukan terhadap isi alamat, bukan terhadap
alamatnya. Sehingga memungkinkan menulis bahasa mesin
dalam bentuk simbol. Setiap opcode simbolik memiliki
representasi
biner
yang
tepat
dan
pemogram
dapat
menetapkan masing-masing operand simbolik.
Sebuah program yang sederhana akan menerima input
simbol ini kemudian mengkonversikan opcode dan acuan
operand/ Operand Reference tersebut menjadi bentuk biner
dan akhirnya membentuk instruksi mesin.
Jenis-jenis Instruksi
Suatu instruksi yang dapat diekspresikan dalam bahasa
BASIC atau FORTRAN seperti berikut :
X=X+Y
Pernyataan ini menginstruksikan komputer untuk
menambahkan 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
bahwa variabel X dan Y berkorespodensi dengan lokasi 513
34
dan 514. Jika kita mengasumsikan set instruksi mesin yang
sederhana, maka operasi ini dapat dilakukan dengan tiga buah
instruksi :
1. Muatkan sebuah register dengan isi lokasi memori 513.
2. Tambahkan isi lokasi memori 514 ke register.
3. Simpan isi register di lokasi memori 513.
Bahasa tingkat tinggi mengekspresikan operas-operasi
dalam bentuk aljabar yang singkat yaitu dengan variabelvariabel. Sedangkan bahasa mesin mengekspresikan operasi
dalam bentuk dasar yang meliputi perpindahan data dari
register dan ke register. Suatu komputer harus memiliki set
instruksi
yang
memungkinkan
pengguna
untuk
memformulasikan pengolahan data. Agar dapat dieksekusi
setiap program yang ditulis dalam bahasa program tingkat
tinggi harus diterjemahkan ke dalam bahasa mesin. Set
instruksi mesin harus dapat mengekspresikan setiap instruksi
bahasa tingkat tinggi.
Jenis-jenis instruksi dapat digolongkan menjadi :

Data Processing, instruksi-instruksi aritmatika dan
logika.

Data Storage, instruksi-instruksi memori.
35

Data Movement, instruksi I/O

Control, instruksi pemeriksaan dan percabangan.
Instruksi aritmatika memiliki kemampuan komputasi
untuk pengolahan data numerik. Sedangkan instruksi logika
atau bolean beroperasi terhadap bit-bit word sebagai bit,
sehingga instruksi-instruksi ini memiliki kemampuan untuk
pengolahan data lain yang akan digunakan oleh pengguna.
Operasi tersebut dilakukan bagi data yang terdapat pada
register-register CPU. Sehingga 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
pengujian digunakan untuk menguji/memeriksa nilai word
data dan status komputasi. Sedangkan instruksi percabangan
digunakan untuk mencabangkan ke set instruksi yang lain.
Jumlah Alamat
Salah satu cara tradisional untuk menggambarkan
arsitektur prosessor adalah dengan melihat jumlah alamat
yang terkandung dalam setiap instruksinya.
36
Instruksi aritmatika dan logika memerlukan jumlah
operand yang banyak. Jumlah alamat maksimum yang
mungkin diperlukan dalam sebuah instruksi :
1.
Empat Alamat ( dua operand, satu hasil, satu untuk
alamat instruksi berikutnya)
Instruksi empat alamat sangat jarang ditemukan,
sebagian besar CPU merupakan variasi satu, dua atau
tiga
alamat
dengan
alamat
instruksi
berikutnya
merupakan implisit.
2.
Tiga Alamat (dua operand, satu hasil)
Format tiga alamat tidak umum digunakan karena
instruksi-instruksi memerlukan bentuk instruksi yang
relatif lebih panjang untuk menampung acuan-acuan
tiga alamat.
3.
Dua Alamat (satu operand merangkap hasil, satunya
lagi operand)
Bentuk dua alamat mengurangi kebutuhan ruang akan
tetapi menimbulkan kesulitan. Untuk menghindarkan
nilai suatu operand, instruksi MOVE digunakan untuk
memindahkan sebuah nilai ke sebuah lokasi hasil atau
lokasi sementara sebelum operasi dilakukan.
37
4.
Satu
Alamat
(menggunakan
accumulator
untuk
menyimpan operand dan hasilnya)
Instruksi ini adalah instruksi yang lebih sederhana.
Agar alamat ini dapat berfungsi, alamat kedua perlu
diimplisitkan. Hal ini sangat umum pada mesin-mesin
lama dengan mengimplementasikan alamat sebagai
register CPU (akumulator/AC).
Instruksi untuk menghitung persamaan:
Y = (A – B) / (C + D * E)
Tabel 1 Three Address Instruction
Instruksi
Komentar
SUB Y,A,B
Y <--- A - B
MPY T,D,E
T <--- D x T
ADD T,T,C
T <--- T + C
DIV Y,Y,T
Y <--- Y : T
Tabel 2 One Address Instruction
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
38
Tabel 3 Two Address Instruction
Instruksi
Komentar
MOVE Y,A
Y <--- A
SUB
Y,B
Y <--- Y – B
MOVE T,D
T <--- D
MPY T,E
T <--- T x E
ADD T,C
T <--- T + C
DIV
Y,T
Y <--- Y : T
Jumlah alamat per instruksi di tentukan rancangan
dasarnya. Alamat per instruksi yang lebih sedikit akan
menghasilkan instruksi yang lebih primitif dan memerlukan
CPU yang kurang kompleks. Instruksi seperti ini juga
menghasilkan instruksi yang lebih pendek. Program yang
jumlah
instruksi
lebih
banyak,
secara
umum
akan
menghasilkan waktu eksekusi yang lebih panjang dan akan
lebih panjang lagi bila programnya lebih kompleks.
Rancangan Set Instruksi
Rancangan set instruksi mempengaruhi banyak aspek
pada sistem komputer. Rancangan set instruksi sangat
kompleks. Set instruksi menentukan banyak implementasi
CPU. Set instruksi merupakan alat bagi pemrogram untuk
mengkontrol CPU.
39
Desain set instruksi merupakan masalah yang sangat komplek
yang melibatkan banyak aspek, diantaranya adalah:
1. Kelengkapan set instruksi
2. Ortogonalitas (sifat independensi instruksi)
3. Kompatibilitas : - source code compatibility
- Object code Compatibility
Selain ketiga aspek tersebut juga melibatkan hal-hal
sebagai berikut :
a.
Operation Repertoire: Berapa banyak dan operasi apa
saja yang disediakan, dan berapa sulit operasinya
b.
Data Types: tipe/jenis data yang dapat olah.
c.
Instruction Format: panjangnya, banyaknya alamat,
dan sebagainya.
d.
Register: Banyaknya register yang dapat digunakan.
e.
Addressing: Mode pengalamatan untuk operand.
Masalah-masalah ini saling berkaitan dan harus
diperhatikan dalam merancang set instruksi.
Jenis-jenis OPERAND
Instruksi mesin mengoperasikan data. Kategori data umum
yang sangat penting adalah :
40
•
Alamat
•
Bilangan
•
Karakter
• Data logika
Alamat adalah sebuah bentuk data. Umumnya untuk
menentukan alamat memori utama/memori virtual sebagian
kalkulasi harus dilakukan terhadap acuan operand/operand
reference di dalam sebuah instruksi. Dalam konteks ini
alamat dapat dianggap sebagai integer tidak bertanda.
Semua bahasa mesin memiliki jenis data numerik.
Bahkan untuk data non numerik, bilangan digunakan sebagai
penghitung lebar bidang dan lain-lain. Perbedaan antara
bilangan yang digunakan dalam matematika dengan bilangan
yang tersimpan dalam komputer bahwa jumlah bilangan yang
digunakan dalam komputer sangat terbatas. Ini disebabkan
pertama, besarnya keterbatasan terhadap bilangan yang dapat
direpresentasikan pada mesin dan kedua, dalam bilangan titik
mengambang terdapat keterbatasan dalam hal ketelitian. Jadi
pemrogram dihadapkan dengan konsekuensi pembulatan,
overflow dan underflow.
Tiga jenis data numerik yang terdapat pada komputer
adalah :
41
1. Integer /titik tetap.
2. Titik mengambang.
3. Desimal.
Operasi internal komputer menggunakan operasi biner,
namun pengguna sistem lebih mudah memahami bilangan
desimal. Dengan demikian terdapat suatu kebutuhan untuk
mengubah bentuk dari desimal menjadi biner pada input dan
dari biner menjadi desimal pada output. Representasi yang
umum untuk hal tersebut adalah dengan packed decimal.
Dengan
packed
decimal
setiap
digit
desimal
direpresentasikan dengan sebuah kode 4 bit, menjadi ;
0=
0000, 1=0001,...9=1001. Kode ini tidak efisien karena hanya
dapat memanfaatkan 10 nilai dari 16 buah nilai 4 bit yang
dapat digunakan. Untuk membuat bilangan, kode-kode 4 bit
tersebut digabungkan dalam kelipatan 8 bit. Jelas kode ini
kurang
ringkas
namun
dapat
menghindari
terjadinya
overhead konversi. Bilangan negatif dapat direpresentasikan
dengan melibatkan 4 bit digit tanda pada ujung kiri atau
kanan digit-digit packed decimal. Misalnya kode 1111 dapat
diartikan sebagai tanda minus.
String-string Karakter atau teks adalah bentuk data yang
umum. Teks dalam bentuk karakter tidak mudah disimpan
atau dikirimkan oleh sistem pengolahan data atau sistem
42
komunikasi. Dengan demikian sejumlah kode digunakan
untuk merepresentasikan karakter dengan memakai rangkaian
bit. Kode karakter yang umum dipakai didalam kode IRA
(International Reference Alphabet), merujuk ke Amerika
Serikat adalah kode ASCII (American Standard Code for
Information
Interchange).
IRA
setiap
karakternya
direpresentasikan dengan pola 7 bit yang unik, sehingga
terdapat 128 karakter. Untuk karakter ASCII hampir selalu
dapat disimpan dan ditransmisikan dengan menggunakan 8
bit per karakter. Bit kedelapan dapat diset nol atau digunakan
sebagai bit paritas untuk deteksi kesalahan.
Umumnya setiap word atau unit lainnya yang dapat
dialamati (byte, halfword) diperlakukan sebagai unit data.
Sering kali berguna untuk mempertimbangkan satuan n-bit
sebagai n butir data 1-bit, yang masing-masing memliki nilai
0 atau 1. Apabila data dipandang seperti itu, maka data
tersebut dipandang sebagai data logika. Terdapat dua
keuntungan dibandingkan cara pandang berorientasi bit.
Pertama, kadang-kadang kita perlu menyimpan butir array
Boolean atau data biner yang hanya dapat mengambil satu
nilai, 1 atau 0. Dengan data logika penyimpanan data dalam
memori dapat lebih efisien. Kedua, terdapat suatu kebiasaan
pada saat akan memanipulasi bit-bit data. Perlu diingat
43
kadang data yang sama diperlukan sebagai data logika/data
numerik/teks.
Jenis-jenis Operasi
Jumlah opcode suatu mesin akan sangat berbeda dengan
jumlah opcode mesin lainnya. Akan tetapi jenis operasi pada
semua mesin memiliki kesamaan. Penggolongan jenis operasi
yang umum adalah :
Data Transfer
- I/O
Aritmatic
- System control
Logical
- Transfer control
Convension
Tabel berikut ini menampilkan operasi-operasi set instruksi
yang umum.
Tabel 4 operasi-operasi set instruksi
Tipe
Data Transfer
Nama
Operasi
Move (transfer)
Load
Exchange
Clear/reset
Set
Push
Pop (pull)
Arithmetic
Add
Subtract
Multiply
Devide
Absolute
Deskripsi
Transfer word/blok dari source ke
destination
Transfer word dari external memory ke
processor
Swap content dari source dengan
destination
Transfer word 0 ke destination
Transfer word 1 ke destination
Transfer word dari source ke bagian atas
stack
Transfer word dari bagian atas stack ke
destination
Computer sum of two operands
Compute difference of two operands
Compute product of two operands
Compute quotient of two operands
Replace operand by its abs value
44
Logical
Negate
Increment
Decrment
AND
OR
NOT
Exclusive-OR
Shift
Rotate
No Operation
Input-Output
Input(read)
Output
Start IO
Test IO
Conversion
Translate
Convert
System Control
OSCALL
Transfer of
Control
Jump (Branch)
Jump Conditional
Jump Subroutine
call, Branch and
Link
Return
Execute
Skip
Skip Conditional
Test
Compare
Change sign of operand
Add 1 to operand
Substract 1 from operand
Perform the specified logical operation
bitwise
Left-(right) shift operand introducting
constants at end
Left-(right) shift operand
No operation is performed, but program
execution continues
Transfer data from specified IO port or
device to destination, e.g., main memory
or processor register
Transfer data from specified source to IO
port or device
Transfer instruction to IO to initiate IO
operation
Transfer status information from IO
system to specified destination
Translate values in a section of Memory
based on a table of correspondences
Convert the contents of a word from one
form to another (e.g., packed decimal to
binary)
Causes an interrupt, which passes control
to operating system around closed path
Unconditional transfer, load PC with
specified address
Test specified condition; depending on
condition, either load PC with specified
address or else d nothing
Place current program control information
(PC, status register, etc.) in known
location, e.g., top of static; jump to
specified address
Replace contents of PC, status register,
etc. with information from known
location, e.g., from top stack
Fetch operand from specified location and
execute as instruction; note that PC is not
modified.
Increment PC to skip the next instruction
Test specified condition; depen-ding on
outcome, either increment PC or else do
nothing
Test specified condition; set flag(s) based
on outcome
Make logical or arithmetic comparison of
two or more operands; set flag(s) based on
outcome
45
Set Control
Variables
Halt
Wait
(hold)
Large class of instruction to set controls
for protection purposes, interrupt
handling, timer control, etc. (often
privillaged instructions)
Stop program execution
Stop program execution; test a specified
condition continuously; when the
condition is satisfied, resume execution
Data Transfer
Data transfer adalah jenis instruksi mesin yang paling
signifikan. Instruksi transfer data harus menetapkan segala
sesuatu. Pertama, menetapkan lokasi operand sumber dan
operand tujuan. Lokasi-lokasi tersebut dapat berupa memori,
register atau bagian paling atas dari stack. Kedua,
menetapkan panjang data yang akan dipindahkan. Ketiga,
menetapkan mode pengalamatan setiap operand.
Dalam hal tindakan CPU, mungkin operasi transfer data
merupakan jenis operasi yang paling sederhana. Apabila
sumber dan tujuannya merupakan register, maka CPU cukup
melakukan perpindahan data dari register yang satu ke
register yang lainnya saja. Hal tersebut merupakan operasi
internal bagi CPU. Apabila sebuah atau dua operand berada
didalam memori, maka CPU harus melakukan sebagian atau
seluruh tindakan berikut :
1. Menghitung alamat memori, yang didasarkan mode
alamat.
46
2. Apabila alamat mengacu ke memori virtual,
terjemahkan dari alamat memori virtual ke memori
actual/sebenarnya.
3. Menentukan apakah butir alamat berada dalam cache.
4. Bila tidak ada dalam cache, terbitkan perintah ke
modul memori.
Aritmatic
Sebagian besar mesin memberikan operasi aritmatika
dasar seperti penambahan, pengurangan, perkalian dan
pembagian. Operasi-operasi ini selalu tersedia bagi bilanganbilangan integer bertanda (titik tetap). Sering kali operasioperasi tersebut disediakan juga bagi bilangan-bilangan titik
mengambang dan packed decimal.
Operasi-operasi lainnya meliputi bermacam-macam
instruksi operand tunggal, misalnya ;
 Absolute; mengambil nilai mutlak operand.
 Negate ; membalik/negasi operand.
 Increment ; menambah operand dengan 1.
 Decrement ; mengurangi operand dengan 1.
47
Eksekusi sebuah instruksi operand dapat melibatkan
operasi pemindahan data untuk meletakkan operand bagi
input ALU, dan menyampaikan output ALU.
Tindakan CPU untuk melakukan operasi Aritmatik :
1. Transfer data sebelum atau sesudah.
2. Melakukan fungsi dalam ALU.
3. Menset kode-kode kondisi dan flag.
Logical
Sebagian
mesin
menyediakan
bermacam-macam
operasi untuk memanipulasi bit suatu word atau unit-unit
lainnya yang dapat dialamati, sering kali hal ini disebut “bit
twiddling”.
Operasi-operasi
tersebut
berdasarkan
pada
operasi Boolean.
Beberapa operasi logika dasar dapat dilakukan pada
data Boolean atau biner seperti tabel berikut.
Tabel 5 Operasi Logika pada data Boolean atau biner
P Q
0
0
0
1
P
P
P
P
NOT
AND OR XOR =
P
Q
Q
Q
Q
1
0
0
0
1
1
0
1
1
0
48
1
0
0
0
1
1
0
1
1
0
1
1
0
1
Operasi NOT meng-inversi sebuah bit. AND, OR dan
Exclusive-OR (XOR) adalah fungsi logika yang paling umum
pada dua operand. Operasi-operasi logika tersebut dapat
diimplementasikan secara bit terhadap unit data logika n-bit.
Jadi bila dua register terdiri dari :
R1 = 10100101
R2 = 00001111
Maka, R1 AND R2 = 00000101
Dengan demikian operasi AND dapat digunakan sebagai
penyaring yang memilih bit-bit tertentu dalam sebuah word
dan me-nol-kan bit-bit lain.
Contoh yang lain ;
R1 = 10100101
R2 = 11111111
Maka, R1 XOR R2 = 01011010
Dengan di-setnya sebauh word semuanya ke 1, maka operasi
XOR menginversikan seluruh bit dalam word-word lainnya
(komplemen 1). Selain operasi logika secara bit, mesin juga
memilikifungsi pergeseran dan rotasi.
49
0
...
Pergeseran Logika Kanan
...
Pergeseran Logika Kiri
Pada pergeseran logis, bit-bit dapa sebuah word
digeser kesebelah kiri atau kanan. Pada satu sisi bit yang
digeser akan keluar atau hilang. Pada sisi lainnya bilangan 0
akan digeser kedalam. Pergeseran logika sangat berguna
terutama untuk mengisolasi bidang-bidang didalam word.
Bilangan-bilangan 0 suatu word yang digeser ke dalam
menggantikan informasi yang tidak diinginkan digeser keluar
pada sisi lainnya.
0
S
Pergeseran Aritmatika Kanan
...
S
Pergeseran Aritmatika Kiri
...
50
Operasi pergeseran aritmatika seperti gambar diatas,
memperlakukan data sebagai integer bertanda dan tidak
bertanda akan menggeser bit tanda. Pada pergeseran
aritmatika kanan, bit tanda diisi ke posisi bit sebelah kanan.
Pada bilangan-bilangan dalam notasi komplemen dua,
pergeseran kiri atau kanan masing-masing berhubungan
dengan perkalian atau pembagian dengan 2, dengan syarat
tidak terdapat overflow. Jika terjadi overflow pergeseran
aritmatika dan logika kiri akan menghasilkan hasil yang
berbeda, namun aritmatika kiri menyimpan tanda dari
bilangan tersebut. Karena kemungkinan terjadinya overflow,
banyak prosesor tidak memasukkan instruksi ini.
...
Rotasi Kanan
...
Rotasi Kiri
Operasi rotasi menjada semua bit yang sedang
dioperasikan. Salah satu fungsi rotasi adalah untuk membawa
51
seluruh bit secara berurutan ke bit yang paling kiri, bit-bit
tersebut dapat didefinisikan dengan pemeriksaan tanda dari
datanya. Seperti halnya pada operasi aritmatika dan operasi
logika, melibatkan aktivitas ALU dan dapat melibatkan
operasi pemindahan data.
1.
Konversi
Instruksi konversi adalah instruksi yang mengubah
bentuk atau instruksi yang beroperasi terhadap bentuk data.
Contohnya pengubahan bilangan desimal menjadi bilangan
biner.
2.
Input/Output
Terdapat
bermacam-macam
pendekatan
termasuk
diantaranya isolasi I/O terprogram, memori terpetakan I/O
terprogram. DMA dan penggunaan prosesor I/O. banyak
implementasi yang hanya memberikan sedikit instruksi I/O,
dengan aksi-aksi tertentu yang ditentukan oleh parameter,
kode atau instruksi word tertentu.
3.
Kontrol Sistem
Instruksi-instruksi kontrol sistem umumnya merupakan
instruksi khusus yang hanya dapat dieksekusi ketika prosesor
berada
dalam
keadaan
khusus
tertentu
atau
sedang
52
mengeksekusi program yang berada dalam area memori
khusus. Instruksi-instruksi ini digunakan dalam sistem
operasi.
4.
Transfer kontrol
Operasi transfer kontrol yang paling umum pada set-set
instruksi terdiri dari :
-
Branch (percabangan)
-
Subroutine call (panggilan subrutin)
-
Skip (lewati)
Ada beberapa alasan diperlukannya operasi transfer
kontrol :
1.
Mengeksekusi instruksi lebih dari satu kali atau bahkan
lebih dari ribuan kali merupakan hal yang mendasar.
Oleh karena itu diperlukan ribuan/jutaan instruksi untuk
mengimplementasikan suatu aplikasi. Tidak dapat
dibayangkan bila setiap instruksi ditulis secara terpisah.
Bila suatu tabel atau daftar akan diproses, maka
diperlukan program pengulang. Sebuah rangkaian
instruksi dieksekusi secara berulang untuk memproses
seluruh data.
53
2.
Secara virtual sebuah program melibatkan pengambilan
keputusan. Kita berharap komputer melakukan sesuatu
apabila terdapat sebuah persyaratan dan melakukan
sesuatu yang lain bagi persyaratan yang lainnya.
Misalnya sebuah instruksi menghitung akar kuadrat
sebuah bilangan. Pada awalnya tanda bilangan akan
diperiksa. Bila bilangannya negatif, maka komputasi
tidak akan dilakukan, namun akan dilaporkan keadaan
error.
3.
Menyelesaikan program komputer berukuran besar atau
bahkan berukuran sedang secara benar merupakan
tugas yang sangat sulit. Maka akan sangat membantu
apabila terdapat mekanisme untuk memecah tugas
tersebut menjadi bagian-bagian kecil yang dapat
diselesaikan satu per satu.
2.
Mode dan Bentuk Pengalamatan
Bidang alamat atau bidang pada bentuk instruksi yg
umum adalah relatif kecil. Kita dapat mengambil acuan
cakupan yang besar tentang lokasi memori utama atau untuk
beberapa sistem. Untuk mencapai ini berbagai teknik
pengalamatan dilakukan. Semua teknik tersebut melibatkan
tarik-menarik antara cakupan alamat dan fleksibilitas
54
pengalamatan di satu sisi, dan jumlah acuan memori dan
kompleksitas kalkulasi alamat pada sisi lain. Teknik
pengalamatan yang umum adalah :
a.

Segera

Langsung

Tidak Langsung

Register

Register tidak langsung

Pengganti

Stack
Pengalamatan Segera
Pengalamatan ini adalah bentuk pengalamatan yang
paling sederhana, dimana operand benar-benar diberikan
pada instruksi :
OPERAND = A
Mode ini dapat digunakan untuk mendefinisikan dan
menggunakan nilai awal variabel tetap atau yang diset.
Secara umum bilangan akan disimpan dalam bentuk
komplemen dua, bit paling kiri bidang operand digunakan
sebagai bit tanda. Ketika operand terisi dalam register data,
bit tanda diperluas ke kiri sepenuhnya ukuran word data.
55
Keuntungan pengalamatan segera adalah tidak ada
acuan memori selain dari pengambilan instruksi yang
diperlukan untuk memperoleh operand, sehingga menghemat
satu memori/siklus cache dalam siklus instruksi. Kerugiannya
adalah ukuran bilangannya terbatas pada ukuran bidang
alamat yang sama, dalam kebanyakan set instruksi lebih kecil
dibandingkan dengan panjang word.
b.
Pengalamatan Langsung
Adalah pengalamatan yang sederhana dimana bidang
alamat terdiri dari alamat efektif operand :
EA = A
Teknik ini umum digunakan pada generasi awal
komputer. Teknik ini memerlukan hanya satu acuan memori
dan tidak ada kalkulasi khusus. Pembatasan yang jelas adalah
bahwa teknik ini memberikan hanya sebuah ruang alamat
terbatas.
c.
Pengalamatan Tidak langsung
Panjang bidang alamat pada umumnya kurang dari panjang
word sehingga membatasi cakupan alamat. Penyelesaiannya
adalah mempunyai bidang alamat yang mengacu pada alamat
word dalam memori, yang pada gilirannya terdiri dari
56
sepanjang alamat operand. Pengalamatan ini dikenal dengan
pengalamatan tidak langsung :
EA = (A)
Tanda kurung di gunakan untuk diinterpretasikan
sebagai arti yang terdiri dari. Keuntungan yang jelas nyata
dari pendekatan ini adalah bahwa untuk panjang word N,
suatu ruang alamat 2N kini tersedia. Kerugiannya adalah
bahwa eksekusi instruksi memerlukan dua acuan memori
untuk mengambil operand tersebut; satu untuk mendapatkan
alamatnya dan kedua untuk mendapatkan nilainya.
Meskipun jumlah word yang dapat dialamatikini sama
dengan 2N, jumlah alamat efektif berbeda yang dapat diacu
pada sembarang waktu yang dibatasi pada 2 K, dimana K
adalahpanjang bidang alamat.
d.
Pengalamatan Register
Pengalamatan register sama dengan pengalamatan
langsung. Perbedaannya adalah bidang alamat mengacu pada
register dari pada sebagai alamat memori utama :
EA = R
57
Secara umum bidang alamat yang mengacu pada register
akan mempunyai 3-5 bit, sehingga total register bertujuan
umum dapat diacu dari 8 sampai 32.
Keuntungan pengalamatan register :
1. Memerlukan bidang alamat yang kecil dalam instruksi.
2. Tidak diperlukan acuan memori, karena waktu akses
memori untuk register internal bagi CPU sangat sedikit
dibanding dengan alamat memori utama.
Kerugian pengalamatan register adalah ruang alamat sangat
dibatasi.
Jika pengalamatan register digunakan secara penuh
dalam set instruksi, maka hal ini mengimplementasikan
bahwa register CPU akan digunakan secara penuh. Karena
terbatasnya beberapa bilangan register dibandingkan lokasi
memori utama, penggunaannya pada mode ini membuat
pengertiannya hanya jika register bekerja secara efisien. Jika
setiap operand dibawa ke dalam register memori utama,
beroperasi sekali, maka kembali ke memori utama, maka
langkah antara tidak perlu ditambahkan. Jika operand pada
register sisanya yang digunakan untuk berbagai operasi,
maka penyimpanan riil dicapai. Hal ini sampai ke pemrogram
58
untuk memutuskan nilai-nilai mana yang harus berada dalam
register dan yang harus disimpan pada memori utama.
e.
Pengalamatan Register tidak langsung
Pengalamatan register tidak langsung dapat disamakan
dengan pengalamatan tidak langsung. Perbedaannya adalah
apakah bidang alamat mengacu ke lokasi memori atau
register. Jadi untuk alamat register tidak langsung:
EA = (R).
Keuntungan dan pembatasan pengalamatan register
tidak langsung pada dasarnya sama dengan pengalamatan
tidak langsung. Pada kedua kasus, pembatasan ruang alamat
dari bidang alamat diatasi dengan pemberian bidang tersebut
mengacu pada lokasi panjang word yang berisi alamat.
Sebagai tambahan, register pengalamatan tidak langsung
menggunakan satu lebih sedikit acuan memori dibanding
pengalamatan tidak langsung.
f.
Pengalamatan Pengganti
Mode pengalamatan yang sangat handal diperoleh
dengan
langsung
mengkombinasikan
dan
register
kemampuan
pengalamatan
pengalamatan
tidak
langsung.
Mekanisme ini adalah sebagai pengalamatan pengganti :
59
EA = A+(R)
Pengalamatan pengganti memerlukan instruksi yang
mempunyai dua bidang alamat yang salah satunya eksplisit.
Nilainya terdiri dari satu bidang alamat (nilai = A) digunakan
secara langsung.
Bidang alamat yang lain, atau opcode yang ditujukan
pada acuan implisit, mengacu pada register yang terdiri dari
penambahan ke A untuk menghasilkan alamat efektif.
Ada 3 penggunaan umum terhadap pengalamatan pengganti :
1. Pengalamatan relatif.
2. Pengalamatan register dasar.
3. Peng-indeks-an
Pada pengalamatan relatif, register diacu secara implisit
adalah pencacah program (PC). Alamat instruksi tertentu
ditambahkan ke bidang alamat untuk menghasilkan EA.
Secara umum bidang alamat diperlakukan sebagai bilangan
komplemen dua untuk operasi ini. Jadi alamat efektif
merupakan penggantian relatif dengan alamat instruksi
tersebut.
60
Pengalamatan register dasar adalah register yang diacu
berisi alamat memori dan bidang alamat berisi penggantian
dari alamat tersebut. Acuan register dapat berupa eksplisit
atau implisit. Pengalamatan register dasar juga memanfaatkan
lokalitas acuan memori.
Pada peng-indeks-an, acuan bidang alamat suatu alamat
memori utama, dan register yang diacu berisi penggantian
positif dari alamat tersebut. Penggunaannya hanya kebalikan
dari interpretasi untuk pengalamatan register dasar. Bidang
alamat dianggap sebagai alamat memori dalam peng-indeksan, secara umum terdiri dari lebih banyak bit dibanding
dengan bidang alamat pada instruksi register dasar yang
dapat diperbandingkan. Penggunaan pengindek-an yang
penting adalah memberikan mekanisme yang efisien untuk
pembentukan operasi yang berulang-ulang.
g.
Pengalamatan Stack
Stack adalah sekumpulan elemen yang berurutan, hanya
satu elemen saja yang dapat diakses pada suatu saat. Titik
akses disebut sebagai puncak (top) stack. Elemen hanya dapat
ditambahkan atau dihapus dari puncak stack. Stack dikenal
juga dengan antrian last-in-first-out (LIFO).
61
Stack merupakan blok lokasi yang dipesan. Materi
ditambahkan ke puncak stack sehingga disetiap waktu blok
secara parsial diisi. Mode pengalamatan stack merupakan
bentuk implikasi pengalamatan. Instruksi-instruksi mesin
tidak perlu meliputi acuan memori tetapi secara implisit
beroperasi diatas stack tersebut.
Tabel 6 Mode Pengalamatan
62
Gambar 21 Mode-mode Pengalamatan
Bentuk-bentuk instruksi
Suatu bentuk instruksi mendefinisikan layout bit
instruksi dalam kaitannya dengan bagian utamanya. Suatu
bentuk instruksi harus meliputi sebuah opcode dan secara
63
implisit /eksplisit, operand nol atau lebih. Masing-masing
operand eksplisit diacu dengan menggunakan salah satu
mode pengalamatan. Secara implisit/eksplisit, bentuk harus
mengindikasikan adanya mode pengalamatan untuk masingmasing operand. Untuk kebanyakan set instruksi digunakan
bentuk instruksi lebih dari satu.
Panjang Instruksi
Hal yang mendasar dalam merancang adalah panjang
bentuk instruksi. Karena dipengaruhi oleh kapasitas memori,
organisasi memori, struktur bus, kompleksitas CPU dan
kecepatan
CPU.
Keputusan
ini
akan
menentukan
kesempurnaan dan fleksibilitas dari mesin.
Kerugiannya adalah antara keinginan untuk repertoir
instruksi yang handal dan kebutuhan untuk menyimpan
ruang. Pemrogram menginginkan opcode yang lebih, operand
yang lebih, mode pengalamatan yang lebih dan cakupan
alamat yang lebih besar. Opcode dan operand yang lebih
membuat lebih mudah bagi pemrogram karena program yang
lebih pendek dapat ditulis untuk memenuhi tugas yang
diberikan. Dengan cara yang sama, mode pengalamatan yang
lebih memberikan fleksibilitas lebih besar bagi pemrogram
dalam pengimplementasian fungsi tertentu.
64
Opcode, operand, mode pengalamatan dan cakupan
alamat memerlukan bit dan mendorong dalam arah yang
panjang instruksinya lebih panjang. Instruksi yang lebih
panjang bisa saja tidak digunakan. Seperti sebuah instruksi 64
bit menduduki dua kali lebih ruang instruksi 32 bit, tetapi
manfaatnya kurang dari dua kali.
Selain
kekurangan
yang
mendasar
ini,
terdapat
pertimbangan lain. Salah satu panjang instruksi harus sama
dengan panjang transfer memori (pada sistem bus, panjang
bus data) atau panjang instruksi harus berbeda. Cara lainnya,
kita tidak akan mendapatkan kesatuan bilangan instruksi
selama siklus pengambilan. Sebuah pertimbangan yang
terkait adalah kelajuan transfer memori. Kelajuan ini belum
mengikuti peningkatan kecepatan prosesor. Sehingga memori
dapat menjadi suatu penghambat jika prosesor dapat
mengeksekusi instruksi lebih cepat dari pada memori dapat
mengambilnya. Satu solusi untuk masalah ini adalah dengan
menggunakan memori cache, cara lain adalah dengan
menggunakan instruksi yang lebih pendek. Sehingga instruksi
16 bit dapat diambil dua kali kecepatan instruksi 32 bit tetapi
mungkin dapat dieksekusi lebih lambat dari dua kali. Panjang
instruksi seharusnya terdiri dari berbagai panjang karakter
yang umumnya adalah 8 bit.
65
Alokasi Bit
Untuk panjang instruksi yang diberikan terdapat
kerugian
antara
banyaknya
opcode
dan
kemampuan
pengalamatan. Opcode yang lebih jelas berarti bit yang lebih
banyak dalam bidang opcode. Untuk bentuk instruksi dari
panjang yang diberikan, ini mengurangi banyaknya bit yang
tersedia untuk pengalamatan. Terdapat satu perbaikan yang
menarik terhadap kerugian ini, dan itu digunakan opcode
panjang variabel. Pada pendekatan ini terdapat panjang
opcode minimum, tetapi untuk beberapa opcode, operasi
tambahan mungkin dispesifikasikan dengan menggunakan bit
tambahan pada instruksi. Untuk instruksi panjang tetap, hal
ini meninggalkan lebih sedikit bit untuk pengalamatan.
Sehingga
fitur
ini
digunakan
untuk
instruksi
yang
memerlukan lebih sedikit operand/ sedikit lebih andal
pengalamatan.
Faktor saling berhubungan berikut menentukan penggunaan
pengalamatan bit :

Jumlah mode pengalamatan : Mode pengalamatan
dapat diindikasikan secara implisit. Contoh ; opcode
tertentu mungkin selalu meminta untuk peng-indeksan. Pada kasus yang lain mode pengalamatan harus
eksplisit dan satu atau lebih bit mode akan diperlukan.
66

Jumlah operand : alamat yang sedikit dapat dibuat
bagi program lebih panjang. Instruksi umum pada
mesin saat ini memberikan dua operand. Masingmasing alamat operand pada instruksi mungkin
memerlukan
indikator
mode,
atau
penggunaan
indikator mode dapat dibatasi pada hanya satu bidang
alamat saja.

Register versus memori : sebuah mesin harus
mempunyai register sehingga data dapat dibawa ke
dalam CPU. Dengan register tunggal terlihat oleh
pengguna (yg umum disebut akumulator), satu alamat
operand adalah implisit dan menggunakan bukan bit
instruksi.
Bagaimanapun
pemrograman
register
tunggal memerlukan banyak instruksi. Sama dengan
berbagai register, hanya sedikit bit yang diperlukan
untuk menspesifikasikan register. Semakin register
tersebut dapat digunakan untuk acuan operand, lebih
sedikit bit yang diperlukan. Sejumlah penelitian
mengindikasikan bahwa total register yang terlihat
oleh pengguna adalah 8-32. Sedangakan untuk
arsitektur yang kontemporervmempunyai sedikitnya
32 register.
67

Jumlah set register : Mesin yang paling kontemporer
mempunyai satu register bertujuan umum, pada
umumnya dengan 32 register atau lebih dalam satu
set. Register ini untuk menyimpan data dan alamat
untuk pengalamatan penggantian. Beberapa arsitektur
(pentium), mempunyai dua set khusus atau lebih.
Keuntungan dengan pendekatan ini, untuk bilangan
register tetap pemisahan fungsional memerlukan lebih
sedikit bit untuk digunakan dalam instruksi tersebut.
Contohnya; dengan dua set 8 register, hanya
diperlukan 3 bit untuk mengidentifikasi register,
opcode secara implisit akan menentukan set register
yang diacu.

Cakupan alamat : Untuk alamat yang mengacu
memori,
cakupan
alamat
yang
dapat
diacu
dihubungkan dengan jumlah bit alamat. Karena
pembebanan ini sebuah pembatasan, pengalamatan
langsung jarang digunakan. Pada pengalamatan
penggantian, cakupan dibuka sampai ke panjang
register alamat. Meski demikian , hal ini masih
mengizinkan penggantian yang agak besar dari alamat
register, yang memerlukan secara relatif sejumlah
besar bit alamat pada instruksi.
68

Granularitas alamat : Untuk alamat yang mengacu
pada memori daripada register, faktor lainnya adalah
granularitas pengalamatan. Pada sistem dengan word
16 atau 32 bit, alamat dapat mengacu word atau byte
pada pilihan perancang.
Hal ini membuat perancang berhadapan dengan
sejumlah
besar faktor
untuk
mempertimbangkan
dan
menyeimbangkan. Penggunaan set asumsi konsistens, tidak
ada perbedaan penting dalam ruang kode atau waktu
eksekusi.
 PDP-8
PDP-8 adalah salah satu rancangan instruksi paling
sederhana untuk komputer bertujuan umum. PDP-8
menggunakan instruksi 12 bit dan beroperasi pada
word 12 bit. Terdapat suatu register bertujuam umum
tunggal,
yaitu
pengalamatan
akumulator.
tidak
PDP-8
langsung,
mendukung
pengalamatan
penggantidan peng-indeks-an. Bentuk instruksinya
juga efisien. Dengan menggunakan opcode perluasan,
mendukung kira-kira 35 instruksi. Dengan batasan
panjang instruksi 12-bit.
69
 PDP-10
PDP-10 dirancang untuk sistem berbagi waktu skala
besar dengan penekanan pada membuat sistem mudah
bagi program. Hal ini berbeda jauh dengan set
instruksi PDP-8.
Diantara prinsip rancangan yang telah dilakukan pada
perancangan set instruksi adalah:
1.
Orthogonalitas
Merupakan prinsip dengan dua variabel independen satu
dengan lainnya. Dalam konteks set instruksi, istilah ini
mengindikasikan bahwa elemen-elemen instruksi lain
tidak
terikat
pada
opcode.
Perancang
PDP-10
menggunakan istilah untuk menguraikan fakta bahwa
alamat selalu dihitung dengan cara yang sama, tidak
terikat pada opcode. Ini berlawanan dengan mesin
lainnya dimana mode alamat kadang-kadang tergantung
secara implisit pada operator yang sedang digunakan.
2.
Kelengkapan
Masing-masing jenis data aritmatika mempunyai set
operasi lengkap dan identik.
70
Pengalamatan langsung, Basis ditambah pengalamatan
penggantian
tempat
dimana
organisasi
memori
membebankan pada pemrogram, dihindar menuju ke
pengalamatan langsung.
PDP-10 mempunyai panjang word 36 bit dan panjang
instruksi 36 bit. Tidak perlu melakukan apapun untuk
mendapatkan opcode yang lebih, bidang opcode 9 bit sudah
lebih
dari
cukup.
Bidang
alamat
18
bit
sehingga
pengalamatan dilakukan secara langsung. Kapasitas memori
lebih besar dari 218 yang diberikan indirection. Peng-indeksan diberikan untuk manipulasi tabel danprogram secara
berulang dengan bidang operand 18 bit.
Instruksi-instruksi panjang variabel
Pengalamatan dapat lebih fleksibel dengan berbagai
macam kombinasi register dan acuan memori ditambah mode
pengalamatan. Dengan instruksi panjang variabel, variasi
banyak ini dapat diberikan secara efisien dan lengkap.
Biaya prinsip besar instruksi panjang variabel adalah
suatu peningkatan dalam kompleksitas CPU. Turunnya harga
perangkat keras, penggunaan pemrograman mikro dan
peningkatan
rancangan
umum
CPU
dalam
mempunyai
pemahaman
semua
prinsip-prinsip
dukungan
dalam
71
penurunan biaya. Penggunaan instruksi panjang variabel
tidak membuang keinginannya terhadap pembuatan semua
panjang instruksi secara integral berhubungan dengan
panjang word. Karena CPU tidak mengetahui panjang
instruksi berikutnya untuk diambil, strategi umumnya adalah
mengambil sejumlah byte atau word sama dengan sedikitnya
instruksi yang mungkin terpanjang. Artinya bahwa kadangkadang diambil berbagai perintah.

PDP-11
PDP-11 dirancang untuk memberikan set instruksi yang
handal dan fleksibel dalam batasan komputer mini 16
bit. Rancangan PDP-11 menjalankan set 8 register
bertujuan umum 16 bit. Dua register ini mempunyai arti
tambahan; satu digunakan sebagai pointer stack untuk
operasi stack tujuan khusus, dan salah satunya
digunakan sebagai pencacah program yang terdiri dari
alamat instruksi berikutnya.
Instruksi-instruksi PDP-11 pada umumnya satu word
(16 bit) panjang. Untuk beberapa instruksi, satu atau
dua alamat memori ditambahkan sehingga instruksi 32
bit dan 48 bit manjedi bagian repertoir. Hal ini
72
memberikan
fleksibilitas
lebih
lanjut
dalam
pengalamatan.

VAX
Umumnya arsitektur memberikan relatif lebih sedikit
jumlah bentuk instruksi tetap. Ini dapat menyebabkan
dua permasalahan bagi pemrogram. Pertama, mode
pengalamatan dan opcode tidak orthogonal. Sebagai
contoh, untuk operasi yang diberikan, satu operand
harus datang dari register dan lainnya dari memori, atau
kedua-duanya dari register dan seterusnya. Kedua,
hanya
jumlah
operand
terbatas
yang
dapat
diakomodasikan, secara umum sampai kedua atau tiga.
Karena beberapa operasi tidak terpisahkan memerlukan
operand yang lebih, berbagai macam strategi harus
digunakan untuk mencapai hasil yang diinginkandengan
menggunakan dua instruksi atau lebih.
73
C.
Rangkuman
1.
set Instruksi merupakan kumpulan dari instruksiinstruksi yang berbeda yang dapat dijalankan oleh
CPU.
2.
Dua bagian utama Arsitektur Komputer yaitu ISA dan
HAS. ISA meliputi spesifikasi yang menentukan
bagaimana programmer bahasa mesin akan berinteraksi
dengan komputer. ISA menentukan sifat komputasional
komputer. HSA berkaitan dengan subsistem hardware
utama komputer (CPU, sistem memori dan IO). HSA
mencakup desain logis dan organisasi arus data dari
subsistem.
3.
Operasi
CPU
ditentukan
oleh
instruksi
yang
dieksekusinya. Instruksi-instruksi ini di sebut sebagai
instruksi mesin (machine Instructions) atau instruksi
komputer (Computer Instructions). Set instruksi dari
instruksi-instruksi yang berbeda yang dapat dieksekusi
oleh CPU dikenal sebagai set instruksi CPU.
4.
Setiap instruksi harus terdiri dari informasi yang
diperlukan oleh CPU untuk dieksekusi. Terdapat
langkah-langkah yang terdapat dalam eksekusi instruksi
dan bentuk elemen-elemen instruksi mesin. Elemenelemen tersebut adalah :
74
 Operation Code (opcode) : Menentukan operasi yang
akan dilaksanakan. Operasi ini dispesifikasikan oleh
sebuah kode biner, dikenal sebagai kode operasi atau
opcode.
 Source Operand Reference : Merupakan input bagi
operasi yang akan dilaksanakan. Operasi dapat
melibatkan satu atau lebih operand sumber, operand
merupakan input bagi operasi.
 Result Operand Reference : Merupakan hasil dari
operasi yang dilaksanakan.
 Next instruction Reference : Memberitahu CPU untuk
mengambil
(fetch)
instruksi
berikutnya
setelah
menyelesaikan eksekusi suatu instruksi.
5.
Penggolongan jenis operasi yang umum adalah :
-
6.
Data Transfer
Aritmatic
Logical
Convension
- I/O
- System control
- Transfer control
Teknik pengalamatan yang umum adalah :
 Segera
 Langsung
 Tidak Langsung
75
 Register
 Register tidak langsung
 Pengganti
 Stack
7.
Suatu bentuk instruksi mendefinisikan layout bit
instruksi dalam kaitannya dengan bagian utamanya.
Suatu bentuk instruksi harus meliputi sebuah opcode
dan secara implisit /eksplisit, operand nol atau lebih.
76
D.
Latihan soal
1.
Sebutkan dan jelaskan dua bagian utama Arsitektur
Komputer!
2.
Jelaskan elemen-elemen pada set instruksi!
3.
Opcodes direpresentasikan dalam bentuk singkatan
yang disebut mnemonics, yang menunjukkan operasi
yang
akan
dilaksanakan.
Tuliskan
3
contoh
mnemonics!
4.
Sebutkan jenis-jenis instruksi!
5.
Salah satu cara tradisional untuk menggambarkan
arsitektur prosessor adalah dengan melihat jumlah
alamat yang terkandung dalam setiap instruksinya.
Jelaskan berapa jumlah alamat maksimum yang
mungkin diperlukan dalam sebuah instruksi!
77
BAB IV
PARALEL PROSESOR
A.
Standar Kompetensi dan Indikator
Standar Kompetensi
Mampu mengaplikasikan paralel prosesor secara umum
Indikator
Mahasiswa dapat menjelaskan kategori sistem komputer dan
keterkaitannnya antara satu dengan lain.
B.
Materi
1.
Pembahasan Awal
Salah satu cara untuk meningkatkan kinerja sistem
komputer adalah dengan menggunakan berbagai prosesor
yang dapat mengeksekusi secara paralel untuk membantu
kerja pemuatan yang ada. Rancangan prosesor paralel
merupakan pengembangan terakhir dari ilmu pengetahuan
komputer yang didasari oleh kebutuhan menyelesaikan
beberapa instruksi secara paralel dalam waktu yang
bersamaan dengan mengurangi masalah ketergantungan data,
prosedural, unit fungsional, output dan anti ketergantungan
yang menyebabkan suatu instruksi terhenti atau harus
menunggu instruksi lainnya selesai untuk dapat diproses.
Operasi seperti ini hanya dapat dilakukan oleh komputer
yang memiliki dua atau lebih unit prosesor (CPU) yang
terhubung melalui beberapa jaringan koneksitas.
Paralel komputer dapat dianalogikan sebagai suatu
Bank dimana teller merupakan prosesor paralel dan transaksi
dengan konsumen sebagai task yang akan diproses.
Pada organisasi paralel, berbagai unit pengolahan saling
bekerja
sama
untuk
melaksanakan
aplikas-aplikasi.
Pelaksanaan instruksi dilakukan pada waktu yang bersamaan.
Jika sebuah prosesor superskalar memanfaatkan peluang
pelaksanaan yang paralel pada tingkatan instruksi, maka pada
suatu organisasi pengolahan paralel akan mencari tingkatan
paralel yang lebih kasar, yaitu eksekusi yang memungkinkan
suatu proses dilaksanakan oleh multipel prosesor secara
paralel dan saling bekerja sama. Dua organisasi multipel
prosesor yang umum adalah multipel prosesor simetris
(SMPS) dan Cluster, dan kemudian adapula sistem NUMA
yaitu sistem dengan akses memori yang tidak seragam.
Secara tradisional, komputer dipandang sebagai mesin
yang sekuensial. Sebagian besar bahasa pemograman
komputer
mengharuskan
pemrogram
untuk
menspesifikasikan algoritma sebagai rangkaian instruksi.
79
Prosesor-prosesor
mengeksekusi
program
dengan
mengeksekusi instruksi mesin secara berurutan dan satu
persatu. Masing-masing instruksi dieksekusi dalam rangkaian
operasi (operasi pengambilan, pelaksanaan dan penyimpanan
hasil). Cara demikian tidak seluruhnya benar. Pada tingkat
operasi mikro, beberapa sinyal kontrol dibuat dalam waktu
yang bersamaan. Pipelining instruksi, paling tidak yang
menyangkut
operasi
pengambilan
dan
instruksi
telah
berlangsung lama. Kedua ini merupakan contoh fungsi yang
paralel.
Dengan semakin majunya teknologi komputer dan
dengan semakin murahnya harga hardware, perancang
komputer mencari kemungkinan penggunaan paralelisme
yang lebih banyak. Gunanya untuk meningkatkan kinerja dan
sebagian lagi untuk meningkatkan reliabilitas.
2.
Organisasi berbagai Prosesor
Jenis-jenis Sistem Prosesor paralel
Sebuah taksonomi yang pertama kali diperkenalkan
oleh Flynn masih merupakan cara yang paling umum dari
penggolongan sistem-sistem dengan kemampuan pengolahan
80
yang
paralel.
Menurutnya
kategori
sistem
komputer
berdasarkan strukturnya adalah:

SISD (Single Instruction Stream, Single Data Stream)
Merupakan sebuah prosesor tunggal mengeksekusi arus
instruksi tunggal untuk beroperasi pada data yang disimpan
pada memori tunggal. Disebut juga dengan Uni-prosesor.
Prosesor tunggal berada pada kategori ini.

SIMD (Single Instruction Stream, Multiple Data
Stream)
Sebuah mesin instruksi mengatur eksekusi
dari
sejumlah elemen pengolahan pada sebuah basis secara
simultan. Terdapat sejumlah elemen proses dimana masingmasing elemen memiliki data memori yang berhubungan,
sehingga masing-masing instruksi dieksekusi pada sebuah
rangkaian data (set data) yang berbeda dengan prosesor yang
berbeda. Prosesor vektor dan prosesor array termasuk pada
kategori ini.
SIMD merupakan salah satu bentuk dari paralel sinkron
yang memproses satu instruksi dengan banyak prosesor
elemen pada waktu yang sama. Di dalam paradigma SIMD
yang paling penting bukanlah kontrol prosesor melainkan
81
data. Data diproses oleh masing-masing elemen pemroses
yang berbeda dari satu prosesor ke prosesor lainnya.
Sehingga satu program dan satu kontrol unit bekerja secara
bersamaan pada kumpulan data yang berbeda. Untuk
memproses data secara efisien, SIMD membuat pengaturan
proses menjadi dua phase, yaitu : pertama memilah dan
mendistribusikan data (data partitioning and distribution) dan
yang kedua memproses data secara paralel (data paralel
prosesing).
Jadi efisiensi akan tergantung kepada banyaknya
permasalahan yang harus diselesaikan secara paralel. Cara
terbaik
dalam
menggunakan
SIMD
adalah
dengan
mencocokan banyaknya permasalahan dengan banyaknya
prosesor paralel. Banyaknya permasalahan berarti seberapa
banyak jumlah data yang akan di perbaharui dan banyaknya
prosesor paralel berarti jumlah prosesor yang tersedia. Jadi
jika permasalahanya sebanding dengan prosesor paralel maka
kecepatan
tertinggi
dapat
terjadi,
sebaliknya
apabila
permasalahan hanya satu dengan prosesor paralel yang
banyak menyebabkan sistem SIMD menjadi tidak efektif.
SIMD sering diidentikan sebagai permasalahan paralel yang
sederhana, padahal tidaklah benar karena paradigma SIMD
sangat berguna dalam menyelesaikan permasalahan yang
memiliki beberapa data yang perlu diperbaharui secara
82
serempak. Khususnya sangat berguna untuk perhitungan
numerik biasa seperti perhitungan matrix dan vektor.

MISD (Multiple Instruction Stream, Single Data
Stream)
Urutan
data
yang
diorganisir
dipancarkan
ke
serangkaian prosesor, masing-masing prosesor mengeksekusi
urutan
instruksi
yang
berbeda.
Struktur
ini
belum
diimplementasikan secara baik.

MIMD (Multiple Instruction Stream, Multiple Data
Stream)
Serangkaian set prosesor mengeksekusi serangkaian
instruksi yang berbeda secara semultan pada rangkaian set
data yang berbeda. SMP, Cluster dan siste NUMA berada
pada kategori ini.
MIMD
berarti
banyak
prosesor
yang
dapat
mengeksekusi instruksi dan data yang berbeda-beda secara
bersamaan. Lebih lanjut sebagai bagian dari komputer,
prosesor memiliki otonom yang besar dalam melakukan
operasinya. Secara umum MIMD digunakan ketika banyak
permasalahan heterogen yang harus diselesaikan pada waktu
yang
sama.
MIMD
sangat
baik
digunakan
untuk
83
meneyelesaikan permasalahan yang besar, sebab melebihi
data dan kontrol yang harus dilewatkan dari task ke task.
Sebagai contoh dalam analogi sebuah Bank, MIMD akan
menampilkan kerja terbaiknya ketika masing-masing teller
memiliki beberapa transaksi yang harus diselesaikan satu
persatu tanpa ada pembuangan waktu dan penghentian dari
beberapa bagian transaksi. Tetapi pada sistem MIMD akan
dibingungkan oleh aliran data (dataflow) paralel, karena
aliran data tersebut harus dikerjakan oleh mesin MIMD
secara terus menerus.
Pertama bahwa tiap-tiap prosesor bekerja secara
independen kecuali untuk sistem sinkoron tertentu harus
menunggu. Prosesor menjalankan task yang pendek sebagai
contoh selesainya mengevaluasi vektor satu elemen sebelum
prosesor memproses task lebih jauh. Tentu saja prosesor
dalam waktu yang singkat dapat melakukan beberapa
pekerjaan yang berbeda, seperti waiting, comparing dan
sending data.
Kedua,
bahwa
pada
program
paralel
untuk
menyelesaikan suatu task baik jumlahnya diketahui ataupun
tidak, menggunakan prosesor yang jumlahnya tidak diketahui
pula. Hal tersebut menggambarkan dua ciri mendasar dari
sistem MIMD, yaitu :
84
1.
Kelamahan pada sentralisasi dan mekanisme sistem
sinkron secara umum, dan
2.
Penggeneralisasian
task
yang
heterogen
yang
dioperasikan secara bersamaan, contohnya dalam
memproses operasi yang berbeda dengan data berbeda
dan dalam jangka waktu yang berbeda pula.
Secara
umum
MIMD
meliputi
paradigma
reduksi/dataflow. Pada kenyataannya juga secara umum
meliputi SIMD, sebab kita dapat menemui sifat SIMD pada
sebagian sifat MIMD. Sehingga menghasilkan Kinerja akhir
dari simulasi satu bentuk mesin dengan bentuk lainnya.
Untuk menggabungkannya, mesin MIMD mengubah SIMD
prosesor
dimana
masing-masing
prosesornya
mampu
mengerjakan banyak task dari aplikasi yang berbeda pada
waktu yang sama
Dengan organisasi MIMD , prosesor merupakan tujuan
umum dimana masing-masing prosesor dapat memproses
semua
instruksi
yang
penting
untuk
menampilkan
transformasi data yang sesuai. MIMD dapat dibagi lagi
berdasarkan cara komunikasi prosesornya. Apabila prosesor –
prosesor memiliki memori yang sama, maka masing-masing
prosesor mengakses program-program dan data yang
disimpan
dalam
memori
bersama,
dan
prosesor
85
berkomunikasi satu sama lain melalui memori tersebut.
Bentuk umum dari sistem ini adalah multiprosesor simetris
(SMP). Multipel prosesor memberi satu atau sekelompok
memori dengan mekanisme bus yang diberikan atau
interkoneksi lainnya. Salah satu ciri yang membedakan
adalah waktu akses memori ke ruang memori manapun kirakira sama untuk masing-masing prosesor. Pengembangan
yang terbaru adalah NUMA, yaitu organisaasi akses memori
yang tidak seragam, seperti menurut Flynn bahwa waktu
akses memori pada ruang yang berbeda dapat berbeda bila
digunakan dengan prosesor NUMA. Kumpulan dari prosesor
tunggal atau SMP dapat diinterkoneksi untuk membentuk
sebuah cluster. Komunikasi antar komputer –komputer bisa
melalui jalan yang tetap maupun melalui beberapa fasilitas
jaringan.
Gambar 22 Taksonomi Arsitektur Paralel Prosesor
86
Organisasi Paralel
Pada struktur SISD ada beberapa macam unit control
yang menyediakan suatu arus instruksi (IS) ke sebuah unit
pengolahan (PU). Unit pengolahan mengoperasikan arus data
tunggal (DS) dari suatu unit memori (MU).
Gambar 23 Arus instruksi ke sebuah PU
Pada SIMD, masih terdapat sebuah unit control
tunggal yang sekarang memberi arus instruksi tunggal ke PU
multipel. Masing-masing PU memiliki memorinya sendiri
atau dapat juga suatu memori bersama.
Gambar 24 Arus instruksi tunggal ke PU multiple
87
Note : CU = Control Unit
IS = Instruction Stream (arus instruksi)
PU = Processing Unit
DS = Data Stream (arus Data)
MU = Memory unit
LM = Local Memory
Pada MIMD terdapat berbagai unit control yang
masing-masing memberi arus instruksi yang terpisah ke unit
pengolahan sendiri. MIMD dapat berupa multiprosesor yang
berbagi
atau
dapat
berupa
multi
komputer
memori
terdistribusi, seperti pada gambar dibawah berikut.
88
Gambar 25 MIMD share memori dan MIMD distributed memori
Permasalahan-permasalahan
perancangan
yang
berhubungan dengan SMPs, Clusters dan NUMA merupakan
permasalahan yang kompleks karena melibatkan adanya
permasalahan yang berhubungan dengan organisasi fisik,
struktur-struktur interkoneksi, komunikasi interprosesor,
rancangan sistem operasi dan teknik-teknik aplikasi software.
89
Multiprosesor Simetris
Hampir semua pengguna tunggal komputer pribadi dan
sebagian besar workstation menggunakan mikro prosesor
tunggal yang bertujuan umum. Dengan meningkatnya
permintaan kinerja dan dengan menurunnya biaya mikro
prosesor, diperkenalkan sistem dengan sebuah organisasi
SMP. Istilah SMP mengacu pada sebuah arsitektur komputer
hardware dan sifat operasi yang mencerminkan arsitektur
tersebut.
Sebuah SMP dapat didefinisikan sebagai sistem
komputer yang berdiri sendiri dengan karakteristik sbb :
1.
Mengandung dua atau lebih prosesor yang serupa
dengan kemampuan setara.
2.
Prosesor-prosesor tersebut berbagi memori utama dan
fasilitas I/O dan diinterkoneksikan oleh sebuah bus atau
skema hubungan internal lainnya, seperti waktu akses
memori yang kira-kira sama untuk setiap prosesor.
3.
Semua prosesor berbagi akses ke alat I/O, baik melalui
saluran yang sama maupun melalui saluran berbeda
yang menyediakan jalan ke perangkat yang sama.
90
4.
semua prosesor dapat menampilakn fungsi-fungsi yang
sama.
5.
Sistem
dikendalikan
oleh
sistem
operasi
yang
terintegrasi yang menyediakan interaksi antara prosesor
- prosesor dan program-programnya pada tingkatan
pekerjaan, tugas, file dan elemen data.
Sistem operasi SMP menjadwalkan proses-proses atau
thread melalui semua prosesor. Sebuah organisasi SMP
memiliki sejumlah keuntungan yang potensial atas sebuah
organisasi prosesor tunggal yang mencakup hal-hal berikut :

Kinerja :
Jika pekerjaan yang dilaksanakan oleh komputer dapat
diorganisasikan sehingga beberapa bagian pekerjaan
dapat dilakukan secara paralel, maka sebuah sistem
dengan prosesor multipel akan menghasilkan kinerja
yang lebih besar daripada bila menggunakan prosesor
tunggal yang memiliki jenis yang sama.

Ketersediaan :
Pada multiprosesor simetris, karena semua prosesor
dapat menampilkan fungsi-fungsi yang sama, kesalahan
dari prosesor tunggal tidak membuat mesin tersebut
91
berhenti melainkan sistem dapat berlanjut ke fungsi
pada kinerja yang dikurangi.

Pertumbuhan yang meningkat :
Seorang pemakai dapat meningkat kinerja sebuah
sistem
dengan
menambahkan
sebuah
prosesor
tambahan.

Pensaklaran :
Penjual dapat menawarkan kisaran produk dengan
harga
dan
karakteristik
kinerja
yang
berbeda
berdasarkan jumlah prosesor-prosesor yang diatur pada
sistem.
Ciri yang menarik dari SMP adalah adanya transparansi
bagi pengguna mengenai keberadaan prosesor-prosesor
multipel. Sistem operasi menjaga penjadwalan thread atau
proses-proses pada prosesor-prosesor individual dan menjaga
sinkronisasi antar prosesor.
3. Organisasi Multiprosesor
Pada organisasi sistem multiprosesor terdapat dua
prosesor atau lebih. Setiap prosesor adalah self contained
termasuk diantaranya unit control, ALU, register dan
mungkin juga cache. Setiap prosesor memiliki akses ke
92
memori utama bersama dan perangkat-perangkat I/O dengan
menggunakan beberapa bentuk mekanisme interkoneksi.
Prosesor dapat berkomunikasi dengan yang lainnya melalui
memori-memori. Sering kali memori diatur sedemikian rupa
sehingga memungkinkan terjadinya sejumlah akses yang
bersamaan ke blok-blok memori yang berlainan. Beberapa
konfigurasi, prosesor juga mungkin memiliki memori utama
dan saluran I/O sendiri selain sumber daya yang dapat
dipakai bersama.
Pendekatan organisatoris SMP dapat digolongkan
sebagai berikut :

Bus waktu bersama/bus umum (Time shared or
common bus)

Memori yang memiliki sejumlah port (Multiport
memory)

Unit kontrol pusat (Central control unit)

Bus waktu bersama
93
Gambar 26 Unit control pusat
Bus
waktu
bersama
merupakan
mekanisme
pembentukan sistem multiprosesor yang paling sederhana.
Struktur dan antarmukanya pada dasarnya adalah sama
seperti untuk sistem prosesor tunggal yang menggunakan
interkoneksi bus
Bus terdiri dari saluran kontrol, alamat dan data. Untuk
memungkinkan transfer DMA dari prosesor-prosesor I/O
disediakan ciri-ciri sebagai berikut :
 Pengalamatan:
Pengalamatan
harus
dapat
membedakan modul-modul yang ada pada bus untuk
menentukan sumber dan tujuan data.
 Arbitrasi: setiap modul I/O dapat berfungsi sebagai
master pada waktu tertentu. Mekanisme disediakan
untuk
menentukan
permintaan-permintaan
yang
94
melakukan persaingan dalam memperoleh kontrol bus
dengan menggunakan sejumlah teknik prioritas.
 Pembagian waktu: Bila sebuah modul sedang
melakukan pengontrolan terhadap bus, maka modul modul lainnya di kunci dan bila perlu harus menahan
operasi sampai akses bus diperoleh.
Ciri-ciri ini secara langsung dapat digunakan pada
konfigurasi multiprosesor. Saat ini terdapat prosesor jamak
dan prosesor I/O yang berjumlah banyak yang semuanya
berusaha untuk memperoleh akses ke sebuah modul memori
atau lebih melalui bus.
Organisasi
bus
memiliki
beberapa
keuntungan
dibandingkan dengan pendekatan lainnya, yaitu :
 Kesederhanaan: Ini merupakan pendekatan organisasi
multiprosesor yang paling sederhana. Antarmuka fisik
dan logika pengalamatan, arbitrasi serta pembagian
waktu seluruh prosesor tetap sama seperti pada
prosesor tunggal.
 Fleksibilitas: Pada umumnya organisasi ini mudah
dikembangkan dengan cara menambahkan prosesor
yang lebih banyak ke bus.
95
 Reliabilitas: Pada dasarnya bus merupakan medium
pasif dan kegagalan suatu perangkat yang terhubung
tidak akan menyebabkan kegagalan bagi sistem secara
keseluruhan.
Prosesor
Prosesor
Cache L1
Prosesor
Cache L1
Cache L2
Cache L1
Cache L2
Cache L2
Shared bus
Memori
utama
I/O
Subsystem
I/O
Adapter
I/O
Adapter
(Organisasi Multiprosesor Simetris)
I/O
Adapter
Gambar 27 Organisasi Multiprosesor Simetris
Kelemahan pada organisasi bus adalah dalam hal
kinerja. Seluruh referensi memori dilewatkan melalui bus
umum, sehingga kecepatan sistem dibatasi oleh siklus waktu.
Untuk meningkatkan kinerja, maka setiap prosesor perlu
dilengkapi dengan memori cache, hal ini akan mengurangi
jumlah akses bus.
Setiap cache lokal berisi suatu citra bagian memori,
maka apabila suatu word diubah pada sebuah cache,
perubahan ini menjadikan tidak sah
word pada cache
96
lainnya. Untuk mencegah hal ini, prosesor lain harus
diberitahu bahwa telah terjadi suatu update. Masalah ini
dikenal dengan koherensi cache dan biasanya dialamatkan
pada hardware daripada oleh sistem operasi.
M1
M2
Mk
P1
I/O1
Pn
I/Om
Memori Multiport
Gambar 28 Memori Multiport

Memori Multiport
Pendekatan memori multiport memungkinkan akses
modul-modul memori utama secara langsung dan independen
oleh prosesor dan modul I/O. Metode yang digunakan untuk
mengatasi konflik adalah dengan menetapkan prioritas yang
permanen bagi semua port memori. Hanya diperlukan sedikit
modifikasi prosesor atau modul I/O atau tidak sama sekali
untuk mengakomodasi memori multiport.
Pendekatan
dibanding
dengan
memori
multiport
pendekatan
bus
lebih
yang
kompleks
memerlukan
97
penambahan logika dalam jumlah banyak ke sistem memori.
Pendekatan ini memberikan kinerja yang lebih baik karena
setiap prosesor memiliki lintasan yang berdedikasi ke
masing-masing modul memori. Kelebihan lainnya adalah
memungkinkan untuk melakukan konfigurasi bagian memori
sebagai ‘private’ bagi sebuah prosesor atau lebih dan atau
bagi modul-modul I/O.

Unit Kontrol pusat
Unit kontrol pusat menyalurkan aliran data yang
terpisah secara bolak-balik diantara modul-modul yang
independen (prosesor, memori, I/O). Pengontrol dapat
menyangga permintaan dan melakukan fungsi arbitrasi dan
pewaktuan. Pengontrol juga melewatkan pesan-pesan status
dan kontrol diantara prosesor-prosesor dan melakukan
peringatan
update
mengkoordinasikan
cache.
Seluruh
konfigurasi
logika
untuk
multiprosesor
dikonsentrasikan ke unit pusat. Hal ini memberikan
fleksibilitas dan kemudahan interfacing pendekatan bus.
Kelemahannya adalah unit kontrolnya cukup rumit dan
merupakan penyebab terjadinya kemacetan bagi kinerja.
Struktur unit kontrol pusat umum digunakan bagi sistem
mainframe berprosesor jamak, seperti IBM S/370 yang
berskala besar.
98
Suatu sistem operasi SMP mengatur prosesor dan
sumber daya komputer lainnya sedemikian rupa sehingga
pemakai merasa sistem operasi tunggal yang mengendalikan
sumber daya sistem. Sistem operasi multiprosesor harus
menyediakan semua fungsi sistem pemrograman dan ciri-ciri
tambahan
lainnya
untuk
mengakomodasikan
berbagai
prosesor. Kunci perancangan sistem operasi multiprosesor
adalah sbb :

Proses berlangsung secara bersamaan:
Rutin SO perlu untuk dimasukkan kembali agar
beberapa prosesor dapat bereksekusi pada kode IS
secara bersamaan. Dengan berbagai prosesor yang
mengeksekusi bagian SO yang sama atau berbeda.

Penjadwalan:
Prosesor apapun boleh melaksanakan penjadwalan.
Penjadwalan harus menugaskan beberapa proses yang
siap untuk prosesor yang tersedia.

Sinkronisasi:
Sinkronisasi adalah sebuah fasilitas yang membuat
adanya pengeluaran timbal-balik dan pengurutan
peristiwa.

Manajemen memori:
99
Manajemen memori pada suatu multiprosesor harus
berhubungan dengan semua masukan yang ada pada
mesin uniprocessor. Mekanisme penomoran halaman
pada berbagai multiprosesor yang berbeda harus
dikoordinasikan
untuk
mendorong
terjadinya
konsistensi pada saat beberapa prosesor membagi
sebuah halaman atau bagian dan untuk memutuskan
pemindahan halaman.

Reliabilitas dan toleransi kesalahan: Sistem operasi
harus
dapat
menurunkan
terjadinya
kegagalan
prosesor. Penjadwalan dan bagian lain sistem operasi
harus mengenali hilangnya suatu prosesor dan
mengatur kembali tabel manajemen dengan seksama.
4. Mainframe SMP
Kebanyakan PC dan stasiun kerja SMP menggunakan
strategi interkoneksi satu bus. Alternatif lain digunakan
implementasi terbaru dari kelompok mainframe IBM S/390.
Sistem ini memiliki prosesor tunggal dengan jangkauan satu
kartu memori utama untuk sistem yang tinggi dengan sepuluh
prosesor dan 4 kartu memori. Konfigurasi mencakup satu
atau dua prosesor tambahan yang bertindak sebagai prosesor
100
I/O. Gambaran seluruh organisasi SMP S/390 tampak pada
gambar di bawah berikut.
Gambar 29 Gambaran seluruh organisasi SMP S/390
Konfigurasi dari komponen-komponennya adalah
sebagai berikut:
 Unit Prosesor (PU) : Menggunakan mikroprosesor
CISC
yang
sering
menggunakan
instruksi
hardwired(sebagaian firmware). Masing-masing PU
meliputi cache 64 KB L1 agar mencapai akses satu
siklus.
 Cache L2 : Tiap Cache L2 384 KB diatur pada cluster
berpasangan dan mensuport 3 PU.
101
 Adapter jaringan Bus switching (BSN) : BSN
menginterkoneksi cache L2 dan memori utama, juga
cache L3 dengan kapasitas 2 MB.
 Kartu Memori : Tiap kartu memiliki 8 GB memori
dengan total kapasitasnya 32 GB.
Koherensi Cache dan Protokol Mesi
Pada sistem koherensi modern tiap prosesor memiliki
satu atau lebih tingkatan cache. Hal ini guna memperoleh
kinerja yang tinggi. Namun hal ini menimbulkan masalah
yang dikenal dengan koherensi cache. Inti masalah tersebut
adalah sejumlah salinan data yang sama dapat berada pada
cache yang berbeda pada waktu yang bersamaan, dan apabila
prosesor diberikan kebebasan untuk mengupdate salinannya
sendiri maka akan terjadi tidak konsistensi pada memori. Ada
dua kebijakan menulis yaitu :
-
Menulis kembali; dimana operasi menulis biasanya
dibuat hanya ke cache, memori utama hanya diupdate
pada saat cache yang koheren dibersihkan dari cache.
-
Menulis melalui; dimana semua operasi menulis
dibuat ke memori utama dan cache untuk memastikan
bahwa memori utama selalu valid.
102
Kebijakan menulis kembali dapat menyebabkan adanya
ketidak konsistenan. Bila dua cache memiliki baris yang
sama dan baris tersebut diupdate pada satu cache, maka cache
lain akan memiliki nilai yang tidak sah.
Protokol koherensi cache bertujuan untuk membiarkan
beberapa variabel lokal untuk bisa masuk pada cache yang
cocok. Koherensi cache dibagi atas pendekatan software dan
pendekatan hardware. Teknik koherensi cache software
berusaha untuk menghindarkan kebutuhan akan hardware
tambahan dan logika dengan mengandalkan kompiler dan
sistem operasi untuk mengatasi masalah. Masalah penting
akan dipindahkan dari hardware ke software. Keputusan yang
diambil menyebabkan ketidakefisienan penggunaan cache.
Pada pendekatan hardware, permasalahan hanya akan
ditangani apabila masalah tersebut benar terjadi, maka
penggunaan cache menjadi efektif dan kinerja menjadi lebih
baik dibandingkan dengan pendekatan software. Pendekatan
ini juga dapat dirasakan oleh pemrograman dan kompiler
yaitu mengurangi pekerjaan pembuatan software. Skema
hardware dapat dibagi atas dua kategori yaitu Protokol
Direktori dan protokol Snoopy .
Protokol
Direktori
mengumpulkan
dan
menjaga
informasi lokal salinan blok berada. Terdapat sejumlah
103
pengontrol tersentralisasi yang merupakan bagian memori
utama dan sebuah direktori yang tersimpan di dalam memori
utama. Direktori tersebut berisi informasi status global
tentang
isi
bermacam-macam
cache
lokal.
Direkroti
bertanggung jawab atas penyimpanan infomasi status up to
date sehingga harus dilaporkan ke pengontrol sentral.
Kekurangan direktori adalah adanya kemacetan terpusat dan
overhead komunikasi antara berbagai pengontrol cache
dengan pengontrol sentral. Namun teknik ini efektif
digunakan pada sistem berskala besar yang melibatkan bus
berjumlah banyak atau pola interkoneksi yang kompleks.
Protokol Snoopy mendistribusikan tanggung jawab
untuk menjaga koherensi cache keseluruh pengontrol cache
di dalam sebuah multiprosesor. Cache harus mengetahui
kapan suatu blok yang ada didalamnya dapat digunakan
bersama. Aksi update harus diumumkan keseluruh cache
dengan
menggunakan
pengontrol
cache
‘snoop’(mengintai)
mekanisme
pemancaran.
memiliki
kemampuan
jaringan
dalam
Setiap
untuk
mengamati
pemberitahuan pemancaran ini dan kemudian melakukan
reaksi. Idealnya digunakan untuk multiprosesor berbasis bus.
Ada dua pendekatan protokol snoopy, yaitu write invalidate
dan write update. Protokol write invalidate terdapat sejumlah
pembaca dan hanya satu penulis saja. Pada protokol write
104
update terdapat beberapa penulis dan beberapa pembaca.
Pada saat semua prosesor akan mengupdate blok bersama,
maka word yang akan diupdate akan didistribusikan ke
prosesor-prosesor lainnya dan cache yang berisi blok tersebut
akan mengupdatenya. Pendekatan write invalidate merupakan
pendekatan yang paling banyak digunakan pada sistem
multiprosesor komersil. Pendekatan ini menandai status
setiap
saluran
cache
sebagai
termodifikasi,
ekslusif,
digunakan bersama atau invalid. Dengan alasan ini protokol
ini disebut MESI.
Protokol MESI cache data terdiri dari 2 bit status pertag-nya, sehingga setiap baris dapat berada pada salah satu
dari keempat keadaan berikut :

Termodifikasi : Baris pada cache telah dimodifikasi
dan hanya tersedia hanya pada cache itu saja.

Ekslusif : Baris yang berada pada cache yang sama
seperti pada baris memori utama dan tidak terdapat
pada cache-cache lainnya.

Bersama : Baris yang berada pada cache sama seperti
pada memori utama dan mungkin terdapat pada cache
lainnya.

Tidak valid : Bila cache tidak berisi data yang valid.
105
Pada saat read miss terjadi pada cache lokal, prosesor
mulai melakukan pembacaan memori untuk membaca blok
memori utama yang berisi alamat yang hilang. Prosesor
menyisipkan sebuah sinyal pada bus yang memperingati
semua unit prosesor/cache untuk melakukan snoop terhadap
transaksi. Pada saat terjadi miss tulis pada cache lokal, maka
prosesor akan melakukan pembacaan membaca blok yang
berada di dalam memori utama yang berisi alamat yang tidak
ditemukan. Untuk itu prosesor mengeluarkan sinyal pada bus
yang artinya membaca dengan tujuan untuk memodifikasi.
Ketika proses hit read terjadi pada sebuah baris di cache
lokal, prosesor dengan mudah membaca hal yang dibutuhkan.
Tidak ada perubahan status ;status tetap sama, sebagai
termodifikasi, bersama atau ekslusif. Bila terjadi hit tulis,
maka akibatnya akan bergantung pada status blok saat itu
pada cache lokal.
5. Cluster
Salah satu area terpenting pada perancangan sistem
komputer adalah clustering. Clustering adalah sebuah
alternatif bagi pengolahan multisimetris sebagai sebuah
pendekatan untuk menyajikan kinerja dan ketersediaan yang
tinggi dan biasanya menarik bagi aplikasi server. Dapat
didefinisikan sebuah cluster adalah sebuah group yang
106
terinterkoneksikan dimana keseluruhan computer bekerja
bersamaan sebagai satu kesatuan sumber yang dapat
menciptakan ilusi sebagai satu mesin. Istilah ‘whole
computer’ berarti sebuah sistem yang dapat berjalan dengan
sendirinya, diluar cluster, masing-masing pada sebuah cluster
disebut
sebuah “node”. Menurut Brew ada empat
keuntungan yang diperoleh dengan cluster ini dan dapat pula
dianggap sebagai persyaratan dari rancangan, yaitu:

Skalabilitas absolut : sebuah cluster dapat memiliki
selusin
mesin
yang
masing-masing
adalah
multiprosesor.

Skalabilitas meningkat : sebuah cluster dikonfigurasi
sedemikian
rupa
sehingga
mungkin
untuk
menambahkan sistem-sistem baru ke cluster pada
peningkatan yang kecil.

Ketersediaan tinggi : tiap node pada sebuah cluster
merupakan komputer yang berdiri sendiri, maka
kegagalan salah satu node tidak menyebabkan
hilangnya servis. Pada sebagian besar produk
toleransi kesalahan ditangani secara otomatis pada
software.
107

Harga/ kinerja yang unggul : dengan menggunakan
komoditas blok bangunan, kita dapat meletakkan
sebuah cluster dengan tenaga komputerisasi yang
sama dan lebih besar daripada sebuah mesin tunggal,
dengan harga yang lebih murah.
Gambar 30 Konfigurasi Cluster
Cluster diklasifikasikan dalam beberapa cara :
-
Berdasarkan ada tidaknya akses bersama pada cluster
untuk disk yang sama.
-
Disk bersama.
108
6. Non Uniform Memory Access (NUMA)
Non-Uniform Memory Access atau Non-Uniform
Memory Architecture (NUMA) adalah desain memori
komputer yang digunakan dalam Multiprocessor, di mana
waktu akses memori tergantung pada lokasi memori relatif
terhadap sebuah prosesor. Pada NUMA, sebuah prosesor
dapat mengakses memori lokal sendiri lebih cepat daripada
memori non-lokal, yaitu memori lokal ke prosesor atau
memori lain dibagi antara prosesor.
Terdapat denifisi beberapa istilah pada literatur
NUMA, yaitu :
 Uniform memory access/Akses memori seragam
(UMA) ; semua prosesor mempunyai akses ke semua
bagian memori utama yang menggunakan pemuatan
dan penyimpanan. Waktu akses memori untuk
prosesor ke semua ruang adalah sama.
 Non Uniform memory access /Akses memori tidak
seragam (NUMA); semua prosesor mempunyai akses
ke semua bagian memori utama dengan menggunakan
pemuatan dan penyimpanan. Waktu akses memori
prosesor berbeda tergantung pada bagianmana dari
memori utama yang diakses. Untuk prosesor-prosesor
109
yang berbeda ruang memori yang lebih lambat atau
yang lebih cepat tidak sama.
 Koherensi Cache NUMA (CC-NUMA) ; adalah
sistem NUMA yang koherensi cachenya dijaga
diantara cache-cache beberapa prosesor.
Sistem NUMA yang tanpa koherensi cache kurang
lebih ekivalen terhadap cluster. NUMA merupakan salah satu
pendekatan untuk pencapaian pemrosesan dengan skala
besar. Tujuan penggunaan NUMA adalah untuk memelihara
memori sistem yang luas secara transparan pada saat
mengizinkan node-node berbagai multiprosesor, masingmasing
dengan
busnya
sendiri
interkoneksi internal lainnya.
atau
dengan
sistem
Gambar disamping ini
menunjukkan organisasi CC-NUMA. CC-NUMA berbeda
dengan SMP dan cluster. Ada beberapa node yang
independen
yang
masing-masing
merupakan
sebuah
organisasi SMP. Tiap node berisi beberapa prosesor dengan
cache L1 dan L2-nya dan memori utama. Node merupakan
dasar dari blok bangunan organisasi CC-NUMA. Node-node
terinterkoneksi dengan menggunakan beberapa fasilitas
komunikasi yang bisa menjadi mekanisme pergantian.
110
Prosesor 1-1
Prosesor 1-m
Cache L1
Prosesor 2-1
Cache L1
Cache L2
Cache L2
Memori
Utama 1
Prosesor 2-m
Cache L1
Direktori
Cache L1
Cache L2
I/O
Cache L2
I/O
Direktori
Memori
Utama 2
Jaringan
Interkoneksi
Prosesor N-1
Prosesor N-m
Cache L1
Cache L1
Cache L2
Cache L2
Direktori
Memori
Utama N
I/O
Gambar Organisasi CC-NUMA
Gambar 31 organisasi CC-NUMA
Tiap node pada cc-NUMA meliputi beberapa memori
utama, dari sudut pandang prosesor hanya ada satu memori
tunggal, dengan masing-masing lokasi yang memiliki alamat
sistem luas. Ketika suatu prosesor memulai akses memori,
jika lokasi memori yang diminta tidak berada pada cache
prosesor tersebut, maka cache L2 memulai suatu operasi
pengambilan. Jika baris yang diinginkan pada bagian yang
lokal berada pada memori utama, maka baaris akan diambil
melalui bus lokal. Jika baris yang diinginkan berada pada
bagian yang jauh dari memori utama, maka permintaan yang
otomatis dikirimkan untuk mengambil baris melewati
jaringan interkoneksi, mengirimkannya ke bus lokal dan
kemudian mengirimkannya ke cache yang diminta pada bus
111
tersebut. Semua kegiatan ini otomatis dan transparan pada
prosesor dan cachenya.
Pada konfigurasi ini, koherensi cache merupakan
pertimbangan yang terpenting. Walaupun implementasinya
berbeda secara lebih rinci, secara umum masing-masing node
harus
menjaga
beberapa
bagian
direktori
yang
memberikannya sebuah indikasi lokasi dari berbagai bagian
memori dan juga status informasi cache. Keuntungan utama
dari sistem CC-NUMA adalah dapat menyampaikan kinerja
yang efektif pada tingkat yang lebih tinggi daripada SMP,
tanpa perubahan sebagaian besar software. Dengan berbagai
node-node NUMA, lalu lintas bus pada node individual
terbatas terhadap permintaan yang dapat ditangani bus. Jika
banyak akses memori ditujukan ke node-node yang jauh,
maka kinerja akan menurun. Gagalnya kinerja ini dapat
dihindari. Pertama kegunaan cache L1 dan cache L2
dirancang untuk meminimalkan semua akses memori
termasuk yang terjauh. Jika sebagain software memiliki
lokasi sementara, dan jika memori virtual digunakan, maka
data yang diperlukan untuk sebuah aplikasi akan berada pada
jumlah halaman yang terbatas yang dapat dimuat dari memori
lokal ke memori yangsedang dilaksanakan. Akhirnya skema
memori virtual dapat ditingkatkan dengan memasukkan
sistem operasi mekanisme migrasi yang akan memindahkan
112
halaman memori virtual ke sebuah node yang sering
digunakan.
Kelemahan CC-NUMA, software yang berubah akan
diminta untuk memindahkan sebuah sistem operasi dan
aplikasi-aplikasi dari sebuah SMP ke sistem CC-NUMA.
7. Komputasi Vektor
Perkembangan aplikasi berada diluar kemampuan
mainframe modern. Terdapat kebutuhan komputer untuk
menyelesaikan masalah matematika proses yang sebenarnya
seperti yang terdapat pada bidang aerodinamika, seismologi,
meteorologi, fisika atom dll. Umumnya masalah tersebut
ditandai dengan kebutuhan perhitungan berpresisi tinggi dan
program yang secara berulang melakukan operasi-operasi
aritmetik terhadap larik bilangan dalam jumlah besar. Untuk
mengatasi masalah tersebut maka dibuat super komputer.
Mesin ini mampu melakukan ratusan juta operasi perdetik
untuk
keperluan
kalkulasi
numerik.
Berbeda
dengan
mainframe yang dirancang untuk pemrograman multi dan I/O
secara intensif.
Ada sistem jenis lain yang dirancang untuk memenuhi
kebutuhan komputasi vektor. Sistem ini dikenal dengan
prosesor larik. Walaupun super komputer dioptimasikan
113
untuk kebutuhan komputasi vektor, namun pada dasarnya ia
memiliki kemamppuan menangani tugas-tugas pengolahan
skalar dan pengolahan data yang umum. Pada pengolahan
larik tidak mencakup pengolahan skalar, pengolah larik
dipasang sebagai perangkat periperal baik oleh pengguna
mainframe
maupun
pengguna
komputer
kecil
untuk
menjalankan bagian-bagian yang divektorkan pada suatu
program.
Terdapat tiga organisasi prosesor yang penting :
- ALU pipeline
- Prosesor paralel
- ALU paralel
Operasi vektor dapat ditingkatkan lebih lanjut apabila
elemen-elemen vektor terdapat didalam register seperti
terlihat pada gambar (a) dibawah ini.
Gambar 32 Operasi vektor
114
Semua elemen operand vektor dimuatkan sebagai
sebuah blok ke dalam register vektor yang sebenarnya hanya
berupa bank register-register yang identik dan besar.
Hasilnya juga disimpan didalam suatu register vektor.
Sebagian operasi hanya melibatkan penggunaan register dan
hanya operasi pemuatan dan penyimpanan awal serta akhir
operasi vektor memerlukan akses ke memori.
Gambar 33 Taksonomi organisasi komputer
Cara lain untuk mendapatkan pengolahan vektor adalah
dengan menggunakan ALU berjumlah jamak pada prosesor
tunggal
dibawah
kendali
kontrol
unit.
Unit
kontrol
mengirimkan data ke ALU hingga ALU tersebut dapat
berfungsi secara paralel. Dapat pula menggunakan pipeline
pada tiap ALU yang paralel. Seperti halnya pipeline,
organisasi ALU paralel cocok untuk pengolahan vektor. Unit
kontrol mengirimkan elemen-elemen vektor ke ALU sampai
seluruh elemen tersebut selesai diproses. Jenis organisasi ini
lebih kompleks dibanding prosesor dengan ALU tunggal.
115
Cara yang terakhir untuk pengolahan vektor dapat
diperoleh dengan menggunakan prosesor paralel berjumlah
banyak. Diperlukan pembagian tugas menjadi beberapa
proses yang akan dieksekusi secara paralel. Organisasi ini
efektif bila terdapat software dan hardware untuk keperluan
organisasi prosesor paralel yang efektif.
Organisasi komputer dapat dibedakan menurut jumlah
unit
kontrolnya.
Unit
kontrol
berjumlah
banyak
mengimplementasikan sejumlah prosesor. Apabila sejumlah
prosesor dapat berfungsi secara kooperatif maka prosesor
tersebut disebut prosesor paralel.
116
C.
Rangkuman
1.
Pada organisasi paralel, berbagai unit pengolahan
saling bekerja sama untuk melaksanakan aplikasaplikasi. Pelaksanaan instruksi dilakukan pada waktu
yang bersamaan. Jika sebuah prosesor superskalar
memanfaatkan peluang pelaksanaan yang paralel pada
tingkatan instruksi, maka pada suatu organisasi
pengolahan paralel akan mencari tingkatan paralel yang
lebih kasar, yaitu eksekusi yang memungkinkan suatu
proses dilaksanakan oleh multipel prosesor secara
paralel dan saling bekerja sama.
2.
Dua organisasi multipel prosesor yang umum adalah
multipel prosesor simetris (SMPS) dan Cluster, dan
kemudian adapula sistem NUMA yaitu sistem dengan
akses memori yang tidak seragam.
3.
Flynn mengelompokkan kategori sistem komputer
berdasarkan strukturnya, yaitu:
a.
SISD (Single Instruction Stream, Single Data
Stream), merupakan sebuah prosesor tunggal
mengeksekusi
arus
instruksi
tunggal
untuk
beroperasi pada data yang disimpan pada memori
tunggal.
Disebut
juga
dengan
Uni-prosesor.
Prosesor tunggal berada pada kategori ini.
b.
SIMD (Single Instruction Stream, Multiple Data
Stream), adalah sebuah mesin instruksi mengatur
117
eksekusi dari sejumlah elemen pengolahan pada
sebuah basis secara simultan.
4.
Kelemahan pada organisasi bus adalah dalam hal
kinerja. Seluruh referensi memori dilewatkan melalui
bus umum, sehingga kecepatan sistem dibatasi oleh
siklus waktu. Untuk meningkatkan kinerja, maka setiap
prosesor perlu dilengkapi dengan memori cache, hal ini
akan mengurangi jumlah akses bus.
5.
Clustering adalah sebuah alternatif bagi pengolahan
multisimetris
sebagai
sebuah
pendekatan
untuk
menyajikan kinerja dan ketersediaan yang tinggi.
Dikatakan
sebagai
terinterkoneksikan
sebuah
dimana
group
keseluruhan
yang
computer
bekerja bersamaan sebagai satu kesatuan sumber yang
dapat menciptakan ilusi sebagai satu mesin
6.
Sistem NUMA yang tanpa koherensi cache kurang
lebih ekivalen terhadap cluster. NUMA merupakan
salah satu pendekatan untuk pencapaian pemrosesan
dengan skala besar dengan tujuan untuk memelihara
memori sistem yang luas secara transparan pada saat
mengizinkan
node-node
berbagai
multiprosesor,
masing-masing dengan busnya sendiri atau dengan
sistem interkoneksi internal lainnya.
118
D.
Latihan soal:
1.
Jelaskan yang dimaksud dengan paralel komputer!
2.
Apakah tujuan rancangan prosesor parallel?
3.
Sebutkan Jenis-jenis Sistem Prosesor parallel!
4.
Gambarkan Arus instruksi ke sebuah PU pada struktur
SISD!
5.
Apa
yang
dimaksud
dengan
clustering
pada
perancangan sistem computer?
6.
Jelaskan apa yang dimaksud dengan Non Uniform
Memory Access (NUMA)!
119
BAB V
PENGANTAR ARSITEKTUR RISC
A.
Standar Kompetensi dan Indikator
Standar Kompetensi
Mampu menganalisa perbandingan komputer RISC dan CISC
serta aplikasi penggunaannya
Indikator
Mahasiswa dapat menjelaskan penggunaan teknologi RISC
dibanding teknologi yang ada sebelumnya.
B.
Materi
1.
Pembahasan Awal
Setelah mengikuti Kinerja suatu komputer adalah hal
yang sangat penting. Dalam perkembangannya kinerja selalu
ditingkatkan baik dari sisi kecepatan proses maupun sisi
ekonomisnya. Kecepatan komputer tergantung banyak hal,
salah satunya adalah set instruksi yang digunakan. Terdapat
dua konsep set instruksi di dalam komputer yakni CISC
(Complex Instruction Set Computer) dan RISC (Reduce
120
Instruction Set Computer). Sebagai perbandingan, CISC
mencoba untuk mengurangi jumlah instruksi pada program
sedangkan RISC mencoba mengurangi siklus instruksi.
Ditinjau dari jenis set instruksinya, ada 2 jenis
arsitektur komputer, yaitu :
1.
Complex Instruction Set Computer (CISC), Arsitektur
komputer dengan kumpulan perintah yang rumit.
2.
Reduced Instruction Set Computer (RISC), Arsitektur
komputer dengan kumpulan perintah yang sederhana.
2. Reduced Instruction Set Computing (RISC)
Reduced Instruction Set Computing (RISC) pertama
kali digagas oleh John Cocke, peneliti dari IBM di Yorktown,
New York pada tahun 1974 saat ia membuktikan bahwa
sekitar 20% instruksi pada sebuah prosesor ternyata
menangani sekitar 80% dari keseluruhan kerjanya. Komputer
komersial pertama yang menggunakan konsep RISC ini
adalah IBM 801 PC pada era 1980-an. Istilah RISC sendiri
pertama kali dipopulerkan oleh David Patterson, pengajar
pada University of California di Berkely. Selain IBM 801
juga terdapat Stanford MIPS, dan Berkeley RISC 1 dan 2
121
semua dirancang dengan filosofi RISC. Fitur desain tertentu
telah menjadi ciri dari kebanyakan prosesor RISC, yaitu :

One cycle execution time ( satu siklus waktu eksekusi) :
RISC processor memiliki CPI (clock per instruksi) dari
satu siklus. Hal ini disebabkan oleh optimasi dari setiap
instruksi pada CPU.

Pipelining : sebuah teknik yang memungkinkan
pelaksanaan simultan bagian atau tahap instruksi untuk
memproses instruksi lebih efisien.

Large number of registers (register dalam jumlah
besar)
:
filosofi
menggabungkan
desain
sejumlah
RISC
besar
umumnya
register
untuk
mencegah dalam jumlah besar interaksi dengan
memori.
Elemen penting yang
menjadi ciri dari prosesor RISC
adalah:

Menggunakan
teknologi
kompiler
untuk
mengoptimalisasikan penggunaan register.

Instruksi set yang sedikit dan sederhana.

Pengoptimalan
pipeline
instruksi
agar
efisien
memproses instruksi.
122
RISC
atau
"Komputasi
set
instruksi
yang
disederhanakan" adalah prosesor yang memiliki set instruksi
program yang lebih sedikit dibandingkan CISC. Karena
perbedaan keduanya ada pada kata set instruksi yang
kompleks atau sederhana (reduced). RISC lahir dilatar
belakangi oleh CISC. Perbedaan mencolok dari pada RISC
ini adalah tidak ditemui adanya instruksi assembly atau yang
dikenal dengan bahasa mesin, sedangkan itu banyak sekali di
jumpai di CISC.
Konsep arsitektur RISC banyak menerapkan proses
eksekusi pipeline. Meskipun jumlah perintah tunggal yang
diperlukan untuk melakukan pekerjaan yang diberikan
mungkin lebih besar, eksekusi secara pipeline memerlukan
waktu yang lebih singkat daripada waktu untuk melakukan
pekerjaan yang sama dengan menggunakan perintah yang
lebih rumit. Mesin RISC memerlukan memori yang lebih
besar untuk mengakomodasi program yang lebih besar. RISC
memiliki keunggulan dalam hal kecepatannya sehingga
banyak digunakan untuk aplikasi-aplikasi yang memerlukan
kalkulasi secara intensif. RISC menyederhanakan rumusan
perintah sehingga lebih efisien dalam penyusunan kompiler
yang pada akhirnya dapat memaksimumkan kinerja program
yang ditulis dalam bahasa tingkat tinggi.
123
Ciri-ciri RISC adalah :

Instruksi berukuran tunggal

Ukuran yang umum adalah 4 byte.

Jumlah mode pengalamatan data yang sedikit, biasanya
kurang dari lima buah.

Tidak terdapat pengalamatan tak langsung.

Tidak terdapat operasi yang menggabungkan operasi
load/store
dengan
operasi
aritmetika
(misalnya,
penambahan dari memori, penambahan ke memori).
Arsitektur RISC ini digunakan pada komputer dengan
kinerja tinggi, seperti komputer vektor. Selain digunakan
pada komputer vektor, desain ini juga diimplementasikan
pada prosesor komputer lain seperti processor buatan
Motorola (PowerPC) dan SUN Microsystems (Sparc,
UltraSparc).
Pada desain chip mikroprosesor RISC, pemroses
diharapkan dapat melaksanakan perintah-perintah yang
dijalankannya secara cepat dan efisien melalui penyediaan
himpunan instruksi yang jumlahnya relatif sedikit, dengan
mengambil
perintah-perintah
yang
sangat
sederhana,
akibatnya arsitektur RISC membatasi jumlah instruksinya
124
yang dipasang ke dalam mikroprosesor tetapi mengoptimasi
setiap instruksi sehingga dapat dilaksanakan dengan cepat.
Dengan
demikian
instruksi
yang
sederhana
dapat
dilaksanakan lebih cepat apabila dibandingkan dengan
mikroprosesor yang dirancang untuk menangani susunan
instruksi yang lebih luas. Dengan demikian chip RISC hanya
dapat memproses instruksi dalam jumlah terbatas, tetapi
instruksi ini dioptimalkan sehingga cepat dieksekusi. Meski
demikian, bila harus menangani tugas yang kompleks,
instruksi harus dibagi menjadi banyak kode mesin, terutama
sebelum
chip
RISC
dapat
menanganinya.
Karena
keterbatasan jumlah instruksi yang ada padanya, apabila
terjadi kesalahan dalam pemrosesan akan memudahkan
dalam melacak kesalahan tersebut.
Chip RISC menggunakan sejumlah kecil instruksi
dengan
panjang-sama
yang
relatif
sederhana,
yaitu
panjangnya selalu 32 bit. Walaupun hal ini memboroskan
memori karena harus dibuat program lebih besar, instruksi
lebih mudah dan cepat dieksekusi. Karena chip ini berurusan
dengan jenis instruksi lebih sedikit, chip RISC membutuhkan
lebih sedikit transistor ketimbang chip CISC dan umumnya
berkinerja lebih tinggi pada kecepatan clock yang sama,
walaupun chip ini harus mengeksekusi lebih banyak instruksi
lebih
pendek
untuk
menyelesaikan
sebuah
fungsi.
125
Kesederhanaan
RISC
juga
mempermudah
merancang
prosesor superscalar - chip yang dapat mengeksekusi lebih
dari satu instruksi pada satu saat. Hampir semua prosesor
RISC dan CISC modern adalah superscalar; tetapi untuk
mencapai kemampuan ini membuat desain lebih rumit.
Filosofi arsitektur RISC adalah arsitektur prosesor yang
tidak rumit dengan membatasi jumlah instruksi hanya pada
instruksi dasar yang diperlukan saja. Kerumitan membuat
program dalam bahasa mesin diatasi dengan membuat bahasa
program tingkat tinggi dan compiler yang sesuai. Karena
tidak
rumit,
teorinya
mikroprosesor
RISC
adalah
mikroprosesor yang low-cost dalam arti yang sebenarnya.
Namun demikian, kelebihan ruang pada prosesor RISC
dimanfaatkan untuk membuat sistem-sistem tambahan yang
ada pada prosesor modern saat ini. Banyak prosesor RISC
yang
di
dalam
chip-nya
dilengkapi
dengan
sistem
superscalar, pipelining, caches memory, register-register dan
sebagainya, yang tujuannya untuk membuat prosesor itu
menjadi semakin cepat. Sudah sering kita mendengar debat
yang cukup menarik antara komputer personal IBM dan
kompatibelnya yang berlabel Intel Inside dengan komputer
Apple yang berlabel PowerPC.
126
Perbedaan utama antara kedua komputer itu ada pada
tipe prosesor yang digunakannya. Prosesor PowerPC dari
Motorola yang menjadi otak utama komputer Apple
Macintosh dipercaya sebagai prosesor RISC, sedangkan
Pentium buatan Intel diyakini sebagai prosesor CISC.
Kenyataannya komputer personal yang berbasis Intel
Pentium saat ini adalah komputer personal yang paling
banyak populasinya. Tetapi tidak bisa pungkiri juga bahwa
komputer yang berbasis RISC seperti Macintosh, SUN adalah
komputer yang handal dengan sistem pipelining, superscalar,
operasi floating point dan sebagainya.
3. Pendekatan RISC
Prosesor RISC hanya menggunakan instruksi-instruksi
sederhana yang dapat dieksekusi dalam satu siklus clock.
Dengan demikian, "mult" perintah yang dijelaskan di atas
dapat dibagi menjadi tiga perintah : "LOAD", yang
memindahkan data dari memori bank untuk salah satu
register, "PROD", yang menemukan produk dari dua
Operand yang terletak di dalam register, dan " STORE, "yang
memindahkan data dari satu register ke bank memori. Dalam
rangka untuk melaksanakan serangkaian langkah tepat
dijelaskan dalam pendekatan CISC, seorang programmer
perlu kode perakitan empat baris :
127
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
Pada awalnya, ini mungkin tampak seperti kurang
efisien cara menyelesaikan operasi. Karena ada lebih baris
kode, lebih banyak RAM yang dibutuhkan untuk menyimpan
instruksi tingkat perakitan. Kompilator harus juga melakukan
lebih banyak pekerjaan untuk mengkonversi bahasa tingkat
tinggi ke dalam kode pernyataan dari formula ini. Namun
strategi RISC juga membawa beberapa keuntungan yang
sangat penting. Karena setiap instruksi hanya memerlukan
satu siklus clock untuk mengeksekusi, seluruh program akan
mengeksekusi dalam kira-kira jumlah waktu yang sama
seperti multi-siklus "mult" perintah. RISC ini "berkurang
instruksi" membutuhkan lebih sedikit transistor hardware
ruang daripada instruksi kompleks, meninggalkan ruang lebih
untuk tujuan umum register. Karena semua mengeksekusi
instruksi dalam jumlah yang seragam waktu (yaitu satu jam),
pipelining adalah mungkin.
Memisahkan
"LOAD"
dan
"STORE"
instruksi
sebenarnya mengurangi jumlah pekerjaan yang harus
dilakukan
komputer.
Setelah
CISC
"mult"
perintah
dijalankan, prosesor yang secara otomatis menghapus
128
register. Jika salah satu kebutuhan Operand yang akan
digunakan untuk komputasi lain, prosesor harus kembali
memuat data dari bank memori ke dalam register. Dalam
RISC, yang operand akan tetap di dalam register sampai nilai
lain telah dimuat di tempatnya.
a.
Karakteristik-karakteristik Eksekusi Instruksi
Dengan semakin murahnya harga hardware, harga
software mengalamai peningkatan karena sedikitnya jumlah
pemrogram. Sebagai respon dibuat bahasa program tingkat
tinggi yang lebih baik dan kompleks. Bahasa tingkat tinggi
(High Level Language/HLL) memungkinkan pemrogram
untuk menyatakan algoritma dengan lebih singkat, lebih
memperhatikan
rincian
dan
mendukung
penggunaan
pemrograman terstruktur atau rancangan yang berorientasi
objek.
Solusi ini menimbulkan masalah baru yaitu semantic
gap, yaitu perbedaan antara operasi-operasi yang disediakan
dalam bentuk HLL dan operasi-operasi yang disediakan
dalam bentuk arsitektur
komputer. Tanda-tanda gap ini
dinyatakan dengan adanya ketidak efisienan eksekusi, ukuran
program mesin yang besar dan kompleksitas kompiler.
129
Gambar 34 RISC CISC
Lebih lanjut untuk memahami RISC, diawali dengan
tinjauan singkat tentang karakteristik eksekusi instruksi.
Aspek komputasi yang ditinjau adalah sbb :

Operasi-operasi yang dilakukan: Hal ini menentukan
fungsi-fungsi yang akan dilakukan oleh CPU dan
interaksinya dengan memori.

Operand-operand yang digunakan: Jenis-jenis operand
dan
frekuensi
pemakaiannya
akan
menentukan
organisasi memori untuk menyimpannya dan mode
pengalamatan untuk mengaksesnya.

Pengurutan eksekusi: Hal ini akan menentukan kontrol
dan organisasi pipeline.
130
b.
Operasi
Hasil-hasil
menganalisis
penelitian
tingkah
yang
laku
dilakukan
program-program
untuk
HLL
menunjukkan; Assign Statemen sangat menonjol diikuti
statemen bersyarat (IF, LOOP) lihat tabel dibawah ini.
Statemen-statemen ini diimplementasikan dalam bahasa
mesin dengan beberapa instruksi
perbandingan dan
percabangan. Hal ini menyatakan bahwa mekanisme kontrol
urutan set merupakan hal yang penting.
Hasil-hasil penelitian ini merupakan hal yang sangat
penting
bagi
perancangan
set
instruksi
mesin
yang
mengindikasikan statemen mana yang peling sering terjadi
dan harus didukung. Kolom 2 dan 3 pada tabel dibawah
menunjukkan ukuran pengganti frekuensi yang relatif tentang
kejadian berbagai macam instruksi-instruksi HLL pada
berbagai program.
Data pada kolom 4-7 memberikan ukuran pengganti
dari waktu aktual yang diperlukan untuk mengeksekusi
berbagai jenis statemen. Hasilnya menyatakan bahwa
prosedur CALL/RETURN adalah operasi yang paling banyak
memakan waktu dalam program HLL yang umum.
131
Tabel 7 Tabel frekuensi dinamis relatif berbobot dari operasi-operasi
HLL
c.
Operand
Penelitian yang dilakukan Patterson terhadap frekuensi
dinamik terjadinya kelas-kelas variabel dalam program pascal
dan C menunjukkan bahwa mayoritas referensi menuju ke
variable-variable skalar. Lebih dari 80% skalar bersifat
variabel lokal, terdapat acuan ke skalar dalam jumlah besar
dan acuan ini terlokalisasi. Penelitian tersebut menyatakan
bahwa
jenis
arsitektur
berpengaruh
pada
kecepatan
pengaksesan operand karena operasi ini sering dilakukan.
Calon
utama
untuk
optimisasi
adalah
mekanisme
penyimpanandan pengaksesan variabel-variabel skalar lokal.
Tabel 8 Tabel Presentase Dinamis Operand-operand
132
d.
Prosedur Call
Prosedur Call dan Return merupakan aspek yang
penting dalam program-program HLL. Pada tabel frekuensi
dinamis relatif menunjukkan bahwa prosedur call dan return
merupakan operasi yang paling banyak membutuhkan waktu
dalam program-program yang dikompilasi. Dua aspek yang
lain adalah jumlah parameter dan variabel yang berkaitan
dengan prosedur, dan kedalaman pensarangan (nesting).
e.
Implikasi
Usaha untuk membuat arsitektur set instruksi yang
mendekati HLL bukanlah strategi perancangan yang paling
efektif. HLL dapat didukung lebih baik dengan cara
pengoptimalan kinerja fitur-fitur program HLL tertentu yang
paling banyak membutuhkan waktu. Hasil-hasil penelitian
secara umum dapat dinyatakan bahwa terdapat tiga buah
elemen yang menentukan karakter arsitektur RISC.

Penggunaan register dalam jumlah yang besaratau
penggunaan suatu kompiler untuk mengoptimalkan
penggunaan register. Hal ini dimaksudkan untuk
mengoptimalkan pereferensian /pengacuan operand.

Diperlukan
instruksi.
perhatian
Karena
bagi
tingginya
perancangan
proporsi
pipeline
instruksi
133
pencabangan bersyarat dan prosedur call, pipeline
instruksi yang bersifat langsung dan ringkas akan
menjadi
tidak
efisien.
Hal
ini
menggambarkan
terjadinya proporsi yang tinggi instruksi yang di
prefetch tetapi tidak pernah dieksekusi.

Terdapat set instruksi yang disederhanakan (dikurangi).
f.
Penggunaan File Register Besar
Terdapat statement assignment yang jumlahnya banyak
dalam program-program HLL, dan banyak diantaranya
berupa statement assignment sederhana seperti A = B. Di
samping itu, terdapat pula akses operand per statement HLL
dalam
jumlah
yang
cukup
besar.
Apabila
kita
menggabungkan keduanya dengan kenyataan bahwa sebagian
besar akses adalah menuju ke skalar-skalar lokal, maka
sangat mungkin kita memerlukan penyimpanan register yang
besar. Alasan diperlukannya penyimpanan register adalah
register merupakan perangkat penyimpanan yang paling
cepat, yang lebih cepat dibandingkan dengan memori utama
dan memori cache. Dimungkinkan untuk menerapkan dua
pendekatan dasar,
yaitu berdasarkan perangkat lunak
(software) dan perangkat keras (hardware). Pendekatan
perangkat
lunak
memaksimalkan
mengandalkan
pemakaian
register.
kompiler
Kompiler
untuk
akan
134
mengalokasikan register-register bagi variabel-variabel yang
akan sering digunakan dalam periode waktu tertentu.
Pendakatan
program
yang
ini
membutuhkan
canggih.
algoritma
Pendekatan
perangkat
analisis
keras
dilakukan hanya dengan memperbanyak jumlah register
sehingga akan lebih banyak variabel yang dapat ditampung di
dalam register dalam periode waktu yang lebih lama.
Pendekatan hardware diperkenalkan oleh kelompok Berkeley
RISC.
g.
Register Windows
Teknik register windows memberikan organisasi yang
efisien untuk penyimpanan variabel skalar lokal di dalam
register. Pada setiap waktu hanya sebuah window/jendela
register yang terlihat dan dapat dialamati seolah-olah window
itu hanya satu-satunya himpunan register. Register windows
dibagi menjadi 3 buah daerah yang berukuran tetap.

Register-register parameter. Menampung parameterparameter yang dilewatkan dari prosedur.

Register-register lokal. Digunakan untuk variable lokal,
setelah di-assign/ditugaskan oleh kompiler.

Register-register
temporer.
Digunakan
untuk
pertukaran parameter. Ini memungkinkan parameter135
parameter dapat dilewatkan tanpa perpindahan aktual
data.
h.
Variabel-variabel Global
Teknik Register Windows memberikan organisasi yang
efisien untuk penyimpanan variable skalar lokal di dalam
register. Akan tetapi teknik ini tidak dapat memenuhi
kebutuhan penyimpanan variabel global, yang diakses oleh
lebih dari sebuah prosedur (misalnya, variabel COMMON
dalam FORTRAN).
Terdapat dua pilihan untuk memenuhi hal tersebut.
Pertama, Variabel-variabel yang dideklarasikan sebagai
global pada HLL dapat disediakan lokasi-lokasi oleh
kompiler dan semua instruksi mesin yang mengacu variabelvariabel ini akan menggunakan operand-operand acuan
memori. Cara ini langsung baik dari sudut pandang hardware
atau software (kompiler). Namun, bagi
yang sering
mengakses variabel-variabel global, teknik tersebut tidaklah
efisien.
Alternatif lainnya adalah melibatkan kumpulan register
global di dalam CPU. Register-register ini harus memiliki
jumlah yang tetap dan dapat dipakai oleh semua prosedur.
Untuk menyederhanakan bentuk instruksi, dapat digunakan
136
teknik penomoran gabungan. Hardware tambahan diperlukan
untuk mengakomodasi pemisahan alamat-alamat register.
Selain itu kompiler harus menentukan variabel-variabel
global yang akan ditugaskan ke register.
i.
File Register ukuran besar vs Cache
File
register
window/jendela
menampung
yang
berfungsi
subset
diorganisasikan
sebagai
seluruh
menjadi
buffer kecil
variabel
yang
untuk
memiliki
kemungkinan besar akan banyak digunakan. Dari sudur
pandang ini file register berfungsi menyerupai sebuah cache
memori. File register berbasis windows menampung seluruh
variabel skalar lokal. Cache menampung pemilihan variabel
skalar yang digunakan saat ini. File register dapat menghemat
waktu karena semua variabel skalar lokal dipertahankan.
Sedangkan Cache dapat menggunakan ruang yang lebih
efisien karena cache bereaksi terhadap situasi dengan
dinamis. Cache secara umum juga memperlakukan seluruh
acuan memori secara sama termasuk instruksi dan jenis data
lainnya. Sehingga penghematan dalam bidang lainnya dapat
dimungkinkan dengan menggunakan cache dan bukan file
register.
137
Suatu
file
register
dapat
tidak
efisien
dalam
menggunakan ruang, karena tidak semua prosedur akan
memerlukan ruang jendela sepenuhnya yang telah diberikan.
Sedangkan cache memiliki ketidakefisienan lainnya. Data
akan dibaca ke dalam cache dalam bentuk blok-blok.
Sedangkan file register hanya berisi variabel-variabel yang
sedang digunakan, cache membaca blok data, beberapa atau
banyak diantaranya tidak akan digunakan.
Cache memiliki kemampuan untuk menangani variabel
global seperti halnya variabel lokal. Pada umumnya terdapat
banyak skalar-skalar global, tetapi hanya sedikit yang yang
digunakan. Sebuah cache secara dinamis akan menemukan
variabel-variabel ini dan menampungnya. Jika file register
windows ditambahkan dengan register-register global, maka
cache juga dapat menampung beberapa skalar global, akan
tetapi sulit bagi kompiler untuk menentukan skalar global
mana yang akan banyak digunakan. Kebanyakan memori
cache bersifat set asosiatif dengan ukuran set yang kecil.
Dengan demikian berbahaya karena data/instruksi lainnya
akan menindih variabel-variabel yang sering digunakan.
138
j.
Optimisasi Register berbasis Kompiler
Kita asumsikan bahwa pada mesin RISC target hanya
tersedia register dalam jumlah sedikit (misal 16-32).
Penggunaan register yang dioptimalkan ini merupakan
tanggung jawab kompiler. Tentu saja sebuah program yang
ditulis dalam bahasa tingkat tinggi tidak memiliki acuan
eksplisit ke register. Kuantitas-kuantitas program diacu
secara simbolik. Fungsi kompiler adalah untuk menjaga
operand bagi komputasi sebanyak mungkin di dalam memori
utama. Ini ditujukan untuk meminimalkan operasi LOAD dan
STORE.
Secara umum pendekatan yang diambil adalah; setiap
kuantitas program yang akan ditempatkan dalam register
ditugaskan ditugaskan ke register virtual atau simbolik.
Kompiler kemudian memetakan jumlah tidak terbatas dari
register simbolik ke jumlah tertentu dari register nyata.
Register simbolik yang tidak menggunakan tumpang tindih
bisa berbagi dengan register riil. Jika banyak kuantitas
berhubungan dengan register riil, maka sebagian dari
kuantitas itu ditugaskan ke lokasi memori.
Inti tugas optimisasi adalah menentukan kuantitas yang
mana yang akan ditugaskan ke register di setiap posisi dalam
139
program. Teknik yang paling banyak digunakan di kompiler
RISC adalah pewarnaan grafik.
Dengan teknik optimisasi register, ada peningkatan
kinerja marjinal dengan lebih dari 32 register. Dengan
sejumlah kecil register (misalnya 16), suatu mesin dengan
suatu organisasi register yang bersama mengeksekusi lebih
cepat dibandingkan suatu organisasi yang menggunakan
register terpisah.
k.
Karakteristik dari Arsitektur Reduced Instruction
Set
Karakteristik dari RISC adalah sebagai berikut:
 Satu instruksi per siklus
 Operasi register ke register
 Mode pengalamatan yang sederhana
 Format instruksi yang sederhana
 Desain hardwired (tanpa microcode)
 Format instruksi yang fix
 Proses compile yang cepat
Karakteristik Satu instruksi per siklus, suatu siklus
mesin dinyatakan oleh waktu yang dibutuhkan untuk
mengambil dua operand dari register, melaksanakan operasi
ALU, dan menyimpan hasilnya pada register. Sehingga
140
instruksi mesin RISC tidak boleh lebih rumit, dan kira-kira
secepat instruksi mikro pada mesin CISC. Untuk karakteristik
register ke register, pada umumnya operasi harus dalam
bentuk register-ke-register dengan hanya operasi akses
memori LOAD dan STORE yang sederhana. Rancangan ini
menyederhanakan set instruksi dan menyederhanakan unit
kontrol. Sebagai contoh ; sebuah set instruksi RISC bisa
mengandung hanya satu atau dua instruksi ADD, VAX
mempunyai 25 instruksi ADD berbeda. Keuntungan lain,
arsitektur seperti ini meningkatkan optimisasi penggunaan
register, sehingga operand-operand yang sering diakses akan
tetap berada dalam penyimpanan berkecepatan tinggi.
Operasi register-ke-register ini merupakan ciri khas dari
rancangan RISC. Untuk mengetahui akses yang sering terjadi
ke sejumlah kecil skalar yang lokal adalah dengan
menggunakan papan besar untuk register atau kompiler
optimisasi, umumnya operand bisa bertahan di dalam register
untuk periode waktu yang lama. Berikut ini adalah gambar
dua perbandingan dari pendekatan register-ke-register dan
memori-ke-memori.
141
Tabel 9 Memori ke memori dan Register ke memori
8
16
16
16
Tambah B
C
A
Memori ke memori
I = 56, D = 96, M = 152
8
4
Muatkan
Muatkan
Tambah
Simpan
rB
rC
rA
rA
16
B
B
rB rC
A
(a) A<--- B + C
Register ke memori
I = 112, D = 96, M = 208
8
16 16 16
Tambah B
C
A
Tambah A
C
B
Tambah B
D
D
Memori ke memori
I = 168, D = 288, M = 456
8
4
4
4
Tambah rA rB rC
Tambah rB rA rC
Kurang rD rD rB
Register ke memori
I = 140, D = 96, M = 250
(b) A<--- B + C; B <--- A + C; D <--- D – B
I = ukuran dari instruksi yang dieksekusi
D = ukuran dari data yang dieksekusi
M = I + D = total lalu lintas memori
Karakteristik
sederhana,
pengalamatan
penggunaan
umumnya
register
menyederhanakan
set
instruksi
mode
pengalamatan
RISC
menggunakan
sederhana.
instruksi
dan
Rancangan
unik
ini
kontrol.
Karakteristik penggunaan bentuk instruksi sederhana, secara
umum hanya satu atau sedikit sekali bentuk digunakan.
Panjang instruksi tetap dan diratakan dengan batasan word.
142
Lokasi bidang, terutama opcode ditetapkan. Rancangan ini
mempunyai sejumlah keuntungan. Denga bidang tetap,
decode opcode dan akses register operand bisa terjadi secara
simultan. Bentuk instruksi sederhana menyederhanakan unit
kontrol. Intruksi pengambilan dioptimalkan sebab panjang
word telah diambil.
Semua karakteristik ini dapat diakses untuk menentukan
keuntungan-keuntungan potensial dari pendekatan RISC.
Keuntungan-keuntungan ini dapat dikategorikan dalam dua
kategori utama, yaitu yang berhubungan dengan kinerja dan
yang berhubungan dengan implementasi VLSI.
Yang
berkaitan
dengan
kinerja,
suatu
jumlah
“circumstantial evidence” dapat direpresentasikan:
-
Pengoptimalan kompiler yang kebih efektif dapat
dikembangkan.
-
Kebanyakan instruksi yang dihasilkan oleh kompiler
biasanya sederhana secara relatif.
-
Berhubungan dengan penggunaan pipelining instruksi.
Teknik pipelining instruksi dapat diimplementasikan
lebih efektif dengan suatu set instruksi reduced.
-
Prosesor RISC harus lebih responsif ke interupsi.
Arsitektur dengan instruksi kompleks membatasi
143
intrupsi ke batasan-batasan instruksi atau harus dapat
menentukan posisi spesifik yang dapat diinterupsi dan
menerapkan mekanisme untuk memulai lagi suatu
instruksi.
Kemudian yang berhubungan dengan implementasi
VLSI. Ketika VLSI digunakan, rancangan dan implementasi
dari prosesor akan berubah. Prosesor tradisional seperti IBM
S/390 dan VAX terdirii dari satu atau lebih papan rangkaian
yang dicetak berdasarkan SSI standard dan paket MSI.
Dengan kehadiran LSI dan VLSI maka sangat mungkin untuk
mengemas suatu prosesor secara keseluruhan dalam suatu
chip tunggal. Pada prosesor chip tunggal, terdapat dua
motivasi untuk mengikuti strategi RISC. Pertama yang
berkaitan dengan kinerja, waktu tertunda dalam satu chip
jauh lebih pendek dari waktu tunda insterchip. Kedua yang
berkaitan dengan waktu rancangan dan implementasi, sebuah
VLSI
prosesor
sulit
untuk
berkembang.
penggantinya SSI/MSI yang tersedia,
Sebagai
perancang harus
merancang rancangan sirkuit, penampilan dan pemodelan
tingkat perangkat.
l.
Karakteristik CISC vs RISC
Rancangan RISC dapat memperoleh manfaat melalui
beberapa fitur CISC, rancangan CISC dapat memproleh
144
manfaat melalui beberapa fitur RISC. Hasilnya adalah suatu
rancangan RISC baru. Berikut ini adalah pertimbangan
beberapa ciri khas dari suatu RISC klasik :

Ukuran Instruksi tunggal

Ukuran yang umum adalah 4 byte.

Jumlah mode pengalamatan data yang sedikit, biasanya
kurang dari lima buah.

Tidak terdapat pengalamatan tak langsung.

Tidak terdapat operasi yang menggabungkan operasi
load/store dengan operasi aritmetika.

Tidak lebih dari satu operand beralamat memori per
instruksi.

Tidak mendukung perataan sembarang tentang data
untuk operasi load/store.

Jumlah
maksimum
penggunaan
unit
manajemen
memori (MMU) untuk suatu data adalah suatu
instruksi.

Jumlah bit untuk spesifier integer sama dengan lima
atau lebih.

Jumlah bit untuk spesifier register titik mengambang
sama dengan empat atau lebih.
145
Tabel 10 Karakteristik dari beberapa Prosesor CISC, RISC, dan
Superskalar
m.
Pipelining RISC
Pipelining instruksi adalah sering digunakan untuk
meningkatkan kinerja. Pada arsitektur RISC kebanyakan
instruksi merupakan register ke register dan suatu siklus
instruksi mempunyai dua langkah berikut:
1. I : Instruction Fetch (PengambilanInstruksi)
2. E : Execute (Melakukanoperasi ALU dengan register
input dan output.
Operasi Load danStore memiliki 3 Fase:
1. I : Instruction Fetch
2. E : Execute (Menghitung alamat memori)
146
3. D : Memory (Operasi register
ke memori atau
memori ke register
Gambar (a) dibawah ini menggambarkan pewaktuan set
instruksi tanpa menggunakan pipelining. Pipelining yang
sangat sederhana dapat meningkatkan kinerja. Gambar (b)
menunjukkan suatu rancangan pipelining dua tahap, dimana I
dan E langkah-langkah dari dua instruksi yang berbeda yang
diesekusi bersama. Rancangan dapat menghasilkan eksekusi
lebih cepat dua kali lebih dari pada eksekusi rancangan serial.
Gambar 35 Pewaktuan set instruksi tanpa menggunakan pipelining,
rancangan pipelining dua tahap, dua akses memori per langkah, dan
pipelining empat tahap
Pipelining dapat ditingkatkan dengan mengizinkan dua
akses memori per langkah. Cara ini menghasilkan suatu
deretan seperti pada gambar (c), lebih dari tiga instruksi dapat
147
dilaksanakan.
Instruksi
pencabangan
menghalangi
tercapainya kecepatan maksimum. Namun ketergantungan
data mempunyai suatu efek tertentu juga. Jika suatu instruksi
memerlukan suatu operand yang sudah diubah oleh instruksi
sebelumnya, maka suatu penundaan akan terjadi. Hal ini
dapat diatasi dengan menggunakan NOOP.
Dua masalah menghambat pencapaian kecepatan
maksimum :
-
Suatu memori port tunggal digunakan dan hanya
dapat mengakses satu langkah memori. Sehingga
memerlukan waktu tunggu tambahan untuk beberapa
instruksi.
-
Suatu instruksi pencabangan mengintrupsi aliran
eksekusi. Untuk mangakomodasi dengan rangkaian
yang
minimum,
suatu
instruksi
NOOP
dapat
disisipkan arus instruksi oleh kompiler atau asembler.
Pipelining yang telah dibahas tadi, akan bekerja baik
jika ketiga langkah-langkahnya memiliki waktu yang kirakira sama. Sebab langkah E pada umumnya melibatkan suatu
operasi ALU, maka langkah ini akan lebih lama. Dalam hal
ini dapat membaginya dalam dua sub langkah :
148
-
E1 : Membaca file register
-
E2 : Operasi ALU dan tulis register.
Karena adanya kesederhanaan dan keteraturan set
instruksi RISC. Rancangan tiga atau empat langkah mudah
dilakukan. Gambar (d) menunjukkan pipelining empat tahap.
Sampai keempat instruksi dapat berjalan dengan waktu yang
sama, dan peningkatan kecepatan potensi yang maksimum
adalah suatu kelipatan empat. NOOPS tetap digunakan untuk
mengatasi ketundaan data dan pencabangan.
Optimisasi Pipelining
Karena sifat yang reguler dan sederhana pada instruksi
RISC,
rancangan
pipelining
dapat
secara
efisien
dilaksanakan. Ada beberapa variasi dalam waktu eksekusi
instruksi, dan pipelining dapat digunakan dalam hal ini.
Ketergantungan data dan pencabangan dapat mengurangi
kecepatan eksekusi secara keseluruhan. Untuk mengganti
kerugian atas ketergantungan ini, dapat digunakan teknik
reorganisasi kode.
149
4. Prospek Arsitektur RISC di Masa Mendatang
Perkembangan menarik terjadi pada tahun 1993 ketika
aliansi tiga perusahaan terkemuka, IBM, Apple, dan
Motorola memperkenalkan produk baru mereka yakni Power
PC 601, suatu mikroprosesor RISC 64-bit yang dirancang
untuk stasiun kerja (workstation) atau komputer personal.
Menarik, karena kemunculan PowerPC 601 dimaksudkan
untuk memberikan alternatif bagi dominasi prosesor CISC
keluarga x-86 Intel dalam komputer rumahan. Popularitas
prosesor keluarga-86 didukung oleh harganya yang murah
dan banyaknya program aplikasi yang dapat dijalankan
dengan prosesor ini. Untuk itu, prosesor PowerPC dijual
dengan harga yang cukup bersaing dibandingkan dengan
pentium, yakni prosesor buatan Intel mutakhir saat itu.
Perkembangan teknologi emulasi yang memungkinkan
prosesor RISC menjalankan sistem operasi yang sama dengan
prosesor CISC keluarga-86 diperkirakan akan membuat
prosesor RISC, terutama PowerPC 601, banyak digunakan di
dalam komputer-komputer personal.
PowerPC 601 memiliki 32 buah register serbaguna 32bit dan 32 buah 64-bit register floating-point. Untuk
menyimpan sementara data dan instruksi sebelum dieksekusi,
PowerPC 601 memiliki 32-kilobyte chace untuk data dan
150
instruksi bersama-sama. Teras PowerPC 601 terdiri dari tiga
unit eksekusi dengan alur-pipa yang independen, yakni unit
pemroses bilangan bulat (IU, integer unit), unit floating-point
(FPU, floating processing unit), dan unit pemroses operasi
percabangan (BPU, branch processing unit) yang mampu
mengeksekusi tiga instruksi sekaligus.
Perkembangan
menarik
juga
nampak
dengan
diadopsinya sebagian arsitektur RISC ke dalam prosesor
CISC yang dikenal dengan sebutan arsitektur hibrid
CISC/RISC.
Intel
Corporation
mengimplementasikan
arsitektur CISC/RISC ini ke dalam prosesor keluarga-86
dimulai dengan prosesor Pentium, kemudian prosesor P6 atau
Pentium Pro. Beberapa produsen lain, dengan cara berbeda
juga mulai mengadopsi arsitektur campuran CISC/RISC ini
misalnya Matsushita Corp dengan prosesor V810, Advanced
RISC Machines dengan ARM610, dan Hitachi dengan
prosesor SH7032.
151
C.
Rangkuman
1.
Fitur desain tertentu telah menjadi ciri dari kebanyakan
prosesor RISC, yaitu :
 One
cycle execution time ( satu siklus waktu
eksekusi): RISC processor memiliki CPI (clock per
instruksi) dari satu siklus. Hal ini disebabkan oleh
optimasi dari setiap instruksi pada CPU.
 Pipelining
: sebuah teknik yang memungkinkan
pelaksanaan simultan bagian atau tahap instruksi
untuk memproses instruksi lebih efisien.

2.
Large number of registers (register dalam jumlah
besar) : filosofi desain RISC umumnya
menggabungkan sejumlah besar register untuk
mencegah dalam jumlah besar interaksi dengan
memori.
Ciri-ciri RISC adalah :

Instruksi berukuran tunggal

Ukuran yang umum adalah 4 byte.

Jumlah mode pengalamatan data yang sedikit,
biasanya kurang dari lima buah.

Tidak terdapat pengalamatan tak langsung.

Tidak terdapat operasi yang menggabungkan operasi
load/store dengan operasi aritmetika (misalnya,
penambahan dari memori, penambahan ke memori).
152
3.
Prosesor RISC hanya menggunakan instruksi-instruksi
sederhana yang dapat dieksekusi dalam satu siklus
clock.
4.
Karakteristik dari RISC adalah sebagai berikut:
 Satu
instruksi per siklus
 Operasi
 Mode
pengalamatan yang sederhana
 Format
instruksi yang sederhana
 Desain
hardwired (tanpa microcode)
 Format
instruksi yang fix
 Proses
5.
register ke register
compile yang cepat
Dua masalah menghambat pencapaian kecepatan
maksimum :
 Suatu memori port tunggal digunakan dan hanya
dapat mengakses satu langkah memori. Sehingga
memerlukan waktu tunggu tambahan untuk beberapa
instruksi.

Suatu instruksi pencabangan mengintrupsi aliran
eksekusi. Untuk mangakomodasi dengan rangkaian
yang
minimum,
suatu
instruksi
NOOP
dapat
disisipkan arus instruksi oleh kompiler atau asembler.
153
D.
Latihan soal:
1.
Sebutkan fitur desain tertentu yang telah menjadi ciri
dari kebanyakan prosesor RISC!
2.
Jelaskan yang anda ketahui mengenai RISC!
3.
Sebutkan ciri-ciri RISC!
4.
Sebutkan karakteristik dari RISC!
5.
Bagaimana prospek arsitektur RISC dimasa
mendatang?
154
BAB VI
ARSITEKTUR KOMPUTER CISC
A.
Standar Kompetensi dan Indikator
Standar Kompetensi
1. Memahami teknologi dan aplikasi CISC komputer dan
penggunaannya
2. Memahami dan dapat mengaplikasikan RISC dan CISC
komputer dalam dunia kerja
Indikator
 Mahasiswa dapat menjelaskan penggunaan teknologi
CISC dibanding teknologi yang ada sebelumnya.
 Mahasiswa dapat menjelaskan perbedaan antara teknologi
RISC dan CISC.
B.
Materi
1.
Definisi
Complex instruction-set computing atau Complex
Instruction-Set Computer
(CISC; "Kumpulan
instruksi
komputasi kompleks") 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.
Karakteristik
CISC
dapat
dikatakan
bertolak-belakang
dengan RISC.
Prosesor CISC memiliki instruksi-instruksi kompleks
untuk memudahkan penulisan program bahasa assembly.
Prosesornya memiliki set instruksi yang kompleks dan
lengkap. Instruksi-instruksi yang tersedia memudahkan para
programmer untuk mengembangkan aplikasi untuk plattform
CISC. Di lain pihak, banyaknya instruksi dalam CISC dapat
mengurangi kecepatannya. CISC merupakan kebalikan dari
RISC, biasanya digunakan pada keluarga processor untuk PC
(Intel, AMD, Cyrix).
CISC dimaksudkan untuk meminimumkan jumlah
perintah yang diperlukan untuk mengerjakan pekerjaan yang
diberikan. Konsep CISC menjadikan mesin mudah untuk
diprogram
menyulitkan
dalam
bahasa
dalam
rakitan,
penyusunan
tetapi
konsep
kompiler
ini
bahasa
pemrograman tingkat tinggi. Dalam CISC banyak terdapat
perintah bahasa mesin.
156
Sebelum proses RISC didesain untuk pertama kalinya,
banyak arsitek komputer mencoba menjembatani celah
semantik", yaitu bagaimana cara membuat set-set instruksi
untuk mempermudah pemrograman level tinggi dengan
menyediakan instruksi "level tinggi" seperti pemanggilan
prosedur, proses pengulangan dan mode-mode pengalamatan
kompleks sehingga struktur data dan akses array dapat
dikombinasikan dengan sebuah instruksi. Karakteristik CISC
ini memberikan keuntungan di mana ukuran programprogram 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. Contohnya, arsitektur kompleks yang didesain
dengan kurang baik (yang menggunakan kode-kode mikro
untuk mengakses fungsi-fungsi hardware), akan berada pada
situasi di mana akan lebih mudah untuk meningkatkan
performansi dengan tidak menggunakan instruksi yang
kompleks (seperti instruksi pemanggilan procedure), tetapi
dengan menggunakan urutan instruksi yang sederhana.
157
Satu alasan mengenai hal ini adalah karena set-set
instruksi level-tinggi, yang sering disandikan (untuk kodekode yang kompleks), akan menjadi cukup sulit untuk
diterjemahkan kembali dan dijalankan secara efektif dengan
jumlah transistor yang terbatas. Oleh karena itu arsitektur arsitektur ini memerlukan penanganan yang lebih terfokus
pada desain prosesor. Pada saat itu di mana jumlah transistor
cukup terbatas, mengakibatkan semakin sempitnya peluang
ditemukannya
cara-cara
alternatif
untuk
optimisasi
perkembangan prosesor. Oleh karena itulah, pemikiran untuk
menggunakan desain RISC muncul pada pertengahan tahun
1970. Contoh-contoh prosesor CISC adalah System/360,
VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan
Intel x86.
Filsafat CISC adalah :
 Menggunakan microcode
 Membangun set instruksi yang besar
 Membangun set instruksi dengan HLL
Perkembangan lebih lanjut dari implementasi dan
desain CISC adalah munculnya CISC paralel, untuk pertama
kalinya diterdapat pada prosesor 486 dari Intel yang telah
mendukung setiap instruksi yang digunakan oleh prosesor158
prosesor sebelumnya. Meskipun efisiensi tertingginya hanya
saat digunakan pada subset x86 yang sederhana (mirip
dengan
set
instruksi
penyimpanan/pengambilan
RISC,
data
tetapi
dari
tanpa
RISC).
batasan
Prosesor-
prosesor modern x86 telah menyandikan dan membagi lebih
banyak lagi instruksi-instruksi kompleks menjadi beberapa
"operasi-mikro" internal yang lebih kecil sehingga instruksiinstruksi tersebut dapat dilakukan secara paralel, sehingga
mencapai performansi tinggi pada subset instruksi yang lebih
besar.
2. Karakteristik desain CISC
Sejak chip muncul pada tahun 1970-an dan 1980-an
dengan desain yang unik, kebanyakan chip tersebut dirancang
dengan desain CISC. Chip ini memiliki set instruksi yang
sama, dan arsitektur perangkat keras yang serupa. Secara
umum, set instruksi dirancang untuk kenyamanan bagi
programmer bahasa assembly dan desain perangkat keras
yang cukup rumit.
Kendala desain yang mengarah ke pengembangan CISC
(sejumlah kecil memori lambat, dan fakta bahwa kebanyakan
mesin-mesin awal diprogram dalam bahasa assembly)
memberikan set instruksi CISC beberapa karakteristik umum:
159

Format 2-operand, di mana instruksi memiliki sumber
dan tujuan. Sebagai contoh, perintah tambah
"tambahkan # 5, D0" akan menambahkan angka 5 untuk
isi D0 dan hasilnya di tempat dalam register D0.

Register to register, register to memory, dan perintah
memory to register.

Multiple addressing modes untuk memori, termasuk
mode khusus untuk mengindeks melalui array.

Panjang Variabel instruksi di mana biasanya bervariasi
sesuai dengan mode pengalamatan.

Instruksi membutuhkan beberapa clock cycle untuk
mengeksekusi. Jika sebuah instruksi memerlukan
informasi tambahan sebelum ia dijalankan. (misalnya,
jika kebutuhan prosesor untuk membaca dua lokasi
memori sebelum mereka beroperasi), mengumpulkan
informasi tambahan tsb akan memerlukan tambahan
clock cycle. Hasilnya, beberapa instruksi CISC akan
memakan waktu lebih lama daripada yang lain untuk
mengeksekusi.
160
3. Arsitektur Hardware
Arsitektur
hardware
CISC
memiliki
beberapa
karakteristik umum :

Complex instruction-decoding logic, hal ini didorong
oleh kebutuhan agar satu instruksi bisa mendukung
berbagai mode pengalamatan.

Terdapat Register fungsi umum (general purpose
register) dalam jumlah kecil. Ini adalah akibat langsung
dari instruksi yang dapat beroperasi secara langsung
pada memori dan ruang yang terbatas pada chip tidak
diperuntukkan bagi decoding instruksi, pelaksanaan dan
penyimpanan microcode.

Terdapat beberapa Register fungsi khusus (special
purpose register).
Banyak desain CISC
yang
menyisihkan register khusus untuk stack pointer,
penanganan interupsi, dan sebagainya. Hal ini dapat
menyederhanakan
desain
hardware,
dengan
mengorbankan pembuatan set instruksi yang lebih
kompleks.

Terdapat sebuah "Condition code" register, yang
ditetapkan sebagai efek samping dari sebagian besar
instruksi. Register ini mencerminkan apakah hasil dari
161
operasi terakhir kurang dari, sama dengan, atau lebih
besar dari nol, dan mencatat jika kondisi tertentu terjadi
kesalahan.
4.
Mesin CISC Ideal
Prosesor CISC dirancang untuk mengeksekusi setiap
instruksi sebelum memulai instruksi berikutnya. Meskipun
demikian, sebagian besar prosesor membagi eksekusi suatu
instruksi ke dalam beberapa tahap tertentu; segera setelah
satu tahap selesai, hasilnya dilanjutkan ke tahap berikutnya :

Instruksi diambil dari memori utama.

Instruksi didekode-kan: kode pengendali/kontrol dari
microprogram mengidentifikasi jenis operasi yang akan
dilakukan, di mana mencari data yang digunakan untuk
melakukan operasi, dan di mana menempatkan
hasilnya. Jika perlu, prosesor membaca informasi
tambahan dari memori.

Instruksi
dieksekusi:
Kode
pengendali
dari
microprogram menentukan sirkuit / hardware yang
akan melakukan operasi.

Hasilnya ditulis ke memori.
162
Pada mesin CISC yang ideal, masing-masing instruksi
lengkap akan memerlukan hanya satu siklus clock (yang
berarti bahwa setiap tahap akan dilengkapi dalam sepersekian
dari sebuah siklus). Ini adalah kecepatan maksimum yang
mungkin untuk 1 mesin yang mengeksekusi instruksi pada
suatu waktu.
5. Realistis mesin CISC
Pada
kenyataannya,
beberapa
instruksi
mungkin
membutuhkan lebih dari satu clock per tahap, seperti
pertunjukan animasi. Namun, desain CISC dapat mentolerir
perlambatan ini sejak ide di balik pembuatan CISC adalah
untuk menjaga jumlah total siklus kecil dengan melakukan
hal-hal rumit yang terjadi dalam setiap siklus.
6. Persamaan Kinerja CISC Classic
Waktu eksekusi dapat dirumuskan sbb :
Waktu eksekusi = N x S x T
Dengan :
N = jumlah instruksi
S = jumlah rata-rata langkah per instruksi
163
T = waktu yang diperlukan untuk melaksanakan satu
langkah
Kecepatan
eksekusi
dapat
ditingkatkan
dengan
menurunkan nilai dari ketiga varisbel di atas. Arsitektur CISC
berusaha menurunkan nilai N, sedangkan Arsitektur RISC
berusaha menurunkan nilai S dan T. Proses pipeline dapat
digunakan untuk membuat nilai efektif S mendekati 1 (satu)
artinya komputer menyelesaikan satu perintah dalam satu
siklus waktu CPU. Nilai T dapat diturunkan dengan
merancang perintah yang sederhana.
Kerugian CISC

overhead yang lebih besar pada decoding instruksi,
sehingga memperlambat eksekusi

Membutuhkan banyak pekerjaan dalam merancang
chipnya.

Register tidak dapat digunakan secara efisien

Konsumsi dayanya tinggi.

Banyak instruksi khusus digunakan tidak cukup untuk
membenarkan keberadaan mereka, sekitar 20% dari
instruksi yang tersedia digunakan dalam program yang
khas.
164
Keuntungan CISC

Mendukung bahasa tingkat tinggi (HLL)

Ukuran program yang lebih kecil

Panggilan ke memori utama lebih sedikit

RAM yang diperlukan sedikit
Pada
arsitektur
CISC
seperti
Intel
x86,
yang
diperkenalkan pada tahun 1978, bisa terdapat ratusan
instruksi program - perintah-perintah sederhana yang
meminta sistem menambah angka, menyimpan nilai, dan
menampilkan hasilnya. Bila semua instruksi panjangnya
sama, instruksi sederhana akan memboroskan memori.
Instruksi sederhana membutuhkan ruang penyimpanan 8 bit,
sementara instruksi yang paling kompleks mengkonsumsi
sebanyak 120 bit. Namun hal tersebut akan mengurangi
kecepatannya.
Arsitektur berbasis CISC juga memungkinkan para
perancang prosesor untuk menambahkan set instruksi
tambahan untuk keperluan tertentu disamping set instruksi
standar yang sudah ada, misalnya set instruksi MMX
(Multimedia Extension) yang ditambahkan pada prosesor
buatan Intel, dan 3Dnow! pada prosesor keluaran AMD.
165
Karena itulah maka keluarga prosesor CISC lebih banyak
digunakan dalam komputer pribadi dimana aplikasinya lebih
luas, sementara keluarga prosesor RISC hanya digunakan
pada workstation yang biasanya memiliki lingkup aplikasi
yang lebih sempit. Ada juga teknologi yang menggabungkan
kedua arsitektur tersebut, contohnya : Prosesor Intel dan
AMD
yang
dijual
secara
komersil
sekarang
adalah
pengembangan dari prosesor x86 yang menggunakan basis
prosesor CISC. Instruksi set yang didukung oleh kedua
prosesor tersebut menggunakan instruksi RISC yang lebih
efisien dalam menangani data.
7. Pendekatan CISC
Tujuan utama dari arsitektur CISC adalah untuk
menyelesaikan tugas dalam beberapa kumpulan baris. Hal ini
dicapai dengan membangun prosesor hardware yang mampu
memahami dan melaksanakan serangkaian operasi. Untuk
tugas tertentu ini, sebuah prosesor CISC akan dipersiapkan
dengan instruksi tertentu (kita akan menyebutnya "mult").
Ketika dilaksanakan, instruksi ini load dua nilai ke register
yang terpisah, mengalikan yang Operand dalam pelaksanaan
unit, dan kemudian menyimpan produk dalam register yang
sesuai. Dengan demikian, seluruh tugas mengalikan dua
bilangan dapat diselesaikan dengan satu instruksi:
166
MULT 2:3, 5:2 Mult 2:3, 5:2
Mult adalah apa yang dikenal sebagai "instruksi
kompleks." Itu beroperasi secara langsung pada bank memori
komputer dan tidak memerlukan programmer untuk setiap
pemuatan atau menyimpan fungsi. Ini mirip perintah dalam
bahasa tingkat yang lebih tinggi. Sebagai contoh, jika kita
membiarkan "a" mewakili nilai 2:3 dan "b" mewakili nilai
5:2, maka perintah ini identik dengan pernyataan C "a = a *
b."
Salah satu keuntungan utama dari sistem ini adalah
bahwa kompiler harus melakukan sedikit pekerjaan untuk
menerjemahkan bahasa tingkat tinggi ke dalam perakitan.
Karena panjang kode relatif pendek, sangat sedikit RAM
yang dibutuhkan untuk menyimpan instruksi. Penekanan
diletakkan pada instruksi kompleks langsung ke perangkat
keras.
8. Implementasi
Pendekatan sistematis untuk menerapkan arsitektur
CISC minimal dijelaskan oleh pseudocode yang diberikan di
atas meliputi dua, pertama, mengidentifikasi register-transfer
yang digunakan dalam kode, kemudian membangun sebuah
mesin transfer register yang dapat melakukan transfer ini, dan
167
yang terakhir merancang sebuah unit kontrol untuk
membangkitkan transfer dalam urutan yang benar.
Gambar 36 Transfer register-logika
Tugas masing-masing pernyataan dalam pseudocode
menggambarkan register transfer. Satu register dapat
mempertahankan nilai setiap variabel sederhana, dan daftar
tugas untuk setiap variabel menentukan unit fungsional yang
harus memproses input ke register yang sesuai dan register
dari unit fungsional mana mengambil input mereka.
Pendekatan ini diikuti dalam menurunkan transfer
register-logika yang diuraikan pada Gambar 36. Di sini,
sambungan ke unit kontrol diperlihatkan ke kiri, dan koneksi
ke memori ke kanan. Tiga keadaan bus data yang
diasumsikan, di mana sinyal kontrol MRE (memori baca)
168
menyebabkan isi word kata yang ditujukan untuk menjadi
pintu gerbang ke data bus, dan transisi MWR (memori
menulis) yang positif menyebabkan isi bus disimpan dalam
word yang dialamatkan.
Perlu dicatat bahwa semua kotak fungsional dalam
Gambar diatas berhubungan erat dengan standar chip MSI.
Register sp dan unit fungsional dapat diimplementasikan
naik-turun oleh counter 74LS169A, register pc dapat
diimplementasikan oleh sebuah counter 74LS161, dan
register ir dapat diimplementasikan oleh 74LS298. Akhirnya,
tujuan umum ALU seperti 74LS381 dapat melakukan operasi
pada unit fungsional acc.
Sebelum microprogram dapat ditulis, salah satu detail
hardware harus ditentukan: Bagaimana penafsir microcode
melakukan cabang bersyarat? Solusi yang digunakan di sini
adalah yang diuraikan pada Gambar dibawah ini. Alamat
microinstruction berikutnya dibentuk oleh kondisi oring yang
dipilih oleh bidang masing-masing microinstruction dengan
bit yang paling sedikit dari medan alamat berikutnya. \
169
Gambar 37 Penafsir microcode melakukan cabang bersyarat
Perhatikan penggunaan dua fasa clock; semua register
di bagian data berubah di tepi negatif pulsa clock, sementara
microprogram di tepi clock positif. Jika fase clock tunggal
digunakan, di mana semua register berubah secara serempak ,
kecepatan keseluruhan sistem mungkin bisa lebih tinggi, tapi
microprogram akan lebih besar karena kondisi cabang
microcode tidak bisa bergantung pada hasil register transfer
saat ini.
9. Karakteristik CISC versus RISC
Rancangan
RISC
dapat
memperoleh
keuntungan
dengan mengambil sejumlah feature CISC dan Rancangan
170
CISC dapat memperoleh keuntungan dengan mengambil
sejumlah feature RISC. Hasilnya adalah rancangan RISC
yang terbaru, yang dikenal sebagai PowerPC, dimana
rancangan ini tidak lagi “murni” RISC.
Dan kemudian
rancangan CISC yang terbaru yang dikenal sebagai Pentium,
dimana memiliki beberapa karakteristik RISC.
CISC menawarkan set intruksi yang powerful, kuat,
tangguh, maka tak heran jika CISC memang hanya mengenal
bahasa asembly yang sebenarnya ditujukan bagi para
programmer. Oleh karena itu ,CISC hanya memerlukan
sedikit instruksi untuk berjalan.
Sistem mikrokontroler selalu terdiri dari perangkat
keras (hardware) dan perangkat lunak (software). Perangkat
lunak ini merupakan deretan perintah atau instruksi yang
dijalankan oleh prosesor secara sekuensial. Instruksi itu
sendiri sebenarnya adalah bit-bit logik 1 atau 0 (biner) yang
ada di memori program. Angka-angka biner ini jika lebarnya
8 bit disebut byte dan jika 16 bit disebut word. Deretan logik
biner inilah yang dibaca oleh prosesor sebagai perintah atau
instruksi. Supaya lebih singkat, angka biner itu biasanya
direpresentasikan dengan bilangan hexa (HEX). Tetapi bagi
manusia, menulis program dengan angka biner atau hexa
sungguh merepotkan. Sehingga dibuatlah bahasa assembler
171
yang direpresentasikan dengan penyingkatan kata-kata yang
cukup dimengerti oleh manusia. Bahasa assembler ini
biasanya diambil dari bahasa Inggris dan presentasinya itu
disebut
dengan
Mnemonic.
Masing-masing
pabrik
mikroprosesor melengkapi chip buatannya dengan set
instruksi yang akan dipakai untuk membuat program.
Biner
: Hexa : Mnemonic
10110110
: B6
: LDAA ...
10010111
: 97
: STAA ...
01001010
: 4A
: DECA ...
10001010
: 8A
: ORAA ...
00100110
: 26
: BNE ...
00000001
: 01
: NOP...
01111110
: 7E
: JMP ...
172
Tabel 11 Perbedaan CISC dan RISC
CISC
RISC
Penekanan pada perangkat
keras
Penekanan pada perangkat
lunak
Termasuk multi-clock
instruksi kompleks
Single- clock,
instruksi sederhana
Memory-to-memory:
"LOAD" and "STORE"
tergabung pada instruksi
Register to register :
"LOAD" and "STORE"
instruksi independen
Small code sizes,
high cycles per second
Large code sizes
Low cycles per second
Transistor yang digunakan
untuk menyimpan
instruksi yang kompleks
Menggunakan lebih banyak
transistor pada register
memori
Jadi sebenarnya Tujuan utama dari arsitektur CISC
adalah melaksanakan suatu perintah cukup dengan beberapa
baris bahasa mesin. Hal ini bisa tercapai dengan cara
membuat perangkat keras prosesor mampu memahami dan
menjalankan beberapa rangkaian operasi. Sebagai contoh,
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
173
mengambalikan lagi hasilnya ke register yang benar. Jadi
instruksi-nya cukup satu saja.
10. Perbedaan karakteristik CISC dan RISC serta
Superscalar
CISC dan RISC perbedaannya tidak signifikan jika
hanya dilihat dari terminologi set instruksinya yang kompleks
atau tidak (reduced). Lebih dari itu, RISC dan CISC berbeda
dalam filosofi arsitekturnya. Filosofi arsitektur CISC adalah
memindahkan
kerumitan
software
ke
dalam
hardware.Teknologi pembuatan IC saat ini memungkinkan
untuk menamam ribuan bahkan jutaan transistor di dalam
satu dice. Bermacam-macam instruksi yang mendekati
bahasa pemrogram tingkat tinggi dapat dibuat dengan tujuan
untuk memudahkan programmer membuat programnya.
Beberapa prosesor CISC umumnya memiliki microcode
berupa firmware internal di dalam chip-nya yang berguna
untuk menterjemahkan instruksi makro. Mekanisme ini bisa
memperlambat eksekusi instruksi, namun efektif untuk
membuat instruksi-instruksi yang kompleks. Untuk aplikasiaplikasi tertentu yang membutuhkan singlechip komputer,
prosesor CISC bisa menjadi pilihan.
174
C.
Rangkuman
1.
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. Karakteristik CISC dapat dikatakan bertolakbelakang dengan RISC.
2.
Beberapa karakteristik umum set instruksi pada CISC:

Format 2-operand, di mana instruksi memiliki
sumber dan tujuan. Sebagai contoh, perintah tambah
"tambahkan # 5, D0" akan menambahkan angka 5
untuk isi D0 dan hasilnya di tempat dalam register
D0.

Register to register, register to memory, dan perintah
memory to register.

Multiple addressing modes untuk memori, termasuk
mode khusus untuk mengindeks melalui array.

Panjang
Variabel
instruksi
di
mana
biasanya
bervariasi sesuai dengan mode pengalamatan.

Instruksi membutuhkan beberapa clock cycle untuk
mengeksekusi. Jika sebuah instruksi memerlukan
informasi tambahan sebelum ia dijalankan.
175
3.
Kerugian CISC
 overhead yang lebih besar pada decoding instruksi,
sehingga memperlambat eksekusi
 Membutuhkan banyak pekerjaan dalam merancang
chipnya.
 Register tidak dapat digunakan secara efisien
 Konsumsi dayanya tinggi.
 Banyak instruksi khusus digunakan tidak cukup untuk
membenarkan keberadaan mereka, sekitar 20% dari
instruksi yang tersedia digunakan dalam program
yang khas.
4.
Keuntungan CISC
 Mendukung bahasa tingkat tinggi (HLL)
 Ukuran program yang lebih kecil
 Panggilan ke memori utama lebih sedikit
 RAM yang diperlukan sedikit
176
D.
Latihan Soal:
1.
Apa yang dimaksud dengan CISC ?
2.
Sebutkan filsafat CISC!
3.
Bagaimana Karakteristik desain CISC?
4.
Sebutkan kelebihan dan kekurangan CISC!
5.
Jelaskan perbedaan RISC dan CISC!
177
BAB VII
PIPELINE
A.
Standar Kompetensi dan Indikator
Standar Kompetensi
Dapat mengaplikasikan dan berinovasi dalam penggunaan
Pipeline.
Indikator
Mahasiswa dapat menghitung jumlah set instruksi yang
masuk pada suatu pipelining dan dapat mengkreasikannya
dengan kategori pipeline lain.
B.
Materi
1.
Pembahasan Awal
Pipeline dalam teknologi komputasi adalah sebuah
mesin atau piranti yang bertugas melaksanakan perintah yang
berbeda-beda namun dapat dijalankan dalam waktu yang
bersamaan dan setiap perintah yang berjalan tersebut
memiliki fase yang berbeda. Pipeline merupakan suatu
saluran untuk mengalirkan instruksi ke CPU seperti pada
tahapan fetch, decode, execute, store dan hal lainnya. Pada
prosesor yang menggunakan pipeline, setiap tahapan dari
pipeline dilaksanakan berdasarkan clock cycle yang dimiliki
oleh prosesor tersebut.
Teknologi pipeline yang digunakan pada komputer
bertujuan untuk meningkatkan kinerja dari komputer. Secara
sederhana, pipeline adalah suatu cara yang digunakan untuk
melakukan sejumlah kerja secara bersamaan tetapi dalam
tahap yang berbeda yang dialirkan secara kontiniu pada unit
pemrosesan. Dengan cara ini, maka unit pemroses selalu
bekerja. Teknik pipeline ini dapat diterapkan pada berbagai
tingkatan dalam sistem komputer. Bisa pada level yang
tinggi, misalnya program aplikasi, sampai pada tingkat yang
rendah,
seperti
pada
instruksi
yang dijalankan oleh
microprocessor. Teknik pipeline yang diterapkan pada
microprocessor, dapat dikatakan sebuah arsitektur khusus.
Ada perbedaan khusus antara model microprocessor yang
tidak
menggunakan
microprocessor
yang
arsitektur
menerapkan
pipeline
teknik
dengan
ini.
Pada
microprocessor yang tidak menggunakan pipeline, satu
instruksi dilakukan sampai selesai, baru instruksi berikutnya
dapat dilaksanakan. Sedangkan dalam microprocessor yang
menggunakan teknik pipeline, ketika satu instruksi sedang
diproses, maka instruksi yang berikutnya juga dapat diproses
179
dalam waktu yang bersamaan. Tetapi, instruksi yang diproses
secara bersamaan ini, ada dalam tahap proses yang berbeda.
Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah
instruksi. Misalnya sebuah microprocessor menyelesaikan
sebuah instruksi dalam 4 langkah. Ketika instruksi pertama
masuk ke langkah 2, maka instruksi berikutnya diambil untuk
diproses pada langkah 1 instruksi tersebut. Begitu seterusnya,
ketika instruksi pertama masuk ke langkah 3, instruksi kedua
masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.
Dengan penerapan pipeline ini pada microprocessor
akan didapatkan peningkatan kinerja microprocessor. Hal ini
terjadi karena beberapa instruksi dapat dilakukan secara
paralel dalam waktu yang bersamaan. Secara kasarnya
diharapkan akan didapatkan peningkatan sebesar K kali
dibandingkan
dengan
microprocessor
yang
tidak
menggunakan pipeline, apabila tahapan yang ada dalam satu
kali pemrosesan instruksi adalah K tahap. Data dalam
pipeline bekerja bersama-sama, mengalir bersama-sama
namun tetap dalam satuan eksekusi yang berbeda. Ada kasus
tertentu yang memang sangat tepat bila memanfaatkan
pipeline ini, dan juga ada kasus lain yang mungkin tidak tepat
bila menggunakan teknologi pipeline.
180
2. Kategori Pipeline
Pipeline terbagi 2 macam :

Pipeline Unit Arithmetic

Pipeline Unit Instruction
Pipeline Unit Arithmetic berguna untuk operasi vektor.
Pipeline ini terdiri dari 4 tahap, yaitu :

Exponen comparison

Mantissa aligment

Mantissa Add/Subtract

Result Normalization
Gambar 38 Tahapan Pipeline
181
Gambar 39 4-segmen arithmetic pipeline
Pipeline Unit Instruction berguna untuk komputer yang
memiliki set instruksi yang sederhana. Pipeline ini terdiri dari
5 tahap, yaitu :

Instruction fetch

Instruction decode

Execute instruction

Memory access

Register write back
Gambar 40 5-segmen instruction pipeline
182
Gambar 41 Mikroprosesor
Mikroprosesor yang terkenal menggunakan pipeline ini
adalah keluarga Pentium 4. Pipeline memiliki keunggulaln
lebih
dibanding
Superscalar
jika
diterapkan
pada
mikroprosesor. Karena jalur datanya yang bisa terpisah
sehingga sangat memungkinkan lebih cepat dibanding
superscalar yang harus “antri dahulu” , ini pula yang
sekaligus menjadi perbedaan utama antara Pipeline dengan
Superscalar. Meskipun demikian bukan berarti pipeline
bekerja mulus dengan segala keunggulannya. Justru dengan
itu maka ada beberapa hal yang perlu diperhatikan dalam
menggunakan teknik pipeline:
183
1.
Terjadinya penggunaan resource yang bersamaan
Karena beberapa instruksi diproses secara bersamaan
ada
kemungkinan
instruksi
tersebut
sama-sama
memerlukan resource yang sama, sehingga diperlukan
adanya pengaturan yang tepat agar proses tetap berjalan
dengan benar.
2.
Ketergantungan terhadap data
Misalnya terdapat instruksi yang berurutan dimana
memerlukan data dari instruksi yang sebelumnya. Letak
ketergantungan terjadi misalnya intruksi kedua yang
'tidak mau' jalan kalau intruksi pertama juga tidak jalan.
Jadi intruksi kedua sangat tergantung pada keadaan
intruksi pertama.
3.
Pengaturan Jump ke suatu lokasi memori.
Karena diproses secara bersamaan, bisa saja instruksi
pertama berhasil, namun instruksi kedua memerlukan
Jump memory, maka terjadilah Jump memory oleh
program counter. Baru kemudian ke instruksi ketiga,
padahal instruksi ketiga tidak memerlukan jump
memory seperti yang kedua, maka program counter
harus mengatur lagi agar instruksi ketiga dapat berjalan.
Akibatnya menyebabkan perubahan Program counter
184
3. Metode kerja Pipeline
Metode kerja dari suatu pipeline dapat dilihat pada
gambar disamping ini, dimana menggunakan 4 instruksi.
Pada gambar tersebut, kotak abu-abu atas adalah daftar
instruksi
yang
menunggu
untuk
dijalankan
(waiting
instruction). Kotak abu-abu bagian bawah adalah daftar
instruksi yang telah selesai dieksekusi (complete instruction).
Sedangkan kotak putih bagian tengah adalah pipeline.
Gambar 42 Metode kerja pipeline
185
Pelaksanaan instruksi-instruksi tersebut dapat ditabelkan
sebagai berikut :
Tabel 12 Pelaksanaan intruksi
Time
0
Execution
 Empat instruksi sedang menunggu untuk
dieksekusi
1

Instruksi hijau diambil dari memori
2

Instruksi hijau didekode

Instruksi ungu diambil dari memori

Instruksi hijau dieksekusi (operasi sebenarnya
3
dilakukan)
4

Instruksi ungu didekode

Instruksi biru diambil dari memori

Hasil eksekusi Instruksi hijau ditulis kembali
ke file atau memori register
5

Instruksi ungu dieksekusi

Instruksi biru didekode

Instruksi merah diambil dari memori

Instruksi hijau selesai dieksekusi

Hasil eksekusi Instruksi ungu ditulis kembali
ke file/memori register

Instruksi biru dieksekusi
186
6

Instruksi merah didekode

Instruksi Ungu selesai dieksekusi

Hasil eksekusi Instruksi biru ditulis kembali ke
file/memori register
7

Instruksi merah dieksekusi

Instruksi biru selesai dieksekusi

Hasil eksekusi Instruksi merah ditulis kembali
ke file/memori register
8
9

Instruksi merah selesai dieksekusi
Semua instruksi telah selesai dijalankan
Keuntungan dan Kekurangan Pipeline
Tidak semua kasus dapat diatasi dengan Pipeline. Ada
beberapa kemungkinan yang menjadi kelemahan selain hal
yang menguntungkan. Instruksi Pipeline dikatakan fully
pipelined jika dapat menerima instruksi baru setiap clock
cycle. Namun pipeline yang Non-fully pipelined harus
menunggu siklus berikutnya dan progres pipeline tertunda.
Keuntungan menggunakan Pipeline :

Waktu
siklus
prosesor
berkurang,
sehingga
meningkatkan tingkat instruksi dalam banyak kasus.
187

Beberapa sirkuit kombinasi seperti penambah atau
pengganda (adder/multiplier)dapat dibuat lebih cepat
dengan menambahkan lebih banyak sirkuit. Jika
pipelining digunakan sebagai pengganti, hal itu dapat
menghemat sirkuit vs sirkuit kombinasi yang lebih
kompleks.
Kekurangan tidak menggunakan Pipeline :

Prosesor
Non-pipeline
hanya
menjalankan
satu
instruksi pada satu waktu. Hal ini untuk mencegah
penundaan cabang (yang berlaku, setiap cabang
tertunda) dan masalah dengan instruksi serial yang
dieksekusi secara bersamaan. Akibatnya desain lebih
sederhana dan lebih murah untuk diproduksi.

Instruksi prosesor non-pipeline sedikit lebih lambat dari
pada dalam pipeline. Hal ini disebabkan flip-flop ekstra
harus ditambahkan ke jalur data dari prosesor pipeline.

Prosesor Non-pipeline memiliki bandwidth instruksi
yang stabil. Kinerja prosesor pipeline lebih sulit
diprediksi dan bervariasi lebih luas di antara program
yang berbeda.
188
Dual pipeline
Dual pipelining diperkenalkan pada Intel Pentium
prosesor. Teknologi ini memungkinkan prosesor membagi
perintah menjadi dua lebih pendek dan mengeksekusi
perintah secara bersamaan ketika mereka menerima perintah
yang panjang. Jika ada tugas-tugas terpisah yang harus
diselesaikan untuk hasil yang independen terhadap satu sama
lain, mereka dapat dijalankan secara bersamaan untuk
menghemat waktu.
Sebagai
contoh, misalkan suatu perintah yang
diberikan untuk mencari hasil dari 14 * 27 + 512 ^ 2. Urutan
operasi mewajibkan 512 ^ 2 harus dilakukan terlebih dahulu
dan kemudian 14 dan 27 harus dikalikan. Hasil dari dua
tindakan ini kemudian ditambahkan bersama-sama. Operasi
ini terdapat tiga langkah. Dengan dual pipeline, dua tindakan
pertama akan dihitung secara simultan oleh berbagai pipeline
dan kemudian mereka akan ditambahkan bersama-sama.
Kasus ini hanya membutuhkan dua langkah, penyimpanan
satu langkah.
RISC Pipeline
Sebuah pipeline prosesor RISC beroperasi dengan cara
yang sama seperti pipeline umumnya, walaupun tahap-tahap
189
pada pipeline-nya berbeda. Prosesor yang berbeda memiliki
jumlah tahap/stage yang berbeda, namun pada dasarnya
adalah variasi dari lima tahapan sebelumnya. Tahap-tahap
yang digunakan pada prosesor R3000 MIPS adalah :
1. Mengambil instruksi dari memori
2. Membaca register dan men-decode instruksi pada
register tersebut.
3. Mengeksekusi instruksi atau menghitung sebuah
alamat.
4. Mengakses suatu operand dalam memori data.
5. Menulis hasilnya ke dalam suatu register.
Panjang
pipeline tergantung pada panjang langkah
terpanjang. Karena instruksi RISC lebih sederhana daripada
yang digunakan prosesor CISC, maka prosesor RISC lebih
kondusif/tepat bila menggunakan pipeline dibanding prosesor
CISC. Ini karena CISC memiliki panjang instruksi yang
bervariasi, sedangkan instruksi pada RISC semua sama
panjang dan dapat diambil dalam satu operasi. Idealnya,
masing-masing tahapan pada pipeline prosesor RISC harus
mengambil 1 siklus clock prosesor, sehingga sebuah instruksi
selesai setiap clock cycle dan rata-rata satu siklus per
instruksi (CPI).
190
4. Permasalahan Pipeline
Dalam prakteknya, bagaimanapun prosesor RISC
beroperasi lebih dari satu siklus per instruksi. Adakalanya
prosesor mungkin hasil dari dependensi data dan instruksi
cabang.
Sebuah ketergantungan data terjadi ketika sebuah instruksi
tergantung pada hasil dari instruksi sebelumnya. Sebuah
instruksi tertentu mungkin perlu data dalam register yang
belum disimpan karena itu adalah tugas dari instruksi
sebelumnya yang tahapnya belum tercapai pada pipeline.
Contoh :
add $r3, $r2, $r1
add $r5, $r4, $r3
Gambar 43 Permasalahan pipeline
191
Dalam contoh ini, instruksi pertama memberitahu
prosesor untuk menambahkan isi register r1 dan r2 dan
menyimpan hasilnya dalam register r3. Instruksi kedua,
menambah r3 dan r4 dan menyimpan hasilnya pada r5. Kita
tempatkan set instruksi tersebut pada pipeline. Ketika
instruksi yang kedua berada pada tahap kedua, prosesor akan
berusaha untuk membaca r3 dan r4 dari register.
Meskipun instruksi pertama hanyalah satu langkah di
depan instruksi kedua, sehingga isi r1 dan r2 selalu
ditambahkan, tapi hasilnya belum ditulis ke register r3. Oleh
karena itu instruksi yang kedua tidak dapat membaca dari
register r3 karena belum ditulis dan harus menunggu sampai
data yang dibutuhkan disimpan. Akibatnya, pipeline tersebut
terhenti dan sejumlah instruksi yang kosong (bubble) masuk
ke dalam pipeline. Dependensi data mempengaruhi panjang
jaringan pipeline lebih dari yang lebih pendek karena
membutuhkan waktu lebih lama untuk suatu instruksi
mencapai tahap akhir penulisan register dari suatu pipeline
yang panjang.
Solusi untuk masalah ini adalah dengan kode
pemesanan kembali. Jika, seperti dalam contoh di atas,
instruksi berikut tidak ada hubungannya dengan dua instruksi
yang pertama, kode bisa diatur ulang sehingga instruksi
192
tersebut dijalankan di antara dua instruksi tergantung
instruksi dan pipeline dapat mengalir secara efisien. Tugas
penataan kode ini kembali umumnya diserahkan kepada
compiler. Instruksi cabang ini memberitahukan prosesor
untuk membuat keputusan instruksi apa berikutnya yang akan
dieksekusi berdasarkan pada hasil instruksi lain. Instruksi
cabang dapat menyulitkan pipeline jika suatu cabang
dikondisikan pada hasil dari suatu instruksi yang belum
diselesaikan pada pipeline.
Contoh:
Loop : add $r3, $r2, $r1
sub $r6, $r5, $r4
beq $r3, $r6, Loop
Contoh di atas memerintahkan processor untuk
menambahkan r1 dan r2 dan menyimpan hasilnya dalam r3,
kemudian kurangi r4 dari r5, dan meyimpan hasilnya pada r6.
Dalam instruksi ketiga, ”beq” singkatan dari cabang jika
sama. Jika isi r3 dan r6 adalah sama, prosesor harus
menjalankan instruksi berlabel "Loop". Kalau tidak, harus
melanjutkan ke instruksi berikutnya. Pada Contoh ini,
prosesor tidak dapat menentukan cabang mana yang diambil
karena nilai r3 atau r6 belum ditulis ke dalam register.
193
Prosesor dapat berhenti, tetapi metode yang lebih
canggih dalam menangani instruksi cabang adalah dengan
prediksi cabang. Prosesor dibuat menebak jalan mana yang
akan diambil - jika salah menebak, apa pun yang ditulis ke
dalam register harus bersih, dan pipeline harus diulang
kembali dengan instruksi yang benar.
Beberapa metode prediksi cabang yaitu cabang
menunjuk ke belakang, cabang menunjuk ke depan, prediksi
cabang kurang statis.
Perkembangan Pipeline
Dalam rangka untuk membuat prosesor lebih cepat,
berbagai metode mengoptimalkan jaringan pipeline telah
dibuat. Mengacu kepada Super pipelining membagi jalur
pipeline ke beberapa langkah/tahapan lagi. Tahap-tahap ini
membuat pipeline menjadi semakin cepat karena masingmasing tahap ini lebih pendek.
Idealnya, sebuah pipeline dengan lima tahap harus lima
kali lebih cepat daripada prosesor non-pipeline. Instruksi
dijalankan dengan cepat setelah setiap tahap selesai, dan
setiap tahap membutuhkan seperlima dari jumlah waktu yang
diperlukan oleh instruksi non-pipeline. Dengan demikian,
194
sebuah prosesor dengan 8-langkah pipeline (MIPS R4000)
akan lebih cepat dibandingkan dengan prosesor 5-langkah.
Pada prosesor R4000 membagi beberapa tahap/stage
menjadi dua. Contohnya Instruksi fetch, dilakukan dalam dua
tahap. Tahapan-tahapannya adalah sebagai berikut :
1.
Instruction Fetch (First Half)
2.
Instruction Fetch (Second Half)
3.
Register Fetch
4.
Instruction Execute
5.
Data Cache Access (First Half)
6.
Data Cache Access (Second Half)
7.
Tag Check
8.
Write Back
Pipeline Superscalar melibatkan beberapa jaringan
pipeline secara paralel. Komponen internal dari prosesor
yang direplikasi sehingga dapat memulai beberapa instruksi
dalam beberapa atau seluruh tahap pipeline.
RISC
System/6000
memiliki
pipeline
bercabang
dengan jalan yang berbeda untuk floating-point dan integer
instruksi. Jika ada campuran dari kedua jenis ini dalam
sebuah program, prosesor dapat menjaga kedua percabangan
tersebut berjalan secara bersamaan. Kedua jenis instruksi ini
berbagi dua tahap awal (Instruksi Fetch dan Instruksi
195
Dispatch) sebelum mereka di percabangkan/dibagi. Namun,
sering kali pipeline superscalar mengacu pada beberapa
salinan dari semua tahap pipeline.
196
C.
Rangkuman
1.
Pipeline dalam teknologi komputasi adalah sebuah
mesin atau piranti yang bertugas melaksanakan perintah
yang berbeda-beda namun dapat dijalankan dalam
waktu yang bersamaan dan setiap perintah yang
berjalan tersebut memiliki fase yang berbeda.
2.
Pipeline terbagi 2 macam :
3.

Pipeline Unit Arithmetic

Pipeline Unit Instruction
Pipeline Unit Arithmetic berguna untuk operasi vektor.
Pipeline ini terdiri dari 4 tahap, yaitu :
4.

Exponen comparison

Mantissa aligment

Mantissa Add/Subtract

Result Normalization
Pipeline Unit Instruction berguna untuk komputer yang
memiliki set instruksi yang sederhana. Pipeline ini
terdiri dari 5 tahap, yaitu :

Instruction fetch

Instruction decode

Execute instruction

Memory access

Register write back
197
5.
Keuntungan menggunakan Pipeline :
 Waktu
siklus
prosesor
berkurang,
sehingga
meningkatkan tingkat instruksi dalam banyak kasus.
 Beberapa
sirkuit kombinasi seperti penambah atau
pengganda (adder/multiplier)dapat dibuat lebih cepat
dengan menambahkan lebih banyak sirkuit. Jika
pipelining digunakan sebagai pengganti, hal itu dapat
menghemat sirkuit vs sirkuit kombinasi yang lebih
kompleks.
6.
Kekurangan tidak menggunakan Pipeline :
 Prosesor
Non-pipeline
hanya
menjalankan
satu
instruksi pada satu waktu. Hal ini untuk mencegah
penundaan cabang (yang berlaku, setiap cabang
tertunda) dan masalah dengan instruksi serial yang
dieksekusi secara bersamaan. Akibatnya desain lebih
sederhana dan lebih murah untuk diproduksi.
 Instruksi
prosesor non-pipeline sedikit lebih lambat
dari pada dalam pipeline. Hal ini disebabkan flip-flop
ekstra harus ditambahkan ke jalur data dari prosesor
pipeline.
 Prosesor
Non-pipeline memiliki bandwidth instruksi
yang stabil. Kinerja prosesor pipeline lebih sulit
198
diprediksi dan bervariasi lebih luas di antara program
yang berbeda.
199
D.
Latihan Soal:
1. Jelaskan apa yang dimaksud dengan pipeline!
2. Pipeline dibagi dua kategori, sebutkan dan jelaskan!
3. Gambarkan metode kerja pipeline dengan
menggunakan 4 instruksi!
4. Sebutkan kelebihan dan kekurangan pipeline!
5. Mengapa prosesor dengan 8-langkah pipeline (MIPS
R4000) lebih cepat dibandingkan dengan prosesor 5langkah.
6. Suatu komputer dimana prosesornya menggunakan
pipeline dengan 4 stage yaitu; fetch-decode-executewrite back. Bila ada 3 instruksi yang akan diproses
pada pipeline tersebut, berapa clock cycle yang
dibutuhkan untuk menyelesaikan seluruh instruksi
tersebut? (gambarkan metode kerjanya)
200
Daftar Pustaka
Albert Paul Malvino, “Elektronika Komputer Digital’, edisi
kedua, Penerbit Erlangga, 1996.
Andrew S. Tanenbaum, “Organisasi Komputer Tersetruktur”,
edisi Bahasa Indonesia, edisi pertama, jilid 2, Penerbit
Salemba Teknika, 2002.
Prof. Dr. Jogiyanto H.M, M.B.A., Akt,
“Pengenalan
komputer”, penerbit Andi, 2005.
M. Morris Mano, “Computer System Architecture”, third
edition, Prentice Hall International, 1993.
Syahrul, “Organisasi dan Arsitektur Komputer”, Penerbit
Andi Yogyakarta, 2010.
William Stalling, “Organisasi dan Arsitektur Komputer”,
edisi bahasa Indonesia, Jilid I, Prenhallindo, 1998.
William Stalling, “Organisasi dan Arsitektur Komputer”,
edisi bahasa Indonesia, Jilid II, edisi 6, PT. Indeks,
Kelompok Gramedia, 1998.
201
Glosarium
ALU
ASCII
ANSI
BCD
CD
CD-ROM
CPU
CPI
CISC
DRAM
DMA
DS
EPROM
EEPROM
HLL
HSA
I/O
IS
ISA
IC
IR
IRA
LM
LSI
MISD
Arithmetic and Logic Unit
American Standards Code for Information
Interchange
American National Standards Institute
Binary Code Decimal
Compact Disk
Compact Disk-Read Only Memory
Central Processing Unit
Clock Per Instruction
Complex Instruction Set Computer
Dynamic Random Access Memory
Direct Memory Access
Data Stream
Erasable Programmable Read Only Memory
Electrically Erasable Programmable Read Only
Memory
Hogh Level Language
Hardware-System Architecture
Input/Output
Instruction Stream
Instruction-Set Architecture
Integrated Circuit
Instruction Register
International Reference Alphabet
Local Memory
Large Scale Integration
Multiple Instruction Stream, Single Data Stream
202
MIMD
Multiple Instruction Stream, Multiple Data
Stream
MU
Memory Unit
NUMA
Non Uniform Memory Access
CC NUMA Coherensi Cache NUMA
OS
Operating System
OPCODE Operation Code
PC
Personal Computer
PCI
Periferal Compenent Interconnect
PROM
Programmable Read Only Memory
PU
Processing Unit
RAM
Random Access Memory
RISC
Reduced instruction Set Computer
ROM
Read Only Memory
RTL
Register Transfer Language
SCSI
Small Computer System Inteface
SISD
Single Instruction Stream, Single Data Stream
SIMD
Single Instruction Stream, Multiple Data Stream
SMP
Symmetric Multy Processor
UMA
Uniform memory access
VLSI
Very Large Scale Integration
203
Indeks
alamat, 38
algoritma, 82, 132, 138
alternatif, 161
Alternatif, 103, 140
arbitrasi, 100
aritmatika, 53
arsitektur, 28, 29, 37, 75, 92, 129, 135
Arsitektur, i, ii, iv, vii, 1, 2, 4, 5, 6, 9, 27, 28, 76, 79, 89, 124, 127,
143, 147, 153, 164, 167, 168, 202
atom, 116
Barcode, 18
cache, 67, 106
chatting, 17
clock cycle, 182
Cluster, iv, vii, 4, 8, 81, 85, 109, 111, 120
clustering, 109
Complex, 164
eksekusi, 58, 183
Ekslusif, 108
204
elemen, vii, 30, 31, 33, 63, 72, 77, 79, 83, 84, 86, 93, 117, 118,
121, 136
Handy cam, 16
hardware, 28, 99
Headphone, 17
HSA, 28, 76
indikator, 69
input, 12, 14, 23
Input, 11
instruks, 177
instruksi, 29, 30, 32, 38, 127, 163
Instruksi, 32, 36
internal, 43, 47, 59, 93, 113, 122, 162, 177, 198
ISA, 27
Joy Stick, 13, 23
Keyboard, 12
kode biner, 31, 77
komputasi, 36, 37
komputer, 11, 16, 19, 23, 33, 35, 88
Komputer, 12
Konfigurasi, 103
205
laserjet, 20
Light Pen, 15
logika, 51, 53
makro, 177
memori, 33, 48, 56, 88
Microphone, 17
microprocessor, 182
mikro, 73, 82, 92, 144, 160, 162
mnemonics, 34
monitor, 13, 14, 15, 18, 21
mouse, 15
Mouse, 12, 13
multiprosesor, 107
nirkabel, 20
opcode, 34, 45, 61
operand, 41, 47, 49, 57, 60
Operand, 169
operand., 50
operasi, 51, 53, 94
Operasi, 45
output, 20
206
Output, 19, 25
paralel, 2, 3, 7, 80, 81, 82, 83, 84, 86, 87, 93, 117, 118, 119, 120,
122, 161, 183, 198
pengalamatan, 28, 75
perangkat, 11
Perangkat, 14, 15, 16, 22
perekam, 16
periperal, 19, 117
pipeline, 183
Pipeline, v, viii, 2, 3, 4, 5, 6, 7, 10, 181, 184, 185, 186, 188, 190,
191, 192, 194, 197, 198, 199, 200, 201
Pipelining, 150
Plotter, 25
pointer, 12
printer, 20
Printer, 20, 25
program, 36, 55
Program, 40
programmer, 174
prosedur, 136
prosesor, 52, 84, 96
Protokol, 104, 105, 106, 107, 108
207
Proyektor, 21, 25
reduced, 126
Reduced, 124
register, 32, 33, 35, 38, 41, 47, 59, 60, 63, 173
Register, 29
Reliabilitas, 102
scanner, 14, 23
Scanner, 14
server, 109
siklus, 57, 67, 99, 104, 121, 124, 125, 130, 131, 143, 144, 149,
155, 156, 166, 167, 190, 191, 193, 194, 200
simbolik, 34
software, 92, 105, 110, 115, 116, 119, 132, 138, 140, 174, 177
Speaker, 22
Stack, 56, 63, 78
touchpad, 14, 23
touchscreen, 15
Track Ball, 14
transfer, 47
transistor, 128, 131, 161, 176, 177
variabel, 35, 36, 57, 68, 72, 73, 105, 135, 136, 138, 139, 140, 141,
171
208
virtual, 55
Webcam, 16, 17
209
Profil Penulis
Rozeff Pramana dilahirkan di Bengkalis 1
April 1978. Penulis tertarik pada bidang
teknik sejak duduk di sekolah menengah
pertama dan meneruskan peminatannya
tersebut ke STM dengan jurusan Teknik
Elektro. Penulis melanjutkan studi ke
jenjang D3 dan berlanjut ke jenjang S1
dengan jurusan yang sama yaitu Teknik Elektro di Institut Sains
dan Teknologi Nasional Jakarta. menyelesaikan Magister Teknik
Elektro di Universitas Trisakti Jakarta. Disela kesibukan sebagai
mahasiswa, Penulis juga bekerja paruh waktu dibidang Komputer.
Pekerjaan profesional mulai dijalani penulis pada tahun 2000
sebagai staf teknik disalah satu BUMN yang bergerak dibidang
survey. Penulis juga pernah bekerja di perusahaan-perusahaan
swasta nasional yang bergerak di bidang desain/manufaktur dan
telekomunikasi. Pekerjaan utama saat ini adalah sebagai dosen
tetap Teknik Elektro di Fakultas Teknik Universitas Maritim Raja
Ali Haji Kepulauan Riau. Fokus penelitian penulis adalah pada
bidang Teknik Elektro Maritim dan Telekomunikasi.
Alena Uperiati, lahir di Tanjung batu,
Kepulauan Riau pada 22 Juni 1989. Ia adalah
alumni SMA Negeri 5 Batam, Kepulauan
Riau. Penulis menyelesaikan S1 di
Universitas Maritim Raja Ali Haji (UMRAH)
angkatan 2008 di Fakultas Teknik Jurusan
Teknik Informatika dan baru menyelesaikan
program Magister di Universitas Gadjah
Mada (UGM) angkatan 2013l././ di Fakultas MIPA Jurusan Ilmu
Komputer. Mulai dari 2016 mengabdikan diri sebagai dosen di
Jurusan Teknik Informatika Universitas Maritim Raja Ali Haji
(UMRAH).
210
Download