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.

Pelacakan Eksekusi Pada Sebuah Instruksi SIC

Nama : Dhea Imaniar Herlina
Kelas : 4IB03A
Dosen : Setiyono
Tugas Softskill Organisasi & Arsitektur Komp. # (1)
 
Pelacakan Eksekusi Pada Sebuah Instruksi SIC

Setelah menjabarkan siklus cpu, mekanisme pemilihan waktu dan pengendalian serta unit-unit fungsional pada SIC, kita telah mendefinisikan bagaimana register dan unit-unit pada komputer yang saling berhubungan dan bagaimana data yang di transfer diantara mereka. Pada bagian ini, kita akan melacak suatu intruksi melalui keseluruhan siklus fecth dan eksekusinya sebagai sebuah contoh tentang cara kerja SIC.
 
Untuk memulainya, anggaplah bahwa isi unit memori adalah seperti ditunjukkan pada Gambar 4-6 (a). Kita akan melacak melalui pelaksanaan intruksi yang sekarang tersimpan dalam M[10]. Kita anggap intruksi sebelumnya, M[9], telah dijalankan dan isi dari register CPU adalah seperti yang ditunjukkan pada Gambar 4-6(b). Perhatikan flag F dan E telah disusun untuk siklus fetch berikutnya, tetapi counter C belum kembali ke 00.



Eksekusi tanpa interupsi
Pelacakan intruksi pada M[10] dilukiskan dalam rangkaian “snapshot” pada Gambar 4-7, dimana setiap snapshot menunjukan keadaan dari sistem tepat setelah C ditingkatkan. Register yang diubah sejak snapshot sebelumnya dutunjukkan dengan huruf tebal.
Ketika counter bergerak ke 00, akan dihasilkan sinyal waktu pertama, t0, pada siklus fetch. Berdasarkan intruksi siklus fetch yang diberikan dalam Tabel 4-6, aksi-aksi berikut ini akan dilakukan. Pada saat t0, isi PC akan ditransfer ke MAR [Gambar 4-7(a)]. Pada saat t0, word memori yang dijabarkan oleh MAR dibaca ke dalam MBR dan PC meningkat [bagian (b)]. Pada sinyal waktu ketiga, t2, isi MBR disalin ke IR [bagian(c)]. Transfer yang terjadi pada sinyal waktu terakhir siklus fetch, t3, tergantung pada nilai field IX pada IR. Karena nilai tersebut adalah 1, maka nilai field AD dan IR ditambahkan ke nilai register X dan disimpan dalam MAR. Sebagai tambahan; flag F dibersihkan dan flag E di-set. Transfer ini ditunjukkan pada Gambar 4-7(d). sewaktu counter C kembali ke 00, maka flag F dan E akan memaksa CPU untuk memasuki siklus eksekusi. Siklus eksekusi yang akan digunakan dikendalikan oleh opcode yang saat itu berada dalam field OP dan IR. Dalam hal ini, dipakai siklus eksekusi ADD yang ditunjukkan sebelumnya pada Tabel 4-8. Dengan demikian pada sinyal t0, isi word memori yang dijabarkan oleh MAR, M[25], disalin ke dalam MBR [bagian (e)].


Pada saat t1, nilai MBR ditambahkan ke A dan juga disimpan ke A. Karena M[25] berisi 50, nilai A menjadi 151 [bagian (f)]. Tidak ada tindakan yang terjadi pada sinyal waktu t2, selain peningkatan C secara otomatis [bagian (g)]. Pada contoh pertama ini, tidak ada interupsi yang terjadi selama siklus fetch maupun siklus eksekusi. Dengan demikian pada Gambar 4-7(h), F dan E disusun untuk siklus fetch berikutnya.

