Friday, October 21, 2016

SISTEM I/O

A.UNIT INPUT DAN OUTPUT
Komputer menerima informasi yang dikodekan melalui perantara perangkat sebuah inputan,yang akan membaca data tersebut.adapun peralatan input yang paling populer adalah keyboard,kapanpun suatu tombol di tekan,huruf,angka dan simbol-simbol yang sesuai akan secara otomatis di terjemahkan menjadi sebuah kode biner yang tepat dan di transmisikan melalui kabel ke memori atau prosessor sedangkan unit ouput adalah untuk mengirimkan hasilnya yang telah di proses ke dunia luar.contoh paling umum dari sebuah peralatan tersebut adalah printer,speaker dll,printer menggunakan mekanikal head impact,ink jet stream,atau teknik fotokopi seperti dalam printer laser untuk melakukan pencetakan.

B. PROSES AKSES PERANGKAT I/O

Salah satu fitur dasar suatu komputer adalah kemampuannya untuk mempertukarkan data dengan perangkat lain. Misalnya menggunakan keyboard, printer, layar display dan alat-alat input lainnya untuk mengolah data, teks, grafik dan lain sebagainya.
Pengaturan sederhana untuk menghubungkan perangkat I/O ke suatu perangkat komputer adalah dengan menggunakan pengaturan bus tunggal, Biasanya pengaturan tersebut terdiri dari tiga set jalur yang digunakan untuk membawa alamat, data, dan sinyal kontrol. Maka setiap perangkat I/O ditetapkan dengan suatu set alamat yang unik. Ketika suatu prosesor menerima atau meletakkan suatu alamat pada jalur alamat, maka perangkat yang mengenali alamat tersebut akan merespon perintah yang telah dinyatakan pada jalur kendali. Prosesor akan meminta operasi baca atau tulis dan data yang telah ditransfer dijalur data.











Gambar. Struktur Bus Tunggal


Kebanyakan dalam sistem komputer menggunakan memory-mapped I/O. Beberapa prosesor memiliki intruksi in dan out khusus untuk menjalankan transfer I/O.


Gambar. Antar muka I/O untuk perangkat input

 Perangakat I/O beroperasi pada kecepatan yang sangat berbeda dengan prosesor. Ketika saat operator manusia memasukkan karakter pada keyboard, prosesor mampu mengeksekusi jutaan intruksi antar entri karakter yang berurutan. Suatu intruksi yang membaca karakter dari keyboard sebaiknya hanya dieksekusi pada saat karakter tersebut tersedia dalam input buffer antar muka keyboard. Dan kita juga harus memastikan karakter input tersebut hanya terbaca satu kali.




C. INTERRUPT
            Interrupt ialah cara kerja sederhana bagi modul lain untuk bisa melakukan interruptsi operasi normal pada CPU.biasanya ,interrupt meng-enable transfer control dari satu program dengan  program lainnya.untuk itu ,dapat menginisiasikan sutu event yang external terhadap computer itu. Interupsi atau interrupt ialah suatu permintaan khusus atau perintah  untuk melakukan sesuatu, jika terjadi interupsi maka komputer akan menghentikan dahulu apa yang sedang dikerjakan dan melakukan apa yang di minta oleh yang menginterupsi, setelah selesai maka aliran program akan kembali ke pernyataan program sebelum terjadinya interupsi. Interupsi merupakan sub rutin yang sudah tersedia dalam memori komputer.
