Foundationপ্রথম নীতি থেকে
LEVEL 3 · CPU Architecture

Locality of Reference

লোকালিটি অফ রেফারেন্স

প্রোগ্রামের memory access সম্পূর্ণ random না — সাম্প্রতিক ব্যবহৃত (temporal) বা কাছাকাছি ঠিকানার (spatial) ডেটা আবার লাগার সম্ভাবনা বেশি। এই নীতিই memory hierarchy-কে কার্যকর করে।

also: locality, temporal locality, spatial locality

দুই রূপ। Temporal locality — যা এইমাত্র access হয়েছে তা আবার শীঘ্রই লাগবে (loop counter, accumulator, বারবার call হওয়া function)। Spatial locality — যা access হয়েছে তার কাছাকাছি ঠিকানার ডেটাও শীঘ্রই লাগবে (array traversal, struct field access)।

কেন না থাকলে hierarchy অকেজো: [[cache]] শুধু কাজ করে কারণ ছোট, দ্রুত storage-এ সাম্প্রতিক/কাছাকাছি ডেটা রাখলে বেশিরভাগ access hit পায়। Access সত্যিই random হলে প্রতিটাই [[cache-miss]] হতো — hierarchy-র কোনো লাভ থাকত না।

হার্ডওয়্যার উৎস: base+offset addressing mode (array/struct access-এর জন্য ব্যবহৃত) স্বয়ংক্রিয়ভাবে spatially local ঠিকানা তৈরি করে — arr[i]-এর পরপর ঠিকানা মাত্র element_size বাইট দূরে।

পরিমাপযোগ্য প্রমাণ: array বনাম linked-list traversal — দুটোই Θ(n) (mathematics/asymptotic-notation), তবু array ১০-৫০× দ্রুত, কারণ array-তে spatial locality আছে (একটা [[cache-line]] আনলেই একসাথে অনেক element), linked-list-এ নেই (প্রতিটা node এলোমেলো heap address)।