Nand Flash iPhone - ข้อผิดพลาดเหล่านี้คืออะไรและจะแก้ไขได้อย่างไร การเขียนโปรแกรม NAND FLASH

2017-05-25 วันที่แก้ไขล่าสุด: 2018-10-10

บทความกล่าวถึง: คุณสมบัติของการใช้ไมโครวงจร นาโน แฟลช,วิธีการจัดวางหน้าและการจัดการบล็อกที่ไม่ถูกต้อง ข้อแนะนำในการเขียนโปรแกรมโดยใช้โปรแกรมเมอร์

สารบัญ:

1. ทฤษฎี

1.1. ความแตกต่างระหว่างชิป NAND FLASH และชิปทั่วไป

หากคุณไม่เจาะลึกถึงความซับซ้อนของเทคโนโลยี ความแตกต่างระหว่างไมโครวงจร นาโนจากชิปหน่วยความจำอื่นๆ มีดังนี้

  • ไมโครวงจร นาโนมีมาก ปริมาณมาก.
  • ไมโครวงจร นาโนสามารถมี บล็อกที่ไม่ดี (ไม่ดี).
  • ขนาดหน้าบันทึก ไม่ใช่กำลังของ 2 .
  • กำลังเขียนถึงชิปดำเนินการ หน้าเท่านั้น , ลบออก - อย่างน้อยก็ในบล็อก .

มีความแตกต่างอื่นๆ เล็กน้อย แต่คุณสมบัติสองประการแรกเป็นกุญแจสำคัญ ทำให้เกิดปัญหามากที่สุด การปรากฏตัวของบล็อกที่ไม่ดี.

1.2. การจัดระเบียบชิป NAND FLASH

รายละเอียดเพิ่มเติมเกี่ยวกับองค์กรและโครงสร้างของไมโครวงจร นาโนสามารถอ่านได้ในวรรณกรรมเฉพาะทาง แต่เราทราบว่า:

  • ไมโครวงจร นาโนจัดใน หน้า (หน้า) เข้าสู่หน้าต่างๆ บล็อก (บล็อก) บล็อกเข้า โมดูลลอจิคัล (ลุน).
  • ขนาดหน้า นาโน ไม่ใช่ผลคูณของ 2.
  • เพจประกอบด้วย ขั้นพื้นฐานและ สำรอง (สำรอง) ภูมิภาค

ตามที่นักพัฒนา นาโน วีพื้นที่หลักจะต้องตั้งอยู่ ข้อมูลนั้นเอง, ก ในพื้นที่สำรอง (สำรอง) - เครื่องหมายบล็อกที่ไม่ดี, เช็คซัม พื้นที่หลัก, อื่นๆ ข้อมูลการบริการ.

หากพวกเขาพูดถึง ขนาดหน้าชิป NAND 512 ไบต์หรือ 2กไบต์แล้ว เรากำลังพูดถึงโอ ขนาดของพื้นที่หลักหน้ายกเว้น สำรอง.

1.3. วิธีใช้พื้นที่สำรองของหน้า

เราขอเตือนคุณอีกครั้งว่าตามที่นักพัฒนาชิป NAND กล่าว ในพื้นที่สำรองควรตั้งอยู่: เครื่องหมายบล็อกที่ไม่ดี, เช็คซัมพื้นที่ข้อมูลหลัก อื่นข้อมูลการบริการ

นักพัฒนาส่วนใหญ่อธิบายเท่านั้น ที่ตั้งเครื่องหมายบล็อกที่ไม่ดีในไมโครวงจรที่ให้มา สำหรับด้านอื่น ๆ ของการใช้พื้นที่สำรองที่กำหนด คำแนะนำทั่วไปและอัลกอริธึมสำหรับการคำนวณ ECC โดยปกติจะเป็นไปตาม Haming Samsung ก้าวไปอีกขั้นหนึ่งโดยพัฒนาคำแนะนำที่เรียกว่า " พื้นที่หน่วยความจำแฟลช NAND สำรอง มาตรฐานวัตถุประสงค์ "("NAND Flash Spare Area. Assignment Standard", 27 เมษายน 2548, แผนกหน่วยความจำ, Samsung Electronics Co., Ltd)

มาตรฐานนี้ถือว่า การใช้งานครั้งต่อไปพื้นที่ว่าง:

สำหรับชิปที่มีขนาดหน้า 2048+64 ไบต์พื้นที่หลักและพื้นที่ว่างของหน้าแบ่งออกเป็น 4 ส่วน (เซกเตอร์) โดยแต่ละส่วน:

ภูมิภาคขนาด (ไบต์)แฟรกเมนต์
หลัก512 ภาค 1
512 ภาค 2
512 ภาค 3
512 ภาค 4
สำรอง16 ภาค 1
16 ภาค 2
16 ภาค 3
16 ภาค 4

แต่ละส่วนพื้นที่หลักตรงกัน ชิ้นส่วนพื้นที่อะไหล่.

การใช้พื้นที่สำรอง (สำหรับแต่ละชิ้นส่วนทั้งสี่ชิ้น)
สำหรับชิปที่มีขนาดหน้า 2048+64 ไบต์:
อคติ
(ไบต์)
ขนาด
(ไบต์)
วัตถุประสงค์คำอธิบาย
เครื่องหมาย บล็อกที่ไม่ดี
ที่สงวนไว้
หมายเลขเซกเตอร์โลจิคัล
สงวนไว้สำหรับหมายเลขภาค
ที่สงวนไว้
รหัส ECC สำหรับพื้นที่หน้าหลัก
รหัส ECC สำหรับหมายเลขเซกเตอร์ลอจิคัล
ที่สงวนไว้

แต่นี่ไม่ใช่ "มาตรฐาน" เพียงอย่างเดียวสำหรับการจัดสรรหน่วยความจำหน้า มีเพียงเราเท่านั้นที่รู้หลายโหลเช่น:

  • "การจัดการ NAND FLASH ภายใต้ WinCE 5.0 ", NXP;
  • "การจัดการบล็อกที่ไม่ถูกต้องสำหรับ NAND Flash โดยใช้ NX2LP ", 15 ธันวาคม 2549, Cypress Semiconductor;
  • "การจัดการบล็อคที่ไม่ดีของ OLPC NAND ", โอแอลพีซี.

1.4. ภาพ NAND และภาพไบนารี

คุณอาจจะเจอ สองตัวเลือกภาพสำหรับการบันทึก:

  1. ไฟล์ไบนารี ไม่แตกหักสู่หน้าและ โดยไม่มีพื้นที่ว่าง.
    ตัวเลือกนี้เป็นไปได้หากคุณเป็นนักพัฒนาอุปกรณ์ที่ใช้ นาโนหรือได้รับไฟล์ดังกล่าวจากผู้พัฒนา รูปภาพนี้เหมาะสำหรับการเขียนไปยังไมโครวงจรที่มีหน้าทุกขนาดและการกระจายของพื้นที่ว่างคุณเพียงแค่ต้องรู้ว่าพื้นที่ว่างจะถูกสร้างขึ้นด้วยวิธีใด
  2. รูปภาพที่อ่านจากวงจรไมโครอื่น (ตัวอย่าง) ซึ่งประกอบด้วยพื้นที่สำรองที่มีเครื่องหมายของบล็อกเสีย ข้อมูลการบริการ และรหัสควบคุม
    ภาพนี้สามารถเขียนได้ เท่านั้นลงในชิปด้วย ขนาดเดียวกันทุกประการหน้าและบล็อก

ผู้เชี่ยวชาญที่ซ่อมอุปกรณ์ต่างๆ มักจะเจอกับกรณีที่ 2 ในกรณีเช่นนี้ มักจะเป็นเรื่องยากที่จะระบุวิธีการจัดสรรพื้นที่สำรองและวิธีการจัดการบล็อคที่เสียหายที่ใช้

1.5. การทำเครื่องหมายจากโรงงานของบล็อกที่ไม่ดี

สิ่งเดียวที่มีมาตรฐานไม่มากก็น้อยก็คือ เครื่องหมายโรงงานของบล็อกที่ไม่ดี.

  • มีการทำเครื่องหมายบล็อกที่ไม่ถูกต้องบน หน้าที่ 0 หรือ 1สำหรับชิปที่มีขนาดหน้าน้อยกว่า 4K
  • สำหรับ หน้า 4K และอื่น ๆเครื่องหมายอาจเปิดอยู่ หน้าสุดท้าย ปิดกั้น.
  • ตัวฉันเอง เครื่องหมายบล็อกที่ไม่ดีอยู่ในพื้นที่ว่างหน้าในหน่วยไบต์ 5 สำหรับหน้าเล็ก (512 ไบต์) และในไบต์ 0 สำหรับหน้าขนาดใหญ่ (2K)
  • เครื่องหมายบล็อกไม่ถูกต้องอาจมีความสำคัญ 0x00หรือ 0xF0 สำหรับหน้าเล็กๆและ 0x00 สำหรับข้อมูลเพิ่มเติมเอ็กซ์
  • บล็อกที่ดี ทำเครื่องหมายไว้เสมอ 0xFF.
  • ไม่ว่าในกรณีใดความหมาย แตกต่างจาก 0xFFโปรแกรมเมอร์รับรู้ว่าเป็น เครื่องหมายบล็อกที่ไม่ดี.
  • ตามกฎแล้วในยุคปัจจุบัน นาโน บล็อกที่ไม่ดีนั้นเต็มไปด้วยค่า 0x00.