Teknik interrupt I/O  prosesnya ialah CPU memberikan perintah I/O pada modul I/O, bersamaan perintah I/O dijalankan oleh modul, maka CPU dapat melakukan eksekusi perintah-perintah lainnya.  Apabila modul I/O telah selesai menjalankan instruksi yang diberikan, maka modul I/O tersebut akan memberikan interupsi pada CPU bahwa tugasnya telah selesai. Cara kerja teknik interupsi di sisi modul I/O yaitu modul menerima perintah, misalnya read. Kemudian modul melaksanakan perintah pembacaan dari periperhal dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran control. 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 dijalankan kemudian merespon interupsi.
3.      CPU memeriksa interupsi
4.      CPU mempersiapkan pengontrolan transfer rountine interupsi. Hal yang dilakukan adalah menyimpan informasi yang di perlukan untuk melanjutkan operasi yang tadi dijalankan sebelum adanya interupsi.
5.      Kemudian CPU akan menyimpan PC (Program Counter) eksekusi sebelum interupsi ke stack pegontrol bersama informasi. Selanjutnya mempersiapkan  PC untuk penanganan interupsi.
6.      Selanjutnya CPU memproses interupsi sampai selesai
7.      Apabila interupsi telah selesai, CPU akan memanggil kembali informasi yang telah disimpan pada Stack pengontrol untuk meneruskan operasi sebelum interupsi
            1. STRUKTUR INTERRUPT ARM
 ARM merupakan prosessor 32-bit RISC yang dikemukakan oleh ARM Limited. Biasa dikenal sebagai Advanced RISC Machine. sebelumnya dikenal sebagai Acorn RISC Machine. Prosesor ARM mempunyai cara kerja exception-handling sederhana tapi sangat berguna. Ada lima source untuk exception, diantaranya hanya dua merupakan jalur interrupt-request eksternal, IRQ & FIQ. Umumnya ARM yaitu prosesor desktop yang kini didominasi oleh keluarga x86. Tetapi rancangan yang sederhana membuat prosesor ARM tepat untuk aplikasi berdaya rendah. Pada hal ini, prosesor ARM kini  mendominasi pasar mobile electronic dan embedded system hanya membutuhkan daya dan harga yang rendah.
Pada tahun 2007, hanya 98% dari satu miliar mobile phone yang terjual menggunakan sebuah prosesor ARM. Dan ketika tahun 2009, prosesor ARM mendominasi hanya 90% dari semua pasar prosesor 32-bit RISC. Prosesor ARM digunakan di segala bidang seperti elektronik umum, termasuk PDA, media player, music player dan periperal komputer seperti hard disk drive dan router.
Exception merupakan pembatalan eksternal dikarenakan error bus & usaha untuk mengeksekusi instruksi yang tidak terdefinisikan. Exception ditangani Berdasarkan menurut struktur yang diutamakan sebagai berikut:
Ø Reset (prioritas tertinggi)
Ø Data abort
Ø FIQ
Ø IRQ
Ø Prefetch abort
Ø Undefined instruction (prioritas terendah)

2. INTERRUPT HARDWARE
Kita nyatakan bahwa sebuah perangkat I/O meminta interrupt dengan mengaktifkkan jalur bus yang di sebut interrupt request.kebanyakan computer tampaknya memiliki beberapa perangkat I/O  yang dapat meminta interrupt.
Jalan aliran interrupt-request tunggal dapat di manfaatkan untuk melayanin perangkat, untuk meminta suatu interrupt, perangkat menutup switch-nya. Sehingga saat semua sinyal  interrupt-request INTR1 hingga INTR2 tidak aktif yaitu jika semua switch terbuka, maka tegangan pada jalur interrupt –request akan setara dengan Vdd, ini adalah keadaan dimana jalur tersebut tidak aktif.
Pada saat perangkat meminta suatu interrupt dengan menutup switch-nya, maka tegangan pada jalur tersebut jatuh ke 0, menyebabkan sinyal interrupt-request, INTR, yang di terima oleh prosesor menjadi 1. Karena menutup satu atau lebih switch akan menyebabkan tegangan sebuah jalur jatuh ke 0, maka untuk nilai INTR adalah logika OR dari sebuah request perangkat individu, yaitu
INTR = INTR1+……+INTRn            
3. ENABLING DAN DISABLING INTERRUPT
          Fasilitas yang tersedia dalam computer harus memberi programer kontrol lengkap pada event yang terjadi selama eksekusi program.
