কিভাবে বাইট ঠিকানা কাজ করে?


1

আমি কম্পিউটার আর্কিটেকচার নতুন। তাই আমি ভুল যদি আমাকে সঠিক।

যদি মেমরি মডিউলটিতে 8 মেমরি চিপ থাকে এবং প্রতিটি চিপ প্রতিটি ঠিকানা 4 বিট সঞ্চয় করে তবে মডিউলের ঠিকানা পিনে একটি ঠিকানা প্রয়োগ করে আমি (8 x 4 =) মডিউলের ঠিকানা থেকে 32 বিট পেতে পারি। কিন্তু বাইট অ্যাড্রেসিং বলে যে প্রতিটি বাইট একটি ঠিকানা আছে। কিন্তু এখানে আমি একটি ঠিকানা ব্যবহার করে 32 বিট অ্যাক্সেস করছি। সুতরাং কিভাবে এটা সম্ভব?

আমি মনে করি প্রতিটি চিপ মডিউলে একটি ঠিকানা প্রয়োগ করে ঠিকানা প্রতি 1 বিbit সঞ্চয় করলে আমি 8bit বা one byte অ্যাক্সেস করতে পারি।


বিজোড় তথ্য বাইটের পরিবর্তে আধুনিক প্রসেসরগুলি সাধারণ ক্ষেত্রে (যেমন পুরো শব্দগুলিতে নির্দেশাবলী আনয়ন করা) জন্য অপ্টিমাইজ করা হয়। আধুনিক মেমরি সাধারণত বাইট ঠিকানাযোগ্য, কিন্তু হার্ডওয়্যার বাস্তবায়ন ব্যাপক তথ্য জন্য প্রায়ই হয়। আপনি ক্ষমতা সঙ্গে বাস্তবায়ন বিভ্রান্তিকর হয়; তারা অভিন্ন হতে হবে না। সম্ভবত একটি হার্ভার্ড স্থাপত্য কম্পিউটার আপনার উপায় করতে পারে।
sawdust

উত্তর:


1

আচ্ছা, প্রথমত, ডিআইএমএমগুলিতে মেমরির সংগঠনটি প্রোগ্রাম এবং এমনকি সিপিওর জন্য বেশ স্বচ্ছ। কিন্তু ... পণ্যদ্রব্য প্রসেসর এবং ডিআইএমএম ব্যবহার করে সব সাম্প্রতিক সিস্টেমে, ডিআইএমএমগুলি আসলে 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 পায়।


প্রকৃতপক্ষে আমার প্রশ্নটি সেই সিপিএসগুলির সম্পর্কে যখন আলাদা ঠিকানা এবং তথ্য পিন ছিল। কিন্তু মেমরি মডিউল স্টোরগুলিতে কোনও ঠিকানা কোনও বাইটের চেয়ে বেশি পরিমাণে বাইট অ্যাড্রেসিংয়ের অনুরূপ, বুঝতে পারছি না, যেখানে একটি বাইট কোন নির্দিষ্ট ঠিকানায় সংরক্ষণ করা হয়?
Kaustav

আমি ভুল হলে আমাকে সংশোধন করুন। আমার প্রশ্নটি এই বিন্দুতে বোঝায় কিভাবে বাইট অ্যাড্রেসিং 32 বিবি বা 64 বিবিসি প্রশস্ত ডিআইএমএমে প্রয়োগ করা হয়?
Kaustav

"সেই দিনে ফিরে যখন CPU গুলিগুলির পৃথক ঠিকানা বনাম ডেটা পিন ছিল ..." - এটি একটি খুব স্পষ্ট স্পেসিফিকেশন, বিশেষত যেহেতু আপনি আপনার ইতিহাস অনুসন্ধানকে আধুনিক x86 এ সীমাবদ্ধ করেছেন, তবুও জেনেরিক ব্যবহার করুন "সিপিইউ"
sawdust

@ সউডাস্টঃ গুড পয়েন্ট, নির্দিষ্ট।
Jamie Hanrahan

@ কস্তাভ: আমার পয়েন্ট এটা যে মেমরি মডিউল প্রয়োগ করা হয় না সব। ডিআইএমএম কেবল 64-বিট আকারের শব্দগুলিতে পড় এবং লিখুন, যা সর্বদা (CPU এর দৃষ্টিকোণ থেকে) আট-বাইটের সীমানাগুলিতে সংলগ্ন হয়। যদি প্রসেসরকে একটি বাইটের দরকার হয় যা বাইটিগুলির একটিতে (0২414100 0x41F07 মাধ্যমে) 0x41F00-এর একটি বাইটের প্রয়োজন হয় - এটি একটি আট-বাইটের সময় - ডিআইএমএমগুলিতে যে ঠিকানাটি যায় 0x83E1, যা 41f07 ডান তিনটি বিট স্থানান্তরিত হয়। নিম্ন-অর্ডারের তিনটি বিট ঠিকানাগুলি ডিআইএমএমগুলিতে কখনও পায় না এবং এর প্রয়োজন হয় না। এটি এখনও পরিষ্কার না হলে, LMK দয়া করে।
Jamie Hanrahan
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.