Memori
adalah pusat dari operasi pada sistem komputer modern. Memori adalah array
besar dari word atau byte, yang disebut alamat. CPU mengambil
instruksi dari memory berdasarkan nilai dari program counter. Instruksi
ini menyebabkan penambahan muatan dari dan ke alamat memori tertentu. Instruksi
eksekusi yang umum, contohnya, pertama mengambil instruksi dari memori.
Instruksi dikodekan dan mungkin mengambil operand dari memory. Setelah
instruksi dieksekusi pada operand, hasilnya ada yang dikirim kembali ke
memory. Unit memory hanya merupakan deretan alamat memory; tanpa tahu bagaimana
membangkitkan (instruction counter, indexing, indirection,
literal address dan lainnya) atau untuk apa (instruksi atau data). Oleh
karena itu, kita dapat mengabaikan bagaimana alamat memori dibangkitkan oleh
program, yang lebih menarik bagaimana deretan alamat memori dibangkitkan oleh
program yang sedang berjalan.
Pengikatan alamat adalah cara instruksi dan data (yang berada di disk sebagai file yang dapat dieksekusi) dipetakan ke alamat memori. Sebagian besar sistem memperbolehkan sebuah proses user (user process) untuk meletakkan di sembarang tempat dari memori fisik. Sehingga, meskipun alamat dari komputer dimulai pada 00000, alamat pertama dari proses user tidak perlu harus dimulai 00000. Alamat pada source program umumnya merupakan alamat simbolik. Sebuah compiler biasanya melakukan pengikatan alamat simbolik (symbolic address) ke alamat relokasi dipindah (relocatable address). Misalnya compiler mengikatkan alamat simbolik ke alamat relokasi “14 byte from the beginning of this module”. Editor Linkage mengikatkan alamat relokasi ini ke alamat absolute (absolute addresses) “74014”.
Pengikatan alamat adalah cara instruksi dan data (yang berada di disk sebagai file yang dapat dieksekusi) dipetakan ke alamat memori. Sebagian besar sistem memperbolehkan sebuah proses user (user process) untuk meletakkan di sembarang tempat dari memori fisik. Sehingga, meskipun alamat dari komputer dimulai pada 00000, alamat pertama dari proses user tidak perlu harus dimulai 00000. Alamat pada source program umumnya merupakan alamat simbolik. Sebuah compiler biasanya melakukan pengikatan alamat simbolik (symbolic address) ke alamat relokasi dipindah (relocatable address). Misalnya compiler mengikatkan alamat simbolik ke alamat relokasi “14 byte from the beginning of this module”. Editor Linkage mengikatkan alamat relokasi ini ke alamat absolute (absolute addresses) “74014”.
Instruksi
pengikatan instruksi dan data ke alamat memori dapat dilakukan pada saat :
·
Compile
time : Jika lokasi
memori diketahui sejak awal, kode absolut dapat dibangkitkan, apabila terjadi
perubahan alamat awal harus dilakukan kompilasi ulang.
·
Load
time : Harus
membangkitkan kode relokasi jika lokasi memori tidak diketahui pada saat waktu
kompilasi.
·
Execution
time : Pengikatan ditunda
sampai waktu eksekusi jika proses dapat dipindahkan selama eksekusi dari satu
segmen memori ke segmen memori lain. Memerlukan dukungan perangkat keras untuk
memetakan alamat (misalnya register basis dan limit).
EmoticonEmoticon