專利名稱::存儲卡以及在存儲卡上存儲數據的方法
技術領域:
:本發明涉及存儲卡,并且更特別地,涉及具有閃存的存儲卡和在存儲卡上存儲數據的方法。
背景技術:
:存儲卡可以用作數字設備的附加存儲器,例如數字攝像機或移動電話。存儲卡的實例包括緊湊型閃存(CF)卡,智能存儲(SM)卡,記憶棒,多媒體卡(MMC),微型驅動器,極限數字(xD)圖片卡以及安全數字(SD)卡。存儲卡尺寸小,便于使用并且具有高數據傳送速率。例如,xD圖片卡是下一代閃存卡,其已經發展到尋址各種尺寸和容量極限的SM卡。xD圖片卡具有20x25xl.7毫米的尺寸,使它成為最小的存儲卡。xD圖片卡被稱作"極限數字"存儲卡,原因是它的存儲容量可以達到8GB(千兆字節)。xD圖片卡通過用于NAND閃存的接口方案與主機(例如,數字攝像機)連接。與其它諸如CF卡、SD卡、記憶棒和醒C之類的使用NAND閃存的存儲卡相比,xD圖片卡可以尺寸更小而數據存儲容量增加。通常,存儲卡可以包括NAND閃存和存儲控制器。該NAND閃存存儲由主機提供的數據。例如,當主機是數字攝像機時,將靜止圖像保存在NAND閃存中。當主機是錄像機時,將影片保存在NAND閃存中。存儲控制器控制存儲卡的全部操作。在存儲控制器的控制下,將從主機提供的數據傳送到NAND閃存,并且將存儲在NAND閃存中的數據輸出到主機。將存儲卡的數據存儲時間分成從主機到NAND閃存的數據傳送時間和NAND閃存的程序時間。將數據傳送時間定義為存儲控制器響應主機寫請求從主機到NAND閃存傳送數據所使用的時間。將NAND閃存的程序時間定義為已經傳送到NAND閃存的程序數據進入NAND閃存的存儲單元陣列所使用的時間。限的。然而,為了減少存儲卡整體的數據存儲時間,可以減少從主機到NAND閃存的數據傳送時間。
發明內容本發明的一個方面提供被配置為與主機連接的存儲卡。存儲卡包括NAND閃存和存儲控制器。NAND閃存包括多頁,每頁包括多扇區。存儲控制器從主機以扇區為單位接收扇區數據和對應的扇區地址,并根據扇區地址,直接或經由緩存向NAND閃存傳送扇區數據。存儲控制器可以包括用于經由緩存傳送扇區數據的第一數據總線,和用于直接向NAND閃存傳送扇區數據的第二數據總線。當扇區地址是用于存取所選頁中的第一扇區之外的扇區的地址時,存儲控制器可以啟動第一數據總線,而當扇區地址是用于存取所選頁中除了第一扇區之外的扇區地址時,存儲控制器可以啟動第二數據總線。存儲控制器可以進一步包括用于響應扇區地址啟動第一數據總線或第二數據總線的控制單元。控制單元可以包括地址寄存器,用于存儲所定義的扇區地址;選擇器,用于比較扇區地址和所定義的扇區地址并根據比較結果選擇第一數據總線和第二數據總線之一;和存儲器直接訪問(DMA)控制器,用于中斷中央處理器(CPU)并控制第一數據總線和第二數據總線。每一頁可以具有2KB容量而且每一扇區可以具有512B容量。緩存可以是雙端口存儲器,例如靜態隨機存取存儲器(SRAM)或動態隨機存取存儲器(DR細)。本發明的另一個方面是提供在存儲卡中存儲數據的方法,存儲卡包括NAND閃存和存儲控制器,其中NAND閃存包括多頁且每頁包括多扇區,而且其中方法包括從主機接收寫指令和扇區地址,并根據寫指令和扇區地址,直接或經由緩存向NAND閃存傳送對應于所述扇區地址的扇區數據。在NAND閃存的所選頁中,將所傳送的扇區數據保存為頁面數據。存儲控制器可以包括用于經由緩存傳送數據的第一數據總線,和用于直接傳送數據到NAND閃存的第二數據總線。所述方法因此可以進一步包括當扇區地址包括用于存取所選頁中的第一扇區地址時,啟動用于向NAND閃存傳送扇區數據的第一數據總線。此外,當扇區地址包括除了第一扇區地址之外的扇區地址,用于存取所選頁中除了第一扇區的扇區時,可以啟動用于向NAND閃存傳送扇區數據第二數據總線。當扇區地址包括第一扇區地址且在另一個頁上的寫入操作正在進行時,可以完成在另一頁上的寫入操作。本發明的另一方面提供存儲卡,其包括具有每頁包括多扇區的多頁的NAND閃存,和用于從主機接收扇區數據和對應的扇區地址的存儲控制器。當扇區地址是用于存取所選頁中的第一扇區的地址時,存儲控制器能夠使扇區數據通過第一數據總線經由緩存傳送到NAND閃存。當扇區地址是用于存取所選頁中除了第一扇區之外的扇區的地址時,存儲控制器能夠使扇區數據通過第二數據總線繞過緩存傳送到NAND閃存。附圖描述將要參照附圖來描述本發明的實施例,其中圖l是圖解根據本發明的示例性實施例的存儲卡的方框圖;圖2是圖解根據本發明的示例性實施例的圖l所示的存儲卡的程序操作的流程圖;以及圖3是圖解根據本發明的示例性實施例的圖2所示的程序操作的另外方面的流程圖。具體實施方式參照附圖,現在將更充分地描述本發明,其中展示了本發明的示例性實施例。然而,本發明可以以各種不同的形式實施,而不應解釋為僅限于所示實施例。相反地,提供這些實施例作為實例,來向本領域技術人員傳達本發明的構思。因此,關于本發明的一些實施例沒有描述公知的處理、元件、以及方法。在整個附圖和文字的描述中,相同的附圖標記將用于表示相同樣或類似的元件。此外,在整個附圖和文字的描述中,術語"寫"和"編程"具有同樣的含義。圖l是根據本發明示例性實施例的存儲卡的方框圖。參照圖l,存儲卡200與主機100連接。主機100可以是能夠用于與存儲卡200連接的任意電子設備。主機100的實例包括數字攝像機、MP3播放器、PDA個人數字助理、移動電話和計算機。存儲卡200包括NAND閃存210和存儲控制器220。NAND閃存210包括存儲單元陣列(未畫出)和頁緩沖器215。頁緩沖器215臨時存儲要被編程或從一頁讀出的數據(例如,頁211)。存儲單元陣列包括多個存儲塊,每個存儲塊包括多個頁(例如,頁211和212)。每一頁包括多個扇區(例如,扇區S1-S4和S5-S8),每個扇區包括多個存儲單元(未畫出)。在存儲模塊單元中執行擦除操作,而在頁單元中執行讀寫操作。換句話說,同時擦除一個存儲塊的數據,且同時讀出或編程一個頁的數據。通常,依賴于存儲塊的大小,在一個存儲塊中存儲16KB(千字節)或128KB的數據,而且在一個頁面中存儲512B(字節)或2KB的數據。可以將NAND閃存分為小塊存儲器和大塊存儲器。表l圖解小塊存儲器和大塊存儲器之間的主要區別。表l<table>tableseeoriginaldocumentpage7</column></row><table>參照表l,小塊存儲器具有16KB塊大小而大塊存儲器具有128KB塊大小。小塊存儲器以512B頁為單位執行讀/寫操作(除備用區之外),而以16KB塊為單位(除備用區之外)執行擦除操作。大塊存儲器以^B頁為單位執行讀/寫操作(除備用區之外),而以128KB塊為單位(除備用區之外)執行擦除操作。在圖1中所示的NAND閃存21Q是大塊存儲器。舉例來說,在圖1的NAND閃存210中圖解了兩頁211和212。每一頁存儲2KB數據。第一頁211包括第一到第四扇區S1到S4,而第二頁212包括第五到第八扇區SS到S8。這些扇區中的每一個存儲512B數據。存儲控制器220包括主機接口310、閃存接口320、緩存33f)、控制單元360、中央處理器(CPU)370、第一數據總線341和第二數據總線342。數據總線341和342可以是雙或單數據總線,但是為了解釋所述實施例,假定數據總線341和342是雙數據總線。第一數據總線341經由緩存330傳輸數據。另一方面,第二數據總線342不經過緩存330直接向NAND閃存210傳送來自主機10Q的數據。根據本實施例,使用雙數據總線341和342存儲卡200可以提高程序速度。主機接口310包括指令轉換電路(未畫出)和地址轉換電路(未畫出)。指令轉換電路接收外部指令并產生對應的內部指令來提供給NAND閃存210。同樣地,地址轉換電贈4妾收外部地址并產生對應的內部地址。將內部指令和內部地址經由總線(未畫出)傳送到閃存接口320。另夕卜,主機接口310從主機100接收數據。將所接收的數據傳送到緩存330和/或直接傳送到閃存接口320,即不經由緩存330。主機接口310接收以扇區為單位的數據(例如,512B)。當從主機100以扇區為單位(例如512B)接收數據且以頁為單位(例如,2KB)編程數據時,根據本實施例的存儲卡200可以高效地使用。閃存接口320向NAND閃存210提供內部指令、內部地址、內部控制信號和數據。提供到NAND閃存210的數據是分別經由第一和第二數據總線341和342,通過緩存330或直接從主機接口310傳送的數據。緩存330臨時存儲從主機接口310接收的數據。可以將存儲在緩存330中的數據經由第一數據總線341傳送到閃存接口320。緩存330可以執行緩存操作。例如,當從主機接口310以扇區為單位接收數據時,緩存330可以以扇區為單位或以頁為單位向閃存接口320輸出數據。緩存330可以使用雙端口、諸如靜態隨機存取存儲器(SRAM)和動態隨機存儲器(DRAM)之類的隨機存取存儲器(RAM)來實現。如上所述,存儲控制器220除第一數據總線341之外還包括第二數據總線342。通過第一和第二復用器傳送351和352選4奪第一和第二數據總線341和342。第一復用器351向第二數據總線342傳送數據來響應來自控制單元360的第一選4奪信號SS1。例如,當第一選"t奪信號SSl是邏輯'T,時,將數據傳送到第二數據總線342。另一方面,當第一選擇信號SS1是邏輯"0"時,中斷向第二數據總線342傳送數據。第二復用器352向閃存接口320傳送第二數據總線342的數據來響應來自控制單元360的第二選擇信號SS2。例如,當第二選擇信號SS2是'T,時,將數據從緩存330經由第一數據總線341傳送到閃存接口320。另一方面,當第二選擇信號SS2是邏輯"0"時,經由第二數據總線342傳送數據。控制單元360進行操作來響應從主機接口310接收的外部指令、外部地址和控制信號。參照圖l,控制單元360包括選擇器361、地址寄存器362和畫A控制器363。選^f奪器361將在地址寄存器362中定義的扇區地址和已經重新輸入的當前的扇區地址進行比較,來選擇第一數據總線341或第二數據總線342之一。例如,當定義的扇區地址與當前扇區地址不同時,選擇器361選擇第一數據總線341。在這種情況下,數據經由緩存330傳送到閃存接口320。另一方面,當定義的扇區地址與當前扇區地址相同時,選擇器361選擇第二數據總線342。在這種情況下,數據繞過緩存330直接從主機接口310傳送到閃存接口320。地址寄存器362接收當前扇區地址,并存儲將要在接下來輸入的所定義扇區地址。例如,假設,最初,當前扇區地址是指明NAND閃存210中頁221的第一扇區S1的地址。在這種情況下,地址寄存器362接收第一扇區地址,并存儲被稱為第二扇區地址的地址(例如,指明頁211的第二扇區S2),作為所定義的扇區地址。當地址寄存器362然后接收輸入第二扇區地址作為當前扇區地址時,選#^器361將當前扇區地址與以前保存在地址寄存器362中的所定義的扇區地址進行比較,并根據當前扇區地址與定義的扇區地址是否匹配,產生第一選擇信號SS1或第二選擇信號SS2。畫A控制器363使用存儲器直接存取(匿A)方案控制數據總線。在DMA傳送模式期間,CPU370不能控制數據總線并變成空閑。響應來自主機接口310的DMA請求,畫A控制器363觸發總線請求(BR)信號來防止CPU370控制數據總線。也就是說,在DMA傳送模式期間,經由數據總線341或第二數據總線342傳送數據,而無須CPU370的介入。圖1所示的存儲卡200,可以高效地用于以扇區為單位接收數據并以頁為單位儲存數據的系統。存儲卡200包括以扇區為單位執行數據的輸入/輸出操作的緩存330。存儲卡200包括用于經由緩存330從主機100向NAND閃存210傳送數據的間接數據傳送路徑,和用于從主機100直接向NAND閃存210傳送數據的直接數據傳送路徑。在存儲卡200中,經由緩存330傳送要保存在頁的第一扇區中的扇區數據,但是繞過緩存330直接傳送要保存在所述頁的任意其余扇區中的扇區數據。因此,與普通存儲卡相比,存儲卡200提供更高的數據存儲速度。圖2是圖解圖1所示的示例性存儲卡200的操作的流程圖。參照圖l和圖2,外部指令CMD和外部地址ADDR從主機1OO傳送到存儲卡200。當存儲卡200與主機100連接時,在步驟S100主機接口310從主機100接收外部指令CMD和外部地址ADDR。外部地址ADDR是用于存取NAND閃存21O的一個扇區(例如,頁211的S1)的扇區地址。在步驟SllO,主機接口310確定外部指令CMD是否是寫指令。當外部指令CMD不是寫指令時,按照步驟S120執行另一個例程(例如,讀出指令或擦除指令)。例如,當外部指令CMD是讀指令時,與寫指令相反,在步驟S120執行讀操作。當外部指令CMD是寫指令時,存儲卡200的操作進行到步驟S200。在步驟S200,控制單元360確定所接收外部地址ADDR,也稱為當前扇區地址(當前ADDR),與在地址寄存器362中定義的扇區地址(定義的ADDR)是否相同。通常,當當前ADDR不等于所定義ADDR時,數據通過第一數據總線341傳送,而當當前ADDR與所定義ADDR相同時,數據通過第二數據總線342傳送,在以下更詳細地討論。參照圖2,當當前ADDR與所定義的ADDR相同時,處理進行至步驟S220。在步驟S220,選擇器361產生邏輯'T'的第一選擇信號SS1和邏輯"0"的第二選擇信號SS2來選擇第二數據總線342。在步驟S230,畫A控制器363中斷CPU370來控制第二數據總線342。在步驟S240,從主機100接收的扇區數據通過第二數據總線342繞過緩存330直接傳送到NAND閃存210。另一方面,當在步驟S200確定當前ADDR(即,輸入外部地址ADDR)不同于所定義ADDR時,處理進行至步驟S210。在步驟210,選擇器361產生邏輯"0"的第一選^t奪信號SSl和邏輯'T,的第二選4奪信號SS2來選擇第一數據總線341。此外,畫A控制器363可以中斷CPU370來控制第一數據總線341。在步驟S300,CPU370確定當前ADDR是否是第一扇區地址ADDR1,對應于NAND閃存210的頁211中的第一扇區S1。通常,一^:首先訪問頁211中的第一扇區S1。然而,例如當主機100支持隨機扇區寫入方案時,可以首先存取頁211中的另一個扇區(例如S3)。雖然可以理解在不脫離本發明精神和范圍的情況下頁與/或扇區存取的順序可以產生變化,但是為了討論,假設首先存取第一扇區S1。當確定當前ADDR是第一扇區地址ADDR1(在步驟S300)時,在步驟S310通過閃存接口32向NAND閃存210提供內部指令CMD,和內部地址ADDR,。在內部由外部指令CMD和外部地址ADDR分別轉換為內部指令CMD,和內部地址ADDR,,來適合NAND閃存210。在步驟320,存儲在緩存330中的扇區數據通過第一數據總線341傳送到NAND閃存210。扇區數據是從主機100接收的數據。當當前ADDR是第一扇區地址ADDR1時,經由頁緩沖器將215扇區數據保存在第一扇區S1中。另一方面,當當前ADDR不是第一扇區地址ADDR1(如在步驟S300確定的)時,在步驟S320通過第一數據總線341將扇區數據從緩存330傳送到NAND閃存210,而不必執行步驟S310。在這種情況下,已經將內部指令CMD,和內部地址ADDR,預先傳送到NAND閃存210。在步驟S330,CPU370確定當前ADDR是否要存取頁211中最后的扇區,例如第四扇區S4。如上所述,最后所存取的扇區可以不必是第四扇區S4扇區,例如,當使用隨機扇區寫入方案時,在這種情況下,可以最后訪問頁211中的另一個扇區(例如,S2)。雖然可以理解在不脫離本發明精神和范圍的情況下存取頁與/和扇區的順序可以改變,但是為了討論,假設最后存取第四扇區S4。當當前ADDR不是用于存取第四扇區S4的第四扇區地址ADDR4(例如,最后扇區地址)時,在CPU370的控制下,在步驟S340,在地址寄存器362中存儲下一個扇區地址作為所定義的扇區地址(例如所定義的ADDR)。例如,當當前ADDR是第一扇區地址ADDR1時,在地址寄存器362中存儲用于存取第二扇區S2的第二扇區地址ADDR2作為所定義的扇區地址。同樣地,當當前ADDR是第二扇區地址ADDR2時,在地址寄存器362中存儲用于存取第三扇區S3的第三扇區地址ADDR3作為所定義的扇區地址。在步驟S350,存儲卡200等待來自主機100的下一個外部指令和地址。當/人主機1QG接收下一個外部指令和地址時,例如,在步驟S10Q,處理再次4丸行至少步驟S110到S330。當在步驟S330中確定當前ADDR是第四扇區地址ADDR4(例如最后扇區地址)時,在步驟S360,CPU370通過閃存接口320向NAND閃存210發布確認指令。通常,當將一頁的最后扇區數據存儲在頁緩沖器215中時,執行NAND閃存210的編程操作。在步驟S400,例如,一旦接收第四扇區S4數據,則NAND閃存210同時編程存儲在頁緩沖器215中的數據到所選頁211中。但是,可以理解,在不脫離本發明精神和范圍的情況下關于頁緩沖器215的操作NAND閃存210的編程操作可以改變。圖3是圖解圖2中步驟S300和步驟S31O之間可以進一步執行的編程操作的流程圖。當主機100支持選擇性的寫入方案,如隨機扇區寫入方案時,可以高效地使用圖3中的編程操作。參照圖3,在步驟S301,CPU370確定是否在除了所選頁之外的一頁上正在執行寫操作。當在另一頁上沒有執行寫操作時,關于圖2如上所述操作繼續到步驟S310。當在另一頁上正在執行寫操作時,在步驟S303向NAND閃存210發布確認指令。這個情況的實例是當在其中在第二頁212中輸入用于存取第五扇區S5的第五扇區地址ADDR5的狀態中在第一頁211上正在執行寫操作時。當在步驟S301在第一頁211上執行寫操作時,例如,在步驟S303向NAND閃存210發布確認指令。在步驟S305,NAND閃存210同時在另一頁(例如,頁211)中編程存儲在頁緩沖器215中的數據。其后,執行步驟S310,如上所述根據圖2繼續處理。根據本實施例的存儲卡從主機以扇區為單位接收數據并且以頁為單位存儲數據。經由緩存傳送閃存的頁的第一扇區數據,并直接傳送剩余扇區的數據。因此,所述存儲卡能夠提供比傳統存儲卡更高的數據存儲速度。如上所述,存儲卡不但具有用于從主機經由緩存向NAND閃存傳送數據的傳送路徑。附加的直接數據傳送通路能夠達到比傳統存儲卡更高的存儲數據速度。雖然已經參照示例性實施例描述了本發明,但是對于本領域技術人員,很明顯,在不脫離本發明精神和范圍的情況下可以做出各種的變化和修改。所以,應該清楚上述實施例并不是限制性的,而是說明性的。權利要求1.一種被配置為與主機連接的存儲卡,所述存儲卡包括NAND閃存,包括多頁,每頁包括多扇區;以及存儲控制器,用于從主機以扇區為單位接收扇區數據和對應扇區地址,并根據扇區地址,直接或經由緩存向NAND閃存傳送扇區數據。2.權利要求l的所述存儲卡,其中存儲控制器包括第一數據總線,用于經由緩存傳送扇區數據;以及第二數據總線,用于直接向NAND閃存傳送扇區數據。3.權利要求2的所述存儲卡,其中當扇區地址是用于存取所選頁中的第一扇區的地址時,存儲控制器啟動第一數據總線。4.權利要求2的所述存儲卡,其中當扇區地址是用于存取所選頁中除了第一扇區之外的扇區的地址時,存儲控制器啟動第二數據總線。5.權利要求2的所述存儲卡,其中存儲控制器進一步包括控制單元,用于響應扇區地址啟動第一數據總線和第二數據總線之一。6.權利要求5的所述存儲卡,其中控制單元包括地址寄存器,用于存儲所定義的扇區地址;選擇器,用于比較扇區地址和所定義的扇區地址,并根據比較結果選擇第一數據總線和第二數據總線之一;以及存儲器直接訪問(DMA)控制器,用于中斷中央處理器(CPU)并控制第一數據總線和第二數據總線。7.權利要求l的所述存儲卡,其中每一頁具有2KB大小且每一扇區具有512B大小。8.權利要求l的所述存儲卡,其中緩存包括雙端口存儲器。9.權利要求8的所述存儲卡,其中緩存包括靜態隨機存取存儲器(SRAM)。10.權利要求8的所述存儲卡,其中緩存包括動態隨機存取存儲器(DRAM)。11.一種在存儲卡中存儲數據的方法,所述存儲卡包括NAND閃存和存儲控制器,NAND存儲器包括多頁且所述多頁中的每一頁包括多個扇區,而且存儲包括乂人主枳4妄收寫指令和扇區地址;根據寫指令和扇區地址直接或經由緩存向NAND閃存傳送對應于扇區地址的扇區數據;以及■212.權利要求l1的所述方法,其中存儲控制器包括用于經由緩存傳送數據的第一數據總線和用于直接向NAND閃存傳送數據的第二數據總線,所述方法進一步地包括當扇區地址包括用于存取所選頁中的第一扇區的第一扇區地址時,啟動用于向NAND閃存傳送扇區數據的第一數據總線。13.權利要求12的所述方法,進一步包括當扇區地址包括除了第一扇區地址之外的扇區地址,用于在所選頁中存取除了第一扇區之外的扇區時,啟動用于向NAND閃存傳送扇區數據的第二數據總線。14.權利要求12的所述方法,進一步包括當扇區地址包括第一扇區地址而且在另一個頁上的寫入操作正在進行時,完成在另一頁上的寫入操作。15.權利要求11的所述方法,其中每一扇區具有512B大小且每一頁具有2KB大小。16.—種存儲卡,包括NAND閃存,包括多個頁,每一頁包括多個扇區;以及存儲控制器,用于從主機接收扇區數據和對應扇區地址,當扇區地址是用于存取所選頁中的第一扇區的地址時,存儲控制器能夠經由緩存通過第一數據總線向NAND閃存傳送扇區數據,而且當扇區地址是用于在所選頁中存取除了第一扇區之外的扇區的地址時,存儲控制器能夠繞過緩存通過第二數據總線向NAND閃存傳送扇區數據。全文摘要一種與主機連接的存儲卡,包括NAND閃存和存儲控制器。NAND閃存包括多頁,而且每一頁包括多個扇區。存儲控制器從主機接收扇區數據和對應扇區地址。當扇區地址是用于存取所選頁中第一扇區的地址時,存儲控制器能夠經由緩存通過第一數據總線向NAND閃存傳送扇區數據。當扇區地址是用于存取所選頁中除了第一扇區之外的扇區的地址時,存儲控制器能夠繞過緩存通過第二數據總線向NAND閃存傳送扇區數據。文檔編號G11C7/10GK101145385SQ20071018215公開日2008年3月19日申請日期2007年8月6日優先權日2006年8月4日發明者金敬愛申請人:三星電子株式會社