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 | [email protected]

i

”Kebaikan dunia dan akhirat ada dalam bersama pengetahuan, tapi keburukan dunia dan akhirat ada bersama dengan kejahilan”

ii 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

iii 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 2 Kalkulator Mekanik 1.3 Komputer Generasi Pertama (1940-1959) 8 1.4 Komputer Generasi Kedua (1959 -1964) 12 1.5 Komputer Generasi Ketiga (1964 - awal 15 80an) 1.6 Komputer Generasi Keempat (sejak tahun 17 1970 – hingga sekarang) 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 33 2.5 Evolusi pada PowerPC (PPC) 35 2.6 Kinerja Komputer 36

BAB 3 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 60 Komputer Modern

iv 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 92 Logic)

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 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 190 Daya 8.5 Jenis-Jenis Sistem Operasi 192

v 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 224 PowerPC

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 252 dan Karakteristik

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 304 Computer (CISC) 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

vi 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 325 RISC 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

vii BAB 18 TEKNOLOGI MMX (MULTIMEDIA EXTENSIONS) PADA 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

viii 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.

1

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.

2

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

3 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

4 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.

5

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

6 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.

7

1.3 Komputer Generasi Pertama (1940-1959) Komputer Generasi pertama mempunyai ciri-ciri sebagai berikut: 1. Komponen yang dipergunakan adalah tabung hampa udara () 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

8 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

9 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

10

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.

11

. 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.

12

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

13 komputer PDP-1. Komputer generasi kedua lainnya yang dikenalkan pada tahun 1959 adalah Honey well 400. . 1963: metode 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

14

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 - ) 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

15 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

16

- 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 yang dibuat pada tahun 1971 membawa kemajuan pada IC dengan meletakkan seluruh komponen dari sebuah komputer (, 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,

17 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).

18

. 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.

19

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

20

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

21 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.

22

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

23

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

24

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.

25

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.

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”. Komputer adalah sebuah alat yang diciptakan untuk membantu kegiatan manusia. Komputer yang sekarang ini kita gunakan bukanlah suatu alat yang dibuat begitu saja. Komputer

26 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.

27

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 , 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

28

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

29

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, , 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

30

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

31

. 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

32

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

33

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. . : 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.

34

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. . : 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

35 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

36 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

37

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. : 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

38

prosesor. Tabel 2.1 merupakan tabel evolusi sebuah .

Tabel 2.1 Evolusi dari Intel Mikroprosesor Fitur 8008 8080 8086 80386 80486 Tahun 1972 1974 1978 1985 1989 diperkenalkan Jumlah 66 111 133 154 235 instruksi 8 16 20 32 32 Lebar bus alamat 8 8 16 32 32 Lebar bus 4 5 9 14 14 data 8 8 16 8 8 Jumlah flag 15 KB 64 KB 1 MB 4GB 4GB Jumlah 24 256 64 KB 64 KB 4GB register - 1,3μ s 0,3μ s 0,125μ 0,06μ Memori s s I/O port Waktu add register to register

2. Keseimbangan Kinerja Perkembangan mikroprosesor, dilihat dari kapasitas operasi dan kecepatannya sangatlah pesat. Perkembangan

39

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.

200 Dynamic RAM density r

o 100 t c a

F 50

t

n Processor speed e

m 20 e v

o 10 r p 5 m I Dynamic RAM speed 2

1

1980 1985 1990 1995

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.

40

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

41

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.

42 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. , 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 ® 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® ® Processor (1999) Prosesor Intel Celeron merupakan prosesor yang dikeluarkan sebagai prosesor yang ditujukan untuk

43

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)

44

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 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

45

untuk memenuhi kebutuhan pasar akan keberadaan sebuah komputer yang mudah dibawa kemana-mana. u. Intel 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 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. 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

46

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.

47 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.

48

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.

49

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

50 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.

51

 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:

52

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

53 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.

54

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

55

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

56 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

57

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

58 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.

59

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 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.

60

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

61 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.

62

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,

63

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 Dirilis Perubahan yang dilakukan bus PCI pada

Spesifikasi asli PCI, yang memiliki PCI 1.0 Juni 1992 lebar bus 32-bit atau 64-bit

