Minggu, 21 Juni 2009

Superscalar

Salah satu jenis dari arsitektur, dimana superscalar adalah sebuah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalam bentuk paralel. Merupakan salah satu rancangan untuk meningkatkan kecepatan CPU. Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini.

Ada beberapa pendapat yang menguraikan tentang pengertian dari superscalar, antara lain:

1. Superscalar adalah sebuah inti prosesor yang mengeksekusi dua kali/lebih operasi scalar dalam bentuk paralel. Superscalar ini merupakan salah satu rancangan untuk meningkatkan kecepatan CPU.

2. Superscalar adalah sebuah prosesor yang memungkinkan eksekusi yang bersamaan dari instruksi yang banyak pada tahap pipeline yang sama sebaik tahap pipeline yang lain.

3. Superscalar adalah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalam bentuk paralel.


Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya. Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan. Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada.


Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut. Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya..


Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.


Contoh CPU yang telah menerapkan arsitektur superscalar : Intel Processors

• 486, Pentium, Pentium Pro


Superscalar Processor Design

• Use PowerPC 604 as case study

• Speculative Execution, Register Renaming, Branch Prediction


More Superscalar Examples

• MIPS R10000

• DEC Alpha 21264


Alasan desain Superscalar

Ø Sebagian besar operasi menggunakan besaran/nilai skalar

Ø Operasi ini memungkinkan peningkatan kinerja sistem hingga level tertentu


Organisasi Superscalar secara umum :

Superscalar Implementation

Ø Proses fetch dari beberapa instruksi secara bersamaan.

Ø Logika untuk menentukan ketergantungan sebenarnya yang meliputi nilai register

Ø Mekanisme untuk mengkomunikasikan nilai tersebut.

Ø Mekanisme untuk menginisialisasi instruksi paralel.

Ø Tersedianya sumber untuk eksekusi paralel dari beberapa instruksi.

Ø Mekanisme processing instruksi dengan urutan yg sesuai.


Pentium 4

v 80486 - CISC

v Pentium – ada beberapa komponen superscalar

2 unit eksekusi integer yang terpisah

v Pentium Pro – Full superscalar

v Memperhalus models subsequent & Meningkatkan design superscalar


Pentium 4 Block Diagram

Pentium 4 Operation

v Pengambilan instructions pada memory dari urutan static program

v Menterjemahkan instruction menjadi satu atau lebih instruksi RISC dengan panjang yg tetap (micro-operations)

v Meng-eksekusi micro-ops pada pipeline superscalar

o micro-ops boleh dieksekusi tanpa berurutan

v Memasukan hasil dari micro-ops ke register set dalam urutan orisinil program.

v Penggabungan CISC (bagian terluar) dengan RISC (bagian terdalam)

v Pada pipeline RISC terdapat 20 tahapan

o Beberapa micro-ops memerlukan banyak tahapan eksekusi

§ Pipeline terpanjang

o Pada x86 hingga Pentium ada 5 tahapan pipeline


Sumber : silahkan klik Link berikut ;
aanbageet.blogspot.com
tetti-ekadharma.blogspot.com/...
dewi-biru.blogspot.com/...






CISC (Complex Instruction Set Computer)

Pengertian
CISC adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC.

Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer mencoba menjembatani celah semantik", yaitu bagaimana cara untuk membuat set-set instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan instruksi "level tinggi" seperti pemanggilan procedure, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC yg "sarat informasi" ini memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat.

Memang setelah itu banyak desain yang memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada kenyataannya tidaklah selalu demikian. Contohnya, arsitektur kompleks yang didesain dengan kurang baik (yang menggunakan kode-kode mikro untuk mengakses fungsi-fungsi hardware), akan berada pada situasi di mana akan lebih mudah untuk meningkatkan performansi dengan tidak menggunakan instruksi yang kompleks (seperti instruksi pemanggilan procedure), tetapi dengan menggunakan urutan instruksi yang sederhana.

