Sabtu, 25 Februari 2012

Modul io BAB II


BAB II
PEMBAHASAN


1.       Sistem Bus

Komputer tersusun atas beberapa komponen penting seperti CPU, memori, perangkat I/O. Setiap komponen saling berhubungan membentuk kesatuan fungsi. Sistem bus adalah penghubung bagi keseluruhan komponen komputer dalam menjalankan tugasnya. Transfer data antar komponen komputer sangatlah mendominasi kerja suatu komputer. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi CPU melalui perantara bus, begitu juga kita dapat melihat hasil eksekusi melalui monitor juga menggunakan sistem bus.
Era saat ini memerlukan saluran data atau bus yang handal. Kecepatan komponen penyusun komputer tidak akan berarti kalau tidak diimbangi kecepatan dan manajemen bus yang baik.  Trend  mikroprosesor  saat ini adalah melakukan pekerjaan secara paralel dan program dijalankan secara multitasking menuntut sistem bus tidak hanya lebar tapi juga cepat.
Dalam pembahasan ini akan kita pelajari bagaimana interkoneksi komponen sistem komputer dalam menjalankan fungsinya, interkoneksi bus dan juga pertimbangan – pertimbangan perancangan bus. Bagian akhir akan disajikan contoh – contoh bus yang berkembang saat ini.
1.1 Struktur Interkoneksi
Kompulan lintasan atau saluran berbagai modul disebut struktur interkoneksi. Rancanagan struktur interkoneksi sangat bergantung pada jenis dan karakteristik pertukaran datanya.
Gambar 7.1 menyajikan jenis pertukaran data yang diperlukan oleh modul – modul penyusun komputer :
·         Memori :
Memori umumnya terdiri atas N word memori dengan panjang yang sama. Masing – masing word diberi alamat numerik yang unik (0, 1, 2, …N-1). Word dapat dibaca maupun ditulis pada memori dengan kontrol Read dan Write. Lokasi bagi operasi dispesifikasikan oleh sebuah alamat.
·         Modul I/O :
Operasi modul I/O adalah pertukaran data dari dan ke dalam komputer. Berdasakan pandangan internal,  modul  I/O  dipandang  sebagai  sebuah  memori  dengan  operasi  pembacaan  dan penulisan. Seperti telah dijelaskan bahwa modul I/O dapat mengontrol lebih dari sebuah perangkat peripheral. Modul I/O juga dapat mengirimkan sinyal interrupt.
·           CPU :
CPU berfungsi sebagai pusat pengolahan dan eksekusi data berdasarkan routine – routine program yang diberikan padanya. CPU mengendalikan seluruh sistem komputer sehingga sebagai konsekuensinya memiliki koneksi ke seluruh modul yang menjadi bagian sistem komputer.
































 
Gambar 7.1 Modul – modul komputer

Dari jenis pertukaran data yang diperlukan modul – modul komputer, maka struktur interkoneksi harus mendukung perpindahan data berikut :
·            Memori ke CPU : CPU melakukan pembacaan data maupun instruksi dari memori.

·           CPU ke Memori : CPU melakukan penyimpanan atau penulisan data ke memori.

·           I/O ke CPU : CPU membaca data dari peripheral melalui modul I/O.

·           CPU ke I/O : CPU mengirimkan data ke perangkat peripheral melalui modul I/O.

·           I/O ke Memori atau dari Memori : digunakan pada sistem DMA.

Sampai saat ini terjadi perkembangan struktur interkoneksi, namun yang banyak digunakan saat ini adalah sistem bus. Sistem bus ada yang digunakan secara tunggal dan ada secara jamak, tergantung karakteristik sistemnya.
1.2 Interkoneksi Bus

Bus merupakan lintasan komunikasi yang menghubungkan dua atau lebih komponen komputer. Sifat penting dan merupakan syarat utama bus adalah media transmisi yang dapat digunakan bersama oleh sejumlah perangkat yang terhubung padanya.
Karena  digunakan  bersama,  diperlukan  aturan  main  agar  tidak  terjadi  tabrakan  data  atau kerusakan data yang ditransmisikan. Walaupun digunakan bersama namun dalam satu waktu hanya ada sebuah perangkat yang dapat menggunakan bus.
         1.2.1 Struktur Bus

Sebuah bus biasanya terdiri atas beberapa saluran. Sebagai contoh bus data terdiri atas 8 saluran sehingga  dalam  satu  waktu  dapat  mentransfer  data  8  bit.  Secara  umum fungsi  saluran  bus dikatagorikan dalam tiga bagian, yaitu saluran data, saluran alamat dan saluran kontrol, seperti terlihat pada gambar 7.2.













 
Gambar 7.2 Pola interkoneksi bus

Saluran  data  (data  bus)  adalah  lintasan  bagi  perpindahan  data  antar  modul. Secara kolektif lintasan ini disebut bus data. Umumnya jumlah saluran terkait dengan panjang word, misalnya 8, 16, 32 saluran dengan tujuan agar mentransfer word dalam sekali waktu. Jumlah saluran dalam bus data dikatakan lebar bus, dengan satuan bit, misal lebar bus 16 bit.
Saluran alamat (address bus) digunakan untuk menspesifikasi sumber dan tujuan data pada bus data. Saluran ini digunakan untuk mengirim alamat word pada memori yang akan diakses CPU. Juga digunakan untuk saluran alamat perangkat modul komputer saat CPU mengakses suatu modul. Perlu diketahui, semua peralatan yang terhubung dengan sistem komputer, agar dapat diakses harus memiliki alamat. Semisal mengakses port I/O, maka port I/O harus memiliki alamat hardware-nya.
Saluran kontrol (control bus) digunakan untuk mengontrol bus data, bus alamat dan seluruh modul yang ada. Karena bus data dan bus alamat digunakan oleh semua komponen maka diperlukan suatu mekanisme kerja yang dikontrol melalui bus kontrol ini. Sinyal – sinyal kontrol terdiri  atas  sinyal  pewaktuan  dan  sinyal  –  sinyal  perintah.  Sinyal  pewaktuan  menandakan validitas data dan alamat, sedengkan sinyal perintah berfungsi membentuk suatu operasi. Secara umum saluran kontrol meliputi :
·            Memory Write, memerintahkan data pada bus akan dituliskan ke dalam lokasi alamat.

