Perangkat Keras untuk Aritmetika, CPU

dokumen-dokumen yang mirip
PENDAHULUAN PULSE TRAIN. GATES ELEMEN LOGIKA

BAB VIII REGISTER DAN COUNTER

LAB #4 RANGKAIAN LOGIKA SEKUENSIAL

adalah frekuensi detak masukan mula-mula, sehingga membentuk rangkaian

LAPORAN PENDAHULUAN PRAKTIKUM SISTEM DIGITAL MODUL II RANGKAIAN SEQUENTIAL

DASAR-DASAR RANGKAIAN SEKUENSIAL 2

Meningkatkan Kinerja dengan Pipelining

PERCOBAAN 4 FLIP-FLOP 2

BAB II Sintesis Rangkaian Sekuensial Pulse Mode

Arsitektur Set Instruksi. Abdul Syukur

PERTEMUAN 10 RANGKAIAN SEKUENSIAL

Arsitektur Prosesor MIPS Multi Siklus (Pertemuan ke-27)

PERTEMUAN 10 RANGKAIAN SEKUENSIAL

Finite State Machine (FSM)

Bab 2. Instructions: Bahasa dari Komputer

Hanif Fakhrurroja, MT

DCH1B3 Konfigurasi Perangkat Keras Komputer

Kuliah#11 TKC-205 Sistem Digital. Eko Didik Widianto. 11 Maret 2017

Kuliah#9 TKC205 Sistem Digital - TA 2013/2014. Eko Didik Widianto. 21 Maret 2014

BAB III COUNTER. OBYEKTIF : - Memahami jenis-jenis counter - Mampu merancang rangkaian suatu counter

Arsitektur Komputer. Rangkaian Logika Kombinasional & Sekuensial

BAB VII FLIP FLOPS. Gate-gate logika kombinatorial. Elemenelemen. memori. Input-input eksternal. Gambar 7.1 Diagram Sistem Digital Umum

=== PERANCANGAN RANGKAIAN SEKUENSIAL ===

Transfer Register. Andang, Elektronika Komputer Digital 1

dan Flip-flop TKC Sistem Digital Lanjut Eko Didik Widianto Sistem Komputer - Universitas Diponegoro

Kumpulan instruksi lengkap yang dimengerti

Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 --

PERANCANGAN CONTROL UNIT, PROGRAM COUNTER (PC), DAN MEMORI INSTRUKSI PADA PROSESSOR RISC 16-BIT DENGAN TEKNOLOGI 600nm MENGGUNAKAN ELECTRIC

Gambar 1.1. Rangkaian Sekuensial

6. Rangkaian Logika Kombinasional dan Sequensial 6.1. Rangkaian Logika Kombinasional Enkoder

TKC305 - Sistem Digital Lanjut. Eko Didik Widianto. Sistem Komputer - Universitas Diponegoro

PENDAHULUAN SISTEM DIGITAL

BAB 4 RANGKAIAN LOGIKA DIGITAL SEKUENSIAL. 4.1 Flip-Flop S-R

1). Synchronous Counter

Review Kuliah. TKC305 - Sistem Digital Lanjut. Eko Didik Widianto

Bab XI, State Diagram Hal: 226

Rangkaian Sequensial. Flip-Flop RS

Latihan 19 Maret 2013

1). Synchronous Counter

Arsitektur dan Organisasi Komputer. Set instruksi dan Pengalamatan

Analysis And Design of Digital System

Arsitektur dan Organisasi

STRUKTUR CPU. Arsitektur Komputer

Jobsheet Praktikum FLIP-FLOP S-R

Organisasi & Arsitektur. Komputer. Org & Ars komp Klasifikasi Ars Komp Repr Data

Pendahuluan BAB I PENDAHULUAN

SISTEM DIGITAL; Analisis, Desain dan Implementasi, oleh Eko Didik Widianto Hak Cipta 2014 pada penulis GRAHA ILMU Ruko Jambusari 7A Yogyakarta 55283

Unit Control (Hardwired and Micro-programmed)

ARSITEKTUR KOMPUTER SET INSTRUKSI

