Senin, 13 Juni 2016

MENGENAL PEMROGRAMAN MIKRO, KOMPUTER PIPELINE, DAN PEMROSESAN PARALEL


 A.        PEMROGRAMAN MIKRO
Pemrograman mikro mungkin masih terdengar asing di kalangan masyarakat umum. Pemrograman mikro itu sendiri ialah proses penerjemahan dan eksekusi dari setiap intruksi processor menjadi urutan instruksi yang lebih kecil atau mikro. Namun sebelum membahas pemrograman mikro lebih lanjut alangkah baiknya kita mengenal dulu apa itu CLU?
CLU (Control Logic Unit) atau unit kendali logika adalah bagian yang mengatur seluruh aktivitas perangkat keras di dalam komputer. CLU menyebabkan suatu instruksi dapat diambil dari memori, memberi kode pada instruksi tersebut untuk menentukan operasi yang akan dilaksanakan, menentukan sumber dan tujuan data, dan menyebabkan perpindahan data dan eksekusi operasi yang diperlukan. CLU menjalankan seluruh proses sampai sebuah operasi HALT secara tiba-tiba masuk ke dalam program dan dieksekusi. Kode instruksi bersama data, tersimpan di dalam memori. Sebuah instruksi merupakan entitas kompleks yang pelaksanaannya tidak dapat diselesaikan dalam satu waktu/putaran. Karena itu setelah menginterpretasikan kode biner suatu instruksi, CLU menghasilkan serangkaian perintah kendali yang disebut sebagai instruksi-mikro (microinstruction) yang menjalankan instruksi tersebut. Untuk membedakan sebuah instruksi dan sebuah instruksi-micro, seringkali instruksi-instruksi disebut sebagai instruksi-makro (macroinstruction).
Instruksi-mikro merupakan operasi primitif tingkat rendah yang bertindak secara langsung pada sirkuit logika suatu komputer. Mereka memerinci fungsi-fungsi (sinyal-sinyal) seperti berikut :
1.             Membuka/menutup suatu gerbang (gate) dari sebuah register ke sebuah BUS.
2.             Mengirim data sepanjang sebuah BUS.
3.             Memberi inisial sinyal-sinyal kendali seperti READ, WRITE, SHIFT, CLEAR dan
         SET.
4.             Mengirimkan sinyal-sinyal waktu.
5.             Menunggu sejumlah periode waktu tertentu.
6.             Menguji bit-bit tertentu dalam sebuah register.
Ada dua pendekatan pokok bagi perancangan sebuah CLU yaitu: rancangan hard-wire (atau logika acak) dan rancangan microprogrammed. Pada pendekatan hard-wired sejumlah gerbang (gate), counter, dan register saling dihubungkan untuk menghasilkan sinyal-sinyal kendali, setiap rancangan memerlukan piranti logika dan hubungan yang berbeda-beda. Pada pendekatan microprogrammed untuk setiap instruksi-mikro disebut sebagai sebuah program-mikro, untuk setiap instruksi-mikro dan disimpan dalam sebuah memori kendali (biasanya ROM) dalam CLU. Kemudian waktu yang diperlukan dan kendali dihasilkan dengan menjalankan suatu program-mikro untuk masing-masing instruksi-makro.

KENDALI HARD-WIRED
Sewaktu sebuah instruksi ditempatkan dalam register instruksi (IR atau Instruction Register), CLU mendekode instruksi itu dan menghasilkan serangkaian instruksi-mikro. Sebagai contoh suatu komputer yang mempunyai 16 instruksi, sehingga setiap instruksi dapat diberi kode dengan sebuah opcode 4 bit yang unik, sisa word instruksi berisi informasi pengalamatan yang penting seperti register-register yang terlibat, alamat-alamat memori dan offset). Mneumonic-nya diperlihatkan sebagai berikut :
a.              LDR (Load register dari memori)
b.             LDM (Load memori dari suatu register)
c.              ADR (Add ke register)
d.             BRU (Branch/percabangan tidak kondisional)
e.              BRZ (Branch/percabanan pada nol)

