ARSITEKTUR DAN ORGANISASI KOMPUTER
Aditya Wikan Mahastama
[email protected]
Pengantar Memory dan Memory Internal
3 UNIV KRISTEN DUTA WACANA – GENAP 1213 v2
Tambahan Topik Bus: tentang Chipset • 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.
Main chipset components on a motherboard
• Chipset can limit implementation of instructions known to CPU, due to hardware limitations.
Arus Data Dalam Komputer Program, Data
Memori (RAM)
Storage Data, Control, Alamat
Program, Data, Alamat
Data, Control, Alamat
Data Control, data alamat periferal
Control, data alamat periferal, alamat memori
CPU
DMA Data, Interrupt
Instruksi dari CPU: ‐Dikirim sebagai control signal (read, write) ‐Instruksi lainnya dikirim dalam bentuk bahas mesin melewati jalur data yang akan diartikan oleh controller peripheral Data, Control
External Devices
Modul I/O Data, Interrupt
Data
Overview: Bagaimana Program Dijalankan? Sistem Operasi
Instruksi Bahasa Assembly /Mesin, Data
Memori (RAM)
Storage Data, Control, Alamat
Instruksi Bhs. Assembly/ Mesin (dapat memuat alamat), Data
Data, Control, Alamat
CPU
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 CPU
Overview: Bagaimana Program Dijalankan? Sistem Operasi
Instruksi Bahasa Assembly /Mesin, Data
Memori (RAM)
Storage Data, Control, Alamat
Instruksi Bhs. Assembly/ Mesin (dapat memuat alamat), Data
Data, Control, Alamat
CPU
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.
Overview: Bagaimana Program Dijalankan? Sistem Operasi
Instruksi Bahasa Assembly /Mesin, Data
Memori (RAM) Data, Control, Alamat
Instruksi Bhs. Assembly/ Mesin (dapat memuat alamat), Data
Data, Control, Alamat
R R R
Storage
CPU
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
Memory 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)
Memory
Bahan Memory Semikonduktor (Chip/IC) Karakteristik Bahan: • Read Only Memory, • Seberapa besar Random Access Memory, kemungkinan rusaknya Solid State Device, Register, data Cache • Gampang dipindahkan Lapisan Induktif Magnetik atau tidak • Hard Disk, Tape/Pita • Bisa dihapus atau tidak (erasable) Lapisan Optik Terukir • Membutuhkan daya • CD, DVD atau tidak untuk menyimpan data
Bagaimana Data Disimpan? Address Bus Line Data Bus Line Control Bus Line
• 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?
Address
Data Word
0000
0101010101010
0001
1111010101001
0010
0010101010101
0011
1010100111010
0110
0000010101111
Bagaimana Data Disimpan? 4-bit
Address Bus Line
4-bit
Data Bus Line Control Bus Line
• Lebar jalur alamat (address bus) mempengaruhi jumlah ruang data yang dapat dialamati • Tidak serta merta mengikuti hardware memory
Data Word
0000
0101010101010
0001
1111010101001
0010
0010101010101
0011
1010100111010
0110
0000010101111
Bagaimana Data Disimpan? Address Address Bus Line Data Bus Line
16-bit
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.
maks 16-bit
0000
0101010101010
0001
1111010101001
0010
0010101010101
0011
1010100111010
0110
0000010101111
Bagaimana Data Disimpan? • 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 disk
Test Question • 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?
Mengukur Performa • 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
Siapa Paling Cepat? • • • • • • • • •
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
Metode Akses • 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
Metode Akses • 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) Internal Memory
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
EEPROM
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 • Paling umum dipakai sebagai main memory
Kapasitor
Muatan kapasitor 1
0 t=1 WRITE
t=2 waktu
t=3
t=4
Bagaimana Me‐refresh DRAM • Dengan refresh circuit yang terintegrasi dalam controller chip, melakukan refresh tiap interval tertentu sebelum waktu paruh yang dapat merubah data. 1 • Cara kerja: 1. Disable chip (chip dibuat tidak 0 bisa diakses untuk sementara) t=1 2. Count through rows (dilakukan WRITE 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
t=2
t=3 READ waktu
t=4 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 • Biasanya untuk cache
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 satu siklus clock
CAS Latency (in simple) • Access time spesifik pada RAM t=0
Controller receives read signal and address from input pin Data lookup and retrieval from chips (“lookup between columns”)
Data ready in output pin
t=n clocks
Contoh Burst Mode SDRAM
Selingan: Hendak Tahu Lebih Banyak? • Ketika ingin tahu lebih banyak mengenai spesifikasi hardware, lihat di mana?
Packaging
A: Address Pin D: Data Pin Vcc: 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 • Berkembang menjadi multiple bits per chip
Organisasi Memory • Namun, sekeping memory 16Mbit juga dapat diorganisasikan dalam 2048 x 2048 x 4bit array (multiplexed) • Cara ini dapat mengurangi 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
2^4 storage words = 4 pins
• Multiplexed
2^4 storage words = 2 pins, receiving 2 bit column, then 2 bit row number
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) Hamming Error Correcting Code
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 ECC disimpan bersama data di memory
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 dibutuhkan 3 buah himpunan
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 C8 = D5 ⊕ D6 ⊕ D7 ⊕ 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 ⊕ D8
Implementasi 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 ⊕ D8
Implementasi 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 Check Bit adalah D4
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
1
0
0
1
0
1
• Data yang Benar:
1
0
(3) Extra Slides, Belajar Mandiri
Struktur Memory Cell DRAM
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 – Setelah itu, tegangan kapasitor dipulihkan
Struktur Memory Cell SRAM
Cara Kerja Static RAM • Penataan transistor menghasilkan sebuah kondisi logika (logic state) yang stabil
• State 1 – C1 high, C2 low – T1 T4 off, T2 T3 on
• State 0 – C2 high, C1 low – T2 T3 off, T1 T4 on • Mau baca/tulis: Address line transistor T5 T6 di‐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 OE: Output 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)
256Kbyte memory
Organisasi Modul Memory (2)
1Mbyte memory
• Topik Berikutnya:
Demikian Materi Hari Ini
• Memori Eksternal (belajar mandiri) Buatlah paper berkelompok mengenai External Memory: Apa saja jenis yang anda ketahui, kemudian dari tiap jenis terangkan: Apa bahan pembuatnya, bagaimana data disimpan dalam tiap‐tiap memory cellnya, apa kelebihan dan kekurangannya, bagaimana performanya, adakah saran pengembangan dari kelompok anda untuk jenis memory tersebut. Cantumkan pustaka yang anda gunakan.
Bawalah minggu depan dalam bentuk hard copy, kumpulkan, kemudian dari saya akan menunjuk secara acak anggota tiap kelompok untuk menjawab pertanyaan berdasarkan isi paper yang anda buat. • Memory‐memory dalam Prosesor