April Spesifikasi ini mendefinisikan jenis PCI 2.0 1993 konektor dan papan ekspansi

Operasi 66 MHz diberlakukan; PCI 2.1 Juni 1995 Perubahan pada latency; Adanya fungsi transaction ordering

Januari Fitur manajemen daya diberlakukan; PCI 2.2 1999 Ada beberapa klarifikasi mekanika

September Spesifikasi PCI-X 133 MHz, sebagai PCI-X 1.0 1999 tambahan bagi versi PCI 2.2

November Spesifikasi PCI 2.2 untuk Mini-PCI 1999 motherboard dengan form factor yang

64

kecil (Micro-ATX)

Maret Pensinyalan 3,3 volt; penggunaan PCI 2.3 2002 kartu yang bersifat low-profile

Modus kerja 266 MHz dan 533 MHz; dukungan terhadap pembagian bus PCI-X 2.0 Juli 2002 64-bit menjadi segmen-segmen berukuran 16-bit atau 32-bit; Pensinyalan 3,3 atau 1,5 volt.

PCI dengan cara transmisi serial, dengan kecepatan 2500 Mb/s tiap jalur transmisi tiap arah, PCI Express menggunakan pensinyalan 0,8 volt, Juli 2002 1.0 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,

65

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

66

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 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

67

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 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

68

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 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

69

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

70

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.

71

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.

72

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 10 MHz 16 bit 20 MB/s Streaming MCA-32 10 MHz 32 bit 40 MB/s Streaming 80 MB/s MCA-64 10 MHz/ 20 MHz 64 bit atau 160 Streaming 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

73 untuk menangani perangkat input/output atau perangkat media penyimpanan. Perangkat yang umum menggunakan SCSI adalah hard disk, CD-ROM, scanner atau printer.

74

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.

Memori adalah bagian dari komputer tempat program-program dan data-data disimpan.

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.

75

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 5. Kinerja CPU Access time Internal (main) Cycle time External Transfer rate (secondary) 6. Tipe Fisik 2. Kapasitas Semikonduktor Ukuran word Permukaan magnetik

76

Banyaknya word 7. Karakteristik Fisik 3. Satuan Transfer Volatile/non-volatile Word Erasable/non-erasable Block 8. Organisasi 4. Metode Akses Catatan: Sequential access Bagi pengguna dua karakteristik Direct access penting memori adalah Random access  Kapasitas,  Kinerja. Associative access

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.

77 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 ()). Penempatan cache di prosessor dikembangkan sejak PC . 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

78

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,

79

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

80

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.

81

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.

4.5 Kinerja Memori Ada tiga buah parameter untuk kinerja sistem memori, yaitu:

82

 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.: N T T N A R

(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)

83

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.

84

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

85

kombinasi teknologi komponen memori. Dari kombinasi ini dapat disusun hierarki memori sebagai berikut.

Register s Cache

Main Memory

Magnetic Disk

Magnetic Tape

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.

86

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

87

(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.

88

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

89 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”.

90

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.

91

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.

92

Gambar 4.2 Organisasi Memori Logik Keping

93

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

94 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.

95

 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.

96

 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

97

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

98

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 Platters Fixed head (one per track) Single platter Movable head (one per Multiple platter surface) Portabilitas Disk Mekanisme Head Nonremovable disk Contact (floopy) Removable disk Fixed Gap Sides Aerodynamic Gap Single sided (Winchester) Double sided

99

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

100

 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

101

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.

102

 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

103

Gambar 5.3 Level RAID (1)

104

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.

105

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.

106 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.

107

 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.

108

 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.

109

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.

110

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

111 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.

112

Gambar 5.7 CD Drive (1)

Gambar 5.8 CD Drive (2)

113

Gambar 5.9 CD Drive (3)

Gambar 5.10 Disk Optik

114

 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 Gambar 5.11 Magnetic standar yang memiliki lebar pita Tape 1/2" (12.7 mm). Magnetic tape terbuat dari plastik tipis yang dilapisi magnetik pada permukaannya. 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 Gambar 5.12 Kaset magnetik ukuran standar. Kaset ataupun catridge banyak digunakan pada komputer jenis home-computer.

115

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

116 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.

117

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

118

 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

119

 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.

120

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,

121

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

122 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 109 karakter.

Gambar 5.20 Drum Magnetik

123

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.

124

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:

125

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

126 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.

127

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

128 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.

129

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

130

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

131 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.

132

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,

133 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

134

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

135

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

136 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

137

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 ) 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.

