数据存储系统以及其管理方法转让专利

申请号 : CN201410719826.3

文献号 : CN104636081B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钟凌燕惠志强赖瑾

申请人 : 上海兆芯集成电路有限公司

摘要 :

本发明公开一种数据存储系统以及其管理方法。该管理方法适用于一数据存储装置,其中该数据存储装置经由一总线耦接至一主机装置,该主机装置经由该总线对该数据存储装置的一快闪存储器的数据进行存取,该管理方法包括:经由该总线对该主机装置发送一装置总线主控(Device Bus Master,DBM)请求讯息以请求该总线上数据传输的一控制权;响应于该装置总线主控请求讯息,检测该总线以判断是否从该主机装置接收一第一装置总线主控允许讯息;以及如果收到该第一装置总线主控允许讯息,则对该主机装置的一第一暂存存储器进行存取,以存取属于该数据存储装置的一第二暂存存储器的数据。

权利要求 :

1.一种管理方法,适用于一数据存储装置,其中该数据存储装置经由一总线耦接至一主机装置,该主机装置经由该总线对该数据存储装置的一快闪存储器的数据进行存取,该管理方法包括:经由该总线对该主机装置发送一装置总线主控(Device Bus Master,DBM)请求讯息以请求该总线上数据传输的一控制权;

响应于该装置总线主控请求讯息,检测该总线以判断是否从该主机装置接收一第一装置总线主控允许讯息;以及如果收到该第一装置总线主控允许讯息,则对该主机装置的一第一暂存存储器进行存取,以存取属于该数据存储装置的一第二暂存存储器的数据,其中在该主机装置和该数据存储装置两者间连线的任何阶段均能够即时发出所述装置总线主控请求讯息。

2.如权利要求1所述的管理方法,其中,经由该总线对该主机装置发送该装置总线主控请求讯息的步骤包括:通过该总线的一数据闪动(strobe)信号线声明一数据闪动信号以发出该装置总线主控请求讯息。

3.如权利要求1所述的管理方法,其中,当该主机装置对该数据存储装置进行读取或写入操作时,该主机装置在一空闲期间检测到该装置总线主控请求讯息。

4.如权利要求3所述的管理方法,其中,该空闲期间包括该主机装置完成接收该数据存储装置发出的一正常回应指令之后直至传输一正常数据讯息之前的期间;该空闲期间还包括两笔正常数据讯息之间一区块空闲期间(block gap)。

5.如权利要求1所述的管理方法,还包括:

在收到该第一装置总线主控允许讯息后,停止发送该装置总线主控请求讯息至该主机装置。

6.如权利要求1所述的管理方法,其中,对该主机装置的该第一暂存存储器进行的该存取步骤包括:传送一装置总线主控回应讯息至该主机装置;以及

该装置总线主控回应讯息包括用于存取该主机装置的该第一暂存存储器的相关信息。

7.如权利要求1所述的管理方法,还包括:

如果该数据存储装置在收到该第一装置总线主控允许讯息之后需要撤回对该控制权的请求,则传送一装置总线主控回应讯息至该主机装置,其中该装置总线主控回应讯息中的相关信息均为0。

8.如权利要求1所述的管理方法,还包括:

如果该数据存储装置在收到该第一装置总线主控允许讯息之前需要撤回对该控制权的请求,则在收到该第一装置总线主控允许讯息之前停止发送该装置总线主控请求讯息。

9.如权利要求1所述的管理方法,其中该主机装置对该数据存储装置之该快闪存储器之数据进行存取时通过上述属于该数据存储装置的该第二暂存存储器的数据而得到正确的物理地址。

10.一种数据存储系统,包括:

一数据存储装置,包括一快闪存储器;以及

一主机装置,经由一总线耦接至该数据存储装置,并经由该总线对该数据存储装置的该快闪存储器的数据进行存取,其中该数据存储装置还包括:

一存储装置控制器;以及一存储装置收发器,耦接该存储装置控制器,经由该总线对该主机装置发送一装置总线主控(Device Bus Master,DBM)请求讯息以请求该总线上数据传输的一控制权,其中该主机装置还包括:

一主机控制器,检测到该装置总线主控请求讯息后,经由该总线发出一第一装置总线主控允许讯息;

其中该存储装置控制器检测该总线以判断是否从该主机装置接收该第一装置总线主控允许讯息,如果该存储装置控制器收到该第一装置总线主控允许讯息,对该主机装置的一第一暂存存储器进行存取,以存取属于该数据存储装置的一第二暂存存储器的数据,其中在该主机装置和该数据存储装置两者间连线的任何阶段均能够即时发出所述装置总线主控请求讯息。

11.如权利要求10所述的数据存储系统,其中该存储装置控制器通过该总线的一数据闪动(strobe)信号线声明一数据闪动(strobe)信号以发出该装置总线主控请求讯息。

12.如权利要求10所述的数据存储系统,其中,当该主机装置对该数据存储装置进行读取或写入操作时,该主机控制器在一空闲期间检测到该装置总线主控请求讯息。

13.如权利要求12所述的数据存储系统,其中,该空闲期间包括该主机装置完成接收该数据存储装置发出的一正常回应指令之后直至传输一正常数据讯息之前的期间;该空闲期间还包括两笔正常数据讯息之间一区块空闲期间(block gap)。

14.如权利要求10所述的数据存储系统,其中,在收到该第一装置总线主控允许讯息后,该存储装置控制器停止发送该装置总线主控请求讯息至该主机装置。

15.如权利要求10所述的数据存储系统,其中:

该存储装置收发器传送一装置总线主控回应讯息至该主机装置;以及该装置总线主控回应讯息包括用于存取该主机装置的该第一暂存存储器的相关信息。

16.如权利要求10所述的数据存储系统,其中,上述属于该数据存储装置的该第二暂存存储器的数据包括该数据存储装置的该快闪存储器的管理表及数据。

说明书 :

数据存储系统以及其管理方法

[0001] 本申请是申请日为2013年11月12日、申请号为201310560162.6、发明名称为“数据存储系统以及其管理方法”的发明专利申请的分案申请。

技术领域

[0002] 本发明涉及一种快闪存储器,特别涉及一种适用于快闪存储器的管理方法以及其数据存储系统。

背景技术

[0003] 快闪存储器是一种电子抹除式可编程只读存储器,允许在操作中被多次抹除或写入,应用于存储卡或随身碟等装置。快闪存储器通常会包含多种管理表,暂存于快闪存储器的一随机存取存储器(Random Access Memory,下称RAM)中,便于在对该快闪存储器进行存取操作的过程中,对这些管理表进行查找及实时更新。这些管理表包括逻辑对应物理地址表(logical-to-physical address mapping table),其用于记录以及管理数据存放的逻辑位置和物理地址对应关系;坏块表(bad block table),其用于记录该快闪存储器中已经损坏的区块;等等。除了多种管理表之外,快闪存储器的RAM还暂存对该快闪存储器进行存取时的数据。
[0004] 由于快闪存储器的RAM的空间有限,其缓存的管理表以及数据大小也受到限制。随着快闪存储器的存储空间越来越大,需要缓存的管理表以及数据的数据量也越来越大。单纯采用更大存储容量RAM的方式会导致产品成本和体积大大增加。因此需要一种存储器管理方法,用于在不增加产品成本及体积的前提下,增加用于缓存的管理表及数据的存储器空间,并在所有传输状况下都可以控制以及管理缓存的管理表以及暂存的数据。

发明内容

[0005] 基于上述目的,本发明实施例公开了一种管理方法,适用于一数据存储装置,其中该数据存储装置经由一总线耦接至一主机装置,该主机装置经由该总线对该数据存储装置的一快闪存储器的数据进行存取,该管理方法包括:
[0006] 经由该总线对该主机装置发送一装置总线主控(Device Bus Master,DBM)请求讯息以请求该总线上数据传输的一控制权;响应于该装置总线主控请求讯息,检测该总线以判断是否从该主机装置接收一第一装置总线主控允许讯息;以及如果收到该第一装置总线主控允许讯息,则对该主机装置的一第一暂存存储器进行存取,以存取属于该数据存储装置的一第二暂存存储器的数据。
[0007] 本发明实施例另外公开了数据存储系统,包括:一快闪存储器;以及一主机装置,经由一总线耦接至该数据存储装置,并经由该总线对该数据存储装置的该快闪存储器的数据进行存取,其中该数据存储装置还包括:一存储装置控制器,;以及一存储装置收发器,耦接该存储装置控制器,经由该总线对该主机装置发送一装置总线主控(Device Bus Master,DBM)请求讯息以请求该总线上数据传输的一控制权,其中该主机装置还包括:一主机控制器,检测到该装置总线主控请求讯息后,经由该总线发出一第一装置总线主控允许讯息;其中该存储装置控制器检测该总线以判断是否从该主机装置接收该第一装置总线主控允许讯息,如果该存储装置控制器收到该第一装置总线主控允许讯息,对该主机装置的一第一暂存存储器进行存取,以存取属于该数据存储装置的一第二暂存存储器的数据。
[0008] 本发明公开的数据存储系统以及其管理方法可以在数据存储装置和主机装置连线间的任何阶段,包括闲置状态、写入传输状态或是读取传输状态进行的情况下,只要判定需要使用主机装置的暂存存储器暂存数据或管理表,数据存储装置就可以即时发出装置总线主控(device bus master,以下称为DBM)请求讯息至主机装置,对主机装置请求总线上数据传输的控制权。一旦主机装置允许数据传输的控制权,数据存储装置即可自由存取主机装置的暂存存储器。

附图说明

[0009] 图1是显示本发明实施例中一种数据存储系统1的区块图;
[0010] 图2是显示本发明实施例中一种正常写入传输模式的时序图;
[0011] 图3是显示本发明实施例中一种正常读取传输模式的时序图;
[0012] 图4是显示本发明实施例中一种在正常写入传输模式下请求总线主控方法的时序图;
[0013] 图5是显示本发明实施例中一种在正常读取传输模式下请求总线主控方法的时序图;
[0014] 图6是显示本发明实施例中一种在闲置模式下请求总线主控方法的时序图;
[0015] 图7是显示本发明实施例中一种解除请求总线主控方法的时序图;
[0016] 图8是显示本发明实施例中另一种请求总线主控方法的时序图;
[0017] 图9是显示本发明实施例中另一种请求总线主控方法的时序图;
[0018] 图10是显示本发明实施例中另一种请求总线主控方法的时序图;
[0019] 图11是显示本发明实施例另一种在获得总线主控后针对写入错误的管理方法的时序图;
[0020] 图12是显示本发明实施例中另一种在获得总线主控后针对写入错误的管理方法的时序图;以及
[0021] 图13是显示本发明实施例中一种数据存储系统的管理方法13的流程图。
[0022] 【符号说明】
[0023] 10~数据存储装置;
[0024] 100~存储装置收发器;
[0025] 102~存储装置控制器;
[0026] 104~快闪存储器;
[0027] 106~暂存存储器;
[0028] 12~主机装置;
[0029] 13~总线;
[0030] 120~主机装置收发器;
[0031] 122~主机装置控制器;
[0032] 124~暂存存储器;
[0033] CLK~时钟信号线;
[0034] DS~数据闪动信号线;
[0035] CMD~指令信号线;
[0036] DAT~数据信号线;
[0037] 200~指令讯息;
[0038] 202~回应讯息;
[0039] 220、224~数据讯息;
[0040] 222、226~验证状态讯息;
[0041] 240、242~数据快闪讯息;
[0042] Tbsy1、Tbsy2~忙碌期间;
[0043] Tblk1、Tblk2~区块空闲期间;
[0044] TDBM_req1、TDBM_req2、TDBM_req3、TDBM_req4~闲置期间;
[0045] 300~指令讯息;
[0046] 303~回应讯息;
[0047] 320、322~数据讯息;
[0048] 340、342~数据快闪讯息;
[0049] 400、408~数据讯息;
[0050] 402、410~验证状态讯息;
[0051] 404~DBM数据讯息;
[0052] 406~DBM验证状态讯息;
[0053] 420~DBM允许讯息;
[0054] 422~DBM回应讯息;
[0055] 442~DBM请求讯息;
[0056] 440、444、446~数据快闪讯息;
[0057] 500~指令讯息;
[0058] 502~回应讯息;
[0059] 504~DBM允许讯息;
[0060] 506~DBM回应讯息;
[0061] 520~DBM数据讯息;
[0062] 522~DBM验证状态讯息;
[0063] 524~数据讯息;
[0064] 540~DBM请求讯息;
[0065] 542、544~数据快闪讯息;
[0066] 600~DBM请求讯息
[0067] 602~数据快闪讯息
[0068] 622~DBM允许讯息;
[0069] 622~DBM回应讯息;
[0070] 640~DBM数据讯息;
[0071] 644~DBM验证状态讯息;
[0072] 720~DBM请求讯息
[0073] 722~数据快闪讯息
[0074] 700~指令讯息;
[0075] 702~回应讯息;
[0076] 740~数据讯息;
[0077] 840~DBM请求讯息
[0078] 842、844~数据快闪讯息
[0079] 800~指令讯息;
[0080] 802~回应讯息;
[0081] 804~DBM允许讯息;
[0082] 806~DBM回应讯息;
[0083] 820~DBM数据讯息;
[0084] 822~DBM验证状态讯息;
[0085] 824~数据讯息;
[0086] 940~DBM请求讯息
[0087] 942、944~数据快闪讯息
[0088] 900~DBM允许讯息(TID=0);
[0089] 902~DBM回应讯息(TID=0);
[0090] 904~DBM允许讯息(TID=1);
[0091] 906~DBM回应讯息(TID=1);
[0092] 920、924~DBM数据讯息;
[0093] 922、926~DBM验证状态讯息;
[0094] 1040~DBM请求讯息
[0095] 1042、1044~数据快闪讯息
[0096] 1000~DBM允许讯息(TID=0);
[0097] 1002~DBM回应讯息(TID=0);
[0098] 1004~DBM允许讯息(TID=1);
[0099] 1006~DBM回应讯息(TID=1);
[0100] 1020、1024~DBM数据讯息;
[0101] 1140~DBM请求讯息
[0102] 1142、1144、1146~数据快闪讯息
[0103] 1100、1108~DBM允许讯息(TID=0);
[0104] 1102、1110~DBM回应讯息(TID=0);
[0105] 1104~DBM允许讯息(TID=1);
[0106] 1106~DBM回应讯息(TID=1);
[0107] 1120、1124、1128~DBM数据讯息;
[0108] 1122、1126、1130~DBM验证状态讯息;
[0109] 1240~DBM请求讯息
[0110] 1242、1244~数据快闪讯息
[0111] 1200~DBM允许讯息(TID=0);
[0112] 1202~DBM回应讯息(TID=0);
[0113] 1204~DBM允许讯息(TID=0);
[0114] 1206~DBM回应讯息(TID=0);
[0115] 1220、1224~DBM数据讯息;以及
[0116] S1300,S1302,…,S1310~步骤。

