Anda di halaman 1dari 19

LAPORAN AKHIR PRAKTIKUM

ORGANISASI DAN ARSITEKTUR KOMPUTER


MODUL I
IMPLEMENTASI PROSESOR SEDERAHANA I

Nama : Gian Noval Havillah


No. BP : 1811511007
Hari/Tanggal : Selasa / 22 Maret 2021
Shift : 1

LABORATORIUM SISTEM DIGITAL DAN ARSITEKTUR KOMPUTER


JURUSAN TEKNIK KOMPUTER
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS ANDALAS
PADANG
2021
BAB I
PENDAHULUAN

1.1 Tujuan
1.1.1 Praktikan dapat merancang prosesor dari Bahasa assembly ke Bahasa
mesin dengan penambahan instruksi.
1.1.2 Praktikan dapat mengimplementasikan prosesor dengan Verilog (IF &
ID part).
1.2 Landasan Teori
1.2.1 Prosesor Sederhana
Organisasi sebuah komputer sederhana yang berorientasi pada Central
Processing Unit (CPU) yang merupakan otak dari sebuah komputer.
Fungsi CPU adalah menjalankan programprogram yang disimpan
dalam memori utama dengan cara mengambil instruksiinstruksi,
menguji instruksi tersebut, dan kemudian menjalankannya satu demi
satu. Komponenkomponen itu dihubungkan oleh sebuah bus, yaitu
sekumpulan kabel-kabel pararel untuk mentransmisikan alamat
(address), data, dan sinyalsinyal kontrol. Berikut Terminal bus dari
CPU.

(Gambar 1 Terminal Bus Prosesor Sederhana)

Komponen dari CPU yaitu Register, Control Unit, ALU dan I/O
Interconnection. Register ialah Alat penyimpanan kecil yang
mempunyai kecepatan akses cukup tinggi yang digunakan untuk
menyimpan data dan instruksi yang sedang diproses sementara data
dan instruksi lainnya
menunggu giliran untuk diproses masih disimpan di dalam memori
utama. Control Unit ialah bertugas mengatur dan mengendalikan
semua peralatan yang ada di sistem komputer seperti mengatur dan
mengendalikan alat-alat input dan output, mengambil instruksi-
instruksi dari memori utama, mengambil data dari memori utama
untuk diproses dan sebagainya. Kemudian ALU ialah Tugas utama
adalah melakukan semua perhitungan aritmatika dan melakukan
keputusan dari suatu operasi logika. Dan I/O Interconection ialah
sistem koneksi yang menghubungkan antar komponen internel dalam
sebuah CPU, yaitu ALU, unit kontrol, dan register serta
menghubungkan CPU dengan bus-bus eksternal diluar CPU.

1.2.2 Instruksi Mesin


Setiap instruksi harus terdiri dari informasi yang diperlukan oleh CPU
untuk dieksekusi. bentuk elemen-elemen instruksi mesin, adalah
sebagai berikut :
 Kode Operasi : menentukan operasi-operasi yang akan
dilakukan (misalnya: ADD,I/O). Operasi itu dispesifilan oleh
sebuah kode biner, dikenal sebagai kode operasi.
 Operand Sumber : Operasi dapat melibatkan satu atau lebih
operand sumber, dengan kata lain, operand adalah input bagi
operasi.
 Operand Hasil: Operasi dapat menghasilkan sebuah hasil.
 Acuan Instruksi Berikutnya: Elemen ini memberitahukan CPU
