অ-উদ্বায়ী স্মৃতিগুলির বেশিরভাগটি কেন ডিফল্ট রাষ্ট্র হিসাবে যৌক্তিক থাকে?


14

আমি এম্বেড থাকা অ্যাপ্লিকেশনগুলিতে EEPROM এবং FLASH মেমরির মতো নন অস্থির মেমরি ব্যবহার করেছি এবং আমি সর্বদা খুঁজে পেয়েছি যে অব্যবহৃত মেমরি (EEPROM / FLASH) বিট অবস্থানগুলি সর্বদা 1ডিফল্টরূপে সেট থাকে । কেন এটি পরিবর্তে ব্যবহার করা হয় 0?

উদাহরণস্বরূপ কোনও ঠিকানা, ব্যবহারকারীর দ্বারা লিখিত না থাকলে সর্বদা স্টোর করুন 0xffএবং না রাখুন তবে 0 তম ঠিকানা (মেমরির প্রথম বাইট) বলুন 0x00। মেমরি চিপগুলি তৈরি করা লোকেরা কেন এটি সেভাবেই রেখেছিল? আমি নিশ্চিত যে ডিফল্ট মেমরির অবস্থানটি প্রস্তুতকারক হিসাবে 0xffকিছু সুবিধা বা গুরুত্বপূর্ণ কিছু সরবরাহ করে।

মেমরি চিপগুলিতে এই কাঠামোর পিছনে কারণ কী?

উত্তর:


20

আমি ফ্ল্যাশ মেমরি প্রোগ্রামিং নিয়ে আলোচনা করতে যাচ্ছি, তবে অনেকগুলি উপাদান EEPROMs (বৈদ্যুতিন ক্ষয়যোগ্য প্রোগ্রামেবল রম) এর সাথে সমান হবে, যেহেতু ১৯৮০ এর দশকের মাঝামাঝি সময়ে EEPROM থেকে ফ্ল্যাশ মেমরি নেওয়া হয়েছিল। শারীরিক দৃষ্টিকোণ থেকে নীচে বর্ণিত হিসাবে, ডিফল্ট অবস্থাটি 1 এর। তবে আরও গুরুত্বপূর্ণ বিষয়, আমি কেন এখানে একটি ডিফল্ট রাষ্ট্র রয়েছে তা ব্যাখ্যা করতে যাচ্ছি - আপনি শেষ সময় থেকে ইতিমধ্যে যা প্রোগ্রাম করা হয়েছে তার উপরে আপনি নির্বিচারে প্রোগ্রাম করতে পারবেন না।

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

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

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

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

এখানে চিত্র বর্ণনা লিখুন

মুছে ফেলা অপারেশন। ফ্ল্যাশ মেমরি সেলগুলির ডিফল্ট অবস্থা (একটি একক স্তরের NOR ফ্ল্যাশ সেল) 1 কারণ ভাসমান গেটগুলি কোনও নেতিবাচক চার্জ বহন করে না। উত্স এবং নিয়ন্ত্রণ গেট (শব্দ লাইন) জুড়ে একটি ভোল্টেজ প্রয়োগ করে একটি ফ্ল্যাশ-মেমরি সেল (1 এ পুনরায় সেট করা) মুছে ফেলা সম্ভব। ভোল্টেজটি -9 ভি থেকে -12 ভি অবধি হতে পারে। এবং উত্সটিতে প্রায় 6V প্রয়োগ করুন। ভাসমান গেটের ইলেক্ট্রনগুলি টেনে নামিয়ে কোয়ান্টাম টানেলিংয়ের মাধ্যমে উত্সে স্থানান্তর করা হয় । অন্য কথায়, ইলেক্ট্রনগুলি ভাসমান গেট থেকে উত্স এবং স্তরটিতে টানেল হয়।

কারণ মুছে ফেলার জন্য উচ্চ ভোল্টেজ ব্যবহার করা হয়, তাই ব্লকগুলিতে মুছে ফেলার জন্য কম মরা অঞ্চল প্রয়োজন। সুতরাং ভোল্টেজগুলি একবারে পুরো সারি ট্রানজিস্টারে প্রয়োগ করা যেতে পারে।

