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.
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 TubrukanInisiasi 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.
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:
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.
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.