মাইক্রো-কন্ট্রোলারে প্রতিটি ঠিকানা কেন কেবল 8 টি বিট আকারের হয়?


18

আমি দেখেছি যে, 32-বিট মাইক্রোকন্ট্রোলারের মধ্যে মেমরির প্রতিটি ঠিকানা ডেটা 8 টি বিট ধারণ করে; এটি 16 বিট এমসির ক্ষেত্রেও একই। 32-বিট ডেটার জন্য এটি 4 টি ঠিকানার সংমিশ্রণ ব্যবহার করে। কেন কোনও ঠিকানা সরাসরি 32-বিট ডেটা ধরে রাখতে পারে না (এটি 32 বিট বা 8 এর পরিবর্তে 16 টি করে)?


2
এটি মাইক্রোকন্ট্রোলারের ডেটা বাসের উপর নির্ভর করে। কোন 32-বিট মাইক্রোকন্ট্রোলারের বাইট মেমরি রয়েছে? আপনার কোন উদাহরণ আছে?
সোয়ানান্দ

4
কেবল সত্য নয়, এই কারণেই সি এবং সি ++ এর মতো প্রোগ্রামিং ভাষাগুলি বাইটের জন্য 8 বিটের চেয়ে বেশি হওয়ার সম্ভাবনা একত্রিত করে। এটি ঠিক যে সংখ্যাগরিষ্ঠটি 8 বিট বাইটের সাথে সবচেয়ে ভাল কাজ করে তবে 9 বিট বা 18 বিট বাইরে রয়েছে।
প্লাজমাএইচএইচ

6
এটা মিছরি বার মত। তারা একই দামের জন্য তাদের আরও ছোট করে রাখে।
অলিন ল্যাথ্রপ

4
এই প্রশ্নটি কি পুনর্বিবেচনা করা যেতে পারে "কেন সমস্ত ঠিকানা 8 টি বিটের সাথে সংযুক্ত করা হয়"?
ফ্লোরিয়ান ক্যাসটেলেন

2
এই টুইটটি দেখুন ঠিকানাগুলি 8 বিট আকারের নয় (যদি না আপনি <256 বিট মেমরির কোনও ডিভাইস না পান তবে সেগুলি হতে পারে)।
জয়

উত্তর:


11

এটি কার্যকরভাবে ডিজাইনের পছন্দ, এটি কেন হতে হবে তার কোনও শক্ত কারণ নেই। পুরানো দিনগুলিতে, যখন উচ্চ ভলিউম পণ্য প্রসেসরগুলি 8-বিট মানগুলিতে পরিচালিত হয়েছিল, ম্যাপিংটি আরও 1 ধারাবাহিকভাবে 1: 1 ছিল। অবিচ্ছিন্নতার জন্য যেমন ডিজাইনগুলি আধুনিক 32 এবং 64 বিট প্রসেসরের কাছে বিকশিত হয়েছে, বাইট-অ্যাড্রেসিংয়ের পুরানো ম্যাপিংটি ডেটা বাসগুলি বাড়িয়ে তোলা (পরিবর্তিত প্রতিবন্ধী ব্যয় বাণিজ্য বন্ধের সাথে) বুদ্ধিমান করে তোলে। কিছু 32 বিট এমসিইউ এখনও কিছু স্মৃতিতে কেবল 16 বিট ডেটা বাস প্রয়োগ করতে পারে, উচ্চ-প্রসেসরগুলির 256 বিট বা তার বেশি থাকবে এবং একক মেমরি লেনদেনে একাধিক কোর রেজিস্টারগুলি লোড করতে সক্ষম হবে। বিস্তৃত বা স্ট্রিমিং ক্রিয়াকলাপগুলির জন্য প্রশস্ত ইন্টারফেসগুলি ভাল।

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

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

