Kamis, 26 Desember 2013

Sistem I/O ( Input/Output )

Sistem komputer terdiri dari perangkat keras (hardware) dan perangkat lunak (software). Perangkat keras dan perangkat lunak harus bekerja bersama-sama membentuk suatu sistem, yaitu sistem komputer.
Perangkat I/O dapat dibagi secara umum menjadi dua kategori, yaitu :
1.) Perangkat blok (block devices).
2.) Perangkat karakter (character devices).

Perangkat blok menyimpan informasi dalam sebuah blok yang ukurannya tertentu dan memiliki alamat masing-masing. Umumnya blok berukuran antara 512 bytes - 32768 bytes. Keuntungan dari perangkat blok ini ialah mampu membaca atau menulis setiap blok secara independen. Disk merupakan contoh perangkat blok yang paling banyak digunakan.

Perangkat karakter mengirim atau menerima sebaris karakter, tanpa menghiraukan struktur blok. Tipe ini tidak memiliki alamat dan tidak memiliki kemampuan mencari (seek). Printer dan antarmuka jaringan merupakan contoh perangkat jenis ini. Pembagian ini tidaklah sempurna. Beberapa perangkat tidak memenuhi kriteria tersebut. Contohnya : clock yang tidak memiliki alamat dan juga tidak mengirim dan menerima barisan karakter. Yang dilakukan hanya menimbulkan interupsi dalam jangka waktu tertentu.

Input/Output 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 I/O terprogram, terdapat dua macam implementasi perintah I/O yang terdapat dalam instruksi I/O, yaitu :
1.) Memory-mapped I/O.
2.) Isolated I/O.

Dalam memory-mapped I/O, terdapat ruang tunggal untuk lokasi memori dan perangkat I/O. CPU menggunakan 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. Konsekuensinya 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.

Interupt Driven Input/Output

Masalah yang dijumpai pada I/O terprogram adalah bahwa CPU harus menunggu modul I/O yang diinginkan agar siap baik untuk menerima maupun mengirim data dalam waktu yang relatif lama. Pada saat menunggu, CPU harus berulang-ulang menanyakan status modul I/O. Akibatnya tingkat kerja keseluruhan sistem mengalami penurunan sistem. Alternatifnya adalah CPU mengeluarkan perintah I/O ke modul dan kemudian mengerjakan pekerjaan yang lain. Kemudian modul I/O akan menginterupsi CPU untuk meminta layanan ketika modul telah siap untuk saling bertukar data dengan CPU.

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 :
a.) Kelajuan transfer I/O yang tergantung pada kecepatan operasi CPU.
b.) Kerja CPU terganggu karena adanya interupsi secara langsung.
Bertolak dari kelemahan diatas, apalagi untuk menangani transfer data bervolume besar, maka 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.

Dalam melaksanakan transfer data secara mandiri, DMA memerlukan pengambil alihan kontrol bus dari CPU. Untuk itu DMA akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus. Teknik terakhir lebih umum digunakan, sering disebut cycle-stealing, karena modul DMA mengambil alih siklus bus. Penghentian sementara penggunaan bus bukanlah bentuk interupsi, melainkan hanyalah penghentian proses sesaat yang berimplikasi hanya pada kelambatan eksekusi CPU saja.

Saluran Input/Output

Saluran I/O mempunyai dua kegunaan, yaitu :
a.) Saluran I/O dapat melakukan pendeteksian dan pembetulan kesalahan dan beroperasi dalam basis cycle stealing.
b.) Saluran I/O berkomunikasi dengan CPU sebagai suatu fasilitas DMA dan berkomunikasi dengan piranti I/O seolah-olah sebagai CPU. 

Karena piranti I/O mempunyai kecepatan transfer yang berbeda-beda, maka saluran dibagi menjadi 3 pelayanan, yaitu :
- Saluran Multiplexer : Digunakan untuk menghubungkan piranti yang berkecepatan rendah dan sedang serta mengoperasikannya secara bersamaan dengan multiplexing.
- Saluran Selektor : Digunakan untuk menghubungkan piranti I/O yang berkecepatan tinggi tanpa multiplexing. Contohnya : pita magnetis, disk.
- Saluran Multiplexer Blok : Merupakan kombinasi dari dua pelayanan diatas.


