Kamis, 26 Desember 2019

Pipeline dan RISC

Pengertian Pipeline

Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit pem-rosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja.

Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang dijalankan oleh microprocessor.

Pada microprocessor  yang tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam microprocessor  yang menggunakan teknik pipeline, ketika satu instruksi sedangkan diproses,maka instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi,instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi.

Dengan penerapan pipeline ini pada microprocessor  akan didapatkan peningkatan kinerja microprocessor.Hal ini terjadi karena beberapa instruksi dapat dilakukan secara paralleldalam waktu yang bersamaan. Secara kasarnya diharapkan akan didapatkan peningkatan sebesar K kali dibandingkan dengan microprocessor  yang tidak menggunakan pipeline ,apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap.

Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar dan lancar.

Sedangkan ketergantungan terhadapdata bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yangsebelumnya. Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter,sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.

Instruksi pada pipeline

Tahapan pipeline
  • Mengambil instruksi dan membuffferkannya
  • Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut
Pada saat tahapan kedua sedang mengeksekusi instruksi ,tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya.
Berikut ini adalah gambaran tentang Instuksi pipeline :
Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut. Sebagai contoh :
Instruksi 1 : ADD AX, AX
Instruksi 2: ADD EX, CX
Setelah CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi tersebut(ID). Pada menerjemahkan instruksi 1 tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID menerjemahkan instruksi 1. Demikian seterusnya pada saat CU menjalankan instruksi 1 (EX), instruksi 2 diterjemahkan (ID).

Masalah-masalah pada Pipeline

Dengan adanya persyaratan bahwa setiap instuksi yang berdekatan harus tidak saling bergantung, maka ada kemungkinan terjadinya situasi dimana pipeline gagal dilaksanakan(instruksi berikutnya tidak bisa dilaksanakan). Situasi ini disebut Hazards.
Hazards mengurangi performansi dari CPU dimana percepatan ideal tidak dapat dicapai.
Ada 3 kelompok Hazards :
  1. Structural Hazardsmuncul dari konflik resource sistem yaitu ketika hardware tidak dapat mensuport semua kemungkinan kombinasi pelaksanaan instruksi.
  2. Data Hazardsmuncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya.
  1. Control Hazards muncul pada pelaksanaan instruksi yang mengubah PC (contoh: branch).
Adanya Hazards menyebabkan pipeline terhambat (stalled ). Tidak ada instruksi baru yang dijemput sampai hambatan itu selesai. Ini berarti instruksi-instruksi selanjutnya akan ditunda pula penje

Keuntungan dari Pipeline
  • Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.
  • Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebihcepat dengan menambahkan lebih banyak sirkuit.
  • Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu.
Jika pipeline digunakan sebagai pengganti, hal itu dapat menghemat sirkuit vs combinational yang lebih kompleks sirkuit.

Kerugian dari Pipeline
  1. Prossesor non-pipeline hanya menjalankan satu instruksi pada satu waktu. Hal iniuntuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi.
  2. Instruksi latency di prossesor non-pipeline sedikit lebih rendah daripada dalam pipeline setara. Hal ini disebabkan oleh fakta bahwa sandal jepit ekstra harus ditambahkan ke jalur data dari prossesor pipeline.
  3. Prossesor non-pipeline akan memiliki instruksi bandwidth yang stabil. Kinerja prossesor yang pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda.
  4. Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar.
  5. Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya.
  6. Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter,sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.

Kesulitan dalam Pipeline

Untuk menerapkan prinsip multi-stage atau mulai saat ini kita namakan pipelining di prosesor, diperlukan organisasi prosesor khusus. Pada dasarnya, prosesor dipartisi menjadi sejumlah unit-unit kecil dengan fungsi spesifik.
Setiap unit berperan untuk menyelesaikansebagian dari instruksi-intruksi berikut  : Instruction fetch, decode, operand address calculation, operand fetch, execute dan storeresult.
Dalam proses di atas terkadang sering terjadi kendala/conflict seperti:
  • Terjadinya pause (Pi), karena adanya data conflict dalam program tersebut
  • Terjadinya data error dikarenakan banyaknya proses yang dilakukan bersamaan
  • Terjadinya pengambilan data secara bersamaan, sehingga salah satu proses tertunda
  • Terjadinya penumpukan data di salah satu intruksi sehingga ada beberapa proses yg ditunda
  • Dengan terjadinya conflict tadi, speed-up yang diperoleh menjadi lebih kecil (lambat)dibandingkan dengan tanpa conclict.
