Minggu, 21 Januari 2018

Random Access Memory

Random Access Memory merupakan penyimpan data yang dapat ditulis, dibaca ataupun dihapus dan kemampuan penyimpanannya bergantung dari ketersediaan sumber daya. Memori ini akan hilang jika sumber daya dimatikan, oleh karenanya disebut memori volatile. Memori Volatile dapat menggunakan flip-flop sebagai elemen penyimpanan, yang disebut memori statis, atau didasarkan pada pengisian kapasitor, yang disebut memori dinamis. Istilah statis dan dinamis berasal dari kenyataan bahwa sementara flip-flop selalu berada pada status terakhir kecuali power supply dihapus, kapasitor akan discharge perlahan-lahan dari waktu ke waktu sehingga perlu refresh secara teratur agar memori tidak akan hilang.
    
(a) 
(b)

Gambar 1. Rangkaian Dasar Memori (a) memori statis dari flip-flop MOSFET (b) memori dinamis dari kapasitor

Memori dinamis dapat dibuat dengan kerapatan yang jauh lebih tinggi daripada memori statis karena setiap bit dalam memori membutuhkan transistor lebih sedikit. Chip memori dinamis telah dapat dibangun di sirkuit penyegaran yang membutuhkan perawatan dari pengisian yang diperlukan untuk menjaga data yang tersimpan pada kapasitor, ini kadang-kadang dikenal sebagai memori pseudo-statis karena desainer sirkuit tidak perlu memberikan penyegaran dengan sirkuit eksternal.

Gambar 2 aransemen  baris dan kolom dari perangkat memori.

Dasar sel memori statis terdiri dari sepasang inverter lintas digabungkan, seperti sebuah RS flip-flop. Inverter dibangun dengan FET yang ketika dinyalakan, resistensinya relatif tinggi. Hal ini memungkinkan mereka untuk dipaksa ke dalam keadaan yang dibutuhkan oleh menarik output mereka ke atas atau ke bawah dengan sirkuit drive eksternal. Gambar 2 menunjukkan skema sederhana dari bagian dari memori statis. Ini adalah baris dan kolom array yang konvensional, multiplexer dengan driver baris memilih deretan sel dan kolom  memilih sel tertentu dari baris. Kolom multiplexer adalah diferensial, tidak seperti desain single ended digunakan dalam EPROM. Kolom multiplexer juga berfungsi sebagai driver, dan ketika dipilih untuk menulis ke bit output Q dan  menimpa output Q dari flip-flop untuk mendorong ke dalam keadaan yang diinginkan.
Gambar 3. Susunan memori static disederhanakan.
RAM dinamis memerlukan pengaturan akses yang berbeda untuk memungkinkan membaca, menulis dan menyegarkan dari kapasitor memori. Pada Gambar 4 baris baris-baris membaca dan menulis yang terpisah menghidupkan FET akses untuk setiap elemen, dan garis-bit membaca dan bit-write terpisah membawa data ke dan dari elemen. Dalam rangka untuk me-refresh memori kapasitor, setiap bit dibaca memiliki nilai bit ditulis ulang, pada interval yang lebih pendek daripada waktu pengosongan kapasitor.
RAM Dinamis sering meiliki logika deteksi kesalahan dan  pengecekan kesalahan. Dalam bentuk yang paling sederhana ini  sekurang-kurangnya adalah paritas yang dihitung ketika data ditulis dan diperiksa ketika dibaca. Ada juga sistem error correcting lebih rumit yang memungkinkan koreksi kesalahan single-bit dan deteksi kesalahan multi-bit.

Gambar 4. Susunan Memori Dinamis





Read Only Memory

Read Only Memory atau ROM digunakan untuk menyimpan data yang bersifat tetap diantaranya data instruksi atau program yang harus dijalankan oleh mikroprosesor. Selain itu juga data operasi yang tidak boleh hilang ketika catudaya dimatikan. Perangkat yang dapat menyimpan informasi atau pengaturan, baik secara permanen (non volatile memori) atau sementara yang membutuhkan pasokan tenaga listrik tetap ada (memori volatile), merupakan bagian penting dari hampir setiap sistem elektronik modern. Bahkan peralatan yang tidak memiliki kemampuan diprogram ulang memungkinkan berisi perangkat ini yang dikonfigurasi pada saat atau setelah perakitan, bertujuan mengurangi persediaan perangkat ini sehingga produsen memiliki kemampuan untuk menjaga dan membuat desain yang lebih fleksibel dengan memungkinkan modifikasi selama produksi.
Perangkat memori sirkuit terpadu atau Solid state untuk mikroprosesor dan aplikasi komputer lainnya terbagi dalam dua kategori. Salah satu jenis adalah memori yang tidak berubah dalam operasi normal dan yang isinya tidak hilang jika daya dimatikan (non-volatile), biasanya berisi perintah program dan data yang menentukan bagaimana sistem beroperasi. Memori jenis ini cenderung disebut read-only memory (ROM), dan historis ROM diproduksi oleh pabrik chip dengan data yang telah ditetapkan selama pembuatan silikon, dengan mengkonfigurasi koneksi dari satu atau lebih lapisan poli-silikon atau logam. Sebenarnya dalam volume produksi perangkat yang sangat banyak, ROM sesungguhnya jarang digunakan; hari ini, sebagian besar sistem menggunakan bentuk memori baca mampu diprogram (PROM) – hal ini karena sering reprogrammable, meskipun tidak selalu dalam sistem di mana mereka digunakan.
Jenis lain dari memori volatile, dan disebut sebagai random akses memori (RAM). Kebanyakan perangkat memori modern mendukung akses acak; yaitu, data dapat diakses atau ditulis untuk setiap lokasi independen dari lokasi membaca atau menulis sebelumnya.
Volatile memori dengan baterai back-up dapat digunakan sebagai pengganti memori non-volatile dan memori konfigurasi CMOS komputer pribadi yang digunakan dengan cara ini. Hal ini dapat memiliki keunggulan dibandingkan memori volatile dalam kasus di mana pengguna dapat membuat perubahan pada konfigurasi yang mencegah komputer dari operasi. Penerapannya adalah dengan melepas baterai dan membiarkan memori volatile kehilangan data yang tersimpan.
Perbedaan utama antara memori volatile dan non-volatile adalah kecepatan akses. Memori non-volatile biasanya memakan waktu jauh lebih lama untuk menulis daripada memori volatile, rata-rata ratusan kali lebih lambat, dan sering menggunakan daya jauh lebih besar selama menulis karena kebutuhan untuk tegangan tinggi atau saat ini. Volatile memori biasanya lebih cepat untuk dibaca daripada non-volatile meskipun perbedaan kecepatan jauh lebih kecil.

