arsitektur dan organisasi komputer -...

of 12 /12
11/26/2014 1 ARSITEKTUR DAN ORGANISASI KOMPUTER PRIO HANDOKO, S.KOM., M.T.I. PART 3: THE CENTRAL PROCESSING UNIT CHAPTER 12: PROCESSOR STRUCTURE AND FUNCTION Kompetensi Dasar Arsitektur dan Organisasi Komputer 3 CHAPTER 12: PROCESSOR STRUCTURE AND FUNCTION Mahasiswa memiliki pengetahuan mengenai fungsi dan struktur CPU Agenda Processor Organization Register Organization Instruction Cycle Instruction Pipelining 12.1 Processor Organization 4 Arsitektur dan Organisasi Komputer 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

Author: lyque

Post on 02-Jul-2018

268 views

Category:

Documents


1 download

Embed Size (px)

TRANSCRIPT

  • 11/26/2014

    1

    ARSITEKTUR DAN ORGANISASI KOMPUTER

    PRIO HANDOKO, S.KOM., M.T.I.

    PART 3: THE CENTRAL PROCESSING UNIT

    CHAPTER 12: PROCESSOR STRUCTURE AND FUNCTION

    Kompetensi Dasar

    Arsitektur dan Organisasi Komputer 3

    CHAPTER 12: PROCESSOR STRUCTURE AND FUNCTION

    Mahasiswa memiliki pengetahuan mengenai fungsi dan struktur CPU

    Agenda Processor Organization

    Register Organization

    Instruction Cycle

    Instruction Pipelining

    12.1 Processor Organization

    4 Arsitektur dan Organisasi Komputer

    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

  • 11/26/2014

    2

    12.1 Processor Organization (cont)

    5 Arsitektur dan Organisasi Komputer

    The

    CP

    U w

    ith

    th

    e S

    yst

    em

    Bu

    s

    12.1 Processor Organization (cont)

    6 Arsitektur dan Organisasi Komputer

    Inte

    rna

    l Str

    uc

    ture

    of

    the

    CP

    U

    12.2 Register Organization

    7 Arsitektur dan Organisasi Komputer

    Register dalam prosesor memiliki 2 peran:

    1. User-visible register

    Register yang dapat direferensi menggunakan bahasa mesin/rakitan/assembler (machine language)

    2. Control and Status Register:

    Register yang digunakan oleh control unit untuk mengendalikan operasi pengolahan prosesor

    12.2 Register Organization (cont)

    8 Arsitektur dan Organisasi Komputer

    User-visible Register

    Dikelompokkan menjadi:

    1. General Purpose Register

    2. Data Register

    3. Address Register

    4. Condition Codes Register

  • 11/26/2014

    3

    12.2 Register Organization (cont)

    9 Arsitektur dan Organisasi Komputer

    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)

    12.2 Register Organization (cont)

    10 Arsitektur dan Organisasi Komputer

    Bisa digunakan untuk menyimpan data atau address. Data: Accumulator

    Addressing: Segment

    Make them general purpose Fleksibilitas tinggi dan keleluasan pemrograman

    Instruksi lebih panjang (lebih rumit)

    Make them specialized Instruksi lebih pendek (kinerja lebih baik)

    Kurang fleksibel

    12.2 Register Organization (cont)

    11 Arsitektur dan Organisasi Komputer

    2. Data 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

    12.2 Register Organization (cont)

    12 Arsitektur dan Organisasi Komputer

    4. Condition Codes Register 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.

  • 11/26/2014

    4

    12.2 Register Organization (cont)

    13 Arsitektur dan Organisasi Komputer

    Control and Status Register

    Terdapat 4 register yang umumnya

    digunakan untuk eksekusi instruksi:

    1. Program Counter (PC)

    2. Instruction Register (IR)

    3. Memory Address Register (MAR)

    4. Memory Buffer Register (MBR)

    12.2 Register Organization (cont)

    14 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)

    12.3 Instruction Cycle

    15 Arsitektur dan Organisasi Komputer

    Terdiri dari 3 tahapan: 1. Fetch 2. Execute 3. Interrupt

    Terdapat 1 tambahan tahapan siklus instruksi yang dikenal dengan nama

    indirect cycle

    12.3 Instruction Cycle (cont)

    16 Arsitektur dan Organisasi Komputer

    Indirect Cycle 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.

  • 11/26/2014

    5

    12.3 Instruction Cycle (cont)

    17 Arsitektur dan Organisasi Komputer

    The instruction cycle (with) indirect cycle

    12.3 Instruction Cycle (cont)

    18 Arsitektur dan Organisasi Komputer

    The instruction cycle (with) indirect cycle

    12.3 Instruction Cycle (cont)

    19 Arsitektur dan Organisasi Komputer

    Data Flow (instruction Fetch)

    Fetc

    h D

    iara

    m

    12.3 Instruction Cycle (cont)

    20 Arsitektur dan Organisasi Komputer

    Ind

    ire

    ct

    Dia

    ram

  • 11/26/2014

    6

    12.3 Instruction Cycle (cont)

    21 Arsitektur dan Organisasi Komputer

    Inte

    rru

    pt

    Dia

    ram

    12.3 Instruction Cycle (cont)

    22 Arsitektur dan Organisasi Komputer

    Instruction Prefetch

    Pengambilan instruksi selanjutnya ketika

    prosesor tengah melakukan eksekusi intruksi

    Mengapa hal ini dapat dilakukan?

    Karena, ketika prosesor melakukan eksekusi, prosesor tidak mengakses memori

    12.4 Pipelining

    23 Arsitektur dan Organisasi Komputer

    Instruksi pipeline serupa dengan

    penggunaan assembly line pada pabrik-pabrik perakitan

    Contoh assembly line?

    Pipeline, input baru diterima di salah satu ujung sebelum input yang diterima sebelumnya muncul sebagai output

    diujung lainnya.

    12.4 Pipelining (cont)

    24 Arsitektur dan Organisasi Komputer

    Common instruction stage

    Pipelining instruction stage

  • 11/26/2014

    7

    12.4 Pipelining (cont)

    25 Arsitektur dan Organisasi Komputer

    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

    12.4 Pipelining (cont)

    26 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)

    12.4 Pipelining (cont)

    27 Arsitektur dan Organisasi Komputer

    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

    Non-

    pipeline operation

    12.4 Pipelining (cont)

    28 Arsitektur dan Organisasi Komputer

    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

    Pipeline operation

  • 11/26/2014

    8

    29 Arsitektur dan Organisasi Komputer

    Timing Diagram for Instruction Pipeline Operation

    12.4 Pipelining (cont)

    30 Arsitektur dan Organisasi Komputer

    Faktor penghambat pipelining:

    1. Jika ke-6 stage memerlukan durasi yang berbeda, maka yang lebih cepat harus menunggu.

    2. Adanya conditional branch instruction.

    31 Arsitektur dan Organisasi Komputer

    The Effect of a Conditional Branch on Instruction Pipeline Operation

    32 Arsitektur dan Organisasi Komputer

    Six-Stage CPU Instruction Pipeline

    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

  • 11/26/2014

    9

    33 Arsitektur dan Organisasi Komputer

    An Alternative Pipeline Depiction

    12.4 Pipelining (cont)

    34 Arsitektur dan Organisasi Komputer

    Dealing with Branches

    Berbagai pendekatan untuk menangani Branch Multiple Streams

    Prefetch Branch Target

    Loop buffer

    Branch prediction

    Delayed branching

    12.4 Pipelining (cont)

    35 Arsitektur dan Organisasi Komputer

    Multiple Streams

    Kedua instruksi percabangan (branch) diambil dengan dua buah stream

    Prefetch setiap branch kedalam pipeline yang terpisah

    Menggunakan pipeline yang sesuai

    12.4 Pipelining (cont)

    36 Arsitektur dan Organisasi Komputer

    Masalah dengan pendekatan ini: 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.

  • 11/26/2014

    10

    12.4 Pipelining (cont)

    37 Arsitektur dan Organisasi Komputer

    Loop Buffer Menggunakan

    very fast memory

    Very good for small loops or jumps

    12.4 Pipelining (cont)

    38 Arsitektur dan Organisasi Komputer

    Branch Prediction

    12.4 Pipelining (cont)

    39 Arsitektur dan Organisasi Komputer

    Berbagai teknik digunakan untuk memprediksi apakah suatu branch akan diambil antara lain:

    Predict never taken Assume that jump will not happen

    Always fetch next instruction

    Predict always taken 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.

    12.4 Pipelining (cont)

    40 Arsitektur dan Organisasi Komputer

    Predict by Opcode Prosesor berasumsi jump akan dilaksanakan pada instruksi

    dengan opcode terterntu saja.

    Can get up to 75% success

    Taken/Not taken switch Based on previous history

    Good for loops

    Branch History Table Menyimpan history instruksi-instruksi branch

    yang baru saja dieksekusi

  • 11/26/2014

    11

    41 Arsitektur dan Organisasi Komputer

    Branch Prediction Flowchart

    42 Arsitektur dan Organisasi Komputer

    Branch Prediction State Diagram

    43 Arsitektur dan Organisasi Komputer

    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.

    Hitung: a) Instruction latency b) Total waktu untuk mengeksekusi 100 instruksi

    Jawab: a) (50+50+60+60+50+50) ns = 320 ns b) 100 instruksi * 320 ns = 32.000 ns

    12.4 Pipelining (cont) Contoh Soal

    44 Arsitektur dan Organisasi Komputer

    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!

    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

    12.4 Pipelining (cont) Contoh Soal

  • 11/26/2014

    12

    45 Arsitektur dan Organisasi Komputer

    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

    12.4 Pipelining (cont) Contoh Soal

    46 Arsitektur dan Organisasi Komputer

    Bagaimana dengan pipelining pada operasi aritmatika?

    12.4 Pipelining (cont) Contoh Soal

    - THANK YOU -

    PART 3: THE CENTRAL PROCESSING UNIT

    CHAPTER 12: PROCESSING STRUCTURE AND FUNCTION