首页> 中国专利> SATA主控装置及SATA外围装置之间所传送的损坏控制字元的检测及修正方法

SATA主控装置及SATA外围装置之间所传送的损坏控制字元的检测及修正方法

摘要

本发明提供一种在SATA主控装置以及SATA外围装置之间所传送的控制字元的修正方法,所述的方法包含有分析数据传送或数据接收的目前状态、先前传送的控制字元或先前接收的控制字元;依据所述的数据传送或数据接收的目前状态、所述的先前传送的控制字元或所述的先前接收的控制字元中的至少之一来选择至少一候选控制字元;依据所述的至少一候选控制字元以及接收到之当前控制字元产生预测控制字元,以预测当前控制字元的识别身份;以及当所述的预测控制字元与所述的当前控制字元不同时,以所述的预测控制字元取代所述的当前控制字元。

著录项

  • 公开/公告号CN101882096A

    专利类型发明专利

  • 公开/公告日2010-11-10

    原文格式PDF

  • 申请/专利权人 联发科技股份有限公司;

    申请/专利号CN201010225259.8

  • 发明设计人 刘铨;曾宝庆;

    申请日2007-02-12

  • 分类号G06F11/14;G06F13/38;

  • 代理机构北京三友知识产权代理有限公司;

  • 代理人任默闻

  • 地址 中国台湾

  • 入库时间 2023-12-18 01:00:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-02-17

    授权

    授权

  • 2010-12-22

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20070212

    实质审查的生效

  • 2010-11-10

    公开

    公开

说明书

本申请为中国专利申请CN200710084040.9的分案申请,原申请的申请日为2007年2月12日,发明名称为:SATA主控装置及SATA外围装置之间所传送的损坏控制字元的检测及修正方法。

技术领域

本发明是关于序列式进阶技术附接(serial advanced technologyattachment,SATA)装置,尤指用来修正因为噪声干扰而造成损坏的控制字元的方法。

背景技术

在SATA协议中,SATA主控装置与SATA外围装置两者间由信息框结构(Frame Information Structure,FIS)来互相交换信息,其中每一个信息框结构由一些双字组(Dword)所构成,而这些双字组则用来供主控装置与外围装置间进行信息传递。SATA主控装置与SATA外围装置利用控制字元(primitives)来进行控制以及提供串行传输线路的状态,每一个控制字元亦由一双字组所构成。除此之外,控制字元也可用来实现主控装置与外围装置之间的联机建立程序(handshaking)。

请参照图1,图1为SATA协议中控制字元的字节内容查阅表10的示意图。每一个控制字元包含有四字节,分别为第一字节12、第二字节14、第三字节16以及第四字节18。

请参照图2,图2为一主控装置与一外围装置之间发送一信息框(frame)的一范例的示意图。主控装置可以是传送器100与接收器200的其中的一装置,而外围装置即为传送器100与接收器200之中的另一装置。如图2所示,传送器100传送一连串的数据或控制字元102~188至接收器200,而接收器200便响应控制字元202~288并将其传送到传送器100。

如图2所示,一开始时,传送器100于同步控制字元之后紧接着传送加扰数据封包(scrambled data packet)102、104至接收器200,请注意,符号“XXXX”代表加扰数据值,用来减少电磁干扰(EMI)的影响,而加扰数据封包102、104并非控制字元。当传送器100预备开始传送一信息框给接收器200时,传送器100输出一预备传送(X_RDY)控制字元用以指示传送器100已经预备好可以传送负载数据至接收器200,在本范例中,传送器100送出两个预备传送控制字元106、108,并发出一接续传送(CONT)控制字元110以避免重复输出相同的控制字元,接着输出一连串的加扰数据封包112~118。传送器100持续这个运作直到接收器200响应对应于预备传送控制字元的一预备接收(R_RDY)控制字元。预备接收控制字元用来指示接收器200已经预备好可以接收负载数据,在本范例中,接收器200送出两个预备接收控制字元214、216,并发出一接续传送控制字元218,接着输出一连串的加扰数据封包220~224,直到传送器100开始传送所述的信息框。