এটি মোটামুটি সাম্প্রতিক যে রেজিস্ট্রে অ্যাড্রেস বিটের সংখ্যা ঠিকানার জায়গার জন্য সীমাবদ্ধ ফ্যাক্টর, তাই 32 বিট শব্দের পরিবর্তে 2 বিটকে বাইটগুলিতে নষ্ট করার বিষয়টি 10-15 বছর আগে খুব একটা উদ্বেগের বিষয় ছিল না (এবং এখন bit৪ বিট পয়েন্টার সহ, এটি 48 বা 56 বিট প্রশস্ত, বাইট ঠিকানাগুলি প্রয়োগ করা সাধারণ)। প্রবর্তনীয় কম্পিউটার বিজ্ঞানের পাঠদানটি স্রেফ পোস্ট-মেইনফ্রেমে যুগে এখনও কিছুটা আটকে আছে এবং সবসময়ই বিবর্তনের দিকগুলিকে খুব স্পষ্টভাবে সম্বোধন করে না। কম পরিমানের উচ্চমূল্যের আর্কিটেকচারগুলি (সবচেয়ে সাধারণ অর্থে) আরও সংস্থানীয় সংস্থাগুলি এবং আরও পণ্য কেন্দ্রীভূত প্রসেসরের ডিজাইনের দ্বারা পরিপূরক হতে শুরু করার সময় প্রচুর পরিভাষা ব্যবহৃত হয়েছিল (এবং সংজ্ঞা) around

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

আমি এই প্রশ্নের historical তিহাসিক দিকগুলি অনুসরণ করতে রেজিস্ট্রার আকার সম্পর্কে রেট্রোকম্পুটিং এসই তে একটি প্রশ্ন জিজ্ঞাসা করেছি ।


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

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

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

আমি মনে করি এটি নিবন্ধের আকারের বিবর্তন সম্পর্কে একটি বৈধ পয়েন্ট (যদিও আমার কাছে ডেটার অভাব রয়েছে)
সান হোলিহানে

25

কয়েকটি ডিএসপি রয়েছে (উদাঃ, টিআই সি 5x) যা 16 বিটের চেয়ে ছোট মানগুলিকে সম্বোধন করতে পারে না এবং কিছু অডিও ডিএসপি 24 বিট ব্যবহার করে। তবে, 8-বিট মানগুলি সমস্ত সাধারণ-উদ্দেশ্য কোডটিতে ব্যবহার করা হয়, সুতরাং সমস্ত সাধারণ-উদ্দেশ্য সিপিইউগুলি এটি সমর্থন করে।

এবং কেবল মেমরির ঠিকানাগুলির জন্য ব্যবহৃত ছোট্ট ইউনিটটি 8-বিট বাইটের অর্থ এই নয় যে এটি সবচেয়ে বড় ইউনিট যা বাস্তবে বাসে ব্যবহৃত হয়; বেশিরভাগ সিপিইউ মেমরির ঠিকানা জানাতে তাদের নেটিভ শব্দের আকার (16/32 বিট) বা এমনকি আরও বড় আকার ব্যবহার করে এবং বাইট অ্যাক্সেসগুলি ব্যবহার করার সময় বড় শব্দ থেকে স্বয়ংক্রিয়ভাবে বাইটটি বের করে দেয়।

উদাহরণস্বরূপ, পিসিআই বাস সর্বদা 32-বিট লেনদেন ব্যবহার করে তবে তা রয়েছে অ্যাক্সেসের জন্য বাইট সক্ষম সংকেত রয়েছে যা অবশ্যই ছোট হতে হবে।


ধন্যবাদ. স্মৃতিতে বাইটের পরিবর্তে এমন কোনও এমসির রয়েছে যা নিচু প্রশস্ত?
অরুণ জো চেরিয়ান

4
হয়তো ইন্টেল 4004?
pjc50

6
@ অরুনচেরিয়ান একটি সিপিইউর উদাহরণ যা নিবলুদের সাথে সবচেয়ে ছোট অ্যাড্রেসযোগ্য শব্দ হিসাবে কাজ করেছে শনি : এইচপি দ্বারা ডিজাইন করা একটি সিপিইউ এবং গত শতাব্দীতে তাদের উচ্চ-শেষ ক্যালকুলেটরগুলিতে ব্যবহৃত হয়েছিল (বিশেষত সুপরিচিত এইচপি 48)। এটির একটি খুব অস্বাভাবিক আর্কিটেকচার ছিল (bit৪ বিট রেজিস্টার, ৪ বিট এএলইউ, ২০ বিট অ্যাড্রেস, ...)।
অস্পষ্ট

আর একটি উদাহরণ: টিআই এর টিএমএস 320 সি 3 এক্স এর ক্ষুদ্রতম ঠিকানাযোগ্য ইউনিট 32-বিট।
kkrambo

