專利名稱:存儲(chǔ)卡、半導(dǎo)體裝置和半導(dǎo)體存儲(chǔ)器的控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及安裝了非易失性半導(dǎo)體存儲(chǔ)器的存儲(chǔ)卡,特別是涉及安裝了具有規(guī)定的擦除塊尺寸的非易失性半導(dǎo)體存儲(chǔ)器的存儲(chǔ)卡、在該卡上安裝的半導(dǎo)體裝置和半導(dǎo)體存儲(chǔ)器的控制方法。
背景技術(shù):
作為在存儲(chǔ)卡上安裝的非易失性存儲(chǔ)器,大多采用NAND型閃存器。在NAND型閃存器中,將某一定的數(shù)目的存儲(chǔ)單元?dú)w納在一起構(gòu)成了頁這樣的單位,將某一定的數(shù)目的頁歸納在一起構(gòu)成了塊這樣的單位。
此外,對于NAND型閃存器來說,在其結(jié)構(gòu)方面,不能對寫入了一次數(shù)據(jù)的單元單純地再次寫入數(shù)據(jù)。為了再次寫入數(shù)據(jù),必須進(jìn)行擦除。在此,只能以塊單位進(jìn)行擦除。此外,一般來說,以頁單位進(jìn)行讀出或?qū)懭?。特別是在寫入中,必須從物理塊內(nèi)的開頭頁起按順序?qū)懭霐?shù)據(jù)。
例如,考慮NAND型閃存器內(nèi)的控制器根據(jù)來自使用NAND型閃存器的主機(jī)的寫入要求對已寫入了數(shù)據(jù)的第1塊內(nèi)的某個(gè)區(qū)域(例如頁)的數(shù)據(jù)增加變更的情況。在該情況下,控制器在探尋了數(shù)據(jù)已擦除完畢的第2塊后,從開頭頁起按順序在第2塊中寫入(復(fù)制)從第1塊的開頭頁到成為變更對象的頁之前的頁為止的數(shù)據(jù),接著,在第2塊中寫入成為變更對象的頁的數(shù)據(jù),最后,將從成為變更對象的頁之后的頁到最終頁為止的數(shù)據(jù)復(fù)制到第2塊中。
再有,在日本國特開2002-133877號(hào)公報(bào)中公開了可進(jìn)行高速的塊擦除的NAND型EEPROM。
但是,按照現(xiàn)有的寫入方法,在對某個(gè)塊內(nèi)的開頭頁進(jìn)行了寫入后對另外的塊內(nèi)的最終頁進(jìn)行寫入那樣的情況下,2個(gè)寫入的時(shí)間間隔變得最大。在這樣的情況下,如果在存儲(chǔ)卡的規(guī)格中確定了時(shí)間的制約,則產(chǎn)生不滿足該時(shí)間的制約的事態(tài),存在工作中產(chǎn)生不良情況的危險(xiǎn)。即使在上述文獻(xiàn)中也引起同樣的問題。
根據(jù)這樣的情況,希望實(shí)現(xiàn)滿足關(guān)于寫入的時(shí)間制約的工作。
發(fā)明內(nèi)容
與本發(fā)明的實(shí)施例有關(guān)的半導(dǎo)體裝置具備具有規(guī)定的擦除塊尺寸的半導(dǎo)體存儲(chǔ)器;以及控制器,在對上述半導(dǎo)體存儲(chǔ)器中已寫入了數(shù)據(jù)的第1塊內(nèi)的某個(gè)區(qū)域發(fā)生了數(shù)據(jù)寫入要求的情況下,與該區(qū)域的地址的值無關(guān)地在數(shù)據(jù)已擦除完畢的第2塊的開頭區(qū)域中寫入上述寫入要求的數(shù)據(jù)。
此外,與本發(fā)明的實(shí)施例有關(guān)的存儲(chǔ)卡具備具有規(guī)定的擦除塊尺寸的非易失性半導(dǎo)體存儲(chǔ)器;以及控制器,在對上述非易失性半導(dǎo)體存儲(chǔ)器中已寫入了數(shù)據(jù)的第1塊內(nèi)的某個(gè)區(qū)域發(fā)生了數(shù)據(jù)寫入要求的情況下,與該區(qū)域的地址的值無關(guān)地在數(shù)據(jù)已擦除完畢的第2塊的開頭區(qū)域中寫入上述寫入要求的數(shù)據(jù)。
此外,與本發(fā)明的實(shí)施例有關(guān)的半導(dǎo)體存儲(chǔ)器的控制方法是具有規(guī)定的擦除塊尺寸的半導(dǎo)體存儲(chǔ)器的控制方法,在該方法中,接受對上述半導(dǎo)體存儲(chǔ)器中已寫入了數(shù)據(jù)的第1塊內(nèi)的某個(gè)區(qū)域的數(shù)據(jù)寫入要求,與上述區(qū)域的地址的值無關(guān)地在數(shù)據(jù)已擦除完畢的第2塊的開頭區(qū)域中寫入上述寫入要求的數(shù)據(jù)。
圖1是示出與本發(fā)明的一實(shí)施例有關(guān)的存儲(chǔ)卡上安裝的器件類的概略結(jié)構(gòu)的立體圖;圖2是示出包含主機(jī)和上述存儲(chǔ)卡的結(jié)構(gòu)的框圖;圖3是示出主機(jī)20設(shè)想了的閃存器與實(shí)際上使用的閃存器的數(shù)據(jù)配置的差別的圖;圖4是示出主機(jī)側(cè)系統(tǒng)和存儲(chǔ)卡(大塊卡)的各信息交換層次的圖;圖5A和圖5B是示出從主機(jī)側(cè)發(fā)送來的指令的格式的圖;圖6是對比主機(jī)側(cè)設(shè)想了的塊寫入操作和存儲(chǔ)卡(大塊卡)側(cè)實(shí)際上進(jìn)行的寫入處理而示出的圖;圖7是示出大塊卡內(nèi)的閃存器的塊格式(作為擦除單位的256千字節(jié)物理塊部分)的圖;圖8是示出主機(jī)對本實(shí)施例的存儲(chǔ)卡進(jìn)行寫入時(shí)的該存儲(chǔ)卡的I/O引腳和R/B引腳的信號(hào)的例子的時(shí)序圖;圖9是示出存儲(chǔ)卡內(nèi)的控制器對本實(shí)施例的存儲(chǔ)卡內(nèi)的非易失性存儲(chǔ)器進(jìn)行寫入時(shí)的該存儲(chǔ)卡內(nèi)的非易失性存儲(chǔ)器的I/O引腳和R/B引腳的信號(hào)的例子的時(shí)序圖;圖10是用于說明NAND型閃存器中的數(shù)據(jù)寫入的順序的圖;圖11是用于說明現(xiàn)有技術(shù)的基本的數(shù)據(jù)寫入方法的一例的圖;圖12是用于說明本實(shí)施例的基本的數(shù)據(jù)寫入方法的一例的圖;圖13是用于說明現(xiàn)有技術(shù)的數(shù)據(jù)寫入方法的具體例的圖;以及圖14是用于說明本實(shí)施例的數(shù)據(jù)寫入方法的具體例的圖。
具體實(shí)施例方式
以下參照附圖,說明本發(fā)明的一實(shí)施例。
圖1是示出與本發(fā)明的一實(shí)施例有關(guān)的存儲(chǔ)卡上安裝的器件類的概略結(jié)構(gòu)的立體圖。
對于與本實(shí)施例有關(guān)的存儲(chǔ)卡1來說,如圖示那樣,在PCB(印刷電路板)基板上配置了NAND型閃存器3和控制器4。在上述控制器4中安裝了CPU(中央處理單元)8或ROM(只讀存儲(chǔ)器)9等的功能塊。在后面敘述各器件的細(xì)節(jié)。再有,NAND型閃存器3可以是在1個(gè)存儲(chǔ)單元中存儲(chǔ)1比特的信息的2值存儲(chǔ)器,也可以是在1個(gè)存儲(chǔ)單元中存儲(chǔ)比1比特多的信息(例如2比特)的多值存儲(chǔ)器。此外,在圖1中,示出了在PCB基板上配置了NAND型閃存器3和控制器4的情況,但也可在同一LSI(大規(guī)模集成電路)基板上配置NAND型閃存器3和控制器4。
在以下的說明中使用的術(shù)語「邏輯塊地址」、「物理塊地址」分別意味著塊本身的邏輯地址、物理地址。此外,「邏輯地址」、「物理地址」主要意味著塊本身的邏輯地址、物理地址,但有時(shí)也表示相當(dāng)于比塊單位細(xì)的分辨率的單位的地址。
圖2是示出包含主機(jī)和上述存儲(chǔ)卡的結(jié)構(gòu)的框圖。再有,對與圖1為共同的要素附以同一符號(hào)。
主機(jī)設(shè)備(以下稱為主機(jī))20具備對被連接的存儲(chǔ)卡進(jìn)行存取用的硬件和軟件(系統(tǒng))。該主機(jī)20管理存儲(chǔ)卡內(nèi)部的物理狀態(tài)(在哪個(gè)物理塊地址中包含了第幾邏輯扇區(qū)地址數(shù)據(jù),或哪個(gè)塊為擦除狀態(tài)),作為直接控制存儲(chǔ)卡內(nèi)的閃存器的主機(jī)而被構(gòu)筑。
此外,主機(jī)20以使用擦除時(shí)的擦除塊尺寸被確定為16千字節(jié)的NAND型閃存器為前提,以16千字節(jié)單位進(jìn)行邏輯、物理地址的分配,在大多數(shù)的情況下,關(guān)于16千字節(jié)部分的邏輯地址,順序地進(jìn)行寫的訪問或讀的訪問(發(fā)出相應(yīng)的指令)。
存儲(chǔ)卡1在連接到主機(jī)20上時(shí)接受電源供給而工作,進(jìn)行與來自主機(jī)20的訪問對應(yīng)的處理。該存儲(chǔ)卡1如上所述,具有NAND型閃存器3和控制器4。
NAND型閃存器3是擦除時(shí)的擦除塊尺寸(擦除單位的塊尺寸)被確定為256千字節(jié)的非易失性存儲(chǔ)器,例如以16千字節(jié)單位進(jìn)行寫入、讀出。該NAND型閃存器3例如使用0.09μm工藝技術(shù)來制作。即,NAND型閃存器3的設(shè)計(jì)規(guī)則為不到0.1μm。
控制器4除了上述的CPU8和ROM9外,還安裝了存儲(chǔ)器界面部5、主機(jī)界面部6、緩沖器7和RAM(隨機(jī)存取存儲(chǔ)器)10。
存儲(chǔ)器界面部5進(jìn)行控制器4與NAND型閃存器3之間的界面處理。主機(jī)界面部6進(jìn)行控制器4與主機(jī)20之間的界面處理。
緩沖器7在將從主機(jī)20發(fā)送來的數(shù)據(jù)寫入到NAND型閃存器3中時(shí),暫時(shí)地存儲(chǔ)一定量的數(shù)據(jù)(例如1頁部分),在對主機(jī)20送出從NAND型閃存器3讀出的數(shù)據(jù)時(shí),暫時(shí)地存儲(chǔ)一定量的數(shù)據(jù)。
CPU8管理存儲(chǔ)卡1整體的工作。該CPU8例如在存儲(chǔ)卡1接受了電源供給時(shí),通過將ROM9中被存儲(chǔ)了的程序包(控制程序)裝載到RAM10上來執(zhí)行規(guī)定的處理,在RAM10上作成各種表,或從主機(jī)20接受寫入指令、讀出指令、擦除指令以執(zhí)行對于NAND型閃存器3上的該相當(dāng)?shù)膮^(qū)域的訪問,或控制通過緩沖器7的數(shù)據(jù)傳送處理。
ROM9是存儲(chǔ)由CPU8使用的控制程序等的存儲(chǔ)器。RAM10作為CPU8的作業(yè)區(qū)來使用,是存儲(chǔ)控制程序或各種表的存儲(chǔ)器。
圖3示出了主機(jī)20設(shè)想了的閃存器與實(shí)際上使用的閃存器(即,存儲(chǔ)卡1內(nèi)的NAND型閃存器3)的數(shù)據(jù)配置的差別。
在主機(jī)20設(shè)想了的閃存器中,各頁具有528字節(jié)(512字節(jié)部分的數(shù)據(jù)存儲(chǔ)部+16字節(jié)部分的冗余部),32頁部分成為1個(gè)擦除單位(即,16千字節(jié)+0.5千字節(jié)(在此,k為1024))。以下,有時(shí)將安裝了這樣的閃存器的卡稱為「小塊卡」。
另一方面,在實(shí)際上使用的閃存器3中,各頁具有2112字節(jié)(512字節(jié)部分的數(shù)據(jù)存儲(chǔ)部×4+10字節(jié)部分的冗余部×4+24字節(jié)部分的管理數(shù)據(jù)存儲(chǔ)部),128頁部分成為1個(gè)擦除單位(即,256千字節(jié)+8千字節(jié))。以下,有時(shí)將安裝了這樣的閃存器3的卡稱為「大塊卡」。再有,在以下的說明中,為了方便起見,將小塊卡的擦除單位稱為16千字節(jié),將大塊卡的擦除單位稱為256千字節(jié)。
此外,主機(jī)20設(shè)想了的閃存器和實(shí)際上使用的閃存器3分別具備進(jìn)行對閃存器的數(shù)據(jù)輸入輸出用的頁緩沖器。在主機(jī)20設(shè)想了的閃存器中具備的頁緩沖器的存儲(chǔ)容量為528字節(jié)(512字節(jié)+16字節(jié))。另一方面,在實(shí)際上使用的閃存器3中具備的頁緩沖器的存儲(chǔ)容量為2112字節(jié)(2048字節(jié)+64字節(jié))。在數(shù)據(jù)寫入等時(shí),各頁緩沖器以相當(dāng)于自身的存儲(chǔ)容量的1頁部分的單位執(zhí)行對閃存器的數(shù)據(jù)輸入輸出處理。
在圖3的例子中,示出了實(shí)際上使用的閃存器3的擦除塊尺寸是主機(jī)20設(shè)想了的閃存器的擦除塊尺寸的16倍的情況,但本發(fā)明不限定于此,只要大致是整數(shù)倍就行,也可構(gòu)成為另外的倍率。
為了將大塊卡作成實(shí)用上有效的制品,希望圖3中示出的閃存器3的存儲(chǔ)容量大于等于1G比特。在閃存器3的存儲(chǔ)容量例如是1G比特的情況下,256千字節(jié)塊(擦除單位)的數(shù)目為512個(gè)。
此外,在圖3中例示了擦除單位是256千字節(jié)塊的情況,但將擦除單位例如構(gòu)筑為128千字節(jié)的塊在實(shí)用上也是有效的。在該情況下,128千字節(jié)的塊的數(shù)目為1024個(gè)。
此外,在圖3的例子中,示出了實(shí)際上使用的閃存器3的擦除塊尺寸比主機(jī)20設(shè)想了的閃存器的擦除塊尺寸大的情況,但本發(fā)明不限定于此,也可構(gòu)成為實(shí)際上使用的閃存器3的擦除塊尺寸比主機(jī)20設(shè)想了的閃存器的擦除塊尺寸小。
圖4是示出主機(jī)20側(cè)系統(tǒng)和存儲(chǔ)卡1(大塊卡)的各信息交換層次的圖。
主機(jī)20側(cè)的系統(tǒng)具有應(yīng)用軟件21、文件系統(tǒng)22、驅(qū)動(dòng)軟件23和小塊卡物理存取層24。另一方面,存儲(chǔ)卡1(大塊卡)具有小塊卡物理存取層11、小塊卡物理、小塊卡邏輯變換層12、小塊卡邏輯、大塊卡物理變換層13和大塊卡物理存取層14。
例如,如果主機(jī)20側(cè)的應(yīng)用軟件21對文件系統(tǒng)22要求文件的寫入,則文件系統(tǒng)22根據(jù)小塊卡的邏輯塊地址,對驅(qū)動(dòng)軟件23指示順序的扇區(qū)寫入。驅(qū)動(dòng)軟件23接受該指示后,在實(shí)現(xiàn)基于小塊卡的邏輯塊地址的每個(gè)16千字節(jié)塊的順序的寫入時(shí),進(jìn)行邏輯、物理塊變換,通過小塊卡物理存取層24對大塊卡發(fā)出按小塊卡的物理塊地址進(jìn)行的隨機(jī)的寫入指令,進(jìn)行數(shù)據(jù)傳送。
再有,在寫的訪問中,在小塊卡的情況下也好、在大塊卡的情況下也好,在協(xié)議方面都以按(1)指令、(2)頁地址(行地址)、(3)列地址、(4)數(shù)據(jù)、(5)程序確認(rèn)指令這樣的順序進(jìn)行信息的授受為前提。
如果大塊卡側(cè)中的小塊卡物理存取層11從主機(jī)20接受按小塊卡的物理塊地址的寫入指令,則除了取得物理塊地址或數(shù)據(jù)外,還取得附加在其上的附加數(shù)據(jù)中包含的邏輯塊地址。
小塊卡物理、小塊卡邏輯變換層12具有在數(shù)據(jù)讀出等時(shí)進(jìn)行從小塊卡的物理塊地址(對應(yīng)于16千字節(jié)塊部分)至小塊卡的邏輯塊地址(對應(yīng)于16千字節(jié)塊部分)的變換處理用的第1表。變換層12在小塊卡物理存取層11接受寫入指令并取得了小塊卡的邏輯塊地址時(shí),將其反映在上述第1表中。關(guān)于物理塊地址,也將其反映在上述第1表中。
小塊卡邏輯、大塊卡物理變換層13具有在數(shù)據(jù)讀出等時(shí)進(jìn)行從小塊卡的邏輯塊地址(對應(yīng)于順序的16千字節(jié)塊×16個(gè)部分)至大塊卡的物理塊地址(對應(yīng)于256千字節(jié)物理塊部分)的變換處理用的第2表。變換層12在小塊卡物理存取層11接受寫入指令并取得了小塊卡的邏輯塊地址時(shí),將其反映在上述第2表中。
大塊卡物理存取層14根據(jù)小塊卡物理存取層11接受寫入指令并取得了的小塊卡的邏輯塊地址決定閃存器3內(nèi)部的數(shù)據(jù)配置,在256千字節(jié)物理塊內(nèi)以2千字節(jié)(1頁)單位順序地寫入16千字節(jié)部分的數(shù)據(jù)。此外,大塊卡物理存取層14在閃存器3內(nèi)部的管理數(shù)據(jù)區(qū)域內(nèi)的規(guī)定的區(qū)域中存儲(chǔ)已取得的小塊卡的邏輯塊地址或物理塊地址。
這樣,由于主機(jī)20發(fā)出基于小塊卡的物理塊地址的指令,故在大塊卡側(cè),以知道與小塊卡的物理塊地址對應(yīng)的數(shù)據(jù)存在于哪個(gè)256千字節(jié)物理塊中的方式來管理。具體地說,在每個(gè)16千字節(jié)塊中管理小塊卡的邏輯、物理塊地址的對應(yīng)關(guān)系,同時(shí)以知道與小塊卡的連續(xù)的256千字節(jié)部分的邏輯塊地址對應(yīng)的數(shù)據(jù)被存儲(chǔ)在大塊卡內(nèi)的哪個(gè)256千字節(jié)物理塊中的方式來管理。
圖5A和圖5B是示出從主機(jī)20側(cè)發(fā)送來的指令的格式的圖;
從主機(jī)20側(cè)發(fā)送來的指令的包,如圖5A中所示,包含了指令類別信息(在此是「寫入」)、地址(物理塊地址)、數(shù)據(jù)(內(nèi)容等的實(shí)際數(shù)據(jù)和附加數(shù)據(jù)(512字節(jié)+16字節(jié)))這樣的各種信息。
在這樣的格式的包中,如圖5B中所示,在附加數(shù)據(jù)16字節(jié)中的規(guī)定的位置上配置了小塊卡的「邏輯塊地址」(與成為存取對象的16字節(jié)塊對應(yīng)的邏輯地址)。大塊卡除了取得指令類別信息、物理塊地址、數(shù)據(jù)外,還特別取得上述「邏輯塊地址」。再有,在讀出指令的情況下,不附加該「邏輯塊地址」。
圖6是對比主機(jī)20側(cè)設(shè)想了的塊寫入操作和存儲(chǔ)卡1(大塊卡)側(cè)實(shí)際上進(jìn)行的寫入處理而示出的圖。
在主機(jī)20側(cè)(該圖的左側(cè)),在基于小塊卡的邏輯地址的16千字節(jié)塊單位的順序的寫入操作的發(fā)生時(shí),進(jìn)行按小塊卡的物理塊地址的16千字節(jié)塊單位的隨機(jī)的寫入操作。
另一方面,在大塊卡側(cè)(該圖的右側(cè)),在從主機(jī)20側(cè)接收了寫入指令的情況下,在閃存器3內(nèi)順序地寫入基于小塊卡的邏輯塊地址的16千字節(jié)塊單位的數(shù)據(jù)。
如上所述,主機(jī)20進(jìn)行按小塊卡的物理地址的16字節(jié)單位的隨機(jī)的寫入操作。在這樣的隨機(jī)的寫入操作中,一般來說,較多地發(fā)生只改寫大塊(256千字節(jié))的一部分用的處理。在NAND型閃存器中,由于只能以塊單位進(jìn)行擦除,故在只改寫塊的一部分的情況下,必須在已擦除完畢的新塊中寫入被改寫的新數(shù)據(jù),將未被改寫的剩下的數(shù)據(jù)從包含被改寫為新數(shù)據(jù)的舊數(shù)據(jù)的舊塊復(fù)制到新塊中。這樣,由于只改寫塊的一部分的處理伴隨未被改寫的數(shù)據(jù)的復(fù)制工作(以下,稱為「牽連數(shù)據(jù)復(fù)制」),故如果較多地發(fā)生只改寫塊的一部分的處理,則輔助操作的量非常地大。因此,在本實(shí)施例中,按照從主機(jī)20側(cè)能得到的邏輯地址的順序,通過在大塊卡側(cè)再次分配物理地址,減少了只是塊的一部分的寫入的發(fā)生,抑制了輔助操作的量的增大。
圖7是示出大塊卡內(nèi)的NAND型閃存器3的塊格式(作為擦除單位的256千字節(jié)物理塊部分)的圖。
在大塊卡中,在作為擦除單位的256千字節(jié)物理塊中包含了16個(gè)部分的寫入相當(dāng)于作為主機(jī)20側(cè)管理的單位的16千字節(jié)的數(shù)據(jù)用的塊(以下稱為主機(jī)管理塊)。在數(shù)據(jù)寫入時(shí),按照小塊卡的邏輯塊地址的順序配置各自的數(shù)據(jù)。
各主機(jī)管理塊由8個(gè)頁構(gòu)成。各頁包含4個(gè)部分的512字節(jié)數(shù)據(jù)區(qū),同時(shí)包含了與各數(shù)據(jù)區(qū)對應(yīng)的10字節(jié)ECC區(qū)域。此外,在頁中的最后的512字節(jié)數(shù)據(jù)區(qū)(第4個(gè)512字節(jié)數(shù)據(jù)區(qū))之后也設(shè)置24字節(jié)管理數(shù)據(jù)區(qū)。因此,頁中的最后的10字節(jié)ECC區(qū)域成為與第4個(gè)512字節(jié)數(shù)據(jù)區(qū)和24字節(jié)管理數(shù)據(jù)區(qū)這兩者相對應(yīng)的結(jié)構(gòu)。
作為擦除單位的256千字節(jié)物理塊中包含的128個(gè)24字節(jié)管理數(shù)據(jù)區(qū)中,例如在最后的24字節(jié)管理數(shù)據(jù)區(qū)中歸納地存儲(chǔ)了與由從主機(jī)20側(cè)送來的指令取得的物理塊地址相當(dāng)?shù)牡刂沸畔?以下稱為「主機(jī)管理物理地址」)和與邏輯塊地址相當(dāng)?shù)牡刂沸畔?以下稱為「主機(jī)管理邏輯塊地址」)。
在各256千字節(jié)塊內(nèi)被存儲(chǔ)了的「主機(jī)管理物理地址」和「主機(jī)管理邏輯塊地址」在作成圖4中已說明的小塊卡物理、小塊卡邏輯變換層12具有的第1表和小塊卡邏輯、大塊卡物理變換層13具有的第2表時(shí)被使用。
圖8是示出主機(jī)20對本實(shí)施例的存儲(chǔ)卡1進(jìn)行寫入時(shí)的該存儲(chǔ)卡1的I/O引腳和R/B引腳的信號(hào)的例子的時(shí)序圖。
主機(jī)20假定存儲(chǔ)卡是具有16千字節(jié)的擦除塊尺寸的非易失性存儲(chǔ)器并控制存儲(chǔ)卡。例如在對存儲(chǔ)卡的寫入時(shí),主機(jī)20對I/O引腳1~8輸入串行數(shù)據(jù)輸入指令80H(H表示16進(jìn)制)。其次,主機(jī)20對I/O引腳1~8輸入列地址C/A和頁地址P/A。再有,在此,列地址C/A和頁地址P/A是主機(jī)20對存儲(chǔ)卡1設(shè)想了的假想物理地址空間中的列地址和頁地址。
進(jìn)而,主機(jī)20對I/O引腳1~8的每一個(gè)輸入528次寫入數(shù)據(jù)。具體地說,主機(jī)20一邊定時(shí)528次對寫啟動(dòng)引腳的輸入信號(hào),一邊依次對各自的I/O引腳移入528比特(按全部的I/O引腳合計(jì)為528字節(jié))的數(shù)據(jù)。如果數(shù)據(jù)的移入結(jié)束,則主機(jī)20對I/O引腳1~8輸入程序指令10H。響應(yīng)于此,存儲(chǔ)卡對其R/B引腳輸出低電平的信號(hào),顯示出存儲(chǔ)卡處于”忙”的狀態(tài)。其后,在規(guī)定的期間后,通過對R/B引腳輸出高電平的信號(hào),顯示出存儲(chǔ)卡處于”準(zhǔn)備好”的狀態(tài)。
但是,圖8中的R/B引腳的狀態(tài)始終是對主機(jī)20顯示出存儲(chǔ)卡1處于怎樣的狀態(tài)。即,在圖8中,即使響應(yīng)于程序指令10H的輸入,顯示出R/B引腳處于”忙”的狀態(tài)(即輸出低電平),也不一定在內(nèi)部實(shí)際上進(jìn)行了對NAND型閃存器3的寫入工作(即,從頁緩沖器對存儲(chǔ)單元陣列的數(shù)據(jù)傳送)。此外,即使R/B引腳復(fù)歸到”準(zhǔn)備好”的狀態(tài),也不一定在內(nèi)部實(shí)際上結(jié)束了對NAND型閃存器3的寫入工作。
圖9是示出存儲(chǔ)卡1內(nèi)的控制器4對本實(shí)施例的存儲(chǔ)卡1內(nèi)的NAND型閃存器3進(jìn)行寫入時(shí)的NAND型閃存器3的I/O引腳和R/B引腳的信號(hào)的例子的時(shí)序圖。
控制器4識(shí)別了NAND型閃存器3是具有256千字節(jié)的擦除塊尺寸的非易失性存儲(chǔ)器。例如,在對NAND型閃存器3的寫入時(shí),控制器4對I/O引腳1~8輸入串行數(shù)據(jù)輸入指令80H(H表示16進(jìn)制)。其次,控制器4對I/O引腳1~8輸入列地址C/A和頁地址P/A。再有,在此,列地址C/A和頁地址P/A是控制器4對NAND型閃存器3設(shè)想了的實(shí)際物理地址空間中的列地址和頁地址。因而,圖8中的列地址C/A和頁地址P/A不一定一致。
進(jìn)而,控制器4對I/O引腳1~8的每一個(gè)輸入2112次寫入數(shù)據(jù)。具體地說,控制器4一邊定時(shí)2112次對寫啟動(dòng)引腳的輸入信號(hào),一邊依次對各自的I/O引腳移入2112比特(按全部的I/O引腳合計(jì)為2112字節(jié))的數(shù)據(jù)。如果數(shù)據(jù)的移入結(jié)束,則控制器4對I/O引腳1~8輸入程序指令10H。響應(yīng)于此,存儲(chǔ)卡對其R/B引腳輸入低電平的信號(hào),顯示出存儲(chǔ)卡處于”忙”的狀態(tài)。其后,在規(guī)定的期間后,通過對R/B引腳輸出高電平的信號(hào),顯示出存儲(chǔ)卡處于”準(zhǔn)備好”的狀態(tài)。圖9中的R/B引腳的狀態(tài)顯示出對控制器4來說NAND型閃存器3實(shí)際上處于怎樣的狀態(tài)。
再有,在上述的圖8和圖9中,分別以1個(gè)循環(huán)示出了列地址C/A和頁地址P/A的輸入,但根據(jù)存儲(chǔ)卡1的容量或NAND型閃存器3的容量,也有適當(dāng)?shù)貫榇笥诘扔?個(gè)循環(huán)的情況。
如上述圖8和圖9可知,由于存儲(chǔ)卡在”忙”的狀態(tài)下存在的時(shí)間有限制,故必須在其間進(jìn)行數(shù)據(jù)寫入,在規(guī)定的期間后,在主機(jī)側(cè)顯示出該存儲(chǔ)卡成為”準(zhǔn)備好”的狀態(tài)。此外,在NAND型閃存器中,在對某個(gè)物理塊內(nèi)的各頁寫入數(shù)據(jù)時(shí),關(guān)于寫入順序也存在制約。即,NAND型閃存器必須成為從物理塊內(nèi)的開頭頁(相當(dāng)于圖10中示出的開頭字線WL0上的單元)起順序地寫入數(shù)據(jù)的結(jié)構(gòu)。在本實(shí)施例中,利用后述的方法,既滿足上述的各自的制約又實(shí)現(xiàn)有效的數(shù)據(jù)寫入。
其次,參照圖11和圖12,將本實(shí)施例的基本的數(shù)據(jù)寫入方法與現(xiàn)有技術(shù)的數(shù)據(jù)寫入方法進(jìn)行對比來說明。
在此,舉出在NAND型閃存器3上對用已寫入了數(shù)據(jù)的塊A內(nèi)的LBA8表示的第9個(gè)區(qū)域(即圖7中的“主機(jī)管理塊”8(由8個(gè)頁部分構(gòu)成的區(qū)域))發(fā)生了數(shù)據(jù)寫入要求時(shí)的對數(shù)據(jù)擦除完畢的塊B的寫入工作作為例子。再有,在塊A內(nèi),假定未發(fā)生對該第9個(gè)區(qū)域以外的區(qū)域的數(shù)據(jù)寫入要求。該情況下的寫入工作在本實(shí)施例中由控制器4(參照圖1、圖2)來控制,具體地說,通過執(zhí)行從ROM9裝載到RAM10上的控制程序的CPU8或存儲(chǔ)器界面部5來控制。
在圖11中示出的現(xiàn)有技術(shù)的數(shù)據(jù)寫入方法中,在對塊A內(nèi)的第9個(gè)區(qū)域(LBA8)發(fā)生了數(shù)據(jù)寫入要求的情況下,首先,將塊A內(nèi)的第1~8個(gè)區(qū)域(LBA0~LBA7)的數(shù)據(jù)復(fù)制到塊B內(nèi)的第1~8個(gè)區(qū)域中(步驟S11)。
接著,在塊B內(nèi)的第9個(gè)區(qū)域中寫入對塊A內(nèi)的第9個(gè)區(qū)域(LBA8)要求了寫入的新數(shù)據(jù)(步驟S12)。
最后,將塊A內(nèi)的第10~16個(gè)區(qū)域(LBA9~LBA15)的數(shù)據(jù)復(fù)制到塊B內(nèi)的第10~16個(gè)區(qū)域中(步驟S13)。
另一方面,在圖12中示出的本實(shí)施例的數(shù)據(jù)寫入方法中,在對塊A內(nèi)的第9個(gè)區(qū)域(LBA8)發(fā)生了數(shù)據(jù)寫入要求的情況下,首先,將對該第9個(gè)區(qū)域(LBA8)要求了寫入的新數(shù)據(jù)寫入到塊B內(nèi)的第1個(gè)(開頭)區(qū)域中(步驟S21)。此時(shí),與成為寫入要求的對象的區(qū)域的地址(例如塊地址或頁地址)的值n無關(guān)地將要求了寫入的新數(shù)據(jù)寫入到塊B的開頭區(qū)域中,同時(shí)在共同的頁上的冗余部中寫入該地址的值n。
接著,將塊A內(nèi)的第10~16個(gè)區(qū)域(LBA9~LBA15)的數(shù)據(jù)復(fù)制到塊B內(nèi)的與開頭區(qū)域后續(xù)的第2~8個(gè)區(qū)域中(步驟S22)。此時(shí),將地址的值n+1~m也分別寫入到共同的頁上的冗余部中。
最后將塊A內(nèi)的第1~8個(gè)區(qū)域(LBA0~LBA7)的數(shù)據(jù)復(fù)制到塊B內(nèi)的第9~16個(gè)區(qū)域中(步驟S23)。此時(shí),將地址的值0~n-1也分別寫入到共同的頁上的冗余部中。
再有,在對塊B的數(shù)據(jù)寫入結(jié)束了后,擦除塊A上的數(shù)據(jù)。也可在顯示出存儲(chǔ)卡成為”準(zhǔn)備好”的狀態(tài)后進(jìn)行該擦除。
通過在每當(dāng)發(fā)生數(shù)據(jù)寫入要求時(shí)進(jìn)行上述的步驟S21~S23中示出的處理,可防止從某個(gè)寫入到其次的寫入為止的時(shí)間間隔的增大,可解決在現(xiàn)有技術(shù)中已說明的時(shí)間的制約的問題。此外,滿足了必須從各物理塊內(nèi)的開頭區(qū)域起順序地寫入數(shù)據(jù)這樣的制約。
另一方面,在進(jìn)行了上述步驟S21~S23中示出的處理后,在對塊B內(nèi)的某個(gè)區(qū)域發(fā)生了數(shù)據(jù)讀出要求的情況下,控制器4根據(jù)在塊B內(nèi)的開頭區(qū)域中被寫入了的地址n,可求出寫入了數(shù)據(jù)讀出對象的數(shù)據(jù)的位置。在該情況下,根據(jù)地址n和讀出要求的地址,計(jì)算出被進(jìn)行了讀出要求的數(shù)據(jù)相當(dāng)于塊B內(nèi)的哪個(gè)地址即可。
其次,參照圖13和圖14,說明本實(shí)施例的數(shù)據(jù)寫入方法與現(xiàn)有技術(shù)的數(shù)據(jù)寫入方法的差別顯著地呈現(xiàn)的一例。
在此,舉出在NAND型閃存器3上對用已寫入了數(shù)據(jù)的塊C內(nèi)的LBA0表示的開頭區(qū)域發(fā)生了數(shù)據(jù)寫入要求且對塊D內(nèi)的LBA31表示的最終區(qū)域發(fā)生了數(shù)據(jù)寫入要求的情況的對數(shù)據(jù)擦除完畢的塊E和塊F的寫入工作作為例子。
在圖13中示出的現(xiàn)有技術(shù)的數(shù)據(jù)寫入方法中,首先,將對塊C內(nèi)的第1個(gè)區(qū)域(LBA0)要求了寫入的新數(shù)據(jù)寫入到塊E內(nèi)的第1個(gè)區(qū)域中(步驟S31)。
接著,將塊C內(nèi)的第2~16個(gè)區(qū)域(LBA1~LBA15)的數(shù)據(jù)復(fù)制到塊E內(nèi)的第2~16個(gè)區(qū)域中(步驟S32)。
接著,將塊D內(nèi)的第1~15個(gè)區(qū)域(LBA16~LBA30)的數(shù)據(jù)復(fù)制到塊F內(nèi)的第1~15個(gè)區(qū)域中(步驟S33)。
最后,將對塊D內(nèi)的第32個(gè)區(qū)域(LBA31)要求了寫入的新數(shù)據(jù)寫入到塊F內(nèi)的第32個(gè)區(qū)域中(步驟S34)。
在該例中,由于從步驟S31的寫入到步驟S34的寫入為止的時(shí)間間隔非常長,故存在不能滿足在現(xiàn)有技術(shù)中已說明的時(shí)間的制約的可能。
另一方面,在圖14中示出的本實(shí)施例的數(shù)據(jù)寫入方法中,首先,將對塊C內(nèi)的第1個(gè)區(qū)域(LBA0)要求了寫入的新數(shù)據(jù)寫入到塊E內(nèi)的第1個(gè)(開頭)區(qū)域中(步驟S41)。此時(shí),與成為寫入要求的對象的區(qū)域的地址的值n無關(guān)地將要求了寫入的新數(shù)據(jù)寫入到塊E的開頭區(qū)域中,同時(shí)在共同的頁上的冗余部中寫入該地址的值(在此省略圖示)。
接著,將塊C內(nèi)的第2~16個(gè)區(qū)域(LBA1~LBA15)的數(shù)據(jù)復(fù)制到塊E內(nèi)的第2~16個(gè)區(qū)域中(步驟S42)。此時(shí),將相當(dāng)?shù)牡刂返闹?在此省略圖示)也分別寫入到共同的頁上的冗余部中。
其次,將對塊D內(nèi)的第16個(gè)區(qū)域(LBA31)要求了寫入的新數(shù)據(jù)寫入到塊F內(nèi)的第1個(gè)(開頭)區(qū)域中(步驟S43)。此時(shí),與成為寫入要求的對象的區(qū)域的地址的值n無關(guān)地將要求了寫入的新數(shù)據(jù)寫入到塊F的開頭區(qū)域中,同時(shí)在共同的頁上的冗余部中寫入該地址的值(在此省略圖示)。
最后,將塊D內(nèi)的第1~15個(gè)區(qū)域(LBA16~LBA30)的數(shù)據(jù)復(fù)制到塊F內(nèi)的第2~16個(gè)區(qū)域中(步驟S44)。此時(shí),將相應(yīng)的地址的值(在此省略圖示)也分別寫入到共同的頁上的冗余部中。
再有,在對塊E的數(shù)據(jù)寫入結(jié)束了后,擦除塊C上的數(shù)據(jù)。同樣,在對塊F的數(shù)據(jù)寫入結(jié)束了后,擦除塊D上的數(shù)據(jù)。也可歸納在一起一次進(jìn)行這些擦除。此外,也可在顯示出存儲(chǔ)卡成為”準(zhǔn)備好”的狀態(tài)后進(jìn)行這些擦除。
如從該圖14的例子可知,與圖13的情況不同,由于可縮短從步驟S41的寫入到步驟S44的寫入為止的時(shí)間間隔,故可滿足關(guān)于寫入的時(shí)間的制約。
再有,在以上的說明中,示出了按步驟S41~步驟S42~步驟S43~步驟S44的順序進(jìn)行處理的例子,但也可代之以按步驟S41~步驟S43~步驟S42~步驟S44的順序進(jìn)行處理。即,也可在進(jìn)行了對塊E的開頭區(qū)域的新數(shù)據(jù)的寫入后,進(jìn)行對塊F的開頭區(qū)域的新數(shù)據(jù)的寫入,其后進(jìn)行對塊E的剩下的區(qū)域的數(shù)據(jù)復(fù)制,最后進(jìn)行對塊F的剩下的區(qū)域的數(shù)據(jù)復(fù)制。在該情況下,也滿足了必須從各物理塊內(nèi)的開頭區(qū)域順序地寫入數(shù)據(jù)這樣的制約。
此外,在上述圖12和圖14的數(shù)據(jù)寫入方法中,示出了以大塊卡為對象的例子,但也可以小塊卡為對象來實(shí)施。在該情況下,將圖中的各LBA看作1個(gè)頁來處理即可。
這樣,按照本實(shí)施例,可縮短從某個(gè)寫入到其次的寫入為止的時(shí)間間隔,可實(shí)現(xiàn)滿足由存儲(chǔ)卡的規(guī)格等確定了的時(shí)間的制約等的寫入工作。
在上述實(shí)施例的說明中,舉出控制器4進(jìn)行對實(shí)際上使用的半導(dǎo)體存儲(chǔ)器的數(shù)據(jù)讀出、寫入的控制(包含圖12和圖14中示出的處理的控制)的情況作為例子,但也可代之以構(gòu)筑為主機(jī)20側(cè)的驅(qū)動(dòng)軟件23等進(jìn)行該控制。在該情況下,關(guān)于主機(jī)20設(shè)想了的半導(dǎo)體存儲(chǔ)器中的地址與在實(shí)施中使用的半導(dǎo)體存儲(chǔ)器的地址的對應(yīng)關(guān)系的管理等,也可構(gòu)筑為在主機(jī)20側(cè)進(jìn)行。
此外,在上述實(shí)施例的說明中,示出了實(shí)際上使用的閃存器3的擦除塊尺寸比主機(jī)20設(shè)想了的閃存器的擦除塊尺寸大的情況,但當(dāng)然實(shí)際上使用的閃存器3的擦除塊尺寸也可以與主機(jī)20設(shè)想了的閃存器的擦除塊尺寸相同。
此外,在上述實(shí)施例的說明中,作為非易失性存儲(chǔ)器,舉出NAND型閃存器為例進(jìn)行了說明,但非易失性存儲(chǔ)器不限于NAND型閃存器,也可應(yīng)用其它的種類的存儲(chǔ)器。
如以上詳細(xì)地說明的那樣,按照本發(fā)明,可實(shí)現(xiàn)滿足關(guān)于寫入的時(shí)間的制約的工作。
權(quán)利要求
1.一種半導(dǎo)體裝置,其特征在于,具備具有規(guī)定的擦除塊尺寸的半導(dǎo)體存儲(chǔ)器;以及控制器,在對上述半導(dǎo)體存儲(chǔ)器中已寫入了數(shù)據(jù)的第1塊內(nèi)的某個(gè)區(qū)域發(fā)生了數(shù)據(jù)寫入要求的情況下,與該區(qū)域的地址的值無關(guān)地在數(shù)據(jù)已擦除完畢的第2塊的開頭區(qū)域中寫入上述寫入要求的數(shù)據(jù)。
2.如權(quán)利要求1中所述的半導(dǎo)體裝置,其特征在于上述控制器在上述第2塊的開頭區(qū)域中與上述寫入要求的數(shù)據(jù)一起寫入上述地址。
3.如權(quán)利要求2中所述的半導(dǎo)體裝置,其特征在于上述控制器在對上述第2塊內(nèi)的某個(gè)區(qū)域發(fā)生了數(shù)據(jù)讀出要求的情況下,根據(jù)在該第2塊內(nèi)的上述開頭區(qū)域中被寫入了的上述地址,求出寫入了數(shù)據(jù)讀出對象的數(shù)據(jù)的位置。
4.如權(quán)利要求1中所述的半導(dǎo)體裝置,其特征在于如果對上述第1塊內(nèi)的其它的區(qū)域沒有數(shù)據(jù)寫入要求,則上述控制器將除了成為上述寫入要求的對象的區(qū)域的數(shù)據(jù)外的上述第1塊內(nèi)的數(shù)據(jù)復(fù)制到上述第2塊內(nèi)的上述開頭區(qū)域以外的區(qū)域中。
5.一種存儲(chǔ)卡,其特征在于,具備具有規(guī)定的擦除塊尺寸的非易失性半導(dǎo)體存儲(chǔ)器;以及控制器,在對上述非易失性半導(dǎo)體存儲(chǔ)器中已寫入了數(shù)據(jù)的第1塊內(nèi)的某個(gè)區(qū)域發(fā)生了數(shù)據(jù)寫入要求的情況下,與該區(qū)域的地址的值無關(guān)地在數(shù)據(jù)已擦除完畢的第2塊的開頭區(qū)域中寫入上述寫入要求的數(shù)據(jù)。
6.如權(quán)利要求5中所述的存儲(chǔ)卡,其特征在于上述控制器包含存儲(chǔ)上述控制器的工作用的程序的ROM;以及執(zhí)行在上述ROM中存儲(chǔ)了的程序的CPU。
7.如權(quán)利要求5中所述的存儲(chǔ)卡,其特征在于上述非易失性半導(dǎo)體存儲(chǔ)器是NAND型閃存器。
8.如權(quán)利要求5中所述的存儲(chǔ)卡,其特征在于上述非易失性半導(dǎo)體存儲(chǔ)器的設(shè)計(jì)規(guī)則為不到0.1μm。
9.如權(quán)利要求5中所述的存儲(chǔ)卡,其特征在于上述非易失性半導(dǎo)體存儲(chǔ)器的存儲(chǔ)容量為大于等于1G比特。
10.一種半導(dǎo)體裝置,其特征在于具備具有第1擦除塊尺寸的半導(dǎo)體存儲(chǔ)器;以及對上述半導(dǎo)體存儲(chǔ)器執(zhí)行存取的控制器,上述控制器管理具有上述第1擦除塊尺寸的半導(dǎo)體存儲(chǔ)器中的第1地址與具有比上述第1擦除塊尺寸小的第2擦除塊尺寸的半導(dǎo)體存儲(chǔ)器中的第2地址的對應(yīng)關(guān)系,在對上述半導(dǎo)體存儲(chǔ)器中已寫入了數(shù)據(jù)的第1塊內(nèi)的與上述第2擦除塊尺寸相當(dāng)?shù)膮^(qū)域發(fā)生了數(shù)據(jù)寫入要求的情況下,與該區(qū)域的地址的值無關(guān)地在數(shù)據(jù)已擦除完畢的第2塊的開頭區(qū)域中寫入上述寫入要求的數(shù)據(jù)。
11.如權(quán)利要求10中所述的半導(dǎo)體裝置,其特征在于上述第2地址包含邏輯塊地址,如果對上述第1塊內(nèi)的其它的區(qū)域沒有數(shù)據(jù)寫入要求,則上述控制器將除了成為上述寫入要求的對象的區(qū)域的數(shù)據(jù)外的上述第1塊內(nèi)的數(shù)據(jù)復(fù)制到上述第2塊中,使得上述邏輯塊地址對于在上述第2塊的開頭區(qū)域中被寫入了的數(shù)據(jù)是連續(xù)的。
12.一種具有規(guī)定的擦除塊尺寸的半導(dǎo)體存儲(chǔ)器的控制方法,其特征在于接受對上述半導(dǎo)體存儲(chǔ)器中已寫入了數(shù)據(jù)的第1塊內(nèi)的某個(gè)區(qū)域的數(shù)據(jù)寫入要求,與上述區(qū)域的地址的值無關(guān)地在數(shù)據(jù)已擦除完畢的第2塊的開頭區(qū)域中寫入上述寫入要求的數(shù)據(jù)。
13.如權(quán)利要求12中所述的半導(dǎo)體存儲(chǔ)器的控制方法,其特征在于在上述第2塊的開頭區(qū)域中與上述寫入要求的數(shù)據(jù)一起寫入上述地址。
14.如權(quán)利要求13中所述的半導(dǎo)體存儲(chǔ)器的控制方法,其特征在于在對上述第2塊內(nèi)的某個(gè)區(qū)域發(fā)生了數(shù)據(jù)讀出要求的情況下,根據(jù)在該第2塊內(nèi)的上述開頭區(qū)域中被寫入了的上述地址,求出寫入了數(shù)據(jù)讀出對象的數(shù)據(jù)的位置。
15.如權(quán)利要求12中所述的半導(dǎo)體存儲(chǔ)器的控制方法,其特征在于如果對上述第1塊內(nèi)的其它的區(qū)域沒有數(shù)據(jù)寫入要求,則將除了成為上述寫入要求的對象的區(qū)域的數(shù)據(jù)外的上述第1塊內(nèi)的數(shù)據(jù)復(fù)制到上述第2塊內(nèi)的開頭區(qū)域以外的區(qū)域中。
16.一種具有第1擦除塊尺寸的半導(dǎo)體存儲(chǔ)器的控制方法,其特征在于管理具有上述第1擦除塊尺寸的半導(dǎo)體存儲(chǔ)器中的第1地址與具有比上述第1擦除塊尺寸小的第2擦除塊尺寸的半導(dǎo)體存儲(chǔ)器中的第2地址的對應(yīng)關(guān)系,在對上述半導(dǎo)體存儲(chǔ)器中已寫入了數(shù)據(jù)的第1塊內(nèi)的與上述第2擦除塊尺寸相當(dāng)?shù)膮^(qū)域發(fā)生了數(shù)據(jù)寫入要求的情況下,進(jìn)行用來與該區(qū)域的地址的值無關(guān)地在數(shù)據(jù)已擦除完畢的第2塊的開頭區(qū)域中寫入上述寫入要求的數(shù)據(jù)的控制。
全文摘要
半導(dǎo)體裝置具備具有規(guī)定的擦除塊尺寸的半導(dǎo)體存儲(chǔ)器;以及控制器,在對上述半導(dǎo)體存儲(chǔ)器中已寫入了數(shù)據(jù)的第1塊內(nèi)的某個(gè)區(qū)域發(fā)生了數(shù)據(jù)寫入要求的情況下,與該區(qū)域的地址的值無關(guān)地在數(shù)據(jù)已擦除完畢的第2塊的開頭區(qū)域中寫入上述寫入要求的數(shù)據(jù)。
文檔編號(hào)G06F12/08GK1702776SQ20051007384
公開日2005年11月30日 申請日期2005年5月24日 優(yōu)先權(quán)日2004年5月27日
發(fā)明者大島貴志 申請人:株式會(huì)社東芝