16, 32 এবং 64 বিট সিস্টেমে মেমরি সীমাবদ্ধ


17

16, 32 এবং 64 বিট মেশিনগুলিতে তাত্ত্বিক মেমরি সীমাটি নিম্নরূপ:

  • 16 বিট = 65,536 বাইট (64 কিলোবাইট)

  • 32 বিট = 4,294,967,296 বাইট (4 গিগাবাইট)

  • 64 বিট = 18,446,744,073,709,551,616 (১ Ex এক্সাবাইট)

আমি ডস / উইন্ডোজ ৩.১১ দিনের স্মরণে রেখেছি যে ১ bit বিট মেমরিটি বিভাগগুলিতে বিভক্ত হতে পারে, যাতে একটি ১ bit বিট মেশিন K৪ কিলোবাইটের চেয়ে বেশি পরিমাণে মেমরির অ্যাক্সেস করতে পারে।

আমার কাছে ১ memory জিবি মেমরির একটি মেশিন রয়েছে এবং একটি 32 বিট অপারেটিং সিস্টেম এবং একটি 64 বিট অপারেটিং সিস্টেম দ্বৈতভাবে বুট করছি। আমি 64 বিট থেকে সমস্ত 16 গিগাবাইট অ্যাক্সেস করতে পারি, তবে 32 বাইটে কেবল 3.21 জিবি।

সুতরাং, আমার প্রশ্নটি হল, যদি 16 বিট অপারেটিং সিস্টেমগুলি মেমরি সেগমেন্টিংয়ের কারণে K৪ কেবি মেমরির অ্যাক্সেসের বেশি অনুমতি দেয় তবে 32 বিট মেশিন কেন একই প্রিপিসালটি অনুসরণ করে না?

উত্তর:


15

তারা করেন, সিস্টেমটিকে ফিজিকাল অ্যাড্রেস এক্সটেনশন (পিএই) বলা হয় । এখানে উইন্ডোজ ওএস এবং তাদের সর্বোচ্চ মেমরির একটি তালিকা রয়েছে , 4 জিবি র‌্যামের বেশি র‌্যামের জন্য 32 টি বিট সিস্টেম মেমরি অ্যাক্সেস করার জন্য পিএই ব্যবহার করছে (উদাহরণস্বরূপ উইন্ডোজ 2003 আর 2 ডাটাসেন্টার 32 বিট 128 গিগাবাইট র‌্যামের অনুমতি দেয়)।


আসলে উইন্ডোজ 8 এর ন্যূনতম প্রয়োজনীয়তার জন্য একটি PAE সক্ষম সিপিইউ প্রয়োজন


আপনার 32 টি বিট ওএস যদি ম্যামের কাছে উপস্থিত থাকে না কেন সে বিষয়ে আপনার "অনস্ক্রিত" প্রশ্নের সমাধানের জন্য: লাইসেন্সিং। আপনি যদি কোনও ডেটা-সেন্টার সংস্করণের জন্য অর্থ প্রদান না করেন তবে তারা 32 বিট ওএসের জন্য র্যামকে 4 গিগাবাইটের ওপরে না রাখার অনুমতি দেয় (এজন্য তারা কোনও ডেটা-সেন্টার সংস্করণ বিক্রি করে, যদি আপনার খুব বেশি র‌্যামের প্রয়োজন হয় তবে আপনি সম্ভবত আরও বেশি ব্যয় করতে পারবেন একটি ওএসে অর্থ)।


আহ আমি এর আগে পিএই এর কথা শুনেছি কিন্তু কখনও তদন্ত করেছিলাম না। এটি সার্ভার আর্কিটেকচারে বেশিরভাগ ক্ষেত্রে ব্যবহৃত হয় বলে মনে হয়, তাই এটি উইন্ডোজ 7 32 বিবিট ইনস্টলেশনের ক্ষেত্রে প্রযোজ্য বলে মনে হয় না, কারণ তালিকায় উল্লেখ করা হয়েছে যে ডাব্লু 7x86 কেবল 4 গিগাবাইট পর্যন্ত অনুমতি দেয়
ম্যাথু লেটন

1
@ 0xC0000022L ন্যায্য হতে, আমি তার মন্তব্যের পরে সম্পাদনা হিসাবে লাইসেন্সের অংশটি যুক্ত করেছিলাম, তবে 4 মিনিটের সম্পাদনা উইন্ডোর কারণে দেখে মনে হচ্ছে তিনি মন্তব্য পোস্ট করার আগে এটি পোস্ট করেছিলেন।
স্কট চেম্বারলাইন

