Memori pada Mikrokomputer
Dasar memori Kapasitas: berapa banyak bit pada suatu memori chip ukuran bit bukan byte Organisasi: berapa jumlah address pin dan data pin ada berapa banyak lokasi/alamat dan masing-masing alamat berapa bit, 2x * y dengan x = address pin dan y = data bit Kecepatan: selang berapa lama memori chip memberikan data setelah diberikan alamat pada address pin access time
Jenis-jenis memori ROM RAM PROM/OTP ROM EPROM EEPROM Flash ROM Mask ROM RAM SRAM DRAM: pin RAS dan CAS digunakan sebagai tanda untuk me-multiplex address pin menghemat jumlah pin NV-RAM
Pen-dekode-an alamat memori Paling baik menggunakan CPLD atau FPGA, beyond the scope of this course mata kuliah Elektronika Lanjut II atau Embedded System Menggunakan inverter dan gerbang NAND: untuk memilih chip memori (CS atau CE), dengan kata lain menentukan address range dari suatu chip memori Ingat, dalam mikrokomputer memori terdiri dari beberapa chip memori: dari satuan bit per chip menjadi byte secara keseluruhan Menggunakan dekoder jika tidak tersedia CPLD atau FPGA: 74LS138 memiliki 8 gerbang NAND
Peta memori PC Memori konvesional: 640 KB, 00000 – 9FFFFh, berisi BIOS data area (1 KB awal, 00000 – 003FFh), sisanya sistem operasi dan aplikasi Memori video: 128 KB, A0000 – BFFFFh, penggunaan kurang dari 128 KB tergantung dari modus video BIOS ROM: 256 KB, CFFFF – FFFFFh, dengan lokasi FFFF:0000h sebagai startup code
Integritas data pada ROM dan RAM Untuk mendeteksi adanya kesalahan/perubahan pada data yang disimpan pada ROM maupun RAM Checksum: ROM Memeriksa keutuhan keseluruhan data pada ROM Jumlahkan semua byte tanpa carry, hasil jumlahan dinegatifkan (2’s complement) checksum byte, tambahkan pada akhir data Check: jumlahkan semua byte tanpa carry termasuk checksum, jika hasilnya nol maka data utuh
Integritas data pada ROM dan RAM Parity bit: RAM Seperti halnya parity flag, menandakan jumlah bit bernilai 1, apakah genap atau ganjil Ditentukan saat menulis data ke RAM, dan diperiksa saat membaca data dari RAM
Memory bank Mengingat organisasi DRAM bervariasi (dibanding SRAM yang 8 bit): x1, x4, x8, x16, maka memori pada mikrokomputer tersusun atas memory bank Misal 64 KB tersusun atas 1 bank dengan 8 chip memori 64Kx1 atau 4 bank dengan masing-masing 8 chip memori 16x1
Parity bit generator/checker Menggunakan chip 74S280: 9 input, 2 output yaitu odd dan even
Parity bit generator/checker Data ditulis ke memori melalui jalur data sejumlah 8 bit masuk ke dalam 74S280 pada pin A – H, pin I bernilai 0 karena MEMR bernilai 1 74S280 menghasilkan nilai parity: 1 even, 0 odd (meskipun yang dihubungkan ke memori hanya pin even) Pin odd pada 74S280 digunakan untuk memeriksa integritas data yang dibaca dari memori: pin I pada 74S280 bernilai sesuai dengan parity bit yang disimpan di memori
Parity bit generator/checker Pin odd bernilai 1 jika data yang dibaca memiliki bit 1 berjumlah genap, karena bit parity bernilai 1 Artinya, parity bit checker tugasnya adalah mengganjilkan jumlah bit bernilai 1 pada data agar logik berikutnya bernilai benar atau pin odd bernilai 1 agar tidak membangkitkan interupsi NMI: pada 74LS74 Q bernilai 0 dan Q bernilai 1
Antarmuka memori 16 bit 16 bit berarti 2 kali 8 bit Artinya, dalam sekali operasi pembacaan memori, data yang dikirimkan ada 16 bit Pada mikroprosesor 16 bit, data di memori dibedakan menjadi odd dan even byte Untuk membedakan byte odd atau even digunakan sinyal BHE (bus high enable) BHE bersama dengan pin A0 digunakan untuk memilih odd atau even byte
Siklus memori dan wait state Mikroprosesor menyediakan sejumlah waktu yang tetap untuk mengakses perangkat eksternal (I/O atau memori): bus cycle time Operasi pada I/O atau memori harus selesai selama bus cycle time Bus cycle time untuk mengakses memori sering disebut memory cycle (MC) time: 4 clock untuk 8088, 2 clock untuk prosesor yang lebih tinggi Sejak mikroprosesor menyediakan sinyal alamat, sampai data terkirim ke mikroprosesor disebut memory read cycle time
Siklus memori dan wait state Perpanjangan waktu untuk membaca memori diperlukan jika kecepatan memori lebih lambat dari MC time: wait state (WS) Contoh, kecepatan prosesor dan bus sama-sama 20 MHz, maka untuk MC time sebesar 2 clock, memori memiliki waktu sepanjang 2 x (1 / 20 MHz) = 2 x 50 ns = 100 ns Perkembangan prosesor semakin memperbesar selisih kecepatan prosesor (GHz) dengan kecepatan bus (MHz) sehingga diperlukan WS atau meningkatkan kecepatan memori
Siklus memori dan wait state WS selalu dalam satuan clock, artinya perpanjangan waktu pembacaan memori memiliki satuan terkecil 1 clock atau 1 WS Tidak ada WS dalam nilai pecahan: 0,5 WS; 0,25 WS; 1,50 WS; dll 0 WS tentu saja tidak membutuhkan wait state: memory read cycle time berada di dalam MC time
Siklus memori dan wait state Sumber delay yang menyebabkan waktu akses memori lebih dari MC time: Path delay: sejak alamat dikirim mikroprosesor sampai data diterima mikroprosesor tergantung jalur dan perangkat perantara (dekoder dan buffer) Waktu yang dibutuhkan memori untuk menyediakan data: membutuhkan waktu paling banyak (80%)
Mengakses data word pada alamat genap dan ganjil Pada sistem 8 bit, tidak ada masalah mengambil data word pada alamat ganjil atau genap karena tidak ada pemisahan bank genap dan ganjil: perlu dibutuhkan 2 siklus memori untuk membaca 1 data word Pada sistem 16 bit, membaca 1 data word yang dimulai dari alamat genap membutuhkan 1 siklus memori Data word pada alamat ganjil membutuhkan 2 siklus memori: D0 – D7 untuk data dengan alamat genap, D8 – D15 untuk data dengan alamat ganjil
8 bit
16 bit
Bus bandwith Bus bandwith berbicara mengenai seberapa cepat data ditransfer, diukur dalam satuan MB/s Semakin banyak jalur data, semakin banyak/besar data yang dapat ditransfer Semakin cepat prosesor mengolah data, semakin banyak data yang dapat diolah prosesor Masalahnya adalah ketersediaan data untuk prosesor dipengaruhi oleh bus bandwith Semakin banyak jalur semakin kompleks PCB-nya
Bus bandwith Untuk meningkatkan bus bandwith: Menambah jalur data Menyingkat bus cycle time Atau keduanya Bus bandwith = (1 / bus cycle time dalam ns) x lebar jalur dalam byte Contoh, prosesor 286 pada 20 Mhz dengan 0 WS, maka bus bandwith-nya (1 / (2 x 50 ns)) x 2 byte = 20 MB/s
Antarmuka memori pada bus ISA 8 bit dan 16 bit data bus dipilih melalui pin MEMCS16 (memory chip select 16) Jika MEMCS16 high, maka data hanya tersedia pada D0 – D7 (8 bit), jika low maka D0 – D15 (16 bit) Secara default, bus ISA menyisipkan WS yang dilakukan oleh chipset karena kecepatan maksimal dari bus ISA adalah 8 MHz (lebih rendah dari CPU): pada 8 bit menyisipkan 4 WS, 16 bit menyisipkan 1 WS total 6 clock dan 3 clock Untuk mempercepat, pin ZEROWS dapat diaktifkan: pada 8 bit menjadi 1 WS, pada 16 bit menjadi 0 WS