Jumat, 22 Desember 2017

Prosesor Paralel



Prosesor Paralel

Pemrosesan paralel (parallel processing) adalah penggunaaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.
            Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
            Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
Komputasi paralel membutuhkan:
1.      Algoritma
2.      Bahasa pemrograman
3.      Compiler
Sebagaian besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer dengan ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software canggih yang disebut distributed processing software. Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing. Yang terdiri dari empat kelompok komputer.
A.      Jaringan Interkoneksi
Ada 5 komponen
1.      CPU
2.      Memori
3.      Interface : peralatan yang yangnmembawa pesanmasuk dan keluar dari CPU danMemori
4.      Penghubung : saluran fisik yang dilalui bit-bituntuk berpindah tempat
5.      Switch : peralatan yang memiliki banyak portinput dan port output
Komunikasi diantara terminal-terminal yang berbeda harus dapat dilakukan dengan suatu media tertentu. Interkoneksi yang efektif antara prosesor dan modul memorisangat penting dalam lingkungan komputer. Menggunakan arsitektur bertopologi  busbukan merupakan solusi yang praktis karena bus hanya sebuah pilihan yang baik ketika digunakan untuk menghubungkan komponen-komponen dengan jumlah yang sedikit. Jumlah komponen dalam sebuah modul IC bertambah seiring waktu. Oleh karena itu, topologi  bus bukan topologi yang cocok untuk kebutuhan interkoneksi komponenkomponen di dalam modul IC. Selain itu juga tidak dapat diskalakan, diuji, dan kurang dapat disesuaikan, serta menghasilkan kinerja toleransi kesalahan yang kecil. Di sisi lain, sebuah  crossbar menyediakan interkoneksi penuh diantara semua terminal dari  suatu  sistem  tetapi  dianggap sangat kompleks, mahal untuk membuatnya, dan sulit untuk dikendalikan. Untuk alasan ini jaringan interkoneksi merupakan solusi media komunikasi yang baik untuk sistem komputer dan telekomunikasi. Jaringan ini membatasi jalur-jalur diantara terminal komunikasi yang berbeda untuk mengurangi kerumitan dalam menyusun elemen switching .
B.       Mesin SIMD & Mesin MMID
Ø  Mesin SIMD
SIMD adalah singkatan dari “Single Instruction, Multiple Data”, merupakan tentang sebuah istilah dalam komputasi yang akan merujuk kepada sekumpulan  operasi yang digunakan untuk menangani jumlah data yang sangat banyak dalam paralel secara efisien, seperti yang terjadi dalam prosesor vektor atau prosesor larik. SIMD pertama kali dipopulerkan pada super komputer skala besar, meski sekarang telah ditemukan pada komputer pribadi. Contoh aplikasi yang dapat mengambil keuntungan dari SIMD adalah aplikasi yang memiliki nilai yang sama yang ditambahkan ke banyak titik data (data point), yang umum terjadi dalam aplikasi multimedia. Salah satu contoh operasinya adalah mengubah brightness dari sebuah gambar. Setiap  dari sebuah gambar 24-bit berisi tiga buah nilai berukuran 8-bit brightness dari porsi warna merah (red), hijau (green), dan biru (blue). Untuk melakukan perubahan brightness, nilai R, G, dan B akan dibaca dari memori, dan sebuah nilai baru ditambahkan (atau dikurangkan) terhadap nilai-nilai R, G, B tersebut dan nilai akhirnya akan dikembalikan (ditulis kembali) ke memori.
Prosesor yang memiliki SIMD menawarkan dua keunggulan, yakni:
Data langsung dapat dipahami dalam bentuk blok data, dibandingkan dengan beberapa data yang terpisah secara sendiri-sendiri. Dengan menggunakan blok data, prosesor dapat memuat data secara keseluruhan pada waktu yang sama. Daripada melakukan beberapa instruksi “ambil pixel ini, lalu ambil pixel itu, dst”, sebuah prosesor SIMD akan melakukannya dalam sebuah instruksi saja, yaitu “ambil semua pixel itu!” (istilah “semua” adalah nilai yang berbeda dari satu desain ke desain lainnya). Jelas, hal ini dapat mengurangi banyak waktu pemrosesan (akibat instruksi yang dikeluarkan hanya satu untuk sekumpulan data), jika dibandingkan dengan desain prosesor tradisional yang tidak memiliki SIMD (yang memberikan satu instruksi untuk satu data saja). Sistem SIMD umumnya hanya mencakup instruksi-instruksi yang dapat diaplikasikan terhadap semua data dalam satu operasi. Dengan kata lain, sistem SIMD dapat bekerja dengan memuat beberapa titik data secara sekaligus, dan melakukan operasi terhadap titik data secara sekaligus.
Ø  Mesin MMID
MIMD adalah sebuah singkatan dari, “Multiple Instruction Stream-Multiple Data Stream” yaitu sebuah komputer yang memiliki beberapa prosesor yang bersifat otonomus yang mampu melakukan instruksi yang berbeda pada data yang berbeda. Sistem terdistribusi umumnya dikenal sebagai MIMD, entah itu menggunakan satu ruangan memori secara bersama-sama atau sebuah ruangan memori yang terdistribusi. Pada sistem komputer MIMD murni terdapat interaksi di antara pemrosesan. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses. Komputer MIMD bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan disebut loosely coupled jika tingkat interaksi antara pemroses rendah.

