আচ্ছা, প্রথমত, ডিআইএমএমগুলিতে মেমরির সংগঠনটি প্রোগ্রাম এবং এমনকি সিপিওর জন্য বেশ স্বচ্ছ। কিন্তু ... পণ্যদ্রব্য প্রসেসর এবং ডিআইএমএম ব্যবহার করে সব সাম্প্রতিক সিস্টেমে, ডিআইএমএমগুলি আসলে 64-বিট-ওয়াইড "শব্দগুলি" (32 না, 32-বিট CPU এমনকি নয়) প্রয়োগ করে।
দিনে যখন পণ্য (x86) CPU গুলির পৃথক ঠিকানা বনাম ডাটা পিন থাকে, আপনি যদি ঠিকানা পিনের অবস্থানগুলিতে দেখেন তবে আপনি এটি খুঁজে পাবেন যে তারা A0 (একটি ঠিকানাটির কমপক্ষে উল্লেখযোগ্য বিট) থেকে শুরু হয় নি তবে বরং এ 3 এ। তাই প্রোগ্রামগুলি দ্বারা প্রদত্ত ঠিকানাগুলি বিট 0 এ ঠিক করার জন্য "সমস্ত পথ নিচে" যান, এবং ঠিকানা অনুবাদের পরে ফলাফলের প্রকৃত ঠিকানাটি বিট 0 তে যায়, নিম্ন-অর্ডারের তিনটি বিট শারীরিক ঠিকানাটিকে প্রসেসরের বাইরে ফেলে দেয় না। । প্রসেসরটি 8-বাইট (64-বিট) শব্দের মধ্যে র্যাম লিখে এবং লিখতে পারে এবং এইগুলি সর্বদা 8-বাইট সীমারেখাগুলিতে সংযুক্ত থাকে। একই রকম আজও সত্য, যদিও ঠিকানা এবং তথ্য সংকেত বাসে মাল্টিপ্লেক্সড হয় (যেমন তারা সিপিএর একই পিনগুলি ব্যবহার করে)।
উদাহরণস্বরূপ, 8-বাইট শব্দের চেয়ে ছোট জিনিসগুলি সম্বোধন করা
MOV AL, [EBX]
(এ-র রেজিস্টারের নিম্ন-আদেশ বাইটে ইবিএক্সের ঠিকানাটি যে বাইটটি সরানো হয়) প্রসেসর এবং অন-চিপ মেমরি ক্যাশের মধ্যে প্রয়োগ করা হয়। মেমরি নিয়ামকটি 64-বিট শব্দটি ধারণ করে যা আপনার দ্বারা বাইটটি ধারণ করে এবং ক্যাশে এটি সঞ্চয় করে। (আসলে ক্যাশে "ক্যাশ লাইন" এ সংগঠিত হয় 64 বাইট প্রতিটি, তাই আটটি ধারাবাহিক 64-বিট শব্দগুলি ডিআইএমএম থেকে ক্যাশে পড়তে হয়, কিন্তু মনে রাখবেন না ...) এই শব্দটি তখন CPU- এ একটি অভ্যন্তরীণ ডেটা বাসে রাখা হয়, যার থেকে CPU গুলি বাইট (গুলি) অ্যাক্সেস করে এটি লোড অর্ডারের তিনটি বিটের উপর ভিত্তি করে প্রয়োজন। অথবা, সম্ভবত, ক্যাশে ইন্টারফেসটি এটি করে - এটি আমার কাছে স্পষ্ট নয়।
(অবশ্যই, প্রয়োজনীয় শব্দ ইতিমধ্যে ক্যাশে থাকলে, ডিআইএমএমগুলিতে কোনও অ্যাক্সেস নেই।)
একইভাবে একটি পৃথক বাইট লেখার জন্য, সিপিইউ (বা ক্যাশে ইন্টারফেস) ক্যাশে থাকা 8-বাইট শব্দটি পড়তে হবে, এটি পরিবর্তিত করুন যা অনুসারে বাইট প্রভাবিত হবে এবং তারপরে 8-বাইটের শব্দটিকে আবার পাঠাতে হবে ক্যাশে। অবশেষে এটি RAM থেকে flushed পায়।