138

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

139 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.

140

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.

141

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

142 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

143

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

144

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

145 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

146 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

147 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

148

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

149

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.

150

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 ). 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

151

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/ (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 :

152

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

153 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.

154

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;

155

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

156 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.

157

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

158 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, 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.

159 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).

160

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 :

161

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

162 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

163

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.

164

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.

165 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

166

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

167 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

168

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 ×

169

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

170

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).

171

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

172

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

173 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

174

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.

175

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)*2a-b Algoritma umum untuk pembagian dari bilangan floating

176

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

177

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

178

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

179

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

180

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:

181

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.

182

Contoh : Representasi integer Sign Representasi Value Keterangan bit 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

183

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

184

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.

185

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

186 merupakan sebuah program yang mengatur sumber daya komputer, menyediakan program, dan menjadwal eksekusi program lainnya.

Sistem Operasi adalah program yang mengendalikan eksekusi dari aplikasi program-program dan tindakan sebagai interface di antara pengguna komputer dan hardware komputer.

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

187 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-

188

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.

189

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

190 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

191

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

192 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 / Simple batch Dedicated One task at a time 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

193 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.

194

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

195 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

196

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

197 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

198 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:

199

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

200

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.

201

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.

202

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.

203

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.

204

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

205 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

206 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

207

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.

208

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

209 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 () 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

210

Direct Memori pada alamt EA = A Indirect Memori pada alamat dalam EA = (A) alamat Register Register EA = (....(A)....) Register- Memori pada alamat register EA = R indirect Displacement Kombinasi Direct Addressing EA = A + (R) dan Indirect Register Addressing Relative Lokasi memori untuk PC juga OPR ← M[PC alamat + 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

211

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.

212

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

213

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

214 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

215

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

216

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

217

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

218

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

219

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:

220

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

221

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

222 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,

223 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

224

Basis LA = (SR) + (B) Basis dengan penggantian LA = (SR) + (B) + A Index yang terskala dengan LA = (SR) + (I) x S + penggantian A Basis dengan indeks dan LA = (SR) + (B) + (I) penggantian + A Basis dengan indeks terskala LA = (SR) + (B) x S dan penggantian + (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

225 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.

226

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

227 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,

228

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.

229

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.

230

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.

231

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).

232

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

233 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.

234

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

235 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).

236

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.

237

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 :

238

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

239 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

240 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

241 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.

242

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

243 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).

244

Gambar 10.3 Operasi Logika

245

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:

246

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

247

(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

248

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

249 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

250 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

251

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

252

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

253

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

254

- 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.

255

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)

256

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.

257

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

258 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

259 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

260

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:

261

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

262 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 (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

263 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

264

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.

265

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

266 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

267

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) :

268 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:

269

. 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

270

dibuat, prosesor tidak perlu menyimpan setiap register titik mengambang yang kosong.

Tabel 11.1 Register Prosesor Pentium (a) Unit Integer Jenis Bilangan Panjang Tujuan (bit) Umum 8 32 Register pengguna bertujuan umum Segmen 6 16 Terdiri dari selektor segmen Flag 1 32 Bit status dan bit kontrol Pointer 1 32 Pointer instruksi Instruksi

(b) Unit Titik Mengambang Jenis Bilangan Panjang Tujuan (bit) 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

271

numerik Pointer 1 48 Menunjuk instruksi Instruksi terinterupsi dengan pengecualian Pointer 1 48 Menunjuk operand Data 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

272

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.

273

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.

274

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

275 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

276

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.

277

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

278

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

279

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:

280

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.

281

Gambar 11.4 Siklus Instruksi

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.

282

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.

283

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:

284

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

285 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)

286

Tabel 11.2 Tabel Perkecualian Pentium dan Vektor Interupsi Nomor Penjelasan Vektor 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

287

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

288 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

289

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.

290

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

291

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

292

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

293

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 CR0 CR1 CRi CRi bit (instruksi (instruksi (titik tetap (titik integer titik perbanding mengambang dengan mengambang kan perbandingka Rc=1) dengan instruksi) n instruksi) Rc=1) i Hasil < 0 Ringkasan op1 < op2 op1 < op2 perkecualian i + 1 Hasil > 0 Ringkasan op1 > op2 op1 > op2 perkecualian enable i + 2 Hasil + 0 Ringkasan op1 = op2 op1 = op2

294

perkecualian operasi tidak valid i + 3 Overflow Perkecualian Overflow Tidak ringkasan overflow ringkasan 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

295

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 Jenis Interupsi Penjelasan Masukan 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 Contoh : kesalahan halaman data data; mengakses pelanggaran yang benar pada load/store 00400h Penyimpanan Kesalahan halaman kode; instruksi intsruksi yang dicoba diambil dari segmen I/O; akses

296

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 Berusaha mengeksekusi mengambang instruksi titik mengambang yang tidak dengan unit titik mengambang tersedia disabled 00900h Pengurang Kejenuhan register pengurang ketika pengulangan interupsi eksternal enabled 00A00h Dipesan

297

00B00h Dipesan 00C00h Panggilan Eksekusi instruksi panggilan sistem system 00D00h Jejak Dipesan melacak interupsi satu langkah atau percabangan 00E00h Bantuan titik Berusaha mengeksekusi mengambang operasi titik mengambang yang kompleks secara relatif jatrang (misalnya : operasi pada bilangan yang dinormalisasikan) 00E10h- Dipesan 00FFFh 01000h- Dipesan 02FFFh (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

298

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

299

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

300

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.

301

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.

302

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

303 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:

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.

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

304 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

305 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.

306

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

307 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.

308

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 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

309

(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

310 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

311 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

312 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

313

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.

314

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.

315

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

316 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

317 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).

318 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.

319 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. 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.

320 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

321 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, , 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:

322 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

323 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

324 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

325 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

326 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

327 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

328 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.

329 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.

330 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,

331 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.

332 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

333 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-

334 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

335 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

336 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

337 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.

Decode Execute Writerback Cycle

11 12 1 13 14 11 12 2 13 14 11 11 12 3 14 13 4 15 16 14 13 14 5 16 15 6 16 7 15 16 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.

338 Decode Execute Writerback Cycle

11 12 1 13 14 11 12 2 14 11 13 12 3 15 16 14 11 13 4 16 15 14 5 16 15 6 16 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.

Decode Window Execute Writerback Cycle

11 12 1 13 14 11,12 11 12 12 2 15 16 13,14 11 13 11 3 14,15,16 15 14 14 13 4 15 16 15 5 6

Gambar 14.5 Out-Of-Order Issue dengan Out-Of-Order Completion

339 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.

340 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)

341 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

342 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)

343 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

344 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

345 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

346 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

347 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

348 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%.

349 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

350 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

351 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:

352 - 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

353 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.

354 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.

355 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

356 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:

357 - 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

358 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

359 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

360 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

361 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

362 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

363 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.

364

Gambar 15.3 Pengkodean Langsung

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.

365 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

366 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)

367 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

368 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,

369 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.

370 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

371 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; adalah pengembangan dari mikroprosesor (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

372 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

373 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.

374 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,

375 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

376 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.

377 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

378 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: ) 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

379 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

380

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

381 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.

382 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

383 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: 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.

384 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: 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

385 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.

386 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

387 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.

388 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

389 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

390 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

391 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.

392 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

393 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

394 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

395 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

396 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

397 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,

398 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),

399 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

400 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:

401 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)

402

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

403 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

404 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 ). Kondisi seperti ini dapat memperbaiki sistem penghematan daya. CPU dalam moda „sleep‟, tetapi IMC masih dalam

405 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

406 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 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

407 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

