diff options
| author | Holger Dengler <dengler@linutronix.de> | 2013-03-17 14:54:32 +0100 |
|---|---|---|
| committer | Holger Dengler <dengler@linutronix.de> | 2015-02-22 11:46:33 +0100 |
| commit | b567b950ce9bbcc087b3d09a0f761e29d3633026 (patch) | |
| tree | 099040e4b1da41a2be5d80ae30992fe33f6cd325 /flash-memory/mtd | |
| parent | b2a45c6eaabca7cdf5a4e33d158b1706257a6b09 (diff) | |
Flash-memory: Extend presentations and handout
Extend presentations and handouts for MTD, UBI and Flashfilesystems.
Add ECC, YAFFS2, Fastmap and other items.
Signed-off-by: Holger Dengler <dengler@linutronix.de>
Diffstat (limited to 'flash-memory/mtd')
| -rw-r--r-- | flash-memory/mtd/pres_mtd_en.tex | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/flash-memory/mtd/pres_mtd_en.tex b/flash-memory/mtd/pres_mtd_en.tex index 398a591..9cf294b 100644 --- a/flash-memory/mtd/pres_mtd_en.tex +++ b/flash-memory/mtd/pres_mtd_en.tex @@ -72,4 +72,111 @@ \end{itemize} \end{frame} +\subsubsection{MTD Error Correction} + +\begin{frame} +\frametitle{Kernel Support} +\begin{itemize} +\item Software ECC +\begin{itemize} +\item single bitflips (Hamming code) \\ 3 byte ECC per 256/512 byte +\item multiple bitflips (BCH code) \\ e.g. 7 byte ECC per 512 byte (4 bitflips) +\end{itemize} +\item Hardware ECC +\begin{itemize} +\item depends on NAND Hardware capabilities +\end{itemize} +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{ECC variations} +\begin{beamerboxesrounded}[shadow=true]{Software ECC} +\begin{itemize} +\item full flexibility +\item performance on small CPUs +\end{itemize}~\\ +\begin{figure}[h] +\centering +\includegraphics[scale=0.5]{images/nand_ecc_sw.png} +\end{figure} +\end{beamerboxesrounded} +\end{frame} + +\begin{frame} +\frametitle{ECC variations} +\begin{beamerboxesrounded}[shadow=true]{Hardware-assisted ECC} +\begin{itemize} +\item restricted to HW Algorithms +\item good performance on small CPUs +\end{itemize}~\\ +\begin{figure}[h] +\centering +\includegraphics[scale=0.5]{images/nand_ecc_hw_part.png} +\end{figure} +\end{beamerboxesrounded} +\end{frame} + +\begin{frame} +\frametitle{ECC variations} +\begin{beamerboxesrounded}[shadow=true]{Hardware ECC} +\begin{itemize} +\item restricted to HW Algorithms +\item good performance on small CPUs +\item transparent usage +\item different layout requirements +\end{itemize}~\\ +\begin{figure}[h] +\centering +\includegraphics[scale=0.5]{images/nand_ecc_hw_full.png} +\end{figure} +\end{beamerboxesrounded} +\end{frame} + +\begin{frame} +\frametitle{ECC Layout} +Software ECC +\begin{itemize} +\item read data in one step and store ECC in OOB area +\end{itemize} +\begin{beamerboxesrounded}[shadow=true]{Software ECC Layout} +\begin{figure}[h] +\centering +\includegraphics[scale=0.5]{images/mtd_ecc_sw.png} +\end{figure} +\end{beamerboxesrounded} +\end{frame} + +\begin{frame} +\frametitle{ECC Layout} +Full Hardware ECC +\begin{itemize} +\item read data in chunks and store ECC aligned +\item bad block marker in OOB are no longer usable +\item requires badblock table (BBT) +\end{itemize} +\begin{beamerboxesrounded}[shadow=true]{Hardware ECC Layout} +\begin{figure}[h] +\centering +\includegraphics[scale=0.5]{images/mtd_ecc_hw.png} +\end{figure} +\end{beamerboxesrounded} +\end{frame} + +\begin{frame} +\frametitle{ECC pitfalls} +\begin{itemize} +\item bootloader: +\begin{itemize} +\item algorithm +\item layout +\end{itemize} +\item runtime: +\begin{itemize} +\item periodical reads of all UBI partitions +\item UBI copy PEBs with bitflips to new PEBs +\end{itemize} +\end{itemize} +\end{frame} + \input{tailpres} |