传送器100送出一信息框开始(start of frame,SOF)控制字元120至接收器200,用来指示即将开始传送信息框。之后,传送器100送出一类别指示标(type indicator)122用以指示即将被传送到接收器200的信息框结构的类别,接着送出复数个数据封包124~130。当接收器200接收到从传送器100传来的数据时,接收器200便依次输出数据接收中(reception in progress,R_IP)控制字元226、228、接续传送控制字元230以及加扰数据232~238至传送器100。当传送器100暂时没有负载数据要被传送时,便输出一暂停(HOLD)控制字元,如图2所示,传送器100依次输出暂停控制字元132、134、接续传送控制字元136、加扰数据138~142以及另一个暂停控制字元144,另一方面,接收器200会利用暂停响应(hold acknowledge,HOLDA)控制字元240、242来响应已收到暂停控制字元,并接着输出接续传送控制字元244以及加扰数据246~252。

传送器100完成送出负载数据中的数据封包146~150后,接着送出循环冗余检查(cyclic redundancy check,CRC)数据152以及信息框结束(end offrame,EOF)控制字元154。之后,当等待从接收器200所响应的接收状态的期间,传送器100连续输出等待结束(wait for frame termination,WTRM)控制字元156~158、接续传送控制字元162以及加扰数据164~170。在这个期间,接收器200同时完成接收从传送器100所传来的负载数据,并依次输出数据接收中控制字元254、256、接续传送控制字元258以及加扰数据260、262。在接收器200已经完成接收所有的负载数据、循环冗余检查(CRC)152以及信息框结束控制字元154,并确认循环冗余检查(CRC)没问题后,接收器200便依次输出接收正确(R_OK)控制字元264、266、接续传送控制字元268以及加扰数据270~278。如果循环冗余检查(CRC)发现有问题,接收器200则输出接收错误(reception error,R_ERR)控制字元。一旦传送器100接收到接收器200所响应的接收正确控制字元,传送器100便输出同步(SYNC)控制字元172、174并接着输出接续传送控制字元176以及加扰数据178~188。当传送器100处于闲置状态时,传送器100便输出同步控制字元以让传送器100以及接收器200达到同步,此时,接收器200将传送出同步控制字元280、282、接续传送控制字元284以及加扰数据286、288以作为响应。

上述机制用来说明于不具传送问题时传送一信息框中的负载数据的情形,然而,噪声可能干扰控制字元以及数据的传送,如此一来,将造成传送器100以及接受器200之间通讯上的问题。举例来说,如果接收器200无法解码传送器所送出的信息框开始控制字元,接收器200将一直持续的送出预备接收控制字元,但是,传送器100并不知道接收器200没有接收到信息框开始控制字元,而持续送出数据至接收器200直到所述的数据传送完成才送出等待结束控制字元至接收器200。因为在数据传送开始时,接收器200从未接收到信息框开始控制字元,因此接收器200将以同步控制字元来响应所述的等待结束控制字元,也因为接收器200并不会送出接收正确或接收错误控制字元,所以传送器100以及接收器200之间的数据传输可能在这个时候悬宕(hang)而失败。

如果噪声干扰而造成暂停控制字元、暂停响应控制字元、接续传送控制字元或信息框结束控制字元损坏时,将会造成另一个潜在的问题。假若这些控制字元受噪声影响而损坏,如此一来,可能导致错误的数据传送长度,如果循环冗余检查或者8位到10位的解码无法检验出这个问题,那么将导致系统运作失败而死机。

此外,如果噪声干扰而造成暂停控制字元、暂停响应控制字元、接续传送控制字元损坏,传送器100可能送出太多数据而造成接收器200的先进先出队列产生数据溢出的情形。由于噪声是无法完全消除,所以必须有克服因噪声干扰造成控制字元损坏的方法以解决上述的问题。

发明内容

鉴于现有技术中存在的问题,本发明的目的之一在于提供一种一SATA主控装置以及一SATA外围装置之间所传送的损坏控制字元的修正方法。

在本发明一实施例中提供一种在SATA主控装置以及SATA外围装置之间所传送的控制字元的修正方法,所述的方法包含有分析数据传送或数据接收的目前状态、先前传送的控制字元或先前接收的控制字元;依据所述的数据传送或数据接收的目前状态、所述的先前传送的控制字元或所述的先前接收的控制字元中的至少之一来选择至少一候选控制字元;依据所述的至少一候选控制字元以及接收到之当前控制字元产生预测控制字元,以预测当前控制字元的识别身份;以及当所述的预测控制字元与所述的当前控制字元不同时,以所述的预测控制字元取代所述的当前控制字元。

