[Yaffs-archive] RE: YAFFS - YAFFS2 starts

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: 'yaffs@toby-churchill.org'
Subject: [Yaffs-archive] RE: YAFFS - YAFFS2 starts
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 with the text "unsubscribe"
(without the quotes) as the subject.