RSS

Transfer Data


Nama : Dhea Imaniar Herlina
Kelas : 4IB03A
Dosen : Setiyono
Tugas Softskill Organisasi & Arsitektur Komp. # (2)
 
A. Transfer Data
Jenis instruksi mesin yang paling penting adalah instruksi transfer data. Instruksi transfer data harus menetapkan segala sesuatu. Pertama, menetapkan lokasi operand sumber dan operand tujuan. Lokasi-lokasi tersebut dapat berupa memori, register, atau bagian paling atas daripada stack. Kedua, menetapkan panjang data yang akan dipindahkan. Ketiga, menetakan mode pengalamatan setiap operand. Dalam hal tindakan CPU, mungkin operasi transfer data merupakan jenis operasi yang paling sederhana. Apabila sumber dan tujuannya merupakan register, maka CPU cukup melakukan pemindahan data dari register yang satu ke yang lainnya saja; hal tersebut merupkaan operasi internal bagi CPU. Apabila sebuah atau kedua operand berada di dalam memori, maka CPU harus melakukan sebagian atau seluruh tindakan berikut ini:
1. Menghitung alamat memori, yang didasarkan pada mode alamat.
2. Apabila alamat mengacu ke memori virtual, terjemahkan dari alamat memori virtual ke memori sebenarnya.
3. Menentukan apakah butir alamat berada dalam cache.
4. Bila tidak berada dalam cache, terbitkan perintah ke modul memori.
Semua komputer menerapkan satu atau semua kombinasi dari tiga teknik pengaksesan. Namun demikian, penerapan tertentu pada sebuah komputer mungkin bervariasi, bahkan terkadang kita tidak mampu memetakan penerapan tersebut secara tepat dalam salah satu skema, sekarang mari kita perhatikan proses-proses yang terlibat pada masing-masing tiga skema tersebut dalam mempengaruhi proses transfer data.
B. Format Transfer Data
Ada dua format pokok transfer data yakni transmisi data paralel dan transmisi data serial. Transfer data paralel merupakan format yang lebih sederhana di antara keduanya dan mencakup pengiriman data word dengan panjang tertentu atau biasa disebut dengan karakter, secara paralel melalui sejumlah baris (sambungan komunikasi). Dengan kata lain semua bit pada karakter dikirim secara bersamaan dalam batas waktu transmisi yang diberikan. Sebagai contoh, jika panjang karakter 8 bit maka diperlukan delapan sambungan komunikasi untuk mengirimnya secara paralel.
Pada transfer data serial terkesan lebih rumit dari pada transfer data paralel, disini data dikirim secara berurutan dalam suatu baris komunikasi tunggal. Untuk mengirimkan data secara serial, pengirim dan penerima harus membagi bartas waktu pengiriman karakter tersebut menjadi beberapa subinterval sehingga setiap bit akan dikirim dan diterima selama satu suntinterval tersebut. Misalnya, suatu karakter sepanjang 8 bit akan menempati delapan subinterval. Perhatikan, karena data ditransfer secara parallel ke dan dari CPU dan memori, maka unit interface suatu piranti yang berkomunikasi dalam mode serial harus memiliki sirkuit konversi data paralel-ke-serial dan serial-ke-paralel. Dengan demikian ketika suatu piranti memasukkan (menerima) suatu karakter, maka word data paralel yang dihasilkan CPU pertama-tama harus dikonversikan ke dalam aliran bit serial. Demikian juga, jika suatu bagian mengeluarkan (mengirimkan) data, maka aliran bit serial yang memasuki CPU pertama-tama harus dikonversikan ke dalam karakter.
Sudah jelas bahwa transfer data paralel lebih menguntungkan daripada transfer serial karena ia memugkinkan kecepatan transfer data yang lebih besar. Namun ia memiliki kerugian dimana ia membutuhkan sambungan komunikasi yang lebih banyak daripada transfer serial. Dengan demikian komunikasi serial biasanya digunakan untuk jarak jauh. Namun jika kecepatan transfer data menjadi hal yang penting, maka kita dapat menggunakan transmisi paralel. Sebagai contoh, suatu terminal biasanya mengakses computer dalam mode transfer data serial karena piranti tersebut memiliki kecepatan transfer data yang rendah. Sebaliknya, sebuah disk, merupakan piranti dengan kecepatan transfer data yang tinggi, berlokasi dekat dengan komputer dan mengakses komputer dalam mode transfer data paralel.
3. Mode Transfer Data
Jumlah baris komunikasi biasanya melebihi jumlah bit karakter yang dikirim dalam transfer data paralel dan juga melebihi sambungan (link) tunggal yang diperlukan untuk transfer serial. Dalam kedua kasus itu, baris tambahan mengendalikan baris yang digunakan oleh pengirim untuk memberi sinyal kepada penerima kapan data siap dibaca dan oleh penerima untuk memberi sinyal kepada pengirim bahwa bahwa data telah terbaca.
            Proses pemberian sinyal pada transfer data paralel maupum serial dapat bersifat (synchronous atau asynchronous. Pada transfer data synchronous, baris kendali digunakan untuk mensinkronkan waktu pada semua kejadian yang terjadi selama periode waktu tertentu. CPU dapat memasok data ke atau menerima data dari bagian eksternal tanpa berkomunikasi lebih dahulu selain dengan alamat suatu piranti, CPU menempatkan alamat priranti pada bus alamat dan kemudian dan kemudian menempatkan data pada bus data. CPU menaikkan baris kendali penulisan ke-1 dan suatu piranti harus membaca data tersebut pada saat itu.
            Pada saat baris penulisan kembali ke-0, piranti tersebut harus sudah membaca data itu. Demikian juga, untuk membaca data dari suatu piranti, CPU menempatkan alamat piranti pada bus alamat dan menaikkan baris kendali pembacaan ke-1. Piranti yang dipilih harus menempatkan data pada data bus dan menjaganya tetap di sana sewaktu baris pembacaan ada pada posisi 1.
 Perhatikan bahwa pada transfer data synchronous, suatu piranti harus bereaksi selama periode waktu tertentu yang diberikan oleh CPU. Dengan kata lain, semua piranti harus dapat bereaksi dengan kecepatan yg sama. Namun karena piranti-piranti I/O bervariasi kecepatan operasinya, persyaratan ini akan menimbulkan suatu masalah. Kita dapat memecahkan masalah tersebut dengan mengatur durasi sinyal pembacaan dan penulisan untuk mengakomodasikan piranti-piranti tersebut dengan respon watu yang berbeda-beda atau dengan mengoperasikan semua piranti pada kecepatan yang paling rendah. Jadi jelas, bahwa semua alternative tersebut tidak diinginkan.

Masalah tersebut dapat dipecahkan dengan menggunakan teknik transfer data asynchronous. Mode ini melibatkan proses pulang-pergi (back-and-forth) dalam meneruskan sinyal kendali antara pengirim dan penerima. Proses ini, disebut sebagai jabat-tangan (handshaking), meyakinkan transfer data yag dapat diandalkan atara pengirim dan penerima. Baris handshake antara CPU dan peripheral mengendalikan transfer data dengan menyediakan komunikasi dalam bentuk sinyal permintaan dan pemberitahuan.
            Gambar 6-7 (b) menunjukkan pengaturan waktu transfer data asynchronous. Untuk penulisan dalam mode transfer data asynchronous, CPU menempatkan alamat suatu piranti yang terpilih pada bus alamat dan data pada bus data. Kemudian CPU akan menaikkan baris kendali penulisan ke-1. Piranti tersebut membaca data itu dan menaikkan baris kendali data valid (yang diterima) ke-1. CPU harus menjaga alamat dan data pada bus sampai ia menerima sinyal data valid. Setelah menerima sinyal tersebut, CPU memindahkan alamat dan data dari bus dan menurunkan baris penulisan ke-O. Hal ini memungkinkan piranti untuk merendahkan baris data valid (diterima).





 Gambar  6-7 Sinyal Pengaturan Waktu

3. Prinsip Operasi Transfer Data
            Sekarang mari kita perhatikan mekanisme transfer data dalam 3 metode pengaksesan yang dibahas pada Bagian 6.2. skema yang paling sederhana dan transparan adalah I/O terprogram. Ia dapat diterapkan dengan paling sedikit dua instruksi I/O, meskipun terkadang ada intruksi tambahan. Dengan demikian dalam I/O terprogram, diambil langkah-langkah berikut :
1.      CPU menguji flag status piranti secara periodic untuk menentukan apakah piranti itu siap untuk memulai transfer data.
2.      Jika piranti tersebut siap, CPU menerbitka sinyal pembacaam  atau penulisan dan yerjadi transfer data. Dalam mode input suatu instruksi IN menyebabkan suatu word data ditransfer dari port I/O ke sebuah resgister CPU, kemudian CPU akan memindahkan word data ke lokasi memori yang semestinya. Sedangkan dalam mode output, data word dari memori ditempatkan ke sebuah resgister CPU da ditransfer, di bawah intruksi OUT, ke port I/O.
3.      CPU menunggu sebuah tanda dari piranti I/O bahwa transfer data transfer telah rampung.
Langkah-langkah berikut ini harus dilakukan untuk melaksanakan sebah proses I/O interupsi yang dihasilkan oleh sebuah piranti I/O atau lebih :

1.      Piranti I/O menerbitkan sinyal INTR.
2.      CPU mengji apakah piranti yang berinterrupsi di-mask. Jika tidak maka CPU menguji posisi interupsi piranti tersebut dengan prioritas program yang sedang berjalan dan prioritas piranti lain memerlukan suatu interupsi pada saat yang bersamaan.
3.      Jika prioritas tersebut mempunyai prioritas yang tepat maka CPU mengirimka sebuah sinyal INTA dan mem-fetch vector interupsi piranti tersebut.
4.      CPU menyimpan status program yang sedang berjalan (isi register word status program) dalam memori dan alamat kembali (isi dari program counter). Biasanya CPU memasukkan informasi ini ke dalam memori stack.
5.      CPU melompat ke routine palayanan interupsi piranti dan melaksanakannya.
6.      CPU mendapatkan kembali (pop) PSW dan PC dari dalam memori stack dan kembali ke program utama.
Seperti yang kita lihat, proses I?O interupsi menggunakan tiga routine yaitu sebuah routine pelayanan, sebuah routine PUSH untuk menyimpan PSW dan PC ke dalam stack dan sebuah routine POP untuk mendapatkan kembali PSW dan PC dari dalam stack.