在本发明一实施例中提供一种在SATA主控装置以及一SATA外围装置之间传送的控制字元的修正方法,所述的方法包含有将接收的当前控制字元的至少一位置与复数个可能控制字元的至少一位置进行比较,以产生比较结果;依据所述的比较结果来决定预测控制字元,以预测当前控制字元的识别身份;以及以所述的预测控制字元取代所述的当前控制字元。

本发明的有益效果在于,提供一种在一序列式进阶技术附接主控装置以及一SATA外围装置之间所传送的损坏控制字元的修正方法,用以解决由于噪声干扰造成控制字元损坏而降低SATA主控装置和SATA外围装置之间的数据传输效率的问题。

附图说明

图1为SATA协议中控制字元的字节内容的查阅表的示意图。

图2为主控装置与外围装置之间发送一信息框的一范例的示意图。

图3为依据本发明第一实施例所绘的控制字元预测系统的功能方块图。

图4为依据本发明第二实施例所绘的控制字元预测系统的功能方块图。

图5为依据本发明第三实施例所绘的控制字元预测系统的功能方块图。

图6为依据本发明第四实施例所绘的控制字元预测系统的功能方块图。

附图标号:

300                                控制字元预测系统

10                                 查阅表

12                                 第一字节

14                                 第二字节

16                                 第三字节

18                                 第四字节

100                                传送器

200                                接收器

106、108、110、120、122、132、     控制字元

134、136、144、152、154、156、

158、160、162、172、174、176、

214、216、218、226、228、230、

240、242、244、254、256、258、

264、266、268、280、282、284

124、126、128、130、146、148、数据封包

150

102、104、112、114、116、118、加扰数据

138、140、142、164、166、168、

170、178、180、182、184、186、

188、202、204、206、208、210、

212、220、222、224、232、234、

236、238、246、248、250、252、

260、262、270、272、274、276、

278、286、288

300、320、340、360            控制字元预测系统

302、322、342、362            控制字元解码电路

304、344                      延迟电路

306、326、346、364            控制字元编码规则表

324                           控制逻辑电路

具体实施方式

本发明提供一种在一序列式进阶技术附接主控装置以及一SATA外围装置之间所传送的损坏控制字元(primitives)的修正方法,以下结合附图对本发明进行详细说明。

在说明书及权利要求书当中使用了某些词汇来指称特定的元件。所属领域中具有通常知识者应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明书及权利要求书并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的准则。在通篇说明书及权利要求项当中所提及的“包含”为一开放式的用语,故应解释成“包含但不限定于”。以外,“耦接”一词在此包含任何直接及间接的电气连接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述的第一装置可直接电气连接于所述的第二装置,或透过其它装置或连接手段间接地电气连接至所述的第二装置。

请注意,由于控制字元在传送器100以及接收器200之间的传送会受到噪声干扰而损坏,所以需要一种方法来预测原始控制字元并修正损坏控制字元使之成为预测控制字元,本说明书提供复数个实施例来预测损坏控制字元的实际值,同时可以合并复数个实施方式来提高预测的精准度。对每一个实施例的说明请同时参照图1以及图2。

首先,一些控制字元仅用于特定的传送状态。举例来说,接收器200会送出一预备接收控制字元到传送器100,然后接收器200会预期接收一信息框开始控制字元以便开始信息框的传送,所以,接收器200在送出预备接收控制字元时,可以预测一损坏控制字元为信息框开始控制字元。此外,暂停控制字元、暂停响应控制字元、接续传送控制字元以及信息框结束控制字元将仅于数据传送状态或数据接收状态中被修正。举例来说,只有当接收器200在数据接收中状态、直接存储器存取结束(direct memory access terminate,DMAT)状态、暂停响应状态或暂停状态时,才会预期接收信息框结束控制字元,在这些状态中,如果可以决定损坏控制字元的最有可能值,那么便可以预测信息框结束控制字元;同理,只有当接收器200处于数据接收中状态、直接存储器存取结束状态、暂停响应状态、暂停状态或当传送器100处于暂停响应状态、暂停状态或数据传送状态时,才会预期接收暂停控制字元、暂停响应控制字元以及接续传送控制字元。

除了考虑数据传送以及数据接收的目前状态之外,先前所接收的控制字元或之后接收的控制字元也可用来预测损坏控制字元的值。可以分析三个、四个或五个连续控制字元来决定损坏控制字元的识别身份,其中损坏控制字元可以是被分析的连续控制字元中的一个。

接续传送控制字元会由于其所处于的操作状况而便于被预测出来,如图2所示,接续传送控制字元永远跟随于两个相同的控制字元之后,而且常常后续会跟随着加扰数据,由于使用接续传送控制字元防止重复传送相同的控制字元,这种做法会存在遭受电磁干扰的问题。因为接续传送控制字元紧跟随于两个完全相同的控制字元之后,如此一来,这样的特定数据类型便会使得接续传送控制字元容易被预测,也就是说,如果一损坏控制字元紧跟于两个完全相同的控制字元之后,这个损坏控制字元便很可能是接续传送控制字元,另一方面,如果一接续传送控制字元紧跟于两个控制字元之后,其中一个控制字元被损坏而另一个控制字元并未损坏,则这个损坏控制字元可以被预测是与另一个未损坏的控制字元相同。

如图1所示,损坏控制字元中一个或多个字节的内容亦可用来预测该损坏控制字元的实际识别身份。举例来说,当损坏控制字元中第三字节或第四字节具有内容D23.1,则可以预测这个损坏控制字元的识别身份为信息框开始控制字元,除此之外还可以执行进一步的检查以确保预测结果的精确性,也就是说,检查其它字节的内容(例如所述的损坏控制字元的第二、第三以及第四字节)以确认这些字节与其它可能控制位的相对应内容并不相同,此外,每一个损坏控制字元的32或40个位中的片段也可与复数个控制字元中的已知位值作比较以预测所述的损坏控制字元的识别身份。损坏控制字元中一预定数量的位可以与可能的控制字元中一预定数量的位进行比较,举例来说,如果损坏控制字元的40个位中的23个最低有效位(Least Significant Bit,LSB)包含接续传送控制字元的23个最低有效位,那么可以预测这个损坏控制字元为接续传送控制字元。

信息框结束控制字元也可利用相同的方法来预测。当损坏控制字元的第一字节具有内容K28.3、第二字节具有内容D21.5以及第三字节或第四字节具有内容D21.6,则可以预测这个损坏控制字元的识别身份为信息框结束控制字元。也可以执行更进一步的检查来确认所述的损坏控制字元的第三字节以及第四字节与其它可能控制字元中相对应的内容不相同。

当损坏控制字元的第一字节具有内容K28.3、第二字节具有内容D10.5以及第三字节或第四字节具有内容D25.4时,可以预测这个损坏控制字元的识别身份为接续传送控制字元。也可以执行更进一步的检查来确认所述的损坏控制字元的第二字节、第三字节以及第四字节与其它可能控制字元相对应的内容不相同。

当损坏控制字元的第一字节具有内容K28.3、第二字节具有内容D10.5以及第三字节或第四字节具有内容D21.6时,可以预测这个损坏控制字元的识别身份为暂停控制字元也可以执行更进一步的检查来确认所述的损坏控制字元的第三字节以及第四字节与其它可能控制字元相对应的内容不相同。

当损坏控制字元的第一字节具有内容K28.3、第二字节具有内容D10.5以及第三字节或第四字节具有内容D21.4时,可以预测这个损坏控制字元的识别身份为暂停响应控制字元也可以执行更进一步的检查来确认所述的损坏控制字元的第三字节以及第四字节与其它可能控制字元相对应的内容不相同。

请参照图3,图3为依据本发明第一实施例所绘的控制字元预测系统300的功能方块图。如图3所示,控制字元预测系统300包含控制字元解码电路302、延迟电路304以及控制字元编码规则表306。控制字元解码电路302用来接收一连串的控制字元作为输入信号,在控制字元解码电路302接收每一个控制字元期间,如果控制字元损坏,控制字元解码电路302则会预测控制字元的值,并将这个控制字元送到延迟电路304,延迟电路304便加入一控制字元周期的延迟,并且于控制字元解码电路302接收下一个控制字元时,输出先前所接收的控制字元至控制字元解码电路302。此外,控制字元解码电路302从控制字元编码规则表306读取信息以决定控制字元应所述的要有的实际位以及字节的数值。而控制字元解码电路302便利用一个或更多个先前接收的控制字元、目前接收的控制字元以及依据控制字元编码规则表306所对应的标准控制字元的数值等信息来预测损坏控制字元的值。

请参照图4,图4为依据本发明第二实施例所绘的控制字元预测系统320的功能方块图。如图4所示,控制字元预测系统320包含控制字元解码电路322、控制字元编码规则表326以及控制逻辑电路324。控制字元解码电路322接收一连串的控制字元来作为输入信号,并预测控制字元的值以及输出预测控制字元。其中会复制一份预测控制字元并传送到控制逻辑电路324,用来不断追踪数据传送以及数据接收的目前状态。控制逻辑324将输出目前状态到控制字元解码电路322,控制字元解码电路322将利用这些信息连同从控制字元编码规则表326所得到的信息来预测损坏控制字元的值。

请参照图5,图5为依据本发明第三实施例所绘的控制字元预测系统340的功能方块图。控制字元预测系统340与图3所示的控制字元预测系统300相似,但有一些小小的差异:图5的延迟电路344具有不同的配置方式。同时输入所接收的控制字元至延迟电路344以及控制字元解码电路342,而控制字元解码电路342也接收先前从延迟电路344所接收的控制字元,且控制字元解码电路342利用先前所接收的控制字元的信息连同目前接收的控制字元及控制字元编码规则表346所读取的信息来预测损坏控制字元的值。

请参照图6,图6为依据本发明第四实施例所绘的控制字元预测系统360的功能方块图。如图6所示,控制字元预测系统360包含控制字元解码电路362以及控制字元编码规则表364。控制字元解码电路362接收一目前控制字元并且比较所述的目前控制字元的位以及字节与包含在控制字元编码规则表364的标准控制字元值。其中于复数个候选标准控制字元中,会依据最相近的一标准控制字元来预测所述的目前控制字元。而为了能让损害控制字元在内容上比起其它的候选控制字元更接近一特定候选控制字元,则损坏控制字元与所述的特定候选控制字元之间的海明距离(hamming distance)比起其它的候选控制字元来说最小。海明距离经由对候选控制字元以及损坏控制字元两者中的位以一个位接一个位的方式来执行互斥或(XOR)运算而量测出来。

请注意,损坏控制字元的识别身份的预测并不限定于信息框开始控制字元、暂停控制字元、暂停响应控制字元、接续传送控制字元以及信息框结束控制字元,对于其它的控制字元而言,亦可利用与这5个控制字元相同的预测方法来达到预测暨修正所述的损坏控制字元的目的,亦属本发明的范畴。然而,这5个控制字元的不正确预测可能导致传送器100以及接收器200之间的通讯以及数据传输停滞或悬宕,所以正确的预测操作是特别的重要。为了得到最好的结果,可以同时使用状态信息以及字节内容的比较来预测损坏控制字元的识别身份,一但确定了损坏控制字元的识别身份,预测控制字元便取代损坏控制字元以排除传送器100以及接收器200之间的通讯以及数据传输的问题。请注意,上述方法适用于SATA规格或串行附接小型计算机系统接口(Serial-Attached SCSI,SAS)规格以及其它类似的通讯标准。

除了预测损坏控制字元的识别身份之外,可以由同时分析先前所接收的控制字元以及紧接着该先前所接收的控制字元的目前接收控制字元,检测不正确的控制字元。举例来说,如果先前所接收的控制字元为接收正确控制字元而目前所接收的控制字元为接收错误控制字元,由于接收错误控制字元不会紧随着接收正确控制字元,那么便可推论目前所接收的控制字元为不正确的控制字元;同理,如果先前所接收的控制字元为预备传送控制字元而目前所接收的控制字元为等待结束控制字元,由于等待结束控制字元不会紧随着预备传送控制字元,那么便可推论目前所接收的控制字元为不正确的控制字元。所以,即使目前所接收的控制字元为有效控制字元并且遵守SATA规格,仍然可以检测出不正确的控制字元。

以上所述仅为本发明的较佳实施例,仅用于说明本发明,而非用于限定本发明,凡依本发明权利要求书所做的均等变化与修饰,皆应属本发明的涵盖范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号