Sebuah memori 64-bit yang dibentuk dari 8 lokasi lebar masing-masing 8 bit ditunjukkan pada Gambar 1. Operasi ini sederhana, 3 - decoder untuk 8-line memiliki output yang aktif rendah  dan hanya satu output aktif pada suatu waktu, menarik baris kabel ke rendah. Kabel kolom ditarik tinggi oleh resistor pull-up. Dioda konduksi, menarik kolom kawat rendah bila kawat baris ditarik rendah. Pola dioda sepanjang masing-masing baris mewakili bit nol; dimana dioda tidak dipasang pada garis kolom akan tetap tinggi sehingga bit adalah satu. Angka-angka heksadesimal sisi bawah kanan larik menunjukkan data diwakili oleh pola dioda untuk setiap baris. Sampai sekarang sirkuit seperti ini digunakan untuk memberikan sejumlah kecil informasi set-up sistem mikroprosesor tertanam seperti alarm pencuri; sistem seperti sekarang menggunakan memori non-volatile yang dapat diprogram elektrik.
Prinsip operasi dari rangkaian pada Gambar 1a. mirip dengan perangkat ROM yang terintegrasi; Gambar 1b. menunjukkan dioda dihubungkan antara kawat baris dan kawat kolom. Untuk membuat ROM terintegrasi koneksi harus dibuat ketika sirkuit silikon ini dibuat. Gambar 1c. menunjukkan dioda dengan sekering yang terhubung seri-untuk pemrograman. Pertama memori programmable read-only digunakan link lebur. Sekering dilelehkan untuk melepas dioda dan sirkuit tambahan digunakan untuk mengarahkan arus tinggi untuk sekering yang tepat untuk melelehkan mereka.


Gambar 1. Read Only Memory

Link PROM Fusible kini sebagian besar telah digantikan oleh programmable read-only memory bisa dihapus ultraviolet (UVEPROM) dan programmable read-only memory dihapus elektrik (EEPROM).
Sementara link perangkat melebur secara efektif permanen, UVEPROM dan EEPROM diharapkan waktu retensi data 10 sampai 40 tahun pada suhu kamar; ini memiliki implikasi untuk keandalan sistem sehingga mereka mungkin tidak cocok untuk beberapa sistem seperti terkena suhu atau radiasi yang sangat tinggi, seperti satelit.
UVPROM dan EEPROM menggunakan floating gate FET sebagai elemen programmable. Ini beroperasi seperti FET normal kecuali struktur gerbang mengandung lapisan tambahan konduktor terisolasi, gerbang mengambang, yang membentuk sebuah kapasitor yang dapat diisi dengan aplikasi tegangan jauh lebih tinggi daripada yang digunakan untuk operasi normal. Pengaruh kapasitor bermuatan adalah untuk mengubah tegangan ambang FET. Dalam keadaan tidak bermuatan, gerbang mengambang mencegah FET dari konduksi ketika garis baris ditarik tinggi, dan tidak menarik garis kolom ke rendah. Setelah gerbang mengambang dimuati, FET dapat dihidupkan, menarik garis kolom rendah. Memori FLASH didasarkan pada efek fisik yang sama tetapi arsitektur logis berbeda.
Muatan akan tetap pada kapasitor sampai kebocoran melampaui dari waktu ke waktu, mengambil 10 sampai 40 tahun pada suhu kamar; kebocoran ini dapat dipercepat oleh cahaya paparan ultraviolet (UV) atau tegangan tinggi. UVEPROMs dirancang untuk dihapus oleh paparan radiasi UV gelombang pendek selama sekitar 20 menit. Perlu dicatat bahwa perangkat akan terhapus dengan meninggalkannya di sinar matahari langsung selama beberapa hari, atau di bawah lampu neon terang selama beberapa bulan sampai satu tahun. Paket ini memiliki jendela kuarsa (Gambar 2) untuk memungkinkan cahaya masuk, dan hal ini harus ditutupi dengan label lightproof.

Gambar UVEPROM

UVEPROM tersedia dalam paket tanpa jendela, dan perangkat ini disebut sebagai perangkat Programmable sekali waktu (OTP, one time programmable). Silikon dicetak identik dengan yang digunakan di bagian berjendela tetapi biaya kemasan yang lebih rendah. Microcontroller sering disediakan dalam UVEPROM untuk pekerjaan pengembangan dan dalam OTP untuk produksi. EEPROM tidak perlu jendela karena mereka memiliki sirkuit tambahan untuk menghapus / menulis-ulang bit Gambar 3 menunjukkan disederhanakan skema dari UVEPROM dan elemen EEPROM.



gambar 3. Erasable memory dengan FET gate mengambang (a) UVEPROM (b) EEPROM


