Senin, 13 Juni 2016

Organisasi Komputer Pemrograman Mikro


BAB 8
PEMROGRAMAN MIKRO
 8.1    Unit Kendali Logika
Unit Kendali Logika ( CLU atau Control Logic Unit ) berfungsi sebagai :
1.      Mengatur seluruh aktifitas perangkat keras di dalam komputer.
2.      Menyebabkan suatu instruksi di fetch dari memori
3.      Memberikan kode pada instruksi untuk menentukan operasi yang akan dilaksanakan.
4.      Menentukan sumber dan tujuan data
5.      Menyebabkan perpindahan data dan eksekusi operasi yang diperlukan.
6.      Mengulangi seluruh proses sampai sebuah operasi HALT secara tiba-tiba masuk ke dalam program dan dieksekusi.
7.      Menghasilkan serangkaian perintah kendali yang disebut sebagai instruksi-mikro yang menjalankan instruksi tersebut. 

Instruksi mikro merupakan operasi primitif tingkat rendah yang bertindak secara langsung pada sirkuit logika suatu komputer. Mereka meinci fungsi-fungsi (sinyal-sinyal) seperti berikut :
1.      Membuka / menutup suatu gerbang ( gate ) dari sebuah register ke sebuah bus.
2.      Menstransfer data sepanjang sebuah bus.
3.      Menberi inisial sinyal-sinyal kendali seperti READ, WRITE,SHIFT, CLEAR, dan SET.
4.      Engirimkan sinyal-sinyal waktu.
5.      Menunggu sejumah periode waktu tertentu.
6.      Menguji bit-bit tertentu dalam sebuah register.

8.2    Kendali HARD-WIRED
Sewaktu sebuah instruksi ditempatkan didalam register instruksi CLU mendecode instruksi itu dan menghasilkan serangkain instruksi mikro. Setiap output decoder dapat digunakan untuk menghasilkan serangkaian instruksi mikro.instruksi mikro ini dikendalikan oleh sinyal waktu dan beberapa kondisi status di dalam sistem. Pada CLU yang tidak sinkron penyelesaian suatu operasi memicu operasi berikutnya dan karena itu tidak diperlukan clock. Meskipun rancangan CLUyang tidak sinkron lebih kompleks, namun ia dapatdibuat agar berfunsi lebih cepat dibandingkan dengan CLU yang sinkron. Namun demikian, dengan pendekatan apapaun, implementasi hard wired pada CLU menghasilkan respon yang cepat secara keseluruhan. Walaupun demikian jenis ini telah terdesak oleh kendali microprogrammed, untuk alasan-alasan tertentu.

