summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Dengler <dengler@linutronix.de>2012-10-09 11:49:22 +0200
committerHolger Dengler <dengler@linutronix.de>2012-10-15 11:53:19 +0200
commit664ec7412576bc7e756c407574e1a1f73f3d3c95 (patch)
treefc9b66c949cdec556e03aedf4ecab78bfab682b6
parent77537e998773dc4e553c8c4bb31f89c1c3f7eeb4 (diff)
Flash-Memory: new Technology presentation
This new technology presentation describes the Flash-Memory technology, the functional principles and the side effects. It can be used as an introduction to a one-day session about Flash-Memory and Flash-Filesystems. Signed-off-by: Holger Dengler <dengler@linutronix.de>
-rw-r--r--flash-memory/technology/Makefile9
-rw-r--r--flash-memory/technology/pres_technology_en.tex181
-rw-r--r--images/fmtech-fgmos.pngbin0 -> 10189 bytes
-rw-r--r--images/fmtech-read.pngbin0 -> 61131 bytes
-rw-r--r--images/fmtech-read_disturb.pngbin0 -> 88711 bytes
-rw-r--r--images/fmtech-single_erase.pngbin0 -> 15836 bytes
-rw-r--r--images/fmtech-single_program.pngbin0 -> 27205 bytes
-rw-r--r--images/fmtech-single_read.pngbin0 -> 24939 bytes
-rw-r--r--images/fmtech-write.pngbin0 -> 65468 bytes
-rw-r--r--images/fmtech-write_disturb.pngbin0 -> 92603 bytes
-rw-r--r--images/fmtech.odgbin0 -> 15306 bytes
11 files changed, 190 insertions, 0 deletions
diff --git a/flash-memory/technology/Makefile b/flash-memory/technology/Makefile
new file mode 100644
index 0000000..d641258
--- /dev/null
+++ b/flash-memory/technology/Makefile
@@ -0,0 +1,9 @@
+all:
+ for pdf in `ls -1 *.tex` ; do \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ done
+
+clean:
+ rm -f *.aux *.log *.pdf *.log *.snm *.toc *.vrb *.nav *.out
+
diff --git a/flash-memory/technology/pres_technology_en.tex b/flash-memory/technology/pres_technology_en.tex
new file mode 100644
index 0000000..546a1be
--- /dev/null
+++ b/flash-memory/technology/pres_technology_en.tex
@@ -0,0 +1,181 @@
+\def\lximg{/usr/share/lx/icons/fueller.png}
+
+\input{configpres}
+
+\subsection{Technology}
+
+\title{Flash-Memory Technology}
+\maketitle
+
+\def\lximg{none}
+
+\begin{frame}
+\frametitle{Contents}
+\tableofcontents
+\end{frame}
+
+\subsubsection{Structure and Function}
+\begin{frame}[fragile]
+\frametitle{Single Cell Structure}
+\begin{itemize}
+\item Base element: MOSFET with a floating gate (FGMOS)
+\item Organization of cells in blocks and pages
+\end{itemize}
+\begin{figure}[h]
+\centering
+\includegraphics[scale=0.5]{images/fmtech-fgmos.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Read}
+\begin{figure}[h]
+\centering
+\includegraphics[scale=0.4]{images/fmtech-single_read.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Write (Program)}
+\begin{figure}[h]
+\centering
+\includegraphics[scale=0.4]{images/fmtech-single_program.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Erase}
+\begin{figure}[h]
+\centering
+\includegraphics[scale=0.4]{images/fmtech-single_erase.png}
+\end{figure}
+\end{frame}
+
+\subsubsection{Flash-Memory Types}
+\begin{frame}[fragile]
+\frametitle{Overview}
+\begin{itemize}
+\item NOR
+\item NAND
+\item Single- and Multi-Level Cells
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{NOR}
+\begin{itemize}
+\item direct addressable
+\item usable like RAM/ROM (direct attach to CPU)
+\item pros:
+ \begin{itemize}
+ \item fault tolerant
+ \item high write-rate for small data
+ \end{itemize}
+\item cons:
+ \begin{itemize}
+ \item low data density (multiple gates per bit)
+ \item low write-rate for large data
+ \item cost
+ \end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{NAND}
+\begin{itemize}
+\item matrix organization (blocks and pages)
+\item addressing via controller logic
+\item pros:
+ \begin{itemize}
+ \item cost
+ \item high data density (1 to many bits per gate)
+ \item high read-/write-rate for large data
+ \item no layout change in hardware for more capacity
+ \end{itemize}
+\item cons:
+ \begin{itemize}
+ \item large effort for extensive Error Correction Codes (ECC)
+ \end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Data density}
+\begin{itemize}
+\item Single-Level Cells (SLC)
+ \begin{itemize}
+ \item ca. 100,000 write/delete cycles
+ \item pros:
+ \begin{itemize}
+ \item robust
+ \item low Error Correction Code (ECC) effort
+ \end{itemize}
+ \item cons:
+ \begin{itemize}
+ \item low data density
+ \end{itemize}
+ \end{itemize}
+\end{itemize}
+\pause
+\begin{itemize}
+\item Multi-Level Cells (MLC)
+ \begin{itemize}
+ \item ca. 3,000 to 10,000 write/delete cycles
+ \item pros:
+ \begin{itemize}
+ \item high data density
+ \end{itemize}
+ \item cons:
+ \begin{itemize}
+ \item expensive Error Correction Codes (ECC) like BCH
+ \item wear prone
+ \item low read-rate
+ \end{itemize}
+ \end{itemize}
+\end{itemize}
+\end{frame}
+
+\subsubsection{NAND block operations and side effects}
+\begin{frame}[fragile]
+\frametitle{Read}
+\begin{figure}[h]
+\centering
+\includegraphics[width=10cm]{images/fmtech-read.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Read Disturb}
+\begin{figure}[h]
+\centering
+\includegraphics[width=10cm]{images/fmtech-read_disturb.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Write}
+\begin{figure}[h]
+\centering
+\includegraphics[width=10cm]{images/fmtech-write.png}
+\end{figure}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Write Disturb}
+\begin{figure}[h]
+\centering
+\includegraphics[width=10cm]{images/fmtech-write_disturb.png}
+\end{figure}
+\end{frame}
+
+\subsection{}
+\begin{frame}
+\frametitle{References}
+\begin{thebibliography}{99}
+% \bibitem{FLASHMEM} David Woodhouse. Presentation \emph{Flash Memory}, 2012. http://david.woodhou.se/dwmw2-kr-2012-09.odp
+\bibitem{FLASHMEM} David Woodhouse. Presentation \emph{Flash Memory}, 2012.
+\href{http://david.woodhou.se/dwmw2-kr-2012-09.odp}{http://david.woodhou.se/dwmw2-kr-2012-09.odp}
+\end{thebibliography}
+\end{frame}
+
+\input{tailpres}
diff --git a/images/fmtech-fgmos.png b/images/fmtech-fgmos.png
new file mode 100644
index 0000000..ec62a31
--- /dev/null
+++ b/images/fmtech-fgmos.png
Binary files differ
diff --git a/images/fmtech-read.png b/images/fmtech-read.png
new file mode 100644
index 0000000..52bc039
--- /dev/null
+++ b/images/fmtech-read.png
Binary files differ
diff --git a/images/fmtech-read_disturb.png b/images/fmtech-read_disturb.png
new file mode 100644
index 0000000..51b3db4
--- /dev/null
+++ b/images/fmtech-read_disturb.png
Binary files differ
diff --git a/images/fmtech-single_erase.png b/images/fmtech-single_erase.png
new file mode 100644
index 0000000..7992cbd
--- /dev/null
+++ b/images/fmtech-single_erase.png
Binary files differ
diff --git a/images/fmtech-single_program.png b/images/fmtech-single_program.png
new file mode 100644
index 0000000..4efeec2
--- /dev/null
+++ b/images/fmtech-single_program.png
Binary files differ
diff --git a/images/fmtech-single_read.png b/images/fmtech-single_read.png
new file mode 100644
index 0000000..3877201
--- /dev/null
+++ b/images/fmtech-single_read.png
Binary files differ
diff --git a/images/fmtech-write.png b/images/fmtech-write.png
new file mode 100644
index 0000000..d8ef79e
--- /dev/null
+++ b/images/fmtech-write.png
Binary files differ
diff --git a/images/fmtech-write_disturb.png b/images/fmtech-write_disturb.png
new file mode 100644
index 0000000..84aaffa
--- /dev/null
+++ b/images/fmtech-write_disturb.png
Binary files differ
diff --git a/images/fmtech.odg b/images/fmtech.odg
new file mode 100644
index 0000000..47f55e7
--- /dev/null
+++ b/images/fmtech.odg
Binary files differ