มีปัญหาหนึ่ง: บล็อกที่ไม่ดีสามารถลบได้- ด้วยวิธีนี้ คุณจะสูญเสียข้อมูลเกี่ยวกับบล็อคชิปที่ไม่ดีได้

อย่างไรก็ตามหากไมโครวงจรทำงานในอุปกรณ์แล้ว วิธีการทำเครื่องหมายบล็อกที่ไม่ดีนี้จะไม่ได้ใช้เสมอไป บางครั้งข้อมูลบล็อกที่เสียก็ไม่ได้รับการจัดเก็บไว้ในหน่วยความจำ NAND แต่บ่อยครั้งกว่านั้นแม้ว่านักพัฒนาก็ตาม ซอฟต์แวร์อุปกรณ์ใช้รูปแบบอื่นในการจัดการบล็อกที่เสีย โดยไม่ต้องการลบเครื่องหมายจากโรงงาน

1.6. การจัดการบล็อกไม่ดี

นักพัฒนา นาโนวงจรไมโครเสนอให้ใช้แผนการควบคุมบล็อกเสียต่อไปนี้:

  • ผ่านบล็อกที่ไม่ดี
  • การใช้งาน สำรองภูมิภาค

นอกจากนี้ บางครั้งวิธีการจัดการบล็อกเสียก็อาจรวมถึงการใช้ด้วย แก้ไขข้อผิดพลาด(อีซีซี) ควรสังเกตว่าการใช้การแก้ไขข้อผิดพลาดเพียงครั้งเดียวไม่ได้กำจัดข้อผิดพลาดหลายรายการและยังคงบังคับให้คุณใช้รูปแบบใดรูปแบบหนึ่งข้างต้น นอกเหนือจากนี้คนส่วนใหญ่ นาโนชิปมีพื้นที่ที่รับประกันว่าปราศจากข้อผิดพลาดซึ่งจะไม่แสดงบล็อกที่เสียหาย โดยทั่วไปบริเวณที่ปราศจากความล้มเหลวจะอยู่ที่จุดเริ่มต้นของชิป

วิธีการจัดการบล็อกเสียเหล่านี้มีการอธิบายไว้อย่างดี เอกสารทางเทคนิคผู้ผลิต นาโนและมีการพูดคุยกันอย่างกว้างขวางในวรรณกรรมเกี่ยวกับการใช้งาน นาโน- อย่างไรก็ตาม ขอให้เราระลึกถึงสาระสำคัญของพวกเขาโดยย่อ:

ข้ามบล็อกที่ไม่ดี:
หากบล็อกปัจจุบันเกิดข้อผิดพลาด บล็อกนั้นจะถูกข้ามและข้อมูลจะถูกเขียนไปยังบล็อกว่างถัดไป โครงการนี้เป็นแบบสากล ใช้งานง่าย แต่ค่อนข้างมีปัญหาในกรณีที่บล็อกเสียปรากฏขึ้นระหว่างการดำเนินการ สำหรับ งานเต็มเปี่ยมในรูปแบบนี้ หมายเลขบล็อกแบบลอจิคัลจะต้องถูกจัดเก็บไว้ภายในบล็อก (อันที่จริงมาตรฐานของ Samsung สำหรับการกำหนดพื้นที่ว่างจะถือว่าเป็นไปตามนี้) เมื่อทำงานตามโครงร่างนี้ตัวควบคุมจะต้องจัดเก็บตารางการติดต่อระหว่างหมายเลขลอจิคัลของบล็อกและ ตัวเลขทางกายภาพมิฉะนั้น การเข้าถึงหน่วยความจำจะช้าลงอย่างมาก

ดังนั้นการพัฒนาเชิงตรรกะจึงเป็นแบบแผน การใช้พื้นที่สำรอง:
ตามวิธีนี้ จำนวนหน่วยความจำทั้งหมดจะถูกแบ่งออกเป็นสองส่วน: หลักและสำรอง เมื่อบล็อกที่เสียหายปรากฏขึ้นในหน่วยความจำหลัก บล็อกนั้นจะถูกแทนที่ด้วยบล็อกจากหน่วยความจำสำรอง และรายการที่สอดคล้องกันจะถูกสร้างขึ้นในตารางการกำหนดบล็อกใหม่ ตารางการมอบหมายใหม่จะถูกจัดเก็บไว้ในบล็อกป้องกันข้อผิดพลาดที่รับประกันหรือในสำเนาหลายชุด รูปแบบตารางจะแตกต่างกันโดยจะจัดเก็บไว้ สถานที่ที่แตกต่างกัน- อีกครั้งที่ Samsung อธิบายมาตรฐานสำหรับรูปแบบและเค้าโครงของตาราง แต่มีเพียงไม่กี่คนที่ปฏิบัติตาม

2. การปฏิบัติ

2.1. กำลังสแกนบล็อกชิป NAND ที่เสียหาย

โปรแกรมเมอร์ ชิปสตาร์ช่วยให้คุณสแกนไมโครวงจรได้อย่างรวดเร็ว นาโนสำหรับการมีอยู่ของบล็อกที่ไม่ดีตามเครื่องหมายโรงงานของบล็อกที่ไม่ดี

เลือกรายการเมนู " Chip|มองหาบล็อกที่ไม่ดี " ชิปจะถูกตรวจสอบหาบล็อกที่เสีย ผลลัพธ์จะแสดงในรูปแบบตาราง

การดำเนินการนี้จะต้องดำเนินการเฉพาะในกรณีที่คุณต้องการดูรายการบล็อกที่เสียเท่านั้น ในกรณีอื่นๆ ทั้งหมด การค้นหาบล็อกที่เสียจะดำเนินการโดยอัตโนมัติเมื่อจำเป็น

2.2. บล็อกที่ไม่ถูกต้องในภาพ NAND

เมื่ออ่านรูปภาพของชิป NAND โปรแกรมเมอร์จะจัดเก็บข้อมูลเพิ่มเติมเกี่ยวกับหน้าและขนาดบล็อกของชิป ข้อมูลจะถูกบันทึกไว้ใน แยกไฟล์- ดังนั้นหากคุณนับและบันทึกภาพชิปลงในไฟล์ <имя_файла>.nbin โปรแกรมจะสร้างไฟล์ใหม่ขึ้นมา: <имя_файла>.cfs - เมื่อเปิดไฟล์ <имя_файла>.nbin ไฟล์ <имя_файла>.cfs จะได้อ่านเหมือนกัน ในไฟล์ <имя_файла>.cfs ข้อมูลเกี่ยวกับหน้าและขนาดบล็อกของชิปจะถูกบันทึก หลังจากอ่านชิปหรือเปิดไฟล์เช่น .nbin จะมีการสแกนพื้นหลังของรูปภาพเพื่อดูว่ามีบล็อกที่เสียหรือไม่ โดยพิจารณาจากข้อมูลเกี่ยวกับหน้าและขนาดบล็อก

ตัวเลือก นาโนและข้อมูลเกี่ยวกับบล็อกเสียสามารถพบได้ใน "แท็บ" นาโน“บรรณาธิการโปรแกรมเมอร์:

ภาพไบนารี นาโนสามารถดูได้ใน "แท็บ" หน่วยความจำหลัก ":

ในโหมดแก้ไข นาโนมีการจัดสรรพื้นที่ว่างของหน้า สีหมองคล้ำ, ปุ่มสำหรับเลื่อนดูหน้า, บล็อก และ การเปลี่ยนแปลงอย่างรวดเร็วไปจนถึงจุดเริ่มต้นของพื้นที่ว่าง หน้าปัจจุบัน- นอกจากที่อยู่เคอร์เซอร์แล้ว บรรทัดสถานะตัวแก้ไขยังแสดงเพิ่มเติมอีกด้วย เลขหน้าและ หมายเลขบล็อกตำแหน่งเคอร์เซอร์อยู่ ทั้งหมดนี้ช่วยให้คุณดูเนื้อหาของไมโครเซอร์กิตได้สะดวกยิ่งขึ้น

2.3.การลบ NAND

โปรแกรมเมอร์เริ่มต้น ไม่ลบบล็อกที่ไม่ดี แต่ถ้าคุณปิดการใช้งานตัวเลือก " การตรวจสอบและการข้ามบล็อกที่ไม่ดี " บล็อกที่ไม่ดีอาจถูกลบออก และเครื่องหมายบล็อกที่ไม่ดีอาจสูญหาย ปิดใช้งานตัวเลือกนี้เฉพาะในกรณีที่จำเป็นเท่านั้น