C.       Arsitektur Pengganti
Dalam bidang teknik computer, arsitektur pengganti merupakan konsep perencanaan atau struktur pengoperasian dasar dalam computer atau bisa dikatakan rencana cetak biru dari deskripsi fungsional kebutuhan dari perangkat keras yang didesain, implementasi perencanaan dari masing-masing bagian seperti CPU, RAM, ROM, Memory Cache, dll.

SUMBER :
http://id.scribd.com/doc/17220400/Paralel-Prosesor
https://id.wikipedia.org/wiki/Interkoneksi                           

Pipelining dan RISC



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.       KONSEP PIPELINE   
Pada umumnya, efisiensi sebuah komputer dinilai beerdasarkan kecepatan perangkat keras dan fasilitas-fasilitas perangkat lunak. Penilaian ini disebut sebagai throughput, didefinisikan sebagai jumlah pemrosesan yang dapat dikerjakan dalam suatu interval waktu tertentu. Salah satu teknik yang mendorong peningkatan suatu sistem throughput yang cukup hebat disebut sebagai pemrosesan pipeline. Konsep pemrosesan pipeline dalam suatu komputer mirip dengan suatu baris perakitan dalam suatu pabrik industri. Ambil contoh, sutu proses pembuatan mobil. Ketika sebuah mobil dibuat, mobil tersebut berpindah sepanjang ban berjalan dengan berurutan, melewati beberapa stasiun. Pada setiap stasiun, dikerjakan sebagian proses konstruksi pada mobil itu, kemudian berpindah lagi ke stasiun berikutnya. Perpindahan mobil itu dari satu stasiun ke stasiun lainnya, memungkinkan beberapa mobil berada pada baris perakitan pada waktu yang bersamaan, masing-masing pada stasiun yang terpisah. Dengan demikian, hal ini mengakibatkan kita menghasilkan mobil dari baris perakitan satu persatu secara berurutan. Tanpa teknik baris perakitan seperti ini, pengerjaan suatu mobil tidak dapat dimulai sampai mobil yang sebelumnya benar-benar selesai.  
Pemrosesan pipeline dalam suatu komputer diperoleh dengan membagi suatu fungsi yang akan dijalankan menjadi beberapa subfungsi yang lebih kecil dan merancang perangkat keras yang terpisah, disebut sebagai tingkatan (stage), untuk setiap subfungsi. Stage-stage itu kemudian dihubungkan bersama-sama dan membentuk sebuah pipeline tunggal (atau pipe) untuk menjalankan fungsi asli tersebut.

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

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

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

3. pipelining:adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efiisien.

    Ciri-ciri :
  1. Instruksi berukuran tunggal
  2. Ukuran yang umum adalah 4 byte
  3. Jumlah pengalamatan data sedikit,
  4. Tidak terdapat pengalamatan tak langsung
  5. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika
  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 .

E.       Instruksi Pipeline

Tahapan pipeline :
  1. Mengambil instruksi dan membuffferkannya
  2. Ketika tahapan 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).


SUMBER :

Arsitektur Family Komputer IBM PC



Arsitektur Family Komputer IBM PC

1. Famili IBM PC dan Turunannya
IBM PC adalah sebutan untuk keluarga komputer pribadi buatan IBM. IBM PC diperkenalkan pada 12 Agustus 1981, dan "dipensiunkan" pada tanggal 2 April 1987. Komputer personal pertamakali muncul setelah diperkenalkan mikroprosesor, yaitu chip tunggal yang terdiri dari set register , ALU dan unit kontrol computer. IBM PC merupakan arsitektur bus tunggal yang disebut PC I/O Channel BUS atau PC BUS. PC BUS melengkapi PC dengan 8 jalur data, 20 jalur alamat, sejumlah jalur kontrol dan ruang alamat fisik PC adalah 1 MB. 
Sejak diluncurkan oleh IBM, IBM PC memiliki beberapa keluarga, yakni :
    - IBM 4860 PCjr
    - IBM 5140 Convertible Personal Computer (laptop)
    - IBM 5150 Personal Computer (PC yang asli)
    - IBM 5155 Portable PC (sebenarnya merupakan PC XT yang portabel)
    - IBM 5160 Personal Computer/eXtended Technology
    - IBM 5162 Personal Computer/eXtended Technology Model 286 (sebenarnya merupakan PC AT)
    - IBM 5170 Personal Computer/Advanced Technology
