نینڈ فلیش اور بیڈ بلاک کیا ہے؟
Oct 25, 2022
1 نند فلیش
1.1 نند فلیش میموری کا تعارف
نند فلیش میموری، چینی نام فلیش میموری۔ اس کا نام اس کی تیز مٹانے کی رفتار کی وجہ سے پڑا ہے۔
NAND FLASH کی ایجاد جاپان کے توشیبا گروپ کے مسٹر Fujio Masuoka نے کی تھی۔ دیگر اسٹوریج ڈیوائسز سے مختلف، NAND FLASH ڈیٹا لائنز اور ایڈریس لائنز ملٹی پلیکس ہیں، اور ایڈریس لائنز کو بے ترتیب ایڈریسنگ کے لیے استعمال نہیں کیا جا سکتا۔ لہذا، NAND FLASH صفحہ کے صفحات کو پڑھنے کی اکائی کے طور پر استعمال کرتا ہے (عام طور پر ایک صفحہ 2K بائٹس ہوتا ہے)، اور بلاکس کو مٹانے والے یونٹ کے طور پر۔ (عام طور پر ایک ہی بلاک 128KB یا 256KB ہوتا ہے)۔ ایریز کمانڈ بھیجنے کے بعد، NAND FLASH تمام بلاکس کو ایک وقت میں 1 پر مٹا دیتا ہے، اور اندر موجود تمام مواد 0xFF بن جاتے ہیں۔ کیونکہ مٹانے کا وقت بہت کم ہے، یہ بجلی کی طرح تیز ہے۔ تو ہم اس میموری کو فلیش میموری کہتے ہیں۔
1.2 NAND FLASH کے ہارڈ ویئر کے نفاذ کا طریقہ کار
NAND FLASH کی بنیادی اکائی ایک MOSFET ہے جس میں تیرتے گیٹ ہیں۔
ڈیٹا کو فلیش میموری سیلز میں برقی چارج کی صورت میں محفوظ کیا جاتا ہے۔ ذخیرہ شدہ چارج کی مقدار بیرونی گیٹ پر لگائے گئے وولٹیج پر منحصر ہے۔ ڈیٹا کی نمائندگی اس بات سے کی جاتی ہے کہ آیا ذخیرہ شدہ چارج کا وولٹیج ایک مخصوص حد Vth سے زیادہ ہے، اور اگر ذخیرہ شدہ چارج کافی ہے اور حد Vth سے زیادہ ہے، تو یہ 1 کی نمائندگی کرتا ہے۔ 0 لکھنے کے لیے، اسے خارج کرنا ہے۔ یہ، اور چارج Vth سے کم ہو جاتا ہے، جس کا مطلب ہے 0۔
2 برا بلاک
2.1 خراب بلاک کی تعریف
چونکہ NAND فلیش کا عمل اس کے لائف سائیکل کے دوران NAND میموری اری کی کارکردگی کی وشوسنییتا کی ضمانت نہیں دے سکتا، اس لیے NAND کی تیاری اور استعمال کے دوران خراب بلاکس واقع ہوں گے۔ خراب بلاکس کی خصوصیات یہ ہیں: اس بلاک کو پروگرامنگ/مٹانے کے دوران، کچھ بٹس کو اونچا نہیں کھینچا جا سکتا، جس سے پیج پروگرام اور بلاک ایریز آپریشنز میں خرابیاں پیدا ہوں گی۔
2.2 خراب بلاکس کی درجہ بندی: فیکٹری خراب بلاک FBB اور استعمال شدہ خراب بلاک GBB
(1) ایف بی بی: فیکٹری بیڈ بلاک، فیکٹری بیڈ بلاک، وہ برا بلاک جو ابھی فیکٹری سے نکلا ہے، اسے ماسکڈ بیڈ بلاک یا ابتدائی برا/غلط بلاک کہا جاتا ہے۔ جب NAND Flash فیکٹری چھوڑتا ہے، تو مینوفیکچرنگ کے عمل کی وجہ سے خراب بلاکس کی ایک خاص مقدار ہوگی۔ ایک ہی وقت میں، اصل فیکٹری فیکٹری چھوڑنے سے پہلے NAND FLASH کی جانچ کرے گی، اور ٹیسٹ کے لیے استعمال کیے گئے بلاکس کو بھی اصل فیکٹری کے ذریعے خراب بلاکس کے طور پر نشان زد کیا جا سکتا ہے۔
فیکٹری چھوڑنے سے پہلے، اصل فیکٹری خراب بلاکس کو نشان زد کرے گی۔ مخصوص نشان یہ ہے کہ عام NAND فلیش کے لیے جس کا صفحہ سائز 2K ہے، NAND فلیش کے لیے، خراب بلاک کا نشان عام طور پر ہر بلاک کے پہلے صفحہ پر ہوتا ہے۔ صفحہ اسپیئر ایریا کا پہلا بائٹ۔ خاص طور پر، آپ مختلف مصنوعات کی ڈیٹا شیٹ سے استفسار کر سکتے ہیں۔ اگر یہ 0xFF نہیں ہے، تو اس کا مطلب ہے کہ یہ ایک برا بلاک ہے۔ اسی طرح، تمام عام بلاکس، اچھے بلاکس، اور ان میں موجود تمام ڈیٹا 0xFF ہیں۔
(2) جی بی بی: خراب بلاکس کا استعمال کرتے ہوئے بڑھا ہوا برا بلاک۔ NAND فلیش کے استعمال کے دوران، کیونکہ NAND فلیش کی مٹانے اور لکھنے کی زندگی محدود ہے (عام طور پر 100،000 بار سے زیادہ نہیں)، استعمال کی ایک مخصوص مدت کے بعد خراب بلاکس بھی واقع ہوں گے۔ . اگر بلاک مٹانے یا صفحہ پروگرام کی غلطی پائی جاتی ہے، تو بلاک کو خراب بلاک کے طور پر نشان زد کیا جا سکتا ہے۔ موروثی خراب بلاک کی معلومات سے مطابقت رکھنے کے لیے، اسپیئر ایریا کے پہلے بائٹ (بائٹ) کو 0xFF کے علاوہ دیگر اقدار کے ساتھ بھی نشان زد کیا جائے گا۔
2.3 خراب بلاک ٹیبل:
فیکٹری سے نکلتے وقت فلیش کا پہلا بلاک اچھا ہونا چاہیے، ورنہ اس کا مطلب ہے کہ پورا فلیش استعمال نہیں کیا جا سکتا۔ کیونکہ عام طور پر پہلا بلاک خراب بلاک ٹیبل (بی بی ٹی، بیڈ بلاک ٹیبل) کو بچانے کے لیے استعمال کیا جائے گا۔ لینکس کرنل MTD فن تعمیر کے تحت NAND فلیش ڈرائیور اور UBOOT کے NAND فلیش ڈرائیور میں خراب بلاک مینجمنٹ (Bad Block Management) کے ورکنگ میکانزم کی وجہ سے، ڈرائیور کو لوڈ کرنے کے بعد، اگر آپ پیرامیٹرز شامل نہیں کرتے ہیں، تو آپ فعال طور پر اسے چھوڑنے کے لیے کہتے ہیں۔ خراب بلاک اسکین. اگر ایسا ہے تو، یہ خراب بلاکس کے لیے فعال طور پر اسکین کرے گا اور بعد میں خراب بلاک کے انتظام کے لیے ضروری BBT قائم کرے گا۔
2.4 خراب بلاکس کی تعداد اور مقام
اصل NAND FLASH فیکٹری میں خراب بلاکس کی تعداد اور مقام کے لیے ایک معیار ہوگا۔ اصل فیکٹری عام طور پر وعدہ کرتی ہے کہ خراب بلاکس کی تعداد 2 فیصد سے زیادہ نہیں ہوگی، لیکن خراب بلاکس کی جگہ کی گارنٹی نہیں دی جاتی ہے (لیکن فیکٹری سے نکلتے وقت پہلا بلاک اچھا ہونا چاہیے۔، کیونکہ پہلا بلاک استعمال کیا جائے گا۔ اسٹور بی ٹی ٹی)۔ مثال کے طور پر، ایک NAND چپ میں 2048 بلاکس ہیں، 2048*002=40.96، لہذا خراب بلاکس کی تعداد 40 سے زیادہ نہیں ہوگی۔ لیکن جہاں خراب بلاکس ظاہر ہوں، چاہے وہ مسلسل ہوں۔ یا بے ترتیب، کوئی گارنٹی نہیں ہے۔
2.5 اچھے بلاکس پر برے بلاکس کا اثر
خراب بلاک اچھے بلاکس کی کارکردگی کو متاثر نہیں کرتا ہے کیونکہ اسے منتخب گیٹس کے ذریعے بٹ لائنوں سے الگ کیا جاتا ہے)
2.6 خراب بلاکس کا پتہ لگانا
"خراب بلاکس" کے طور پر نشان زد ان بلاکس پر "مٹانے" کا آپریشن کیا جاتا ہے۔ اگر بلاک مٹانے کی غلطی ہوتی ہے، تو یہ ثابت ہوتا ہے کہ بلاک ایک حقیقی خراب بلاک ہے۔
2.7 مٹانے کے آپریشن پر نوٹس
درحقیقت، ہم نشان زد خراب بلاکس کو بھی مٹا سکتے ہیں۔ اس طرح زبردستی مٹائے جانے کے بعد، خراب بلاک کی معلومات باقی نہیں رہتیں۔ فیکٹری خراب بلاکس کے لیے، عام طور پر نشان زد معلومات کو مٹانے کی سفارش نہیں کی جاتی ہے۔
UBOOT میں ایک کمانڈ ہے جسے "nand scrub" کہتے ہیں، جو بلاک میں موجود تمام مواد کو مٹا دیتا ہے، بشمول خراب بلاک کا نشان، چاہے وہ فیکٹری ہو یا نیا نشان جو بعد میں استعمال کے عمل میں ظاہر ہوتا ہے۔ عام طور پر اسے استعمال کرنے کی سفارش نہیں کی جاتی ہے۔ جب NAND FLASH فیکٹری تیار کی جاتی ہے، NAND خراب بلاکس کو نسبتاً وسیع درجہ حرارت اور وولٹیج کی حد میں جانچا اور نشان زد کیا جاتا ہے۔ یہ خراب بلاکس اب بھی ایک خاص درجہ حرارت یا وولٹیج کے تحت کام کر سکتے ہیں، لیکن حالات بدلنے پر کسی اور وقت تبدیل ہو سکتے ہیں۔ ناکامی، ایک ممکنہ ٹکنگ ٹائم بم بننا۔ اگر اصل فیکٹری کی طرف سے نشان زد خراب بلاکس کو مٹا دیا جاتا ہے، تو ڈیٹا لکھنے اور محفوظ کرتے وقت ڈیٹا ضائع ہونے کے مسئلے کا سامنا کرنا آسان ہے۔
صرف اچھے بلاکس کو مٹانے کے لیے "nand erase" کا استعمال کرنا بہتر ہے، ان بلاکس کے لیے جو پہلے سے خراب بلاکس کو نشان زد کر چکے ہیں، مٹائیں نہیں۔
3 خراب بلاک مینجمنٹ
ڈیوائس یا FLASH کا کنٹرولر خراب بلاکس کا انتظام کرے گا، جو کہ BBM (Bad Block Management) ہے۔ ہم اسے بعد میں شامل کریں گے۔
تبصرہ
1 ایک اچھے بلاک کو 0xff سے کیوں نشان زد کیا گیا ہے: کیوں کہ نینڈ فلیش کو مٹانے سے متعلقہ بلاک کے تمام بٹس کو 1 میں تبدیل کرنا ہے، لکھنے کے عمل کے دوران، چپ کے ہر بٹ کو صرف 1 سے تبدیل کیا جا سکتا ہے۔ 0 تک، لیکن نہیں۔ 0 سے 1 میں تبدیل کریں۔ 0XFF کا مطلب ہے کہ سبھی کو 11111111 میں مٹا دیا جا سکتا ہے۔ یہ بتاتا ہے کہ اسے کامیابی سے مٹا دیا جا سکتا ہے، اور یہ ایک اچھا بلاک ہے۔
———————————————
کاپی رائٹ کا بیان: یہ مضمون CSDN بلاگر "الیگزینڈر{{0}}Lai" کا اصل مضمون ہے اور CC 4.0 BY-SA کاپی رائٹ معاہدے کی پیروی کرتا ہے۔ براہ کرم دوبارہ پرنٹ کرنے کے لیے اصل ماخذ کا لنک اور یہ بیان منسلک کریں۔