เฉพาะบล็อกเสียที่ทำเครื่องหมายตามเครื่องหมายโรงงานเท่านั้นที่จะถูกข้ามไป หากอุปกรณ์ใช้เครื่องหมายอื่นสำหรับบล็อกที่ไม่ดี บล็อกเหล่านั้นจะถูกลบเนื่องจากซอฟต์แวร์โปรแกรมเมอร์จะไม่เห็นบล็อกเหล่านั้น ในการทำงานกับบล็อกที่ไม่ดีที่ไม่ได้มาตรฐานโปรแกรมเมอร์สามารถใช้ปลั๊กอินภายนอกได้

2.4. ทดสอบไมโครวงจรว่าขาดการบันทึก

ตามค่าเริ่มต้น โปรแกรมเมอร์จะละเว้นบล็อกที่เสียทั้งหมดเมื่อทำการตรวจสอบ แต่ถ้าคุณปิดการใช้งานตัวเลือก " สแกนและข้ามบล็อกที่ไม่ดี "บล็อกที่เสียหายจะได้รับการทดสอบ ซึ่งจะนำไปสู่ข้อผิดพลาดในการทดสอบโดยธรรมชาติ

2.5. การเขียนภาพที่เสร็จแล้วไปยังชิป

การเผาไหม้ภาพ นาโนในไมโครเซอร์กิตนั้นแตกต่างจากวงจรทั่วไปเล็กน้อย แฟลชไมโครวงจร ก่อนอื่นพวกเขาจะต้องตรงกัน ขนาดหน้าภาพและชิปเป้าหมาย หากใช้การควบคุม บล็อกที่เสียจะต้องตรงกัน ขนาดบล็อกภาพและไมโครวงจร

ซอฟต์แวร์สำหรับโปรแกรมเมอร์ทุกคน ชิปสตาร์รองรับ สามวิธีในการจัดการบล็อกที่ไม่ดีเครื่องมือในตัวและไม่จำกัดจำนวนโดยใช้ปลั๊กอิน นอกจากนี้ คุณยังสามารถกำหนดจำนวนบล็อกที่เขียนได้ที่จุดเริ่มต้นของชิป ซึ่งจริงๆ แล้วคือ ที่สี่วิธีการจัดการบล็อกที่ไม่ดี

วิธีที่ 1: ละเว้นบล็อกที่ไม่ดี

การคัดลอกอย่างง่าย ๆ โดยไม่สนใจบล็อกที่ไม่ดี (บล็อกที่ไม่ดีจะถูกเขียนในลักษณะเดียวกับบล็อกปกติ)

ภาพต้นฉบับ ชิป
(สถานะเริ่มต้น)
ชิป
(ผลลัพธ์)
บล็อก 0
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 0
ดี
บล็อก 1
แย่
ปิดกั้น
ทำความสะอาด
บล็อก 1
เท็จ
บล็อก 2
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 2
ดี
บล็อก 3
ดี
ปิดกั้น
แย่
บล็อก 3
ผิดพลาด
บล็อก 4
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 4
ดี
บันทึกขอบเขต
บล็อก 5
ดี
ปิดกั้น
ทำความสะอาด
ปิดกั้น
ทำความสะอาด

เหมาะที่สุด สำหรับการคัดลอกชิป NANDโดยไม่ต้องเจาะลึกมัน โครงสร้างภายใน, โดยมีเงื่อนไขว่าชิปที่กำลังเขียนอยู่ ไม่มีบล็อกที่ไม่ดี - หากอยู่ในภาพต้นฉบับ มีบล็อกที่ไม่ดี ในที่สุดก็เป็นรูปเป็นร่าง บล็อกที่ไม่ดีที่เป็นเท็จ - การปรากฏตัวของบล็อกที่ไม่ดีที่ผิดพลาดจะไม่ส่งผลกระทบต่อการทำงานของอุปกรณ์ อย่างไรก็ตาม หากชิปมีบล็อกที่เสียอยู่แล้ว เมื่อคุณพยายามเขียนไปยังชิปดังกล่าว บล็อกที่ไม่ดีพร้อมผลที่ตามมาอย่างคาดเดาไม่ได้ เคล็ดลับ: คุณสามารถลองลบชิปทั้งหมด รวมถึงบล็อกที่เสียด้วย จากนั้นจึงคัดลอกมัน หากการเขียนไปยังบล็อกที่ไม่ดีเสร็จสมบูรณ์ (ซึ่งมักเกิดขึ้น) อุปกรณ์ของคุณจะทำงานได้อย่างถูกต้อง ในอนาคต ซอฟต์แวร์ของอุปกรณ์จะระบุบล็อกที่ไม่ดีและแทนที่ด้วยบล็อกที่ดีตามอัลกอริทึมการทำงาน

วิธีที่ 2: บายพาสบล็อกที่ไม่ดี

ภาพต้นฉบับ ชิป
(สถานะเริ่มต้น)
ชิป
(ผลลัพธ์)
บล็อก 0
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 0
ดี
บล็อก 1
แย่
ปิดกั้น
ทำความสะอาด
ปิดกั้น
ทำความสะอาด
บล็อก 2
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 2
ดี
บล็อก 3
ดี
ปิดกั้น
แย่
ปิดกั้น
แย่
บล็อก 4
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 4
ดี
บันทึกขอบเขต
บล็อก 5
ดี
ปิดกั้น
ทำความสะอาด
ปิดกั้น
ทำความสะอาด

เมื่อข้ามบล็อกที่ไม่ดี บล็อกที่ไม่ดีจะไม่ถูกบันทึกจาก ภาพต้นฉบับ และ ข้อมูลไม่ได้ถูกเขียนไปยังบล็อกชิปที่ไม่ดี- นี่ไม่ใช่นโยบายการคัดลอกที่ดีที่สุด แต่ปลอดภัยจากบล็อคชิปที่ไม่ดี: ไม่มีข้อมูลสูญหายเกี่ยวกับบล็อกชิปที่ไม่ดีและ บล็อกที่ไม่ดีที่เป็นเท็จจะไม่ปรากฏขึ้น- ในบางกรณี นโยบายการคัดลอกดังกล่าวสามารถช่วยคืนค่าการทำงานของอุปกรณ์ที่ไม่รู้จักได้

วิธีที่ 3: ข้ามบล็อกที่ไม่ดี

ภาพต้นฉบับ ชิป
(สถานะเริ่มต้น)
ชิป
(ผลลัพธ์)
บล็อก 0
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 0
ดี
บล็อก 1
แย่

ปิดกั้น
ทำความสะอาด
บล็อก 2
ดี
บล็อก 2
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 3
ดี
บล็อก 3
ดี
ปิดกั้น
แย่
ปิดกั้น
แย่
บล็อก 4
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 4
ดี
บันทึกขอบเขต
บล็อก 5
ดี
ปิดกั้น
ทำความสะอาด
ปิดกั้น
ทำความสะอาด

เขียนโดยการข้ามบล็อกที่ไม่ดีถือว่าอุปกรณ์ใช้อัลกอริธึมนี้เพื่อจัดการบล็อกเสีย ไม่ใช่อย่างอื่น ภายใต้เงื่อนไขเหล่านี้ รับประกันการคัดลอกข้อมูลที่ถูกต้อง

วิธีที่ 4: เขียนเฉพาะพื้นที่ที่ปราศจากความล้มเหลวที่รับประกัน

ภาพต้นฉบับ ชิป
(สถานะเริ่มต้น)
ชิป
(ผลลัพธ์)
บล็อก 0
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 0
ดี
บล็อก 2
ดี
ปิดกั้น
ทำความสะอาด
บล็อก 1
ดี
บันทึกขอบเขต
ปิดกั้น
แย่
ปิดกั้น
ทำความสะอาด
ปิดกั้น
ทำความสะอาด
บล็อก 3
ดี
ปิดกั้น
แย่
ปิดกั้น
แย่
บล็อก 4
ดี
ปิดกั้น
ทำความสะอาด
ปิดกั้น
ทำความสะอาด
บล็อก 5
ดี

ปิดกั้น
ทำความสะอาด

ปิดกั้น
ทำความสะอาด

ที่ทันสมัยที่สุด นาโนไมโครวงจร บล็อกแรก (อย่างน้อยหนึ่งบล็อก) รับประกันว่าไม่มีข้อผิดพลาด ในอุปกรณ์จำนวนมาก รหัส bootloader จะอยู่ที่จุดเริ่มต้นของชิปและ ระบบปฏิบัติการอุปกรณ์ การคัดลอกเฉพาะพื้นที่เหล่านี้ก็มักจะเพียงพอแล้ว

ในกล่องโต้ตอบการตั้งค่าโหมดบันทึก ให้ระบุขนาดการบันทึกเป็นบล็อก

วิธีอื่นในการจัดการบล็อกเสีย

