32-বিট প্রসেসর এবং 1 জিবি র‌্যামের সাহায্যে আমরা কত মেমরি ঠিকানা পেতে পারি?


12

আমরা 32-বিট প্রসেসর এবং 1 জিবি র‌্যামের সাথে কতগুলি মেমরি ঠিকানা পেতে পারি এবং 64-বিট প্রসেসরের সাহায্যে কতটি মেমরি ঠিকানা পেতে পারি?

আমি মনে করি এটি এরকম কিছু:

1 জিবি র‌্যাম 32 বিট বিভক্ত বা 4 দ্বারা বিভক্ত? মেমরি ঠিকানা সংখ্যা পেতে?

কিন্তু আমি নিশ্চিত না. এজন্যই আমি জিজ্ঞাসা করছি।

আমি উইকিপিডিয়ায় লাল করেছি যে 1 মেমরি অ্যাড্রেসগুলি 32 বিট প্রশস্ত বা 4 অক্টেট (1 অক্টেট = 8 বিট), একটি প্রসেসরের 64 বিটের তুলনায় যেখানে 1 মেমরি ঠিকানা বা 1 পূর্ণসংখ্যার 64 বিবিট বা 8 অক্টেট রয়েছে। তবে আমি জানি না আমি এটি সঠিকভাবে বুঝতে পেরেছি কিনা।


কার্যত সমস্ত আধুনিক সিস্টেম বাইট-সম্বোধন করা হয়, যার অর্থ 32 টি বিট প্রায় 4 গিগাবাইট ব্যবহার করতে পারে (যদি এটি খুব বেশি র্যাম ইনস্টল থাকে)। Orতিহাসিকভাবে, এখানে শব্দ-সম্বোধিত স্কিম রয়েছে, যার মধ্যে একটি "শব্দ" রয়েছে 12, 15, 16, 17, 24, 32, 36, বা 48 বিট, এবং সম্ভবত কিছু অন্যান্য, ডেসিমাল মেশিন যা 4 বা 6-বিট সম্বোধন করেছে ইউনিট। তবে এও মনে রাখবেন যে বেশিরভাগ আধুনিক সিস্টেমে ভার্চুয়াল মেমরি নিযুক্ত করে, যার অর্থ প্রসেসর ইনস্টল হওয়া চেয়ে আরও বেশি মেমরি সম্বোধন করতে পারে।
ড্যানিয়েল আর হিক্স

@ ড্যানিয়েলআরহিক্স ভার্চুয়াল মেমরিটি কতটা র্যাম সম্বোধন করতে পারে তা প্রভাবিত করে না।
জেমি হানরাহান

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

@ ড্যানিয়েলআহিক্স শিওর, তবে এটি কতটা র‌্যাম সম্বোধন করতে পারে তা প্রভাবিত করে না । র‌্যাম শারীরিক স্মৃতি, ভার্চুয়াল নয়। ভার্চুয়াল ঠিকানাগুলি র‍্যাম ঠিকানা নয় এবং ভার্চুয়াল মেমরিটি র‌্যাম নয়।
জেমি হানরাহান

@ জামিহানরাহান - আপনি কোনও অর্থ বোধ করছেন না। আপনি যদি ভার্চুয়াল ঠিকানা জায়গাতে র্যামের পৃষ্ঠাগুলি সম্বোধন করতে না পারেন তবে র্যামটি অকেজো। (1972 সাল থেকে ভার্চুয়াল মেমোরি ডিজাইনে কাজ করে ভার্চুয়াল মেমরি কীভাবে কাজ করে তা আমি খুব ভাল জানি))
ড্যানিয়েল আর হিকস

উত্তর:


38

সংক্ষিপ্ত উত্তর: উপলভ্য ঠিকানাগুলির সংখ্যাগুলি এর চেয়ে ছোটগুলির সমান:

  • বাইটে মেমরির আকার
  • গ্রেটেস্ট স্বাক্ষরযুক্ত পূর্ণসংখ্যা যা সিপিইউর মেশিন শব্দে সংরক্ষণ করা যায়

দীর্ঘ উত্তর এবং উপরের ব্যাখ্যা:

মেমোরিতে বাইট (বি) থাকে। প্রতিটি বাইটে 8 টি বিট (বি) থাকে।

1 B = 8 b

1 জিবি র‌্যাম আসলে 1 জিবিবি (গিগাবাইট, গিগাবাইট নয়)। পার্থক্য হল:

1 GB  = 10^9 B = 1 000 000 000 B
1 GiB = 2^30 B = 1 073 741 824 B

মেমরির প্রতিটি বাইটের নিজস্ব ঠিকানা থাকে, সিপিইউ মেশিনের শব্দটি যত বড় হোক না কেন। যেমন। ইন্টেল 8086 সিপিইউ 16-বিট ছিল এবং এটি বাইট দ্বারা মেমরিটিকে সম্বোধন করছে, তাই আধুনিক 32-বিট এবং 64-বিট সিপিইউ করুন। এটি প্রথম সীমাবদ্ধতার কারণ - আপনার মেমরি বাইটের চেয়ে বেশি ঠিকানা থাকতে পারে না।

মেমোরি ঠিকানাটি সিপিইউর সন্ধান করা একটিকে পেতে মেমরির শুরু থেকে এড়াতে কেবলমাত্র কয়েকটি বাইট।

  • প্রথম বাইটটি অ্যাক্সেস করতে এটি 0 বাইট ছেড়ে যেতে হয়, তাই প্রথম বাইটের ঠিকানা 0 হয়।
  • দ্বিতীয় বাইট অ্যাক্সেস করতে এটিকে 1 বাইট এড়িয়ে যেতে হবে, সুতরাং এর ঠিকানাটি 1।
  • (এবং আরও ...)
  • শেষ বাইটটি অ্যাক্সেস করতে, সিপিইউ 1073741823 বাইট বাদ দেয়, তাই এর ঠিকানাটি 1073741823।

এখন আপনাকে 32-বিটের প্রকৃত অর্থ কী তা জানতে হবে। যেমনটি আমি আগেই উল্লেখ করেছি যে এটি কোনও মেশিন শব্দের আকার।

মেশিন শব্দ হ'ল সংখ্যার (র‌্যাম, ক্যাশে বা অভ্যন্তরীণ রেজিস্টারে) ধারণ করতে মেমরির পরিমাণ CP 32-বিট সিপিইউ সংখ্যা ধরে রাখতে 32 বিট (4 বাইট) ব্যবহার করে। মেমরি ঠিকানাগুলিও সংখ্যা, সুতরাং একটি 32-বিট সিপিইউতে মেমরি ঠিকানাটি 32 বিট নিয়ে থাকে।

এখন এটি সম্পর্কে চিন্তা করুন: আপনার যদি একটি বিট থাকে তবে আপনি এটিতে দুটি মান সংরক্ষণ করতে পারেন: 0 বা 1. আরও একটি বিট যুক্ত করুন এবং আপনার চারটি মান রয়েছে: 0, 1, 2, 3. তিনটি বিটের উপর আপনি আটটি মান সংরক্ষণ করতে পারবেন : 0, 1, 2 ... 6, 7. এটি আসলে একটি বাইনারি সিস্টেম এবং এটি এর মতো কাজ করে:

Decimal Binary
0       0000
1       0001
2       0010
3       0011
4       0100
5       0101
6       0110
7       0111
8       1000
9       1001
10      1010
11      1011
12      1100
13      1101
14      1110
15      1111

এটি যথাযথ সংযোজনের মতো ঠিক কাজ করে তবে সর্বোচ্চ সংখ্যা 1, নয় 9 দশমিক 0 হয় 0000, তারপরে আপনি 1 যুক্ত করুন এবং পাবেন 0001, আবার একবার যুক্ত করুন এবং আপনার কাছে রয়েছে 0010। দশমিক থাকার 09এবং একটি যুক্ত করার সাথে এখানে হ্যাশেন্ডটি হ'ল : আপনি 9 থেকে 0 পরিবর্তন করেন এবং পরবর্তী অঙ্ক বৃদ্ধি করেন।

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

   11111111    = 255
+         1
-----------
  100000000    = 0   (9 bits here, so 1 is trimmed)
  • 1 বিটের জন্য সর্বাধিক মান 1,
  • 2 বিট - 3,
  • 3 বিট - 7,
  • 4 বিট - 15

সর্বাধিক সম্ভাব্য সংখ্যাটি সর্বদা 2 ^ N-1 হয়, যেখানে বিটের সংখ্যা N হয়। আমি আগেই বলেছি, একটি মেমরি ঠিকানা একটি সংখ্যা এবং এর সর্বাধিক মানও থাকে। এ কারণেই মেশিন শব্দের আকারও উপলব্ধ মেমরি ঠিকানার সংখ্যার সীমাবদ্ধ - কখনও কখনও আপনার সিপিইউ কেবল আরও মেমরির ঠিকানা জানাতে যথেষ্ট সংখ্যক প্রক্রিয়া করতে পারে না।

