From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8622 invoked by alias); 12 Nov 2009 18:32:27 -0000 Received: (qmail 8607 invoked by uid 22791); 12 Nov 2009 18:32:27 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_05,SPF_PASS X-Spam-Check-By: sourceware.org Received: from hagrid.ecoscentric.com (HELO mail.ecoscentric.com) (212.13.207.197) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 12 Nov 2009 18:32:22 +0000 Received: from localhost (hagrid.ecoscentric.com [127.0.0.1]) by mail.ecoscentric.com (Postfix) with ESMTP id CB05D2F7840D; Thu, 12 Nov 2009 18:32:19 +0000 (GMT) Received: from mail.ecoscentric.com ([127.0.0.1]) by localhost (hagrid.ecoscentric.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ox7fGFItPUf3; Thu, 12 Nov 2009 18:32:17 +0000 (GMT) Message-ID: <4AFC54C7.4010101@ecoscentric.com> Date: Thu, 12 Nov 2009 18:32:00 -0000 From: Ross Younger User-Agent: Thunderbird 2.0.0.23 (X11/20090817) MIME-Version: 1.0 To: Jonathan Larmour CC: eCos developers Subject: Re: NAND technical review References: <4ACB4B58.2040804@ecoscentric.com> <4ACC61F0.3020303@televic.com> <4AD3E92E.5020301@jifvik.org> <4AD47ADE.9010606@cs.vu.nl> <4AD6A7EC.8080703@jifvik.org> <4ADC452B.5040706@ecoscentric.com> <4ADD14E1.3050702@jifvik.org> <4ADD8E47.1080305@ecoscentric.com> <4ADE6C92.9060300@jifvik.org> <4AE02E54.7000508@ecoscentric.com> <4AF8F6D7.1000709@jifvik.org> <4AF94296.7040104@ecoscentric.com> In-Reply-To: <4AF94296.7040104@ecoscentric.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact ecos-devel-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-devel-owner@ecos.sourceware.org X-SW-Source: 2009-11/txt/msg00010.txt.bz2 > (PS. BTW, I am still working on that fresh anon-based drop I promised the > other week ...) It's a little later than I had hoped, but I've just cut another drop against the anoncvs codebase. Thanks to mercurial I can now do this a lot more easily, and of course you get the ability to interactively browse the tree and changelogs via the web for free. (Rather than convert my entire change history, which is a bit messy, I started with the August 26 drop and have hg-imported just the changes since then.) I have exposed two repositories: 1. http://hg-pub.ecoscentric.com/nand-ecoscentric/ This is a clone of the "ecos" (anoncvs import) repo, with our NAND support patched in. (Of course, if you already have a clone of the ecos repo and you want to play with this, you should be able to pull just the changes from nand-ecoscentric.) 2. http://hg-pub.ecoscentric.com/yaffs-ecoscentric/ This is the union of YAFFS upstream (imported wholesale from CVS), our changes required to put it into the correct directory layout etc. and the porting layer to bring it into eCos. This is a separate repo because of the licence and so it's easy to keep track of upstream's changes. Note: * I will only sync from ecos to nand-ecoscentric, from yaffs upstream to yaffs-ecoscentric, and from my internal repos to both of these, from time to time. * eCosCentric may pull these repositories at any time. ==================================================================== Headline changes since Aug 26 NAND: * v2 device interface created, and later rationalised. read_page and write_page were split into three (begin, stride, finish); the optional read_part_page was added. * ECC interface expanded to better allow hardware assistance. * Software ECC completely rewritten for major speedup (over 20x faster on my workstation, a more modest 3x faster on the ea2468). NAND devices: Updated to suit v2 interface. ea2468 HAL, stm3210e HAL, synth nand: Various significant speed boosts. ==================================================================== Benchmark results It occurred to me that I could run dhrystone while I was at it to try and provide some degree of comparison between the hardware, but as you will see the correlation isn't all that great. Here are some results obtained today from the above repos. The times are in microseconds, and I've omitted the part reads (rwbenchmark's first two outputs) for brevity. Target Dhrystones/s Page-read Page-write Block-erase --------------------------------------------------------------- ea2468 16 14179.4 1853.92 1842.77 1978.27 stm3210e_eval 7252.9 712.27 1007.37 1921.03 synth(*) 13458950.2 2.21 4.00 9.33 (*) On my workstation - a Core2 Quad running at 2.4Ghz. Bear in mind that the stm3210e has a small-page NAND chip while the ea2468 a large page. Ross -- Embedded Software Engineer, eCosCentric Limited. Barnwell House, Barnwell Drive, Cambridge CB5 8UU, UK. Registered in England no. 4422071. www.ecoscentric.com