প্রসেসরের ভার্চুয়াল মেমরি সমর্থন করার জন্য কি এমএমইউ (মেমরি ম্যানেজমেন্ট ইউনিট) চিপটি প্রয়োজনীয়?


14

প্রসেসরের ভার্চুয়াল মেমরি সমর্থন করার জন্য কি এমএমইউ (মেমরি ম্যানেজমেন্ট ইউনিট) চিপটি প্রয়োজনীয়?

সফটওয়্যারটিতে এমএমইউ কার্যকারিতা অনুকরণ করা সম্ভব? (আমি সচেতন যে এটি সম্ভবত পারফরম্যান্স উপর একটি বড় প্রভাব ফেলবে)।


যে কোনও সম্পূর্ণ সক্ষম কম্পিউটার যথেষ্ট পারফরম্যান্স হিট সহ অন্য যে কোনও কম্পিউটারকে অনুকরণ করতে পারে। অথবা কোনও হার্ডওয়্যার অনুকরণ করুন। একমাত্র প্রশ্ন হল পারফরম্যান্স হিটটির মাত্রা।
মান

প্রতিটি প্রসেসরের আজ একটি টিএলবি প্রয়োজন, সুতরাং এটির অন্তর্নির্মিত এমএম-ইউনিট রয়েছে।
রাস্তাফিল

উত্তর:


22

যে কোনও সিস্টেম এমুলেটর যা এমএমইউযুক্ত একটি সিস্টেমকে কার্যকরভাবে কার্যকরভাবে সফ্টওয়্যারটিতে একটি এমএমইউ অনুকরণ করে, সুতরাং আপনার প্রশ্নের উত্তর হিসাবে হ্যাঁ "হ্যাঁ" is তবে ভার্চুয়াল মেমরির জন্য মেমরি অ্যাক্সেস নিয়ন্ত্রণ প্রয়োগের কিছু উপায় প্রয়োজন হয়, বা কমপক্ষে ঠিকানা অনুবাদ করা প্রয়োজন, সুতরাং এটি সিপিইউতে নিয়ন্ত্রিত চলমান সিপিইউর সম্পূর্ণ সফ্টওয়্যার অনুকরণ প্রয়োজন, অথবা এটির জন্য হার্ডওয়্যার সহায়তা দরকার।

সুতরাং আপনি সম্ভবত এটিতে কোনও এমএমইউ, পোর্ট কিউইএমইউবিহীন একটি সিস্টেম তৈরি করতে পারেন, ভার্চুয়াল মেমরিটিকে আসলে দরকারী হিসাবে অনুপস্থিত টুকরো যুক্ত করতে পারেন ( যেমন , হোস্ট সিস্টেমে অদলবদলের জন্য সমর্থন যোগ করুন), এবং কিউইএমইউতে একটি এমএমইউ-প্রয়োজনীয় অপারেটিং সিস্টেম চালাতে পারেন, অতিথি অপারেটিং সিস্টেমের (কিউইএমইউ বাগগুলি ব্যতীত) আপনি যে সমস্ত সুরক্ষা আশা করতে পারেন তার সাথে।

ভার্চুয়াল মেমোরি সরবরাহ করতে ব্যবহৃত একটি এমএমইউ-কম "এমুলেশন" এর উদাহরণ হ'ল জেড-মেশিন , সত্তরের দশকের শেষের দশক এবং আশির দশকের গোড়ার দিকে 8-বিট সিস্টেমে এর কোড এবং ডেটা পেজিং এবং অদলবদল করতে সক্ষম ছিল । অন্তর্নিহিত প্রকৃত প্রসেসরের উপর ভার্চুয়াল প্রসেসরের অনুকরণ করে এটি কাজ করেছে; এইভাবে, দোভাষী যে মেমরি লেআউটে চলমান প্রোগ্রামটি "দেখছেন" তার উপরে সম্পূর্ণ নিয়ন্ত্রণ রাখে।

