本發(fā)明是有關于一種存儲裝置管理方法,且特別是有關于一種用于配置有可復寫式非易失性存儲器模塊與智慧卡芯片的存儲器存儲裝置的存儲裝置管理方法與系統(tǒng)及其存儲器存儲裝置。
背景技術:
隨著使用者逐漸接受使用電子錢包及預付儲值,使得智慧卡的使用日益普及。智慧卡(Smart Card)是具有例如微處理器、卡操作系統(tǒng)、安全模塊及存儲器的組件的集成電路芯片(IC芯片),以允許持有者執(zhí)行預定操作。智慧卡提供計算、加密、雙向通信及安全功能,使得這張卡片除了存儲數(shù)據(jù)的功能外還能達到對其所存儲的數(shù)據(jù)加以保護的功能。使用全球行動通信系統(tǒng)(GSM)機制的蜂窩電話中所使用的用戶識別模塊(Subscriber Identification Module,簡稱:SIM)卡為智慧卡的其中一個應用范例。然而,智慧卡本身受限于存儲容量,因此近年來開始與大量存儲裝置的記憶卡作結合,以擴增智慧卡的存儲容量。
一般來說,主機系統(tǒng)與智慧卡之間的數(shù)據(jù)是通過存取關聯(lián)于智慧卡的臨時文件而被傳送。然而,目前Google在Android 4.4.2的版本中所提出的數(shù)據(jù)存取方式僅允許使用者的應用程序在特定目錄下進行數(shù)據(jù)存取,因此可能會因為權限不足而導致使用者的應用程序無法對某些臨時文件進行數(shù)據(jù)寫入。另一方面,動態(tài)地在主機系統(tǒng)中建立臨時文件雖然可避免上述問題,但當某一個動態(tài)臨時文件的邏輯地址(logical address,簡稱:LA)是破碎的或不連續(xù)的時,存儲器裝置可能無法完整地記錄此動態(tài)臨時文件的邏輯地址,或是在讀寫動作跨越多個邏輯地址時,造成存取數(shù)據(jù)不正確的問題。
技術實現(xiàn)要素:
本發(fā)明提供一種存儲裝置管理方法與系統(tǒng)及其存儲器存儲裝置,其可正 確地通過存取臨時文件的邏輯地址來存取智慧卡芯片。
本發(fā)明提出一種存儲裝置管理方法,用于具有可復寫式非易失性存儲器模塊與智慧卡芯片的存儲器存儲裝置。存儲裝置管理方法包括從主機接收設定指令前在第一數(shù)據(jù)夾中建立多個第一臨時文件,其中上述第一臨時文件被存儲至對應存儲器存儲裝置的文件系統(tǒng)的多個連續(xù)簇,第一數(shù)據(jù)夾配置在可復寫式非易失性存儲器模塊中且主機的操作系統(tǒng)無法存取第一數(shù)據(jù)夾中的文件。存儲裝置管理方法還包括從主機接收設定指令,其中設定指令指示在第二數(shù)據(jù)夾中配置臨時文件數(shù)據(jù)夾,第二數(shù)據(jù)夾被配置在可復寫式非易失性存儲器模塊中且主機的操作系統(tǒng)可存取第二數(shù)據(jù)夾中的文件。存儲裝置管理方法還包括在對應文件系統(tǒng)的目錄區(qū)中將存儲上述第一臨時文件的連續(xù)簇的簇號匯集至臨時文件數(shù)據(jù)夾下。
在本發(fā)明的一范例實施例中,上述存儲裝置管理方法還包括通過安裝于主機的智慧卡應用程序在第二數(shù)據(jù)夾中建立第二臨時文件,其中第二臨時文件被存儲至文件系統(tǒng)的簇。上述存儲裝置管理方法還包括通過智慧卡應用程序下達寫入數(shù)據(jù)串至邏輯地址的寫入指令至存儲器存儲裝置,其中數(shù)據(jù)串包含設定指令且邏輯地址是對應存儲第二臨時文件簇。
在本發(fā)明的一范例實施例中,上述從主機接收設定指令的步驟包括:依據(jù)寫入指令指示的邏輯地址識別包含設定指令的數(shù)據(jù)串,并且從數(shù)據(jù)串中獲取設定指令。
在本發(fā)明的一范例實施例中,上述存儲裝置管理方法還包括通過智慧卡應用程序掃描第二數(shù)據(jù)夾并判斷第二數(shù)據(jù)夾中是否存有上述第一臨時文件,其中通過安裝于主機的智慧卡應用程序在第二數(shù)據(jù)夾中建立第二臨時文件且通過智慧卡應用程序下達寫入數(shù)據(jù)串至邏輯地址的寫入指令至存儲器存儲裝置的步驟是在第二數(shù)據(jù)夾非存有上述第一臨時文件時被執(zhí)行。
在本發(fā)明的一范例實施例中,上述存儲裝置管理方法還包括在對應文件系統(tǒng)的目錄區(qū)中將存儲上述第一臨時文件的連續(xù)簇的簇號匯集至第二數(shù)據(jù)夾下之后,傳送刪除指令以刪除第一數(shù)據(jù)夾。
在本發(fā)明的一范例實施例中,上述主機通過傳送讀取/寫入指令以讀取或寫入存儲器存儲裝置,且讀取/寫入指令包括上述設定指令。
在本發(fā)明的一范例實施例中,上述存儲裝置管理方法還包括倘若接收到 指示刪除上述第一臨時文件的刪除指令時,不刪除上述第一臨時文件并且傳送錯誤信息以回應指示刪除上述第一臨時文件的刪除指令。
在本發(fā)明的一范例實施例中,上述存儲裝置管理方法還包括在對應文件系統(tǒng)的目錄區(qū)中將存儲上述第一臨時文件的上述連續(xù)簇的簇號匯集至第二數(shù)據(jù)夾下之后,通過智慧卡應用程序傳送刪除指令以刪除第二臨時文件。
本發(fā)明提出一種存儲器存儲裝置,包括連接接口單元用以電性連接至主機、可復寫式非易失性存儲器模塊、智慧卡芯片及存儲器控制電路單元。存儲器控制電路單元電性連接至連接接口單元、可復寫式非易失性存儲器模塊及智慧卡芯片。其中存儲器控制電路單元在從主機接收設定指令前在第一數(shù)據(jù)夾中建立多個第一臨時文件,其中上述第一臨時文件被存儲至對應存儲器存儲裝置的文件系統(tǒng)的多個連續(xù)簇,第一數(shù)據(jù)夾配置在可復寫式非易失性存儲器模塊中且主機的操作系統(tǒng)無法存取第一數(shù)據(jù)夾中的文件。其中設定指令指示在第二數(shù)據(jù)夾中配置臨時文件數(shù)據(jù)夾,第二數(shù)據(jù)夾被配置在可復寫式非易失性存儲器模塊中且主機的操作系統(tǒng)可存取第二數(shù)據(jù)夾中的文件。其中存儲器控制電路單元在對應文件系統(tǒng)的目錄區(qū)中將存儲上述第一臨時文件的連續(xù)簇的簇號匯集至臨時文件數(shù)據(jù)夾下。
在本發(fā)明的一范例實施例中,上述存儲器電路管理單元從安裝于主機的智慧卡應用程序接收寫入指令以在第二數(shù)據(jù)夾中建立第二臨時文件,其中第二臨時文件被存儲至文件系統(tǒng)的簇,其中存儲器電路管理單元從智慧卡應用程序接收寫入指令以寫入數(shù)據(jù)串至邏輯地址,其中數(shù)據(jù)串包含設定指令且邏輯地址是對應存儲第二臨時文件的簇。
在本發(fā)明的一范例實施例中,上述存儲器電路管理單元依據(jù)寫入指令指示的邏輯地址識別包含設定指令的數(shù)據(jù)串,并且從數(shù)據(jù)串中獲取設定指令。
在本發(fā)明的一范例實施例中,上述存儲器電路管理單元從智慧卡應用程序接收掃描信號以掃描第二數(shù)據(jù)夾并判斷第二數(shù)據(jù)夾中是否存有上述第一臨時文件,其中當?shù)诙?shù)據(jù)夾非存有上述第一臨時文件時,存儲器電路管理單元從安裝于主機的智慧卡應用程序接收寫入指令以在第二數(shù)據(jù)夾中建立第二臨時文件并從智慧卡應用程序接收寫入指令以寫入數(shù)據(jù)串至邏輯地址。
在本發(fā)明的一范例實施例中,上述存儲器電路管理單元在對應文件系統(tǒng)的目錄區(qū)中將存儲上述第一臨時文件的連續(xù)簇的簇號匯集至第二數(shù)據(jù)夾下之 后,從主機接收刪除指令以刪除第一數(shù)據(jù)夾。
在本發(fā)明的一范例實施例中,上述主機通過傳送讀取/寫入指令以讀取或寫入存儲器存儲裝置,且讀取/寫入指令包括上述設定指令。
在本發(fā)明的一范例實施例中,倘若存儲器電路管理單元從主機接收到指示刪除上述第一臨時文件的刪除指令時,存儲器電路管理單元不刪除上述第一臨時文件并且傳送錯誤信息至主機以回應指示刪除上述第一臨時文件的刪除指令。
在本發(fā)明的一范例實施例中,上述存儲器電路管理單元在對應文件系統(tǒng)的目錄區(qū)中將存儲上述第一臨時文件的連續(xù)簇的簇號匯集至第二數(shù)據(jù)夾下之后,從智慧卡應用程序接收刪除指令以刪除第二臨時文件。
本發(fā)明提出一種存儲裝置管理系統(tǒng),包括主機及存儲器存儲裝置。存儲器存儲裝置具有可復寫式非易失性存儲器模塊與智慧卡芯片且可分離地電性連接到主機。其中存儲器存儲裝置在從主機接收設定指令前在第一數(shù)據(jù)夾中建立多個第一臨時文件,其中上述第一臨時文件被存儲至對應存儲器存儲裝置的文件系統(tǒng)的多個連續(xù)簇,第一數(shù)據(jù)夾配置在可復寫式非易失性存儲器模塊中且主機的操作系統(tǒng)無法存取第一數(shù)據(jù)夾中的文件。其中設定指令指示在第二數(shù)據(jù)夾中配置臨時文件數(shù)據(jù)夾,第二數(shù)據(jù)夾被配置在可復寫式非易失性存儲器模塊中且主機的操作系統(tǒng)可存取第二數(shù)據(jù)夾中的文件。其中存儲器存儲裝置在對應文件系統(tǒng)的目錄區(qū)中將存儲上述第一臨時文件的連續(xù)簇的簇號匯集至臨時文件數(shù)據(jù)夾下。
在本發(fā)明的一范例實施例中,上述存儲器存儲裝置從安裝于主機的智慧卡應用程序接收寫入指令以在第二數(shù)據(jù)夾中建立第二臨時文件,其中第二臨時文件被存儲至文件系統(tǒng)的簇,其中存儲器存儲裝置從智慧卡應用程序接收寫入指令以寫入數(shù)據(jù)串至邏輯地址,其中數(shù)據(jù)串包含設定指令且邏輯地址是對應存儲第二臨時文件的簇。
在本發(fā)明的一范例實施例中,上述存儲器存儲裝置依據(jù)寫入指令指示的邏輯地址識別包含設定指令的數(shù)據(jù)串,并且從數(shù)據(jù)串中獲取設定指令。
在本發(fā)明的一范例實施例中,上述存儲器存儲裝置從智慧卡應用程序接收掃描信號以掃描第二數(shù)據(jù)夾并判斷第二數(shù)據(jù)夾中是否存有上述第一臨時文件。其中當?shù)诙?shù)據(jù)夾非存有上述第一臨時文件時,存儲器存儲裝置從安裝 于主機的智慧卡應用程序接收寫入指令以在第二數(shù)據(jù)夾中建立第二臨時文件并從智慧卡應用程序接收寫入指令以寫入數(shù)據(jù)串至邏輯地址。
在本發(fā)明的一范例實施例中,上述存儲器存儲裝置在對應文件系統(tǒng)的目錄區(qū)中將存儲上述第一臨時文件的連續(xù)簇的簇號匯集至第二數(shù)據(jù)夾下之后,從主機接收刪除指令以刪除第一數(shù)據(jù)夾。
在本發(fā)明的一范例實施例中,上述主機通過傳送讀取/寫入指令以讀取或寫入存儲器存儲裝置,且讀取/寫入指令包括上述設定指令。
在本發(fā)明的一范例實施例中,倘若存儲器存儲裝置從主機接收到指示刪除上述第一臨時文件的刪除指令時,存儲器存儲裝置不刪除上述第一臨時文件并且傳送錯誤信息至主機以回應指示刪除上述第一臨時文件的刪除指令。
在本發(fā)明的一范例實施例中,上述存儲器存儲裝置在對應文件系統(tǒng)的目錄區(qū)中將存儲上述第一臨時文件的連續(xù)簇的簇號匯集至第二數(shù)據(jù)夾下之后,從智慧卡應用程序接收刪除指令以刪除第二臨時文件。
基于上述,通過將第一臨時文件的連續(xù)簇的簇號匯集到主機可存取的第二數(shù)據(jù)夾中,使得主機存取第一臨時文件的邏輯地址時能夠正確地存取智慧卡芯片。即使主機存取比簇大小還要大的數(shù)據(jù)時,由于第一臨時文件的簇是連續(xù)的,因此也不會產(chǎn)生存取數(shù)據(jù)不正確的問題。
為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。
附圖說明
圖1是本發(fā)明的一范例實施例所示出的主機與存儲器存儲裝置的示意圖;
圖2是本發(fā)明的一范例實施例所示出的電腦、輸入/輸出裝置與存儲器存儲裝置的范例示意圖;
圖3是本發(fā)明的一范例實施例所示出的主機與存儲器存儲裝置的示意圖;
圖4是示出圖1所示的主機與存儲器存儲裝置的概要方塊圖;
圖5是本發(fā)明的一范例實施例所示出的存儲器控制電路單元的概要方塊圖;
圖6是本發(fā)明的一范例實施例所示出的管理實體抹除單元的范例示意圖;
圖7為本發(fā)明的一范例實施例所示出的以文件系統(tǒng)格式化存儲器模塊的邏輯地址的范例;
圖8為本發(fā)明的一范例實施例所示出的存儲裝置管理方法的流程圖;
圖9A為本發(fā)明的一范例實施例所示出的智慧卡芯片開卡時在根目錄建立第一臨時文件的范例;
圖9B為本發(fā)明的一范例實施例所示出的在臨時文件數(shù)據(jù)夾下建立第一臨時文件的范例;
圖10為本發(fā)明的一范例實施例所示出的存儲裝置管理方法的詳細流程圖;
圖11A到圖11C為本發(fā)明的一范例實施例所示出的在臨時文件數(shù)據(jù)夾下建立第一臨時文件時目錄區(qū)的更動的示意圖。
附圖標記說明:
10:存儲器存儲裝置;
11:主機;
12:電腦;
122:微處理器;
124:隨機存取存儲器(RAM);
13:輸入/輸出(I/O)裝置;
126:系統(tǒng)總線;
128:數(shù)據(jù)傳輸接口;
21:鼠標;
22:鍵盤;
23:顯示器;
24:打印機;
25:隨身碟;
26:記憶卡;
27:固態(tài)硬盤;
31:數(shù)碼相機;
32:SD卡;
33:MMC卡;
34:記憶棒;
35:CF卡;
36:嵌入式存儲裝置;
402:連接接口單元;
404:存儲器控制電路單元;
406:可復寫式非易失性存儲器模塊;
408:智慧卡芯片;
410:智慧卡應用程序;
410(0)~410(N)、410(0)~410(F)、410(F+1)~410(N):實體抹除單元;
502:存儲器管理電路;
504:主機接口;
506:存儲器接口;
508:智慧卡接口;
510:緩沖存儲器;
512:電源管理電路;
514:錯誤檢查與校正電路;
610(0)~610(D):邏輯單元;
620:數(shù)據(jù)串;
630:設定指令;
700:分割區(qū);
702:主啟動記錄區(qū);
704:文件配置表區(qū);
706:目錄區(qū);
708:文件區(qū);
700(0)~700(W):簇;
S805、S810、S815:步驟;
900:根目錄;
911:第一數(shù)據(jù)夾;
912:第二數(shù)據(jù)夾;
913:臨時文件數(shù)據(jù)夾;
921(1)~921(n):第一臨時文件;
922:第二臨時文件;
S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015、S1017、S1019、S1021:步驟;
1101:第一臨時文件目錄區(qū);
1103:根目錄區(qū);
1105:第二數(shù)據(jù)夾目錄區(qū)。
具體實施方式
一般而言,存儲器存儲裝置(也稱,存儲器存儲系統(tǒng))包括可復寫式非易失性存儲器模塊與控制器(也稱,控制電路)。通常存儲器存儲裝置是與主機一起使用,以使主機可將數(shù)據(jù)寫入至存儲器存儲裝置或從存儲器存儲裝置中讀取數(shù)據(jù)。
圖1是本發(fā)明的一范例實施例所示出的主機與存儲器存儲裝置的示意圖,并且圖2是本發(fā)明的一范例實施例所示出的電腦、輸入/輸出裝置與存儲器存儲裝置的范例示意圖。
請參照圖1,主機11一般包括電腦12與輸入/輸出(input/output,簡稱:I/O)裝置13。電腦12包括微處理器122、隨機存取存儲器(random access memory,簡稱:RAM)124、系統(tǒng)總線126與數(shù)據(jù)傳輸接口128。輸入/輸出裝置13包括如圖2的鼠標21、鍵盤22、顯示器23與打印機24。必須了解的是,圖2所示的裝置非限制輸入/輸出裝置13,輸入/輸出裝置13可還包括其他裝置。
在本實施例中,存儲器存儲裝置10是通過數(shù)據(jù)傳輸接口128與主機11的其他元件電性連接。通過微處理器122、隨機存取存儲器124與輸入/輸出裝置13的運作可將數(shù)據(jù)寫入至存儲器存儲裝置10或從存儲器存儲裝置10中讀取數(shù)據(jù)。例如,存儲器存儲裝置10可以是如圖2所示的隨身碟25、記憶卡26或固態(tài)硬盤(Solid State Drive,簡稱:SSD)27等的可復寫式非易失性存儲器存儲裝置。
圖3是本發(fā)明的一范例實施例所示出的主機與存儲器存儲裝置的示意圖。
一般而言,主機11為可實質(zhì)地與存儲器存儲裝置10配合以存儲數(shù)據(jù)的任意系統(tǒng)。雖然在本范例實施例中,主機11是以電腦系統(tǒng)來做說明,然而,在另一范例實施例中主機11可以是數(shù)碼相機、攝像機、通信裝置、音頻播放器或視頻播放器等系統(tǒng)。例如,在主機為圖3中的數(shù)碼相機(攝像機)31時,可復寫式非易失性存儲器存儲裝置則為其所使用的SD卡32、MMC卡33、記憶棒(memory stick)34、CF卡35或嵌入式存儲裝置36(如圖3所示)。嵌入式存儲裝置36包括嵌入式多媒體卡(Embedded MMC,簡稱:eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接于主機的基板上。
圖4是示出圖1所示的主機與存儲器存儲裝置的概要方塊圖。
請參照圖4,存儲器存儲裝置10包括連接接口單元402、存儲器控制電路單元404、可復寫式非易失性存儲器模塊406以及智慧卡芯片408。
在本范例實施例中,存儲器控制電路單元404是用以控制存儲器存儲裝置10的整體運作,以完成根據(jù)本發(fā)明實施例的存儲裝置管理方法。此外,必須了解的是主機11也包含主機11欲與存儲器存儲裝置10連接所需具備的一般功能。
連接接口單元402是兼容于串行高級技術附件(Serial Advanced Technology Attachment,簡稱:SATA)標準。然而,必須了解的是,本發(fā)明不限于此,連接接口單元402也可以是符合并行高級技術附件(Parallel Advanced Technology Attachment,簡稱:PATA)標準、電氣和電子工程師協(xié)會(Institute of Electrical and Electronic Engineers,簡稱:IEEE)1394標準、高速外設組件互聯(lián)接口(Peripheral Component Interconnect Express,簡稱:PCI Express)標準、通用串行總線(Universal Serial Bus,簡稱:USB)標準、超高速一代(Ultra High Speed-I,簡稱:UHS-I)接口標準、超高速二代(Ultra High Speed-II,簡稱:UHS-II)接口標準、安全數(shù)字(Secure Digital,簡稱:SD)接口標準、記憶棒(Memory Stick,簡稱:MS)接口標準、多媒體存儲卡(Multi Media Card,簡稱:MMC)接口標準、小型快閃(Compact Flash,簡稱:CF)接口標準、集成驅動電子接口(Integrated Device Electronics,簡稱:IDE)標準或其他適合的標準。在本范例實施例中,連接接口單元402可與存儲器控制電路單元404封裝在一 個芯片中,或布設于一包含存儲器控制電路單元404的芯片外。
存儲器控制電路單元404用以執(zhí)行以硬件形式或固件形式實作的多個邏輯門或控制指令,并且根據(jù)主機11的指令在可復寫式非易失性存儲器模塊406與智慧卡芯片408中進行數(shù)據(jù)的寫入、讀取、抹除與合并等運作。
可復寫式非易失性存儲器模塊406是電性連接至存儲器控制電路單元404并且用以存儲主機11所寫入的數(shù)據(jù)??蓮蛯懯椒且资源鎯ζ髂K406可以是單階存儲單元(Single Level Cell,簡稱:SLC)NAND型快閃存儲器模塊(即,一個存儲單元中可存儲1個比特數(shù)據(jù)的快閃存儲器模塊)、多階存儲單元(Multi Level Cell,簡稱:MLC)NAND型快閃存儲器模塊(即,一個存儲單元中可存儲2個比特數(shù)據(jù)的快閃存儲器模塊)、復數(shù)階存儲單元(Triple Level Cell,簡稱:TLC)NAND型快閃存儲器模塊(即,一個存儲單元中可存儲3個比特數(shù)據(jù)的快閃存儲器模塊)、其他快閃存儲器模塊或其他具有相同特性的存儲器模塊。
智慧卡芯片408電性連接至存儲器控制電路單元404并且用以執(zhí)行計算、加密、雙向通信及安全認證等功能。在一范例實施例中,智慧卡芯片408為兼容于ISO 7816標準的接觸式智慧卡。然而,必須了解的是,本發(fā)明不限于此。例如,智慧卡芯片408也可是兼容于ISO 14443、ISO 15408或其他安全智慧卡標準的接觸或非接觸式智慧卡。又例如,智慧卡芯片408可為射頻識別(Radio Frequency Identification,簡稱:RFID)芯片、無線傳輸芯片(如:藍牙芯片)或多媒體控制芯片(如:數(shù)字錄音芯片)等。此外,值得說明的是,存儲器控制電路單元404與智慧卡芯片408可各為一獨立芯片,也可合并封裝為一單一芯片。在本范例實施例中,智慧卡芯片408是用以存儲加/解密金鑰、帳號和/或密碼等與安全驗證有關的敏感數(shù)據(jù)。然而,在另一范例實施例中,智慧卡芯片408也可以用以存儲一般數(shù)據(jù)。
圖5是本發(fā)明的一范例實施例所示出的存儲器控制電路單元的概要方塊圖。
請參照圖5,存儲器控制電路單元404包括存儲器管理電路502、主機接口504、存儲器接口506與智慧卡接口508。
存儲器管理電路502用以控制存儲器控制電路單元404的整體運作。具體來說,存儲器管理電路502具有多個控制指令,并且在存儲器存儲裝置10 運作時,此些控制指令會被執(zhí)行以進行數(shù)據(jù)的寫入、讀取與抹除等運作。以下說明存儲器管理電路502的操作時,等同于說明存儲器控制電路單元404的操作。
在本范例實施例中,存儲器管理電路502的控制指令是以固件形式來實作。例如,存儲器管理電路502具有微處理器單元(未示出)與只讀存儲器(未示出),并且此些控制指令是被燒錄至此只讀存儲器中。當存儲器存儲裝置10運作時,此些控制指令會由微處理器單元來執(zhí)行以對可復寫式非易失性存儲器模塊406進行數(shù)據(jù)的寫入、讀取與抹除等運作。在另一范例實施例中,存儲器管理電路502的控制指令也可以程序碼形式存儲于可復寫式非易失性存儲器模塊406的特定區(qū)域(例如,存儲器模塊中專用于存放系統(tǒng)數(shù)據(jù)的系統(tǒng)區(qū))中。此外,存儲器管理電路502具有微處理器單元(未示出)、只讀存儲器(未示出)及隨機存取存儲器(未示出)。特別是,此只讀存儲器具有驅動碼,并且當存儲器控制電路單元404被使能時,微處理器單元會先執(zhí)行此驅動碼段來將存儲于可復寫式非易失性存儲器模塊406中的控制指令載入至存儲器管理電路502的隨機存取存儲器中。之后,微處理器單元會運轉此些控制指令以進行數(shù)據(jù)的寫入、讀取與抹除等運作。
主機接口504是電性連接至存儲器管理電路502并且用以電性連接至連接接口單元402,以接收與識別主機11所傳送的指令與數(shù)據(jù)。也就是說,主機11所傳送的指令與數(shù)據(jù)會通過主機接口504來傳送至存儲器管理電路502。在本范例實施例中,主機接口504是兼容于SATA標準。然而,必須了解的是本發(fā)明不限于此,主機接口504也可以是兼容于PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-I接口標準、UHS-II接口標準、SD標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的數(shù)據(jù)傳輸標準。
存儲器接口506是電性連接至存儲器管理電路502并且用以存取可復寫式非易失性存儲器模塊406。也就是說,欲寫入至可復寫式非易失性存儲器模塊406的數(shù)據(jù)會通過存儲器接口506轉換為可復寫式非易失性存儲器模塊406所能接受的格式。例如,若存儲器管理電路502要存取可復寫式非易失性存儲器模塊406,存儲器接口506會傳送對應的指令序列。這些指令序列可包括一或多個信號,或是在總線上的數(shù)據(jù)。例如,在讀取指令序列中,會 包括讀取的辨識碼、存儲器地址等信息。
智慧卡接口508電性連接至存儲器管理電路502并且電性連接至智慧卡芯片408。具體來說,存儲器管理電路502會通過智慧卡接口508傳送指令至智慧卡芯片408或從智慧卡芯片408中接收回應。例如,在本范例實施例中,傳送給智慧卡芯片408的指令數(shù)據(jù)單元稱為指令-應用程序協(xié)定數(shù)據(jù)單元(Command-Application Protocol Data Unit,簡稱:C-APDU)并且來自于智慧卡芯片408的回應數(shù)據(jù)單元稱為回應-應用程序協(xié)定數(shù)據(jù)單元(Response-Application Protocol Data Unit,簡稱:R-APDU)。
在一范例實施例中,存儲器控制電路單元404還包括緩沖存儲器510、電源管理電路512與錯誤檢查與校正電路514。
緩沖存儲器510是電性連接至存儲器管理電路502并且用以暫存來自于主機11的數(shù)據(jù)與指令或來自于可復寫式非易失性存儲器模塊406或智慧卡芯片408的數(shù)據(jù)。
電源管理電路512是電性連接至存儲器管理電路502并且用以控制存儲器存儲裝置10的電源。
錯誤檢查與校正電路514是電性連接至存儲器管理電路502并且用以執(zhí)行錯誤檢查與校正程序以確保數(shù)據(jù)的正確性。具體來說,當存儲器管理電路502從主機11中接收到寫入指令時,錯誤檢查與校正電路514會為對應此寫入指令的數(shù)據(jù)產(chǎn)生對應的錯誤檢查與校正碼(Error Checking and Correcting Code,簡稱:ECC Code)和/或錯誤檢查碼(error detecting code,簡稱:EDC),并且存儲器管理電路502會將對應此寫入指令的數(shù)據(jù)與對應的錯誤檢查與校正碼和/或錯誤檢查碼寫入至可復寫式非易失性存儲器模塊406中。之后,當存儲器管理電路502從可復寫式非易失性存儲器模塊406中讀取數(shù)據(jù)時會同時讀取此數(shù)據(jù)對應的錯誤檢查與校正碼和/或錯誤檢查碼,并且錯誤檢查與校正電路514會依據(jù)此錯誤檢查與校正碼和/或錯誤檢查碼對所讀取的數(shù)據(jù)執(zhí)行錯誤檢查與校正程序。
圖6是本發(fā)明的一范例實施例所示出的管理實體抹除單元的范例示意圖。
必須了解的是,在此描述實體抹除單元的運作時,以“選擇”、“分組”、“劃分”、“關聯(lián)”等詞來操作實體抹除單元是邏輯上的概念。也就是說,實體抹除 單元在智慧卡芯片408與可復寫式非易失性存儲器模塊406中的實際位置并未更動,而是邏輯上對此些實體抹除單元進行操作。
請參照圖6,可復寫式非易失性存儲器模塊406具有實體抹除單元410(1)~410(F)且智慧卡芯片408具有實體抹除單元410(F+1)~410(N)。實體抹除單元410(0)~410(F)可屬于同一個存儲器晶粒(die)或者屬于不同的存儲器晶粒。實體抹除單元410(F+1)~410(N)也可屬于同一個存儲器晶?;蛘邔儆诓煌拇鎯ζ骶Я?。每一實體抹除單元分別具有復數(shù)個實體程序化單元,其中屬于同一個實體抹除單元的實體程序化單元可被獨立地寫入且被同時地抹除。
在本范例實施例中,實體程序化單元為程序化的最小單元。即,實體程序化單元為寫入數(shù)據(jù)的最小單元。例如,實體程序化單元為實體頁面或是實體扇(sector)。若實體程序化單元為實體頁面,則每一個實體程序化單元通常包括數(shù)據(jù)比特區(qū)與冗余比特區(qū)。數(shù)據(jù)比特區(qū)包含多個實體扇,用以存儲使用者的數(shù)據(jù),而冗余比特區(qū)用以存儲系統(tǒng)的數(shù)據(jù)(例如,錯誤更正碼)。在本范例實施例中,一個數(shù)據(jù)比特區(qū)包含32個實體扇,且一個實體扇的大小為512字節(jié)(byte,簡稱:B)。然而,在其他范例實施例中,數(shù)據(jù)比特區(qū)中也可包含8個、16個或數(shù)目更多或更少的實體扇。另一方面,實體抹除單元為抹除的最小單位。也即,每一實體抹除單元含有最小數(shù)目之一并被抹除的存儲單元。例如,實體抹除單元為實體區(qū)塊。此外,在另一范例實施例中,智慧卡芯片408也可以是包含其他類型的存儲媒體而非限于使用實體抹除單元來存儲數(shù)據(jù)。
存儲器管理電路502會配置邏輯單元610(0)~610(D)以映射至實體抹除單元410(0)~410(N)的至少一部份。例如,在本范例實施例中,主機11是通過邏輯區(qū)塊地址(logical block address,簡稱:LBA)來存取存儲在實體抹除單元410(0)~410(N)中的數(shù)據(jù),因此,每一個邏輯單元610(0)~610(D)是指一個邏輯區(qū)塊地址。在另一本范例實施例中,一個邏輯單元的大小等于一個邏輯扇的大小。例如,一個邏輯扇的大小為512千字節(jié)。然而,在另一范例實施例中,一個邏輯單元的大小也可以是更大或更小,并且每一個邏輯單元610(0)~610(D)也可以是指一個邏輯程序化單元、一個邏輯抹除單元或者由多個連續(xù)的邏輯區(qū)塊地址組成。每一個邏輯單元610(0)~610(D)是映射至一或多個實體單元。在本范例實施例中,一個實體單元是指一個實體扇。然而,在 另一范例實施例中,一個實體單元也可以是一個實體地址、一個實體程序化單元、一個實體抹除單元或者是由多個連續(xù)的實體地址組成,本發(fā)明不加以限制。存儲器管理電路502可將邏輯單元與實體單元之間的映射關系記錄于一或多個邏輯-實體映射表。當主機11欲從存儲器存儲裝置10讀取數(shù)據(jù)或寫入數(shù)據(jù)至存儲器存儲裝置10時,存儲器管理電路502可根據(jù)此一或多個邏輯-實體映射表來執(zhí)行對于存儲器存儲裝置10的數(shù)據(jù)存取。
在本范例實施例中,主機11運行有一或多個智慧卡應用程序410。主機11(或智慧卡應用程序410)可存取智慧卡芯片408以獲得操作所需的數(shù)據(jù)。例如,智慧卡應用程序410可以是即時通信應用程序、短信應用程序、通話應用程序或安全驗證應用程序等各種類型的應用程序,且智慧卡應用程序410的種類不限于上述。例如,主機11也運行一操作系統(tǒng)(operating system,簡稱:OS)并且基于此操作系統(tǒng)來運行智慧卡應用程序410。此操作系統(tǒng)例如是安卓(android)4.4.2或其他類型/版本的操作系統(tǒng)。
在本范例實施例中,主機11(或智慧卡應用程序410)會通過下達對一或多個臨時文件的存取指令與智慧卡芯片408進行通信。例如,主機11(或智慧卡應用程序410)會在智慧卡芯片408中建立一或多個臨時文件,并且將關于此些臨時文件所占用的邏輯區(qū)塊地址的信息傳遞給存儲器控制電路單元404(或存儲器管理電路502)。之后,當主機11傳送數(shù)據(jù)串至存儲器存儲裝置10時,存儲器控制電路單元404(或存儲器管理電路502)會判斷從主機11所傳送的數(shù)據(jù)串是否為寫入至此些臨時文件所占用的邏輯區(qū)塊地址。倘若數(shù)據(jù)串為寫入至此些臨時文件所占用的邏輯區(qū)塊地址時,則存儲器控制電路單元404(或存儲器管理電路502)會將數(shù)據(jù)串識別為給智慧卡芯片408的通信數(shù)據(jù)單元并且傳遞至智慧卡芯片408。
圖7為本發(fā)明的一范例實施例所示出的以文件系統(tǒng)格式化存儲器模塊的邏輯地址的范例。
請參照圖7,主機11的操作系統(tǒng)可使用文件系統(tǒng)將邏輯單元610(0)~610(D)的邏輯地址格式化成一個分割區(qū)(partition)700。分割區(qū)700包括主啟動記錄(Master Boot Record,MBR)區(qū)702、文件配置表區(qū)704、目錄區(qū)706與文件區(qū)708。
屬于主啟動記錄區(qū)702的邏輯地址是用以存儲便攜式存儲器存儲裝置10 的可存儲空間的系統(tǒng)信息。屬于文件配置表區(qū)704的邏輯地址是用以存儲文件配置表。文件配置表是用以記錄存儲文件的邏輯地址的登錄值。例如,文件配置表區(qū)中會存儲兩個文件配置表,其中一個文件配置表為正常存取所使用,而另一個文件配置表為備份文件配置表。屬于目錄區(qū)706的邏輯地址是用以存儲文件描述區(qū)塊(File Description Block,簡稱:FDB),其用以記錄目前存儲于便攜式存儲器存儲裝置10中的文件與目錄的屬性信息。特別是,文件描述區(qū)塊會記錄用以存儲此些文件的起始邏輯地址(即,起始簇)。屬于文件區(qū)708的邏輯地址是用以實際地存儲文件的內(nèi)容。在本范例實施例中,分割區(qū)700可以是符合FAT32規(guī)范的分割區(qū)。因此,屬于目錄區(qū)706與文件區(qū)708的扇區(qū)會被分組為簇(cluster)700(0)~700(W)。在本范例實施例中,每一個簇700(0)~700(W)的大小可為16千字節(jié),但本發(fā)明并不以此為限。在其他范例實施例中,每一個簇700(0)~700(W)的大小也可以是8千字節(jié)、32千字節(jié)或其他大小。
圖8為本發(fā)明的一范例實施例所示出的存儲裝置管理方法的流程圖,圖9A為本發(fā)明的一范例實施例所示出的智慧卡芯片開卡時在根目錄建立第一臨時文件的范例,并且圖9B為本發(fā)明的一范例實施例所示出的在臨時文件數(shù)據(jù)夾下建立第一臨時文件的范例。
請參照圖8,在步驟S805中,存儲器控制電路單元404(或存儲器管理電路502)會在存儲器存儲裝置10執(zhí)行初始化開卡程序時,在根目錄900下建立一個第一數(shù)據(jù)夾911,并且在第一數(shù)據(jù)夾911中建立多個臨時文件(也稱為第一臨時文件)921(1)~921(n),此時,存儲器存儲裝置10還沒從主機11接收過任何設定指令。
詳細來說,第一數(shù)據(jù)夾911是被配置在可復寫式非易失性存儲器模塊406中,而第一臨時文件921(1)~921(n)是存儲在文件系統(tǒng)連續(xù)的簇700(W-3)、700(W-2)、700(W-1)及700(W)中并且無法被刪除或修改。在存儲器存儲裝置10進行初始化開卡程序時,存儲器控制電路單元404(或存儲器管理電路502)會將第一臨時文件921(1)~921(n)的簇號(例如,起始簇號)匯集到根目錄900下的第一數(shù)據(jù)夾911。如此一來,第一臨時文件921(1)~921(n)便可建立于第一數(shù)據(jù)夾910中。在此,第一臨時文件921(1)~921(n)也可對應于邏輯單元610(D-127)~610(D)。
值得注意的是,由于在安卓(android)4.4.2以后的版本限制使用者只能存取特定的數(shù)據(jù)夾,或者說應用程序只在自己建立的數(shù)據(jù)夾下具有存取權限,因此在安卓4.4.2以后的版本中主機11的應用程序無法存取位于根目錄900下的第一數(shù)據(jù)夾911中的第一臨時文件921(1)~921(n),也就無法通過存取第一臨時文件921(1)~921(n)的邏輯單元610(D-127)~610(D)來傳送安全通道命令以執(zhí)行對智慧卡芯片408的存取操作。
在步驟S810中,存儲器控制電路單元404(或存儲器管理電路502)會從主機11接收設定指令630以在第二數(shù)據(jù)夾912中配置臨時文件數(shù)據(jù)夾913。
具體來說,在主機11的操作系統(tǒng)是安卓4.4.2以后的版本的情況下,主機11無法存取位于根目錄900下的第一數(shù)據(jù)夾911中的第一臨時文件921(1)~921(n)。在此例子中,智慧卡應用程序410會先掃描具有存取權限的第二數(shù)據(jù)夾912中是否存有第一臨時文件921(1)~921(n)。若第二數(shù)據(jù)夾912中不存在第一臨時文件921(1)~921(n)時,智慧卡應用程序410會先在第二數(shù)據(jù)夾912中建立一個動態(tài)臨時文件(也稱第二臨時文件922)。例如,第二臨時文件922會被存儲在對應邏輯單元610(100)的簇700(W-50)中。接著智慧卡應用程序410會傳送指示寫入數(shù)據(jù)串620到邏輯單元610(100)且含有指示配置第一臨時文件921(1)~921(n)的標頭的寫入指令到存儲器存儲裝置10,并且存儲器控制電路單元404(或存儲器管理電路502)會根據(jù)寫入指令所指示的邏輯地址(即,邏輯單元610(100))以及其標頭來識別對應數(shù)據(jù)串620的此寫入指令為特殊指令,并從數(shù)據(jù)串620中獲取指示在第二數(shù)據(jù)夾912中配置臨時文件數(shù)據(jù)夾913的設定指令630。也就是說,存儲器控制電路單元404(或存儲器管理電路502)可以根據(jù)包含在寫入指令中關于邏輯單元610(100)的信息以及其標頭來判斷是要進行第二數(shù)據(jù)夾912中配置臨時文件數(shù)據(jù)夾913。
雖然在上述范例實施例中說明了通過存取第二臨時文件922的邏輯地址來下達設定指令630,但本發(fā)明并不以此為限。當主機11對存儲器存儲裝置10下達一般的讀取/寫入指令以存取可復寫式非易失性存儲器模塊406時,此讀取/寫入指令也可包括設定指令630。也就是說,主機10可以在存取復寫式非易失性存儲器模塊406(而非智慧卡芯片408)時進行在第二數(shù)據(jù)夾912中配置臨時文件數(shù)據(jù)夾913及其后續(xù)的操作。
在步驟S815中,存儲器控制電路單元404(或存儲器管理電路502)會根據(jù)設定指令630將存儲第一臨時文件921(1)~921(n)的起始簇號連接到臨時文件數(shù)據(jù)夾913下。具體來說,存儲器控制電路單元404(或存儲器管理電路502)會根據(jù)設定指令630,在文件系統(tǒng)的目錄區(qū)706中將存儲第一臨時文件921(1)~921(n)的連續(xù)簇700(W-3)~700(W)的起始簇號700(W-3)匯集到臨時文件數(shù)據(jù)夾913下,如此一來,臨時文件數(shù)據(jù)夾913下就存有第一臨時文件921(1)~921(n)。由于臨時文件數(shù)據(jù)夾913是位于智慧卡應用程序410建立的第二數(shù)據(jù)夾912下,因此智慧卡應用程序410具有臨時文件數(shù)據(jù)夾913的存取權限,并可通過存取對應臨時文件數(shù)據(jù)夾913下的第一臨時文件921(1)~921(n)的邏輯單元610(D-127)~610(D)以執(zhí)行對智慧卡芯片408的存取操作。
值得注意的是,在第一臨時文件921(1)~921(n)的起始簇號700(W-3)匯集到臨時文件數(shù)據(jù)夾913下之后(即,臨時文件數(shù)據(jù)夾913存有第一臨時文件921(1)~921(n)之后),智慧卡應用程序410還可以傳送一個刪除指令給存儲器存儲裝置10,來指示刪除第二數(shù)據(jù)夾912下的第二臨時文件922。另外,在步驟S810中,若在第二數(shù)據(jù)夾912下可掃描到第一臨時文件921(1)~921(n),代表上述步驟S815已經(jīng)被執(zhí)行過,因此智慧卡應用程序410就不需要在第二數(shù)據(jù)夾912中建立第二臨時文件922,而可以直接通過存取對應臨時文件數(shù)據(jù)夾913中的第一臨時文件921(1)~921(n)的邏輯單元610(D-127)~610(D),以執(zhí)行對智慧卡芯片408的存取操作。
圖10為本發(fā)明的一范例實施例所示出的存儲裝置管理方法的詳細流程圖。
請參照圖10,當智慧卡應用程序410被執(zhí)行以傳送指令至智慧卡芯片408時,在步驟S1001中,智慧卡應用程序410會判斷第二數(shù)據(jù)夾912是否存有第一臨時文件921(1)~921(n)。
若第二數(shù)據(jù)夾912存有第一臨時文件921(1)~921(n)時,在步驟S1003中,智慧卡應用程序410會將含有欲傳送給智慧卡芯片408的指令的數(shù)據(jù)串與指示寫入數(shù)據(jù)至第一臨時文件921(1)~921(n)所屬的邏輯地址(即,存儲第一臨時文件921(1)~921(n)的簇)的寫入指令傳送至存儲器存儲裝置10。
在步驟S1005中,存儲器控制電路單元404(或存儲器管理電路502)會 從主機11的智慧卡應用程序410接收此寫入指令與對應此寫入指令的數(shù)據(jù)串。
在步驟S1007中,存儲器控制電路單元404(或存儲器管理電路502)會判斷此寫入指令的邏輯地址是否屬于第一臨時文件921(1)~921(n)對應的邏輯單元610(D-127)~610(D)。
若此寫入指令的邏輯地址屬于第一臨時文件921(1)~921(n)對應的邏輯單元610(D-127)~610(D)時,在步驟S1009中存儲器控制電路單元404(或存儲器管理電路502)會將對應此寫入指令的數(shù)據(jù)串中的指令傳送給智慧卡芯片408。
若此寫入指令的邏輯地址不屬于第一臨時文件921(1)~921(n)對應的邏輯單元610(D-127)~610(D)時,在步驟S1011中存儲器控制電路單元404(或存儲器管理電路502)會依據(jù)此寫入指令的邏輯地址將此寫入指令的數(shù)據(jù)串寫入至可復寫式易失性存儲器模塊406中。
若在步驟S1001中判斷第二數(shù)據(jù)夾912未存有第一臨時文件921(1)~921(n)時,在步驟S1013中,智慧卡應用程序410會在第二數(shù)據(jù)夾912中建立第二臨時文件922并且將關于存儲第二臨時文件922的邏輯地址(即,簇)的信息傳送給存儲器控制電路單元404(或存儲器管理電路502)。
之后,在步驟S1015中,智慧卡應用程序410會利用依據(jù)第二臨時文件922所建立的安全通道傳送指示在第二數(shù)據(jù)夾912中建立臨時文件數(shù)據(jù)夾913的設定指令630給存儲器控制電路單元404(或存儲器管理電路502)。
接著在步驟S1017中,存儲器控制電路單元404(或存儲器管理電路502)會根據(jù)設定指令630在第二數(shù)據(jù)夾912下建立臨時文件數(shù)據(jù)夾913。
在步驟S1019中,存儲器控制電路單元404(或存儲器管理電路502)會根據(jù)設定指令630在對應文件系統(tǒng)的目錄區(qū)706中將存儲第一臨時文件921(1)~921(n)的連續(xù)簇700(W-3)~700(W)的起始簇號700(W-3)匯集至第二數(shù)據(jù)夾912(如圖9B所示)。
之后,在步驟S1021中,智慧卡應用程序410會傳送一個刪除指令以刪除第一數(shù)據(jù)夾911。并且之后,步驟S1003會被執(zhí)行。
值得注意的是,雖然智慧卡應用程序410在第二數(shù)據(jù)夾912中具有存取權限,但是由于第二數(shù)據(jù)夾912中所存儲的第一臨時文件921(1)~921(n)位于 文件系統(tǒng)的簇700(W-3)~700(W),而這些簇或者是這些簇對應到的可復寫式非易失性存儲器406的實體抹除單元在存儲器存儲裝置10開卡時會被設定為無法刪除的狀態(tài)。因此倘若存儲器控制電路單元404(或存儲器管理電路502)接收到主機11的智慧卡應用程序410指示刪除第二數(shù)據(jù)夾912中第一臨時文件921(1)~921(n)的刪除指令時,存儲器控制電路單元404(或存儲器管理電路502)不會刪除第一臨時文件921(1)~921(n),并且傳送錯誤信息給主機11。
圖11A到圖11C為本發(fā)明的一范例實施例所示出的在臨時文件數(shù)據(jù)夾下建立第一臨時文件時目錄區(qū)的更動的示意圖。
請參照圖11A,在該存儲器存儲裝置10被初始化開卡時,在第一臨時文件目錄區(qū)1101中記錄的第一臨時文件921(1)~921(n)的起始簇號(即,0x00036F01)會匯集到根目錄區(qū)1103下,此時第一臨時文件921(1)~921(n)會存儲于根目錄900下的第一數(shù)據(jù)夾911中,其中第一數(shù)據(jù)夾911的簇號為0x00000000。
在圖11B中,當存儲器控制電路單元404(或存儲器管理電路502)從主機11接收設定指令630并在第二數(shù)據(jù)夾912中配置臨時文件數(shù)據(jù)夾913之后,第一臨時文件921(1)~921(n)的起始簇號(即,0x00036F01)會匯集到第二數(shù)據(jù)夾目錄區(qū)1105下,此時第一臨時文件921(1)~921(n)會存儲于第二數(shù)據(jù)夾912下的臨時文件數(shù)據(jù)夾913中,其中臨時文件數(shù)據(jù)夾913的簇號為0x00000006。同時,原先根目錄區(qū)1103對應第一臨時文件921(1)~921(n)起始簇號的數(shù)據(jù)會被變更,并且其第一個字節(jié)會被設定為E5,此時根目錄900下的第一數(shù)據(jù)夾911已經(jīng)被刪除。
在圖11C中,存儲第一臨時文件921(1)~921(n)起始簇號已經(jīng)成功匯集到臨時文件數(shù)據(jù)夾913下,因此主機11的智慧卡應用程序410可通過存取第一臨時文件921(1)~921(n)的邏輯地址來存取智慧卡芯片408。
綜上所述,本發(fā)明通過將第一臨時文件的連續(xù)簇的簇號匯集到主機可存取的第二數(shù)據(jù)夾中,使得主機存取第一臨時文件的邏輯地址時能夠正確地存取智慧卡芯片。即使主機存取比簇大小還要大的數(shù)據(jù)時,由于第一臨時文件的簇是連續(xù)的,因此也不會產(chǎn)生存取數(shù)據(jù)不正確的問題。
最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領域的普通 技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的范圍。