From: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
To: Ivan Djelic <ivan.djelic@parrot.com>
Cc: Vipin Kumar <vipin.kumar@st.com>,
Viresh KUMAR <viresh.kumar@st.com>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
"David.Woodhouse@intel.com" <David.Woodhouse@intel.com>
Subject: Re: [PATCH] Newly erased page read workaround
Date: Fri, 01 Apr 2011 17:16:01 +0300 [thread overview]
Message-ID: <1301667361.2789.84.camel@localhost> (raw)
In-Reply-To: <20110401140429.GB19151@parrot.com>
On Fri, 2011-04-01 at 16:04 +0200, Ivan Djelic wrote:
> On Fri, Apr 01, 2011 at 02:04:41PM +0100, Artem Bityutskiy wrote:
> > On Fri, 2011-04-01 at 14:14 +0200, Ivan Djelic wrote:
> > > Did you consider this idea: if you have an unused byte available in oob,
> > > program it to 0x00 when a page is programmed.
> >
> > I guess this depends on the the controller, but probably this could mean
> > a substantial write overhead, not?
>
> Sorry, my explanation was probably not very clear.
>
> When you program a page, you send data and oob contents to your NAND controller.
> The controller may modify oob contents to add ECC bytes, in a more or less
> automatic way, then it will physically program the page.
Right, I just assumed that some controllers allow you to send only data,
and programming OOB would be a separate operation. But if this is not
the case in ST's HW - then this sounds like a very good approach!
> > > That way, you just need to check a single byte when you read a page in order
> > > to distinguish erased pages from programmed pages. And by counting the number
> > > of 1s in the byte, you can be robust to bitflips.
> >
> > Could you please explain some more what do you mean? So you write the
> > 0x00 byte. Then when you read, you count the number of "1" bits in the
> > byte. And what exactly this count gives you and to which bitflips you
> > become robust?
>
> I meant that you can be robust to bitflips occurring in the marker byte itself.
> If you just compare the marker byte to 0x00 or 0xff, you will not be able to
> handle values such as 0x01 or 0x7f (occuring because of bitflips).
> You can count the number of 1s in the marker, and decide for instance:
> count < 4 => marker is 0x00
> count >= 4 => marker is 0xff
> That way, the marker is reliable up to 3 bitflips (which is very improbable in
> the same byte).
I see.
I'm curious, if the OOB area is so unreliable, how can we trust it to
store our ECC? We need a mini-ECC for the ECC then?
> Let us assume Vipin implements the marker idea. He reads a page, and the marker
> test tells him the page has never been programmed. So he will avoid performing
> ECC correction on that page. But that page could nevertheless contains bitflips
> (i.e. not all bytes equal to 0xFF). He could memset page data with 0xFFs to
> blindly remove possible bitflips, as if the ECC engine had fixed them.
Ah, I see. Although hiding bit-flips from upper layers might be not the
best idea sometimes.
--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
next prev parent reply other threads:[~2011-04-01 14:18 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-24 6:10 [PATCH] Newly erased page read workaround Viresh Kumar
2011-02-24 9:38 ` Ivan Djelic
2011-02-24 10:20 ` Vipin Kumar
2011-02-24 11:10 ` Ivan Djelic
2011-02-24 11:36 ` Vipin Kumar
2011-03-22 4:36 ` viresh kumar
2011-03-31 13:51 ` Artem Bityutskiy
2011-04-01 6:28 ` Vipin Kumar
2011-04-01 6:51 ` Artem Bityutskiy
2011-04-01 8:33 ` Vipin Kumar
2011-04-01 8:39 ` Artem Bityutskiy
2011-04-01 9:06 ` Vipin Kumar
2011-04-01 9:42 ` Artem Bityutskiy
2011-04-01 12:14 ` Ivan Djelic
2011-04-01 13:04 ` Artem Bityutskiy
2011-04-01 14:04 ` Ivan Djelic
2011-04-01 14:16 ` Artem Bityutskiy [this message]
2011-04-01 14:49 ` Ivan Djelic
2011-04-01 14:58 ` Ricard Wanderlof
2011-04-01 15:46 ` Ivan Djelic
2011-04-01 16:09 ` Ivan Djelic
2011-04-01 16:16 ` Artem Bityutskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1301667361.2789.84.camel@localhost \
--to=artem.bityutskiy@nokia.com \
--cc=David.Woodhouse@intel.com \
--cc=ivan.djelic@parrot.com \
--cc=linux-mtd@lists.infradead.org \
--cc=vipin.kumar@st.com \
--cc=viresh.kumar@st.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.