LOKASI DAN OPERASI MEMORI 07 Mar21 1 Lokasi

  • Slides: 28
Download presentation
LOKASI DAN OPERASI MEMORI 07 -Mar-21 1

LOKASI DAN OPERASI MEMORI 07 -Mar-21 1

Lokasi Memori Main memory berisi jutaan Storage Cell (sel penyimpan). Umumnya sel-sel ini diorganisasikan

Lokasi Memori Main memory berisi jutaan Storage Cell (sel penyimpan). Umumnya sel-sel ini diorganisasikan dalam 8 sampai 64 bit. Memory mempunyai alamat 0 s/d M-1, dimana M adalah jumlah baris Word dari memori. Pada memory ini disimpan item-item pemrosessan yang berupa : Ø Perintah Ø Data : - Bilangan - Character 2

Gambar Alamat-alamat Main Memory 0 W 1 1 W 2 : : i Bn-1

Gambar Alamat-alamat Main Memory 0 W 1 1 W 2 : : i Bn-1 b 0 Wi : : 2 k-1 W 2 k 3

q Data Bilangan Data bilangan pada memori disimpan dalam range yang bervariasi antara 8

q Data Bilangan Data bilangan pada memori disimpan dalam range yang bervariasi antara 8 sampai 32 bit. Jenis data bilangan dibedakan menjadi : üInteger üSign integer üFloating point 32 bit b 31 b 30 ……. . b 1 b 0 Gambar penyimpanan data bilangan di memori 32 bit 4

