Pemrograman Mikro
Pada awal tahun 1950-an, M.V. Likes pertama kali
mengungkapkan istilah pemrograman mikro pada saat mengajukan suatu pendekatan
baru untuk mengendalikan perancangan unit. Banyak ahli dan insinyur komputer
tertarik dengan ide yang dikemukakannya walaupun idenya tampak tidak realistis
karena terkendala persyaratan untuk memori kendali yang sangat cepat tetapi relatif mahal. Tetapi ide tersebut terbukti
realistis dengan adanyan komputer IBM System 360 pada bulan April 1964 yang menggunakan
memori kontrol yang cepat dan tidak mahal, yaitu pemrograman mikro.
Control Unit adalah salah satu bagian dari CPU yang
bertugas untuk memberikan arahan/kendali/kontrol terhadap operasi yang
dilakukan di bagian ALU. Output dari control unit ini akan mengatur aktivitas
dari bagian lainnya dari perangkat CPU tersebut. CU diimplementasikan sebagai
sebuah microprogram yang disimpan di dalam tempat penyimpanan kontrol (control
store).
Ada 2 tugas dasar control unit, yaitu pengurutan dan
eksekusi. Pengurutan yaitu unit control menyebabkan prosesor menuju sejumlah
operasi mikro dalam urutan yang benar, yang didasarkan pada program yang sedang
dieksekusi. Pada saat eksekusi, unit control menyebabkan setiap operasi mikro
dilakukan.
Kata mikro mengacu pada fakta bahwa tiap langkah adalah
sederhana dan akan menyelesaikan operasi terkecil. Unit kendali logika (
Control Logic Unit ) bertugas untuk mengatur seluruh aktifitas perangkat keras
di dalam komputer. Berikut tugas Unit Kendali Logika (CLU) :
1.
Memfetch suatu instruksi dari memori
2.
Memberi kode pada instruksi untuk
menentukan operasi mana yang akan dilaksanakan
3.
Menentukan sumber dan tujuan data di
dalam perpindahan data
4.
Mengeksekusi operasi yang dilakukan
Setelah
menginterpretasi kode biner suatu instruksi, CLU menghasilkan serangkaian
perintah kendali, yang disebut sebagai instruksi mikro (microinstruction ) atau
operasi mikro. Terdapat 2 pendekatan dalam perancangan CLU, yaitu :
1.
Hardwired atau Random Logic
Sejumlah gerbang ( gate
), counter dan register saling dihubungkan untuk menghasilkan sinyal-sinyal
kendali. Setiap rancangan memerlukan sekelompok peranti logika dan hubungan
yang berbeda-beda.
2.
Microprogrammed Control
Dibentuk serangkaian
instruksi mikro ( program mikro ) yang disimpan dalam sebuah memori kendali ( biasanya sebuah ROM ) dalam
CLU. Waktu yang diperlukan dan sinyal kendali yang dihasilkan didapat dengan
menjalankan suatu program mikro.
Instruksi mikro atau operasi mikro merupakan operasi
primitif tingkat rendah yang bertindak secara langsung pada sirkuit logika
suatu komputer dan mengatur fungsi-fungsi sebagai berikut :
1.
Membuka/menutup suatu gerbang ( gate )
dari sebuah register ke sebuah bus
2.
Mentransfer data sepanjang bus
3.
Memberi inisial sinyal-sinyal kendali
seperti READ, WRITE, SHIFT, CLEAR & SET
4.
Mengirimkan sinyal-sinyal waktu
5.
Menunggu sejumlah periode waktu tertentu
6.
Menguji bit-bit tertentu dalam sebuah
register
Ada beberapa tipe operasi mikro, yaitu :
1.
Mendefinisikan elemen dasar prosesor
2.
Mendiskripsikan operasi mikro yang harus
dilakukan prosesor
3.
Menentukan fungsi Control Unit yang
harus dilakukan prosesor
Kelemahan Operasi Mikro, yaitu :
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.
2.
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 relative
sangat kecil. (hard-wired digunakan hanya jika system itu tidak terlalu
kompleks dan hanya memerlukan beberapa operasi kendali).
Meskipun memiliki kelemahan, operasi mikro pun memiliki
kelebihan, yaitu :
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.
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 pemrosesan. Dengan cara ini, maka unit pemrosesan
selalu bekerja. 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.
Ada sejumlah tahapan yang akan dilewati oleh sebuah
instruksi pipeline. Misalnya sebuah microprocessor menyelesaikan sebuah
instruksi dalam 4 langkah. Ketika instruksi pertama masuk ke langkah 2, maka
instruksi berikutnya diambil untuk diproses pada langkah 1 instruksi tersebut.
Begitu seterusnya, ketika instruksi pertama masuk ke langkah 3, instruksi kedua
masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1. Berikut tahapan pipeline
:
1.
Mengambil instruksi dan membuffferkannya
2.
Ketika tahapn kedua bebas tahapan
pertama mengirimkan instruksi yang dibufferkan tersebut
3. Pada saat tahapan kedua sedang
mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memori yang tidak
dipakai untuk mengambil dan membuffferkan instruksi berikutnya .
Pipeline dapat kita
klasifikasikan menurut fungsi dan konfigurasinya. Secara fungsional, pipeline
dapat diklasifikasikan menjadi tiga kelompok pokok : pipelining aritmatika,
instruksi, dan prosesor. Sedangkan menurut konfigurasi dan strategi kendalinya mengklasifikasikan
pipeline berikut: unifungsi versus multifungsi dan skalar atau vector.
Keuntungan dari pipelining, yaitu :
1. Waktu siklus prosesor berkurang,
sehingga meningkatkan tingkat instruksi dalam kebanyakan kasus ( lebih cepat
selesai).
2. Beberapa combinational sirkuit seperti
penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih
banyak sirkuit. Jika pipelining digunakan sebagai pengganti, hal itu dapat
menghemat sirkuit & combinational yang lebih kompleks.
3. Pemrosesan dapat dilakukan lebih cepat,
dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu.
Kekurangan pipelining yaitu :
1. Pipelined prosesor menjalankan beberapa
instruksi pada satu waktu. Jika ada beberapa cabang yang mengalami penundaan
cabang (penundaan memproses data) dan akibatnya proses yang dilakukan cenderung
lebih lama.
2.
Instruksi latency di non-pipelined
prosesor sedikit lebih rendah daripada dalam pipelined setara. Hal ini
disebabkan oleh fakta bahwa intruksi ekstra harus ditambahkan ke jalur data
dari prosesor pipeline.
3.
Kinerja prosesor di pipeline jauh lebih
sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang
berbeda.
4.
Karena beberapa instruksi diproses
secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan
resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses
tetap berjalan dengan benar.
5. Sedangkan ketergantungan terhadap data,
bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi
yang sebelumnya.
6. Kasus Jump, juga perlu perhatian, karena
ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu,
akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada
dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan
terjadinya perubahan program counter.
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.
Pemrosesan Paralel adalah 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.
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.
Parallel processing berbeda dengan multitasking, yaitu
satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut
juga parallel computing. Pada system komputasi parallel terdiri dari beberapa
unit prosesor dan beberapa unit memori. Ada dua teknik yang berbeda untuk
mengakses data di unit memori, yaitu shared memory address dan message passing.
Berdasarkan cara mengorganisasikan memori ini computer parallel dibedakan
menjadi shared memory parallel machine dan distributed memory parallel machine.
Adapun arsitektur komputer paralel, sebagai berikut :
1.
Embarasingly Parallel adalah pemrograman
paralel yang digunakan pada masalah-masalah yang bisa diparalelkan tanpa
membutuhkan komunikasi satu sama lain. Sebenarnya pemrograman ini bisa dibilang
sebagai pemrograman paralel yang ideal, karena tanpa biaya komunikasi, lebih
banyak peningkatan kecepatan yang bisa dicapai.
2. Taksonomi dari model pemrosesan paralel
dibuat berdasarkan alur instruksi dan alur data yang digunakan:
3.
SISD Single Instruction Single Datapath,
ini prosesor tunggal, yang bukan paralel.
4.
SIMD Single Instruction Multiple
Datapath, alur instruksi yang sama dijalankan terhadap banyak alur data yang
berbeda. Alur instruksi di sini kalau tidak salah maksudnya ya program komputer
itu. trus datapath itu paling ya inputnya, jadi inputnya lain-lain tapi program
yang digunakan sama.
5. MIMD Multiple Instruction Multiple
Datapath, alur instruksinya banyak, alur datanya juga banyak, tapi
masing-masing bisa berinteraksi.
6.
MISD Multiple Instruction Single
Datapath, alur instruksinya banyak tapi beroperasi pada data yang sama.
Tidak ada komentar:
Posting Komentar