NAND Flash failure behavior

Download Report

Transcript NAND Flash failure behavior

NAND Flash Failure
Behavior
Sponsored By Micron Technology Inc
Group Members and Topics

Rob Wells



Jeremy Hamblin


Firmware Design
Roger White



Project Introduction
System Integration
NAND DUT Interface
NAND Controller & Timing
David Chu


Host GUI Interface & Application
Conclusions
Robert Wells
Project Introduction
System Integration
Introduction to NAND Flash
What NAND Flash Memory Is
 NAND Flash Memory Applications
 What NAND Flash Memory Is Not
 Project Concept

An Affordable Platform
 Customizable Usage/Programming Patterns
 Characterization/Analysis of NAND Behavior

System Integration


High Level View
FPGA System


Block Diagram Interface
SOPC Builder Overview

Component Generation



Quartus II Overview

Integration of the FPGA system




Controller Development
NIOS II Overview


HAL (Hardware Abstraction Layer) – NIOS II
HDL (Hardware Description Language) – Quartus II
Device Drivers
Firmware
Firmware to Controller Integration
Host PC to Firmware Integration
High Level View
Components:
• NIOS II Processor
• SDRAM
• USB
HAL
Firmware
(Hardware Abstraction Layer)
• On-Chip
Memory
• Custom
C Code C Code
• LCD Display
• API (Application Programming Interface)
(Jeremy)
.c
Quartus II
.c
.v
.v
NAND
HDL
(Hardware
Flash Controller
Description Language)
• Custom
Verilog Code
Verilog Code
(Roger)
SOPC
NIOS
II
Application GUI Interface
SOPC Builder
• Program the NAND Flash
(System On a Programmable •Chip)
Analyze/Display Results
(David)
High Level View
• Analyze
Configure
Performance
Memory Usage
• Memory
Will
NANDRange
Flash Work
• Datathe
Over
Pattern
Lifespan of a
• Number
Given
Device?
of Cycles
Application GUI Interface
• Program the NAND Flash
• Analyze/Display Results
(David)
System Integration


High Level View
FPGA System


Block Diagram Interface
SOPC Builder Overview

Component Generation



Quartus II Overview

Integration of the FPGA system




Controller Development
NIOS II Overview


HAL (Hardware Abstraction Layer) – NIOS II
HDL (Hardware Description Language) – Quartus II
Device Drivers
Firmware
Firmware to Controller Integration
Host PC to Firmware Integration
Clock
FPGA
development
system
SOPC Built
Generation
System
(Jeremy)
Reset
Delay
NAND Flash
Controller
(Roger)
System Integration


High Level View
FPGA System


Block Diagram Interface
SOPC Builder Overview

Component Generation



Quartus II Overview

Integration of the FPGA system




Controller Development
NIOS II Overview


HAL (Hardware Abstraction Layer) – NIOS II
HDL (Hardware Description Language) – Quartus II
Device Drivers
Firmware
Firmware to Controller Integration
Host PC to Firmware Integration
Example FPGA System With SOPC
System Integration


High Level View
FPGA System


Block Diagram Interface
SOPC Builder Overview

Component Generation



Quartus II Overview

Integration of the FPGA system




Controller Development
NIOS II Overview


HAL (Hardware Abstraction Layer) – NIOS II
HDL (Hardware Description Language) – Quartus II
Device Drivers
Firmware
Firmware to Controller Integration
Host PC to Firmware Integration
System Integration


High Level View
FPGA System


Block Diagram Interface
SOPC Builder Overview

Component Generation



Quartus II Overview

Integration of the FPGA system




Controller Development
NIOS II Overview


HAL (Hardware Abstraction Layer) – NIOS II
HDL (Hardware Description Language) – Quartus II
Device Drivers
Firmware
Firmware to Controller Integration
Host PC to Firmware Integration
System Integration


High Level View
FPGA System


Block Diagram Interface
SOPC Builder Overview

Component Generation



Quartus II Overview

Integration of the FPGA system




Controller Development
NIOS II Overview


HAL (Hardware Abstraction Layer) – NIOS II
HDL (Hardware Description Language) – Quartus II
Device Drivers
Firmware
Firmware to Controller Integration
Host PC to Firmware Integration
Firmware to Controller Integration
Controller
Firmware
Buffer
Verilog
C Code
SOPC Builder
Quartus II
NIOS II
System Integration


High Level View
FPGA System


Block Diagram Interface
SOPC Builder Overview

Component Generation



Quartus II Overview

Integration of the FPGA system




Controller Development
NIOS II Overview