সুতরাং 32 বিটগুলিতে আপনি 0 থেকে 2 ^ 32-1 পর্যন্ত সংখ্যা রাখতে পারেন এবং এটি 4 294 967 295 1 এটি 1 জিবি র‌্যামের সর্বাধিক ঠিকানার চেয়ে বেশি, সুতরাং আপনার নির্দিষ্ট ক্ষেত্রে র‌্যামের পরিমাণ সীমিত হওয়ার কারণ হবে।

32-বিট সিপিইউর র‌্যাম সীমা তাত্ত্বিকভাবে 4 জিবি (2 ^ 32) এবং )৪-বিট সিপিইউ এর জন্য এটি 16 ইবি (এক্সাবাইটস, 1 ইবি = 2 ^ 30 জিবি)। অন্য কথায়, Internet৪-বিট সিপিইউ পুরো ইন্টারনেট ... 200 বার;) ( ওল্ফ্রামআল্ফা দ্বারা অনুমান করা ) সম্বোধন করতে পারে

তবে, রিয়েল-লাইফ অপারেটিং সিস্টেমে 32-বিট সিপিইউ প্রায় 3 জিবি র‌্যামের ঠিকানা দিতে পারে। এটি অপারেটিং সিস্টেমের অভ্যন্তরীণ আর্কিটেকচারের কারণে - কিছু ঠিকানা অন্যান্য উদ্দেশ্যে সংরক্ষণ করা হয়। আপনি উইকিপিডিয়ায় এই তথাকথিত 3 জিবি বাধা সম্পর্কে আরও পড়তে পারেন । আপনি শারীরিক ঠিকানা এক্সটেনশন দিয়ে এই সীমাটি তুলতে পারেন


মেমরি অ্যাড্রেসিং সম্পর্কে কথা বলার মতো, কয়েকটি জিনিস আমার উল্লেখ করা উচিত: ভার্চুয়াল মেমরি , বিভাগকরণ এবং পেজিং

ভার্চুয়াল মেমরি

@ ড্যানিয়েল আর হিক্স অন্য উত্তরে যেমন উল্লেখ করেছেন, ওএস ভার্চুয়াল মেমরি ব্যবহার করে। এর অর্থ হ'ল অ্যাপ্লিকেশনগুলি প্রকৃত মেমরি ঠিকানার উপর চালিত হয় না, তবে ওএস সরবরাহ করে।

এই কৌশলটি অপারেটিং সিস্টেমটিকে র‌্যাম থেকে কিছু তথাকথিত পেজফাইলে (উইন্ডোজ) বা অদলবদল (* এনআইএক্স) স্থানান্তর করতে দেয়। এইচডিডি হ'ল র‌্যামের তুলনায় কিছুটা ধীরে ধীরে ধীরে ধীরে অ্যাক্সেস করা ডেটার জন্য এটি কোনও গুরুতর সমস্যা নয় এবং এটি ওএসকে অ্যাপ্লিকেশনগুলিকে আপনার ইনস্টল করার চেয়ে বেশি র‌্যাম সরবরাহ করতে দেয়।

পেজিং

আমরা এখন পর্যন্ত যা বলছিলাম তাকে ফ্ল্যাট অ্যাড্রেসিং স্কিম বলা হয়।

পেজিং হ'ল একটি বিকল্প সম্বোধন পরিকল্পনা যা আপনি সাধারণত ফ্ল্যাট মডেলটিতে একটি মেশিন শব্দ দিয়ে আরও মেমরির ঠিকানা দিতে পারবেন।

4-অক্ষরের শব্দের দ্বারা পূর্ণ একটি বই কল্পনা করুন। ধরা যাক প্রতিটি পৃষ্ঠায় 1024 নম্বর রয়েছে। একটি নম্বর সম্বোধনের জন্য, আপনাকে দুটি জিনিস জানতে হবে:

  • যে পৃষ্ঠাতে এই শব্দটি মুদ্রিত হয়েছে তার সংখ্যা।
  • সেই পৃষ্ঠায় কোন শব্দটি আপনি সন্ধান করছেন।

এখন ঠিক এইভাবেই আধুনিক x86 সিপিইউ মেমরি পরিচালনা করে। এটি 4 কিবি পৃষ্ঠায় বিভক্ত (প্রতিটি 1024 মেশিন শব্দ) এবং সেই পৃষ্ঠাগুলির সংখ্যা রয়েছে। (আসলে পৃষ্ঠাগুলি 4 এমআইবি বড় বা পিএই সহ 2 মাইবিও হতে পারে )। আপনি যখন মেমোরি সেলটি সম্বোধন করতে চান তখন আপনার সেই পৃষ্ঠাতে পৃষ্ঠা নম্বর এবং ঠিকানা প্রয়োজন। নোট করুন যে প্রতিটি মেমোরি সেল হুবহু এক জোড়া সংখ্যার দ্বারা রেফারেন্স করা হয়, এটি বিভাজনের ক্ষেত্রে হবে না।

সেগমেন্টেশন

ঠিক আছে, এটি পেজিংয়ের সাথে বেশ মিল। এটি কেবলমাত্র একটি উদাহরণ দেওয়ার জন্য, ইন্টেল 8086 এ ব্যবহৃত হয়েছিল। ঠিকানাগুলির গোষ্ঠীগুলিকে এখন পৃষ্ঠাগুলি নয়, মেমরি বিভাগগুলি বলা হয়। পার্থক্যটি হল বিভাগগুলি ওভারল্যাপ করতে পারে এবং তারা প্রচুর পরিমাণে ওভারল্যাপ করে। উদাহরণস্বরূপ, ৮০86 on-তে বেশিরভাগ মেমরি সেল 4096 টি বিভিন্ন বিভাগ থেকে পাওয়া যায়।


একটি উদাহরণ:

ধরা যাক আমাদের 8 বাইট মেমরি আছে, 4 holding বাইট ব্যতীত সমস্ত হোল্ডার জিরো যা 255 এর সমান।

ফ্ল্যাট মেমরি মডেলের উদাহরণ:

 _____
|  0  |
|  0  |
|  0  |
| 255 |
|  0  |
|  0  |
|  0  |
|  0  |
 -----

4-বাইট পৃষ্ঠাগুলি সহ পেজযুক্ত মেমরির চিত্র :

 PAGE0
 _____
|  0  |
|  0  |
|  0  |  PAGE1
| 255 |  _____
 -----  |  0  |
        |  0  |
        |  0  |
        |  0  |
         -----

4-বাইট বিভাগগুলি 1 দ্বারা স্থানান্তরিত সহ বিভাগযুক্ত মেমরির চিত্রণ :

 SEG 0
 _____   SEG 1
|  0  |  _____   SEG 2
|  0  | |  0  |  _____   SEG 3
|  0  | |  0  | |  0  |  _____   SEG 4
| 255 | | 255 | | 255 | | 255 |  _____   SEG 5
 -----  |  0  | |  0  | |  0  | |  0  |  _____   SEG 6
         -----  |  0  | |  0  | |  0  | |  0  |  _____   SEG 7
                 -----  |  0  | |  0  | |  0  | |  0  |  _____
                         -----  |  0  | |  0  | |  0  | |  0  |
                                 -----   -----   -----   -----

আপনি দেখতে পাচ্ছেন, চতুর্থ বাইটকে চারভাবে সম্বোধন করা যেতে পারে: (0 থেকে সম্বোধন)

  • বিভাগ 0, অফসেট 3
  • বিভাগ 1, অফসেট 2
  • বিভাগ 2, অফসেট 1
  • বিভাগ 3, অফসেট 0

এটি সর্বদা একই মেমরি সেল হয়।

বাস্তব জীবনে বাস্তবায়নের অংশগুলিকে 1 বাইটের বেশি স্থানান্তরিত করা হয় (8086 এর জন্য এটি 16 বাইট ছিল)।

বিভাগকরণ সম্পর্কে যা খারাপ তা হ'ল এটি জটিল (তবে আমি মনে করি আপনি ইতিমধ্যে এটি জানেন;) কী ভাল, আপনি মডিউলার প্রোগ্রামগুলি তৈরি করতে কিছু চালাক কৌশল ব্যবহার করতে পারেন।

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


1
কোনও ওএস ব্যবহারকারী প্রসেসকে সম্পূর্ণ 4GiB ভার্চুয়াল অ্যাড্রেস স্পেস দিতে পারে (সম্ভবত বিয়োগের জন্য একটি পৃষ্ঠা - x86 এর জন্য 4KiB), তবে এটি ঠিকানা কলকে আরও ব্যয়বহুল করে তোলে কারণ ঠিকানা স্থান পরিবর্তন করা উচিত must PAE এবং অনুরূপ প্রক্রিয়াগুলির সাথে, সিস্টেমের দ্বারা সম্বোধনযোগ্য শারীরিক মেমরির পরিমাণ বাড়ানো যেতে পারে যদিও ঠিকানাগুলি এখনও 32 বিটের মধ্যে সীমাবদ্ধ।
পল এ। ক্লেটন