1
@ ডেভিডকারি ওহ, ভাল ... তারিখ এবং সময় যাইহোক, কখনও আমার দৃ suit় মামলা হয় নি। আমার স্ত্রীকে তার জন্মদিনের উপহারগুলি, এবং আমার বসকে সময়সীমা সম্পর্কে জিজ্ঞাসা করুন ...
dim

18

একটি 16-বিট বা 32-বিট মাইক্রোকন্ট্রোলার প্রায়শই কেবল 8-বিট প্রশস্ত (একটি বাইট) ডেটা ম্যানিপুলেট করতে হয়। উদাহরণস্বরূপ, পাঠ্য স্ট্রিংগুলি সাধারণত প্রতি বাইটে একক অক্ষর দিয়ে সংরক্ষণ করা হয়। মেমোরি অ্যাড্রেসিং স্কিম যা প্রতিটি পৃথক বাইটকে মাইক্রোকন্ট্রোলার হিসাবে সম্বোধন করতে দেয় তা কার্যকরভাবে 8-বিট প্রশস্ত ডেটা প্রক্রিয়া করতে পারে। এর অর্থ হ'ল 32-বিট ডেটা সাধারণত ঠিকানাগুলিতে থাকে যা 4 বাইটের গুণক, উদাহরণস্বরূপ 04, 08, 0 সি ইত্যাদি থাকে তবে মেমরিটি যদি 32-বিট প্রশস্ত হয় তবে মাইক্রোকন্ট্রোলার একটি পঠন চক্রের 32-বিট পড়তে পারে । মাইক্রোটির প্রায়শই মেশিনের নির্দেশাবলী থাকে যা বিভিন্ন দৈর্ঘ্যের ডেটাতে কাজ করতে পারে, সুতরাং আপনি দেখতে পাবেন যে কোনও মুভ ডেটা নির্দেশিকা (এমওভি) এর 3, ফর্ম, এমওভি.বি, এমওভি.ডাব্লু এবং এমওভি.এল 8, 16 এবং 32 বিট স্থানান্তর করতে পারে এক নির্দেশে তথ্য।


7

মূল উত্তরটি "কারণ এটি কতদিন বাইট হয়"। কোডের একটি বৃহত প্রতিষ্ঠিত বডি যা এই ধারণাটি তৈরি করে, এটি ভেঙে দেওয়া সমস্ত ধরণের সমস্যার কারণ হতে পারে।

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

প্রতি ঠিকানাটিতে একটি 32-বিট শব্দ থাকা মেমরির গতিতে কোনও অসুবিধা দেয় না। একটি 32-বিট সিস্টেমে, নীচের 2 ঠিকানার বিটগুলি প্রায়শই স্মৃতিতে যায় না। প্রসেসর সাধারণত পুরো 32-বিট শব্দটি পড়বে এবং সেই শব্দের মধ্যে 8-বিট বাইটের প্রয়োজনীয় বাটটি নির্বাচন করবে (বা মুখোশ বন্ধ করবে)। এতক্ষণ আপনার ঠিকানার জায়গার পরিমাণ পর্যাপ্ত ডেটা (32-বিট সিস্টেমের সাথে 2 ^ 32 বাইটের মধ্যে সীমাবদ্ধ) সংরক্ষণ করতে পারে তবে কোনও উদ্বেগের দরকার নেই। প্রকৃতপক্ষে, অনেকগুলি 16-বিট / 32-বিট প্রসেসরগুলিতে দেশীয়-শব্দ-দৈর্ঘ্যের মানগুলির চেয়ে বাইট মানগুলির সাথে প্রসেসিং করতে আরও বেশি সময় লাগে - 32-বিট শব্দটি পড়তে এবং সেই শব্দের কিছু অংশ বর্জন করা স্পষ্টভাবে একটি অতিরিক্ত ক্রিয়াকলাপ গ্রহণ করবে, কেবল 32-বিট শব্দটি পড়ার সাথে তুলনা করুন।

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