Saat muncul interrupt request dari perangkat eksternal menyebabkan prosesor menunda eksekusi satu program dan mulai mengeksekusi program lain, banyak situasi yang mana prosesor sebaiknya mengabaikan interrupt request, contohnya dalam program computer-print, suatu interrupt request dari printer hanya dapat di terima jika ada jalur output yang akan dicetak.
Pada saat suatu perangkat mengaktifkan interrupt request, perangkat tersebut menjaga sinyal tetap aktif hingga mendapati prosesor telah menerima request-nya.sangat penting untuk memastikan bahwas sinyal request aktif ini tidak menyebabkan interrupsi yang berkelanjutan , yang menyebabkan system memasuki loop yang tidak dapat dipulihkan.
Kemungkinan pertama adalah hardware prosesor mengabaikan jalur interrupt-request hingga eksekusi intruksi pertama dari routine interrupt-service telah selesai, kemudian, dengan menggunakan instruksi interrupt-disable sebagai instruksi pertama dalam routine interrupt- service, maka programar dapat memastikan bahwa tidak ada interripsi lebih lanjut yang terjadi hingga instruksi interrupt-enable dieksekusi.
Pilihan kedua, yang sesuai untuk prosesor sederhana dengan hanya satu jalur interrupt-request, adalah prosesor yang secara otomatis men-disable interrupt sebelum memulai eksekusi routine interrupt-service.
Pilihan ketiga, prosesor memiliki jalur interrupt-request khusus dimana sirkuit interrupt-hendling hanya merespon pada leading edge sinyal, jalur semacam ini di sebut edgetriggered.

D. MENANGANI BANYAK PERANGKAT.
Perangakat komputer memiliki kemampuan untuk menginisiasi interupt terhubung ke prosesor.Informasi yang diperlukan untuk mengetahui apakah suatu perangkat meminta interupt, telah tersedia didalam status register-nya.Pada saat suatu perangkat memunculkan interuppt request , maka salah satu bit didalam status register-nya di-set menjadi 1, yang disebut dengan bit IRQ , contoh bit KIRG dan DIRG  , kedua bit ini adalah bit interrupt  untuk keyboard dan display.Jika ada perangkat yang sedang menginterupsi cara untuk mengenalinya adalah meminta routine interrupt-service mem-poll semua perangakat I/O yang terhubung ke sistem bus.Perangkat yang harus dilayani adalah perangkat yang pertama di temukan dengan bit IRQ dan telah di-set, dan subroutine di panggil untuk menyediakan pelayanan yang di request.
Skema polling mudah untuk diimplementasikan , tetapi skema polling memiliki kerugian yaitu waktu yang dihabiskan untuk mengetahui bit IRQ semua perangkat yang mungkin tidak meminta pelayanan apapun.Pendekatan alternatif adalah dengan menggunakan vectored interrupt , yang di deskripsikan berikutnya.
a.       Vectored Interrupt
Suatu perangkat yang meminta interrupt dapat mengidentifikasi dirinya dengan mengirim kode khusus ke prosesor melalui bus. Panjang kode tersebut biasanya memiliki rentang 4-8 bit. Sisa alamat disediahkan  oleh prosesor berdasarkan pada area dalam memorinya dimana alamat untuk routine interrupt-servis ditempatkan.
Pengaturan ini  menyatakan bahwa routine interrupt-servise untuk suatu perangkat harus selalu mulai pada lokasi yang sama.Lokasi yang ditunjuk oleh perangkat yang mengintruppsi digunakan untuk menyimpan alamat awal routine interuppt-servise .Prosesor mampu membaca alamat , yang disebut unterrupt vector dan me-load ke dalam PC . Interrupt vector dapat pula menyertakan  nilai baru untuk procesor status register.
Pada  komputer , Perangakt I/O mengirim kode interrupt-vector melalui bus data, yaitu dengan menggunakan sinyal kontrol bus untuk memastikan bahwa perangkat tidak saling mempengaruhi satu sama lain.Pada saat prosesor siap untuk menerima kode interrupt-vector , maka prosesor mengaktifkan jalur interrupt-acknowledge ,INTA.Dan perangakat I/O merespon dengan mengirim kode interrupt-vector dan mematikan sinyal  INTR. Jika perangkat mengirim suatu interrupt request , dan prosesor tidak siap untuk menerima kode interrupt-vector , maka perangkat yang mengintrrupsi harus menunggu untuk meletakkan data pada bus saat prosesor siap untuk menerimanya.
b.      Interrupt  Nesting