·            Momory Read memerintahkan data dari lokasi alamat ditempatkan pada bus data.

·            I/O Write, memerintahkan data pada bus dikirim ke lokasi port I/O.

·            I/O Read, memerintahkan data dari port I/O ditempatkan pada bus data.

·            Transfer ACK, menunjukkan data telah diterima dari bus atau data telah ditempatkan pada bus.
·            Bus Request, menunjukkan bahwa modul memerlukan kontrol bus.

·            Bus Grant, menunjukkan modul yang melakukan request telah diberi hak mengontrol bus.
·            Interrupt Request, menandakan adanya penangguhan interupsi dari modul.

·            Interrupt ACK, menunjukkan penangguhan interupsi telah diketahui CPU.
·            Clock, kontrol untuk sinkronisasi operasi antar modul.
·            Reset, digunakan untuk menginisialisasi seluruh modul.

Secara fisik bus adalah konduktor listrik paralel yang menghubungkan modul – modul. Konduktor ini biasanya adalah saluran utama pada PCB motherboard dengan layout tertentu sehingga didapat fleksibilitas penggunaan. Untuk modul I/O biasanya dibuat slot bus yang mudah dipasang dan dilepas, seperti slot PCI dan ISA. Sedangkan untuk chips akan terhubung melalui pinnya.
Prinsip operasi bus adalah sebagai berikut. Operasi pengiriman data ke modul lainnya :

1.      Meminta penggunaan bus.

2.      Apabila telah disetujui, modul akan memindahkan data yang diinginkan ke modul yang dituju.
Operasi meminta data dari modul lainnya :

1.      Meminta penggunaan bus.

2.      Mengirim request ke modul yang dituju melalui saluran kontrol dan alamat yang sesuai.
3.      Menunggu modul yang dituju mengirimkan data yang diinginkan.

1.2.2 Hierarki Multiple Bus

Bila  terlalu  banyak modul  atau  perangkat  dihubungkan  pada  bus  maka  akan  terjadi penurunan kinerja, yang disebabkan oleh :
·             Semakin besar delay propagasi untuk mengkoordinasikan penggunaan bus.

·             Antrian penggunaan bus semakin panjang.

·             Dimungkinkan habisnya kapasitas transfer bus sehingga memperlambat data.

Antisipasi dan solusi persoalan di atas adalah penggunaan bus jamak yang hierarkis. Modul – modul dikalasifikasikan berdasarkan kebutuhan terhadap lebar dan kecepatan bus. Bus biasanya terdiri atas bus lokal, bus sistem, dan bus ekspansi. Gambar 8.3 dan gambar 8.4 berikut menyajikan contoh hierarki penggunaan bus jamak.
Terlihat pada gambar 7.3 dan gambar 7.4, Prosesor, cache memori dan memori utama terletak pada bus tersendiri pada level tertinggi karena modul – modul tersebut memiliki karakteristik pertukaran data yang tinggi. Pada arsitektur berkinerja tinggi, modul – modul I/O diklasifikasikan menjadi dua, yaitu yang memerlukan transfer data berkecepatan tinggi dan berkecepatan rendah. Modul dengan transfer data berkecepatan tinggi disambungkan dengan bus berkecepatan tinggi pula, sedangkan modul yang tidak memerlukan transfer data cepat disambungkan pada bus ekspansi.
Keuntungan hierarki bus jamak kinerja tinggi pada gambar 7.4 adalah bus berkecepatan tinggi lebih terintegrasi dengan prosesor. Perubahan pada arsitektur prosesor tidak begitu mempengaruhi kinerja bus.

Gambar 7.3 Arsitektur bus jamak tradisional



Gambar 7.4 Arsitektur bus jamak kinerja tinggi

1.2.3 Elemen Perancangan Bus

Saat ini terdapat banyak implementasi sistem bus, tetapi parameter dasar perancangan bus dapat diklasifikasikan berdasarkan jenis (dedicated dan mulitiplexed), metode arbitrasi (tersentralisasi dan terdistribusi), timing (sinkron dan tak sinkron), lebar bus (lebar address dan lebar data) dan jenis transfer datanya(read, write, read-modify-write, read-alter-write, block).
Tujuan yang hendak dicapai dalam perancangan adalah bagaimana bus dapat cepat menghantarkan data dan efisiensinya tinggi. Intinya karakteristik pertukaran data dan modul yang terkait merupakan pertimbangan utama dalam perancangan bus.

1.3  Jenis Bus

Berdasar  jenis  busnya,  bus  dibedakan  menjadi  bus  yang khusus  menyalurkan  data  tertentu, misalnya paket data saja, atau alamat saja, jenis ini disebut dedicated bus. Namun apabila bus dilalukan informasi yang berbeda baik data, alamat maupun sinyal kontrol dengan metode multipleks data maka bus ini disebut multiplexed bus.
Keuntungan mulitiplexed bus adalah hanya memerlukan saluran sedikit sehingga dapat menghemat tempat, namun kerugiannya adalah kecepatan transfer data menurun dan diperlukan mekanisme yang komplek untuk mengurai data yang telah dimulitipleks.
Saat ini yang umum, bus didedikasikan untuk tiga macam, yaitu bus data, bus alamat dan bus kontrol.

1.4  Metode Arbitrasi

Terdapat dua macam metode arbitrasi, yaitu tersentral dan terdistribusi. Pada metode tersentral diperlukan pengontrol bus sentral atau arbiter yang bertugas mengatur penggunaan bus oleh modul. Arbiter bisa suatu modul atau bagian fungsi CPU. Sedangkan dalam metode terdistribusi, setiap modul memiliki logika pengontrol akses (access control logic) yang berfungsi mengatur  pertukaran  data  melalui  bus.  Kedua  metode  arbitrasi  intinya  menugaskan  suatu perangkat bisa modul I/O ataupun CPU bertindak sebagai master kontrol pertukaran.


