ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƢỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ ---------------o0o--------------- TRẦN THỊ THẢO NGHIÊN CỨU VÀ THIẾT KẾ KỸ THUẬT TRUY XUẤT TỪNG PHẦN TRANG DỮ LIỆU TRONG BỘ ĐIỀU KHIỂN BỘ NHỚ NAND FLASH CONTROLLER. Chuyên ngành: Kỹ thuật điện tử Mã số: LUẬN VĂN THẠC SĨ TP. HỒ CHÍ MINH, tháng 6 năm 2015 Công trình đƣợc hoàn thành tại: Trƣờng Đại học Bách Khoa –ĐHQG-HCM Cán bộ hƣớng dẫn khoa học: .S Lê Chí Thông. Cán bộ chấm nhận xét 1:.
Cán bộ chấm nhận xét 2:. Lê Tiến Thƣờng………. Luận văn thạc sĩ đƣợc bảo vệ tại Trƣờng Đại học Bách Khoa, ĐHQG Tp. Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1.
Lê Tiến Thƣờng 3. Trƣơng Quang Vinh 4. CHỦ TỊCH HỘI ĐỒNG TRƢỞNG KHOA………… ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƢỜNG ĐẠI HỌC BÁCH KHOA Độc lập – Tự do – Hạnh phúc ----------------------------------- ----------------------------------- NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên : TRẦN THỊ THẢO MSHV: 13141127 Ngày, tháng, năm sinh: 20/02/1989 Nơi sinh: Hà Tĩnh Chuyên ngành: Kỹ thuật điện tử Mã số: I. TÊN ĐỀ TÀI: Nghiên cứu và thiết kế kỹ thuật truy xuất từng phần trang dữ liệu trong bộ điều khiển bộ nhớ NAND FLASH CONTROLLER.
NHIỆM VỤ VÀ NỘI DUNG: Nhiệm vụ của đề tài là nghiên cứu và thiết kế đƣợc bộ điều khiển bộ nhớ NAND Flash controller với các tính năng nhƣ sau: Tƣơng thích với bus AHB Truy xuất dữ liệu theo kỹ thuật truy xuất từng phần trang dữ liệu. Hỗ trợ MLC và SLC Hỗ trợ tất cả các kích thƣớc page size Hỗ trợ ECC để phát hiện và sửa lỗi dữ liệu II. NGÀY GIAO NHIỆM VỤ:. NGÀY HOÀN THÀNH NHIỆM VỤ:.
CÁN BỘ HƢỚNG DẪN: T.S Lê Chí Thông Tp.HCM, ngày 25 tháng 6 năm 2015 CÁN BỘ HƢỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên và chữ ký) (Họ tên và chữ ký) TRƢỞNG KHOA….……… (Họ tên và chữ ký) LỜI CẢM ƠN Em xin gởi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các thầy cô của trƣờng Đại học Bách khoa Thành Phố Hồ Chí Minh, đặc biệt là giảng viên hƣớng dẫn Lê Chí Thông ngƣời đã rất tận tình hƣớng dẫn em trong quá trình thực hiện luận văn tốt nghiệp. Em xin chân thành cám ơn đồng nghiệp và trung tâm nghiên cứu và đào tạo thiết kế vi mạch ICDREC đã tạo điều kiện cho em có thể hoàn thành luận văn tốt nghiệp. Trong quá trình nghiên cứu cũng nhƣ là trong quá trình viết báo cáo luận văn tốt nghiệp, khó tránh khỏi sai sót, rất mong các Thầy, Cô bỏ qua. Đồng thời do trình độ lý luận cũng nhƣ kinh nghiệm còn hạn chế nên luận văn không thể tránh khỏi những thiếu sót, rất mong nhận đƣợc ý kiến đóng góp Thầy, Cô để em hoàn thiện thêm những nghiên cứu của mình.
Em xin chân thành cảm ơn! Tp. Hồ Chí Minh, ngày 14 tháng 6 năm 2015. Học viên Trần Thị Thảo qqqqqqqqqqqq TÓM TẮT LUẬN VĂN NAND Flash là một loại bộ nhớ với đặc tính không mất dữ liệu khi mất điện (non- volatile memory). Đơn vị nhỏ nhất để đọc ghi dữ liệu là một trang (page).
Với sự phát triển ngày càng nhanh về khả năng lƣu trữ của bộ nhớ NAND Flash, dung lƣợng bộ nhớ tăng kéo theo kích thƣớc một trang cũng tăng lên rất nhiều lần. Điều này đặt ra những thử thách không nhỏ trong việc thiết kế bộ điều khiển NAND Flash. Trong kiến trúc của một bộ điều khiển NAND Flash, các FIFO với kích thƣớc tƣơng ứng với kích thƣớc của một trang trong bộ nhớ NAND Flash thƣờng đƣợc dùng nhƣ một vùng đệm dữ liệu cho việc truy xuất bộ nhớ. Để tiết kiệm tài nguyên sử dụng cho các FIFO đệm trong bộ điều khiển, có nhiều giải pháp khác nhau đƣợc đƣa ra, trong đó kỹ thuật đọc ghi một phần trang (Partial-Page Programming/Reading) đƣợc sử dụng phổ biến và mang nhiều hiệu quả.
Luận văn dƣới đây đi sâu trình bày một cách chi tiết nghiên cứu và thực hiện kỹ thuật truy xuất từng phần trang dữ liệu bằng cách chia nhỏ một trang lớn của bộ nhớ NAND Flash thành các phần dữ liệu nhỏ hơn nhƣ 512-byte/256-word. Từ khóa: NAND flash, bộ điều khiển NAND flash, tối ưu bộ điều khiển, truy xuất một phần trang dữ liệu, partial-page reading, partial-page programing. ABSTRACT NAND-flash is non-volatile type of memory, which means its stored data remains intact without supplied power. The smallest possible memory unit in NAND-flash is called a page of memory.
Thanks to NAND-flash rapid escalation of storage capacity, its page size also increases manifold, which makes it harder to design an effective flash controller. The FIFO possessing the same page size of one found in NAND-flash is often utilized as memory buffer. To make the most out of its limited resources used for FIFO in NAND-flash, there exist many solutions, one of which is Partial Programming/Reading technique which is widely used and very effective. The following thesis attempts to clarify some details related to investigate, design and perform the NAND-flash memory segmentation algorithm dividing memory into chunks of 512 bytes/256 words.
Keywords: NAND flash, the NAND flash controller, optimize the NAND flash controller, partial-page reading, partial-page programing. Học viên: Trần Thị Thảo GVHD: TS. Lê Chí Thông MỤC LỤC Chƣơng 1.2 Tình hình nghiên cứu trong và ngoài nƣớc .3 Nhiệm vụ luận văn .1 Tổng quan về bộ nhớ NAND Flash.2 Cấu trúc bộ nhớ NAND Flash .1 Tổ chức bộ nhớ NAND Flash .2 Cấu tạo bộ nhớ NAND Flash .3 Hoạt động của bộ nhớ NAND Flash .1 Hoạt động của các tín hiệu của bộ nhớ NAND Flash .2 Giản đồ hoạt động của các lệnh .3 Quản lý lỗi dữ liệu trong bộ nhớ NAND Flash controller.4 Giao diện bộ nhớ NAND Flash.5 Bộ điều khiển bộ nhớ NAND Flash. THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG .1 Tính năng của bộ điều khiển bộ nhớ NAND Flash.2 Sơ đồ khối của bộ điều khiển bộ nhớ NAND Flash.3 Chi tiết và hoạt động của các khối trong bộ điều khiển bộ nhớ NAND Flash.1 Giao diện với bus hệ thống AHB.2 Máy trạng thái FSM control .39 Học viên: Trần Thị Thảo GVHD: TS.
Lê Chí Thông 3.3 Tập thanh ghi .4 Thuật toán ghi bằng cách truy xuất từng phần trang dữ liệu .5 Thuật toán đọc bằng cách truy xuất từng phần trang dữ liệu .6 Khối control logic .7 Khối sắp xếp dữ liệu .8 Khối phân chia dữ liệu vào ra cho NAND Flash device .9 Khối tìm và sửa lỗi ECC. KIỂM TRA THIẾT KẾ.1 Yêu cầu kiểm tra.2 Môi trƣờng kiểm tra .3 Chiến lƣợc kiểm tra .1 Hệ thống kiểm tra .2 Xây dựng kịch bản kiểm tra .4 Kết quả kiểm tra .1 Kiểm tra hoạt động với các thiết bị nhớ NAND Flash MLC và SLC .2 Kiểm tra hoạt động với các thiết bị nhớ NAND Flash các kích thƣớc page size khác nhau .3 Kiểm tra hoạt động lệnh reset .4 Kiểm tra hoạt động lệnh đọc dữ liệu .5 Kiểm tra hoạt động ghi dữ liệu .6 Kiểm tra hoạt động ECC để phát hiện và sửa lỗi dữ liệu. KẾT QUẢ THỰC HIỆN.1 Kết quả test .71 Học viên: Trần Thị Thảo GVHD: TS. Lê Chí Thông 5.2 Tốc độ và tần số.1 Tốc độ tần số của controller .2 So sánh với các controller khác.
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN .2 Hƣớng phát triển. TÀI LIỆU THAM KHẢO.76 Học viên: Trần Thị Thảo GVHD: TS. Lê Chí Thông DANH SÁCH HÌNH MINH HỌA Hình 1-1: Giản đồ ghi dữ liệu của hãng Lattice Semiconductor .3 Hình 1-2: Giản đồ đọc dữ liệu của hãng Lattice Semiconductor.3 Hình 1-3: Sử dụng truy xuất một phần dữ liệu trên 1 trang của NAND flash.5 Hình 2-1: Cấu trúc cell nhớ NAND Flash .7 Hình 2-2: Cấu trúc bộ nhớ NAND Flash .9 Hình 2-3: Cấu tạo bộ nhớ NAND Flash memory .10 Hình 2-4: Giản đồ ghi lệnh .13 Hình 2-5: Giản đồ ghi địa chỉ .14 Hình 2-6: Giản đồ ghi dữ liệu .14 Hình 2-7: Giản đồ đọc dữ liệu .15 Hình 2-8: Giản đồ hoạt động đọc.16 Hình 2-9: Giản đồ hoạt động ghi .17 Hình 2-10: Giản đồ hoạt động xóa block .18 Hình 2-11: Giản đồ hoạt động RESET .18 Hình 2-12: Cho phép xóa .19 Hình 2-13: Không cho phép xóa .19 Hình 2-14: Chia nhỏ trang dữ liệu trong việc tính toán ECC .20 Hình 2-15: Cách sắp xếp 3 bytes ECC .20 Hình 2-16: Cách tạo bit chẵn lẻ .21 Hình 2-17: Giải thuật phát hiện lỗi ECC .23 Hình 2-18: Giao diện bộ nhớ NAND Flash .25 Hình 3-1: Sơ đồ khối bộ điều khiển bộ nhớ NAND Flash controller .27 Học viên: Trần Thị Thảo GVHD: TS. Lê Chí Thông Hình 3-2: Cấu trúc của bộ điều khiển NAND flash .28 Hình 3-3: Hình mô tả chân khối AHB Wrapper .30 Hình 3-4: Sơ đồ bộ phận giao tiếp bus AMBA AHB .32 Hình 3-5: Khối AHB WDATA-ADDRESS-COMMAND RECEIVE .33 Hình3-6: Khối Packet Driver .33 Hình3-7: Máy trạng thái trong khối Packet Driver .34 Hình 3-8: Khối Ready Controller .36 Hình 3-9: Khối Write / Read Status Storage.36 Hình 3-10: Khối Packet Valid Generator .36 Hình 3-11: Khối Packet Container.37 Hình 3-12: Khối Read Data FIFO Controller .38 Hình 3-13: Hình mô tả chân khối FSM control .39 Hình 3-14: Thuật toán truy xuất dữ liệu ghi từng phần trang .48 Hình 3-15: Thuật toán truy xuất dữ liệu đọc từng phần trang .50 Hình 3-16: Sơ đồ khối control logic .51 Hình 3-17: Sơ đồ chân tín hiệu khối control logic.53 Hình 3-18: Sơ đồ chân của khối mux .57 Hình 3-19: Giản đồ gom dữ liệu của bộ mux .58 Hình 3-20: Sơ đồ chân khối iomux .58 Hình 3-21: Sơ đồ khối hỏa động của khối iomux .59 Hình 3-22: Mô tả chân tín hiệu khối ECC .60 Hình 3-23: Sơ đồ khối ECC .60 Hình 3-24: Thuật toán cho khối ECC top .61 Học viên: Trần Thị Thảo GVHD: TS.
Lê Chí Thông Hình 3-25: Giản đồ phát hiện ECC .62 Hình 3-26: Sơ đồ khối ECC .62 Hình 4-1: Hệ thống kiểm tra lõi NAND Flash controller .64 Hình 4-2: Giản đồ hoạt động lệnh RESET .66 Hình 4-3: Kết quả giản đồ kiểm tra lệnh RESET .67 Hình 4-9: Giản đồ hoạt động của lệnh READ PAGE .67 Hình 4-10: Giản đồ hoạt động ghi dữ liệu .69 Hình 4-11: Kết quả mô phỏng ECC.70 Hình 5-1: Thông số NAND Flash controller của hãng Lattice .72 Hình 5-2: Thông số NAND Flash controller của hãng controller SLS .73 Học viên: Trần Thị Thảo GVHD: TS. Lê Chí Thông DANH SÁCH BẢNG SỐ LIỆU Bảng 2-1: Bảng so sánh cell nhớ SLC và MLC của bộ nhớ NAND Flash .8 Bảng 2-2: Các chân tín hiệu của bộ nhớ NAND Flash .11 Bảng 2-3: Bảng mô tả hoạt động các tín hiệu điều khiển .12 Bảng 3-1: Bảng mô tả chân khối AHB Wrapper .31 Bảng 3-2: Bảng sự thật của khối Enable Generator.37 Bảng 3-3: Bảng mô tả chân FSM control .39 Bảng 3-4: Tập thanh ghi của bộ điều khiển bộ nhớ NAND Flash.