專利名稱:數(shù)據(jù)串分派與傳送方法、存儲器控制器與存儲器儲存裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)串分派與傳送方法,尤其涉及一種適用于在主機系統(tǒng)和具有非易失性存儲器與智能卡芯片的存儲器儲存裝置之間分派與傳送數(shù)據(jù)串的方法及使用此方法的存儲器控制器與存儲器儲存裝置。
背景技術(shù):
數(shù)碼相機、移動電話與MP3播放器在這幾年來的發(fā)展十分迅速,使得消費者對儲存媒體的需求也急速增加。由于非易失性存儲器(例如,快閃存儲器)具有數(shù)據(jù)非易失性、 省電、體積小,以及無機械結(jié)構(gòu)等特性,所以非常適合內(nèi)建于上述所舉例的各種可攜式多媒體裝置中。另一方面,隨著用戶逐漸接受使用電子錢包及預(yù)付儲值,使得智能卡的使用日益普及。智能卡(Smart Card)是具有例如微處理器、卡操作系統(tǒng)、安全模組及存儲器組件的集成電路芯片(IC芯片),以允許持有者執(zhí)行預(yù)定操作。智能卡提供計算、加密、雙向通信及安全功能,使得這張卡片除了儲存數(shù)據(jù)的功能外還能達到對其所儲存的數(shù)據(jù)加以保護的功能。使用全球移動通信系統(tǒng)(GSM)機制的蜂巢式電話中所使用的用戶識別模組 (Subscriber Identification Module, SIM)卡為智能卡的其中一個應(yīng)用范例。然而,智能卡本身受限于儲存容量,因此近年來開始與大量儲存裝置的記憶卡相結(jié)合,以擴增智能卡的儲存容量。然而,在同時配置非易失性存儲器模組與智能卡芯片的記憶卡中,如何區(qū)分來自于主機系統(tǒng)的數(shù)據(jù)串是屬于智能卡芯片的指令數(shù)據(jù)單元以及將來自于智能卡芯片的響應(yīng)數(shù)據(jù)單元傳遞給主機系統(tǒng)成為此領(lǐng)域技術(shù)人員所欲解決的課題。
發(fā)明內(nèi)容
本發(fā)明提供一種數(shù)據(jù)串分派與傳送方法、存儲器控制器與存儲器儲存裝置,其能夠有效地傳遞屬于智能卡芯片的數(shù)據(jù)單元。本發(fā)明范例實施例提供一種數(shù)據(jù)串分派與傳送方法,用于具有非易失性存儲器模組與智能卡芯片的存儲器儲存裝置。該數(shù)據(jù)串分派與傳送方法包括為非易失性記體模組配置多個邏輯區(qū)塊地址,其中所述多個邏輯區(qū)塊地址之中的多個特定邏輯區(qū)塊地址被用以儲存特定文件。該數(shù)據(jù)串分派與傳送方法也包括從智能卡芯片中接收響應(yīng)數(shù)據(jù)單元,并且在緩沖存儲器中儲存此響應(yīng)數(shù)據(jù)單元。該數(shù)據(jù)串分派與傳送方法還包括從主機系統(tǒng)中接收讀取指令;判斷對應(yīng)此讀取指令的邏輯區(qū)塊地址是否屬于所述多個特定邏輯區(qū)塊地址的其中之一并且判斷上述緩沖存儲器中是否存有此響應(yīng)數(shù)據(jù)單元。該數(shù)據(jù)串分派與傳送方法還包括當(dāng)對應(yīng)此讀取指令的邏輯區(qū)塊地址屬于所述多個特定邏輯區(qū)塊地址的其中之一且此緩沖存儲器中存有響應(yīng)數(shù)據(jù)單元時,傳送儲存于此緩沖存儲器中的響應(yīng)數(shù)據(jù)單元給主機系統(tǒng)。本發(fā)明范例實施例提供一種數(shù)據(jù)串分派與傳送方法,用于具有非易失性存儲器模組與智能卡芯片的存儲器儲存裝置。該數(shù)據(jù)串分派與傳送方法包括為此非易失性記體模組配置多個邏輯區(qū)塊地址,其中所述多個邏輯區(qū)塊地址之中的多個特定邏輯區(qū)塊地址被用以儲存特定文件。該數(shù)據(jù)串分派與傳送方法也包括從此智能卡芯片中接收響應(yīng)數(shù)據(jù)單元,并且在緩沖存儲器中儲存此響應(yīng)數(shù)據(jù)單元。該數(shù)據(jù)串分派與傳送方法還包括從主機系統(tǒng)中接收讀取指令;判斷對應(yīng)此讀取指令的邏輯區(qū)塊地址是否屬于所述多個特定邏輯區(qū)塊地址的其中之一并且判斷此緩沖存儲器中是否儲存有響應(yīng)數(shù)據(jù)單元。該數(shù)據(jù)串分派與傳送方法還包括當(dāng)對應(yīng)此讀取指令的邏輯區(qū)塊地址屬于所述多個特定邏輯區(qū)塊地址的其中之一且此緩沖存儲器中存有響應(yīng)數(shù)據(jù)單元時,判斷對應(yīng)此讀取指令的邏輯區(qū)塊地址是否對應(yīng)存取地址單位。該數(shù)據(jù)串分派與傳送方法還包括當(dāng)對應(yīng)此讀取指令的邏輯區(qū)塊地址對應(yīng)存取地址單位時,傳送儲存于此緩沖存儲器中的響應(yīng)數(shù)據(jù)單元的至少一部分給主機系統(tǒng)。本發(fā)明范例實施例提供一種存儲器控制器,其包括存儲器接口、存儲器管理電路、 主機接口與緩沖存儲器。存儲器接口電性連接至存儲器管理電路,并且用以電性連接至上述非易失性存儲器模組。主機接口電性連接至存儲器管理電路并且用以電性連接至主機系統(tǒng)。緩沖存儲器電性連接至存儲器管理電路,并且用以暫存數(shù)據(jù)。存儲器管理電路單元用以執(zhí)行上述的數(shù)據(jù)串分派與傳送方法。本發(fā)明范例實施例提供一種存儲器儲存裝置,其包括連接器、上述非易失性存儲器模組與電性連接至此非易失性存儲器模組的存儲器控制器,以及智能卡芯片。在此,此存儲器控制器用以執(zhí)行上述的數(shù)據(jù)串分派與傳送方法?;谏鲜觯景l(fā)明范例實施例的數(shù)據(jù)串分派與傳送方法、存儲器控制器與存儲器儲存系統(tǒng)能夠正確地傳遞智能卡芯片的指令數(shù)據(jù)單元與響應(yīng)數(shù)據(jù)單元。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細(xì)說明。
圖1是根據(jù)本發(fā)明第一范例實施例所示的主機系統(tǒng)與存儲器儲存裝置的概要方塊圖。圖2是根據(jù)本發(fā)明第一范例實施例所示的存儲器控制器的概要方塊圖。圖3是根據(jù)本發(fā)明第一范例實施例所示的應(yīng)用程序的存取示意圖。圖4是根據(jù)本發(fā)明第一范例實施例所示的狀態(tài)機的示意圖。圖5是根據(jù)本發(fā)明第一范例實施例所示的預(yù)讀取的數(shù)據(jù)流示意圖。圖6是根據(jù)本發(fā)明第一范例實施例所示的預(yù)讀取的數(shù)據(jù)流示意圖。圖7是根據(jù)本發(fā)明第一范例實施例所示的預(yù)讀取的數(shù)據(jù)流示意圖。圖8是根據(jù)本發(fā)明第一范例實施例所示的數(shù)據(jù)串分派與傳送方法之中對應(yīng)寫入指令的流程圖。圖9是根據(jù)本發(fā)明第一范例實施例所示的數(shù)據(jù)串分派與傳送方法之中對應(yīng)讀取指令的流程圖。圖10是根據(jù)本發(fā)明第二范例實施例所示的預(yù)讀取的數(shù)據(jù)流示意圖。圖11是根據(jù)本發(fā)明第二范例實施例所示的數(shù)據(jù)串分派與傳送方法的流程圖。主要附圖標(biāo)記說明
100 存儲器儲存裝置;104 存儲器控制器;
102 連接器;
106 非易失性存儲器模組; 108a 接口 ; 1102 微處理器; 1106 快取存儲器; 1110 作業(yè)系統(tǒng); 202 存儲器管理電路; 206 存儲器接口 ; 254:電源管理電路; LBA(O) LBA(N)邏輯區(qū)塊地址; 403 處理狀態(tài);108 智能卡芯片;1000 主機系統(tǒng);1104:儲存裝置; 1108 輸入/輸出裝置;1120:應(yīng)用程序;204:主機接口;208 緩沖存儲器;256 錯誤檢查與校正電路;401:閑置狀態(tài);405 數(shù)據(jù)可用狀態(tài);SS01、S503、S505、S507、S601、S603、S605、S607、S609、S701、S703、S705、S707、S709、S711、S713、S715、S717、S719、S721 數(shù)據(jù)流;S801、S803、S805、S807、S809、S811、S901、S903、S905、S907、S909、S911、S913 數(shù)據(jù)串分派與傳送的步驟;S1001、S1003、S1005、S1007、S1009、SlOlU S1013 數(shù)據(jù)流;S1101、S1103、S1105、S1107、S1109、S1111、S1113、S1115 數(shù)據(jù)串分派與傳送的步
馬聚ο
具體實施例方式[第一范例實施例]圖1是根據(jù)本發(fā)明第一范例實施例顯示的主機系統(tǒng)與存儲器儲存裝置的概要方塊圖。請參照圖1,主機系統(tǒng)1000包括微處理器1102、儲存裝置1104、快取存儲器1106 與輸入/輸出裝置1108。當(dāng)主機系統(tǒng)1000開機時,微處理器1102會執(zhí)行安裝于儲存裝置 1104中的作業(yè)系統(tǒng)1110,以使主機系統(tǒng)1000根據(jù)用戶的操作而提供對應(yīng)的功能。例如,在主機系統(tǒng)1000為手機系統(tǒng),并且作業(yè)系統(tǒng)1110為Symbian、Android或其他作業(yè)系統(tǒng)的例子中,當(dāng)主機系統(tǒng)1000開機后,用戶可通過輸入/輸出裝置1108操作主機系統(tǒng)1000以執(zhí)行通訊、影音播放等功能。雖然在本范例實施例中,主機系統(tǒng)1000是以手機系統(tǒng)來作說明, 然而,在本發(fā)明另一范例實施例中主機系統(tǒng)1000也可以是電腦、數(shù)碼相機、攝影機、音樂播放器或視頻播放器等系統(tǒng)。存儲器儲存裝置100是用以電性連接至主機系統(tǒng)1000,以根據(jù)來自于主機系統(tǒng) 1000的作業(yè)系統(tǒng)1110的指令執(zhí)行數(shù)據(jù)的寫入與讀取。例如,在主機系統(tǒng)1000為手機系統(tǒng)的例子中,存儲器儲存裝置100可為安全數(shù)碼(Secure Digital, SD)卡、多媒體儲存卡(Multi Media Card, MMC)、記憶棒(memory stick)、小型快閃(Compact Flash, CF)卡或嵌入式儲存裝置。嵌入式儲存裝置包括嵌入式多媒體卡(Embedded MMC, eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接于主機系統(tǒng)的基板上。存儲器儲存裝置100包括連接器102、存儲器控制器104與非易失性存儲器模組106。連接器102為符合SD標(biāo)準(zhǔn)的連接器。然而,必須了解的是,本發(fā)明不限于此,連接器102也可以是符合MS標(biāo)準(zhǔn)、MMC標(biāo)準(zhǔn)、CF標(biāo)準(zhǔn)、電氣和電子工程師協(xié)會(Institute of Electrical and Electronic Engineers,IEEE) 1394標(biāo)準(zhǔn)、外設(shè)部件互連標(biāo)準(zhǔn)(Peripheral Component Interconnect Express, PCI Express)標(biāo)準(zhǔn)、串行高級技術(shù)附件(Serial Advanced Technology Attachment, SATA)標(biāo)準(zhǔn)、通用串行總線(Universal Serial Bus, USB)標(biāo)準(zhǔn)、集成設(shè)備電路antegrated Device Electronics, IDE)標(biāo)準(zhǔn)或其他標(biāo)準(zhǔn)的連接
ο存儲器控制器104用以執(zhí)行以硬件形式或韌體型式實作的多個邏輯門或控制指令,并且根據(jù)主機系統(tǒng)1000的指令在非易失性存儲器模組106中進行數(shù)據(jù)的寫入、讀取與擦除等運作。非易失性存儲器模組106是電性連接至存儲器控制器104,并且用以儲存主機系統(tǒng)1000所寫入的數(shù)據(jù)。非易失性存儲器模組106包括多個實體區(qū)塊。各實體區(qū)塊分別具有多個實體頁面,其中屬于同一個實體區(qū)塊的實體頁面可被獨立地寫入且被同時地擦除。更詳細(xì)來說,實體區(qū)塊為擦除的最小單位。亦即,每一實體區(qū)塊含有最小數(shù)目的一并被擦除的記憶胞。實體頁面為程序化的最小單元。即,實體頁面為寫入數(shù)據(jù)的最小單元。然而,必須了解的是,在本發(fā)明另一范例實施例中,寫入數(shù)據(jù)的最小單位也可以是扇區(qū)(Sector)或其他大小。在本發(fā)明第一范例實施例的存儲器管理方法中,存儲器控制器104會將非易失性存儲器模組106的實體區(qū)塊邏輯地分組為數(shù)據(jù)區(qū)、備用區(qū)、系統(tǒng)區(qū)與取代區(qū),其中被分組為數(shù)據(jù)區(qū)與備用區(qū)的實體區(qū)塊會輪替地來儲存主機系統(tǒng)1000所寫入的數(shù)據(jù),系統(tǒng)區(qū)的實體區(qū)塊是用以儲存存儲器儲存裝置100的系統(tǒng)數(shù)據(jù),而取代區(qū)的實體區(qū)塊是用以取代數(shù)據(jù)區(qū)與備用區(qū)中的壞實體區(qū)塊。此外,為了使主機系統(tǒng)1000能夠方便地對以輪替方式儲存數(shù)據(jù)的實體區(qū)塊進行存取,存儲器控制器104會配置邏輯區(qū)塊地址(如圖3的邏輯區(qū)塊地址 LBA(O) LBA(N))來映射所述多個實體區(qū)塊,由此主機系統(tǒng)1000能夠直接地依據(jù)邏輯區(qū)塊地址來進行數(shù)據(jù)的寫入與讀取。在本范例實施例中,非易失性存儲器模組106為可復(fù)寫式非易失性存儲器模組。 例如,非易失性存儲器模組106為多層記憶胞(Multi Level Cell,MLC)NAND閃存模組。然而,本發(fā)明不限于此,非易失性存儲器模組106亦可是單層記憶胞(Single Level Cell, SLC)NAND閃存模組、其他閃存模組或其他具有相同特性的存儲器模組。在本發(fā)明第一范例實施例中,存儲器儲存裝置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中的數(shù)據(jù)進行加解密。 震蕩器用以產(chǎn)生智能卡芯片108運作時所需的時鐘信號。隨機存取存儲器用以暫存運算的數(shù)據(jù)或韌體程序。電子擦除式可編程只讀存儲器用以儲存用戶數(shù)據(jù)。只讀存儲器用以儲存智能卡芯片108的固體程序。具體來說,當(dāng)智能卡芯片108運作時,智能卡芯片108的微處理器會執(zhí)行只讀存儲器中的固體程序來執(zhí)行相關(guān)運作。特別是,智能卡芯片108的安全模組會執(zhí)行一安全機制以防止欲竊取儲存于智能卡芯片108中所儲存的數(shù)據(jù)的攻擊。例如,此攻擊包括時間攻擊(timing attack)、單一功耗分析攻擊(single-power-analysis attack)或差分功耗分析 (differential-power-analysis)。此外,智能卡芯片108所執(zhí)行的安全機制是符合聯(lián)邦信息處理標(biāo)準(zhǔn)(Federal Information Processing Standards, FIPS) 140-2 的第三等級或更高等級或者符合EMV EL的第三等級或更高等級。也就是說,智能卡芯片108是通過FIPS 140-2的第四級以上的認(rèn)證或者通過EMV EL的第四級以上的認(rèn)證。在此,F(xiàn)IPS是美國聯(lián)邦政府制定給所有軍事機構(gòu)除外的政府機構(gòu)及政府的承包商所使用的公開標(biāo)準(zhǔn),其中FIPS 140-2制定了關(guān)于數(shù)據(jù)安全的等級。此外,EMV是國際金融業(yè)界對于智能卡與可使用芯片卡的銷售點(point-of-sale,P0S)終端機,以及銀行機構(gòu)所廣泛設(shè)置的自動柜員機等所制定的專業(yè)交易與認(rèn)證的標(biāo)準(zhǔn)規(guī)范。此規(guī)范是針對芯片信用卡與現(xiàn)金卡的支付款系統(tǒng)O^yment System)的相關(guān)軟硬件所設(shè)置的標(biāo)準(zhǔn)。在本范例實施例中,通過智能卡芯片108的運作,存儲器儲存裝置100可提供具有身份認(rèn)證的服務(wù),例如,小額付款服務(wù)、票證服務(wù)等。圖2是根據(jù)本發(fā)明第一范例實施例所示的存儲器控制器的概要方塊圖。請參照圖2,存儲器控制器104包括存儲器管理電路202、主機接口 204、存儲器接口 206與緩沖存儲器208。存儲器管理電路202用以控制存儲器控制器104的整體運作。具體來說,存儲器管理電路202具有多個控制指令,并且在存儲器儲存裝置100運作時,所述多個控制指令會被執(zhí)行以根據(jù)第一范例實施例的數(shù)據(jù)串分派與傳送方法以及存儲器管理方法來管理非易失性存儲器模組106。在本范例實施例中,存儲器管理電路202的控制指令是以韌體型式來實作。例如, 存儲器管理電路202具有微處理器單元(未圖示)與只讀存儲器(未圖示),并且所述多個控制指令是被燒錄至此只讀存儲器中。當(dāng)存儲器儲存裝置100運作時,所述多個控制指令會由微處理器單元來執(zhí)行以完成根據(jù)本發(fā)明第一范例實施例的數(shù)據(jù)串分派與傳送方法以及存儲器管理方法。在本發(fā)明另一范例實施例中,存儲器管理電路202的控制指令也可以程序碼形式儲存于非易失性存儲器模組106的特定區(qū)域(例如,存儲器模組中專用于存放系統(tǒng)數(shù)據(jù)的系統(tǒng)區(qū))中。此外,存儲器管理電路202具有微處理器單元(未圖示)、只讀存儲器(未圖示)及隨機存取存儲器(未圖示)。特別是,此只讀存儲器具有驅(qū)動碼段,并且當(dāng)存儲器控制器104被致能時,微處理器單元會先執(zhí)行此驅(qū)動碼段來將儲存于非易失性存儲器模組106 中的控制指令載入至存儲器管理電路202的隨機存取存儲器中。之后,微處理器單元會運轉(zhuǎn)所述多個控制指令以執(zhí)行本發(fā)明第一范例實施例的數(shù)據(jù)串分派與傳送方法以及存儲器管理方法。此外,在本發(fā)明另一范例實施例中,存儲器管理電路202的控制指令也可以一硬件形式來實作。主機接口 204是電性連接至存儲器管理電路202并且用以接收與識別主機系統(tǒng) 1000所傳送的指令與數(shù)據(jù)。也就是說,主機系統(tǒng)1000所傳送的指令與數(shù)據(jù)會通過主機接口 204來傳送至存儲器管理電路202。在本范例實施例中,主機接口 204為符合SD標(biāo)準(zhǔn)的接
9口。然而,必須了解的是本發(fā)明不限于此,主機接口 204也可以是符合MS標(biāo)準(zhǔn)、MMC標(biāo)準(zhǔn)、 CF標(biāo)準(zhǔn)、PATA標(biāo)準(zhǔn)、IEEE 1394標(biāo)準(zhǔn)、PCI Express標(biāo)準(zhǔn)、SATA標(biāo)準(zhǔn)、USB標(biāo)準(zhǔn)、IDE標(biāo)準(zhǔn)或其他標(biāo)準(zhǔn)的接口。存儲器接口 206是電性連接至存儲器管理電路202并且用以存取非易失性存儲器模組106。也就是說,欲寫入至非易失性存儲器模組106的數(shù)據(jù)會經(jīng)由存儲器接口 206轉(zhuǎn)換為非易失性存儲器模組106所能接受的格式。緩沖存儲器208是電性連接至存儲器管理電路202并且用以暫存來自于主機系統(tǒng) 1000的數(shù)據(jù)與指令或來自于非易失性存儲器模組106的數(shù)據(jù)。在本發(fā)明一范例實施例中,存儲器控制器104還包括電源管理電路254。電源管理電路2M是電性連接至存儲器管理電路202并且用以控制存儲器儲存裝置100的電源。在本發(fā)明一范例實施例中,存儲器控制器104還包括錯誤檢查與校正電路256。錯誤檢查與校正電路256是電性連接至存儲器管理電路202并且用以執(zhí)行錯誤檢查與校正程序以確保數(shù)據(jù)的正確性。具體來說,當(dāng)存儲器管理電路202從主機系統(tǒng)1000中接收到寫入指令時,錯誤檢查與校正電路256會為對應(yīng)此寫入指令的數(shù)據(jù)產(chǎn)生對應(yīng)的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code),并且存儲器管理電路202會將對應(yīng)此寫入指令的數(shù)據(jù)與對應(yīng)的錯誤檢查與校正碼寫入至非易失性存儲器模組106中。之后, 當(dāng)存儲器管理電路202從非易失性存儲器模組106中讀取數(shù)據(jù)時會同時讀取此數(shù)據(jù)對應(yīng)的錯誤檢查與校正碼,并且錯誤檢查與校正電路256會依據(jù)此錯誤檢查與校正碼對所讀取的數(shù)據(jù)執(zhí)行錯誤檢查與校正程序。值得一提的是,智能卡芯片108是通過存儲器儲存裝置100的連接器102接收來自于主機系統(tǒng)1000的指令與數(shù)據(jù)與傳送數(shù)據(jù)至主機系統(tǒng)1000,而非直接通過智能卡接口 (即,接口 108a)與主機系統(tǒng)1000通訊?;?,在本發(fā)明第一范例實施例中,應(yīng)用程序1120 會被安裝在主機系統(tǒng)1000中,以處理欲傳送給智能卡芯片108的指令數(shù)據(jù)單元以及識別智能卡芯片108的響應(yīng)數(shù)據(jù)單元。例如,在本范例實施例中,傳送給智能卡芯片108的指令數(shù)據(jù)單元稱為指令-應(yīng)用程序協(xié)定數(shù)據(jù)單元(Command-Application Protocol Data Unit, C-APDU)并且來自于智能卡芯片108的響應(yīng)數(shù)據(jù)單元稱為響應(yīng)-應(yīng)用程序協(xié)定數(shù)據(jù)單元 (Response-Application Protocol Data Unit,R-APDU)。特別是,存儲器控制器 104 會根據(jù)第一范例實施例的數(shù)據(jù)串傳送與分派方法來識別與傳送智能卡芯片108的C-APDU與 R-APDU0也就是說,當(dāng)主機系統(tǒng)1000對具有非易失性存儲器模組106與智能卡芯片108的架構(gòu)的存儲器儲存裝置100進行操作時,存儲器控制器104會配合應(yīng)用程序1120的運作根據(jù)本發(fā)明第一范例實施例的數(shù)據(jù)串傳送與分派方法來傳送與分派欲下達給智能卡芯片108 的C-APDU以正確地將屬于C-APDU的數(shù)據(jù)串傳送至智能卡芯片108并且將來自于智能卡芯片108的R-APDU正確地回傳給主機系統(tǒng)1000。在本范例實施例中,應(yīng)用程序1120會在存儲器儲存裝置100儲存一個或多個文件,并且將用以儲存此一個或多個文件的邏輯區(qū)塊地址的信息傳送給存儲器控制器104。例如,當(dāng)應(yīng)用程序1120下達在存儲器儲存裝置100中儲存文件RF的指令時,作業(yè)系統(tǒng)1110 會根據(jù)存儲器儲存裝置100的文件系統(tǒng)(未圖示)使用部分的邏輯區(qū)塊地址(例如,邏輯區(qū)塊地址LBA(O) LBA(K))來寫入文件RF。在此,用以儲存文件RF的邏輯區(qū)塊地址的被稱為特定邏輯區(qū)塊地址(如圖3的斜線所示)。
特別是,在本范例實施例中,任何針對智能卡芯片108的操作都是通過應(yīng)用程序 1120對文件RF進行存取來完成。也就是說,應(yīng)用程序1120會通過對文件RF的寫入指令將 C-APDU傳送至存儲器儲存裝置100并且通過對文件RF的讀取指令從存儲器儲存裝置100 中讀取R-APDU。值得一提的是,在其他作業(yè)系統(tǒng)中,應(yīng)用程序1120亦可直接對對應(yīng)文件RF 的特定邏輯區(qū)塊地址進行存取,來執(zhí)行對智能卡芯片108的操作。具體來說,存儲器控制器104的存儲器管理電路202會包括狀態(tài)機(state machine)并且根據(jù)主機系統(tǒng)1000對智能卡芯片108的操作來更新此狀態(tài)機的狀態(tài)。此外, 當(dāng)應(yīng)用程序1120對此文件RF進行存取時,存儲器控制器104會根據(jù)此狀態(tài)機的狀態(tài)來判斷是否將來自于主機系統(tǒng)1000的數(shù)據(jù)串傳送給智能卡芯片108或者將對應(yīng)的響應(yīng)訊息回傳給主機系統(tǒng)1000。圖4是根據(jù)本發(fā)明第一范例實施例所示的狀態(tài)機的示意圖。請參照圖4,在存儲器儲存裝置100開始運作時,狀態(tài)機會處于閑置(Idle)狀態(tài) 401。在閑置狀態(tài)401期間,存儲器控制器104會判斷來自于主機系統(tǒng)1000的寫入指令是否為對應(yīng)特定邏輯區(qū)塊地址并且對應(yīng)此寫入指令的數(shù)據(jù)串(以下稱為第一數(shù)據(jù)串)是否含有特定標(biāo)記。具體來說,當(dāng)應(yīng)用程序1120傳送C-APDU給存儲器儲存裝置100時,應(yīng)用程序 1120會將特定標(biāo)記與C-APDU封裝為欲寫入至文件RF的數(shù)據(jù)串并且作業(yè)系統(tǒng)1110會向存儲器儲存裝置100下達寫入指令以將此數(shù)據(jù)串寫入至特定邏輯區(qū)塊地址。例如,此特定標(biāo)記是記錄在此數(shù)據(jù)串的標(biāo)頭中?;?,當(dāng)存儲器儲存裝置100從主機系統(tǒng)1000中接收到寫入指令與對應(yīng)所述多個寫入指令的數(shù)據(jù)串時,存儲器管理電路202會識別出此寫入指令是對應(yīng)特定邏輯區(qū)塊地址且對應(yīng)此寫入指令的數(shù)據(jù)串含有特定標(biāo)記,由此將此數(shù)據(jù)串中的 C-APDU傳遞給智能卡芯片108。在存儲器管理電路202傳送C-APDU給智能卡芯片108之后,狀態(tài)機會處于處理 (In Progress)狀態(tài)403。在處理狀態(tài)403期間,存儲器控制器104會等候來自于智能卡芯片108的R-APDU。也就是說,處理狀態(tài)403表示存儲器管理電路202尚未從智能卡芯片108 中接收到R-APDU。倘若在處理狀態(tài)期間應(yīng)用程序1120下達對應(yīng)讀取文件RF的讀取指令時, 存儲器管理電路202會回復(fù)預(yù)設(shè)數(shù)據(jù)串(以下稱為第二數(shù)據(jù)串)給主機系統(tǒng)1000。在本范例實施例中,存儲器控制器104與應(yīng)用程序1120皆會根據(jù)存取地址單位來傳遞智能卡芯片的指令數(shù)據(jù)單元。例如,在本范例實施例中,此存取地址單位為8位千字節(jié)(kilobyte,KB), 并且第二數(shù)據(jù)串會被設(shè)定為數(shù)據(jù)量為8KB且每一個位皆為0的數(shù)據(jù)串。特別是,當(dāng)接收到第二數(shù)據(jù)串時,應(yīng)用程序1120會識別R-APDU未被成功接收并且通過不斷地輪詢(pul 1 ing) 來嘗試從存儲器儲存裝置100中接收R-APDU。在接收到智能卡芯片108的R-APDU之后,狀態(tài)機的狀態(tài)會從處理狀態(tài)403變?yōu)閿?shù)據(jù)可用(Data Available)狀態(tài)405。在數(shù)據(jù)可用狀態(tài)405期間,存儲器控制器104會等候主機系統(tǒng)1000傳送對應(yīng)特定邏輯區(qū)塊地址的讀取指令。具體來說,存儲器管理電路202會將從智能卡芯片108中接收到的R-APDU儲存在緩沖存儲器208中,并且當(dāng)從主機系統(tǒng)1000 中接收到對應(yīng)特定邏輯區(qū)塊地址的讀取指令時將所儲存的R-APDU傳送給主機系統(tǒng)1000。 特別是,在將所儲存的R-APDU傳送給主機系統(tǒng)1000之后,狀態(tài)機的狀態(tài)會從數(shù)據(jù)可用狀態(tài) 405變回閑置狀態(tài)401。由此,存儲器控制器104可從主機系統(tǒng)1000接收下一個C-APDU并且傳遞給智能卡芯片108。
在本發(fā)明范例實施例中,存儲器儲存裝置100與主機系統(tǒng)1000之間的數(shù)據(jù)傳遞會通過快取存儲器1106。具體來說,當(dāng)主機系統(tǒng)1000從存儲器儲存裝置100中讀取數(shù)據(jù)時, 主機系統(tǒng)1000的作業(yè)系統(tǒng)1110會以預(yù)讀取(Prefetch)的方式來提升效能。例如,當(dāng)主機系統(tǒng)1000的應(yīng)用程序1120從存儲器儲存裝置100的邏輯區(qū)塊地址LBA(O)開始讀取數(shù)據(jù)量為8KB的數(shù)據(jù)時,主機系統(tǒng)1000的作業(yè)系統(tǒng)1110會從存儲器儲存裝置100的邏輯區(qū)塊地址LBA(O)開始讀取數(shù)據(jù)量為64KB的數(shù)據(jù)并儲存此數(shù)據(jù)于快取存儲器1106中?;?,當(dāng)下一個讀取指令所欲讀取的數(shù)據(jù)已儲存于快取存儲器1106中時,主機系統(tǒng)1000的作業(yè)系統(tǒng)1110將能夠直接地從快取存儲器1106中讀取此數(shù)據(jù),由此提升存取速度。值得一提的是,為了避免主機系統(tǒng)1000的作業(yè)系統(tǒng)1110直接地從快取存儲器 1106中提供此數(shù)據(jù)給應(yīng)用程序1120而影響智能卡芯片108的R-APDU的傳遞,在本范例實施例中,文件RF的大小會被設(shè)計大于快取存儲器1106的大小。基此,當(dāng)應(yīng)用程序1120每次讀取文件RF時,作業(yè)系統(tǒng)1110都必須重新從存儲器儲存裝置100中讀取數(shù)據(jù)。圖5是根據(jù)本發(fā)明第一范例實施例所示的預(yù)讀取的數(shù)據(jù)流示意圖,其顯示在作業(yè)系統(tǒng)1110下達讀取指令時存儲器控制器104尚未從智能卡芯片108中取得R-APDU的范例。請參照圖5,應(yīng)用程序1120會傳送指示從特定邏輯區(qū)塊地址LBA (0)開始讀取數(shù)據(jù)量為8KB的數(shù)據(jù)的讀取請求RRl給作業(yè)系統(tǒng)1110 (數(shù)據(jù)流S501)。假設(shè)快取存儲器1106未存有對應(yīng)特定邏輯區(qū)塊地址LBA(O)的數(shù)據(jù),因此作業(yè)系統(tǒng)1110會以預(yù)讀取方式傳送從特定邏輯區(qū)塊地址開始讀取數(shù)據(jù)量為64KB的數(shù)據(jù)的讀取指令RC給存儲器控制器104 (數(shù)據(jù)流S503)。由于此時存儲器控制器104尚未從智能卡芯片108中取得R-APDU,因此存儲器控制器104會將第二數(shù)據(jù)串DS2傳送給主機系統(tǒng)1000 (數(shù)據(jù)流S5(^)。值得一提的是,由于第二數(shù)據(jù)串DS2的大小為8KB,因此為響應(yīng)從特定邏輯區(qū)塊地址LBA(O)開始讀取數(shù)據(jù)量為 64KB的數(shù)據(jù)的讀取指令RC,存儲器控制器104會在第二數(shù)據(jù)串DS2之后填入數(shù)據(jù)量為56KB 的整墊位PB,然后再將包含第二數(shù)據(jù)串DS2與整墊位PB的數(shù)據(jù)串傳送給主機系統(tǒng)1000。基此,包含第二數(shù)據(jù)串DS2與整墊位PB的數(shù)據(jù)串會被儲存在快取存儲器1106中。之后,作業(yè)系統(tǒng)1110會將快取存儲器1106中前面8KB的數(shù)據(jù)(即,第二數(shù)據(jù)串 DS2)傳送給應(yīng)用程序1120(數(shù)據(jù)流S507)。圖6是根據(jù)本發(fā)明第一范例實施例所示的預(yù)讀取的數(shù)據(jù)流示意圖,其顯示在作業(yè)系統(tǒng)1110下達讀取指令時存儲器控制器104已從智能卡芯片108中取得R-APDU的范例。請參照圖6,在數(shù)據(jù)流S601中智能卡芯片108將R-APDU傳送給存儲器控制器104。在數(shù)據(jù)流S603中應(yīng)用程序1120傳送指示從特定邏輯區(qū)塊地址LBA(O)開始讀取數(shù)據(jù)量為8KB的數(shù)據(jù)的讀取請求RRl給作業(yè)系統(tǒng)1110。假設(shè)快取存儲器1106未存有對應(yīng)特定邏輯區(qū)塊地址LBA(O)的數(shù)據(jù),因此作業(yè)系統(tǒng)1110會以預(yù)讀取方式傳送從特定邏輯區(qū)塊地址開始讀取數(shù)據(jù)量為64KB的數(shù)據(jù)的讀取指令RC給存儲器控制器104 (數(shù)據(jù)流S605)。由于此時存儲器控制器104已從智能卡芯片108中取得R-APDU,因此存儲器控制器104會將R-APDU傳送給主機系統(tǒng)1000 (數(shù)據(jù)流S607)。值得一提的是,由于R-APDU的大小為8KB,因此為響應(yīng)從特定邏輯區(qū)塊地址LBA (0)開始讀取數(shù)據(jù)量為64KB的數(shù)據(jù)的讀取指令RC,存儲器控制器104會在R-APDU之后填入數(shù)據(jù)量為56KB的整墊位PB,然后再將包含R-APDU與整墊位PB的數(shù)據(jù)串傳送給主機系統(tǒng)1000?;耍琑-APDU與整墊位PB的數(shù)據(jù)串會被儲存在快取存儲器1106中。之后,作業(yè)系統(tǒng)1110會將快取存儲器1106中前面8KB的數(shù)據(jù)(即,R-APDU)傳送給應(yīng)用程序1120(數(shù)據(jù)流S609)。值得一提的是,盡管作業(yè)系統(tǒng)1110大部分是以一個讀取指令來讀取預(yù)讀取的數(shù)據(jù)。然而,在本發(fā)明范例實施例中,主機系統(tǒng)1000的作業(yè)系統(tǒng)1110有時會以多個讀取指令來執(zhí)行預(yù)讀取運作。例如,當(dāng)主機系統(tǒng)1000的應(yīng)用程序1120從存儲器儲存裝置100的邏輯區(qū)塊地址LBA(O)開始讀取數(shù)據(jù)量為8KB的數(shù)據(jù)時,主機系統(tǒng)1000的作業(yè)系統(tǒng)1110會以兩個讀取指令來讀取數(shù)據(jù)量為64KB的數(shù)據(jù)。例如,作業(yè)系統(tǒng)1110會先下達一個讀取指令從存儲器儲存裝置100的邏輯區(qū)塊地址LBA(O)開始讀取數(shù)據(jù)量為0. 5KB的數(shù)據(jù),然后再下達另一個讀取指令來讀取后續(xù)的63. 5KB的數(shù)據(jù)。圖7是根據(jù)本發(fā)明第一范例實施例所示的預(yù)讀取的數(shù)據(jù)流示意圖,其顯示存儲器控制器104于作業(yè)系統(tǒng)1110以預(yù)讀取方式運作讀取數(shù)據(jù)期間從智能卡芯片108中接收到 R-APDU的范例。請參照圖7,在數(shù)據(jù)流S701中應(yīng)用程序1120傳送指示從特定邏輯區(qū)塊地址 LBA(O)開始讀取數(shù)據(jù)量為8KB的數(shù)據(jù)的讀取請求RRl給作業(yè)系統(tǒng)1110。假設(shè)快取存儲器1106未存有對應(yīng)特定邏輯區(qū)塊地址LBA(O)的數(shù)據(jù),因此作業(yè)系統(tǒng)1110會以預(yù)讀取方式傳送從特定邏輯區(qū)塊地址開始讀取數(shù)據(jù)量為64KB的數(shù)據(jù)的讀取指令給存儲器控制器104,其中在數(shù)據(jù)流S703中作業(yè)系統(tǒng)1110會先以讀取指令RCl讀取前面 0. 5KB的數(shù)據(jù)。由于此時存儲器控制器104尚未從智能卡芯片108中取得R-APDU,因此存儲器控制器104會將第二數(shù)據(jù)串DS2傳送給主機系統(tǒng)1000 (數(shù)據(jù)流S7(^)。值得一提的是,由于第二數(shù)據(jù)串的大小為8KB,因此為響應(yīng)從特定邏輯區(qū)塊地址LBA(O)開始讀取數(shù)據(jù)量為0. 5KB 的數(shù)據(jù)的讀取指令RC1,存儲器控制器104會僅傳送第二數(shù)據(jù)串DS2之中前面0. 5KB的數(shù)據(jù)給主機系統(tǒng)1000。在數(shù)據(jù)流S707中存儲器控制器104從智能卡芯片108中接收到R-APDU。之后,在數(shù)據(jù)流S709中作業(yè)系統(tǒng)1110會再以讀取指令RC2讀取后續(xù)的63. 5KB的數(shù)據(jù)。由于此時存儲器控制器104已從智能卡芯片108中取得R-APDU,因此存儲器控制器104會將R-APDU傳送給主機系統(tǒng)1000 (數(shù)據(jù)流S711)。值得一提的是,由于R-APDU的大小為8KB,因此為響應(yīng)從特定邏輯區(qū)塊地址LBA(O)開始讀取數(shù)據(jù)量為63. SKB的數(shù)據(jù)的讀取指令RC2,存儲器控制器104會在R-APDU之后填入數(shù)據(jù)量為55. 5KB的整墊位PB,然后再將包含R-APDU與整墊位PB的數(shù)據(jù)串傳送給主機系統(tǒng)1000?;耍糠值诙?shù)據(jù)串、 R-APDU與整墊位PB的數(shù)據(jù)串會被儲存在快取存儲器1106中。之后,作業(yè)系統(tǒng)1110會將快取存儲器1106中前面8KB的數(shù)據(jù)傳送給應(yīng)用程序 1120(數(shù)據(jù)流 S713)。值得一提的是,由于快取存儲器1106中前面8KB的數(shù)據(jù)之中前面0. 5KB的數(shù)據(jù)為部分的第二數(shù)據(jù)串DS2并且后續(xù)7. 5KB的數(shù)據(jù)為部分的R-APDU,因此應(yīng)用程序1120將接收到不完整的R-APDU。特別是,依據(jù)圖4所示,在存儲器控制器104的存儲器管理電路202傳送R-APDU給主機系統(tǒng)1000之后,狀態(tài)機的狀態(tài)會變?yōu)殚e置狀態(tài),由此表示已完成傳遞應(yīng)用程序1120所傳送的C-APDU及智能卡芯片108所響應(yīng)的R-APDU。然而,此時應(yīng)用程序1120 會通過錯誤偵測技術(shù)而識別所接收的R-APDU不完整而再次發(fā)送讀取R-APDU的請求。為了處理上述的錯誤傳遞,在本發(fā)明范例實施例中,在將所儲存的R-APDU傳送給主機系統(tǒng)1000之后,存儲器管理電路202不會立即地清除儲存在緩沖存儲器208中的 R-APDU。例如,存儲器管理電路202會在接收到下一個C-APDU時,才將所儲存的R-APDU清除。此外,在閑置狀態(tài)401期間,當(dāng)存儲器儲存裝置100從主機系統(tǒng)1000中接收到對應(yīng)特定邏輯區(qū)塊地址的讀取指令時,存儲器管理電路202會再次將儲存在緩沖存儲器208中的 R-APDU傳送給主機系統(tǒng)1000。請再參照圖7,在數(shù)據(jù)流S715中應(yīng)用程序1120會再次傳送指示從特定邏輯區(qū)塊地址LBA(O)開始讀取數(shù)據(jù)量為8KB的數(shù)據(jù)的讀取請求RR2給作業(yè)系統(tǒng)1110。在數(shù)據(jù)流S717 中作業(yè)系統(tǒng)1110會以讀取指令RC3來讀取數(shù)據(jù)量為64KB的數(shù)據(jù)。由于R-APDU已儲存于存儲器控制器104的緩沖存儲器208中,因此存儲器控制器 104會將R-APDU與數(shù)據(jù)量為56KB的整墊位PB傳送給主機系統(tǒng)1000 (數(shù)據(jù)流S719)。之后,作業(yè)系統(tǒng)1110會將快取存儲器1106中前面8KB的數(shù)據(jù)傳送給應(yīng)用程序 1120(數(shù)據(jù)流S721)。基此,當(dāng)作業(yè)系統(tǒng)1110后續(xù)再以一個讀取指令來執(zhí)行預(yù)讀取運作時, 應(yīng)用程序1120就可取得正確的R-APDU。圖8是根據(jù)本發(fā)明第一范例實施例所示的數(shù)據(jù)串分派與傳送方法的流程圖,其顯示接收到寫入指令的處理步驟。請參照圖8,在步驟S801中,存儲器控制器104的存儲器管理電路202會從主機系統(tǒng)1000中接收寫入指令與對應(yīng)此寫入指令的第一數(shù)據(jù)串。在步驟S803中,存儲器管理電路202會判斷對應(yīng)此寫入指令的邏輯區(qū)塊地址是否屬于特定邏輯區(qū)塊地址。倘若對應(yīng)此寫入指令的邏輯區(qū)塊地址不屬于特定邏輯區(qū)塊地址時,則在步驟S805 中存儲器管理電路202會依據(jù)此寫入指令將第一數(shù)據(jù)串寫入至非易失性存儲器模組106 中。倘若對應(yīng)此寫入指令的邏輯區(qū)塊地址屬于特定邏輯區(qū)塊地址時,則在步驟S807中存儲器管理電路202會判斷第一數(shù)據(jù)串是否包含特定標(biāo)記。倘若第一數(shù)據(jù)串包含特定標(biāo)記時,則在步驟S809中存儲器管理電路202會將第一數(shù)據(jù)串中的C-APDU(即,第一數(shù)據(jù)串中不包含特定標(biāo)記的部分)傳送給智能卡芯片108,并且在步驟S811中存儲器管理電路202會清除儲存于緩沖存儲器208中的R-APDU。特別是, 此時,狀態(tài)機會從閑置狀態(tài)401變?yōu)樘幚頎顟B(tài)403。倘若在步驟S807中判斷第一數(shù)據(jù)串未包含特定標(biāo)記時,則圖8的流程會被結(jié)束。圖9是根據(jù)本發(fā)明第一范例實施例所示的數(shù)據(jù)串分派與傳送方法的流程圖,其顯示接收到讀取指令的處理步驟。請參照圖9,在步驟S901中,存儲器控制器104的存儲器管理電路202會從主機系統(tǒng)1000中接收讀取指令。在步驟S903中,存儲器管理電路202會判斷對應(yīng)此讀取指令的邏輯區(qū)塊地址是否屬于特定邏輯區(qū)塊地址。倘若對應(yīng)此讀取指令的邏輯區(qū)塊地址不屬于特定邏輯區(qū)塊地址時,則在步驟S905中存儲器管理電路202會依據(jù)此讀取指令從非易失性存儲器模組106中讀取數(shù)據(jù)(以下稱為第三數(shù)據(jù)串)并且將第三數(shù)據(jù)串傳送給主機系統(tǒng)1000。倘若對應(yīng)此讀取指令的邏輯區(qū)塊地址屬于特定邏輯區(qū)塊地址時,則在步驟S907中存儲器管理電路202會判斷狀態(tài)機是否處于數(shù)據(jù)可用狀態(tài)405或閑置狀態(tài)401。倘若狀態(tài)機非處于數(shù)據(jù)可用狀態(tài)405或閑置狀態(tài)401時,在步驟S909中存儲器管理電路202會將第二數(shù)據(jù)串傳送給主機系統(tǒng)1000。倘若狀態(tài)機處于數(shù)據(jù)可用狀態(tài)405或閑置狀態(tài)401時,在步驟S911中存儲器管理電路202會判斷在緩沖存儲器208中是否存有R-APDU。倘若在緩沖存儲器208中未存有R-APDU時,步驟S909會被執(zhí)行。倘若在緩沖存儲器208中存有R-APDU時,則在步驟S913中存儲器管理電路202會將R-APDU傳送給主機系統(tǒng)1000。傳送第二數(shù)據(jù)串與R-APDU的方式已配合圖5、6與7描述如上,在此不重復(fù)描述。[第二范例實施例]本發(fā)明第二范例實施例的存儲器儲存裝置與主機系統(tǒng)本質(zhì)上是相同于第一范例實施例的存儲器儲存裝置與主機系統(tǒng),其中差異在于第二范例實施例的存儲器控制器使用不同的方法來分派與傳送智能卡芯片的R-APDU。以下將使用圖1 圖3的裝置結(jié)構(gòu)來描述第二范例實施例。在第二范例實施例中,當(dāng)來自于主機系統(tǒng)1000的讀取指令所對應(yīng)的邏輯區(qū)塊地址屬于特定邏輯區(qū)塊地址時,存儲器控制器104會判斷此讀取指令所對應(yīng)的邏輯區(qū)塊地址是否為上述存取地址單位的倍數(shù)。并且,當(dāng)來自于主機系統(tǒng)1000的讀取指令所對應(yīng)的邏輯區(qū)塊地址非為存取地址單位的倍數(shù)時,存儲器控制器104會識別主機系統(tǒng)1000是以多個讀取指令來執(zhí)行預(yù)讀取?;?,存儲器控制器104會將R-APDU分段來傳送給主機系統(tǒng)1000。圖10是根據(jù)本發(fā)明第二范例實施例所示的預(yù)讀取的數(shù)據(jù)流示意圖,其顯示在作業(yè)系統(tǒng)1110下達讀取指令時存儲器控制器104已從智能卡芯片108中取得R-APDU的范例。請參照圖10,在數(shù)據(jù)流S1001中智能卡芯片108將R-APDU傳送給存儲器控制器 104。在數(shù)據(jù)流S1003中應(yīng)用程序1120傳送指示從特定邏輯區(qū)塊地址LBA(O)開始讀取數(shù)據(jù)量為8KB的數(shù)據(jù)的讀取請求RRl給作業(yè)系統(tǒng)1110。假設(shè)快取存儲器1106未存有對應(yīng)特定邏輯區(qū)塊地址LBA(O)的數(shù)據(jù),因此作業(yè)系統(tǒng)1110會以預(yù)讀取方式傳送從特定邏輯區(qū)塊地址開始讀取數(shù)據(jù)量為64KB的數(shù)據(jù)的讀取指令給存儲器控制器104,其中在數(shù)據(jù)流S1005中作業(yè)系統(tǒng)1110會先以讀取指令RCl讀取前面0. 5KB的數(shù)據(jù)。由于此時R-APDU已儲存于緩沖存儲器208中,因此存儲器控制器104會將R-APDU 之中前面0. 5KB的數(shù)據(jù)傳送給主機系統(tǒng)1000 (數(shù)據(jù)流S1007)。之后,在數(shù)據(jù)流S1009中作業(yè)系統(tǒng)1110會再以讀取指令RC2讀取后續(xù)的63. 5KB 的數(shù)據(jù)。此時存儲器控制器104會識別讀取指令RC2的邏輯區(qū)塊地址非為存取地址單位的倍數(shù),基此,存儲器控制器104會將R-APDU之中后續(xù)7. 5KB的數(shù)據(jù)傳送給主機系統(tǒng)1000 (數(shù)據(jù)流S1011)。類似地,存儲器控制器104會在R-APDU之后填入數(shù)據(jù)量為56KB的整墊位PB,以響應(yīng)讀取63. 5KB的讀取指令RC2。之后,作業(yè)系統(tǒng)1110會將快取存儲器1106中前面8KB的數(shù)據(jù)(即,R-APDU)傳送給應(yīng)用程序1120 (數(shù)據(jù)流S1013)?;耍诘诙独龑嵤├?,存儲器控制器104能夠根據(jù)讀取指令所對應(yīng)的邏輯區(qū)塊地址將快取存儲器1106之中對應(yīng)R-APDU的部分傳送給主機系統(tǒng)1000,由此防止當(dāng)作業(yè)系統(tǒng)1110使用多個讀取指令來執(zhí)行預(yù)讀取運作時而使應(yīng)用程序1120無法接收到正確的 R-APDU的問題。圖11是根據(jù)本發(fā)明第二范例實施例所示的數(shù)據(jù)串分派與傳送方法的流程圖,其顯示接收到讀取指令的處理步驟。請參照圖11,在步驟Sl 101中,存儲器控制器104的存儲器管理電路202會從主機系統(tǒng)1000中接收讀取指令。在步驟Sl 103中,存儲器管理電路202會判斷對應(yīng)此讀取指令的邏輯區(qū)塊地址是否屬于特定邏輯區(qū)塊地址。倘若對應(yīng)此讀取指令的邏輯區(qū)塊地址不屬于特定邏輯區(qū)塊地址時,則在步驟 S1105中存儲器管理電路202會依據(jù)此讀取指令從非易失性存儲器模組106中讀取數(shù)據(jù) (以下稱為第三數(shù)據(jù)串)并且將第三數(shù)據(jù)串傳送給主機系統(tǒng)1000。倘若對應(yīng)此讀取指令的邏輯區(qū)塊地址屬于特定邏輯區(qū)塊地址時,則在步驟S1107中存儲器管理電路202會判斷在緩沖存儲器208中是否存有R-APDU。倘若在緩沖存儲器208中未存有R-APDU時,在步驟S1109中存儲器管理電路202 會將第二數(shù)據(jù)串傳送給主機系統(tǒng)1000。倘若緩沖存儲器208中存有R-APDU時,在步驟 Sllll中存儲器管理電路202會判斷對應(yīng)此讀取指令的邏輯區(qū)塊地址是否對應(yīng)存取地址單位(即,對應(yīng)此讀取指令的邏輯區(qū)塊地址是否為存取地址單位的倍數(shù))。倘若對應(yīng)此讀取指令的邏輯區(qū)塊地址對應(yīng)存取地址時,在步驟S1113中存儲器管理電路202會依據(jù)對應(yīng)讀取指令的數(shù)據(jù)讀取量將至少部分的R-APDU傳送給主機系統(tǒng)1000 并且記錄已傳送的部分。倘若對應(yīng)此讀取指令的邏輯區(qū)塊地址未對應(yīng)存取地址單位時,在步驟S1115中存儲器管理電路202會依據(jù)前次已傳送的部分以及對應(yīng)此讀取指令的數(shù)據(jù)讀取量連續(xù)地將其他部分的R-APDU傳送給主機系統(tǒng)1000并且記錄所傳送的部分。值得一提的是,在第二范例實施例中,在完整的R-APDU都已傳送給主機系統(tǒng)1000后,狀態(tài)機的狀態(tài)才會從數(shù)據(jù)可用狀態(tài)變?yōu)殚e置狀態(tài)。綜上所述,本發(fā)明范例實施例的數(shù)據(jù)串分派與傳送方法是將智能卡芯片的響應(yīng)數(shù)據(jù)單元儲存于緩沖存儲器中。此外,在狀態(tài)機處于閑置狀態(tài)下接收到讀取響應(yīng)數(shù)據(jù)單元的指令時,本發(fā)明范例實施例的數(shù)據(jù)串分派與傳送方法將儲存于緩沖存儲器中的響應(yīng)數(shù)據(jù)單元來傳遞給主機系統(tǒng),由此允許主機系統(tǒng)重復(fù)的讀取響應(yīng)數(shù)據(jù)單元。此外,本發(fā)明范例實施例的數(shù)據(jù)串分派與傳送方法會根據(jù)讀取響應(yīng)數(shù)據(jù)單元之讀取指令的邏輯區(qū)塊地址來識別主機系統(tǒng)的分段讀取行為,由此將響應(yīng)數(shù)據(jù)單元之中對應(yīng)的部分傳送給主機系統(tǒng)。雖然本發(fā)明以實施例揭示如上,但其并非用以限定本發(fā)明,任何所屬技術(shù)領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),可作任意改動或等同替換,故本發(fā)明的保護范圍應(yīng)當(dāng)以本申請權(quán)利要求所界定的范圍為準(zhǔn)。
1權(quán)利要求
1.一種數(shù)據(jù)串分派與傳送方法,用于具有一非易失性存儲器模組與一智能卡芯片的一存儲器儲存裝置,該數(shù)據(jù)串分派與傳送方法包括為該非易失性存儲器模組配置多個邏輯區(qū)塊地址,其中所述多個邏輯區(qū)塊地址之中的多個特定邏輯區(qū)塊地址被用以儲存一特定文件;從該智能卡芯片中接收一響應(yīng)數(shù)據(jù)單元,并且在一緩沖存儲器中儲存該響應(yīng)數(shù)據(jù)單元;從一主機系統(tǒng)中接收一讀取指令;判斷對應(yīng)該讀取指令的一邏輯區(qū)塊地址是否屬于所述多個特定邏輯區(qū)塊地址的其中之一并且判斷該緩沖存儲器中是否存有該響應(yīng)數(shù)據(jù)單元;以及當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址屬于所述多個特定邏輯區(qū)塊地址的其中之一且該緩沖存儲器中存有該響應(yīng)數(shù)據(jù)單元時,傳送儲存于該緩沖存儲器中的該響應(yīng)數(shù)據(jù)單元給該主機系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)串分派與傳送方法,還包括當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址屬于所述多個特定邏輯區(qū)塊地址的其中之一且該緩沖存儲器中未存有該響應(yīng)數(shù)據(jù)單元時,傳送一第二數(shù)據(jù)串給該主機系統(tǒng),其中該第二數(shù)據(jù)串的每個位皆為零。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)串分派與傳送方法,還包括當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址不屬于所述多個特定邏輯區(qū)塊地址的其中之一時,根據(jù)對應(yīng)該讀取指令的該邏輯區(qū)塊地址從該非易失性存儲器模組中讀取對應(yīng)該讀取指令的一第三數(shù)據(jù)串并且將對應(yīng)該讀取指令的該第三數(shù)據(jù)串傳送給該主機系統(tǒng)。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)串分派與傳送方法,還包括從該主機系統(tǒng)中接收一寫入指令與對應(yīng)該寫入指令的一第一數(shù)據(jù)串; 判斷該第一數(shù)據(jù)串是否含有一特定標(biāo)記;以及當(dāng)該第一數(shù)據(jù)串含有該特定標(biāo)記,則將該第一數(shù)據(jù)串之中的一指令數(shù)據(jù)單元傳送至該智能卡芯片并且清除儲存于該緩沖存儲器中的該響應(yīng)數(shù)據(jù)單元。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)串分派與傳送方法,還包括當(dāng)該第一數(shù)據(jù)串不含有該特定標(biāo)記時,則根據(jù)對應(yīng)該寫入指令的一邏輯區(qū)塊地址將該第一數(shù)據(jù)串寫入至該非易失性存儲器模組中。
6.一種數(shù)據(jù)串分派與傳送方法,用于具有一非易失性存儲器模組與一智能卡芯片的一存儲器儲存裝置,該數(shù)據(jù)串分派與傳送方法包括為該非易失性存儲器模組配置多個邏輯區(qū)塊地址,其中所述多個邏輯區(qū)塊地址之中的多個特定邏輯區(qū)塊地址被用以儲存一特定文件;從該智能卡芯片中接收一響應(yīng)數(shù)據(jù)單元,并且在一緩沖存儲器中儲存該響應(yīng)數(shù)據(jù)單元;從一主機系統(tǒng)中接收一讀取指令;判斷對應(yīng)該讀取指令的一邏輯區(qū)塊地址是否屬于所述多個特定邏輯區(qū)塊地址的其中之一并且判斷該緩沖存儲器中是否儲存有該響應(yīng)數(shù)據(jù)單元;當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址屬于所述多個特定邏輯區(qū)塊地址的其中之一且該緩沖存儲器中存有該響應(yīng)數(shù)據(jù)單元時,判斷對應(yīng)該讀取指令的該邏輯區(qū)塊地址是否對應(yīng)一存取地址單位;以及當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址對應(yīng)該存取地址單位時,傳送儲存于該緩沖存儲器中的該響應(yīng)數(shù)據(jù)單元的至少一部分給該主機系統(tǒng)。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)串分派與傳送方法,還包括當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址未對應(yīng)該存取地址單位時,傳送該緩沖存儲器中的該響應(yīng)數(shù)據(jù)單元的其中一部分給該主機系統(tǒng)。
8.根據(jù)權(quán)利要求6所述的數(shù)據(jù)串分派與傳送方法,還包括當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址屬于所述多個特定邏輯區(qū)塊地址的其中之一且該緩沖存儲器中未存有該響應(yīng)數(shù)據(jù)單元時,傳送一第二數(shù)據(jù)串給該主機系統(tǒng),其中該第二數(shù)據(jù)串的每個位皆為零。
9.根據(jù)權(quán)利要求6所述的數(shù)據(jù)串分派與傳送方法,還包括當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址不屬于所述多個特定邏輯區(qū)塊地址的其中之一時,根據(jù)對應(yīng)該讀取指令的該邏輯區(qū)塊地址從該非易失性存儲器模組中讀取對應(yīng)該讀取指令的一第三數(shù)據(jù)串并且將對應(yīng)該讀取指令的該第三數(shù)據(jù)串傳送給該主機系統(tǒng)。
10.根據(jù)權(quán)利要求6所述的數(shù)據(jù)串分派與傳送方法,還包括從該主機系統(tǒng)中接收一寫入指令與對應(yīng)該寫入指令的一第一數(shù)據(jù)串; 判斷該第一數(shù)據(jù)串是否含有一特定標(biāo)記;以及倘若該數(shù)據(jù)串含有該特定標(biāo)記,則將該第一數(shù)據(jù)串之中的一指令數(shù)據(jù)單元傳送至該智能卡芯片并且清除儲存于該緩沖存儲器中的該響應(yīng)數(shù)據(jù)單元。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)串分派與傳送方法,還包括當(dāng)該第一數(shù)據(jù)串不含有該特定標(biāo)記時,則依據(jù)對應(yīng)該寫入指令的一邏輯區(qū)塊地址將該第一數(shù)據(jù)串寫入至該非易失性存儲器模組中。
12.—種存儲器控制器,用于配置在具有一非易失性存儲器模組與一智能卡芯片的一存儲器儲存裝置中,該存儲器控制器包括一主機接口,用以電性連接至一主機系統(tǒng);一存儲器接口,用以電性連接至該非易失性存儲器模組;一緩沖存儲器;以及一存儲器管理電路,電性連接該緩沖存儲器、該主機接口與該存儲器接口,其中該存儲器管理電路用以執(zhí)行至少下列程序配置多個邏輯區(qū)塊地址,其中所述多個邏輯區(qū)塊地址之中的多個特定邏輯區(qū)塊地址被用以儲存一特定文件;從該智能卡芯片中接收一響應(yīng)數(shù)據(jù)單元,并且在該緩沖存儲器中儲存該響應(yīng)數(shù)據(jù)單元;從該主機系統(tǒng)接收一讀取指令;判斷對應(yīng)該讀取指令的一邏輯區(qū)塊地址是否屬于所述多個特定邏輯區(qū)塊地址的其中之一并且判斷該緩沖存儲器中是否存有該響應(yīng)數(shù)據(jù)單元;當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址屬于所述多個特定邏輯區(qū)塊地址的其中之一且該緩沖存儲器中存有該響應(yīng)數(shù)據(jù)單元時,判斷對應(yīng)該讀取指令的該邏輯區(qū)塊地址是否對應(yīng)一存取地址單位;以及當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址對應(yīng)該存取地址單位時,傳送儲存于該緩沖存儲器中的該響應(yīng)數(shù)據(jù)單元的至少一部分給該主機系統(tǒng)。
13.根據(jù)權(quán)利要求12所述的存儲器控制器,其中當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址未對應(yīng)該存取地址單位時,該存儲器管理電路還用以傳送儲存于該緩沖存儲器中的該響應(yīng)數(shù)據(jù)單元的其中一部分給該主機系統(tǒng)。
14.根據(jù)權(quán)利要求12所述的存儲器控制器,其中當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址屬于所述多個特定邏輯區(qū)塊地址的其中之一且該緩沖存儲器中未存有該響應(yīng)數(shù)據(jù)單元時, 該存儲器管理電路還用以傳送一第二數(shù)據(jù)串給該主機系統(tǒng),其中該第二數(shù)據(jù)串的每個位皆為零。
15.根據(jù)權(quán)利要求12所述的存儲器控制器,其中當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址不屬于所述多個特定邏輯區(qū)塊地址的其中之一時,該存儲器管理電路還用以根據(jù)對應(yīng)該讀取指令的該邏輯區(qū)塊地址從該非易失性存儲器模組中讀取對應(yīng)該讀取指令的一第三數(shù)據(jù)串并且將對應(yīng)該讀取指令的該第三數(shù)據(jù)串傳送給該主機系統(tǒng)。
16.根據(jù)權(quán)利要求12所述的存儲器控制器,其中該存儲器管理電路用以執(zhí)行至少下列程序從該主機系統(tǒng)接收一寫入指令與對應(yīng)該寫入指令的一第一數(shù)據(jù)串;判斷該第一數(shù)據(jù)串是否含有一特定標(biāo)記;以及倘若該數(shù)據(jù)串含有該特定標(biāo)記,則將該第一數(shù)據(jù)串之中的一指令數(shù)據(jù)單元傳送至該智能卡芯片并且清除儲存于該緩沖存儲器中的該響應(yīng)數(shù)據(jù)單元。
17.根據(jù)權(quán)利要求16所述的存儲器控制器,其中當(dāng)該第一數(shù)據(jù)串不含有該特定標(biāo)記時,該存儲器管理電路還用以依據(jù)對應(yīng)該寫入指令的一邏輯區(qū)塊地址將該第一數(shù)據(jù)串寫入至該非易失性存儲器模組中。
18.一種存儲器儲存裝置,包括一連接器,用以電性連接至一主機系統(tǒng);一非易失性存儲器模組;一智能卡芯片;以及一存儲器控制器,電性連接至該連接器、該非易失性存儲器模組與該智能卡芯片,并且具有一緩沖存儲器,其中該存儲器控制器用以執(zhí)行至少下列程序為該非易失性記體模組配置多個邏輯區(qū)塊地址,其中所述多個邏輯區(qū)塊地址之中的多個特定邏輯區(qū)塊地址被用以儲存一特定文件;從該智能卡芯片中接收一響應(yīng)數(shù)據(jù)單元,并且在該緩沖存儲器中儲存該響應(yīng)數(shù)據(jù)單元;從該主機系統(tǒng)中接收一讀取指令;判斷對應(yīng)該讀取指令的一邏輯區(qū)塊地址是否屬于所述多個特定邏輯區(qū)塊地址的其中之一并且判斷該緩沖存儲器中是否存有該響應(yīng)數(shù)據(jù)單元;以及當(dāng)對應(yīng)該讀取指令的該邏輯區(qū)塊地址屬于所述多個特定邏輯區(qū)塊地址的其中之一且該緩沖存儲器中存有該響應(yīng)數(shù)據(jù)單元時,傳送儲存于該緩沖存儲器中的該響應(yīng)數(shù)據(jù)單元給該主機系統(tǒng)。
全文摘要
本發(fā)明提供一種數(shù)據(jù)串分派與傳送方法、存儲器控制器與存儲器儲存裝置。本方法包括為非易失性存儲器模組配置多個邏輯區(qū)塊地址,其中多個特定邏輯區(qū)塊地址被用以儲存特定文件。本方法也包括從智能卡芯片中接收響應(yīng)數(shù)據(jù)單元,并且在緩沖存儲器中儲存此響應(yīng)數(shù)據(jù)單元。本方法還包括當(dāng)對應(yīng)來自于主機系統(tǒng)的讀取指令的邏輯區(qū)塊地址屬于所述多個特定邏輯區(qū)塊地址的其中之一且此緩沖存儲器中存有響應(yīng)數(shù)據(jù)單元時,傳送儲存于此緩沖存儲器中的響應(yīng)數(shù)據(jù)單元給主機系統(tǒng)?;?,本方法能夠使主機系統(tǒng)無誤地接收到智能卡芯片的響應(yīng)數(shù)據(jù)單元。
文檔編號G06F3/06GK102375698SQ20101026284
公開日2012年3月14日 申請日期2010年8月23日 優(yōu)先權(quán)日2010年8月23日
發(fā)明者詹清文 申請人:群聯(lián)電子股份有限公司