ซอฟต์แวร์ โปรแกรมเมอร์ชิปสตาร์รองรับอัลกอริธึมการจัดการบล็อกที่ไม่ดี นาโนโดยใช้ปลั๊กอินภายนอก ต่อหน้าของ ปลั๊กอินที่ติดตั้งคำอธิบาย วิธีการเพิ่มเติมปรากฏในรายการ" การจัดการบล็อก NAND ที่ไม่ดี " คุณสามารถกำหนดค่าพารามิเตอร์ของวิธีการที่เลือกได้โดยคลิกปุ่ม " ปลั๊กอินภายนอก ".

การใช้รหัสแก้ไขข้อผิดพลาด (ECC)

ช่วยให้สามารถใช้รหัสแก้ไขข้อผิดพลาดได้ กู้คืนข้อผิดพลาดเดียวในหน้า NAND

สามารถใช้อัลกอริธึมต่างๆ เพื่อกู้คืนข้อผิดพลาดเดี่ยวๆ ในภาคส่วนได้ ขึ้นอยู่กับอัลกอริธึม อีซีซี,สามารถกู้คืนได้ ปริมาณที่แตกต่างกันข้อผิดพลาดต่อเซกเตอร์ (512+16 ไบต์) ภายใต้คำว่า " เดี่ยว “เป็นที่เข้าใจแล้ว ข้อผิดพลาดเพียงบิตเดียวข้อมูล. สำหรับ NAND ที่มีขนาดหน้า 512+16 ไบต์ แนวคิด " ภาค" และ " หน้าหนังสือ" จับคู่. สำหรับ NAND ด้วย ขนาดใหญ่โปรแกรมเมอร์เพจ ChipStar ใช้โครงร่างเพจเป็นส่วนต่างๆ ตามที่อธิบายไว้ ในการตั้งค่าการบันทึกหรือการตรวจสอบ คุณสามารถระบุจำนวนข้อผิดพลาดต่อเซกเตอร์ที่อัลกอริทึมที่ใช้ในอุปกรณ์ของคุณสามารถแก้ไขได้ ดังนั้นไมโครวงจรที่มีจำนวนข้อผิดพลาดที่ยอมรับได้จะไม่ถูกปฏิเสธ ข้อมูลเกี่ยวกับจำนวนข้อผิดพลาดที่แก้ไขได้จะแสดงในหน้าต่างสถิติ:

ข้อมูลเกี่ยวกับจำนวนข้อผิดพลาดที่อนุญาตต่อเซกเตอร์สำหรับชิปแต่ละตัวสามารถพบได้ใน เอกสารประกอบต่อชิป ชิป NAND ที่เพิ่มใหม่ทั้งหมดจะถูกป้อนลงในฐานข้อมูลโปรแกรมเมอร์ โดยคำนึงถึงจำนวนข้อผิดพลาดที่อนุญาต

เมื่อเพิ่มอย่างอิสระไมโครวงจร:

  • ถ้า รองรับ ONFIจากนั้นจำนวนข้อผิดพลาดที่อนุญาตต่อเซกเตอร์ อ่านจากตารางพารามิเตอร์ไมโครวงจรและ ได้รับการติดตั้งแล้วให้ได้ค่าที่ต้องการ
  • ถ้าเป็นไมโครเซอร์กิต ไม่รองรับ ONFI, ผู้ใช้ ต้องกำหนดมูลค่าเองโดยใช้เอกสารประกอบสำหรับชิป

สำหรับไมโครวงจรใหม่ นาโนการผลิต ซัมซุงค่าของจำนวนข้อผิดพลาดที่อนุญาตต่อเซกเตอร์จะถูกเข้ารหัสเป็นส่วนหนึ่งของตัวระบุชิป ดังนั้นสำหรับวงจรขนาดเล็กดังกล่าว จำนวนข้อผิดพลาดที่อนุญาตต่อเซกเตอร์จะถูกตั้งค่าอย่างถูกต้องด้วย

เมื่ออ่านเนื้อหาของไมโครวงจรเพื่อวัตถุประสงค์ในการบันทึกหรือคัดลอกเพิ่มเติม ไม่สามารถตรวจพบข้อผิดพลาดเดียวได้อย่างน่าเชื่อถือ- จากนั้นภาพที่ได้จะถูกวิเคราะห์เพื่อหาข้อผิดพลาดแยกกันโดยการคำนวณรหัสตรวจสอบ ECC แอปพลิเคชันภายนอกโดยมีเงื่อนไขว่าเป็นเช่นนั้น ทราบอัลกอริทึมที่ใช้และเค้าโครงหน้า .

ซอฟต์แวร์โปรแกรมเมอร์ ChipStar ให้บริการทางอ้อม วิธีการทางสถิติการระบุและกำจัดข้อผิดพลาดเดียว วิธีการนี้อนุญาตให้ระบุได้เท่านั้น ไม่เสถียรข้อผิดพลาดด้วย ไม่รับประกันความน่าเชื่อถือ หากต้องการอ่านด้วยการตรวจจับข้อผิดพลาด คุณต้องเลือก " การอ่านแบบเลือกสรร" และบนแท็บ "NAND" ให้ทำเครื่องหมายในช่อง " เปิดใช้งานโหมดแก้ไขข้อผิดพลาด"

คุณสามารถกำหนดค่าจำนวนการลองอ่านซ้ำเพื่อเปรียบเทียบ และจำนวนการลองอ่านทั้งหมดเมื่อเกิดข้อผิดพลาดได้ ก็ควรที่จะจำไว้ว่าการใช้ วิธีนี้สิ่งมีชีวิตทำให้กระบวนการอ่านช้าลง

อัลกอริธึมการตรวจจับข้อผิดพลาดทางสถิติทำงานดังนี้:

  1. หน้า NAND ถูกอ่านหลายครั้งติดต่อกัน (อย่างน้อยสามครั้ง)
  2. ข้อมูลการอ่านจะถูกเปรียบเทียบแบบไบต์ต่อไบต์
  3. หากตรวจไม่พบข้อผิดพลาดในการเปรียบเทียบ หน้านั้นจะถือว่าไม่มีข้อผิดพลาด
  4. หากตรวจพบข้อผิดพลาดระหว่างการเปรียบเทียบ หน้านั้นจะถูกอ่านหลายครั้ง
  5. สำหรับข้อผิดพลาดแต่ละข้อ ระบบจะนับจำนวนการอ่าน หน่วยและ ศูนย์.
  6. ค่าที่ถูกต้อง (“0” หรือ “1”) ถือเป็นค่าที่มีค่ามากกว่านั้น

อัลกอริธึมทำงานได้ดีหากความน่าจะเป็นของข้อผิดพลาดในบิตเฉพาะของไมโครวงจรคือน้อยกว่า 0.5 เมื่ออ่านวงจรไมโครจะนับข้อผิดพลาด "แก้ไข" และความน่าจะเป็นของการอ่านที่ถูกต้อง

2.6. การแปลงภาพไบนารีเป็นภาพ NAND

ทุกสิ่งที่อธิบายไว้ข้างต้นเกี่ยวกับการคัดลอกมากกว่า นาโนและการบันทึกตามโมเดลไมโครเซอร์กิต แต่มักจำเป็น เขียนอิมเมจไบนารีดั้งเดิมของโปรแกรมลงในชิปเปล่า- ก่อนที่จะเขียน คุณต้องแปลงอิมเมจไบนารีเป็นอิมเมจ NAND โดยการเพิ่มลงในแต่ละหน้า พื้นที่ว่างและกรอกให้ถูกต้อง เมื่อต้องการทำเช่นนี้ ให้เปิดไฟล์ ไฟล์ไบนารีให้เลือกรายการเมนู " " กล่องโต้ตอบจะปรากฏขึ้น:

ตั้งค่าโหมดการแปลง NAND: " ภาพไบนารี... "ระบุหน้าและขนาดบล็อก NAND หรือเลือกชิปที่ต้องการ เลือกรูปแบบพื้นที่ว่าง โปรแกรมเมอร์รองรับการเติมพื้นที่อย่างง่ายด้วยค่า FF ด้วยเครื่องมือในตัวและวิธีการอื่นๆ โดยใช้ปลั๊กอิน A ปลั๊กอินมาพร้อมกับโปรแกรมเมอร์ที่ใช้การกำหนดพื้นที่สำรองที่แนะนำโดย Samsung

หากจำเป็นต้องดำเนินการใดๆ ตัวเลือกการกระจายที่แตกต่างกัน - แจ้งให้เราทราบ แล้วเราจะเตรียมปลั๊กอินที่เหมาะสม หรือคุณสามารถใช้ปลั๊กอินที่จำเป็นด้วยตนเอง

2.7. เข้ากันได้กับภาพ NAND ที่อ่านโดยโปรแกรมเมอร์อื่น

ถ้าคุณมี ภาพ NANDอ่านโดยโปรแกรมเมอร์อื่นหรือได้รับจากแหล่งอื่นก็ต้องเป็น แปลงให้อยู่ในรูปแบบที่เหมาะสมสำหรับการบันทึก โปรแกรมเมอร์ชิปสตาร์.