Pengertian RISC
RISC (Redue instruction Set Computer) atau komputasi set instruksi yang disederhanakan merupakan sebuah arsitektur komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusiyang paling sederhana. Arsitektur ini digunakan pada komputer dengan kinerja tinggi, seperti komputer vector. Desain ini juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor intel
960 itanium (IA64) dari intel coorporation. Selain itu RISC juga umum dipakai pada Avanced RISC Machine (ARM) dan StrongARM.

Sifat-sifat RISC
  1. Semua atau setidak-tidaknya sebagian besar (80%) instruksi harus dieksekusi dalam satu siklus clock.
  2. Semua instruksi harus memiliki satu ukuran standar, yaitu sama dengan ukuran kata dasar (basic word length).
  3. Jumlah jenis instruksinya harus kecil, tidak melebihi 128.
  4. Jumlah format instruksinya harus kecil, tidak melebihi kira-kira 4.
  5. Jumlah adddressing mode harus kecil, tidak melebihi kira-kira 4.
  6. Akses ke memory hanya dilakukan dengan instruksi load dan store.
  7. Semua operasi, keciali operasi load dan store merupakan operasi register di dalam CPU.
  8. Memiliki hardwired control unit.
  9. Memiliki relatif banyak register serbaguna internal CPU.
Karakteristik RISC

Arsitektur RISC memiliki beberapa karakteristik, diantaranya:
  • Instruksi berukuran tunggal.
  • Ukuran yang umum adalah 4 byte.
  • Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah.
  • Tidak terdapat pengalamatan tak langsung.
  • Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika
Kelebihan RISC
  • Instruksi mesin yang kompleks seringkali sulit digunakan karena kompiler harus menemukan kasus-kasus yang sesuai dengan konsepnya.
  • Arsitektur RISC yang mendasari Power PC memiliki kecenderungan lebih menekankan pada referensi register dibanding referensi memori, dan referensi register memerlukan bit yg lebih sedikit.
  • Penggunaan metode pengalamatan dan format instruksi yang lebih sederhana.
Kekurangan RISC
  • Program berukuran lebih besar sehingg membutuhkan memori yang lebih banyak, ini tentunya kurang menghemat sumber daya.
  • Program yang berukuran lebih besar akan menyebabkan menurunnya kinerja, yaitu instruksi yang lebih banyak. Artinya akan lebih banyak bye-byte instruksi yang harus diambil.
  • Pada lingkungan paging akan menyebabkan kemungkinan terjadinya page fault lebih besar.
Referensi :
http://www.academia.edu/9124108/Pengertian_Pipeline
http://www.academia.edu/18365931/Makalah_CISC_and_RISC
https://id.wikipedia.org/wiki/Pipeline
http://sharinginpo.blogspot.co.id/2011/04/pipeline-secara-umum.html
https://id.wikipedia.org/wiki/RISC
https://imambakti18.wordpress.com/penjelasan-risc-dan-pipelining-risc/

Arsitektur Family Computer IBM PC

Arsitektur Family Computer IBM PC

IBM (International Business Machines) merupakan sebuah perusahaan hardware yang mengembangkan software – software yang sudah ada seperti UNIX dan WINDOWS. IBM PC diperkenalkan pada 12 Agustus 1981, dan “dipensiunkan” pada tanggal 2 April 1987.
  1. Family IBM PC & Turunannya
IBM PC memiliki beberapa keluarga, yakni :
  • IBM 4860 PCjr
  • IBM 5140 Convertible Personal Computer (laptop)
  • IBM 5150 Personal Computer (PC yang asli)
  • IBM 5155 Portable PC (sebenarnya merupakan PC XT yang portabel)
  • IBM 5160 Personal Computer/eXtended Technology
  • IBM 5162 Personal Computer/eXtended Technology Model 286 (sebenarnya merupakan PC AT)
  • IBM 5170 Personal Computer/Advanced Technology

  1. Konfigurasi Mikrokomputer Dasar
