Anda di halaman 1dari 15

LAPORAN AKHIR PRAKTIKUM

ORGANISASI DAN ARSITEKTUR KOMPUTER


MODUL I
IMPLEMENTASI PROSESOR SEDERHANA 1

Nama : Ella Alfareza


No. BP : 1811511009
Hari/Tanggal : Selasa/ 23 Maret 2021
Shift : II

LABORATORIUM SISTEM DIGITAL DAN ARSITEKTUR KOMPUTER


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

1.1. Tujuan
1. Praktikan dapat merancang prosesor dari bahasa assembly ke bahasa mesin
2. Praktikan dapat mengimplementasikan prosesor dengan Verilog (IF& ID part)

1.2. Landasan Teori


Prosesor adalah suatu komponen dalam sebuah komputer yang dapat
menjalankan beberapa set instruksi dari suatu program komputasi dengan
menjalankan perintah dasar aritmatik, logika, dan operasi input/output dari suatu
sistem komputer tersebut. Pada prinsipnya suatu prosessor terdiri dari ALU
(Aritmethic Logic Unit) dan register-register. Sebagai pengontrol operasinya
sendiri dilakukan oleh sebuah control unit.
 Fungsi Processor

Umumnya processor hanya berfungsi untuk memproses semua informasi data


yang diterima dari input, yang kemudian menghasilkan output. Prosesor tidak bisa
bekerja sendiri, tetapi membutuhkan dukungan perangkat lain, seperti hardisk dan
RAM.

Dalam memproses sebuah data bisa dilakukan dengan waktu prosesnya cepat
atau lambat itu tergantung pada kecepatan prosesor tersebut. Satuan kecepatan
dalam prosesor ialah Mhz (Mega Heartz) / Ghz (Giga Heartz), semakin besar
kecepatan sebuah prosesor, maka semakin cepat pula kinerja komputer saat
sedang melakukan proses.

 Cara Kerja Processor

Kecepatan pemrosesan data pada processor mampu mencapai 400 Gigahertz


yang artinya processor pada komputer mampu untuk menjalankan perintah
sebanyak 4000 miliar dalam sekali kerja. Angka tersebut merupakan angka yang
luar biasa dalam pengembangan teknologi, karena kegiatan kerja yang banyak ini
tidak akan mampu di lakukan oleh manusia secara manual.
Sebuah arsitektur komputer tidak mendefinisikan implementasi perangkat
keras yang mendasari. Seringali, banyak implementasi perangkat keras yang
berbeda dari arsitektur tunggal yang ada. Sebagai contoh intel dan AMD menjual
brbagai mikroprosesor dengan arsitektur yang ama dengan IA-32. Semuanya
dapat menjalankan program yang sama, tapi mereka menggunakan perangkat
keras yang berbeda dan karena itu menawarkan trade-off dam kinerja, harga,
daya.
a. Komponen utama
• Control Unit
Merupakan bagian pengendali yang berfungsi mengendalikan bagian-
bagian MIPS yang lain (aktivitas prosesor). Instruksi tediri dari 2 bagian yaitu
input dan operan. Instruksi di MIPS panjangnya 32 bit. Namun yang masuk ke
dalam control unit hanya 6 bit, yaitu bit ke 26-31. Kemudian mengeluarkan output
9 bit kendali komponen yang akan menjadi input bagian-bagian MIPS yang lain.

Bit kendali yang dihasilkan :


• RegDst (Register destination) 
Jadi inputan ke mux untuk selector data mana yang akan ditulis ke register
• Branch
menangani pencabangan (di set 1 ketika terjadi pencabangan)
•      MemRead (Memory Read) 
Di set 1 untuk membaca data dari memory, 0 jika tidak
•    MemToReg (Memory To Register)
Dimana inputan buat mux untuk selector apakah data disimpan dalam
memory dikirim ke register
•      ALU Op (ALU operation)
•     MemWrite (Memory write) : di set 1 untuk menyimpan data ke memory, 0
jika tidak
•     ALU src (ALU source)
•     RegWrite (Register Write)
Masing-masing 1 bit kecuali ALU Op 2 bit.
•  Program Counter (PC)
Menghitung alamat instruksi berikutnya yang akan di eksekusi. Yang
disimpan dalam PC adalah alamat memory. Alamat instruksi sama dengan alamat
memory. Sedangkan alamat sediri tidak sama dengan instruksi. Masukkan dan
keluaran dari PC sama yaitu sepanjang 32 bit (satu instruksi 32 bit). Daya
tampung 1 alamat memory pada MIPS sepanjang 8 bit. Alamat memory sendiri
merentang dari 000..00 sampai 111..11 sepanjang 32 bit. Jika tidak ada instruksi
pencabangan maka nilai di dalam PC ditambah 4 setiap selesai melakukkan
instruksi. Karena panjang instruksi 32 bit sedangkan daya tampung setiap alamat
memory hanya  8 bit.