Perangkat  I/O diatur dalam  struktur prioritas. Suatu  interrupt request dari perangakat high-priority sebaiknya di terima pada saat prosesor melayani request lain dari perangkat lower-priority .Organisasi priority multiple-level berarti selama eksekusi routine interrupt-service ,interrupt  request akan diterima dari beberapa perangkat . Tingkat prioritas prosesor adalah prioritas program yang  sedang dieksekusi.
Prioritas prosesor biasanya di encode dalam beberapa bit word status prosesor. Hal ini dapat diubah dengan intruksi  program yang ditulis ke PS. Ini adalah intruksi privileged, yang dapat di eksekusi saat prosesor sedang berjalan dalam mode supervisor. Usaha untuk mengeksekusi intruksi prinvileged pada saat berada dalam mode user memunculkan type interrupt khusus yang di sebut dengan privilege exception .

Skema multiple-priority dapat di terapkan dengan mudah menggunakan jalur interrupt request dan interupt acknowledge yang terpisah untuk setiap perangkat, dimana suatu request di terima hanya jika memiliki tingkat prioritas yang lebih tinggi daripada yang  sedang ditetapkan ke prosesor.







KET :      
      Sirkuit arbitration prioritas
Gambar 1 : Implementasi prioritas interrupt menggunakan jalur interrupt- request dan acknowledge

c . Request  Serentak
         Polling register status perangakat I/O adalah mekanisme yang paling sederhana.Prioritas ditetapkan dengan urutan perangkat dengan urutan perangkat yang di-poll.Skema yang banyak digunakan  adalah menghubungkan perangkat tersebut untuk membentuk Daisy –Chain . Jalur interrupt-request INTR adalah yang umum digunakan untuk semua perangkat.Jalur- interrupt-acknowledge INTA , dihubungkan dengan cara Daisy-Chain , Sehingga sinyal INTA  memperbanyak secara serial melalui perangkat tersebut.  Dalam pengaturan Daisy-chain  ,perangkat yang paling dekat secara elektrik dengan prosesor memiliki prioritas tertinggi.

Gambar 2 : Skema prioritas interrupt
PROSESOR
                                                    INTR
Device  2
Device 1
Device  n
 


                 INTA





 

Gambar 3 : Pengaturan kelompok Prioritas
       Skema pada gambar 1 mempunyai keutamaan yaitu skema tersebut memungkinkan prosesor menerima interrupt request dari beberapa perangkat tetapi tidak dari beberapa perangkat  yang lain , dan interrupnya tergantung dari prioritasnya masing – masing.Sedangkan pada gambar 2 tidak memerlukan kabel yang terlalu banyak di banding pada gambar 1 . Skema 1 dan 2 jika di gabungkan akan menghasilkan skema yang lebih umum yaitu pada skema no 3.Perangkat diorganisasi dalam kelompok , dan tiap kelompok dihubungkan pada tingkat prioritas yang berbeda . Dalam kelompok , perangkat di hubungkan dalam Daisy- Chain . Organisasi ini banyak di gunakan dalam sistem komputer.
