Sunday, December 25, 2016

PROSESOR PARALEL

         Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan.Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yangdigunakan.Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan denganmemanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saatkapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (diindustri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.
TUJUAN PARALLEL PROCESSING
Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaanyang bisa diselesaikan.

JARINGAN INTERKONEKSI

Dalarn sistem multiprosesor, sistem multimemori multiprosesor, dan array prosesor, salah satu persoalan desain yang mendasar adalah interconnection network (jaringan interkoneksi), yaitu jaringan untuk menghubungkan prosesor dan 426 memori secara bersama-sama.Para peneliti telah melakukan sejumlah besar kerja teoritis dalam lapangan ini, namun hampir belum ada teori tersebut yang dipraktekkan.Karenasebagianbesarmasalahmemerlukanmultiprosesoryang besar, maka segala famili mesin yang lengkap harns memungkinkan sistem yang mempunyai prosesor yang banyak. Jaringan interkoneksi muncul dalam berbagai jenis dan topologi. Daya kecocokan atau keserasianjenis tertentu tergantungpada dimana ia akan digunakan. Mari kita lihat beberapa penggunaanbiasa; contoh yang ada di dalam kurung akan dibahas pada bagian berikutnya dalam bab ini:
1. untuk menyampaikan signal kontrol ke prosesor,
2. untuk menghubungkan CPU dan prosesor I/O ke berbagai bank memori (rnisalnya, switch crossbar multi-tahap berkecepatan tinggi yang ada dalam kebanyakan komputer modern yang besar),
3. untuk menyampaikanpesan diantaraprosesor(rnisalnya,jaringan interkoneksi hypercube dari ConnectionMachine),
4. untuk mengorganisasi data guna melakukan transfer (misalnya, jaringan permutasi),
5. untuk interkoneksirelatifjangka panjang (rnisalnya,crossbar yang digunakan oleh beberapa komputer untuk menghubungkanprosesor ke peralatan I/O).

MESIN SIMD & MIMD

SIMD

Yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak processordengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kitaingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun datayang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV,MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).

MIMD

Yang merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda.Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/CompaqAlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

ARSITEKTUR PENGGANTI


 Banyak aplikasi yang membutuhkan atau meminta komputasional yang berat pada komputer, dan para arsitek telah meresponnya dengan merancang prosesor khusus untuk memenuhi permintaan ini. Sebagian besar prosesor khusus tersebut merupakan arsitektur flow-control (kontrol arus) dan dengan demikian ia menggunakancounterprogram.Prosesorini berbedadengan komputerpenggunaan umum dalam hal kekhususan hardwareyang ia sertakanuntuk memenuhi aplikasi target tersebut. Contohnya adalah mesin pemrosesan tampilan, mesin artificial intelligence (AI), dan mesin database. Para arsitek merancang mesin pemrosesan tampilandenganperalatanI/O khususyang dapatmemberikanbandwidthI/O tinggi yang diperlukanuntuk memprosesdan mendisplaytainpilan,dan mereka seringkali menerapkanunit aritmetikpipelinedyangkhusus diperuntukkanbagi operasiseperti bluriing (pengaburan) dan korelasi tampilan. Para arsitek merancang mesin AI 500 dengan prosesor khusus yang dirancang untuk memenuhi kebutuhan komputasi simbolik,yang biasanyamenggunakansalahsatuprosesoruntukmengalokasimemori dan prosesor yang satunya untuk mengklaimkembali memori yang tidak terpakai (kumpulansampah).Merekamerancangmesindatabaseuntukmemberikanfasilitas untuk operasidatabase kepada peralatanpenyimpananekstemalbesar berkecepatan tinggi. Umumnya, arsitekturpenggunaan khusus menggunakanberbagai teknik yang baru saja kita kemukakan.Bagian berikut, yang menutupbuku ini, akan membahas secara singkat mengenai dua altematif bagi arsitektur flow-control konvensional. Salah satunya adalah prosesor dataflow (arus data). Tidak seperti halnya dalam mesin von Neumann, yakni bahwa program menentukan kapan mereka akan menjalankanoperasi,prosesordataflowini adalahavailabilitydata yangmenentukan kapan prosesor dataflow akan menjalankan operasi. Kelompoklain dari arsitekturpenggantiyang baru-baruini telah diperkenalkan adalah jaringan neural. Ia agak didasarkan pada sistem biologis dan terdiri atas sejumlah elemen komputasional yang sangat sederhana yang beroperasi secara paralel. Walaupun tidak dirancang sebagai komputer penggunaan umum, namun jaringan neural ini telah menunjukkanbahwa ia bisa digunakan untuk pemrosesan signal dan aplikasi rekognisi pola.

