?? yaffs2.html
字號:
<TD WIDTH=20% VALIGN=TOP> <P>Program</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="800" SDNUM="5129;"> <P ALIGN=RIGHT>800</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="800" SDNUM="5129;"> <P ALIGN=RIGHT>800</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="200" SDNUM="5129;"> <P ALIGN=RIGHT>200</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="200" SDNUM="5129;"> <P ALIGN=RIGHT>200</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Seek</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="40" SDNUM="5129;"> <P ALIGN=RIGHT>40</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="40" SDNUM="5129;"> <P ALIGN=RIGHT>40</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="10" SDNUM="5129;"> <P ALIGN=RIGHT>10</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="10" SDNUM="5129;"> <P ALIGN=RIGHT>10</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Read</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="220" SDNUM="5129;"> <P ALIGN=RIGHT>220</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="220" SDNUM="5129;"> <P ALIGN=RIGHT>220</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="220" SDNUM="5129;"> <P ALIGN=RIGHT>220</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="110" SDNUM="5129;"> <P ALIGN=RIGHT>110</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Total</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1320" SDNUM="5129;"> <P ALIGN=RIGHT>1320</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1320" SDNUM="5129;"> <P ALIGN=RIGHT>1320</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="660" SDNUM="5129;"> <P ALIGN=RIGHT>660</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="440" SDNUM="5129;"> <P ALIGN=RIGHT>440</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>MB/s</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1.5" SDNUM="5129;"> <P ALIGN=RIGHT>1.5</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1.5" SDNUM="5129;"> <P ALIGN=RIGHT>1.5</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="3" SDNUM="5129;"> <P ALIGN=RIGHT>3</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="4.5" SDNUM="5129;"> <P ALIGN=RIGHT>4.5</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Relative speed</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1" SDNUM="5129;"> <P ALIGN=RIGHT>1</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1" SDNUM="5129;"> <P ALIGN=RIGHT>1</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="2" SDNUM="5129;"> <P ALIGN=RIGHT>2</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="3" SDNUM="5129;"> <P ALIGN=RIGHT>3</P> </TD> </TR> </TBODY></TABLE><P><BR><BR></P><P>Times for 1MB delete (units of 1uS).</P><TABLE WIDTH=100% BORDER=1 CELLPADDING=4 CELLSPACING=3> <COL WIDTH=51*> <COL WIDTH=51*> <COL WIDTH=51*> <COL WIDTH=51*> <COL WIDTH=51*> <THEAD> <TR VALIGN=TOP> <TH WIDTH=20%> <P>Operation</P> </TH> <TH WIDTH=20%> <P>YAFFS1</P> </TH> <TH WIDTH=20%> <P>YAFFS2 (512b pages)</P> </TH> <TH WIDTH=20%> <P>YAFFS2 (2kB pages)</P> </TH> <TH WIDTH=20%> <P>YAFFS2(2kB pages, x16)</P> </TH> </TR> </THEAD> <TBODY> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Seek</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="20480" SDNUM="5129;"> <P ALIGN=RIGHT>20480</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="0" SDNUM="5129;"> <P ALIGN=RIGHT>0</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="0" SDNUM="5129;"> <P ALIGN=RIGHT>0</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="0" SDNUM="5129;"> <P ALIGN=RIGHT>0</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Program</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="409600" SDNUM="5129;"> <P ALIGN=RIGHT>409600</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="0" SDNUM="5129;"> <P ALIGN=RIGHT>0</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="0" SDNUM="5129;"> <P ALIGN=RIGHT>0</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="0" SDNUM="5129;"> <P ALIGN=RIGHT>0</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Erase</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="128000" SDNUM="5129;"> <P ALIGN=RIGHT>128000</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="128000" SDNUM="5129;"> <P ALIGN=RIGHT>128000</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="16000" SDNUM="5129;"> <P ALIGN=RIGHT>16000</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="16000" SDNUM="5129;"> <P ALIGN=RIGHT>16000</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Total</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="558080" SDNUM="5129;"> <P ALIGN=RIGHT>558080</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="128000" SDNUM="5129;"> <P ALIGN=RIGHT>128000</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="16000" SDNUM="5129;"> <P ALIGN=RIGHT>16000</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="16000" SDNUM="5129;"> <P ALIGN=RIGHT>16000</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>MB/s</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1.8" SDNUM="5129;"> <P ALIGN=RIGHT>1.8</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="7.8" SDNUM="5129;"> <P ALIGN=RIGHT>7.8</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="62.5" SDNUM="5129;"> <P ALIGN=RIGHT>62.5</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="62.5" SDNUM="5129;"> <P ALIGN=RIGHT>62.5</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Relative speed</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1" SDNUM="5129;"> <P ALIGN=RIGHT>1</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="4" SDNUM="5129;"> <P ALIGN=RIGHT>4</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="34" SDNUM="5129;"> <P ALIGN=RIGHT>34</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="34" SDNUM="5129;"> <P ALIGN=RIGHT>34</P> </TD> </TR> </TBODY></TABLE><P><BR><BR></P><P>Times for 1MB of garbage collection at 50% dirty (units of 1uS).</P><TABLE WIDTH=100% BORDER=1 CELLPADDING=4 CELLSPACING=3> <COL WIDTH=51*> <COL WIDTH=51*> <COL WIDTH=51*> <COL WIDTH=51*> <COL WIDTH=51*> <THEAD> <TR VALIGN=TOP> <TH WIDTH=20%> <P>Operation</P> </TH> <TH WIDTH=20%> <P>YAFFS1</P> </TH> <TH WIDTH=20%> <P>YAFFS2 (512b pages)</P> </TH> <TH WIDTH=20%> <P>YAFFS2 (2kB pages)</P> </TH> <TH WIDTH=20%> <P>YAFFS2(2kB pages, x16)</P> </TH> </TR> </THEAD> <TBODY> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Delete 1MB</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="558080" SDNUM="5129;"> <P ALIGN=RIGHT>558080</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="128000" SDNUM="5129;"> <P ALIGN=RIGHT>128000</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="16000" SDNUM="5129;"> <P ALIGN=RIGHT>16000</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="16000" SDNUM="5129;"> <P ALIGN=RIGHT>16000</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Write 0.5MB</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="337920" SDNUM="5129;"> <P ALIGN=RIGHT>337920</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="337920" SDNUM="5129;"> <P ALIGN=RIGHT>337920</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="168960" SDNUM="5129;"> <P ALIGN=RIGHT>168960</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="112640" SDNUM="5129;"> <P ALIGN=RIGHT>112640</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Total</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="896000" SDNUM="5129;"> <P ALIGN=RIGHT>896000</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="465920" SDNUM="5129;"> <P ALIGN=RIGHT>465920</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="184960" SDNUM="5129;"> <P ALIGN=RIGHT>184960</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="128640" SDNUM="5129;"> <P ALIGN=RIGHT>128640</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>MB/s</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1.1" SDNUM="5129;"> <P ALIGN=RIGHT>1.1</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="2.1" SDNUM="5129;"> <P ALIGN=RIGHT>2.1</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="5.4" SDNUM="5129;"> <P ALIGN=RIGHT>5.4</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="7.7" SDNUM="5129;"> <P ALIGN=RIGHT>7.7</P> </TD> </TR> <TR> <TD WIDTH=20% VALIGN=TOP> <P>Relative speed</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1" SDNUM="5129;"> <P ALIGN=RIGHT>1</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="1.9" SDNUM="5129;"> <P ALIGN=RIGHT>1.9</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="4.9" SDNUM="5129;"> <P ALIGN=RIGHT>4.9</P> </TD> <TD WIDTH=20% VALIGN=BOTTOM SDVAL="7" SDNUM="5129;"> <P ALIGN=RIGHT>7</P> </TD> </TR> </TBODY></TABLE><P><BR><BR></P><H2>MTD Interface</H2><P>As mentioned before, YAFFS2 requires a chunk-size of at least 1kBto get a large enough spare area to support the increased size of thetags. This is not really a disadvantage, but should rather be viewedas an opportunity to exploit the NAND hardware more effectively. Inparticular:</P><UL> <LI><P>Newer, larger, NAND with 2kB pages can be used in chunks of 2kB. Keeping the relationship of one chunk per page improves robustness and performance (rather than say trying to "fake" 512byte pages). A block comprises 64x2kB pages.</P> <LI><P>Some devices have 512byte pages, but are arranged as multiple "bit planes" which can be programmed and erased in parallel. For example, the Samsung K9K1G08U0M can support 4 simultaneous operations. YAFFS2 can exploit this by using 2kB chunks by using groups of 4 pages - one on each bitplane. Virtual blocks would be built which comprise 32x2kB chunks.</P></UL><P>To this end, yaffs_guts is being re-crafted to support arbitrarychunk size (power of 2, >= 1024), with arbitrary block size.</P><P>Currently, YAFFS also makes some other assumptions which will needto be changed:</P><UL> <LI><P>Spare layout. Might need to be changed. This is relatively simple to shuffle around.</P> <LI><P>Bad block detection. Currently YAFFS uses the SmartMedia detection (checks first two pages for bad block markers). Needs to be more flexible. eg. Sandisk/Toshiba MLC parts mark the last two pages in a block.</P> <LI><P>ECC was on this list, but now seems flexible enough. Thanx Thomas.</P></UL><P>Some of these differences can be absorbed in the yaffs_mtd layer.Some will need to be handles inside the mtd itself.</P><P>$Id: yaffs2.html,v 1.2 2003/01/14 23:15:41 charles Exp $</P><P><BR><BR></P><P><BR><BR></P></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -