Teknik Routing Internet
Konsep IP address, network address, subnet mask, broadcast address merupakan dasar dari teknik routing di Internet. Untuk memahami ini semua kemampuan matematika khususnya matematika boolean, atau matematika binary akan sangat membantu memahami konsep routing Internet. Contoh pertanyaan yang sering dilontarkan,
• Mengapa kita memilih IP address 192.168.1.5?
• Mengapa subnet mask yang digunakan 255.255.255.224? mengapa bukan angka lain?
• Mengapa network address 167.205.10.0?
• Mengapa broadcast address-nya 202.159.32.15?
• Dll.
Bagaimana menentukan semua alamat-alamat tersebut? Hal tersebut yang akan dicoba dijelaskan secara sederhana dalam tulisan ini.
Kalkulator - Alat bantu yang dibutuhkan
Untuk memudahkan kehidupan anda, ada baiknya menggunakan fasilitas kalkulator yang ada di Windows. Di Windows 98 dapat di akses melalui Start Programs Accessories Calculator.
Calculator yang standar memang sulit digunakan untuk membantu kalkulasi biner, oleh karena itu pilih View Scientific untuk memperoleh tampilan kalkulator scientifik yang dapat digunakan untuk perhitungan biner.
Dengan cara memindah mode operasi ke bin, maka nilai yang ada akan berubah menjadi binary. Pada gambar contoh diperlihatkan nilai awal 15 desimal, di pindahkan menjadi 1111 binary.
Sedikit Aljabar Boolean
Aljabar boolean adalah teknik menghitung dalam bilangan binary 101010111 dsb. Proses konversi dari desimal ke binary sudah tidak perlu kita pikirkan lagi karena sudah dibantu menggunakan kalkulator yang ada di Windows 98.
Dari sekian banyak fungsi yang ada di aljabar boolean, seperti and, or, xor, not dll., untuk keperluan teknik routing di Internet, kita hanya memerlukan fungsi “dan” atau “and”. Contoh,
1 and 1 = 1
1 and 0 = 0
0 and 1 = 0
0 and 0 = 0
atau yang lebih kompleks
11001010.10011111.00010111.00101101
di AND dengan
11111111.11111111.11111111.00000000
menjadi
11001010.10011111.00010111.00000000
Tidak percaya? Coba saja masukan angka-angka di atas ke kalkulator Windows, anda akan memperoleh hasil persis seperti tertera di atas. Pusing? Mari kita konversikan bilangan binary di atas menjadi bilangan desimal supaya anda tidak terlalu pusing melihat angka 10101 dsb. Dalam notasi desimal, kalimat di atas menjadi,
202.159.23.45
di AND dengan
255.255.255.0
menjadi
202.159.23.0
Cukup familiar? Coba perhatikan nilai-nilai alamat IP yang biasa kita masukan di Start Settings Control Panel Network TCP/IP Properties.
Kalau kita perhatikan baik-baik maka panjang sebuah alamat IP adalah 32 bit, yang dibagi dalam empat (4) segmen yang di beri tanda titik “.” antar segmen-nya. Artinya setiap segmen terdapat delapan (8) bit.
Alokasi jumlah alamat IP di Jaringan
Teknik subnet merupakan cara yang biasa digunakan untuk mengalokasikan sejumlah alamat IP di sebuah jaringan (LAN atau WAN). Teknik subnet menjadi penting bila kita mempunyai alokasi IP yang terbatas misalnya hanya ada 200 IP yang akan di distribusikan ke beberapa LAN.
Untuk memberikan gambaran, misalkan kita mempunyai alokasi alamat IP dari 192.168.1.0 s/d 192.168.1.255 untuk 254 host, maka parameter yang digunakan untuk alokasi adalah:
192.168.1.255 – broadcast address LAN
255.255.255.0 - subnet mask LAN
192.168.1.0 – netwok address LAN.
192.168.1.25 – contoh IP address salah workstation di LAN.
Perhatikan bahwa,
• Alamat IP yang pertama 192.168.1.0 tidak digunakan untuk workstation, tapi untuk menginformasikan bahwa LAN tersebut menggunakan alamat 192.168.1.0. Istilah keren-nya alamat IP 192.168.1.0 di sebut network address.
• Alamat IP yang terakhir 192.168.1.255 juga tidak digunakan untuk workstation, tapi digunakan untuk alamat broadcast. Alamat broadcast digunakan untuk memberikan informasi ke seluruh workstation yang berada di network 192.168.1.0 tersebut. Contoh informasi broadcast adalah informasi routing menggunakan Routing Information Protocol (RIP).
• Subnet mask LAN 255.255.255.0, dalam bahasa yang sederhana dapat di terjemahkan bahwa setiap bit “1” menunjukan posisi network address, sedang setiap bit “0” menunjukan posisi host address.
Konsep network address & host address menjadi penting sekali berkaitan erat dengan subnet mask. Perhatikan dari contoh di atas maka alamat yang digunakan adalah
192.168.1.0 network address
192.168.1.1 host ke 1
192.168.1.2 host ke 2
192.168.1.3 host ke 3
……
192.168.1.254 host ke 254
192.168.1.255 broacast address
Perhatikan bahwa angka 192.168.1 tidak pernah berubah sama sekali. Hal ini menyebabkan network address yang digunakan 192.168.1.0. Jika diperhatikan maka 192.168.1 terdiri dari 24 bit yang konstan tidak berubah, hanya delapan (8) bit terakhir yang berubah memberikan identifikasi mesin yang mana. Tidak heran kalau netmask yang digunakan adalah
(binary) 11111111.11111111.11111111.00000000
(desimal) 255.255.255.0.
Walaupun alamat IP workstation tetap, tapi netmask yang digunakan di masing-masing router akan berubah-ubah tergantung posisi router dalam jaringan. Bingung? Mari kita lihat analogi di jaringan telepon yang biasa kita gunakan sehari-hari, misalnya kita mempunyai nomor telepon yang dapat di telepon dari luar negeri dengan nomor,
+62 21 420 1234
Lokasi nomor telepon tersebut di Jakarta, dengan sentral sekitar senen & cempaka putih. Kita perhatikan perilaku sentral telepon di tiga lokasi
1. Sentral di Amerika Serikat
2. Sentral di Indosat Jakarta
3. Sentral telepon di Telkom Jakarta Gatot Subroto
4. Sentral telepon di Senen, Cempaka Putih.
Pada saat kawan kita di amerika serikat akan menghubungi rekannya di Jakarta dengan nomor +62 21 420 1234.
Pada sentral di Amerika Serikat, hanya memperhatikan dua digit pertama (+62), setelah membaca angka +62 tanpa memperdulikan angka selanjutnya maka sentral di Amerika Serikat akan menghubungi gerbang SLI di Indosat Jakarta untuk memperoleh sambungan. Perhatikan di sini netmask di sentral amerika serikat untuk jaringan di Indonesia hanya cukup dua digit pertama, selebihnya di anggap host (handset) di jaringan telepon Indonesia yang tidak perlu di perdulikan oleh sentral di Amerika Serikat.
Pada sentral Indosat Jakarta, berbeda dengan sentral di Amerika Serikat, akan memperhatikan dua digit selanjutnya (jadi total +62 21). Dari informasi tersebut sentral indosat mengetahui bahwa trafik tersebut untuk Jakarta dan akan meneruskan trafik ke sentral Telkom di Jl. Gatot Subroto di Jakarta. Perhatikan sekarang netmask menjadi empat (4) digit.
Pada sentral Telkom di Gatot Subroto Jakarta akan melihat tiga (3) digit selanjutnya (+62 21 420). Dari informasi tersebut maka sentral Telkom Gatot Subroto akan meneruskan trafik ke sentral yang lebih rendah kemungkinan di Gambir atau sekitar Senen. Perhatikan sekarang netmask menjadi tujuh (7) digit.
Pada sentral terakhir di Gambir atau Senen, akan dilihat pelanggan mana yang di tuju yang terdapat dalam empat digit terakhir (1234). Maka sampailah trafik ke tujuan. Nomor pelanggan kira-kira ekuivalen dengan host address di jaringan Internet.
Mudah-mudahan menjadi lebih jelas fungsi netmask. Secara sederhana netmask digunakan untuk memisahkan antara network address & host address untuk memudahkan proses routing di jaringan Internet. Dengan adanya netmask kita tidak perlu memperhatikan seluruh alamat IP yang ada, tapi cukup memperhatikan segelintir network address saja.
Beberapa contoh network address di Internet di Indonesia, dapat dengan mudah mengidentifikasi ISP atau pemilik jaringan tersebut, misalnya,
202.134.0.0 telkom.net
202.154.0.0 rad.net.id
202.159.0.0 indo.net.id
202.158.0.0 cbn.net.id
167.205.0.0 itb.ac.id
terlihat jelas bahwa terdapat sebuah struktur penomoran, terlihat sekali bahwa IP address dengan awalan 202 umumnya ISP dari Indonesia yang di alokasikan oleh penguasa IP di Internet seperti www.icann.org. Dengan teknik ini sebetulnya dari Internet untuk mengarah ke Indonesia cukup melakukan masking dengan mask
255.0.0.0
karena delapan (8) bit pertama yang perlu di mask. Biasanya pada router dapat juga di tulis dengan kalimat
202.159.0.0/8
ada slash /8 di belakang IP address menandakan bahwa cukup delapan (8) bit pertama yang perlu diperhatikan.
Selanjutnya untuk mengarahkan paket data ke jaringan internal di IndoNet (indo.net.id), maka masking pada router di IndoNet atau berbagai ISP di Jakarta adalah
255.255.0.0
atau pada router tersebut dapat digunakan routing ke arah
202.159.0.0/16
perhatikan sekarang slash yang digunakan adalah slah 16 (/16), artinya cukup diperhatikan 16 bit saja dari total 32 bit IP address yang ada.
Selanjutnya mengarahkan paket ke PT. Antah Berantah yang memiliki sambungan leased line di IndoNet, pada router di IndoNet dapat digunakan masking yang tidak terlalu normal misalnya
255.255.255.240
atau dapat digunakan pengalamatan
202.159.12.0/24
artinya router harus memperhatikan 24 bit pertama dari IP address.
Sintaks Penambahan Route
Setelah kita mengetahui pola fikir routing pada Internet, maka langkah selanjutnya yang perlu kita tahu adalah cara menambahkan route pada tabel route di komputer. Hal ini tidak terlalu sukar, perintah yang dapat digunakan adalah
C:> route (di Windows)
# route (di Linux)
di Windows format penambahan route tersebut sangat sederhana yaitu
C:> route add 202.159.0.0 netmask 255.255.0.0 192.168.0.1 metric 3
Di Linux format-nya dapat menjadi
# route add –net 202.159.0.0/16 gw 192.168.0.1 metric 3
Dimana 202.159.0.0 adalah network address (dapat juga kalau dibutuhkan kita memberikan routing ke sebuah host); 255.255.0.0 atau /16 adalah netmask yang digunakan; 192.168.0.1 adalah gateway yang digunakan; metric 3 menandakan prioritas routing, yang dapat dikosongkan saja.
Untuk melihat tabel routing di komputer kita dapat dilakukan dengan perintah
C:> netstat –nr (di Windows)
C:> route print (di Windows)
# netstat –nr (di Linux)
# route (di Linux)
Tentunya akan pusing kepala jika kita beroperasi pada jaringan yang kompleks. Sebaiknya kita menggunakan teknik routing yang automatis. Hal ini dapat dilakukan dengan mudah di Linux dengan menjalankan software seperti
# routed
atau
# gated
software routing seperti ini mungkin ada di Windows NT atau Windows 2000, tapi tidak pada Windows 98.
Friday, July 2, 2010
Wednesday, June 2, 2010
ORKOM-Sistem komputer
Sistem komputer adalah elemen-elemen yang terkait untuk menjalankan suatu aktifitas dengan menggunakan komputer. Elemen dari sistem komputer terdiri dari manusianya (brainware), perangkat lunak (software), set instruksi (instruction set), dan perangkat keras (hardware).
Dengan demikian komponen tersebut merupakan elemen yang terlibat dalam suatu sistem komputer. Tentu saja hardware tidak berarti apa-apa jika tidak ada salah satu dari dua lainnya (software dan brainware).
Download
Empat komponen dalam sistem komputer, yaitu :
1. Pemproses
Berfungsi untuk mengendalikan operasi komputer dan melakukan fungsi pemrosesan data.
Pemroses melakukan operasi logika dan mengelola aliran data dengan membaca instruksi dari memori dan mengeksekusinya.
Langkah kerja pemroses :
a. Mengembil instruksi biner dari memori
b. Mendekode instruksi menjadi aksi sederhana
c. Melakukan aksi
3 tipe operasi komputer :
a. Operasi aritmatika (ADD, SUBSTRACT, MULTIPLY, DIVIDE)
b. Operasi logika (OR, AND, XOR, INVERTION)
c. Operasi pengendalian (LOOP, JUMP)
Pemroses terdiri :
a. ALU (Aritmatic Logic Unit)
Berfungsi untuk melakukan operasi aritmatika dan logika.
b. CU (Control Unit)
Berfungsi untuk mengendalikan operasi yang dilaksanakan sistem komputer.
c. Register-register
Berfungsi untuk :
Membantu pelaksanaan operasi yang dilakukan pemroses Sebagai memori yang bekerja secara cepat, biasanya untuk tempat operand-operand dari operasi yang akan dilakukan.
Terbagi menjadi register data dan register alamat.
Register data terdiri dari general dan special purpose register.
Register alamat berisi :
a. Alamat data di memori utama
b. Alamat instruksi
c. Alamat untuk perhitungan alamat lengkap
Contoh : register indeks, register penunjuk segmen, register penunjuk
stack, register penanda (flag)
Pemroses melakukan tugasnya dengan mengeksekusi instruksi-instruksi di program dengan mekanisme instruksi sebagai berikut :
a. Pemroses membaca instruksi dari memori (fetch)
b. Pemroses mengeksekusi instruksi (execute)
Eksekusi program berisi pengulangan fetch dan execute. Pemrosesan satu instruksi disebut satu siklus instruksi (instruction cycle).
2. Memori
Berfungsi untuk menyimpan data dan program Biasanya volatile, tidak dapat mempertahankan data dan program yang
disimpan bila sumber daya energi (listrik) dihentikan.
Konsep program tersimpan (stored program concept), yaitu program (kumpulan instruksi) yang disimpan di suatu tempat (memori) dimana kemudian instruksi tersebut dieksekusi. Setiap kali pemroses melakukan eksekusi, pemroses harus membaca instruksi dari memori utama. Agar eksekusi dilakukan secara cepat maka harus diusahakan instruksi tersedia di memori pada lapisan berkecepatan akses lebih tinggi. Kecepatan eksekusi ini akan meningkatkan kinerja sistem.
Hirarki memori berdasarkan kecepatan akses :
-Register (tercepat)
-Chace memory
Memori berkapasitas terbatas, berkecepatan tinggi yang lebih mahal dibanding memori utama. Chace memory adalah diantara memori utama dan register, sehingga pemroses tidak langsung mengacu memori utama tetapi di cache
memory yang kecepatan aksesnya lebih tinggi.
-Main memory
-Disk chace (buffering)
Bagian memori utama untuk menampung data yang akan ditransfer dari/ke perangkat masukan/keluaran dan penyimpan sekunder. Buffering dapat mengurangi frekuensi pengaksesan dari/ke perangkat masukan/keluaran dan penyimpan sekunder sehingga meningkatkan kinerja sistem.
-Magnetic disk
-Magnetic tape, optical disk (terlambat)
3. Perangkat masukan dan keluaran (I/O)
Adalah perangkat nyata yang dikendalikan chip controller di board sistem atau card. Controller dihubungkan dengan pemroses dan komponen lainnya melalui bus. Controller mempunyai register-register untuk pengendaliannya yang berisi status kendali.
Tiap controller dibuat agar dapat dialamati secara individu oleh pemroses sehingga perangkat lunak device driver dapat menulis ke register-registernya sehingga dapat mengendalikannya. Sistem operasi lebih berkepentingan dengan pengendali dibanding dengan perangkat fisik mekanis. Perangkat I/O juga memindahkan data antara komputer dan lingkungan eksternal.
Lingkungan eksternal dapat diantarmuka (interface) dengan beragam perangkat, seperti :
a. Perangkat penyimpan sekunder
b. Perangkat komunikasi
c. Terminal
4. Interkoneksi antar komponen
Adalah struktur dan mekanisme untuk menghubungkan antar komponen dalam sistem komputer yang disebut bus.
Bus terdiri dari tiga macam, yaitu :
a. Bus alamat (address bus)
Berisi 16, 20, 24 jalur sinyal paralel atau lebih. CPU mengirim alamat lokasi memori atau port yang ingin ditulis atau dibaca di bus ini.Jumlah lokasi memori yang dapat dialamati ditentukan jumlah jalur alamat. Jika CPU mempunyai N jalur alamat maka dapat mengalamati 2 pangkat N (2N) lokasi memori dan/atau port secara langsung.
b. Bus data (data bus)
Berisi 8, 16, 32 jalur sinyal paralel atau lebih. Jalur-jalur data adalah dua arah (bidirectional). CPU dapat membaca dan mengirim data dari/ke memori atau port. Banyak perangkat pada sistem yang dihubungkan ke bus data tetapi hanya satu perangkat pada satu saat yang dapat memakainya.
c. Bus kendali (control bus)
Berisi 4-10 jalur sinyal paralel. CPU mengirim sinyal-sinyal pada bus kendali untuk memerintahkan memori atau port. Sinyal bus kendali antara lain :
• Memory read
Untuk memerintahkan melakukan pembacaan dari memori.
• Memory write
Untuk memerintahkan melakukan penulisan ke memori.
• I/O read
Untuk memerintahkan melakukan pembacaan dari port I/O.
• I/O write
Untuk memerintahkan melakukan penulisan ke port I/O.
Mekanisme pembacaan
Untuk membaca data suatu lokasi memori, CPU mengirim alamat memori yang dikehendaki melalui bus alamat kemudian mengirim sinyal memory read pada bus kendali. Sinyal tersebut memerintahkan ke perangkat memori untuk mengeluarkan data pada lokasi tersebut ke bus data agat dibaca CPU. Interkoneksi antar komponen ini membentuk satu sistem sendiri, seperti ISA (Industry Standard Architecture), EISA (Extended ISA) dan PCI (Peripheral Component Interconnect). Secara fisik interkoneksi antar komponen berupa “perkawatan”. Interkoneksi memerlukan tata cara atau aturan komunikasi agar tidak kacau (chaos) sehingga mencapai tujuan yang diharapkan.
Dengan demikian komponen tersebut merupakan elemen yang terlibat dalam suatu sistem komputer. Tentu saja hardware tidak berarti apa-apa jika tidak ada salah satu dari dua lainnya (software dan brainware).
Download
Empat komponen dalam sistem komputer, yaitu :
1. Pemproses
Berfungsi untuk mengendalikan operasi komputer dan melakukan fungsi pemrosesan data.
Pemroses melakukan operasi logika dan mengelola aliran data dengan membaca instruksi dari memori dan mengeksekusinya.
Langkah kerja pemroses :
a. Mengembil instruksi biner dari memori
b. Mendekode instruksi menjadi aksi sederhana
c. Melakukan aksi
3 tipe operasi komputer :
a. Operasi aritmatika (ADD, SUBSTRACT, MULTIPLY, DIVIDE)
b. Operasi logika (OR, AND, XOR, INVERTION)
c. Operasi pengendalian (LOOP, JUMP)
Pemroses terdiri :
a. ALU (Aritmatic Logic Unit)
Berfungsi untuk melakukan operasi aritmatika dan logika.
b. CU (Control Unit)
Berfungsi untuk mengendalikan operasi yang dilaksanakan sistem komputer.
c. Register-register
Berfungsi untuk :
Membantu pelaksanaan operasi yang dilakukan pemroses Sebagai memori yang bekerja secara cepat, biasanya untuk tempat operand-operand dari operasi yang akan dilakukan.
Terbagi menjadi register data dan register alamat.
Register data terdiri dari general dan special purpose register.
Register alamat berisi :
a. Alamat data di memori utama
b. Alamat instruksi
c. Alamat untuk perhitungan alamat lengkap
Contoh : register indeks, register penunjuk segmen, register penunjuk
stack, register penanda (flag)
Pemroses melakukan tugasnya dengan mengeksekusi instruksi-instruksi di program dengan mekanisme instruksi sebagai berikut :
a. Pemroses membaca instruksi dari memori (fetch)
b. Pemroses mengeksekusi instruksi (execute)
Eksekusi program berisi pengulangan fetch dan execute. Pemrosesan satu instruksi disebut satu siklus instruksi (instruction cycle).
2. Memori
Berfungsi untuk menyimpan data dan program Biasanya volatile, tidak dapat mempertahankan data dan program yang
disimpan bila sumber daya energi (listrik) dihentikan.
Konsep program tersimpan (stored program concept), yaitu program (kumpulan instruksi) yang disimpan di suatu tempat (memori) dimana kemudian instruksi tersebut dieksekusi. Setiap kali pemroses melakukan eksekusi, pemroses harus membaca instruksi dari memori utama. Agar eksekusi dilakukan secara cepat maka harus diusahakan instruksi tersedia di memori pada lapisan berkecepatan akses lebih tinggi. Kecepatan eksekusi ini akan meningkatkan kinerja sistem.
Hirarki memori berdasarkan kecepatan akses :
-Register (tercepat)
-Chace memory
Memori berkapasitas terbatas, berkecepatan tinggi yang lebih mahal dibanding memori utama. Chace memory adalah diantara memori utama dan register, sehingga pemroses tidak langsung mengacu memori utama tetapi di cache
memory yang kecepatan aksesnya lebih tinggi.
-Main memory
-Disk chace (buffering)
Bagian memori utama untuk menampung data yang akan ditransfer dari/ke perangkat masukan/keluaran dan penyimpan sekunder. Buffering dapat mengurangi frekuensi pengaksesan dari/ke perangkat masukan/keluaran dan penyimpan sekunder sehingga meningkatkan kinerja sistem.
-Magnetic disk
-Magnetic tape, optical disk (terlambat)
3. Perangkat masukan dan keluaran (I/O)
Adalah perangkat nyata yang dikendalikan chip controller di board sistem atau card. Controller dihubungkan dengan pemroses dan komponen lainnya melalui bus. Controller mempunyai register-register untuk pengendaliannya yang berisi status kendali.
Tiap controller dibuat agar dapat dialamati secara individu oleh pemroses sehingga perangkat lunak device driver dapat menulis ke register-registernya sehingga dapat mengendalikannya. Sistem operasi lebih berkepentingan dengan pengendali dibanding dengan perangkat fisik mekanis. Perangkat I/O juga memindahkan data antara komputer dan lingkungan eksternal.
Lingkungan eksternal dapat diantarmuka (interface) dengan beragam perangkat, seperti :
a. Perangkat penyimpan sekunder
b. Perangkat komunikasi
c. Terminal
4. Interkoneksi antar komponen
Adalah struktur dan mekanisme untuk menghubungkan antar komponen dalam sistem komputer yang disebut bus.
Bus terdiri dari tiga macam, yaitu :
a. Bus alamat (address bus)
Berisi 16, 20, 24 jalur sinyal paralel atau lebih. CPU mengirim alamat lokasi memori atau port yang ingin ditulis atau dibaca di bus ini.Jumlah lokasi memori yang dapat dialamati ditentukan jumlah jalur alamat. Jika CPU mempunyai N jalur alamat maka dapat mengalamati 2 pangkat N (2N) lokasi memori dan/atau port secara langsung.
b. Bus data (data bus)
Berisi 8, 16, 32 jalur sinyal paralel atau lebih. Jalur-jalur data adalah dua arah (bidirectional). CPU dapat membaca dan mengirim data dari/ke memori atau port. Banyak perangkat pada sistem yang dihubungkan ke bus data tetapi hanya satu perangkat pada satu saat yang dapat memakainya.
c. Bus kendali (control bus)
Berisi 4-10 jalur sinyal paralel. CPU mengirim sinyal-sinyal pada bus kendali untuk memerintahkan memori atau port. Sinyal bus kendali antara lain :
• Memory read
Untuk memerintahkan melakukan pembacaan dari memori.
• Memory write
Untuk memerintahkan melakukan penulisan ke memori.
• I/O read
Untuk memerintahkan melakukan pembacaan dari port I/O.
• I/O write
Untuk memerintahkan melakukan penulisan ke port I/O.
Mekanisme pembacaan
Untuk membaca data suatu lokasi memori, CPU mengirim alamat memori yang dikehendaki melalui bus alamat kemudian mengirim sinyal memory read pada bus kendali. Sinyal tersebut memerintahkan ke perangkat memori untuk mengeluarkan data pada lokasi tersebut ke bus data agat dibaca CPU. Interkoneksi antar komponen ini membentuk satu sistem sendiri, seperti ISA (Industry Standard Architecture), EISA (Extended ISA) dan PCI (Peripheral Component Interconnect). Secara fisik interkoneksi antar komponen berupa “perkawatan”. Interkoneksi memerlukan tata cara atau aturan komunikasi agar tidak kacau (chaos) sehingga mencapai tujuan yang diharapkan.
ORKOM-RISC dan CISC
RISC dan CISC

CISC adalah singkatan dari Complex Intruction Set Computer dimana prosesor tersebut memiliki set instruksi yang kompleks dan lengkap. Sedangkan RISC adalah singkatan dari Reduced Instruction Set Computer yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit. Karena perbedaan keduanya ada pada kata set instruksi yang kompleks atau sederhana (reduced).
Pendekatan CISC
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja…Download

MULT 2:3, 5:2
MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan.
Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.
Pendekatan RISC
Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A

Awalnya memang kelihatan gak efisien iya khan? Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.
Bagaimanapun juga, strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.
Memisahkan instruksi “LOAD” dan “STORE” sesungguhnya mengurangi kerja yang harus dilakukan oleh prosesor. Pada CISC, setelah instruksi “MULT” dieksekusi, prosesor akan secara otomatis menghapus isi register, jika ada operan yang dibutuhkan lagi untuk operasi berikutnya, maka prosesor harus menyimpan-ulang data tersebut dari memori ke register. Sedangkan pada RISC, operan tetap berada dalam register hingga ada data lain yang disimpan ke dalam register yang bersangkutan.

CISC adalah singkatan dari Complex Intruction Set Computer dimana prosesor tersebut memiliki set instruksi yang kompleks dan lengkap. Sedangkan RISC adalah singkatan dari Reduced Instruction Set Computer yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit. Karena perbedaan keduanya ada pada kata set instruksi yang kompleks atau sederhana (reduced).
Pendekatan CISC
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan cara membuat perangkat keras prosesor mampu memahami dan menjalankan beberapa rangkaian operasi. Untuk tujuan contoh kita kali ini, sebuah prosesor CISC sudah dilengkapi dengan sebuah instruksi khusus, yang kita beri nama MULT. Saat dijalankan, instruksi akan membaca dua nilai dan menyimpannya ke 2 register yag berbeda, melakukan perkalian operan di unit eksekusi dan kemudian mengambalikan lagi hasilnya ke register yang benar. Jadi instruksi-nya cukup satu saja…Download

