Anda di halaman 1dari 58

Organisasi dan Arsitektur Komputer

Bab 5
Memori Internal

Kusprasapta Mutijarsa
Lab Sinyal dan Sistem, Departemen Teknik Elektro ITB
2005
Overview

Sejak dahulu, faktor yang membatasi kinerja


komputer adalah waktu akses memori
ƒ Kecepatan memori lebih lambat dari prosesor
ƒ Suatu proses dapat dibatasi oleh kemampuan sistem
memori untuk bekerja bersama prosesor
Tujuan dari topik ini adalah mempelajari
pengembangan organisasi memori untuk
mendukung kemampuan pemrosesan CPU.

Memori Internal 2
Pembahasan

Karakteristik Sistem Memori


Hirarki Memori
Semiconductor Main Memory
Cache Memory

Memori Internal 3
Karakteristik Sistem Memori

Lokasi - prosesor, internal, eksternal


Kapasitas - ukuran word, jumlah word
Satuan transfer - word, blok
Metoda akses - sekuensial, direct, random, asosiatif
Kinerja - waktu akses, cycle time, transfer rate
Jenis fisik - semikonduktor, magnetik, optikal
Karakteristik Fisik - volatile, erasable
Organisasi – susunan bit dalam membentuk word

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

Banyaknya informasi yang dapat disimpan


dalam satu unit memori
Memori internal
ƒ Kapasitas dalam byte atau word.
ƒ Umumnya panjang 1 word = 8, 16, 32 bit.
Memori eksternal
ƒ Kapasitas dalam byte.

Memori Internal 6
Satuan Transfer

Banyaknya bit terbaca atau tertulis ke memori pada satu


waktu.
Memori internal
ƒ Biasanya ditentukan oleh lebar bus data
Memori eksternal
ƒ Biasanya berupa blok, yang ukurannya lebih besar dari satu
word.
Addressable unit
ƒ Jumlah lokasi memori yang dapat dialamati secara unik.
ƒ Hubungan antara lebar bus alamat (A bit) dengan addressable
unit (N lokasi) adalah 2A = N

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

Kemampuan untuk mempertahankan data (Volatility)


ƒ Volatile = daya dimatikan, data/informasi hilang
ƒ Nonvolatile = tidak diperlukan daya listrik untuk
mempertahankan informasi.
ƒ Mis. magnetic-surface memory
Kemampuan untuk dihapus (Erasability)
ƒ Memori nonerasable tidak dapat diubah, kecuali dengan
menghancurkannya
ƒ Mis. Read only memory (ROM)
Konsumsi daya

Memori Internal 12
Organisasi

Pengaturan fisik bit-bit dalam membentuk word.


Hal yang penting diperhatikan dalam merancang
suatu random-access memory.

Memori Internal 13
Hirarki Memori

Memori Internal 14
Permasalahan

Keterbatasan dalam merancang memori


komputer terdapat pada 3 pertanyaan :
How much ?
Kapasitas memori yang diperlukan
How fast ?
Kecepatan memori (waktu akses) harus dapat
mengikuti prosesor
How expensive ?
Perlu biaya untuk mencapai dua hal di atas

Memori Internal 15
Hubungan Timbal Balik

Semakin cepat waktu akses, semakin besar


biaya per bit.
Semakin besar kapasitas, semakin kecil biaya
per bit.
Semakin besar kapasitas, semakin lambat waktu
akses.

Ketiga hal di atas menimbulkan dilema bagi


perancang sistem komputer

Memori Internal 16
Hirarki Memori

Untuk mengatasi dilema tersebut, perancang


tidak hanya mengandalkan sebuah teknologi
atau komponen memori saja, tetapi
menggunakan hirarki memori.
Hirarki memori (dari atas ke bawah) :
ƒ Biaya per bit menurun
ƒ Kapasitas meningkat
ƒ Waktu akses meningkat (kecepatan menurun)
ƒ Frekuensi pengaksesan memori oleh prosesor
menurun

Memori Internal 17
Urutan Hirarki

Register Biaya per bit


L1 Cache menurun,

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 ?

Dimungkinkan membangun komputer yang


hanya menggunakan static RAM (dibahas
kemudian)
Hal ini berarti :
ƒ diperoleh memori berkecepatan sangat tinggi,
ƒ tidak diperlukan adanya cache,
ƒ diperlukan biaya sangat tinggi.

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

Terjadi kesalahan penggunaan nama, karena seluruh


memori semikonduktor adalah ‘random access’
Dapat dibaca/tulis (Read/Write)
Bersifat volatile
Berfungsi sebagai tempat penyimpanan sementara
Teknologi : statik dan dinamik

Memori Internal 23
Dynamic RAM

Bit data disimpan dalam kapasitor bermuatan


Muatan dapat berkurang atau bocor
Perlu dilakukan ‘refreshing’ walaupun power tetap
terhubung – perlu rangkaian refresh
Konstruksi sederhana
Ukuran sel memori lebih kecil
Harga lebih murah
Kecepatan lebih lambat
Digunakan sebagai memori utama (main memory)

Memori Internal 24
Static RAM

Bit disimpan sebagai saklar on/off (flip-flop)