লেখার জন্য, একটি NOR ফ্ল্যাশ সেল প্রোগ্রাম করা যেতে পারে, বা নিম্নলিখিত পদ্ধতি দ্বারা 0 তে সেট করা যেতে পারে। লেখার সময়, নিয়ন্ত্রণ গেটে (ওয়ার্ড লাইন) প্রায় 12 ভি এর উচ্চ ভোল্টেজ প্রয়োগ করা হয়। যদি 7V এর আশেপাশে একটি উচ্চ ভোল্টেজ বিট লাইন (ড্রেন টার্মিনাল) এ প্রয়োগ করা হয় তবে একটি 0 কক্ষে সঞ্চিত থাকে। চ্যানেলটি এখন চালু আছে, তাই ইলেক্ট্রনগুলি উত্স থেকে ড্রেনে প্রবাহিত হতে পারে। হট-ইলেক্ট্রন ইনজেকশন নামক প্রক্রিয়াটির মাধ্যমে কিছু উচ্চ-শক্তি ইলেক্ট্রনগুলি ভাসমান গেটের উপরে অন্তরক স্তরটি দিয়ে লাফিয়ে ফেলার কারণ হিসাবে উত্স-ড্রেন প্রবাহ যথেষ্ট পর্যাপ্ত।

পড়ার জন্য, নিয়ন্ত্রণ গেটে এবং ড্রেনে 1V এর কাছাকাছি প্রায় 5V এর ভোল্টেজ প্রয়োগ করা হয়। নিকাশী এবং উত্সের মধ্যে প্রবাহিত বর্তমানের দ্বারা মেমরি সেলটির অবস্থা পৃথক করা হয়।

অ-উদ্বায়ী মেমরির ব্যবহারযোগ্য জীবন মোছার চক্রগুলির ক্ষেত্রে পরিমাপ করা হয়। এনওআর এর অসুবিধে হ'ল মুছে যাওয়া চক্রের সংখ্যা ন্যানড মেমরির প্রায় 1/10। পিআইসি 32 এর অনেকগুলি সংস্করণ কেবল ফ্ল্যাশ মেমরিটিকে 1000 বার আপডেট করার অনুমতি দেয়, EEPROMs এর জন্য সাধারণত 100,000 মুছে ফেলার চক্রটি কম করে দেয়।

সুতরাং এটি এত গুরুত্বপূর্ণ নয় যদি ডিজাইনাররা ডিফল্ট রাজ্যটি 1 বা 0 হয় (তারা সেই মানটি বেছে নিয়েছিল যা সবচেয়ে সহজ বাস্তবায়নের অনুমতি দেয়); গুরুত্বপূর্ণ বিষয়টি হ'ল একজনকে প্রথমে ফ্ল্যাশের একটি ব্লক মুছে ফেলতে হয় (যা সময় নেয়) এবং তারপরে পুরো ব্লকটি পুনরায় প্রোগ্রাম করতে হবে (এমনকি একটি শব্দও পরিবর্তিত হচ্ছে (যার জন্য যথেষ্ট পরিমাণ র‌্যাম প্রয়োজন)।

ডিভাইসটির এই ব্লকটি মুছে ফেলা প্রথম EPROMs (Erasable প্রোগ্রামেবল রম) -এ ফিরে যায়, যা EEPROM গুলি এগিয়ে যায় কোডটি চিপগুলিতে প্রোগ্রাম করা হয়েছিল (16KB 27128 এর মতো) এবং সকেটে স্থাপন করা হয়েছিল। এই চিপগুলির উপরে একটি সামান্য উইন্ডো ছিল যা ডাইতে আলো জ্বলতে দেয়। যখন প্রোগ্রামটি পরিবর্তন করতে হয়েছিল, তখন চিপগুলিকে 20 মিনিট বা তার বেশি সময় জন্য একটি ইউভি ইরেজারে রাখা হয়েছিল, যা পুরো চিপটি মুছে ফেলবে। তারপরে চিপটি নতুন প্রোগ্রাম দিয়ে প্রোগ্রাম করা হত।

