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.
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.
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‖.
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 :
saat :
· Compile
time : Jika lokasi memori diketahui sejak awal, kode absolut dapat
dibangkitkan, apabila terjadi perubahan alamat awal harus dilakukan
kompilasi ulang.
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.
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).

0 Comments