Satu alasan mengenai hal ini adalah karena set-set instruksi level-tinggi, yang sering disandikan (untuk kode-kode yang kompleks), akan menjadi cukup sulit untuk diterjemahkan kembali dan dijalankan secara efektif dengan jumlah transistor yang terbatas. Oleh karena itu arsitektur -arsitektur ini memerlukan penanganan yang lebih terfokus pada desain prosesor. Pada saat itu di mana jumlah transistor cukup terbatas, mengakibatkan semakin sempitnya peluang ditemukannya cara-cara alternatif untuk optimisasi perkembangan prosesor. Oleh karena itulah, pemikiran untuk menggunakan desain RISC muncul pada pertengahan tahun 1970 (Pusat Penelitian Watson IBM 801 - IBMs)
Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.

Istilah RISC dan CISC saat ini kurang dikenal, setelah melihat perkembangan lebih lanjut dari desain dan implementasi baik CISC dan CISC. Implementasi CISC paralel untuk pertama kalinya, seperti 486 dari Intel, AMD, Cyrix, dan IBM telah mendukung setiap instruksi yang digunakan oleh prosesor-prosesor sebelumnya, meskipun efisiensi tertingginya hanya saat digunakan pada subset x86 yang sederhana (mirip dengan set instruksi RISC, tetapi tanpa batasan penyimpanan/pengambilan data dari RISC). Prosesor-prosesor modern x86 juga telah menyandikan dan membagi lebih banyak lagi instruksi-instruksi kompleks menjadi beberapa "operasi-mikro" internal yang lebih kecil sehingga dapat instruksi-instruksi tersebut dapat dilakukan secara paralel, sehingga mencapai performansi tinggi pada subset instruksi yang lebih besar.

Mengapa CISC?
  • Jumlah instruksi yang banyak dan instruksi yang lebih kompleks.
  • Dua alasan utama yang menjadi motivasi kecenderungan ini : adanya keinginan untuk menyederhanakan kompiler dan keinginan untuk meningkatkan kinerja.
  • Alasan penting lainnya adalah harapan bahwa CISC akan menghasilkan program yang lebih kecil dan lebih cepat.

Karakteristik CISC versus RISC

Ø Rancangan RISC dapat memperoleh keuntungan dengan mengambil sejumlah feature CISC dan Rancangan CISC dapat memperoleh keuntungan dengan mengambil sejumlah feature RISC.

Ø Hasilnya adalah bahwa sejumlah rancangan RISC yang terbaru, yang dikenal sebagai PowerPC, tidak lagi “murni” RISC dan rancangan CISC yang terbaru, yang dikenal sebagai Pentium, memiliki beberapa karakteristik RISC.


Ciri-ciri RISC:

1 Instruksi berukuran tunggal

2 Ukuran yang umum adalah 4 byte.

3 Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah.

4 Tidak terdapat pengalamatan tak langsung.

5 Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmetika (misalnya, penambahan dari memori, penambahan ke memori).


sumber : silahkan klik link berikut ;
Wikipedia
www.suwidi.or.id/downloads/kuliah/...


RISC (Reduced Instruction Set Computer)

RISC adalah 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, desain ini juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation, Alpha AXP dari DEC, R4x00 dari 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.


Beberapa elemen penting pada arsitektur RISC :

1 Set instruksi yang terbatas dan sederhana

2 Register general-purpose yang berjumlah, 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.


Contoh arsitektur RISC-2&alur pipanya (Heudin,1992)


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.


Tabel 4.1 Karakteristik dari beberapa Prosesor CISC, RISC, dan Superskalar

Karakteritik

CISC

RISC

Superskalar

IBM 370/168

VAX 11/780

Intel 80486

Motorola 88000

MIPS R4000

IBM RS/System 6000

Intel 80960

Tahun dibuat

1973

1978

7989

1988

7991

1990

1989

Jumlah instruksi

