Jumat, 03 Februari 2017

PIPELINING&RISC


PIPELINING&RISC

·         PIPELINING
Pengertian pipelining, pipelining yaitu 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 dijalankan oleh microprocessor.

Ø  Pengenalan Pipeline.
Prosesor Pipeline yang berputar adalah prosesor baru untuk arsitektur superscalar komputasi. Ini didasarkan pada cara yang mudah dan pipeline yang biasa, struktur yang dapat mendukung beberapa ALU untuk lebih efisien dalam pengiriman dari bagian beberapa instruksi. Daftar nilai arus yang berputar di sekitar pipa, dibuat oleh dependensi data lokal. Selama operasi normal, kontrol sirkuit tidak berada pada jalur yang kritis dan kinerja hanya dibatasi oleh data harga. Operasi mengalir dengan interval waktu sendiri. Ide utama dari Pipeline Prosesor yang berputar adalah circular uni-arah mengalir dari memori register oleh pusat waktu logika dan proses secara parallel dari operasi ALU.

Struktur lain yang menggunakan penyelesaian deteksi atau selain penundaan yang tepat dari pengaturan waktu pusat tetapi karena masalah waktu yang Syncronization, Pipelines memaksakan sebuah penurunan kinerja. Misalnya counterflow pipeline prosesor yang dirancang sekitar dua arah, pipa membawa petunjuk dan argumen dalam satu arah dan hasil yang lainnya b ini dapat menyebabkan Syncronization masalah antara prosesor.

Pipeline yang berputar menghindari masalah yang hanya melewati data dalam satu arah. Pada prinsipnya, prosesor dari register terus beredar di sekitar cincin yang berhubungan dengan berbagai fungsi ALU, akses memori dan sebagainya .ada tiap tahap, nilai-nilai yang memeriksa dan disampaikan, kemungkinan setelah perubahan, tidak signifikan dengan pengeluaran tambahan untuk sinkronisasi. Dispatched adalah instruksi dari pusat ke fungsi unit yang memungkinkan beberapa masalah instruksi .
Ø 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).

Ø  Keuntungan 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.

Ø  Kerugian pipeline .

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.

·         REDUCE INSTRUCTION SET COMPUTER (RISC)

Kata “reduced” berarti pengurangan pada set instruksi. RISC merupakan rancangan arsitektur CPU yang mengembil dasar filosofi bahwa prosesor dibuat dengan arsitektur yang tidak rumit dengan membatasi jumlah instruksi hanya pada instruksi dasar yang diperlukan saja. Dengan kata lain RISC adalah arsitektur komputer dengan kumpulan perintah (instruksi) yang sederhana, tetapi dalam kesederhanaan tersebut didapatkan kecepatan operasi setiap siklus instruksinya. Kebanyakan pada proses RISC , instruksi operasi dasar aritmatik hanya penjumlahan dan pengurangan, untuk perkalian dan pembagian sudah dianggap operasi ang kompleks. RISC menyederhanakan rumusan perintah sehingga lebih efisien dalam penyusunan kompiler yang pada akhirnya dapat memaksimumkan kinerja program yang ditulis dalam bahasa tingkat tinggi.
Ada beberapa elemen penting dalam arsitektur RISC, yaitu :
Ø  Set instruksi yang terbatas dan sederhana
Ø  Register general-purpose yang berjumlah banyak, atau pengguanaan teknologi kompiler untuk mengoptimalkan pemakaian regsiternya.
Ø  Penekanan pada pengoptimalan pipeline instruksi.

Ciri-ciri karakteristik RISC :
Ø  Instruksi berukuran tunggal.
Ø  Ukuran yang umum adalah 4 byte.
Ø  Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah.
Ø  Tidak terdapat pengalamatan tak langsung.
Ø  Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika .


Ada tiga buah elemen yang menentukan karakter arsitektur RISC, yaitu:
• Penggunaan register dalam jumlah yang besar. Hal ini dimaksudkan untuk mengoptimalkan pereferensian operand.
• 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.
• Terdapat set instruksi yang disederhanakan (dikurangi).