REFERENSI

Pipelining & RISC

Pipelining

        Pipelining adalah teknik yang digunakan untuk meningkatkan throughput eksekusi CPU dengan menggunakan sumber daya prosesor dengan cara yang lebih efisien.
         Ide dasarnya adalah untuk membagi instruksi prosesor menjadi serangkaian tahapan independen kecil. Setiap tahap dirancang untuk melakukan bagian tertentu dari instruksi. Pada tingkat yang sangat dasar, tahap ini dapat dipecah menjadi:
1.       Fetch unit : Mengambil instruksi dari memori
2.       Decode unit : Membaca sandi instruksi yang dieksekusi
3.       Execute unit :  Mengeksekusi instruksi
4.       Write unit : Menulis hasil kembali untuk mendaftar atau memori


        Pada CPU non-pipelined, ketika instruksi sedang diproses pada tahap tertentu, tahap lainnya berada pada keadaan idle - yang sangat tidak efisien. Jika Anda melihat diagram, ketika instruksi 1 sedang diterjemahkan, Fetch, Execute dan Write Unit CPU tidak digunakan dan dibutuhkan 8 jam siklus untuk mengeksekusi 2 instruksi.
         Di sisi lain, pada CPU pipelined, semua tahapan bekerja secara paralel. Ketika instruksi pertama sedang diterjemahkan oleh Unit Decoder, instruksi kedua sedang diambil oleh fetch unit. Hanya membutuhkan waktu 5 siklus clock untuk mengeksekusi 2 instruksi pada CPU pipelined.
         Perhatikan bahwa peningkatan jumlah tahap dalam pipeline tidak akan selalu menghasilkan peningkatan eksekusi. Pada CPU non-pipelined, instruksi hanya bisa mengambil 3 siklus, tetapi pada CPU pipelined itu bisa mengambil 4 siklus karena tahapan yang berbeda yang terlibat. Oleh karena itu, satu instruksi mungkin memerlukan siklus clock yang lebih untuk mengeksekusi pada CPU pipelined. Tapi waktu yang dibutuhkan untuk menyelesaikan eksekusi beberapa instruksi mendapat lebih cepat di CPU pipelined. Jadi perlu ada keseimbangan di antaranya.
         Salah satu komplikasi utama dengan pipelining dalam (misalnya, 31-tahap pipelining digunakan di beberapa Intel Pentium 4 prosesor) adalah ketika sebuah instruksi cabang bersyarat sedang dieksekusi. Karena fakta bahwa prosesor tidak akan dapat menentukan lokasi dari instruksi berikutnya, oleh karena itu harus menunggu instruksi cabang untuk menyelesaikan dan seluruh pipeline mungkin perlu diflush sebagai hasilnya. Jika sebuah program memiliki banyak instruksi cabang bersyarat, pipelining bisa memiliki efek negatif pada kinerja secara keseluruhan. Untuk mengatasi masalah ini, prediksi cabang dapat digunakan, tetapi ini juga dapat memiliki efek negatif jika cabang-cabang diperkirakan salah.


RISC (Reduced Instruction Set Computer)

RISC, yang jika diterjemahkan berarti “Komputasi Kumpulan Instruksi yang Disederhanakan”,
         Merupakan 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.
         Prosesor RISC hanya menggunakan instruksi-instruksi sederhana yang bisa dieksekusi dalam satu siklus. Dengan demikian, instruksi ‘MULT’ sebagaimana dijelaskan sebelumnya dibagi menjadi tiga instruksi yang berbeda, yaitu “LOAD”, yang digunakan untuk memindahkan data dari memori ke dalam register, “PROD”, yang digunakan untuk melakukan operasi produk (perkalian) dua operan yang berada di dalam register (bukan yang ada di memori) dan “STORE”, yang digunakan untuk memindahkan data dari register kembali ke memori. 
         Berikut ini adalah urutan instruksi yang harus dieksekusi agar yang terjadi sama dengan instruksi “MULT” pada prosesor RISC (dalam 4 baris bahasa mesin):
LOAD A, 2:3 
LOAD B, 5:2
PROD A, B
STORE 2:3, A

         Semakin banyak baris instruksi, semakin banyak lokasi RAM yang dibutuhkan untuk menyimpan instruksi-instruksi tersebut. Kompailer juga harus melakukan konversi dari bahasa tingkat tinggi ke bentuk kode instruksi 4 baris tersebut.

REFERENSI

Arsitektur Family Komputer IBM PC

Arsitektur Family Komputer
         IBM PC adalah sebutan untuk keluarga komputer pribadi buatan IBM. IBM PCdiperkenalkan pada 12 Agustus 1981, dan "dipensiunkan" pada tanggal 2 April 1987. 


Famili IBM PC dan Turunannya
         Sejak diluncurkan oleh IBM, IBM PC memiliki beberapa keluarga, yakni :

a)      IBM 4860 PCjr
b)      IBM 5140 Convertible Personal Computer (Laptop)
c)      IBM 5150 Personal Computer (PC yang asli)
d)      IBM 5155 Portable PC (Sebenarnya merupakanPC XT yang portabel)
e)      IBM 5160 Personal Computer/eXtended Technology
f)       IBM 5162 Personal Computer/eXtended Technology Model 286
g)      IBM 5170 Personal Computer/Adavanced Technology

Konfigurasi mikrokomputer dasar
        Mikrokomputer adalah sebuah kelas komputer yang menggunakan mikroprosesor sebagai CPU utamanya. Komputer mikro juga dikenal sebagai Personal Computer (PC), Home Computer atau Small-business Computer. Komputer mikro yang diletakkan di atas meja kerja dinamakan dengan desktop, sedangkan yang dapat dijinjing (portabel) dinamakan dengan Laptop, karena sering diletakkan di atas paha. Ketika komputer mikro pertama kali muncul ke pasaran, komputer jenis ini dianggap sebagai perangkat yang hanya digunakan oleh satu orang saja, yang mampu menangani informasi yang berukuran 4-bit, 8-bit atau 16-bit (dibandingkan dengan minicomputer atau mainframe yang mampu menangani informasi lebih dari 32-bit) pada satu waktunya.

Bagian-Bagian Mikrokomputer
         Berikut adalah Sistem mikrokomputer yang terdiri dari bagian-bagian yang berfungsi sama penting.
1. CPU / Mikroprosesor
Sebuah mikroprosesor adalah sebuah central processing unit (CPU) elektronik komputer yang terbuat dari transistor mini dan sirkuit lainnya di atas sebuah sirkuit terintegrasi semikonduktor.
2. Memori Utama (Main Memory)
Memory utama pada mikrokomputer terdiri dari dua macam yaitu ROM dan RAM

Komponen IBM PC
ROM :40 KB, tidak mendukung ROM Shadowing.
Port serial : 2 buah NS8250B UART, 9600 baud/detik.
Port pararel : 3 buah, tidak mendukung operasi dua arah (bi–directional).
Jenis media penyimpanan : Floppy disk drive, 360 KB 5.25 inci.
Slot ekspansi : 5 buah yang terdapat dalam motherboard, 3 buah yang masih kosong (1 buah digunakanuntuk kontrolir floppy disk, 1 buah lagi digunakan untuk kontrolir video).
Power Supply : 63.5 Watt, diberi kipas pendingin. Beberapa kartu ekspansi yang haus dayamensyaratkan penggantian power supply yang dapat menyuplai daya yang lebih besar.

Keyboard : IBM PC Keyboard, 83-tombol. Dicolokkan ke dalam soket keyboard yang memiliki enam buah pin.

REFERENSI

UNIT INPUT / OUTPUT

              Unit I/O adalah sebuah komponen dalam sistem komputer yang bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan bertanggung jawab juga terhadap pertukaran data antara perangkat luar tersebut dengan memori utama ataupun register-register dalam CPU. Dalam mewujudkan fungsi tersebut, diperlukan antarmuka internal dengan komputer (CPU dan memori utama) dan antarmuka dengan perangkat eksternalnya untuk menjalankan fungsi-fungsi pengontrolan.
Dua fungsi utama Modul I/O ialah :
1.      Sebagai piranti antarmuka ke CPU dan memori melalui bus sistem.
2.      Sebagai piranti antarmuka dengan peralatan peripheral lainnya dengan menggunakan link data tertentu
Fungsi dalam menjalankan tugas, modul I/O dapat dibagi menjadi beberapa kategori, yaitu:
a.      Kontrol dan pewaktuan
b.      Komunikasi CPU
c.       Komunikasi dengan perangkat eksternal
d.      Pem-buffer-an data
e.      Deteksi kesalahan

