ARTIKEL 1
PIPELINING dan RISC
1. Pengertian 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 komputer. 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.
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 dan lancar. Sedangkan ketergantungan
terhadap data bisa muncul, misalnya instruksi yang berurutan memerlukan data
dari instruksi yang sebelumnya. 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.
Teknik pipeline yang
diterapkan pada microprocessor, dapat dikatakan sebuah arsitektur
khusus. Ada perbedaan khusus antara model microprocessor yang tidak
menggunakan arsitektur pipeline dengan
microprocessor yang menerapkan teknik ini.
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. 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 pun seterusnya, ketika instruksi pertama masuk ke langkah 3,
instruksi kedua masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.
Teknik pipeline ini
menyebabkan ada sejumlah hal yang harus diperhatikan sehingga ketika diterapkan
dapat berjalan dengan baik.
- Terjadinya penggunaan resource yang bersamaan
- Ketergantungan terhadap data, dan
- Pengaturan Jump ke suatu lokasi memori.
Instruksi pada pipeline
- Mengambil instruksi dan membuffferkannya
- Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut
- Pada saat tahapan kedua sedang mengeksekusi instruksi ,tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya
.Berikut ini adalah gambaran tentang Instuksi
pipeline :
Karena untuk setiap tahap pengerjaan instruksi,
komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja
di komponen tersebut. Sebagai contoh :
Instruksi 1 : ADD AX, AX Instruksi 2: ADD
EX, CX
Setelah CU menjemput instruksi 1 dari memori (IF), CU
akan menerjemahkan instruksi tersebut(ID). Pada menerjemahkan instruksi 1
tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline menyebabkan IF
akan menjemput instruksi 2 pada saat ID menerjemahkan instruksi 1. Demikian
seterusnya pada saat CU menjalankan instruksi 1 (EX), instruksi 2 diterjemahkan
(ID).
Contoh pengerjaan instruksi tanpa pipeline :
Contoh pengerjaan instruksi dengan pipeline :
Dengan adanya pipeline dua
instruksi selesai dilaksanakan padadetik keenam (sedangkan pada kasus tanpa
pipeline baru selesai pada detik kesepuluh). Dengan demikian telah terjadi
percepatan sebanyak 1,67x dari 10T menjadi hanya 6T. Sedangkan untuk pengerjaan
3 buah instruksi terjadi percepatan sebanyak 2, 14x dari 15T menjadi hanya 7T.
Untuk kasus pipeline sendiri,
2 instruksi dapat dikerjakan dalam 6T (CPI = 3) dan instruksi dapat dikerjakan
dalam 7T (CPT = 2,3) dan untuk 4 instruksi dapat dikerjakan dalam 8T (CPI
=2). Ini berarti untuk 100 instruksi akan dapat dikerjakan dalam 104T (CPI =
1,04). Pada kondisi ideal CPI akan harga 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.
Masalah-masalah pada Pipeline
Dengan adanya persyaratan
bahwa setiap instuksi yang berdekatan harus tidak saling bergantung, maka ada
kemungkinan terjadinya situasi dimana pipeline gagal dilaksanakan (instruksi
berikutnya tidak bisa dilaksanakan). Situasi ini disebut Hazards.
Hazards mengurangi performansi dari CPU dimana percepatan
ideal tidak dapat dicapai.
Ada 3 kelompok Hazards :
- Structural Hazards muncul dari konflik resource sistem yaitu ketika hardware tidak dapat mensuport semua kemungkinan kombinasi pelaksanaan instruksi.
- Data Hazards muncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya.
- Control Hazards muncul pada pelaksanaan instruksi yang mengubah PC (contoh : branch).
Adanya Hazards
menyebabkan pipeline terhambat (stalled). Tidak ada instruksi baru yang
dijemput sampai hambatan itu selesai. Ini berarti instruksi-instruksi
selanjutnya akan ditunda pula penjemputannya.
Keuntungan dari Pipeline
- Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.
- Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit.
Jika pipeline digunakan
sebagai pengganti, hal itu dapat menghemat sirkuit vs combinational yang lebih
kompleks sirkuit.
Kerugian dari Pipeline
- 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.
- 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.
- 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.
Demikianlah penjelasan
mengenai pipeline yang saya dapatkan ketika kuliah. Semoga
apa yang saya share memberikan manfaat bagi kawan-kawan yang kesulitan mencari
penjelasan mengenai pipeline .
2. Prosessor Vector Pipelining
1. Berkurangnya kontensi memori
karena adanya akses memori yang lebih sedikit
2. Berkurangnya pendekodean
instruksi
3. Tingkah lakunya bias diramalkan,
hal ini khususnya penting bagi:
-
Pengindeksan implicit dan akses memori
-
Pencabangan implicit
-
Terdapat berbagai macam instruksi pada register to
register
Siklus Instruksi memiliki 2 Fase:
1. I : Instruction Fetch (Pengambilan Instruksi)
2. E : Execute (Melakukan operasi ALU dengan register input dan output)
Operasi Load danStore memiliki3
Fase:
1. I : Instruction Fetch
2. E : Execute (Menghitung alamat memori)
3. D : Memory (Operasi register ke memori atau memori ke register)
3. RISC (Reduced Istructioon Set
Computer)
RISC adalah
komputasi kumpulan instruksi yang disederhanakan. RISC merupakan sebuah
arsitektur komputer atau arsitektur komputasi modern dengan instruksi-instruksi
dan jenis eksekusi yang paling sederhana. Arsitektur ini digunakan pada
komputer dengan kinerja tinggi, seperti komputer vektor. Selain digunakan dalam
komputer vektor, desainini juga diimplementasikan pada prosesor komputer lain,
seperti pada beberapamikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation,
Alpha AXP dari DEC, R4x00dari MIPS Corporation, PowerPC dan Arsitektur POWER
dari International Business Machine.Selain itu, RISC juga umum dipakai pada
Advanced RISC Machine (ARM) dan StrongARM (termasuk di antaranya adalah Intel
XScale), SPARC dan UltraSPARC dari Sun Microsystems,serta PA-RISC dari
Hewlett-Packard.
Pada arsitektur RISC : Set instruksi
yang terbatas dan sederhana Register general purpose yang berjumlah banyak,
atau penggunaanteknologi kompiler untuk mengoptimalkan pemakaian registernya.
Konsep arsitektur RISC banyak menerapkan proses eksekusi pipeline. Meskipun
jumlah perintah tunggal yang diperlukan untuk melakukan pekerjaan yang
diberikan mungkin lebih besar, eksekusi secara pipeline memerlukan waktu yang
lebih singkat daripada waktu untuk melakukan pekerjaan yang sama dengan
menggunakan perintah yang lebih rumit.Mesin RISC memerlukan memori yang lebih
besar untuk mengakomodasi program yang lebih besar. IBM 801 adalah prosesor
komersial pertama yang menggunakan pendekatan RISC.
KARAKTERISTIK
RISC
-
Satu instruksi pers iklus
-
Operasi register to register
-
Mode pengalamatan yang sederhana
-
Format instruksi yang sederhana
-
Desain hardwired (tanpamicrocode)
-
Format instruksi yang fix
-
Proses compile yang cepat
Aspek komputasi yang ditinjau dalam
merancang mesin RISC adalah sbb.: Operasi-operasi yang dilakukan: Hal ini
menentukan fungsi-fungsi yang akan dilakukan oleh CPU dan interaksinya dengan
memori. Operand-operand yang digunakan: Jenis-jenis operand dan frekuensi
pemakaiannya akan menentukan organisasi memori untuk menyimpannya dan mode
pengalamatan untuk mengaksesnya. Pengurutan eksekusi: Hal ini akan menentukan
kontrol dan organisasi pipeline. Eksekusi Instruksi
ARTIKEL 2
PROSESOR PARALEL
1. Pengertian
Interkoneksi
Interkoneksi adalah keterhubungan
secara fisik dan logika dari jaringan komunikasi umum yang digunakan oleh
operator yang sama atau berbeda untuk memungkinkan pengguna dari satu operator
untuk berkomunikasi dengan operator yang sama atau operator lainnya, atau untuk
mengakses layanan yang disediakan oleh operator lain. Layanan bisa disediakan
oleh bagian yang terlibat atau bagian lain yang mendapat akses ke jaringan.
Hakekat interkoneksi antar-jaringan
adalah interkoneksi antar Sentral Gerbang (SG) melalui suatu titik interkoneksi
(POI - Point of Interconnection) yang secara keseluruhan akan membentuk satu
kesatuan sistem telekomunikasi end-to-end melalui switching. Tiap Penyelenggara
jaringan telekomunikasi yang berinterkoneksi wajib menyediakan SG pada sisi
masing-masing dan harus memenuhi persyaratan SG.
Dengan perubahan teknologi yang
terus berkembang serta iklim kompetisi yang semakin intensif, banyak
bentuk-bentuk interkoneksi yang telah dikembangkan. Kesemuanya melibatkan
keterhubungan jaringan agar memungkinkan pelanggan dari suatu jaringan untuk
berkomunikasi dengan pelanggan-pelanggan lain dari jaringan yang berbeda atau
untuk mendapatkan akses terhadap layanan yang ditawarkan oleh operator jaringan
lain.
2. Mesin SIMD
SIMD merupakan salah satu bentuk
dari paralel sinkron yang memproses satu instruksi dengan banyak prosesor
elemen pada waktu yang sama. Di dalam paradigma SIMD yang paling penting
bukanlah kontrol prosesor melainkan data. Data diproses oleh masing-masing
elemen pemroses yang berbeda dari satu prosesor ke prosesor lainnya. Sehingga
satu program dan satu kontrol unit bekerja secara bersamaan pada kumpulan data
yang berbeda. Untuk memproses data secara efisien, SIMD membuat pengaturan
proses menjadi dua phase, yaitu : pertama memilah dan mendistribusikan data
(data partitioning and distribution) dan yang kedua memproses data secara
paralel (data paralel prosesing). Jadi efisiensi akan tergantung kepada
banyaknya permasalahan yang harus diselesaikan secara paralel. Cara terbaik
dalam menggunakan SIMD adalah dengan mencocokan banyaknya permasalahan dengan
banyaknya prosesor paralel. Banyaknya permasalahan berarti seberapa banyak
jumlah data yang akan di perbaharui dan banyaknya prosesor paralel berarti
jumlah prosesor yang tersedia. Jadi jika permasalahanya sebanding dengan
prosesor paralel maka kecepatan tertinggi dapat terjadi, sebaliknya apabila
permasalahan hanya satu dengan prosesor paralel yang banyak menyebabkan sistem
SIMD menjadi tidak efektif. SIMD sering diidentikan sebagai permasalahan
paralel yang sederhana, padahal tidaklah benar karena paradigma SIMD sangat
berguna dalam menyelesaikan permasalahan yang memiliki beberapa data yang perlu
diperbaharui secara serempak. Khususnya sangat berguna untuk perhitungan
numerik biasa seperti perhitungan matrix dan vektor.
3. Mesin MIMD
MIMD berarti banyak prosesor yang
dapat mengeksekusi instruksi dan data yang berbeda-beda secara bersamaan. Lebih
lanjut sebagai bagian dari komputer, prosesor memiliki otonom yang besar dalam
melakukan operasinya. Secara umum MIMD digunakan ketika banyak permasalahan
heterogen yang harus diselesaikan pada waktu yang sama. MIMD sangat baik
digunkan untuk meneyelesaikan permasalahan yang besar, sebab melebihi data dan
kontrol yang harus dilewatkan dari task ke task. Sebagai contoh dalam analogi
sebuah Bank, MIMD akan menampilkan kerja terbaiknya ketika masing-masing teller
memiliki beberapa transaksi yang harus diselesaikan satu persatu tanpa ada
pembuangan waktu dan penghentian dari beberapa bagian transaksi. Tetapi pada
sistem MIMD akan dibingungkan oleh
aliran data (dataflow) paralel, karena aliran data tersebut harus dikerjakan
oleh mesin MIMD secara terus menerus.
4. Arsitektur Komputer Parallel terdiri
dari:
1. Komputer SISD (Single Instruction stream-Single Data stream)
2. Komputer SIMD (Single Instruction stream-Multiple Data stream)
3. Komputer MISD (Multiple Instruction stream-Single Data stream)
4. MIMD (Multiple Instruction stream-Multiple Data stream)
Referensi :
Tidak ada komentar:
Posting Komentar