Minggu, 12 Juni 2016

Pemograman Mikro, Computer Pipeline, & Pemprosesan Paralel

A.    Pemrograman Mikro

Pemrograman mikro adalah proses penerjemahan dan eksekusi dari setiap instruksi proses 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.

Pemrograman mikro 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 Control. Micro-kode atau mikro-program dikembangkan sebagai instruksi set CPU. Dengan demikian, insinyur desain CPU menulis mikro-program untuk mengimplementasikan set instruksi mesin.

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.

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/menutup suatu gerbang (gate) dari sebuah register ke sebuah BUS.
2.         Mengirim data sepanjang sebuah BUS.
3.         Memberi inisial sinyal-sinyal kendali seperti READ, WRITE, SHIFT, CLEAR dan SET.
4.         Mengirimkan sinyal-sinyal waktu.
5.         Menunggu sejumlah periode waktu tertentu.
6.         Menguji bit-bit tertentu dalam sebuah register

1.       Keuntungan Pemrograman Mikro
·  Rancangan microprogrammed lebih fleksibel karena relatif mudah diubah-ubah dan dimodifikasi
·      Menyediakan kemampuan diagnostic  yang lebih baik dan lebih dapat diandalkan daripada rancangan hard-wired 
·      Debugging dan maintenance lebih mudah.
·  Set instruksi dapat dimodifikasi dengan mudah dengan mengubah mikroprogram tanpa memengaruhi data path.
·   Utilisasi memori utama dalam computer microprogrammed biasanya lebih baik Karena perangkat lunak yang seharusnya menggunakan ruang memori utama justru ditempatkan pada memori kendali
·    Pengembangan ROM lebih lanjut (dalam kaitan dengan harga dan waktu akses) secara lebih jauh justru menguatkan posisi dominanpemrograman 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 horizontal dan vertikal   

2.       Kelemahan Pemrograman Mikro
·   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).
·    Untuk CPU kecil dengan sumber daya hardware yang sangat terbatas, microprogrammed relatif lebih mahal dibanding hard-wired

B.    Computer 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 dijaankan oleh microprocessor.

Pada microprocessor yang tidak menggunakan  pipeline , satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam microprocessor yang menggunakan teknik pipeline, ketika satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi.

Dengan penerapan  pipeline  ini pada microprocessor akan didapatkan peningkatan kinerja microprocessor. Hal ini terjadi karena beberapa instruksi dapat dilakukan secara parallel dalam waktu yang bersamaan. Secara kasarnya diharapkan akan didapatkan peningkatan sebesar K kali dibandingkan dengan microprocessor yang tidak menggunakan  pipeline , apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap.

Tiga kesulitan yang sering dihadapi ketika menggunakan teknik  pipeline  ini adalah :
1.       Terjadinya penggunaan resource yang bersamaan
2.       Ketergantungan terhadap data, dan
3.       Pengaturan Jump ke suatu lokasi memori.

Contoh pipeline dalam komputer adalah :
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.

1.       Konsep Pipeline

Konsep pemrosesan  pipeline  dalam suatu komputer mirip dengan suatu baris perakitan dalam suatu pabrik industri. Ambil contoh, suatu proses pembuatan sebuah mobil: anggaplah bahwa langkah-langkah tertentu di jalur perakitan adalah untuk memasang mesin, memasang kap mesin, dan memasang roda (dalam urutan tersebut, dengan langkah arbitrary interstitial). Sebuah mobil di jalur perakitan hanya dapat memiliki salah satu dari tiga tahap yang dilakukan sekaligus.

Setelah mobil memiliki mesin yang terpasang, bergerak ke bagian pemasangan kap, meninggalkan fasilitas pemasangan mesin yang tersedia untuk mobil berikutnya. Mobil pertama kemudian pindah ke pemasangan roda, mobil kedua untuk pemasangan kap, dan mobil ketiga dimulai untuk pemasangan mesin. Jika instalasi mesin membutuhkan waktu 20 menit, instalasi kap mobil memakan waktu 5 menit, dan instalasi roda membutuhkan waktu 10 menit, kemudian menyelesaikan semua tiga mobil ketika hanya satu mobil dapat dioperasikan sekaligus akan memakan waktu 105 menit. Di sisi lain, dengan menggunakan jalur perakitan, total waktu untuk menyelesaikan ketiga adalah 75 menit. Pada titik ini, mobil selanjutnya akan datang dari jalur perakitan pada kenaikan 20 menit.

2.       Cara Kerja Komputer Pipeline
·       Mengambil instruksi dari memori dan menempatkan instruksi tersebut dalam sebuah penyangga sampai instruksi itu dibutuhkan.
·       Mendekodekan instruksi tersebut, menentukan jenisnya dan operand apa yang dibutuhkan instruksi tersebut.
·       Melokasi dan mengambil operand-operand, baik itu dari register-register ataupun dari memori.
·       Sebenarnya melaksanakan pekerjaan menjalankan instruksi tersebut, terutama dengan menjalankan operand-operand melalui jalur data.
·       Menulis hasilnya kembali ke register yang sesuai.

3.       Keuntungan dari Pipeline
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.

4.       Kerugian dari Pipeline
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.

C.     Pemprosesan 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.

Pemrosesan paralel dapat juga merupakan komputasi dua atau lebih tugas pada waktu bersamaan dengan tujuan untuk mempersingkat waktu penyelesaian tugas-tugas tersebut dengan cara mengoptimalkan resource pada sistem komputer yang ada untuk mencapai tujuan yang sama. Pemrosesan   paralel  dapat  mempersingkat   waktu   ekseskusi   suatu   program   dengan   cara membagi suatu program menjadi bagian-bagian yang lebih kecil yang dapat dikerjakan pada masing-masing prosesor secara bersamaan.

Tujuan utama dari  pemrosesan paralel  adalah untuk meningkatkan performa komputasi. Performa dalam pemrosesan paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan teknik paralel. Adapun proses kerja , pemrosesan paralel membagi beban kerja dan mendistribusikannya pada komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan suatu masalah. Sistem yang akan dibangun tidak akan menggunakan komputer yang didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan menggunakan komputer yang telah ada. Artinya, sistem ini nantinya akan terdiri dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerjasama untuk menyelesaikan suatu masalah.

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 :
1.    Algoritma
2.    Bahasa Pemrograman
3.    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.

    Arsitektur Komputer Parallel
     
     Sesuai taksonomi Flynn, seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4 :
1.      SISD (Single Instruction Single Data Stream), Arus Instruksi Tunggal dan Data Tunggal
2.      SIMD (Single Instruction Multiple Data Stream), Arus Instruksi Tunggal dan Multiple Data
3.      MISD (Multiple Instruction Single Data Stream), Arus Multiple Instruksi dan Data Tunggal
4.   MIMD (Multiple Instruction Multiple Data Stream), Arus Multiple Instruksi dan Multiple Data

0 komentar:

Posting Komentar

 

CopyRight (c) Hafizatul Muna 2015 - Ilmu Komputer