數據串分派與傳送方法、存儲器控制器與存儲器儲存裝置的製作方法
2023-05-19 23:58:16
專利名稱:數據串分派與傳送方法、存儲器控制器與存儲器儲存裝置的製作方法
技術領域:
本發明涉及一種數據串分派與傳送方法,尤其涉及一種適用於在主機系統和具有非易失性存儲器與智慧卡晶片的存儲器儲存裝置之間分派與傳送數據串的方法及使用此方法的存儲器控制器與存儲器儲存裝置。
背景技術:
數位相機、行動電話與MP3播放器在這幾年來的發展十分迅速,使得消費者對儲存媒體的需求也急速增加。由於非易失性存儲器(例如,快閃記憶體)具有數據非易失性、 省電、體積小,以及無機械結構等特性,所以非常適合內建於上述所舉例的各種可攜式多媒體裝置中。另一方面,隨著用戶逐漸接受使用電子錢包及預付儲值,使得智慧卡的使用日益普及。智慧卡(Smart Card)是具有例如微處理器、卡作業系統、安全模組及存儲器組件的集成電路晶片(IC晶片),以允許持有者執行預定操作。智慧卡提供計算、加密、雙向通信及安全功能,使得這張卡片除了儲存數據的功能外還能達到對其所儲存的數據加以保護的功能。使用全球移動通信系統(GSM)機制的蜂巢式電話中所使用的用戶識別模組 (Subscriber Identification Module, SIM)卡為智慧卡的其中一個應用範例。然而,智慧卡本身受限於儲存容量,因此近年來開始與大量儲存裝置的記憶卡相結合,以擴增智慧卡的儲存容量。然而,在同時配置非易失性存儲器模組與智慧卡晶片的記憶卡中,如何區分來自於主機系統的數據串是屬於智慧卡晶片的指令數據單元以及將來自於智慧卡晶片的響應數據單元傳遞給主機系統成為此領域技術人員所欲解決的課題。
發明內容
本發明提供一種數據串分派與傳送方法、存儲器控制器與存儲器儲存裝置,其能夠有效地傳遞屬於智慧卡晶片的數據單元。本發明範例實施例提供一種數據串分派與傳送方法,用於具有非易失性存儲器模組與智慧卡晶片的存儲器儲存裝置。該數據串分派與傳送方法包括為非易失性記體模組配置多個邏輯區塊地址,其中所述多個邏輯區塊地址之中的多個特定邏輯區塊地址被用以儲存特定文件。該數據串分派與傳送方法也包括從智慧卡晶片中接收響應數據單元,並且在緩衝存儲器中儲存此響應數據單元。該數據串分派與傳送方法還包括從主機系統中接收讀取指令;判斷對應此讀取指令的邏輯區塊地址是否屬於所述多個特定邏輯區塊地址的其中之一併且判斷上述緩衝存儲器中是否存有此響應數據單元。該數據串分派與傳送方法還包括當對應此讀取指令的邏輯區塊地址屬於所述多個特定邏輯區塊地址的其中之一且此緩衝存儲器中存有響應數據單元時,傳送儲存於此緩衝存儲器中的響應數據單元給主機系統。本發明範例實施例提供一種數據串分派與傳送方法,用於具有非易失性存儲器模組與智慧卡晶片的存儲器儲存裝置。該數據串分派與傳送方法包括為此非易失性記體模組配置多個邏輯區塊地址,其中所述多個邏輯區塊地址之中的多個特定邏輯區塊地址被用以儲存特定文件。該數據串分派與傳送方法也包括從此智慧卡晶片中接收響應數據單元,並且在緩衝存儲器中儲存此響應數據單元。該數據串分派與傳送方法還包括從主機系統中接收讀取指令;判斷對應此讀取指令的邏輯區塊地址是否屬於所述多個特定邏輯區塊地址的其中之一併且判斷此緩衝存儲器中是否儲存有響應數據單元。該數據串分派與傳送方法還包括當對應此讀取指令的邏輯區塊地址屬於所述多個特定邏輯區塊地址的其中之一且此緩衝存儲器中存有響應數據單元時,判斷對應此讀取指令的邏輯區塊地址是否對應存取地址單位。該數據串分派與傳送方法還包括當對應此讀取指令的邏輯區塊地址對應存取地址單位時,傳送儲存於此緩衝存儲器中的響應數據單元的至少一部分給主機系統。本發明範例實施例提供一種存儲器控制器,其包括存儲器接口、存儲器管理電路、 主機接口與緩衝存儲器。存儲器接口電性連接至存儲器管理電路,並且用以電性連接至上述非易失性存儲器模組。主機接口電性連接至存儲器管理電路並且用以電性連接至主機系統。緩衝存儲器電性連接至存儲器管理電路,並且用以暫存數據。存儲器管理電路單元用以執行上述的數據串分派與傳送方法。本發明範例實施例提供一種存儲器儲存裝置,其包括連接器、上述非易失性存儲器模組與電性連接至此非易失性存儲器模組的存儲器控制器,以及智慧卡晶片。在此,此存儲器控制器用以執行上述的數據串分派與傳送方法。基於上述,本發明範例實施例的數據串分派與傳送方法、存儲器控制器與存儲器儲存系統能夠正確地傳遞智慧卡晶片的指令數據單元與響應數據單元。為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合附圖作詳細說明。
圖1是根據本發明第一範例實施例所示的主機系統與存儲器儲存裝置的概要方塊圖。圖2是根據本發明第一範例實施例所示的存儲器控制器的概要方塊圖。圖3是根據本發明第一範例實施例所示的應用程式的存取示意圖。圖4是根據本發明第一範例實施例所示的狀態機的示意圖。圖5是根據本發明第一範例實施例所示的預讀取的數據流示意圖。圖6是根據本發明第一範例實施例所示的預讀取的數據流示意圖。圖7是根據本發明第一範例實施例所示的預讀取的數據流示意圖。圖8是根據本發明第一範例實施例所示的數據串分派與傳送方法之中對應寫入指令的流程圖。圖9是根據本發明第一範例實施例所示的數據串分派與傳送方法之中對應讀取指令的流程圖。圖10是根據本發明第二範例實施例所示的預讀取的數據流示意圖。圖11是根據本發明第二範例實施例所示的數據串分派與傳送方法的流程圖。主要附圖標記說明
100 存儲器儲存裝置;104 存儲器控制器;
102 連接器;
106 非易失性存儲器模組; 108a 接口 ; 1102 微處理器; 1106 快取存儲器; 1110 作業系統; 202 存儲器管理電路; 206 存儲器接口 ; 254:電源管理電路; LBA(O) LBA(N)邏輯區塊地址; 403 處理狀態;108 智慧卡晶片;1000 主機系統;1104:儲存裝置; 1108 輸入/輸出裝置;1120:應用程式;204:主機接口;208 緩衝存儲器;256 錯誤檢查與校正電路;401:閒置狀態;405 數據可用狀態;SS01、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、SlOlU S1013 數據流;S1101、S1103、S1105、S1107、S1109、S1111、S1113、S1115 數據串分派與傳送的步
馬聚ο
具體實施例方式[第一範例實施例]圖1是根據本發明第一範例實施例顯示的主機系統與存儲器儲存裝置的概要方塊圖。請參照圖1,主機系統1000包括微處理器1102、儲存裝置1104、快取存儲器1106 與輸入/輸出裝置1108。當主機系統1000開機時,微處理器1102會執行安裝於儲存裝置 1104中的作業系統1110,以使主機系統1000根據用戶的操作而提供對應的功能。例如,在主機系統1000為手機系統,並且作業系統1110為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)標準、集成設備電路antegrated Device Electronics, IDE)標準或其他標準的連接
ο存儲器控制器104用以執行以硬體形式或韌體型式實作的多個邏輯門或控制指令,並且根據主機系統1000的指令在非易失性存儲器模組106中進行數據的寫入、讀取與擦除等運作。非易失性存儲器模組106是電性連接至存儲器控制器104,並且用以儲存主機系統1000所寫入的數據。非易失性存儲器模組106包括多個實體區塊。各實體區塊分別具有多個實體頁面,其中屬於同一個實體區塊的實體頁面可被獨立地寫入且被同時地擦除。更詳細來說,實體區塊為擦除的最小單位。亦即,每一實體區塊含有最小數目的一併被擦除的記憶胞。實體頁面為程序化的最小單元。即,實體頁面為寫入數據的最小單元。然而,必須了解的是,在本發明另一範例實施例中,寫入數據的最小單位也可以是扇區(Sector)或其他大小。在本發明第一範例實施例的存儲器管理方法中,存儲器控制器104會將非易失性存儲器模組106的實體區塊邏輯地分組為數據區、備用區、系統區與取代區,其中被分組為數據區與備用區的實體區塊會輪替地來儲存主機系統1000所寫入的數據,系統區的實體區塊是用以儲存存儲器儲存裝置100的系統數據,而取代區的實體區塊是用以取代數據區與備用區中的壞實體區塊。此外,為了使主機系統1000能夠方便地對以輪替方式儲存數據的實體區塊進行存取,存儲器控制器104會配置邏輯區塊地址(如圖3的邏輯區塊地址 LBA(O) 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, EEPR0M)、震蕩器等元件。微處理器用以控制智慧卡晶片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,P0S)終端機,以及銀行機構所廣泛設置的自動櫃員機等所制定的專業交易與認證的標準規範。此規範是針對晶片信用卡與現金卡的支付款系統O^yment 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標準的接
9口。然而,必須了解的是本發明不限於此,主機接口 204也可以是符合MS標準、MMC標準、 CF標準、PATA標準、IEEE 1394標準、PCI Express標準、SATA標準、USB標準、IDE標準或其他標準的接口。存儲器接口 206是電性連接至存儲器管理電路202並且用以存取非易失性存儲器模組106。也就是說,欲寫入至非易失性存儲器模組106的數據會經由存儲器接口 206轉換為非易失性存儲器模組106所能接受的格式。緩衝存儲器208是電性連接至存儲器管理電路202並且用以暫存來自於主機系統 1000的數據與指令或來自於非易失性存儲器模組106的數據。在本發明一範例實施例中,存儲器控制器104還包括電源管理電路254。電源管理電路2M是電性連接至存儲器管理電路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-APDU0也就是說,當主機系統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(O) 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未被成功接收並且通過不斷地輪詢(pul 1 ing) 來嘗試從存儲器儲存裝置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(O)開始讀取數據量為8KB的數據時,主機系統1000的作業系統1110會從存儲器儲存裝置100的邏輯區塊地址LBA(O)開始讀取數據量為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的數據的讀取請求RRl給作業系統1110 (數據流S501)。假設快取存儲器1106未存有對應特定邏輯區塊地址LBA(O)的數據,因此作業系統1110會以預讀取方式傳送從特定邏輯區塊地址開始讀取數據量為64KB的數據的讀取指令RC給存儲器控制器104 (數據流S503)。由於此時存儲器控制器104尚未從智慧卡晶片108中取得R-APDU,因此存儲器控制器104會將第二數據串DS2傳送給主機系統1000 (數據流S5(^)。值得一提的是,由於第二數據串DS2的大小為8KB,因此為響應從特定邏輯區塊地址LBA(O)開始讀取數據量為 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(O)開始讀取數據量為8KB的數據的讀取請求RRl給作業系統1110。假設快取存儲器1106未存有對應特定邏輯區塊地址LBA(O)的數據,因此作業系統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(O)開始讀取數據量為8KB的數據時,主機系統1000的作業系統1110會以兩個讀取指令來讀取數據量為64KB的數據。例如,作業系統1110會先下達一個讀取指令從存儲器儲存裝置100的邏輯區塊地址LBA(O)開始讀取數據量為0. 5KB的數據,然後再下達另一個讀取指令來讀取後續的63. 5KB的數據。圖7是根據本發明第一範例實施例所示的預讀取的數據流示意圖,其顯示存儲器控制器104於作業系統1110以預讀取方式運作讀取數據期間從智慧卡晶片108中接收到 R-APDU的範例。請參照圖7,在數據流S701中應用程式1120傳送指示從特定邏輯區塊地址 LBA(O)開始讀取數據量為8KB的數據的讀取請求RRl給作業系統1110。假設快取存儲器1106未存有對應特定邏輯區塊地址LBA(O)的數據,因此作業系統1110會以預讀取方式傳送從特定邏輯區塊地址開始讀取數據量為64KB的數據的讀取指令給存儲器控制器104,其中在數據流S703中作業系統1110會先以讀取指令RCl讀取前面 0. 5KB的數據。由於此時存儲器控制器104尚未從智慧卡晶片108中取得R-APDU,因此存儲器控制器104會將第二數據串DS2傳送給主機系統1000 (數據流S7(^)。值得一提的是,由於第二數據串的大小為8KB,因此為響應從特定邏輯區塊地址LBA(O)開始讀取數據量為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(O)開始讀取數據量為63. SKB的數據的讀取指令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(O)開始讀取數據量為8KB的數據的讀取請求RR2給作業系統1110。在數據流S717 中作業系統1110會以讀取指令RC3來讀取數據量為64KB的數據。由於R-APDU已儲存於存儲器控制器104的緩衝存儲器208中,因此存儲器控制器 104會將R-APDU與數據量為56KB的整墊位PB傳送給主機系統1000 (數據流S719)。之後,作業系統1110會將快取存儲器1106中前面8KB的數據傳送給應用程式 1120(數據流S721)。基此,當作業系統1110後續再以一個讀取指令來執行預讀取運作時, 應用程式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(O)開始讀取數據量為8KB的數據的讀取請求RRl給作業系統1110。假設快取存儲器1106未存有對應特定邏輯區塊地址LBA(O)的數據,因此作業系統1110會以預讀取方式傳送從特定邏輯區塊地址開始讀取數據量為64KB的數據的讀取指令給存儲器控制器104,其中在數據流S1005中作業系統1110會先以讀取指令RCl讀取前面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,在步驟Sl 101中,存儲器控制器104的存儲器管理電路202會從主機系統1000中接收讀取指令。在步驟Sl 103中,存儲器管理電路202會判斷對應此讀取指令的邏輯區塊地址是否屬於特定邏輯區塊地址。倘若對應此讀取指令的邏輯區塊地址不屬於特定邏輯區塊地址時,則在步驟 S1105中存儲器管理電路202會依據此讀取指令從非易失性存儲器模組106中讀取數據 (以下稱為第三數據串)並且將第三數據串傳送給主機系統1000。倘若對應此讀取指令的邏輯區塊地址屬於特定邏輯區塊地址時,則在步驟S1107中存儲器管理電路202會判斷在緩衝存儲器208中是否存有R-APDU。倘若在緩衝存儲器208中未存有R-APDU時,在步驟S1109中存儲器管理電路202 會將第二數據串傳送給主機系統1000。倘若緩衝存儲器208中存有R-APDU時,在步驟 Sllll中存儲器管理電路202會判斷對應此讀取指令的邏輯區塊地址是否對應存取地址單位(即,對應此讀取指令的邏輯區塊地址是否為存取地址單位的倍數)。倘若對應此讀取指令的邏輯區塊地址對應存取地址時,在步驟S1113中存儲器管理電路202會依據對應讀取指令的數據讀取量將至少部分的R-APDU傳送給主機系統1000 並且記錄已傳送的部分。倘若對應此讀取指令的邏輯區塊地址未對應存取地址單位時,在步驟S1115中存儲器管理電路202會依據前次已傳送的部分以及對應此讀取指令的數據讀取量連續地將其他部分的R-APDU傳送給主機系統1000並且記錄所傳送的部分。值得一提的是,在第二範例實施例中,在完整的R-APDU都已傳送給主機系統1000後,狀態機的狀態才會從數據可用狀態變為閒置狀態。綜上所述,本發明範例實施例的數據串分派與傳送方法是將智慧卡晶片的響應數據單元儲存於緩衝存儲器中。此外,在狀態機處於閒置狀態下接收到讀取響應數據單元的指令時,本發明範例實施例的數據串分派與傳送方法將儲存於緩衝存儲器中的響應數據單元來傳遞給主機系統,由此允許主機系統重複的讀取響應數據單元。此外,本發明範例實施例的數據串分派與傳送方法會根據讀取響應數據單元之讀取指令的邏輯區塊地址來識別主機系統的分段讀取行為,由此將響應數據單元之中對應的部分傳送給主機系統。雖然本發明以實施例揭示如上,但其並非用以限定本發明,任何所屬技術領域技術人員,在不脫離本發明的精神和範圍內,可作任意改動或等同替換,故本發明的保護範圍應當以本申請權利要求所界定的範圍為準。
1權利要求
1.一種數據串分派與傳送方法,用於具有一非易失性存儲器模組與一智慧卡晶片的一存儲器儲存裝置,該數據串分派與傳送方法包括為該非易失性存儲器模組配置多個邏輯區塊地址,其中所述多個邏輯區塊地址之中的多個特定邏輯區塊地址被用以儲存一特定文件;從該智慧卡晶片中接收一響應數據單元,並且在一緩衝存儲器中儲存該響應數據單元;從一主機系統中接收一讀取指令;判斷對應該讀取指令的一邏輯區塊地址是否屬於所述多個特定邏輯區塊地址的其中之一併且判斷該緩衝存儲器中是否存有該響應數據單元;以及當對應該讀取指令的該邏輯區塊地址屬於所述多個特定邏輯區塊地址的其中之一且該緩衝存儲器中存有該響應數據單元時,傳送儲存於該緩衝存儲器中的該響應數據單元給該主機系統。
2.根據權利要求1所述的數據串分派與傳送方法,還包括當對應該讀取指令的該邏輯區塊地址屬於所述多個特定邏輯區塊地址的其中之一且該緩衝存儲器中未存有該響應數據單元時,傳送一第二數據串給該主機系統,其中該第二數據串的每個位皆為零。
3.根據權利要求1所述的數據串分派與傳送方法,還包括當對應該讀取指令的該邏輯區塊地址不屬於所述多個特定邏輯區塊地址的其中之一時,根據對應該讀取指令的該邏輯區塊地址從該非易失性存儲器模組中讀取對應該讀取指令的一第三數據串並且將對應該讀取指令的該第三數據串傳送給該主機系統。
4.根據權利要求1所述的數據串分派與傳送方法,還包括從該主機系統中接收一寫入指令與對應該寫入指令的一第一數據串; 判斷該第一數據串是否含有一特定標記;以及當該第一數據串含有該特定標記,則將該第一數據串之中的一指令數據單元傳送至該智慧卡晶片並且清除儲存於該緩衝存儲器中的該響應數據單元。
5.根據權利要求4所述的數據串分派與傳送方法,還包括當該第一數據串不含有該特定標記時,則根據對應該寫入指令的一邏輯區塊地址將該第一數據串寫入至該非易失性存儲器模組中。
6.一種數據串分派與傳送方法,用於具有一非易失性存儲器模組與一智慧卡晶片的一存儲器儲存裝置,該數據串分派與傳送方法包括為該非易失性存儲器模組配置多個邏輯區塊地址,其中所述多個邏輯區塊地址之中的多個特定邏輯區塊地址被用以儲存一特定文件;從該智慧卡晶片中接收一響應數據單元,並且在一緩衝存儲器中儲存該響應數據單元;從一主機系統中接收一讀取指令;判斷對應該讀取指令的一邏輯區塊地址是否屬於所述多個特定邏輯區塊地址的其中之一併且判斷該緩衝存儲器中是否儲存有該響應數據單元;當對應該讀取指令的該邏輯區塊地址屬於所述多個特定邏輯區塊地址的其中之一且該緩衝存儲器中存有該響應數據單元時,判斷對應該讀取指令的該邏輯區塊地址是否對應一存取地址單位;以及當對應該讀取指令的該邏輯區塊地址對應該存取地址單位時,傳送儲存於該緩衝存儲器中的該響應數據單元的至少一部分給該主機系統。
7.根據權利要求6所述的數據串分派與傳送方法,還包括當對應該讀取指令的該邏輯區塊地址未對應該存取地址單位時,傳送該緩衝存儲器中的該響應數據單元的其中一部分給該主機系統。
8.根據權利要求6所述的數據串分派與傳送方法,還包括當對應該讀取指令的該邏輯區塊地址屬於所述多個特定邏輯區塊地址的其中之一且該緩衝存儲器中未存有該響應數據單元時,傳送一第二數據串給該主機系統,其中該第二數據串的每個位皆為零。
9.根據權利要求6所述的數據串分派與傳送方法,還包括當對應該讀取指令的該邏輯區塊地址不屬於所述多個特定邏輯區塊地址的其中之一時,根據對應該讀取指令的該邏輯區塊地址從該非易失性存儲器模組中讀取對應該讀取指令的一第三數據串並且將對應該讀取指令的該第三數據串傳送給該主機系統。
10.根據權利要求6所述的數據串分派與傳送方法,還包括從該主機系統中接收一寫入指令與對應該寫入指令的一第一數據串; 判斷該第一數據串是否含有一特定標記;以及倘若該數據串含有該特定標記,則將該第一數據串之中的一指令數據單元傳送至該智慧卡晶片並且清除儲存於該緩衝存儲器中的該響應數據單元。
11.根據權利要求10所述的數據串分派與傳送方法,還包括當該第一數據串不含有該特定標記時,則依據對應該寫入指令的一邏輯區塊地址將該第一數據串寫入至該非易失性存儲器模組中。
12.—種存儲器控制器,用於配置在具有一非易失性存儲器模組與一智慧卡晶片的一存儲器儲存裝置中,該存儲器控制器包括一主機接口,用以電性連接至一主機系統;一存儲器接口,用以電性連接至該非易失性存儲器模組;一緩衝存儲器;以及一存儲器管理電路,電性連接該緩衝存儲器、該主機接口與該存儲器接口,其中該存儲器管理電路用以執行至少下列程序配置多個邏輯區塊地址,其中所述多個邏輯區塊地址之中的多個特定邏輯區塊地址被用以儲存一特定文件;從該智慧卡晶片中接收一響應數據單元,並且在該緩衝存儲器中儲存該響應數據單元;從該主機系統接收一讀取指令;判斷對應該讀取指令的一邏輯區塊地址是否屬於所述多個特定邏輯區塊地址的其中之一併且判斷該緩衝存儲器中是否存有該響應數據單元;當對應該讀取指令的該邏輯區塊地址屬於所述多個特定邏輯區塊地址的其中之一且該緩衝存儲器中存有該響應數據單元時,判斷對應該讀取指令的該邏輯區塊地址是否對應一存取地址單位;以及當對應該讀取指令的該邏輯區塊地址對應該存取地址單位時,傳送儲存於該緩衝存儲器中的該響應數據單元的至少一部分給該主機系統。
13.根據權利要求12所述的存儲器控制器,其中當對應該讀取指令的該邏輯區塊地址未對應該存取地址單位時,該存儲器管理電路還用以傳送儲存於該緩衝存儲器中的該響應數據單元的其中一部分給該主機系統。
14.根據權利要求12所述的存儲器控制器,其中當對應該讀取指令的該邏輯區塊地址屬於所述多個特定邏輯區塊地址的其中之一且該緩衝存儲器中未存有該響應數據單元時, 該存儲器管理電路還用以傳送一第二數據串給該主機系統,其中該第二數據串的每個位皆為零。
15.根據權利要求12所述的存儲器控制器,其中當對應該讀取指令的該邏輯區塊地址不屬於所述多個特定邏輯區塊地址的其中之一時,該存儲器管理電路還用以根據對應該讀取指令的該邏輯區塊地址從該非易失性存儲器模組中讀取對應該讀取指令的一第三數據串並且將對應該讀取指令的該第三數據串傳送給該主機系統。
16.根據權利要求12所述的存儲器控制器,其中該存儲器管理電路用以執行至少下列程序從該主機系統接收一寫入指令與對應該寫入指令的一第一數據串;判斷該第一數據串是否含有一特定標記;以及倘若該數據串含有該特定標記,則將該第一數據串之中的一指令數據單元傳送至該智慧卡晶片並且清除儲存於該緩衝存儲器中的該響應數據單元。
17.根據權利要求16所述的存儲器控制器,其中當該第一數據串不含有該特定標記時,該存儲器管理電路還用以依據對應該寫入指令的一邏輯區塊地址將該第一數據串寫入至該非易失性存儲器模組中。
18.一種存儲器儲存裝置,包括一連接器,用以電性連接至一主機系統;一非易失性存儲器模組;一智慧卡晶片;以及一存儲器控制器,電性連接至該連接器、該非易失性存儲器模組與該智慧卡晶片,並且具有一緩衝存儲器,其中該存儲器控制器用以執行至少下列程序為該非易失性記體模組配置多個邏輯區塊地址,其中所述多個邏輯區塊地址之中的多個特定邏輯區塊地址被用以儲存一特定文件;從該智慧卡晶片中接收一響應數據單元,並且在該緩衝存儲器中儲存該響應數據單元;從該主機系統中接收一讀取指令;判斷對應該讀取指令的一邏輯區塊地址是否屬於所述多個特定邏輯區塊地址的其中之一併且判斷該緩衝存儲器中是否存有該響應數據單元;以及當對應該讀取指令的該邏輯區塊地址屬於所述多個特定邏輯區塊地址的其中之一且該緩衝存儲器中存有該響應數據單元時,傳送儲存於該緩衝存儲器中的該響應數據單元給該主機系統。
全文摘要
本發明提供一種數據串分派與傳送方法、存儲器控制器與存儲器儲存裝置。本方法包括為非易失性存儲器模組配置多個邏輯區塊地址,其中多個特定邏輯區塊地址被用以儲存特定文件。本方法也包括從智慧卡晶片中接收響應數據單元,並且在緩衝存儲器中儲存此響應數據單元。本方法還包括當對應來自於主機系統的讀取指令的邏輯區塊地址屬於所述多個特定邏輯區塊地址的其中之一且此緩衝存儲器中存有響應數據單元時,傳送儲存於此緩衝存儲器中的響應數據單元給主機系統。基此,本方法能夠使主機系統無誤地接收到智慧卡晶片的響應數據單元。
文檔編號G06F3/06GK102375698SQ20101026284
公開日2012年3月14日 申請日期2010年8月23日 優先權日2010年8月23日
發明者詹清文 申請人:群聯電子股份有限公司