Perkembangan RISC
Pada tahun 1980, John Cocke di IBM menghasilkan minikomputer eksperimental, yaitu IBM 801 dengan prosesor komersial pertama yang menggunakan RISC. Pada tahun itu juga, Kelompok Barkeley yang dipimpin David Patterson mulai meneliti rancangan RISC dengan menghasilkan RISC-1 dan RISC-2.

Pemakai Teknik RISC
• IBM dengan Intel Inside-nya.
• Prosessor PowerPC, prosessor buatan motorola yang menjadi otak utama komputer Apple Macintosh.

Konsep Arsitektur RISC
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. RISC memerlukan memori yang lebih besar untuk mengakomodasi program yang lebih besar. Dengan mengoptimalkan penggunaan memori register diharapkan siklus operasi semakin cepat.

RISC vs CISC
Dari segi kecepatannya, Reduced Instruction Set Computer (RISC) lebih cepat dibandingkan dengan Complex Instruction Set Computer (CISC). Ini dikarenakan selain instruksi-instruksi pada RISC lebih mudah untuk diproses, RISC menyederhanakan instruksi . Jumlah instruksi yang dimiliki oleh prosesor RISC kebanyakan berjumlah puluhan (±30-70), contoh: COP8 buatan National Semiconductor memiliki 58 instruksi; sedangkan untuk prosesor CISC jumlahnya sudah dalam ratusan (±100 atau lebih).
CISC dirancang 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.

Eksekusi Instruksi RISC
Waktu eksekusi dapat dirumuskan dengan:
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 (jumlah perintah), 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.

Ø  KESIMPULAN.
Prosessor dengan arsitektur RISC, yang berkembang dari riset akademis telah menjadi prosessor komersial yang terbukti mampu beroperasi lebih cepat dan efisien. Bila teknik rancangan RISC maupun CISC terus dikembangkan maka pengguna komputer tidak perlu lagi mempedulikan prosessor apa yang ada di dalam sistem komputernya, selama prosessor tersebut dapat menjalankan sistem operasi ataupun program aplikasi yang diinginkan secara cepat dan efisien.

 SUMBER :

Senin, 26 Desember 2016

PROSESOR PARALEL






PROSESOR  PARALEL
 
A.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.

B. JARINGAN INTERKONEKSI

Interkoneksi adalah hubungan yang terjadi antara satu koneksi dengan koneksi yang lain. Interkoneksi antar jaringan adalah hubungan atau koneksi antara satu jaringan dengan jaringan yang lain. Jaringan yang terhubung ini bukan hanya jaringan telekomunikasi namun semua bentuk jaringan yang melakukan interkoneksi.

Banyak yang menganalisa interkoneksi antar jaringan adalah hubungan antar jaringan telekomunikasi. Namun secara harfiah interkoneksi jaringan tidak hanya mengarah ke jaringan telekomunikasi, namun ke semua jaringan.
Topology nya adalah bagaimana sebuah jaringan itu terbentuk, dan bagaimana keamanan dari jaringan itu sendiri. Namun fokus permasalahan disini adalah interkoneksi antara jaringan komputer, bukan kontes astaga.com lifestyle on the net.

Komputer yang terhubung dengan komputer yang lain melalui jaringan dapat melakukan koneksi dengan konfigurasi jaringan. Koneksi ini memerlukan sebuah Port Koneksi pada kartu jaringan (NIC = Network Interface Card) yang berfungsi sebagai jembatan dari komputer ke sebuah jaringan. Peralatan yang dibutuhkan untuk koneksi antara jaringan diantaranya adalah :

           1. NIC (Network Interface Card)
                          Fungsi NIC selain itu adalah untuk mengubah data paralel dalam sebuah bus                     komputer ke dalam bentuk data serial. Untuk koneksi ini NIC membutuhkan                             sebuah penghubung yang berupa kabel, kabel ini dapat berupa kabel UTP atau
                  Fiber Optic.

           2. HUB 
                           Hub ini ada dua jenis, yaitu passive hub dan active hub. Fungsi hub adalah
                   sebagai terminal penghubunga antara dua koneksi atau lebih. Dimana hub ini
                   sebagai terminal persinggahan dan menambah node didalam sebuah LAN (Local
                   Area Network).
  
           3. Repeater
                           Repeater ini berfungsi memperluas cakupan suatu jaringan tanpa melakukan
                   filter terhadap sinyal yang masuk dan keluar. Tugas utamanya mensikronisasikan
                  dan mentransmisikan ulang sinyal dari suatu segmen ke segmen yang lain
                  didalam sebuah jaringan.

            4. Bridge
                           Fungsi Bridge kurang lebih sama dengan repeater namun Bridge melakukan
                   filter terhadap sinyal, sehingga setiap segmen tidak dipengaruhi oleh segmen
                   yang lain. Selain itu Bridge juga dapat menghubungkan jaringan yang berbeda
                   segmen protokol aksesnya, namun dengan syarat protokol komunikasinya sama.

             5. Router
                           Fungsi router adalah menentukan jalur routing dan mengirimkan paket
                   paket informasi pada internet yang bekerja pada layer 3 OSI.


