Jumat, 26 Desember 2008

Direct Memory Access (DMA)

DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO). Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamatalamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.

Tiga langkah dalam transfer DMA:
  1. Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
  2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
  3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data. Metode yang pertama ialah metode yang sangat baku dan sederhana disebut HALT, atau Burst Mode DMA, karena pengendali DMA memegang kontrol dari sistem bus dan mentransfer semua blok data ke atau dari memori pada single burst. Selagi transfer masih
dalam prosres, sistem mikroprosessor diset idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.
Metode yang kedua, mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus. Metode DMA ini disebut cycle stealing mode. Cycle stealing DMA lebih kompleks untuk diimplementasikan
dibandingkan HALT DMA, karena pengendali DMA harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka.

Kelemahan I/O terprogram dan Interrupt- Driven I/O

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

INTERRUPT

Interrupt adalah sinyal yang menginformasikan kepada program bahwa terdapat kejadian tertentu pada sistem komputer. Jika program menerima sinyal interrupt, maka dibutuhkan langkah khusus. Sinyal interrupt dapat menyebabkan sebuah program tidak berjalan sementara waktu untuk beralih melayani interrupt.

Untuk memungkinkan terjadinya interrupt ini pada sebuah sistem komputer, CPU memiliki sebuah jalur khusus terhadap suatu chip pengatur interrupt eksternal (bagian dari chipset), yang berisi database sederhana yang dikenal dengan interrupt vectors.

Ketika sebuah interrupt terjadi pada chip, maka CPU menyimpan informasi terakhir yang dia kerjakan, berulah dia mengerjakan sesuai dengan informasi yang ada pada interrupt vector tesebut. Interrupt vector ini sebenarnya hanya sebuah nama istilah yang berisi informasi tentang selaan yang terjadi, kalau diselidiki di dalamnya, isinya adalah berupa tabel yang berisi angka-angka). Pada interrupt vector inilah ditemukan kemana dan apa proses berikutnya yang harus dilaksanakan oleh komputer. Ketika pekerjaan interrupt tadi selesai dilaksanakan, maka komputer melakukan pelacakan kembali apa pekerjaan sebelumnya yang sedang dilaksanakannya.

Pada waktu menerima sebuah interrupt, komputer membagi interrupt tersebut dalam berbagai level, tergantung dari CPU yang digunakan. Contohnya pada komputer yang digunakan untuk pekerjaan yang cukup membutuhkan konsentrasi dari CPU, maka CPU tersebut memungkinkan untuk mengabaikan interrupt yang prioritasnya rendah, katakanlah pengetikkan yang dilakukan oleh seorang user melalui keyboard, namun komputer tersebut akan memberikan respon yang sangat cepat apabila terjadi gangguan pada memori yang digunakannya.

Sinyal interrupt dapat terjadi karena berbagai hal. Sebagai contoh, setiap ketukan keyboard akan menghasilkan sebuah sinyal interrupt. Interrupt dapat juga dihasilkan oleh piranti lainnya seperti printer, untuk mengindikasikan bahwa sesuatu telah terjadi. Hal ini disebut dengan interrupt hardware. Sinyal interrupt yang disebabkan oleh program disebut interrupt software.

PC mendukung 256 jenis interrupt software dan 15 interrupt hardware. Setiap jenis interrupt software dihubungkan dengan sebuah interrupt handler, yaitu sebuah rutin yang mengendalikan ketika terjadi interrupt. Jika sebuah tombol keyboard ditekan, maka akan memicu sebuah interrupt handler khusus. Daftar lengkap interrupt dan interrupt handler yang bersesuaian disimpan pada sebuah tabel yang disebut interrupt vector table, yang disimpan pada 1 K pertama area memori. (dna)

Membuat Animasi Digital Dengan Machinima


Pada tanggal 24 Agustus 2007 di Ayola Cybergame Square & Internet Cafe yang bertempat di lantai 2 Blok B Mangga Dua Square, Jl. Gunung Sahari Jakarta Utara diadakan perkenalan sekaligus workshop teknik animasi Machinima.
Machinima merupakan sebuah teknik animasi digital baru yang menggunakan potongan adegan dari video game yang dapat Anda atur sesuka hati. Dengan menggunakan teknik tersebut, Anda dapat menjadi sutradara dan produser film Anda sendiri tanpa membutuhkan biaya yang besar. Karena Anda hanya membutuhkan sebuah game dengan karakter yang dapat Anda kendalikan (game yang digunakan dalam acara ini adalah MMORPG Granado Espada yang sekaligus diperkenalkan kepada gamer online Indonesia), program yang mampu merekam adegan dalam game (seperti Fraps), dan program untuk menyatukan dan mengedit adegan yang telah Anda rekam sebelumnya (Windows Media Maker).
Acara workshop Machinima sendiri berlangsung selama dua hari, pada tanggal 24 dan 25 Agustus 2007 dengan dipandu oleh Cillian Lyons, pelatih dari Academy of Machinima Arts and Sciences. Gerakan pengenalan Machinima di Asia yang dinamakan MachinimAsia didukung oleh Intel dengan kemampuan prosesor Intel Core Microachitecture yang memudahkan pembuatan digital content 3D.
MachinimAsia diluncurkan di Singapura tahun lalu dan Indonesia merupakan negara kedua setelah Malaysia yang mendapatkan pelatihan dan pengenalan teknik digital tersebut. Rencananya pelatihan ini akan terus dilaksanakan pada beberapa negara Asia seperti Malaysia, Indonesia, Singapura, Filipina, Tailan, Korea, dan Taiwan dari bulan Juli hingga Desember 2007. Untuk keterangan lebih lanjut mengenai Machinima dan Granado Espada dapat Anda temukan di alamat http://www.chip.co.id/chipmk2/content/view/2410/38/www.machinimasia.org dan ge.iahgames.com.