1
পিএই এর কাজ করার জন্য পৃষ্ঠার টেবিল স্যুইচারু প্রয়োজন, এবং এটি পারফরম্যান্সের ক্ষেত্রে ব্যয়বহুল।
ভোনব্র্যান্ড

3
এটি একটি মিথ। পিএই এর কারণে ওভারহেড ক্ষুদ্র। এবং যদি আপনি PAE অপছন্দ করেন তবে আপনাকে x64 ঘৃণা করা উচিত, কারণ x64 পৃষ্ঠার টেবিল কাঠামোটি PAE এর মতো দেখাচ্ছে, ঠিক আরও একটি টেবিল স্তর PxE এর পিএফএনগুলির জন্য শীর্ষে এবং আরও বিট যুক্ত হয়েছে।
জেমি হানরাহান

1
PAE "এটা আর প্রয়োজন হয়, কারণ উইন্ডোজ 7 সরানো" করা হয় নি, এটা এখনও উইন্ডোজ 7 এক্স 86 উপস্থিত -। বরং এটা মধ্যে optioned হয়ে যাওয়ার চেয়ে ডিফল্টরূপে শুধু আছে
জেমি Hanrahan

13

এটি নিজে ব্যাখ্যা করার পরিবর্তে, আমি কাউকে পিএই সমর্থন দিয়ে কার্নেল বজায় রাখতে হবে তার লম্পট পদ্ধতিতে কথা বলতে দেব লিনাস টোরভাল্ডস

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

তবে, সব ক্ষেত্রেই এই সীমাবদ্ধতাটি উইন্ডোজ দ্বারা আরোপিত নয়। যদি এটি হয়, একটি PAE- সক্ষম লিনাক্স কার্নেল বুট করা আপনাকে এখনও সম্পূর্ণ 4 GiB (বা আরও) ব্যবহার করতে সক্ষম করবে। তাই নয়, কিছু হার্ডওয়্যার নির্মাতারা বিআইওএস স্তরে এই সীমাবদ্ধতা আরোপ করা বেছে নিয়েছে, যদিও সিপিইউ এবং চিপসেট পিএই হ্যান্ডল করতে সক্ষম হবে।


কেবলমাত্র একটি পার্শ্ব-নোট: বর্তমান x86- ভিত্তিক bit৪ বিট প্রসেসরের কোনওটিই শারীরিকভাবে 64 বিট ঠিকানার পুরো পরিসীমাটি সম্বোধন করতে পারে না (রেফারেন্সের জন্য এই প্রশ্নটি এবং উত্তরগুলি দেখুন)।


হুম, আমি কেন এই ধারণাটি পেয়েছি যে লিনাস সত্যিই HIGHMEM.SYS এবং PAE কে ঘৃণা করে? : পি
করণ

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

লিনাসের মন্তব্য অদ্ভুত। কীভাবে himem.sys কাজ করে এবং কীভাবে PAE কাজ করে তার মধ্যে কোনও সম্পর্ক নেই। X64 এর জন্য এবং PAE ঠিকানার বিপরীতে লোকেরা তর্ক করে দেখলে খুব মজাদার হয় ... যখন x64 দীর্ঘ মোড কেবল PAE স্কিম গ্রহণ করে এবং পৃষ্ঠার সারণির আরও একটি স্তর যুক্ত করে!
জেমি হানরাহান

@ জামিহানরাহান: ... নতুন সিস্টেমে কমপক্ষে দু'জন (ভার্চুয়ালাইজেশনের কারণে), যা কিছু উত্তেজনাপূর্ণ সম্ভাবনা উন্মুক্ত করে। তাঁর (লিনাস) তুলনা সম্পূর্ণ সঠিক নয়, তবে এটি যদি কোনও বিদেশী ধারণা হয় তবে রূপকগুলি সাহায্য করতে পারে :) ... আমার ধারণা, এজন্যই তিনি নিজের বক্তব্য তৈরি করার জন্য এটি বেছে নিয়েছিলেন।
0xC0000022L

2

8-বিট সিপিইউতে সাধারণত একটি 16-বিট ঠিকানা বাস ছিল। (মোটোরোলাতে একটি ইউনিফাইড অ্যাড্রেস বাস ছিল, র‌্যাম এবং পেরিফেরিয়াল আই / ও একই ঠিকানা স্থান ভাগ করে নিল, ইন্টেল দুটি ভাগ করতে বেছে নিয়েছিল। ইন্টেলের ক্ষেত্রে, 808 এবং 8086 এর আইও ঠিকানা সীমাটি 8080 ও এর মধ্যে সীমা ছাড়িয়েছিল 8085 সিপিইউ।)