HAL (Hardware Abstraction Layer) – NIOS II
HDL (Hardware Description Language) – Quartus II
Device Drivers
Firmware
Firmware to Controller Integration
Host PC to Firmware Integration
Host PC to Firmware Integration
Phillips ISP1362
WinDriver
(Device Driver)
(USB)
SOPC Builder (HAL)
NIOS II (Device Driver)
Conclusions

System Components





Custom Hardware Design (Verilog)
Custom Firmware Design (C)
Powerful Design Tools
Custom Built Application GUI Interface
Inexpensive Platform for Testing



Analysis of NAND Wear-Out From a Customizable Memory
Usage Model
Allows Developers to Determine if NAND Flash is a Viable
Solution for a Given Application
Evaluate Other Aspects of NAND Flash
Questions
Jeremy Hamblin
Firmware Design
Firmware Design

SOPC Builder


System Components
Firmware Design (NIOS II)
Reset NAND Operation
 USB Interface

 Op-Code/Algorithm
 NAND
Flash Addressing
 Example Algorithm Layout

Command Transferring
SOPC Builder
(System On a Programmable Chip)
NIOS II Processor
SDRAM
Displays
Global Reset
USB
Buffer
Read Enable
•Instruction & Data
•Block Mapping & Status
Firmware Design

SOPC Builder


System Components
Firmware Design (NIOS II)
Reset NAND Operation
 USB Interface

 Op-Code/Algorithm
 NAND
Flash Addressing
 Example Algorithm Layout

Command Transferring
Firmware Design

Reset NAND Operation
First Operation After NAND Power Up
 Occurs During System Initialization
 Places NAND DUT (Device Under Test) in a
Known State

Firmware Design

SOPC Builder


System Components
Firmware Design (NIOS II)
Reset NAND Operation
 USB Interface

 Op-Code/Algorithm
 NAND
Flash Addressing
 Example Algorithm Layout

Command Transferring
Firmware Design

USB Interface
Generates IRQ (Interrupt ReQuest)
 ISR (Interrupt Service Routine) Receives Data
Sent From Host PC and Parses Data

00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00 - 16 Bytes
00 00 00 00 - Byte0
Start Address – 3 Bytes
Padding
End Address – 3 Bytes
Algorithm
Padding – 1 Byte
OP Code
# Cycles – 3 Bytes
Padding – 5 Bytes
Firmware Design

Op-Code Types
Read ID
 Write
 Read


Algorithm Types
Continuous
 Checker Board
 Random

Firmware Design

NAND Flash Addressing
Blocks
Pages
Bytes
Firmware Design

NAND Flash Addressing
Algorithm Example
Page N
…
Page 1
Page 0
Page N-1
Erased
Programmed
Block-0
Block-1
…
Block N-1
Block N
Continuous
Cycle I
Cycle II
Checker Board
Firmware Design

SOPC Builder


System Components
Firmware Design (NIOS II)
Reset NAND Operation
 USB Interface

 Op-Code/Algorithm
 NAND
Flash Addressing
 Example Algorithm Layout

Command Transferring
Firmware Design

Command Transferring

Commands & Data Transferred Through Buffer
 Different




Write- 2119 Bytes Transferred to NAND, 0 Returned
Read- 7 Bytes Transferred to NAND, 2112 Returned
Erase- 5 Bytes Transferred to NAND, 0 Returned
Read Status- 1 Byte Transferred, 1 Returned
 Each

Data and Command Requirements
NAND Command Type Has its Own Buffer Function
Removes All NAND Device Timing Constraints
From the Firmware
 Firmware
Too Slow
Firmware Design Conclusion

Command Received Over USB


Parsed in USB ISR
Execution of Op-Code
Command and Data are Passed to NAND
Controller Through the Buffer
 Command is Executed From Start Address to
End Address
 Repeated for # of Cycles Given in Command
From Host


Block Status Returned Over USB
Questions
Roger White
NAND DUT Interface
NAND Controller & Timing
NAND DUT Interface

Daughter Card
Our Own??
 Boise State’s

NAND DUT Interface
NAND Controller & Timing
Pins to NAND Chip
 Operations

NAND Controller & Timing

Pins to NAND chip








CLE (Command Line Enable)
CE# (Chip Enable)
WE# (Write Enable)
ALE (Address Line Enable)
R/B (Ready/Busy)
RE# (Read Enable)
WP# (Write Protect)
I/Ox (Input/Output)
NAND Controller & Timing
Pins to NAND Chip
 Operations

NAND Controller & Timing

Operations
Read
 Program
 Erase
 Read Status
 Reset
 Read ID

NAND Controller & timing

