ARSITEKTUR KOMPUTER
Pada bab ini, kita mengawali pembahasan kita mengenai arsitektur komputer. Kita memulainya dengan mendeskripsikan apa yang dimaksud dengan arsitektur komputer dan apa pula yang dimaksud dengan arsitektur rumpun komputer (computer-family). Bagian 1.1 mengemukakan tinjauan singkat mengenai sejarah perkembangan arsitektur komputer dalam konteks teknologi yang berubah secara cepat. Pada Bagian 1.2, kita membahas kategori dasar dari arsitektur komputer. Bagian 1.3 dan 1.4 mengenalkan sifat yang dapat membuat arsitektur komputer menjadi baik.
ISTILAH KUNCI Architectural merit (manfaat arsitektur) Penilaian kualitas arsitektur komputer yang terutama didasarkan pada daya terapnya untuk pemakai yang dimaksud, daya tempanya, dan daya kembangnya. Benchmark Program standart yang digunakan untuk mengukur kecepatan suatu komputer dibandingkan dengan kecepatan komputer lain yang menjalankan program yang sama. Kompatibilitas Kemampuan menjalankan program yang sarna.
berbagai
komputer
yang berbeda
untuk
Multiprosesor Komputer yang memiliki lebih dari satu prosesor, seperti array prosesor, prosesor asosiatif, atau komputer multiple-prosesor. Metrik kinerja Ukuran kecepatan komputer; yang kadang-kadang ini diberi istilah yang sudah tertentu, misalnya millions of instructions or per second (MIPS) atau millions of floating-point operations per second (MFLOPS), dan kadang-kadang istilahnya berkaitan dengan komputer standart, misalnya VAX 11/780. Prosesor pipeline Prosesor yang mencapai paralelisme dengan cara saling melengkapi operasi dari beberapa instruksi, masing-masing berada dalam tahap eksekusi yang berbeda. Set Register Set register operasional dari suatu komputer, yang dapat diubah oleh programmer dengan menggunakan set instruksi komputer tersebut. Arsitektur komputer adalah desain komputer yang meliputi set instruksi, komponen hardware, dan organisasi atau susunan sistemnya. Ada dua bagian yang pokok untuk arsitektur komputer: instruction-set architecture (ISA)/ arsitektur set instruksi dan hardware-system architecture (HSA)/ arsitektur sistem hardware. ISA
8
meliputi spesifIkasi yang menentukan bagaimana programmer bahasa mesin akan berinteraksi dengan komputer. Pada umumnya, komputer dipandang dari segi ISAnya, yang menentukan sifat komputasional komputer. Sebaliknya, HSA berkaitan dengan subsistem hardware utama komputer, yang meliputi central processing unit (CPU)/ unit pemrosesan sentral, sistem penyimpanan, dan input-output (I/O) system/ sistem input-outputnya (yang merupakan interface komputer terhadap dunia luar). HSA mencakup desain logis dan organisasi arus data dari subsistem, dan oleh karenanya tingkat HSA yang luas akan menjadikan mesin dapat beroperasi secara efIsien. Sebaiknya dibedakan antara arsitektur komputer dengan pengimplementasiannya. Implementasi adalah realisasi komputer dalarn hardware dan mencakup pilihan teknologi, kecepatan, biaya, dan sebagainya. Arsitektur tidak menentukan implementasi, dan sebaliknya, namun masing-masing saling mempengaruhi. Perlu anda catat, bahwa secara umum, dua komputer yang mempunyai ISA yang sarna akan menjalankan prograrn yang sarna pula. Dari perspektif yang agak berbeda, kita bisa menganggap bahwa komputer sebenarnya adalah implementasi dari ISA. Implementasi ini meliputi penentuan HSA dan desain fIsiknya. Ada banyak kesarnaan antara mempelajari arsitektur bangunan dan mempelajari arsitektur komputer. Dalam arsitektur bangunan, seseorang dapat mempelajari bangunan secara sendiri-sendiri, misalnya Louvre dan Westminster Abbey, periode sejarah, misalnya masa Renaissance Perancis dan jarnan Byzantinum kuno, dan komponen bangunan, misalnya batu dan batu bataoDalam arsitektur komputer, area studi komparibelnya adalah komputer itu sendiri, seperti Control Data Corporation (CDC) 6600 dan ILLIAC IV; perlode historis, misalnya generasi pertama, kedua, dan ketiga; klasifIkasi arsitektural, misalnya arsitektur mesin von Neumann, array prosesor, dan multiple-prosesor; dan komponen komputer, seperti tabung harnpa udara dan transistor. ISA yang baik umumnya mempunyai banyak implementasi. Komputer personal standart (PC), misalnya, ada dalarn berbagai kinerja, reliabilitas, ukuran, biaya, dan HSA; narnun semua PC Gika berdasarkan pada IBM PC) pada dasarnya mempunyai ISA yang sarna. Hal ini mengarahkan kita secara langsung ke konsepsi computer-family architecture, yang seperti sebuah arsitektur komputer, kecuali bila spesifIkasinya memungkinkan berbagai implementasi secara luas. Untuk mencapai variasi yang bermacarn-macarn tersebut, kadang-kadang spesifIkasinya membiarkan fasilitas HSA atau implementasinya tidak dispesifIkasi dulu; yang umumnya hal ini mencakup teknologi, arus kontrollogis, waktu pengoperasian, dan ukuran memori.
9
Jadi, computer family adalah set implementasi yang menggunakan ISA yang sarna. Kembali, ada persarnaan antara arsitektur bangunan dan arsitektur komputer. Developer biasanya menciptakan "family of houses" (rumpun rumah) dengan carn mengulangi rencana pembuatan lantai yang sarna. narnun dengan bahan yang berbeda. dan membuat bentuk taman untuk membedakan penarnpilan dari tiap rumah. Arsitek komputer menciptakan rumpun komputer dengan menggunakan berbagai teknologi, ukuran memori, keeepatan, sehingga aka.. membedakan kinerja (penarnpilan) dari setiap model dalarn satu rumpun tersebut. International Business Machines Corporation (IBM) pertama kali mengenalkan ide mengenai rumpun komputer pada awal tabun 1960-an, ketika ia meluncurkan arsitektur rumpun System/360-nya. Rumpun ini mempunyai jalur komputer yang lengkap, yang meliputi model 20, 30, 40, 44, 50, 65, dan 91. Komputer yang berbeda dalam rumpun tersebut mempunyai jumlah memori yang berbeda, menggunakan teknologi yang berbeda. mempunyai struktur bus yan~ berbeda, dan keeepatan bekerjanya juga berbeda. narnun semua model dalarn rumpun tersebut dapat menjalankan program yang sarna. Perusahaan komputer lain juga mengenalkan rumpun komputer. Digital Equipment Corporation (DEC), yang merupakan pelopor dalam minikomputer, mengenalkan rumpun PDP-8 pada tabun 1965, rumpun PDP-ll pada tabun 1970, dan rumpun VAX-ll pada tabun 1978. CDC memunculkan rumpun CDC 6000 pada awal tabun 1960-an, yang berkembang menjadi seri CYBER 170 pada tabun 1970-an. Persis sarna seperti famili dalarn dunia binatang, famili atau rumpun komputer berevolusi dan berubah. Sebagai contoh, walaupun ffiM System/360 tetap stabil selarna beberapa tabun, narnun di dalamnya ada beberapa perubahan keeil dan juga perubahan yang pokok. Modiftkasi besar-besaran terjadi pada awal tabun 1970-00, yang menghasilkan rumpun System/370, dan modiftkasi ini terulang lagi pada tahun 1988, yang menghasilkan Enterprise System Architecture/370. Dalam siklusnya. ada juga perubahan keeil yang terus terjadi sepanjang kehidupannya. Kompatibilitas adalah kemarnpuan berbagai komputer (komputer yang berbeda) untuk menjalankan prograrn yang sarna. Umumnya, arsitek merancang upward compatibility (kompabilitas meningkat), yang memungkinkan anggota rumpun yang berunjuk-kerja tinggi untuk menjalankan program yang sarna seperti yang dijalankan oleh anggota yang berunjuk-kerja rendah. Lawannya adalah downward compatibility (kompatibillitas menurun), yang tidak selalu bisa didapatkan, karena aQggota rumpun yang berkinerja tinggi biasanya memiliki fasilitas yang tidak dimiliki oleh anggota yang berkinerja rendah. Kompatibilitas meningkat memberikan perlindungan
10
kepada software pemakai, karena ia dapat mengubah kinerja komputer menjadi tinggi.Forward compatibility(kompatibilitaske depan)mengacupada kompatibilitas antara suatu rumpun dengan rumpun komputer lanjutan atau turunannya. Sekali lagi, perusahaan memelihara kompatibilitas ke depan untuk memberi keuntungan kepada pemakai akan pemekaian softwarenya, sehingga pemakai tersebut askan selalu setia dengan rumpun yang diciptakan perusahaan tersebut.
1.1 PERSPEKTIF HISTORIS Teknologi komputer telah berkembang dengan cepat sejak akhir tahun 1940an, ketika John Atanasoff dari Iowa State University menciptakan komputer digital elektronik yang digunakan secara khusus, yaitu ABC (Burks and Burks, 1988: Mollenhoff, 1988). Komputer generasi pertama adalah komputer jenis mesin laboratorium dan diantaranya adalah ENIAC (Burks and Burks, 1981), EDV AC, EDSAC (Samuel, 1957), dan Mark-I. J. Presper Eckert dan John Mauchly merancang dan membuat ENIAC, yang bukan merupakan komputer penyimpan program, dan mereka juga mengerjakan perancangan EDSAC, yang semuanya dikerjakan di Moore School of the University of Pennsylvania. John von Neumann adalah konsultan untuk proyek ENIAC tersebut dan ia juga memberikan kontribusi pada rancangan EDV AC. Maurice Wilkes, yang juga bekerja pada proyek EDV AC ini, kembali ke Inggris dan merancang EDSAC, yang ia bangun di Mathematical Laboratory pada University of Cambridge (Wilkes, et aI., 1951). Sementara itu, Howard Aiken mengembangkan Mark-I dan turunannya, yaitu Mark-II, Mark-III, dan Mark-IV di Harvard University. Pada pertengahan tahun 1940-an, von Neumann dan para koleganya (Burks, et aI., 1946), dengan mengikuti proyek ENIAC, menemukan berbagai inovasi arsitektur dan para perancang segera mengambil ide darinya tersebut untuk diterapkan pada mesin mereka yang bam, seperti IAS pada Princeton's Institute of Advanced Studies. Walaupun Mark-I dan Mark-II menggunakan relay elektromagnetis, kebanyakan mesin awal ini menggunakan teknologi tabung hampa udara. Transistor belum ditemukan, dan tabung hampa udara adalah satu-satunya elemen switch non-mekanik yang dikenal pada saat itu. Mesin komersil pertama, yaitu Univac (Eckert, et aI., 1951), menggunakan tabung hampa udara (vacuum tube). Vacuum tube memiliki waktu switching yang cepat dalam mikrosecond, namun ia banyak mengkonsumsi daya (watt, bukan hanya bikrowatt), dan akibatnya ia menghasilkan panas yang tinggi. Komputer awal berisi puluhan ribu vacuum tube, namun keperluan dayanya,
11
penghasilanpanasnya,dan reliabilitasnyaterbataspada ukuran praktisdari komputer yang hanya mempunyai puluhan ribu switch seperti itu. Berikut adalah pemyataan yang diungkapkan oleh John von Neumann pada tahun 1951, yang menjelaskan lamanya perkembangan komputer sehingga ia bisa terbentuk. Dua mesin komputerisasi vacuum tube besar yang terkenal terdapat dalam keberadaan dan operasinya.Kedu~ya terdiri sekitar 20.000 organ switching.Salah satunya adalah mesin vacuum tube. (Ia dipunyai oleh U.S. Army Ordnance Department, Ballistic Research Laboratories, Aberdeed, Maryland, sebagai penandaan "ENIAC"). Yang lainnya adalah campuran yaitu vacuum tube bagian dan relay elektromagnetis bagian. (Ia dipunyai oleh ffiM Corporation, dan ditempatkan di New York, sebagai penandaan "SSEC."). Mesin ini cukup lebih besar dari pada ukuran mesin komputerisasi vacuum tube yang muncul pada keberadaan dan operasinya pada beberapa tahun berikutnya.DimungkWcanbahwa setiap mesin ini terdiri atas 2000 sampai 6000 organ switching. (Sebab kemundurannya adalah karena perlakuan atas memorinya, yang tidak kita bahas disini). Dimungkinkan pula bahwa dalam beberapa tahun yang akan datang, ukuran mesin akan meningkat lagi, namun nampaknya bahwa 10.000(atau mungkin beberapa kali 10.000) organ switching akan bisa diungguli oleh teknik dan pemikiran baru yang diterapkan. Jelasnya, kim-kira 104 organ switching nampaknya akan menjadi order besaran yang tepat untuk mesin komputerisasi (von Neumann, 1951, pp.12-13). John Barden, Walter Brattain, dan William Shockley dari Bell Laboratories menemukantransistorpada tahun 1948(Leeds,et al., 1968).Walaupunpenemuannya tersebut tidak berpengaruh langsung pada industri komputer yang masih sangat baru, namun teknologi transistor segera berperan pokok dalam pengembangan komputer. Transistormembutuhkandaya yang lebih sedikit dari pada vacuum tube, dan ia juga lebih kecil dan lebih reliabel. Pada awal tahun 1960-an,hampir semua komputer menggunakan teknologi transistor. Penemuan transistor ini mengakhiri kelemahanyang disebabkandenganpenggunaanvacuumtube pada sejumlahelemen switchingdalam komputer,dan dengansegeraparaperancangkomputermembangun komputer yang berisi ribuan switches. Ini merupakan komputer generasi kedua. Jika transistor merupakanterobosan pertarnadalam teknologi komputer, maka terobosan yang kedua adalah magnetic-core memory (memori inti magnetis). Magnetic-core memory adalah memori yang menyimpan informasi dalam elemen magnetis yang berbentuk donat tipis, yang disebut core (inti). Walaupun mahal, teknologi magnetic-corememberikanreliabilitasdan kecepatanyang tidak mungkin dicapai pada saat itu. Lebih dari itu, tidak seperti vacuum tube, memori inti ini tidak memerlukan daya untuk menyimpan nilainya, sebab core adalah magnet yang permanen. Teknologi memoricore dan transistorditerapkandalam desain komputer 12
pada waktu yang sama. dan mereka ini mendominasi industri komputer sepanjang awal taboo 1960-an. Namoo, magnetic-core memory masih mempunyai keterbatasan mengenai waktu aksesnya dan ia berbiaya mahal. Biaya satu megabyte (MB) dari 1-1JS memori
inti magnetis adalah sekitar.$1 juta.
Komputer awal berbiaya ratusan ribu hingga jutaan dolar. Bagian terbesar pembiayaan tersebut adalah ootuk biaya desain, teknik, dan pengembangan yang dilakukan dengan riset dasar. Biaya produksi komputer juga besar, khususnya untuk biaya pembuatan memori core. Sebaliknya. pada taboo 1991, harga memori keadaan solid sebesar 1 MB hanyalah sekitar $100, yang kecepatannya delapan kali lebih cepat dibandingkan dengan memori magnetic-core, dan biaya untuk membangun chip CPU hanyalah sekitar $20. Karena komputer pada mulanya mahal, maka tujuan utama desain adalah untuk memaksimalkan daya gunanya yaitu menjaga agar CPU berumur selama mungkin dan hasilnya terdapat banyak pengembangan komputer pada waktu tersebut. Para perancang menggunakan prosesor I/O khusus untuk mengurangi beban CPU dalam menjalankan operasi I/O. Penggunaan batch-processing operating system (sistem pengoperasian dengan pemrosesan batch) menghilangkan ketidakefisiensian yang menyebabkan intervensi operator langsung. (Sistem pengoperasian dengan pemrosesan batch adalah sistem yang memuat dan menjalankan program secara otomatis, sehingga ia bisa mengurangi beban kerja operator dan mempercepat jalannya program). Pemunculan multi-programming operating system (sistem pengoperasian multi-programming) menghasilkan daya guna CPU yang lebih baik, karena sebuah program bisa menggunakan CPU, sementara yang lai menunggu operasi I/O. (Sistem operasi multi-programming memuat dua atau beberapa program dalam memori sekaligus, dengan menempatkan setiap program dan datanya dalam bagian memori yang berbeda dan tidak bertumpuk. Ketika' salah satu program berjalan, maka yang lainnya tetap diam. Ada hardware khusus yang memungkinkan sistem pengoperasian tersebut ootuk menunda program yang sedang dijalankan dan mentransfer kontrol ke salah satu program yang ditunda). Inovasi arsitektur yang diperlukan untuk mendukung prosesor I/O dan multiprogramming adalah hardware yang secara efisien dapat digunakan untuk menukar kedudukan, interupsi, proteksi memori, dan relokasi program. Kita akan membahas topik ini pada Bab 2 dan 3. Inovasi arsitektur utama bersamaan dengan evolusi teknologi. Pada awal tabun 1960-an, ffiM mencanangkan gagasan mengenai arsitektur rumpun komputer dan menetapkan efektivitas unit kontrol mikroprogram (yang akan dibahas pada Bab 2). Juga. pada waktu yang sama. Burroughs mengenalkan execution-stack architecture dan memberikan dukungan hardware untuk bahasa pemrograman tingkat tinggi. (Stack adalah peralatan penyimpanan, dimana item terakhir yang disimpan adalah
13
--.
..
item pertama yang dikeluarkan; arsitektur execution-stack menggunakan stack sebagai bagian terpadu dari CPU-nya). Untuk meningkatkan kecepatannya, CDC memunculkan pipelining (pemrosesan assembly-line, yang akan dibahas secara singkat) dan beberapa unit aritmetik dalam CPU-nya. Pada akhir tabun 1960-an, para penelitidari Universityof Illinoismembangunkomputeryang disebut ll...LIAC IV, yang merupakan komputer paralel tinggi. h Semua mesin di atas menggunakan small-scale integration (SSI) (integrasi skalakecil),memorisolid-stateatau memorimagnetic-core,dan sistempengoperasian batch. (Dalam integrasi berskala kecil, perusahaan membuat beberapa transistor pada satu chip). Secarabersama-sama,atributini melakukanpencanangankomputer generasi ketiga, yang dikembangkan oleh arsitek antara tabun 1963 sampai 1975. Jangka waktu 20 tabun antara 1965 sampai 1985 terjadi evolusi yang cepat dalam teknologi. Perusahaan pertama kali mempelajari cara menghasilkan sirkuit dengan menggunakan SS!. Kemudian mereka mengembangkan medium-scale integration (MSI) (integrasi berskala menengah), dan menghasilkan sirkuit yang mempunyairatusan switch(transistor).Pertumbuhanberjalancepat, dan pada tabun 1973, Intel Corporation memproduksi mikroprosesor-nya yang pertama, yang dimasukkan ke dalam CPU pada satu chip. MikroprosesorIntel yang pertama berisi beberapa ribu transistor. Pada tabun 1990, dengan menggunakan very-large-scale integration (VLSI) (integrasi berskala sangat luas), Intel memproduksi chip CPU yang berisi lebih dari satujuta transistor.Proyeksi untuk tabun 2000 menempatkan peluang transistor pada 100 juta transistor per chip, yang menunjukkan alangkah pesatnyaperkembanganteknologiini dan menunjukkanbahwa ia terus berkembang. Gambar 1.1 menggambarkanjumlah transistoruntuk mikroprosesorsatu chip dalam rumpun mikroprosesor Intel. Dengan perkembangan VLSI dan pertumbuhan teknologi solid-state, maka memori yang besar juga menjadi bisa diandalkan, cepat, dan murah. Akibatnya, kecepatan memori meningkat, dan ukuran serta hatganya menjadi turun. Mesin sekarang termasuk komputer generasi keempat. Ada sejumlah fasilitas yang menjadisifat mesintersebut,yaitukomponenVLSI, memori solid-state,sistem pengoperasian time-sharing, dan memori virtual (yang akan dibahas pada Bab 4), dan mesin ini dapat digunakan untuk menjalankan bahasa pemrograman tingkat tinggi. (Sistem pengoperasian time-sharing adalah sistem pengoperasian yang membagi CPU yang ada untuk digunakan oleh beberapa pemakai, sehingga para pemakai bisa menggunakan CPU secara sendiri-sendiri).Sebagaimana yang telah dikemukakan, bahwa teknologi software maupun teknologi hardware telah berkembang sepanjang tiga generasi komputer yang pertama. Bagaimana dengan masa depannya? 14
Untuk arsitekturCPU yang dinyatakandapat dimanfaatkan100persen, temyata teknologi membatasikeberadaandaya komputerisasinya,yang diukur dalam operasi per detik. Masalahnya adalah bahwa permintaan siklus komputasi selalu melebihi siklus yang dapat dicapaiteknologiyang barn. (Computationcycle!sikluskomputasi, yang juga disebut clock cycle, adalah unit persamaan komputasi kuno untuk satu detikan jam tersentral, yang menyerampakkan kejadian yang terjadi di dalam komputer).Aplikasikhusus rnisalnyasimulasisistemfisikyang kompleks,pencarian sumber gempa, peramalan cuaca, pemodelan molekuler, desain elekronik, dan pemrosesan tampilan mempakan kebiasaan aplikasi yang membutuhkan siklus komputasi yang lebih luas, yang bahkan melebihi mesin yang tercepat saat ini. Kecepatan, dimana komponen dapat beroperasi dan signal dapat berjalan dan akhimya menyamai kecepatan cahaya membatasi arsitektur konvensional (von Neumann, yang akan dibahas pada Bagian 1.2.1).Namun, aplikasi khusus ini terns menjadikan permintaankomputer yang meningkat. Oleh karenanya, ada kebutuhan yang mendesak akan komputer yang lebih cepat.
16M 8M 4M 2M 1M
~: '" c: 512 K IV ::> 15 0 ~ u
256 K
g-.8 '" 128 K U._ ~
-'E ~ '"
64 K
]~
32K
8086 (29 KI
16 K 8K 4K
4004 (2.3 KI
2K 1~
1~'1~
8080 (6KI
1~
1~
1~
1~
1~
1~
1~
1~
1~
1~
Date
Gambar 1.1. Logarithm of transistor count (vertical axis) for key members of Intel's microprocessor family. The numbers in parentheses under the CPU model number give the transistor count in thousands (K) and millions (M); the transistor count for model 80586 is projected. 15
Ada dua pemecahan: Mengubah teknologi atau mengubah arsitektur. Jika arsitektur masih tetap sarna,maka teknologinyahams berbeda, dan hasilnya adalah rumpun komputer. Hasilnya, pemecahan ini hanya memberikan sedikit bantuan. Bagaimana bila mengubah arsitektumya? Cara dasar untuk meringkas siklus komputasi dari teknologi yang ada adalah dengan cara membubuhkan paralelisme ke dalarn desain, dan hanya ada beberapa cara untuk melakukan hal ini: 1. Membangun array prosesor, yaitu komputer yang mencapai paralelismenya dengan menggunakanbeberapakomponenCPU, atau elemen pemrosesan(PE). Satu unit kontrol mengontrol PE, dan peningkatankecepatan yang dicapainya adalah proporsional dengan daya manfaat dari PE. Untuk komputer ini, daya manfaatyang efektiftergantungpada komputasi,yang harns terdiriatas beberapa replikasi dari operasi dasar yang sarna pada elemen data yang berbeda. Kita akan secara singkat membahas mesin ini pada Bab 7. 2.
Membangunmesinyang mencapaiparalelisrriedenganmenggunakanpipelining: Arsitek pertama kali menguraikan instruksi (atau operasi aritmetik) menj~i urutan tahapan yang pendek. Ia kemudian memberikan prosesor khusus, yaitu satu prosesor untuk tiap tahap yang ia pipeline(hubungkanbersarna), sehingga semua tahap bisa beroperasisecarabersamaanyaitu secara assembly-linehanya pada instruksi atau data yang berbeda. Prosesor pipelined yang dihasiJkan dapat menjalankan bel;>erapainstruksi secara bersarna-sama, dengan setiap instruksi berada dalarn tahap penyelesaian yang berbeda. Efektivitas pipelining tergantungpada sifat ISA dari mesin target. Akhir-akhir ini, para arsitek telah mengembangkan set instruksi yang berkaitan dengan pipelining.Arsitekturbarn ini berbedadalarnbanyak hal dengan pendahulunya. Ia hanya menggunakan mode pengalarnatan, dan kebanyakan merupakan instruksi yang sederhana. Ia mempunyai set register yang besar. ArsiteKtur yang dihasilkannya disebut reduced-instruction-set computers (RISC), dan pendahulunya yang mempunyai set instruksi yang canggih disebut complexinstruction-set computers (CISC). Ini untuk membedakannya dengan RISC yang lebihbarn. Boo 6 akan membahaspipeliningdan mengemukakanmasalah perbedaan antara RISC dengan CISCo
3.
16
Membangun multiprocessor computers, yaitu mesin yang mencapai paralelismenyadengan menggunakanbeberapa prosesor yang terpisah. Disini, kecepatannya sangat tergantung pada interaksi yang saling menguntungkan antara software dan hardware. Softwarenya harns dapat menguraikan proses menjadi subproses yang independenatau yang semi-independen,dan hardware dan software harns dapat mendistribusikan subproses tersebut ke berbagai prosesor untuk dijalankan.Yang terakhir,komunikasidan fasilitas sinkronisasi
harus mempunyai biaya pengelolaan (yaitu biaya menjalankan sinkronisasi tidak boleh terlalu besar). Kita akan membahas secara singkat mesin ini pada Bab 7. 4.
Membangun komputer dengan menggunakan arsitektur altematif, misalnya jaringan inti, arsitektur arus data, arsitektur demand-driven,dan array systolic. Para peneliti sedang mempelajari cara altematif tersebut, dan beberapa pembahasan mengenai studi para peneliti ini akan dikemukakan dalam buku ini.
1.2 KLASIFIKASI ARSITEKTUR KOMPUTER Sampai point ini, kita telah membahas tentang pengembangan arsitektur komputer. Pada bagian ini, kita akan mengkategorikan arsitektur komputer dan menetapkan dasar untuk mempelajarinya kemudian di buku ini. Kita mulai dengan mendeskripsikan sifat komputer yang paling sederhana yaitu mesin von Neumann. Komputer tersebut dinamai begitu karena sebagai penghargaan untuk John von Neumann, seorang pelopor dan penemu komputer. Kemudian, kita akan membahas klasiftkasi arsitektur komputer yang berlaku bagi hampir semua komputer yang ada sekarang ini. Kita akhiri pembahasan kita dengan mendeskripsikan empat kategori arsitektur yang sedang dalam perkembangan.
1.2.1 Mesin Von Neumann Sebagian besar, atau mungkin semua, komputer yang anda kenal adalah von Neumann machines (mesin von Neumann), namun beberapa mesin yang dijelaskan pada bagian selanjutnya nanti tidak termasuk. Dalam sebagian besar konteks, istilah computer dan von Neumann machine adalah sinonil!l' Kita akan menyebutkan atau mengatakan komputer dengan kata von Neumann machine (mesin von Neumann) jika komputer tersebut memenuhi kriteria berikut:
*
*
Ia mempunyai tiga subsistem hardware dasar: sebuah CPU sebuah sistem memori utama sebuah sistem I/O Ia merupakan komputer stored-program (program tersimpan). Sistem memori utama menyimpan program yang mengontrol operasinya, dan komputer dapat mengubah programnya sendiri untuk menambah atau mengurangi data lain yang ada di dalam memori.
17 -
*
Ia menjalankan instruksi secara berurutan. CPU menjalankan,atau setidaknya akan menjalankan, satu operasi dalam sekali waktu.
*
Ia mempunyai, atau paling tidak akan mempunyai, satu path antara sistem memoriutamadan unit kontrolCPU;hal ini biasanyadinamakan"vonNeumann bottleneck."
Mesin yon Neumann konvensional (Gb. 1.2a) memberikan satu pathway untuk alarnat dan satu pathway yang kedua untuk data dan instruksi. Harvard architecture (Gb. l.2b) termasuk dalam kelompok mesin yon Neumann. Ia sarna dengan komputer konvensional. Bedanya adalah bahwa ia memberikan pathway independen untuk alamat data, data, alamat instruksi, dan instruksi. Harvard architecture (arsitektur Harvard) memungkinkan CPU untuk mengakses instruksi dan data secara serentak. Komponen utama CPU adalah: *
Control unit (CU), yang mengontrol operasi komputer.
*
Arithmetic dan logic unit (ALU), yang menjalankan operasi aritmetik, logika, dan shift untuk menghasilkan sesuatu.
* *
Register set, yang menyimpan berbagai macam nilai selama operasi komputer. Program counter (PC) (kadang-kadang disebut sebagai instruction counter), yang menyimpan alamat memori utarna dari suatu instruksi. PC adalah bagian dari register set (set register).
Kita dapat menganggap mesin yon Neumann sebagai komputer abstraksi yang menjalankan instruction, yaitu nitai dalam memori yang memberitahu komputer mengenai operasi yang akan dijalankannya. Setiap instruksi mempunyai set instruction field (field instruksi), yang isinya memberikan detail tertentu untuk mengontrol unit, dan setiap instruksi mempunyai instruction format (format instruksi)-nya sendiri, yang merupakan cara penempatan field dalam memori. Instruction size (ukuran instruksi) adalah jumlah unit memori (biasanya diukur dalam byte) yang digunakan oleh instruksi. Untuk instruksi yang beroperasi pada data (contohnya instruksi aritmetik, logika, shift, karakter dan string), datanya merupakan operand bagi operasi, dan urutan item data tempat beroperasinya CPU adalah data stream. Instruction set dari komputer adalah set instruksi yang dapat dijalankan oleh komputer. Setiap komputer mempunyai set instruksi sendiri.
18
;'~~~J~d~'.
~~~,i~~'~~' .i~$~j:!~ ~~~~)fi~~~¥t\~~%~C ".,
Data address pathway
Data pathway
b. Gambar 1.2 Komponen utama dnri mesin von Neumann biasa (a) Arsitektur von Neumann konvensional (b) Arsitektur Harvard
Setiap instruksi mempunyai operation code (op code), yaitu kode angka yang biasanya bisa dijumpai pada field pertama dari instruksi, yang memberitahu komputer mengenai operasi yang akan dijalankannya. Field instruksi yang lain memberitahu komputer mengenai register yang akan digunakan, jumlah dan jenis data argumen, (misalnya, untuk operasi aritmetik dan logika), dan spesifikasi untuk alamat operand. Instruksi juga memberitahu komputer mengenai bit status prosesor yang akan diuji atau disusun dan mengenai apa yang harns dilakukan terhadapnya jika terjadi kesalahan. (Bit status prosesor, yang juga disebut flag, adalah register I-bit khusus yang ada dalam CPU). Program adalah urutan instruksi yang akan dijalankan komputer. Setiap instruksi mempunyai urutan logis dalam program, yang disebut logical address. Bila program berada dalam memori utama, maka setiap instruksi juga mempunyai physical
19
address. Pada waktu mesin von Neumann menjalankan suatu program, maka ia menjalankan instruksi satu persatu secara urut, kecualijika ada satu instruksi yang memberitabukankomputeruntuk tidakmematuhiurutantersebut(rnisalnya,instruksi cabang). Urutan instruksi yang dijalankan komputer adalah instruction stream. Untuk menjaga track instruksi dalam memori, mesin von Neumann menggunakan PC. PC ini "points to" (menyimpanalamat dari) instruksiberikutnyayang akan dijalankan. Selama operasi biasa,unit kontrol menjalankanurutan dua operasi dasar secara terus menerus: instruction fetch dan instruction execution. Urutan ini dinamakan von Neumann machine cycle. Selama instruction fetch (penjemputan instruksi), unit kontrolmenjemputinstruksiberikutnyadari memoriutamadenganmenggunakan alamat yang disimpan dalam PC, dan ia menaikkan PC. Oleh karena itu, setelah penjemputan instruksi, PC menyimpan alamat dari instruksi dalam memori yang akan dijalankan CPU berikutnya. Unit kontrol kemudian menjalankan instruksi pada saat itu, yaitu instruksi yang bam saja dijemput. Selama eksekusi (penjalanan instruksi), CPU pertama kali akan menguraikan kode (decode) instruksi tersebut dan menentukanoperasiapa yang akandijalankan.Ia kemudianmenjalankanoperasi. Yang terakhir, bila ia telah selesai menjalankan instruksi, ia memulai siklus penjemputan lagi dengan menjemput instruksi berikutnya dari memori. Setiap komputermengimplementasikanset instruksi.Manual yang menjelaskan set instruksikomputer disebut (menurutberbagaiperusahaankomputer) "Principles of Operation", Hardware References", Architecture References", dan "System References" . Untuk meningkatkan kecepatan eksekusi, arsitek biasanya menerapkan arsitektur von Neumann dengan prosesor pipelined. Arsitek juga menggunakan beberapa unit aritmetik untuk meningkatkan kecepatan CPU, dan ia menyertakan buffer (memori berkecepatan tinggi tingkat menengah), agar kecepatan prosesor sesuai dengan kecepatan memori.
1.2.2 Mesin non-van Neumann Tidak semua komputer merupakan mesin von Neumann. Flynn, pada tabun 1966, mengklasifIkasikan arsitektur komputer menurut berbagai sifatnya, yang meliputi jumlah prosesor, jumlah program yang dapat dijalankan, dan struktur memori. KlasifIkasinya itu mencakup kategori berikut (lihat Gb. 1.3): * Single instructionstream, single data stream (SISD)/ satu aliran instruksi, satu aliran data (Gb.1.3a). Arsitekturvon Neumann termasuk dalam klasifIkasi ini. Komputer SISD mempunyai satu CPU yang menjalankan satu instruksi pada 20
sekali waktu (oleh karenanya disebut aliran instruksi tunggal) dan menjemput atau menyimpan satu item data pada sekali waktu (oleh karenanya disebut
aliran data tunggal).
.
Control signals
(a) Control signals
(b) Control signals
Control signals
Control signals
Memory (c)
Gambar 1.3 Klasifikasi dari Flynn mengenai tigajenis komputer menurut keberadaannya. (a) SISD atau mesin von Neumann (b) komputer SIMD atau array prosesor (c) MIMD atau sistem multiprosesor. (MISD, kategori arsitektur keempat, sekarang sudah tidak ada).
21
*
*
*
Single instruction stream, multiple data stream (SIMD)/ satu aliran instruksi, beberapa aliran data (Gb. 1.3b). Array prosesor tennasuk dalam kategori ini. Mesin SIMD mempunyai sebuah CU yang beroperasi seperti mesin yon Neumann (yaitu, ia menjalankan satu aliran instruksi), namun mesin SIMD mempunyai lebih dari satu PE. CU menghasilkan signal kontrol untuk semua PE, yang menjalankan operasi yang sama, biasanya pada lockstep, pada item data yang berbeda (oleh . karenanya disebut . aliran data banyak). Multiple instruction stream, single data stream (MISD)/ beberapa a1iran instruksi,
satu aliran data. Secara logis, mesin dalam kelompok ini akan menjalankan berbagaiprogram pada item data yang sama. Sekarang, talcada mesinjenis ini, walaupun beberapa sistem MIMD bisa digunakan dengan cara ini. Multiple instruction stream, multiple data stream (MIMD)/ beberapa aliran instruksi, beberapa aliran data (Gb. 1.3c). Mesin MIMD juga disebut multiprosesor. Ia mempunyai lebih dari satu prosesor independen, dan setiap prosesor dapat menjalankan program yang berbeda (oleh karenanya disebut aliran data banyak) pada datanya sendiri (oleh karenanya disebut aliran data banyak).
Mesin SIMD dan MIMD adalah parallel processor (prosesor paralel), karena mereka beroperasi secara paralel pada lebih dari satu data sekali waktu. Arsitektur multiprosesor dapat dibagi menjadi dua kategori, didasarkan pada susunan sistem memorinya:
*
*
Global memory (GM) system architecture!arsitektur sistem memori global. Satu sistem memori global digunakanbersama oleh semua prosesor. Arsitektur komputer berunjuk kerja tinggi pada saat ini adalah dari jenis ini, dan ketiga arsitektur yang ada pada Gb. 13 ditunjukkan dengan memori global. Local-memory(LM) systemarchitecture!arsitektursistem memori lokal.Disini, satu sistempenyimpanandigunakanuntuk setiapprosesor.Multiprosesordengan LM mungkin juga mempunyai GM dan juga disebut multiple processor.
Sekarang, kita akan membahas dua jenis prosesor paralel (SIMD dan MIMD); Bab 7 akan membahas kedua mesin ini secara lebih mendetail.
22
Mesin SIMD Komputer SIMD mempunyai sifat berikut ini: * *
Mereka mendistribusikanpemrosesan ke sejumlah hardware. Mereka beroperasi secara.bersama-sama pada beberapa elemen data yang berbeda.
*
Mereka menjalankan komputasi yang sarna pada semua e1emen data.
,
Oalam mesin SIMO,PE mereka mengaksesmemori dengancarn yang berbeda.
PE-PE dari komputer GM-SIMD secara bersama menggunakan sistem penyimpanan yang sarna, sedangkan PE-PE dari komputer LM-SIMO mempunyai sistem penyimpanan independen. Array prosesor adalah arsitektur SIMO. Ia mempunyai satu CD dan beberapa PE (Gb.1.4). CD tersebut menghasilkan signal kontrol untuk semua PE, yang menjalankan komputasi yang tepat sarna secara serentak (atau tidak melakukan apa-apa sarna sekali), namun dengan data yang berbeda. Istilah unit kontrol dalam konteks SIMO mpanya agak menyesatkan dan perlu mendapatkan penjelasan tambahan. Biasanya, CD itu sendirilah yang mempakan komputer yon Neumann, yaitu mempakan komputer khusus yang lengkap yang mempunyai set register, ALD, dan unit kontrol dari jenis yang akan dijelaskan pada Bab 2. Komputer inf dinamakan sebagai unit kontrol (control unit), karena ia semata-mata dirancang untuk mengontrol PE dalam array prosesor, dan bukan untuk beroperasi sebagai komputer yang berdiri sendiri. Secara historis, arsitektur SIMO mencakup beberapa komponen se1ain unit kontrol dan PE. Ia biasanya memasukkan host komputer (atau hanya disebut host) untuk memuat program, untuk mengkonfigurasi array dari PE, dan untuk mengawasi I/O. Host tersebut biasanya adalah sebuah komputer konvensional yang mempunyai sistem pengoperasian yang telah ditetapkan dengan baik. Arsitek mungkin saja memberikan peralatan I/O khusus untuk memformat kembali array data, misalnya, atau untuk menjalankan I/O yang berkecepatan tinggi.
23
Control unit
Control signals to all PEs
Gambar 1.4 Array prosesor LM-S1MD yang terdiri atas 16 PE, dan satu unit kontrol. PE yang ditunjukkan disini, yang masing-masingdengan memori lokalnya sendiri, disusun dalam array 4 x 4; sehingga namanya array prosesor.
Mesin MIMD Komputer MIMD mempunyai sifat berikut ini: * * 24
Mereka mendistribusikanpemrosesan ke sejumlah prosesor independen. Mereka membagikansumber,termasukmemoriutama, ke prosesor komponen.
* *
Setiap prosesor beroperasi secara independen dan bersarna-sarna. Setiap prosesor menjalankan programnya sendiri.
Arsitektur MIMD yang berbeda mempunyai interconnection network yang berlainan, prosesor yang berbeda, struktur pengalamatan memori yan'g berbeda, dan struktur sinkronisasi dan kontrol yang berbeda. Jaringan interkoneksi memungkinkan prosesor komponen dapat saling berkomunikasi. Kita dapat mengkategorikan komputer multiple-prosesor sebagai tightly coupled atau loosely coupled (Gb. 1.5 dan 1.6), tergantung pada bagaimana prosesor tersebut mengakses tiap memori yang lain. Prosesor dalam multiprosesor yang terangkai dengan ketat (tightly coupled) biasanya menggunakan secara bersarnasama satu sistem memori. Prosesor yang ada dalam multiprosesor yang terangkai dengan longgar (loosely coupled) mungkin juga menggunakan satu sistem memori, namun setiap prosesor juga mempunyai memori lokalnya sendiri dan umumnya menjalankan program diluar memori tersebut. Jadi, komputer yang terangkai dengan ketat dan YaIJ.gterangkai dengan longgar secara berturut-turut sesuai dengan klasifIkasi GM-MIMD dan LM-MIMD. Contoh prosesor GM-MIMD adalah prosesor ganda dari seri CDC 6600 dan Cray XM-P. Contoh prosesor LM-MIMD adalah Carnegie-Mellon Cm* dan Tandem/16. Global memory
... Interconnection
network
... Gambar 1.5 Arsitektur komputer multiprosesor yang terangkai dengan ketat. M =prosesor.
= sistem
memori, P
25
Interconnection network
M
I
I
M
I
!
M
I
I
P
I
I
P
I
I
P
I
I
M
II. · .1 [
M
.. .
p
P
.I
Processors with local memory
Gambar 1.6 Arsitektur komputer multiprosesor yang terangkai dengan longgar. M
P
= sistem
memori,
= prosesor. Tabel1.1
Kategori arsitektural.
Category
Common Name
Examples
SISD (CISC)
Uniprocessor
ffiM PC, DEC PDP-ll, DEC VAX-II
SISD (RISC)
Uniprocessor
MIPS R2000, SUN SPARC, ffiM SystemIR6000
GM-SIMD
Processor array
IILIAC IV, MPP, CM-I
GM-MIMD
Multiprocessor
All existing tightly coupled (shared-memory)multiprocessors (DEC and ffiM)
LM-MIMD
Multiple processor
TandemVI6,IPSCY2
Karena sebagian besar komputer tujuan khusus mencakup prosesor I/O tujuan khusus independen,maka secara logis kitadapat menganggapnyasebagaiarsitektur GM-MIMD. Namun demikian, prosesor I/O-nya biasanya berperan sekunder terhadap prosesor CPU. Yaitu, CPU menjalankannya, menghentikannya, dan memonitor aktivitasnya. Akibatnya, kita akan membatasi penggunaan klasiftkasi MIMD denganhanya memasukkankomputeryang mempunyaiprosesorindependen yang tingginya rata-rata sarna. Dengan mengkombinasikanberbagaiklasiftkasiyang telah dibahaspada Bagian 1.2.2 dan RISC, maka akan dihasilkan enam kategori arsitektur, seperti yang disebutkan pada Tabel 1.1. (Case Studies banyak membahas komputer yang disebutkan pada Tabel 1.1 ini). 26
Arsitektur Lain Para perancang dan arsitek komputer telah mengemukakan sejumlah altematif arsitektur, seperti yang telah kita bahas, rnisalnya arsitektur arus data dan jaringan inti. Dalam mesin yon Neumann, program menentukan arus kontrol. Dalam dataflow architecture (arsitektur arus data), sebaliknya, keberadaan data menentukan kapan mesin akan menjalankan operasi. Model komputasi yang diimplementasikan prosesor arus data, yang disebut dataflow model (model arus data), adalah pada dasamya paralel, dan arsitek telah merancang mesin arus data untuk mengimplementasikan model ini secara efisien. Mesin arus data, seperti komputer MIMD, mempunyai banyak PE independen, namun mereka ini tidak menjalankan program. Ketika prosesor pengawas menemukan data yang dapat digunakan, maka ia merotasikan data dan instruksi ke PE yang menjalankan operasi dan menyampaikan hasilnya ke memori. Karena tak ada program yang berpengertian konvensional, maka arsitektur arus data bukanlah mempakan SIMD ataupun MIMD. Neural network (jaringan inti) secara agak longgar didasarkan pada sistem bilogis. Seperti halnya prosesor arus data, ia tidak menjalankan program konvensional dan oleh karenanya tidak termasuk dalam klasifikasi SIMD ataupun MIMD. Aplikasi yang barn meliputi pemrosesan signal dan rekognisi pola, dan sejumlah pemsahaan sedang mengembangkan peralatan tujuan khusus untuk mengimplementasikannya. Sekarang ini, teknologi berada dalam masa pertumbuhannya. Yang terakhir, beberapa arsitektur tertentu hanya disebut special-purpose machine (mesin tujuan khusus) karena fungsi khusus yang mereka jalankan. Umumnya, menggunakan arsitektur konvensional yang telah dioptirnisasi untuk aplikasi tertentu. Arsitektur ini berbed!l dengan arsitektur konvensional, karena mereka digunakan untuk memecahkan persamaan tertentu atau untuk menangani aplikasi tertentu, rnisalnya array yang sangat besar, database yang sangat besar, atau algoritma yang berparalel tinggi. Yang termasuk dalam kelompok ini adalah mesin artificial intelligence, mesin bahasa tingkat tinggi, mesin pemrosesan tampilan, prosesor penampil tiga dimensi, dan komputer yang mempunyai kontrol gabung. Walaupun mereka ini banyak digunakan oleh pemakai dan bersifat ekonornis, namun kita tidak akan membahasnya dalam buku ini.
27
1.3 MENGUKUR KUALITAS ARSITEKTUR KOMPUTER Sebagaimana arsitektur bangunan, kualitas atau mutu arsitektur komputer tidak mudah diukur. Banyak arsitek komputer menggunakan atribut yang dijelaskan pada bagian berikut ini untuk mengevaluasi mutu arsitektur. Seperti halnya atribut yang menjadikan arsitektur bangunan bermutu, sebagian besar atribut berikut sulit dihitung. Pada hakekatnya, suatu arsitektur yang baik untuk satu aplikasi mungkin saja jelek untuk aplikasi yang lain, dan sebaliknya. Pada bagian ini, kita akan membahas enam atribut mutu arsitektur: generalitas (keumuman), daya terap, efisiensi, kemudahan penggunaan, daya tempa, dan daya kembang (ekpandabilitas). Bab ini diakhiri dengan pembahasan mengenai manfaat arsitektur, kinerja sistem, dan biaya sistem. 83
1.3.1 Generalitas Generalitasadalahukuran besarnyajangkauan aplikasi yang bisa cocok dengan arsitektur.Sebagaicontoh,komputeryang terutamadigunakanuntuk aplikasiilmiah dan teknik menggunakan aritmetikfloating-point(dengan nomor disimpan dengan penunjuk besarnya dan eksponennya)dan komputeryang terutamadigunakanuntuk aplikasi bisnis menggunakan aritmetik desimal (dengan nomor ditampilkan sesuai dengan digit desimalnya). Sistem umum memberikan dua jenis aritmetik. Walaupun nomor instruksi dalam set instruksi bukan merupakan ukuran langsung bagi generalitas komputer, namun.ia memberikan indikasi generalitas. Keanekaragamanmodepengalamatanjugamerupakanindikasigeneralitas.Meskipun demikian, RISe begitu umum walau ia mempunyai set instruksiyang kedl dengan mode pengalamatanyang sedikit.Set instruksidan mode pengalamatanakan dibahas pada Bab 2, dan arsitektur else dan RIse akan dikemukakan pada Bab 6, yang disini juga akan dibahas pipelining. Salah satu pembahasan utama ol~h kalangan peneliti komputer selama tabun 1980-an adalah persoalan bagusnya generalitas. Akhir-akhir ini, persoalan ini mengarah pada opini bahwa generalitas adalah tidak bermanfaat. Generalitas cenderung meningkatkankekompleksanimplementasi.Bagi rumpun komputeryang besar dari berbagai perusahaan, kekompleksan ini mengakibatkan sulitnya ,perancangan mesin. Generalitas juga cenderung membuat compiler optimisasi menjadi lebih kompleks, karena ia harus memilih lebih banyak instruksi ketika menggenerasi (menghasilkan) kode. Juga, generalitas cenderung mengakibatkan kompleksitas,dan desain sistem yang menggunakankomputer akan mengakibatkan kekompleksan software,yang seharusnyadeveloperakan secara mudah mengoreksi kesalahan. 28
Salah satu argumen komersial dalam menerapkan generalitas adalah bahwa, karena ia menyebabkan perancangan komputer menjadi sulit, malm perusahaan yang melakukan perancangan tersebut bisa mengurangi peniruan rancangan oleh perusahaanlain.Tak ada perusahaankomputeryang besar ingin kehilanganpasamya atas rancangan komputer yang ia buat.
1.3.2 Daya Terap Daya terap (applicability) adalah pemanfaatan arsitektur untuk penggunaan yang telah direncanakannya.Buku ini membahaskomputeryang terutamadirancang untuk satu dari dua area aplikasi utama: (1) aplikaSi ihniah dan teknis dan (2) aplikasi komersil biasa. Aplikasi ilmiah dan teknis adalah aplikasi yang biasanya untuk memecahkanpersamaankompleksdan untuk penggunaanaritmetikfloatingpoint ekstensif. Mereka ini adalah computation-intensive application (aplikasi komputasi intensit), yang berarti mereka mempunyairasio operasi CPU ke memori dan operasi I/O yang jauh lebih tinggi dari pada aplikasi lain (walaupun banyak komputasi simbolisnyajuga merupakancomputation-intensive).Aplikasi komersil umum atau biasa adalah aplikasi yang didukung oleh pusat komputer biasa: menghimpun (compiling), menghitung (accounting), mengedit, penggunaan spreadsheet, dan word prosesing, seperti yang ada di komputer secara umum. Area aplikasi lain yaitu yang ada kaitannyadengan mesin tujuan atau penggunaankhusus juga penting, namun sebagaimana telah dikemukakan sebelumnya, mereka tidak dibahas pada buku ini.
1.3.3 Efisiensi Efisiensi adalah ukuran rata-ratajumlah hardware dalam komputer yang selalu sibuk selama penggunaannyabiasa.Arsitekturyang efisien memungkinkan(namun tidak memastikan) terjadinya implementasi yang efisien. Perlu anda catat, bahwa ada pertentangan antara efisiensi dan generalitas. Juga, karena turunnya harga komponen komputer, maka sekarangefisiensitidak terlalu dipikirkanseperti halnya pada awal pengembangan komputer. Namun demikian, arsitektur yang efisien akan memungkinkan terjadinya implementasi berkecepatan sangat tinggi dan berbiaya sangat rendah, dan dalam rumpun komputer yang besar, implementasi yang demikian tersebut sangat diperlukan. Salah satu sifat arsitektur yang efisien adalah bahwa ia secara relatif cenderung sederhana.Karena untuk merancang sistem yang kompleks secara benar begitu sulit, maka kebanyakan komputer mempunyai sebuah komputer inti (core computer) efisien yang sederhana, yaitu CU. CU ini mempunyai layer kontrol 29
disekelilingnya guna memberikan fasilitas yang canggih yang dibutuhkan oleh arsitektur. Kita akan membahas CU pada Bab 3.
1.3.4 Kemudahan Penggunaan Kemudahan penggunaan arsitektur adalah ukuran kesederhanan bagi programmer sistem untuk mengembangkan atau membuat software untuk arsitektur tersebut, misalnya sistem pengoperasiannya atau compilemya. Oleh karena itu, kemudahan penggunaan ini merupakan fungsi ISA dan berkaitan erat dengan generalitas. Defmisi ini jangan dikacaukan dengan istilah 'mudah untuk digunakan' (friendly) yang diperuntukkan bagi pemakai dalam menggunakan komputer. Istilah mudah untuk digunakan ini ditentukan oleh sistem pengoperasian dan software yang ada. bu¥.annya arsitektur dasar. Kita bisa mengambil contoh dari beberapa komputer yang tidak mempunyai kemudahan penggunaan, dengan perancang compiler sulit mengimplementasikan beberapa bahasa pemrograman tingkat tinggi. Set instruksi dari koniputer awal kadang-kadang kekurangan instruksi untUk melakukan operasi yang penting. Akibatnya. para programmer harns menggunakan uIiItan instruksi yang kacau untuk mengimplementasi operasi yang penting tersebut. Sekarang ini, arsitek set instruksi telah mempunyai banyak pengalaman untuk merancang set instruksi, sehingga kelemahan tersebut jarang ditemukan.
1.3.5 Daya Tempa (malleability) Empat ukuran sebelumnya daya terap, generalitas, efisiensi, dan kemudahan penggunaan berlaku untuk arsitektur rumpun komputer. Dua ukuran yang terakhir daya tempa dan daya kembang umumnya berlaku untuk implementasi kompl\ter dalam satu rumpun. Daya terap arsitekturadalah ukuran kemudahan bagi perancang untuk mengimplementasikan komputer (yang mempunyai arsitektur itu) dalam jangkauan yang luas. Lebih spesifIk arsitektumya, maka akan lebih sulit untuk membuat mesin yang berbeda ukuran dan kinerjanyadari yang lain. Secara analogis, bila seseorang menamakan suatu arsitektur rumah sebagai rumah kolonial, maka dimungkinkan rumah tersebut mempunyai ukuran dan gaya yang berbeda dengan yang lain. Sebaliknya, jika arsitektur telah menentukan rencana induknya, maka hanya dimungkinkan sedikit variasi implementasi. Umumnya, arsitektur mencakup banyak gambaran setiap tingkat dengan detail. Rencana dasar atau induk dari rumah kolonial tersebut meJiputiberbagai detail, misalnya tembok, pintu, saluran listrik dan air. Dalam kaitannya dengan komputer personal standart industri, spesifikasinya longgar, seperti halnya spesifikasi pada 30
rumah kolonial tersebut. Pada Apple Macintosh atau IBM PC AT, spesifIkasi arsitektumya jauh lebih lengkap, sehingga semua implementasi hampir sama.
1.3.6 Daya Kembang Daya kembang (expandability)adalahukuran kemudahanbagi perancanguntuk meningkatkan kemampuan arsitektur, misalnya kemampuan ukuran memori maksimumnya atau kemampuan aritmetiknya. Umumnya, spesifikasi rumpun komputer memungkinkan perancang untuk menggunakan ukuran memori yang beIjangkauan luas dalam anggota rumpun. Sebagai contoh, karena arsitektur DEC VAX hanya menentukan ukuran memori secara tidak langsung dan hanya berada dalam batasan luas tertentu, maka komputer VAX mempunyai ukuran memori yang bervariasi yang lebih dari satu faktor 1000. Para perancang dapat memperoleh daya kembang memori ekstemal dengan berbagai cara: Mereka dapat meningkatkan jurhlah eralatan atau mereka dapat meningkatkan kecepatan peralatan tersebut dalam menggerakkan data ke dan dari dunia luar. Banyak arsitektur yang mengabaikan aspek penentuan struktur I/O. Kurangnya spesifIkasi akan meningkatkan daya kembang, namun ia bisa juga meningkatkanjumlah pemrogramankembali yang diperlukanoleh anggota rumpun yang bam. Beberapa komputer mempunyai lebih dari satu CPU. Dalam hal ini, daya kembang juga berkaitan dengan jumlah CPU yang dapat digunakan oleh sistem secara efektif. Barrier (penyangga) pada komputer yang mempunyai CPU lebih dari satu umumnya tidak jelas. Jika programmer sistem mendapatkan kesulitan untuk menyinkronkan CPU-CPU, rnisalnya, maka sinkronisasi ini secara efektif akan membatasi jumlah CPU yang dapat digunakan sistem.
1.4 FAKTOR YANG MEMPENGARUHI ARSITEKTUR KOMPUTER
KEBERHASILAN
Ada sejumlah faktor yang mempengamhi keberhasilan arsitektur komputer. Bagian berikut ini akan membahas tiga diantaranya: manfaat arsitektur, kinerja sistem, dan biaya sistem.
31
1.4.1 Manfaat Arsitektural Ketika meneliti arsitektur komputer tertentu atau arsitektur komputer rumpun, anda dapat memberlakukan keenam ukuran seperti yang dibahas pada Bagian 1.3,
ditambah lagi dengan kompatibilitas. Namun, secara umum, ada empat ukuran
pokokyang menentukankeberhasilanarsitektur, yaitu manfaat arsitekturalnya (architectural merit): 1.
Daya terap. Sebaiknya, arsitektur ditujukan untuk aplikasi yang telah ditentukan.
2.
Daya tempa. Bila arsitekturlebih mudah membangun sistem yang kecil, maka ia akan lebih baile.
3.
Daya kembang. Lebih besar daya kembang arsitektur dalam daya komputasi, ukuran memori, kapasitasI/O, dan jumlah prosesor,maka ia kan lebih baile.
4.
Kompatibilitas (daya serasi-pasang). Lebih kompatibelnya arsitektur dengan komputer sebelurnnya dari runpun yang sama, maka ia akan lebih baik.
Case Studiesyang mengemukakanarsitekturtertentutidak menyebutkansistem yang merniliki kelemahan serius dalam hal generalitas,efisiensi, dan kemudahan penggunaan. Kita ambil gambaran dalam studi kasus tersebut sebagai hal yang ideal, karena kenyataanya semua arsitektur yang berhasil cocok dengan yang di dalam studi kasus tersebut. Satu hallagi mengenai arsitektur komputer rumpun: Walaupun arsitek komputer terus-menerus mencoba merancang arsitektur rumpun yang lengkap, namun biasanya mereka mengabailean penentuan awal dari rumpun tersebut. Implementasi awal akhirnya hanya berfungsi untuk mencari atau menyempurnakan aspek arsitektur yang belum ditentukan tersebut. Demikian pula, gambaran yang telah ditentukan sebelurnnyayang jarang digunakandalam implementasimungkin akan dihapus dan tidak disertakan untuk anggota rumpun berikutnya. Kedua hal ini terjadi dalam pngembangan dua rumpun komputer terbesar, yaitu rumpun ffiM System/370 dan turunannya dan rumpun DEC VAX. Setelah membahas manfaat arsitektur, sebaiknya kita lihat secara singkat tiga
persoalan lain yang mempengaruhi keberhasilansistem komputerkaitannya dengan sisi komersilnya. * Keterbukaan arsitektur. Arsitektur dikatakan open (terbuka) bila perancangnya mempublikasikan spesifikasinya. Jika perancangnya menyimpan detail proprietary-nya, maka ia bersifat closed (tertutup). Pada tahun 1980, permulaan adanya software standart dan paket aplikasi menyebabkan berhasilnya arsitektur,
32
mungkin arsitektur menjadi gambaran yang sangat penting. Dengan adanya ukuran teknologi, PC Macintosh lebih unggul dibandingkan dengan ffiM PC, namun ia merupakan arsitektur tertutup sepanjang hidupnya. *
Keberadaan model pemrograman yang kompatibel don bisa dipahami. Beberapa
komputer yang berparalel tinggi begitu sulit untuk digunakan, sehingga ia hanya menjadi daya tarik bagi para analis untuk menemukan cara barn untuk menggunakannya. Dan pemakai hanya peduli untuk mencari komputer yang mudah digunakan dan bermanfaat baginya. *
Kualitas implementasi awal. Ada beberapa komputer yang nampaknya merupakan mesin yang baik, yang mempunyai software dan sifat operasional yang baik. Namun, komputer ini tidak sukses. Kegagalan pemasarannya ini mungkin saja disebabkan oleh reputasinya yang jelek, yaitu karena model pertamanya tidak dapat diandalkan dan mempunyai cacat pada fisik barang.
Jadi, bagi siapapun yang merencanakan ingin mendirikan perusahaan komputer, ia harns mempertimbangkan hal tersebut. Ia juga harns mempertimbangkan kualitas arsitektur mesinnya. Buku teks mengenai arsitektur atau teknik komputer biasanya hanya menekankan pada persoalan arsitektur.
1.4.2 Kinerja 5istem Kinerja sistem sebagian ditentukan oleh kecepatan komputer. Jadi, ia tidak mengukurmanfaatarsitektur,namun mengukurimplementasinya.Namun demikian, kinerja yang baik sangatdibutuhkanoleh banyak aplikasi,dan para pemakai banyak meluangkan waktu dan tenaganya untuk mengukur kinerja sistem ini. Untuk mengukur kinerja komputer, para arsitek menjalankan serangakian program yang standart, yang disebut benchmark, pada komputer. Benchmark ini memungkinkan arsitek untuk menentukankecepatanrelatif dari semua komputer yang menjalankan benchmarktersebut dan menentukankecepatanabsolutdari tiap komputer. Hasilnya bermanfaat bagi arsitek untuk melaporkan kinerja sistem dengan menggunakan berbagai performance metrics (metrik kinerja), yang menyatakan hasil tersebut berdasarkan kecepatan relatif atau absolut. Pengukuran kinerja komputer ini merupakan tugas yang kompleks. Untuk menggambarkannya secara multidimensional, lakukananalogi pada situasi yang anda pahami saja. Kinerja mobil dapat diukur dengan berbagai cara, diantaranya: *
untuk balapan: waktu yang dibutuhkan untuk mencapai seperempat mil atau kecepatan pada akhir perempat mil. 33
* * * *
untuk pengemudi mobil balap: kecepatan akselerasi, kemampuan menikung, dan kecepatan tertinggi. untuk Guiness Book of Records: kecepatan tertinggi. untuk kendaraan penumpang: reliabilitas (catatan reparasi). untuk kendaraan jarak jauh: kebutuhan bahan bakar Per mil.
Untuk mengukurkineIja mobilrumpun biasa,kita bisa menggunakankelompok kriteria multidimensional. Dalam bagian ini, kita akan mengemukakan sejumlah cara yang dilakukan oleh ilmuwan dalam mengukurkineIja komputer, menunjukkanperbedaannya,dan menunjukkan luasnya masalah dalam membuat kineIja komputer yang lebih baik dari pada yang lain. Pertama, marilah kita bahas area pengukuran umum. Tidak disangsikan lagi bahwa kecepatan prosesor adalah penting. Selain itu, kecepatan,I/ o dan kecepatan operasi sistem juga penting. Biasanya, perlu diperhatikan pula ukuran memori dan sifat jaringan interkoneksi.
.
Juga, kita akan membuat satu pemyataanawal yang berlakubagi semua ukuran dan kaitannya dengan teIjadinya resiko bila kita mengambil satu nomor darinya. Katakanlah bahwa ada lima ukuran kecepatan CPU yang terpisah. Kemudian, anggaplah bahwa ada lima komputer, A sampai E, yang Inempunyai kecepatan seperti terlihat pada Tabell.2. Komputer C memiliki kecepatan 10 kali lebih cepat dari pada komputer A, namun bagaimana dengan komputer B? Kecepatan rataratanya adalah 600 kali lebih cepat dari pada A, namun ia tidak dapat mengatasi masalahnya walau 40%. Dan bagaimana tentang komputer D? Ia mempunyai kecepatan 80 kali dari rata-rata, dan dapat mengatasi 80% masalah. Yang terakltir, bagaimana tentang komputer E, yang kecepatan rata- ratanya adalah 35 kali lebih cepat dari pada A? Ukuran yang tepat bagi pemakai adalah rata-rata ukuran yang dibutuhkan oleh pemakai dalam melakukan pekeIjaannya. Lebih dari itu, ukuran tersebut harns dipertimbangkan sejauh mana pentingnya bagi pemakai. Kita akan segera membahas metode umum penimbangan antara rata-rata ukuran dan kepentingan pemakai ini.
34
Tabel 1.2 Pengukuran kinerja dari lima komputer menggunakan lima metrik yang berbeda
hipotetis dengan
Computer
A
B
C
D
E
Metric 1 Metric 2 Metric 3 Metric 4 Metric 5
1 1 1 I 1
1000 0 1000 0 1000
10 10 10 10 10
10 100 100 100 0
100 5 10 50 100
Speeds in relative quantities per unit time.
Ukuran Kinerja CPU (opsional) Pada bagian ini, kita akan membahas enam cara untuk mengukur kinerja CPU. Namun demikian, untuk mengevaluasi unjuk kerja CPU ini, sebaiknya kita merataratakan ukuran tersebut secara tepat. Mungkin pengukuran kinerja CPU yang paling. umum adalah berapa juta instruksi per detik (MIPS) yang dapat dijalankannya. Kadang-kadang pengukuran MIPS dari komputer dilakukan dengan cara mengukur kecepatan mesin dalam beroperasi, yaitu nilai peak MIPS (MIPS tertinggi)-nya. Ini adalah kecepatan yang tidak dapat dilampaui CPU, namun ia tidak berguna bagi programmer. Yang lebih menjadi minat bagi programmer adalah jurnlah komparatif yangdiberikan oleh benchmark. Sebagai contoh, IDM MIPS atau VAX MIPS berarti bahwa kecepatan kinerja rata-rata berkaitan dengan komputer IDM atau VAX. Kita adapat memperkirakan nilai MIPS yang pantas dengan cara menghitung waktu rata-rata yang dibutuhkan komputer untuk menjalankan instruksinya dan dengan menimbang rata-rata frekuensi penggunaan instruksi. Bagi komputer yang menjalankan komputasi ilmiah dan teknik, MISP bukan merupakan ukuran penampilan yang paling baik. Hal ini karena sebagian besar komputer jenis tersebut merupakan vector machine (komputer vektor), yang hardware-nya telah dioptimisasi untuk menjalankan instruksi vektor. (Vector adalah kumpulan variabel N tinier). Satu instruksi dalam mesin vektor mungkin bisa menjalankan ribuan operasi floating-point. Oleh karenanya, ukuran yang tepat untuk ukuran komputer seperti itu adalah berapa juta operasi floating-point per detik (MFLOPS atau megaflops) atau milyar operasi floating-point per detik (GFLOPS atau gigaflops) yang dapat ia jalankan.
35
Ada dua jenis ukuran benchmark biasa yang digunakan untuk: mengukur kecepatan komputer dalam MFLOPS. (Tentu saja,juga ada MFLOPS tertinggi dan GFLOPS tertinggi,sepertiMIPS tertinggi.Di siniukuran ini biasanyadipublikasikan ke media massa, namun ia memberikan konsep kinerja yang tidak realistis). Salah satu benchmark pertama dan yang dinyatakan kepada umum bahwa kegunaannyauntuk:mengevaluasiMFLOPS adalahUNPACK benchmark.Pertama kali Jack Dongarra dari Argonne National Laboratories menggunakan UNPACK untuk mengukur kecepatan yang diperlukan komputer untuk:memecahkan sistem persamaandalam lingkunganFortran.BenchmarkUNPACK beroperasipada metrik 100 x 100 sampai 1000 x 1000 elemen. Ukuran MFLOPS umum yang kedua adalah Livermore loops benchmark. Ia (biasanya) terdiri dari 24 loop atau simpul Fortran, yang merupakanrefleksikebiasaanumum yang ada di L<j.wrence Livermore National Laboratories. Loop tersebut terutama beroperasi pada set data yang mempunyai 1001 elemen atau kurang sedikit dari pada itu. Ukuran CPU yang lebih lama, yang telah umum digunakan pada tahun 1980 dari pada sekarang ini, adalah Whetstone benchmark, yang menurut H.J. Curnow dan B.A. Wichmann ia bernama compiler Whetstone Algol. Ia didasarkan pada waktu yang dibutuhkan komputer untuk:menjalankan beberapa operasi floatingpoint, termasuk beberapa fungsi umum. Hasil benchmark Whetstone biasanya dinyatakan dalam unit yang disebut Whets, yaitu menurut strukturnya.Benchmark Whetstone tidak dapat melakukan vektorisasisendiri.Munculnya komputasi vektor menyebabkan benchmark Whetstone tidak banyak digunakan. Vectorization (vektorisasi) adalah penggabungan program agar mereka dapat berjalan pada komputer yang mempunyai instruksi vektor secara efisien. Bab 2 akan membahas instruksi vektor, dan Bab 6 akan membahas prosesor vektor. Unit kinerja lain yang biasa digunakan oleh para peneliti adalah VAX unit of performance (VUP) (unit kinerja VAX). VUP adalahukuran relatif. Ia memberikan satu kinerja sistem yang berkaitan dengan sistem DEC VAX 11/780. Karena ia menghasilkankinerjakomparatif,maka ia agak kurangbisa dip~arkan dibandingkan dengan ukuran yang lain. Satu VUP adalah sekitar 0,5 IBM MIPS. Dua benchmark yang lebih barn adalah SPEC Benchmark Suite dan Perfect Club. SPEC Benchmark Suite terdiri atas 10 aplikasiriil yang diambil dari berbagai aplikasi ilrniah dan teknik. Sebagian besar program ini menggunakan aritmetik floating point presisi ganda. Para peneliti yang menggunakan SPEC Benchmark Suite melaporkan hasilnya dalam unit yang disebut SPECmarks. Satu SPECmark kira-kira sama dengan 1 VUP, namun hubungan antara dua unit ini tidak linier.
36
Perfect Club Suite merupakan program riil berskala menurun yang diambil dari ilmu pengetahuan. Diantaranya, ia mencakup studi mengenai polusi udara, supersonic reentry, dinamika struktural, simulasi air, arus transonik, migrasi pusat gempa, dan simulasi sirkuit. Seperti halnya SPEC Benchmark Suite, Perfect Club Suite juga melakukan semuajenis aritmetikdan berbagaijenis kode, yang meliputi kode yang dapat divektorisasi dan yang tak dapat divektorisasi. Ada empat mean yang biasa digunakanketika anda merata-ratakanpengukuran kinerja pada sejumlah uji coba. Misalkan {Xi} adalah set ukuran N, dan {Wi} sebagai set berat N. Maka empat mean-nya adalah sebagai berikut: A
L~ i=l mean aritrnetik dari {~}
=
mean harmonikdari {~}
=N
N
N 1
Li=l
~ N L CW.X ~)
mean aritmetik seimbang dari {~}
mean geometrik dari {X.}
~
=N
=
i=l
I
N LW, i=l I
i=l fix.
Waktu yang dibutuhkan komputer untuk menjalankan satu set program, yaitu total waktu eksekusi, adalah nilai yang umumnya ingin diketahui pemakai. Anda misalkan {Pi} adalah set program N yang waktu eksekusinya adalah {Ti}. Maka, mean aritmetik dari waktu eksekusi tersebut merefleksikan total waktu eksekusi. Bila kinerjanya dinyatakan dalam MIPS atau FLOPS, yang merupakan rata-rata eksekusi dan bukan rata-rata waktu eksekusi, maka mean harmonik dari rata-rata timbal balik untuk program N akan merefleksikantotal waktu eksekusi. 37
Mean aritmetik seimbang memberikan cara pengevaluasian kinerja pusat komputer dalam pendistribusianmuatan kerja. Misalkan, kita telah mengevaluasi waktu eksekusi Ti untuk set program biasa N. Jika program Pi menyatakan muatan kerja sebesar Wi persen, maka mean aritmetik seimbang dari waktu eksekusi merefleksikan waktu eksekusi total untuk program tersebut. Yang terakhir,bila kinerja mesin barn dinyatakan sebagai rasio, seperti halnya pada ffiM MIPS atau VUP, maka kita harns mengalikan waktu eksekusi dari program benchmark jika dijalankan pada mesin referensi dengan rasio kinerja P dari mesin barn tersebut, untuk merefleksikan total waktu eksekusi mesin barn tersebut. Dalam kasus ini, mean geometrikdari produk Ti x P biasanya digunakan untuk merefleksikan waktu eksekusi dari mesin barn. Orang kadang-kadangmenggunakandua indikasi lain untuk mengukur kinerja komputer. Salah satu satunya adalah efisiensi, yang telah kita bahas pada Bagian 1.3.3.Satunyaadalahutilizationratio(rasio kegunaan),yang merupakanrasio antara waktu yang dibutuhkan komputer dalam melakukan komputasi produktif dan total waktu dari operasional sistem. Apabila hardware komputer relatif mahal, maka harns dipertimbangkan rasio efisiensi dan kegunaan ini. Pada waktu sekarang, karena hardware relatif murah, maka pengukuran dengan indikasi tersebut jarang dilakukan. Metrik yang penting selamaproses desain adalahjumlah clock tick per instruction (TPI) (detak jam per instruksi), yang menunjukkan waktu (rata-rata) yang dibutuhkan CPU untuk menjalankan sebuah instruksi. Lebih tinggi kinerja CPU, maka akan lebih kecil TPI-nya. Maka jelas bahwa kinerja CPU sarna dengan hasil waktu siklus jam kali TPI. Bila perancang mengerjakan CPU, maka ia dapat menentukan TPI dari waktu eksekusi dari setiap instruksi dan probabilitas kejadiannya. Perlu anda catat, bahwa TPI adalah tidak tergantung pada teknologi, sementara siklus jam sangat tergantung pada teknologi.
Mengukur Kinerja va dan Sistem Ada dua ukuran kinerja I/O yang penting: operasi bandwidth dan I/O per detik. Tidak seperti halnya ukuran CPU yang telah dikemukakan di depan, kedua ukuran ini tidak dimaksudkan untuk mengukur barang yang sarna. Bandwidth adalah kecepatan I/O dapat dijalankan, biasanya dinyatakan dalam megabyte per second (MBS). Kebanyakan peralatan I/O mempunyai kecepatan transfer tertentu, dan channel I/O yang menghubungkan peralatan tersebut mempunyai kecepatan transfer tertinggi, sehingga ia biasanya dinyatakan dalam MBS. Untuk aplikasi yang melakukan transfer yang banyak, seperti yang terjadi pada aplikasi ilmiah dan
38
teknik, bandwidth I/O menjadi ukuran yang tepat bagi kinelja sistem I/O. Untuk pemrosesantransaksi,denganblok I/O begitu kecil, maka ukuran ukUran kinelja I/O yang lebih tepat adalah I/O operation per second (operasiI/O per detik) yang dapat dijalankan sistem. Kita bisa mengetahui manfaat ukuran ini dengan mengingatbahwa disk lambat biasa memilikikecepatan transfer sekitar 1 MBS dan blok disk mengakses waktu sekitar0,1 detik. Jadi, ia tidak dapat menjalankan lebih dari 10 operasi I/O per detik. Jika setiap operasi I/O mentransfer 512 byte, maka disk lambatini dapat mengaksessekitar5 kilobyteper detik(KBS).Namun demikian, jika blok I/O adalah 100 kilobyte (KB), maka sistem bisa mencapai kecepatan transfer 1 MBS, yaitu 200 kali lebih cepat. Ada ukuran kinelja sistem secara keseluruhanyang sangat lebih komperhensif dari pada ukuran kinelja CPU atau kinelja I/O yang telah kita bahas tersebut. Jumlah transaction per second (transaksi per detik) yang dapat dijalankan sistem merefleksikan kinelja CPU dan I/O dalam cara sedemikian rupa sehingga bisa mempunyai arti bagi pemrosesan transaksi. Transaksi tersebut adalah transaksi biasa yang umumnya digunakan untuk transaksi bank, dan benchmark tertentu adalah benchmark debet/kredit.Ukuran ini mencakup semua operasi CPU dan I/O yang diperlukan untuk menjalankan suatu transaksi: yaitu logging (pemasukan) data ke terminal, mengupdatebeberapa record tunggal ke dalam beberapa file yang besar, dan sebagainya.Walaupun sebagian besar operasi pemrosesan transaksi riil sangat lebih kompleks bila dibandingkan transaksi debet/kredit, namun penilaian (pengukuran) TPS komputer akan memberikan ide atau gagasan mengenai kinelja sistem secara keseluruhan dengan baik.
Ukuran Kinerja Yang Lain Ada tiga metrik yang dapat digunakan untuk sistem memori. Memory bandwidth adalah jumlah megabyte per detik yang dapat dikirimkan oleh memori ke prosesor. Memory access time adalah rata-rata waktu yang dibutuhkan oleh CPU untuk mengakses memori, yang biasanya dinyatakan dalam nanosecond. Memory size adalah volume data yang dapat diampu (disimpan) oleh memori, biasanya dinyatakan dalam megabyte.
1.4.3 Biaya Sistem Seperti halnya kinelja, biaya dalam dolar merupakan sifat yang penting dari sistem komputer. Namun demikian, seperti halnya kebanyakan persoalan kinerja, biaya lebih merefleksikan implementasi dari pada arsitektur. Oleh karena biaya 39
menentukan kelangsungan hidup sistem komputer, maka kita akan membahasnya disini. Bagianpokokdari biayasistemkomputeradalahbiayaperalatanlogikadasarnya, yang sangat bervariasi dari peralatan satu dengan yang lainnya. Keanekaragaman ini narnpalcnyatidak akan berubah. Ia telah menjadi sifat umum, sehingga apabila kita melakukan optimisasipada salah satu sisi (katakan, periurunanbiaya), maka ia akan berpengaruh negatif terhadap sisi yang lain (misalnya,kecepatannyaatau daya andalnya). Akibatnya, keberadaan peralatan yang beragam ini menyebabkan munculnya sejumlah besar rumpun komputer yang berusaha memi liki keragaman dan jumlah peralatan yang banyak. Juga, biaya dan kecepatan peralatan tersebut terus beragarn menurut masanya. Maka, sebaiknya komputer tidak menerapkan jumlah dan kecepatan secara tetap. Biaya dapat diukur dalarn banyak cara, dan biaya selain harga pembelian sistem hardware umumnya juga penting. Metrik biaya lain ini juga bervariasi dari sistem yang satu ke yang lain dan dari waktu ke waktu. Metrik penting yang lajo dan beberapa aplikasi dengan metrik tersebut diperlukan adalah: *
Reliabilitas(keandalan)adalahsangatdiperlukanoleh komputeryang digunakan untuk mengontrol penerbangan, mengontrol kearnanan instalasi nuklir, atau kegiatan apa saja yang mempertaruhkankeselarnatan manusia.
*
Kemudahan perbaikan khususnya penting bagi komputer yang mempunyai jumlah komponen yang besar.
*
Konsumsi daya atau sarna dengan generasi panas, khususnya dibutuhkan oleh sistem yang digunakan untuk ruang angkasa.
*
Berat khususnya diperlukan bagi sistem ruang angkasa.
*
Kekebalan atau kemarnpuan untuk menahan goncangan atau ketahanan dari lingkungan yang tidak mendukung adalah sangat penting untuk sistem yang digunakan dalarn militer, yang memerlukan ketahanan terhadap kesalahan penggunaan secara fisik dan pengaruh kerusakan lingkungan.
*
Kualitas antar-muka sistem software, yang diukur dengan kemudahan penggunaan dan tingkat standartnya, penting bagi komputer personal.
Seperti halnya dalarn pengoptimisasian masalah, untuk menentukan biaya yang paling sesuai kita dapat mengukumya melalui pendefmisian .J11asalah yang akan dipecahkan dan kemudian menentukan metrik yang tepat untuk mendapatkan pemecahan yang terbaik.
40
h
____
RINGKASAN Bab ini mengenalkan konsepsi arsitektur komputer clan arsitektur komputer rumpun.Kita membahassejarahsingkatmengenaikomputer,denganmerigemukakan perkembangan teknologi komputer dan eepatnya evolusi tersebut dalam mempengaruhi arsitektur komputer. Kita kemudian membahaskategoriutama arsitekturkomputer.Penjelasan yang panjang lebartelahkita lakukanterhadapkomponenclanoperasimesinyon Neumann, termasuk gambaranpokok dari mesintersebutsertaeara mesintersebut menjalankan program. Arsitektur komputer diklasifIkasikan menurut jumlah aliran instruksi, jumlah aliran data, dan jenis memori (global atau lokal). Kita telah membahas sejumlah jenis arsitektur"tertentu, termasuk array prosesor dan sistem multipleprocessor. Kita juga membahas berbagai ukuran manfaat atau kegunaan arsitektur, yang meliputi generalitas, daya terap, efIsiensi, kemudahan penggunaan) daya tempa, dan daya kembang. Yang terakhir, kita mengemukakan faktor desain yang mempengaruhi keberhasilan arsitektur komputer rumpun. Boo ini diakhiri dengan pembahasan mengenai berbagai ukuran kineIja komputer.
LATIHAN 1.1
Walaupun pekerjaan arsitektur dan implementasi terpisah, bukan berarti mereka tidak berkaitan. Untuk dua bangunan bersejarah, deskripsikan bagaimana teknologi dari masing-masing waktu mempengaruhi arsitektur mereka. Untuk dua periode waktu, deskripsikan bagaimana arsitektur mempengaruhi teknologi.
1.2
Akselerator vektor adalah komponen CPU khusus yang mempercepat operasi vektor. Misalkan saja anda dihadapkan dua pilihan akselerator vektor untuk komputer skalar. Yang satu menjalankan operasi vektor empat kali lebih eepat dari pada operasi skalar, clan yang satunya 20 kali lebih cepat. Gambarlah rasio kecepatan mesin-mesin tersebut sebagai fungsi persen vektorisasi. (Jika persentasi vektorisasinya adalah 20%, maka 20% dari instruksi akan beIjaian pada akselerator vektor; sisanya yang 80% akan beIjaian pada mesinnya sendiri tanpa pereepatan.
41
42
1.3
Misalkan anda menjadi arsitek di Dynamic Graphics Corp, anda diminta membangun atau membuat akselerator vektor barn untuk komputer skalar. Gambarlahpercepatanvektoryang dibutuhkanuntuk mencapaipenggandaan kinerja sebagai fungsi percepatan unit vektor yang lama untuk vektorisasi 75%.
1.4
Cache adalah buffer (penyangga) besar yang mempercepat sistem penyimpanan. Misalkan ada dua komputer, yang satu mempunyai cache dan satunya mempunyai akselerator vektor. Urhpama cache tersebut meningkatkan kinerja skalar biasa sebesar 50% dan menggandakan kinerja skalar pada loop (simpul) vektorisasi dari komputer cache. Gambarlah percepatan (speedup) akselerator vektor yang dibutuhkan untuk menggandakan kinerja komputer non-cache sebesar dua kali kinerja komputer cache yang. tidak mempunyai akselerator vektor sebagai fungsi persentasi vektorisasi.
1.5
Sebagai presiden pada perusahaan Huge Performance, anda dihadapkan dengan masalah tentang pengalokasian dana R&D (research and development). Salah satu pilihan adalah dana tersebut digunakan untuk meningkatkan compiler mesin anda agar kinerjanya meningkat 10% per tabun. Pilihan yang lain adalah dana tersebut digunakan untuk menambahkan cache, yang akan berfungsi menggandakan kinerja. (Lihat Latihan 1.4) Berapa lama peningkatan compiler akan dapat menyusul pengembangan (pembuatan) cache dalam kinerja?
1.6
Misalkan cache pada Latihan 1.5 harns dirancang kembali setiap tabun, dan pengembangancompilerakan dihentikanbila kinerjatelah digandakan.Kapan biaya pengembangancache menyusul(menyamai)biaya pengembangancompiler?
1.7
Evaluasilah mean harmonik, geometrik, dan aritmetik untuk set pengukuran berikut ini: 25,40, 33, 16, 25, 27, 50, 44, 22.
1.8
Buatlah rumus untuk mean harmonik dalam hubungannya dengan mean aritmetik seimbang.
1.9
Untuk dua set pengukuran N, yaitu {~} dan {Yj},tunjukkan bahwa rasio mean geometrik mereka, yaitu
mean geometrik dari {~} mean geometrik dari {Yj}
sarna dengan mean geometrik dari rasio individual, yaitu {~} mean geometrik dari
1.10 Sebuah sistem memori mempunyai dua kecepatan akses, yaitu Al dan A2. Al menyimpan 20% dari akses tersebut, sedangkan A2 menyimpan (mengarnpu) sisanya yaitu 80%. Berapa rata-rata kecepatan akses? 1.11 Banyak benchmark yang diiklankan menunjukkan nilai kinerja yang jauh lebih besar dari pada yang dapat dicapai dengan masalah yang riil karena benchmark tersebut kecil dan menggunakan set data yang kecil. Sebutkan beberapa alasan mengapa mereka dapat berjalan dengan baik walau tidak menurut sifatnya. 1.12
Misalkan anda mempunyai empat algoritma. yaitu Al sarnpai A4, untuk menyortir data n, dan waktu sortir mereka adalah: lOOn untuk AI, IOn log 2n untuk A2, 3n2 untuk A3, dan 2° untuk A4. Untuk metode apa tiap nilai n tersebut paling cocok digunakan? Jika mesin pipelined memerlukan waktu .
sebanyak0,03n2denganmenggunakanA3, yang mungkindikarenakanadanya vektorisasi, maka bagaimana wilayah optimalitas-nya berubah? Jika untuk n = 100.000 anda keliru memilih A3 dari pada Al atau A2, maka seberapa besar penalti (kerugian) yang anda bayar.
Latihan Untuk Referensi 1.13
Dengan menggunakan manual Case Studies yang ada dalarn buku ini, manual yang ada di perpustakaan, atau Siesiorek, Bell and Newell (1982), eveluasilah jumlah komputer dibandingkan dengan kriteria yang dikemukakan pada Bagian 1.4.1.
43
Masalah Untuk Pembahasan Kelompok 1.14 Dalam proyek desain komputer besar, para teknolog mengeIjakan peningkatan kineIja semikonduktor, sedangkan arsitek bekeIja untuk mengurangi jumlah siklus jam per instruksi dan bekeIja untuk menemukan cara baru untuk membentuk paralelisme. Pada masa sebelumnya, sekarang, dan yang akan datang, sebutkan percepatan relatif yang akan dihasilkan oleh arsitek dan teknolog tersebut.
INDEKS daya terap unit aritmetik dan logika bandwidth benchmark
mean aritmetik pengoperasian pemrosesan batch jutaan operasi floating-point per
buffer (penyangga) unit pemrosesan sentral (CPU) detak jam per instruksi kompabilitas siklus komputasi arsitektur komputer arsitektur komputer rumpun arsitektur arus data aliran data
detik (GFLOPS atau gigaflops)
kompatibilitas menurun efisiensi
kemudahan penggunaan arsitektur stack eksekusi
gaya kembang flag komputer generasi keempat mean geometrik arsitektur sistem hardware arsitektur Harvard
komputer generasi ketiga
operasi I/O per detik 44
manfaat arsitektur
siklus jam arsitektur tertutup komputer set instruksi kompleks aplikasi komputasi intensif rumpun komputer unit kontrol (CU) model arus data benchmark debetlkredit
kompatibilitas ke depan generalitas arsitektur sistem memori global mean harmonik komputer host ffiM MIPS
sistem input-output (I/O) counter instruksi
instruksi
penjemputan instruksi set instruksi ukuran instruksi
format instruksi
jaringan interkoneksi benchmark simpul Livermore alamat logika memori inti magnetis integrasi skala menengah (MSI) waktu akses memori ukuran memori
benchmark LINP ACK
juta instruksi per detik (MIPS) beberapa aliran instruksi, beberapa aliran data (MIMD) prosesor multiple komputer multiprosesor sistem pengoperasian multiprogramming operand prosesor paralel Perfect Club Suite alamat fisik
juta operasi floating-point per
pipelining elemen pemrosesan (PE) program reduced-instruction-setcom-
prosesor pipelined
puter (RISC) sat aliran instruksi, beberapa aliran data (SI1vID) integrasi skala keeil (SSI) mesin tujuan khusus kineIja sistem
komputer generasi kedua satu aliran instruksi, satu alir-
eksekusi instruksi arsitektur set instruksi aliran instruksi arsitektur sistem memori lokal prosesor terangkai renggang daya tempa megabyte per detik (MBS) bandwidth memori mikroprosesor detik (MFLOPS atau megaflops) beberapa aliran instruksi, satu aliran data (MISD) multiprosesor jaringan inti arsitektur terbuka kode operasi (op code) MIPS tertinggi metrik kineIja pipeline array prosesor counter program (PC) set register
an data (SISD) SPEC Benchmark Suite SPECmarks komputer generasi ketiga 45
prosesor terangkai ketit
transaksi per detik ('IPS)
kompatibilitas meningkat VAX MIPS vektor vektorisasi mesin von Neumann
rasio kegunaan
mean aritmetik seimbang benchmark Whetstone
46
unit kinerja VAX (VUP) mesin vektor integrasi skala sangat luas siklus mesin von Neumann Whets