CPU must:
- Fetch Instructions
- Interpret instructions
- Fetch Data
- Process Data
- Write Data
CPU must have working space -> called Registers
Registers? -> tempat utk memproses
Program yang ada di memori dikerjakan di CPU (register)
Register menyimpan alamat instruksi yang diambil, IR, serta tempat utk mengerjakan.
Jumlah register bervariasi tergantung desain prosesor
Register dikelompokkan menjadi:
1. General Purpose Registers: biasa dipake utk menjumlahkan, memproses
2. Data: menyimpan angka, data, alamat
3. Address
4. Condition Codes
*) General Purpose Register
-> bs dipake utk nyimpan data/alamat (data: accumulator, alamat: segmen)
-> ada brp bnyk? jmlhnya sekitar 8-32 register
-> brp bsr? large enough to hold full address, full word
*) Condition Code Register
-> dia akan tau apa yg lg dia kerjakan (apakah hasilnya 0, ada carry, positif/negatif)
-> program akan loncat dgn kondisi tertentu, misal jika hasilnya 0
*) Control and Status Registers
-> Program Counter
-> Instruction Decoding Register
-> Memory Address Register
-> Memory Buffer Register
*) Contoh Program Register:
Program Status: utk melihat apa yang dikerjakan (status didlm proses)
Status Register: utk melihat hasil perhitungan
Maksudnya:
- Jika yang diitung hasilnya 0, maka zero register bernilai 1 (nandain kalo hasilnya 0)
- Jika yang diitung melebihi kemampuannya maka overflow bernilai 1
Ada bnyk program status, antara lain:
-> Carry
-> Sign of Last Result
-> Zero
-> Overflow
-> Equal
-> Interrupt enable/disable
-> Supervisor
SUPERVISOR = komputer dapat dipakai utk user sendiri, bisa jg dipakai utk mensupervisi kerjaan org lain jika komputer tersebut sebagai server.
PIPELINING
Instruksi diambil, dieksekusi
Dikerjakan 1-1 per instruksi
Bila ada 1MB instruksi maka akan diambil 1000x
Komputer yg bagus adlh komputer yg bisa kerja cepat. Biar bs kerja cepat komputer punya bbrp cara:
- Bit
- Kerja Parallel -> lbh cepat
Untuk kerja parallel/pipeline ada 3 syarat yg harus dipenuhi.
Pipeline Hazard = situasi dimana yg membuat instruksi selanjutnya tdk dpt dilaksanakan padahal sudah waktunya jatuh tempo pada siklus waktunya
3 Jenis Pipeline Hazard:
1. Structural Hazard, agar dpt melakukan kerja paralel harus ada unit / hardware tersendiri". Contohnya ada unit utk ambil, ada utk terjemahkan dan ada utk eksekusi.
Cth: di cache memory terbagi jd 2 yaitu instruction cache dan data cache
2. Data Hazards, yaitu komputer tdk bs kerja paralel apabila ada data/ instruksi yang saling berketergantungan.
Cara mengatasi: operand forwarding, yaitu setelah selesai dihitung, disimpan, pada saat yang sama diberikan juga (forward) ke instruksi lainnya
3. Control/ Instruction Hazard: instruksi tdk dpt dikerjakan secara parallel kalau ada program yang bercabang.
Cara mengatasi: Branch Prediction -> cthnya begitu dia tau bkl loncat ke alamat 15, alamatnya udh disiapin jg
Dalam kerja parallel, ada 2 macam:
- Superscalar
- Superpipelined
Bedanya?
- Superpipeline: pd 1 saat mengerjakan pekerjaan lbh dari 1 utk pekerjaan yg harus berbeda
- Superscalar: mengerjakan pekerjaan yang sama lebih dari 1, karena punya unit yang berbeda
Six Stage Instruction Pipeline:
1 comments:
Nas materi TBA upload dong:"
Post a Comment