1.5  Timing

Metode pewaktuan sinkron terjadinya event pada bus ditentukan oleh sebuah pewaktu (clock). Sebuah transmisi 1 – 0 disebut siklus waktu atau siklus bus dan menentukan besarnya slot waktu. Semua perangkat modul pada bus dapat membaca atau pengetahui siklus clock. Biasanya satu siklus untuk satu event. Model ini mudah diimplementasikan dan cepat namun kurang fleksibel menangani peralatan yang beda kecepatan operasinya. Biasanya digunakan untuk modul
– modul tertentu yang sudah jelas karakteristiknya. Contoh pewaktuan sinkron disajikan pada gambar 7.5.

Gambar 7.5 Contoh pewaktuan sinkron

Dalam pewaktuan asinkron memungkinkan kerja modul yang tidak serempak kecepatannya. Dalam pewaktuan asinkron, event yang terjadi pada bus tergantung event sebelumnya sehingga diperlukan sinyal – sinyal validasi untuk mengidentifikasi data yang ditransfer. Sistem ini mampu menggabungkan kerja modul – modul yang berbeda kecepatan maupun teknologinya, asalkan aturan transfernya sama. Gambar 7.6 memperlihatkan pewaktuan asinkron.


Gambar 7.6 Contoh pewaktuan asinkron
1.6  Lebar Bus
Lebar bus sangat mempengaruhi kinerja sistem komputer. Semakin lebar bus maka semakin besar data yang dapat ditransfer sekali waktu. Semakin besar bus alamat, akan semakin banyak range lokasi yang dapat direfensikan.
1.7  Jenis Transfer Data
Dalam sistem komputer, operasi transfer data adalah pertukaran data antar modul sebagai tindak lanjut atau pendukung operasi yang sedang dilakukan. Saat operasi baca (read), terjadi pengambilan data dari memori ke CPU, begitu juga sebaliknya pada operasi penulisan maupun operasi – operasi kombinasi. Bus harus mampu menyediakan layanan saluran bagi semua operasi komputer.

1.8   Contoh Bus
Banyak  perusahaan  yang  mengembangkan  bus  –  bus  antarmuka  terutama  untuk perangkat peripheral. Diantara jenis bus yang beredar di pasaran saat ini adalah PCI, ISA, USB, SCSI, FuturaBus+, FireWire, dan lain – lain. Semua memiliki keunggulan, kelemahan, harga dan teknologi yang berbeda sehingga akan mempengaruhi jenis – jenis penggunaannya.
1.8.1  Bus ISA
Ketika IBM memperkenalkan PC/AT yang berbasiskan CPU 80286, perusahaan ini menghadapi masalah besar. Jika IBM telah memulai sejak awal dan merancang sebuah bus 16 bit yang seluruhnya baru, banyak konsumen potensial akan bergegas membeli mesin tersebut karena tidak ada satupun dari begitu banyak papan plug-in PC yang disediakan oleh para vendor pihak ketiga dapat bekerja dengan menggunakan mesin baru tersebut. Di sisi lain, dengan tetap berpegang pada bus PC dan 20 jalur alamatnya serta 8 jalur data tidak akan memperoleh manfaat dari keunggulan CPU 80286 untuk mengalamatkan 16 M memori dan mentransfer word 16 bit.
Solusi yang dipilih adalah mengembangkan PC. Kartu-kartu plug-in PC memiliki sebuah konektor sisi dengan 62 kontak, tetapi operasi konektor sisi ini tidak menjangkau seluruh papan ini. Solusi PC/AT adalah menempatkan sebuah konektor sisi kedua pada bagian dasar papan tersebut, dekat dengan konektor sisi utama, dan merancang sirkuit AT untuk beroperasi dengan kedua jenis papan ini.
Konektor kedua pada bus PC/AT memiliki 36 jalur. Dari ke-36 jalur ini, 31 disediakan untuk jalur-jalur alamat tambahan, jalur-jalur data tambahan, jalur-jalur interupsi tambahan, serta untuk daya dan ground. Sisanya digunakan untuk mengatasi perbedaan-perbedaan antara transfer 8 bit dan 16 bit.
Industri komputer personal lainnya merespon perkembangan ini dengan mengadopsi standarnya sendiri, bus ISA (Industry Standar Architecture), yang pada dasarnya adalah bus PC/AT yang beroperasi pada 8,33 MHz. Keuntungannya adalah bahwa pendekatan ini tetap mempertahankan kompatibilitas dengan mesin-mesin dan kartu-kartu yang ada. Pendekatan ini juga didasarkan pada sebuah bus yang telah dilisensikan secara bebas oleh IBM kepada banyak perusahaan dalam rangka untuk menjamin bahwa sebanyak mungkin pihak ketiga dapat memproduksi kartu-kartu untuk PC pertama, sesuatu yang kembali menghantui IBM. Setiap PC yang berbasiskan Intel masih menggunakan bus jenis ini, meskipun biasanya juga disertai dengan satu atau lebih bus lain.
1.8.2  Bus PCI
Peripheral Component Interconnect (PCI) adalah bus yang tidak tergantung prosesor dan berfungsi sebagai bus mezzanine atau bus peripheral. PCI memiliki kinerja tinggi untuk sistem I/O berkecepatan tinggi seperti : video adaptor, NIC, disk controller, sound card, dan lain-lain. Standard PCI adalah 64 saluran data pada kecepatan 33 MHz, laju transfer data 264 MB per detik atau 2,112 Gbps. Keunggulan PCI tidak hanya pada kecepatannya saja tetapi murah dengan keping yang sedikit.
Intel mulai menerapkan PCI pada tahun 1990 untuk sistem pentiumnya. Untuk mempercepat penggunaan PCI, Intel mempatenkan PCI bagi domain publik sehingga vendor dapat mengeluarkan produk dengan PCI tanpa royalti.
1.8.3  Bus USB
Semua perangkat peripheral tidak efektif apabila dipasang pada bus berkecepatan tinggi PCI, sedangkan banyak peralatan yang memiliki kecepatan rendah seperti keyboard, mouse, dan printer. Sebagai solusinya tujuh vendor komputer (Compaq, DEC, IBM, Intel, Microsoft, NEC, dan Northern Telecom) bersama-sama merancang bus untuk peralatan I/O berkecepatan rendah. Standard yang dihasilkan dinamakan Universal Standard Bus (USB).
Keuntungan yang didapatkan dan tujuan dari penerapan USB adalah sebagai berikut
1.      Pemakai tidak harus memasang tombol atau jumper pada PCB atau peralatan.
2.      Pemakai tidak harus membuka casing untuk memasang peralatan I/O baru.
3.      Hanya satu jenis kabel yang diperlukan sebagai penghubung.
4.      Dapat mensuplai daya pada peralatan-peralatan I/O.
5.      Memudahkan pemasangan peralatan-peralatan yang hanya sementara dipasang pada komputer.
6.      Tidak diperlukan reboot pada pemasangan peralatan baru dengan USB.
7.      Murah
Bandwidth total USB adalah 1,5 MB per detik. Bandwidth itu sudah mencukupi peralatan I/O  berkecepatan  rendah  seperti  keyboard,  mouse,  scanner,  telepon  digital,  printer,  dan sebagainya. Kabel pada bus terdiri dari 4 kawat, 2 untuk data, 1 untuk power (+5 volt), dan 1 untuk ground. Sistem pensinyalan mentransmisikan sebuah bilangan nol sebagai transisi tegangan dan sebuah bilangan satu bila tidak ada transmisi tegangan.
1.8.4  Bus SCSI
Small Computer System Interface (SCSI) adalah perangkat peripheral eksternal yang dipopulerkan oleh macintosh pada tahun 1984. SCSI merupakan interface standard untuk drive CD-ROM, peralatan audio, hard disk, dan perangkat penyimpanan eksternal berukuran besar. SCSI menggunakan interface paralel dengan 8, 16, atau 32 saluran data.
Konfigurasi SCSI umumnya berkaitan dengan bus, walaupun pada kenyataannya perangkat-perangkat  tersebut  dihubungkan  secara  daisy-chain.  Perangkat  SCSI memiliki  dua buah konektor, yaitu konektor input dan konektor output. Seluruh perangkat berfungsi secara independen dan dapat saling bertukar data misalnya hard disk dapat mem-back up diri ke tape drive tanpa melibatkan prosesor.
Terdapat beberapa macam versi SCSI. SCSI-1 dibuat tahun 1980 memiliki 8 saluran data, dan beroperasi pada kecepatan 5 MHz. Versi ini memungkinkan sampai 7 perangkat dihubungkan secara daisy-chain. SCSI-2 diperkenalkan tahun 1992 dengan spesifikasi 16 atau 32 saluran data pada kecepatan 10 MHz. SCSI-3 yang mendukung kecepatan yang lebih tinggi sampai saat ini masih dalam tahap penelitian.
1.8.5   Bus P1394 / Fire Wire
Semakin pesatnya kebutuhan bus I/O berkecepatan tinggi dan semakin cepatnya prosesor saat ini yang mencapai 1 GHz, maka perlu diimbangi dengan bus berkecapatan tinggi juga. BusSCSI  dan  PCI  tidak  dapat  mencukupi  kebutuhan  saat  ini.  Sehingga  dikembangkan  bus performance tinggi yang dikenal dengan Fire Wire (P1394 standard IEEE).