Rabu, 17 Januari 2018

Mikrokontroler Atmega8535

MIKROKONTROLER ATMEGA8535

Mikrokontroler adalah sebuah piranti elektronika digital yang terintegrasi dalam sebuah chip, tersusun dari mikroprosesor dan piranti pendukungnya yang membentuk system perangkat mikroprosesor berfungsi sebagai perangkat utama pengendali terprogram. Mikrokontroler merupakan sistem mikroprosesor dalam satu chip untuk keperluan pengendalian terprogram. Ada beberapa jenis mikrokontroler dengan produsen pembuatnya antara lain Atmel, PIC, Renesas, dll. Mikrokontroler dalam sebuah rangkaian elektronika berfungsi sebagai pengatur keseluruhan kerja dari sistem yang terprogram. Mikrokontroler adalah otak dari sebuah sistem elektronika digital, dimana sistem kerjanya diatur berdasarkan program dalam bahasa pemrograman yang digunakan, ada beberapa bahasa pemrograman yang dapat digunakan, pada umumnya semua bahasa pemrograman dapat diaplikasikan ke mikrokontroler, akan tetapi membutuhkan kompiler yang mendukung mikrokontroler tersebut.
ATmega8535 adalah mikrokontroler daya rendah CMOS 8-bit berdasarkan arsitektur AVR RISC yang ditingkatkan. Dengan melaksanakan instruksi dalam satu siklus clock tunggal, ATmega8535 mencapai throughputs mendekati 1 MIPS per MHz memungkinkan perancang sistem untuk mengoptimalkan konsumsi daya berbanding kecepatan pemrosesan.
Inti AVR menggabungkan set instruksi yang kaya dengan 32 register kerja kegunaan umum. 32 register semuanya secara langsung terhubung ke Logic Unit Arithmetic (ALU), yang memungkinkan dua register independen untuk diakses dalam satu eksekusi instruksi tunggal di satu siklus clock. Arsitektur menghasilkan kode lebih efisien sementara mencapai throughputs hingga sepuluh kali lebih cepat daripada mikrokontroler CISC konvensional.



Bagian-bagian blok dan fungsi Atmega8535  seperti yang ada pada gambar blok diagram diatas adalah :
ALU, Arithmetic Logic Unit memiliki fungsi melakukan tiga fungsi utama yaitu operasi artitmatika, operasi logika dan operasi bit. Dihubungkan langsung dengan GPR dan dapat melakukan operasi dengan hanya satu siklus clock.
Status Register menyimpan informasi tentang hasil operasi aritmatika yang sedang dijalankan, seperti informasi hasilaritmatika adalah bilangan nol, negatif, carry, dan overflow.
GPR, General Purpose Register merupakan penyimpan data yang akan diolah oleh ALU dan hasil operasi dari ALU terdiri dari 32 file register 8bit yang terhubung langsung dengan ALU. GPR dapat mendukung operasi data 16 bit dengan menggunakan pasangan register X, pasangan register Y atau pasangan register Z.
Program Counter berfungsi untuk menyimpan alamat instruksi pada flash program yang akan dijalankan. Dengan lebar 12 bit, Program Counter dapat menjangkau alamat lokasi memori sebanyak 4K.
SP, Stack Pointer memiliki fungsi utama sebagai penyimpan data sementara, untuk menyimpan variabel lokal dan menyimpan alamat kembali ketika menjalankan subrutin atau interupsi selesai. stack pointer selalu berada dipuncak dari stack, stack selalu berkembang dari yang paling atas menuju  yang lebih rendah. SP dialokasikan pada SRAM dengan alamat dimulai diatas 0X60 terdiri dari dua register 8 bit.
Instruction Register, berfungsi untuk menyimpan instruksi yang sedang dikerjakan diambil dari Flash Program.
Instruction Decoder, memecahkan sandi instruksi menjadi sinyal kontrol proses pada semua bagian melalui jalur kendali (control line).

Control Line, merupakan jalur kendali ke semua bagian yang mengirimkan sinyal kontrol seperti kendali baca, tulis, berhenti, tunggu. bagian yang dikendalikan dipilih oleh address bus.
Flash Program berfungsi untuk menyimpan instruksi program dengan kapasitas  8K byte In-System Programmable flash dengan kemampuan Baca-Sambil-Tulis. Semenjak AVR menggunakan lebar instruksi 16 dan 32 bit, Flash Program diorganisasikan kedalam 4K x 16bit,  dibagi menjadi dua bagian yaitu bagian Program boot dan bagian program aplikasi.  Flash Program memiliki kemampuan sekurang-kurangnya 10.000 kali tulis/hapus. 
SRAM, Static Random Access Memory, digunakan untuk menyimpan data tak permanen dengan kapasitas 512 byte. penulisan dan pembacaan data lebih lama karena menggunakan pengalamatan tak langsung dibandingkan dengan GPR yang menggunakan pengalamatan langsung. SRAM menempati alamat lokasi memori 0x0060 sampai 0x025F.

EEPROM, Electrical Erasable Programable Read Only Memory, digunakan untuk menyimpan data non volatil (tidak hilang meskipun catu daya mati) dengan kapasitas 512 byte.  Untuk membaca data dari EEPROM, CPU dihentikan sementara 4 siklus clock. Sedangkan untuk menulis data ke EEPROM, CPU dihentikan sementara 2 siklus clock.