Micro Computer (Mikro Komputer) disebut juga dengan nama personal computer (komputer personal) . ukuran main memory komputer mikro sekarang berkisar dari 16 MB sampai lebih dari 128 MB, dengan konfigurasi operand register 8 bit, 16 bit, atau 32 bit. Kecepatan komputer mikro sekarang berkisar 200 Mhz sampai dengan 500 Mhz.Komputer mikro umumnya adalah single-user (pemakainya tunggal), yaitu satu komputer hanya dapat digunakan untuk satu pemakai saja untuk tiap saat.
– Chipset adalah set dari chip yang mendukung kompatibel yang mengimplementasikan berbagai fungsi tertentu seperti pengontrol interupt, pengontrol bus dan timer.
– Chip khusus yang di sebut koprosesor yang beroperasi bersama dengan CPU guna         meningkatkan falitasny
  1. Komponen IBM PC
– Sistem kontrol BUS : Pengontrol BUS, Buffer Data, dan Latches Alamat
– Sistem kontrol interuppt : Pengontrol Interuppt
– Sistem kontrol RAM & ROM : Chip RAM & ROM, Decoder Alamat, dan Buffer
– Sistem kontrol DMA : Pengontrol DMA
– Timer : Timer Interval Programmable
– Sistem kontrol I/O : Interface Paralel Programmable

     4. Sistem Software

System software adalah abstrak, tidak memiliki bentuk fisik. Software tidak dibatasi oleh material serta tunduk pada hukum-hukum fisika atau oleh proses-proses manufaktur. Pengembangan software serta pengelolaan proyek pengembangan software adalah sulit karena kenyataan-kenyataan sebagai berikut :
  • Kompleks, sehingga sulit untuk dipahami
  • Tidak tampak, maka pengukuran kualitas software agak sulit dilakukan dan sulit melacak kemajuan pengembangannya
  • Mudah berubah, karena mudah untuk dimodifikasi namun kita sulit sekali melihat terlebih dahulu konsekuensi dari perubahan-perubahan yang dilakukan.
Software komputer adalah produk yang dihasilkan melalui serangkaian aktivitas proses rekayasa atau pengembangan, yang menghasilkan aktivitas berupa:
  • Dokumen-dokumen yang menspesifikasikan program yang hendak dibangun
  • Program yang dieksekusi komputer
  • Dokumen yang menjelaskan program dan cara kerjanya program
System software :
  • Penetapan Alamat Port I/O
  • Penetapan Vector Interrupt
  • ROM BIOS
  • Penetapan Alamat Memori
5. Manfaat Arsitektural Arsitek Komputer

Ada empat ukuran pokok yang menentukan keberhasilan arsitektur, yaitu manfaat arsitekturalnya yaitu:
·         Aplicability
·         Maleability
·         Expandibility
·         Comptible
Kinerja Sistem Untuk mengukur kinerja sistem, ada serangkaian program yang standard yang dijalankan yang biasa di sebut Benchmark pada komputer yang akan diuji.

Ukuran Kinerja CPU:
·       MIPS (Million Instruction PerSecond)
·       MFLOP (Million Floating Point PerSecond)
·       VUP (VAX Unit of Performance)

Ukuran Kinerja I/O Sistem:
·      Operasi Bandwith
·      Operasi I/O Perdetik

Ukuran Kinerja Memori:
·           Memoy Bandwith
·           Waktu Akses Memori
·           Ukuran Memori  
·           Biaya Sistem

Biaya dapat diukur dalam banyak cara diantaranya:
·                     Reliabilitas
·                     Kemudahan Perbaikan
·                     Konsumsi daya
·                     Berat
·                     Kekebalan
·                     Interface Sistem Software

Referensi
https://salahh.blogspot.co.id/2011/12/ibm-pc-keluarganya.html
https://id.wikipedia.org/wiki/IBM_PC
https://www.extremetech.com/computing/92640-ibm-personal-computer-its-30-year-legacy-slideshow
http://icikomputer.blogspot.co.id/2015/09/arsitektur-famili-komputer-ibm.html

