Bab 5
Memori Internal
Kusprasapta Mutijarsa
Lab Sinyal dan Sistem, Departemen Teknik Elektro ITB
2005
Overview
Memori Internal 2
Pembahasan
Memori Internal 3
Karakteristik Sistem Memori
Memori Internal 4
Lokasi
Apakah memori terletak di dalam (internal) atau di luar
(eksternal) komputer.
Memori internal seringkali disamakan dengan memori
utama (main memory - RAM), tetapi sebenarnya ada
bentuk lain memori internal, yaitu :
Memori lokal prosesor (register)
Memori pada control unit
Cache memory
Memori eksternal berupa perangkat penyimpan periferal
yang dapat diakses oleh prosesor melalui kontroler I/O,
misalnya :
Hard disk
Optical disk
Tape magnetik
Memori Internal 5
Kapasitas
Memori Internal 6
Satuan Transfer
Memori Internal 7
Metoda Akses
Sekuensial
Dimulai dari awal dan dibaca secara berurutan.
Waktu akses bergantung pada lokasi data dan lokasi
sebelumnya.
Contoh : tape
Langsung (Direct)
Setiap blok/record memiliki alamat yang unik berdasarkan lokasi
secara fisik.
Pengaksesan dilakukan secara langsung ke lokasi ditambah
proses pencarian sekuensial untuk mencapai lokasi akhir.
Waktu akses bergantung pada lokasi data dan lokasi
sebelumnya.
Contoh : disk
Memori Internal 8
Metoda Akses - lanjutan
Random
Setiap lokasi memori memiliki alamat yang unik
Waktu akses tidak tergantung pada lokasi pengaksesan
sebelumnya.
Contoh : RAM
Asosiatif
Jenis akses random, dimana dilakukan perbandingan lokasi bit
yang dituju dengan suatu word data untuk mencari kecocokan.
Waktu akses tidak tergantung pada lokasi pengaksesan
sebelumnya.
Contoh : cache
Memori Internal 9
Kinerja
Waktu akses
Waktu antara memberikan alamat memori hingga
diperoleh data yang valid.
Cycle time
Umumnya memori perlu waktu untuk “recover”
sebelum melakukan pengaksesan berikutnya.
Cycle time = waktu akses + recovery
Kecepatan transfer
Kecepatan perpindahan data dari dan ke memori.
Satuannya : bit per detik (bps)
Memori Internal 10
Jenis Fisik
Semikonduktor
RAM
Magnetik
Disk dan Tape
Optikal
CD & DVD
Memori Internal 11
Karakteristik Fisik
Memori Internal 12
Organisasi
Memori Internal 13
Hirarki Memori
Memori Internal 14
Permasalahan
Memori Internal 15
Hubungan Timbal Balik
Memori Internal 16
Hirarki Memori
Memori Internal 17
Urutan Hirarki
L2 Cache Kapasitas
Main memory - RAM meningkat,
Magnetic Disk – Hard disk
Waktu akses
Optical Disk / CD meningkat,
Magnetic Tape
Frekuensi
WORM (Write Once Read Many) pengaksesan
menurun.
Memori Internal 18
Hirarki Memori
Kapasitas
Besar Kecil
L2 CPU Core
Streamer Hard disk Main Cache L1 Cache
Memory
Rendah Tinggi
Kinerja
Memori Internal 19
Ingin Memiliki Memori Cepat ?
Memori Internal 20
Semiconductor Main Memory
Memori Internal 21
Jenis Memori Semikonduktor
Memory Write
Category Erasure Volatility
types Mechanism
Read-write Electrically,
RAM Electrically Volatile
memory byte level
ROM Masks
Read-only
Not possible
memory
PROM
UV light,
EPROM Nonvolatile
chip level
Electrically
Flash Read-mostly Electrically,
Memory memory block level
EEPROM Electrically,
byte level
Memori Internal 22
Random Access Memori - RAM
Memori Internal 23
Dynamic RAM
Memori Internal 24
Static RAM
Memori Internal 25
Perbandingan SRAM vs DRAM
Memori Internal 26
Organisasi DRAM Konvensional
Total d x w bit, disimpan dalam d buah supersel berukuran w bit
16 x 8 DRAM chip
kolom
0 1 2 3
2 bit 0
/
alamat
1
baris
memory supersel
2
controller (2,1)
(ke CPU)
3
8 bit
/
data
Memori Internal 27
Membaca DRAM – Supersel (2,1)
Langkah 1(a): Row access strobe (RAS) memilih baris ke 2.
Langkah 1(b): Baris 2 disalin dari DRAM array ke buffer baris.
16 x 8 DRAM chip
kolom
0 1 2 3
RAS = 2
2
/ 0
alamat
1
baris
memory
controller 2
8 3
/
data
Memori Internal 28
Membaca DRAM – Supersel (2,1)
Langkah 2(a): Column access strobe (CAS) memilih kolom 1.
Langkah 2(b): Supercell (2,1) disalin dari buffer ke saluran data & dikirim ke
CPU 16 x 8 DRAM chip
kolom
0 1 2 3
CAS = 1
2 0
/
alamat
ke CPU 1
baris
memory
2
controller
supersel 3
8
(2,1) /
data
63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0
Memory
controller
64-bit doubleword pd main memory alamat A
64-bit doubleword
Memori Internal 30
Enhanced DRAM
Seluruh DRAM yang ada saat ini dibangun berdasarkan DRAM
konvensional, yaitu :
Fast Page Mode DRAM (FPM DRAM)
Mengakses isi baris secara [RAS, CAS, CAS, CAS], bukan [(RAS,CAS),
(RAS,CAS), (RAS,CAS), (RAS,CAS)]
Extended Data Output DRAM (EDO DRAM)
Peningkatan FPM DRAM, jarak antara sinyal CAS lebih dekat
Synchronous DRAM (SDRAM)
Dikendalikan secara sinkron pada sisi clock naik
Double Data-Rate Synchronous DRAM (DDR SDRAM)
Peningkatan SDRAM, sinyal kontrol menggunakan kedua sisi clock
Video RAM (VRAM)
Seperti FPM DRAM, output diperoleh dengan menggeser buffer baris (shift)
Memiliki dua port (dapat melakukan proses baca dan tulis secara
bersamaan
Memori Internal 31
Nonvolatile Memory
DRAM dan SRAM termasuk kategori volatile memory
Informasi hilang jika daya listrik dimatikan
Nonvolatile memory dapat mempertahankan isinya walaupun daya
dimatikan
Nama generiknya adalah read-only memory (ROM)
Terjadi salah arti, karena beberapa ROM dapat dimodifikasi
Jenis-jenis ROM
Programmable ROM (PROM)
Eraseable Programmable ROM (EPROM)
Electrically Eraseable PROM (EEPROM)
Flash memory
Firmware
Program yang disimpan di ROM
Boot time code, BIOS (basic input/output system)
Graphic card, disk controller
Memori Internal 32
Struktur Bus CPU-Memori
register file
ALU
I/O main
bus interface
bridge memory
Memori Internal 33
Proses Membaca Memori (1)
CPU meletakkan alamat A pada memory bus.
ALU
ax
main memory
I/O bridge 0
A
bus interface x A
Memori Internal 34
Proses Membaca Memori (2)
Main memory membaca A dari memory bus, mengambil word x,
dan meletakkannya pada bus
register file
Operasi LOAD : mov A, ax
ALU
ax
main memory
I/O bridge x 0
bus interface x A
Memori Internal 35
Proses Membaca Memori (3)
CPU membaca word x dari bus dan menyalinnya ke register %eax
ALU
ax x
main memory
I/O bridge 0
bus interface x A
Memori Internal 36
Proses Menulis ke Memori (1)
CPU meletakkan alamat A pada bus. Main memory membacanya
dan menunggu munculnya word data.
ALU
ax y
main memory
I/O bridge 0
A
bus interface A
Memori Internal 37
Proses Menulis ke Memori (2)
CPU meletakkan word data y pada bus
ALU
ax y
main memory
I/O bridge 0
y
bus interface A
Memori Internal 38
Proses Menulis ke Memori (3)
Main memory membaca word data y dari bus dan menyimpannya di
alamat A.
register file
Operasi STORE : mov ax, A
ALU
ax y
main memory
I/O bridge 0
bus interface y A
Memori Internal 39
Cache Memori
Memori Internal 40
Cache Memori
Memori Internal 41
Operasi Cache - Ringkasan
Memori Internal 42
Cache Memori
Cache memory adalah memori berbasis SRAM berukuran kecil dan
berkecepatan tinggi yang dikendalikan secara otomatis oleh
hardware.
Menyimpan suatu blok dari main memory yang sering diakses oleh CPU
Dalam operasinya, pertama-tama CPU akan mencari data di L1,
kemudian di L2, dan main memory.
CPU
register file
L1
ALU
cache
cache bus system bus memory bus
I/O main
L2 cache bus interface
bridge memory
Memori Internal 43
Cache Pada Hirarki Memori
Devais penyimpan yang lebih
kecil, cepat dan mahal pada
Level k: 48 9 14
10 3 level k merupakan cache
dari subset blok pada level k+1
0 1 2 3
12 13 14 15
Memori Internal 44
Konsep Umum Cache
Program memerlukan obyek d yang
Request
14
12
12
14 disimpan dalam suatu blok b
0 1 2 3 Cache hit
Level 4*
12 9 14 3 Program menemukan b dalam cache level
k: k. Misalnya pada blok 14.
Cache miss
12
4* Request
12 B tidak terdapat pada level k, sehingga
cache level k harus mengambilknya dari
level k+1. Misalnya blok 12.
Jika cache level k penuh, maka suatu blok
0 1 2 3
harus diganti isinya. Blok mana yang
Level 4
4* 5 6 7 menjadi “korban” ?
k+1: 8 9 10 11 Placement policy : dimana blok baru
12 13 14 15 diletakkan. Misalnya b mod 4
Replacement policy : blok mana yang
harus terusir ? Misalnya LRU
Memori Internal 45
Konsep Umum Cache
Jenis cache miss :
Cold (compulsary) miss
Cold miss terjadi jika cache kosong.
Conflict miss
Cache pada level k+1 membagi blok menjadi subset berukuran
kecil yang dapat diletakkan pada level k.
Misalnya, blok i pada level k+1 harus diletakkan pada blok (i mod
4) pada level k+1.
Conflict miss terjadi jika cache level k berukuran cukup besar,
tetapi suatu kumpulan obyek data dipetakan pada blok yang sama
di level k.
Misalnya jika mereferensikan blok 0, 8, 0, 8, 0, 8, … akan terjadi
miss secara terus menerus.
Capacity miss
Occurs when the set of active cache blocks (working set) is larger
than the cache.
Memori Internal 46
L1 Cache
register dalam CPU memiliki
Satuan transfer antara tempat untuk menyimpan empat
register dan cache dalam word berukuran 4-byte.
blok berukuran 4-byte
baris 0 L1 cache memiliki tempat untuk
menyimpan dua blok berukuran
baris 1 4-word
Satuan transfer antara
cache dan main memory
dalam blok berukuran
4-word blok 10 abcd
...
main memory memiliki tempat
blok 21 pqrs
untuk meyimpan blok-blok
... berukuran 4-word
blok 30 wxyz
...
Memori Internal 47
Organisasi Cache Memory
1 valid bit t tag bit B = 2b byte
Cache adalah array per baris per baris per blok cache
dari kumpulan set.
Setiap set berisi valid tag 0 1 ••• B–1
satu atau lebih E baris
set 0: •••
baris. per set
Setiap baris valid tag 0 1 ••• B–1
menyimpan satu
blok data.
valid tag 0 1 ••• B–1
set 1: •••
S= 2s set valid tag 0 1 ••• B–1
•••
Memori Internal 48
Pengalamatan Cache
Alamat A:
t bit s bit b bit
m-1 0
v tag 0 1 • • • B–1
set 0: •••
v tag 0 1 • • • B–1 <tag> <set index> <block offset>
v tag 0 1 • • • B–1
set 1: •••
v tag 0 1 • • • B–1
Data word pada alamat A berada
••• dalam cache jika bit <tag> dan <set
v tag 0 1 • • • B–1 index> cocok dan berada dalam baris
set S-1: ••• yang valid.
v tag 0 1 • • • B–1
Isi word dimulai dari byte ofset <block
offset> pada awal blok
Memori Internal 49
Direct-Mapped Cache
•••
Memori Internal 50
Mengakses Direct-Mapped Cache
Memilih set
Menggunakan bit set index untuk memilih set yang digunakan
Memori Internal 51
Mengakses Direct-Mapped Cache
0 1 2 3 4 5 6 7
Memori Internal 52
Simulasi Direct-Mapped Cache
M=16 byte alamat, B=2 byte/blok,
t=1 s=2 b=1 S=4 set, E=1 entri/set
x xx x
Penelusuran alamat (baca):
0 [00002], 1 [00012], 13 [11012], 8 [10002], 0 [00002]
(1) (3) 1
1 1 M[12-13]
m[13] m[12]
(4) 1 1 M[12-13]
(5) 11 1
1 M[12-13]
m[13] m[12]
Memori Internal 53
Set Associative Cache
•••
valid tag blok cache
set S-1:
valid tag blok cache
Memori Internal 54
Mengakses Set Associative Cache
Memilih set
Serupa dengan direct-mapped cache
•••
valid tag blok cache
t bit s bit b bit set S-1:
valid tag blok cache
00 001
m-1
tag set index block offset0
Memori Internal 55
Mengakses Set Associative Cache
Pencocokan baris dan pemilihan word
Harus membandingkan setiap tag pada baris yang valid dalam
set yang dipilih
=1? (1) Bit valid harus di-set.
0 1 2 3 4 5 6 7
1 1001
Set dipilih (i):
1 0110 w0 w1 w2 w3
(2) Bit tag pada salah satu (3) Jika (1) dan (2), maka
=? cache hit, dan block
baris cache harus cocok
offset memilih posisi
dengan bit tag pada alamat
awal byte
t bit s bit b bit
0110 i 100
m-1
tag set index block offset0
Memori Internal 56
Multi-Level Cache
Pada cache, data dan instruksi dapat dipisah atau diletakkan dalam
tempat yang sama
Reg L1
Prosesor Unified
d-cache Unified
L2
L2 Memori
Memori disk
disk
L1 Cache
Cache
i-cache
Memori Internal 57
Hirarki Cache Intel Pentium
L1 Data
1 cycle latency
16 KB
4-way assoc L2
Reg. L2Unified
Unified
Write-through 128KB--2
128KB--2MB MB Main
32B lines 4-way assoc Main
4-way assoc Memory
Write-back Memory
Write-back Hingga
Write Hingga4GB
4GB
L1 Instruction Writeallocate
allocate
32B lines
32B lines
16 KB, 4-way
32B lines
Chip
ChipProsesor
Prosesor
Memori Internal 58