অ্যালগরিদম অ্যানালিসিসে আমরা অপারেশন এবং স্টেপ কাউন্ট করি। এটি তখন জাস্টিফাইড যখন কম্পিউটার একটি অপারেশন পারফর্ম করতে ডেটা ফেচ করার চেয়ে বেশি টাইম নিত। আজকাল অপারেশন পারফর্ম করার খরচ মেমোরি থেকে ডেটা ফেচ করার খরচের চেয়ে সিগনিফিক্যান্টলি কম।
অনেক অ্যালগরিদমের রান টাইম মেমোরি রেফারেন্সের সংখ্যা (ক্যাশ মিসের সংখ্যা) দ্বারা ডোমিনেটেড হয়, অপারেশন সংখ্যা দিয়ে না। তাই, যখন আমরা কিছু অ্যালগরিদম ডিজাইন করব, তবে আমাদের শুধু অপারেশন সংখ্যা কমাতে হবে না, বরং মেমোরি অ্যাক্সেসের সংখ্যাও কমাতে হবে। এছাড়া এমন অ্যালগরিদম ডিজাইন করতে হবে যা মেমোরি লেটেন্সি হাইড করে।
মনে করুন একটি সিম্পল কম্পিউটার মডেল যেখানে কম্পিউটারের মেমোরি تتكون হয় একটি L1 ক্যাশ, একটি L2 ক্যাশ, এবং মেইন মেমোরি। আমরা রেজিস্টার (R)-এ রেসিডেন্ট ডেটা ব্যবহার করে ALU দিয়ে কিছু অ্যারিথমেটিক এবং লজিক্যাল অপারেশন পারফর্ম করি।
এটি এর ব্লক ডায়াগ্রাম −

ডায়াগ্রাম থেকে আমরা মেমোরি এবং ক্যাশের সাইজ সম্পর্কেও জানতে পারি। মেইন মেমোরি মূলত হান্ড্রেড বা থাউজেন্ড MB। যেখানে L2 ক্যাশ কিছু ফ্র্যাকশন MB এবং L1 ক্যাশ কিছু KB। রেজিস্টার সাইজ কিছু বিট। প্রোগ্রাম এক্সিকিউট করার সময় সকল ডেটা মেমোরিতে থাকে। যদি ADD অপারেশন করি, তবে প্রথম নাম্বার রেজিস্টারে স্টোর হবে, রেজিস্টারের ডেটা যোগ হবে, তারপর রেজাল্ট মেমোরিতে লেখা হবে।
এক সাইকেল মানে वो টাইম যা রেজিস্টারে থাকা ডেটা যোগ করার লাগে। L1 ক্যাশ থেকে রেজিস্টারে ডেটা লোড করতে আপেক্ষিক দুটি সাইকেল লাগে এই মডেলে। যদি প্রয়োজনীয় ডেটা L1-এ না থাকে কিন্তু L2-এ থাকে, তবে L1 ক্যাশ মিস হয় এবং প্রয়োজনীয় ডেটা L2 থেকে L1 এবং রেজিস্টারে ১০ সাইকেলে আসে। যখন প্রয়োজনীয় ডেটা L2-এও নেই, তবে L2 ক্যাশ মিস হয় এবং ডেটা মেইন মেমোরি থেকে L2, L1, এবং রেজিস্টারে ১০০ সাইকেলে আসে। রাইট অপারেশন এক সাইকেল হিসেবে কাউন্ট হয় এমনকি ডেটা মেইন মেমোরিতে লিখলেও, কারণ আমরা কমপ্লিট রাইটের জন্য ওয়েট করি না নেক্সট অপারেশনের জন্য প্রসিড করার আগে।