Read/nBusy via interrupt
Aras Vaichas
arasv at magellan-technology.com
Fri Oct 29 05:56:19 EDT 2004
Thomas Gleixner wrote:
> On Fri, 2004-10-29 at 09:43 +1000, Aras Vaichas wrote:
>
>>Ben Dooks wrote:
>>
>>>Does anyone here have any comments over the pros/cons of using
>>>an interrupt which goes off to wait for a NAND flash ready/not-busy
>>>signal?
>>>
>>
>>pros of using interrupt:
>>* faster MTD access (maybe, depends on polling rate) but as a percentage of
>>total access time it probably doesn't make much difference.
>
> For program and erase it makes a lot of difference. The waiting process
> releases the CPU and gets woken when the job is done. Arguing with
> percentage of total access time is utter crap here. The poll/yield loop
> involves unneccecary context switches, which can significantly influence
> the overall system performance on smaller systems.
"utter crap", is that ISO standard terminology?
I said "faster MTD access". I wasn't talking about efficiency. I was talking
about the latency between the polling period and the interrupt ... and the
latency divided by the total access time probably isn't that much as a
percentage of time "wasted".
>>cons of using interrupt:
>>* more pins used up on CPU
>
> No. Usually R/B is connected anyway.
usually? If the software doesn't need it, then why would you connect it?
>>* more code to write and debug!
>
> About 20 lines. I'm scared.
No need to be scared. Software engineers don't come for free. development time
== money.
>>* more interrupts going off in system
>
> They go only off, when a long lasting operation is in progress
But still more interrupts, I was simply stating the obvious in order to list
all pros and cons as a complete list.
>>* more pins needed on MTD -> more expensive boards and chips, longer board
>>design times
>
> He ? NAND FLASH has a ready/busy pin, which does not produce extra
> costs. What's the longer design time per pin on complex boards ?
> A typical 32bit embedded system CPU board uses alone about 500 pins for
> connecting CPU, SDRAM, power and the on chip peripherals. Do you really
> want to tell me, that 1 more pin will increase board costs and design
> time significantly ?
I never said it would affect it significantly (or did I?). I was simply stating
the fact that the time does increase. Every pin on a chip costs extra and when
you are planning on making 10,000+ per year of a product, that price difference
makes a affects your company's bottom line. If you don't believe me, then take
a look at the Digikey page for the AT45DB081 and take a long hard look at unit
price versus pin count.
And yes, routing extra pins does cost more because it takes more time to place
them. (remember that time == money equation?) Especially if you are trying to
fit a whole Linux capable system into a small area for a portable, handheld
product.
>>If you take a look at the 8-CASON part, you'll notice that in order to reduce
>>pin count, they leave out the ready/nbusy signal because this information can
>>be obtained by polling. This is really a matter of board space as you can fit
>>1Megabyte of bootable FLASH into a surface mount 8pin package by leaving out
>>this pin.
>
> This is a 1 MByte boot FLASH designed for space constraint devices. You
> need a CPU which can boot from those.
Doesn't it count as an MTD device? Where did this kernel option come from ->
"CONFIG_MTD_AT91_DATAFLASH" ??
> We are talking about NAND >= 32MB, which is often used for filesystems.
Ben didn't mention "NAND >= 32MB, which is often used for filesystems", or
perhaps I read the initial email incorrectly ... hmmm, my bad. The Dataflash
has a ready/nbusy signal as well. I keep a filesystem on the Dataflash! Am I
doing something wrong?!? Oh no ... !
>>If you can spare the board space, why not use interrupts? Make it a kernel
>>option. MTD_EADYNBUSY_INTERRUPT ?
>
> There's no option neccecary at all. This is board related and has to be
> solved by the board driver anyway. The functionality to do so is already
> there.
Good. That's great!
Thomas, your reply to my email was so ridiculously over the top and harsh. I
was simply offering an opinion and some information on a useful MTD device from
the position of someone with hardware experience. Perhaps next time you should
re-think the tone of your replies and consider the signal-to-noise ratio of
what you write. I'm sure this forum will be a better place for it.
:)
regards,
Aras
More information about the linux-mtd
mailing list