Unit I/O

UNIT INPUT OUTPUT

Unit Input Output atau yang lebih dikenal dengan I/O  merupakan bagian dari  sistem mikroprosesor yang bekerja menjembatani mikroprosesor dengan peralatan I/O seperti keyboard, printer, monitor, mouse, dan sebagainya. I/O umumnya bersifat dapat diprogram (programmable).

1.Unit Input Output

Selain CPU dan Unit Memori, Unit Input Output (I/O) merupakan komponen pokok dalam sebuah sistem mikroprosesor. Sistem mikroprosesor memerlukan unit I/O untuk menyajikan proses dan hasil pengolahan CPU. Unit I/O bekerja sebagai penghubung antara CPU dengan alat-alat input seperti keypad, keyboard, mouse dan juga sebagai penghubung dengan alat output seperti monitor, printer dan sebagainya. Unit I/O juga bekerja sebagai saluran komunikasi antara CPU dengan sistem diluar. Biasanya untuk berkomunikasi keluar unit I/O yang digunakan dalam sistem mikroprosesor adalah jenis I/O serial. 

Monitor sebagai salah satu alat output digunakan untuk menyajikan proses dan hasil pengolahan sebuah komputer. Monitor dalam sistem mikroprosesor semula berfungsi hanya sebagai umpan balik bagi user. Tetapi sekarang telah berkembang dimana lewat monitor sebuah komputer bekerja menerima masukan karakter. Sebenarnya jika keseluruhan proses dan hasil pengolahan CPU telah diyakini kebenarannya bisa saja sebuah komputer dioperasikan tanpa monitor. Akan tetapi karena proses kerja komputer saat ini telah berkembang dalam ukuran data yang besar maka sangat sulit bekerja dengan komputer tanpa monitor. Keberadaan monitor dalam sistem mikroprosesor menjadi mutlak diperlukan. Monitor sebuah komputer dapat berupa sebuah indikator lampu LED, seven segment, LCD, atau monitor tabung CRT.

Untuk mencetak hasil pengolahan data dalam sebuah komputer diperlukan printer. Printer bekerja menghasilkan cetakan berupa hardcopy. Peralatan output sejenis lainnya yang serupa dengan printer adalah plotter. Plotter digunakan untuk mencetak gambar dengan ukuran yang lebih besar dan dengan berbagai jenis warna. Saat ini peralatan cetak berbasis komputer sudah semakin canggih disediakan di pusat-pusat photo copy.

Informasi di luar CPU harus diakses sebagai data masukan. Seperti entri input dari keyboard, mouse, atau beberapa jenis alat input seperti kamera dan sebagainya. Setiap tombol yang ditekan pada keyboard harus ada mekanisme membaca dan mememorikan kode-kode tombol. Demikian juga dengan berbagai jenis input yang lain seperti mouse, scanner, atau dari berbagai jenis sensor yang digunakan dalam sistem kendali. Begitu diproses informasi harus disajikan ke monitor sehingga pengguna komputer mendapat kejelasan baik secara visual atau audio terhadap interaksi kerja yang sedang dilaksanakan. Disinilah peran monitor dan sound diperlukan. 

Perkembangan mikroelektronika telah mendukung perkembangan I/O dari unprogrammable ke programmable sistem. I/O semula bekerja tetap dengan perangkat hardware semata tanpa program (unprogrammable). I/O semacam ini fungsinya menjadi terbatas dan tidak fleksibel. Programmable  I/O dikembangkan untuk memberi jawaban kelemahan- kelemahan  unprogrammable I/O. Dengan programmable  I/O sistem mikroprosesor menjadi sangat fleksibel. Sebelum ada program sebuah programmable I/O belum membentuk format fungsi port. Apakah sebuah port sebagai input atau output. Fungsi port terbentuk setelah ada inisialisasi. Inisialisasi adalah proses dimana sebuah program kecil bekerja membentuk fungsi port apakah sebagai masukan, keluaran, atau dua arah. Inisialisasi dilakukan  diawal pemakaian melalui program inisialisasi Setelah program inisialisasi bekerja baru I/O memiliki format fungsi khusus.  Port I/O bekerja menjembatani CPU dengan alat input dan alat output.

