Category

Diberdayakan oleh Blogger.

Senin, 13 Juni 2016

Mater Pemrograman Mikro, Computer Pipeline, dan Pemrosesan Paralel

by Unknown  |  at  15.51



1.            Pemrograman Mikro
Pemrograman mikro adalah proses penerjemahan dan eksekusi dari setiap instruksi prosesor menjadi urutan instruksi yang lebih kecil mikro. Ini untuk mengatakan bahwa mikro-program adalah proses penulisan kode mikro untuk prosesor-mikro. Ini mendefinisikan fungsi prosesor-mikro sambil mengeksekusi instruksi mesin-bahasa. Juga dikenal sebagai mikro-coding, konsep pemrograman mikro pertama kali dikembangkan pada tahun 1951 oleh Maurice Wilkes. Ini adalah teknik yang digunakan dalam menerapkan sebuah Unit Kontrol. Micro-kode atau mikro-program dikembangkan sebagai instruksi set CPU. Dengan demikian, insinyur desain CPU menulis mikro-program untuk mengimplementasikan set instruksi mesin. Dalam proses pengembangan produk perangkat lunak, ini-kode mikro dapat ditulis atau diubah beberapa kali bahkan selama tahap desain nanti. fleksibilitas seperti di affords mikro-program besar kebebasan untuk merancang insinyur untuk mengubah dan / atau datang dengan set instruksi yang lebih kompleks dan dengan demikian sebagian besar memfasilitasi desain CPU fleksibel. Pada beberapa komputer, mikro-kode yang disimpan dalam ROM dan karenanya tidak dapat dimodifikasi. Tapi di komputer yang lebih besar, mereka disimpan dalam EPROM dan, dengan demikian, dapat digantikan dengan versi segar atau yang lebih baru. Konsep pemrograman mikro juga digunakan dalam pengembangan perangkat lunak online.
 Perkembangan pesat dalam teknologi komputer dalam beberapa tahun terakhir telah membuat konsep pemrograman mikro tampak agak berlebihan. Program menjadi lebih kompleks dan ini memiliki dampak langsung pada kinerja perangkat lunak dan pembangunan. Interpreter dan compiler telah membuat kode tingkat rendah dari perintah tingkat tinggi. Kemajuan tersebut telah digantikan keunggulan microprogramming. Ada telah skema desain CPU yang tidak menggunakan pemrograman mikro seperti TTA Prosesor, Superscaler Prosesor, Prosesor RISC, dan Prosesor RISC. Pemrograman mikro menawarkan suatu pendekatan yang lebih terstruktur untuk merancang unit kendali logika (CLU) dibandingkan dengan kendali hard-wired. Rancangan pemrograman mikro relatif mudah diubah-ubah dan dibetulkan,menawarkan kemampuan diagnostik yang lebih baik dan lebih dapat diandalkan daripada rancangan hard-wired. Karena waktu akses memori kendali ROM menentukan kecepatan operasi CLU maka kendali microprogrammed mungkin menghasilkan CLU yang lebih lambat dibandingkan dengan kendali hard-wired.Alasannya adalah bahwa waktu yang diperlukan untuk menjalankan suatu instruksi-mikro juga harus mencakup waktu akses ROM. Sebaliknya, suatu keterlambatan dalam CLU hard-wired hanya mungkin disebabkan oleh keterlambatan waktu penyebaran melalui perangkat keras, yang relatif sangat kecil. Bagaimanapun juga, ilmu ekonomi kelihatannya lebih menyukai kendali hard-wired hanya jika sistem itu tidak terlalu kompleks dan hanya memerlukan beberapa operasi kendali.
Instruksi-mikro merupakan operasi primitif tingkat rendah yang bertindak secara langsung pada sirkuit logika suatu komputer.Mereka memerinci fungsi-fungsi (sinyal-sinyal) seperti berikut :
1.            Membuka atau menutup suatu gerbang (gate) dari sebuah register ke sebuah bus.
2.            Mentransfer data sepanjang sebuah bus.
3.            Memberi inisial sinyal-sinyal kendali seperti READ, WRITE, SHIFT, CLEAR, dan SET.
4.            Mengirim sinyal-sinyal waktu.
5.            Menunggu sebuah periode waktu tertentu.
6.            Menguji bit-bit tertentu dalam sebuah register.
Adapun keuntungan Pemrograman Mikro yaitu sebagai berikut :
1.            Rancangan microprogrammed relative mudah diubah-ubah dan dibetulkan
2.            Menyediakan kemampuan diagnostic yang lebih baik dan lebih dapat diandalkan daripada rancangan hard-wired
3.            Utilisasi memori utama dalam computer microprogrammed biasanya lebih baik karena perangkat lunak yang seharusnya menggunakan ruang memori utama justru ditempatkan pada memori kendali
4.            Pengembangan ROM lebih lanjut (dalam kaitan dengan harga dan waktu akses) secara lebih jauh justru menguatkan posisi dominant pemrograman mikro, salah satunya dengan menyertakan unit memori ketiga disebut sebagai nano-memory (tambahan bagi memori utama dan memori kendali). Dalam mengerjakan hal ini, mungkin terjadi pertukaran (trade-off) yang menarik antara pemrograman mikro horisontal dan vertikal.
Kekurangan dari Pemrograman Mikro sebagai berikut :
1.            Karena waktu akses memori kendali ROM menentukan kecepatan operasi CLU maka kendali microprgrammed mungkin menghasilkan CLU yang lebih lambat dibandingkan dengan kendali hard-wired.  Alasannya bahwa waktu yang diperlukan untuk menjalankan suatu instruksi mikro juga mencakup waktu akses ROM, Sedangkan, suatu keterlambatan dalam CLU hard-wired hanya mungkin disebabkan oleh keterlambatan waktu penyebaran melalui perangkat keras, yang relatif sangat kecil. (hard-wired digunakan hanya jika system itu tidak terlalu kompleks dan hanya memerlukan beberapa operasi kendali).
2.            Untuk CPU kecil dengan sumber daya hardware yang sangat terbatas, microprogrammed relatif lebih mahal dibanding hard-wired.