অনুশীলনে, এটি সাধারণত বিবেচনা করা হয় যে ভার্চুয়াল মেমরি সমর্থন, কমপক্ষে অপারেটিং সিস্টেমের স্তরে একটি এমএমইউ প্রয়োজন। এমএমইউ-কম কার্নেল হিসাবে নির্দেশিত ? লিনাক্স কার্নেলটি তৈরি করা সম্ভব হয় যাতে এটি এমএমইউ ব্যতীত সিস্টেমে চালিত হয়, তবে ফলস্বরূপ কনফিগারেশনটি অত্যন্ত অস্বাভাবিক এবং কেবলমাত্র নির্দিষ্ট ব্যবহারের ক্ষেত্রে উপযুক্ত (বিশেষত কোনও প্রতিকূল সফ্টওয়্যার ছাড়াই)। এটি ভার্চুয়াল মেমোরির প্রয়োজন হতে পারে এমন অনেক পরিস্থিতিতে সমর্থন করতে পারে না (অদলবদল, mmap...)।


সুতরাং ভার্চুয়াল মেশিন অ্যাপ্লিকেশনগুলির একটি এমএমইউ এমুলেটর উপাদান রয়েছে?
yoyo_fun

হ্যাঁ - অগত্যা পৃথক উপাদান হিসাবে নয়, তবে তাদের অনুকরণে প্রয়োজনীয় সমর্থন রয়েছে।
স্টিফেন কিট

7
@ জেনিফার অ্যান্ডারসন: কিছু আধুনিক সিপিইউতে এমন বৈশিষ্ট্য রয়েছে যা এমুলেটারকে (আংশিকভাবে) এমএমইউতে এমএমইউ অনুকরণটি বন্ধ করে দেয়। যেমন একটি এমুলেটরের অভ্যন্তরে চলমান একটি প্রোগ্রাম নিজেই মেমরির একাধিক এমুলেটেড পৃষ্ঠাগুলি ব্যবহার করবে, মেমরির এই পৃষ্ঠাগুলি অবশ্যই এমুলেটর দ্বারা ব্যবহৃত মেমরির পৃষ্ঠাগুলিতে "নেস্টেড" থাকে। উভয় নতুন হাই-এন্ড ইন্টেল এবং এএমডি সিপিইউতে নেস্টেড পৃষ্ঠার টেবিলগুলির জন্য সমর্থন রয়েছে, যা এমুলেইটে এটি (ব্যয়বহুল) অনুকরণের পরিবর্তে এমএমইউর ভিতরেই এই নীড়টি প্রকাশ করতে দেয়।
জার্গ ডব্লু মিটাগ

@ জার্গ প্রকৃতপক্ষে, স্পষ্টতার জন্য ধন্যবাদ। বেশিরভাগ হাইপারভাইজারগুলিতে এখনও কিছু স্তর সফ্টওয়্যার অনুকরণ অন্তর্ভুক্ত যদিও তারা অতিরিক্ত হার্ডওয়্যার সমর্থন ছাড়াই কাজ করবে। প্রশ্নের "- এটা কি সম্ভব "দিক দিয়ে আমি ঝিমঝিম করেছিলাম ;-)।
স্টিফেন কিট

3
@ জেনিফার অ্যান্ডারসন: হ্যাঁ, এই কার্যকারিতাটি বিশেষত প্যারা-ভার্চুয়ালাইজেশনের জন্য প্রবর্তিত হয়েছিল। (দ্রষ্টব্য যে এটি কোনও নতুন নয়, হার্ডওয়্যার-সহায়ক প্যারা-ভার্চুয়ালাইজেশন মেইনফ্রেম বিশ্বে ১৯60০ এর দশক থেকেই বিদ্যমান রয়েছে)) তবে দেখা যাচ্ছে যে এটি অন্যান্য আকর্ষণীয় অ্যাপ্লিকেশনগুলির জন্যও ব্যবহার করা যেতে পারে যেমন বর্জ্য সংগ্রহ দ্রুত করা (দেখুন দেখুন) উদাহরণস্বরূপ আজুলের জিং জেভিএম-এর সি 4 সংগ্রাহক)। তবে লক্ষ করুন, এই সমস্তটি উভয় দিকেই কাজ করে: একইভাবে ভার্চুয়ালাইজেশন সমর্থন সহ এমএমইউগুলি বাড়ানো কোনও পারফরম্যান্স অপ্টিমাইজেশন এবং ভার্চুয়ালাইজেশন ছাড়া আর কিছু নয় ...
জার্গ ডব্লু মিটাগ

7