A.      Kontrol dan pewaktuan
               Fungsi kontrol dan pewaktuan (control & timming) merupakan hal yang penting untuk mensinkronkan kerja masing-masing komponen penyusun komputer. Dalam sekali waktu CPU berkomunikasi dengan satu atau lebih perangkat dengan pola tidak menentu dan kecepatan transfer data yang beragam, baik dengan perangkat internal seperti register-register, memori utama, memori sekunder, perangkat periperhal.  Proses tersebut bisa berjalan apabila ada fungsi kontrol dan pewaktuan yang mengatur sistem secara keseluruhan.  Contoh kontrol pemindahan data dari periperhal ke CPU melalui sebuah modul I/O meliputi langkah-langkah sebagai berikut:
1.      Permintaan dan pemeriksaan status perangkat dari CPU ke modul I/O.
2.      Modul I/O memberikan jawaban atas permintaan CPU tersebut.
3.      Apabila perangkat eksternal telah siap untuk transfer data, maka CPU akan mengirimkan perintah ke modul I/O
4.      Modul I/O akan menenrima paket data dengan panjang tertentu dari periperhal.
5.      Selanjutnya data dikirim ke CPU setelah diadakan seinkronisasi panjang data dan kecepatan transfer oleh modul I/O sehingga paket-paket data dapat diterima CPU dengan baik.
              Transfer data tidak akan lepas dari penggunaan sistem bus, maka interaksi CPU dan modul I/O akan melibatkan kontrol dan pewaktuan sebuah arbitrasi bus atau lebih. Ada fungsi komunikasi antara CPU dan modul I/O meliputi proses-proses berikut ini :
1.      Command Decoding, yaitu modul I/O menerima perintah-perintah dari CPU yang dikirimkan sebagai sinyal bus kontrol. Misalnya, sebuah modul I/O untuk disk dapat menerima perintah : Read sector, Scan Record ID, Format disk.
2.      Data, pertukaran data antara CPU dan modul I/O melalui bus data.
3.      Status Reporting, yaitu pelaporan kodisi status modul I/O maupun perangkat periperhal, umumnya berupa status kondisi busy atau ready. Juga status bermacam-macam kodisi kesalahan (error).
4.      Address recognition, bahwa peralatan atau komponen penyusun komputer dapat dihubungi atau dipanggil maka harus memiliki alamat yang unik, begitu pula pada perangkat periperhal, sehingga setiap modul I/O harus mengetahui alamat periperhal yang dikontrolnya
              Pada sisi modul I/O ke perangkat periperhal juga terdapat komunikasi yang meliputi komunikasi data, kontrol maupun status.
B.      Pem-buffer-an data
               Fungsi selanjutnya adalah buffering. Tujuan utama buffering adalah mendapatkan penyesuaian data sehubungan perbedaan laju transfer data dari perangkat periperhal dengan kecepatan pengolahan pada CPU . Umumnya laju transfer data pada dari perangkat periperhal lebih lambat dari kecepatan CPU maupun media penyimpanan.
C.      Deteksi kesalahan
             Fungsi terakhir adalah deteksi kesalahan. Apabila pada perangkat periperhal terdapat masalah sehingga proses tidak dapat dijalankan, maka modul I/O akan melaporkan kesalahan tersebut. Misalnya informasi pada periperhal printer seperti: kertas tergulung, kertas habis, tinta habis, dan lain-lain. Teknik yang umum untuk deteksi kesalahan adalah penggunaan bit paritas.

Struktur Modul Input/Output
         Terdapat berbagai macam modul I/O seiring perkembangan komputer itu sendiri, contoh yang sederhana dan fleksibel adalah intel  8255A yang sering disebut PPI (Programmable Periperhal Interface). Bagaimanapun komplesitas suatu modul I/O terdapat kemiripan struktur.
Antarmuka modul I/O ke CPU melalui bus sistem komputer terdapat tiga saluran, yaitu saluran data, saluran alamat dan saluran kontrol. Bagian terpenting adalah blok logika I/O yang berhubungan dengan semua peralatan antarmuka periperhal, terdapat fungsi pengaturan dan switching pada blok ini.

