Post on 09-Apr-2019
i
ARSITEKTUR KOMPUTER
Teori dan Perkembangannya
Penulis:
Victor Amrizal
Qurrotul Aini
Editor: Qurrotul Aini
Desainer Isi: Catur S.
Desainer Sampul: Catur S.
Jakarta, Februari 2013
ISBN: 978-602-9126-93-8
Diterbitkan:
Halaman Moeka Publishing
Jl. Manggis IV No. 2 Rt 07/04 Tanjungduren Selatan
Grogol Petamburan, Jakarta Barat Telp. 021 5644157
halamanmoeka.blogspot.com | halamanmoeka@gmail.com
ii
”Kebaikan dunia dan akhirat ada dalam bersama
pengetahuan, tapi keburukan dunia dan akhirat ada bersama dengan kejahilan”
iii
KATA PENGANTAR
Segala puji bagi Allah , Pemilik segala pujian yang
selalu memberikan ramat dan nikmat kepada hamba-Nya serta
salam dan shalawat selalu tercurah pada Nabi Muhammad .
Semoga kita tetap menjadi ummatnya hingga akhir zaman.
Adapun buku Arsitektur Komputer ini adalah buku sederhana
persembahan kami yang tersusun atas pengetahuan dan pengalaman
selama menekuni dunia pendidikan, sebagai hasil yang relevan
dalam pemahaman materi di dalam institusi perguruan tinggi. Buku
ini terdiri atas 18 bab, meliputi sejarah komputer hingga teknologi
MMX (MultiMedia eXtensions). Buku ini disusun untuk membantu
mahasiswa, pengajar maupun praktisi untuk mendalami Arsitektur
Komputer dan menjadi khazanah pengetahuan di tanah air.
Penulis menyadari kekurangan konten materi maupun teknis
penyajiannya. Kritik dan saran bagi penulis sangat diharapkan.
Akhir kata, penulis mengucapkan terima kasih kepada seluruh pihak
yang mendukung, sehingga buku ini dapat diterbitkan. Selamat
membaca, semoga bermanfaat.
Ciputat, September 2012
Penulis
iv
DAFTAR ISI
MOTO ii
KATA PENGANTAR iii
DAFTAR ISI iv
BAB 1 SEJARAH KOMPUTER
1.1 Pendahuluan 1
1.2 Generasi Alat Hitung Tradisional dan
Kalkulator Mekanik
2
1.3 Komputer Generasi Pertama (1940-1959) 8
1.4 Komputer Generasi Kedua (1959 -1964) 12
1.5 Komputer Generasi Ketiga (1964 - awal
80an)
15
1.6 Komputer Generasi Keempat (sejak tahun
1970 – hingga sekarang)
17
1.7 Komputer Generasi Masa Depan 20
BAB 2 EVOLUSI DAN KINERJA KOMPUTER
2.1 Pengertian Komputer 26
2.2 Evolusi Komputer 27
2.3 Evolusi Komputer pada Teknologi Dasar 28
2.4 Evolusi Komputer pada Prosesor Pentium 33
2.5 Evolusi pada PowerPC (PPC) 35
2.6 Kinerja Komputer 36
BAB 3 BUS SISTEM
3.1 Pendahuluan 49
3.2 Pengertian Bus Sistem 52
3.3 Operasi Bus 55
3.4 Elemen-Elemen Rancangan Bus 55
3.5 Beberapa Bus Utama dalam Sistem
Komputer Modern
60
v
BAB 4 MEMORI INTERNAL
4.1 Pengertian Memori 75
4.2 Karakteristik Sistem Memori secara Umum 76
4.3 Pengertian Memori Internal 76
4.4 Karakter Memori Internal 79
4.5 Kinerja Memori 82
4.6 Tipe Fisik Memori 84
4.7 Organisasi Memori Logik Keping (Chip
Logic)
92
BAB 5 MEMORI EKSTERNAL
5.1 Pendahuluan 94
5.2 Pengertian Memori Eksternal 94
5.3 Jenis-Jenis Memori Eksternal 95
BAB 6 INPUT DAN OUTPUT
6.1 Pendahuluan 124
6.2 Sistem Input/Output 126
6.3 Sistem Input dan Output Komputer 128
6.4 Tipe Interface 133
6.5 Teknik Input/Output 133
6.6 Perangkat Eksternal 142
6.7 Transfer Data 144
BAB 7 ARITMATIKA KOMPUTER
7.1 Pendahuluan 158
7.2 Unit Aritmatika dan Logika 159
7.3 Adder 159
7.4 Penjumlahan 162
7.5 Floating Point Arithmetic 172
7.6 Aritmatika Fixed-Point 179
BAB 8 PENDUKUNG SISTEM OPERASI
8.1 Pendahuluan 186
8.2 Pengertian Sistem Operasi 186
8.3 Tujuan dan Fungsi Sistem Operasi 187
8.4 Sistem Operasi sebagai Manajer Sumber
Daya
190
8.5 Jenis-Jenis Sistem Operasi 192
vi
8.6 Sistem-sistem Terdahulu 193
8.7 Sistem Batch Sederhana 195
8.8 Sistem Batch Canggih 198
8.9 Penjadwalan 200
8.10 Manajemen Memori 203
BAB 9 SET INSTRUKSI ADDRESS DAN FORMAT
ADDRESS
9.1 Pendahuluan 209
9.2 Set Instruksi (Address dan Format Adsress) 210
9.3 Mode-Mode Pengalamatan Pentium dan
PowerPC
224
BAB 10 SET INSTRUKSI (FUNCTION)
10.1 Pendahuluan 231
10.2 Karakteristik Instruksi Mesin 232
10.3 Jenis-Jenis Operand 239
10.4 Jenis-Jenis Operasi 242
10.5 Pengertian mengenai Set Instruksi, Fungsi
dan Karakteristik
252
BAB 11 STRUKTUR DAN FUNGSI CPU
11.1 Pendahuluan 258
11.2 Struktur CPU 260
11.3 Sistem CPU Interkoneksi 279
11.4 Prosesor PowerPC 290
BAB 12 COMPLEX INSTRUCTION SET COMPUTER
(CISC)
12.1 Pendahuluan 303
12.2 Pengertian Complex Instruction Set
Computer (CISC)
304
12.3 Karakteristik CISC 307
12.4 Filosofi Arsitektur CISC 309
12.5 Keunggulan CISC 309
12.6 Perbedaan CISC dan RISC 310
12.7 Eksekusi Instruksi 313
vii
BAB 13 REDUCED INSTRUCTION SET COMPUTER
(RISC)
13.1 Pendahuluan 316
13.2 Karakteristik Eksekusi Instruksi 316
13.3 Pengertian RISC 319
13.4 Sejarah RISC 320
13.5 Eksekusi Instruksi 321
13.6 Beberapa Elemen Penting pada Arsitektur
RISC
325
13.7 Keunggulan dan Kelemahan RISC 328
BAB 14 PROSESOR SUPERSKALAR
14.1 Sejarah 331
14.2 Dari Skalar menjadi Superskalar 332
14.3 Pengertian Prosesor Superskalar 332
14.4 Arsitektur Superskalar 334
14.5 Implementasi Superskalar 340
BAB 15 KONTROL TERMIKROPROGRAM
(MICROPROGRAMMED CONTROL)
15.1 Pendahuluan 350
15.2 Konsep Dasar 352
15.3 Keuntungan dan Kerugian 357
15.4 Pengurutan Instruksi Mikro 357
15.5 Eksekusi Instruksi Mikro 361
15.6 Aplikasi Pemrograman Mikro 369
BAB 16 ARSITEKTUR KOMPUTER CYRIX
16.1 Pendahuluan 371
16.2 Sejarah AMD 372
16.3 Rancangan 373
16.4 Mikroprosesor Cyrix 6x86 378
BAB 17 ARSITEKTUR KOMPUTER AMD
17.1 Sejarah AMD (Advanced Micro Device) 387
17.2 Soket Prosesor AMD 388
17.3 Prosesor AMD 408
viii
BAB 18 TEKNOLOGI MMX (MULTIMEDIA
EXTENSIONS) PADA INTEL PROCESSOR
18.1 Pendahuluan 460
18.2 Sejarah Multimedia 461
18.3 Pengertian Multimedia 462
18.4 Kelebihan Multimedia 464
18.5 Komponen Multimedia 464
18.6 Software Multimedia 467
18.7 Spesifikasi Komputer Multimedia Terkini 472
DAFTAR PUSTAKA 475
BIOGRAFI PENULIS 481
1
BAB 1
SEJARAH KOMPUTER
1.1 Pendahuluan
Sejak dahulu kala, proses pengolahan data telah dilakukan
oleh manusia secara manual. Namun, untuk mendapatkankan
hasil pengolahan data dengan secepat dan seakurat mungkin,
manusia berusaha untuk membuat alat-alat mekanik maupun
elektronik yang bisa membantu mereka dalam penghitungan dan
pengolahan data. Proses dan usaha yang panjang itulah yang
menyebabkan adanya komputer yang ada pada saat ini. Proses
inipun masih terus berlanjut dan memungkinkan terciptanya
komputer yang jauh lebih canggih di masa datang.
Saat ini komputer dan piranti pendukungnya telah masuk
dalam setiap aspek kehidupan dan pekerjaan. Komputer yang ada
sekarang memiliki kemampuan yang lebih dari sekedar
perhitungan matematik biasa. Di antaranya adalah sistem
komputer di kassa supermarket yang mampu membaca kode
barang belanja, sentral telepon yang menangani jutaan panggilan
dan komunikasi, jaringan komputer dan internet yang
menghubungkan berbagai tempat di dunia.
2
Ide penciptaan komputer bermula dari keinginan manusia
untuk menciptakan alat bantu menghitung (komputasi).
Komputer canggih yang kita temui saat ini adalah suatu evolusi
panjang dari penemuan-penemuan manusia sejak dahulu kala
yang awalnya berupa alat mekanik maupun elektronik yang
berkembang secara bertahap. Sejarah perkembangan komputer
dibagi menjadi beberapa periode/ generasi:
Generasi Alat Hitung Tradisional dan Kalkulator
Mekanik
Komputer Generasi Pertama
Komputer Generasi Kedua
Komputer Generasi Ketiga
Komputer Generasi Keempat
Komputer Generasi Kelima
1.2 Generasi Alat Hitung Tradisional dan Kalkulator
Mekanik
Sekitar 5000 tahun yang lalu di Asia kecil dan masih
digunakan di beberapa tempat hingga saat ini, dapat dianggap
sebagai awal mula alat komputasi. Alat ini memungkinkan
penggunanya untuk melakukan perhitungan menggunakan biji-
bijian geser yang diatur pada sebuah rak. Para pedagang di masa
itu menggunakan sempoa untuk menghitung transaksi
perdagangan. Seiring dengan munculnya pensil dan kertas,
terutama di Eropa, abacus kehilangan popularitasnya.
3
Gambar 1.1 Alat Hitung Sempoa atau Abacus
Pada tahun 1642, Blaise Pascal (1623-1662), yang pada
waktu itu berumur 18 tahun, menemukan apa yang disebut
sebagai kalkulator roda numerik (numerical wheel calculator)
untuk membantu ayahnya melakukan perhitungan pajak. Kotak
persegi kuningan ini yang dinamakan Pascaline, menggunakan
delapan roda putar bergerigi untuk menjumlahkan bilangan
hingga delapan digit. Alat ini merupakan alat penghitung
bilangan berbasis sepuluh. Kelemahan alat ini adalah hanya
terbatas untuk melakukan penjumlahan.
Gambar 1.2 Alat Hitung Pascaline
Tahun 1694, seorang matematikawan dan filsuf Jerman,
Gottfred Wilhem von Leibniz (1646-1716) memperbaiki
Pascaline dengan membuat mesin yang dapat mengalikan. Sama
4
seperti pendahulunya, alat mekanik ini bekerja dengan
menggunakan roda-roda gerigi. Dengan mempelajari catatan dan
gambar-gambar yang dibuat oleh Pascal, Leibniz dapat
menyempurnakan alatnya. Pada tahun 1820, kalkulator mekanik
mulai populer. Charles Xavier Thomas de Colmar menemukan
mesin yang dapat melakukan empat fungsi aritmatik dasar.
Kalkulator mekanik Colmar “arithometer” mempresentasikan
pendekatan yang lebih praktis dalam kalkulasi karena alat
tersebut dapat melakukan penjumlahan, pengurangan, perkalian
dan pembagian. Dengan kemampuannya, arithometer banyak
dipergunakan hingga masa Perang Dunia I. Bersama-sama
dengan Pascal dan Leibniz, Colmar membantu membangun era
komputasi mekanikal.
Awal mula komputer yang sebenarnya dibentuk oleh
seorang profesor matematika Inggris, Charles Babbage (1791-
1871). Tahun 1812, Babbage memperhatikan kesesuaian alam
antara mesin mekanik dan matematika yaitu mesin mekanik
sangat baik dalam mengerjakan tugas yang sama berulangkali
tanpa kesalahan; sedang matematika membutuhkan repetisi
sederhana dari suatu langkah-langkah tertenu. Masalah tersebut
kemudain berkembang hingga menempatkan mesin mekanik
sebagai alat untuk menjawab kebutuhan mekanik. Usaha
Babbage yang pertama untuk menjawab masalah ini muncul
pada tahun 1822 ketika ia mengusulkan suatu mesin untuk
melakukan perhitungan persamaan differensial. Mesin tersebut
dinamakan Mesin Differensial. Dengan menggunakan tenaga
5
uap, mesin tersebut dapat menyimpan program dan dapat
melakukan kalkulasi serta mencetak hasilnya secara otomatis.
Setelah bekerja dengan Mesin Differensial selama sepuluh tahun,
Babbage tiba-tiba terinspirasi untuk memulai membuat komputer
general-purpose yang pertama, yang disebut Analytical Engine.
Asisten Babbage, Augusta Ada King (1815-1842) memiliki
peran penting dalam pembuatan mesin ini. Ia membantu merevisi
rencana, mencari pendanaan dari pemerintah Inggris, dan
mengkomunikasikan spesifikasi Analytical Engine kepada
publik. Selain itu, pemahaman Augusta yang baik tentang mesin
ini memungkinkannya membuat instruksi untuk dimasukkan ke
dalam mesin dan juga membuatnya menjadi programmer wanita
yang pertama. Pada tahun 1980, Departemen Pertahanan
Amerika Serikat menamakan sebuah bahasa pemrograman
dengan nama ADA sebagai penghormatan kepadanya.
Mesin uap Babbage, walaupun tidak pernah selesai
dikerjakan, tampak sangat primitif apabila dibandingkan dengan
standar masa kini. Bagaimanapun juga, alat tersebut
menggambarkan elemen dasar dari sebuah komputer modern dan
juga mengungkapkan sebuah konsep penting. Terdiri atas sekitar
50.000 komponen, desain dasar dari Analytical Engine
menggunakan kartu-kartu perforasi (berlubang-lubang) yang
berisi instruksi operasi bagi mesin tersebut.
6
Gambar 1.3 Analytical Engine
Pada tahun 1889, Herman Hollerith (1860-1929) juga
menerapkan prinsip kartu perforasi untuk melakukan
penghitungan. Tugas pertamanya adalah menemukan cara yang
lebih cepat untuk melakukan perhitungan bagi Biro Sensus
Amerika Serikat. Sensus sebelumnya yang dilakukan di tahun
1880 membutuhkan waktu tujuh tahun untuk menyelesaikan
perhitungan. Dengan berkembangnya populasi, biro tersebut
memperkirakan bahwa dibutuhkan waktu sepuluh tahun untuk
menyelesaikan perhitungan sensus. Hollerith menggunakan kartu
perforasi untuk memasukkan data sensus yang kemudian diolah
oleh alat tersebut secara mekanik. Sebuah kartu dapat
menyimpan hingga 80 variabel. Dengan menggunakan alat
tersebut, hasil sensus dapat diselesaikan dalam waktu enam
minggu. Selain memiliki keuntungan dalam bidang kecepatan,
kartu tersebut berfungsi sebagai media penyimpan data. Tingkat
kesalahan perhitungan juga dapat ditekan secara drastis. Hollerith
kemudian mengembangkan alat tersebut dan menjualnya ke
masyarakat luas. Ia mendirikan Tabulating Machine Company
7
pada tahun 1896 yang kemudian menjadi International Business
Machine (1924) setelah mengalami beberapa kali merger.
Perusahaan lain seperti Remington Rand and Burroghs juga
memproduksi alat pembaca kartu perforasi untuk usaha bisnis.
Kartu perforasi digunakan oleh kalangan bisnis dan
pemerintahan untuk pemrosesan data hingga tahun 1960.
Pada masa berikutnya, beberapa insinyur membuat
penemuan baru lainnya. Vannevar Bush (1890-1974) membuat
sebuah kalkulator untuk menyelesaikan persamaan diferensial di
tahun 1931. Mesin tersebut dapat menyelesaikan persamaan
diferensial kompleks yang selama ini dianggap rumit oleh
kalangan akademisi. Mesin tersebut sangat besar dan berat
karena ratusan gerigi dan poros yang dibutuhkan untuk
melakukan perhitungan. Tahun 1903, John V. Atanasoff dan
Clifford Berry mencoba membuat komputer elektrik yang
menerapkan aljabar Boolean pada sirkuit elektrik. Pendekatan ini
didasarkan pada hasil kerja George Boole (1815-1864) berupa
sistem biner aljabar, yang menyatakan bahwa setiap persamaan
matematik dapat dinyatakan sebagai benar atau salah. Dengan
mengaplikasikan kondisi benar-salah ke dalam sirkuit listrik
dalam bentuk terhubung-terputus, Atanasoff dan Berry membuat
komputer elektrik pertama di tahun 1940. Namun proyek mereka
terhenti karena kehilangan sumber pendanaan.
8
1.3 Komputer Generasi Pertama (1940-1959)
Komputer Generasi pertama mempunyai ciri-ciri sebagai
berikut:
1. Komponen yang dipergunakan adalah tabung hampa udara
(vacuum tube) untuk sirkuitnya.
2. Program hanya dapat dibuat dengan bahasa mesin
(Machine language).
3. Menggunakan konsep stored-program dengan memori
utamanya adalah magnetic core storage.
4. Menggunakan simpanan luar magnetic tape dan magnetic
disk.
5. Ukuran fisik komputer besar dan memerlukan ruangan
yang luas.
6. Cepat panas, sehingga diperlukan alat pendingin.
7. Prosesnya kurang cepat.
8. Simpanannya kecil.
9. Membutuhkan daya listrik yang besar.
10. Orientasinya terutama pada aplikasi bisnis.
Pada tahun 1946, komputer generasi pertama telah selesai
dibuat dengan nama ENIAC (Electronic Numerical Integrator
And Calculator). ENIAC mulai dibuat tahun 1942 di More
School of Electrical Engineering oleh Dr. John W. Mauchly dan
J. Presper Ecker. ENIAC dibuat dengan tujuan utamanya
membantu US. Army untuk menghitung target sasaran bom,
karena pada Perang Dunia kedua, hanya 30 % dari bom yang
9
dapat mencapai saasaran dalam radius 300 m dari targetnya.
ENIAC merupakan komputer yang berukuran fisik besar,
membutuhkan tempat lebih dari 500 m2
, volume 105 m3, terdiri
atas 18.000 tabung hampa udara, 75.000 relay, 10.000 kapasitor
dan 70.000 resistor. Berat ENIAC lebih dari 30 ton. ENIAC
mempunyai suatu memori yang terdiri atas 20 buah accumulator,
masing-masing accumulator menyimpan 10 digit bilangan.
Gambar 1.4 Komputer ENIAC
ENIAC mampu melakukan 5000 buah pertambahan 10
digit angka dalam waktu 1 menit dan mampu melakukan 300
buah perkalian dalam waktu 1 menit. ENIAC dapat mengolah
data dalam waktu sehari untuk pekerjaan yang dilakukan selama
30 hari oleh komputer sebelumnya atau 300 hari bila dikerjakan
oleh tangan secara manual. Semua input dan output dilakukan
10
dengan menggunakan kartu plong. Pada tahun 1947 dibuat
komputer Harvad Mark II, yang mempunyai kemampuan 12 kali
lebih besar dari Harvad Mark I. Pada tahun 1947, John Bardeen,
Dr. Walter H. Brattain dan Dr. William Scockley di Bell
Laboratories menemukan transistor yang nantinya merupakan
komponen untuk komputer generasi kedua. Pada tahun 1948,
IBM Selective Sequence Electronic Calculator selesai dibuat.
Mesin ini terdiri dari 12.500 tabung dan 21.500 relay. Pada tahun
1949 di Cambridge, telah dioperasikan sebuah komputer dengan
nama EDSAC, merupakan komputer pertama yang menggunakan
stored-program. EDSAC dibuat pada pertengahan tahun 1940
oleh John von Neumann bersama dengan H.H Goldstine dan
A.W Burks. Tahun 1949, Harvard Mark III dibuat dengan
menggunakan memori drum magnetik (magnetic drum).
Kemudian tahun 1950, Alan M. Turing di Nasional Physical
Laboratory telah selesai membuat komputer dengan nama ACE
(Automatic Calculating Engine). Komputer ini juga
menggunakan kartu plong standar untuk peralatan input dan
output-nya.
Pada tahun 1950, di Electronic Computation Laboratory di
Birkbeck College dibuat konstruksi dari komputer SEC (Simple
Electronic Computer) yang menggunakan drum magnetik
sebagai memori penyimpanan. Tahun 1951, Inggris
memproduksi komputer komersil yang pertama dengan nama
LEO (Lyon Electronic Office). Pada tahun yang sama, Sperry
Rand Corporation menciptakan komputer dengan nama
11
UNIVAC. Komputer UNIVAC 1 merupakan komputer pertama
yang menggunakan pita magnetik sebagai media input dan
output-nya.
Gambar 1.5 Komputer UNIVAC I
1952: Komputer pertama di Amerika Serikat yang
menggunakan stored-program adalah EDVAC. EDVAC
memiliki ukuran lebih kecil dan mempunyai kemampuan
yang lebih besar dari EDSAC. Pada tahun yang sama, Dr.
Jay Forrester membuat komputer Whirlwind I yang
merupakan komputer pertama yang menggunakan
magnetic core memory.
1953: IBM memproduksi komputer IBM 701 yang
merupakan komputer komersil berukuran besar. Pada
tahun 1954, IBM memproduksi komputer IBM 650 dan
IBM 701 yang berorientasi pada aplikasi bisnis dan
merupakan komputer yang paling populer sampai tahun
1959.
12
1956: RAMAC 305 yang merupakan komputer pertama
yang memungkinkan file disimpan di disk dengan akses
secara random. Komputer ini menggunakan 50 magnetic
disk yang dapat menyimpan 5 juta karakter dengan waktu
akses untuk mencari record tertentu tidak lebih dari satu
detik.
1959: IBM 705 dibuat untuk menggantikan IBM 701.
Komputer generasi pertama lainnya di antaranya adalah:
- UNIVAC II
- Datamatic 1000
- Mark II, Mark III, IBM 702, IBM 704, IBM 709
- CRC, NCR 102 A, NCR 102D
- BIZMAC I, BIZMAC II
1.4 Komputer Generasi Kedua (1959 -1964)
Komputer generasi kedua mempunyai ciri-ciri sebagai
berikut:
1. Komponen yang dipergunakan adalah transistor untuk
sirkuitnya, dikembangkan di Bell Laboratories oleh
John Bardeen, William Shockley dan Walter Brattain
pada tahun 1947.
2. Program dapat dibuat dengan bahasa tingkat tinggi
(high level language) seperti misalnya FORTRAN,
COBOL dan ALGOL.
13
3. Kapasitas memori utama sudah cukup besar dengan
pengembangan dari magnetic core storage, dapat
menyimpan puluhan ribu karakter.
4. Menggunakan simpanan luar magnetic tape dan
magnetic disk yang berbentuk removable disk atau
disk pack.
5. Mempunyai kemampuan proses real-time dan time-
sharing. Real-time dapat dilakukan karena
menggunakan simpanan luar yang sifatnya direct
access seperti misalnya magnetic disk, sehingga
informasi yang dibutuhkan seketika dapat dihasilkan.
Sedangkan time-sharing memungkinkan beberapa
pemakai menggunakan komputer secara bersama-
sama dan komputer akan membagi waktunya (time-
sharing) untuk tiap-tiap pemakai.
6. Ukuran fisik komputer lebih kecil dibandingkan
komputer generasi pertama.
7. Proses operasi sudah cepat, dapat memproses jutaan
operasi per detik.
8. Membutuhkan lebih sedikit daya listrik.
9. Orientasi tidak hanya pada aplikasi bisnis tetapi juga
ke aplikasi teknik.
Pada tahun 1959, Perusahaan DEC (Digital Equipment
Corporation) dengan pendirinya Ken Olsen bersama dengan
saudaranya Stan Olsen dan Harlan Anderson mendemonstrasikan
14
komputer PDP-1. Komputer generasi kedua lainnya yang
dikenalkan pada tahun 1959 adalah Honey well 400.
1963: metode virtual memory diusulkan oleh suatu grup di
Manchester London dan kira-kira mulai awal tahun 1970
banyak komputer yang menerapkannya.
1963: Perusahaan DEC mulai mejual komputer mini yang
pertama, yaitu PDP-5, yang kemudian diikuti oleh
komputer PDP-8. Komputer PDP-8 dianggap sebagai
komputer mini komersil yang sukses.
Dari sekian jenis komputer, komputer yang paling banyak
digunakan pada generasi kedua ini adalah IBM 401 untk
aplikasi bisnis yang telah diproduksi sekitar 15000 buah.
IBM 1602 dan IBM 7094 untuk aplikai teknik.
Komputer-komputer generasi kedua yang lainnya, di
antaranya adalah:
- UNIVAC III, UNIVAC SS90, UNIVAC 1107
- Burroughs 200
- IBM 7070, IBM 7080, IBM 1400, IBM1600
- NRC 300
- Honeywell 400, Honeywell 800
- CDC 1604, CDC 160A
- GE 635, GE 645, GE 200
15
Gambar 1.7 Contoh Komputer Generasi Kedua
1.5 Komputer Generasi Ketiga (1964 - awal 80an)
Walaupun transistor dalam banyak hal mengungguli
vacuum tube, namun transistor menghasilkan panas yang cukup
besar, yang dapat berpotensi merusak bagian-bagian internal
komputer. Batu kuarsa (quartz rock) menghilangkan masalah ini.
Jack Kilby, seorang insinyur di Texas Instrument,
mengembangkan sirkuit terintegrasi (IC - Integrated Circuit) di
tahun 1958. IC mengkombinasikan tiga komponen elektronik
dalam sebuah piringan silikon kecil yang terbuat dari pasir
kuarsa. Para ilmuwan kemudian berhasil memasukkan lebih
banyak komponen ke dalam suatu chip tunggal yang disebut
semikonduktor. Hasilnya, komputer menjadi semakin kecil
karena komponen-komponen dapat dipadatkan dalam chip.
Kemajuan komputer generasi ketiga lainnya adalah penggunaan
sistem operasi (operating system) yang memungkinkan mesin
16
untuk menjalankan berbagai program yang berbeda secara
serentak dengan sebuah program utama yang berfungsi untuk
memonitor dan mengkoordinasi memori komputer.
Komputer generasi ketiga mempunyai ciri-ciri sebagai
berikut:
1. Komponen yang digunakan adalah IC (Integrated
Circuits)
2. Peningkatan dari software-nya
3. Pemrosesan lebh cepat
4. Kapasitas memori lebih besar
5. Penggunaan listrik lebih hemat
6. Bentuk fisik lebih kecil
7. Harga semakin murah
1964: IBM mengumumkan sebuah komputer baru yaitu
IBM S360, diberi nama demikian karena komputer ini
mampu melakukan operasi satu lingkaran penuh yang
maksudnya mampu melakukan proses yang dibutuhkan
oleh aplikasi bisnis dan teknik.
1969: komputer mini 16 bit pertama telah dijual dengan
nama Nova yang dikembangkan oleh perusahaan Data
Generate Corporation.
Komputer generasi ketiga lainnya di antaranya adalah:
- UNIVAC 1108, UNIVAC 9000
- Burroughs 5700, Burroughs 6700, Burroughs 7700
17
- GE 600, GE 235
- CDC 3000, CDC 6000, CDC 7000
- PDP-8, PDP-11 (pabrik pembuatnya Digital
Equipment Corporation)
1.6 Komputer Generasi Keempat (sejak tahun 1970 –
hingga sekarang)
Setelah IC, tujuan pengembangan menjadi lebih jelas yaitu
mengecilkan ukuran sirkuit dan komponen-komponen elektrik.
Large Scale Integration (LSI) dapat memuat ratusan komponen
dalam sebuah chip. Pada tahun 1980-an, Very Large Scale
Integration (VLSI) memuat ribuan komponen dalam sebuah chip
tunggal. Ultra-Large Scale Integration (ULSI) meningkatkan
jumlah tersebut menjadi jutaan. Kemampuan untuk memasang
sedemikian banyak komponen dalam suatu keping yang
berukuran setengah keping uang logam mendorong turunnya
harga dan ukuran komputer. Hal tersebut juga meningkatkan
daya kerja, efisiensi dan juga kehandalan komputer. Chip Intel
4004 yang dibuat pada tahun 1971 membawa kemajuan pada IC
dengan meletakkan seluruh komponen dari sebuah komputer
(central processing unit, memori dan kendali input/output) dalam
sebuah chip yang sangat kecil. Sebelumnya, IC dibuat untuk
mengerjakan suatu tugas tertentu yang spesifik. Sekarang, sebuah
mikroprosesor dapat diproduksi dan kemudian diprogram untuk
memenuhi seluruh kebutuhan yang diinginkan. Tidak lama
kemudian, setiap perangkat rumah tangga seperti microwave,
18
televisi dan mobil dengan electronic fuel injection dilengkapi
dengan mikroprosesor. Perkembangan yang demikian
memungkinkan orang biasa untuk menggunakan komputer.
Komputer tidak lagi menjadi dominasi perusahaan-perusahaan
besar atau lembaga pemerintah.
Pertengahan 1970-an: perakit komputer menawarkan
produk komputer mereka ke masyarakat umum.
Komputer-komputer ini disebut mini komputer, dijual
dengan paket piranti lunak yang mudah digunakan oleh
kalangan awam. Piranti lunak yang paling populer pada
saat itu adalah program word processing dan spreadsheet.
Awal 1980-an: video game seperti Atari 2600 menarik
perhatian konsumen pada komputer rumahan yang lebih
canggih dan dapat diprogram.
1981: IBM memperkenalkan penggunaan Personal
Computer (PC) untuk penggunaan di rumah, kantor dan
sekolah. Jumlah PC yang digunakan melonjak dari 2 juta
unit pada tahun 1981 menjadi 5,5 juta unit pada tahun
1982. Sepuluh tahun kemudian, 65 juta PC digunakan.
Komputer melanjutkan evolusinya menuju ukuran yang
lebih kecil, dari komputer yang berada di atas meja
(desktop computer) menjadi komputer yang dapat
dimasukkan ke dalam tas (laptop) atau bahkan komputer
yang dapat digenggam (palmtop).
19
IBM PC bersaing dengan Apple Macintosh dalam
memperebutkan pasar komputer. Apple Macintosh
menjadi terkenal karena mempopulerkan sistem grafis
pada komputernya, sementara saingannya masih
menggunakan komputer yang berbasis teks. Macintosh
juga mempopulerkan penggunaan piranti mouse.
Perjalanan IBM compatible dengan pemakaian CPU IBM
PC/486, Pentium, Pentium II, Pentium III, Pentium IV
(serial dari CPU buatan Intel), juga kita kenal AMD k6,
Athlon, dan sebagainya. Ini semua masuk dalam golongan
komputer generasi keempat. Seiring dengan menjamurnya
penggunaan komputer di tempat kerja, cara baru untuk
menggali potensi terus dikembangkan. Seiring dengan
bertambah kuatnya suatu komputer kecil, komputer-
komputer tersebut dapat dihubungkan secara bersamaan
dalam suatu jaringan untuk saling berbagi memori, piranti
lunak, informasi dan juga untuk dapat saling
berkomunikasi satu dengan yang lainnya. Komputer
jaringan memungkinkan komputer tunggal untuk
membentuk kerjasama elektronik untuk menyelesaikan
suatu proses tugas. Dengan menggunakan pengkabelan
langsung, yang disebut juga Local Area Network (LAN),
jaringan ini berkembang menjadi sangat besar.
20
1.7 Komputer Generasi Masa Depan
Pengembangan komputer generasi masa depan lebih
berpusat pada kecerdasan buatan (artificial intelligence) dan
interaksi antara manusia dengan komputer. Interaksi ini
mencakup interaksi secara fisik, psikis, interaksi dalam bahasa
(linguistic) dan logika (logic). Ahli-ahli sains komputer sekarang
juga sedang mencoba merancang komputer yang tidak
memerlukan penulisan dan pembuatan program oleh pengguna.
Komputer tanpa program (programless computer) mungkin
membentuk ciri utama generasi komputer yang akan datang.
Komputer generasi masa depan ini juga memiliki bermacam-
macam bentuk dan kecerdasan. Bentuk di sini dimaksudkan
bahwa bentuk komputer ini tergantung dari kebutuhan, misal
berbentuk pen sehingga mudah dibawa dan lain-lain. Kecerdasan
yang dimaksud di sini bahwa komputer memiliki kecerdasan
tertentu saja menurut si pembuat, misalnya komputer yang
dipasang di mobil untuk memonitor kondisi lalu lintas. Selain itu,
komputer generasi keenam mudah untuk dioperasikan sehingga
semua orang bisa menggunakan dengan kemampuan software
dan hardware yang didukung sistem operasi yang bagus. Ada
beberapa konsep mengenai perkembangan komputer generasi
masa depan.
Beberapa sumber menjabarkan sebagai berikut:
1. Komputer Optik
Komputer ini akan menggunakan partikel cahaya yang
disebut photons. Ilmuwan NASA telah mencoba untuk
21
menggunakan cahaya dengan kecepatan yang sangat
tinggi tanpa memperhitungkan hambatan udara. Dr.
Donald Frazier telah melakukan penelitian terhadap blue
laser. Beliau berkata bahwa apa yang didapat dari blue
laser ini adalah perkembangan yang super cepat, super
miniatur, super ringan dan biaya yang lebih rendah dalam
operasi komputer dan komunikasi optik.
2. Komputer Hologram
Komputer ini menggunakan hologram untuk
pengoperasian. Bentuk komputer sudah tidak seperti
generasi sebelumnya. Komputer dapat berbentuk arloji,
pen dan sebagainya.
3. Komputer Masa Depan dengan Pancaindra
Ibaratnya manusia, komputer masa depan akan memiliki
kecerdasan luar biasa ditambah dengan pancaindra seperti
manusia: penglihatan, pengecap, peraba, penciuman dan
pendengaran. Komputer masa depan juga akan memiliki
bermacam-macam bentuk dan tingkat kecerdasan:
bentuknya kecil dan sederhana bisa dibawa-bawa atau
dipakai (misalnya berbentuk arloji). Memiliki
kecerdasan terbatas dan lebih berfungsi sebagai client
komputer yang lebih besar. Misalnya kita ingin tahu
bagaimana kondisi lalulintas saat ini antara Jakarta ke
Bandung, maka komputer ini akan segera menanyakan
ke komputer di jaringan secara peer to peer dan
memberikan informasi terbaik berdasarkan data yang
22
diterima. Komputer ini juga merupakan semacam
tanda pengenal dari si pemakai (tuannya), sehingga
kemanapun tuannya pergi, semua komputer di seluruh
dunia akan mengenali orang ini berdasarkan
identifikasi yang dipancarkan oleh komputer kecil ini.
terpasang di dalam mobil, fungsinya memonitor
kondisi lalu lintas, mobil dan penumpang. Komputer
ini akan memiliki banyak kamera yang memonitor
kondisi jalan dan interior mobil. Komputer juga
memiliki layar yang berbentuk kaca depan mobil,
sehingga dalam keadaan gelap, komputer dapat
membantu memproyeksikan gambar jalanan dengan
terang ke kaca depan mobil berkat kamera inframerah
yang terpasang di sekeliling mobil. Komputer juga
akan mengambil alih kemudi jika si pengemudi berada
dalam keadaan tidak sehat (misalnya mabuk).
terpasang di rumah, fungsinya membuat semua proses
di rumah menjadi otomatis. Misalnya menyalakan
lampu, pompa kolam renang dan lain-lain secara
otomatis.
terpasang secara sentral, fungsinya mengatur semua
sumber daya yang ada di bumi ini. Komputer sentral
ini akan terhubung melalui jaringan nirkabel ke semua
komputer di permukaan bumi dan antariksa.
23
Dengan adanya pancaindra tadi dan kemajuan di teknologi
programming, maka komputer dapat beroperasi secara mandiri,
karena tidak lagi memerlukan input dari perangkat khusus seperti
keyboard/ mouse/ touch screen di komputer masa sekarang:
penglihatan: komputer dilengkapi oleh kamera 360° dan
dapat memahami gerak-gerik/ gesture, roman muka,
gerakan mulut, mengenali orang/ benda sekitar dan
menterjemahkannya ke dalam instruksi komputer.
Misalnya jika ada orang mencurigakan berjalan melintas
komputer ini, maka komputer dapat melaporkannya ke
polisi dan memberi data berupa foto/ rekaman video
orang yang mencurigakan tersebut dan data-data lain
(misalnya nama, nomor KTP, alamat dan lain-lain) dari
orang tersebut.
pengecap: komputer dilengkapi dengan sensor yang dapat
mengecap, sehingga dapat mengenali bermacam2 jenis
makanan/ minuman/ benda dari rasanya. Komputer ini
dapat menterjemahkan rasa sebuah benda dan
menguraikannya ke dalam ramuan dasar (misalnya
terbuat dari gula, tepung, minyak kelapa sekian persen
dan seterusnya). Salah satu aplikasinya adalah merasakan
makanan yang akan dimakan tuannya dan memastikan
bahwa tidak ada racun di dalamnya.
peraba: komputer dilengkapi dengan sensor yang dapat
merasakan suatu benda dari rabaan, dan bisa
24
membedakan mana benda yang lunak dan keras, dingin,
panas, basah, kering, lembab, tajam, tumpul, juga
merasakan gerakan angin dan sebagainya. Salah satu
aplikasinya adalah untuk robotik di mana robot bisa
diminta untuk memijit punggung tuannya yang sedang
pegal.
penciuman: memungkinkan komputer mencium dan
mengenali siapapun/ apapun dari bau/ aromanya. Salah
satu aplikasinya adalah untuk mendeteksi adanya obat-
obat terlarang di bandara atau mendeteksi bau-bauan
yang tidak enak dan melaporkannya pada petugas yang
terkait.
pendengaran: komputer mampu menerima instruksi
melalui suara manusia, juga mampu mengidentifikasi
suara musik dan menterjemahkan sebuah rekaman suara
yang rusak ke dalam bentuk notasi musik atau tulisan.
4. Tanpa Keahlian
Semua kemampuan tersebut akan membuat komputer
tidak lagi sebagai benda yang sulit untuk digunakan.
Penggunaan komputer tidak lagi membutuhkan keahlian
khusus yang didapat dengan training dengan sertifikat.
5. Terobosan Arsitektur
Semua hal tersebut akan sangat mungkin kita dapatkan
dengan dukungan software dan hardware yang hebat dan
inovatif. Saat ini, kalau kita inginkan kemampuan seperti
25
itu mungkin akan membutuhkan terobosan besar di
arsitektur software dan hardware yang ada, karena
teknologi yang kita punya sekarang memang belum
sampai ke situ. Software hebat hanya akan berjalan di
hardware yang hebat dengan bantuan operating system
yang hebat juga.
6. Operating System yang Ramping dan Cerdas
Operating system (OS) menjadi sangat penting karena
operating system harus berjalan di banyak arsitektur
hardware yang berbeda (tergantung jenis komputernya
tadi). OS harus dapat melayani semua permintaan dari
aplikasi di atasnya dengan optimum tanpa terlalu
membebani hardware yang ada.
7. Moore's Law
Untuk saat ini, mungkin semua hal ini masih angan-angan,
tetapi jika kita bisa yakinkan dengan kelangsungan hukum
Moore (Intel co-founder) sampai beberapa dekade lagi dan
kemajuan-kemajuan di dunia programming, maka dalam
waktu dekat kita sudah mulai melihat produk canggih
masa depan ini menjadi kenyataan.
26
BAB 2
EVOLUSI DAN KINERJA KOMPUTER
2.1 Pengertian Komputer
Komputer berasal darik kata ”to compute” yang artinya
menghitung. Sedangkan komputer secara terminologi, para pakar
dan peneliti sedikit berbeda dalam mendefinisikan komputer.
Komputer adalah sebuah alat yang diciptakan untuk
membantu kegiatan manusia. Komputer yang sekarang ini kita
gunakan bukanlah suatu alat yang dibuat begitu saja. Komputer
Hamacher: ”Komputer adalah mesin penghitug eklektronik
yang cepat dan dapat menerima informasi input digital,
kemudian memproses sesuai dengan program yang tersimpan
dalam memorinya dan menghasilkan output berupa
informasi”.
Blissmer: ”Komputer adalah suatu alat elektronik yang
mampu melaksanakan beberapa tugas yaitu menerima input,
memproses input sesuai program, menyimpan perintah-
perintah dan hasil dari pengolahan kemudian dapat
menyediakan output berupa informasi”.
Faouri: ”Komputer adalah suatu pemproses data yang dapat
melakukan perhitungan besar secara cepat, termasuk
perhitungan aritmatika dan operasi logika, tanpa campur
tangan manusia”.
27
telah mengalami evolusi sedemikian rupa dari bentuk yang masih
tergolong sederhana hingga ke bentuk yang rumit. Pada mulanya
komputer hanya merupakan sebuah mesin penghitung
(calculator). Kemudian para ilmuan mulai melakukan
penggenerasian dari masa ke masa hingga komputer memiliki
fungsi beragam yang mampu membantu hampir setiap kegiatan
manusia seperti saat ini. Komputer yang baik adalah komputer
yang mempunyai kinerja maksimal dan semakin mudah
dioperasikan oleh user. Peningkatan komponen komputer terus-
menerus dilakukan oleh para ilmuwan untuk menciptakan sebuah
komputer yang lebih baik.
2.2 Evolusi Komputer
Evolusi komputer ditandai dengan peningkatan kecepatan
prosesor, pengurangan ukuran komponen, peningkatan kapasitas
memori dan peningkatan kapasitas dan kecepatan I/O. Satu
faktor yang berpengaruh besar dalam peningkatan kecepatan
prosesor adalah dengan penyusutan ukuran komponen prosesor
mikro, hal ini mengurangi jarak antara komponen dan karenanya
dapat meningkatkan kecepatan. Bagaimanapun, keuntungan
sebenarnya dalam kecepatan di tahun terakhir ini telah datang
dari organisasi prosesor, termasuk penggunaan yang berat dalam
pipelining dan teknik eksekusi yang bersifat spekulasi, yang
mengakibatkan eksekusi instsuksi berikutnya bersifat sementara
yang mungkin diperlukan. Semua teknik ini dirancang untuk
menjaga prosesor bekerja selama mungkin.
28
Suatu permasalahan kritis dalam merancang sistem
komputer adalah menjaga keseimbangan kinerja dari berbagai
unsur-unsur, sehingga menghasilkan kinerja dalam satu bidang
tidaklah mempengaruhi suatu laju di bidang lain. Khususnya,
kecepatan prosesor telah meningkat dengan cepat dibanding
waktu mengakses memori. Berbagai teknik digunakan untuk
mengganti kelemahan yang tidak sepadan ini, mencakup cache,
alur data yang lebih luas dari memori ke prosesor dan chip
memory yang lebih cerdas.
Perkembangan komputer tidak terlepas dari teknologi
dasar pembangunnya. Ciri-ciri umum dan teknologi dasar
pembangun adalah dua hal yang bisa dijadikan acuan dasar untuk
mengetahui perkembangan dari komputer. Dengan menggunakan
dua parameter itu, setidaknya kita dapat mengelompokkan
perkembangan komputer dengan melihat perubahan-perubahan
yang terjadi pada keduanya. Berikut ini adalah gambaran tentang
evolusi komputer.
2.3 Evolusi Komputer pada Teknologi Dasar
Berdasarkan teknologi dasar yang digunakan, evolusi
komputer dapat dijelaskan sebagai berikut:
1. Tabung Hampa
Sebelum abad ke-20 mesin komputer dibangun dengan
teknologi dasar perangkat mekanik dan listrik.
Perkembangan komputer diawali dengan perubahan
komponen dasar yaitu dari komponen mekanik ke tabung
29
hampa (vaccum tube). Berawal dari publikasi Thomas Alfa
Edison pada tahun 1879 tentang bola lampu pijar
(incandescent electric light bulb) yang kemudian
diteruskan dengan percobaan pada tahun 1883 tentang
elektron dalam ruang hampa yang dikenal dengan efek
Edison (Edison effect). Kemudian seorang peneliti di
Inggris, John Ambrose Fleeming mengetahui bahwa efek
Edison dapat menangkap gelombang radio dan
mengubahnya menjadi listrik. Fleeming membuat tabung
hampa dua elemen yang disebut dioda (diode). Langkah ini
menjadi awal generasi komputer karena tabung hampa
menjadi teknologi dasar dalam komputer generasi pertama.
Ciri umum komputer generasi pertama:
Teknologi dasar menggunakan tabung hampa (vacuum
tube)
Program dibuat dengan bahasa mesin (machine
language)
Menggunakan konsep stored program
Memori utama menggunakan teknologi magnetic card
storage
Ukuran fisik lebih besar
Komputer lebih cepat panas
Membutuhkan daya listrik yang besar
2. Transistor
30
Jika pada komputer generasi pertama menggunakan
teknologi dasar berupa tabung hampa, pada komputer
generasi kedua teknologi dasarnya adalah transistor.
Transistor adalah semikonduktor yang berfungsi sebagai
penguat, switch, modulasi sinyal dan lain-lain. Fungsi
tabung hampa buatan Fleeming sudah tercakup di
dalamnya. Transistor dibuat oleh William Shockley, John
Bardeen dan Walter Brattain dari Bell Telephone
Laboratories pada tahun 1947. Penemuan transistor
menjadi awal teknologi bagi komputer generasi kedua.
Ukurannya yang lebih kecil dari tabung hampa membuat
komputer generasi kedua lebih kecil dari komputer
generasi pertama.
Ciri umum komputer generasi kedua:
Teknologi dasar rangkaiannya adalah transistor
Menggunakan bahasa pemograman seperti
FORTRAN, COBOL, ALGOL dan lain-lain
Kapasitas memori cukup besar dengan kemampuan
menyimpan puluhan ribu karakter
Menggunakan memori sekunder berupa magnetic
tape dan magnetic disk untuk menambah kapasitas
penyimpanan
Aplikasi yang dijalankan berupa aplikasi bisnis dan
teknik
31
Ukuran fisik lebih kecil dari komputer generasi
pertama
Daya listrik yang dibutuhkan lebih sedikit
3. IC (Integrated Circuit)
Transistor merupakan sebuah kemajuan teknologi yang
cukup besar. Pada tahun 1950 Para peneliti mulai mencoba
membuat rangkaian yang terintegrasi dengan teknologi
dasar transistor. Ini dimaksudkan untuk lebih
mengefisienkan kerja komputer. Rangkaian yang
terintegrasi ini akan meningkatkan kecepatan proses.
Waktu yang dibutuhkan dalam proses perpindahan data
dari satu komponen ke komponen lainnya menjadi singkat.
Komputer generasi ketiga dengan IC mempunyai ciri-ciri
sebagai berikut:
Teknologi dasar pembangun rangkaian yang
digunakan adalah IC (Integrated Circuit)
Penggunaan sistem operasi lebih bervariasi
disesuaikan kebutuhan dan keperluan
Piranti keluaran berupa layar terminal yang dapat
menampilkan gambar dan grafik
Menggunakan memori sekunder dengan kapasitas
yang lebih besar yaitu magnetic disk yang dapat
menyimpan jutaan karakter
Dapat memproses sejumlah data dari berbagai
sumber yang berbeda dan dapat mengerjakan
beberapa program secara bersamaan
32
Memiliki fitur jaringan, satu komputer dapat
berkomunikasi dengan komputer lain
Penggunaan daya listrik lebih hemat
4. Chip
Pada dasarnya teknologi dasar komputer generasi ketiga
dan keempat tidak jauh berbeda. Perbedaannya hanya
terletak pada tingkat kemampatan komponennya. Dalam
hal ini tingkat kemampatan komponen pada komputer
generasi keempat lebih tinggi dari generasi ketiga. Hal ini
disebabkan oleh semakin mampat komponennya maka
biaya yang diperlukan untuk membuatnya semakin sedikit.
Kecepatannya pun lebih tinggi karena jarak antar
komponen yang saling berdekatan. ULSI (Ultra Large-
Scale Integration) adalah efek pemampatan berikutnya. Ide
pemampatan yang ekstrim adalah WSI (Wafer-Scale
Integration) sebuah ide untuk menyatukan seluruh bagian
fungsional komputer dalam satu chip.
5. Prosesor
Prosesor sering disebut sebagai otak dan pusat pengendali
komputer yang didukung oleh kompunen lainnya. Prosesor
adalah sebuah IC yang mengontrol keseluruhan jalannya
sebuah sistem komputer dan digunakan sebagai pusat atau
otak dari komputer yang berfungsi untuk melakukan
perhitungan dan menjalankan tugas. Prosesor terletak pada
socket yang telah disediakan oleh motherboard, dan dapat
33
diganti dengan prosesor yang lain asalkan sesuai dengan
socket yang ada pada motherboard. Salah satu yang sangat
besar pengaruhnya terhadap kecepatan komputer
tergantung dari jenis dan kapasitas prosesor. Berbagai
usaha telah dilakukan untuk menemukan teknologi baru
masa depan. Jepang adalah salah-satunya. Jepang sebagai
salah-satu pelopor proyek ICOT (Institute for New
Computer Technology) terus melakukan riset dan
penelitian untuk mengembangkan teknologi komputer
yang ada saat ini agar menjadi lebih baik dalam
penggunaan maupun kinerjanya. Banyak kabar yang
menyatakan bahwa proyek ini telah gagal, namun
informasi lain menyatakan bahwa keberhasilan proyek
komputer generasi kelima ini akan membawa perubahan
baru paradigma komputerisasi di dunia.
2.4 Evolusi Komputer pada Prosesor Pentium
Pentium merupakan produk Intel yang mampu
mendominasi pasaran prosesor hingga saat ini dan secara
teknologi menggunakan rancangan CISC (Complex Instruction
Set Computers) dalam arsitekturnya. Generasi demi generasi
diluncurkan ke pasaran dengan kinerja yang menakjubkan dalam
memenuhi kebutuhan konsumennya. Berikut adalah evolusi
prosesor Intel dari yang sederhana sampai keluaran saat ini:
8080: dirilis tahun 1972 merupakan mikroprosesor pertama
34
keluaran Intel dengan mesin 8 bit dan bus data ke memori
juga 8 bit. Jumlah instruksinya 66 instruksi dengan
kemampuan pengalamatan 16 Kb.
8086: dikenalkan tahun 1974 adalah mikroprosesor 16 bit
dengan teknologi cache instruksi. Jumlah instruksi
mencapai 111 dan kemampuan pengalamatan ke memori
64 Kb.
80286: keluar tahun 1982 merupakan pengembangan dari
8086, kemampuan pengalamatan mencapai 1 Mb dengan
133 instruksi.
80386: keluar tahun 1985 dengan mesin 32 bit, sudah
mendukung sistem multitasking. Dengan mesin 32 bitnya,
produk ini mampu menjadi terunggul pada masa itu.
80486: dikenalkan tahun 1989. Kemajuannya pada
teknologi cache memory dan pipelining instruksi, sudah
dilengkapi dengan math co-processor.
Pentium: dikeluarkan tahun 1993, menggunakan teknologi
superskalar sehingga memungkinkan eksekusi instruksi
secara paralel.
Pentium Pro: keluar tahun 1995. Kemajuannya pada
peningkatan organisasi superscalar untuk proses paralel,
ditemukan sistem prediksi cabang, analisis aliran data dan
sistem cache memory yang makin canggih.
Pentium II: keluar sekitar tahun 1997 dengan teknologi
MMX sehingga mampu menangani kebutuhan multimedia.
35
Mulai Pentium II telah menggunakan teknologi RISC.
Pentium III: terdapat kemampuan instruksi floating point
untuk menangani grafis 3D.
Pentium IV: kemampuan floating point dan multimedia
semakin canggih.
Itanium: memiliki kemampuan 2 unit floating point, 4 unit
integer, 3 unit pencabangan, internet streaming, 128
interger register.
Permasalahan kritis dalam merancang sistem komputer
adalah menjaga keseimbangan kinerja dari berbagai unsur-unsur,
sehingga menghasilkan kinerja dalam satu bidang tidaklah
mempengaruhi suatu laju di bidang lain. Khususnya kecepatan
prosesor telah meningkat dengan cepat dibanding waktu
mengakses memori. Berbagai teknik digunakan untuk mengganti
kelemahan yang tidak sepadan ini, mencakup cache, alur data
yang lebih luas dari memori ke prosesor dan chip memory yang
lebih cerdas.
2.5 Evolusi pada PowerPC (PPC)
PowerPC merupakan kelompok komputer yang
menerapkan teknologi RISC (Reduced Instruction Set
Computers). Proyek sistem RISC diawali tahun 1975 oleh IBM
pada komputer mini seri 801. Seri pertama ini hanyalah
prototipe, seri komersialnya adalah PC RT yang dikenalkan
tahun 1986. Tahun 1990 IBM mengeluarkan generasi berikutnya
36
yaitu IBM RISC System/6000 yang merupakan mesin RISC
superscalar workstation. Setelah ini arsitektur IBM lebih dikenal
sebagai arsitektur POWER.
IBM menjalin kerja sama dengan Motorola dan
menghasilkan mikroprosesor seri 6800, kemudian Apple
menggunakan keping Motorola dalam Macintosh-nya. Saat ini
terdapat 4 kelompok PowerPC, yaitu:
601: mesin 32 bit merupakan produksi masal arsitektur
PowerPC untuk lebih dikenal masyarakat.
603: komputer desktop dan komputer portabel. Kelompok
ini sama dengan seri 601 namun lebih murah untuk
keperluan efisien.
604: seri komputer PowerPC untuk kegunaan komputer
low-end server dan komputer desktop.
620: ditujukan untuk penggunaan high-end server. Mesin
dengan arsitektur 64 bit.
740/750: seri dengan cache L2.
G4: seperti seri 750 tetapi lebih cepat dan menggunakan 8
instruksi paralel.
2.6 Kinerja Komputer
A. Perancangan Kinerja
Dari tahun ke tahun, harga sistem komputer menurun
drastis, sedangkan kinerja dan kapasitasnya semakin meningkat
secara dramatis. Jadi seolah-olah kita memperoleh komputer
“gratis”. Kinerja sebuah sistem komputer merupakan hasil proses
37
dari seluruh komponen komputer, yang melibatkan CPU, memori
utama, memori sekunder, bus, peripheral. Revolusi teknologi
yang berkesinambungan ini telah memungkinkan pembuatan
aplikasi yang sangat kompleks dan berguna sekali. Misalnya,
aplikasi desktop yang memerlukan daya besar sistem yang
berbasis mikroprosesor saat ini meliputi:
a. Pengolahan citra
b. Pengenalan pembicaraan
c. Konferensi video
d. Pembuatan multimedia
e. Anotasi suara dan video terhadap suatu file
Hal menakjubkan lainnya adalah dari sudut pandang
organisasi dan arsitektur komputer saat ini adalah mirip dengan
komputer IAS yang dibuat sekitar 50 tahun lalu, namun
perkembangan dan kecanggihannya dapat kita rasakan sekarang
ini. Ada beberapa faktor pendorong dalam perancangan kinerja
komputer yaitu:
1. Kecepatan Mikroprosesor
Evolusi mesin-mesin Pentium dan PowerPC dalam mencari
kecepatan prosesor telah memperkuat apa yang disebut
“Hukum Moore”. Pada mikroprosesor, penambahan
rangkaian-rangkaian baru dan pertambahan kecepatan yang
diakibatkan oleh pengurangan jarak antara rangkaian akan
meningkatkan kinerja sebesar empat atau lima kali lipat
setiap tiga tahun sekali sejak Intel meluncurkan kelompok
38
X86-nya pada 1979. Namun kecepatan mikroprosesor tidak
akan diperoleh tanpa kecepatan itu sendiri, yang merupakan
aliran kerja konstan yang harus dilaksanakan dalam bentuk
instruksi-instruksi komputer. Apapun yang mengganggu
aliran lancar itu akan mengganggu kekuatan prosesor.
Berikut ini terdapat beberapa teknik yang dibuat bagi
prosesor kontemporer:
a. Branch Prediction: Prosesor mengamati terlebih dahulu
di dalam software dan melakukan prediksi cabang atau
kelompok instruksi yang perlu diproses berikutnya.
b. Data Flow Analysis: Prosesor melakukan analisis
instruksi yang mana tidak terganggu pada hasil, atau
data lainnya, untuk membuat penjadwalan yang
optimum bagi instruksi-instruksi.
c. Speculative Execution: Dengan menggunakan prediksi
cabang dan analisis aliran data, beberapa prosesor
mengeksekusi instruksi secara spekulatif terlebih
dahulu sebelum waktu aktualnya dalam eksekusi
program dan menyimpan hasilnya di lokasi sementara.
Hal ini memungkinkan prosesor dapat menjaga mesin
eksekusinya berada dalam keadaan sesibuk mungkin
dengan mengeksekusi instruksi-instruksi yang memiliki
kemungkinan untuk dibutuhkan.
Teknik ini dan teknik canggih lainnya perlu dibuat bagi
prosesor agar memungkinkan meningkatnya kecepatan
39
prosesor. Tabel 2.1 merupakan tabel evolusi sebuah
microprocessor.
Tabel 2.1 Evolusi dari Intel Mikroprosesor
Fitur 8008 8080 8086 80386 80486
Tahun
diperkenalkan
Jumlah
instruksi
Lebar bus
alamat
Lebar bus
data
Jumlah flag
Jumlah
register
Memori
I/O port
Waktu add
register to
register
1972
66
8
8
4
8
15 KB
24
-
1974
111
16
8
5
8
64 KB
256
1,3μ s
1978
133
20
16
9
16
1 MB
64 KB
0,3μ s
1985
154
32
32
14
8
4GB
64 KB
0,125μ
s
1989
235
32
32
14
8
4GB
4GB
0,06μ
s
2. Keseimbangan Kinerja
Perkembangan mikroprosesor, dilihat dari kapasitas operasi
dan kecepatannya sangatlah pesat. Perkembangan
40
mikroprosesor ini sulit diimbangi oleh komponen lainnya
seperti memori. Hal ini menimbulkan masalah kesenjangan
dan kurang sinkronnya operasi antar komponen. Organisasi
dan arsitektur komputer yang handal sangat diperlukan
untuk mengatasi persoalan seperti ini.
1
2
5
100
10
20
50
200
1980 1985 19951990
Dynamic RAM density
Processor speed
Dynamic RAM speed
Imp
rov
em
en
t F
ac
tor
Gambar 2.1 Evolusi DRAM dan Karakteristik Prosesor
Terdapat beberapa metode untuk mengatasi masalah
perbedaan kecepatan operasi antara mikroprosesor dengan
komponen lainnya, di antaranya:
Meningkatkan jumlah bit yang dicari pada suatu saat
tertentu dengan melebarkan DRAM dan melebarkan lintasan
sistem bus-nya.
Mengubah interface DRAM sehingga lebih efisien dengan
menggunakan teknik cache atau pola buffer lainnya pada
keping DRAM.
41
Meningkatkan bandwidth interkoneksi prosesor dan memori
dengan penggunakan hierarki bus-bus yang lebih cepat
untuk buffering dan membuat struktur aliran data.
Bidang lain yang menjadi fokus kajian peningkatan kinerja
sistem komputer adalah penanganan perangkat-perangkat I/O.
Masalah yang terjadi hampir sama dengan memori. Teknik
penyelesaian yang digunakan umumnya adalah teknik buffering
dan caching. Target yang ingin dicapai dalam peningkatan
kinerja adalah tercapainya keseimbangan proses operasi antar
komponen-komponen penyusun komputer sehingga
menghasilkan kinerja komputer yang lebih tinggi.
B. Evolusi Pentium dan PowerPC
Evolusi komputer yang akan dijelaskan adalah kelompok
komputer Pentium Intel dan PowerPC. Alasannya, karena
komputer Pentium Intel mampu mendominasi pasaran dan secara
teknologi menggunakan rancangan CISC (Complex Instruction
Set Computers) dalam arsitekturnya. Pentium memberikan
prinsip-prinsip rancangan canggih yang hanya dapat ditemukan
pada komputer mainframe dan komputer super saja dan
merupakan contoh yang sempurna bagi rancangan CISC.
Sedangkan PowerPC merupakan kelompok komputer yang
menerapkan teknologi RISC (reduced instruction set computers).
Berikut ini adalah uraian mengenai evolusi Pentium dan
PowerPC.
1. Pentium
42
Intel telah dikategorikan sebagai pembuat mikroprosesor
nomor satu dalam beberapa dekade ini, sebuah posisi yang
kelihatannya tidak mungkin terjadi. Evolusi produk
mikroprosesornya memberikan indikator baik bagi evolusi
teknologi komputer secara umum. Berikut evolusi prosesor
keluaran Intel dari prosesor sederhana sampai prosesor
keluaran saat ini:
a. 4004, tahun 1971 munculah mikroprosesor pertama Intel
jenis ini, mikroprosesor ini digunakan pada mesin kalkulator
Busicom. Dengan penemuan ini maka terbukalah jalan
untuk memasukkan kecerdasan buatan pada benda mati.
b. 8080, keluar tahun 1972 merupakan mikroprosesor pertama
keluaran Intel dengan mesin 8 bit dan bus data ke memori
juga 8 bit. Jumlah instruksinya 66 instruksi dengan
kemampuan pengamatan 16 KB.
c. 8086, dikenalkan tahun 1974 adalah mikroprosesor 16 bit
dengan teknologi cache instruksi. Jumlah instruksi
mencapai 111 dan kemampuan pengalamatan ke memori 64
KB.
d. 80286, keluar tahun 1982 merupakan pengembangan dari
8086, kemampuan pengamatan mencapai 1 MB dengan 133
instruksi.
e. 80386, keluar tahun 1985 dengan mesin 32 bit. Sudah
mendukung sistem multitasking. Dengan mesin 32 bit-nya,
produk ini mampu menjadi terunggul pada masa itu.
43
f. 80486, dikenalkan tahun 1989. Kemajuannya pada teknologi
cache memory dan pipelining instruksi. Sudah dilengkapi
dengan math co-processor.
g. Pentium, dikenalkan tahun 1989 menggunakan teknologi
superskalar sehingga memungkinkan eksekusi instruksi
secara paralel.
h. P6, di tahun 1990 melanjutkan perkembangan organisasi
superskalar yang telah diawali oleh Pentium, yaitu dengan
penggunaan prediksi cabang yang sangat berani, analisis
aliran data dan eksekusi spekulatif.
i. P7, tahun 1993 dikenalkan beberapa teknologi berbasis
RISC ke dalam produk-produknya.
j. Pentium Pro, keluar tahun 1995. Kemajuannya pada
peningkatan organisasi superskalar untuk proses paralel,
ditemukan sistem prediksi cabang, analisis aliran data dan
sistem cache memory yang makin canggih.
k. Pentium II, keluar sekitar tahun 1997 dengan teknologi
MMX sehingga mampu menangani kebutuhan multimedia.
Mulai Pentium II telah menggunakan teknologi RISC.
l. Intel® Pentium II Xeon® Processor (1998)
Prosesor yang dibuat untuk kebutuhan pada aplikasi server.
Intel saat itu ingin memenuhi strateginya yaitu memberikan
sebuah prosesor unik untuk sebuah pasar tertentu.
m. Intel® Celeron® Processor (1999)
Prosesor Intel Celeron merupakan prosesor yang
dikeluarkan sebagai prosesor yang ditujukan untuk
44
pengguna yang tidak terlalu membutuhkan kinerja prosesor
yang lebih cepat bagi pengguna yang ingin membangun
sebuah sistem komputer dengan harga yang tidak terlalu
mahal. Prosesor Intel Celeron ini memiliki bentuk dan form
factor yang sama dengan prosesor Intel jenis Pentium, tetapi
hanya dengan instruksi-instruksi yang lebih sedikit, L2
cache-nya lebih kecil, clock speed yang lebih lambat dan
harga yang lebih murah daripada prosesor Intel jenis
Pentium. Dengan keluarnya prosesor Celeron ini maka Intel
kembali memberikan sebuah prosesor untuk sebuah pasaran
tertentu.
n. Intel® Pentium® III Processor (1999)
Prosesor Pentium III merupakan prosesor yang diberi
tambahan 70 instruksi baru yang secara dramatis
memperkaya kemampuan pencitraan tingkat tinggi, tiga
dimensi, audio streaming dan aplikasi video serta
pengenalan suara.
o. Intel® Pentium® III Xeon® Processor (1999)
Intel kembali merambah pasaran server dan workstation
dengan mengeluarkan seri Xeon tetapi jenis Pentium III
yang mempunyai 70 perintah SIMD. Keunggulan prosesor
ini adalah dapat mempercepat pengolahan informasi dari
sistem bus ke prosesor, yang juga mendongkrak performa
secara signifikan. Prosesor ini juga dirancang untuk
dipadukan dengan lain yang sejenis.
p. Intel® Pentium® 4 Processor (2000)
45
Prosesor Pentium IV merupakan produk Intel yang
kecepatan prosesnya mampu menembus kecepatan hingga
3,06 GHz. Pertama kali keluar prosesor ini berkecepatan 1,5
GHz dengan form factor pin 423, setelah itu Intel merubah
form factor prosesor Intel Pentium 4 menjadi pin 478 yang
dimulai dari prosesor Intel Pentium 4 berkecepatan 1,3 GHz
sampai yang terbaru yang saat ini mampu menembus
kecepatannya hingga 3,4 GHz.
q. Intel® Xeon® Processor (2001)
Prosesor Intel Pentium 4 Xeon merupakan prosesor Intel
Pentium 4 yang ditujukan khusus untuk berperan sebagai
computer server. Prosesor ini memiliki jumlah pin lebih
banyak dari prosesor Intel Pentium 4 serta dengan memori
L2 cache yang lebih besar pula.
r. Intel® Itanium® Processor (2001)
Itanium adalah prosesor pertama berbasis 64 bit yang
ditujukan bagi pemakaian pada server dan workstation serta
pemakai tertentu. Prosesor ini sudah dibuat dengan struktur
yang benar-benar berbeda dari sebelumnya yang didasarkan
pada desain dan teknologi Intel‟s Explicitly Parallel
Instruction Computing (EPIC).
s. Intel® Itanium® 2 Processor (2002)
Itanium 2 adalah generasi kedua dari keluarga Itanium
t. Intel® Pentium® M Processor (2003)
Chipset 855 dan Intel® PRO/WIRELESS 2100 adalah
komponen dari Intel® Centrino™. Intel Centrino dibuat
46
untuk memenuhi kebutuhan pasar akan keberadaan sebuah
komputer yang mudah dibawa kemana-mana.
u. Intel Pentium M 735/745/755 Processor (2004)
Dilengkapi dengan chipset 855 dengan fitur baru 2 MB L2
Cache 400 MHz sistem bus dan kecocokan dengan soket
prosesor dengan seri-seri Pentium M sebelumnya.
v. Intel E7520/E7320 Chipset (2004)
7320/7520 dapat digunakan untuk dual prosesor dengan
konfigurasi 800 MHz FSB, DDR2 400 memori dan PCI
Express peripheral interfaces.
w. Intel Pentium 4 Extreme Edition 3,73 GHz (2005)
Sebuah prosesor yang ditujukan untuk pasar pengguna
komputer yang menginginkan sesuatu yang lebih dari
komputernya, prosesor ini menggunakan konfigurasi 3,73
GHz frequency, 1,066 GHz FSB, EM64T, 2 MB L2 cache
dan HyperThreading.
x. Intel Pentium D 820/830/840 (2005)
Prosesor berbasis 64 bit dan disebut dual core karena
menggunakan 2 buah inti, dengan konfigurasi 1 MB L2
cache pada tiap core, 800 MHz FSB dan bisa beroperasi
pada frekuensi 2,8 GHz, 3,0 GHz dan 3,2 GHz juga
disertakan dukungan HyperThreading.
y. Intel Core 2 Quad Q6600 (2006)
Prosesor untuk tipe desktop dan digunakan pada orang yang
ingin kekuatan lebih dari komputer yang dimiliki, terdapat 2
buah core dengan konfigurasi 2,4 GHz dengan 8 MB L2
47
cache (sampai dengan 4 MB yang dapat diakses tiap core),
1,06 GHz Front-side bus dan thermal design power (TDP).
z. Intel Quad-core Xeon X3210/X3220 (2006)
Prosesor yang digunakan untuk tipe server dan memiliki 2
buah core dengan masing-masing memiliki konfigurasi 2,13
dan 2,4 GHz, berturut-turut dengan 8 MB L2 cache (dapat
mencapai 4 MB yang diakses untuk tiap core), 1,06 GHz
Front-side bus dan thermal design power (TDP).
2. PowerPC
Proyek sistem RISC diawali tahun 1975 oleh IBM pada
komputer muni seri 801. Seri pertama ini hanyalah
prototipe, seri komersialnya adalah PC RT yang dikenalkan
tahun 1986. Tahun 1990 IBM mengeluarkan generasi
berikutnya yaitu IBM RISC System/6000 yang merupakan
mesin RISC superscalar workstation. Setelah ini arsitektur
IBM lebih dikenal sebagai arsitektur POWER. IBM
menjalin kerja sama dengan Motorola menghasilkan
mikroprosesor seri 6800, kemudian Apple menggunakan
keping Motorola dalam Macintoshnya. Saat ini terdapat 6
kelompok PowerPC, yaitu:
a. 601, adalah mesin 32 bit merupakan produksi masal
arsitektur PowerPC untuk lebih dikenal masyarakat.
b. 603, merupakan komputer desktop dan komputer portabel.
Kelompok ini sama dengan seri 601 namun lebih murah
untuk keperluan efisien.
48
c. 604, seri komputer PowerPC untuk kegunaan komputer low-
end server dan komputer desktop.
d. 620, ditujukan untuk penggunaan high-end server. Mesin
dengan arsitektur 64 bit.
e. 740/750, seri dengan cache L2.
f. G4, seperti seri 750 tetapi lebih cepat dan menggunakan 8
instruksi paralel.
49
BAB 3
BUS SISTEM
3.1 Pendahuluan
Komputer tersusun atas beberapa komponen penting
seperti CPU, memori, perangkat I/O. Bus sistem adalah
penghubung bagi keseluruhan komponen komputer dalam
menjalankan tugasnya. Bus sistem menghubungkan CPU dengan
RAM dan mungkin sebuah buffer memory/ memori penyangga
(cache L2). Bus sistem merupakan pusat bus. Bus-bus lain
merupakan pencabangan dari bus ini.
Prosesor, memori utama dan perangkat I/O dapat
dinterkoneksikan dengan menggunakan bus bersama yang fungsi
utamanya adalah menyediakan jalur komunikasi untuk transfer
data. Bus tersebut menyediakan jalur yang diperlukan untuk
mendukung interrupt dan arbitrasi. Protokol bus adalah set
aturan yang mengatur kelakuan berbagai perangkat yang
terhubung ke bus yaitu kapan harus meletakkan informasi ke
dalam bus, menyatakan sinyal kontrol dan lain sebagainya.
50
Sebuah komputer memiliki beberapa bus, agar dapat
berjalan. Banyaknya bus yang terdapat dalam sistem, tergantung
dari arsitektur sistem komputer yang digunakan. Sebagai contoh,
sebuah komputer PC dengan prosesor umumnya Intel Pentium 4
memiliki bus prosesor (Front-Side Bus), bus AGP, bus PCI, bus
USB, bus ISA (yang digunakan oleh keyboard dan mouse) dan
bus-bus lainnya.
Bus disusun secara hierarki, karena setiap bus yang
memiliki kecepatan rendah akan dihubungkan dengan bus yang
memiliki kecepatan tinggi. Setiap perangkat di dalam sistem juga
dihubungkan ke salah satu bus yang ada. Sebagai contoh, kartu
grafis AGP akan dihubungkan ke bus AGP. Beberapa perangkat
lainnya (utamanya chipset atau controller) akan bertindak
sebagai jembatan antara bus-bus yang berbeda. Sebagai contoh,
sebuah controller bus SCSI dapat mengubah sebuah bus menjadi
bus SCSI, baik itu bus PCI atau bus PCI Express. Di dalam PC
lama terdapat 2 Bus yaitu:
a. Bus sistem, yang menghubungkan CPU dengan RAM
dan
b. Bus I/O, yang menghubungkan CPU dengan komponen-
komponen lain.
Pada intinya, bus sistem merupakan pusat bus.
Sesungguhnya bus sistem berhubungan dengan bus I/O, seperti
yang terlihat di Gambar 3.1. Gambar tersebut tidak tepat benar,
karena arsitektur yang sesungguhnya sangat rumit, tetapi
51
menunjukkan hal-hal yang penting, bahwa bus-bus I/O biasanya
berasal dari bus sistem.
Apa yang dilakukan bus I/O? Bus-bus I/O menghubungkan
CPU dengan semua komponen yang lain, kecuali RAM. Data
berpindah pada bus-bus I/O dari satu komponen ke komponen
yang lain dan data dari komponen-komponen lain ke CPU dan
RAM. Bus-bus I/O berbeda dari bus sistem dalam kecepatan.
Kecepatannya akan selalu lebih rendah dari kecepatan bus
sistem. Telah bertahun-tahun, bermacam-macam bus-bus I/O
telah dikembangkan.
Gambar 3.1 Bus Sistem dan Bus I/O
Pada PC modern, biasanya akan ditemukan empat bus:
Bus ISA, merupakan bus kecepatan rendah yang tua,
segera dikeluarkan
dari rancangan PC.
52
Bus PCI, merupakan bus kecepatan tinggi yang baru.
Bus USB (Universal Serial Bus), merupakan bus
kecepatan rendah yang baru.
Bus AGP yang hanya digunakan untuk kartu grafis.
Masing-masing bus memiliki spesifikasi, kecepatan berbeda
dan juga bentuk yang berbeda. Oleh karena itu, berikut rincian
spesifikasi Bus PCI dan Bus AGP.
3.2 Pengertian Bus Sistem
Bus merupakan lintasan komunikasi yang menghubungkan
dua atau lebih perangkat. Bus merupakan media transmisi yang
dapat digunakan bersama. Sejumlah perangkat yang terhubung
ke bus dan suatu sinyal yang ditransmisikan oleh salah satu
perangkat ini dapat diterima oleh salah satu perangkat yang
terhubung ke bus. Bila dua buah perangkat melakukan transmisi
dalam waktu yang bersamaan, maka sinyal-sinyal bertumpang
tindih dan menjadi rusak. Umumnya sebuah bus terdiri atas
sejumlah lintasan komunikasi atau saluran. Masing-masing
saluran dapat mentransimisikan sinyal yang menunjukkan biner 1
dan biner 0. Serangkaian digit biner dapat ditransmisikan melalui
saluran tunggal. Dengan mengumpulkannya beberapa saluran
dari sebuah bus dapat digunakan mentransmisikan digit biner
secara bersamaan (secara paralel). Misalnya sebuah satuan data 8
bit dapat ditransmisikan melalui bus 8 saluran. Menurut
fungsinya, bus diklasifikasikan menjadi 3, yaitu:
53
1. Bus Data
Saluran yang memberikan lintasan bagi perpindahan data
antara dua modul sistem. Umumnya bus data terdiri atas
8, 16, 32 saluran, jumlah saluran dikaitkan dengan lebar
bus data. Karena pada suatu saat tertentu masing-masing
saluran hanya dapat membawa 1 bit, maka jumlah
saluran menentukan jumlah bit yang dapat diindahkan
pada suatu saat. Lebar bus data merupakan faktor
penting dalam menentukan kinerja sistem secara
keseluruhan. Bila bus data lebarnya 8 bit dan setiap
instruksi panjangnya 16 bit, maka CPU harus 2 kali
mengakses modul memori dalam setiap siklus
instruksinya.
2. Bus Alamat
Digunakan untuk menandakan sumber atau tujuan data
pada bus data, misalnya CPU akan membaca sebuah
word (8, 16, 32 bit) data dari memori, maka CPU akan
menaruh alamat word yang dimaksud pada saluran
alamat. Lebar bus alamat menentukan kapasitas memori
maksimum sistem. Selain itu umumnya saluran alamat
juga digunakan untuk mengalamati port-port I/O.
3. Bus Kontrol
Digunakan untuk mengontrol akses ke saluran alamat,
penggunaan data dan saluran alamat. Karena data dan
saluran alamat digunakan bersama oleh seluruh
komponen, maka harus ada alat untuk mengontrol
54
penggunaannya. Sinyal-sinyal kontrol melakukan
transmisi baik perintah mauun informasi pewaktuan di
antara modul-modul sistem. Sinyal-sinyal pewaktuan
menunjukkan validitas data dan informasi alamat.
Umumnya, saluran kontrol meliputi :
Memory Write : menyebabkan data pada bus akan
dituliskan ke dalam lokasi alamat.
Memory Read : menyebabkan data dari lokasi
alamat ditempatkan pada bus
I/O Write : menyebabkan data pada bus dikeluarkan
ke port I/O yang beralamat.
I/O Read : menyebabkan data dari port I/O yang
beralamat ditempatkan pada bus.
Transfer ACK : menunjukkan bahwa data telah
diterima dari bus atau telah ditempatkan di bus.
Interrupt Request : menandakan bahwa sebuah
interrupt ditangguhkan.
Interrupt ACK : memberitahukan bahwa interrupt
yang ditangguhkan telah diketahui.
Clock : digunakan untuk mensinkronkan operasi-
operasi.
Reset : menginisialisasi seluruh modul.
55
3.3 Operasi Bus
Bila sebuah modul akan mengirimkan data ke modul
lainnya, maka modul itu harus melakukan dua hal :
1. memperoleh penggunaan bus dan
2. memindahkan data melalui bus.
Bila sebuah modul akan meminta data dari modul lainnya,
maka modul itu harus, pertama: memperoleh penggunaan bus
dan kedua: memindahkan sebuah request ke modul lainya
melalui saluran kontrol dan saluran alamat yang sesuai.
Kemudian modul harus menunggu modul kedua untuk
mengirimkan data. Secara fisik, sebenarnya bus sistem
merupakan sejumlah konduktor listrik paralel. Konduktor-
konduktor ini berupa kawat logam yang berakhir pada kartu atau
papan PCB. Bus melintasi seluruh komponen sistem yang
masing-masing disambungkan ke beberapa atau semua saluran
bus.
3.4 Elemen-Elemen Rancangan Bus
Walaupun terdapat bermacam-macam perbedaan
implementasi bus, hanya terdapat sedikit parameter dasar atau
elemen rancangan yang dapat dipakai untuk mengklasifikasikan
dan membedakan bus.
a. Jenis-Jenis Bus
1. Dedicated : Saluran data dan alamat terpisah.
2. Multiplexed: Alamat dan informasi data dapat
ditransmisikan melalui sejumlah saluran yang sama dengan
56
menggunakan saluran? Address Valid Control?. Pada awal
pemindahan data, alamat ditempatkan pada bus dan
Address Valid Control diaktifkan. Pada saat ini setiap
modul memiliki periode waktu tertentu untuk menalin
alamat dan menentukan apakah alamat tersebut merupakan
modul beralamat. Kemudian alamat dihapus dari bus dan
koneksi bus yang sama digunakan untuk transfer data
pembacaan atau penulisan berikutnya. Metoda penggunaan
saluran yang untuk berbagai keperluan ini dikenal sebagai
time multiplexing.
Keuntungan time multiplexing adalah hanya memerlukan
saluran sedikit sehingga menghemat ruang dan biaya.
Kerugiannya adalah diperlukan rangkaian yang lebih kompleks
dalam setiap modul, terdapat juga penurunan kinerja yang cukup
besar karena kejadian-kejadian tertentu yang menggunakan
saluran secara bersama-sama tidak dapat berfungsi secara paralel.
b. Metode Arbitrasi
Di dalam semua sistem kecuali sistem yang paling
sederhana, lebih dari satu modul diperlukan untuk mengontrol
bus. Misalnya I/O diperlukan untuk membaca atau menulis
secara langsung ke memori, dengan tanpa mengirimkan data ke
CPU. Karena pada satu sat hanya sebuah unit yang berhasil
mentransmisikan data melalui bus, maka diperlukan beberapa
metode arbitrasi. Metode arbitrasi dapat digolongkan sebagai
metode tersentralisasi dan metode terdistribusi. Pada metode
tersentralisasi, sebuah perangkat hardware yang dikenal sebagai
57
pengontrol bus atau arbitrer bertanggung jawab atas alokasi
waktu pada bus. Mungkin perangkat berbentuk modul atau
bagian CPU yang terpisah. Pada metode terdistribusi, tidak
terdapat pengontrol sentral, setiap modul terdiri atas acces
control logic dan modul-modul bekerja sama untuk memakai bus
bersama-sama.
c. Timing
Timing berkaitan dengan cara terjadiya event
dikoordinasikan pada bus. Dengan timing yang sinkron,
terjadinya event pada bus ditentukan oleh sebuah clock. Bus
meliputi sebuah saluran, waktu tempat timing mentransmisikan
rangkaian bilangan 1 dan 0 dalam durasi yang sama. Sebuah
transmisi 1-0 dikenal sebagai siklus waktu atau siklus bus dan
menentukan besarnya slot waktu. Semua perangkat lainnya pada
bus dapat membaca saluran waktu dan semua event dimulai pada
awal siklus waktu.
Timing Sinkron
Sinyal bus lainnya dapat berubah pada ujung muka sinyal
waktu (dengan sedikit reaksi delay). Sebagian besar event
mengisi suatu siklus waktu. CPU mengeluarkan sinyal baca
dan menempatkan alamat memori pada bus alamat, CPU
mengeluarkan sinyal awal untuk menandai keberadaan
alamat dan informasi kontrol pada bus. Modul memori
mengetahui alamat itu dan setelah delay 1 siklus
menempatkan data dan sinyal balasan pada bus.
Timing Asinkron
58
Terjadinya event pada bus mengikuti dan tergantung pada
event sebelumnya. CPU menempatkan alamat dan membaca
sinyal bus. Setelah berhenti untuk memberi kesempatan,
sinyal ini menjadi stabil, CPU mengeluarkan sinyal MSYN
(master syn) yang menandakan keberadaan alamat yang valid
dan sinyal kontrol. Modul memori memberikan respon
dengan data dan sinyal SSYN (slave syn) yang menunjukkan
respon. Timing sinkron lebih mudah untuk
diimplementasikan dan dites. Namun timing ini kurang
fleksibel dibandingkan dengan timing asinkron. Karena
semua perangkat pada bus sinkron terkait dengan kelajuan
pewaktu yang tetap, maka sistem tidak dapat memanfaatkan
peningkatan kinerja. Dengan menggunakan timing asinkron,
kombinasi antara perangkat yang lamban dan cepat, baik
dengan menggunakan teknologi lama maupun baru, dapat
menggunakan bus secara bersama-sama.
d. Lebar Bus
Lebar bus dapat mempengaruhi kinerja sistem, semakin
lebar bus data, semakin besar bit yang dapat ditransferkan pada
suatu saat. Lebar bus alamat mempunyai pengaruh pada
kapasitas sistem: semakin lebar bus alamat, semakin besar range
lokasi yang dapat direferensi.
e. Jenis Transfer Data
Suatu bus mendukung bermacam-macam jenis transfer
data. Semua bus mendukung transfer baca (master ke slave) dan
transfer tulis (slave ke master). Pada multiplexed addres/data
59
bus, pertama-tama bus digunakan untuk mengspesifikasikan
alamat dan kemudian melakukan transfer data. Untuk operasi
baca, biasanya terdapat waktu tunggu pada saat data sedang
diambil dari slave untuk ditaruh pada bus. Baik bagi operasi baca
maupun tulis, mungkin juga terdapat delay bila hal itu diperlukan
untuk melalui arbitrasi agar mendapatkan kontrol bus untuk sisa
operasi (yaitu mengambil alih bus untuk melakukan request baca
atau tulis, kemudian mengambil alih lagi bus untuk membentuk
operasi baca atau tulis).
Pada alamat dedicated dan bus-bus data, alamat ditaruh
pada bus alamat dan tetap berada di sana selama data tersimpan
pada bus data. Bagi operasi tulis, master menaruh data pada bus
data begitu alamat telah stabil dan slave telah mempunyai
kesempatan untuk mengetahui alamatnya. Bagi operasi baca,
slave menaruh data pada bus data begitu slave mengetahui
alamatnya dan telah mengambil data.
Terdapat pula beberapa kombinasi operasi yang diizinkan
oleh sebagian bus. Suatu operasi baca-modifikasi-tulis
merupakan sebuah operasi baca yang diikuti oleh operasi tulis ke
alamat yang sama. Alamat hanya di-broadcast satu kali saja
hanya pada awal operasi. Biasanya urutan operasi secara
keseluruhan tidak dapat dibagi-bagi untuk menjaga setiap akses
ke elemen data oleh master-master bus lainnya. Tujuan utama
dari kemampuan ini adalah untuk melindungi sumber daya
memori yang dapat dipakai bersama di dalam sistem
multiprogramming.
60
Operasi read-after-write merupakan operasi yang tidak
dapat dibagi-bagi yang berisi operasi tulis yang diikuti oleh
operasi baca dari alamat yang sama. Operasi baca dibentuk
tujuan pemeriksaan.
Sebagian bus sistem juga mendukung transfer data blok.
Dalam hal ini, sebuah siklus alamat diikuti oleh n siklus data.
Butir data pertama ditransfer ke alamat tertentu atau ditransfer
dari alamat tertentu; butir-butir data lainnya ditransfer ke alamat-
alamat berikutnya atau ditransfer dari alamat-alamat berikutnya.
3.5 Beberapa Bus Utama dalam Sistem Komputer
Modern
1. Bus prosesor
Bus ini merupakan bus tercepat dalam sistem dan menjadi
bus inti dalam chipset dan motherboard. Bus ini utamanya
digunakan oleh prosesor untuk meneruskan informasi dari
prosesor ke cache atau memori utama ke chipset controller
memory (Northbridge, MCH atau SPP). Bus ini juga
terbagi atas beberapa macam, yakni Front-Side Bus,
HyperTransport bus dan beberapa bus lainnya. Sistem
komputer selain Intel x86 mungkin memiliki bus-nya
sendiri-sendiri. Bus ini berjalan pada kecepatan 100 MHz,
133 MHz, 200 MHz, 266 MHz, 400 MHz, 533 MHz, 800
MHz, 1000 MHz atau 1066 MHz. Umumnya, bus ini
memiliki lebar lajur 64-bit, sehingga setiap detaknya
mampu mentransfer 8 byte.
61
2. Bus AGP (Accelerated Graphic Port)
Bus AGP adalah sebuah bus yang dikhususkan sebagai bus
pendukung kartu grafis berkinerja tinggi, menggantikan
bus ISA, bus VESA atau bus PCI yang sebelumnya
digunakan. Spesifikasi AGP pertama kali (1.0) dibuat oleh
Intel dalam seri chipset Intel 440 pada Juli tahun 1996.
Sebenarnya AGP dibuat berdasarkan bus PCI, tapi
memiliki beberapa kemampuan yang lebih baik. Selain itu,
secara fisik, logis dan secara elektronik, AGP bersifat
independen dari PCI. Tidak seperti bus PCI yang dalam
sebuah sistem bisa terdapat beberapa slot, dalam sebuah
sistem, hanya boleh terdapat satu buah slot AGP saja.
Spesifikasi AGP 1.0 bekerja dengan kecepatan 66 MHz
(AGP 1x) atau 133 MHz (AGP 2x), 32-bit dan
menggunakan pensinyalan 3,3 volt. AGP versi 2.0 dirilis
pada Mei 1998 menambahkan kecepatan hingga 266 MHz
(AGP 4x), serta tegangan yang lebih rendah, 1,5 volt. Versi
terakhir dari AGP adalah AGP 3.0 yang umumnya disebut
sebagai AGP 8x yang dirilis pada November 2000.
Spesifikasi ini mendefinisikan kecepatan hingga 533 MHz
sehingga mengizinkan throughput teoritis hingga 2.133
MB/s (dua kali lebih tinggi dibandingkan dengan AGP 4x).
Meskipun demikian, pada kenyataannya kinerja yang
ditunjukkan oleh AGP 8x tidak benar-benar dua kali lebih
tinggi dibandingkan AGP 4x, karena beberapa alasan
62
teknis. Selain empat spesifikasi AGP tersebut, ada lagi
spesifikasi AGP yang dinamakan dengan AGP Pro. Versi
1.0 dari AGP Pro diperkenalkan pada bulan Agustus 1998
lalu direvisi dengan versi 1.1a pada bulan April 1999. AGP
Pro memiliki slot yang lebih panjang dibandingkan dengan
slot AGP biasa, dengan tambahan pada daya yang dapat
didukungnya, yakni hingga 110 watt, lebih besar 25 watt
dari AGP biasa yang hanya 85 watt. Jika dilihat dari daya
yang dapat disuplainya, terlihat dengan jelas bahwa AGP
Pro dapat digunakan untuk mendukung kartu grafis
berkinerja tinggi yang ditujukan untuk workstation
graphics, semacam ATi FireGL atau NVIDIA Quadro.
Meskipun demikian, AGP Pro tidaklah kompatibel dengan
AGP biasa: kartu grafis AGP 4x biasa memang dapat
dimasukkan ke dalam slot AGP Pro, tapi tidak sebaliknya.
Selain itu, karena slot AGP Pro lebih panjang, kartu grafis
AGP 1x atau AGP 2x dapat tidak benar-benar masuk ke
dalam slot sehingga dapat merusaknya. Untuk menghindari
kerusakan akibat hal ini, banyak vendor motherboard
menambahkan retensi pada bagian akhir slot tersebut: Jika
hendak menggunakan kartu grafis AGP Pro lepas retensi
tersebut. Selain faktor kinerja video yang lebih baik, alasan
mengapa Intel mendesain AGP adalah untuk mengizinkan
kartu grafis dapat mengakses memori fisik secara
langsung, yang dapat meningkatkan kinerja secara
signifikan, dengan biaya integrasi yang relatif lebih rendah.
63
AGP mengizinkan penggunaan kartu grafis yang langsung
mengakses RAM sistem, sehingga kartu grafis on-board
dapat langsung menggunakan memori fisik, tanpa harus
menambah chip memory lagi, meski harus dibarengi
dengan berkurangnya memori untuk sistem operasi. Mulai
tahun 2006, AGP telah mulai digeser oleh kartu grafis
berbasis PCI Express x16, yang dapat mentransfer data
hingga 4000 MB/s, yang hampir dua kali lebih cepat
dibandingkan dengan AGP 8x, dengan kebutuhan daya
yang lebih sedikit (voltase hanya 800 mV saja.)
3. Bus PCI (Peripherals Component Interconnect)
Bus ini berjalan pada kecepatan 33 MHz dengan lebar lajur
32-bit. Bus ini ditemukan pada hampir semua komputer PC
yang beredar, dari mulai prosesor Intel 486 karena
memang banyak kartu yang menggunakan bus ini, bahkan
hingga saat ini. Bus ini dikontrol oleh chipset pengatur
memori (Northbridge, Intel MCH) atau Southbridge (Intel
ICH atau NVIDIA nForce MCP). Bus PCI didesain untuk
menangani beberapa perangkat keras. Standar bus PCI ini
dikembangkan oleh konsorsium PCI Special Interest Group
yang dibentuk oleh Intel Corporation dan beberapa
perusahaan lainnya, pada tahun 1992. Tujuan dibentuknya
bus ini adalah untuk menggantikan Bus ISA/EISA yang
sebelumnya digunakan dalam komputer IBM PC atau
kompatibelnya. Komputer lama menggunakan slot ISA,
64
yang merupakan bus yang lamban. Sejak kemunculan-nya
sekitar tahun 1992, bus PCI masih digunakan sampai
sekarang, hingga keluar versi terbarunya yaitu PCI Express
(add-on). Spesifikasi bus PCI pertama kali dirilis pada
bulan Juni 1992, sebagai PCI vesi 1.0. Perkembangan
selanjutnya dapat dilihat pada Tabel 3.1.
Tabel 3.1 Perkembangan Bus PCI
Spesifikasi
bus PCI
Dirilis
pada Perubahan yang dilakukan
PCI 1.0 Juni 1992 Spesifikasi asli PCI, yang memiliki
lebar bus 32-bit atau 64-bit
PCI 2.0 April
1993
Spesifikasi ini mendefinisikan jenis
konektor dan papan ekspansi
PCI 2.1 Juni 1995
Operasi 66 MHz diberlakukan;
Perubahan pada latency; Adanya
fungsi transaction ordering
PCI 2.2 Januari
1999
Fitur manajemen daya diberlakukan;
Ada beberapa klarifikasi mekanika
PCI-X 1.0 September
1999
Spesifikasi PCI-X 133 MHz, sebagai
tambahan bagi versi PCI 2.2
Mini-PCI November
1999
Spesifikasi PCI 2.2 untuk
motherboard dengan form factor yang
65
kecil (Micro-ATX)
PCI 2.3 Maret
2002
Pensinyalan 3,3 volt; penggunaan
kartu yang bersifat low-profile
PCI-X 2.0 Juli 2002
Modus kerja 266 MHz dan 533 MHz;
dukungan terhadap pembagian bus
64-bit menjadi segmen-segmen
berukuran 16-bit atau 32-bit;
Pensinyalan 3,3 atau 1,5 volt.
PCI Express
1.0 Juli 2002
PCI dengan cara transmisi serial,
dengan kecepatan 2500 Mb/s tiap
jalur transmisi tiap arah,
menggunakan pensinyalan 0,8 volt,
sehingga menghasilkan bandwidth
kira-kira 250 MB/s tiap jalurnya;
didesain untuk menggantikan PCI 2.x
dalam sistem PC.
Bus PCI Express (Peripherals Component Interconnect
Express)
Bus PCI Express (PCI-E /PCIex) adalah slot ekspansi modul
didesain untuk menggantikan PCI bus yang lama, sekarang
banyak motherboard mengadopsi PCI Express dikarenakan PCI
Express memiliki transfer data yang lebih cepat, terutama untuk
keperluan grafis 3D. Slot ini memiliki kecepatan 1x, 2x, 4x, 8x,
66
16x and 32x, tidak seperti PCI biasa dengan sistim komunikasi
paralel. PCI Express menggunakan sistem serial dan mampu
berkomunikasi 2 kali (tulis/baca) dalam satu rute clock.
Tabel 3.2 Kecepatan Lebar Data Maksimum PCI
Kecepatan Max
PCI-ex 1x 250 MB/s
PCI-ex 2x 500 MB/s
PCI-ex 4x 1000 MB/s
PCI-ex 8x 2000 MB/s
PCI-ex 16x 4000 MB/s
PCI-ex 32x 8000 MB/s
Dalam perjalanan pengembangannya PCI Express (PCIe)
sebelumnya dinamai HSI (High Speed InterConnect) dan
mengalami pergantian nama menjadi 3GIO (3rd Generation I/O).
Akhirnya PCI SIG (PCI Special Interest Group) menamainya
menjadi PCI Express. PCIe masih dalam pengembangan yang
berkelanjutan. Versi yang banyak beredar adalah PCIe 1.0, PCI-
SIG sudah mengumumkan beredarnya PCIe 2.0 (Januari, 2007)
dan PCIe 3.0 (Augustus, 2007).
4. Bus ISA (Industry Standard Architecture)
Bus ISA adalah sebuah arsitektur bus dengan bus data
selebar 8-bit yang diperkenalkan dalam IBM PC 5150 pada
67
tanggal 12 Agustus 1981. Bus ISA diperbarui dengan
menambahkan bus data selebar menjadi 16-bit pada IBM
PC/AT pada tahun 1984, sehingga jenis bus ISA yang
beredar pun terbagi menjadi dua bagian, yakni ISA 16-bit
dan ISA 8-bit. ISA merupakan bus dasar dan paling umum
digunakan dalam komputer IBM PC hingga tahun 1995,
sebelum akhirnya digantikan oleh bus PCI yang
diluncurkan pada tahun 1992.
a. ISA 8-bit
Bus ISA 8-bit merupakan varian dari bus ISA, dengan bus
data selebar 8-bit, yang digunakan dalam IBM PC 5150
(model PC awal). Bus ini telah ditinggalkan pada sistem-
sistem modern ke atas tapi sistem-sistem Intel 286/386
masih memilikinya. Kecepatan bus ini adalah 4,77 MHz
(sama seperti halnya prosesor Intel 8088 dalam IBM PC),
sebelum ditingkatkan menjadi 8,33 MHz pada IBM
PC/AT. Karena memiliki bandwidth 8-bit, maka transfer
rate maksimum yang dimilikinya hanyalah 4,77 MB/s atau
8,33 MB/s. Meskipun memiliki transfer rate yang lamban,
bus ini termasuk mencukupi kebutuhan saat itu, karena
bus-bus I/O semacam serial port, parallel port, controller
floppy disk, kontroler keyboard dan lainnya sangat lambat.
Slot ini memiliki 62 konektor. Meski desainnya sederhana,
IBM tidak langsung mempublikasikan spesifikasinya saat
diluncurkan tahun 1981, tapi harus menunggu hingga tahun
68
1987, sehingga para manufaktur perangkat pendukung
agak kerepotan membuat perangkat berbasis ISA 8-bit.
b. ISA 16-bit
Bus ISA 16-bit adalah sebuah bus ISA yang memiliki
bandwidth 16-bit, sehingga mengizinkan transfer rate dua
kali lebih cepat dibandingkan dengan ISA 8-bit pada
kecepatan yang sama. Bus ini diperkenalkan pada tahun
1984, ketika IBM merilis IBM PC/AT dengan
mikroprosesor Intel 80286 di dalamnya. Mengapa IBM
meningkatkan ISA menjadi 16 bit adalah karena Intel
80286 memiliki bus data yang memiliki lebar 16-bit,
sehingga komunikasi antara prosesor, memori dan
motherboard harus dilakukan dalam ordinal 16-bit. Meski
prosesor ini dapat diinstalasikan di atas motherboard yang
memiliki bus I/O dengan bandwidth 8-bit, hal ini dapat
menyababkan terjadinya bottleneck pada bus sistem yang
bersangkutan. Daripada membuat bus I/O yang baru, IBM
ternyata hanya merombak sedikit saja dari desain ISA 8-bit
yang lama, yakni dengan menambahkan konektor ekstensi
16-bit (yang menambahkan 36 konektor, sehingga menjadi
98 konektor), yang pertama kali diluncurkan pada Agustus
tahun 1984, tahun yang sama saat IBM PC/AT
diluncurkan. Ini juga menjadi sebab mengapa ISA 16-bit
disebut sebagai AT-bus. Hal ini memang membuat
interferensi dengan beberapa kartu ISA 8-bit, sehingga
69
IBM pun meninggalkan desain ini, ke sebuah desain di
mana dua slot tersebut digabung menjadi satu slot.
5. Bus EISA (Extended Industry Standard Architecute)
Bus EISA adalah sebuah bus I/O yang diperkenalkan pada
September 1988 sebagai respons dari peluncuran bus MCA
oleh IBM, mengingat IBM hendak "memonopoli" bus
MCA dengan mengharuskan pihak lain membayar royalti
untuk mendapatkan lisensi MCA. Standar ini
dikembangkan oleh beberapa vendor IBM PC Compatible,
selain IBM, meskipun yang banyak menyumbang adalah
Compaq Computer Corporation. Compaq jugalah yang
membentuk EISA Committee, sebuah organisasi nonprofit
yang didesain secara spesifik untuk mengatur
pengembangan bus EISA. Selain Compaq, ada beberapa
perusahaan lain yang mengembangkan EISA yang jika
diurutkan, maka kumpulan perusahaan dapat disebut
sebagai WATCHZONE:
Wyse
AT&T
Tandy Corporation
Compaq Computer Corporation
Hewlett-Packard
Zenith
Olivetti
NEC
Epson
70
Meski menawarkan pengembangan yang signifikan jika
dibandingkan dengan ISA 16-bit, hanya beberapa kartu
berbasis EISA yang beredar di pasaran (atau yang
dikembangkan). Itu pun hanya berupa kartu pengontrol
larik hard disk (SCSI/RAID) dan kartu jaringan server.
Bus EISA pada dasarnya adalah versi 32-bit dari bus ISA
yang biasa. Tidak seperti MCA dari IBM yang benar-benar
baru (arsitektur serta desain slot-nya), pengguna masih
dapat menggunakan kartu ISA 8-bit atau 16-bit yang lama
ke dalam slot EISA, sehingga hal ini memiliki nilai
tambah: kompatibilitas ke belakang (backward
compatibility). Seperti halnya bus MCA, EISA juga
mengizinkan konfigurasi kartu EISA secara otomatis
dengan menggunakan perangkat lunak, sehingga bisa
dibilang EISA dan MCA adalah pelopor "plug-and-play",
meski masih primitif. Bus EISA menambahkan 90
konektor baru (55 konektor digunakan untuk sinyal
sedangkan 35 sisanya digunakan sebagai ground) tanpa
membuat slot ISA 16-bit berubah. Sekilas, slot EISA 32-bit
sangat mirip dengan slot ISA 16-bit. Tapi, berbeda dari
kartu ISA yang hanya memiliki satu baris kontak, kartu
EISA memiliki dua baris kontak yang bertumpuk. Baris
pertama adalah baris yang digunakan oleh ISA 16-bit,
sementara baris kedua menambahkan bandwidth menjadi
32-bit. Karenanya, kartu ISA yang lama masih dapat
bertahan meskipun berganti motherboard. Meski
71
kompatibilitas ini merupakan sesuatu yang bagus, ternyata
industri kurang begitu meresponsnya. Akhirnya, fitur-fitur
EISA pun ditangguhkan untuk mengembangkan bus I/O
yang baru, yang disebut dengan VESA Local Bus (VL-
Bus). Bus EISA dapat menangani data hingga 32 bit pada
kecepatan 8,33 MHz, sehingga transfer rate maksimum
yang dapat dicapainya adalah 33 MB/s. Timing (latency)
EISA juga berpengaruh pada kecepatan transfer data pada
kartu EISA. Ukuran dimensi fisik slot-nya (panjang, lebar,
tinggi) adalah 333,5 milimeter, 12,7 milimeter dan 127
milimeter.
6. Bus MCA (Micro Channel Architecture)
Bus MCA adalah sebuah bus I/O ber-bandwidth 32-bit
yang digunakan dalam beberapa komputer mikro. Bus ini
dibuat oleh IBM yang ditujukan untuk menggantikan bus
ISA 8-bit/16-bit yang lambat, selain tentunya untuk
menghadapi masalah bottleneck yang terjadi akibat
kecepatan prosesor yang semakin tinggi tapi tidak
diimbangi dengan kecepatan bus I/O. Komputer yang
menggunakan bus ini pun hanya sedikit, mengingat
memang IBM mewajibkan para vendor untuk membayar
royalti kepada IBM untuk mendapatkan lisensi bus MCA.
Karena hal ini banyak vendor yang kurang setuju dengan
IBM membuat "partai oposisi", dengan membuat bus
EISA. Kebutuhan terhadap sebuah bus I/O yang lebih
cepat datang akibat bus ISA mengalami bottleneck.
72
Prosesor Intel 80386DX merupakan prosesor 32-bit yang
dapat mentransfer data hingga 32 bit dalam satu waktunya,
tapi ISA hanya dapat mentransfer 16 bit saja. Daripada
menambahkan pin lagi terhadap bus ISA, IBM
memutuskan untuk membuat sebuah bus baru, yang
kemudian menjadi bus MCA. Berbeda dengan EISA yang
mendukung konsep backward compatibility, bus ini adalah
benar-benar baru, yang sama sekali tidak kompatibel
dengan ISA 8-bit/16-bit. Sistem MCA juga menawarkan
perubahan lainnya: pengguna dapat menancapkan kartu
MCA ke dalam slot-nya tanpa harus mengubah-ubah
setting jumper untuk menentukan sumber daya yang
hendak digunakan (IRQ Channel, DMA Channel atau
memory base address). Fitur ini mirip dengan apa yang
kita kenal sekarang sebagai fitur plug-and-play, meski
masih terkesan primitif. Karenanya, kartu MCA tidak
memiliki jumper atau DIP Switch untuk mengatur sumber
daya, tapi menawarkan perangkat lunak yang dapat
mengaturnya. Umumnya, MCA memiliki dua jenis disket
untuk konfigurasi perangkat keras: Option Disk dan
Reference Disk. Reference Disk merupakan disket yang
datang sistem komputer yang mengintegrasikan bus MCA,
sementara Option Disk datang dengan kartu MCA yang
bersangkutan. Setelah kartu dipasang, pengguna tinggal
menginstalasikan berkas-berkas dari Option disk ke dalam
Reference Disk, setelah itu kartu pun akan berjalan.
73
Reference Disk mengandung beberapa program dan BIOS
yang dibutuhkan untuk mengatur sistem MCA dan sistem
tidak dapat dikonfigurasikan tanpanya. MCA berjalan
dalam kecepatan 5 MHz, pada bandwidth 32-bit, sehingga
dapat mentransfer data hingga 20 MB/s. Selain versi 32-bit
biasa, IBM juga membuat beberapa variasi bus MCA
(Tabel 3.3).
Tabel 3.3 Variasi Bus MCA
Nama Bus Kecepatan Bandwidth Transfer rate
MCA-16 5 MHz 16 bit 10 MB/s
MCA-32 5 MHz 32 bit 20 MB/s
MCA-16
Streaming 10 MHz 16 bit 20 MB/s
MCA-32
Streaming 10 MHz 32 bit 40 MB/s
MCA-64
Streaming 10 MHz/ 20 MHz 64 bit
80 MB/s
atau 160
MB/s
7. Bus SCSI (Small Computer System Interface)
Bus SCSI adalah sebuah antarmuka bus berkinerja tinggi
yang didefinisikan oleh panitia ANSI X3T9.2 (American
National Standarts Institute). Antarmuka ini digunakan
74
untuk menangani perangkat input/output atau perangkat
media penyimpanan. Perangkat yang umum menggunakan
SCSI adalah hard disk, CD-ROM, scanner atau printer.
75
BAB 4
MEMORI INTERNAL
4.1 Pengertian Memori
Perangkat penyimpan (memory device) atau sering disebut
memori saja merupakan perangkat yang digunakan untuk
melakukan penyimpanan data dalam komputer.
Seringkali terjadi salah pengertian atau salah persepsi pada
saat membahas tentang memori. Pengertian beberapa orang
bahwa memori adalah „komponen‟ yang berbentuk segi empat
dengan beberapa pin di bawahnya. Komponen tersebut
dinamakan memory module. Padahal pengertian sebenarnya
memori itu adalah suatu penamaan konsep yang bisa menyimpan
data dan program. Register adalah jenis memori yang tercepat,
terkecil, dan termahal yang merupakan memori internal bagi
prosesor.
Memori adalah bagian dari komputer tempat program-program
dan data-data disimpan.
76
Memori utama merupakan sistem internal memory dari
sebuah komputer. Setiap lokasi di dalam memori utama memiliki
alamat yang unik. Cache adalah perangkat untuk pergerakan data
antara memori utama dan register prosesor untuk meningkatkan
kinerja. Ketiga bentuk memori tersebut bersifat volatile dan
memakai teknologi semikonduktor. Magnetic disk dan Magnetic
tape adalah external memory dan bersifat non-volatile.
Berdasarkan letaknya memori utama komputer dibedakan
menjadi 2 jenis yaitu memori yang letaknya di dalam (internal
memory) dan memori yang letaknya di luar (external memory).
Sedangkan berdasarkan berdasarkan kekekalannya penyimpanan
dibedakan menjadi penyimpanan sementara dan penyimpanan
tetap. Namun, sebelum membahas memori internal, terlebih
dahulu dijelaskan mengenai karakteristik sistem memori secara
umum dan tipe fisik dan karakteristik memori.
4.2 Karakteristik Sistem Memori Secara Umum
Adapun karakteristik sistem memori sebagai berikut:
1. Lokasi
CPU
Internal (main)
External
(secondary)
2. Kapasitas
Ukuran word
5. Kinerja
Access time
Cycle time
Transfer rate
6. Tipe Fisik
Semikonduktor
Permukaan magnetik
77
Banyaknya word
3. Satuan Transfer
Word
Block
4. Metode Akses
Sequential access
Direct access
Random access
Associative access
7. Karakteristik Fisik
Volatile/non-volatile
Erasable/non-erasable
8. Organisasi
Catatan:
Bagi pengguna dua karakteristik
penting memori adalah
Kapasitas,
Kinerja.
4.3 Pengertian Memori Internal
Memori internal adalah memori yang letaknya ada pada
perangkat motherboard. Data yang akan diproses ataupun hasil
pemrosesan komputer disimpan di dalam memori internal. Selain
itu, internal memori juga digunakan untuk menyimpan program
yang digunakan untuk memproses data. Dengan demikian
kapasitas memori internal harus cukup besar untuk menampung
semuanya. Setiap data yang akan disimpan akan ditempatkan
didalam alamat atau address tertentu, sehingga komputer dengan
cepat dapat menemukan data yang dibutuhkan. Berikut
penjelasan mengenai klarifikasi memori internal, lokasi,
kapasitas dan sebagainya.
78
a. Klasifikasi Memori Internal
Memori Internal terdiri atas Read Only Memory (ROM)
dan Random Access Memory (RAM). Memori internal dapat
diakses langsung oleh prosesor register yang terdapat di dalam
prosesor, cache memori dan memori utama berada di luar
prosesor. Dengan demikian, pengertian memory internal
sesungguhnya itu dapat berupa:
First-Level (L1) Cache
Second-Level (L2) Cache
Memory Module
Penjelasan dari masing- masing pengertian adalah sebagai
berikut:
a. First Level (L1) Cache
Memori yang bernama L1 Cache adalah memori yang
terletak paling dekat dengan prosessor (lebih spesifik lagi
dekat dengan blok CU (Control Unit)). Penempatan
cache di prosessor dikembangkan sejak PC i486. Memori
di tingkat ini memiliki kapasitas yang paling kecil (hanya
16 KB), tetapi memiliki kecepatan akses dalam hitungan
nanodetik (sepermilyar detik). Data yang berada di
memori ini adalah data yang paling penting dan paling
sering diakses. Biasanya data di sini adalah data yang
telah diatur melalui OS (Operating system) menjadi
prioritas tertinggi (high priority).
b. Second-Level (L2) Cache
79
Memori L2 Cache ini terletak di motherboard (lebih
spesifik lagi: modul COAST: Cache On a STick. Bentuk
khusus dari L2 yang mirip seperti memory module yang
dapat diganti-ganti tergantung motherboard-nya). Akan
tetapi ada juga yang terintegrasi langsung dengan
motherboard atau juga ada yang terintegrasi dengan
processor module. Di L2 Cache ini, kapasitasnya lebih
besar dari pada L1 Cache. Ukurannya berkisar antara
256 KB – 2 MB. Biasanya L2 Cache yang lebih besar
diperlukan di motherboard untuk server. Kecepatan
akses sekitar 10 ns.
c. Memory Module
Memory module ini memiliki kapasitas yang berkisar
antara 4 – 512 MB. Kecepatan aksesnya ada yang
berbeda-beda. Ada yang berkecepatan 80 ns, 60 ns, 66
MHz (=15 ns), 100 MHz (=10 ns) dan sekarang ini telah
dikembangkan PC133 Mhz (=7,5 ns). Akan tetapi
pengelompokan dari memori internal juga terbagi atas:
RAM (Random Access Memory) dan
ROM (Read Only Memory)
4.4 Karakter Memori Internal
a. Lokasi
Berada di luar CPU tetapi bersifat internal terhadap
sistem komputer,
80
Diperlukan oleh CPU untuk proses eksekusi (operasi)
program, sehingga dapat diakses secara langsung oleh
prosesor (CPU) tanpa modul perantara,
Memori internal sering juga disebut sebagai memori
primer atau memori utama.
Memori internal biasanya menggunakan media RAM
b. Kapasitas Memori
Kapasitas memori internal biasanya dinyatakan dalam
bentuk byte (1 byte = 8 bit) atau word. Panjang word
umum adalah 8, 16 dan 32 bit.
c. Satuan Transfer
Satuan transfer sama dengan jumlah saluran data yang
masuk ke dan keluar dari modul memori. Bagi memori
internal (memori utama), satuan transfer merupakan
jumlah bit yang dibaca atau yang dituliskan ke dalam
memori pada suatu saat.
Word
Ukuran word biasanya sama dengan jumlah bit yang
digunakan untuk representasi bilangan dan panjang
instruksi, kecuali CRAY-1 dan VAX.
CRAY-1 memiliki panjang word 64 bit, memakai
representasi integer 24 bit.
VAX memiliki panjang instruksi yang beragam,
ukuran word-nya adalah 32 bit.
Addressable Unit
81
Pada sejumlah sistem, addressable unit adalah word.
Namun terdapat sistem yang mengizinkan pengalamatan
pada tingkatan byte. Pada semua kasus, hubungan antara
panjang A suatu alamat dan jumlah N addressable unit
adalah 2A
= N.
d. Metode Akses Memori
Terdapat empat jenis pengaksesan satuan data, sebagai
berikut :
Sequential Access
Direct Access
Random Access
Associative Access
Sequential Access
Memori diorganisasikan menjadi unit-unit data, yang
disebut record.
Akses dibuat dalam bentuk urutan linier yang spesifik.
Informasi pengalamatan dipakai untuk memisahkan
record.
Record dan untuk membantu proses pencarian.
Mekanisme baca/tulis digunakan secara bersama (shared
read/write mechanism), dengan cara berjalan menuju
lokasi yang diinginkan untuk mengeluarkan record.
Waktu access record sangat bervariasi.
Contoh sequential access adalah akses pada pita
magnetik.
82
4.5 Kinerja Memori
Ada tiga buah parameter untuk kinerja sistem memori,
yaitu:
Direct Access
Seperti sequential access, direct access juga menggunakan
shared read/write mechanism, tetapi setiap blok dan record
memiliki alamat yang unik berdasarkan lokasi fisik.
Akses dilakukan secara langsung terhadap kisaran umum
(general vicinity) untuk mencapai lokasi akhir.
Waktu aksesnya bervariasi.
Contoh direct access adalah akses pada disk.
Random Access
Setiap lokasi dapat dipilih secara random dan diakses serta
dialamati secara langsung.
Waktu untuk mengakses lokasi tertentu tidak tergantung
pada urutan akses sebelumnya dan bersifat konstan.
Contoh random access adalah sistem memori utama.
Associative Access
Setiap word dapat dicari berdasarkan pada isinya dan bukan
berdasarkan alamatnya.
Seperti pada RAM, setiap lokasi memiliki mekanisme
pengalamatannya sendiri.
Waktu pencariannya tidak bergantung secara konstan
terhadap lokasi atau pola access sebelumnya.
Contoh associative access adalah memori cache.
83
Waktu Akses (Access Time)
Bagi RAM, waktu akses adalah waktu yang
dibutuhkan untuk melakukan operasi baca atau tulis.
Bagi non RAM, waktu akses adalah waktu yang
dibutuhkan untuk melakukan mekanisme baca tulis
pada lokasi tertentu.
Waktu Siklus (Cycle Time)
Waktu siklus adalah waktu akses ditambah dengan waktu
transien hingga sinyal hilang dari saluran sinyal atau untuk
menghasilkan kembali data bila data ini dibaca secara
destruktif.
Laju Pemindahan (Transfer Rate)
Transfer rate adalah kecepatan pemindahan data ke
unit memori atau ditransfer dari unit memori.
Bagi RAM, transfer rate sama dengan 1/(waktu
siklus).
Bagi non-RAM, berlaku persamaan sbb.:
R
NTT AN
(4-1)
TN = Waktu rata-rata untuk membaca atau menulis
sejumlah N bit.
TA = Waktu akses rata-rata
N = Jumlah bit
R = Kecepatan transfer, dalam bit per detik (bps)
84
4.6 Tipe Fisik Memori
Ada dua tipe fisik memori, yaitu:
Memori semikonduktor, memori ini memakai
teknologi LSI atau VLSI (Very Large Scale
Integration).
Memori ini banyak digunakan untuk memori internal
misalnya RAM.
Memori permukaan magnetik, memori ini banyak
digunakan untuk memori eksternal yaitu untuk disk
atau pita magnetik.
a. Karakter Fisik
Ada dua kriteria yang mencerminkan karakteristik fisik
memori, yaitu:
o Volatile dan Non-volatile
Pada memori volatile, informasi akan rusak secara
alami atau hilang bila daya listriknya dimatikan.
Pada memori non-volatile, sekali informasi
direkam akan tetap berada di sana tanpa
mengalami kerusakan sebelum dilakukan
perubahan. Pada memori ini daya listrik tidak
diperlukan untuk mempertahankan informasi
tersebut.
Memori permukaan magnetik adalah non volatile.
Memori semikonduktor dapat berupa volatile atau
non volatile.
85
o Erasable dan Non-erasable
Erasable artinya isi memori dapat dihapus dan
diganti dengan informasi lain.
Memori semikonduktor yang tidak terhapuskan
dan non volatile adalah ROM.
b. Organisasi
Adapun maksud dari organisasi adalah pengaturan bit
dalam menyusun word secara fisik.
o Hierarki
Tiga pertanyaan dalam rancangan memori, yaitu :
- Berapa banyak kapasitas?
- Berapa cepat waktu akses?
- Berapa mahal harganya?
Setiap spektrum teknologi mempunyai hubungan sebagai
berikut:
Semakin kecil waktu akses, semakin besar harga per bit.
Semakin besar kapasitas, semakin kecil harga per bit.
Semakin besar kapasitas, semakin besar waktu akses.
Untuk mendapatkan kinerja terbaik, memori harus mampu
mengikuti CPU. Artinya apabila CPU sedang
mengeksekusi instruksi, kita tidak perlu menghentikan
CPU untuk menunggu datangnya instruksi atau operand.
Untuk mendapatkan kinerja terbaik, memori menjadi
mahal, berkasitas relatif rendah dan waktu akses yang
cepat. Untuk memperoleh kinerja yang optimal, perlu
86
kombinasi teknologi komponen memori. Dari kombinasi
ini dapat disusun hierarki memori sebagai berikut.
Gambar 4.1 Hierarki Memori
Semakin menurun hierarki, maka hal-hal berikut akan terjadi:
a) Penurunan harga per bit
b) Peningkatan kapasitas
c) Peningkatan waktu akses
d) Penurunan frekuensi akses memori oleh CPU.
Kunci keberhasilan organisasi adalah penurunan frekuensi
akses memori oleh CPU.
Bila memori dapat diorganisasikan dengan penurunan harga
per bit melalui peningkatan waktu akses, dan bila data dan
instruksi dapat didistribusikan melalui memori ini dengan
penurunan frekuensi akses memori oleh CPU, maka pola ini
akan mengurangi biaya secar keseluruhan dengan tingkatan
kinerja tertentu.
Register
s Cache
Main Memory
Magnetic Disk
Magnetic Tape
87
Penjelasan:
Register* adalah jenis memori yang tercepat, terkecil, dan
termahal yang merupakan memori internal bagi prosesor.
Memori utama* merupakan sistem memori internal dari
sebuah komputer. Setiap lokasi di dalam memori utama
memiliki alamat yang unik.
Cache* adalah perangkat untuk pergerakan data antara
memori utama dan register prosesor untuk meningkatkan
kinerja. (*Ketiga bentuk memori tersebut bersifat volatile
dan memakai teknologi semikonduktor)
Magnetic disk dan Magnetic tape adalah external memory
dan bersifat non-volatile.
o Memori Semikonduktor
Ada beberapa memori semikonduktor, yaitu:
1. RAM: RAM statik (SRAM) dan RAM dinamik
(DRAM).
2. ROM: ROM, Programmable ROM (PROM), Erasable
PROM (EPROM), Electrically EPROM (EEPROM),
Flash Memory.
Random Access Memory (RAM)
Kelompok memori yang diberi nama Random Access Memory
ini memiliki karakteristik yang sesuai dengan namanya. Dalam
pengaksesan data yang tersimpan dalam memori dilakukan
dengan cara acak (random) bukan dengan cara terurut
88
(sequential) seperti pada streamer. Hal ini berarti untuk
mengakses elemen memori yang terletak dimanapun di dalam
modul ini, akan diakses dalam waktu yang sama. Secara singkat
sifat-sifat RAM dapat dijabarkan sebagai berikut:
Baca dan tulis data dari dan ke memori dapat dilakukan
dengan mudah dan cepat.
Bersifat volatile
Perlu catu daya listrik.
RAM Dinamik (DRAM)
Disusun oleh sel-sel yang menyimpan data sebagai muatan
listrik pada kapasitor. Ada dan tidak ada muatan listrik pada
kapasitor dinyatakan sebagai bilangan biner 1 dan 0. Perlu
pengisian muatan listrik secara periodik untuk memelihara
penyimapanan data.
Secara internal, setiap sel yang menyimpan 1 bit data
memiliki 1 buah transistor dan 1 buah kondensator. Kondensator
ini yang menjaga tegangan agar tetap mengaliri transistor
sehingga tetap dapat menyimpan data. Oleh karena penjagaan
arus itu harus dilakukan setiap beberapa saat (yang disebut
refreshing) maka proses ini memakan waktu yang lebih banyak
daripada kinerja Static RAM. Seperti yang telah dikemukakan
sebelumnya, modul memori berkembang beriringan dengan
perkembangan processor. Jenis DRAM ini juga mengalami
perkembangan.
89
RAM Statik (SRAM)
Disusun oleh deretan flip-flop. Baik SRAM maupun
DRAM adalah volatile. Sel memori DRAM lebih sederhana
dibanding SRAM, karena itu lebih kecil. DRAM lebih rapat (sel
lebih kecil = lebih banyak sel per satuan luas) dan lebih murah.
DRAM memrlukan rangkaian pengosong muatan. DRAM
cenderung lebih baik bila digunakan untuk kebutuhan memori
yang lebih besar. DRAM lebih lambat. Secara internal, setiap sel
yang menyimpan n bit data memiliki 4 buah transistor yang
menyusun beberapa buah rangkaian flip-flop. Dengan
karakteristik rangkaian flip-flop ini, data yang disimpan hanyalah
berupa Hidup (High state) dan Mati (Low State) yang ditentukan
oleh keadaan suatu transistor. Kecepatannya dibandingkan
dengan Dynamic RAM tentu saja lebih tinggi karena tidak
diperlukan sinyal refresh untuk mempertahankan isi memory.
Read Only Memory (ROM)
Kelompok memori yang bernama Read Only Memory ini
juga memiliki karakteristik yang sesuai dengan namanya. Data
yang ada di dalam ROM ini adalah data yang telah dimasukkan
oleh pembuatnya. Data yang telah terkandung di dalamnya tidak
dapat diubah-ubah lagi melalui proses yang normal dan hanya
dapat dibaca saja. Ada bagian data di ROM ini dipergunakan
untuk identitas dari komputer itu sendiri.
Hal ini tersimpan dalam BIOS (Basic Input Output
Systems). Ada juga data yang terkandung dalam modul ini yang
90
pertama kali diakses oleh sebuah komputer ketika dinyalakan.
Urutan-urutan yang terkandung di dalam modul ini dan yang
diakses pertama kali ketika komputer dihidupkan diberi nama
BOOTSTRAP. Dalam proses BootStrap ini, dilakukan beberapa
instruksi seperti pengecekan komponen internal pendukung kerja
minimal suatu sistem komputer, seperti memeriksa ALU, CU,
BUS pendukung dari motherboard dan processor, memeriksa
BIOS utama, memeriksa BIOS kartu grafik, memeriksa keadaan
Memory Module, memeriksa keberadaan Secondary Storage
yang dapat berupa floopy disk, hard disk ataupun CD-ROM
Drive, kemudian baru memeriksa daerah MBR (Master Boot
Record) dari media penyimpanan yang ditunjuk oleh BIOS
(dalam proses Boot Sequence). singkat sifat-sifat ROM dapat
dijabarkan sebagai berikut:
Menyimpan data secara permanen
Hanya bisa dibaca
Dua masalah ROM:
Langkah penyisipan data memerlukan biaya tetap
yang tinggi.
Tidak boleh terjadi kesalahan (error).
Programmable ROM (PROM)
Bersifat non-volatile dan hanya bisa ditulisi sekali saja.
Proses penulisan dibentuk secara elektris.
Diperlukan peralatan khusus untuk proses penulisan atau
“pemrograman”.
91
Erasable PROM (EPROM)
Dibaca secara optik dan ditulisi secara elektrik.
Sebelum operasi write, seluruh sel penyimpanan harus
dihapus menggunakan radiasi sinar ultra-violet terhadap
keping paket.
Proses penghapusan dapat dilakukan secara berulang,
setiap penghapusan memerlukan waktu 20 menit.
Untuk daya tampung data yang sama EPROM lebih
mahal dari PROM.
Electrically EPROM (EEPROM)
Dapat ditulisi kapan saja tanpa menghapus isi
sebelumnya.
Operasi write memerlukan watu lebih lama dibanding
operasi read.
Gabungan sifat kelebihan non-volatilitas dan fleksibilitas
untuk update dengan menggunakan bus control, alamat
dan saluran data.
EEPROM lebih mahal dibanding EPROM.
Sel memori memiliki sifat tertentu :
Memiliki dua keadaan stabil untuk representasi bilangan
biner 1 atau 0.
Memiliki kemampuan untuk ditulisi
Memiliki kemampuan untuk dibaca.
c. Lokasi Memori Internal
o Berada di luar CPU tetapi bersifat internal terhadap
sistem komputer.
92
o Diperlukan oleh CPU untuk proses eksekusi (operasi)
program, sehingga dapat diakses secara langsung oleh
prosesor (CPU) tanpa modul perantara.
o Memori internal sering juga disebut sebagai memori
primer atau memori utama.
o Memori internal biasanya menggunakan media RAM.
d. Kapasitas Memori Internal
Kapasitas memori internal biasanya dinyatakan dalam
bentuk byte (1 byte = 8 bit) atau word. Panjang word
umum adalah 8, 16, dan 32 bit.
e. Satuan Transfer (Unit of Transfer)
Satuan transfer sama dengan jumlah saluran data yang
masuk ke dan keluar dari modul memori. Bagi memori
internal (memori utama), satuan transfer merupakan
jumlah bit yang dibaca atau yang dituliskan ke dalam
memori pada suatu saat.
4.7 Organisasi Memori Logik Keping (Chip Logic)
Organisasi DRAM 16 Mbit secara umum. Array memori
diorganisasikan sebagai empat buah kuardrat 2048 terhadap 2048
elemen. Elemen-elemen array dihubungkan dengan saluran
horizontal (baris) dan vertikal (kolom). Setiap saluran horizontal
terhubung ke terminal Data-in/Sense masing-masing sel pada
kolomnya.
93
Gambar 4.2 Organisasi Memori Logik Keping
94
BAB 5
MEMORI EKSTERNAL
5.1 Pendahuluan
Dari semua informasi yang tersimpan dalam komputer,
hanya program dan data yang sering dipergunakan oleh CPU saat
ini yang perlu tetap di dalam memori utama. Sisa informasi
lainnya, seperti program sistem dan file pemakai yang tidak
digunakan, disimpan di dalam peranti penyimpanan backup dan
ditransfer ke memori utama jika diperlukan. Peranti
penyimpanan backup atau secondary, ini secara kolektif disebut
sebagai memori eksternal, memori pembantu (auxiliary memory).
Saat ini ada banyak sekali jenis-jenis memori eksternal yang
digunakan oleh para pengguna komputer.
5.2 Pengertian Memori Eksternal
Memori eksternal adalah suatu tempat atau sarana yang
bisa dipakai komputer untuk menyimpan data atau program dan
mempunyai fungsi hampir sama dengan internal memory. Pada
95
memori jenis ini tidak wajib ada sistem komputer, tidak seperti
pada internal memori yang keberadaannya wajib dan harus ada.
Memori eksternal dapat digunakan untuk menyelesaikan
masalah yang ada dalam memori primer, yaitu dapat mengatasi
masalah keterbatasan area pada memori primer. Sifat dari
memori eksternal ini adalah tetap (non-volatile), baik pada saat
komputer aktif atau tidak.
5.3 Jenis-jenis Memori Eksternal
Ada banyak jenis media penyimpanan eksternal yang
sering digunakan oleh para user (pengguna komputer). Memori-
memori eksternal tersebut memiliki cara kerja dan bentuk yang
berbeda-beda. Walau demikian, memori-memori eksternal
tersebut memiliki fungsi yang sama, yaitu untuk memenuhi
kebutuhan storage sebuah komputer. Berikut penjelasan dari
beberapa jenis eksternal memori.
Magnetik Disk
Sistem magnetic disk terdiri atas tiga bagian: sebuah disk drive,
kendali disk yang berhadapan (interface) dengan CPU dan/atau
prosesor I/O dan satu atau lebih disk.
Disk merupakan sebuah piringan bundar yang terbuat dari
logam atau plastik yang dilapisi dengan bahan yang dapat
dimagnetisasi.
96
Data direkam di atasnya dan dapat dibaca dari disk dengan
menggunakan kumparan pengkonduksi (conducting coil)
yang dinamakan head.
Pada operasi penulisan, arus listrik pada head memagnetisasi
disk.
Pada operasi pembacaan, medan magnet pada disk yang
bergerak di bawah head menghasilkan arus listrik pada head.
Selama operasi pembacaan dan penulisan, head bersifat
stasioner sedangkan piringan bergerak-gerak di bawahnya.
Organisasi Data dan Pemformatan
Organisasi data pada piringan berbentuk sejumlah cincin-
cincin yang konsentris yang disebut track.
Masing-masing track lebarnya sama dengan lebar head.
Track yang berdekatan dipisahkan oleh gap
Gap bertujuan untuk mencegah/mengurangi error akibat
melesetnya head atau interferensi medan magnet.
Kerapatan (density), dalam bit per inci linear, pada track
sebelah dalam lebih tinggi (lebih rapat) dibanding track
sebelah luarnya.
Data disimpan pada daerah berukuran blok yang dikenal
sebagai sector.
Biasanya terdapat antara 10 hingga 100 sector per track.
Sector-sector yang berdekatan dipisahkan oleh gap-gap
intra-track atau inter-record.
97
Layout data disk meliputi:
Track
Inter-track Gaps
Kerapatan (density)
Sector
Salah satu contoh pemformatan disk adalah format track disk
Winchester (Seagate ST506)
Setiap track berisi 30 sector yang panjangnya tetap
Masing-masing track berisi 600 byte
Setiap sector menampung 512 byte data ditambah
informasi kontrol yang berguna bagi disk controller.
Gambar 5.1 Disk Data Layout
98
Karakteristik
Ada beberapa karakteristik Sistem Disk:
Gerakan head
Fixed head disk terdapat sebuah head baca/tulis per
track jadi ada beberapa head baca/tulis per surface.
Semua head ditempatkan pada lengan memanjang ke
seluruh track.
Movable head disk hanya terdapat sebuah head
baca/tulis per surface. Lengan dimana head ditempatkan
dapat memanjang dan memendek untuk menuju ke salah
satu track.
Portabilitas Disk
Disk berada pada sebuah disk drive yang terdiri atas lengan,
tangkai yang dapat menggerakkan disk dan perangkat
elektronik untuk keperluan input dan output data biner.
Non-removable disk secara permanen berada pada
disk drive.
Removable disk dapat dilepas dan diganti dengan disk
lain.
Permukaan yang dimagnetisasi
Double-sided kedua sisi permukaannya dimagnetisasi
Single-sided hanya satu permukaan yang
dimagnetisasi (disk bermuka tunggal)
Banyaknya piringan pada disk drive
99
Single platter
Multiple platter
Mekanisme Head
Contact (floopy) terdapat kontak secara fisik antara
head dengan medium (disk) selama operasi baca/tulis.
Fixed Gap ada jarak yang tetap antara head dengan
disk.
Aerodynamic Gap (Winchester) ada kertas timah
pelindung yang aerodynamic antara head dengan disk
sehingga jarak antara head dan disk dapat diperpendek.
Tabel 5.1 Karakteristik Sistem Disk
Gerakan Head
Fixed head (one per track)
Movable head (one per
surface)
Platters
Single platter
Multiple platter
Portabilitas Disk
Nonremovable disk
Removable disk
Mekanisme Head
Contact (floopy)
Fixed Gap
Aerodynamic Gap
(Winchester)
Sides
Single sided
Double sided
100
Waktu Akses Disk
Ketika disk drive beroperasi, disk berputar dengan kecepatan
tetap.
Untuk dapat membaca dan menulis, head harus berada pada
awal sector dari track yang diinginkan.
Pemilihan track meliputi perpindahan head pada sistem
movable head atau mekanisme elektronis pada head untuk
sistem fixed head.
Waktu yang diperlukan untuk menempatkan head pada
track yang diinginkan dikenal sebagai seek time.
Sekali track sudah dipilih, sistem akan menunggu sampai
sector yang bersangkutan berputar agar sesuai dengan head.
Waktu yang diperlukan oleh sector untuk mencapai head
disebut rotational latency
Access time, yaitu waktu yang dibutuhkan untuk berada pada
posisi siap membaca atau menulis.
Jumlah antara seek time dan rotational latency sama
dengan access time.
Gambar 5.2 Timing of a Disk I/O Transfer
101
RAID (Redundancy Array of Independent Disk)
RAID (Redundancy Array of Independent Disk) diajukan
untuk mendekatkan jurang yang lebar antara kecepatan
prosesor dan elektromekanis disk drive yang relatif lambat.
Strateginya adalah dengan mengganti disk berkapasitas
besar dengan sejumlah disk drive berkapasitas kecil dan
mendistribusikan data sedemikian rupa sehingga
memungkinkan akses data dari sejumlah drive secara
simultan, yang akan meningkatkan kinerja I/O dan
memungkinkan peningkatan kapasitas secara mudah.
RAID mengatasi permasalahan standarisasi bagi rancangan
database dengan disk berjumlah banyak.
Pola RAID terdiri atas enam tingkat, nol hingga lima.
Tiga karakteristik umum pada Tingkatan RAID, yaitu:
1. RAID merupakan sekumpulan disk drive yang dianggap oleh
sistem operasi sebagai sebuah drive logik tunggal.
2. Data didistribusikan ke drive fisik array
3. Kapasitas redundant disk digunakan untuk menyimpan
informasi paritas, yang menjamin recoverability data ketika
terjadi kegagalan disk.
RAID Tingkat 0
102
RAID tingkat 0 sebenarnya bukan anggota keluarga RAID
karena tidak menggunakan redundansi untuk meningkatkan
kinerja.
Bagi RAID tingkat 0, data pengguna dan data sistem
didistribusikan ke seluruh disk pada array.
RAID Tingkat 1
RAID tingkat 1 berbeda dengan RAID tingkat 2 sampai 5
dalam cara memperoleh redundansinya.
Pada RAID lainnya, beberapa bentuk kalkulasi paritas
digunakan untuk mendapatkan redundansi.
Pada RAID tingkat 1, redundansi diperoleh cukup dengan
cara menduplikasikan seluruh data.
Beberapa aspek positif bagi organisasi RAID 1 :
o Read request dapat dilayani oleh salah satu dari kedua
disk yang berisi data yang diminta, yang memiliki seek
time plus rotational latency yang minimum.
o Write request memerlukan kedua strip yang berkaitan
untuk di-update, namun hal ini dapat dilakukan secara
paralel.
o Recovery dari kegagalan cukup sederhana. Bila drive
mengalami kegagalan, maka data masih dapat diakses
dari drive kedua.
RAID Tingkat 2
RAID tingkat 2 dan 3 menggunakan teknik akses paralel.
103
Dalam parallel access array, seluruh anggota disk
berpartisipasi dalam mengeksekusi setiap request I/O.
Pemutar setiap drive umumnya disinkronisasikan sehingga
seluruh head disk selalu berada pada posisi yang sama.
RAID tingkat 3
RAID 3 diorganisasikan dengan cara yang sama dengan
RAID 2, bedanya adalah bahwa RAID 3 hanya
membutuhkan disk redundan tunggal, tidak tergantung pada
berapa besar array disk-nya.
RAID 3 menggunakan akses paralel dengan data yang
didistribusikan dalam bentuk strip-strip kecil.
Di sini kode error-correcting tidak dihitung.
RAID tingkat 4
RAID tingat 4 dan 5 menggunakan teknik akses yang
independen.
Dalam array dengan akses independen, setiap disk anggota
beroperasi secara independen, sehingga request I/O dapat
dipenuhi secara paralel.
Laju transfer data tinggi
Juga digunakan striping data
104
Gambar 5.3 Level RAID (1)
105
Gambar 5.4 Level RAID (2)
Gambar 5.5 Data Mapping Level 0 RAID Array
Optical Memory
Produk-Produk Disk Optis
1. CD (Compact Disk) suatu disk yang tidak dapat
dihapus yang menyimpan informasi audio yang telah
didigitasi. Sistem standar menggunakan disk 12 cm
yang dapat merekam lebih dari 60 menit waktu putar
tanpa henti.
2. CD-ROM (Compact Disk Read Only Memory) Disk
yang tidak dapat dihapus untuk menyimpan data
komputer. Sistem standar menggunakan disk 12 cm
yang dapat menampung lebih dari 550 MB.
106
3. CD-I (Compact Disk Interactive) Suatu spesifikasi
yang didasarkan pada penggunaan CD-ROM.
Spesifikasi ini menjelaskan metode penyediaan audio,
video, grafis, teks dan kode yang dapat dieksekusi
mesin pada CD-ROM.
4. DVI (Digital Video Interactive) Sebuah teknologi
untuk memproduksi representasi informasi video yang
didigitasi dan terkompresi. Representasi dapat
disimpan pada CD atau media disk lainnya. Sistem
yang ada sekarang menggunakan CD dan dapat
menyimpan sekitar 20 menit video pada satu disk.
5. WORM (Write One Read Many) Sebuah disk yang
lebih mudah ditulisi dibandingkan dengan CD-ROM,
yang membuatnya secara komersial fisibel untuk
menyalin sebuah CD. Ukuran yang populer adalah 5,25
inci yang dapat menampung 200 hingga 800 MB data.
6. Erasable Optical Disk Suatu disk yang
menggunakan teknologi optik namun dapat dihapus
dan ditulisi ulang dengan mudah. Terdapat dua jenis
ukuran yang umum dipakai: 3,25 inci dan 5,25 inci.
Umumnya mempunyai kapasitas 650 MB.
CD-ROM
a. CD-ROM player memiliki perangkat error-
correcting untuk menjamin bahwa data ditransfer
dengan benar dari disk ke komputer.
107
b. Disk terbuat dari resin, seperti polycarbonate dan
dilapisi dengan permukaan yang sangat reflektif,
biasanya aluminium.
c. Informasi yang direkam secara digital diterbitkan
sebagai sekumpulan lubang-lubang mikroskopik
pada permukaan yang reflektif.
d. Permukaan disk dilindungi dari debu dan gesekan
dengan lapisan bening.
e. Layout disk yang menggunakan constant angular
velocity (CAV)
Keuntungan CAV: blok data dapat dialamati
secara langsung oleh track dan sector. Untuk
memindahkan head ke alamat tertentu hanya
memerlukan gerakan head yang pendek dan
waktu tunggu yang singkat.
Kerugian CAV: jumlah data yang dapat
disimpan pada track yang jauh di luar sama
dengan yang dapat disimpan dengan track
yang berada dekat titik pusat.
f. Kapasitas penyimpanan CD-ROM adalah 774,57
MB.
g. Format blok CD-ROM terdiri atas field-field
sebagai berikut:
Sync : Field sync mengidentifikasikan awal
sebuah blok.
108
Header : header terdiri atas alamat blok dan
byte mode.
Mode 0 menandakan suatu field data blanko;
Mode 1 menandakan penggunaan kode
error-correcting dan 2048 byte data;
Mode 2 menandakan 2336 byte data
pengguna tanpa kode error-correcting.
Data: data adalah data pengguna
Auxiliary: data pengguna tambahan dalam
mode 2. Pada mode 1, data ini data pengguna
tambahan dalam mode 2. Pada mode 1, data
ini merupakan kode error-correcting
Ada pula disk dengan menggunakan layout
kecepatan linear konstan (CLV)
Keuntungan CD-ROM:
Kapasitas penyimpanan informasinya jauh
lebih besar dibandingkan dengan disk
magnetik.
Dapat diperbanyak dengan harga murah
Dapat dipindah-pindah. Sebagian besar disk
magnetik tidak dapat dipindah-pindahkan.
Kekurangan CD-ROM:
CD-ROM hanya dapat dibaca saja (read
only) dan tidak dapat di- update.
109
CD-ROM memiliki waktu akses yang lebih
lama dibandingkan dengan waktu akses disk
drive magnetik.
Gambar 5.6 Perbandingan Metode Layout Disk
DVD (Digital Versatile Disc)
DVD adalah generasi lanjutan dari teknologi penyimpanan
dengan menggunakan media optical disc. DVD memiliki
kapasitas yang jauh lebih besar daripada CD-ROM biasa,
yaitu mencapai 9 GB. Teknologi DVD ini sekarang banyak
dimanfaatkan secara luas oleh perusahaan musik dan film
besar, sehingga menjadikannya sebagai produk elektronik
yang paling diminati dalam kurun waktu 3 tahun sejak
diperkenalkan pertama kali. Perkembangan teknologi DVD-
ROM pun lebih cepat dibandingkan CD-ROM. 1x DVD-
ROM memungkinkan rata-rata transfer data 1,321 MB/s
dengan rata-rata burst transfer 12 MB/s.
Semakin besar cache (memori buffer) yang dimiliki DVD-
ROM, semakin cepat penyaluran data yang dapat dilakukan.
110
DVD menyediakan format yang dapat ditulis satu kali
ataupun lebih, yang disebut dengan Recordable DVD dan
memiliki 6 macam versi, yaitu:
DVD-R for General, hanya sekali penulisan
DVD-R for Authoring, hanya sekali penulisan
DVD-RAM, dapat ditulis berulang kali
DVD-RW, dapat ditulis berulang kali
DVD+RW, dapat ditulis berulang kali
DVD+R, hanya sekali penulisan
Setiap versi DVD recorder dapat membaca DVD-ROM disc,
tetapi memerlukan jenis disc yang berbeda untuk melakukan
pembacaan. Kompatibilitas antara jenis recorder dengan
jenis disc dapat dilihat berikut ini.
DVD unit
DVD-R(G) unit
DVD-R(A) unit
DVD-RW unit
DVD-RAM unit
DVD+RW unit
DVD-ROM
WORM
a. WORM adalah Write Once Read Many CD.
b. Dapat ditulisi sekali menggunakan sinar laser
berintensitas sedang.
111
c. Teknik yang dipakai untuk menyiapkan disk adalah
dengan menggunakan laser berdaya tinggi.
d. Menggunakan kecepatan angular yang konstan untuk
memberikan akses yang lebih cepat.
e. Digunakan untuk penyimpanan arsip dokumen dan file
dalam ukuran besar.
Disk Optis yang Dapat Dihapus
a. Disk dapat ditulisi berulang-ulang
b. Menggunakan teknologi sistem magneto-optis: pada
sistem ini, energi sinar laser digunakan secara bersama
dengan medan magnet untuk merekam dan menghapus
informasi.
c. Menggunakan kecepatan angular konstan.
d. Keuntungan utama disk optis ini dibandingkan dengan
disk magnetis:
Berkapasitas besar: sebuah disk optis 5,25 inci dapat
menampung data sekitar 650 MB.
Portabilitas: disk optis dapat dipindahkan dari drive-
nya.
Reliabilitas
Tahan lama
Pita Magnetik
Pita magnetik merupakan salah satu jenis memori
pembantu yang digunakan untuk tempat penyimpanan
offline yang besar. Pita magnetik juga berfungsi sebagai
112
media transfer data yang paling sederhana antara mesin-
mesin yang tidak mempunyai sambungan komunikasi
secara langsung.
e. Sistem pita menggunakan teknik pembacaan dan
penulisan yang sama dengan sistem disk.
Media sistem ini adalah pita mylar lentur yang
dilapisi dengan oksida magnet.
Pita dan drive pita merupakan analog terhadap
sistem tape recorder.
Medium pita berbentuk track-track paralel dalam
jumlah sedikit.
Sistem pita magnetik kuno memakai 9 buah track.
Sistem pita magnetik terbaru menggunakan 18 atau
36 track.
Data ditulisi dan dibaca dalam bentuk blok-blok
kontinu yang disebut physical records pada pita.
Blok-blok pada pita dipisahkan dipisahkan oleh gap
yang dikenal sebagai inter-record gaps.
Kerapatan rekaman (recording density) umumnya
800, 1600 dan 6250 byte per inci (bpi).
Kecepatan peranti pita magnetik adalah antara 18,75
hingga 200 inci perdetik.
113
Gambar 5.7 CD Drive (1)
Gambar 5.8 CD Drive (2)
114
Gambar 5.9 CD Drive (3)
Gambar 5.10 Disk Optik
115
Magnetic Tape
Magnetic tape merupakan
media penyimpanan data yang
biasanya digunakan untuk
komputer jenis mini ataupun
mainframe. Terdapat dua jenis
magnetic tape yang biasanya
digunakan oleh komputer. Jenis
pertama mempunyai bentuk
standar yang memiliki lebar pita
1/2" (12.7 mm). Magnetic tape
terbuat dari plastik tipis yang
dilapisi magnetik pada
permukaannya.
Gambar 5.11 Magnetic
Tape
Bentuk kedua adalah kaset
ataupun catridge seperti halnya
yang telah kita kenal pada kaset
yang terdapat di audio tape
recorder. Data yang ada disini
juga disimpan dalam bentuk
kode-kode tertentu seperti
halnya yang terdapat dalam pita
magnetik ukuran standar. Kaset
ataupun catridge banyak
digunakan pada komputer jenis
home-computer.
Gambar 5.12 Kaset
116
Untuk bisa bekerja, pita magnetik ini harus diletakkan di
dalam tape drive yang kira-kira bisa disamakan dengan
proyektor. Tape akan bergerak terus selama proses penulisan
ataupun pembacaan berlangsung dengan melewati read/write
head. Data yang ada akan direkam dalam guratan magnetik.
Sekali data tersebut terekam, maka data akan tetap tinggal
sampai data tersebut terhapus atau diganti dengan data baru.
Secara umum, tape akan menyimpan. Data yang terdapat pada
magnetic tape, akan terbagi secara horizontal yang disebut
channel atau tracks, dan secara vertikal di dalam bentuk kolom
ataupun frame. Secara umum, tape mempunyai 9 tracks dan data
akan dikodekan dalam ASCII ataupun EBCDIC.
(1)
(2)
Gambar 5.13 Track dalam Kaset
Di samping 9 track data, magnetic tape juga ada yang
merekam datanya dalam bentuk 7 track, dimana track paling atas
digunakan sebagai parity check, yang berguna bagi komputer
117
untuk melihat apakah tejadi kesalahan dalam hal penyimpanan,
perpindahan ataupun saat peng-copy-an data pada setiap
karakternya.
Gambar 5.14 Perekaman Data dalam Kaset
Pada saat drive dari magnetic tape berputar, maka data-
data yang ada akan dibaca satu demi satu. Dalam hal ini, tape
membutuhkan adanya suatu tanda untuk mulai dan berhenti pada
suatu record data. Pada saat berhenti, dan ketika akan melakukan
pembacaan lagi, ada beberapa bagian dari tape yang tidak terbaca
dan bagian ini disebut: inter-record gap yang terjadi di antara
setiap blok data. Inter-record gap secara otomatis akan terbentuk
oleh sistem komputer setelah selesai merekam karakter yang
terakhir. Ukuran record dalam hal ini ditentukan oleh jumlah
data yang tersimpan. Beberapa record yang tergabung dalam satu
kesatuan disebut sebagai logical record. Beberapa logical record
akan tersimpan dalam sebuah physical record.
118
Gambar 5.15 Logical Record
Walaupun media magnetic tape memiliki harga yang jauh
lebih murah jika dibanding dengan media lainnya, tetapi media
magnetic tape biasanya hanya digunakan sebagai media "back-
up" dan bukan sebagai media penyimpanan data utama.
Penyebabnya adalah media magnetic tape hanya bisa digunakan
untuk menyimpan dan membaca data secara sequential atau
berurutan. Dengan demikian, untuk melakukan penyimpanan dan
pembacaan data, jauh lebih lambat jika dibanding dengan
penulisan/pembacaan data secara random (acak).
Gambar 5.16 Logical Record
119
Floppy Disk
Floppy Disk merupakan suatu hard disk yang lebih murah,
berkapasitas lebih kecil dan versinya lebih sederhana.
Floppy disk merupakan sebuah disket plastik (floppy) yang
sangat fleksibel yang dilapisi dengan material magnetik
yang sama seperti hard disk tetapi dirancang sehingga head
baca/tulis benar-benar bisa terletak pada permukaan.
Floppy disk tersedia dalam diameter 3 ½, 5 ¼, dan 8 inci.
Disk ini menyimpan 250 hingga 1400 kilobyte data dan
kerapatan penyimpanan data selalu ditingkatkan secara
terus menerus. Waktu akses floppy disk berkisar antara 150
sampai 300 milidetik dan kecepatan data kurang lebih 250
kilobit per detik.
Gambar 5.17 Floppy Disk
120
USB Flash Drive
USB flash drive (sering juga USB flash drive ini disebut
Flashdisk atau UFD) adalah alat penyimpanan data
memori flash tipe NAND yang memiliki alat penghubung
USB yang terintegrasi. Flash drive ini biasanya berukuran
kecil, ringan, serta bisa dibaca dan ditulisi dengan mudah.
Sejak November 2006, kapasitas yang tersedia untuk USB
flash drive ada dari 64 megabyte sampai 512 gigabyte.
Besarnya kapasitas media ini tergantung dari teknologi
memori flash yang digunakan. USB flash drive memiliki
banyak kelebihan dibandingkan alat penyimpanan data
lainnya, khususnya disket atau cakram padat. Alat ini lebih
cepat, kecil, dengan kapasitas lebih besar, serta lebih dapat
diandalkan (karena tidak memiliki bagian yang bergerak)
daripada disket. Namun flashdisk juga memiliki umur
penyimpanan data yang singkat, biasanya ketahanan data
pada flashdisk rata-rata 5 tahun. Ini disebabkan oleh
memori flash yang digunakan tidak bertahan lama.
Bandingkan dengan harddisk yang memiliki ketahanan
data hingga 12 tahun, CD/DVD berkualitas (dan bermerek
terkenal) selama 15 tahun jika cara penyimpanannya benar.
121
Gambar 5.18 Flash Disk
Kartu Secure Digital
Secure Digital (SD) adalah sebuah format kartu memori
flash, digunakan dalam alat portabel, seperti PDA, kamera
digital dan telepon genggam. Kartu SD dikembangkan oleh
SanDisk, Toshiba dan Panasonic berdasarkan Kartu Multi
Media (MMC) yang sudah lebih dulu ada. Selain memiliki
sistem pengaman yang lebih bagus daripada MMC, SD
Card juga bisa dengan mudah dibedakan dari MMC karena
memiliki ukuran yang lebih tebal dibanding kartu MMC
standar. Kartu SD standar memiliki ukuran 32 mm x 24
mm x 2,1 mm, tetapi ada beberapa kartu SD yang setipis
MMC (1,4 mm). Dalam perkembangannya, kartu SD
diproduksi juga dalam dua variasi ukuran yg lebih kecil,
kedua varian tersebut dikenal dengan nama MiniSD dan
MicroSD atau TransFlash (T-Flash). Secara umum, kartu
SD dibedakan dari kecepatan transfer data yang tersedia,
122
yaitu kecepatan biasa (150 KB/s) dan kecepatan tinggi.
Beberapa kamera digital memerlukan kartu yg
berkecepatan-tinggi untuk merekam video secara lancar
atau menangkap gambar berturut-turut. Alat yang
dilengkapi dengan slot SD dapat menggunakan kartu
MMC yang lebih tipis, tetapi kartu SD standar tidak dapat
digunakan ke slot kartu MMC yang lebih tipis. Kartu SD
dapat digunakan dalam slot Compact Flash atau kartu PC
dengan sebuah adapter.
Gambar 5.19 Kartu Secure Digital
Drum Magnetik
Media penyimpanan ini berbentuk sebuah drum (silinder
berlubang) yang dilapisi dengan sebuah film magnetik.
Drum dibagi menjadi beberapa track konsentris
mengelilingi permukaannya. Setiap track berhubungan
123
dengan head/tulis yang tetap dan beberapa head dapat
melakukan pembacaan atau penulisan secara paralel. Drum
kecil berkapasitas penyimpanan yang sama dengan disk, 2
x 106 karakter. Drum besar berkapasitas 9 x 10
9 karakter.
Gambar 5.20 Drum Magnetik
124
BAB 6
INPUT DAN OUTPUT
6.1 Pendahuluan
CPU mengambil intruksi dan data dari memori utama,
memprosesnya dan menyimpan hasilnya kembali ke memori
utama. Namun, jika hasil tersebut akan digunakan, komputer
harus memiliki alat dan kemampuan untuk berkomunikasi
dengan lingkungannya (pemakai). Ini dilakukan oleh unit utama
komputer, sistem input/output (I/O), yang berfungsi untuk
mentransfer informasi antara CPU (memori utama) dan dunia
luar. Sistem I/O terdiri atas peranti I/O (periferal), pengendali
peranti (device controller) yang dilalui peranti I/O untuk
berkomunikasi dengan CPU dalam suatu aturan yang baku
(protokol) dan perangkat lunak untuk operasi I/O dan pelayanan.
Dalam berhubungan dengan sistem I/O, penting untuk
menyadari:
1. CPU dan peranti I/O biasanya tidak dapat disinkronkan,
karena itu operasi I/O harus dikoordinasikan.
125
2. Secara umum, peranti I/O lebih lambat dari CPU, karena
itu biasanya peranti I/O berkomunikasi secara
asynchronous dengan CPU.
3. CPU menangani informasi bahasa mesin sedangkan
peranti I/O biasanya membawa informasi yang
berorientasi kepada user, karena itu data harus di-encode
dan di-decode (diformat).
Keseluruhan kendali pada operasi I/O biasanya dikerjakan
oleh CPU dengan tingkatan yang lebih rendah atau lebih besar.
Proses transfer informasi antara CPU dan peripheral ada 4
langkah:
1. Memilih sebuah peranti I/O dan menguji apakah ia siap
atau mempunyai reaksi.
2. Menginisialisasi transfer tersebut dan
mengkoordinasikan pengaturan waktu operasi I/O
tersebut.
3. Mentransfer informasi tersebut.
4. Memberhentikan proses transfer tersebut.
Dari titik pandang perangkat keras dan perangkat lunak,
I/O merupakan masalah yang paling sukar dalam perancangan
dan penggunaan sistem komputer. Kebanyakan masalah tersebut
berasal dari kenyataan bahwa I/O memerlukan komunikasi
antiperanti yang karakteristiknya sangat berbeda. Banyak peranti
I/O yang setidaknya setengah mekanis dan beberapa urutan
magnitude lebih lambat dari peranti elektronik yang sejenis. Kita
dapat mengklasifikasikan peranti I/O atas 3 kelompok:
126
1. Peranti yang memasukkan informasi ke komputer,
seperti keyboard, digitizer, optical scanner, analog-to-
digital converter, light pen, voice input unit dan touch
panel.
2. Peranti yang menampilkan (mengeluarkan) informasi
dari komputer, seperti Video Display Unit (VDU),
plotter, graphics terminal, printer, digital-to-analog
converter dan voice output unit.
3. Peranti yang melayani input dan output seperti disk,
disket, tape magnetis dan kaset.
Daftar peranti I/O tersebut tidak berhenti sampai di situ.
Peranti-peranti baru selalu diproduksi dari waktu ke waktu dalam
jumlah produk yang tersedia saling bertindihan. Namun, peranti
I/O juga bervariasi dalam setiap kelompoknya. Beberapa peranti
bersifat tergantung pada mesin, melibatkan pendekatan bagi
penerapan I/O secara khusus. Berikut akan membahas
pengaksesan I/O, transfer data dan beberapa karakteristik umum
bagi seluruh sistem I/O. Operasi I/O terdiri atas tiga mode dasar
yang dibedakan oleh derajat keterlibatan CPU pada eksekusinya.
Mode-mode tersebut adalah I/O terprogram, I/O interupsi dan
Direct Memory Access (DMA).
6.2 Sistem Input/Output
Sistem komputer memiliki tiga komponen utama, yaitu:
CPU, memori (primer dan sekunder) dan peralatan
127
masukan/keluaran (I/O devices) seperti printer, monitor,
keyboard, mouse dan modem. Modul I/O merupakan peralatan
antarmuka (interface) bagi sistem bus atau switch sentral dan
mengontrol satu atau lebih perangkat periferal. Modul I/O tidak
hanya sekedar modul penghubung, tetapi sebuah peranti yang
berisi logika dalam melakukan fungsi komunikasi antara
periferal dan bus komputer. Ada beberapa alasan kenapa peranti-
peranti tidak langsung dihubungkan dengan bus sistem komputer,
yaitu:
Bervariasinya metode operasi peranti periferal, sehingga
tidak praktis apabila sistem komputer herus menangani
berbagai macam sisem operasi peranti periferal tersebut.
Kecepatan transfer data peranti periferal umumnya lebih
lambat dari pada laju transfer data pada CPU maupun
memori.
Format data dan panjang data pada peranti periferal
seringkali berbeda dengan CPU, sehingga perlu modul
untuk menyelaraskannya.
Dari beberapa alasan sebelumnya, modul I/O memiliki dua
buah fungsi utama, yaitu:
1. Sebagai peranti antarmuka ke CPU dan memori melalui
sistem bus.
2. Sebagai peranti antarmuka dengan peralatan periferal
lainnya dengan menggunakan link data tertentu.
128
6.3 Sistem Input dan Output Komputer
Bagaimana modul I/O dapat menjalankan tugasnya, yaitu
menjembatani CPU dan memori dengan dunia luar merupakan
hal yang terpenting untuk kita ketahui. Inti mempelajari sistem
I/O suatu komputer adalah mengetahui fungsi dan struktur modul
I/O. Perhatikan Gambar 6.1 model generik modul I/O.
Gambar 6.1 Model Generik Modul
Modul I/O adalah suatu komponen dalam sistem komputer
yang bertanggung jawab atas pengontrolan sebuah perangkat luar
atau lebih dan bertanggung jawab pula dalam pertukaran data
antara perangkat luar tersebut dengan memori utama ataupun
dengan register-register CPU. Dalam mewujudkan hal ini,
diperlukan antarmuka internal dengan komputer (CPU dan
memori utama) dan antarmuka dengan perangkat eksternalnya
untuk menjalankan fungsi-fungsi pengontrolan. Fungsi dalam
129
menjalankan tugas bagi modul I/O dapat dibagi menjadi
beberapa kategori, yaitu:
Kontrol dan pewaktuan.
Komunikasi CPU.
Komunikasi perangkat eksternal.
Pem-buffer-an data.
Deteksi kesalahan.
Fungsi kontrol dan pewaktuan (control & timing) merupakan
hal yang penting untuk mensinkronkan kerja masing-masing
komponen penyusun komputer. Dalam sekali waktu CPU
berkomunikasi dengan satu atau lebih perangkat dengan pola
tidak menentu dan kecepatan transfer komunikasi data yang
beragam, baik dengan perangkat internal seperti register-register,
memori utama, memori sekunder dan perangkat periferal. Proses
tersebut bisa berjalan apabila ada fungsi kontrol dan pewaktuan
yang mengatur sistem secara keseluruhan. Contoh kontrol
pemindahan data dari periferal ke CPU melalui sebuah modul
I/O dapat meliputi langkah-langkah berikut:
Permintaan dan pemeriksaan status perangkat dari CPU
ke modul I/O.
Modul I/O memberi jawaban atas permintaan CPU.
Apabila perangkat eksternal telah siap untuk transfer
data, maka CPU akan mengirimkan perintah ke modul
I/O.
130
Modul I/O akan menerima paket data dengan panjang
tertentu dari peripheral.
Selanjutnya data dikirim ke CPU setelah diadakan
sinkronisasi panjang data dan kecepatan transfer oleh
modul I/O sehingga paket-paket data dapat diterima CPU
dengan baik.
Transfer data tidak akan lepas dari penggunaan sistem bus,
maka interaksi CPU dan modul I/O akan melibatkan kontrol dan
pewaktuan sebuah arbitrasi bus atau lebih.
Adapun fungsi komunikasi antara CPU dan modul I/O meliputi
proses-proses berikut:
Command Decoding, yaitu modul I/O menerima
perintah-perintah dari CPU yang dikirimkan sebagai
sinyal bagi bus kontrol. Misalnya, sebuah modul I/O
untuk disk dapat menerima perintah: Read sector, Scan
record ID, Format disk.
Data, pertukaran data antara CPU dan modul I/O melalui
bus data.
Status Reporting, yaitu pelaporan kondisi status modul
I/O maupun perangkat periferal, umumnya berupa status
kondisi Busy atau Ready. Juga status bermacam-macam
kondisi kesalahan (error).
Address Recognition, bahwa peralatan atau komponen
penyusun komputer dapat dihubungi atau dipanggil maka
131
harus memiliki alamat yang unik, begitu pula pada
perangkat periferal, sehingga setiap modul I/O harus
mengetahui alamat periferal yang dikontrolnya.
Pada sisi modul I/O ke perangkat periferal juga terdapat
komunikasi yang meliputi komunikasi data, kontrol maupun
status.
Gambar 6.2 Diagram Komunikasi antara CPU dan Modul I/O
Fungsi selanjutnya adalah buffering. Tujuan utama
buffering adalah mendapatkan penyesuaian data sehubungan
perbedaan laju transfer data dari perangkat peripheral dengan
kecepatan pengolahan pada CPU. Umumnya laju transfer data
dari perangkat periferal lebih lambat dari kecepatan CPU
maupun media penyimpan. Fungsi terakhir adalah deteksi
kesalahan. Apabila pada perangkat periferal terdapat masalah
sehingga proses tidak dapat dijalankan, maka modul I/O akan
132
melaporkan kesalahan tersebut. Misal informasi kesalahan pada
periferal printer seperti: kertas tergulung, tinta habis, kertas habis
dan lain-lain. Teknik yang umum untuk deteksi kesalahan adalah
penggunaan bit paritas. Terdapat berbagai macam modul I/O
seiring perkembangan komputer itu sendiri, contoh yang
sederhana dan fleksibel adalah Intel 8255A yang sering disebut
PPI (Programmable Peripheral Interface). Bagaimanapun
kompleksitas suatu modul I/O, terdapat kemiripan struktur,
seperti terlihat pada Gambar 6.3.
Gambar 6.3 Diagram Modul I/O
Antarmuka modul I/O ke CPU melalui bus sistem
komputer terdapat tiga saluran, yaitu saluran data, saluran alamat
dan saluran kontrol. Bagian terpenting adalah blok logika I/O
yang berhubungan dengan semua peralatan antarmuka periferal,
terdapat fungsi pengaturan dan switching pada blok ini.
133
6.4 Tipe Interface
Interface ke periferal dari sebuah modul I/O harus
disesuaikan dengan sifat dan operasi periferal. Karakteristik
utama interface terbagi dua, yaitu:
1. Interface paralel
Pada interface paralel, terdapat sejumlah jalur yang
terhubung ke modul I/O dan periferal, dan sejumlah bit
ditransfer secara simultan, sama halnya seluruh bit dari
word ditransfer secara simultan melalui bus data.
Interface paralel umumnya digunakan untuk periferal
berkecepatan tinggi, seperti pita dan disk.
2. Interface serial
Pada interface serial, hanya terdapat jalur yang
digunakan untuk mentransmisikan data dan bit-bit harus
ditransmisikan satu demi satu. Interface serial umumnya
digunakan untuk printer dan terminal.
Kunci operasi modul I/O adalah buffer internal yang dapat
menyimpan data yang dilewatkan di antara periferal dan sisa dari
sistem itu. Buffer ini memungkinkan modul I/O untuk
mengkompensassi perbedaan kecepatan antara bus sistem dan
jalur eksternalnya.
6.5 Teknik Input/Output
Terdapat tiga buah teknik dalam operasi I/O, yaitu: I/O
terprogram, interrupt – driven I/O dan DMA (Direct Memory
Access). Ketiganya memiliki keunggulan maupun kelemahan,
134
yang penggunaannya disesuaikan sesuai unjuk kerja masing-
masing teknik.
a. I/O Terprogram
Pada I/O terprogram, data saling dipertukarkan antara CPU
dan modul I/O. CPU mengeksekusi program yang
memberikan operasi I/O kepada CPU secara langsung,
seperti pemindahan data, pengiriman perintah baca maupun
tulis, dan monitoring perangkat. Kelemahan teknik ini adalah
CPU akan menunggu sampai operasi I/O selesai dilakukan
modul I/O sehingga akan membuang waktu, apalagi CPU
lebih cepat proses operasinya. Dalam teknik ini, modul I/O
tidak dapat melakukan interupsi kepada CPU terhadap
proses-proses yang diinstruksikan padanya. Seluruh proses
merupakan tanggung jawab CPU sampai operasi lengkap
dilaksanakan.Untuk melaksanakan perintah-perintah I/O,
CPU akan mengeluarkan sebuah alamat bagi modul I/O dan
perangkat periferalnya sehingga terspesifikasi secara khusus
dan sebuah perintah I/O yang akan dilakukan. Terdapat
empat klasifikasi perintah I/O, yaitu:
1. Perintah control. Perintah ini digunakan untuk
mengaktivasi perangkat peripheral dan memberitahukan
tugas yang diperintahkan padanya.
2 Perintah test. Perintah ini digunakan CPU untuk menguji
berbagai kondisi status modul I/O dan periferal. CPU
perlu mengetahui perangkat periferalnya dalam keadaan
135
aktif dan siap digunakan, juga untuk mengetahui operasi-
operasi I/O yang dijalankan serta mendeteksi
kesalahannya.
3. Perintah read. Perintah pada modul I/O untuk
mengambil suatu paket data kemudian menaruh dalam
buffer internal. Proses selanjutnya paket data dikirim
melalui bus data setelah terjadi sinkronisasi data maupun
kecepatan transfernya.
4. Perintah write. Perintah ini kebalikan dari read. CPU
memerintahkan modul I/O untuk mengambil data dari
bus data untuk diberikan pada perangkat peripheral
tujuan data tersebut.
Dalam teknik I/O terprogram, terdapat dua macam
inplementasi perintah I/O yang tertuang dalam instruksi I/O,
yaitu:
Memory-mapped I/O
Dalam memory-mapped I/O, terdapat ruang tunggal
untuk lokasi memori dan perangkat I/O. CPU
memperlakukan register status dan register data modul
I/O sebagai lokasi memori dan menggunakan instruksi
mesin yang sama untuk mengakses baik memori maupun
perangkat I/O. Konskuensinya adalah diperlukan saluran
tunggal untuk pembacaan dan saluran tunggal untuk
penulisan. Keuntungan memory-mapped I/O adalah
136
efisien dalam pemrograman, namun memakan banyak
ruang memori alamat.
Isolated I/O.
Dalam memory-mapped I/O, terdapat ruang tunggal
untuk lokasi memori dan perangkat I/O. CPU
memperlakukan register status dan register data modul
I/O sebagai lokasi memori dan menggunakan instruksi
mesin yang sama untuk mengakses baik memori maupun
perangkat I/O. Konskuensinya adalah diperlukan saluran
tunggal untuk pembacaan dan saluran tunggal untuk
penulisan. Keuntungan memory-mapped I/O adalah
efisien dalam pemrograman, namun memakan banyak
ruang memori alamat. Dalam teknik isolated I/O,
dilakukan pemisahan ruang pengalamatan bagi memori
dan ruang pengalamatan bagi I/O. Dengan teknik ini
diperlukan bus yang dilengkapi dengan saluran
pembacaan dan penulisan memori ditambah saluran
perintah output. Keuntungan isolated I/O adalah
sedikitnya instruksi I/O.
b. Interrupt – Driven I/O
Teknik interrupt-driven I/O memungkinkan proses tidak
membuang-buang waktu. Prosesnya adalah CPU
mengeluarkan perintah I/O pada modul I/O, bersamaan
perintah I/O dijalankan modul I/O maka CPU akan
melakukan eksekusi perintah-perintah lainnya. Apabila
modul I/O telah selesai menjalankan instruksi yang diberikan
137
padanya akan melakukan interupsi pada CPU bahwa
tugasnya telah selesai. Dalam teknik ini kendali perintah
masih menjadi tanggung jawab CPU, baik pengambilan
perintah dari memori maupun pelaksanaan isi perintah
tersebut. Terdapat selangkah kemajuan dari teknik
sebelumnya, yaitu CPU melakukan multitasking beberapa
perintah sekaligus sehingga tidak ada waktu tunggu bagi
CPU. Cara kerja teknik interupsi di sisi modul I/O adalah
modul I/O menerima perintah, misal read. Kemudian modul
I/O melaksanakan perintah pembacaan dari periferal dan
meletakkan paket data ke register data modul I/O,
selanjutnya modul mengeluarkan sinyal interupsi ke CPU
melalui saluran kontrol. Kemudian modul menunggu datanya
diminta CPU. Saat permintaan terjadi, modul meletakkan
data pada bus data dan modul siap menerima perintah
selanjutnya. Pengolahan interupsi saat perangkat I/O telah
menyelesaikan sebuah operasi I/O adalah sebagai berikut:
1. Perangkat I/O akan mengirimkan sinyal interupsi ke
CPU.
2. CPU menyelesaikan operasi yang sedang dijalankannya
kemudian merespon interupsi.
3. CPU memeriksa interupsi tersebut, kalau valid maka
CPU akan mengirimkan sinyal acknowledgment ke
perangkat I/O untuk menghentikan interupsinya.
4. CPU mempersiapkan pengontrolan transfer ke routine
interupsi. Hal yang dilakukan adalah menyimpan
138
informasi yang diperlukan untuk melanjutkan operasi
yang tadi dijalankan sebelum adanya interupsi. Informasi
yang diperlukan berupa:
Status prosesor, berisi register yang dipanggil PSW
(program status word).
Lokasi intruksi berikutnya yang akan dieksekusi.
5. Informasi tersebut kemudian disimpan dalam stack
pengontrol sistem.
6. Kemudian CPU akan menyimpan PC (program counter)
eksekusi sebelum interupsi ke stack pengontrol bersama
informasi PSW. Selanjutnya mempersiapkan PC untuk
penanganan interupsi.
7. Selanjutnya CPU memproses interupsi sempai selesai.
8. Apabila pengolahan interupsi selasai, CPU akan
memanggil kembali informasi yang telah disimpan pada
stack pengontrol untuk meneruskan operasi sebelum
interupsi.
Terdapat bermacam teknik yang digunakan CPU dalam
menangani program interupsi ini, yaitu:
Multiple Interrupt Lines.
Teknik yang paling sederhana adalah menggunakan
saluran interupsi berjumlah banyak (Multiple Interrupt
Lines) antara CPU dan modul-modul I/O. Namun tidak
praktis untuk menggunakan sejumlah saluran bus atau
pin CPU ke seluruh saluran interupsi modul-modul I/O.
Software poll.
139
Proses dalam teknik Software poll, apabila CPU
mengetahui adanya sebuah interupsi, maka CPU akan
menuju ke routine layanan interupsi yang tugasnya
melakukan poll seluruh modul I/O untuk menentukan
modul yang melakukan interupsi. Kerugian software poll
adalah memerlukan waktu yang lama karena harus
mengidentifikasi seluruh modul untuk mengetahui modul
I/O yang melakukan interupsi.
Daisy Chain.
Teknik yang lebih efisien adalah daisy chain, yang
menggunakan hardware poll. Seluruh modul I/O
tersambung dalam saluran interupsi CPU secara
melingkar (chain). Apabila ada permintaan interupsi,
maka CPU akan menjalankan sinyal acknowledge yang
berjalan pada saluran interupsi sampai menjumpai modul
I/O yang mengirimkan interupsi.
Arbitrasi bus.
Dalam metode arbitrasi bus, pertama: modul I/O
memperoleh kontrol bus sebelum modul ini
menggunakan saluran permintaan interupsi. Dengan
demikian hanya akan terdapat sebuah modul I/O yang
dapat melakukan interupsi.
c. Direct Memory Access (DMA)
Teknik yang dijelaskan sebelumnya yaitu I/O terprogram dan
Interrupt-Driven I/O memiliki kelemahan, yaitu proses yang
140
terjadi pada modul I/O masih melibatkan CPU secara
langsung. Hal ini berimplikasi pada:
Kelajuan transfer I/O yang tergantung pada kecepatan
operasi CPU.
Kerja CPU terganggu karena adanya interupsi secara
langsung.
Bertolak dari kelemahan tersebut, apalagi untuk menangani
transfer data bervolume besar dikembangkan teknik yang
lebih baik, dikenal dengan Direct Memory Access (DMA).
DMA meliputi modul tambahan pada bus sistem. Modul
DMA mampu menirukan prosesor dan bahkan, mengambil-
alih kontrol sistem dari prosesor. Modul DMA diperlukan
untuk mengajarkan ini yaitu transfer data ke memori dan dari
memori pada bus sistem. Untuk tujuan ini, modul DMA
harus menggunakan bus hanya ketika prosesor tidak
memerlukannya, atau modul DMA harus memakasa prosesor
untuk menghentikan operasi untuk sementara. Teknik
selanjutnya lebih umum dan dikenal sebagai pencurian
siklus, karena modul DMA pada hakikatnya adalah mencuri
siklus bus. Prinsip kerja DMA adalah CPU akan
mendelegasikan kerja I/O kepada DMA, CPU hanya akan
terlibat pada awal proses untuk memberikan instruksi
lengkap pada DMA dan akhir proses saja. Dengan demikian
CPU dapat menjalankan proses lainnya tanpa banyak
terganggu dengan interupsi. Blok diagram modul DMA
terlihat pada Gambar 6.4.
141
Gambar 6.4 Blok Diagram Modul DMA
Dalam melaksanakan transfer data secara mandiri, DMA
memerlukan pengambil-alihan kontrol bus dari CPU. Untuk
itu DMA akan menggunakan bus bila CPU tidak
menggunakannya atau DMA memaksa CPU untuk
menghentikan sementara penggunaan bus. Teknik terakhir
lebih umum digunakan, sering disebut cycle-stealing, karena
modul DMA mengambil alih siklus bus. Penghentian
sementara penggunaan bus bukanlah bentuk interupsi,
melainkan hanyalah penghentian proses sesaat yang
berimplikasi hanya pada kelambatan eksekusi CPU saja.
142
Terdapat tiga buah konfigurasi modul DMA seperti yang
terlihat pada Gambar 6.5.
Gambar 6.5 Konfigurasi Modul DMA
6.6 Perangkat Eksternal
Mesin komputer akan memiliki nilai apabila bisa
berinteraksi dengan dunia luar. Lebih dari itu, komputer tidak
akan berfungsi apabila tidak dapat berinteraksi dengan dunia
luar. Ambil contoh saja, bagaimana kita bisa menginstruksikan
CPU untuk melakukan suatu operasi apabila tidak ada keyboard.
Bagaimana kita melihat hasil kerja sistem komputer bila tidak
143
ada monitor. Keyboard dan monitor tergolong dalam perangkat
eksternal komputer. Perangkat eksternal atau lebih umum disebut
periferal tersambung dalam sistem CPU melalui perangkat
pengendalinya, yaitu modul I/O seperti telah dijelaskan
sebelumnya. Secara umum perangkat eksternal diklasifikasikan
menjadi 3 kategori:
Human Readable, yaitu perangkat yang berhubungan
dengan manusia sebagai pengguna komputer.
Contohnya: monitor, keyboard, mouse, printer, joystick,
disk drive.
Machine readable, yaitu perangkat yang berhubungan
dengan peralatan. Biasanya berupa modul sensor dan
transducer untuk monitoring dan kontrol suatu peralatan
atau sistem.
Communication, yatu perangkat yang berhubungan
dengan komunikasi jarak jauh. Misalnya: NIC dan
modem.
Pengklasifikasian juga bisa berdasarkan arah datanya, yaitu:
Perangkat output
Contoh perangkat output: monitor, proyektor dan printer.
Perangkat input
Contoh perangkat input : keyboard, mouse, joystick,
scanner, mark reader, bar code reader.
Kombinasi output-input
144
6.7 Transfer Data
a. Format Transfer Data
Ada 2 format pokok bagi transfer data yaitu transmisi data
paralel dan transmisi data serial. Kebanyakan komputer
menggunakan kedua format tersebut. Transfer data paralel
merupakan format yang lebih sederhana dan mencakup
pengiriman data word dengan panjang tertentu, biasa
disebut karakter, secara paralel melalui sejumlah baris
(sambungan komunikasi). Dengan kata lain, semua bit
pada karakter dikirim secara bersamaan dalam batas waktu
transmisi yang diberikan. Sebagai contoh, jika panjang
karakter 8 bit maka diperlukan 8 sambungan komunikasi
untuk mengirimnya secara paralel. Proses transfer data
serial lebih rumit. Di sini, data dikirim secara berurutan
dalam suatu baris komunikasi tunggal. Untuk mengirimkan
data secara serial, pengirim dan penerima harus membagi
batas waktu pengiriman karakter tersebut menjadi beberapa
subinterval sehingga setiap bit akan dikirim dan diterima
selama satu subinterval tersebut. Misalnya, suatu karakter
sepanjang 8 bit akan menempati delapan subinterval.
Perhatikan, karena data ditransfer secara paralel ke dan
dari CPU dan memori, maka unit interface suatu peranti
yang berkomunikasi dalam mode serial harus memiliki
sirkuit konversi data paralel ke serial dan serial ke paralel.
Dengan demikian ketika suatu peranti memasukkan
(menerima) suatu karakter, maka word data paralel yang
145
dihasilkan CPU pertama-tama harus dikonversikan
kedalam aliran bit serial. Demikian juga, jika suatu bagian
menegeluarkan (mengirimkan) data, maka aliran bit serial
yang memasuki CPU pertama-tama harus dikonversikan ke
dalam karakter. Sudah jelas bahwa transfer data paralel
lebih menguntungkan dari pada transfer data serial karena
ia memungkinkan kecepatan transfer data lebih besar.
Namun ia memiliki kerugian di mana ia membutuhkan
komunikasi yang lebih banyak daripada transfer serial.
Dengan demikian komunikasi serial biasanya digunakan
untuk jarak jauh. Namun, jika kecepatan transfer data
menjadi hal yang penting, maka kita dapat menggunakan
transmisi paralel.
b. Mode Transfer Data
Jumlah baris komunikasi biasanya melebihi jumlah bit
karakter yang dikirim dalam transfer data secara paralel
dan juga melebihi sambungan (link) tunggal yang
diperlukan untuk transfer serial. Dalam kedua kasus itu,
baris tambahan mengendalikan baris yang digunakan oleh
pengirim untuk memberikan sinyal kepada penerima kapan
data siap dibaca dan oleh penerima untuk memberikan
sinyal kepada pengirim bahwa data telah dibaca. Proses
pemberian sinyal pada transfer data paralel maupun serial
dapat bersifat synchronous atau asynchronous. Pada
transfer data synchronous, baris kendali digunakan untuk
mesinkronkan waktu pada semua kejadian yang terjadi
146
selama periode waktu tertentu. CPU dapat memasok data
ke atau menerima data dari bagian eksternal tanpa
berkomunikasi terlebih dahulu selain dengan alamat suatu
peranti. Gambar 6.6 menunjukkan pengaturan waktu pada
transfer data dan synchronous yang dikendalikan oleh
CPU. Untuk menuliskan data ke suatu peranti, CPU
menempatkan alamat peranti pada bus alamat dan
kemudian menempatkan data pada bus data. CPU
menaikkan baris kendali penulisan ke-1 dan suatu peranti
harus membaca data tersebut pada saat itu.
Gambar 6.6 Pengaturan Waktu Transfer Data (a)
Pada saat baris penulisan kembali ke-0, peranti tersebut
sudah harus membaca data itu. Demikian juga, untuk
membaca data dari suatu peranti, CPU menempatkan
alamat peranti pada bus alamat dan menaikkan baris
kendali pembacaan ke-1. Peranti yang dipilih harus
147
menempatkan data pada data bus dan menjaganya tetap di
sana sewaktu baris pembacaan ada pada posisi 1. Pada
transfer data synchronous, suatu peranti harus bereaksi
selama periode waktu tertentu yang diberikan oleh CPU.
Dengan kata lain, semua peranti harus dapat bereaksi
dengan kecepatan yang sama. Namun karena peranti-
peranti I/O bervariasi kecepatan operasinya, persyaratan ini
akan menimbulkan suatu masalah. Kita dapat memecahkan
masalah tersebut dengan mengatur durasi sinyal
pembacaan dan penulisan untuk mengakomodasikan
peranti-peranti tersebut denga respon waktu yang berbeda-
beda atau dengan mengoperasikan semua peranti pada
kecepatan yang paling rendah. Jadi jelas, bahwa semua
alternatif tersebut tidak diinginkan. Masalah tersebut dapat
dipecahkan dengan menggunakan teknik data asynchronus.
Mode ini melibatkan proses pulang-pergi (back-and-forth)
dalam meneruskan sinyal kendali antara pengirim dan
penerima. Proses ini disebut jabat tangan (handshaking),
meyakinkan transfer data yang dapat diandalkan antara
pengirim dan penerima. Baris handshake antara CPU dan
periferal mengendalikan transfer data dengan menyediakan
komunikasi dalam bentuk sinyal permintaan dan
pemberitahuan. Gambar 6.7 menunjukkan pengaturan
waktu transfer data asynchronous. Untuk penulisan dalam
mode transfer data asynchronous, CPU menempatkan
alamat suatu peranti yang terpilih pada bus alamat dan data
148
pada bus data. Kemudian CPU akan menaikkan baris
kendali penulisan ke-1. Peranti tersebut membaca data itu
dan menaikkan baris kendali data valid (yang diterima) ke-
1. CPU harus menjaga alamat dan data pada bus sampai
menerima sinyal data valid. Setelah menerima sinyal
tersebut, CPU memindahkan alamat dan data dari bus dan
menurunkan baris penulisan ke-0. Hal ini memungkinkan
peranti untuk merendahkan baris data valid.
Gambar 6.7 Pengaturan Waktu Transfer Data (b)
Proses yang sama diikuti sewaktu CPU membaca data dari
suatu peranti pada mode transfer asynchronus. Peranti
yang terpilih menempatkan data pada bus data dan
menempatkan 1 pada baris data valid untuk menunjukkan
CPU bahwa data ada pada bus dan dapat dibaca. Sekali
149
CPU menerima sinyal ini, maka CPU akan membaca data
tersebut dan menurunkan baris pembacaan. Hal ini
memungkinkan suatu peranti untuk menurukan baris data
valid. Proses jabat tangan (handshaking) memaksa CPU
untuk menunggu agar dapat mengakomodasikan peranti-
peranti yang saling berbeda kecepatannya dimana mereka
dapat membaca atau mempersiapkan data. Skema ini
sangat fleksibel dan dapat diandalkan karena ia tergantung
pada partisipasi aktif pengirim dan penerima untuk
menyelesaikan suatu operasi transfer data. Jika suatu pihak
tidak berfungsi, maka transfer data tidak akan rampung dan
mekanisme time-out akan diaktifkan. Time-out diterapkan
oleh counter internal yang diaktifkan oleh sinyal
handshake dan waktu perhitungan. Jika sinyal handshake
yang kembali tidak terdeteksi dalam periode waktu tertentu
maka akan terjadi suatu kesalahan dan sinyal time-out
digunakan untuk menginterupsi CPU agar menjalankan
routine penanganan kesalahan yang semestinya. Contoh
lain mengenai sinyal handshake yang dihasilkan oleh
sirkuit logika handshaking adalah interrupt acknowledge
(INTA) dan interrupt request (INTR). Sinyal INTA
dihasilkan sewaktu penerima menerima sinyal INTR dari
pengirim. INTA menujukkan bahwa penerima telah siap
memasukkan data dari bus data dan pengirim mengakuinya
dengan menempatkan data pada bus data. Operasi transfer
data asynchronous mungkin menghasilkan kecepatan
150
transfer yang lebih tinggi dan memerlukan lebih sedikit
baris kendali tetapi menyebabkan hambatan kecepatan dan
kekompakan pada peranti periferal. Operasi transfer data
asynchronous biasanya menghasilkan kecepatan transfer
yang lebih rendah dan memerlukan lebih banyak baris
kendali tetapi memungkinkan penggunaan periferal yang
memiliki berbagai variasi kecepatan dalam sistem yang
sama.
c. Prinsip Operasi Transfer Data
Skema yang paling sederhana dan transparan adalah I/O
terprogram. Ia dapat diterapkan dengan paling sedikit dua
instruksi I/O, meskipun terkadang ada instruksi tambahan.
Dengan demikian dalam I/O terprogram, diambil langkah-
langkah berikut:
1. CPU menguji flag status suatu peranti secara periodik
untuk menentukan apakah peranti itu siap untuk memulai
transfer data.
2. Jika peranti tersebut siap, CPU menerbitkan sinyal
pembacaan atau penulisan dan terjadi transfer data. Dalam
mode input suatu instruksi IN menyebabkan suatu word
data ditransfer dari port I/O ke sebuah register CPU,
kemudian CPU akan memindahkan word data ke lokasi
memori yang semestinya. Sedangkan dalam mode output,
data word dari memori ditempatkan ke sebuah register
CPU dan ditransfer, di bawah instruksi OUT, ke port I/O.
151
3. CPU menunggu sebuah tanda dari peranti I/O bahwa
transfer data transfer telah rampung.
Langkah-langkah berikut ini harus dilakukan untuk
melaksanakan sebuah proses I/O interupsi yang dihasilkan
oleh sebuah peranti I/O atau lebih:
1. Peranti I/O menerbitkan sinyal INTR.
2. CPU menguji apakah peranti yang berinterupsi di-mask.
Jika tidak maka CPU menguji posisi prioritas interupsi
peranti tersebut dengan prioritas program yang sedang
berjalan dan prioritas peranti lain memerlukan suatu
interupsi pada saat yang bersamaan.
3. Jika prioritas tersebut mempunyai prioritas yang tepat
maka CPU mengirimkan sebuah sinyal INTA dan mem-
fetch vector interupsi peranti tersebut.
4. CPU menyimpan status program yang sedang berjalan (isi
register word status program) dalam memori dan alamat
kembali (isi dari program counter). Biasanya CPU
memasukkan informasi ini ke dalam memori stack.
5. CPU melompat ke routine pelayanan interupsi peranti dan
melaksanakannya.
6. CPU mendapatkan kembali (pop) PSW dan PC dari dalam
memori stack dan kembali ke program utama.
Seperti yang kita lihat, proses I/O interupsi menggunakan
tiga routine yaitu sebuah routine pelayanan, sebuah routine
PUSH untuk menyimpan PSW dan PC ke dalam stack dan
152
sebuah routine POP untuk mendapatkan kembali PSW dan
PC dari dalam stack.
Untuk melaksanakan suatu operasi DMA, maka pertama-
tama DMA controller (DMAC) harus diinisialisasikan,
biasanya di bawah suatu proses jabat-tangan (handshaking)
INTR/INTA:
1. Word counter (WC) di-load dengan jumlah word yang
akan ditransfer.
2. DMA address register (DAR) di-load dengan alamat awal
dari blok memori ke (dari) tempat dimana data akan
ditansfer.
3. Control/status register (DSCR) di-load dengan pola bit
kendali/status yang sesuai.
Ketiga register tersebut biasanya dialamati oleh CPU
sebagai suatu peranti output. Setelah menginisialisasi
DMAC maka proses DMA akan dikerjakan sebagai
berikut:
4. Sebuah DMA request (DMAR) dikeluarkan setelah
memastikan bahwa register data input (IDR) telah
membuat data siap untuk ditransfer dalam mode penulisan
memori atau bahwa register data output (ODR) telah
kosong dalam mode pembacaan memori. Misalnya, dalam
suatu transfer input (penulisan memori), DMAC memulai
peranti, mengambil word data dan menyimpannya ke
dalam IDR. Kemudian word ini ditransfer ke lokasi
memori yang dialamati oleh DAR, yaitu :
153
MAR ← (DAR)
MBR ← (IDR)
Transfer ini dilakukan dengan menggunakan bus alamat
dan data.
5. Pada penerimaan sinyal DMA acknowledge (DMAA),
transfer data adalah sebagai berikut:
a) WC berkurang dan DAR bertambah setelah tiap-tiap
proses transfer word data.
b) WC diuji berulang-ulang apakah bernilai nol.
c) Jika WC bernilai nol maka DMAC menghasilkan INTR,
memberi sinyal pemberhentian proses DMA. Kemudian
CPU melompat ke routine pelayanan interupsi dan
menjalankannya.
d. Contoh alat input adalah:
1. Keyboard
2. Pointing mouse (contoh : mouse, trackball, touch screen,
light pen, digitizer graphic table)
3. Scanner
4. Sensor
5. Voice recognizer
6. Joystick, gamepad, webcam
7. Contoh lain seperti barcode, headset, handycam, alat
pendeteksi sidik jari
Keyboard
Keyboard adalah alat yang digunakan untuk memasukkan teks
dan juga untuk mengontrol pengoprasian komputer. Ada
154
beberapa jenis tata letak tombol pada keyboard. Namun yang
paling sering digunakan adalah tata letak QWERTY, yang
merupakan tata letak mesin ketik yang paling populer, saat ini
keyboard juga ada yang nirkabel atau menggunakan teknologi
wireless.
Mouse
Mouse adalah alat yang digunakan untuk memasukan data ke
dalam komputer selain keyboard.
TrackBall
Trackball adalah alat penunjuk yang berupa sebuah bola yang
berada di dalam sebuah alat yang memiliki sensor gerakan
trackball umumnya terdapat pada mouse. Modern trackball
mensimulasikan pergerakan vertikal mouse, sehingga pengguna
tidak perlu menggerakkan mouse untuk menggerakkan cursor.
Tablet Grafis
Tablet grafis adalah perangkat keras atau input device komputer
yang memperbolehkan user untuk menggambar dengan jari.
Layaknya menggambar di atas kertas.
Scanner
Scanner adalah suatu mesin yang cara kerjanya sama seperti
mesin fotokopi tetapi pada mesin fotokopi hasilnya dapat dilihat
langsung pada kertas. Sedangkan scanner hasilnya dapat kita
lihat di layar monitor dan dapat di-print dengan menggunakan
printer.
155
Voice Recognizer
Kalau kamera digunakan untuk memasukkan input berupa
gambar (dan suara), maka mic digunakan hanya untuk
memasukkan input berupa suara. Penggunaan mic tentu saja
memerlukan perangkat keras tambahan untuk menerima input
suara tersebut yaitu sound card dan speaker untuk mendengarkan
hasil rekaman suara.
Webcam
Webcam (singkatan dari web camera) adalah sebutan bagi
kamera real-time (bermakna keadaan pada saat ini juga) yang
gambarnya bisa diakses atau dilihat melalui World Wide Web,
program instant messaging atau aplikasi video call. Istilah
"webcam" juga merujuk kepada jenis kamera yang digunakan
untuk keperluan ini.
Sedangkan alat input tidak langsung misalnya keypunch
yang dilakukan melalui media punched card (kartu plong), key-
to-tape yang merekam data ke media berbentuk pita (tape)
sebelum diproses oleh alat pemroses dan key-to-disk yang
merekam data ke media magnetic disk (misalnya disket atau
harddisk) sebelum diproses lebih lanjut.
e. Alat output dapat berupa:
1. Speaker (internal, external);
2. Printer dan Plotter;
3. Monitor;
4. Infocus;
5. Slide;
156
6. Microfilm;
7. Sound Card;
8. Projector.
Speaker (Internal, External)
Pengeras suara (loud speaker atau speaker saja) adalah
transducer yang mengubah sinyal elektrik ke frekuensi audio
(suara) dengan cara menggetarkan komponennya yang berbentuk
selaput.
Printer dan Plotter
Printer dan plotter adalah jenis hard-copy device, karena
keluaran hasil proses dicetak di atas kertas. Printer memiliki
berbagai macam bentuk dan ukuran, serta ketajaman hasil cetak.
Ukuran kertas yang dapat digunakan pun beragam. Tetapi, untuk
mencetak di atas kertas dengan ukuran yang sangat besar,
misalnya: rancangan rumah, peta, dll, digunakanlah plotter.
Monitor
Monitor adalah salah satu jenis soft-copy device, karena
keluarannya adalah berupa signal elektronik, dalam hal ini
berupa gambar yang tampil di layar monitor. Gambar yang
tampil adalah hasil pemrosesan data ataupun informasi masukan.
Monitor memiliki berbagai ukuran layar seperti layaknya sebuah
televisi. Tiap merek dan ukuran monitor memiliki tingkat
resolusi yang berbeda. Resolusi inilah yang akan menentukan
ketajaman gambar yang dapat ditampilkan pada layar monitor.
Jenis-jenis monitor saat ini sudah sangat beragam, mulai dari
157
bentuk yang besar dengan layar cembung, sampai dengan bentuk
yang tipis dengan layar datar (flat).
Infocus
Infocus hampir sama dengan monitor. Fungsinya adalah untuk
menampilkan gambar/visual hasil pemrosesan data. Hanya saja,
infocus memerlukan obyek lain sebagai media penerima
pancaran sinyal-sinyal gambar yang dipancarkan. Media
penerima tersebut sebaiknya memiliki permukaan datar dan
berwarna putih (terang). Biasanya yang digunakan adalah
dinding putih, whiteboard ataupun kain/layar putih yang
dibentangkan.
158
BAB 7
ARITMATIKA KOMPUTER
7.1 Pendahuluan
Dalam mempelajari ilmu komputer, kita harus mengetahui
apa saja yang terdapat pada komputer itu sendiri. Oleh karena itu
perlu dijelaskan tentang “Aritmatika Komputer” yang di
dalamnya terdapat unit aritmatika dan logika, representasi
integer, aritmatika integer, representasi tititk mengambang dan
aritmatika titik mengambang. Banyak manfaat yang kita
dapatkan apabila mempelajari aritmatika komputer, yaitu:
mengerti bagian-bagian ALU, memahami representasi integer,
memahami berbagai macam cara operasi (penambahan,
pengurangan, perkalian dan pembagian) dengan representasi
interger, memahami representasi floating point, memahami cara
penambahan, pengurangan, perkalian dan pembagian dengan
representasi floating Point. Operasi aritmatika binary, merupakan
proses aritmatika yang melandasi tentang proses aritmatika dan
logika pada sistem digital dan komputer modern. Namun pada
kenyataanya, operasi aritmatika tersebut tidak dapat diwakili oleh
159
operasi yang terdapat pada gerbang dasar, walaupun secara
prinsipnya tiap-tiap gerbang mewakili satu operasi aritmatika,
terutama operasi aritmatika penjumlahan dan pengurangan.
7.2 Unit Aritmatika dan Logika
Unit Aritmatika dan Logika merupakan bagian pengolah
bilangan dari sebuah komputer. Di dalam operasi aritmetika ini
sendiri terdiri atas berbagai macam operasi, di antaranya adalah
operasi penjumlahan, pengurangan, perkalian dan pembagian.
Mendesain ALU juga memiliki cara yang hampir sama dengan
mendesain encoder, decoder, multiplexer dan demultiplexer.
Rangkaian utama yang digunakan untuk melakukan perhitungan
ALU adalah Adder.
7.3 Adder
Rangkaian ALU (Arithmetic and Logic Unit) yang
digunakan untuk menjumlahkan bilangan dinamakan dengan
Adder. Karena Adder digunakan untuk memproses operasi
aritmatika, maka Adder juga sering disebut rangkaian
kombinasional aritmatika. Terdapat beberapa jenis Adder:
1. Rangkaian Adder yang hanya menjumlahkan dua bit
disebut Half Adder.
2. Rangkaian Adder yang menjumlahkan tiga bit disebut
Full Adder.
3. Rangkaian Adder yang menjumlahkan banyak bit disebut
Parallel Adder.
160
a. Half Adder
Rangkaian half adder merupakan dasar penjumlahan
bilangan biner yang masing-masing hanya terdiri atas satu
bit, oleh karena itu dinamakan penjumlah tak lengkap.
1. Jika A=0 dan B=0 dijumlahkan, hasilnya S (Sum) = 0.
2. Jika A=0 dan B=1 dijumlahkan, hasilnya S (Sum) = 1.
3. Jika A=1 dan B=1 dijumlahkan, hasilnya S (Sum) = 0.
dengan nilai pindahan Cy (Carry Out) = 1.
Dengan demikian, half adder memiliki 2 masukan (A dan B)
dan dua keluaran (S dan Cy).
Tabel 7.1 Half Adder
A B S Cy
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Dari Tabel 7.1, terlihat bahwa nilai logika dari Sum sama
dengan nilai logika dari gerbang XOR, sedangkan nilai
logika Cy sama dengan nilai dari gerbang logika AND.
Dari tabel tersebut, dapat dibuat rangkaian half adder
(Gambar 7.1).
161
Gambar 7.1 Rangkaian Full Adder
b. Full Adder
Full adder mengolah penjumlahan untuk 3 bit bilangan atau
lebih (bit tidak terbatas), oleh karena itu dinamakan
rangkaian penjumlah lengkap. Perhatikan tabel kebenaran
dari Full adder (Tabel 7.2).
Tabel 7.2 Tabel Kebenaran dari Full adder
A B C S Cy
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Dari Tabel 7.2 dapat dibuat persamaan Boolean sebagai
berikut :
162
S = A B C + A B C + A B C + A B C
S = A Å B Å C
Cy = A B C + A B C + A B C + A B C
Dengan menggunakan peta Karnaugh, Cy dapat diserhanakan
menjadi :
Cy = AB + AC + BC
Gambar 7.2 Rangkaian Full Adder
c. Paralel Adder
Parallel Adder adalah rangkaian Full Adder yang disusun
secara paralel dan berfungsi untuk menjumlah bilangan biner
berapapun bitnya, tergantung jumlah Full Adder yang
diparalelkan. Gambar berikut menunjukkan Parallel Adder
yang terdiri atas 4 buah Full Adder yang tersusun paralel
sehingga membentuk sebuah penjumlah bit.
7.4 Penjumlahan
Komputer hanya dapat melakukan proses aritmatika
menggunakan bilangan biner. Semua sistem bilangan harus
163
diubah terlebih dahulu ke biner agar dapat diproses. Proses yang
biasa dilakukan oleh komputer untuk menjumlahkan sistem
bilangan desimal biasanya adalah menyandikan ke 8421BCD
terlebih dahulu sebelum dijumlahkan. Sebelum mempelajari
tentang penjumlahan pada 8421BCD, ada baiknya mengetahui
cara menjumlahkan bilangan biner.
a. Penjumlahan Biner
Ada 4 kondisi yang terjadi pada penjumlahan biner yaitu
apabila 0 + 0, 0 + 1, 1 + 0, dan 1 + 1. Jika yang terjadi
adalah 1 + 1, kita tidak dapat menyatakan hasil jumlah
dalam satu digit. Tetapi kita harus melakukan penyimpanan
(Carry Out) kedalam kolom yang lebih tinggi. Ini berlaku
untuk seluruh sistem bilangan. Sebagai contoh pada
bilangan desimal 2 + 5 = 7 dengan carry out = 0, 9 + 9 = 8
Contoh :
102+ 102
a. 1 Carry out
10
10 +
100
b. 01002 + 01112
1 Carry
0100
0111 +
1011
c. 111112 + 11112 + 111012 + 101112
164
3 3 3 2 2 Carry out
1 1 1 1 1
0 1 1 1 1
1 1 1 0 1
1 0 1 1 1 +
1 1 0 0 0 1 0 2
b. Penjumlahan 8421BCD
Sandi 8421BCD hanya menggunakan bilangan biner untuk
0 sampai 9, karena yang disandikan hanya 1 digit angka
desimal. Dalam penjumlahan yang perlu diperhatikan
adalah jika hasilnya lebih dari 9 sehingga akan dihasilkan
auxillary carry (Carry dari bilangan keempat LSB) maupun
carry dari MSB. Berikut adalah aturan penjumlahan sandi
8421BCD:
Jika jumlah biner dan jumlah BCD sama, yaitu AC
(Auxillary Carry) = 0 dan Carry = 0 maka tidak
diperlukan aturan tambahan.
Contoh:
Bilangan 1 = 0 1 1 0 0 0 1 0 (BCD) = 6 2 (desimal)
Bilangan 2 = 0 0 1 0 0 1 0 1 (BCD) = 2 5 (desimal)
+
Biner = 1 0 0 0 0 1 1 1 (Cy=0; AC = 0)
BCD = 1 0 0 0 0 1 1 1 = 8 7 (desimal)
Jika jumlah biner tidak sama dengan jumlah desimal
maka memerlukan pengaturan tambahan.
165
Jika Auxillary Carry (AC) = 0 atau AC = 1 dan Carry
(Cy) = 0 dimana hasil penjumlahan binernya lebih dari 9
desimal, maka perlu ditambahkan 6 pada nible rendah
tersebut dan tambahkan 1 pada nible yang lebih tinggi.
Contoh :
1 1 1
Bilangan 1 = 0 0 1 1 0 1 1 1 (BCD) = 3 7 (desimal)
Bilangan 2 = 0 0 1 0 0 1 1 0 (BCD) = 2 6 (desimal) +
Biner = 0 1 0 1 1 1 0 1
+ 1 & + 6 = 0 0 0 1 0 1 1 0 (Cy=0; AC = 0)
BCD = 0 1 1 0 0 0 1 1 = 6 3 (desimal)
c. Pengurangan
Pengurangan pada dasarnya merupakan penjumlahan, yaitu
penjumlahan dengan bilangan negatif.
500 – 255 = 245 (Pengurangan)
500 + (-)255 = 245 (Penjumlahan)
Komputer hanya bekerja pada bilangan “0” dan “1” dan
tidak mengenal bilangan negatif. Untuk menunjukkan
bilangan negatif, komputer menggunakan tanda modulus
(Modulus Sign). Pada penjumlahan desimal tanda modulus
yang digunakan adalah “0” untuk bilangan positif dan “9”
untuk bilangan negatif. Untuk bilangan negatif, pada operasi
penjumlahannya, harus dikomplemen. Komplemen yang
digunakan pada bilangan desimal adalah komplemen 10 dan
komplemen 9.
166
d. Pengurangan Bilangan Desimal
Komplemen 10: pada komplemen 10, bilangan negatif
dikurangkan 9, kemudian ditambahkan 1 pada bit
terakhir. Pada penjumlahannya, bila ada carry, carry
tersebut dapat dihilangkan. Tanda modulus ikut
dijumlahkan.
Contoh:
Komplemen 10 dari -255.
-25510 = (9) 7 4 510 (angka 9 menunjukkan tanda modulusnya).
5 0 0 (0) 5 0 0
2 5 5 - (9) 7 4 5 +
2 4 5 1 (0) 2 4 5
Cy dihilangkan
Komplemen 9
Pada komplemen 9, bilangan negatif dikurangkan 9.
Bila ada carry, maka carry ikut dijumlahkan pada hasil
akhir.
Contoh :
Komplemen 9 dari-255.
-25 510 = (9) 7 4 410 (angka 9 menunjukkan tanda
modulusnya).
5 0 0 (0) 5 0 0
2 5 5 - (9) 7 4 4 +
2 4 5 1 (0) 2 4 4
1+(Cy)
(0) 2 4 5 Cy ditambahkan
167
Bila hasil akhir bernilai negatif, maka nilainya harus
dikomplemen lagi (Berlaku untuk komplemen 10 dan
komplemen 9). Jika komplemen 10, maka hasil akhir
setelah dikomplemen harus ditambah 1. Jika komplemen
10, hasil akhirnya merupakan hasil sebenarnya (tidak
perlu ditambah 1).
Contoh:
Komplemen 10 dari -500.
50 010 = (9) 5 0 010 (angka 9 menunjukkan tanda modulusnya).
2 5 5 (0) 2 5 5
5 0 0 - (9) 5 0 0 +
-2 4 5 (9) 7 5 5 (9 menunjukkan negatif)
2 4 4 + 1
(9) 2 4 5
Komplemen 9 dari -500.
-50 010 = (9) 4 9 910 (angka 9 menunjukkan tanda modulusnya).
2 5 5 (0) 2 5 5
5 0 0 - (9) 4 9 9 +
24 5 (9) 7 5 4 (9 menunjukkan negatif)
2 4 5
(9) 2 4 5
e. Pengurangan Bilangan Biner
Pada penjumlahan biner, komplemen yang digunakan
adalah komplemen 2 dan komplemen 1. Untuk
mendapatkan komplemen bilangan biner, cukup dengan
168
membalik angkanya saja. Jika “0” dibalik menjadi “1”, dan
jika “1” dibalik menjadi “0”. Komplemen 2 mirip dengan
komplemen 10 pada bilangan desimal (Carry dihilangkan),
sedangkan komplemen 1 mirip dengan komplemen 9 (Carry
ditambahkan pada hasil akhir).
Komplemen 2
Contoh:
Pengurangan antara 910 (10012) dengan 510 (01012)
Komplemen 2 dari –5 (0101).
0 1 0 1 = (1) 1 0 1 1 (angka 1 menunjukkan
tanda modulusnya).
9 (0) 1 0 0 1
5 - (1) 1 0 1 1 +
4 1 (0) 0 1 0 0
Cy dihilangkan
Komplemen 1
Contoh:
Komplemen 1 dari –5 (0101).
0 1 0 1 = (1) 1 0 1 0 (angka 1 menunjukkan
tanda modulusnya).
9 (0) 1 0 0 1
5 - (1) 1 0 1 0 +
4 1 (0) 0 0 1 1
1
(0) 0 1 0 0
Cy Ditambahkan
169
Bila hasil akhir bernilai negatif, maka nilainya harus
dikomplemen lagi (berlaku untuk komplemen 2 dan
komplemen 1). Jika komplemen 2, maka hasil akhir
setelah dikomplemen harus ditambah 1. Jika komplemen
1, hasil akhirnya merupakan hasil sebenarnya (tidak
perlu ditambah 1).
Contoh:
Pengurangan antara 510 dengan 910
Komplemen 2dari –9.
1 0 0 1 = (1) 0 1 1 1 (angka 1 menunjukkan tanda modulusnya).
5 (0) 0 1 0 1
9 - (1) 0 1 1 1 +
4 (1) 1 1 0 0 (1 menunjukkan negatif)
0 0 1 1 + 1
(1) 0 1 0 0
Komplemen 1 dari –9.
1 0 0 1 = (1) 0 1 1 0 (angka 1 menunjukkan tanda modulusnya).
5 (0) 0 1 0 1
9 - (1) 0 1 1 0 +
-4 (1) 1 0 1 1 (1 menunjukkan negatif)
0 1 0 0
(1) 0 1 0 0
f. Perkalian
Perkalian antara bilangan biner adalah perkalian yang paling
mudah di antara sistem bilangan lainnya.
9 1 0 0 1
10 × 1 0 1 0 ×
170
90 0 0 0 0
1 0 0 1
0 0 0 0
1 0 0 1 +
1 0 1 1 0 1 0
64 0 16 8 02 0 = 90
Pada Teknik Komputer, perkalian dilakukan menggunakan
register geser kanan (Shift Right Register). Perhatikan
contoh berikut:
Register A untuk menyimpan data yang akan
dikalikan (Multiplicand).
Register B untuk menyimpan data pengali
(Multiplier).
Register P untuk menyimpan hasil perkalian.
9 X 10
Register A Register B Register P
1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0
M M=0, Reg. P tidak diubah
Geser Reg B & P 1 bit ke kanan
1 0 0 1 1 0 1 0 0 0 0 0 0 0 0
M M=1,Reg A ditambahkan pada P diMSBnya.
1 0 0 1 0 0 0 0
Geser Reg B & P 1 bit kekanan
1 0 0 1 1 0 0 1
0 0 1 0 0 0
M M = 0, Reg. P tidak diubah
171
Geser Reg B & P 1 bit kekanan
1 0 0 1 1 0 0 1 0
0 1 0 0
M M = 1, Reg A ditambahkan pada P di
MSBnya
1 0 1 1 0 1 0 0
Reg. P geser lagi
0 1 0 1 1 0 1 0
0 64 0 16 8 0 2 0 =90
g. Pembagian
Kebalikan dari perkalian, pembagian (division) adalah suatu
bentuk dari pengurangan yang dilakukan berulang-ulang.
Dan proses ini juga dapat dilakukan pada rangkaian logika
dengan cara pengurangan dan penggeseran ke kiri
(menggunakan shift left register). Berikut adalah aturan dari
pembagian:
Kurangkan bilangan pembagi (divisor) dari MSB bilangan
yang akan dibagi (dividend), lihat hasil pengurangan.
Bila hasilnya 1 atau positif :
Berarti hasil pembagian (product) adalah 1. Setelah itu
hasil pengurangan digeser ke kiri satu bit dan dimulai
lagi pengurangan oleh bilangan pembagi (divisor).
172
Bila hasilnya 0 atau negatif :
Berarti hasil pembagian (product) adalah 0. Dalam hal
ini sebelum digeser ke kiri harus ditambah dulu dengan
bilangan pembagi (divisor). Setelah digeser ke kiri satu
bit, dimulai lagi proses pengurangan oleh bilangan
pembagi. Pengurangan oleh bilangan pembagi dilakukan
dengan penjumlahan komplemen 2. Bila dalam
penjumlahan tersebut terdapat pindahan (carry), maka
carry tersebut diabaikan.
Perhatikan contoh berikut:
1010 : 410 = 10102 : 1004
Catatan: Karena ada hasil pengurangan yang negatif,
maka digit yang dihasilkan setelah itu adalah digit
pecahan, sehingga hasil yang benar 10,12 atau 2,510.
7.5 Floating Point Arithmetic
a. Bentuk Bilangan Floating Point
Bilangan Floating Point memiliki bentuk umum: + m *
b,
dimana m (disebut juga dengan mantissa), mewakili
bilangan pecahan dan umumnya dikonversi ke bilangan
binernya, e mewakili bilangan exponent-nya sedangkan b
mewakili radix (basis) dari exponent.
Gambar 7.3 Floating Point
173
Contoh: Pada Gambar 7.3, menunjukkan tentang panjang
bit pada bilangan floating point m = 23 bit, e =8 bit dan S
(bit sign) = 1. Jika nilai yang tersimpan di S adalah 0,
maka bilangan tersebut adalah positif dan jika nilai yang
tersimpan pada S adalah 1, maka bilangan tersebut adalah
negatif. Bilangan exponent pada contoh sebelumnya,
hanya dapat digunakan pada bilangan positif 0 hingga 255.
Untuk dapat menggunakan bilangan exponent negatif dan
positif, nilai bulat yang disebut dengan bias, dikurangkan
dengan bilangan pada kolom exponent dan menghasilkan
bilangan exponent akhir. Misalkan pada contoh
sebelumnya menggunakan bias = 128, maka bilangan
exponent akhirnya memiliki range antara 128 (disimpan
sebagai 0 pada kolom exponent) hingga +127 (disimpan
sebagai 255 pada kolom exponent). Berdasarkan bentuk
seperti ini, bilangan exponent +4 dapat digunakan dengan
menyimpan 132 pada kolom exponent, sedangkan bilangan
exponent 12 dapat digunakan dengan menyimpan 116 pada
kolom exponent. Anggap b = 2, maka bilangan floating
point seperti 1,75 dapat menggunakan salah satu dari
bentuk umum seperti pada Gambar 7.4.
Gambar 7.4 Bentuk Umum Floating Point
174
b. Macam-Macan Bentuk Bilangan Floating
Untuk mempermudah operasi bilangan floating point dan
menambah tingkat presisinya, maka bilangan tersebut
dibuat dalam bentuk ternormalisasi (normalized forms).
Suatu bilangan floating point telah ternormalisasi jika most
significant bit (MSB) dari mantissa-nya adalah 1. Karena
itu, di antara ketiga bentuk tersebut sebelumnya dari
bilangan 1,75, maka bentuk yang telah ternormalisasi
adalah bentuk yang paling atas dan disarankan untuk
digunakan. Karena nilai MSB dari bilangan floating point
yang telah ternormalisasi selalu 1, maka bit ini tidak
disimpan, sehingga nilai mantissa yang tersimpan adalah
1.m, sehingga untuk bilangan floating point bukan nol
yang ternormalisasi memiliki bentuk (-1)s
*(1.m)*2e-128
.
c. Aritmetika Floating Point Penjumlahan/
Pengurangan
Hal yang sulit dari penjumlahan dua bilangan exponent
adalah jika bilangan-bilangan tersebut memiliki bentuk
eksponensial yang berbeda. Untuk memecahkannya, maka
sebelum ditambahkan bilangan eksponensialnya harus
disetarakan terlebih dahulu atau bilangan dengan nilai
exponent lebih kecil disamakan dulu ke bilangan exponent
yang sama dengan bilangan lain. Langkah-langkah yang
dilakukan untuk menambah/ mengurangkan dua bilangan
floating point:
1. Bandingkan kedua bilangan dan ubah ke bentuk yang
175
sesuai pada bilangan dengan nilai eksponensial lebih
kecil.
2. Lakukan operasi penjumlahan/ pengurangan .
3. Lakukan normalisasi dengan ‟menggeser‟ nilai mantissa
dan mengatur nilai exponensialnya
Contoh: Jumlahkan dua bilangan floating point 1,1100*24
dan 1,1000*22
1. Sesuaikan: 1,1000 *22 diubah menjadi 0,0110*24
2. Jumlahkan: hasil penjumlahan 10,0010*24
3. Normalisasi : hasil setelah dinormalisasi adalah 0,1000*26
(dianggap bit yang diijinkan setelah koma adalah 4)
Operasi penjumlahan/pengurangan dua bilangan floating
point diilustrasikan dengan skema seperti pada Gambar
7.5.
Gambar 7.5 Operasi Floating Point
Perkalian
Perkalian dari dua bilangan floating point dengan bentuk X =
mx* 2a
dan Y = my* 2b
setara dengan X*Y = (mx*my)*2a+b
.
176
Algoritma umum untuk perkalian dari bilangan floating point
terdiri atas tiga langkah:
1. Hitung hasil eksponensial dengan menjumlahkan nilai
eksponen dari kedua bilangan.
2. Kalikan kedua bilangan mantissa.
3. Normalisasi hasil akhir.
Contoh: Perkalian antara dua bilangan floating point X =
1,000 * 2ˉ² dan Y = ¬1,010 * 2ˉ¹
1. Tambahkan bilangan eksponennya ¬2 + (¬1) =¬3
2. Kalikan mantissa : 1,0000 * ¬1,010 = ¬1,010000
Hasil perkaliannya adalah 1,0100 * 23
Perkalian dari dua bilangan floating point diilustrasikan
menggunakan skema seperti tampak pada Gambar 7.6.
Gambar 7.6 Perkalian Dua Bilangan Floating Point
Pembagian
Pembagian dari dua bilangan floating point dengan bentuk X
= mx*2a
dan Y = mx*2b setara dengan X / Y = (mx/ my)*2
a-b
Algoritma umum untuk pembagian dari bilangan floating
177
point terdiri atas tiga langkah:
1. Hitung hasil eksponensial dengan mengurangkan nilai
eksponen dari kedua bilangan.
2. Bagi kedua bilangan mantissa
3. Normalisasi hasil akhir
Contoh: Pembagian antara dua bilangan floating
point X = 1,0000 *2ˉ² dan Y = -1,0100 *2ˉ¹
1. Kurangkan bilangan eksponennya : -2 –(-1) = -1
2. Bagi mantissa: 1,0000 / -1,0100 = -0,1101
Hasil pembagiannya adalah ¬0,1101 * 2ˉ¹
Pembagian dari dua bilangan floating point diilustrasikan
menggunakan skema seperti tampak pada Gambar 7.7.
Gambar 7.7 Pembagian Dua Bilangan Floating Point
d. Floating Point Standar IEEE
IEEE membuat dua bentuk bilangan floating point
standard. Bentuk basic dan bentuk extended. Pada tiap
bentuk tersebut, IEEE menentukan dua format, yaitu single
precision dan double precision format. Single precision
format adalah model 32 bit sedangkan double precision
format adalah 64 bit. Pada single extended format
setidaknya menggunakan 44 bit, sedangkan pada double
extended format setidaknya menggunakan 80 bit. Pada
single precision format, mengijinkan penggunaan bit
178
tersembunyi, kolom eksponennya adalah 8bit. Bentuk
single precision ditunjukkan pada Gambar 7.8.
Gambar 7.8 Single Precision
e. IEEE Single Precision Format
Jika jumlah bit bilangan exponent adalah 8, maka nilainya
memiliki 256 kombinasi, di antara angka-angka tersebut,
dua kombinasi digunakan sebagai nilai khusus:
1. e = 0 bernilai nol (jika m = 0) dan nilai
terdenormalisasi (jika m ≠ 0)
2. e = 255 bernilai ± ∞ (jika m = 0) dan nilai tak terdefinisi
(jika m ≠ 0)
Tabel 7.3 Single Precision Format
f. IEEE Double Precision Format
Bentuk ini memiliki kolom exponent 11 bit dan kolom
nilai mantissa sebesar 52 bit. Bentuknya seperti tampak
179
pada Tabel 7.4.
Tabel 7.4 Karakteristik IEEE Single dan Double
Floating Point Format
7.6 Aritmatika Fixed-Point
a. Definisi
Komputer menetapkan titik desimal pada titik tertentu.
Umumnya ditetapkan pada titik kiri terjauh dari word
sehingga komputer akan memperlakukan semua angka
sebagai pecahan. Sistem ini akan mempermudah rutin
aritmatika. Programmer harus membuat koreksi pada
masukan dan keluaran program jika ingin mengubah letak
titik desimal. Fixed-point pada intinya adalah integer yang
berskala oleh faktor tertentu. Sebagai contoh, bilangan real
1,23 dapat dilihat sebagai 123/100; di sini, faktor skalanya
adalah 100. Penting untuk dicatat bahwa faktor penskalaan
ditentukan oleh jenis, berlaku untuk semua nilai dari suatu
tipe fixed-point. Di sisi lain, floating-point menyimpan
faktor skala sebagai bagian dari nilai, yang memungkinkan
floating-point memiliki nilai yang lebih luas. Untuk
180
menambah atau mengurangi fixed-point dua komplemen,
hanya dengan menambah atau mengurangi bilangan bulat
yang mendasarinya. Hal yang sama dilakukan untuk
perkalian atau pembagian, hasil perlu diskala ulang-untuk
hasil perkalian harus dibagi dengan faktor skala, untuk
pembagian perlu dikalikan dengan faktor skala. Untuk
membuktikannya, misalkan kita ingin mengalikan dua
bilangan real a dan b, disimpan sebagai fixed-point dengan
faktor penskalaan S. Jika kita mengalikan bilangan bulat
yang mendasarinya, kita memperoleh aS · bS = abS2.
Namun, nilai yang kita inginkan adalah abS, jadi kita perlu
untuk membagi dengan S.
b. Notasi
Ada berbagai notasi yang dapat digunakan untuk mewakili
panjang word dan radix point dalam binary fixed-point.
Berikut, f merepresentasikan jumlah bit fraksional, m
jumlah besaran atau integer bit, s jumlah sign bit dan b
jumlah total bit.
Qf : Prefix “Q”. Sebagai contoh, Q15 mewakili
sejumlah pecahan dengan 15 bit. Notasi ini ambigu
karena tidak menentukan panjang word, namun
biasanya diasumsikan bahwa panjang word adalah 16
atau 32 bit, tergantung pada target prosesor yang
digunakan.
Q m .f : Bentuk notasi “Q” yang tidak ambigu. Karena
merupakan bilangan berkomplemen 2, maka terdapat
181
sign bit. Sebagai contoh, Q1.30 menggambarkan 1
bilangan bit dan 30 bit disimpan sebagai pecahan 32-bit
bilangan berkomplemen 2.
fx m .b : Perfix “fx” mirip dengan sebelumnya, tetapi
menggunakan panjang word sebagai item kedua dalam
pasangan titik. Contoh, fx1.16 menggambarkan angka
dengan 1 besaran bit dan 15 bit dalam pecahan 16 bit
word.
s :m : f : Merupakan notasi lain termasuk sign bit,
seperti ini digunakan dalam PS2 GS User‟s Guide. Hal
ini juga berbeda dari penggunaan konvensional dengan
menggunakan titik dua periode bukan sebagai pemisah.
Sebagai contoh, dalam notasi ini, 0:8:0 mewakili 8-bit
unsigned integer.
c. Representasi Bilangan Fixed-Point
Untuk representasi bilangan fixed-point diperlukan:
lokasi atau register penyimpanan komputer yang
ukurannya memadai untuk menyimpan seluruh digit
bilangan.
kemungkinan untuk menjaga track tempat beradanya point
tersebut
contoh:
Contoh desimal untuk representasi 5 digit. Jika
diasumsikan posisi point adalah:
182
Merepresentasikan 13.75
Tiga klasifikasi dasar representasi fixed-point:
a. representasi mid-point
di mana terdapat digit baik sebelum dan sesudah point
tersebut
b. representasi integer
di mana tidak terdapat digit setelah poin desimal
c. representasi pecahan
di mana tidak ada digit sebelum poin desimal
Membandingkan Fixed-Point dan Floating-Point
1. komputer dapat menjalankan aritmatika fixed-point
lebih cepat daripada aritmatika floating-point.
2. representasi fixed-point membatasi jangkauan dan skala
bilangan yang sedang direpresentasikan.
3. representasi floating-point memberikan fleksibilitas
yang lebih besar dalam jangkauan dan skalanya, ini
biasanya mengurangi kecepatan.
d. Aritmatika Fixed-Point
Register 8 bit menyangga bilangan dalam bentuk
komplemen dua dengan bit paling kiri sebagai bit sign.
Bilangan positif dan negatif maksimum dan minimum
direpresentasikan. Di sini bisa diperoleh keakuratan 7 bit.
183
Contoh : Representasi integer
Sign
bit Representasi Value Keterangan
0 1 1 1 1 1 1 1 27 – 1 = 127 Maksimum positif
1 0 0 0 0 0 0 1 (-2)7 = -128 Most negatif
e. Overflow dan Underflow
Overflow
Hasil operasi aritmatika terlalu besar untuk disimpan
dalam lokasi yang dialokasikan untuknya.
Underflow
Hasil tersebut terlalu kecil untuk disimpan dalam lokasi
yang dialokasikan untuknya.
Mendeteksi Overflow
a. Menggunakan bit ekstra yang ditambahkan ke bagian
kiri dari bit sign.
1) Bit ekstra di-set ke nilai yang sama seperti bit
sign sebelum penambahan atau pengurangan.
2) Bilangan yang telah dimodifikasi ditambahkan
atau dikurangi.
3) Jika bit ekstra dan bit sign berbeda setelah
operasi, maka telah terjadi overflow.
b. Metode lain, dimana tidak menggunakan bit ekstra
1) Menggunakan ADD jika sign berbeda, dan
SUBSTRACT jika signnya sama, maka overflow
184
tidak terjadi.
2) Untuk A + B jika sign(A) = sign(B) maka
hasilnya berupa sign(A)
Untuk A - B jika sign(A) ≠ sign(B) maka hasilnya
sign(A)
Sign yg salah menunjukkan overflow
Contoh:
a Ekstra bit Sign bit Binary SUM Nilai desimal
0 0 1 1 0 0 12
0 0 0 0 1 1 3
0 0 1 1 1 1 15
0 0 Bit sama → tidak overflow
b Ekstra bit Sign bit Binary SUM Nilai desimal
0 0 1 1 0 0 12
0 0 0 1 1 0 6
0 1 0 0 1 0 18
0 ≠ 1 Bit berbeda → overflow
f. Presisi Ganda
Salah satu cara mengurangi overflow dengan
meningkatkan panjang penyimpanan yang dialokasikan
untuk setiap representasi bilangan. Jika 1 lokasi dalam
memori panjangnya tidak cukup maka 2 lokasi yang
bersebelahan dapat digunakan. Bilangan yang disimpan
185
dengan cara ini disebut double precision number atau
double length number.
g. Aritmatika Presisi Ganda
Aritmatika yang menggunakan bilangan presisi ganda.
Lebih lamban namun sering digunakan karena mesin
dengan word yang lebih panjang lebih mahal.
186
BAB 8
PENDUKUNG SISTEM OPERASI
8. 1 Pendahuluan
Sistem operasi merupakan sebuah program yang mengatur
sumber daya komputer, menyediakan program dan menjadwal
eksekusi program lainnya. Pengertian tentang sistem merupakan
hal yang penting dalam mekanisme berikut ini. Khususnya,
penjelasan efek interrupt dan manajemen hierarki memori
merupakan hal terbaik yang akan dijelaskan. Bab ini diawali oleh
ulasan singkat, sejarah singkat sistem operasi dan survei tentang
jenis-jenis layanan yang disediakan bagi pemrogram. Di samping
itu, bab ini membahas dua fungsi sistem operasi yang paling
relevan dengan studi organisasi dan arsitektur komputer yaitu
penjadwalan dan manajemen memori.
8.2 Pengertian Sistem Operasi
Sistem operasi merupakan sebuah program yang
mengontrol eksekusi program-program aplikasi dan berfungsi
sebagai interface antara pengguna dengan komputer dan
hardware komputer atau dengan kata lain, sistem operasi
187
merupakan sebuah program yang mengatur sumber daya
komputer, menyediakan program, dan menjadwal eksekusi
program lainnya.
Sistem Operasi memiliki 2 buah objektivitas:
Cepat: Operasi sistem dapat membuat komputer jadi lebih
tepat untuk digunakan.
Efisien: Operasi sistem mengijinkan sumber-sumber
komputer untuk digunakan dengan cara efisien.
8.3 Tujuan dan Fungsi Sistem Operasi
Sistem operasi dapat dianggap sebagai sesuatu yang
memiliki dua maksud atau membentuk dua fungsi:
1. Nyaman : Suatu sistem operasi akan membuat sistem
komputer lebih mudah digunakan, lebih mudah diperintah
oleh pengguna (bukan programmer).
2. Efisiensi : Sistem operasi memungkinkan sumber daya
sistem komputer dapat digunakan dengan cara yang tepat.
Fungsi utama komputer adalah menyediakan satu atau
lebih aplikasi. Pengguna aplikasi-aplikasi tersebut digunakan
sebagai end user dan umumnya tidak berkepentingan dengan
arsitektur komputer. Jadi, end user memandang sistem komputer
Sistem Operasi adalah program yang mengendalikan
eksekusi dari aplikasi program-program dan tindakan
sebagai interface di antara pengguna komputer dan
hardware komputer.
188
dari sudut aplikasi. Aplikasi tersebut dapat dapat diekspresikan
dalam bentuk bahasa pemrograman dan dibuat oleh pemrogram
aplikasi. Sebagian program-program ini dikenal sebagai utilitas.
Utilitas ini mengimplementasikan fungsi-fungsi yang sangat
sering sering digunakan yang akan membantu dalam proses
pembuatan program, manajemen file dan pengontrolan perangkat
I/O. Program sistem yang paling penting adalah sistem operasi.
Sistem operasi berfungsi sebagai mediator, memudahkan bagi
pemrogram dan bagi program-program aplikasi untuk mengakses
dan menggunakan fasilitas-fasilitas dan layanan tersebut. Peran
sebuah sistem operasi adalah untuk mengatur fasilitas
komputer, memberikan layanan untuk pemrogram dan
menjadwal eksekusi program lainnya. Untuk menjembatani
perangkat keras dari pemrogram. Dan untuk memberikan
interface yang bagus untuk menggunakan sistem. Dan juga untuk
mengontrol eksekusi program-program aplikasi yang
memerlukan fasilitas dan pelayanan hardware komputer.
Umumnya, sistem operasi akan menyediakan layanan-
layanan dalam bidang:
Pembuatan Program: Sistem operasi menyediakan
berbagai fasilitas dan layanan untuk membantu pemrogram
dalam membuat program. Hal ini dituangkan dalam istilah
utilitas (utility).
Eksekusi Program: Jumlah tugas perlu dibentuk untuk
mengeksekusi sebuah program. Instruksi-instruksi dan data
harus dimuatkan ke dalam memori utama, perangkat-
189
perangkat I/O dan file harus diinisialisasi dan sumber daya
lainnya harus disiapkan. Sistem operasi menangani hal-hal
tersebut untuk pengguna.
Akses ke Perangkat I/O: Setiap perangkat I/O memerlukan
set instruksinya sendiri atau sinyal-sinyal kontrol untuk
keperluan operasi. Sistem operasi mengatasi masalah detail
sehingga pemrogram dapat memikirkannya dalam bentuk
pembacaan dan penulisan yang sederhana.
Akses Terkontrol ke File : Dalam hal file, kontrol harus
meliputi pengertian yang tidak hanya tentang sifat
perangkat I/O (disk drive, tape drive) saja, namun juga
tentang detailnya. Selanjutnya, dalam hal sistem yang
memiliki sejumlah akses yang simultan, sistem operasi
dapat menyediakan mekanisme perlindungan untuk
mengontrol akses ke sumber daya yang digunakan
bersama, seperti file-file.
Akses Sistem: Dalam sistem yang dapat digunakan
bersama atau suatu sistem publik, sistem operasi
mengontrol akses ke sistem sebagai keseluruhan dan ke
sumber daya sistem tertentu.
Oleh karena itu sistem operasi dapat dimanfaatkan untuk
membantu mengatur organisasi resources (memory, processor,
disk dan sebagainya) agar bekerja lebih efisien.
190
Gambar 8.1 Lapisan dan Bentuk Sistem Operasi Komputer
8.4 Sistem Operasi sebagai Manajer Sumber Daya
Sebuah komputer adalah sekumpulan sumber daya untuk
pemindahan, penyimpanan, dan pengolahan data untuk
mengontrol fugsi-fungsi ini. Sistem operasi bertanggung jawab
atas pengaturan sumber daya ini. Sistem operasi berfungsi sama
halnya seperti software komputer biasa. Dengan kata lain, sistem
operasi merupakan program yang dieksekusi oleh CPU. Sering
kali sistem operasi mengeluarkan kontrol dan harus bergantung
pada CPU untuk memungkinkannya mendapatkan kontrol
tersebut. Pada kenyataannya, sistem operasi tidak lebih dari
sebuah program komputer. Seperti program komputer lainnya,
sistem operasi memiliki instruksi-instruksi untuk CPU.
Perbedaannya hanya terletak pada maksud programnya saja.
Sistem operasi mengarahkan CPU dalam menggunakan sumber
daya sistem lainnya dan dalam perwakilan eksekusi program
191
lainnya. Namun agar CPU melaksanakan salah satu tugas
tersebut, maka CPU harus menghentikan pengeksekusian
program sistem operasi dan mengeksekusi program lainnya. Jadi,
sistem operasi mengeluarkan kontrol untuk prosesor agar
melakukan tugas yang “bermanfaat” dan kemudian
menghentikan kontrolnya untuk memberikan waktu bagi CPU
untuk melakukan bagian pekerjaan selanjutnya. Sebagian sistem
operasi berada di dalam memori utama. Bagian ini meliputi
nucleas, yang berisi fungsi-fungsi yang paling sering digunakan
di dalam sistem operasi dan pada waktu tertentu bagian-bagian
lainnya sistem operasi sedang digunakan. Bagian lain memori
utama berisi program-program lainnya dan data. Alokasi sumber
daya ini (memori utama) dikontrol sistem operasi bersama
memory management hardware di dalam CPU, seperti yang akan
kita lihat kemudian. Sistem operasi akan menentukan saat
perangkat I/O bisa digunkana oleh sebuah program sedang
mengeksekusi dan akses kontrol ke file dan menggunakan file.
Gambar 8.2 Sistem Komputer dan Perangkat I/O
192
8.5 Jenis-Jenis Sistem Operasi
Karakteristik dapat membedakan jenis sistem operasi.
Karakteristik dapat dibagi menjadi dua dimensi besar yang
independen. Dimensi pertama menspesifikasikan apakah sistem
bersifat batch (berurutan) atau interaktif. Dalam sebuah sistem
yang interaktif, pengguna atau pemrogram berinteraksi secara
langsung dengan komputer, biasanya melalu keyboard atau layar
monitor untuk meminta eksekusi tugas atau membentuk
transaksi. Selain itu, pengguna dapat berkomunikasi dengan
komputer selama pengeksekusian tugas. Sistem batch merupakan
kebalikan dari sistem interaktif. Program pengguna ditampung
bersama-sama dengan program-program dengan program
pengguna lainnya kemudian diserahkan ke sistem operasi oleh
operator komputer. Setelah program diselesaikan, hasilnya
dicetak dan dikembalikan ke pengguna. Sistem batch murni
sudah jarang ditemukan saat ini. Namun, sistem ini akan tetap
berguna untuk menerangkan sistem operasi kontemporer dengan
membahas sistem-sistem batch secara singkat.
Sebuah dimensi yang independen lainnya mencirikan
apakah sistem menggunakan multiprogramming atau tidak.
Multiprogramming dimaksudkan untuk menjaga prosesor selalu
berada dalam keadaan sibuk dengan membiarkan prosesor
mengerjakan lebih dari satu program pada waktu yang sama.
Beberapa program dimuatkan ke dalam memori, dan prosesor
beralih dengan cepat dari suatu program ke program lainnya.
Alternatifnya adalah sistem uniprogramming yang hanya
193
mengerjakan sebuah program pada suatu saat. Bila menggunakan
sistem interaktif, menerapkan time sharing. Jadi ada empat jenis
sistem operasi secara umum:
1. Sistem Batch sederhana.
2. Sistem Batch canggih.
3. Sistem Multiprogramming.
4. Sistem Time Sharing.
Tabel 8.1 Dimensi Sistem Operasi
Batch System Interactive
System
Uniprogrammed /
One task at a time
Simple batch Dedicated
system
Multiprogrammed Sophisticated batch Time sharing
8.6 Sistem-Sistem Terdahulu
Pada komputer terdahulu, program berinteraksi secara
langsung dengan hardware komputer. Mesin ini beroperasi pada
sebuah console, yang terdiri atas tampilan, switch, dan beberapa
bentuk perangkat input dan printer. Program-program yang
berbentuk kode mesin dimuatkan melalui perangkat input
(misalnya pembaca kartu). Bila sebuah error menghentikan
program, maka kondisi error ditandai dengan nyalanya lampu.
Dengan berjalannya waktu, hardware dan software
tambahan pun dibuat. Tambahan hardware meliputi pita
magnetik dan line printer berkecepatan tinggi. Sedangkan
194
tambahan software meliputi compiler, assembler dan
kepustakaan tinggi. Fungsi dapat dikaitkan dengan program
aplikasi tanpa harus ditulis kembali. Sistem lama ini memiliki
dua masalah:
1. Penjadwalan (Scheduling): Sebagian besar instalasi
menggunakan lembar pesanan untuk mendapatkan waktu
mesin. Umumnya, seorang pengguna harus memesan blok
waktu dalam kelipatan setengah jam dan sebagainya.
Seorang pengguna mungkin memesan penggunaan mesin
untuk satu jam namun telah menyelesaikan pekerjaannya
dalam 45 menit; hal ini menyebabkan penghamburan
waktu komputer. Alternatif lainnya, pengguna menemukan
masalah, sehingga tidak dapat menyelesaikan pekerjaannya
dalam waktu yang telah disediakan, dan dipaksa untuk
berhenti sebelum dapat mengatasi masalah itu.
2. Waktu Setup (Setup Time): Sebuah program, yang disebut
job, dapat meliputi pemuatan compiler dan program
berbahasa tinggi (program sumber) ke dalam memori,
penyimpanan program yang telah dikompilasi (program
object), dan kemudian memuatkan dan melakukan link
program objek dengan fungsi-fungsi. Masing-masing
langkah ini dapat meliputi pemasangan dan penanggalan
pita atau pemasangan tumpukan kartu. Dengan demikian,
waktu dalam jumlah yang banyak akan terbuang dalam
pekerjaan setup program agar dapat berjalan.
195
8.7 Sistem Batch Sederhana
Mesin lama sangat mahal, sehingga sangatlah penting
untuk memaksimalkan pemanfaatannya. Waktu yang terbuang
sehubungan dengan adanya proses penjadwalan waktu setup
sehingga sulit untuk diterima.
Untuk meningkatkan pemanfaatan, dibuat sistem operasi
batch sederhana. Dengan menggunakan sistem seperti itu, yang
juga dikenal sebagai monitor, pengguna tidak perlu lagi memiliki
akses langsung ke mesin. Melainkan, pengguna menyerahkan
pekerjaannya dalam bentuk kartu atau pita kepada operator
komputer, yang akan melakukan batch pekerjaan-pekerjaan itu
secara berurutan dan menempatkan seluruh batch pada sebuah
perangkat input, untuk digunakan oleh monitor. Untuk
memahami pola kerja sistem batch, kita tinjau masalah tersebut
dari dua sudut pandang, yaitu sudut pandang monitor dan sudut
pandang CPU. Dari sudut pandang monitor, monitorlah yang
mengontrol rangkaian kejadian. Untuk itu monitor harus selalu
berada di dalam memori utama (disebut resident monitor) dan
selalu tersedia untuk melakukan eksekusi. Monitor membaca job
satu persatu. Setelah membaca, job tersebut ditempatkan pada
daerah program pengguna, dan kontrol diberikan ke job ini. Pada
saat job telah selesai, akan terjadi interupt (internal interupt
terhadap komputer) yang mengembalikan kontrol ke monitor,
dan segera membaca job berikutnya. Hasil setiap job dicetak dan
dikirim ke pengguna. Dan dari sudut pandang CPU, CPU
mengeksekusi instruksi-instruksi yang berasal dari lokasi memori
196
yang berisi monitor. Instruksi-instruksi ini akan menyebabkan
job berikutnya dibaca ke bagian lain memori utama. Setelah
sebuah job dibaca, CPU akan menemukan instruksi cabang pada
monitor yang meminta CPU untuk melanjutkan eksekusi di
lokasi lain pada memori (awal program pengguna). Kemudian
CPU akan mengeksekusi instruksi pada program pengguna
sampai CPU menemukan akhir program atau error. Salah satu
kejadian itu akan menyebabkan CPU mengambil instruksi
berikutnya dari program monitor. Jadi, perkataan “kontrol
diserahkan ke CPU” berarti CPU mengambil dan mengeksekusi
instruksi dalam program pengguna dan “kontrol dikembalikan ke
monitor” berarti CPU mengambil dan mengeksekusi instruksi
dari program monitor.
Gambar 8.3 Sistem Batch
197
Kita telah mengetahui bahwa sistem operasi batch hanya
merupakan program komputer. Hal itu tergantung kemampuan
CPU dalam mengambil instruksi dari berbagai lokasi memori
utama untuk mengambil alih dan melepaskan kontrol secara
bergantian. Beberapa fitur yang perlu diperhatikan dalam sistem
operasi batch:
1. Proteksi Memori : Pada saat program pengguna dieksekusi,
maka program itu tidak boleh mengubah area memori yang
berisi monitor. Bila terjadi perubahan area memori, maka
hardware CPU akan mendeteksi suatu error dan
memindahkan kontrol ke monitor. Kemudian monitor
membatalkan job, mencetak pesan error, dan memuatkan
job berikutnya.
2. Pewaktu (Timer) : Pewaktu digunakan untuk mencegah
sebuah job memonopoli sistem. Pewaktu disetel pada awal
setiap job. Bila waktu habis, terjadi sebuah interrupt dan
kontrol kembali ke monitor.
3. Privileged Instruction : Instruksi tertentu ditandai dengan
privileged dan hanya dapat dieksekusi oleh monitor.
Instruksi ini meliputi instruksi I/O, sehingga monitor
menguasai kontrol semua perangkat I/O. Hal ini akan
mencegah pembacaan instruksi kontrol job dari job
berikutnya secara tidak sengaja.
Dengan demikian waktu mesin akan dipakai secara bergantian
oleh eksekusi program pengguna dan eksekusi monitor. Terdapat
dua pengorbanan: sebagian memori utama sekarang diberikan
198
kepada monitor, dan sebagian waktu mesin dihabiskan oleh
monitor. Kedua hal ini akan membentuk overhead. Walaupun
dengan adanya overhead ini, sistem batch sederhana mampu
meningkatkan pemanfaatan komputer.
8.8 Sistem Batch Canggih
Walaupun dengan menggunakan pengurutan job otomatis
yang diberikan oleh sistem operasi batch sederhana, prosesor
masih sering berada pada keadaan idle. Masalahnya adalah
karena kecepatan perangkat I/O lebih lambat dibandingkan
dengan kecepatan prosesor.
Read satu record 0,0015 detik
Execute 100 instruksi 0,0001 detik
Write satu record 0,0015 detik
Total 0,0031 detik
Persen utilisasi CPU = 0,0001 / 0,0031 = 0,032 = 3,2 %
Pada contoh tersebut, komputer menghabiskan lebih dari 96%
waktunya untuk menunggu perangkat I/O menyelesaikan proses
transfer data. Untuk mengatasi hal ini maka diterapkan sistem
operasi modern yang dikenal dengan multiprogramming.
Multiprogramming
Dalam multiprogramming, bila sebuah job perlu menunggu I/O,
maka prosesor dapat beralih ke job lainnya, yang tidak sedang
199
menunggu I/O. Dalam multiprogramming, memori dapat
menampung tiga atau lebih program dan dapat beralih ke setiap
program tersebut. Multiprogramming banyak digunakan dalam
sistem operasi modern. Berikut contoh operasi
multiprogramming dan uniprogramming:
200
Gambar 8.4 Uniprogramming, Multiprogramming dengan
dua dan Tiga
8.9 Penjadwalan (Scheduling)
Tugas utama dalam sistem operasi modern adalah
multiprogramming. Dan hal yang terpenting dalam
multiprogramming adalah scheduling. Dalam sistem operasi
multiprogramming, beberapa job dipertahankan di memori,
setiap job saling bergantian menggunakan CPU dan menunggu
I/O. Kunci peningkatan efisiensi menggunakan
multiprogramming adalah penjadwalan yang efektif. Ada tiga
jenis penjadwalan:
1. High level scheduling (Penjadwalan tingkat tinggi)
Menentukan job mana yang akan dimasukkan ke sistem
untuk pemrosesan
201
Mengontrol derajat multiprogramming (jumlah proses yang
berada di dalam memori).
Job yang diijinkan ditambahkan pada antrian job pada
penjadwal jangka pendek
Bekerja dalam modus batch atau interaktif
2. Short term scheduling (Penjadwalan jangka pendek)
Dikenal dengan istilah dispatcher
Mengeksekusi dan membuat keputusan yang lebih detail
tentang job yang akan dieksekusi untuk kesempatan
selanjutnya.
Keadaan proses
3. I/O scheduling
Ada lima keadaan proses penjadwalan meliputi :
New: Sebuah program diijinkan oleh penjadwal tingkat tinggi
namun belum siap melakukan eksekusi. Sistem akan
menginisialisasi proses, yang akan mengubahnya menjadi
berada dalam keadaan siap.
Ready: Proses telah berada dalam keadaan siap dieksekusi
dan sedang menunggu akses ke prosesor
Running: Proses sedang dieksekusi oleh prosesor
Waiting: Proses ditahan eksekusinya untuk menunggu
sumber daya sistem, misal I/O.
Halted: Proses telah dihentikan dan akan dihancurkan oleh
sistem operasi.
202
Gambar 8.5 I/O Scheduling
Untuk setiap proses direpresentasikan dalam sistem operasi
dengan blok kontrol proses yang berisi:
o Identifier: Setiap proses saat itu memiliki identifier yang
unik.
o State: Keadaan proses saat itu (new, ready, dll)
o Priority: Tingkatan prioritas relatif
o Program Counter : Alamat instruksi berikutnya di dalam
program yang akan dieksekusi.
o Memori pointers : Lokasi awal dan akhir proses di dalam
memori
o Context Data: Data ini adalah data yang berada di dalam
register pada prosesor pada saat proses sedang dieksekusi.
o I/O Status Information : Meliputi request I/O yang belum
dipenuhi perangkat I/O yang di-assign ke proses ini, daftar
file yang di-assign ke proses dll.
o Accounting Information: dapat meliputi jumlah waktu
prosesor dan clock time yang digunakan, batas waktu,
nomor account, dll.
203
Ketika prosesor menerima job baru, prosesor menerima blok
kontrol proses yang kosong dan menempatkan proses yang
bersangkutan di dalam keadaan yang baru, setelah sistem terisi
blok kontrol proses dengan benar, maka proses dipindahkan ke
keadaan siap (ready).
8.10 Manajemen Memori
Organisasi dan manajemen memori sangat
mempengaruhi kinerja komputer. Manajemen memori
melakukan tugas penting dan kompleks berkaitan dengan hal-hal
berikut :
Memori utama sebagai sumber daya yang harus
dialokasikan dan dipakai bersama diantara sejumlah proses
yang aktif. Agar dapat memanfaatkan pemroses dan fasilitas
masukan/ keluaran secara efisien maka diinginkan memori
dapat menampung proses sebanyak mungkin.
Mengupayakan agar pemrogram atau proses tidak dibatasi
kapasitas memori fisik di sistem komputer.
Manajemen memori mempunyai fungsi sebagai berikut :
1. Mengelola informasi mengenai memori yang dipakai dan
tidak dipakai sistem.
2. Mengalokasikan memori ke proses yang memerlukan.
3. Mendealokasikan memori dari proses telah selesai
menggunakan.
4. Mengelola swapping antara memori utama dan harddisk.
204
Manajemen Memori pada Sistem Multiprogramming
Karena banyaknya ruang alamat milik proses-proses di
memori utama secara bersama maka sistem operasi harus mampu
mendukung dua kebutuhan yang saling bertentangan, yaitu :
1. Pemisahan ruang-ruang alamat, melakukan proteksi memori
dengan isolasi ruang-ruang alamat sehingga proses-proses
tidak saling mengganggu.
2. Pemakaian bersama memori sehingga memungkinkan
proses-proses bekerja sama mengakses daerah memori
bersama.
Manajer memori harus memaksakan isolasi ruang-ruang
alamat masing-masing proses agar mencegah proses yang ingin
bertindak jahat mengakses dan merusak ruang alamat milik
proses lain.
Klasifikasi Manajemen Memori
Klasifikasi manajemen memori diberikan Deitel. Gambar 8.6
menunjukkan skema klasifikasi manajemen memori.
205
Teknik-teknik manajemen memori (1),(2),(3) dan (4)
merupakan pengelolaan untuk kapasitas sebatas memori fisik
yang tersedia. Teknik-teknik ini tidak dapat digunakan untuk
memuat program-program yang berukuran lebih besar dibanding
kapasitas fisik memori yang tersedia. Teknik-teknik manajemen
memori (5) dan (7) dapat digunakan untuk mengakali kapasitas
memori yang terbatas sehingga dapat menjalankan program yang
ukurannya lebih besar dibanding kapasitas memori fisik yang
tersedia. Dalam sistem uniprogramming, memori utama dibagi
menjadi dua bagian: satu bagian untuk sistem operasi (monitor
resident) dan bagian lainnya untuk program yang saat itu sedang
dieksekusi. Dalam sistem multiprogramming, bagian “pengguna”
dari memori harus dibagi lagi untuk mengakomodasi sejumlah
proses. Tugas pembagian dilakukan secara dinamis oleh sistem
206
operasi dan dikenal sebagai manajemen memori. Manajemen
memori yang efektif merupakan masalah yang sangat penting
dalam sistem multiprogramming. Bila hanya terdapat beberapa
proses di dalam memori, maka sebagian besar waktu proses akan
digunakan untuk menunggu dan prosesor akan berada dalam
keadaan idle. Dengan demikian, memori harus dapat
mengalokasikan secara efisien untuk mengemas proses sebanyak
mungkin.
Swapping
Swapping adalah sebuah proses yang melibatkan modul I/O,
memindahkan data dari storage device ke memori melewati bus.
Berarti swapping adalah sebuah proses yang lambat, untuk itu
diperlukan metode yang tepat untuk mengatur penempatan
proses ke memori, agar lebih efisien yaitu partioning dan paging.
Partioning
Partioning adalah membagi memori menjadi bagian-bagian
untuk menampung proses (termasuk milik SistemOperasi).
Sistem Operasi menempati bagian memori yang tetap. Sisa
memori dibagi-bagi untuk keperluan sejumlah proses. Metode
paling sederhana untuk pembuatan partisi memori yang tersisa
adalah dengan menggunakan partisi berukuran tetap. Walaupun
partisinya berukuran tetap, partisi-partisi tersebut tidak berukuran
sama. Pada saat dibawa ke memori, proses tersebut disimpan
pada partisi yang tersedia yang berukuran paling kecil yang dapat
207
menampungnya. Walaupun menggunkan partisi-partisi
berukuran tidak sama, akan terjadi memori yang dibuang. Dalam
sebagian besar kasus, proses tidak memerlukan seluruh memori
yang disediakan oleh partisi.
Variable Sized Partitions
Pendekatan yang lebih efisien adalah dengan menggunakan
variable sized partitions. Proses dimasukkan di tempat kosong
yang ukurannya pas sesuai yang dibutuhkan. Ketika dibawa ke
memori, proses dialokasikan memori tepat sebesar yang
diperlukannya. Namun, akan ada memori yang terbuang juga dan
terjadi banyak fragmen memori yang dipakai dan yang kosong.
Untuk mendapatkan ruang yang cukup bisa dilakukan
pemampatan (defragmentation) dengan mengelompokkan ruang-
ruang yang terisi di depan. Tapi ini justru menambah waktu.
Lalu, muncullah ide untuk paging.
Paging
Dengan menggunakan paging, sistem multiprogramming efektif
yang sebenarnya menjadi kenyataan. Berikut ini merupakan
langkah-langkah paging:
Bagi memori menjadi potongan-potongan kecil sama
besar – disebut page frames
Bagi program (proses) menjadi potongan-potongan kecil
sama besar – disebut pages
208
Hitung jumlah page frames yang dibutuhkan proses
tersebut dan masukkan ke dalamnya
Serangkaian page tidak harus masuk ke page frame
yang contiguous (berlanjut)
Gunakan page table untuk melacak lanjutan page frame
Sistem operasi menyimpan daftar page frame yang
sedang kosong (bisa digunakan)
Virtual Memory
Virtual memory pada Windows dan Linux menerapkan swapping
dibantu paging. Pada kondisi tertentu, metode virtual memory
Windows tidak hanya menggunakan hard disk sebagai tempat
swapping tapi juga tempat paging (memory pura-pura) dan page
frames dapat ditambah seperlunya bila dibutuhkan, selama space
hard disk masih ada tetap lambat. Ada kalanya sistem operasi
mencapai taraf thrashing, yaitu saat memori terlalu kecil untuk
dipakai sebuah program, sehingga S/O hanya swapping terus
menerus tanpa sempat memproses. Solusinya hanya menambah
memory atau mematikan proses lainnya.
209
BAB 9
SET INSTRUKSI ADDRESS
DAN FORMAT ADDRESS
9.1 Pendahuluan
Suatu acuan operand dalam instruksi manapun terdiri atas
nilai aktual operand atau acuan ke alamat operand tersebut.
Berbagai macam mode pengalamatan yang luas digunakan dalam
berbagai set instruksi. Set ini meliputi pengalamatan langsung,
pengalamatan tidak langsung, register, register tidak langsung
dan berbagai bentuk penggantian, dimana nilai register
ditambahkan ke nilai pengalamatan untuk menghasilkan alamat
operand. Bentuk instruksi mendefinisikan bidang-bidang layout
pada instruksi tersebut. Rancangan bentuk instruksi merupakan
usaha yang cukup kompleks, meliputi beberapa pertimbangan
seperti panjang instruksi, panjangnya tetap atau tidak tetap,
jumlah bit-bit yang ditentukan ke opcode dan masing-masing
acuan operand dan bagaimana mode pengalamatan ditentukan.
Bidang alamat atau bidang pada bentuk instruksi yang umum
adalah relatif kecil. Kita dapat mengambil acuan cakupan yang
210
besar tentang lokasi memori utama atau, untuk beberapa sistem,
memori virtual. Untuk mencapai tujuan ini, berbagai teknik
pengalamatan telah dilakukan. Semua teknik tersebut melibatkan
beberapa tarik-menarik antara cakupan alamat dan/ atau
fleksibilitas pengalamatan, pada satu sisi dan jumlah acuan
memori dan/ atau kompleksitas kalkulasi alamat, pada sisi lain.
9.2 Set Instruksi (Address dan Format Adsress)
A. Mode Pengalamatan
Suatu variasi mode pengalamatan (addressing mode)
dapat digunakan untuk menentukan suatu alamat tempat untuk
dimana operand akan di-fetch. Beberapa teknik semacam ini
dapat meningkatkan kecepatan pelaksanaan instruksi dengan
menurunkan jumlah referensi pada memori utama dan
meningkatkan jumlah referensi pada register kecepatan tinggi.
Mode pengalamatan ini menjabarkan suatu aturan
mengintepretasikan atau memodifikasi field alamat dari instruksi
sebelum operand direferensikan. Beberapa mode pengalamatan
umum diberikan dalam Tabel 9.1 dan Gambar 9.1
menggambarkan diagramnya, dimana untuk kesederhanaan
hanya field alamat dari register instruksi (IR) yang dijabarkan.
Tabel 9.1 Mode Pengalamatan Umum
Mode Nilai dari Operand Contoh
Transfer*
Immediate Konstanta dalam field operand OPERAND =
A
211
Direct Memori pada alamt EA = A
Indirect Memori pada alamat dalam
alamat
EA = (A)
Register Register EA =
(....(A)....)
Register-
indirect
Memori pada alamat register EA = R
Displacement Kombinasi Direct Addressing
dan Indirect Register
Addressing
EA = A + (R)
Relative Lokasi memori untuk PC juga
alamat
OPR ← M[PC
+ ad]
Index Lokasi memori untuk register
indeks
(XR) juga alamat OPR ← M[XR
+ ad]
Stack Bentuk Implied Addressing EA = Puncak
Stack
*OPR mewakili sebuah register untuk menyimpan operand yang
akan digunakan sewaktu instruksi dijalankan.
Mode pengalamatan yang paling umum, yaitu:
1. Immediate Addressing (Pengalamatan Segera)
Bentuk pengalamatan:
OPERAND = A
212
Mode pengalamatan ini dipergunakan untuk menentukan dan
menggunakan konstanta atau nilai-nilai variabel awal. Pada
semua mode pengalamatan lainnya, operand yang sesungguhnya
tidak disimpan pada field alamat tetapi beberapa nilai dijabarkan
dan digunakan untuk menentukan lokasi operand. Sekarang mari
kita bayangkan mode tersebut dalam tiga situasi yang berbeda:
jika field alamat memerinci sebuah alamat memori, jika field
alamat memerinci sebuah register processor dan jika field alamat
memerinci sebuah operand untuk menghitung alamat yang
efektif. Merupakan bentuk pengalamatan yang paling sederhana,
dimana operand benar-benar ada dalam instruksi atau bagian dari
instruksi operand sama dengan field alamat. Umumnya bilangan
akan disimpan dalam bentuk komplemen dua, dengan bit kiri
sebagai bit tanda. Ketika operand dimuatkan ke dalam register
data, bit tanda digeser ke kiri hingga maksimum word data. Di
dalam Immediate Addressing, tidak terdapat referensi memori
selain dari instruksi yang diperlukan untuk memperoleh operand.
Cara seperti ini dapat menghemat siklus memori atau cache
dalam siklus instruksi. Keuntungan dari mode pengalamatan ini
adalah tidak adanya referensi memori selain dari instruksi yang
diperlukan untuk memperoleh operand dan juga dapat
menghemat siklus instruksi sehingga proses keseluruhan akan
cepat. Namun kekurangan dari mode pengalamatan ini adalah
ukuran bilangan dibatasi oleh ukuran field alamat.
213
Gambar 9.1 Mode Pengalamatan Umum
2. Direct Addressing (Pengalamatan Langsung)
Bentuk pengalamatan :
EA = A
Direct Addressing adalah mode pengalamatan yang
sederhana yang hanya memerlukan sebuah referensi memori
dan tidak memerlukan kalkulasi khusus. Hanya saja, pada
Direct Addressing memiliki keterbatasan ruang alamat.
Teknik ini adalah umum pada generasi awal komputer tetapi
tidak umum pada arsitektur kontemporer. Teknik tersebut
memerlukan hanya satu acuan memori dan tidak ada
kalkulasi khusus. Pembatasan yang jelas adalah bahwa
teknik tersebut memberikan hanya sebuah ruang alamat
214
terbatas. Kelebihan dari mode pengalamatan ini, dimana field
alamat berisi efektif address sebuah operand. Kelemahan
dari mode pengalamatan ini yaitu keterbatasan field alamat
karena panjang field alamat relatif lebih kecil dibanding
panjang word.
3. Indirect Addressing (Pengalamatan Tidak Langsung)
Bentuk pengalamatan :
EA = ( A )
Di dalam Indirect Addressing, field alamat mengacu pada
alamat word di dalam memori, sehingga membuat alamat
operand menjadi lebih panjang Penyelesaiannya adalah
mempunyai bidang alamat yang mengacu pada alamat word
dalam memori, yang pada gilirannya terdiri atas sepanjang
alamat operand. Seperti pada awal pembahasan, tanda
kurung digunakan untuk diinterpretasikan sebagai arti yang
terdiri atas. 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
dialamati kini sama dengan 2N, jumlah alamat efektif berbeda
yang dapat diacu pada sembarang waktu yang dibatasi pada
2K, di mana K adalah panjang bidang alamat. Secara umum,
ini bukanlah pembatasan yang membebani dan merupakan
215
sebuah aset. Pada lingkungan memori virtual, semua lokasi
alamat efektif dapat terbatas pada halaman 0 sembarang
proses. Karena bidang alamat suatu instruksi kecil, bidang
alamat secara alami akan menghasilkan alamat langsung
bernomor rendah, yang akan muncul pada halaman 0 (satu-
satunya pembatasan adalah bahwa ukuran halaman harus
lebih besar atau sama dengan 2K). Ketika proses aktif,
terdapat acuan yang akan diulangi sampai halaman 0,
menyebabkan acuan tersebut untuk tinggal di dalam memori
riil. Jadi, acuan memori tidak langsung akan melibatkan,
paling banyak, satu halaman salah bukannya dua halaman.
Varian pengalamatan tidak langsung yang jarang digunakan
adalah pengalamatan tidak langsung bertingkat-tingkat atau
berlapis:
EA = (….(A)….)
Dalam kasus ini, satu bit alamat penuh word adalah bendera
tidak langsung (I). Jika bit I sama dengan 0, maka word
terdiri atas EA. Jika bit I sama dengan 1, maka dilibatkan
tingkat tidak langsung lainnya. Di sana tidak muncul
sembarang keuntungan tertentu pada pendekatan ini dan
kerugiannya adalah bahwa tiga acuan memori lebih
diperlukan untuk mengambil operand. Pada mode ini
kelebihannya, dimana ruang bagi alamatnya menjadi besar,
sehingga semakin banyak alamat yang mendapat referensi.
Namun ada pula kekurangan dari mode pengalamatan ini
216
yaitu diperlukan referensi memori ganda dalam suatu fetch
sehingga memperlambat proses operasi.
4. Register Addressing (Pengalamatan Register)
Bentuk pengalamatan :
EA = R
Register Addressing memerlukan field alamat berukuran
kecil dalam instruksi dan tidak memerlukan referensi
memori. Register addressing merupakan suatu mode
pengalamatan yang cara kerjanya hampir mirip dengan mode
pengalamatan langsung (direct addressing), namun
perbedaannya terletak pada field alamat yang mengacu pada
register, bukan pada memori utama. Secara umum, bidang
alamat yang mengacu register akan mempunyai 3 sampai 5
bit, sehingga total register bertujuan umum dapat diacu dari 8
sampai 32. Keuntungan dari mode pengalamatan register ini
adalah Diperlukan field alamat berukuran kecil dalam
instruksi dan tidak diperlukan referensi memori. Akses ke
register lebih cepat daripada akses ke memori, sehingga
proses eksekusi akan lebih cepat. Namun adapun kelemahan
dari mode ini yaitu menjadi terbatasnya ruang alamat. Jika
pengalamatan register digunakan secara penuh dalam set
instruksi, maka hal ini mengimplikasikan bahwa register
CPU akan digunakan secara penuh. Oleh karena terbatasnya
beberapa bilangan register (dibandingkan dengan lokasi
memori utama), penggunaannya pada mode ini membuat
217
pengertian hanya jika teregister bekerja secara efisien. Jika
setiap operand dibawa ke dalam register memori utama,
beroperasi sekali, dan maka kembali ke memori utama, maka
langkah antara tidak perlu ditambahkan. Selain itu, jika
operand pada register sisanya yang digunakan untuk
berbagai operasi, maka penyimpan riil dicapai. Contohnya
adalah kalkulasi hasil antara. Khususnya, anggap bahwa
algoritma perkalian komplemenn dua akan
diimplementasikan dalam software. Lokasi berlabel A pada
flowchart diacu banyak kalau dan harus diimplementasikan
pada register daripada lokasi memori utama.
Hal ini sampai ke pemrograman untuk memutuskan nilai-
nilai mana yang harus berada dalam register dan yang harus
disimpan dalam memori utama. CPU paling modern
melaksanakan berbagai register bertujuan umum,
menempatkan beban untuk eksekusi efisien pada pemrogram
bahasa assembly.
5. Indirect Register Addressing (Pengalamatan Register Tidak
Langsung)
Bentuk pengalamatan :
EA = (R)
Indirect Register Addressing mirip dengan Indirect
Addressing dan yang membedakannya hanya terletak pada
field alamat yang mengacu pada register dan bukannya pada
alamat memori utama. Keterbatasan ruang alamat dapat
218
diatasi dengan membiarkan field alamat mereferensi lokasi
panjang word di dalam register yang berisi sebuah alamat.
Hanya saja untuk eksekusi instruksi, menggunakan satu
referensi memori yang lebih sedikit dibandingkan dengan
Indirect Addressing. Keuntungan dalam pembatasan
pengalamatan register tidak langsung pada dasarnya sama
dengan pengalamatan tidak langsung. Pada kedua kasus,
pembatasan ruang alamat (cakupan alamat terbatas) dari
bidang alamat di atas dengan pemberian bidang itu mengacu
pada lokasi panjang word yang berisi alamat. Sebagai
tambahan, register pengalamatan tidak langsung
menggunakan satu atau lebih sedikit acuan memori
dibanding pengalamatan tidak langsung.
6. Displacement Addressing (Pengalamatan Penggantian)
Bentuk pengalamatan :
EA =A + (R)
Displacement Addressing adalah mode pengalamatan yang
fleksibel yang mampu mengkombinasikan Direct Addressing
dan Indirect Register Addressing. Pengalamatan penggantian
memerlukan instruksi yang mempunyai dua bidang alamat,
yang salah satunya eksplisit. Nilainya terdiri atas satu bidang
alamat (nilai = A) digunakan secara langsung. Bidang alamat
yang lain, atau opcode yang disasarkan pada acuan implisit,
mengacu pada register yang terdiri atas penambahan ke A
untuk menghasilkan alamat efektif. Mode ini yaitu dengan
operand berada pada alamat A ditambahkan isi register. Ada
219
tiga penggunaan paling umum terhadap pengalamatan
penggantian, yaitu:
a. Pengalamatan Relatif
Untuk pangalamatan relatif, register diacu secara implisit
adalah pencacah program (Program Counter_PC) yaitu
alamat instruksi tertentu ditambahkan ke bidang alamat
untuk menghasilkan EA. Secara umum, bidang alamat
diperlukan sebagai bilangan komplemen dua untuk operasi
ini. Jadi, alamat efektif merupakan penggantian relatif
dengan alamat instruksi tersebut. Pengalamatan relatif
memanfaatkan konsep lokalitas. Jika kebanyakan acuan
memori secara relatif dekat pada instruksi yang dieksekusi,
maka penggunaan pengalamatan relatif menyimpan bit
alamat pada instruksi.
b. Pengalamatan Register Dasar
Register yang diacu berisi alamat memori dan bidang alamat
berisi penggantian (pada umumnya representasi integer tidak
bertanda) dari alamat tersebut. Acuan register dapat berupa
eksplisit atau implisit. Pengalamatan register dasar juga
memanfaatkan lokalitas acuan memori. Hal ini merupakan
alat yang menyenangkan terhadap pengimplementasian
segmentasi. Dalam beberapa implementasi, register berbasis
segmen tunggal dilakukan dan digunakan secara implisit. Di
pihak lain, pemrogram dapat dipilih register untuk
menampung alamat dasat segmen dan instruksi perlu
220
mengacunya secara eksplisit. Pada kasus yang belakangan,
jika panjag bidang alamat sama dengan K dan jumlah
register yang mungkin sama dengan N, maka satu instruksi
dapat mengacu sembarang area N terhadap word 2K.
c. Pengindeksan
Acuan bidang alamat suatu alamat memori utama dan
register yang diacu berisi penggantian positif dari alamat
tersebut. Penggunaannya hanya merupakan kebalikan dari
iinterpretasi untuk pengalamatan register dasar. Karena
bidang alamat dianggap sebagai alamat memori dalam
pengindeksan, secara umum terdiri atas lebih banyak bit
dibanding dengan bidang alamat pada instruksi register dasar
yang dapat diperbandingkan. Penggunaan pengindeksan
penting dalam memberikan mekanisme yang efisien untuk
pembentukan operasi yang berulang-ulang. Karena itu,
register indeks secara umum diperlukan untuk menaikkan
atau menurunkan register indeks setelah masing-masing
acuannya. Pengindeksan otomatis menggunakan kenaikan
yang dapat dilukiskan sebagai berikut:
EA = A + (R)
(R) ← (R) + 1
Pada beberapa mesin, baik pengalamatan tidak langsung
maupun peng-indeks-an terdapat dua kemungkinan untuk
melakukan instruksi yang sama, yaitu pengindeksan sebelum
maupun setelah indirection. Jika pengindeksan dilakukan
setelah indirection, maka disebut post pengindeksan:
221
EA = (A) + (R)
Pada preindexing, peng-indeks-an dibentuk sebelum
indirecton:
EA = (A + (R))
7. Pengalamatan Stack
Bentuk pengalamatan :
EA = puncak stack
Stack adalah array lokasi yang linear, yang merupakan blok
lokasi yang terbalik, sehingga sering disebut juga Last In
First Out Queue. Tidak ada referensi memori di dalam Stack
Addressing di mana aplikasi memori yang dimilikinya
terbatas. Stack addressing merupakan bentuk implied
addressing. Instruksi-instruksi mesin tidak perlu memiliki
referensi memori namun secara implisit beroperasi pada
bagian paling atas stack.
B. Format Pengalamatan
Pengkodean biner pada instruksi-instruksi sangat bervariasi
dari satu computer dengan yang lainnya dan setiap komputer
memiliki format kode instruksi tersendiri. Pada salah satu
computer terdahulu, setiap opcode dan empat field alamat.
Gambar 9.2 menunjukkan format empat-alamat, dimana:
OPCODE A0 A1 A2 A3
Gambar 9.2 Format Empat-alamat
222
A0 = alamat operand pertama
A1 = alamat operand kedua
A2 = alamat dimana hasil operasi disimpan
A3 = alamat dari instruksi berikutnya
Karena komputer biasanya menjalankan instruksi-instruksi
secara berurutan, kita dapat memberi kode algoritma dengan cara
tertentu dan menghilangkan kebutuhan akan A3. Jika kita
menganggap bit-bit yang memerinci A3 untuk sisa alamat yang
ada dan dapat menggunakan ruang memori yang lebih besar
tanpa meningkatkan ukuran word memori. Format ini, dikenal
dengan format tiga-alamat, ditunjukkan dalam Gambar 9.3
dimana:
A0 = alamat operand pertama
A1 = alamat operand kedua
A2 = alamat hasil
Bayangkan sebuah komputer yang memiliki panjang word 42 bit
dan ruang memori 512 word. Jika kita menyusun 6 bit pada
opcode (menghasilkan 26 = 64 operasi yang mungkin), maka
dalam format empat-alamat, 9 bit disisakan untuk masing-masing
empat alamat (karena 29 = 512 alamat memori). Dengan
mempertahankan opcode tetap sama pada 6 bit akan menyisakan
36 bit untuk pengalamatan format tiga-alamat atau 12 bit per
alamat. Kita dapat melakukan pengalamatan sampai 212
= 4096
lokasi memori. Sehingga dengan menurunkan jumlah alamat
223
pada format instruksi, kita dapat menaikkan ukuran memori yang
dapat dialamati jika panjang word-nya tetap sama.
OPCODE A0 A1 A2
Gambar 9.3 Format tiga-alamat
OPCODE ADDRESS
Gambar 9.4 Format single-alamat
Format lain, dikenal sebagai format dua-alamat, menghilangkan
alamat A2 dan A3. format ini merupakan format paling umum
pada komputer komersial dan tergantung pada sistem tertentu,
menggunakan salah satu dari akumulator A0 atau A1 untuk
hasilnya. Anggaplah lagi contoh yang menggunakan panjang
word 42-bit dengan 6 bit dibagi untuk opcode. Sekarang kita
dapat menggunakan 18-bit [(42-6)/2] per alamat dan
mengalamati ruang memori sebesar 218
= 262.144 word.
Bagaimanapun juga cara termudah untuk mengorganisasikan
sebuah komputer adalah dengan mempunyai sebuah register
CPU tunggal dan kode konstruksi dengan hanya dua bagian.
Format ini, dikenal sebagai format alamat-tunggal seperti
ditunjukkan pada Gambar 9.4. Sekarang akumulator menjalankan
fungsi ganda: biasanya menjadi bagian alamat pada operand
kedua dan juga lokasi dimana hasilnya disimpan. Dengan
panjang word 42-bit dan mencadangkan 6-bit untuk opcode,
224
sekarang kita memiliki 236
word (kurang lebih 7 x 1010
) memori
yang dapat dialamati. Bahkan jika kita mengurangi panjang
word, format alamat-tunggal akan tetap memungkinkan
kemampuan pengalamatan ruang memori yang sangat besar.
Namun ingat bahwa meskipun terlihat menyenangkan, hal ini
hanya dapat dilakukan dengan mengorbankan kenaikan ukuran
kumpulan instruksi secara dramatis dan tentunya ukuran
program.
9.3 Mode-Mode Pengalamatan Pentium dan PowerPC
a. Mode-mode Pengalamatan Pentium
Sebuah mekanisme terjemahan alamat pentium akan
menghasilkan sebuah alamat, yang disebut alamat efektif
atau alamat virtual, yang merupakan offset ke dalam
segmen. Penjumlahan yang dimulai dari alamat segmen
dan alamat efektif akan menghasilkan alamat linier.
Pentium dilengkapi dengan berbagai macam mode
pengalamatan yang diharapkan memungkinkan
dilakukannya eksekusi efisien terhadap bahasa tingkat
tinggi. Berikut ini daftar mode pengalamatan Pentium II.
Tabel 9.2 Mode Pengalamatan Pentium II
Mode Algoritma
Segera Operand = A
Operand register LA = R
Penggantian LA = (SR) + A
225
Basis LA = (SR) + (B)
Basis dengan penggantian LA = (SR) + (B) + A
Index yang terskala dengan
penggantian
LA = (SR) + (I) x S +
A
Basis dengan indeks dan
penggantian
LA = (SR) + (B) + (I)
+ A
Basis dengan indeks terskala
dan penggantian
LA = (SR) + (B) x S
+ (B) + (A)
Relatif LA = (PC) + A
Untuk mode segera, operand dimasukkan dalam instruksi.
Operand dapat berupa byte, word atau doubleword data.
Untuk mode operand register, operand terletak pada register.
Bagi instruksi-instruksi umum, seperti pemindahan data,
aritmatika dan perintah logis, operand dapat menjadi salah
satu dari register umum 32-bit, salah satu dari register umum
16-bit, atau salah satu dari register umum 8-bit. Untuk
operasi mengambang, operand 64-bit dibentuk dengan
menggunakan dua pasang register 32-bit. Terdapat juga
beberapa instruksi yang mengacu register segmen.
Lokasi acuan mode pengalamatan sisanya berada dalam
memori. Penempatan memori harus dispesifikasikan dalam
kaitannya dengan segmen yang berisi lokasi dan offset dari
awal segmen. Dalam beberapa hal, segmen dispesifikasikan
secara eksplisit; di pihak lain, segmen dispesifikasikan oleh
aturan sederhana yang menentukan segmen dengan nilai
226
default. Pada mode penggantian, offset operand dimasukkan
sebagai bagian instruksi sebagai penggantian 8-bit, 16-bit,
atau 32-bit. Pada segmentasi, semua alamat dalam instruksi
selalu mengacu ke offset segmen. Mode pengalamatan
penggantian ditemukan pada sedikit mesin, karena mode
pengalamatan penggantian mengarahkan ke perintah
panjang. Pada kasus Pentium, nilai penggantian dapat
menjadi sepanjang 32-bit, pembuatan instruksi 6-byte.
Pengalamatan penggantian dapat berguna untuk pengacuan
variabel global.
Mode pengalamatan sisanya adalah tidak langsung, pada
pengertian bahwa bagian alamat instruksi memberitahukan
prosesor di mana untuk menemukan alamat. Mode basis
menspesifikasikan bahwa salah satu register 8-bit, 16-bit,
atau 32-bit terdiri dari alamat efektif. Pada basis dengan
mode penggantian, instruksi meliputi penggantian untuk
ditambahkan ke register basis, yang mungkin merupakan
sembarang register bertujuan umum. Contoh kegunaan dari
mode ini meliputi hal-hal berikut:
Digunakan oleh compiler untuk menunjuk awal dari
variabel lokal. Sebagai contoh, register basis dapat
menunjuk permulaan dari bingkai stack; yang terdiri atas
variabel lokal untuk menyesuaikan prosedur.
Indeks digunakan ke dalam larik ketika ukuran elemen
bukanlah 1, 2, 4, atau 8 byte dan yang oleh karena itu
tidak bisa diindeks dengan menggunakan register indeks.
227
Pada kasus ini, penggantian menunjuk kepada
permukaan larik dan register basis menampung kalkulasi
untuk menentukkan offset ke elemen spesifik dalam
larik.
Digunakan untuk mengakses bidang rekaman. Register
basis mengarahkan ke permulaan rekaman, disamping itu
penggantian merupakan offset ke bidang.
Pada indeks berskala dengan mode penggantian, instruksi
meliputi penggantian untuk ditambahkan pada register, dalam hal
ini disebut register indeks. Register indeks dapat berupa
sembarang register bertujuan umum kecuali yang disebut ESP,
yang digunakan secara umum untuk memproses stack. Pada
penghitungan alamat efektif, isi register indeks merupakan
perkalian dengan faktor skala dari 1, 2, 4, atau 8 dan kemudian
menambahkannya untuk penggantian.
Basis dengan indeks dan mode penggantian menjumlahkan
isi register basis, register indeks, dan penggantian untuk
membentuk alamat efektif. Register basis dapat berupa
sembarang register berrtujuan umum kecuali ESP. Sebagai
contoh, mode pengalamatan ini dapat digunakan untuk
mengakses larik lokal pada frame stack. Mode ini juga dapat
digunakan untuk mendukung larik dua dimensi; pada kasus ini,
penggantian menunjukkan ke permukaan larik dan masing-
masing register menangani satu dimensi larik.
Indeks berskala dengan mode penggantian menjumlahkan
isi register indeks dikalikan dengan faktor skala, isi register basis
228
dan penggantian. Hal ini berguna jika larik disimpan pada frame
stack; dalam kasus ini, elemen-elemen larik masing-masing
panjangnya 2,4 atau 8 byte. Mode ini memberikan pengindeksan
larik dua dimensi yang efisien ketika elemen-elemen larik
panjangnya adalah 2, 4 atau 8 byte.
Pengalamatan relatif dapat digunakan dalam instruksi
transfer-of-control. Penggantian ditambahkan ke nilai pencacah
konter, poin-poin yang mana bagi instruksi berikutnya. Dalam
kasus ini, penggantian diperlakukan sebagai byte bertanda, word,
atau nilai pencacah program.
b. Mode Pengalamatan PowerPC
Secara umum pada kebanyakan mesin RISC dan tidak
sama dengan Pentium dan kebanyakan mesin CISC,
PowerPC menggunakan set mode pengalamatan sederhana
dan relative secara langsung. Mode ini di klasifikasikan
dengan mudah berkenaan berkenaan dengan jenis instruksi,
yaitu :
1. Arsitektur Load/Store
PowerPC memberikan dua alternatif mode pangalamatan
untuk instruksi load/ store. Pada pengalamatan tidak
langsung, instruksi meliputi penggantian 16-bit
ditambahkan ke register basis, yang mungkin berupa
sembarang register bertujuan umum. Sebagai tambahan,
instruksi dapat dispesifikasikan bahwa alamat efektif yang
baru dihitung dapat diumpan-balikkan ke register basis,
229
membarui pilihan bermanfaat untuk pengindeksan
progresif tehadap larik dalam pengulangan. Teknik
pengamatan lainnya untuk instruksi load/store adalah
pengalamatan terindeks tidak langsung. Dalam kasus ini,
acuan instruksi register basis dan register indeks, keduanya
mungkin berupa sembarang register bertujuan umum.
Alamat efektif merupakan Penjumlahan isi dua register ini.
Membarui pilihan menyebabkan register basis untuk
dibarui ke alamat efektif yang baru.
2. Pengalamatan Cabang
Diberikan tiga mode pengalamatan cabang. Ketika
pengalamatan mutlak digunakan dengan instruksi-instruksi
cabang tanpa syarat, alamat efektif instruksi berikutnya
berasal dari nilai segera 24-bit dalam instruksi tersebut.
Nilai 24-bit dikembangkan ke nilai 32-bit dengan
menambahkan dua nol ke akhir paling sedikit signifikan
dan perpanjangan tanda. Pada pengalamatan relatif, nilai
segera 24-bit atau nilai segera 14-bit diperluas sama seperti
sebelumnya. Nilai hasilnya kemudian ditambahkan ke
pencacah program untuk mendefinisikan lokasi relatif
terhadap instruksi terakhir. Mode pengalamatan cabang
bersyarat lainnya adalah pengalamatan tidak langsung.
Mode ini memperoleh alamat efektif instruksi berikutnya
dari baik register link maupun register perhitungan.
Register ini juga dapat digunakan untuk menampung
perhitungan untuk pengulangan.
230
3. Instruksi Aritmatika
Untuk aritmatika integer, semua operand harus
dimasukkan dalam register atau bagian instruksi manapun.
Pada pengalamatan register, operand sumber atau operand
tujuan dispesifikasikan sebagai salah satu register
bertujuan umum. Pada pengalamatan segera, operand
sumber muncul sebagai kuantitas tanda 16-bit pada
instruksi tersebut. Untuk aritmatika titik-mengambang,
semua operand merupakan register titik-mengambang;
yaitu hanya digunakan pengalaman register.
231
BAB 10
SET INSTRUKSI (FUNCTION)
10.1 Pendahuluan
Mungkin saat ini banyak pemrogram yang sudah familiar
dengan bahasa tingkat tinggi. Namun sedikit sekali arsitektur
mesin yang dapat dirasakan. Batasan dimana perancang
komputer sama-sama dapat merasakan manfaat mesin adalah set
(himpunan) instruksi. Dari sudut pandang perancang, set
instruksi mesin menyediakan persyaratan fungsional untuk CPU.
Dari sisi pengguna, pengguna yang menggunakan program dalam
bahasa mesin menjadi sadar akan struktur register dan memori.
Pada bagian ini, kita akan memahami bagaimana instruksi
dieksekusi, apa saja yang diperlukan dalam sebuah instruksi dan
proses apa saja yang terjadi saat eksekusi instruksi oleh CPU
sedang berjalan. Set instruksi merupakan salah satu bahasan pada
bidang Organisasi dan Arsitektur komputer. Pada paper ini akan
dijelaskan mengenai beberapa bahasan mengenai set instruksi
yaitu tentang fungsi dan karakteristik dan juga tentang format
dan cara pengalamatan pada set instruksi.
232
10.2 Karakteristik Instruksi Mesin
Operasi CPU ditentukan oleh instruksi-insteriksi yang
dieksekusinya. Instruksi-instruksi ini dikenal dengan instruksi
mesin. Setiap instruksi harus terdiri atas informasi-informasi
yang diperlukan oleh CPU untuk dieksekusi. Dalam
mengeksekusi instruksi-instruksi tersebut terdapat langkah-
langkah dan elemen-elemen instruksi mesin. Elemen-elemen
tersebut di antaranya adalah :
Gambar 10.1 Diagram Status Siklus Instruksi
Kode Operasi : untuk menentukan operasi-operasi yang akan
dilakukan. Operasi ini dikodekan dengan kode biner yang
dikenal sebagai kode operasi (opcode).
233
Acuan Operand Sumber : Operasi dapat mengembalikan satu
atau lebih operand sumber, dengan kata lain operand adalah
input bagi operasi.
Acuan Operand Hasil : Operasi dapat menghasilkan sebuah
hasil.
Acuan Instruksi Berikutnya : Memberitahukan CPU posisi
instruksi berikutnya yang harus diambil setelah
menyelesaikan eksekusi suatu instruksi. Umumnya, instruksi
yang akan diambil selanjutnya berada setelah instruksi yang
sedang dieksekusi. Ketika acuan eksplisit dibutuhkan, maka
alamat memori utama atau virtual harus disiapkan.
Operand sumber berada di salah satu daerah berikut ini:
Memori utama atau memori virtual: dengan adanya
acuan instruksi berikutnya, maka alamat memori utama
dan memori virtual harus diketahui.
Register CPU : CPU terdiri atas sebuah register atau
lebih yang dapat diacu oleh instruksi-instruksi mesin.
Perangkat I/O : Instruksi harus mengspesifikasikan
modul I/O dan perangkat yang diperlukan oleh operasi.
Di dalam komputer, instruksi direpresentasikan oleh
himpunan bit. Himpunan bit ini dibagi menjadi beberapa bidang,
dimana bidang-bidang ini berkaitan dengan elemen-elemen yang
akan memuat instruksi. Sangat sulit bagi pemrogram untuk
memahami representasi biner dan instruksi-instruksi mesin. Oleh
234
karena itu diperlukan penggunaan representasi simbolik instruksi
mesin. Opcode direpresentasikan dengan singkatan-singkatan
yang disebut mnemonic, yaitu mengindikasikan operasi.
Contohnya :
ADD : Menambahkan
SUB : Mengurangkan (substract)
MPY : Perkalian (multiply)
DIV : Pembagian (divide)
LOAD : Memuat data dari memori
STOR : menyimpan data ke memori
Contoh operand yang direpresentasikan secara simbolik: ADD
R,Y
Contoh sebelumnya berarti menambah nilai yang terdapat pada
lokasi Y ke register R. Dengan demikian dimungkinkan untuk
menulis program bahasa mesin dalam bentuk simbolik.
Y = 123
X = 456
Sebuah program akam menerima input simbolik ini dan
kemudian mengkonversikan opcode dan acuan operand menjadi
bentuk biner, dan akhirnya membentuk instruksi mesin biner.
Sedangkan format instruksi sederhana ditunjukkan pada Gambar
10.2.
235
Gambar 10.2 Format Instruksi Sederhana
Jenis-jenis Instruksi
Misal : A = A + B
Instruksi ini menyuruh komputer untuk menambahkan nilai
yang terapat di A dengan B lalu menyimpan hasilnya di A.
bagaimana itu bisa terjadi ? Misalkan dianggap A dan B
memiliki alamat dalam memori 123 dan 456.
1. muatkan register dengan isi lokasi memori 123.
2. tambahkan isi lokasi 456 ke register.
3. simpan hasil penambahan tersebut di lokasi memori
123.
Dengan contoh sederhana ini sebagai tuntunan kita,
marilah kita perhatikan jenis instruksi yang harus dimasukkan
dalam komputer. Sebuah komputer harus memiliki set instruksi
yang memungkinkan pengguna untuk memformulasikan
pengolahan data. Cara lain untuk melihat hal tersebut adalah
memperhatikan kemampuan sebuah bahasa pemrograman tingkat
tinggi. Setiap program yang ditulis dalam bahasa tingkat tinggi
harus diterjemahkan ke dalam bahasa mesin untuk dieksekusi.
Dengan demikian, set instruksi mesin harus dapat
236
mengekspresikan setiap instruksi bahasa tingkat tinggi. Dengan
pemikiran ini kita dapat mengkategorikan jenis instruksi sebagai
berikut:
Pengolahan data: instruksi aritmatika dan logika
Penyimpanan data: instruksi-instruksi memori
Data pergerakan: instruksi I / O
Kontrol: instruksi pemeriksaan dan instruksi percabang
Jumlah Alamat
Berapa jumlah maksimum yang diperlukan dalam sebuah
instruksi? sebenarnya, instruksi aritmatika dan logika
membutuhkan operand yang banyak. Secara virtual operasi
aritmatika dan logika merupakan unary (satu operand) atau
binary (dua operand). Jadi, kita akan membutuhkan maksimal
dua alamat untuk acuan operand. Hasil operasi harus disimpan
dan menunjuk pada alamat ketiga. Terakhir, setelah
menyelesaikan sebuah instruksi, instruksi berikutnya harus
diambil dan alamatnya juga diperlukan.
Garis penalaran ini menunjukkan bahwa masuk akal bila
instruksi membutuhkan empat buah acuan alamat: dua operand,
satu hasil dan sebuah alamat untuk instruksi berikutnya. Dalam
prakteknya, instruksi empat alamat sangat jarang ditemui.
Sebagian besar instruksi memiliki satu, dua, atau tiga alamat
operand, dengan alamat dari instruksi berikutnya yang implisit
(diperoleh dari program counter).
237
Tiga alamat:
Operand 1, Operand 2, Hasil
Contoh: a = b + c
Tiga alamat merupakan format instruksi yang tidak
umum, karena mereka memerlukan format instruksi
relatif panjang untuk menahan tiga acuan alamat.
Dua alamat:
Salah satu sebagai operand dan salah satu sebagai hasil
Contoh: a = a + b
Format dua alamat mengurangi kebutuhan ruang tetapi
juga memiliki beberapa kejanggalan. Untuk menghindari
perubahan nilai dari operand, sebuah instruksi MOVE
digunakan untuk memindahkan salah satu nilai ke hasil
atau lokasi sementara sebelum melakukan operasi.
Satu alamat:
Alamat kedua harus implisit. Hal ini sangat umum pada
mesin-mesin lama, dengan mengimplementasikan alamat
sebagai register CPU yang dikenal sebagai akumulator.
akumulator berisi salah satu operand dan digunakan
untuk menyimpan hasilnya.
0- alamat
Instruksi 0-alamat berlaku untuk organisasi memori
khusus, yang disebut sebagai stack. Stack merupakan
lokasi-lokasi yang diatur first-in –first-out.
238
Jumlah alamat per instruksi adalah keputusan desain dasar
Lebih sedikit alamat
Lebih sedikit alamat per instruksi akan menghasilkan
instruksi yang lebih primitif, yang membutuhkan CPU
kurang kompleks.
Hal ini juga menghasilkan instruksi lebih pendek. Di sisi
lain, program terdiri dari jumlah instruksi yang lebih
banyak, secara umum ini akan menghasilkan eksekusi
lebih lama dan lebih panjang, apa lagi bila programnya
lebih kompleks
Banyak alamat
Adalah umum untuk memiliki beberapa register untuk
keperluan yang umum . Hal ini memungkinkan beberapa
operasi dilakukan secara terpisah pada register.
Karena register yang lebih cepat dari pada acuan
memori, ini akan mempercepat eksekusi.
Salah satu yang paling menarik tentang rancangan
komputer adalah rancangan set instruksi. Karena rancangan ini
mempengaruhi banyak aspek system komputer, maka rancangan
set instruksi sangat kompleks. Set instruksi menentukan banyak
fungsi yang akan dilakukan oleh CPU dan karena itu memiliki
efek yang sangat menentukan untuk implementasi CPU. Dengan
demikian, kebutuhan-kebutuhan pemrogram harus menjadi bahan
pertimbangan delam merancang set instruksi. Masalah rancangan
fundamental yang paling signifikan meliputi :
239
Repertoir Operation: Berapa dan apa operasi yang
hasus disediakan, dan sekompleks apakah operasi itu
seharusnya.
Jenis data: Berbagai jenis data pada saat operasi
dijalankan.
Bentuk instruksi: Panjang instruksi (dalam bit), jumlah,
alamat, ukuran bidang, DSB.
Register: Jumlah register CPU yang dapat diacu oleh
instruksi dan fungsinya.
Pengalamatan: Mode untuk mengspesifikasikan alamat
suatu operand.
10.3 Jenis-Jenis Operand
Instruksi mesin mengoperasikan data. Kategori data umum
yang sangat penting adalah:
Alamat
Bilangan
Karakter
Data Logika
Bilangan
Semua bahasa mesin memiliki jenis data numerik. Bahkan
dalam pengolahan data bukan numerik dibutuhkan bilangan
untuk digunakan sebagai penghitung, lebar bidang, dan lain-lain.
Perbedaan yang penting antara bilangan yang digunakan dalam
240
matematika dan bilangan yang tersimpan di dalam komputer
adalah bahwa jumlah bilangan yang digunakan komputer sangat
terbatas. Perbedaan ini disebabkan oleh dua hal. Pertama,
besarnya keterbatasan terhadap bilangan yang dapat
direpresentasikan pada mesin. Dan kedua dalam bilangan float,
terdapat keterbatasan dalam hal ketelitian. Jadi pemrogram
dihadapkan dengan konsekuensi pembulatan, overflow, dan
underflow.
Tiga jenis data numerik yang terdapat pada komputer:
Integer atau titik tetap
Float
Decimal
Karakter
Bentuk data yang umum dalah teks atau string-string
karakter. Sementara data tekstual merupakan data yang dirasakan
paling nyaman bagi manusia, teks dalam bentuk karakter tidak
mudah disimpan dan dikirimkan oleh sistem pengolah data atau
sistem komunikasi. Dengan demikian sejumlah kode digunakan
untuk merepresentasikan karakter denganan memakai rangkaian
bit. Barang kali contoh yang paling tua dalam hal ini adalah kode
Morse. Saat ini, kode yang paling umum dipakai adalah kode
IRA (International Reference Alphabet), di Amerika dikenal
sebagai kode ASCII(American Standard Code for Information
Interchange). IRA secara lebih luas juga digunakan di luar
Amerika Serikat. Setiap katakter dalam kode ini
241
direpresentasikan dalam 7 bit yang unik; dengan demikian,
terdapat representasi 128 karakter. Jumlah ini lebih besar
dibandingkan dengan keperluan untuk merepresentasikan
karakter-karakter yang dapat dicetak dan sebagian sisanya
digunakan untuk merepresentasikan karakter-karakter kontrol.
Beberapa karakter kontrol ini berfungsi untuk mengontrol
pencetakan karakter. Sedangkan karakter kontrol lainnya
digunakan untuk prosedur-prosedur komunikasi. Karakter ASCII
hampir selalu dapat disimpan dan ditrasmisikaan dengan
menggunakan 8 bit per karakter. Bit ke 8 dapat di-set nol atau
digunakan sebagai bit paritas. Untuk keperluan deteksi
kesalahan. Dalam pendeteksian error, bit di-set sedemikian rupa
sehingga jumlah keseluruhan biner 1 dalam keseluruhan oktet
selalu bernilai ganjil (paritas ganjil) atau bernilai genap (paritas
genap).
Kode lain yang digunakan untuk meng-encode karakter
adalah Extende Binary Coded Decimal Interchange Code
(EBCDIC). BCDIC digunakan pada mesin-mesin IBM S/370.
kode tersebut merupakan kode 8 bit. Seperti halnya IRA
(ASCII), EBCDIC kompatibel dengan packed decimal-nya. Pada
EBCDIC, kode 11110000 sampai 11111001 mewakili angka 0
sampai 9.
Data Logika
Umumnya setiap word atau unit lainnya yang dapat
dialamati (byte, halfword, dll) diperlukan sebagai unit data.
Seringkali berguna untuk mempertimbangkan satuan n-bit
242
sebagai n butir (item) dalam 1 bit, yang masing-masing memiliki
nilai 0 atau1. bila data dipanggil seperti itu. Maka data tersebut
dipandang sebagai data logika. Ada dua keuntungan
dibandingkan dengan cara pandang berorientasi bit:
Kadang kita perlu menyimpan array boolean atau data biner,
yang setiap butirnya hanya dapat mengambil nilai 1 (benar)
atau 0 (salah). Dengan data logika, penyimanan data dalam
memori lebih efisien.
Pada saat kita ingin memanipulasi bit-bit butir data.
10.4 Jenis-Jenis Operasi
Jumlah opcode suatu mesin akan sangat berbeda dengan
jumlah opcode mesin lainnya. Tetapi jenis operasi pada semua
mesin memiliki kesamaan. Penggolongan jenis operasi yang
umum adalah sebagai berikut:
Transfer data
Aritmatika
Logika
Konversi
I/O
Kontrol sistem
Transfer kontrol
Transfer data
Jenis instruksi yang paling siknifikan adalah transfer data.
Instruksi transfer data harus menentukan beberapa hal.
243
Menetapkan lokasi operand sumber dan operand tujuan.
Lokasi tersebut bisa berupa memori, register, atau bagian
paling atas pada stack.
Menetapkan panjang data yang dipindahkan.
Menentukan metode pengalamatan pada setiap operand
(akan dibahas pada Set-Set Instruksi : Mode dan Bentuk
Pengalamatan).
Dalam hal tindakan CPU, mungkin transfer data merupakan jenis
operasi yang paling sederhana. Jika sumber dan tujuan
merupakan register, maka CPU hanya perlu melakukan
pemindahan data dari satu register ke register lainnya, ini adalah
operasi internal untuk CPU. Jika satu atau kedua operand berada
dalam memori, maka CPU harus melakukan sebagian atau semua
tindakan berikut:
1. menghitung alamat memori, berdasarkan mode alamat
2. Jika alamat mengacu ke memori virtual, terjemahkan
dari alamat memori virtual ke alamat memori yang
sebenarnya.
3. Tentukan apakah butir alamat berada dalam cache.
4. Jika tidak berada dalam cache, keluarkan perintah ke
modul memori.
Aritmatika
Kebanyakan mesin menyediakan operasi aritmatika dasar
menambah, mengurangi, mengalikan, dan membagi. Operasi-
operasi ini selalu disediakan untuk bilangan-bilangan integer
244
bertanda (titik tetap). Sering kali juga disediakan untuk floating-
point dan angka packed desimal. Operasi-operasi lainnya
meliputi berbagai instruksi operand tunggal misalnya.
Absolut: Mengambil nilai absolut dari operand.
Negate : Membalik (negasi) operand tersebut.
Increment : Tambahkan 1 pada operand.
Decrement: Kurangi 1 dari operand.
Logika
Kebanyakan mesin juga menyediakan berbagai operasi
untuk memanipulasi bit suatu word atau unit-unit lainnya yang
dapat dialamatkan, hal ini sering juga disebut sebagai "bit
twiddling." Operasi-operasi tersebut didasarkan pada operasi
Boolean. Beberapa operasi logika dasar yang dapat dilakukan
pada data Boolean atau biner adalah AND, OR, NOT, XOR.
Operasi logika ini dapat diimplementasikan secara bit untuk unit
data logika n-bit Jadi, jika dua register berisi data
(R1) - 10100101 (R2) - 00001111
kemudian
(R1) AND (R2) - 00000101
Selain operasi logika secara bit (bitwise logical operation),
umumnya mesin menyediakan berbagai pergeseran dan rotasi
fungsi seperti geser ke kiri (logical left shift), geser ke
kanan(logical right shift), memutar ke kanan (right rotate),
memutar ke kiri (left rotate).
245
Gambar 10.3 Operasi Logika
246
Konversi
Konversi adalah instruksi yang mengubah format atau
instruksi yang beroperasi terhadap bentuk data. Contohnya
adalah mengkonversi dari desimal ke biner.
I/ O
Seperti yang kita ketahui, ada berbagai pendekatan yang
diambil, termasuk di antaranya isolasi IO terprogram, pemetaan
memori I/O terprogram, DMA dan penggunaan prosesor I/O.
Banyak implementasi hanya menyediakan sedikit instruksi I/O,
dengan tindakan tertentu yang ditentukan oleh parameter, kode
atau instruksi word tertentu.
Kontrol Sistem
Instruksi kontrol sistem umumnya merupakan instruksi
khusus yang hanya dapat dieksekusi ketika prosesor dalam
keadaan khusus tertentu atau sedang menjalankan program yang
berada di area memori yang khusus. Biasanya, instruksi-instruksi
ini digunakan dalam sistem operasi.
Beberapa contoh operasi kontrol sistem adalah sebagai
berikut. Sebuah instruksi sistem kontrol dapat membaca atau
mengubah register kontrol (akan dibahas pada struktur dan fungsi
CPU). Contoh lain adalah akses ke blok-blok kontrol proses
dalam sistem multiprogramming.
Transfer Kontrol
Ada beberapa alasan mengapa operasi transfer kontrol
diperlukan. Di antara yang paling penting adalah sebagai berikut:
247
1. Dalam penggunaan praktis komputer, adalah penting
untuk dapat mengeksekusi setiap instruksi lebih dari
sekali dan mungkin ribuan kali. Ini mungkin
memerlukan ribuan atau mungkin jutaan instruksi untuk
mengimplementasikan suatu aplikasi. Tak bisa
dibayangkan kalau setiap instruksi harus ditulis secara
terpisah. Jika sebuah tabel atau daftar item yang akan
diproses, sebuah loop program diperlukan. sebuah
instruksi dieksekusi berulang kali untuk memproses
semua data.
2. Hampir semua program melibatkan beberapa
pengambilan keputusan. Kami ingin komputer untuk
melakukan satu hal jika salah satu kondisi tak terpenuhi,
dan melakukan hal lain jika kondisi lain terpenuhi.
Sebagai contoh, urutan instruksi menghitung akar
kuadrat sebuah angka. Pada awalnya, tanda angka
diperiksa, Jika angka itu adalah negatif, perhitungan
tidak dilakukan, namun akan dilaporkan error.
3. Menyelesaikan program komputer berukuran sedang
atau bahkan berukuran sedang secara benar merupakan
tugas yang sangat sulit. Maka akan sangat membantu
jika ada mekanisme untuk memecah tugas tersebut
menjadi bagia-bagian kecil.
Kita sekarang beralih ke operasi transfer kontrol paling
umum yang ditemukan dalam set instruksi: percabangan
248
(branch), lompat (skip) dan pemanggilan subrutin (subroutine
call).
1. Instruksi percabangan
Sebuah instruksi cabang, juga disebut instruksi lompatan,
memiliki sebuah operand yang terdiri atas alamat dari
instruksi berikutnya yang akan dieksekusi. Umumnya,
instruksinya adalah instruksi percabangan bersyarat. Artinya,
cabang dibuat (meng-update program counter menjadi
alamat yang sama yang ditetapkan dalam operand) hanya
jika kondisi tertentu terpenuhi. Jika tidak, instruksi
berikutnya dalam urutan dijalankan (menambahkan program
counter seperti biasa).
Gambar 10.4 Instruksi Percabangan
249
2. Instruksi lompat
Bentuk umum lain transfer kontrol adalah instruksi skip.
Instruksi skip mencakup alamat yang diimplikasikan.
Biasanya, skip menyatakan bahwa suatu instruksi dapat
dilewati, dengan demikian, alamat yang diimplikasikan sama
dengan alamat dari instruksi berikutnya ditambah satu
panjang instruksi.
3. Instruksi pemanggilan subrutin
Mungkin yang merupakan inovasi yang paling penting
dalam pengembangan bahasa pemrograman adalah subrutin,
subrutine adalah sebuah program modular yang merupakan
bagian dari program yang lebih besar. Sebuah subrutine
dapat dipanggil dari sembarang lokasi di dalam progaram.
Prosesor diinstruksikan untuk menuju ke subrutin dan
mengeksekusinya dan kemudian mengembalikannya ke
program pemanggilnya. Dua alasan utama untuk penggunaan
subrutin adalah ekonomis dan modularitas. subrutin
memungkinkan potongan kode yang sama untuk digunakan
berkali-kali. Hal ini penting secara ekonomi dalam upaya
pembuatan program dan untuk efisiensi penggunaan ruang
penyimpanan dalam sistem (program harus disimpan).
subrutin juga memungkinkan tugas pemrograman besar
dibagi menjadi unit yang lebih kecil. manfaat modularitas ini
sangat memudahkan tugas pemrograman. Mekanisme
subrutin yang melibatkan dua instruksi dasar: sebuah
250
panggilan instruksi yang bercabang dari lokasi saat itu ke
subrutin, dan instruksi pengembalian mengembalikan dari
subrutin ke tempat dari mana ia dipanggil. Keduanya
merupakan bentuk instruksi percabangan.
Gambar 10.5 Instruksi Pemanggilan Subrutin
Gambar 10.5 menggambarkan penggunaan subrutin
untuk pembuatan program. Dalam contoh ini, ada sebuah
program utama dimulai pada lokasi 4000. Program ini
meliputi panggilan ke prosedur PROC1 yang dimulai pada
251
lokasi 4500. Ketika instruksi panggilan ini ditemui, CPU
menunda eksekusi program utama dan mulai pelaksanaan
PROC1 dengan mengambil instruksi berikutnya dari lokasi
4500. Dalam PROC1, ada dua panggilan ke PR0C2 di lokasi
4800. Dalam hal ini, pelaksanaan PROC1 dihentikan dan
PROC2 dijalankan. Pernyataan RETURN menyebabkan
CPU untuk kembali ke program yang memanggilnya dan
melanjutkan eksekusi pada instruksi setelah instruksi
pemanggilan yang berkaitan. Beberapa hal yang perlu
diperhatikan:
Subrutin dapat dipanggil lebih dari satu lokasi.
Panggilan subrutin dapat muncul dalam sebuah subrurin.
Setiap pemanggilan subrutin harus diikuti dengan
RETURN dalam program yang dipanggil.
Karena kita ingin dapat memanggil subrutin dari
sembarang tempat, CPU entah bagaimana harus menyimpan
alamat kembalinya sehingga pengembalian dapat
berlangsung dengan tepat. Ada tiga tempat umum untuk
menyimpan alamat pengembalian:
Register
Awal subrutin
Puncak stack
252
Gambar 10.6 Penggunaan Stack
10.5 Pengertian mengenai Set Instruksi, Fungsi dan
Karakteristik
Set instruksi (instruction set) merupakan sekumpulan
lengkap instruksi yang dapat dimengerti oleh sebuah CPU.
Disebut juga machine code (bahasa mesin), aslinya juga
berbentuk biner yang merupakan bahasa assembly. Untuk
konsumsi manusia (dalam hal ini programmer), biasanya
digunakan representasi yang lebih mudah dimengerti yaitu
berupa bahasa yang dapat dimengerti manusia, sehingga dapat
dibagi menjadi:
- Kumpulan instruksi lengkap yang dimengerti oleh CPU
- Kode mesin
- Biner
- Kode assembly
253
Untuk dapat dieksekusi CPU, suatu instruksi harus berisi elemen
informasi yang diperlukan CPU secara lengkap dan jelas.
Adapun elemen-elemennya:
1. Operation Code (Opcode)
Menspesifikasikan operasi yang akan dilakukan. Kode operasi
berbentuk kode biner.
2. Source Operand Reference
Operasi dapat berasal dari lebih satu sumber. Operand adalah
input instruksi.
3. Result Operand Reference
Merupakan hasil atau keluaran operasi.
4. Next Instruction Reference
Elemen ini menginformasikan CPU posisi instruksi
berikutnya yang harus diambil dan dieksekusi
Elemen ini menginformasikan CPU posisi instruksi
berikutnya yang harus diambil dan dieksekusi.
Operand dari Instruksi
Melihat dari operasi, operand suatu instruksi dapat berada di
salah satu dari ketiga daerah berikut:
1. Memori utama atau memori virtual
2. Register CPU
3. Perangkat I/O
Representasi Instruksi
Instruksi komputer direpresentasikan oleh sekumpulan bit.
Instruksi dibagi menjadi beberapa field. Field-field ini diisi
254
oleh elemen-elemen instruksi yang membawa informasi bagi
operasi CPU. Layout instruksi dikenal dengan format
instruksi.
Format Instruksi
[opcode] [alamat]
Kode operasi (opcode) direpresentasikan dengan singkatan-
singkatan yang disebut mnemonic. Mnemonic
mengindikasikan suatu operasi bagi CPU.
Contoh mnemonic:
- ADD = penambahan
- SUB = subtract (pengurangan)
- LOAD = muatkan data ke memori
Contoh representasi operand secara simbolik:
- ADD X, Y
artinya: tambahkan nilai yang berada pada lokasi Y dengan
isi register X dan simpan hasilnya di register X.
Programmer dapat menuliskan program bahasa mesin dalam
bentuk simbolik. Setiap opcode simbolik memiliki
representasi biner yang tetap dan programmer dapat
menetapkan lokasi masing-masing operand. Sedangkan
format instruksi berdasarkan jumlah alamat:
1. Menggunakan 3 alamat
Bentuk umum: [OPCODE] [AH], [AO1], [AO2]
Satu alamat hasil, dua alamat operand
Misal: SUB Y, A, B
255
- Bentuk algoritmik: Y à A – B
- Arti: Kurangkan isi Reg A dengan isi Reg B, kemudian
simpan hasilnya di Reg Y.
Bentuk ini tidak umum digunakan di computer.
Mengoperasikan banyak register sekaligus , perlu word yang
panjang. Program lebih pendek.
2. Menggunakan 2 alamat
Bentuk umum: [OPCODE] [AH], [AO]
Satu alamat hasil merangkap operand, satu alamat operand
Misal: SUB Y, B
- Bentuk algoritmik: Y à Y – B
- Arti: Kurangkan isi Reg Y dengan isi Reg B, kemudian
simpan hasilnya di Reg Y.
Bentuk ini masih digunakan di komputer sekarang.
Mengoperasikan lebih sedikit register, tapi panjang program
tidak bertambah terlalu banyak , instruksi lebih pendek,
diperlukan kerja ekstra dan temporary storage untuk
menyimpan beberapa hasil operasi.
3. Menggunakan 1 alamat
Bentuk umum: [OPCODE] [AO]
Satu alamat operand, hasil disimpan di accumulator
Misal: SUB B
- Bentuk algoritmik: AC ß AC – B
- Arti: Kurangkan isi Acc. dengan isi Reg B, kemudian
simpan hasilnya di Acc.
256
Bentuk ini digunakan di komputer zaman dahulu. Hanya
mengoperasikan satu register, tapi program menjadi
bertambah panjang
4. Menggunakan 0 alamat
Bentuk umum: [OPCODE] [O]
Semua alamat operand implisit, disimpan dalam bentuk stack.
Operasi yang biasanya membutuhkan 2 operand, akan
mengambil isi stack paling atas dan di bawahnya
Misal: SUB
- Bentuk algoritmik: S[top] à S[top-1] – S[top]
- Arti: Kurangkan isi stack no.2 dari atas dengan isi stack
paling atas, kemudian simpan hasilnya di stack paling
atas.
Ada instruksi khusus stack: PUSH dan POP
Korelasi
Terlihat hubungan antara ekspresi bahasa tingkat tinggi
dengan bahasa mesin. Dalam bahasa tangkat tinggi, operasi
dinyatakan dalam bentuk aljabar singkat menggunakan
variabel. Dalam bahasa mesin hal tersebut diekspresikan
dalam operasi perpindahan antar register. Dapat ditarik
kesimpulan bahwa instruksi-instruksi mesin harus mampu
mengolah data sebagai implementasi keinginan-keinginan
kita. Terdapat kumpulan unik set instruksi, yang dapat
digolongkan dalam jenis-jenisnya, yaitu:
1. Pengolahan data (data processing)
257
Meliputi operasi-operasi aritmatika dan logika. Operasi
aritmatika memiliki kemampuan komputasi untuk
pengolahan data numerik. Sedangkan instruksi logika
beroperasi terhadap bit-bit word sebagai bit, bukannya
sebagai bilangan, sehingga instruksi ini memiliki
kemampuan untuk pengolahan data lain.
2. Perpindahan data (data movement)
Berisi instruksi perpindahan data antar register maupun
modul I/O. Untuk dapat diolah oleh CPU maka diperlukan
instruksi-instruksi yang bertugas memindahkan data operand
yang diperlukan.
3. Penyimpanan data (data storage)
Berisi instruksi-instruksi penyimpanan ke memori. Instruksi
penyimpanan sangat penting dalam operasi komputasi,
karena data tersebut akan digunakan untuk operasi
berikutnya, minimal untuk ditampilkan pada layar harus
diadakan penyimpanan walaupun sementara.
4. Kontrol aliran program (program flow control)
Berisi instruksi pengontrolan operasi dan percabangan.
Instruksi ini berfungsi untuk pengontrolan status dan
mengoperasikan percabangan ke set instruksi lain.
258
BAB 11
STRUKTUR DAN FUNGSI CPU
11.1 Pendahuluan
CPU (Central Procecing Unit) sering disebut dengan
Prosessor dan juga disebut Microprocessor, sebutan ini
digunakan pada komputer mikro. Processor merupakan sebuah
perangkat yang berfungsi untuk memproses komputer secara
keseluruhan. Pada referensi lain menyebutkan, prosesor
merupakan otak dari sebuah komputer yang berfungsi sebagai
pemroses data yang masuk menjadi sebuah informasi,
menjalankan dan melaksanakan intruksi serta mengkoordinasi
semua piranti yang berhubungan dengan komputer. CPU sendiri
merupakan komponen terpenting dari sistem komputer, yang
mana komponen pengolah datanya berdasarkan intruksi yang
diberikan kepadanya dan dalam mewujudkan fungsi dan
tugasnya, CPU tersusun atas beberapa komponen.
Struktur Komputer adalah cara komponen-komponen
komputer saling terkait dan berhubungan. Sedangkan, fungsi
259
komputer adalah operasi masing-masing komponen sebagai
bagian dari struktur.
Tugas CPU:
Mengambil instruksi: CPU membaca instruksi dan
memori.
Interprete instruksi: Pengkodean instruksi untuk
menentukan tindakan yang diperlukan.
Mengambil data: Eksekusi suatu instruksi dapat
memerlukan pembacaan data dari memori atau modul
I/O.
Mengolah data: Pembentukan beberapa operasi
aritmatika atau operasi logika pada data.
Menulis data: Penulisan data ke memori atau modul
I/O.
Untuk melakukan hal tersebut, harus jelas bahwa CPU
diperlukan untuk menyimpan beberapa data untuk sementara.
CPU harus mengingat lokasi instruksi terakhir sehingga dapat
mengetahui di mana mendapatkan instruksi selanjutnya. CPU
diperlukan untuk menyimpan instruksi dan data untuk sementara,
selagi instruksi sedang dieksekusi. Dengan kata lain, CPU
memerlukan sebuah memori internal kecil. Komponen utama
CPU adalah unit logika dan aritmatik (aritmetic and logic
unit/ALU) dan unit kendali (control unit/CU). ALU melakukan
perhitungan aktual atau pengolahan data. Sebagai tambahan,
terdapat memori internal minimal yang terdiri atas satu set lokasi
260
penyimpanan disebut register. Selain semua itu, di CPU terdapat
koleksi elemen-elemen utama yang kecil, yang dihubungkan oleh
lintasan data.
11.2 Struktur CPU
Adapun struktur CPU dapat dilihat dari gambar berikut.
Gambar 11.1 Struktur CPU
Gambar 11.1 menerangkan Struktur Komponen Internal Utama
CPU, yaitu: Control Unit, Aritmatika dan Unit Logik (ALU;
Arithmatic and Logic Unit), Register dan Sistem CPU
Interkoneksi. Penjabaran akan komponen-komponen CPU
sebagai berikut:
1. Control Unit
Control Unit (unit kontrol) bertugas mengontrol operasi CPU
dan secara keseluruhan mengontrol komputer sehingga
terjadi sinkronisasi kerja antar komputer dalam menjalankan
fungsi-fungsi operasinya. Termasuk pula tanggung jawab
261
dalam mengambil instruksi-instruksi dari memori utama dan
menentukkan jenis instruksi tersebut. Referensi lain juga
menyebutkan Control Unit berfungsi mengatur dan
mengendalikan semua peralatan yang ada pada sistem
komputer. Ia mengatur kapan alat input menerima data,
kapan data diolah dan kapan ditampilkan pada alat output,
sehingga dapat dijabarkan control unit bertugas untuk:
Mengatur dan mengendalikan alat-alat I/O
Mengambil instruksi dari main memory
Mengambil data dari main memory jika diperlukan oleh
proses
Mengirim instruksi ke ALU, bila ada perhitungan
aritmatika dan perbandingan logika serta mengawasi
kerja ALU
Menyimpan hasil proses ke main memory
2. Aritmatika dan Unit Logik
ALU bertugas membentuk fungsi pengolahan data pada
komputer. Ia sering disebut Mesin Bahasa atau Machine
Language, karena bagian ini mengerjakan instruksi-instruksi
bahasa mesin yang diberikan padanya. Sirkuit elektronik di
ALU yang digunakan untuk melaksanakan operasi
matematika disebut adder. Untuk pengoperasian seperti
pengurangan, pembagian, dan perkalian dilakukan dengan
dasar penjumlahan bukan dengan ALU. ALU terdiri atas dua
bagian, yaitu:
262
1. Unit Aritmatika, tugasnya melakukan semua perhitungan
aritmatika atau matematika yang terjadi pada instruksi
program.
2. Unit Boolean, Tugas bagian ini melakukan keputusan
dari operasi logika sesuai dengan instruksi program.
Operasi logika meliputi perbandingan dua buah elemen
logika dengan menggunakan operator logika, yaitu:
a. Sama dengan (=)
b. Tidak sama dengan (<>; 1)
c. Kurang dari (<)
d. Kurang atau sama dengan dari (<=; £)
e. Lebih besar dari (>)
f. Lebih besar atau sama dengan dari (>=; s)
3. Register
Register merupakan media penyimpanan internal CPU yang
digunakan saat proses pengolahan data disebut juga Memori
Utama. Memori ini bersifat sementara, biasanya digunakan
untuk menyimpan data saat diolah ataupun data untuk
pengolahan selanjutnya. Register berupa memori kecil akan
tetapi memiliki kecepatan yang tinggi sekitar 5-10x lebih
cepat dibandingkan dengan perekaman atau pengambilan
data dari main memori. Secara analogi, register dapat
diibaratkan dengan ingatan di otak bila kita melakukan
pengolahan data secara manual. Register yang berhubungan
dengan instruksi yang sedang diproses adalah instruction
register dan program counter. Instruction Register (IR) atau
263
disebut juga program register digunakan untuk menyimpan
instruksi yang sedang diproses. Program yang berisi
kumpulan instruksi. Pemrosesan program dilakukan instruksi
per instruksi. Instruksi yang mendapat giliran untuk
diproses, diambil dari main memory dan disimpan di IR.
Program Counter (PC) atau disebut juga control counter
atau intruction counter adalah register yang digunakan
untuk menyimpan alamat (address) lokasi dari main memory
yang berisi instruksi yang sedang diproses. Sehingga dengan
adanya program initidak ada waktu yang terbuang untuk
mencari jejak instruksi berikutnya. Ia juga berfungsi
menentukan alamat instruksi berikutnya yang akan
dieksekusi. Data ditukar dengan memori dengan
menggunakan register MAR dan MBR. Memory Address
Register (MAR) berisi alamat sebuah lokasi dalam memori.
MAR menghubungkan bus alamat secara langsung.
Sedangkan yang menghubungkan bus data secara langsung
adalah Memory Buffer Register (MBR) berisi sebuah data
word yang akan dituliskan kedalam memori atau word yang
terakhir dibaca. Keempat register hanya disebutkan
digunakan untuk pergerakan data antara CPU dan memori.
Dalam CPU, data harus disajikan ke ALU untuk diproses.
ALU mungkin memiliki akses langsung ke MBR dan register
user terlihat. Atau mungkin ada register penyangga
tambahan pada batas ke ALU: register ini berfungsi sebagai
register input dan output untuk SEMUA dan bertukar data
264
dengan MBR dan register user-terlihat. Semua desain CPU
mencakup sebuah register atau set register, sering dikenal
sebagai kata status program (PSW), yang berisi informasi
status. PSW biasanya berisi kode kondisi ditambah informasi
lainnya noda. Bidang umum atau bendera adalah sebagai
berikut:
Sign: Berisi bit tanda hasil operasi aritmetika terakhir.
Zero: Mengatur ketika hasilnya adalah 0.
Carry: Mengatur jika operasi menghasilkan)
membawa (penambahan ke dalam atau meminjam
(sub-traksi) keluar dari orde hit tinggi. Digunakan
untuk operasi aritmatika berbentuk frase.
Sama: Mengatur jika membandingkan hasil logis
adalah keadilan.
Overflow: Digunakan untuk menunjukkan overflow
aritmetika
Interrupt mengaktifkan / menonaktifkan: Digunakan
untuk mengaktifkan atau menonaktifkan interupsi.
Supervisor: Menunjukkan apakah CPU mengeksekusi
dalam mode supervisor atau user. Instruksi
privileged tertentu dapat dilakukan dalam modus
supervisor dan daerah tertentu memori dapat diakses
hanya dalam mode supervisor.
Sejumlah dari register lain yang berkaitan dengan status dan
kontrol bisa ditemukan dalam desain CPU tertentu. Selain
265
PSW, mungkin ada pointer ke blok memori yang berisi
informasi status tambahan (misalnya, proses blok kontrol).
Register pada CPU membentuk dua peran:
1. Register terlihat oleh pengguna
Merupakan salah satu yang dapat diacu dengan
menggunakan bahasa mesin yang mengeksekusi CPU.
Kita dapat menandainya di dalam kategori berikut :
a) Tujuan umum
Register bertujuan umum oleh pemrogram dapat
ditugaskan untuk berbagai macam fungsi.
b) Data
Register data hanya dapat digunakan untuk
menampung data dan tidak dapat digunakan dalam
kalkulasi alamat operand.
c) Alamat
Register alamat dapat berdiri sendiri menjadi
bertujuan umum atau dapat diabdikan bagi mode
pengalamatan tertentu. Contohnya meliputi sebagai
berikut:
Pointer segmen: pada mesin dengan
pengalamatan tersegmen, register segmen
menampung alamat basis segmen. Mungkin ada
berbagai register: sebagai contoh satu untuk
sistem informasi dan satu untuk proses akhir.
266
Register indeks: ini digunakan untuk
pengalamatan terindeks indexed dan mungkin
terindeks otomatis.
Pointer stack: jika terdapat pengalamatan
terlihat oleh pengguna, maka stack secara umum
berada dalam memori dan terdapat register
terdedikasi yang mengarah ke puncak stack. Hal
ini memungkinkan pengalamatan tersembunyi;
yaitu, push, pop dan instruksi stack lain yang
tidak perlu terdiri atas operand stack eksplisit
d) Kode kondisi
Kode kondisi penampung (juga dikenal sebagai
flag). Kode kondisi adalah set bit oleh hardware
CPU sebagai hasil operasi. Sebagai contoh, suatu
operasi aritmatika dapat menghasilkan hasil positif,
negatif, nol, atau overflow. Sebagai tambahan
terhadap hasilnya sendiri yang disimpan dalam
register atau memori, kode kondisi juga di-set. Kode
sesudah itu diuji sebagai bagian dari operasi cabang
bersyarat.
2. Register kontrol dan statis
Terdapat berbagai macam register CPU yang
dilakukannya untuk mengontrol operasi CPU. CPU pada
kebanyakan mesin tidak terlihat oleh pengguna.
Sebagian register dapat terdeteksi oleh instruksi mesin
267
dieksekusi di dalam mode kontrol atau mode sistem
operasi. Empat register penting untuk eksekusi instruksi:
a) Pencacah program (program counter-PC): berisi
alamat instruksi yang diambil.
b) Register instruksi (instruction register-IR): berisi
instruksi yang paling akhir diambil.
c) Register alamat memori (memory address register-
MAR): berisi alamat lokasi dalam memori.
d) Register buffer memori (memory buffer register-
MBR): terdiri word data yang ditulis ke memori atau
word yang paling akhir dibaca.
Secara umum, CPU meng-update PC setelah instruksi
diambil, sehingga PC selalu menunjuk kepada instruksi
berikutnya untuk dieksekusi. Sebuah instruksi cabang
atau skip juga akan memodifikasi isi dari PC. Instruksi
yang diambil terisi ke dalam IR di mana specifier opcode
dan operand dianalisis. Data ditukar dengan memori
menggunakan MAR dan MBR. Pada sistem bus
terorganisasi, MAR menghubungkan bus alamat secara
langsung dan MBR menghubungkan bus data secara
langsung. Register terlihat oleh pengguna, pada
gilirannya, menukar data dengan MBR. Empat register
yang baru saja disebutkan digunakan untuk pemindahan
data antara CPU dan memori. Di dalam CPU data harus
diperkenalkan kepada ALU untuk diolah. ALU dapat
mempunyai akses langsung ke MBR dan register terlihat
268
oleh pengguna. Semua rancangan CPU meliputi sebuah
register atas kelompok register, sering dikenal sebagai
word status program (PSW), yang terdiri atas informasi
status PSW secara umum terdiri atas kode kondisi
ditambah informasi status lainnya. Bidang umum atau
flag meliputi hal-hal berikut:
1) Tanda: terdiri bit tanda hasil dari operasi aritmatika
terakhir.
2) Nol: di-set ketika hasilnya sama dengan nol.
3) Pembawa: di-set jika sebuah operasi menghasilkan
suatu pembawa ke dalam atau meminjam ke luar dari
bit order tinggi. Digunakan untuk operasi aritmatika
multi word.
4) Sama: di-set jika hasil perbandingan logis adalah
persamaan.
5) Overflow: digunakan untuk mengindikasikan
overflow aritmatika.
6) Interupsi enable/disable: digunakan untuk interupsi
eneable/disable.
7) Supervisor: mengindikasikan apakah CPU
melakukan pengeksekusian dalam mode supervisor
atau pengguna.
3. Organisasi Register
Organisasi register meliputi jenis register berikut (Tabel
11.1) :
269
a) Umum: terdapat delapan register bertujuan umum
32-bit. Ini bisa digunakan untuk semua jenis
instruksi Pentium; register tersebut dapat juga
menampung operand untuk kalkulasi alamat.
Sebagai tambahan, beberapa dari register ini juga
memberikan tujuan khusus. Sebagai contoh, perintah
string menggunakan isi register ECX, ESI dan EDI
sebagai operand tanpa keharusan untuk mengacu
register ini secara eksplisit dalam instruksi. Sebagai
hasilnya, sejumlah perintah dapat dikodekan dengan
singkat.
b) Segmen: enam register bersegmen 16-bit terdiri atas
sektor segmen, yang mengindeks ke dalam tabel
bersegmen. Register segmen kode (code segment-
CS) mengacu segmen yang terdiri atas instruksi yang
sedang dieksekusi. Register segment stack (SS)
mengacu segmen yang terdiri atas stack terlihat oleh
pengguna (DS, ES, FS, GS) mengacu sampai ke
empat segmen data terpisah pada waktu yang sama.
c) Flag: register EFLAG terdiri atas kode kondisi dan
berbagai bit mode.
d) Pointer instruksi: terdiri atas alamat instruksi
tertentu.
Terdapat juga register yang diberikan secara spesifik
bagi unit titik mengambang:
270
Numerik: setiap register menampung sejumlah
titik mengambang 80-bit dengan ketepatan luas.
Terdapat delapan register yang berfungsi sebagai
stack, dengan operasi push dan pop yang tersedia
pada set instruksi.
Kontrol: register kontrol 16-bit terdiri dari bit
yang mengontrol pengoperasian unit titik
mengambang, termasuk jenis kontrol
pembulatan; ketepatan tunggal, ganda, atau luas;
dan bit yang enable atau disable multiple
kondisi-kondisi perkecualian.
Status: register status 16-bit terdiri atas bit yang
mencerminkan status tertentu dari unit titik
mengambang, termasuk pointer 3-bit ke puncak
stack; kode kondisi melaporkan hasil operasi
terakhir; dan flag perkecualian.
Word tag: register 16-bit ini terdiri atas tag 2-bit
untuk setiap register numerik titik mengambang,
mengindikasikan sifat isi register yang
bersesuaian. Empat nilai yang mungkin valid
adalah nol, khusus (NAN, tidak terbatas,
denormalisasi) dan kosong. Tag ini
memungkinkan program untuk memeriksa isi
dari register numerik tanpa melakukan
pendekodean yang kompleks data aktual
tersebut. Sebagai contoh, ketika tombol konteks
271
dibuat, prosesor tidak perlu menyimpan setiap
register titik mengambang yang kosong.
Tabel 11.1 Register Prosesor Pentium
(a) Unit Integer
Jenis Bilangan Panjang
(bit)
Tujuan
Umum 8 32 Register pengguna
bertujuan umum
Segmen 6 16 Terdiri dari
selektor segmen
Flag 1 32 Bit status dan bit
kontrol
Pointer
Instruksi
1 32 Pointer instruksi
(b) Unit Titik Mengambang
Jenis Bilangan Panjang
(bit)
Tujuan
Numerik 8 80 Menampung bilangan-
bilangan titik
mengambang
Kontrol 1 16 Bit control
Status 1 16 Bit status
Word Tag 1 16 Spesifikasi isi register
272
numerik
Pointer
Instruksi
1 48 Menunjuk instruksi
terinterupsi dengan
pengecualian
Pointer
Data
1 48 Menunjuk operand
terinterupsi dengan
pengecualian
4. Register EFLAG
Register EFLAG mengindikasikan kondisi prosesor dan
membantu mengontrol operasinya. Terdapat beberapa bit
dalam register yang dapat diacu sebagai bit kontrol,
yaitu:
a) Flag jebakan (trap flag-TF): ketika di-set, setiap
instruksi menyebabkan interupsi setelah dieksekusi.
Ini digunakan untuk debugging.
b) Flag enable interupsi (interrupt enable flag-IF):
ketika di-set, prosesor akan mengenali interupsi
eksternal.
c) Flag arah (direction flag-DF): menentukan
pengolahan string menaikkan atau menurunkan
instruksi register separuh 16-bit S1 dan D1 (untuk
operasi 16-bit) atau register 32-bit ESI dan EDI
(untuk operasi 32-bit).
d) Flag khusus I/O (I/O privilege flag-IOPL): ketika
di-set, menyebabkan prosesor menghasilkan
273
perkecualian pada semua akses ke perangkat I/O
selama operasi mode proteksi.
e) Flag mulai lagi (resume flag-RF): memungkinkan
pemrogram untuk disable debug perkecualian
sehingga instruksi dapat dimulai kembali setelah
debug perkecualian hingga batas tertentu tanpa
menyebabkan debug perkecualian yang lain.
f) Cek kelurusan (aligment check-AC): mengaktifkan
word atau doubleword jika dialamatkan pada batas
nonword atau nondoubleword.
g) Flag identifikasi (identification flag-ID): jika bit ini
dapat di-set dan dibersihkan, maka prosesor ini
mendukung instruksi CPUID instruksi. Instruksi ini
memberikan informasi tentang vendor, jenis dan
model.
Sebagai tambahan, terdapat 4-bit yang berhubungan
dengan mode pengoperasian. Flag tugas tersarang
(nested task-NT) mengindikasikan bahwa tugas tertentu
tersarang di dalam tugas lainnya pada operasi mode
terproteksi. Bit mode virtual (virtual mode-VM)
memungkinkan pemrogram untuk enable atau disable
mode virtual 8086, yang menentukan prosesor berjalan
sebagai mesin 8086. Flag interupsi virtual (virtual
interupt flag-VF) dan flag penungguan interupsi virtual
(virtual interuptt pending-VIP) digunakan pada
lingkungan multitasking.
274
5. Register Kontrol
Pentium menggunakan empat register kontrol 32-bit
(register CR1 tidak terpakai) untuk mengontrol berbagai
aspek operasi prosesor. Register CR0 dari flag kontrol
sistem, yang mengontrol mode-mode atau
mengindikasikan keadaan bahwa aplikasi secara umum
ke prosesor daripada ke eksekusi tugas individu. Flag
adalah sebagai berikut:
1) Enable proteksi (protection enable-PE): mode
proteksi operasi enable/disable.
2) Monitor coprosesor (MP): hanya menarik perhatian
ketika menjalankan program dari mesin sebelum
pentium; ini berhubungan dengan kehadiran
coprosesor aritmatika.
3) Emulasi (emulation-EM): di-set ketika prosesor
tidak mempunyai unit titik mengambang dan
menyebabkan interupsi ketika dibuat untuk
mengeksekusi instruksi titik mengambang.
4) Tugas yang di-switch (task switched-TS):
mengindikasikan bahwa prosesor mempunyai tugas
yang di-switch.
5) Jenis ekstensi (extension type-ET): tidak digunakan
pada pentium. Digunakan untuk mengindikasikan
dukungan instruksi coprosesor matematik pada
mesin sebelumnya.
275
6) Kesalahan numerik (numeric error-NE):
memungkinkan mekanisme buku pelaporan
kesalahan titik mengambang pada saluran bus
eksternal.
7) Proteksi tulis (write protect-WP): ketika bit ini
kosong, halaman read-only tingkat pengguna dapat
ditulis dengan proses supervisor. Fitur ini
bermanfaat untuk mendukung pembuatan proses
dalam beberapa sistem operasi.
8) Aligment mask (AM): enable/disable cek peralatan.
9) Not write trough (NW): memilih mode operasi
cache data. Ketika bit ini di-set, cache data dilarang
melakukan operasi melalui penulisan cache.
10) Cache disable (CD): enable/disable mekanisme
pengisian cache internal.
11) Pemberian nomor halaman (paging-PG):
enable/disable pemberian nomor halaman.
Ketika pemberian nomor halaman dimungkinkan,
register CR2 dan CR3 valid. Register CR2
menampung alamat linear 32-bit halaman terakhir
yang diakses sebelum interupsi halaman kesalahan.
Bit 20 paling kiri dari CR3 menampung 20 lebih bit
signifikan dari alamat dasar direktori halaman; perlu
diingat alamat terdiri atas nol. Dua bit dari CR3
digunakan untuk mengemudikan pin-pin yang
mengontrol operasi cache eksternal. Page-level
276
cache disable (PCD) enable atau disable cache
eksternal dan page-level writes transparant (PWT)
mengontrol bit melalui penulisan cache eksternal.
Sembilan bit kontrol tambahan didefinisikan dalam
CR4 :
1) Virtual-8086 mode extension (VME):
memungkinkan mendukung untuk interupsi
virtual dalam mode virtual-8086
2) Protected-mode virtual interuptts (PVI):
memungkinkan mendukung flag interupsi virtual
dalam mode yang terproteksi.
3) Time stamp disable (TSD): men-disable
instruksi read time stamp counter (RDTSC),
yang digunakan untuk tujuan debugging.
4) Ekstensi debugging (debugging extensions-
DE): enable breakpoint I/O, hal ini mengijinkan
prosesor untuk menginterupsi pada pembacaan
dan penulisan I/O.
5) Perluasan ukuran halaman (page size
extensions-PSE): memungkinkan penggunaan
halaman 4-Mbyte ketika di-set pada halaman
Pentium atau 2-Mbyte ketika di-set pada
Pentium Pro dan Pentium.
6) Perluasan alamat fisik (physical address
extension-PAE): memungkinkan saluran alamat
A35 melalui A32 kapan saja mode pengalamatan
277
baru khusus, dikontrol oleh PSE, dimungkinkan
untuk arsitektur Pentium Pro dan Pentium
berikutnya (Pentium 2 sampai Pentium 4).
7) Enable cek mesin (machine check enable-
MCE): memungkinkan interupsi memeriksa
mesin, yang terjadi ketika kesalahan paritas data.
Terjadi selama siklus bus baca atau ketika siklus
bus tidak berhasil diselesaikan.
8) Enable menyeluruh halaman (page global
enable-PGE): memungkinkan penggunaan
halaman menyeluruh. Ketika PGE=1 dan tombol
tugas dilakukan, semua masukkan TLB di-flush
dengan pengecualian yang ditandai globalnya.
9) Enable pencacah kinerja (performance
counter enable-PCE): memungkinkan eksekusi
instruksi RDMPC (read performance counter)
pada sembarang tingkatan khusus. Dua pencacah
kinerja digunakan untuk mengukur jangka waktu
jenis peristiwa spesifik dan banyaknya kejadian
dari jenis peristiwa spesifik.
6. Register MMX
Kemampuan Pentium MMX dapat menggunakan
beberapa jenis data 64-bit. Instruksi MMX dapat
menggunakan bidang alamat register 3-bit, sehingga
didukung delapan register MMX. Kenyataannya,
prosesor tidak meliputi register MMX yang spesifik.
278
Melainkan, prosesor menggunakan teknik alias. Register
titik mengambang yang ada digunakan untuk nilai-nilai
penyimpan MMX. Secara rinci, 64 bit order rendah
(mantissa) setiap register titik mengambang digunakan
untuk membentuk delapan register MMX. Sehingga,
arsitektur Pentium yang ada dengan mudah diperluas
untuk mendukung kemampuan MMX. Beberapa
karakteristik penting MMX yang menggunakan register
ini adalah sebagai berikut:
Mengingat bahwa register titik mengambang
diperlakukan sebagai stack untuk operasi titik
mengambang. Karena operasi MMX, register yang
sama ini dapat diakses secara langsung.
Pertama kali instruksi MMX dieksekusi setelah
terdapat sembarang operasi titik mengambang, tag
word FP ditandai valid. Hal ini mencerminkan
perubahan dari operasi stack ke pengalamatan
register langsung.
Instruksi EMMS (empty MMX state) menetapkan bit
dari tag word FP untuk mengindikasikan bahwa
semua register adalah kosong. Penting bahwa
pemrogram menyisip instruksi ini pada ujung blok
kode MMX sehingga fungsi operasi titik
mengambang berikut berjalan dengan baik.
Ketika suatu nilai ditulis ke register MMX, bit
[79:64] yang bersesuian dengan register FP (bit
279
tanda dan bit eksponen) di-set ke semua orang. Hal
ini mengeset nilai dalam register FP ke NAN (bukan
bilangan) atau ketidakterbatasan ketika dipandang
sebagai nilai titik mengambang. Hal ini memastikan
bahwa nilai data MMX tidak akan seperti nilai titik
mengambang yang valid.
11.3 Sistem CPU Interkoneksi
Sistem koneksi dan bus menghubungkan komponen
internal CPU (yaitu ALU, unit control dan register) dan dengan
bus-bus eksternal CPU yang menghubungkan dengan sistem
lainnya, seperti memori utama dan piranti I/O. CPU mempunyai
dua macam komponen, yaitu Komponen Internal CPU dan
Komponen Eksternal CPU. Komponen Internal CPU terdiri atas
ALU, Unit Kontrol dan Register. Sedangkan, Komponen
Eksternal CPU terdiri atas sistem lainnya, seperti memori utama,
piranti input/output.
Gambar 11.2 Komponen Eksternal CPU
280
Gambar 11.3 Struktur Internal CPU
Gambar 11.2 menunjukkan komponen internal dari CPU
dan Gambar 11.3 menunjukkan Struktur Internal CPU.
a. Fungsi CPU
CPU berfungsi sebagai kalkulator, akan tetapi CPU
memiliki daya pemrosesan yang lebih kuat. Fungsi
utamanya mengendalikan semua unit sistem komputer
yang lain dan mengubah input menjadi output, serta
melakukan operasi aritmatika dan logika terhadap data dari
memori atau dari data masukan. CPU memiliki dua bagian
fungsi operasional, yaitu ALU (Arithmatical Logic Unit)
sebagai pusat pengolah data dan CU (Contro Unit ) sebagai
pengontrol kerja komputer.
Fungsi CPU adalah:
281
Menjalankan program yang disimpan di memori utama
dengan cara mengambil intruksi, mengujinya dan
mengeksekusinya satu persatu sesuai alur perintah.
Pandangan paling sederhana proses eksekusi program
adalah dengan mengambil pengolahan intruksi yang
terdiri atas dua langkah, yaitu Operasi Pembacaan
Instruksi (fetch) dan Operasi Pelaksanaan Intruksi
(execute).
Siklus instruksinya terlihat pada Gambar 11.4. Pada setiap
siklus instruksi, CPU awalnya akan membaca instruksi dari
memori. Di bagian dalam CPU terdapat Register yang
berfungsi mengawasi dan menghitung instruksi
selanjutnya, biasa disebut Program Counter (PC). PC akan
menambah satu hitungannya setiap kali membaca instruksi.
Instruksi-instruksi yang dibaca akan dibuat dalam Register
Instruksi (IR). Instruksi ini masih dalam bentuk kode biner
yang dapat diinterpresentasikan oleh CPU kemudian
dilakukan aksi yang diperlukan.
282
Aksi CPU yaitu:
CPU-Memori, perpindahan data di antara keduanya,
baik dari CPU ke memori atau sebaliknya.
CPU- I/O, perpindahan data dari CPU ke modul I/O
dan begitu pula sebaliknya dari modul I/O ke CPU.
Pengolahan data, CPU membentuk sejumlah operasi
aritmatika dan logika terhadap data.
Kontrol, merupakan intruksi untuk pengontrolan
fungsi atau kerja. Misalnya intruksi pengubahan
urusan eksekusi.
Gambar 11.4 Siklus Instruksi
283
Perlu diketahui bahwa Siklus Eksekusi untuk suatu
intruksi mempunyai beberapa intruksi dapat melibatkan lebiih
dari sebuah referensi ke memori. Di samping itu pula, suatu
instruksi dapat menentukan operasi I/O , yaitu:
Instruction Addess Calculation (IAC), mengkalkulasikan
atau menentukan alamat instruksi berikutnya yang akan
dieksekusi. Biasanya, melibatkan penambahan bilangan
tetap ke alamat intruksi sebelumnya. Misalnya, bila
panjang setiap intruksi 16 bit padahal memori yang ada
hanya sebesar 8 bit, maka hal ini dapat diatasi dengan
menambahkan 2 ke alamat sebelumnya.
Instruction Fetch (IF), membaca atau pengambilan
intruksi dari lokasi memorinya ke CPU
Instruction Operation Decoding (IOD), menganalisis
instruksi untuk menentukan jenis operasi yang akan
dibentuk dan operand yang akan digunakan
Operand Address Calculation (OAC), menentukan
alamat alamat operand, hal ini dilakukan bila referensi
operand terlibat pada memori.
Operand Fetch (OF), pengambilan operand dari memori
atau dari modul I/O.
Data Operation (DO), membentuk operasi yang
diperintahkan dalam intruksi.
Operand Store (OS), menyimpan hasil eksekusi ke dalam
memori.
284
Gambar 11.5 Siklus Instruksi yang Berjalan
b. Pengolahan Interupsi
Pengolahan interupsi di dalam prosesor merupakan fasilitas
yang diberikan untuk mendukung sisitem operasi. Sistem
tersebut mengizinkan program aplikasi ditahan, supaya
berbagai kondisi interupsi dapat dilayani dan kemudian
setelah itu dilanjutkan.
c. Interupsi dan Perkecualian
Dua kelas peristiwa menyebabkan Pentium menghentikan
eksekusi instruksi terakhir dan merespons kejadian:
Interupsi dan Perkecualian. Pada kedua kasus, prosesor
menyimpan isi dari proses terakhir dan memindahkannya
ke suatu rutin yang telah dikenal untuk melayani kondisi.
Sebuah interupsi dihasilkan oleh sinyal hardware dan
dapat terjadi secara acak sepanjang waktu eksekusi
program. Sebuah perkecualian diturunkan dari software
dan ini dipicu oleh eksekusi instruksi. Terdapat dua sumber
interupsi dan dua sumber perkecualian:
285
1. Interupsi
Maskable interrupts: diterima pada pin INTR
prosesor. Prosesor tidak mengenali interupsi askable
kecuali jika flag enable interupsi (interrupt enable
flag-IF) di-set.
Nonmaskable interrupts: diterima pada NMI prosesor.
Pengenalan interupsi seperti itu tidak bisa dicegah.
2. Perkecualian
Perkecualian terdeteksi prosesor (processor-dtected
exceptions): dihasilkan ketika prosesor menghadapi
suatu kesalahan ketika mencoba mengeksekusi
instruksi.
Perkecualian terprogram (programmed exceptions):
ini adalah instruksi yang mengahasilkan perkecualian
(INT0, INT3, INT dan BOUND).
d. Tabel Vektor Interupsi
Pengolahan interupsi pada Pentium menggunakan tabel
vektor interupsi. Setiap jenis interupsi ditugaskan sebagai
bilangan dan bilangan ini digunakan untuk mengindeks ke
dalam tabel vektor interupsi. Tabel ini terdiri atas 256
vektor interupsi 32 bit, yang merupakan alamat (segmen
dan offset) dari layanan interupsi untuk bilangan interupsi
tersebut. Tabel 11.2 menunjukkan penjelasan bilangan-
bilangan pada vektor interupsi tabel; masukkan yang
berbayangan mempresentasikan interupsi, ketika masukkan
286
tidak berbayangan berarti perkecualian. Interupsi hardware
NMI adalah jenis 2. Interupsi hardware INTR adalah
bilangan yang berada di sekitar 32 sampai 255; ketika
interupsi INTR dihasilkan, interupsi INTR harus berada
pada bus dengan bilangan vektor interupsi untuk interupsi
ini. Bilangan vektor sisanya digunakan sebagai
perkecualian jika lebih banyak dari satu perkecualian atau
interupsinya menunggu, layanan prosesornya pada pesanan
yang didapat diprediksi. Lokasi bilangan vektor dengan
tabel tidak mencerminkan prioritas. Sebagai gantinya,
prioritas antar perkecualian dan interupsi diorganisasikan
ke dalam lima kelas. Pada urutan prioritas menurun, yaitu:
Kelas 1 : terjebak pada instruksi sebelumnya
(bilangan vektor 1)
Kelas 2 : interupsi eksternal (2, 32-255)
Kelas 3 : kesalahan dari pengambilan instruksi
berikutnya (3, 14)
Kelas 4 : kesalahan dari memecahkan kode
instruksi berikutnya (6, 7)
Kelas 5 : kesalahan pada pengeksekusian
instruksi (0, 4, 5, 8, 10-14, 16, 17)
287
Tabel 11.2 Tabel Perkecualian Pentium dan Vektor Interupsi
Nomor
Vektor
Penjelasan
0 Kesalahan pembagian; overflow pembagian atau
pembagian oleh nol
1 Perkecualian debug; meliputi berbagai kesalahan dan
jebakan yang dihubungkan dengan debugging
2 Interupsi pin NMI; sinyal pada pin NMI
3 Breakpoint; disebabkan oleh instruksi INT 3, yang
merupakan instruksi 1-byte yang bermanfaat untuk
debugging
4 Overflow terdeteksi INTO; terjadi ketika prosesor
mengeksekusi INTO dengan flag OF
5 Melebihi set cakupan BOUND; instruksi BOUND
membandingkan sebuah register dengan batasan-
batasan yang tersimpan dalam memori dan
menghasilkan suatu interupsi jika muatan register di
luar batas
6 Opcode tidak terdefinisi
7 Perangkat tidak tersedia; berusaha untuk
menggunakan instruksi ESC atau WAIT gagal dalam
kaitannya dengan ketiadaan
8 ‘double fault’ perangkat eksternal; dua interupsi
terjadi sepanjang instruksi yang sama dan tidak bisa
ditangani secara berurutan
288
9 Dipesan
10 Tugas tidak valid menyatakan segmen; segmen
menguraikan suatu tugas yang diminta tidak
diinisialisasikan atau segmen yang tidak valid tidak
disajikan
11 Segmen yang diperlukan tidak disajikan
12 Kesalahan stack; batas dari segmen stack yang
terlewati atau segmen stack tidak memberikan
proteksi umum
13 Pelanggaran proteksi yang tidak menyebabkan
perkecualian yang lain (misalnya, penulisan ke
segmen read-only)
14 Kesalahan halaman
15 Dipesan
16 Kesalahan titik mengambang; dihasilkan oleh suatu
cek perataan instruksi aritmatika
17 Titik mengambang; mengakses ke word tersimpan
pada alamat bit ganjil atau doubleword tersimpan
pada alamat yang tidak satupun berbagai macam cek
mesin 4; model spesifik
18 Dipesan
32-255 Vektor interupsi pengguna; diberikan ketika sinyal
INTR diaktifkan
Tidak berbayangan : perkecualian
Berbayangan : interupsi
289
e. Penanganan Interupsi
Sama halnya dengan perpindahan eksekusi yang
menggunakan instruksi CALL, perpindahan ke rutin
penanganan interupsi menggunakan stack sistem untuk
menyimpan status prosesor. Ketika interupsi terjadi dan
dikenali oleh prosesor, rangkaian berikut akan
berlangsung:
1. Jika perpindahan melibatkan perubahan tingkatan
khusus, maka register segmen stack tertentu dan register
pointer stack yang diperluas (extended stack pointer-
ESP) tertentu di-push ke stack.
2. Nilai tertentu register EFLAG di-push ke stack.
3. Baik flag interupsi (interrupt flag-IF) maupun flag
jebakan (trap flag-TF) dikosongkan. Hal ini men-disable
interupsi INTR dan jebakan atau fitur langkah tunggal.
4. Pointer segmen kode (code segment-CS) dan pointer
instruksi (instruction pointer-IP atau EIP) di-push ke
stack.
5. Jika interupsi menyertai kode kesalahan, maka kode
kesalahan dipush ke stack.
6. Muatan vektor interupsi diambil dan diisi ke dalam
register CS dan IP/EIP. Eksekusi berlanjut dari rutin
layanan interupsi.
Untuk kembali dari interupsi, rutin layanan interupsi
mengeksekusi instruksi IRET. Hal ini menyebabkan semua
290
nilai yang tersimpan pada stack dikembalikan; eksekusi
melanjutkan dari poin interupsi.
11.4 Prosesor PowerPC
1. Organisasi Register
Register terlihat oleh pengguna untuk powerPC. Termasuk
unit titik tetap:
a) Umum: terdapat tiga puluh dua register bertujuan
umum 64-bit. Ini dapat digunakan untuk mengisi,
menyimpan dan memanipulasi operand data dan juga
dapat digunakan untuk pengalamatan tidak langsung
register. Register 0 diperlakukan sedikit banyak secara
berbeda. Untuk operasi load dan store beberapa
instruksi tambahan, register 0 diperlakukan sebagai
yang mempunyai nilai tetap nol dengan mengabaikan
muatan nyatanya.
b) Register perkecualian (exception register-XER):
meliputi 3-bit yang melaporkan perkecualian dalam
operasi aritmatika integer. Register ini juga meliputi
bidang penghitung byte yang digunakan sebagai
operand untuk beberapa perintah string.
Unit titik mengambang terdiri atas register terlihat oleh
pengguna tambahan:
a) Umum: terdapat tiga puluh dua register bertujuan
umum 64-bit, digunakan untuk semua operasi titik
mengambang.
291
b) Register status dan kontrol titik mengambang
(floating-point status and control register-
FPSCR): register 32-bit ini terdiri atas bit yang
mengontrol pengoperasian unit titik mengambang
dan bit yang merekam status sebagai hasil dari
operasi titik mengambang (Tabel 11.3).
Tabel 11.3 Bit Status Mengambang dan Register Kontrol
PowerPC
Bit Definisi
0 Ringkasan perkecualian. Di-set jika sembarang
perkecualian terjadi: sisanya di-set sampai di-reset oleh
software
1 Ringkasan perkecualian yang enable. Di-set jika setiap
perkecualian enable telah terjadi.
2 Ringkasan perkecualian operasi tidak valid. Di-set jika
perkecualian operasi tidak valid telah terjadi
3 Perkecualian overflow. Nilai hasilnya melebihi apa
yang dapat dipresentasikan
4 Perkecualian underflow. Hasilnya terlalu kecil untuk
dinormalisasikan
5 Perkecualian pembagi nol. Pembagi nol dan
dividennya adalah nonzero terbatas
6 Perkecualian tidak tepat. Hasilnya dibulatkan berbeda
dari hasil antara atau sebuah overflow terjadi dengan
disable perkecualian overflow
292
7:12 Perkecualian operasi tidak valid. 7 : pemberian sinyal
NaN; 8; (∞ - ∞); 9(∞ + ∞); 10(0 † 0); 11(∞ - 0) 12;
perbandingan yang mnyertakan NaN
13 Pecahan yang dibulatkan
14 Pecahan tidak tepat. Hasilnya dibulatkan mengubah
pecahan atau overflow terjadi dengan disable
perkecualian overflow
15:19 Flag hasil. Kode lima bit menspesifikasikan kurang
dari, lebih dari, sama dengan, tidakn diperintah, NaN,
±∞, ±normalisasi, ±denormalisasi, ±0
20 Dipesan
21:23 Perkecualian operasi tidak valid. 21 : permintaan
software, 22 : akar kuadrat bilangan negatif; 23 :
konversi bilangan bulat menyertakan sejumlah besar
bilangan, tidak terhingga, atau NaN
24 Enable perkecualian operasi tidak valid
25 Enable perkecualian overflow
26 Enable perkecualian underflow
27 Enable perkecualian pembagi nol
28 Enable perkecualian tidak tepat
29 Mode Non-IEEE
30:31 Kontrol pembulatan. Kode dua bit menspesifikasikan
ke yang paling dekat, ke arah 0
Tidak berbayangan : bit status
Berbayangan : bit kontrol
293
Unit pengolahan percabangan terdiri atas register terlihat oleh
pengguna ini:
a) Register kondisi: terdiri atas delapan bidang kode kondisi 4-
bit.
b) Register penghubung (link): register penghubung dapat
digunakan pada instruksi percabangan bersyarat untuk
pengalamatan tidak langsung alamat target. Register ini juga
digunakan untuk perilaku call/return. Jika LK bit pada
instruksi percabangan bersyarat di-set, maka alamat
mengikuti instruksi percabangan yang ditempatkan pada
register penghubung dan register penghubung dapat
digunakan untuk hasil selanjutnya.
c) Penghitungan: register penghitungan dapat digunakan untuk
mengontrol pengulangan iterasi. Register penghitungan
diturunkan setiap waktu yang diuji pada instruksi
percabangan bersyarat. Penggunaan lain register ini adalah
pengalamatan tidak langsung dari alamat target pada
instruksi percabangan.
Bidang register kondisi mempunyai sejumlah kegunaan.
Pertama 4-bit (CR0) di-set untuk semua instruksi aritmatika
integer di mana bit Rc di-set. Seperti Tabel 11.4
menunjukkan, bidang mengindikasikan hasil operasi berupa
bilangan positif, negatif atau nol. Bit yang keempat
merupakan salinan ringkasan bit dari XER. Bidang
berikutnya (CR1) di-set untuk semua instruksi aritmatika
titik mengambang dimana bit Rc di-set. Dalam hal ini, 4-bit
294
dibuat sama dengan empat bit yang pertama dari FSPCR
(Tabel 11.3). Akhirnya, delapan bidang kondisi (CR0 sampai
CR7) dapat digunakan dengan membandingkan instruksi;
pada setiap kasus, identitas bidang dispesifikasikan pada
instruksi dirinya sendiri. Untuk perbandingan instruksi baik
titik tetap maupun titik mengambang, pertama 3-bit
merancang rekaman bidang kondisi apakah operand pertama
kurang dari, lebih besar dari, atau sama dengan operand
kedua. Bit keempat merupakan bit overflow ringkasan untuk
membadingkan titik tetap dan indikator yang tidak diperintah
untuk membandingkan titik mengambang.
Tabel 11.4 Interpretasi Bit dalam Register Kondisi
Posisi
bit
CR0
(instruksi
integer
dengan
Rc=1)
CR1
(instruksi
titik
mengambang
dengan
Rc=1)
CRi
(titik tetap
perbanding
kan
instruksi)
CRi
(titik
mengambang
perbandingka
n instruksi)
i Hasil < 0 Ringkasan
perkecualian
op1 < op2 op1 < op2
i + 1 Hasil > 0 Ringkasan
perkecualian
enable
op1 > op2 op1 > op2
i + 2 Hasil + 0 Ringkasan op1 = op2 op1 = op2
295
perkecualian
operasi tidak
valid
i + 3 Overflow
ringkasan
Perkecualian
overflow
Overflow
ringkasan
Tidak
diperintah
(satu operand
adalah NaN)
2. Pengolahan Interupsi
Seperti prosesor yang lain, PowerPC meliputi fasilitas yang
memungkinkan prosesor untuk menginterupsi eksekusi
program terakhir untuk berhubungan dengan kondisi
perkecualian.
a. Jenis Interupsi
Interupsi pada PowerPC digolongkan sebagai penyebab
beberapa kondisi sistem atau peristiwa dan yang
disebabkan oleh eksekusi sebuah instruksi. Tabel 5
mendaftar interupsi yang dikenal oleh PowerPC.
Kebanyakan interupsi yang didaftar pada tabel mudah
dipahami. Interupsi reset sistem terjadi pada daya dan
ketika tombol reset pada unit sistem ditekan, dan hal itu
menyebabkan sistem melakukan booting ulang. Interupsi
cek mesin berhadapan dengan keganjilan tertentu, seperti
kesalahan paritas cache dan acuan ke lokasi memori non-
eksisten, dan dapat menyebabkan sistem untuk masuk
apa yang dikenal sebagai status checkstop; status ini
296
menghentikan eksekusi prosesor dan membekukan isi
register sampai booting ulang. Titik mengambang
membantu memungkinkan prosesor untuk memelihara
rutin perangkat lunak untuk menyelesaikan oprasi yang
tidak bisa ditangani secara langsung oleh unit titik
mengambang, seperti menyertakan bilangan-bilangan
didenormalisasi atau opcode titik mengambang yang
tidak bisa diteapkan.
Tabel 11.5 Tabel Interupsi PowerPC
Poin
Masukan
Jenis Interupsi Penjelasan
00000h Dipesan
00100h Reset sistem Pernytaan prosesor mereset
keras atau lunak suatu sinyal
input oleh logika eksternal
00200h Cek mesin Pernytaan TEA# ke prosesor
ketika pernytaan itu enable
untuk mengenali cek mesin
00300h Penyimpanan
data
Contoh : kesalahan halaman
data; mengakses pelanggaran
yang benar pada load/store
00400h Penyimpanan
instruksi
Kesalahan halaman kode;
intsruksi yang dicoba diambil
dari segmen I/O; akses
297
pelanggaran yang benar
00500h Eksternal Pernyataan interupsi sinyal
input eksternal prosesor oleh
logika eksternal ketika
pengenalan interupsi eksternal
enabled
00600h Perataan Usaha gagal untuk akses
memori berkaitan dengan
operand yang tidak dapat
diratakan
00700h Program Interupsi titik mengambang;
pengguna mencoba
mengeksekusi instruksi yang
dikhususkan; instruksi jebakan
dieksekusi dengan kondisi yang
dispesifikasikan; instruksi
illegal
00800h Tidak
mengambang
yang tidak
tersedia
Berusaha mengeksekusi
instruksi titik mengambang
dengan unit titik mengambang
disabled
00900h Pengurang Kejenuhan register pengurang
ketika pengulangan interupsi
eksternal enabled
00A00h Dipesan
298
00B00h Dipesan
00C00h Panggilan
sistem
Eksekusi instruksi panggilan
system
00D00h Jejak Dipesan melacak interupsi satu
langkah atau percabangan
00E00h Bantuan titik
mengambang
Berusaha mengeksekusi
operasi titik mengambang yang
kompleks secara relatif jatrang
(misalnya : operasi pada
bilangan yang
dinormalisasikan)
00E10h-
00FFFh
Dipesan
01000h-
02FFFh
Dipesan
(tergantung
implementasi
tertentu)
Tidak berbayangan : interupsi disebabkan oleh eksekusi instruksi
Berbayangan : interupsi tidak disebabkan oleh eksekusi instruksi
b. Register Status Mesin
Hal yang pokok untuk interupsi suatu program adalah
kemampuan untuk memulihkan status prosesor pada
waktu interupsi. Hal ini meliputi tidak hanya berbagai
register tetapi juga berbagai kondisi-kondisi kontrol yang
berhubungan dengan eksekusi. Kondisi-kondisi ini
299
terkandung dalam MSR (Tabel 11.6). Ketika bit mode
khusus (bit 49) di-set, prosesor beroperasi pada tingkatan
khusus pengguna. Hanya subset instruksi yang di-set
tersedia. Ketika bit dikosongkan, prosesor beroperasi
pada tingkatan khusus supervisor. Hal ini
memungkinkan semua instruksi dan memberikan akses
ke register sistem tertentu (seperti MSR) tidak dapat
diakses dari tingkatan khusus pengguna.
Nilai-nilai dua bit perkecualian titik mengambang (bit 52
dan 55) mendefinisikan jenis interupsi bahwa unit titik
mengambang dapat mengahasilkan. Interpretasinya
adalah sebagai berikut:
FE0 FE1 Interupsi yang akan dikenali
0 0 Tidak ada
0 1 Tidak dapat dipulihkan tidak tepat
1 0 Dapat dipulihkan tidak tepat
1 1 Tepat
Tabel 11.6 Register Status Mesin PowerPC
Bit Definisi
0 Prosesor berada dalam mode 32 bit/64 bit
1:44 Dipesan
45 Enabled/disabled manajemen daya
46 Implementasi independent
47 Mendefinisikan apakah penangan berjalan dalam mode
300
big-endian atau little-endian
48 Enabled/disabled interupsi eksternal
49 Keadaan dikhususkan/tidak dikhususkan
50 Ketersidiaan/ketidaktersediaan unit titik mengambang
51 Enabled/disabled interupsi cek mesin
52 Perkecualian titik mengambang mode 0
53 Enabled/disabled jejak satu langkah
54 Enabled/disabled jejak percabangan
55 Perkecualian titik mengambang mode 1
56 Dipesan
57 Bagian paling signifikan alamat perkecualian adalah
000h/FFFh
58 On/off penerjemahan alamat instruksi
59 On/off penerjemahan alamat data
60:61 Dipesan
62 Interupsi dapat diperbaiki/tidak dapat diperbaiki
63 Prosesor berada dalam mode big-idean/little-idean
Berbayangan : tersalin ke SRRI
Tidak berbayangan : tidak tersalin ke SRRI
Ketika bit pelacak langkah tunggal (bit 53) di-set,
percabangan prosesor ke jejak penangan interupsi
setelah penyelesaian yang berhasil dari setiap instruksi.
Ketika percabangan melacak bit (bit 54) di-set,
percabangan prosesor ke percabangan melacak
301
penangan interupsi setelah penyelesaian yang berhasil
dari setiap instruksi percabangan, ya atau tidak
percabangan telah diambil. Penerjemah alamat
instruksi (bit 58) dan penerjemahan alamat data (bit
59) menentukan pengalamatan riil digunakan atau unit
manajemen memori melakukan penerjemah alamat.
c. Penanganan Interupsi
Ketika sebuah interupsi terjadi dan dikenali oleh
prosesor, urutan kejadian berikut mengambil alih:
1) Prosesor menempatkan alamat instruksi dieksekusi
berikutnya dalam register save/restore 0 (save/restore
register 0-SRR0), yaitu alamat instruksi eksekusi
terakhir, jika interupsi disebabkan oleh kegagalan
usaha untuk mengeksekusi instruksi tersebut; selain
itu, adalah alamat instruksi berikutnya dieksekusi
setelah instruksi terakhir
2) Prosesor menyalin informasi status mesin dari MSR ke
register save/restore 1 (save/restore register 1-SRR1).
Bit yang digambarkan sebagai tidak berbayangan
dalam Tabel 11.6 disalin. Bit SRR1 sisanya terisi
dengan informasi jenis interupsi spesifik.
3) MSR di-set nilai spesifik terdefinisikan hardware
sebagai jenis interupsi. Untuk semua jenis interupsi,
penerjemahan alamat dipadamkan dan interupsi
eksternal tersebut.
302
4) Prosesor kemudian mengontrol transfer ke penangan
interupsi yang sesuai. Alamat penangan interupsi
disimpan dalam tabel interupsi. Alamat dasar tabel itu
ditentukan oleh bit 57 dari MSR.
Untuk kembali dari interupsi, interupsi melayani
eksekusi instruksi RFI (return from interrupt). Hal ini
menyebabkan nilai-nilai bit tersimpan dalam SRR1
untuk dikembalikan ke MSR. Eksekusi dilakukan pada
lokasi yang tersimpan dalam SRR0.
303
BAB 12
COMPLEX INSTRUCTION SET COMPUTER
(CISC)
12.1 Pendahuluan
Dunia maju, memberi dan menciptakan gaya hidup baru
bagi manusia yang disebut juga manusia modern yaitu kebutuhan
akan ketrepatan, kecepatan dan informasi yang luar biasa
banyaknya dan dengan waktu yang cepat. Tak pelak berbagai
teknologi canggihpun menghadirkan kemampuan untuk
mendukung kebutuhan manusia akan informasi tersebut dengan
berbagai fasilitasnya, mulai yang dari menawarkan murahnya
biaya pemakaian hingga kemampuan dapat diakses dimanapun.
Akibatnya, badai teknologi inipun juga menuntut para produsen
untuk lebih berlomba-lomba dengan bentukan produsen lain,
apalagi kalau bukan untuk merebut pasar, demikian ditinjau dari
segi ekonomi kemasyarakatan, namun jauh dari sisi itu yaitu dari
sisi teknologi sendiri memungkinkan berkembangnya piranti
pendukung teknologi yang juga arusnya disadari atau tidak
semakin cepat pula. Tak terkecuali komputer yang disinyalir
304
sebagai piranti paling penting, kompeten dan strategis dalam
kemajuan dunia teknologi informasi seperti era sekarang ini.
Mengingat posisi komputer berada di titik sentral, maka mutlak
diperlukan pengetahuan lebih tentang komputer, bukan hanya
untuk sekedar mengetik atau malah main game, justru
seharusnya komputer adalah teman belajar dan tidak sedikit pula
orang yang menggunakan komputernya sebagai mesin uang.
Namun sayangnya masih banyak pula orang yang belum tertarik
mendalami komputer dengan alasan sulit dan sebagainya. Dalam
bab kami menjelaskan tentang ilmu komputer dari segi arsitektur
khususnya tentang CISC (Complex Instruction Set Computer).
12.2 Pengertian Complex Instruction Set Computer
(CISC)
Complex instruction-set computing atau Complex
Instruction-Set Computer (CISC; "kumpulan instruksi
komputasi kompleks") adalah:
Karakteristik CISC dapat dikatakan bertolak belakang
dengan RISC. Sebelum proses RISC didesain untuk
pertama kalinya, banyak arsitek komputer mencoba
menjembatani celah semantik", yaitu bagaimana cara untuk
Sebuah arsitektur dari set instruksi dimana setiap instruksi
akan menjalankan beberapa operasi tingkat rendah, seperti
pengambilan dari memory, operasi aritmatika, dan
penyimpanan ke dalam memori, semuanya sekaligus hanya di
dalam sebuah instruksi.
305
membuat set-set instruksi untuk mempermudah
pemrograman level tinggi dengan menyediakan instruksi
"level tinggi" seperti pemanggilan procedure, proses
pengulangan dan mode-mode pengalamatan kompleks
sehingga struktur data dan akses array dapat
dikombinasikan dengan sebuah instruksi. Karakteristik
CISC yang "sarat informasi" ini memberikan keuntungan
di mana ukuran program-program yang dihasilkan akan
menjadi relatif lebih kecil dan penggunaan memori 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.Satu alasan mengenai hal ini adalah karena
set-set instruksi level-tinggi, yang sering disandikan (untuk
kode-kode yang kompleks), akan menjadi cukup sulit
untuk diterjemahkan kembali dan dijalankan secara efektif
306
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 (Pusat Penelitian Watson IBM 801
- IBMs). Contoh prosesor CISC adalah System/360, VAX,
PDP-11, varian Motorola 68000, dan CPU AMD dan Intel
x86. Istilah RISC dan CISC saat ini kurang dikenal, setelah
melihat perkembangan lebih lanjut dari desain dan
implementasi baik CISC dan CISC. Implementasi CISC
paralel untuk pertama kalinya, seperti 486 dari Intel, AMD,
Cyrix, dan IBM telah mendukung setiap instruksi yang
digunakan oleh prosesor-prosesor sebelumnya, meskipun
efisiensi tertingginya hanya saat digunakan pada subset
x86 yang sederhana (mirip dengan set instruksi RISC,
tetapi tanpa batasan penyimpanan/pengambilan data dari
RISC). Prosesor-prosesor modern x86 juga telah
menyandikan dan membagi lebih banyak lagi instruksi-
instruksi kompleks menjadi beberapa "operasi-mikro"
internal yang lebih kecil sehingga dapat instruksi-instruksi
tersebut dapat dilakukan secara paralel, sehingga mencapai
performansi tinggi pada subset instruksi yang lebih besar.
307
12.3 Karakteristik CISC
Prosesor di komputer mikro pada umumnya menggunakan
teknik CISC (Complex Instruction Set Computer). Dengan
rancangan ini, instruksi-instruksi perhitungan yang kompleks
akan dilakukan oleh prosesor, karena prosesor tersebut
mempunyai sirkuit yang rumit diperlukan untuk itu. Akan tetapi
untuk aplikasi yang tidak membutuhkan perhitungan rumit,
seperti misalnya aplikasi multimedia yang melibatkan banyak
grafik dan suara. Untuk aplikasi yang sederhana sirkuit CISC
tidak dimanfaatkan sepenuhnya. Rancangan RISC (Reduce
Instruction Set Computer) menggunakan sirkuit untuk
perhitungan yang sederhana saja, sedang perhitungan yang
komplek tidak dilakukan oleh prosesornya tetapi dilakukan oleh
perangkat lunaknya. Dulunya para ahli berfikir bahwa dengan
menambahkan sirkuit untuk perhitungan komplek di prosesor,
waktu pemrosesan akan lebih cepat. Kenyataan untuk aplikasi
multimedia yang tidak banyak melibatkan perhitungan rumit.
RISC lebih cepat dibandingkan CISC. Di samping itu, karena
hanya melibatkan sirkuit untuk perhitungan yang sederhana,
biaya pembuatan prosesor RISC lebih murah dibandingkan
dengan biaya untuk CISC. Processor PowerPC menggunakan
rancangan RISC. PowerPC lainnya yang terkenal menggunakan
RISC adalah DEC (Digital Equipment Coporation) Alpha.
Pada arsitektur CISC seperti Intel x86, yang diperkenalkan
pada tahun 1978, bisa terdapat ratusan instruksi program -
perintah-perintah sederhana yang menyuruh sistem menambah
308
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, sehingga hal tersebut akan
mengurangi kecepatannya. Arsitektur berbasis CISC juga
memungkinkan para perancang prosesor untuk menambahkan set
instruksi tambahan untuk keperluan tertentu di samping set
instruksi standar yang sudah ada, misalnya set instruksi MMX
(Multimedia Extension) yang ditambahkan pada prosesor buatan
Intel, dan 3Dnow! pada prosesor keluaran AMD. 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. Di antara
kelebihan dan kekurangan dari arsitektur RISC dan arsitektur
CISC sampai sekarang masih menjadi sebuah perdebatan. 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. Lucunya, instruksi set yang
didukung oleh kedua prosesor tersebut menggunakan instruksi
RISC yang lebih efisien dalam menangani data.
309
12.4 Filosofi Arsitektur CISC
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 aplikasi-aplikasi
tertentu yang membutuhkan singlechip komputer, prosesor CISC
bisa menjadi pilihan. Pada arsitektur CISC seperti Intel x86, yang
diperkenalkan pada tahun 1978, bisa terdapat ratusan instruksi
program perintah-perintah sederhana yang menyuruh 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, sehingga hal tersebut akan
mengurangi kecepatannya.
12.5 Keunggulan CISC
CISC dimaksudkan untuk meminimumkan jumlah perintah
yang diperlukan untuk mengerjakan pekerjaan yang diberikan
310
(jumlah perintah sedikit tetapi rumit). Konsep CISC menjadikan
mesin mudah untuk diprogram dalam bahasa rakitan. Dengan
intruksi yang komplek prosesor CISC merupakan pendekatan
dominan karena menghematmemoridibandingkan RISC.
Instruksi kompleks seperti CISC mempermudah dalam
pembuatan program. Set instruksi yang lengkap diharapkan akan
semakin membuat pengguna mikroprosesor leluasa menulis
program dalam bahasa assembler yang mendekati bahasa
pemrograman level tinggi. Konsep ini menyulitkan dalam
penyusunan compiler bahasa pemrograman tingkat tinggi. Dalam
CISC banyak terdapat perintah bahasa mesin.
12.6 Perbedaaan CISC dengan RISC
RISC adalah singkatan dari Reduced Instruction Set
Computer yang artinya prosesor tersebut memiliki set instruksi
program yang lebih sedikit. Karena perbedaan keduanya ada
pada kata set instruksi yang kompleks atau sederhana (reduced).
RISC lahir pada pertengahan 1980, kelahirannya ini
dilatarbelakangi untuk CISC. Perbedaan mencolok dari kelahiran
RISC ini adalah tidak ditemui pada dirinya instruksi assembly
atau yang dikenal dengan bahasa mesin sedangkan itu banyak
sekali dijumpai 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
311
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. IBM 801 adalah
prosesor komersial pertama yang menggunakan pendekatan
RISC. Lebih lanjut untuk memahami RISC, diawali dengan
tinjauan singkat tentang karakteristik eksekusi instruksi.
Aspek komputasi yang ditinjau dalam merancang mesin
RISC adalah sebagai berikut:
1. Operasi-operasi yang dilakukan:
Hal ini menentukan fungsi-fungsi yang akan dilakukan
oleh CPU dan interaksinya dengan memori.
2. Operand-operand yang digunakan:
Jenis-jenis operand dan frekuensi pemakaiannya akan
menentukan organisasi memoriuntuk menyimpannya dan
mode pengalamatan untuk mengaksesnya.
3. Pengurutan eksekusi:
Hal ini akan menentukan kontrol dan organisasi pipeline.
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. 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
312
membuat instruksi-instruksi yang kompleks. Untuk aplikasi-
aplikasi tertentu yang membutuhkan singlechip komputer,
prosesor CISC bisa menjadi pilihan.
Gambar 12.1 Blok Diagram Perbedaan CISC dan RISC
Dilihat dari kelebihan dan kekurangan yang dimiliki oleh
masing-masing prosesor baik RISC maupun CISC dapat
disimpulkan bahwa kedua prosesor memiliki keunggulan yang
sama dalam artian disatu sisi CISC lebih baik daripada RISC
tetapi disisi yang lain RISC dapat menutupi kelemahan dari
CISC. Prosesor berarsitektur RISC misalnya, memerlukan lebih
banyak instruksi untuk menjalankan suatu tugas (task) tertentu
dibandingkan dengan prosesor berasitektur CISC. Dengan
ukuran MIPS, prosesor RISC akan tampak bekerja jauh lebih
313
cepat (menjalankan lebih banyak instruksi per satuan waktu)
dibanding prosesor CISC meskipun lama waktu yang digunakan
untuk menyelesaikan satu tugas bisa jadi sama.
12.7 Eksekusi Instruksi
Waktu eksekusi dapat dirumuskan sebagai berikut:
Waktu eksekusi
N x S x T (12-1)
Di mana:
N = jumlah perintah
S = jumlah rata-rata langkah per perintah
T = waktu yang diperlukan untuk melaksanakan satu langkah
Kecepatan eksekusi dapat ditingkatkan dengan
menurunkan nilai dari ketiga variabel 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.
Reduce Instruction Set Computer (RISC)
Beberapa elemen penting pada arsitektur RISC:
Set instruksi yang terbatas dan sederhana
314
Register general-purpose yang berjumlah banyak atau
penggunaan teknologi compiler untuk mengoptimalkan
pemakaian registernya.
Penekanan pada pengoptimalan pipeline instruksi.
Lebih lanjut untuk memahami RISC, diawali dengan
tinjauan singkat tentang karakteristik eksekusi instruksi. Aspek
komputasi yang ditinjau dalam merancang mesin RISC adalah
sebagai berikut:
Operasi-operasi yang dilakukan:
Hal ini menentukan fungsi-fungsi yang akan dilakukan
oleh CPU dan interaksinya dengan memori.
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
Implikasi
Hasil-hasil penelitian secara umum dapat dinyatakan
bahwa terdapat tiga buah elemen yang menentukan
karakter arsitektur RISC.
Pertama, penggunaan register dalam jumlah yang besar.
Hal ini dimaksudkanuntuk mengoptimalkan pereferensian
operand.
315
Kedua, diperlukan perhatian bagi perancangan pipeline
instruksi. Karena tingginya proporsi instruksi pencabangan
bersyarat dan prosedur call, pipeline instruksi yang bersifat
langsung dan ringkas akan menjadi tidak efisien.
Ketiga, terdapat set instruksi yang disederhanakan
(dikurangi). Keinginan untuk mengimplementasikan
keseluruhan CPU dalam keeping tunggal akan merupakan
solusi Reduced Instruction Set.
316
BAB 13
REDUCED INSTRUCTION SET COMPUTER
(RISC)
13.1 Pendahuluan
Perkembangan inovasi komputer sejak 1960 menambah
satu daftar penemuan yang sangat menarik dan paling penting,
yaitu Arsitektur Reduced Instruction Set computers (RISC).
Walaupun sistem RISC telah ditentukan dan dirancang dengan
berbagai cara berdasarkan komunitasnya, elemen penting yang
digunakan sebagian rancangan umumnya adalah sebagai berikut:
1. Set instruksi yang terbatas dan sederhana
2. Register general purpose berjumlah banyak atau
penggunaaan teknologi compiler untuk mengoptimalklan
penggunaan register.
3. Penekanan pada pengoptimalan pipeline instruksi.
13.2 Karakteristik Eksekusi Instruksi
Salah satu evolusi komputer yang besar adalah evolusi
bahasa pemrograman. Bahasa pemrograman memungkinkan
317
programmer dapat mengekspresikan algoritma lebih singkat,
lebih memperhatikan rincian dan mendukung penggunaan
pemprograman terstruktur, tetapi ternyata muncul masalah lain
yaitu semantic gap, yaitu perbedaan antara operasi-operasi yang
disediakan oleh HLL dengan yang disediakan oleh arsitektur
komputer, ini ditandai dengan ketidakefisienan eksekusi,
program mesin yang berukuran besar dan kompleksitas compiler.
Untuk mengurangi kesenjangan ini para perancang menjawabnya
dengan arsitektur. Fitur-fiturnya meliputi set instruksi yang
banyak, lusinan mode pengalamatan dan statement HLL yang
diimplementasikan pada perangkat keras. Set instruksi yang
kompleks tersebut dimaksudkan untuk:
1. Memudahkan pekerjaan compiler
2. Meningkatkan efisiensi eksekusi, karena operasi yang
kompleks dapat diimplementasikan di dalam mikrokode.
3. Memberikan dukungan bagi HLL yang lebih kompleks
dan canggih.
Oleh karena itu untuk memahami RISC perlu memperhatikan
karakteristik eksekusi instruksi. Adapun aspek-aspek
komputasinya adalah:
Operasi-operasi yang dilakukan,
Operand-operand yang digunakan,
Pengurutan eksekusi.
1. Operasi
Beberapa penelitian telah menganalisis tingkah laku program
HLL (High Level Language). Assignment Statement sangat
318
menonjol yang menyatakan bahwa perpindahan sederhana
merupakan satu hal yang penting. Hasil penelitian ini
merupakan hal yang penting bagi perancang set instruksi
mesin yang mengindikasikan jenis instruksi mana yang
sering terjadi karena harus didukung optimal.
2. Operand
Penelitian Paterson telah memperhatikan frekuensi dinamik
terjadinya kelas-kelas variabel. Hasil yang konsisten di
antara program Pascal dan C menunjukkan mayoritas
referensi menunjuk ke variabel skalar. Penelitian ini telah
menguji tingkah laku dinamik program HLL yang tidak
tergantung pada arsitektur tertentu. Penelitian Lund menguji
instruksi DEC-10 dan secara dinamik menemukan setiap
instruksi rata-rata mereferensi 0,5 operand dalam memori
dan rata-rata mereferensi 1,4 register. Tentu saja angka ini
tergantung pada arsitektur dan compiler namun sudah cukup
menjelaskan frekuensi pengaksesan operand sehingga
menyatakan pentingnya sebuah arsitektur.
3. Procedure Call
Dalam HLL procedure call dan return merupakan aspek
penting karena merupakan operasi yang membutuhkan
banyak waktu dalam program yang dikompilasi sehingga
banyak berguna untuk memperhatikan cara implementasi
operasi ini secara efisien. Adapun aspeknya yang penting
adalah jumlah parameter dan variabel yang berkaitan dengan
prosedur dan kedalaman pensarangan (nesting).
319
4. Implikasi
Secara umum penelitian menyatakan terdapat tiga buah
elemen yang menentukan karakter arsitektur RISC:
1. Penggunaan register dalam jumlah besar yang ditunjukan
untuk mengotimalkan pereferensian operand.
2. Diperlukan perhatian bagi perancangan pipelaine
instruksi karena tingginya proporsi instruksi
pencabangan bersyarat dan procedure call, pipeline
instruksi yang bersifat langsung dan ringkas menjadi
tidak efisien
3. Terdapat set instruksi yang disederhanakan
13.3 Pengertian RISC
RISC yang jika diterjemahkan berarti "komputasi
kumpulan instruksi yang disederhanakan" merupakan
sebuah arsitektur komputer atau arsitektur komputasi modern
dengan instruksi-instruksi dan jenis eksekusi yang paling
sederhana. Arsitektur ini digunakan pada komputer dengan
kinerja tinggi, seperti komputer vektor. Selain digunakan dalam
komputer vektor, desain ini juga diimplementasikan pada
prosesor komputer lain, seperti pada beberapa
mikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation,
Alpha AXP dari DEC, R4x00 dari MIPS Corporation.
320
13.4 Sejarah RISC
Reduced Instruction Set Computing (RISC) atau
"Komputasi set instruksi yang disederhanakan" 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. Hal ini didasari oleh Karena
banyaknya program yang menghabiskan sebagian besar waktu
mereka menjalankan operasi yang sederhana, beberapa peneliti
memutuskan untuk fokus pada pembuatan operasi tersebut
secepat mungkin. Clock rate dari CPU dibatasi oleh waktu yang
dibutuhkan untuk mengeksekusi sub paling lambat operasi
instruksi apapun, penurunan siklus waktu yang sering
mempercepat pelaksanaan instruksi lain. Terfokus pada "reduced
instructions" menyebabkan menghasilkan mesin yang disebut
"reduced instruction set computer" (RISC). Tujuannya adalah
untuk membuat instruksi begitu sederhana sehingga
mereka dengan mudah bisa melakuakn eksekusi program dari
banyak instruksi dalam satu sirkuit, yang dicapai dalam satu
waktu pada frekuensi tinggi. Komputer pertama yang
menggunakan konsep RISC ini adalah IBM PC/XT pada era
1980-an. Istilah RISC sendiri pertama kali dipopulerkan oleh
David Patterson, pengajar pada University of California di
Berkeley.
321
13.5 Eksekusi Instruksi
Waktu eksekusi dapat dirumuskan sbb.:
Waktu eksekusi = N x S x T
Di mana:
N = jumlah perintah
S = jumlah rata-rata langkah per perintah
T = waktu yang diperlukan untuk melaksanakan satu langkah
Kecepatan eksekusi dapat ditingkatkan dengan
menurunkan nilai dari ketiga variabel tersebut. 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.
Ciri-Ciri RISC
1. Instruksi berukuran tunggal
2. Ukuran yang umum adalah 4 byte
3. Jumlah pengalamatan data sedikit, biasanya kurang dari 5
buah.
4. Tidak terdapat pengalamatan tak langsung yang
mengharuskan melakukan sebuah akses memori agar
memperoleh alamat operand lainnya dalam memori
322
5. Tidak terdapat operasi yang menggabungkan operasi
load/store dengan operasi aritmatika, seperti penambahan ke
memori dan penambahan dari memori.
6. Tidak terdapat lebih dari satu operand beralamat memori per
instruksi
7. Tidak mendukung perataan sembarang bagi data untuk
operasi load/store
8. Jumlah maksimum pemakaian memori manajemen bagi
suatu alamat data adalah sebuah instruksi .
9. Jumlah bit bagi integer register spesifier sama dengan 5 atau
lebih, artinya sedikitnya 32 buah register integer dapat
direferensikan sekaligus secara eksplisit.
10. Jumlah bit floating point register specifier sama dengan 4
atau lebih, artinya sedikitnya 16 register floating point dapat
direferensikan sekaligus secara eksplisit.
Beberapa prosesor implementasi dari arsiteketur RISC adalah
AMD 29000, MIPS R2000, SPARC, MC 88000, HP PA, IBM
RT/TC, IBM RS/6000, intel i860, Motorola 88000 (keluarga
Motorola), PowerPC G5. Untuk setiap tingkat kinerja umum,
chip RISC biasanya akan memiliki lebih
sedikit transistor didedikasikan untuk logika inti yang awalnya
memungkinkan para desainer untuk meningkatkan ukuran set
register dan meningkatkan paralelisme internal. Terdapat
beberapa karakteristik umum bagi semua arsitektur-
arsitekturnya:
323
1. Satu instruksi per siklus
Suatu siklus mesin dinyatakan oleh waktu yang dibutuhkan
untuk mengambil dua operand dari register,melaksanakan
suatu ALU operasi, dan menyimpan hasilnya pada register.
Dengan demikian, instruksi mesin RISC harus tidak boleh
lebih rumit dan melaksanakan eksekusi instruksi secepat,
instruksi pada mesin CISC. Dengan menggunakan definisi
sederhana atau instruksi satu siklus, tidak dibutuhkan kode
mikro yang lebih; instruksi mesin dapat di hardware.
Instruksi-instruksi seperti itu akan dieksekusikan lebih cepat
dari instruksi mesin yang lain pada mesin yang lain, sebab
tidaklah perlu untuk mengakses suatu penyimpanan kontrol
mikroprogram selama eksekusi instruksi berjalan. Dimana
format instruksi, menggunakan kata tunggal dengan opcode
pada posisi bit yang sama di setiap instruksi, menuntut
decoding kurang.
2. Operasi register ke register
Kebanyakan operasi harus dalam bentuk register ke register,
dengan hanya operasi akses memori LOAD dan STORE
yang sederhana. Rancangan ini menyerahkan set instruksi
dan sekalian menyederhanakan unit kontrol, sebagai contoh,
sebuah set instruksi RISC bisa mengandung satu atau dua
instruksi ADD (misalnya, penambahan bilangan bulat,
penambahan dengan pembawa); VAX mempunyai 25
instruksi ADD berbeda. Keuntungan yang lain adalah bahwa
arsitektur seperti itu meningkatkan optimisasi penggunaan
324
register, sehingga operand-operand yang sering diakses akan
tetap berada dalam penyimpanan berkecepatan tinggi.
Arsitektur hipotesis sudah dievaluasi dalam ukuran program
dan banyaknya bit lalu lintas memori hingga satu mesin
produk RISC yang diproduksi oleh pyramid berisi tidak
kurang dari 528 register, sehingga memungkinkan
mendaftarkan untuk digunakan dalam konteks apapun,
menyederhanakan desain compiler (walaupun biasanya ada
terpisah floating point register);
3. Mode pengalamatan sederhana.
Hampir semua instruksi RISC menggunakan pengalamatan
register sederhana. Beberapa mode tambahan, seperti
penggantian dan PC-Relative juga. Mode yang lebih rumit
bias dimasukkan kedalam software dari yang sederhana.
Rancangan ini menyederhanakan set instruksi dan unit
kontrol.
4. Bentuk instruksi sederhana.
Penggunaan bentuk instruksi sederhana secara umum, hanya
satu atau sedikit sekali bantuk yang digunakan. Panjang
instruksi tetap dan diratakan dengan batasan word. Lokasi
bidang, terutama opcode, ditetapkan. Keuntungannya,
dengan bidang tetap decode opcode dan akses register
operand bias terjadi secara simultan. Bentuk sederhananya ,
penyederhanakan unit kontrol. Instruksi pengambilan
dioptimalkan sebab panjang word telah diambil. Perataan
325
pada batasan word juga berarti instruksi tunggal tidak akan
melebihi batas halaman.
13.6 Beberapa Elemen Penting pada Arsitektur RISC
1. Set instruksi yang terbatas dan sederhana
2. Register general-purpose yang berjumlah banyak atau
penggunaan teknologi compiler untuk mengoptimalkan
pemakaian registernya.
3. Penekanan pada pengoptimalan pipeline instruksi.
CISC dimaksudkan untuk meminimumkan jumlah
perintah yang diperlukan untuk mengerjakan pekerjaan yang
diberikan (jumlah perintah sedikit tetapi rumit). Konsep CISC
menjadikan mesin mudah untuk diprogram dalam bahasa rakitan,
tetapi konsep ini menyulitkan dalam penyusunan kompiler
bahasa pemrograman tingkat tinggi. Dalam CISC banyak
terdapat perintah bahasa mesin. RISC menyederhanakan
rumusan perintah sehingga lebih efisien dalam penyusunan
compiler yang pada akhirnya dapat memaksimumkan kinerja
program yang ditulis dalam bahasa tingkat tinggi. 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
326
memerlukan memori yang lebih besar untuk mengakomodasi
program yang lebih besar. IBM 801 adalah prosesor komersial
pertama yang menggunakan pendekatan RISC.
Gambar 13.1 Arsitektur Mikroprosesor
Sebenarnya, prosesor RISC tidak sekedar memiliki
instruksi-instruksi yang sedikit dan sederhana seperti namanya
tetapi juga mencakup banyak ciri-ciri lain yang tidak semuanya
disepakati oleh kalangan perancang sendiri. Meskipun demikian,
banyak yang telah bersepakat bahwa prosesor memiliki ciri-ciri
tertentu untuk membedakannya dengan prosesor bukan RISC.
Pertama, prosesor RISC mengeksekusi instruksi pada setiap satu
siklus detak. Hasil penelitihan IBM (International Business
327
Machine) menunjukkan bahwa frekuensi penggunaan instruksi-
instruksi kompleks hasil kompilasi sangat kecil dibanding
dengan instruksi-instruksi sederhana. Dengan perancangan yang
baik instruksi sederhana dapat dibuat agar bisa dieksekusi dalam
satu siklus detak. Ini tidak berarti bahwa dengan sendirinya
prosesor RISC mengeksekusi program secara lebih cepat
dibanding prosesor CISC. Analogi sederhananya adalah bahwa
kecepatan putar motor (putaran per menit) yang makin tinggi
pada kendaraan tidaklah berarti bahwa jarak yang ditempuh
kendaraan (meter per menit) tersebut menjadi lebih jauh, karena
jarak tempuh masih bergantung pada perbandingan roda gigi
yang dipakai. Kedua, instruksi pada prosesor RISC memiliki
format-tetap, sehingga rangkaian pengontrol instruksi menjadi
lebih sederhana dan ini berarti menghemat penggunaan luasan
keping semikonduktor. Bila prosesor CISC (misalnya Motorola
68000 atau Zilog Z8000) memanfaatkan 50% - 60% dari luas
keping semikonduktor untuk rangkaian pengontrolnya, prosesor
RISC hanya memerlukan 6%-10%. Eksekusi instruksi menjadi
lebih cepat karena rangkaian menjadi lebih sederhana. Ketiga,
instruksi yang berhubungan dengan memori hanya instruksi isi
(load) dan instruksi simpan (store) , instruksi lain dilakukan
dalam register internal prosesor. Cara ini menyederhanakan
mode pengalamatan (addressing) dan memudahkan pengulangan
kembali instruksi untuk kondisi-kondisi khusus yang
dikehendaki. Dengan ini pula perancang lebih menitikberatkan
implementasi lebih banyak register dalam chip prosesor. Dalam
328
prosesor RISC, 100 buah register atau lebih adalah hal yang
biasa. Manipulasi data yang terjadi pada register yang umumnya
lebih cepat daripada dalam memori menyebabkan prosesor RISC
berpotensi beroperasi lebih cepat. Keempat, prosesor RISC
memerlukan waktu kompilasi yang lebih lama daripada prosesor
RISC. Karena sedikitnya pilihan instruksi dan mode
pengalamatan yang dimiliki prosesor RISC, maka diperlukan
optimalisasi perancangan kompilator agar mampu menyusun
urutan instruksi-instruksi sederhana secara efisien dan sesuai
dengan bahasa pemrograman yang dipilih. Keterkaitan desain
prosesor RISC dengan bahasa pemrograman memungkinkan
dirancangnya kompilator yang dioptimasi untuk bahasa target
tersebut.
13.7 Keunggulan dan Kelemahan RISC
Teknologi RISC relatif masih baru oleh karena itu tidak
ada perdebatan dalam menggunakan RISC ataupun CISC, karena
tekhnologi terus berkembang dan arsitektur berada dalam sebuah
spektrum, bukannya berada dalam dua kategori yang jelas maka
penilaian yang tegas akan sangat kecil kemungkinan untuk
terjadi.
Keunggulan
1. Berkaitan dengan penyederhanaan compiler, dimana tugas
pembuat compiler untuk menghasilkan rangkaian instruksi
mesin bagi semua pernyataan HLL. Instruksi mesin yang
329
kompleks seringkali sulit digunakan karena kompiler harus
menemukan kasus-kasus yang sesuai dengan konsepnya.
Pekerjaan mengoptimalkan kode yang dihasilkan untuk
meminimalkan ukuran kode, mengurangi hitungan eksekusi
instruksi dan meningkatkan pipelining jauh lebih mudah
apabila menggunakan RISC dibanding menggunakan CISC.
2. Arsitektur RISC yang mendasari PowerPC memiliki
kecenderungan lebih menekankan pada referensi register
dibanding referensi memori, dan referensi register
memerlukan bit yang lebih sedikit sehingga memiliki akses
eksekusi instruksi lebih cepat.
3. Kecenderungan operasi register ke register akan lebih
menyederhanakan set instruksi dan menyederhanakan unit
kontrol serta pengoptimasian register akan menyebabkan
operand-operand yang sering diakses akan tetap berada di
penyimpan berkecepatan tinggi.
4. Penggunaan mode pengalamatan dan format instruksi yang
lebih sederhana.
Kelemahan
1. Program yang dihasilkan dalam bahasa simbolik akan lebih
panjang (instruksinya lebih banyak).
2. Program berukuran lebih besar sehingga membutuhkan
memori yang lebih banyak, ini tentunya kurang menghemat
sumber daya.
330
3. Program yang berukuran lebih besar akan menyebabkan
menurunnya kinerja, yaitu instruksi yang lebih banyak artinya
akan lebih banyak byte-byte instruksi yang harus diambil.
4. Pada lingkungan paging akan menyebabkan kemungkinan
terjadinya page fault lebih besar.
331
BAB 14
PROSESOR SUPERSKALAR
14.1 Sejarah
Seymour Cray's CDC 6600 dari 1965 sering disebut
sebagai pertama desain superskalar. Intel i960CA (1988) dan seri
AMD 29000-29050 mikro (1990) yang komersial pertama chip
tunggal superskalar mikro. CPU RISC seperti ini membawa
konsep superskalar untuk mikro komputer RISC karena hasil
desain yang sederhana inti, agar mudah instruksi dispatch dan
keterlibatan beberapa unit fungsional (seperti ALU) pada satu
CPU dalam rancangan peraturan. Ini adalah alasan yang RISC
desain yang lebih cepat dari CISC desain melalui ke dalam tahun
1980-an dan 1990-an.
Kecuali untuk digunakan dalam beberapa CPU-daya
baterai perangkat, pada dasarnya semua tujuan-CPU umum
dikembangkan sejak 1998 adalah superskalar. Diawali dengan
"P6" (Pentium Pro dan Pentium II) pelaksanaan, Intel x86
arsitektur mikro yang telah menerapkan CISC pada set instruksi
RISC superskalar mikro. Kompleks petunjuk yang diterjemahkan
secara internal ke-RISC seperti "micro-ops" set instruksi RISC,
332
prosesor yang memungkinkan untuk mengambil keuntungan dari
performa yang lebih tinggi – prosesor yang melandasi tetap
kompatibel dengan prosesor Intel sebelumnya.
14.2 Dari Skalar menjadi Superskalar
Prosesor yang paling sederhana adalah prosesor skalar.
Setiap instruksi dijalankan oleh prosesor skalar yang
memanipulasi biasanya satu atau dua item data sekaligus.
Sebaliknya, setiap instruksi yang dijalankan oleh prosesor vektor
beroperasi secara simultan pada banyak data item. Sebuah
analogi adalah perbedaan antara skalar dan vektor aritmatika.
Sebuah prosesor superskalar adalah jenis campuran kedua. Setiap
instruksi proses data satu item, namun ada beberapa fungsional
berlebihan dalam setiap unit CPU sehingga beberapa petunjuk
dapat memproses data terpisah item serentak.
14.3 Pengertian Prosesor Superskalar
Prosesor Superskalar adalah istilah bagi prosesor yang
mampu melakukan banyak instruksi setiap siklusnya, dengan
menggunakan sebuah teknik yang disebut dengan pipelining.
Atau arsitektur yang memungkinkan eksekusi yang bersamaan
(parallel) dari instruksi yang banyak pada tahap pipeline yang
sama sebaik tahap pipeline yang lain. Misalkan, instruksi Add
R1, R2, R3 yang akan menambahkan isi register R1 dan R2 dan
menempatkan jumlahnya dalam register R3. Isi dari register R1
dan R2 mula-mula akan ditransfer ke Unit aritmatika dan logika.
333
Setelah operasi penambahan dilakukan, hasil penjumlahan
tersebut akan ditransfer ke register R3. Prosesor dapat membaca
instruksi selanjutnya dari memori, sementara operasi
penambahan dilakukan. Kemudian jika instruksi tersebut juga
menggunakan ALU, operand-nya dapat ditransfer ke input ALU
pada waktu yang sama dengan hasil instruksi Add ditransfer ke
register R3. Pada kasus ideal, jika semua instruksi ditumpuk ke
derajat yang maksimum yang mungkin dilakukan, maka eksekusi
dilanjutkan pada kecepatan penyelesaian satu instruksi dalam
tiap siklus detak prosesor. Instruksi individual, mungkin masih
memerlukan beberapa siklus detak agar selesai dilakukan. Tetapi
untuk tujuan perhitungan, prosesor superskalar umumnya mampu
melakukannya dalam tiap siklus. Prosesor superskalar umumnya
menggunakan beberapa unit fungsional, menciptakan jalur
paralel di mana berbagai instruksi yang berbeda dapat dieksekusi
secara paralel. Dengan pengaturan tersebut, maka dimungkinkan
untuk memulai eksekusi beberapa instruksi secara paralel tiap
siklus detak. Tentu saja, eksekusi paralel harus mempertahankan
kebenaran logikan program, sehingga hasil yang diperoleh harus
sama dengan hasil dari eksekusi secara serial. Superskalar ini
mampu menjalankan Instruction Level Parallelism dengan satu
prosesor. Superskalar dapat diaplikasikan di RISC dan CISC,
tapi pada umumnya RISC. Peristiwa menarik yang bisa
dilakukan dengan metoda superskalar ini adalah dalam hal
memperkirakan pencabangan instruksi (branch prediction) serta
perkiraan eksekusi perintah (speculative execution). Peristiwa ini
334
sangat menguntungkan buat program yang membutuhkan
pencabangan dari kelompok instruksi yang dijalankannya.
Program yang terdiri atas kelompok perintah bercabang ini sering
digunakan dalam pemrograman. Contohnya dalam menentukan
aktifitas yang dilakukan oleh suatu sistem berdasarkan umur
seseorang yang sedang diolahnya, katakanlah jika umur yang
bersangkutan lebih dari 18 tahun, maka akan diberlakukan
instruksi yang berhubungan dengan umur tersebut, anggaplah
seseorang tersebut dianggap telah dewasa, sedangkan untuk
kondisi lainnya dianggap belum dewasa. Tentu perlakuannya
akan dibedakan sesuai dengan sistem yang sedang dijalankan.
14.4 Arsitektur Superskalar
Jika satu pipeline bagus, maka tentu dua pipeline akan
lebih bagus. Satu desain yang mungkin bagi sebuah CPU dengan
pipeline ganda. Di sini suatu satuan membaca instruksi tunggal
mengambil pasangan pasangan dari instruksi-instruksi secara
bersama dan memasukkan masing-masing pasangan ke dalam
pipeline-nya sendiri, lengkap dengan ALUnya sendiri bagi
operasi paralel. Agar dapat beroperasi secara paralel, kedua
instruksi tersebut tidak boleh berebutan dalam menggunakan
sumber daya (contoh, register-register) dan salah satu instruksi
tidak boleh bergantung pada hasil dari instruksi yang lain. Seperti
halnya dengan sebuah pipeline tunggal, begitu pula compiler
harus menjamin situasi ini tetap terjaga (yaitu hardware tidak
memeriksa dan memberikan hasil-hasil yang salah jika instruksi-
335
instruksi tidak sebanding) atau konflik-konflik dideteksi dan
dihilangkan selama pelaksanaan dengan menggunakan hardware
tambahan. Meskipun pipeline-pipeline, tunggal atau ganda,
sebagian besar digunakan pada mesin-mesin RISC (komputer
386 dan generasi-generasi pendahulunya tidak memiliki
satupun), Intel 486 adalah yang pertama kali mulai
memperkenalkan pipelinepipeline ke dalam CPUCPUnya. Intel
486 memiliki satu pipeline dan Pentium memiliki dua pipeline
lima tahap seperti pada Gambar 14.1.
Gambar 14.1 Pipeline Lima Tahap Ganda dengan Satuan
Membaca Instruksi Biasa
Meskipun pembagian tugas sebenarnya antara tahap 2 dan
tahap 3 (yang disebut decode1 dan decode2) sedikit berbeda
dibanding dalam contoh kita. Pipeline utama, yang disebut
pipeline u, dapat menjalankan sebuah instruksi Pentium yang
selalu berubah-ubah. Pipeline kedua, yang disebut pipeline v,
dapat menjalankan hanya instruksi-instruksi integer sederhana
(dan juga satu instruksi titik mengambang sederhana FXCH.
Peraturan-peraturan yang rumit menentukan apakah sepasang
instruksi sebanding sehingga mereka dapat dijalankan secara
336
paralel. Jika instruksi instruksi yang berpasangan tidak cukup
sederhana atau tidak sebanding, hanya pasangan pertama yang
dijalankan (dalam pipeline u). Pasangan kedua kemudian
disimpan dan dipasangkan dengan instruksi berikutnya.
Instruksi-instruksi selalu dijalankan secara berurutan. Jadi
compiler khusus Pentium yang memproduksi pasangan-pasangan
instruksi yang sebanding dapat memproduksi program-program
yang beroperasi lebih cepat dibanding compiler. Pengukuran-
pengukuran menunjukkan bahwa sebuah Pentium yang
mengoperasikan kode yang dioptimalkan untuk Pentium tersebut
memiliki kinerja dua kali lebih cepat dibandingkan dengan
program-program integer seperti sebuah komputer 486 yang
beroperasi pada laju kecepatan detak yang sama (Pountain,
1993). Hasil ini dapat dikaitkan seluruhnya dengan pipeline
kedua.
Gambar 14.2 Prosesor Superskalar dengan Lima Satuan
Fungsional
337
Beralih keempat pipeline dapat dilakukan, namun bila hal ini
dilakukan akan menduplikat terlalu banyak hardware. Bahkan,
suatu pendekatan berbeda digunakan pada highend CPU. Ide
dasarnya adalah untuk memiliki hanya satu pipeline tunggal
namun pipeline tersebut memiliki berbagai macam satuan fungsi,
seperti ditunjukkan pada Gambar 14.x. Contoh, Pentium III
memiliki suatu struktur yang mirip dengan gambar. Istilah
arsitektur superskalar ditetapkan bagi pendekatan ini pada 1987
(Agerwala dan Cocke, 1987). Namun sebenarnya pendekatan ini
telah digunakan pada komputer CDC 6600 30 tahun sebelumnya.
1. Paralelisme tingkat instruksi dan paralelisme mesin
Paralelisme tingkat instruksi terjadi apabila instruksi-
instruksi yang terdapat pada rangkaian bersifat independen
dan karena itu dapat dieksekusi secara paralel dengan cara
saling bertumpang tindih. Paralelisme tingkat instruksi
ditentukan oleh frekuensi true data dependency dan
procedural dependency yang terdapat di dalam kode.
Penggunaan set instruksi yang memiliki panjang tetap akan
meningkatkan paralelisme tingkat instruksi.
2. Kebijakan instruction issue
Kebijakan instruction issue adalah kebijakan penginisiasian
eksekusi instruksi di dalam unit-unit fungsional prosesor.
Kebijakan instruction issue superskalar dapat digolongkan
dalam 3 kategori:
1) In-order issue dengan in-order completion
338
Kebijakan instruction issue yang paling sederhana adalah
dengan menerbitkan instruksi dalam urutan pasti yang
akan didapatkan oleh eksekusi sekuensial (in-order-issue)
dan menuliskan hasilnya dengan urutan yang sama (in-
order -completion). Gambar 14.3 merupakan sebuah
contoh tentang kebijakan ini.
11 12
13 14
13 14
14
15 16
16
Decode
11 12
11
13
14
15
16
11 12
13 14
15 16
Execute Writerback Cycle
1
2
3
4
5
6
7
8
Gambar 14.3 In-order Issue dengan In-Order Completion
2) In-order issue dengan out-of-order completion
Dengan out-of-order completion, sembarang jumlah
instruksi hingga derajat paralelisme mesin maksimum di
seluruh unit-unit fungsionalnya dapat berada pada satu
tahapan eksekusi pada saat yang bersamaan. Out-of-order
completion memerlukan logika instruction issue yang
lebih kompleks dibandingkan dengan in-order-
completion. Gambar 14.4 menjelaskan penggunaannya
pada prosesor superskalar.
339
11 12
13 14
14
15 16
16
Decode
11 12
11 13
14
15
16
12
11 13
14
15
16
Execute Writerback Cycle
1
2
3
4
5
6
7
Gambar 14.4 In-Order Issue dengan Out-Of-Order Completion
3) Out-of-order issue dengan out-of-order completion
Untuk memungkinkan out-of-order issue, maka perlu
dilakukan decouple tahapan-tahapan dekode dan eksekusi
pipeline. Hal ini dilakukan dengan cara menggunakan
buffer yang dianggap sebagai jendela instruksi. Setelah
prosesor menyelesaikan pendekodean instruksi, maka
instruksi tersebut ditempatkan di dalam jendela instruksi.
Selama buffer belum penuh, prosesor dapat mengambil
instruksi dan mendekode instruksi lainnya. Apabila pada
tahapan eksekusi tersedia unit fungsional, maka instruksi
yang berasal dari jendela instruksi dapat dikirimkan ke
tahap eksekusi.
11 12
13 14
15 16
Decode Cycle
1
2
3
4
5
6
12
11
14 13
15
Writerback
11 12
11 13
15 14
16
Execute
11,12
13,14
14,15,16
15
Window
Gambar 14.5 Out-Of-Order Issue dengan Out-Of-Order
Completion
340
14.5 Implementasi Superskalar
Rancangan superskalar muncul pada masa sulit arsitektur
RISC. Pendekatan Superskalar saat ini telah menjadi metode
standar bagi diimplemantasikannya mikro prosesor yang
berkinerja tinggi. Implementasi superskalar biasanya digunakan
seperti aritmatika interger dan titik-titik mengambang dan lain-
lain. Implementasi seperti itu akan menyebabkan semakin
kompelksnya masalah rancangan dan pipeline. Lalu ada beberapa
kesimpulan mengenai prosesor yang diperlukan prosesor
superskalar yaitu:
Proses fetch dari beberapa instruksi secara bersamaan.
Logika untuk menentukan ketergantungan sebenarnya
yang meliputi nilai register
Mekanisme untuk mengkomunikasikan nilai tersebut.
Mekanisme untuk menginisialisasi instruksi paralel.
Tersedianya sumber untuk eksekusi paralel dari beberapa
instruksi.
Mekanisme processing instruksi dengan urutan yang
sesuai
Pentium 4
Diagram blok Pentium 4 ditunjukkan berdasarkan pada
menjelaskan struktur yang sama dengan cara yang lebih
sesuai untuk diskusi pipeline di bagian ini. Pengoperasian
Pentium dapat diringkas sebagai berikut:
1. Prosesor mengambil instruksi-instruksi dari memori pada
urutan program statis.
341
2. Masing-masing instruksi diterjemahkan ke dalam satu
atau lebih atau lebih instruksi-instruksi RISC yang
panjangnya tetap, yang dikenal sebagai micro operation.
3. Prosesor mengeksekusi micro-op pada organisasi
superskalar pipeline, sedemikian sehingga micro-op
dapat dieksekusi out of order.
4. Prosesor mencatat hasil dari tiap eksekusi micro-op ke
register prosesor yang telah diatur pada urutan arus
progam orisinil.
Akibatnya, arsitektur Pentium 4 memiliki diagram CISC
dengan inti RISC dalamnya. Mirco-op RISC bagian dalam
melewati pipeline paling sedikit 20 tahap. Tetapi dalam
beberapa hal micro-op memerlukan berbagai tahapan
eksekusi yang memberikan hasil pipeline yang lebih panjang.
Hal ini berlawanan dengan 5 tahap pipeline yang digunakan
pada prosesor Intel x86 dan Pentium. Sekarang kita
mengurutkan operasi pipeline Pentium 4.
Front End
a. Generasi dari micro-op
Organisasi Pentium 4 meliputi sebuah in order from
end. Front end ini dimasukkan ke chace instruksi
L1yang disebut pelacak chace. Di sinilah biasanya
pipeline sebelumnya dimulai. Biasanya apabila prosesor
beroperasi dari pelacakan chace ketika pelacakan cache
tidak berfungsi. Dengan bantuan buffer target
pencabangan dan buffer looksuide, (BTB&1-TLB)
342
pengkodean unit mengambil instruksi pada mesin
Pentium 4 dari cache L2 sebesar 64 bytes pada waktu
yang sama. Akibatnya instruksi diambil secara berurutan
sehingga masing-masing pengambilan pada jalur cache
L2 juga mengikutsertakan instruksi berikutnya yang
akan diambil. Prediksi akan instruksi alamat pointer
linier menyampaikannya ke alamat fisik yang akan
diperlukan untuk mengakses cache L2. Prediksi
pencabangan statis pada front end BTB diunakan untuk
menentukan instruksi mana yang akan diambil
berikutnya.
b. Melacak cache penunjuk instruksi berikutnya
Dua tahapan pipeline yang pertama berhubungan dengan
pemilihan instruksi-instruksi dilacak cache dan
melibatkan mekanisme prediksi pencabangan yang
terpisah dari apa yang telah duraikan sebelumnya.
Strategi prediksi pencabangan Pentium 4 yang dinamis
yang berdasarkan sejarah eksekusi terbaru tentang
eksekusi pencabangan. Sebuah buffer target
pencabangan (BTB) disediakan untuk suatu informasi
baru-baru ini menemui instruksi-instuksi pencabangan.
Kapanpun instruksi pencabangan ditemui pada arus
instruksi, maka BTB akan diperiksa. Jika suatu entri
telah ada di BTB, kemudian arus instruksi akan
dihantarkan oleh sejarah infomasi untuk entri tersebut
untuk menentukan apakah perlu untuk memprekdisikan
343
suatu pencabangan. Jika suatu pencabangan
diprediksikan, kemudian alamat tujuan pencabangan
yang berhubungan dengan entri ini digunakan untuk
mengambil kembali instruksi target pencabangan. Sekali
insruksi dieksekusi, bagian sejarah dari yang sesuai
diperbarui untuk merefleksikan hasil pencabangan
instruksi. Jika instruksi ini tidak diwakili di BTB, maka
alamat instruksi kemudian terisi ke dalam sebuah entri
pada BTB. Bila perlu entri yang lebih lama dihapus.
Pencabangan bersyarat yang tidak mempunyai sejarah
pada BTB yang diprediksikan menggunakan algoritma
prediksi statis, yang sesuai dengan aturan-aturan berikut:
1. Jika alamat pencabangan bukan IP relatif, maka
prediksi diambil jika pencabangan dikembalikan dan
selainnya tidak diambil.
2. Jika IP relatif memundurkan pencabangan bersyarat,
maka prediksi diambil. Aturan ini mencerminkan
perilaku pengulangan yang khas.
3. Jika IP relatif memajukan pencabangan bersyarat,
maka prediksi tidak akan diambil.
c. Melacak pengambilan cache
Micro-op diambil secara sekuensial dari pelacakan
cache dan ditujukan ke logika prediksi pencabangan.
Beberapa instruksi memerlukan lebih dari empat micro-
op. Instruksi-instruksi ini ditransfer ke microcode ROM,
yang berisi rangkaian dari micro-op (lima atau lebih)
344
yang dihubungkan pada suatu instruksi mesin yang
kompleks.
Logika eksekusi out of order
a. Pengalokasian
Mengalokasikan sumber yang diperlukan untuk
eksekusi. Fungsinya adalah sebagai berikut:
Jika sumber yang diperlukan, misalnya register,
masih tidak tersedia untuk salah satu satu dari ketiga
micro-op yang ada pada alokator pada suatu siklus
waktu, maka alokator akan memperlambat pipeline.
Alokator akan mengalokasikan masukan buffer yang
diurutkan kembali (ROB) yang meruntun
perpindahan status penyelesaian salah satu dari 126
micro-op yang bisa diproses kapan saja.
Alokator mengalokasian salah satu entri dari 128
bilangan integer atau titik mengmbang untuk nilai
hasil data micro-op atau bila memungkinkan salah
satu dari buffer pemuatan yang digunakan untuk
melacak salah satu dari 48 muatan atau 24
penyimpanan dala pipeline mesin.
Alokator mengalokasikan entri ke dalam salah satu
dari dua antrian micro- op di depan instruksi
penjadwal.
b. Penanaman kembali register
Tahapan penanaman kembali register memetakan
referensi-referensi kembali pada ke arsitektur 16 register
345
ke dalam satu set 128 register fisik. Tahapan tersebut
menghilangkan ketergantungan palsu yang disebabkan
oleh sebagian kecil arsitektur register pada saat
menyimpan ketergantungan data sebenarnya (membaca
setelah menulis).
c. Antrian micro-op
Setelah mengalokasikan sumber-sumber dan memberi
nama register kembali, micro-op ditempatkan pada 1
dari 2 micro-op. Micro-op ini ditahan sampai tersedia
ruang pada penjadwal. Salah satu dari 2 micro-op
digunakan untuk operasi memori dan lainnya untuk
micro-op lain yang tidak memakai referensi memori.
Masing-masing antrian mengikuti aturan FIFO tetapi
tidak ada proses pengurutan di antara antrian. Dengan
kata lain micro-op pada antrian lain. Hal ini
menimbulkan fleksibilitas yang lebih besar pada
penjadwal.
d. Penjadwalan dan pengiriman mikro op
Penjadwal bertanggung jawab pada pengambilan
kembali micro-op dari antrian micro-op dan mengirim
micro-op ini untuk dieksekusi. Masing-masing
penjadwal mencari micro-op yang statusnya
mengindikasikan bahwa mikro-op tersebut memiliki
operand-nya. Apabila unit eksekusi diperlukan oleh
mikro-op yang ada maka penjadwal mengambil micro-
op yang itu dan mengirimkannya ke unit eksekusi yang
346
sesuai lebih dari 6 buah micro-op dapat dikirim pada
suatu siklus. Apabila lebih dari satu micro-op tersedia
untuk unit eksekusi yang ditentukan, maka penjadwal
kemudian mengirimkan mereka ke urutan antrian itu.
Unit-unit Eksekusi Integer dan Titik Mengambang
File register integer dan titik mengambang merupakan
sumber untuk operasi yang tertunda oleh unit-unit eksekusi.
Unit eksekusi mendapatkan kembali nilai-nilai dari file
register seperti halnya dari L1 melacak cache. Suatu pipeline
yang terpisah digunakan untuk menghitung flag (misalnya
nol, negatif) hal ini merupakan input bagi instruksi
pencabangan.
POWER PC
Arsitektur powerPc adalah suatu perkembangan dari IBM
801, RT PC, dan RS/6000, yang terahir juga dikenal sebagai
implementasi dan juga arsitektur POWER. Semuanya adalah
mesin RISC, tetapi yang pertama muncul adalah superskalar
RS/6000.
Power PC 601
Power PC 601 terdiri atas berbagai unit fungsional
independen, yang ditujukan untuk meningkatkan
kemungkinan terjadinya eksekusi tumpang tindih. Inti dari
601 pada khususnya terdiri dari tiga unit eksekusi pipeline
independen : integer, titik mengambang, dan pengolahn
pencabangan. Disamping itu unit-unit itu dapat mengeksekusi
347
tiga instruksi pada waktu yang sama. Menghasilkan
rancangan superskalar berderajat 3. Adapun pengolahan data
percabangan meliputi:
a. Unit dispatch
Unit dispatch mengambil instruksi-instruksi dari cache
dan memuatkannya pada antrian dispatch, yang dapat
memuat 8 instruksi-instruksi pada waktu yang sama. Ia
memproses arus ini dari instruksi-instruksi untuk
memberi aliran-aliran stasioner dari instruksi-instruksi ke
unit pengolahan pencabangan, bilangan integer dan titik
ambang. Separuh dari antrian bagian atas yang hanya
bertindak sebagai buffer untuk memuat instruksi-instruksi
sampai mereka pindah separuh ke bagian bawah.
Tujuannya adalah untuk memastikan bahwa unit
pengiriman tidaklah tertunda karena menungggu
instruksi-instruksi.
b. Pipeline instruksi
Ada suatu siklus pengambilan umum untuk segala
instruksi ini terjadi sebelum suatu instruksi dikirimkan ke
unit tertentu. Siklus yang kedua dimulai dengan
pengiriman instruksi ke unit tertentu. Pengiriman ini
bertumpang tindih dengan akitifitas lain di dalam unit itu.
Selama setiap siklus waktu, unit pengiriman mengambil
empat masukan dari instruksi terbawah dalam antrian
instruksi dan mengirimkan sampai ketiga instruksi-
instruksi. untuk instruksi-instruksi pencabangan, siklus
348
yang ke dua melibatkan dekodean eksekusi instruksi-
instruksi seperti halnya pada prediksi pencabangan.
Power PC 620
Tipe 620 merupakan implementasi 64-bit pertama dari
arsitektur PowerPc. Suatu hal yang penting dari implementasi
ini adalah bahwa adanya enam unit eksekusi yang
independen:
Unit instruksi
Tiga unit integer
Unit load/store
Unit titik-mengambang
Organisasi ini memungkinkan prosesor untuk mengirimkan
sampai keempat instruksi-instruksi secara serempak kepada
ketiga unit integer dan satu unit titik mengambang. Tipe 620
menggunaan suatu strategi prediksi pencabangan berkinerja
tinggi logika predeksi, buffer penamaan ulang register, dan
sasiun reservasi didalam unit eksekusi. Ketika suatu instruksi
diambil yang ditugaskan sebagai buffer penamaan ulang
untuk menjaga hasil instruksi untuk sementara, seperti
menyimpan register. Karena penggunaan dari buffer
penamaan ulang, maka prosesor secara spekulasi
mengeksekusi instruksi-instruksi yang berdasarkan prediksi
pencabangan. Jika prediksi salah, kemudian hasil instruksi-
instruksi spekulasi dapat dibuang tanpa merusakkan file
register. Sekali hasil dari suatu pencabangan ditetapkan, hasil
temporer dapat dituliskan secara permanen. Setiap unit
349
mempunyai dua atau lebih stasiun reservasi yang
menyimpan instruksi-instruksi dispatch yang harus
dipertahankan untuk hasil instruksi-instruksi yang lain. Fitur
ini akan membersihkan instruksi-instruksi dari unit instruksi,
memungkinkannya untuk melanjutkan pengiriman instruksi-
instruksi ke unit eksekusi lain. Tipe 620 dapat secara
spekulasi mengeksekusi sampai keempat instruksi-instruksi
pencabangan yang belum terselesaikan. Prediksi
pencabangan didasarkan dengan menggunakan suatu tabel
sejarah pencabangan dengan 2048 entri. Simulasi yang dibuat
para perancang PowerPc menunjukkan bahwa tingkat
kesuksesan prediksi pencabangan adalah 90%.
350
BAB 15
KONTROL TERMIKROPROGRAM
(MICROPROGRAMMED CONTROL)
15.1 Pendahuluan
Istilah microprogram pertama kali dikenalkan oleh
M.V.Wilkes pada awal tahun 1950-an. Wilkes mengusulkan
suatu pendekatan perancangan unit kontrol yang terorganisasi
dan sistematis dan dapat menghindari kompleksitas dari
penerapan hardwired. Gagasan tersebut membangkitkan minat
banyak peneliti tetapi tampaknya tidak dapat dilaksanakan
karena memerlukan adanya kontrol memori cepat tetapi relatif
murah. Pernyataan dari seni program mikro ditinjau kembali oleh
Datamation dalam isu bulan Februari 1964. Pada saat itu tidak
ada sistem termikroprogram yang telah digunakan secara umum
dan salah satu dari dokumen itu meringkas pendapat populer
berikutnya mengenai masa depan program mikro yang tidak
jelas. ”Tidak ada satu pabrikpun yang tertarik dengan teknik ini,
walaupun sesungguhnya mereka semua pernah meneliti ini
sebelumnya”. Situasi ini berubah secara dramatis dalam beberapa
351
bulan kemudian. Sistem 360 IBM telah dipublikasikan pada
bulan April dan semuanya, kecuali model yang paling besar,
merupakan yang termikroprogram. Walaupun seri 360
mendahului ketersediaan semi konduktor ROM, keuntungan dari
program mikro cukup mendorong IBM untuk bisa membuat
perubahan. Sejak saat itu, program mikro telah menjadi suatu
sarana untuk berbagai aplikasi yang terus meningkat
kepopulerannya, salah satunya adalah dengan penggunaan
program mikro untuk menerapkan unit kontrol sebuah prosesor.
Komputer awalnya adalah sebuah besi rongsokan yang tak
bisa apa-apa, sedang manusia adalah sebuah benda hidup yang
bisa berpikir, berkomunikasi sesamanya dan mampu
memberikan sebuah arti. Bahasa pemrograman komputer adalah
sebuah cara untuk membuat komputer menjadi mesin pintar
yang mampu membuatnya berkomunikasi dengan manusia.
Alasan tersebut membuat keberadaan bahasa pemrograman
menjadi sangat esensial (Gambar 15.1).
Gambar 15.1 Microprogramming
352
Dari Gambar 15.1 bisa disimpulkan bahwa bahasa pemrograman
merupakan interface antara manusia dan komputer. Implementasi
sebuah software oleh bahasa pemrograman mempunyai level-
level dengan fungsinya masing-masing. Level-level bahasa
pemrograman tersebut dapat dikelompokkan sebagai berikut:
1. Microprogramming
2. Bahasa Mesin
3. Bahasa Perakit (Assembly) / Tingkat rendah
4. Bahasa Pemrograman Tingkat tinggi
5. Bahasa Pemrograman Visual
15.2 Konsep Dasar
a. Instruksi Mikro
Unit kontrol merupakan alat yang sederhana. Meskipun
demikian, untuk menerapkan unit kontrol sebagai interkoneksi
dari elemen-elemen logika dasar bukanlah tugas yang mudah.
Rancangan harus meliputi logika peruntunan melalui operasi
mikro, untuk mengeksekusi operasi mikro, untuk
menginterprestasikan opcodes dan untuk membuat keputusan
berdasarkan flag-flag ALU.
Instruksi mikro merupakan perintah kendali yang
dihasilkan CLU (Control Logic Unit). Instruksi mikro merupakan
operasi primitif tingkat rendah yang bertindak secara langsung
pada sirkuit logika suatu komputer. Mereka merinci fungsi-
fungsi (sinyal-sinyal) seperti berikut:
353
- Membuka/menutup suatu gerbang (gate) dari sebuah
register ke sebuah bus
- Mentransfer data sepanjang sebuah bus
- Memberi inisial sinyal-sinyal kendali seperti READ,
WRITE, SHIFT, CLEAR dan SET
- Mengirimkan sinyal-sinyal waktu
- Menunggu sejumlah periode waktu tertentu
- Menguji bit-bit tertentu dalam sebuah register
b. Unit Kontrol Termikroprogram
Gambar 15.2 Unit Kontrol Termikroprogram
Memori kontrol dari Gambar 15.2 berisi sebuah program
yang menguraikan perilaku unit kontrol. Hal ini menjelaskan
bahwa kita bisa menerapkan unit kontrol hanya dengan
mengeksekusi program tersebut. Gambar tersebut menunjukkan
elemen-elemen utama dari implementasi tersebut. Set instruksi
mikro disimpan pada memori kontrol. Register alamat kontrol
354
berisi alamat instruksi mikro berikut yang akan dibaca. Ketika
sebuah instruksi mikro dibaca dari memori kontrol, instruksi
mikro tersebut dipindahkan ke register buffer kontrol. Bagian
sebelah kiri register tersebut menghubungkan kontrol unit ke
bentuk kontrol asalnya. Oleh sebab itu, membaca sebuah
instruksi mikro dari memori kontrol adalah sama seperti
mengeksekusi instruksi mikro tersebut. Elemen ketiga yang
ditunjukkan pada gambar tersebut adalah adanya unit yang
berurutan yang memuatkan register alamat kontrol dan
mengeluarkan instruksi baca. Unit Kontrol masih memiliki
masukan-masukan yang sama (IR, ALU, flag, detak) dan
keluaran (sinyal Kontrol). Unit-unit Kontrol berfungsi sebagai
berikut:
1. Untuk mengeksekusi sebuah instruksi, unit logika
peruntunan mengeluarkan sebuah instruksi BACA ke
memori kontrol.
2. Word yang alamatnya telah ditetapkan pada register-
register alamat kontrol dibaca ke register buffer control.
3. Isi dari register buffer control menghasilkan sinyal
kontrol dan informasi alamat berikutnya untuk
peruntunan unit logika
4. Unit logika yang diurutkan memuat sebuah alamat yang
baru ke register alamat kontrol berdasarkan informasi
alamat berikutnya dari register buffer kontrol dan flag
ALU.
355
Semua ini terjadi selama satu detak pulsa. Hanya tahap terakhir
yang perlu penjelasan lebih lanjut. Pada kesimpulan dari masing-
masing instruksi mikro, unit logika yang berurutan memuat
sebuah alamat baru ke dalam register alamat kontrol. Tergantung
pada nilai flag ALU dan register buffer kontrol, salah satu dari
tiga keputusan bisa dibuat:
Lakukan langkah berikutnya: Tambahkan 1 ke
register alamat kontrol
Lompat ke rutin baru berdasarkan lompatan
instruksi mikro: Muatkan bidang alamat dari register
buffer kontrol ke register alamt kontrol
Lompat ke rutin instruksi mesin: Muatkan alamat
kontrol berdasarkan opcode pada IR
c. Kontrol Wilkes
Inti dari sistemnya merupakan sebuah matriks yang secara
parsial diisi dengan dioda. Selama siklus mesin, satu baris
matriks diaktifkan dengan sebuah pulsa. Hal ini menghasilkan
sinyal pada titik-titik tersebut dimana sebuah dioda ada (ditandai
oleh sebuah titik pada diagram). Bagian pertama dari baris itu
menghasilkan sinyal kontrol yang mengendalikan pengoperasian
prosesor. Bagian kedua menghasilkan alamat pada baris yang
akan dipulsakan pada siklus mesin berikutnya. Jadi, masing-
masing baris matriks merupakan satu kesatuan instruksi mikro,
dan tampilan matriksnya merupakan memori kontrolnya.
356
Pada awal siklus, alamat dari baris yang akan dipulsakan
disertakan pada register I. Alamat ini merupakan masukan ke
dekoder, yang jika diaktifkan oleh pulsa waktu, akan
mengaktifkan satu baris matriks. Tergantung pada kontrol sinyal,
baik itu opcode yang berada pada register instruksi maupun pada
bagian kedua dari baris yang dipulsakan dilewatkan ke bagian
register II selama siklus.
d. Komponen Pokok Control Unit Microprogrammed
Adapun komponen pokok unit kontrol termikroprogram
adalah:
1. Instruction Register
Menyimpan instruksi register mesin yang dijalankan.
2. Control Store
Berisi microprogrammed untuk semua instruksi mesin,
startup mesin dan memprosesan interupt.
3. Address Computing Circuiting
Menentukan alamat Control Store dari mikroinstruksi
berikutnya yang akan dijalankan.
4. Microprogrammed Counter
Menyimpan alamat dari mikroinstruksi berikutnya.
5. Microinstruction Buffer
Menyimpan mikroinstruksi tersebut selama dieksekusi.
6. Microinstruction Decoder
357
Menghasilkan dan mengeluarkan microorder yang
didasarkan pada mikroinstruksi dan opcode instruksi
yang akan dijalankan.
15.3 Keuntungan dan Kerugian
Keuntungan dari penggunaan program mikro untuk
menerapkan sebuah unit kontrol adalah hal tersebut
menyederhanakan perancangan unit kontrol. Jadi, lebih murah
dan lebih sedikit kesalahan yang bisa terjadi pada saat
mengimplementasikannya. Unit kontrol hardwired harus berisi
logika kompleks untuk pengurutan melalui banyak operasi mikro
di siklus instruksi. Di sisi lain, decoder dan unit logika
pengurutan dari unit kontrol program mikro merupakan bagian
logika yang mudah.
Kerugian dari sebuah unit yang terprogram mikro adalah
bahwa ia akan lebih lambat daripada unit hardwired dari
teknologi yang dibandingkan. Di samping itu, program mikro
merupakan teknik yang paling dominan untuk menerapkan unit-
unit kontrol pada CISC kontemporer, karena mudahnya
penerapannya. Prosesor-prosesor RISC dengan format
instruksinya yang lebih sederhana, biasanya menggunakan unti
kontrol yang hardwired.
15.4 Pengurutan Instruksi Mikro
Dua tugas dasar yang dilakukan oleh unit kontrol
termikroprogram adalah sebagai berikut:
358
- Peruntunan instruksi mikro: mengambil instruksi
mikro yang berikutnya dari memori kontrol
- Eksekusi instruksi mikro: menghasilkan sinyal kontrol
yang diperlukan untuk mengeksekusi instruksi mikro
a. Pertimbangan Rancangan
Dua pertimbangan dilibatkan dalam perancangan sebuah
teknik pengurutan instruksi mikro: yaitu ukuran instruksi mikro
dan waktu pembuatan alamat. Perhatian yang pertama jelas; yaitu
dengan memperkecil ukuran memori kontrol berarti mengurangi
ongkos komponen. Perhatian yang kedua adanya keinginan untuk
mengeksekusi instruksi mikro secepat mungkin.
Dalam mengeksekusi sebuah program mikro, alamat
instruksi mikro berikutnya yang akan dieksekusi berada pada
salah satu dari kategori ini:
- Ditentukan oleh register instruksi (Determined by
instruction register)
- Alamat sekuensial berikutnya (next sequential address)
- Pencabangan (Branch)
Kategori yang pertama hanya terjadi sekali setiap siklus
instruksi, yaitu sesudah sebuah instruksi diambil. Kategori kedua
merupakan kategori rancangan yang paling umum.
Bagaimanapun, rancangan tidak dapat dioptimalkan hanya untuk
akses sekuensial. Pencabangan, baik kondisional maupun yang
bukan kondisional, merupakan bagian penting dari sebuah
program mikro. Dan lagi, pengurutan instruksi mikro cenderung
359
pendek, satu dari setiap tiga atau empat instruksi mikro dapat
menjadi sebuah cabang. Jadi penting untuk merancang rancangan
teknik yang padat, efisien untuk pencabangan instruksi mikro.
b. Teknik Pengurutan
Pengelompokkan teknik pengurutan dapat digolongkan
dalam tiga kategori umum. Kategori-kategori ini berdasarkan
format informasi alamat pada instruksi mikro:
- Dua bidang alamat (two address fields)
- Bidang alamat tunggal (single address field)
- Format variabel (variable format)
Pendekatan yang paling sederhana adalah dengan
menyediakan dua bidang alamat pada setiap instruksi mikro.
Sebuah multiplexer disiapkan sebagai tujuan untuk bidang alamat
juga register instruksi. Berdasarkan masukan seleksi alamat,
multiplexer memancarkan opcode atau satu dari dua alamat ke
register alamat kontrol (CAR). CAR didekodekan untuk
menghasilkan alamat instruksi mikro selanjutnya. Sinyal seleksi
alamat disediakan oleh modul logika pencabangan yang
masukannya terdiri atas flag-flag unit kontrol plus bit-bit dari
bagian kontrol instruksi mikro.
Walaupun dua pendekatan alamat sederhana, pendekatan-
pendekatan itu memerlukan lebih banyak bit pada instruksi mikro
daripada pendekatan lainnya. Dengan beberapa logika tambahan,
penyimpanan dapat dicapai. Pendekatan yang umum adalah
360
dengan memiliki bidang alamat tunggal. Dengan pendekatan ini,
pilihan untuk alamat berikutnya adalah sebagai berikut:
- Bidang alamat (address field)
- Kode register instruksi (instruction register code)
- Alamat sekuensial berikutnya (next sequential address)
Sinyal seleksi alamat menentukan pilihan mana yang akan
dipilih. Pendekatan ini mengurangi jumlah bidang alamat
menjadi satu. Perlu dicatat bahwa bidang alamat sering kali tidak
digunakan. Jadi, ada beberapa ketidakefisienan pada skema
pengkodean instruksi mikro.
c. Pembuatan Alamat
Pada Tabel 15.1 menampilkan teknik-teknik pembuatan
alamat yang berbeda-beda. Teknik ini dapat dibedakan menjadi
teknik yang lebih eksplisit, dimana alamatnya secara eksplisit
tersedia dalam instruksi mikro dan teknik implisit, yang
memerlukan logika tambahan untuk menghasilkan alamat.
Tabel 15.1 Teknik Pembuatan Alamat
Eksplisit Implisit
Dua bidang Pemetaan
Pencabangan tanpa syarat Penambahan
Pencabangan bersyarat Kontrol residual
Dengan pendekatan dua bidang, dua alternatif alamat
tersedia dengan masing-masing instruksi mikro. Dengan
361
menggunakan alamat tunggal maupun format variabel, berbagai
macam instruksi pencabangan dapat diterapkan. Sebuah instruksi
pencabangan bersyarat tergantung pada jenis-jenis informasi
seperti berikut ini:
- Flag ALU
- Bagian dari opcode atau bagian dari bidang mode alamat
instruksi mesin
- Bagian dari sebuah register yang terpilih, seperti tanda
bit
- Bit status di dalam unit control
Beberapa teknik yang implisit biasanya juga digunakan.
Salah satunya adalah pemetaan yang dibutuhkan secara virtual
oleh semua rancangan. Bagian opcode instruksi mesin harus
dipetakan ke sebuah alamat instruksi mikro. Hal ini terjadi hanya
sekali pada setiap siklus instruksi.
Teknik implisit yang umum digunakan adalah teknik yang
meliputi penggabungan atau penambahan dua bagian alamat
dalam membentuk alamat yang lengkapnya. Pendekatan ini
dilakukan untuk kelompok IBM S/360 dan digunakan pada
banyak model S/370.
15.5 Eksekusi Instruksi Mikro
Siklus instruksi mikro merupakan kejadian dasar CPU
terprogram mikro CPU. Setiap siklus disusun oleh dua bagian:
pengambilan dan eksekusi. Pengambilan ditentukan oleh
362
pembuatan alamat instruksi mikro dan pembuatan alamat ini
berkaitan dengan eksekusi instruksi mikro.
Eksekusi adalah untuk menghasilkan sinyal-sinyal kontrol.
Sebagian sinyal kontrol tersebut menuju ke dalam CPU.
Sedangkan sinyal-sinyal lainnya menuju ke bus kontrol eksternal
atau antarmuka eksternal lainnya. Sebagai sebuah fungsi
insidental, alamat instruksi mikro berikutnya perlu ditentukan.
a. Taksonomi Instruksi Mikro
Instruksi mikro dapat digolongkan beberapa variasi. Pembedaan
yang pada umumnya dibuat pada literatur meliputi hal-hal
berikut ini:
Vertikal/Horizontal
Istilah horizontal dan vertikal berkaitan dengan lebar
relatif sebuah instruksi mikro.
Dibungkus atau tidak dibungkus
Tingkat pembungkusan berkaitan dengan derajat
identifikasi antara tugas kontrol tertentu dengan bit-bit
instruksi mikro tertentu. Dengan semakin dikemasinya
bit-bit tersebut, maka sejumlah bit tertentu akan berisi
informasi yang lebih banyak. Dengan demikian
pembungkusan mengandung arti pendekodean.
Pemrograman mikro keras/lunak
Istilah pemrograman keras dan pemrograman perangkat
lunak digunakan untuk menentukan derajat kedekatan
terhadap sinyal kontrol dan tata letak hardware yang
363
bersangkutan. Umumnya mikroprogram keras bersifat
tetap dan dimaksudkan untuk memori read-only.
Sedangkan mikroprogram lunak lebih mudah diubah-
ubah dan ditujukan untuk pemrograman mikro pengguna.
Pengkodean langsung atau tidak langsung.
Seluruh klasifikasi di atas berkaitan erat dengan format
instruksi mikro. Tidak ada satu klasifikasi pun yang
diterapkan secara konsisten seperti yang ditulis dalam
kepustakaan. Akan tetapi penelitian pasangan kualitas
tersebut telah membantu terbentuknya alternatif
rancangan instruksi mikro.
Contohnya adalah dalam proposal yang dibuat oleh
Wilkes, setiap bit instruksi mikro memproduksi secara langsung
sinyal kontrol atau memproduksi secara langsung satu bit
berikutnya. Dimungkinkan penggunaan teknik pengurutan alamat
yang lebih kompleks, yang memerlukan bit instruksi mikro yang
lebih sedikit. Teknik ini memerlukan modul pengurutan logika
yang lebih kompleks. Dengan memakai pengendekodean
(encoding) informasi kontrol, dan kemudian selanjutnya
melakukan pengendekodeannya untuk menghasilkan sinyal-
sinyal kontrol, bit kontrol word dapat dihemat. Pengkodean
tersebut merupakan bentuk pengendekodean yang paling padat
yang menjaga seluruh kombinasi sinyal-sinyal kontrol.
Sinyal kontrol sebuah format instruksi mikro berada pada
sebuah spektrum. Pada suatu ekstrem, terdapat sebuah bit untuk
364
setiap sinyal kontrol, sedangkan pada ekstrem lainnya, digunakan
format yang sangat dikodekan.
Teknik Wilkes yang murni memerlukan sebagian besar bit.
Dalam hal ini terlihat juga bahwa ekstrem tersebut memberikan
gambaran hardware yang paling mendalam. Pendekodean
dilakukan sedemikian rupa seperti halnya fungsi agregrasi atau
sumber daya, sehingga pemrograman mikro memandang
prosesor pada tingkatan yang tinggi dan kurang terinci. Selain
itu, pendekodean dibuat untuk memudahkan masalah-masalah
yang terdapat pada pemrograman mikro. Umumnya salah satu
konsekuensi pendekodean adalah untuk mencegah pemakaian
kombinasi yang tidak diizinkan.
b. Pengkodean Instruksi Mikro
Pada praktiknya, unit kontrol dengan program mikro tidak
dirancang dengan menggunakan format instruksi mikro yang
tidak dienkode secara murni atau horizontal. Sedikitnya beberapa
derajat pendekodean digunakan untuk mengurangi lebar memori
kontrol dan untuk menyederhanakan pekerjaan pemrograman
mikro.
Teknik dasar pendekodean dijelaskan pada Gambar 15.3.
Instruksi mikro diorganisasikan sebagai sekumpulan bidang.
Masing-masing bidang berisi kode, yang pada saat pendekodean
akan mengaktivasi sebuah sinyal kontrol atau lebih.
365
Rancangan format instruksi mikro yang dikodekan dapat
dinyatakan dengan cara yang sederhana:
Mengorganisasikan format menjadi bidang-bidang yang
mandiri. Dengan kata lain, setiap bidang
menggambarkan seperangkat tindakan (pola sinyal-sinyal
kontrol) sedemikian rupa sehingga aksi-aksi yang berasal
dari bidang-bidang yang berada dapat terjadi secara
serempak.
Tentukan setiap bidang sedemikian rupa sehingga aksi-
aksi alternatif yang dapat dispesifikasikkan oleh bidang
bersifat eksklusif mutual. Dengan kata lain, pada suatu
saat tertentu satu aksi yang telah ditentukan oleh bidang
tertentu yang dapat terjadi.
Gambar 15.3 Pengkodean Langsung
366
Aspek pendekodean lainnya adalah apakah pendekodean
itu bersifat langsung atau tidak langsung, seperti Gambar 15.4.
Pada pendekodean tidak langsung, sebuah bidang digunakan
untuk menentukan intrepretasi bidang lainnya. Misalnya, ambil
sebuah ALU yang dapat melakukan delapan operasi aritmatika
dan delapan operasi shift. Sebuah bidang 1 bit dapat digunakan
untuk mengindikasikan apakah operasi aritmetik atau shift
digunakan; sebuah bidang 3 bit akan mengindikasikan operasi.
Umumnya teknik ini mengandung dua tingkatan pendekodean,
yang akan meningkatkan penundaan/delay propagasi.
Gambar 15.4 Pendekodean Tidak Langsung
Berbagai macam contoh dari eksekusi instruksi mikro adalah
1. LSI-11, adalah anggota keluarga PDP-11 pertama yang
menggunakan prosesor tunggal. Papannya berisi 3 buah
keping LSI sebuah bus internal yang dikenal sebagai bus
367
instruksi mikro atau Micro Instructions Bus (MIB) dan
logika antarmuka lainnya.
2. IBM-3033, memori kontrol IBM 3033 standar terdiri dari
4K word-word. Separuh memori tersebut (0000-07FF)
berisi 108-bit instruksi mikro, sedangkan sisanya (0800-
0FFF) digunakan untuk menyimpan instruksi mikro 126-
bit.
c. TI 8800
Board pengembangan software 8800(SDB) dari Texas
Instruments adalah suatu kartu komputer yang berkapasitas 32-
bit yang dapat diprogram. Sistem ini memiliki kendali atau
penyimpan kontrol yang dapat ditulis dan diterapkan di dalam
RAM bukannya ROM. Sistem yang demikian tidak mencapai
kecepatan atau kepadatan sistem dengan mikroprogramnya yang
mampu menyimpan ROM. 8800 SDB terdiri atas komponen-
komponen seperti berikut:
Memori kode mikro (Microcode memory)
Pengurutan mikro (Microsequencer)
ALU-320bit (32-bit ALU)
Titik mengembang dan prosesor bilangan integer
(Floating-point and integer-processor)
Memori data lokal (Local data Memory)
368
d. Format Instruksi Mikro
Format instruksi micro untuk tipe 8800 terdiri atas 128 bit
yang dibagi menjadi 30 bidang yang fungsional. Masing-masing
bidang terdiri atas satu atau lebih dan bidang-bidang tersebut
dikelompokkan ke dalam lima kategori utama:
Kontrol papan
Keping prosesor titik-mengembang dan integer tipe
8847
ALU teregister tipe 8832
Pengurut mikro tipe 8818
Bidang data WCS
e. Pengurut Mikro
Fungsi utama dari pengurut mikro 8818 adalah untuk
menghasilkan alamat instruksi mikro berikutnya untuk keperluan
mikroprogram. Alamat berikutnya dapat dipilih dari salah satu
lima sumber berikut:
Register counter microprogram (MPC), digunakan
untuk pengulangan dan melanjutkan perintah.
Stack, yang mendukung pemanggilan subrutin
program mikro dan juga loop-loop literatif dan
return dari interupsi.
Port DRA dan DRB, menyediakan dua alur
tambahan dari hardware eksternal yang
369
menyebabkan alamat-alamat program mikro dapat
dihasilkan.
Register counter RCA dan RCB, yang dapat
digunakan untuk penyimpan alamat tambahan
Masukan eksternal ke port bidirectional Y untuk
mendukung interupsi-interupsi eksternal.
15.6 Aplikasi Pemrograman Mikro
Sejak pemrograman mikro dikenal dan terutama sejak
akhir tahun 1960-an, aplikasi pemrograman mikro menjadi
semakin bervariasi dan banyak digunakan. Sejak awal tahun
1971, sebagian besar aplikasi menggunakan pemrograman mikro.
Aplikasi-aplikasi pemrograman mikro tersebut meliputi:
Realisasi komputer
Emulasi
Dukungan sistem operasi
Realisasi perangkat untuk keperluan khusus
Dukungan bahasa tingkat tinggi
Diagnostik mikro
Penyesuaian pemakai
Pemrograman mikro merupakan alat yang sangat berguna
dalam menerapkan perangkat keperluan khusus yang dapat
digabungkan dengan komputer host. Sebagai contoh yaitu papan
komunikasi data. Papan akan berisi mikroprosesor miliknya
sendiri. Sebab papan itu digunakan untuk keperluan khusus,
370
maka akan masuk akal apabila untuk meningkatkan kinerja
diimplementasikan beberapa fungsinya dalam bentuk firmware
dibandingkan dalam bentuk software. Pemrograman mikro dapat
digunakan untuk mendukung pengawasan, pendeteksian, isolasi
dan perbaikan kesalahan sistem. Fitur-fitur ini dikenal sebagai
mikrodiagnostik dan dapat meningkatkan fasilitas perawatan
sistem. Pendekatan tersebut memungkinkan sistem untuk
melakukan rekonfigurasi dirinya apabila terjadi kegagalan
sistem, misalnya, apabila multiplier berkecepatan tinggi tidak
berfungsi, maka pemrograman mikro multiplier dapat
mengatasinya.
371
BAB 16
ARSITEKTUR KOMPUTER CYRIX
16.1 Pendahuluan
80x86 atau x86 adalah nama umum dari arsitektur
mikroprosesor yang pertama kali dikembangkan dan diproduksi
oleh Intel. Arsitektur x86 saat ini mendominasi computer
desktop, komputer portabel dan pasar server sederhana.
Arsitektur ini dikenal dengan nama x86 karena prosesor-prosesor
awal dari keluarga arsitektur ini memiliki nomor model yang
diakhiri dengan urutan angka "86": prosesor 8086, 80186, 80286,
386 dan 486. Karena nomor tidak bisa dijadikan merek dagang,
Intel akhirnya menggunakan kata Pentium untuk merek dagang
prosesor generasi kelima mereka. Arsitektur ini telah dua kali
diperluas untuk mengakomodasi ukuran word yang lebih besar.
Di tahun 1985, Intel mengumumkan rancangan generasi 386 32-
bit yang menggantikan rancangan generasi 286 16-bit. Arsitektur
32-bit ini dikenal dengan nama x86-32 atau IA-32 (singkatan
dari Intel Architecture, 32-bit). Kemudian pada tahun 2003,
AMD memperkenalkan Athlon 64, yang menerapkan secara
372
lebih jauh pengembangan dari arsitektur ini menuju ke arsitektur
64-bit, dikenal dengan beberapa istilah x86-64, AMD64 (AMD),
EM64T atau IA-32e(Intel) dan x64 (Microsoft).
16.2 Sejarah
Arsitektur x86 pertama kali hadir melalui 8086 CPU pada
tahun 1978; Intel 8086 adalah pengembangan dari mikroprosesor
Intel 8080 (yang dibangun mengikuti arsitektur dari 4004 dan
8008) dan program bahasa rakitan dari 8080 dapat diterjemahkan
secara mekanik ke program yang setara ke bahasa rakitan untuk
8086. Arsitektur ini diadaptasi (dengan versi yang lebih
sederhana dari versi 8088) tiga tahun kemudian sebagai standar
dari CPU pada IBM PC. Kehadiran platform PC secara luas
membuat arsitektur x86 menjadi arsitektur CPU yang paling
sukses selama ini. (Rancangan CPU lainnya yang sangat sukses,
yang dibagun berdasarkan 8080 dan kompatibel pada set
instruksi hingga pada tingkatan bahasa-mesin biner adalah
arsitektur Zilog Z80). Perusahaan lain juga membuat atau pernah
membuat CPU yang berdasarkan arsitektur x86: di
antaranya Cyrix (sekarang diakuisisi oleh VIA Technologies),
NEC Corporation, IBM, IDT(juga telah diakuisisi oleh VIA) dan
Transmeta. Manufaktur yang paling sukses adalah AMD, dengan
seri Athlon-nya, yang meskipun belum se-populer seri Pentium,
telah menguasai sebagian pangsa pasar secara nyata. Menurut
beberapa perusahaan riset pangsa pasar CPU AMD telah
373
melampaui penjualan CPU Intel di pasar retail dekstop pada
tahun 2006.
16.3 Rancangan
Arsitektur x86 adalah rancangan Set Instruksi Komputer
Kompleks (Complex Instruction Set Computer) dengan panjang
instruksi yang bervariasi. Kompatibilitas mundur menjadi
motivasi terkuat dalam pengembangan arsitektur x86 (keputusan
ini menjadi sangat penting dan sering dikritik, terutama oleh
pesaing dari pendukung arsitektur prosesor lainnya, yang dibuat
frustasi oleh sukses yang berkelanjutan dari arsitektur ini yang
secara umum dipandang memilki banyak kelemahan). Prosesor-
prosesor terkini dari x86 menerapkan beberapa langkah
penerjemah (decoder) "tambahan" untuk (saat eksekusi)
memecah (sebagian besar) instruksi x86 ke dalam potongan-
potongan kecil instruksi (dikenal dengan "micro-ops") yang
selanjutnya dieksekusi oleh arsitektur setara dengan arsitektur
RISC. Mikroprosesor x86 dapat bekerja dalam beberapa modus
berikut:
Real-mode (Modus Real)
Protected Mode (Modus terproteksi)
Virtual Protected Mode (Modus Terproteksi Virtual)
Compatibility Mode
Long Mode/ IA32e Full Mode
374
a. Real-Mode
Real-Mode adalah sebuah modus di mana prosesor
Intel x86 berjalan seolah-olah dirinya adalah sebuah
prosesor Intel 8086 atau Intel 8088, meski ia merupakan
prosesor Intel 80286atau lebih tinggi. Karenanya, modus
ini juga disebut sebagai modus 8086 (8086 Mode). Dalam
modus ini, prosesor hanya dapat mengeksekusi instruksi
16-bit saja dengan menggunakan register internal yang
berukuran 16-bit, serta hanya dapat mengakses hanya 1024
KB dari memori karena hanya menggunakan 20-
bit jalur bus alamat. Semua program DOS berjalan pada
modus ini. Prosesor yang dirilis setelah 8086,
semacam Intel 80286 juga dapat menjalankan instruksi 16-
bit, tapi jauh lebih cepat dibandingkan 8086. Dengan kata
lain, Intel 80286 benar-benar kompatibel dengan prosesor
Intel 8086 yang didesain sebelumnya, sehingga prosesor
Intel 80286 pun dapat menjalankan program-program 16-
bit yang didesain untuk 8086 (IBM PC), dengan tentunya
kecepatan yang jauh lebih tinggi. Dalam real-mode, tidak
ada proteksi ruang alamat memori, sehingga tidak dapat
melakukan multitasking. Inilah sebabnya, mengapa
program-program DOS bersifat single-tasking. Jika dalam
modus real terdapat multi-tasking, maka kemungkinan
besar antara dua program yang sedang berjalan, terjadi
tabrakan (crash) antara satu dengan lainnya.
375
b. Protected Mode
Modus terproteksi (protected mode) adalah sebuah modus
di mana terdapat proteksi ruang alamat memori yang
ditawarkan oleh mikroprosesor untuk digunakan oleh
sistem operasi. Modus ini datang
dengan mikroprosesor Intel 80286 atau yang lebih tinggi.
Karena memiliki proteksi ruang alamat memori, maka
dalam modus ini sistem operasi dapat melakukan
multitasking. Prosesor Intel 80286 memang dilengkapi
kemampuan masuk ke dalam modus terproteksi, tapi tidak
dapat keluar dari modus tersebut tanpa harus mengalami
reset (warm boot atau cold boot). Kesalahan ini telah
diperbaiki oleh Intel dengan merilis prosesor Intel
80386 yang dapat masuk ke dalam modus terproteksi dan
keluar darinya tanpa harus melakukan reset. Inilah
sebabnya mengapa Windows 95/Windows 98 dilengkapi
dengan modus Restart in MS-DOS Mode, meski
sebenarnya sistem operasi tersebut merupakan sistem
operasi yang berjalan dalam modus terproteksi.
c. Virtual Protected Mode
Virtual Protected Mode juga kadang disebut
sebagai Virtual Real Mode. Dalam modus ini, sebuah
prosesor Intel x86 berjalan dalam modus terproteksi tetapi
mengizinkan aplikasi-aplikasi 16-bit real-mode agar dapat
dijalankan di atas sistem operasi. Microsoft Windows 3.1,
376
yang berjalan di dalam modus Enhanced 386, Windows 95,
serta Windows 98 mendukung modus ini sepenuhnya.
Sistem-sistem operasi dapat menjalankan beberapa
aplikasi 16 bit real mode secara sekaligus, pada Window
MS-DOS Prompt yang berbeda-beda, karena memang
Microsoft mengimplementasikan sebuah lapisan emulasi
yang disebut sebagai DOS Protected Mode Interface
(DPMI). Setiap window MS-DOS Prompt yang dibuat,
aplikasi hanya berjalan dalam real mode, tapi karena
Windows 3.1 (yang berjalan dalam modus Enhanced 386)
dan Windows 95/98 berjalan dalam modus terproteksi,
aplikasi akan menganggap dirinya berjalan pada komputer
yang berbeda, meski pada fisiknya mereka dijalankan pada
modus yang sama. Hal ini mengizinkan aplikasi-aplikasi
16-bit real mode agar dapat dijalankan secara serentak
(multitasking), meski pada awalnya aplikasi 16 bit berjalan
dalam kondisi single-tasking. DPMI digunakan oleh
Windows 3.1 ke atas untuk mengakses extended
memory agar dapat digunakan oleh aplikasi Windows.
DPMI mengizinkan program-program dapat menggunakan
memori yang lebih banyak, meski pada aslinya program
tersebut merupakan program 16 bit. Hal ini populer
dilakukan, khususnya bagi program-program game
komputer DOS, karena game-game tersebut dapat
mengakses lebih dari 1 MB (diberi hak akses oleh sistem
377
operasi). DPMI dapat melakukan switching prosesor dari
real-mode ke protected mode atau sebaliknya.
d. IA32e/AMD64/x64/x86-64 Compatibility Mode
Modus kompatibilitas adalah sebuah modus prosesor
berbasis IA32e (x86-64, AMD64, EM64T atau x64) di
mana prosesor sedang menjalankan instruksi 32 bit (sistem
operasi 32 bit dan aplikasinya yang dijalankan di atas
prosesor x64 atau sistem operasi 64 bit yang menjalankan
aplikasi 32 bit). Dalam modus ini, prosesor tersebut
bekerja seolah-olah dirinya adalah prosesor x86 32 bit,
sehingga hanya dapat mengalamati memori hingga 4 GB
saja.
e. IA32e/x86-64/AMD64/x64/EM64T Long Mode
Modus panjang (long mode) adalah sebuah modus
prosesor 64 bit IA32e (x8 64/AMD64/x64/EM64T)
yang berjalan di atas sistem operasi 64 bit, sehingga
dapat mengeluarkan seluruh kemampuannya, seperti
halnya mengakses memori lebih besar daripada 4 GB
(hingga batasan yang dimiliki oleh prosesor dan
sistem operasi), dan menjalankan aplikasi 64 bit.
Hanya beberapa sistem operasi yang dapat
menjalankan prosesor IA32e dalam modus ini, yakni
Windows XP Professional x64 Edition, Windows
Server 2003, GNU/Linux (versi kernel 2.6 ke atas),
Solaris 10 dan beberapa varian UNIX lainnya.
378
16.4 Mikroprosesor Cyrix 6x86
Mikroprosesor Cyrix 6x86 merupakan pemimpin
mikroprosesor generasi keenam yang berkinerja tinggi dan sesuai
dengan x86. Peningkatan kinerja dicapai dengan penggunaan
teknik rancangan superskalar dan superpipeline. Mikroprosesor
6x86 adalah superskalar yang mengandung dua buah pipeline
terpisah yang mengijinkan multiple instruksi diproses pada
waktu yang sama. Penggunaan teknologi pemrosesan lebih lanjut
dan penambahan jumlah tingkatan pipeline (superpipelining)
mengijinkan mikroprosesor 6x86 untuk mencapai angka clock
100 MHz dan di atasnya. Melalui penggunaan fitur arsitektur
unik, mikroprosesor 6x86 mengurangi banyak ketergantungan
data dan bentrokan sumber daya dan hasilnya kinerja yang
optimal untuk software 16 bit dan 32 bit x86.
Mikroprosesor 6x86 mengandung dua cache: 16 KB dual-
ported unified cache dan 256-byte instruction line cache. Sejak
unified cache bisa menyimpan instruksi dan data dalam berbagai
perbandingan, unified cache menawarkan angka hit yang lebih
tinggi daripada cache data dan instruksi terpisah dengan ukuran
yang sama. Sebuah peningkatan dalam keseluruhan bandwidth
unit cache ke integer dicapai dengan menggantikan unified cache
dengan fully associative instruction line cache kecil dan
berkecepatan tinggi. Instruction line cache yang inklusi
menghindarkan bentrokan eksesif antara pengaksesan kode dan
data dalam unified cache. FPU dalam chip mengijinkan instruksi
floating point untuk dieksekusi secara paralel dengan instruksi
379
integer dan memiliki fitur antarmuka data 64-bit. FPU
menyertakan antrian instruksi berkedalaman empat dan antrian
penyimpanan kedalaman empat untuk memfasilitasi eksekusi
paralel. Mikroprosesor 6x86 beroperasi dari pasokan tegangan
3,3 volt yang menghasilkan konsumsi daya masuk akal dalam
semua frekuensi. Sebagai tambahan, mikroprosesor 6x86
menyertakan mode suspend berdaya rendah, kemampuan
menghentikan clock dan mode pengaturan sistem (System
Management Mode - SMM) untuk aplikasi yang sensitif terhadap
daya.
a. Arsitektur
Mikroprosesor 6x86 terdiri atas lima blok fungsional
utama, yaitu:
Unit Integer (Integer Unit)
Unit Cache (Cache Unit)
Unit Manajemen Memori (MMU: Memory Management
Unit)
Unit Floating Point (FPU: Floating Point Unit)
Unit Antarmuka Bus (BIU: Bus Interface Unit)
Instruksi dieksekusi di pipeline X dan Y dalam Unit Integer dan
juga dalam Unit Floating Point (FPU). Cache Unit menyimpan
instruksi dan data yang sering digunakan saat itu untuk
menyediakan akses yang cepat ke informasi yang dibutuhkan
380
oleh Unit Integer dan FPU. Alamat fisik dihitung oleh Unit
Manajemen Memori dan disalurkan ke Unit Cache dan Unit
Antarmuka Bus (BIU). BIU menyediakan antarmuka antara
papan sistem eksternal dan unit eksekusi internal mikroprosesor.
Unit Integer
Unit Integer (Gambar 16.1) menyediakan eksekusi instruksi
paralel menggunakan dua pipeline integer tujuh tingkat. Masing-
masing pipeline, X dan Y, dapat memproses beberapa instruksi
secara simultan.
Gambar 16.1 Unit Integer
381
Unit Integer terdiri atas tahapan pipeline berikut ini:
Pengambilan Instruksi (IF: Instruction Fetch)
Dekode Instruksi 1 (ID1: Instruction Decode 1)
Dekode Instruksi 2 (ID2: Instruction Decode 2)
Penghitungan Alamat 1 (AC1: Address Calculation 1)
Penghitungan Alamat 2 (AC2: Address Calculation 2)
Eksekusi (EX: Execute)
Tulis Kembali (WB: Write-Back)
Fungsi dekode instruksi dan penghitungan alamat keduanya
dibagi ke dalam tahapan superpipeline. Tahapan Pengambilan
Instruksi (IF), dibagi oleh kedua pipeline X dan Y, mengambil 16
byte kode dari unit cache dalam satu siklus clock. Dalam bagian
ini, aliran kode diperiksa untuk instruksi-instruksi pencabangan
yang dapat mempengaruhi urutan program normal. Jika sebuah
pencabangan unconditional atau conditional dideteksi, logika
prediksi pencabangan dalam tahapan IF menghasilkan sebuah
alamat tujuan terprediksi bagi instruksi. Tahapan IF kemudian
mulai mengambil instruksi pda alamat terprediksi. Fungsi
Dekode Instruksi superpipeline mengandung tahapan ID1 dan
ID2. ID1, berbagi kedua pipeline, mengevaluasi aliran kode yng
disediakan tahapan IF dan menentukan jumlah byte dalam tiap
instruksi. Sampai dua instruksi tiap clock dikirimkan ke tahapan
ID2, satu tiap pipeline. Tahapan ID2 mendekodekan instruksi
dan mengirimkan instruksi terdekodekan ke salah satu pipeline X
382
atau Y untuk pengeksekusian. Pipeline tertentu dipilih,
berdasarkan instruksi mana yang siap dalam tiap pipeline dan
seberapa cepat merekadiharapkan mengalir melalui tahapan
pipeline tersisa. Fungsi Penghitung Alamat mengandung dua
tahapan, AC1 dan AC2. Jika instruksi mengacu pada operand
memori, AC1 menghitung alamat memori linear bagi instruksi.
Tahapan AC2 mengerjakan fungsi-fungsi pengaturan
memori yang diperlukan, akses cache, dan akses file register.
Jika instruksi floating point dideteksi oleh AC2, instruksi dikirim
ke FPU untuk pemrosesan. Tahapan Eksekusi (EX)
mengeksekusi instruksi menggunakan operand yang disediakan
oleh tahapan penghitungan. Tahapan Tulis Kembali (WB) adalah
tahapan IU terakhir. Tahapan WB menyimpan hasil eksekusi ke
dalam file register dalam IU atau ke dalam buffer penulisan
dalam unit kontrol cache.
Pemrosesan Out-of-Order
Jika sebuah eksekusi instruksi lebih cepat daripada instruksi
sebelumnya dalam pipeline yang lain, instruksi mungkin
melengkapi out of order. Semua instruksi diproses dalam order,
sampai tahapan EX. Ketika dalam tahapan EX dan WB, instruksi
mungkin dilengkapi out of order. Jika ada ketergantungan data
antara dua instruksi, interlock hardware perlu memaksa untuk
menjamin eksekusi program yang benar. Bahkan walaupun
instruksi selesai out of order, hasil eksepsi dan penulisan dari
instruksi selalu dikeluarkan dalam order program.
383
Pemilihan Pipeline
Di banyak kasus, instruksi-instruksi diproses dalam salah satu
pipeline dan tanpa batasan pasangan dalam instruksi.
Bagaimanapun, instruksi tertentu diproses hanya dalam pipeline
X:
Instruksi pencabangan
Instruksi floating point
Instruksi eksklusif
Instruksi pencabangan dan floating point mungkin dipasangkan
dengan instruksi kedua dalam pipeline Y. Instruksi Eksklusif
tidak dapat dipasangkan dengan instruksi dalam pipeline Y.
Instruksi tersebut biasanya menghendaki beberapa akses memori.
Walaupun instruksi eksklusif mungkin tidak berpasangan,
hardware dari kedua pipeline digunakan untuk mempercepat
penyelesaian instruksi. Berikut daftar jenis instruksi eksklusif
mikroprosesor 6x86:
Muat segment mode terproteksi
Akses register khusus (Register Control, Debug, dan Test)
Instruksi string
Perkalian dan pembagian
Akses port I/O
Push all (PUSHA) dan pop all (POPA)
Lompat, panggil dan kembali intersegment
384
Solusi Ketergantungan Data
Ketika dua instruksi yang dieksekusi secara paralel memerluka
akses ke data atau register yang sama, salah satu jenis
ketergantungan data berikut mungkin terjadi:
Read-After-Write (RAW)
Write-After-Read (WAR)
Write-After-Write (WAW)
Ketergantungan data biasanya memaksa eksekusi instruksi secara
serial. Bagaimanapun, mikroprosesor 6x86 menerapkan tiga
mekanisme yang mengijinkan eksekusi instruksi paralel yang
mengandung ketergantungan data:
Register Renaming
Data Forwarding
Data Bypassing
Register Renaming
Mikroprosesor 6x86 mengandung 32 register fisik multi guna.
Masing-masing dalam file register bisa ditunjukkan untuk
sementara sebagai sebuah register multi guna yang didefinisikan
oleh arsitektur x86 (EAX, EBX, ECX, EDX, ESI, EDI, EBP, and
ESP). Untuk tiap operasi tuli register sebuah register fisik yang
baru dipilih untuk menyediakan data data ditahan sementara
waktu. Register renaming secara efektik membuang semua
ketergantungan WAW dan WAR. Pemrogram tidak harus
mengerti register renaming; Hal ini benar-benar tidak terlihat
untuk sistem operasi dan software aplikasi.
385
Data Forwarding
Register renaming sendiri tidak membuang ketergantungan
RAW. Mikroprosesor 6x86 menggunakan dua jenis data
forwarding yang berhubungan dengan register renaming untuk
mengurangi ketergantungan RAW:
Operand Forwarding
Result Forwarding
Operand forwarding dibutuhkan ketika yang pertama dalam
pasangan instruksi melakukan pemindahan register ke memory,
dan data dibaca oleh instruksi pertama diperlukan oleh instruksi
kedua. Mikroprosesor 6x86 mengerjakan operasi baca dan
membuat data yang dibaca tersedia bagi kedua instruksi secara
simultan. Result forwarding diambil ketika yang pertama dari
pasangan instruksi melakukan sebuah operasi (seperti ADD) dan
hasil diperlukan oleh instruksi kedua untuk melakukan
pemindahan ke register atau memori. Mikroprosesor 6x86
mengerjakan operasi yang diperlukan dan menyimpan hasil
operasi ke tujuan kedua instruksi secara simultan.
Data Bypassing
Sebagai tambahan ke register renaming dan data forwarding,
mikroprosesor 6x86 menerapkan teknik resolusi ketergantungan
data ketiga yang disebut data bypassing. Data bypassing
mengurangi hukuman kinerja dari ketergantungan data RAW
memori yang tidak dapat dihilangkan oleh data forwarding. Data
386
bypassing diterapkan ketika yang pertama dari pasangan
instruksi menulis ke memori dan instruksi kedua membaca data
yang sama dari memori. Mikroprosesor 6x86 menahan data dari
instruksi pertama dan melewatkannya ke instruksi kedua, dengan
demikian menghilangkan siklus baca memori. Data bypassing
hanya terjadi untuk lokasi memori yang dapat di-cache.
387
BAB 17
ARSITEKTUR KOMPUTER AMD
17.1 Sejarah AMD (Advanced Micro Device)
AMD adalah nama perusahaan yang bergerak di bidang
industri (pabrik) semikonduktor yang bermarkas di Sunnyvale,
California, USA (Amerika Serikat). AMD sendiri kependekan
dari Advanced Micro Device. Dengan nama perusahaan
Advanced Micro Device. Inc. Beberapa produk lain di bidang
komputer adalah microprosesor, chipset motherboard dan IC
(Integrated Circuit). Perusahaan berdiri pada tahun 1969 dengan
pabrik pertama berada di Austin, Texas, Amerika Serikat dan
pabrik kedua berada di Dresden, Jerman yang ditetapkan untuk
memproduksi prosesor Athlon. AMD dikenal sebagai perusahaan
(penghasil prosesor golongan x86) terbesar kedua di dunia
setelah Intel. Pada bulan Februari 1982, AMD menjalin kontrak
dengan perusahaan Intel dan mendapatkan lisensi dari Intel untuk
memproduksi mikroprosesor 8086 dan 8088, hingga akhirnya
AMD juga memproduksi prosesor yang lebih baru yang diberi
nama Am286. Tahun 1986 Intel memutuskan kontrak dengan
388
AMD. Pada tahun 1991, AMD merilis lagi prosesor baru
pengganti Am286, yaitu Am386 yang merupakan clone dari
prosesor Intel 386. Selanjutnya, AMD terus memproduksi
prosesor-prosesor yang lebih baru.
17.2 Soket Prosesor AMD
Soket adalah tempat dudukan prosesor pada motherboard.
Dudukan ini berbentuk segi empat dengan lubang-lubang kecil
tempat tertancapnya kaki-kaki (pin-pin) prosesor yang tersusun
membentuk matriks 2 dimensi. Susunan, letak dan jarak antar
lubang sama persis dengan susunan, letak dan jarak antar pin-pin
pada prosesor. Banyak sekali ditemukan soket-soket pada
motherboard yang diproduksi menggunakan arsitektur PGA (Pin
Grid Array). Contoh soket yang menggunakan arsitektur ini
adalah:
1. Soket 5 yang memiliki 296 pin CPGA (Ceramic Pin Grid
Array). Soket ini digunakan untuk prosesor AMD K5 SSA5.
2. Soket A yang memiliki 462 Pin CPGA. Soket ini biasanya
digunakan oleh prosesor AMD K7 Thunderbird (Athlon
Thunderbird). Sebenarnya prosesornya sendiri memiliki 462
pin, 9 pin di antaranya tertutup (tidak ada), sehingga secara
nyata hanya memiliki 453 pin. Inilah kekhususan dan tipe
soket A (462 Pin CPGA).
3. Soket A (EV6) yang memiliki 462 pin OPGA (Organic Pin
Grid Array). Contoh prosesor AMD yang menggunakan
soket ini adalah Athlon XP.
389
Selain soket PGA, dikenal juga Socket 296 yang berarti dudukan
prosesor tersebut memiliki 296 lubang/ 296 pin. Begitu juga
pengertian untuk soket-soket berarsitektur PGA lainnya.
Dudukan prosesor pada motherboard tidak selalu berbentuk
soket, ada pula yang berbentuk slot (dudukan berbasis slot) yang
bentuknya lebih mirip slot ekspansi dari pada soket. Prosesornya
sendiri dikemas menggunakan dudukan berbentuk slot yang
disebut single edge connection. Contoh prosesor AMD yang
menggunakan dudukan berarsitektur slot ini adalah prosesor
AMD K7 (Athlon Argon, Pluto, Orion dan Thunderbird). Nama
slot-nya adalah slot A.
Tabel 17.1 Jenis Soket dan Prosesor
Jenis Soket/Slot Prosesor yang kompatibel
Prosesor Desktop
Soket 1 Am486
Soket 2 Am486
Soket 3 Am486, Am5x86
Soket 5 AMD K5 (SSA5 dan Godot)
Soket 7 AMD K5 (SSA5 dan Godot), AMD K6,
AMD K6-2, AMD K6-III
Super Soket 7 AMD K6-2, AMD K6-III
Slot A AMD Athlon (Argon, Pluto, Orion,
Thunderbird)
Soket A AMD Athlon (Thunderbird), AMD
390
Athlon XP (Palomino, Thorougbred,
Thorton, Barton), AMD Athlon XP-M,
AMD Athlon MP (Mustang,
Palomino, Thorougbred,
Thorougbred-B, Barton), AMD
Duron (Spitfire, Morgan Applebred),
AMD Sempron (Thorougbred,
Thorton, Barton)
Soket 754 AMD Athlon 64, Sempron, Turion 64
Soket 939 AMD Athlon 64, AMD Athlon 64 FX
hingga 1 GHz, AMD Athlon 64 X2
hingga 4800+, Opteron seri 100
Soket AM2 AMD Athlon 64, AMD Athlon 64 X2,
AMD Athlon 64 FX, Opteron dan
Phenom
Soket AM2+ AMD Athlon 64, AMD Athlon 64 X2,
AMD Athlon 64 FX, Opteron dan
Phenom
Prosesor Mobile
Soket 563 AMD low power mobile Athlon XP-
M
Soket 754 Mobile Athlon 64, Turion 64, mobile
Sempron
Soket S1 Turion 64, Turion 64 X2, mobile
391
Sempron
Prosesor Server
Soket 940 AMD Opteron seri 2xx dan 8xx, AMD
Athlon 64 FX (940 pin contact)
Soket F AMD Opteron seri 2xx dan 8xx, AMD
Athlon 64 FX
Keterangan:
Soket A dikenal juga dengan nama Soket 462
Soket F dikenal juga dengan nama Soket 1207
Pada awalnya, prosesor-prosesor produksi AMD
menggunakan soket Intel, misalnya soket 1, soket 2, soket 3,
soket 5 dan soket 7. Sejak Intel mengeluarkan dudukan prosesor
tipe Slot 1, dan tidak lagi memberikan hak penggunaan slot dan
soket untuk produsen prosesor lainnya. Akibatnya, AMD
mengembangkan slot dan soket sendiri untuk dudukan prosesor
produksinya. Soket yang pertama kali diproduksi oleh AMD
adalah Super Soket 7 dari hasil modifikasi soket 7 keluaran Intel.
Setelah itu, AMD memproduksi dudukan prosesor tipe yang
lebih baru, antara lain Slot A, Soket A, Soket 754, Soket 939,
dan soket AM2. Perkembangan Soket AMD adalah:
1. Soket 1
Soket 1 adalah soket standar dari perusahaan Intel. Soket ini
digunakan untuk tempat dudukan mikroprosesor golongan
x86 buatan Intel sendiri. Prosesor-prosesor buatan Intel yang
392
menggunakan dudukan tipe soket 1 antara lain Intel
80486SX, 80486SX2, Intel 80486DX, 80486DX2 dan Intel
80486DX4 Overdrive. Soket 1 diperkenalkan pada bulan
April 1989.
AMD adalah salah satu perusahaan mikroprosesor yang
juga memanfaatkan soket 1 buatan Intel ini untuk dudukan
prosesornya. Beberapa model prosesor Am486 buatan AMD,
menggunakan dudukan soket 1. Karakteristik soket 1 antara
lain:
Memiliki 169 lubang pin, dengan layout 17 x 17 PGA
(Pin Grid Array)
Saat beroperasi, menggunakan tegangan (voltase) 5 volt.
2. Soket 2
Prosesor keluarga Am486 buatan AMD didesain
menggunakan soket 2 buatan Intel. digunakan untuk Intel
80486SX, 80486SX2, 80486DX, 80486DX2, 80486DX4
Overdrive dan 486 Overdrive. AMD hanyalah salah satu
perusahaan yang ikut memanfaatkan soket 2 buatan Intel
untuk dudukan prosesor produksinya. Soket 2 diperkenalkan
pada bulan Maret 1992. Karakteristik soket 2 antara lain:
Memiliki 238 lubang pin, dengan layout 19 x 19 PGA
(Pin Grid Array)
Saat beroperasi, menggunakan tegangan (voltase) 5 volt.
393
3. Soket 3
Soket 3 adalah soket buatan Intel untuk dudukan prosesor
Intel 80486SX, 80486SX2, 80486DX, 80486DX2,
80486DX4 Overdrive dan 486 Overdrive Pada masa itu,
AMD juga menggunakan soket 3 tersebut untuk dudukan
prosesornya. Prosesor AMD yang menggunakan Soket 3
antara lain beberapa model prosesor Am486 dan prosesor
Am5x86. Soket 3 diperkenalkan oleh Intel pada bulan
Februari 1994. Karakteristik soket 3 antara lain:
Memiliki 237 lubang pin, dengan layout 19 x 19 PGA
(Pin Grid Array)
Saat beroperasi, menggunakan tegangan (voltase) 5 Volt
atau 3,3 volt.
Gambar 17.1 Soket 3
4. Soket 5
Soket 5 juga merupakan buatan Intel. Soket ini untuk
dudukan prosesor Intel Pentium Classic 75 MHz hingga 133
MHz dan Pentium OverDrive. Pada masa itu, AMD juga
394
menggunakannya untuk dudukan prosesor buatannya, yaitu
prosesor AMD K5 (SSA5 dan Godot). Biasanya, prosesor-
prosesor yang menggunakan soket 5 bisa ditempatkan/
dipasangkan juga pada motherboard yang menggunakan
soket 7. Karakteristik soket 5 antara lain:
Memiliki 320 lubang pin SPGA (Saggered Pin Grid
Array)
Saat beroperasi, menggunakan tegangan (voltase) 3,3
volt\
Mendukung FSB 50 MHz, 60 MHz dan 66 MHz
Gambar 17.2 Soket 5
395
5. Soket 7
Soket 7 ini didesain oleh Intel, digunakan untuk dudukan
prosesor desktop Pentium Classic dengan sandi P54 dan
P54C. Soket ini memiliki lubang pin sebanyak 321 pin PGA
(Pin Grid Array). Contohnya adalah Pentium 75 MHz,
Pentium 90 MHz dan Pentium 100 MHz hingga Pentium 200
MHz. Soket 7 juga digunakan juga untuk Pentium MMX
dengan sandi P55. Contohnya adalah Pentium MMX 166
MHz, Pentium MMX 200 MHz dan Pentium MMX 233 MHz.
Soket 7 diproduksi untuk mengganti soket 5. Soket 7 ini juga
dapat digunakan untuk dudukan prosesor-prosesor yang
berbasis soket 5.Dengan begitu, prosesor berbasis soket 5
dapat dipasangkan pada soket 7. Soket 7 ini memiliki pin-pin
ekstra dengan desain dua jalur voltase yang terpisah untuk
prosesor. Motherboard-motherboard tertentu masih
menggunakan desain voltase tunggal walaupun
menggunakan soket 7. Patut dipahami bahwa soket 5
memiliki voltase tunggal. Selain kompatibel dengan prosesor
produk Intel, soket ini juga kompatibel dengan prosesor
AMD maupun Cyrix. AMD pun akhirnya menggunakan
soket 7 untuk dudukan prosesor produk terbarunya saat itu,
yaitu AMD K5 (SSA5 dan Godot), AMD K6, AMD K6-2,
dan AMD K6-III. Sedangkan prosesor-prosesor Cyrix yang
kompatibel dengan soket 7 antara lain Cyrix 6×86 (dan MX)
P120 – P233. Soket 7 bekerja pada kisaran 2,5 volt hingga
396
3,5 volt dengan FSB 66 MHz hingga 83 MHz. Soket ini
diperkenalkan oleh Intel pada bulan Juni 1995.
Gambar 17.3 Soket 7
6. Super Soket 7 (Super 7)
Soket ini dikembangkan dari soket 7. Super soket 7
dilengkapi FSB hingga 100 MHz, mampu mendukung bus
AGP dan paket SPGA. Memiliki kisaran voltase 2.0 -2.4
volt. Jumlah lubang pin (lubang kontak) 321 lubang pin.
Prosesor AMD yang menggunakan dudukan super soket 7,
antara lain AMD K6-2 dan AMD K6-III. Bahkan prosesor
produksi Cyrix juga ada yang menggunakan soket ini.
Prosesor berbasis soket 7 dapat dipasang (kompatibel) pada
motherboard yang menggunakan super soket 7. Tetapi, tidak
berlaku sebaliknya. Prosesor yang berbasis super soket 7
tidak berjalan sempurna bila dipasang pada motherboard
soket 7. Setidaknya, prosesor tidak berjalan dengan
kecepatan penuh (full speed). Sebenarnya, prosesor berbasis
soket 5 bisa dipasang pada motherboard yang menggunakan
super soket 7. Tapi, tidak semua motherboard yang
397
menggunakan super soket 7 mendukung voltase prosesor
berbasis soket 5. AMD merilis prosesor baru dengan
kecepatan bus 100 MHz atau lebih. Mereka segera
mengembangkan soket 7. hasil pengembangannya adalah
semakin besarnya nilai FSB. Semula, soket 7 ber-FSB 66
MHz, dikembangkan menjadi 100 MHz. Hasil
pengembangan dari soket 7 adalah super soket 7 atau Super
7. Soket ini dapat menampung prosesor dengan kecepatan
mencapai 500 MHz. Prosesor AMD K6-3 yang dipasangkan
pada soket ini dapat berjalan dengan kecepatan hampir
menyamai kecepatan prosesor Pentium II dengan slot 1.
Berikutnya, AMD mengeluarkan Slot A yang mirip dengan
Slot 1, tetapi tidak saling kompatibel satu dengan lainnya.
7. Slot A
Slot A adalah dudukan prosesor berbentuk slot pada
motherboard yang digunakan untuk prosesor-prosesor buatan
AMD. Antara lain, AMD Athlon versi awal yang bernama
core Argon, Pluto, Orion dan Thunderbird. Slot A berbentuk
slot tempat tertancapnya card-card pada motherboard,
misalnya sound card, video card, LAN card dan lain-lainnya
dengan letak dudukan terpisah dari kumpulan slot-slot card
tadi. Slot A ini adalah tipe slot SEC (Single Edge Cartridge)
yang memiliki 242 pin, mirip dengan slot 1 (242 pin SECC)
yang digunakan untuk prosesor Pentium II atau Pentium III
buatan Intel. Slot A secara mekanik kompatibel dengan slot
398
1, tetapi secara elektronis tidak kompatibel dengan slot 1
milik prosesor Intel. Prosesor Athlon pengguna slot A itu
sendiri dikemas dalam desain cartridge (575 pin BGA – 242
pin SEC) yang mirip dengan desain cartridge milik Intel
Pentium II atau pentium III. Konektor slot A mampu
mendukung bus yang lebih tinggi dibandingkan soket 7
maupun super soket 7. Motherboard yang menggunakan slot
A, menggunakan „bus protocol‟ EV6 yang desainnya berasal
dari prosesor DEC (Digital Equipment Corporation) Alpha.
Gambar 17.4 Soket A yang terpasang pada Motherboard
8. Soket A (soket 462)
Soket A adalah soket buatan AMD yang digunakan untuk
prosesor AMD Athlon bernama core Thunderbird, AMD
Athlon XP/MP yang bernama core Palomino, Thoroughbred,
399
Barton dan Thorton, AMD Duron bernama core Spitfire,
Morgan dan Applebred serta AMD Sempron nama core
Thorougbred. Soket A diproduksi untuk menggantikan
pendahulunya, yaitu slot A. Sejak soket A diproduksi,
seluruh prosesor AMD didesain memiliki 462 pin SPGA
agar kompatibel dengan soket tersebut.Soket A
diperkenalkan oleh AMD pada bulan Juni 2000. AMD
menjelaskan bahwa sebaiknya massa alat (komponen)
pendingin prosesor (cooler, heatsink dan fan) tidak melebihi
300 gram, sebab jika melebihi ukuran tersebut dapat merusak
prosesor. Akhirnya, produksi soket A mulai dihentikan
(discontinued) sejak AMD beralih menggunakan soket 754,
soket 939 dan AM2, walaupun sebagian vendor diketahui
masih menyediakan motherboard dan prosesor tersebut.
Spesifikasi soket ini antara lain:
Memiliki 462 lubang pin, dengan layout 37×37 SPGA
(Staggered Pin-Grid Array). Sembilan pin di antaranya
tertutup, sehingga tinggal 453 pin yang terpakai.
Didesain untuk prosesor dengan Chip form factors
Ceramic Pin Grid Array (CPGA) maupun Organic Pin
Grid Array (OPGA)
Tipe soket adalah zero insertion force pin grid array (ZIF
PGA)
Mendukung sistem bus DDR (Double Data Rate) yang
berbasis bus EV6 DEC Alpha: 100 MHz (FSB200),
400
133 MHz (FSB266), 166 MHz (FSB333) dan 200 MHz
(FSB400)
Bekerja pada kisaran 1,0 hingga 2,05 volt.
Gambar 17.5 Soket A
9. Soket 754
Soket 754 adalah merupakan soket pertama yang mendukung
prosesor 64 bit buatan AMD, diperkenalkan pada tahun
2003. Awalnya digunakan untuk prosesor desktop Athlon 64
nama core ClawHammer dan Newcastle dan digunakan pula
untuk prosesor Athlon 64 Venice dan prosesor desktop low
end AMD Sempron (nama core Paris dan Palermo), serta
prosesor mobile Athlon 64 dan mobile Sempron. Soket 754
memiliki 754 lubang kontak, digunakan untuk dudukan
prosesor yang memiliki 754 pin tipe OPGA (Organic Pin
Grid Array). Soket ini memberikan dukungan pada kisaran
0,8 - 1,55 volt. Soket 754 mendukung penggunaan interface
memori 64 bit single channel, bus HyperTransport 800 MHz
401
Bi-Directional dan memiliki bandwidth data efektif 9,6
GB/s.
Gambar 17.6 Soket 754
10. Soket 939
Soket 939 dirilis pertama kali pada bulan Juni 2004. Soket
ini mendukung prosesor 64 bit. Soket ini menggantikan
kedudukan soket pendahulunya, yaitu soket 754. Soket 939
memberi dukungan voltase 0,8 - 1,55 volt, bus
HyperTransport 1000 MHz, memiliki 939 lubang kontak
untuk prosesor 939 pin OPGA, baik prosesor single core
maupun dual core. Prosesor Athlon 64 X2 4800+ adalah
prosesor ber-clock speed tinggi yang menggunakan paket
soket 939. Soket 939 mendukung penggunaan memori DDR
SDRAM 128 bit dual channel dengan bandwidth 6,4 GB/s,
mendukung set instruksi 3DNow!, SSE, SSE2 dan SSE3.
Prosesor yang menggunakan soket ini umumnya memiliki L1
Cache 128 KB (64 KB untuk cache data, 64 KB untuk cache
instruksi) dan L2 Cache 512 KB atau 1024 KB. Contoh
prosesor yang menggunakan soket 939 antara lain:
402
Athlon 64 (nama core ClawHammer, Newcastle,
Winchester, Venis, Manchester, San Diego, Toledo),
Athlon 64 FX (nama core ClawHammer, San Diego),
Athlon 64 X2 (nama core Manchester, Toledo),
Sempron (nama core Palermo)
Opteron (nama core Venus, Denmark).
11. Soket 940
Soket 940 memiliki 940 lubang kontak, didesain untuk
prosesor 940 pin tipe PGA, memberi dukungan voltase 0,8
hingga 1,55 volt, serta bus HyperTransport 800 MHz/1000
MHz, kompatibel dengan DDR SDRAM. Soket ini
digunakan untuk prosesor 64 bit. Contoh prosesor yang
menggunakan soket 940 antara lain:
Athlon 64 FX nama core SledgeHammer
Opteron (nama core SledgeHammer, Troy, Athens, Italy
dan Egypt)
(a) (b)
Gambar 17.7 Soket 939 (a) dan 940 (b)
403
Soket 940 ini banyak digunakan untuk prosesor server
Opteron, baik yang berkonfigurasi dual prosesor, empat
prosesor, maupun delapan prosesor. Soket 940 tidak
kompatibel dengan prosesor yang didesain untuk soket AM2,
atau sebaliknya, walaupun keduanya memiliki jumlah pin
atau lubang pin yang sama (sebanyak 940 pin/lubang pin).
Soket 940 didesain untuk penggunaan memori DDR
SDRAM, sedang soket AM2 didesain untuk penggunaan
memori DDR2 SDRAM. Di sisi lain soket 939 tidak dapat
dipasangkan pada motherboard yang didesain soket 940,
meskipun kedua soket ini sama-sama dirancang
menggunakan memori DDR SDRAM. Soket 939
menghendaki unbuffered memory, sedangkan soket 940
menghendaki registered memory. Motherboad yang didesain
menggunakan soket 940 tersedia di pasaran dengan pasangan
chipsets:
AMD‟s own 8000-series
VIA K8T890
nVidia nForce3 Pro
nVidia nForce4 Professional
12. Soket AM2
Nama Soket AM2 berasal dari nama Socket M2. Penggunaan
nama soket M2 dapat mengakibatkan kerancuan dengan
nama prosesor produksi Cyrix, yaitu Cyrix MII. Oleh karena
404
itu nama Soket M2 diganti dengan nama Soket AM2. Soket
AM2 diluncurkan untuk menggantikan soket yang lama
(pendahulunya), yaitu soket 939 dan Soket 754. Soket AM2
dirilis ke pasaran pada tanggal 23 Mei 2006. Prosesor
berbasis soket AM2 tidak kompatibel dengan motherboard
yang menggunakan jenis Soket 940 maupun Soket 939 (PGA
dengan 940 lubang kontak). Prosesor berbasis Soket AM2
kebanyakan diproduksi dengan teknologi manufaktur 90 nm/
65 nanometer dan dilengkapi fitur instruksi SSE3.
Kompatibel dipasangkan dengan jenis memori DDR2-
SDRAM. Prosesor-prosesor AMD yang kompatibel dengan
soket AM2, antara lain:
Prosesor single core: AMD Athlon 64 (Orleans), AMD
Sempron (Manila), Opteron (Santa Ana)
Prosesor dual Core: AMD Athlon 64 X2 Windsor dan
AMD Athlon 64 FX Windsor.
Gambar 17.8 Soket AM2
405
13. Soket AM2+
Soket AM2+ merupakan perkembangan dari soket AM2.
Pada prosesor desktop, soket ini digunakan untuk prosesor
Phenom X3 nama core Toliman dan Phenom X4 bernama
core Agena. Sedangkan prosesor server yang menggunakan
soket AM2+ adalah Opteron Budapest. Soket AM2+
memiliki lubang kontak 940 pin yang sesuai untuk desain pin
prosesor bertipe OPGA (Organik Pin Grid Array) maupun
CPGA (Ceramic Pin Grid Array).Soket AM2+ kompatibel
dengan soket AM2. Prosesor AM2+ dapat dipasangkan dan
bekerja pada motherboard bersoket AM2, tetapi kerja atau
operasi prosesor AM2+ tidak bisa maksimal karena dibatasi
oleh spesifikasi soket AM2 yang masih menggunakan bus
HyperTransport versi 2,0 yang berkecepatan 1 GHz dan
sistem penghematan daya tidak bisa dilakukan karena hanya
memiliki satu „power plane‟ untuk core CPU dan IMC (tidak
terpisah seperti pada AM2+). Terdapat sedikit perbedaan
antara soket AM2 dan AM2+. AM2+ memiliki dua fitur
utama yang tidak dimiliki oleh AM2. Fitur tersebut adalah:
Bus HyperTransport versi 3.0 yang mampu beroperasi
sampai 2,6 GHz.
Power yang terpisah: satu untuk core CPU dan satu lagi
untuk IMC (Integrated Memory Controller). Kondisi
seperti ini dapat memperbaiki sistem penghematan daya.
CPU dalam moda „sleep‟, tetapi IMC masih dalam
406
kondisi aktif. Kondisi seperti dapat terjadi dan dapat
menghemat penggunaan daya (power).
14. Soket F (Soket 1207)
Soket F ini memiliki 1207 pin/ lubang kontak. Soket F ini
didesain untuk mendukung penggunaan jenis memori DDR2-
SDRAM. Terdapat beberapa versi Soket F, antara lain soket
F (LGA 1207) yang biasa digunakan untuk prosesor server
Opteron, dan soket F (1207 FX) untuk dual soket prosesor
dual core Athlon 64 FX. Kedua versi soket ini tidak saling
kompatibel satu dengan lainnya. Soket F (LGA 1207)
berbeda dengan soket F 1207 FX. Masing-masing dirancang
untuk prosesor, chipset dan motherboard yang berbeda.
Gambar 17.9 Soket F 1207
15. Soket 563
Soket 563 adalah tipe soket untuk prosesor mobile versi low
power (TDP 16 Watt -25 Watt) yang dipakai laptop/
notebook. Soket ini digunakan untuk dudukan prosesor
407
mobile Athlon XP-M versi low power yang didesain memiliki
563 pin OuPGA (Organic mikro Pin Grid Array).
16. Soket S1
Soket S1, sampai pertengahan tahun 2008 tergolong soket
generasi terbaru yang dibuat oleh AMD. Sementara ini, soket
tersebut masih digunakan untuk prosesor mobile (komputer
laptop/ notebook). Pertama kali digunakan untuk prosesor
mobile Turion dual core dan diperkenalkan pada tanggal 17
Mei 2006. Soket S1 memiliki 638 lubang pin, menggantikan
posisi soket 754 yang dipakai pada prosesor mobile. Soket
S1 mendukung penggunaan prosesor mobile dual core,
DDR2 SDRAM dual channel, bus 800 MHz HyperTransport
dan fitur teknologi vrtualization. Prosesor mobile AMD yang
menggunakan soket S1 ini akan bersaing di pasaran dengan
prosesor mobile Intel Core 2 produksi perusahaan Intel.
Contoh prosesor yang menggunakan soket S1, antara lain:
Turion 64 nama core Richmon
Turion 64 X2 nama core Taylor, Trinidad, Tyler
Mobile Sempron nama core Keene, Sherman
Gambar 17.10 Soket S1
408
17.3 Prosesor AMD
1. Prosesor AMD K5
Prosesor AMD K5 berbasis arsitektur Am2900 dengan
tambahan decoder x86. desainnya mirip dengan Pentium
Pro (buatan Intel) dengan performa lebih mirip dengan
Pentium Classic (buatan Intel). AMD memperkenalkan
AMD K5 pertama kali pada bulan Maret 1996. Seluruh
chip silikon model prosesor AMD K5, mengandung 4,3
juta transistor. Bila dibandingkan dengan prosesor buatan
Intel, kelemahan prosesor AMD K5 tidak dilengkapi fitur
teknologi MMX. AMD memproduksi dua jenis prosesor
AMD K5, yaitu prosesor yang secara internal disebut
SSA/5 dan 5k86. Keduanya dirilis dengan label K5.
Prosesor SSA/5 diproduksi dengan clock rate (clock speed)
berkisar 75 MHz hingga 100 MHz. Model prosesor yang
telah diproduksi antara lain 5k86 P75, 5k86 P90 dan 5k86
P100, yang kemudian diganti dengan nama K5 PR75, K5
PR90 dan K5 PR75. Sedangkan prosesor 5k86 diproduksi
dengan variasi clock rate berkisar 90 - 133 MHz. AMD
mencantumkan kode nama PR yang mengacu pada istilah
PR rating (performance rating) untuk menggambarkan
kesetaraan prosesornya dengan prosesor Pentium buatan
Intel. Misalnya model prosesor K5 PR75, berarti prosesor
tersebut setara dengan Pentium 75 MHz buatan Intel.
Model prosesor K5 PR90, berarti prosesor tersebut setara
dengan Pentium 90 MHz buatan Intel. Prosesor AMD K5
409
(kelompok 5×86) yang berkecepatan 116 MHz dipasarkan
dengan nama K5 PR166.
a. Kompatibilitas AMD K5 dengan Intel Pentium
Prosesor AMD K5 dapat menggunakan semua
motherboard yang biasa digunakan oleh prosesor Intel
Pentium. Dengan kata lain, dapat menggunakan
motherboard-motherboard yang memiliki dukungan
terhadap prosesor Intel Pentium. Namun, kadang-kadang
motherboard-motherboard tertentu harus di-update lebih
dahulu BIOS-nya agar seluruh fitur-fitur AMD K5 dapat
dieksploitasi. Prosesor AMD K5 beroperasi pada tegangan
3,52 volt, sedangkan beberapa motherboard Pentium
menggunakan tegangan 3,3 volt, sehingga dapat
mengakibatkan kesalahan dalam operasi.
b. Sejarah
Huruf „K‟ pada AMD K5 berasal dari kata ‘kryptonite’.
AMD K5–PR75 adalah clone dari prosesor i80486DX
berkecepatan 133 MHz dengan clock bus 33 MHz. Jika
Intel menggunakan skema Megahertz untuk menyebutkan
kecepatan prosesornya (kecepatan aktual), maka AMD
menggunakan skema performance rating untuk
menyebutkan kecepatan prosesornya. Misalnya, prosesor
AMD K5 PR166 yang memiliki kecepatan 116 MHz,
dikatakan setara dengan Pentium 166 MHz. AMD
memberikan alasan bahwa prosesor AMD K5 PR166 telah
mengalami perbaikan arsitektural sedemikian rupa,
410
sehingga untuk mencapai kinerja setara dengan kecepatan
166 MHz cukup dengan menjalan prosesor dengan
kecepatan (clock rate) 116 MHz. Prosesor AMD K5
dilengkapi fitur-fitur, antara lain:
L1 Cache sebesar 24 KB yang terdiri atas 16 KB untuk
cache instruksi ditambah 8 KB untuk cache data. L2
cache tidak terdapat di dalam prosesor, tetapi
terpasang eksternal di motherboard.
Mempunyai enam unit 5-stage pipelines yang bekerja
secara paralel Mempunyai unit Floating Point
(Floating Point Unit/ FPU) kinerjanya tinggi.
2. AMD K5 corenamed SSA/5
Sebagian prosesor SSA/5 diproduksi dengan teknologi
manufaktur 500 nm dengan luasan core 271 mm2 dan
teknologi manufaktur 350 nm dengan luasan core 161
mm2. Chip silikon prosesor ini mengandung 4,3 juta
transistor. Seluruh model prosesornya memiliki L1 Cache
24 KB (8 KB untuk cache data + 16 KB untuk cache
instruksi) dan menggunakan L2 Cache eksternal. VCore
prosesor 3,52 volt. Prosesor SSA/5 menggunakan soket 5
(296 pin CPGA) dan kompatibel dengan soket 7 (321 pin
CPGA). Model prosesor yang telah diproduksi memiliki
frekuensi (clock speed) berkisar 75 MHz hingga 100 MHz
dengan FSB berkisar 50 MHz hingga 66 MHz. Daftar
prosesor AMD K5 corenamed SSA/5.
411
3. Prosesor AMD K6
Prosesor AMD K6 adalah prosesor (golongan x86) untuk
menggantikan prosesor AMD K5. Desain prosesor AMD
K6 berbasis pada mikroprosesor Nx686 yang dirancang
oleh NexGen‟s, suatu perusahaan yang dibeli oleh AMD.
Dalam pengembangan prosesor K6 ini, AMD dibantu oleh
Vinod Dham, desainer prosesor Intel Pentium. Keluarga
prosesor AMD K6 didesain menggunakan soket 7 atau
super soket 7 tergantung variannya. Seluruhnya memiliki
L1 Cache sebesar 64 KB yang terdiri dari 32 KB untuk
cache data yang bersifat write-back dan 32 KB untuk
cache instruksi. Varian-varian prosesor yang termasuk
keluarga AMD K6 antara lain:
a. AMD K6
Prosesor AMD K6 memiliki 321 pin CPGA (Ceramic Pin
Grid Array), didesain menggunakan soket 7, sehingga
412
motherboard yang biasa digunakan oleh Intel Pentium,
juga kompatibel (dapat digunakan) untuk prosesor AMD
K6. Arsitektur AMD K6 kompatibel sepenuhnya dengan
Intel x86, sehingga prosesor ini dapat menjalankan
program-program yang didesain untuk x86 tanpa harus
melakukan kompilasi ulang. AMD menggandakan L1
Cache internal menjadi 64 KB. Ukuran ini berarti dua kali
lipat kapasitas L1 Cache prosesor Intel Pentium maupun
Intel Pentium II. Banyak kaum komputeris yang
mengatakan bahwa kinerja prosesor AMD K6 setara
dengan Intel Pentium atau Pentium II.
1. AMD K6 Model 6
Prosesor AMD K6 diluncurkan ke pasaran pada bulan
April 1997. Prosesor tersebut berkecepatan 166 MHz
dan 200 MHz, membutuhkan voltase (VCore) 2,9 volt,
diproduksi menggunakan teknologi manufaktur 350
nm. Tak lama kemudian, diluncurkan juga prosesor
berkecepatan 233 MHz yang bekerja pada voltase
(VCore) 3,2/3,3 Volt. Ketiga prosesor tadi digolongkan
(diberi inisial) prosesor AMD K6 Model 6.
413
Gambar 17.11 AMD K6
Prosesor ini memiliki FSB 66 MHz, tidak dilengkapi
L2 Cache internal. L2 Cache-nya terpasang eksternal
(di luar kemasan prosesor). Chip silikonnya berukuran
162 mm2, mengandung (ekivalen) 8,8 juta transistor.
Pertama kali dirilis pada tanggal 2 April 1997.
Tabel 17.3 Daftar Prosesor AMD K6 (Model 6)
2. AMD K6 corenamed Little Foot (Model 7)
Perusahaan AMD melakukan sedikit perbaikan dengan
cara memproduksi prosesor AMD K6 dengan
menggunakan teknologi manufaktur 250 nm, lebih
kecil dari teknologi manufaktur prosesor sebelumnya
414
(350 nm) yang memberikan hasil positif, yaitu
menurunnya konsumsi daya yang dibutuhkan oleh
prosesor. Spesifikasi prosesor yang telah diproduksi,
adalah berkecepatan 200 MHz, 233 MHz, 266 MHz
dan 300 MHz, seluruhnya menggunakan voltase
(VCore) yang lebih rendah, yaitu 2,2 volt dan FSB 66
MHz. Chip silikonnya berukuran 68 mm2 yang
mengandung 8,8 juta transistor. Perbaikan ini diberi
nama AMD K6 Model 7, dengan nama core
(corenamed) Little Foot. Prosesor ini belum memiliki
L2 Cache internal. L2 Cache-nya terpasang eksternal
(di luar kemasan prosesor). Pertama kali dirilis pada
tanggal 6 Januari 1998.
Tabel 17.4 Daftar Prosesor AMD K6 corenamed
Little Foot (Model 7)
415
Gambar 17.12 AMD K6 (Model 7)
b. AMD K6-2
Prosesor AMD K6-2 dilengkapi fitur 3DNow! yang
berfungsi untuk meningkatkan dan memperbaiki
pengolahan/ penampilan grafik atau video dua dimensi,
audio atau suara, serta grafik atau video tiga dimensi untuk
menjalankan game-game tertentu. Prosesor ini diproduksi
menggunakan teknologi manufaktur 250 nm (0.25
mikrometer), tidak dilengkapi L2 Cache internal. L2
Cache-nya terpasang eksternal (di luar kemasan prosesor).
Di dalam chip silikonnya mengandung 9,3 juta transistor,
luas core (chip silikon) 81 mm2, didesain dengan dudukan
prosesor tipe super soket 7, bekerja pada tegangan 2,2 - 2,4
volt. Prosesor yang beredar di pasaran memiliki kecepatan
(frekuensi) berkisar 266 - 550 MHz dengan FSB 66 - 100
MHz. AMD K6-2 adalah pengembangan dari AMD K6
dengan tambahan fitur antara lain:
Kecepatan bus yang lebih tinggi, hingga mencapai 100
MHz.
416
21 instruksi 3DNow! yang berguna untuk
meningkatkan pengolahan video dan audio (grafik dan
suara).
Kecepatan (clock speed) prosesor yang lebih tinggi.
1. AMD K6-2 ( Chomper)
Prosesor AMD K6-2 Chomper diluncurkan pada
tanggal 28 Mei 1998. Seluruh prosesornya bekerja
pada tegangan 2,2 volt dengan TDP 14,7 hingga 19,95
watt. Clock rate prosesor berkisar 233 - 350 MHz.
Daftar prosesor K6-2 corenamed Chomper yang dirilis
oleh AMD disajikan pada Tabel 17.5.
Tabel 17.5 Daftar Prosesor K6-2 corenamed Chomper
Gambar 17.13 AMD K6-2 Chomper
417
2. AMD K6-2 (Chomper Extended CXT)
Prosesor AMD K6-2 Chomper Extended diluncurkan
pada tanggal 16 Nopember 1998. Prosesor ini bekerja
pada tegangan 2,2 – 2,4 volt dengan TDP 16,90 –
29,60 watt. Clock rate prosesor berkisar 300 - 550
MHz. AMD K6-2 Chomper Extended juga digunakan
untuk PC laptop/ notebook. Prosesor versi mobile
tersebut memiliki VCore yang lebih rendah, yaitu 2,0
volt.
Tabel 17.6 Daftar Prosesor AMD K6-2 corenamed
Chomper Extended (CXT)
c. AMD K6-III
Prosesor AMD K6-III diberi nama core Sharptooth,
memiliki 321 pin CPGA (Ceramic Pin Grid Array),
didesain menggunakan soket 7 atau super soket 7, VCore
2,2 - 2,4 volt, dilengkapi fitur teknologi MMX dan
3DNow!, clock rate 400 MHz dan 500 MHz, diproduksi
menggunakan teknologi manufaktur 250 nm, dirilis pada
418
tanggal 22 Februari 1999. Core atau chip silikon prosesor
ini mengandung 21,4 juta transistor dengan luasan core
118 mm2.. Prosesor ini merupakan prosesor terakhir yang
menggunakan soket 7, AMD K6-III dikembangkan dari
prosesor AMD K6-2 dengan mengintegrasikan L2 Cache
sebesar 256 KB ke dalam prosesor. L2 Cache tersebut
bekerja dengan kecepatan penuh, yaitu sama dengan
kecepatan prosesornya (full clock speed) yang mendukung
L3 Cache eksternal (hingga 2 MB) pada motherboard.
Tabel 17.7 Daftar Prosesor AMD K6-III
Tabel 17.8 Persaingan AMD K6-III dengan Prosesor
Buatan Intel
419
Intel merilis Pentium III Coppermine sebagai pengganti
Pentium III Katmai, Pentium III Coppermine dilengkapi
L2 Cache on-die (internal, bersatu dengan prosesor) dan
memiliki performa yang seimbang dengan Athlon.
Prosesor AMD K6-III+ dan AMD K6-2+ merupakan hasil
revisi dari keluarga prosesor AMD K6 atau dapat
dikatakan keduanya adalah versi revisi dari AMD K6.
Prosesor AMD K6-2+ memiliki L2 Cache sebesar 128 KB,
sedangkan prosesor AMD K6-III+ memiliki L2 Cache on-
die sebesar 256 KB full speed. Keduanya diproduksi
menggunakan teknologi manufaktur 180 nm dan
merupakan prosesor pertama yang dilengkapi fitur
teknologi PowerNow!, sebuah teknologi buatan AMD
untuk menghemat energi yang digunakan prosesor dengan
cara menurunkan tegangan (VCore) dan frekuensi (clock
speed) prosesor, sehingga prosesor tersebut menjadi
prosesor yang hemat energi.
Kelemahan utama prosesor AMD K6-III+ dan AMD K6-
2+ dibandingkan prosesor Pentium III Coppermine terletak
pada clock speednya. Penggunaan arsitektur K6, hanya
memungkinkan peningkatan clock speed AMD K6-III+
terbatas pada 550 MHz, dan AMD K6-2+ terbatas hingga
570 MHz. Sedangkan prosesor Intel Pentium III
Coppermine, clock speed-nya dapat mencapai 1,13 GHz.
420
4. Prosesor AMD K7
Athlon adalah mikroprosesor untuk PC yang termasuk
golongan prosesor x86 generasi ketujuh yang dibangun
berdasarkan mikroarsitektur AMD K7. Prosesor-prosesor
AMD yang termasuk dalam jajaran AMD K7 antara lain:
1. AMD Athlon
Prosesor Athlon yang diproduksi oleh AMD antara lain
prosesor Athlon dengan corenamed Argon, Pluto/Orion,
dan Thunderbird. Prosesor Argon dan Pluto/Orion, sering
disebut dengan istilah Athlon Classic. Prosesor Argon
diproduksi menggunakan teknologi manufaktur 250 nm,
sedangkan prosesor Pluto/Orion diproduksi menggunakan
teknologi manufaktur 180 nm. Prosesor Athlon Classic ini
dirilis pertama kali ke pasaran pada tahun 1999,
menggunakan dudukan prosesor tipe slot A (575 pin BGA
– 242 pin SEC) yang wujudnya mirip dengan slot 1 (242-
pin SECC) milik prosesor Pentium II /III. Slot A dan slot 1
ini tidak saling kompatibel karena penempatan posisi pin-
nya berbeda. Prosesor Athlon Classic memiliki L1 Cache
sebesar 128 KB yang terdiri atas 64 KB untuk data cache
dan 64 KB untuk instruction cache. Kapasitas L1 cache
sebesar 128 KB ini menjadikan Athlon Classic memegang
rekor baru, yaitu prosesor pertama dari golongan x86 yang
memiliki L1 Cache paling besar. Prosesor Athlon Classic
memiliki L2 Cache 512 KB, dan FSB 200 MT/s (100
MHz, double pump). L2 Cache tersebut merupakan L2
421
Cache eksternal, artinya L2 Cache tadi tidak berada di
dalam chip prosesor tetapi diletakkan pada cartridge di
dekat chip prosesor. Kecepatan L2 Cache lebih rendah
dengan kecepatan prosesornya. Semua prosesor Athlon
Classic memiliki fitur teknologi MMX dan 3Dnow!
Instruksi 3Dnow! yang dimasukkan ke dalam prosesor
Athlon Classic telah diperbaiki dan diperluas dengan 24
instruksi tambahan untuk meningkatkan kalkulasi
aritmatika integer. Teknologi 3Dnow! Berfungsi untuk
menjalankan aplikasi 3D berkecepatan tinggi. Arsitektur
AMD Athlon mirip dengan DEC (Digital Equipment
Corporation) Alpha 21164 dan 21264. AMD Athlon
menggunakan bus DEC EV6. Beberapa desain yang
diambil dari DEC EV6 antara lain tiga integer pipeline 10-
stage dan tiga floating point pipeline 9 stage, ditambah tiga
address generator yang beroperasi secara independen
dengan unit eksekusi lainnya. Arsitektur sistem bus AMD
Athlon diberi nama S2K, merupakan turunan langsung dari
sistem bus prosesor DEC EV6. Arsitektur sistem bus ini
menggunakan teknologi double data rate (DDR). Artinya,
jika FSB Athlon sebesar 100 MHz, maka FSB tersebut
sebenarnya mampu menstransfer data sebesar dua kali
lipatnya, yaitu 200 MT/s, setara dengan FSB 200 MHz
single data rate (SDR). Sementara itu, Pentium III
produksi Intel masih menggunakan sistem bus SDR (single
data rate), jika FSB prosesor Intel 100 MHz maka FSB
422
tersebut mampu menstransfer 100 MT/s. Prosesor AMD
Athlon dapat dijadikan untuk sistem multiprosesor.
Dengan dukungan chipset AMD 750MP (iron gate) dan
AMD 760MPX. AMD merilis dua jenis prosesor Athlon,
yaitu:
AMD Athlon corenamed Argon (K7Argon)
Gambar 17.14 K7 Argon
Prosesor ini diproduksi menggunakan teknologi
manufaktur 250 nm. Chip silikon K7 Argon berukuran
184 mm2 yang mengandung 22 juta transistor.
Menggunakan dudukan prosesor tipe slot A (EV6).
Prosesor K7 Argon yang telah diproduksi berkecepatan
(clock speed) 500 hingga 700 MHz.
Tabel 17.9 Daftar Prosesor Athlon
Corenamed Argon
Nama Frekuensi
(MHz)
VCore
(volt)
Power
(watt) Dirilis tanggal
Athlo 500 1,6 42 Agustus 1999
423
n 500
Athlo
n 550 550 1,6 46
Agustus 1999
Athlo
n 600 600 1,6 50
Agustus 1999
Athlo
n 650 650 1,6 54
Agustus 1999
Athlo
n 700 700 1,6 50
Oktober 1999
AMD Athlon corenamed Pluto(K75 Pluto)
Gambar 17.15 K7 Pluto
Prosesor ini diproduksi menggunakan teknologi
manufaktur 180 nm (lebih kecil dibandingkan prosesor
K7 Argon). Chip silikon K75 Pluto berukuran 102
mm2 yang mengandung 22 juta transistor.
Menggunakan dudukan prosesor tipe slot A (EV6).
Prosesor K75 Pluto yang telah diproduksi
berkecepatan (clock speed) 550 - 950 MHz. Prosesor
424
ini diproduksi dan dirilis beberapa bulan kemudian
setelah prosesor K7 Argon.
Tabel 17.10 Daftar Prosesor Athlon Corenamed Pluto
Nama Frekuensi
(MHz)
VCore
(volt)
Power
(watt)
Dirilis
tanggal
Athlon
550 550 1,6 31
Januari
2000
Athlon
600 600 1,6 34
Januari
2000
Athlon
650 650 1,6 36
Januari
2000
Athlon
700 700 1,6 39
Januari
2000
Athlon
750 750 1,6 40
November
1999
Athlon
800 800 1,7 48
Januari
2000
Athlon
850 850 1,7 50
Februari
2000
Athlon
900 900 1,8 60
Februari
2000
Athlon
950 950 1,8 62
Maret
2000
425
AMD Athlon corenamed Orion (K75 Orion)
Gambar 17.16 K7 Orion
Prosesor ini diproduksi dengan teknologi manufaktur
yang sama dengan prosesor K75 Pluto, yaitu 180 nm.
Chip silikon K75 Orion berukuran 102 mm2 yang
mengandung 22 juta transistor. Menggunakan dudukan
prosesor tipe slot A (EV6). Prosesor K75 Orion
membutuhkan voltase dan daya yang lebih besar
dibandingkan kedua prosesor pendahulunya. Voltase
yang dibutuhkan adalah 1,8 volt dengan daya 65 watt.
Tabel 17.11 Daftar Prosesor Athlon Corenamed Orion
Nama Frekuensi
(MHz)
VCore
(volt)
Power
(watt)
Dirilis
tanggal
Athlon
1000 1000 1,8 65 Maret 2000
426
AMD Athlon corenamed Thunderbird (K7
Thunderbird)
Prosesor ini ada yang dikemas menggunakan dudukan
prosesor tipe slot A dan soket A. Keduanya diproduksi
dengan teknologi manufaktur 180 nm, ukuran chip
silikon sebesar120 mm2 yang mengandung 37 juta
transistor. Prosesor ini memiliki L1 Cache 128 KB dan
L2 Cache 256 KB. Kecepatan L2 Cache sama dengan
kecepatan prosesornya. Hal ini yang membedakan
prosesor AMD K7 Thunderbird dengan prosesor
Athlon pendahulunya yang memiliki L2 Cache lebih
besar, yaitu 512 KB namun berjalan dengan kecepatan
50% hingga 30% dari kecepatan prosesornya. VCore
prosesor AMD K7 Thunderbird sebesar 1,7 – 1,75 volt,
baik versi yang menggunakan slot A maupun Soket A.
Keduanya juga didukung teknologi MMX dan
3DNow!. Perbedaan kedua versi prosesor ini (AMD
K7 Thunderbird tipe slot A dan soket A). Prosesor
versi slot A, temperatur maksimalnya 70 0C,
sedangkan versi soket A, temperatur maksimalnya
berkisar 90 0C - 95
0C.
AMD Athlon corenamed Thunderbird (slot A)
Prosesor AMD K7 Thunderbird menggunakan slot A.
Memiliki FSB sebesar 200 MT/s (100 MHz double
427
pumped). Prosesor ini berkecepatan 650 - 1000 MHz.
Dirilis pertama kali pada tanggal 5 Juni 2000.
Gambar 17.17 AMD K7 Thunderbird slot A
Tabel 17.12 Daftar Prosesor AMD Athlon Corenamed
Thunderbird (Slot A)
Nama Frekuensi
(MHz) VCore (volt)
Power
(watt)
Dirilis
tanggal
Athlon
650 650 1,7 36,1
Juni
2000
Athlon
700 700 1,7 38,3
Juni
2000
Athlon
750 750 1,7 40,4
Juni
2000
Athlon
800 800 1,7 42,6
Juni
2000
Athlon
850 850 1,7 44,8
Juni
2000
428
Athlon
900 900 1,75 49,7
Juni
2000
Athlon
950 950 1,75 52
Juni
2000
Athlon
1000 1000 1,75 54,3
Juni
2000
AMD Athlon corenamed Thunderbird (soket A)
Prosesor AMD K7 Thunderbird versi ini (soket A)
tidak dikemas dalam cartridge. Prosesor ini memiliki
462 pin, 9 pin di antaranya tertutup (tidak ada),
sehingga secara nyata hanya memiliki 453 pin. Inilah
kekhususan dan tipe soket A (462 Pin CPGA).
Terdapat dua model prosesor AMD K7 Thunderbird
soket A yang diproduksi oleh AMD, yaitu model B
yang memiliki FSB 200 MHz (100 MHz, double
pumped) dan model C yang memiliki FSB 266 MHz
(133 MHz, double pumped).
Gambar 17.18 AMD K7 Thunderbird Soket A
429
Tabel 17.13 Daftar Prosesor AMD Athlon Corenamed
Thunderbird (Soket A)
2. AMD Athlon XP
Tahun 2001, perusahaan AMD merilis AMD Athlon XP.
Prosesor ini dilengkapi fitur MMX, 3DNow! dan SSE
(Streaming SIMD Extentions atau Streaming „Single
Instruction, Multiple Data’ Extensions). Seluruh
prosesornya menggunakan soket A (EV6) yang memiliki
462 pin OPGA. Front Side Bus yang dimiliki juga semakin
besar, yakni 266 MT/s (133 MHz double pumped), 333
430
MT/s (166 MHz, double pumped), atau 400 MT/s (200
MHz, double pumped), tergantung variannya. Prosesor
Athlon XP memiliki L1 Cache sebesar 128 (64 KB untuk
cache data dan 64 KB cache untuk cache instruksi).
Sedangkan L2 Cache-nya 256 KB atau 512 KB. L2 Cache
ini berkecepatan sama dengan kecepatan prosesornya.
AMD Athlon XP corenamed Palomino
Prosesor AMD K7 Palomino diproduksi
menggunakan teknologi manufaktur 180 nm, dengan
ukuran (luas) chip silikon 130 mm2
yang mengandung
ekivalen 37,5 juta transistor. Memiliki L2 Cache 256
KB dengan FSB 266 MT/s (133 MHz, double
pumped). Diproduksi dengan clock rate berkisar 1333
MHz hingga 1733 MHz. Dirilis pertama kali pada
tahun 2001.
431
Gambar 17.19 AMD K7 Palamino
Tabel 17.14 Daftar Prosesor AMD Athlon Corenamed
Palamino
AMD Athlon XP corenamed Thoroughbred
Prosesor Athlon XP Thoroughbred diproduksi tanggal
10 Juni 2002. VCore prosesor Athlon XP
Thoroughbred berkisar 1,5 – 1,65 volt. Prosesornya ini
masih menggunakan FSB 266 MT/s (133 MHz, double
432
pumped) dan menggunakan 333 MT/s (166 MHz,
double pumped). Prosesor AMD K7 Thoroughbred
menggunakan teknologi manufaktur 130 nm, dengan
ukuran (luas) chip silikon 85 mm2
yang mengandung
ekivalen 37,2 juta transistor. Sebagian prosesornya
memiliki luas chip 81 mm2 dengan transistor yang
sama, yaitu 37.2 juta transistor. Memiliki L2 Cache
256 KB dengan clock rate 1400 - 2250 MHz.
Gambar 17.20 AMD Athlon XP Corenamed
Thoroughbred
433
Tabel 17.15 Daftar Prosesor AMD Athlon XP Corenamed
Thoroughbred
Nama Frek.
(MHz)
FSB
(MT/s) OEM
VCore
(volt)
Power
(watt)
Dirilis
tanggal
Athlon
XP1600+ 1400 266
AXDA1600DUT3C 1,6 48,5
Desember
2002
Athlon
XP1700+ 1466
266
AXDA1700DLT3C 1,5
49,4
Juni 2002
AXDA1700DUT3C 1,6
Desember
2002
Athlon
XP1800+ 1533 266
AXDA1800DLT3C 1,5
51,0
Juni 2002
AXDA1800DUT3C 1,6
Desember
2002
Athlon
XP1900+ 1600
266
AXDA1900DLT3C 1,5
52,5
Juni 2002
AXDA1900DUT3C 1,6
Desember
2002
Athlon
XP2000+ 1666
266
AXDA2000DUT3C 1,6
60,3
Juni 2002
AXDA2000DKT3C 1,65
Desember
2002
Athlon
XP2100+ 1733 266
AXDA2100DUT3C 1,6 62,1 Juni 2002
Athlon
XP2200+ 1800 266
AXDA2200DKV3C 1,65 67,9 Juni 2002
AXDA2200DUV3C 1,6 62,8
Desember
2002
Athlon
XP2400+ 2000
266 AXDA2400DKV3C 1,65
68,3 Agustus 2002
Athlon
XP2600+ 2133 266
AXDA2600DKV3C 1,65 68,3 Agustus 2002
Athlon
XP2600+ 2083 333
AXDA2600DKV3D 1,65 68,3
Desember
2002
434
Athlon
XP2700+ 2166 333
AXDA2700DKV3D 1,65 68,3
Desember
2002
Athlon
XP2800+ 2250 333
AXDA2800DKV3D 1,65 74,3
Desember
2002
AMD Athlon XP corenamed Thorton
Prosesor Athlon XP Thorton di keluarkan pada bulan
September 2003. Prosesor ini memiliki L2 Cache 256
KB berkecepatan sama dengan kecepatan prosesornya,
dan VCore 1,5 – 1,65 volt dengan FSB 266 MT/detik
dan 333 MT/detik dan 400 MT/detik (200 MT/detik,
double pumped). Prosesor AMD K7 Thorton
diproduksi menggunakan teknologi manufaktur 130
nm, dengan ukuran (luas) chip silikon 101 mm2
yang
ekivalen dengan 54,3 juta transistor dengan clock rate
1666 - 2200 MHz.
Tabel 17.16 Daftar Prosesor AMD Athlon XP Corenamed
Thorton
Nama Frek.
(MHz)
FSB
(MT/s) OEM
VCore
(volt)
Power
(watt)
Dirilis
tanggal
Athlon
XP2000+ 1666 266
AXDA2000DUT3C 1,6 60,3
September
2003 AXDA2000DLT3C 1,5
Athlon
XP2200+ 1800 266
AXDA2200DUV3C 1,6 62,8
September
2003 AXDA2200DLV3C 1,5
Athlon
XP2400+ 2000 266
AXDA2400DKV3C 1,65 68,3
September
2003
435
Athlon
XP2600+ 2133 266
AXDA2600DKV3C 1,65 68,3 September
2003
Athlon
XP2600+ 2083 333
AXDA2600DKV3D 1,65 68,3 September
2003
Athlon
XP3100+ 2200 400
AXDA3100DKV3E 1,65 68,3 Desember
2003
AMD Athlon XP corenamed Barton
Prosesor Athlon XP (Barton) dikeluarkan ke pasaran
pada tanggal 10 Februari 2003). Prosesor ini
diproduksi dengan teknologi manufaktur 130 nm,
luasan core 101 mm2, mengandung (ekivalen dengan)
54,3 juta transistor, dibangun dengan kisaran FSB 266
MT/s (133 MHz, double pumped), 333 MT/s (166
MHz, double pumped) dan 400 MT/s (200 MHz,
double pumped). Clock speed prosesor berkisar 1833 -
2333 MHz. VCore prosesor Barton 1,65 volt, juga tak
jauh berbeda dengan prosesor Thorton. Perbedaan
mencolok terletak pada besarnya L2 Cache. Prosesor
Barton memiliki L2 Cache 512 KB, dua kali lebih
besar dibandingkan prosesor Thorton yang memiliki
L2 Cache sebesar 216 KB. L2 Cache tersebut
berkecepatan penuh, artinya berkecepatan sama
dengan prosesornya.
436
Gambar 17.21 AMD Athlon K7 Thoroughbred
Tabel 17.17 Daftar Prosesor AMD Athlon XP
Corenamed Barton
Nama Frek.
(MHz)
FSB
(MT/s
)
OEM VCore
(volt)
Power
(watt) Dirilis tanggal
Athlon
XP2500+ 1867 266 AXDA2500DKV4C 1,65 68,3
Desember
2004
Athlon
XP2500+ 1833 333 AXDA2500DKV4D 1,65 68,3
Februari
2003
Athlon
XP2600+
2000 266 AXDA2600DKV4C 1,65 68,3
Desember
2004
Athlon
XP2600+
1917 333 AXDA2600DKV4D 1,65 68,3
Februari
2003
Athlon
XP2800+
2083 266 AXDA2800DKV4C 1,65 68,3
Desember
2004
Athlon
XP2800+
2083 333 AXDA2800DKV4D 1,65 68,3
Desember
2004
Athlon 2000 400 AXDA2900DKV4E 1,65 68,3 Desember
437
XP2900+ 2004
Athlon
XP3000+
2166 333 AXDA3000DKV4D 1,65 68,3
Februari
2003
Athlon
XP3000+
2100 400 AXDA3000DKV4E 1,65 68,3
Mei
2003
Athlon
XP3200+
2333 333 AXDA3200DKV4D 1,65 76,8
Desembe
r 2004
Athlon
XP3200+
2200 400 AXDA3200DKV4E 1,65 76,8
Mei
2003
5. Prosesor AMD K8
Athlon 64 adalah sebuah seri prosesor generasi ke-8 yang
dibuat Athlon XP.Sebenarnya terdapat tiga kelompok
prosesor kelas desktop yang menyandang nama Athlon.
Ketiga kelompok prosesor tersebut adalah:
1. AMD Athlon ‘Classic’ dan Thunderbird (berbasis
mikroarsitektur AMD K7)
2. AMD Athlon XP ( berbasis mikroarsitektur AMD K7 )
3. AMD Athlon 64 ( berbasis mikroarsitektur AMD K8 )
yang terdiri atas:
a. Prosesor single core : Athlon 64, Athlon 64 FX
b. Prosesor dual core: Athlon 64 X2, Athlon X2 dan
Athlon 64 FX
Prosesor AMD Athlon 64 diproduksi dengan target
pemasaran utama adalah para ‘enthusiast’ (penggemar)
komputer dan para gamers. Sedangkan Intel
memproduksi Pentium 4 (single core) dan Pentium D
438
(dual core) untuk kalangan umum dan Pentium 4
Extreme Edition (single core) dan Pentium Extreme
Edition (dual core) yang dipasarkan untuk kaum
‘enthusiast’ (penggemar) komputer dan para gamers.
Mikroarsitektur dan Fitur prosesor Athlon 64
Athlon 64 adalah prosesor kedua dengan arsitektur 64 bit
(AMD64) setelah Opteron yang merupakan prosesor kelas
server. Meskipun tergolong prosesor 64 bit, prosesor Athlon 64
tetap kompatibel dengan instruksi x86 32 bit maupun 16 bit. K8
punya tambahan fitur-fitur baru seperti:
AMD64 (pengembangan 64 bit ke dalam set instruksi x86)
Penambahan memory controller ke dalam chip („memory
controller‟ internal, integrated, atau on die) dengan clock
rate sama dengan clock rate prosesornya yang berarti sinyal
elektris dapat diangkut melalui jarak yang lebih pendek
dibandingkan dengan interface northbridge dan memperkecil
latency saat mengakses memori utama.
Implementasi HyperTransport (penerapan performansi tinggi
koneksi „point-to-point‟ yang merupakan bagian dari
arsitektur „Direct Connect‟)
Peningkatan kapasitas L2 Cache hingga 1 MB. Kecuali
prosesor Athlon 64 3300+ Newcastle, seluruh prosesor
keluarga Athlon 64 memiliki L2 Cache 512 KB atau 1 MB.
439
Penambahan fitur SSE2 (Streaming SIMD Extention 2) yang
tak lama kemudian ditambahkan pula SSE3 (Streaming
SIMD Extention 3).
Mikroarsitektur K8 disebut juga dengan nama Hammer (nama
kode internal AMD) atau Sledge Hammer. Prosesor Athlon 64
ditargetkan untuk pengguna PC (Personal Computer) kelas
desktop dan mobile. Pertama kali dirilis pada tanggal 23
September 2003. Prosesor-prosesor kelas desktop dan mobile
yang termasuk keluarga Athlon 64 antara lain:
Tabel 17.18 Prosesor Kelas Desktop
Prosesor keluarga AMD 64 versi desktop, baik yang single core/
dual core dilengkapi fitur-fitur teknologi MMX, SSE, SSE2,
Enhanced 3DNow!, NX bit, AMD64 (implementasi AMD‟s
X86-64), dan Cool‟n'Quiet kecuali prosesor Athlon 64 FX
SledgeHammer. Prosesor ini dilengkapi fitur-fitur tadi kecuali
fitur Cool‟n'Quiet. Bahkan sebagian varian prosesor Athlon 64,
juga ditambah fitur seperti SSE3 dan AMD Virtualization. Nxbit
(No Execute bit) atau Enhanced Virus Protection. Fitur ini
berguna untuk memperbaiki proteksi (perlindungan) dari
440
gangguan program pengganggu (malware) yang mencoba
mengambil alih dan mengontrol sistem. Fitur Cool‟n‟Quiet mirip
dengan fitur SpeedStep pada prosesor Intel.Keduanya merupakan
teknologi untuk menurunkan kecepatan (clock speed) kerja
prosesor yang bertujuan untuk mengurangi konsumsi daya listrik
dan mengurangi panas yang ditimbulkan oleh prosesor. Apabila
pengguna komputer sedang bekerja menggunakan program
aplikasi ringan dan prosesor tak terbebani oleh tugas-tugas kerja
yang lain, maka clock speed dan voltase yang digunakan prosesor
akan menurun, besar daya yang dikonsumsi oleh prosesor juga
menurun. Pernah diinformasikan bahwa prosesor yang memiliki
TDP maksimum 89 watt dapat menurun sampai 32 watt
(stepping C0) sedangkan clock speed menurun sampai 800 MHz
atau TDP menurun sampai 22 watt (stepping CG) dan clock
speed menurun sampai 1000 MHz.
Soket untuk prosesor keluarga Athlon 64
Sebagian prosesor keluarga AMD 64 didesain menggunakan
soket 754, sebagian yang lain didesain menggunakan soket 939,
soket 940, soket AM2 dan Soket F (1207FX).
a. Soket 754
Pada awalnya, prosesor Athlon 64 menggunakan soket 754
pada bulan September 2003. Pada periode berikutnya,
soket ini digunakan prosesor Athlon 64 kelas ekonomi.
Prosesor Athlon 64 yang menggunakan soket 754 antara
lain Athlon 64 nama core ClawHammer, Newcastle dan
441
Venice. Soket 754 mendukung interface memori 64 bit
Singgle Channel.
b. Soket 939
AMD mulai meninggalkan soket 754 dan menggunakan
soket 939 untuk prosesor Athlon 64 yang lebih baru
dengan performansi yang lebih bagus pada bulan Juni
2004. Soket 939 mendukung interface memori 128 bit
Dual Channel. Contoh prosesor yang menggunakan soket
939 adalah:
Single core:
Athlon 64 nama core Winchester, Manchester, San
Diego, Toledo.
Athlon 64 FX nama core ClawHammer, San Diego.
Dual core:
Athlon 64 X2 nama core Manchester, Toledo.
Athlon 64 FX nama core Toledo.
c. Soket 940
AMD juga mendesain soket 940 untuk dudukan prosesor
Athlon 64 produksinya. Contoh prosesor yang
menggunaan soket 940 adalah prosesor single core Athlon
64 FX nama core SledgeHammer.
d. Soket AM2
Soket AM2 memiliki 940 lubang pin, namun tidak
kompatibel dengan soket 940. Kedua soket tersebut
berbeda. Prosesor dengan soket AM2 mendukung
penggunaan DDR2 SDRAM, bahkan dapat dikatakan
442
merupakan soket pertama AMD yang memberi dukungan
terhadap penggunaan DDR2 SDRAM. AMD merilis soket
AM2 pada bulan Mei 2006. Pada saat yang bersamaan
dengan penggunaan soket AM2, AMD juga menambahkan
fitur baru ke dalam prosesornya. Fitur tersebut adalah
teknologi AMD Virtualization. Contoh prosesor yang
menggunakan soket AM2 adalah:
Single core: Athlon 64 nama core Orleans, Lima.
Dual core: Athlon 64 X2 nama core Windsor, Brisbane.
Athlon 64 FX nama core Windsor stepping F2.
e. Soket F (1207FX)
Soket F 1207 FX, dirancang untuk dual soket prosesor
dual core Athlon 64 FX. Soket ini tidak kompatibel dengan
Soket F. Soket F berbeda dengan soket F 1207 FX.
Masing-masing dirancang untuk prosesor, chipset dan
motherboard yang berbeda. Soket F 1207 FX dirilis pada
bulan November 2006. Contoh prosesor yang
menggunakan soket F 1207 FX adalah Athlon 64 FX
Windsor stepping F3. Prosesor Athlon 64 dilengkapi
dengan IHS (Integated Heat Spreader) yang berguna
untuk melindungi core (inti atau chip silikon) dari
kemungkinan kerusakan akibat kesalahan/kecerobohan
teknisi atau kecerobohan pengguna maupun akibat kontak
yang tidak sempurna dengan alat pendingin (heatsink,
cooling fan ataupun sejenisnya).
443
6. Seri 9
AMD menarik kembali (membatalkan) penggunaan
mikroarsitektur K9 sebagai basis untuk produksi
prosesornya. Tampaknya terdapat masalah pada
mikroarsitektur K9 ini. Hanya sedikit bagian dari desain
K9 ini yang bisa „diselamatkan‟ yang kemudian dipakai
kembali untuk produksi prosesor berbasis
mikroarsitektur K8 revisi F/G.
7. Prosesor AMD K10
Phenom adalah nama seri prosesor buatan AMD generasi
kesepuluh. Prosesor ini termasuk prosesor kelas desktop
berbasis mikroarsitektur AMD K10. Mikroarsitektur K10
dilengkapi fitur L3 Cache sebesar 2048 KB yang berlaku
„share‟, 128 bit floating-point, AMD-V, HyperTransport
3.0, SSE4a
Mikroarsitektur ini masih mendukung penggunaan
DDR2 SDRAM. Lebih lengkapnya, fitur-fitur teknologi
yang terdapat pada prosesor Phenom adalah MMX, SSE,
SSE2, SSE3, SSE4a, Enhanced DNow!, NX bit, AMD64
dan Cool‟n‟Quiet. Varian-varian prosesor Phenom antara
lain:
Gambar 17.22 AMD Phenom 64
444
1. Prosesor Phenom X3 nama core Toliman
Prosesor ini dibangun berdasarkan rancangan Direct
Connect yang merupakan prosesor triple core pertama
(dari golongan x86). Sejumlah core tersebut terkemas
atau tergabung dalam satu die (single silicon die).
Sebenarnya, prosesor triple core buatan AMD
tersebut adalah quad core dengan satu core di-
disable. Prosesor Phenom X3 dirilis pertama kali
pada tanggal 27 Maret 2008. Di sisi lain, AMD juga
memproduksi chipset seri 780 (AMD 780 series
chipset) sebagai pendamping/ pasangan prosesor
Phenon X3. Jika keduanya dikombinasikan dalam
sebuah PC dapat menampilkan performa yang tidak
mengecewakan. Sampai pertengahan bulan Mei 1998,
prosesor Phenom X3 yang telah dirilis berkecepatan
2100 - 2400 MHz, diproduksi menggunakan
teknologi manufaktur 65 nm SOI (Silicon on
Insulator), memiliki 940-pin OµPGA (Organic Micro
Pin Grid Array), didesain menggunakan soket AM2+,
juga kompatibel dengan soket AM2, didukung 1800
MHz HyperTransport, bekerja pada tegangan 1.1 Volt
hingga 1.25 Volt dengan TDP 95 watt. Luasan chip
silikonnya 285 mm2, mengandung 450 juta (ekivalen)
Transistor. Prosesor ini memiliki L1 Cache 384 KB
(128 KB per core yang terdiri atas 64 KB untuk cache
data dan 64 KB untuk cache instruksi), L2 Cache
445
sebesar 1536 KB (3 x 512 KB) dan L3 Cache
(berlaku share) sebesar 2 MB.
Gambar 17.23 AMD Phenom X3
Tabel 17.19 Prosesor Phenom X3
Nomor
Model Stepping
Frek.
(MHz)
VCore
(volt)
TDP
(watt)
Dirilis
tanggal OEM
Phenom
8400 B2 2100
1,1-
1,25 95
27
Maret
2008
HD8400WCJ3BGD
Phenom
X3 8450 B3 2100
23
April
2008
HD8450WCJ3BGH
Phenom B2 2300 27 HD8600WCJ3BGD
446
8600 Maret
2008
Phenom
X3 8650 B3 2300 23
April
2008
HD8650WCJ3B
GH
Phenom
X3 8750 B3 2400
HD8750WCJ3B
GH
2. Prosesor Phenom X4 nama core Agena
Phenom X4 adalah nama untuk prosesor quad core
Phenom seri 9000. Prosesor ini dirancang untuk
prosesor desktop „high end‟ dengan meletakkan
model prosesor Phenom X4 9850 Black Edition
sebagai „pemimpinnya‟.
Gambar 17.24 AMD Phenom X4
Prosesor Phenom X4 dirilis pertama kali pada
tanggal 19 November 2007. Prosesor Phenom X4
berkecepatan 1800 - 2500 MHz, diproduksi dengan
teknologi manufaktur 65 nm SOI (Silicon on
447
Insulator), memiliki 940-pin OµPGA (Organic
Micro Pin Grid Array), didesain menggunakan soket
AM2+, didukung 1800 MHz hingga 2000 MHz
HyperTransport, bekerja pada tegangan 1,1 – 1,30
volt dengan TDP 65 - 125 watt. Luasan chip
silikonnya 285 mm2, mengandung 450 juta
(ekivalen) transistor. Prosesor ini memiliki L1 Cache
512 KB (128 KB per core yang terdiri atas 64 KB
untuk cache data dan 64 KB untuk cache instruksi),
L2 Cache sebesar 2048 KB (4×512 KB) dan L3
Cache sebesar 2 MB yang berlaku share.
Tabel 17.20 Prosesor Phenom X4 corenamed Agena (B2 & B3)
Nomor
Model
Step-
ping
Frek.
(MHz)
HT
(MHz) VCore
(volt)
TDP
(watt
)
Dirilis
tanggal OEM
Phenom
9100e B2 1800 1600
1,1-
1,15 65
27
Maret
2008
HD91
000B
J4BG
D
Phenom 9500 B2
2200 1800
1,1-
1,25 95
19 Nov.
2007
HD95
00W
CJ4B
GD
Phenom X4
9550 B3
2200 1800 27
Maret
2008
HD95
50W
CJ4B
448
GH
Phenom 9600 B2
2300 1800
19 Nov.
2007
HD96
00W
CJ4B
GD
Phenom 9600
Black Edition2
B2 2300 1800 19 Des.
2007
HD96
0ZW
CJ4B
GD
Phenom X4
9650 B3
2300 1800
27
Maret
2008
HD96
50W
CJ4B
GH
Phenom X4
9750 B3
2400 1800 HD97
50W
CJ4B
GH
Phenom X4
9750 B3
2400 1800
1,2-
1,30 125
HD97
50XA
J4BG
H
Phenom X4
9850
Black Edition2
B3 2500 2000
HD98
5ZXA
J4BG
H
AMD menghadapi persaingan pasar yang ketat
melawan Intel di kelas prosesor desktop quad core.
Dalam beberapa hal, dapat dikatakan AMD memang
449
kalah melawan Intel. Seperti telah diketahui, pada
kuartal pertama tahun 2008 Intel sukses dan
mengalami kemajuan yang pesat dalam penjualan
prosesor barunya yang berbasis mikroarsitektur Intel
Core dengan teknologi manufaktur 45 nm. Sementara
itu, AMD tertinggal jauh dalam hal mikroarsitektur
karena masih berada di tingkat teknologi manufaktur
65 nm. Pengujian dan pembandingan prosesor quad
core buatan Intel maupun AMD telah dilakukan oleh
banyak kalangan. Hasilnya menunjukkan bahwa
generasi prosesor quad core produksi Intel terbukti
lebih unggul dalam kinerja (dalam pengujian head to
head), temperatur kerja, efisiensi daya (konsumsi
daya) dan kemudahan untuk melakukan overclock
dibandingkan prosesor quad core produksi AMD. Di
sisi lain, mencuatnya isu adanya bug pada prosesor
Phenom buatan AMD dapat mengakibatkan
popularitas prosesor tersebut menurun, walaupun tak
lama kemudian AMD merevisinya dan merilis
prosesor baru edisi revisi sebagai penggantinya (yang
dikenal menggunakan stepping B3). Menyadari
kenyataan ini, AMD tampaknya menerapkan strategi
baru dalam menghadapi persaingan pasar melawan
Intel. AMD menawarkan prosesor quad core-nya
dengan harga yang jauh lebih murah dibandingkan
prosesor quad core Intel. Hal ini yang membuat
450
penggemar komputer menjadi bimbang dalam
menentukan prosesor mana yang harus dibelinya.
Memory Controller
Saat ini operasi processor sangatlah cepat
dibandingkan dengan memori pada subsistem.
Keseluruhan mamfaat dari hasil performa tersebut
tidak dapat dicapai dengan mudah hanya dengan
meningkatkan kecepatan atau performa dari
prosesor. Baik AMD maupun Intel mengunakan
standar memori DDR SDRAM. Tetapi
bagaimanapun Intel masih menggunakan arsitektur
dari front-side-bus untuk menghubungkan kotrol
memori yang terpisah, berbeda dengan AMD yang
menggunakan kontrol memori yang terdapat pada
prosesornya sendiri.
a. Intel Front-side-bus (FSB) dan Bandwidth
Ada tiga hal penting dalam arsitektur memori:
Bandwidth, Latency, dan Scalability. FSB yang
dimiliki Intel adalah pararel 64-bit,
menggunakan teknologi multi-drop yang
membagi bandwidth antara prosesor dengan
memori controller. Memori controller adalah
terpisah dari prosesor dan penggunaanya
tergantung dari desain teknologi chipset-nya,
pada umumnya mendukung sampai 32 GB dari
dual-chanel DDR SDRAM. Sebagian besar
451
EM64T menggunkan 800Mhz FSB untuk
berhubungan dengan prosesor dengan memori
dan alat I/O. ini meningkatkan bandwidth
maksimum sebesar 6,4 GB/s, sebelumnya Intel
menggunakan FSB 400Mhz atau 533MHz yang
menghasilkan total bandwidth 3,2 GB/s atau 4,3
GB/s.
452
b. Intel Latency
Prosesor Intel dibuat untuk digunakan pada
simetric multi-processing (SMP), yang artinya
setiap prosesor memiliki waktu yang sama untuk
mengakses memori. Memori latency adalah
waktu yang digunakan processor untuk meminta
data dari memori (berlaku pada semua jenis
prosesor). Tes yang dilakukan oleh HP (Hewlett
Packard) Intel Xeon memiliki 120 ns.
Gambar 17.25 Intel Front-Side Bus
c. Intel Scalability
Pada sistem single-processor, FSB sangatlah
penting dalam meningkatkan kecepatan karena
sumber memori dapat dibuat tanpa memerlukan
tambahan prosesor. Pembagian FSB
menghasilkan frekuensi arbitrasi dan
meningkatkan latency dan meningkatkan
453
performa serta menjadikan memori terpakai
dengan baik.
d. AMD Intergrate Memori Controller
Tidak seperti FSB pada Intel, AMD memiliki
memori controller yang telah terdapat pada
prosesornya, ini memiliki manfaat lebih,
sehingga memiliki kelebihan yang signifikan:
meningkatkan bandwidth, mengurangi memori
latency dan meningkatkan scalability dibanding
Intel.
e. AMD Bandwidth
AMD memiliki dual-chanel DDR SDRAM
controller dengan 128 bit yang memungkinkan
peningkatan menjadi 8 DDR DIMMs (per
channel-nya ada 4). Controller didesain untuk
mendukung memori PC1600, PC2100, PC2700
dan PC3200 yang menggunakan DIMSs. Pada
memori PC3200 yang bekerja pada 400 MHz
menghasilkan bandwidth per channel-nya
sebesar 3,2 GB/s atau totalnya 6,4 GB/s dari
kedua chanel pada prosesor, sehingga dengan
kata lain AMD 100% memiliki bandwidth lebih
besar dari Intel.
454
f. AMD Latency
AMD memiliki hubungan dengan memori dalam
arsitekturnya, setiap prosesor berdempetan
dengan memorinya secara lokal. Untuk prosesor
lain dapat mengakses memoridengan
menggunkan internal switch pada prosesor dan
ini sangat cepat, point-to-point antar prosesor
(hyperTransport interconnect). Beberapa
konsumen mungkin memperhitungkan arsitektur
ini, yang membagi memori untuk memori lokal
prosesor dan memori yang menjalankan
prosesor, proses ini akan menghasilkan latency
yang besar. Tetapi sebenarnya perbedaan latency
sangatlah kecil sehingga kadang-kadang
diabaikan karena memori controller-nya terdapat
pada prosesor. Berdasarkan test yang dilakukan
oleh HP untuk AMD Opteron memiliki 70 ns
pada local-access dan 100 ns pada remote-
access.
g. AMD Scabality
Karena banyaknya memori berbanding lurus
dengan banyaknya prosesor, sebagai contoh
455
AMD Opteron 4-way memiliki memori sampai
dengan 64 GB sedangkan Intel hanya 32 GB,
keuntungannya adalah akan meningkatkan
performa yang sangat signifikan. Karena AMD
memiliki memori sendiri pada controller-nya
dan hubungan Hypertransport, maka akan
meningkat secara linier dengan prosesor.
Memori yang terdapat dalam prosesor juga
memungkinkan meningkatnya permintaan
memori yang berbentuk paralel, memori paralel
meningkatkan bandwidth memori dan
mengurangi rata-rata dari latency memori.
Gambar 17.26 AMD Opteron
1. Hypertransport dan Hypertreading
AMD64 memiliki tiga ukuran 16 bit jalur
Hypertransport. Hypertransport adalah
hubungan secara paralel antara point-to-point
456
yang menggantikan front-side-bus,
menggunakan DDR (Double Data Rate) untuk
mentrasfer data sebesar 2 bit data per clock-cycle
pada jalur 16 bit. Kecepatan hypertransport
dapat bervariasi antara 200 Mhz sampai 800
Mhz, meningkatkan frekuensi operasi sampai
dengan 1600MT/s (megatransfer per second),
dan kecepatan transfernya mencapai 3,2 GB/s
pada setiap jalurnya. Sejak transfer data yang
simultan ini, AMD dapat meningkatkan
kecepatan transfer sampai 6,4 GB/s yang dapat
dicapai oleh jalur I/O 16-bit pada hypertransport
dibandingkan dengan bi-directional bus,
keuntungan point-to-point adalah meningkatkan
bus arbitrasi dan memudahkan manajemen
sinyal yang terintegritas. Teknologi
Hypertransport menggunakan voltase rendah
dengan teknologi perbedaan sinyal untuk
mengurangi penggunaan daya dan mengurangi
kerusakan pada jalur dan pengaruh dari
elektromagnetik.
457
Gambar 17.27 Hypertransport
Hypertreading merupakan teknologi terbaru dari
EM64T yang merupakan metode yang
bermaksud untuk menjaga pipeline tetap penuh.
Normalnya prosesor hanya mengeksekusi
instruksi dari satu set instruksi saja. Karena
prosesor saat ini adalah superskalar (mempunyai
pararel eksekusi dan eksekusi out-of-order),
prosesor mengubah instruksi dan
mengeksekusinya dengan out-of-order untuk
menghasilkan pararel instruksi, kedua prosesor
baik Intel maupun AMD menggunkan instruksi
pararel unutk mengeksekusi 3 instruksi per
clock. Intel menggunkan hypertreading untuk
458
mengeksekusi urutan instruksi secara pararel
(multitreading pararelism). Intel membuat
replika dari komponen sebuah prosesor yang
mejadikan sebagai pointer, alokasi tabel register
dan register arsitektur lainnya. Intel menyebut
komponen itu sebagai architecture state atau
logical processor. Semua instruksi dibagi oleh
masing-masing logical processor tersebut,
sehingga prosesor akan selelu dalam keadaan
penuh dan optimal, karena prosesor ini
mengijinkan mengeksekusi instruksi yang masuk
dalam logical prosesor dan proses ini secara
signifikan akan meningkatan speed. Ilustrasinya
terlihat pada Gambar 17.28.
.
Gambar 17.28 Hypertrading
459
2. Pipeline
Pipeline adalah jalur yang dilewati oleh instruksi
set. Analogi yang dapat diambil adalah misal
kita melihat kebakaran dan kita mengambil air
dengan ember, jika kita seorang maka akan lama
memadamkannya, tetapi jika kita terdiri atas
beberapa orang dan tiap orang membawa ember
dan berusaha memadamkannya, akan lebih cepat
padam apinya, pipeline di sini dianalogikan
sebagai ember, semakin ember banyak maka
akan semakin cepat api padam. Prosesor saat ini
menggunakan pipeline yan panjang guna
meningkatkan kecepatannya, tetapi semakin
panjang akan semakin berat jika terjadi crash di
tengah jalan sehingga pipeline akan dikosongkan
dan diulang kembali. Ini merupakan perbedaan
yang paling mencolok pada Intel dan AMD,
AMD memiliki pipeline yang panjang dan dapat
bekerja dengan baik pada rentang kecepatan
2000 Mhz, sedang Intel lebih panjang lagi
sehingga dapat mencapai rentang kecepatan
3000 Mhz, tetapi Intel memiliki kesulitan dalam
pergantian atara tugas yang dibawanya, jadi
sebenarnya Intel lebih 6 lambat dibanding
dengan AMD.
460
BAB 18
TEKNOLOGI MMX (MULTIMEDIA
EXTENSIONS) PADA INTEL PROCESSOR
18.1 Pendahuluan
Secara teknis multimedia bisa didefinisikan sebagai suatu
sistem yang mengeksploitasi perangkat komputer untuk
mengolah informasi baik itu video, citra diam (still picture),
grafik, teks, suara, maupun data dan menampilkannya dalam satu
layanan yang simultan. Lalu, bagaimana multimedia bisa
menjadi begitu superior? Jawabnya terletak pada kemajuan di
bidang teknologi komputer dan jaringan yang mendukungnya.
Kemajuan teknologi komputer baik software maupun hardware
menjelang akhir abad XX sangat luar biasa. Semua aspek
pengembangan tersebut mengarah ke satu titik, yaitu multimedia.
Rilis terbaru dari Intel, produsen chip nomor wahid di dunia,
memperkenalkan prosesor MMX (MultiMedia eXtensions)
yang mengintegrasikan kemampuan pengolahan citra dan suara
dalam sebuah chip. Teknologi ini membuat waktu olah citra dan
suara dalam prosesor semakin singkat. Sementara itu di teknologi
461
jaringan, usaha-usaha meneliti dan mengembangkan konfigurasi
dan hardware yang optimal untuk mendukung multimedia terus
dilakukan. Kecenderungan pengguna layanan informasi untuk
memakai suatu aplikasi komputer secara bersama-sama (sharing)
dalam suatu jaringan adalah tantangan besar bagi multimedia. Ini
karena umumnya aplikasi multimedia berukuran besar. Tanpa
dukungan arsitektur dan software jaringan yang andal,
penggunaan aplikasi multimedia secara sharing tidak akan
pernah optimal.
18.2 Sejarah multimedia
Istilah multimedia berawal dari teater, bukan komputer.
Pertunjukan yang memanfaatkan lebih dari satu medium
seringkali disebut pertunjukan multimedia.
Sistem multimedia dimulai pada akhir 1980-an dengan
diperkenalkannya Hypercard oleh Apple pada tahun 1987
dan pengumuman oleh IBM pada tahun 1989 mengenai
perangkat lunak Audio Visual Connection (AVC) dan
video adapter card ps/2
Pada tahun 1994 diperkerkirakan ada lebih dari 700
produk dan sistem multimedia di pasaran.
Multimedia memungkinkan pemakai komputer untuk
mendapatkan output dalam bentuk yang jauh lebih kaya
dari pada media table dan grafik konvensional. pemakai
dapat melihat gambar tiga dimensi, foto, video bergerak
atau animasi dan mendengar suara stereo, perekaman
suara atau alat musik.
Beberapa sistem multimedia bersifat interaktif,
memungkinkan pemakai memilih output dengan mouse atau kemampuan layar sentuh untuk mendapatkan dan menjalankan aplikasi itu.
462
18.3 Pengertian Multimedia
Istilah „multimedia‟ digunakan dalam banyak hal, seperti
Sistem Informasi Multimedia, komputer multimedia, multimedia
interaktif dan lain-lain. Multi berarti banyak, Media berarti
sarana berkomunikasi untuk melewatkan informasi. Suatu sistem
yang terdiri dari perangkat keras, perangkat lunak dan alat-alat
lain seperti televisi, monitor video dan sistem piringan optik atau
sistem stereo yang dimaksudkan untuk menghasilkan penyajian
audio visual yang utuh.
Menurut Walter Oleksy (1995) dalam bukunya „The
Information Revolution: Education & Learning‟, menyatakan:
Adapun beberapa pakar mendefinisikan multimedia sebagai
berikut :
1. Multimedia secara umum merupakan kombinasi 3 element
yaitu suara, gambar dan teks (Mc Cormick,1996)
2. Multimedia adalah kombinasi dari paling sedikit 2 media
input atau output dari data,media ini dapat audio (suara,
musik), animasi, video, teks, grafik, dan gambar (Turban
dkk, 2002)
3. Multimedia merupakan alat yang dapat menciptakan
prestasi yang dinamis dan intraktif yang
„Multimedia adalah perkataan teknologi untuk perkakasan
(hardware) dan perisian (software) yang membawa bersama-
sama berjenis-jenis media teks, illustrasi-illustrasi, gambar
foto-gambar foto, bunyi, suara, animasi dan video pada
sebuah komputer.‟
463
mengkombinasikan teks grafik, animasi, audio dan gambar
video (Robin dan Linda, 2001)
4. Multimedia adalah pemanfaatan komputer untuk membuat
dan menggabungkan teks, grafik, audio, gambar bergerak
(video dan animasi) dengan menggabungkan link dan tool
yang memungkinkan pemakai melakukan navigasi,
berinteraksi, berkreasi dan berkomunikasi (Hofstetter,
2001)
Multimedia adalah pemanfaatan komputer untuk membuat dan
menggabungkan teks, grafik, audio, gambar bergerak (video dan
animasi) dengan menggabungkan link dan tool yang
memungkinkan pemakai melakukan navigasi, berinteraksi,
berkreasi, dan berkomunikasi. Multimedia adalah suatu teknik
yang menggabungkan data, teks, gambar, grafik, animasi, bunyi
dan video. Pada masa dahulu, komputer menyampaikan
maklumat melalui teks. Sekarang, terdapat grafik dan gambar-
gambar untuk menunjukkan sesuatu perkara dengan jelas.
Bahkan ia mampu menunjukkan pergerakan dan kesan bunyi.
Teknologi multimedia yang mampu mengintegrasikan teks,
grafik, animasi, audio dan video dalam satu persembahan sedang
hangat diperkatakan pada masa kini. Secara umum, multimedia
merupakan perantaraan dalam pembelajaran yang
mengkombinasikan teks, video, suara dan animasi dalam sebuah
konten komputer yang interaktif.
464
18.4 Kelebihan Multimedia
Dari berbagai media informasi, multimedia memilki suatu
kelebihan tersendiri yang tidak dapat digantikan oleh penyajian
media informasi lainya. Kelebihan dari multimedia adalah
menarik indra dan menarik minat, karena merupakan gabungan
antara pandangan,suara dan gerakan. Lembaga riset dan
penerbitan komputer yaitu Computer Technology Research
(CTR) menyatakan bahwa orang hanya mampu mengingat 20 %
dari yang dilihat dan 30 % dari yang didengar. Tetapi orang
mengingat 50 % dari yang dilihat dan didengar dan 80 % dari
yang dilihat, didengar dan dilakukan sekaligus.
18.5 Komponen Multimedia
Menurut James A. Senn, multimedia terbagi dalam
beberapa elemen multimedia, seperti yang terlihat berikut ini.
Gambar 18.1 Elemen Multimedia
Multimedia
Text
Image Audio
Animatio
n
Video
465
a. Teks
Bentuk data multimedia yang paling mudah disimpan dan
dikendalikan adalah teks. Teks dapat membentuk kata,
surat atau narasi dalam multimedia yang menyajikan
bahasa. Kebutuhan teks bergantung kepada penggunaan
aplikasi multimedia.
b. Image (grafik)
Alasan untuk menggunakan gambar dalam presentasi atau
publikasi multimedia adalah karena lebih menarik
perhatian dan dapat mengurangi kebosanan dibandingkan
dengan teks. Gambar dapat meringkas menyajikan data
yang kompleks dengan cara yang baru dan lebih berguna.
Gambar juga dapat berfungsi sebagai ikon, yang bila
dipadukan dengan teks, merupakan opsi yang bisa dipilih.
c. Bunyi (audio)
PC multimedia tanpa bunyi hanya disebut unimedia, bukan
multimedia. Bunyi dapat ditambahkan dalam multimedia
melalui suara, musik dan efek suara. Seperti halnya grafis,
dapat membeli ataupun menciptakan sendiri.
d. Video
Video menyediakan sumberdaya yang kaya dan hidup bagi
aplikasi multimedia.
NTSC (National Television System Committee)
merupakan sistem milik Amerika Serikat dengan lebar
layar 525 baris, digunakan di negara Kanada, Greenland,
466
Mexico, Kuba, Jepang, Philipina, Puerto Rico dan
beberapa negara di Amerika Selatan.
Resolution : NTSC 640 X 480
NTSC DV 720 X 480
NTSC WideScreen 720 X 480
NTSC D1 720 X 486
NTSC Square Pix 720 X 540
Frame Rate : 30 fps
PAL dan SECAM System
Banyak negara yang menggunakan kedua sistem ini yakni
PAL (Phase Alternating Line) atau SECAM
(Sequential Color and Memory). Kedua sistem ini
memiliki lebar layar 625 baris.
Resolution: PAL D1/DV : 720 X 576
PAL D1/DV Square Pix : 768 X 576
PAL D1/DV WideScreen : 720 X 576
Frame Rate : 25 fps
HDTV
HDTV (High Definition Television) adalah standar
internasional baru untuk dunia televisi. HDTV dapat
digunakan dalam 1.125 baris.
Resolution: 1280 X 720
Frame Rate: 29,9 Fps
467
e. Animasi
Dalam multimedia, animasi merupakan penggunaan
komputer untuk menciptakan gerak pada layer.
f. Virtual Reality
Virtual reality merupakan penggunaan multimedia untuk
penerapan secara langsung.
18.6 Software Multimedia
Adapun software multimedia yang sering digunakan:
1. Viewing: untuk melihat hasil pemgolahan multimedia
(Winamp, power DVD)
2. Capturing: untuk mendapatkan hasil rekaman yang
didapat melalui device multimedia (software scanner,
capture, camdig)
3. Editing: untuk mengolah bahan multimedia menjadi
sebuah sajian (adobe)
4. Authoring: software Multimedia untuk keperluan
interaktif (director, flash)
Teknologi MMX : pada awalnya, istilah MMX dikabarkan
kependekan dari multimedia extension. Namun pihak Intel
secara resmi menolak hal tersebut, Intel sendiri mengatakan
bahwa MMX bukan singkatan dari apa pun juga. Tetapi
melainkan MMX adalah merek dagang intel yang mengandung
pengertian peningkatan kinerja prosesor dalam urusan grafis.
Teknologi ini pertama kali diperkenalkan pada bulan januari
468
pada tahun 1997 dan diterapkan pertamakali pada pentium
MMX. Teknologi MMX sendiri adalah sekumpulan dari
instruksi-instruksi SIMD. Telah dijelaskan sebelumya prosesor
dengan SIMD mampu mengerjakan data yang banyak dengan
sekali instruksi yang khususnya berhubungan dengan grafis
sehingga prosesor lebih cepat dalam mengolah data tersebut. Nah
teknologi MMX adalah peningkatan dari SIMD, dimana banyak
ditambahkan set-set instruksi baru.
Gambar 18.2 Prosesor Pentium MMX
Pada tahun 1996, prosesor Pentium MMX. Sebenarnya tidak
lebih dari sebuah Pentium dengan unit tambahan dan set instruksi
tambahan, yaitu MMX. Intel sampai sekarang masih belum
memberikan definisi yang jelas mengenai istilah MMX.
MultiMedia eXtension adalah istilah yang digunakan AMD. Ada
suatu keterbatasan desain pada chip ini: karena modul MMX
hanya ditambahkan begitu saja ke dalam rancangan Pentium
tanpa rancang ulang, Intel terpaksa membuat unit MMX dan FPU
melakukan sharing, dalam arti saat FPU aktif MMX non-aktif,
469
dan sebaliknya. Sehingga Pentium MMX dalam mode MMX
tidak kompatibel dengan Pentium. Bagaimana dengan AMD K5?
AMD K5-PR75 sebenarnya adalah sebuah „clone‟ i80486DX
dengan kecepatan internal 133MHz dan clock bus 33MHz.
Spesifikasi Pentium yang didapat AMD saat merancang K5
versi-versi selanjutnya dan Cyrix saat merancang 6×86 hanyalah
terbatas pada spesifikasi pin-pin Pentium. Mereka tidak diberi
akses ke desain aslinya. Bahkan IBM tidak mampu membuat
Intel bergeming (Cyrix, mempunyai kontrak terikat dengan IBM
sampai tahun 2005). Mengenai rancangan AMD K6, tahukah
anda bahwa K6 sebenarnya adalah rancangan milik NexGen?
Sewaktu Intel menyatakan membuat unit MMX, AMD mencari
rancangan MMX dan menambahkannya ke K6. Sayangnya
spesifikasi MMX yang didapat AMD sepertinya bukan yang
digunakan Intel, sebab terbukti K6 memiliki banyak ketidak
kompatibilitas instruksi MMX dengan Pentium MMX.
Gambar 18.3 Prosesor Pentium II
Pada tahun 1997, Intel meluncurkan Pentium II, Pentium Pro
dengan teknologi MMX yang memiliki 2 inovasi: cache memori
tidak menjadi 1 dengan inti prosesor seperti Pentium Pro, namun
470
berada di luar inti namun berfungsi dengan kecepatan processor.
Inovasi inilah yang menyebabkan hilangnya kekurangan Pentium
Pro (masalah pengosongan cache) Inovasi kedua, yaitu SEC
(Single Edge Cartidge), kenapa? Karena kita dapat memasang
prosesor Pentium Pro di slot SEC dengan bantuan adapter
khusus. Tambahan : karena cache L2 on processor, maka
kecepatan cache = kecepatan processor, sedangkan karena PII
cache-nya di ”luar” (menggunakan processor module), maka
kecepatannya setengah dari kecepatan processor. Disebutkan
juga penggunaan Slot 1 pada PII karena beberapa alasan :
1. Memperlebar jalur data (kaki banyak – Juga jadi alasan
Soket 8), pemrosesan pada PPro dan PII dapat paralel.
Karena itu sebetulnya Slot 1 lebih punya kekuatan di
Multithreading/ Multiple Processor (sayangnya O/S
belum banyak mendukung, benchmark PII dual
prosesorpun oleh ZDBench lebih banyak dilakukan via
Win95 ketimbang via NT).
2. Memungkinkan upgrader Slot 1 tanpa memakan banyak
space di motherboard sebab bila tidak ZIF socket 9, bisa
seluas form factor (MB)-nya sendiri konsep hemat space
ini sejak 8088 juga sudah ada. Mengapa keluar juga
spesifikasi SIMM di 286? Beberapa di antaranya adalah
efisiensi tempat dan penyederhanaan bentuk.
3. Memungkinkan penggunaan cache module yang lebih
efisien dan dengan speed tinggi seimbang dengan speed
processor dan lagi-lagi tanpa banyak makan tempat,
471
tidak seperti AMD/ Cyrix yang “terpaksa” mendobel L1
cache-nya untuk menyaingi speed PII (karena L2-nya
lambat) sehingga kesimpulannya AMD K6 dan Cyrix
6×86 bukan cepat di processor melainkan cepat di hit
cache! Sebab dengan spesifikasi Soket 7 kecepatan L2
cache akan terbatas hanya secepat bus data/ makin
lambat bila bus datanya sedang sibuk, padahal PII tahun
depan direncanakan beroperasi pada 100 MHz (bukan 66
MHz lagi). Poin inilah salah satu alasan kenapa Intel
mengganti chipset dari 430 ke 440 yang berarti juga
harus mengganti Motherboard.
Disingkat dengan MMX, sebuah set instruksi tambahan
(Multimedia Extension) yang diintegrasikan ke dalam CPU oleh
Intel sejak masa Pentium MMX CPU, didesain untuk
mempercepat prosesor dalam menjalankan aplikasi multimedia.
Menurut Intel, sebuah PC dengan mikroprosesor MMX dapat
menjalankan aplikasi multimedia hingga 60% lebih cepat
daripada prosesor lain dengan kecepatan yang sama namun tanpa
MMX. Selain itu mikroprosesor yang dilengkapi dengan MMX
menjalankan aplikasi lainnnya lebih kurang 10% lebih cepat.
Extension
Perpanjangan, perluasan. Pengelompokan jenis file, extension
atau akhiran nama berkas digunakan.
472
Multi
Sesuatu yang jumlahnya lebih dari satu atau banyak, misalnya
multiprocessor untuk banyak processor.
Media
Bentuk jamak dari medium. Sarana yang digunakan untuk
perekaman data, seperti disk, tape, floppy.
MULTICS
Lihat MULTiplexed Information and Computing Service
Multiply
Mengalikan, perkalian.
18.7 Spesifikasi Komputer Multimedia Terkini
Komputer yang mempunyai perkakasan yang berupaya
untuk melaksanakan perisian multimedia dipanggil komputer
multimedia. Pada masa kini, spesifikasi komputer multimedia
adalah seperti berikut:
a. Pemroses Pentium 233 MHz dengan teknologi MMX
Pemroses dengan teknologi MMX (MultiMedia eXtension)
mempunyai tambahan cache dalaman untuk melajukan
semua aplikasi. Dengan pemroses dari Intel terdapat 57
arahan tambahan untuk melajukan konten MMX tertentu.
b. Memori 32 MB EDO RAM
Apabila hendak menggunakan sistem operasi Windows 95,
memori yang dicadangkan adalah 32 MB. 32 MB RAM
473
memperbolehkan „multi-tasking‟ dilaksanakan dengan
lebih halus.
c. Motherboard dengan 512 KB cache
Memori cache sekunder ini adalah untuk membaca dan
menulis semula. Data diletakkan di situ untuk sementara
waktu sebelum digunakan.
d. Card video 4 MB SGRAM (Synchronous Graphic RAM)
Semua sistem komputer memerlukan card video yang
memproses data dan arahan grafik serta video untuk
dipaparkan ke monitor. Dewasa ini, kebanyakan sistem
komputer dipasang dengan card video dengan memori
sekurang-kurangnya 2 MB dan boleh ditambah hingga 4
MB.
e. Hard disk 6.5 GB
Lebih besar ruang hard disk lebih banyak data boleh
disimpan.
f. Pemacu floppy disk 1,44 MB
Untuk menyimpan data dalam disket 3½ inci yang
ukurannya kurang daripada 1,44 MB, pemacu ini boleh
digunakan.
g. Pemacu Zip
Untuk menyimpan data yang lebih besar daripada 1,44 Mb,
disk zip perlu digunakan. Setiap disk zip mampu
menyimpan 100 Mb data.
h. Pemacu CD-ROM dengan kelajuan 24X
474
Untuk menggunakan konten multimedia, pemacu CD-
ROM diperlukan sebab multimedia datang dalam bentuk
CD. Pemacu CD-ROM adalah tulang punggung sistem
komputer multimedia sebab banyak sumber multimedia
dalam bentuk format ini.
i. Card suara PnP 16-bit 3D stereo
Kebanyakan sistem komputer menggunakan card suara 16-
bit. Walau bagaimanapun, card suara 32-bit juga dijual.
Card suara 16-bit lebih digunakan sebab kebanyakan
konten multimedia dimajukan dengan dasar 16-bit.
j. Monitor multimedia 17"
Monitor yang biasa dijual dengan sistem komputer pada
masa kini adalah 14".
k. Modem 33,6 Kbps data/fax dengan suara
Modem diperlukan untuk berhubung dalam internet di
mana terdapat banyak aplikasi multimedia. Modem yang
biasa diberi dengan sistem komputer adalah modem 33,6
Kbps. Walau bagaimanapun, modem yang lebih cepat juga
dijual di pasaran, yaitu modem 56Kbps.
l. Pembesar suara 300 W
Pembesar suara yang mempunyai keupayaan yang lebih
berarti bunyi yang dikeluarkan adalah lebih menarik dan
jelas.
475
DAFTAR PUSTAKA
Abdurohman, Maman. 2007. Organisasi & Arsitektur Komputer.
Bandung: Penerbit Informatika.
Hariyanto, Bambang. 2009. Sistem Operasi (Revisi keempat).
Bandung: Penerbit Informatika.
Jogiyanto. 2000. Pengenalan Komputer. Yogyakarta: Penerbit
Andi.
Jogiyanto. 2005. Pengenalan Komputer. Yogyakarta: Penerbit
Andi.
Jogiyanto. 2005. Analisis dan Desain Sistem Informasi.
Yogyakarta: Andi Offset.
Kadir, Abdul & Triwahyuni, Terra Ch. 2003. Pengenalan
Teknologi Komputer. Yogyakarta: Penerbit Andi.
Kadir, Abdul dan Triwahyuni, Terra Ch. 2005. Pengenalan
Teknologi Informasi. Yogyakarta: Penerbit Andi.
Kusumadewi, Sri. 2002. Sistem Operasi. Yogyakarta: Graha
Ilmu.
Madgwick, Wendy. 2005. Pengantar Teknik Informasi.
Yogyakarta: Gramedia Pustaka Utama.
Malvino, A. P. 2000. Elektronika Komputer Digital: Pengantar
Mikrokomputer, edisi 2 cetakan 7. Terj. Jakarta: Penerbit
Erlangga.
Soeparlan, Soepono. 1995. Pengantar Organisasi Sistem
Komputer. Jakarta: Penerbit Gunadarma
476
Stalling, Williams. 1998. Organisasi dan Arsitektur Komputer:
Perancangan Kinerja, Jilid 2. Terj. Gurnita Priatna,
Jakarta: Prenhallindo.
Stalling, William. 2004. Organisasi dan Arsitektur Komputer:
Perancangan Kinerja, Jilid 1. Terj. Thamir Abdul Hafedh.
Jakarta: Penerbit Indeks.
Supriyanto, Aji. 2005. Pengantar Teknologi Informasi. Bandung:
Salemba Infotek.
Sutatmi, DA. 2005. Teknologi Informasi dan Komunikasi XI.
Salatiga: Yudhistira.
Tanenbaum, Andrew S. 2001. Organisasi Komputer Terstruktur
1. Terj. Thamir Abdul Hafedh Al-Hamdany. Jakarta:
Salemba Teknika.
Tanenbaum, Andrew S. 2002. Organisasi Komputer Terstruktur
2. Terj. Thamir Abdul Hafedh Al-Hamdany. Jakarta:
Salemba Teknika.
Link:
2Tiek. 2009. Prosesor Super Skalar. [Online]. Tersedia:
http://tutikurnia.blogspot.com/2009/06/prosesor-super-
skalar.html. [12 September 2012]
Agung, Mochammad Firdaus. 2010. Set Instruksi. [Online].
Tersedia:
http://mfirdausagung.blogspot.com/search?q=set+instruksi
&submit=+++Cari+++. [15 Oktober 2010]
Andriana, Muhammad Cheppy. 2010. [Online]. Tersedia:
http://cheppyandriana.blogspot.com/2010/01/pengertian-
memory.html. [15 Oktober 2010]
Apeace. 2008. SUPERSCALAR. [Online]. Tersedia:
http://apeacetol.blogspot.com/2008/12/superscalar.html.
[15 September 2012]
477
Barajakom. 2009. Sejarah Komputer. [Online]. Tersedia:
http://barajakom.blogspot.com/2009/03/sejarah-
komputer.html. [14 Oktober 2010]
Ciptarjo, Imam. 2009. Arsitektur Komputer – Input, Proses,
Output. [Online]. Tersedia:
http://www.scribd.com/doc/17780705/Organisasi-Dan-
Arsitektur-Komputer-Input-Output-Proses-Isi-
wwwaloneareacom. [15 September 2012]
Depsos. 2003. Struktur Disk. [Online]. Tersedia:
http://ikc.depsos.go.id/umum/ibam/ibam-os-
html/x6554.html.
Dharma, Tetti Eka. 2008. Superscalar VS Superpipeline.
[Online]. Tersedia: http://tetti-
ekadharma.blogspot.com/2008/12/superscalar-vs-
superpipeline.html. [13 Oktober 2010]
Fajar, Budi. 2009. Pipeline, Superscalar, L1, L2 Chace, RISC,
CISC. [Online]. Tersedia:
http://images.deroom.multiply.multiplycontent.com/attach
ment/0/SYp@6AoKCt8AAB1l3uo1/Arsikom4%20tema.p
df?nmid=192548469. [15 Oktober 2010]
Fayza. 2009. Superskalar. [Online]. Tersedia: http://faiza-
theonlyone.blogspot.com/2009/06/superskalar_24.html.
[13 Oktober 2010]
Gora, Winastwan. 2007. [Online]. Tersedia:
http://belajarsendiri.pbworks.com/f/Arsitektur%20dan%20
Organisasi%20Komputer%20-%203.ppt. [15 September
2012]
LittleRadita. 2010. Arsitektur Komputer II. [Online]. Tersedia:
http://littleradita.files.wordpress.com/2010/07/arkom-ii-
91.pdf. [15 Oktober 2010]
478
Margono. 2008. Complex Instruction Set Computing. [Online].
Tersedia:
http://margono.staff.uns.ac.id/2008/10/31/complex-
instruction-set-computing-cisc/. [15 Oktober 2010]
Mufidah, Ratna. 2008. Evolusi dan Kinerja Komputer. [Online].
Tersedia:
http://ratnaroom.files.wordpress.com/2008/04/evolusi-dan-
kinerja-komputer-orkom11.pdf. [13 Oktober 2010]
Muhammad. 2009. Prosesor Superscalar. [Online]. Tersedia:
http://images.akhiwagiman.multiply.multiplycontent.com/
attachment/0/TEqhPwooCtUAAGLd6M41/orkom-ii-
6.pdf?nmid=352666068. [15 Oktober 2010]
Mulyadi, Erwin. 2007. Flash memory pengganti hard disk.
[Online]. Tersedia:
http://gaptek28.wordpress.com/2007/11/20/flash-memory-
pengganti-hard-disk/. [15 Oktober 2010]
Narendra, Arif. http://www.arif-narendra.co.cc/2010/03/cpu-
central-processing-unitprocessor.html. [14 Oktober 2010]
Noersasongko, Edi. 2009. External Memory. [Online]. Tersedia:
http://kuliah.dinus.ac.id/edi-nur/sb2-3.html. [13 Oktober
201]
Novia, Nila. 2008. SUPERSCALAR VS SUPERPIPELINE.
[Online]. Tersedia:
http://hilunera.blogspot.com/2008/12/superscalar-vs-
superpepiline.html. [15 Oktober 2010]
Nurhuda, Erfan. 2009. Media Penyimpanan (Memori) Eksternal.
[Online]. Tersedia:
http://f4123n.blogspot.com/2009/01/media-penyimpanan-
memori-eksternal.html. [13 Oktober 2010]
PCTECHGUIDE. 2010. Pentium Dual Core. [Online]. Tersedia:
http://www.pctechguide.com/. [14 Oktober 2010]
479
Rachma. 2009. RISC (Reduce Instruction Set Computer).
[Online]. Tersedia: http://rachma-
taskblog.blogspot.com/2009/05/risc-reduce-instruction-
set-computer.html. [15 September 2012]
Rouf, Abdul. 2010. [Online]. Tersedia:
http://setia.staff.gunadarma.ac.id/Downloads/files/15974/C
hapter_4.pdf. [13 Oktober 2010]
Sigit, Riyanto, dkk. 2005. Pertemuan ke-1 Arsitektur Komputer.
[Online]. Tersedia: http://lecturer.eepis-
its.edu/~setia/Modul/ArKom/Pertemuan%2001.pdf. [7
September 2010]
Sigit, Riyanto, dkk. 2005. Pertemuan ke-2 Pengantar Organisasi
Komputer. [Online]. Tersedia: http://lecturer.eepis-
its.edu/~setia/Modul/Orkom/P02.pdf. [7 September 2010]
Wasista, Sigit. 2009. [Online]. Prosesor Superscalar. Tersedia:
http://wasista-arkom.blogspot.com/2009/06/prosesor-
superscalar.html. [14 Oktober 2010]
Wijaya, Fredy Ferdyan Oktarizky. 2009. [Online]. Tersedia:
http://fredyferdyan.blogspot.com/2009/08/cisc-complex-
instruction-set-computer.html. [13 Oktober 2010]
Wikipedia. 2010. Addressing mode. [Online]. Tersedia:
http://translate.google.co.id/translate?hl=id&sl=en&u=http
://en.wikipedia.org/wiki/Addressing_mode&ei=bpa6TJLG
DY2evQO56f2pDQ&sa=X&oi=translate&ct=result&resn
um=1&ved=0CB4Q7gEwAA&prev=/search%3Fq%3Dad
dressing%2Bmode%26hl%3Did%26biw%3D1110%26bih
%3D533%26prmd%3Di. [16 Oktober 2010]
Wikipedia. 2010. Sejarah perkembangan komputer. [Online].
Tersedia:
http://ms.wikipedia.org/wiki/Sejarah_perkembangan_kom
puter. [13 Oktober 2010]
480
Wikipedia. 2010. Unit Pemroses Sentral. [Online]. Tersedia:
http://id.wikipedia.org/wiki/Unit_Pengolah_Pusat. [13
Oktober 2010]
Wikipedia. 2011. Memori kilat. [Online]. Tersedia:
http://id.wikipedia.org/wiki/Memori_kilat. [15 September
2012]
Wikipedia. 2011. Superskalar. [Online]. Tersedia:
http://id.wikipedia.org/wiki/Superskalar. [15 September
2012]
Wikipedia. Arsitektur Komputer. 2012. [Online]. Tersedia:
http://id.wikipedia.org/wiki/Arsitektur_komputer. [15
September 2012]
Wikipedia. 2012. Bus sistem. [Online]. Tersedia:
http://id.wikipedia.org/wiki/Bus_sistem. [15 September
2012]
Wikipedia. 2012. CD-ROM. [Online]. Tersedia:
http://id.wikipedia.org/wiki/CD-ROM. [15 September
2012]
Wikipedia. 2012. CISC. [Online]. Tersedia.
http://id.wikipedia.org/wiki/CISC. [15 September 2012]
Wikipedia. 2012. Cyrix. [Online]. Tersedia:
http://en.wikipedia.com/wiki/cyrix. [15 September 2012]
Wikipedia. 2012. Sejarah komputer. [Online]. Tersedia:
http://id.wikipedia.org/wiki/Sejarah_komputer. [15
September 2012]
Yudik. 2009. [Online]. Tersedia:
http://imadeyudierawan.blogspot.com/2009/11/mode-
pengalamatan-dan-set-instruksi.html. [13 Oktober 2010]
481
BIOGRAFI PENULIS
Viktor Amrizal lahir di Kediri, 24 Juni 1974, menyelesaikan
pendidikan strata satu di STMIK Budi Luhur Jakarta program studi
Teknik Informatika dan bekerja sebagai system analyst dan
programmer di beberapa instansi/lembaga di Jakarta. Penulis
menyelesaikan pendidikan strata dua di STTBI Jakarta pada
program studi yang sama. Penulis sebagai staf pengajar di
Universitas Muhammadiyah Prof.DR. HAMKA Jakarta dan pernah
menduduki jabatan sebagai Kepala Laboratorium dan Ketua Jurusan
Teknik Informatika di Fakultas Teknik Universitas Muhammadiyah
Prof.DR. HAMKA Jakarta. Penulis juga sebagai staf pengajar tidak
tetap di Universitas Bina Nusantara dan Universitas Paramadina
Mulya. Saat ini penulis sebagai staf pengajar tetap UIN Syarif
Hidayatullah Jakarta.
Qurrotul Aini lahir di Malang, 25 Maret 1973, menyelesaikan
pendidikan strata satu di Universitas Brawijaya Malang Fakultas
Teknik jurusan Teknik Elektro. Penulis bekerja selama dua tahun di
PT. IPTN Bandung, setelah itu menjadi staf pengajar tidak tetap di
salah satu perguruan tinggi swasta di Malang. Penulis
menyelesaikan pendidikan strata dua di Institut Teknologi Sepuluh
Nopember (ITS) Surabaya dengan program studi Teknik Elektro –
Telekomunikasi Multimedia. Sejak tahun 2006 hingga 2008, penulis
sebagai staf pengajar di Politeknik Negeri Jakarta dan salah satu
perguruan tinggi swasta. Saat ini penulis sebagai staf pengajar tetap
di Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta.
482