KENDALI MICROPROGRAMMED
Istilah program-mikro pertama kali diungkapkan oleh M.V Wilkes pada awal tahun 1950-an ketika dia mengajukan suatu pendekatan baru untuk mengendalikan perancangan unit. Ide ini menarik perhatian banyak ahli dan insinyur komputer pada saat itu, walaupun hal itu tampak tidak realistis karena adanya persyaratan untuk memori kendali yang sangat cepat dan relatif tidak mahal. Situasi ini berubah secara dramatis dengan adanya pengumuman keluarga komputer IBM System/360 pada bulan April 1964. Seluruh model terbesar menyertakan memori kontrol yang cepat dan tidak mahal dan merupakan microprogrammed. Sejak itu, pemrograman mikro menjadi hal yang umum sejalan dengan peningkatan kecepatan dan penurunan harga memori kontrol.

Organisasi CLU Microprogrammed
Instruksi-makro disimpan dalam memori utama dan diakses melalui memory address register (MAR) dan memory buffer register (MBR). Instruksi diambil (fetch) ke dalam register instruksi (IR atau instruction register) dan pengendali-mikro (microcontroller atau sequencer) yang bersesuaian. Alamat awal program-mikro dimuat (load) ke dalam kendali alamat register (CAR atau Control Address Register) dan kemudian kendali memori mengirim instruksi-mikro pertama ke dalam kendali penyangga register (CBR atau Control Buffer).
       Komponen-Komponen Pokok  Control Unit Microprogrammed
1.         Instruction Register
         Menyimpan instruksi register mesin yang dijalankan.
2.         Control Store berisi microprogrammed
a)             Untuk semua instruksi mesin.
b)            Untuk startup mesin.
c)             Untuk memprosesan interupt
3.         Address Computing Circuiting
Menentukan alamat Control Store dari mikroinstruksi berikutnya yang akan dijalankan.
4.         Microprogrammed Counter
Menyimpan alamat dari mikroinstruksi berikutnya.
5.         Microinstruction Buffer
Menyimpan mikroinstruksi tersebut selama dieksekusi.
6.         Microinstruction Decoder
Menghasilkan dan mengeluarkan mikroorder yang didasarkan pada mikroinstruksi dan   opcode instruksi    yang akan dijalankan.

 Format Instruksi-mikro
Pada dasarnya ada dua jenis format instruksi-mikro: horisontal dan vertikal. Pada format instruksi-mikro horisontal, satu bit diberikan untuk setiap sinyal logika yang dapat dihasilkan oleh instruksi-mikro. Dengan demikian, jika dibutuhkan sejumlah K sinyal kendali yang berbeda maka dibutuhkan instruksi-mikro dengan word sepanjang K bit. Untuk menghasilkan suatu sinyal tertentu, bit yang bersesuaian dalam instruksi mikro diatur menjadi 1, kehadiran suatu sinyal kendali diindikasikan dengan menempatkan sebuah nol pada posisi bit yang semestinya. Pendekatan ini mempunyai keuntungan bahwa kita dapat menghasilkan sebanyak mungkin sinyal kendali yang diperlukan secara beruntun, yang memungkinkan operasi yang sangat cepat.
Namun demikian kebanyakan operasi-mikro adalah mutual ekslusif dan tidak pernah dipanggil secara bersamaan. Karena itu, kita dapat membagi mereka ke dalam kelompok-kelompok dan menggunakan sejumlah bit (field) untuk memberi kode sekumpulan intruksi-mikro yang mutual ekslusif. Kemudian digunakan suatu dekoder untuk memilih operasi mikro tertentu yang akan dipanggil. Jika terbawa ke dalam ekstrem (hanya satu field) maka proses mengode (coding) dan mendekode (decoding) menghasilkan suatu format instruksi-mikro vertikal, dimana hanya ada satu operasi-mikro yang dipanggil pada suatu waktu. Karena itu instruksi-mikro vertikal menyerupai format sebuah interuksi-makro dan terdiri atas suatu kode operasi tunggal, disebut sebagai opecode mikro, satu operand atau lebih, dan berberapa field lain (misalnya untuk percabangan kondisional).