PORT I/O, Port Input Output berfungsi menghubungkan CPU dengan perangkat luar untuk pengiriman dan pengambilan data. Terdiri dari 4 port dengan lebar data 8byte, yaitu PA, PB, PC dan PC. Port I/O bersifat biderctional, dapat mengirimkan data keluar dan menerima data dari luar dengan melakukan pengaturan pada register Data Direction (DDRx). Data yang dikirim ditempatkan pada Register PORT (PORTx), sedangkan pengambilan data dari luar dengan mengakses register PIN. Register I/O sebanyak 64 register diakses dengan pengalamatan langsung pada alamat 0x00 sampai 0x3F. 32 baris 

ADC, Analog to Digital Converter, berfungsi untuk mengubah tegangan analog pada saluran masukkannya menjadi besaran diskrit dalam bentuk bilangan biner10 bit (0 -1024) atau 8 bit  (0-255). 8 Saluran masukan tunggal dapat dipilih menggunakan register ADMUX maupun menggunakan masukan differential dengan 2 saluran masukan. Hasil konversi disimpan pada register ADC (ADCH dan ADCL).

Timer/Counter, berfungsi untuk menghitung lama waktu atau menghitung jumlah pulsa clock yang masuk ke timer/counter. Terdiri dari 2 counter yaitu, Timer/Counter1 (TCNT1) 16 bit dengan hitungan maksimum 65.535 dan Timer/counter2 (TCNT2) 8 bit dengan hitungan maksimum 255.   Perangkat ini dapat melakukan perhitungan naik maupun turun dengan nilai hitungan yang dapat diprogram. 

USART, Universal Synchronous and Asynchronous Receiver and Transmitter  perangkat ini berfungsi untuk mengirimkan dan menerima data serial dengan mode sinkron maupun asinkron. Pada komunikasi data sinkron, perangkat master mengirimkan pulsa clock untuk sinkronisasi kepada slave terpisah dengan paket data. Pada komunikasi data asinkron, tidak ada pengiriman pulsa clock sinkron, tetapi dengan mengirimkan bit start dan bit stop dalam satu paket data yang dikirim. Kecepatan pengiriman data setiap detik atau baud rate antara pengirim dan penerima harus sama.

Senin, 15 Januari 2018

Sistem Mikroprosesor

SISTEM MIKROPROSESOR


Sebuah Sistem Mikroprosesor adalah sekumpulan perangkat yang terdiri dari sebuah Mikroprosesor dan beberapa perangkat pendukung lainnya sehingga mampu menjalankan fungsi sesuai dengan instruksi-instruksi yang tersusun didalam programnya. Banyaknya perangkat pendukung mikroprosesor sangat tergantung dari kerumitan fungsi yang diharapkan. Perangkat pendukung minimum yang diperlukan oleh sebuah mikroprosesor disebut sistem minimum mikroprosesor terdiri dari mikroprosesor, memori, dan beberapa Port input / output (I / O).  Mikroprosesor, sering disebut unit mikroprosesor (MPU) atau central processing unit (CPU), berisi logika untuk bekerja melalui sebuah algoritma, yang disebut program, yang telah disimpan dalam memori program komputer. Data yang digunakan dan dimanipulasi oleh program disimpan di memori data komputer. Memori adalah gudang data yang biasanya disimpan sebagai array linier dari lokasi dan dapat diakses secara individual. Mikroprosesor dapat mengakses lokasi tertentu di memori dengan mengeluarkan alamat memori (indeks lokasi yang diinginkan) ke elemen memori. elemen I / O memungkinkan mikroprosesor untuk berkomunikasi dengan dunia luar untuk memperoleh data baru dan menyajikan hasil perhitungan tersebut diprogram. Elemen tersebut dapat meliputi kontroler keyboard atau layar.


Gambar Diagram blok dasar sistem mikroprosesor

Program terdiri dari banyak operasi individu yang sangat sederhana, yang disebut isntruksi, yang menentukan secara rinci dan tepat bagaimana mikroprosesor harus melakukan algoritma. Sebuah program sederhana mungkin memiliki puluhan instruksi, sedangkan program yang kompleks dapat memiliki puluhan juta instruksi. Secara kolektif, program yang dijalankan pada mikroprosesor disebut perangkat lunak, berbeda dengan hardware yang menjalankan mereka. Setiap jenis mikroprosesor memiliki set instruksi sendiri yang mendefinisikan set lengkap yang unik, operasi diskrit yang mampu dilaksanakan. Instruksi ini melakukan tugas yang sangat kecil, mereka sendiri, mungkin tampak tidak signifikan. Namun, ketika ribuan atau jutaan instruksi kecil yang dirangkai, mereka dapat menciptakan video game atau word processor.

Sebuah mikroprosesor memiliki kecerdasan tidak melekat atau kemampuan untuk mulai melakukan pekerjaan yang bermanfaat secara spontan. Setiap mikroprosesor dibangun dengan set instruksi yang dapat dipanggil dalam urutan yang mengikat. Oleh karena itu, sebuah mikroprosesor memiliki potensi untuk melakukan pekerjaan yang berguna, tetapi tidak akan melakukan hal semacam itu sendiri. Untuk membuat mikroprosesor melakukan pekerjaan yang berguna, membutuhkan bimbingan eksplisit dalam bentuk pemrograman software. Bahkan sebuah tugas kompleksitas modern harus dipecah menjadi banyak langkah kecil untuk diterapkan pada mikroprosesor. Langkah-langkah ini meliputi aritmatika dasar, operasi Boolean, memuat data dari memori atau elemen input seperti keyboard, dan menyimpan data kembali ke memori atau elemen output seperti printer.

