20
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

Unit Kendali WORD.docx

Embed Size (px)

DESCRIPTION

komp

Citation preview

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