এটি আমি যা অনুসন্ধান করছিলাম তা নয়, তবে এটি যাইহোক ভাল তথ্য! সর্বোচ্চের ভাল ব্যাখ্যা করার জন্য আপনাকে ধন্যবাদ। বাইনারি এবং দশমিক সারণির তুলনা করার জন্য ডিজিটের জিনিস (বাইনারি 9-তে সর্বাধিক 1 = সর্বোচ্চ))। সত্যিই এই সম্পর্কে চিন্তা করার একটি ভাল উপায়। আমি নতুন কিছু শিখেছি। :) ধন্যবাদ!
জোহান স্মুহান

এই গিবি এবং গিগা এত বিভ্রান্তিকর ... কারণ কিছু সাইটে আমি পড়েছি যে গিবিতে স্মৃতি মাপা হয় এবং অন্যরা এটি গিগায় ... আপনার কাছে কি কোনও ভাল / নির্ভরযোগ্য উত্স আছে?
জোহান স্মুহান

উইকিপিডিয়ায় কিছু historicতিহাসিক পটভূমি সহ বাইনারি উপসর্গ সম্পর্কিত একটি নিবন্ধ রয়েছে। বেশিরভাগ হার্ডওয়্যার-সম্পর্কিত সংখ্যা দশমিক উপসর্গ ব্যবহার করে, সর্বাধিক উল্লেখযোগ্য ব্যতিক্রমগুলি সম্ভবত র‍্যাম এবং সম্ভবত রঙ স্কেল - যেমন। 16 এম রঙের এলসিডিগুলিতে তিনটি 8-বিট রঙ চ্যানেল রয়েছে (2 ^ 24)। আপনার প্রশ্নের সরাসরি উত্তর: এই ক্ষেত্রে উপলভ্য ঠিকানাগুলির সংখ্যা মেমরি বাইটের সংখ্যার সমান, কারণ প্রতি বাইট ভিত্তিতে র‌্যামটি সম্বোধন করা হয়। 32-বিট সিপিইউ 2 ^ 32 বি, 64-বিট এক - 2 ^ 64 পর্যন্ত পরিচালনা করতে পারে।
গ্রোনস্টাজ

ধন্যবাদ! আমার স্কুল পরীক্ষার জন্য এটি দরকার। :) আমি মনে করি যে আমি এখন বেশিরভাগ জিনিসগুলি বুঝতে পারি। এখনও কেবল আমাকে বিরক্ত করার কারণ হ'ল কেন 2 ^ 32 বি, এটি যদি 32 বিট প্রসেসর এবং 32 বাইট নয়?
জোহান স্মুহান

3

উপরের পাশাপাশি, নোট করুন যে ভার্চুয়াল ঠিকানা ঠিকানা ব্যবহার করা হয়েছে, একাধিক ঠিকানার স্থান সহ । সুতরাং, আপনার কাছে কেবল 1 জিবি র‌্যাম থাকলেও কোনও প্রোগ্রাম ধারণামূলকভাবে 4 জিবি অবধি ভার্চুয়াল মেমরিটি ব্যবহার করতে পারে (যদিও বেশিরভাগ অপারেটিং সিস্টেম এটিকে এর চেয়ে কম সীমাবদ্ধ করবে)। এবং আপনার ধারণাগতভাবে এই জাতীয় 4GB ঠিকানা জায়গাগুলির একটি (প্রায়) অসীম সংখ্যা থাকতে পারে।

র‌্যামের আকার কোনও প্রোগ্রামের সর্বাধিক আকার বা আপনি চালাতে পারেন এমন কতগুলি প্রোগ্রামকে সীমাবদ্ধ করে না (বরং) পারফরম্যান্সকে সীমাবদ্ধ করে। সত্যিকারের স্মৃতি যখন "অতিরিক্ত প্রতিশ্রুতিবদ্ধ" হয়ে যায় এবং র‌্যাম এবং ডিস্কের মধ্যে মেমরির পিছনে পিছনে মেমরির "অদলবদল" "পৃষ্ঠাগুলি" হওয়ায় সিস্টেমটি "ছিটানো" শুরু করে, কর্মক্ষমতা ডুবে যায়।


2

