Tôi có thể viết vào một trang được viết trước đó không, nếu tôi tránh các khu vực đã được viết?
Nếu tôi hiểu p. 16 của biểu dữ liệu chính xác, có nghĩa là: Với con chip cụ thể này, bạn không được viết vào một trang được viết trước đó, ngay cả khi bạn tránh các khu vực đã được viết.
chi tiết
Bảng dữ liệu chip nhớ flash SST25VF064C trên p. 16 cho biết "Trang - Chương trình hướng dẫn chương trình lên tới 256 byte dữ liệu trong bộ nhớ. Địa chỉ trang đã chọn phải ở trạng thái bị xóa (FFH) trước khi bắt đầu hoạt động Chương trình trang."
Do đó, tôi giả sử rằng "Toàn bộ trang được chọn phải ở trạng thái bị xóa (mỗi byte trên trang FFh) trước khi bắt đầu hoạt động Chương trình trang." SST hoặc Microchip đã phát hành bất kỳ tài liệu nào làm rõ câu mơ hồ điên rồ này chưa?
Theo kinh nghiệm của tôi, nhà sản xuất tất cả các chip flash MLC và một số chip flash SLC mới hơn bắt buộc rằng một khi một trang đã được viết, trang phải được xóa trước khi trang đó được viết lại, ngay cả khi bạn chỉ muốn thay đổi 1 bit thành một 0 bit. (Điều này được gọi là "quy tắc viết một lần" trong bài viết YAFFS .)
Theo kinh nghiệm của tôi, tất cả các chip flash cũ hơn cho phép bạn thay đổi bất kỳ 1 bit nào thành 0 bit mà không cần chu kỳ xóa, ngay cả khi bit đó nằm trong một trang hoặc thậm chí một byte đã có các bit khác được lập trình thành 0 - a trang flash có thể được lập trình nhiều lần giữa các lần xóa. (Điều này được gọi là "nhiều lần viết" trong bài viết YAFFS).
Bảng dữ liệu của nhà sản xuất là một lời hứa có điều kiện mà nhà sản xuất đưa ra cho bạn. Miễn là bạn tuân theo tất cả các khuyến nghị về bảng dữ liệu, nhà sản xuất hứa rằng chip sẽ hoạt động như được chỉ định. Tôi nghi ngờ rằng nếu bạn lập trình một trang được viết trước đó, tránh các khu vực đã được viết, sẽ có cơ hội tốt hơn việc đọc lại ngay lập tức có thể cung cấp dữ liệu bạn mong đợi - các byte mới được viết là các giá trị bạn vừa viết, và các byte khác có khả năng không thay đổi. Tuy nhiên, vì điều này không tuân theo các khuyến nghị của biểu dữ liệu, bạn không còn có thể dựa vào tất cả các lời hứa trong biểu dữ liệu. Tôi nghe tin đồn rằng hoạt động không bị xử phạt như vậy khiến thời gian lưu giữ dữ liệu và sức chịu đựng bị ảnh hưởng, vì chương trình bị xáo trộn, lập trình quá mức, bẫy phí, các hiệu ứng tương tự như búa hàng DRAM , v.v.
"Lược đồ sử dụng bộ nhớ ảnh hưởng đến tốc độ lỗi bit. Lập trình một phần trang, lập trình các trang không tuần tự trong khối, đọc quá mức trên mỗi khối mà không xóa cũng như số lượng thao tác đọc không bằng nhau trong một khối tăng số lần đọc làm phiền các lỗi. " - Michal Jedrak.
"Bộ nhớ NAND Flash trong các hệ thống nhúng".
"Xáo trộn chương trình xảy ra khi một bit vô tình được lập trình từ một LẦN 1 đến một 0 0 trong một sự kiện lập trình trang. Lỗi bit này có thể xảy ra hoặc trên trang được lập trình hoặc trên một trang khác trong khối. Điều kiện điện áp thiên vị trong khối trong quá trình lập trình trang có thể khiến một lượng nhỏ dòng chảy vào các ô nhớ gần đó. Các lần lập trình trang một phần lặp đi lặp lại sẽ tiếp tục làm nặng thêm tình trạng này. " - Douglas Sheldon và Michael Freie.
"Kiểm tra nhiễu loạn trong Flash Memories" . tr. 8, 9.
"Sự xáo trộn chương trình xảy ra khi một bit vô tình được lập trình (1 đến 0) trong một hoạt động lập trình. ... Điều kiện này trở nên tồi tệ hơn bởi lập trình ngẫu nhiên trong khối và bằng cách áp dụng nhiều lần ghi vào các trang."
"Giảm thiểu thất bại flash Yaffs NAND"