響應(yīng)讀取方法及數(shù)據(jù)傳輸系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種響應(yīng)讀取方法及數(shù)據(jù)傳輸系統(tǒng)。此方法包括:由系統(tǒng)發(fā)送對應(yīng)于第一暫時文件的第一操作指令至存儲器存儲裝置,其中第一操作指令指示智能卡執(zhí)行第一操作。此方法還包括:由系統(tǒng)執(zhí)行第一虛設(shè)文件的第一寫入操作,此第一寫入操作用以更新快取存儲器中的第一數(shù)據(jù)。此方法還包括:由系統(tǒng)執(zhí)行對應(yīng)于第二暫時文件的響應(yīng)讀取操作,其中所述響應(yīng)讀取操作用以讀取智能卡對應(yīng)于所述第一操作指令的響應(yīng)。因此,本發(fā)明可確保主機系統(tǒng)所接收到的響應(yīng)數(shù)據(jù)的正確性。
【專利說明】
響應(yīng)讀取方法及數(shù)據(jù)傳輸系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種響應(yīng)讀取方法,尤其涉及一種用于具有主機系統(tǒng)與包括可復(fù)寫式非易失性存儲器模塊與智能卡的存儲器存儲裝置的數(shù)據(jù)傳輸系統(tǒng)的響應(yīng)讀取方法及數(shù)據(jù)傳輸系統(tǒng)。
【背景技術(shù)】
[0002]隨著使用者逐漸接受使用電子錢包及預(yù)付儲值,使得智能卡的使用日益普及。智能卡(Smart Card)是具有例如微處理器、卡操作系統(tǒng)、安全模塊及存儲器的組件的集成電路芯片(IC芯片),以允許持有者執(zhí)行預(yù)定操作。智能卡提供計算、加密、雙向通信及安全功能,使得這張卡片除了存儲數(shù)據(jù)的功能外還能達到對其所存儲的數(shù)據(jù)加以保護的功能。使用全球移動通信系統(tǒng)(GSM)機制的蜂巢式電話中所使用的用戶識別模塊(SubscriberIdentificat1n Module, SIM)卡為智能卡的其中一個應(yīng)用范例。然而,智能卡本身受限于存儲容量,因此近年來開始與大存儲容量的存儲卡作結(jié)合,以擴增智能卡的存儲容量。
[0003]存儲卡是一種數(shù)據(jù)存儲設(shè)備,其一般是以NAND快閃存儲器作為存儲媒體。NAND快閃存儲器具有可寫入、可抹除、以及斷電后仍可保存數(shù)據(jù)的優(yōu)點,此外,隨著制造技術(shù)的改良,NAND快閃存儲器具有體積小、存取速度快、與耗電量低等優(yōu)點。一般來說,若使用者要存取存儲卡內(nèi)的數(shù)據(jù)必須通過讀卡機來存取,因此在將智能卡結(jié)合至存儲卡的應(yīng)用中,也僅能通過讀卡機來以接觸式(contact)讀取存儲卡與智能卡內(nèi)的數(shù)據(jù)。然而,隨著近距離無線通訊(Near Field Communicat1n, NFC)的發(fā)展,許多非接觸式(contactless)感應(yīng)技術(shù)已廣泛應(yīng)用于生活中,例如捷運票卡、門禁卡等。
[0004]然而,當主機系統(tǒng)在讀取某些屬于智能卡的數(shù)據(jù)時,主機系統(tǒng)可能無法直接讀取智能卡回復(fù)的數(shù)據(jù),而是讀到主機系統(tǒng)的快取存儲器內(nèi)的舊數(shù)據(jù)?;耍枰l(fā)展一套能夠在結(jié)合快閃存儲器與智能卡的應(yīng)用中無誤地傳遞智能卡的響應(yīng)信息的系統(tǒng)和方法。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種響應(yīng)讀取方法及數(shù)據(jù)傳輸系統(tǒng),其可確保主機系統(tǒng)所接收到的響應(yīng)數(shù)據(jù)的正確性。
[0006]本發(fā)明的一范例實施例提供一種響應(yīng)讀取方法,其用于系統(tǒng)與存儲器存儲裝置之間的數(shù)據(jù)傳輸,其中所述系統(tǒng)具有快取存儲器,所述存儲器存儲裝置具有智能卡與可復(fù)寫式非易失性存儲器模塊,所述響應(yīng)讀取方法包括:由所述系統(tǒng)發(fā)送對應(yīng)于第一暫時文件的第一操作指令序列至所述存儲器存儲裝置,其中所述第一操作指令序列用以指示所述智能卡執(zhí)行第一操作;由所述系統(tǒng)執(zhí)行對應(yīng)于第一虛設(shè)文件的第一寫入操作,其中所述第一寫入操作用以更新所述快取存儲器中的第一數(shù)據(jù);以及由所述系統(tǒng)執(zhí)行對應(yīng)于第二暫時文件的響應(yīng)讀取操作,其中所述響應(yīng)讀取操作用以讀取所述智能卡對應(yīng)于所述第一操作指令序列的響應(yīng)。
[0007]在本發(fā)明的一范例實施例中,在所述系統(tǒng)執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作的步驟之前,所述響應(yīng)讀取方法還包括:由所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的第一讀取操作;由所述系統(tǒng)判斷所述第一讀取操作所獲得的第一讀取數(shù)據(jù)中的識別信息是否與第一預(yù)設(shè)識別信息一致;以及若所述第一讀取數(shù)據(jù)中的所述識別信息與所述第一預(yù)設(shè)識別信息不一致,由所述系統(tǒng)執(zhí)行對應(yīng)于第二虛設(shè)文件的第二寫入操作,其中所述第二寫入操作用以更新所述快取存儲器中的第二數(shù)據(jù),其中所述第一虛設(shè)文件與所述第二虛設(shè)文件不同。
[0008]在本發(fā)明的一范例實施例中,由所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作的步驟包括:由所述系統(tǒng)發(fā)送第一寫入指令序列至所述存儲器存儲裝置,其中所述第一寫入指令序列指示將第一預(yù)設(shè)數(shù)據(jù)寫入至對應(yīng)于所述第一虛設(shè)文件的第一邏輯單元,其中所述第一預(yù)設(shè)數(shù)據(jù)包含與所述第一預(yù)設(shè)識別信息一致的第一識別信息;以及由所述系統(tǒng)發(fā)送第二寫入指令序列至所述存儲器存儲裝置,其中所述第二寫入指令序列指示將第二預(yù)設(shè)數(shù)據(jù)寫入至所述第一邏輯單元,其中所述第二預(yù)設(shè)數(shù)據(jù)包含與所述第一預(yù)設(shè)識別信息不一致的第二識別信息,其中所述第二預(yù)設(shè)數(shù)據(jù)是用以取代暫存于所述快取存儲器中的所述第一預(yù)設(shè)數(shù)據(jù)。
[0009]在本發(fā)明的一范例實施例中,由所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一讀取操作的步驟包括:由所述系統(tǒng)發(fā)送第一讀取指令序列至所述存儲器存儲裝置,其中所述第一讀取指令序列用以讀取存儲于所述第一邏輯單元的所述第一預(yù)設(shè)數(shù)據(jù)。
[0010]在本發(fā)明的一范例實施例中,所述響應(yīng)讀取方法還包括:由所述存儲器存儲裝置接收所述第一寫入指令序列并且將所述第一預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中;以及由所述存儲器存儲裝置接收所述第二寫入指令序列并且不將所述第二預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中。
[0011]在本發(fā)明的一范例實施例中,由所述系統(tǒng)執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作的步驟是在所述系統(tǒng)判定所述第一讀取數(shù)據(jù)中的識別信息與所述第一預(yù)設(shè)識別信息一致之后執(zhí)行。
[0012]在本發(fā)明的一范例實施例中,由所述系統(tǒng)執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作的步驟包括:由所述系統(tǒng)判斷所述響應(yīng)讀取操作所獲得的響應(yīng)數(shù)據(jù)中的識別信息是否與第二預(yù)設(shè)識別信息一致,其中由所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作的步驟是在所述系統(tǒng)判斷所述響應(yīng)數(shù)據(jù)中的所述識別信息與所述第二預(yù)設(shè)識別信息不一致之后執(zhí)行。
[0013]在本發(fā)明的一范例實施例中,所述第一操作指令序列包括與所述第二預(yù)設(shè)識別信息一致的第三識別信息,所述響應(yīng)讀取方法還包括:由所述存儲器存儲裝置接收所述第一操作指令序列并且記錄所述第一操作指令序列中的所述第三識別信息;以及由所述存儲器存儲裝置將所述第三識別信息加入至所述智能卡對應(yīng)于所述第一操作指令序列的所述響應(yīng)中。
[0014]在本發(fā)明的一范例實施例中,由所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作的步驟包括:由所述系統(tǒng)判斷所述第一虛設(shè)文件是否已存在;若所述第一虛設(shè)文件不存在,由所述系統(tǒng)建立所述第一虛設(shè)文件并且發(fā)送第三寫入指令序列至所述存儲器存儲裝置,其中所述第三寫入指令序列指示將第三預(yù)設(shè)數(shù)據(jù)寫入至對應(yīng)于所述第一虛設(shè)文件的第一邏輯單元,其中所述第三寫入指令序列包含與第三預(yù)設(shè)識別信息一致的第四識別信息;以及若所述第一虛設(shè)文件已存在,由所述系統(tǒng)發(fā)送第四寫入指令序列至所述存儲器存儲裝置,其中所述第四寫入指令序列指示將第四預(yù)設(shè)數(shù)據(jù)寫入至所述第一邏輯單元,其中所述第四寫入指令序列包含與所述第三預(yù)設(shè)識別信息不一致的第五識別信息。
[0015]在本發(fā)明的一范例實施例中,所述響應(yīng)讀取方法還包括:由所述存儲器存儲裝置接收所述第三寫入指令序列并且將所述第三預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中;以及由所述存儲器存儲裝置接收所述第四寫入指令序列并且不將所述第四預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中。
[0016]本發(fā)明的另一范例實施例提供一種數(shù)據(jù)傳輸系統(tǒng),其包括系統(tǒng)與存儲器存儲裝置,所述系統(tǒng)包括快取存儲器,所述存儲器存儲裝置包括連接接口單元、存儲器控制電路單元、可復(fù)寫式非易失性存儲器模塊及智能卡,所述連接接口單元用以電性連接至所述系統(tǒng),所述存儲器控制電路單元電性連接至所述連接接口單元,所述可復(fù)寫式非易失性存儲器模塊與所述智能卡分別電性連接至所述存儲器控制電路單元,其中所述系統(tǒng)用以發(fā)送對應(yīng)于第一暫時文件的第一操作指令序列至所述存儲器存儲裝置,其中所述第一操作指令序列用以指示所述智能卡執(zhí)行第一操作,其中所述系統(tǒng)還用以執(zhí)行對應(yīng)于第一虛設(shè)文件的第一寫入操作,其中所述第一寫入操作用以更新所述快取存儲器中的第一數(shù)據(jù),其中所述系統(tǒng)還用以執(zhí)行對應(yīng)于第二暫時文件的響應(yīng)讀取操作,其中所述響應(yīng)讀取操作用以讀取所述智能卡對應(yīng)于所述第一操作指令序列的響應(yīng)。
[0017]在本發(fā)明的一范例實施例中,在所述系統(tǒng)執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作之前,所述系統(tǒng)還用以執(zhí)行對應(yīng)于所述第一虛設(shè)文件的第一讀取操作,所述系統(tǒng)還用以判斷所述第一讀取操作所獲得的第一讀取數(shù)據(jù)中的識別信息是否與第一預(yù)設(shè)識別信息一致,若所述第一讀取數(shù)據(jù)中的所述識別信息與所述第一預(yù)設(shè)識別信息不一致,所述系統(tǒng)還用以執(zhí)行對應(yīng)于第二虛設(shè)文件的第二寫入操作,其中所述第二寫入操作用以更新所述快取存儲器中的第二數(shù)據(jù),其中所述第一虛設(shè)文件與所述第二虛設(shè)文件不同。
[0018]在本發(fā)明的一范例實施例中,所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作包括:發(fā)送第一寫入指令序列至所述存儲器存儲裝置,其中所述第一寫入指令序列指示將第一預(yù)設(shè)數(shù)據(jù)寫入至對應(yīng)于所述第一虛設(shè)文件的第一邏輯單元,其中所述第一預(yù)設(shè)數(shù)據(jù)包含與所述第一預(yù)設(shè)識別信息一致的第一識別信息;以及發(fā)送第二寫入指令序列至所述存儲器存儲裝置,其中所述第二寫入指令序列指示將第二預(yù)設(shè)數(shù)據(jù)寫入至所述第一邏輯單元,其中所述第二預(yù)設(shè)數(shù)據(jù)包含與所述第一預(yù)設(shè)識別信息不一致的第二識別信息,其中所述第二預(yù)設(shè)數(shù)據(jù)是用以取代暫存于所述快取存儲器中的所述第一預(yù)設(shè)數(shù)據(jù)。
[0019]在本發(fā)明的一范例實施例中,所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一讀取操作包括:發(fā)送第一讀取指令序列至所述存儲器存儲裝置,其中所述第一讀取指令序列用以讀取存儲于所述第一邏輯單元的所述第一預(yù)設(shè)數(shù)據(jù)。
[0020]在本發(fā)明的一范例實施例中,所述存儲器控制電路單元用以接收所述第一寫入指令序列并且將所述第一預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中,所述存儲器控制電路單元還用以接收所述第二寫入指令序列并且不將所述第二預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中。
[0021]在本發(fā)明的一范例實施例中,所述系統(tǒng)是在判定所述第一讀取數(shù)據(jù)中的所述識別信息與所述第一預(yù)設(shè)識別信息一致之后執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作。
[0022]在本發(fā)明的一范例實施例中,所述系統(tǒng)執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作包括:判斷所述響應(yīng)讀取操作所獲得的響應(yīng)數(shù)據(jù)中的識別信息是否與第二預(yù)設(shè)識別信息一致,其中所述系統(tǒng)是在判斷所述響應(yīng)數(shù)據(jù)中的所述識別信息與所述第二預(yù)設(shè)識別信息不一致之后執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作。
[0023]在本發(fā)明的一范例實施例中,所述第一操作指令序列包括與所述第二預(yù)設(shè)識別信息一致的第三識別信息,所述存儲器控制電路單元用以接收所述第一操作指令序列并且記錄所述第一操作指令序列中的所述第三識別信息,所述存儲器控制電路單元還用以將所述第三識別信息加入至所述智能卡對應(yīng)于所述第一操作指令序列的所述響應(yīng)中。
[0024]在本發(fā)明的一范例實施例中,所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作包括:判斷所述第一虛設(shè)文件是否已存在;若所述第一虛設(shè)文件不存在,建立所述第一虛設(shè)文件并且發(fā)送第三寫入指令序列至所述存儲器存儲裝置,其中所述第三寫入指令序列指示將第三預(yù)設(shè)數(shù)據(jù)寫入至對應(yīng)于所述第一虛設(shè)文件的第一邏輯單元,其中所述第三寫入指令序列包含與第三預(yù)設(shè)識別信息一致的第四識別信息;以及若所述第一虛設(shè)文件已存在,發(fā)送第四寫入指令序列至所述存儲器存儲裝置,其中所述第四寫入指令序列指示將第四預(yù)設(shè)數(shù)據(jù)寫入至所述第一邏輯單元,其中所述第四寫入指令序列包含與所述第三預(yù)設(shè)識別信息不一致的第五識別信息。
[0025]在本發(fā)明的一范例實施例中,所述存儲器控制電路單元還用以接收所述第三寫入指令序列并且將所述第三預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中,所述存儲器控制電路單元還用以接收所述第四寫入指令序列并且不將所述第四預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中。
[0026]基于上述,通過對使用不同邏輯單元的虛設(shè)文件執(zhí)行寫入操作,本發(fā)明可加速排除掉快取存儲器中的舊數(shù)據(jù)。藉此,可增加主機系統(tǒng)從智能卡讀取到“正確的”響應(yīng)信息的機率。
[0027]為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。
【附圖說明】
[0028]圖1是根據(jù)本發(fā)明的一范例實施例所示的主機系統(tǒng)與存儲器存儲裝置的示意圖;
[0029]圖2是根據(jù)本發(fā)明的一范例實施例所示的電腦、輸入/輸出裝置與存儲器存儲裝置的示意圖;
[0030]圖3是根據(jù)本發(fā)明的一范例實施例所示的主機系統(tǒng)與存儲器存儲裝置的示意圖;
[0031]圖4是圖1所示的存儲器存儲裝置的概要方塊圖;
[0032]圖5是根據(jù)本發(fā)明的一范例實施例所示的存儲器控制電路單元的概要方塊圖;
[0033]圖6是根據(jù)本發(fā)明的一范例實施例所示的管理實體抹除單元的示意圖;
[0034]圖7是根據(jù)本發(fā)明的一范例實施例所示的數(shù)據(jù)傳輸系統(tǒng)的概要方塊圖;
[0035]圖8A至圖81是根據(jù)本發(fā)明的第一范例實施例所示的更新快取與讀取響應(yīng)的示意圖;
[0036]圖9A至圖9C是根據(jù)本發(fā)明的第二范例實施例所示的更新快取與讀取響應(yīng)的示意圖;
[0037]圖10是根據(jù)本發(fā)明的一范例實施例所示的響應(yīng)讀取方法的流程圖。
[0038]附圖標記說明:
[0039]11:主機系統(tǒng);
[0040]12:電腦;
[0041]122:微處理器;
[0042]124:隨機存取存儲器(RAM);
[0043]13:輸入/輸出裝置;
[0044]126:系統(tǒng)總線;
[0045]128:數(shù)據(jù)傳輸接口;
[0046]21:鼠標;
[0047]22:鍵盤;
[0048]23:顯示器;
[0049]24:打印機;
[0050]25:隨身盤;
[0051]26:存儲卡;
[0052]27:固態(tài)硬盤;
[0053]31:數(shù)碼相機;
[0054]32: SD 卡;
[0055]33:MMC 卡;
[0056]34:記憶棒;
[0057]35:CF 卡;
[0058]36:嵌入式存儲裝置;
[0059]10:存儲器存儲裝置;
[0060]402:連接接口單元;
[0061]404:存儲器控制電路單元;
[0062]406:可復(fù)寫式非易失性存儲器模塊;
[0063]408:智能卡;
[0064]410(0)?410 (F):實體抹除單元;
[0065]502:存儲器管理電路;
[0066]504:主機接口;
[0067]506:存儲器接口;
[0068]508:緩沖存儲器;
[0069]510:電源管理電路;
[0070]512:錯誤檢查與校正電路;
[0071]610(0)?610(D):邏輯單元;
[0072]710(0)?710 (M):快取區(qū);
[0073]700:數(shù)據(jù)傳輸系統(tǒng);
[0074]710:快取存儲器;
[0075]712:處理器;
[0076]714:應(yīng)用程序;
[0077]810(0)?810(A):實體單元;
[0078]D1、D2、D3:數(shù)據(jù);
[0079]H1、H2、Token 0、Token 1:識別信息;
[0080]SlOOl ?S1003:步驟。
【具體實施方式】
[0081]—般而言,存儲器存儲裝置(也稱,存儲器存儲系統(tǒng))包括可復(fù)寫式非易失性存儲器模塊與控制器(也稱,控制電路)。通常存儲器存儲裝置是與主機系統(tǒng)一起使用,以使主機系統(tǒng)可將數(shù)據(jù)寫入至存儲器存儲裝置或從存儲器存儲裝置中讀取數(shù)據(jù)。
[0082]圖1是根據(jù)本發(fā)明的一范例實施例所示的主機系統(tǒng)與存儲器存儲裝置的示意圖。圖2是根據(jù)本發(fā)明的一范例實施例所示的電腦、輸入/輸出裝置與存儲器存儲裝置的示意圖。
[0083]請參照圖1,主機系統(tǒng)11 一般包括電腦12與輸入/輸出(input/output, I/O)裝置1106。電腦12包括微處理器122、隨機存取存儲器(random access memory, RAM) 124、系統(tǒng)總線126與數(shù)據(jù)傳輸接口 128。輸入/輸出裝置13包括如圖2的鼠標21、鍵盤22、顯示器23與打印機24。必須了解的是,圖2所示的裝置非限制輸入/輸出裝置13,輸入/輸出裝置13可還包括其他裝置。
[0084]在本發(fā)明實施例中,存儲器存儲裝置10是通過數(shù)據(jù)傳輸接口 128與主機系統(tǒng)11的其他元件電性連接。通過微處理器122、隨機存取存儲器124與輸入/輸出裝置13的運作可將數(shù)據(jù)寫入至存儲器存儲裝置10或從存儲器存儲裝置10中讀取數(shù)據(jù)。例如,存儲器存儲裝置10可以是如圖2所示的隨身盤25、存儲卡26或固態(tài)硬盤(Solid State Drive, SSD) 27等的可復(fù)寫式非易失性存儲器存儲裝置。
[0085]圖3是根據(jù)本發(fā)明的一范例實施例所示的主機系統(tǒng)與存儲器存儲裝置的示意圖。
[0086]—般而言,主機系統(tǒng)11為可實質(zhì)地與存儲器存儲裝置10配合以存儲數(shù)據(jù)的任意系統(tǒng)。雖然在本范例實施例中,主機系統(tǒng)11是以電腦系統(tǒng)來做說明,然而,在另一范例實施例中主機系統(tǒng)11可以是數(shù)碼相機、攝影機、通信裝置、音訊播放器或視訊播放器等系統(tǒng)。例如,在主機系統(tǒng)為圖3中的數(shù)碼相機(攝影機)31時,可復(fù)寫式非易失性存儲器存儲裝置則為其所使用的SD卡32、MMC卡33、記憶棒(memory stick) 34、CF卡35或嵌入式存儲裝置36 (如圖3所示)。嵌入式存儲裝置36包括嵌入式多媒體卡(Embedded MMC, eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連接于主機系統(tǒng)的基板上。
[0087]圖4是圖1所示的存儲器存儲裝置的概要方塊圖。
[0088]請參照圖4,存儲器存儲裝置10包括連接接口單元402、存儲器控制電路單元404、可復(fù)寫式非易失性存儲器模塊406以及智能卡408。
[0089]連接接口單元402是相容于安全數(shù)字(Secure Digital, SD)接口標準。然而,必須了解的是,本發(fā)明不限于此,連接接口單元402也可以是符合并行高級技術(shù)附件(ParallelAdvanced Technology Attachment, PATA)標準、電氣和電子工程師協(xié)會(Institute ofElectrical and Electronic Engineers, IEEE) 1394標準、高速外設(shè)部件互連(PeripheralComponent Interconnect Express, PCI Express)標準、通用串行總線(Universal SerialBus, USB)標準、超高速一代(Ultra High Speed-1,UHS-1)接口標準、超高速二代(UltraHigh Speed-1I, UHS-1I)接口標準、串行高級技術(shù)附件(Serial Advanced TechnologyAttachment, SATA)標準、記憶棒(Memory Stick, MS)接口標準、多媒體存儲卡(MultiMedia Card, MMC)接口標準、小型快閃(Compact Flash, CF)接口標準、整合式驅(qū)動電子接口(Integrated Device Electronics, IDE)標準或其他適合的標準。在本范例實施例中,連接接口單元402可與存儲器控制電路單元404封裝在一個芯片中,或布設(shè)于一包含存儲器控制電路單元404的芯片外。
[0090]存儲器控制電路單元404用以執(zhí)行以硬件型式或固件型式實作的多個邏輯閘或控制指令,并且根據(jù)主機系統(tǒng)11的指令在可復(fù)寫式非易失性存儲器模塊406與智能卡408中進行數(shù)據(jù)的寫入、讀取、抹除與合并等運作。
[0091]可復(fù)寫式非易失性存儲器模塊406是電性連接至存儲器控制電路單元404并且用以存儲主機系統(tǒng)11所寫入的數(shù)據(jù)??蓮?fù)寫式非易失性存儲器模塊406可以是單階記憶胞(Single Level Cell,SLC) NAND型快閃存儲器模塊(S卩,一個記憶胞中可存儲I個比特數(shù)據(jù)的快閃存儲器模塊)、多階記憶胞(Mu11i Level Cell, MLC) NAND型快閃存儲器模塊(S卩,一個記憶胞中可存儲2個比特數(shù)據(jù)的快閃存儲器模塊)、復(fù)數(shù)階記憶胞(Triple Level Cell,TLONAND型快閃存儲器模塊(即,一個記憶胞中可存儲3個比特數(shù)據(jù)的快閃存儲器模塊)、其他快閃存儲器模塊或其他具有相同特性的存儲器模塊。
[0092]智能卡408電性連接至存儲器控制電路單元404并且用以執(zhí)行計算、加密、雙向通信及安全認證等功能。在一范例實施例中,智能卡408為相容于ISO 7816標準的接觸式智能卡。然而,必須了解的是,本發(fā)明不限于此。例如,智能卡408也可是相容于ISO 14443、ISO 15408或其他安全智能卡標準的接觸或非接觸式智能卡。又例如,智能卡408可為射頻識別(Rad1 Frequency Identificat1n, RFID)芯片、無線傳輸芯片(如:藍芽芯片)或多媒體控制芯片(如:數(shù)位錄音芯片)等。此外,值得說明的是,存儲器控制電路單元404與智能卡408可各為一獨立芯片,也可合并封裝為一單一芯片。在本范例實施例中,智能卡408是用以存儲加/解密金鑰、賬號和/或密碼等與安全驗證有關(guān)的敏感數(shù)據(jù)。然而,在另一范例實施例中,智能卡408也可以用以存儲一般數(shù)據(jù)。
[0093]圖5是根據(jù)本發(fā)明的一范例實施例所示的存儲器控制電路單元的概要方塊圖。
[0094]請參照圖5,存儲器控制電路單元404包括存儲器管理電路502、主機接口 504與存儲器接口 506。
[0095]存儲器管理電路502用以控制存儲器控制電路單元404的整體運作。具體來說,存儲器管理電路502具有多個控制指令,并且在存儲器存儲裝置10運作時,此些控制指令會被執(zhí)行以進行數(shù)據(jù)的寫入、讀取與抹除等運作。以下說明存儲器管理電路502的操作時,等同于說明存儲器控制電路單元404的操作。
[0096]在本范例實施例中,存儲器管理電路502的控制指令是以固件型式來實作。例如,存儲器管理電路502具有微處理器單元(未示出)與只讀存儲器(未示出),并且此些控制指令是被燒錄至此只讀存儲器中。當存儲器存儲裝置10運作時,此些控制指令會由微處理器單元來執(zhí)行以進行數(shù)據(jù)的寫入、讀取與抹除等運作。
[0097]在另一范例實施例中,存儲器管理電路502的控制指令也可以程序碼型式存儲于可復(fù)寫式非易失性存儲器模塊406的特定區(qū)域(例如,存儲器模塊中專用于存放系統(tǒng)數(shù)據(jù)的系統(tǒng)區(qū))中。此外,存儲器管理電路502具有微處理器單元(未示出)、唯讀存儲器(未示出)及隨機存取存儲器(未示出)。特別是,此只讀存儲器具有驅(qū)動碼,并且當存儲器控制電路單元404被致能時,微處理器單元會先執(zhí)行此驅(qū)動碼段來將存儲于可復(fù)寫式非易失性存儲器模塊406中的控制指令載入至存儲器管理電路502的隨機存取存儲器中。之后,微處理器單元會運轉(zhuǎn)此些控制指令以進行數(shù)據(jù)的寫入、讀取與抹除等運作。
[0098]主機接口 504是電性連接至存儲器管理電路502并且用以電性連接至連接接口單元402,以接收與識別主機系統(tǒng)11所傳送的指令與數(shù)據(jù)。也就是說,主機系統(tǒng)11所傳送的指令與數(shù)據(jù)會通過主機接口 504來傳送至存儲器管理電路502。在本范例實施例中,主機接口 504是相容于SD標準。然而,必須了解的是本發(fā)明不限于此,主機接口 504也可以是相容于PATA標準、IEEE 1394標準、PCI Express標準、USB標準、UHS-1接口標準、UHS-1I接口標準、SATA標準、MS標準、MMC標準、CF標準、IDE標準或其他適合的數(shù)據(jù)傳輸標準。
[0099]存儲器接口 506是電性連接至存儲器管理電路502并且用以存取可復(fù)寫式非易失性存儲器模塊406與智能卡408。也就是說,欲寫入至可復(fù)寫式非易失性存儲器模塊406或智能卡408的數(shù)據(jù)會經(jīng)由存儲器接口 506轉(zhuǎn)換為可復(fù)寫式非易失性存儲器模塊406或智能卡408所能接受的格式。例如,若存儲器管理電路502要存取可復(fù)寫式非易失性存儲器模塊406,存儲器接口 506會傳送對應(yīng)的指令序列。這些指令序列可包括一或多個信號,或是在總線上的數(shù)據(jù)。例如,在讀取指令序列中,會包括讀取的辨識碼、存儲器地址等信息。
[0100]在一范例實施例中,存儲器控制電路單元404還包括緩沖存儲器508、電源管理電路510與錯誤檢查與校正電路512。
[0101]緩沖存儲器508是電性連接至存儲器管理電路502并且用以暫存來自于主機系統(tǒng)11的數(shù)據(jù)與指令或來自于可復(fù)寫式非易失性存儲器模塊406或智能卡408的數(shù)據(jù)。
[0102]電源管理電路510是電性連接至存儲器管理電路502并且用以控制存儲器存儲裝置10的電源。
[0103]錯誤檢查與校正電路512是電性連接至存儲器管理電路502并且用以執(zhí)行錯誤檢查與校正程序以確保數(shù)據(jù)的正確性。具體來說,當存儲器管理電路502從主機系統(tǒng)11中接收到寫入指令時,錯誤檢查與校正電路512會為對應(yīng)此寫入指令的數(shù)據(jù)產(chǎn)生對應(yīng)的錯誤檢查與校正碼(Error Checking and Correcting Code, ECC Code)和 / 或錯誤檢查碼(errordetecting code,EDC),并且存儲器管理電路502會將對應(yīng)此寫入指令的數(shù)據(jù)與對應(yīng)的錯誤檢查與校正碼和/或錯誤檢查碼寫入至可復(fù)寫式非易失性存儲器模塊406中。之后,當存儲器管理電路502從可復(fù)寫式非易失性存儲器模塊406中讀取數(shù)據(jù)時會同時讀取此數(shù)據(jù)對應(yīng)的錯誤檢查與校正碼和/或錯誤檢查碼,并且錯誤檢查與校正電路512會依據(jù)此錯誤檢查與校正碼和/或錯誤檢查碼對所讀取的數(shù)據(jù)執(zhí)行錯誤檢查與校正程序。
[0104]圖6是根據(jù)本發(fā)明的范例實施例所示的管理實體抹除單元的示意圖。
[0105]必須了解的是,在此描述實體抹除單元的運作時,以“選擇”、“分組”、“劃分”、“關(guān)聯(lián)”等詞來操作實體抹除單元是邏輯上的概念。也就是說,實體抹除單元在可復(fù)寫式非易失性存儲器模塊406中的實際位置并未更動,而是邏輯上對此些實體抹除單元進行操作。
[0106]請參照圖6,可復(fù)寫式非易失性存儲器模塊406具有實體抹除單元410(0)?410 (F) ο實體抹除單元410(0)?410 (F)可屬于同一個存儲器晶粒(die)或者屬于不同的存儲器晶粒。每一實體抹除單元分別具有復(fù)數(shù)個實體程序化單元,其中屬于同一個實體抹除單元的實體程序化單元可被獨立地寫入且被同時地抹除。
[0107]在本范例實施例中,實體程序化單元為程序化的最小單元。S卩,實體程序化單元為寫入數(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ū)塊。
[0108]存儲器管理電路502會配置邏輯單元610(0)?610(D)以映射至實體抹除單元410(0)?410(F)的至少一部分。例如,在本范例實施例中,主機系統(tǒng)11是通過邏輯區(qū)塊地址(logical block address, LBA)來存取存儲在實體抹除單元410 (O)?410(F)中的數(shù)據(jù),因此每一個邏輯單元610 (O)?610(D)是指一個邏輯區(qū)塊地址。在本范例實施例中,一個邏輯區(qū)塊地址的大小等于一個邏輯扇的大小。例如,一個邏輯扇的大小為512字節(jié)。然而,在另一范例實施例中,一個邏輯區(qū)塊地址的大小也可以是更大或更小,并且每一個邏輯單元610(0)?610(D)也可以是指一個邏輯程序化單元、一個邏輯抹除單元或者由多個連續(xù)的邏輯區(qū)塊地址組成。每一個邏輯單元610 (O)?610 (D)是映射至一或多個實體單元。在本范例實施例中,一個實體單元是指一個實體扇。然而,在另一范例實施例中,一個實體單元也可以是一個實體地址、一個實體程序化單元、一個實體抹除單元或者是由多個連續(xù)的實體地址組成,本發(fā)明不加以限制。存儲器管理電路502會將邏輯單元與實體單元之間的映射關(guān)系記錄于一或多個邏輯-實體映射表。當主機系統(tǒng)11欲從存儲器存儲裝置10讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)至存儲器存儲裝置10時,存儲器管理電路502可根據(jù)此一或多個邏輯-實體映射表來執(zhí)行對于存儲器存儲裝置10的數(shù)據(jù)存取。
[0109]圖7是根據(jù)本發(fā)明的一范例實施例所示的數(shù)據(jù)傳輸系統(tǒng)的概要方塊圖。
[0110]數(shù)據(jù)傳輸系統(tǒng)700包括存儲器存儲裝置10與主機系統(tǒng)11。主機系統(tǒng)11包括快取存儲器710與處理器712。
[0111]快取存儲器710用以暫存主機系統(tǒng)11最近曾使用過的數(shù)據(jù)??烊〈鎯ζ?10例如是隨機存取存儲器。例如,當屬于某一個邏輯單元的數(shù)據(jù)被從存儲器存儲裝置10傳送到主機系統(tǒng)11時,此數(shù)據(jù)會被暫存在快取存儲器710。爾后,若主機系統(tǒng)11需要再次使用到屬于此邏輯單元的數(shù)據(jù)且此數(shù)據(jù)仍存在于快取存儲器710中,則此數(shù)據(jù)可以快速地被從快取存儲器710中讀取出來。藉此,主機系統(tǒng)11不需要花費額外的時間與系統(tǒng)資源從存儲器存儲裝置10中讀取相同的數(shù)據(jù)。
[0112]處理器712電性連接至快取存儲器710。處理器712用以負責主機系統(tǒng)11的整體運作。處理器712例如是中央處理器(central processing unit, CPU) 0處理器712運行有應(yīng)用程序714。例如,應(yīng)用程序714可以是即時通訊應(yīng)用程序、簡訊應(yīng)用程序、通話應(yīng)用程序或安全驗證應(yīng)用程序等各種類型的應(yīng)用程序,且應(yīng)用程序714的種類不限于上述。此外,主機系統(tǒng)11也可以運行一或多個操作系統(tǒng)(operating system, OS)并且基于此操作系統(tǒng)來運行應(yīng)用程序714。此操作系統(tǒng)例如是安卓(android)或其他類型/版本的操作系統(tǒng)。
[0113]在本范例實施例中,主機系統(tǒng)11(或應(yīng)用程序714)可通過一或多個暫時文件來存取智能卡408。此暫時文件可以是靜態(tài)或動態(tài)地被建立。例如,在主機系統(tǒng)11的文件系統(tǒng)中,動態(tài)建立的暫時文件(也稱為動態(tài)暫時文件)的文件位置和/或存取權(quán)限與一般操作系統(tǒng)自行建立的暫時文件(也稱為靜態(tài)暫時文件)的文件位置和/或存取權(quán)限不一定會相同。例如,動態(tài)暫時文件的文件位置可能會是在屬于應(yīng)用程序714的一個預(yù)設(shè)目錄/路徑下,而靜態(tài)暫時文件的文件位置可能是位于根目錄或任意預(yù)設(shè)目錄下。一般來說,動態(tài)暫時文件與靜態(tài)暫時文件皆可供應(yīng)用程序714存取。然而,在某些特定的操作系統(tǒng)(例如,Android 4.4.2)中,由于存取權(quán)限的設(shè)定,應(yīng)用程序714僅可以動態(tài)建立暫時文件而無法直接存取預(yù)先建立的靜態(tài)暫時文件。每一個暫時文件會占據(jù)N個邏輯單元,并且N為任意的正整數(shù)。每一個暫時文件的大小可以視實務(wù)上的需求調(diào)整。通過存取屬于某一個暫時文件的邏輯單元,主機系統(tǒng)11 (或應(yīng)用程序714)即可執(zhí)行對于智能卡408的數(shù)據(jù)存取操作。
[0114]主機系統(tǒng)11 (或應(yīng)用程序714)是通過特殊操作指令來操作智能卡408。例如,此特殊操作指令包括符合ISO 7816標準的指令-應(yīng)用程序協(xié)定數(shù)據(jù)單元(Command-Applicat1n Protocol Data Unit, C-APDU)。例如,當應(yīng)用程序 714 欲操作智能卡408時,主機系統(tǒng)11 (或應(yīng)用程序714)會產(chǎn)生一個特殊操作指令。此特殊操作指令會被暫存在快取存儲器710中并且被傳送給存儲器存儲裝置10。存儲器管理電路502會識別此特殊操作指令并且指示智能卡408執(zhí)行對應(yīng)于此特殊操作指令的存取操作。在智能卡408完成對應(yīng)于此特殊操作指令的存取操作之后,智能卡408會傳送對應(yīng)于此特殊操作指令的一個響應(yīng)給存儲器管理電路502。此響應(yīng)是用以告知主機系統(tǒng)11對應(yīng)于此特殊操作指令的操作結(jié)果。例如,此響應(yīng)包括符合ISO 7816標準的響應(yīng)-應(yīng)用程序協(xié)定數(shù)據(jù)單元(Response-Applicat1n Protocol Data Unit, R-APDU)。另一方面,在發(fā)出一個特殊操作指令之后,主機系統(tǒng)11 (或應(yīng)用程序714)會執(zhí)行一響應(yīng)讀取操作以嘗試讀取對應(yīng)于此特殊操作指令的響應(yīng)。
[0115]—般來說,在響應(yīng)讀取操作中,應(yīng)用程序714會指示主機系統(tǒng)11讀取某一響應(yīng)。反應(yīng)于應(yīng)用程序714的指示,主機系統(tǒng)11會嘗試從快取存儲器710中讀取響應(yīng)。若無法從快取存儲器710中讀取到響應(yīng),則主機系統(tǒng)11才會發(fā)送一個讀取指令至存儲器存儲裝置10以讀取來自智能卡408的響應(yīng)。例如,主機系統(tǒng)11可能會嘗試從快取存儲器710中讀取屬于某一個暫時文件的數(shù)據(jù)。若主機系統(tǒng)11無法從快取存儲器710中讀取到所需的數(shù)據(jù),則主機系統(tǒng)11會發(fā)送一個讀取指令(也稱為響應(yīng)讀取指令)至存儲器存儲裝置10。此響應(yīng)讀取指令例如指示讀取屬于某一個暫時文件的某一邏輯單元的數(shù)據(jù)。在接收到此響應(yīng)讀取指令之后,存儲器管理電路502會識別此響應(yīng)讀取指令并且根據(jù)此響應(yīng)讀取指令將來自智能卡408的響應(yīng)傳送給主機系統(tǒng)11。當主機系統(tǒng)11接收到此響應(yīng)時,此響應(yīng)會被暫存在快取存儲器710中并且被傳送給應(yīng)用程序714。然而,在響應(yīng)讀取操作中,若主機系統(tǒng)11可以直接從快取存儲器710中讀取到屬于某一個暫時文件的數(shù)據(jù)(即,不發(fā)送響應(yīng)讀取指令),則不管此數(shù)據(jù)是否是應(yīng)用程序714 “真正”要讀取的響應(yīng),主機系統(tǒng)11可能會視為已經(jīng)讀取到智能卡408根據(jù)前一次接收到的特殊操作指令而產(chǎn)生的響應(yīng)并且將此響應(yīng)提供給應(yīng)用程序714。應(yīng)用程序714可以對響應(yīng)進行驗證,從而得知所接收到的響應(yīng)是否是正確的響應(yīng)。若所接收到的響應(yīng)不是正確的響應(yīng),則應(yīng)用程序714可以再次指示主機系統(tǒng)11執(zhí)行另一次的響應(yīng)讀取操作。例如,在另一次的響應(yīng)讀取操作中,主機系統(tǒng)11可能會讀取屬于下一個暫時文件的數(shù)據(jù)。若快取存儲器710存儲的“舊的”響應(yīng)越多,則主機系統(tǒng)11直接讀取到快取存儲器710中的“舊的”響應(yīng)的機率越大,從而可能導(dǎo)致主機系統(tǒng)11要重復(fù)執(zhí)行多次的響應(yīng)讀取操作才可以讀取到應(yīng)用程序714 “真正”要讀取的響應(yīng)。在某些例子中,甚至有可能導(dǎo)致主機系統(tǒng)11完全無法讀取到應(yīng)用程序714 “真正”要讀取的響應(yīng)。
[0116]一般來說,記錄在快取存儲器710中的數(shù)據(jù)是以數(shù)據(jù)所屬的邏輯單元為依據(jù)進行存儲。例如,快取存儲器710可被劃分為多個快取區(qū)。以圖8B為例,快取存儲器710可被劃分快取區(qū)710(0)?710(M)。每一個快取區(qū)的大小例如是等于一個邏輯單元的大小而可用以存儲屬于某一個邏輯單元的數(shù)據(jù)。此外,每一個快取區(qū)的大小也可以是更大或更小。在上述范例實施例中,假設(shè)當前快取存儲器710中記錄有應(yīng)用程序714對于某一個邏輯單元的一個特殊操作指令(也稱為“舊的”特殊操作指令)以及智能卡407對應(yīng)于此“舊的”特殊操作指令的一個響應(yīng)(也稱為“舊的”響應(yīng))。若應(yīng)用程序714又執(zhí)行了對于智能卡407的另一個存取操作,則此存取操作所對應(yīng)的特殊操作指令(也稱為“新的”特殊操作指令)也會被暫存在快取存儲器710中。爾后,當應(yīng)用程序714欲讀取對應(yīng)于“新的”特殊操作指令的響應(yīng)(也稱為“新的”響應(yīng))時,此“舊的”響應(yīng)可能會被從快取存儲器710中讀取出來并且傳送給應(yīng)用程序714。換言之,基于一般快取存儲器710的快取機制,在應(yīng)用程序714請求讀取對應(yīng)于某一個“新的”特殊操作指令的“新的”響應(yīng)時,若快取存儲器710中屬于某一個暫時文件的某一個邏輯單元的“舊的”響應(yīng)尚未被清除或覆蓋,則應(yīng)用程序714可能會讀取到此“舊的”響應(yīng)。藉此,除了需要花費更多的讀取時間來讀取“新的”響應(yīng)之外,也有可能因快取存儲器710存儲了太多“舊的”響應(yīng)而導(dǎo)致無法讀取到“新的”響應(yīng)。
[0117]在以下的范例實施例中,主機系統(tǒng)11 (或應(yīng)用程序714)會執(zhí)行對于一或多個虛設(shè)文件(du_y file)的寫入操作來更新快取存儲器710中的數(shù)據(jù)以嘗試清空或覆蓋快取存儲器710中可能存在的“舊的”響應(yīng)。每一個虛設(shè)文件會占據(jù)P個邏輯單元,并且P可為任意的正整數(shù)。每一個虛設(shè)文件的大小可以視實務(wù)上的需求調(diào)整。特別是,在此提及的虛設(shè)文件并不等同于上述暫時文件。例如,通過執(zhí)行對于虛設(shè)文件的寫入操作,主機系統(tǒng)11(或應(yīng)用程序714)可以將數(shù)據(jù)寫入至屬于虛設(shè)文件的邏輯單元并且據(jù)以更新快取存儲器710中的數(shù)據(jù)。在本范例實施例中,用以寫入至虛設(shè)文件的數(shù)據(jù)是無效數(shù)據(jù)(或虛設(shè)數(shù)據(jù))。然而,在另一范例實施例中,用以寫入至虛設(shè)文件的數(shù)據(jù)也可以是有效數(shù)據(jù)(或?qū)嶋H數(shù)據(jù))。此外,通過執(zhí)行對于虛設(shè)文件的讀取操作,主機系統(tǒng)11 (或應(yīng)用程序714)則可以獲得快取存儲器710的更新狀態(tài)。例如,根據(jù)快取存儲器710的更新狀態(tài),主機系統(tǒng)11(或應(yīng)用程序714)可以決定是否要繼續(xù)執(zhí)行對于其他虛設(shè)文件的寫入操作。換言之,在本范例實施例中,虛設(shè)文件是配置為只用來更新快取存儲器710中的數(shù)據(jù),而不具有其他功能。然而,在另一范例實施例中,虛設(shè)文件也可以是用以操作智能卡408或存取可復(fù)寫式非易失性存儲器模塊406中的數(shù)據(jù)。值得一提的是,執(zhí)行上述對于虛設(shè)文件的寫入操作的時間點可以是在發(fā)送某一個特殊操作指令之前、發(fā)送某一個特殊操作指令之后并且讀取對應(yīng)于此特殊操作指令的響應(yīng)之前或者任意時間點,本發(fā)明不加以限制。通過在讀取智能卡408的響應(yīng)之前先執(zhí)行對于虛設(shè)文件的寫入操作,可以有效降低讀取到上述“舊的”響應(yīng)的機率。
[0118]第一范例實施例
[0119]圖8A至圖81是根據(jù)本發(fā)明的第一范例實施例所示的更新快取與讀取響應(yīng)的示意圖。
[0120]請參照圖8A,假設(shè)第一暫時文件是配置在邏輯單元610(0),第二暫時文件是配置在邏輯單元610 (I),第三暫時文件是配置在邏輯單元610 (2),第一虛設(shè)文件是配置在邏輯單元610 (3),并且第二虛設(shè)文件是配置在邏輯單元610 (4)。此對應(yīng)關(guān)系可被以任意形式記錄于主機系統(tǒng)11所使用的文件系統(tǒng)中。例如,此文件系統(tǒng)可以是文件配置表(FileAllocat1n Table, FAT)、新技術(shù)文件系統(tǒng)(New Technology File System, NTFS)、高效能文件系統(tǒng)(High Performance File System, HPFS)或其他類型的管理文件系統(tǒng)。每一個暫時文件或虛設(shè)文件與邏輯單元的對應(yīng)關(guān)系可以是在此暫時文件或虛設(shè)文件被建立時即時地配置或者在此暫時文件或虛設(shè)文件被建立之前就預(yù)先配置,本發(fā)明不加以限制。在使用者的操作過程中,文件系統(tǒng)中的文件可能會被刪除或搬移等,故每一個暫時文件或虛設(shè)文件與邏輯單元的對應(yīng)關(guān)系也可能會被改變。更多或更少的暫時文件和/或虛設(shè)文件與邏輯單元的對應(yīng)關(guān)系也可以被記錄于主機系統(tǒng)11所使用的文件系統(tǒng)中。此外,雖然本范例實施例是假設(shè)一個暫時文件的大小等于一個邏輯單元的大小且一個虛設(shè)文件的大小等于一個邏輯單元的大小,然而,在另一范例實施例中,每一個暫時文件與每一個虛設(shè)文件的大小也可以是更大或更小。例如,在另一范例實施例中,邏輯單元610(0)?610(2)也可以是屬于同一個暫時文件。值得一提的是,以下所提及的主機系統(tǒng)11 (或應(yīng)用程序714)執(zhí)行對應(yīng)于某一個文件的讀取操作/寫入操作,指的是由主機系統(tǒng)11 (或應(yīng)用程序714)讀取對應(yīng)于此文件的邏輯單元所存儲的數(shù)據(jù)或者將數(shù)據(jù)寫入至此邏輯單元。
[0121 ] 請參照圖SB,可復(fù)寫式非易失性存儲器模塊406包括實體單元810 (0)?810 (A)。每一個實體單元810(0)?810(A)例如是映射至邏輯單元610(0)?610(D)的其中之一。關(guān)于實體單元的大小等信息已于前述說明,在此便不贅述。此外,假設(shè)快取區(qū)710(0)存儲有屬于邏輯單元610(1)的“舊的”響應(yīng)的數(shù)據(jù)。此“舊的”響應(yīng)例如是智能卡408根據(jù)“舊的”特殊操作指令所產(chǎn)生并且主機系統(tǒng)11通過讀取邏輯單元610 (I)而從存儲器存儲裝置10接收的。
[0122]請參照圖SC,主機系統(tǒng)11發(fā)送對應(yīng)于第一暫時文件的一操作指令序列(也稱為第一操作指令序列)至存儲器存儲裝置10。第一操作指令序列可包括一或多個程序碼或指令碼并且用以指示智能卡408執(zhí)行某一操作(也稱為第一操作)。例如,第一操作指令序列可包含C-APDU并且用以指示將第一操作指令序列中的數(shù)據(jù)寫入至邏輯單元610 (0)。此夕卜,假設(shè)快取區(qū)710(1)是配置以暫存屬于邏輯單元610(0)的數(shù)據(jù),則第一操作指令序列中的數(shù)據(jù)也會被暫存于快取區(qū)710(1)。
[0123]在發(fā)送第一操作指令序列之后,主機系統(tǒng)11 (或應(yīng)用程序714)可以在任意的時間點執(zhí)行對應(yīng)于某一個暫時文件的響應(yīng)讀取操作以讀取智能卡408對應(yīng)于第一操作指令的響應(yīng)。然而,主機系統(tǒng)11 (或應(yīng)用程序714)可能會讀取到錯誤響應(yīng)。以圖8C為例,若主機系統(tǒng)11 (或應(yīng)用程序714)執(zhí)行對應(yīng)于第二暫時文件的響應(yīng)讀取操作,則主機系統(tǒng)11 (或應(yīng)用程序714)可能會讀取到仍然存在于快取存儲器710中屬于邏輯單元610 (I)的“舊的”響應(yīng)。因此,在本范例實施例中,在執(zhí)行響應(yīng)讀取操作之前,主機系統(tǒng)11(或應(yīng)用程序714)會執(zhí)行對應(yīng)于一或多個虛設(shè)文件的寫入操作,以嘗試清除或覆蓋快取區(qū)710(0)中的“舊的”響應(yīng)。
[0124]請參照圖8D,在發(fā)送第一操作指令之后,主機系統(tǒng)11 (或應(yīng)用程序714)會執(zhí)行對應(yīng)于第一虛設(shè)文件的第一寫入操作,此第一寫入操作用以更新快取存儲器710中的部分數(shù)據(jù)(也稱第一數(shù)據(jù))。例如,主機系統(tǒng)11會發(fā)送一個寫入指令序列(也稱為第一寫入指令序列)至存儲器存儲裝置10。此第一寫入指令序列指示將數(shù)據(jù)Dl (也稱為第一預(yù)設(shè)數(shù)據(jù))存儲至對應(yīng)于第一虛設(shè)文件的邏輯單元610 (3)。特別是,數(shù)據(jù)Dl包含識別信息Hl (也稱為第一識別信息),并且識別信息Hl與一個預(yù)設(shè)識別信息(也稱為第一預(yù)設(shè)識別信息)一致。在本范例實施例中,識別信息Hl與第一預(yù)設(shè)識別信息一致,指的是識別信息Hl的數(shù)據(jù)內(nèi)容與第一預(yù)設(shè)識別信息的數(shù)據(jù)內(nèi)容相同。然而,在另一范例實施例中,識別信息Hl與第一預(yù)設(shè)識別信息一致,也可以是指經(jīng)過邏輯運算(例如,解碼或解密)的識別信息Hl的數(shù)據(jù)內(nèi)容與第一預(yù)設(shè)識別信息的數(shù)據(jù)內(nèi)容相同,視實務(wù)上的需求而定。在接收到第一寫入指令序列之后,存儲器管理電路502會將數(shù)據(jù)Dl存儲至可復(fù)寫式非易失性存儲器模塊406。例如,存儲器管理電路502會將數(shù)據(jù)Dl寫入至邏輯單元610 (3)所映射的實體單元810 (3)。此外,對應(yīng)于第一寫入指令序列,數(shù)據(jù)Dl也會被暫存在快取存儲器710中用以暫存屬于邏輯單元610 (3)的數(shù)據(jù)的快取區(qū)710 (2)。
[0125]請參照圖SE,在發(fā)送上述第一寫入指令序列之后,主機系統(tǒng)11 (或應(yīng)用程序714)會發(fā)送另一個寫入指令序列(也稱為第二寫入指令序列)至存儲器存儲裝置10。此第二寫入指令序列指示將數(shù)據(jù)D2 (也稱為第二預(yù)設(shè)數(shù)據(jù))存儲至對應(yīng)于第一虛設(shè)文件的邏輯單元610(3)。特別是,數(shù)據(jù)D2不包含上述識別信息H1。例如,數(shù)據(jù)D2可以包含與識別信息Hl不同的識別信息H2 (也稱為第二識別信息)。識別信息H2與上述第一預(yù)設(shè)識別信息不一致。例如,識別信息H2的數(shù)據(jù)內(nèi)容與第一預(yù)設(shè)識別信息的數(shù)據(jù)內(nèi)容不相同。或者,經(jīng)過邏輯運算(例如,解碼或解密)的識別信息H2的數(shù)據(jù)內(nèi)容與第一預(yù)設(shè)識別信息的數(shù)據(jù)內(nèi)容不相同。值得一提的是,在接收到第二寫入指令序列之后,存儲器管理電路502不會將數(shù)據(jù)D2存儲至可復(fù)寫式非易失性存儲器模塊406。例如,存儲器管理電路502會忽略數(shù)據(jù)D2或者直接舍棄數(shù)據(jù)D2。此外,對應(yīng)于第二寫入指令序列,數(shù)據(jù)D2會取代數(shù)據(jù)Dl而被暫存在快取區(qū) 710(2)。
[0126]在將第一虛設(shè)文件的數(shù)據(jù)從數(shù)據(jù)Dl更新為數(shù)據(jù)D2之后,主機系統(tǒng)11 (或應(yīng)用程序714)可以在任意時間點執(zhí)行對應(yīng)于第一虛設(shè)文件的讀取操作(也稱為第一讀取操作)。根據(jù)第一讀取操作所獲得的數(shù)據(jù)(也稱為第一讀取數(shù)據(jù))中的識別信息是否與上述第一預(yù)設(shè)識別信息一致,主機系統(tǒng)11 (或應(yīng)用程序714)可以決定要繼續(xù)更新快取存儲器710中的數(shù)據(jù)或者直接執(zhí)行響應(yīng)讀取操作。
[0127]請參照圖8F,假設(shè)在發(fā)送上述第二寫入指令序列之后主機系統(tǒng)11 (或應(yīng)用程序714)隨即執(zhí)行對應(yīng)于第一虛設(shè)文件的第一讀取操作,則主機系統(tǒng)11(或應(yīng)用程序714)可能會直接從快取區(qū)710⑵中讀取到屬于邏輯單元610 (3)的數(shù)據(jù)D2。此時,主機系統(tǒng)11 (或應(yīng)用程序714)會判斷數(shù)據(jù)D2中的識別信息H2與上述第一預(yù)設(shè)識別信息不一致并且據(jù)以接續(xù)執(zhí)行對應(yīng)于另一個虛設(shè)文件的寫入操作(也稱為第二寫入操作)。
[0128]請參照圖SG,反應(yīng)于上述第一讀取操作所獲得的第一讀取數(shù)據(jù)中的識別信息與上述第一預(yù)設(shè)識別信息不一致,主機系統(tǒng)11 (或應(yīng)用程序714)會執(zhí)行對應(yīng)于第二虛設(shè)文件的第二寫入操作,以持續(xù)更新快取存儲器中710的其他數(shù)據(jù)(也稱為第二數(shù)據(jù))。例如,在第二寫入操作中,主機系統(tǒng)11會發(fā)送一寫入指令序列以指示將數(shù)據(jù)D3寫入至對應(yīng)于第二虛設(shè)文件的邏輯單元610 (4)。同時,數(shù)據(jù)D3也會被暫存在快取存儲器710中配置以存儲屬于邏輯單元610 (4)的數(shù)據(jù)的快取區(qū)710 (3)。
[0129]值得一提的是,由于第一虛設(shè)文件與第二虛設(shè)文件所配置的邏輯單元并不相同,故對應(yīng)于第一虛設(shè)文件的第一寫入操作與對應(yīng)于第二虛設(shè)文件的第二寫入操作會更新快取存儲器710中不同的快取區(qū)。主機系統(tǒng)11 (或應(yīng)用程序714)可以持續(xù)地執(zhí)行對應(yīng)于不同的虛設(shè)文件的寫入操作來更新快取存儲器710中屬于不同邏輯單元的數(shù)據(jù)。此外,主機系統(tǒng)11 (或應(yīng)用程序714)可以在任意的時間點執(zhí)行如圖8F的范例實施例中對應(yīng)于第一虛設(shè)文件的第一讀取操作以及判斷第一讀取數(shù)據(jù)中的識別信息是否與第一預(yù)設(shè)識別信息一致的操作來決定對于快取存儲器710的更新是否已足夠。換言之,在本范例實施例中,是假設(shè)快取存儲器710中數(shù)據(jù)的更新是符合先進先出(First In First Out, FIFO)規(guī)則。若第一讀取操作所獲得的數(shù)據(jù)是數(shù)據(jù)Dl,表示在第一寫入操作之前所存入快取存儲器710的“舊的”數(shù)據(jù)應(yīng)該都已被清除,故此時執(zhí)行響應(yīng)讀取操作應(yīng)該是可以讀取到真正來自于智能卡408的“新的”響應(yīng)。若第一讀取操作所獲得的數(shù)據(jù)是數(shù)據(jù)D2,表示在第一寫入操作之前所存入快取存儲器710的舊數(shù)據(jù)應(yīng)該尚未被清除完畢,故執(zhí)行響應(yīng)讀取操作仍然有機會讀取到“舊的”響應(yīng)。
[0130]請參照圖8H,假設(shè)在執(zhí)行對于一或多個虛設(shè)文件的寫入操作之后,快取區(qū)710(0)?710(2)中的數(shù)據(jù)被屬于其他邏輯單元的數(shù)據(jù)覆蓋。爾后,若主機系統(tǒng)11(或應(yīng)用程序714)執(zhí)行如圖8F的范例實施例中對應(yīng)于第一虛設(shè)文件的第一讀取操作,則由于快取存儲器710中已經(jīng)不存在屬于邏輯單元610 (3)的數(shù)據(jù),故主機系統(tǒng)11會真正地發(fā)送一個讀取指令序列(也稱為第一讀取指令序列)至存儲器存儲裝置10。第一讀取指令序列用以指示讀取存儲于邏輯單元610 (3)的數(shù)據(jù)。根據(jù)第一讀取指令序列,存儲器存儲裝置10會將實體單元810(3)中的數(shù)據(jù)Dl傳送給主機系統(tǒng)11。在判定數(shù)據(jù)Dl中的識別信息Hl與上述第一預(yù)設(shè)識別信息一致之后,主機系統(tǒng)11 (或應(yīng)用程序714)會開始讀取智能卡408對應(yīng)于上述第一操作指令的響應(yīng)。
[0131]請參照圖81,在判定所獲得的數(shù)據(jù)Dl中的識別信息Hl與上述第一預(yù)設(shè)識別信息一致之后,主機系統(tǒng)11 (或應(yīng)用程序714)會執(zhí)行對應(yīng)于某一個暫時文件的響應(yīng)讀取操作。例如,主機系統(tǒng)11(或應(yīng)用程序714)可執(zhí)行對應(yīng)于第二暫時文件的響應(yīng)讀取操作。在此響應(yīng)讀取操作中,由于快取存儲器710中已不存在屬于邏輯單元610(1)的數(shù)據(jù)(即,“舊的”響應(yīng)),故主機系統(tǒng)11會真正地發(fā)送一個響應(yīng)讀取指令序列至存儲器存儲裝置10。此響應(yīng)讀取指令序列指示讀取屬于邏輯單元610 (I)的數(shù)據(jù)。在接收到此響應(yīng)讀取指令序列之后,存儲器存儲裝置10會將智能卡408對應(yīng)于上述第一操作指令所產(chǎn)生的響應(yīng)傳送給主機系統(tǒng)11。換言之,此時,主機系統(tǒng)11 (或應(yīng)用程序714)即可獲得智能卡408的“新的”響應(yīng)。
[0132]值得一提的是,在第一范例實施例中,主機系統(tǒng)11(或應(yīng)用程序714)是將屬于同一個虛設(shè)文件(或邏輯單元)的不同數(shù)據(jù)分別存儲在快取存儲器710與存儲器存儲裝置10中。藉此,根據(jù)讀取此虛設(shè)文件(或邏輯單元)所獲得的數(shù)據(jù)是來自快取存儲器710或存儲器存儲裝置10,主機系統(tǒng)11 (或應(yīng)用程序714)可得知快取存儲器710的更新狀態(tài)并且據(jù)以決定是否可以執(zhí)行響應(yīng)讀取操作。然而,在另一范例實施例中,主機系統(tǒng)11(或應(yīng)用程序714)并不是通過上述機制來決定執(zhí)行響應(yīng)讀取操作的時間點。例如,主機系統(tǒng)11 (或應(yīng)用程序714)也可以通過在上述操作指令序列中加入另一識別信息(也稱為第三識別信息)來作為判斷當前接收到的響應(yīng)是“新的”響應(yīng)或“舊的”響應(yīng)的依據(jù)。
[0133]第二范例實施例
[0134]圖9A至圖9C是根據(jù)本發(fā)明的第二范例實施例所示的更新快取與讀取響應(yīng)的示意圖。在本范例實施例中,同樣是參考圖8A中文件與邏輯單元的對應(yīng)關(guān)系來進行說明。
[0135]請參照圖9A,假設(shè)快取區(qū)710(0)存儲有屬于邏輯單元610 (I)的“舊的”響應(yīng)的數(shù)據(jù)。特別是,在本范例實施例中,此“舊的”響應(yīng)會包含一個“舊的”識別信息token O。此“舊的”識別信息token O是用于一個“舊的” C-APDU中。
[0136]請參照圖9B,在發(fā)送對應(yīng)于第一暫時文件的第一操作指令序列之前,主機系統(tǒng)11(或應(yīng)用程序714)會將一個“新的”識別信息token I加入至第一操作指令序列中。識別信息token I例如是被加入至第一操作指令序列的指令標頭中。“新的”識別信息tokenI與“舊的”識別信息token O不同。此外,此“新的”識別信息token I會與一個預(yù)設(shè)識別信息(也稱為第二預(yù)設(shè)識別信息)一致。爾后,主機系統(tǒng)11會發(fā)送此包含識別信息tokenI的第一操作指令序列至存儲器存儲裝置10。第一操作指令序列用以指示智能卡408執(zhí)行第一操作。例如,第一操作指令序列可包含C-APDU并且用以指示將第一操作指令序列中的數(shù)據(jù)寫入至邏輯單元610(0)。此外,假設(shè)快取區(qū)710(1)是配置以暫存屬于邏輯單元610(0)的數(shù)據(jù),則第一操作指令序列中包含識別信息token I的數(shù)據(jù)也會被暫存于快取區(qū)710(1) ο
[0137]在本范例實施例中,當存儲器存儲裝置10接收到第一操作指令序列時,存儲器管理電路502會記錄下第一操作指令序列中的識別信息token I并且根據(jù)此第一操作指令序列指示智能卡408執(zhí)行對應(yīng)的操作。在接收到智能卡408對應(yīng)于第一操作指令序列所產(chǎn)生的響應(yīng)之后,存儲器管理電路502會將對應(yīng)于第一操作指令序列的識別信息token I加入至此響應(yīng)中并且等待主機系統(tǒng)11讀取此響應(yīng)。
[0138]另一方面,在發(fā)送第一操作指令序列之后,主機系統(tǒng)11(或應(yīng)用程序714)可以在任意時間點執(zhí)行響應(yīng)讀取操作以讀取智能卡408對應(yīng)于第一操作指令序列的響應(yīng)。然而,若快取存儲器710中仍然存儲有“舊的”響應(yīng),則此響應(yīng)讀取操作可能會讀取到此“舊的”響應(yīng),造成響應(yīng)讀取錯誤。例如,以圖9B為例,由于快取區(qū)710(0)仍然存儲有屬于邏輯單元610(1)的“舊的”響應(yīng),故主機系統(tǒng)11(或應(yīng)用程序714)可能會通過讀取對應(yīng)于第二暫時文件的邏輯單元610(1)而讀取到快取區(qū)710(0)中的“舊的”響應(yīng)。因此,類似于上述第一范例實施例中,在執(zhí)行響應(yīng)讀取操作之前,主機系統(tǒng)11 (或應(yīng)用程序714)可以執(zhí)行對應(yīng)于一或多個虛設(shè)文件的寫入操作,以更新快取存儲器710中的數(shù)據(jù)。關(guān)于如何執(zhí)行對應(yīng)于虛設(shè)文件(例如,第一虛設(shè)文件和/或第二虛設(shè)文件)的寫入操作以更新快取存儲器710中的數(shù)據(jù)已于第一范例實施例中說明,故在此便不贅述。
[0139]在接收到響應(yīng)讀取操作所獲得的響應(yīng)數(shù)據(jù)之后,主機系統(tǒng)11 (或應(yīng)用程序714)會判斷此響應(yīng)數(shù)據(jù)中的識別信息是否與上述第二預(yù)設(shè)識別信息一致。若此響應(yīng)數(shù)據(jù)中的識別信息與上述第二預(yù)設(shè)識別信息一致,表示此響應(yīng)是智能卡408對應(yīng)于上述第一操作指令序列所產(chǎn)生的“新的”響應(yīng)。若此響應(yīng)數(shù)據(jù)中的識別信息與上述第二預(yù)設(shè)識別信息不一致,則表示此響應(yīng)是快取存儲器710中的“舊的”響應(yīng)。例如,在圖9B的范例實施例中,由于快取區(qū)710(0)仍然存儲有屬于邏輯單元610 (I)的“舊的”響應(yīng),故主機系統(tǒng)11(或應(yīng)用程序714)可能會通過讀取邏輯單元610 (I)而讀取到快取區(qū)710 (0)中包含識別信息token O的“舊的”響應(yīng)。此時,由于識別信息token O與上述第二預(yù)設(shè)識別信息(即,token I)不一致,故主機系統(tǒng)11 (或應(yīng)用程序714)會決定繼續(xù)執(zhí)行對應(yīng)于其他的虛設(shè)文件的寫入操作以持續(xù)更新快取存儲器710中的數(shù)據(jù)。換言之,更新快取存儲器710中的數(shù)據(jù)的目標是為了清除快取存儲器710中可能會造成往后讀取錯誤的數(shù)據(jù)(例如,快取區(qū)710(0)中的“舊的”響應(yīng))。
[0140]請參照圖9C,假設(shè)執(zhí)行了對應(yīng)于多個虛設(shè)文件的寫入操作之后,快取區(qū)710(0)中的“舊的”響應(yīng)的數(shù)據(jù)已被屬于其他邏輯單元的數(shù)據(jù)覆蓋。爾后,若主機系統(tǒng)11(或應(yīng)用程序714)執(zhí)行對應(yīng)于第二暫時文件的響應(yīng)讀取操作(即,讀取屬于邏輯單元610(1)的數(shù)據(jù)),則由于快取存儲器710中已經(jīng)不存在屬于邏輯單元610(1)的數(shù)據(jù),故主機系統(tǒng)11會發(fā)送一個響應(yīng)讀取指令序列至存儲器存儲裝置10。根據(jù)此響應(yīng)讀取指令序列,存儲器管理電路502會將包含識別信息token I的響應(yīng)傳送給主機系統(tǒng)11。由于識別信息token I與上述第二預(yù)設(shè)識別信息一致,故主機系統(tǒng)11 (或應(yīng)用程序714)會判定此包含識別信息token I的響應(yīng)為智能卡408對應(yīng)于上述第一操作指令序列所產(chǎn)生的“新的”響應(yīng)。
[0141]值得一提的是,本發(fā)明并不限制上述第一與第二范例實施例中執(zhí)行對應(yīng)于某一個虛設(shè)文件的寫入操作的時間點。例如,在另一范例實施例中,對應(yīng)于一或多個虛設(shè)文件的寫入操作也可以是在發(fā)送對應(yīng)于第一暫時文件的第一操作指令序列之前執(zhí)行。例如,對應(yīng)于一或多個虛設(shè)文件的寫入操作可以是反應(yīng)于主機系統(tǒng)11 (或應(yīng)用程序714)即將發(fā)送上述第一操作指令序列而執(zhí)行?;蛘?,在另一范例實施例中,對應(yīng)于一或多個虛設(shè)文件的寫入操作也可以是在某一筆來自智能卡408的響應(yīng)被主機系統(tǒng)11 (或應(yīng)用程序714)讀取之后執(zhí)行。例如,反應(yīng)于某一筆來自智能卡408的響應(yīng)被主機系統(tǒng)11 (或應(yīng)用程序714)讀取,對應(yīng)于一或多個虛設(shè)文件的寫入操作就會自動被執(zhí)行。此外,在其他的范例實施例中,對應(yīng)于某一個虛設(shè)文件的寫入操作也可以是在需要更新快取存儲器710中與智能卡408有關(guān)的數(shù)據(jù)或任意數(shù)據(jù)時執(zhí)行,而不限于上述。或者,在一范例實施例中,對應(yīng)于某一個虛設(shè)文件的寫入操作也可以是在主機系統(tǒng)11或存儲器存儲裝置10剛開機、關(guān)機前或閑置超過一段預(yù)設(shè)時間時執(zhí)行等等。
[0142]在一范例實施例中,主機系統(tǒng)11 (或應(yīng)用程序714)還可以將額外的識別信息加入至指示將某一數(shù)據(jù)存儲至對應(yīng)于某一個虛設(shè)文件的邏輯單元的寫入指令序列中。其中此額外的識別信息是用以作為是否存儲此寫入指令序列中的數(shù)據(jù)的依據(jù)。例如,此額外的識別信息可被加入至一個寫入指令序列的指令標頭中。當存儲器管理電路502接收到包含與一個預(yù)設(shè)識別信息(也稱為第三預(yù)設(shè)識別信息)一致的額外的識別信息(也稱為第四識別信息)的寫入指令序列時,存儲器管理電路502會將此寫入指令序列所指示需存儲的數(shù)據(jù)存儲至可復(fù)寫式非易失性存儲器模塊406中。反之,當存儲器管理電路502接收到指示將某一數(shù)據(jù)存儲至對應(yīng)于某一個虛設(shè)文件的邏輯單元的寫入指令序列且此寫入指令序列不包含與上述第三預(yù)設(shè)識別信息一致的額外的識別信息(例如,此寫入指令序列包含與上述第三預(yù)設(shè)識別信息不一致的第五識別信息)時,存儲器管理電路502不會將其中的數(shù)據(jù)存儲至可復(fù)寫式非易失性存儲器模塊406。例如,在圖8D的范例實施例中,與第三預(yù)設(shè)識別信息一致的第四識別信息可以被加入至第一寫入指令序列中,并且存儲器管理電路502可根據(jù)第一寫入指令序列中的識別信息(即,第四識別信息)與第三預(yù)設(shè)識別信息一致而將數(shù)據(jù)Dl存儲至可復(fù)寫式非易失性存儲器模塊406中。又例如,在圖8E的范例實施例中,與第三預(yù)設(shè)識別信息不一致的第五識別信息可以被加入至第二寫入指令序列中,并且存儲器管理電路502可根據(jù)第二寫入指令序列中的識別信息(即,第五識別信息)與第三預(yù)設(shè)識別信息不一致而不將數(shù)據(jù)D2存儲至可復(fù)寫式非易失性存儲器模塊406中。此外,在圖8D與圖SE的另一范例實施例中,第四識別信息也可以是以包含于欲存儲的數(shù)據(jù)中的第一識別信息來取代,并且第三預(yù)設(shè)識別信息也可以是以第一預(yù)設(shè)識別信息來取代。例如,在圖8D的一范例實施例中,在接收到第一寫入指令序列之后,存儲器管理電路502可以根據(jù)數(shù)據(jù)Dl中的識別信息Hl與第一預(yù)設(shè)識別信息一致而決定將數(shù)據(jù)Dl存儲至可復(fù)寫式非易失性存儲器模塊406中。例如,在圖8E的一范例實施例中,在接收到第二寫入指令序列之后,存儲器管理電路502可以根據(jù)數(shù)據(jù)D2中的識別信息H2與第一預(yù)設(shè)識別信息不一致而決定不將數(shù)據(jù)D2存儲至可復(fù)寫式非易失性存儲器模塊406中。
[0143]在另一范例實施例中,主機系統(tǒng)11 (或應(yīng)用程序714)可以根據(jù)某一個虛設(shè)文件是否存在來決定對應(yīng)于此虛設(shè)文件的寫入操作是否要“真正的”將數(shù)據(jù)存儲至可復(fù)寫式非易失性存儲器模塊406中。在此提及的存在是指存在于主機系統(tǒng)11的文件系統(tǒng)中。此外,若某一個虛設(shè)文件已存在,則可復(fù)寫式非易失性存儲器模塊406中通常已配置有映射至對應(yīng)于此虛設(shè)文件的邏輯單元的至少一個實體單元。例如,在對應(yīng)于某一個虛設(shè)文件的寫入操作中,主機系統(tǒng)11(或應(yīng)用程序714)可以判斷此虛設(shè)文件是否已存在。若此虛設(shè)文件不存在,則主機系統(tǒng)11 (或應(yīng)用程序714)會建立此虛設(shè)文件(例如,建立于主機系統(tǒng)11的文件系統(tǒng)中)并且將與第三預(yù)設(shè)識別信息一致的第四識別信息加入至欲發(fā)送的寫入指令序列(也稱為第三寫入指令序列)中。此第三寫入指令序列指示將某一數(shù)據(jù)(也稱為第三預(yù)設(shè)數(shù)據(jù))寫入至對應(yīng)于此虛設(shè)文件的邏輯單元。當存儲器管理電路502接收到此第三寫入指令序列時,反應(yīng)于此第三寫入指令序列中的第四識別信息與第三預(yù)設(shè)識別信息一致,存儲器管理電路502會從可復(fù)寫式非易失性存儲器模塊406中選擇一個實體單元并且將第三預(yù)設(shè)數(shù)據(jù)存儲至此實體單元。反之,若此虛設(shè)文件已存在,則主機系統(tǒng)11 (或應(yīng)用程序714)會發(fā)送一個不包含與第三預(yù)設(shè)識別信息一致的識別信息的寫入指令序列(也稱為第四寫入指令序列)至存儲器存儲裝置10。例如,此第四寫入指令序列包含上述第五識別信息。當存儲器管理電路502接收到此第四寫入指令序列時,反應(yīng)于此第四寫入指令序列中的第五識別信息與第三預(yù)設(shè)識別信息不一致,故存儲器管理電路502不會將第四寫入指令序列所指示需存儲的數(shù)據(jù)(也稱為第四預(yù)設(shè)數(shù)據(jù))存儲至可復(fù)寫式非易失性存儲器模塊406中。在此提及的第三寫入指令序列或第四寫入指令序列可以應(yīng)用于第一范例實施例與第二范例實施例中對應(yīng)于任意虛設(shè)文件的寫入操作。此外,在另一范例實施例中,對應(yīng)于虛設(shè)文件不存在而加入的第四識別信息也可以是以包含于欲存儲的數(shù)據(jù)中的第一識別信息來取代,第三預(yù)設(shè)識別信息也可以是以第一預(yù)設(shè)識別信息來取代。藉此,存儲器管理電路502可以根據(jù)欲存儲的數(shù)據(jù)中的識別信息來決定是否存儲對應(yīng)數(shù)據(jù)。關(guān)于存儲器管理電路502如何根據(jù)欲存儲的數(shù)據(jù)中識別信息來決定是否存儲對應(yīng)數(shù)據(jù)已于前述說明,在此便不贅述。
[0144]在一范例實施例中,主機系統(tǒng)11 (或應(yīng)用程序714)還可以根據(jù)所使用的虛設(shè)文件的數(shù)目與每一個虛設(shè)文件大小來估測快取存儲器710的大小。例如,對應(yīng)于N個虛設(shè)文件的寫入操作被執(zhí)行,則主機系統(tǒng)11 (或應(yīng)用程序714)可估測此快取存儲器710的大小是小于或等于N個虛設(shè)文件的大小。藉此,在執(zhí)行響應(yīng)讀取操作之前,N個虛設(shè)文件可以被同步或連續(xù)地寫入數(shù)據(jù),以加快更新快取存儲器710的速度。或者,在另一范例實施例中,在獲得快取存儲器710的大小之后,后續(xù)使用的虛設(shè)文件的大小也可以被決定或被改變。例如,若快取存儲器710的大小是小于或等于N個虛設(shè)文件的大小,則主機系統(tǒng)11 (或應(yīng)用程序714)也可以直接選擇大小接近N個虛設(shè)文件的大小的某一個虛設(shè)文件來進行寫入操作,減少需要執(zhí)行的寫入操作的數(shù)目。此外,若主機系統(tǒng)11 (或應(yīng)用程序714)判斷所使用的虛設(shè)文件的大小可能太大,則虛設(shè)文件的大小也可以被適當?shù)販p少,以節(jié)省存儲器空間。
[0145]圖10是根據(jù)本發(fā)明的一范例實施例所示的響應(yīng)讀取方法的流程圖。
[0146]請參照圖10,在步驟S1001中,由系統(tǒng)發(fā)送對應(yīng)于第一暫時文件的第一操作指令至存儲器存儲裝置,其中第一操作指令用以指示智能卡執(zhí)行第一操作。在步驟S1002中,由系統(tǒng)執(zhí)行對應(yīng)于第一虛設(shè)文件的第一寫入操作,其中第一寫入操作用以更新快取存儲器中的第一數(shù)據(jù)。在步驟S1003中,由系統(tǒng)執(zhí)行對應(yīng)于第二暫時文件的響應(yīng)讀取操作,其中響應(yīng)讀取操作用以讀取智能卡對應(yīng)于第一操作指令的響應(yīng)。
[0147]然而,圖10中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖10中各步驟可以實作為多個程序碼或是電路,本發(fā)明并不在此限。此外,圖10的方法可以搭配以上范例實施例使用,也可以單獨使用,本發(fā)明不加以限制。
[0148]綜上所述,通過對使用不同邏輯單元的虛設(shè)文件執(zhí)行寫入操作,本發(fā)明可有效排除掉主機系統(tǒng)的快取存儲器中的舊數(shù)據(jù)。藉此,可增加主機系統(tǒng)從智能卡讀取到“正確的”響應(yīng)信息的機率。
[0149]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【主權(quán)項】
1.一種響應(yīng)讀取方法,其特征在于,用于系統(tǒng)與存儲器存儲裝置之間的數(shù)據(jù)傳輸,其中所述系統(tǒng)具有快取存儲器,所述存儲器存儲裝置具有智能卡與可復(fù)寫式非易失性存儲器模塊,所述響應(yīng)讀取方法包括: 由所述系統(tǒng)發(fā)送對應(yīng)于第一暫時文件的第一操作指令序列至所述存儲器存儲裝置,其中所述第一操作指令序列用以指示所述智能卡執(zhí)行第一操作; 由所述系統(tǒng)執(zhí)行對應(yīng)于第一虛設(shè)文件的第一寫入操作,其中所述第一寫入操作用以更新所述快取存儲器中的第一數(shù)據(jù);以及 由所述系統(tǒng)執(zhí)行對應(yīng)于第二暫時文件的響應(yīng)讀取操作,其中所述響應(yīng)讀取操作用以讀取所述智能卡對應(yīng)于所述第一操作指令序列的響應(yīng)。2.根據(jù)權(quán)利要求1所述的響應(yīng)讀取方法,其特征在于,在所述系統(tǒng)執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作的步驟之前,所述響應(yīng)讀取方法還包括: 由所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的第一讀取操作; 由所述系統(tǒng)判斷所述第一讀取操作所獲得的第一讀取數(shù)據(jù)中的識別信息是否與一第一預(yù)設(shè)識別信息一致;以及 若所述第一讀取數(shù)據(jù)中的所述識別信息與所述第一預(yù)設(shè)識別信息不一致,由所述系統(tǒng)執(zhí)行對應(yīng)于第二虛設(shè)文件的第二寫入操作,其中所述第二寫入操作用以更新所述快取存儲器中的第二數(shù)據(jù),其中所述第一虛設(shè)文件與所述第二虛設(shè)文件不同。3.根據(jù)權(quán)利要求2所述的響應(yīng)讀取方法,其特征在于,由所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作的步驟包括: 由所述系統(tǒng)發(fā)送第一寫入指令序列至所述存儲器存儲裝置,其中所述第一寫入指令序列指示將第一預(yù)設(shè)數(shù)據(jù)寫入至對應(yīng)于所述第一虛設(shè)文件的第一邏輯單元,其中所述第一預(yù)設(shè)數(shù)據(jù)包含與所述第一預(yù)設(shè)識別信息一致的第一識別信息;以及 由所述系統(tǒng)發(fā)送第二寫入指令序列至所述存儲器存儲裝置,其中所述第二寫入指令序列指示將第二預(yù)設(shè)數(shù)據(jù)寫入至所述第一邏輯單元,其中所述第二預(yù)設(shè)數(shù)據(jù)包含與所述第一預(yù)設(shè)識別信息不一致的第二識別信息,其中所述第二預(yù)設(shè)數(shù)據(jù)是用以取代暫存于所述快取存儲器中的所述第一預(yù)設(shè)數(shù)據(jù)。4.根據(jù)權(quán)利要求3所述的響應(yīng)讀取方法,其特征在于,由所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一讀取操作的步驟包括: 由所述系統(tǒng)發(fā)送第一讀取指令序列至所述存儲器存儲裝置,其中所述第一讀取指令序列用以讀取存儲于所述第一邏輯單元的所述第一預(yù)設(shè)數(shù)據(jù)。5.根據(jù)權(quán)利要求3所述的響應(yīng)讀取方法,其特征在于,還包括: 由所述存儲器存儲裝置接收所述第一寫入指令序列并且將所述第一預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中;以及 由所述存儲器存儲裝置接收所述第二寫入指令序列并且不將所述第二預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中。6.根據(jù)權(quán)利要求2所述的響應(yīng)讀取方法,其特征在于,由所述系統(tǒng)執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作的步驟是在所述系統(tǒng)判定所述第一讀取數(shù)據(jù)中的所述識別信息與所述第一預(yù)設(shè)識別信息一致之后執(zhí)行。7.根據(jù)權(quán)利要求1所述的響應(yīng)讀取方法,其特征在于,由所述系統(tǒng)執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作的步驟包括: 由所述系統(tǒng)判斷所述響應(yīng)讀取操作所獲得的響應(yīng)數(shù)據(jù)中的識別信息是否與第二預(yù)設(shè)識別信息一致, 其中由所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作的步驟是在所述系統(tǒng)判斷所述響應(yīng)數(shù)據(jù)中的所述識別信息與所述第二預(yù)設(shè)識別信息不一致之后執(zhí)行。8.根據(jù)權(quán)利要求7所述的響應(yīng)讀取方法,其特征在于,所述第一操作指令序列包括與所述第二預(yù)設(shè)識別信息一致的第三識別信息,所述響應(yīng)讀取方法還包括: 由所述存儲器存儲裝置接收所述第一操作指令序列并且記錄所述第一操作指令序列中的所述第三識別信息;以及 由所述存儲器存儲裝置將所述第三識別信息加入至所述智能卡對應(yīng)于所述第一操作指令序列的所述響應(yīng)中。9.根據(jù)權(quán)利要求1所述的響應(yīng)讀取方法,其特征在于,由所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作的步驟包括: 由所述系統(tǒng)判斷所述第一虛設(shè)文件是否已存在; 若所述第一虛設(shè)文件不存在,由所述系統(tǒng)建立所述第一虛設(shè)文件并且發(fā)送第三寫入指令序列至所述存儲器存儲裝置,其中所述第三寫入指令序列指示將第三預(yù)設(shè)數(shù)據(jù)寫入至對應(yīng)于所述第一虛設(shè)文件的第一邏輯單元,其中所述第三寫入指令序列包含與第三預(yù)設(shè)識別信息一致的第四識別信息;以及 若所述第一虛設(shè)文件已存在,由所述系統(tǒng)發(fā)送第四寫入指令序列至所述存儲器存儲裝置,其中所述第四寫入指令序列指示將第四預(yù)設(shè)數(shù)據(jù)寫入至所述第一邏輯單元,其中所述第四寫入指令序列包含與所述第三預(yù)設(shè)識別信息不一致的第五識別信息。10.根據(jù)權(quán)利要求9所述的響應(yīng)讀取方法,其特征在于,還包括: 由所述存儲器存儲裝置接收所述第三寫入指令序列并且將所述第三預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中;以及 由所述存儲器存儲裝置接收所述第四寫入指令序列并且不將所述第四預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中。11.一種數(shù)據(jù)傳輸系統(tǒng),其特征在于,包括: 系統(tǒng)與存儲器存儲裝置, 其中所述系統(tǒng)包括快取存儲器, 其中所述存儲器存儲裝置包括連接接口單元、存儲器控制電路單元、一可復(fù)寫式非易失性存儲器模塊及智能卡,所述連接接口單元用以電性連接至所述系統(tǒng),所述存儲器控制電路單元電性連接至所述連接接口單元,所述可復(fù)寫式非易失性存儲器模塊與所述智能卡分別電性連接至所述存儲器控制電路單元, 其中所述系統(tǒng)用以發(fā)送對應(yīng)于第一暫時文件的第一操作指令序列至所述存儲器存儲裝置,其中所述第一操作指令序列用以指示所述智能卡執(zhí)行第一操作, 其中所述系統(tǒng)還用以執(zhí)行對應(yīng)于第一虛設(shè)文件的第一寫入操作,其中所述第一寫入操作用以更新所述快取存儲器中的第一數(shù)據(jù), 其中所述系統(tǒng)還用以執(zhí)行對應(yīng)于第二暫時文件的響應(yīng)讀取操作,其中所述響應(yīng)讀取操作用以讀取所述智能卡對應(yīng)于所述第一操作指令序列的響應(yīng)。12.根據(jù)權(quán)利要求11所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,在所述系統(tǒng)執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作之前,所述系統(tǒng)還用以執(zhí)行對應(yīng)于所述第一虛設(shè)文件的第一讀取操作, 其中所述系統(tǒng)還用以判斷所述第一讀取操作所獲得的第一讀取數(shù)據(jù)中的識別信息是否與第一預(yù)設(shè)識別信息一致, 其中若所述第一讀取數(shù)據(jù)中的所述識別信息與所述第一預(yù)設(shè)識別信息不一致,所述系統(tǒng)還用以執(zhí)行對應(yīng)于第二虛設(shè)文件的一第二寫入操作,其中所述第二寫入操作用以更新所述快取存儲器中的第二數(shù)據(jù),其中所述第一虛設(shè)文件與所述第二虛設(shè)文件不同。13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作包括: 發(fā)送第一寫入指令序列至所述存儲器存儲裝置,其中所述第一寫入指令序列指示將第一預(yù)設(shè)數(shù)據(jù)寫入至對應(yīng)于所述第一虛設(shè)文件的第一邏輯單元,其中所述第一預(yù)設(shè)數(shù)據(jù)包含與所述第一預(yù)設(shè)識別信息一致的第一識別信息;以及 發(fā)送第二寫入指令序列至所述存儲器存儲裝置,其中所述第二寫入指令序列指示將第二預(yù)設(shè)數(shù)據(jù)寫入至所述第一邏輯單元,其中所述第二預(yù)設(shè)數(shù)據(jù)包含與所述第一預(yù)設(shè)識別信息不一致的第二識別信息,其中所述第二預(yù)設(shè)數(shù)據(jù)是用以取代暫存于所述快取存儲器中的所述第一預(yù)設(shè)數(shù)據(jù)。14.根據(jù)權(quán)利要求13所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一讀取操作包括: 發(fā)送第一讀取指令序列至所述存儲器存儲裝置,其中所述第一讀取指令序列用以讀取存儲于所述第一邏輯單元的所述第一預(yù)設(shè)數(shù)據(jù)。15.根據(jù)權(quán)利要求13所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述存儲器控制電路單元用以接收所述第一寫入指令序列并且將所述第一預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中, 其中所述存儲器控制電路單元還用以接收所述第二寫入指令序列并且不將所述第二預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中。16.根據(jù)權(quán)利要求12所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述系統(tǒng)是在判定所述第一讀取數(shù)據(jù)中的所述識別信息與所述第一預(yù)設(shè)識別信息一致之后執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作。17.根據(jù)權(quán)利要求11所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述系統(tǒng)執(zhí)行對應(yīng)于所述第二暫時文件的所述響應(yīng)讀取操作包括: 判斷所述響應(yīng)讀取操作所獲得的響應(yīng)數(shù)據(jù)中的識別信息是否與第二預(yù)設(shè)識別信息一致, 其中所述系統(tǒng)是在判斷所述響應(yīng)數(shù)據(jù)中的所述識別信息與所述第二預(yù)設(shè)識別信息不一致之后執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作。18.根據(jù)權(quán)利要求17所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述第一操作指令序列包括與所述第二預(yù)設(shè)識別信息一致的第三識別信息, 其中所述存儲器控制電路單元用以接收所述第一操作指令序列并且記錄所述第一操作指令序列中的所述第三識別信息, 其中所述存儲器控制電路單元還用以將所述第三識別信息加入至所述智能卡對應(yīng)于所述第一操作指令序列的所述響應(yīng)中。19.根據(jù)權(quán)利要求11所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述系統(tǒng)執(zhí)行對應(yīng)于所述第一虛設(shè)文件的所述第一寫入操作包括: 判斷所述第一虛設(shè)文件是否已存在; 若所述第一虛設(shè)文件不存在,建立所述第一虛設(shè)文件并且發(fā)送第三寫入指令序列至所述存儲器存儲裝置,其中所述第三寫入指令序列指示將第三預(yù)設(shè)數(shù)據(jù)寫入至對應(yīng)于所述第一虛設(shè)文件的第一邏輯單元,其中所述第三寫入指令序列包含與第三預(yù)設(shè)識別信息一致的第四識別信息;以及 若所述第一虛設(shè)文件已存在,發(fā)送第四寫入指令序列至所述存儲器存儲裝置,其中所述第四寫入指令序列指示將第四預(yù)設(shè)數(shù)據(jù)寫入至所述第一邏輯單元,其中所述第四寫入指令序列包含與所述第三預(yù)設(shè)識別信息不一致的第五識別信息。20.根據(jù)權(quán)利要求19所述的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述存儲器控制電路單元還用以接收所述第三寫入指令序列并且將所述第三預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中, 其中所述存儲器控制電路單元還用以接收所述第四寫入指令序列并且不將所述第四預(yù)設(shè)數(shù)據(jù)存儲至所述可復(fù)寫式非易失性存儲器模塊中。
【文檔編號】G06F3/06GK106033321SQ201510115732
【公開日】2016年10月19日
【申請日】2015年3月17日
【發(fā)明人】劉興昌, 陳孟彰
【申請人】群聯(lián)電子股份有限公司