TWI472927B - 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 - Google Patents
資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 Download PDFInfo
- Publication number
- TWI472927B TWI472927B TW99126950A TW99126950A TWI472927B TW I472927 B TWI472927 B TW I472927B TW 99126950 A TW99126950 A TW 99126950A TW 99126950 A TW99126950 A TW 99126950A TW I472927 B TWI472927 B TW I472927B
- Authority
- TW
- Taiwan
- Prior art keywords
- read
- logical block
- data
- data string
- memory
- Prior art date
Links
Description
本發明是有關於一種資料串分派與傳送方法,且特別是有關於一種適用於在主機系統和具有非揮發性記憶體與智慧卡晶片的記憶體儲存裝置之間分派與傳送資料串的方法及使用此方法的記憶體控制器與記憶體儲存裝置。
數位相機、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於非揮發性記憶體(例如,快閃記憶體)具有資料非揮發性、省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。
另一方面,隨著使用者逐漸接受使用電子錢包及預付儲值,使得智慧卡的使用日益普及。智慧卡(Smart Card)是具有例如微處理器、卡操作系統、安全模組及記憶體之組件的積體電路晶片(IC晶片),以允許持有者執行預定操作。智慧卡提供計算、加密、雙向通信及安全功能,使得這張卡片除了儲存資料的功能外還能達到對其所儲存的資料加以保護的功能。使用全球行動通信系統(GSM)機制之蜂巢式電話中所使用的用戶識別模組(Subscriber Identification Module,SIM)卡為智慧卡的其中一個應用範例。然而,智慧卡本身受限於儲存容量,因此近年來開始與大量儲存裝置的記憶卡作結合,以擴增智慧卡的儲存容量。
然而,在同時配置非揮發性記憶體模組與智慧卡晶片的記憶卡中,如何區分來自於主機系統的資料串是屬於智慧卡晶片的指令資料單元以及將來自於智慧卡晶片的回應資料單元傳遞給主機系統成為此領域技術人員所欲解決的課題。
本發明提供一種資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置,其能夠有效地傳遞屬於智慧卡晶片的資料單元。
本發明範例實施例提出一種資料串分派與傳送方法,用於具有非揮發性記憶體模組與智慧卡晶片的記憶體儲存裝置。本資料串分派與傳送方法包括為非揮發性記體模組配置多個邏輯區塊位址,其中此些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存特定檔案。本資料串分派與傳送方法也包括從智慧卡晶片中接收回應資料單元,並且在緩衝記憶體中儲存此回應資料單元。本資料串分派與傳送方法還包括從主機系統中接收讀取指令;判斷對應此讀取指令的邏輯區塊位址是否屬於此些特定邏輯區塊位址的其中之一並且判斷上述緩衝記憶體中是否存有此回應資料單元。本資料串分派與傳送方法亦包括當對應此讀取指令的邏輯區塊位址屬於此些特定邏輯區塊位址的其中之一且此緩衝記憶體中存有回應資料單元時,傳送儲存於此緩衝記憶體中的回應資料單元給主機系統。
在本發明之一實施例中,上述之資料串分派與傳送方法更包括:當對應此讀取指令的邏輯區塊位址屬於此些特定邏輯區塊位址的其中之一且上述緩衝記憶體中未存有回應資料單元時,傳送第二資料串給主機系統,其中此第二資料串的每個位元皆為零。
在本發明之一實施例中,上述之資料串分派與傳送方法,更包括當對應此讀取指令的邏輯區塊位址不屬於此些特定邏輯區塊位址的其中之一時,根據對應此讀取指令的邏輯區塊位址從非揮發性記憶體模組中讀取對應此讀取指令的第三資料串並且將對應此讀取指令的第三資料串傳送給主機系統。
在本發明之一實施例中,上述之資料串分派與傳送方法更包括:從主機系統中接收寫入指令與對應此寫入指令的第一資料串;判斷此第一資料串是否含有特定標記;以及當此第一資料串含有特定標記時,則將第一資料串之中的指令資料單元傳送至智慧卡晶片並且清除儲存於緩衝記憶體中的回應資料單元。
在本發明之一實施例中,上述之資料串分派與傳送方法更包括:當此第一資料串不含有特定標記時,則依據對應此寫入指令的邏輯區塊位址將第一資料串寫入至非揮發性記憶體模組中。
本發明範例實施例提出一種資料串分派與傳送方法,用於具有非揮發性記憶體模組與智慧卡晶片的記憶體儲存裝置。本資料串分派與傳送方法包括為此非揮發性記體模組配置多個邏輯區塊位址,其中此些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存特定檔案。本資料串分派與傳送方法也包括從此智慧卡晶片中接收回應資料單元,並且在緩衝記憶體中儲存此回應資料單元。本資料串分派與傳送方法還包括從主機系統中接收讀取指令;判斷對應此讀取指令的邏輯區塊位址是否屬於此些特定邏輯區塊位址的其中之一並且判斷此緩衝記憶體中是否儲存有回應資料單元。本資料串分派與傳送方法亦包括當對應此讀取指令的邏輯區塊位址屬於此些特定邏輯區塊位址的其中之一且此緩衝記憶體中存有回應資料單元時,判斷對應此讀取指令的邏輯區塊位址是否對應存取位址單位。本資料串分派與傳送方法更包括當對應此讀取指令的邏輯區塊位址對應存取位址單位時,傳送儲存於此緩衝記憶體中的回應資料單元的至少一部分給主機系統。
在本發明之一實施例中,上述之資料串分派與傳送方法更包括:當對應此讀取指令的邏輯區塊位址未對應存取位址單位時,傳送儲存於緩衝記憶體中的回應資料單元的其中一部分給主機系統。
在本發明之一實施例中,上述之資料串分派與傳送方法更包括:當對應此讀取指令的邏輯區塊位址屬於此些特定邏輯區塊位址的其中之一且此緩衝記憶體中未存有回應資料單元時,傳送第二資料串給主機系統。
在本發明之一實施例中,上述之資料串分派與傳送方法更包括:當對應此讀取指令的邏輯區塊位址不屬於此些特定邏輯區塊位址的其中之一時,根據對應此讀取指令的邏輯區塊位址從非揮發性記憶體模組中讀取對應此讀取指令的第三資料串並且將對應此讀取指令的第三資料串傳送給主機系統。
本發明範例實施例提出一種記憶體控制器,其包括記憶體介面、記憶體管理電路、主機介面與緩衝記憶體。記憶體介面耦接至記憶體管理電路,並且用以耦接至上述非揮發性記憶體模組。主機介面耦接至記憶體管理電路並且用以耦接至主機系統。緩衝記憶體耦接至記憶體管理電路,並且用以暫存資料。記憶體管理電路單元用以執行上述之資料串分派與傳送方法。
本發明範例實施例提出一種記憶體儲存裝置,其包括連接器、上述非揮發性記憶體模組與耦接至此非揮發性記憶體模組的記憶體控制器。在此,此記憶體控制器用以執行上述之資料串分派與傳送方法。
基於上述,本發明範例實施例的資料串分派與傳送方法、記憶體控制器與記憶體儲存系統能夠正確地傳遞智慧卡晶片的指令資料單元與回應資料單元。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖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中進行資料的寫入、讀取與抹除等運作。
非揮發性記憶體模組106是耦接至記憶體控制器104,並且用以儲存主機系統1000所寫入之資料。非揮發性記憶體模組106包括多個實體區塊。各實體區塊分別具有複數個實體頁面,其中屬於同一個實體區塊之實體頁面可被獨立地寫入且被同時地抹除。更詳細來說,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。實體頁面為程式化的最小單元。即,實體頁面為寫入資料的最小單元。然而,必須瞭解的是,在本發明另一範例實施例中,寫入資料的最小單位亦可以是扇區(Sector)或其他大小。
在本發明第一範例實施例的記憶體管理方法中,記憶體控制器104會將非揮發性記憶體模組106的實體區塊邏輯地分組為資料區、備用區、系統區與取代區,其中被分組為資料區與備用區的實體區塊會輪替地來儲存主機系統1000所寫入之資料,系統區的實體區塊是用以儲存記憶體儲存裝置100的系統資料,而取代區的實體區塊是用以取代資料區與備用區中的壞實體區塊。此外,為了使主機系統1000能夠方便地對以輪替方式儲存資料的實體區塊進行存取,記憶體控制器104會配置邏輯區塊位址LBA(0)~LBA(N)來映射此些實體區塊,由此主機系統1000能夠直接地依據邏輯區塊位址來進行資料的寫入與讀取。
在本範例實施例中,非揮發性記憶體模組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運作時,此些控制指令會被執行以根據第一範例實施例的資料串分派與傳送方法以及記憶體管理方法來管理非揮發性記憶體模組106。
在本範例實施例中,記憶體管理電路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(0)~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。在本範例實施例中,記憶體控制器104與應用程式1120皆會根據存取位址單位來傳遞智慧卡晶片的指令資料單元。例如,在本範例實施例中,此存取位址單位為8千位元組(kilobyte,KB),並且第二資料串會被設定為資料量為8KB且每一個
位元皆為0的資料串。特別是,當接收到第二資料串時,應用程式1120會識別R-APDU未被成功接收並且藉由不斷地輪詢(polling)來嘗試從記憶體儲存裝置100中接收R-APDU。
在接收到智慧卡晶片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(0)開始讀取資料量為8KB的資料時,主機系統1000的作業系統1110會從記憶體儲存裝置100的邏輯區塊位址LBA(0)開始讀取資料量為64KB的資料並儲存此資料於快取記憶體1106中。基此,當下一個讀取指令所欲讀取之資料已儲存於快取記憶體1106中時,主機系統1000的作業系統1110將能夠直接地從快取記憶體1106中讀取此資料,由此提升存取速度。
值得一提的是,為了避免主機系統1000的作業系統1110直接地從快取記憶體1106中提供此資料給應用程式1120而影響智慧卡晶片108之R-APDU的傳遞,在本範例實施例中,檔案RF的大小會被設計大於快取記憶體1106的大小。基此,當應用程式1120每次讀取檔案RF時,作業系統1110皆必須重新至記憶體儲存裝置100中讀取資料。
圖5是根據本發明第一範例實施例所繪示之預讀取的資料流示意圖,其繪示在作業系統1110下達讀取指令時記憶體控制器104尚未從智慧卡晶片108中取得R-APDU的範例。
請參照圖5,應用程式1120會傳送指示從特定邏輯區塊位址LBA(0)開始讀取資料量為8KB的資料之讀取請求RR1給作業系統1110(資料流S501)。
假設快取記憶體1106未存有對應特定邏輯區塊位址LBA(0)的資料,因此作業系統1110會以預讀取方式傳送從特定邏輯區塊位址開始讀取資料量為64KB的資料之讀取指令RC給記憶體控制器104(資料流S503)。
由於此時記憶體控制器104尚未從智慧卡晶片108中取得R-APDU,因此記憶體控制器104會將第二資料串DS2傳送給主機系統1000(資料流S505)。值得一提的是,由於第二資料串DS2的大小為8KB,因此為回應從特定邏輯區塊位址LBA(0)開始讀取資料量為64KB的資料之讀取指令RC,記憶體控制器104會在第二資料串DS2之後填入資料量為56KB的整墊位元PB,然後再將包含第二資料串DS2與整墊位元PB的資料串傳送給主機系統1000。基此,包含第二資料串DS2與整墊位元PB的資料串會被儲存在快取記憶體1106中。
之後,作業系統1110會將快取記憶體1106中前面8KB的資料(即,第二資料串DS2)傳送給應用程式1120(資料流S507)。
圖6是根據本發明第一範例實施例所繪示之預讀取的資料流示意圖,其繪示在作業系統1110下達讀取指令時記憶體控制器104已從智慧卡晶片108中取得R-APDU的範例。
請參照圖6,在資料流S601中智慧卡晶片108將R-APDU傳送給記憶體控制器104。
在資料流S603中應用程式1120傳送指示從特定邏輯區塊位址LBA(0)開始讀取資料量為8KB的資料之讀取請求RR1給作業系統1110。
假設快取記憶體1106未存有對應特定邏輯區塊位址LBA(0)的資料,因此作業系統1110會以預讀取方式傳送從特定邏輯區塊位址開始讀取資料量為64KB的資料之讀取指令RC給記憶體控制器104(資料流S605)。
由於此時記憶體控制器104已從智慧卡晶片108中取得R-APDU,因此記憶體控制器104會將R-APDU傳送給主機系統1000(資料流S607)。值得一提的是,由於R-APDU的大小為8KB,因此為回應從特定邏輯區塊位址LBA(0)開始讀取資料量為64KB的資料之讀取指令RC,記憶體控制器104會在R-APDU之後填入資料量為56KB的整墊位元PB,然後再將包含R-APDU與整墊位元PB的資料串傳送給主機系統1000。基此,包含R-APDU與整墊位元PB的資料串會被儲存在快取記憶體1106中。
之後,作業系統1110會將快取記憶體1106中前面8KB的資料(即,R-APDU)傳送給應用程式1120(資料流S609)。
值得一提的是,儘管作業系統1110大部分是以一個讀取指令來讀取預讀取的資料。然而,在本發明範例實施例中,主機系統1000的作業系統1110有時會以多個讀取指令來執行預讀取運作。例如,當主機系統1000的應用程式1120從記憶體儲存裝置100的邏輯區塊位址LBA(0)開始讀取資料量為8KB的資料時,主機系統1000的作業系統1110會以兩個讀取指令來讀取資料量為64KB的資料。例如,作業系統1110會先下達一個讀取指令從記憶體儲存裝置100的邏輯區塊位址LBA(0)開始讀取資料量為0.5KB的資料,然後再下達另一個讀取指令來讀取接續之63.5KB的資料。
圖7是根據本發明第一範例實施例所繪示之預讀取的資料流示意圖,其繪示記憶體控制器104於作業系統1110以預讀取方式運作讀取資料期間從智慧卡晶片108中接收到R-APDU的範例。
請參照圖7,在資料流S701中應用程式1120傳送指示從特定邏輯區塊位址LBA(0)開始讀取資料量為8KB的資料之讀取請求RR1給作業系統1110。
假設快取記憶體1106未存有對應特定邏輯區塊位址LBA(0)的資料,因此作業系統1110會以預讀取方式傳送從特定邏輯區塊位址開始讀取資料量為64KB的資料之讀取指令給記憶體控制器104,其中在資料流S703中作業系統1110會先以讀取指令RC1讀取前面0.5KB的資料。
由於此時記憶體控制器104尚未從智慧卡晶片108中取得R-APDU,因此記憶體控制器104會將第二資料串DS2傳送給主機系統1000(資料流S705)。值得一提的是,由於第二資料串的大小為8KB,因此為回應從特定邏輯區塊位址LBA(0)開始讀取資料量為0.5KB的資料之讀取指令RC1,記憶體控制器104會僅傳送第二資料串DS2之中前面0.5KB的資料給主機系統1000。
在資料流S707中記憶體控制器104從智慧卡晶片108中接收到R-APDU。
之後,在資料流S709中作業系統1110會再以讀取指令RC2讀取後續之63.5KB的資料。
由於此時記憶體控制器104已從智慧卡晶片108中取得R-APDU,因此記憶體控制器104會將R-APDU傳送給主機系統1000(資料流S711)。值得一提的是,由於R-APDU的大小為8KB,因此為回應從特定邏輯區塊位址LBA(0)開始讀取資料量為63.5KB的資料之讀取指令RC2,記憶體控制器104會在R-APDU之後填入資料量為55.5KB的整墊位元PB,然後再將包含R-APDU與整墊位元PB的資料串傳送給主機系統1000。基此,包含部分第二資料串、R-APDU與整墊位元PB的資料串會被儲存在快取記憶體1106中。
之後,作業系統1110會將快取記憶體1106中前面8KB的資料傳送給應用程式1120(資料流S713)。
值得一提的是,由於快取記憶體1106中前面8KB的資料之中前面0.5KB的資料為部分之第二資料串DS2並且後續7.5KB的資料為部分之R-APDU,因此應用程式1120將接收到不完整之R-APDU。特別是,依據圖4所示,在記憶體控制器104的記憶體管理電路202傳送R-APDU給主機系統1000之後,狀態機的狀態會變為閒置狀態,由此表示已完成傳遞應用程式1120所傳送之C-APDU及智慧卡晶片108所回應之R-APDU。然而,此時應用程式1120會藉由錯誤偵測技術而識別所接收之R-APDU不完整而再次發送讀取R-APDU的請求。
為了處理上述之錯誤傳遞,在本發明範例實施例中,在將所儲存之R-APDU傳送給主機系統1000之後,記憶體管理電路202不會立即地清除儲存在緩衝記憶體208中的R-APDU。例如,記憶體管理電路202會在接收到下一個C-APDU時,才將所儲存之R-APDU清除。此外,在閒置狀態401期間,當記憶體儲存裝置100從主機系統1000中接收到對應特定邏輯區塊位址的讀取指令時,記憶體管理電路202會再次將儲存在緩衝記憶體208中的R-APDU傳送給主機系統1000。
請再參照圖7,在資料流S715中應用程式1120會再次傳送指示從特定邏輯區塊位址LBA(0)開始讀取資料量為8KB的資料之讀取請求RR2給作業系統1100。在資料流S717中作業系統1110會以讀取指令RC3來讀取資料量為64KB的資料。
由於R-APDU已儲存於記憶體控制器104的緩衝記憶體208中,因此記憶體控制器104會將R-APDU與資料量為56KB的整墊位元PB傳送給主機系統1000(資料流S719)。
之後,作業系統1110會將快取記憶體1106中前面8KB的資料傳送給應用程式1120(資料流S721)。基此,當作業系統1000後續再以一個讀取指令來執行預讀取運作時,應用程式1120就可取得正確的R-APDU。
圖8是根據本發明第一範例實施例所繪示的資料串分派與傳送方法的流程圖,其繪示接收到寫入指令的處理步驟。
請參照圖8,在步驟S801中,記憶體控制器104的記憶體管理電路202會從主機系統1000中接收寫入指令與對應此寫入指令的第一資料串。
在步驟S803中,記憶體管理電路202會判斷對應此寫入指令的邏輯區塊位址是否屬於特定邏輯區塊位址。
倘若對應此寫入指令的邏輯區塊位址不屬於特定邏輯區塊位址時,則在步驟S805中記憶體管理電路202會依據此寫入指令將第一資料串寫入至非發性記憶體模組106中。倘若對應此寫入指令的邏輯區塊位址屬於特定邏輯區塊位址時,則在步驟S807中記憶體管理電路202會判斷第一資料串是否包含特定標記。
倘若第一資料串包含特定標記時,則在步驟S809中記憶體管理電路202會將第一資料串中的C-APDU(即,第一資料串中不包含特定標記的部分)傳送給智慧卡晶片108,並且在步驟S811中記憶體管理電路202會清除儲存於緩衝記憶體208中的R-APDU。特別是,此時,狀態機會從閒置狀態401變為處理狀態403。倘若在步驟S807中判斷第一資料串未包含特定標記時,則圖8的流程會被結束。
圖9是根據本發明第一範例實施例所繪示的資料串分派與傳送方法的流程圖,其繪示接收到讀取指令的處理步驟。
請參照圖9,在步驟S901中,記憶體控制器104的記憶體管理電路202會從主機系統1000中接收讀取指令。
在步驟S903中,記憶體管理電路202會判斷對應此讀取指令的邏輯區塊位址是否屬於特定邏輯區塊位址。
倘若對應此讀取指令的邏輯區塊位址不屬於特定邏輯區塊位址時,則在步驟S905中記憶體管理電路202會依據此讀取指令從非發性記憶體模組106中讀取資料(以下稱為第三資料串)並且將第三資料串傳送給主機系統1000。倘若對應此讀取指令的邏輯區塊位址屬於特定邏輯區塊位址時,則在步驟S907中記憶體管理電路202會判斷狀態機是否處於資料可用狀態405或閒置狀態401。
倘若狀態機非處於資料可用狀態405或閒置狀態401時,在步驟S909中記憶體管理電路202會將第二資料串傳送給主機系統1000。
倘若狀態機處於資料可用狀態405或閒置狀態401時,在步驟S911中記憶體管理電路202會判斷在緩衝記憶體208中是否存有R-APDU。
倘若在緩衝記憶體208中未存有R-APDU時,步驟S909會被執行。倘若在緩衝記憶體208中存有R-APDU時,則在步驟S913中記憶體管理電路202會將R-APDU傳送給主機系統1000。傳送第二資料串與R-APDU的方式已配合圖5、6與7描述如上,在此不重複描述。
本發明第二範例實施例的記憶體儲存裝置與主機系統本質上是相同於第一範例實施例的記憶體儲存裝置與主機系統,其中差異在於第二範例實施例的記憶體控制器使用不同的方法來分派與傳送智慧卡晶片的R-APDU。以下將使用圖1~圖3的裝置結構來描述第二範例實施例。
在第二範例實施例中,當來自於主機系統1000之讀取指令所對應的邏輯區塊位址屬於特定邏輯區塊位址時,記憶體控制器104會判斷此讀取指令所對應的邏輯區塊位址是否為上述存取位址單位的倍數。並且,當來自於主機系統1000之讀取指令所對應的邏輯區塊位址非為存取位址單位的倍數時,記憶體控制器104會識別主機系統1000是以多個讀取指令來執行預讀取。基此,記憶體控制器104會將R-APDU分段來傳送給主機系統1000。
圖10是根據本發明第二範例實施例所繪示之預讀取的資料流示意圖,其繪示在作業系統1110下達讀取指令時記憶體控制器104已從智慧卡晶片108中取得R-APDU的範例。
請參照圖10,在資料流S1001中智慧卡晶片108將R-APDU傳送給記憶體控制器104。
在資料流S1003中應用程式1120傳送指示從特定邏輯區塊位址LBA(0)開始讀取資料量為8KB的資料之讀取請求RR1給作業系統1110。
假設快取記憶體1106未存有對應特定邏輯區塊位址LBA(0)的資料,因此作業系統1110會以預讀取方式傳送從特定邏輯區塊位址開始讀取資料量為64KB的資料之讀取指令給記憶體控制器104,其中在資料流S1005中作業系統1110會先以讀取指令RC1讀取前面0.5KB的資料。
由於此時R-APDU已儲存於緩衝記憶體208中,因此記憶體控制器104會將R-APDU之中前面0.5KB的資料傳送給主機系統1000(資料流S1007)。
之後,在資料流S1009中作業系統1110會再以讀取指令RC2讀取後續之63.5KB的資料。
此時記憶體控制器104會識別讀取指令RC2的邏輯區塊位址非為存取位址單位的倍數,基此,記憶體控制器104會將R-APDU之中後續7.5KB的資料傳送給主機系統1000(資料流S1011)。類似地,記憶體控制器104會在R-APDU之後填入資料量為56KB的整墊位元PB,以回應讀取63.5KB的讀取指令RC2。
之後,作業系統1110會將快取記憶體1106中前面8KB的資料(即,R-APDU)傳送給應用程式1120(資料流S1013)。
基此,在第二範例實施例中,記憶體控制器104能夠根據讀取指令所對應的邏輯區塊位址將快取記憶體1106之中對應R-APDU的部分傳送給主機系統1000,由此防止當作業系統1110使用多個讀取指令來執行預讀取運作時而使應用程式1120無法接收到正確之R-APDU的問題。
圖11是根據本發明第二範例實施例所繪示的資料串分派與傳送方法的流程圖,其繪示接收到讀取指令的處理步驟。
請參照圖11,在步驟S1101中,記憶體控制器104的記憶體管理電路202會從主機系統1000中接收讀取指令。
在步驟S1103中,記憶體管理電路202會判斷對應此讀取指令的邏輯區塊位址是否屬於特定邏輯區塊位址。
倘若對應此讀取指令的邏輯區塊位址不屬於特定邏輯區塊位址時,則在步驟S1105中記憶體管理電路202會依據此讀取指令從非發性記憶體模組106中讀取資料(以下稱為第三資料串)並且將第三資料串傳送給主機系統1000。倘若對應此讀取指令的邏輯區塊位址屬於特定邏輯區塊位址時,則在步驟S1107中記憶體管理電路202會判斷在緩衝記憶體208中是否存有R-APDU。
倘若在緩衝記憶體208中未存有R-APDU時,在步驟S1109中記憶體管理電路202會將第二資料串傳送給主機系統1000。倘若緩衝記憶體208中存有R-APDU時,在步驟S1111中記憶體管理電路202會判斷對應此讀取指令的邏輯區塊位址是否對應存取位址單位(即,對應此讀取指令的邏輯區塊位址是否為存取位址單位的倍數)。
倘若對應此讀取指令的邏輯區塊位址對應存取位址單位時,在步驟S1113中記憶體管理電路202會依據對應讀取指令的資料讀取量將至少部分的R-APDU傳送給主機系統1000並且記錄已傳送的部分。
倘若對應此讀取指令的邏輯區塊位址未對應存取位址單位時,在步驟S1115中記憶體管理電路202會依據前次已傳送之部分以及對應此讀取指令的資料讀取量接續地將其他部分的R-APDU傳送給主機系統1000並且記錄所傳送之部分。值得一提的是,在第二範例實施例中,在完整的R-APDU都已傳送給主機系統1000後,狀態機的狀態才會從資料可用狀態變為閒置狀態。
綜上所述,本發明範例實施例的資料串分派與傳送方法是將智慧卡晶片的回應資料單元儲存於緩衝記憶體中。此外,在狀態機處於閒置狀態下接收到讀取回應資料單元的指令時,本發明範例實施例的資料串分派與傳送方法將儲存於緩衝記憶體中的回應資料單元來傳遞給主機系統,由此允許主機系統重複的讀取回應資料單元。此外,本發明範例實施例的資料串分派與傳送方法會根據讀取回應資料單元之讀取指令的邏輯區塊位址來識別主機系統的分段讀取行為,由此將回應資料單元之中對應的部分傳送給主機系統。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
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...資料流
S801、S803、S805、S807、S809、S811、S901、S903、S905、S907、S909、S911、S913...資料串分派與傳送的步驟
S1001、S1003、S1005、S1007、S1009、S1011、S1013...資料流
S1101、S1103、S1105、S1107、S1109、S1111、S1113、S1115...資料串分派與傳送的步驟
圖1是根據本發明第一範例實施例繪示的主機系統與記憶體儲存裝置的概要方塊圖。
圖2是根據本發明第一範例實施例所繪示的記憶體控制器的概要方塊圖。
圖3是根據本發明第一範例實施例所繪示之應用程式的存取示意圖。
圖4是根據本發明第一範例實施例所繪示的狀態機的示意圖。
圖5是根據本發明第一範例實施例所繪示之預讀取的資料流示意圖。
圖6是根據本發明第一範例實施例所繪示之預讀取的資料流示意圖。
圖7是根據本發明第一範例實施例所繪示之預讀取的資料流示意圖。
圖8是根據本發明第一範例實施例所繪示之資料串分派與傳送方法之中對應寫入指令的流程圖。
圖9是根據本發明第一範例實施例所繪示之資料串分派與傳送方法之中對應讀取指令的流程圖。
圖10是根據本發明第二範例實施例所繪示之預讀取的資料流示意圖。
圖11是根據本發明第二範例實施例所繪示的資料串分派與傳送方法的流程圖。
S901、S903、S905、S907、S909、S911、S913...資料串分派與傳送的步驟
Claims (16)
- 一種資料串分派與傳送方法,用於具有一非揮發性記憶體模組與一智慧卡晶片的一記憶體儲存裝置,該資料串分派與傳送方法包括:為該非揮發性記憶體模組配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案;從該智慧卡晶片中接收一回應資料單元,並且在一緩衝記憶體中儲存該回應資料單元,其中該回應資料單元為一回應-應用程式協定資料單元;從一主機系統中接收一讀取指令,其中該讀取指令指示一讀取邏輯區塊位址;判斷該讀取指令所指示的該讀取邏輯區塊位址是否屬於該些特定邏輯區塊位址的其中之一並且判斷該緩衝記憶體中是否存有該回應資料單元;當該讀取指令所指示的該讀取邏輯區塊位址屬於該些特定邏輯區塊位址的其中之一且該緩衝記憶體中存有該回應資料單元時,在儲存於該緩衝記憶體中的該回應資料單元之後接續加入多個整墊位元資料,並且傳送儲存於該緩衝記憶體中的該回應資料單元與該些整墊位元資料給該主機系統以回應該讀取指令;當該讀取指令所指示的該讀取邏輯區塊位址屬於該些特定邏輯區塊位址的其中之一且該緩衝記憶體中未存有該回應資料單元時,在非該讀取指令所請求的一第二資料 串之後接續加入該些整墊位元資料,並且傳送該第二資料串與該些整墊位元資料給該主機系統以回應該讀取指令,其中該些整墊位元資料的位元長度大於該回應資料單元的位元長度並且大於該第二資料串的位元長度;從該主機系統中接收一寫入指令與對應該寫入指令的一第一資料串;判斷該第一資料串是否含有一特定標記;以及當該第一資料串含有該特定標記,則將該第一資料串之中的一指令資料單元傳送至該智慧卡晶片並且清除儲存於該緩衝記憶體中的該回應資料單元以回應該寫入指令。
- 如申請專利範圍第1項所述之資料串分派與傳送方法,其中該第二資料串的每個位元皆為零。
- 如申請專利範圍第1項所述之資料串分派與傳送方法,更包括:當該讀取指令所指示的該讀取邏輯區塊位址不屬於該些特定邏輯區塊位址的其中之一時,根據該讀取指令所指示的該讀取邏輯區塊位址從該非揮發性記憶體模組中讀取對應該讀取指令的一第三資料串並且將對應該讀取指令的該第三資料串傳送給該主機系統。
- 如申請專利範圍第1項所述之資料串分派與傳送方法,更包括:當該第一資料串不含有該特定標記時,則依據該寫入指令指示的一寫入邏輯區塊位址將該第一資料串寫入至該非揮發性記憶體模組中。
- 一種資料串分派與傳送方法,用於具有一非揮發性記憶體模組與一智慧卡晶片的一記憶體儲存裝置,該資料串分派與傳送方法包括:為該非揮發性記憶體模組配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案;從該智慧卡晶片中接收一回應資料單元,並且在一緩衝記憶體中儲存該回應資料單元,其中該回應資料單元為一回應-應用程式協定資料單元;從一主機系統中接收一讀取指令,其中該讀取指令指示一讀取邏輯區塊位址;判斷該讀取指令所指示的該讀取邏輯區塊位址是否屬於該些特定邏輯區塊位址的其中之一並且判斷該緩衝記憶體中是否儲存有該回應資料單元;當該讀取指令所指示的該讀取邏輯區塊位址屬於該些特定邏輯區塊位址的其中之一且該緩衝記憶體中存有該回應資料單元時,判斷該讀取指令所指示的該讀取邏輯區塊位址是否對應一存取位址單位;當該讀取指令所指示的該讀取邏輯區塊位址對應該存取位址單位時,在儲存於該緩衝記憶體中的該回應資料單元之後接續加入多個整墊位元資料,並且傳送儲存於該緩衝記憶體中的該回應資料單元的至少一部分與該些整墊位元資料給該主機系統以回應該讀取指令;當該讀取指令所指示的該讀取邏輯區塊位址屬於該 些特定邏輯區塊位址的其中之一且該緩衝記憶體中未存有該回應資料單元時,在非該讀取指令所請求的一第二資料串之後接續加入該些整墊位元資料,並且傳送該第二資料串與該些整墊位元資料給該主機系統以回應該讀取指令,其中該些整墊位元資料的位元長度大於該回應資料單元的位元長度並且大於該第二資料串的位元長度;從該主機系統中接收一寫入指令與對應該寫入指令的一第一資料串;判斷該第一資料串是否含有一特定標記;以及倘若該資料串含有該特定標記,則將該第一資料串之中的一指令資料單元傳送至該智慧卡晶片並且清除儲存於該緩衝記憶體中的該回應資料單元。
- 如申請專利範圍第6項所述之資料串分派與傳送方法,更包括:當該讀取指令所指示的該讀取邏輯區塊位址未對應該存取位址單位時,傳送接續在該緩衝記憶體中的該回應資料單元其中該至少一部份的該回應資料單元的一對應片段給該主機系統。
- 如申請專利範圍第5項所述之資料串分派與傳送方法,更包括:其中該第二資料串的每個位元皆為零。
- 如申請專利範圍第5項所述之資料串分派與傳送方法,更包括:當該讀取指令所指示的該讀取邏輯區塊位址不屬於 該些特定邏輯區塊位址的其中之一時,根據該讀取指令所指示的該讀取邏輯區塊位址從該非揮發性記憶體模組中讀取對應該讀取指令的一第三資料串並且將對應該讀取指令的該第三資料串傳送給該主機系統。
- 如申請專利範圍第5項所述之資料串分派與傳送方法,更包括:當該第一資料串不含有該特定標記時,則依據對應該寫入指令指示的一寫入邏輯區塊位址將該第一資料串寫入至該非揮發性記憶體模組中。
- 一種記憶體控制器,用於配置在具有一非揮發性記憶體模組與一智慧卡晶片的一記憶體儲存裝置中,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該非揮發性記憶體模組;一緩衝記憶體;以及一記憶體管理電路,耦接該緩衝記憶體、該主機介面與該記憶體介面,其中該記憶體管理電路用以執行至少下列程序:配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案;從該智慧卡晶片中接收一回應資料單元,並且在該緩衝記憶體中儲存該回應資料單元,其中該回應資料單元為一回應-應用程式協定資料單元; 從該主機系統接收一讀取指令,其中該讀取指令指示一讀取邏輯區塊位址;判斷該讀取指令所指示的該讀取邏輯區塊位址是否屬於該些特定邏輯區塊位址的其中之一並且判斷該緩衝記憶體中是否存有該回應資料單元;當該讀取指令所指示的該讀取邏輯區塊位址屬於該些特定邏輯區塊位址的其中之一且該緩衝記憶體中存有該回應資料單元時,在儲存於該緩衝記憶體中的該回應資料單元之後接續加入多個整墊位元資料,並且傳送儲存於該緩衝記憶體中的該回應資料單元與該些整墊位元資料給該主機系統以回應該讀取指令;當該讀取指令所指示的該讀取邏輯區塊位址屬於該些特定邏輯區塊位址的其中之一且該緩衝記憶體中未存有該回應資料單元時,在不被該讀取指令所請求的一第二資料串之後接續加入該些整墊位元資料,並且傳送該第二資料串與該些整墊位元資料給該主機系統以回應該讀取指令,其中該些整墊位元資料的位元長度大於該回應資料單元的位元長度並且大於該第二資料串的位元長度;從該主機系統中接收一寫入指令與對應該寫入指令的一第一資料串;判斷該第一資料串是否含有一特定標記;以及當該第一資料串含有該特定標記,則將該第一資 料串之中的一指令資料單元傳送至該智慧卡晶片並且清除儲存於該緩衝記憶體中的該回應資料單元以回應該寫入指令。
- 一種記憶體控制器,用於配置在具有一非揮發性記憶體模組與一智慧卡晶片的一記憶體儲存裝置中,該記憶體控制器包括:一主機介面,用以耦接至一主機系統;一記憶體介面,用以耦接至該非揮發性記憶體模組;一緩衝記憶體;以及一記憶體管理電路,耦接該緩衝記憶體、該主機介面與該記憶體介面,其中該記憶體管理電路用以執行至少下列程序:配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案;從該智慧卡晶片中接收一回應資料單元,並且在該緩衝記憶體中儲存該回應資料單元,其中該回應資料單元為一回應-應用程式協定資料單元;從該主機系統接收一讀取指令,其中該讀取指令指示一讀取邏輯區塊位址;判斷該讀取指令所指示的該讀取邏輯區塊位址是否屬於該些特定邏輯區塊位址的其中之一並且判斷該緩衝記憶體中是否存有該回應資料單元;當該讀取指令所指示的該讀取邏輯區塊位址屬 於該些特定邏輯區塊位址的其中之一且該緩衝記憶體中存有該回應資料單元時,判斷該讀取指令所指示的該讀取邏輯區塊位址是否對應一存取位址單位;當該讀取指令所指示的該讀取邏輯區塊位址對應該存取位址單位時,在儲存於該緩衝記憶體中的該回應資料單元的至少一部分之後接續加入多個整墊位元資料,並且傳送儲存於該緩衝記憶體中的至少一部分的該回應資料單元與該些整墊位元資料給該主機系統以回應該讀取指令;以及當該讀取指令所指示的該讀取邏輯區塊位址屬於該些特定邏輯區塊位址的其中之一且該緩衝記憶體中未存有該回應資料單元時,在不被該讀取指令所請求的一第二資料串之後接續加入該些整墊位元資料,並且傳送該第二資料串與該些整墊位元資料給該主機系統以回應該讀取指令,其中該些整墊位元資料的位元長度大於該回應資料單元的位元長度並且大於該第二資料串的位元長度;從該主機系統中接收一寫入指令與對應該寫入指令的一第一資料串;判斷該第一資料串是否含有一特定標記;以及當該第一資料串含有該特定標記,則將該第一資料串之中的一指令資料單元傳送至該智慧卡晶片並且清除儲存於該緩衝記憶體中的該回應資料單元以回應該寫入指令。
- 如申請專利範圍第11項所述之記憶體控制器,其中當該讀取指令所指示的該讀取邏輯區塊位址未對應該存取位址單位時,該記憶體管理電路更用以傳送儲存於該緩衝記憶體中的該回應資料單元其中該至少一部份的該回應資料單元的一對應片段給該主機系統。
- 如申請專利範圍第11項所述之記憶體控制器,其中該第二資料串的每個位元皆為零。
- 如申請專利範圍第11項所述之記憶體控制器,其中當該讀取指令所指示的該讀取邏輯區塊位址不屬於該些特定邏輯區塊位址的其中之一時,該記憶體管理電路更用以根據該讀取指令所指示的該讀取邏輯區塊位址從該非揮發性記憶體模組中讀取對應該讀取指令的一第三資料串並且將對應該讀取指令的該第三資料串傳送給該主機系統。
- 如申請專利範圍第11項所述之記憶體控制器,其中當該第一資料串不含有該特定標記時,該記憶體管理電路更用以依據該寫入指令指示的一寫入邏輯區塊位址將該第一資料串寫入至該非揮發性記憶體模組中。
- 一種記憶體儲存裝置,包括:一連接器,用以耦接至一主機系統;一非揮發性記憶體模組;一智慧卡晶片;以及一記憶體控制器,耦接至該連接器、該非揮發性記憶體模組與該智慧卡晶片,並且具有一緩衝記憶體,其中該記憶體控制器用以執行至少下列程序: 為該非揮發性記體模組配置多個邏輯區塊位址,其中該些邏輯區塊位址之中的多個特定邏輯區塊位址被用以儲存一特定檔案;從該智慧卡晶片中接收一回應資料單元,並且在該緩衝記憶體中儲存該回應資料單元,其中該回應資料單元為一回應-應用程式協定資料單元;從該主機系統中接收一讀取指令,其中該讀取指令指示一讀取邏輯區塊位址;判斷該讀取指令所指示的該讀取邏輯區塊位址是否屬於該些特定邏輯區塊位址的其中之一並且判斷該緩衝記憶體中是否存有該回應資料單元;以及當該讀取指令所指示的該讀取邏輯區塊位址屬於該些特定邏輯區塊位址的其中之一且該緩衝記憶體中存有該回應資料單元時,在儲存於該緩衝記憶體中的該回應資料單元之後接續加入多個整墊位元資料,並且傳送儲存於該緩衝記憶體中的該回應資料單元與該些整墊位元資料給該主機系統以回應該讀取指令;當該讀取指令所指示的該讀取邏輯區塊位址屬於該些特定邏輯區塊位址的其中之一且該緩衝記憶體中未存有該回應資料單元時,在非該讀取指令所請求的一第二資料串之後接續加入該些整墊位元資料,並且傳送該第二資料串與該些整墊位元資料給該主機系統以回應該讀取指令,其中該些整墊位元資料 的位元長度大於該回應資料單元的位元長度並且大於該第二資料串的位元長度;從該主機系統中接收一寫入指令與對應該寫入指令的一第一資料串;判斷該第一資料串是否含有一特定標記;以及當該第一資料串含有該特定標記,則將該第一資料串之中的一指令資料單元傳送至該智慧卡晶片並且清除儲存於該緩衝記憶體中的該回應資料單元以回應該寫入指令。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99126950A TWI472927B (zh) | 2010-08-12 | 2010-08-12 | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 |
US12/895,872 US8812756B2 (en) | 2008-06-13 | 2010-10-01 | Method of dispatching and transmitting data streams, memory controller and storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99126950A TWI472927B (zh) | 2010-08-12 | 2010-08-12 | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201207621A TW201207621A (en) | 2012-02-16 |
TWI472927B true TWI472927B (zh) | 2015-02-11 |
Family
ID=46762244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW99126950A TWI472927B (zh) | 2008-06-13 | 2010-08-12 | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI472927B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI585770B (zh) * | 2015-08-11 | 2017-06-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
TWI596612B (zh) * | 2015-12-04 | 2017-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI459202B (zh) * | 2012-12-05 | 2014-11-01 | Phison Electronics Corp | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
TWI506642B (zh) * | 2012-12-07 | 2015-11-01 | Phison Electronics Corp | 記憶體修復方法、記憶體控制器與記憶體儲存裝置 |
TWI508099B (zh) | 2013-01-28 | 2015-11-11 | Phison Electronics Corp | 工作時脈切換方法、記憶體控制器與記憶體儲存裝置 |
TWI521513B (zh) | 2013-06-28 | 2016-02-11 | 群聯電子股份有限公司 | 讀取電壓設定方法、控制電路與記憶體儲存裝置 |
TWI537958B (zh) | 2014-02-21 | 2016-06-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 |
CN106469019B (zh) * | 2015-08-18 | 2020-01-07 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器储存装置 |
CN106873901B (zh) * | 2015-12-11 | 2020-02-07 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4071706A (en) * | 1976-09-13 | 1978-01-31 | Rca Corporation | Data packets distribution loop |
TW200413928A (en) * | 2002-11-13 | 2004-08-01 | Sandisk Corp | Universal non-volatile memory card used with various different standard cards containing a memory controller |
US20070233910A1 (en) * | 2003-03-27 | 2007-10-04 | Sandisk Il Ltd. | Data Storage Device With Full Access By All Users |
US20090125643A1 (en) * | 2007-11-12 | 2009-05-14 | Gemalto Inc | System and method for drive resizing and partition size exchange between a flash memory controller and a smart card |
-
2010
- 2010-08-12 TW TW99126950A patent/TWI472927B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4071706A (en) * | 1976-09-13 | 1978-01-31 | Rca Corporation | Data packets distribution loop |
TW200413928A (en) * | 2002-11-13 | 2004-08-01 | Sandisk Corp | Universal non-volatile memory card used with various different standard cards containing a memory controller |
US20070233910A1 (en) * | 2003-03-27 | 2007-10-04 | Sandisk Il Ltd. | Data Storage Device With Full Access By All Users |
US20090125643A1 (en) * | 2007-11-12 | 2009-05-14 | Gemalto Inc | System and method for drive resizing and partition size exchange between a flash memory controller and a smart card |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI585770B (zh) * | 2015-08-11 | 2017-06-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
US10409525B2 (en) | 2015-08-11 | 2019-09-10 | Phison Electronics Corp. | Memory management method, memory control circuit unit and memory storage device |
TWI596612B (zh) * | 2015-12-04 | 2017-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US10007449B2 (en) | 2015-12-04 | 2018-06-26 | Phison Electronics Corp. | Memory management method, memory control circuit unit, and memory storage apparatus |
Also Published As
Publication number | Publication date |
---|---|
TW201207621A (en) | 2012-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI472927B (zh) | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 | |
TWI596486B (zh) | 記憶體儲存裝置、記憶體控制器及資料串傳送與識別方法 | |
TWI451248B (zh) | 資料保護方法、記憶體控制器與記憶體儲存裝置 | |
TWI475385B (zh) | 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置 | |
TWI454912B (zh) | 資料處理方法、記憶體控制器與記憶體儲存裝置 | |
US8812756B2 (en) | Method of dispatching and transmitting data streams, memory controller and storage apparatus | |
TWI397821B (zh) | 資料串傳送方法、系統及其控制器 | |
US8954705B2 (en) | Memory space management method and memory controller and memory storage device and memory storage using the same | |
US8266713B2 (en) | Method, system and controller for transmitting and dispatching data stream | |
US9772937B2 (en) | Data processing method, memory controller and memory storage apparatus | |
CN101576853A (zh) | 数据存取方法、使用此方法的控制器与存储系统 | |
TWI430104B (zh) | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 | |
KR20160105625A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI521345B (zh) | 回應讀取方法及資料傳輸系統 | |
EP4180977A1 (en) | Parameter change command for storage device interface tuning | |
CN102375698B (zh) | 数据串分派与传送方法、存储器控制器与存储器储存装置 | |
US11550906B2 (en) | Storage system with separated RPMB sub-systems and method of operating the same | |
CN110069934B (zh) | 存储器存储系统、主机系统验证方法及存储器存储装置 | |
CN102880423B (zh) | 数据串分派与传送方法、存储器控制器与存储器储存装置 | |
CN103116470A (zh) | 存储器储存装置、存储器控制器及数据串传送与识别方法 | |
US8544424B2 (en) | System, controller and method thereof for transmitting and distributing data stream | |
CN109460372B (zh) | 数据存储方法、存储器控制电路单元及存储器存储装置 | |
KR20210004613A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
US20160283510A1 (en) | Storage device management method and system, and memory storage device thereof |