unit kendali word.docx
Post on 25-Oct-2015
135 Views
Preview:
DESCRIPTION
TRANSCRIPT
TUGAS
OPERASI UNIT KENDALI
DI SUSUN OLEH:KELOMPOK: 5
NAMA:
1. GURUH PAMUNGKAS
NIM : 11.12.036 ( TK 5F)
2. JOKO MARDIANTO
NIM :11.12.010 ( TK 5F)
DOSEN: ANTON FIRMANSYAH
AMIK BINA SRIWIJAYA PALEMBANG
Kata Pengantar
Assalamu’alaikum Wr.Wb.
Alhamdulillah puji dan syukur kehadiran Allah SWT yang telah memberikan
rahmadnya sehingga penulis dapat menyelesaikan tugas yang berjudul “ Operasi Unit
Kendali ” .
Makalah ini disusun untuk memenuhi salah satu Tugas Mata Kuliah Arsitektur
Komputer. Penulis menyadari bahwa dalam penulisan Makalah ini walaupun telah
diupayakan semaksimal mungkin dalam rangka penyajiannya tapi Makalah ini masih jauh
dari kesempurnaan, oleh karena itu kritik dan saran dari semua pihak yang bersifat
membangun sangat penulis nantikan.
Untuk itu penulis ingin mengucapkan terima kasih kepada Dosen Mata kuliah
Arsitektur Komputer dan semua pihak yang telah membantu dalam menyelesaikan Makalah
ini.
WalaikumSalam Wr,Wb
Palembang, 2013
Penulis
Unit Kendali
MIPS Data path
Unit Kendali (1)
Tujuan: mengendalikan semua aktifitas prosesor,
atau lebih tepatnya untuk mengendalikan semua
komponen seperti ALU, PC, Register, dll
Masukan: Operation Code (Opcode) = 6 bit
Keluaran (9 bit):
1. RegDst
2. Branch
3. MemRead
4. MemtoReg
5. ALUOp (2 bit)
6. MemWrite
7. ALUSrc
8. RegWrite
Unit Kendali (2)
RegDst Branch
MemRead
CONTROL MemToReg
Instruction (31-26) UNIT ALUOp
MemWrite
ALUSrc
Masukan/input instruksi bit 31-26 adalah kode operasi
Unit kendali akan menterjemahkan kode operasi dan
mengeluarkan 9 bit kendali yang mengendalikan jalannya
prosesor
Input Unit Kendali (1)
Instruksi 32 bit terdiri dari opcode dan operand:
6 bit di awal (dari MSB atau dari kiri) disebut opcode
26 bit berikutnya adalah operand
Contoh: ($ = register; s = source; t = target; d = destination)
Input Unit Kendali (2)
Operation Code (Opcode 6 bits) = jenis instruksi yang akan
dieksekusi
Misal instruksi add $t2, $s2, $t1
Artinya: jumlahkan data dalam register $s2 dan $t1 dan simpan
hasilnya ke dalam register $t2
Instruksi dalam biner:
6 bit 5 bit 5 bit 5 bit 5 bit 6 bit
bit ke: 31-26 25-21 20-16 15-11 10-6 5-0
000000 10010 01001 01010 00000 100000
|Opcode|<-----------------Operand ------------>|
000000 adalah kode operasi untuk aritmatika (R)
10010 adalah nomor $s2 = 18
01001 adalah nomor $t1 = 9
01010 adalah nomor $t2 = 10
00000 tidak digunakan dalam operasi aritmatika
100000 adalah kode fungsi operasi add
Output CU: RegDst
Tujuan: untuk mengendalikan multiplekser yang menentukan
nomor register yang akan ditulisi (Write Register)
Mux Input: bit instruksi 5 bit [20-16] atau [15-11]
Mux Output: 5 bit tergantung nilai RegDst
If RegDst = 0 then output = Instruction[20-16]
If RegDst = 1 then output = Instruction[15-11]
Output CU: Branch (1)
Tujuan: Bersama dengan zero flag dari ALU digunakan untuk
mengendalikan mux yang memilih sumber nilai PC
selanjutnya
If Zero flag=1 and Branch=1 then branch occur
If not (zero flag=1 and branch=1) then branch not occur
ALU
Output CU: Branch (2)
Jika branch tidak terjadi: (control branch = 0)
Output Mux berasal dari keluaran adder yang
menjumlahkan PC dengan 4 (desimal)
PC = PC + 4
Jika branch terjadi: (control branch = 1)
Output Mux berasal dari keluaran adder yang
menjumlahkan (PC+4) dengan hasil dari Shift
left 2
PC = (PC+4) + hasil dari Shift left 2
Output CU: MemRead (1)
Tujuan: Untuk mengaktifkan memori data agar
data dari memori data dapat dibaca
If MemRead=1 then Read Data Data
Memory[address]
Output CU: MemRead (2)
Memori bisa dibaca dan bisa ditulisi secara
bergantian
Pada saat memori dibaca, maka memori tidak
dapat ditulisi, demikian pula sebaliknya
MemRead mengendalikan pembacaan memori
Jika MemRead bernilai 1 maka isi memori
dapat dibaca melalui pin Read Data
Tujuan: Untuk mengendalikan mux yang menentukan asal
data yang akan ditulis ke dalam register apakah dari memori
data atau dari hasil ALU
If MemtoReg=0 then RegisterData Memory
If MemtoReg=1 then RegisterALUResult
Output CU: MemToReg (2)
Jalur kendali yang mengendalikan multiplexer
2 ke 1
Mux tersebut memilih salah satu input yang
berasal dari ALU atau dari memori
Jika MemToReg bernilai 1 maka data yang
menuju Register berasal dari ALU
Jika MemToReg bernilai 0 maka data yang
menuju Register berasal dari Memori
Output CU: ALUOp (1)
Tujuan: untuk memilih jenis operasi ALU yang
akan dilakukan yang ditentukan oleh nilai 6 bit
instruksi [5-0], sebagai fungsi dalam tipe R
Output CU: ALUOp (2)
AluOp adalah jalur kendali yang mengendalikan ALU control
ALU control menentukan jenis instruksi yang dikerjakan oleh
ALU
Input dari ALU control berasal dari 6 bit fungsi (Function
field) dari bit 0 – 5
Pada instruksi tipe-R jenis operasinya ditentukan oleh
keenam bit ini
Apa maksud dari “set on less than” ?
Output CU: MemWrite (1)
Tujuan: Untuk mengaktifkan memori data agar
dapat ditulisi dengan data yang berasal dari register
(Read Data 2)
If MemWrite=1 then DataMemory[ALUResult]Read
Data 2
Output CU: MemWrite (2)
MemWrite mengendalikan penulisan memori
Alamat memori yang akan ditulisi ditentukan
oleh hasil dari operasi ALU
Data yang dimasukkan ke dalam memori
berasal dari register (Read Data 2)
Output CU: ALUSrc
Tujuan: Untuk mengendalikan mux yang menentukan asal
data yang akan diolah oleh ALU apakah berasal dari register
(Read Data 2) atau dari SignExtend(Instruction[15-0])
If ALUSrc=0 then ALUInputRegister
If ALUSrc=1 then ALUInputSignExtend(Instruction[15-0])
Output CU: RegWrite
Tujuan: Untuk mengaktifkan register agar register dapat ditulisi
Data yang ditulisi bisa berasal dari memori atau dari hasil
operasi ALU
If RegWrite=1 then Register[writeRegister]Write Data
Instruksi-Instruksi MIPS
Instruksi
Instruksi disimpan dalam memori pada alamat
awal
Data disimpan di memori pada alamat akhir
Bagaimana mengeksekusi instruksi ?
Pada umumnya terdapat tiga tahap:
Fetch: Pengambilan
Decode: Penerjemahan
Execute: Eksekusi
Pada beberapa prosesor tahapannya bisa lebih
dari 3 tahap
Fetch (1)
Tujuan: untuk mengambil instruksi dari
memori instruksi ke register
Instruksi memiliki lebar 32 bit
Setiap 8 bit menggunakan 1 alamat memori,
sehingga satu instruksi menempati 4 alamat
Karena satu instruksi disimpan dalam 4
alamat maka PC akan ditambah nilainya
dengan 4 setiap kali selesai mengambil
instruksi
Fetch (2)
Fetch (3)
Misal instruksi add $t2, $s2, $t1
Bahasa mesin:
00000010 01001001 01010000 00100000
Disimpan dalam memori:
Address 0 00000010
Address 1 01001001
Address 2 01010000
Address 3 00100000
Fetch:
Instruction Register
00000010010010010101000000100000
PC PC+4 # untuk mengambil instruksi berikutnya
Decode (1)
RegDst Branch
MemRead
CONTROL MemToReg
Instruction (31-26) UNIT ALUOp
MemWrite
ALUSrc
Tujuan: untuk menterjemahkan kode operasi
(instruction[31-26]) dan menghasilkan 9 bit kontrol
(microinstruction)
Opcode: 6 bits awal instruksi yang terdapat dalam register
instruksi
Unit kendali mendefinisikan tipe instruksi dan membuat 9 bit
Kendali\
RegWrite
Decode (2)
Dalam unit kendali terdapat ROM yang
berguna untuk menterjemahkan instruksi
Kode operasi sebagai input akan diproses
sehingga dikeluarkan satu kombinasi jalur
kendali 9 bit
Nilai yang keluar dari unit kendali disebut
mikroinstruksi
Mikroinstruksi mengendalikan operasi pada
datapath
Execute
Tujuan: mengeksekusi instruksi
Instruksi dibagi menjadi tiga kelas:
R-type
Load/Store-type
Branch-type
Tipe R adalah tipe aritmetik
Tipe Load/Store melakukan pengaksesan memori baik
menyimpan maupun membaca
Tipe Branch digunakan untuk instruksi lompatan dan
pencabangan
Setting jalur kendali tergantung field opcode pada instruksi:
Instruksi Tipe-R (1)
0: opcode (6 bit = 000000)
rs: register source (5 bit) = Read register 1 = nomor register
yang digunakan untuk menaruh operand pertama
rt: register target (5 bit) = Read register 2 = nomor register
yang digunakan untuk menaruh operand kedua
rd: register destination (5 bit) = Write register = nomor
register yang digunakan untuk menaruh hasil dari ALU
shamt: tidak digunakan (5 bit = 00000)
funct: jenis fungsi yang akan dilakukan oleh ALU (6 bit) =
and, or, add, substract, dan set on less than
Instruksi Tipe-R (2)
Pada instruksi tipe R kode operasinya sama
yaitu 000000
Pembeda satu instruksi dengan instruksi yang
lain adalah pada 6 bit bagian bawah (LSB)
sebagai fungsi operasi aritmetik
Untuk melakukan operasi ALU sesuai dengan
instruksi digunakan control ALU dengan input
6 bit terbawah dari instruksi
Instruksi Tipe-R (3)
Instruksi Tipe-R (4)
Terdapat beberapa komponen yang terlibat
pada pengeksekusian tipe aritmatik:
Register
ALU
MUX
ALU control
Keempat komponen tersebut beroperasi
saling bebas
Instruksi Tipe-R (5)
Contoh operasi R-Type: add $t1,$t2,$t3
1. Ambil instruksi dari memori instruksi pada alamat yang
terdapat di dalamPC
2. Update isi PC dengan menambah 4
3. Baca isi dua register yaitu $t2 (Read register 1) dan $t3
(Read register 2) dari register file
4. Unit kendali menentukan setting baris kendali
5. ALU mengoperasikan data yang dibaca dari register file
menggunakan kode fungsi (yaitu bit 5 – 0 atau field
funct dari instruksi) untuk menghasilkan fungsi ALU
6. Hasil dari ALU dituliskan ke dalam register file
menggunakan bit 15-11 dari instruksi untuk memilih
register tujuan $t1 (Write register)
Instruksi Tipe-R (6)
Nilai tiga bit jalur kendali ALU
Input kendali ALU berasal dari 6 bit terbawah
instruksi
Kendali ALU dikendalikan oleh ALUOp
Instruksi Tipe-R (7)
Kendali operasi pada ALU ditentukan oleh
ALUOp dan field fungsi
Bagaimana bit kendali ALU diset tergantung
dari bit kendali ALUOp dan fungsi yang
berbeda untuk instruksi tipe-R
Instruksi Tipe-R (8)
Tabel kebenaran untuk tiga bit kendali ALU
Pada saat ALUOp bernilai 00 (LW dan SW) atau X1
(branch), maka field fungsi tidak digunakan
Pada saat ALUOp bernilai 1X (R-type), maka field
fungsi digunakan untuk menentukan operasi yang
akan dilakukan oleh ALU
Referensi
Hennessy, John L. dan Patterson, David A. 2005.
“Computer Organization and Design: The
Hardware/Software Interface”. 3rd edition. Morgan
Kaufmann publisher Inc. San Fransisco. USA
http://chortle.ccsu.edu/AssemblyTutorial/ Chapter-01/
Micro-programmed Control(Kontrol Termikroprogram)
Perancangan Cont rol UNit
Rancangan hardwired sejumlah gerbang (gate), counter dan register saling dihubungkan untuk
menghasilkan sinyal-sinyal kontrol. Tiap rancangan memerlukan sekelompok piranti logika dan
hubungan yang berbeda-beda Rancangan microprogrammed dibentuk serangkaian instruksi mikro,
yang disebut sebagai program mikro (micro-program) untuk setiap instruksi mikro dan disimpan
dalam sebuah memori kontrol (biasanya ROM) dalam Control Unit. Istilah micro-program pertama kali
muncul pada tahun 1950 dan diperkenalkan oleh M. V. Wilkes Pada hard-wired diperlukan
perancangan ulang perangkat keras jika serangkaian instruksi dikembangkan Sebaliknya, pada
micro-programmed, serangkaian instruksi mikro (program-mikro) disimpan dalam ROM sehingga
sebuah instruksi dapat diubah dengan mengubah program mikro yang bersesuaian dengan instruksi
tersebut dan kelompok instruksi dapat dikembangkan dengan hanya menyertakan ROM tambahan
yang berisi program-mikro bersesuaian.
Micro-programmed Cont rol
Menggunakan sekumpulan instruksi untuk mengontrol operasi yang kompleks Rangkaian instruksi
tersebut disebut dengan micro-programming atau firmware
Microprogrammable Cont rol Unit
Suatu control unit dapat dikatakan microprogrammable apabila memori kontrolnya dapat dimodifikasi
oleh pemakai untuk menghasilkan instruksi makro yang dibentuk sesuai keinginan pemakai. Apabila
tidak, kelompok instruksi tetap, maka disebut kelompok instruksi dalam control unit hard-wired
KOMPONEN-KOMPONEN POKOK CONTROL UNIT
MICROPROGRAMMED
1. Instruction Register
Menyimpan instruksi register mesin yang dijalankan.
2. Control Store berisi microprogrammed
Untuk semua instruksi mesin.
Untuk startup mesin.
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.
Implementat ion
Seluruh unit kontrol dapat membangkitkan sekumpulan sinyal kontrol.
Tiap saluran kontrol tersebut dalam keadaan on atau off
Kondisi tersebut direpresentasikan oleh digit biner untuk masing-masing saluran kontrolnya.
Terdapat control word untuk setiap operasi mikro.
Memiliki sejumlah control words untuk tiap instruksi mesin Menambahkan field alamat untuk
menjelaskan micro-instruction selanjutnya, untuk menspesifikasikan kondisi
Micro-inst ruct ion Types
Each micro-instruction specifies single microoperations
to be performed
- (vertical micro-programming)
Each micro-instruction specifies many different
micro-operations to be performed in parallel
- (horizontal micro-programming)
- Terdapat satu bit bagi setiap saluran kontrol CPU
internal dan satu bit bagi setiap saluran kontrol bus
sistem
Typical Microinst ruct ion Formats
Cont rol Unit Funct ion
Untuk mengeksekusi suatu instruksi, unit urutan logika mengeluarkan perintah READ ke
memori kontrol
Word yang memiliki alamat yang dispesifikasikan pada register alamat kontrol dibaca ke
dalam register buffer kontrol.
Isi register buffer kontrol menghasilkan sinyal-sinyal kontrol dan informasi alamat berikutnya
untuk unit urutan logika.
Unit logika pengurutan memuatkan sebuah alamat ke dalam register alamat kontrol yang
didasarkan pada informasi alamat berikutnya dari register buffer kontrol dan flag ALU.
Next Address Decision
Tergantung dari flag ALU dan register buffer
Control
- Get next instruction
menambahkan 1 ke register alamat kontrol
- Jump to new routine based on jump microinstruction
Memuatkan field alamat register buffer kontrol ke dalam register alamat kontrol
- Jump to machine instruction routine
Memuatkan register alamat kontrol ke opcode di dalam IR
Advantages and Disadvantages of Microprogramming
Dapat menyederhanakan rancangan unit kontrol
- Rancangan menjadi lebih murah
- Kesalahan yang terjadi lebih sedikit
Slower
Tasks Done By Microprogrammed
Control Unit
- Pengurutan instruksi mikro mengambil instruksi-instruksi mikro berikutnya dari unit kontrol
- Eksekusi instruksi mikro Menghasilkan sinyal-sinyal kontrol yang diperlukan untuk
mengeksekusi instruksi mikro
- Keduanya sama-sama dipertimbangkan dalam merancang sebuah unit kontrol karena akan
mempengaruhi format instruksi mikro dan pewaktuan unit kontrol.
Pert imbangan Perancangan
Ukuran instruksi mikro
- Peminimalan ukuran memori kontrol akan mengurangi biaya yang diperlukan u/ komponen
tersebut
Waktu yang diperlukan untuk pembuatan alamat
(address generation time)
- Ditentukan oleh instruction register
- Terjadi sekali per siklus instruksi, setelah sebuah instruksi diambil.
Next sequential address
- Common in most designed
Branches
- Baik yang bersyarat conditional maupun tidak bersyarat (unconditional)
Teknik Pengurutan
Berdasar instruksi mikro saat itu, flag-flag kondisi, isi IR, alamat memori kontrol harus dibuat untuk
keperluan instuksi mikro berikutnya.
Berdasar pada format informasi alamat yang terdapat di dalam instruksi mikro
- Dua field alamat
- Field alamat tunggal
- Format variabel
Execut ion
The cycle is the basic event
Each cycle is made up of two events
Fetch
Determined by generation of microinstruction address
Execute
Execute
Effect is to generate control signals
Some control points internal to processor
Rest go to external control bus or other interface
top related