โดยทำตามขั้นตอนเหล่านี้:

  • เปิดไฟล์ของคุณเลือกรายการเมนู " แก้ไข|สลับโหมดตัวแก้ไข NAND " กล่องโต้ตอบจะปรากฏขึ้นดังที่แสดงด้านบน
  • ตั้งค่าโหมดการแปลงเป็นรูปแบบ นาโน: "ภาพเป็นแบบ NAND อยู่แล้ว... ", ระบุ ขนาดหน้าและ ปิดกั้น นาโนหรือเลือกชิปที่ต้องการ คลิก " ดำเนินการต่อ".
  • แท็บจะปรากฏในตัวแก้ไข " นาโน " และรูปภาพจะเริ่มสแกนหาบล็อกที่เสีย
  • ไฟล์ผลลัพธ์สามารถบันทึกในรูปแบบได้ นาโนไฟล์จะได้รับนามสกุล .nbin ค่าเริ่มต้น.

สวัสดีทุกคน! เมื่อวันก่อนฉันได้พบกับเพื่อนเก่าของฉัน เราต้องคุยกัน และเขาก็พูดว่า "ดูโทรศัพท์ที่ฉันกำลังเดินไปรอบๆ สิ!" โชว์ความเก๋าของเขา ปุ่มกดโนเกีย- ปรากฎว่าเฟิร์มแวร์บน iPhone ของเขาขัดข้องอยู่ตลอดเวลา - เขาต้องมอบสมาร์ทโฟนให้ ศูนย์บริการ- มันก็จะดูเหมือนเป็นเรื่องธรรมดา...

อย่างไรก็ตามรายการงานที่บริการจะดำเนินการกลายเป็นเรื่องผิดปกติสำหรับเพื่อนของฉัน การวินิจฉัยเต็มรูปแบบการอัปเดตซอฟต์แวร์ (หากจำเป็น) และ "สิ่งธรรมดา" อื่น ๆ - ทุกอย่างเป็นมาตรฐานและชัดเจนที่นี่ วลีนี้มาจากอาจารย์ถามคำถามหลัก -“ เป็นไปได้มากว่าคุณต้องม้วนตัว แนนแฟลช».

แน่นอนว่าฉันไม่ได้แสดงในบริการว่าฉันไม่เข้าใจสิ่งที่พวกเขากำลังพูดถึง - พวกเขาบอกว่าฉันรู้ทุกอย่างแล้วหากไม่มีคุณ สิ่งสำคัญคือการทำมัน แต่ฉันกลับมาถึงบ้านแล้วเข้า Google ทันที - นี่คืออะไร Nand Flash? ทำไมต้องกลิ้งมันไปที่ไหนสักแห่งใน iPhone?

เราหัวเราะไปกับเขาแยกทางกันและฉันคิดว่า - ทำไมไม่เขียนข้อความสั้น ๆ ในหัวข้อนี้ล่ะ? ใช้เวลาไม่นาน และสำหรับผู้ที่ประสบปัญหาเดียวกับเพื่อนของฉัน ก็จะชัดเจนขึ้นเล็กน้อยว่าเกิดอะไรขึ้นกับสมาร์ทโฟนของพวกเขา ฉันคิดว่า - ฉันทำไปแล้ว ไป!:)

Nand Flash ใน iPhone คืออะไร

นี้ หน่วยความจำภายในอุปกรณ์ ใช่ใช่สิ่งเดียวกันที่ขาดหายไปบ่อยมาก เจ้าของไอโฟนที่ 16GB

พูดคร่าวๆ แล้ว Nand Flash ใน iPhone 7 32 GB เท่ากับหน่วยความจำภายใน 32 GB

หน่วยความจำอยู่ที่หลัก บอร์ดระบบอุปกรณ์และไม่โดดเด่น แต่อย่างใด - ชิปที่ธรรมดาที่สุด

โดยธรรมชาติแล้วนี่ไม่ใช่แฟลชไดรฟ์เลย - คุณไม่สามารถแยกชิ้นส่วน iPhone, ถอด Nand Flash ออกได้อย่างง่ายดาย, ติดตั้งอีกอันหนึ่งแล้วคิดว่าทุกอย่างจะ "ตกลง" จะไม่เป็น. แม้ว่าจะเป็นที่น่าสังเกตว่าในบางกรณีก็ยังเป็นไปได้ แต่เพิ่มเติมอีกเล็กน้อย ในระหว่างนี้เรามาดูปัญหากันดีกว่า...

สาเหตุของการทำงานผิดพลาด

มีตัวเลือกไม่มากนักและโดยปกติแล้วทั้งหมดจะเป็น "มาตรฐาน":

  1. อุปกรณ์ตก
  2. ความเสียหายทางกายภาพอื่นๆ
  3. ของเหลวเข้า
  4. การแต่งงาน.
  5. การเจลเบรค

ไม่มีอะไรพิเศษที่จะอธิบายที่นี่ - เป็นที่ชัดเจนว่าหากอุปกรณ์ถูกโยนและเติมน้ำสิ่งนี้จะส่งผลต่อประสิทธิภาพการทำงานของอุปกรณ์

แม้ว่าฉันจะยังคงสังเกตจุดที่เป็นข้อบกพร่องจากการผลิตแยกกัน แต่ก็เป็นไปได้มากเช่นกัน ฉันเห็นสถานการณ์ที่คล้ายกัน - ฉันเพิ่งซื้อ iPhone แต่มันใช้งานไม่ได้จริงๆ - มันรีบูตแสดงข้อผิดพลาดเมื่อกู้คืน และโดยทั่วไปจะมีพฤติกรรมแปลก ๆ ส่งไปรับบริการส่งผลให้ - Nand มีข้อบกพร่อง หน่วยความจำแฟลชและการเปลี่ยนอุปกรณ์ในภายหลัง

อาการของความล้มเหลวของหน่วยความจำแฟลชของ iPhone

ความผิดปกตินี้ไม่มีอาการที่ชัดเจนและเฉพาะเจาะจง (ข้อความไม่ปรากฏขึ้นบนหน้าจอ - อุปกรณ์ของคุณมีปัญหาเกี่ยวกับหน่วยความจำ) ดังนั้นทั้งหมดนี้สามารถเดาได้ด้วยสัญญาณทางอ้อมเท่านั้น:


พูดถึงข้อผิดพลาด...

ข้อผิดพลาดของ iTunes บ่งชี้ถึงความล้มเหลวของ Nand Flash

ที่สุด ทางที่ถูกต่อสู้กับปัญหาต่าง ๆ ที่เกิดขึ้นกับอุปกรณ์ อย่างไรก็ตาม หาก iPhone มีปัญหากับหน่วยความจำ Nand Flash กระบวนการกู้คืนอาจถูกขัดจังหวะและมาพร้อมกับข้อผิดพลาดลักษณะดังต่อไปนี้:


แต่สิ่งสำคัญคือต้องจำไว้ - iTunes ได้รับการออกแบบในลักษณะที่หมายเลขข้อผิดพลาดเดียวกันอาจมีสาเหตุหลายประการ

ตัวอย่างเช่น ข้อผิดพลาด 4013 สามารถส่งสัญญาณทั้งปัญหากับตัวชิปเองและการใช้สายเชื่อมต่อกับพีซีที่ไม่ใช่ของแท้

อย่างที่คุณเห็นการแพร่กระจายมีขนาดใหญ่มากตั้งแต่ลวดธรรมดาไปจนถึงการซ่อมแซมที่ซับซ้อนมาก ดังนั้น คุณสามารถใช้รายการข้อผิดพลาดนี้เพื่อวิเคราะห์สถานการณ์เบื้องต้นได้ แต่คุณไม่สามารถเชื่อถือข้อผิดพลาดเหล่านี้ได้โดยสุ่มสี่สุ่มห้า

การซ่อมแซมหน่วยความจำ Nand Flash - เป็นไปได้หรือไม่?

อาจจะ. แต่แน่นอนว่าไม่ใช่ "ที่บ้าน" นอกจากนี้ศูนย์บริการบางแห่งไม่สามารถดำเนินการนี้ได้ ตัวอย่างเช่น "ในเต็นท์ที่ตลาด" พวกเขามักจะไม่สามารถช่วยคุณได้ - จะไม่มีอุปกรณ์ที่จำเป็นอยู่ที่นั่น และจะต้องมีทักษะบางอย่าง

ฉันจะแยกหมายเหตุอีกครั้ง - หาก iPhone ของคุณยังไม่หมด ระยะเวลาการรับประกัน() ก็ไม่จำเป็นต้องประดิษฐ์อะไรเลย - . มีความเป็นไปได้สูงที่คุณจะได้รับอุปกรณ์ใหม่เป็นการตอบแทน

หากการรับประกันเป็น "ความล้มเหลว" แต่ยังจำเป็นต้องซ่อมแซมหน่วยความจำแฟลช Nand ศูนย์บริการมีสองทางเลือกในการแก้ไขสถานการณ์:


อย่างไรก็ตามถ้าเราพูดถึงอุปกรณ์สำหรับเฟิร์มแวร์ Nand Flash โปรแกรมเมอร์ดังกล่าวก็ค่อนข้างหลากหลาย แต่สิ่งหนึ่งที่ยังคงรวมเข้าด้วยกัน - ราคา พวกเขาทั้งหมดยืน เงินที่เหมาะสม- ไม่ใช่ทุกคนที่สามารถจ่ายสิ่งนี้ได้

ข้อสรุปอะไรที่สามารถสรุปได้จากทั้งหมดนี้? มีปัญหากับ หน่วยความจำไอโฟน- นี่เป็นอาการเสียที่ค่อนข้างร้ายแรงซึ่งแก้ไขได้ยากมากด้วยตัวเอง แต่สถานการณ์ไม่สามารถเรียกได้ว่าสิ้นหวัง สิ่งสำคัญคือการหาศูนย์บริการที่ดีกับผู้เชี่ยวชาญที่มีความสามารถและ อุปกรณ์ที่จำเป็น- แล้ว ไอโฟนยังเขาจะทำให้คุณพอใจกับผลงานของเขาไปอีกนาน!

ป.ล. ใช่ มันไม่ได้ผลเป็นบันทึกย่อ :) อย่างไรก็ตาม มีอะไรอยู่บ้าง - อย่าลบมันตอนนี้ และข้อมูลก็มีประโยชน์ - มันจะเป็นประโยชน์กับใครบางคน คุณเห็นด้วยหรือไม่? ใส่ "ไลค์" แล้วคลิกที่ปุ่ม สังคมออนไลน์- สนับสนุนผู้เขียน! เขาพยายามอย่างจริงใจ ขอบคุณ!

ป.ล. คุณมีคำถามใดๆ? คุณมีอะไรจะเพิ่มในบทความหรือต้องการบอกเล่าเรื่องราวของคุณหรือไม่? มีความคิดเห็นเกี่ยวกับเรื่องนี้ - อย่าลังเลที่จะเขียน!

สำหรับ งานที่ประสบความสำเร็จด้วยไมโครวงจร แฟลช NAND(nand flash) คุณต้องการอย่างน้อย:

    มีแนวคิดเกี่ยวกับโครงสร้างของ NAND FLASH (nand flash) วิธีการที่มีอยู่และอัลกอริธึมสำหรับการใช้ข้อมูลที่เก็บไว้ในหน่วยความจำดังกล่าว

    มีโปรแกรมเมอร์ที่รองรับการทำงานกับหน่วยความจำ NAND Flash อย่างถูกต้อง เช่น ให้คุณเลือกและใช้พารามิเตอร์ที่จำเป็นและอัลกอริธึมการประมวลผล

โปรแกรมเมอร์ NAND FLASH จะต้องเร็วมาก- การเขียนโปรแกรมหรืออ่านไมโครวงจรที่มีปริมาตรหลาย Gbits บนโปรแกรมเมอร์ทั่วไปใช้เวลาหลายชั่วโมง แน่นอนว่าสำหรับการเขียนโปรแกรม NAND Flash เป็นประจำไม่มากก็น้อยคุณต้องมีโปรแกรมเมอร์แบบเร็วเฉพาะทางที่ปรับให้ทำงานกับ MS ได้ ความหนาแน่นสูง- ปัจจุบันโปรแกรมเมอร์ Flash NAND ที่เร็วที่สุดคือ ChipProg-481

การเขียนโปรแกรม NAND FLASH บนโปรแกรมเมอร์ ChipProg

เมื่อทำงานกับ NAND Flash โปรแกรมเมอร์จะมีตัวเลือกมากมายสำหรับการเลือก/กำหนดค่าวิธีการเขียนโปรแกรมและพารามิเตอร์ พารามิเตอร์ทั้งหมดที่ส่งผลต่ออัลกอริธึมการทำงานของโปรแกรมเมอร์ที่มีไมโครวงจรจะแสดงในหน้าต่าง "ตัวแก้ไขพารามิเตอร์ไมโครวงจรและอัลกอริทึมการเขียนโปรแกรม" หากจำเป็น พารามิเตอร์ใดๆ เหล่านี้สามารถเปลี่ยนแปลงได้เพื่อให้การดำเนินการที่เลือก (การเขียนโปรแกรม การเปรียบเทียบ การอ่าน การลบ) ดำเนินการตามอัลกอริทึม ให้กับผู้ใช้ที่ต้องการโปรแกรมเมอร์

หน้าต่าง "ตัวแก้ไขพารามิเตอร์ชิปและอัลกอริธึมการเขียนโปรแกรม" ในอินเทอร์เฟซของโปรแกรมเมอร์เมื่อเขียนโปรแกรม NAND Flash

พารามิเตอร์ที่ปรับแต่งได้จำนวนมากที่สร้างอัลกอริทึมการทำงาน โปรแกรมเมอร์ NAND Flash ขับเคลื่อนด้วยความปรารถนาที่จะจัดหา เครื่องมือสากลช่วยให้ผู้ใช้สามารถตระหนักถึงคุณสมบัติทั้งหมดที่มีอยู่ในโครงสร้าง NAND Flash ได้อย่างเต็มที่ เพื่อให้ชีวิตง่ายขึ้น โปรแกรมเมอร์ ChipProg-481 มีตัวเลือกต่อไปนี้เมื่อเลือกชิป NAND Flash:

  • พารามิเตอร์ทั้งหมดใช้กับค่าที่ตั้งไว้ในเซสชันการเขียนโปรแกรมก่อนหน้า (เซสชัน) ของ NAND Flash ที่เลือก (จำนวนเซสชันที่บันทึกไว้ไม่จำกัด)
  • พารามิเตอร์ทั้งหมดใช้กับค่าที่ระบุสำหรับ NAND Flash ที่กำหนดภายใน “โครงการ” (จำนวน “โครงการ” ไม่จำกัด)
  • พารามิเตอร์ทั้งหมดจะใช้ค่าที่ต้องการโดยอัตโนมัติหลังจากเรียกใช้ "สคริปต์" “สคริปต์” เขียนด้วยภาษา C-like ที่สร้างไว้ในเชลล์โปรแกรมเมอร์
  • พารามิเตอร์ทั้งหมด (หรือที่เลือก) จะใช้ค่าเริ่มต้น
  • ค่าของพารามิเตอร์ทั้งหมดพร้อมสำหรับการแก้ไข อินเตอร์เฟซแบบกราฟิกโปรแกรมเมอร์

มาดูโหมดการเขียนโปรแกรมและพารามิเตอร์ที่ใช้ในโปรแกรมเมอร์กัน

โหมดการเขียนโปรแกรม

  1. การจัดการบล็อกไม่ถูกต้อง
  2. การใช้พื้นที่สำรอง
  3. ป้องกันพื้นที่แข็ง
  4. คุณสมบัติการตรวจสอบที่ทนทาน
  5. ตัวเลือกบ่งชี้การบล็อกไม่ถูกต้อง

1. การจัดการกับบล็อกที่ไม่ดี.

ก่อนตั้งโปรแกรม NAND Flash คุณสามารถ/ควรเลือกวิธีใดวิธีหนึ่งในการทำงานกับบล็อกที่เสีย

2. การใช้พื้นที่สำรอง

ไม่ได้ใช้

พื้นที่สำรองไม่ได้ใช้ในชิป หน้าหน่วยความจำถูกตั้งโปรแกรมไว้ในไมโครวงจรโดยไม่คำนึงถึงพื้นที่สำรอง

ข้อมูลผู้ใช้

พื้นที่สำรองถูกใช้เป็น หน่วยความจำผู้ใช้- ในกรณีนี้ เมื่อตั้งโปรแกรมไมโครวงจร ข้อมูลจากบัฟเฟอร์จะถูกวางไว้ในหน้าหลักของไมโครวงจรเป็นอันดับแรก จากนั้นจึงอยู่ในพื้นที่สำรองเพิ่มเติม ในกรณีนี้บัฟเฟอร์ของโปรแกรมเมอร์จะดูเหมือนกระแสข้อมูลต่อเนื่องของหน้าหลักของชิปและพื้นที่สำรองที่เชื่อมต่ออยู่

ข้อมูลผู้ใช้ที่บังคับใช้ข้อมูล IB

พื้นที่สำรองจะถูกตีความคล้ายกับกรณีก่อนหน้านี้ ยกเว้นว่ามีการเขียนเครื่องหมายบล็อกที่ไม่ถูกต้องแทนข้อมูลผู้ใช้

3. ป้องกันพื้นที่แข็ง