কিছু EEPROM প্রোগ্রামিংয়ের আগে মেমরির ব্লকগুলি মুছে ফেলা প্রয়োজন; অন্যরা একবারে বাইট লেখার অনুমতি দেয় (EEPROM কন্ট্রোলার আসলে বাইটটি প্রথমে এবং প্রোগ্রামগুলি মুছে দেয়)।


2
এটি অবিচ্ছিন্ন স্মৃতিতে কীভাবে অ্যাক্সেস করা হয় তার একটি দুর্দান্ত ওভারভিউ, তবে এটি মুছে ফেলা রাজ্যটি '1' নয় '0' নয় বলে এটি আসলে সম্বোধন করে না।
akohlsmith

1
@akohlsmith আমি সেই তথ্য আরও সম্পূর্ণ হতে যুক্ত করেছি। তবে আসল সমস্যাটি ডিফল্ট ঘরটি 1 বা 0 0 নয় কিনা; প্রতিটি ডাটা লাইনে ইনভার্টার লাগিয়ে এটি বিপরীত হতে পারে। আসল বিষয়টি হ'ল প্রথম স্থানে কেন একটি ডিফল্ট রাজ্য রয়েছে; উদাহরণস্বরূপ, আপনি একটি 1 দ্বারা 0 লিখতে পারেন - পরবর্তীটির জন্য ব্লকগুলিতে মুছে ফেলা প্রয়োজন।
tcrosley

1
আমি একমত নই, কেন মুছে ফেলা রাজ্যটি 'পরিষ্কার' না হয়ে 'সেট' করা হয়েছে - সে সম্পর্কে প্রশ্নটি বেশ সুনির্দিষ্ট বলে মনে হয়েছিল - যাইহোক আমি আপনার উত্তরটি পছন্দ করি এবং আমার কাছ থেকে +1 (এটি নয় যে আমি কেউই আছি, কেবল এলোমেলো ইন্টারনেটের পছন্দ যারা পছন্দ করে) আপনার উত্তর)
অ্যাকোহলস্মিথ

1
@akohlsmith আমি আপনার সাথে একমত যে কনভেনশন অনুসারে সেট স্টেটগুলি সাধারণত 1 হয় এবং প্রকৃতপক্ষে পৃথক সেলগুলি কীভাবে কাজ করে তা। এটির বিপরীতে কিছু অতিরিক্ত হার্ডওয়্যার লাগবে (খুব বেশি নয়) এবং এটি করার দরকার ছিল না: 1 ডিফল্ট হিসাবে ঠিক আছে।
tcrosley

এটি একটি দুর্দান্ত উত্তর। তবে আমি মনে করি এটি বোঝা সহজ হবে: যদি আপনি এই ডিভাইসগুলিতে 1 টি প্রোগ্রাম করতে পারবেন না, আপনি কেবল 0 এর প্রোগ্রাম করতে পারেন। আপনি যদি 1 এর প্রোগ্রাম করতে চান তবে আপনাকে ডিভাইসগুলি মুছতে হবে এবং পুরো ব্লকটি ডিফল্ট 1 অবস্থায় ফিরিয়ে আনতে হবে এবং তারপরে প্রয়োজনীয় প্রোগ্রাম হিসাবে 0 এর রয়েছে। । উদাহরণস্বরূপ, প্রোগ্রাম 0101করতে 1010, আপনাকে এই ক্রমটি করতে হবে: 0101-> (মুছে ফেলুন) -> 1111-> (প্রোগ্রাম 0 এর) -> 1010। বা মূলত, এর অর্থ 1 এর লিখন এবং 0 এর লিখনটি বিভিন্ন গ্রানুলারিটিতে করা হয়
স্মিভিকিপিডিয়া

4

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

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

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

সংক্ষিপ্ত সংস্করণ: অর্ধপরিবাহী পদার্থবিজ্ঞানী এবং অ্যানালগ সার্কিট ডিজাইনাররা আপনার ডিজিটাল অন্তর্দৃষ্টিগুলির জন্য কিছুই যত্ন করে না। :-)


1