আপনি ভার্চুয়াল মেমরিটি ঠিক কীটিকে কল করছেন এটি নির্ভর করে। একটি আকর্ষণীয় মডেল হ'ল পুরানো উইন 16 মডেল (উইন্ডোজ এনটি নয়, পুরানো উইন্ডোজ 3.x থেকে সর্বাধিক পরিচিত)। যে মডেলে আপনি ছিল GlobalLockএবং GlobalUnlock, LocalLockএবং LocalUnlockফাংশন। এগুলি ছিল ভার্চুয়াল মেমরির একটি সহযোগিতামূলক, ম্যানুয়াল পরিচালনা management এটি (অ্যাপ্লিকেশন) সফ্টওয়্যারটিতে যেমন করা হয়েছিল, এর জন্য এমএমইউ লাগেনি। এবং স্মৃতিশক্তিটি এই অর্থে ভার্চুয়াল ছিল যে আনলক করা মেমরিটি ডিস্কে পরিবর্তিত হতে পারে।

তবে উইন 16 মডেলটিতে বিভিন্ন প্রক্রিয়াগুলির মধ্যে কোনও সুরক্ষা নেই। অন্য কোনও প্রক্রিয়া যদি মেমরিতে ডেটা ফেলে রাখে তবে আপনি এটি ওভাররাইট করতে পারেন। এটি কোনও মৌলিক বাধা নয়। এসএসডি-র দ্রুততম দিনগুলির সাথে, আপনি সম্পূর্ণরূপে স্মৃতি থেকে একটি চলমান প্রক্রিয়াটি সরিয়ে ফেলতে পারেন এবং উপযুক্ত সময়ে এটি করতে পারেন।


7

কোনও হার্ডওয়্যার এমএমইউ থাকা দরকার নেই, যদি আপনার কাছে এমন কোনও সফ্টওয়্যার থাকে যা শারীরিক স্মৃতিতে এবং থেকে প্রক্রিয়াগুলিকে অদলবদল করতে পারে।

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

কিছু হার্ডওয়্যার সমর্থন সহায়ক - ওএসের নিজস্ব ব্যবহারের জন্য "সুরক্ষিত" মেমরি অঞ্চল সম্পর্কে ধারণা (যেমন এমএসবি সেট সহ সমস্ত ঠিকানা কেবল সুপারভাইজার মোডে অ্যাক্সেসযোগ্য) এবং একটি "ব্রেক" মান ব্যবহারের সর্বোচ্চ ঠিকানা নির্দেশ করে তবে মেমরি পরিচালনা ভার্চুয়াল মেমরির জন্য হার্ডওয়্যার একটি নিখুঁত প্রয়োজন নয়; এটি অর্জনের এটি কেবল একটি বিশেষ কার্যকর উপায়।


2
এটি আসলে ভার্চুয়াল মেমরি নয় তবে এটি কেবল অদলবদল প্রক্রিয়াজাতকরণ ... (এই প্রশ্নের যথাযথ উত্তরের জন্য আমাদের সত্যই "ভার্চুয়াল মেমরির" সংজ্ঞা দেওয়া দরকার!)
স্টিফেন কিট

প্রতিটি প্রক্রিয়াটির ঠিকানা জায়গার নিজস্ব মতামত রয়েছে - আমি যে সংজ্ঞাটি ব্যবহার করছি তা স্পষ্ট করতে আমি সম্পাদনা করব।
টবি স্পিড 15

ঠিক আছে, তবে এটি সমস্ত প্রক্রিয়াগুলির জন্য এক থেকে এক ম্যাপিং। (প্রক্রিয়াগুলির দৃষ্টিকোণ থেকে খুব বেশি পার্থক্য নেই তাই সেখানে কোন আসল যুক্তি নেই ...)
স্টিফেন কিট

0

ভিএম করার জন্য মূল বাণিজ্যিক মেশিনগুলির এমএমইউ ছিল না - তাদের প্রসেসরের মধ্যে ভিএম নির্মিত হয়েছিল। আমার বর্তমান চিন্তাভাবনাটি হ'ল এমএমইউগুলি নন-ভিএম প্রসেসরের শীর্ষে ভিএম রাখার কেবলমাত্র একটি চিন্তাভাবনা। ভিএম ম্যানচেস্টার ইউনিভার্সিটিতে উন্নত হয়েছিল এবং বুড়ো ডিজাইনাররা তাদের অবশ্যই এটি অন্তর্ভুক্ত করা উচিত বলে নিশ্চিত করেছিলেন - যদিও সে সময় এটি অত্যন্ত উদ্ভাবনী ছিল।