2.            Komputer Pipeline
Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja. Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem computer. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang dijalankan oleh microprocessor.  Contoh pipeline dalam komputer sebagai berikut :
1.            Pipeline Instruksi, biasanya digunakan di unit pemroses sentral agar istruksi - instruksi dapat dijalankan dalam satu waktu dalam satu sirkuit digital. Biasanya sirkuitnya dibagi dalam beberapa tahap, termasuk decode instruksi, aritmatika dan tahap - tahap penjemputan data dari register, dimana setiap tahap melakukan satu instruksi dalam satu waktu.
2.            Pipeline Grafis, sering ditemukan dalam sebagian besar unit pemrosesan grafis, yang terdiri dari berbagai unit aritmatik atau unit pemroses sentral lengkap, yang menerapkan berbagai macam tahap dari operasi render yang umum (seperti proyeksi perspektif, kalkulasi warna dan pencahayaan, primitif gambar, dan sebagainya).
3.            Pipeline Perangkat Lunak, dimana keluaran dari suatu program langsung dipakai oleh program lain sebagai masukkan sehingga dapat langsung diproses.
Adapun klasifikasi Pipeline yaitu sebagai berikut :
1.            Berdasarkan fungsi
a.       Pipelining Aritmatika
b.      Pipelining instruksi, memfetch instruksi secara berurutan
c.       Pipelining prosesor, ketika stage suatu pipeline merupakan prosesor aktual dan latch-latch (tambahan kunci) saling berbagi memori antara prosesor-prosesor tersebut.
2.            Berdasarkan konfigurasi
a.       Unifungsi, menjalankan hanya satu jenis pokok operasi.
b.      Multifungsi, menjalankan fungsi-fungsi yang berbeda.
c.       Statis, instruksi yang sama dijalankan bersamaan waktu.
d.      Dinamis, beberapa konfigurasi fungsional dapat muncul sekaligus.
e.       Skalar yaitu memproses serangkaian skalar (angka) seperti ADD dalam loop for dna vektor yaitu untuk memproses instruksi vektor (prosesor vektor).
Adapun keuntungan dari Pipeline sebagai berikut :
1.              Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.
2.              Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit.
3.              Jika  pipeline  digunakan sebagai pengganti, hal itu dapat menghemat sirkuit vs combinational yang lebih kompleks sirkuit.
Kekurangan dari Pipeline sebagai berikut :
1.            Prossesor  non-pipeline hanya menjalankan satu instruksi pada satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi.
2.            Instruksi latency di prossesor non-pipeline sedikit lebih rendah daripada dalam pipeline setara. Hal ini disebabkan oleh fakta bahwa sandal jepit ekstra harus ditambahkan ke jalur data dari prossesor pipeline.
3.            Prossesor non-pipeline akan memiliki instruksi bandwidth yang stabil. Kinerja prossesor yang pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda.

3.            Pemrosesan Paralel
Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
Komputasi paralel membutuhkan:
• algoritma
• bahasa pemrograman
• compiler
Sebagian besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer dengan ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software canggih yang disebut distributed processing software. Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing.
1.            Klasifikasi arsitektur Komputer Parallel
Sesuai taksonomi Flynn, seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4 :
a.       SISD (Single Instruction Single Data Stream) Arus Instruksi Tunggal dan Data Tunggal
• Prosesor tunggal
• Aliran instruksi tunggal
• Data disimpan dalam memori tunggal
• Uni-processor

b.      SIMD (Single Instruction Multiple Data Stream) Arus Instruksi Tunggal dan Multiple Data
• Single machine instruction
• Mengontrol eksekusi secara simultan
• sejumlah elemen-elemen pengolahan
• Berdasarkan Lock-step
• Setiap pengolahan elemen memiliki hubungan dengan memori data
• Setiap instruksi dieksekusi pada kumpulan data yang berbeda oleh prosesor yang berbeda
• Prosesor Vector and array
c.       MISD (Multiple Instruction Single Data Stream) Arus Multiple Instruksi dan Data Tunggal
• Rangkaian dari data
• Dikirimkan ke kumpulan prosesor
• Setiap prosesor mengeksekusi urutan instruksi yang berbeda
• Belum pernah diimplementasikan (komesial)
d.      MIMD (Multiple Instruction Multiple Data Stream) Arus Multiple Instruksi dan Multiple Data
• Kumpulan/sejumlah prosesor
• Mengeksekusi secara simultan urutan instruksi yang berbeda
• Kumpulan data yang berbeda
• SMP, Cluster and sistem NUMA

2.            Bidang-bidang yang menggunakan pemrosesan parallel sebagai berikut :
a.       Simulasi komputer
b.      Intelegency buatan
c.       Rekayasa genetika
d.      Analisis elemen terbatas yaitu perancangan struktur dan eksperimen terowongan angin
e.       Perancangan sirkuit LSI dan VLSI

3.            Kelebihan dan kekurangan Pemrosesan Paralel sebagai berikut :
Kelebihan :
·         Waktu eksekusi lebih cepat.
·         Throughput jadi lebih tinggi.
Kekurangan
·         Memerlukan perangkat keras lain.
·         Kebutuhan daya juga lebih.
·         Tidak baik untuk daya rendah dan perangkat mobile.
·         Karena membutuhkan banyak prosesor maka biaya mahal.

0 komentar:

Proudly Powered by Blogger.