Kuliah#11 TKC205 Sistem Digital. Eko Didik Widianto. 11 Maret 2017

BAB VII DASAR FLIP-FLOP

Set Instruksi: Set instruksi?

Hal-hal yang perlu dilakukan CPU adalah : 1. Fetch Instruction = mengambil instruksi 2. Interpret Instruction = Menterjemahkan instruksi 3.

Eksekusi instruksi Tipe R, LW-SW, Beq, dan Jump (Pertemuan ke-24)

ARSITEKTUR DAN ORGANISASI KOMPUTER

Kuliah#11 TSK205 Sistem Digital - TA 2011/2012. Eko Didik Widianto. Teknik Sistem Komputer - Universitas Diponegoro

Arithmatika Komputer. Pertemuan 3

Sistem Digital. Sistem Angka dan konversinya

DCH1B3 Konfigurasi Perangkat Keras Komputer

Simple As Possible (SAP) - 1. Abdul Syukur

BAB II TINJAUAN PUSTAKA

CENTRAL PROCESSING UNIT (CPU) Sebuah mesin tipe von neumann

MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI. Nama : Annisa Christyanti Kelas : XI TJA 3 NIS :

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

Karakteristik Instruksi Mesin

PENGGUNAAN TABEL KEBENARAN DALAM MERANCANG DESAIN DIGITAL

Eksekusi instruksi Tipe R, LW-SW, Beq, Jump, dan Model Pengalamatan (Pertemuan ke-24)

BAB III PERENCANAAN DAN REALISASI SISTEM

Field Programmable Gate Array (FPGA) merupakan perangkat keras yang nantinya akan digunakan untuk mengimplementasikan perangkat lunak yang telah diran

LEMBAR TUGAS MAHASISWA ( LTM )

RANGKAIAN D FLIP-FLOP (Tugas Matakuliah Sistem Digital) Oleh Mujiono Afrida Hafizhatul ulum

Mesin Mealy. Bahasan Kuliah. TKC305 - Sistem Digital Lanjut. Eko Didik Widianto. Sistem Komputer - Fakultas Teknik Universitas Diponegoro

INSTRUKSI MIPS. agussalim

ARSITEKTUR DAN ORGANISASI KOMPUTER Aljabar Boolean, Gerbang Logika, dan Penyederhanaannya

BAB III PERANCANGAN DAN REALISASI PERANGKAT KERAS DAN PERANGKAT LUNAK SISTEM. Dari diagram sistem dapat diuraikan metode kerja sistem secara global.

IP Core Design Rangkaian Sekuensial dan Kombinasional

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan

PENGANTAR ORGANISASI DAN ARSITEKTUR KOMPUTER SISTEM INPUT OUTPUT

CPU PERKEMBANGAN ARSITEKTUR CPU. ( Central Processing Unit )

SET INSTRUKSI. Organisasi dan Arsitektur Komputer

STRUKTUR FUNGSI CPU. Menjelaskan tentang komponen utama CPU. Membahas struktur dan fungsi internal prosesor, organisasi ALU, control unit dan register

Simple As Possible (SAP) - 1. Abdul Syukur

Rangkaian Sekuesial. [Rangkaian Sekuensial] BAB V

Organisasi Komputer. Candra Ahmadi, MT

untuk ASIC tinggi, algoritma harus diverifikasi dan dioptimalkan sebelum implementasi. Namun dengan berkembangnya teknologi VLSI, implementasi perangk

Rangkaian Kombinasional

Percobaan 5 FLIP-FLOP (MULTIVIBRATOR BISTABIL) Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

SISTEM MIKROPROSESOR RIZAL SURYANA JURUSAN TEKNIK ELEKTRO - UNJANI

Bab 4. Mengkaji dan Memahami Kinerja (Performance)

Simple As Possible (SAP) - 2. Abdul Syukur

CONTROL UNIT. Putu Putra Astawa

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

PROSESOR: CONTROL DAN DATAPATH. Oky Dwi Nurhayati, ST, MT

KEGIATAN BELAJAR 1 SISTEM KOMPUTER

