Some follow on to some questions that Wookey poses. Please forgive the lack of indentation. On Mon 04 Nov, Charles Manning wrote: > I have started working on YAFFS2. > The main purpose behind YAFFS2 is to support the larger NAND parts with 2kB > pages and zero rewrite. But wait, there's more... lower RAM footprint, > faster,... > YAFFS2 needs at least a 1kB chunk size. On 512byte pages you can do this by > just using two pages per chunk. This means a bit more wasted space at the end > of files. Thus, probably the best approach will be to use YAFFS1 on NAND > arrays less than, say, 128MB. > Since almost all the algorithms are the same for YAFFS1 and YAFFS2, I expect > to keep the code together with YAFFS1 or YAFFS2 being run-time selectable (ie > as a flag in the device structure). > Any ideas/input/wishes more than welcome. > Herewith a brief outline. [Wookey]Looks good. A few queries presumalby the timings are theoritical at this stage - did you do profiling on YAFFS1 and then extrapolate to YAFFS2, or just work them out from the combination of YAFFS behaviour and NAND timing specs? [Charles] The timing is done using NAND access times with relatively slow timing to compensate for other code. Mileage will vary. Since the look-up and data transfer algorithms will be largely the same, the timing differences should only be taken as an indication. ie. stuff will be faster. [Wookey]What does the 2KB pagesx16 column mean? A chunk size of 2k and a block size of 32K, or a 32K chunk size with 2K pages? [Charles] The x16 means using a 16-bit bus. The newer 2kB page parts can be wired in as 16 or 8 bit. Since data transfer into/out of the NAND is a significant part of the total time, moving to a 16-bit bus (and halving the time) is a GoodThing(tm). Also, BTW, these parts can execute code directly off the NAND from page 0. This means you can implement a basic bootstrap in the NAND and get rid of the NOR. [Wookey]I don't see why the RAM footprint decreases - is this mostly a side-effect of the chunk size (and thus the average 'wasted space') growing, and hence number of chunks to be tracked in memory reducing? [Charles] Most of the RAM used by YAFFS is in the yaffs_Tnodes used in the file structure tree. Since YAFFS2 chunks are bigger, there are less chunks in the file for the same file size - hence less Tnodes. YAFFS uses approx 4kB per MB in TNodes. 1kB chunks would halve that; 2kB chunks would quarter that. -- Charles --------------------------------------------------------------------------------------- This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org). If mailing list membership is no longer wanted you can remove yourself from the list by sending an email to yaffs-request@toby-churchill.org with the text "unsubscribe" (without the quotes) as the subject.