Struktur memori adalah salah satu karakteristik kunci komputer, karena mikroprosesor yang hampir terus-menerus mengakses itu untuk mengambil instruksi baru, memuat data baru untuk beroperasi padanya, atau menyimpan hasil yang dihitung. Sementara memori program dan data secara logis diklasifikasikan berbeda, mereka dapat berbagi sumber fisik memori yang sama. Random access memory (RAM) adalah istilah yang digunakan untuk menggambarkan sumber memori generik yang lokasinya dapat diakses, atau ditangani, dalam urutan perintah membaca atau menulis. Read adalah proses mengambil data dari alamat memori dan mengisikan ke dalam mikroprosesor. Write adalah proses menyimpan data ke alamat memori dari mikroprosesor. Program dan data, keduanya dapat menempati RAM. Perhatikan komputer desktop Anda. Ketika Anda menjalankan program yang terletak pada disk drive, program yang pertama kali dimuat ke RAM komputer dan kemudian dieksekusi adalah dari daerah yang disiapkan untuk memori program. Seperti pada komputer desktop, RAM yang paling sering adalah volatile-artinya kehilangan isinya ketika power dimatikan.


a)      Central Proccesing Unit

Central Proccesing Unit (CPU) Komputer Modern dikemas dalam bentuk rangkaian terintegrasi (IC) dengan ukuran yang relatif kecil dan disebut mikroprosesor. Sebuah mikroprosesor adalah perangkat yang dapat diprogram dan dapat menerima data biner dari perangkat masukan, mengolah data terkait dengan instruksi yang tersimpan di memori dan memberikan hasilnya sebagai keluaran. Dengan kata lain, mikroprosesor menjalankan program yang tersimpan didalam memori dan memindah data ke dan dari dunia kuar melalui terminal I/O.

b)      Data Bus

Sebuah mikroprosesor menghubungkan ke perangkat seperti memori dan I / O melalui bus data dan alamat. Secara kolektif, kedua bus dapat disebut sebagai bus mikroprosesor. Sebuah bus adalah kumpulan kabel yang melayani fungsi yang sama. Bus data adalah larik bit dengan ukuran yang cukup untuk berkomunikasi satu unit data yang lengkap pada suatu waktu. Paling sering, bus data adalah satu atau lebih lebar byte. Delapan bit mikroprosesor, yang beroperasi pada satu byte pada suatu waktu, hampir selalu memiliki data bus delapan-bit. Sebuah mikroprosesor 32-bit, mampu beroperasi pada hingga 4 byte pada suatu waktu, dapat memiliki bus data yang lebarnya 32, 16, atau 8 bit. Lebar bus data yang tepat adalah implementasi spesifik dan bervariasi sesuai dengan aplikasi yang dimaksud mikroprosesor. Sebuah lebar bus sempit berarti bahwa itu akan mengambil lebih banyak waktu untuk berkomunikasi sejumlah data dibandingkan dengan bus yang lebih lebar. Notasi umum untuk bus data D [07:00] untuk bus 8-bit dan D [31:0] untuk bus 32-bit, di mana 0 adalah bit paling kecil (LSB).



data bus


c)      Address Bus

Bus alamat adalah larik bit dengan ukuran yang cukup untuk sepenuhnya mengekspresikan ruang alamat mikroprosesor. Alamat ruang mengacu pada jumlah maksimum memori dan I / O yang mana mikroprosesor secara langsung dapat mengakses. Jika mikroprosesor memiliki bus alamat 16-bit, dapat menangani alamat hingga 162 = 65.536 bytes. Oleh karena itu, ia memiliki ruang alamat 64 kB. Seluruh address space tidak harus digunakan; itu hanya menetapkan batas maksimum pada ukuran memori. Notasi umum untuk 16-bit address bus adalah A [15:0], di mana 0 adalah bit paling kecil. Gambar 1.10. menunjukkan konfigurasi bus mikroprosesor khas dalam komputer. Perhatikan bahwa bus alamat adalah searah (mikroprosesor mengirimkan permintaan alamat untuk berbagai perangkat), dan bus data dua arah (mikroprosesor mengirmkan data ketika menulis dan perangkat mengirimkan data ketika dibaca).
Seluruh ruang alamat Sebuah mikroprosesor tidak pernah ditempati oleh fungsi tunggal; melainkan dibagi oleh ROM, RAM, dan berbagai I / O. Setiap perangkat dipetakan ke wilayah sendiri-sendiri dari ruang alamat dan diaktifkan hanya ketika mikroprosesor mengirimkan alamat dalam wilayah yang dipetakan untuk perangkat tersebut. Proses menyatakan bahwa alamat dalam suatu wilayah yang diinginkan disebut decoding. Logika alamat digunakan untuk membagi ruang alamat keseluruhan menjadi bagian-bagian yang lebih kecil di mana memori dan perangkat I / O berada. Logika ini menghasilkan sinyal individu yang mengaktifkan perangkat yang sesuai berdasarkan keadaan bus alamat sehingga perangkatnya tidak memerlukan pengetahuan tentang decoding unik alamat komputer tertentu.


Address bus

d)      Control Bus

Bus kendali (control bus) terdiri sejumlah jalur individu yang membawa sinyal penyerempak. Istilah bus normalnya berarti sekelompok jalur yang bekerja serempak. Bus kendali mengirim keluar sinyal kendali ke memori, terminal I/O dan perangkat peripheral lain untuk memastikan bekerja tepat. Ini membawa sinyal kendali seperti membaca memori, menulis memori, membaca terminal masukan, menulis terminal keluaran, menggenggam, interupsi, dan lainnya. Sebagai contoh, jika diinginkan untuk membaca isi dari lokasi memori tertentu, CPU pertama mengirimkan keluar alamat dari lokasi pada bus address dan sinyal kendali “baca memori” pada bus kendali. Memori menanggapi dengan mengeluarkan data yang tersimpan di lokasi memori yang dialamatikepada bus data.


control bus 

