ORGANISASI KOMPUTER

advertisement
ORGANISASI
KOMPUTER
LOKASI DAN
OPERASI MEMORI
22-Jul-17
1
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
22-Jul-17
2
Gambar Alamat-alamat Main Memory
0
W1
1
W2
:
:
i
Bn-1
b1
b0
Wi
:
:
2k-1
W 2k
22-Jul-17
3
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
b31
b30
……..
b1
b0
Gambar penyimpanan data bilangan di memori
32 bit
22-Jul-17
4
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
8 bit
ASCII
Character
8 bit
ASCII
Character
8 bit
ASCII
Character
Gambar penyimpanan data Character di memori
32 bit
22-Jul-17
5
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
22-Jul-17
6
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.
22-Jul-17
7
Alamat
word
0
4
Alamat byte
0
1
2
3
4
5
6
7
Alamat
word
0
4
Alamat byte
3
2
1
0
7
6
5
4
.
.
.
2 k - 4 2 k - 4 2 k - 3 2k - 2 2k - 1
(a) Penetapan Big-endian
.
.
.
2k - 4 2k - 1 2k - 2 2k - 3 2k - 4
(b) Penetapan Little-endian
Gambar Pengalamatan byte dan word
22-Jul-17
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.
22-Jul-17
9
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.
22-Jul-17
10
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.
22-Jul-17
11
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.
22-Jul-17
12
Terdapat beberapa format instruksi yang
digunakan oleh komputer diantaranya
adalah :
Format Three Address (instruksi dengan
tiga alamat operand)
Operation
destination,source1,source2
Contoh :
Add A,B,C
AB+C
Artinya : Menjumlahkan isi lokasi memori
B dan C, kemudian menyimpan hasilnya
ke lokasi memori A.
22-Jul-17
13
Format Two Address (instruksi dengan
dua alamat operand)
Operation
source1/destination,source2
Contoh :
Add A,B
AA+B
Artinya : Menjumlahkan isi lokasi memori
A dan B, kemudian menyimpan hasilnya
ke lokasi memori A.
22-Jul-17
14
Format One Address (instruksi dengan
satu alamat operand)
Operation
source
Contoh :
Add A
Acc  Acc + A
Artinya : Menjumlahkan isi lokasi memori
A dengan accumulator. Accumulator
adalah register yang ada di dalam
prosesor.
22-Jul-17
15
Straight Line Sequencing
Pada dasarnya komputer mengeksekusi perintahperintah 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.
22-Jul-17
16
Address
Begin execution here
Gambar
urutan
instruksi
untuk CA+B
i
Contents
Move R0,A
3-instruction
i+4
Add R0,B
program
i+8
Move C,R0
segment
:
:
A
:
:
B
Data for
the
:
:
Program
C
22-Jul-17
17
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.
22-Jul-17
18
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.
22-Jul-17
19
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
22-Jul-17
20
Branching
Pada kasus tertentu kadang diperlukan eksekusi
satu atau beberapa perintah beberapa kali.
Misalkan menjumlahkan bilangan yang terdapat
pada array :
R0 = R0 + Numn n = 1,2,3,…,x
R0 : Register 0
Numn : Data pada array
Kasus diatas dapat diselesaikan dengan
melakukan beberapa kali penjumlahan
(sebanyak n kali), seperti contoh di bawah ini
22-Jul-17
21
I
Program straight
line untuk
penjumlahan n
bilangan
Move Num1,R0
i+4
Add Num2,R0
i+8
Add Num3,R0
:
:
i + 4n – 4
Add Numn,R0
i + 4n
Mov R0,Sum
:
:
Sum
Num1
Num2
Numn
22-Jul-17
22
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
22-Jul-17
23
Mov N,R1
Clear R0
LOOP
Program
penjumlahan n
bilangan dengan
loop
Determine address of “Next” number
and add “Next” number to R0
Decrement R1
Branch > 0 Loop
Move R0, Sum
:
:
SUM
N
n
NUM1
NUM2
:
:
NUMn
22-Jul-17
24
 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.
22-Jul-17
25
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.
22-Jul-17
26
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.
22-Jul-17
27
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, di-clear ke 0.
 C (Carry):
Set ke 1 jika terjadi carry-out dr operasi; jika
tidak, di-clear ke 0.
22-Jul-17
28
Download