বুড়ো বি 5000 (বর্তমানে ইউনিসিস এমসিপি মেশিনগুলি) মেমরি বর্ণনাকারী ব্যবহার করে যা মেমোরি সীমানা প্রয়োগ করে - একটি সীমার বাইরে যান এবং আপনার প্রোগ্রামটি ডাম্প হয় (সীমানা সম্মান করা একটি সুন্দর সমাজের ভিত্তি, তবে কিছু সুযোগ সুবিধাকে অপব্যবহার করে, তাই সীমানা কার্যকর করা আবশ্যক)।

বর্ণনাকারীরা একটি মেমরি ঠিকানা, ব্লক দৈর্ঘ্য এবং ডেটা টাইপ ধরে রাখে তবে সমস্ত গুরুত্বপূর্ণ পি-বিট, বা উপস্থিতি বিট। পি-বিটটি নির্দেশ করে যে ব্লকটি মেমরিতে রয়েছে। শূন্যের একটি পি-বিট মানে ব্লকটি ভর স্টোরেজে থাকে এবং ঠিকানাটি মূল প্রোগ্রামে (কোড বা ডেটা), বা ভিএম (রোলড আউট ডেটা) হয় storage

এই মেশিনগুলি একটি শ্রেণিবিন্যাসের স্মৃতি মডেল প্রয়োগ করেছে implemented এমএমইউগুলি ফ্ল্যাট মেমরির ঘাটতি পূরণ করতে পারে বলে মনে হচ্ছে, ব্যবহারকারীকে ফ্ল্যাট মেমরির মানচিত্র তৈরি করতে হবে। জে কে ইলিফ এই মডেলটি সহ আইসিএল মেশিনগুলিও ডিজাইন করেছিলেন:

http://www.computerconservationsociety.org/resurrection/res74.htm#f

https://en.wikipedia.org/wiki/Burroughs_large_systems

এই মেশিনগুলির মধ্যে এবং আজকের বেশিরভাগের মধ্যে পার্থক্য হ'ল তারা কেবল একটি সিপিইউ আর্কিটেকচারকে নয়, সম্পূর্ণ সিস্টেমের আর্কিটেকচারকে সম্বোধন করে।

সুতরাং মনে হচ্ছে যে কেবল এমএমইউগুলিই প্রয়োজনীয় নয়, এটিগুলি ছাড়া সিস্টেমগুলি আরও ভাল।


-1

ডেস্কটপ, ল্যাপটপ এবং সার্ভার প্রসেসরের বেশিরভাগ অংশে মেমোরি-ম্যানেজমেন্ট হার্ডওয়্যারটিতে এক বা একাধিক টিএলবি অন্তর্ভুক্ত থাকে এবং এটি পেজড বা বিভাগিত ভার্চুয়াল মেমরিটি ব্যবহার করে এমন কোনও প্রসেসরে প্রায় সবসময় উপস্থিত থাকে ।

Translation_lookaside_buffer

এবং তারপরে, ভার্চুয়াল মেমরি সম্পর্কে পড়ুন এবং এটি আসলে কী বোঝাতে চাইছে। বিশাল ভার্চুয়াল ঠিকানার স্থানটি মূল ধারণা নয়। মূল ধারণাটি অনেক স্তরে ক্যাচিং / বাফারিং।

এটি সহজ থেকে অনেক দূরে, তবে এই টিএলবি মেমরি ক্যাশে কার্নেলের মিমি সাবসিস্টেমটি তৈরি করা হার্ডওয়ারের একটি গুরুত্বপূর্ণ অংশ (অন্যথায় ভিএম বেশিরভাগ ক্ষেত্রে ওভারহেড হবে)।


VM- র =

ভার্চুয়াল মেমরি বা ভার্চুয়াল মেশিন। খুব আলাদা, খুব সংযুক্ত।


সুতরাং উত্তরটি হ'ল না, একটি এমএমইউ চিপ ( মূলবোর্ডের সিপিইউর বাইরে একটি পৃথক ইউনিট ) প্রয়োজন নেই।

হ্যাঁ, কিছু হার্ডওয়্যার এমএমইউ (সিপিইউতে) দরকারী ভিএম সম্পর্কে আদৌ চিন্তা করা প্রয়োজন। (এটি x86 প্ল্যাটফর্মের জন্য, এই 8086 বিভাজন দিয়ে শুরু হয়েছিল )

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.