Keuntungan Pemrograman-Mikro
Kendali microprogrammed menawarkan suatu pendekatan yang lebih terstruktur untuk merancang unit kendali logika (CLU) dibandingkan dengan kendali hard-wired.
1.            Rancangan microprogrammed relative mudah diubah-ubah dan dibetulkan.
2.           Menyediakan kemampuan diagnostic yang lebih baik dan lebih dapat diandalkan daripada rancangan hard-wired.
3.     Utilisasi memori utama dalam computer microprogrammed biasanya lebih baik Karena perangkat lunak yang seharusnya menggunakan ruang memori utama justru ditempatkan pada memori kendali.
4.        Pengembangan ROM lebih lanjut(dalam kaitan dengan harga dan waktu akses) secara lebih jauh justru menguatkan posisi dominant pemrograman mikro, salah satunya dengan menyertakan unit memori ketiga disebut sebagai nano-memory (tambahan bagi memori utama dan memori kendali). Dalam mengerjakan hal ini, mungkin terjadi pertukaran (trade-off) yang menarik antara pemrograman mikro horisontal dan vertikal. 

Konsep Pipeline
Throughput,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 dalam suatu komputer mirip dengan suatu baris perakitan dalam suatu pabrik industri.
Pemrosesan pipieline dalam suatu komputer diperoleh dengan membagi suatu fungsi yang akan dijalankan menjadi beberapa subfungsi yang lebih kecil dan merancang perangkat keras yang terpisah,disebut sabagai tingkatan(stage) untuk setiap subfungsi. Stage-stage itu kemudian dihubungkan bersama-sama dan membentuk sebush pipeline tunggal(pipe) untuk menjalankan fungsi asli tersebut.
Keuntungan proses penambahan secara pipeline ini adalah bahwa dua input yang baru dapat dimulai melalui pipa tersebut segera sesudah dua input sebelumnya melewatu stage. Hal ini berarti bahwa jumlah penambahan akan tersedia dengan kecepatan yang sama dengan kecepatan input.
Dengan menggunakan pipeline jumlah selisih waktu antara hasil pertama dan kedua merupakan jumlah waktu yang diperlukan untuk menormalisir sebuah angka. Tanpa suatu pipeline, waktu antara hasil-hasil tersebut merupakan waktu kumulatif yang diperlukan untuk semua ketiga subfungsi tersebut. Komputer pipeline sebagai suatu komputer dengan komponen perangkat keras pipeline.
Pada semua baris perakitan industri ,efisien suatu pipeline dapat berkurang jauh akibat suatu bottleneck. Suatu bottleneck terjadi sewaktu pemrosesan pada suatu stasiun atau stage memnghabiskan waktu lebih lama daripada stage lainnya.
Untuk menyamakan waktu yang diperlukan pada setiap stage maka stage-stage tersebut harus disinkronisasikan dengan cara menyisipkan kunci-kunci(latch) sederhana antar stage-stage tersebut.Penangguhan clock adalah waktu yang diperlukan untuk lewat dari suatu latch melalui stage ke latch berikutnya.
Suatu prinsip perancangan yang berhubungan dengan efiseinsi adalah membagi suatu fungsi yang sedang di pipeline menjadi beberapa subfungsi yang memiliki implementasi perangkat keras dengan waktu proses yang relatif sama.
Untuk mengilustrasikan operasi-operasi yang saling tumpang tindih dalam pipeline linier digunakan suatu diagram ruang waktu. Untuk menghitung throughput itu,pada umumnya kita mengabaikan waktu startup awal yang diperlukan untuk mengisi pipe,yaitu waktu yang diperlukan agara kelompok input pertama memenuhi seluruh pipe tersebut.
     Klasifikasi Pipeline