E.  MENGONTROL REQUEST PERANGKAT
                 Proses interrupt –request hanya  di hasilkan  oleh perangkat I/O yang digunakan dalam program tertentu .Hal ini karena perangkat yang diam(idle) tidak diperbolehkan menghasilkan interrupt-  request , sekalipun perangkat tersebut siap berpartisipasi dalam operasi transfer I/O . Maka dari itu kita membutuhkan mekanisme dalam sirkuit antarmuka perangkat individu untuk mengontrol apakah suatu perangkat di izinkan melakukan suatu proses interrupt –request.Biasanya kontrol di sediakan dalam bentuk bit interrupt-enable dalam sirkuit antar muka perangkat.
1)        Misalnya : (a)  Flag keyboard interrupt-enable
(b)     KEN
(c)      Display interrupt –enable
(d)     DEN dalam register CONTROL .
Flag- flag diatas jika di-set , maka sirkuit antar muka menghasilkan interrupt request kapanpun flag status yang sesuai dalam register STATUS di-set.
Dari penjelasan diatas dapat di simpulkan bahwa ada dua mekanisme mandiri untuk mengontrol interrupt  request yaitu Pada ujung perangkat dan pada ujung prosesor .
a.       Pada ujung perangkat jika suatu bit interrupt-enable dalam  register kontrol menentukan apakah perangkat tersebut diijinkan untuk menghasilkan interrupt request.
b.      Pada ujung prosesor jika suatu bit interrupt-enable dalam register PS atau prioritas menentukan apakah interrupt request akan diterima. 

                 Jika suatu prosesor yang menggunakan skema vectored interrupt , dengan alamat awal routine interrupt –servisnya di simpan didalam lokasi memori INTVEC.Maka kita dapat melakukan beberapa hal berikut ini.
1)      Load alamat awal routine interrupt –servise pada lokasi INTVEC
2)      Load alamat MINE dalam lokasi memori PNTR .Routine interrupt –servise akan    menggunakan lokasi ini sebagai pointer untuk menyimpan karakter input dalam memori.
3)      Enable interrupt keyboard dengan men –set bit 2 dalam register CONTROL ke1.
4)      Enable interrupt dalam prosesor dengan men-set bit IE ke 1 dalam prosesor status register ,PS.
                 Setelah inisialisasi selesai  maka pengetikan karakter dalam keyboard akan menyebabkan suatu interrupt request yang dihasilkan oleh antar muka keyboard.
Routine ini harus menjalankan tugas sebagai berikut:

1.Membaca karakter input dari register data input keyboard . Hal ini akan menyebabkan sirkuit antar muka menghilang interrupt requestnya.
2.Menyimpan karakter dalam lokasi memori yang ditunjuk oleh PNTR , dan menaikkan PNTR.
3.Pada saat mencapai ujung jalur , men-disable interrupt keyboard dan memberitahu program Main.
4.Kembali dari interrupt.
                 Operasi I/O pada komputer biasanya lebih banyak diguanakan ,sebagaimana sistem operasi komputer melakukan operasi komputer melalui operasi ini dan atas nama program user.
F . EXCEPTION
                 Exception adalah suatu  event interrupt yang menyebabkan eksekusi satu program ditunda dan eksekusi program lain dimulai.Istilah Exception sering mengacu kepada ivent interrupsi , oleh karenanya Interrupt I/O adalah salah satu contoh exception.
Beberapa jenis Exception :
A . Pemulihan dari error
        Komputer banyak menggunakan berbagai variasi teknik untuk memastikan bahwa semua hardware beroperasi secara baik dan tepat.Jika terjadi error , hardware kontrol mendeteksi dan memberitahukan kepada prosesor dengan memunculkan interrupt.

Main Program
Move                      #LINE,PNTR             Intilialize buffer pointer.
Clear                      EOL                            Clear end –of-line indicator.
BitSet                     #2,CONTROL            Enable keyboard interrupt.
BitSet                     #9,PS                           Set interrupt-enable bit in the PS.
Interrupt-servise routine
READ        MoveMultiple R0-R1,-(SP)                Save register R0 and R1 on stack.
Move                      PNTR,R0                    Load address pointer.
MoveByte              DATAIN,R1               Get input character and
MoveByte              R1,(R0)+                     Store it in memory.
Move                      R0,PTRN                    Up date pointer.
CompareByte         #$0D,R1                     Check if Carriage Return.
Branch6≠0             RTRN                        
Move                      #1,EOL                                   Indicate end of line
BitClear                 #2,CONTROL            Disable keyboard interrupts.
RTRN        MoveMultiple (SP)+,R0-R1               Restore registers R0 and R1.
Return-from-interrupt.

