Memory Buffer Register (MBR)
Memory Buffer Register atau yang biasa disingkat dengan MBR adalah suatu register yang berfungsi untuk memuat isi informasi yang akan dituliskan ke memori atau baru saja dibaca dari memori pada alamat yang ditunjukkan oleh isi MAR (Memory Address Register) , atau untuk menampung data dari memori (yang alamatnya ditunjuk oleh MAR) yang akan dibaca. MBR dapat berukuran m bit, 2m bit, 4m bit, dst dimana m = jumlah bit minimal dalam satu alamat (minimum addressable unit).
MBR berperan dalam proses pengaksesan memori yaitu dalam proses read/write dari atau ke memori. Berikut ini urutan proses read dari memori.
Ø Taruh alamat memori yang akan dibaca (dalam unsigned(range 0 hingga 2n binary) ke MAR 2 – 1).
Ø Kirim READ signal melalui READ control line.
Ø Decode isi MAR sehingga diperoleh nilai x dan y (nilai MAR tidak berubah).
Ø Taruh isi alamat yang ditunjuk ke dalam MBR.
Sedangkan, urutan proses write ke memori adalah sebagai berikut.
Ø Taruh alamat memori yang akan ditulisi (dalam unsigned binary) ke MAR (range 0 hingga 2n – 1).
Ø Taruh data yang akan ditulis ke MBR.
Ø Kirim signal WRITE melalui WRITE control line.
Ø Decode isi MAR sehingga diperoleh nilai x dan y (nilai MAR tidak berubah).
Ø Copy-kan isi MBR ke memori (isi MBR tidak berubah).
Selanjutnya, urutan kejadian selama siklus instruksi tergantung pada rancangan CPU. Misalnya sebuah komputer yang menggunakan register memori alamat (MAR), register memori buffer (MBR), pencacah program (PC), dan register instruksi (IR); Proses aliran data pada siklus pengambilannya adalah sebagai berikut.
Ø Pada saat siklus pengambilan (fetch cycle), instruksi dibaca dari memori.
Ø PC berisi alamat instruksi berikutnya yang akan diambil.
Ø Alamat ini akan dipindahkan ke MAR dan ditaruh di bus alamat.
Ø Unit kontrol meminta pembacaan memori dan hasilnya disimpan di bus data dan disalin ke MBR dan kemudian dipindahkan ke IR.
Ø PC naik nilainya 1, sebagai persiapan untuk pengambilan selanjutnya.
Ø Siklus selesai, unit kontrol memeriksa isi IR untuk menentukan apakah IR berisi operand specifier yang menggunakan pengalamatan tak langsung.
Kemudian proses aliran data pada siklus tak langsung adalah sebagai berikut.
Ø N bit paling kanan pada MBR, yang berisi referensi alamat, dipindahkan ke MAR.
Ø Unit kontrol meminta pembacaan memori, agar mendapatkan alamat operand yang diinginkan ke dalam MBR.
Ø Siklus pengambilan dan siklus tak langsung cukup sederhana dan dapat diramalkan.
Ø Siklus instruksi (instruction cycle) mengambil banyak bentuk karena bentuk bergantung pada bermacam-macam instruksi mesin yang terdapat di dalam IR.
Ø Siklus meliputi pemindahan data di antara register-register, pembacaan atau penulisan dari memori atau I/O, dan atau penggunaan ALU.
Lalu proses aliran data pada siklus interupsi adalah sebagai berikut.
Ø Isi PC saat itu harus disimpan sehingga CPU dapat melanjutkan aktivitas normal setelah terjadinya interrupt.
Ø Cara : Isi PC dipindahkan ke MBR untuk kemudian dituliskan ke dalam memori.
Ø Lokasi memori khusus yang dicadangkan untuk keperluan ini dimuatkan ke MAR dari unit kontrol.
Ø Lokasi ini berupa stack pointer.
Ø PC dimuatkan dengan alamat rutin interrupt.
Ø Akibatnya, siklus instruksi berikutnya akan mulai mengambil instruksi yang sesuai.
Sumber : zieinform.blogspot.co.id