1.    Fungsi :
A.   Aritmatika, proses segmentasi fungsi dari ALU dari sistem yang muncul dalam  kategori ini.
B.  Instruksi : proses pipelining instruksi,disebut juga instruction lihat ke-muka ,mem fetch instruksi secara beurutan.jika suatu instruksi menyebabkan percabangan keluar dari urutan itu maka pipe akan dikosongkan dari seluruh instruksi yang telah di fetch sebelumnya dan instruksi percabangan tersebut di fetch.proses pipelining instruksi dikerjakan pada hampir semua komputer berkemampuan tinggi.
C.   Prosecor : sewaktu stage dari suatu pipeline merupakan suatu prosecor aktual dan latch-latch saling berbagi memori antara prosecor-prosecor tersebut maka pipeline itu disebut sebagai pipeline prosecor.Dalam pipeline ini,setiap prosecor mempunyai suatu tugas tertentu yang aka dijalankan pada aliran data.Pipelining banyak prosecor merupakan konsep yang relatif baru dan belum umum.
2.    Konsigurasi
A.   Unifungsi : kemampuan suatu pipeline menjalankan hanya satu jenis pokok  operasi.
B.    Multifungsi : dapat menjalankan fungsi-fungsi yang berbeda.
C.  Statis : ketika instruksi-instruksi yang berjenis sama akan dijalankan secara bersamaan waktunya.Suatu  pipeline multifungsi statis dapat bekerja paling baik jika fungsi yanng akan dijalankan tidak sering berubah,unifungsi kebalikan dari multifungsi.
D. Dinamis : beberapa konsigurasi fungsional dapat muncul sekaligus.hal ini harus menggunakan pipeline multifungsi.
E.   Skalar :  memproses serangkaian operasi skalar pada operand skalar seperti ditunjukan oleh program.
F.    Vektor : dirancang untuk memproses instruksi vektor dengan menggunakan operand vektor.Komputer yang mempunyai instruksi vektor disebut sebagai prosecor vektor.
          3.    Cascading Atas Stage
    Proses membuat sebuah pipeline yang kompleks tanpa salah satu stage yang
    penting. Dapat digunakan untuk membuat unit pipeline unifungsu maupun
    multifungsi. Prinsip pipelining secara umum
   1.    tabel reservasi 
  A.   Umpan balik : hubungan dari suatu stage dengan stage sebelumnya
  B.   Umpan maju  : hubungan dari suuatu stage dengan stage berikutnya
Untuk memberi karakteristik pada struktur antarhubungan dan arus data flow pada suatu pipeline umum digunakan tabel resverasi,tabel tersebut menunjukan bagaimana stage-stage tersebut diproses secara berurutan untuk suatu evaluasi fungsi tertentu.  Waktu evaluasi,fungsi ini adalah 6 panangguhan clock yaitu total jumlah unit waktu dalam tabel resverasi. Pipeline multifungsi,suatu implementasi yang dapat dikonfigurasikan untuk menerapkan lebih dari satu fungsi.
         4.     Penjadwalan Dan Pencegahan Adanya Tubrukan
               Inisiasi dari suatu tabel resverasi berhubungan dengan permulaan suatu evaluasi
    fungsi tunggal yang akan mengikuti path yang dinamai oleh tabel. Jika  suatu
    inisiasi dibuat maka pengendali pipeline harus mencadangkan stage pada pipeline
    yang teapat bagu data inisiasi tersebut dengan waktu yang relatis yang ditentukan
   oleh tabel resverasi. Jika data dari dua inisiasi yang berbeda akan masuk ke dalam
    stage yang sama pada waktu yang sama maka akan terjadi tubrukan.
Jumlah dua unit waktu anatara dua inisiasi dalam suatu pipeline disebut sebagai latensi. Seranngkaian latensi diantara inisiasi yang berdamppingan disebut sebagai rangkaian latensi. Jika rangkaian latensi mengulangi dirinya sendiri disebut siklus latensi. Vektor tubrukan merupakan suatu representasi vektor biner dari kumpulan latensi yang terlarang. Suatu diagram keadaan dapat diturunkan untuk menandai inisiasi tugas yang berdampingan dalam sebuah pipeline.
Suatu siklus terdiri atas sekelompok state yang berurutan dan latensi transisinya yang berasal dari sembarang state pada siklus,rangkaian transisi siklis menuntut kita melalui state lainnya dalam siklus tersebut dan kembali ke state awal. Jika suatu siklus terdiri atas state state yang tidak berulang maka disebut sebagai suatu siklus sederhana. Untuk mengoptimalkan strategi pengendalian pada pipeline tersebut ,siklus latensi terbaik yang akan digunakan adalah siklus latensi yang mempunyai latensi rata-rata paling rendah. Pemilihan path latensi terpendek  dari setiap state,dikenal sebagai siklus serakah.


