Mikroprosesor dan Antarmuka Diktat Kuliah Memory Hardware Nyoman Bogi Aditya Karna Sisfo IMTelkom bogi@imtelkom.ac.id http://bogi.blog.imtelkom.ac.id Institut Manajemen Telkom http://www.imtelkom.ac.id
Peta Memori Memori Peta memori digunakan untuk menggambarkan lokasi semua data yang ada di memori, dimulai dari data pada alamat terendah (00000 H pada i8088) sampai alamat tertinggi (FFFFF H pada i8088). Kapasitas Memori Kapasitas adalah jumlah maksimum data yg dapat disimpan didalam memori tersebut. Setiap memori memiliki kapasitas yg berbeda-beda, misalnya : 1 bit, 8 bit (1 byte), 1024 byte (1 Kbyte), 1024 Kbyte (1 Mbyte). Kapasitas suatu memori = 2 n x d bit dimana n = jumlah address bus yang masuk kedalam IC memori d = jumlah data bus yang ada pada IC memori tersebut Klasifikasi Memori Dilihat dari sistem aksesnya, memori dibedakan menjadi 2: 1. ROM (Read Only Memory), adalah media penyimpanan yang bersifat BACA SAJA. Karena sifatnya, maka program yang harus dilakukan oleh up disimpan didalamnya. Program akan ditulis sekali saja ke dalam ROM karena pada saat operasionalnya program hanya dibaca saja 2. RAM (Random Access Memory), adalah media peyimpanan data yang dioperasikan sehingga sifatnya BACA dan TULIS. RAM digunakan untuk scratch book (buku oret-oretan) karena sifat data adalah variabel (berubah-ubah). Data di ROM hanya dapat dibaca saja sedangkan data di RAM dapat dibaca dan juga ditulis. Hal ini menyebabkan secara hardware mereka berbeda. Contoh : Sebuah keping memori ROM 2716 dengan kapasitas 2 Kbyte Sebuah keping memori RAM dengan kapasitas 2 Kbyte GND 1 24 Vcc 2 23 3 22 4 21 Vpp 2716 5 20 6 19 0 7 18 PGM 8 2 Kbyte 17 9 PROM 16 10 15 12 14 13 GND 1 24 Vcc 2 23 3 22 4 21 5 20 6 19 0 7 18 8 2 Kbyte 17 9 SRAM 16 10 15 12 14 13 Nama Fungsi Type Chip Select (Active Low) digunakan untuk mengaktifkan memori (untuk dapat diakses datanya, -nya harus diaktifkan terlebih dahulu) Data bus 8 jalur (8 bit) sebagai interface data antara memori dng databus Output (ROM) eksternal, untuk mengambil data dari memori atau menuliskan data ke memori +Output (RAM) 0 Address bus ( 0) digunakan untuk mengaktifkan salah satu set data-8-bit Kapasitasnya = 2 x 8 bit = 2048 byte (lihat tabel) Output Enable (Active Low) jika diaktifkan maka salah satu data-8-bit di dalam RAM yang sesuai dengan kondisi Address Bus dapat diakses Write Enable (Active Low) jika diaktifkan maka salah satu data-8-bit di dalam RAM yang sesuai dengan kondisi Address Bus dapat ditulis PGM Program (Active +18 Volt) digunakan untuk menulis ke dalam ROM
Interfacing i8088 dengan Memori Memori harus tersedia pada suatu sistem mikroprosesor, baik untuk menyimpan program maupun untuk data. Tergantung dari kebutuhan, memori yg dapat digunakan oleh i8088 berbeda-beda berdasarkan ukurannya. Ada yg hanya ¼ Kbyte (256 Byte) sampai 128 Kbyte per kepingnya (per IC = Integrated Circuit). Kapasitas Memory Map Address line used 256 Byte 00 FF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 512 Byte 000 1FF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 1 Kbyte 000 3FF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 2 Kbyte 000 7FF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 4 Kbyte 000 FFF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A 8 Kbyte 0000 1FFF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A A 12 16 Kbyte 0000 3FFF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A A 12 A 13 32 Kbyte 0000 7FFF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A A 12 A 13 A 14 64 Kbyte 0000 FFFF A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 A A 12 A 13 A 14 A 15 Untuk menyambungkan suatu keping memori dengan mikroprosesor dibutuhkan 3 penyambungan yaitu sambungan untuk data, alamat, dan kontrol. 1. Sambungan data adalah langsung karena pada umumnya lebarnya sama-sama 8 bit ( ) baik dari sisi i8088 maupun dari sisi memori. 2. Sambungan alamat tergantung dari kapasitas memori yg digunakan (lihat tabel). Misalnya memori yg digunakan berkapasitas 2 Kbyte, berarti address line yg digunakan untuk mengakses suatu data pada memori tersebut adalah 0. Maka yang diambil dari i8088 adalah address line yg bersesuaian yaitu 0, dimana Pin dari i8088 disambungkan pada masukan RAM, Pin dari i8088 disambungkan pada masukan RAM, Pin dari i8088 disambungkan pada masukan RAM, Pin dari i8088 disambungkan pada masukan RAM, dst sampai Pin 0 dari i8088 disambungkan pada masukan 0 RAM 3. Sambungan kontrol yg diperlukan adalah : 1. sinyal : untuk mengaktifkan suatu keping memori. Sisa dari Address line yg tidak digunakan (2 9) akan dipakai untuk mengaktifkan memori tersebut (masukan Chip Select). 8088 IO/M signal MemREAD to pin signal Mem ITE to pin 2. untuk kasus RAM, sinyal Memory Read digunakan untuk memberitahu keping memori yg telah diaktifkan pin -nya bahwa jenis akses adalah READ. Untuk itu digunakan sebuah gerbang OR untuk menggabungkan sinyal dan IO/M dari i8088. Sinyal Memory READ yang active-low ini akan disambungkan pada pin yang juga active-low. 3. untuk kasus RAM, sinyal Memory Write digunakan untuk memberitahu keping memori yg telah diaktifkan pin -nya bahwa jenis akses adalah ITE. Untuk itu digunakan sebuah gerbang OR untuk menggabungkan sinyal dan IO/M dari i8088. Sinyal Memory ITE yang active-low ini akan disambungkan pada pin yang juga active-low.
Contoh sambungan 8088 dengan sebuah ROM 2716 (gambar atas) dan sebuah RAM (gambar bawah) 8088 2716 8088 2716 8088 2716 8 0 0 (a) (b) (c) 8088 8088 8088 8 IO /M IO /M IO /M 0 0 (a) Pada gambar di atas dapat diperhatikan : 1. sambungan untuk data adalah langsung (direct connection) tanpa perantara. Dimana D n dari i8088 disambungkan dengan D n yg bersesuaian (n = 0..7) 2. sambungan untuk alamat tergantung pada Address Line yg dibutuhkan untuk mengaktifkan salah satu set flip-flop di dalam memori. Untuk kasus diatas: salah satu dari 2048 set flip-flop akan diaktifkan dgn A 0 A 10 dari i8088 3. sambungan bus kontrol adalah untuk memberikan sinyal atau dari 8088 ke untuk menandakan jenis akses data (apakah READ membaca data dari memori, ataukah ITE menulis data ke memori). Dan untuk sinyal, karena hanya ada satu keping memori yg digunakan, maka pengaksesan memori hanya terjadi pada 2716/. Sehingga 2716/ tersebut selalu dalam keadaan aktif. (b) (c)
Gambar (b) dan (c) merupakan cara lain (yg lebih sederhana) untuk menggambarkan interkoneksi (bus data dan bus alamat) antara 8088 dgn memori. Jika digunakan dua buah, akan timbul masalah ketika i8088 akan mengakses data pada alamat 00000 dimana akan ada suatu data dari yg pertama dan ada data lainnya dari yang kedua. Untuk menghindarinya, diperlukan suatu mekanisme pemilihan (selector) yang akan memilih salah satu. Jadi dalam suatu saat hanya ada satu yang aktif. Untuk hal ini, disediakan sebuah masukan pada yang disebut dgn (Chip Select) yang aktif Low. Jika diaktifkan (diberikan Low Voltage) maka data didalam akan dapat diakses oleh i8088. Sebaliknya jika tidak diaktifkan (diberikan High Voltage) maka data didalam tidak akan dapat diakses. Karena hanya ada 2 pilihan (2 buah ) maka dapat digunakan sebuah gerbang inverter dimana untuk mengaktifkannya kita gunakan A 19. 8088 2716 A 8088 A 9 2716 B 9 IO/M B Mem READ Mem ITE (a) (b) Peta memori untuk sistem diatas adalah sebagai berikut : 9 ----------------------------------- ---- = FFFFF 1000-0000-1000-0000-0000 = 80800 1000-0000-01-- = 807FF 1000-0000-0000-0000-0000 = 80000 01---- = 7FFFF 0000-0000-1000-0000-0000 = 00800 0000-0000-01-- = 007FF 0000-0000-0000-0000-0000 = 00000 510 Kbyte content B (atau 2716B) 2 Kbyte dari B (atau 2716B) 510 Kbyte content A (atau 2716A) 2 Kbyte dari A (atau 2716A) second half 512 K byte 9 = 1 first half 512 K byte 9 = 0
Terjadinya pengulangan content memori karena tidak semua Address Line sisa (1 9) digunakan untuk menghasilkan sinyal. Perhatikan bahwa pada saat Address Bus berisi 00000H dan 00800H, memori A (atau 2716A) tetap diaktifkan. Dan pada kedua kondisi tersebut, set flip-flop yg sama (yg pertama) yg akan diakses. Untuk menghindari terjadinya pengulangan isi memori, maka seluruh sisa Address Line yg tidak tersambung ke memori harus di-kode-kan untuk menghasilkan sinyal. Pada kasus diatas, untuk menghasilkan sinyal, maka seluruh 1 9 harus di-kode-kan (tidak hanya 9 saja).
Interkoneksi untuk 4 buah N1 A N2 B i8088 N3 C 8 9 IO / M N4 Peta memori untuk sistem diatas adalah sebagai berikut : ---- = FFFFF 254 Kbyte 00-0000-1000-0000-0000 = C0800 00-0000-01-- = C07FF content D 2 Kbyte dari D 00-0000-0000-0000-0000 = C0000 10---- = BFFFF 254 Kbyte 1000-0000-1000-0000-0000 = 80800 1000-0000-01-- = 807FF content C 2 Kbyte dari C 1000-0000-0000-0000-0000 = 80000 01---- = 7FFFF 254 Kbyte 0100-0000-1000-0000-0000 = 40800 0100-0000-01-- = 407FF content B 2 Kbyte dari B 0100-0000-0000-0000-0000 = 40000 00---- = 3FFFF 254 Kbyte 0000-0000-1000-0000-0000 = 00800 0000-0000-01-- = 007FF 0000-0000-0000-0000-0000 = 00000 D Mem READ Mem ITE content A 2 Kbyte dari A fourth quarter 256 Kbyte 9 = 1 and 8 = 1 third quarter 256 Kbyte 9 = 1 and 8 = 0 second quarter 256 Kbyte 9 = 0 and 8 = 1 first quarter 256 Kbyte 9 = 0 and 8 = 0