3
প্রকৃতপক্ষে. এবং তারপরে অতিরিক্ত প্রশ্ন রয়েছে যদি কোনও প্রসেসর হার্ডওয়্যারে স্বয়ংক্রিয়ভাবে স্বাক্ষরবিহীন 32 বিট মানটি লোড বা সঞ্চয় করতে প্রয়োজনীয় দুটি স্বতন্ত্র অ্যাক্সেসগুলি পরিচালনা করতে পারে বা যদি তা অবশ্যই সফ্টওয়্যারটিতে স্পষ্টভাবে পরিচালনা করা উচিত।
ক্রিস

5

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


মনে রাখবেন যে ঠিকানাগুলি এমন এক সীমা ছাড়িয়ে যেতে পারে যদি আপনি ঠিকানাগুলিকে এমন একটি অংশে বিভক্ত করেন যা প্রতিটি নিবন্ধের জন্য উপযুক্ত হবে fit আমার একবার 8-বিট কম্পিউটার ছিল যা 64 টি কেবি মেমরির কাছে পৌঁছেছিল ঠিকানাগুলিকে পৃথক রেজিস্টারে দুটি অংশে বিভক্ত করে এবং 8-বিট প্রসেসরের কম্পিউটারগুলির জন্য বিজ্ঞাপনগুলি দেখেছিল যা ঠিকানাগুলিকে তিন ভাগে বিভক্ত করে 1 এমবি মেমরি পেতে পারে অংশ।
ব্যবহারকারী 6030

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

4

অ্যানালগ ডিভাইসগুলি শার্ক 32 বিট ডিএসপিগুলিতে ঠিকানাযোগ্য মেমরির ক্ষুদ্রতম ইউনিট হিসাবে 32 বিট রয়েছে, সুতরাং আকার (ইনট) == আকারের (সংক্ষিপ্ত) == আকারের (চর) == 1 (হ্যাঁ, তাদের 32 বিট অক্ষর রয়েছে, প্রতি পুরোপুরি বৈধ সি মান)।

এছাড়াও int_8, int_16 এবং এর মতো জিনিসগুলিতে কোনও সংজ্ঞা দেওয়া হয় না, অন্য প্ল্যাটফর্মগুলি থেকে কোড পোর্ট করার সময় একটি বাজে আশ্চর্য।


1

ঠিকানার মতো মেমরি ইউনিটের আকার হ'ল মূলত আপনি কত স্মৃতি সম্বোধন করতে পারেন এর মধ্যে একটি আপস is আপনি কত স্মৃতি নষ্ট করবেন।

ঠিকানা স্মৃতি । একটি 32-বিট সিপিইউ বিবেচনা করুন: আপনি যদি বাইটগুলি সম্বোধন করেন তবে আপনি 4GB মেমরি পর্যন্ত সম্বোধন করতে পারেন। আপনি যদি পৃথক বিটগুলিকে সম্বোধন করেন, তবে সেই পরিমাণ হ্রাস পেয়ে 512MB হয়ে যাবে এবং আপনি যদি 32-বিট শব্দগুলি সম্বোধন করেন তবে আপনার 16 জিবি হবে। (আপনার প্রশ্নটি পরবর্তীকালের পরামর্শ বলে মনে হচ্ছে)।

স্মৃতি নষ্ট । আপনার যদি এমন কোনও ভেরিয়েবল থাকে যা এক্স বিট দিয়ে উপস্থাপিত হতে পারে এবং আপনি কেবল এটির জন্য এন বিটের ইউনিট বরাদ্দ করতে পারেন তবে আপনি এক্স> এন ধরে ধরে গড়ে (এন -1) / 2 বিটগুলি নষ্ট করবেন , আপনি 100% দক্ষতার সাথে মেমরিটি ব্যবহার করবেন (কমপক্ষে দৃষ্টিভঙ্গির দিক থেকে)। বাইটস সহ আপনি ভেরিয়েবলের প্রতি 3.5 বিট নষ্ট করবেন (56% দক্ষতা) এবং 32-বিট শব্দ দিয়ে আপনি 15.5 বিট (52% দক্ষতা) নষ্ট করবেন waste তবে এটি আরও খারাপ হয়: যদি আপনার বেশিরভাগ ভেরিয়েবলগুলি ছোট হয় (মনে করুন অক্ষর, বুলিয়ান, স্থিতির পতাকা), যদি আপনার ঠিকানাযোগ্য ইউনিটগুলি খুব বড় হয় তবে আপনি বেশিরভাগ স্মৃতি নষ্ট করবেন।