Referensi :

Selasa, 03 Desember 2013

CPU (Central Processing Unit)

CPU adalah komponen pengolah data berdasarkan instruksi-instruksi yang diberikan kepadanya atau CPU adalah perangkat keras komputer yang memahami dan melaksanakan perintah dan data dari perangkat lunak. CPU merupakan komponen terpenting dalam sistem komputer dan CPU berperan sebagai otak pada komputer. CPU memiliki 3 komponen utama, yaitu CU (Control Unit), ALU (Arithmetic and Logic Unit) dan Register.

Cara kerja CPU
Saat data ataupun instruksi dimasukkan ke processing-devices, pertama kali 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 proses 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 berdasarkan instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasarkan 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 mengambil hasil pengolahan dari working-storage untuk ditampung ke output-storage. Lalu selanjutnya dari output-storage, hasil pengolahan akan ditampilkan ke output-devices.

CU (Control Unit)
CU atau unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU. CPU yang bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antarkomponen dalam menjalankan fungsi-fungsi operasinya. Termasuk dalam tugas unit kontrol adalah mengambil instruksi-instruksi 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 ditampilkan ke alat output. Dengan demikian tugas dari unit kendali ini adalah :
1.) Mengatur dan mengendalikan alat-alat masukan (input) dan keluaran (output).
2.) Mengambil instruksi-instruksi dari memori utama.
3.) Mengambil data dari memori utama (jika diperlukan) untuk diproses.
4.) Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
5.) Menyimpan hasil proses ke memori utama.

ALU (Arithmetic and Logic Unit)
Unit yang bertugas untuk melakukan operasi aritmatika dan operasi logika berdasarkan instruksi yang ditentukan. ALU sering disebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmatika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika 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 (<), kurang atau sama dengan, lebih besar dari (>) dan lebih besar atau sama dengan.

Register
Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat diolah 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.
Register terbagi menjadi beberapa kelas, yaitu :
a.) Register data, yang digunakan untuk menyimpan angka-angka dalam bilangan bulat (integer).
b.) Register alamat, yang digunakan untuk menyimpan alamat-alamat memori dan juga untuk mengakses memori.
c.) Register general purpose, yang dapat digunakan untuk menyimpan angka dan alamat secara sekaligus.
d.) Register floating-point, yang digunakan untuk menyimpan angka-angka bilangan titik mengambang (floating-point).
e.) Register konstanta (constant register), yang digunakan untuk menyimpan angka-angka tetap yang hanya dapat dibaca (bersifat read-only), semacam phi, null, true, false dan lainnya.
f.) Register vektor, yang digunakan untuk menyimpan hasil pemrosesan vektor yang dilakukan oleh prosesor SIMD.
g.) Register special purpose, yang dapat digunakan untuk menyimpan data internal prosesor, seperti halnya instruction pointer, stack pointer dan status register.
h.)Register yang spesifik terhadap model mesin (machine-specific register), dalam beberapa arsitektur tertentu, digunakan untuk menyimpan data atau pengaturan yang berkaitan dengan prosesor itu sendiri. Karena arti dari setiap register langsung dimasukkan kedalam desain prosesor tertentu saja, mungkin register jenis ini tidak menjadi standar antara generasi prosesor.
Jenis ukuran register dan contoh prosesornya, yaitu :
> 4 bit : Intel 4004
> 8 bit : Intel 8080
> 16 bit : Intel 8086
> 32 bit : Intel Pentium 4
> 64 bit : Intel Core 2

Referensi :
1. http://id.wikipedia.org/wiki/Unit_Pemroses_Sentral
2. http://id.wikipedia.org/wiki/Register_prosesor
3.http://missnuroxfordutomo.blogspot.com/2011/04/pengertian-cpu-dan-fungsinya.html