Pada saat pengolahan exception tersebut diinisialisai sebagai berikut dari error ,maka prosesor bekerja dengan cara yang tepat sama seperti dalam hal interrupt request I/O.
B . Debugging
        Software sistem biasanya selalu menyertakan suatu program yang disebut debugger, yang di gunakan untuk membantu programer untuk menemukan suatu error dalam program. Debugger menggunaka dua fasilitas yang penting yang di sebut trace dan breakpoint.
-          Trace adalah suatu exception terjadi eksekusi tiap intruksi, menggunakan debugging program sebagai routine exception-servise.Trace exception di –disable selama eksekusi debugging program.
-          Breakpoint adalah penyedia fasilitas yang mirip dengan program, kecuali program yang di-debug diinterupsi hanya pada titik tertentu  yang dipilih oleh user .Breakpoint mempunyai suatu intruksi yaitu Trap atau Software-interrupt.
C . Privilige Exception.
Adalah intruksi tertentu yang hanya dapat di akses pada saat prosesor berada dalam mode supervisor.

G.  ENGGUNAAN INTERRUPT DALAM SISTEM OPERASI
                 System operasi sangat bertanggung jawab dalam mengkordinasi semua kegiatan di dalam komputer. OS memperluas penggunaan interrupt untuk melakukan operasi I/O dan berkomunikasi dan mengontrol eksekusi program user.Mekanisme interrupt meng-enable sistem operasi untuk menetapkan prioritas , berpindah dari satu program user ke program lain, menerapkan fitur keamanan dan proteksi serta mengkordinir kegiatan I/O.Sistem operasi menggabungkan routine interrupt-servise untuk semua perangkat yang terhubung ke komputer.
Untuk mengilustrasikan interaksi antara program aplikasi dan sistem operasi biasanya menggunakan mode multitasking . Multitasking adalah mode operasi dimana prosesor mengeksekusi beberapa program user pada waktu yang sama.
Routine sistem operasi contoh I/O routines.
IOINIT           Ser prosecc status to Blocked.
                        Initialize memory buffer addres pointer and counter.
                          Call device driver to initialize device  and enable interrupts in the device                           interface.
                        Return from subroutine.
IODATA        Poll devices to determine source of interrupt.
                        Call appopriate driver.
                        If END = 1, then set proces status to Runnable Return from interrupt.


