MIKROPENGENDALI TEMU – 1 INTRODUCTION TO COMPUTING Sub-Tema : 1. Numbering and Coding System 2. Semiconductor Memory 3. CPU Architecture OLEH : DANNY KURNIANTO,S.T.,M.Eng. SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM PURWOKERTO NUMBERING AND CODING SYSTEMS Converting from decimal to binary Sistem bilangan yang sering dipakai oleh manusia dalam berhitung adalah system bilangan decimal atau system bilangan basis 10 (diwakilkan dengan 10 symbol). Sistem bilangan yang sering dipakai oleh system kpmputer adalah system bilangan biner atau basis 2 (diwakili oleh 2 symbol). Salah satu cara mengubah bilangan decimal ke biner adalah dengan membagi bilangan decimal dengan angka 2, proses ini terus berlanjut sampai hasil bagi menjadi 0. Sisa bagi kemudian ditulis dalam urutan terbalik untuk mendapatkan bilangan biner. Converting Binary to Decimal Untuk mengubah dari bilangan biner ke decimal, maka perlu dipahami konsep pembobotan pada setiap posisi bit bilangan biner. MSB X X X X X X X X X LSB 210 29 28 27 26 25 24 23 22 21 20 1028 512 256 128 64 32 16 8 4 2 1 Konsep pembobotan masing-masing posisi bit bilangan biner juga dapat digunakan untuk mengubah bilangan decimal ke biner seperti contoh dibawah ini. Hexadecimal System Sistem bilangan heksadesimal disebut juga system bilangan basis 16 (diwakilkan oleh 16 symbol). Bilangan hexadecimal merupakan representasi dari bilangan-bilangan biner untuk memudahkan manusia dalam merepresentasikan urutan bilangan 0 dan 1. Sebagai contoh, bilangan biner 10010001 = 91h Berikut tabel bilangan heksadesimal. Converting Between Binary and Hexadecimal Untuk mengubah dari bilangan biner ke heksa, maka dimulai dari LSB dikelompokkan setiap 4 bit lalu setiap 4 bit diubah ke dalam heksadesimal. Converting from decimal to hexadecimal Untuk mengubah bilangan decimal ke heksa ada 2 cara yaitu : 1. Diubah dulu ke bilangan biner, lalu baru diubah ke heksa. 2. Diubah secara langsung dari decimal ke heksa. Converting hexadecimal to decimal Untuk mengubah heksadesimal ke decimal dapat dilakukan dengan 2 cara yaitu : 1. Ubah dari heksa ke biner dan kemudian baru diubah ke decimal. 2. Ubah secara langsung dari heksa ke decimal dengan menjumlahkan bobot untuk setiap digitnya. Addition of Binary and Hex Numbers Penjumlahan Biner Penjumlahan Heksadesimal Dimulai dari digit paling kecil, jumlahkan kedua digit, jika hasilnya kurang dari 16 maka tulislah hasilnya di posisi tersebut. Jika hasilnya lebh dari 16, maka kurangi hasilnya tsb dengan 16 , dengan carry 1 untuk digit berikutnya. Pengurangan Heksadesimal Pada pengurangan 2 bilangan heksa, jika digit kedua lebih besar dari pertama maka pinjam 16 dari digit sebelumnya. DIGITAL PRIMER Binary Logic Logika biner terdiri dari 2 symbol yaitu 0 dan 1 . Masing-masing symbol merepresentasika tegangan seperti pada tabel di bawah ini. Logic Gate Penjumlahan dengan Half Adder Address decoder Contoh lain dari aplikasi gerbang logika adalah decoder. Rangkaian decoder banyak digunakan untuk pendekode alamat pada perancangan computer. Gambar berikut ini adalah decoder nilai 9 (1001) dan 5 (0101). Flip Flop Komponen lain yang banyak digunakan pada system digital adalah Flip Flop yang berfungsi untuk menyimpan data. Flip Flop D banyak digunakan sebagai penahan data. SEMICONDUCTOR MEMORY Pada bagian ini akan didiskusikan bermacam jenis memori semikonduktor dan karakteristiknya seperti kapasitas, organisasi, dan waktu akses. Juga akan dipelajari bagaimana sebuah memori terhubung ke CPU. A. Terminologi Penting Pada Sistem Komputer Beberapa istilah seperti bit, nibble, byte dan word ditunjukkan seperti pada tabel berikut ini. B. Organisasi Internal sebuah Komputer Bagian-bagian sebuah computer secara umum dapat dibagi menjadi 4 bagian yaitu CPU, Memori, Perangkat Input/Ouput, dan system Bus. Fungsi dari CPU adalah memproses informasi yang tersimpan dalam memori. Fungsi perangkat input/output seperti keyboard dan monitor adalah menyediakan cara berkomunikasi dengan CPU. CPU terhubung ke memori dan perangkat input/output melalui system bus. Terdapat 3 macam bus, yaitu bus data, bus alamat dan bus Kendali (control). Agar setiap perangkat (memori dan I/O) dapat dikenali oleh mikroprosesor, maka perangkat tersebut harus diberi alamat uniq yang berbeda satu sama lainnya. CPU meletakkan alamat pada bus alamat dan rangkaian decoder alamat akan menemukan perangkat tersebut. Kemudian CPU menggunakan bus data untuk mengambil data atau mengirimkan data ke perangkat. Bus kendali digunakan untuk menyediakan sinyal baca (read) atau sinyal tulis (write) pada perangkat untuk mengindikasikan jika CPU sedang meminta informasi atau mengirimkan informasi. C. ROM dan RAM Memori ada 2 jenis, yaitu RAM dan ROM RAM (Random Access Memory) atau read/write memory : memori yang dapat dibaca dan ditulis. • Digunakan sebagai tempat penyimpanan sementara saat program berjalan. • Data akan hilang saat komputer power mati ROM (Read Only Memory) : memori yang hanya dapat dibaca saja. • Menyimpan data penting secara permanan, tidak hilang saat power off. • Disebut juga non-volatile memory. PROM ( Programmable ROM) PROM adalah jenis ROM yang mana pengguna dapat memasukkan (burn) informasi kedalamnya. Dengan kata lain, PROM adl memori yang dapat di program oleh pengguna. PROM deprogram dengan cara memanaskan fuse pada setiap bit PROM sehingga dibutuhkan tools khusus seperti ROM Burner atau ROM Programmer. PROM disebut juga memori yang hanya bisa sekali saja di program sehingga jika terjadi kesalahan dalam memasukkan program maka PROM-nya harus diganti yang baru. EPROM (Erasable Programmable ROM) Pada EPROM, seseorang dapat memprogram memori chip dan menghapusnya sampai 1000 kali. Penggunaan EPROM yang luas sering disebut sebagai UV-EPROM (Ultra violet EPROM). Untuk menghapus program pada chip memori digunakan radiasi sinar Ultra Violet yang diarahkan pada jendela Chip-nya Cara memprogram UV-EPROM : Konten chip harus dihapus. Untuk menghapus kontennya, lepaskan chip memori dari socket pada mainboard lalu tempatkan pada perangkat penghapus EPROM untuk diberi radiasi UV pada chip memori selama kurang lebih 20 menit. Memprogram Konten Chip Memori. Untuk memprogram Chip UV-EPROM, tempatkan chip memori pada ROM Burner. Setelah deprogram, chip memori dapat dipasang kembali di socket mainboard. EEPROM (Electrically Erasable Programmable ROM) EEPROM memiliki keunggulan melebihi EPROM seperti pada cara menghapus konten chip yang dilakukan secara elektrik. EEPROM memiliki fasilitas untuk memilih berapa byte data yang akan dihapus. EEPROM dapat diprogram dan dihapus datanya saat masih berada pada mainboard shg tidak memerlukan perangkat pemrogram dan penghapus. Flash Memory EPROM Sejak tahun 1990, Flash EPROM menjadi programmable memory yang popular karena beberapa alasan, yaitu: 1. Waktu untuk menghapus isi memori hanya memerlukan waktu kurang dari 1 detik dan karena cara menghapus data secara elektrik maka sering disebut juga sebagai Flash EEPROM. 2. Perbedaan Flash EPROM dengan EEPROM adalah bahwa pada Flash EPROM, saat dilakukan penghapusan data maka seluruh isi data pada chip akan terhapus sedangkan pada EEPROM tidak demikian. SRAM (Static RAM) Sel-sel penyimpanan pada SRAM dibuat dari rangkaian Flip-flop. Masalahnya adalah bahwa dengan menggunakan Flip-Flop ini, pada setiap sel dibutuhkan minimal 6 transistor dan setiap sel hanya dapat menyimpan 1 bit data. Pada saat ini, setiap sel dapat dibuat dengan 4 buat transistor dengan teknologi CMOS yang akan memperbesar kapasitas penyimpanan memori, tetapi kapasitas penympanan ini masih jauh diawah DRAM. A0 – A10 sebagai input alamat. WE = Write enable untuk penulisan data (aktif low) OE = Output enable untuk pembacaan data (aktif low) CS = Chip Select , digunakan untuk memilih chip memori I/O0 – I/O7 = data input output Langkah-langkah dibawah ini adalah cara untuk menulis data pada SRAM : 1. 2. 3. 4. 5. Siapkan alamat pada bus alamat A0-A10. Aktifkan pin CS Buat WE = 0 dan OE = 1 Siapkan data pada pin I/O0 – I/O7 Buat WE = 1 dan data akan dituliskan pada SRAM saat tepi naik sinyal WE. Berikut ini adalah langkah-langkah untuk membaca SRAM: 1. Siapkan alamat pada bus alamat A0 – A10, ini terjadi pada saat awal waktu akses (tAA). 2. Aktifkan pin CS 3. Buat OE = 0 dan WE = 1. 4. Data akan terbaca pada saat tepi turun pada sinyal OE. NV-RAM (Non Volatile RAM) Seperti halnya memori RAM lainnya bahwa CPU dapat menulis dan membaca data pada memori NV-RAM, tapi bedanya sifatnya adalah non volatile, artinya data tidak hilang saat daya dimatikan. NV-RAM merupakan kombinasi yang baik antara RAM dan ROM karena data dapat dituliskan dan dibaca pada memori ini serta sifatnya yang non volatile. Untum mempertahannya data pada memori NV-RAM, memori jenis ini dibuta dari komponen-komponen berikut ini: 1. Menggunakan teknologi CMOS sehingga konsumsi dayanya sangat kecil. 2. Menggunakan backup sumber energi internal berupa baterai Lithium. 3. Menggunakan rangkaian kendali cerdas, fungsi utama rangkaian ini adalah untuk memonitor pin VCC sehingga saat sumber daya luar terputus dapat dideteksi. Saat sumber daya luar terputus, maka secara otomatis rangkaian ini akan men-switch ke sumber daya internal berupa baterai Lithium. DRAM (Dynamic RAM) Pada DRAM, sel penyimpanan disusun dari kapasitor, berbeda halnya dengan SRAM yang mengunakan flip-flop. Penggunaan kapasitor pada sel penyimpanan menyebabkan ukuran sel lebih kecil dibandingkan sel pada SRAM dengan kapasitas DRAM yang lebih besar. Kelebihan utama pada DRAM adalah sebagai berikut: Kapasitas yang besar Lebih murah Konsumsi daya yang lebih rendah Kelemahan dari DRAM adalah sebagai berikut: Harus di refresh secara periodik karena sel kapasitor akan hilang saat muatan listrik kapasitor terbuang. Saat di refresh, maka data tidak dapat di akses. Organisasi DRAM Pada semua chip memori ROM memiliki 8 pin data, beda halnya dengan chip DRAM yang dapat memiliki organisasi seperti x1, x4, x8 atau x16. Pada gambar dibawah ini adalah contoh chip memori 256K x 1 DRAM. Bus alamat dari A0 – A8 Pin RAS, CAS, WE (Write Enable), data in (D IN) dan data out (D OUT). Serta terdapat pin Vcc dan Ground. D. Memory Address Decoding Pada bagian ini aka dibahas mengenai rangkaian decoding alamat memori yang berfungsi untuk memilih blok memori yang akan digunakan untuk menyimpan data. Pada chip memori biasanya ada CS (Chip Selected) atau CE (Chip Enable) yang dapat diaktifkan (active low) untuk mengakses isi memori. Untuk mengkoneksikan chip memori ke CPU bisa mengikuti langkah-langkah berikut ini: Bus data pada CPU terhubung secara langsung pada pin data pada chip memori. Sinyal kendali RD (Read) dan WR (Write) pada CPU terhubung ke OE (Output Enable) dan WE (Write Enable) pada chip memori. Pada bus alamat dengan bit rendah (A0-A11) pada CPU terhubung ke pin alamat pada chip memori. Sedang 4 bit atas (A12-A15) digunakan untuk mengaktifkan pin CS pada chip memori. Selama CS tidak aktif, maka data tidak akan dapat dibaca atau ditulis pada chip memori. Rangkaian Decoder Alamat Dengan Gerbang Logika Cara sederhana untuk membangun sebuah rangkaian decoding adalah menggunakan Gerbang NAND, dimana output dari NAND ini adalah active low dan pin CS (pada chip memori) juga active low. Pada gambar disamping, pin A12-A15 terhubung ke pin CS pada Chip Memori. Untuk mengaktifkan pin CS, maka nilai A15-A12 harus 0011 sehingga output rangkaian decoding adalah berlogika 0 (low). Rangk decoding ini akan mengalamati alamat memori pada rentang nilai 3000 H – 3FFF H. Rangkaian Decoder Alamat dengan IC 74LS138 (decoder 3 input 8 output) Rangk decoder alamat menggunakan IC 74LS138 adalah paling banyak digunakan dengan 3 input (A,B,C) yang menghasilkan 8 output (active low). Ada 3 input tambahan yang dapat dihubungkan ke sinyal alamat yaitu G1, G2A, dan G2B. G1 akan active high, sedangkan G2A dan G2B akan active low. Jika ketiga input tambahan tersebut tidak terhubung ke sinyal alamat, maka harus tetap di aktifasi dengan menghubungkan ke Vcc atau ground. Rangkaian Decoder Alamat dengan Programmable Logic Chip Salah satu rangkaian decoder alamat yang banyak digunakan adalah Programmable Logic Chip seperti PAL, GAL atau FPGA. Kelemahan menggunakan chip jenis ini adalah bahwa dibutuhkan software dan Burner untuk PAL/GAL/FPGA. Kelebihannya adalah chip tersebut dapat deprogram untuk berbagai kombinasi alamat. Dapat mengakomodasi lebih banyak input alamat memori. CPU ARCHITECTURE Inside CPU Fungsi dari CPU adalah mengambil intruksi pada memori dan melakukan eksekusi. Untuk melakukan pengambilan intruksi dan eksekusi, maka CPU memerlukan resource sebagai berikut: Menggunakan sejumlah register untuk menyimpan informasi sementara. Register pada CPU dapat 8 bit, 16 bit, atau 32 bit tergantung jenis CPU. Secara umum, makin banyak dan besar register maka semakin baik CPU bekerja akan tetapi harganya juga akan semakin mahal. CPU juga akan mengunakan bagian ALU pada proses aritmatika seperti penjumlaan, pengurangan, perkalian, pembagian dan fungsi logika. CPU juga akan menggunakan bagian Program Counter yang berfungsi untuk menentukan alamat intruksi mana yang akan di eksekusi. CPU juga menggunakan bagian Intruction Decoder yang berfungsi untuk menginterpretasikan intruksi yang diambil dalam CPU. Intruction decoder akan menyimpan arti dari setiap intruksi dan apa langkah yang dilakukan CPU saat menerima intruksi yang diberikan. Harvard dan von Neumann Architecture Arsitektur von Neumann adalah suatu arsitektur komputer dimana digunakan bus yang sama untuk mengakses data dan kode program. Ini berarti bahwa proses pengaksesan data dan kode program dilakukan secara bergantian sehngga kecepatannya menjadi lambat. Harvard arsitektur adalah suatu arsitektur komputer dimana digunakan bus yang berbeda untuk mengakses data dan kode program. Jadi ada 4 set bus yaitu, Bus data untuk membawa data dari dan ke luar CPU. Bus alamat untuk mengakses data Bus data untuk membawa kode program ke dalam CPU Bus alamat untuk mengakses kode program Pada gambar dibawah ini adalah Gambar arsitektur Harvard dan von Neumann Latihan Soal: 1. Rancanglah sebuah rangkaian decoding untuk alamat 2000 H – 2FFF H menggunakan gerbang logika NAND dan Inverter. 2. Carilah alamat-alamat untuk Y0, Y3 dan Y6 desain diagram rangkaian decoding menggunakan IC 74LS138 dibawah ini. Untuk Soal No.2 Untuk Soal No.3 3. Carilah rentang alamat-alamat desain memori pada digram berikut ini.