Set Instruksi & Mode Pengalamatan. Team Dosen Telkom University 2016

PERTEMUAN MINGGU KE-5 ARSITEKTUR SET INSTRUKSI

PERTEMUAN. 1. Organisasi Processor. 2. Organisasi Register

IKI20210 Pengantar Organisasi Komputer Kuliah Minggu ke-3: Bahasa Rakitan AVR

FLIP-FLOP. FF-SR merupakan dasar dari semua rangkaian flip flop. FF-SR disusun dari dua gerbang NAND atau dua gerbang NOR. Gambar Simbol SR Flip-Flop

Jobsheet Praktikum FLIP-FLOP J-K

Transkripsi:

Perangkat Keras untuk Aritmetika, CPU Topik Hari ini: Mendesain sebuah ALU Penambah Carry-lookahead Jam dan sirkuit sequential Mesin finite state CPU siklus tunggal CPU siklus ganda 1

Hukum DeMorgan s A + B = A. B A. B = A + B Konfirmasikan bahwa yang diatas benar 2

Jumlah dari Perkalian Dapat melambangkan semua blok logika dengan operator AND, OR, NOT Menggambar tabel kebenaran Untuk setiap output yang true, gambarkan input-inputnya sebagai hasil perkalian Persamaan akhir adalah jumlah dari perkalian perkalian ini A B C E 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 (A. B. C) + (A. C. B) + (C. B. A) Dapat juga menggunakan perkalian dari penjumlahan Semua persamaan dapat dinyatakan dengan sebuah array dari AND, diikuti dengan sebuah array dari OR 3

Algoritma Penjumlah 1 0 0 1 0 1 0 1 Sum 1 1 1 0 Carry 0 0 0 1 Tabel kebenaran dari operasi ini: A B Cin Sum Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Persamaan: Sum = Cin. A. B + B. Cin. A + A. Cin. B + A. B. Cin Cout = A. B. Cin + A. B. Cin + A. Cin. B + B. Cin. A = A. B + A. Cin + B. Cin 4

Carry Out Logic Persamaan: Sum = Cin. A. B + B. Cin. A + A. Cin. B + A. B. Cin Cout = A. B. Cin + A. B. Cin + A. Cin. B + B. Cin. A = A. B + A. Cin + B. Cin 5

1-Bit ALU dengan Add, Or, And Multiplekso memilih antara operasi Add, Or, And 6

32-bit Penjumlah Ripple Carry 1-bit ALUs dihubungkan secara seri dengan carryout dari 1 boks disambung kan dengan carry-in dari boks berikutnya 7

Melakukan Pengurangan Harus membalikkan bit bit dari B dan menambahkan 1 Memasukkan inverter Carry-in untuk bit pertama: 1 Signal Carry-ini (untuk bit pertama) dapat disamakan dengan signal Binvert 8

Menjalankan NOR 9

Menjalankan slt Lakukan a b dan cek tandanya Signal baru (Less) adalah nol untuk boks boks ALU 1-31 Boks ke 31 punya sebuah unit utk mengecek overflow dan tanda -. Bit tanda berperan sebagai signal Less untuk boks ke 0 10

Menjalankan beq Lakukan a b dan konfirmasi bahwa hasilnya semuanya nol 11

Baris baris Kontrol Berapakah nilai nilai dari baris baris kontrol dan operasi apakah yang sedang dilakukan? 12

Baris baris Kontrol Berapakah nilai nilai dari baris baris kontrol dan operasi apakah yang sedang dilakukan? Ai Bn Op AND 0 0 00 OR 0 0 01 Add 0 0 10 Sub 0 1 10 SLT 0 1 11 NOR 1 1 00 13

Kecepatan dari Ripple Carry Carry merambat melalui setiap boks: setiap boks 1-bit secara berurutan mengimplementasikan AND dan OR delay total adalah waktu yang diperlukan untuk menempuh 64 gate! Kita telah melihat bawah semua persamaan logic dapat dinyatakan sebagai penjumlahand dari perkalian jadi memungkinkan untuk menghitung hasil dengan melalui hanya 2 gate! Perhatian: membutuhkan banyak gate gate paralel dan mungkin memiliki banyak input sangat sulit membangun gate yang sangat besar ini, jadi butuh kompromi: Jumlah gate yang moderat Jumlah input yang moderat setiap gate-nya Jumlah rambatan sekuensial pada gate yang moderat 14