2. Konfigurasi Mikrokomputer Dasar
Berdasarkan UkurannyaBerdasarkan ukurannya, komputer digolongkan ke dalam micro computer (komputer mikro), mini computer (komputer mini), small computer (komputer kecil), medium computer (komputer menengah), large computer (komputer besar) dan super computer (komputer super).1.Micro ComputerMicro Computer (Mikro Komputer) disebut juga dengan nama personal computer (komputer personal) . ukuran main memory komputer mikro sekarang berkisar dari 16 MB sampai lebih dari 128 MB, dengan konfigurasi operand register 8 bit, 16 bit, atau 32 bit. Kecepatan komputer mikro sekarang berkisar 200 Mhz sampai dengan 500 Mhz.Komputer mikro umumnya adalah single-user (pemakainya tunggal), yaitu satu komputer hanya dapat digunakan untuk satu pemakai saja untuk tiap saat.
1. Chipset adalah set dari chip yang mendukung kompatibel yang mengimplementasikan berbagai fungsi tertentu seperti pengontrol interupt, pengontrol bus dan timer.
2. Chip khusus yang di sebut koprosesor yang beroperasi bersama dengan CPU guna meningkatkan fungsionalitasnya

3. Komponen IBM PC
   - Sistem kontrol BUS : Pengontrol BUS, Buffer Data, dan Latches Alamat
   - Sistem kontrol interuppt : Pengontrol Interuppt
   - Sistem kontrol RAM & ROM : Chip RAM & ROM, Decoder Alamat, dan Buffer
   - Sistem kontrol DMA : Pengontrol DMA
   - Timer : Timer Interval Programmable
   - Sistem kontrol I/O : Interface Paralel Programmable

4. Sistem Software
System software adalah abstrak, tidak memiliki bentuk fisik. Software tidak dibatasi oleh material serta tunduk pada hukum-hukum fisika atau oleh proses-proses manufaktur. Pengembangan software serta pengelolaan proyek pengembangan software adalah sulit karena kenyataan-kenyataan sebagai berikut: 
  • Kompleks, sehingga sulit untuk dipahami
  • Tidak tampak, maka pengukuran kualitas software agak   sulit dilakukan dan sulit melacak kemajuan pengembangannya
  • Mudah berubah, karena mudah untuk dimodifikasi namun kita sulit sekali melihat terlebih dahulu konsekuensi dari perubahan-perubahan yang dilakukan. 
Software komputer adalah produk yang dihasilkan melalui serangkaian aktivitas proses rekayasa atau pengembangan, yang menghasilkan aktivitas berupa:
  • Dokumen-dokumen yang menspesifikasikan program yang hendak dibangun
  • Program yang dieksekusi komputer
  • Dokumen yang menjelaskan program dan cara kerjanya program
System software
  • Penetapan Alamat Port I/O
  • Penetapan Vector Interrupt
  • ROM BIOS
  • Penetapan Alamat Memori
5. Manfaat Arsitektural Arsitek Komputer
Ada empat ukuran pokok yang menentukan keberhasilan arsitektur, yaitu manfaat arsitekturalnya yaitu:
  • Aplicability
  • Maleability
  • Expandibility
  • Comptible
Kinerja Sistem Untuk mengukur kinerja sistem, ada serangkaian program yang standard yang dijalankan yang biasa di sebut Benchmark pada komputer yang akan diuji.

Ukuran Kinerja CPU:
  • MIPS (Million Instruction PerSecond)
  • MFLOP (Million Floating Point PerSecond)
  • VUP (VAX Unit of Performance)
Ukuran Kinerja I/O Sistem:
  • Operasi Bandwith
  • Operasi I/O Perdetik
Ukuran Kinerja Memori:
  • Memoy Bandwith
  • Waktu Akses Memori
  • Ukuran Memori  
Biaya Sistem
Biaya dapat diukur dalam banyak cara diantaranya:
  • Reliabilitas
  • Kemudahan Perbaikan
  • Konsumsi daya
  • Berat
  • Kekebalan
  • Interface Sistem Software
SUMBER :