Beberapa komponen I/O terprogram yang sangat  populer  dalam dunia sistem mikroprosesor adalah Z-80 PIO dan PPI 8255. Berdasarkan pola aliran data pada I/O dapat digolongkan menjadi dua yaitu I/O Paralel I/O Serial. 

I/O Paralel

I/O paralel adalah jenis I/O yang mengalihkan data pada setiap port saluran secara paralel. Alih data secara paralel bekerja mengalihkan data secara serempak dari D0 sampai dengan D7. Ada sejumlah saluran pengalir data yang disebut dengan Port. Biasanya setiap port terdiri dari 8 bit saluran. Setiap port paralel dapat diprogram fungsi dan arah aliran data yang dibutuhkan. Port paralel menyediakan keuntungan pada kecepatan akses karena data ditransmisikan secara simultan. Berikut dibahas dua jenis I/O paralel yang sangat populer digunakan di lapangan yaitu Z-80 PIO dan PPI 8255

I/O SERIAL

I/O serial adalah unit masukan keluaran yang bekerja atas dasar prinsip urut/seri. Dalam hal ini diperlukan proses konversi dari data paralel ke bentuk serial dan sebaliknya .

Sistem I/O (Input/Output)

Pengertian Sistem Input Dan Output Komputer I/O    
     Sistem Input Dan Output Komputer atau sering juga disingkat dengan I/O adalah suatu mekanisme pengiriman data secara bertahap dan terus menerus melalui suatu aliran data dari proses ke peranti (begitu pula sebaliknya). Fungsi I/O pada dasarnya adalah mengimplementasikan algoritma I/O pada level aplikasi. Hal ini dikarenakan kode apliksi sangat fleksibel, dan bugs aplikasi tidak mudah menyebabkan sebuah sistem crash.
      Agar pembahasan kita tidak melebar keman-mana,mari kita langsung saja ketopik utama pembahasan kita tentang Sistem Input Dan Output Komputer, Silahkan disimak berikut adalah penjabarannya :

Teknik Pengoperasian Perangkat I/O

A.     Perangkat I/O terprogram (programmed I/O)
Merupakan perangkat I/O komputer yang dikontrol oleh program.Contohnya, perintah mesin in, out, move. Perangkat I/O terprogram tidak sesuai, untuk pengalihan data dengan kecepatan tinggi karena dua alasan yaitu:
  • Memerlukan overhead (ongkos) yang tinggi, karena beberapa perintah program harus dieksekusi untuk         setiap kata data yang dialihkan antara peralatan eksternal dengan memori utama.
  • Banyak peralatan periferal kecepatan tinggi memiliki mode operasi sinkron, yaitu pengalihan data dikontrol oleh clock frekuensi tetap, tidak tergantung CPU.

B. Perangkat berkendalikan interupsi (Interrupt I/O)