C. SIMD Dan MIMD

     A SIMD (SINGLE INSTRUCTION STREAM MULTIPLE DATA STREAM)

SIMD adalah singkatan dari Single Instruction, Multiple Data, merupakan sebuah istilah dalam komputasi yang 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 superkomputer 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 pixel 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.

Komputer yang mempunyai beberapa unit prosesor di bawah satu supervisi satu unit common control. Setiap prosesor menerima instruksi yang sama dari unit kontrol, tetapi beroperasi pada data yang berbeda.

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.

Sayangnya, beberapa desainer SIMD terbentur dengan beberapa pertimbangan desain yang berada di luar kontrol mereka. Salah satu pertimbangan tersebut adalah harus menambahkan banyak register untuk menampung data yang akan diproses. Idealnya, hal ini dapat dilakukan dengan menambahkan unit SIMD ke dalam prosesor agar memiliki registernya sendiri, tetapi beberapa desainer terpaksa menggunakan register yang telah ada, umumnya yang digunakan adalah register floating-point. Register floating-point umumnya memiliki ukuran 64-bit, yang lebih kecil daripada yang dibutuhkan oleh SIMD agar bekerja secara optimal, meskipun hal ini dapat mendatangkan masalah jika kode hendak mencoba untuk menggunakan instruksi floating-point dan SIMD secara bersamaan.

Pada pendesainan awal SIMD, terdapat beberapa prosesor yang khusus disiapkan untuk melakukan tugas ini, yang seringnya disebut sebagai Digital Signal Processor (DSP). Perbedaan utama antara SIMD dan DSP adalah DSP merupakan prosesor yang komplit dengan set instruksinya sendiri (yang meskipun lebih sulit digunakan), sementara SIMD hanya bergantung pada register general-purpose untuk menangani detail program, dan instruksi SIMD hanya menangani manipulasi data.

Penggunaan instruksi SIMD pertama kali dilakukan dalam superkomputer vektor dan dipopulerkan oleh Cray pada tahun 1970-an. Akhir-akhir ini, SIMD skala kecil (64-bit atau 128-bit) telah menjadi populer dalam CPU yang bersifat general purpose, yang dimulai pada tahun 1994 dengan set instruks MAX yang diaplikasikan pada Hewlett-Packard PA-RISC. Instruksi SIMD, saat ini dapat ditemukan dalam kebanyakan prosesor, seperti halnya AltiVec dalam prosesor PowerPC; Intel MMX, SSE, SSE2, SSE3, SSE4, AMD 3DNow! dalam prosesor Intel x86; VIS dalam prosesor prosesor SPARC; MAX dalam Hewlett-Packard PA-RISC; MDMX serta MIPS-3D dalam MIPS serta MVI dalam prosesor DEC Alpha. Meskipun demikian, perangkat lunak pada umumnya tidak mengeksploitasi instruksi, dan bahkan instruksi ini hanya digunakan dalam aplikasi yang khusus, seperti pengolahan grafik.

Meskipun hal ini secara umum telah membuktikan bahwa sulitnya mencari aplikasi komersial yang dikhususkan untuk prosesor SIMD, ada beberapa kesuksesan yang terjadi seperti halnya aplikasi GAPP yang dikembangkan oleh Lockheed Martin. Versi yang lebih baru dari GAPP bahkan menjadi aplikasi yang dapat memproses video secara waktu-nyata (real-time) seperti halnya konversi antar bermacam-macam standar video yang (seperti konversi NTSC ke PAL atau sebaliknya, NTSC ke HDTV atau sebaliknya dan lain-lain), melakukan deinterlacing, pengurangan noise (noise reduction), kompresi video, dan perbaikan citra gambar (image enhancement).

