CN107077406A - Sata接收器均衡裕度确定/设置的方法和装置 - Google Patents

Sata接收器均衡裕度确定/设置的方法和装置 Download PDF

Info

Publication number
CN107077406A
CN107077406A CN201580060807.7A CN201580060807A CN107077406A CN 107077406 A CN107077406 A CN 107077406A CN 201580060807 A CN201580060807 A CN 201580060807A CN 107077406 A CN107077406 A CN 107077406A
Authority
CN
China
Prior art keywords
dtle
sata port
sata
port
determined
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.)
Granted
Application number
CN201580060807.7A
Other languages
English (en)
Other versions
CN107077406B (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN107077406A publication Critical patent/CN107077406A/zh
Application granted granted Critical
Publication of CN107077406B publication Critical patent/CN107077406B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了与自动SATA接收器均衡裕度确定和设置相关联的装置、方法和存储介质。在实施例中,装置可以包括BIOS,所述BIOS被配置为:在POST期间,确定设备是否被附接到SATA端口中的一个SATA端口,并且在确定设备被附接到所述SATA端口中的一个SATA端口时,进一步确定是否针对所述设备设置了接收器均衡裕度。另外,所述BIOS可以被配置为:在确定还未针对所述设备设置接收器均衡裕度时,执行DTLE训练以便针对所述设备动态地确定并设置接收器均衡裕度。可描述和/或请求保护其他实施例。

Description

SATA接收器均衡裕度确定/设置的方法和装置
相关申请
本申请要求享有于2014年12月9日递交的发明名称为“SATA RECEIVEREQUALIZATION MARGIN DETERMINATION/SETTING METHOD AND APPARATUS”的美国专利申请14/564,869的优先权。
技术领域
本公开涉及计算领域,更具体地,本公开涉及用于SATA设备的SATA接收器均衡裕度的自动确定和设置。
背景技术
本文提供的背景描述用来大致给出本公开的上下文。除非本文另有说明,本节中描述的素材不是对于本申请中权利要求的现有技术,并且没有承认由于其包含在本节中而作为现有技术。
串行ATA(Advanced Technology Attachment,高级技术附接),也被称为SATA,适配器和接口是用于将诸如存储设备的设备附接到计算平台的非常普遍的适配器/接口。目前,用于各种SATA设备的SATA接收器均衡裕度设置是手动调节和静态设置的。手动过程典型地涉及执行裕度分析、使用电动裕度工具在从0x0到0xF的整个接收器均衡范围上扫过(sweep)。在识别各种SATA设备的最优接收器均衡裕度上,将设置静态地编码到各种计算平台设计的基本输入-输出系统(BIOS)内。由于各种形状因子的过多的SATA设备,以及各种各样的计算平台设计,这对于计算平台设计人员而言是低效且繁重的。
附图说明
通过以下结合附图的详细描述,将容易理解实施例。为了便于描述,相同的参考标号指代相同的结构元件。在附图的图中,通过示例而非限制的方式示出了实施例。
图1示出了根据各种实施例与本公开的SATA接收器均衡裕度确定和设置教导相结合的示例计算系统。
图2-3示出了根据各种实施例与本公开的SATA接收器均衡裕度确定和设置教导相结合的示例引导过程。
图4示出了根据各种实施例用于进入引导过程的上电自检(POST)阶段并且使能所有SATA端口的示例过程。
图5示出了根据各种实施例用于执行针对SATA设备的离散时间线性均衡(DTLE)训练的示例过程。
图6示出了根据所公开的实施例具有指令的存储介质,所述指令用于实施参考图1-5描述的方法。
具体实施方式
公开了与自动SATA接收器均衡裕度确定和设置相关联的装置、方法和存储介质。在实施例中,装置可以包括BIOS,该BIOS被配置为在POST期间确定设备是否被附接到SATA端口中的一个SATA端口,并且在确定设备被附接到SATA端口中的一个SATA端口时,进一步确定是否针对该设备设置了接收器均衡裕度。另外,在确定还未针对该设备设置接收器均衡裕度时,BIOS可以被配置为执行DTLE训练以便动态地确定和设置针对该设备的接收器均衡裕度。
在以下详细描述中,参照形成本文一部分的附图,其中在所有附图中相同的标号指代相同的部件,并且通过说明的方式示出了可以实施的实施例。应该理解的是,在不偏离本公开的范围的情况下,可以利用其他实施例并且可以做出结构或逻辑上的变化。因此,以下详细描述不在限制意义上进行,并且实施例的范围由所附权利要求及其等同物限定。
本公开的各个方面将在所附描述中予以公开。在不偏离本公开的精神和范围的情况下,可以设计本公开的替代实施例及其等同形式。应当注意的是,以下公开的相同元件在附图中由相同的参考标号指示。
可以将各种操作以最有助于理解所要求保护的主题的方式依次描述为多个离散动作或操作。然而,描述的顺序不应该被解释为暗示这些操作必须是依赖于顺序的。特别地,这些操作可以不按照呈现的顺序执行。所描述的操作可以按照与所描述的实施例不同的顺序执行。可以执行各种附加的操作和/或可以在附加实施例中省略所描述的操作。
为了本公开的目的,短语“A和/或B”意味着(A)、(B)或(A和B)。为了本公开的目的,短语“A、B和/或C”意味着(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
说明书可以使用短语“在一实施例中,”或“在实施例中,”这可以分别指代相同或不同实施例中的一个或多个。而且,参考本公开的实施例使用的术语“包括”、“包含”、“具有”等等是同义的。
正如本文使用的,术语“模块”可以指代专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或者群组)和/或存储器(共享、专用或者群组)、组合逻辑电路和/或提供所描述的功能的其他适合的组件。
现在参见图1,其中示出了根据各种实施例与根据本公开的SATA接收器均衡裕度确定和设置教导相结合的示例计算系统。如图所示,计算系统100可以包括一个或多个处理器102、非易失性随机存取存储器(NVRAM)103和系统存储器104。每个处理器102可以包括一个或多个处理器核心。NVRAM 103可以包括BIOS114,并且系统存储器104可以包括操作系统和各种应用的非持久性副本,被共同地称为计算逻辑118。另外,计算系统100可以包括一个或多个总线适配器/接口116、海量存储设备106(与总线适配器/接口116耦合)、输入/输出设备108和通信接口110。NVRAM 103的示例可以包括但不局限于串行外围接口(SPI)闪存或嵌入式多存储器卡(eMMC)。海量存储设备106可以包括计算逻辑118的持久性副本。元件102-104、108-110和114-116可以经由系统总线112相互耦合,系统总线112可以代表一个或多个总线。在多个总线的情况中,它们可以通过一个或多个总线桥(未示出)进行桥接。在实施例中,总线适配器/接口116中的至少一个总线适配器/接口可以是具有一个或多个端口的SATA总线适配器/接口,并且海量存储设备106中的至少一个海量存储设备可以是SATA设备。进而,在计算系统100的引导期间,BIOS 114可以被配置为自动确定和设置SATA设备的接收器均衡裕度,这将在下面进行更全面的描述。
海量存储设备106的示例可以包括但不局限于软盘、硬驱、压缩盘只读存储器(CD-ROM)等等。输入/输出设备108的示例可以包括但不局限于显示器、键盘、光标控制器等等。通信接口110的示例可以包括但不局限于有线和/或无线网络接口卡、调制解调器等等。通信接口110可以支持各种有线或无线通信,该有线或无线通信包括但不局限于3G/4G/5G、WiFi、蓝牙以太网等等。
根据本公开,除了自动SATA接收器均衡裕度确定和设置,元件102-118中的每个元件可以执行在本领域中公知的传统功能。取决于计算系统100是用作客户端设备还是用作服务器,元件102-118的数量、能力和/或容量可以改变。当用作客户端设备时,取决于客户端设备是静止设备还是移动设备,元件102-118的能力和/或容量可以改变,移动设备例如是可穿戴设备、智能手机、计算平板、超级本或笔记本电脑。在其他方面,元件102-118的构成是众所周知的,因此将不再更进一步描述。
现在参见图2-3,其中示出了根据各种实施例用于引导计算系统100的示例过程。如图所示,用于引导计算系统100的过程200可以包括在方框202-232中执行的操作。例如,可以通过图1的BIOS 114来执行所述操作。在其他实施例中,可以在不具有所述操作中的一些的情况下、在具有附加操作的情况下和/或在所述操作的不同顺序下执行过程200。
过程200可以开始于方框202。在方框202处,过程200可以进入POST阶段。作为初始事件,在进入POST阶段中时,可以使能所有SATA端口。进一步,考虑到存在许多代SATA端口的事实,支持高得多的操作速度(例如,第三代的版本3.2支持16吉比特/秒(Gbit/sec))的较新代的SATA端口与支持低得多的操作速度(例如,第一代支持1.5吉比特/秒(Gbit/sec))的较老代的SATA端口,接收器均衡裕度的确定可能是困难的,因此,为了减少遇到这种困难的风险,SATA端口的使能可以包括临时将较新一代的SATA端口的操作速度降低到较早一代的SATA端口的操作速度(也被认为是“降低速度”(down speed))。
现在还参见图4,其中示出了根据各种实施例用于使能SATA端口和降低SATA端口的速度的示例过程。可以针对要被使能的每个SATA端口来执行过程400。如图所示,用于使能SATA端口并且选择性地降低SATA端口的操作速度的过程400可以包括在方框402-408处执行的操作。如上所述,可以例如通过图1的BIOS 114来执行操作。在其他实施例中,可以在不具有所述操作中的一些的情况下、在具有附加操作的情况下和/或在所述操作的不同顺序下执行过程400。
过程400可以开始于方框402。在方框402处,可以对SATA端口是否被提供有DTLE训练支持以及SATA端口是否是支持高速操作的一代SATA端口(被表示为Gen X)做出确定,该高速操作会导致接收器均衡裕度检测问题。在实施例中,可以根据例如存储在NVRAM 103中的一个或多个操作策略来确定SATA端口是否被提供有DTLE训练支持。类似地,可以根据例如存储在NVRAM 103中的配置信息来确定SATA端口的代级别。
在确定SATA端口没有被提供有DTLE训练支持或者SATA端口具有比Gen X更老一代的操作速度时,操作400可以在方框404处继续。在方框404处,对SATA端口是否是外部SATA(eSATA)端口做出进一步确定。
在方框402处确定SATA端口要被提供有DTLE训练支持并且SATA端口至少是Gen X(或超过Gen X)时,或者在方框404处确定SATA端口是eSATA端口时,过程400可以在方框406处继续。在方框406处,SATA端口的操作速度可以被临时降低到老一代(表示为Gen Y)较低的操作速度,该较低的操作速度不会存在接收器均衡裕度检测问题。
当在方框404处确定SATA端口不是eSATA端口时,或者在方框406处降低了SATA端口的操作速度时,过程400可以在方框408处继续。在方框408处,SATA端口可以被使能。
可以针对SATA总线适配器/接口116的每个SATA端口重复过程400。在实施例中,Gen X可以是Gen 3并且Gen Y可以是Gen 2。
返回参见图2-3,在完成方框202处的操作时,过程200可以在方框204处继续。在方框204处,可以做出在方框202处至少一个SATA端口是否被确定为被提供有DTLE训练支持以及SATA端口的操作速度是否是Gen X或超过Gen X的确定。在确定在方框202处没有SATA端口被确定为被提供有DTLE训练支持或者没有SATA端口的操作速度是GenX或超过GenX时,过程200可以在方框232处继续(通过图3的标签“B”),以继续进行引导的剩余部分,跳过与接收器均衡裕度确定和设置相关联的方框206-230的所有操作。
然而,在确定在方框202处至少一个SATA端口被确定为被提供有DTLE训练以及SATA端口的操作速度是GenX或超过GenX时,过程200可以在方框206处继续。在方框206处,可以获得(例如,从NVRAM 103)与SATA端口相关联的配置信息,例如包括先前确定的设备序列号和DTLE值。
接下来,在方框208处,可以识别被附接到SATA端口的当前设备,并且可以(从设备)获得其序列号。然后,在方框210处,做出当前设备是否是GenX(或超过GenX)设备的确定。接下来,在确定当前设备是Gen X设备时,在方框212处,可以做出针对该端口获得的先前确定的序列号与当前附接到SATA端口的设备的序列号是否匹配的确定。
接下来,在确定两个序列号不匹配时,在方框214处,可以做出表明SATA端口要求DTLE训练的记录。或者,在确定两个序列号匹配时,在方框216处,SATA端口的DTLE值可以被设置为所获得的先前DTLE值。接下来,在方框218处,可以式SATA端口的操作速度增加回到在其速度被减低之前的GenX(或超过GenX)。
接下来,在完成方框214或218处的操作时,过程200可以进行到方框220。在方框220处,可以关于所有SATA端口是否已被检查做出确定。如果为否,则过程200可以进行到方框202,其中待分析的SATA端口可以被设置到下一个SATA端口,并且在方框208处继续并由此开始,如上所述。另一方面,如果在方框220处确定所有SATA端口已被检查,则过程200可以在方框224处继续(通过图3的标签A连接)。
在方框224处,可以做出是否存在做出的指示SATA端口需要DTLE训练的任何记录的确定。在确定至少一个SATA端口需要DTLE训练时,过程200可以进行到方框226。在方框226处,可以向被标注需要DTLE训练的所有SATA端口提供DTLE训练。接下来在方框228处,为了确保引导过程可以更迅速地完成,可以使用DTLE训练的结果,即,训练的DTLE值和存储设备序列号,来更新平台信息,用于随后存储到例如NVRAM 103中(在下一次引导中)。
另一方面,当在方框224处确定没有SATA端口被确定为需要DTLE训练时,过程200可以在方框230处继续。在方框230处,过程200暂时等待以确保完成了所有先前发起的升速操作,该所有先前发起的升速操作将SATA端口的操作速度增加回到它们降低之前的操作速度(例如,参见方框218)。
当在方框228处完成更新平台信息时,或在方框230处完成等待时,过程200可以进行到方框232。在方框232处,可以完成引导过程的剩余部分,包括POST的剩余部分和POST之后的操作。
现在参见图5,其中示出了根据各种实施例用于执行DTLE训练的过程。如图所示,用于执行针对SATA端口的DTLE训练的过程500可以包括方框502-510处的操作。如上所述,可以例如通过图1的BIOS 114来执行所述操作。在其他实施例中,可以在不具有所述操作中的一些的情况下、在具有附加操作的情况下和/或在所述操作的不同顺序的情况下来执行过程500。
在方框502处,被标记为需要DTLE训练的所有SATA端口的操作速度被增加回到它们减少之前的操作速度(GenX或超过Gen X)。接下来在方框504处,将计算平台置于裕度确定和设置模式中。
接下来,在方框506处,针对被标记为需要训练的下一个SATA端口,DTLE训练以节拍步长(tickstep)=0(DTLE候选值)开始。接下来,在方框508处,做出当前DTLE候选值是否大于预定的最大允许DTLE值的确定。
当在方框508处确定当前DTLE候选值不大于预定的最大允许DTLE值时,过程500在方框512处继续。在方框512处,将节拍步长设置到下一个节拍步长值。接下来,在方框514处,过程500等待停留时间量(例如,15ms),然后继续到方框516。在方框516处,做出SATA端口的状态是否指示错误的确定。如果SATA端口的状态指示没有错误,则过程500进行到方框522并由此继续,这将进行进一步描述。
然而,如果SATA端口的状态没有指示错误,则过程500可以进行到方框518。在方框518处,做出SATA端口的操作速度是否被降低的确定。在确定SATA端口的操作速度先前没有被降低时,过程500返回到方框506并由此针对另一个SATA端口继续,如先前描述的。
另一方面,如果在方框518处确定SATA端口的操作速度被降低,则过程500可以进行到方框520。在方框520处,端口的速度可以被恢复回到其降低之前的速度,GenX或超过GenX。从方框520,过程500可以返回到方框504,并且由此继续,如先前描述的。
在方框522处,在确定端口状态没有指示错误之后,可以做出当前节拍步长(DTLE候选值)是否是待分析的最后一个节拍步长的进一步确定。在确定当前节拍步长(DTLE候选值)不是待分析的最后一个节拍步长时,过程500可以返回到方框512并且由此进行以分析另一个节拍步长(DTLE候选值),如先前描述的。
然而,如果确定当前节拍步长(DTLE候选值)是待分析的最后一个节拍步长时,则过程500可以进行到方框524。在方框524处,可以做出是否还存在更多待DTLE训练的SATA端口的确定。在确定还存在更多待DTLE训练的SATA端口时,过程500可以返回到方框506并由此继续以对需要训练的另一个SATA端口进行训练,如先前描述的。否则,用于对SATA端口进行DTLE训练以确定和设置接收器均衡裕度的过程500可以结束。
在实施例中,以节拍步长(DTLE候选值)的有限集合来训练每个SATA端口,例如,经由尺寸为2的5个步长的{2,4,6,8}DTLE候选值,从步长=0开始,横跨接收器均衡范围的子集而非整个接收器均衡范围。可以考虑对总的引导时间的允许影响量来根据经验选择该范围。即,可以最优地选择DTLE候选值,使得实时DTLE训练对总的引导时间的影响保持可接受。从上述描述中应当理解的是,本公开的接收器均衡裕度确定和设置操作为总的引导时间提供最小的影响。因此,对于被配置为通过快速引导过程实施的计算系统的实施例,本公开的自动接收机均衡裕度确定和设置最小化地影响这样的快速引导过程。
本领域技术人员将理解,本公开可以被实现为方法或计算机程序产品。因此,除了如先前描述的被实现在硬件中以外,本公开可以采用整体软件实施例(包括固件、驻留软件、微代码等)或者组合软件和硬件方面的实施例的形式,所有这些通常可以被称为“电路”、“模块”或“系统”。而且,本公开可以采用体现在表现的任何有形的或非暂时性介质中的计算机程序产品的形式,该表现的有形的或非暂时性介质具有体现在介质中的计算机可用程序代码。图6示出了示例性计算机可读非暂时性存储介质,该示例性计算机可读非暂时性存储介质可以适合用于存储指令,该指令使得装置响应于通过该装置对指令的执行来实践本公开的选定方面。如图所示,非暂时性计算机可读存储介质602可以包括多个编程指令604。编程指令604可以被配置为使能设备,例如,计算系统100,响应于程序指令的执行来执行例如与图1的BIOS 114和/或图2-5的过程200(包括过程400和500)相关联的各种操作。在替换实施例中,编程指令604可以代替地被置于多个计算机可读非暂时性存储介质602上。在替换实施例中,程序指令604可以被置于计算机可读有形存储介质602上,例如,信号。
可以使用一种或多种计算机可用或计算机可读介质的任意组合。计算机可用或计算机可读介质可以例如是但不局限于电子、磁、光学、电磁、红外或者半导体系统、装置、设备或传播介质。计算机可读介质的更具体示例(非穷尽的列表)可以包括如下:具有一条或多条导线的电气连接、便携式计算机盘片、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光学存储设备、诸如支持因特网或内联网的传输介质或磁性存储设备。注意到,计算机可用或计算机可读介质甚至可以是其上打印有程序的纸或另一适当介质,因为程序可以例如经由对该纸或其他介质进行光学扫描来进行电学捕获,然后进行编译、解释或者如果需要以其他适当的方式进行处理,并且接着被存储到计算机存储器中。在本文档的上下文中,计算机可用或计算机可读介质可以是任何如下介质,该介质可以包含、存储、传送、传播或者传输用于由指令执行系统、装置或者设备使用或者与指令执行系统、装置或者设备结合使用的程序。机器可用介质可以包括在基带中或者作为载波的一部分的传播的数据信号,在该传播的数据信号中体现有计算机可用程序代码。计算机可用程序代码可以使用任何适当的介质进行传输,包括但不局限于无线、有线、光缆、RF等等。
用于执行本公开的操作的计算机程序代码可以使用一种或多种编程语言的任意组合来编写,所述编程语言包括诸如Java、Smalltalk、C++之类的面向对象的编程语言以及诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。所述程序代码可以完全地在用户的计算机上执行、部分地在用户的计算机上执行、作为独立的软件包、部分地在用户的计算机上并且部分地在远程计算机上执行,或者完全地在远程计算机或服务器上执行。在后者的情况中,所述远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。
参考根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或框图描述了本公开。应当理解,该流程图和/或框图的每一个方框,以及在该流程图和/或框图中的方框的组合可以由计算机程序指令实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置以制造机器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个方框中指定的功能/动作的单元。
也可以将这些计算机程序指令存储在计算机可读介质中,该计算机可读介质可以指示计算机或其它可编程数据处理装置按照特定方式运行,使得存储在计算机可读介质中的指令产生制品,所述制品包括实现在流程图和/或框图的一个或多个方框中指定的功能/动作的指令单元。
计算机程序指令还可以被载入到计算机或其它可编程数据处理装置上,使得在该计算机或其它可编程装置上执行一系列操作步骤来产生计算机实现的过程,以使得在该计算机或其它可编程装置上执行的指令提供用于实现在流程图和/或框图的一个或多个方框中指定的功能/动作的过程。
附图中的流程图和框图示出了根据本公开各个实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。为此,流程图或框图的每个方框可以表示模块、段或代码部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。还应该注意,在一些替代性实现中,方框中标注的功能可以不按照图中所标注的顺序发生。例如,取决于所涉及到的功能,连续示出的两个方框实际上可以被基本上同时执行,或者所述方框有时会以相反的顺序执行。还应当注意的是,框图和/或流程图说明中的每个方框以及框图和/或流程图说明中方框的组合可以由执行指定功能或动作的专用的基于硬件的系统或专用硬件与计算机指令的组合来实现。
这里使用的术语仅用于描述特定实施例的目的,并不意在限制本公开。正如在本文中使用的,单数形式的“一个”、“一种”及“所述”意在也包括复数形式,除非上下文中另外明确说明。将进一步理解的是,在该说明书中使用的术语“包括”和/或“包含”指定存在多个表述的特征、整数、步骤、操作、元件和/或组件,但是不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组。
实施例可以被实现为计算机过程、计算系统、或者诸如计算机可读介质的计算机程序产品的制品。计算机程序产品可以是计算机系统可读的并且编码用于执行计算机过程的计算机程序指令的计算机存储介质。
下面权利要求中的所有单元或步骤加上功能元件的相应结构、材料、动作及等同物意在包括用于与具体请求保护的其他请求保护的元件相组合来执行功能的任意结构、材料或动作。为了说明和描述的目的已经呈现了本公开的描述,但是其并非意在按照所公开的形式对于本公开是穷举性或限制性的。在不偏离本公开的范围和精神的情况下,许多修改和变型对于本领域普通技术人员来说都将是明显的。为了最好地解释本公开的原理和实际应用,并且为了使本领域的其它普通技术人员能够理解具有适于特定的期望用途的各种变形的本公开实施例,选择和描述了实施例。
返回参见图1,对于一个实施例,处理器102中的至少一个处理器可以与具有BIOS114的NVRAM 103封装在一起。对于一个实施例,处理器102中的至少一个处理器可以与具有BIOS 114的NVRAM 103封装在一起以形成系统级封装(SiP)。对于一个实施例,处理器102中的至少一个处理器可以与具有BIOS 114的NVRAM 103一起集成在同一裸片上。对于一个实施例,处理器102中的至少一个处理器可以与具有BIOS 114的NVRAM 103封装在一起以形成片上系统(SoC)。对于至少一个实施例,SoC可以例如使用于但不局限于可穿戴设备、智能手机或计算平板。
因而,已经描述了本公开的各种示例实施例,包括但不局限于:
示例1可以是用于计算的装置。该装置可以包括:一个或多个处理器;一个或多个串行高级技术附接(SATA)端口;以及基本输入-输出系统(BIOS)。BIOS由一个或多个处理器操作以便:在装置引导的上电自检(POST)阶段期间,确定设备是否被附接到一个或多个SATA端口中的第一SATA端口。在确定设备被附接到第一SATA端口时,BIOS进一步用于确定是否针对该设备设置了接收器均衡裕度;并且在确定还未针对该设备设置接收器均衡裕度时,BIOS用于执行离散时间线性均衡(DTLE)训练以便针对该设备动态地确定并设置接收器均衡裕度。
示例2可以是示例1,其中,在进入POST阶段中时,BIOS可以使能一个或多个SATA端口,包括,对于每个SATA端口,确定是否需要降低SATA端口的速度,并且在确定需要时,降低该SATA端口的速度。
示例3可以是示例2,其中,所述BIOS可以通过确定DTLE支持是否要被提供用于SATA端口并且确定该SATA端口是否是SATA端口的特定的一代来确定是否需要降低SATA端口的速度;并且其中,所述BIOS通过确定SATA端口是否是外部SATA(eSATA)端口来进一步确定是否需要降低SATA端口的速度。
示例4可以是示例1-3中的任意一个,其中,为了确定是否针对被附接到第一SATA端口的设备设置了接收器均衡裕度,BIOS用于:获取与第一SATA端口相关联的先前设备信息,所述先前设备信息包括设备序列号以及先前与第一SATA端口相关联的DTLE值;识别并获取当前被附接到第一SATA端口的设备的序列号;确定该第一SATA端口是否是特定的一代;并且在确定该第一SATA端口是特定的一代时,确定序列号是否匹配。
示例5可以是示例4,其中为了确定是否针对被附接到第一SATA端口的设备设置了接收器均衡裕度,BIOS可以进一步在确定序列号不匹配时将第一SATA端口标记为需要DTLE训练,并且在确定序列号匹配时将第一SATA端口的DTLE值设置到先前的DTLE值,并且将第一SATA端口升速到特定的一代。
示例6可以是示例1-5中的任意一个,其中为了执行DTLE训练以便针对被附接到第一SATA端口的设备动态地确定并设置接收器均衡裕度,BIOS可以将所有SATA端口升速到特定的一代的操作速度,并且打开裕度模式。
示例7可以是示例6,其中为了执行DTLE训练以便针对被附接到第一SATA端口的设备动态地确定并设置接收器均衡裕度,BIOS可以进一步针对多个预定的DTLE值候选,从DTLE值候选中最低的一个DTLE值候选开始,迭代地测试第一SATA端口,并且在每次迭代时,确定当前的DTLE值候选是否超过了最大DTLE值,并且在确定当前的DTLE值候选没有超过最大DTLE值时,使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选,其中经迭代的预定的DTLE值候选的数量扫过接收器均衡范围的子集而非整个接收器均衡范围。
示例8可以是示例7,其中在每次迭代期间,在使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选之前,BIOS可以进一步确定第一SATA端口的状态是否指示错误,并且在确定第一SATA端口的状态没有指示错误时,BIOS继续使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选。
示例9可以是示例8,其中在确定第一SATA端口的状态指示错误时,BIOS可以进一步确定第一SATA端口的速度是否被训练降低,并且在确定第一SATA端口的速度被训练降低时,将第一SATA端口的速度恢复到SATA端口的特定的一代。
示例10可以是示例7-9中的任意一个,其中BIOS在确定当前的DTLE值候选超过了最大DTLE值时,可以在经迭代的DTLE候选值当中选择针对第一SATA端口的DTLE。
示例11可以是用于计算的方法。该方法可以包括:在计算系统的引导期间,通过计算系统的基本输入-输出系统(BIOS),在引导的上电自检(POST)阶段期间,确定设备是否被附接到串行高级技术附接(SATA)端口。该方法还可以包括在确定设备被附接到SATA端口时,通过BIOS进一步确定是否针对该设备设置了接收器均衡裕度;并且在确定还未针对该设备设置接收器均衡裕度时,执行离散时间线性均衡训练以便针对该设备动态地确定并设置接收器均衡裕度。
示例12可以是示例11,还包括,在进入POST阶段中时,BIOS使能一个或多个SATA端口,包括,针对每个SATA端口,确定是否需要降低SATA端口的速度,并且在确定需要时,降低该SATA端口的速度。
示例13可以是示例12,其中确定是否需要降低SATA端口的速度包括确定DTLE支持是否要被提供用于SATA端口,并且确定该SATA端口是否是SATA端口的特定的一代或者该SATA端口是否是外部SATA(eSATA)端口。
示例14可以是示例11-13中的任意一个,其中确定是否已经针对被附接到第一SATA端口的设备设置了接收器均衡裕度包括:获得与第一SATA端口相关联的先前设备信息,所述先前设备信息包括设备序列号和先前与第一SATA端口相关联的DTLE值;识别并获取当前被附接到第一SATA端口的设备的序列号;确定第一SATA端口是否是特定的一代;并且在确定第一SATA端口是特定的一代时,确定序列号是否匹配。
示例15可以是示例14,其中确定是否已经针对被附接到第一SATA端口的设备设置了接收器均衡裕度包括:BIOS在确定序列号不匹配时将第一SATA端口标记为需要DTLE训练;并且在确定序列号匹配时将第一SATA端口的DTLE值设置到先前的DTLE值,并将第一SATA端口升速到特定的一代。
示例16可以是示例11-14中的任意一个,其中执行DTLE训练以便针对被附接到第一SATA端口的设备动态地确定并设置接收器均衡裕度包括:将所有SATA端口升速到特定的一代的操作速度,并且打开裕度模式。
示例17可以是示例16,其中执行DTLE训练以便针对被附接到第一SATA端口的设备动态地确定和设置接收器均衡裕度包括:针对多个预定的DTLE值候选,从DTLE值候选中最低的DTLE值候选开始,迭代地测试第一SATA端口,并且在每次迭代时,确定当前的DTLE值候选是否超过了最大DTLE值,并且在确定当前的DTLE候选值没有超过最大DTLE值时,使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选,其中经迭代的预定的DTLE值候选的数量扫过接收器均衡范围的子集而非全部接收器均衡范围。
示例18可以是示例17,其中在每次迭代期间,在使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选之前,BIOS进一步确定第一SATA端口的状态是否指示错误,并且在确定第一SATA端口的状态没有指示错误时,BIOS继续使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选。
示例19可以是示例18,其中在确定第一SATA端口的状态指示错误时,BIOS进一步确定第一SATA端口的速度是否被训练降低,并且在确定第一SATA端口的速度被训练降低时,将第一SATA端口的速度恢复到SATA端口的特定的一代。
示例20可以是示例17-19中的任意一个,其中执行DTLE训练还包括,在确定当前的DTLE值候选超过最大DTLE值时,在经迭代的DTLE值候选当中选择针对第一SATA端口的DTLE。
示例21可以是至少一个包括指令的计算机可读存储介质,该指令响应于由计算装置执行而使该计算装置实现用于该计算装置的基本输入输出系统(BIOS)。在计算系统的引导期间,BIOS可以执行多个操作,包括:在引导的上电自检(POST)阶段期间,确定设备是否被附接到串行高级技术附接(SATA)端口;在确定设备被附接到SATA端口时,进一步确定是否针对该设备设置了接收器均衡裕度;并且在确定还未针对该设备设置接收器均衡裕度时,执行离散时间线性均衡训练以便针对该设备动态地确定并设置接收器均衡裕度。
示例22可以是示例21,其中BIOS在进入POST阶段中时使能一个或多个SATA端口,包括,针对每个SATA端口,确定是否需要降低SATA端口的速度,并且在确定需要时,降低该SATA端口的速度。
示例23可以是示例22,其中,BIOS可以通过确定DTLE支持是否要被提供用于SATA端口并且确定SATA端口是否是SATA端口的特定的一代,来确定是否需要降低SATA端口的速度;并且其中,BIOS用于进一步通过确定SATA端口是否是外部SATA(eSATA)端口,来确定是否需要降低SATA端口的速度。
示例24可以是示例21-23中的任意一个,其中为了确定是否针对被附接到第一SATA端口的设备设置了接收器均衡裕度,BIOS可以:获得与第一SATA端口相关联的先前设备信息,所述先前设备信息包括设备序列号和先前与第一SATA端口相关联的DTLE值;识别并获得当前被附接到第一SATA端口的设备的序列号;确定该第一SATA端口是否是特定的一代;并且在确定该第一SATA端口是特定的一代时,确定序列号是否匹配。
示例25可以是示例24,其中为了确定是否针对被附接到第一SATA端口的设备设置了接收器均衡裕度,BIOS可以进一步在确定序列号不匹配时将第一SATA端口标记为需要DTLE训练;并且在确定序列号匹配时将第一SATA端口的DTLE值设置到先前的DTLE值,并且将第一SATA端口升速到特定的一代。
示例26可以是示例21-25中的任意一个,其中为了执行DTLE训练以便针对被附接到第一SATA端口的设备动态地确定并设置接收器均衡裕度,BIOS可以将所有SATA端口升速到特定的一代的操作速度,并且打开裕度模式。
示例27可以是示例26,其中为了执行DTLE训练以便针对被附接到第一SATA端口的设备动态地确定并设置接收器均衡裕度,BIOS进一步用于针对多个预定的DTLE值候选,从DTLE值候选中最低的DTLE值候选开始,迭代地测试第一SATA端口,并且在每次迭代时,确定当前的DTLE值候选是否超过了最大DTLE值,并且在确定当前的DTLE值候选未超过最大DTLE值时,使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选,其中经迭代的预定的DTLE值候选的数量扫过接收器均衡范围的子集而非全部接收器均衡范围。
示例28可以是示例27,其中在每次迭代期间,在使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选之前,BIOS可以进一步确定第一SATA端口的状态是否指示错误,并且在确定第一SATA端口的状态没有指示错误时,BIOS用于继续使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选。
示例29可以是示例28,其中在确定第一SATA端口的状态指示错误时,BIOS可以进一步确定第一SATA端口的速度是否被训练降低,并且在确定第一SATA端口的速度被训练降低时,将第一SATA端口的速度恢复到SATA端口的特定一代。
示例30可以是示例27-29中的任意一个,其中在确定当前的DTLE值候选超过最大DTLE值时,BIOS用于在经迭代的DTLE值候选当中选择针对第一SATA端口的DTLE。
示例31可以是用于计算的装置。该装置可以包括:用于引导装置的基本输入-输出系统(BIOS)单元,包括用于在引导的上电自检(POST)阶段期间确定设备是否被附接到串行高级技术附接(SATA)端口的单元。所述BIOS单元可以进一步包括用于在确定设备被附接到SATA端口时,确定是否已经针对该设备设置了接收器均衡裕度的单元;以及用于在确定还未针对该设备设置接收器均衡裕度时,执行离散时间线性均衡训练以便针对该设备动态地确定和设置接收器均衡裕度的单元。
示例32可以是示例31,其中BIOS单元可以进一步包括用于在进入POST阶段中时,使能一个或多个SATA端口的单元,包括,用于针对每个SATA端口确定是否需要降低SATA端口的速度,并且在确定需要时降低该SATA端口的速度的单元。
示例33可以是示例32,其中用于确定是否需要降低SATA端口的速度的单元可以进一步包括用于确定DTLE是否要被提供用于SATA端口以及该SATA端口是否是SATA端口的特定一代或者该SATA端口是否是外部SATA(eSATA)端口的单元。
示例34可以是示例31-33中的任意一个,其中用于确定是否针对被附接到第一SATA端口的设备设置了接收器均衡裕度的单元可以包括:用于获得与第一SATA端口相关联的先前设备信息的单元,该先前设备信息包括设备序列号和先前与第一SATA端口相关联的DTLE值;用于识别并获得当前被附接到第一SATA端口的设备的序列号的单元;用于确定第一SATA端口是否是特定的一代的单元;以及用于在确定第一SATA端口是特定的一代时确定序列号是否匹配的单元。
示例35可以是示例34,其中用于确定是否已经针对被附接到第一SATA端口的设备设置了接收器均衡裕度的单元可以包括:用于在确定序列号不匹配时将第一SATA端口标记为需要DTLE训练的单元;以及用于在确定序列号匹配时将第一SATA端口的DTLE值设置为先前的DTLE值,并且将第一SATA端口升速到特定一代的单元。
示例36可以是示例31-35中的任意一个,其中用于执行DTLE训练以便针对被附接到第一SATA端口的设备动态地确定并设置接收器均衡裕度的单元可以包括:用于将所有SATA端口升速到特定的一代的操作速度,并且打开裕度模式的单元。
权利要求36所述的装置,其中用于执行DTLE训练以便针对被附接到第一SATA端口的设备动态地确定并设置接收器均衡裕度的单元可以包括用于针对多个预定的DTEL值候选,从DTLE值候选中最低的DTLE值候选开始,迭代地测试第一SATA端口,并且在每次迭代时,确定当前的DTLE值候选是否超过了最大DTLE值,并且在确定当前的DTLE值候选没有超过最大DTLE值时,使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选的单元,其中经迭代的预定的DTLE值候选的数量扫过接收器均衡范围的子集而非全部接收器均衡范围。
示例38可以是示例37,其中用于迭代地测试的单元可以包括用于在每次迭代期间,在使当前的DTLE值候选自增到DTLE值候选当中下一个较高的DTLE值候选之前,确定第一SATA端口的状态是否指示错误,并且在确定第一SATA端口的状态没有指示错误时,继续使当前的DTLE值候选自增到DTLE值候选中下一个较高的DTLE值候选的单元。
示例39可以是示例38,其中用于确定第一SATA端口的状态是否指示错误的单元可以包括用于在确定第一SATA端口的状态指示错误时,确定第一SATA端口的速度是否被训练降低;并且在确定第一SATA端口的速度被训练降低时,将第一SATA端口的速度恢复到SATA端口的特定的一代的单元。
示例40可以是37-39中的任意一个,其中用于执行DTLE训练的单元可以包括用于在确定当前的DTLE值候选超过了最大DTLE值时,在经迭代的DTLE候选值当中选择针对第一SATA端口的DTLE的单元。
本领域的普通技术人员将明白,可以在不偏离本公开的精神和范围的情况下对本公开的设备和相关联的方法的公开实施例做出各种修改和变化。因而,本公开旨在覆盖上面公开的实施例的修改和变化,只要这些修改和变化落在所附权利要求及其等同物的范围内。

Claims (25)

1.一种用于计算的装置,包括:
一个或多个处理器;
一个或多个串行高级技术附接(SATA)端口;以及
通过所述一个或多个处理器操作以执行下列操作的基础输入-输出系统(BIOS):
在所述装置的引导的上电自检(POST)阶段期间,确定设备是否被附接到所述一个或多个SATA端口中的第一SATA端口;
在确定设备被附接到所述第一SATA端口时,进一步确定是否针对所述设备设置了接收器均衡裕度;以及
在确定还未针对所述设备设置接收器均衡裕度时,执行离散时间线性均衡(DTLE)训练以便针对所述设备动态地确定并且设置所述接收器均衡裕度。
2.根据权利要求1所述的装置,其中,在进入所述POST阶段中时,所述BIOS用于使能所述一个或多个SATA端口,包括,针对每个SATA端口,确定是否需要对SATA端口进行降速,并且在确定需要时,对所述SATA端口进行降速。
3.根据权利要求2所述的装置,其中,所述BIOS用于通过确定DTLE支持是否要被提供用于所述SATA端口以及确定所述SATA端口是否是SATA端口中的特定的一代,来确定是否需要对所述SATA端口进行降速;并且其中,所述BIOS还用于通过确定所述SATA端口是否是外部SATA(eSATA)端口,来确定是否需要对所述SATA端口进行降速。
4.根据权利要求1所述的装置,其中,为了确定是否针对被附接到所述第一SATA端口的所述设备设置了接收器均衡裕度,所述BIOS用于:
获得与所述第一SATA端口相关联的先前设备信息,所述先前设备信息包括设备序列号以及先前与所述第一SATA端口相关联的DTLE值;
识别并且获取当前被附接到所述第一SATA端口的所述设备的序列号;
确定所述第一SATA端口是否是特定的一代;以及
在确定所述第一SATA端口是所述特定的一代时,确定序列号是否匹配。
5.根据权利要求4所述的装置,其中,为了确定是否针对被附接到所述第一SATA端口的所述设备设置了接收器均衡裕度,所述BIOS进一步用于:在确定所述序列号不匹配时,将所述第一SATA端口标记为需要DTLE训练;并且在确定所述序列号匹配时,将所述第一SATA端口的所述DTLE值设置为先前的DTLE值,并且将所述第一SATA端口升速到所述特定的一代。
6.根据权利要求1-5中任意一项所述的装置,其中,为了执行DTLE训练以便针对被附接到所述第一SATA端口的所述设备动态地确定并且设置所述接收器均衡裕度,所述BIOS用于将所有SATA端口升速到特定的一代的操作速度,并且打开裕度模式。
7.根据权利要求6所述的装置,其中,为了执行DTLE训练以便针对被附接到所述第一SATA端口的所述设备动态地确定并且设置所述接收器均衡裕度,所述BIOS进一步用于:针对多个预定的DTLE值候选,从DTLE值候选中最低的DTLE值候选开始,迭代地测试所述第一SATA端口,并且在每次迭代时,确定当前的DTLE值候选是否超过了最大DTLE值,并且在确定所述当前的DTLE值候选未超过所述最大DTLE值时,使所述当前的DTLE值候选自增到所述DTLE值候选中下一个较高的DTLE值候选,其中,经迭代的预定的DTLE值候选的数量扫过接收器均衡范围的子集而非整个接收器均衡范围。
8.根据权利要求7所述的装置,其中,在每次迭代期间,在使所述当前的DTLE值候选自增到所述DTLE值候选中下一个较高的DTLE值候选之前,所述BIOS还用于确定所述第一SATA端口的状态是否指示错误,并且在确定所述第一SATA端口的状态未指示错误时,所述BIOS用于继续使所述当前的DTLE值候选自增到所述DTLE值候选中下一个较高的DTLE值候选。
9.根据权利要求8所述的装置,其中,在确定所述第一SATA端口的状态指示错误时,所述BIOS还用于确定所述第一SATA端口的速度是否被训练降低,并且在确定所述第一SATA端口的速度被训练降低时,将所述第一SATA端口的速度恢复到SATA端口的特定的一代。
10.根据权利要求7所述的装置,其中,在确定所述当前的DTLE值候选超过所述最大DTLE值时,所述BIOS用于在经迭代的DTLE值候选当中选择针对所述第一SATA端口的DTLE。
11.一种用于计算的方法,包括:
在计算系统的引导期间,
通过所述计算系统的基本输入-输出系统(BIOS),在所述引导的上电自检(POST)阶段期间,确定设备是否被附接到串行高级技术附接(SATA)端口;
在确定设备被附接到串行高级技术附接(SATA)端口时,还通过所述BIOS确定是否针对所述设备设置了接收器均衡裕度;以及
在确定还未针对所述设备设置接收器均衡裕度时,执行离散时间线性均衡训练以便针对所述设备动态地确定并且设置所述接收器均衡裕度。
12.根据权利要求11所述的方法,还包括,在进入所述POST阶段中时,所述BIOS使能所述一个或多个SATA端口,包括,针对每个SATA端口,确定是否需要对SATA端口进行降速,并且在确定需要时,对所述SATA端口进行降速。
13.根据权利要求12所述的方法,其中,确定是否需要对所述SATA端口进行降速包括确定DTLE支持是否要被提供用于所述SATA端口,以及确定所述SATA端口是否是SATA端口中的特定的一代或者确定所述SATA端口是否是外部SATA(eSATA)端口。
14.根据权利要求11所述的方法,其中,确定是否针对被附接到第一SATA端口的所述设备设置了接收器均衡裕度包括:
获得与所述第一SATA端口相关联的先前设备信息,所述先前设备信息包括设备序列号和先前与所述第一SATA端口相关联的DTLE值;
识别并且获取当前被附接到所述第一SATA端口的所述设备的序列号;
确定所述第一SATA端口是否是特定的一代;以及
在确定所述第一SATA端口是所述特定的一代时,确定序列号是否匹配。
15.根据权利要求14所述的方法,其中,确定是否针对被附接到所述第一SATA端口的所述设备设置了接收器均衡裕度包括:所述BIOS在确定所述序列号不匹配时,将所述第一SATA端口标记为需要DTLE训练;并且在确定所述序列号匹配时,将所述第一SATA端口的DTLE值设置为先前的DTLE值,并且将所述第一SATA端口升速到所述特定的一代。
16.根据权利要求11所述的方法,其中,执行DTLE训练以便针对被附接到所述第一SATA端口的所述设备动态地确定并且设置所述接收器均衡裕度包括:将所有SATA端口升速到特定的一代的操作速度,并且打开裕度模式。
17.根据权利要求16所述的方法,其中,执行DTLE训练以便针对被附接到所述第一SATA端口的所述设备动态地确定并且设置所述接收器均衡裕度包括:针对多个预定的DTLE值候选,从DTLE值候选中最低的DTLE值候选开始,迭代地测试所述第一SATA端口,并且在每次迭代时,确定当前的DTLE值候选是否超过了最大DTLE值,并且在确定所述当前的DTLE值候选未超过所述最大DTLE值时,使所述当前的DTLE值候选自增到所述DTLE值候选中下一个较高的DTLE值候选,其中,经迭代的预定的DTLE值候选的数量扫过接收器均衡范围的子集而非整个收器均衡范围。
18.根据权利要求17所述的方法,其中,在每次迭代期间,在使所述当前的DTLE值候选自增到所述DTLE值候选中下一个较高的DTLE值候选之前,所述BIOS还确定所述第一SATA端口的状态是否指示错误,并且在确定所述第一SATA端口的状态未指示错误时,所述BIOS继续使所述当前的DTLE值候选自增到所述DTLE值候选中下一个较高的DTLE值候选。
19.根据权利要求18所述的方法,其中,在确定所述第一SATA端口的状态指示错误时,所述BIOS还确定所述第一SATA端口的速度是否被训练降低,并且在确定所述第一SATA端口的速度被训练降低时,将所述第一SATA端口的速度恢复到SATA端口的特定的一代。
20.根据权利要求17所述的方法,其中,执行DTLE训练还包括在确定所述当前的DTLE值候选超过了所述最大DTLE值时,在经迭代的DTLE值候选当中选择针对所述第一SATA端口的DTLE。
21.至少一种包括指令的计算机可读存储介质,所述指令响应于由计算装置执行而使所述计算装置实现用于所述计算装置的基本输入-输出系统(BIOS),其中,所述BIOS用于执行权利要求11-20所述的方法中的任意一种。
22.一种用于计算的装置,包括:
用于引导所述装置的基本输入-输出系统(BIOS)单元,包括:
用于在所述引导的上电自检阶段期间,确定设备是否被附接到串行高级技术附接(SATA)端口的单元;
用于在确定设备被附接到所述SATA端口时,确定是否针对所述设备设置了接收器均衡裕度的单元;以及
用于在确定还未针对所述设备设置接收器均衡裕度时,执行离散时间线性均衡训练以便针对所述设备动态地确定并设置所述接收器均衡裕度的单元。
23.根据权利要求22所述的装置,其中,用于确定是否针对被附接到第一SATA端口的所述设备设置了接收器均衡裕度的单元包括:
用于获得与所述第一SATA端口相关联的先前设备信息的单元,所述先前设备信息包括设备序列号和先前与所述第一SATA端口相关联的DTLE值;
用于识别并且获取当前被附接到所述第一SATA端口的所述设备的序列号的单元;
用于确定所述第一SATA端口是否是特定的一代的单元;以及
用于在确定所述第一SATA端口是所述特定的一代时,确定序列号是否匹配的单元。
24.根据权利要求23所述的装置,其中,用于确定是否针对被附接到所述第一SATA端口的所述设备设置了接收器均衡裕度的单元包括:用于在确定所述序列号不匹配时将所述第一SATA端口标记为需要DTLE训练的单元;以及用于在确定所述序列号匹配时将所述第一SATA端口的DTLE值设置为先前的DTLE值,并且将所述第一SATA端口升速到所述特定的一代的单元。
25.根据权利要求22所述的装置,其中,用于执行DTLE训练以便针对被附接到所述第一SATA端口的所述设备动态地确定并且设置所述接收器均衡裕度的单元包括:
用于将所有SATA端口升速到特定的一代的操作速度并且打开裕度模式的单元;以及
用于针对多个预定的DTLE值候选,从DTLE值候选中最低的DTLE值候选开始,迭代地测试所述第一SATA端口,并且在每次迭代时,确定当前的DTLE值候选是否超过了最大DTLE值,并且在确定所述当前的DTLE值候选未超过所述最大DTLE值时,使所述当前的DTLE值候选自增到所述DTLE值候选中下一个较高的DTLE值候选的单元,其中,经迭代的预定的DTLE值候选的数量扫过接收器均衡范围的子集而非整个收器均衡范围。
CN201580060807.7A 2014-12-09 2015-11-03 Sata接收器均衡裕度确定/设置的方法和装置 Expired - Fee Related CN107077406B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/564,869 2014-12-09
US14/564,869 US9552267B2 (en) 2014-12-09 2014-12-09 SATA receiver equalization margin determination/setting method and apparatus
PCT/US2015/058871 WO2016093983A1 (en) 2014-12-09 2015-11-03 Sata receiver equalization margin determination/setting method and apparatus

Publications (2)

Publication Number Publication Date
CN107077406A true CN107077406A (zh) 2017-08-18
CN107077406B CN107077406B (zh) 2021-02-05

Family

ID=56094449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580060807.7A Expired - Fee Related CN107077406B (zh) 2014-12-09 2015-11-03 Sata接收器均衡裕度确定/设置的方法和装置

Country Status (4)

Country Link
US (1) US9552267B2 (zh)
EP (1) EP3230884A4 (zh)
CN (1) CN107077406B (zh)
WO (1) WO2016093983A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860789B2 (en) * 2017-02-08 2020-12-08 Intel Corporation Management of multiple interface ports
CN107608836B (zh) * 2017-09-05 2020-08-25 苏州浪潮智能科技有限公司 一种sata链路最优值调整的测试方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243666A1 (en) * 2003-05-29 2004-12-02 Wood Robert B. Method and apparatus for automatic Phy calibration based on negotiated link speed
CN101295252A (zh) * 2007-04-28 2008-10-29 佛山市顺德区顺达电脑厂有限公司 设定系统以及方法
US20090007155A1 (en) * 2007-06-29 2009-01-01 Emulex Design & Manufacturing Corporation Expander-based solution to the dynamic STP address problem
US20110191637A1 (en) * 2010-02-04 2011-08-04 Dot Hill Systems Corporation Method and apparatus for SAS speed adjustment
CN102681868A (zh) * 2011-01-25 2012-09-19 三星电子株式会社 引导信息处理系统的方法和执行该方法的信息处理系统
CN103312642A (zh) * 2012-03-06 2013-09-18 鸿富锦精密工业(深圳)有限公司 多速率信号的均衡器补偿最佳化方式确定系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814245B2 (en) 2006-10-05 2010-10-12 Lsi Corporation Apparatus and methods for improved SATA device interaction without a SAS expander
KR101363414B1 (ko) * 2008-07-03 2014-02-14 삼성전자 주식회사 컴퓨터 시스템 및 그 제어방법
US20110106997A1 (en) * 2009-11-05 2011-05-05 Lsi Corporation Methods and apparatus for interconnecting sas/sata devices using either electrical or optical transceivers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243666A1 (en) * 2003-05-29 2004-12-02 Wood Robert B. Method and apparatus for automatic Phy calibration based on negotiated link speed
CN101295252A (zh) * 2007-04-28 2008-10-29 佛山市顺德区顺达电脑厂有限公司 设定系统以及方法
US20090007155A1 (en) * 2007-06-29 2009-01-01 Emulex Design & Manufacturing Corporation Expander-based solution to the dynamic STP address problem
US20110191637A1 (en) * 2010-02-04 2011-08-04 Dot Hill Systems Corporation Method and apparatus for SAS speed adjustment
CN102681868A (zh) * 2011-01-25 2012-09-19 三星电子株式会社 引导信息处理系统的方法和执行该方法的信息处理系统
CN103312642A (zh) * 2012-03-06 2013-09-18 鸿富锦精密工业(深圳)有限公司 多速率信号的均衡器补偿最佳化方式确定系统及方法

Also Published As

Publication number Publication date
EP3230884A1 (en) 2017-10-18
CN107077406B (zh) 2021-02-05
EP3230884A4 (en) 2018-09-05
WO2016093983A1 (en) 2016-06-16
US20160162379A1 (en) 2016-06-09
US9552267B2 (en) 2017-01-24

Similar Documents

Publication Publication Date Title
EP3664093B1 (en) Semiconductor memory device employing processing in memory (pim) and method of operating the semiconductor memory device
CN107423169A (zh) 用于测试高速外围设备互连设备的方法和系统
US9652570B1 (en) Automatic implementation of a customized system-on-chip
US10209306B2 (en) Methods and systems for generating functional test patterns for manufacture test
US11568232B2 (en) Deep learning FPGA converter
CN112232000B (zh) 跨多个验证域的验证系统、验证方法、验证设备
TWI620190B (zh) 記憶體控制電路與記憶體測試方法
US20140058699A1 (en) Information processing apparatus, test data generating apparatus, and test data generating method
EP2003562A2 (en) Debugging techniques for a programmable integrated circuit
CN108292233A (zh) 开启虚拟机的应用处理器
CN107077406A (zh) Sata接收器均衡裕度确定/设置的方法和装置
US8724483B2 (en) Loopback configuration for bi-directional interfaces
CN106462548A (zh) 固件传感器层
JP5153670B2 (ja) 診断装置、診断方法および試験装置
CN112434478B (zh) 仿真逻辑系统设计的虚拟接口的方法及相关设备
US20050055190A1 (en) Circuit operation verification device and method
CN104881338B (zh) 半导体设备
CN106980513A (zh) 一种双引导文件的切换方法及装置
CN112885403B (zh) 一种Flash控制器的功能测试方法、装置及设备
EP3734491A1 (en) Method, apparatus, device, and medium for implementing simulator
CN107305515A (zh) 计算机实现方法、计算机程序产品以及计算系统
CN105579996B (zh) 硬件加速器的性能测量的方法、系统和计算机可读介质
JP2010107230A (ja) 試験装置、プログラム、記憶媒体、および、試験方法
US20230026653A1 (en) Transmit and receive channel swap for information handling systems,
CN106371959B (zh) 显示测试方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210205

Termination date: 20211103

CF01 Termination of patent right due to non-payment of annual fee