Control data corportation cyber 205 merupakan komputer yang banyak memakai piperline. Diantara pipeline-pipeline aritmatikanya terdapat pipeline perkalian floating-point. Ia merupakan pipeline multifungsi yang menjalankan operasi perkalian,pembagian dan akar pagkat dua.
A.  Kebutuhan akan pemrosesan paralel
Pemrosesan paralel dalam sebuah komputer dapat didefinisikan sebagai pelaksanaan instruksi-instruksi secara bersamaan waktunya. Hal ini dapat menyebabkan pelaksanaan kejadian-kejadian (1) dalam interval waktu yang sama, (2) dalam waktu yang bersamaan atau (3) dalam rentan waktu yang saling tumpang tindih.
Komputer yang cepat dan efisien banyak dibutuhkan oleh berbagai bidang dewasa ini. Sebagian menyertakan simulasi numerik bagi field-field yang berkesinambungan. Masalah-masalah- semacam itu membutuhkan banyak perhitungan dan dapat ditemukan pada disiplin-disiplin ilmu seperti oceanografi, astrofisik, seismologi, meteorologi, atomik, nuklir dan fisika plasma. Jumlah “pengolahan angka-angka” baik secara volume data dan jumlah perhitungan, sangat besar.
Sebagai contoh, salah satu jenis eksplorasi seismik melibatkan prosespembuatan gelombang sonik di dalam tanah. Pantulan-pantulan (echo) ini ditangkap oleh beratus-ratus geophone di area tersebut. Kemudian data ini digunakan untuk membuat bagian-bagian perpotongan geometris dua dimensiuntuk lapisan-lapisan bawah tanah. Dalam contoh ini, 3.000 nilai waktu yang berbeda , disimpan untuk masing-masinggelombang sonik. Perhtiungan ini melibatkan 5 sampai 8 juta angka-angka floating-point per mil untuk satu garis survei.
 B.  Teknik-teknik pemrosesan paralel
Komputer paralel mempunyai kemampuan untuk saling tumpang tindih atau menjalankan beberapa operasi ini secara bersamaan waktunya.
Beberapa cara telah dikembangkan untuk memperkenalkan paralelisme ke dalam arsitektur komputer serial. Beberapa dinataranya adalah sebagai berikut:
1.    Pipelining, dapat kita anggap sebagai paralelisme.
2.  Unit-unit fungsional berganda (multiple), dapat membangun unit-unit yang terpisah untuk menjalankan fungsi-fungsi yang berbeda. Kita dapat juga memiliki lebih dari satu unit untuk menjalankan suatu fungsi tertentu. Kedua pendekatan itu memungkinkan terjadinya perhitungan paralel.
3. Tumpang tindih antara operasi-operasi CPU dan I/O. Pada komputer-komputer terdahulu, CPU bertanggung jawab untuk mengarahkan semua operasi I/O dan untuk menjalankan instruksi-instruksi program  di dalam memori.
4.  Interleaving memori. Memungkinkan lebih dari satu word yang di-fetch dari memori pada suatu waktu. Dalam hubungannya dengan teknik-teknik paralelisme lainnya, cara ini dapat digunakan untuk menyediakan instruksi dan data dalam kecepatan yang tinggi.
5. Multiprogramming. Dari titik pandang sistem komputer, kejadiannya merupakan program-program yang dijalankan secara sekuensial pada interval waktu yang sama.
6.    Multiprosesing. Daripada kita memiliki sebuah CPU dalam sebuah sistem, kita dapat menggunakan beberapa prosesor yang bekerja bersama-sama pada permasalahan yang sama dan mengahasilkan paralelisme. Dalam kasus ini, kejadian-kejadian itu dapat berupa bagian dari suatu program tunggal atau suatu program yang benar-benar terpisah. Kejadian yang pertama lebih sulit , kecuali jika program-program tersebut ditulis dalam suatu bahasa yang sama.
C. Percepatan komputer paralel
Bayangkan sebuah komputer paralel dengan n prosesor identik yang bekerja secara berdampingan pada sebuah program tunggal. Pada, awalnya sepertinya kita dapat mengerjakan semua permasalahan dengan n kali lebih cepat daripada menggunkan sebuah prosesor tunggal. Sayangnya hal ini tidak dapat selalu demikian. Karena, alasan-alasan tertentu, seperti konflik atas akses memori, konflik atas jalur komunikasi dan algoritma yang tidak efisien untuk implementasi yang sesungguhnya atas kesejajaran masalah-masalah tersebut, percepatan yang dihasilkan jauh lebih kecil daripada n.
Suatu batas bawah, dikenal sebagai konjektur Minsky, memperkirakan percepatan yang sesungguhnya yaitu sebesal log2n. Sedangkan batas atas tergantung dari apakah keseluruhan program tersebut menyertakan bagian I/O (biasanya berupa kode sekuensial). Jika ya, batas atas umum kita hitung sebagai n/ln n (Hwang dan Briggs, 1984).
Akibat adanya kedua batas tersebut, dapat kita lihat bahwa penambahan lebih banyak prosesor tidak selalu menjadi cara terbaik untuk membuat suatu komputer bekerja lebih cepat. Untuk setiap prosesor yang ditambahkan, semakin sedikit percepatan dan semakin kompleks bagi kita untuk mengatur semua prosesor tersebut.
D. Klasifikasi pada arsitektur komputer paralel
Paralelisme dalam suatu komputer dapat diaplikasikan pada beberapa tingkatan, seperti berikut :
1.    Tingkat pekerjaan, antara pekerjaan atau fase-fase suatu pekerjaan.
2.    Tingkat prosedur, antara prosedur-prosedur dan di dalam loop.
3.    Tingkat instruksi, antara fase-fase sebuah siklus instruksi, yaitu fetch, decode dan eksekusi atau instruksi.
4.    Tingkat aritmatika dan bit, antara bit-bit dalan sirkuit aritmatika.