2.      CPU
CPU merupakan komponen terpenting dari sistem komputer. CPU adalah komponen pengolah data berdasarkan instruksi – instruksi yang diberikan kepadanya.
2.1 Komponen Utama CPU
Dalam mewujudkan fungsi dan tugasnya, CPU tersusun atas beberapa komponen sebagai bagian dari struktur CPU, seperti terlihat pada gambar 3.1 dan struktur detail internal CPU terlihat pada gamber 3.2. CPU tersusun atas beberapa komponen, yaitu :
• Arithmetic and Logic Unit (ALU), bertugas membentuk fungsi – fungsi pengolahan data komputer.   ALU   sering  disebut   mesin   bahasa  (machine  language)  karena  bagian  ini mengerjakan instruksi – instruksi bahasa mesin yang diberikan padanya. Seperti istilahnya, ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki spesifikasi tugas tersendiri.
• Control Unit, bertugas mengontrol operasi CPU dan secara keselurahan mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi – fungsi operasinya.  Termasuk  dalam  tanggung  jawab  unit  kontrol  adalah  mengambil  instruksi  – instruksi dari memori utama dan menentukan jenis instruksi tersebut.
• Registers, adalah media penyimpan internal CPU yang digunakan saat proses pengolahan data. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat diolah ataupun data untuk pengolahan selanjutnya.
• CPU Interconnections, adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register – register dan juga dengan bus – bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan/keluaran.
Gambar 3.1 Komponen internal CPU


Gambar 3.2 Struktur detail internal CPU

2.2 Fungsi CPU

Fungsi CPU adalah penjalankan program – program yang disimpan dalam memori utama dengan cara mengambil instruksi – instruksi, menguji instruksi tersebut dan mengeksekusinya satu persatu sesuai alur perintah.
Untuk memahami fungsi CPU dan caranya berinteraksi dengan komponen lain, perlu kita tinjau lebih jauh proses eksekusi program. Pandangan paling sederhana proses eksekusi program adalah dengan mengambil pengolahan instruksi yang terdiri dari dua langkah, yaitu : operasi pembacaan instruksi (fetch) dan operasi pelaksanaan instruksi (execute). Siklus instruksi yang terdiri dari siklus fetch dan siklus eksekusi diperlihatkan pada gambar 3.3 berikut.

Gambar 3.3 Siklus instruksi dasar

2.2.1 Siklus Fetch - Eksekusi

