一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据信号的裕量检测方法、装置及存储设备与流程

2021-05-18 15:22:00 来源:中国专利 TAG:
1.本申请涉及通信
技术领域
:,特别涉及一种数据信号的裕量检测方法、装置及存储设备。
背景技术
::2.存储设备一般包括存储控制器和非易失性闪存(nandflash)介质,该存储控制器通过非易失性闪存接口(nandflashinterface,nfi)总线与该nandflash介质连接,并可以通过该nfi总线向nandflash介质写入数据,或者从nandflash介质中读取数据。其中,存储控制器向nandflash介质写入数据时,存储控制器为数据的发送端,nandflash介质为数据的接收端;存储控制器从nandflash介质中读取数据时,nandflash介质为数据的发送端,存储控制器为数据的接收端。3.在读取和写入数据的过程中,数据的发送端会通过nfi总线向接收端发送数据信号(datasignal,dq)和数据锁存信号(datastrobesignal,dqs)。数据的接收端可以在dqs的边沿处对dq进行采样,并基于参考电源端提供的参考电压(也称为判决电平)对该采样得到的电压进行判决,从而解码得到数据。为了确保接收端能够正确采样dq,发送端发送的dqs的边沿需与dq的边沿或中心位置对齐。但随着nfi总线的数据传输速率的持续提升,dqs和dq的周期减小,dqs和dq经nfi总线传输到接收端后,dqs的边沿出现的偏差对dq的采样精度的影响较大,导致存储控制器读写数据时容易出现误码。4.相关技术中,一般通过示波器的余辉测试功能测试接收端接收到的dq的信号眼图,然后基于该眼图量测dq的时序裕量,该时序裕量是指dq在每个周期内有效存在于接收端的时间范围。也即是,当dqs的边沿所处的时刻位于该时序裕量的范围内时,均可以确保能够正确解码dq。然后,开发人员可以基于量测得到的dq的时序裕量,对存储设备的相关参数(例如,dqs的时序或参考电压等)进行校准,以确保存储控制器读写数据的可靠性。但是,基于示波器测试得到的信号眼图量测dq的时序裕量的方式效率较低。技术实现要素:5.本申请提供了一种dq的裕量检测方法、装置及存储设备,可以解决相关技术中通过示波器检测时序裕量时效率较低的问题,技术方案如下:6.一方面,提供了一种dq的裕量检测方法,应用于该dq的接收端,该方法可以包括如下步骤。7.基于参考电压集合包括的多个参考电压,调整该参考电源端的电压。并基于参考时刻集合包括的多个参考时刻,调整该dq的发送端传输的dqs的边沿所处的时刻。在调整过程中,对于每个参考电压以及每个参考时刻,可以确定在该参考电源端的电压为该参考电压,且该dqs的边沿所处的时刻为该参考时刻时,对该dq进行解码得到的数据是否存在误码,得到该dq在每个参考电压下的时序裕量,以及在每个参考时刻下的电压裕量。其中,该时序裕量为该多个参考时刻中,使得该解码得到的数据不存在误码的参考时刻的范围,该电压裕量为该多个参考电压中,使得该解码得到的数据不存在误码的参考电压的范围。8.本申请提供的方法,dq的接收端可以通过调整参考电源端的电压,以及dqs的时序,实现对dq的时序裕量和电压裕量的自动检测,该检测过程无需外接其他检测设备,有效提高了检测的效率。9.可选的,该接收端可以包括:寄存器和分压电路,该分压电路的控制端与该寄存器连接,该分压电路的输出端与该参考电源端连接;该接收端可以通过调整该寄存器的值,以调整该分压电路的输出电压。10.通过在dq的接收端中设置与参考电源端连接的分压电路,可以实现对该参考电源的电压的灵活调节,从而便于检测dq在不同参考电压下的时序裕量。11.可选的,该接收端还可以包括:延迟线,该延迟线分别与用于锁存所述数据锁存信号的锁存器以及该接收端的输入输出接口连接;该接收端可以通过调整该延迟线的参数,从而调整dq的发送端传输的dqs的边沿所处的时刻。12.通过在dq的接收端中设置延迟线,可以实现对dqs的时序的灵活调节。13.可选的,检测dq在每个参考电压下的时序裕量,以及在每个参考时刻下的电压裕量的过程可以包括:14.调整该参考电源端的电压为该参考电压集合中的一个参考电压。在该参考时刻集合包括的多个参考时刻的范围内,调整该发送端传输的dqs的边沿所处的时刻,并检测基于当前的参考电压,以及调整后的该dqs对该dq进行解码得到的数据是否存在误码,以从该多个参考时刻中分别确定该dq的时序裕量的起始边界时刻和结束边界时刻。重复上述调整电压和确定时序裕量的操作,直至该参考电源端的电压遍历该参考电压集合。其中,该起始边界时刻为该多个参考时刻中,使得该解码得到的数据不存在误码的最小参考时刻。该结束边界时刻为该多个参考时刻中,使得该解码得到的数据不存在误码的最大参考时刻。15.在本申请实施例中,可以先固定参考电源端的电压为参考电压,并调整dqs的时序,从而得到每个参考电压下的时序裕量。16.可选的,该多个参考时刻可以按照递增的顺序排列,则确定该dq的时序裕量的起始边界时刻的过程可以包括:17.调整该发送端传输的dqs的边沿所处的时刻为该多个参考时刻中的第一目标参考时刻,该第一目标参考时刻为多个参考时刻中的第x个参考时刻,x为小于m/2的正整数,m为参考时刻集合包括的参考时刻的总数;检测基于当前的参考电压,以及调整后的该dqs对该dq进行解码得到的数据是否存在误码;若存在误码,则以第一步进长度增加该dqs的边沿所处的时刻,直至基于当前的参考电压,以及调整后的该dqs解码得到的数据不存在误码;以第二步进长度减小该dqs的边沿所处的时刻,直至基于当前的参考电压,以及调整后的该dqs解码得到的数据存在误码;将调整后的该dqs的边沿所处的时刻的下一个参考时刻确定为该dq的时序裕量的起始边界时刻;其中,该第二步进长度等于相邻两个该参考时刻的时间差,该第一步进长度大于该第二步进长度,且为该第二步进长度的整数倍。18.在确定起始边界时刻的过程中,先以较大的第一步进长度粗调dqs的时序,再以较小的第二步进长度细调dqs的时序,可以有效提高确定该起始边界时刻的效率。19.可选的,该确定该dq的时序裕量的结束边界时刻的过程可以包括:20.调整该发送端传输的dqs的边沿所处的时刻为该多个参考时刻中的第二目标参考时刻,该第二目标参考时刻为多个参考时刻中的第y个参考时刻,y为大于m/2的正整数,m为参考时刻集合包括的参考时刻的总数。检测基于当前的参考电压,以及调整后的该dqs对该dq进行解码得到的数据是否存在误码。若存在误码,则以第一步进长度减小该dqs的边沿所处的时刻,直至基于当前的参考电压,以及调整后的该dqs解码得到的数据不存在误码。以第二步进长度增大该dqs的边沿所处的时刻,直至基于当前的参考电压,以及调整后的该dqs解码得到的数据存在误码。将调整后的该dqs的边沿所处的时刻的上一个参考时刻确定为该dq的时序裕量的结束边界时刻。其中,该第二步进长度等于相邻两个该参考时刻的时间差,该第一步进长度大于该第二步进长度,且为该第二步进长度的整数倍。21.在确定结束边界时刻的过程中,先以较大的第一步进长度粗调dqs的时序,再以较小的第二步进长度细调dqs的时序,可以有效提高确定该结束边界时刻的效率。22.可选的,检测dq在每个参考电压下的时序裕量,以及在每个参考时刻下的电压裕量的过程可以包括:23.调整该dq的发送端传输的dqs的边沿所处的时刻为该多个参考时刻中的一个参考时刻。在该参考电压集合包括的多个参考电压的范围内,调整该参考电源端的电压,并检测基于当前的参考时刻,以及调整后的该参考电源端的电压对该dq进行解码得到的数据是否存在误码,以从该多个参考电压中分别确定dq的电压裕量的起始边界电压和结束边界电压。重复上述调整时刻和确定电压裕量的操作,直至该dqs的边沿所处的时刻遍历该参考时刻集合。其中,该起始边界电压为该多个参考电压中,使得该解码得到的数据不存在误码的最小参考电压,该结束边界电压为该多个参考电压中,使得该解码得到的数据不存在误码的最大参考电压。24.在本申请实施例中,也可以先固定dqs的边沿所处的时刻为参考时刻,并调整参考电源端的电压,从而得到每个参考时刻下的电压裕量。25.可选的,该接收端可以为存储控制器,该发送端可以为存储介质,且该存储控制器可以通过接口总线与该存储介质连接;在调整该dq的发送端传输的dqs的边沿所处的时刻之前,该方法还可以包括:26.按照目标速率向该存储介质中写入测试数据;向该存储介质发送针对该测试数据的读取指令;接收该存储介质传输的携带有该测试数据的该dq以及该dqs;其中,该目标速率为该接口总线的工作速率,或者为该接口总线的工作模式所对应的总线速率范围的下限速率。27.在本申请实施例中,若存储控制器需要对读取到的dq的裕量进行检测,则该目标速率可以为该接口总线的工作模式所对应的总线速率范围的下限速率。按照该下限速率写入测试数据,可以确保该测试数据能够正确写入存储介质,进而可以确保对该读取到的dq的裕量进行检测得到检测结果的可靠性。若存储控制器需要对写入至存储介质的dq的裕量进行检测,则可以按照正常的工作速率写入测试数据,以确保检测结果能够反映存储设备的实际运行情况。28.可选的,基于参考电压集合包括的多个参考电压,调整该参考电源端的电压的过程可以包括:响应于检测指令,基于参考电压集合包括的多个参考电压,调整该参考电源端的电压;或者,若检测到存储设备的物理参数满足检测触发条件,基于参考电压集合包括的多个参考电压,调整该参考电源端的电压。29.在本申请实施例中,dq的接收端可以在检测指令的指示下,触发dq的裕量检测流程,或者,也可以在检测到物理参数满足检测触发条件时,自动触发dq的裕量检测流程。30.另一方面,提供了一种数据信号的裕量检测装置,该装置包括一个或多个模块,该一个或多个模块可以用于实现上述方面所提供的dq的裕量检测方法。31.又一方面,提供了一种数据信号的裕量检测装置,该装置包括:存储器,处理器及存储在该存储器上并可在该处理器上运行的计算机程序,该处理器执行该计算机程序时实现如上述方面所提供的dq的裕量检测方法。32.再一方面,提供了一种非易失性存储介质,该非易失性存储介质中存储有指令,当该非易失性存储介质在处理器上运行时,使得处理器执行如上述方面所提供的dq的裕量检测方法。33.再一方面,提供了一种芯片,该芯片包括:可编程逻辑电路和/或程序指令,当该芯片运行时用于实现如上述方面所提供的dq的裕量检测方法。34.再一方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在处理器上运行时,使得处理器执行上述方面所提供的dq的裕量检测方法。35.再一方面,提供了一种存储设备,该存储设备包括:存储控制器以及存储介质,该存储控制器通过接口总线与该存储介质连接,且该存储控制器和/或该存储介质包括如上述方面提供的数据信号的裕量检测装置或芯片。36.本申请实施例提供了一种数据信号的裕量检测方法、装置及存储设备,该数据信号的接收端可以通过调整参考电源端的电压,以及dqs的时序,实现对dq的时序裕量以及电压裕量的自动检测。由于该检测过程无需外接其他检测设备,有效提高了检测的效率。并且,由于该时序裕量和电压裕量是由数据信号的接收端基于实际解码得到的数据是否存在误码确定的,因此可以确保检测结果的可靠性。附图说明37.图1是本申请实施例提供的一种存储设备的结构示意图;38.图2是本申请实施例提供的一种dqs和dq的时序图;39.图3是本申请实施例提供的一种存储控制器的结构示意图;40.图4是本申请实施例提供的另一种存储控制器的结构示意图;41.图5是本申请实施例提供的一种dq的裕量检测方法的流程图;42.图6是本申请实施例提供的另一种dq的裕量检测方法的流程图;43.图7是本申请实施例提供的一种dq的二维裕量的示意图;44.图8是本申请实施例提供的又一种dq的裕量检测方法的流程图;45.图9是本申请实施例提供的再一种dq的裕量检测方法的流程图;46.图10是本申请实施例提供的一种存储介质的结构示意图;47.图11是本申请实施例提供的一种确定第一dq的时序裕量的起始边界时刻的方法流程图;48.图12是本申请实施例提供的一种调整dqs的时序的示意图;49.图13是本申请实施例提供的一种确定第一dq的时序裕量的结束边界时刻的方法流程图;50.图14是本申请实施例提供的另一种调整dqs的时序的示意图;51.图15是本申请实施例提供的一种确定第一dq的时序裕量的起始边界时刻的算法流程图;52.图16是本申请实施例提供的一种确定第一dq的时序裕量的结束边界时刻的算法流程图;53.图17是本申请实施例提供的另一种dq的二维裕量的示意图;54.图18是本申请实施例提供的一种数据信号的裕量检测装置的结构框图;55.图19是本申请实施例提供的一种检测模块的结构示意图;56.图20是本申请实施例提供的另一种检测模块的结构示意图;57.图21是本申请实施例提供的另一种数据信号的裕量检测装置的结构框图。具体实施方式58.下面结合附图详细介绍本申请实施例提供的数据信号的裕量检测方法、装置及存储设备。59.图1是本申请实施例提供的一种存储设备的结构示意图,如图1所示,该存储设备可以包括存储控制器01,以及一个或多个存储介质02。例如,图1中仅示出了一个存储介质02。其中,每个存储介质02可以为nandflash介质,也可以称为nandflash芯片或者nandflash颗粒,该nandflash介质具有容量大,改写速度快等优点,适用于大量数据的存储。该存储控制器01中可以设置有多个输入输出(input/output,io)接口011,每个存储介质02中也设置有一个io接口021,每个存储介质02的io接口021可以通过一条nfi总线03与该存储控制器01的一个io接口011连接。60.可选的,该存储设备可以为不同尺寸的固态硬盘(solidstatedrive,ssd)、插卡(addincard,aic)设备、小型串行高级技术附件(miniserialadvancedtechnologyattachment,msata)接口固态硬盘、下一代模组(nextgenerationformfactor,ngff)或者其他自定义板卡等。61.在本申请实施例中,该nfi接口总线03可以包括多条数据线路,每条数据线路可以用于传输一路dq,则该多条数据线路可以并行传输多路dq。例如,nfi接口总线03可以包括8条数据线路,该8条数据线路可以并行传输8路dq:dq0至dq7。62.图2是本申请实施例提供的一种dqs和dq的时序图,参考图2可以看出,该dqs为差分信号,其包括dqs_p和dqs_n两个信号。接收端接收到发送端发送的dqs和携带有数据的dq后,可以在该dqs的边沿对dq进行采样,并可以将解码得到的电压与参考电源端vref提供的参考电压vref进行对比。若该采样电压大于参考电压vref,则可以确定接收到的数据为1,若采样电压小于参考电压vref,则可以确定接收到的数据为0,由此实现对dq的解码。其中,dqs的边沿可以是指dqs的上升沿或下降沿。63.为了确保接收端能够基于dqs正确采样dq,如图2所示,需确保dq在dqs的边沿到来之前到达接收端,且在dqs的边沿到来之后在接收端稳定保持一段时间。其中,在dqs的边沿到来之前,dq有效存在于接收端的时长tds可以称为建立时间(setuptime)。在dqs的边沿到来之后,dq在接收端有效保持的时长tdh可以称为保持时间(holdtime)。64.对于低电平的dq,当接收端接收到的dq的电压小于或等于vil(ac)max时,可以确定该dq有效,且在dq的电压大于vil(dc)max时,可以确定该dq无效。对于高电平的dq,当接收端接收到的dq的电压大于或等于vih(dc)min时,可以确定该dq有效,且在dq的电压小于vih(ac)min时,可以确定该dq无效。其中,vil(ac)max、vil(dc)max、vih(dc)min和vih(ac)min均为协议规定的阈值电压。65.在本申请实施例中,可以将dq到达接收端后在该接收端有效保持的时间范围称为dq的时序裕量(margin),该时序裕量也可以称为dq的有效宽度或者有效窗口的长度。当dqs的边沿所处的时刻在该时序裕量内变化时,均可以确保正确解码dq。结合图2可以看出,该时序裕量可以为该建立时间与保持时间之和。并且,在本申请实施例中,可以将能够确保dq正确解码的参考电压的变化范围称为dq的电压裕量。也即是,在该电压裕量内调节参考电源端vref的电压,均可以确保正确解码dq。66.在存储控制器01从存储介质02中读取数据时,即该存储控制器01作为接收端时,该dqs由存储介质02产生,且dqs的边沿与dq的沿对齐,以确保存储控制器01能有效读取该存储介质02传输的数据。在存储控制器01将数据写入存储介质02时,即该存储介质02作为接收端时,dqs由存储控制器01产生,且dqs的边沿与dq的中心位置对齐,以确保存储介质02能够有效存储该存储控制器01写入的数据。其中,存储控制器01向存储介质02中写入数据的操作也可以称为写操作,或写方向的操作。存储控制器01从存储介质02中读取数据的操作也可以称为读操作,或读方向的操作。67.但是,dq和dqs经过传输链路达到接收端后,其相位通常会发生较大的变化。例如受工艺角,电压,温度(processcorner,voltage,temperature,pvt)等环境因素的影响,可能会导致接收端接收到的各个dq的有效宽度不同,各个dq之间的边沿也不再对齐,且dqs的边沿也不再与dq的边沿或中心位置对齐,进而导致存储控制器01无法准确读写数据。并且,随着信息和通信技术(informationandcommunicationtechnology,ict)行业的不断发展,客户对存储设备的每秒读写操作的次数(input/outputoperationspersecond,iops)的要求越来越高。由于存储控制器01与存储介质之间的nfi总线03的数据传输速率是影响iops的关键因素,因此nfi总线03的数据传输速率也不断提升。由此,导致dq的有效宽度进一步减小,存储控制器01读写数据时更容易出现误码。因此,如何准确测试nfi总线03传输的dq的时序裕量和电压裕量,进而确保全链路设计裕量足够,成为了存储设备可靠应用的关键。68.相关技术中,一方面可以通过示波器的余辉测试功能测试接收端接收到的dqs和dq的信号眼图,然后量测并确定dq的时序裕量和电压裕量。但是,该测试过程需要大量的时间、人力和物力,测试效率较低,增加了项目开发成本和周期。并且,该测试方法只能测试接收端的引脚(pin)处的信号波形,无法测试接收端的内核(die)实际接收到的信号的波形,测试准确性较低。此外,对于存储介质02在板卡上正反贴的场景,当存储介质02作为接收端进行测试时,需焊掉板卡上的一个存储介质02,导致测试链路负载减小,测试结果失真。而且该测试往往仅能针对单样本进行测试,无法覆盖不同工艺角的样本,可能会将不达标风险遗留到后续的大样本量的摸底和鉴定试验中,造成风险拦截滞后和测试资源浪费等问题。69.另一方面,还可以通过拉偏测试是否出现不可纠正(uncorrectable,unc)的错误数据的手段来判断dq的时序裕量和电压裕量的大小。例如可以拉偏频率、时序、温度和电压等参数进行测试。但是该方法是通过间接的测试方法来粗略估算时序裕量和电压裕量,无法实现对时序裕量和电压裕量的准确量化,测试准确性较低。并且,该测试方法需要测试人员手动调整测试参数,测试过程中需要大量的时间、人力和物力,效率较低,增加了项目开发成本和周期。70.本申请实施例提供了一种dq的裕量检测方法、装置及存储设备,该存储设备中数据信号的接收端可以实现对dq的裕量的自动检测,检测效率和准确率均较高。其中,该接收端可以为存储控制01,也可以为存储介质02。假设该接收端为存储控制器01,则如图3所示,该存储控制器01的io接口011中可以设置有分压电路0111,该存储控制器01的物理层中还可以设置有寄存器012。该分压电路0111分别与该寄存器012和参考电源端vref连接,该参考电源端vref还与存储介质02的io接口021连接。该参考电源端vref提供的参考电压可以作为该存储控制器01和存储介质02对接收到的dq进行解码时的判决电平。71.其中,存储控制器01内部的处理电路(图3中未示出)可以配置该寄存器012的参数,以调节该寄存器012的值,进而实现对分压电路0111的输出电压的调节。例如,参考图3,处理电路可以对寄存器012的refsel0、refsel1、refrange0、refrange1、refrange2和refrange3等参数进行配置,以调节该寄存器012的值。由于该存储控制器01中新增了分压电路0111,因此可以通过该分压电路0111对该参考电源端vref的电压进行灵活调节,以检测dq的电压裕量。72.图4是本申请实施例提供的一种存储控制器的物理层(physical,phy)的结构示意图,如73.图4所示,该存储控制器01中还可以设置有用于锁存dq和dqs的锁存器013、延迟锁相环(delay-lockedloop,dll)、延迟线(delayline)以及dll控制器(dllctrl)。该dll分别与该锁存器013、dl和dllctrl连接,该dl还与存储控制器的io接口011连接。该dll用于在dllctrl的控制下检测dqs的周期。存储控制器01内部的处理电路可以基于dll检测到的dqs的周期,确定参考时刻集合包括的参考时刻的个数,并可以将该dqs的周期划分为多个参考时刻,也即是,处理电路可以基于dqs的周期确定出参考时刻集合。该处理电路还可以通过调整dl的参数,来调整dqs的时序,即调整dqs的边沿所处的时刻,以便检测dq的时序裕量。74.参考图4,存储控制器的物理层可以通过nandflash控制(nandflashcontrol,nfc)接口与该处理电路连接。该存储控制器01中还可以设置有控制链路(commandlane,cmdlane)014。该控制链路014用于提供地址锁闭功能启用(addresslatchenable,ale)信号,指令锁存使能(commandlatchenable,cle)信号、读使能(readenable,ren)信号和写使能(writeenable,wen)信号等。dll可以通过时钟复位发生器(clockresetgenerator,crg)与锁存器013连接。如图4所示,物理层中还设置有zq电阻,存储控制器在上电(powerup)或者复位后,需要对该zq电阻进行校准操作。75.图5是本申请实施例提供的一种dq的裕量检测方法的流程图,该方法可以应用于存储设备中数据信号的接收端中,例如可以应用于存储控制器中。下文以该方法应用于存储控制器为例进行说明。参考图5,该方法可以包括:76.步骤101、基于参考电压集合包括的多个参考电压,调整参考电源端的电压。77.在本申请实施例中,该存储控制器中可以预先存储有包括多个参考电压的参考电压集合,该多个参考电压可以为开发人员预先配置的待检测的电压。78.可选的,如3所示,该存储控制器01可以通过处理电路调整寄存器012的值,以调整分压电路0111的输出电压,从而实现对该参考电源端vref的电压的调节。79.示例的,参考图3,该分压电路0111可以为电阻分压电路,该分压电路0111可以等效为串联在第一电源端vdd和第二电源端vss之间的两个电阻r1和r2,参考电源端vref可以与该两个电阻r1和r2之间的连接点连接。处理电路可以通过调整寄存器012的值,实现对该两个电阻r1和r2中至少一个电阻的阻值的调节,从而可以改变该分压电路0111输出至参考电源端vref的输出电压。80.步骤102、基于参考时刻集合包括的多个参考时刻,调整dqs的边沿所处的时刻。81.该dqs为存储介质向存储控制器发送dq时同步发送的。该存储控制器中可以预先存储有包括多个参考时刻的参考时刻集合,该多个参考时刻可以是存储控制器根据检测到的dqs的周期确定的,或者也可以为开发人员预先配置的待检测的时刻。如图4所示,该存储控制器01可以通过dl调整存储介质传输的dqs的时序,从而使得该dqs的边沿所处的时刻与不同的参考时刻对齐。82.可选的,该多个参考时刻可以是对dqs的周期进行等分确定的,该dqs的周期由nfi总线的数据传输速率决定,且可以通过dll检测得到。例如,存储控制器可以将dqs的周期等分为1023份,从而确定出1024个参考时刻。其中,每个参考时刻可以采用一个刻度值表示,比如可以采用1至1024表示该1024个参考时刻。83.步骤103、对于每个参考电压,以及每个参考时刻,确定在该参考电源端的电压为该参考电压,且该dqs的边沿所处的时刻为该参考时刻时,对dq进行解码得到的数据是否存在误码,得到该dq在每个该参考电压下的时序裕量,以及在每个该参考时刻下的电压裕量。84.其中,该时序裕量为该多个参考时刻中,使得该解码得到的数据不存在误码的参考时刻的范围,该电压裕量为该多个参考电压中,使得该解码得到的数据不存在误码的参考电压的范围。85.由于在本申请实施例中,存储控制器01既可以执行读方向的操作也可以执行写方向的操作,因此该存储控制器01可以分别对读方向的dq的裕量,以及写方向的dq的裕量进行检测。当然,若该存储设备中的存储介质02也具备裕量检测的功能,则也可以由该存储介质02对写方向的dq的裕量进行检测。86.其中,存储控制器01在对读方向的dq的裕量进行检测时,可以先以较低的数据传输速率向存储介质02写入测试数据,以确保写入的测试数据的准确性。然后,存储控制器01可以向存储介质发送针对该测试数据的读取指令。存储介质02进而可以响应于该读取指令,向存储控制器01传输携带有该测试数据的dq,以及dqs。存储控制器01进而可以基于该dqs,对该读方向的dq的裕量进行检测。87.存储控制器01在对写方向的dq的裕量进行检测之前,存储控制器01或者开发人员可以先基于读方向的dq的裕量的检测结果,对存储设备的相关参数(例如dl的参数或者参考电源端vref的电压)进行校准,以确保读方向的dq的裕量能够确保数据的正确解码,即确保存储控制器01能够正确读取数据。之后,存储控制器01可以按照正常的数据传输速率向存储介质02写入测试数据,并向存储介质02发送针对该测试数据的读取指令。存储介质02可以响应于该读取指令,向存储控制器01传输携带有该测试数据的dq,以及dqs。存储控制器01进而可以基于接收到的dqs,对该dq的裕量进行检测。由于已经可以确保存储控制器读01取到的测试数据是准确的,也即,存储控制器01读取到的测试数据即为实际写入至存储介质02中的测试数据,因此存储控制器01可以基于该存储介质02传输的dq,实现对存储控制器01传输至存储介质02的dq(即写方向的dq)的裕量检测。88.综上所述,本申请实施例提供了一种数据信号的裕量检测方法,dq的接收端可以通过调整参考电源端的电压,以及dqs的时序,实现对dq的时序裕量以及电压裕量的自动检测。由于该检测过程无需外接其他检测设备,也无需人工调整参数,因此有效提高了检测的效率,缩减了检测成本。并且,由于该时序裕量和电压裕量是由存储控制器基于实际解码得到的数据是否存在误码确定的,因此可以确保检测结果的可靠性。89.此外,本申请实施例提供的方法可以根据检测结果直接判断当前所测的存储设备样本的裕量是否满足要求,减弱了对样片数量和类型的依赖,解决了当前测试流程无法覆盖不同工艺角的样本而导致的样本量和数据量少的问题,有效提高了裕量检测的精度和效率,确保了存储设备能可靠地工作在不同的pvt状态下,且可以支持更高的数据传输速率。90.作为一种可选的实现方式,如图6所示,该dq的裕量检测方法可以包括如下流程:91.步骤201、存储控制器将参考电源端vref的电压设置为参考电压集合中的第一个参考电压,并标记a=1。92.其中,a可以用于表示当前参考电源端vref的电压已扫描的参考电压集合中的参考电压的个数。93.步骤202、存储控制器检测a是否小于等于n。若a小于等于n,则执行步骤203;若a不小于n,则执行步骤208。94.其中,n为该参考电压集合包括的参考电压的总数,且n为大于1的整数。当a≤n时,存储控制器可以确定该参考电源端vref的电压还未遍历参考电压集合,因此可以执行步骤203;若a>n,则可以确定参考电源端vref的电压已遍历参考电压集合,因此可以执行步骤207。95.步骤203、存储控制器以低数据传输速率写入训练数据。96.在本申请实施例中,存储控制器可以采用较低的数据传输速率向存储介质写入训练数据,以确保训练数据的正确写入。其中,该训练数据可以是存储控制器中预先存储的数据,例如可以是开发人员自定义的数据。97.步骤204、存储控制器进行读方向的dq的时序裕量检测。98.存储控制器可以向存储介质发送针对该训练数据的读取指令,并通过nfi总线接收该存储介质发送携带有训练数据的dq,以及dqs。存储控制器可以在该参考时刻集合包括的多个参考时刻的范围内,调整该dqs的边沿所处的时刻(即调整dqs的时序),并检测基于当前的参考电压,以及调整时序后的该dqs对dq进行解码得到的数据是否存在误码,从而得到读方向的dq在当前参考电压下的时序裕量。99.需要说明的是,在上述步骤204之后,存储控制器或者开发人员可以先基于读方向的dq的时序裕量的检测结果,对存储设备的相关参数进行校准,以确保读方向的dq的时序裕量能够确保数据的正确解码,即确保存储控制器能够正确读取数据。100.步骤205、存储控制器以正常数据传输速率写入训练数据。101.存储控制器可以再次以正常数据传输速率向存储介质写入训练数据。该正常数据传输速率是指存储控制器正常工作时,向存储介质写入数据时的数据传输速率。102.步骤206、存储控制器进行写方向的dq的时序裕量检测。103.存储控制器可以再次从存储介质中读取该训练数据。由于在上述步骤204之后,基于参数调整操作可以确保存储控制器读取到的训练数据的可靠性,因此存储控制器可以通过读取到的训练数据,检测写入的训练数据是否存在误码,即实现写方向的dq的时序裕量检测。104.步骤207、存储控制器将参考电源端vref的电压设置为参考电压集合中的下一个参考电压,并更新a=a 1。执行步骤202。105.存储控制器可以循环执行上述步骤202至步骤207,直至a>n。106.步骤208、存储控制器生成二维裕量示意图。107.在上述步骤202中,若存储控制器检测到a>n,则可以确定已完成对参考电压集合的遍历,因此可以基于检测得到的不同参考电压下的读方向的dq的时序裕量和写方向的dq的时序裕量,分别生成读方向的dq的二维裕量示意图,以及写方向的dq的二维裕量示意图。108.其中,该二维裕量示意图的横轴可以用于指示dqs的边沿所处的时刻,纵轴可以用于指示参考电源端vref的电压,示意图中的每个坐标处可以采用不同的图示表示基于该坐标处的参数解码得到的数据是否存在误码。109.示例的,假设对读方向的dq的裕量进行检测,参考电压集合包括参考电压v1至参考电压v10共10个参考电压,参考时刻集合包括t1至t15共15个参考时刻,则存储控制器最终生成的读方向的dq的二维裕量示意图可以如图7所示。该示意图中,白色圆圈表示有误码,黑色圆圈表示无误码。参考图7,若参考电源端vref的电压为参考电压v3,则当dqs的边沿所处的时刻为参考时刻t7至参考时刻t11时,对dq进行解码得到的数据不存在误码,即dq在参考电压v3下的时序裕量为t7至t11。从图7可以看出,参考电源端vref的电压为参考电压v6时,dq的时序裕量最大。若dqs的边沿所处的时刻为参考时刻t6,则当参考参考电源端vref的电压为参考电压v4至参考电压v8时,对dq进行解码得到的数据不存在误码,即dq在参考时刻t6下的电压裕量为v4至v8。从图7可以看出,dqs的边沿所处的时刻为参考时刻t9时,dq的电压裕量最大。110.存储控制器生成的二维裕量示意图能够直观体现不同参考电压下dq的时序裕量,便于工作人员基于该示意图调整存储设备的相关参数。111.根据上文描述可知,在该实现方式中,存储控制器可以将参考电源端vref的电压依次调整为参考电压集合中的每个参考电压,使得该参考电源端vref的电压遍历该参考电压集合。并且,在每次调整后,均可以对该参考电压下,读方向的dq的时序裕量,以及写方向的dq的时序裕量进行检测。最后即可基于检测得到的各个参考电压下的时序裕量,生成二维裕量示意图。112.需要说明的是,图6所示的方法流程中,步骤205和步骤206也可以删除,即存储控制器可以仅对读方向的dq的时序裕量进行检测。相应的,步骤203也可以在步骤201之前执行,即存储控制器可以先写入训练数据,再调节参考电压端的电压和dqs的时序,以进行读方向的dq的时序裕量的检测。113.同理,步骤203和步骤204也可以删除,即存储控制器可以仅对写方向的dq的时序裕量进行检测。相应的,步骤205也可以在步骤201之前执行,即存储控制器可以先写入训练数据,再调节参考电压端的电压和dqs的时序,以进行写方向的dq的时序裕量的检测。114.作为另一种可选的实现方式,如图8所示,该dq的裕量检测方法还可以包括如下流程:115.步骤301、存储控制器以低数据传输速率写入训练数据。116.在本申请实施例中,存储控制器可以采用较低的数据传输速率向存储介质写入训练数据。117.步骤302、存储控制器将读方向的dqs的边沿调整为参考时刻集合中的第一个参考时刻,并标记b=1。118.其中,b可以用于表示当前dqs的边沿所扫描的参考时刻集合中的参考时刻的个数。119.可选的,存储控制器可以向存储介质发送针对上述步骤301中写入的训练数据的读取指令,并通过nfi总线接收该存储介质发送携带有训练数据的dq,以及dqs。之后,存储控制器即可调整该dqs的时序,使其边沿所处的时刻为参考时刻集合中的第一个参考时刻,即使其边沿与第一个参考时刻对齐。120.步骤303、存储控制器检测b是否小于等于m。若b小于等于m,则执行步骤304;若b不小于m,则执行步骤306。121.其中,m为该参考时刻集合包括的参考时刻的总数,且m为大于1的整数。当b≤m时,存储控制器可以确定该dqs的边沿所处的时刻还未遍历参考时刻集合,因此可以执行步骤304;若b>m,则可以确定dqs的边沿所处的时刻已遍历参考时刻集合,因此可以执行步骤306。122.步骤304、存储控制器进行读方向的dq的电压裕量检测。123.存储控制器可以在该参考电压集合包括的多个参考电压的范围内,调整该参考电源端vref的电压,并检测基于当前的参考时刻,以及调整后的电压对dq进行解码得到的数据是否存在误码,从而得到读方向的dq在当前参考时刻下电压裕量的起始边界电压和结束边界电压。124.其中,该起始边界电压为该多个参考电压中,使得该解码得到的数据不存在误码的最小参考电压,该结束边界电压为该多个参考电压中,使得该解码得到的数据不存在误码的最大参考电压。125.步骤305、存储控制器将dqs的边沿调整为参考时刻集合中的下一个参考时刻,并更新b=b 1。执行步骤303。126.存储控制器可以循环执行上述步骤303至步骤305,直至b>m。127.步骤306、存储控制器生成读方向的dq的二维裕量示意图。128.在上述步骤303中,若存储控制器检测到b>m,则可以确定已完成对参考时刻集合的遍历,因此可以基于检测得到的不同参考时刻下的读方向的dq的电压裕量,生成读方向的dq的二维裕量示意图。129.需要说明的是,在本申请实施例中,存储控制器完成读方向的dq的电压裕量检测后,存储控制器或者开发人员可以先基于读方向的dq的时序裕量的检测结果,对存储设备的相关参数进行校准,以确保读方向的dq的时序裕量能够确保数据的正确解码,即确保存储控制器能够正确读取数据。130.步骤307、存储控制器以正常数据传输速率写入训练数据。131.存储控制器可以再次以正常数据传输速率向存储介质写入训练数据,并向存储介质发送针对该训练数据的读取命令,以指示存储介质发送携带有该训练数据的dq以及读方向的dqs。由于在上述步骤306之后,基于参数调整操作可以确保存储控制器读取到的训练数据的可靠性,因此存储控制器可以通过读取到的训练数据,检测写入的训练数据是否存在误码,即实现写方向的dq的电压裕量检测。132.步骤308、存储控制器将写方向的dqs的边沿调整为参考时刻集合中的第一个参考时刻,并标记b=1。133.存储控制器可以将存储介质发送的读方向的dqs作为写方向的dqs进行时序调整。134.步骤309、存储控制器检测b是否小于等于m。若b小于等于m,则执行步骤310;若b不小于m,则执行步骤312。135.步骤310、存储控制器进行写方向的dq的电压裕量检测。136.步骤311、存储控制器将dqs的边沿调整为参考时刻集合中的下一个参考时刻,并更新b=b 1。执行步骤309。137.步骤312、存储控制器生成写方向的dq的二维裕量示意图。138.上述步骤308至步骤312的实现过程可以参考步骤302至步骤306中的相关描述,此处不再赘述。139.根据上文描述可知,在该实现方式中,存储控制器可以将dqs的边沿所处的时刻依次调整为参考时刻集合中的每个参考时刻,使得该dqs的边沿所处的时刻遍历该参考时刻集合。并且,在每次调整后,均可以对该参考时刻下,读方向的dq的电压裕量,以及写方向的dq的电压裕量进行检测。最后即可基于检测得到的各个参考时刻下的电压裕量,生成二维裕量示意图。140.下文以该方法应用于存储控制器,并以先确定参考电压集合中每个参考电压下的时序裕量,进而确定dq的二维裕量为例,对该dq的裕量检测方法进行说明。如图9所示,该方法可以包括:141.步骤401、在业务运行过程中,检测存储设备的物理参数是否满足检测触发条件。142.在本申请实施例中,存储控制器可以在业务运行过程中,实时获取存储设备的物理参数,并检测该物理参数是否满足检测触发条件。若满足检测触发条件,则可以执行步骤402,即继续进行裕量检测。若该物理参数不满足检测触发条件,则可以继续运行业务,而无需继续执行下述步骤。143.可选的,该物理参数可以包括存储控制器自身的物理参数和该存储介质的物理参数中的一种或多种。例如,该物理参数可以包括pvt参数,比如可以包括温度、湿度、工作电压、数据传输速率以及数据传输量中的一种或多种。相应的,该检测触发条件可以包括下述条件中的一种或多种:144.温度的变化量大于温度阈值;湿度的变化量大于湿度阈值;工作电压的变化量大于电压阈值;数据传输速率大于速率阈值;以及,数据传输量大于业务量阈值。145.其中,该温度阈、湿度阈值、电压阈值、速率阈值和业务量阈值均可以是存储控制器中预先配置的,且可以是开发人员根据存储设备的应用需求配置的。146.需要说明的是,在本申请实施例中,针对dq的裕量检测流程也可以由测试人员人工触发。例如可以将安装有调试软件的测试设备通过串口与该存储控制器连接,测试人员可以通过调试软件向存储控制器发送检测指令,该存储控制器进而可以响应于该检测指令,执行下述步骤402。或者,存储控制器也可以在每次上电启动后,均执行对该dq的裕量检测流程,即存储控制器可以在每次上电后,自动触发检测指令。147.步骤402、调整参考电源端的电压为参考电压集合中的一个参考电压。148.其中,该参考电压集合可以包括多个不同的参考电压,该多个不同的参考电压可以为开发人员预先配置的待检测的电压。在本申请实施例中,参考图3,该存储控制器可以通过处理电路调整寄存器012的值,以调整分压电路0111的输出电压,从而实现对该参考电源端vref的电压的调节。149.在设计开发该存储控制器01的过程中,可以根据寄存器012的位数,确定该寄存器012的值的可调个数。然后可以根据该可调个数确定参考电压集合包括的参考电压的个数n,该参考电压的个数n可以大于1,且小于或等于该可调个数。例如n可以等于该可调个数。之后,即可根据参考电源端vref的电压变化范围以及该参考电压的个数n,确定出n个参考电压的电压值,也即是,可以将该参考电源端vref的电压变化范围划分为n个不同的档位。最后,可以对该处理电路、寄存器012和分压电路0111进行配置,使得处理电路中存储与n个参考电压一一对应的n个寄存器012的值,该处理电路调整寄存器012的值为n个值中的一个时,分压电路0111向参考电源端vref输出的电压可以为与该值对应的参考电压。150.示例的,假设该寄存器012为n位寄存器,n为大于1的整数,则该寄存器的值的可调范围可以为1至2n,该参考电压集合包括的参考电压的个数n也可以为2n。151.步骤403、检测参考电源端的电压是否遍历参考电压集合。152.若未遍历该参考电压集合,则执行步骤404,若已遍历该参考电压集合,则可以执行步骤412。153.可选的,为了提高检测的效率,存储控制器可以从参考电压集合中的第一个参考电压开始,依次调整该参考电源端的电压,直至最后一个参考电压。例如,存储控制器可以按照参考电压由高到低,或者由低到高的顺序依次调整参考电源端的电压。154.并且,为了便于统计,存储控制器中可以记录有标记位a,该标记位a的初始值可以为0。存储控制器每调整一次参考电源端的电压,可以更新标记位a为a 1。相应的,在检测参考电源端的电压是否遍历参考电压集合时,存储控制器可以直接检测该标记位a是否小于等于n。若a小于等于n,则可以确定还未完成遍历;若a大于n,则可以确定已完成遍历。155.步骤404、按照第一目标速率向存储介质中写入第一测试数据。156.在本申请实施例中,存储控制器可以先检测读方向的dq的时序裕量。由于该读方向的dq是由存储介质基于存储控制器写入的数据生成的,为了确保检测的可靠性,需保证存储控制器写入至存储介质的数据是准确的。因此,在本申请实施例中,存储控制器可以按照较低的数据传输速率向存储介质写入第一测试数据。该第一测试数据可以是存储控制器中预先存储的,且可以是开发人员自定义的数据。157.可选的,存储控制器可以先确定其与该存储介质之间的接口总线的工作模式,然后基于预先存储的工作模式与总线速率范围的对应关系,确定该接口总线的工作模式所对应的总线速率范围。进而可以将该确定出的总线速率范围的下限速率作为写入第一测试数据的第一目标速率。158.示例的,假设该接口总线为nfi总线,且如表1所示,nfi总线的工作模式可以包括单倍速率(singledatarate,sdr)模式,非易失性双数据速率(non-volatiledualdatarate,nv-ddr)模式,nv-ddr2(第2代nv-ddr)模式以及nv-ddr3(第3代nv-ddr)模式。其中,sdr模式对应的总线速率范围为10至50兆比特每秒(millionbitspersecond,mbps),nv-ddr模式对应的总线速率范围为40至200mbps。159.表1160.工作模式总线速率范围(mbps)sdr10~50nv-ddr40~200nv-ddr266~800nv-ddr366~1200161.若存储控制器确定nfi总线当前的工作模式为nv-ddr模式,则该存储控制器可以确定第一目标速率为40mbps,并可以按照该40mbps的数据传输速率向存储介质中写入第一测试数据。162.假设该nfi总线包括8条线路,该8条线路每次可以并行传输8个比特(即一个字节)的数据。如表2所示,该第一测试数据可以包括4个字节:byte0至byte3,该4个字节采用十六进制(hexadecimal,hex)可以表示为:0x5aa55aa5。其中,第一个字节byte0和第三个字节byte2均为5a,第二个字节byte1和第四个字节byte3均为a5。163.在并行传输第一个字节byte0时,该8条线路并行传输的8路dq:dq0至dq7中所携带的二进制(binary,bin)数据可以分别为:0、1、0、1、1、0、1和0。在并行传输第一个字节byte1时,该8条线路并行传输的8路dq:dq0至dq7中所携带的二进制数据可以分别为:1、0、1、0、0、1、0和1。164.表2[0165][0166]图10是本申请实施例提供的一种存储介质的结构示意图,如图10所示,该存储介质还可以包括控制逻辑(controllogic)电路022、地址寄存器(addressregister)023、状态寄存器(statusregister)024、命令寄存器(commandregister)025、闪存阵列(flasharray)026、数据寄存器(dataregister)027以及缓存寄存器(cacheregister)028。存储控制器01可以将第一测试数据写入至该缓存寄存器028中。并且,写入的第一测试数据的长度可以不大于一个闪存页(page)的长度。[0167]步骤405、向存储介质发送针对该第一测试数据的读取指令。[0168]该读取指令可以用于指示存储介质向存储控制器发送该第一测试数据。[0169]步骤406、接收该存储介质传输的携带有该第一测试数据的第一dq,以及第一dqs。[0170]在本申请实施例中,存储介质可以响应于该读取指令,生成携带有该第一测试数据的第一dq,以及第一dqs。其中,该第一dq可以包括多路dq,例如可以包括8路dq,该多路dq的边沿对齐,且该第一dqs的边沿也与该多路dq的边沿对齐。[0171]步骤407、在参考时刻集合包括的多个参考时刻的范围内,调整该第一dqs的边沿所处的时刻,并检测基于当前的参考电压,以及调整时序后的该第一dqs对第一dq进行解码得到的数据是否存在误码,以从该多个参考时刻中分别确定该第一dq的时序裕量的起始边界时刻和结束边界时刻。[0172]其中,该起始边界时刻为该多个参考时刻中,使得该解码得到的数据不存在误码的最小参考时刻,该结束边界时刻为该多个参考时刻中,使得该解码得到的数据不存在误码的最大参考时刻。[0173]图11是本申请实施例提供的一种确定第一dq的时序裕量的起始边界时刻的方法流程图,参考图11,该方法可以包括:[0174]步骤4071a、调整该第一dqs的边沿所处的时刻为该多个参考时刻中的第一目标参考时刻。[0175]可选的,该参考时刻集合包括的多个参考时刻可以按照递增的顺序排列,该第一目标参考时刻可以为该多个参考时刻中的第x个参考时刻,x为小于m/2的正整数,m为该参考时刻集合包括的参考时刻的总数。也即是,该第一目标参考时刻可以为多个参考时刻中较小的参考时刻,例如可以为最小的参考时刻,即x可以等于1。该第一目标参考时刻可以作为初始的起始边界时刻。[0176]在本申请实施例中,该多个参考时刻可以是对dqs的周期进行划分得到的。若相邻两个参考时刻之间的时间差固定,即时间的刻度单位固定,则接口总线的数据传输速率越高,该dqs的周期越短,该参考时刻集合包括的参考时刻的个数越少。[0177]示例的,假设nfi总线的数据传输速率为400mbps,则dqs的周期为2.5纳秒(ns),该2.5ns的周期可以划分为320个参考时刻,该第一目标参考时刻可以为第24个参考时刻,即参考时刻24。当然,也可以为第一个参考时刻,即参考时刻1。[0178]步骤4072a、检测基于当前的参考电压,以及调整后的该第一dqs对该第一dq进行解码得到的数据是否存在误码。[0179]在本申请实施例中,存储控制器可以基于当前参考电源端vref提供的参考电压,以及调整时序后的第一dqs对该第一dq包括的多路dq均进行解码,并检测对该第一dq包括的多路dq进行解码得到的数据是否存在误码。若对第一dq中的任一路dq进行解码得到的数据存在误码,则存储控制器可以执行步骤4073a。若对第一dq中的每一路dq进行解码得到的数据均不存在误码,则存储控制器可以执行步骤4074a。[0180]示例的,假设存储控制器写入至存储介质的第一测试数据为“01011010”,存储控制器对第一dq包括的8路dq:dq0至dq7进行解码得到的数据为“11011010”,则由于该解码得到的数据存在误码,因此存储控制器可以执行步骤4073a。[0181]步骤4073a、以第一步进长度增加该第一dqs的边沿所处的时刻。执行步骤4072a。[0182]在本申请实施例中,若存储控制器基于当前的参考电压,以及调整后的该第一dqs对该第一dq进行解码得到的数据存在误码,则可以确定该第一dqs的边沿所处的时刻位于该第一dq的时序裕量的范围之外,因此可以以第一步进长度为单位增加该第一dqs的边沿所处的时刻,即可以向右调整该第一dqs的时序。之后,该存储控制器可以继续执行步骤4072a,也即是,存储控制器可以以第一步进长度为单位,逐步向右调整该第一dqs的时序,直至基于当前的参考电压,以及调整后的第一dqs对第一dq进行解码得到的数据不存在误码。[0183]步骤4074a、以第二步进长度减小该第一dqs的边沿所处的时刻,直至基于当前的参考电压,以及调整后的该第一dqs解码得到的数据存在误码。[0184]若存储控制器基于当前的参考电压,以及调整后的该第一dqs对该第一dq进行解码得到的数据不存在误码,则可以确定该第一dqs的边沿所处的时刻位于该第一dq的时序裕量的范围之内,因此可以以第二步进长度为单位,逐步减小该第一dqs的边沿所处的时刻,即可以向左调整该第一dqs的时序。[0185]其中,该第二步进长度可以等于相邻两个参考时刻的时间差,该第一步进长度可以大于该第二步进长度,且可以为该第二步进长度的整数倍。也即是,该第二步进长度可以等于对该参考时刻进行划分时的刻度单位,该第一步进长度可以为该刻度单位的若干倍。示例的,该第一步进长度可以为该第二步进长度的8倍。[0186]步骤4075a、将调整后的该第一dqs的边沿所处的时刻的下一个参考时刻确定为该第一dq的时序裕量的起始边界时刻。[0187]存储控制器检测到基于当前的参考电压,以及调整后的该第一dqs解码得到的数据存在误码时,可以确定当前该第一dqs的边沿所处的时刻的下一个参考时刻(也即是调整前该第一dqs的边沿所处的时刻)为该多个参考时刻中,使得该解码得到的数据不存在误码的最小参考时刻,即该下一个参考时刻为该第一dq的时序裕量的起始边界时刻。[0188]示例的,参考图12,存储控制器可以先以第一步进长度k为单位向右粗调第一dqs的边沿所处的时刻,然后再以第二步进长度1为单位向左细调第一dqs的边沿所处的时刻,直至确定出使得dq0至dq7解码得到的数据均不存在误码的最小参考时刻。[0189]图13是本申请实施例提供的一种确定第一dq的时序裕量的结束边界时刻的方法流程图,参考图13,该方法可以包括:[0190]步骤4071b、调整该第一dqs的边沿所处的时刻为该多个参考时刻中的第二目标参考时刻。[0191]可选的,该第二目标参考时刻可以为该多个参考时刻中的第y个参考时刻,y为大于m/2的正整数。也即是,该第二目标参考时刻可以为该多个参考时刻中较大的参考时刻,例如可以为最大的参考时刻。该第二目标参考时刻即为初始的结束边界时刻。[0192]示例的,假设nfi总线的数据传输速率为400mbps,则dqs的周期为2.5ns,该2.5ns的周期可以划分为320个参考时刻,该第一目标参考时刻可以为第24个参考时刻,该第二目标参考时刻可以为第320个参考时刻,即参考时刻320。[0193]步骤4072b、检测基于当前的参考电压,以及调整后的该第一dqs对该第一dq进行解码得到的数据是否存在误码。[0194]若存在误码,则存储控制器可以执行步骤4073b。若不存在误码,则存储控制器可以执行步骤4074b。[0195]步骤4073b、以第一步进长度减小第一dqs的边沿所处的时刻。执行步骤4072b。[0196]若存储控制器基于当前的参考电压,以及调整后的该第一dqs对该第一dq进行解码得到的数据存在误码,则可以确定该第一dqs的边沿所处的时刻位于该第一dq的时序裕量的范围之外,因此可以以第一步进长度为单位,减小该第一dqs的边沿所处的时刻,即可以向左调整该第一dqs的时序。之后,该存储控制器可以继续执行步骤4072b,也即是,存储控制器可以以第一步进长度为单位,逐步向左调整该第一dqs的时序,直至基于当前的参考电压,以及调整后的该第一dqs解码得到的数据不存在误码。[0197]步骤4074b、以第二步进长度增大该第一dqs的边沿所处的时刻,直至基于当前的参考电压,以及调整后的该第一dqs解码得到的数据存在误码。[0198]若存储控制器基于当前的参考电压,以及调整后的该第一dqs对该第一dq进行解码得到的数据不存在误码,则可以确定该第一dqs的边沿所处的时刻位于该第一dq的时序裕量的范围之内,因此可以以第二步进长度为单位,逐步增大该第一dqs的边沿所处的时刻,即可以向右调整该第一dqs的时序。[0199]步骤4075b、将调整后的该第一dqs的边沿所处的时刻的上一个参考时刻确定为该第一dq的结束边界时刻。[0200]其中,该第二步进长度可以等于相邻两个参考时刻的时间差,该第一步进长度可以大于该第二步进长度,且可以为该第二步进长度的整数倍。[0201]示例的,参考图14,存储控制器可以先以第一步进长度k为单位,向左粗调两次第一dqs的边沿所处的时刻,使得该第一dqs的边沿所处的时刻位于第一dq的时序裕量的范围之内。然后再以第二步进长度1为单位向右细调第一dqs的边沿所处的时刻,直至确定出使得dq0至dq7解码得到的数据均不存在误码的最大参考时刻。[0202]根据上述确定初始边界时刻和结束边界时刻的流程可知,若基于当前的参考电压,以及调整后的该第一dqs对该第一dq进行解码得到的数据存在误码,则存储控制器可以采用第一步进长度对第一dqs的时序进行粗调,直至该第一dqs的边沿所处的时刻处于第一dq的时序裕量的范围内。之后,可以再以第二步进长度对第一dqs的时序进行细调,从而精准确定该第一dq的时序裕量的起始边界时刻和结束边界时刻。上述调整方式可以有效提高确定时序裕量的边界时刻的效率。[0203]图15是本申请实施例提供的一种确定第一dq的时序裕量的起始边界时刻的算法流程图。该算法以第一目标参考时刻为a,第二目标参考时刻为b,第一步进长度为k,且第二步进长度为1为例进行说明。参考图15,该算法可以包括:[0204]步骤4071c、将第一dqs的边沿所处的时刻dly调整为第一目标参考时刻a,并将标志位f的初始值设置为0。执行步骤4072c。[0205]该标志位f可以用于指示该第一dqs的边沿所处的时刻dly在调整前是否位于该第一dq的时序裕量的范围内。其中,f=0表示该第一dqs的边沿所处的时刻dly在调整前未位于该第一dq的时序裕量的范围内;f=1表示该第一dqs的边沿所处的时刻dly在调整前位于该第一dq的时序裕量的范围内。[0206]示例的,假设a=24,则存储控制器可以调整第一dqs的时序,使其边沿与参考时刻24对齐,也即是,使得dly=a=24。[0207]步骤4072c、基于当前的参考电压,以及调整后的第一dqs对第一dq进行采样。执行步骤4073c。[0208]步骤4073c、检测对第一dq进行解码得到的数据是否存在误码。[0209]存储控制器对第一dq进行采样得到采样电压后,可以将参考电源端vref当前提供的电压作为判决电平对该采样电压进行判决,从而解码得到该第一dq所携带的数据。[0210]若存储控制器检测到该解码得到的数据存在误码,则可以确定当前该第一dqs的边沿所处的时刻dly不位于该第一dq的时序裕量的范围内,因此可以继续判断该第一dqs的边沿所处的时刻dly在调整前是否位于该第一dq的时序裕量的范围内,即执行步骤4074c。[0211]若存储控制器检测到该解码得到的数据不存在误码,则可以确定当前该第一dqs的边沿所处的时刻dly位于该第一dq的时序裕量的范围内,因此可以对该第一dqs的时序进行进一步的细调,即执行步骤4077c。[0212]步骤4074c、检测标志位f是否等于1。若f不等于1,则执行步骤4075c,若f=1,则执行步骤4079c。[0213]步骤4075c、将第一dqs的边沿所处的时刻dly调整为dly k。执行步骤4076c。[0214]若在上述步骤4074c中,存储控制器检测到f不等于1,则可以确定当前该第一dqs的边沿所处的时刻dly不位于该第一dq的时序裕量的范围内,且在调整之前也不位于该第一dq的时序裕量的范围内,因此可以先以第一步进长度k为单位对该第一dqs的边沿所处的时刻进行粗调。[0215]示例的,假设k=8,且第一dqs的边沿所处的时刻dly=24时,对第一dq进行采样得到的采用数据存在误码,则存储控制器可以向右粗调第一dqs的时序,使其边沿所处的时刻dly更新为:dly=24 8=32。[0216]步骤4076c、检测调整后的第一dqs的边沿所处的时刻dly是否大于参考时刻集合中的最大参考时刻c。[0217]若dly>c,则存储控制器可以确定该调整后的第一dqs的边沿所处的时刻dly超出了预设的参考时刻集合,即该第一步进长度k设置的过大,此时存储控制器可以报错(error),并可以重新调整第一步进长度k。[0218]若dly≤c,则存储控制器可以继续执行上述步骤4072c,即基于当前的参考电压,以及调整后的第一dqs继续对第一dq进行采样,并判断解码得到的数据是否存在误码。[0219]示例的,假设c=320,则由于更新后的dly=32,小于该最大参考时刻c,则存储控制器可以继续执行步骤4072c。若第一步进长度k=300,则由于更新后的dly=24 300=324,大于该最大参考时刻c,则存储控制器可以报错。[0220]步骤4077c、将标志位f更新为1。执行步骤4078c。[0221]若在上述步骤4073c中,存储控制器检测到解码得到的数据不存在误码,则可以确定当前第一dqs的边沿所处的时刻dly位于该第一dq的时序裕量的范围内,因此可以将标志位f更新为1。[0222]步骤4078c、将第一dqs的边沿所处的时刻dly调整为dly-1。执行步骤4072c。[0223]存储控制器确定当前第一dqs的边沿所处的时刻dly位于该第一dq的时序裕量的范围内之后,即可以第二步进长度1为单位,对该第一dqs的边沿所处的时刻dly进行细调。之后,再继续执行步骤4072c。[0224]示例的,假设在第一dqs的边沿所处的时刻dly=32时对第一dq进行解码得到的数据不存在误码,则存储控制器可以确定该第一dq的左边界位于24和32之间,因此可以将f更新为1,并继续以第一步进长度1向左细调该第一dqs的边沿所处的时刻。[0225]步骤4079c、确定第一dq的时序裕量的起始边界时刻l_dly=dly 1。[0226]在上述步骤4074c中,若存储控制器确定该标志位f等于1,则可以确定当前该第一dqs的边沿所处的时刻dly不位于该第一dq的时序裕量的范围内,且该第一dqs的边沿所处的时刻dly在调整之前位于该第一dq的时序裕量的范围,进而可以确定在调整之前该第一dqs的边沿所处的时刻dly即为起始边界时刻。由此,可以将该起始边界时刻l_dly确定为:l_dly=dly 1。[0227]示例的,假设存储控制器将上述步骤4072c、4073c、4077c和4078c重复执行多次后,将第一dqs的边沿所处的时刻dly以第二步进长度1为单位逐步调整为dly=28。若此时检测到对第一dq进行解码得到的数据存在误码,则由于当前标志位f=1,因此存储控制器可以确定该第一dqs的边沿所处的时刻dly在调整之前(即dly=29时)位于该第一dq的时序裕量的范围内,进而可以确定该第一dqs的边沿所处的时刻dly在调整之前即为第一dq的时序裕量的起始边界时刻l_dly,也即是可以确定l_dly=28 1=29。[0228]图16是本申请实施例提供的一种确定第一dq的时序裕量的结束边界时刻的算法流程图。该算法以第一目标参考时刻为a,第二目标参考时刻为b,第一步进长度为k,且第二步进长度为1为例进行说明。参考图16,该算法可以包括:[0229]步骤4071d、将第一dqs的边沿所处的时刻dly调整为第二目标参考时刻b,并将标志位f的初始值设置为0。执行步骤4072d。[0230]该标志位f可以用于指示该第一dqs的边沿所处的时刻dly在调整前是否位于该第一dq的时序裕量的范围内。其中,f=0表示该第一dqs的边沿所处的时刻dly在调整前未位于该第一dq的时序裕量的范围内;f=1表示该第一dqs的边沿所处的时刻dly在调整前位于该第一dq的时序裕量的范围内。[0231]示例的,假设b=320,则存储控制器可以调整第一dqs的时序,使其边沿与参考时刻320对齐,也即是,使得dly=b=320。[0232]步骤4072d、基于当前的参考电压,以及调整后的第一dqs对第一dq进行采样。执行步骤4073d。[0233]步骤4073d、检测对第一dq进行解码得到的数据是否存在误码。[0234]存储控制器对第一dq进行采样得到采样电压后,可以将参考电源端vref提供的电压作为判决电平对该采样电压仅判决,从而解码得到该第一dq所携带的数据。[0235]若存储控制器检测到该解码得到的数据存在误码,则可以确定当前该第一dqs的边沿所处的时刻dly不位于该第一dq的时序裕量的范围内,因此可以继续判断该第一dqs的边沿所处的时刻dly在调整前是否位于该第一dq的时序裕量的范围内,即执行步骤4074d。[0236]若存储控制器检测到该解码得到的数据不存在误码,则可以确定当前该第一dqs的边沿所处的时刻dly位于该第一dq的时序裕量的范围内,因此可以对该第一dqs的时序进行进一步的细调,即执行步骤4077d。[0237]步骤4074d、检测标志位f是否等于1。若f不等于1,则执行步骤4075d,若f=1,则执行步骤4079d。[0238]步骤4075d、将第一dqs的边沿所处的时刻dly调整为dly-k。执行步骤4076d。[0239]若在上述步骤4074d中,存储控制器检测到f不等于1,则可以确定当前该第一dqs的边沿所处的时刻dly不位于该第一dq的时序裕量的范围内,且在调整之前也不位于该第一dq的时序裕量的范围内,因此可以先以第一步进长度k为单位对该第一dqs的边沿所处的时刻进行粗调。[0240]示例的,假设k=8,且第一dqs的边沿所处的时刻dly=320时,对第一dq进行采样得到的采用数据存在误码,则存储控制器可以向左粗调第一dqs的时序,使其边沿所处的时刻dly更新为:dly=320-8=312。[0241]步骤4076d、检测调整后的第一dqs的边沿所处的时刻dly是否小于参考时刻集合中的最小参考时刻d。[0242]若dly<d,则存储控制器可以确定该调整后的第一dqs的边沿所处的时刻dly超出了预设的参考时刻集合,即该第一步进长度k设置的过大,此时存储控制器可以报错(error),并可以重新调整第一步进长度k。[0243]若dly≥d,则存储控制器可以继续执行上述步骤4072d,即基于当前的参考电压,以及调整后的第一dqs继续对第一dq进行采样,并判断解码得到的数据是否存在误码。[0244]示例的,假设d=20,则由于更新后的dly=312,大于该最小参考时刻d,则存储控制器可以继续执行步骤4072d。若第一步进长度k=310,则由于更新后的dly=320-310=10,小于该最小参考时刻d,则存储控制器可以报错。[0245]步骤4077d、将标志位f更新为1。执行步骤4078d。[0246]若在上述步骤4073d中,存储控制器检测到解码得到的数据不存在误码,则可以确定当前第一dqs的边沿所处的时刻dly位于该第一dq的时序裕量的范围内,因此可以将标志位f更新为1。[0247]步骤4078d、将第一dqs的边沿所处的时刻dly调整为dly 1。执行步骤4072d。[0248]存储控制器确定当前第一dqs的边沿所处的时刻dly位于该第一dq的时序裕量的范围内之后,即可以第二步进长度1为单位,对该第一dqs的边沿所处的时刻dly进行细调。之后,再继续执行步骤4072d。[0249]示例的,假设存储控制器通过两次执行步骤4075b将第一dqs的边沿所处的时刻dly调整为dly=304后,对第一dq进行解码得到的数据不存在误码,则存储控制器可以确定该第一dq的左边界位于304和312之间,因此可以将f更新为1,并继续以第一步进长度1向右细调该第一dqs的边沿所处的时刻。[0250]步骤4079d、确定第一dq的时序裕量的结束边界时刻l_dly=dly-1。[0251]在上述步骤4074d中,若存储控制器确定该标志位f等于1,则可以确定当前该第一dqs的边沿所处的时刻dly不位于该第一dq的时序裕量的范围内,且该第一dqs的边沿所处的时刻dly在调整之前位于该第一dq的时序裕量的范围,进而可以确定在调整之前该第一dqs的边沿所处的时刻dly即为结束边界时刻。由此,可以将该结束边界时刻l_dly确定为:l_dly=dly-1。[0252]示例的,假设存储控制器将上述步骤4072d、4073d、4077d和4078d重复执行多次后,将第一dqs的边沿所处的时刻dly以第二步进长度1为单位逐步调整为dly=308。若此时检测到对第一dq进行解码得到的数据存在误码,则由于当前标志位f=1,因此存储控制器可以确定该第一dqs的边沿所处的时刻dly在调整之前(即dly=307时)位于该第一dq的时序裕量的范围内,进而可以确定该第一dqs的边沿所处的时刻dly在调整之前即为第一dq的时序裕量的结束边界时刻l_dly,也即是可以确定l_dly=308-1=307。[0253]需要说明的是,存储控制器在通过上述步骤407所示的方法完成对读方向的第一dq的时序裕量的检测后,可以基于该第一dq的时序裕量,对存储设备的相关参数进行校准,以确保读方向的dq的时序裕量能够确保数据的正确解码,即确保存储控制器能够正确读取数据。[0254]还需要说明的是,若存储控制器在确定dq的裕量的过程中,先将dqs的边沿所处的时刻固定为一个参考时刻,再对该参考时刻下的dq的电压裕量进行检测,则在确定该电压裕量的起始边界电压时,也可以参考上述步骤4071a至步骤4075a所示的方法,或者步骤4071c至步骤4079c所示的方法进行确定。在确定电压裕量的结束边界电压时,也可以参考上述步骤4071b至步骤4075b所示的方法,或者步骤4071d至步骤4079d所示的方法进行确定。本申请实施例对此不再赘述。[0255]步骤408、按照第二目标速率向存储介质中写入第二测试数据。[0256]在完成对读方向的第一dq的时序裕量的检测后,存储控制器可以继续对写方向的dq的时序裕量进行检测。在本申请实施例中,存储控制器可以先确定当前nfi总线正常工作时的数据传输速率,然后可以将该正常工作时的数据传输速率作为第二目标速率,向存储介质中写入第二测试数据。该第二测试数据也可以是存储控制器中预先存储的,且可以是开发人员自定义的数据。并且,该第二测试数据与第一测试数据可以相同,也可以不同。[0257]步骤409、向存储介质发送针对该第二测试数据的读取指令。[0258]步骤410、接收该存储介质传输的携带有该第二测试数据的第二dq,以及第二dqs。[0259]步骤411、在参考时刻集合包括的多个参考时刻的范围内,调整该第二dqs的边沿所处的时刻,并检测基于当前的参考电压,以及调整后的该第二dqs对第二dq进行解码得到的数据是否存在误码,以从该多个参考时刻中分别确定该第二dq的时序裕量的起始边界时刻和结束边界时刻。执行步骤402。[0260]由于在上述步骤407之后,基于参数调整操作可以确保存储控制器读取到的训练数据的可靠性,因此存储控制器可以通过读取到的训练数据,检测写入的第二训练数据是否存在误码。也即是,存储控制器可以检测对第二dq进行解码得到的数据是否存在误码,实现写方向的dq的时序裕量检测。[0261]上述步骤408至步骤411所示的对第二dq的时序裕量的检测过程,可以参考上文步骤404至步骤407所示的对第一dq的时序裕量的检测过程,此处不再赘述。[0262]存储控制器在确定第二dq的时序裕量之后,可以继续执行步骤402,即继续调整参考电源端vref的电压,并继续检测第一dq和第二dq的时序裕量,直至将该参考电源端vref的电压遍历该参考电压集合。存储控制器在将该参考电源端vref的电压遍历该参考电压集合后,可以得到该参考电压集合中每个参考电压所对应的第一dq(即读方向的dq)的时序裕量,以及第二dq(即写方向的dq)的时序裕量。[0263]步骤412、分别生成第一dq的二维裕量示意图和第二dq的二维裕量示意图。[0264]其中,该二维裕量示意图的横轴可以用于指示dqs的边沿所处的时刻,纵轴可以用于指示参考电源端vref的电压,示意图中的每个坐标处可以采用不同的图示表示该坐标处解码得到的数据是否存在误码。[0265]示例的,假设参考电压集合包括的35个参考电压:v1至v35,则存储控制器生成的第一dq的二维裕量示意图可以如图17所示。该示意图中采用“*”表示解码得到的数据不存在误码,采用“-”表示解码得到的数据存在误码。参考图17可以看出,参考电源端vref的电压为参考电压v19时,第一dq的时序裕量的范围最大。[0266]需要说明的是,由于存储控制器01可以通过多条nfi总线03与多个存储介质02连接,因此在上述步骤401中,存储控制器01可以分别对每条nfi总线03及其连接的存储介质02的物理参数进行检测,并对满足检测触发条件的存储介质02进行检测。其他不满足检测触发条件的存储介质02则可以正常读写,以确保业务不中断。[0267]还需要说明的是,本申请实施例提供的dq的裕量检测方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。例如,步骤412可以根据情况删除。或者,步骤408至步骤411可以在步骤412之后执行。也即是,可以先生成第一dq的二维裕量示意图,然后再执行步骤402、步骤403以及步骤408至步骤412,以生成第二dq的二维裕量示意图。又或者,若仅对第一dq的二维裕量进行检测,则步骤404也可以在步骤402之前执行;同理,若仅对第二dq的二维裕量进行检测,则步骤408也可以在步骤402之前执行。任何熟悉本
技术领域
:的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。[0268]综上所述,本申请实施例提供了一种数据信号的裕量检测方法,dq的接收端可以通过调整参考电源端的电压,以及dqs的时序,实现对dq的时序裕量以及电压裕量的自动检测。由于该检测过程无需外接其他检测设备,也无需人工调整参数,因此有效提高了检测的效率,缩减了检测成本。并且,由于该时序裕量和电压裕量是由存储控制器基于实际解码得到的数据是否存在误码确定的,因此可以确保检测结果的可靠性。[0269]图18是本申请实施例提供的一种数据信号的裕量检测装置的结构框图,该装置可以配置于存储设备中数据信号的接收端中。例如,参考图1,可以配置于该存储控制器01中。如图18所示,该装置可以包括:检测模块501,该检测模块501可以用于实现上述方法实施例中步骤101至步骤103所示的方法。[0270]图19是本申请实施例提供的一种检测模块的结构示意图,如图19所示,该检测模块501可以包括:[0271]第一调整子模块5011,可以用于实现上述方法实施例中步骤201或者步骤402所示的方法。[0272]第一确定子模块5012,可以用于实现上述方法实施例中步骤204和步骤206,或者步骤407和步骤411所示的方法。[0273]第一检测子模块5013,用于指示该第一调整子模块5011和第一确定子模块5012重复执行上述调整电压和确定时序裕量的操作,直至该参考电源端的电压遍历参考电压集合。该第一检测子模块5013的功能实现可以参考上述方法实施例中步骤202或者步骤403的相关描述。[0274]可选的,该第一确定子模块5012,可以用于实现上述方法实施例中步骤4071a至步骤4075a所示的方法,步骤4071b至步骤4075b所示的方法,步骤4071c至步骤4079c所示的方array,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。也可以通过软件实现上述方法实施例提供的dq的裕量检测方法,当通过软件实现上述方法实施例提供的dq的裕量检测方法时,该数据信号的裕量检测装置中的各个模块也可以为软件模块。[0290]图21是本申请实施例提供的另一种数据信号的裕量检测装置的结构框图,参考图21,该装置可以包括:处理器1201、存储器1202、接口1203和总线1204。其中,总线1204用于连接处理器1201、存储器1202和接口1203。通过接口1203(可以是有线或者无线)可以实现与其他器件之间的通信连接。存储器1202中存储有计算机程序12021,该计算机程序12021用于实现各种应用功能。[0291]应理解,在本申请实施例中,处理器1201可以是cpu,该处理器1201还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、gpu或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。[0292]存储器1202可以是非易失性存储器。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。[0293]总线1204除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1204。[0294]处理器1201被配置为执行存储器1202中存储的计算机程序,处理器1201通过执行该计算机程序12021来实现上述方法实施例中的步骤。[0295]本申请实施例还提供了一种芯片,该芯片可以包括:可编程逻辑电路和/或程序指令,当该芯片运行时用于实现如上述方法实施例所提供的dq的裕量检测方法。[0296]本申请实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在处理器上运行时,使得处理器执行上述方法实施例中的步骤。[0297]本申请实施例还提供了一种存储设备,如图1所示,该存储设备可以包括存储控制器01,以及一个或多个存储介质02。每个存储介质02的io接口021可以通过一条nfi总线03与该存储控制器01的一个io接口011连接,并且该存储控制器01的参考电源端vref可以与每个存储介质02连接。[0298]其中,该存储控制器01和/或该存储介质02可以包括上述实施例提供的dq的裕量检测装置,或者可以为上述实施例提供的芯片。[0299]需要说明的是,在本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。[0300]以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