Mesin SIMD secara umum mempunyai karakteristik sebagai berikut :

· Mendistribusi proses ke sejumlah besar hardware

· Beroperasi terhadap berbagai elemen data yang berbeda

· Melaksanakan komputasi yang sama terhadap semua elemen data

Sistem Komputer kategori SIMD

· Beberapa Processor Unit (Processing Element) disupervisi oleh Control Unit yang sama.
· Semua Processing Element menerima instruksi yang sama dari control unit tetapi mengeksekusi data yang berbeda dari alur data yang berbeda pula.
· Subsistem memori berisi modul-modul memori.

     B. Komputer MIMD (Multiple Instruction stream-Multiple Data stream)

Pada sistem komputer MIMD murni terdapat interaksi di antara n pemroses. 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.

Analisa Algoritma Paralel

Pada saat sebuah algoritma digunakan untuk memecahkan sebuah problem, maka performance dari algoritma tersebut akan dinilai. Hal ini berlaku untuk algoritma sekuensial maupun algoritma paralel. Penampilan sebuah algoritma pengolahan peralel dapat dinilai dari beberapa kriteria, seperti running time dan banyaknya prosesor yang digunakan.

Running Time

Running time adalah waktu yang digunakan oleh sebuah algoritma untuk menyelesaikan masalah pada sebuah komputer paralel dihitung mulai dari saat algoritma mulai hingga saat algoritma berhenti. Jika prosesor-prosesornya tidak mulai dan selesai pada saat yang bersamaan, maka running time dihitung mulai saat komputasi pada prosesor pertama dimulai hingga pada saat komputasi pada prosesor terakhir selesai.

Counting Steps

Untuk menentukan running time, secara teoritis dilakukan analisa untuk menentukan waktu yang dibutuhkan sebuah algoritma dalam mencari solusi dari sebuah masalah. Hal ini dilakukan dengan cara menghitung banyaknya operasi dasar, atau step (langkah), yang dilakukan oleh algoritma untuk keadaan terburuknya (worst case).

Langkah-langkah yang diambil oleh sebuah algoritma dibedakan ke dalam dua jenis yaitu :

· Computational step
Sebuah computational step adalah sebuah operasi aritmetika atau operasi logika yang dilakukan terhadap sebuah data dalam sebuah prosesor.

· Routing step.
Pada routing step, sebuah data akan melakukan perjalanan dari satu prosesor ke prosesor
 lain melalui shared memory atau melalui jaringan komunikasi.

· Speedup
   Pengukuran speedup sebuah algoritma paralel adalah salah satu cara untuk mengevaluasi
   kinerja algoritma tersebut.
· Speedup adalah perbandingan antara waktu yang diperlukan algoritma sekuensial yang
   paling efisien untuk melakukan komputasi dengan waktu yang dibutuhkan untuk
   melakukan komputasi yang sama pada sebuah mesin pipeline atau paralel.

D. ARSITEKTUR PENGGANTI

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

- http://myanaa-kampus.blogspot.co.id/2010/01/tugas-pemrosesan-parallel-simd-dan-mimd.html
- https://pranoto0512.wordpress.com/rted/pengertian-interkoneksi/
- https://en.wikipedia.org/wiki/MIMD

Arsitektur family komputer IBM PC


  • family IBM 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. Sejak diluncurkan oleh IBM, IBM PC memiliki beberapa keluarga, yaitu : 

- 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


  • komfigurasi 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.
Chipset adalah set dari chip yang mendukung kompatibel yang mengimplementasikan berbagai fungsi tertentu seperti pengontrol interupt, pengontrol bus dan timer.
Chip khusus yang di sebut koprosesor yang beroperasi bersama dengan CPU guna meningkatkan fungsionalitasnya.
  • komponen IBM PC
- Sistem Kontrol BUS: Pengontrol BUS, Buffer Data, dan Latches Alamat
- Sistem Kontrol Interrupt: Pengontrol Interrupt
- Sistem Kontrol RAM dan ROM: Chip RAM dan ROM, Decoder Alamat, dan Buffer
- Sistem Kontrol DMA: Pengontrol DMA
- Timer: Timer Interval Programmable