Program Operation
NAND Controller & Timing

Erase Operation
NAND Controller & Timing

Reset Operation
Conclusions

NAND DUT Interface


Daughter Card
NAND Controller & Timing
Pins
 Operations

Questions?
User Interface, USB, and
Conclusions
By: David Chu
Overview

User Interface

Command Interface


Results Interface


Functionality
USB


Functionality, Database Information, and XML File Description
Charts Interface


Functionality and Scripting Information
Functionality and Bit Organization
Conclusions

Methods, Results, and Future Improvements
Three Parts to the UI
Command Interface - Allows the user to
specify the method and method
parameters that are sent to the controller.
 Results Interface - Allows the user to view,
store, load, and search through the results
stored in a database
 Charts Interface - Allows the viewer to
visually see the results in graphical form

Command Interface
Command Interface Functionality
Allows the user to easily construct
commands and send them to the controller
 Allows the user to load in scripts to
automate the controller
 Allows the user to link to the Results
Interface

Script Files

Allow the user to automate the NAND
Flash test application through a comma
delimited file.

Script files are written in the following manner:
Read,000000000101111001000000,000000000110000111000000,Full,200
Results Interface
Results Interface Functionality





Allows the user to easily visualize data that is
stored in the database.
Allows the user to sort items in the table by
columns
Allows the user to search the data for specific
results or a range of results
Allows the user to load or save database
information into or from an XML file
Allows the user to link to the Charts Interface
Database Information
Uses SQL and runs on Microsoft SQL
Server 2005
 Contains one table with the following
elements: ID, Cycle, MemoryAddress,
FunctionName, Status, and Algorithm
 Contains the following stored procedures:
FindID, RemoveID, RemoveAll, InsertID,
and UpdateID

XML Files



Generated from
database when the
user selects the save
button
Allows the user to
manipulate the results
to their specific needs
Allows the user to
import data into other
applications that
support XML
<?xml version="1.0" standalone="yes" ?>
- <NewDataSet>
- <FlashStatusTable>
<ID>1</ID>
<Cycle>1</Cycle>
<MemoryAddress>6</MemoryAddress>
<FunctionName>Write</FunctionName>
<Status>Bad</Status>
<Algorithm>Checker</Algorithm>
</FlashStatusTable>
- <FlashStatusTable>
<ID>2</ID>
<Cycle>15</Cycle>
<MemoryAddress>4</MemoryAddress>
<FunctionName>Write</FunctionName>
<Status>Bad</Status>
<Algorithm>Checker</Algorithm>
</FlashStatusTable>
- <FlashStatusTable>
Charts Interface
Chart Interface Functionality
Allows the user to visually represent the
total number of failures over cycles
 Allows the user to turn on and off
horizontal and vertical grids

Overview

User Interface

Command Interface


Results Interface


Functionality
USB


Functionality, Database Information, and XML File Description
Charts Interface


Functionality and Scripting Information
Functionality and Bit Organization
Conclusions

Methods, Results, and Future Improvements
USB Information
Connection: USB 2.0 connection
 Transfer Rate: USB Full-Speed Transfer
Rate (12 Mbps)
 Transfer Method: USB Interrupt Transfers
 PnP Compatible

Bit Organization

USB Interface
Sends 16-Bytes
 Bytes are Transferred Using Big Endian

00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00 - 16 Bytes
00 00 00 00 - Byte0
Start Address – 3 Bytes
Padding
End Address – 3 Bytes
Algorithm
Padding – 1 Byte
OP Code
# Cycles – 3 Bytes
Padding – 5 Bytes
Overview

User Interface

Command Interface


Results Interface


Functionality
USB


Functionality, Database Information, and XML File Description
Charts Interface


Functionality and Scripting Information
Functionality and Bit Organization
Conclusions

Methods, Results, and Future Improvements
Project Synopsis

Method – used the Altera
DE2 development board
to create a system
consisting of a memory
module, a processor, and
an FPGA controller in
order to enable
communication between
a host PC test application
and NAND Flash.
Host PC
Simple GUI
USB ver 2.0
FPGA/Processor
Dev System
DUT
Project Synopsis Cont.

Results – created an
affordable and easy
to use application that
allows developers to
run multiple tests on
NAND Flash and
easily visualize the
results through
tabular and graphical
methods
Future Improvements
Redesign the GUI to work with multiple
operating systems
 Configure the NAND Flash controller to
operate with NAND Flash from other
manufacturers
 Use caching methods to improve the
performance of the NAND Flash test
application

Questions
Thank You:
Ken Stevens
 Dennis Zattiero
 Dean Klein
 Ken Koenig
