储存装置及其资料传输控制方法
【技术领域】
[0001]本发明是有关于一种储存装置及其控制方法,且特别是有关于一种利用SATA总线连接至主机的储存装置及其资料传输控制方法。
【背景技术】
[0002]随着科技的演进,现今计算机中储存装置与主机(host)之间的连接总线已经由串行式进阶技术附加装置(Serial Advanced Technology Attachment,以下简称SATA)总线来取代早期的整合式电子驱动(Integrated Drive Electronics,以下简称IDE)总线。其中,储存装置可为硬盘驱动器(Hard-disc drive)、或者固态硬盘(solid-state storagedrive)。
[0003]基本上,现今的SATA的规格有SATA 1.0、SATA 2.0、以及STAT 3.0。其中,SATA1.0的资料传输速度为1.5Gbit/s,SATA 2.0的资料传输速度为3Gbit/s,而SATA 3.0的资料传输速度为6Gbit/s。换言之,随着SATA规格的演进,主机与储存装置之间的传输速度可以不断地提升。再者,于SATA 3.0的规格中更支持原生指令序列(Native CommandQueuing,以下简称NCQ)以达成主机与储存装置之间更高的资料传输效能。
[0004]对于支持NCQ的储存装置来说,储存装置可以由主机接收多个指令。而储存装置并不会根据接收指令的顺序(in order)来执行这些命令。相反地,储存装置会判断指令的型态以及资料的储存位置来重新编排执行指令的顺序。
[0005]根据SATA 3.0的规格,支持NCQ的储存装置可以连续接收主机发出的32个指令,而储存装置可以不按照次序(out of order)来执行这些指令。
[0006]举例来说,假设储存装置收到主机产生的32个读取指令。当储存装置重新编排执行读取指令的顺序之后,储存装置即开始将每个读取指令所对应的读取资料回传至主机。其中,当任何一个读取指令完成之后,主机可以再次产生一个新的读取指令至储存装置。如此,储存装置中随时都有32个待执行的读取指令,将可以大幅度地提高储存装置的读取效倉泛。
[0007]然而,在现今的SATA 3.0的规格下,当储存装置在回传读取资料后,主机会很难将新的指令传送至储存装置。以下详细说明之。
[0008]根据SATA 3.0规格中的规范,当主机以及储存装置同时有资料要传送至对方时,主机必须先延迟(postpone)其框资料传输(frame transmiss1n)。换言之,当主机以及储存装置同时发起一个框资料传输要求(request for frame transmiss1n)时,储存装置的框资料传输的优先权(pr1rity)会高于主机的框资料传输。再者,框资料(frame)中的内容可以是读取资料、写入资料或者是指令。
[0009]假设储存装置收到32个读取指令后,储存装置会不间断地将相对应的读取资料回传至主机。当储存装置不间断地回传32笔读取资料至主机的过程,主机所发出的框资料传输要求几乎都会被延迟。所以,主机必须等到储存装置将所有32笔的读取资料传送完成,且储存装置中已经没有任何的待执行读取指令时,主机才可成功的发出框资料传输要求并将新的读取指令传送至储存装置。
[0010]由以上的说明可知,当储存装置中无法随时都有待执行的读取指令时,将无法提高储存装置的读取效能。再者,虽然上述是以读取指令为例来进行说明。相同的状况也可以运用在写入指令以及写入资料的传输。
[0011]因此,如何在符合SATA规格的总线架构下,让储存装置中随时都有待执行的指令,使得储存装置能够高效能的运作,即为本发明所欲达成的目的。
【发明内容】
[0012]本发明是有关于一种储存装置的资料传输控制方法,该储存装置利用一串行式进阶技术附加装置总线连接至一主机,该方法包括下列步骤:发出X_RDY基元至该主机;于收到该主机发出的R_RDY基兀时,对该主机进行一第一框资料传输;于完成该第一框资料传输之后,进行一第二框资料传输之前的一特定时间周期内,发出多个SYNC基元至该主机;于该特定时间周期内,若该主机未发出X_RDY基元时,进行该第二个框资料传输。
[0013]本发明是有关于一种储存装置,利用一串行式进阶技术附加装置总线连接至一主机,该储存装置包括:一控制单元,用以接收该主机发出的多个读取指令,并对应输出多个读取资料至该主机,其中,该控制单元是对该主机进行多个框资料传输用以传递所述读取资料至该主机;一闪存,连接至该控制单元;以及一高速缓存,连接至该控制单元;其中,当该控制单元完成一第一框资料传输并进行一第二框资料传输之前,等待一特定时间周期;以及,若该主机未对该控制单元发出一第三框资料传输时,于该特定时间周期之后,该控制单元进行该第二框资料传输。
【附图说明】
[0014]为了对本发明的上述及其他方面有更佳的了解,下文特举较佳实施例,并配合所附附图,作详细说明如下,其中:
[0015]图1所绘示本发明固态硬盘与主机的连接示意图。
[0016]图2与图3为SATA规格中主机与固态硬盘之间在链接层的基元传递示意图。
[0017]图4所绘示为本发明固态硬盘的资料传输控制方法流程图。
[0018]图5A与图5B为本发明主机与固态硬盘之间在链接层的基元传递示意图。
【具体实施方式】
[0019]以下的说明是以固态硬盘利用SATA总线连接至主机为例,说明本发明的资料传输控制方法。但本发明并不限定于固态硬盘,也可以运用于硬盘驱动器。
[0020]请参照图1,其所绘示本发明固态硬盘与主机的连接示意图。根据本发明的实施例,主机112以及固态硬盘110符合SATA 3.0的规格,并且固态硬盘110是为支持NCQ的储存装置,而主机112也是支持NCQ的主机。
[0021]如图1所示,主机112利用SATA总线120连接至固态硬盘110中的控制单元101,使得主机112与固态硬盘101之间可以进行指令、写入资料与读取资料的传递。
[0022]再者,固态硬盘110中包括一高速缓存103与一闪存105。控制单元101连接至闪存105与高速缓存103。
[0023]高速缓存103连接至控制单元101用以暂时储存主机120输入的写入资料、或者暂时储存主机120要求的读取资料。
[0024]亦即,当主机112发出写入指令时,控制单元101先将写入资料暂存于高速缓存103,之后再将写入资料由高速缓存103转存至闪存105。当主机112发出读取指令时,控制单元101由闪存105中提取读取资料并暂存于高速缓存103,之后再将高速缓存103中的读取资料输出至主机112。
[0025]请参照图2,其为SATA规格中主机与固态硬盘之间在链接层(link layer)的基元(primitive)传递示意图。其为固态硬盘110传递多笔框资料至主机112的示意图。而基元(primitive)亦可称为原指令。
[0026]如图所示,于时间点TO之前,主机112与固态硬盘110之间没有任何框资料传输(frame transmiss1n)需要进行时,主机112与固态硬盘110都会自行发出SYNC基元至对方,用以通知对方现在并未有任何框资料传输需要被进行。另外,当主机112或者固态硬盘110无法收到对方的SYNC基元时,即可确定SATA总线120已经被拔除而没有达成连接了。
[0027]于时间点Tl,固态硬盘110需要传送资料(例如读取资料)至主机112,因此发出X_RDY基元用以通知主机112框资料传输已经准备就绪(frame transmiss1n is ready)。
[0028]于时间点T2,主机112发出R_RDY基元,用以响应固态硬盘110已