BAB 8
PEMROGRAMAN
MIKRO
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.
0 komentar:
Posting Komentar