e)      Read Only Memory
Read Only Memory atau ROM digunakan untuk menyimpan data yang bersifat tetap diantaranya data instruksi atau program yang harus dijalankan oleh mikroprosesor. Selain itu juga data operasi yang tidak boleh hilang ketika catudaya dimatikan. Perangkat yang dapat menyimpan informasi atau pengaturan, baik secara permanen (nonvolatile memori) atau sementara yang membutuhkan pasokan tenaga listrik tetap ada (memori volatile), merupakan bagian penting dari hampir setiap sistem elektronik modern. Bahkan peralatan yang tidak memiliki kemampuan diprogram ulang mungkin berisi perangkat yang dikonfigurasi pada saat atau setelah perakitan, untuk  mengurangi persediaan bahan, sehingga produsen memiliki kemampuan untuk menjaga dan membuat desain yang lebih fleksibel dengan memungkinkan modifikasi selama produksi.

f)       Random Access Memory

Random Access Memory (RAM) merupakan penyimpan data yang dapat ditulis, dibaca ataupun dihapus dan kemampuan penyimpanannya bergantung dari ketersediaan sumber daya. Memori ini akan hilang jika sumber daya dimatikan, oleh karenanya disebut memori volatile. Memori Volatile dapat menggunakan flip-flop sebagai elemen penyimpanan, yang disebut memori statis, atau didasarkan pada pengisian kapasitor, yang disebut memori dinamis. Istilah statis dan dinamis berasal dari kenyataan bahwa sementara flip-flop selalu berada pada status terakhir kecuali power supply dihapus, kapasitor akan discharge perlahan-lahan dari waktu ke waktu sehingga perlu refresh secara teratur agar memori tidak akan hilang.
Memori dinamis dapat dibuat dengan kerapatan yang jauh lebih tinggi daripada memori statis karena setiap bit dalam memori membutuhkan transistor lebih sedikit. Chip memori dinamis telah dapat dibangun di sirkuit penyegaran yang membutuhkan perawatan dari pengisian yang diperlukan untuk menjaga data yang tersimpan pada kapasitor, ini kadang-kadang dikenal sebagai memori pseudo-statis karena desainer sirkuit tidak perlu memberikan penyegaran dengan sirkuit eksternal.
RAM sangat diperlukan untuk penyimpanan data dalam jumlah besar dengan kecepatan baca dan tulis yang cepat. 

g)      Paralel Port  Input Output
Port I/O menyediakan sebuah antarmuka antara mikrokontroler dan perangkat I/O seperti printer, pengendali motor, penggerak penampil, dll. Pengiriman dan penerimaan data melalui Port I/O paralel terjadi secara serentak untuk sejumlah bit sesuai lebar data port. Arah data pada Port I/O adalah dwi arah (Bidirectional), yang dapat mengirimkan data dari CPU ke perangkat luar dan dapat menerima data dari perangkat luar ke CPU.

h)      Serial Port Input Output
Serial Port Input Output merupakan antarmuka antar mikroprosesor dengan perangkat luar seperti keyboard, layar monitor dan lain-lain. Pengiriman atau penerimaan data dilakukan setiap bit secara berurutan untuk sejumlah lebar data.

Ada dua jenis antarmuka komunikasi serial, yaitu antarmuka komunikasi asinkron dan antarmuka komunikasi sinkron. Antarmuka komunikasi asinkron menggunakan start dan stop bit protokol untuk sinkronisasi pemancar dan penerima. Bitsare mulai dan berhenti tertanam dalam setiap byte data. Dibandingkan dengan antarmuka komunikasi sinkron, ia menawarkan kecepatan transmisi data yang lebih rendah. Hal ini juga disebut sebagai universal asynchronous receiver/transmitter (UART) atau antarmuka komunikasi serial (SCI). Antarmuka komunikasi sinkron menggunakan clock disinkronisasi untuk mengirim dan menerima setiap bit. Sinkronisasi clock transmitter dan receiver biasanya dilakukan dengan menggunakan jalur clock tambahan menghubungkan pemancar dan penerima. Hal ini tidak dianjurkan untuk komunikasi jarak jauh. Hal ini juga disebut sebagai antarmuka perangkat serial (SPI).

i)        Timer / Counter
Counter merupakan rangkaian pencacah atau penghitung pulsa clock yang masuk padanya yang dibangun dari sejumlah flip-flop. Banyaknya flip-flop yang digunakan akan menentukan jumlah angka biner yang dapat dihitungnya. Ketika pulsa clock dengan periode tetap diberikan pada masukkannya dan counter harus menghitung sejumlah clock yang ditentukan maka akan diperoleh interval waktu yang tertentu untuk menyelesaikan hitungan tersebut, fungsi ini disebut sebagai timer. Counter/timer biasanya melakukan tiga fungsi berikut. Mereka digunakan untuk menjaga waktu dan/atau mengukur interval waktu antara peristiwa, menghitung jumlah kejadian dan menghasilkan tingkat baud untuk port serial. Timer/counter mampu diprogram (programmable timer/counter) digunakan untuk pembangkit penundaan yang akurat untuk menghitung waktu kejadian, pembangkit tingkat, aplikasi pembangkit gelombang kompleks dan sebagainya. 

j)        Interrupt Control


Interupsi merupakan sinyal permintaan untuk menyela program yang sedang berjalan dan menanggapi rutin interupsi yang dibuat. Pengendali interupsi adalah perangkat penangkap interupsi dari perangkat luar atau periperal. Sebuah interupsi merupakan sinyal permintaan kepada CPU untuk segera dilayani karena keadaan tertentu yang telah direncanakan. Sebuah Pengendali Interupsi Mampu Diprogram (Programmable Interrupt controller, PIC) adalah perangkat yang memungkinkan pemberian tingkat prioritas yang akan ditugaskan untuk output interupsinya. Ini berfungsi sebagai manajer secara keseluruhan dalam lingkungan sistem pengemudi interupsi. Bila perangkat memiliki beberapa output interupsi, maka akan menegaskan mereka dalam urutan prioritas relatif mereka. 