โหมดการใช้งาน พื้นที่พิเศษไม่มีบล็อกที่ไม่ดี โดยทั่วไป พื้นที่ดังกล่าวจะถูกใช้เป็นบูตโหลดเดอร์ของไมโครโปรเซสเซอร์ ไม่อนุญาตให้ใช้บล็อกที่ไม่ดีในพื้นที่นี้
ตัวเลือกนี้ใช้ร่วมกับพารามิเตอร์ต่อไปนี้:

  • พื้นที่ทึบ - เริ่มบล็อก - บล็อกเริ่มต้นของพื้นที่ที่ไม่มีบล็อกเสีย
  • - จำนวนบล็อกในบริเวณนี้

หากอยู่ในขอบเขตที่กำหนด พื้นที่ทึบหากคุณพบบล็อกที่เสียหาย โปรแกรมเมอร์จะสร้างข้อผิดพลาด

4. ไม่ไวต่อข้อผิดพลาดในการเปรียบเทียบ

ตัวเลือกนี้ช่วยให้คุณเปิดใช้งานโหมดที่ไม่ไวต่อข้อผิดพลาดในการเปรียบเทียบ
โดยทั่วไป ตัวเลือกนี้เหมาะสมที่จะใช้หากอุปกรณ์ของผู้ใช้ใช้อัลกอริธึมการควบคุมและแก้ไขข้อผิดพลาด (ECC) ในกรณีเหล่านี้ จะอนุญาตให้มีข้อผิดพลาดจำนวนหนึ่งสำหรับอาร์เรย์ข้อมูลบางขนาด พารามิเตอร์เหล่านี้ระบุไว้ในพารามิเตอร์ของอัลกอริทึมการเขียนโปรแกรม NAND Flash:

  • ขนาดเฟรม ECC (ไบต์) - ขนาดของอาเรย์ข้อมูล
  • จำนวนข้อผิดพลาดที่ยอมรับได้ - จำนวนข้อผิดพลาดหนึ่งบิตที่อนุญาต

5. ตัวเลือกบ่งชี้การบล็อกไม่ถูกต้อง

ตัวเลือกนี้จะเลือกข้อมูลที่ใช้เป็นเครื่องหมายบล็อกที่ไม่ถูกต้อง คุณสามารถเลือกค่า 00h หรือ 0F0h

  • ค่าบ่งชี้ IB~00 หรือ F0

ตัวเลือกการเขียนโปรแกรม

  1. พื้นที่ผู้ใช้
  2. พื้นที่ทึบ
  3. พื้นที่อาร์บีเอ
  4. ขนาดเฟรม ECC
  5. จำนวนข้อผิดพลาดที่ยอมรับได้

ก.พื้นที่ผู้ใช้

พื้นที่ผู้ใช้คือพื้นที่ของชิปที่ขั้นตอนการเขียนโปรแกรมการอ่านและการเปรียบเทียบทำงาน
ขั้นตอนการควบคุมการลบและความสะอาดทำงานร่วมกับอาร์เรย์ชิปทั้งหมด

ผู้ใช้จำเป็นต้องตั้งค่าพารามิเตอร์ต่อไปนี้:

  • พื้นที่ผู้ใช้ - เริ่มบล็อก - บล็อกเริ่มต้นของพื้นที่ผู้ใช้
  • พื้นที่ผู้ใช้ - จำนวนบล็อก - จำนวนบล็อกในพื้นที่ผู้ใช้

ข. พื้นที่ปราศจากข้อผิดพลาด

พารามิเตอร์โหมดป้องกันพื้นที่ทึบ

  • พื้นที่ทึบ - เริ่มบล็อก - บล็อกเริ่มต้นของพื้นที่ที่ไม่มีบล็อกเสีย
  • พื้นที่ทึบ - จำนวนบล็อก - จำนวนบล็อกในบริเวณนี้

ค. พื้นที่การวางตำแหน่ง RBA

  • พื้นที่ RBA - เริ่มบล็อก - บล็อกเริ่มต้นตาราง RBA
  • พื้นที่ RBA - จำนวนบล็อก - จำนวนบล็อกในตาราง RBA

ง.ขนาดเฟรม ECC .

  • ขนาดเฟรม ECC- พารามิเตอร์ที่กำหนดขนาดของอาร์เรย์ข้อมูลที่อนุญาตให้มีข้อผิดพลาดบิตเดียว

จ. จำนวนข้อผิดพลาดที่อนุญาต.

  • จำนวนข้อผิดพลาดที่ยอมรับได้ - พารามิเตอร์กำหนดจำนวนข้อผิดพลาดหนึ่งบิตที่อนุญาตในอาร์เรย์ ขนาดที่กำหนดโดยพารามิเตอร์ขนาดเฟรม ECC

แผนที่บล็อกที่ไม่ดี

แผนที่บล็อกที่ไม่ถูกต้องถูกสร้างขึ้นในชั้นย่อยแผนที่บล็อกที่ไม่ถูกต้อง แผนที่บล็อกจะแสดงเป็นอาร์เรย์ของบิตที่อยู่ติดกัน บล็อกที่ดีจะแสดงด้วยค่า 0 บล็อกที่ไม่ดีแสดงด้วยค่า 1

ตัวอย่างเช่น ค่า 02h ที่อยู่ศูนย์บ่งชี้ว่าบล็อก 0,2,3,4,5,6,7 เป็นสิ่งที่ดี บล็อก 1 ไม่ดี ค่า 01h ที่ที่อยู่แรกระบุว่ามีเพียงบล็อกที่ 8 เท่านั้นที่ไม่ดีจากกลุ่มของบล็อก 8..15

การคัดลอก NAND แฟลช

เพื่อแสดงให้เห็นถึงความสำคัญของการเลือกโหมดและพารามิเตอร์แบบ "มองเห็น" เมื่อตั้งโปรแกรม NAND Flash ในโปรแกรมเมอร์ ให้พิจารณาสถานการณ์ที่โปรแกรมเมอร์บางคนมีปัญหา ส่วนใหญ่แล้วนี่คือการแทนที่ NAND Flash ใน "อุปกรณ์" ที่หยุดทำงาน แนวทางมาตรฐาน- โดยการเปรียบเทียบกับการเปลี่ยนชิปหน่วยความจำแบบเดิม:

  1. รับเฟิร์มแวร์ของไมโครวงจรที่ใช้งานได้ ตามกฎแล้ว เพื่อจุดประสงค์นี้ เนื้อหาจะถูกอ่านจากไมโครวงจรดั้งเดิม
  2. แฟลชไมโครวงจรที่คล้ายกันใหม่
  3. เปรียบเทียบเนื้อหาของ ms ที่ตั้งโปรแกรมไว้ ด้วยเฟิร์มแวร์ "ดั้งเดิม" หากการเปรียบเทียบผ่านไป ไมโครวงจร - สำเนาก็พร้อม

ในกรณีที่คุณต้องการตั้งโปรแกรม NAND Flash ไม่ใช่ทุกอย่างจะง่ายและไม่คลุมเครือ

  1. เฟิร์มแวร์ Nand Flash ที่ได้รับเมื่อโปรแกรมเมอร์อ่านจาก "ต้นฉบับ" ขึ้นอยู่กับโหมดและพารามิเตอร์ที่ติดตั้งในโปรแกรมเมอร์อย่างมาก
  2. เพื่อให้โปรแกรม NAND Flash ใหม่ได้อย่างถูกต้องและได้รับ สำเนาฉบับเต็มก่อนการเขียนโปรแกรมจำเป็นต้องตั้งค่าโหมดและพารามิเตอร์ในโปรแกรมเมอร์ที่สอดคล้องกับเฟิร์มแวร์ "ดั้งเดิม" ในขณะเดียวกันก็จำเป็นต้องคำนึงถึงความเป็นไปได้ของการมีอยู่ของบล็อกที่ไม่ดีด้วย

หากต้องการรับชิปคัดลอกที่มีเฟิร์มแวร์ NAND Flash เหมือนกันกับตัวอย่าง คุณต้องดำเนินการดังนี้

กำลังเตรียมการคัดลอก

ในการคัดลอก คุณต้องมีไมโครวงจรต้นฉบับและไมโครวงจรคัดลอก (ไมโครวงจรที่ควรจะเขียนรูปภาพของต้นฉบับ) ข้อกำหนดบังคับ:

  1. ทั้งชิป NAND Flash ต้นฉบับและสำเนาต้องเป็นชนิดเดียวกัน
  2. ชิปคัดลอกไม่ควรมีบล็อกที่เสียหาย

ในการตรวจสอบว่าชิปคัดลอกมีบล็อกที่ไม่ดีหรือไม่คุณต้องติดตั้งชิปในโปรแกรมเมอร์และในหน้าต่าง "ตัวแก้ไขพารามิเตอร์ชิป" ให้ตั้งค่าพารามิเตอร์ชิปเริ่มต้น - ปุ่ม "ค่าเริ่มต้นทั้งหมด"

