1. Pengertian MAR (Memory Address Register)
MAR (Memory Address Register) atau register penunjuk alamat memori merupakan register
yang menampung alamat data atau instruksi pada main memory yang akan diakses, baik itu yang
akan diambil (dibaca) maupun yang akan diletakkan (disimpan/ditulis). Register ini berisi alamat dari
data dan dihubungkan pada bus alamat, sehingga dapat menspesifikasikan alamat di dalam memori
untuk operasi baca atau simpan/tulis. Alamat dari main memory (tempat data berada), diletakan di
MAR dan dikirimkan ke main memory melalui address bus. Selama komputer bekerja, alamat dalam
pencacah program ditahan (latched) pada MAR. Setelah itu MAR akan mengirimkan alamat ke dalam
RAM dan operasi membaca dilaksanakan.
MAR adalah register yang mencatat alamat memori yang akan diakses (baik yang akan ditulisi
maupun yang akan dibaca). (Hariyanto, Bambang. 1997. Sistem Operasi Revisi Keempat)
Spesifikasi MAR
Memuat alamat dari lokasi memori yang akan diakses (baca/tulis)
Jumlah bit MAR menentukan jumlah maksimum dari memori fisik yang dapat dipasang dalam
suatu komputer.
Jika MAR terdiri dari n bit berarti alamat memori yang valid adalah 0 hingga 2 n – 1
Fungsi MAR
MAR berfungsi sebagai komponen yang diperintahkan oleh IR dan Control Unit untuk mencari
dan menampung alamat data serta instruksi dalam sebuah Main Memory.
Proses kerja MAR (antara CPU dan memory)
MAR merupakan salah satu register yang digunakan sebagai interface antara CPU dan main
memory. MAR menampung alamat data atau instruksi yang dikirim dari main Memory ke CPU atau
yang akan direkamkan ke Main Memory.
Berikut penjelasan tentang proses pengaksesan data di/ke main memory.
1. Bila data atau instruksi akan diambil dari Main Memory ke CPU, maka Main Memory harus
diberitahu terlebih dahulu alamat (address) data atau instruksi tersebut di Main Memory. Oleh
Control Unit alamat tersebut diletakan di MAR untuk dikirim ke Main Memory melalui Address Bus.
2. 2. Demikian juga jika hasil proses dari CPU akan direkamkan ke main memory, maka Main Memory
harus diberitahu terlebih dahulu alamat perekaman hasil proses tersebut di Main Memory. Oleh
Control Unit alamat tersebut diletakan di MAR untuk dikirim ke Main Memory lewat Address Bus.
Proses Pengaksesan Data (Menyimpan/Mengambil) yang melibatkan MAR
1. Processor à Memory (Processor menyimpan data/instruksi ke memory)
Alamat data atau memory akan disalin ke dalam MAR, kemudian alamat tersebut akan di cari di
dalam memory. Setelah ditemukan, data atau instruksi akan dimasukkan ke dalam MDR. Alamat
yang telah ditemukan tadi, sel memorinya akan diaktifkan. Lalu data atau instruksi yang ada di MDR
dimasukkan ke dalam memory.
1. Processor ß Memory (Processor mengambil data/inst dari memory)
Alamat data atau memori akan disalin ke dalam MAR, Kemudian alamat tersebut akan dicari di
dalam memory. Setelah ditemukan, maka sel memory yang berisi data atau instruksi akan aktif.
Dengan aktifnya sel memory ini maka data atau instruksi yang ada didalamnya dapat di keluarkan
untuk kemudian di tampung di dalam MDR
Melihat hal ini maka MAR digolongkan dalam register satu arah (karena hanya berhubungan dengan
memory (alamat).
Peningkatan Kinerja MAR
Memperbesar kapasitas memory, berarti secara tidak langsung akan berpengaruh pada kinerja
MAR. Ketika kapasitas memory bertambah besar, ada dua hal yang terjadi:
1. Peningkatan jumlah bit alamat dari data atau instruksi di dalam MAR
2. Pelebaran alamat dari instruksi
Dengan demikian, ketika memory di perbesar maka MAR akan lebih leluasa memanfaatkan kapasitas
dari memory yang telah di upgrade tadi. Sehingga akan banyak alamat memory yang bisa dialamati
dan banyak data atau instruksi yang bisa diakses.