SISTEM BUS
          Bus adalah jalur fisik yang menghubungkan antara unit-unit fungsional di dalam komputer, dan antara komputer dengan dunia luar. Sistem bus menyediakan fasilitas jalur lintasan untuk perintah, alamat, dan data dari unit kontrol ke seluruh unit dalam komputer. Perancangan bus mempunyai efek yang sangat penting pada unjuk kerja komputer. Karakteristik bus seperti kecepatan, jumlah bit, dan aturan transmisi informasi memerankan peranan yang kritis dalam perancangan setiap sistem komputer.

          Sistem bus cukup sederhana, terdiri atas himpunan jalur yang dilewati informasi dari satu register ke register yang lain. Unit kontrol akan mengkoordinasikan seluruh proses tansfer dan membangkitkan semua isyarat pewaktuan dan kontrol yang diperlukan. Terdapat beberapa masalah penting dengan sistem bus sederhana ini. Pertama, sistem ini dapat menjadi tidak efisien untuk beberapa oeprasi. Misalnya untuk operasi menulis ke memori. Untuk mengeksekusi operasi penulisan ke memori, unit kontrol harus 1. Mentransfer alamat memori ke MAR (Memory Address Register). 2. Mentransfer data dari register lain ke MDR. 3. Meminta satu operasi penulisan memori. Operasi ini akan memanggil dua runtun operasi dengan pewaktuan seperti yang diperlihatkan pada Gambar 5.3.Dalam perancangan suatu sistem komputer dengan kecepatan tinggi, operasi di ataas tidak akan dapat diterima. Masalah kedua dengan sistem bus sederhana ini adalah bahwa seluruh isyarat kontrol dan pewaktuan hares datang dari unit kontrol. Hal ini mungkin tidak terlihat sebagai suatu masalah, tetapi akan menimbulkan masalah jika terdapat unit lain seperti piranti I/O yang juga memerlukan inisialisasi transfer.
STANDAR INPUT/OUTPUT INTERFACE
         Interface atau antarmuka adalah Penghubung antara dua sistem ataualat media penghubung antara satu subsistem dengan subsistem lainnya. Melalui penghubung ini memungkinkan sumber daya mengalir dari satu subsistem ke subsistem yang lainnya. Keluaran (output) dari suatu subsistem akan menjadi masukan (input) untuk subsistem lainnya dengan melalui penghubung.

PENGAKSESAN PERALATAN INPUT/OUTPUT
              Untuk melaksanakan perintah-perintah I/O, CPU akan mengeluarkan sebuah alamat bagi modul I/O dan perangkat periperhalnya sehingga terspesifikasi secara khusus dan sebuah perintah I/O yang akan dilakukan. Terdapat empat klasifikasi perintah input/output, yaitu:
  1. Perintah Control yaitu perintah yang digunakan untuk mengaktivasi perangkat periperhal dan memberitahukan tugas yang diperintahkan kepadanya.
  2. Perintah Test, yaitu perintah yang digunakan CPU untuk menguji berbagai kondisi status modul I/O dan periperhalnya. CPU perlu mngetahui perangkat periperhalnya dalam keadaan aktif dan siap digunakan, juga untuk megetahui operasi-operasi I/O yang dijalankan serta mendeteksi kesalahannya.
  3. Perintah Read, yaitu perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruhnya di dalam buffer internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfernya.
  4. Perintah Write, Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat periperhal tujuan data tersebut.

              Dalam teknik I/O terprogram, terdapat dua macam implementasi perintah I/O yang tertuang dalam instruksi I/O, yaitu memory mapped I/O dan isolated I/O.
Dalam memory mapped I/O, terdapat ruang tunggal untuk lokasi memori dan perangkat I/O. CPU memperlakukan register status dan register data pada modul I/O sebagai lokasi memori dan menggunakan instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O. Konsekuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran tunggal untuk penulisan. Keuntungan memory mapped ini adalah efisien dalam pemrograman namun memakan banyak ruang memory alamat.

Dalam teknik isolated I/O, dilakukan pemisahan ruang pengalamatan bagi memori dan ruang pengalamatan bagi I/O. Dengan teknik ini diperlukan bus yang dilengkapi dengan pembacaan dan penulisan memori ditambah dengan saluran perintah output. Kesuntungan isolated I/O adalah sedikitnya instruksi I/O.

REFERENSI