Control
Logic Unit (CLU)
CLU mempunyai dua tugas dari pe-sinkronan
operasi unit internal dari MPU, seperti ALU dan register, dan operasi modul
mikrokomputer yang lain, seperi port I/O dan memori. Fungi dari CLU adalah
untuk mengambil instruksi dari memori dan men-decode-nya dan kemudian membuat
pengaturan waktu yang tepat dan signalkontrol yang diperlukan oleh MPU untuk
pembuatan instruksi tersebut. Dalam dua aturannya, CLU juga membuat signal
waktu dan signal kontrol yang dikirimkan melalui kontrol bus, ke komponen lain
dari sistem mikrokomputer dan menangani dan merespon signal eksternal seperti
interupsi. Untuk menyediakan sinkronisasi yang diperlukan diantara semua
elemen, sistem mikrokomputer bergabung dengan clock pulse generator. Signal waktu yang disediakan lingkaran jam
adalah periodik dan single-phase
atau multi-phase. Signal multphase
berisi signal periodik yang disinkronkan dengan yang lain tetapi biasanya
diluar phase. Meskipun mikroprosesor 8-bit telah digunakan dalam implementasi
jam dua phase,hampir semua mikroprosesor yang baru (32-bit) sekarang
menggunakan implementasi jam single-phase.
CLU sebenarnya merupakan komputer dengan
tujuan tertentu dalam MPU dan memerlukan suatu program untuk menuntunnya dalam
pembuatan suatu instruksi. Pada hampir semua mikroprosesor, CLU merupakan microprogrammed. Yaitu, signal waktu
dan kontrol diperlukan untuk mengambil dan membuat suatu instruksi yang dibuat
dengan pembuatan serangkaian microinstruction
(atau microcode) yang residen
dalam control memory, yang biasanya
berupa ROM. Mikro instruksi disimpan dalam ROM yang membentuk microprogram yang secara lengkap
menentukan signal kontrol. Dengan demikian masing-masing instruksi mikroprosesor yang sebaliknya dapat mengembalikan kontrol
yang diperlukan dan signal waktu untuk pembuatan instruksi makro.
CLU atau dikenal sebagai unit pengendali
logika pada komputer memasukkan informasi tentang instruksi dan mengeluarkan
baris kendali yang diperlukan untuk mengaktifkan operasi-mikro. Tidak hanya
setiap instruksi yang harus ditangani, tetapi semua sinyal kendali untuk
mem-fetch instruksi dan operand dari memori, untuk menangani interupsi dan
untuk memproses I/O harus dihasilkan oleh CLU. Jumlah sinyal waktu untuk setiap
siklus akan bervariasi pada suatu komputer dengan yang lainnya dan bahkan dalam
sebuah mesin. Kita dapat memperhatikan bahwa CLU terbentuk atas sebuah prosesor instruksi (IP atau instruction processor) dan proses aritmatika (AP atau arithmatic processor). IP mengendalikan fetch, perhitungan
alamat dan siklus interupsi, dan AP akan mengendalikan siklus eksekusi bagi
operasi aritmatika dan logika.
Aritmatika
fixed-point
1.
Jika operasinya adalah ADD dan
tandanya sama, maka tambahkan A dan B
2.
Jika operasinya adalah ADD dan
tandanya beda, maka kurangi B dari A
3.
Jika operasinya adalah SUBTRACT
dan tandanya berbeda, maka tambahkan A dan B
4.
Jika operasinya adalah SUBTRACT
dan tandanya berbeda, maka tambahkan A dab B
Aritmatika floating-point
Algoritma
untuk aritmatika floating-point lebih
rumit dibandingkan angka angka fixed-point
tetapi menggunakan algoritma yang sama untuk penambahan dan perkalian
bagian-bagian angka yang berbeda. Algoritma dasar bagi penambahan dan
pengurangan adalah sebagai berikut :
1.
Pengujian untuk angka nol
2.
Sejajarkan mantisa
3.
Tambahkan atau kurangi mantisa
4.
Normalisasikan hasilnya
Unit Aritmatika Desimal
Pada beberapa
aplikasi, perbandingan jumlah aritmatika yang diperlukan dengan jumlah I/O yang
terjadi adalah sangat kecil. Pada komputer umum (general-purpose), sangat bermanfaat, pada kenyataannya memaksa
kecepatan dan efisiensi, untuk mengkonversi nilai-nilai input desimal ke dalam
biner untuk semua perhitungan internal. Hanya jika suatu angka akan dikeluarkan
ke sebuah piranti I/O maka ia harus dikonversikan kembali ke dalam desimal.
Sebaliknya pada kalkulator, untuk setiap operasi I/O hanya dikerjakan sejumlah
kecil aritmatika. Karena itu, sebenarnya lebih cepat mengerjakan aritmatika
dalam desimal dan menghapus konversi ke dan dari bentuk biner.
Set
Register
Register set terdiri atas register-register
dengan tujuan umum, dimana biasanya ada antara 8 hingga 32 (tergantung pada
mikroprosesor khusus) dan register dengan tujuan tertentu, yang masing-masing
digunakan untuk fungsi khusus dan digunakan langsung atau tidak langsung oleh
instruksi program. General purpose
register (register dengan tujuan umum) dapat digunakan (oleh instruksi)
sebagai akumulator, sumber atau tujuan register data, atau register alamat yang
berisi pointer memori atau nilai indeks. Beberapa mikroprosesor
membebani/memberikan batasan pada beberapa register dengan tujuan umum.
Misalnya, beberapa register dapat digunakan hanya untuk memori alamat atau
hanya sebagai register data. Meskipun batasan ini merupakan batas pemrograman
yang fleksibel (jika kita menggunakan register ini untuk fungsi lain, kita
pertama kali harus menyimpan isinya secara sementara), namun batasan ini
memungkinkan perancang komputer untuk bekerja sama dengan format instruksi yang
lebih kompak.
Sebaliknya, Spesial-purpose register (register dengan tujuan tertentu)
digunakan untuk fungsi khusus. Program
counter (PC) biasanya terdiri atas alamat memori tempat kata instruksi
berikutnya akan diambil. Hampir semua mikroprosesor mencakup lebih dari satu “accumulator (ACC)”, fungsi-fungsi
dimana menyimpan satu operang agar dioperasikan oleh ALU dan menyimpan hasil
dari operasi ALU. Instruction register (IR)
berisi intruksi opcode. Index register
menyimpan angka konstanta yang digunakan dalam penghitungan alamat memori yang
efektif dalam pengalamatan indeks.
Hampir semua
mikroprosesor bergabung dengan register tujuan tertentu, yang disebut dengan stack register, yang mengambil pada
porsi set RAM untuk operasi subroutine atau untuk menangani kondisi
perkecualian (contoh: interupsi). Stack akan menyimpan alamat instruksi yang
harus dibuat setelah subroutine lengkap. Dengan demikian instruksi berikutnya
yang diambil akan menjadi subroutine yang pertama, dan ketika mikroprosesor
mengambil instruksi yang terakhir dari subroutine (yang selalu berupa instruksi
return), mikroprosesor tersebut akan
mengganti isi PC dengan alamat paling atas dari stack dan menyimpulkan
pembuatan program utama. (Nested subroutine) juga dapat didukung, jika ada
cukup memori untuk menyimpan alamat return yang perlu.
Hampir semua
mikroprosesor 16- dan 32-bit menggunakan segment
register untuk mengimplementasikan pemetaan memori ketika pemasukan memori
utama. Mekanisme ini akan menterjemahkan alamat logika program ke dalam alamat
fisik. Beberapa mikroprosesor berisi memory
refresh register yang menyediakan secara otomatis transparan refresh dari
dynamika RAM. Biasanya, mikroprosesor berisi vector interrupt register yang memungkinkan tabel insterupsi untuk
menempatkan dimana saja dalam memori.
Dalam hal ini, semua yang MPU harus mengambil instruksi pertama dari interrupt
service routine merupakan alamat tidak
langsung dari lokasi memori yang berisi instruksi tersebut.
Angka temporary register, yang tidak dapat
dimasukkan pada pemakai, ada juga di dalam hampir semua mikroprosesor dan
digunakan untuk menangani operand lanjutan atau hasil penyimpanan sementara
dari operasi. Misalnya, status register
berisi berbagai indikasi, yang disebut dengan flag, yang disediakan oleh mikroprosesor. Tiap flag digunakan untuk
menunjukkan statur dari kondisi mikroprosesor tertentu sebagai hasil daru suatu
operasi. Beberapa flag digunakan langsung oleh instruksi, ketika angka-angka
flag yang lainnya diuji dibawah program kontrol untuk menentukan serangkaian
instruksi yang mengikutinya. Berikut beberapa contoh flag yang umum:
1.
Sign Flagdigunakan untuk menunjukkan tanda
dari hasil suatu manipulasi data atau operasi transfer data. Ini memerlukan
angka most significant bit dari hasil
dan dapat diuji untuk sign yang positif atau sign negatif. Flag ini menganggap
angka significant bit (msb) dari
hasil ketika angka-angka yang tidak diberi sign digunakan. Mikroprosesor tidak
mempunyai cara dengan mengetahui jika data menunjukkan angka yang ber-sign atau
yang tidak atau informasi nonnumerik, ini tergantung pada programmer untuk
menjaga track ini.
2.
Carry Flag diset ke 1 jika operasi aritmatika,
seperti penambahan atau pengurangan, akan menghasilkan di dalam carry atau
mengeluarkan msb, jika sebaliknya maka flag ini di-set dengan 0.
3.
Auxiliary carry flag digunakan untuk
memberikan pengaruh status dari carry lanjutan dalam dua-digit BCD (desimal)
dari operasi aritmatika.
4.
Parity flag biasanya menunjukkan odd parity
dari suatu hasil. Jika angka satu ada sebagai hasilnya, maka parity flag di set
dengan 1, jika sebaliknya, maka parity flag di set dengan 0 (yang membuat total
angka satu odd/aneh).
5.
Interrupt flag digunakan untuk memungkinkan
atau tidak memungkinkan adanya interupsi. Jika interrupt flag di set dengan 0,
maka dapat diinterupsi, dan jika di set dengan 1, maka tidak dapat.
Beberapa
mikroprosesor mempunyai indikator status tambahan. Misalnya, overflow flag, yang digunakan untuk
menunjukkan overflow yang dihasilkan dari aritmatika komplemen 2. Flag ini
berbeda dengan carry flag dan dua di antaranya tidak dapat saling ditukar.
Beberapa mikroprosesor berisi subtract flag yang di set denga 1 untuk operasi
termasuk pengurangan dan diset dengan 0 untuk memasukkan operasi tambahan.
Beberapa
mikroprosesor 16- dan 32-bit dapat beroprasi dalam user mode maupun dalam system
(supervisor) mode. Proses dua mode tersebut disediakan untuk menambah
keamanan dalam sistem. Hampir semua pemakai program membuat dalam mode pemakai
ketika mengoperasikan sistem yang membuat dalam mode sistem. Hampir semua
instruksi membuat yang sama dalam mode tetapi beberapa instuksi, seperti I/O
dan interrupt, dapat dibuat hanya dalam mode sistem. Dengan hal tersebut, untuk
menunjukkan status tertentu dari mikroprosesor, maka status register harus
berisi user/system flag.
Akhirnya, beberapa
mikroprosesor mempunyai trap flag
yang diatur untuk membuat interupsi setelah pembuatan masing-masing instruksi.
Fitur ini memungkinkan programer untuk mengoperasikan mikroprosesor dalam single mode, yang sangat berguna dalam
pembuatan program.
font:minor-latin'>4.
Normalisasikan hasilnya
Unit Aritmatika Desimal
Pada beberapa
aplikasi, perbandingan jumlah aritmatika yang diperlukan dengan jumlah I/O yang
terjadi adalah sangat kecil. Pada komputer umum (general-purpose), sangat bermanfaat, pada kenyataannya memaksa
kecepatan dan efisiensi, untuk mengkonversi nilai-nilai input desimal ke dalam
biner untuk semua perhitungan internal. Hanya jika suatu angka akan dikeluarkan
ke sebuah piranti I/O maka ia harus dikonversikan kembali ke dalam desimal.
Sebaliknya pada kalkulator, untuk setiap operasi I/O hanya dikerjakan sejumlah
kecil aritmatika. Karena itu, sebenarnya lebih cepat mengerjakan aritmatika
dalam desimal dan menghapus konversi ke dan dari bentuk biner.
Daftar Pustaka
Soepono Soeparlan, 1995, Pengantar Organisasi Sistem Komputer, Depok, Penerbit Gunadarma (digital books)
Komentar
Posting Komentar