MULT 2:3, 5:2
MULT dalam hal ini lebih dikenal sebagai “complex instruction”, atau instruksi yang kompleks. Bekerja secara langsung melalui memori komputer dan tidak memerlukan instruksi lain seperti fungsi baca maupun menyimpan.
Satu kelebihan dari sistem ini adalah kompailer hanya menerjemahkan instruksi-instruksi bahasa tingkat-tinggi ke dalam sebuah bahasa mesin. Karena panjang kode instruksi relatif pendek, hanya sedikit saja dari RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut.
Pendekatan RISC
Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A

Awalnya memang kelihatan gak efisien iya khan? Hal ini dikarenakan semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.
Bagaimanapun juga, strategi pada RISC memberikan beberapa kelebihan. Karena masing-masing instruksi hanya membuthukan satu siklus detak untuk eksekusi, maka seluruh program (yang sudah dijelaskan sebelumnya) dapat dikerjakan setara dengan kecepatan dari eksekusi instruksi “MULT”. Secara perangkat keras, prosesor RISC tidak terlalu banyak membutuhkan transistor dibandingkan dengan CISC, sehingga menyisakan ruangan untuk register-register serbaguna (general purpose registers). Selain itu, karena semua instruksi dikerjakan dalam waktu yang sama (yaitu satu detak), maka dimungkinkan untuk melakukan pipelining.
Memisahkan instruksi “LOAD” dan “STORE” sesungguhnya mengurangi kerja yang harus dilakukan oleh prosesor. Pada CISC, setelah instruksi “MULT” dieksekusi, prosesor akan secara otomatis menghapus isi register, jika ada operan yang dibutuhkan lagi untuk operasi berikutnya, maka prosesor harus menyimpan-ulang data tersebut dari memori ke register. Sedangkan pada RISC, operan tetap berada dalam register hingga ada data lain yang disimpan ke dalam register yang bersangkutan.
Hirarki Sistem Memori
Hirarki Sistem Memori
• Register yang berada dalam chip prosesor dan merupakan bagian integral dari prosesor itu sendiri. (dibaca dan ditulisi dalam satu siklus detak).
• Cache internal (on-chip). Kapasitas umumnya sekitar 8 KB. (Waktu yang diperlukan untuk mengakses data adalah beberapa siklus detak).
• Cache level kedua (Eksternal) yang kapasitasnya lebih besar dan ditempatkan di luar chip.
Contoh : Prosesor P6 (Pentium Pro), misalnya, cache level pertamanya berkapasitas 8KB untuk data dan 8 KB untuk instruksi. Cache level keduanya berkapasitas 256 KB, yang merupakan keping terpisah tetapi dikemas menjadi satu dengan prosesornya. Download
Rasio (Kena) dan Waktu Akses
Rasio kena waktu (h) didefinisikan sebagai perbandingan antara jumlah perujukan yang berhasil memperoleh kata dari cache dengan banyaknya perujukan yang dilakukan.
h = (jumlah perujukan yang berhasil) / ( jumlah perujukan)
Rasio luput (miss) adalah:
m = (1 – h)
Waktu akses rata-rata, dengan asumsi bahwa perujukan selalu dilakukan ke cache lebih dahulu sebelum ke memori utama, dapat dihitung sebagai berikut:
t a = t c + (1-h) t m
ta : waktu akses rata-rata
tc : waktu akses cache
tm : waktu akses ke memori utama.
Setiap kali prosesor terpaksa mengakses memori utama, diperlukan tambahan waktu akses sebesar tm(1-h).
Misalnya, bila rasio kena adalah 0,85, waktu akses ke memori utama adalah 100 ns dan waktu akses ke cache adalah 25 ns, maka waktu akses rata-rata adalah 55 ns.
Bila persamaan ta disusun ulang, dapat ditulis menjadi:
ta = t c {1/k + (1-h)}
dengan k adalah rasio antara waktu akses memori utama dengan waktu akses cache (tm/tc).Dari persamaan di atas dapat dilihat bahwa waktu akses rata-rata didominasi oleh rasio waktu akses memori utama dengan cache bila k kecil. Pada kasus di atas, dengan waktu akses memori utama 200 ns dan waktu akses cache 25 ns, maka k = 8. Rasio luput 1 prosen menyebabkan waktu akses rata-rata menjadi 27 ns, tidak jauh beda dengan waktu akses cache. Pada umumnya k berkisar antara 3-10.
• Register yang berada dalam chip prosesor dan merupakan bagian integral dari prosesor itu sendiri. (dibaca dan ditulisi dalam satu siklus detak).
• Cache internal (on-chip). Kapasitas umumnya sekitar 8 KB. (Waktu yang diperlukan untuk mengakses data adalah beberapa siklus detak).
• Cache level kedua (Eksternal) yang kapasitasnya lebih besar dan ditempatkan di luar chip.
Contoh : Prosesor P6 (Pentium Pro), misalnya, cache level pertamanya berkapasitas 8KB untuk data dan 8 KB untuk instruksi. Cache level keduanya berkapasitas 256 KB, yang merupakan keping terpisah tetapi dikemas menjadi satu dengan prosesornya. Download
Rasio (Kena) dan Waktu Akses
Rasio kena waktu (h) didefinisikan sebagai perbandingan antara jumlah perujukan yang berhasil memperoleh kata dari cache dengan banyaknya perujukan yang dilakukan.
h = (jumlah perujukan yang berhasil) / ( jumlah perujukan)
Rasio luput (miss) adalah:
m = (1 – h)
Waktu akses rata-rata, dengan asumsi bahwa perujukan selalu dilakukan ke cache lebih dahulu sebelum ke memori utama, dapat dihitung sebagai berikut:
t a = t c + (1-h) t m
ta : waktu akses rata-rata
tc : waktu akses cache
tm : waktu akses ke memori utama.
Setiap kali prosesor terpaksa mengakses memori utama, diperlukan tambahan waktu akses sebesar tm(1-h).
Misalnya, bila rasio kena adalah 0,85, waktu akses ke memori utama adalah 100 ns dan waktu akses ke cache adalah 25 ns, maka waktu akses rata-rata adalah 55 ns.
Bila persamaan ta disusun ulang, dapat ditulis menjadi:
ta = t c {1/k + (1-h)}
dengan k adalah rasio antara waktu akses memori utama dengan waktu akses cache (tm/tc).Dari persamaan di atas dapat dilihat bahwa waktu akses rata-rata didominasi oleh rasio waktu akses memori utama dengan cache bila k kecil. Pada kasus di atas, dengan waktu akses memori utama 200 ns dan waktu akses cache 25 ns, maka k = 8. Rasio luput 1 prosen menyebabkan waktu akses rata-rata menjadi 27 ns, tidak jauh beda dengan waktu akses cache. Pada umumnya k berkisar antara 3-10.
ORKOM-DMA

DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO). Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamatalamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.
Tiga langkah dalam transfer DMA:
1. Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data. Metode yang pertama ialah metode yang sangat baku dan sederhana disebut HALT, atau Burst Mode DMA, karena pengendali DMA memegang kontrol dari sistem bus dan mentransfer semua blok data ke atau dari memori pada single burst. Selagi transfer masih
dalam prosres, sistem mikroprosessor diset idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.
Metode yang kedua, mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus. Metode DMA ini disebut cycle stealing mode. Cycle stealing DMA lebih kompleks untuk diimplementasikan
dibandingkan HALT DMA, karena pengendali DMA harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka. Download

Kelemahan I/O terprogram dan Interrupt- Driven I/O
Proses yang terjadi pada modul I/O masih melibatkan CPU secara langsung, berimplikasi pada :
• Kelajuan transfer I/O yang tergantung kecepatan operasi CPU.
• Kerja CPU terganggu karena adanya interupsi secara langsung
Prinsip kerja DMA
• 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
• CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi
• Melaksanakan transfer data secara mandiri :
1. DMA memerlukan pengambilalihan kontrol bus dari CPU
2. DMA akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus
3. Teknik cyclestealing, modul DMA mengambil alih siklus bus
Klasifikasi perangkat eksternal
• Human Readable, yaitu perangkat yang berhubungan dengan manusia sebagai
• pengguna komputer. Contoh: monitor, keyboard, mouse, printer, joystick, disk drive.
• Machine readable, yaitu perangkat yang berhubungan dengan peralatan. Biasanya berupa modul sensor dan tranduser untuk monitoring dan kontrol suatu peralatan atau sistem.
• Communication, yatu perangkat yang berhubungan dengan komunikasi jarak jauh. Contoh: NIC dan modem
Klasifikasi berdasar arah data
1. Perangkat output
2. Perangkat input
3. Kombinasi output-input.
Contoh perangkat output: monitor, proyektor dan printer.
Contoh perangkat input : keyboard, mouse, joystick, scanner, mark reader, bar code reader
ORKOM-CPU
CPU(CENTRAL PROCESSOR UNIT)

A. Pengertian CPU
CPU (Central Processing Unit) adalah otak atau sumber dari komputer yang mengatur dan memproses seluruh kerja komputer. CPU ini berbentuk IC yang diberi nama sesuai dengan tipenya, misalnya 8088 untuk PC XT dan 80286 untuk PC AT,Pentium IV dan sebagainya. Karena CPU ini berada pada suatu board (papan) yang disebut motherboard dan terletk dalam kotak (casing), sekarang ini orang jadi cenderung menyebut kotak berisi catu daya, disk drive dan motherboard sebagai CPU/ kotak CPU. Di dalam kotak CPU biasanya terdapat 2 buah disket drive yang diberi nama disket drive A dan disket drive B. selain disket drive ada juga yang mempunyai hard disk dan CD ROM.
B. Fungsi CPU
Fungsi utama CPU adalah menjalankan program-program yang disimpan di memori utama. Hal ini dilakukan dengan cara mengambil instruksi-instruksi dari memori utama dan mengeksekusinya satu persatu sesuai dengan alur perintah. Pekerjaan ini dilakukan dalam dua tahapan yaitu membaca instruksi (fetch) dan melaksanakan instruksi tersebut (execute). Proses membaca dan melaksankan ini dilakukan berulang-ulang sampai semua instruksi yang terdapat di memori utama dijalankan atau komputer dimatikan. Proses ini dikenal juga sebagai siklus fetch-eksekusi.
a) Siklus fetch-eksekusi bisa dijelaskan sebagai berikut
# i. di awal setiap siklus, CPU akan membaca dari memori utama,
ii. sebuah register, yang disebut Program Counter (PC), akan mengawasi dan menghitung instruksi selanjutnya,
iii. ketika CPU membaca sebuah instruksi, Program Counter akan menambah satu hitungannya,
iv. lalu instruksi-instruksi yang dibaca tersebut akan dimuat dalam suatu register yang disebut register instruksi (IR), dan akhirnya
v. CPU akan melakukan interpretasi terhadap instruksi yang disimpan dalam bentuk kode binari, dan melakukan aksi yang sesuai dengan instruksi tersebut.Download
b) Siklus Intruksi
i. Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya. Misalnya, bila panjang setiap instruksi 16 bit padahal memori memiliki panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
ii. Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU.
iii. Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan.
iv. Operand Address Calculation (OAC), yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori.
v. Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O.
vi. Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi.
vii. Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori
Sub Siklus Intruksi
a. Fetch : membaca instruksi berikutnya dari memori ke dalam CPU
b. Execute : menginterpretasikan opcode dan melakukan operasi yang diindikasikan
c. Interrupt : Apabila interrupt diaktifkan dan interrupt telah terjadi, simpan status proses saat itu dan layani interrupt.

Aksi – Aksi CPU
i. CPU Memori, perpindahan data dari CPU ke memori dan sebaliknya
ii. CPU – I/0, perpindahan data dari CPU ke modul I/0 dan sebaliknya
iii. Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan logika terhadap data
iv. Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja. Misalnya instruksi pengubahan urusan eksekusi
C. Komponen – Komponen CPU
a) Control Unit yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU. CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. Termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output.
Tugas dari control unit ini adalah:
* Mengatur dan mengendalikan alat-alat input dan output
* Mengambil instruksi-instruksi dari memori utama.
* Mengambil data dari memori utama (jika diperlukan) untuk diproses.
* Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU
* Menyimpan hasil proses ke memori utama.
b) Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi,register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika
c) Aritmetic Logic Unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan , kurang dari, dan lebih besar atau sama dengan.
d) 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.
D. Cara Kerja CPU
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan.

A. Pengertian CPU
CPU (Central Processing Unit) adalah otak atau sumber dari komputer yang mengatur dan memproses seluruh kerja komputer. CPU ini berbentuk IC yang diberi nama sesuai dengan tipenya, misalnya 8088 untuk PC XT dan 80286 untuk PC AT,Pentium IV dan sebagainya. Karena CPU ini berada pada suatu board (papan) yang disebut motherboard dan terletk dalam kotak (casing), sekarang ini orang jadi cenderung menyebut kotak berisi catu daya, disk drive dan motherboard sebagai CPU/ kotak CPU. Di dalam kotak CPU biasanya terdapat 2 buah disket drive yang diberi nama disket drive A dan disket drive B. selain disket drive ada juga yang mempunyai hard disk dan CD ROM.
B. Fungsi CPU
Fungsi utama CPU adalah menjalankan program-program yang disimpan di memori utama. Hal ini dilakukan dengan cara mengambil instruksi-instruksi dari memori utama dan mengeksekusinya satu persatu sesuai dengan alur perintah. Pekerjaan ini dilakukan dalam dua tahapan yaitu membaca instruksi (fetch) dan melaksanakan instruksi tersebut (execute). Proses membaca dan melaksankan ini dilakukan berulang-ulang sampai semua instruksi yang terdapat di memori utama dijalankan atau komputer dimatikan. Proses ini dikenal juga sebagai siklus fetch-eksekusi.
a) Siklus fetch-eksekusi bisa dijelaskan sebagai berikut
# i. di awal setiap siklus, CPU akan membaca dari memori utama,
ii. sebuah register, yang disebut Program Counter (PC), akan mengawasi dan menghitung instruksi selanjutnya,
iii. ketika CPU membaca sebuah instruksi, Program Counter akan menambah satu hitungannya,
iv. lalu instruksi-instruksi yang dibaca tersebut akan dimuat dalam suatu register yang disebut register instruksi (IR), dan akhirnya
v. CPU akan melakukan interpretasi terhadap instruksi yang disimpan dalam bentuk kode binari, dan melakukan aksi yang sesuai dengan instruksi tersebut.Download
b) Siklus Intruksi
i. Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya. Misalnya, bila panjang setiap instruksi 16 bit padahal memori memiliki panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
ii. Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU.
iii. Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan.
iv. Operand Address Calculation (OAC), yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori.
v. Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O.
vi. Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi.
vii. Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori
Sub Siklus Intruksi
a. Fetch : membaca instruksi berikutnya dari memori ke dalam CPU
b. Execute : menginterpretasikan opcode dan melakukan operasi yang diindikasikan
c. Interrupt : Apabila interrupt diaktifkan dan interrupt telah terjadi, simpan status proses saat itu dan layani interrupt.

