Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
PROSESOR DLX
2
Prosesor DLX Prosesor DLX atau disebut juga prosesor Delux memberikan gambaran menyeluruh tentang suatu prosesor modern. Bagian penting yang dipelajari adalah jalur data, instruksi, dan bagian kendali 8.1 Arsitektur DLX Prosesor DLX menggunakan arsitektur simpan-ambil (load-store) dengan lima tahap pipeline unutk menyelesaikan suatu instruksi. Kelima tahap tersebut adalah: Instruction fect (IF), Isntruction Decode (ID), Exute (EX), Memory Access (MEM), dan Write Back (WB). Panjang semua instruksi DLX adalah 32 bit.
4
Arsitektur prosesor DLX terdiri dari 5 komponen utama yang masing-masing memiliki fungsi yang berbeda yaitu: PC (Program Counter) : register yang berfungsi menampung nilai yang didunakan untuk menunjukkan alamat instruksi yang akan dieksekusi . Register ini merupakan offset dari alamat dasar instruksi sekaligus data. Memori: Terdiri dari dua bagian yaitu memori untuk instruksis yang berisikan kumpulan seluruh instruksi dan memori untuk data yang berfungsi untuk menyimpan data. Register: Kumpulan register 32 bit tempat menyimpan nilai sementara ALU (Aritmatic and Logical Unit): tempat dilakukannya operasi aritmatik dan logika. Unit kendali (Control Unit): unit kendali terdiri dari dua bagian yaitu register instruksi (instruksi register): register tempat menyimpan sementara instruksi, dan pengendali (controller): bagian yang menerjemahkan instruksi dan mengeluarkan set kendali pada seluruh register
5
Register-Register Register adalah memori kecepatan tinggi yang dapat menyimpan data. Pada dlx register memiliki lebar bit. Register- register yang terdapat dalam dlx antara lain: Register R R31 adalah register tujuan umum (general purpose registers) yang lebar nya masing-masing 32 bit. Register ini digunakan untuk menyimpan dan mengoperasikan bilangan integer. Register F F31 adalah register untuk bilangan floating point dangan lebar masing - masing bit. Untuk meningkatkan kapasitas register , satu register dengan register yang lain dapat dipasangkan. Pasangan register ini digunakan untuk floating-point double- precision. Register O adalah register khusus yang selalu menyimpan nilai nol. Nilai ini ditulis dalam bentuk rangkaian permanen. Apapun operasi yang dilakukan terhadap register ini tidak akan mempengaruhi nilainya.
6
Terdapat tiga buah register tujuan khusus:
Register Pencacah Program (Program Counter, PC) adalah register yang berfungsi menentukan alamat instruksi berikutnya yang akan dieksekusi. Register Alamat Intrupsi (Interrupt Address Register, IAR) adalah register yang digunakan untuk menyimpan nilai PC sementara pada saat terjadi interrupt. Setelah interupsi selesai maka nilai PC akan dikembalikan . Register status floating-Point (Floating-Point Status Register, FSR) adalah register yang menyimpan informasi status hasil operasi floating-point
7
Karakteristik prosesor DLX
Secara umum prosesor DLX memiliki karakteristik yang dapat dibedakan dari prosesor lain : Perangkat instruksi ambil/simpan (Load/Store) sederhana. Memiliki teknik pipeline untuk meningkatkan kinerjanya. Memiliki register file yang dapat digunakan untuk tujuan umum. Skema penerjemahan instruksi yang sederhana. Teknik kompilasi yang efisien. Kelas instruksi dalam prosesor dlx antara lain: Instruksi yang mengacu pada memori (Load-Store) Instruksi register ke register Instruksi aritmatik dan logika (ALU) Instruksi floating point Instruksi lompat dan pencabangan (Jump and Branch) Instruksi khusus
8
Tahapan pipeline: Siklus Fect instruksi (IF) Biasanya disebut sebagai "unit beban" dalam terminologi modern. Instruksi yang ditunjuk oleh PC diambil dari memori ke register instruksi CPU, dan PC bertambah untuk menunjuk ke instruksi berikutnya dalam memori. 2. Siklus Decode/Register Fecth (ID) Unit ini mendapat instruksi dari IF, dan ekstrak opcode dan operand dari instruksi. Instruksi yang diterjemahkan, dan pada paruh kedua dari tahap Operand ditransfer dari register file ke input ALU register. Ini juga mengambil nilai-nilai mendaftar jika diminta oleh operasi 3. Siklus eksekusi (EX) Menjalankan instruksi, biasanya disebut sebagai ALU dalam terminologi modern. Logika dan operasi aritmatika yang dijalankan pada operand yang berasal dari ID stage. Hasil dari operasi dapat menjadi nilai yang akan ditulis kembali dalam register file atau alamat dari data memori untuk diakses pada tahap berikutnya.
9
4. Siklus Akses memori/ Pencabangan (MEM) Unit yang MEM menjemput data dari memori utama, di bawah kontrol instruksi dari ID dan EX. Data memori diakses (baik membaca atau menulis). 5. Siklus tulis-balik (WB) Biasanya disebut sebagai “load-store” dalam terminologi modern. Pada tahapan ini, disediakan saluran bagi DLX sehingga dapat menyimpan kembali register untuk tahap eksekusi (EX). Hal ini dapat mempercepat pelaksanaan operasi register ke register oleh ALU yang berada dalam tahap eksekusi.
10
FORMAT INSTRUKSI Dalam DLX terdapat tiga buah format instruksi yaitu: tipe-R, tipe-I, dan tipe-J. Semua foramat instruksi dibedakan oleh kode operasi (operation code-opcode). Informasi lain yang ada dalam setiap format berbeda-beda. 1. Tipe-R (register) Instruksi tipe-R atau disebut tipe register membutuhkan tiga register dalam sebuah instruksi yaitu dua register sumber dan satu register tujuan Bagian-bagian instruksi tipe-R: Kode opersai: 6 bit dari bit 0 – 5 Register sumber 1 (rs1): 5 bit dari bit 6 – 10 Register sumber 2 (rs 2): 5 bit dari bit 11 – 15 Fungsi: 11 bit dari
11
2. Tipe I (Immediate) Instruksi tipe-I atau disebut tipe immediate membutuhkan dua register dalam sebuah instruksi yaitu satu register sumber dan satu register tujuan. Bagian-bagian instruksi tipe-I: Kodeoperasi: 6 bit dari 0 – 5 Register sumber (rs): 5 bit dari bit 6 – 10 Register tujuan (rd): 5 bit dari bit Nilai: 16 bit dari bit 16 – 31 3. Tipe J (jump) Instruksi tipe-J terdiri dari dua bagian: Kodeo perasi (opcode): 6 bit dari 0 – 5 Alamat (operand): 26 bit dari 6 – 31,
12
8.3 PERANGKAT INSTRUKSI Perangkat instruksi adalah kumpulan instruksi yang telah didefinisikan pada prosesor dlx. Berikut ini daftar instruksi yang terdapat pada prosesor DLX:
14
Ada beberapa catatan pada instruksi di atas:
Instruksi SW pada kenyataannya menggunakan Rt untuk register sumber (nilai yang disimpan di memori berasal dari Rt) JL dan JALR hanya menggunakan Rs1, nilai immediate dan Rt dibuang SRA dan SRAI adalah penggeseran kanan aritmatik. Ini artinya, bit tanda operand akan digandakan bukan menggantinya dengan nol. SLR dan SRA akan sama jika Rs1 bernilai positif. Jika Rs1 negatif (bit 31 = = 1), maka 1 disisipkan dari kiri untuk SRA dan SRAI, SHI digunakan untuk mengambil bit-bit sebelah atas dari konstanta 32-bit.
15
8.4 Memori Register adalah memori kecepatan tinggi yang digunakan untuk menyimpan data sementara. Kecepatan tinggi berarati pula cepat pengaksesannya. Mengakses register jauh lebih cepat daripada mengakses memori karena tidak perlu pengalamatan. Mengakses register dengan menyebut nama register nya. DLX menyediakan 32 register tujuan umum yang masing-masing lebarnya 32 bit. Register ini diberi nama R0-R31 . Beberapa register mempunyai yang fungsi khusus yaitu: Register R0 selalu bernilai Semua nilai yang dituliskan ke R0 akan dibuang. Alamat kembali setelah instruksi pemanggilan (call) subrutin secara implisit disimpan dalam register R31. Register R30 ditaruh paling awal untuk menunjuk sebuah area pada memori yang nantinya akan digunkan pada vareabel global Register R29 digunakan untuk stack pointer Register R28 digunakan untuk frame pointer Register F0 –F31 adalah register 32 bit untuk nilai float:
16
Memori adalah adalah tempat menyimpan data yang relatif permanen
Memori adalah adalah tempat menyimpan data yang relatif permanen . Beberapa pengaturan memori pada prosesor DLX, sebagai berikut: Memori dibagi kedalam bit Setiap bit tersebut memiliki alamat yang merupakan kelipatan dari 4 Byte dialamatkan dengan mode Big Endian Byte yang paling berarti (Most signifikan byte ) terletak pada alamat terkecil. Half word (16 bit ) sama dengan 2 byte Word (32 bit) sama dengan 4 byte
17
Lebar pita memori (memory bandwidth):
Akses terhadap memori meningkat selama terjadinya proses pipe line , oleh karena itu maka bandwith dari memori pada DLX harus ditingkatkan. Instruksi diambil setiap siklus dengan menggunakan proses pipeline. Hal ini lebih baik daripada empat sampai lima siklus jika menggunakan proses pipeline Data pada memori diakses setiap terjadi instruksi Load dan Store Instruksi pada memori dan data pada memori kemungkinan diakses secara bersamaan dengan dua instruksi yang ada pada siklus IF dan MEM Data dan instruksi diletakkan secara terpisah untuk menghindari benturan akses pada proses pipeline Instruksi dan data pada memori diimplementasikan sebagai cache internal yang berada di dalam chip prosesor
18
8.5 DASAR DASAR PIPELINING PADA PROSESOR DLX
Pipelining adalah suatu teknik pemecahan satu pekerjaan atau tugas menjadi beberapa sub tugas, dan mengeksekusi sub-tugas tersebut secara bersamaan/paralel dalam unit –unit multi hardware atau segmen-segmen dengan tujuan meningkatkan thoughput (jumlah tugas yang dieksekusi per unit waktu.) Pada prosesor DLX terdapat 5 tahap sub proses yaitu: Siklus pengambilan (fect) instruksi (IF) Siklus decode Instruksi (ID), pengambilan isi register: Siklus eksekusi (EX), alamat efktif: Siklus akses memori (MEM), Penyelesaian pencabangan: Siklus tulis - balik (WB)
19
IF ID EX Mem WB Gambar di atas Mengilustrasikan sebuah pipeline dengan lima unit , atau lima stage (5 tahap) : Tahap mengambil instruksi dari memori dan menempatkan instruksi tersebut dalam sebuah penyangga sampai instruksi sampai instruksi itu dibutuhkan. Tahap mendekodekan instruksi tersebut, menentukan jenisnya dan operand dan operan apa yang dibutuhkan instruksi tersebut. Tahap melokasi dan mengambil operand operand baik itu dari register register ataupun dari memori. Tahap sebenarnya melaksanakan pekerjaan menjalankan instruksi tersebut, terutama menjalankan operand operand melalui jalur data. Tahap menuliskan hasilnya kembali keregister yang sesuai
20
Dalam gambar di atas bagaimana pipeline tersebut beroperasi sebagai suatu fungsi waktu:
Selama siklus waktu 1, S1 sedang menangani instruksi IF , dengan mengambilnya dari memori. Selama siklus waktu 2, tahap S2 mendekodekan instruksi IF , sedangkan tahap S1 mengambil instruksi ID. Selama siklus waktu , tahap S3 mengambil operand-operand dari instruksi IF, tahap S2 mendekodekan instruksi ID, dan tahap S1 mengambil instruksi EX. Selama siklus waktu 4, Tahap S4 menjalankn instruksi IF, tahap S3 mengambil operand-operand untuk instruksi ID, tahap S2 mendekodekan instruksi ID, dan tahap S1 mengambil instruksi MEM. Selama siklus waktu 5 , tahap S5 menulis kembali hasil instruksi IF, sementara tahap tahap lainnya menangani instruksi-instruksi berikutnya
21
Pipeline (1)
26
Analisis berikut menunjukkan bahwa waktu yang digunakan untuk menyelesaikan m instruksi dalam suatu pipeline n tingkat instruksi diaproksimasi kira-kira sama dengan n. Waktu yang digunakan instruksi pertama = ntc dimana tc adalah durasi satu siklus clock Waktu yang digunakan untuk sisa instruksi (m-1) adalah (m-1)tc Total waktu yang digunakan untuk m instruksi = (ntc) + (m-1)tc = (n+m-1)tc IF ID EX Mem WB Buffer antar tinggkat Bagian bagian IF = instruksi Fect ID = Decode Instruksi EX = Eksekusi MEM = Akses memori, WB = Tulis - balik
27
Siklus waktu INSTRUKSI jika prosesor adalah prosesor nonpipeline,maka waktu yang digunakan untuk m instruksi dalam nmtc dengan menganggap waktu siklus instruksi sama dengan ntc Gian kinerja (speedup) pipeline adalah waktu yang digunakan dalam mode pipeline; Speed-up= waktu, pemrosesan nonpipeline/waktu,pemrosesan pipeline = nmtc / (n+m-1)tc = nm / n+m-1) Untuk nilai m yang besar yang lebih besar dari (n-1) , maka (n+m-1) mendekati m karena itu speed up = nm / m = n Jadi, speed up maksimum secara teoritis adalah sama dengan jumlah tingkat dalam pipeline. Jumlah siklus clock yang diperlukan untuk mengeksekusi m instruksi adalah m karena satu instruksi selesai setiap siklus clock Secara praktis, kehadiran instruksi cabang dalam program mengurangi perolehan speed-up pada pipe lining dan meningkangkat jumlah siklus clock yang dibutuhkan Thruoght=jumlah tugas yang dieksekusi per unit waktu = m / (n+m-1)tc Efisiensi = rasio antara speed up aktual dan speed up maks = speed-up / n = m / n+m-1
28
8.6 Hambatan Utama Pipelining-Resiko Pipeline [Pipeline Hazard]
Hazard adalah hambatan hambatan yang ditemui setelah penerapan metode pipeline, hazard mengurangi kinerja dari kecepatan ideal yang dicapai oleh pipelining. Terdapat tiga jenis Hazard: Hazard struktur yang yang timbul dari konflik sumber daya pada saat perangkat keras tidak mendukung semua kemungkinan kobinasi instruksi dalam eksekusi bersamaan yang simultan Hazard Data yang timbul pada saat instruksi tergantung pada hasil instruksi sebelummya. Hazard kendali yang timbul dari pipelining pencabangan dan instruksi lain yang mengubah PC
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.