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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox