Unit
Kendali Logika atau Control Logic Unit 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).
Durasi
siklus eksekusi tergantung pada jenis operasi yang akan dikerjakan,
mode pengalamatan data yang digunakan dan jumlah operand yang
diperlukan. CLU mengerjakannya dengan membagi setiap siklus instruksi
menjadi serangkaian keadaan (state), setiap state mempunyai panjang yang
sama dan durasi setiap state sama dengan periode clock/siklus komputer.
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:
LDR (Load register dari memori)
LDM (Load memori dari suatu register)
ADR (Add ke register)
BRU (Branch/percabangan tidak kondisional)
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.
l 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 atauinstruction 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).
l 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
Yang Ke-2 adalah Komputer Pipeline
2. Pengertian Pipeline
Pipeline
adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara
bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinou
pada unit pemrosesor. Dengan cara ini, maka unit pemrosesan selalu
bekerja.
Intruksi Pipeline
Urutan Pengolahan Intruksi Pipeline
a. Fetch Intrukasi (FI)
b. Decode Instruction (DI)
c. Calculate Operand (CO)
d. Fetch Operand (FO)
e. Execute Instruction (EI)
f. Write Operand (WO)
Masalah-masalah pada Pipeline
1.
Resiko pada Struktur harware muncul dari konflik resource
sistem yaitu ketika hardware tidak dapat mendukung semua kemungkinan
kombinasi instruksi.
2. Resiko pada Data muncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya.
3.
Resiko pada kontrol program muncul pada pelaksanaan instruksi yang
mengubah nilai pada Program Counter (PC) (contoh :branch/ percabangan).
Keuntungan Pipeline
1. Waktu siklus prosesor berkurang, sehingga meningkatkan kecepatan proses.
2. Beberapa rangkaian digital seperti ADDER dapat dibuat lebih cepat dengan menambahkan lebih banyak rangkaian.
3. Jika pipelining digunakan sebagai pengganti, hal itu dapat menghemat rangkaian yang kompleks.
Kekurangan Pipeline
1.
Non-pipelined prosesor hanya menjalankan satu instruksi pada
satu waktu. Hal ini untuk mencegah penundaan cabang (yang berlaku,
setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi
secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk
diproduksi.
2.
Instruksi yang bersifat laten (terpendam) di non-pipelined
prosesor sedikit lebih rendah daripada dalam pipelined setara.
3.
Non-pipelined prosesor akan memiliki bandwidth yang stabil.
Kinerja prosesor yang pipelined jauh lebih sulit untuk diprediksi karena
harus memiliki kecepatan proses yang bervariasi di antara program yang
berbeda.
Dan Yang terakhir di sini adalah Pemrosesan Paralel
3. Pemrosesan Pararel
Pemrosesan
Paralel adalah komputasi dua atau lebih tugas pada waktu bersamaan
dengan tujuan untuk mempersingkat waktu penyelesaian tugas-tugas
tersebut dengan cara mengoptimalkan resource pada sistem komputer yang
ada untuk mencapai tujuan yang sama. Pemrosesan paralel dapat
mempersingkat waktu ekseskusi suatu program dengan cara membagi suatu
program menjadi bagian-bagian yang lebih kecil yang dapat dikerjakan
pada masing-masing prosesor secara bersamaan.
Tujuan
utama dari pemrosesan paralel adalah untuk meningkatkan performa
komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan
(dalam waktu yang sama), semakin banyak pekerjaan yang bisa
diselesaikan. Analogi yang paling gampang adalah, bila anda dapat
merebus air sambil memotong-motong bawang saat anda akan memasak, waktu
yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan
hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan
memotong bawang akan lebih sedikit jika anda kerjakan berdua.
Performa
dalam pemrosesan paralel diukur dari berapa banyak peningkatan
kecepatan (speed up) yang diperoleh dalam menggunakan teknik paralel.
Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1
jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2
jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.
Adapun
proses kerja , pemrosesan paralel membagi beban kerja dan
mendistribusikannya pada komputer-komputer lain yang terdapat dalam
sistem untuk menyelesaikan suatu masalah. Sistem yang akan dibangun akan
tidak akan menggunakan komputer yang didesikasikan secara khusus untuk
keperluan pemrosesan paralel melainkan menggunakan komputer yang telah
ada. Artinya, sistem ini nantinya akan terdiri dari sejumlah komputer
dengan spesifikasi berbeda yang akan bekerjasama untuk menyelesaikan
suatu masalah.
Mikrokontroler
adalah suatu unit yang dapat diprogram cara kerjanya, sehingga dapat
dipergunakan untuk keperluan yang berbeda. Pada masa sekarang
mikrokontroler banyak digunakan sebagai pengontrol pada
peralatan-peralatan mulai dari mainan/hobie, peralatan rumah tangga,
sampai kontrol pada peralatan industri. Beberapa mikrokontroler yang
beredar dipasaran merupakan keluaran beberapa pabrik yang sudah
terkenal, misal: Intel, Zilog dan Microchip.
Struktur Mikrokontroler :
a. Register
adalah suatu tempat penyimpanan (Variabel) bilangan bulat 8 bit atau 16
bit. Pada umumnya register berjumlah banyak, dan masing-masing ada yang
memiliki fungsi khusus dan ada yang memiliki fungsi umum.
b. Accumulor (register A), merupakan salah satu register khusus yang berfungsi sebagai operand umum proses aritmatika dan logika.
c. Program counter, merupakan salah satu register khusus yang berfungsi sebagai pencacah/penghitung eksekusi program mikrokontroler
d. ALU
(Arithmetical and Logical Unit), ALU memiliki kemampuan khusus dalam
mengerjakan proses-proses arithmetika (penjumlahan, pengurangan,
perkalian dan pembagian) dan operasi logika (AND, OR, XOR dan NOT)
e. Clock
circuits, mikrokontroler merupakan rangkaian digital sekuensial, dimana
kerjanya berjalan melalui sinkronisasi clock. Karenanya diperlukan
clock circuits yang menyediakan clock bagi seluruh bagian rangkaian
f. Internal
ROM (On Chip Flash), merupakan memori yang isinya tidak dapat diubah
atau dihapus (pada saat mikrokontroler berjalan) isinya hanya dapat
dibaca saja. ROM biasanya berisi program (urutan-urutan instruksi) untuk
menjalankan mikrokontroler. Data pada ROM dibaca secara berurutan.
g. Internal
RAM, merupakan memori yang isinya dapat diubah atau dihapus. RAM pada
mikrokontroler biasanya berisi data-data variable dan register. Data
yang tersimpan pada RAM bersifat hilang jika catu daya yang diberikan
hilang (mati).
h. Stack
pointer, merupakan bagian dari RAM yang memiliki metode penyimpanan dan
pengambilan data yang khusus. Dimana data yang paling terakhir
dimasukkan merupakan data yang pertama kali dibaca kembali (LIFO).
i. I/O
port (serial dan parallel), merupakan sarana yang digunakan
mikrokontroler untuk mengakses peralatan di luar dirinya, memasukan dan
mengeluarkan data.
j. Interrupt
circuits, merupakan rangkaian yang mengendalikan sinyal-sinyal
interupsi bail internal maupun eksternal, dengan adanya sinyal interupsi
akan mengakibatkan program utama yang sedang dikerjakan berhenti
sejenak, dan bercabang/.loncat ke program rutin layanan interupsi (RLI)
yang diminta, setelah RLI selesai dikerjakan, mikrokontroler kembali
melanjutkan program utama yang tertunda tadi.
Prinsip kerja mikrokontroler adalah sebagai berikut :
a.
Berdasarkan nilai yang berada pada register Program Counter,
mikrokontroler mengambil data pada ROM dengan alamat sebagaimana yang
tertera pada register Program Counter. Selanjutnya isi dari register
Program Counter ditambah dengan satu (Increment) secara otomatis.
b.
Data yang diambil pada ROM merupakan urutan instruksi program
yang telah dibuat dan diisikan sebelumnya oleh pengguna.
c.
Instruksi yang diambil tersebut diolah dan dijalankan oleh
mikrokontroler. Proses pengerjaan bergantung pada jenis instruksi, bisa
membaca, mengubah nilai-nilai pada register, RAM, isi Port, atau
melakukan pembacaan dan dilanjutkan dengan pengubahan data.
d.
Program Counter telah berubah nilainya (baik karena penambahan
otomatis pada langkah 1, atau karena pengubahan-pengubahan pada langkah
2). Selanjutnya yang dilakukan oleh mikrokontroler adalah mengulang
kembali siklus ini pada langkah 1. Demikian seterusnya hingga power
dimatikan.