H. DIRECT MEMORY ACCESS
Suatu instruksi dalam mentransfer data input dan output di eksekusi hanya setelah prosessor menetapkan bahwa Perangkat-perangkat I/O telah siap.dalam melakukan hal ini,prosessor melakukan pool flag status di dalam antarmuka perangkat atau menunggu  perangkat tersebut mengirim interrup request.pada kedua kondisi tersebut,dilibatkan sejumlah overhead,karena beberapa instruksi program harus segera di eksekusi dalam tiap word data yang di transfer.selain polling register status perangkat,instruksi di butuhkan untuk meningkatkan address memori dan mencatat word count.pada saat kondisi interrupt di gunakan,terdapat overhead tambahan yang saling terkait dengan penyimpanan dan pemulihan program counter dan informasi keadaan yang lain.
Di dalam melakukan transfer blok besar  data dalam kecepatan tinggi, di gunakan pendekatan yang alternatif.suatu unit control di sediakan yang memungkinkan transfer blok data secara langsung antar perangkat eksternal dan memori utama,tanpa intervensi secara terus menerus dari prosessor. Pendekatan ini di sebut direct memeory access,atau DMA.
Transfer di DMA ini di lakukan oleh sirkuit  kontrol yang mana merupakan bagian dari antar muka perangkat I/O.kita sebut sirkuit ini sebagai sirkuit kontroler DMA.kontroler DMA memeiliki Fungsi yang biasa di lakukan oleh prosessor ketika mengakses memori utama.dalam tiap word yang di transfer.dan kontroler ini menyediakan address memory dan segala sinyal bus yang melakukan kontrol terhadap trsansfer data.karna harus mentransfer blok data,maka kontroler DMA meningkatkan/menaikkan alamat memory untuk setiap word yang berurut dan mencatat jumlah transfer yang di lakukan.walaupun DMA mampu mentransfer data tanpa adanya intervensi dari prosessor,pengoprasiannya harus tetap berada di bawah kontrol program-program yang di eksekusi prosessor.dalam menginisiasi sebuah transfer blok.prosessor akan mengirim adress awal,jumlah setiap word dalam blok,dan arah transfer.ketika menerima informasi ini,controler DMA melakukan operasi yang diinginkan.ketika seluruh blok sudah di transfer,kontroler tersebut akan menginformasikan dan memberi tahu prosessor dengan menampilkan sinyal Interrup.dan saat transfer DMA  di lakukan,program yang di merequest tersebut terhenti dan prosessor dapat di gunakan mengesekusi program lain.Sesudah transfer DMA selesai,prosessor akan kembali ke program yang meminta transfer tersebut.
Operasi I/O Selalu di lakukan oleh operating system sebagai suatu bentuk respon terhadap permintaan dari program aplikasi.operating system juga memiliki tanggung jawab untuk menunda ekseskusi satu program dan memulai eksekusi program lain oleh karena itu untuk operasi I/O Melibatkan DMA,OS dalam menetapkan program yang merequest transfer tersebut pada kondisi blocked.Gamabar berikut akan menunjukkan register kontroler DMA yang di akses prosessor dalam menginisiasi operasi transfer. Dua register di gunakan dalam menyimpan Alamat awal dan word count.dan register ketiga berisi flag kontrol dan statusnya Bit R/W menetukan arah transfer ,dan ketiak bit ini di set ke-1 oleh program instruksi ,kontroler melakukan operasi baca yaitu melakukan transfer data dari memory ke perangkat I/O.sebaliknya kontroler melakukan operasi tulis.ketika kontroler menyelasaikan transfer blok pada data dan telah siap menerima instruksi yang lain,maka flag done di set ke 1.Bit 30 adalah flag interrupt-enable,IE.ketika flag di set ke 1,kontroler akan manampilkan interrupt setelah menyelasaikan transfer blok data.dan selanjutnya kontroler menset bit IRQ  ke 1 setelah merequest interrupt.


IRQ                         31      30                                                                 1          0

IE
DONE
                                                                                                                                     R/W

Strating addrres
 


Word count
                                                                                                                                 
Gambar Pembangunan Kontroler DMA dalam system Komputer sbb:
prosessor
Memori utama
Kontroler disk/DMA
KONTROLER DMA
PRINTER
KEYBOARD
DISK
 









ANTAR MUKA JARINGAN
DISK
                                                     