Pada setiap siklus instruksi, CPU awalnya akan membaca instruksi dari memori. Terdapat register  dalam  CPU  yang  berfungsi  mengawasi  dan  menghitung  instruksi  selanjutnya,  yang disebut Program Counter (PC). PC akan menambah satu hitungannya setiap kali CPU membaca instruksi.
Instruksi – instruksi yang dibaca akan dibuat dalam register instruksi (IR). Instruksi – instruksi ini dalam bentuk kode – kode binner yang dapat diinterpretasikan oleh CPU kemudian dilakukan aksi yang diperlukan. Aksi – aksi ini dikelompokkan menjadi empat katagori, yaitu :
·                  CPU – Memori, perpindahan data dari CPU ke memori dan sebaliknya.

·                  CPU –I/O, perpindahan data dari CPU ke modul I/O dan sebaliknya.

·        Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan logika terhadap data.

·       Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja. Misalnya instruksi   pengubahan urusan eksekusi.Perlu diketahui bahwa siklus eksekusi untuk suatu instruksi dapat melibatkan lebih dari sebuah referensi ke memori. Disamping itu juga, suatu instruksi dapat menentukan suatu operasi I/O. Perhatikan gambar 3.4 yang merupakan detail siklus operasi     pada gambar 3.3, yaitu :
·         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.
·         Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU.

·         Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan.
·         Operand Address Calculation (OAC), yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori.
·         Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O.

·         Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi.

·         Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori.



Gambar 3.4 Diagram siklus instruksi


2.2.2 Fungsi Interrupt

Fungsi interupsi adalah mekanisme penghentian atau pengalihan pengolahan instruksi dalam  CPU  kepada  routine  interupsi.  Hampir  semua  modul  (memori  dan  I/O)  memiliki mekanisme yang dapat menginterupsi kerja CPU.
Tujuan interupsi secara umum untuk menejemen pengeksekusian routine instruksi agar efektif  dan  efisien  antar  CPU  dan  modul  –  modul  I/O  maupun  memori.  Setiap  komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU disamping itu kecepatan eksekusi masing – masing modul berbeda sehingga dengan adanya fungsi interupsi ini dapat sebagai sinkronisasi kerja antar modul. Macam – macam kelas sinyal interupsi
·         Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi yang terjadi pada hasil eksekusi program. Contohnya: arimatika overflow, pembagian nol, oparasi ilegal.
·         Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler.
·         I/O, sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan pemberitahuan kondisi error dan penyelesaian suatu operasi.
·         Hardware failure, adalah interupsi yang dibangkitkan oleh kegagalan daya atau kesalahan paritas memori.
Dengan  adanya  mekanisme  interupsi,  prosesor  dapat  digunakan  untuk mengeksekusi instruksi – instruksi lain. Saat suatu modul telah selesai menjalankan tugasnya dan siap menerima tugas berikutnya maka modul ini akan mengirimkan permintaan interupsi ke prosesor. Kemudian prosesor akan menghentikan eksekusi yang dijalankannya untuk menghandel routine interupsi. Setelah program interupsi selesai maka prosesor akan melanjutkan eksekusi programnya kembali. Saat sinyal interupsi diterima prosesor ada dua kemungkinan tindakan, yaitu interupsi diterima/ditangguhkan dan interupsi ditolak. Apabila interupsi ditangguhkan, prosesor akan melakukan hal – hal dibawah ini :
1.      Prosesor menangguhkan eksekusi program yang dijalankan dan menyimpan konteksnya. Tindakan ini adalah menyimpan alamat instruksi berikutnya yang akan dieksekusi dan data lain yang relevan.
2.      Prosesor menyetel program counter (PC) ke alamat awal routine interrupt handler.

Gambar 3.5 berikut menjelaskan siklus eksekusi oleh prosesor dengan adanya fungsi interupsi.

Gambar 3.5 Siklus eksekusi instruksi dengan interrupt

Untuk sistem operasi yang kompleks sangat dimungkinkan adanya interupsi ganda (multiple interrupt). Misalnya suatu komputer akan menerima permintaan interupsi saat proses pencetakan dengan printer selesai, disamping itu dimungkinkan dari saluran komunikasi akan mengirimkan permintaan interupsi setiap kali data tiba. Dalam hal ini prosesor harus menangani interupsi ganda.
Dapat diambil dua buah pendekatan untuk menangani interupsi ganda ini. Pertama adalah menolak atau tidak mengizinkan interupsi lain saat suatu interupsi ditangani prosesor. Kemudian setelah  prosesor  selesai  menangani  suatu  interupsi  maka  interupsi  lain  baru  di  tangani. Pendekatan ini disebut pengolahan interupsi berurutan / sekuensial. Pendekatan ini cukup baik dan sederhana karena interupsi ditangani dalam ututan yang cukup ketat. Kelemahan pendekatan ini adalah metode ini tidak memperhitungkan prioritas interupsi. Pendekatan ini diperlihatkan pada gambar 3.6a.
Pendekatan kedua adalah dengan mendefinisikan prioritas bagi interupsi dan interrupt handler mengizinkan interupsi berprioritas lebih tinggi ditangani terlebih dahulu. Pedekatan ini disebut pengolahan interupsi bersarang. Metode ini digambarkan pada gambar 3.6b.

Gambar 3.6 Transfer pengendalian pada interupsi ganda

Sebagai contoh untuk mendekatan bersarang, misalnya suatu sistem memiliki tiga perangkat I/O: printer, disk, dan saluran komunikasi, masing – masing prioritasnya 2, 4 dan 5. Pada awal sistem melakukan pencetakan dengan printer, saat itu terdapat pengiriman data pada saluran komunikasi sehingga modul komunikasi meminta interupsi. Proses selanjutnya adalah pengalihan eksekusi interupsi mudul komunikasi, sedangkan interupsi printer ditangguhkan. Saat pengeksekusian modul komunikasi terjadi interupsi disk, namun karena prioritasnya lebih rendah maka interupsi disk ditangguhkan. Setelah interupsi modul komunikasi selesai akan dilanjutkan interupsi yang memiliki prioritas lebih tinggi, yaitu disk. Bila interupsi disk selesai dilanjutkan eksekusi interupsi printer. Selanjutnya dilanjutkan eksekusi program utama.

