Jumat, 13 Januari 2012

Parallel Processing


Merupakan penggunaan lebih dari satu CPU atau core prosesor secara simultan dalam mengeksekusi suatu progam.

Multiple processor organization (Taksonomi Flynn) :

1.     Single instruction, single data stream (SISD)

Sebuah komputer yang tidak memiliki cara untuk melakukan paralelisasi terhadap instruksi atau data

2.     Single instruction, multiple data stream (SIMD)

Sebuah komputer yang mampu memproses banyak aliran data dengan hanya satu instruksi, sehingga operasi yang dilakukan adalah operasi paralel

3.     Multiple instruction, single data stream (MISD)

Sebuah komputer yang dapat melakukan banyak instruksi terhadap satu aliran data.

4.     Multiple instruction, multiple data stream (MIMD)

Sebuah komputer yang memiliki beberapa prosesor yang bersifat otonomus yang mampu melakukan instruksi yang berbeda pada data yang berbeda.

Symmetric multiprocessing (SMP) :

Merupakan sebuah arsitektur hadware komputer dimana dua atau lebih prosesor yang identik dihubungkan dengan single shared memory dan dikontrol oleh sebuah OS.

Prosesor-prosesor tersebut dapat dihubungkan dengan bus, crossbar switches, dll.

Keuntungan penggunaan symmetric multiprocessing :

1.     Performa lebih tinggi karena dapat mengerjakan pekerjaan secara paralel serta performa dapat ditingkatkan hanya dengan menambah prosesor tambahan

2.     Apabila salah satu prosesor mengalami kegagalan dalam melakukan pekerjaannya maka tidak serta merta menggagalkan seluruh sistem

3.     Skala pekerjaan dapat diperluas sehingga menjadi lebih efisien

Kekurangan symmetric processing adalah :

1.     User harus membangun support untuk SMP pada sistem operasi karena jika tidak maka akan terdapat prosesor yang tidak digunakan

2.     Karena melakukan pekerjaan yang banyak sekaligus maka dapat terjadi berkurangnya efisiensi kerja hardware

Organization classification SMP:

1.     Time shared BUS

Merupakan suatu mekanisme yang paling sederhana dalam membangun suatu sistem multiprosesor. Terdiri dari control, address, dan data lines.

Fitur yang disediakan time shared bus ;

Dapat membedakan modul sehingga dapat mengetahui asal dan tujuan dari data

Setiap I/O module dapat berfungsi sebagai master

Pada saat suatu modul mengontrol BUS maka mudul yang lain tidak dapat memakai atau ditunda sampai operasi selesai dilakukan.

2.     Multiport memory

Multiport memory mengijinkan akses secara lansung dan independen pada main memory oleh setiap prosesor dan I/O module.

3.     Central control unit

Merupakan sebuah printed circuit board yang memiliki microprocessor  dan memori sendiri

Microprogrammed Control Unit


Istilah microprogram diperkenalkan oleh Maurice Wilkes pada tahun 1950.

Microprogrammed control unit :Merupakan rancangan microprogrammed yang dibentuk dengan serangkaian instruksi mikro yang disebut sebagai program mikro dan disimpan dalam sebuah memori control dalam control unit.

Pada microprogrammed serangkaian instruksi micro disimpan dalam ROM sehingga sebuah instruksi dapat diubah dengan mengubah program mikro yang bersesuaian dengan instruksi tersebut dan kelompok instruksi dapat dikembangkan dengan hanya menyertakan ROM tambahan yang berisi program mikro yang bersesuaian.

Terbagi menjadi dua yaitu:

1.     Kontrol vertical

Jenis implementasi dimana sinyal control dikode ke dalam pada bit, kemudian digunakan setelah dikode.

2.     Kontrol horizontal

Kontrol dimana setiap bit konrol mengatur 1 operasi gate atau mesin

Komponen-komponen microprogrammed control unit :

3.     Instruction Register

Menyimpan instruksi register mesin yang dijalankan

4.     Control Store berisi Microprogammed

Untuk semua instruksi mesin

Untuk startup mesin

Untuk pemrosesan interrupt

5.     Address Computing Circuiting

Menentukan alamat control store dari mikroinstruksi berikutnya yang akan dijalankan

6.     Microprogrammed Counter

Menyimpan alamat dari mikroinstruksi berikutnya

7.     Microinstruction Buffer

Menyimpan mikroinstruksi tersebut selama dieksekusi

8.     Microinstruction decoder

Menghasilkan dan mengeluarkan mikroorder yang didasarkan pada mikroinstruksi dan opcode instruksi yang akan dijalankan

Implementasi

1.     Seluruh control unit dapat membangkitkan sekumpulan sinyal kontrol

2.     Tiap saluran kontrol tersebut dalam keadaan on atau off

3.     Kondisi tersebut direpresentasikan oleh digit biner untuk masing-masing saluran kontrolnya

4.     Terdapat control word untuk setiap operasi mikro

5.     Memiliki sejumlah control words untuk tiap instruksi mesin

6.     Menambahkan field alamat untuk menjelaskan microinstruction selanjutnya untuk menspesifikasikan kondisi