Daftar Pustaka : 

- https://id.wikipedia.org/wiki/IBM_PC
- http://icikomputer.blogspot.co.id/2015/09/arsitektur-famili-komputer-ibm.html
- http://webcache.googleusercontent.com/search?q=cache:Iuygy004ZSEJ:dinus.ac.id/repository/docs/ajar/Arsitektur_Komputer.pptx+&cd=13&hl=id&ct=clnk&gl=id

Unit input/output

 

I/O adalah suatu mekanisme pengiriman data secara bertahap dan terus menerus melalui suatu aliran data dari proses ke peranti (begitu pula sebaliknya). Fungsi I/O pada dasarnya adalah mengimplementasikan algoritma I/O pada level aplikasi. Hal ini dikarenakan kode aplikasi sangat fleksible.
Unit Input/Output (I/O) adalah bagian dari sistem mikroprosesor yang digunakan oleh mikroprosesor itu untuk berhubungan dengan dunia luar. Unit input adalah unit luar yang digunakan untuk memasukkan data dari luar ke dalam mikroprosesor ini, contohnya data yang berasal dari keyboard atau mouse. Sementara unit output biasanya digunakan untuk menampilkan data, atau dengan kata lain untuk menangkap data yang dikirimkan oleh mikroprosesor, contohnya data yang akan ditampilkan pada layar monitor atau printer. Bagian input (masukan) dan juga keluaran (output) ini juga memerlukan sinyal kontrol, antara lain untuk baca I/O (Input/Ouput Read [IOR]) dan untuk tulis I/O (Input/Output Write [IOW])
  • Sistem Bus
sistem bus atau bus system dalam arsitektur komputer merujuk pada bus yang digunakan oleh sistem komputer untuk menghubungkan semua komponennya dalam menjalankan tugasnya. Sebuah bus adalah sebutan untuk jalur di mana data dapat mengalir dalam komputer. Jalur –jalur ini digunakan untuk komunikasi dan dapat dibuat antara dua elemen atau lebih. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi oleh CPU melalui perantara sistem bus.
Saluran bus dapat dipisahkan menjadi dua tipe umum, yaitu dedicated dan multiplexed. Suatu saluran bus dedicated secara permanen diberi sebuah fungsi atau subset fisik komponen- komponen komputer.
Sebagai contoh dedikasi fungsi adalah penggunaan alamat dedicated terpisah dan saluran data yang merupakan suatu hal yang umum bagi bus. Namun, hal ini bukanlah hal yang penting. Misalnya, alamat dan informasi data dapat ditransmisikan melalui sejumlah saluran yang sama dengan mengggunakan saluran address valid control.
  1. Struktur sistem bus
a)      Data bus ( Saluran Data )
         Saluran data memberikan lintasan bagi perpindahan data antara dua modul
         sistem. Saluran ini secara kolektif disebut bus data. Umunya bus data terdiri
         dari 8, 16, 32 saluran.
b)      Address Bus ( Saluran Alamat )
         1.      Saluran alamat digunakan untuk menandakan sumber atau tujuan data
                  pada bus data. Misalnya , bila CPU akan membaca sebuah word dat adari
                  memroi, maka CPU akan menaruh alamt word yang dimaksud pada saluran
                  alamat.
        2.      Digunakan untuk mengirinkan alamat word pada memori yang akan
                  diakses CPU.
        3.      Digunakan untuk saluran alamat perangkat modul komputer saat CPU
                  mengakses suatu modul.
        4.      Semua peralatan yang terhubung dengan sistem komputer, agar dapat
                  diakses harus memiliki alamat            
                  Contoh : mengakses port I/O, maka port I/O harus memiliki alamat
                  hardwarenya.
c)      Control Bus ( Saluran Control )
                Saluran kontrol digunakan untuk mengontrol akses ke saluran alamat dan
                penggunaan data. Karena data dan saluran alamat dipakai bersama oleh
                seluruh komponen, maka harus ada alat unruk mengintrol penggunaanya.
  • Standar I/O interface
Interface atau antarmuka adalah Penghubung antara dua sistem atau alat 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.