3.      Modul I/O
Modul I/O merupakan peralatan antarmuka (interface) bagi sistem bus atau switch sentral dan mengontrol satu atau lebih perangkat peripheral. Modul I/O tidak hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus komputer.
Ada beberapa alasan kenapa piranti – piranti tidak langsung dihubungkan dengan bus sistem komputer, yaitu :
·         Bervariasinya metode operasi piranti peripheral, sehingga tidak praktis apabila sistem komputer herus menangani berbagai macam sisem operasi piranti peripheral tersebut.
·         Kecepatan transfer data piranti peripheral umumnya lebih lambat dari pada laju transfer data pada CPU maupun memori.
·         Format data dan panjang data pada piranti peripheral seringkali berbeda dengan CPU, sehingga perlu modul untuk menselaraskannya.
Dari beberapa alasan diatas, modul I/O memiliki dua buah fungsi utama, yaitu :

1.      Sebagai piranti antarmuka ke CPU dan memori melalui bus sistem.

2.      Sebagai piranti antarmuka dengan peralatan peripheral lainnya dengan menggunakan link data tertentu.

3.1 Sistem Masukan & Keluaran Komputer

Bagaimana  modul  I/O  dapat  menjalankan  tugasnya,  yaitu  menjembatani  CPU  dan memori dengan dunia luar merupakan hal yang terpenting untuk kita ketahui. Inti mempelajari sistem I/O suatu komputer adalah mengetahui fungsi dan struktur modul I/O.
Perhatikan gambar : 6.1 yang menyajikan model generik modul I/O.

Gambar 6.1 Model generik dari suatu modul I/O
3.1.1 Fungsi Modul I/O

Modul I/O adalah suatu komponen dalam sistem komputer yang bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan memori utama ataupun dengan register – register CPU. Dalam mewujudkan hal ini, diperlukan antarmuka internal dengan komputer (CPU dan memori utama) dan antarmuka dengan perangkat eksternalnya untuk menjalankan fungsi – fungsi pengontrolan.
Fungsi dalam menjalankan tugas bagi modul I/O dapat dibagi menjadi beberapa katagori, yaitu:

·      Kontrol dan pewaktuan.

·      Komunikasi CPU.

·      Komunikasi perangkat eksternal.

·      Pem-buffer-an data.

·      Deteksi kesalahan.

Fungsi kontrol dan pewaktuan (control & timing) merupakan hal yang penting untuk mensinkronkan kerja masing – masing komponen penyusun komputer. Dalam sekali waktu CPU berkomunikasi  dengan  satu  atau  lebih  perangkat  dengan  pola  tidak  menentu  dan  kecepatan transfer komunikasi data yang beragam, baik dengan perangkat internal seperti register – register, memori utama, memori sekunder, perangkat peripheral. Proses tersebut bisa berjalan apabila ada fungsi kontrol dan pewaktuan yang mengatur sistem secara keseluruhan. Contoh kontrol pemindahan data dari peripheral ke CPU melalui sebuah modul I/O dapat meliputi langkah – langkah berikut ini :
1.      Permintaan dan pemeriksaan status perangkat dari CPU ke modul I/O.

2.      Modul I/O memberi jawaban atas permintaan CPU.

3.      Apabila  perangkat  eksternal  telah  siap  untuk  transfer  data,  maka  CPU  akan mengirimkan perintah ke modul I/O.
4.      Modul I/O akan menerima paket data dengan panjang tertentu dari peripheral.

5.      Selanjutnya data dikirim ke CPU setelah diadakan sinkronisasi panjang data dan kecepatan transfer oleh modul I/O sehingga paket – paket data dapat diterima CPU dengan baik.
Transfer data tidak akan lepas dari penggunaan sistem bus, maka interaksi CPU dan modul I/O akan melibatkan kontrol dan pewaktuan sebuah arbitrasi bus atau lebih.
Adapun fungsi komunikasi antara CPU dan modul I/O meliputi proses – proses berikut :

·          Command Decoding, yaitu modul I/O menerima perintah – perintah dari CPU yang dikirimkan sebagai sinyal bagi bus kontrol. Misalnya, sebuah modul I/O untuk disk dapat menerima perintah: Read sector, Scan record ID, Format disk.
·         Data, pertukaran data antara CPU dan modul I/O melalui bus data.

·         Status  Reporting,  yaitu  pelaporan  kondisi  status  modul  I/O  maupun  perangkat peripheral, umumnya berupa status kondisi Busy atau Ready. Juga status bermacam – macam kondisi kesalahan (error).
·         Address Recognition, bahwa peralatan atau komponen penyusun komputer dapat dihubungi atau dipanggil maka harus memiliki alamat yang unik, begitu pula pada perangkat peripheral, sehingga setiap modul I/O harus mengetahui alamat peripheral yang dikontrolnya.
Pada sisi modul I/O ke perangkat peripheral juga terdapat komunikasi yang meliputi komunikasi data, kontrol maupun status. Perhatikan gambar 6.2 berikut.

Gambar 6.2 Skema suatu perangkat peripheral

Fungsi selanjutnya adalah buffering. Tujuan utama buffering adalah mendapatkan penyesuaian data sehubungan perbedaan laju transfer data dari perangkat peripheral dengan kecepatan pengolahan pada CPU. Umumnya laju transfer data dari perangkat peripheral lebih lambat dari kecepatan CPU maupun media penyimpan.
Fungsi terakhir adalah deteksi kesalahan. Apabila pada perangkat peripheral terdapat masalah sehingga proses tidak dapat dijalankan, maka modul I/O akan melaporkan kesalahan tersebut. Misal informasi kesalahan pada peripheral printer seperti: kertas tergulung, pinta habis, kertas habis, dan lain – lain. Teknik yang umum untuk deteksi kesalahan adalah penggunaan bit paritas.

3.1.2 Struktur Modul I/O