Eksekusi dengan menggunakan interupsi
Sekarang mari kita anggap bahwa kadang-kadang selama siklus fetch maupun siklus eksekusi pada Gambar 4-7 terjadi interupsi. Kita ambil pelacakan instruksi dalam M [10] pada t2, F=0 dan E=1 [Gambar 4-7(g) pada contoh terdahulu], tetapi dengan INT=1 dan SW[MASK]=0. Gambar 4-8(a) melukiskan keadaan baru ini. Pada saat ini, sewaktu sinyal waktu terakhir siklus eksekusi ADD, t3, (NOT SW [MASK] AND INT), bernilai benar, sehingga kondisi pernyataan IF menjadi salah. Sebagai hasilnya, hanya E yang berubah [Gambar 4-8(b)].
Ketika C meningkat menjadi 00, flag E dan F akan mengarahkan CPU ke siklus interupsi (ditunjukkan dalam Tabel 4-7). Pada sinyal waktu pertama pada siklus ini, t0, akan terjaadi tiga transfer. Isi PC ditransfer ke field AD pada MBR, flag INT dibersihkan dan field MASK pada SW di-set [bagian (c)]. Pada saat t1, PC di-set bernilai 1 dan MAR dibersihkan [bagian (d)]. Kemudian pada sinyal waktu ketiga, t2, MBR ditulis ke memori pada address 0 [bagian (e)]. Tindakan terakhir pada siklus ini adalah menyusun F dan E untuk siklus fetch. Hal ini dikerjakan dengan men-set F ke 1 seperti ditunjukkan pada Gambar 4-8 (f).
Seperti yang dapat dilihat pada kedua contoh tersebut, baik terjadi interupsi maupun tidak, pada akhir suatu siklus intruski yang lengkap, CPU sudah siap untuk mulai bekerja pada intruksi berikutnya. Sebenarnya, intruksi mana yang berikutnya tergantung pada apa yang terjadi selama siklus eksekusi sebelumnya dan jika siklus interupsi telah dilaksanakan. Bagaimanapun juga hal ini tidak relevan untuk CPU yang hanya terus bekerja dan mengambil intruksi yang direferensikan oleh PC. Lihat kembali Gambar 4-7 dan 4-8 untuk lebih memahami cara kerja SIC.


HELP! kETINDIH???

Semalam gue ngalamin ketindihan awalnya gue ga tau namanya apa gue anggep bad dream aja, eh pas gue cari di google namanya ketindihan karena makhluk halus ada jg yg sebut sleep paralysis.
Gue cuma inget di akhir2 mimpi gue, gue didekap kakinya sama pangeran ganteng (seriously, ga ngada2) dan gatau satu lg kurang inget, gue mau pergi tapi ga bisa, kayak disuruh pilih pangeran ganteng itu atau pergi (bangun). Tapi entah knp lama kelamaan pangeran ganteng ini ada aura seremnya terus gue maksain bangun gue minta tolong tp dalam mimpi, gue kan bobo berdua sama adek gue dia bobo posisi miring gue kayak setengah bangun minta tolong adek gue bangunin gue, mata gue kayak melek2 dikit tapi itu ternyata mimpi, gue paksain gerakin salah satu badan gue buat mukul atau nyubit badan gue tapi rasanya berat banget ga bisa bergerak sama sekali padahal gue inget banget gue bobo udah baca do'a gue juga pakai tutup mata udah bersihin muka udah  prepare bgt lah, mungkin karena gue juga bobonya jam satuan. Terus dalem mimpi gue coba baca2 surat al-fatihah 1x, an-nas, al-falaq, al-ikhlas 3x tapi yang pertama gue gagal kayak fokus gue diganggu gtu, baru yg kedua gue bener2 baca dg bener ditambah audzubillah himinas syaiton nirojim berkali kali, alhamdulillah langsung gue sadar, gue langsung duduk bingung, kaki gue telapaknya aja dingin tp badan yg lain anget aja, gue takut. Gue liat sebelah adek gue "sama persis" di mimpi gue dia bobo miring ngadep gue dari muka sampai tangan sama persis waktu gue minta tolong di mimpi. Setelah itu, gue ga berani tidur. Takut kesadaran gue hilang atau kejadian itu berulang lagi. Gue bangunin adek gue, dia bangun trs bobo lagi. Gue liat jam, jam 3 gue kebangun, baru 2 jam gue tidur.

Gue dapet penjelasan dari artikel ini
http://doktersehat.com/pernahkan-mengalami-tindihan-saat-tidur/

Terus dapet kata2 ngena dari sini
https://imultidimensi.wordpress.com/2011/01/18/tindihan-gerbang-menuju-lucid-dream-experience/