A. Interface Aplikasi I/O
                Ketika suatu aplikasi ingin membuka data yang ada dalam suatu disk, sebenarnya aplikasi tersebut harus dapat membedakan jenis disk apa yang akan diaksesnya. Untuk mempermudah pengaksesan, sistem operasi melakukan standarisasi cara pengaksesan pada peralatan Input/Output. Pendekatan inilah yang dinamakan interface aplikasi Input/Output.
                 Interface aplikasi Input/Output melibatkan abstraksi, enkapsulasi, dan software layering. Abstraksi dilakukan dengan membagi-bagi detail peralatan-peralatan Input/Output ke dalam kelas-kelas yang lebih umum. Dengan adanya kelas-kelas yang umum ini, maka akan lebih mudah untuk membuat fungsi-fungsi standar(interface) untuk mengaksesnya. Lalu kemudian adanya device driver pada masing-masing peralatan Input/Output, berfungsi untuk enkapsulasi perbedaan-perbedaan yang ada dari masing-masing anggota kelas-kelas yang umum tadi. Device driver mengenkapsulasi tiap -tiap peralatan Input/Output ke dalam masing-masing 1 kelas yang umum tadi(interface standar). Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan perbedaan-perbedaan yang ada pada device controller dari subsistem Input/Output pada kernel. Karena hal ini, subsistem Input/Output dapat bersifat independen dari Hardware.
           Karena subsistem Input/Output independen dari hardware maka hal ini akan sangat menguntungkan dari segi pengembangan hardware. Tidak perlu menunggu vendor sistem operasi untuk mengeluarkan support code untuk hardware-hardware baru yang akan dikeluarkan oleh vendor hardware.
  • Pengaksesan peralatan I/O 
Merupakan suatu mekanisme untuk mempermudah pengaksesan, sehingga sistem operasi melakukan standarisasi cara pengaksesan peralatan I/O.

   Interface aplikasi I/O melibatkan abstraksi, enkapsulasi, dan software layering. Device driver mengenkapsulasi tiap-tiap peralatan I/O ke dalam masing-masing 1 kelas yang umum (interface standar). Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan  perbedaan-perbedaan yang ada pada device controller dari subsistem I/O pada  kernel. Karena hal ini, subsistem I/O dapat bersifat independen dari hardware. Beberapa hal yang berhubungan dengan Application I/O Interface adalah:

1. Peralatan Block dan Karakter:
- Perangkat Block termasuk disk drive
- Perintah termasuk baca, tulis dan cari
- Raw I/O atau akses file-sistem
- Pemetaan memori untuk pengaksesan file
- Perangkat karakter termasuk keyboad, mouse dan serial port
- Perintahnya seperti get, put
- Library layered  dalam proses pengeditan

2. Peralatan Jaringan
             Adanya perbedaan pengalamatan dari jaringan I/O, maka sistem operasi memiliki interface I/O yang berbeda dari baca, tulis dan pencarian pada disk. Salah satu yang banyak digunakan pada sistem operasi adalah interface socket. Socket berfungsi untuk menghubungkan komputer ke jaringan. System call pada socket interface dapat memudahkan suatu aplikasi untuk membuat local  socket, dan menghubungkannya ke remote socket.Dengan menghubungkan komputer ke socket, maka komunikasi antar komputer dapat dilakukan.
3.Jam dan Timer
  Jam dan timer pada hardware komputer, memiliki tiga fungsi : 
- memberi informasi waktu saat ini
- memberi informasi lamanya waktu sebuah proses
- sebagai trigger untuk suatu operasi pada suatu waktu.
Fungsi ini sering digunakan oleh sistem operasi. Akan tetapi, system call untuk pemanggilan fungsi  ini tidak di-standarisasi antar sistem operasi. Hardware yang mengukur waktu dan melakukan operasi trigger dinamakan programmable interval timer yang dapat di set untuk menunggu waktu tertentu dan kemudian melakukan interupsi.

Daftar pustaka : 
  • https://ubay16.wordpress.com/2013/12/27/sistem-inputoutput-io/
  • https://ekofitriyanto.wordpress.com/2013/11/20/sistem-io-2/
  • https://id.wikipedia.org/wiki/I/O
  • http://syahrirmdn.blogspot.co.id/2014/10/sistem-inputoutput-io.html