ইন্টেলের 8088 এবং 8086 এর একটি 20-বিট মেমোরি ঠিকানা বাস ছিল (1MB), মটোরোলার 68000 একটি 24-বিট অ্যাড্রেস বাস (16 এমবি) ছিল। আইআইআরসি, [80] 286 একটি 24-বিট ঠিকানার বাসে ঝাঁপিয়ে পড়ে। পরে উভয়ই যথাক্রমে [80] 386 এবং 68020 সহ 32-বিট ঠিকানা বাসে প্রসারিত হয়েছিল)) পেন্টিয়াম চিপস সহ, ঠিকানা বাসটি 64-বিটগুলিতে প্রসারিত হয়েছিল। (আমি মনে করি মোটরোলা / আইবিএম উদ্যোগের পাওয়ারপিসি চিপগুলিও 64৪-বিট অ্যাড্রেস বাসে গেছে))

সিপিইউ দ্বারা সরাসরি অ্যাক্সেস করা যায় এমন সর্বাধিক নীচে এবং সর্বাধিক উপলব্ধ মেমরিটি কেবলমাত্র সমর্থনকারী হার্ডওয়্যার চিপস (চিপসেট) এবং ওএস দ্বারা সীমাবদ্ধ ছিল। বিল গেটস অতীতে এই কথা বলে বিখ্যাত ছিল যে কারওরও 640K এর বেশি র‌্যামের দরকার নেই, এভাবে ডস কখনও সরাসরি আরও বেশি র‌্যাম অ্যাক্সেস করতে বিকশিত হয় নি। হাইমেম.সিস এবং ইএমএম 386 এর সাহায্যে ডসকে আরও "আপার" মেমরিটি অ্যাক্সেস করার জন্য প্রসারিত করা হয়েছিল, EMM386 সরাসরি সমস্ত উপলব্ধ র‍্যামের অ্যাক্সেসের জন্য ব্যবহৃত হয়েছিল। হাইমেম.সিসের নমনীয়তা কম ছিল এবং মূলত স্টোরেজের জন্য অতিরিক্ত র্যাম ব্যবহার করতে পারে।

এই সীমাটি অতিক্রমকারী মেমরির জন্য একটি এমএমইউ (মেমরি ম্যানেজমেন্ট ইউনিট) প্রয়োজন মেমরিটিকে বিভাগগুলিতে বিভক্ত করতে এবং এটিকে সিপিইউয়ের ঠিকানাযোগ্য মেমরি স্পেসে ম্যাপ করতে। এটি কীভাবে কোকো 3, কমোডোর 128 এবং অন্যান্য 8-বিট কম্পিউটারগুলি 64K-র বেশি র‍্যাম অ্যাক্সেস করতে পারে।

ওএস দ্বারা আরোপিত সীমা থাকা সত্ত্বেও অতীতের শারীরিক মেমরির সীমা বাড়ানোর জন্য ভার্চুয়াল মেমরি ব্যবহার করা এখন আরও অনুকূল।


1

কারণ এটি করার কোনও ব্যবহারিক কারণ নেই। শারীরিক ঠিকানা এক্সটেনশানগুলি একই কার্যকারিতাটিকে অনেক বেশি অনুমতি দেয় এবং ব্যবহারকারীদের মধ্যে তাদের ব্যবহার এখনও খুব সীমাবদ্ধ। উইন্ডোজ ৩.১ দিনগুলিতে এমন প্রতিবন্ধকতা ছিল যা বর্তমানে উপস্থিত নেই।


1
আপনার বিবৃতিগুলি ব্যাকআপ করার জন্য এটিতে সত্যিকারের পর্যাপ্ত তথ্য নেই। উইন্ডোজ 3.1 একটি 16-বিট অপারেটিং সিস্টেম। একটি অবশ্যই মনে রাখতে হবে যে 1992 সালে 2MB মেমরি 300 ডলারেরও বেশি ছিল।
রামহাউন্ড

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

এটি আমার মতামত যে উত্তরগুলি একা থাকা উচিত। আপনার মন্তব্যটি আপনার উত্তর দিয়ে আমার সমস্যাগুলি সমাধান করার জন্য যথেষ্ট তথ্য যুক্ত করে।
রামহাউন্ড

