Control Logical Unit (CLU) dan Set Register
Control Unit merupakan bagian yang berfungsi sebagai
pengatur dan mengatur dan pengendali semua peralatan computer, Control Unit
juga mengatur kapan alat input menerima
data, mengolah, dan menampilkan proses serta hasil pengolahan data. Dengan
demikian semua perintah dapat dilakukan secara berurutan tanpa adanya tumpang
tindih antara satu perintah dengan perintah lainnya.
Gambar.1 Alur Control Unit
Tugas dari CU adalah sebagai berikut:
1. Mengatur dan
mengendalikan alat-alat input dan output.
2. Mengambil
instruksi-instruksi dari memori utama.
3. Mengambil data dari
memori utama kalau diperlukan oleh proses.
4. Mengirim instruksi ke
ALU bila ada perhitungan aritmatika atau perbandingan
5. logika serta mengawasi
kerja.
6. Menyimpan hasil proses
ke memori utama.
Proses tiga langkah karakteristik unit control:
1. Menentukan elemen dasar prosesor
2. Menjelaskan operasi mikro yang akan
dilakukan prosesor
3. Menentukan fungsi-fungsi yang harus
dilakukan unit control agar menyebabkan pembentukan operasi mikro
Masukan-masukan unit control:
1. Clock/pewaktu
Pewaktu adalah cara unit control
dalam menjaga waktunya. Unit control menyebabkan
sebuah operasi mikro (atau sejumlah operasi mikro yang bersamaan) dibentuk bagi
setiap pulsa waktu. Pulsa ini dikenal sebagai waktu siklus prosesor.
2. Register instruksi
Opcode instruksi saat itu
digunakan untuk menentukan operasi mikro mana yang akan dilakukan selama siklus
eksekusi.
3. Flag
Flag ini diperlukan oleh unit control untuk menentukan status prosesor dan hasil operasi ALU sebelumnya.
Flag ini diperlukan oleh unit control untuk menentukan status prosesor dan hasil operasi ALU sebelumnya.
4. Sinyal control untuk mengontrol bus
Bagian bus control bus system memberikan sinyal-sinyal ke unit control, seperti sinyal-sinyal
interupsi dan acknow ledgement.
Keluaran-keluaran unit control:
Sinyal control didalam prosesor: terdiri dari dua macam: sinyal-sinyal
yang menyebabkan data dipindahkan dari register
yang satu ke register yang lainnya,
dan sinyal-sinyal yang dapat mengaktifasi fungsi-fungsi ALU tertentu.
Gambar.1.2 Cara kerja Control Unit
Cara Kerja Control Unit
Ketika sebuah computer pertama kali diaktifkan
power-nya, maka computer tersebut
menjalankan operasi bootstrap.
Operasi ini akan membaca sebuah instruksi dari suatu lokasi memori yang telah
diketahui sebelumnya dan mentransfer instruksi tersebut ke control unit untuk dieksekusi. Instruksi-intruksi dibaca dari
memori dan dieksekusi sesuai dengan urutan penyimpanannya.
Program counter dari suatu komputer menyediakan suatu cara untuk menyimpan
lokasi instruksi berikutnya. Urutan eksekusi berubah dengan memindah lokasi
intruksi baru ke program counter sebelum
pembacaan (fetch) instruksi
dikerjakan. Sebuah intruksi merupakan kalimat imperatif pendek yang sudah dapat
menjelaskan makna dari perintah tersebut. Suatu intruksi terdiri dari :
1. Subjek (komputernya)
2. Verb (suatu kode operasi yang mengindikasikan pekerjaan
apa yang akan dilaksanakan)
3. Objek (operands) yang mengidentifikasikan nilai
data atau lokasi memori.
Ketika
intruksi-intruksi diterima oleh Control
Unit, operation code akan
mengaktifkan urutan logic untuk
mengeksekusi intruksi-intruksi tersebut. Satu eksekusi program terdiri dari
beberapa instruction cycle yang
menjadi komponen penyusun dari program tersebut. Sedangkan untuk
setiap instruction cycle terdiri dari beberapa sub cycle lagi seperti ftech cycle, indirect cycle, execute cucle,
dan interrupt cycle.
Setiap sub cycle ini
disusun dari beberapa perintah dasar yang disebut micko operation.
Macam-macam CU :
1. Single-Cycle CU Proses di CUl ini hanya terjadi
dalam satu clock cycle, artinya
setiap instruksi ada pada satu cycle,
maka dari itu tidak memerlukan state. Dengan demikian fungsi boolean
masing-masing control line hanya merupakan fungsi dari opcode saja. Clock cycle harus mempunyai panjang yang
sama untuk setiap jenis instruksi. Ada dua bagian pada unit kontrol ini, yaitu
proses men-decode opcode untuk
mengelompokkannya menjadi 4 macam instruksi (yaitu di gerbang AND), dan
pemberian sinyal kontrol berdasarkan jenis instruksinya (yaitu gerbang OR).
Keempat jenis instruksi adalah “R-format” (berhubungan dengan register), “lw”
(membaca memori), “sw” (menulis ke memori), dan “beq” (branching). Sinyal
kontrol yang dihasilkan bergantung pada jenis instruksinya. Misalnya jika
melibatkan memori ”R-format” atau ”lw” maka akan sinyal ”Regwrite” akan aktif. Hal lain jika melibatkan memori “lw” atau
“sw” maka akan diberi sinyal kontrol ke ALU, yaitu “ALUSrc”. Desain
single-cycle ini lebih dapat bekerja dengan baik dan benar tetapi cycle ini tidak efisien. 2. Multi-Cycle CU Berbeda dengan unit kontrol
yang single-cycle, unit kontrol yang
multi-cycle lebih memiliki banyak
fungsi. Dengan memperhatikan state dan opcode,
fungsi boolean dari masing-masing output control line dapat ditentukan.
Masing-masingnya akan menjadi fungsi dari 10 buah input logic. Jadi akan
terdapat banyak fungsi boolean, dan masing-masingnya tidak sederhana. Pada cycle ini, sinyal kontrol tidak lagi
ditentukan dengan melihat pada bit-bit instruksinya. Bit-bit opcode memberitahukan operasi apa yang
selanjutnya akan dijalankan CPU;
2. bukan instruksi cycle
3. selanjutnya.
Macam-macam CLU :
1.
Single-Cycle CU
Proses di Single-Cycle CU ini hanya terjadi dalam
satu clock cycle, artinya setiap
instruksi ada pada satu cycle, maka
dari itu tidak memerlukan state.
Dengan demikian fungsi boolean masing-masing control line hanya merupakan fungsi dari opcode saja. Clock cycle
harus mempunyai panjang yang sama untuk setiap jenis instruksi. Ada dua bagian
pada unit kontrol ini, yaitu proses men-decode
opcode untuk mengelompokkannya menjadi 4 macam instruksi (yaitu di gerbang
AND), dan pemberian sinyal kontrol berdasarkan jenis instruksinya (yaitu
gerbang OR). Keempat jenis instruksi adalah “R-format” (berhubungan dengan
register), “lw” (membaca memori), “sw” (menulis ke memori), dan “beq” (branching). Sinyal kontrol yang
dihasilkan bergantung pada jenis instruksinya. Misalnya jika melibatkan memori
”R-format” atau ”lw” maka akan sinyal ”Regwrite”
akan aktif. Hal lain jika melibatkan memori “lw” atau “sw” maka akan diberi
sinyal kontrol ke ALU, yaitu “ALUSrc”. Desain single-cycle ini lebih dapat bekerja dengan baik dan benar tetapi cycle ini tidak efisien.
2. Multi-Cycle CU
Berbeda dengan
unit kontrol yang single-cycle, unit
kontrol yang multi-cycle lebih
memiliki banyak fungsi. Dengan memperhatikan state dan opcode, fungsi boolean dari masing-masing output control line dapat
ditentukan. Masing-masingnya akan menjadi fungsi dari 10 buah input logic. Jadi
akan terdapat banyak fungsi boolean, dan masing-masingnya tidak sederhana. Pada cycle ini, sinyal kontrol tidak lagi
ditentukan dengan melihat pada bit-bit instruksinya. Bit-bit opcode memberitahukan operasi apa yang
selanjutnya akan dijalankan CPU.
2.1 Struktur Register
Pengertian Register
Register merupakan sebagian memori dari mikroprosesor yang dapat diakses dengan kecepatan
yang sangat tinggi.Sebuah register
adalah sebuah tempat penampungan semantara untuk data-data yang akan diolah
oleh prosesor, dan dibentuk oleh 16 titik elektronis didalam chip mikroprosesor itu sendiri.dengan adanya
penampungan data sementara ini,proses pengolahan akan bisa dilakukan secara
cepat di bandingkan apabila data-data tersebut harus diambil langsung dari
lokasi-lokasi memori. Register adalah
sebagian kecil memori komputer yang dipakai untuk tempat penampungan data. Data
yang terdapat dalam register dapat diproses dalam berbagai operasi dengan
melihat berapa besar kemampuan register
tersebut (8 atau 16 bit).
Register yang di gunakan oleh mikroprosesor di bagi menjadi 4 bagian
dengan tugasnya yang berbeda-beda yaitu:
Segment Registers
Merupakan registers 16 bit yang berguna
mencatat alamat sebagaii penunjuk lokasi data di memory. Registers ini terdiri
dari 20 jalur alamat external tetapi memiliki 16 bit alamat internal.
Segmen register ini memiliki empat
bagian yaitu :
·
Register CS (Code Segment)
Code segmen berfungsi untuk mencatat
segmen dari kode program/ instruksi atau digunakan untuk menunjukkan tempat
dari segmen yang sedang aktif. Register CS berpasangan dengan register IP
(Instruction Pointer) dalam format CS:IP.
·
Register DS (Data Segment)
Data segmen biasanya digunakan untuk
menunjukkan tempat segmen dimana data-data disimpan atau Menyimpan alamat dari
segment dimana data terletak.
·
Register SS (Stack Segment)
Stack
segmen adalah berfungsi untuk menyimpan alamat dari segmen dimana data
terletak atau Menyimpan alamat segment
memori yang dipergunakan sebagai stack.
·
Register ES (Extra Segment)
Extra segmen adalah sesuai dengan namanya adalah suatu register bonus yang tidak yang menpunyai
suatu tugas khusus, yang berfungsi untuk menyimpan alamat tambahan: misalnya
alamat display, alamat sistem operasi, dan sebagainya.
Pointer dan
Index Register
Merupakan register yang digunakan sebagai penunjuk (pointer) terhadap suatu lokasi di memori. Register-register ini berukuran 16 bit.
·
Register SP (Stack Pointer, 16 bit)
Fungsi: Digunakan untuk operasi stack
seperti menyimpan alamat return saat memanggil subroutine. SP merupakan register yang secara implisit digunakan
oleh perintah PUSH dan POP yaitu menyimpan dan mengambil kembali dari stack.
·
Register BP (Base Pointer, 16 bit)
Fungsi: Sebagai penunjuk base dalam
stack yang disediakan untuk penyimpanan data. BP juga digunakan dalam
komunikasi dengan bahasa pemrograman misalnya Assembler dan C.
·
Register SI dan DI (Source Index dan Destination index, 16 bit)
Fungsi: Menyimpan nilai-nilai offset dalam segment data memori pada
saat bersangkutan.
General Purpose Register
Register 16 bit yang terdiri dari AX,
BX, CX dan DX. Sebagai pilihan lain dapat digunakan AH, BH, CH dan DH (bagian
tertinggi) yang masing-masing 8 bit dan juga bisa digunakan AL, BL, CL, dan DL
(bagian terendah) yang masing-masing 8 bit.
·
Accumulator Register AX
Fungsi: Sebagai akumulator dan
berhubungan dengan jenis-jenis operasi khusus seperti Aritmetika, In/Out, Shift, Logic, Rotate, dan
operasi desimal berkode biner.
·
Base Register BX
Fungsi: Sebagai register base untuk mereferensi alamat memori. Operasi yang dapat
dilakukan adalah Rotate, Logic, Shift, dan Aritmetika.
·
Counter Register CX
Fungsi: Sebagai pencacah implisit dengan instruksi tertentu,
misalnya terhadap perintah Loop dan operasi string. Counter naik jika direction flag
bernilai 0, dan counter turun jika direction flag bernilai 1.
·
Data Register DX
Fungsi: Menyimpan alamat port I/O selama
operasi I/O tertentu, baik alamat port 8 bit maupun 16 bit. Digunakan juga
dalam operasi perkalian dan pembagian.
Ø
Flag Registers
Merupakan register berukuran 1 bit yang menunjukkan kondisi dari suatu
keadaan (ya/tidak atau 0/1)
Ø
(Carry Flag)
Tugasnya: Dimana sebuah carry out atau borrow, jika hasilnya adalah bit tertinggi (nilai 1).
Ø
PF (Parity Flag)
Yaitu tugasnya Menset (nilai 1), jika
instruksi menghasilkan sebuah angka genap (even
parity).
Ø
AF (Auxiliary Flag)
Tugas: Digunakan oleh instruksi
pegaturan desimal.
Ø
ZF(Zero Flag)
Tugasnya: Menset (nilai 1), jika hasil
instruksi adalah 0.
Ø
SF (Sign Flag)
Tugasnya: Menset (nilai 1), jika
hasilnya adalah negatif dan bernilai 0 jika positif. Kontrol Flag terdiri dari:
Ø
OF (Overflow Flag)
Tugasnya: Menunjukkan sebuah operasi
yang tidak benar yaitu merubah hasil daripada tanda bit.
Ø
IF (Interrupt Enable Flag)
Tugasnya: Jika diset (nilai 1) dapat
melakukan operasi interupsi dan sebaliknya bila bernilai 0, maka interupsi
tidak dapat dilakukan.
Ø
DF (Direction Flag)
Tugasnya yaitu: Mengontrol arah dari
operasi string. Jika DF=1, maka register SI
dan DI nilainya menurun (decrement);
jika DF=0, maka register DI dan SI nilai menaik (increment). Register ini digunakan untuk instruksi-instruksi MOVS,
MOVSB, MOVSW, CMPS, CMPSB, dan CMPSW.
Ø
TF (Trap Flag)
Di gunakan terutama untuk Debugging,
dengan operasi step by step.
·
Flag A (auxiliary)
Digunakan untuk menyesuaikan nilai
AL pada penjumlahan atu pengurangan suatu bunary code desimal apkah terjadi carry atau borrow.
- ·
Flag C
(carry) bernilai 1 bila carry pada operasi penjumlahan
atau terjadi borrow pada operasi pengurangan.
- ·
Flag D
(direction) digunakan pada operasi string untuk menunjukkan orah
proses .
- ·
Flag I
(interrupt) bila bit bernilai 0 maka cpu akan mengabaikan interrupt
yang terjadi.
· Flag O (overlow) bernilai 1 bila
terjadi overlow pada operasi
aritmatika.
CPU Interconnection
CPU interconnection, adalah
sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu
ALU, unit kontrol dan register register dan juga dengan bus – bus eksternal
CPU yang menghubungkan dengan sistem lainnya, seperti memori utama,
piranti masukan/keluaran
ini merupakan contoh Struktur Detail Internal CPU.
ini merupakan contoh Struktur Detail Internal CPU.
Gambar.1.3
Struktur Detail Internal CPU
REFERENSI :
Tidak ada komentar:
Posting Komentar