উদাহরণস্বরূপ, ধরুন একটি ভেরিয়েবলের গড় আকার 8 বিট।

  • বিট-অ্যাড্রেসযোগ্য কম্পিউটারে আপনি 100% দক্ষতার সাথে বরাদ্দ করতে সক্ষম হবেন যা আপনাকে 512*1024*1024*100%= 0.54 বিলিয়ন ভেরিয়েবল দেয়।
  • বাইট-অ্যাড্রেসযোগ্য কম্পিউটারে, আপনি 56% দক্ষতার সাথে বরাদ্দ করবেন, যা আপনাকে 4096*1024*1024*56%= 2.4 বিলিয়ন ভেরিয়েবল দেবে। বিট-অ্যাড্রেসযোগ্য কম্পিউটারের তুলনায় এটি প্রায় 5 গুণ বেশি! অবশ্যই, আপনার 8 গুণ বেশি মেমরি কিনতে হবে।
  • একটি 32-বিট-সম্বোধনযোগ্য কম্পিউটারে, যেহেতু আপনার ভেরিয়েবলের কমপক্ষে অর্ধেকটি 8 টি বিটের কম দখল করবে, সেগুলি 7% এর নীচে দক্ষতার সাথে বরাদ্দ করা হবে (32 এর মধ্যে 4.5 বিট ব্যবহার করে)। যাই হোক না কেন, আপনি এর চেয়ে বেশি 4.3 বিলিয়ন ভেরিয়েবল পাবেন না (যেহেতু আপনার কাছে কেবল তার অনেকগুলি পৃথক ঠিকানা রয়েছে), এবং বাস্তবে এর চেয়ে কম। জটিল গণনা এড়ানো, আমার ধারণা, বাম-অ্যাড্রেসযোগ্য কম্পিউটারের তুলনায় সম্ভবত 20-30% বেশি দরকারী স্টোরেজ পাওয়া যাবে, যখন র‌্যামের 4 গুণ মূল্য দিতে হবে।

1

সম্ভবত ইতিমধ্যে অন্যান্য জবাব বিভিন্ন উপায়ে বলেছেন। সাধারণভাবে আজ, তবে historতিহাসিকভাবে অগত্যা নয়, একটি বাইট 8 বিট। বেশিরভাগ সময় আমরা "বাইট অ্যাড্রেসিয়েবল মেমোরি" ব্যবহার করি যার অর্থ একটিমাত্র ঠিকানা দিয়ে আমরা অ্যাক্সেস করতে পারি সবচেয়ে ছোট জিনিস বাইট। তবে এর অর্থ এই নয় যে আমরা কেবলমাত্র সম্বোধন করতে পারি। প্ল্যাটফর্মের উপর নির্ভর করে একটি একক ঠিকানা বাইট, একটি অর্ধশব্দ / শব্দ (16 বিট), একটি শব্দ / ডাবলওয়ার্ড (32 বিট) এবং তাই যাই হোক না কেন 64 বিট অ্যাক্সেস করতে ব্যবহার করা যেতে পারে। নির্দেশটি মূলত নির্ধারণ করে যে পছন্দসই অ্যাক্সেসের আকারটি কী (8,16,32,64, ইত্যাদি) সাধারণত সেই ইউনিটগুলিতে 8, 16, 32, 64 হয় But তবে এটি শক্ত এবং দ্রুত নয়, "এটি নির্ভর করে"।