ขั้นตอนการควบคุมการลบจะเริ่มต้นขึ้น (เพื่อประหยัดเวลา คุณสามารถยกเลิกขั้นตอนนี้ได้ทันที แผนที่ของบล็อกที่เสียจะถูกอ่านตั้งแต่เริ่มต้น) ในหน้าต่าง "การเขียนโปรแกรม" ของอินเทอร์เฟซโปรแกรมเมอร์ ข้อมูลเกี่ยวกับบล็อกที่ไม่ดีจะปรากฏในช่อง "ข้อมูลการดำเนินงาน"


กำลังคัดลอก

ก่อนที่จะคัดลอกชิป NAND Flash ไปยังโปรแกรมเมอร์ จะต้องตั้งค่าพารามิเตอร์ต่อไปนี้ในหน้าต่าง "ตัวแก้ไขพารามิเตอร์ชิป":

การจัดการบล็อก (IB) ไม่ถูกต้อง

ไม่ได้ใช้

การใช้พื้นที่สำรอง

ข้อมูลผู้ใช้

พื้นที่ผู้ใช้ – จำนวนบล็อก

มูลค่าสูงสุดของบล็อกในชิป

มีการติดตั้งตัวอย่าง NAND Flash ในโปรแกรมเมอร์และอ่าน จากนั้นจะมีการติดตั้งชิปคัดลอกในโปรแกรมเมอร์ ลบ เขียน และเปรียบเทียบ หากทั้งสามขั้นตอนเสร็จสมบูรณ์ แฟลช NAND ที่ตั้งโปรแกรมไว้จะกลายเป็นสำเนาต้นฉบับที่สมบูรณ์

โครงสร้างหน่วยความจำแฟลช NAND

หน่วยความจำแฟลช NAND * แบ่งออกเป็นบล็อกหน่วยความจำ ซึ่งจะแบ่งออกเป็นหลายหน้า หน้าสามารถมีขนาดใหญ่ (หน้าใหญ่) หรือหน้าเล็ก (หน้าเล็ก) ขนาดหน้าขึ้นอยู่กับ ขนาดโดยรวมไมโครวงจร สำหรับเพจขนาดเล็ก โดยทั่วไปชิปที่มีความจุ 128Kbit ถึง 512Kbit ไมโครวงจรที่มีขนาดหน้าใหญ่มีความจุตั้งแต่ 256Kbit ถึง 32Gbit และสูงกว่า ขนาดหน้าเล็กคือ 512 ไบต์สำหรับชิปแบบไบต์ และ 256 คำสำหรับชิปแบบคำ หน้าใหญ่มีขนาด 2,048 ไบต์สำหรับชิปไบต์ และ 1,024 ไบต์สำหรับชิปคำ ใน เมื่อเร็วๆ นี้มีชิปที่มีขนาดหน้าที่ใหญ่กว่านี้ปรากฏขึ้น ชิปไบต์มีขนาด 4,096 ไบต์แล้ว

โครงสร้างหน่วยความจำของวงจรไมโครแฟลช NAND ที่มีขนาดหน้าเล็กจาก STMicroelectronics

โครงสร้างหน่วยความจำของไมโครวงจรที่มีขนาดเพจใหญ่จาก STMicroelectronics

บล็อก NAND Flash ไม่ถูกต้อง

คุณลักษณะเฉพาะของวงจรไมโครแฟลช NAND คือการมีอยู่ของบล็อกที่ไม่ดี (ชำรุด) (บล็อกที่ไม่ดี) ทั้งในไมโครวงจรใหม่และลักษณะของบล็อกดังกล่าวระหว่างการทำงาน เพื่อทำเครื่องหมายบล็อกที่เสียหาย รวมถึงจัดเก็บข้อมูลบริการเพิ่มเติมหรือรหัสแก้ไข สถาปัตยกรรม NAND Flash จัดเตรียมพื้นที่สำรองเพิ่มเติมเพิ่มเติมจากหน้าหน่วยความจำข้อมูลแต่ละหน้า สำหรับชิปหน้าเล็ก พื้นที่นี้คือ 16 ไบต์/8 คำ สำหรับชิปด้วย หน้าใหญ่- 64 ไบต์ / 32 คำ

โดยทั่วไปแล้ว ผู้ผลิตชิปรับประกันว่าจำนวนบล็อคเสียจะไม่เกินขนาดที่กำหนด ข้อมูลเกี่ยวกับบล็อกเสียจะได้รับจากผู้ผลิตชิปในตำแหน่งเฉพาะในพื้นที่อะไหล่เพิ่มเติม

ทำเครื่องหมายบล็อกที่ไม่ดีใน ชิป NANDโดยปกติ Flash จะทำโดยการเขียนค่า 0 ไปยังที่อยู่เฉพาะในพื้นที่อะไหล่ของหน้าศูนย์ของบล็อกที่เสีย มีเครื่องหมายบล็อกที่ไม่ถูกต้องอยู่ในนั้น ที่อยู่บางแห่งพื้นที่สำรอง.

องค์กรหน่วยความจำ

ที่อยู่ของเครื่องหมายบล็อกที่ไม่ถูกต้องในพื้นที่สำรอง

การจัดระเบียบไบต์ขนาดหน้า - 512 ไบต์

การจัดระเบียบคำ ขนาดหน้า - 256 คำ

การจัดระเบียบไบต์ ขนาดหน้า - 2,048 ไบต์ขึ้นไป

การจัดระเบียบคำ ขนาดหน้า - 1,024 คำขึ้นไป

คุณต้องจำไว้ว่าเครื่องหมายบล็อกที่ไม่ถูกต้องจะถูกวางไว้ในเซลล์หน่วยความจำแฟลชปกติในพื้นที่สำรอง ซึ่งจะถูกลบเมื่อบล็อกหน่วยความจำทั้งหมดถูกลบ ดังนั้นเพื่อที่จะบันทึกข้อมูลเกี่ยวกับบล็อกที่ไม่ดี ก่อนที่จะลบ จำเป็นต้องบันทึกข้อมูลนี้ และหลังจากลบแล้ว ให้กู้คืน
ในโปรแกรมเมอร์ ChipProg เมื่อทำการติดตั้งตัวเลือก การจัดการ Block ไม่ถูกต้องเป็นค่าใดๆ ก็ได้ ยกเว้น ไม่ได้ใช้การบันทึกและกู้คืนข้อมูลเกี่ยวกับบล็อกที่เสียจะเกิดขึ้นโดยอัตโนมัติ

มีสามวิธีทั่วไปในการจัดการกับบล็อกที่เสีย:

  1. ข้ามบล็อกที่ไม่ดี(ข้ามบล็อกที่ไม่ดี . )
  2. พื้นที่บล็อกที่สงวนไว้(บล็อคการจอง)
  3. การตรวจสอบข้อผิดพลาดและการแก้ไข(การควบคุมและการแก้ไขข้อผิดพลาด . )

1. ข้ามบล็อกที่ไม่ดี.

อัลกอริธึมสำหรับการข้ามบล็อกที่ไม่ดีคือเมื่อเขียนไปยังไมโครเซอร์กิต มันจะวิเคราะห์ว่าบล็อกใดที่กำลังเขียนอยู่ หากมีบล็อกที่เสีย จะไม่มีการเขียนบล็อกนี้ บล็อกที่เสียจะถูกข้ามไป และการเขียนจะดำเนินการไปยังบล็อกถัดไปหลังจากบล็อกที่เสีย

2. บล็อคการจอง.

ในวิธีนี้ หน่วยความจำของไมโครวงจรทั้งหมดจะถูกแบ่งออกเป็นสามส่วน: User Block Area (UBA) - พื้นที่ผู้ใช้, Block Reservoir - พื้นที่สำรองทันทีตามพื้นที่ผู้ใช้ และตารางสำหรับจับคู่บล็อกที่ไม่ดีกับบล็อกที่ดี ( พื้นที่บล็อกที่สงวนไว้ - RBA)

อัลกอริธึมสำหรับการแทนที่บล็อกที่เสียในวิธีนี้มีดังต่อไปนี้: เมื่อมีการระบุบล็อกที่เสียจากพื้นที่ UBA บล็อกจะถูกโอนไปยังพื้นที่ Block Reservoir และรายการการแทนที่บล็อกที่เกี่ยวข้องจะถูกสร้างขึ้นในตาราง RBA

รูปแบบตาราง RBA:

2 ไบต์ พื้นที่ RBA ประกอบด้วย 2 ตารางใน 2 บล็อก ตารางในบล็อกที่สองถูกใช้เป็นตารางสำรองในกรณีที่ข้อมูลในบล็อกแรกไม่น่าเชื่อถือ

3. การควบคุมและแก้ไขข้อผิดพลาด.

เพื่อเพิ่มความน่าเชื่อถือของข้อมูล สามารถใช้อัลกอริธึมการตรวจสอบและแก้ไขข้อผิดพลาด (ECC) ได้ นี้ ข้อมูลเพิ่มเติมสามารถใส่ได้ ที่ว่างพื้นที่สำรอง

*) หมายเหตุ: NAND ~ ไม่ และ - ในคณิตศาสตร์บูลีนหมายถึงการปฏิเสธของ "AND"