Arsitektur Mikroprosesor

ARSITEKTUR MIKROPROSESOR

Mikroprosesor (sering dituliskan: µP atau uP) adalah sebuah central processing unit (CPU) elektronik komputer yang terbuat dari transistor mini dan sirkuit lainnya di atas sebuah sirkuit terintegrasi (Integrated Circuit, IC) semikonduktor.
Sebelum berkembangnya mikroprosesor, CPU elektronik terbuat dari sirkuit terintegrasi TTL terpisah; sebelumnya, transistor individual; sebelumnya lagi, dari tabung vakum. Bahkan telah ada desain untuk mesin komputer sederhana atas dasar bagian mekanik seperti gearshaftleverTinkertoy, dll.
Evolusi dari mikroprosesor telah diketahui mengikuti Hukum Moore yang merupakan peningkatan performa dari tahun ke tahun. Teori ini merumuskan bahwa daya penghitungan akan berlipat ganda setiap 18 bulan, sebuah proses yang benar terjadi sejak awal 1970-an; sebuah kejutan bagi orang-orang yang berhubungan dengannya. Dari awalnya sebagai prosesor dalam kalkulator, perkembangan kekuatannya telah menuju ke dominasi mikroprosesor di berbagai jenis komputer; setiap sistem dari mainframe terbesar sampai ke komputer jijing terkecil sekarang menggunakan mikroprosesor sebagai pusatnya.

Blok fungsi yang utama uP modern terdiri dari unit aritmatika dan logika (Arithmetic logic unit, ALU), file register dan unit kendali (control unit).


Gambar Susunan skema umum mikroprosesor

Unit Aritmatika dan logika (ALU) adalah komponen inti dari semua mikroprosesor. Ia melakukan operasi seputar aritmatika bilangan dan logika biner dari mikroprosesor. ALU adalah gabungan rangkaian logika dan memiliki dua jalur masukan, sebuah jalur data keluaran dan sebuah jalur status. Ia mengambil data dari register mikroprosesor, mengolah data sesuai dengan instruksi dari unit kendali dan menyimpan hasilnya pada regsiter keluarannya yang dinamakan accumulator atau work register. Semua ALU modern menggunakan format data biner dalam komplemen 2.
Operasi aritmatika bilangan yang dilakukan oleh ALU diantaranya penjumlahan dan pengurangan. Operasi logika melaksanakan proses AND, OR, NOT dan EXCLUSIVE-OR. Beberapa mikroprosesor 64-bit juga melakukan operasi perkalian dan pembagian. Disebagian mikroprosesor, operasi perkalian dan pembagian dilakukan dengan menuliskan algoritma menggunakan operasi penjumlahan dan pengurangan. ALU juga melakukan operasi menggeser bit dan operasi membandingkan data.


File register meliputi berbagai register digunakan utamanya untuk menyimpan data, pengalamatan, dan informasi status selama menjalankan program. Register adalah perangkat logika sekuensial dibangun dari flip-flop. Sebagian dari kebanyakan register yang ditemukan didalam sebagian besar mikroprosesor terdiri dari Program Counter, register instruksi, register buffer, register status, stack pointer, general-purpose register dan register sementara.
Accumulator (ACU) atau work register, merupakan menyimpan data yang akan diproses oleh ALU dan menampung data hasil proses di ALU. data pada ACU harus segera dipindah ke GPR atau memori eksternal setelah siklus proses ALU selesai, karena ACU akan segera diisi data lain pada siklus proses di ALU berikutnya. 
Program Counter adalah register yang menyimpan alamat instruksi berikutnya yang akan dijalankan dan karenanya memainkan peran utama didalam pengendalian urutan instruksi mesin yang dijalankan prosesor. Setelah instruksi dibaca ke memori, program counter dengan sendirinya menaikkan 1 alamat. Ini tentunya pada anggapan bahwa instruksi dijalankan berurutan. Muatannya dipengaruhi juga oleh instruksi jump dan call. Pada kasus instruksi jump, pertama program counter diisi dengan alamat baru dan kemudian dinaikkanya sampai ditemukan instruksi jump lainnya. Ketika mikroprosesor menerima sebuah instruksi untuk memulai sebuah subrutin, muatan dari program counter akan dinaikkan 1 dan disimpan didalam stack. Program counter diisi dengan alamat pertama dari subrutin. Muatannya akan dinaikkan 1 sampai ditemukan instruksi return. Muatan yang tersimpan di-stack kemudian diisikan kembali kedalam program counter dan program dilanjutkan, menjalankan setiap instruksi secara berurutan sampai ditemukan instruksi jump atau pemanggilan subrutin ditemukan. Proses interupsi juga mempengaruhi muatan program counter.
Instruction Register menyimpan kode dari instruksi yang sedang dijalankan. Control unit mengupas kode operasi dari instruction register, yang mana merupakan urutan dari sinyal kendalike sistem untuk melaksanakan proses yang dipersyaratkan oleh instruksi.