Suatu contoh sistem Komputer yang terdapat pada gambar tersebut menunjukkan bagaimana kontroler DMA bekerja dan di gunakan.Kontroler Dma menghubungkan jaringan jaringan high-speed ke bus komputer.kontroler disk,yang mengontrol kedua disk selain itu memiliki kemampuan DMA dan menyediakan dua Saluran DMA,kontroler tersebut mampu melakukan dua opersi DMA sekaligus/Mandiri,seakan-akan tiap disk memiliki kontroler DMA Masing-masing .Register yang di  butuhkan dalam penyimpanan address,word count dan lain sebagainya di duplikasi,sehingga satu set bisa di gunakan dengan tiap perangkat.ketika memulai transfer DMA  Suatu Blok data dari memori utama ke salah satu dsik,suatu program menulis informasi address dan word count ke dalam register saluran kontroler disk yang cocok.program tersebut juga menginformasikan kepada kontroler disk untuk mengindentifikasi data untuk pengambilan selanjutnya,Kontroler DMA akan meneruskan implementasi operasi tretentu secara mandiri.ketika transfer DMA selesai,fakta ini di rekam dalam rgister status dan kontrol saluran DMA dengan menset bit done.saat yang sama  apabila BIT IE di set,maka kontroler akan mengirim interrupt request ke prosessor  dan men set bit IRQ.Register staus dapat pula di gunakan dalam merekam informasi lain,contohnya apakah transfer berjalan baik ataukah terjadi error.
Pengaksesan memory oleh prosessor dan kontroler DMA saling terkait.request dari perangkat DMA dlam menggunakan bus selalu mendapat prioritas lebih tinggi daripada request dari prosessor.antar perangkat DMA yang berlainan,prioritas tertinggi akan di berikan untuk peripheral berkecapatan tinggi seperti disk,antarmuka sebuah jaringan berkecapatn tinggi ataukah display grafik.karena prosessor menghasilakan siklus akses yang sangat banyak,kontroler DMA  juga dapat di katakan “mencuri” Proses memori dari sebuah prosessor,oleh karena itu dalam Teknik interweaving ini biasanya disebut “cycle stayling”.atau dapat pula Di katakan kontroler DMA di berikan akses ekslusif ke memori utama dalam mentransfer blok data tanpa interrupsi.dan ini di kenal sebagai mode block atau burst.
Kebanyakan kontroler DMA menggabungkan buffer penyimpanan data,contohnya dalam hal antar muka jaringan pada gambar di atas,Kontroler  DMA membaca blok data memori utama dan menyimpannya dalam input buffernya.transfer ini akan menggunakan burst pada kecepatan yang sesuai dengan memori dan bus komputer.setelah itu data dalam buffer di transmisikan melalui jaringan pada kecepatan sebuah jaringan.Suatu hal akan terjadi jika prosessor dan Kontroler DMA  atau dua kontroler DMA mencoba memakai bus pada kondisi yang bersamaan dalam mengakses memeori utama.

       

BAB III
 PENUTUP
A. Kesimpulan

Teknologi di era ini sudah mengalami kemajuan yang pesat oleh karena itu memudahkan segala aktivitas manusia termasuk dalam memenuhi kebutuhan sehari-hari, contohnya ialah komputer. Komputer(CPU) memiliki sistem yaitu Sistem I/O (Input/Output). Pada  sistem komputer, I/O memiliki peranan atas pengontrolan,pengendalian sebuah perangkat luar ataupun eksternal dan bertanggung jawab pula dalam melakukan pertukaran suatu data antara perangkat-perangkat luar  dengan register-register pada CPU. Di dalam melakukan hal ini, kita memerlukan antarmuka internal dengan komputer(CPU Interface) dan antarmuka dengan perangkat eksternalnya untuk mngetahui jalannya fungsi-fungsi pengontrolan. Selain  dari sistem I/O ada juga modul modul I/O.sistem komputer ini yang memiliki andil atas pengontrolan sebuah perangkat luar atau lebih dan bertanggung jawab pula dalam melakukan  pertukaran-pertukaran data antara perangkat luar lainnya dengan main memori ataupun dengan register – register pada sebuah CPU. Selain itu  ada juga I/O yang terprogram yang berperan dalam  bertukar data antar CPU seperti moving data, pengiriman perintah baca maupun tulis, dan memonitoring perangkat akan tetapi cara ini memiliki kelemahan yaitu  CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O , apalagi CPU memiliki kecepatan operasi yang sangat bagus. Kunci utama  dalam organisasi I/O ialah mempunyai fungsi dan perintah masing-masing yang memiliki peranan atau andil yang signifikan untuk sistem komputer.

No comments:

Post a Comment

Featured Post

Sistem Informasi Kuis dan Materi (e-learning) 2019