Pengertian RISC dan Pipe Linning RISC
Artikel 1: Pipelining dan RISC
Artikel 1: Pipelining dan RISC
1. PIPELINING
Pengertian PIPELINING
Pipelining adalah suatu teknik implementasi dengan mana berbagai instruksi dapat dilaksanakan secara tumpang tindih (overlapped; hal ini mengambil keuntungan paralelisme yang ada di antara tindakan yang diperlukan untuk mengeksekusi suatu instruksi. Di dalam pipeline suatu komputer, masing-masing langkah di dalam pipeline melengkapi bagian-bagian dari suatu instruksi. Masing-masing langkah disebut stage atau segment. Stage dihubungkan satu terhadap lainnya sehingga membentuk yang pipe-instruction pada bagian akhir stage. Mirip dengan proses pada suatu industri manufaktur.
Ø Intruksi pipeline
Tahapan pipeline
· Mengambil instruksi dan membuffferkannya
· Ketika tahapn 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 .
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
t =
1
2
3
4
5
6
7
8
9
10
ADD AX,AX
IF
DE
IF
DE
EX
ADD BX,CX
IF
DE
IF
DE
EX
Disini instruksi baru akan dijemput jika instruksi sebelumnya telah selesai dilaksanakan.
t =
1
2
3
4
5
6
7
8
9
10
ADD AX,AX
IF
DE
IF
DE
EX
ADD BX,CX
IF
DE
IF
DE
EX
ADD DX,DX
IF
DE
IF
DE
EX
contoh pengerjaan instruksi dengan pipeline
Disini instruksi baru akan dipanggil setelah tahap IF menganggur (t2).
Dengan adanya pipeline dua instruksi selesai dilaksanakan pada detik 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, 14 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 utnuk 100 instruksi akan dapat dikerjakan dalam 104T (CPI = 1,04). Pada kondisi ideal CPI akan harga 1.
Ø Permasalahan di (dalam) Instruksi Pipelining
· VARIASI WAKTU:
Tidak semua tahap memakan waktu yang sama. Ini berarti untuk mendapatkan kecepatan dalam intruksi pipelining sangat ditentukan oleh tahap yang paling lambat. Masalah ini sangat akut dalam memproses instruksi, sejak instruksi yang berbeda memiliki persyaratan
operand waktu proses yang berbeda. Selain itu, diperlukan mekanisme sinkronisasi untuk memastikan bahwa data lewat dari stage ke stage hanya ketika kedua stage siap.
· DATA BERBAHAYA (DATA HAZARDS):
Ketika beberapa instruksi di eksekusi secara parsial, masalah timbul jika mereka referensi data yang sama. Kita harus memastikan bahwa instruksi selanjutnya tidak berusaha untuk mengakses data lebih cepat dari instruksi sebelumnya, jika ini terjadi akan menyebabkan hasil yang salah. Sebagai contoh, instruksi N +1 tidak harus diperbolehkan untuk mengambil sebuah operand yang belum disimpan oleh instruksi N.
· PERCABANGAN (BRANCH):
untuk mengambil instruksi berikutnya, kita harus tahu mana saja yang dibutuhkan, Jika instruksi ini adalah cabang bersyarat (conditional branch) instruksi berikutnya mungkin tidak diketahui sampai saat diproses.
· JEDA(INTERUPTSI):
interupsi membuat instruksi extra yang tidak terencana untuk masuk kedalam aliran intruksi. jeda(Interrupt) harus berperan antar instruksi. yaitu, ketika satu instruksi telah selesai dan berikutnya belum dimulai. Dengan pipelining, instruksi berikutnya biasanya dimulai sebelum yang sekarang telah selesai.
Semua masalah ini harus diselesaikan dalam konteks kebutuhan kita untuk mendaatkan kinerja dengan kecepatan tinggi. Jika kita tidak dapat mencapai kecepatan yang cukup, pipelining mungkin tidak sepadan.
Ø 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.
. 2. PROSEDUR VEKTOR PIPELINING.
Disini yang dimaksud dengan prosedur vektor pipelining yaitu :
· Mengambil instruksi dan membuffferkannya.
· Ketika tahapn 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.
· Tiga kesulitan yang sering dihadapi ketika menggunakan teknik pipeline :
· Terjadinya penggunaan resource yang bersamaan
· Ketergantungan terhadap data
· Pengaturan Jump ke suatu lokasi memori
3. Reduce instruction set computer (RISC)
Pengertian RISC
RISC singkatan dari Reduced Instruction Set Computer. Merupakan bagian dari arsitektur mikroprosessor, berbentuk kecil dan berfungsi untuk negeset istruksi dalam komunikasi diantara arsitektur yang lainnya.
Karakteristik
Arsitektur RISC memiliki beberapa karakteristik diantaranya :
a. 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.
b. Operasi berbentuk dari register-ke register yang hanya terdiri dari operasiload 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 berkecepatan tinggi. Penekanan pada operasi register ke register merupakan hal yang unik bagi perancangan RISC.
c. 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.
d. 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.
Ciri-ciri :
a. Instruksi berukuran tunggal
b. Ukuran yang umum adalah 4 byte
c. Jumlah pengalamatan data sedikit, biasanya kurang dari 5 buah.
d. Tidak terdapat pengalamatan tak langsung yang mengharuskan melakukan sebuah akses memori agar memperoleh alamat operand lainnya dalam memori.
e. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika, seperti penambahan ke memori dan penambahan dari memori.
f. Tidak terdapat lebih dari satu operand beralamat memori per instruksi
g. Tidak mendukung perataan sembarang bagi data untuk operasi load/ store.
h. Jumlah maksimum pemakaian memori manajemen bagi suatu alamat data adalah sebuah instruksi .
i. Jumlah bit bagi integer register spesifier sama dengan 5 atau lebih, artinya sedikitnya 32 buah register integer dapat direferensikan sekaligus secara eksplisit.
j. Jumlah bit floating point register spesifier sama dengan 4 atau lebih, artinya sedikitnya 16 register floating point dapat direferensikan sekaligus secara eksplisit.
Referensi :
• RISC ( Reduce Instruction Set Computer )
Beberapa elemen penting pada arsitektur RISC :
1. Set instruksi yang terbatas dan sederhana
2. Register general-purpose yang berjumlah banyak, atau penggunaan teknologi kompiler untuk mengoptimalkan pemakaian registernya.
3. Penekanan pada pengoptimalan pipeline instruksi.
Ditinjau dari jenis set instruksinya, ada 2 jenis arsitektur komputer, yaitu:
1. Arsitektur komputer dengan kumpulan perintah yang rumit (Complex Instruction Set Computer = CISC)
2. Arsitektur komputer dengan kumpulan perintah yang sederhana (Reduced Instruction Set Computer = RISC)
CISC dimaksudkan untuk meminimumkan jumlah perintah yang diperlukan untuk mengerjakan pekerjaan yang diberikan. (Jumlah perintah sedikit tetapi rumit) Konsep CISC menjadikan mesin mudah untuk diprogram dalam bahasa rakitan, tetapi konsep ini menyulitkan dalam penyusunan kompiler bahasa pemrograman tingkat tinggi.
Dalam CISC banyak terdapat perintah bahasa mesin. RISC menyederhanakan rumusan perintah sehingga lebih efisien dalam penyusunan kompiler yang pada akhirnya dapat memaksimumkan kinerja program yang ditulis dalam bahasa tingkat tinggi.
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.
Lebih lanjut untuk memahami RISC, diawali dengan tinjauan singkat tentang karakteristik eksekusi instruksi.
Eksekusi Instruksi
Waktu eksekusi dapat dirumuskan sbb.:
Waktu eksekusi = N x S x T
Dengan
N adalah jumlah perintah
S adalah jumlah rata-rata langkah per perintah
T adalah waktu yang diperlukan untuk melaksanakan satu langkah
Kecepatan eksekusi dapat ditingkatkan dengan menurunkan nilai dari ketiga varisbel di atas.
Arsitektur CISC berusaha menurunkan nilai N, sedangkan
Arsitektur RISC berusaha menurunkan nilai S dan T.
Proses pipeline dapat digunakan untuk membuat nilai efektif S mendekati 1 (satu) artinya komputer menyelesaikan satu perintah dalam satu siklus waktu CPU.
Nilai T dapat diturunkan dengan merancang perintah yang sederhana.
• one cycle execution time : satu putaran eksekusi. Prosessor RISC mempunyai CPI (clock per instruction) atau waktu per instruksi untuk setiap putaran. Hal ini dimaksud untuk mengoptimalkan setiap instruksi pada CPU.
• pipelining:adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efiisien
• large number of registers: Jumlah register yang sangat banyak. RISC di Desain dimaksudkan untuk dapat menampung jumlah register yang sangat banyak untuk mengantisipasi agar tidak terjadi interaksi yang berlebih dengan memory.
sumber http://lightyear21.blogspot.com/2015/01/pengertian-risc-dan-pipe-linning-risc.html
Minggu, 18 Januari 2015
Perbedaan antara Risc dan Cisc
Perbedaan Antara RISC dan CISC
A. CISC ( Complex Instruction Set Computing )
Complex Instruction Set Computing (CISC) atau kumpulan instruksi komputasi kompleks. Adalah suatu arsitektur komputer dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memori (load), operasi aritmatika, dan penyimpanan ke dalam memori (store) yang saling bekerja sama.
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu instruksi cukup dengan beberapa baris bahasa mesin yang relatif pendek sehingga implikasinya hanya sedikit saja RAM yang digunakan untuk menyimpan instruksi-instruksi tersebut. Arsitektur CISC menekankan pada perangkat keras karena filosofi dari arsitektur CISC yaitu bagaimana memindahkan kerumitan perangkat lunak ke dalam perangkat keras.
B. RISC (Reduced Instruction Set Computer)
RISC singkatan dari Reduced Instruction Set Computer. Merupakan bagian dari arsitektur mikroprosessor, berbentuk kecil dan berfungsi untuk negeset istruksi dalam komunikasi diantara arsitektur yang lainnya.
Sejarah RISC
Proyek RISC pertama dibuat oleh IBM, stanford dan UC –Berkeley pada akhir tahun 70 dan awal tahun 80an. IBM 801, Stanford MIPS, dan Barkeley RISC 1 dan 2 dibuat dengan konsep yang sama sehingga dikenal sebagai RISC. RISC mempunyai karakteristik :
• one cycle execution time : satu putaran eksekusi. Prosessor RISC mempunyai CPI (clock per instruction)
atau waktu per instruksi untuk setiap putaran. Hal ini dimaksud untuk mengoptimalkan setiap instruksi pada
CPU.
• pipelining:adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efiisien
• large number of registers: Jumlah register yang sangat banyak. RISC di Desain dimaksudkan untuk dapat menampung jumlah register yang sangat banyak untuk mengantisipasi agar tidak terjadi interaksi yang berlebih dengan memory.
Perbedaan RISC dengan CISC dilihat dari segi instruksinya
RISC ( Reduced Instruction Set Computer )
- Menekankan pada perangkat lunak, dengan sedikit transistor
- Instruksi sederhana bahkan single
- Load / Store atau memory ke memory bekerja terpisah
- Ukuran kode besar dan kecapatan lebih tinggi
- Transistor didalamnya lebih untuk meregister memori
CISC ( Complex Instruction Set Computer )
- Lebih menekankan pada perangkat keras, sesuai dengan takdirnya untuk pragramer.
- Memiliki instruksi komplek. Load / Store atau Memori ke Memori bekerjasama
- Memiliki ukuran kode yang kecil dan kecepatan yang rendah.
- Transistor di dalamnya digunakan untuk menyimpan instruksi – instruksi bersifat komplek
sumber http://lightyear21.blogspot.com/2015/01/perbedaan-antara-risc-dan-cisc.html
sumber http://lightyear21.blogspot.com/2015/01/perbedaan-antara-risc-dan-cisc.html
Langganan:
Postingan (Atom)