TW201303605A - 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 - Google Patents
資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TW201303605A TW201303605A TW100123508A TW100123508A TW201303605A TW 201303605 A TW201303605 A TW 201303605A TW 100123508 A TW100123508 A TW 100123508A TW 100123508 A TW100123508 A TW 100123508A TW 201303605 A TW201303605 A TW 201303605A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- read
- host system
- response data
- data unit
- Prior art date
Links
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/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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種資料串分派與傳送方法,用於具有非揮發性記憶體模組與智慧卡晶片的記憶體儲存裝置。本方法包括為非揮發性記體模組配置多個邏輯區塊位址,其中多個特定邏輯區塊位址被用以儲存特定檔案。本方法也包括從智慧卡晶片中接收回應資料單元,並且在緩衝記憶體中儲存此回應資料單元。本方法亦包括當對應來自於主機系統之讀取指令的邏輯區塊位址屬於此些特定邏輯區塊位址的其中之一且緩衝記憶體中存有回應資料單元時,將回應資料單元透過對齊存取單位傳送給主機系統。基此,本方法能夠使主機系統無誤地接收到智慧卡晶片的回應資料單元。
Description
本發明是有關於一種資料串分派與傳送方法,且特別是有關於一種適用於在主機系統和具有非揮發性記憶體與智慧卡晶片的記憶體儲存裝置之間分派與傳送資料串的方法及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於非揮發性記憶體(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
另一方面,隨著使用者逐漸接受使用電子錢包及預付儲值,使得智慧卡的使用日益普及。智慧卡(Smart Card)是具有例如微處理器、卡操作系統、安全模組及記憶體之組件的積體電路晶片(IC晶片),以允許持有者執行預定操作。智慧卡提供計算、加密、雙向通信及安全功能,使得這張卡片除了儲存資料的功能外還能達到對其所儲存的資料加以保護的功能。使用全球行動通信系統(GSM)機制之蜂巢式電話中所使用的用戶識別模組(Subscriber Identification Module,SIM)卡為智慧卡的其中一個應用範例。然而,智慧卡本身受限於儲存容量,因此近年來開始與大量儲存裝置的記憶卡作結合,以擴增智慧卡的儲存容量。
然而,在同時配置可複寫式非揮發性記憶體模組與智慧卡晶片的記憶卡中,如何區分來自於主機系統的資料串是屬於智慧卡晶片的指令資料單元以及將來自於智慧卡晶片的回應資料單元傳遞給主機系統成為此領域技術人員所欲解決的課題。
本發明提出一種資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置,其能夠正確地且有效地傳遞屬於智慧卡晶片的資料單元。
本發明範例實施例提出一種資料串分派與傳送方法,用於具有可複寫式非揮發性記憶體模組與智慧卡晶片的記憶體儲存裝置。本資料串分派與傳送方法包括:為可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中此些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案。此外,本資料串分派與傳送方法也包括,當從智慧卡晶片中接收一回應資料單元時,將此回應資料單元儲存在緩衝記憶體中。本資料串分派與傳送方法還包括:從主機系統中接收一讀取指令並且判斷對應此讀取指令的起始讀取位址是否屬於此些特定邏輯區塊位址的其中之一。本資料串分派與傳送方法也包括,當對應此讀取指令的起始讀取位址屬於此些特定邏輯區塊位址的其中之一時,判斷緩衝記憶體中是否儲存有該回應資料單元。本資料串分派與傳送方法更包括,當緩衝記憶體中存有回應資料單元時,將儲存於緩衝記憶體中的回應資料單元透過對齊一存取單位傳送給主機系統。
在本發明之一實施例中,上述之將儲存於緩衝記憶體中的回應資料單元透過對齊存取單位傳送給主機系統的步驟包括:判斷對應讀取指令的起始讀取位址是否為存取單位的倍數;當對應讀取指令的該起始讀取位址不為存取單位的倍數時,先傳送第一資料串給主機系統並且之後再傳送回應資料單元給主機系統,以及當對應讀取指令的該起始讀取位址為該存取單位的倍數時,先傳送回應資料單元給主機系統。在此,第一資料串的大小是根據公式(1)來設定:
S(D)=AAU-MOD(AAU,SRA) (1)
其中S(D)為第一資料串的大小,AAU為存取單位,SRA為讀取指令的起始讀取位址,MOD(AAU,SRA)為讀取指令的起始讀取位址除以存取單位所獲得的餘數。
在本發明之一實施例中,上述之第一資料串為回應資料單元之中最後一部分的資料。
在本發明之一實施例中,上述之將儲存於緩衝記憶體中的回應資料單元透過對齊存取單位傳送給主機系統的步驟更包括:在傳送回應資料單元給主機系統之後,重複地傳送回應資料單元或部分的回應資料單元給主機系統直到從主機系統接收到停止讀取指令為止。
在本發明之一實施例中,上述之資料串分派與傳送方法更包括:當緩衝記憶體中未存有回應資料單元時,傳送第二資料串給主機系統,其中第二資料串的每個位元皆為零。
在本發明之一實施例中,上述之資料串分派與傳送方法更包括:當對應此讀取指令的邏輯區塊位址不屬於此些特定邏輯區塊位址的其中之一時,根據對應讀取指令的起始讀取位址從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的第三資料串並且將對應此讀取指令的第三資料串傳送給主機系統。
在本發明之一實施例中,上述之資料串分派與傳送方法更包括:當該緩衝記憶體中未存有回應資料單元時,從主機系統判斷對應來自於主機系統的輪詢指令的讀取位址是否為存取單位的倍數,其中當對應此輪詢指令的讀取位址非為存取單位的倍數時執行步驟(a),並且當對應此輪詢指令的讀取位址為存取單位的倍數時執行步驟(b);(a)傳送第二資料串給主機系統以回應該輪詢指令,其中第二資料串的每個位元皆為零;(b)判斷緩衝記憶體中是否儲存有回應資料單元,其中當緩衝記憶體中儲存有回應資料單元時執行步驟(c)並且當緩衝記憶體中未儲存有回應資料單元時執行步驟(d);(c)將儲存於緩衝記憶體中的回應資料單元傳送給主機系統;以及(d)傳送第二資料串給主機系統以回應輪詢指令。
本發明範例實施例提出一種資料串分派與傳送方法,用於具有可複寫式非揮發性記憶體模組與智慧卡晶片的記憶體儲存裝置。本資料串分派與傳送方法包括:為可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中此些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案。本資料串分派與傳送方法也包括,當從智慧卡晶片中接收到回應資料單元時,將此回應資料單元儲存在緩衝記憶體中。本資料串分派與傳送方法還包括從主機系統中接收讀取指令並且判斷對應此讀取指令的起始讀取位址是否屬於此些特定邏輯區塊位址的其中之一。本資料串分派與傳送方法也包括,當對應讀取指令的起始讀取位址屬於此些特定邏輯區塊位址的其中之一時,則判斷緩衝記憶體中是否儲存有回應資料單元。本資料串分派與傳送方法更包括,當緩衝記憶體中未存有回應資料單元時,判斷對應來自於主機系統的輪詢指令的讀取位址是否為存取單位的倍數,其中當對應此輪詢指令的讀取位址非為存取單位的倍數時執行步驟(a),並且當對應此輪詢指令的讀取位址為存取單位的倍數時執行步驟(b);(a)傳送第二資料串給主機系統以回應該輪詢指令,其中第二資料串的每個位元皆為零;(b)判斷緩衝記憶體中是否儲存有回應資料單元,其中當緩衝記憶體中儲存有回應資料單元時執行步驟(c)並且當緩衝記憶體中未儲存有回應資料單元時執行步驟(d);(c)將儲存於緩衝記憶體中的回應資料單元傳送給主機系統;以及(d)傳送第二資料串給主機系統以回應此輪詢指令。
在本發明之一實施例中,上述之資料串分派與傳送方法更包括,當對應讀取指令的邏輯區塊位址不屬於此些特定邏輯區塊位址的其中之一時,根據對應讀取指令的起始讀取位址從該可複寫式非揮發性記憶體模組中讀取對應此讀取指令的第三資料串並且將對應此讀取指令的第三資料串傳送給主機系統。
本發明範例實施例提出一種記憶體控制器,用於配置在具有可複寫式非揮發性記憶體模組與智慧卡晶片的記憶體儲存裝置中。本記憶體控制器包括主機介面、記憶體介面、緩衝記憶體與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接緩衝記憶體、主機介面與記憶體介面。在此,記憶體管理電路會為可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中此些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案。此外,當從智慧卡晶片中接收回應資料單元時,記憶體管理電路將該回應資料單元儲存在一緩衝記憶體中。再者,記憶體管理電路從主機系統中接收一讀取指令,並且判斷對應此讀取指令的起始讀取位址是否屬於此些特定邏輯區塊位址的其中之一。當對應此讀取指令的起始讀取位址屬於此些特定邏輯區塊位址的其中之一時,記憶體管理電路會判斷緩衝記憶體中是否儲存有回應資料單元。當緩衝記憶體中存有回應資料單元時,記憶體管理電路將儲存於緩衝記憶體中的回應資料單元透過對齊一存取單位傳送給主機系統。
在本發明之一實施例中,上述之記憶體管理電路會判斷對應此讀取指令的該起始讀取位址是否為存取單位的倍數。當對應此讀取指令的起始讀取位址不為存取單位的倍數時,記憶體管理電路先傳送第一資料串給主機系統並且之後再傳送回應資料單元給主機系統。此外,當對應此讀取指令的起始讀取位址為存取單位的倍數時,記憶體管理電路先傳送回應資料單元給主機系統。
在本發明之一實施例中,在傳送該回應資料單元給該主機系統之後,記憶體管理電路會重複地傳送回應資料單元或部分的回應資料單元給主機系統直到從主機系統接收到停止讀取指令為止。
在本發明之一實施例中,當緩衝記憶體中未存有回應資料單元時,記憶體管理電路會傳送第二資料串給主機系統,其中此第二資料串的每個位元皆為零。
在本發明之一實施例中,當對應此讀取指令的邏輯區塊位址不屬於此些特定邏輯區塊位址的其中之一時,記憶體管理電路根據對應此讀取指令的起始讀取位址從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的第三資料串並且將對應此讀取指令的第三資料串傳送給主機系統。
在本發明之一實施例中,當緩衝記憶體中未存有回應資料單元時,記憶體管理電路會判斷對應來自於主機系統的輪詢指令的讀取位址是否為存取單位的倍數。當對應此輪詢指令的讀取位址非為存取單位的倍數時,記憶體管理電路會傳送第二資料串給主機系統以回應此輪詢指令,其中此第二資料串的每個位元皆為零。此外,當對應輪詢指令的讀取位址為存取單位的倍數時,記憶體管理電路判斷此緩衝記憶體中是否儲存有回應資料單元,其中當緩衝記憶體中儲存有回應資料單元時,記憶體管理電路會將儲存於該緩衝記憶體中的該回應資料單元傳送給主機系統,並且,當緩衝記憶體中未儲存有回應資料單元時,記憶體管理電路會傳送第二資料串給主機系統以回應此輪詢指令。
本發明範例實施例提出一種記憶體控制器,用於配置在具有可複寫式非揮發性記憶體模組與智慧卡晶片的記憶體儲存裝置中。本記憶體控制器包括主機介面、記憶體介面、緩衝記憶體與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接緩衝記憶體、主機介面與記憶體介面。在此,記憶體管理電路會為可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中此些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存特定檔案。此外,當從智慧卡晶片中接收到回應資料單元時,記憶體管理電路會將此回應資料單元儲存在緩衝記憶體中。另外,記憶體管理電路會從主機系統中接收讀取指令並且判斷對應此讀取指令的起始讀取位址是否屬於此些特定邏輯區塊位址的其中之一。當對應此讀取指令的起始讀取位址屬於此些特定邏輯區塊位址的其中之一時,記憶體管理電路會判斷緩衝記憶體中是否儲存有回應資料單元。當緩衝記憶體中未存有回應資料單元時,記憶體管理電路會判斷對應來自於主機系統的輪詢指令的讀取位址是否為存取單位的倍數。當對應此輪詢指令的讀取位址非為存取單位的倍數時,記憶體管理電路傳送第二資料串給主機系統以回應該輪詢指令,其中此第二資料串的每個位元皆為零。當對應此輪詢指令的讀取位址為存取單位的倍數時,記憶體管理電路會判斷緩衝記憶體中是否儲存有回應資料單元。當緩衝記憶體中儲存有回應資料單元時,記憶體管理電路會將儲存於緩衝記憶體中的回應資料單元傳送給主機系統,並且,當緩衝記憶體中未儲存有回應資料單元時,記憶體管理電路會傳送第二資料串給主機系統以回應此輪詢指令。
在本發明之一實施例中,當對應此讀取指令的邏輯區塊位址不屬於此些特定邏輯區塊位址的其中之一時,記憶體管理電路根據對應此讀取指令的起始讀取位址從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的第三資料串並且將對應此讀取指令的第三資料串傳送給主機系統。
本發明範例實施例提出一種記憶體儲存裝置,其包括連接器、可複寫式非揮發性記憶體模組、智慧卡晶片與記憶體控制器。連接器用以耦接至主機系統。記憶體控制器耦接至連接器、可複寫式非揮發性記憶體模組與智慧卡晶片,並且具有緩衝記憶體。記憶體控制器為可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中此些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存特定檔案。當從智慧卡晶片中接收回應資料單元時,記憶體控制器會將此回應資料單元儲存在此緩衝記憶體中。此外,記憶體控制器從主機系統中接收一讀取指令,並且判斷對應此讀取指令的起始讀取位址是否屬於此些特定邏輯區塊位址的其中之一。當對應此讀取指令的起始讀取位址屬於此些特定邏輯區塊位址的其中之一時,記憶體控制器會判斷緩衝記憶體中是否儲存有回應資料單元。當緩衝記憶體中存有回應資料單元時,記憶體控制器會將儲存於緩衝記憶體中的回應資料單元透過對齊存取單位傳送給主機系統。
在本發明之一實施例中,上述之記憶體控制器會判斷對應此讀取指令的起始讀取位址是否為存取單位的倍數。當對應此讀取指令的起始讀取位址不為存取單位的倍數時,記憶體控制器先傳送第一資料串給主機系統並且之後再傳送回應資料單元給主機系統。此外,當對應此讀取指令的起始讀取位址為存取單位的倍數時,記憶體控制器會先傳送回應資料單元給主機系統。
在本發明之一實施例中,在傳送回應資料單元給主機系統之後,記憶體控制器會重複地傳送回應資料單元或部分的回應資料單元給主機系統直到從主機系統接收到停止讀取指令為止。
在本發明之一實施例中,當緩衝記憶體中未存有回應資料單元時,記憶體控制器會傳送第二資料串給主機系統,其中此第二資料串的每個位元皆為零。
在本發明之一實施例中,上述之當對應此讀取指令的邏輯區塊位址不屬於此些特定邏輯區塊位址的其中之一時,記憶體控制器根據對應此讀取指令的起始讀取位址從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的第三資料串並且將對應此讀取指令的第三資料串傳送給主機系統。
在本發明之一實施例中,當緩衝記憶體中未存有回應資料單元時,記憶體控制器會判斷對應來自於主機系統的輪詢指令的讀取位址是否為存取單位的倍數。當對應此輪詢指令的讀取位址非為存取單位的倍數時,記憶體控制器會傳送第二資料串給主機系統以回應此輪詢指令,其中此第二資料串的每個位元皆為零。此外,當對應此輪詢指令的讀取位址為存取單位的倍數時,記憶體控制器會判斷緩衝記憶體中是否儲存有回應資料單元。當緩衝記憶體中儲存有回應資料單元時,記憶體控制器會將儲存於緩衝記憶體中的回應資料單元傳送給主機系統。此外,當緩衝記憶體中未儲存有回應資料單元時,記憶體控制器傳送第二資料串給主機系統以回應此輪詢指令。
本發明範例實施例提出一種記憶體控制器,用於配置在具有可複寫式非揮發性記憶體模組與智慧卡晶片的記憶體儲存裝置中。本記憶體控制器包括主機介面、記憶體介面、緩衝記憶體與記憶體管理電路。主機介面用以耦接至主機系統。記憶體介面用以耦接至可複寫式非揮發性記憶體模組。記憶體管理電路耦接緩衝記憶體、主機介面與記憶體介面。在此,記憶體管理電路會為可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中此些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存特定檔案。此外,當從智慧卡晶片中接收到回應資料單元時,記憶體管理電路會將此回應資料單元儲存在緩衝記憶體中。另外,記憶體管理電路會從主機系統中接收讀取指令並且判斷對應此讀取指令的起始讀取位址是否屬於此些特定邏輯區塊位址的其中之一。當對應此讀取指令的起始讀取位址屬於此些特定邏輯區塊位址的其中之一時,記憶體管理電路會判斷緩衝記憶體中是否儲存有回應資料單元。當緩衝記憶體中未存有回應資料單元時,記憶體控制器會判斷對應來自於主機系統的輪詢指令的讀取位址是否為存取單位的倍數。當對應此輪詢指令的讀取位址非為存取單位的倍數時,記憶體控制器會傳送第二資料串給主機系統以回應此輪詢指令,其中此第二資料串的每個位元皆為零。此外,當對應輪詢指令的讀取位址為存取單位的倍數時,記憶體控制器會判斷緩衝記憶體中是否儲存有回應資料單元。當緩衝記憶體中儲存有回應資料單元時,記憶體控制器會將儲存於緩衝記憶體中的回應資料單元傳送給主機系統。並且,當緩衝記憶體中未儲存有回應資料單元時,記憶體控制器會傳送第二資料串給主機系統以回應此輪詢指令。
在本發明之一實施例中,當對應此讀取指令的邏輯區塊位址不屬於此些特定邏輯區塊位址的其中之一時,記憶體控制器會根據對應此讀取指令的起始讀取位址從可複寫式非揮發性記憶體模組中讀取對應此讀取指令的第三資料串並且將對應此讀取指令的第三資料串傳送給主機系統。
基於上述,根據本發明一範例實施例的資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置能夠正確地傳遞智慧卡晶片的指令資料單元與回應資料單元。此外,根據本發明另一範例實施例的資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置能夠有效地縮短傳遞回應資料單元的時間。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是根據第一範例實施例繪示的主機系統與記憶體儲存裝置的概要方塊圖。
請參照圖1,主機系統1000包括微處理器1102、儲存裝置1104、快取記憶體1106與輸入/輸出裝置1108。當主機系統1000開機時,微處理器1102會執行安裝於儲存裝置1104中的作業系統1110,以使主機系統1000根據使用者之操作而提供對應的功能。例如,在主機系統1000為手機系統,並且作業系統1108為Symbian、Android或其他作業系統的例子中,當主機系統1000開機後,使用者可透過輸入/輸出裝置1108操作主機系統1000以執行通訊、影音播放等功能。雖然在本範例實施例中,主機系統1000是以手機系統來作說明,然而,在本發明另一範例實施例中主機系統1000亦以是電腦、數位相機、攝影機、音訊播放器或視訊播放器等系統。
記憶體儲存裝置100是用以耦接至主機系統1000,以根據來自於主機系統1000之作業系統1110的指令執行資料的寫入與讀取。例如,在主機系統1000為手機系統的例子中,記憶體儲存裝置100可為安全數位(Secure Digital,SD)卡、多媒體儲存卡(Multi Media Card,MMC)卡、記憶棒(memory stick)、小型快閃(Compact Flash,CF)卡或嵌入式儲存裝置。嵌入式儲存裝置包括嵌入式多媒體卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒體卡是直接耦接於主機系統的基板上。
記憶體儲存裝置100包括連接器102、記憶體控制器104與可複寫式非揮發性記憶體模組106。連接器102為符合SD標準的連接器。然而,必須瞭解的是,本發明不限於此,連接器102亦可以是符合MS標準、MMC標準、CF標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE) 1394標準、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他標準的連接器。
記憶體控制器104用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統1000的指令在可複寫式非揮發性記憶體模組106中進行資料的寫入、讀取與抹除等運作。特別是,記憶體控制器104能夠執行根據本範例實施例之資料串分派與傳送方法來分派與傳送資料串。
可複寫式非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。可複寫式非揮發性記憶體模組106包括多個實體區塊。各實體區塊分別具有複數個實體頁面,其中屬於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。然而,必須瞭解的是,在本發明另一範例實施例中,寫入資料的最小單位亦可以是扇區(Sector)或其他大小。
在本範例實施例中,記憶體控制器104會將可複寫式非揮發性記憶體模組106的實體區塊邏輯地分組為資料區、備用區、系統區與取代區,其中被分組為資料區與備用區的實體區塊會輪替地來儲存主機系統1000所寫入之資料,系統區的實體區塊是用以儲存記憶體儲存裝置100的系統資料,而取代區的實體區塊是用以取代資料區與備用區中的壞實體區塊。此外,為了使主機系統1000能夠方便地對以輪替方式儲存資料的實體區塊進行存取,記憶體控制器104會配置邏輯區塊位址LBA(0)~LBA(N)來映射此些實體區塊,由此主機系統1000能夠直接地依據邏輯區塊位址來進行資料的寫入與讀取。例如,在本範例實施例中,一個邏輯區塊位址LBA(0)的容量為4千位元組(Kilobyte,KB),但本發明不限於此。
在本範例實施例中,可複寫式非揮發性記憶體模組106為可複寫式可複寫式非揮發性記憶體模組。例如,可複寫式非揮發性記憶體模組106為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體模組。然而,本發明不限於此,可複寫式非揮發性記憶體模組106亦可是單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體模組、其他快閃記憶體模組或其他具有相同特性的記憶體模組。
在本範例實施例中,記憶體儲存裝置100還包括智慧卡晶片108。智慧卡晶片108是透過介面108a耦接至記憶體控制器104,其中介面108a是專門用以與智慧卡晶片108進行通訊的介面。
智慧卡晶片108具有微處理器、安全模組、唯讀記憶體(Read Only Memory,ROM)、隨機存取記憶體(Random Access Memory,RAM)、電子抹除式可編程唯讀記憶體(Electrically Erasable Programmable Read-Only Memory,EEPROM)、震盪器等元件。微處理器用以控制智慧卡晶片108的整體運作。安全模組用以對儲存至智慧卡晶片108中的資料進行加解密。震盪器用以產生智慧卡晶片108運作時所需之時脈訊號。隨機存取記憶體用以暫存運算的資料或韌體程式。電子抹除式可編程唯讀記憶體用以儲存使用者資料。唯讀記憶體用以儲存智慧卡晶片108的韌體程式。具體來說,當智慧卡晶片108運作時,智慧卡晶片108的微處理器會執行唯讀記憶體中的韌體程式來執行相關運作。
特別是,智慧卡晶片108的安全模組會執行一安全機制以防止欲竊取儲存於智慧卡晶片108中所儲存之資料的攻擊。例如,此攻擊包括時間攻擊(timing attack)、單一電力分析攻擊(single-power-analysis attack)或差異電力分析攻擊(differential-power-analysis)。此外,智慧卡晶片108所執行的安全機制是符合聯邦資訊處理標準(Federal Information Processing Standards,FIPS)140-2的第三等級或更高等級或者符合EMV EL的第三等級或更高等級。也就是說,智慧卡晶片108是通過FIPS 140-2之第四級以上的認證或者通過EMV EL之第四級以上的認證。在此,FIPS是美國聯邦政府制定給所有軍事機構除外的政府機構及政府的承包商所使用的公開標準,其中FIPS 140-2制定了關於資料安全的等級。此外,EMV是國際金融業界對於智慧卡與可使用晶片卡的銷售點(point-of-sale,POS)終端機,以及銀行機構所廣泛設置的自動櫃員機等所制定的專業交易與認證的標準規範。此規範是針對晶片***與現金卡的支付款系統(Payment System)的相關軟硬體所設置的標準。在本範例實施例中,藉由智慧卡晶片108的運作,記憶體儲存裝置100可提供具有身份認證的服務,例如,小額付款服務、票證服務等。
圖2是根據第一範例實施例所繪示的記憶體控制器的概要方塊圖。
請參照圖2,記憶體控制器104包括記憶體管理電路202、主機介面204、記憶體介面206與緩衝記憶體208。
記憶體管理電路202用以控制記憶體控制器104的整體運作。具體來說,記憶體管理電路202具有多個控制指令,並且在記憶體儲存裝置100被電源開機(power on)時,此些控制指令會被執行以控制記憶體控制器104的整體運作。
在本範例實施例中,記憶體管理電路202的控制指令是以韌體型式來實作。例如,記憶體管理電路202具有微處理器單元(未繪示)與唯讀記憶體(未繪示),並且此些控制指令是被燒錄至此唯讀記憶體中。當記憶體儲存裝置100運作時,此些控制指令會由微處理器單元來執行。
在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組106的特定區域(例如,記憶體模組中專用於存放系統資料的系統區)中。此外,記憶體管理電路202具有微處理器單元(未繪示)、唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有驅動碼段,並且當記憶體控制器104被致能時,微處理器單元會先執行此驅動碼段來將儲存於可複寫式非揮發性記憶體模組106中之控制指令載入至記憶體管理電路202的隨機存取記憶體中。之後,微處理器單元會運轉此些控制指令。此外,在本發明另一範例實施例中,記憶體管理電路202的控制指令亦可以一硬體型式來實作。
主機介面204是耦接至記憶體管理電路202並且用以接收與識別主機系統1000所傳送的指令與資料。也就是說,主機系統1000所傳送的指令與資料會透過主機介面204來傳送至記憶體管理電路202。在本範例實施例中,主機介面204為符合SD標準的介面。然而,必須瞭解的是本發明不限於此,主機介面204亦可以是符合MS標準、MMC標準、CF標準、PATA標準、IEEE 1394標準、PCI Express標準、SATA標準、USB標準、IDE標準或其他標準的介面。
記憶體介面206是耦接至記憶體管理電路202並且用以存取可複寫式非揮發性記憶體模組106。也就是說,欲寫入至可複寫式非揮發性記憶體模組106的資料會經由記憶體介面206轉換為可複寫式非揮發性記憶體模組106所能接受的格式。
緩衝記憶體208是耦接至記憶體管理電路202並且用以暫存來自於主機系統1000的資料與指令或來自於可複寫式非揮發性記憶體模組106的資料。
在本發明一範例實施例中,記憶體控制器104還包括電源管理電路254。電源管理電路254是耦接至記憶體管理電路202並且用以控制記憶體儲存裝置100的電源。
在本發明一範例實施例中,記憶體控制器104還包括錯誤檢查與校正電路256。錯誤檢查與校正電路256是耦接至記憶體管理電路202並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當記憶體管理電路202從主機系統1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應此寫入指令的資料產生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code),並且記憶體管理電路202會將對應此寫入指令的資料與對應的錯誤檢查與校正碼寫入至可複寫式非揮發性記憶體模組106中。之後,當記憶體管理電路202從可複寫式非揮發性記憶體模組106中讀取資料時會同時讀取此資料對應的錯誤檢查與校正碼,並且錯誤檢查與校正電路256會依據此錯誤檢查與校正碼對所讀取的資料執行錯誤檢查與校正程序。
值得一提的是,智慧卡晶片108是透過記憶體儲存裝置100的連接器102接收來自於主機系統1000的指令與資料與傳送資料至主機系統1000,而非直接透過智慧卡介面(即,介面108a)與主機系統1000通訊。基此,在第一範例實施例中,應用程式1120會被安裝在主機系統1000中,以處理欲傳送給智慧卡晶片108的指令資料單元以及識別智慧卡晶片108的回應資料單元。例如,在本範例實施例中,傳送給智慧卡晶片108的指令資料單元稱為指令-應用程式協定資料單元(Command-Application Protocol Data Unit,C-APDU)並且來自於智慧卡晶片108的回應資料單元稱為回應-應用程式協定資料單元(Response-Application Protocol Data Unit,R-APDU)。特別是,記憶體控制器104會根據本範例實施例的資料串傳送與分派方法來識別與傳送智慧卡晶片108的C-APDU與R-APDU。也就是說,當主機系統1000對具有可複寫式非揮發性記憶體模組106與智慧卡晶片108之架構的記憶體儲存裝置100進行操作時,記憶體控制器104會配合應用程式1120的運作根據本範例實施例的資料串傳送與分派方法來傳送與分派欲下達給智慧卡晶片108的C-APDU以正確地將屬於C-APDU的資料串傳送至智慧卡晶片108並且將來自於智慧卡晶片108的R-APDU正確地回傳給主機系統1000。
在本範例實施例中,應用程式1120會在記憶體儲存裝置100儲存一個或多個檔案,並且將用以儲存此一個或多個檔案的邏輯區塊位址的資訊傳送給記憶體控制器104。例如,當應用程式1120下達在記憶體儲存裝置100中儲存檔案RF的指令時,作業系統1110會根據記憶體儲存裝置100的檔案系統(未繪示)使用部分的邏輯區塊位址(例如,邏輯區塊位址LBA(P)~LBA(K))來寫入檔案RF。在此,用以儲存檔案RF的邏輯區塊位址的被稱為特定邏輯區塊位址(如圖3的斜線所示)。
特別是,在本範例實施例中,任何針對智慧卡晶片108的操作都是藉由應用程式1120對檔案RF進行存取來完成。也就是說,應用程式1120會透過對檔案RF的寫入指令將C-APDU傳送至記憶體儲存裝置100並且透過對檔案RF的讀取指令從記憶體儲存裝置100中讀取R-APDU。值得一提的是,在其他作業系統中,應用程式1120亦可直接對對應檔案RF的特定邏輯區塊位址進行存取,來執行對智慧卡晶片108的操作。
具體來說,記憶體控制器104的記憶體管理電路202包括狀態機(state machine)並且會根據主機系統1000對智慧卡晶片108的操作來更新此狀態機的狀態。此外,當應用程式1120對此檔案RF進行存取時,記憶體控制器104會根據此狀態機的狀態來判斷是否將來自於主機系統1000的資料串傳送給智慧卡晶片108或者將對應的回應訊息回傳給主機系統1000。
圖4是根據第一範例實施例所繪示的狀態機的示意圖。
請參照圖4,在記憶體儲存裝置100開始運作時,狀態機會處於閒置(Idle)狀態401。在閒置狀態401期間,記憶體控制器104會判斷來自於主機系統1000的寫入指令是否為對應特定邏輯區塊位址並且對應此寫入指令的資料串是否含有特定標記。具體來說,當應用程式1120傳送C-APDU給記憶體儲存裝置100時,應用程式1120會將特定標記與C-APDU封裝為欲寫入至檔案RF的資料串並且作業系統1110會向記憶體儲存裝置100下達寫入指令以將此資料串寫入至特定邏輯區塊位址。例如,此特定標記是記錄在此資料串的標頭中。基此,當記憶體儲存裝置100從主機系統1000中接收到寫入指令與對應此些寫入指令的資料串時,記憶體管理電路202會識別出此寫入指令是對應特定邏輯區塊位址且對應此寫入指令的資料串含有特定標記,由此將此資料串中的C-APDU傳遞給智慧卡晶片108。
在記憶體管理電路202傳送C-APDU給智慧卡晶片108之後,狀態機會處於處理(In Progress)狀態403。在處理狀態403期間,記憶體控制器104會等候來自於智慧卡晶片108的R-APDU。也就是說,處理狀態403表示記憶體管理電路202尚未從智慧卡晶片108中接收到R-APDU。倘若在處理狀態期間應用程式1120下達對應讀取檔案RF的讀取指令時,記憶體管理電路202會回覆預設資料串(以下稱為第二資料串)給主機系統1000。
具體來說,在本範例實施例中,記憶體儲存裝置100與主機系統1000之間是以固定大小的傳輸單位來傳遞資料。例如,此傳輸單位為512位元組(Byte)。以讀取資料為例,當對記憶體儲存裝置100下達讀取指令之後,主機系統1000的作業系統1110會發送輪詢(polling)指令,以詢問記憶體儲存裝置100是否已準備好欲讀取之資料之中的第一個512位元組的資料。當第一個512位元組的資料已被放置於緩衝記憶體208時,記憶體管理電路202會將此第一個512位元組的資料傳送給主機系統1000。之後,主機系統1000的作業系統1110會再次發送輪詢(polling)指令,以詢問記憶體儲存裝置100是否已準備好欲讀取之資料之中的下一個512位元組的資料。以此類推,直到記憶體儲存裝置100接收到停止讀取指令時,記憶體管理電路202才會停止讀取與傳送資料。
在本範例是實施例中,第二資料串的大小為512位元組且第二資料串的每一個位元皆為0。特別是,當接收到由多個第二資料串所組成的資料串時,應用程式1120會識別R-APDU未被成功接收並且藉由接續讀取檔案RF中的下一筆資料來嘗試從記憶體儲存裝置100中接收R-APDU。在本範例實施例中,應用程式1120是根據固定的存取單位來傳遞智慧卡晶片的指令資料單元,因此,當欲讀取R-APDU時,應用程式1120是以固定的存取單位依序地從檔案RF中讀取資料。例如,此存取單位為8 KB。特別是,在本範例實施例中,用以存放檔案RF的起始邏輯區塊位址LBA(P)是存取單位的倍數,由此以利於應用程式1120的存取。
在接收到智慧卡晶片108的R-APDU之後,狀態機的狀態會從處理狀態403變為資料可用(Data Available)狀態405。在資料可用狀態405期間,記憶體控制器104會等候主機系統1000傳送對應特定邏輯區塊位址的讀取指令。具體來說,記憶體管理電路202會將從智慧卡晶片108中接收到的R-APDU儲存在緩衝記憶體208中,並且當從主機系統1000中接收到對應特定邏輯區塊位址的讀取指令時將所儲存之R-APDU傳送給主機系統1000。特別是,在將所儲存之R-APDU傳送給主機系統1000之後,狀態機的狀態會從資料可用狀態405變回閒置狀態401。由此,記憶體控制器104可從主機系統1000接收下一個C-APDU並且傳遞給智慧卡晶片108。
在本發明範例實施例中,記憶體儲存裝置100與主機系統1000之間的資料傳遞會透過快取記憶體1106。具體來說,當主機系統1000從記憶體儲存裝置100中讀取資料時,主機系統1000的作業系統1110會以預讀取(Prefetch)前後位址的方式來提升效能。例如,當主機系統1000的應用程式1120從記憶體儲存裝置100的邏輯區塊位址LBA(P)開始讀取資料量為8KB的資料時,主機系統1000的作業系統1110會從記憶體儲存裝置100的邏輯區塊位址LBA(P-1)開始讀取資料量為64KB的資料並儲存此資料於快取記憶體1106中。
之後,應用程式1120會從快取記憶體1106中放置屬於邏輯區塊位址LBA(P)之資料的位址開始讀取資料量為8KB的資料。由於作業系統1110會以預讀取的方式先讀取後續的資料,基此,當下一個讀取指令所欲讀取之資料已儲存於快取記憶體1106中時,主機系統1000的作業系統1110將能夠直接地從快取記憶體1106中讀取此資料,由此提升存取速度。
值得一提的是,為了避免主機系統1000的作業系統1110直接地從快取記憶體1106中提供此資料給應用程式1120而影響智慧卡晶片108之R-APDU的傳遞,在本範例實施例中,檔案RF的大小會被設計大於快取記憶體1106的大小。基此,當應用程式1120已將檔案RF中的資料讀取完畢仍未接收到R-APDU並且從頭開始重新讀取檔案RF時,作業系統1110重新至記憶體儲存裝置100中讀取資料,由此R-APDU就可被傳遞至主機系統1000。
圖5是根據第一範例實施例所繪示之預讀取的資料流示意圖,其繪示在作業系統1110下達讀取指令時記憶體控制器104尚未從智慧卡晶片108中取得R-APDU的範例。
請參照圖5,應用程式1120會傳送指示從特定邏輯區塊位址LBA(P)開始讀取資料量為8KB的資料之讀取請求RR1給作業系統1110(資料流S501)。
假設快取記憶體1106未存有對應特定邏輯區塊位址LBA(P)的資料,因此作業系統1110會以預讀取方式傳送從記憶體儲存裝置特定邏輯區塊位址LAB(P-1)開始讀取資料量為64KB的資料之讀取指令RC給記憶體控制器104(資料流S503)。
由於此時記憶體控制器104尚未從智慧卡晶片108中取得R-APDU,因此記憶體控制器104會將多個第二資料串DS3傳送給主機系統1000(資料流S505)。具體來說,在傳送讀取指令RC之後,作業系統1110會不斷地發送輪詢指令來讀取資料並且記憶體控制器104會根據傳輸單位(例如,512位元組)將第二資料串DS3分批傳送給主機系統1000。在此,第二資料串DS3的大小為512位元組,因此為回應從特定邏輯區塊位址LBA(P-1)開始讀取資料量為64KB的資料之讀取指令RC,記憶體控制器104會依序地傳送128個第二資料串DS3以回應對應此讀取指令RC的多個輪詢指令。基此,包含128個第二資料串DS3的資料串會被儲存在快取記憶體1106中。
之後,作業系統1110會將快取記憶體1106中對應特定邏輯區塊位址LBA(P)的8KB資料(即,16個第二資料串DS3)傳送給應用程式1120(資料流S507)。
圖6是根據第一範例實施例所繪示之預讀取的資料流示意圖,其繪示在作業系統1110下達讀取指令時記憶體控制器104已從智慧卡晶片108中取得R-APDU的範例。
請參照圖6,在資料流S601中智慧卡晶片108將R-APDU傳送給記憶體控制器104。
在資料流S603中應用程式1120傳送指示從特定邏輯區塊位址LBA(P)開始讀取資料量為8KB的資料之讀取請求RR1給作業系統1110。
假設快取記憶體1106未存有對應特定邏輯區塊位址LBA(P)的資料,因此作業系統1110會以預讀取方式傳送從特定邏輯區塊位址LBA(P-1)開始讀取資料量為64KB的資料之讀取指令RC給記憶體控制器104(資料流S605)。
由於此時記憶體控制器104已從智慧卡晶片108中取得R-APDU,因此記憶體控制器104會將R-APDU傳送給主機系統1000(資料流S607)。類似地,在傳送讀取指令RC之後,作業系統1110會不斷地發送輪詢指令來讀取資料並且記憶體控制器104會根據傳輸單位(例如,512位元組)將R-APDU分批傳送給主機系統1000。
值得一提的是,在本範例實施例中,記憶體控制器104將儲存於緩衝記憶體208中的R-APDU透過對齊存取單位來傳送給主機系統1000。具體來說,記憶體控制器104會判斷對應來自於主機系統1000之作業系統1110的讀取指令的起始讀取位址是否為存取單位的倍數。
倘若此起始讀取位址為存取單位的倍數時,記憶體控制器104會直接將R-APDU傳送給主機系統1000。並且,倘若此起始讀取位址非為存取單位的倍數時,記憶體控制器104會先傳送第一資料串之後再將R-APDU傳送給主機系統1000。在此,第一資料串的大小是根據公式(1)來設定:
S(D)=AAU-MOD(AAU,SRA) (1)
其中S(D)為第一資料串的大小,AAU為存取單位,SRA為讀取指令的起始讀取位址,MOD(AAU,SRA)為讀取指令的起始讀取位址除以存取單位所獲得的餘數。
例如,若存取單位為32KB,讀取指令的起始讀取位址為5KB,主機系統1000之讀取資料量為64KB,且記憶體控制器104已接收到32KB之R-APDU後,記憶體控制器104會根據公式(1)先傳送R-APDU之後27KB為第一資料串,再傳送R-APDU之前5KB,另再依序傳送R-APDU之後27KB及前5KB。其中第一資料串可視為預讀之部份。故如此,作業系統1110提取快取記憶體1106中對應邏輯區塊位址的資料給應用程式1120時,即為正確之R-APDU。
又例如,以圖6為例,由於一個邏輯區塊位址的容量為4KB,因此,為回應從特定邏輯區塊位址LBA(P-1)開始讀取資料量為64KB的資料之讀取指令RC,記憶體控制器104會在傳送8KB的R-APDU之前傳送資料量為4KB的第一資料串DS1,並且在傳送R-APDU之後傳送資料量為52KB的資料串(以下稱為第四資料串DS2)。基此,包含第一資料串、R-APDU與第四資料串的資料串會被儲存在快取記憶體1106中。
之後,作業系統1110會將快取記憶體1106中對應邏輯區塊位址LBA(P)的8KB資料(即,R-APDU)傳送給應用程式1120(資料流S609)。
值得一提的是,在本範例實施例中,第一資料串與第四資料串為每一位元皆為0的資料串。然而,本發明不限於此,在本發明另一範例實施例中,第一資料串亦可為R-APDU的其中一部份。例如,第一資料串為R-APDU之中最後一部分的資料。類似地,在本發明另一範例實施例中,第四資料串可為R-APDU的其中一部份或全部。也就是說,記憶體控制器104會在傳送R-APDU之後,重複地傳送R-APDU直到主機系統1000下達停止讀取指令為止。
圖7是根據第一範例實施例所繪示的資料串分派與傳送方法的流程圖,其繪示接收到寫入指令的處理步驟。
請參照圖7,在步驟S701中,記憶體控制器104的記憶體管理電路202會從主機系統1000中接收寫入指令與對應此寫入指令的資料串。
在步驟S703中,記憶體管理電路202會判斷對應此寫入指令的邏輯區塊位址是否屬於特定邏輯區塊位址。
倘若對應此寫入指令的邏輯區塊位址不屬於特定邏輯區塊位址時,則在步驟S705中記憶體管理電路202會依據此寫入指令將所接收的資料串寫入至非發性記憶體模組106中。倘若對應此寫入指令的邏輯區塊位址屬於特定邏輯區塊位址時,則在步驟S707中記憶體管理電路202會判斷所接收的第一資料串是否包含特定標記。
倘若所接收的資料串包含特定標記時,則在步驟S709中記憶體管理電路202會將所接收的資料串中的C-APDU(即,所接收的資料串中不包含特定標記的部分)傳送給智慧卡晶片108。特別是,此時,狀態機會從閒置狀態401變為處理狀態403。倘若在步驟S707中判斷所接收的資料串未包含特定標記時,則圖7的流程會被結束。
圖8是根據第一範例實施例所繪示的資料串分派與傳送方法的流程圖,其繪示接收到讀取指令的處理步驟。
請參照圖8,在步驟S801中,記憶體控制器104的記憶體管理電路202會從主機系統1000中接收讀取指令。
在步驟S803中,記憶體管理電路202會判斷對應此讀取指令的邏輯區塊位址是否屬於特定邏輯區塊位址。
倘若對應此讀取指令的邏輯區塊位址不屬於特定邏輯區塊位址時,則在步驟S805中,記憶體管理電路202會依據此讀取指令從非發性記憶體模組106中讀取資料(以下稱為第三資料串)並且將第三資料串傳送給主機系統1000。倘若對應此讀取指令的邏輯區塊位址屬於特定邏輯區塊位址時,則在步驟S807中記憶體管理電路202會判斷在緩衝記憶體208中是否存有R-APDU(即,判斷狀態機是否處於資料可用狀態405)。
倘若緩衝記憶體208中尚未存有R-APDU時,在步驟S809中記憶體管理電路202會將第二資料串傳送給主機系統1000。傳送第二資料串與R-APDU的方式已配合圖5描述如上,在此不重複描述。
倘若在緩衝記憶體208中存有R-APDU時,則在步驟S811中記憶體管理電路202會將儲存於緩衝記憶體208中的R-APDU透過對齊存取單位傳送給主機系統1000。例如,在步驟S811中,記憶體管理電路202會判斷對應此讀取指令的起始讀取位址是否為存取單位的倍數。當對應讀取指令的起始讀取位址不為存取單位的倍數時,記憶體管理電路202會先傳送第一資料串給主機系統1000並且之後再傳送R-APDU給主機系統。在此,第一資料串的大小為此讀取指令的起始讀取位址除以存取單位所獲得的餘數,再將存取單位減去該餘數之所得值。此外,當對應該讀取指令的起始讀取位址為存取單位的倍數時,記憶體管理電路202直接傳送R-APDU給主機系統1000。基此,當主機系統1000的作業系統1110以上述預讀取方式下達讀取指令並且起始讀取位址非對齊應用程式1120讀取資料的存取單位時,記憶體管理電路202會以對齊存取單位的方式來傳送R-APDU,以致於應用程式1120能夠正確地讀取到此R-APDU。
本發明第二範例實施例的記憶體儲存裝置與主機系統本質上是相同於第一範例實施例的記憶體儲存裝置與主機系統,其中差異在於第二範例實施例的記憶體控制器會判斷於傳送表示尚未接收到R-APDU的資料串給主機系統期間是否接收到R-APDU,並且當接收到R-APDU時更改已準備傳送給主機系統的資料,由此提升傳遞R-APDU的效率。以下將使用圖1~圖3的裝置結構來描述第二範例實施例與第一範例實施例的差異之處。
在第一範例實施例中,當應用程式1120欲以存取單位(即,8KB)來讀取檔案RF,以嘗試讀取智慧卡晶片108所回覆之R-APDU時,主機系統1000的作業系統1110會下達讀取指令給記憶體存裝置1000。此時,記憶體控制器104會根據狀態機的狀態判斷R-APDU是否已儲存於緩衝記體208中。倘若R-APDU尚未儲存於緩衝記體208中時,記憶體控制器104會傳送第二資料串以回應後續對應此讀取指令的輪詢指令。也就是說,在接收到讀取指令時,若R-APDU尚未儲存於緩衝記體208中,記憶體控制器104會準備第二資料串並且持續傳送第二資料串給主機系統1000直到接收到停止讀取指令為止。然而,如上所述,除了應用程式1120所預讀取之資料之外,主機系統1000的作業系統1110會以預讀取方式讀取檔案RF的其他資料(例如,64KB的資料)並且將此些預讀取的資料儲存於快取記憶體1106中。因此,當應用程式1120識別所讀取之資料非為R-APDU而繼續讀取RF檔案中的下一筆資料時,作業系統1110會直接從快取記憶體1106中讀取下一筆資料給應用程式1120。並且,僅當應用程式1120所讀取之資料不存於快取記憶體1106中時,作業系統1110才會再次向記憶體儲存裝置100下達讀取指令來讀取資料。也就是說,倘若在作業系統1110以預讀取方式下達讀取指令的時間點,R-APDU尚未儲存於緩衝記體208時,作業系統1110所預讀取之資料內不會包含R-APDU並且應用程式1120需等到作業系統1110再次向記憶體儲存裝置100下達讀取指令之後才有可能從快取記憶體1106中讀取到R-APDU。因此,應用程式1120接收到R-APDU的時間可能會有所延遲。
為了避免此延遲,在第二範例實施例中,記憶體控制器104更會在回應輪詢指令的過程中,根據狀態機的狀態判斷R-APDU是否已儲存於緩衝記體208中。倘若在回應輪詢指令的過程中,智慧卡晶片108回覆R-APDU時,記憶體控制器104會更改傳送給主機系統1000的資料,由此使應用程式1120能夠更快接收到R-APDU。
圖9是根據第二範例實施例所繪示之預讀取的資料流示意圖,其繪示記憶體控制器104於作業系統1110以預讀取方式運作讀取資料期間從智慧卡晶片108中接收到R-APDU的範例。
請參照圖9,在資料流S901中應用程式1120傳送指示從特定邏輯區塊位址LBA(P-1)開始讀取資料量為8KB的資料之讀取請求RR1給作業系統1110。
假設快取記憶體1106未存有對應特定邏輯區塊位址LBA(P)的資料,因此作業系統1110會以預讀取方式傳送從特定邏輯區塊位址(P-1)開始讀取資料量為64KB的資料之讀取指令RC給記憶體控制器104(即,資料流S903)。
由於此時記憶體控制器104尚未從智慧卡晶片108中取得R-APDU,因此記憶體控制器104會準備第二資料串並且開始將第二資料串DS3傳送給主機系統1000以回應對應此讀取指令的輪詢指令。首先,記憶體控制器104會分別地傳送8個第二資料串以回應前8個輪詢指令(即,簡化之資料流S905)。特別是,此8個第二資料串是對應邏輯區塊位址LBA(P-1)。之後,再接收到輪詢指令時,記憶體控制器104會判斷目前之輪詢指令所對應的讀取位址(即,邏輯區塊位址LBA(P))為存取單位的倍數,並且再次根據狀態機的狀態判斷R-APDU是否已儲存於緩衝記體208中。假設智慧卡晶片108於資料流S705期間回覆R-APDU(即,資料流S907)時,記憶體控制器104會以R-APDU取代第二資料串傳送給主機系統1000(即,資料流S909)以回應目前的輪詢指令。之後,應用程式1120就能夠從快取記憶體1106中讀取到正確地R-APDU(即,資料流S911)。
也就是說,在本範例實施例中,在接收到讀取指令而判斷尚未從智慧卡晶片108中取得R-APDU而開始傳送第二資料串給主機系統的例子中,在傳送第二資料串的過程中,倘若目前之輪詢指令所對應的讀取位址為存取單位的倍數並且R-APDU已儲存於緩衝記體208中時,記憶體控制器104會修改欲傳送給主機系統1000的資料(即,以R-APDU替換第二資料串),由此縮短應用程式1120正確讀取到R-APDU的時間。值得一提的是,應用程式1120是根據存取單位,因此,在目前之輪詢指令所對應的讀取位址為存取單位的倍數時傳送R-APDU才能被應用程式1120正確地讀取。基此,在本範例實施例中,記憶體控制器104僅於當目前之輪詢指令所對應的讀取位址為存取單位的倍數時,才再次根據狀態機的狀態判斷R-APDU是否已儲存於緩衝記體208中。然而,必須瞭解的是,記憶體控制器104亦可於任何時間點再次根據狀態機的狀態判斷R-APDU是否已儲存於緩衝記體208中,並且當R-APDU已儲存於緩衝記體208中並且目前之輪詢指令所對應的讀取位址為存取單位的倍數時才以R-APDU替換第二資料串。
圖10是根據第二範例實施例所繪示的資料串分派與傳送方法的流程圖,其繪示接收到讀取指令的處理步驟。
請參照圖10,在步驟S1001中,記憶體控制器104的記憶體管理電路202會從主機系統1000中接收讀取指令。
在步驟S1003中,記憶體管理電路202會判斷對應此讀取指令的邏輯區塊位址是否屬於特定邏輯區塊位址。
倘若對應此讀取指令的邏輯區塊位址不屬於特定邏輯區塊位址時,則在步驟S1005中記憶體管理電路202會依據此讀取指令從非發性記憶體模組106中讀取資料(以下稱為第三資料串)並且將第三資料串傳送給主機系統1000。之後,圖10的流程會被終止。
倘若對應此讀取指令的邏輯區塊位址屬於特定邏輯區塊位址時,則在步驟S1007中記憶體管理電路202會判斷在緩衝記憶體208中是否存有R-APDU(即,判斷狀態機是否處於資料可用狀態405)。
倘若緩衝記憶體208中存有R-APDU時,在步驟S1009中,記憶體管理電路202會將儲存於緩衝記憶體208中的R-APDU透過對齊存取單位傳送給主機系統1000。之後,圖10的流程會被終止。
倘若緩衝記憶體208中尚未存有R-APDU時,在步驟S1011中記憶體管理電路202會判斷目前之輪詢指令所對應的讀取位址是否為存取單位的倍數。
倘若目前之輪詢指令所對應的讀取位址非為存取單位的倍數時,在步驟S1013,記憶體管理電路202會依序地將一個第二資料串傳送給主機系統1000。並且,在步驟S1015中,記憶體管理電路202會判斷是否接收到停止讀取指令。倘若接收到停止讀取指令時,圖10的流程會終止。倘若未接收到停止讀取指令時,步驟S1011會被執行。
倘若目前之輪詢指令所對應的讀取位址為存取單位的倍數時,在步驟S1017中,記憶體管理電路202會再次判斷在緩衝記憶體208中是否存有R-APDU。倘若在緩衝記憶體208中尚未存有R-APDU時,步驟S1013會被執行。倘若在緩衝記憶體208中存有R-APDU時,在步驟S1019中,記憶體管理電路202會將R-APDU傳送給主機系統1000。之後,圖10的流程會被終止。
綜上所述,本發明範例實施例的資料串分派與傳送方法及使用此方法的記憶體控制器與記憶體儲存裝置是根據存取單位來傳送智慧卡晶片的R-APDU,因此,既使主機系統的作業系統以預讀取方式讀取資料,R-APDU依然能夠正確地傳送給智慧卡晶片的應用程式。此外,本發明範例實施例的資料串分派與傳送方法及使用此方法的記憶體控制器與記憶體儲存裝置,會在傳送代表未接收到R-APDU的資料串期間,再次判斷智慧卡晶片是否已回覆R-APDU,並且當智慧卡晶片已回覆R-APDU時以R-APDU來更改欲傳送給主機系統的資料,基此,可縮短智慧卡晶片的應用程式正確地讀取到R-APDU的時間。雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...記憶體儲存裝置
102...連接器
104...記憶體控制器
106...可複寫式非揮發性記憶體模組
108...智慧卡晶片
108a...介面
1000...主機系統
1102...微處理器
1104...儲存裝置
1106...快取記憶體
1108...輸入/輸出裝置
1110...作業系統
1120...應用程式
202...記憶體管理電路
204...主機介面
206...記憶體介面
208...緩衝記憶體
254...電源管理電路
256...錯誤檢查與校正電路
LBA(0)~LBA(N)...邏輯區塊位址
401...閒置狀態
403...處理狀態
405...資料可用狀態
S501、S503、S505、S507、S601、S603、S605、S607、S609、S701、S703、S705、S707、S709、S711、S713、S715、S717、S719、S721...資料流
S701、S703、S705、S707、S709、S801、S803、S805、S807、S809、S811...資料串分派與傳送的步驟
S901、S903、S905、S907、S909、S911...資料流
S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015、S1017、S1019...資料串分派與傳送的步驟
圖1是根據第一範例實施例繪示的主機系統與記憶體儲存裝置的概要方塊圖。
圖2是根據第一範例實施例所繪示的記憶體控制器的概要方塊圖。
圖3是根據第一範例實施例所繪示之應用程式的存取示意圖。
圖4是根據本發明第一範例實施例所繪示的狀態機的示意圖。
圖5是根據第一範例實施例所繪示之預讀取的資料流示意圖。
圖6是根據第一範例實施例所繪示之預讀取的資料流示意圖。
圖7是根據第一範例實施例所繪示的資料串分派與傳送方法的流程圖。
圖8是根據第一範例實施例所繪示的資料串分派與傳送方法的流程圖。
圖9是根據第二範例實施例所繪示之預讀取的資料流示意圖。
圖10是根據第二範例實施例所繪示的資料串分派與傳送方法的流程圖。
S801、S803、S805、S807、S809、S811...資料串分派與傳送的步驟
Claims (27)
- 一種資料串分派與傳送方法,用於具有一可複寫式非揮發性記憶體模組與一智慧卡晶片的一記憶體儲存裝置,該資料串分派與傳送方法包括:為該可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案;當從該智慧卡晶片中接收一回應資料單元時,將該回應資料單元儲存在一緩衝記憶體中;從一主機系統中接收一讀取指令;判斷對應該讀取指令的一起始讀取位址是否屬於該些特定邏輯區塊位址的其中之一;當對應該讀取指令的該起始讀取位址屬於該些特定邏輯區塊位址的其中之一時,則判斷該緩衝記憶體中是否儲存有該回應資料單元;當該緩衝記憶體中存有該回應資料單元時,將儲存於該緩衝記憶體中的該回應資料單元透過對齊一存取單位傳送給該主機系統。
- 如申請專利範圍第1項所述之資料串分派與傳送方法,其中將儲存於該緩衝記憶體中的該回應資料單元透過對齊一存取單位傳送給該主機系統的步驟包括:判斷對應該讀取指令的該起始讀取位址是否為該存取單位的倍數;當對應該讀取指令的該起始讀取位址不為該存取單位的倍數時,先傳送一第一資料串給該主機系統並且之後再傳送該回應資料單元給該主機系統;以及當對應該讀取指令的該起始讀取位址為該存取單位的倍數時,先傳送該回應資料單元給該主機系統,其中該第一資料串的一大小是根據公式(1)來設定:S(D)=AAU-MOD(AAU,SRA) (1)其中S(D)為該第一資料串的該大小,AAU為該存取單位,SRA為該讀取指令的該起始讀取位址,MOD(AAU,SRA)為該讀取指令的該起始讀取位址除以該存取單位所獲得的一餘數。
- 如申請專利範圍第2項所述之資料串分派與傳送方法,其中該第一資料串為該回應資料單元之中的部分資料。
- 如申請專利範圍第3項所述之資料串分派與傳送方法,其中將儲存於該緩衝記憶體中的該回應資料單元透過對齊一存取單位傳送給該主機系統的步驟更包括:在傳送該回應資料單元給該主機系統之後,重複地傳送該回應資料單元或部分的該回應資料單元給該主機系統直到從該主機系統接收到一停止讀取指令為止。
- 如申請專利範圍第1項所述之資料串分派與傳送方法,更包括:當該緩衝記憶體中未存有該回應資料單元時,傳送一第二資料串給該主機系統,其中該第二資料串的每個位元皆為零。
- 如申請專利範圍第1項所述之資料串分派與傳送方法,更包括:當對應該讀取指令的該邏輯區塊位址不屬於該些特定邏輯區塊位址的其中之一時,根據對應該讀取指令的該起始讀取位址從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一第三資料串並且將對應該讀取指令的該第三資料串傳送給該主機系統。
- 如申請專利範圍第1項所述之資料串分派與傳送方法,更包括:當該緩衝記憶體中未存有該回應資料單元時,判斷對應來自於該主機系統的一輪詢指令的一讀取位址是否為該存取單位的倍數,其中當對應該輪詢指令的該讀取位址非為該存取單位的倍數時執行步驟(a),並且當對應該輪詢指令的該讀取位址為該存取單位的倍數時執行步驟(b);(a)傳送一第二資料串給該主機系統以回應該輪詢指令,其中該第二資料串的每個位元皆為零;(b)判斷該緩衝記憶體中是否儲存有該回應資料單元,其中當該緩衝記憶體中儲存有該回應資料單元時執行步驟(c)並且當該緩衝記憶體中未儲存有該回應資料單元時執行步驟(d);(c)將儲存於該緩衝記憶體中的該回應資料單元傳送給該主機系統;以及(d)傳送該第二資料串給該主機系統以回應該輪詢指令。
- 一種資料串分派與傳送方法,用於具有一可複寫式非揮發性記憶體模組與一智慧卡晶片的一記憶體儲存裝置,該資料串分派與傳送方法包括:為該可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案;當從該智慧卡晶片中接收到一回應資料單元時,將該回應資料單元儲存在一緩衝記憶體中;從一主機系統中接收一讀取指令;判斷對應該讀取指令的一起始讀取位址是否屬於該些特定邏輯區塊位址的其中之一;當對應該讀取指令的該起始讀取位址屬於該些特定邏輯區塊位址的其中之一時,則判斷該緩衝記憶體中是否儲存有該回應資料單元;當該緩衝記憶體中未存有該回應資料單元時,判斷對應來自於該主機系統的一輪詢指令的一讀取位址是否為該存取單位的倍數,其中當對應該輪詢指令的該讀取位址非為該存取單位的倍數時執行步驟(a),並且當對應該輪詢指令的該讀取位址為該存取單位的倍數時執行步驟(b);(a)傳送一第二資料串給該主機系統以回應該輪詢指令,其中該第二資料串的每個位元皆為零;(b)判斷該緩衝記憶體中是否儲存有該回應資料單元,其中當該緩衝記憶體中儲存有該回應資料單元時執行步驟(c)並且當該緩衝記憶體中未儲存有該回應資料單元時執行步驟(d);(c)將儲存於該緩衝記憶體中的該回應資料單元傳送給該主機系統;以及(d)傳送該第二資料串給該主機系統以回應該輪詢指令。
- 如申請專利範圍第8項所述之資料串分派與傳送方法,更包括:當對應該讀取指令的該邏輯區塊位址不屬於該些特定邏輯區塊位址的其中之一時,根據對應該讀取指令的該起始讀取位址從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一第三資料串並且將對應該讀取指令的該第三資料串傳送給該主機系統。
- 一種記憶體控制器,用於配置在具有一可複寫式非揮發性記憶體模組與一智慧卡晶片的一記憶體儲存裝置中,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一緩衝記憶體;以及一記憶體管理電路,耦接該緩衝記憶體、該主機介面與該記憶體介面,其中該記憶體管理電路為該可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案,其中當從該智慧卡晶片中接收一回應資料單元時,該記憶體管理電路將該回應資料單元儲存在該緩衝記憶體中,其中該記憶體管理電路從該主機系統中接收一讀取指令,並且判斷對應該讀取指令的一起始讀取位址是否屬於該些特定邏輯區塊位址的其中之一,其中當對應該讀取指令的該起始讀取位址屬於該些特定邏輯區塊位址的其中之一時,該記憶體管理電路會判斷該緩衝記憶體中是否儲存有該回應資料單元,其中當該緩衝記憶體中存有該回應資料單元時,該記憶體管理電路將儲存於該緩衝記憶體中的該回應資料單元透過對齊一存取單位傳送給該主機系統。
- 如申請專利範圍第10項所述之記憶體控制器,其中該記憶體管理電路會判斷對應該讀取指令的該起始讀取位址是否為該存取單位的倍數,其中當對應該讀取指令的該起始讀取位址不為該存取單位的倍數時,該記憶體管理電路先傳送一第一資料串給該主機系統並且之後再傳送該回應資料單元給該主機系統,其中當對應該讀取指令的該起始讀取位址為該存取單位的倍數時,該記憶體管理電路先傳送該回應資料單元給該主機系統,其中該第一資料串的一大小是根據公式(1)來設定:S(D)=AAU-MOD(AAU,SRA) (1)其中S(D)為該第一資料串的該大小,AAU為該存取單位,SRA為該讀取指令的該起始讀取位址,MOD(AAU,SRA)為該讀取指令的該起始讀取位址除以該存取單位所獲得的一餘數。
- 如申請專利範圍第11項所述之記憶體控制器,其中該第一資料串為該回應資料單元之中最後一部分的資料。
- 如申請專利範圍第12項所述之記憶體控制器,其中在傳送該回應資料單元給該主機系統之後,該記憶體管理電路重複地傳送該回應資料單元或部分的該回應資料單元給該主機系統直到從該主機系統接收到一停止讀取指令為止。
- 如申請專利範圍第10項所述之記憶體控制器,其中當該緩衝記憶體中未存有該回應資料單元時,該記憶體管理電路傳送一第二資料串給該主機系統,其中該第二資料串的每個位元皆為零。
- 如申請專利範圍第10項所述之記憶體控制器,其中當對應該讀取指令的該邏輯區塊位址不屬於該些特定邏輯區塊位址的其中之一時,該記憶體管理電路根據對應該讀取指令的該起始讀取位址從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一第三資料串並且將對應該讀取指令的該第三資料串傳送給該主機系統。
- 如申請專利範圍第10項所述之記憶體控制器,其中當該緩衝記憶體中未存有該回應資料單元時,該記憶體管理電路判斷對應來自於該主機系統的一輪詢指令的一讀取位址是否為該存取單位的倍數,其中當對應該輪詢指令的該讀取位址非為該存取單位的倍數時,該記憶體管理電路傳送一第二資料串給該主機系統以回應該輪詢指令,其中該第二資料串的每個位元皆為零,其中當對應該輪詢指令的該讀取位址為該存取單位的倍數時,該記憶體管理電路判斷該緩衝記憶體中是否儲存有該回應資料單元,其中當該緩衝記憶體中儲存有該回應資料單元時,該記憶體管理電路將儲存於該緩衝記憶體中的該回應資料單元傳送給該主機系統,其中當該緩衝記憶體中未儲存有該回應資料單元時,該記憶體管理電路傳送該第二資料串給該主機系統以回應該輪詢指令。
- 一種記憶體控制器,用於配置在具有一可複寫式非揮發性記憶體模組與一智慧卡晶片的一記憶體儲存裝置中,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該可複寫式非揮發性記憶體模組;一緩衝記憶體;以及一記憶體管理電路,耦接該緩衝記憶體、該主機介面與該記憶體介面,其中該記憶體管理電路為該可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案,其中當從該智慧卡晶片中接收到一回應資料單元時,該記憶體管理電路將該回應資料單元儲存在該緩衝記憶體中,其中該記憶體管理電路從該主機系統中接收一讀取指令並且判斷對應該讀取指令的一起始讀取位址是否屬於該些特定邏輯區塊位址的其中之一,其中當對應該讀取指令的該起始讀取位址屬於該些特定邏輯區塊位址的其中之一時,該記憶體管理電路判斷該緩衝記憶體中是否儲存有該回應資料單元,其中當該緩衝記憶體中未存有該回應資料單元時,該記憶體管理電路判斷一對應來自於該主機系統的輪詢指令的一讀取位址是否為該存取單位的倍數,其中當對應該輪詢指令的該讀取位址非為該存取單位的倍數時,該記憶體管理電路傳送一第二資料串給該主機系統以回應該輪詢指令,其中該第二資料串的每個位元皆為零,其中當對應該輪詢指令的該讀取位址為該存取單位的倍數時,該記憶體管理電路判斷該緩衝記憶體中是否儲存有該回應資料單元,其中當該緩衝記憶體中儲存有該回應資料單元時,該記憶體管理電路將儲存於該緩衝記憶體中的該回應資料單元傳送給該主機系統,其中當該緩衝記憶體中未儲存有該回應資料單元時,該記憶體管理電路傳送該第二資料串給該主機系統以回應該輪詢指令。
- 如申請專利範圍第17項所述之記憶體控制器,其中當對應該讀取指令的該邏輯區塊位址不屬於該些特定邏輯區塊位址的其中之一時,該記憶體管理電路根據對應該讀取指令的該起始讀取位址從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一第三資料串並且將對應該讀取指令的該第三資料串傳送給該主機系統。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;一智慧卡晶片;以及一記憶體控制器,耦接至該連接器、該可複寫式非揮發性記憶體模組與該智慧卡晶片,並且具有一緩衝記憶體,其中該記憶體控制器為該可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案,其中當從該智慧卡晶片中接收一回應資料單元時,該記憶體控制器將該回應資料單元儲存在該緩衝記憶體中,其中該記憶體控制器從該主機系統中接收一讀取指令,並且判斷對應該讀取指令的一起始讀取位址是否屬於該些特定邏輯區塊位址的其中之一,其中當對應該讀取指令的該起始讀取位址屬於該些特定邏輯區塊位址的其中之一時,該記憶體控制器會判斷該緩衝記憶體中是否儲存有該回應資料單元,其中當該緩衝記憶體中存有該回應資料單元時,該記憶體控制器將儲存於該緩衝記憶體中的該回應資料單元透過對齊一存取單位傳送給該主機系統。
- 如申請專利範圍第19項所述之記憶體儲存裝置,其中該記憶體控制器會判斷對應該讀取指令的該起始讀取位址是否為該存取單位的倍數,其中當對應該讀取指令的該起始讀取位址不為該存取單位的倍數時,該記憶體控制器先傳送一第一資料串給該主機系統並且之後再傳送該回應資料單元給該主機系統,其中當對應該讀取指令的該起始讀取位址為該存取單位的倍數時,該記憶體控制器先傳送該回應資料單元給該主機系統,其中該第一資料串的一大小是根據公式(1)來設定:S(D)=AAU-MOD(AAU,SRA) (1)其中S(D)為該第一資料串的該大小,AAU為該存取單位,SRA為該讀取指令的該起始讀取位址,MOD(AAU,SRA)為該讀取指令的該起始讀取位址除以該存取單位所獲得的一餘數。
- 如申請專利範圍第20項所述之記憶體儲存裝置,其中該第一資料串為該回應資料單元之中最後一部分的資料。
- 如申請專利範圍第21項所述之記憶體儲存裝置,其中在傳送該回應資料單元給該主機系統之後,該記憶體控制器重複地傳送該回應資料單元或部分的該回應資料單元給該主機系統直到從該主機系統接收到一停止讀取指令為止。
- 如申請專利範圍第19項所述之記憶體儲存裝置,其中當該緩衝記憶體中未存有該回應資料單元時,該記憶體控制器傳送一第二資料串給該主機系統,其中該第二資料串的每個位元皆為零。
- 如申請專利範圍第19項所述之記憶體儲存裝置,其中當對應該讀取指令的該邏輯區塊位址不屬於該些特定邏輯區塊位址的其中之一時,該記憶體控制器根據對應該讀取指令的該起始讀取位址從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一第三資料串並且將對應該讀取指令的該第三資料串傳送給該主機系統。
- 如申請專利範圍第19項所述之記憶體儲存裝置,其中當該緩衝記憶體中未存有該回應資料單元時,該記憶體控制器判斷對應來自於該主機系統的一輪詢指令的一讀取位址是否為該存取單位的倍數,其中當對應該輪詢指令的該讀取位址非為該存取單位的倍數時,該記憶體控制器傳送一第二資料串給該主機系統以回應該輪詢指令,其中該第二資料串的每個位元皆為零,其中當對應該輪詢指令的該讀取位址為該存取單位的倍數時,該記憶體控制器判斷該緩衝記憶體中是否儲存有該回應資料單元,其中當該緩衝記憶體中儲存有該回應資料單元時,該記憶體控制器將儲存於該緩衝記憶體中的該回應資料單元傳送給該主機系統,其中當該緩衝記憶體中未儲存有該回應資料單元時,該記憶體控制器傳送該第二資料串給該主機系統以回應該輪詢指令。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一可複寫式非揮發性記憶體模組;一智慧卡晶片;以及一記憶體控制器,耦接至該連接器、該可複寫式非揮發性記憶體模組與該智慧卡晶片,並且具有一緩衝記憶體,其中該記憶體控制器為該可複寫式非揮發性記憶體模組配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案,其中當從該智慧卡晶片中接收到一回應資料單元時,該記憶體控制器將該回應資料單元儲存在該緩衝記憶體中,其中該記憶體控制器從該主機系統中接收一讀取指令並且判斷對應該讀取指令的一起始讀取位址是否屬於該些特定邏輯區塊位址的其中之一,其中當對應該讀取指令的該起始讀取位址屬於該些特定邏輯區塊位址的其中之一時,該記憶體控制器判斷該緩衝記憶體中是否儲存有該回應資料單元,其中當該緩衝記憶體中未存有該回應資料單元時,該記憶體控制器判斷對應來自於該主機系統的一輪詢指令的一讀取位址是否為該存取單位的倍數,其中當對應該輪詢指令的該讀取位址非為該存取單位的倍數時,該記憶體控制器傳送一第二資料串給該主機系統以回應該輪詢指令,其中該第二資料串的每個位元皆為零,其中當對應該輪詢指令的該讀取位址為該存取單位的倍數時,該記憶體控制器判斷該緩衝記憶體中是否儲存有該回應資料單元,其中當該緩衝記憶體中儲存有該回應資料單元時,該記憶體控制器將儲存於該緩衝記憶體中的該回應資料單元傳送給該主機系統,其中當該緩衝記憶體中未儲存有該回應資料單元時,該記憶體控制器傳送該第二資料串給該主機系統以回應該輪詢指令。
- 如申請專利範圍第26項所述之記憶體儲存裝置,其中當對應該讀取指令的該邏輯區塊位址不屬於該些特定邏輯區塊位址的其中之一時,該記憶體控制器根據對應該讀取指令的該起始讀取位址從該可複寫式非揮發性記憶體模組中讀取對應該讀取指令的一第三資料串並且將對應該讀取指令的該第三資料串傳送給該主機系統。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100123508A TWI430104B (zh) | 2011-07-04 | 2011-07-04 | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 |
US13/224,348 US8595420B2 (en) | 2011-07-04 | 2011-09-02 | Method for dispatching and transmitting data streams between host system and memory storage apparatus having non-volatile memory and smart card chip, memory controller, and memory storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100123508A TWI430104B (zh) | 2011-07-04 | 2011-07-04 | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201303605A true TW201303605A (zh) | 2013-01-16 |
TWI430104B TWI430104B (zh) | 2014-03-11 |
Family
ID=47439363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100123508A TWI430104B (zh) | 2011-07-04 | 2011-07-04 | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8595420B2 (zh) |
TW (1) | TWI430104B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9164676B2 (en) * | 2011-11-30 | 2015-10-20 | International Business Machines Corporation | Storing multi-stream non-linear access patterns in a flash based file-system |
US10373170B2 (en) * | 2012-10-22 | 2019-08-06 | Long Range Systems, Llc | Utilizing user devices in venues |
TWI549137B (zh) * | 2014-09-18 | 2016-09-11 | 宏碁股份有限公司 | 記憶體晶片、其資料讀取方法以及資料儲存系統 |
US10388392B2 (en) * | 2017-04-08 | 2019-08-20 | Texas Instruments Incorporated | Safe execution in place (XIP) from flash memory |
US11061591B2 (en) * | 2018-11-02 | 2021-07-13 | Samsung Electronics Co., Ltd. | Storage device processing stream data, system including the same, and operation method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4071706A (en) * | 1976-09-13 | 1978-01-31 | Rca Corporation | Data packets distribution loop |
US8307131B2 (en) * | 2007-11-12 | 2012-11-06 | Gemalto Sa | System and method for drive resizing and partition size exchange between a flash memory controller and a smart card |
US7963443B2 (en) * | 2007-12-31 | 2011-06-21 | Vivotech, Inc. | Systems, methods, and computer program products for mitigating signal noise at a wireless smart device reader |
US8812756B2 (en) * | 2008-06-13 | 2014-08-19 | Phison Electronics Corp. | Method of dispatching and transmitting data streams, memory controller and storage apparatus |
-
2011
- 2011-07-04 TW TW100123508A patent/TWI430104B/zh active
- 2011-09-02 US US13/224,348 patent/US8595420B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20130013851A1 (en) | 2013-01-10 |
US8595420B2 (en) | 2013-11-26 |
TWI430104B (zh) | 2014-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI472927B (zh) | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 | |
TWI596486B (zh) | 記憶體儲存裝置、記憶體控制器及資料串傳送與識別方法 | |
TWI397821B (zh) | 資料串傳送方法、系統及其控制器 | |
TWI454912B (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
TWI451248B (zh) | 資料保護方法、記憶體控制器與記憶體儲存裝置 | |
US8954705B2 (en) | Memory space management method and memory controller and memory storage device and memory storage using the same | |
US8812756B2 (en) | Method of dispatching and transmitting data streams, memory controller and storage apparatus | |
US8775760B2 (en) | Modifying a host interface setting for a non-volatile memory module | |
US9772937B2 (en) | Data processing method, memory controller and memory storage apparatus | |
TWI430104B (zh) | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 | |
US8266713B2 (en) | Method, system and controller for transmitting and dispatching data stream | |
KR102140297B1 (ko) | 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치 | |
TWI521345B (zh) | 回應讀取方法及資料傳輸系統 | |
TW201908957A (zh) | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI546667B (zh) | 智慧卡管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN102375698B (zh) | 数据串分派与传送方法、存储器控制器与存储器储存装置 | |
US8544424B2 (en) | System, controller and method thereof for transmitting and distributing data stream | |
CN102880423B (zh) | 数据串分派与传送方法、存储器控制器与存储器储存装置 | |
CN103116470A (zh) | 存储器储存装置、存储器控制器及数据串传送与识别方法 | |
US10324894B2 (en) | Storage device management method and system, and memory storage device thereof | |
TW202321924A (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN115238321A (zh) | 签名验证方法、存储器存储装置及存储器控制电路单元 |