具体实施方式

[0117] 以下说明目前实施本发明的优选实施方式,其用以举例说明本发明的主要技术原则,并非用以限定本发明的范围。本发明的范围需视所附权利要求书来界定。
[0118] 以下公开书中提到的数据存储装置包括控制器、非易失性存储器以及快闪存储器。上述数据存储装置为一种可移除快闪存储装置或是嵌入式快闪存储装置,包括通用串行总线(Universal Serial Bus,下称USB)快闪随身碟或存储卡、安全数字存储卡(Secure Digital SD card)、micro SD存储卡、mini SD存储卡、MultiMediaCard(下称MMC)存储卡、嵌入式MMC(eMultiMediaCard card,下称eMMC卡)存储卡以及CF存储卡(Compact Flash card)。
[0119] 图1是显示本发明实施例中一种数据存储系统1的区块图,包括数据存储装置10和主机装置12,两者间以总线13连接。数据存储系统1可以是手机、个人数字助理、平板计算机、手提计算机、个人计算机、掌上游戏机、数字相机、消费者电子装置或其他计算机装置。在其中一个实施例中,数据存储装置10为eMMC卡并且主机装置12为处理器芯片。eMMC卡和主机装置12间的沟通信号符合JEDEC eMMC规范或之后更高的规范版本。连接数据存储装置
10和主机装置12的eMMC总线13包括时钟信号线CLK、数据闪动信号线DS(Data Strobe)、指令信号线CMD、数据信号线DAT、电源信号线(未图示)以及重置信号线(未图示),其中时钟信号线CLK包括1条信号线、数据闪动信号线DS包括1条信号线、指令信号线CMD包括1条信号线、数据信号线DAT包括8条信号线、电源信号线包括2条信号线以及重置信号线包括1条信号线。
[0120] 数据存储装置10和主机装置12内部分别具有暂存存储器106和124。当数据存储装置10和主机装置12间有正在进行的连线时,数据存储装置10不但可使用其内部的暂存存储器106,也可使用主机装置12内部的暂存存储器124进行数据暂存运作,这里的暂存的数据包括例如逻辑对应物理地址表等管理表及数据,即数据存储装置10可使用的暂存存储器空间可延伸到主机装置12的内部存储器,在主机装置12的暂存存储器124暂存数据以及管理表。数据存储装置10可动态利用主机装置12的内部存储器124来缓存本来需要缓存在本地存储器106的数据以及管理表。
[0121] 在数据存储装置10和主机装置12连线间的任何阶段,包括读取阶段、写入阶段以及闲置阶段,只要判定需要使用主机装置12的暂存存储器124暂存数据或管理表,数据存储装置10就可以即时发出装置总线主控(device bus master,以下称为DBM)请求讯息至主机装置12,对主机装置12请求总线13上数据传输的控制权。一旦主机装置12允许数据传输的控制权,数据存储装置10即可自由存取主机装置12的暂存存储器124。上述DBM请求讯息具有最高的处理优先顺序,高于读取程序、写入程序或是闲置程序。当正在进行正常读取或写入程序中,一旦主机装置12收到DBM请求讯息即会暂停目前正在进行中的读取或写入程序并尽快回应该请求。而在DBM请求的数据服务完成后,主机装置12可继续进行暂停的读取或写入程序。在整个DBM的服务程序中主机装置12都可知道正在进行的动作,并且不会有其他中断程序打断DBM服务程序。但本发明对总线13的具体规格并不作限制,只要具备可在正常数据传输过程中由数据存储装置10向主机装置12发出DBM请求讯息的信号线即可。
[0122] 数据存储装置10包括存储装置收发器100、存储装置控制器102、快闪存储器104以及暂存存储器106。存储装置控制器102耦接存储装置收发器100、快闪存储器104以及暂存存储器106。快闪存储器104可包括一或多个快闪存储器,存储装置控制器102可将存取数据的管理信息以管理表形式存在暂存存储器106中,并于存取快闪存储器104内的数据时通过管理表而存取正确的物理地址。暂存存储器106可以是RAM,其可存储数据存储装置10的管理表或是数据存取处理中所需的暂存数据。存储装置控制器102也可使用DBM服务程序存取主机装置12的内部暂存存储器(存储空间)124。存储装置收发器100用于和主机装置12进行数据传输。
[0123] 主机装置12包括主机装置收发器120、主机装置控制器122以及暂存存储器124。主机装置控制器122可存取存储在暂存存储器124的程序代码以及数据。暂存存储器124可以是RAM,其可存储主机装置控制器122要执行的程序代码、暂存数据、以及数据存储装置10的管理表和暂存数据。在一实施例中,暂存存储器124为该主机装置12的主存储器(host memory)。主机装置控制器122耦接主机装置收发器120以及暂存存储器124。主机装置收发器120用于和数据存储装置10进行数据传输。
[0124] 在正常写入以及读取程序中,主机装置12用于将正常数据写入数据存储装置10以及从数据存储装置10读取正常数据,详细动作如图2和图3所示。图2是显示本发明实施例中一种正常写入程序的时序图,其中只显示数据闪动信号线DS、指令信号线CMD和数据信号线DAT。此后图中所示的DAT皆仅示出数据信号线DAT中的DAT[0]波形。其他未显示的时钟信号线CLK上信号会以固定时钟周期切换,电源信号线持续供给数据存储装置10电源,重置信号线的信号在需要重置数据存储装置10才会动作。
[0125] 在正常写入程序中,首先主机装置12会发出写入指令200,而数据存储装置10会响应收到的写入指令200回复回应指令202给主机装置12,表示已收到写入指令200并准备好从主机装置12接收写入数据。主机装置12收到回应指令202后会将正常写入数据以数据讯息220的形式传送给数据存储装置10,该数据讯息220可将写入数据封装为一数据分组(data packet)的形式,其包括起始位S、写入数据DAT、数据验证码例如循环冗余校验码(Cyclic redundancy check,下称CRC)和结束位E。数据存储装置10收到数据讯息220通过CRC进行验证,并将验证结果以验证状态讯息222回传给主机装置12,并同时传送切换(toggling)的数据闪动信号240以提示主机装置12开始接收验证状态讯息222,其中验证状态讯息222包括起始位S、验证结果CRC状态及结束位E。举例而言,验证结果CRC状态为010,表示CRC验证数据无误;验证结果CRC状态为101,表示CRC验证数据有错。验证结果CRC状态在数据信号线DAT[0]上序列传输,但本发明不限于此。如果是写入数据不只一笔,则主机装置12会另发下个数据讯息224给数据存储装置10并由数据存储装置10收到相应的验证状态讯息226。
[0126] 如图2所示,主机装置12发送写入指令200之前,会有一段闲置期间TDBM_req1;在正常写入程序之中,主机装置12也不会一直被占用,在主机装置12接收完回应指令202之后直至传送第一笔数据讯息220之前,也存在一段闲置期间TDBM_req2;在主机装置12接收完一笔数据讯息的验证状态讯息(222)后直至传送下一笔数据讯息(224)之前,也会有一段闲置期间(如图2中的TDBM_req3及TDBM_req4)。在上述闲置期间TDBM_req1~TDBM_req4,主机装置12不发送或接收任何数据或指令而闲置,可检测到数据存储装置10传送的DBM请求,进而进行DBM服务程序。
[0127] 以闲置期间TDBM_req3为例,闲置期间TDBM_req3包括忙碌期间(busy period)Tbsy1和区块空闲期间(block gap)Tblk1。在数据存储装置10收到数据讯息220并回复验证状态讯息222之后,会需要一段时间处理写入数据DAT,因此无法接受其他指令或数据。这段数据存储装置10无法接受其他指令或数据的时间称为忙碌期间(busy period)Tbsy1,数据存储装置
10会拉低数据信号线DAT表示处于忙碌期间Tbsy1,并再次拉高数据信号线DAT表示忙碌期间结束。忙碌期间结束到收到下一笔写入数据的空闲时间称为区块空闲期间Tblk1。主机装置
12可在闲置期间TDBM_req3内,包括忙碌期间Tbsy1和区块空闲期间Tblk1,检测到数据存储装置
10发送的DBM请求讯息,进而进行DBM服务程序。
[0128] 参考图3,其显示本发明实施例中一种正常读取程序的时序图。在正常读取程序中,首先主机装置12会发出读取指令300,其包括要读取的数据地址和长度等信息。数据存储装置10会响应收到的读取指令300回复回应指令302给主机装置12,表示已收到读取指令300并准备好发送读取数据至主机装置12。接着数据存储装置10会开始将正常读取数据以数据讯息320的形式发送给主机装置12,并同时在数据闪动信号线DS上传送切换
(toggling)的数据闪动信号340以提示主机装置12开始接收所读取的数据讯息320的数据。
该数据讯息320可将读取数据封装为一数据分组(data packet)的形式,其包括起始位S、读取数据DAT、数据验证码例CRC和结束位E。主机装置12收到数据讯息320通过CRC进行验证。
如果是读取数据不只一笔,则数据存储装置10会另发下个数据讯息322以及相应的数据闪动信号342给主机装置12。
[0129] 如图3所示,主机装置12发送读取指令300之前,会有一段闲置期间TDBM_req1;在正常读取程序之中,主机装置12也不会一直被占用,在主机装置12接收完回应指令302之后直至接收第一笔数据讯息320之前,也存在一段闲置期间TDBM_req2;主机装置12在接收完一笔数据讯息(320)之后直至接收下一笔数据讯息(322)之前,也会有一段闲置期间(如图3中的TDBM_req3及TDBM_req4)。在上述闲置期间TDBM_req1~TDBM_req4,主机装置12不发送或接收任何数据或指令而闲置,可检测到数据存储装置10传送的DBM请求讯息,用以对主机装置12请求数据传输的控制权,进而进行DBM服务程序。例如在图3的例子中,以闲置期间TDBM_req3为例,这样的闲置期间均为区块空闲期间。
[0130] 回到图1的实施例,在数据存储系统1开机后会先初始内部电路元件,主机装置12首先执行启动载入程序(boot loader),用以设定数据存储装置10于暂存存储器124可存取的存储器范围。该可存取的存储器范围可以是暂存存储器124内的一部分存储器范围,并可由eMMC装置存储器基本地址(eMMC device memory base address)[63:0]加以定义。表格1列出主机装置12相关eMMC装置存储器基本地址的暂存器参数。
[0131]
[0132] 表格1
[0133] 接着主机装置12会执行控制数据存储装置10的驱动程序,例如eMMC驱动程序。驱动程序从主机装置12的主机装置控制器122内部的暂存器读取“DBM功能(DBM capability)”参数。如果该DBM功能参数读到的是1即表示主机装置12支持DBM服务程序,如果为0则否。驱动程序接着在装置初始阶段时从数据存储装置10的内部暂存器读取该DBM功能参数。如果该DBM功能参数读到的是1即表示数据存储装置10支持DBM服务程序,如果为0则否。当主机装置12和数据存储装置10两者皆确认支持DBM服务程序后,驱动程序会设定“DBM致能(DBM Enable)”参数。如果该DBM致能参数为1,主机装置12便能够回应eMMC DBM的请求。如果该DBM致能参数为0,主机装置12会忽视eMMC DBM的请求。当该DBM致能参数为0时,驱动程序会关闭数据存储装置10中eMMC DBM服务程序的功能,藉以避免总线冲突。如果该DBM致能参数为1时,驱动程序会使致能“DBM致命错误中断信号致能(DBM fatal error interrupt signal enable)”参数和“DBM致命错误中断状态致能(DBM fatal error interrupt status enable)”参数。表格2列出主机装置12所有和DBM控制相关的暂存参数。
[0134]
[0135]
[0136] 表格2
[0137] 现在参考图4,其显示本发明实施例中一种在正常写入传输模式下请求DBM服务程序的时序图。
[0138] 当数据存储装置10在正常写入传输模式下判定需要请求DBM服务程序时,在时间t40声明(assert)数据闪动信号线DS上的DS信号,如果主机装置12在闲置期间TDBM_req内能检测到在数据闪动信号线DS上被声明的DS信号,则认为数据存储装置10发出DBM请求讯息442。在正常写入传输模式下,主机装置12最早可在闲置期间TDBM_req的忙碌期间Tbsy检测到被声明(asserted)的DS信号,即得知数据存储装置10希望获取总线13的控制权,因此主机装置12会暂停正进行中的正常写入程序,并通过在指令信号线CMD上传送DBM允许讯息420回应收到的DBM请求讯息442,允许数据存储装置10获得总线13的主控权。DBM请求讯息442被插入的时间t40并不受限于图4显示的时间点,在一优选实施例中,时间t40可以位于主机装置12可检测到DS信号的闲置期间TDBM_req时间内,此时声明(assert)DS信号可以避免与正常读写时需要使用的DS信号冲突。
[0139] 表格3列出DBM允许讯息的格式以及所包含的相关暂存参数。值得注意的是,在JEDEC eMMC 5.0的通信协议标准中,指令索引60到63都是可自订(Vendor Defined)的指令,表格3显示以指令索引为60表示相应DBM请求的DBM允许讯息的实施例。本领域人士可知实施例中的指令索引60也可以用其他的自订索引编号取代,表示相应DBM请求的允许讯息。JEDEC eMMC 5.0的通信协议标准也仅是一举例,本发明也可采用符合其它标准格式的DBM允许信息。DBM允许讯息中的传输辨识值TID(Transaction ID)表示接下来要存取的数据区块编号。每个要存取的数据区块的数据大小范围在1到512字节之间。
[0140]
[0141] 表格3
[0142] 相应地,数据存储装置10收到DBM允许讯息420之后即获得总线13的主控权,可以在时间t42将DS信号撤销声明(de-assert)以停止DBM请求讯息442。DBM请求讯息442的长度可以是不固定的,其起点由数据存储装置10何时声明DS信号决定,其终点由数据存储装置10何时收到主机装置12发送的DBM允许讯息420决定。但为了与正常写入传输模式下提示主机装置12开始接收验证结果SCRC而快速切换(toggling)的数据闪动信号440相区隔,DBM请求讯息442的长度至少应等于或超过一个时钟周期的时间长度。数据存储装置10接着发出DBM回应讯息422,该DBM回应讯息422包含数据传输方向(transfer direction)、存取主机装置12的存储器地址(offset)、以及存取数据长度(block size&block length)等信息。表格4列出DBM回应讯息的格式以及所包含的相关暂存参数。
[0143]
[0144]
[0145] 表格4
[0146] 接着主控装置12便可根据DBM回应讯息422而回应数据存储装置10。例如在图4的实施例中,DBM回应讯息422包含数据由主机装置12到数据存储装置10方向传输的写入操作,因此主控装置12会将DBM回应讯息422所指定的暂存存储器124地址的数据以DBM数据讯息404发送给数据存储装置10,并接收数据存储装置10发送的相应于DBM数据讯息404的DBM验证状态讯息406。在完成DBM服务程序后,主控装置12会继续未完成的正常数据写入程序,包括发送正常数据讯息408以及收取相应的验证状态讯息410。表格5和6分别列出数据讯息(DBM数据讯息404的格式形同正常数据讯息400及408)以及其相应验证状态讯息(DBM验证状态讯息406的格式形同正常验证状态讯息402及410)的格式以及所包含的相关暂存参数。
[0147]位位置 数据宽度(位) 位值 内容描述
[17+N*8] 1 0 起始位
[17+N*8-1:17] N*8 x 数据
[16:1] 16 X 16位CRC
[0] 1 1 尾端位
[0148] 表格5
[0149]
[0150] 表格6
[0151] 虽然图4DBM服务程序的实施例显示由主机装置12到数据存储装置10方向传输的写入操作,即数据存储装置10从主机装置12读取其所暂存的管理表及数据,本领域技术人员可知也可在DBM服务程序中进行由数据存储装置10到主机装置12方向传输的读取操作,即数据存储装置10向主机装置12写入其所需暂存的管理表及数据。注意DBM服务程序中存取的数据讯息可以为1个或更多的数据讯息,该存取的数据讯息会根据其内容顺序而被进行编号。每个DBM数据区块传输都会包括一个对应的DBM允许讯息ACK、DBM回应讯息RSP、以及DBM数据讯息DAT+CRC,上述三种讯息都会根据其内容顺序而被进行编号。在一实施例中,主机装置12可以通过直接存储器存取(Direct Memory Access,DMA)的存取方式从内部暂存存储器124存取DBM数据。具体而言,主机装置控制器122中包含一DMA引擎(未绘示)及一存储器控制器(未绘示),主机装置控制器122通过该DMA引擎及该存储器控制器存取该暂存存储器124。
[0152] 实施例中的数据存储装置10在正常写入程序正在进行的情况下,判定需要使用主机装置12的数据存储空间时以DBM请求讯息初始DBM服务程序,获取总线13的主控权,藉以由数据存储装置10主动发出存取主机装置12内部的数据存储空间的请求。
[0153] 图5是显示本发明实施例中一种在正常读取传输模式下请求总线主控方法的时序图。
[0154] 首先在请求DBM服务程序前主机装置12已经通过在指令信号线CMD上传送指令讯息500,例如指令CMD18而起始一正常读取并从数据存储装置10收到相应的回应讯息502,例如指令RSP18,因此进入正常读取传输模式。当数据存储装置10在正常读取传输模式下判定需要请求DBM服务程序时,在时间t50声明(assert)数据闪动信号线DS上的DS信号,如果主机装置12在闲置期间TDBM_req内能检测到在数据闪动信号线DS上被声明的DS信号,则认为数据存储装置10发出DBM请求讯息540,藉以通知主机装置12数据存储装置10希望初始DBM服务程序。在正常读取传输模式下,主机装置12可在所有闲置期间TDBM_req检测到该DBM请求讯息540,即得知数据存储装置10希望获取总线13的控制权,因此会暂停正进行中的正常读取程序,并通过在指令信号线CMD上传送DBM允许讯息504回应收到的DBM请求讯息540,允许数据存储装置10获得总线13的主控权。DBM允许讯息504的格式以及所包含的相关暂存参数可参考之前表格3的描述。
[0155] 相应地,数据存储装置10收到DBM允许讯息504之后即获得总线13的主控权,可以在时间t52将DS信号撤销声明(de-assert)以停止DBM请求讯息540。数据存储装置10接着发出DBM回应讯息506,该DBM回应讯息506包含数据传输方向、存取主机装置12的存储器地址、以及存取数据长度等信息。DBM回应讯息506的格式以及所包含的相关暂存参数可参考之前表格4的描述。
[0156] 接着主控装置12可根据DBM回应讯息506而回应数据存储装置10。例如在图5的实施例中,DBM回应讯息506包含数据由主机装置12到数据存储装置10方向传输的写入操作,因此主控装置12会将DBM回应讯息506指定的暂存存储器124地址的数据以DBM数据讯息520发送给数据存储装置10,并接收数据存储装置10发送的相应于数据讯息520的DBM验证状态讯息522。在完成DBM服务程序后,主控装置12会继续未完成的正常数据读取程序,包括从数据存储装置10读取正常数据讯息524。
[0157] 在另一个实施例中,数据存储装置10可在从主控装置12收到读取程序指令讯息500后立即声明DS信号以发出DBM请求讯息,并在主控装置12允许该DBM请求(即发出DBM允许讯息504)后才结束DBM请求讯息。DBM请求讯息540的长度是不固定的,其起点由数据存储装置10何时声明DS信号决定,终点由数据存储装置10何时收到主机装置12发送的DBM允许讯息504决定。但为了与提示主机装置12开始接收DBM验证状态讯息522而快速切换(toggling)的数据闪动信号542相区隔,也为了与正常读取传输模式下提示主机装置12开始接收正常读取数据讯息524的而切换(toggling)的数据闪动信号544相区隔,DBM请求讯息442的长度至少应等于或超过一个时钟周期的时间长度。
[0158] 虽然图5DBM服务程序的实施例显示由主机装置12到数据存储装置10方向传输的写入操作,即数据存储装置10从主机装置12读取其所暂存的管理表及数据,本领域技术人员可知也可在DBM服务程序中进行由数据存储装置10到主机装置12方向传输的读取操作,即数据存储装置10向主机装置12写入其所需暂存的管理表及数据。注意DBM服务程序中存取的数据讯息可以为1个或更多的数据讯息,该存取的数据讯息会根据其内容顺序而由传输辨识值进行编号。每个DBM数据区块传输都会包括一个对应的DBM允许讯息ACK、DBM回应讯息RSP、以及DBM存取数据讯息DAT+CRC,上述三种讯息都会根据其内容顺序而被进行编号。
[0159] 实施例中的数据存储装置10在正常读取程序正在进行的情况下,判定需要使用主机装置12的数据存储空间时以DBM请求讯息初始DBM服务程序,获取总线13的主控权,藉以由数据存储装置10主动发出存取主机装置12内部的数据存储空间的请求。
[0160] 图6是显示本发明实施例中一种在闲置模式下请求总线主控方法的时序图。
[0161] 在闲置模式下当数据存储装置10判断要开始DBM服务程序时可在任意时间点在数据闪动信号线DS上声明(assert)DS信号,主机装置12检测到被声明的DS信号,则认为数据存储装置10发出DBM请求讯息600,则主机装置12会在指令信号线CMD上以DBM允许讯息620回应DBM请求讯息600,并从数据存储装置10接收相应的回应讯息622,接受数据存储装置10的控制存取主机装置12的内部存储器124。在DBM服务程序后回到原本的闲置模式。
[0162] 图7是显示本发明实施例中一种解除请求总线主控方法的时序图。数据存储装置10可用于解除才刚发送的DBM请求讯息。
[0163] 当数据存储装置10在从主机装置12接收读取或写入指令讯息(指令CMD18或25)700时在时间t70声明(assert)数据闪动信号线DS上的DS信号而插入一DBM请求讯息720,如果此时数据存储装置10想要进行正常读取或写入程序并中止DBM请求,数据存储装置10可在发出回应讯息702起始位的时序前在时间t72将数据闪动信号DS撤销声明(de-assert),用以解除才刚发送的DBM请求讯息720。主机装置12会忽略才刚收到的DBM请求讯息720,在收到回应讯息702后继续进行正常读取或写入程序。
[0164] 相对地,如果是数据存储装置10在发出回应讯息702后仍未解除DBM请求讯息,则主机装置12会接受DBM请求讯息,回应对应的允许讯息,并启动DBM服务程序。图8是显示数据存储装置10发出回应讯息后不解除DBM请求讯息的实施例。数据存储装置10在从主机装置12接收读取或写入指令讯息(指令CMD18或25)800时在时间t80声明(assert)DS信号而插入DBM请求讯息840,并且该DBM请求讯息840在数据存储装置10回复回应讯息802时持续插入而不解除,因此主机装置12会在闲置期间检测到DBM请求讯息840,回应对应的允许讯息804,并启动DBM服务程序。
[0165] 图9是显示本发明实施例中另一种请求总线主控方法的时序图,用于连续将DBM数据讯息从主机装置12传送至数据存储装置10。
[0166] 数据存储装置10可使用DBM服务程序连续从主机装置12读取DBM数据讯息并传送至数据存储装置10。在数据存储装置10发出DBM请求讯息940并获得主机装置12的DBM允许讯息900后,数据存储装置10会回复DBM回应讯息902,回应讯息902包括要从主机装置12读取的数据存储空间地址以及长度等信息。根据DBM回应讯息902,主机装置12会以DBM数据讯息920传送内部存储器124内的第一笔缓存管理表或数据(TID=0),并接收数据存储装置10发送的相应于DBM数据讯息920的DBM验证状态讯息922。在传送DBM数据讯息920时,主机装置12同时也会在指令信号线CMD上传送下一笔传送数据(TID=1)的DBM允许讯息904,并接收来自数据存储装置10的DBM回应讯息906,藉以以管线化(pipeline)方式在收到DBM验证状态讯息922并确认DBM验证状态讯息922显示验证正确后(例如CRC状态=010),继续以DBM数据讯息924传送下一笔缓存管理表或数据(TID=1),并获得相应的DBM验证状态讯息926。
[0167] 实施例中的数据存储装置10在DBM服务程序中,以管线化方式连续将多笔存储在内部存储器124内部的缓存管理表或数据传送到数据存储装置10,藉以更有效率地存取主机装置12内部的数据存储空间。
[0168] 图10是显示本发明实施例中另一种请求总线主控方法的时序图,用于连续将DBM数据讯息从数据存储装置10传送至主机装置12。
[0169] 数据存储装置10可使用DBM服务程序连续写入DBM数据讯息至主机装置12。在数据存储装置10发出DBM请求讯息1040并获得主机装置12的DBM允许讯息1000后,数据存储装置10会回复DBM回应讯息1002,回应讯息1002包括要写入至主机装置12的数据存储空间地址以及长度等信息。数据存储装置10会根据回应讯息1002将第一笔缓存管理表或数据(TID=
0)以DBM数据讯息1020的形式写入至主机装置12的内部存储器124。在接收完毕DBM数据讯息1020并确认其正确性后,主机装置12便会在指令信号线CMD上传送下一笔传送数据(TID=1)的DBM允许讯息1004,并接收来自数据存储装置10的DBM回应讯息1006,继续从数据存储装置10接收下一笔DBM数据讯息1022(TID=1)。
[0170] 实施例中的数据存储装置10在DBM服务程序中,以连续方式从数据存储装置10读取多笔要缓储于内部存储器124的DBM数据,藉以更有效率地存取主机装置12内部的数据存储空间。
[0171] 在某些实施例中,数据存储装置10发出DBM请求讯息并且也已经从主机装置12收到相应的DBM允许讯息ACK,而数据存储装置10此时判断不需要进行DBM数据传输,则数据存储装置10可在指令信号线CMD上回应的DBM回应讯息RSP中将存取数据地址以及长度都设为0([127:8]=0),主机装置12收到这样的回应讯息RSP后,会认为所有的DBM信息讯息传输完成,将存储系统1回复到DBM请求前的状态,继续进行正常的数据传输或恢复为闲置状态。
[0172] 图11是显示本发明实施例另一种在获得总线主控后针对写入错误的管理方法的时序图。图11和图9的实施例大致相同,除了数据存储装置10在验证第一笔DBM数据(TID=0)后发现传输数据错误并需要针对错误的DBM数据进行重传。
[0173] 数据存储装置10在验证第一笔DBM数据讯息(TID=0)1120后发现传输数据错误,将发现的错误以DBM验证状态讯息1122通知主机装置12,举例而言,DBM验证状态讯息为010,表示CRC验证数据无误;DBM验证状态讯息为101,表示CRC验证数据有错。DBM验证状态讯息在数据信号线DAT[0]上序列传输,但本发明不限于此。由于主机装置12在获得DBM验证状态讯息1122之前已经允许下一笔DBM数据(TID=1)传输,所以主机装置12仍会继续传送下一笔DBM数据讯息1124并接收相应DBM验证状态讯息1126。在得知第一笔DBM数据讯息
1120错误后,主机装置12会重新传送DBM允许讯息1108允许重传第一笔DBM数据(TID=0),在获得相应DBM回应讯息1110后主机装置12会重传第一笔DBM数据讯息1128(TID=0)。如果从数据存储装置10收到的DBM验证状态讯息1130显示DBM数据讯息1128验证正确,则所有的DBM数据都被正确传送,因此DBM服务程序即结束并回到进入DBM服务程序之前的传输状态。
如果主机装置12重新传送多次同一笔DBM数据(例如TID=0),仍不能从数据存储装置10获得验证正确的DBM验证状态讯息,则认为数据存储系统1发生致命错误,则主机装置控制器
122发出如前述表2提及的DBM致命错误中断(DBM fatal error interrupt)至主机装置12的驱动程序,使得驱动程序重启(reset)系统。此外,当数据存储装置10自身发生致命错误,则可在DBM回应讯息RSP中置位如表格4中的RSP[10],主机装置12在接收这样的DBM回应讯息RSP时,同样会发出DBM致命错误中断(DBM fatal error interrupt)至主机装置12的驱动程序,使得驱动程序重启系统。
[0174] 图12是显示本发明实施例中另一种在获得总线主控权后针对读取错误的管理方法的时序图。在图12的实施例中,主机装置12在验证第一笔DBM数据(TID=0)后发现传输数据错误并需要针对错误的DBM数据进行重传。
[0175] 主机装置12根据DBM数据讯息1220中的CRC数据(参考表格5)验证第一笔DBM数据讯息(TID=0)1220,如果发现传输数据错误,则会重新传送DBM允许讯息1204允许重传第一笔DBM数据(TID=0),在获得相应DBM回应讯息1206后数据存储装置10会重传第一笔DBM数据讯息1224(TID=0)。如果主机装置12的验证结果显示重传的DBM数据讯息1224验证正确,则DBM服务程序即结束并回到进入DBM服务程序之前的传输状态。在其它实施例中,DBM服务程序可以在重传第一笔DBM数据讯息1224(TID=0)之前或之后传输下一笔DBM数据讯息(TID=1,图未绘示)。此外,与图11的写入过程类似,在读取过程中,如果主机装置12发送多次TID相同的DBM允许讯息ACK,仍无法从数据存储装置10读取验证正确的DBM数据,则认为数据存储系统1发生致命错误,则主机装置控制器122发出如前述表2提及的DBM致命错误中断(DBM fatal error interrupt)至主机装置12的驱动程序,使得驱动程序重启(reset)系统。此外,当数据存储装置10自身发生致命错误,则可在DBM回应讯息RSP中置位如表格4中的RSP[10],主机装置12在接收这样的DBM回应讯息RSP时,同样会发出DBM致命错误中断(DBM fatal error interrupt)至主机装置12的驱动程序,使得驱动程序重启系统。
[0176] 图13是显示本发明实施例中一种数据存储系统的管理方法13的流程图,使用图1的数据存储系统1。
[0177] 在管理方法13初始后,数据存储装置10和主机装置12内部的参数和电路都会初始化,准备好进行DBM服务程序(S1300)。
[0178] 接着数据存储装置10会判断是否需要使用主机装置12的内部暂存存储器124的存储空间以存取属于该数据存储装置10的暂存存储器106的数据(S1302)。如果不需要,数据存储装置10会回到步骤S1302继续判断是否需要使用主机装置12内部存储器124的存储空间以及初始DBM服务程序。如果需要则数据存储装置10经由该总线13对主机装置12发出DBM请求讯息以请求总线13上数据传输的控制权(S1304)。在某些实施例中,数据存储装置10会通过总线13的数据闪动(strobe)信号线声明(assert)数据闪动信号DS而发出DBM服务请求。
[0179] 在送出DBM请求讯息后,数据存储装置10会检测指令信号线CMD判断主机装置12是否允许总线上数据传输的控制权请求(S1306)。如果检测到主机装置12发出的DBM允许讯息,则数据存储装置10会对主机装置12的内部暂存存储器124进行存取(S1308)。
[0180] 具体而言,如果送出DBM请求讯息的当下系统正在进行正常数据的读/写传输,则主机装置12会于传输过程中的闲置期间TDBM_req(具体参考如前图2和图3的描述)检测到该DBM请求讯息,中断正在进行的读/写传输,并回应该DBM允许讯息;如果送出DBM请求讯息的当下系统正处于闲置状态,则主机装置12会立即检测到该DBM请求讯息,并回应DBM允许讯息。当收到DBM允许讯息后,数据存储装置10会发出相应于DBM允许讯息的DBM回应讯息,该DBM回应讯息包括要存取的主机装置12内部存储器124的数据地址以及数据长度。主机装置12会根据DBM回应讯息对其暂存存储器124进行数据存储装置10所指示的数据存取动作,以存取数据存储装置10所暂存的管理表及数据。在某些实施例中,在收到DBM允许讯息后,数据存储装置10还会再次撤销声明(de-assert)数据闪动信号DS用以停止DBM服务请求,因为主机装置12也只有在闲置期间TDBM_req(具体参见图2和图3的描述)才能检测数据闪动信号线DS上的DS信号,因此DS信号被声明的时间应持续到系统进入闲置期间TDBM_req之后。在本发明一实施例中,数据存储装置10声明DS信号的时间持续到主机装置12因应DBM服务请求而发送DBM允许讯息ACK之后,即是说,数据存储装置10在接收完DBM允许讯息ACK之后可以撤销声明(de-assert)DS信号。在本发明另一实施例中,数据存储装置10甚至可以在传输DBM回应讯息RSP完毕之前撤销声明(de-assert)DS信号,因为传输完DBM回应讯息RSP之后就进入了DBM数据讯息传输阶段,主机装置12在数据讯息传输阶段需通过检测快速切换(toggling)的DS信号,以判断是否开始接收数据存储装置10发出的验证状态讯息(写入过程)或数据讯息(读取过程)。
[0181] 如果没有检测到主机装置12发出的DBM允许讯息,则数据存储装置10会回到发出DBM服务请求讯息前的传输状态(S1310)。该DBM服务请求讯息前的传输状态可以是闲置状态、写入传输状态或是读取传输状态。在某些实施例中,尽管数据存储装置10已经检测到主机装置12发出的DBM允许信息,但数据存储装置10此时判断不需要进行DBM数据传输而希望撤回该DBM服务请求,则数据存储装置10可在指令信号线CMD上的DBM回应讯息RSP中将存取数据地址以及长度都设为0([127:8]=0),主机装置12收到这样的回应讯息RSP后,会认为所有的DBM信息讯息传输完成,将存储系统1回复到DBM请求前的状态。
[0182] 实施例中的管理方法13在闲置状态、写入传输状态或是读取传输状态进行的情况下,都可以判定需要初始DBM服务程序,让数据存储装置10获取总线的主控权,藉以让数据存储装置10主动存取主机装置12内部的数据存储空间而不受到其他中断程序的影响。
[0183] 说明书使用的"判定”一词包括计算、估计、处理、取得、调查、查找、确定、以及类似意义。"判定”也包括解决、检测、选择、获得、以及类似的意义。
[0184] 本发明描述的各种逻辑区块、模块、以及电路可以使用通用处理器、数字信号处理器(Digital Signal Processor,DSP)、特定应用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)、或其他可程控逻辑元件、离散式逻辑电路或晶体管逻辑门、离散式硬件元件、或用于执行本发明所描述的执行的功能的其任意组合。通用处理器可以为微处理器,或者,该处理器可以为任意商用处理器、控制器、微处理器、或状态机。
[0185] 本发明描述的各种逻辑区块、模块、以及电路的操作以及功能可以利用电路硬件或嵌入式软件代码加以实现,该嵌入式软件代码可以由一处理器存取以及执行。
[0186] 虽然本发明已以优选实施例公开如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视所附权利要求书界定范围为准。