Interupsi lebih dari sebuah mekanisme sederhana untuk mengkoordinasi pengalihan I/O. Konsep interupsi berguna di dalam sistem operasi dan pada banyak aplikasi kontrol di mana pemrosesan rutin tertentu harus diatur dengan seksama, relatif peristiwa-peristiwa eksternal.
C. DMA (Direct Memory Address)
Direct Memory Access (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.

Kelemahan I/O terprogram dan Interrupt- Driven I/O
• Kelajuan transfer I/O yang tergantung kecepatan operasi CPU.
• Kerja CPU terganggu karena adanya interupsi secara langsung.

Prinsip kerja DMA
• 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.

I/O Terprogram
        Terdapat tiga buah teknik yang dapat digunakan dalam operasi I/O. Pada I/O terprogram, data saling dipertukarkan antara CPU dengan modul I/O. CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, termasuk status perangkat pengindera, pengiriman perintah pembacaan atau penulisan dan pemindahan data. Ketika CPU mengeluarkan perintah ke modul I/O, maka CPU harus menunggu sampai operasi I/O selesai. Apabila CPU lebih cepat dibandingkan modul I/O maka hal ini akan membuang-buang waktu CPU. Dengan menggunakan interrupt driven I/O, CPU mengeluarkan perintah CPU dilanjutkan dengan mengeksekusi instruksi-instruksi lainnya dan diinterupsi oleh modul I/O apabila instruksi-instruksi tersebut telah selesai dilaksanakan. Dengan menggunakan I/O terprogram dan I/O interrupt maka CPU bertanggungjawab atas pengeluaran data dari memori utama untuk keperluan output dan penyimpanan data di dalam memori utama untuk keperluan input. Alternatifnya dikenal sebagai direct memory access(DMA). Dalam mode ini, modul I/O dan main memori saling bertukar data secara langsung tanpa melibatkan CPU.

Contoh Komponen I/O
  1. Perangkat Input
Perangkat input adalah perangkat yang digunakan untuk memasukkan data atau
perintah ke dalam komputer. Peralatan yang hanya berfungsi sebagai alat input dapat
digolongkan menjadi :
  •  Alat input langsung
  •  Alat input tidak langsung
1.  Alat Input langsung
Yaitu alat input yang dimasukan dan langsung diproses oleh alat pemroses, contohnya yaitu:
    Keyboard
    merupakan peranti masukan yang terdiri dari kumpulan huruf, angka dan karakter khusus. Keyboard juga memberikan kemudahan bagi user untuk memberikan perintah yang diperlukan apabila menekan kombinasi antara karakter yang ada pada keyboard dengan tombol-tombol tertentu. 

    Mouse
    Peranti masukan dengan bentuk seperti tikus ini berfungsi untuk memindahkan pointer atau kursor secara cepat

    Scanner
    berfungsi untuk menyalin (copy) file atau dokumen baik berupa teks atau gambar menjadi teks atau gambar digital.

    Barcode
    berfungsi untuk membaca suatu kode yang berbentuk kotak atau garis-garis vertikal tipis dan tebal yang selanjutnya diterjemahkan dalam bentuk angka-angka. Biasanya kode barcode ini ditemukan pada kemasan makanan, minuman, buku, alat elektronik serta produk-produk. Biasanya barcode ini memudahkan kasir yang ada di toko swalayan atau departemen store untuk mengidentifikasi suatu barang yang dibeli.

    2.  Alat Input tidak langsung

    Yaitu alat input yang dimasukan melalui media tertentu sebelum suatu input diproses oleh alat pemroses. Contohnya yaitu: 

    a.      Key To Card
    Key to card atau keypunch adalah salah satu alat masuka paling tua, alat ini memungkinkan operator memasukan data yang akan dipindah terlebih dahulu ke dalam bentuk media punched card. Bila digunakan beberapa unit alat keypunch,maka dapat dilakukan pembagian tugas merubah data dari sumber data ke dalam bentuk kartu plong.kumpulan kartu plong selanjutnya dapat dibacakan ke komputer untuk diproses melalui card reader

    b.      Key To Tape
    Alat ini memungkinkan operator untuk merekamkan data ke media penyimpanan luar pita magnetic sebelum diproses ke CPU. Data yang tersimpan di pita magnetic diproses ke CPU dapat dibacakan ke computer lewat alat pembaca pita magnetic

    c.       Key To Disk
    Seperti key to card, maka key to disk memungkinkan operator untuk merekam data lebih dulu ke media simpanan luar, misalnya disket. Data yang disimpan dalam disket dibaca di CPU lewat Flopy Disk Drive.


          2.  Perangkat Proses

    “Perangkat proses yaitu perangkat komputer yang berfungsi untuk memproses atau mengelola data yang masuk sehingga menjadi suatu informasi yang diinginkan”.

    a. Cpu (Central Procesing Unit)
           merupakan tempat pemrosesan instruksi – instruksi program biasa disebut microprocessor terdiri dari :
    Ø  Unit kendali (control unit)
    Ø  Unit aritmatika dan logika (aritmetic and logic unit) alu
    Ø  Simpanan (register)

    b. Main Memory
    -       Register
    -       Main memory
    a.      Ram (random access memory) adalah memory yang dapat diakses  dan bersifat volatile
    b.      Rom ( read only memory)  adalah memory yang hanya dapat dibaca dan bersifat non volatile
    -       Simpanan luar (external memory)


          3. Perangkat Output

    Output Device yaitu perangkat keras yang berfungsi untuk mengeluarkan data yang telah diproses sehingga menjadi suatu informasi”.
    Yang termasuk perangkat output diantaranya :
    Alat keluaran juga dapat berbentuk :      
    1.      Hard copy device
    2.      Soft copy device

    a.      Hard Copy Device
    Merupakan alat keluaran yang digunakan untuk mencetak tulisan, grafik, atau gambar pada media pencetak. Alat hard copy device yang umum diperguanakan adalah printer. Selain itu juga dikenal plotter, yaitu alat cetak yang mempunyai kemampuan mencetak grafik atau gambar dengan baik, biasanya menggunakan pen plotter.

    b.      Soft Copy Device
    Merupakan alat yang digunakan untuk menampilkan tulisan, image, dan suara pada media soft (lunak) yang berupa sinyal elektronik. Contoh soft copy device adalah video display (monitor), flat panel display (Liquid Crystal Display), dan speaker.

    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


          Jenis-jenis Perangkat I/O
    Secara umum, terdapat beberapa jenis perangkat I/O, seperti :
    -         perangkat penyimpanan (disk, tape)
    -         perangkat transmisi (network card, modem) dan
    -         perangkat antarmuka dengan pengguna (screen, keyboard, mouse).
     Perangkat tersebut dikendalikan oleh instruksi I/O. Alamat-alamat yang dimiliki oleh perangkat akan digunakan oleh direct I/O instruction dan memory-mapped I/O. Beberapa konsep yang umum digunakan ialah port, bus (daisy chain/shared direct access), dan pengendali (host adapter). Port ialah koneksi yang digunakan oleh perangkat untuk berkomunikasi dengan mesin. Bus ialah koneksi yang menghubungkan beberapa perangkat menggunakan kabel-kabel. Pengendali ialah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan perangkat. Langkah yang ditentukan untuk perangkat ialah command-ready, busy, dan error. Host mengeset command-ready ketika perintah telah siap untuk dieksekusi oleh pengendali. Pengendali mengeset busy ketika sedang mengerjakan sesuatu, dan men-clear busy ketika telah siap untuk menerima perintah selanjutnya. Error diset ketika terjadi kesalahan.

    Modul I/O (Input/Output)

           Adalah interface atau central switch untuk mengendalikan satu atau lebih peripheral atau perangkat input output.
    Konektor mekanis berisi fungsi logik untuk komunikasi antara bus dan peripheral..
    Tidak hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus computerModul I/O adalah suatu komponen dalam sistem komputer yang Bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan juga,Bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan memori utama ataupun dengan register – register CPU termasuk internal interface(antarmuka internal) dengan komputer (CPU dan memori utama) dan perangkat eksternalnya untuk menjalankan fungsi – fungsi pengontrolan


    Perangkat Eksternal

           Mesin komputer akan memiliki nilai apabila bisa berinteraksi dengan dunia luar. Lebih dari itu, komputer tidak akan berfungsi apabila tidak dapat berinteraksi dengan dunia luar. Ambil contoh saja, bagaimana kita bisa menginstruksikan CPU untuk melakukan suatu operasi apabila tidak ada keyboard. Bagaimana kita melihat hasil kerja sistem komputer bila tidak adamonitor.Keyboard dan monitor tergolong dalam perangkat eksternal komputer.
    Perangkat eksternal yang dihubungkan modul I/O seringkali disebut perangkat peripheral, atau untuk mudahnya disebut peripheral.
          Sistem komputer tidak akan berguna tanpa adanya peralatan input dan output. Operasi-operasi I/O diperoleh melalui sejumlah perangkat eksternal yang menyediakan alat untuk pertukaran data di antara lingkungan luar dengan komputer. Perangkat eksternal dihubungkan dengan komputer oleh suatu link dengan modul I/O
    Link digunakan untuk pertukaran kontrol, status, dan data antara modul I/O sering kali disebut sebagai perangkat peripheral, atau untuk mudahnya disebut peripheral.


    Klasifikasi

    Secara umum perangkat eksternal diklasifikasikan menjadi 3 kategori :
    1. Human Readable
    yaitu perangkat yang berhubungan dengan manusia sebagai pengguna komputer.
    Cocok untuk berkomunikasi dengan pengguna komputer.
    Contohnya: monitor, keyboard, mouse, printer, joystick, disk drive.
    2. Machine readable
    yaitu perangkat yang berhubungan dengan peralatan. Biasanya berupa modul sensor
    dan tranduser untuk monitoring dan kontrol suatu peralatan atausistem.
    cocok untuk berkomunikasi dengan peralatan.
    3. Communication
    yaitu perangkat yang berhubungan dengan komunikasi jarak jauh.Misalnya: NIC dan
    modem. cocok untuk berkomunikasi dengan perangkat jarak jauh.
    Interface ke modul I/O adalah dalam bentuk signal-signal control, status dan data.

    Saluran I/O dan Processor
    Proses yang terjadi pada modul I/O masih melibatkan CPU secara langsung, berimplikasi pada :

    • 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

    Klasifikasi berdasar arah data



    Saluran I/O

    Pada kebanyakan sistem komputer, CPU tidak dibebani menangani tugas yang berhubungan dengan I/O. Tetapi tanggung jawab untuk kontrol peralatan diserahkan pada prosesor I/O, yang dikenal sebagai saluran I/O (I/O channel).Saluran I/O itu sendiri merupakan prosesor yang sudah diprogram. Program-program yang di-execute ini disebut channel program. Channel program ini menentukan operasi, yang diperlukan untuk akses peralatan dan mengontrol jalur data (data pathway).

    MACAM-MACAM SALURAN

    1.  Selector Channel
    Dapat mengatur aliran data antara memori utama dengan sebuah peralatan pada saat tersebut.Karena saluran merupakan processor-processor yang cepat maka saluran selektor biasanya hanya menggunakan peralatan I/O dengan kecepatan tinggi, sepertidisk.Penggunaan peralatan dengan kecepatan rendah, misal card reader.
    2.  Multiplexor Channel
    Dapat mengatur aliran data antara memori utama dengan beberapa peralatan.Saluran Multiplexor lebih efektif bila menggunakan peralatan dengan kecepatan rendah, dibandingkan dengan selector channel. Dengan saluran multiplexor, beberapa peralatan dapat diaktifkan secara serentak, tetapi saluran harus melengkapi saluran program untuk satu peralatan sebelum memulai dengan saluran program lain
    3. Block Multiplexor Channel
    Mengatur aliran data ke berbagai peralatan. Block Multiplexor Channel dapat mengeksekusi satu instruksi dari saluran program untuk satu peralatan, kemudian dapat mengalihkan instruksi-instruksi dari saluran program itu ke peralatan yang lain.

    MACAM-MACAM DEVICE 

    1.  Dedicated Device
    Digunakan untuk pengaksesan oleh satu orang pada setiap saat.
    Contoh : Terminal.
    2.  Shared Device
    Digunakan untuk pengaksesan oleh banyak pemakai secara bersamaan.
    Contoh : Disk.
    Aktifitas I/O untuk shared device adalah sangat kompleks dibanding aktifitas I/O pada dedicated device. Dua fungsi yang sangat penting dari shared device adalah alokasi tempat dan pemberian akses yang tepat.

    AKTIVITAS SALURAN
    Tujuan dari saluran I/O adalah sebagai perantara antara CPU-main memory dengan unit pengontrol penyimpan.CPU berkomunikasi dengan saluran melalui beberapa perintah yang sederhana.

    Beberapa saluran akan memberi perintah :

    -  Test I/O, untuk menentukan apakah jalur (pathway) yang menuju peralatan sedang sibuk.
    -  Start I/O, pada peralatan tertentu.
    - Halt I/O, pada peralatan tertentu.
    Saluran biasanya berkomunikasi dengan CPU melalui cara interupsi. Interupsi akan terjadi, jika keadaan error terdeteksi, misalnya instruksi CPU yang salah atau jika aktifitas I/O telah diakhiri.
    Jika interupsi terjadi, kontrol akan bercabang melalui rutin pengendali interupsi (interrupt-handler routine), dimana kontrol akan menentukan penyebab dari interupsi, melakukan kegiatan yang tepat, kemudian mengembalikan kontrol pada pemanggil (caller).


    Sumber :