posisi instruksi berikutnya yang harus diambil setelah
menyelesaikan eksekusi suatu instruksi.
Di dalam komputer, instruksi dipresentasikan oleh sehimpunan bit.
Himpunan bit ini dibagi menjadi beberapa bidang, dengan bidang-
bidang ini berkaitan dengan elemen-elemen yang akan memuat
instruksi. Layout instruksi ini dikenal sebagai bentuk instruksi.
Opcode direpresentasikan dengan singkatan-singkatan, yang
disebut mnemorik, yang mengindikasikan operasi seperti berikut
ini.
 ADD Add (Menambahkan)
 SUB Substract (Pengurangan)
 MPY Multiply (Perkalian)
 DIV Divide (Pembagian0
 LOAD Muatkan data data dari memori
 STOR Simpan data ke memori

1.2.3 Jumlah Alamat


Salah satu cara tradisional dalam menjelaskan arsitektur prosesor
adalah dengan memakai jumlah alamat yang terdapat pada masing-
masing instruksi. Instruksi aritmatika dan logika memerlukan operand
yang berjumlah banyak. Dengan demikian, instruksi perlu memiliki
empat buah acuan alamat: dua buah operand, sebuah hasil operasi, dan
sebuah alamat instruksi berikutnya. Sebagian besar CPU merupakan
variasi satu, dua, atau tiga alamat dengan alamat instruksi berikutnya
merupakan implisit (diperoleh dari pencacah program). Format tiga
alamat tidak umum digunakan, karena instruksi-instruksi tersebut
memerlukan bentuk instruksi yang lebih relatif lebih panjang untuk
menampung acuan-acuan tiga alamat. Sedangkan bentuk dua alamat
mengurangi kebuatuahan ruang akan tetapi menimbulkan kesulitan.
Instruksi yang lebih sederhana adalah instruksi satu alamat. Agar
alamat ini dapat berfungsi, alamat perlu diimplisitkan.
1.2.4 Mips dan bahasa assembly
Berdasarkan perancangan perangkat instruksinya, ada 2 jenis arsitektur
prosesor yang menonjol saat ini, yaitu arsitektur RISC (Reduce
Instruction Set Computer) dan CISC (Complex Instruction Set
Computer). Prosesor RISC memiliki instruksi‐instruksi yang lebih
sederhana dan lebih cepat untuk dieksekusi dibandingkan prosesor
CISC.
A A
D D
D D
P Memori DRegister # Memori
ala instr
A A Ala
data
TRegister #
C REGISTER
instruksi L
mat uksi ARegister # ma
U t
Dat
Organisasi Unit – Unit Fungsional MIPS yang di sederhanakan
a

Gambar diatas menunjukkan sebagian besar aliran data ke prosesor, hal itu
menhilangkan duaaspek penting dari pelaksanaan instruksi:

 Pertama, di beberapa tempat di gambar 1 menunjukan data yang berbeda.

 Penghilangan kedua pada gambar 1 adalah bahwa beberapa unti harus


dikendalikan yang tergantung pada jenis instruksi.

Fungsi utama prosesor adalah melakukan operasi aritmatika dan logika


terhadap data yang diambil dari memori atau dari informasi yang dimasukkan
melalui beberapa perangkat keras[1]. Instruksi - intruksi dijalankan dalam
bentuk siklus oleh prosesor. Siklus ini berulang terus-menerus selama program
yang dijalankan oleh prosesor tetap berjalan. Siklus ini pada umumnya terdiri dari
4 tahap proses, yaitu fetch, decode, execute dan write back.
BAB II
PROSEDUR KERJA

2.1 Alat dan Bahan


2.1.1 PC / Laptop
2.1.2 Aplikasi Modelsim
2.2 Cara Kerja
2.2.1 Merancang bahasa mesin
1 Diberikan soal untuk merancang Bahasa mesin yaitu
X = (3+4+2) – (6+1)
2 Lalu mulai rancang dengan memasukan ke register, dimana
merancang dilakukan pada operasi kurung pertama dari angka
paling belakang hingga kedepan, didapatkan sebagai berikut
addi R0,2. R0 = 2
addi R0,4. R0 = R0+4 (4+2)
addi R0,3. R0 = R0+3 (3+4+2)
3 Kemudian selanutnya merancang Kembali operasi dikurung
kedua dan rancangan dimulai dari belakang Kembali,
didapatkan rancangan sebagi berikut.
addi R1,1. R1 = 1
addi R1,6. R1 = R1 + 6 (6+1)
4 Selanjutnya dilakukan oeprasi dari rancangan yang ada.
Rancangan tersebut menggunakan operasi kurang, didapatkan
hasil sebagai berikut.
sub R0,R1. R0 = R0(3+4+2)-R1(6+1)
5 Dan terakhir ubah nilai yang ada kedalam Opcode Prosesor
Sederhana untuk mendapatkan bahasa mesin dari setiap
bilangan, didapatkan hasil sebagai berikut.
10000010
10000100
10000011
10000001
10001001
001000001
6 Merancang Bahasa mesin telah selesai dilakukan.

2.2.2 Implementasi Prosesor Dengan Verilog (IF & ID part)


1 Siapkan source code yang telah diberikan
2 Pada file dengan nama file “program.txt”, ganti program yang
ada pada file tersebut dengan Bahasa mesin yang telah
dirancang sebelumnya.
10000010
10000100
10000011
10000001
10001001
001000001
3 Jalankan program pada aplikasi Modelsim
4 Compile file source code dengan nama “pc.v”, “RAM.v”, dan
“instructionDecoder.v” menggunakan aplikasi Modelsim
5 Lalu Simulate file secara satu per Satu
6 Kemudian amati program yang telah disimulasikan
7 Selanjutnya compile file dengan nama “simpleMIPS.v” dan
lanjutkan topLevel MIPS ini sesuai dengan gambar di bawah
ini.

(Gambar 2 Toplevel Instruction Fetch and Instruction Decoder)


8 Jalankan test bench mipsTB.v, dan perhatikan keluaran dari
instructiopn decoder.
BAB III
PEMBAHASAN DAN ANALISA
Sebuah bahasa assembly di atas diubah ke bahasa mesin dengan intruksi
operasi matematika, dalam intruksi penambahan dan pengurangan bilangan akan
langsung menunjukkan alamat dimana data yang akan diproses berada, karena
ditunjukkan dengan register R0 dan R1. Lokasi dimana alamat data yang akan
diproses di tempat disebut dengan address. Jadi dalam perintah penjumlahan,
yaitu “add” bisa langsung berupa nilai dari dua bilangan yang akan ditambahkan
atau alamat dimana nilai itu ada di tempat atau disebut address.
Didalam sebuah instruksi terdapat dua bagian, bagian pertama yaitu
opcode, dan bagian kedua yaitu operand atau data yang akan dikerjakan. Dalam
instruksi matematika untuk penjumlahan bilangan tadi yang instruksinya add,
inilah yang disebut dengan opcode, sedangkan address adalah yang menunjukkan
alamat dari nilai R0 dan R1 yang disebut dengan operand. Pada percobaan
pertama dilakukan perancangan bahasa mesi dengan soal yang telah di berikan
dengan hasil :
addi R0,2. R0 = 2
addi R0,4. R0 = R0+4 (4+2)
addi R0,3. R0 = R0+3 (3+4+2)
addi R1,1. R1 = 1
addi R1,6. R1 = R1 + 6 (6+1)
sub R0,R1. R0 = R0(3+4+2)-R1(6+1)

Hasil untuk bahasa mesin :


10000010
10000100
10000011
10000001
10001001
001000001
Umtuk hasil dari penjabaran dari soal tersebut dapat dilihat dimana 3 bit
pertama merupakan opcode, untuk 3 bit yang ditengah yaitu register A dan 3 bit
terakhir adalah register B. 3 bit pertama dengan 100 dimaksudkan dengan add tipe
immediate yaitu penjumlahan dengan tipe immediate. 3 bit pertama dengan 001
dimaksudkan pada sub tipe register yaitu pengurangan dengan tipe register.
Kemudian untuk 3 bit yang ditengah dengan 000 itu dimaksudkan dengan add tipe
register yaitu penjumlahan dengan tipe register. Kemudian untuk 3 bit register
akhir itu dimaksudkan dengan biner dari angka yang akan dijumlahkan atau
dikurangkan.
Pada percobaan kedua yaitu implementasi prosesor dengan Verilog, dilihat pada
modul praktikum, memori instruksi dan instruksi dekoder.

(Gambar Verilog PC.v)


(Gambar Wave PC.v)

(Gambar Verilog RAM.v)


(Gambar Wave RAM.v)

(Gambar Verilog Instruction Decoder.v)


(Gambar Wave Instuction decoder.v)
Pada percobaan di atas terdapat 3 program yaitu pc.v, RAM.v, dan
instructionDecoder.v. Dimana pada program pc.v terdapat clk, rst, override,
addrIn, addrOut. Clk dan rst sebagai inputan, addrIn menyimpan alamat yang
hanya digunakan untuk jump dan branch, addrOut merupakan alamat keluaran
dari program, program ini merupakan program counter yang memproses alamat
awal masukan. Pada program RAM.v terdapat clk, dataIn, dataOut, address, dan
we. Address berasal dari addrOut pada program counter tadi yang berfungsi
sebagai wire dan melanjutkan alamat ke RAM. Kemudian pada
instructionDecoder.v terdapat instructionIn, oppCode, regAddA, regAddB,
immediate. InstructionIn merupakan instruksi masukan pada program ini, untuk
oppCode, regAddA, regAddB, immediate yang berfungsi sebagai keluaran.
(Gambar Verilog Simple Mips.v)

(Gambar Wave Simple Mips.v)


Pada program ini merupakan implementasi dari ketiga program yang ada
sebelumnya dengan menambahkan codingan tambahan pada verilognya sehingga
dapat membuat program gabungan dari 3 program sebelumnya.

Selanjutnya program MIPS testbench yang dibuat


module mipsTB();
reg clk,rst;
simpleMIPS tb(
.clk (clk),
.rst (rst),
.override (1'd0),
.addrIn (8'd0),
.addrOut (addrPC),
.we (1'd0),
.dataIn (9'd0),
.dataOut (dataRAM) ,
.instructionIn (dataRAM),
.opCode (opCode),
.regAddA (regAddrA),
.regAddB (regAddB),
.immediate (imm)
);

initial
begin
clk <= 1'd0;
rst <= 1'd1;
#150
rst <= 1'd0;
#200
$finish;
end

always
begin
#50 clk <= !clk;
end

endmodule

BAB IV
PENUTUP
5.1 Kesimpulan
1 Central Processing Unit (CPU) yang merupakan otak dari sebuah
komputer
2 Komponen dari CPU yaitu Register, Control Unit, ALU dan I/O
Interconnection.
3 Dalam sebuah pengolahaan data dapat di artikan Prosesor adalah
manajemen pengolahaan data dengan menggunakan perumusan yang
begitu kompleks dan begitu akurat. Pengelolaan data yang dilakukan
prosesor bakal dibantu dengan media penyimpanan sementara yang
disebut RAM. Untuk melakukan proses yang begitu cepat.

5.2 Saran
1 Bagi praktikan diharapkan membaca dan memahami modul sebelum
memulai praktikum.
2 Praktikan diharapkan memperhatikan hal yang terkait pada isi modul
saat percobaan praktikum berlangsung.
3 Praktikan diharapkan dapat mengatur waktu sebaik mungkin saat
prkatikum berlangsung
TUGAS TAMBAHAN
1 Jelaskan proses instruction fetch dan instruction decoding secara rinci
2 Jelaskan ada berapa immediate yang dapat disupport oleh prosesor ini, dan
bagaimana cara meningkatkannya sehingga prosesor dapat mensupport
immediate lebih banyak)
3 Pada prosesor ini apa yang harus dikerjakan oleh immediate extend nantinya.

Jawab
1 Proses instruction fetch dan instruction decoding.
Fetch merupakan peristiwa pengambilan perintah dan data yang diperlukan.
Fetch merupakan proses mengambil atau membawa instruksi dari memori
utama ke CPU. Data yang digunakan oleh suatu instruksi sudah termasuk di
dalamnya, sedangkan dalam beberapa kasus lain, suatu instruksi langsung
menunjukkan alamat dimana data yang akan diproses berada. Lokasi dimana
alamat data yang akan diproses berada tersebut dengan address. Sebuah
instruksi sebenarnya terdiri dari dua bagian, dimana bagian pertama
merupakan aksi yang akan dijalankan yang disebut dengan opcode, dan
bagian kedua adalah data yang akan dikerjakan yang disebut dengan operand.
Decoding adalah proses dimana penerima menafsirkan pesan dan
menterjemahkan menjadi informasi yang berarti baginya. Jika semakin tepat
penafsiran penerima terhadap pesan yang dimaksudkan oleh penerima, Maka
semakin efektif komunikasi yang terjadi. Decoding juga dapat didefisikan
sebagai tahapan dimana instruksi akan di terjemahkan (interpret) ke dalam
perintah-perintah bahasa mesin dasar (ADD, SB, MBA, STA, JMP, dll).
Proses ini dilakukan oleh instruction decoder. Fase eksekusi akan di pulsa
clock berikutnya. Jika instruksi memiliki alamat tidak langsung , alamat
efektif dibaca dari memori utama, dan setiap data yang dibutuhkan diambil
dari memori utama untuk diolah dan kemudian ditempatkan ke dalam register
data
2 Terdapat 4 Immediate yang dapat disupport oleh prosesor ini, karena opcode
hanya bernilai 3 bit. Cara meningkatkannya ialah dengan cara prosesor yang
memiliki lebar data, instruksi dan lebar alamat yang bernilai besar. Semakin
besar nilainya maka semakin banyak register yang ada pada prosesor.
3 Pada prosesor ini immediate extend akan melakukan konversi panjang data
immediate dari instruksi menjadi sama dengan panjang struktur data Prosesor.
DAFTAR PUSTAKA

[1] Azis, Muhammad. "Set Instruksi dalam Organisasi dan Arsitektur Komputer".
24 April 2020 [Online]. Tersedia : https://mkazis.medium.com/2-xxii-set-
instruksi-dalam-organisasi-dan-arsitektur-komputer-dc24c18ea26c.[Diakses pada
27 Maret 2021 pukul 14.33 WIB]
[2] Erwin dkk. "Arsitektur Komputer" [Online]. Tersedia :
https://repository.dinus.ac.id/docs/ajar/Arsitektur_Komputer. Universitas
Gunadarma [Diakses pada 27 Maret 2021 pukul 14.10 WIB]
[3] Hermawan.(2020).Pengertian Prosesor Beserta Fungsi dan cara kerja prosesor.
[online].Available : https://www.nesabamedia.com/pengertian-processor/.
(diakses 28 Maret 2021 ).

Anda mungkin juga menyukai