Control Unit


Control Unit adalah salah satu bagian dari CPU yang bertugas untuk memberikan arahan/kendali/control terhadap operasi yang dilakukan di bagian ALU. Output dari control unit ini akan mengatur aktivitas dari bagian lainnya dari perangkat CPU tersebut.

Pada awal-awal desain computer, control unit didimplementasikan sebagai ad-hoc logic yang sulit untuk didesain. Sekarang, control unit diimplmentasikan sebagai sebuah microprogram yang disimpan dalam control store.
Beberapa word dari microprogram dipilih oleh microsequencer dan bit yang dating dari word-word tersebut akan secara langsung mengontrol bagian-bagian yang berbeda dari perangkat tersebut.
Pada komputer modern, setiap subsistem ini telah memiliki kontrolernya masing-masing dengan control unit sebagai pemantaunya.

Tugas dari control unit adalah :
1.    Mengatur dan mengendalikan perangkat  I/O device
2.    Mengambil instruksi-instruksi dari memori utama
3.    Mengambil data dari memori utama kalu diperlukan oleh proses
4.    Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika saat mengawasi kerja
5.    Menyimpan hasil proses ke memori utama

Jenis sinyal control :

n  Clock (satu instruksi operasi mikro persiklus clock)
n  Instruction Register (Opcode setiap instruksi dan menentukan instuksi mikro yang akan dilakukan)
n  Tags (Menunjukkan status CPU dan hasil dari operasi sebelumnya)
n  Pada BUS Kendali (Interupsi dan Sinyal Acknowledgment)
n  Pada Ouput dalam CPU (Pergerakan Data dan Mengaktifkan fungsi Tertentu)
n  Melalui BUS Kendali (Ke memori dan Ke I/O)


Jenis control unit :
1.    Control unit microprogrammed
Dikenalkan oleh Maurice Wilkes sebagai level menengah untuk mengeksekusi instruksi computer. Microprogram disusun dari urutan-urutan microinstructions dan disimpan pada control memori special. Keuntungannya adalah strukturnya yang sederhana.
2.    Control unit hard-wired
Pada saat control unit masih berupa ad-hoc logic control unit dapat dianggap sebagai bagian utama dari computer dan yang membantu computer untuk menyelesaikan tugasnya dengan tepat. Pada saat set instruksi dimodifikasi atau diubah perlu untuk mengubbah susunan kabelnya juga.

Single-Cycle Control Unit

Proses pada control unit ini terjadi dalam satu clock cycle yang berarti setiap instruksi ada pada satu cycle, maka dari itu tidak memerlukan state. Dengan demikian fungsi Boolean masing-masing control line hanya merupakan fungsi dari opcode saja. Clock cycle harus mempunyai panjang yang sama untuk setiap jenis instruksi.

Terdapat dua bagian pada control unit ini yaitu :

1.     Proses mendecode opcode untuk mengelompokkannya menjadi 4 macam instruksi

2.     Pemberian sinyal control berdasarkan jenis instruksinya

Multi-Cycle Control Unit

Dibandingkan dengan single-cycle, multi-cycle memiliki banyak fungsi. Dengan memperhatikan state dan opcode, fungsi Boolean dari masing-masing output control unit dapat ditentukan. Masing-masing akan menjadi fungsi dari 10 buah input logic. Pada cycle ini sinyal control tidak lagi ditentukan dengan melihat pada bit-bit instruksinya. Bit-bit opcode memberitahukan operasi apa yang selanjutnya akan dijalankan oleh CPU.

Minggu, 01 Januari 2012

Superscalar

-          Superscalar adalah arsitektur prosessor yang memungkinkan eksekusi yang bersamaan (parallel) dari instruksi yang banyak pada tahap pipeline yang sama sebaik tahap pipeline yang lain.
-          Superscalar mampu menjalankan Instruction Level Parallelism dengan satu prosesor. Superscalar dapat diaplikasikan di RISC dan CISC, tapi pada umumnya RISC.
-          Superscalar prosessor
o   Memproses lebih dari satu instruksi per clock cycle
o   Sangat dimungkinkan untuk memisahkan siklus fetch and execute 
o   Memiliki Buffers pada fase antara proses fetch and decode 
o   Memiliki unit eksekusi yang Parallel
-          Cara kerja superscalar
o   Superscalar dapat mengeksekusi instruksi 1 (I1) dan instruksi 2 (I2) secara pararel dengan syarat:
§  Keduanya instruksi yang sederhana
§  I1 tidak melakukan proses jump
§  Tujuan (destination) dari I1 bukan sumber (source) dari I2
§  Tujuan (destination) dari I1 bukan tujuan (destination) dari I2
o   Jika kondisi diatas tidak dapat dipenuhi:
§  I1 melakukan proses U-pipe
§  I2 dijalankan di cycle berikutnya
-          Teknik dalam superscalar
Branch prediction
          Program yang terdiri dari kelompok perintah bercabang sering digunakan dalam pemrograman.
          Pada CPU yang mendukung perintah pencabangan, CPU membutuhkan cukup 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.
Speculative execution
          CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer.
o   Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya.
o   Jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.