208

303

235

51

94

184

62

Instruksi (Bytes)

2-6

2-57

1-11

4

32

4

4,8

Mode Pengalamatan

4

22

11

3

1

2

11

Jumlah register general-purpose

16

16

8

32

32

32

23-256

Ukuran memori kontrol (Kbits)

420

480

246

-

-

-

-

Ukuran Cache (Kbytes)

64

64

8

16

128

32-64

Implikasi

v Hasil-hasil penelitian secara umum dapat dinyatakan bahwa terdapat tiga buah elemen yang menentukan karakter arsitektur RISC.

o Pertama, penggunaan register dalam jumlah yang besar. Hal ini dimaksudkan untuk mengoptimalkan pereferensian operand.

o Kedua, diperlukan perhatian bagi perancangan pipeline instruksi. Karena tingginya proporsi instruksi pencabangan bersyarat dan prosedur call, pipeline instruksi yang bersifat langsung dan ringkas akan menjadi tidak efisien.

o Ketiga, terdapat set instruksi yang disederhanakan (dikurangi).

v Keinginan untuk mengimplementasikan keseluruhan CPU dalam keping tunggal akan merupakan solusi Reduced Instruction Set


Penggunaan File Register Besar

v Terdapat statement assignment yang jumlahnya banyak dalam program-program HLL, dan banyak diantaranya berupa statement assignment sederhana seperti A = B.

v Di samping itu, terdapat pula akses operand per statement HLL dalam jumlah yang cukup besar.

v Apabila kita menghubungkan kedua di atas dengan kenyataan bahwa sebagian besar akses adalah menuju ke skalar-skalar lokal, maka sangat mungkin kita memerlukan penyimpanan register yang besar.

v Alasan diperlukannya penyimpanan register adalah register merupakan perangkat penyimpanan yang paling cepat, yang lebih cepat dibandingkan dengan memori utama dan memori cache.

v Dimungkinkan untuk menerapkan dua buah pendekatan dasar, yaitu berdasarkan perangkat lunak dan perangkat keras.

o Pendekatan perangkat lunak mengandalkan kompiler untuk memaksimalkan pemakaian register. Pendakatan ini membutuhkan algoritma analisis program yang canggih.

o Pendekatan perangkat keras dilakukan hanya dengan memperbanyak jumlah register sehingga akan lebih banyak variabel yang dapat ditampung di dalam register dalam periode waktu yang lebih lama.


Register Windows

v Jendela register dibagi menjadi tiga buah daerah yang berukuran tetap.

§ Register-register parameter

menampung parameter-parameter yang dilewatkan dari prosedur.

§ Register-register lokal

Digunakan untuk variable lokal, setelah di-assign oleh kompiler.

§ Register-register tenporer

Digunakan untuk pertukaran parameter.

v Overlap ini memungkinkan parameter-parameter dapat dilewatkan tanpa perpindahan aktual data.


Variabel-variabel Global

Ø Teknik Register Windows memberikan organisasi yang efisien untuk penyimpanan variable skalar lokal di dalam register.

Ø Akan tetapi teknik ini tidak dapat memenuhi kebutuhan penyimpanan variabel global, yang diakses oleh lebih dari sebuah prosedur (misalnya, variabel COMMON dalam FORTRAN).

Ø Terdapat dua pilihan untuk memenuhi hal tersebut.

Pertama,

Variabel-variabel yang dideklarasikan sebagai global pada HLL dapat disediakan lokasi-lokasi oleh kompiler. Namun, bagi yang sering mengakses variabel-variabel global, teknik tersebut tidaklah efisien.

Alternatifnya adalah melibatkan kumpulan register global di dalam CPU. Register-register ini harus memiliki jumlah yang tetap dan dapat dipakai oleh semua prosedur.


sumber : silahkan klik link berikut ;
id.wikipedia.org
elektroindonesia.com
www.suwidi.or.id/downloads/kuliah/...