相關(guān)申請
本申請要求享有于2014年12月9日遞交的發(fā)明名稱為“satareceiverequalizationmargindetermination/settingmethodandapparatus”的美國專利申請14/564,869的優(yōu)先權(quán)。
本公開涉及計算領(lǐng)域,更具體地,本公開涉及用于sata設(shè)備的sata接收器均衡裕度的自動確定和設(shè)置。
背景技術(shù):
本文提供的背景描述用來大致給出本公開的上下文。除非本文另有說明,本節(jié)中描述的素材不是對于本申請中權(quán)利要求的現(xiàn)有技術(shù),并且沒有承認由于其包含在本節(jié)中而作為現(xiàn)有技術(shù)。
串行ata(advancedtechnologyattachment,高級技術(shù)附接),也被稱為sata,適配器和接口是用于將諸如存儲設(shè)備的設(shè)備附接到計算平臺的非常普遍的適配器/接口。目前,用于各種sata設(shè)備的sata接收器均衡裕度設(shè)置是手動調(diào)節(jié)和靜態(tài)設(shè)置的。手動過程典型地涉及執(zhí)行裕度分析、使用電動裕度工具在從0x0到0xf的整個接收器均衡范圍上掃過(sweep)。在識別各種sata設(shè)備的最優(yōu)接收器均衡裕度上,將設(shè)置靜態(tài)地編碼到各種計算平臺設(shè)計的基本輸入-輸出系統(tǒng)(bios)內(nèi)。由于各種形狀因子的過多的sata設(shè)備,以及各種各樣的計算平臺設(shè)計,這對于計算平臺設(shè)計人員而言是低效且繁重的。
附圖說明
通過以下結(jié)合附圖的詳細描述,將容易理解實施例。為了便于描述,相同的參考標號指代相同的結(jié)構(gòu)元件。在附圖的圖中,通過示例而非限制的方式示出了實施例。
圖1示出了根據(jù)各種實施例與本公開的sata接收器均衡裕度確定和設(shè)置教導(dǎo)相結(jié)合的示例計算系統(tǒng)。
圖2-3示出了根據(jù)各種實施例與本公開的sata接收器均衡裕度確定和設(shè)置教導(dǎo)相結(jié)合的示例引導(dǎo)過程。
圖4示出了根據(jù)各種實施例用于進入引導(dǎo)過程的上電自檢(post)階段并且使能所有sata端口的示例過程。
圖5示出了根據(jù)各種實施例用于執(zhí)行針對sata設(shè)備的離散時間線性均衡(dtle)訓練的示例過程。
圖6示出了根據(jù)所公開的實施例具有指令的存儲介質(zhì),所述指令用于實施參考圖1-5描述的方法。
具體實施方式
公開了與自動sata接收器均衡裕度確定和設(shè)置相關(guān)聯(lián)的裝置、方法和存儲介質(zhì)。在實施例中,裝置可以包括bios,該bios被配置為在post期間確定設(shè)備是否被附接到sata端口中的一個sata端口,并且在確定設(shè)備被附接到sata端口中的一個sata端口時,進一步確定是否針對該設(shè)備設(shè)置了接收器均衡裕度。另外,在確定還未針對該設(shè)備設(shè)置接收器均衡裕度時,bios可以被配置為執(zhí)行dtle訓練以便動態(tài)地確定和設(shè)置針對該設(shè)備的接收器均衡裕度。
在以下詳細描述中,參照形成本文一部分的附圖,其中在所有附圖中相同的標號指代相同的部件,并且通過說明的方式示出了可以實施的實施例。應(yīng)該理解的是,在不偏離本公開的范圍的情況下,可以利用其他實施例并且可以做出結(jié)構(gòu)或邏輯上的變化。因此,以下詳細描述不在限制意義上進行,并且實施例的范圍由所附權(quán)利要求及其等同物限定。
本公開的各個方面將在所附描述中予以公開。在不偏離本公開的精神和范圍的情況下,可以設(shè)計本公開的替代實施例及其等同形式。應(yīng)當注意的是,以下公開的相同元件在附圖中由相同的參考標號指示。
可以將各種操作以最有助于理解所要求保護的主題的方式依次描述為多個離散動作或操作。然而,描述的順序不應(yīng)該被解釋為暗示這些操作必須是依賴于順序的。特別地,這些操作可以不按照呈現(xiàn)的順序執(zhí)行。所描述的操作可以按照與所描述的實施例不同的順序執(zhí)行??梢詧?zhí)行各種附加的操作和/或可以在附加實施例中省略所描述的操作。
為了本公開的目的,短語“a和/或b”意味著(a)、(b)或(a和b)。為了本公開的目的,短語“a、b和/或c”意味著(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)。
說明書可以使用短語“在一實施例中,”或“在實施例中,”這可以分別指代相同或不同實施例中的一個或多個。而且,參考本公開的實施例使用的術(shù)語“包括”、“包含”、“具有”等等是同義的。
正如本文使用的,術(shù)語“模塊”可以指代專用集成電路(asic)、電子電路、執(zhí)行一個或多個軟件或固件程序的處理器(共享、專用或者群組)和/或存儲器(共享、專用或者群組)、組合邏輯電路和/或提供所描述的功能的其他適合的組件。
現(xiàn)在參見圖1,其中示出了根據(jù)各種實施例與根據(jù)本公開的sata接收器均衡裕度確定和設(shè)置教導(dǎo)相結(jié)合的示例計算系統(tǒng)。如圖所示,計算系統(tǒng)100可以包括一個或多個處理器102、非易失性隨機存取存儲器(nvram)103和系統(tǒng)存儲器104。每個處理器102可以包括一個或多個處理器核心。nvram103可以包括bios114,并且系統(tǒng)存儲器104可以包括操作系統(tǒng)和各種應(yīng)用的非持久性副本,被共同地稱為計算邏輯118。另外,計算系統(tǒng)100可以包括一個或多個總線適配器/接口116、海量存儲設(shè)備106(與總線適配器/接口116耦合)、輸入/輸出設(shè)備108和通信接口110。nvram103的示例可以包括但不局限于串行外圍接口(spi)閃存或嵌入式多存儲器卡(emmc)。海量存儲設(shè)備106可以包括計算邏輯118的持久性副本。元件102-104、108-110和114-116可以經(jīng)由系統(tǒng)總線112相互耦合,系統(tǒng)總線112可以代表一個或多個總線。在多個總線的情況中,它們可以通過一個或多個總線橋(未示出)進行橋接。在實施例中,總線適配器/接口116中的至少一個總線適配器/接口可以是具有一個或多個端口的sata總線適配器/接口,并且海量存儲設(shè)備106中的至少一個海量存儲設(shè)備可以是sata設(shè)備。進而,在計算系統(tǒng)100的引導(dǎo)期間,bios114可以被配置為自動確定和設(shè)置sata設(shè)備的接收器均衡裕度,這將在下面進行更全面的描述。
海量存儲設(shè)備106的示例可以包括但不局限于軟盤、硬驅(qū)、壓縮盤只讀存儲器(cd-rom)等等。輸入/輸出設(shè)備108的示例可以包括但不局限于顯示器、鍵盤、光標控制器等等。通信接口110的示例可以包括但不局限于有線和/或無線網(wǎng)絡(luò)接口卡、調(diào)制解調(diào)器等等。通信接口110可以支持各種有線或無線通信,該有線或無線通信包括但不局限于3g/4g/5g、wifi、藍牙
根據(jù)本公開,除了自動sata接收器均衡裕度確定和設(shè)置,元件102-118中的每個元件可以執(zhí)行在本領(lǐng)域中公知的傳統(tǒng)功能。取決于計算系統(tǒng)100是用作客戶端設(shè)備還是用作服務(wù)器,元件102-118的數(shù)量、能力和/或容量可以改變。當用作客戶端設(shè)備時,取決于客戶端設(shè)備是靜止設(shè)備還是移動設(shè)備,元件102-118的能力和/或容量可以改變,移動設(shè)備例如是可穿戴設(shè)備、智能手機、計算平板、超級本或筆記本電腦。在其他方面,元件102-118的構(gòu)成是眾所周知的,因此將不再更進一步描述。
現(xiàn)在參見圖2-3,其中示出了根據(jù)各種實施例用于引導(dǎo)計算系統(tǒng)100的示例過程。如圖所示,用于引導(dǎo)計算系統(tǒng)100的過程200可以包括在方框202-232中執(zhí)行的操作。例如,可以通過圖1的bios114來執(zhí)行所述操作。在其他實施例中,可以在不具有所述操作中的一些的情況下、在具有附加操作的情況下和/或在所述操作的不同順序下執(zhí)行過程200。
過程200可以開始于方框202。在方框202處,過程200可以進入post階段。作為初始事件,在進入post階段中時,可以使能所有sata端口。進一步,考慮到存在許多代sata端口的事實,支持高得多的操作速度(例如,第三代的版本3.2支持16吉比特/秒(gbit/sec))的較新代的sata端口與支持低得多的操作速度(例如,第一代支持1.5吉比特/秒(gbit/sec))的較老代的sata端口,接收器均衡裕度的確定可能是困難的,因此,為了減少遇到這種困難的風險,sata端口的使能可以包括臨時將較新一代的sata端口的操作速度降低到較早一代的sata端口的操作速度(也被認為是“降低速度”(downspeed))。
現(xiàn)在還參見圖4,其中示出了根據(jù)各種實施例用于使能sata端口和降低sata端口的速度的示例過程。可以針對要被使能的每個sata端口來執(zhí)行過程400。如圖所示,用于使能sata端口并且選擇性地降低sata端口的操作速度的過程400可以包括在方框402-408處執(zhí)行的操作。如上所述,可以例如通過圖1的bios114來執(zhí)行操作。在其他實施例中,可以在不具有所述操作中的一些的情況下、在具有附加操作的情況下和/或在所述操作的不同順序下執(zhí)行過程400。
過程400可以開始于方框402。在方框402處,可以對sata端口是否被提供有dtle訓練支持以及sata端口是否是支持高速操作的一代sata端口(被表示為genx)做出確定,該高速操作會導(dǎo)致接收器均衡裕度檢測問題。在實施例中,可以根據(jù)例如存儲在nvram103中的一個或多個操作策略來確定sata端口是否被提供有dtle訓練支持。類似地,可以根據(jù)例如存儲在nvram103中的配置信息來確定sata端口的代級別。
在確定sata端口沒有被提供有dtle訓練支持或者sata端口具有比genx更老一代的操作速度時,操作400可以在方框404處繼續(xù)。在方框404處,對sata端口是否是外部sata(esata)端口做出進一步確定。
在方框402處確定sata端口要被提供有dtle訓練支持并且sata端口至少是genx(或超過genx)時,或者在方框404處確定sata端口是esata端口時,過程400可以在方框406處繼續(xù)。在方框406處,sata端口的操作速度可以被臨時降低到老一代(表示為geny)較低的操作速度,該較低的操作速度不會存在接收器均衡裕度檢測問題。
當在方框404處確定sata端口不是esata端口時,或者在方框406處降低了sata端口的操作速度時,過程400可以在方框408處繼續(xù)。在方框408處,sata端口可以被使能。
可以針對sata總線適配器/接口116的每個sata端口重復(fù)過程400。在實施例中,genx可以是gen3并且geny可以是gen2。
返回參見圖2-3,在完成方框202處的操作時,過程200可以在方框204處繼續(xù)。在方框204處,可以做出在方框202處至少一個sata端口是否被確定為被提供有dtle訓練支持以及sata端口的操作速度是否是genx或超過genx的確定。在確定在方框202處沒有sata端口被確定為被提供有dtle訓練支持或者沒有sata端口的操作速度是genx或超過genx時,過程200可以在方框232處繼續(xù)(通過圖3的標簽“b”),以繼續(xù)進行引導(dǎo)的剩余部分,跳過與接收器均衡裕度確定和設(shè)置相關(guān)聯(lián)的方框206-230的所有操作。
然而,在確定在方框202處至少一個sata端口被確定為被提供有dtle訓練以及sata端口的操作速度是genx或超過genx時,過程200可以在方框206處繼續(xù)。在方框206處,可以獲得(例如,從nvram103)與sata端口相關(guān)聯(lián)的配置信息,例如包括先前確定的設(shè)備序列號和dtle值。
接下來,在方框208處,可以識別被附接到sata端口的當前設(shè)備,并且可以(從設(shè)備)獲得其序列號。然后,在方框210處,做出當前設(shè)備是否是genx(或超過genx)設(shè)備的確定。接下來,在確定當前設(shè)備是genx設(shè)備時,在方框212處,可以做出針對該端口獲得的先前確定的序列號與當前附接到sata端口的設(shè)備的序列號是否匹配的確定。
接下來,在確定兩個序列號不匹配時,在方框214處,可以做出表明sata端口要求dtle訓練的記錄?;蛘?,在確定兩個序列號匹配時,在方框216處,sata端口的dtle值可以被設(shè)置為所獲得的先前dtle值。接下來,在方框218處,可以式sata端口的操作速度增加回到在其速度被減低之前的genx(或超過genx)。
接下來,在完成方框214或218處的操作時,過程200可以進行到方框220。在方框220處,可以關(guān)于所有sata端口是否已被檢查做出確定。如果為否,則過程200可以進行到方框202,其中待分析的sata端口可以被設(shè)置到下一個sata端口,并且在方框208處繼續(xù)并由此開始,如上所述。另一方面,如果在方框220處確定所有sata端口已被檢查,則過程200可以在方框224處繼續(xù)(通過圖3的標簽a連接)。
在方框224處,可以做出是否存在做出的指示sata端口需要dtle訓練的任何記錄的確定。在確定至少一個sata端口需要dtle訓練時,過程200可以進行到方框226。在方框226處,可以向被標注需要dtle訓練的所有sata端口提供dtle訓練。接下來在方框228處,為了確保引導(dǎo)過程可以更迅速地完成,可以使用dtle訓練的結(jié)果,即,訓練的dtle值和存儲設(shè)備序列號,來更新平臺信息,用于隨后存儲到例如nvram103中(在下一次引導(dǎo)中)。
另一方面,當在方框224處確定沒有sata端口被確定為需要dtle訓練時,過程200可以在方框230處繼續(xù)。在方框230處,過程200暫時等待以確保完成了所有先前發(fā)起的升速操作,該所有先前發(fā)起的升速操作將sata端口的操作速度增加回到它們降低之前的操作速度(例如,參見方框218)。
當在方框228處完成更新平臺信息時,或在方框230處完成等待時,過程200可以進行到方框232。在方框232處,可以完成引導(dǎo)過程的剩余部分,包括post的剩余部分和post之后的操作。
現(xiàn)在參見圖5,其中示出了根據(jù)各種實施例用于執(zhí)行dtle訓練的過程。如圖所示,用于執(zhí)行針對sata端口的dtle訓練的過程500可以包括方框502-510處的操作。如上所述,可以例如通過圖1的bios114來執(zhí)行所述操作。在其他實施例中,可以在不具有所述操作中的一些的情況下、在具有附加操作的情況下和/或在所述操作的不同順序的情況下來執(zhí)行過程500。
在方框502處,被標記為需要dtle訓練的所有sata端口的操作速度被增加回到它們減少之前的操作速度(genx或超過genx)。接下來在方框504處,將計算平臺置于裕度確定和設(shè)置模式中。
接下來,在方框506處,針對被標記為需要訓練的下一個sata端口,dtle訓練以節(jié)拍步長(tickstep)=0(dtle候選值)開始。接下來,在方框508處,做出當前dtle候選值是否大于預(yù)定的最大允許dtle值的確定。
當在方框508處確定當前dtle候選值不大于預(yù)定的最大允許dtle值時,過程500在方框512處繼續(xù)。在方框512處,將節(jié)拍步長設(shè)置到下一個節(jié)拍步長值。接下來,在方框514處,過程500等待停留時間量(例如,15ms),然后繼續(xù)到方框516。在方框516處,做出sata端口的狀態(tài)是否指示錯誤的確定。如果sata端口的狀態(tài)指示沒有錯誤,則過程500進行到方框522并由此繼續(xù),這將進行進一步描述。
然而,如果sata端口的狀態(tài)沒有指示錯誤,則過程500可以進行到方框518。在方框518處,做出sata端口的操作速度是否被降低的確定。在確定sata端口的操作速度先前沒有被降低時,過程500返回到方框506并由此針對另一個sata端口繼續(xù),如先前描述的。
另一方面,如果在方框518處確定sata端口的操作速度被降低,則過程500可以進行到方框520。在方框520處,端口的速度可以被恢復(fù)回到其降低之前的速度,genx或超過genx。從方框520,過程500可以返回到方框504,并且由此繼續(xù),如先前描述的。
在方框522處,在確定端口狀態(tài)沒有指示錯誤之后,可以做出當前節(jié)拍步長(dtle候選值)是否是待分析的最后一個節(jié)拍步長的進一步確定。在確定當前節(jié)拍步長(dtle候選值)不是待分析的最后一個節(jié)拍步長時,過程500可以返回到方框512并且由此進行以分析另一個節(jié)拍步長(dtle候選值),如先前描述的。
然而,如果確定當前節(jié)拍步長(dtle候選值)是待分析的最后一個節(jié)拍步長時,則過程500可以進行到方框524。在方框524處,可以做出是否還存在更多待dtle訓練的sata端口的確定。在確定還存在更多待dtle訓練的sata端口時,過程500可以返回到方框506并由此繼續(xù)以對需要訓練的另一個sata端口進行訓練,如先前描述的。否則,用于對sata端口進行dtle訓練以確定和設(shè)置接收器均衡裕度的過程500可以結(jié)束。
在實施例中,以節(jié)拍步長(dtle候選值)的有限集合來訓練每個sata端口,例如,經(jīng)由尺寸為2的5個步長的{2,4,6,8}dtle候選值,從步長=0開始,橫跨接收器均衡范圍的子集而非整個接收器均衡范圍??梢钥紤]對總的引導(dǎo)時間的允許影響量來根據(jù)經(jīng)驗選擇該范圍。即,可以最優(yōu)地選擇dtle候選值,使得實時dtle訓練對總的引導(dǎo)時間的影響保持可接受。從上述描述中應(yīng)當理解的是,本公開的接收器均衡裕度確定和設(shè)置操作為總的引導(dǎo)時間提供最小的影響。因此,對于被配置為通過快速引導(dǎo)過程實施的計算系統(tǒng)的實施例,本公開的自動接收機均衡裕度確定和設(shè)置最小化地影響這樣的快速引導(dǎo)過程。
本領(lǐng)域技術(shù)人員將理解,本公開可以被實現(xiàn)為方法或計算機程序產(chǎn)品。因此,除了如先前描述的被實現(xiàn)在硬件中以外,本公開可以采用整體軟件實施例(包括固件、駐留軟件、微代碼等)或者組合軟件和硬件方面的實施例的形式,所有這些通??梢员环Q為“電路”、“模塊”或“系統(tǒng)”。而且,本公開可以采用體現(xiàn)在表現(xiàn)的任何有形的或非暫時性介質(zhì)中的計算機程序產(chǎn)品的形式,該表現(xiàn)的有形的或非暫時性介質(zhì)具有體現(xiàn)在介質(zhì)中的計算機可用程序代碼。圖6示出了示例性計算機可讀非暫時性存儲介質(zhì),該示例性計算機可讀非暫時性存儲介質(zhì)可以適合用于存儲指令,該指令使得裝置響應(yīng)于通過該裝置對指令的執(zhí)行來實踐本公開的選定方面。如圖所示,非暫時性計算機可讀存儲介質(zhì)602可以包括多個編程指令604。編程指令604可以被配置為使能設(shè)備,例如,計算系統(tǒng)100,響應(yīng)于程序指令的執(zhí)行來執(zhí)行例如與圖1的bios114和/或圖2-5的過程200(包括過程400和500)相關(guān)聯(lián)的各種操作。在替換實施例中,編程指令604可以代替地被置于多個計算機可讀非暫時性存儲介質(zhì)602上。在替換實施例中,程序指令604可以被置于計算機可讀有形存儲介質(zhì)602上,例如,信號。
可以使用一種或多種計算機可用或計算機可讀介質(zhì)的任意組合。計算機可用或計算機可讀介質(zhì)可以例如是但不局限于電子、磁、光學、電磁、紅外或者半導(dǎo)體系統(tǒng)、裝置、設(shè)備或傳播介質(zhì)。計算機可讀介質(zhì)的更具體示例(非窮盡的列表)可以包括如下:具有一條或多條導(dǎo)線的電氣連接、便攜式計算機盤片、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦除可編程只讀存儲器(eprom或閃存)、光纖、便攜式壓縮盤只讀存儲器(cd-rom)、光學存儲設(shè)備、諸如支持因特網(wǎng)或內(nèi)聯(lián)網(wǎng)的傳輸介質(zhì)或磁性存儲設(shè)備。注意到,計算機可用或計算機可讀介質(zhì)甚至可以是其上打印有程序的紙或另一適當介質(zhì),因為程序可以例如經(jīng)由對該紙或其他介質(zhì)進行光學掃描來進行電學捕獲,然后進行編譯、解釋或者如果需要以其他適當?shù)姆绞竭M行處理,并且接著被存儲到計算機存儲器中。在本文檔的上下文中,計算機可用或計算機可讀介質(zhì)可以是任何如下介質(zhì),該介質(zhì)可以包含、存儲、傳送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者設(shè)備使用或者與指令執(zhí)行系統(tǒng)、裝置或者設(shè)備結(jié)合使用的程序。機器可用介質(zhì)可以包括在基帶中或者作為載波的一部分的傳播的數(shù)據(jù)信號,在該傳播的數(shù)據(jù)信號中體現(xiàn)有計算機可用程序代碼。計算機可用程序代碼可以使用任何適當?shù)慕橘|(zhì)進行傳輸,包括但不局限于無線、有線、光纜、rf等等。
用于執(zhí)行本公開的操作的計算機程序代碼可以使用一種或多種編程語言的任意組合來編寫,所述編程語言包括諸如java、smalltalk、c++之類的面向?qū)ο蟮木幊陶Z言以及諸如“c”編程語言或類似的編程語言之類的常規(guī)過程編程語言。所述程序代碼可以完全地在用戶的計算機上執(zhí)行、部分地在用戶的計算機上執(zhí)行、作為獨立的軟件包、部分地在用戶的計算機上并且部分地在遠程計算機上執(zhí)行,或者完全地在遠程計算機或服務(wù)器上執(zhí)行。在后者的情況中,所述遠程計算機可以通過包括局域網(wǎng)(lan)或廣域網(wǎng)(wan)的任何類型的網(wǎng)絡(luò)連接到用戶的計算機,或者可以連接到外部計算機(例如,通過使用因特網(wǎng)服務(wù)提供商的因特網(wǎng))。
參考根據(jù)本公開實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖說明和/或框圖描述了本公開。應(yīng)當理解,該流程圖和/或框圖的每一個方框,以及在該流程圖和/或框圖中的方框的組合可以由計算機程序指令實現(xiàn)??梢詫⑦@些計算機程序指令提供給通用計算機、專用計算機或其他可編程數(shù)據(jù)處理裝置以制造機器,使得通過計算機或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令創(chuàng)建用于實現(xiàn)流程圖和/或框圖的一個或多個方框中指定的功能/動作的單元。
也可以將這些計算機程序指令存儲在計算機可讀介質(zhì)中,該計算機可讀介質(zhì)可以指示計算機或其它可編程數(shù)據(jù)處理裝置按照特定方式運行,使得存儲在計算機可讀介質(zhì)中的指令產(chǎn)生制品,所述制品包括實現(xiàn)在流程圖和/或框圖的一個或多個方框中指定的功能/動作的指令單元。
計算機程序指令還可以被載入到計算機或其它可編程數(shù)據(jù)處理裝置上,使得在該計算機或其它可編程裝置上執(zhí)行一系列操作步驟來產(chǎn)生計算機實現(xiàn)的過程,以使得在該計算機或其它可編程裝置上執(zhí)行的指令提供用于實現(xiàn)在流程圖和/或框圖的一個或多個方框中指定的功能/動作的過程。
附圖中的流程圖和框圖示出了根據(jù)本公開各個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的架構(gòu)、功能和操作。為此,流程圖或框圖的每個方框可以表示模塊、段或代碼部分,其包括用于實現(xiàn)指定的邏輯功能的一個或多個可執(zhí)行指令。還應(yīng)該注意,在一些替代性實現(xiàn)中,方框中標注的功能可以不按照圖中所標注的順序發(fā)生。例如,取決于所涉及到的功能,連續(xù)示出的兩個方框?qū)嶋H上可以被基本上同時執(zhí)行,或者所述方框有時會以相反的順序執(zhí)行。還應(yīng)當注意的是,框圖和/或流程圖說明中的每個方框以及框圖和/或流程圖說明中方框的組合可以由執(zhí)行指定功能或動作的專用的基于硬件的系統(tǒng)或?qū)S糜布c計算機指令的組合來實現(xiàn)。
這里使用的術(shù)語僅用于描述特定實施例的目的,并不意在限制本公開。正如在本文中使用的,單數(shù)形式的“一個”、“一種”及“所述”意在也包括復(fù)數(shù)形式,除非上下文中另外明確說明。將進一步理解的是,在該說明書中使用的術(shù)語“包括”和/或“包含”指定存在多個表述的特征、整數(shù)、步驟、操作、元件和/或組件,但是不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或其組。
實施例可以被實現(xiàn)為計算機過程、計算系統(tǒng)、或者諸如計算機可讀介質(zhì)的計算機程序產(chǎn)品的制品。計算機程序產(chǎn)品可以是計算機系統(tǒng)可讀的并且編碼用于執(zhí)行計算機過程的計算機程序指令的計算機存儲介質(zhì)。
下面權(quán)利要求中的所有單元或步驟加上功能元件的相應(yīng)結(jié)構(gòu)、材料、動作及等同物意在包括用于與具體請求保護的其他請求保護的元件相組合來執(zhí)行功能的任意結(jié)構(gòu)、材料或動作。為了說明和描述的目的已經(jīng)呈現(xiàn)了本公開的描述,但是其并非意在按照所公開的形式對于本公開是窮舉性或限制性的。在不偏離本公開的范圍和精神的情況下,許多修改和變型對于本領(lǐng)域普通技術(shù)人員來說都將是明顯的。為了最好地解釋本公開的原理和實際應(yīng)用,并且為了使本領(lǐng)域的其它普通技術(shù)人員能夠理解具有適于特定的期望用途的各種變形的本公開實施例,選擇和描述了實施例。
返回參見圖1,對于一個實施例,處理器102中的至少一個處理器可以與具有bios114的nvram103封裝在一起。對于一個實施例,處理器102中的至少一個處理器可以與具有bios114的nvram103封裝在一起以形成系統(tǒng)級封裝(sip)。對于一個實施例,處理器102中的至少一個處理器可以與具有bios114的nvram103一起集成在同一裸片上。對于一個實施例,處理器102中的至少一個處理器可以與具有bios114的nvram103封裝在一起以形成片上系統(tǒng)(soc)。對于至少一個實施例,soc可以例如使用于但不局限于可穿戴設(shè)備、智能手機或計算平板。
因而,已經(jīng)描述了本公開的各種示例實施例,包括但不局限于:
示例1可以是用于計算的裝置。該裝置可以包括:一個或多個處理器;一個或多個串行高級技術(shù)附接(sata)端口;以及基本輸入-輸出系統(tǒng)(bios)。bios由一個或多個處理器操作以便:在裝置引導(dǎo)的上電自檢(post)階段期間,確定設(shè)備是否被附接到一個或多個sata端口中的第一sata端口。在確定設(shè)備被附接到第一sata端口時,bios進一步用于確定是否針對該設(shè)備設(shè)置了接收器均衡裕度;并且在確定還未針對該設(shè)備設(shè)置接收器均衡裕度時,bios用于執(zhí)行離散時間線性均衡(dtle)訓練以便針對該設(shè)備動態(tài)地確定并設(shè)置接收器均衡裕度。
示例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端口的設(shè)備設(shè)置了接收器均衡裕度,bios用于:獲取與第一sata端口相關(guān)聯(lián)的先前設(shè)備信息,所述先前設(shè)備信息包括設(shè)備序列號以及先前與第一sata端口相關(guān)聯(lián)的dtle值;識別并獲取當前被附接到第一sata端口的設(shè)備的序列號;確定該第一sata端口是否是特定的一代;并且在確定該第一sata端口是特定的一代時,確定序列號是否匹配。
示例5可以是示例4,其中為了確定是否針對被附接到第一sata端口的設(shè)備設(shè)置了接收器均衡裕度,bios可以進一步在確定序列號不匹配時將第一sata端口標記為需要dtle訓練,并且在確定序列號匹配時將第一sata端口的dtle值設(shè)置到先前的dtle值,并且將第一sata端口升速到特定的一代。
示例6可以是示例1-5中的任意一個,其中為了執(zhí)行dtle訓練以便針對被附接到第一sata端口的設(shè)備動態(tài)地確定并設(shè)置接收器均衡裕度,bios可以將所有sata端口升速到特定的一代的操作速度,并且打開裕度模式。
示例7可以是示例6,其中為了執(zhí)行dtle訓練以便針對被附接到第一sata端口的設(shè)備動態(tài)地確定并設(shè)置接收器均衡裕度,bios可以進一步針對多個預(yù)定的dtle值候選,從dtle值候選中最低的一個dtle值候選開始,迭代地測試第一sata端口,并且在每次迭代時,確定當前的dtle值候選是否超過了最大dtle值,并且在確定當前的dtle值候選沒有超過最大dtle值時,使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選,其中經(jīng)迭代的預(yù)定的dtle值候選的數(shù)量掃過接收器均衡范圍的子集而非整個接收器均衡范圍。
示例8可以是示例7,其中在每次迭代期間,在使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選之前,bios可以進一步確定第一sata端口的狀態(tài)是否指示錯誤,并且在確定第一sata端口的狀態(tài)沒有指示錯誤時,bios繼續(xù)使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選。
示例9可以是示例8,其中在確定第一sata端口的狀態(tài)指示錯誤時,bios可以進一步確定第一sata端口的速度是否被訓練降低,并且在確定第一sata端口的速度被訓練降低時,將第一sata端口的速度恢復(fù)到sata端口的特定的一代。
示例10可以是示例7-9中的任意一個,其中bios在確定當前的dtle值候選超過了最大dtle值時,可以在經(jīng)迭代的dtle候選值當中選擇針對第一sata端口的dtle。
示例11可以是用于計算的方法。該方法可以包括:在計算系統(tǒng)的引導(dǎo)期間,通過計算系統(tǒng)的基本輸入-輸出系統(tǒng)(bios),在引導(dǎo)的上電自檢(post)階段期間,確定設(shè)備是否被附接到串行高級技術(shù)附接(sata)端口。該方法還可以包括在確定設(shè)備被附接到sata端口時,通過bios進一步確定是否針對該設(shè)備設(shè)置了接收器均衡裕度;并且在確定還未針對該設(shè)備設(shè)置接收器均衡裕度時,執(zhí)行離散時間線性均衡訓練以便針對該設(shè)備動態(tài)地確定并設(shè)置接收器均衡裕度。
示例12可以是示例11,還包括,在進入post階段中時,bios使能一個或多個sata端口,包括,針對每個sata端口,確定是否需要降低sata端口的速度,并且在確定需要時,降低該sata端口的速度。
示例13可以是示例12,其中確定是否需要降低sata端口的速度包括確定dtle支持是否要被提供用于sata端口,并且確定該sata端口是否是sata端口的特定的一代或者該sata端口是否是外部sata(esata)端口。
示例14可以是示例11-13中的任意一個,其中確定是否已經(jīng)針對被附接到第一sata端口的設(shè)備設(shè)置了接收器均衡裕度包括:獲得與第一sata端口相關(guān)聯(lián)的先前設(shè)備信息,所述先前設(shè)備信息包括設(shè)備序列號和先前與第一sata端口相關(guān)聯(lián)的dtle值;識別并獲取當前被附接到第一sata端口的設(shè)備的序列號;確定第一sata端口是否是特定的一代;并且在確定第一sata端口是特定的一代時,確定序列號是否匹配。
示例15可以是示例14,其中確定是否已經(jīng)針對被附接到第一sata端口的設(shè)備設(shè)置了接收器均衡裕度包括:bios在確定序列號不匹配時將第一sata端口標記為需要dtle訓練;并且在確定序列號匹配時將第一sata端口的dtle值設(shè)置到先前的dtle值,并將第一sata端口升速到特定的一代。
示例16可以是示例11-14中的任意一個,其中執(zhí)行dtle訓練以便針對被附接到第一sata端口的設(shè)備動態(tài)地確定并設(shè)置接收器均衡裕度包括:將所有sata端口升速到特定的一代的操作速度,并且打開裕度模式。
示例17可以是示例16,其中執(zhí)行dtle訓練以便針對被附接到第一sata端口的設(shè)備動態(tài)地確定和設(shè)置接收器均衡裕度包括:針對多個預(yù)定的dtle值候選,從dtle值候選中最低的dtle值候選開始,迭代地測試第一sata端口,并且在每次迭代時,確定當前的dtle值候選是否超過了最大dtle值,并且在確定當前的dtle候選值沒有超過最大dtle值時,使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選,其中經(jīng)迭代的預(yù)定的dtle值候選的數(shù)量掃過接收器均衡范圍的子集而非全部接收器均衡范圍。
示例18可以是示例17,其中在每次迭代期間,在使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選之前,bios進一步確定第一sata端口的狀態(tài)是否指示錯誤,并且在確定第一sata端口的狀態(tài)沒有指示錯誤時,bios繼續(xù)使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選。
示例19可以是示例18,其中在確定第一sata端口的狀態(tài)指示錯誤時,bios進一步確定第一sata端口的速度是否被訓練降低,并且在確定第一sata端口的速度被訓練降低時,將第一sata端口的速度恢復(fù)到sata端口的特定的一代。
示例20可以是示例17-19中的任意一個,其中執(zhí)行dtle訓練還包括,在確定當前的dtle值候選超過最大dtle值時,在經(jīng)迭代的dtle值候選當中選擇針對第一sata端口的dtle。
示例21可以是至少一個包括指令的計算機可讀存儲介質(zhì),該指令響應(yīng)于由計算裝置執(zhí)行而使該計算裝置實現(xiàn)用于該計算裝置的基本輸入輸出系統(tǒng)(bios)。在計算系統(tǒng)的引導(dǎo)期間,bios可以執(zhí)行多個操作,包括:在引導(dǎo)的上電自檢(post)階段期間,確定設(shè)備是否被附接到串行高級技術(shù)附接(sata)端口;在確定設(shè)備被附接到sata端口時,進一步確定是否針對該設(shè)備設(shè)置了接收器均衡裕度;并且在確定還未針對該設(shè)備設(shè)置接收器均衡裕度時,執(zhí)行離散時間線性均衡訓練以便針對該設(shè)備動態(tài)地確定并設(shè)置接收器均衡裕度。
示例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端口的設(shè)備設(shè)置了接收器均衡裕度,bios可以:獲得與第一sata端口相關(guān)聯(lián)的先前設(shè)備信息,所述先前設(shè)備信息包括設(shè)備序列號和先前與第一sata端口相關(guān)聯(lián)的dtle值;識別并獲得當前被附接到第一sata端口的設(shè)備的序列號;確定該第一sata端口是否是特定的一代;并且在確定該第一sata端口是特定的一代時,確定序列號是否匹配。
示例25可以是示例24,其中為了確定是否針對被附接到第一sata端口的設(shè)備設(shè)置了接收器均衡裕度,bios可以進一步在確定序列號不匹配時將第一sata端口標記為需要dtle訓練;并且在確定序列號匹配時將第一sata端口的dtle值設(shè)置到先前的dtle值,并且將第一sata端口升速到特定的一代。
示例26可以是示例21-25中的任意一個,其中為了執(zhí)行dtle訓練以便針對被附接到第一sata端口的設(shè)備動態(tài)地確定并設(shè)置接收器均衡裕度,bios可以將所有sata端口升速到特定的一代的操作速度,并且打開裕度模式。
示例27可以是示例26,其中為了執(zhí)行dtle訓練以便針對被附接到第一sata端口的設(shè)備動態(tài)地確定并設(shè)置接收器均衡裕度,bios進一步用于針對多個預(yù)定的dtle值候選,從dtle值候選中最低的dtle值候選開始,迭代地測試第一sata端口,并且在每次迭代時,確定當前的dtle值候選是否超過了最大dtle值,并且在確定當前的dtle值候選未超過最大dtle值時,使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選,其中經(jīng)迭代的預(yù)定的dtle值候選的數(shù)量掃過接收器均衡范圍的子集而非全部接收器均衡范圍。
示例28可以是示例27,其中在每次迭代期間,在使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選之前,bios可以進一步確定第一sata端口的狀態(tài)是否指示錯誤,并且在確定第一sata端口的狀態(tài)沒有指示錯誤時,bios用于繼續(xù)使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選。
示例29可以是示例28,其中在確定第一sata端口的狀態(tài)指示錯誤時,bios可以進一步確定第一sata端口的速度是否被訓練降低,并且在確定第一sata端口的速度被訓練降低時,將第一sata端口的速度恢復(fù)到sata端口的特定一代。
示例30可以是示例27-29中的任意一個,其中在確定當前的dtle值候選超過最大dtle值時,bios用于在經(jīng)迭代的dtle值候選當中選擇針對第一sata端口的dtle。
示例31可以是用于計算的裝置。該裝置可以包括:用于引導(dǎo)裝置的基本輸入-輸出系統(tǒng)(bios)單元,包括用于在引導(dǎo)的上電自檢(post)階段期間確定設(shè)備是否被附接到串行高級技術(shù)附接(sata)端口的單元。所述bios單元可以進一步包括用于在確定設(shè)備被附接到sata端口時,確定是否已經(jīng)針對該設(shè)備設(shè)置了接收器均衡裕度的單元;以及用于在確定還未針對該設(shè)備設(shè)置接收器均衡裕度時,執(zhí)行離散時間線性均衡訓練以便針對該設(shè)備動態(tài)地確定和設(shè)置接收器均衡裕度的單元。
示例32可以是示例31,其中bios單元可以進一步包括用于在進入post階段中時,使能一個或多個sata端口的單元,包括,用于針對每個sata端口確定是否需要降低sata端口的速度,并且在確定需要時降低該sata端口的速度的單元。
示例33可以是示例32,其中用于確定是否需要降低sata端口的速度的單元可以進一步包括用于確定dtle是否要被提供用于sata端口以及該sata端口是否是sata端口的特定一代或者該sata端口是否是外部sata(esata)端口的單元。
示例34可以是示例31-33中的任意一個,其中用于確定是否針對被附接到第一sata端口的設(shè)備設(shè)置了接收器均衡裕度的單元可以包括:用于獲得與第一sata端口相關(guān)聯(lián)的先前設(shè)備信息的單元,該先前設(shè)備信息包括設(shè)備序列號和先前與第一sata端口相關(guān)聯(lián)的dtle值;用于識別并獲得當前被附接到第一sata端口的設(shè)備的序列號的單元;用于確定第一sata端口是否是特定的一代的單元;以及用于在確定第一sata端口是特定的一代時確定序列號是否匹配的單元。
示例35可以是示例34,其中用于確定是否已經(jīng)針對被附接到第一sata端口的設(shè)備設(shè)置了接收器均衡裕度的單元可以包括:用于在確定序列號不匹配時將第一sata端口標記為需要dtle訓練的單元;以及用于在確定序列號匹配時將第一sata端口的dtle值設(shè)置為先前的dtle值,并且將第一sata端口升速到特定一代的單元。
示例36可以是示例31-35中的任意一個,其中用于執(zhí)行dtle訓練以便針對被附接到第一sata端口的設(shè)備動態(tài)地確定并設(shè)置接收器均衡裕度的單元可以包括:用于將所有sata端口升速到特定的一代的操作速度,并且打開裕度模式的單元。
權(quán)利要求36所述的裝置,其中用于執(zhí)行dtle訓練以便針對被附接到第一sata端口的設(shè)備動態(tài)地確定并設(shè)置接收器均衡裕度的單元可以包括用于針對多個預(yù)定的dtel值候選,從dtle值候選中最低的dtle值候選開始,迭代地測試第一sata端口,并且在每次迭代時,確定當前的dtle值候選是否超過了最大dtle值,并且在確定當前的dtle值候選沒有超過最大dtle值時,使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選的單元,其中經(jīng)迭代的預(yù)定的dtle值候選的數(shù)量掃過接收器均衡范圍的子集而非全部接收器均衡范圍。
示例38可以是示例37,其中用于迭代地測試的單元可以包括用于在每次迭代期間,在使當前的dtle值候選自增到dtle值候選當中下一個較高的dtle值候選之前,確定第一sata端口的狀態(tài)是否指示錯誤,并且在確定第一sata端口的狀態(tài)沒有指示錯誤時,繼續(xù)使當前的dtle值候選自增到dtle值候選中下一個較高的dtle值候選的單元。
示例39可以是示例38,其中用于確定第一sata端口的狀態(tài)是否指示錯誤的單元可以包括用于在確定第一sata端口的狀態(tài)指示錯誤時,確定第一sata端口的速度是否被訓練降低;并且在確定第一sata端口的速度被訓練降低時,將第一sata端口的速度恢復(fù)到sata端口的特定的一代的單元。
示例40可以是37-39中的任意一個,其中用于執(zhí)行dtle訓練的單元可以包括用于在確定當前的dtle值候選超過了最大dtle值時,在經(jīng)迭代的dtle候選值當中選擇針對第一sata端口的dtle的單元。
本領(lǐng)域的普通技術(shù)人員將明白,可以在不偏離本公開的精神和范圍的情況下對本公開的設(shè)備和相關(guān)聯(lián)的方法的公開實施例做出各種修改和變化。因而,本公開旨在覆蓋上面公開的實施例的修改和變化,只要這些修改和變化落在所附權(quán)利要求及其等同物的范圍內(nèi)。