1GByte র‌্যাম 1024 * 1024 * 1024 বাইট বা 1,073,741,824 বাইট দখল করবে।

একটি 32-বিট প্রসেসরের সর্বদা 4 * 1024 * 1024 * 1024 বাইট বা 4,294,967,296 বাইট অ্যাড্রেস স্পেস থাকে এই স্পেসের মধ্যে 1Gbyte র্যাম উপস্থিত হয়। ইন্টেল প্রসেসরগুলিতে, বিঘ্নিত ভেক্টরগুলির জন্য কিছু র‌্যামের ঠিকানা 0 এ উপস্থিত হওয়া দরকার, সুতরাং শারীরিক র‌্যাম 0 নম্বর থেকে শুরু হয় এবং উপরে যায়।

অন্যান্য জিনিসগুলি ঠিকানা ঠিকানাটিতে উপস্থিত হয়, যেমন BIOS এবং বিকল্প ROMs (প্রথম 1Mbyte এর মধ্যে উপরের 384Kbytes), I / O ডিভাইস (APIC এর মতো) এবং ভিডিও র‍্যাম। কিছু অদ্ভুত বিষয়গুলি সিস্টেম ম্যানেজমেন্ট মোড "এসএমআরএএম" এর সাথেও চলে যা আমি এখনও সম্পূর্ণ বুঝতে পারি না।

মনে রাখবেন এটি কার্নেলের দৃষ্টিকোণ থেকে শারীরিক ঠিকানার স্থান। এমএমইউ কোনও কোনও উপায়ে ইউজারস্পেস প্রক্রিয়াতে এগুলি পুনর্বিন্যস্ত করতে পারে।


আমি উইকিপিডিয়ায় লাল করেছি যে 1 মেমরি অ্যাড্রেসগুলি 32 বিট প্রশস্ত বা 4 অক্টেট (1 অক্টেট = 8 বিট), একটি প্রসেসরের 64 বিটের তুলনায় যেখানে 1 মেমরি ঠিকানা বা 1 পূর্ণসংখ্যার 64 বিবিট বা 8 অক্টেট রয়েছে। আপনি 4 * 1024 * 1024 * 1024 বাইট অ্যাড্রেস স্পেসটি সম্পর্কে সঠিক, তবে আমি মেমরি ঠিকানার স্থানটি অনুসন্ধান করছিলাম, যা আমি মনে করি 1 জিবি / 32 বিট, তবে আমি এখনও সঠিক বা না তা আমি জানি না। :) আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ!
জোহান স্মুহান

NP। ইন্টেল সিপিইউর দুটি ঠিকানা স্পেস রয়েছে: "মেমরি" এবং "আই / ও"। র‌্যাম ব্যতীত অন্যান্য জিনিসগুলি "মেমোরি" স্পেসে উপস্থিত হয়। আই / ও ডিভাইস বা রম এর মতো অন্যান্য জিনিসগুলি র‌্যামের মাধ্যমে অনাবৃত দাগগুলিতে থাকতে পারে। সাধারণত কেবলমাত্র I / O ডিভাইসগুলি I / O ঠিকানার জায়গায় উপস্থিত হয়।
LawrenceC

@ জোহাঁসমোহন আপনার সংখ্যা বা লরেন্সের উত্তর সঠিক নয়। প্রসেসরের "বিট প্রস্থ" এবং এটি ব্যবহার করতে সক্ষম র্যামের ঠিকানাগুলির প্রস্থের মধ্যে কোনও স্থির সম্পর্ক নেই। 32-বিট-কেবলমাত্র x86 প্রসেসর 64 জিবি র‌্যামের ঠিকানা দিতে পারে address x64 প্রসেসরগুলি 40-বিট শারীরিক ঠিকানার জায়গায় শুরু হয়েছিল এবং এখন 52 বিটে রয়েছে। ভার্চুয়াল ঠিকানার জায়গার ক্ষেত্রেও এটি আলাদা হতে পারে। X64-তে, যদিও ভার্চুয়াল অ্যাড্রেসগুলি সঞ্চয় করতে 64 বিট নেয়, কেবলমাত্র 48 টি বিট প্রয়োগ করা হয়, আপনি 16 বিআইবি থেকে 16 ইআইবি-র পরিবর্তে 256 টিবি-র একটি ভ্যাসের জন্য ব্যবহার করতে পারেন।
জেমি হানরাহান

0

