Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Sistem BUS

SISTEMBUS, CPU DAN I/O 3.1 BUS 3.1.1 Jenis Bus Bus Lakal bus lokal umumnya terbagi dalam tiga jenis, yaitu bus alamat, bus data, atau bus control Bus Sistem adalah komponen fungsional independendari komputer. Setiap bus sitem mempunyai sirkuit control sendiri yang disebut bus controller (pengontrol bus), dan dalam setiap pengontrol bus ada arbiter,yang memproses request untuk mengguna kanbus Bus Lokal Yang Diperluas adalah bus lokal dengan ekstensi khusus untuk penggunaan di luar CPU Bus lokalyangdiperluasmempunyaioperasionalyangfleksibeldan memberikan program tambahan (platform)untuk ekspansi sistem.Contohnya adalahIBM PC IJ o Channel Bus dan IBM Micro Channel Architecture(MCA). 3.1.2 Transfer Bus dan Signal Kontrol Bus transfer (transfer bus) adalah transmisi dari satu atau beberapa informasi melewati bus. 3.2 CENTRAL PROCESSING UNIT (UNIT PEMROSESAN SENTRAL)" 3.2.1 ALU Semua komputer mempunyai functional unit (unit fungsional) yang menjalankan operasi aritmetik, logika. dan shift yang dikehendaki oleh set instruksi komputer. 3.2.2 UNIT KONTROL Tugas unit kontrol adalah mengontrol siklus mesin von Neumann: . Menjemput instruksi berikutnya yang akan dijalankan dari memori, menempatkannya dalam register instruksi (IR) (Langkah 1 dalam Gambar 3.5b), dan menambahkan (increment) PC untuk menunjukkan atau mengarahkan ke instruksi berikutnya yang ada dalam memori (Langkah 2 dalam Gambar 3.5b). Mendekode dan menjalankan instruksi yang bam saja dijemput. Unit Kontrol Mikroprogrammed Gambar 3.7 melukiskan model konseptual untuk kontrol mesin mikroprogrammed. Pertama kali unit kontrol menjemput instruksi dari memori. Kemudian ia mengubah instruksi tersebut menjadi seri mikroinstruksi. Untuk melakukan ini, ia menggunakan translator mikroprogram, yakni peralatan yang meneliti tabel, untuk menerjemahkan op code instruksi menjadi alamat mikroinstruksi.Denganmenggunakanalamatini, prosesormikroinstruksimenjemput rangkaianpertama mikroinstruksidari memorinya,atau kadang-kadangdari memori utama. Setelah menjemputsetiap mikroinstruksi,prosesormenghasilkannyadengan carn mengirimkan mikroorder yang tepat melalui jalur bus kontrol. Translator mikroprogram dan prosesor mikroinstruksimerupakan bagian dari unit kontrol. Operasi Biasa Selama operasi biasa (ordinary operation), sequencer menghasilkan signal kontrol yang mengatur unit kontrol. Signal kontrol ini adalah mikroorder yang dipatuhi oleh unit kontrol (mikroorder yang menjadi pengatur unit kontrol).Dengan Menggunakan generator jam untuk pewaktuan (timing), sequencer akan menghasilkan signal yang mengawali tetjadinya serangkaian tindakan yang berulang-ulang,seperti di bawah ini. Nomor yang ada dalam kurung kurawal menunjukkan signal control yang dihasilkan oleh sequencer, seperti terlihat pada Gambar 3.8. Sequencer menyebabkan tetjadinya penempatan alamat dalam Jl.PC,baik dengan cara mengirimkan signal jam ke IlPC {5} sehingga memuat nilai dari putaran komputasi alarnat, atau dengan menambah (increment) nilai dalam IlPC {6}. Ia juga menghapus buffer atau penyangga mikroinstruksi {4}. Sequencer mengawali baca toko kontrol (control-store read) {7} untuk mikroinstruksi teralamat dan mentransfernya ke dalam buffer mikroinstruksi Sequencer menyebabkan dekode mikroinstruksimenghasilkan mikroinstruksi Startup Mesin startup mesin, unit kontrol memunculkan atau menandai (initialize) berbagai macam register (baik dengan menghapusnya atau memberikan nilai tertentu kepadanya). Kemudian,ia memuat alamat yang dihasilkan hardware ke dalam PC (bukan dalam ~) dan mulai berjalan. Untuk beberapa mesin, alamat yang dimuatkan hardware (hardware-loadedaddress) adalah reset vector (vektor reset), yang merupakan alamat dari instruksi pertama yang akan dijalankan mesin setelah berjalan. Untuk mesin yang menggunakan vektor reset. unit kontrol akan segera memulai operasi biasa setelah memuat vektor reset ke dalam pC Pengorganisasian (penyusunan) Mikroprogram Da/am Toko Kontro setiap instruksi mesin akan mempunyai urutan atau rangkaian mikroinstruksi sendiri dalam toko kontrol. Lebih dari itu, toko kontrol berisi mikroinstruksiuntuk penjemputan instruksi,pelaksanaan (initiation) interrupt, dan segala aktivitas lain yang ia kontro Mikroprogramming (Opsional) Dalam arti sederhana, mikroprogramming adalah seni menulis atau membuat mikroprogram untuk unit kontrol. Dalam arti yang lebih mendalam, mikroprogramming adalah proses penentuan atau penetapan signal kontrol yang mengimplementasi set instruksi komputer. Tanpa memandang jenis komputernya, signal kontrol selalu mengatur aktivitas komputer, dan tanpa mempedulikan apakah yang menghasilkan signal kontrol tersebut adalah unit kontrol konvensional ataukah unit kontrol mikroprogrammed, rangkaian signal kontrolnya tetap sama. Unit Kontrol Konvensional Seperti halnya dengan unit kontrol rnikroprogrammed;pada waktu menjalankan instruksi mesin dalam set instruksi komputer, unit control konvensional juga menghasilkan suatu rangkaian rnikroinstruksi. Perbedaannya terletak pada kenyataan bahwa gate logikanya menggenerasi semua rnikro-order sehingga eksekusinya lebih cepat Hardware dan Instruksi Pemrosesan Exception Exception adalah branch yang ditimbulkan oleh hardware pemrosesan exception. Selama exception, CPU menjalankan branch dengan suatu cara sehingga ia dapat menjalankan kembali program yang diinterupsi pada point interupsi seolaholah tak ada sesuatu yang telah teIjadi. Bagian ini akffi1mendeskripsikan motivasi untuk exception dan hardware pemrosesan exception yang pokok. Persyaratan untuk exception adalah: CPU membutuhkanhardware,operasi,dan instruksikhusus untuk menyimpan dan memulihkan kembali register kund. Hardware hams disertai dengan suatu cara untuk mengadakan operasi dan instruksi tersebut. Sistem pengoperasian hams dilengkapi dengan cara terorganisasi untuk mengalokasi dan mengeluarkan memori untuk kepentingan program yang diinterupsi, dan ia hams dilengkapi dengan program yang mempunyai save area untuk tempat konteks prosesornya Exception Prioritas dan Vektor Exception Permulaan Exception mikroprogram adalah branch ke mikrokode penjemputan. Untuk memproses interrupt, unit kontrol hanya menjalankan branch kondisional ke mikrokode penjemputan, dengan kondisi adalah test untuk signal interrupt-pending. Bila signal interruptpending adalah true, maka putaran komputasi alarnat akan memodiftkasi alarnat branch dan mencabang ke mikrokode interrupt-initiation, bukannya ke mikrokode fetch (penjemputan). waktu yang bisa digunakan oleh kontrol unit dalarn mengawali interrupt adalah waktu antara eksekusi instruk!ii, bukannya waktu selarna eksekusi instruksi tersebut, dan tak ada biaya tambahan berkenaan dengan siklus jarn yang digunakan unt;uk test interrupt-pending. Unit kontrol mengawali trap dengan cara yang harnpir sarna. Ketika ia mendapati op code yang tidak valid atau kondisi kesalahan aritmetik, misalnya, maka ia menjalankan branch mikrokode yang sesuai untuk memulai pemrosesan trap. Kesamaannya berlaku pula untuk pemrosesan reset: Unit kontrol mencabang ke mikrokode reset,' bukannya ke mikrokode penjemputan. Mikrokode yang digunakan untuk mengawali exception adalah sarna dengan mikrokode yang lain. Kita asumsikan bahwa komputer menggunakan tabel vector exception. Pertama kali unit kontrol akan menyimpan register kunci (misalnya PC dan flag status) dalarn save area atau stack (tergantung pada komputernya). Exception Masking (Perlindungan Exception) Kembali dari Exception 3.3 SYSTEM I/O Komponen vital dari segala arsitektur komputer adalah sistem I/O-nya. Ia adalah set dari semua peralatanI/O yang ada dalam sistem,yang meliputi peralatan I/O fisik dan peralatan interface I/O. Peralatan I/O fisik adalah peralatan yang benar-benar menjalankan I/O, seperti printer baris, tampilan video, dan console. 3.3.1 CPU-controlled va (va yang dikon~rol CPU) Komputer pada pertengahantabun 1950-antelah dapat digunakan secara lebih baik, namun harganya hanya dapat dijangkau oleh pemerintah dan perusahaan yang sangat besar. Salah satu harapan arsitek computer adalah dapat merancang computer yang CPU-nya memiliki kegunaan semaksimal mungkin. Peralatan I/O bersifa mekanis dan kecepatannya dibatasi oleh komponen mekanis (biasanya pada order rnilisecond). Ada beberapa pemecahan yang dilakukan, yang didasarkan pada tiga perkembangan dasar: Sistem pengoperasian multiprogramming. Sistem pengoperasian ini memuat beberapa program yang berbeda ke dalam memori sekaligus. CPU dapat menjalankan satu program, sementara program yang lain menunggu operasi input atau output. Sistem penyimpanari multiported. Peralatan ini memungkinkan beberapa prosesor mengakses memori secara serentak, atau melakukan request untuk menjalankan siklus memori. Peralatan I/O dan CPU kemudian dapat membagi (menggunakan bersarna) sistem penyimpanan yang sama. Prosesor I/O. Interface I/O khusus yang me1iputi peralatan yang disebutl channel DMA dan unit pemrosesan tambahan (U) ini dapat mengontrol peralatan I/O tanpa mengganggu CPU. 3.3.2 Sistem Pengoperasian Multiprogramming Sistem pengoperasian multiprogrammingmenyeimbangkanmemori, memuat setiapprogramke dalampartisiyang berbeda,dan membatasiprogramke partisinya sendiri, mungkin dengan menggunakan teknik re10Rasidan proteksi Pada waktu program menginginkan informasi dari peralatan ekstemal (input), atau ia ingin mengirim informasi ke peralatan ekstem'al (output), ia meminta servis I/O dari sistem pengoperasian. Ia mela1rukan request dengan menempatkanparameter request I/O yang sesuai dari tempat yang telah ditentukan sebelumnya (mailbox) dan dengan memanggil system pengoperasian (misalnya, dengan menggenerasi trap yang mempunyai instruksi SUPERVISOR CALL). 3.3.3 Penyimpanan Multiported Komputer awal mempunyai CPU dan sistem penyimpanan yang terpadu, dan hanya CPU yang bisa mengakses memori. Namun demikian, karena adanya permintaan multiprogramming dan kebutuhan prosesor I/O yang independen, maka para perancang mengembangkan berbagai jenis hardware yang memungkinkan lebih dari satu peralatan untuk mengakses sistem penyimpanan yang sama. Contohnya adalah bus sistem. Peralatan yang sempa adalah memory-traffic controller (pengontrol lalu-lintas memori), yang juga disebut memory-port controller (pengontrol port memori). Pengontrol port memori pada hakikatnya adalah sirkuit pengubah yang menerima request dari beberapa peralatan yang bemsaha untuk mendapatkan memori, memprioritaskan request, dan menghubungkan peralatan yang mempunyai prioritas tertinggi ke memori. Ada banyak cara untuk menentukan atau memi1ih peralatan I/O yang mana yang akan diberi akses ke memori. Beberapa algoritma pemrioritasan atau prptoko1 adalah sebagai berikut: Dicocokkan dengan nomor peralatan. Pengontro1 port memori menentukan peralatan yang mempunyai nomor peralatan terendah, misalnya N, ketika adabeberapa peralatan meminta servis secara bersarnaan. Melingkar. Pengontro1 port memori menentukan peralatan berikutnya secara urut, yaitu dengan menjalankan kembali peralatan pertama apabila ia te1ah me1akukan servis terhadap peralatan terakhir. Pembagian waktu. Pengontro1 port memori memberikan se1ang waktu yang sarna (pasti) kepada setiap peralatan. Jika ada 10 peralatan, misa1nya, maka setiap peralatan memiliki akses ke memori sebesar sepersepu1uh waktu. 3.3.4 DMAva (va aksesmemor;langsung) Peralatanhardwareyang secaralangsungmengontrol transferdata ke dan dari memori utama disebut direct-memory-access (DMA) controller (pengontrol akses memori langsung). Untuk setiap transfer data, CPU mengirimkan pengontrol DMA yang digunakan alamat memori untuk blok data, jumlah byte yang akan ditransfer, dan arah transfer (input atau output). Pengontrol DMA menjalankan transfer tanpa campur tangan CPU dan menginterupsi CPU ketika ia selesai menjalankan transfer. Beberapa sistem, khususnya mesin ffiM, menggunakan prosesor I/O sederhana yang disebut channel, yang menjalankan I/O DMA di bawah kontrol program yang sangat sederhana yang disebut program channel. Channel pertama (awal) hanya mempunyai sedikit memori atau tak mempunyai sama sekali dan hanya mempunyai set instruksi yang sangat sederhana. Channel DMA Channel DMA, yang terutarna digunakan oleh ffiM, merupakan mesin von Neumann sederhana. la mempunyaiPC dan set register sendiri, namun ia berbeda dengan mesin von Neumann dalam hal penggunaan memori utama CPU. Arsitek merancangnya terutama untuk mengontrol peralatan I/O fisik, seperti tape drive, disk drive, line printer,dan sebagainya.Denga demikian,ia mempunyaiset instruksi yang sangat sederhana. Memori channel pada channel pertama (awal) umumnya hanya terbatas untuk mengontrol register dan buffer (penyangga) I/O. Ia adalah channel yang digunakan untuk mengasembling word dari data input sebelum mentransfemya ke memori utama, atau yang digunakan untuk menyimpan word dari data output selagi ia menyiapkannyauntuk ditransfer ke peralatan output. Gambar 3.22 menunjukkan komponen hardware pokok dari suatu komputer yang menggunakanchannelDMA.Gambartersebutjuga menunjukkanjalur control biasa yang melewati CPU dan yang melewatichannel. Instruksi I/O mengaktifkan jalur kontrol tersebut, yang pada gambar tersebut diberi tanda 510, mo, TIO, dan TCH. Jalur kontrol menjalankan, menghentikan, dan menguji channel. Channel menggunakanjalur yang berlabel CC dan INT untuk mengkontak CPU. Channel melakukan request interruptI/O dengan cara mengirimkansignal pada INT, dan ia menyampaikan informasi status ke CPU dengan cara mengirimkannilai pada jalur kode kondisi yang diberi label CC. CPU dan channel mentransfersemua informasi lain melalui lokasi memori utama tertentu. Dimana lokasi tersebut dapat mereka baca dan tulis. Dan mereka mematuhi channel protocol pembatas, yang akan kita bahas secara singkat selanjutny. Program Channel Programmer menyusun atau mengorganisir perintah channel menjadi channel program (program channel). Program channel merupakan rangkaian perintah channel untuk operasi I/O lengkap. Kebanyakan perintah channel mengontrol peralatan I/O, namun beberapa yang lain, seperti TRANSFER IN CHANNEL. Mempakan instruksi branch. Jadi, channel dapat mencabang dari satu bagian program channel ke bagian yang lain, yakni loop, atau dapat menjalankan branch kondisional menurut outcome (hasil) dari operasi I/O. Prinsip ini seperti untuk komputer biasa, dan kita tidak akan membahasnya lebih jauh. Hardware Channel setiap channel mempunyai unit kOQtrolnya sendiri, set register sendiri, dan set instruksi sendiri. Registernya meliputi fC, IR, dan satu atau beberapacounter, registeralamat data, buffer untuk menyimpandata, dan register kontrol tambahan untuk proteksi memori atau servis yang lain. Gambar 3.23. Register channel mempunyaiberbagai nama, seperti register alamat perintah (sebagai pengganti PC) dan register alamat perintah (pengganti register instruksi). Walaupun demikian, PC dan IR mempunyai fungsi yang sarna untuk channel seperti yang mereka lakukan terhadap CPU.Register alamat data menyimpan alamat memori utama dari word atau byte yang sedang ditransfer. Counter menyimpanjumlah byte total yang akan ditransfer channel dan jumlah byte yang telah ditransfer, dan buffer menyimpan data yang sedang diasembling atau yang sedang tidak diasembling. Sebagai contoh, jika sistem penyimpanan memproses doubleword dan peralatan I/O memproses byte, channel harns mengasembling 8 byte menjadi double word untuk input, dan ia harns memecahkan (disamble) doubleword menjadi 8 byte untuk output. Karena prinsip operasinya sama dengan yang digunakan untuk operasi CPU. Protokol Channel Berikut adalah ringkasan tindakan dalam protokol channel. Nomor eli,bawah ini bersesuaian dengan nomor dalam lingkaran yang ada pada Gambar 3.24. Sistem pengoperasian (CPU) menciptakan program channel dan memuatnya ke dalam memori pada alamat P. Kemudian ia menjalankan instruksi START I/O ke channel dan memberinya alamat program channel, yakni P. Sekarang CPU bebas melakukan tugas lain yang tidak berhubungan dengan program channel sampai Langkah 5. Channel memuatkan PC-nya yang mempunyai nilai P dan menjalankan program channel tanpa campur tangan CPU. Program channel mengontrol peralatan I/O yang mentransfer data yang dibutuhkan secara langsung dari tape drive ke memori utama. Bila telah selesai, channel menginterupsi CPU untuk memberitahu CPU tersebut bahwa program channel telah selesai dikerjakan. Sekarang CPU mungkin akan memberi tugas barn kepada channel dan menjalankan kembali program pertama yang telah meminta operasi I/O. Penyerobotan Siklus (Cycle Stealing) Apabila dua peralatan secara serentak meminta (request) akses memori, maka salah satunya harns menunggu. Jika salah satu peraltan tersebut adalah CPU dan yang satunya adalah channel, maka pengontrol memori biasanya memberi prioritas yang lebih tinggi kepada channel karena alasan tertentu. Untuk peralatan yang lambat, jumlah akses memori adalah sangat keci bila dibandingkan dengan jumlah akses memori CPU. Oleh karena itu, penyerobotan siklus memori yang dilakukan channel dari CPU tidak akan banyak mempengarnhi kinerja CPU. Untuk peralatan yang cepat, seperti disk, jika channel tidak dapat mentransfer data ke dan dari disk dan membebaskan buffemya untuk item selanjutnya, maka ia mungkin tidak boleh melakukan akses baca dan tulis dan harns menunggu seluruh revolusi disk. Bila channel tidak melakukan akses disk maka hal ini akan menurunkan kinerja system (yakni, mengurangi efisiensi sistem) lebih banyak dari pada menyimpan CPU untuk beberapa siklus Channel tidak perlu menyerobot siklus CPU ketika ia mengakses memori utama. Banyak pengontrol port memori mempunyai beberapa port (lintasan data independen) ke memori. Juga, banyak memori mempunyai bank independen yang dihubungkan ke pengontrol port memori melalui berbagai port. Apabila system dilengkapi dengan hardware ini, maka berbagai peralatan yang berbeda dapat mengakses bank memori independen secara serentak. Sebagai contoh, channel dapat memuatkan program ke dalam bank memori sementara CPU secara serentak menjalankanprogramyang ada di luar bank yang berbeda.Namun demikian, dalam prakteknya selalu terdapat beberapa point pelanggaran, dan channel menyerobot siklus dari CPU Unit Pemrosesan Peripheral 3.3.5 I/O Yang Dipetakan Memori (memory-mapped I / O) Banyak komputer yang mempunyai instruksi I/O untuk mengontrol peralatan I/O. Komputer ini menggenerasi signal khusus yang membedakan operasi I/O dengan operasi akses memori. Pada waktu menjalankan instruksi I/O, komputer ini mengeluarkan signal yang menunjukkan operasi I/O, dan mereka menggenerasi alamat peralatan I/O, yang mereka tempatkan pada bus alamat. Karena alarnat ini bisa berupa alamat peralatan I/O atau mungkin alamat memori, maka peralatan I/ o beroperasi dalam satu ruang alamat yang disebut I/O-address space (ruang atamat I/O), dan instruksi akses memori beroperasi dalam ruang alamat independen yang disebut memory-address space (ruang alamat memori). Prosesor yang menggunmean I/O yang dipetIDcanmemori (memory-mapped I/ 0) tidmememerlukan instruksl I/O khusus. Operasi store ke port output mengirimkan data ke peralatan interface PPI/O yang digabungkan, dan operasi load' dari port input menerima data dari peralatan interface. I/O yang dikontrol CPU dan I/O yang dipetIDeanmemori bukan merupmean konsep yang terpisah, dan komputer yang mempunyai instruksi I/O bisa juga menggunmean I/O yang dipetIDeanmemori. Contohnya adalah PC ffiM. 3.3.6 Pera/atan I/O Fisik Intelligent peripheral devices (peralatan pendukung pintar) yaitu peralatan yang mempunyai pengontrol yang menyembunyikan sifat tertentu dari peralatan tersebut dari CPU dan seringkali juga menyangga (buffer) data merupakan langkah awal yang memberi arsitek satu macam ketidaktergantungan alat. Sebagai contoh, komputer mengalamati beberapa disk hanya dengan nomor sektor, bukannya dengan nomor sektor, nomor track, dan nomor silinder. Bagian berikut ini mengemukakan deskripsi singkat mengenai beberapa peralatan I/O biasa. Pera/atan Penyimpanan Pendukung Banyak peralatan dilengkapi dengan CPU yang mempunyai jumlah external storage (penyimpanan di luar memori utama) yang besar, dan CPU mengakses peralatan ini dengan menggunakan sistem I/O. Dua contohnya adalah tape drive dan disk drive, yang masing-masingmenyimpandata pada tape magnetis dan disk magnetis. CPU mengakses data (atau blok data) dengan cara menampilkan system I/O dengan deskripsi mengenai media I/O (misalnya, nama tape atau nama disk), dengan jumlah word atau byte yang akan ditransfer, dengan arab transfer (input atau output), dan dengan alamat dari word atau byte pertama yang ada pada media penyimpanan.Program yang meminta data juga hams mendeskripsikanorganisasi atau susunan data yang ada pada media-penyimpanan kita akan membOOassecara singkat mengenai dua peralatan penyimpanan umum, yakni tape drive dan disk drive . Tape Drive Tape drive menyimpan datanya pada tape (pita) magnetis, yang menyerupai pita yang digunakan dalam sistem audio biasa. Beberapa tape drive menggunakan pita reel-to-reel (kumparan ke kumparan); sedangkan yang beberapa yang lainnya menggunakan kaset pita. Mekanisme transportasi fisik menggerakkan tape magnetis melintasi head bacaltulis, dengan head ini dapat membaca dan menulis data yang secara fisik berada di bawOOnya.Beberapa tape drive dapat membaca atau menulis satu bit pada sekali waktu; sedangkan yang lainnya mempunyai beberapa sirkuit bacaltulis yang berdekatan dan mereka dapat membaca atau menulis beberapa bit (yakni, satu byte) secara serentak. Selain itu, tape drive harns memproses bit atau byte yang berurutan secara serial. Oleh karena itu, peralatan ini dianggap sebagai sequental-access devices (peralatan akses urut). Disk Drive Disk magnetis adalOOalat penyimpanan yang bentuknya menyerupai phonograph record (piringan hitam). Namun, permukaan disk halus, dan ia dilapisi dengan bOOanmagnetis yang menyerupai bOOanyang melapisi tape (pita) magnetis. Disk magnetis yang tidak fleksibel disebut hard disk; sedangkan disk magnetis yang fleksibel disebut floppy disk (disket). Peralatan yang menyimpan atau mengendalikan dan memproses mereka disebut disk drive. Disk drive bisa menyimpan satu atau beberapa disk. Floppy drive biasanya menyimpan satu disk; hard drive yang memiliki disk yang tidak bisa dikeluarkan biasanya menyimpan beberapa disk yang disebut platter (piringan). Platter semuanya berada pada kumparan yang sarna dan berotasi bersama. Setiap platter mempunyai permukaan atas dan bawOO,namun disk drive seringkali tidak menggunakan semua permukaan tersebut. Read-write head (head baca-tulis) yang ada dalam disk drive membaca dan menulis data pada platter (piringan). Setiap permukaan disk yang dapat digunakan mungkin mempunyai satu head, beberapa head, atau sebanyak satu head untuk setiap track (lihat di bawah ini), dan disk drive biasa bisa mempunyai beberapa head untuk tiap permukaan. Disk drive yang dilukiskan pada Gambar 3.25(a) mempunyai tiga platter dan tiga head bacatulis. Apabila disk drive mempunyai satu head baca-tulis untuk setiap permukaan (yang paling umum), maka susunan head mekanis tunggal menyimpan semua head baca-tulis dan menempatkannya secara serentak. Disk drive biasanya menyusun datanya ke dalam track, yaitu lintasan siIikulasi data (lihat Gambar 3.25(b». Perhatikan bahwa susunan lingkaran konsenms ini berbeda dengan cara data yang berada pada salah satu sisi piringan hitam dtsusun ke dalam track spiral tunggal. Disk bisa mempunyai ratusan track. Untuk dis~ yang mempunyai platter banyak, set track yang ada pada semua platter yang mempunyai jarak tertentu terhadap kumparan dinamakan cylinder (silinder). Biasanya disk drive mengorganisir atau menyusun setiap track ke dalam sector (sektor) 256 byte sampai 4 KB, dan banyak disk menuliskan nomor sektomya pada setiap track pada awal tiap sektor tersebut. Hal tersebut dinamakan Soft sectoring, dan ketika menggunakan soft sectoring, software dan hardware hams menemukan atau mencari sekto~ yang diperlukan. Program menentukan alamat word dengan memberikan nomor plattemya, nomor track, nomor sektor, dan nomor word. Printer Printer adalah alat output dan, seperti yang telah kita ketahui, ia relatif lambat. Interface CPU atau I/O mengontrol printer dengan mengiriminya dua jenis informasi, yaitu informasi kontrol dan data yang akan dicetak. Informasi kontrol adalah printerspecific, namun biasanya memberitahu printer mengenai apa yang akan dikeljakan: yaitu mengeluarkan page, bergerak ke baris berikutnya, maju ke page sejauh beberapa milimeter, mengubah typeface Genis huruf), mengubah ukuran jenis, dan sebagainya. Data memberitahu printer mengenai apa yang akan dicetak, biasanya dengan menggunakan kode karakter seperti ASCII untuk menentukan karakter. J3anyak printer yang dapat mencetak tampilan grafIk maupun teks. BAB IV A RSITEKTUR SISTEM MEMORI 4.1 TEKNOLOGI DAN BIAYA SISTEM MEMORI Ada dua teknologi yang telah mendominasi industri memori sentral dan memori utama, yakni memori magnetic-core selama tahun 1960-an dan memori solid-state pada tahun-tahun sesudahnya. Namun demikian, para perancang telah mencoba beberapa teknologi yang lain selama ini. Selama tahun 1960-an, teknologi memori utama yang dominan adalah mag­ netic core (inti magnetis), dan akibatnya orang seringkali menyebut memori utama sebagai core memories (memori inti). Sekarang ini kita kadang-kadang menggunakan istilah cor memory untuk menyebut memori utama, namun ia jarang sekali dianggap sebagai suatu teknologi. Sel penyimpanan yang ada dalam memori inti dibuat dari elemen besi berbentuk donat yang disebut magnetic core (inti magnetis) atau hanya disebut core. Sistem memori yang sebelumnya dibuat dari inti magnetis dan berbiaya jutaan dolar, sekarang dapat dibuat dari sirkuit terpadu (IC) hanya dengan biaya beberapa ratus dolar. Lebih dari itu, dulunya kecepatan memori dibatasi oleh cycle times (waktu siklus) yang relatif lama, yakni waktu yang dibutuhkn untuk membaca dan menulis inti megnatis (yang biasanya 1000 sampai 2000 ns). Namun sekarang kecepatan tersebut dibatasi oleh waktu switching (penundaan gate) dari K'; dengan waktu siklus yang umum sekarang adalah 60 sampai 150 ns. Kecuali mercury-delay-line memory (memori jalur penundaan derajad), semua sirkuit memori yang akan kita bahas adalah merupakan random-access memory (RAM) atau memori akses random. RAM bisa mengakses setiap word dalam jumlah waktu yang pada dasarnya sama, karena ia menggunakan sirkuit switching (pengubah) untuk menentukan word yang akan diakses. Biaya pembuatan memori telah berangsur-angsur menurun, dan nampaknya ia akan terus menurun. Hal ini disebabkan oleh cepatnya peningkatan kerapatan (den­sity) sirkuit terpadu (integrated circuit) dan meningkatnya permintaan memori yang lebih besar. Lebih besar RAM-nya, maka akan lebih rendah biaya penyusutannya, dan rendahnya daya teknologi akan menjadikan biaya terus menurun selama akhir abad 20 ini. Lebih dari itu, kecepatan secara perlahan-lahan meningkat bersaamaan dengan meningkatnya ukuran memori, sehingga tak ada alasan untuk memperkirakan bahwa trend mengenai biaya dan ukuran memori akan berubah secara drastis. Turunnya biaya unit memori dengan cepat menandakan bahwa ukuran memori utama akan terus meningkat. Masalahnya sekarang apakah ada batasan yang lebih tinggi mengenai ukuran memori untuk program. Kita tidak bisa menjawabnya secara umum, namun paling tidak kita bisa menentukan ukuran database yang sangat besar dan set data ilmiah dan teknik yang sangat besar. Apa masalah utama mengenai komputer sekarang ini? Apa yang dimaksud dengan database terbesar? Jawabnya terlihat pada order 220 sampai 250 byte, terabyte (TB) sampai petabyte (PB). Mereka ini berada pada order 1 TB karakter dalam buku Library of Congress atau 1 TB pixel dalam suatu manfaat TV yang berketajaman tinggi (HDTV) atau bioskop bergambar lebar. Superkomputer tahun 1990 biasa dapat mereferensi memorinya pada jumlah sekitar 1 PB/hari atau menggenerasi output pada jumlah sekitar 1 PB per tahun. Gambar 4.1. Bentuk chip RAM Dari gambar tersebut, kita dapat meramalkan ukuran memori minimum yang kita harapkanjika kita mengasumsikan bahwa para perancang akan mengorganisasikan memori sedemikian rupa sehingga setiap word memori menggunakan 1 bit per chip. Asumsi terakhir ini tidak bisa diharapkan secara sempuma, namun kita dapat juga mengasumsikan bahwa interleaving memori (akan dibahas pada Bagian 4.1.1) akan menjadi pengganti organisasi (susunan) chip multibit. Sebagai contoh, komputer dari famili dan berbiaya biasa cenderung menggunakan jumlah chip memori yang sama dengan model yang akan dibuat berikutnya. Angka perhitungan ini menunjukkan bahwa arsitek komputer tidak boleh membatasi ukuran ruang alamat fisik komputer kurang dari 1 PB, dan bahwa program individual harus dapat mereferensi memori sebanyak itu untuk beberapa aplikasi. Gambar 4.3 menunjukkan trend historis mengenai ukuran memori untuk superkomputer dan minikomputer. Dari gambar ini, kita dapat melihat bahwa ukuran memori maksimum untuk minikomputer kim-kim berada pada kurva Mm = 2[2(Y-1979)13]MB dengan Y adalah tahun, Demikian juga, ukuran memori superkomputer maksimum kira-kira berada pada kurva Ms = 2[Y-1966f2] MB Fungsi dalam Persamaan 1 dan 2 telah menjangkau dua teknologi, yaitu inti magnetis dan Ie silikon. Secara jelas hubungan ini tidak dapat diramalkan untuk menyimpan secara tak terhingga, karena kemudian ukuran memori minikomputer akan melebihi ukuran memori superkomputer, hal ini jarang terjadi. 4.1.1 ORGANISASI MEMORI Gambar 4.4 memperlihatkan desain sistem memori 2-MB yang sirkuitnya menggunakan organisasiyang disebut high-order interleave. Setiap word besarnya 1 byte. Chip RAM dapat menyimpan 256-K word 4-bit, sehingga sistem memori memerlukan delapan pasang chip. Perhatikan bahwa setiap chip mempunyai 18 jalur alamat (218 = 256 K), sementara keseluruhan sistem memori memerlukan 21 jalur alamat. Dalam organisasi ini, bit alamat high-order menentukan atau memilih pasangan chip memori tertentu, sedangkan 18 bit alamat low-order menentukan word yang sama dari setiap pasang chip. Word yang berurutan bertempat pada set chip yang sama (pasangan chip pada Gambar 4.4). Bila alamat berubah dari 256 K - 1 ke 256, 512 K - 1 ke 512 K, 768 K - 1 ke 768 K, dan seterusnya, maka word berikutnya akan berada di pasangan chip berikutnya. Para perancang menggunakan interleaving untuk meningkatkan kecepatan pengaksesan sistem penyimpanan yang besar. Umurnnya, sistem penyimpanan yang besar terdiri atas beberapa bank memori independen yang diakses oleh CPU dan peralatan 110 melalui pengontrol port memori (lihat Bagian 3.3.3), seperti crossbar switch. Gambar 4.5 melukiskan sistem penyimpanan yang menggunakan pengontrol port memori empat port dan ia terdiri atas empat bank memori. Apabila sistem penyimpanan menggunakan interleave high-order, maka setiap bank berisi blok alamat yang berurutan. Jika setiap peralatan, termasuk CPU, menggunakan bank memori yang berbeda untuk program dan datanya, maka semua bank dapat mentransfer data secara serentak. Gambar 4.6 menunjukkan -situasi CPU menjalankan suatu program di bank 0, channel 1 mentransfer data ke blok memori yang ada dalam bank 2, dan channel 3 mentransfer data ke blok memori yang menghubungkan bank 2 dan bank 3. Ketiga prosesor aktif dapat mengakses memori secara serentak yang ditarnbah channel 2 mengakses bank 3, bukannya bank 2. Interleave low-order tidak selalu mendegradasi kinerja memori, seperti yang dikemukakan contoh tersebut. Anda misalkan suatu situasi waktu siklus memori lebih lama dari pada waktu siklus CPU. Jika CPU ingin mengakses rangkaian word, dan rangkaian word disimpan dalarn bank yang sama, maka CPU harus menunggu keseluruhan siklus memori diantara akses-akses yang berurutan. Hal ini akan mengakibatkan terjadinya penggunaan CPU yang tidak efisien. Untuk sistem semaeam itu, para peraneang biasanya akan menggunakan interleave low-order untuk meningkatkan kecepatan akses. Apabila word yang berurutan berada dalarn bank yang berbeda, maka sistem penyimpanan, bila dilengkapi dengan putaran yang eoeok, akan dapat melengkapi akses memori yang berurutan. Dengan kata lain, setelah CPU meminta untuk mengakses word pertama yang disimpan dalarn salah satu bank, maka ia dapat bergerak ke bank kedua dan mengawali akses word kedua sementara sistem penyimpanan tetap mendapatkan kembali word pertama. CPU terus menggunakan eara tersebut dari suatu bank ke bank berikutnya. Pada waktu CPU kembali ke bank pertama, sistem penyimpanan diharapkJ telah menyelesaikan mengakses word pertarna dan telah siap untuk mengakses lagi. Banyak komputer berkinerjatinggi menggunakan interleave low-order untuk alasan tersebut. 4.1.2 JENIS MEMORI Pada bagian ini, kita akan mendeskripsikan beberapa jenis peralatan memori utama yang digunakan pada akhir-akhir ini. Memori Read-only Read-only memory (ROM) atau memori read-only adalah peralatan atau perlengkapan memori yang dapat dibaca namun "tidak dapat ditulis oleh CPU. Contohnya adalah switch mekanis. Di sini komputer menggunakannya untuk menyimpan konstanta yang digunakan untuk menentukan konfigurasi sistem (yakni, jumlah memori urania). Sejumlah jenis ROM bersifat bisa diubah walaupun tidak pada waktu penggunaan biasa. Memori Read/Write Kita dapat mengklasifikasikan memori read/write (sebagai lawan dari memori read-only) dengan berbagai cara menurut sifat pengoperasiannya. Berikut adalah sebagian dari klasifikasi tersebut: 1. Sifat Fisik * statis lawan dinamis * volatil lawan non-volatil * read destruktif lawan read non-destruktif * dapat dikeluarkan (removable) lawan dukungan permanen 2. Organisasi Logis * teralamatkan (addressed) * asosiatif * akses urut Sitat Fisik Static versus Dynamic Memory (memori statis lawan dinamis). Dalam static random-access memory (SRAM) atau memori akses random statis, setiap word, apabila telah ditulis, tidak perlu Iagi dialamatkan atau dimanipulasi untuk menyimpan nilainya. Peralatan ini dibentuk dari flip-flop yang menggunakan arus keciI untuk memelihara tingkat Jogikanya. SRAM biasanya digunakan untuk register CPU dan peralatan penyimpanan berkecepatan tinggi yang lain. Namun, ada beberapa komputer yang menggunakannya untuk cache dan memori utama. Akhir-akhir ini, SRAM merupakan sirkuit memori semikonduktor yang paling cepat dan paling mahal. Memori Volatil Lawan Non-volatil. Peralatan memori dikatakan volatil jika ia membutuhkan sumber daya yang terns menerus untuk menyimpan niainya, kebalikannya adalah non-volatil. Sebagian besar memori inti magnetis akan bersifat non-volatil bila sebagai ROM. Sebagian besar RAM statis dan dinamis adalah volatil. Memori Read-destruktif Lawan Read-non-destruktif. Memori memrunyai destructive read (read destruktif) apabila dalam proses membaca word, Iljlemori tersebutjuga menghancurkan (destroy) nilainya. DRAM yang barn termasuk dalam jenis ini: Membaca sell DRAM akan mengeluarkan muatan kapasitor. pal am prakteknya, putaran pada chip selalu membuat atau menuliskan kembali nilai ke dalam sell. Sebaliknya, putaran (circuitry) dapat membaca SRAm dan ROM tanpa IIJernsak nilanya. Mereka ini adalah memori nondestructive read (read non-des4tif). Memori Yang Dapat Dikeluarkan Lawan Memori Permanen. Memori yang elemen aktifnya dapat dikeluarkan dari hardware sistem adalah removable memo­ ries (memori yang dapat dikeluarkan). Sebaliknya, nonremovable memories terdiri atas komponen yang seluruhnya secara fisik tidak dapat dikeluarkan. Memori utama bersifat nonremovable. Dalam kebanyakan komputer, floppy disk/disket ("floppy") dan isi pita bersifat removable, sedangkan RAM dan hard disk bersifat nonremovable. Organisasi Logis Addressed memory (memori yang teralamatkan). Memori yang teralamatkan menggunakan alamat untuk menentukan sell yang sedang dibaca atau ditulis. Oleh karena itu, pada waktu peralatan mengakses memori, ia harus memasok alamat dan arab transfer, yakni read atau write, ke sistem memori. RAM dan ROM, seperti yang kita kemukakan sebelumnya, pada dasarnya dapat mengakses semua word dalarn jumlah waktu yang sama. Beberapa memori teralamatkan, seperti disk, peralatan charge-coupled (muatan ganda) , dan memori bubble magnetis, merupakan memori teralarnatkan, namun mereka tak dapat mengakses semua word dalarn jumJah waktu yang sama. Peralatan charge-coupled (CCD) mempunyai array sel yang dapat menyimpan paket elektronik (charge packet). Dalam array ini, set charge packet mewakili word. Di sini keberadaan setiap charge packet menunjukkan 12 bit. Tidak seperti halnya dengan RAM, sirkuit yang telah pasti menyimpan word, charge packet (paket muatan) tidak menyediakan stasioner: Sel mengantarkanya ke sel yang berdekatan dengan setiap detak jam. Karena peralatan ini harus menunggu data yang diminta untuk dapat mencapai head baca (untuk disk), sirkuit untuk mendeteksi (untuk CCD), atau sirkuit untuk mendeteksi bubble magnetis (untuk MBM), maka waktu aksesnya tergantung pada posisi data yang diminta yang berhubungan dengan sirkuit baca. Waktu akses ini relatif pendek dalam proses yang paling sederhana, sehingga peralatan ini dianggap . sebagai pseudo-random acces memory (memori akses random palsu). Bentuk memori teralamatkan yang lain adalah orthogonal memory (memori ortogonal), yang dapat mengakses data baik dengan bit ataupun dengan bit-slice (irisan bit). Bit-slice adalah set semua bit dari posisi bit yang sama dari sernua word. Pemakai menampilkan memori dengan alamat word dan request read-word atau write-word, dalam hal ini memori membaca atau menulis word yang dikehendaki. Cara alternatif, pemakai menampilkan memori dengan nomor bit dan request read-bit-slice atau write-bit-slice, dalam hal ini memori membaca atau menulis bit-slice yang dikehendaki. Dengan melihat array empat-word seperti yang terlihat pada Gambar 4.8, maka word 2 adalah b20b21b22b23 dan bit-slice 2 adalah b02b12b22b32' Memori Asosiatif. Memori asosiatif menggunakan isi dari bagian word memori untuk menentukan sel yang sedang dibaca atau ditulis. Oleh karenanya ia juga disebut content-addressable memories (CAM). Contoh request akses dalam memori asosiatif misalnya "mencari semua word yang 8 bit highest-ordemya berisi nilai 110 1 11102' dan mengembalikan nilai tersebut dalam word pertama yang bersesuaian." Nilai 1101 11102 adalah argumen, spesifikasi "8 bit highest order" adalah mask (penutup), dan arah "mengembalikan nilai dalam word pertama yang bersesuaian" adalah prosedur untuk conflict resolution (resolusi konflik), yakni yang harus dilakukan apabila beberapa word menemukan kriteria pencarian. Memori asosiatif adalah peralatan penyimpanan aktif. Setiap lokasi penyimpanan memori mempunyai putaran untuk membandingkan argumen dengan nilai yang disimpan lokasi, dan setiap lokasi penyimpanan mempunyai putaran untuk menunjukkan keberhasilan penncarian. Lebih dari itu, sistem memori mempunyai putaran untuk menjalankan resolusi konflik (atau paling tidak untuk menjalankan pendeteksian). Akses Urut Pita magnetis biasanya mengakses data secara urut. Pemakai meminta (re­ quest) data dengan cara menentukan offsetnya dari posisi head bacaltulis pada saat itu (yakni, word berikutnya, word sebelumnya, word ke seratus berikutnya), dan peralatan pita (tape) mendapatkan data dengan eara menghitung ke depan atau ke belakang (maju atau mundur) dari posisi pada saat itu ke data yang diinginkan. Jika data yang diinginkan adalah data terakhir yang ada pada pita dan head bacaltulis pada awal pita, maka pemakai harus menunggu peralatan pita tersebut untuk mencari sepanjang pita guna mendapatkan word yang diinginkan. Oleh karenanya, peralatan ini merupakan peralatan akses urut. Memori Archival Archival memory adaJah memori non-volatil yang dapat menyimpan banyak data dengan biaya yang sangat sedikit dan daJam jangka waktu yang sangat lama. Tape (Pita) dan disk akhir-akhir ini termasukjenis memon ini dan rnereka digunakan untuk sistem yang benar-benar sangat besar. Disk optis juga telah banyak digunakan, namun ia belum sepopuler disk atau pita. Disk drive optis menyimpan data dengan mengubah seeara termal sifat reflektif dari bidang kecil yang ada pada disk dan membaca data dengan cara mendeteksi secara visual bidang yang diubah tersebut. Beberapa disk optis hanya dapat ditulis sekali dan disebut WORM memories (memori WORM) write once, read many times. Memori WORM nampaknya ideal untuk penyimpanan archival, karena bila sekali ia telah ditulis ia secara fungsional menjadi ROM. 4.2 51STEM MEMORI UTAMA Banyak komputer modem yang tidak perlu memuat seluruh program ke dalam memori sebelum menjalankannya. Sebagai gantinya, sistem pengoperasian bersama dengan peta khusus untuk translasi alamat akan menyimpan program pada peralatan eksternal, seperti hard disk. Sistem pengoperasian kemudian memuat sebagian program ke dalam memori utama, seperi yang diminta untuk kebutuhan eksekusi. Sistem pengoperasian memelihara atau mengelola tabel khusus yang menjaga atau menyimpan track dari tiap bagian program yang berada dalam memori utama dan penyimpanan eksternal. Selama eksekusi program, alamat legis program tidak lagi bersesuaian dengan alamat fisiko CPU menggunakan map (peta) untuk menerjemahkan aJamat efektif program menjadi alamat fisik yang bersesuaian. Komputer yang beroperasi dengan cara ini dikatakan mempunyai virtual memory (memori virtual). Istilah ini terjadi karena adanya kenyataan bahwa sistem penyimpanan nampaknya mempunyai jumlah memori fisik yang besar walaupun sebenarnya tidak; sebab memori tersebut tidak riil. Komputer yang mempunyai memori virtual dapat menjalankan program yang lebih besar dari pada yang dapat dijalankan oleh memori fisik komputer yang sebenamya. Sebenamya, ukuran pro­ gram tidak hanya dibatasi oleh ukuran ruang alamat logis komputer. bagian 4.2.3 akan membahas sistem memori virtual. Komputer yang hanya mempunyai satu sistem memori utama dikatakan mempunyai one-level storage system (sistem penyimpanan sat tingkat). Kebanyakan komputer, khususnya yang mempunyai memori virtual, menggunakan multilevel storage system (sistem penyimpanan multilevel). Kita bisa menganggap komponen memori sentral (internal) yang meliputi memori utama dan register CPU sebagai primary memory (memori primer), dan peralatan penyimpanan eksternal, seperti disk dan pita magnetis, dianggap sebagai secondary memory (memori sekunder), Keseluruhan set peralatan penyimpanan dan komponenoya merupakan memory hierarchy (hirarki memori). Sebagai contoh, suatu komputer mungkin menggunakan buffer berkecepatan tinggi intermediate yang disebut cache memory (memori cache) atau hanya disebut cache saja, yang bertempat diantara peralatan eksternal dan memori utama atau diantara memori utama dan CPU. Memori cache mempercepat waktu akses memori yang lebih lambat dengan cara menyimpan word yang akan diakses oleh CPU. Beberapa mikroprosesor menggunakan teknik yang disebut expanded memory (memori yang diperluas) untuk meningkatkan jumlah memori berkecepatan tinggi yang akan digunakan program. 4.2.1 RELOKASI PROGRAM DAN PROTEKSI MEMORI Pertama, seperti yang telah dikemukakan sebelumnya, sistem pengoperasian harus dapat merelokasi program dengan cara menempatkannya dimana saja dalam memori. Kedua, komputer harus mampu melakukan memory protection (proteksi memori), yakni mencegah suatu program mengakses memori yang yang telah diberikan oleh sistem pengoperasian ke program yang lain. Hardware proteksi memori khusus bisa melakukan fungsi ini. Sistem memori virtual modem dilengkapi dengan relokasi program dan proteksi memori, dan kita akan membahasnya secara mendetail pada bagian ini. Namun dernikian, secara historis, beberapa komputer awal seperti IBM Systeml360 dan CDC 6600 menggunakan teknik yang lebih sederhana, yang akan kita bahas berikutnya. Relokasi Program dan Proteksi Memori IBM System/360 Komputer dari famili IBM Systeml360 menggunakan register base untuk relokasi program. Apabila loader (pemuat)pada awalnya menempatkan program di dalam memori, maka ia juga akan memuat beberapa register base yang mempunyai alamat data kunci tertentu. Hal ini akan berfungsi untuk merelokasi data dalam memori. Instruksi menggunakan pengalamatan base-displacement dengan displace­ ment yang diukur sesuai dengan alamat kunci tersebut. Program menggunakan instruksi LOAD ADDRESS untuk memuat alamat statemen program di dalam base register. Hal ini akan berfungsi untuk merelokasiprogram di dalam memori. Karena hardware pengalamatan menambahkan isi register base ke setiap displacement, ia secara otomatis memetakan setiap alamat efektif ke alamat fisik yang tepat. Akibatnya, referen si memori tidak tergantung pada dimana sistem pengoperasian mengawali pemuatan program. Namun demikian, karena program menggunakan register base, maka bila program telah mulai berjalan, sistem pengoperasian tidak dapat merelokasikannya. Alasannya adalah bahwa program dapat menyimpan isi register base-nya sendiri di dalam memori. Jika sistem pengoperasian ingin memindahkanprogram, ia juga harus mengupdatenilai registerbase yang tersimpan. Namun tak ada cara untuk bisa mengetahui dimana program menyimpan nilai register base tersebut, sehingga tak ada cara untuknya untuk mengupdate nilai tersebut. Maka, sistem komputer jenis ini menggunakan relokasi program awal bukannya dinamis. IBM SystemJ360 menggunakan key-controlled memory protection. Sistem pengoperasian memberikan nilai kepada setiap program yang sedang berjalan, yang disebut access key. Access key ini disimpan oleh hardware di dalam word status program (PSW) selama eksekusi program. Pada waktu sistem pengoperasian mengalokasi memori ke program, ia menggabungkan access key (kunci akses) dengan setiap bank memori yang ia berikan ke program itu. Bank memori ini menyimpan jumlah word tertentu yang disebut page. Ketika peralatan mengawali akses memori, maka hardware proteksi memori membandingkankunci akses dari program yang diminta dengan kunci akses yang digabungkan dengan bank fisik yang menyimpan referensi. Jika dua nilai tersebut tidak cocok, maka hardware proteksi memori akan meminta atau melakukan exception proteksi memori. Relokasi Program dan Proteksi Memori Dalam CDC 6600 CDC 6600 mempunyai register khusus, yakni relocation-addressregister (RA) (register alamat relokasi),untuk melakukanrelokasi programdinamis. Hanya sistem pengoperasian yang menggunakan instruksi khusus yang bisa memodifikasi RA, dan program yang sedang berjalan tidak mengetahui kehadirannya sama sekali. Sebelum sistem pengoperasian memuat program ke dalam memori, ia mengalokasi blok memori yang disebut field ke program tersebut. Jumlah memori yang ia alokasikan disebut field length (FL). Ia kemudian menempatkan alamat field, yang merupakan alamat relokasi program, ke dalam RA dan memuat program di dalam memori. Kapan saja CPU menggenerasi alamat efektif (baik itu alamat instruksi atau alamat operand), hardware pengalamatan secara otomatis akan mernasukkan alamat relokasi ke CPU tersebut. Jadi semua referensi memori secara tinier direlokasi oleh alamat relokasi; oleh karenanya, referensi tidak tergantung pada dimana sistem pengoperasian memuat program di dalam memori. Mekanisme ini memberikan relokasi awal dan dinamis. Keamanan Setelah membahas hardware proteksi memori, dalam pembahasan kita mengenai IBM Systeml360 dan CDC 6600, sekarang kita akan membahas beberapa persoalan keamanan umum. Ada banyak teknik untuk memberi proteksi terhadap program, baik dari pro­ gram itu sendiri maupun dari program lain. Sebagian besar teknik ini mengandalkan pada software dan, seperti yang terjadi pada umumnya, bahwa tak ada sistem pengamanan yang sempuma. Disini kita akan membahas beberapa bentuk arsitektur yang diperlukan untuk memberikan keamanan. Pembahasan ini akan difokuskan pada persyaratan dan fungsi pokok yang harus dimiliki oleh sistem pengoperasian multiuser (multiprogramming) agar ia dapat memberikan keamanan kepada pemakainya. Beberapa persyaratan tersebut adalah sebagai berikut: Ia harus dapat membedakan antara software sistem pengoperasian dengan program pemakai, sehingga ia dapat melindungi sisem pengoperasian dari kerusakan. Ia harus dilengkapi dengan fasilitas,sehingga beberapa prosedur yang berbeda semuanya dapat menggunakan kode, namun ia juga harus dapat mencegah suatu prosedur mengakses kode rahasia prosedur lain. Ia harus dilengkapi dengan I/O yang efisien, aman, dan terproteksi. Yakni, sistem tersebut harus memeliharaproteksi selama trap, interrupt,dan pemulihan kesalahan. Jadi, hardware hams membedakan trap pemakai (trap yang diakibatkan atau dipicu oleh program pemakai) dengan trap sistem (trap yang dipicu oleh program sistem). Untuk operasi pipelined tinggi , sistem tersebut harus melakukan respon secara efisien bila ia mendeteksi adanya kondisi yang ilegal selama operasi pipelined. Kita dapat mengetahui alangkah suIitnya merancang sistem yang aman pada beberapa tahun yang laJu. Pada model komputer yang spesifik, jika instruksi mengakses data pada page yang tidak berada dalam memori utama, maka sistem pengoperasian akan membawa page yang diminta tersebut ke dalam memori utama (seperti yang biasa terjadi dalam demand paging). Kemudian task (tugas) yang sedang berjalan dapat melihat page ini (walaupun ia bukan milik tugas yang sedang dijalankan tersebut) deogan cara meminta dump dari ruang memorinya yang mendaftar semua nilai yang pada saat itu berada dalarn memori. Dengan melakukan dumping memori secara berulang-ulang, maka orang yang akan mengganggu sistem tersebut akan dapat melihat banyak page memori dan mungkin ia bisa meodapatkan tabel sistem, dan dengan demikian ia akan mudah merusak keamanan sistem. 'War story" ini menggambarkan alangkah mudahnya menempatkan trap dengan sembrono dalam hardware, sehingga keamanan software sulit didapatkan. Superkomputer barn biasanya mempunyai trap seperti ini, beberapa diantaranya didokumentasi dan yang lainnya tidak, yang merupakan hasil langsung dan keinginan perancang untuk mendapatkan kinerja setinggi mungkin. Untuk merekapitulasi sistem pengoperasian multiprogramming guna memperoleh keamanan, hardware harus mempunyai fasilitas-fasilitas berikut: Tingkat khusus yang banyak, sehingga ia dapat rnernbatasi kemampuan tertentu terhadap sistem pengoperasian. Para peneliti mengemukakan bahwa sistem setidaknya harus mempunyai tiga tingkat khusus (privilege level) agar ooperasi berjalan dengan efisien dan aman. Beberapa wilayah, yang masing-masing mempunyai proteksi sen diri, untuk memungkinkan tugas membagi beberapa data dan kode, namun bukan membagi bagian dari data dan kode tersebut. Exception handler yang meminta terjadinya semua event ekstemal kepada sistem pengoperasian. Lebih dari itu, untuk mencapai efisiensi, hardware harus dilengkapi dengan trap yang mencabang secara langsung ke prosedur pemakai, namun suatu saat untuk exception trapable (internal) tertentu. Tak ada trap door tersembunyi (yakni, jalan untuk program tidak khusus yang digunakan untuk mengelak dari atau menghindari mekanisme proteksi). Tidak bisa dijamin bahwa tak ada lubang seperti itu (jalan) dalam arsitektur. Namun, yang banyak digunakan oleh famili rnesin adalah trap door yang dipunyainya. Selain itu, hardware harus mendeteksi dan menangani kesalahan jalan yang tidak sesuai dengan hal keamanan. 4.2.2 Memori Cache Memori cache adalah buffer kecepatan tinggi yang digunakan untuk menyimpan data yang diakses pada saat itu dan data yang berdekatan dalam memori utama. Dengan memasukkan memori cache antara peralatan cepat dan sistem memori yang lebih lambat, perancang dapat memberikan sistem memori yang cepat. Bagian ini membahas secara singkat beberapa prinsip mepgenai organisasi dan operasi memori cache, yang difokuskan pada pembahasan organisasi dan operasi memori cache yang mempercepat sistem memori utama. Beberapa cache bisa terlihat dalam arsitektur: hardware mengaturnya dengan tanpa kontrol software. Cache yang lain, khususnya yang ada dalam sistem RISC, merupakan bagian terpadu dari arsitektur: set instruksi mencakup instruksi yang digunakan untuk tidak memberlakukan entri cache tertentu, untuk memuat dan mengeluarkan isi cache, dan untuk mencegah cache melakukan pemetaan jangkauan alamat tertentu. Kegunaan .cache terjadi karena adanya sifat program secara umum, yakni ia (program) cenderung mengakses data dan kode yang baru saja diakses atau ditempatkan di dekat lokasi memori. Kecenderungan ini disebut principle of local­ ity of reference. Sebabnya adalah: Program cenderung menjalankan instruksi secara urut dan dengan demikian instruksi tersebut mestinya berada di dekat lokasi memori. Program biasanya mempunyai loop (simpul) untuk tempat menjalankan kelompok instruksi yang berdekatan secara berulang-ulang. Kebanyakan compiler menyimpan array dalam blok lokasi memori yang bersebelahan, dan program seringkali mengakses elemen array secara urut. Dengan demikian, akses array cenderung terlokalisasi. Compiler biasanya menempatkan item data yang tidak berhubungan di dalam segmen data. Oleh karenanya akses ke data yang tidak berhubungan ini juga cenderung terlokalisasidalam segmen.Hal ini khususnyaberlaku untuk variabel lokal dalam stack. Setiap cache terdiri dari sejumlah cache entries (entri cache), dan setiap entri cache terdiri atas dua bagian, yakni beberapa memori cache dan address tag (tag alamat). Cara kerja cache adalah sederhana.Kapan saja CPU mengawali akses rnemori, sistem penyimpananakan mengirimkanalamatfisik ke cache.Cache membandingkan alarnat fisik tersebut dengan semua tag alarnatnya untuk mengetahui apakah ia menyimpan kopi dari sebuah data. Jika operasinya adalah akses baca dan cache menyimpan data biasa, maka cache akan membaca data yang diminta tersebut dari RAM kecepatan tinggi miliknya dan mengantar kan data tersebut ke CPU. Hal ini disebut cache hit, dan ia biasanya jauh lebih cepat dari pada membaca nilai yang sama secara langsung dari memori utama. Jika cache tidak menyimpan data, maka akan terjadi cache miss, dan cache akan menyarnpaikan alarnat ke sistem memori utama untuk membaca data. Apabila data datang dari memori utama, maka baik CPU mapun cache akan menerima kopinya. Cache tersebut kemudian menyimpan kopinya dengan diberi tag alarnat yang tepat. SementaraCPU menjalankaninstruksi atau memproses data, cache secara bersamaan membaca data tambahan dari sel memori utama yang berdekatan dan menyimpan data tersebut dengan diberi tag alamat di dalarn memori berkecepatan tinggi. Jika terdapat cache, maka kecepatan memori yang nampak adaJah rata-rata dari kecepatan cache dan kecepatan memori utama. Misalkan delay memori adalah 100 ns, delay cache adalah 30 ns, dan cache hit tetjadi 90% dati waktu. Maka kecepatan memori utama yang nyata adalah (0,9 X 30) + (0,1 X 1(0) atau 0,37 ns. Struktur dan Organisasi Cache Setiap cache mempunyai dua subsistem pokok, yakni tag subsystem (subsistem tag), yang menyimpan alamat dan menentukan apakah ada kesesuaian bagi data yang diminta, dan memory subsystem (subsistem memori), yang menyimpan dan mengantarkan data. Baik memori utama maupun cache dibagi menjadi beberapa refill lines, yang semua ukurannya sama dan umumnya berisi n word, dengan n adalah daya 2. Jalur cache biasanya mempunyai 4 sampai 64 byte. Jalur refill (refill line) adalah satu­ satunya unit yang diproses cache, dan cache ini menempatkan jalur tersebut sehingga mereka tidak melintasi batas refill-line yang asli. (Batas refill-line adalah sembarang alarnat yang merupakan perkalian integral dari ukuran refill-line). Apabila sistem penyimpanan mentransfer unit yang lebih kecil dari pada jalur refill, seperti sebuah word atau quadword, maka cache akan mengawali beberapa akses memori utama untuk membaca atau menulis seluruh jalur refill. Cache pertama kali akan meminta (request) word yang diinginkan, kemudian diikuti oleh data yang berdekatan. Memori cache menggunakan teknik pemetaan yang berbeda untuk memetakan alamat memori ke dalam alamat lokalnya sendiri, yakni : Cache Asosiatif Cache asosiatif (yang juga disebut fully associative cache) menyimpan tag­ nya di dalam memori asosiatif atau memori yang ekuivalen secara fungsional. Cache dapat menempatkan sembarang jalur refill yang ada dalam memori ke dalarn sembarang jalur refill-nya sendiri, dan selarna akses memori, ia membandingkan alamat yang ada dengan semua alamat yang ia simpan. Untuk memori utama yang mempunyai N jalur refill, alamat refill-line memerlukan log2N bit. Dengan cache yang menggunakan memori asosiatif, semua perbandingan terjadi secara serentak, namun memori asosiatif membutuhkan biaya tinggi untuk sistem yang besar. Dengan cache yang tidak menggunakan memori asosiatif, perbandingan Iog2N-bit cenderung membutuhkan waktu yang lama atau membutuhkan hardware untuk memori yang besar. Hal ini mendegradasi kinerja cache. Gambar 4.12 menunjukkan organisasi atau susunan asosiatif. Cache Yang Dipetakan Langsung Direct-mapped cache (cache yang dipetakan langsung) membagi ~emOri utama menjadi K kolom, dengan ada N refill line per kolomnya. Dengan menggunakan interleaving low-order misaInya, pembagian yang dihasilkan mungkin menempatkan word memori utama yang berurutan ke dalam jalur refill yang berbeda dan memungkinkan pengisian kembali (refill) cache lebih cepat. Pada segala event, cache mempunyai satu kolom N row (baris), dan setiap baris dapat menyimpan satu jalur refill. Row (baris) ke-N yang ada dalam cache dapat menyimpan jalur refill ke-N dari kolom memori mana saja, dan tag alamat untuk baris tersebut menyimpan nomor kolom dari jalur refill pada saat itu. Cache tidak memerlukan memori asosiatif. Untuk alamat memori utama yang ada, cache menggunakan nomor baris sebagai offsetke dalam memori tag-nya. Ia kemudian membandingkan nilai indeks dengan field nomor kolom dari referensi untuk mengetahui apakah ia menyimpar jalur refill yang diperlukan. Cache Set-asosiatif Set-associative cache (cache set-asosiatif) mengkombinasikan organisasi asosiatif dan direct (langsung) dan sama dengan pemetaan langsung beberapa folom. Cache set-asosiatif mengorganisir memori utama dan memorinya sendiri menjadi kolom jalur refill N. Cache dapat memetakan jalur refill i dari sembarang kolom yang ada dalam memori utama ke dalam jalur refill i dari sembarang kolorh yang ada dalam RAM-nya sendiri. (Set adalah kumpulan item yang tanpa duplikasi. Istilah set-asosiatif terbentuk dari adanya kenyataan bahwa jalur cache yang ada dapat menyimpan sembarang jalur refiJI memori utama dari set memori yang dilindungi, namun tak ada yang lainnya). Setiap jalur refill cache mempunyai alamat I tag tergabung yang menentukan nomor kolom memori utama dari jalur refill yang ia simpan. Lihat Gambar 4.14. Seperti yang dapat anda lihat, cache set-asosiatif yang mempunyai satu set adalah sama dengan cache yang dipetakan langsung. Cache Yang Dipetakan Sektor Pemetaan sektor adalah modifikasi dari pemetaan asosiatif. Dalam sector­ mapped cache (cache yang dietakan sektor), jalur refill memori utama dan cache dikelompokkan menjadisector (sektor),yang juga disebut row (baris). Cache dapat memetakan sembarang sektor memori utama ke dalam sembarang sektor cache, dan cache secara logis menggunakan memori asosiatif untuk menjalankan pemetaan. Karena jalur reftll selalu melakukan pengurutan dalam sektor, maka memori asosiatif hanya memetakan alamat sektor. Cache terse but menggunakan validity bit (bit validitas), yakni satu untuk setiap jalur refill, untuk menjaga track jalur refill yang muncul dalam RAM cache. Pilihan Desain Cache yang dipetakan langsung dan cache asosiatif sernpuma dapat dianggap sebagai kasus cache set-asosiatif khusus, dengan jurnlah set sama dengan 1 (pemetaan langsung) atau sama dengan jumlah jalur dalarn cache (asosiatif sempurna). Jadi pengertiannya adalah bahwa cache set-asosiatif merupakan kasus yang umum. Dalam prakteknya, perancang tidak menggunakan cache asosiatif sempurna karena cache ini memerlukan terlalu banyak hardware dan ia sedikit tidak menjalankan cache set-asosiatif dua arah. Namun demikian, cache asosiatif sempurna mudah dianalisa secara matematis, sehingga para peneliti seringkali menyebutkannya dalam literatur dan dengan menggunakan istilab set-associative cache (seperti istilah yang kita gunakan disini) untuk mengartikan atau menamakan cache yang tidak mempunyai bentuk desain yang khusus. Dengan kata lain, cache set-asosiatif paling sedikit mempunyai dua set, namun bukan berarti memiliki sebanyak set seperti yang dimiliki jalur cache. Pemrosesan Alamat Cache Cache asosiatif mengecek semua tagnya untuk melihat apakah ada yang cocok dengan alarnat yang diminta. Cache dengan organisasi sektor juga secara serentak mengecek semua tag alamat. Namun demikian, tag-tag menyimpan alamat sektor, bukannya alamat jalur refill, sehingga mereka merupakan n bit yang lebih pendek, dengan 2N adalah jumlah jalur refill dalam sebuah sektor. N bit sisanya menentukan bit validitas untuk menyelesaikan pengecekan. Cache yang dipetakan langsung menggunakan beberapa bit alamat untuk mengindeks ke dalam tabel tag guna mengecek alarnat cache. Setiap akses cache hanya memerlukan pengecekan satu entri cache. Cache set-asosiatif secara langsung mengindeks ke dalam memori tag yang mempunyai bagian alamat untuk mendapatkan set tag. Ia kemudian membandingkan bit alarnat high-order yang masih ada ke semua entri tag yang ada dalam set. Oleh karena itu, cache set-asosiatif menggunakan bagian alarnat sebagai untuk mengindeks ke dalarn memori tag guna menentukan set dua tag dan kemudian melakukan pengecekan untuk melihat apakah tag yang lain berlaku atau benar untuknya. ARKOMPage 33