• Memory Instruksi
Menyimpan Instruksi yang akan di eksekusi. Inputnya alamat yang tadi
disimpan dalam PC sebanyak 32 bit. Keluarannya instruksi sepanjang 32 bit juga.

•  Memory data
Menyimpan data hasil pemrosesan  ALU. Masukkannya berupa alamat
yang akan dipakai untuk menyimpan data (32 bit) dan data yang akan disimpan
(32 bit). Keluarannya data 32 bit. Ada 2 macam memory data : memory read
untuk membaca data dan memory write untuk menyimpan data, yang
pemakaiannya diatur oleh control unit.

• Register
Menyimpan data yang akan diproses oleh ALU dan menyimpan data hasil
perhitungan. Setiap register mempunyai nama, nomor, dan fungsinya masing-
masing. Banyaknya 32 buah dengan masing-masing panjangnya 32 bit. Diakses
berdasarkan nomornya. Namun pada pemrograman, akses berdasarkan nama
registernya.

• ALU (arithmetic and Logical unit)


Mengolah dua buah data masukkan. Bisa penjumlahan pengurangan atau
pembandingan. Masukkan berupa input 1 sepanjang 32 bit dan input 2 sepanjang
32 bit. Keluaran berupa hasil pengolahan dan zero flag. Zero flag di set 1 ketika
hasil keluaran bernilai 0. Di set 0 jika sebaliknya.

b. Komponen pendukung
•   Shifter
penggeser bit, 2 kali ke kiri (shift left 2) atau mengalikan 
dengan  4.
•   Adder  
penjumlah 2 buah inputan n bit dan menghasilkan sebuah
 keluaran  bit. Di MIPS ada 2 buah adder.
•   Multiplexer
selector dari 2 buah input yang tersedia untuk di alirkan
 ke  output.
•   Sign extend
Mengubah data 16 bit menjadi 32 bit dengan menambah 
0 sebanyak 16 bit di awal.

c. 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
Ala
data A
TRegister #
C REGISTER
instruksi L
mat uksi ARegister # ma
t U
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


a. Laptop
b. Software Modelsim

2.2. Cara Kerja (Kalimat dipasifkan dan gambar dibuat sesuai dengan yang ada
dimodul serta menampilkan langkah kerja masing-masing praktikan)
a. Merancang bahasa mesin
Contoh: Prosesor akan digunakan untuk melakukan perhitungan
berikut
D = (5+2)-(3+1)
Dengan bahasa assembly program di atas dapat dibuat sebagai berikut
addi R0,2. R0 = 2
addi R0,5. R0 = R0+5 (5+2)
addi R1,3. R1 = 3
addi R1,1. R1 = R1 + 1 (1+3)
sub R0,R1. R0 = R0(5+2)-R1(1+3)

Dari bahasa assembly di atas maka dapat dibuat bahasa mesin berdasarkan
tabel 1 sebagai berikut:

100000010

100000101

100001011

100001001

001000001

Tugas Praktikan, Dirancanglah bahasa mesin untuk program berikut, dituliskan


jawaban anda pada kolom Quiz 1.
X = (3+4+2) – (6+1)

b. Implementasi Prosesor Dengan Verilog (IF & ID part)


Pada modul dirancang bagian PC, memori instruksi dan instruksi dekoder
seperti yang terlihat pada gambar di bawah ini.

Gambar 1 . Implementasi Modul 1

Pada praktikum ini, praktikan diharapkan dapat meimplementasikan


gambar di atas dengan keluaran dari program verilog yang diharapkan adalah
dapat dilihat keluaran dari instruksi dekoder untuk semua program yang ditulis
pada memori instruksi.
Pada ilearn terdapat source code yang aka digunakan pada praktikum ini

1. Diganti program pada program.txt dengan bahasa mesin yang anda


dapatkan pada tahap sebelumnya.
2. Dijalankan program modelsim
3. Di Compile file pc.v, RAM.v dan instructionDecoder.v pada modelsim
4. Di jelaskan yang dilakuakn oleh modul pc.v pada quiz.
5. Di jelaskan yang dilakukan oleh modul RAM.v pada quiz .
6. Di jelaskan yang dilakukan oleh instructionDecoder pada quiz.
7. File dibuka pada simpleMIPS.v dan dilanjutkan topLevel MIPS ini
sesuai dengan gambar di bawah ini.

Gambar 2. Toplevel Instruction Fetch and Instruction Decoder

Di perhatikan contoh pemanggilan module pc pada file top level


