Wear levelling and getting max leverage from 100,000writes

Discussion about the ZBasic language including the System Library. If you're not sure where to post your message, do it here. However, do not make test posts here; that's the purpose of the Sandbox.
Post Reply
abarnes
Posts: 16
Joined: 24 December 2007, 11:45 AM

Wear levelling and getting max leverage from 100,000writes

Post by abarnes »

Don (or others):

Feature request, I guess. It would be great to have something like this built directly into the interpretor -- to automatically reassign the underlying memory values to varying locations in the physical memory based on how many times the underlying physical memory has already been written to on a particular block.

This can greatly increase the lifetime of the underlying memory chips in our ZBasic devices, even for those that don't quite know how to do this themselves. And even for those of us that do know how to do this and employ it to a certain extent to decrease the wear of certain algorithms of code, the in-code manual solution isn't nearly as elegant as an interpretor based solution for the entire program. This would abstract this problem away for the ZBasic programmer -- and I think that's the idea behind most BASIC programming languages. It would also enable better optimization of this method than a practical ZBasic program could possibly accommodate without some very strange looking code.

Ideally this feature could be enabled/disabled, but it would be a great option with many practical uses for your users -- like me!

http://en.wikipedia.org/wiki/Wear_levelling

What are your thoughts?

Thanks!
Austin

p.s. Have you ever looked into the programming language "Erlang"?.. Check out the wikipedia article some time.

p.s.s. The autoupdate feature was moved back in our company's roadmap. I'm slated to begin it in two weeks. I really look forward to it, and you might see some more posts from me then..
abarnes
Posts: 16
Joined: 24 December 2007, 11:45 AM

Post by abarnes »

or maybe a happy medium is just support for

bad block management (BBM)

which verifies writes (when the feature is turned on) and if the writes don't seem to be working, it remaps the block to a new block on the chip automatically and transparently to the program/coder..

- Austin
abarnes
Posts: 16
Joined: 24 December 2007, 11:45 AM

Post by abarnes »

ps. we use NAND flash memory in our write-critical devices to get 1,000,000 hard writes instead of 100,000
Post Reply