FI121559B - Vain Sekventiaalista kirjoitusta käyttävä flash-hallintajärjestelmä ja -menetelmä - Google Patents

Vain Sekventiaalista kirjoitusta käyttävä flash-hallintajärjestelmä ja -menetelmä Download PDF

Info

Publication number
FI121559B
FI121559B FI20030789A FI20030789A FI121559B FI 121559 B FI121559 B FI 121559B FI 20030789 A FI20030789 A FI 20030789A FI 20030789 A FI20030789 A FI 20030789A FI 121559 B FI121559 B FI 121559B
Authority
FI
Finland
Prior art keywords
physical
page
virtual
block
written
Prior art date
Application number
FI20030789A
Other languages
English (en)
Swedish (sv)
Other versions
FI20030789A0 (fi
FI20030789A (fi
Inventor
Menachem Lasser
Original Assignee
Milsys Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Milsys Ltd filed Critical Milsys Ltd
Publication of FI20030789A0 publication Critical patent/FI20030789A0/fi
Publication of FI20030789A publication Critical patent/FI20030789A/fi
Application granted granted Critical
Publication of FI121559B publication Critical patent/FI121559B/fi

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Description

VAIN SEKVENTIAALISTA KIRJOITUSTA KÄYTTÄVÄ FLASH-HALLINTAJÄRJESTELMÄ JA -MENETELMÄ
KEKSINNÖN ALA
Esillä oleva keksintö liittyy järjestelmään 5 ja menetelmään tehokkaampaan datan hallintaan ja tallennukseen flash-laitteissa, ja erityisesti järjestelmään ja menetelmään, joissa informaation tallennus ja haku flash-laitteissa suoritetaan muistin sekventiaa-lisiin fyysisiin osiin kohdistuvien sekventiaalisten 10 kirjoitusoperaatioiden kautta.
KEKSINNÖN TAUSTA
Flash-laitteisiin kuuluu EEPROM-muistit (electrically erasable and programmable read-only me-15 mory), jotka on tehty flash-tyyppisistä kelluva- hilaisista transistoreista, ja jotka ovat toiminnallisuudeltaan ja suorituskyvyltään EPROM-muistien kaltaisia haihtumattomia muisteja, ja joilla on lisätoimin-nallisuus, joka mahdollistaa in-circuit -tyyppisen oh-20 jelmoitavan operaation muistin osien pyyhkimiseksi.
Flash-laitteiden etuna on suhteellinen huokeus ja suhteellisen pieni tehontarve verrattuna perinteisiin magneettisiin tallennuslevyihin. Flash-laitteessa ei kuitenkaan ole käytännöllistä kirjoittaa uudelleen ai-25 emmin kirjoitettua muistin aluetta pyyhkimättä aluetta ensin. Tämän flash-laitteiden rajoituksen seurauksena ne ovat epäyhteensopivia tyypillisten olemassa olevien käyttöjärjestelmäohjelmien kanssa, koska dataa ei voida kirjoittaa sellaiselle muistin alueelle flash-30 laitteessa, johon on aikaisemmin kirjoitettu dataa, ellei aluetta ensin pyyhitä.
Tunnetussa tekniikassa on ehdotettu ohjelmistotuotteita, jotka mahdollistavat flash-laitteen hallinnan olemassa olevilla tietokoneen käyttöohjelmilla 35 ilman käyttöjärjestelmäohjelman modifiointia. Kaikilla näillä tunnetun tekniikan mukaisilla ohjelmilla on 2 kuitenkin puutteita. Yksi ohjelma esimerkiksi käyttää flash-muistia "kirjoita kerran lue monta" -laitteena. Tämä tunnetun tekniikan mukainen ohjelmistotuote ei voi kierrättää aiemmin kirjoitettuja muistipaikkoja.
5 Kun kaikki paikat on lopulta kirjoitettu, muistia ei voida enää käyttää ilman erillistä käyttäjän asiaan puuttumista. Näiden tunnetun tekniikan puutteiden korjaamiseksi patentissa US 5,404,485 tuotiin esiin järjestelmä nimeltä Flash File System (FFS), joka omiste-10 taan yhdessä esillä olevan hakemuksen kanssa ja joka täten sisällytetään viitteenä niin kuin se olisi esitetty tässä kokonaisuudessaan. FFS toi esiin datan tallentamisen ja manipuloimisen järjestelmän flash-laitteissa, joka mahdollisti näiden laitteiden emuloi-15 da magneettilevyjä. Kuten yllä huomautettiin, flash- laitteiden suhteellisen huokeat kustannukset ja pieni tehonkulutus tekee niistä edullisen valinnan datan tallennukseen erityisesti kannettaviin tietokoneisiin. FFS parantaa flash-laitteiden kykyä toimia korvikkeena 20 magneettilevylle tallentamiselle. FFS sellaisena kuin se patentissa US 5,404,485 tuodaan esiin on itse asiassa osoittautunut niin hyödylliseksi, että PCMCIA (Personal Computer Memory Card International Association) ja JEIDA (Japan Electronic Industry Develop-25 ment Association) -komiteat omaksuivat sen datansi- joitteluspesifikaation (data layout specification) standardiksi nimeltä Flash Translation Layer (FTL).
FFS oleellisesti kuvaa virtuaalisen kartoitus j ärj estelmän flash-EEPROM-laitteille. Virtuaali-30 kartta on taulukko, josta ilmenee flash-laitteen si säisen luku/kirjoitussivun fyysisen osoitteen suhde sen sivun virtuaaliseen osoitteeseen. Koska kukin näistä sivuista on suhteellisen pieni, 512 tavua, itse virtuaalikartan koko on melko suuri. FFS:ään kuuluu 35 myös virtuaalikartan pääosan tallentamisen ja ylläpi tämisen menetelmä flash-EEPROM-laitteessa, mikä mini- 3 moi muun virtuaalikartan tallentamiseen tarvittavan muistin määrän.
Kuten yllä todettiin, FFS on osoittautunut erityisen onnistuneeksi flash-laitteiden muuntamisessa 5 magneettilevytallennuksen emulaattoreiksi, jopa siinä määrin, että se on omaksuttu teollisuusstandardiksi. FFS ei voi kuitenkaan täyttää uudempien flash-laiteteknologioiden vaatimuksia. Eritoten FFS ei sovi yhtä hyvin NAND ja AND flash-teknologioiden yhteyteen. 10 Siten patentti US 5,937,425, joka omistetaan yhdessä esillä olevan hakemuksen kanssa ja joka täten sisällytetään viitteenä niin kuin se olisi esitetty tässä kokonaisuudessaan, kuvaa flash-hallintajärjestelmän li-sätoteutuksen näille teknologioille. Kumpikin näistä 15 toteutuksista on kuitenkin pääasiassa hyödyllinen flash-muistien tietyille teknologiatyypeille.
Tyypilliset flash-hallintajärjestelmät mukaan lukien edellä kuvatut järjestelmät luottavat mahdollisuuteen kirjoittaa sivuja yksikössä satunnaisessa jär-20 jestyksessä niin, että aiemmin tyhjään lohkoon kirjoitettava ensimmäinen sivu ei välttämättä ole fyysisesti ensimmäinen sivu lohkossa, vaan sivu keskellä tai jopa lopussa. Tämä datan lisäämisen sekvenssi voi jatkua missä tahansa satunnaisessa järjestyksessä, sillä 25 flash-laitteiden oletetaan sallivan minkä tahansa lohkossa olevien sivujen sivunkirjoitusjärjestyksen. Yllä mainitut hallintajärjestelmät toimivat melko hyvin näiden tyyppisten flash-laitteiden kanssa.
Poikkeus tämän tyyppiseen datan kirjoittami-30 sen mekanismiin on löydettävissä flash- hallintajärjestelmistä, jotka välttävät tällaista datan satunnaista lisäämistä. Nämä järjestelmät toimivat allokoimalla uuden lohkon ja kopioimalla jo kirjoitetut sivut olemassa olevasta lohkosta uuteen lohkoon 35 rinnakkain uuden sivun kirjoittamisen kanssa siihen samaan lohkoon jokaista kirjoitusoperaatiota kohti. Vaikka tällaiset menetelmät voivat välttää tarpeen si- 4 vunkirjoitusoperaatioiden satunnaiseen järjestykseen kirjoittamalla aina uuden lohkon sekventiaalisesti, ovat ne erittäin tehottomia silloin, kun itse sivun-kirjoituspyynnöt saapuvat satunnaisessa järjestykses-5 sä, sillä uusi lohko pitää allokoida ja aiempi data pitää kopioida melkein jokaisella kirjoitusoperaatiolla. Siten tehokkaimmat tällä hetkellä saatavilla olevat tiedostonhallintajärjestelmät, kuten FFS luottavat uuden datan kirjoittamiseen satunnaisen sivujärjestyk-10 sen mukaan.
Kuitenkin samalla, kun flash-laitteiden piin geometria jatkaa kutistumistaan, pienemmät geometriat vaikuttavat niiden ominaisuuksiin ja käyttäytymiseen yhä enemmän. Eritoten satunnaiset sivujärjestykset da-15 tan kirjoittamiseen käyvät yhä epäluotettavammiksi näiden fyysisesti kompaktimpien laitteiden toiminnan kannalta. Äskettäin eräs merkittävä flash-muistin valmistaja Toshiba Inc. (Japani) ilmoitti, että sen seu-raavan sukupolven NAND-flash-laitteet, jotka käyttävät 20 0.16 mikronin prosessin teknologiaa, edellyttävät sek- ventiaalisia sivunkirjoitusoperaatioita lohkon sisällä sen sijaan, että ne edellyttäisivät datan lisäämistä satunnaisen sivujärjestyksen mukaan. Koska näiden laitteiden odotetaan tulevan laajalti käyttöön markki-25 noilla, on siten kiireinen tarve kehittää tehokas flash-hallintajärjestelmä, joka suorittaa vain sekven-tiaalisia kirjoitusoperaatioita flash-muistiin.
KEKSINNÖN YHTEENVETO
30 Tunnetusta tekniikasta ei ilmene mekanismia sellaisten flash-laitteiden tehokkaaseen hallintaan, jotka rajoittuvat sekventiaalisiin kirjoitusoperaatioihin. Lisäksi tunnetusta tekniikasta ei ilmene sellaista mekanismia, joka ei edellytä datan kirjoitta-35 mistä vastikään allokoituun lohkoon, ja joka ei edellytä aiemmin kirjoitettujen sivujen siirtämistä tähän uuteen lohkoon osana samaa operaatiota.
5
Esillä oleva keksintö tarjoaa ratkaisun näihin tunnetun tekniikan puutteisiin tuomalla esiin muistin organisointimenetelmän, joka tukee sekventiaa-lisiin kirjoitusoperaatioihin rajoittuvia flash-5 laitteita niin, että data kirjoitetaan flash- laitteelle ilman, että aiemmin kirjoitettua dataa pitäisi siirtää, ja ilman että rikotaan sekventiaalisen kirjoituksen rajoitusta.
Esillä olevan keksinnön mukaisesti tuodaan 10 esiin järjestelmä, joka käsittää: flash- muistijärjestelmän, joka käsittää ainakin yhden flash-laitteen, jossa kyseisessä flash-laitteessa on muistia, joka käsittää joukon lohkoja, jotka kukin lohko käsittävät joukon sivuja; ja flash- 15 hallintajärjestelmän sivunkirjoituspyyntöjen hallitse miseksi riippumatta järjestyksestä, jossa kyseiset sivunkir joituspyynnöt vastaanotetaan; missä kyseisillä sivuilla on ennalta määrätyt kiinteät pituudet, ja missä järjestelmä edelleen käsittää moduulin sen ky-20 seisen vastaanottojärjestyksen, jossa kyseiset sivun kir j oituspyynnöt vastaanotetaan yhdessä niihin liittyvän ohjausdatan kanssa, muuntamiseksi kirjoitusjärjes-tykseksi niin, että data kyseisissä sivunkirjoitus-pyynnöissä kirjoitetaan yhdessä mainitun ohjausdatan 25 kanssa fyysisesti sekventiaalisina sivuina kunkin lohkon sisällä riippumatta kyseisten sivunkirjoituspyyn-töjen kyseisestä vastaanottojärjestyksestä.
Esillä olevan keksinnön mukaisesti tuodaan edelleen esiin menetelmä kirjoitusoperaatioiden suo-30 rittamiseksi flash-laitteelle, joka sallii vain sek- ventiaalisia kirjoitusoperaatioita lohkon sisällä riippumatta järjestyksestä, jossa kirjoituspyynnöt kyseisten kirjoitusoperaatioiden suorittamiseksi vastaanotetaan. Menetelmässä vastaanotetaan kirjoitus-35 pyyntö kirjoittaa dataa flash-laitteen osaan, joka ky seinen osa sisältää joukon osoitteita; paikallistetaan osoite kyseisessä osassa kyseisen datan kirjoittami- 6 seksi aiemmin kirjoitetun osoitteen mukaan kyseisessä osassa niin, että kyseinen osoite on fyysisesti sek-ventiaalinen suhteessa kyseiseen aiemmin kirjoitettuun osoitteeseen; ja kirjoitetaan kyseinen data kyseisestä 5 kirjoituspyynnöstä kyseiseen osaan. Sivu lohkon sisällä on ennalta määrätyn kiinteän pituinen, ja paikallistetaan osoite kyseisessä osassa kyseisen datan kyseisestä kirjoituspyynnöstä kirjoittamiseksi yhdessä siihen liittyvän ohjausdatan kanssa, ja kyseinen data 10 10 kyseisestä kirjoituspyynnöstä kirjoitetaan kysei seen osaan yhdessä siihen liittyvän ohjausdatan kanssa .
Tästä eteenpäin termi "fyysinen yksikkö" määritellään yksiköksi fyysisessä mediassa tai muistin 15 laitteistossa, joka on pienin muistin osa, joka voi daan pyyhkiä tai sen kokonaislukuinen monikerta. Se on muistin osa, joka on yhtenäinen, kooltaan kiinteä ja pyyhittävissä oleva.
Tästä eteenpäin termi "sivu" määritellään 20 pienimmäksi yhdessä operaatiossa kirjoitettavaksi da tan palaseksi. Termit "lohko" ja "yksikkö" määritellään samankokoisiksi kuin fyysinen yksikkö, missä lohko sisältää yhden tai useampia sivuja.
Tästä eteenpäin termi "virtuaaliyksikkö" mää-25 ritellään samankokoiseksi kuin fyysinen yksikkö.
Tästä eteenpäin termi "virtuaalikartta" viittaa taulukkoon, joka esittää virtuaalilohkon tai sivun suhteen ainakin yhteen vastaavaan fyysiseen lohkoon tai sivuun.
30 Tästä eteenpäin termi "kirjoitetaan dataa" kuvaa datan flash-muistiin tallentamisen toimenpidettä. Termi "luetaan dataa" kuvaa datan flash-muistista hakemisen toimenpidettä. Tästä eteenpäin termi "kirjoittamaton" indikoi jotakin muistin osaa, kuten fyy-35 sistä lohkoa, jolle voidaan kirjoittaa dataa. Siten termiin "kirjoittamaton" kuuluu juuri pyyhitty muistin osa, mutta se ei rajoitu siihen.
7
Tietokoneessa tai muussa elektronisessa laitteessa, jolla on esillä olevan keksinnön mukaisesti organisoitua flash-muistia, tämän laitteen käyttöjärjestelmä on vuorovaikutuksessa virtuaaliyksiköiden ja 5 virtuaalisivujen kanssa datan lukemiseksi ja kirjoit tamiseksi. Virtuaalimedia, johon kuuluu virtuaaliyksi-köt ja -sivut, toimii siten rajapintana, jonka kautta käyttöjärjestelmä on vuorovaikutuksessa flash-muistilaitteen kanssa. Käyttöjärjestelmä esimerkiksi 10 antaa kirjoituskäskyn kirjoittaa dataa virtuaalisivul-le. Virtuaalisivun sisältävä virtuaaliyksikkö paikallistetaan sitten. Sitten virtuaalikartta paikallistaa vastaavan fyysisen sivun muistin fyysisessä yksikössä, jonne data todellisuudessa tallennetaan. Vaikka käyt-15 töjärjestelmä antaa luku- ja kirjoituskäskyjä niin kuin virtuaaliyksiköt ja virtuaalisivut olisivat flash-muistin varsinaista laitteistoa, todellisuudessa varsinainen laitteisto sisältyy flash-muistin fyysisiin yksikköihin ja fyysisiin sivuihin. Siten käyttö-20 järjestelmä on tietoinen vain virtuaaliyksiköistä ja -sivuista eikä ole suorassa vuorovaikutuksessa itse laitteiston kanssa. Tällaisen rajapinnan etuna on, että flash-muistille ominaiset epäkohdat, kuten vaatimus siitä, että suoritetaan pyyhkimisoperaatio ennen kuin 25 voidaan kirjoittaa lisää, ratkaistaan käyttöjärjestelmän ja virtuaaliosoitteiden vuorovaikutuksella eikä fyysisillä osoitteilla.
PIIRUSTUKSEN LYHYT SELOSTUS
30 Seuraavassa keksintöä selostetaan vain esi merkinomaisesti viittaamalla oheiseen piirustukseen, jossa:
Kuvio 1 on kaaviomainen kuvaus esillä olevan keksinnön mukaisesta fyysisestä flash- 35 muistilaitteesta; 8
Kuvio 2 on kaavio esillä olevan keksinnön mukaisen flash-muistilaitteen perusorganisointijärjes-telmästä; ja
Kuvio 3 on vuokaavio esillä olevan keksinnön 5 mukaisesta esimerkinomaisesta menetelmästä.
EDULLISTEN SOVELLUSTEN SELOSTUS
Esillä oleva keksintö on järjestelmä ja menetelmä vain sekventiaalisten kirjoitusoperaatioiden 10 suorittamiseen flash-laiteyksikölle rajoittuvien flash-laitteiden tehokkaaseen hallintaan. Sen jälkeen, kun kirjoituspyyntö on vastaanotettu, flash-laitteen fyysinen osa paikallistetaan datan kirjoittamista varten aikaisemmin kirjoitetun fyysisen osan paikan mu-15 kaisesti, joka aikaisemmin kirjoitettu fyysinen osa oli viimeinen sellainen osa samassa lohkossa, johon kirjoitettiin niin, että fyysinen osa on fyysisesti korkeammassa osoitteessa lohkossa kuin aikaisemmin kirjoitettu fyysinen osa. Toisin sanoen kirjoitusope-20 raatio suoritetaan paikassa, joka ei riko sekventiaa-lisen kirjoittamisen rajoitusta sen sijaan, että se suoritettaisiin satunnaisesti valitussa paikassa. Tämä osa on edullisesti paikka lohkossa, kuten esimerkiksi sivu niin, että mikäli kirjoittamiseen on käytettävis-25 sä sivu samassa lohkossa, kirjoitetaan data sille sivulle. Jälleen tämä sivu on edullisesti korkeammassa osoitteessa kuin mikään aiemmin kirjoitettu sivu siinä lohkossa. Siten vaikka vaihtoehtoisesti ja edullisemmin "sekventiaalisesti" viittaa fyysisesti peräkkäi-30 siin osoitteisiin, tämä termi edullisesti viittaa osoitteeseen, joka ainakin on korkeampi kuin mikään aiemmin kirjoitettu osoite samassa lohkossa.
Vaihtoehtoisesti ja edullisesti, mikäli vastaanotetaan kirjoituspyyntöjen joukko, dataa ei kir-35 joiteta satunnaisesti, vaikka pyynnöt vastaanotettai siin satunnaisessa järjestyksessä. Sen sijaan data 9 kirjoitetaan edullisesti sivujen sekventiaalisen järjestyksen mukaisesti kunkin fyysisen yksikön sisällä.
Edullisemmin flash-laitteessa on joukko vir-tuaaliosoitteita kartoitettuna fyysisiin osoitteisiin.
5 Kukin fyysinen osoite vastaa fyysistä sivua fyysisessä lohkossa, ja kukin virtuaaliosoite vastaa virtuaa-lisivua virtuaalilohkossa. Kirjoituspyyntö edullisesti sisältää pyynnön kirjoittaa dataa virtuaaliosoittee-seen, joka sitten muunnetaan fyysiseksi osoitteeksi. 10 Vaihtoehtoisesti ja edullisimmin virtuaaliosoitteet kartoitetaan fyysisiin osoitteisiin kartoittamalla kukin virtuaalilohko yhteen tai useampaan fyysiseen lohkoon. Vaihtoehtoisesti ja edullisimmin virtuaaliosoitteet kartoitetaan fyysisiin osoitteisiin kartoittamal-15 la kukin virtuaalisivu yhteen tai useampaan fyysiseen sivuun.
Kartoittamisen yksiköstä riippumatta esillä oleva keksintö on kuitenkin tarkoituksenmukainen datan kirjoittamiseen sekventiaalisesti ilman, että oltai-20 siin pakotettuja kopioimaan aiemmin kirjoitettu data joka kerta kirjoitetun datan fyysisten paikkojen sekventiaalisen järjestyksen ylläpitämiseksi.
Esillä oleva keksintö voidaan vaihtoehtoisesti toteuttaa myös järjestelmänä, jossa on ainakin yk-25 si, mutta vaihtoehtoisesti joukko flash-laitteita, se kä flash-hallintajärjestelmä flash-laitteiden organisoimiseksi kirjoittamiseen esillä olevan keksinnön edellä kuvatun menetelmän mukaisesti.
Vaikka tämä keksintö kuvataan flash-laitteen 30 asiayhteydessä, alan ammattilaiset ymmärtävät, että sitä voidaan myös soveltaa datantallennuslaitteisiin, joilla on samat kirjoitus-, luku- ja yksikön pyyhki-misominaisuudet kuin flash-laitteilla.
Esillä olevan keksinnön mukaisen järjestelmän 35 ja menetelmän periaatteet ja toiminta saatavat olla paremmin ymmärrettävissä viittaamalla piirustukseen ja oheiseen selostukseen.
10
Viitaten nyt piirustukseen, kuvio 1 havainnollistaa kaaviomaisesti entuudestaan tunnettua esimerkiksi sellaisen teknologian kuin NAND mukaista fyysistä sivu-tila (page-mode) flash-muistilaitetta. Ter-5 mi "fyysinen laite" tästedes määritellään itse varsinaiseksi laitteistoksi, joka sisältää fyysisen median flash-muistilaitetta varten. Tällainen fyysinen media tyypillisesti koostuu flash-EEPROM-yksiköistä, vaikka mikä tahansa sopiva haihtumaton ohjelmoitava muisti-10 laite kävisi korvikkeesta. Termi "ohjelmoitava" tästedes määritellään muutettavissa olevaksi, kuten esimerkiksi kirjoittamalla dataa muistilaitteelle.
Fyysinen flash-muistilaite 10 esitetään ainakin yhdellä fyysisellä lohkolla 12. Fyysinen lohko 12 15 on pienin fyysisen laitteen 10 segmentti, joka voidaan pyyhkiä tai sen kokonaislukuinen monikerta. Fyysiseen lohkoon 12 kuuluu kokonaislukuinen määrä sivuja, jotka on yksittäin nimetty sivuiksi 1 - n, missä n on kokonaisluku, sekä kollektiivisesti nimetty sivuksi 14. 20 Sivu 14 koostuu fyysisten tavuosoitteiden yhtenäisestä kiinteän pituisesta ryhmästä, ja se on laitteiston piirre. Erityisesti sivun 14 koko on fyysisen laitteen 10 ominaisuus. Käyttäjadataa voidaan tallentaa sivun 14 primääridata-alueelle 16. Kullakin sivulla 14 on 25 myös ohjausdata-alue 18. Ohjausdata-aluetta 18 voidaan tyypillisesti osoittaa erillisellä algoritmilla sivun 14 pääosasta, eikä sitä sisällytetä sivun 14 koon laskentoihin. Kuten alempana kuvataan, ohjausdata-alue 18 on kätevä itse flash-tiedostojärjestelmään liittyvän 30 informaation tallentamiseen.
Kuvio 2 havainnollistaa järjestelmää perus flash-muistilaitteen organisoimiseksi. Järjestelmä 20 ohjaa sekä virtuaalimediaa 22 että fyysistä laitetta 10, ja liittää virtuaalimedian 22 fyysiseen laittee-35 seen 10 virtuaalikartan 24 kautta. Virtuaalimediaan 22 kuuluu joukko virtuaalilohkoja 26. Kullakin virtuaali-lohkolla 26 on joukko virtuaalisivuja 28. Kukin virtu- 11 aalilohko 26 nimetään virtuaaliosoitteella. Virtuaa-liosoitteeseen kuuluu virtuaalilohkonumero, joka nimeää tietyn virtuaalilohkon 26. Kukin virtuaalisivu 28 nimetään virtuaalisivupoikkeamalla (virtual page off-5 set) . Vastaavasti kullakin fyysisellä lohkolla 12 on fyysinen osoite. Fyysiseen osoitteeseen kuuluu fyysinen lohkonumero, joka nimeää tietyn fyysisen lohkon 12. Kullakin fyysisellä lohkolla 12 on joukko fyysisiä sivuja 14. Kullakin fyysisellä sivulla 14 on fyysinen 10 sivupoikkeama (physical page offset).
Virtuaalikartta 24 kartoittaa virtuaalilohkon 26 ainakin yhteen fyysiseen lohkoon 12. Vaihtoehtoisesti tai lisäksi virtuaalikartta 24 kartoittaa virtu-aalisivun 28 ainakin yhteen fyysiseen sivuun 14. Kuten 15 alempana kuvataan yksityiskohtaisemmin, edullisesti joko virtuaalilohkot 26 kartoitetaan fyysisiin lohkoihin 12, tai vaihtoehtoisesti virtuaalisivut 28 kartoitetaan fyysisiin sivuihin 14. Nämä kaksi vaihtoehtoista kartoitusjärjestelmää ovat sikäli samankaltaisia, 20 että joko sivut tai lohkot voivat muodostaa perustan kartoittamiselle esillä olevan keksinnön mukaisesti, mutta kartoittaminen sivujen tai lohkojen perusyksiköllä ei muuta esillä olevan keksinnön mukaisen menetelmän toimintaa datan kirjoittamiseksi sekventiaali-25 sesti.
Huomattakoon, että yksi virtuaalilohko 26 voidaan kartoittaa useampaan kuin yhteen fyysiseen lohkoon 12, ja/tai yksi virtuaalisivu 28 voidaan kartoittaa useampaan kuin yhteen fyysiseen sivuun 14. Si-30 ten vastaavuus virtuaalilohkon 26 ja fyysisen lohkon 12 välillä voi olla joko yksi-yhteen tai yksi-moneen.
Järjestelmä 20 toimii seuraavasti. Flash-muistilaitteen (ei esitetty) sisältävän elektronisen laitteen käyttöjärjestelmä lähettää käskyn, kuten lu-35 kukäskyn tai kirjoituskäskyn, tietylle virtuaalisivul- le 28 tietyssä virtuaalilohkossa 26. Virtuaalikartta 24 tai edullisemmin virtuaalikarttaan 24 sisältyvä oh- 12 jelmistomoduuli näiden funktioiden suorittamiseen paikallistaa sitten vastaavan fyysisen sivun 14 fyysisessä lohkossa 12. Esillä olevan keksinnön mukaisesti fyysinen sivu 14 on kuitenkin seuraava fyysisesti sek-5 ventiaalinen sivu 14 fyysisessä lohkossa 12 niin, että sekventiaaliset kirjoitusoperaatiot suoritetaan fyysisesti sekventiaalisilla sivuilla 14 fyysisessä lohkossa 12. Virtuaalisivujen 28 ei tarvitse olla sekventi-aalisia virtuaalilohkojen 26 sisällä, ja ne voidaan 10 itse asiassa vastaanottaa kirjoitusoperaatioita varten satunnaisen järjestyksen mukaan.
Kuvion 3 vuokaavio esittää esillä olevan keksinnön mukaisen esimerkinomaisen menetelmän. Virtuaa-likartta tallentaa kunkin virtuaalilohkon kartoituksen 15 ainakin yhteen fyysiseen lohkoon. Flash-laitteella (tai muun tyyppisellä muistilla) oletetaan olevan se piirre, että dataa voidaan kirjoittaa vain muistin kirjoittamattomaan osaan niin, että muistin osa, johon on kirjoitettu, täytyy pyyhkiä ennen kuin eri dataa 20 voidaan kirjoittaa muistiin.
Olettaen, että kartoituksen perusyksikkö on lohko niin, että kukin virtuaalilohko kartoitetaan yhteen tai useampaan fyysiseen lohkoon, niin sitten vaiheessa 1 kirjoituspyyntöön kuuluu pyyntö kirjoittaa 25 dataa tiettyyn virtuaalisivuun. Jos vastaava fyysinen lohko ainakin yhdellä vapaalla sivulla pystytään paikallistamaan, niin sitten vaiheessa 2 vastaava fyysinen lohko paikallistetaan. Tämä vaihe suoritetaan edullisesti etsimällä ensin virtuaalisivun sisältävä 30 virtuaalilohko, ja käyttämällä sitten virtuaalikarttaa paikallistamaan fyysinen lohko, johon data voidaan kirjoittaa. Seuraavaksi vaiheessa 3 paikallistetaan sivu fyysisessä lohkossa edullisesti sen fyysisen sivun sijainnin mukaan, johon viimeisimmäksi kirjoitet-35 tiin dataa siinä fyysisessä lohkossa. Siten valitulla fyysisellä sivulla pitäisi edullisesti olla korkeampi osoite kuin viimeisimmäksi kirjoitetulla fyysisellä 13 sivulla siinä fyysisessä lohkossa. Eräs mahdollinen lähestymistapa, mutta ei ainoa, on järjestää valittu sivu vaihtoehtoisesti ja edullisemmin fyysisesti vierekkäiseksi viimeisimmäksi kirjoitettuun fyysiseen si-5 vuun siinä fyysisessä lohkossa. Vaihtoehtoisesti valittu sivu ei ehkä ole fyysisesti vierekkäinen, mutta sillä yhä olisi korkeampi osoite. Vaiheessa 4 data kirjoitetaan valitulle fyysiselle sivulle.
Vaikka vastaanotettaisiin joukko kirjoitus-10 pyyntöjä satunnaisessa järjestyksessä virtuaalilohkon sisällä, edullisesti suoritetaan vain sekventiaalisia sivunkirjoitusoperaatioita fyysisten lohkojen sisällä. Siten kutakin sivunkirjoituspyyntöä varten vuorollaan kirjoitetaan edullisesti dataa sen fyysisen lohkon 15 seuraavalle vapaalle fyysiselle sivulle, johon kirjoi-tuspyyntö sitä sivua varten kartoitettiin vaiheessa 2, missä seuraavalla vapaalla fyysisellä sivulla on ainakin korkeampi osoite, mutta vaihtoehtoisesti ja edullisemmin se on fyysisesti vierekkäin aiemmin kirjoite-20 tun sivun kanssa.
Vaihtoehtoisesti kukin fyysisesti kirjoitettu sivu kirjoitetaan sen vastaavalla virtuaalisivunume-rolla, joka on asetettu fyysisen sivun ohjausdata-alueeseen. Tällaista virtuaalisivunumeroa voidaan sit-25 ten valinnaisesti käyttää tunnistamaan pyydettyä vir-tuaalisivua vastaava viimeisimmäksi kirjoitettu data datan flash-muistista lukemista varten. Edullisemmin, mikäli joukkoon fyysisiä sivuja samassa fyysisessä lohkossa liittyy identtinen virtuaalisivunumero, luet-30 tava fyysinen sivu on se fyysinen sivu, joka sisältää viimeisimmäksi kirjoitetun datan. Tällainen tilanne, jossa joukolla fyysisiä sivuja on identtinen virtuaalisivunumero, voi sattua esimerkiksi, kun käyttöjärjestelmä pyytää kirjoitusta samalle virtuaalisivulle 35 useita kertoja peräkkäin. Kunkin pyynnön tuloksena olisi sitten kirjoitus toiselle fyysiselle sivulle, joihin kaikkiin tällaisiin fyysisiin sivuihin liittyi- 14 si sama virtuaalisivunumero. Yritettäessä myöhemmin lukea tätä sivua virtuaalisivulle viimeisimmäksi tallennetun datan hakemiseksi haluttu fyysinen sivu niiden sivujen ryhmästä, joilla on pyydetty virtuaa-5 lisivunumero, on se fyysinen sivu, jolla on korkein osoite fyysisessä lohkossa. Tämän fyysisen sivun täytyy olla viimeisimmäksi kirjoitettu sivu, ja siten sisältää viimeisimmän datan esillä olevan keksinnön mukaisesti .
10 Palaten nyt kuvioon 3, mikäli vastaanotetaan kirjoituspyyntö, jolle ei voida paikallistaa vastaavaa fyysistä lohkoa, jolla on fyysinen sivu käytettävissä kirjoittamiseen, niin silloin seurataan vuokaavion vaihtoehtoista haaraa, mikä esitetään vaiheina 2A ja 15 3A. Edullisesti allokoidaan uusi fyysinen lohko virtu- aalilohkoa varten (kuten vaiheessa 2A esitetään) ja sitten valitaan tämän fyysisen lohkon ensimmäinen sivu (kuten vaiheessa 3A esitetään) niin, että data kirjoi-tuspyynnöstä kirjoitetaan tälle uuden fyysisen lohkon 20 ensimmäiselle fyysiselle sivulle vaiheessa 4.
Vaihtoehtoisesti ja edullisesti voidaan haluta "tiivistämistä" tai käytettävän flash-laitteen tal-lennustilan määrän pienentämistä muutoin, ja se suoritetaan edullisemmin ainakin silloin tällöin. Tätä tar-25 koitusta varten edullisesti ainakin yhden fyysisen sivun ainakin viimeisin kopio voidaan kopioida uuteen fyysiseen paikkaan ainakin yhden fyysisen yksikön vapauttamiseksi. Uusi fyysinen paikka voi olla äskettäin allokoidussa fyysisessä lohkossa tai aiemmin kartoite-30 tussa fyysisessä lohkossa. Huomattakoon, että joka tapauksessa tällainen kopiointioperaatio eroaa tunnetun tekniikan mukaisista menetelmistä, jotka edellyttävät aiemmin kirjoitetun datan kopiointia jokaista kirjoitusoperaatiota varten, sillä kopiointi esillä olevan 35 keksinnön mukaista menetelmää varten on valinnaista eikä sitä tarvitse suorittaa jokaista kirjoitusoperaatiota varten.
15 Tämä kopiointioperaatio suoritetaan esimerkiksi, vaihtoehtoisesti ja edullisesti, kun tarvitaan lisää vapaata tilaa ja vapaan tilan määrä on jonkin ennalta asetetun arvon alapuolella. Operaatio voitai-5 siin valinnaisesti suorittaa esimerkiksi, kun vapaiden lohkojen lukumäärä on jonkin ennalta asetetun arvon alapuolella.
Toisena esimerkkinä, vaihtoehtoisesti ja edullisesti, tämä kopiointioperaatio suoritetaan, kun 10 virtuaalilohkoa vastaavien fyysisten lohkojen ryhmän koko kävisi muuten suuremmaksi kuin jokin ennalta asetettu arvo. Myös vaihtoehtoisesti, ennalta asetettu arvo on yksi niin, että tällainen fyysisten lohkojen ryhmä sisältää aina vain yhden lohkon niin, että vir-15 tuaalilohkot kartoittuvat fyysisiin lohkoihin yksi- yhteen kartoituksen mukaan.
Vastaava kartoitusmenetelmä voidaan valinnaisesti suorittaa flash-hallintajärjestelmillä, jotka käyttävät sivuja eikä lohkoja peruskartoitusyksikköi-20 nään niin, että virtuaalisivut kartoitetaan fyysisiin sivuihin määrittämättä virtuaalilohkojen kartoitusta fyysisiin lohkoihin, minkä katsotaan kuuluvan esillä olevan keksinnön suojapiiriin. Tällaisessa tilanteessa sovelletaan vastaavia menetelmiä kuin yllä kuvatut 25 paitsi, että soveltuvaa virtuaaliyksikköä vastaavien fyysisten lohkojen ryhmän roolin ottaa jokin flash-muistin fyysisen osoiteavaruuden (joka voi olla koko osoiteavaruus tai mikä tahansa sen osa riippumatta siitä, onko se yhtenäinen vai ei) osajoukko riippumat-30 ta kirjoittavasta virtuaaliosoitteesta.
On selvää, että yllä olevat selostukset on tarkoitettu vain esimerkeiksi, ja että monet muut muunnokset ovat mahdollisia esillä olevan keksinnön hengen ja suojapiirin puitteissa.

Claims (48)

16
1. Järjestelmä (20), joka käsittää: flash-muistijärjestelmän, joka käsittää ainakin yhden flash-laitteen (10), jossa kyseisessä flash-5 laitteessa (10) on muistia, joka käsittää joukon lohkoja (12), jotka kukin lohko (12) käsittävät joukon sivuj a (14); ja flash-hallintaj ärjestelmän sivunkirj oitus- pyyntöjen hallitsemiseksi riippumatta järjestyksestä, 10 jossa kyseiset sivunkirjoituspyynnöt vastaanotetaan; tunnettu siitä, että kyseisillä sivuilla (14) on ennalta määrätyt kiinteät pituudet, ja että järjestelmä edelleen käsittää: moduulin sen kyseisen vastaanottojärjestyk-15 sen, jossa kyseiset sivunkirjoituspyynnöt vastaanotetaan yhdessä niihin liittyvän ohjausdatan kanssa, muuntamiseksi kirjoitusjärjestykseksi niin, että data kyseisissä sivunkirjoituspyynnöissä kirjoitetaan yhdessä mainitun ohjausdatan kanssa fyysisesti sekventi-20 aalisina sivuina (14) kunkin lohkon (12) sisällä riippumatta kyseisten sivunkirjoituspyyntöjen kyseisestä vastaanottoj ärjestyksestä.
2. Patenttivaatimuksen 1 mukainen järjestelmä, jossa kyseinen flash-hallintajärjestelmä sisältää 25 joukon virtuaaliosoitteita, ja jossa kyseinen flash-laite sisältää joukon fyysisiä osoitteita niin, että kyseinen flash-hallintajärjestelmä kartoittaa kyseiset virtuaaliosoitteet kyseisiin fyysisiin osoitteisiin kartoittamalla kunkin virtuaalilohkon (26) yhteen tai 30 useampaan fyysiseen lohkoon (12).
3. Patenttivaatimuksen 2 mukainen järjestelmä, jossa kukin sivunkirjoituspyyntö on virtuaa-liosoitteelle, ja jossa kyseinen flash- hallintajärjestelmä kartoittaa virtuaaliosoitteen fyy- 35 siseen osoitteeseen niin, että kunkin lohkon (12) sisällä sivuja (14) kirjoitetaan seuraavaksi korkeammal- 17 le fyysiselle osoitteelle kutakin seuraavaa sivunkir-joitusoperaatiota varten.
4. Patenttivaatimuksen 3 mukainen järjestel mä, jossa siihen ohjausdataan, joka kirjoitetaan ku- 5 hunkin fyysisesti kirjoitettuun sivuun (14), kuuluu vastaava virtuaalisivunumero vastaavan virtuaalilohkon (26) sisällä.
5. Patenttivaatimuksen 4 mukainen järjestel mä, jossa kyseinen virtuaalisivunumero identifioi vii- 10 meisimmäksi kirjoitetun datan, joka vastaa pyydettyä virtuaalisivua (28) luettaessa dataa flash-muistij ärj estelmästä.
6. Patenttivaatimuksen 5 mukainen järjestel mä, jossa mikäli joukko fyysisiä sivuja (14) yhdiste- 15 tään identtiseen virtuaalisivunumeroon, kyseistä pyydettyä virtuaalisivua (28) vastaava kyseinen fyysinen sivu (14) on kyseinen fyysinen sivu (14), johon dataa on viimeisimmäksi kirjoitettu.
7. Patenttivaatimuksen 3 mukainen järjestel-20 mä, jossa fyysinen lohko (12) vastaa virtuaalilohkoa (26), ja kyseisellä fyysisellä lohkolla (12) ei ole vapaata sivua (14) niin, että kun kirjoituspyyntö vastaanotetaan kyseiselle virtuaalilohkolle (26), uusi fyysinen lohko (12) allokoidaan kyseiselle virtuaali-25 lohkolle (26) ja data kyseisestä kirjoituspyynnöstä kirjoitetaan kyseisen uuden fyysisen lohkon (12) ensimmäiselle sivulle (14).
8. Patenttivaatimuksen 7 mukainen järjestelmä, jossa virtuaalilohkoa (26) vastaavien fyysisten 30 lohkojen (12) ryhmää tiivistetään kopioimalla ainakin osa kyseisen virtuaalilohkon (26) virtuaalisivuja (28) vastaavasta datasta yksittäiseen lohkoon (12) vapauttaen siten ainakin yhden fyysisen lohkon (12).
9. Patenttivaatimuksen 8 mukainen järjestel-35 mä, jossa kyseinen yksittäinen lohko (12) on vastikään allokoitu lohko (12) tai kyseisen virtuaalilohkon (26) viimeisimmäksi allokoitu lohko (12). 18
10. Patenttivaatimuksen 9 mukainen järjestelmä, jossa kyseiset lohkot (12) tiivistetään, kun ky seinen flash-hallintajärjestelmä tarvitsee uutta fyysistä lohkoa (12), ja vapaiden lohkojen (12) lukumäärä 5 on ennalta asetetun arvon alla.
11. Patenttivaatimuksen 9 mukainen järjestelmä, jossa kyseiset lohkot (12) tiivistetään, kun ky seistä virtuaalilohkoa (26) vastaavan kyseisen fyysisten lohkojen (12) ryhmän koko tulisi suuremmaksi kuin 10 ennalta asetettu arvo, mikäli tiivistämistä ei suoritettaisi .
12. Patenttivaatimuksen 11 mukainen järjestelmä, jossa kyseinen ennalta asetettu arvo on yksi niin, että kyseiset virtuaalilohkot (26) kartoitetaan 15 yksi yhteen kyseisiin fyysisiin lohkoihin (12).
13. Patenttivaatimuksen 1 mukainen järjestelmä, jossa kyseinen flash-hallintajärjestelmä sisältää joukon virtuaaliosoitteita, ja jossa kyseinen flash-laite sisältää joukon fyysisiä osoitteita niin, että 20 kyseinen flash-hallintajärjestelmä kartoittaa kyseiset virtuaaliosoitteet kyseisiin fyysisiin osoitteisiin kartoittamalla kunkin virtuaalisivun (28) yhteen tai useampaan fyysiseen sivuun (14).
14. Patenttivaatimuksen 13 mukainen järjes- 25 telmä, jossa kukin sivunkirjoituspyyntö on virtuaa- liosoitteelle, ja jossa kyseinen flash- hallintajärjestelmä kartoittaa virtuaaliosoitteen fyysiseen osoitteeseen niin, että sivuja (14) kirjoitetaan seuraavaksi korkeammalle fyysiselle osoitteelle 30 kutakin seuraavaa sivunkirjoitusoperaatiota varten ainakin kyseisen flash-laitteen osan sisällä.
15. Patenttivaatimuksen 14 mukainen järjestelmä, jossa kunkin fyysisesti kirjoitetun sivun (14) yhteydessä on vastaava virtuaalisivunumero.
16. Patenttivaatimuksen 15 mukainen järjes telmä, jossa kyseinen virtuaalisivunumero identifioi viimeisimmäksi kirjoitetun datan, joka vastaa pyydet 19 tyä virtuaalisivua (28) luettaessa dataa flash-muistijärjestelmästä.
17. Patenttivaatimuksen 16 mukainen järjestelmä, jossa mikäli joukko fyysisiä sivuja (14) yhdis- 5 tetään identtiseen virtuaalisivunumeroon, kyseistä pyydettyä virtuaalisivua (28) vastaava kyseinen fyysinen sivu (14) on kyseinen fyysinen sivu (14), johon dataa on viimeisimmäksi kirjoitettu.
18. Patenttivaatimuksen 14 mukainen järjes- 10 telmä, jossa kun ainakin osalla kyseistä flash- laitetta ei ole vapaata sivua (14) kirjoitettavaksi ja toinen kirjoituspyyntö vastaanotetaan kyseiselle osalle, kyseisen flash-laitteen lisäosa allokoidaan kyseisen osan koon kasvattamiseen, ja data kyseisestä kir- 15 joituspyynnöstä kirjoitetaan kyseisen lisäosan ensim mäiselle sivulle (14).
19. Patenttivaatimuksen 18 mukainen järjestelmä, jossa kyseisen flash-laitteen kyseinen osa tii vistetään kopioimalla ainakin yhtä virtuaalisivua (28) 20 vastaava data uuteen paikkaan vapauttaen siten ainakin yhden fyysisen sivun (14).
20. Patenttivaatimuksen 19 mukainen järjestelmä, jossa kyseisen flash-laitteen kyseinen osa tii vistetään, kun kyseinen flash-hallintajärjestelmä tar- 25 vitsee uutta fyysistä sivua (14), ja vapaiden sivujen (14) lukumäärä on ennalta asetetun arvon alla.
21. Patenttivaatimuksen 19 mukainen järjestelmä, jossa kyseisen flash-laitteen kyseinen osa tii vistetään, kun kyseisen osan koko tulisi suuremmaksi 30 kuin ennalta asetettu arvo, mikäli tiivistämistä ei suoritettaisi.
22. Menetelmä kirjoitusoperaatioiden suorittamiseksi flash-laitteelle (10), joka sallii vain sek-ventiaalisia kirjoitusoperaatioita lohkon (12) sisällä 35 riippumatta järjestyksestä, jossa kirjoituspyynnöt kyseisten kirjoitusoperaatioiden suorittamiseksi vastaanotetaan, joka menetelmä käsittää: 20 vastaanotetaan kirjoituspyyntö kirjoittaa dataa flash-laitteen osaan, joka kyseinen osa sisältää joukon osoitteita/ paikallistetaan osoite kyseisessä osassa ky-5 seisen datan kirjoittamiseksi aiemmin kirjoitetun osoitteen mukaan kyseisessä osassa niin, että kyseinen osoite on fyysisesti sekventiaalinen suhteessa kyseiseen aiemmin kirjoitettuun osoitteeseen; ja kirjoitetaan kyseinen data kyseisestä kirjoi-10 tuspyynnöstä kyseiseen osaan; tunnettu siitä, että sivu (14) lohkon (12) sisällä on ennalta määrätyn kiinteän pituinen, että paikallistetaan osoite kyseisessä osassa kyseisen datan kyseisestä kirjoituspyynnöstä kirjoittamiseksi 15 yhdessä siihen liittyvän ohjausdatan kanssa, ja että kyseinen data kyseisestä kirjoituspyynnöstä kirjoitetaan kyseiseen osaan yhdessä siihen liittyvän ohjaus-datan kanssa.
23. Patenttivaatimuksen 22 mukainen menetel-20 mä, jossa kyseinen aiemmin kirjoitettu osoite on aiemmin kirjoitetulla sivulla (14) lohkossa (12) niin, että mikäli kyseisessä lohkossa (12) on saatavilla lisäsivu (14), kyseinen data kyseisestä kirjoituspyynnöstä kirjoitetaan kyseiselle lisäsivulle (14), missä kysei- 25 nen lisäsivu (14) on korkeammassa fyysisessä osoitteessa kuin kyseinen aiemmin kirjoitettu sivu (14).
24. Patenttivaatimuksen 23 mukainen menetelmä, jossa vastaanotetaan joukko kirjoituspyyntöjä, ja jossa kyseinen sivu (14) sijaitsee kyseisessä lohkossa 30 (12) kullekin kirjoituspyynnölle niin, että kyseinen data kyseisestä kustakin kirjoituspyynnöstä kirjoitetaan kutakin kirjoituspyyntöä varten sivulle (14) korkeammassa fyysisessä osoitteessa.
25. Patenttivaatimuksen 24 mukainen menetel-35 mä, jossa kukin fyysinen osoite vastaa fyysistä sivua (14) fyysisessä lohkossa (12), ja jossa kyseinen kir-joituspyyntö on pyyntö kirjoittaa dataa ainakin yhteen 21 joukosta virtuaaliosoitteita, jotka kukin virtuaa-liosoite vastaavat virtuaalisivua (28) virtuaaliloh-kossa (26), missä kyseiset virtuaaliosoitteet kartoitetaan kyseisiin fyysisiin osoitteisiin.
26. Patenttivaatimuksen 25 mukainen menetel mä, jossa kyseiset virtuaaliosoitteet kartoitetaan kyseisiin fyysisiin osoitteisiin kartoittamalla kukin virtuaalilohko (26) ainakin yhteen fyysiseen lohkoon (12) .
27. Patenttivaatimuksen 26 mukainen menetel mä, jossa kyseinen kirjoituspyyntöjen joukko virtuaa-liosoitteiden joukko varten vastaanotetaan satunnaisessa järjestyksessä, ja jossa data mainittua kirjoi-tuspyyntöjen joukkoa varten kirjoitetaan sekventiaali-15 sesti kirjoittamalla kukin vastikään kirjoitettu sivu (28) sen fyysisen lohkon (12) ensimmäiseen vapaaseen fyysiseen sivuun (14), johon kyseinen kirjoitettava virtuaaliosoite kartoitetaan.
28. Patenttivaatimuksen 27 mukainen menetel-20 mä, jossa siihen kyseiseen ohjausdataan, joka kirjoitetaan kuhunkin fyysisesti kirjoitettuun sivuun (14), kuuluu vastaava virtuaalisivunumero kyseisen virtuaa-lisivun (28) kyseisessä virtuaalilohkossa (26).
29. Patenttivaatimuksen 28 mukainen menetel- 25 mä, jossa kyseinen virtuaalisivunumero identifioi vii- meisimmäksi kirjoitetun datan, joka vastaa pyydettyä virtuaalisivua (28) datan lukemiseksi kyseisestä flash-laitteesta.
30. Patenttivaatimuksen 29 mukainen menetel- 30 mä, jossa kun joukolla fyysisiä sivuja (14) on identtinen virtuaalisivunumero, kyseinen luettava fyysinen sivu (14) on kyseinen fyysinen sivu (14), joka sisältää viimeisimmäksi kirjoitetun datan.
31. Patenttivaatimuksen 27 mukainen menetel- 35 mä, jossa kun fyysisellä lohkolla (12) ei ole fyysistä sivua (14) saatavilla kirjoittamista varten ja vastaanotetaan kirjoituspyyntö kyseistä fyysistä lohkoa 22 (12) vastaavalle virtuaalilohkolle (26), uusi fyysinen lohko (12) allokoidaan kyseiselle virtuaalilohkolle (26) ja data kyseisestä kirjoituspyynnöstä kirjoitetaan kyseisen uuden fyysisen lohkon (12) ensimmäiselle 5 fyysiselle sivulle (14).
32. Patenttivaatimuksen 31 mukainen menetelmä, joka edelleen käsittää: kopioidaan ainakin yksi fyysinen sivu (14) uuteen fyysiseen paikkaan ainakin yhden fyysisen loh- 10 kon (12) vapauttamiseksi.
33. Patenttivaatimuksen 32 mukainen menetel mä, jossa kyseinen uusi fyysinen paikka on vastikään allokoidussa fyysisessä lohkossa (12) tai kyseisen virtuaalilohkon (26) viimeisimmäksi allokoitu lohko 15 (12) .
34. Patenttivaatimuksen 32 mukainen menetel mä, jossa kyseinen ainakin yksi fyysinen sivu (14) kopioidaan, kun tarvitaan uutta fyysistä lohkoa (12) ja vapaiden fyysisten lohkojen (12) lukumäärä on jonkin 20 ennalta asetetun arvon alla.
35. Patenttivaatimuksen 32 mukainen menetel mä, jossa kyseinen ainakin yksi fyysinen sivu (14) kopioidaan, kun virtuaalilohkoa (26) vastaavan fyysisten lohkojen (12) ryhmän koko tulisi suuremmaksi kuin en- 25 naita asetettu arvo, mikäli tiivistämistä ei suoritettaisi .
36. Patenttivaatimuksen 35 mukainen menetel mä, jossa kyseinen ennalta asetettu arvo on yksi niin, että kyseinen fyysisten lohkojen (12) ryhmä sisältää 30 vain yhden lohkon (12) niin, että kyseiset virtuaali-lohkot (26) kartoittuvat kyseisiin fyysisiin lohkoihin (12) yksi yhteen kartoituksen mukaisesti.
37. Patenttivaatimuksen 25 mukainen menetel mä, jossa kyseiset virtuaaliosoitteet kartoitetaan ky- 35 seisiin fyysisiin osoitteisiin kartoittamalla kukin virtuaalisivu (28) yhteen tai useampaan fyysiseen sivuun (14) . 23
38. Patenttivaatimuksen 37 mukainen menetelmä, jossa kyseisen virtuaaliosoitteiden joukon kyseinen kirjoituspyyntöjen joukko vastaanotetaan satunnaisessa järjestyksessä, ja jossa data kyseistä kirjoi-5 tuspyyntöjen joukkoa varten kirjoitetaan sekventiaali-sesti kirjoittamalla kukin vastikään kirjoitettu sivu (28) seuraavalle vapaalle fyysiselle sivulle (14) ainakin osassa kyseisiä fyysisiä osoitteita riippumatta kirj oitettavasta virtuaaliosoitteesta.
39. Patenttivaatimuksen 38 mukainen menetelmä, jossa ainakin osaan kyseisistä fyysisistä osoit teista kuuluu ainakin kaksi ei-peräkkäistä fyysistä osoitetta.
40. Patenttivaatimuksen 38 mukainen menetel- 15 mä, jossa kunkin fyysisesti kirjoitetun sivun (14) yhteydessä on vastaava virtuaalisivunumero.
41. Patenttivaatimuksen 40 mukainen menetel mä, jossa kyseinen virtuaalisivunumero identifioi pyydettyä virtuaalisivua (28) vastaavan viimeisimmäksi 20 kirjoitetun datan.
42. Patenttivaatimuksen 41 mukainen menetel mä, jossa mikäli kahdella fyysisellä sivulla (14) on identtinen virtuaalisivunumero, kyseistä pyydettyä virtuaalisivua (28) vastaava kyseinen fyysinen sivu 25 (14) on kyseinen fyysinen sivu (14), johon dataa on viimeisimmäksi kirjoitettu.
43. Patenttivaatimuksen 38 mukainen menetelmä, jossa kyseisten fyysisten osoitteiden kyseisellä ainakin osalla ei ole saatavilla sivua (14) datan kir- 30 joittamiseen kirjoituspyyntöä varten niin, että uusi osa allokoidaan lisättäväksi kyseiseen osaan, missä kyseinen data kirjoitetaan kyseisen uuden osan ensimmäiselle sivulle (14).
44. Patenttivaatimuksen 43 mukainen menetel- 35 mä, joka edelleen käsittää: 24 kopioidaan ainakin yksi fyysinen sivu (14) uuteen fyysiseen paikkaan, mikäli tarpeen ainakin yhden fyysisen sivun (14) vapauttamiseksi.
45. Patenttivaatimuksen 44 mukainen menetel-5 mä, jossa kyseinen uusi fyysinen paikka on vastikään allokoidussa fyysisessä lohkossa (12) tai kyseisen osan jo sisältämässä lohkossa (12).
46. Patenttivaatimuksen 45 mukainen menetelmä, jossa kyseinen ainakin yksi fyysinen sivu (14) ko- 10 pioidaan, kun tarvitaan uutta fyysistä sivua (14) ja vapaiden fyysisten sivujen (14) lukumäärä on jonkin ennalta asetetun arvon alla.
47. Patenttivaatimuksen 45 mukainen menetelmä, jossa kyseinen ainakin yksi fyysinen sivu (14) ko- 15 pioidaan, kun kyseisen osan koko tulisi suuremmaksi kuin ennalta asetettu arvo, mikäli tiivistämistä ei suoritettaisi.
48. Patenttivaatimuksen 22 mukainen menetelmä, jossa data ainakin yhdestä kirjoituspyynnöstä kir- 20 joitetaan kopioimatta aikaisemmin kirjoitettua dataa kyseisten kirjoitetun datan fyysisten paikkojen sek-ventiaalisen järjestyksen ylläpitämiseksi. 25
FI20030789A 2001-09-28 2003-05-26 Vain Sekventiaalista kirjoitusta käyttävä flash-hallintajärjestelmä ja -menetelmä FI121559B (fi)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US09/964,606 US6678785B2 (en) 2001-09-28 2001-09-28 Flash management system using only sequential write
US96460601 2001-09-28
PCT/US2002/030303 WO2003030180A1 (en) 2001-09-28 2002-09-25 Flash management system using only sequential write
US0230303 2002-09-25

Publications (3)

Publication Number Publication Date
FI20030789A0 FI20030789A0 (fi) 2003-05-26
FI20030789A FI20030789A (fi) 2003-07-16
FI121559B true FI121559B (fi) 2010-12-31

Family

ID=25508759

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20030789A FI121559B (fi) 2001-09-28 2003-05-26 Vain Sekventiaalista kirjoitusta käyttävä flash-hallintajärjestelmä ja -menetelmä

Country Status (6)

Country Link
US (1) US6678785B2 (fi)
EP (1) EP1435099A4 (fi)
JP (1) JP4155463B2 (fi)
KR (1) KR100952135B1 (fi)
FI (1) FI121559B (fi)
WO (1) WO2003030180A1 (fi)

Families Citing this family (171)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US6148354A (en) 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
US6760805B2 (en) * 2001-09-05 2004-07-06 M-Systems Flash Disk Pioneers Ltd. Flash management system for large page size
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
JP2003223792A (ja) * 2002-01-25 2003-08-08 Hitachi Ltd 不揮発性メモリ及びメモリカード
JP3928724B2 (ja) * 2003-02-20 2007-06-13 ソニー株式会社 記録媒体の記録制御方法および記録媒体の記録制御装置
US6988175B2 (en) 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
TWI254947B (en) * 2004-03-28 2006-05-11 Mediatek Inc Data managing method and data access system for storing all management data in a management bank of a non-volatile memory
TWI249670B (en) * 2004-04-29 2006-02-21 Mediatek Inc System and method capable of sequentially writing a flash memory
CN100353341C (zh) * 2004-04-30 2007-12-05 联发科技股份有限公司 可循序写入数据至闪存中的系统及其方法
JP4253272B2 (ja) 2004-05-27 2009-04-08 株式会社東芝 メモリカード、半導体装置、及び半導体メモリの制御方法
KR100572328B1 (ko) * 2004-07-16 2006-04-18 삼성전자주식회사 배드 블록 관리부를 포함하는 플래시 메모리 시스템
KR100577384B1 (ko) 2004-07-28 2006-05-10 삼성전자주식회사 페이지 정보를 이용한 페이지 대체 방법
JP2006048585A (ja) * 2004-08-09 2006-02-16 Fujitsu Ltd フラッシュメモリのアクセス方法
CN100442246C (zh) * 2004-08-26 2008-12-10 旺玖科技股份有限公司 非易失性存储器的数据更新方法
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7395404B2 (en) * 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7308525B2 (en) * 2005-01-10 2007-12-11 Sandisk Il Ltd. Method of managing a multi-bit cell flash memory with improved reliablility and performance
US7426623B2 (en) * 2005-01-14 2008-09-16 Sandisk Il Ltd System and method for configuring flash memory partitions as super-units
US8341371B2 (en) * 2005-01-31 2012-12-25 Sandisk Il Ltd Method of managing copy operations in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US8244958B2 (en) 2005-05-09 2012-08-14 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
US7389397B2 (en) * 2005-06-01 2008-06-17 Sandisk Il Ltd Method of storing control information in a large-page flash memory device
JP2006338371A (ja) * 2005-06-02 2006-12-14 Toshiba Corp メモリシステム
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
US20070016721A1 (en) * 2005-07-18 2007-01-18 Wyse Technology Inc. Flash file system power-up by using sequential sector allocation
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7571275B2 (en) * 2005-08-31 2009-08-04 Hamilton Sundstrand Corporation Flash real-time operating system for small embedded applications
KR100673013B1 (ko) * 2005-09-21 2007-01-24 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7783955B2 (en) * 2006-01-18 2010-08-24 Sandisk Il Ltd. Method for implementing error-correction codes in flash memory
JP2007241539A (ja) * 2006-03-07 2007-09-20 Hitachi Systems & Services Ltd 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置
EP2003569B1 (en) 2006-03-13 2010-06-02 Panasonic Corporation Flash memory controller
JP2007280108A (ja) * 2006-04-07 2007-10-25 Sony Corp 記憶媒体制御装置、記憶媒体制御方法、プログラム
US7280398B1 (en) * 2006-08-31 2007-10-09 Micron Technology, Inc. System and memory for sequential multi-plane page memory operations
KR100809319B1 (ko) 2006-09-13 2008-03-05 삼성전자주식회사 플래시 메모리에서 연속한 섹터 쓰기 요청에 대해 원자성을제공하는 장치 및 방법
US7886204B2 (en) * 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US7716538B2 (en) * 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR101354152B1 (ko) * 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
KR100845552B1 (ko) * 2006-12-18 2008-07-10 (재)대구경북과학기술연구원 Ftl의 어드레스 매핑 방법
US7721040B2 (en) * 2007-01-18 2010-05-18 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
US7477547B2 (en) * 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US8151034B2 (en) * 2007-09-12 2012-04-03 Sandisk Technologies Inc. Write abort and erase abort handling
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8650352B2 (en) * 2007-09-20 2014-02-11 Densbits Technologies Ltd. Systems and methods for determining logical values of coupled flash memory cells
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US8443242B2 (en) 2007-10-25 2013-05-14 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
WO2009072105A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications
WO2009072102A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
US8335977B2 (en) 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
US8200904B2 (en) * 2007-12-12 2012-06-12 Sandisk Il Ltd. System and method for clearing data from a cache
US8276051B2 (en) * 2007-12-12 2012-09-25 Densbits Technologies Ltd. Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US8327246B2 (en) 2007-12-18 2012-12-04 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
US8443260B2 (en) * 2007-12-27 2013-05-14 Sandisk Il Ltd. Error correction in copy back memory operations
US7865658B2 (en) * 2007-12-31 2011-01-04 Sandisk Il Ltd. Method and system for balancing host write operations and cache flushing
WO2009118720A2 (en) * 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US9594679B2 (en) * 2008-05-01 2017-03-14 Sandisk Il Ltd. Flash cache flushing method and system
US8332725B2 (en) 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
KR101510120B1 (ko) 2008-11-21 2015-04-10 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
EP2189895A1 (en) * 2008-11-24 2010-05-26 Deutsche Thomson OHG Flash based memory comprising a Flash translation layer and method for storing a file therein
US8205063B2 (en) * 2008-12-30 2012-06-19 Sandisk Technologies Inc. Dynamic mapping of logical ranges to write blocks
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
US8261009B2 (en) * 2008-12-30 2012-09-04 Sandisk Il Ltd. Method and apparatus for retroactive adaptation of data location
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
US8458574B2 (en) * 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) * 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8555141B2 (en) * 2009-06-04 2013-10-08 Lsi Corporation Flash memory organization
US8245112B2 (en) * 2009-06-04 2012-08-14 Lsi Corporation Flash memory organization
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8166258B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Skip operations for solid state disks
US8321639B2 (en) * 2009-12-30 2012-11-27 Lsi Corporation Command tracking for direct access block storage devices
US8200857B2 (en) * 2009-11-30 2012-06-12 Lsi Corporation Coalescing multiple contexts into a single data transfer in a media controller architecture
US8286004B2 (en) * 2009-10-09 2012-10-09 Lsi Corporation Saving encryption keys in one-time programmable memory
US20100306451A1 (en) * 2009-06-01 2010-12-02 Joshua Johnson Architecture for nand flash constraint enforcement
US8566510B2 (en) 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
WO2010144587A2 (en) 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8868821B2 (en) 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
US8305812B2 (en) * 2009-08-26 2012-11-06 Densbits Technologies Ltd. Flash memory module and method for programming a page of flash memory cells
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8364924B2 (en) * 2009-10-21 2013-01-29 International Business Machines Corporation Achieving a high throughput in a storage cache application using a flash solid state disk
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8626988B2 (en) 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
US9037777B2 (en) * 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8607124B2 (en) * 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
US8700970B2 (en) * 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
WO2011121590A1 (en) * 2010-03-31 2011-10-06 Kaminario Technologies Ltd. Log structure array
US8516274B2 (en) 2010-04-06 2013-08-20 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8527840B2 (en) 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9021177B2 (en) 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US9235530B2 (en) 2010-05-31 2016-01-12 Sandisk Technologies Inc. Method and system for binary cache cleanup
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8539311B2 (en) 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories
US8467249B2 (en) 2010-07-06 2013-06-18 Densbits Technologies Ltd. Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US8508995B2 (en) 2010-09-15 2013-08-13 Densbits Technologies Ltd. System and method for adjusting read voltage thresholds in memories
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US8667211B2 (en) 2011-06-01 2014-03-04 Densbits Technologies Ltd. System and method for managing a non-volatile memory
US20120317377A1 (en) * 2011-06-09 2012-12-13 Alexander Palay Dual flash translation layer
US8588003B1 (en) 2011-08-01 2013-11-19 Densbits Technologies Ltd. System, method and computer program product for programming and for recovering from a power failure
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US20130159602A1 (en) * 2011-12-20 2013-06-20 Bae Systems Controls, Inc. Unified memory architecture
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
KR102050732B1 (ko) * 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US10013322B2 (en) * 2013-06-03 2018-07-03 Hitachi, Ltd. Storage apparatus and storage apparatus control method
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9921955B1 (en) * 2013-09-30 2018-03-20 EMC IP Holding Company Flash write amplification reduction
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
KR102263046B1 (ko) 2014-10-29 2021-06-09 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
KR102287760B1 (ko) 2014-10-29 2021-08-09 삼성전자주식회사 메모리 시스템 및 상기 메모리 시스템의 동작 방법
KR102252378B1 (ko) 2014-10-29 2021-05-14 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
KR20170011645A (ko) * 2015-07-23 2017-02-02 에스케이하이닉스 주식회사 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
KR102491624B1 (ko) * 2015-07-27 2023-01-25 삼성전자주식회사 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US11429296B2 (en) 2020-06-01 2022-08-30 Western Digital Technologies, Inc. Storage system, host, and method for extended and imaginary logical-to-physical address mapping

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452311A (en) * 1992-10-30 1995-09-19 Intel Corporation Method and apparatus to improve read reliability in semiconductor memories
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5519847A (en) * 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
US5666494A (en) * 1995-03-31 1997-09-09 Samsung Electronics Co., Ltd. Queue management mechanism which allows entries to be processed in any order
US5930815A (en) * 1995-07-31 1999-07-27 Lexar Media, Inc. Moving sequential sectors within a block of information in a flash memory mass storage architecture
US5978808A (en) * 1995-12-27 1999-11-02 Intel Corporation Virtual small block file manager for flash memory array
JP3538202B2 (ja) * 1996-07-19 2004-06-14 東京エレクトロンデバイス株式会社 フラッシュメモリカード
US5943692A (en) * 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
KR100614469B1 (ko) * 1997-12-05 2006-08-25 동경 엘렉트론 디바이스 주식회사 기억장치
US6263399B1 (en) * 1998-06-01 2001-07-17 Sun Microsystems, Inc. Microprocessor to NAND flash interface
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
JP2000276883A (ja) * 1999-03-25 2000-10-06 Sanyo Electric Co Ltd 不揮発性メモリの書き込み回路
US6282605B1 (en) * 1999-04-26 2001-08-28 Moore Computer Consultants, Inc. File system for non-volatile computer memory
JP4842417B2 (ja) * 1999-12-16 2011-12-21 ソニー株式会社 記録装置
FR2803080A1 (fr) * 1999-12-22 2001-06-29 St Microelectronics Sa Memoire flash programmable page par page

Also Published As

Publication number Publication date
FI20030789A0 (fi) 2003-05-26
KR100952135B1 (ko) 2010-04-09
FI20030789A (fi) 2003-07-16
EP1435099A1 (en) 2004-07-07
US6678785B2 (en) 2004-01-13
JP2005505818A (ja) 2005-02-24
KR20040034580A (ko) 2004-04-28
US20030065876A1 (en) 2003-04-03
EP1435099A4 (en) 2006-07-19
JP4155463B2 (ja) 2008-09-24
WO2003030180A1 (en) 2003-04-10

Similar Documents

Publication Publication Date Title
FI121559B (fi) Vain Sekventiaalista kirjoitusta käyttävä flash-hallintajärjestelmä ja -menetelmä
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US10126959B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
US7627733B2 (en) Method and system for dual mode access for storage devices
EP2254053B1 (en) FAT-analysis for optimized sequential cluster management
US8209516B2 (en) Method and system for dual mode access for storage devices
US7814262B2 (en) Memory system storing transformed units of data in fixed sized storage blocks
CN100487672C (zh) 用于分割一逻辑块的方法及设备
US6477616B1 (en) Storage device, storage system, memory management method, recording medium, and computer data signal
US7669003B2 (en) Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7793068B2 (en) Dual mode access for non-volatile storage devices
US7769978B2 (en) Method and system for accessing non-volatile storage devices
US7849253B2 (en) Method for fast access to flash-memory media
US20080155175A1 (en) Host System That Manages a LBA Interface With Flash Memory
US20070136509A1 (en) Method For Flash-Memory Management
US20030046484A1 (en) Flash management system for large page size
US20100169542A1 (en) Dynamic mapping of logical ranges to write blocks
EP1771862B1 (en) Method and device to improve usb flash write performance
KR100608602B1 (ko) 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
KR20120135216A (ko) 어드레스 테이블을 위한 마이크로-업데이트 아키텍처
JP2005516264A (ja) 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置
KR20010031157A (ko) 플래시 파일 시스템
WO2007058624A1 (en) A controller for non-volatile memories, and methods of operating the memory controller

Legal Events

Date Code Title Description
TC Name/ company changed in patent

Owner name: SANDISK IL LTD.

Free format text: SANDISK IL LTD.

MM Patent lapsed