Terdapat berbagai macam modul I/O seiring perkembangan komputer itu sendiri, contoh yang sederhana dan fleksibel adalah Intel 8255A yang sering disebut PPI (Programmable Peripheral Interface). Bagaimanapun kompleksitas suatu modul I/O, terdapat kemiripan struktur, seperti terlihat pada gambar 6.3.








































 
Gambar 6.3 Blok diagram struktur modul I/O

Antarmuka modul I/O ke CPU melalui bus sistem komputer terdapat tiga saluran, yaitu saluran data, saluran alamat dan saluran kontrol. Bagian terpenting adalah blok logika I/O yang berhubungan dengan semua peralatan antarmuka peripheral, terdapat fungsi pengaturan dan switching pada blok ini.
3.2 Teknik Masukan/Keluaran

Terdapat tiga buah teknik dalam operasi I/O, yaitu: I/O terprogram, interrupt – driven I/O, dan DMA (Direct Memory Access). Ketiganya memiliki keunggulan maupun kelemahan, yang penggunaannya disesuaikan sesuai unjuk kerja masing – masing teknik.

3.2.1 I/O Terprogram

Pada I/O terprogram, data saling dipertukarkan antara CPU dan modul I/O. CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat.
Kelemahan teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Dalam teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap proses – proses yang diinteruksikan padanya. Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap dilaksanakan.
Untuk melaksanakan perintah – perintah I/O, CPU akan mengeluarkan sebuah alamat bagi modul I/O dan perangkat peripheralnya sehingga terspesifikasi secara khusus dan sebuah perintah I/O yang akan dilakukan. Terdapat empat klasifikasi perintah I/O, yaitu:
1.      Perintah control.

Perintah ini digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan padanya.
2.      Perintah test.

Perintah   ini   digunakan   CPU   untuk  menguji   berbagai   kondisi   status   modul   I/O   dan peripheralnya. CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi kesalahannya.
3.      Perintah read.

Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfernya.
4.      Perintah write.

Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat peripheral tujuan data tersebut.
Dalam  teknik  I/O  terprogram,  terdapat  dua  macam  inplementasi  perintah  I/O  yang tertuang dalam instruksi I/O, yaitu: memory-mapped I/O dan isolated I/O.
Dalam memory-mapped I/O, terdapat ruang tunggal untuk lokasi memori dan perangkat I/O. CPU memperlakukan register status dan register data modul I/O sebagai lokasi memori dan menggunakan instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O. Konskuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran tunggal untuk penulisan.  Keuntungan  memory-mapped  I/O  adalah  efisien  dalam  pemrograman,  namun memakan banyak ruang memori alamat.
Dalam teknik isolated I/O, dilakukan pemisahan ruang pengalamatan bagi memori dan ruang pengalamatan bagi I/O. Dengan teknik ini diperlukan bus yang dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output. Keuntungan isolated I/O adalah sedikitnya instruksi I/O.
3.2.2 Interrupt – Driven I/O

Teknik interrupt – driven I/O memungkinkan proses tidak membuang – buang waktu. Prosesnya  adalah CPU mengeluarkan perintah I/O pada modul I/O, bersamaan perintah I/O dijalankan modul I/O maka CPU akan melakukan eksekusi perintah – perintah lainnya. Apabila modul I/O telah selesai menjalankan instruksi yang diberikan padanya akan melakukan interupsi pada CPU bahwa tugasnya telah selesai.
Dalam teknik ini kendali perintah masih menjadi tanggung jawab CPU, baik pengambilan perintah dari memori maupun pelaksanaan isi perintah tersebut. Terdapat selangkah kemajuan dari teknik sebelumnya, yaitu CPU melakukan multitasking beberapa perintah sekaligus sehingga tidak ada waktu tunggu bagi CPU.
Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima perintah, misal read. Kemudian modul I/O melaksanakan perintah pembacaan dari peripheral dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian modul menunggu datanya diminta CPU. Saat permintaan terjadi, modul meletakkan data pada bus data dan modul siap menerima perintah selanjutnya. Pengolahan interupsi saat perangkat I/O telah menyelesaikan sebuah operasi I/O adalah sebagai berikut :
1.      Perangkat I/O akan mengirimkan sinyal interupsi ke CPU.

2.      CPU menyelesaikan operasi yang sedang dijalankannya kemudian merespon interupsi.

3.      CPU  memeriksa  interupsi  tersebut,  kalau  valid  maka  CPU  akan  mengirimkan  sinyal acknowledgment ke perangkat I/O untuk menghentikan interupsinya.
4.      CPU mempersiapkan pengontrolan transfer ke routine interupsi. Hal yang dilakukan adalah menyimpan informasi yang diperlukan untuk melanjutkan operasi yang tadi dijalankan sebelum adanya interupsi. Informasi yang diperlukan berupa:
a.       Status prosesor, berisi register yang dipanggil PSW (program status word).
b.      Lokasi intruksi berikutnya yang akan dieksekusi.
Informasi tersebut kemudian disimpan dalam stack pengontrol sistem.

5.      Kemudian CPU akan menyimpan PC (program counter) eksekusi sebelum interupsi ke stack pengontrol bersama informasi PSW. Selanjutnya mempersiapkan PC untuk penanganan interupsi.
6.      Selanjutnya CPU memproses interupsi sempai selesai.

7.      Apabila pengolahan interupsi selasai, CPU akan memanggil kembali informasi yang telah disimpan pada stack pengontrol untuk meneruskan operasi sebelum interupsi.
Terdapat  bermacam teknik yang digunakan CPU dalam menangani program interupsi ini, diantaranya :
• Multiple Interrupt Lines.

• Software poll.

• Daisy Chain.