1
@ ওসিডিটেক: ৮০86 se খণ্ডিত মডেলটি কোনও 16-বাইট সীমানায় রেখাযুক্ত বস্তুগুলি সনাক্ত করতে 2-বাইট অবজেক্ট রেফারেন্স ব্যবহার করার জন্য একটি অবজেক্ট-ওরিয়েন্টেড ভাষাকে অনুমতি দেবে, তবে ভাষাগুলি বিভাগগুলি কার্যকরভাবে ব্যবহার করতে উপযুক্ত ছিল না। 80286 মডেল এই জাতীয় প্রোগ্রামগুলিতে মারাত্মকভাবে - বৃহত্তর ওভারহেড চাপিয়ে দেয় এবং এটি 80386-এ যেভাবে প্রসারিত হয়েছিল সেগমেন্ট-প্রতি-অবজেক্ট স্কিমটিকে সম্পূর্ণ অকেজো করে তুলবে।
সুপারক্যাট

0

16, 32 এবং 64 বিট মেশিনগুলিতে তাত্ত্বিক মেমরি সীমাটি নিম্নরূপ ...

এখানে মৌলিক ত্রুটিটি ধারণাটি হ'ল প্রসেসরের "বিট প্রস্থ", যা সাধারণত মেশিনের সাধারণ-উদ্দেশ্য নিবন্ধগুলির আকার হয় এটি অবশ্যই র্যামের ঠিকানাগুলির প্রস্থের সমান হয়।

X86 এ পেজিং সক্ষম থাকা সহ, তবে PAE ছাড়াই প্রোগ্রাম এবং ওএস কোড ব্যবহার করা ঠিকানাগুলিকে ইন্টেলের দ্বারা "লিনিয়ার ঠিকানা" বলা হয় - আমরা সাধারণত তাদের "ভার্চুয়াল ঠিকানা" বলি। এগুলি 32 বিট বিস্তৃত। এটি একটি 4 GiB ভার্চুয়াল ঠিকানা স্থান অনুমতি দেয়।

তবে এটি কম-বেশি কাকতালীয়, কেবলমাত্র পৃষ্ঠার টেবিল এন্ট্রিগুলির ফর্ম্যাটটির একটি নিদর্শন যা কোনও শারীরিক (র‌্যাম) ঠিকানাটির আকারও 32 বিট।

পিএই এর সাথে পরবর্তীটি 36 বিট হয় (প্রথমে ... পরে বাস্তবায়নের ক্ষেত্রে আরও বিস্তৃত)। সুতরাং, এটি কেবলমাত্র উদাহরণস্বরূপ, "32 বিট মেশিন" এর অর্থ এই নয় যে শারীরিক মেমরির ঠিকানাগুলি 32 বিটের মধ্যে সীমাবদ্ধ।

শিল্পটির এমন মেশিনগুলির দীর্ঘ ইতিহাস রয়েছে যার "বিট প্রস্থ" তাদের সর্বোচ্চ শারীরিক ঠিকানার আকারের সাথে মেলে না। উদাহরণস্বরূপ, ভ্যাক্স আর্কিটেকচারটি 32-বিট মেশিনকে সংজ্ঞায়িত করে এবং ভার্চুয়াল ঠিকানাগুলি (যা একবার ঠিকানা অনুবাদ করার পরে কোড দ্বারা ব্যবহৃত ঠিকানাগুলি হয়) 32 বিট প্রশস্ত হয় ... তবে ভ্যাক্সের শারীরিক ঠিকানাগুলি কেবল 30 বিট প্রস্থ - এবং শারীরিক ঠিকানার অর্ধেক স্থান I / O ডিভাইস নিবন্ধগুলিতে নিবেদিত, তাই সর্বোচ্চ র‌্যাম ছিল মাত্র 512 মাইবি।

এমনকি ঠিকানা অনুবাদ হার্ডওয়্যার ছাড়াও, মেশিনের "বিট প্রস্থ" সর্বাধিক র‌্যাম ঠিকানাটি সংজ্ঞায়িত করে এমনটি হয় না। উদাহরণ: সিডিসির "উপরের 3000" সিরিজটি ছিল 36-বিট মেশিন। আপনি কি মনে করেন যে তারা G৪ জিবি র‌্যামকে সম্বোধন করতে পারে? কষ্টই নয়! সেই মেশিনগুলি 60-এর দশকের মাঝামাঝি সময়ে এসেছিল! হেক, আমাদের কাছে তখনকার দিনে 64৪ জিবি ডিস্কের জায়গাও ছিল না। (সিডিসি 6000 সিরিজটি 60-বিট মেশিন ছিল I আমার কি দরকার?)


এবং এমন সিস্টেমগুলি সম্পর্কে ভুলে যাবেন না যা র‌্যাম-সেল প্রতি 8-বিট ব্যবহার করে না। (ইজি: 16/16 = 128 কে সর্বোচ্চ, 32/32 = 16 জি সর্বোচ্চ, 32/64 = 32 জি সর্বাধিক)
স্কাইচার্জার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.