JURNAL ILMIAH ORGANISASI DAN ARSITEKTUR KOMPUTER Oleh : Nama : Mohammad Fadjri Mangun Diwirya Nim : 1114101223 Abstraksi - Penulisan jurnal ini membahas tentang arsitektur dan organisasi komputer secara keseluruhan. Adapun metode yang disajikan, yaitu secara deduktif (gambaran secara umum ke lebih spesifik atau mendetail dari setiap komponen-komponen yang terkait di dalam komputer) agar lebih mudah untuk dipahami. Dalam penulisan jurnal ini, bahasan yang penulis dapat sajikan, yaitu : a. Pengantar Organisasi Komputer; b. Evolusi dan Kinerja Komputer; c. Struktur CPU; d. Memori; e. Peralatan Penyimpanan; f. Unit Masukan dan Keluaran; g. Bus. Diharapkan hasil dari penulisan jurnal ini agar dapat mengetahui, mengenal, dan memahami mulai dari pengertian, komponen – komponen yang terkait serta cara kerja / proses yang nantinya akan menjadi output atau hasil dari sebuah kerja komputer. PENDAHULUAN Jurnal ini membahas tentang penjelasan atau gambaran secara deduktif dari suatu organisasi & arsitektur komputer yakni mengenai struktur dan fungsi komputer, dimana tema ini menjadi bagian dari mata kuliah Teknik Informatika pada semester atau tingkat IV. Tujuan penulis dalam pembuatan jurnal ini adalah dalam rangka pemenuhan tugas pada mata kuliah Organisasi dan Arsitektur Komputer. Setelah mempelajari jurnal ini diharapkan dapat memahami sifat dan karakteristik sistem-sistem komputer yang berkembang saat ini. Tantangan yang dihadapi adalah adanya bermacam-macam komputer dan perkembangan yang pesat dibidang komputer, namun demikian konsep dasar organisasi komputer telah digunakan secara konsisten secara menyeluruh. Jurnal ini bermaksud untuk memberikan bahasan lengkap dan mudah tentang dasar-dasar organisasi komputer. lengkap dan mudah tentang dasar-dasar organisasi komputer BAHAN dan METODE Dalam rangka penyusunan jurnal ini, penulis mengumpulkan bahan – bahan dari berbagai referensi baik dari media cetak : buku karya William Stallings (jilid 1 dan 2) dan media online : Metode pembahasan yang disajikan secara deduktif, yakni dari penjelasan secara global ke penjelasan secara terperinci dari suatu organisasi dan arsitektur komputer . HASIL Kita dapat mengetahui, mengenal, dan memahami mulai dari pengertian, komponen – komponen yang terkait serta cara kerja / proses yang nantinya akan menjadi output atau hasil dari sebuah kerja komputer.
Unit masukan menerima informasi yang yang dikodekan dari operator manusia lewat alat-alat elektromekanik seperti papan ketik pada suatu terminal video, atau dari komputer-komputer lain lewat jalur komunikasi digital. Informasi yang diterima dan disimpan dalam memori untuk dipergunakan kelak, atau langsung diolah oleh rangkaian aritmetika dan logika untuk melaksanakan operasi yang diinginkan. Langkah-langkah pengolahan ditentukan oleh program yang disimpan dalam memori. Akhirnya hasil-hasil yang diperoleh dikirimkan kembali keluar melalui unit keluaran. Seluruh kegiatan ini dikoordinasi oleh unit kontrol.
Organisasi Komputer
Arsitektur Komputer
� Contoh: set instruksi, aritmetika yang digunakan, teknik pengalamatan, mekanisme I/O PEMBAHASAN PENGANTAR ORGANISASI KOMPUTER Komputer adalah sebuah sistem yang berinteraksi dengan cara tertentu dengan dunia luar. Interaksi dengan dunia luar dilakukan melalui perangkat peripheral dan saluran komunikasi. Dalam struktur internal komputer, terdapat empat struktur utama:
� System Interconnection, merupakan sistem yang menghubungkan CPU, memori utama dan I/O.
Komponen yang paling menarik namun paling kompleks adalah CPU. Struktur CPU terlihat pada gambar 1.2, dengan struktur utamanya adalah :
� CPU Interconnection, berfungsi menghubungkan seluruh bagian dari CPU. komputer memerlukan unit penyimpanan sehingga diperlukan suatu mekanisme penyimpanan data. Walaupun hasil komputer digunakan saat itu, setidaknya komputer memerlukan media penyimpanan untuk data prosesnya. Dalam interaksi dengan dunia luar sebagai fungsi pemindahan data diperlukan antarmuka (interface), proses ini dilakukan oleh unit Input/Output (I/O) dan perangkatnya disebut peripheral. Saat interaksi dengan perpindahan data yang jauh atau dari remote device, komputer melakukan proses komunikasi data. Gambar 1.4 mengilustrasikan operasi–operasi komputer. Gambar 1.4a adalah operasi pemindahan data, gambar 1.4b adalah operasi penyimpanan data, gambar 1.4c dan gambar 1.4d adalah operasi pengolahan data. EVOLUSI DAN KINERJA KOMPUTER 2.1. Sejarah Singkat Komputer 1. Generasi Pertama : Tabung Vakum (1945 – 1955) ENIAC ENIAC (Electronic Numerical Integrator And Computer), pada tahun 1946 dirancang dan dibuat oleh John Mauchly dan John Presper Eckert di Universitas Pennsylvania merupakan komputer digital elektronik untuk kebutuhan umum pertama di dunia. ENIAC dibuat di bawah lembaga Army’s Ballistics Research Laboratory (BRL). Sebuah badan yang bertanggung jawab dalam pembuatan jarak dan tabel lintasan peluru kendali senjata baru. Sebelumnya tugas ini dilakukan oleh kurang lebih 200 personil dengan menggunakan kalkulator untuk menyelesaikan persamaan matematis peluru kendali yang memakan waktu lama. ENIAC mempunyai berat 30 ton, bervolume 15.000 kaki persegi, dan berisi lebih dari 18.000 tabung vakum. Daya listrik yang dibutuhkan sebesar 140 KW. Kecepatan operasi mencapai 5.000 operasi penambahan per detik. ENIAC masih merupakan mesin desimal, representasi data bilangan dalam bentuk desimal dan arimetiknya dibuat dalam bentuk desimal. Memorinya terdiri atas 20 akumulator, yang masing – masing akumulatornya mampu menampung 10 digit desimal. Setiap digit direpresentasikan oleh cincin yang terdiri atas 10 buah tabung vakum. Kekurangan utama mesin ini adalah masih manual pemrogramannya, yaitu dengan menyetel switch – switch, memasang dan menanggalkan kabel – kabelnya. ENIAC selesai pada tahun 1946 sejak proposal diajukan tahun 1943, sehingga tahun 1946 merupakan gerbang bagi zaman baru komputer elektronik. John Van Neumann seorang ahli matematika yang merupakan konsultan pembuatan ENIAC pada tahun 1945 mencoba memperbaiki kelemahan ENIAC dengan rancangan komputer barunya, bernama EDVAC (Electronic Discrete Variable Computer) dengan konsep program tersimpan (stored-program concept). Tahun 1946 komputer dengan stored-program concept dipublikasikasikan, yang kemudian di kenal dengan Komputer IAS (Computer of Institute for Advanced Studies). Struktur komputer IAS terlihat pada gambar 2.1. Komputer ini terdiri :
I/O, untuk berinteraksi dengan lingkungan luar. Memori IAS terdiri atas 1.000 lokasi penyimpanan yang disebut word. Word terdiri atas 40 binary digit (bit). Data maupun instruksi disimpan dalam memori ini, sehingga data maupun instruksi harus dikodekan dalam bentuk biner. Format memori terlihat pada gambar 2.2. Setiap bilangan terdiri atas sebuah bit tanda dan 39 bit nilai. Sebuah word terdiri atas 20 bit instruksi dengan masing – masing 8 bit kode operasi (op code) dan 12 bit alamat. Struktur detail komputer IAS disajikan dalam di atas. Gambar ini menjelaskan bahwa baik unit kontrol maupun ALU berisi lokasi – lokasi penyimpanan, yang disebut register, yaitu :
Komputer Komersial Tahun 1950 dianggap sebagai tahun kelahiran industri komputer dengan munculnya 2 buah perusahaan yang saat itu mendominasi pasar, yaitu Sperry dan IBM. Tahun 1947, Eckert dan Mauchly mendirikan Eckert-Mauchly Computer Corporation untuk memproduksi komputer secara komersial. Komputer pertama yang mereka hasilkan adalah UNIVAC I (Universal Automatic Computer). UNIVAC I menjadi tulang punggung penghitungan sensus tahun 1950 di USA. UNIVAC II yang memiliki kapasitas memori lebih besar dan kinerja yang lebih baik diluncurkan tahun 1950. Mulai saat itu perusahaan telah mengembangkan produk – produk baru yang kompatibel dengan produk sebelumnya sehingga pangsa pasar konsumen mereka tetap terjaga menggunakan produknya. IBM pun tidak mau kalah dengan mengeluarkan produk mereka yang akhirnya mendominasi pangsa pasar bisnis saat ini. Seri IBM pertama adalah seri 701 tahun 1953 dan terus berkembang menjadi lebih baik hingga sekarang.
2. Generasi Kedua : Transistor (1955 – 1965) Sejak pesatnya teknologi semikonduktor hingga menghasilkan komponen transistor membawa perubahan besar pada dunia komputer. Komputer era ini tidak lagi menggunakan tabung vakum yang memerlukan daya operasional besar, tabung – tabung itu digantikan komponen kecil bernama transistor. Konsumsi daya listrik amat kecil dan bentuknyapun relatif kecil. Transistor ditemukan di Bell Labs pada tahun 1947 dan tahun 1950 telah meluncurkan revolusi elektronika modern. IBM sebagai perusahaan pertama yang meluncurkan produk komputer dengan transistor sehingga tetap mendominasi pangsa pasar komputer. NCR dan RCA adalah perusahaan yang mengembangkan komputer berukuran kecil saat itu, kemudian diikuti IBM dengan mengeluarkan seri 7000-nya. Dengan adanya transistor membuat hardware komputer saat itu makin cepat prosesnya, lihat Tabel 2.1. Memori makin besar kapasitasnya namun makin kecil bentuknya. Generasi dua ini juga terdapat perubahan perkembangan pada ALU yang makin kompleks, lahirnya bahasa pemrograman tingkat tinggi maupun tersedianya software sistem operasi. Generasi kedua juga ditandai munculnya Digital Equipment Corporation (DEC) tahun 1957 dan meluncurkan komputer pertamanya, yaitu PDP 1. Komputer ini sangat penting bagi perkembangan komputer generasi ketiga. Kecepatan Generasi – Generasi Komputer IBM 7094 Komputer ini diluncurkan tahun 1962. Kemajuan IBM 7094 adalah adanya Instruction Backup Register (IBR) yang berfungsi membeffer instruksi berikutnya, efeknya komputer akan lebih cepat prosesnya. Unit kontrol mengambil dua word yang berdampingan dari memori untuk sebuah pengambilan instruksi, kecuali bila terjadi percabangan. Kemajuan IBM 7094 lainnya adalah adanya multiplexor untuk memultiplex data channel (saluran data). Multiplexor berfungsi sebagai sentral switch data yang akan diproses dalam CPU. Gambar 2.5 merupakan konfigurasi IMB 7094.
Pada tahun 1958 terjadi revolusi elektronika kembali, yaitu ditemukannya integrated circuit (IC) yang merupakan penggabungan komponen – komponen elektronika dalam suatu paket. Dengan ditemukan IC ini semakin mempercepat proses komputer, kapasitas memori makin besar dan bentuknya semakin kecil. IBM System/360 Tahun 1964 dikeluarkan IBM System/360 yang telah menggunakan teknologi IC. Dalam satu dekade IBM menguasai 70% pasaran komputer. Sistem 360 merupakan kelompok komputer pertama yang terencana. Banyak model dalam arsitektur 360 ini dan saling kompatibel. Hal ini sangat menguntungkan konsumen, karena konsumen dapat menyesuaikan dengan kebutuhan maupun harganya. Pengembangan (upgrading) dimungkinkan dalam komputer ini. Karakteristik komputer kelompok ini adalah :
Harga yang meningkat, semakin tinggi modelnya maka harganya semakin mahal. Tabel 2.2 Karakteristik Penting Kelompok System/360
DEC PDP-8 Pada tahun yang sama saat IBM mengeluarkan System/360, DEC meluncurkan DEC PDP-8. Komputer ini memiliki keunggulan bentuknya yang kecil sehingga sangat fleksibel digunakan. PDP-8 juga memiliki varian – varian yang modelnya sama dengan IBM System/360 untuk menyesuaikan kebutuhan pelanggannya. Dengan hadirnya PDP-8 ini membawa DEC sebagai perusahaan menyuplai komputer mini terbesar membawa DEC sebagai pabrik komputer terbesar kedua setelah IBM. Arsitektur PDP-8 sangat berbeda dengan IBM terutama bagian sistem bus. Pada komputer ini menggunakan omnibus system. Sistem ini terdiri atas 96 buah lintasan sinyal yang terpisah, yang digunakan untuk membawa sinyal – sinyal kontrol, alamat maupun data. Karena semua komponen menggunakan jalur bus ini maka penggunaannya dikontrol oleh CPU. Arsitektur bus seperti PDP-8 ini nantinya digunakan oleh komputer – komputer modern selanjutnya. Struktur bus PDP-8 terlihat pada gambar di bawah ini 4 Generasi Keempat : Very Large Scale Integration (1980 - ????) Era keempat perkembangan generasi komputer ditandai adanya VLSI. Paket VLSI dapat menampung 10.000 komponen lebih per kepingnya dengan kecepatan operasi mencapai 100juta operasi per detiknya. Gambar 2.7 mengilustrasikan perkembangan mikroprosesor Pentium terhadap jumlah transistor per kepingnya. Masa – masa ini diawali peluncuran mikroprosesor Intel seri 4004. Mikroprosesor 4004 dapat menambahkan dua bilangan 4 bit dan hanya dapat mengalikan dengan cara pengulangan penambahan. Memang masih primitif, namun mikroprosesor ini tonggak perkembangan mikroprosesor – mikroprosesor canggih saat ini. Tidak ada ukuran pasti dalam melihat mikroprosesor, namun ukuran terbaik adalah lebar bus data : jumlah bit data yang dapat dikirim – diterima mikroprosesor. Ukuran lain adalah jumlah bit dalam register. Tahun 1972 diperkenalkan dengan mikroprosesor 8008 yang merupakan mikroprosesor 8 bit. Mikroprosesor ini lebih kompleks instruksinya tetapi lebih cepat prosesnya dari pendahulunya. Kemudian Bells dan HP menciptakan mikroprosesor 32 bit pada 1981, sedangkan Intel baru mengeluarkan tahun 1985 dengan mikroprosesor 80386. Evolusi mikroprosesor Intel 2.2. Perancangan Kinerja Kinerja sebuah sistem komputer merupakan hasil proses dari seluruh komponen komputer, yang melibatkan CPU, memori utama, memori sekunder, bus, peripheral. Dari segi perkembangan program aplikasipun sangat menakjubkan. Aplikasi dekstop yang hampir dimiliki semua sistem komputer saat ini meliputi:
-Transfer data
Perkembangan mikroprosesor, dilihat dari kapasitas operasi dan kecepatannya sangatlah pesat. Perkembangan mikroprosesor ini sulit diimbangi oleh komponen lainnya semisal memori. Hal ini menimbulkan masalah kesenjangan dan kurang sinkronnya operasi antar komponen. Perhatikan laju perkembangan prosesor dibandingkan memori utama seperti terlihat pada gambar 2.8. Organisasi dan arsitektur komputer yang handal sangat diperlukan untuk mengatasi persoalan seperti ini. Terdapat beberapa metode untuk mengatasi masalah perbedaan kecepatan operasi antara mikroprosesor dengan komponen lainnya, diantaranya :
Bidang lain yang menjadi fokus kajian peningkatan kinerja sistem komputer adalah penanganan perangkat – perangkat I/O. Masalah yang terjadi hampir sama dengan memori. Teknik penyelesaian yang digunakan umumnya adalah teknik buffering dan caching. Target yang ingin dicapai dalam peningkatan kinerja adalah tercapainya keseimbangan proses operasi antar komponen – komponen penyusun komputer sehingga menghasilkan kinerja komputer yang tinggi. 2.3. Contoh Evolusi Komputer Evolusi komputer yang akan dijelaskan adalah kelompok komputer Pentium Intel dan PowerPC. Alasannya adalah komputer Pentium Intel mampu mendominasi pasaran dan secara teknologi menggunakan rancangan CISC (complex instruction set computers) dalam arsitekturnya. Sedangkan PowerPC merupakan kelompok komputer yang menerapkan teknologi RISC (reduced instruction set computers). Detail tentang CISC dan RISC akan dijelaskan dalam matakuliah Arsitektur CPU. Pentium Pentium merupakan produk Intel yang mampu mendominasi pasaran prosesor hingga saat ini. Generasi demi generasi diluncurkan ke pasaran dengan kenaikan unjuk kerja yang menakjubkan dalam memenuhi kebutuhan konsumennya. Berikut evolusi prosesor keluaran Intel dari prosesor sederhana sampai prosesor keluaran saat ini:
PowerPC Proyek sistem RISC diawali tahun 1975 oleh IBM pada komputer muni seri 801. Seri pertama ini hanyalah prototipe, seri komersialnya adalah PC RT yang dikenalkan tahun 1986. Tahun 1990 IBM mengeluarkan generasi berikutnya yaitu IBM RISC System/6000 yang merupakan mesin RISC superskalar workstation. Setelah ini arsitektur IBM lebih dikenal sebagai arsitektur POWER. IBM menjalin kerja sama dengan Motorola menghasilkan mikroprosesor seri 6800, kemudian Apple menggunakan keping Motorola dalam Macintoshnya. Saat ini terdapat 4 kelompok PowerPC, yaitu :
G4, seperti seri 750 tetapi lebih cepat dan menggunakan 8 instruksi paralel. STRUKTUR CPU Seperti telah dijelaskan pada bagian pengantar, bahwa komputer digital terdiri dari sistem prosesor atau sering disebut CPU, memori – memori, dan piranti masukan/keluaran yang saling berhubungan dan saling dukung mewujudkan fungsi operasi komputer secara keseluruhan. 3.1 Komponen Utama CPU CPU merupakan komponen terpenting dari sistem komputer. CPU adalah komponen pengolah data berdasarkan instruksi – instruksi yang diberikan kepadanya. Dalam mewujudkan fungsi dan tugasnya, CPU tersusun atas beberapa komponen sebagai bagian dari struktur CPU, seperti terlihat pada gambar 3.1 dan struktur detail internal CPU terlihat pada gamber 3.2. CPU tersusun atas beberapa komponen, yaitu :
CPU Interconnections, adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register – register dan juga dengan bus – bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan/keluaran. 3.2 Fungsi CPU Fungsi CPU adalah menjalankan program – program yang disimpan dalam memori utama dengan cara mengambil instruksi – instruksi, menguji instruksi tersebut dan mengeksekusinya satu persatu sesuai alur perintah. Untuk memahami fungsi CPU dan caranya berinteraksi dengan komponen lain, perlu kita tinjau lebih jauh proses eksekusi program. Pandangan paling sederhana proses eksekusi program adalah dengan mengambil pengolahan instruksi yang terdiri dari dua langkah, yaitu : operasi pembacaan instruksi (fetch) dan operasi pelaksanaan instruksi (execute). Siklus instruksi yang terdiri dari siklus fetch dan siklus eksekusi diperlihatkan pada gambar 3.3 berikut. 3.2.1 Siklus Fetch - Eksekusi Pada setiap siklus instruksi, CPU awalnya akan membaca instruksi dari memori. Terdapat register dalam CPU yang berfungsi mengawasi dan menghitung instruksi selanjutnya, yang disebut Program Counter (PC). PC akan menambah satu hitungannya setiap kali CPU membaca instruksi. Instruksi – instruksi yang dibaca akan dibuat dalam register instruksi (IR). Instruksi – instruksi ini dalam bentuk kode – kode binner yang dapat diinterpretasikan oleh CPU kemudian dilakukan aksi yang diperlukan. Aksi – aksi ini dikelompokkan menjadi empat katagori, yaitu :
Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori. 3.2.2 Fungsi Interrupt Fungsi interupsi adalah mekanisme penghentian atau pengalihan pengolahan instruksi dalam CPU kepada routine interupsi. Hampir semua modul (memori dan I/O) memiliki mekanisme yang dapat menginterupsi kerja CPU. Tujuan interupsi secara umum untuk menejemen pengeksekusian routine instruksi agar efektif dan efisien antar CPU dan modul – modul I/O maupun memori. Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU disamping itu kecepatan eksekusi masing – masing modul berbeda sehingga dengan adanya fungsi interupsi ini dapat sebagai sinkronisasi kerja antar modul. Macam – macam kelas sinyal interupsi :
Dengan adanya mekanisme interupsi, prosesor dapat digunakan untuk mengeksekusi instruksi – instruksi lain. Saat suatu modul telah selesai menjalankan tugasnya dan siap menerima tugas berikutnya maka modul ini akan mengirimkan permintaan interupsi ke prosesor. Kemudian prosesor akan menghentikan eksekusi yang dijalankannya untuk menghandel routine interupsi. Setelah program interupsi selesai maka prosesor akan melanjutkan eksekusi programnya kembali. Saat sinyal interupsi diterima prosesor ada dua kemungkinan tindakan, yaitu interupsi diterima/ditangguhkan dan interupsi ditolak. Apabila interupsi ditangguhkan, prosesor akan melakukan hal – hal dibawah ini :
Untuk sistem operasi yang kompleks sangat dimungkinkan adanya interupsi ganda (multiple interrupt). Misalnya suatu komputer akan menerima permintaan interupsi saat proses pencetakan dengan printer selesai, disamping itu dimungkinkan dari saluran komunikasi akan mengirimkan permintaan interupsi setiap kali data tiba. Dalam hal ini prosesor harus menangani interupsi ganda. Dapat diambil dua buah pendekatan untuk menangani interupsi ganda ini. Pertama adalah menolak atau tidak mengizinkan interupsi lain saat suatu interupsi ditangani prosesor. Kemudian setelah prosesor selesai menangani suatu interupsi maka interupsi lain baru di tangani. Pendekatan ini disebut pengolahan interupsi berurutan / sekuensial. Pendekatan ini cukup baik dan sederhana karena interupsi ditangani dalam ututan yang cukup ketat. Kelemahan pendekatan ini adalah metode ini tidak memperhitungkan prioritas interupsi. Pendekatan ini diperlihatkan pada gambar 3.6a. Pendekatan kedua adalah dengan mendefinisikan prioritas bagi interupsi dan interrupt handler mengizinkan interupsi berprioritas lebih tinggi ditangani terlebih dahulu. Pedekatan ini disebut pengolahan interupsi bersarang. Metode ini digambarkan pada gambar 3.6b. Sebagai contoh untuk mendekatan bersarang, misalnya suatu sistem memiliki tiga perangkat I/O: printer, disk, dan saluran komunikasi, masing – masing prioritasnya 2, 4 dan 5. Pada awal sistem melakukan pencetakan dengan printer, saat itu terdapat pengiriman data pada saluran komunikasi sehingga modul komunikasi meminta interupsi. Proses selanjutnya adalah pengalihan eksekusi interupsi mudul komunikasi, sedangkan interupsi printer ditangguhkan. Saat pengeksekusian modul komunikasi terjadi interupsi disk, namun karena prioritasnya lebih rendah maka interupsi disk ditangguhkan. Setelah interupsi modul komunikasi selesai akan dilanjutkan interupsi yang memiliki prioritas lebih tinggi, yaitu disk. Bila interupsi disk selesai dilanjutkan eksekusi interupsi printer. Selanjutnya dilanjutkan eksekusi program utama. Modul I/O merupakan peralatan antarmuka (interface) bagi sistem bus atau switch sentral dan mengontrol satu atau lebih perangkat peripheral. Modul I/O tidak hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus komputer. Ada beberapa alasan kenapa piranti – piranti tidak langsung dihubungkan dengan bus sistem komputer, yaitu :
sehingga perlu modul untuk menselaraskannya. Dari beberapa alasan diatas, modul I/O memiliki dua buah fungsi utama, yaitu :
6.1 Sistem Masukan & Keluaran Komputer Bagaimana modul I/O dapat menjalankan tugasnya, yaitu menjembatani CPU dan memori dengan dunia luar merupakan hal yang terpenting untuk kita ketahui. Inti mempelajari sistem I/O suatu komputer adalah mengetahui fungsi dan struktur modul I/O. Perhatikan gambar 6.1 yang menyajikan model generik modul I/O. 6.1.1 Fungsi Modul I/O Modul I/O adalah suatu komponen dalam sistem komputer yang bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan memori utama ataupun dengan register – register CPU. Dalam mewujudkan hal ini, diperlukan antarmuka internal dengan komputer (CPU dan memori utama) dan antarmuka dengan perangkat eksternalnya untuk menjalankan fungsi – fungsi pengontrolan. Fungsi dalam menjalankan tugas bagi modul I/O dapat dibagi menjadi beberapa katagori, yaitu:
Fungsi kontrol dan pewaktuan (control & timing) merupakan hal yang penting untuk mensinkronkan kerja masing – masing komponen penyusun komputer. Dalam sekali waktu CPU berkomunikasi dengan satu atau lebih perangkat dengan pola tidak menentu dan kecepatan transfer komunikasi data yang beragam, baik dengan perangkat internal seperti register – register, memori utama, memori sekunder, perangkat peripheral. Proses tersebut bisa berjalan apabila ada fungsi kontrol dan pewaktuan yang mengatur sistem secara keseluruhan. Contoh kontrol pemindahan data dari peripheral ke CPU melalui sebuah modul I/O dapat meliputi langkah – langkah berikut ini :
mengirimkan perintah ke modul I/O.
kecepatan transfer oleh modul I/O sehingga paket – paket data dapat diterima CPU dengan baik. Transfer data tidak akan lepas dari penggunaan sistem bus, maka interaksi CPU dan modul I/O akan melibatkan kontrol dan pewaktuan sebuah arbitrasi bus atau lebih. Adapun fungsi komunikasi antara CPU dan modul I/O meliputi proses – proses berikut :
Pada sisi modul I/O ke perangkat peripheral juga terdapat komunikasi yang meliputi komunikasi data, kontrol maupun status. Perhatikan gambar 6.2 berikut. Fungsi selanjutnya adalah buffering. Tujuan utama buffering adalah mendapatkan penyesuaian data sehubungan perbedaan laju transfer data dari perangkat peripheral dengan kecepatan pengolahan pada CPU. Umumnya laju transfer data dari perangkat peripheral lebih lambat dari kecepatan CPU maupun media penyimpan. Fungsi terakhir adalah deteksi kesalahan. Apabila pada perangkat peripheral terdapat masalah sehingga proses tidak dapat dijalankan, maka modul I/O akan melaporkan kesalahan tersebut. Misal informasi kesalahan pada peripheral printer seperti: kertas tergulung, pinta habis, kertas habis, dan lain – lain. Teknik yang umum untuk deteksi kesalahan adalah penggunaan bit paritas. 6.1.2 Struktur Modul I/O Terdapat berbagai macam modul I/O seiring perkembangan komputer itu sendiri, contoh yang sederhana dan fleksibel adalah Intel 8255A yang sering disebut PPI (Programmable Peripheral Interface). Bagaimanapun kompleksitas suatu modul I/O, terdapat kemiripan struktur, seperti terlihat pada gambar 6.3. Antarmuka modul I/O ke CPU melalui bus sistem komputer terdapat tiga saluran, yaitu saluran data, saluran alamat dan saluran kontrol. Bagian terpenting adalah blok logika I/O yang berhubungan dengan semua peralatan antarmuka peripheral, terdapat fungsi pengaturan dan switching pada blok ini. 6.2 Teknik Masukan/Keluaran Terdapat tiga buah teknik dalam operasi I/O, yaitu: I/O terprogram, interrupt – driven I/O, dan DMA (Direct Memory Access). Ketiganya memiliki keunggulan maupun kelemahan, yang penggunaannya disesuaikan sesuai unjuk kerja masing – masing teknik. 6.2.1 I/O Terprogram Pada I/O terprogram, data saling dipertukarkan antara CPU dan modul I/O. CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat. Kelemahan teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Dalam teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap proses – proses yang diinteruksikan padanya. Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap dilaksanakan. Untuk melaksanakan perintah – perintah I/O, CPU akan mengeluarkan sebuah alamat bagi modul I/O dan perangkat peripheralnya sehingga terspesifikasi secara khusus dan sebuah perintah I/O yang akan dilakukan. Terdapat empat klasifikasi perintah I/O, yaitu:
Dalam teknik I/O terprogram, terdapat dua macam inplementasi perintah I/O yang tertuang dalam instruksi I/O, yaitu: memory-mapped I/O dan isolated I/O. Dalam memory-mapped I/O, terdapat ruang tunggal untuk lokasi memori dan perangkat I/O. CPU memperlakukan register status dan register data modul I/O sebagai lokasi memori dan menggunakan instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O. Konskuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran tunggal untuk penulisan. Keuntungan memory-mapped I/O adalah efisien dalam pemrograman, namun memakan banyak ruang memori alamat. Dalam teknik isolated I/O, dilakukan pemisahan ruang pengalamatan bagi memori dan ruang pengalamatan bagi I/O. Dengan teknik ini diperlukan bus yang dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output. Keuntungan isolated I/O adalah sedikitnya instruksi I/O. 6.2.2 Interrupt – Driven I/O Teknik interrupt – driven I/O memungkinkan proses tidak membuang – buang waktu. Prosesnya adalah CPU mengeluarkan perintah I/O pada modul I/O, bersamaan perintah I/O dijalankan modul I/O maka CPU akan melakukan eksekusi perintah – perintah lainnya. Apabila modul I/O telah selesai menjalankan instruksi yang diberikan padanya akan melakukan interupsi pada CPU bahwa tugasnya telah selesai. Dalam teknik ini kendali perintah masih menjadi tanggung jawab CPU, baik pengambilan perintah dari memori maupun pelaksanaan isi perintah tersebut. Terdapat selangkah kemajuan dari teknik sebelumnya, yaitu CPU melakukan multitasking beberapa perintah sekaligus sehingga tidak ada waktu tunggu bagi CPU. Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima perintah, misal read. Kemudian modul I/O melaksanakan perintah pembacaan dari peripheral dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian modul menunggu datanya diminta CPU. Saat permintaan terjadi, modul meletakkan data pada bus data dan modul siap menerima perintah selanjutnya. Pengolahan interupsi saat perangkat I/O telah menyelesaikan sebuah operasi I/O adalah sebagai berikut :
Terdapat bermacam teknik yang digunakan CPU dalam menangani program interupsi ini, diantaranya :
Teknik yang paling sederhana adalah menggunakan saluran interupsi berjumlah banyak (Multiple Interrupt Lines) antara CPU dan modul – modul I/O. Namun tidak praktis untuk menggunakan sejumlah saluran bus atau pin CPU ke seluruh saluran interupsi modul – modul I/O. Alternatif lainnya adalah menggunakan software poll. Prosesnya, apabila CPU mengetahui adanya sebuah interupsi, maka CPU akan menuju ke routine layanan interupsi yang tugasnya melakukan poll seluruh modul I/O untuk menentukan modul yang melakukan interupsi. Kerugian software poll adalah memerlukan waktu yang lama karena harus mengidentifikasi seluruh modul untuk mengetahui modul I/O yang melakukan interupsi. Teknik yang lebih efisien adalah daisy chain, yang menggunakan hardware poll. Seluruh modul I/O tersambung dalam saluran interupsi CPU secara melingkar (chain). Apabila ada permintaan interupsi, maka CPU akan menjalankan sinyal acknowledge yang berjalan pada saluran interupsi sampai menjumpai modul I/O yang mengirimkan interupsi. Teknik berikutnya adalah arbitrasi bus. Dalam metode ini, pertama – tama modul I/O memperoleh kontrol bus sebelum modul ini menggunakan saluran permintaan interupsi. Dengan demikian hanya akan terdapat sebuah modul I/O yang dapat melakukan interupsi. Pengontrol Interrupt Intel 8259A Intel mengeluarkan chips 8259A yang dikonfigurasikan sebagai interrupt arbiter pada mikroprosesor Intel 8086. Intel 8259A melakukan manajemen interupsi modul -modul I/O yang tersambung padanya. Chips ini dapat diprogram untuk menentukan prioritas modul I/O yang lebih dulu ditangani CPU apabila ada permintaan interupsi yang bersamaan. Gambar 6.4 menggambarkan pemakaian pengontrol interupsi 8259A. Berikut mode – mode interupsi yang mungkin terjadi :
Special Mask: prioritas diprogram untuk modul I/O tertentu secara spesial. Programmable Peripheral Interface Intel 8255A Contoh modul I/O yang menggunakan I/O terprogram dan interrupt driven I/O adalah Intel 8255A Programmable Peripheral Interface (PPI). Intel 8255A dirancang untuk keperluan mikroprosesor 8086. Gambar 6.5 menunjukkan blok diagram Intel 8255A dan pin layout-nya. Bagian kanan dari blok diagram Intel 8255A adalah 24 saluran antarmuka luar, terdiri atas 8 bit port A, 8 bit port B, 4 bit port CA dan 4 bit port CB. Saluran tersebut dapat diprogram dari mikroprosesor 8086 dengan menggunakan register kontrol untuk menentukan bermacam – macam mode operasi dan konfigurasinya. Bagian kiri blok diagram merupakan interface internal dengan mikroprosesor 8086. Saluran ini terdiri atas 8 bus data dua arah (D0 – D7), bus alamat, dan bus kontrol yang terdiri atas saluran CHIP SELECT, READ, WRITE, dan RESET. Pengaturan mode operasi pada register kontrol dilakukan oleh mikroprosesor., Pada Mode 0, ketiga port berfungsi sebagai tiga port I/O 8 bit. Pada mode lain dapat port A dan port B sebagai port I/O 8 bit, sedangkan port C sebagai pengontrol saluran port A dan B. PPI Intel 8255A dapat diprogram untuk mengontrol berbagai peripheral sederhana. Gambar 6.6 memperlihatkan contoh penggunaan 8255A untuk modul I/O Keyboard dan display. 6.2.3 Direct Memory Access (DMA) Teknik yang dijelaskan sebelumnya yaitu I/O terprogram dan Interrupt-Driven I/O memiliki kelemahan, yaitu proses yang terjadi pada modul I/O masih melibatkan CPU secara langsung. Hal ini berimplikasi pada : • Kelajuan transfer I/O yang tergantung pada kecepatan operasi CPU. • Kerja CPU terganggu karena adanya interupsi secara langsung. Bertolak dari kelemahan di atas, apalagi untuk menangani transfer data bervolume besar dikembangkan teknik yang lebih baik, dikenal dengan Direct Memory Access (DMA). Prinsip kerja DMA adalah CPU akan mendelegasikan kerja I/O kepada DMA, CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir proses saja. Dengan demikian CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi. Blok diagram modul DMA terlihat pada gambar 6.7 berikut : Dalam melaksanakan transfer data secara mandiri, DMA memerlukan pengambilalihan kontrol bus dari CPU. Untuk itu DMA akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus. Teknik terakhir lebih umum digunakan, sering disebut cycle-stealing, karena modul DMA mengambil alih siklus bus. Penghentian sementara penggunaan bus bukanlah bentuk interupsi, melainkan hanyalah penghentian proses sesaat yang berimplikasi hanya pada kelambatan eksekusi CPU saja. Terdapat tiga buah konfigurasi modul DMA seperti yang terlihat pada gambar 6.8. 6.3 Perangkat Eksternal Mesin komputer akan memiliki nilai apabila bisa berinteraksi dengan dunia luar. Lebih dari itu, komputer tidak akan berfungsi apabila tidak dapat berinteraksi dengan dunia luar. Ambil contoh saja, bagaimana kita bisa menginstruksikan CPU untuk melakukan suatu operasi apabila tidak ada keyboard. Bagaimana kita melihat hasil kerja sistem komputer bila tidak ada monitor. Keyboard dan monitor tergolang dalam perangkat eksternal komputer. Perangkat eksternal atau lebih umum disebut peripheral tersambung dalam sistem CPU melalui perangat pengendalinya, yaitu modul I/O seperti telah dijelaskan sebelumnya. Lihat kembali gambar 6.2. Secara umum perangkat eksternal diklasifikasikan menjadi 3 katagori:
Pengklasifikasian juga bisa berdasarkan arah datanya, yaitu perangkat output, perangkat input dan kombinasi output-input. Contoh perangkat output: monitor, proyektor dan printer. Perangkat input misalnya: keyboard, mouse, joystick, scanner, mark reader, bar code reader. KESIMPULAN
Operasi Pengolahan Data, Operasi Penyimpanan Data, Operasi Pemindahan Data, Operasi Kontrol. DAFTAR PUSTAKA
Arsitektur Komputer. Jakarta:PT Prenhallindo, 1998. Jakarta, 20 Mei 2012 Penulis |