• Arbitrasi bus.
Teknik yang paling sederhana adalah menggunakan saluran interupsi berjumlah banyak (Multiple Interrupt Lines) antara CPU dan modul – modul I/O. Namun tidak praktis untuk menggunakan sejumlah saluran bus atau pin CPU ke seluruh saluran interupsi modul – modul I/O.
Alternatif   lainnya   adalah   menggunakan   software   poll.   Prosesnya,   apabila   CPU mengetahui adanya sebuah interupsi, maka CPU akan menuju ke routine layanan interupsi yang tugasnya melakukan poll seluruh modul I/O untuk menentukan modul yang melakukan interupsi. Kerugian  software  poll  adalah  memerlukan  waktu yang lama karena harus mengidentifikasi seluruh modul untuk mengetahui modul I/O yang melakukan interupsi.
Teknik yang lebih efisien adalah daisy chain, yang menggunakan hardware poll. Seluruh modul  I/O  tersambung  dalam saluran  interupsi  CPU secara  melingkar  (chain).  Apabila  ada permintaan  interupsi,  maka  CPU  akan  menjalankan  sinyal  acknowledge  yang  berjalan  pada saluran interupsi sampai menjumpai modul I/O yang mengirimkan interupsi.
Teknik berikutnya adalah arbitrasi bus. Dalam metode ini, pertama – tama modul I/O memperoleh kontrol bus sebelum modul ini menggunakan saluran permintaan interupsi. Dengan demikian hanya akan terdapat sebuah modul I/O yang dapat melakukan interupsi.
Pengontrol Interrupt Intel 8259A

Intel mengeluarkan chips 8259A yang dikonfigurasikan sebagai interrupt arbiter pada mikroprosesor Intel 8086. Intel 8259A melakukan manajemen interupsi modul - modul I/O yang tersambung padanya. Chips ini dapat diprogram untuk menentukan prioritas modul I/O yang lebih dulu ditangani CPU apabila ada permintaan interupsi yang bersamaan. Gambar 6.4 menggambarkan pemakaian pengontrol interupsi 8259A. Berikut mode – mode interupsi yang mungkin terjadi :
·         Fully Nested: permintaan interupsi dengan prioritas mulai 0 (IR0) hingga 7(IR7).

·         Rotating:  bila  sebuah  modul  telah  dilayani  interupsinya  akan  menempati  prioritas terendah.
·         Special Mask: prioritas diprogram untuk modul I/O tertentu secara spesial.

Gambar 6.4 Pemakaian pengontrol interupsi 8559A pada 8086
Programmable Peripheral Interface Intel 8255A

Contoh modul I/O yang menggunakan I/O terprogram dan interrupt driven I/O adalah Intel 8255A Programmable Peripheral Interface (PPI). Intel 8255A dirancang untuk keperluan mikroprosesor 8086. Gambar 6.5 menunjukkan blok diagram Intel 8255A dan pin layout-nya.

Gambar 6.5 Modul I/O 8255A

Bagian kanan dari blok diagram Intel 8255A adalah 24 saluran antarmuka luar, terdiri atas 8 bit port A, 8 bit port B, 4 bit port CA dan 4 bit port CB. Saluran tersebut dapat diprogram dari mikroprosesor 8086 dengan menggunakan register kontrol untuk menentukan bermacam – macam mode operasi dan konfigurasinya. Bagian kiri blok diagram merupakan interface internal dengan mikroprosesor 8086. Saluran ini terdiri atas 8 bus data dua arah (D0 – D7), bus alamat, dan bus kontrol yang terdiri atas saluran CHIP SELECT, READ, WRITE, dan RESET.
Pengaturan  mode  operasi  pada  register  kontrol  dilakukan  oleh  mikroprosesor.,  Pada Mode 0, ketiga port berfungsi sebagai tiga port I/O 8 bit. Pada mode lain dapat port A dan port B sebagai port I/O 8 bit, sedangkan port C sebagai pengontrol saluran port A dan B.
PPI Intel 8255A dapat diprogram untuk mengontrol berbagai peripheral sederhana. Gambar 6.6 memperlihatkan contoh penggunaan 8255A untuk modul I/O Keyboard dan display.



Gambar 6.6 Interface kayboard dan display dengan Intel 8255A

3.2.3 Direct Memory Access (DMA)

Teknik yang dijelaskan sebelumnya yaitu I/O terprogram dan Interrupt-Driven I/O memiliki kelemahan, yaitu proses yang terjadi pada modul I/O masih melibatkan CPU secara langsung. Hal ini berimplikasi pada :
·         Kelajuan transfer I/O yang tergantung pada kecepatan operasi CPU.

·         Kerja CPU terganggu karena adanya interupsi secara langsung.

Bertolak dari kelemahan di atas, apalagi untuk menangani transfer data bervolume besar dikembangkan teknik yang lebih baik, dikenal dengan Direct Memory Access (DMA).
Prinsip kerja DMA adalah CPU akan mendelegasikan kerja I/O kepada DMA, CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir proses saja. Dengan demikian CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi. Blok diagram modul DMA terlihat pada gambar 6.7 berikut :
Gambar 6.7 Blok diagram DMA


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

3.3 Perangkat Eksternal

Mesin komputer akan memiliki nilai apabila bisa berinteraksi dengan dunia luar. Lebih dari itu, komputer tidak akan berfungsi apabila tidak dapat berinteraksi dengan dunia luar. Ambil contoh saja, bagaimana kita bisa menginstruksikan CPU untuk melakukan suatu operasi apabila tidak ada keyboard. Bagaimana kita melihat hasil kerja sistem komputer bila tidak ada monitor. Keyboard dan monitor tergolang dalam perangkat eksternal komputer.
Perangkat eksternal atau lebih umum disebut peripheral tersambung dalam sistem CPU melalui  perangat pengendalinya, yaitu modul I/O seperti telah dijelaskan sebelumnya. Lihat kembali gambar 6.2. Secara umum perangkat eksternal diklasifikasikan menjadi 3 katagori:
·        Human  Readable,  yaitu  perangkat  yang  berhubungan  dengan  manusia  sebagai pengguna  komputer.  Contohnya:  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. Misalnya: NIC dan modem.
Pengklasifikasian juga bisa berdasarkan arah datanya, yaitu perangkat output, perangkat input dan kombinasi output-input. Contoh perangkat output: monitor, proyektor dan printer. Perangkat input misalnya: keyboard, mouse, joystick, scanner, mark reader, bar code reader.