প্রসেসরের নকশা এবং / অথবা সিস্টেমের উপর নির্ভর করে অ্যাক্সেসের আকার মেমরির আকার বা ক্ষুদ্রতম অ্যাক্সেসের আকার এটি ধরে নেওয়ার কোনও কারণ নেই। বৃহত্তর এবং বৃহত্তর প্রয়োজনীয়তার সাথে এটি ক্ষুদ্রতর আকারের ব্যবহার করে মেমরি সিস্টেমটি বাস্তবায়নের জন্য সময়ের সাথে সাথে আরও কম বোঝাপড়া করে তোলে, আপনি যে কম্পিউটারটি সম্ভবত এটি পড়ছেন তাতে সমস্ত অ্যাক্সেসের জন্য 32 বিট প্রশস্ত ডেটা বাস বা 64 বিট প্রশস্ত ডেটা বাস ব্যবহার করা হয়, আপনি একটি বাইট পড়তে চান, এটি একটি bit৪ বিট পড়ে এবং বাকি বিটগুলি টস করে, কেন এটি অতিরিক্ত কিছু ব্যয় করে না বাসটি প্রসেসরের কোরের কাছে পুরো পথ ধরে রাখে এবং প্রসেসরের ডান বাইট লেনটি নির্বাচন করে। বাসকে আরও সংকীর্ণ করতে বা বাইট লেনের চারপাশে বাইটগুলি সরিয়ে নিতে আরও যুক্তিযুক্ত এবং বা ঘড়ি ব্যয় করে (কখনও কখনও এটি করা হয়)। সুতরাং একটি মাইক্রোকন্ট্রোলারের অভ্যন্তরীণ র‌্যামগুলি 32 বিট প্রশস্ত হতে পারে উদাহরণস্বরূপ যদি এটি যদি সিস্টেমটির পক্ষে বোঝায়। হতে পারে 16. হ্যাঁ লেখার জন্য আপনি আরও চক্র পোড়ান, আপনাকে লাইন বরাবর কোথাও পড়তে-পরিবর্তন করতে হবে। আপনার পিসিতে একটি বাইট লিখতে চান, কোথাও কোথাও একটি bit৪ বিট রিড হয় এবং তারপরে কোথাও one৪ বিটের একটি বাইট সংশোধন করা হয়, তারপরে আপনি যা করেন তার উপর নির্ভর করে b৪ বিটগুলি কেবল 8 বিটের সাহায্যে ড্রামে ফিরে যেতে পারে আগে যা ছিল তার থেকে আলাদা, ক্যাশে করা এবং আপনার কোড এটিকে সাধারণ নিয়ম হিসাবে তৈরি করে না। লেখাগুলি অগ্নি এবং যদিও ভুলে যায়, মেমরি নিয়ামক প্রসেসরের কাছ থেকে ঠিকানা এবং ডেটা সংগ্রহ করতে এবং প্রসেসরটিকে চালিয়ে যাওয়ার অনুমতি দিতে পারে যখন শেষ পর্যন্ত রাইটিং সেভিং ক্লকগুলি করে থাকে, সম্ভবত আরও পাঠানো-রড-মডিফাই-রাইটিং-এ জ্বলন্ত ঘড়ি রয়েছে (যদি ইতিমধ্যে ক্যাশে),

