11/26/2014
PART 3: THE CENTRAL PROCESSING UNIT
ARSITEKTUR DAN ORGANISASI KOMPUTER
CHAPTER 12: PROCESSOR STRUCTURE AND FUNCTION
PRIO HANDOKO, S.KOM., M.T.I.
CHAPTER 12: PROCESSOR STRUCTURE AND FUNCTION
12.1 Processor Organization
Kompetensi Dasar
•
Mahasiswa memiliki pengetahuan mengenai fungsi dan struktur CPU
• •
Agenda • • • •
Processor Organization Register Organization Instruction Cycle Instruction Pipelining
• • Arsitektur dan Organisasi Komputer
3
Fetch instructions: Prosesor membaca sebuah instruksi dari memori (register, cache, main memory) Interpret instructions: Instruksi di decode untuk menentukan action yang diperlukan Fetch data: Pengeksekusian sebuah instruksi bisa memerlukan pembacaan data dari memori atau I/O module Process data: Pengeksekusian sebuah instruksi (operasi ALU) Write data: Hasil eksekusi bisa memerlukan penulisan data ke memory atau I/O Module Arsitektur dan Organisasi Komputer
4
1
11/26/2014
12.1 Processor Organization (cont…)
The CPU with the System Bus
Internal Structure of the CPU
12.1 Processor Organization (cont…)
Arsitektur dan Organisasi Komputer
5
Arsitektur dan Organisasi Komputer
12.2 Register Organization
12.2 Register Organization (cont…)
Register dalam prosesor memiliki 2 peran: 1. User-visible register
User-visible Register Dikelompokkan menjadi:
Register yang dapat direferensi menggunakan bahasa mesin/rakitan/assembler (machine language)
1. 2. 3. 4.
2. Control and Status Register: Register yang digunakan oleh control unit untuk mengendalikan operasi pengolahan prosesor Arsitektur dan Organisasi Komputer
6
7
General Purpose Register Data Register Address Register Condition Codes Register
Arsitektur dan Organisasi Komputer
8
2
11/26/2014
12.2 Register Organization (cont…)
12.2 Register Organization (cont…) •
1. General Purpose Register • • •
Bisa digunakan sebagai operand untuk setiap instruksi (true general purpose) Hanya beberapa yang bisa digunakan sebagai operand pada instruksi tertentu (restricted) Pada beberapa kasus bisa digunakan untuk addressing function (register indirect, displacement)
Arsitektur dan Organisasi Komputer
Bisa digunakan untuk menyimpan data atau address. • •
•
Make them general purpose • •
•
Fleksibilitas tinggi dan keleluasan pemrograman Instruksi lebih panjang (lebih rumit)
Make them specialized • •
9
Data: Accumulator Addressing: Segment
Instruksi lebih pendek (kinerja lebih baik) Kurang fleksibel Arsitektur dan Organisasi Komputer
12.2 Register Organization (cont…)
12.2 Register Organization (cont…)
2. Data Register
4. Condition Codes Register
• • • •
Jumlah register sekitar 8 – 23 Banyaknya register berpengaruh pada rancangan set instruksi Lebih banyak register, maka semakin banyak juga bit operand-nya Semakin sedikit register, maka memori utama akan lebih sering direferensi
Arsitektur dan Organisasi Komputer
• • • •
11
10
Register yang menampung condition codes (flags). Condition codes berupa bit yang yang diset oleh perangkat keras prosesor sebagai hasil dari suatu operasi. Dapat dibaca oleh program. Tidak dapat diset oleh program.
Arsitektur dan Organisasi Komputer
12
3
11/26/2014
12.2 Register Organization (cont…)
12.2 Register Organization (cont…)
Control and Status Register
•
• Terdapat 4 register yang umumnya digunakan untuk eksekusi instruksi: 1. 2. 3. 4.
• • • • • • •
Program Counter (PC) Instruction Register (IR) Memory Address Register (MAR) Memory Buffer Register (MBR)
Arsitektur dan Organisasi Komputer
Status register: register yang menampung condition code pengolahan yang disebut dengan program status word (PSW), terdiri dari: Sign (hasil akhir dari operasi ALU) Zero (diset jika hasil akhir operasi ALU = 0) Carry Equal Overflow Interrupt enable/disable Supervisor (supervisor atau user mode)
13
Arsitektur dan Organisasi Komputer
12.3 Instruction Cycle
12.3 Instruction Cycle (cont…)
• Terdiri dari 3 tahapan:
Indirect Cycle
1. Fetch 2. Execute 3. Interrupt
• •
• Terdapat 1 tambahan tahapan siklus instruksi yang dikenal dengan nama indirect cycle
• •
Arsitektur dan Organisasi Komputer
15
14
Eksekusi instruksi mungkin membutuhkan lebih dari satu operand, Setiap kali operand dibutuhkan, maka hal ini akan membutuhkan akses ke memori, Setiap kali melakukan akses ke memori, maka indirect address dilakukan, dan Setiap kali indirect address dilakukan, maka dibutuhkan tambahan akses ke memori. Arsitektur dan Organisasi Komputer
16
4
11/26/2014
12.3 Instruction Cycle (cont…)
12.3 Instruction Cycle (cont…) The instruction cycle (with) indirect cycle
The instruction cycle (with) indirect cycle
Arsitektur dan Organisasi Komputer
17
12.3 Instruction Cycle (cont…)
Arsitektur dan Organisasi Komputer
18
12.3 Instruction Cycle (cont…)
Fetch Diaram
Indirect Diaram
Data Flow (instruction Fetch)
Arsitektur dan Organisasi Komputer
19
Arsitektur dan Organisasi Komputer
20
5
11/26/2014
12.3 Instruction Cycle (cont…)
12.3 Instruction Cycle (cont…) Instruction Prefetch
Interrupt Diaram
• Pengambilan instruksi selanjutnya ketika prosesor tengah melakukan eksekusi intruksi • Mengapa hal ini dapat dilakukan? Karena, ketika prosesor melakukan eksekusi, prosesor tidak mengakses memori Arsitektur dan Organisasi Komputer
21
12.4 Pipelining
Arsitektur dan Organisasi Komputer
22
12.4 Pipelining (cont…) Common instruction stage
• Instruksi pipeline serupa dengan penggunaan assembly line pada pabrikpabrik perakitan • Contoh assembly line? • Pipeline, input baru diterima di salah satu ujung sebelum input yang diterima sebelumnya muncul sebagai output diujung lainnya. Arsitektur dan Organisasi Komputer
Pipelining instruction stage
23
Arsitektur dan Organisasi Komputer
24
6
11/26/2014
12.4 Pipelining (cont…) •
•
•
12.4 Pipelining (cont…)
Waktu eksekusi pada umumnya lebih lama dari waktu fetch, sehingga tahapan fetch menunggu untuk beberapa waktu untuk mengosongkan buffer. Conditional branch instruction akan membuat instruksi berikutnya yang akan diambil tidak jelas, jadi tahapan fetch harus menunggu sampai alamat instruksi dari tahapan eksekusi . Tahapan eksekusi harus menunggu ketika instruksi selanjutnya tengah di-fetch Arsitektur dan Organisasi Komputer
• •
Hal ini akan meningkatkan kecepatan (speed up) pengolahan Speed up dapat ditingkatkan dengan menambahkan lagi beberapa tahapan (stage): • • • • • •
Fetch instruction (FI) Decode instruction (DI) Calculate operands (CO) Fetch operands (FO) Execute instructions (EI) Write operand (WO)
25
Arsitektur dan Organisasi Komputer
Nonpipeline
26
Pipeline operation
operation
12.4 Pipelining (cont…)
12.4 Pipelining (cont…)
• Berapakah waktu yang dibutuhkan untuk menyelesaikan 9 instruksi pengolahan, jika setiap instruksi, diselesaikan dalam 6 stage dan setiap stage berdurasi 1 unit waktu? Jawab: 1 instruksi x 6 stage x 1ms = 6 unit waktu 9 instruksi x 6 stage x 1ms = 54 unit waktu
• Berapakah waktu yang dibutuhkan untuk menyelesaikan 9 instruksi pengolahan, jika setiap instruksi, diselesaikan dalam 6 stage dan setiap stage berdurasi 1 unit waktu? Jawab: 14 unit waktu
Arsitektur dan Organisasi Komputer
27
Arsitektur dan Organisasi Komputer
28
7
11/26/2014
Timing Diagram for Instruction Pipeline Operation
12.4 Pipelining (cont…) • Faktor penghambat pipelining: 1. Jika ke-6 stage memerlukan durasi yang berbeda, maka yang lebih cepat harus menunggu. 2. Adanya conditional branch instruction.
Arsitektur dan Organisasi Komputer
29
Arsitektur dan Organisasi Komputer
The Effect of a Conditional Branch on Instruction Pipeline Operation
Six-Stage CPU Instruction Pipeline
•
•
Arsitektur dan Organisasi Komputer
30
31
Pengecekan ada atau tidaknya conditional branch selalu dilakukan setelah stage CO dilakukan Pada saat ini prosesor belum mengetahui instruksi apa yang akan di-fetch hingga instruksi dieksekusi
Arsitektur dan Organisasi Komputer
32
8
11/26/2014
An Alternative Pipeline Depiction
12.4 Pipelining (cont…) Dealing with Branches • Berbagai pendekatan untuk menangani Branch • • • • •
Arsitektur dan Organisasi Komputer
Multiple Streams Prefetch Branch Target Loop buffer Branch prediction Delayed branching
33
Arsitektur dan Organisasi Komputer
12.4 Pipelining (cont…)
12.4 Pipelining (cont…)
Multiple Streams
• Masalah dengan pendekatan ini: •
• Kedua instruksi percabangan (branch) diambil dengan dua buah stream • Prefetch setiap branch kedalam pipeline yang terpisah • Menggunakan pipeline yang sesuai
Arsitektur dan Organisasi Komputer
•
35
34
Akan terjadi perebutan dan delay untuk akses register dan memori Instruksi branch tambahan bisa masuk lagi sebelum instruksi branch utama diselesaikan, sehingga tidak mampu ditangani oleh sistem.
Arsitektur dan Organisasi Komputer
36
9
11/26/2014
12.4 Pipelining (cont…)
12.4 Pipelining (cont…)
Loop Buffer
Branch Prediction
•
•
Menggunakan very fast memory Very good for small loops or jumps
Arsitektur dan Organisasi Komputer
37
12.4 Pipelining (cont…) •
•
•
•
Assume that jump will not happen Always fetch next instruction
•
Prosesor berasumsi jump akan dilaksanakan pada instruksi dengan opcode terterntu saja. Can get up to 75% success
Taken/Not taken switch • •
Assume that jump will happen Always fetch target instruction Berdasarkan studi lebih dari 50% branch dilaksanakan As soon as the branch is decoded and the target address is computed, we assume the branch to be taken and begin fetching and executing at the target address. Arsitektur dan Organisasi Komputer
Predict by Opcode •
Predict always taken • • • •
38
12.4 Pipelining (cont…)
Berbagai teknik digunakan untuk memprediksi apakah suatu branch akan diambil antara lain: • Predict never taken • •
Arsitektur dan Organisasi Komputer
Based on previous history Good for loops
• Branch History Table •
39
Menyimpan history instruksi-instruksi branch yang baru saja dieksekusi
Arsitektur dan Organisasi Komputer
40
10
11/26/2014
Branch Prediction State Diagram
Branch Prediction Flowchart
Arsitektur dan Organisasi Komputer
41
Arsitektur dan Organisasi Komputer
12.4 Pipelining (cont…) – Contoh Soal
12.4 Pipelining (cont…) – Contoh Soal
Diketahui prosesor tanpa pipeline dengan 6 tahapan eksekusi instruksi masing-masing memerlukan waktu sebagai berikut: 50 ns, 50 ns, 60 ns, 60 ns, 50 ns, dan 50 ns.
Menyambung soal di atas, jika prosesor menggunakan pipeline dimana memerlukan waktu tambahan (overhead) untuk pindah dari satu stage ke stage yang lainnya. Hitung waktu yang diperlukan untuk menjalankan 100 instruksi!
Hitung: a) Instruction latency b) Total waktu untuk mengeksekusi 100 instruksi
Jawab:
The length of pipelined stage = MAX(lengths of unpipelined stages) + overhead 60 + 5 = 65 ns Instruction latency = 65 ns Time to execute 100 instructions = 65x6 + 65x99 = 390 + 6.435 = 6.825 ns
Jawab: a) (50+50+60+60+50+50) ns = 320 ns b) 100 instruksi * 320 ns = 32.000 ns Arsitektur dan Organisasi Komputer
42
43
Arsitektur dan Organisasi Komputer
44
11
11/26/2014
12.4 Pipelining (cont…) – Contoh Soal
12.4 Pipelining (cont…) – Contoh Soal
Dari kedua soal diatas hitung speed up-nya! Jawab: Average instruction time not pipelined = 320 ns Average instruction time pipelined = 65 ns Speedup = 320 ns/ 65 ns = 4.92 ns
Arsitektur dan Organisasi Komputer
Bagaimana dengan pipelining pada operasi aritmatika?
45
Arsitektur dan Organisasi Komputer
46
PART 3: THE CENTRAL PROCESSING UNIT CHAPTER 12: PROCESSING STRUCTURE AND FUNCTION
- THANK YOU -
12