8.3    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. Dalam CLU microprogrammed, serangkaian instruksi mikro yang berhubungan dengan masing-masing instruksi dalam kelompok instruksi tersimpan dalam memori baca ( ROM ), yang disebut sebagai memori kendali.
1.      Organisai CLU Microprogrammed
Intruksi makro disimpan dalam memori utama dan diakses melalui memory address register (MAR ) dan memory buffer register ( MBR ).
2.      Format Instruksi Mikro
Ada dua jenis format instruksi mikro yaitu horisontal dan vertikal.
a.  Format instruksi mikro horisontal.
Pada format instruksi mikro horisontal satu bit diberikan untuk setiap sinyal logika yang dapat dihasilkan oleh instruksi mikro. Kebanyakan operasi mikro adalah mutual eksklusif 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 instruksi mikro yang mutual eksklusif. Kemudian digunakan suatu decoder untuk memilih operasi mikro tertentu yang akan dipanggil. Jika terbawa ke dalam ekstrem ( hanya satu field ) maka proses coding dan decoding enghasilkan suatu format instruksi mikro vertikal, dimana hanya satu operasi mikro yang dipanggil pada suatu waktu.
b.   Format instruksi mikro vertikal
Suatu format vertikal memerlukan empat instruksi mikro untuk menjalankan operasi mikro. Dua bit dicadangkan untuk mengcode masing-masing keempat langkah tersebut dalam rangkain operasi mikro yang berhubungan dengan ALU.
Untuk dua jenis instruksi mikro diatas dapat disimpulkan bahwa format horisontal lebih efesie dibandingkan dengan format vetikal.
3.      Perangkaian Instruksi Mikro
Meskipun terkadang cukup hanya memfetch instruksi mikro berikutnya secara berurutan, kita memerlukan beberapa mekanisme yang memungkinkan lompatan kondisioanal dalamprogram mikro ynag memungkinkannya untuk membuat suatu keputusan. Lompatan kondisional memungkinkan instruksi mikro mempunyai dua penduhulu dan meningkatkan kecepatan ekskusinya, daripada mensetup beberapa kondisi dalam satu instruksi mikro dan kemudian mengujinya pada instruksi mikro berikutnya. Untuk mencapai hal tersebut disiapkan dua field untuk setiap instruksi mikro yaitu : sebuah field ADDR yang berisi address pendahulu yang potensial bagi instruksi mikro saat ini, dan sebuah field COND yang menentukan apakah instruksi mikro berikutnya di fetch dari CAR+1 atau dari ADDR. Pilihan dari instruksi mikro berikutnya ditentukan oleh sirkuit logika perangkai mikro. Output sirkuit kendali ini mengendalikan suatu multiplexer, yang mengarahkan dari CAR+1 atau ADDR ke CAR karena address instruksi mikro berikutnys berda dalam CAR. Karena hanya ada 4 pilihan mengenai instruksi mikro berikutnya makalebar field COND dapat sebesar 2 bit dan keempat pilihan tersebut dapat diindikasikan dengan mengatur COND.
8.4   Emulasi
      Dengan emulasi suatu komputer diprogram secara mikro umtuk mempunyai kumpulan instruksi yang benar-benar sama dengan komputer lainnya dan dapat mempunyai tingkah laku yang sama pula. Oleh karena itu, program-program yang ditulis untuk komputer yang beremulasi akanberjalan pada komputer mikroprogrammed.
8.5    Irisan Bit
Irisan bit adalah sistem yang dapat diprogram secara mirko dapat dibuat dengan menggunakan sirkuit terpadu yang khusus.
8.6    Peralatan Pendukung Bagi Program-Mikro
1. Assembler-mikro ( program-program perangkat lunak ).
2. Formatter ( program yang memberikan fasilitas ).
3. Sistem pengembangan
4. Simulator perangkat keras.
8.7    Biaya Dan Keuntungan Pemrograman Mikro
1. mudah diubah-ubah
2. lebih terstruktur
3. lebih dapat diandalkan, dll.

BAB 9
KOMPUTER PIPELINE

9.1             Konsep Pipeline
Komputer pipeline adalah salah satu teknik yang mendorong peningkatan suatu sistem throughput yang cukup hebat. 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 dengan tingkatan ( stage ), untuk setiap subfungsi. Satge-satge ini kemudian dihubgungkan bersama-sama dan membentuk sebuah pipeline tunggal atau pipe untuk menjalankan fungsi asli tersebut. Keuntungan pemrosesan ini adalah penambahan akan tersedia dengan  kecepatan yang sama dengan kecepatan input.

9.2             Sinkroniasasi pada pipeline
         Pada semua baris perkalian industri, efesienesi suatu pipeline dapat erkurang jauh akibat suatu bottleneck yang terjadi sewaktu pemrosesan pada suatu stasiun atau stage menghabiskan waktu lebih lama daripada steage lainnya. Untuk menyamakan waktu yang diperlukan pada setiap stage maka stage-stage tersebut harus di sinkronisasikan dengan menyisipkan kunci-kunci ( latch ) sederhana antara stage-stage tersebut. Waktu yang diperlukan untuk lewat dari suatu latch melalui stage ke latch berikutnya disebut sebagai penangguhan clock ( clock delay ).

