Skip to contentSkip to conversation

Strange NOR read/write throughput behaviour

DISCUSSION Bernhard Priewasser 2 participants 7 messages Nov 15, 2005 – Dec 6, 2005 Memory technology devices (MTD)

lore
Share & tools
lore
#1 lore raw
Quoted 12 lines · Bernhard Priewasser

Hi all,

can anybody help me explaining this diagram of NOR read throughput?

http://files.lamark.de/nor_read.png

As soon as a file, read from a StrataFlash containing only this file, exceeds erase block size (128KiB), file reading lasts a portion of time longer and read throughput stagnates...

Write throughput seems to be constant around erase block size:

Quoted 9 lines

http://files.lamark.de/nor_write.png

Best regards,
Bernhard

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

Could you please explain the experiment a little more?

How are you measuring read and write throughput?

Which StrataFlash are you using? What board are you connecting the flash to? What kernel and MTD are you using?

#2 lore raw
Quoted 1 line

Could you please explain the experiment a little more?

Sure!

Quoted 1 line

How are you measuring read and write throughput?

C-Program, gettimeofday(). Very clean conditions: Empty flash, mount JFFS2, fopen one file. Measure duration of fwrite(filesize). Throughput = 1/duration.

Quoted 1 line

Which StrataFlash are you using?

E28F128J3, 128 Mbit. 128KiB erase block size.

Quoted 1 line

What board are you connecting the flash to?

Hynix HMS30C7202 evaluation board.

Quoted 1 line

What kernel and MTD are you using?

Kernel 2.6.11-hnx3
MTD/JFFS2 of kernel 2.6.11. (I know, I should try newest CVS...)

Signature · 1 line
Bernhard
#3 lore raw
Quoted 12 lines · Bernhard Priewasser
Quoted 1 line

Could you please explain the experiment a little more?

Sure!

Quoted 1 line

How are you measuring read and write throughput?

C-Program, gettimeofday(). Very clean conditions: Empty flash, mount JFFS2, fopen one file. Measure duration of fwrite(filesize). Throughput = 1/duration.

Quoted 1 line

Which StrataFlash are you using?

E28F128J3, 128 Mbit. 128KiB erase block size.

Quoted 1 line

What board are you connecting the flash to?

Quoted 9 lines

Hynix HMS30C7202 evaluation board.

Quoted 1 line

What kernel and MTD are you using?

Kernel 2.6.11-hnx3
MTD/JFFS2 of kernel 2.6.11. (I know, I should try newest CVS...)

--
Bernhard

What about the read test.

#4 lore raw
Quoted 1 line

What about the read test.

As simple as you can imagine. Write a file (fopen, fwrite, fclose), wait some time, read the file (fopen, fread, fclose). Do you think there are caching mechanism responsible for it?

Signature · 1 line
Bernhard
#5 lore raw
Quoted 9 lines · Bernhard Priewasser
Quoted 1 line

What about the read test.

As simple as you can imagine. Write a file (fopen, fwrite, fclose), wait some time, read the file (fopen, fread, fclose).
Do you think there are caching mechanism responsible for it?

--
Bernhard

Sorry for the long wait.

Yes, It sure looks like a caching effect. What is happening at 128KiBs? Let me ask around a little more. This is an arm7 processor, no L1 or L2 caches?

#6 lore raw
Quoted 1 line

Sorry for the long wait.

No problem.

Quoted 2 lines

Let me ask around a little more. This is an arm7 processor, no L1 or L2 caches?

ARM 720T, 8 KiB combined instruction/data cache. I don't know if there is any L2-Cache on Hynix HMS30C7202; but if there is one, I doubt it's as big as 128 KiB. It looks pretty much like there is a cache sized 128 KiB somewhere beetween fread() and the flash. But don't know where...

Signature · 1 line
Bernhard