আজও অনেকগুলি ব্যতিক্রম রয়েছে, কিছু সিস্টেমে সম্ভবত নির্দেশাবলী বা অ্যাক্সেসের ধরন রয়েছে যা কিছুটা সম্বোধনযোগ্য, কিছু সিস্টেম রয়েছে যেখানে ঠিকানাটি বাইট ব্যতীত অন্য কোনও কিছুর ইউনিটগুলিতে রয়েছে। বাইটটি সর্বদা 8 বিট ছিল না এবং সম্ভবত এখনও সিস্টেম রয়েছে যা সত্য ((আমরা অক্টাল ব্যবহার করতাম এবং 9 বিট বাইট 18 বা 36 বিট শব্দটি মানব প্রোগ্রামার এবং চিপ ডিজাইনারদের অনেক ধারণা দেয় যা অষ্টাল মনে করে, একটি 8 বিট হেক্সাডেসিমাল চিন্তাবিদদের কাছে অনেক কিছু বোঝায়)।

এখন আপনি যে কম্পিউটারটি এটি পড়ছেন, যদিও সেই ড্রাম কন্ট্রোলারের জন্য ডেটা বাসটি 32 বা 64 বিট প্রশস্ত হতে পারে, প্রকৃত ড্রাম মডিউলটি নিজেই সম্ভবত একাধিক 8 বিট প্রশস্ত অংশ দ্বারা গঠিত, যা আপনি সহজেই দেখতে পারবেন। যদি এটির একপাশে 8 বা 9 টি চিপ থাকে তবে এটি সম্ভবত bit৪ বিট বা bit২ বিট (b৪ বিট প্লাস ৮ বিট, ইসিসি এর 8 বিট) প্রশস্ত বাসটি 8 বিট প্রশস্ত অংশগুলি সহ বাস্তবায়িত হবে। আপনার যদি মডিউলের একপাশে 4 বা 5 চিপ থাকে তবে এখনও প্রচুর পিন থাকে তবে এটি হয় 32 বিট প্রশস্ত (এই দিনগুলিতে অসম্ভব) বা 4 টি চিপ 16 বিট প্রশস্ত এবং যদি 5 তম থাকে তবে এটি হতে পারে 16 বিট প্রশস্ত হতে হবে এবং কেবল 8 টি ব্যবহৃত হয় বা এটি 8 বিট প্রশস্ত অংশ। এখানে 32 বিট প্রশস্ত অংশগুলি রয়েছে তবে 8 বিট প্রশস্ততা সবচেয়ে সাধারণ। একটি খুব সাধারণ অনুশীলন যা পিছনে ফিরে যায়।

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


0

আপনি 1 বিট প্রসেসরও পেতে পারেন!

ডেটা প্রস্থ রেজিস্টার (সঞ্চালক) প্রস্থ অনুসরণ করবে। এটি সাধারণত 'প্রসেসরের প্রস্থ' যেখানে ঠিকানা বস আলাদা (সাধারণত আরও প্রশস্ত) হতে পারে তবে ব্যবহারের উপর নির্ভর করে প্রযুক্তিগতভাবে সংকীর্ণ হতে পারে।

8 অবশ্যই দুটি সংখ্যার শক্তি। আমাদের কাছে 8 বিটের সর্বব্যাপী ব্যবহারের জন্য - এবং সিএসএসটি / প্রযুক্তির দক্ষতার জন্য ধন্যবাদ জানার ইতিহাস রয়েছে। দীর্ঘ সময়ের জন্য 8 টি বিট শাসিত হয়েছে, কারণগুলির একটি অংশ হ'ল বাসগুলির প্রস্থ এবং 8 টি বিট প্রস্থে বেশি রেজিস্টারগুলি তৈরি করতে অসুবিধা (এবং র‌্যাম) (আপনার রেজিস্টারগুলি সমস্ত 8 বিট থাকলে 16 বিট ডেটাতে কোনও পয়েন্ট নয়)। 8 টি বিট বরং নিফটি এবং হেক্সে প্রচুর অর্থবোধ করে। 8 টি বিট আপনার বর্ণমালা, সংখ্যা, অঙ্কন এবং নিয়ন্ত্রণের অক্ষর (এএসসিআইআই) বা 0 থেকে 255 বা + -127 ধরে রাখতে পারে 256 বাইটের বেশি ডেটা (8 বিট ঠিকানা বাস) পেজিংয়ের সাহায্যে সহজ, পৃষ্ঠাটি নির্বাচন করুন, তারপরে বাইট যেমন 256 এর 256 পৃষ্ঠাগুলি আপনাকে 64 কে (65536) এ দেয়। সাধারণত পৃষ্ঠা শূন্য একটি স্ক্র্যাচ প্যাড হতে পারে কারণ এটি অ্যাক্সেস করা তত দ্রুত হবে কারণ এটি পৃষ্ঠা সেট করার প্রয়োজন হয় না। আমার প্রথম কম্পিউটারে 1k x 8 ব্রেট স্ট্যাটিক র‌্যাম ছিল! (গতিশীল র‌্যাম ছিল সস্তা, তবে এটি রিফ্রেশ করার জন্য আরও হার্ডওয়ারের প্রয়োজন ছিল)। কয়েকটি পতাকা সহ (সি, এনসি, জেড, এনজেড) যোগ করুন, বিয়োগ করুন, বাম এবং ডানে ঘোরান, আপনি একটি 8 বিট মেশিনে কিছু সুন্দর জটিল গণিত করতে পারেন। আপনার কোনও ভাসমান পয়েন্ট গণিত ইউনিট লাগবে না! সুপার দ্রুত নয়, তবে করণীয়! অনেক প্রারম্ভিক প্রসেসরের একক পদক্ষেপ নেওয়া যেতে পারে, এবং সাধারণ স্ট্যাটিক র‌্যামের সাহায্যে ডিবাগিংটি সত্যই সহজ করা যায়; কিছু অষ্টাল বাফার এবং প্রারম্ভিক লাল এলইডি যুক্ত করে আপনি ঠিকানা এবং ডেটা বাসগুলি পরিবর্তন করতে দেখতে পেলেন :)

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