Overview Fakultas Ilmu Komputer
Universitas Indonesia
Review: Memory Technology
Apa yang seharusnya anda ketahui • Kuliah sebelumnya: prinsip dasar kerja cell & jenis memory, organisasi chips memory etc.
Review Memory Systems & Technology Trends
Teknologi Trends: benchmark (memory access) • SDRAM, DDR SDRAM, RDDRAM.
Review: Memory Hierarchy
Prinsip dasar rancang bangun semua sistim memori komputer
Johny Moningka (
[email protected])
Fasilkom UI – 2005 Versi: 2.2
OSK/JM-2005/V2.2/2
Memory Technology: Terminology (1/2)
Ditinjau dari cara akses, memori dibagi:
Memory Technology: Terminology (2/2)
Random Access:
• “Random” is good: waktu akses sama untuk semua address memory • Pengertian akses dapat dilakukan pada semua lokasi data (data availabile, dgn waktu akses sama). • Tipikal: semikonduktor memori (tanpa ada latency mekanis).
Access time • Waktu interval antara request data dibaca (ditulis) dan data tersebut deliver (stored)
Cycle time • Waktu antara memori tersebut diakses, sampai waktu memori tersebut dapat diakses lagi. • Waktu antara request
“Non-so-random” Access Technology: • Waktu akses tergantung lokasi dan kapan di akses. • Terdapat lokasi dimana diperlukan search data (mis. head pada disk)
Ukuran kinerja memory
Sequential Access Technology: access time linear in location (e.g., tape)
Examples: Disk, CDROM Bandwidht (throughput) • Rate dimana data dapat ditransfer dari/ke memory
Latency = cycle time + access time
OSK/JM-2005/V2.2/3
Semiconductor RAM
Dalam bentuk package chips (semikonduktor memory) Basic storage unit: cell (satu bit per cell) Multipe RAM chips membangun sistim memory
DRAM & SRAM adalah volatile memory
Non-volatile memory tetap menyimpan informasi walaupun “powered off”
SRAM: Static Random Access Memory
Non-volatile Memories
Key features
OSK/JM-2005/V2.2/4
Low density, high power, expensive, fast Static: content will last (until lose power)
DRAM: Dynamic Random Access Memory
MTI Fasilkom UI
OSK/JM-2005/V2.2/5
Generik: ROM (Read Only Memory), walaupun terdapat jenis ROM yang dapat diubah (write).
Jenis ROM:
High density, low power, cheap, slow Dynamic: need to be “refreshed” regularly
Informasi hilang jika “powered off”
Programmable ROMs (PROM) Eraseable Programmable ROM (EPROM) Flash Memory
OSK/JM-2005/V2.2/6
1
Why we need DRAM speed up ....
The CPU-Memory Gap
Processor-DRAM Memory Gap (latency)
CPU
µProc 55%/yr.
Processor-Memory Performance Gap: (grows 50% / year)
100 10
DRAM
100,000,000 10,000,000 1,000,000 Disk seek time
100,000 ns
Performance
1000
The gap widens between DRAM, disk, and CPU speeds.
DRAM access time
10,000
SRAM access time
1,000
DRAM 7%/yr.
CPU cycle time
100 10
1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
1 1980
1985
1990
1995
2000
year
Time OSK/JM-2005/V2.2/7
Storage Trends
SRAM
DRAM
1980
1985
1990
1995
2000
2000:1980
$/MB access (ns)
19,200 300
2,900 150
320 35
256 15
100 2
190 100
1980
1985
1990
1995
2000
2000:1980
$/MB 8,000 access (ns) 375 typical size(MB) 0.064
880 200 0.256
100 100 4
30 70 16
1 60 64
8,000 6 1,000
metric
Disk
CPU Clock Rates
metric
metric
1980
$/MB 500 access (ms) 87 typical size(MB) 1
OSK/JM-2005/V2.2/8
1985
1990
1995
2000
2000:1980
100 75 10
8 28 160
0.30 10 1,000
0.05 8 9,000
10,000 11 9,000
processor clock rate(MHz) cycle time(ns)
1980 8080 1 1,000
1985 286 6 166
1990 386 20 50
1995 Pent 150 6
2000 P-III 750 1.6
2000:1980 750 750
(Source: Computer Systems, RE Bryant, D. O’Hallaron, Back issues of Byte and PC Magazine) OSK/JM-2005/V2.2/9
Memory Technology: DRAM (1/2)
Memory Technology: DRAM (2/2)
Sinkronus DRAM (SDRAM)
OSK/JM-2005/V2.2/10
Kecepatan memori bus meningkat dari 66 MHz, menjadi 100 MHz, 133 MHz Interface baru chipset (controller):
Saat ini trend teknologi “main memory” dikuasai oleh DDR SDRAM (open standar JEDEC)
Chip specification
• transfer/latch data secara sinkronus (burst) dari/ke CPU (dikenal: 100 Mhz setara dgn 10 ns).
Double Data Rate DRAM (DDR SDRAM)
Interface sama seperti SDRAM, hanya memanfaatkan “edge/trigger clock” naik dan turun => 2 sinyal pada 1 clock • Secara efektif clock 100 MHz => 2 x 100 MHz => 200 MHz
OSK/JM-2005/V2.2/11
MTI Fasilkom UI
DDR-333: DDR-SDRAM - 166 MHz DDR-400: DDR-SDRAM - 200 MHz
Stick/module specification
PC-2700: DDR-SDRAM using DDR-333 chips, 2.667 GByte/s bandwidth per channel PC-3200: DDR-SDRAM using DDR-400 chips, 3.200 GByte/s bandwidth per channel
OSK/JM-2005/V2.2/12
2
Memory Technology: DRAM (3/3)
Recap. Memroy Property: fast, cheap & big
Dual Channel DDR
Platform => dua kanal memory module dapat diakses oleh CPU sekaligus. Terintegrasi dgn sistim chipset (motherboard).
Fakta teknologi memory (tipikal PC):
Rambus (RDRAM)
Protocol based => asinkronus (proprietary Intel dan Rambus Inc.) Interface baru dalam bentuk chips controller dengan clock rate yang lebih tinggi dari SDRAM. Proprietary: mahal dan tidak mendapat dukungan dari industri Tidak banyak dukungan lagi, setelah Intel terpaksa mendukung DDR DRAM pada Pentium 4.
Fakta & cost:
Static RAM: access time: 1-2 ns; size: 256K SDRAM: access time: 20 ns – 100 ns: size 1024 MB Hard-disk (Disk): access time: 5 ms – 10 ms; size: 40 – 200 GB Tape/Network: access time: > 10 ms; size > 1000 GB Memori dengan akses cepat => kapasitas kecil Memori dengan kapasitas kecil => high cost Memory dengan kapasitas besar dan “low cost”, pasti lambat,
Bagaimana membuat sistim memori yang besar, murah dan cepat (… most of the time)?
OSK/JM-2005/V2.2/13
Locality of Programs
Locality Example
Principle of Locality:
Program cenderung menggunakan kembali (reuse) data dan instruksi yang sebelumnya digunakan (recently) Temporal locality: Recently referenced items are likely to be referenced in the near future. Spatial locality: Items with nearby addresses tend to be referenced close together in time.
Umumnya instruksi (code program) mempunyai karakteristik kedua locality tsb
OSK/JM-2005/V2.2/14
Structured programming: flow program Procedure call
• Data – Reference array elements in succession (strideSpatial locality 1 reference pattern): Temporal locality – Reference sum each iteration: • Instructions – Reference instructions in sequence: Spatial locality – Cycle through loop repeatedly: Temporal locality
sum = 0; for (i = 0; i < n; i++) sum += v[i]; return sum;
OSK/JM-2005/V2.2/15
Memory Hierarchies
An Example Memory Hierarchy
Properti dasar dari hardware dan software:
OSK/JM-2005/V2.2/16
Teknologi storage yang cepat lebih mahal per-byte, dengan kapasitas yang lebih kecil. Umumnya program cenderung mengikuti prinsip lokalitas. Terdapat kesenjangan (gap) antara kecepatan CPU dan memory => perlu memory yang cepat
Properti ini yang saling melengkapi untuk membangun sistim memory/storages komputer dalam bentuk memory hierarchy.
Smaller, faster, and costlier (per byte) storage devices
Larger, slower, and cheaper (per byte) storage devices
MTI Fasilkom UI
CPU registers hold words retrieved from L1 cache.
L1: on-chip L1 cache (SRAM) L2:
L3:
L5:
OSK/JM-2005/V2.2/17
L0: registers
off-chip L2 cache (SRAM)
L1 cache holds cache lines retrieved from the L2 cache memory. L2 cache holds cache lines retrieved from main memory.
main memory (DRAM) Main memory holds disk blocks retrieved from local disks.
L4:
local secondary storage (local disks) Local disks hold files retrieved from disks on remote network servers.
remote secondary storage (tapes, distributed file systems, Web servers) OSK/JM-2005/V2.2/18
3
Caches
Ide dasar dari memory hirakis:
Untuk setiap k, “faster”, “smaller” device pada tingkat k melayani sebagai cache untuk “larger”, “slower” device pada tingkat (k+1).
Temporal Locality (Locality in Time):
=> Keep most recently accessed data items closer to the processor
Spatial Locality (Locality in Space):
Fungsi cache?
Memory Hierarchy: How Does it Work?
Cache: A smaller, faster storage device that acts as a staging area for a subset of the data in a larger, slower device.
=> Move blocks consists of contiguous words to the upper levels
Program cenderung mengakses data pada tingkat k lebih sering dibanding mengakses data pada tingkat (k+1). Jadi, storage pada tingkat (k+1) dapat lebih lambat, tapi lebih besar dan murah per-MB.
Lower Level Memory
Upper Level Memory
To Processor
Block
From Processor
Block
Net effect: A large pool of memory that costs as much as the cheap storage near the bottom, but that serves data to programs at the rate of the fast storage near the top.
copy
OSK/JM-2005/V2.2/19
Caching in a Memory Hierarchy Level k:
48
9
10 4
14 10
3
OSK/JM-2005/V2.2/20
General Caching Concepts
Smaller, faster, more expensive device at level k caches a subset of the blocks from level k+1
Data is copied between levels in block-sized transfer units
14 12
Level k:
0
1
2
3
4* 12
9
14
3
12 4*
Level k+1:
0
1
2
4
5
6
7
8
9
10
11
12
13
14
15
Request 12 14
Request 12
Program perlu objek d, yang tersimpan pada blok b. Cache hit
Cache miss
3 Larger, slower, cheaper storage device at level k+1 is partitioned into blocks.
Level k+1:
0
1
2
3
4 4*
5
6
7
8
9
10
11
12
13
14
15
Program finds b in the cache at level k. E.g., block 14.
b is not at level k, so level k cache must fetch it from level k+1. E.g., block 12. If level k cache is full, then some current block must be replaced (evicted). Which one is the “victim”? • Placement policy: where can the new block go? E.g., b mod 4 • Replacement policy: which block should be evicted? E.g., LRU
OSK/JM-2005/V2.2/21
Examples of Caching in the Hierarchy
How is the hierarchy managed?
Cache Type
What is Cached?
Where is it Cached?
Registers
4-byte words
CPU core
0 Compiler
TLB
Address translations 64-bytes block 64-bytes block 4-KB page
On-Chip TLB
0 Hardware
On-Chip L1 Off-Chip L2 Main memory
Parts of files
Main memory
1 Hardware 10 Hardware 100 Hardware+ OS 100 OS
L1 cache L2 cache Virtual Memory Buffer cache
Network buffer Parts of files cache Browser Web pages cache Web cache Web pages
Local disk Local disk Remote server disks
Latency (cycles)
Managed By
10,000,000 AFS/NFS client 10,000,000 Web browser 1,000,000,000 Web proxy server OSK/JM-2005/V2.2/23
MTI Fasilkom UI
OSK/JM-2005/V2.2/22
Apa yang telah dipelajari?
Managed & transfer data? Siapa yang bertanggung jawab. Apa yang dapat dilakukan oleh programmer? Designer? User?
Registers <-> Main-memory
Cache <-> Main-memory
Main-memory <-> Disks
by compiler (programmer?) by the hardware by the hardware and operating system (virtual memory) OSK/JM-2005/V2.2/24
4
Summary ..
Summary
Perkembangan teknologi dan organisasi CPU jauh lebih cepat dari memori => terdapat “gap” antara CPU dan memory.
Solusi teknologi memori mencoba mempersempit gap ini tapi tidak tetap tidak mampu mengejar ketinggalan tsb
Terknologi memori utama teranyar: DDR SDRAM, mampu memompa data ke CPU dalam orde clock 200 MHz, tapi CPU mempunyak clock rate 3 GHz.
OSK/JM-2005/V2.2/25
Pengamatan eksekusi program:
Tidak semua kode program mempunyai kemungkinan yang sama diakses oleh CPU
Program menganut prinsip lokalitas: temporal dan spatial Memori hirarkis adalah pilihan terbaik dalam menyediakan sistim memori yang cepat dengan kapasitas dan cost yang termurah Big IDEA: “gap” antara kecepatan dan kapasitas dalam penyimpanan data (komponen komputer) harus diorganisasikan secara hirarkis dengan memperpendek “gap” tsb, dengan struktur/organisasi baru => caching OSK/JM-2005/V2.2/26
Review Questions 1.
Berikan contoh program (pseudo code) yang tidak menganut prinsip lokalitas (temporal dan spatial) terhada data akses. Berikan karakteristik umum jenis program tsb.
2.
Apakah ada program yang menunjukkan lokalitas temporal yang sangat tinggi, tapi spatial yang rendah terhadap data akses, atau sebaliknya.
3.
Berikan contoh program (pseudo code) yang menunjukkan lokalitas temporal yang tinggi terhadap instruction (fetch).
4.
Misalkan suatu komputer, waktu akses rata-rata cache = 20 ns, waktu akses rata-rata ke main-memory =100 ns. Asumsikan cache hit ratio dapat mencapai 95%. Hitung waktu rata-rata akses efektif sistim memori tersebut?
OSK/JM-2005/V2.2/27
MTI Fasilkom UI
5