Tidak ada kebocoran muatan
Tidak perlu melakukan ‘refreshing’ – tidak perlu
rangkaian refresh
Konstruksi lebih rumit
Ukuran sel memori lebih besar
Harga lebih mahal
Kecepatan lebih tinggi
Digunakan sebagai cache

Memori Internal 25
Perbandingan SRAM vs DRAM

Transistor Waktu Data Sensitif Harga Aplikasi


per bit akses bertahan

SRAM 6 x1 ya tidak x 100 Cache


memory

DRAM 1 x 10 tidak ya x1 Main


memory

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

buffer baris internal

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

Buffer baris internal

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

supersel Buffer baris internal


(2,1)
Memori Internal 29
Modul Memori
alamat (baris = i, kolom = j)
: supersel (i,j)
DRAM 0
Modul memori 64 MB
terdiri dari :
8M x 8 DRAM
DRAM 7
(baris x kolom)

bit bit bit bit bit bit bit bit


56-63 48-55 40-47 32-39 24-31 16-23 8-15 0-7

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

Bus adalah kumpulan saluran paralel yang mengalirkan


sinyal alamat, data dan kontrol.
Umumnya digunakan bersama oleh beberapa devais.
CPU chip

register file

ALU

system bus memory bus

I/O main
bus interface
bridge memory

Memori Internal 33
Proses Membaca Memori (1)
CPU meletakkan alamat A pada memory bus.

register file Operasi LOAD : mov A, ax

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

register file Operasi LOAD : mov A, ax

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.

register file Operasi STORE : mov ax, A

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

register file Operasi STORE : mov ax, A

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 berkecepatan tinggi dengan kapasitas kecil.


Terletak antara RAM dan CPU.
Dapat diletakkan pada chip CPU atau suatu modul
tertentu.

Memori Internal 41
Operasi Cache - Ringkasan

CPU meminta data dari suatu lokasi memori RAM


tertentu.
Cache diperiksa apakah memiliki data tersebut
Jika ada, ambil dari cache (cepat)
Jika tidak ada, baca blok yang diperlukan dari RAM dan
simpan di cache.
Kemudian kirimkan dari cache ke CPU
Pada cache terdapat tanda untuk mengidentifikasi blok
mana pada RAM yang isinya terdapat pada setiap slot
cache.

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

Data disalin antara level dengan


10
4 satuan transfer dalam blok

0 1 2 3

4 5 6 7 Devais penyimpan yang besar,


Level k+1:
lambat dan murah pada level k+1
8 9 10 11 dipartisi menjadi blok-blok

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

•••

valid tag 0 1 ••• B–1

set S-1: •••


Ukuran cache :
C = B x E x S byte data 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

Cache yang sederhana


Setiap set hanya memiliki satu baris (line)

set 0: valid tag blok cache E=1 baris per set

set 1: valid tag blok cache

•••

set S-1: valid tag blok cache

Memori Internal 50
Mengakses Direct-Mapped Cache
Memilih set
ƒ Menggunakan bit set index untuk memilih set yang digunakan

set 0: valid tag blok cache

set dipilih valid tag blok cache


set 1:
•••
t bit s bit b bit
set S-1: valid tag blok cache
00 001
m-1
tag set index block offset0

Memori Internal 51
Mengakses Direct-Mapped Cache

Pencocokan baris dan pemilihan word


ƒ Pencocokan baris : mencari baris valid dalam set yang dipilih
dengan mencocokan tag
ƒ Pemilihan word : Selanjutnya mengekstraksi word
=1? (1) Bit valid harus di-set

0 1 2 3 4 5 6 7

Set dipilih (i): 1 0110 w0 w1 w2 w3

(2) Bit tag pada cache


harus cocok dengan = ? (3) Jika (1) dan (2), maka
bit tag pada alamat cache hit, dan block
offset memilih posisi
t bit s bit b bit awal byte
0110 i 100
m-1
tag set index block offset0

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]

0 [00002] (miss) 13 [11012] (miss)


v tag data v tag data
11 0 M[0-1]
m[1] m[0] 1
1 0 M[0-1]
m[1] m[0]

(1) (3) 1
1 1 M[12-13]
m[13] m[12]

8 [10002] (miss) 0 [00002] (miss)


v tag data v tag data
11 1 M[8-9]
m[9] m[8] 11 0 M[0-1]
m[1] m[0]

(4) 1 1 M[12-13]
(5) 11 1
1 M[12-13]
m[13] m[12]

Memori Internal 53
Set Associative Cache

Setiap set memiliki lebih dari satu baris

valid tag blok cache


set 0: E=2 baris per set
valid tag blok cache

valid tag blok cache


set 1:
valid tag blok 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


set 0:
valid tag blok cache

Set dipilih valid tag blok cache


set 1:
valid tag blok 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

Ukuran : 200 B 8-64 KB 1-4MB SRAM 128 MB DRAM 30 GB


Kecepatan : 3 ns 3 ns 6 ns 60 ns 8 ms
$/Mbyte: $100/MB $1.50/MB $0.05/MB
Baris: 8B 32 B 32 B 8 KB

Bertambah besar, lambat dan murah

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

Anda mungkin juga menyukai