simpleMIPS.v yang telah diisi. Untuk I/O yang tidak digunakan dapat diisi
dengan nilai 0. Upload hasil akhir top level anda pada Quiz.

8. Di jalankan test bench mipsTB.v, dan di perhatikan keluaran dari


instructiopn decoder apakah telah sesuai dengan yang diharapkan.
(Upload Screen Shoot hasil pekerjaan pada Quiz).
BAB III
PEMBAHASAN DAN ANALISA

Pada percobaan pertama yaitu Pada praktikum kali ini yaitu melakukan
percobaan pada implementasi prosesor sederhana. Dengan program yang
dirancang yaitu X = (3+4+2) – (6+1) pertama kita merubahnya ke dalam bahasa
assembly terlebih dahulu.
addi R0,3. R0 = 3

addi R0,4. R0 = R0+4 (3+4)

addi R0,2. R0 = R0+2 (3+4+2)

addi R1,6. R1 = 6

addi R1,1. R1 = R1+1 (6+1)

sub R0,R1. R0 = R0(3+4+2) - R1(6+1)

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.
Maka didapatlah hasil :
100000011
100000100
100000010
100001110
100001001
001000001

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 seperti yang
terlihat pada gambar di bawah ini :

Pada program counter di PC ini akan menentukan alamat instruksi dari


RAM instruksi yang akan dieksekusi oleh prosesor dan akan masuk kedalam
instruction memory. Selanjutnya ketika didalam Ram Instruksi (Instruction
Memory) akan menyimpan kode program yang dilakukan oleh prosesor ke dalam
format biner dan masuk kedalam instruction decoder. Pada Instruksi decoder akan
melakukan dekode bacaan data keluaran memory menjadi format-format instruksi
prosesor yang akan di opcode ke control, immediate ke dalam immediate
extender, dan register address A & B akan masuk kedalam penyimpanan register.
Pada percobaan berikutnya 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.
Berikut ditampilkan top level simpleMIPS dan juga menggabungkan
ketiga program di atas.

Disini input yang digunakan yaitu clk dan rst. Kemudian terdapat 6 buah
wire diantranya addrPC 8 bit, dataRAM 9 bit, dan lainnya 3 bit yaitu oppcode,
regAddrA, regAddrB, imm. AddrPC merupakan wire antara PC dengan RAM,
menjadi output pada PC dan inputan pada RAM. Kemudian dataRAM yaitu
penghubung RAM dengan instructionDecoder, dimana merupakan output pada
RAM dan input pada instructionDecoder. Untuk oppcode, regAddrA, regAddrB,
dan imm merupakan output akhir. Kemudian dibuat testbench yang digunakan
untuk menguji program top level yang sudah dibuat tadi dan diujikan pada
modelsim. Berikut diagram dari testbench.

Ketika diinputkan nilai clk dan rst, maka akan didapatkan keluaran pada
opcode, register A, register B dan Immediate. Dimana pada masing – masing
hasilnya akan menampilkan 3 bit.
BAB IV
PENUTUP
5.1 Kesimpulan
1. Prosesor sederhana dapat dengan mengimplementasikan program
counter, RAM, dan instruction decoder.
2. Prosesor memiliki lebar data 9 bit diantaranya 3 bit opcode, 3 bit register
A, dan 3 bit register B / immediate.
3. Didalam perintah bahasa mesin dapat diambil kesimpulan dari dimana
Fetch merupakan peristiwa pengambilan perintah dan data yang
diperlukan dan prosesnya mengambil atau membawa instruksi dari
memori utama ke CPU untuk menjalankan setiap perintah yang ada
didalam Bahasa mesin pada sebuah program.
4. 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. Sebaiknya praktikan memahami materi yang akan dipraktikumkan.
2. Sebaiknya praktikan tepat waktu dalam mengikuti praktikum.
3. Sebaiknya praktikan bertanya jika ada materi praktikum yang tidak
paham.
DAFTAR PUSTAKA

[1] Gray, Jan. 2000. Designing a Simple FPGA - Optimized RISC CPU and
System on a Chip. Gray Research LLC. Bellevue, WA.

[2] Hermawan.(2020).Pengertian Prosesor Beserta Fungsi dan cara kerja


prosesor. [online].Available : https://www.nesabamedia.com/pengertian-
processor/. (diakses 28 Maret 2021 ).

[3] KC Chang. 2005. Digital Systems Design with VHDL and Synthesis: An
Integrated Approach. Wiley - IEEE Computer Society, England.
[4] Nurman, Dhita Bagus Ananda, dkk. 2015. Perancangan Dan Implementasi
Soft Processor Berdasarkan Arsitektur OpenRISC 1200 pada FPGA.
Bandung : Universitas Telkom.

Anda mungkin juga menyukai