একটি 32 বিট প্রসেসর সর্বাধিক 2 ^ 32 স্বতন্ত্র বাইটস মেমোরি (প্রায় 4 গিগাবাইট) সাথে সম্বোধন করতে পারে, তবে 1 গিগাবাইট মেমরির ফলে 1 * 1024 * 1024 * 1024 ঠিকঠাক বাইটসফেস মেমরি হয়ে যায় (যদিও আপনার সম্ভবত সম্ভবত একটি 2 ^ 32 ভার্চুয়াল অ্যাড্রেস স্পেস থাকবে )। একটি 64 বিট সিপিইউ 2 ^ 64 স্বতন্ত্র বাইটগুলি সম্বোধন করতে পারে, তবে আমি মনে করি বেশিরভাগ সিস্টেমগুলি কেবল উপরের গণ্ডি তৈরির জন্য মেমরি ঠিকানার জন্য 48 বিট ব্যবহার করে। ঠিকানা বাইট 2 ^ 48।


আপনি 1024 * 1024 * 1024 বলতে চাইছেন এবং 1 * 1024 * 1024 না?
জোহান স্মুহান

একটি 32 বিট প্রসেসর সর্বাধিক 2 ^ 32 অক্টেট বা বিটগুলিতে সম্বোধন করতে পারে? শুধু যাচাই করা হচ্ছে, কারণ আমার অবশ্যই এটি অবশ্যই জানা উচিত।
জোহান স্মুহান

@ জোহান স্মুথন সঠিক, এটি 1 * 1024 * 1024 * 1024 হওয়া উচিত
এসিআইডি

@ জোহান স্মুথান একটি 32 বিট প্রসেসর সর্বাধিক 2 ^ 32 বাইটে সম্বোধন করতে পারে, একটি বাইট 8 বিট (বিটগুলির এক
অক্ট টিট

0

গৃহীত উত্তরটি একটি ভাল ব্যাখ্যা দেয়। তবে আমি মনে করি না যে এটির উত্তর। এটিতে অ্যাড্রেস বাস সম্পর্কিত কিছু নেই । এবং এর আকার আসলে মেমরির সীমাবদ্ধতার মূল কারণ। উদাহরণস্বরূপ 8080 হ'ল 8-বিট প্রসেসর (এর ডেটা বাসের আকার 8 বিট) তবে এটিতে 16-বিট অ্যাড্রেস বাস রয়েছে। এটি 2 ^ 16 = (2 ^ 6) * (2 ^ 10) = 64 * 1024 বাইট = 64 কেবি ঠিকানা দিতে পারে।

"প্রযুক্তিগত ইতিহাস" বিভাগে আপনি এখানে আরও (32-বিট) খুঁজে পেতে পারেন ।


আমি রাজী. নোট করুন যে 16 বিট পিডিপি -11 এর পরবর্তী মডেলগুলির 22-বিট অ্যাড্রেস বাস ছিল (এবং এটি 4 এমবি র‌্যামের ঠিকানাও দিতে পারে), এইচপি 1000 এমএক্স, "16-বিট", অবশেষে 16 এমবি র‌্যামে পৌঁছেছিল (24) -বিট ঠিকানা); ভ্যাক্সটি একটি 32-বিট সিপিইউ ছিল তবে এতে 30-বিট শারীরিক ঠিকানার স্থান ছিল, তবে অর্ধেকটি I / O স্পেসের জন্য 512 এমবি র‌্যামের সীমাতে সংরক্ষিত ছিল; "16-বিট" 8086, 1 এমবি; "16-বিট" 80286, 16 এমবি; ইত্যাদি। এবং যখন পেন্টিয়াম প্র-এর সাথে PAE প্রবর্তিত হয়েছিল, 32-বিট x86 64৪ গিগাবাইট র‍্যাম (24-বিট শারীরিক ঠিকানার স্থান, যদিও কম-অর্ডার তিনটি বিট আসলে এটিকে সিপিইউ থেকে বের করে দেয় না) সম্বোধন করতে পারে।
জেমি হানরাহান

-2

আমি বিশ্বাস করি যে এই কথোপকথনে সর্বাধিক প্রাথমিক তথ্যটি হারিয়ে গেছে, তাই এখানে আমার উত্তর:

"এটি এএ 32 বিট প্রসেসর" বলার অর্থ হ'ল নির্দেশের আকার বা কমান্ডের আকার, যে সিপিইউ বুঝতে পারে এবং সাথে কাজ করতে পারে একবারে 32 বিট। একইভাবে bit৪ বিট প্রসেসরের সাথে: তারা সর্বাধিক 64৪ বিটের নির্দেশনা পরিচালনা করতে পারে।