9.3             Efesiensi Pipeline
         Untuk mengilustraskan operasi-operasi yang saling tumpang tindih dalam pipeline linear digunakan suatu diagram ruang-waktu ( space time diagram ). Dalam teori suatu fungsi pipeline selalu lebih baik dari non pipeline, satu-satunya yang tidak lebih baik adalah hwa suatu fungsi tidak dapat dibagi-bagi menjadi beberapa sub fungsi yang berbeda. Harga pipeline dapat disebabkan oleh beberapa faktor berikut :
1.      Tambahan kunci ( latch ) perangkat keras yang diperlukan
2.      Kendali yang diperlukan untuk penjadwalan input tersebut.
3.      Waktu yang dihabiskan oleh data dalam latch untuk menyesuaikan diri dengan suatu penangguhan clock yang seragam.
4.      Jumlah rata-rata input yang akan tersedia agar penggunaan pipeline menjadi efesien.
5.      Menentukan titik potong ( cotoff point ) apakah proses pipeline leih baik atau tidak.

9.4             Klasifikasi Pipeline
Klasifikasi berdasarkan fungsi :
1.      Pipelining aritmatika
2.      Pipelining instruksi
3.      Pipelining prosesor
Klasifikasi berdasarkan konfigurasi :
1.      Unifungsi ( menjalankan hanya satu jenis pokok operasi ) versus multifungsi ( menjalankan fungsi-fungsi yang berbeda ).
2.      Statis ( instruksi-instruksi yang berjenis sama dijalnkan secara bersamaan waktunya ) versus dinamis ( konfigurasi pipe berubah-ubah secara konstan ). Jika suatu pipeline dalam sebuah sistem perlu mengubah fungsinya secra berkala maka harga implementasi pipeline dinamis melebihi pertimangan harga dari waktu menganngur ( idle time) yang dihasilkan dari proses darining pipeline statis dsecaa terus menerus.
3.      Skalar ( memproses serangkaian operasi skalar pada operand skalar yang berhubungan dengan masing-maisng angka seperti ditunjukkan oleh program seperti dalam operasi ADD dalam loop FOR ) versusVektor ( memproses instruksi vektor dengan menggnakan operand vektor ).

9.5             Cascading Atas Stage
Cascading Atas Stage adalah membuat sebuah pipeline yang kompleks tanpa salah satu stage yang penting

9.6             Prinsip Pipelining Secara Umum
1.      Tabel reservasi
Sangat sering pipeline mempunyai hubungan umpan balik( feedback ) dan umpan maju ( feedforward ). Suatu implementasi yang dapat dikonfigurasi untuk menerapkan lebih dari satu fungsi disebut sebagai suatu pipeline multifungsi.
2.      Penjadwalan dan Pencegahan Adanya Tubrukan
         Insiasi dari suatu tabel reservasi berhubungan dengan permulaaan suatu evaluasi fungsi tunggal yang akan mengikuti path yang dinamai oleh tabel. Jika usatu inisiasi dibuat maka pengendali pipeline harus mencadangkan stage pada pipeline yang tepat bagi data inisiasi tersebut dengan waktu yang relatif yang ditentukan oleh tabel reservasi. Jika data dari dua inisiasi yang berbeda akan masuk ke dalam stage yang sama pada waktu yang sama maka kan terjadi tubrukan, karena suatu stage tidak dapat menghitung dua hsil yang berbeda secara bersamaan waktunya maka tubrukan dapat dicegah dengan pengendali pipeline.Metode untuk menentukan algoritma penjadwalan yang efesien yang dapat diimplementasikan oleh pengendali pipeline untuk mencegah adanya tubrukan-tubrukan. Jumlah unit waktu antara dua inisiasi dalam suatu pipeline disebut sebagai latensi. Serangkain latensi yang berdampingan disebut sebagai rangkaian latensi. Jika rangkaian latensi mengurangi dirinya sendiri disebut sebagai siklus latensi. Vektor tubrukan ( collision vector ),C, merupakan suatu repesentasi vektor biner dari kumpulan latensi yang terlarang. Ia memiliki sejumlah n bit yang dimulai dari bit yang paling tidak signifikan, bit ke-i bernilai 1 jika i merupakan latensi terlarang dan jika tidak bernilai 0; sehingga kita tulis