408 (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,

409 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.

410

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

411 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.

412

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

413 (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)

414

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.

415 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

416 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

417 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

418 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.

419 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

420 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

421 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 Frekuensi VCore Power Nama Dirilis tanggal (MHz) (volt) (watt) Athlo 500 1,6 42 Agustus 1999

422 n 500 Athlo Agustus 1999 550 1,6 46 n 550 Athlo Agustus 1999 600 1,6 50 n 600 Athlo Agustus 1999 650 1,6 54 n 650 Athlo Oktober 1999 700 1,6 50 n 700

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

423 ini diproduksi dan dirilis beberapa bulan kemudian setelah prosesor K7 Argon.

Tabel 17.10 Daftar Prosesor Athlon Corenamed Pluto Frekuensi VCore Power Dirilis Nama (MHz) (volt) (watt) tanggal Athlon Januari 550 1,6 31 550 2000 Athlon Januari 600 1,6 34 600 2000 Athlon Januari 650 1,6 36 650 2000 Athlon Januari 700 1,6 39 700 2000 Athlon November 750 1,6 40 750 1999 Athlon Januari 800 1,7 48 800 2000 Athlon Februari 850 1,7 50 850 2000 Athlon Februari 900 1,8 60 900 2000 Athlon Maret 950 1,8 62 950 2000

424

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 Frekuensi VCore Power Dirilis Nama (MHz) (volt) (watt) tanggal Athlon 1000 1,8 65 Maret 2000 1000

425 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

426 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) Frekuensi Power Dirilis Nama VCore (volt) (MHz) (watt) tanggal Athlon Juni 650 1,7 36,1 650 2000 Athlon Juni 700 1,7 38,3 700 2000 Athlon Juni 750 1,7 40,4 750 2000 Athlon Juni 800 1,7 42,6 800 2000 Athlon Juni 850 1,7 44,8 850 2000

427 Athlon Juni 900 1,75 49,7 900 2000 Athlon Juni 950 1,75 52 950 2000 Athlon Juni 1000 1,75 54,3 1000 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

428 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

429 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.

430

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

431 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

432 Tabel 17.15 Daftar Prosesor AMD Athlon XP Corenamed Thoroughbred Frek. FSB VCore Power Dirilis Nama OEM (MHz) (MT/s) (volt) (watt) tanggal Athlon AXDA1600DUT3C Desember 1400 266 1,6 48,5 XP1600+ 2002 AXDA1700DLT3C 1,5 Juni 2002 Athlon 1466 266 AXDA1700DUT3C 49,4 Desember XP1700+ 1,6 2002 AXDA1800DLT3C 1,5 Juni 2002 Athlon 1533 266 AXDA1800DUT3C 51,0 Desember XP1800+ 1,6 2002 AXDA1900DLT3C 1,5 Juni 2002 Athlon 1600 266 AXDA1900DUT3C 52,5 Desember XP1900+ 1,6 2002 AXDA2000DUT3C 1,6 Juni 2002 Athlon 1666 266 AXDA2000DKT3C 60,3 Desember XP2000+ 1,65 2002 Athlon AXDA2100DUT3C 1733 266 1,6 62,1 Juni 2002 XP2100+ AXDA2200DKV3C 1,65 67,9 Juni 2002 Athlon 1800 266 AXDA2200DUV3C Desember XP2200+ 1,6 62,8 2002 Athlon 266 AXDA2400DKV3C 68,3 2000 1,65 Agustus 2002 XP2400+ Athlon AXDA2600DKV3C 1,65 68,3 Agustus 2002 2133 266 XP2600+ Athlon AXDA2600DKV3D 1,65 Desember 2083 333 68,3 XP2600+ 2002

433 Athlon AXDA2700DKV3D 1,65 Desember 2166 333 68,3 XP2700+ 2002 Athlon AXDA2800DKV3D 1,65 Desember 2250 333 74,3 XP2800+ 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 Frek. FSB VCore Power Dirilis Nama OEM (MHz) (MT/s) (volt) (watt) tanggal Athlon AXDA2000DUT3C 1,6 September 1666 266 60,3 XP2000+ AXDA2000DLT3C 1,5 2003 Athlon AXDA2200DUV3C 1,6 September 1800 266 62,8 XP2200+ AXDA2200DLV3C 1,5 2003 Athlon AXDA2400DKV3C September 2000 266 1,65 68,3 XP2400+ 2003

