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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 49
- 238000012163 sequencing technique Methods 0.000 title 1
- 230000015654 memory Effects 0.000 claims description 36
- 238000013507 mapping Methods 0.000 claims description 18
- 230000006835 compression Effects 0.000 claims description 5
- 238000007906 compression Methods 0.000 claims description 5
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100172879 Caenorhabditis elegans sec-5 gene Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory 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)
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)
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
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US96460601 | 2001-09-28 | ||
US09/964,606 US6678785B2 (en) | 2001-09-28 | 2001-09-28 | Flash management system using only sequential write |
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)
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 | 旺玖科技股份有限公司 | 非易失性存储器的数据更新方法 |
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 |
US7412560B2 (en) * | 2004-12-16 | 2008-08-12 | Sandisk Corporation | Non-volatile memory and method with multi-stream updating |
US7366826B2 (en) * | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
US7386655B2 (en) * | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
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 |
US7877539B2 (en) * | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion 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 | メモリシステム |
US7743409B2 (en) * | 2005-07-08 | 2010-06-22 | Sandisk Corporation | Methods used in a 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 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템 |
US7747837B2 (en) * | 2005-12-21 | 2010-06-29 | 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 |
US7769978B2 (en) * | 2005-12-21 | 2010-08-03 | 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 | 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置 |
WO2007119267A1 (ja) | 2006-03-13 | 2007-10-25 | Matsushita Electric Industrial Co., Ltd. | フラッシュメモリ用のメモリコントローラ |
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의 어드레스 매핑 방법 |
US7769945B2 (en) * | 2007-01-18 | 2010-08-03 | 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 |
US7719890B2 (en) | 2007-09-12 | 2010-05-18 | Sandisk Corporation | Data protection for write abort |
US8650352B2 (en) * | 2007-09-20 | 2014-02-11 | Densbits Technologies Ltd. | Systems and methods for determining logical values of coupled flash memory cells |
US8365040B2 (en) | 2007-09-20 | 2013-01-29 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
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 |
WO2009072101A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Apparatus and methods for generating row-specific reading thresholds in flash memory |
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 |
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 |
WO2009074979A2 (en) * | 2007-12-12 | 2009-06-18 | 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 |
US8200904B2 (en) * | 2007-12-12 | 2012-06-12 | Sandisk Il Ltd. | System and method for clearing data from a cache |
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 |
US8452940B2 (en) * | 2008-12-30 | 2013-05-28 | Sandisk Technologies Inc. | Optimized memory management for random and sequential data writing |
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 |
US8205063B2 (en) * | 2008-12-30 | 2012-06-19 | Sandisk Technologies Inc. | Dynamic mapping of logical ranges to write blocks |
US8261009B2 (en) * | 2008-12-30 | 2012-09-04 | Sandisk Il Ltd. | Method and apparatus for retroactive adaptation of data location |
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 |
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 |
US8245112B2 (en) * | 2009-06-04 | 2012-08-14 | Lsi Corporation | Flash memory organization |
US8200857B2 (en) * | 2009-11-30 | 2012-06-12 | Lsi Corporation | Coalescing multiple contexts into a single data transfer in a media controller architecture |
US20100306451A1 (en) * | 2009-06-01 | 2010-12-02 | Joshua Johnson | Architecture for nand flash constraint enforcement |
US8321639B2 (en) * | 2009-12-30 | 2012-11-27 | Lsi Corporation | Command tracking for direct access block storage devices |
US8516264B2 (en) * | 2009-10-09 | 2013-08-20 | Lsi Corporation | Interlocking plain text passwords to data encryption keys |
US8566510B2 (en) | 2009-05-12 | 2013-10-22 | Densbits Technologies Ltd. | Systems and method for flash memory management |
KR101324688B1 (ko) | 2009-06-12 | 2013-11-04 | 바이올린 메모리 인코포레이티드 | 영구 가비지 컬렉션을 갖는 메모리 시스템 |
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 |
US8862819B2 (en) | 2010-03-31 | 2014-10-14 | Kaminario Technologies Ltd. | Log structure array |
US8527840B2 (en) | 2010-04-06 | 2013-09-03 | Densbits Technologies Ltd. | System and method for restoring damaged data programmed on a flash device |
US9104610B2 (en) | 2010-04-06 | 2015-08-11 | Densbits Technologies Ltd. | Method, system and medium for analog encryption in a flash memory |
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 |
US8621321B2 (en) | 2010-07-01 | 2013-12-31 | 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 |
US20120008414A1 (en) | 2010-07-06 | 2012-01-12 | Michael Katz | 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 |
US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
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 |
US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
US9372792B1 (en) | 2011-05-12 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
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 |
US8996788B2 (en) | 2012-02-09 | 2015-03-31 | Densbits Technologies Ltd. | Configurable flash interface |
US8947941B2 (en) | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
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 |
JP6055544B2 (ja) * | 2013-06-03 | 2016-12-27 | 株式会社日立製作所 | ストレージ装置およびストレージ装置制御方法 |
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 |
US9348694B1 (en) | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
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 |
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 |
US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
KR102252378B1 (ko) | 2014-10-29 | 2021-05-14 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
KR102287760B1 (ko) | 2014-10-29 | 2021-08-09 | 삼성전자주식회사 | 메모리 시스템 및 상기 메모리 시스템의 동작 방법 |
KR102263046B1 (ko) | 2014-10-29 | 2021-06-09 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
US9552171B2 (en) | 2014-10-29 | 2017-01-24 | Sandisk Technologies Llc | Read scrub with adaptive counter management |
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)
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 |
-
2001
- 2001-09-28 US US09/964,606 patent/US6678785B2/en not_active Expired - Lifetime
-
2002
- 2002-09-25 WO PCT/US2002/030303 patent/WO2003030180A1/en active Application Filing
- 2002-09-25 KR KR1020037007163A patent/KR100952135B1/ko not_active Expired - Fee Related
- 2002-09-25 EP EP02763710A patent/EP1435099A4/en not_active Withdrawn
- 2002-09-25 JP JP2003533286A patent/JP4155463B2/ja not_active Expired - Fee Related
-
2003
- 2003-05-26 FI FI20030789A patent/FI121559B/fi not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US20030065876A1 (en) | 2003-04-03 |
US6678785B2 (en) | 2004-01-13 |
EP1435099A4 (en) | 2006-07-19 |
KR20040034580A (ko) | 2004-04-28 |
EP1435099A1 (en) | 2004-07-07 |
KR100952135B1 (ko) | 2010-04-09 |
FI20030789A0 (fi) | 2003-05-26 |
JP4155463B2 (ja) | 2008-09-24 |
FI20030789A (fi) | 2003-07-16 |
WO2003030180A1 (en) | 2003-04-10 |
JP2005505818A (ja) | 2005-02-24 |
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 | |
US7702844B2 (en) | Address mapping method and mapping information managing method for flash memory, and flash memory using the same | |
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 | |
JP4931810B2 (ja) | 最適化されたシーケンシャルなクラスタの管理のためのfat分析 | |
US7627733B2 (en) | Method and system for dual mode access for storage devices | |
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 | |
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 | |
US8205063B2 (en) | Dynamic mapping of logical ranges to write blocks | |
US7793068B2 (en) | Dual mode access for non-volatile storage devices | |
US7769978B2 (en) | Method and system for accessing non-volatile storage devices | |
US20080155175A1 (en) | Host System That Manages a LBA Interface With Flash Memory | |
US20060020744A1 (en) | Method and apparatus for maintaining data on non-volatile memory systems | |
US20030046484A1 (en) | Flash management system for large page size | |
US20070086260A1 (en) | Method of storing transformed units of data in a memory system having fixed sized storage blocks | |
KR100608602B1 (ko) | 플래시 메모리, 이를 위한 사상 제어 장치 및 방법 | |
KR20120135216A (ko) | 어드레스 테이블을 위한 마이크로-업데이트 아키텍처 | |
JP2005516264A (ja) | 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置 | |
KR20010031157A (ko) | 플래시 파일 시스템 | |
WO2007058624A1 (en) | A controller for non-volatile memories, and methods of operating the memory controller | |
US20110029717A1 (en) | Flash storage device with flexible data format | |
US7849253B2 (en) | Method for fast access to flash-memory media | |
US20050169058A1 (en) | Data management apparatus and method used for flash memory |
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 |