NRP : 113040144
Kelas : C
Tugas Matakuliah Sistem Operasi
Dosen : Yoseph Ismail ST
Subjek Tugas : Carilah Referensi mengenai alamat-alamat port perangkat keras I/O yang ada dalam Personal Computer
Pertimbangkan sebuah sistem sederhana yang dibangun di sekitar 8-bit mikroprosesor . Seperti CPU yang mungkin memberikan 16-bit jalur alamat, yang memungkinkan untuk mengatasi hingga 64 kibibytes (KIB) dari memori. Pada sistem tersebut, mungkin 32 KiB ruang alamat akan dialokasikan untuk random access memory (RAM), lain 16K untuk membaca memori hanya (ROM) dan sisanya ke berbagai perangkat lain seperti timer, counter, tampilan video keripik, alat untuk menghasilkan suara, dan sebagainya.Perangkat keras sistem ini diatur sedemikian rupa sehingga perangkat pada bus alamat hanya akan merespon ke alamat tertentu yang dimaksudkan untuk mereka; semua alamat lainnya diabaikan. dan Ini adalah tugas dari alamat decoding circuitry , dan inilah yang menetapkan peta memori pada sistem.
Berikut adalah peta memorinya :
Alat | Alamat kisaran ( heksadesimal ) | Ukuran |
---|---|---|
RAM | 0000 - 7FFF | 32 KiB |
Tujuan umum I / O | 8000 - 80FF | 256 byte |
Suara kontroler | 9000 - 90FF | 256 byte |
Video controller / teks-dipetakan RAM tampilan | A000 - A7FF | 2 KiB |
ROM | C000 - FFFF | 16 KiB |
Catatan bahwa ini peta memori berisi kesenjangan, yang juga sangat umum.
Dengan asumsi register keempat video controller menyetel warna latar belakang layar, CPU dapat mengatur warna ini dengan menulis nilai ke lokasi memori A003 menggunakan memori standar instruksi tulis. Menggunakan metode yang sama, grafik dapat ditampilkan pada layar dengan menulis nilai-nilai karakter ke dalam sebuah area khusus RAM dalam video controller. Sebelum murah RAM yang memungkinkan bit dipetakan menampilkan , metode sel karakter adalah teknik populer untuk menampilkan video komputer.
I/O Sebagai Tipe Memori
Informasi status dan kontrol dari I/O adalah suatu tipe dari lokasi memori yang mengijinkan sistem komputer untuk mendapatkan informasi dari dan ke dunia luar. Tipe lokasi memori ini tidak seperti memori pada umumnya karena informasi yang ada dapat berubah karena pengaruh selain dari CPU.
Jenis paling sederhana dari lokasi memori I/O adalah port input dan port output sederhana. Dalam mikrokontroler 8-bit, port input sederhana terdiri dari delapan kaki yang dapat dibaca oleh CPU. Port output sederhana terdiri dari delapan kaki yang dapat dikontrol oleh CPU. Dalam kenyataannya, port output sederhana diimplementasikan dengan delapan latch dan jalur feedback yang memungkinkan CPU untuk membaca kembali apa yang sebelumnya ditulis ke port output.
Gambar di bawah memperlihatkan rangkaian ekuivalen dari satu bit RAM, satu bit port input, dan satu bit port output yang umum dan memiliki kemampuan membaca kembali. Dalam mikrokontroler nyata, rangkaian ini ada delapan untuk membentuk delapan bit RAM, port input, dan port output. Saat snyal clock high, data dari input D menuju output Q. Saat input clock low, data ditahan pada kaki output Q.
Saat CPU menyimpan informasi ke dalam RAM dalam gambar (a), sinyal WRITE diaktifkan untuk menahan data dari jalur data bus ke dalam flip-flop [1]. Latch ini akan terus mengingat data yang telah diberikan sampai terjadi proses penulisan kembali atau jika daya dihilangkan. Saat CPU membaca data dalam RAM ini, sinyal READ diaktifkan, yang kemudian mengaktifkan multiplekser [2]. Multiplekser ini membuat data dari output latch muncul kembali ke jalur data bus.
Saat CPU membaca data dari port input seperti pada gambar (b), sinyal READ diaktifkan, yang akan mengaktifkan multiplekser [3]. Multiplekser ini akan mengirimkan data yang ada dalam buffer ke jalur data bus. Sinyal write tidak mempunyai pengaruh dalam rangkaian ini.
Saat CPU menyimpan data ke port output seperti pada gambar (c), sinyal WRITE diaktifkan untuk menahan data dari data bus menuju ke flip-flop [4]. Output dari latch ini, yang di-buffer oleh buffer driver [5], muncul sebagai harga digital pada kaki output. Saat CPU akan membaca data dari port output, sinyal READ diaktifkan, yang akan mengaktifkan multiplekser [6]. Multiplekser ini akan menyalurkan data dari output flip-flop ke jalur data bus.
Register Kontrol dan Status Internal
Register kontrol dan status internal adalah lokasi memori I/O yang spesial. Di samping aksi sensor dan pengontrolan kaki eksternal, register ini juga melakukan aksi sensor dan pengontrolan sinyal level logika internal. Lihat gambar dan bandingkan antara RAM dengan port output. Perbedaan yang tampak hanyalah bahwa port output memiliki buffer untuk menghubungkan state dari flip-flop ke kaki eksternal. Dalam kasus bit kontrol internal, output dari buffer terhubung dengan sinyal kontrol internal tertentu. Suatu bit status internal mirip dengan bit port input tetapi bit status ini hanya melakukan aksi sensor terhadap sinyal register internal.
Mikrokontroler M68HC05 memiliki kaki-kaki I/O paralel. Arah jalur dari setiap kaki dapat diprogram dengan bit kontrol melalui software. Gambar di bawah menggambarkan I/O dua arah (bi-directional) dengan latch output dan bit kontrol arah data. Kaki suatu port dikonfigurasi sebagai output jika bit DDR (Data Direction Register) yang bersesuaian diset menjadi logika satu. Suatu kaki dikonfigurasi sebagai input jika bit DDR yang bersesuaian diset menjadi logika nol. Saat pertama kali dihidupkan atau saat reset, semua bit DDR dinolkan, sehingga konfigurasi semua kaki port adalah sebagai input. DDR ini dapat ditulis dan dibaca oleh prosesor.
Peta Memori
Karena terdapat ribuan dan bahkan lebih lokasi memori dalam suatu sistem mikrokontroler, menjadi penting untuk memiliki cara yang enak untuk menangani alamat masing-masing data dalam memori. Suatu peta memori adalah penggambaran yang mewakili semua spasi dalam memori mikrokontroler. Gambar di bawah adalah peta memori umum yang menggambarkan memori dalam MC68HC705K1.
Empat digit heksadesimal yang terletak pada bagian kiri dari gambar di bawah adalah alamat yang dimulai pada $0000 di atas dan terus bertambahsampai $03F di bagian bawah. Alamat $0000 berhubungan dengan awal lokasi memori sedangkan alamat $03FF berhubungan dengan lokasi memori akhir. Sedangkan ketrangan dalam kotak menunjukkan macam tipe dari memori dan isinya (RAM, EPROM, register I/O, dan sebagainya). Beberapa daerah, seperti register I/O, perlu dijelaskan lebih detail karena penting untuk mengetahui nama dari setiap lokasi. Setiap lokasi memori sebanyak 1024 ini memiliki delapan bit data seperti pada gambar di bawah.
Lokasi memori 256 pertama ($0000-$00FF) dapat diakses oleh komputer dengan cara khusus yang sebut dengan mode pengalamatan langsung (direct addressing mode). Register I/O on-chip dan 32 byte RAM terletak dalam area $0000-$00FF. Dalam peta memori pada gambar di bawah terlihat konfigurasi penempatan pada area ini yang dipaparkan dalam kotak yang terletak di sebelah kanan.
Informasi status dan kontrol dari I/O adalah suatu tipe dari lokasi memori yang mengijinkan sistem komputer untuk mendapatkan informasi dari dan ke dunia luar. Tipe lokasi memori ini tidak seperti memori pada umumnya karena informasi yang ada dapat berubah karena pengaruh selain dari CPU.
Jenis paling sederhana dari lokasi memori I/O adalah port input dan port output sederhana. Dalam mikrokontroler 8-bit, port input sederhana terdiri dari delapan kaki yang dapat dibaca oleh CPU. Port output sederhana terdiri dari delapan kaki yang dapat dikontrol oleh CPU. Dalam kenyataannya, port output sederhana diimplementasikan dengan delapan latch dan jalur feedback yang memungkinkan CPU untuk membaca kembali apa yang sebelumnya ditulis ke port output.
Gambar di bawah memperlihatkan rangkaian ekuivalen dari satu bit RAM, satu bit port input, dan satu bit port output yang umum dan memiliki kemampuan membaca kembali. Dalam mikrokontroler nyata, rangkaian ini ada delapan untuk membentuk delapan bit RAM, port input, dan port output. Saat snyal clock high, data dari input D menuju output Q. Saat input clock low, data ditahan pada kaki output Q.
Saat CPU menyimpan informasi ke dalam RAM dalam gambar (a), sinyal WRITE diaktifkan untuk menahan data dari jalur data bus ke dalam flip-flop [1]. Latch ini akan terus mengingat data yang telah diberikan sampai terjadi proses penulisan kembali atau jika daya dihilangkan. Saat CPU membaca data dalam RAM ini, sinyal READ diaktifkan, yang kemudian mengaktifkan multiplekser [2]. Multiplekser ini membuat data dari output latch muncul kembali ke jalur data bus.
Saat CPU membaca data dari port input seperti pada gambar (b), sinyal READ diaktifkan, yang akan mengaktifkan multiplekser [3]. Multiplekser ini akan mengirimkan data yang ada dalam buffer ke jalur data bus. Sinyal write tidak mempunyai pengaruh dalam rangkaian ini.
Saat CPU menyimpan data ke port output seperti pada gambar (c), sinyal WRITE diaktifkan untuk menahan data dari data bus menuju ke flip-flop [4]. Output dari latch ini, yang di-buffer oleh buffer driver [5], muncul sebagai harga digital pada kaki output. Saat CPU akan membaca data dari port output, sinyal READ diaktifkan, yang akan mengaktifkan multiplekser [6]. Multiplekser ini akan menyalurkan data dari output flip-flop ke jalur data bus.
Register Kontrol dan Status Internal
Register kontrol dan status internal adalah lokasi memori I/O yang spesial. Di samping aksi sensor dan pengontrolan kaki eksternal, register ini juga melakukan aksi sensor dan pengontrolan sinyal level logika internal. Lihat gambar dan bandingkan antara RAM dengan port output. Perbedaan yang tampak hanyalah bahwa port output memiliki buffer untuk menghubungkan state dari flip-flop ke kaki eksternal. Dalam kasus bit kontrol internal, output dari buffer terhubung dengan sinyal kontrol internal tertentu. Suatu bit status internal mirip dengan bit port input tetapi bit status ini hanya melakukan aksi sensor terhadap sinyal register internal.
Mikrokontroler M68HC05 memiliki kaki-kaki I/O paralel. Arah jalur dari setiap kaki dapat diprogram dengan bit kontrol melalui software. Gambar di bawah menggambarkan I/O dua arah (bi-directional) dengan latch output dan bit kontrol arah data. Kaki suatu port dikonfigurasi sebagai output jika bit DDR (Data Direction Register) yang bersesuaian diset menjadi logika satu. Suatu kaki dikonfigurasi sebagai input jika bit DDR yang bersesuaian diset menjadi logika nol. Saat pertama kali dihidupkan atau saat reset, semua bit DDR dinolkan, sehingga konfigurasi semua kaki port adalah sebagai input. DDR ini dapat ditulis dan dibaca oleh prosesor.
Karena terdapat ribuan dan bahkan lebih lokasi memori dalam suatu sistem mikrokontroler, menjadi penting untuk memiliki cara yang enak untuk menangani alamat masing-masing data dalam memori. Suatu peta memori adalah penggambaran yang mewakili semua spasi dalam memori mikrokontroler. Gambar di bawah adalah peta memori umum yang menggambarkan memori dalam MC68HC705K1.
Empat digit heksadesimal yang terletak pada bagian kiri dari gambar di bawah adalah alamat yang dimulai pada $0000 di atas dan terus bertambahsampai $03F di bagian bawah. Alamat $0000 berhubungan dengan awal lokasi memori sedangkan alamat $03FF berhubungan dengan lokasi memori akhir. Sedangkan ketrangan dalam kotak menunjukkan macam tipe dari memori dan isinya (RAM, EPROM, register I/O, dan sebagainya). Beberapa daerah, seperti register I/O, perlu dijelaskan lebih detail karena penting untuk mengetahui nama dari setiap lokasi. Setiap lokasi memori sebanyak 1024 ini memiliki delapan bit data seperti pada gambar di bawah.