Buffer register menghubungkan mikroprosesor dengan sistem memorinya. Dua standar buffer register adalah memory address register (MAR) dan memory buffer register (MBR). MAR menghubungkan kaki address dan mikroprosesor dan menggenggam alamat memori absolut dari data atau instruksi untuk diakses. MBR, juga disebut sebagai memory data register dihubungkan ke kaki data mikroprosesor. Ia menyimpan semua data yang ditulis ke atau dibaca dari memori.
Status register atau flag register menyimpan status keluaran dari hasil sebuah operasi dan memberikan informasi tambahan tentang hasil dari operasi ALU. Status dari bit yang tersimpan didalam status register menyatakan tentang yang terjadi atau tidak terjadi dari kondisi yang berbeda dan satu bit atau lebih dan kemungkinan akan diperbarui pada akhir operasi. Setiap bit adalah tanda Boolean yang menyatakan kondisi tertentu. Kondisi yang paling banyak adalah carry, overflow, zero dan negative. Untuk contoh, nilai 1 diposisi status bit carry menunjukkan bahwa hasil operasi menghasilkan sebuah carry. Pentingnya memperhatikan status register didalam kenyataanya bahwa kondisi seperangkat kode pada status bit yang berbeda didalam status register membentuk pembuatan keputusan oleh mikroprosesor selama menjalankan program.
Stack pointer adalah register yang digunakan untuk menyimpan alamat dari lokasi memori yang dimiliki paling akhir ketika masuk di percabangan. Dalam kenyataan, stack adalah sebuah blok dari lokasi memori yang dirancang untuk menyimpan sementara dari data alamat. Ini digunakan untuk menyimpan data dari general purpose register selama melaksanakan subrutin atau sebuah interupsi yang sedang dilayani. Data dipindahkan dari register general ke stack dengan instruksi PUSH pada awal pemanggilan subrutin, dan kembali ke register general dengan perintah POP pada akhir pemanggilan subrutin. Mikroprosesor menggunakan stack karena ini lebih cepat untuk memindah data menggunakan perintah PUSH dan POP daripada untuk memindah data ke/dari memori menggunakan instruksi MOVE.
general-purpose register. Ada sejumlah register untuk penggunaan umum, dirancang sebagai general-purpose register (GPR). Mereka digunakan secara eksplisit untuk menyimpan informasi data dan alamat. Register data digunakan untuk operasi aritmatika, selama register alamat menggunakan pengalamatan berindeks (indexing) dan tak langsung (indirect). Ini meningkatkan kecepatan proses dari mikroprosesor dengan menghindari jumlah yang besar dari operasi baca/tulis memori eksternal selama operasi ALU dilaksanakan, ini sebagai hasil yang lebih mudah dan lebih cepat untuk membaca dari atau menulis ke register internal daripada membaca dari atau menulis ke lokasi memori eksternal. 
Awalnya mikroprosesor hanya memiliki sebuah register yang disebut Akumulator (Accumulator) untuk menyimpan hasil operasi ALU. hal ini membutuhkan sedikitnya empat instruksi bahasa rakitan (assembly) untuk mengerjakan penjumlahan sederhana, termasuk mengambil data dari lokasi memori eksternal ke akumulator, menjumlahkan isi akumulator ke lokasi memori lain, menyimpan hasilnya ke akumulator dan memindah isi akumulator kembali ke lokasi memori eksternal. Dengan ketersediaan GPR dengan jumlah yang lebih besar, ini akan memungkinkan untuk melaksanakan berbagai operasi ALU tanpa pernah butuh menyimpan data di memori eksternal.
Temporary register dibutuhkan ketika data harus disimpan selama pelaksanaan sebuah instruksi mesin. Register ini tersembunyi dari pemakai mikroprosesor.
Control unit memerintah dan mengkoordinasikan aktifitas dari bagian-bagian yang berbeda dari prosesor dan perangkat I/O. Ia bertanggungjawab untuk mengendalikan siklus dari pengambilan instruksi mesin dari memori dan menjalankannya. Ia juga mengkoordinasikan aktifitas perangkat masukan dan keluaran. Ini pasti blok fungsi yang sangat rumit dari semua blok mikroprosesor dan mencakup bagian terluas pada area chip. Control unit adalah rangkaian logika sekuensial, sesuai langkah-langkah prosesor melalui urutan dari operasi yang diserempakkan. Ia mengirimkan terus-menerus dari sinyal kendali dan pulsa berwaktu ke komponen dan kaki eksternal mikroprosesor. Sebagai ilustrasi, untuk menjalankan sebuah instruksi dari memori, control unit mengirim keluar perintah “baca” ke memori dan membaca instruksi (atau data) ini kembali pada data bus.
Control unit kemudian menterjemahkan instruksi dan mengirimkan signal yang semestinya ke ALU, GPR, Multipllekser, Demultiplekser, Program counter, dan lainnya. Jika instruksinya menyimpan data di memori, control unit mengirim keluar alamat lokasi memori pada address bus, data disimpan pada data bus dan perintah “tulis” pada jalur kendali. 
Control unit dikategorikan dua jenis bergantung dari cara membuatnya. Ini terdiri dari control unit hard-wired dan microcoded. Control unit Hard-wired adalah rangkaian logika sekuensial, yang mana statusnya terkait dengan fasa dari siklus pelaksanaan instruksi. Dalam kasus control unit hard-wired, ada rangkaian elektronik di control unit untuk membangkitkan sinyal kendali untuk setiap instruksi. Mereka sangat kompak dan cepat, tetapi sulit untuk merancangnya. Rancangan ini juga diketahui sebagai rancangan RISC (Reduced Instruction Set Computer). Control unit microcoded mudah untuk merancang, dan menjalankan sebuah instruksi dalam kasus ini melibatkan pelaksanaan sebuah mikroprogram yang mengandung sebuah urutan dari mikro instruksi. Rancangan ini juga diketahui sebagai rancangan CISC (Complex Instruction Set Computer). Control unit Microcoded menawarkan lebih fleksibel daripada control unit hard-wired tetapi mereka lebih lambat dibandingkan control unit hard-wired.