Aksi – Aksi CPU
i. CPU Memori, perpindahan data dari CPU ke memori dan sebaliknya
ii. CPU – I/0, perpindahan data dari CPU ke modul I/0 dan sebaliknya
iii. Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan logika terhadap data
iv. Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja. Misalnya instruksi pengubahan urusan eksekusi
C. Komponen – Komponen CPU
a) Control Unit yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU. CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. Termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output.
Tugas dari control unit ini adalah:
* Mengatur dan mengendalikan alat-alat input dan output
* Mengambil instruksi-instruksi dari memori utama.
* Mengambil data dari memori utama (jika diperlukan) untuk diproses.
* Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU
* Menyimpan hasil proses ke memori utama.
b) Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi,register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika
c) Aritmetic Logic Unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan , kurang dari, dan lebih besar atau sama dengan.
d) 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.
D. Cara Kerja CPU
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan.
ORKOM-ORGANISASI CACHE
ORGANISASI CACHE

Perhatikan masalah penempatan suatu blok data/instruksi dari memori utama ke baris-baris cache.
Ada tiga macam organisasi cache
• organisasi cache dipetakan langsung (direct-mapped)
• asosiatif penuh (fully associative)
• asosiatif-kelompok ( set-associative).
Misalkan pengalamatan 32-bit
• 6-bit = offset menentukan byte mana dalam blok itu yang dialamati.
• 10 bit berikutnya menentukan pada baris mana blok yang diambil harus ditempatkan.
• Bit sisanya, yakni 16-bit paling atas = tag yang bersesuaian dengan baris cache.
Organisasi cache yang dipetakan langsung :
• menyimpan satu tag perbaris dalam larik tag-nya
• Selama pengaksesan memori, cache menggunakan bit-bit tengah alamat sebagai indeks ke larik tagnya.
• Tag dicocokkan dengan 16-bit teratas dari alamat memori yang diakses.
• Jika cocok, data yang ditunjukan oleh nilai offset akan dikirim ke prosesor. Bila tidak cocok, isi baris cache diganti dengan blok yang diperlukan, dari memori utama.
• Hanya memerlukan satu kali pembandingan untuk setiap akses ke cache.
• Cocok untuk sistem komputer yang memerlukan frekuensi detak tinggi
Dalam rancangan cache asosiatif-penuh :
• Suatu blok data dapat ditempatkan pada baris cache manapun.
• Alamat dibagi menjadi dua bagian yakni bit rendah dan bit tinggi.
• Bit rendah membentuk offset di dalam baris cache, sedangkan bit tinggi membentuk tag untuk dicocokkan dengan rujukan.
• Cache asosiatif-penuh harus punya mekanisme untuk menentukan ke dalam baris mana blok ditempatkan.
• Blok dapat ditempatkan dalam baris manapun yang kosong. Bila semua baris cache penuh harus ditentukan blok mana yang dikeluarkan dari cache.
• Digunakan prinsip LRU (least recently used) yakni blok yang paling lama tidak dipakai dikeluarkan dari cache.
• Cukup mahal mengimplementasikannya.
• Resiko : memperbanyak implementasi rangkaian hardware untuk membandingkan tag thdp semua brs cache.
Download
Dalam rancangan cache asosiatif-kelompok :
• Untuk memperkecil resiko tersebut sekaligus mengurangi terjadinya konflik alamat, dirancang organisasi cache yang lain yakni asosiatif-kelompok (set-associative).
• Satu kelompok terdiri atas beberapa baris.
• Bit alamat bagian tengah menentukan kelompok baris di mana suatu blok ditempatkan.
• Dalam setiap kelompok, cache dipetakan secara asosiatif-penuh.
• Memudahkan implementasi teknik LRU (least recently used).
• Bit tengah dari alamat digunakan untuk memilih sekelompok baris (bukan hanya satu baris seperti pada sistem pemetaan langsung).
• Tag alamat kemudian dicocokkan dengan tag seluruh baris cache yang dipilih.
Mikroprosesor Amd486DX2, misalnya, memiliki 8 KB cache asosiatif-kelompok empat-jalan (four-way set-associative) dengan baris masing-masing selebar 26 byte. Cache sebesar 8 KB tersebut dibagi menjadi 128 kelompok yang masing-masing terdiri atas empat baris.
Selain ketiga organisasi cache di atas, pada masa-masa awal pemanfaatan sistem cache beberapa jenis prosesor menggunakan cache, dengan pemetaan-sektor. Pada pemetaan sektor, baik memori utama maupun cache dibagi menjadi sektor-sektor. Setiap sektor terdiri atas sejumlah blok. Sembarang sektor pada memori utama dapat terpetakan ke sembarang sektor dalam cache, dengan suatu tag disimpan bersama tiap-tiap sektor dalam cache untuk mengidentifikasi alamat sektor memori utama. Dalam pengirimannya ke cache atau pengembaliannya ke memori utama, data/instruksi tidak dikirim sektor per sektor tetapi blok per blok.
Pada saat terjadi kesalahan sektor (sector miss) blok yang diperlukan dari satu sektor dipindahkan ke lokasi tertentu dalam satu sektor. Lokasi sektor dalam cache dipilih berdasarkan algoritma penggantian tertentu. Desain ini sudah tidak populer lagi karena prosentase kena (hit) lebih rendah dibanting dengan organisasi asosiatif-kelompok.