C = ( cn . . . c2 c1 )
Dimana c1 = 1 jika i ada di dalam F dan c1 = 0 jiika sebaliknya.
         Suatu diagram keadaan ( state diagram ) dapat ditururnkan untuk menandai inisiasi tugas yang berdampingan dalam sebuah pipeline. Jika suatu siklus terdiri atas state-state yang tidak berulang ( nonrepeating ) maa disebut sebagai suatu siklus sederhana ( siklus cyce ). Untuk megoptimalkan starategi pengendalian pada pipeline adalah siklus latensi yang mempunyai latensi rata-rata paling rendah ( MAL  atau minimum average latency ).Pemilhan path latensi terpendek dari setiap state dikenal dengan sebagai siklus serakah (  greedy cycle  ).
3.      Penyisipan Penangguhan ( Delay ) untuk Throughput yang Optimal
Jumlah stage dalam sebuah pipeline tidak mempengaruhi throuhput pipeline tersebut kecuali waktu starup awal. Kita dapat menggambarkan kemungkinan troughput suatu pipeline yang maksimum ( setelah starup ) sebagai kebalikan dari waktu latensi rata-rata yang minumum :
Throughput maksimal = I/MAL

9.7          Contoh Pipeline Multifungsi
Control Data Corporation ( CDC ) CYBER 205 merupakan komputer yang banyak memakai pipeline . seperti perkalian pembagian, dan akar pangkat dua.
9.8             Masalah Pipeline Yang Berulang
Persamaan perulangan ( recurrence equation ) masalah-masalah yang berhubungan dengan pipeline yang digambarkan oleh persamaaan perulangan ( recurences ). Dalam usaha membuat suatu pipeline dengan perulangan, potensinya untuk merusak efesiensi pipeline sangat besar.

BAB 10
PEMROSESAN PARALEL

10.1           Kebutuhan Akan Pemrosesan Paralel
Pemrosesan paralel dalamsebuah komputer dapat didefinisikan sebagai pelaksanaan instruksi-instruksi secara bersamaan waktunya. Hal ini dapat menyebabkan :
1.      Dalam interval waktu yang sama
2.      Dalam waktu yang sama
3.      Dalam rentang waktu yang saling tumpang tindih
Pemrosesan paralel digunakan dalam ilmu occanografi, asrtronofisik, seismologi, meteoroligi, atomik, nukir, fisika plasma, intelegnsia buatan, rekayasa genetik,analisis elemen erbatas untuk perancangan struktur dan eksperimen terowongan angin untuk studi aerodinamika serta perancangan sirkuit LSI dan VLSL.

10.2            Teknik-Teknik Pemrosesan Paralel
Sebuah komputer parallel mempunyai kemampuan untuk saling tumpang tindih atau menjalankan beberapa operasi ini secara bersamaan waktunya. Beberapa cara telah dikembangkan untuk memperkenalkan pralisme ke dalam arsitektur komputer serial, beberapa diantaranya adalalah :
1.    Pipelining
2.    Unit-unit fungsi berganda ( multiple ).
3.    Tumpang tindih antara operasi-operasi CPU dan I/O
4.    Interleaving memori
5.    Multiprogramming
6.    Multiprossesing

10.3            Percepatan komputer parallel
Suatu batas bawah dikenal sebagai konjektur minsky, memperkirakan percepatan yang sesungguhnya yaitu sebesar log2n,  sedangkan batas atas tergantung dari apakah keseluruhan program tersebut menyertakan bagian I/O biasanya beurpa sekuensial.

