ARSITEKTUR DAN ORGANISASI KOMPUTER
Aditya Wikan Mahastama
mahas@ukdw.ac.id
UNIV KRISTEN DUTA WACANA – GENAP 1213 v2
3
Pengantar Memory dan Memory Internal
• A chipset is a set of electronic
components in an integrated circuit that manage the data flow between the processor, memory and peripherals, e.g. Determining each bus’ speed comparable to the system clock. • Chipsets are usually designed to work with a specific family of microprocessors. • Because it controls communications between the processor and external devices, the chipset plays a crucial role in determining system performance.
Tambahan Topik Bus: tentang Chipset
Main chipset components on a motherboard • Chipset can limit implementation of instructions known to CPU, due to hardware limitations.Arus Data Dalam Komputer
Memori (RAM) Memori (RAM) CPU CPU Storage Storage External Devices External Devices Program, Data Program, Data, Alamat Data, Control, Alamat Control, data alamat periferal, alamat memori Data, Interrupt Data, Control, Alamat Modul I/O Modul I/O Data, Control Data DMA Data, Interrupt Control, data alamat periferal Data Instruksi dari CPU: ‐Dikirim sebagai control signal (read, write) ‐Instruksi lainnya dikirim dalam bentuk bahas mesin melewati jalur data yang akan diartikan oleh controller peripheralOverview: Bagaimana Program Dijalankan?
Memori (RAM) CPU Instruksi Bahasa Assembly /Mesin, Data Instruksi Bhs. Assembly/ Mesin (dapat memuat alamat), Data Data, Control, Alamat Data, Control, Alamat Sistem Operasi Sistem Operasi Storage Storage Pertama‐tama, user program dalam bentuk instruksi, akan diload dari storage ke memori Sistem operasi: sebuah perangkat lunak yang berada di memory selama komputer bekerja, bertugas sebagai perantara dan pengatur (manager) proses kerja sama seluruh perangkat lunak dan perangkat keras. Contoh tugasnya adalah mengatur penyimpanan program dalam wujud instruksi dari storage ke memory, supaya dapat dijalankan secara urut oleh CPUOverview: Bagaimana Program Dijalankan?
Memori (RAM) CPU Instruksi Bahasa Assembly /Mesin, Data Instruksi Bhs. Assembly/ Mesin (dapat memuat alamat), Data Data, Control, Alamat Data, Control, Alamat Sistem Operasi Sistem Operasi Storage Storage Kompilasi atau interpretasi: proses menerjemahkan program dari bahasa pemrograman ke bahasa yang dimengerti mesin CPU dan Chipset (instruksi bahasa assembly atau langsung ke bahasa mesin). Hasil kompilasi berupa file bahasa mesin (EXE atau COM pada sistem Windows) yang tidak perlu diterjemahkan ulang, sedangkan interpretasi tidak menghasilkan residu terjemahan. Kompiler atau interpreter biasanya disediakan oleh editor bahasa pemrograman.Memori (RAM) CPU Instruksi Bahasa Assembly /Mesin, Data Instruksi Bhs. Assembly/ Mesin (dapat memuat alamat), Data Data, Control, Alamat Data, Control, Alamat Sistem Operasi Sistem Operasi Storage Storage Setelah berada di RAM, tiap instruksi akan dibaca oleh CPU, disimpan sementara ke dalam register, kemudian diartikan dan dikerjakan dalam instruksi‐instruksi atomik yang sesuai dengan organisasinya. Jadi ada baiknya sebelum melihat lebih detail bagaimana sebuah program dijalankan, kita lihat terlebih dahulu soal memory yang berperan R R R
Overview: Bagaimana Program Dijalankan?
Internal Memory
•
Memori yang terikat erat dengan berfungsinya
arsitektur dan organisasi sistem ybs.
External Memory
•
Memori yang tidak terikat erat dengan
berfungsinya arsitektur dan organisasi sistem ybs.,
lebih berfungsi sebagai tempat menyimpan data
permanen.
Memory
Internal Memory
External Memory
Register dan Cache (berada di dalam CPU)
Semikonduktor (Chip/IC)
•
Read Only Memory,
Random Access Memory,
Solid State Device, Register,
Cache
Lapisan Induktif Magnetik
•
Hard Disk, Tape/Pita
Lapisan Optik Terukir
•
CD, DVD
Bahan Memory
Karakteristik Bahan:
•
Seberapa besar
kemungkinan rusaknya
data
•
Gampang dipindahkan
atau tidak
•
Bisa dihapus atau tidak
(erasable)
•
Membutuhkan daya
atau tidak untuk
menyimpan data
Bagaimana Data Disimpan?
0101010101010 0101010101010 1111010101001 1111010101001 0010101010101 0010101010101 0000 0001 0010 1010100111010 1010100111010 0011 0000010101111 0000010101111 0110 Address Bus Line Address Bus Line Data Bus Line Data Bus Line Control Bus Line Control Bus Line Address Data Word • Semua data disimpan dalam bentuk bit biner • Data disimpan dalam satuan word. Tiap memori dapat memiliki ukuran word masing‐ masing • Bagaimana dengan karakter/angka desimal?Bagaimana Data Disimpan?
0101010101010 0101010101010 1111010101001 1111010101001 0010101010101 0010101010101 0000 0001 0010 1010100111010 1010100111010 0011 0000010101111 0000010101111 0110 Address Bus Line Address Bus Line Data Bus Line Data Bus Line Control Bus Line Control Bus Line Data Word • Lebar jalur alamat (address bus) mempengaruhi jumlah ruang data yang dapat dialamati • Tidak serta merta mengikuti hardware memory 4-bit 4-bitBagaimana Data Disimpan?
0101010101010 0101010101010 1111010101001 1111010101001 0010101010101 0010101010101 0000 0001 0010 1010100111010 1010100111010 0011 0000010101111 0000010101111 0110 Address Bus Line Address Bus Line Data Bus Line Data Bus Line Control Bus Line Control Bus Line • Ukuran maksimum word sama dengan lebar jalur data (data bus), tetapi bisa juga lebih kecil dalam bentuk pembagian basis dua dari lebar jalur data. • Jika ukuran word lebih kecil, transfer bisa dilakukan dalam beberapa word, disebut block. 16-bit•
Tiap bagian komponen yang secara fisik digunakan
untuk menyimpan satu bit data pada sebuah
memori disebut dengan memory cell.
•
Contoh memory cell:
– Satu rangkaian memory cell pada RAM – Satu ceruk pada DVD – Satu petak lapisan terinduksi magnet pada hard diskBagaimana Data Disimpan?
•
Jika lebar jalur alamat bus adalah 8‐bit, berapa
jumlah ruang memori yang dapat dialamati, dan
berapa range indeks alamatnya?
•
Jika ukuran word sebuah RAM adalah 64‐bit dan
jalur data bus yang terhubung dengannya adalah
512‐bit, berapa maksimum banyak word yang
dapat terkirim dalam satu blok?
Test Question
•
Access time (waktu akses)
–
Waktu yang dibutuhkan untuk mencari lokasi
data dan mengambil data
•
Memory Cycle time (waktu siklus)
–
Waktu yang dibutuhkan memory untuk
“recover” sebelum akses berikutnya
–
Cycle time adalah access time + recovery time
•
Transfer Rate (kecepatan transfer)
–
Kecepatan perpindahan data Æ hardware
•
1. Registers
•
2. L1 Cache
•
3. L2 Cache, L3 dan seterusnya…
•
4. Main memory – RAM
•
5. Solid State Drive – SSD?
•
6. Disk cache ‐ misal di hard disk
•
7. Disk devices
•
8. Optical devices
•
9. Tape devices
•
Sequential
– Mulai dari awal dan membaca (read) sesuai urutan data.
Tidak ada alamat spesifik.
– Waktu akses tergantung dari letak data dan letak pointer terakhir
– Contoh: tape (pita magnetik)
•
Direct
– Setiap block memiliki alamat yang unik
– Akses dilakukan dengan melompat (jump) ke alamat block terdekat kemudian diteruskan secara sequential – Waktu akses tergantung dari letak data dan letak
pointer terakhir – Contoh: disk
•
Random
– Setiap alamat menunjuk ke lokasi word yang pasti
– Waktu akses tidak tergantung dari letak data dan letak pointer terakhir
– Contoh: RAM
•
Associative
– Pencarian lokasi data didasarkan pada perbandingan sebagian dari isinya atau mappingnya (located by a comparison with contents of a portion of the store)
– Waktu akses tidak tergantung dari letak data dan letak pointer terakhir
– Contoh: cache
(1)
Read Only Memory (ROM)
•
Penyimpanan permanen
–
Non‐volatile
•
Diprogram secara microprogramming (pemrograman
mikroprosessor)
•
Biasanya untuk menyimpan:
‐
Library subroutines untuk fungsi2 sistem yang sering
dipanggil (pada masa dahulu)
‐ Systems programs (BIOS)
Berkembang penggunaannya dalam Flash Disk dan SSD
Jenis‐jenis ROM
•
Program ditulis pada saat pembuatan (manufaktur) – masks Æ
tidak bisa diubah/dihapus.
•
Programmable (once)
–
PROM (PROgrammable Memory) (OTP‐ROM)
–
Diprogram dengan alat khusus – biasanya di pabrik MB
•
Programmable ‐ Program bisa di tulis ulang
Untuk menulis membutuhkan waktu lebih lama dari membaca
–
Erasable Programmable (EPROM)
•
Dihapus dengan UV – semua isi memory
–
Electrically Erasable (EEPROM)
•
Dihapus secara elektrik
dg field emission
(Fowler‐Nordheim tunneling)– bisa per byte
–
Flash memory
•
Dihapus secara elektrik
dg field emission
– bisa semua isi
memory, bisa per blok
Jenis‐Jenis ROM
EPROM
Flash Memory
• Flash memory is an electronic (i.e. no moving parts) non‐ volatile computer storage device that can be electrically erased and reprogrammed.
• Flash memory was developed from EEPROM (electrically erasable programmable read‐only memory). There are two main types of flash memory, which are named after
the NAND and NOR logic gates. The internal characteristics of the individual flash memory cells exhibit characteristics
similar to those of the corresponding gates.
• NAND type flash memory may be written and read in blocks (or pages) which are generally much smaller than the entire device. The NOR type allows a single machine word (byte) to be written or read independently.
Flash Memory
•
Generally faster to read than to write
•
Micron Technology
and
Sun
Microsystems
announced an SLC NAND flash
memory chip rated for 1,000,000 P/E cycles
on 17 December 2008
Random Access Memory (RAM)
–
Operasi: Baca & Tulis (Read & Write)
–
Volatile (membutuhkan daya untuk menyimpan data)
–
Sarana penyimpanan temporer saja
–
Bersifat static atau dynamic
–
Secara fisik terdiri atas sel‐sel memory, satu sel dapat
menyimpan satu bit
Operasi pada Sel-sel memory
Dynamic RAM (DRAM)
•
ANALOG (Menggunakan KAPASITOR), besar kecilnya
muatan menentukan nilai data 0 atau 1
•
Bit data disimpan sebagai muatan (charge) di dalam
kapasitor
•
Muatan cenderung bocor (berkurang)
•
Membutuhkan refreshing, meskipun dalam kondisi ada
daya (power on)
Æ Membutuhkan adanya sirkuit untuk refresh
Æ
Lebih lambat
•
Konstruksi lebih sederhana, lebih murah biayanya
•
Tempat yang dipakai per bitnya lebih kecil
Kapasitor
Muatan kapasitor waktu 1 0 t=1 t=2 t=3 t=4 WRITEBagaimana Me‐refresh DRAM
• Dengan refresh circuit yang
terintegrasi dalam controller chip, melakukan refresh tiap interval
tertentu sebelum waktu paruh yang dapat merubah data.
• Cara kerja:
1. Disable chip (chip dibuat tidak bisa diakses untuk sementara) 2. Count through rows (dilakukan per baris sel‐sel memory):
3. Read & Write back (Baca dan tulis lagi ke alamat yang sama)
• Hal ini membutuhkan waktu dan memperlambat kinerja Muatan kapasitor waktu 1 0 t=1 t=2 t=3 t=4 READ WRITE WRITE
Static RAM (SRAM)
•
DIGITAL (Menggunakan rangkaian flip‐flop)
•
Bits disimpan sebagai switch on/off (secara logika)
•
Tidak memakai tegangan yang dapat bocor, sehingga
tidak membutuhkan refreshing selama ada daya
(powered), lebih cepat
•
Konstruksi lebih rumit
•
Ukuran memory cell
lebih besar
•
Lebih mahal
Kesimpulan SRAM vs DRAM
•
Keduanya volatile
–
Membutuhkan daya untuk menyimpan data
•
Dynamic cell
–
Lebih gampang dibuat dan lebih kecil
–
Lebih padat (lebih banyak bit bisa disimpan)
–
Memungkinkan dibuat keping memory bersatuan
besar
–
Murah
–
Tapi butuh refresh
•
Static cell
–
Lebih cepat, tidak butuh refresh, tapi mahal
–
Hanya untuk cache
Synchronous DRAM (SDRAM)
•
Akses disinkronisasikan dengan external clock (biasanya
system clock / clock CPU)
•
Pada proses pembacaan data dari RAM:
1. RAM dikirim alamat yg akan dibaca
2. RAM mencari data
Pada DRAM konvensional, CPU akan menunggu
3. Pada SDRAM, karena proses perpindahan data sudah
dijadwalkan, CPU tahu kapan data siap, sehingga CPU tidak
harus menunggu, bisa mengerjakan hal lain dulu selama
interval tunggu ‐
Column Address Strobe (CAS) latency•
Burst mode (kalau ada) membuat SDRAM dapat melakukan
stream data dengan mengirimnya dalam bentuk blok serial
•
Double Data Rate (DDR)‐SDRAM mengirim data dua kali per
CAS Latency (in simple)
•
Access time spesifik pada RAM
clocks Controller receives read signal and address from input pin
Data lookup and retrieval from chips (“lookup between columns”) Data ready in output pin t=0 t=n
Selingan: Hendak Tahu Lebih Banyak?
•
Ketika ingin tahu lebih banyak mengenai spesifikasi
hardware, lihat di mana?
Packaging
A: Address PinD: Data PinVcc: Power Supply Pin CAS: Column Address
Select
Vss: Ground pin
Vpp: Program voltage pin CE: Chip enable pin
RAS: Row Address Select
Organisasi Memory
•
Kenapa ada beberapa chip semikonduktor (IC) dalam
sekeping memory?
•
SISTEM A BIT PER CHIP
•
Sekeping memory 16Mbit bisa diorganisasikan
sebagai 1M kali 16 bit words
•
Sistem “A bit per chip” punya 16 lot x 1Mbit chip
dengan bit pertama tiap word ada di chip 1, bit ke 2
ada di chip 2 dan seterusnya
Organisasi Memory
•
Namun, sekeping memory 16Mbit juga dapat
diorganisasikan dalam 2048 x 2048 x 4bit array
(multiplexed)
•
Cara ini dapat m
engurangi jumlah pin alamat
• Multiplex row address and column address • 11 pins to address (211=2048)
• Adding one more pin doubles range of values so x4 capacity
Organisasi Memory
•
A Bit Per Chip
•
Multiplexed
2^4 storage words = 4 pins
RAMBUS® RDRAM
•
Dahulu Diadopsi Intel untuk seri Pentium keatas
•
(Tadinya) Kompetitor SDRAM & DDR Æ gagal karena
skandal
•
Adalah DDR dengan Bus khusus DRAM, pertukaran data
lewat 28 kabel dengan panjang < 12 cm. CPU request data
ke controller RDRAM
•
Bus mengalamati sampai 320 RDRAM chips dengan
kecepatan 1.6Gbps (480ns access time)
Ringkasan Tipe‐tipe Memory
Semikonduktor
(2)
Error Correction
•
Error di memory: kerusakan data: macet di 0
atau 1, atau berubah‐ubah antara 0 dan 1
•
Jenis Error: Hard Failure
–
Bersifat permanen, fisik, disebabkan penggunaan
yang tidak semestinya, cacat pabrik atau usia
•
Jenis Error: Soft Error
–
Random, non‐destructive
–
Tidak permanen, disebabkan masalah power
supply
Error Correction
•
CPU tahu mengubah bit yang salah jadi yang
benar:
0
jadi
1
1
jadi
0
•
Masalahnya, dia tidak tahu bit mana yang
harus diubah!!
•
Untuk itulah ada Hamming Error Correcting
Code (Hamming ECC)
Fungsi Error Correction
f: fungsi error correction M: data sebanyak M-bit
K: K-bit kode hasil perhitungan fungsi
Sebenarnya disimpan di memory: M-bit data + K-bit kode
Hamming Error Correcting Code
•
Diciptakan Richard Hamming di Bell Laboratories
pada 1950
•
Mekanisme pendeteksian kesalahan dengan
menyimpan parity check bit (bit cek paritas)
bersama bit‐bit data asli sebagai penanda pola
data, untuk memeriksa apakah ada data yang
berubah
•
Pemikiran dasar: dari serentetan bit data pasti
bisa didapatkan sebuah ciri yang menunjukkan
keterhubungan antar data. Ciri tersebut disimpan
sebagai check bit
Hamming Error Correcting Code
•
Misal ada 4 bit data biner
•
Jika 4 bit data tersebut dianggap sebagai anggota
tunggal perpotongan himpunan, berarti
Hamming Error Correcting Code
•
Buat aturan yang menyatakan hubungan antara
perpotongan himpunan dengan seluruh anggota
dalam himpunan itu sendiri
•
Misal jumlah angka 1 dalam sebuah himpunan
harus genap dan anggota tiap himpunan harus 4
Hamming Error Correcting Code
•
Buat aturan yang menyatakan hubungan antara
perpotongan himpunan dengan seluruh anggota
dalam himpunan itu sendiri
•
Misal jumlah angka 1 dalam sebuah himpunan
harus genap
Hamming Error Correcting Code
•
Buat aturan yang menyatakan hubungan antara
perpotongan himpunan dengan seluruh anggota
dalam himpunan itu sendiri
•
Misal jumlah angka 1 dalam sebuah himpunan
harus genap
Hamming Error Correcting Code
•
Buat aturan yang menyatakan hubungan antara
perpotongan himpunan dengan seluruh anggota
dalam himpunan itu sendiri
•
Misal jumlah angka 1 dalam sebuah himpunan
harus genap
Hamming Error Correcting Code
•
Simpan anggota himpunan yang tidak
berpotongan sebagai parity check bit
•
Gunakan bit penanda yang telah disimpan dengan
membandingkan hasil perhitungan bit penanda
setelah data dibaca, untuk menentukan letak
kesalahan bit
•
Dari contoh sebelumnya:
Parity Check Bit:
0 1 0
Hamming Error Correcting Code Idea
How to Use?
Hamming Error Correcting Code Idea
How to Use?
Hamming Error Correcting Code Idea
How to Use?
Hamming Error Correcting Code Idea
How to Use?
Hamming Error Correcting Code Idea
How to Use?
Implementasi Hamming
•
Untuk tiap 8 bit data D, pada posisi bit dimana posisi angka
biner 1 hanya sebuah, disisipkan satu check bit C
•
Data yang disimpan
menjadi 12 bit
Implementasi Hamming
•
Aturan untuk menentukan C:
C1 = D1 ⊕ D2 ⊕ D4 ⊕ D5 ⊕ D7
C2 = D1 ⊕ D3 ⊕ D4 ⊕ D6 ⊕ D7
C4 = D2 ⊕ D3 ⊕ D4 ⊕ D8
Implementasi Hamming
•
Kemudian check bits yang didapat saat data
disimpan di ⊕‐kan dengan check bits saat
pembacaan.
•
Bilangan biner yang didapat menunjukkan letak
bit data yang salah, kemudian bit yang salah di
NOT‐kan
Implementasi Hamming
•
Contoh, Write data ke memory:
1 0 1 0 0 1 0 1
•
Tentukan C:
C1 = 1 ⊕ 0 ⊕ 0 ⊕ 0 ⊕ 0
C2 = 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 1
C4 = 0 ⊕ 1 ⊕ 0 ⊕ 1
C8 = 0 ⊕ 1 ⊕ 0 ⊕ 1
•
Hasil:
C1 = 1
C2 = 0
C4 = 0
C8 = 0
C1 = D1 ⊕ D2 ⊕ D4 ⊕ D5 ⊕ D7 C2 = D1 ⊕ D3 ⊕ D4 ⊕ D6 ⊕ D7 C4 = D2 ⊕ D3 ⊕ D4 ⊕ D8 C8 = D5 ⊕ D6 ⊕ D7 ⊕ D8Implementasi Hamming
•
Contoh, Read data dari memory:
1 0 1 0 1 1 0 1
•
Tentukan C:
C1 = 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 0
C2 = 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1
C4 = 0 ⊕ 1 ⊕ 1 ⊕ 1
C8 = 0 ⊕ 1 ⊕ 0 ⊕ 1
•
Hasil:
C1 = 0
C2 = 1
C4 = 1
C8 = 0
C1 = D1 ⊕ D2 ⊕ D4 ⊕ D5 ⊕ D7 C2 = D1 ⊕ D3 ⊕ D4 ⊕ D6 ⊕ D7 C4 = D2 ⊕ D3 ⊕ D4 ⊕ D8 C8 = D5 ⊕ D6 ⊕ D7 ⊕ D8Implementasi Hamming
•
Hasil Parity Check bit Write dan Read di‐XOR kan
C8
C4
C2
C1
0
0
0
1
0
1
1
0
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ⊕
0
1
1
1
•
Desimal dari 0111 =
7
•
Posisi bit ke
7
dari data yang sudah tersisipkan oleh Parity
Implementasi Hamming
•
Desimal dari 0111 =
7
•
Posisi bit ke
7
dari data yang sudah tersisipkan oleh Parity
Check Bit adalah
D4
•
Data Read:
D8
D7
D6
D5
D4
D3
D2
D1
1
0
1
0
1
1
0
1
•
Data yang Benar:
1
0
1
0
0
1
0
1
(3)
Operasi pada DRAM
•
Address line aktif ketika sebuah bit dibaca/ditulis
– Switch transistor ditutup (arus mengalir)
•
Write (Tulis)
– Beri voltase (tegangan) ke bit line
• Tinggi untuk 1, rendah untuk 0
– Kemudian beri sinyal ke address line
• Tegangan diteruskan ke kapasitor
•
Read (Baca)
– Address line dipilih
• transistor menjadi on
– Tegangan dari kapasitor disalurkan ke sense amplifier melalui bit line
• Bandingkan dengan nilai referensi untuk menentukan
apakah tegangan termasuk 0 or 1
Cara Kerja Static RAM
•
Penataan transistor menghasilkan sebuah kondisi logika
(logic state) yang stabil
•
State 1
–
C
1high, C
2low
–
T
1T
4off, T
2T
3on
•
State 0
–
C
2high, C
1low
–
T
2T
3off, T
1T
4on
•
Mau baca/tulis: Address line transistor T
5T
6di‐on kan
•
Write – apply value to B & compliment to B
•
Read – value is on line B
Cara Akses 16 Mbit DRAM (4M x 4)
RAS: Row Address Select CAS: Column Address Select WE: Write Enable
Organisasi
Modul Memory
Seandainya sebuah chip RAM hanya berkapasitas 1 bit per wordnya, maka akan
dibutuhkan sejumlah n-chip untuk menampung sebuah word berukuran n-bit.
Jika 1 word berukuran 8-bit, maka Dibutuhkan 8 buah chip dalam satu modul
Contoh di kanan:
1 chip terorganisasi dalam 512 baris x 512 kolom x 1 bit
Untuk itu pengalamatannya membutuhkan 18 bit (29 x 29)
(512 = 29)