আপনি যেটি উদ্ধৃত করছেন তা আমি নিশ্চিত নই, তবে ফ্ল্যাশ মেমরির জন্য উইকিপিডিয়া পৃষ্ঠাটি বন্ধ করে দিলে এটি ফ্ল্যাশ মেমরির পিছনে থাকা হার্ডওয়্যারের ফলস্বরূপ বলে মনে হচ্ছে:

ডিফল্ট অবস্থায় একটি একক স্তরের এনওআর ফ্ল্যাশ সেলটি যৌক্তিকভাবে বাইনারি "1" মানের সমতুল্য হয়, কারণ বর্তমান গতিপথটি নিয়ন্ত্রণ গেটে উপযুক্ত ভোল্টেজের প্রয়োগের অধীনে চ্যানেলের মাধ্যমে প্রবাহিত হবে, যাতে বিটলাইন ভোল্টেজটি নীচে টানতে হবে। "

যদি আপনি অন্য ধরণের ফ্ল্যাশ, উদাহরণস্বরূপ নান্দ ব্যবহার করেন তবে ডিফল্ট অবস্থাটি 1 হবে কারণ ট্রানজিস্টরের কোনও আউটপুট যখন তাদের উচ্চ / নিম্ন প্রান্তিক ভোল্টেজের নিচে থাকে তখন ন্যানডের আউটপুট 1 হয়।

আপনি যা জিজ্ঞাসা করছিলেন তাতে আমি যদি নৌকাকে পুরোপুরি মিস করি তবে দুঃখিত, আমি এই সমস্তের ক্ষেত্রেও মোটামুটি নতুন।


1
কিন্তু প্রদত্ত যে কোষ এবং পিনের মধ্যে সার্কিটরি রয়েছে, যেহেতু বেশিরভাগ যুক্তিযুক্ত গঠনগুলি সম্ভবত সহজাতভাবে অনেকগুলি অন্তর্নিহিত বিপর্যয় সম্পাদন করে, কেন মুছে ফেলা রাজ্যটি প্রয়োজনীয়ভাবে "0" হিসাবে ব্যবহৃত হয় এবং "1" হিসাবে ব্যবহৃত হয় না?
ক্রিস স্ট্রাটন

আমি আপনার প্রশ্নটি পুরোপুরি বুঝতে পারি না - কি ইরাকের রাজ্যটি "1" হিসাবে ব্যবহৃত হচ্ছে না? আমি সম্মান সঙ্গে জিজ্ঞাসা এই ( "EEPROM চিপের মেমোরি কোষ তৈরী অপারেশন এবং বৈশিষ্ট্য" এর অধীনে)।
llee94

বাহ্যিক ইন্টারফেসের যৌক্তিক অবস্থাটি প্রায় স্বতঃস্ফূর্ত বলে মনে হয় কোষের বৈদ্যুতিক পরিস্থিতি যার সাথে মিল রয়েছে, কারণ উভয়ের মধ্যে একাধিক, সম্ভবত ফলস্বরূপ সার্কিট উপাদান বিপরীত হয়।
ক্রিস স্ট্রাটন

1
@ ক্রিসট্রেটটন আমি বিশ্বাস করি আইলি ৯৪ বলেছে যে মুছে ফেলা রাষ্ট্রটি আসলে একটি ১। তবে এটি আসলে নির্বিচারে - আপনি যদি ডেটা লাইনে ইনভার্টার স্থাপন করেন তবে এটি আপনার বর্ণনার মতো হবে। ডিফল্ট রাষ্ট্র হিসাবে 1 এর জন্য সামান্য কম হার্ডওয়্যার প্রয়োজন।
tcrosley

বা আরও কিছু হার্ডওয়্যার - এটি ঘর এবং আউটপুটটির মধ্যে বিস্মৃতভাবে বিবর্তিত সার্কিট উপাদানগুলির মধ্যে একটি বিজোড় বা এমনকি সংখ্যক সংখ্যক আছে কিনা তা নির্ভর করে।
ক্রিস স্ট্রাটন

1

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

এটি কনভেনশন হয়ে গেছে কারণ এই দিনগুলিতে ডেটা পাথের কোনও পর্যায়ে একটি ইনভার্টার যুক্ত করা সম্ভব হবে।

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

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