পুরানো যান্ত্রিক ক্যালকুলেটরের মতো এটি ভাবুন: আপনার কেবলমাত্র এতগুলি সংখ্যা রয়েছে, তাই আর কোনও সংখ্যাকে ইনপুট করতে পারবেন না।

এখন, সিপিইউ যে কোনও ঠিকানা ব্যবহার করতে পারে তার ঠিক একই জায়গাতেও ফিট করতে হবে, সুতরাং 32 বিট প্রসেসরের জন্য, এটি যে ঠিকানাটি ব্যবহার করে তা কেবলমাত্র 32 বিট হতে পারে be সুতরাং, এখান থেকে আমরা কেবলমাত্র সর্বাধিক সংখ্যক ঠিকানা গণনা করতে পারি (সিপিইউ দ্বারা ব্যবহারযোগ্য রামের সর্বাধিক পরিমাণ):

2 ^ 32 = 4294967296 (= 4 জিবি)

অথবা

2 ^ 64 = 18446744073709551616 (আরও উপায়;)

বা, একটি মজাদার উদাহরণ হিসাবে, আমার পুরানো কমোডোর 64 এর একটি 16 বিট সিপিইউ ছিল, সুতরাং এটি একটি স্মৃতি পরিচালনা করতে সক্ষম ছিল:

2 ^ 16 = 65536 বাইট (= 64 কেবি)

এটি মৌলিক যুক্তি, তবে যেমন আগেই বলা হয়েছে, এই সীমাবদ্ধতার চারপাশে উপায় রয়েছে যেমন ভার্চুয়াল ঠিকানার জায়গাগুলি, মেমরি ম্যাপিং ইত্যাদি


2
32 এবং 64 বিট প্রসেসরের মধ্যে উল্লেখযোগ্য পার্থক্য হ'ল অ্যাড্রেস রেঞ্জ (যা "আসল" এর চেয়ে ভার্চুয়াল অ্যাড্রেস স্পেসকে প্রভাবিত করে)। প্রসেসরগুলি এতগুলি কৌশল ব্যবহার করে যে অনেক ক্ষেত্রে প্রকৃত ডেটা পাথের প্রস্থ কী তা বলা শক্ত। এবং নির্দেশের দৈর্ঘ্য মূলত প্রসেসরের "প্রস্থ" এর সাথে সম্পর্কিত নয়।
ড্যানিয়েল আর হিক্স

ব্যাখ্যাটি পুরোপুরি সঠিক। ধরে নিচ্ছি যে "প্রসেসরের প্রস্থ" বলার সময় আপনি সেন্টিমিটারে প্রকৃত চিপ মাত্রাটি বোঝাচ্ছেন না, এমন ক্ষেত্রে আপনি এর সম্পর্কহীন বলে সঠিক বলে মনে করছেন, আপনি শারীরিক মেমরি সম্বোধনের সাথে মেমরি ম্যাপিং কৌশল / ভার্চুয়াল ঠিকানা স্পেস ভুল করছেন। তবুও আপনি যা বলছেন তা কার্নেল প্রয়োগের সাথে সম্পর্কিত, আপনি PAE লিনাক্স কার্নেলগুলি পরীক্ষা করতে চাইতে পারেন।
টুনচে Göncüoğlu

2
আধুনিক সিস্টেমে প্রসেসরের "প্রস্থ" এর সাথে কোনও নির্দেশের দৈর্ঘ্যের কোনও সম্পর্ক নেই। সর্বাধিক প্রাসঙ্গিক মানগুলি হ'ল নিবন্ধগুলির প্রস্থ (যদিও এটি প্রতারণামূলক হতে পারে), প্রসেসর এবং মেমরির মধ্যে স্থানান্তর পথের প্রস্থ এবং মেমরি ঠিকানার বিটগুলির আকার। তবে এই 3 টি মান খুব সহজেই একে অপরের থেকে আলাদা হতে পারে।
ড্যানিয়েল আর হিক্স

1
@ ড্যানিয়েলআরহিক্স সিপিইউর "বিট প্রস্থ" এর "নির্দেশের আকার, বা কমান্ড আকার" এর সাথে অগত্যা কিছু করার দরকার নেই। এমন সিপিইউ রয়েছে যা সেভাবে নির্মিত হয়েছিল তবে আজকের পণ্য প্রসেসর (x86 / x64) এর মধ্যে নেই।
জেমি হানরাহান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.