Paralelisme pada tingkat aritmatika dan bit sudah menjadi standar komputer-komputer dewasa ini. Penekanannya sekarang adalah untuk menerapkan paralelisme pada ketiga tingkat lainnya. Meskipun beberapa penerapan dilakukan dengan perangkat lunak, pada bab ini kita akan memfokuskan diri pada penerapan perangkat keras.

Klasifikasi Flynn
Michael J. Flynn (1966) memperkenalkan suatu skema untuk mengkalasifikasikan arsitektur suatu komputer denga melihat bagaimana mesinnya menghubungkan instruksi-instruksinya ke data yang sedang diproses. Ia menyatukan suatu aliran (stream) sebagai suatu rangkaian item-item, baik berupa instruksi maupun data yang dijalankan atau dioperasikan oleh sebuah prosesor. Berikut ini klasifikasinya:
1.    SISD (single instruction stream, single data stream), merupakan suatu komputer serial konvensiona, dimana instruksi-instruksi dijalankan satu persatu dan sebuah instruksi tunggal berhubungan dengan paling banyak satu operasi data dan dapat menggunakan pipelining untuk mempercepat pemrosesan.
2.    SIMD (single instruction stream, multiple data stream), dalam sebuah komputer SIMD suatu instruksi tunggal mungkin mengawali sejumlah besar operasi. Instruksi vektor ini, seperti nama mereka, dilakukan satu persatuan waktu namun mampu bekerja pada beberapa aliran data sekaligus. Juga, kita dapat menggunakan pipelining untuk mempercepat pemrosesan.
3. MISD (multiple instruction stream, single data stream), melaksanakan beberapa operasi instruksi secara bersamaan pada suatu item data tunggal.
4.    MIMD (multiple instruction stream, multiple data stream,  dicirikan oleh eksekusi lebih dari satu instruksi pada saat yang bersamaan, dimana setiap instruksi beroperasi pada beberapa aliran data. Kelas ini mencakup sistem multiprosesor, mulai dari komputer mainframe yang dihubungkan ke suatu jaringan (linked) sampai array mikroprosesor yang besar. 
Klasifikasi Shore
J.E. Shore (1973) membuat suatu klasifikasi arsitektur komputer yang didasarkan pada organisasi bagian-bagian penyusun suatu komputer dan membedakannya menjadi enam jenis mesin.
       Mesin I. Pada komputer ini, suatu instruksi dikerjakan pada suatu waktu dan masing-masing beroperasi pada satu word dalam suatu waktu. Unit pengolahan bisa berupa pipeline atau tidak.
 
       Mesin II. Menjalankan satu instruksi pada suatu waktu, namun ia beroperasi pada sebuah irisan dari satu bit dalam suatu waktu, bukannya semua bit dalam suatu word data. 
       Mesin III. Memiliki dua unit pengolahan yang dapat beroperasi pada data, satu word dalam suatu waktu atau satu irisan bit dalam suatu waktu. (Irisan bit ke-i dan n word merupakan bit ke-i dari masing-masing n word, jika dianggap sebagai suatu keseluruhan). Mesin ini juga dikenal sebagai komputer orthogonal.
       Mesin IV. Dicirikan oleh sejumlah elemen pengolahan (unit pengolahan dan unit memori), semua dibawah kendali sebuah uni kendali logika (CLU). 
       Mesin V. Dihasilkan dengan mengubah mesin IV sedemikian sehingga elemen-elemen pengolahan dapat berkomunikasi dengan tetangga terdekat mereka.
Mesin VI. Komputer ini, disebut sebagai array logika-dalam-memori, merupakan sebuah mesin dengan logika prosesor yang tersebar dalam memori.
Klasifikasi Feng
Tse-yum Feng (1972) menyarankan pengklasifikasian arsitektur komputer atas tingktan paralelisme mereka. Tingkatan paralelisme (degree of parallelism) diwakili oleh pasangan (n, m) dimana n  merupakan panjang word dan m  adalah panjang irisan bit. Pasangan ini diklasifikasikan menjadi empat kelompok sebagai berikut : 
1.    Jika n =1 dan m =1 maka tidak terjadi parlelisme. Hal ini disebut  sebagai word serial/bit serial (WSBS)
2.    Jika n > 1 dan m=1 maka paralelisme itu disebut sebagai word paralel/bit serial (WPBS)
3.    Paralelisme word serial/bit paralel (WSBP) terjadi jika n=1 dan m > 1.
4.    Kategori terakhir disebut sebagai word paralel/bit paralel (WPBP) dan merupakan suatu paralelisme dimana n > 1 dan m > 1.
Perbandingan Klasifikasi
 Klasifikasi Mesin I Shore berhubungan dengan kelas SSID Flynn dan Mesin II sampai IV dapat dianggap sebagai subdivisi kelas SIMD. Pada klasifikasi Feng, Mesin I merupakan WSBP, Mesin II merupakan WPBS dan Mesin II sampai VI merupakan WPBP.
E.  Pemrosesan vektor
Sebuah vektor adalah kumpulan sejumlah n elemen yang berurutan. Jumlah elemen tersebut, n disebut panjang vektor. Suatu operasi yang bekerja pada paling sedikit satu operand vektor disebut sebagai instruksi vektor.
Karakteristik instruksi vektor
Semua instruksi komputer harus memerinci informasi tertentu untuk eksekusi. Informasi ini harus mencakup hal-hal dibawah ini, baik secara eksplisit maupun implisit:
1.    Operasi yang dijalankan
2.    Operand yang digunakan
3.    Status yang akan direkam
4.    Instruksi berikutnya yang akan dijalankan
Sebagai tambahan bagi pemerincian address operand, sebuah instruksi vektor juga harus memerinci operasi sebagai berikut:
1.  Dimensi vektor tersebut (sebuah matriks dianggap sebagai suatu vektor 2-dimensi dalam konteks ini).
2.    Panjang masing-masing dimensi vektor tersebut.
3.    Jenis data pada masing-masing dimensi vektor tersebut.
4.    Penyusunan elemen-elemen vektor tersebut di dalam memori. 
Contoh arsitektur perangkat keras
Dalam suatu prosesor vektor paralel, untuk setiap operasi digunakan sejumlah elemen perhitungan (CE atau computational element). Daripada memiliki beberapa  CE yang terpisah untuk elemen operand vektor yang terpisah-pisah, suatu prosesor vektor pipeline hanya memiliki sedikit CE namun masing-masing dari mereka pipeline-kan.
Perhatikan terhadap pengalamatan vektor
Pengalaman rapat-rapat (teratur). Salah satu karakteristik umun pada pengalam rapat-rapat (dense) atau teratur (regular) adalah bahwa pada didalam memori kurang lebih telah kita ketahui sebelumnya.  

PROSESOR ARRAY
Prosesor array merupakan sebuah computer synchrous dengan lebih dari satu buah elemen pemrosesan yang beroperasi secara paralel. Elemen pemrosesan (PE atau processing element) masing-masing terdiri atas ALU dan register-register, semuanya dibawah kendali sebuah unit kendali logika tunggal (CLU). ALU di dalam PE mungkin di pipeline kan, mungkin juga tidak. Karena PE beroperasi secara paralel, prosesor array mampu melakukan pemrosesan vector. Sebuah prosesor array memiliki 2 karateristik yang berbeda, yaitu :
1.      PE-PE tersebut dirancang sebagai piranti yang pasif tanpa kemapuan decoding atau kendali atas instruksi.
2.    Semua PE tersebut menjalankan fungsi yang sama pada waktu yang sama pula , dibawah kendali sebuah CLU tunggal.

Setiap PE dalam prosesor array dapat dihubungkan untuk berkomunikasi dengan suatu bagian memori tertentu ataupun secara dinamis ke bagian memori yang diatur oleh CLU. Pada dasarnya, kedua organisasi tersebut saling dibedakan oleh kepemilikan PE-nya.
Jaringan penghubung suatu array SIMD pada dasarnya adalah sebuah jaringan routing data untuk register tertentu antar PE-PE. Kita dapat membagi jaringa routing data menjadi dua kelas yaitu statis dan dinamis. Jaringan statis ditandai oleh hubungan yang tetap sedangkan jaringan dinamis mempunyai hubungan variabel yang dihubungkan pada saat di perlukan.
Jenis memori lain yang sangat cocok untuk arsitektur parallel adalah memori asosiatif. Memori ini berbeda dengan sebuah RAM, dimana memori ini isinya dapay dialamati dan seluruh memori dapat di telusuri secara bersamaan waktunya . Jika suatu memori asosiatif digunakan dalam sebuah prosesor array, maka dinamakan komputer asosiatif.
Kerugian utama prosesor asosiatif adalah harga unit memori. Komputer PEPE untuk aplikasi pemrosesan sinyak radar. Komputer STARAN untuk pemrosesan citra digital.

SISTEM MULTI PROSESOR
        Sistem multiprosesor merupakan sebuah system dimana sekumpulan prosesor dalam suatu computer tunggal berhubungan dan bekerja sama satu sama lain untuk memecahkan suatu masalah.
Sistem prosesor dengan memori pribadi merujuk pada sebuah konfigurasi dimana prosesor itu memiliki memori lokal yang besar dan mungkin juga I/O mereka. Saling berkomunikasi melalui suatu sistem transfer pesan. Untuk memori terbagi semua prosesor membagi-bagi sebuah memori utama umum. Setiap prosesor dihubungkan ke memori utama computer via sebuah jaringan penghubung.
Keuntungan sistem multiprosesor : kehandalan yang tinggi, meningkatnya ketersediaan unit memori dan I/O dan meningkatnya kemampuan hitung. Organisasinya berikut :
-       Bus umum : skema hubungan yang paling sederhana, suatu piranti pasif, dimana  operasi transfer dikendalikan oleh interface bus dalam komponen tersebut.  Keuntungan nya adalah relative sederhananya kita untuk menambahkan atau melepaskan komponen-komponennya. Dapat dengan mudah dimodifikasi. Jika bus gagal maka seluruh sistem akan ikut gagal.
-       Saklar crossbar : jalur yang terpisah menghubungkan setiap prosesor ke setiap unit memori. Karena setiap unit memori diakses oleh jalur-jalur yang berbeda, tidak akan terjadi bloking yang disebabkan  oleh adanya transmisi-transmisi yang bersamaan waktunya.
-       Memori multiport : mengeluarkan logika kendali, logika saklar arbitrasi prioritas dari saklar crossbar dan meletakkan mereka di dalam interface masing-masing unit memori.
Perpautan cache adalah kehadiran cache pribadi dalam sistem multiprosesor yang menimbulkan masalah bagi konsistensi data.
-       Pengujian perpautan statis : memisahkan data menjadi kelas terbagi dan pribadi.
-  Pengujian perpautan dinamis : beberapa salinan dari sembarang data diperbolehkan, kapanpun prosesor mengubah data didalam cachenya sendiri, ia harus membuat semua salinan data dalam cache lainnya menjadi tidak valid. Organisasi parallel secara umum :
a.         Sistem prosesor array.
b.     Sistem multiprosesor : terdiri dari sejumlah prosesor lengkap yang dapat memproses data secara independen.
c.     Arus data : instruksi secara otomatis dimungkinkan untuk dieksekusi begitu operand data yang mereka minta tersedia.

0 komentar:

Posting Komentar

luvne.com luvne.com ayeey.com cicicookies.com mbepp.com kumpulanrumusnya.comnya.com.com