CN106033321B - 响应读取方法及数据传输系统 - Google Patents

响应读取方法及数据传输系统 Download PDF

Info

Publication number
CN106033321B
CN106033321B CN201510115732.XA CN201510115732A CN106033321B CN 106033321 B CN106033321 B CN 106033321B CN 201510115732 A CN201510115732 A CN 201510115732A CN 106033321 B CN106033321 B CN 106033321B
Authority
CN
China
Prior art keywords
identification information
file
data
illusory
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510115732.XA
Other languages
English (en)
Other versions
CN106033321A (zh
Inventor
刘兴昌
陈孟彰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phison Electronics Corp
Original Assignee
Phison Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to CN201510115732.XA priority Critical patent/CN106033321B/zh
Publication of CN106033321A publication Critical patent/CN106033321A/zh
Application granted granted Critical
Publication of CN106033321B publication Critical patent/CN106033321B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供一种响应读取方法及数据传输系统。此方法包括:由系统发送对应于第一暂时文件的第一操作指令至存储器存储装置,其中第一操作指令指示智能卡执行第一操作。此方法还包括:由系统执行第一虚设文件的第一写入操作,此第一写入操作用以更新快取存储器中的第一数据。此方法还包括:由系统执行对应于第二暂时文件的响应读取操作,其中所述响应读取操作用以读取智能卡对应于所述第一操作指令的响应。因此,本发明可确保主机系统所接收到的响应数据的正确性。

Description

响应读取方法及数据传输系统
技术领域
本发明涉及一种响应读取方法,尤其涉及一种用于具有主机系统与包括可复写式非易失性存储器模块与智能卡的存储器存储装置的数据传输系统的响应读取方法及数据传输系统。
背景技术
随着使用者逐渐接受使用电子钱包及预付储值,使得智能卡的使用日益普及。智能卡(Smart Card)是具有例如微处理器、卡操作系统、安全模块及存储器的组件的集成电路芯片(IC芯片),以允许持有者执行预定操作。智能卡提供计算、加密、双向通信及安全功能,使得这张卡片除了存储数据的功能外还能达到对其所存储的数据加以保护的功能。使用全球移动通信系统(GSM)机制的蜂巢式电话中所使用的用户识别模块(SubscriberIdentification Module,SIM)卡为智能卡的其中一个应用范例。然而,智能卡本身受限于存储容量,因此近年来开始与大存储容量的存储卡作结合,以扩增智能卡的存储容量。
存储卡是一种数据存储设备,其一般是以NAND快闪存储器作为存储媒体。NAND快闪存储器具有可写入、可抹除、以及断电后仍可保存数据的优点,此外,随着制造技术的改良,NAND快闪存储器具有体积小、存取速度快、与耗电量低等优点。一般来说,若使用者要存取存储卡内的数据必须通过读卡机来存取,因此在将智能卡结合至存储卡的应用中,也仅能通过读卡机来以接触式(contact)读取存储卡与智能卡内的数据。然而,随着近距离无线通讯(Near Field Communication,NFC)的发展,许多非接触式(contactless)感应技术已广泛应用于生活中,例如捷运票卡、门禁卡等。
然而,当主机系统在读取某些属于智能卡的数据时,主机系统可能无法直接读取智能卡回复的数据,而是读到主机系统的快取存储器内的旧数据。基此,需要发展一套能够在结合快闪存储器与智能卡的应用中无误地传递智能卡的响应信息的系统和方法。
发明内容
本发明提供一种响应读取方法及数据传输系统,其可确保主机系统所接收到的响应数据的正确性。
本发明的一范例实施例提供一种响应读取方法,其用于系统与存储器存储装置之间的数据传输,其中所述系统具有快取存储器,所述存储器存储装置具有智能卡与可复写式非易失性存储器模块,所述响应读取方法包括:由所述系统发送对应于第一暂时文件的第一操作指令序列至所述存储器存储装置,其中所述第一操作指令序列用以指示所述智能卡执行第一操作;由所述系统执行对应于第一虚设文件的第一写入操作,其中所述第一写入操作用以更新所述快取存储器中的第一数据;以及由所述系统执行对应于第二暂时文件的响应读取操作,其中所述响应读取操作用以读取所述智能卡对应于所述第一操作指令序列的响应。
在本发明的一范例实施例中,在所述系统执行对应于所述第二暂时文件的所述响应读取操作的步骤之前,所述响应读取方法还包括:由所述系统执行对应于所述第一虚设文件的第一读取操作;由所述系统判断所述第一读取操作所获得的第一读取数据中的识别信息是否与第一预设识别信息一致;以及若所述第一读取数据中的所述识别信息与所述第一预设识别信息不一致,由所述系统执行对应于第二虚设文件的第二写入操作,其中所述第二写入操作用以更新所述快取存储器中的第二数据,其中所述第一虚设文件与所述第二虚设文件不同。
在本发明的一范例实施例中,由所述系统执行对应于所述第一虚设文件的所述第一写入操作的步骤包括:由所述系统发送第一写入指令序列至所述存储器存储装置,其中所述第一写入指令序列指示将第一预设数据写入至对应于所述第一虚设文件的第一逻辑单元,其中所述第一预设数据包含与所述第一预设识别信息一致的第一识别信息;以及由所述系统发送第二写入指令序列至所述存储器存储装置,其中所述第二写入指令序列指示将第二预设数据写入至所述第一逻辑单元,其中所述第二预设数据包含与所述第一预设识别信息不一致的第二识别信息,其中所述第二预设数据是用以取代暂存于所述快取存储器中的所述第一预设数据。
在本发明的一范例实施例中,由所述系统执行对应于所述第一虚设文件的所述第一读取操作的步骤包括:由所述系统发送第一读取指令序列至所述存储器存储装置,其中所述第一读取指令序列用以读取存储于所述第一逻辑单元的所述第一预设数据。
在本发明的一范例实施例中,所述响应读取方法还包括:由所述存储器存储装置接收所述第一写入指令序列并且将所述第一预设数据存储至所述可复写式非易失性存储器模块中;以及由所述存储器存储装置接收所述第二写入指令序列并且不将所述第二预设数据存储至所述可复写式非易失性存储器模块中。
在本发明的一范例实施例中,由所述系统执行对应于所述第二暂时文件的所述响应读取操作的步骤是在所述系统判定所述第一读取数据中的识别信息与所述第一预设识别信息一致之后执行。
在本发明的一范例实施例中,由所述系统执行对应于所述第二暂时文件的所述响应读取操作的步骤包括:由所述系统判断所述响应读取操作所获得的响应数据中的识别信息是否与第二预设识别信息一致,其中由所述系统执行对应于所述第一虚设文件的所述第一写入操作的步骤是在所述系统判断所述响应数据中的所述识别信息与所述第二预设识别信息不一致之后执行。
在本发明的一范例实施例中,所述第一操作指令序列包括与所述第二预设识别信息一致的第三识别信息,所述响应读取方法还包括:由所述存储器存储装置接收所述第一操作指令序列并且记录所述第一操作指令序列中的所述第三识别信息;以及由所述存储器存储装置将所述第三识别信息加入至所述智能卡对应于所述第一操作指令序列的所述响应中。
在本发明的一范例实施例中,由所述系统执行对应于所述第一虚设文件的所述第一写入操作的步骤包括:由所述系统判断所述第一虚设文件是否已存在;若所述第一虚设文件不存在,由所述系统建立所述第一虚设文件并且发送第三写入指令序列至所述存储器存储装置,其中所述第三写入指令序列指示将第三预设数据写入至对应于所述第一虚设文件的第一逻辑单元,其中所述第三写入指令序列包含与第三预设识别信息一致的第四识别信息;以及若所述第一虚设文件已存在,由所述系统发送第四写入指令序列至所述存储器存储装置,其中所述第四写入指令序列指示将第四预设数据写入至所述第一逻辑单元,其中所述第四写入指令序列包含与所述第三预设识别信息不一致的第五识别信息。
在本发明的一范例实施例中,所述响应读取方法还包括:由所述存储器存储装置接收所述第三写入指令序列并且将所述第三预设数据存储至所述可复写式非易失性存储器模块中;以及由所述存储器存储装置接收所述第四写入指令序列并且不将所述第四预设数据存储至所述可复写式非易失性存储器模块中。
本发明的另一范例实施例提供一种数据传输系统,其包括系统与存储器存储装置,所述系统包括快取存储器,所述存储器存储装置包括连接接口单元、存储器控制电路单元、可复写式非易失性存储器模块及智能卡,所述连接接口单元用以电性连接至所述系统,所述存储器控制电路单元电性连接至所述连接接口单元,所述可复写式非易失性存储器模块与所述智能卡分别电性连接至所述存储器控制电路单元,其中所述系统用以发送对应于第一暂时文件的第一操作指令序列至所述存储器存储装置,其中所述第一操作指令序列用以指示所述智能卡执行第一操作,其中所述系统还用以执行对应于第一虚设文件的第一写入操作,其中所述第一写入操作用以更新所述快取存储器中的第一数据,其中所述系统还用以执行对应于第二暂时文件的响应读取操作,其中所述响应读取操作用以读取所述智能卡对应于所述第一操作指令序列的响应。
在本发明的一范例实施例中,在所述系统执行对应于所述第二暂时文件的所述响应读取操作之前,所述系统还用以执行对应于所述第一虚设文件的第一读取操作,所述系统还用以判断所述第一读取操作所获得的第一读取数据中的识别信息是否与第一预设识别信息一致,若所述第一读取数据中的所述识别信息与所述第一预设识别信息不一致,所述系统还用以执行对应于第二虚设文件的第二写入操作,其中所述第二写入操作用以更新所述快取存储器中的第二数据,其中所述第一虚设文件与所述第二虚设文件不同。
在本发明的一范例实施例中,所述系统执行对应于所述第一虚设文件的所述第一写入操作包括:发送第一写入指令序列至所述存储器存储装置,其中所述第一写入指令序列指示将第一预设数据写入至对应于所述第一虚设文件的第一逻辑单元,其中所述第一预设数据包含与所述第一预设识别信息一致的第一识别信息;以及发送第二写入指令序列至所述存储器存储装置,其中所述第二写入指令序列指示将第二预设数据写入至所述第一逻辑单元,其中所述第二预设数据包含与所述第一预设识别信息不一致的第二识别信息,其中所述第二预设数据是用以取代暂存于所述快取存储器中的所述第一预设数据。
在本发明的一范例实施例中,所述系统执行对应于所述第一虚设文件的所述第一读取操作包括:发送第一读取指令序列至所述存储器存储装置,其中所述第一读取指令序列用以读取存储于所述第一逻辑单元的所述第一预设数据。
在本发明的一范例实施例中,所述存储器控制电路单元用以接收所述第一写入指令序列并且将所述第一预设数据存储至所述可复写式非易失性存储器模块中,所述存储器控制电路单元还用以接收所述第二写入指令序列并且不将所述第二预设数据存储至所述可复写式非易失性存储器模块中。
在本发明的一范例实施例中,所述系统是在判定所述第一读取数据中的所述识别信息与所述第一预设识别信息一致之后执行对应于所述第二暂时文件的所述响应读取操作。
在本发明的一范例实施例中,所述系统执行对应于所述第二暂时文件的所述响应读取操作包括:判断所述响应读取操作所获得的响应数据中的识别信息是否与第二预设识别信息一致,其中所述系统是在判断所述响应数据中的所述识别信息与所述第二预设识别信息不一致之后执行对应于所述第一虚设文件的所述第一写入操作。
在本发明的一范例实施例中,所述第一操作指令序列包括与所述第二预设识别信息一致的第三识别信息,所述存储器控制电路单元用以接收所述第一操作指令序列并且记录所述第一操作指令序列中的所述第三识别信息,所述存储器控制电路单元还用以将所述第三识别信息加入至所述智能卡对应于所述第一操作指令序列的所述响应中。
在本发明的一范例实施例中,所述系统执行对应于所述第一虚设文件的所述第一写入操作包括:判断所述第一虚设文件是否已存在;若所述第一虚设文件不存在,建立所述第一虚设文件并且发送第三写入指令序列至所述存储器存储装置,其中所述第三写入指令序列指示将第三预设数据写入至对应于所述第一虚设文件的第一逻辑单元,其中所述第三写入指令序列包含与第三预设识别信息一致的第四识别信息;以及若所述第一虚设文件已存在,发送第四写入指令序列至所述存储器存储装置,其中所述第四写入指令序列指示将第四预设数据写入至所述第一逻辑单元,其中所述第四写入指令序列包含与所述第三预设识别信息不一致的第五识别信息。
在本发明的一范例实施例中,所述存储器控制电路单元还用以接收所述第三写入指令序列并且将所述第三预设数据存储至所述可复写式非易失性存储器模块中,所述存储器控制电路单元还用以接收所述第四写入指令序列并且不将所述第四预设数据存储至所述可复写式非易失性存储器模块中。
基于上述,通过对使用不同逻辑单元的虚设文件执行写入操作,本发明可加速排除掉快取存储器中的旧数据。藉此,可增加主机系统从智能卡读取到“正确的”响应信息的机率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示的主机系统与存储器存储装置的示意图;
图2是根据本发明的一范例实施例所示的电脑、输入/输出装置与存储器存储装置的示意图;
图3是根据本发明的一范例实施例所示的主机系统与存储器存储装置的示意图;
图4是图1所示的存储器存储装置的概要方块图;
图5是根据本发明的一范例实施例所示的存储器控制电路单元的概要方块图;
图6是根据本发明的一范例实施例所示的管理实体抹除单元的示意图;
图7是根据本发明的一范例实施例所示的数据传输系统的概要方块图;
图8A至图8I是根据本发明的第一范例实施例所示的更新快取与读取响应的示意图;
图9A至图9C是根据本发明的第二范例实施例所示的更新快取与读取响应的示意图;
图10是根据本发明的一范例实施例所示的响应读取方法的流程图。
附图标记说明:
11:主机系统;
12:电脑;
122:微处理器;
124:随机存取存储器(RAM);
13:输入/输出装置;
126:系统总线;
128:数据传输接口;
21:鼠标;
22:键盘;
23:显示器;
24:打印机;
25:随身盘;
26:存储卡;
27:固态硬盘;
31:数码相机;
32:SD卡;
33:MMC卡;
34:记忆棒;
35:CF卡;
36:嵌入式存储装置;
10:存储器存储装置;
402:连接接口单元;
404:存储器控制电路单元;
406:可复写式非易失性存储器模块;
408:智能卡;
410(0)~410(F):实体抹除单元;
502:存储器管理电路;
504:主机接口;
506:存储器接口;
508:缓冲存储器;
510:电源管理电路;
512:错误检查与校正电路;
610(0)~610(D):逻辑单元;
710(0)~710(M):快取区;
700:数据传输系统;
710:快取存储器;
712:处理器;
714:应用程序;
810(0)~810(A):实体单元;
D1、D2、D3:数据;
H1、H2、Token 0、Token 1:识别信息;
S1001~S1003:步骤。
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据本发明的一范例实施例所示的主机系统与存储器存储装置的示意图。图2是根据本发明的一范例实施例所示的电脑、输入/输出装置与存储器存储装置的示意图。
请参照图1,主机系统11一般包括电脑12与输入/输出(input/output,I/O)装置1106。电脑12包括微处理器122、随机存取存储器(random access memory,RAM)124、系统总线126与数据传输接口128。输入/输出装置13包括如图2的鼠标21、键盘22、显示器23与打印机24。必须了解的是,图2所示的装置非限制输入/输出装置13,输入/输出装置13可还包括其他装置。
在本发明实施例中,存储器存储装置10是通过数据传输接口128与主机系统11的其他元件电性连接。通过微处理器122、随机存取存储器124与输入/输出装置13的运作可将数据写入至存储器存储装置10或从存储器存储装置10中读取数据。例如,存储器存储装置10可以是如图2所示的随身盘25、存储卡26或固态硬盘(Solid State Drive,SSD)27等的可复写式非易失性存储器存储装置。
图3是根据本发明的一范例实施例所示的主机系统与存储器存储装置的示意图。
一般而言,主机系统11为可实质地与存储器存储装置10配合以存储数据的任意系统。虽然在本范例实施例中,主机系统11是以电脑系统来做说明,然而,在另一范例实施例中主机系统11可以是数码相机、摄影机、通信装置、音讯播放器或视讯播放器等系统。例如,在主机系统为图3中的数码相机(摄影机)31时,可复写式非易失性存储器存储装置则为其所使用的SD卡32、MMC卡33、记忆棒(memory stick)34、CF卡35或嵌入式存储装置36(如图3所示)。嵌入式存储装置36包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图4是图1所示的存储器存储装置的概要方块图。
请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404、可复写式非易失性存储器模块406以及智能卡408。
连接接口单元402是相容于安全数字(Secure Digital,SD)接口标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级技术附件(ParallelAdvanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute ofElectrical and Electronic Engineers,IEEE)1394标准、高速外设部件互连(PeripheralComponent Interconnect Express,PCI Express)标准、通用串行总线(Universal SerialBus,USB)标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(UltraHigh Speed-II,UHS-II)接口标准、串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)标准、记忆棒(Memory Stick,MS)接口标准、多媒体存储卡(Multi MediaCard,MMC)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。在本范例实施例中,连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或布设于一包含存储器控制电路单元404的芯片外。
存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑闸或控制指令,并且根据主机系统11的指令在可复写式非易失性存储器模块406与智能卡408中进行数据的写入、读取、抹除与合并等运作。
可复写式非易失性存储器模块406是电性连接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶记忆胞(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个记忆胞中可存储1个比特数据的快闪存储器模块)、多阶记忆胞(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个记忆胞中可存储2个比特数据的快闪存储器模块)、复数阶记忆胞(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个记忆胞中可存储3个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
智能卡408电性连接至存储器控制电路单元404并且用以执行计算、加密、双向通信及安全认证等功能。在一范例实施例中,智能卡408为相容于ISO 7816标准的接触式智能卡。然而,必须了解的是,本发明不限于此。例如,智能卡408也可是相容于ISO 14443、ISO15408或其他安全智能卡标准的接触或非接触式智能卡。又例如,智能卡408可为射频识别(Radio Frequency Identification,RFID)芯片、无线传输芯片(如:蓝芽芯片)或多媒体控制芯片(如:数位录音芯片)等。此外,值得说明的是,存储器控制电路单元404与智能卡408可各为一独立芯片,也可合并封装为一单一芯片。在本范例实施例中,智能卡408是用以存储加/解密金钥、账号和/或密码等与安全验证有关的敏感数据。然而,在另一范例实施例中,智能卡408也可以用以存储一般数据。
图5是根据本发明的一范例实施例所示的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504与存储器接口506。
存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。
在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在另一范例实施例中,存储器管理电路502的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、唯读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
主机接口504是电性连接至存储器管理电路502并且用以电性连接至连接接口单元402,以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是相容于SD标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SATA标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口506是电性连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406与智能卡408。也就是说,欲写入至可复写式非易失性存储器模块406或智能卡408的数据会经由存储器接口506转换为可复写式非易失性存储器模块406或智能卡408所能接受的格式。例如,若存储器管理电路502要存取可复写式非易失性存储器模块406,存储器接口506会传送对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。
在一范例实施例中,存储器控制电路单元404还包括缓冲存储器508、电源管理电路510与错误检查与校正电路512。
缓冲存储器508是电性连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406或智能卡408的数据。
电源管理电路510是电性连接至存储器管理电路502并且用以控制存储器存储装置10的电源。
错误检查与校正电路512是电性连接至存储器管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路512会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code)和/或错误检查码(errordetecting code,EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误检查与校正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误检查与校正码和/或错误检查码,并且错误检查与校正电路512会依据此错误检查与校正码和/或错误检查码对所读取的数据执行错误检查与校正程序。
图6是根据本发明的范例实施例所示的管理实体抹除单元的示意图。
必须了解的是,在此描述实体抹除单元的运作时,以“选择”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,实体抹除单元在可复写式非易失性存储器模块406中的实际位置并未更动,而是逻辑上对此些实体抹除单元进行操作。
请参照图6,可复写式非易失性存储器模块406具有实体抹除单元410(0)~410(F)。实体抹除单元410(0)~410(F)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。
在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面或是实体扇(sector)。若实体程序化单元为实体页面,则每一个实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体扇,用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,错误更正码)。在本范例实施例中,一个数据比特区包含32个实体扇,且一个实体扇的大小为512字节(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇。另一方面,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目的一并被抹除的记忆胞。例如,实体抹除单元为实体区块。
存储器管理电路502会配置逻辑单元610(0)~610(D)以映射至实体抹除单元410(0)~410(F)的至少一部分。例如,在本范例实施例中,主机系统11是通过逻辑区块地址(logical block address,LBA)来存取存储在实体抹除单元410(0)~410(F)中的数据,因此每一个逻辑单元610(0)~610(D)是指一个逻辑区块地址。在本范例实施例中,一个逻辑区块地址的大小等于一个逻辑扇的大小。例如,一个逻辑扇的大小为512字节。然而,在另一范例实施例中,一个逻辑区块地址的大小也可以是更大或更小,并且每一个逻辑单元610(0)~610(D)也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续的逻辑区块地址组成。每一个逻辑单元610(0)~610(D)是映射至一或多个实体单元。在本范例实施例中,一个实体单元是指一个实体扇。然而,在另一范例实施例中,一个实体单元也可以是一个实体地址、一个实体程序化单元、一个实体抹除单元或者是由多个连续的实体地址组成,本发明不加以限制。存储器管理电路502会将逻辑单元与实体单元之间的映射关系记录于一或多个逻辑-实体映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此一或多个逻辑-实体映射表来执行对于存储器存储装置10的数据存取。
图7是根据本发明的一范例实施例所示的数据传输系统的概要方块图。
数据传输系统700包括存储器存储装置10与主机系统11。主机系统11包括快取存储器710与处理器712。
快取存储器710用以暂存主机系统11最近曾使用过的数据。快取存储器710例如是随机存取存储器。例如,当属于某一个逻辑单元的数据被从存储器存储装置10传送到主机系统11时,此数据会被暂存在快取存储器710。尔后,若主机系统11需要再次使用到属于此逻辑单元的数据且此数据仍存在于快取存储器710中,则此数据可以快速地被从快取存储器710中读取出来。藉此,主机系统11不需要花费额外的时间与系统资源从存储器存储装置10中读取相同的数据。
处理器712电性连接至快取存储器710。处理器712用以负责主机系统11的整体运作。处理器712例如是中央处理器(central processing unit,CPU)。处理器712运行有应用程序714。例如,应用程序714可以是即时通讯应用程序、简讯应用程序、通话应用程序或安全验证应用程序等各种类型的应用程序,且应用程序714的种类不限于上述。此外,主机系统11也可以运行一或多个操作系统(operating system,OS)并且基于此操作系统来运行应用程序714。此操作系统例如是安卓(android)或其他类型/版本的操作系统。
在本范例实施例中,主机系统11(或应用程序714)可通过一或多个暂时文件来存取智能卡408。此暂时文件可以是静态或动态地被建立。例如,在主机系统11的文件系统中,动态建立的暂时文件(也称为动态暂时文件)的文件位置和/或存取权限与一般操作系统自行建立的暂时文件(也称为静态暂时文件)的文件位置和/或存取权限不一定会相同。例如,动态暂时文件的文件位置可能会是在属于应用程序714的一个预设目录/路径下,而静态暂时文件的文件位置可能是位于根目录或任意预设目录下。一般来说,动态暂时文件与静态暂时文件皆可供应用程序714存取。然而,在某些特定的操作系统(例如,Android 4.4.2)中,由于存取权限的设定,应用程序714仅可以动态建立暂时文件而无法直接存取预先建立的静态暂时文件。每一个暂时文件会占据N个逻辑单元,并且N为任意的正整数。每一个暂时文件的大小可以视实务上的需求调整。通过存取属于某一个暂时文件的逻辑单元,主机系统11(或应用程序714)即可执行对于智能卡408的数据存取操作。
主机系统11(或应用程序714)是通过特殊操作指令来操作智能卡408。例如,此特殊操作指令包括符合ISO 7816标准的指令-应用程序协定数据单元(Command-ApplicationProtocol Data Unit,C-APDU)。例如,当应用程序714欲操作智能卡408时,主机系统11(或应用程序714)会产生一个特殊操作指令。此特殊操作指令会被暂存在快取存储器710中并且被传送给存储器存储装置10。存储器管理电路502会识别此特殊操作指令并且指示智能卡408执行对应于此特殊操作指令的存取操作。在智能卡408完成对应于此特殊操作指令的存取操作之后,智能卡408会传送对应于此特殊操作指令的一个响应给存储器管理电路502。此响应是用以告知主机系统11对应于此特殊操作指令的操作结果。例如,此响应包括符合ISO 7816标准的响应-应用程序协定数据单元(Response-Application ProtocolData Unit,R-APDU)。另一方面,在发出一个特殊操作指令之后,主机系统11(或应用程序714)会执行一响应读取操作以尝试读取对应于此特殊操作指令的响应。
一般来说,在响应读取操作中,应用程序714会指示主机系统11读取某一响应。反应于应用程序714的指示,主机系统11会尝试从快取存储器710中读取响应。若无法从快取存储器710中读取到响应,则主机系统11才会发送一个读取指令至存储器存储装置10以读取来自智能卡408的响应。例如,主机系统11可能会尝试从快取存储器710中读取属于某一个暂时文件的数据。若主机系统11无法从快取存储器710中读取到所需的数据,则主机系统11会发送一个读取指令(也称为响应读取指令)至存储器存储装置10。此响应读取指令例如指示读取属于某一个暂时文件的某一逻辑单元的数据。在接收到此响应读取指令之后,存储器管理电路502会识别此响应读取指令并且根据此响应读取指令将来自智能卡408的响应传送给主机系统11。当主机系统11接收到此响应时,此响应会被暂存在快取存储器710中并且被传送给应用程序714。然而,在响应读取操作中,若主机系统11可以直接从快取存储器710中读取到属于某一个暂时文件的数据(即,不发送响应读取指令),则不管此数据是否是应用程序714“真正”要读取的响应,主机系统11可能会视为已经读取到智能卡408根据前一次接收到的特殊操作指令而产生的响应并且将此响应提供给应用程序714。应用程序714可以对响应进行验证,从而得知所接收到的响应是否是正确的响应。若所接收到的响应不是正确的响应,则应用程序714可以再次指示主机系统11执行另一次的响应读取操作。例如,在另一次的响应读取操作中,主机系统11可能会读取属于下一个暂时文件的数据。若快取存储器710存储的“旧的”响应越多,则主机系统11直接读取到快取存储器710中的“旧的”响应的机率越大,从而可能导致主机系统11要重复执行多次的响应读取操作才可以读取到应用程序714“真正”要读取的响应。在某些例子中,甚至有可能导致主机系统11完全无法读取到应用程序714“真正”要读取的响应。
一般来说,记录在快取存储器710中的数据是以数据所属的逻辑单元为依据进行存储。例如,快取存储器710可被划分为多个快取区。以图8B为例,快取存储器710可被划分快取区710(0)~710(M)。每一个快取区的大小例如是等于一个逻辑单元的大小而可用以存储属于某一个逻辑单元的数据。此外,每一个快取区的大小也可以是更大或更小。在上述范例实施例中,假设当前快取存储器710中记录有应用程序714对于某一个逻辑单元的一个特殊操作指令(也称为“旧的”特殊操作指令)以及智能卡407对应于此“旧的”特殊操作指令的一个响应(也称为“旧的”响应)。若应用程序714又执行了对于智能卡407的另一个存取操作,则此存取操作所对应的特殊操作指令(也称为“新的”特殊操作指令)也会被暂存在快取存储器710中。尔后,当应用程序714欲读取对应于“新的”特殊操作指令的响应(也称为“新的”响应)时,此“旧的”响应可能会被从快取存储器710中读取出来并且传送给应用程序714。换言之,基于一般快取存储器710的快取机制,在应用程序714请求读取对应于某一个“新的”特殊操作指令的“新的”响应时,若快取存储器710中属于某一个暂时文件的某一个逻辑单元的“旧的”响应尚未被清除或覆盖,则应用程序714可能会读取到此“旧的”响应。藉此,除了需要花费更多的读取时间来读取“新的”响应之外,也有可能因快取存储器710存储了太多“旧的”响应而导致无法读取到“新的”响应。
在以下的范例实施例中,主机系统11(或应用程序714)会执行对于一或多个虚设文件(dummy file)的写入操作来更新快取存储器710中的数据以尝试清空或覆盖快取存储器710中可能存在的“旧的”响应。每一个虚设文件会占据P个逻辑单元,并且P可为任意的正整数。每一个虚设文件的大小可以视实务上的需求调整。特别是,在此提及的虚设文件并不等同于上述暂时文件。例如,通过执行对于虚设文件的写入操作,主机系统11(或应用程序714)可以将数据写入至属于虚设文件的逻辑单元并且据以更新快取存储器710中的数据。在本范例实施例中,用以写入至虚设文件的数据是无效数据(或虚设数据)。然而,在另一范例实施例中,用以写入至虚设文件的数据也可以是有效数据(或实际数据)。此外,通过执行对于虚设文件的读取操作,主机系统11(或应用程序714)则可以获得快取存储器710的更新状态。例如,根据快取存储器710的更新状态,主机系统11(或应用程序714)可以决定是否要继续执行对于其他虚设文件的写入操作。换言之,在本范例实施例中,虚设文件是配置为只用来更新快取存储器710中的数据,而不具有其他功能。然而,在另一范例实施例中,虚设文件也可以是用以操作智能卡408或存取可复写式非易失性存储器模块406中的数据。值得一提的是,执行上述对于虚设文件的写入操作的时间点可以是在发送某一个特殊操作指令之前、发送某一个特殊操作指令之后并且读取对应于此特殊操作指令的响应之前或者任意时间点,本发明不加以限制。通过在读取智能卡408的响应之前先执行对于虚设文件的写入操作,可以有效降低读取到上述“旧的”响应的机率。
第一范例实施例
图8A至图8I是根据本发明的第一范例实施例所示的更新快取与读取响应的示意图。
请参照图8A,假设第一暂时文件是配置在逻辑单元610(0),第二暂时文件是配置在逻辑单元610(1),第三暂时文件是配置在逻辑单元610(2),第一虚设文件是配置在逻辑单元610(3),并且第二虚设文件是配置在逻辑单元610(4)。此对应关系可被以任意形式记录于主机系统11所使用的文件系统中。例如,此文件系统可以是文件配置表(FileAllocation Table,FAT)、新技术文件系统(New Technology File System,NTFS)、高效能文件系统(High Performance File System,HPFS)或其他类型的管理文件系统。每一个暂时文件或虚设文件与逻辑单元的对应关系可以是在此暂时文件或虚设文件被建立时即时地配置或者在此暂时文件或虚设文件被建立之前就预先配置,本发明不加以限制。在使用者的操作过程中,文件系统中的文件可能会被删除或搬移等,故每一个暂时文件或虚设文件与逻辑单元的对应关系也可能会被改变。更多或更少的暂时文件和/或虚设文件与逻辑单元的对应关系也可以被记录于主机系统11所使用的文件系统中。此外,虽然本范例实施例是假设一个暂时文件的大小等于一个逻辑单元的大小且一个虚设文件的大小等于一个逻辑单元的大小,然而,在另一范例实施例中,每一个暂时文件与每一个虚设文件的大小也可以是更大或更小。例如,在另一范例实施例中,逻辑单元610(0)~610(2)也可以是属于同一个暂时文件。值得一提的是,以下所提及的主机系统11(或应用程序714)执行对应于某一个文件的读取操作/写入操作,指的是由主机系统11(或应用程序714)读取对应于此文件的逻辑单元所存储的数据或者将数据写入至此逻辑单元。
请参照图8B,可复写式非易失性存储器模块406包括实体单元810(0)~810(A)。每一个实体单元810(0)~810(A)例如是映射至逻辑单元610(0)~610(D)的其中之一。关于实体单元的大小等信息已于前述说明,在此便不赘述。此外,假设快取区710(0)存储有属于逻辑单元610(1)的“旧的”响应的数据。此“旧的”响应例如是智能卡408根据“旧的”特殊操作指令所产生并且主机系统11通过读取逻辑单元610(1)而从存储器存储装置10接收的。
请参照图8C,主机系统11发送对应于第一暂时文件的一操作指令序列(也称为第一操作指令序列)至存储器存储装置10。第一操作指令序列可包括一或多个程序码或指令码并且用以指示智能卡408执行某一操作(也称为第一操作)。例如,第一操作指令序列可包含C-APDU并且用以指示将第一操作指令序列中的数据写入至逻辑单元610(0)。此外,假设快取区710(1)是配置以暂存属于逻辑单元610(0)的数据,则第一操作指令序列中的数据也会被暂存于快取区710(1)。
在发送第一操作指令序列之后,主机系统11(或应用程序714)可以在任意的时间点执行对应于某一个暂时文件的响应读取操作以读取智能卡408对应于第一操作指令的响应。然而,主机系统11(或应用程序714)可能会读取到错误响应。以图8C为例,若主机系统11(或应用程序714)执行对应于第二暂时文件的响应读取操作,则主机系统11(或应用程序714)可能会读取到仍然存在于快取存储器710中属于逻辑单元610(1)的“旧的”响应。因此,在本范例实施例中,在执行响应读取操作之前,主机系统11(或应用程序714)会执行对应于一或多个虚设文件的写入操作,以尝试清除或覆盖快取区710(0)中的“旧的”响应。
请参照图8D,在发送第一操作指令之后,主机系统11(或应用程序714)会执行对应于第一虚设文件的第一写入操作,此第一写入操作用以更新快取存储器710中的部分数据(也称第一数据)。例如,主机系统11会发送一个写入指令序列(也称为第一写入指令序列)至存储器存储装置10。此第一写入指令序列指示将数据D1(也称为第一预设数据)存储至对应于第一虚设文件的逻辑单元610(3)。特别是,数据D1包含识别信息H1(也称为第一识别信息),并且识别信息H1与一个预设识别信息(也称为第一预设识别信息)一致。在本范例实施例中,识别信息H1与第一预设识别信息一致,指的是识别信息H1的数据内容与第一预设识别信息的数据内容相同。然而,在另一范例实施例中,识别信息H1与第一预设识别信息一致,也可以是指经过逻辑运算(例如,解码或解密)的识别信息H1的数据内容与第一预设识别信息的数据内容相同,视实务上的需求而定。在接收到第一写入指令序列之后,存储器管理电路502会将数据D1存储至可复写式非易失性存储器模块406。例如,存储器管理电路502会将数据D1写入至逻辑单元610(3)所映射的实体单元810(3)。此外,对应于第一写入指令序列,数据D1也会被暂存在快取存储器710中用以暂存属于逻辑单元610(3)的数据的快取区710(2)。
请参照图8E,在发送上述第一写入指令序列之后,主机系统11(或应用程序714)会发送另一个写入指令序列(也称为第二写入指令序列)至存储器存储装置10。此第二写入指令序列指示将数据D2(也称为第二预设数据)存储至对应于第一虚设文件的逻辑单元610(3)。特别是,数据D2不包含上述识别信息H1。例如,数据D2可以包含与识别信息H1不同的识别信息H2(也称为第二识别信息)。识别信息H2与上述第一预设识别信息不一致。例如,识别信息H2的数据内容与第一预设识别信息的数据内容不相同。或者,经过逻辑运算(例如,解码或解密)的识别信息H2的数据内容与第一预设识别信息的数据内容不相同。值得一提的是,在接收到第二写入指令序列之后,存储器管理电路502不会将数据D2存储至可复写式非易失性存储器模块406。例如,存储器管理电路502会忽略数据D2或者直接舍弃数据D2。此外,对应于第二写入指令序列,数据D2会取代数据D1而被暂存在快取区710(2)。
在将第一虚设文件的数据从数据D1更新为数据D2之后,主机系统11(或应用程序714)可以在任意时间点执行对应于第一虚设文件的读取操作(也称为第一读取操作)。根据第一读取操作所获得的数据(也称为第一读取数据)中的识别信息是否与上述第一预设识别信息一致,主机系统11(或应用程序714)可以决定要继续更新快取存储器710中的数据或者直接执行响应读取操作。
请参照图8F,假设在发送上述第二写入指令序列之后主机系统11(或应用程序714)随即执行对应于第一虚设文件的第一读取操作,则主机系统11(或应用程序714)可能会直接从快取区710(2)中读取到属于逻辑单元610(3)的数据D2。此时,主机系统11(或应用程序714)会判断数据D2中的识别信息H2与上述第一预设识别信息不一致并且据以接续执行对应于另一个虚设文件的写入操作(也称为第二写入操作)。
请参照图8G,反应于上述第一读取操作所获得的第一读取数据中的识别信息与上述第一预设识别信息不一致,主机系统11(或应用程序714)会执行对应于第二虚设文件的第二写入操作,以持续更新快取存储器中710的其他数据(也称为第二数据)。例如,在第二写入操作中,主机系统11会发送一写入指令序列以指示将数据D3写入至对应于第二虚设文件的逻辑单元610(4)。同时,数据D3也会被暂存在快取存储器710中配置以存储属于逻辑单元610(4)的数据的快取区710(3)。
值得一提的是,由于第一虚设文件与第二虚设文件所配置的逻辑单元并不相同,故对应于第一虚设文件的第一写入操作与对应于第二虚设文件的第二写入操作会更新快取存储器710中不同的快取区。主机系统11(或应用程序714)可以持续地执行对应于不同的虚设文件的写入操作来更新快取存储器710中属于不同逻辑单元的数据。此外,主机系统11(或应用程序714)可以在任意的时间点执行如图8F的范例实施例中对应于第一虚设文件的第一读取操作以及判断第一读取数据中的识别信息是否与第一预设识别信息一致的操作来决定对于快取存储器710的更新是否已足够。换言之,在本范例实施例中,是假设快取存储器710中数据的更新是符合先进先出(First In First Out,FIFO)规则。若第一读取操作所获得的数据是数据D1,表示在第一写入操作之前所存入快取存储器710的“旧的”数据应该都已被清除,故此时执行响应读取操作应该是可以读取到真正来自于智能卡408的“新的”响应。若第一读取操作所获得的数据是数据D2,表示在第一写入操作之前所存入快取存储器710的旧数据应该尚未被清除完毕,故执行响应读取操作仍然有机会读取到“旧的”响应。
请参照图8H,假设在执行对于一或多个虚设文件的写入操作之后,快取区710(0)~710(2)中的数据被属于其他逻辑单元的数据覆盖。尔后,若主机系统11(或应用程序714)执行如图8F的范例实施例中对应于第一虚设文件的第一读取操作,则由于快取存储器710中已经不存在属于逻辑单元610(3)的数据,故主机系统11会真正地发送一个读取指令序列(也称为第一读取指令序列)至存储器存储装置10。第一读取指令序列用以指示读取存储于逻辑单元610(3)的数据。根据第一读取指令序列,存储器存储装置10会将实体单元810(3)中的数据D1传送给主机系统11。在判定数据D1中的识别信息H1与上述第一预设识别信息一致之后,主机系统11(或应用程序714)会开始读取智能卡408对应于上述第一操作指令的响应。
请参照图8I,在判定所获得的数据D1中的识别信息H1与上述第一预设识别信息一致之后,主机系统11(或应用程序714)会执行对应于某一个暂时文件的响应读取操作。例如,主机系统11(或应用程序714)可执行对应于第二暂时文件的响应读取操作。在此响应读取操作中,由于快取存储器710中已不存在属于逻辑单元610(1)的数据(即,“旧的”响应),故主机系统11会真正地发送一个响应读取指令序列至存储器存储装置10。此响应读取指令序列指示读取属于逻辑单元610(1)的数据。在接收到此响应读取指令序列之后,存储器存储装置10会将智能卡408对应于上述第一操作指令所产生的响应传送给主机系统11。换言之,此时,主机系统11(或应用程序714)即可获得智能卡408的“新的”响应。
值得一提的是,在第一范例实施例中,主机系统11(或应用程序714)是将属于同一个虚设文件(或逻辑单元)的不同数据分别存储在快取存储器710与存储器存储装置10中。藉此,根据读取此虚设文件(或逻辑单元)所获得的数据是来自快取存储器710或存储器存储装置10,主机系统11(或应用程序714)可得知快取存储器710的更新状态并且据以决定是否可以执行响应读取操作。然而,在另一范例实施例中,主机系统11(或应用程序714)并不是通过上述机制来决定执行响应读取操作的时间点。例如,主机系统11(或应用程序714)也可以通过在上述操作指令序列中加入另一识别信息(也称为第三识别信息)来作为判断当前接收到的响应是“新的”响应或“旧的”响应的依据。
第二范例实施例
图9A至图9C是根据本发明的第二范例实施例所示的更新快取与读取响应的示意图。在本范例实施例中,同样是参考图8A中文件与逻辑单元的对应关系来进行说明。
请参照图9A,假设快取区710(0)存储有属于逻辑单元610(1)的“旧的”响应的数据。特别是,在本范例实施例中,此“旧的”响应会包含一个“旧的”识别信息token 0。此“旧的”识别信息token 0是用于一个“旧的”C-APDU中。
请参照图9B,在发送对应于第一暂时文件的第一操作指令序列之前,主机系统11(或应用程序714)会将一个“新的”识别信息token 1加入至第一操作指令序列中。识别信息token 1例如是被加入至第一操作指令序列的指令标头中。“新的”识别信息token 1与“旧的”识别信息token 0不同。此外,此“新的”识别信息token 1会与一个预设识别信息(也称为第二预设识别信息)一致。尔后,主机系统11会发送此包含识别信息token 1的第一操作指令序列至存储器存储装置10。第一操作指令序列用以指示智能卡408执行第一操作。例如,第一操作指令序列可包含C-APDU并且用以指示将第一操作指令序列中的数据写入至逻辑单元610(0)。此外,假设快取区710(1)是配置以暂存属于逻辑单元610(0)的数据,则第一操作指令序列中包含识别信息token 1的数据也会被暂存于快取区710(1)。
在本范例实施例中,当存储器存储装置10接收到第一操作指令序列时,存储器管理电路502会记录下第一操作指令序列中的识别信息token 1并且根据此第一操作指令序列指示智能卡408执行对应的操作。在接收到智能卡408对应于第一操作指令序列所产生的响应之后,存储器管理电路502会将对应于第一操作指令序列的识别信息token 1加入至此响应中并且等待主机系统11读取此响应。
另一方面,在发送第一操作指令序列之后,主机系统11(或应用程序714)可以在任意时间点执行响应读取操作以读取智能卡408对应于第一操作指令序列的响应。然而,若快取存储器710中仍然存储有“旧的”响应,则此响应读取操作可能会读取到此“旧的”响应,造成响应读取错误。例如,以图9B为例,由于快取区710(0)仍然存储有属于逻辑单元610(1)的“旧的”响应,故主机系统11(或应用程序714)可能会通过读取对应于第二暂时文件的逻辑单元610(1)而读取到快取区710(0)中的“旧的”响应。因此,类似于上述第一范例实施例中,在执行响应读取操作之前,主机系统11(或应用程序714)可以执行对应于一或多个虚设文件的写入操作,以更新快取存储器710中的数据。关于如何执行对应于虚设文件(例如,第一虚设文件和/或第二虚设文件)的写入操作以更新快取存储器710中的数据已于第一范例实施例中说明,故在此便不赘述。
在接收到响应读取操作所获得的响应数据之后,主机系统11(或应用程序714)会判断此响应数据中的识别信息是否与上述第二预设识别信息一致。若此响应数据中的识别信息与上述第二预设识别信息一致,表示此响应是智能卡408对应于上述第一操作指令序列所产生的“新的”响应。若此响应数据中的识别信息与上述第二预设识别信息不一致,则表示此响应是快取存储器710中的“旧的”响应。例如,在图9B的范例实施例中,由于快取区710(0)仍然存储有属于逻辑单元610(1)的“旧的”响应,故主机系统11(或应用程序714)可能会通过读取逻辑单元610(1)而读取到快取区710(0)中包含识别信息token 0的“旧的”响应。此时,由于识别信息token 0与上述第二预设识别信息(即,token 1)不一致,故主机系统11(或应用程序714)会决定继续执行对应于其他的虚设文件的写入操作以持续更新快取存储器710中的数据。换言之,更新快取存储器710中的数据的目标是为了清除快取存储器710中可能会造成往后读取错误的数据(例如,快取区710(0)中的“旧的”响应)。
请参照图9C,假设执行了对应于多个虚设文件的写入操作之后,快取区710(0)中的“旧的”响应的数据已被属于其他逻辑单元的数据覆盖。尔后,若主机系统11(或应用程序714)执行对应于第二暂时文件的响应读取操作(即,读取属于逻辑单元610(1)的数据),则由于快取存储器710中已经不存在属于逻辑单元610(1)的数据,故主机系统11会发送一个响应读取指令序列至存储器存储装置10。根据此响应读取指令序列,存储器管理电路502会将包含识别信息token 1的响应传送给主机系统11。由于识别信息token 1与上述第二预设识别信息一致,故主机系统11(或应用程序714)会判定此包含识别信息token 1的响应为智能卡408对应于上述第一操作指令序列所产生的“新的”响应。
值得一提的是,本发明并不限制上述第一与第二范例实施例中执行对应于某一个虚设文件的写入操作的时间点。例如,在另一范例实施例中,对应于一或多个虚设文件的写入操作也可以是在发送对应于第一暂时文件的第一操作指令序列之前执行。例如,对应于一或多个虚设文件的写入操作可以是反应于主机系统11(或应用程序714)即将发送上述第一操作指令序列而执行。或者,在另一范例实施例中,对应于一或多个虚设文件的写入操作也可以是在某一笔来自智能卡408的响应被主机系统11(或应用程序714)读取之后执行。例如,反应于某一笔来自智能卡408的响应被主机系统11(或应用程序714)读取,对应于一或多个虚设文件的写入操作就会自动被执行。此外,在其他的范例实施例中,对应于某一个虚设文件的写入操作也可以是在需要更新快取存储器710中与智能卡408有关的数据或任意数据时执行,而不限于上述。或者,在一范例实施例中,对应于某一个虚设文件的写入操作也可以是在主机系统11或存储器存储装置10刚开机、关机前或闲置超过一段预设时间时执行等等。
在一范例实施例中,主机系统11(或应用程序714)还可以将额外的识别信息加入至指示将某一数据存储至对应于某一个虚设文件的逻辑单元的写入指令序列中。其中此额外的识别信息是用以作为是否存储此写入指令序列中的数据的依据。例如,此额外的识别信息可被加入至一个写入指令序列的指令标头中。当存储器管理电路502接收到包含与一个预设识别信息(也称为第三预设识别信息)一致的额外的识别信息(也称为第四识别信息)的写入指令序列时,存储器管理电路502会将此写入指令序列所指示需存储的数据存储至可复写式非易失性存储器模块406中。反之,当存储器管理电路502接收到指示将某一数据存储至对应于某一个虚设文件的逻辑单元的写入指令序列且此写入指令序列不包含与上述第三预设识别信息一致的额外的识别信息(例如,此写入指令序列包含与上述第三预设识别信息不一致的第五识别信息)时,存储器管理电路502不会将其中的数据存储至可复写式非易失性存储器模块406。例如,在图8D的范例实施例中,与第三预设识别信息一致的第四识别信息可以被加入至第一写入指令序列中,并且存储器管理电路502可根据第一写入指令序列中的识别信息(即,第四识别信息)与第三预设识别信息一致而将数据D1存储至可复写式非易失性存储器模块406中。又例如,在图8E的范例实施例中,与第三预设识别信息不一致的第五识别信息可以被加入至第二写入指令序列中,并且存储器管理电路502可根据第二写入指令序列中的识别信息(即,第五识别信息)与第三预设识别信息不一致而不将数据D2存储至可复写式非易失性存储器模块406中。此外,在图8D与图8E的另一范例实施例中,第四识别信息也可以是以包含于欲存储的数据中的第一识别信息来取代,并且第三预设识别信息也可以是以第一预设识别信息来取代。例如,在图8D的一范例实施例中,在接收到第一写入指令序列之后,存储器管理电路502可以根据数据D1中的识别信息H1与第一预设识别信息一致而决定将数据D1存储至可复写式非易失性存储器模块406中。例如,在图8E的一范例实施例中,在接收到第二写入指令序列之后,存储器管理电路502可以根据数据D2中的识别信息H2与第一预设识别信息不一致而决定不将数据D2存储至可复写式非易失性存储器模块406中。
在另一范例实施例中,主机系统11(或应用程序714)可以根据某一个虚设文件是否存在来决定对应于此虚设文件的写入操作是否要“真正的”将数据存储至可复写式非易失性存储器模块406中。在此提及的存在是指存在于主机系统11的文件系统中。此外,若某一个虚设文件已存在,则可复写式非易失性存储器模块406中通常已配置有映射至对应于此虚设文件的逻辑单元的至少一个实体单元。例如,在对应于某一个虚设文件的写入操作中,主机系统11(或应用程序714)可以判断此虚设文件是否已存在。若此虚设文件不存在,则主机系统11(或应用程序714)会建立此虚设文件(例如,建立于主机系统11的文件系统中)并且将与第三预设识别信息一致的第四识别信息加入至欲发送的写入指令序列(也称为第三写入指令序列)中。此第三写入指令序列指示将某一数据(也称为第三预设数据)写入至对应于此虚设文件的逻辑单元。当存储器管理电路502接收到此第三写入指令序列时,反应于此第三写入指令序列中的第四识别信息与第三预设识别信息一致,存储器管理电路502会从可复写式非易失性存储器模块406中选择一个实体单元并且将第三预设数据存储至此实体单元。反之,若此虚设文件已存在,则主机系统11(或应用程序714)会发送一个不包含与第三预设识别信息一致的识别信息的写入指令序列(也称为第四写入指令序列)至存储器存储装置10。例如,此第四写入指令序列包含上述第五识别信息。当存储器管理电路502接收到此第四写入指令序列时,反应于此第四写入指令序列中的第五识别信息与第三预设识别信息不一致,故存储器管理电路502不会将第四写入指令序列所指示需存储的数据(也称为第四预设数据)存储至可复写式非易失性存储器模块406中。在此提及的第三写入指令序列或第四写入指令序列可以应用于第一范例实施例与第二范例实施例中对应于任意虚设文件的写入操作。此外,在另一范例实施例中,对应于虚设文件不存在而加入的第四识别信息也可以是以包含于欲存储的数据中的第一识别信息来取代,第三预设识别信息也可以是以第一预设识别信息来取代。藉此,存储器管理电路502可以根据欲存储的数据中的识别信息来决定是否存储对应数据。关于存储器管理电路502如何根据欲存储的数据中识别信息来决定是否存储对应数据已于前述说明,在此便不赘述。
在一范例实施例中,主机系统11(或应用程序714)还可以根据所使用的虚设文件的数目与每一个虚设文件大小来估测快取存储器710的大小。例如,对应于N个虚设文件的写入操作被执行,则主机系统11(或应用程序714)可估测此快取存储器710的大小是小于或等于N个虚设文件的大小。藉此,在执行响应读取操作之前,N个虚设文件可以被同步或连续地写入数据,以加快更新快取存储器710的速度。或者,在另一范例实施例中,在获得快取存储器710的大小之后,后续使用的虚设文件的大小也可以被决定或被改变。例如,若快取存储器710的大小是小于或等于N个虚设文件的大小,则主机系统11(或应用程序714)也可以直接选择大小接近N个虚设文件的大小的某一个虚设文件来进行写入操作,减少需要执行的写入操作的数目。此外,若主机系统11(或应用程序714)判断所使用的虚设文件的大小可能太大,则虚设文件的大小也可以被适当地减少,以节省存储器空间。
图10是根据本发明的一范例实施例所示的响应读取方法的流程图。
请参照图10,在步骤S1001中,由系统发送对应于第一暂时文件的第一操作指令至存储器存储装置,其中第一操作指令用以指示智能卡执行第一操作。在步骤S1002中,由系统执行对应于第一虚设文件的第一写入操作,其中第一写入操作用以更新快取存储器中的第一数据。在步骤S1003中,由系统执行对应于第二暂时文件的响应读取操作,其中响应读取操作用以读取智能卡对应于第一操作指令的响应。
然而,图10中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图10中各步骤可以实作为多个程序码或是电路,本发明并不在此限。此外,图10的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,通过对使用不同逻辑单元的虚设文件执行写入操作,本发明可有效排除掉主机系统的快取存储器中的旧数据。藉此,可增加主机系统从智能卡读取到“正确的”响应信息的机率。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (20)

1.一种响应读取方法,其特征在于,用于系统与存储器存储装置之间的数据传输,其中所述系统具有快取存储器,所述存储器存储装置具有智能卡与可复写式非易失性存储器模块,所述响应读取方法包括:
由所述系统发送对应于第一暂时文件的第一操作指令序列至所述存储器存储装置,其中所述第一操作指令序列用以指示将所述第一操作指令序列中对应于所述第一暂时文件的数据写入至一逻辑单元且用以指示所述智能卡执行第一操作;
由所述系统执行对应于第一虚设文件的第一写入操作,其中所述第一写入操作用以更新所述快取存储器中的第一数据;以及
由所述系统执行对应于第二暂时文件的响应读取操作,其中所述响应读取操作用以读取所述智能卡对应于所述第一操作指令序列的响应。
2.根据权利要求1所述的响应读取方法,其特征在于,在所述系统执行对应于所述第二暂时文件的所述响应读取操作的步骤之前,所述响应读取方法还包括:
由所述系统执行对应于所述第一虚设文件的第一读取操作;
由所述系统判断所述第一读取操作所获得的第一读取数据中的识别信息是否与一第一预设识别信息一致;以及
若所述第一读取数据中的所述识别信息与所述第一预设识别信息不一致,由所述系统执行对应于第二虚设文件的第二写入操作,其中所述第二写入操作用以更新所述快取存储器中的第二数据,其中所述第一虚设文件与所述第二虚设文件不同。
3.根据权利要求2所述的响应读取方法,其特征在于,由所述系统执行对应于所述第一虚设文件的所述第一写入操作的步骤包括:
由所述系统发送第一写入指令序列至所述存储器存储装置,其中所述第一写入指令序列指示将第一预设数据写入至对应于所述第一虚设文件的第一逻辑单元,其中所述第一预设数据包含与所述第一预设识别信息一致的第一识别信息;以及
由所述系统发送第二写入指令序列至所述存储器存储装置,其中所述第二写入指令序列指示将第二预设数据写入至所述第一逻辑单元,其中所述第二预设数据包含与所述第一预设识别信息不一致的第二识别信息,其中所述第二预设数据是用以取代暂存于所述快取存储器中的所述第一预设数据。
4.根据权利要求3所述的响应读取方法,其特征在于,由所述系统执行对应于所述第一虚设文件的所述第一读取操作的步骤包括:
由所述系统发送第一读取指令序列至所述存储器存储装置,其中所述第一读取指令序列用以读取存储于所述第一逻辑单元的所述第一预设数据。
5.根据权利要求3所述的响应读取方法,其特征在于,还包括:
由所述存储器存储装置接收所述第一写入指令序列并且将所述第一预设数据存储至所述可复写式非易失性存储器模块中;以及
由所述存储器存储装置接收所述第二写入指令序列并且不将所述第二预设数据存储至所述可复写式非易失性存储器模块中。
6.根据权利要求2所述的响应读取方法,其特征在于,由所述系统执行对应于所述第二暂时文件的所述响应读取操作的步骤是在所述系统判定所述第一读取数据中的所述识别信息与所述第一预设识别信息一致之后执行。
7.根据权利要求1所述的响应读取方法,其特征在于,由所述系统执行对应于所述第二暂时文件的所述响应读取操作的步骤包括:
由所述系统判断所述响应读取操作所获得的响应数据中的识别信息是否与第二预设识别信息一致,
其中由所述系统执行对应于所述第一虚设文件的所述第一写入操作的步骤是在所述系统判断所述响应数据中的所述识别信息与所述第二预设识别信息不一致之后执行。
8.根据权利要求7所述的响应读取方法,其特征在于,所述第一操作指令序列包括与所述第二预设识别信息一致的第三识别信息,所述响应读取方法还包括:
由所述存储器存储装置接收所述第一操作指令序列并且记录所述第一操作指令序列中的所述第三识别信息;以及
由所述存储器存储装置将所述第三识别信息加入至所述智能卡对应于所述第一操作指令序列的所述响应中。
9.根据权利要求1所述的响应读取方法,其特征在于,由所述系统执行对应于所述第一虚设文件的所述第一写入操作的步骤包括:
由所述系统判断所述第一虚设文件是否已存在;
若所述第一虚设文件不存在,由所述系统建立所述第一虚设文件并且发送第三写入指令序列至所述存储器存储装置,其中所述第三写入指令序列指示将第三预设数据写入至对应于所述第一虚设文件的第一逻辑单元,其中所述第三写入指令序列包含与第三预设识别信息一致的第四识别信息;以及
若所述第一虚设文件已存在,由所述系统发送第四写入指令序列至所述存储器存储装置,其中所述第四写入指令序列指示将第四预设数据写入至所述第一逻辑单元,其中所述第四写入指令序列包含与所述第三预设识别信息不一致的第五识别信息。
10.根据权利要求9所述的响应读取方法,其特征在于,还包括:
由所述存储器存储装置接收所述第三写入指令序列并且将所述第三预设数据存储至所述可复写式非易失性存储器模块中;以及
由所述存储器存储装置接收所述第四写入指令序列并且不将所述第四预设数据存储至所述可复写式非易失性存储器模块中。
11.一种数据传输系统,其特征在于,包括:
系统与存储器存储装置,
其中所述系统包括快取存储器,
其中所述存储器存储装置包括连接接口单元、存储器控制电路单元、一可复写式非易失性存储器模块及智能卡,所述连接接口单元用以电性连接至所述系统,所述存储器控制电路单元电性连接至所述连接接口单元,所述可复写式非易失性存储器模块与所述智能卡分别电性连接至所述存储器控制电路单元,
其中所述系统用以发送对应于第一暂时文件的第一操作指令序列至所述存储器存储装置,其中所述第一操作指令序列用以指示将所述第一操作指令序列中对应于所述第一暂时文件的数据写入至一逻辑单元且用以指示所述智能卡执行第一操作,
其中所述系统还用以执行对应于第一虚设文件的第一写入操作,其中所述第一写入操作用以更新所述快取存储器中的第一数据,
其中所述系统还用以执行对应于第二暂时文件的响应读取操作,其中所述响应读取操作用以读取所述智能卡对应于所述第一操作指令序列的响应。
12.根据权利要求11所述的数据传输系统,其特征在于,在所述系统执行对应于所述第二暂时文件的所述响应读取操作之前,所述系统还用以执行对应于所述第一虚设文件的第一读取操作,
其中所述系统还用以判断所述第一读取操作所获得的第一读取数据中的识别信息是否与第一预设识别信息一致,
其中若所述第一读取数据中的所述识别信息与所述第一预设识别信息不一致,所述系统还用以执行对应于第二虚设文件的一第二写入操作,其中所述第二写入操作用以更新所述快取存储器中的第二数据,其中所述第一虚设文件与所述第二虚设文件不同。
13.根据权利要求12所述的数据传输系统,其特征在于,所述系统执行对应于所述第一虚设文件的所述第一写入操作包括:
发送第一写入指令序列至所述存储器存储装置,其中所述第一写入指令序列指示将第一预设数据写入至对应于所述第一虚设文件的第一逻辑单元,其中所述第一预设数据包含与所述第一预设识别信息一致的第一识别信息;以及
发送第二写入指令序列至所述存储器存储装置,其中所述第二写入指令序列指示将第二预设数据写入至所述第一逻辑单元,其中所述第二预设数据包含与所述第一预设识别信息不一致的第二识别信息,其中所述第二预设数据是用以取代暂存于所述快取存储器中的所述第一预设数据。
14.根据权利要求13所述的数据传输系统,其特征在于,所述系统执行对应于所述第一虚设文件的所述第一读取操作包括:
发送第一读取指令序列至所述存储器存储装置,其中所述第一读取指令序列用以读取存储于所述第一逻辑单元的所述第一预设数据。
15.根据权利要求13所述的数据传输系统,其特征在于,所述存储器控制电路单元用以接收所述第一写入指令序列并且将所述第一预设数据存储至所述可复写式非易失性存储器模块中,
其中所述存储器控制电路单元还用以接收所述第二写入指令序列并且不将所述第二预设数据存储至所述可复写式非易失性存储器模块中。
16.根据权利要求12所述的数据传输系统,其特征在于,所述系统是在判定所述第一读取数据中的所述识别信息与所述第一预设识别信息一致之后执行对应于所述第二暂时文件的所述响应读取操作。
17.根据权利要求11所述的数据传输系统,其特征在于,所述系统执行对应于所述第二暂时文件的所述响应读取操作包括:
判断所述响应读取操作所获得的响应数据中的识别信息是否与第二预设识别信息一致,
其中所述系统是在判断所述响应数据中的所述识别信息与所述第二预设识别信息不一致之后执行对应于所述第一虚设文件的所述第一写入操作。
18.根据权利要求17所述的数据传输系统,其特征在于,所述第一操作指令序列包括与所述第二预设识别信息一致的第三识别信息,
其中所述存储器控制电路单元用以接收所述第一操作指令序列并且记录所述第一操作指令序列中的所述第三识别信息,
其中所述存储器控制电路单元还用以将所述第三识别信息加入至所述智能卡对应于所述第一操作指令序列的所述响应中。
19.根据权利要求11所述的数据传输系统,其特征在于,所述系统执行对应于所述第一虚设文件的所述第一写入操作包括:
判断所述第一虚设文件是否已存在;
若所述第一虚设文件不存在,建立所述第一虚设文件并且发送第三写入指令序列至所述存储器存储装置,其中所述第三写入指令序列指示将第三预设数据写入至对应于所述第一虚设文件的第一逻辑单元,其中所述第三写入指令序列包含与第三预设识别信息一致的第四识别信息;以及
若所述第一虚设文件已存在,发送第四写入指令序列至所述存储器存储装置,其中所述第四写入指令序列指示将第四预设数据写入至所述第一逻辑单元,其中所述第四写入指令序列包含与所述第三预设识别信息不一致的第五识别信息。
20.根据权利要求19所述的数据传输系统,其特征在于,所述存储器控制电路单元还用以接收所述第三写入指令序列并且将所述第三预设数据存储至所述可复写式非易失性存储器模块中,
其中所述存储器控制电路单元还用以接收所述第四写入指令序列并且不将所述第四预设数据存储至所述可复写式非易失性存储器模块中。
CN201510115732.XA 2015-03-17 2015-03-17 响应读取方法及数据传输系统 Active CN106033321B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510115732.XA CN106033321B (zh) 2015-03-17 2015-03-17 响应读取方法及数据传输系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510115732.XA CN106033321B (zh) 2015-03-17 2015-03-17 响应读取方法及数据传输系统

Publications (2)

Publication Number Publication Date
CN106033321A CN106033321A (zh) 2016-10-19
CN106033321B true CN106033321B (zh) 2019-04-02

Family

ID=57150823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510115732.XA Active CN106033321B (zh) 2015-03-17 2015-03-17 响应读取方法及数据传输系统

Country Status (1)

Country Link
CN (1) CN106033321B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022144449A (ja) * 2021-03-19 2022-10-03 キオクシア株式会社 メモリシステム、メモリシステムの制御方法及びホストデバイス

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101650972A (zh) * 2009-06-12 2010-02-17 东信和平智能卡股份有限公司 智能卡的非易失性存储器数据更新方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8457067B2 (en) * 2008-09-15 2013-06-04 Qualcomm Incorporated Cache with variable lifetime for storing overhead messages for femto deployments

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101650972A (zh) * 2009-06-12 2010-02-17 东信和平智能卡股份有限公司 智能卡的非易失性存储器数据更新方法

Also Published As

Publication number Publication date
CN106033321A (zh) 2016-10-19

Similar Documents

Publication Publication Date Title
US9043549B2 (en) Memory storage apparatus, memory controller, and method for transmitting and identifying data stream
US8769243B2 (en) Apparatus with smart card chip for storing communication file in non-volatile memory
TWI423026B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9235534B2 (en) Data protecting method, memory controller and memory storage apparatus
TW201337554A (zh) 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置
US8812756B2 (en) Method of dispatching and transmitting data streams, memory controller and storage apparatus
TWI486766B (zh) 資料處理方法、記憶體控制器與記憶體儲存裝置
TWI472927B (zh) 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置
CN102890655B (zh) 存储器储存装置、其存储器控制器与有效数据识别方法
CN106681932A (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
CN113885808B (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
TWI521345B (zh) 回應讀取方法及資料傳輸系統
US8595420B2 (en) Method for dispatching and transmitting data streams between host system and memory storage apparatus having non-volatile memory and smart card chip, memory controller, and memory storage apparatus
CN107045890A (zh) 数据保护方法、存储器控制电路单元及存储器存储装置
CN105183660B (zh) 数据读取方法、存储器控制器与储存装置
US9817573B2 (en) Smart card management method, memory storage device and memory control circuit unit
CN106033321B (zh) 响应读取方法及数据传输系统
CN104573537A (zh) 数据处理方法、存储器存储装置与存储器控制电路单元
CN106155564B (zh) 存储装置管理方法与系统及其存储器存储装置
CN105809067B (zh) 数据存取方法与系统及存储器存储装置
CN110162493A (zh) 存储器管理方法及使用所述方法的储存控制器
CN109308930A (zh) 数据写入方法、存储器控制电路单元及存储器存储装置
US10324894B2 (en) Storage device management method and system, and memory storage device thereof
CN105988935B (zh) 智能卡管理方法、存储器存储装置及存储器控制电路单元
CN106201325B (zh) 数据存取方法、存储器控制电路单元与存储器存储装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant