Minggu, 15 Januari 2012

Pipelining dan Risc


a)   
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 pemrosesan. Dengan cara ini, maka unit pemrosesan selalu bekerja.

Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistemkomputer. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang dijaankan oleh microprocessor.

b)   Intruksi pipeline

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 .

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).

c)    Keuntungan dan Kerugian

Pipelining tidak membantu dalam semua kasus. Ada beberapa kemungkinan kerugian. Pipa instruksi dikatakan sepenuhnya pipelined jika dapat menerima instruksi baru setiap clock cycle. Sebuah pipa yang tidak sepenuhnya pipelined telah menunggu siklus yang menunda kemajuan pipa.

Keuntungan dari Pipelining:

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:

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.


d)    Kesulitan dalam Pipeline

Untuk menerapkan prinsip multi-stage atau mulai saat ini kita namakan pipelining di prosesor, diperlukan organisasi prosesor khusus. Pada dasarnya, prosesor dipartisi menjadi sejumlah unit-unit kecil dengan fungsi spesifik. Setiap unit berperan untuk  menyelesaikan sebagian dari  instruksi-intruksi berikut :

Instruction fetch, decode, operand address calculation, operand fetch, execute dan store result.

Dalam proses di atas terkadang sering terjadi kendala/conflict seperti:

1.      Terjadinya pause (Pi), karena adanya data conflict dalam program tersebut
2.      Terjadinya data error dikarenakan banyaknya proses yang dilakukan bersamaan
3.      Terjadinya pengambilan data secara bersamaan, sehingga salah satu proses tertunda
4.      Terjadinya penumpukan data di salah satu intruksi sehingga ada beberapa proses yg di tunda
5.      Dengan terjadinya conflict tadi, speed-up yang diperoleh menjadi lebih kecil (lambat) dibandingkan dengan tanpa conclict.

A.   ARSITEKTUR REDUCED INSTRUCTION SET COMPUTERS (RISC)
Perkembangan inovasi komputer sejak 1960 menambah satu daftar penemuan yang sangat menarik dan paling penting , yaitu Arsitektur Reduced Instruction Set computers ( RISC). Walaupun sistem RISC telah ditentukan dan dirancang dengan berbagai cara berdasarkan komunitasnya, elemen penting yang digunakan sebagian rancangan umumnya adalah sebagai berikut :
1.      Set instruksi yang terbatas dan sederhana
2.      Register general purpose berjumlah banyak atau penggunaaan teknologi kompiler untuk mengoptimalklan penggunaan register.
3.      Penekanan pada pengoptimalan pipeline instruksi.

     I.        Implikasi
Secara umum penelitian menyatakan terdapat tiga buah elemen yang menentukan karakter arsitektur RISC :
1.      Penggunaan register dalam jumlah besar yang ditunjukan untuk mengotimalkan pereferensian operand.
2.      Diperlukan perhatian bagi perancangan pipelaine instruksi karena tingginya proporsi instruksi pencabangan bersyarat dan procedure call, pipeline instruksi yang bersifat langsung dan ringkas menjadi tidak efisien
3.      Terdapat set instruksi yang disederhanakan

   II.        Karakteristik  Arsitektur Reduced Instruction Set Computers (RISC)
Arsitektur RISC memiliki beberapa karakteristik diantaranya :
1.      Siklus mesin ditentukan oleh waktu yang digunakan untuk mengambil dua buah operand dari register, melakukan operasi ALU, dan menyimpan hasil operasinya kedalam register, dengan demikian instruksi mesin RISC tidak boleh lebih kompleks dan harus dapat mengeksekusi secepat mikroinstruksi pada mesin-mesin CISC. Dengan menggunakan instruksi sederhana atau instruksi satu siklus hanya dibutuhkan satu mikrokode atau tidak sama sekali, instruksi mesin dapat dihardwired. Instruksi seperti itu akan dieksekusi lebih cepat dibanding yang sejenis pada yang lain karena tidak perlu mengakses penyimapanan kontrol mikroprogram saat eksekusi instruksi berlangsung.
2.      Operasi berbentuk dari register-ke register yang hanya terdiri dari operasi load dan store yang mengakses memori . Fitur rancangan ini menyederhanakan set instruksi sehingga menyederhanakan pula unit control. Keuntungan lainnya memungkinkan optimasi pemakaian register sehingga operand yang sering diakses akan tetap ada di penyimpan berkecepatantinggi. Penekanan pada operasi register ke register merupakan hal yang unik bagi perancangan RISC.
3.      Penggunaan mode pengalamatan sederhana, hampir sama dengan instruksi menggunakan pengalamatan register,. Beberapa mode tambahan seperti pergeseran dan pe-relatif dapat dimasukkan selain itu banyak mode kompleks dapat disintesis pada perangkat lunak dibanding yang sederhana, selain dapat menyederhanakan sel instruksi dan unit kontrol.
4.      penggunaan format-format instruksi sederhana, panjang instruksinya tetap dan disesuaikan dengan panjang word. Fitur ini memiliki beberapa kelebihan karena dengan menggunakan field yang tetap pendekodean opcode dan pengaksesan operand register dapat dilakukan secara bersama-sama

 III.        Ciri-Ciri RISC