Menghitung CarryOut CarryIn1 = b0.carryin0 + a0.carryin0 + a0.b0 CarryIn2 = b1.carryin1 + a1.carryin1 + a1.b1 = b1.b0.c0 + b1.a0.c0 + b1.a0.b0 + a1.b0.c0 + a1.a0.c0 + a1.a0.b0 + a1.b1 CarryIn32 = sebuah nilai yang sangat besar dari sebuah perkalian besar Implementasi potensial yang cepat sebagai hasil yang dihitung dengan hanya melewati 2 tingkat dari logic sayangnya setiap gate menjadi sangat besar dan lambat 15

Generate dan Propagate Persamaan ditataulang: Ci+1 = ai.bi + ai.ci + bi.ci = (ai.bi) + (ai + bi).ci Secara verbal, pasangan bit yang terkini akan menghasilkan (generate) sebuah carry apabila keduanya 1 dan pasangan bit yang terkini akan meneruskan (propagate) jika sebuah carry jika salah satunya 1 Generate signal = ai.bi Propagate signal = ai + bi Maka, Ci+1 = Gi + Pi. Ci 16

Generate dan Propagate c1 = g0 + p0.c0 c2 = g1 + p1.c1 = g1 + p1.g0 + p1.p0.c0 c3 = g2 + p2.g1 + p2.p1.g0 + p2.p1.p0.c0 c4 = g3 + p3.g2 + p3.p2.g1 + p3.p2.p1.g0 + p3.p2.p1.p0.c0 Salah satu, sebuah carry telah dibuat, atau sebuah carry telah dibuat dari langkah sebelumnya dan dirambatkan, atau sebuah carry telah dibuat dua langkah sebelumnya dan dirambatkan oleh dua tahap selanjutnya, atau sebuah carry telah dibuat N langkah sebelumnya dan dirambatkan oleh setiap buah dari N tahap selanjutnya 17

Membagi dan Menguasai Persamaan dari slide sebelumnya masih sulit untuk diimplementasikan sebagai sebuah fungsi logic untuk bit ke 32, kita harus AND setiap bit rambatan untuk menetukan apa yang menjadi c0 (juga hasil lainnya) Maka, bit bit dipecah menjadi grup (ber-empat) dan setiap grup menghitung grup-generate dan grup-propagate Sebagai contoh, untuk menambah 32 angka, kita bisa membagi tugas dalam sebuah pohon..................... 18

P dan G untuk 4-bit Blocks Menghitung P0 dan G0 (super-propagate dan super-generate) untuk grup pertama dari 4 bit (dan sama halnya untuk grup 4 bit lainnya) P0 = p0.p1.p2.p3 G0 = g3 + g2.p3 + g1.p2.p3 + g0.p1.p2.p3 Carry out dari grup pertama 4 bit adalah C1 = G0 + P0.c0 C2 = G1 + P1.G0 + P1.P0.c0 Dengan menggunakan sebuah pohon sub-komputasi, setiap gate AND, OR memiliki input yang sediki dan signal logic harus menempuh serangkaian gate yang sedikit (sama dengan tinggi dari pohon). 19

Contoh Add A 0001 1010 0011 0011 and B 1110 0101 1110 1011 g 0000 0000 0010 0011 p 1111 1111 1111 1011 P 1 1 1 0 G 0 0 1 0 C4 = 1 20

Penjumlah Carry Look-Ahead 16-bit Ripple-carry membutuhkan 32 langkah Desain ini butuh berapa langkah? 21