q Data Character Untuk mengkodekan data character digunakan kode ASCII (American Standart Code for

q Data Character Untuk mengkodekan data character digunakan kode ASCII (American Standart Code for Information Interchange). Untuk satu character dikodekan dalam 8 digit biner. 8 bit ASCII Character Gambar penyimpanan data Character di memori 32 bit 5

q Instruction/Perintah Untuk penyimpanan perintah dalam memory 32 bit, instruksi disimpan dalam 8 bit

q Instruction/Perintah Untuk penyimpanan perintah dalam memory 32 bit, instruksi disimpan dalam 8 bit (operation field). Sedang sisanya digunakan untuk menyimpan operand atau alamat operand. 8 bit Operation field 24 bit Operand / Operand Address Gambar penyimpanan instruksi di memori 32 bit 6

q Penetapan Big-endian dan Little-endian Terdapat dua cara penetapan alamat byte pada word :

q Penetapan Big-endian dan Little-endian Terdapat dua cara penetapan alamat byte pada word : ü Big-endian : jika alamat byte tinggi digunakan untuk less significant byte (byte paling kanan) dari word tersebut. ü Little-endian : jika alamat byte rendah digunakan untuk less significant byte (byte paling kanan) dari word tersebut. 7

Gambar Pengalamatan byte dan word 8

Gambar Pengalamatan byte dan word 8

Penetapan big-endian dan little-endian digunakan pada mesin komersial. Alamat byte 0, 4, 8, …,

Penetapan big-endian dan little-endian digunakan pada mesin komersial. Alamat byte 0, 4, 8, …, digunakan sebagai alamat word yang berurutan dalam memori dan merupakan alamat yang digunakan pada saat menetapkan operasi baca dan tulis memori untuk word. 9

Operasi Memori Terdapat dua operasi pada memori yaitu : 1. Load / read /

Operasi Memori Terdapat dua operasi pada memori yaitu : 1. Load / read / fetch : Memindahkan isi dari sebuah lokasi memory (informasi) yang telah ditentukan addressnya, ke CPU. Isi dari word yang diambil tidak berubah (tetap). Operasi dimulai dengan CPU mengirimkan alamat dari data yang diinginkan ke memori dan meminta agar memori mengirimkan data tersebut (dengan sinyal read). Selanjutnya memory mengirimkan data yang diminta melalui data bus. 10

2. Write ( store ) : Memindahkan sebuah word informasi dari CPU ke sebuah

2. Write ( store ) : Memindahkan sebuah word informasi dari CPU ke sebuah lokasi memory yang telah ditentukan. Prosessor mengirimkan alamat lokasi memori yang diinginkan bersama dengan data yang akan disimpan. Selanjutnya prosessor mengirimkan sinyal write. 11

Instruksi dan Sequencing Instruksi Untuk melaksanakan suatu program (sekumpulan instruksi), ada beberapa langkah fungsional

Instruksi dan Sequencing Instruksi Untuk melaksanakan suatu program (sekumpulan instruksi), ada beberapa langkah fungsional yang dilakukan oleh komputer : 1. Transfer data antara main memory dan CPU. 2. Operasi aritmatika dan logika pada data. 3. Urutan program dan kontrol. 4. I/O transfer. 12

Terdapat beberapa format instruksi yang digunakan oleh komputer diantaranya adalah : q. Format Three

Terdapat beberapa format instruksi yang digunakan oleh komputer diantaranya adalah : q. Format Three Address (instruksi dengan tiga alamat operand) Operation destination, source 1, source 2 Contoh : Add A, B, C A B+C Artinya : Menjumlahkan isi lokasi memori B dan C, kemudian menyimpan hasilnya ke lokasi memori A. 13

q. Format Two Address (instruksi dengan dua alamat operand) Operation source 1/destination, source 2

q. Format Two Address (instruksi dengan dua alamat operand) Operation source 1/destination, source 2 Contoh : Add A, B A A+B Artinya : Menjumlahkan isi lokasi memori A dan B, kemudian menyimpan hasilnya ke lokasi memori A. 14

q. Format One Address (instruksi dengan satu alamat operand) Operation source Contoh : Add

q. Format One Address (instruksi dengan satu alamat operand) Operation source Contoh : Add A Acc + A Artinya : Menjumlahkan isi lokasi memori A dengan accumulator. Accumulator adalah register yang ada di dalam prosesor. 15

Straight Line Sequencing Pada dasarnya komputer mengeksekusi perintah-perintah secara sequential. Kita mengasumsikan bahwa word

Straight Line Sequencing Pada dasarnya komputer mengeksekusi perintah-perintah secara sequential. Kita mengasumsikan bahwa word length adalah 32 bit dan memori tersebut byte addressable. Terdapat tiga instruksi yang berada pada lokasi yang berurutan, mulai lokasi i. Tiap instruksi panjangnya 4 byte, maka instruksi kedua dan ketiga mulai pada alamat i+4 dan i+8. Untuk penyederhanaan kita asumsikan alamat memori penuh (32 bit) dapat diakses dalam instruksi word tunggal. 16

Address Begin execution here Gambar urutan instruksi untuk C A+B i Contents Move R

Address Begin execution here Gambar urutan instruksi untuk C A+B i Contents Move R 0, A 3 -instruction i+4 Add R 0, B program i+8 Move C, R 0 segment : : A : : B Data for the : : Program C 17

Ketika suatu perintah dieksekusi maka cpu melakukan urutan kerja di bawah ini : 1.

Ketika suatu perintah dieksekusi maka cpu melakukan urutan kerja di bawah ini : 1. Address instruksi pertama ditempatkan pada PC (address i) 2. Prosessor menggunakan informasi pada PC utk mengambil dan meng-eksekusi instruksi tsb. Satu instruksi pada satu waktu, hal ini disebut sebagai straight line sequencing. 3. Ketika suatu instruksi di eksekusi, isi PC di-up date (ditambah dengan 4) untuk menunjukkan instruksi berikutnya. 18

Eksekusi Instruksi Pelaksanaan instruksi terdiri dari dua phase : 1. Instruction Fetch. - Instruksi

Eksekusi Instruksi Pelaksanaan instruksi terdiri dari dua phase : 1. Instruction Fetch. - Instruksi diambil dari lokasi MM dimana address nya berada di PC. - Instruksi ini dimasukkan ke dalam Instruction Register pada CPU. 19

2. Instruction Execution. - Instruksi yg berada pd IR diperiksa utk menentukan operasi yg

2. Instruction Execution. - Instruksi yg berada pd IR diperiksa utk menentukan operasi yg harus dilakukan. - Operasi yg ditentukan kemudian dilakukan oleh CPU. Hal ini dapat meliputi mengambil operand dr MM, melakukan operasi arithmetic dan logic, menyimpan suatu hasil ke dlm MM, atau beberapa kombinasi dr operasi dasar tsb 20

Branching Pada kasus tertentu kadang diperlukan eksekusi satu atau beberapa perintah beberapa kali. Misalkan

Branching Pada kasus tertentu kadang diperlukan eksekusi satu atau beberapa perintah beberapa kali. Misalkan menjumlahkan bilangan yang terdapat pada array : R 0 = R 0 + Numn n = 1, 2, 3, …, x R 0 : Register 0 Numn : Data pada array Kasus diatas dapat diselesaikan dengan melakukan beberapa kali penjumlahan (sebanyak n kali), seperti contoh di bawah ini 21

I Program straight line untuk penjumlahan n bilangan Move Num 1, R 0 i+4

I Program straight line untuk penjumlahan n bilangan Move Num 1, R 0 i+4 Add Num 2, R 0 i+8 Add Num 3, R 0 : : i + 4 n – 4 Add Numn, R 0 i + 4 n Mov R 0, Sum : : Sum Num 1 Num 2 Numn 22

Penjumlahan bilangan-bilangan pada array di atas dapat dilakukan dengan menggunakan satu instruksi yang dieksekusi

Penjumlahan bilangan-bilangan pada array di atas dapat dilakukan dengan menggunakan satu instruksi yang dieksekusi berulang-ulang, yang dikenal dengan istilah looping. Looping adalah melompat (branch) kembali ke satu atau beberapa baris perintah sebelumnya. Lihat contoh program di bawah 23

Mov N, R 1 Clear R 0 LOOP Program penjumlahan n bilangan dengan loop

Mov N, R 1 Clear R 0 LOOP Program penjumlahan n bilangan dengan loop Determine address of “Next” number and add “Next” number to R 0 Decrement R 1 Branch > 0 Loop Move R 0, Sum : : SUM N n NUM 1 NUM 2 : : NUMn 24

Ø Pada saat instruksi branch dieksekusi, instruksi tersebut memberikan suatu nilai baru pada PC.

Ø Pada saat instruksi branch dieksekusi, instruksi tersebut memberikan suatu nilai baru pada PC. Ø CPU mengambil dan meng-eksekusi instruksi pada address baru tsb dan bukannya instruksi pd lokasi setelah instruksi branch dlm urutan address secara sekwensial. Ø Terdapat dua jenis branch yaitu Conditional Branch instruction dan Unconditional Branch instruction. Ø Conditional Branch instruction: hanya jika suatu kondisi yg ditentukan dipenuhi. Jika kondisi tidak dipenuhi, PC di inkremen secara normal dan instruksi berikutnya di fetch dan execute dg urutan address sekwensial. 25

Condition Codes Ø Merupakan kode-kode yang menggambarkan kondisi yang terjadi setelah eksekusi suatu perintah.

Condition Codes Ø Merupakan kode-kode yang menggambarkan kondisi yang terjadi setelah eksekusi suatu perintah. Ø Kode-kode ini dipergunakan oleh prosesor sebagai referensi untuk eksekusi perintah berikutnya yang memerlukan. Ø Hal ini dilakukan dg menyimpan informasi yg diperlukan ke dlm individual bit, yg sering disebut sbg condition code flags. 26

Ø Pada beberapa processor, flag ini dikelompokkan bersama pd suatu register khusus yg disebut

Ø Pada beberapa processor, flag ini dikelompokkan bersama pd suatu register khusus yg disebut condition code atau status register. Ø Kemungkinan yg lain, instruksi yg mengatur condition flag dapat menentukan bhw satu dr general purpose register digunakan utk menyimpan flag yg sesuai. 27

Empat flag yg umum digunakan: ü N (Negative): Set ke 1 jika hasilnya negatif;

Empat flag yg umum digunakan: ü N (Negative): Set ke 1 jika hasilnya negatif; jika tidak, di-clear ke 0. ü Z ( Zero): Set ke 1 jika hasilnya 0; jika tidak, di-clear ke 0. ü V (Overflow): Set ke 1 jika terjadi arithmetic overflow; jika tidak, diclear ke 0. ü C (Carry): Set ke 1 jika terjadi carry-out dr operasi; jika tidak, diclear ke 0. 28