434 Athlon AXDA2600DKV3C 1,65 68,3 September 2133 266 XP2600+ 2003 Athlon AXDA2600DKV3D 1,65 68,3 September 2083 333 XP2600+ 2003 Athlon AXDA3100DKV3E 1,65 68,3 Desember 2200 400 XP3100+ 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.

435

Gambar 17.21 AMD Athlon K7 Thoroughbred

Tabel 17.17 Daftar Prosesor AMD Athlon XP Corenamed Barton FSB Frek. VCore Power Nama (MT/s OEM Dirilis tanggal (MHz) (volt) (watt) ) Athlon Desember 1867 266 AXDA2500DKV4C 1,65 68,3 XP2500+ 2004 Athlon Februari 1833 333 AXDA2500DKV4D 1,65 68,3 XP2500+ 2003 Athlon 2000 Desember 266 AXDA2600DKV4C 1,65 68,3 XP2600+ 2004 Athlon 1917 Februari 333 AXDA2600DKV4D 1,65 68,3 XP2600+ 2003 Athlon 2083 Desember 266 AXDA2800DKV4C 1,65 68,3 XP2800+ 2004 Athlon 2083 Desember 333 AXDA2800DKV4D 1,65 68,3 XP2800+ 2004 Athlon 2000 400 AXDA2900DKV4E 1,65 68,3 Desember

436 XP2900+ 2004 Athlon 2166 Februari 333 AXDA3000DKV4D 1,65 68,3 XP3000+ 2003 Athlon 2100 Mei 400 AXDA3000DKV4E 1,65 68,3 XP3000+ 2003 Athlon 2333 Desembe 333 AXDA3200DKV4D 1,65 76,8 XP3200+ r 2004 Athlon 2200 Mei 400 AXDA3200DKV4E 1,65 76,8 XP3200+ 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

437 (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.

438 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

439 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

440 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

441 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).

442 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

443 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

444 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 Frek. VCore TDP Dirilis Stepping OEM Model (MHz) (volt) (watt) tanggal 27 Phenom B2 2100 Maret HD8400WCJ3BGD 8400 2008 1,1- 95 23 Phenom 1,25 B3 2100 April HD8450WCJ3BGH X3 8450 2008 Phenom B2 2300 27 HD8600WCJ3BGD

445 8600 Maret 2008 Phenom HD8650WCJ3B B3 2300 23 X3 8650 GH April Phenom HD8750WCJ3B B3 2400 2008 X3 8750 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

446 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) Frek. HT TDP Nomor Step- VCore Dirilis (MHz) (MHz) (watt OEM Model ping (volt) tanggal ) HD91 27 Phenom 1,1- 000B B2 1800 1600 65 Maret 9100e 1,15 J4BG 2008 D 2200 1800 HD95 19 Nov. 00W Phenom 9500 B2 2007 CJ4B 1,1- 95 GD 1,25 2200 1800 27 HD95 Phenom X4 B3 Maret 50W 9550 2008 CJ4B

447 GH 2300 1800 HD96 19 Nov. 00W Phenom 9600 B2 2007 CJ4B GD HD96 Phenom 9600 19 Des. 0ZW B2 2300 1800 Black Edition2 2007 CJ4B GD 2300 1800 HD96 Phenom X4 50W B3 9650 CJ4B GH 2400 1800 HD97 Phenom X4 50W B3 9750 CJ4B 27 GH Maret 2400 1800 HD97 2008 Phenom X4 50XA B3 9750 J4BG 1,2- H 125 1,30 HD98 Phenom X4 5ZXA 9850 B3 2500 2000 J4BG Black Edition2 H

AMD menghadapi persaingan pasar yang ketat melawan Intel di kelas prosesor desktop quad core. Dalam beberapa hal, dapat dikatakan AMD memang

448 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

449 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

450 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.

451 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

452 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.

453 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

454 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

455 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.

456

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

457 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

458 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.

459 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

460 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. 461 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:

„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.‟

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

462 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.

463 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.

Text

Audio Image Multimedia Video Animatio n

Gambar 18.1 Elemen Multimedia

464 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,

465 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

466 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

467 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,

468 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

469 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,

470 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.

471 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

472 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

473 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.

474 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

475 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]

476 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]

477 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]

478 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]

479 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]

480 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.

481

482