Clock Sebuah mikroprosesor terdiri dari banyak sirkuit yang berbeda yang berjalan bersamaan jika setiap sirkuit X membutuhkan input saat TI X, membutuhkan waktu TE X untuk mengeksekusi, and menghasilkan output saat TO X, bayangkan komplikasi dalam mengkoordinasi tugas tugas setiap sirkuit Sebuah pemikiran utama (digunakan dalam hampir semua prosesor sekarang): semua sirkuit dalam chip share sebuah signal clock (sebuah gelombang kotak) yang memberitahu setiap sirkuit kapan menerima input, waktu yang digunakan untuk mengeksekusi, dan kapan mengeluarkan output 22

Terminologi Clock Waktu siklus Rising clock edge Falling clock edge 4 GHz = clock speed = 1 = 1. waktu siklus 250 ps 23

Sirkuit Sekuensial Sampai sekarang, sirkuit adalah kombinasional ketika input berubah, outputnya akan berubah kemudian (waktu = delay logic melewati sirkuit Inputs Combinational Circuit Outputs Combinational Circuit Kita ingin clock berperan sebagai sebuah signal start dan stop sebuah latch adalah sebuah alat penyimpanan yang menyimpan inputnya saat rising clock edge dan nilainya tidak berubah sampai rising clock edge berikutnya Clock Clock Inputs Combinational Circuit Outputs Combinational Circuit Latch Latch 24

Sirkuit Sekuensial Sirkuit sekuensial: terdiri dari kombinasi sirkuit kombinasional dan elemen penyimpan Inputs Clock Saat awal siklus clock, rising edge membuat kondisi penyimpanan menyimpan beberapa nilai input Inputs State Combinational Cct Outputs Kondisi ini tidak berubah sepanjang siklus (sampai rising edge berikutnya Sirkuit kombinasional memiliki beberapa saat untuk menerima nilai dari kondisi dan inputnya serta menghasilkan output Beberapa outputnya (contoh, nilai dari kondisi selanjutnya) mungkin diumpanbalikkan (meski lewat latch sehingga diketahui saat siklus berikut 25 nya

Mendesain sebuah Latch Sebuah S-R latch: set-reset latch An S-R latch: set-reset latch Ketika Set tinggi, sebuah 1 disimpan Ketika Reset tinggi, sebuah 0 disimpan Ketika keduanya rendah, kondisi sebelumnya dipertahankan (maka disebut penyimpan atau elemen memori) Ketika keduanya tinggi, outputnya tidak stabil kondisi input ini tidak diijinkan Verifikasi perilaku diatas! 26

D Latch Memasukkan sebuah clock Nilai dari signal D input (data) disimpan jika clock tinggi kondisi sebelum nya dipertahankan bila clock rendah 27

D Flip Flop Terminologi: Latch: output dapat berubah setiap clock yang tinggi Flip flop: output dapat berubah hanya saat clock edge Dua D latch disusun seri memastikan bahwa sebuah nilai disimpan hanya saat falling edge dari clock 28

Sirkuit Sekuensial Kita ingin clock berperan sebagai sebuah signal start dan stop sebuah latch adalah sebuah alat penyimpan yang menyimpan inputnya saat rising edge dari clock dan penyimpanan ini tidak berubah sampai rising edge berikutnya dari clock Clock Clock Inputs Combinational Circuit Outputs Combinational Circuit Latch Latch 29

Mesin Finite State Sebuah sirkuit sekuensial digambarkan sebuah sebuah variasi dari tabel kebenaran sebuah diagram finite state (maka, sirkuit ini juga disebut sebuah mesin finite state) Catatan: state atau kondisi hanya diperbaharui pada clock edge Clock Current State Next-state Function Next state Inputs Output Function Outputs 30

State Diagram Setiap state digambarkan sebagai sebuah lingkaran, dilabel dengan nilai state-nya isi dari lingkaran adalah outputnya Anak panah menunjukkan sebuah transisi ke state yang lainnya, dengan input diindikasikan pada labelnya D = 0 D = 1 D = 1 0 1 0 1 D = 0 Ini adalah state diagram untuk? 31

Pencacah 3-Bit Pertimbangkan sebuah sirkuit yang menyimpan sebuah angka dan menaikkan nilainya setiap clock edge saat mencapai nilai tertinggi, nilainya kembali ke 0 Gambarkan state diagram: Berapa jumlah state-nya? Berapa jumlah inputnya? 32

Pencacah 3-Bit Pertimbangkan sebuah sirkuit yang menyimpan sebuah angka dan menaikkan nilainya setiap clock edge saat mencapai nilai tertinggi, nilainya kembali ke 0 Gambarkan state diagram: Berapa jumlah state-nya? Berapa jumlah inputnya? 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 33

Pengatur Lampu Lalu Lintas Penjelasan masalah: sebuah lampu lalu lintas (hanya merah dan hijau); hanya salah satu dari Utara Selatan atau Timur Barat hanya boleh hijau (kedua arah tidak boleh merah bersamaan); terdapat detektor di jalan untuk mendeteksi adanya mobil di jalan; lampu diperbaharui setiap 30 detik; sebuah lampu hanya berubah jika terdapat sebuah mobil yang menunggu di jalan lawannya. Tabel transisi state: Berapa jumlah state-nya? Berapa jumlah inputnya? Berapa jumlah outputnya? 34

Tabel Transisi State Penjelasan masalah: sebuah lampu lalu lintas (hanya merah dan hijau); hanya salah satu dari Utara Selatan atau Timur Barat hanya boleh hijau (kedua arah tidak boleh merah bersamaan); terdapat detektor di jalan untuk mendeteksi adanya mobil di jalan; lampu diperbaharui setiap 30 detik; sebuah lampu hanya berubah jika terdapat sebuah mobil yang menunggu di jalan lawannya. Tabel transisi state: CurrState InputEW InputNS NextState=Output N 0 0 N N 0 1 N N 1 0 E N 1 1 E E 0 0 E E 0 1 N E 1 0 E E 1 1 N 35

State Diagram Tabel transisi state: CurrState InputEW InputNS NextState=Output N 0 0 N N 0 1 N N 1 0 E N 1 1 E E 0 0 E E 0 1 N E 1 0 E E 1 1 N 36

Arsitektur Dasar MIPS Sekarang kita memahami clock dan penyimpan (storage) dari state, kita akan mendesain CPU sederhana yang mengeksekusi: Matematika dasar (add, sub, and, or, slt) Akses memori (lw dan sw) Instruksi branch dan jump (beq dan j) 37

Overview dari Implementasi Kita butuh memori Untuk menyimpan instruksi Untuk menyimpan data Sekarang ini, keduanya dianggap unit yang berbeda Kita butuh register register, ALU, dan banyak kontrol logic Operasi CPU yang sama untuk setiap instruksi: Menggunakan program counter (PC) untuk menarik instruksi dari memori instruksi Membaca nilai register 38

Pandangan dari 30,000 Kaki Catatan: Kita belum menunjukkan multipleksornya Apakah peran dari unit Add? Jelaskan input dari unit memori data Jelaskan input dari ALU Jelaskan input dari unit register 39

Metodologi Clocking Dimanakan diantara unit unit ini yang membutuhkan clock? Apakah yang akan disimpan (latched) pada rising edge dari clock? Pertimbangkan bahwa nilai yang di-latch akan ada untuk sepanjang siklus 40

Implementasi Instruksi Tipe R Instruksi dalam bentuk add $t1, $t2, $t3 Jelaskan peran dari masing masing signal 41

Implementasi dari Loads/Stores Instruksi dalam bentuk lw $t1, 8($t2) dan sw $t1, 8($t2) Dimanakan input ini berasal? 42

Implementasi Instruksi Tipe J Instruksi dalam bentuk beq $t1, $t2, offset 43

Pandangan dari 10,000 Kaki 44

Pandangan dari 5,000 Kaki 45

Mesin Siklus Tunggal Vs. Ganda Pada implementasi ini, setiap instruksi membutuhkan satu siklus untuk selesai waktu siklus = waktu yang dibutuhkan untuk siklus terlama Jika eksekusi dipecah menjadi siklus banyak (lebih cepat), instruksi yang lebih pendek akan selesai lebih dulu Waktu siklus = 20 ns Waktu siklus = 5 ns Load Add Beq 1 cycle 1 cycle 1 cycle Load Add Beq 4 cycles 3 cycles 2 cycles Waktu untuk load, add, dan beq = 60 ns 45 ns 46

Prosesor Siklus Ganda Unit memori tunggal di-share oleh instruksi dan memori ALU tunggal juga dipergunakan untuk update PC Register (latches) untuk menyimpan hasil dari setiap blok 47

Siklus 1 PC dipergunakan untuk memilih instruksi yang sesuai untuk dikeluarkan dari unit memori Instruksi di-latch ke register instruksi di akhir clock cycle ALU menjalankan PC+4 dan menyimpannya di dalam PC pada akhir clock cycle (catatan bahwa ALU bebas di siklus ini) Sirkuit kontrol sekarang harus cycle-aware PC yang baru tidak perlu melihat instr-memori sampai kita selesai dengan instruksiyang sekarang 48

Siklus 2 Instruksi menspesifikasi nilai register yang diminta ini adalah pembacaan dari berkas register dan menyimpannya dalam latch A dan B (ini terjadi meskipun operands tidak dibutuhkan) 16 bit terakhir dipergunakan untuk menghitung PC+4+offset (jika instruksi ini ternyata sebuah brach) ini di-latch menjadi ALUOut Catatan bahwa kita belum menentukan tipe instruksinya, maka operasi diatas adalah spekulatif 49

Siklus 3 Operasinya tergantung dari tipe instruksi Akses memori: alamat dihitung dengan menambahkan offset pada nilai yang dibaca pada berkas register, hasilnya di-latch dalam ALUOut. ALU: Operasi ALU dilaksanakan pada nilai yang terbaca dari berkas register dan hasilnya di-latch dalam ALUOut Branch: ALU melaksanakan operasi untuk beq dan jika terjadi branch, target branch-nya (saat ini ada di ALUOut) di-latch ke PC di akhir siklus Catatan bahwa operasi branch berakhir pada akhir siklus 3, operasi yang lain masih berlanjut 50

Siklus 4 Akses memori: alamat dalam ALUOut digunakan untuk mengambil sebuah word dalam memori ini di-latch ke dalam register data memori ALU: hasil di-latch dalam ALUOut diumpankan sebagai input pada berkas register, instruksi yang tersimpan dalam latch-instruksi menspesifikasi dimana hasilnya harus dituliskan Di akhir siklus, operasi ALU dan penulisan memori telah selesai 51

Siklus 5 Pembacaan memori: nilai yang dibaca dari memori (dan di-latch ke dalam register data memori) sekarang ditulis ke dalam berkas register Ringkasan: Branch dan jump: 3 siklus ALU, store: 4 siklus Akses memori: 5 siklus ALU lebih lambat karena membutuhkan penulisan ke berkas register Store lebih lambat karena membutuhkan penulisan ke data memori Load lebih lambat kerena membutuhkan pembacaan data 52 memori dan penulisan ke berkas register

Rata - rata CPI Sekarang kita bisa menghitung CPI rata rata dari sebuah program: jika sebuah program terdiri dari load (25%), store (10%), branch (13%), dan operasi ALU (52%), rata rata CPI adalah 0.25 x 5 + 0.1 x 4 + 0.13 x 3 + 0.52 x 4 = 4.12 Anda dapat memecah desain CPU ini menjadi siklus yang lebih pendek, contohnya, sebuah load membutuhkan 10 siklus, store 8, ALU 8, branch 6 rata rata CPI akan dobel, tapi juga kecepatan clocknya, kinerja netnya akan kira kira sama. Selanjutnya, kita akan melihat apakah strategi ini akan membantu dalam kasus kasus yang lainnya 53

Kontrol Logic Tercatat bahwa signal signal kontrol untuk setiap unit akan ditentukan oleh 2 faktor: Tipe instruksi Jumlah siklus dari instruksi ini Maka, kontrolnya diimplementasikan sebagai sebuah mesin finite state setiap siklus, transisi FSM ke state yang baru dengan set output tertentu (signal signal kontrol) dan ini adalah fungsi dari inputnya (tipe instr). 54