10.4            Klasifikasi Pada Arsitektur Komputer Parallel
Paralilse dalam suatu komputer dapat diaplikasikan pada beberapa tingkatan :
1.     Tingkat pekerjaan t
2.    Tingkat prosedur
3.    Tingkat instruksi
4.    Tingkat aritmatika
          Skema klasifikasi yang paling umum digunakan adalah taksonomi Flynn. Michael J.Flynn ( 1966 ) memperkenalkan suatu skema untuk mengklasifikasikan arsitektur suatu komputer dengan melihat bagaimana mesinnya menghubungkan instruksi-instruksinya ke data yang sedang dip roses. Ia menyatakan suatu aliran ( stream ) sebagai suatu rangkaian item-item, baik berupa instruksi maupun data yang dijalankan atau dioperasikan oleh sebuah prosesor. Klasifikasinya sebagai berikut :
1.    SISD ( single instruction single stream )
2.    SIMD ( single instruction stream multiple dan stream )
3.    MISD ( multilple instruction  stream single data stream )
4.    MIMD ( multiple instruction stream multiple stream ).
          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.
1.      mesin I beroperasi pada satu word dalam satu waktu.
2.      Mesin II beroperasi pada sebuah irisan dari suatu bit dalam suatu waktu
3.      Mesin III memiliki dua unit pengolahan yang dapat beroperasi pada data dikenal sebagai komputer orthogonal
4.      Mesin IV unit pengolahan dan unit memori dikendalikan oleh sebuah unit kendali logika ( CLU ).
5.      Mesin V mengubah mesin IV
6.      Mesin VI array logika-logika dalam memori
          Klasifikasi Feng, Tse Feng ( 1972 ) menyarankan pengklasifikasian arsitektur komputer atas tingkatan paralelisme mereka. Tingkatan paralelisme diwakili oleh pasangan (n,m) dimana n merupakan panjang word dan m adalah panjang irisan bit. Pasangan ini diklasifikasikan menjdai empat kelompok sebagai berikut :
1.        Word Serial / bit serial
2.        Word parallel / bit serial
3.        Word parallel / bit parallel
          Perbandingan klasifikasi klaifikasi mesin 1 shore berhubungan dengan kelas SISD 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-IV merupakan WPBP.

10.5            Pemrosesan Vector
          Sebuah vector adalah kumpulan sejumlah n elemen yang berurutan. Jumlah elemen tersebut, n, disebut panjang vector. Suatu operasi yang bekerja pada paling sedikit satu operand vector disebut sebagai instruksi vector.  Karakteristik instruksi vector :
1.    Operasi yang akan dijalankan
2.    Operand yang akan digunakan
3.    Status yang akan direkam
4.    Instruksi berikutnya yang akan dijalankan
Sebagai tambahan bagi pemerincian address operand, sebuah instruksi vector jga harus memerinci informasi seperti berikut :
1.      Dimesi matriks
2.      Panjang dimensi
3.      Jenis data dimensi
4.      Penyusunan elemen-elemen vector
          Dua buah konsep baru yang unik pada pemrosesan vector adalah format data floating-point blok  dan padding.
1.    Floating-point blok: untuk dapat menggunakan hanya satu eksponen kita perlu menyusun skala mantissa secara tepat. Namun jika menyebabkan kerugian data maka konsep ini tidak boleh dipakai.
2.    Padding: proses pemanjangan sebuah vektor secara otomatis. 

10.6            Prosesor Array
Yaitu sebuah komputer synchronous dengan lebih dari satu buah elemen pemrosesan (ALU dan register-register) yang beroperasi secara paralel. Jika memori asosiatif digunakan dalam prosesor array, komputernya disebut prosesor asosiatif.

10.7             Sistem Multiprosesor
·      Sistem memori pribadi (pasangan longgar), dimana prosesor memiliki memori lokal.
·      Sistem memori terbagi (pasangan ketat), semua prosesor membagi-bagi sebuah memori utama umum. Biasanya piranty I/O terpisah dan memiliki catche yang berbeda.




 

Siti Mulia Sari Template by Ipietoon Cute Blog Design