Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Wat doet de controller van verschillende flash media?

Pagina: 1
Acties:

  • Wbdsgnr
  • Registratie: Maart 2002
  • Laatst online: 15-11 16:38

Wbdsgnr

Discombobulated?

Topicstarter
Ik ben bezig een systeem te ontwerpen welke gebruikt maakt van flash geheugen. Als je een kale chip neemt dan krijg je te maken met dingen als
  • wear leveling
  • bad block management
  • virtual mapping
  • error correction
En zo kan je nog wel even doorgaan. Wat ik me dus afvraag, en waar ik geen duidelijk antwoord op kan vinden, is in hoevere deze zaken worden afgehandeld door de onchip controller van bijvoorbeeld sd kaartjes. Ik weet dat CF kaartjes volgens mij in iedergeval wear leveling toepassen maar hoe zit het dan weer met bad blocks? Is het dan nog nodig om virtual mapping te gebruiken? Als hier iemand ervaring mee heeft, wil ik het graag horen :) Het zou in iedergeval aardig wat programmeer werk schelen als de bovenstaande zaken al hardwarematig gedaan worden.
En in hoevere scheelt dit met verschillende merken.. Ik weet dat sandisk volgens mij aardig wat functionaliteit in z'n controllers stopt.. maar wat dan weer met pqi? :) In de CF en SD standaard specificaties staat er vrijwel niets over...

Alvast bedankt :)

i7 - GTX760 - triple boot


  • madwizard
  • Registratie: Juli 2002
  • Laatst online: 26-10-2024

madwizard

Missionary to the word of ska

Ik heb voor mijn mini LCD video spelertje een oude geheugenchip gebruikt uit een mp3 speler, standaard NAND flash van Samsung dat ook veel in USB sticks en muziekspelers gebruikt wordt (ipod nano o.a.). Hierbij kreeg ik inderdaad te maken met bad blocks e.d. Een lijstje over deze specifiek:
  • Het geheugen was ingedeeld in pagina's van 2112 bytes, 2048 bytes aan data en 64 bytes die voor error correctie/detectie gebruikt kunnen worden. Dit werd echter niet door de chip zelf gedaan, het is gewoon een handigheidje voor de controller.
  • De chip kon fouten aangeven bij het wegschrijven van data, als de data niet goed geverifieerd kon worden. Je schrijft de pagina eerst naar een intern ram geheugen waarna het geschreven wordt in het flash geheugen en geverifieerd.
  • Error correctie bij het lezen, of detectie zelfs werd niet gedaan. Je kon de extra bytes voor ECC gebruiken maar dat moet je allemaal zelf regelen.
  • Bij fabricage wordt het geheugen getest en een lijstje 'initial invalid blocks' gemaakt. Dit zijn blokken die vanaf het begin al niet goed functioneren. Bij de blokken die stuk zijn worden in de extra 64 bytes een aantal bytes op 0 gezet. Zo kun je de eerste keer dat je het geheugen gebruikt deze blokken vinden. Je moet dan echter wel de nummers van deze blokken ergens anders bewaren omdat dat geheugen natuurlijk weer overschreven gaat worden. Het is dus echt alleen een lijstje dat je bij de eerste initialisatie (formatteren oid) kunt inlezen.
  • Geheugenblokken kunnen ook later defect worden maar dit moet je ook zelf bijhouden. De chip zelf slaat geen blokken automatisch over en mapt ze ook niet op andere blokken
  • De chip had wel een manier om een blok te kopieren van 1 punt naar een ander punt zonder de data te hoeven lezen en schrijven. Dit is ook als hulpmiddel voor bad blocks.
CF en SD kaartjes zullen de bad blocks wel verbergen op een of andere manier, die hebben immers nog een controller ertussen zitten.

www.madwizard.org


  • Wbdsgnr
  • Registratie: Maart 2002
  • Laatst online: 15-11 16:38

Wbdsgnr

Discombobulated?

Topicstarter
Hmmz ja precies, zulke problemen heb ik in principe al geanticipeert.. bedankt :) Maarja.. wat doet dat controllertje op die CF of SD kaart dan wel precies.. kijk hij verzorgt in iedergeval de interface tussen geheugen en apparaat, maar wat nog meer?

i7 - GTX760 - triple boot


  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 29-10 06:07

Sprite_tm

Semi-Chinees

Ik weet dat SD iig aan wear levelling en uitwisselen van bad sectors doet. Je kan een MMC/SD-kaart gewoon aanspreken alsof het een HD is; sector lezen, sector schrijven, ..., de subtiliteiten van de flash die erachterhangt handelen de controllertjes zelf af. Afaik geld dit ook voor CF en eigenlijk alle flash-media, SmartMedia-kaartjes uitgezonderd.

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


  • InjecTioN
  • Registratie: Juli 2005
  • Laatst online: 10:29

InjecTioN

¯\_(ツ)_/¯

is dit ook te doen met een usb > IDE-converter?? ik heb dit weekend namelijk een usb-hdd-bay ontvangen met doorgebrande voeding. daar zit een leuk chipje op, waarmee ik het leuke idee heb om er een ipod achtig iets mee te bouwen. ik heb hiervoor nog een oude usb-mp3-speler liggen.

het is een cy7c683008-chip, maar ik kan er geen datasheet van vinden... 't is een cypress-chipje, en is compatible met atapi to usb2.0/firewire400

1995: 486 AM5x86-p75@160 512kb L2, 64MB, S3 Stealth 64 3000 4MB VLB, AWE64 Value, 8GB CFµDrive
1998: K6-III 400MHz, 384MB, Voodoo4 AGP, AWE64 Gold!, Adaptec AHA-29160+2x 72GB 10krpm SCSI