1.      Instruksi  berukuran tunggal
2.      Ukuran yang umum adalah 4 byte
3.      Jumlah pengalamatan data sedikit, biasanya kurang dari 5 buah.
4.      Tidak terdapat pengalamatan tak langsung yang mengharuskan melakukan sebuah akses memori agar memperoleh alamat operand lainnya dalam memori
5.      Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika, seperti penambahan ke memori dan penambahan dari memori.
6.      Tidak terdapat lebih dari satu operand beralamat memori per instruksi
7.      Tidak mendukung perataan sembarang bagi data untuk operasi load/ store
8.      Jumlah maksimum pemakaian memori manajemen bagi suatu alamat data adalah sebuah instruksi .
9.      Jumlah bit bagi integer register spesifier sama dengan 5 atau lebih,artinya sedikitnya 32 buah register integer dapat direferensikan sekaligus secara eksplisit.
10.  Jumlah bit floating point register spesifier sama dengan 4 atau lebih, artinya sedikitnya 16 register floating point dapat direferensikan sekaligus secara eksplisit.
Beberapa prosesor implementasi dari arsiteketur RISC adalah AMD 29000, MIPS R2000, SPARC, MC 88000, HP PA, IBM RT/TC, IBM RS/6000, intel i860, Motorola 88000 (keluarga Motorola), PowerPC G5.

B.   PROSESSOR YANG MENGGUNAKAN SISTEM RISC

1.    PowerPC dibangun dengan arsitektur RISC
Proyek mini komputer 801 di IBM pada tahun 1975 mengawali banyak konsep arsitektur yang digunakan dalam sistem RISC. 801 bersama dengan prosessor RISC I Berkeley, meluncurkan gerakan RISC, namun 801 hanya merupakan prototipe yang ditujukan untuk mengenalkan konsep disain.Keberhasilan memperkenalkan 801 menyebabkan IBM membangun produk workstation RISC komersial yaitu PC RT pada tahun 1986, dengan mengadaptasi konsep arsitektural 801 kedalam kinerja yang sebanding atau yanglebih baik. IBM RISC System/6000 merupakan mesin RISC superscalar 1[3] yang dipasarkan sebagai workstation berunjuk kerja tinggi, tidak lama kemudian IBM mengkaitkan mesin ini sebagai arsitektur POWER. IBM kemudian menjalin kerjasama dengan Motorola, pembuat mikroprosessor seri 6800, dan Apple, yang menggunakan keping Motorola dalam komputer Macintoshnya dan hasilnya adalah seri mesin yangmengimplementasikan arsitektur PowerPC yang diturunkan dari arsitektur POWER dan merupakan sistem RISC superscalar.



2.    Sejauh ini diperkenalkan empat anggota kelompok PowerPC yaitu
  1. 601,merupakan mesin 32-bit yang ditujukan untuk membawa arsitektur PowerPC kepasar secepat mungkin.
  2. 603, merupakan mesin 32-bit yang ditujukan bagi low-end desktop dan komputer portable dengan implementasi yang lebih efesien.
  3. 604, merupakan mesin 32-bit yang ditujukan bagi low-end server dan desktop, dengan menggunakan teknik rancangan superscalar lanjutan guna mendapatkan kinerja yang lebih baik.
  4. 620, ditujukan bagi high-end server, sekaligus merupakan kelompok PowerPC pertama yang mengimplementasikan arsitektur 64 bit penuh, termasuk regiater 64-bit dan lintasan data
Referensi :

Tidak ada komentar:

Posting Komentar