Perhatikan masalah penempatan suatu blok data/instruksi dari memori utama ke baris-baris cache.
Ada tiga macam organisasi cache
• organisasi cache dipetakan langsung (direct-mapped)
• asosiatif penuh (fully associative)
• asosiatif-kelompok ( set-associative).
Misalkan pengalamatan 32-bit
• 6-bit = offset menentukan byte mana dalam blok itu yang dialamati.
• 10 bit berikutnya menentukan pada baris mana blok yang diambil harus ditempatkan.
• Bit sisanya, yakni 16-bit paling atas = tag yang bersesuaian dengan baris cache.
Organisasi cache yang dipetakan langsung :
• menyimpan satu tag perbaris dalam larik tag-nya
• Selama pengaksesan memori, cache menggunakan bit-bit tengah alamat sebagai indeks ke larik tagnya.
• Tag dicocokkan dengan 16-bit teratas dari alamat memori yang diakses.
• Jika cocok, data yang ditunjukan oleh nilai offset akan dikirim ke prosesor. Bila tidak cocok, isi baris cache diganti dengan blok yang diperlukan, dari memori utama.
• Hanya memerlukan satu kali pembandingan untuk setiap akses ke cache.
• Cocok untuk sistem komputer yang memerlukan frekuensi detak tinggi
Dalam rancangan cache asosiatif-penuh :
• Suatu blok data dapat ditempatkan pada baris cache manapun.
• Alamat dibagi menjadi dua bagian yakni bit rendah dan bit tinggi.
• Bit rendah membentuk offset di dalam baris cache, sedangkan bit tinggi membentuk tag untuk dicocokkan dengan rujukan.
• Cache asosiatif-penuh harus punya mekanisme untuk menentukan ke dalam baris mana blok ditempatkan.
• Blok dapat ditempatkan dalam baris manapun yang kosong. Bila semua baris cache penuh harus ditentukan blok mana yang dikeluarkan dari cache.
• Digunakan prinsip LRU (least recently used) yakni blok yang paling lama tidak dipakai dikeluarkan dari cache.
• Cukup mahal mengimplementasikannya.
• Resiko : memperbanyak implementasi rangkaian hardware untuk membandingkan tag thdp semua brs cache.
Download
Dalam rancangan cache asosiatif-kelompok :
• Untuk memperkecil resiko tersebut sekaligus mengurangi terjadinya konflik alamat, dirancang organisasi cache yang lain yakni asosiatif-kelompok (set-associative).
• Satu kelompok terdiri atas beberapa baris.
• Bit alamat bagian tengah menentukan kelompok baris di mana suatu blok ditempatkan.
• Dalam setiap kelompok, cache dipetakan secara asosiatif-penuh.
• Memudahkan implementasi teknik LRU (least recently used).
• Bit tengah dari alamat digunakan untuk memilih sekelompok baris (bukan hanya satu baris seperti pada sistem pemetaan langsung).
• Tag alamat kemudian dicocokkan dengan tag seluruh baris cache yang dipilih.
Mikroprosesor Amd486DX2, misalnya, memiliki 8 KB cache asosiatif-kelompok empat-jalan (four-way set-associative) dengan baris masing-masing selebar 26 byte. Cache sebesar 8 KB tersebut dibagi menjadi 128 kelompok yang masing-masing terdiri atas empat baris.
Selain ketiga organisasi cache di atas, pada masa-masa awal pemanfaatan sistem cache beberapa jenis prosesor menggunakan cache, dengan pemetaan-sektor. Pada pemetaan sektor, baik memori utama maupun cache dibagi menjadi sektor-sektor. Setiap sektor terdiri atas sejumlah blok. Sembarang sektor pada memori utama dapat terpetakan ke sembarang sektor dalam cache, dengan suatu tag disimpan bersama tiap-tiap sektor dalam cache untuk mengidentifikasi alamat sektor memori utama. Dalam pengirimannya ke cache atau pengembaliannya ke memori utama, data/instruksi tidak dikirim sektor per sektor tetapi blok per blok.
Pada saat terjadi kesalahan sektor (sector miss) blok yang diperlukan dari satu sektor dipindahkan ke lokasi tertentu dalam satu sektor. Lokasi sektor dalam cache dipilih berdasarkan algoritma penggantian tertentu. Desain ini sudah tidak populer lagi karena prosentase kena (hit) lebih rendah dibanting dengan organisasi asosiatif-kelompok.
ORKOM-I/O
INPUT / OUTPUT DEVICE
Input-Output Device, merupakan bagian yang berfungsi sebagai penghubung antara komputer dengan lingkungan di luarnya. Dapat dibagi menjadi dua kelompok, yaitu
a. Input Device (Piranti Masukan), berfungsi sebagai media komputer untuk menerima masukan dari luar. Beberapa contoh piranti masukan :
- keyboard
- mouse
- touch screen
- scanner
- camera
- modem
- network card
- dll
b. Output Device (Piranti Keluaran), berfungsi sebagai media komputer untuk memberikan keluaran. Beberapa contoh piranti masukan :
- Monitor
- Printer
- Speaker
- Plotter
- Modem
- network card
- dll
1. Prinsip Perangkat Keras I/O
Batasan : bagaimana hardware tersebut di program
Manajemen perangkat I/O mempunyai beragam fungsi, diantaranya :
- mengirimkan perintah ke perangkat I/O agar menyediakan layanan
- menangani interupsi perangkat I/O
- menangani kesalahan pada perangkat I/O
- menyediakan interface ke pemakai
1.1. I/O Device
Perangkat I/O dapat dibedakan berdasarkan :
1. Sifat aliran data
Berdasarkan aliran data dibedakan menjadi :
a. Perangkat berorientasi blok (block-oriented devices)
Menyimpan informasi dan menukarkan (menerima / mengirim) informasi sebagai blok-blok berukuran tetap. Tiap blok mempunyai alamat tersendiri. Ukuran blok dapat beragam antara 128 s/d 1024 byte.
Ciri utamanya adalah : dimungkinkan membaca / menulis blok-blok secara independent, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain.
Contohnya : disk, tape, CD ROM, Optical disk
b. Perangkat berorientasi karakter (character-oriented devices)
Mengirim atau menerima karakter dan tanpa peduli membentuk suatu struktur blok, not addresable dan tidak mempunyai operasi seek.
Contohnya : terminals, line printer, punch card, network interfaces, pita kertas, mouse
Klasifikasi diatas tidak mutlak, karena ada beberapa perangkat yang tidak termasuk kategori diatas, misalnya :
- clock yang tidak teramati secara blok dan juga tidak menghasilkan / menerima aliran karakter. Clock menyebabkan interupsi pada interval-interval yang didefinisikan.
- Memory mapped screen,
- sensor
2. Sasaran komunikasi
Berdasarkan sasaran komunikasi dibedakan menjadi :
a. Perangkat yang terbaca oleh manusia (human readable device)
Perangkat yang cocok untuk komunikasi dengan manusia.
Contohnya : VDT (Video Display Terminal) terdiri dari monitor, keyboard (+mouse)
b. Perangkat yang terbaca oleh mesin (machine readable device)
Perangkat yang cocok untuk komunikasi dengan perangkat elektronik.
Contohnya : disk, tape, sensor, controller, aktuator
c. Untuk komunikasi
Perangkat yang cocok untuk komunikasi dengan perangkat jarak jauh.
Contohnya : modem
1.2. Device Controller
Unit I/O berupa :
a. Komponen elektronik
Device controller / adapter adalah untuk mengaktifkan perangkat eksternal dan memberitahukan yang perlu dilakukan oleh perangkat / driver.
Contoh : unit tape megnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke record berikutnya dan sebagainya.
b. Komponen mekanik
Contohnya : head, motor stepper, printer
1.3. Direct Memory Access (DMA)
DMA berfungsi membebaskan pemroses menunggui transfer data yang dilakukan I/O device. Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA Controller dengan mengirimkan informasi berikut :
- perintah penulisan / pembacaan
- alamat I/O device
- awal lokasi memori yang ditulis / dibaca
- jumlah word / byte yang ditulis / dibaca
setelah mengirimkan informasi itu ke DMA Controller, pemroses dapat melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA. DMA mentransfer seluruh data yang diminta ke / dari memori secara langsung tanpa melewati pemroses. Ketika transfer data selesai, DMA mengirimkan sinyal interupsi ke pemroses. Pemroses hanya dilibatkan pada awal dan akhir transfer data.
Operasi transfer antara perangkat dan memori utama dilakukan sepenuhnya oleh DMA, lepas dari pemroses dan hanya melakukan interupsi bila operasi telah selesai.
Keuntungan DMA :
- peningkatan kinerja prosesor atau I/O
- meminimasikan over head
Pada waktu data di tranfer dari controller ke memori, sektor berikut akan lewat dibawah head dan bits sampai ke controller. Controller sederhana tidak dapat melakukan I/O dalam waktu yang bersamaan, maka dilakukan interleaving (skip blok), memberi waktu untuk tranfer data ke memori. Interleaving ini terjadi pada disk bukan pada memori, seperti terlihat pada gambar di bawah ini.
2. Prinsip Software I/O
Ide Dasar : mengorganisasikan software dalam beberapa layer dimana level bawah menyembunyikan akses / kepelikan hardware untuk level diatasnya. Level atas membuat interface yang baik ke user.
Tujuan Software I/O
a. Konsep dalam desain software I/O
Device independence / tidak bergantung pada device yang digunakan
b. Penamaan yang seragam / Uniform Naming
Penamaan file berkas atau perangkat adalah string atau integer dan harus sederhana, tidak bergantung pada device
Contoh : seluruh disks dapat dibuat dengan hirarki sistem file (menggunakan NPS)
c. Penanganan kesalahan / Error Handling
Error harus ditangani sedekat mungkin dengan hardware
Contoh : pertama controller, device driver, dst. Dan jika tidak bisa ditangani beri pesan
d. Synchronous (blocking) vs Asynchronous (Interrupt Driver) transfer
Kebanyakan I/O adalah asinkron. Pemroses mulai transfer dan mengabaikan untuk melakukan kerja lain sampai interupsi tiba.
Program pemakai sangat lebih mudah ditulis jika operasi I/O berorientasi blok. Setelah perintah read, pemrogram kemudian ditunda secara otomatis sampai data tersedia di buffer. Terserah sistem operasi untuk menangani operasi yang sesungguhnya interrupt driver.
e. Sharable vs Dedicated Device
Beberapa perangkat dapat dipakai bersama seperti disk, tapi ada juga perangkat yang hanya satu pemakai yang dibolehkan memakai pada satu saat.
Misal : disk untuk sharable dan printer untuk dedicated
Tujuan diatas dapat dicapai dengan memisahkan software I/O menjadi 4 layers, yaitu :
1. Interrupt Handler
Interrupt harus disembunyikan agar tidak terlihat rutin berikutnya. Device driver di blok saat perintah I/O diberikan dan menunggu interupsi. Ketika interupsi terjadi, prosedur penanganan interupsi bekerja agar device driver keluar dari state blocked.
2. Device Drivers
Seluruh kode device dependent terletak di device driver. Tiap device driver menangani satu tipe / satu kelas device. Tugas dari device driver untuk menerima permintaan abstrak dari software device independent diatasnya dan melakukan layanan sesuai permintaan / mengeksekusinya.
3. Device Independent Operating System Software
I/O device-independent adalah : software I/O yang tak bergantung pada perangkat keras.
Fungsi dasar dari software device-independent :
- membentuk fungsi I/O yang berlaku untuk semua device
- menyediakan interface uniform / seragam ke user level software
Fungsi dari software I/O device-independent yang biasa dilakukan :
a. Interface seragam untuk seluruh device-driver
b. Penamaan device
c. Proteksi device
d. Memberi ukuran blok device agar bersifat device-independent
e. Melakukan Buffering
f. Alokasi penyimpanan pada blok devices
g. Alokasi dan pelepasan dedicated devices
h. Pelaporan kesalahan
4. User Space I/OSoftware
Sebagian besar software I/O berada di dalam sistem operasi yang di link dengan user program.
System call termasuk I/O, biasanya dalam bentuk prosedur (library procedures).
Contoh : count = write(fd,buffer,nbytes)
I/O prosedur dengan level lebih tinggi.
Contoh : printf (memformat output terlebih dahulu kemudian panggil write)
Yang tidak mempunyai library procedure, contohnya : spooling directory dan daemon (proses khusus) pada proses mencetak, transfer file, USENET
Layer
I/O reply I/O functions
User processes
Make I/O call; format I/O; spooling
Device-independent
software Naming protection, blocking, buffering, allocation
Device-drivers
Setup device register, check status
Interrupt handler
Wake up driver when I/O completed
Hardware
Perform I/O operation
Lapisan sistem I/O dan fungsi utama dari tiap lapisan (layer)
3. Disk
Tiga kelebihan disk dari main memory untuk penyimpanan :
1. kapasitas penyimpanan yang tersedia lebih besar
2. harga per-bit-nya lebih rendah
3. informasi tidak hilang meskipun power off
3.1. Perangkat Keras Disk
Disk diorganisasikan menjadi silinder-silinder dengan tiap permukaan terdapat head yang ditumpuk secara vertikal. Track terbagi menjadi sektor-sektor
Tiga faktor yang mempengaruhi waktu read/write block disk :
1. seek time (waktu menggerakkan lengan ke silinder)
2. rotational delay (waktu sector berputar ke head)
3. transfer time
yang sangat dominan adalah seek time, jadi performance dapat ditingkatkan dengan mengurangi waktu rata-rata seek
Proses seek pada disk driver : seek ke lebih dari satu disk secara bersamaan, read/write bersama dengan seek, read/write dalam waktu yang bersamaan dari dua drive
3.2. Algoritma Penjadwalan Akses Lintas Disk
Pada sistem multiprogramming, banyak proses yang melakukan permintaan read/write record disk. Proses membuat permintaan lebih cepat dibandingkan yang dapat dilayani disk, membentuk antrian permintaan layanan disk. Diperlukan penjadwalan disk agar memperoleh kerja optimal.
Terdapat dua tipe penjadwalan disk, yaitu :
1. Penjadwalan untuk optimasi seek, karena waktu seek lebih tinggi satu orde dibandingkan waktu rotasi, maka kebanyakan algoritma penjadwalan berkonsentrasi meminimumkan seek kumpulan atau antrian permintaan layanan disk.
2. Penjadwalan untuk optimasi rotasi, penjadwalan disk melibatkan pemeriksaan terhadap permintaan yang belum dilayani untuk menentukan cara paling efisien melayani permintaan-perminataan, dan memeriksa hubungan posisi di antrian permintaan. Antrian disusun kembali sehingga permintaan akan dilayani dengan pergerakan mekanis minimum.
Adapun beberapa metode yang digunakan :
a. Algoritma Pertama Tiba Pertama Dilayani (PTPD) / First Come, First Served (FCFS) Algorithm
Disk drive melayani satu permintaan pada sauatu saat dan melayaninya sesuai urutan kedatangannya. Permintaan yang duluan tiba, dilayani duluan.
Contoh : 40 silinder dengan urutan 11, 1, 36, 1, 16, 34, 9, 12
b. Algoritma Pungut / Pick Up Algorithm
c. Algoritma Waktu Cari Terpendek Dipertamakan (WCTD) / Shortest Seek Time First (SSTF) Algorithm
d. Algoritma Lift Singkat / LOOK Algorithm
e. goritma Lift Singkat Searah / C-LOOK Algorithm
f. Algoritma Lift Lengkap / SCAN Algorithm
g. Algoritma Lift Lengkap Searah / C-Scan Algorithm
3.3. I/O Error Handling / Penanganan Kesalahan I/O
Error yang umum terjadi adalah :
1. Error pemrograman
Kesalahan disebabkan pemrograman. Misalnya : request sektor yang tidak ada. Penanganannya : pembetulan program untuk komersial software, batalkan operasi dan berharap tidak akan terjadi lagi
2. Error checksum transient
Kesalahan disebabkan adanya debu diantara head dengan permukaan disk. Penanganannya : lakukan operasi berulang-ulang dan menandai sector yang rusak.
3. Error checksum permanent
Kesalahan disebabkan kerusakan disk. Misalnya harus dibuat daftar blok-blok buruk agar data tidak ditulisi di blok-blok buruk.
4. Error seek
Kesalahan ini ditanggulangi dengan mengkalibrasi disk supaya berfungsi kembali. Misalnya lengan harusnya ke silinder 6 ternyata ke 7. Penanganannya : kalibrasi ulang.
5. Error controller
Kesalahan ini ditanggulangi dengan menukar pengendali yang salah dengan pengendali yang baru. Misalnya controller menolak perintah akses. Penanganannya : reset.
6. Track at time caching
Kontroller mempunyai memori untuk menyimpan informasi track dimana ia berada, permintaan pembacaan blok track tersebut dilakukan tanpa pergerakan mekanik.
3.4. RAM Disk
RAM disk adalah disk driver yang disimulasikan pada memori akses acak (RAM). RAM disk sepenuhnya mengeliminasi waktu tunda yang disebabkan pergerakan mekanis dalam seek dan rotasi. RAM disk berguna untuk aplikasi yang memerlukan kinerja disk yang tinggi.
Devices block adalah media penyimpanan dengan 2 perintah : R (read) dan W (write). Normalnya blok-blok disimpan di disk berputar yang memerlukan mekanisme fisik.
Idenya adalah meniru driver dengan mengalokasikan terlebih dahulu satu bagian memori utama untuk menyimpan blok-blok data.
Keuntungannya : berkecepatan tinggi karena pengaksesan sesaat / instant, tidak ada waktu tunda seek dan waktu tunda rotasi. Sangat cocok untuk menyimpan program atau data yang sering diakses..
Main Memory (RAM)
4. Terminal
Semua komputer memerlukan terminal untuk komunikasi antar peralatan.
4.1. Terminal Hardware
Terminal hardware terbagi atas 2 kategori dasar, yaitu :
1. terminal interface melalui RS-232
RS-232 menghubungkan keyboard, monitor menggunakan serial interface, 1 bit dalam 1 waktu, dan menggunakan 25 pin konektor, dimana 1 pin untuk transmisi data, 1 pin untuk receive data dan 1 pin untuk ground, 22 pin yang lain digunakan untuk fungsi control atau ada pin yang tidak digunakan.
RS-232 dapat dikategorikan lagi menjadi :
a. hardcopy / printer, dimana tipe karakter dari keyboard ditransmisikan ke komputer, dan kemudian di cetak di kertas / printer.
b. Dumb CRT terminal / glass tty (teletype = terminal)
c. Intelligent CRT terminals, terdiri dari CPU dan memory, dan untuk program yang kompek digunakan EPROM atau ROM.
d. Blit, adalah terminal dengan powerful microprocessor
2. terminal memory-mapped
adalah interface melalui video RAM / video controller yang digunakan untuk monitor.
4.2. Terminal Software
Terminal Software terdiri dari :
1. Input Software
2. Output Software
Studi kasus
manajemen I/O
pada MS DOS
MS DOS mendukung beragam perangkat serial, yang diidentifikasikan dengan nama file khusus, hanya tidak disimpan di suatu direktori tertentu, misalnya :
a. con : perangkat konsol
b. com1 : perangkat communication port 1
c. com2 : perangkat communication port 2
d. pm : perangkat printer
e. lpt1 : perangkat line printer 1
f. lpt2 : perangkat line printer 2
g. aux : perangkat auxiliary
contoh :
copy a.txt con : tidak mengkopi file a.txt menjadi file con, tetapi menampilkan ke konsol
copy a.txt prn : tidak mengkopi file a.txt menjadi file prn, tetapi mengalirkan isi file a.txt ke printer sehingga printer akan mencetaknya
MS DOS memungkinkan pemakai memasang device driver sendiri setelah sistem di boot dengan penambahan pernyataan di file config.sys, misalnya ansi.sys, display.sys, mouse.sys, printer.sys, dll.
UNIX mengharuskan device driver dikompilasi ke kernel.
Input-Output Device, merupakan bagian yang berfungsi sebagai penghubung antara komputer dengan lingkungan di luarnya. Dapat dibagi menjadi dua kelompok, yaitu
a. Input Device (Piranti Masukan), berfungsi sebagai media komputer untuk menerima masukan dari luar. Beberapa contoh piranti masukan :
- keyboard
- mouse
- touch screen
- scanner
- camera
- modem
- network card
- dll
b. Output Device (Piranti Keluaran), berfungsi sebagai media komputer untuk memberikan keluaran. Beberapa contoh piranti masukan :
- Monitor
- Printer
- Speaker
- Plotter
- Modem
- network card
- dll
1. Prinsip Perangkat Keras I/O
Batasan : bagaimana hardware tersebut di program
Manajemen perangkat I/O mempunyai beragam fungsi, diantaranya :
- mengirimkan perintah ke perangkat I/O agar menyediakan layanan
- menangani interupsi perangkat I/O
- menangani kesalahan pada perangkat I/O
- menyediakan interface ke pemakai
1.1. I/O Device
Perangkat I/O dapat dibedakan berdasarkan :
1. Sifat aliran data
Berdasarkan aliran data dibedakan menjadi :
a. Perangkat berorientasi blok (block-oriented devices)
Menyimpan informasi dan menukarkan (menerima / mengirim) informasi sebagai blok-blok berukuran tetap. Tiap blok mempunyai alamat tersendiri. Ukuran blok dapat beragam antara 128 s/d 1024 byte.
Ciri utamanya adalah : dimungkinkan membaca / menulis blok-blok secara independent, yaitu dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain.
Contohnya : disk, tape, CD ROM, Optical disk
b. Perangkat berorientasi karakter (character-oriented devices)
Mengirim atau menerima karakter dan tanpa peduli membentuk suatu struktur blok, not addresable dan tidak mempunyai operasi seek.
Contohnya : terminals, line printer, punch card, network interfaces, pita kertas, mouse
Klasifikasi diatas tidak mutlak, karena ada beberapa perangkat yang tidak termasuk kategori diatas, misalnya :
- clock yang tidak teramati secara blok dan juga tidak menghasilkan / menerima aliran karakter. Clock menyebabkan interupsi pada interval-interval yang didefinisikan.
- Memory mapped screen,
- sensor
2. Sasaran komunikasi
Berdasarkan sasaran komunikasi dibedakan menjadi :
a. Perangkat yang terbaca oleh manusia (human readable device)
Perangkat yang cocok untuk komunikasi dengan manusia.
Contohnya : VDT (Video Display Terminal) terdiri dari monitor, keyboard (+mouse)
b. Perangkat yang terbaca oleh mesin (machine readable device)
Perangkat yang cocok untuk komunikasi dengan perangkat elektronik.
Contohnya : disk, tape, sensor, controller, aktuator
c. Untuk komunikasi
Perangkat yang cocok untuk komunikasi dengan perangkat jarak jauh.
Contohnya : modem
1.2. Device Controller
Unit I/O berupa :
a. Komponen elektronik
Device controller / adapter adalah untuk mengaktifkan perangkat eksternal dan memberitahukan yang perlu dilakukan oleh perangkat / driver.
Contoh : unit tape megnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke record berikutnya dan sebagainya.
b. Komponen mekanik
Contohnya : head, motor stepper, printer
1.3. Direct Memory Access (DMA)
DMA berfungsi membebaskan pemroses menunggui transfer data yang dilakukan I/O device. Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA Controller dengan mengirimkan informasi berikut :
- perintah penulisan / pembacaan
- alamat I/O device
- awal lokasi memori yang ditulis / dibaca
- jumlah word / byte yang ditulis / dibaca
setelah mengirimkan informasi itu ke DMA Controller, pemroses dapat melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA. DMA mentransfer seluruh data yang diminta ke / dari memori secara langsung tanpa melewati pemroses. Ketika transfer data selesai, DMA mengirimkan sinyal interupsi ke pemroses. Pemroses hanya dilibatkan pada awal dan akhir transfer data.
Operasi transfer antara perangkat dan memori utama dilakukan sepenuhnya oleh DMA, lepas dari pemroses dan hanya melakukan interupsi bila operasi telah selesai.
Keuntungan DMA :
- peningkatan kinerja prosesor atau I/O
- meminimasikan over head
Pada waktu data di tranfer dari controller ke memori, sektor berikut akan lewat dibawah head dan bits sampai ke controller. Controller sederhana tidak dapat melakukan I/O dalam waktu yang bersamaan, maka dilakukan interleaving (skip blok), memberi waktu untuk tranfer data ke memori. Interleaving ini terjadi pada disk bukan pada memori, seperti terlihat pada gambar di bawah ini.
2. Prinsip Software I/O
Ide Dasar : mengorganisasikan software dalam beberapa layer dimana level bawah menyembunyikan akses / kepelikan hardware untuk level diatasnya. Level atas membuat interface yang baik ke user.
Tujuan Software I/O
a. Konsep dalam desain software I/O
Device independence / tidak bergantung pada device yang digunakan
b. Penamaan yang seragam / Uniform Naming
Penamaan file berkas atau perangkat adalah string atau integer dan harus sederhana, tidak bergantung pada device
Contoh : seluruh disks dapat dibuat dengan hirarki sistem file (menggunakan NPS)
c. Penanganan kesalahan / Error Handling
Error harus ditangani sedekat mungkin dengan hardware
Contoh : pertama controller, device driver, dst. Dan jika tidak bisa ditangani beri pesan
d. Synchronous (blocking) vs Asynchronous (Interrupt Driver) transfer
Kebanyakan I/O adalah asinkron. Pemroses mulai transfer dan mengabaikan untuk melakukan kerja lain sampai interupsi tiba.
Program pemakai sangat lebih mudah ditulis jika operasi I/O berorientasi blok. Setelah perintah read, pemrogram kemudian ditunda secara otomatis sampai data tersedia di buffer. Terserah sistem operasi untuk menangani operasi yang sesungguhnya interrupt driver.
e. Sharable vs Dedicated Device
Beberapa perangkat dapat dipakai bersama seperti disk, tapi ada juga perangkat yang hanya satu pemakai yang dibolehkan memakai pada satu saat.
Misal : disk untuk sharable dan printer untuk dedicated
Tujuan diatas dapat dicapai dengan memisahkan software I/O menjadi 4 layers, yaitu :
1. Interrupt Handler
Interrupt harus disembunyikan agar tidak terlihat rutin berikutnya. Device driver di blok saat perintah I/O diberikan dan menunggu interupsi. Ketika interupsi terjadi, prosedur penanganan interupsi bekerja agar device driver keluar dari state blocked.
2. Device Drivers
Seluruh kode device dependent terletak di device driver. Tiap device driver menangani satu tipe / satu kelas device. Tugas dari device driver untuk menerima permintaan abstrak dari software device independent diatasnya dan melakukan layanan sesuai permintaan / mengeksekusinya.
3. Device Independent Operating System Software
I/O device-independent adalah : software I/O yang tak bergantung pada perangkat keras.
Fungsi dasar dari software device-independent :
- membentuk fungsi I/O yang berlaku untuk semua device
- menyediakan interface uniform / seragam ke user level software
Fungsi dari software I/O device-independent yang biasa dilakukan :
a. Interface seragam untuk seluruh device-driver
b. Penamaan device
c. Proteksi device
d. Memberi ukuran blok device agar bersifat device-independent
e. Melakukan Buffering
f. Alokasi penyimpanan pada blok devices
g. Alokasi dan pelepasan dedicated devices
h. Pelaporan kesalahan
4. User Space I/OSoftware
Sebagian besar software I/O berada di dalam sistem operasi yang di link dengan user program.
System call termasuk I/O, biasanya dalam bentuk prosedur (library procedures).
Contoh : count = write(fd,buffer,nbytes)
I/O prosedur dengan level lebih tinggi.
Contoh : printf (memformat output terlebih dahulu kemudian panggil write)
Yang tidak mempunyai library procedure, contohnya : spooling directory dan daemon (proses khusus) pada proses mencetak, transfer file, USENET
Layer
I/O reply I/O functions
User processes
Make I/O call; format I/O; spooling
Device-independent
software Naming protection, blocking, buffering, allocation
Device-drivers
Setup device register, check status
Interrupt handler
Wake up driver when I/O completed
Hardware
Perform I/O operation
Lapisan sistem I/O dan fungsi utama dari tiap lapisan (layer)
3. Disk
Tiga kelebihan disk dari main memory untuk penyimpanan :
1. kapasitas penyimpanan yang tersedia lebih besar
2. harga per-bit-nya lebih rendah
3. informasi tidak hilang meskipun power off
3.1. Perangkat Keras Disk
Disk diorganisasikan menjadi silinder-silinder dengan tiap permukaan terdapat head yang ditumpuk secara vertikal. Track terbagi menjadi sektor-sektor
Tiga faktor yang mempengaruhi waktu read/write block disk :
1. seek time (waktu menggerakkan lengan ke silinder)
2. rotational delay (waktu sector berputar ke head)
3. transfer time
yang sangat dominan adalah seek time, jadi performance dapat ditingkatkan dengan mengurangi waktu rata-rata seek
Proses seek pada disk driver : seek ke lebih dari satu disk secara bersamaan, read/write bersama dengan seek, read/write dalam waktu yang bersamaan dari dua drive
3.2. Algoritma Penjadwalan Akses Lintas Disk
Pada sistem multiprogramming, banyak proses yang melakukan permintaan read/write record disk. Proses membuat permintaan lebih cepat dibandingkan yang dapat dilayani disk, membentuk antrian permintaan layanan disk. Diperlukan penjadwalan disk agar memperoleh kerja optimal.
Terdapat dua tipe penjadwalan disk, yaitu :
1. Penjadwalan untuk optimasi seek, karena waktu seek lebih tinggi satu orde dibandingkan waktu rotasi, maka kebanyakan algoritma penjadwalan berkonsentrasi meminimumkan seek kumpulan atau antrian permintaan layanan disk.
2. Penjadwalan untuk optimasi rotasi, penjadwalan disk melibatkan pemeriksaan terhadap permintaan yang belum dilayani untuk menentukan cara paling efisien melayani permintaan-perminataan, dan memeriksa hubungan posisi di antrian permintaan. Antrian disusun kembali sehingga permintaan akan dilayani dengan pergerakan mekanis minimum.
Adapun beberapa metode yang digunakan :
a. Algoritma Pertama Tiba Pertama Dilayani (PTPD) / First Come, First Served (FCFS) Algorithm
Disk drive melayani satu permintaan pada sauatu saat dan melayaninya sesuai urutan kedatangannya. Permintaan yang duluan tiba, dilayani duluan.
Contoh : 40 silinder dengan urutan 11, 1, 36, 1, 16, 34, 9, 12
b. Algoritma Pungut / Pick Up Algorithm
c. Algoritma Waktu Cari Terpendek Dipertamakan (WCTD) / Shortest Seek Time First (SSTF) Algorithm
d. Algoritma Lift Singkat / LOOK Algorithm
e. goritma Lift Singkat Searah / C-LOOK Algorithm
f. Algoritma Lift Lengkap / SCAN Algorithm
g. Algoritma Lift Lengkap Searah / C-Scan Algorithm
3.3. I/O Error Handling / Penanganan Kesalahan I/O
Error yang umum terjadi adalah :
1. Error pemrograman
Kesalahan disebabkan pemrograman. Misalnya : request sektor yang tidak ada. Penanganannya : pembetulan program untuk komersial software, batalkan operasi dan berharap tidak akan terjadi lagi
2. Error checksum transient
Kesalahan disebabkan adanya debu diantara head dengan permukaan disk. Penanganannya : lakukan operasi berulang-ulang dan menandai sector yang rusak.
3. Error checksum permanent
Kesalahan disebabkan kerusakan disk. Misalnya harus dibuat daftar blok-blok buruk agar data tidak ditulisi di blok-blok buruk.
4. Error seek
Kesalahan ini ditanggulangi dengan mengkalibrasi disk supaya berfungsi kembali. Misalnya lengan harusnya ke silinder 6 ternyata ke 7. Penanganannya : kalibrasi ulang.
5. Error controller
Kesalahan ini ditanggulangi dengan menukar pengendali yang salah dengan pengendali yang baru. Misalnya controller menolak perintah akses. Penanganannya : reset.
6. Track at time caching
Kontroller mempunyai memori untuk menyimpan informasi track dimana ia berada, permintaan pembacaan blok track tersebut dilakukan tanpa pergerakan mekanik.
3.4. RAM Disk
RAM disk adalah disk driver yang disimulasikan pada memori akses acak (RAM). RAM disk sepenuhnya mengeliminasi waktu tunda yang disebabkan pergerakan mekanis dalam seek dan rotasi. RAM disk berguna untuk aplikasi yang memerlukan kinerja disk yang tinggi.
Devices block adalah media penyimpanan dengan 2 perintah : R (read) dan W (write). Normalnya blok-blok disimpan di disk berputar yang memerlukan mekanisme fisik.
Idenya adalah meniru driver dengan mengalokasikan terlebih dahulu satu bagian memori utama untuk menyimpan blok-blok data.
Keuntungannya : berkecepatan tinggi karena pengaksesan sesaat / instant, tidak ada waktu tunda seek dan waktu tunda rotasi. Sangat cocok untuk menyimpan program atau data yang sering diakses..
Main Memory (RAM)
4. Terminal
Semua komputer memerlukan terminal untuk komunikasi antar peralatan.
4.1. Terminal Hardware
Terminal hardware terbagi atas 2 kategori dasar, yaitu :
1. terminal interface melalui RS-232
RS-232 menghubungkan keyboard, monitor menggunakan serial interface, 1 bit dalam 1 waktu, dan menggunakan 25 pin konektor, dimana 1 pin untuk transmisi data, 1 pin untuk receive data dan 1 pin untuk ground, 22 pin yang lain digunakan untuk fungsi control atau ada pin yang tidak digunakan.
RS-232 dapat dikategorikan lagi menjadi :
a. hardcopy / printer, dimana tipe karakter dari keyboard ditransmisikan ke komputer, dan kemudian di cetak di kertas / printer.
b. Dumb CRT terminal / glass tty (teletype = terminal)
c. Intelligent CRT terminals, terdiri dari CPU dan memory, dan untuk program yang kompek digunakan EPROM atau ROM.
d. Blit, adalah terminal dengan powerful microprocessor
2. terminal memory-mapped
adalah interface melalui video RAM / video controller yang digunakan untuk monitor.
4.2. Terminal Software
Terminal Software terdiri dari :
1. Input Software
2. Output Software
Studi kasus
manajemen I/O
pada MS DOS
MS DOS mendukung beragam perangkat serial, yang diidentifikasikan dengan nama file khusus, hanya tidak disimpan di suatu direktori tertentu, misalnya :
a. con : perangkat konsol
b. com1 : perangkat communication port 1
c. com2 : perangkat communication port 2
d. pm : perangkat printer
e. lpt1 : perangkat line printer 1
f. lpt2 : perangkat line printer 2
g. aux : perangkat auxiliary
contoh :
copy a.txt con : tidak mengkopi file a.txt menjadi file con, tetapi menampilkan ke konsol
copy a.txt prn : tidak mengkopi file a.txt menjadi file prn, tetapi mengalirkan isi file a.txt ke printer sehingga printer akan mencetaknya
MS DOS memungkinkan pemakai memasang device driver sendiri setelah sistem di boot dengan penambahan pernyataan di file config.sys, misalnya ansi.sys, display.sys, mouse.sys, printer.sys, dll.
UNIX mengharuskan device driver dikompilasi ke kernel.
Subscribe to:
Posts (Atom)