專利名稱::通用串行總線主機(jī)控制器和通用串行總線主機(jī)控制方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通用串行總線(USB)3.0協(xié)議中的NRDY(未就緒)/ERDY(就緒)機(jī)制,并且具體涉及一種基于USB3.0協(xié)議的USB主機(jī)控制器和USB主機(jī)控制方法,其能夠減少處理NRDY響應(yīng)消息和ERDY請求的時(shí)間,提高USB主機(jī)控制器的性能。
背景技術(shù):
:目前,已經(jīng)制定了通用串行總線(USB)3.0協(xié)議。在USB3.0協(xié)議中定義了NRDY(未就緒)/ERDY(就緒)機(jī)制。圖1示出了使用NRDY/ERDY機(jī)制的傳統(tǒng)USB主機(jī)控制器的示意性框圖。如圖1所示,USB主機(jī)控制器100連接到外部的系統(tǒng)存儲(chǔ)器300,并且還經(jīng)由USB總線連接到一個(gè)或多個(gè)USB設(shè)備200(為簡單起見,在圖1中僅示出一個(gè)USB設(shè)備200)。USB設(shè)備200包括一個(gè)或多個(gè)端點(diǎn)(Endpoint)201-1、201-2、...201-n。當(dāng)USB主機(jī)控制器100向所述一個(gè)或多個(gè)端點(diǎn)之一(假設(shè)為端點(diǎn)201-1)發(fā)送請求(例如輸入請求(INrequest)或輸出請求(OUTr叫uest))以請求讀/寫數(shù)據(jù)時(shí),如果端點(diǎn)201-1沒有準(zhǔn)備好發(fā)送/接收所請求的數(shù)據(jù),則端點(diǎn)201-1向USB主機(jī)控制器100發(fā)送NRDY響應(yīng)消息(即,NRDY事務(wù)分組(transactionpacket)),以表明該端點(diǎn)暫時(shí)不能發(fā)送/接收所請求的數(shù)據(jù)。當(dāng)端點(diǎn)201-1隨后準(zhǔn)備好發(fā)送/接收所請求的數(shù)據(jù)時(shí),其向USB主機(jī)控制器100發(fā)送ERDY請求(即,ERDY事務(wù)分組),使得USB主機(jī)控制器重新執(zhí)行先前未能執(zhí)行的對應(yīng)事務(wù)。為支持USB3.0協(xié)議,Intel其后推出了擴(kuò)展主控制器界面(ExtensibleHostControllerInterface,簡稱xHCI)協(xié)議,xHCI協(xié)議主要描述了系統(tǒng)軟件與硬件之間接口所用的寄存器和數(shù)據(jù)結(jié)構(gòu),為USB3.0主控制器與USB3.0夕卜設(shè)驅(qū)動(dòng)程序之間提供標(biāo)準(zhǔn)通信方式。根據(jù)xHCI協(xié)議,當(dāng)USB主機(jī)控制器100從端點(diǎn)201-1接收到NRDY事務(wù)分組時(shí),其將該NRDY事務(wù)分組攜帶的關(guān)于端點(diǎn)201-1的端點(diǎn)信息(以下也稱為NRDY信息)存儲(chǔ)到系統(tǒng)存儲(chǔ)器300中。所述NRDY信息包括用于標(biāo)識USB設(shè)備200的插槽ID(SlotID)、用于標(biāo)識USB設(shè)備200內(nèi)的端點(diǎn)201-1的設(shè)備上下文索引(DeviceContextIndex,DCI)、USB設(shè)備200的設(shè)備地址等等。隨后,當(dāng)USB主機(jī)控制器100從端點(diǎn)201-1接收到ERDY事務(wù)分組時(shí),USB主機(jī)控制器100訪問系統(tǒng)存儲(chǔ)器300,以便檢查在該系統(tǒng)存儲(chǔ)器300中是否存在與所述ERDY事務(wù)分組匹配的NRDY信息。如果找到匹配的NRDY信息,則USB主機(jī)控制器100根據(jù)該NRDY信息而重新執(zhí)行先前未能執(zhí)行的對于端點(diǎn)201-1的事務(wù)。在上述傳統(tǒng)USB主機(jī)控制器中,存在以下問題(1)每次接收到NRDY事務(wù)分組時(shí),USB主機(jī)控制器都將NRDY信息保存到系統(tǒng)存儲(chǔ)器中。此外,每次接收到ERDY事務(wù)分組時(shí),USB主機(jī)控制蔡都訪問該系統(tǒng)存儲(chǔ)ll以在其中尋找匹配的NRDY信息。由于系統(tǒng)存儲(chǔ)器位于USB主機(jī)控制器外部,因此,上述過程需要較長的時(shí)間,這使得USB主機(jī)控制器的響應(yīng)時(shí)間增大,性能下降。(2)在USB主機(jī)控制器中,會(huì)設(shè)置一定容量的緩沖器,用來暫存來自USB設(shè)備的各種事務(wù)分組。例如在圖1中,USB主機(jī)控制器100內(nèi)設(shè)置了SS鏈接Rx4報(bào)頭隊(duì)列緩沖器(SSLinkRx4HeaderQueue)101,用于暫存連接到該USB主機(jī)控制器的所有USB設(shè)備發(fā)送的事務(wù)分組。該緩沖器101被設(shè)置為最多容納4個(gè)事務(wù)分組。然而,由上述可知,傳統(tǒng)的USB主機(jī)控制器在處理一個(gè)ERDY事務(wù)分組時(shí),因過程繁雜而需要較長的響應(yīng)時(shí)間,若同時(shí)有多個(gè)的USB設(shè)備向該USB主機(jī)控制器發(fā)送ERDY事務(wù)分組,則該緩沖器101會(huì)被存滿,以至于阻礙該USB主機(jī)控制器根據(jù)所接收的ERDY事務(wù)分組重新安排對于相應(yīng)端點(diǎn)的事務(wù)。因此,需要一種USB主機(jī)控制器和USB主機(jī)控制方法,其能夠減少存儲(chǔ)NRDY信息以及響應(yīng)ERDY事務(wù)分組所耗費(fèi)的時(shí)間,提高USB主機(jī)控制器的性能。一
發(fā)明內(nèi)容考慮到以上問題而做出了本發(fā)明。本發(fā)明的一個(gè)目的是提供一種USB主機(jī)控制器和USB主機(jī)控制方法,其能夠在接收到NRDY事務(wù)分組時(shí),減少存儲(chǔ)NRDY信息的時(shí)間,并且能夠在接收到ERDY事務(wù)分組時(shí),減少尋找匹配的NRDY信息的時(shí)間,從而減小SS鏈接Rx4報(bào)頭隊(duì)列緩沖器被存滿的可能性,提高USB主機(jī)控制器的性能。根據(jù)本發(fā)明的一個(gè)方面,提供了一種USB主機(jī)控制器,連接到包括一個(gè)或多個(gè)端點(diǎn)的USB設(shè)備,并且向所述一個(gè)或多個(gè)端點(diǎn)中第一端點(diǎn)發(fā)送請求。該USB主機(jī)控制器包括第一存儲(chǔ)單元;以及第一控制單元,用于將第一端點(diǎn)響應(yīng)于所述請求而發(fā)送的未就緒事務(wù)分組所攜帶的關(guān)于第一端點(diǎn)的端點(diǎn)信息存儲(chǔ)在第一存儲(chǔ)單元中,其中所述未就緒事務(wù)分組表示所述第一端點(diǎn)無法4丸行所述請求。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種USB主機(jī)控制器,連接到包括一個(gè)或多個(gè)端點(diǎn)的USB設(shè)備,并且向所述一個(gè)或多個(gè)端點(diǎn)中一第一端點(diǎn)發(fā)送一請求,該USB主機(jī)控制器包括一第一存儲(chǔ)單元;以及一第一控制單元,用于將所述第一端點(diǎn)響應(yīng)于所述請求而發(fā)送的一未就緒事務(wù)分組所攜帶的關(guān)于所述第一端點(diǎn)的一端點(diǎn)信息存儲(chǔ)在所述第一存儲(chǔ)單元中,其中,當(dāng)USB主機(jī)控制器接收到由所述一個(gè)或多個(gè)端點(diǎn)中的一第二端點(diǎn)發(fā)送的一就緒事務(wù)分組時(shí),所述第一控制單元檢查在所述第一存儲(chǔ)單元中是否存在與該就緒事務(wù)分組匹配的端點(diǎn)信息,并且當(dāng)發(fā)現(xiàn)匹配的端點(diǎn)信息時(shí),執(zhí)行對于第二端點(diǎn)的事務(wù),其中所述未就緒事務(wù)分組表示所述第一端點(diǎn)無法執(zhí)行所述請求。根據(jù)本發(fā)明的再一方面,提供了一種USB主機(jī)控制方法,用于USB主機(jī)控制器,該USB主機(jī)控制器包括第一存儲(chǔ)單元,并且連接到包括一個(gè)或多個(gè)端點(diǎn)的USB設(shè)備。該控制方法包括以下步驟向所述一個(gè)或多個(gè)端點(diǎn)中第一端點(diǎn)發(fā)送請求;以及將第一端點(diǎn)響應(yīng)于所述請求而發(fā)送的未就緒事務(wù)分組所攜帶的關(guān)于第一端點(diǎn)的端點(diǎn)信息存儲(chǔ)在第一存儲(chǔ)單元中,其中所述未就緒事務(wù)分組表示所述第一端點(diǎn)無法執(zhí)行所述請求。如上所述,在根據(jù)本發(fā)明的USB主機(jī)控制器內(nèi)部設(shè)置了第一存儲(chǔ)單元,并且可以將NRDY響應(yīng)消息攜帶的端點(diǎn)信息存儲(chǔ)在該第一存儲(chǔ)單元中,而不是存儲(chǔ)在系統(tǒng)存儲(chǔ)器中。因此,減少了存儲(chǔ)端點(diǎn)信息的時(shí)間。此外,當(dāng)從端點(diǎn)接收到ERDY請求時(shí),只需訪問第一存儲(chǔ)單元以尋找匹配的端點(diǎn)消息,而不需要訪問系統(tǒng)存儲(chǔ)器。因此,縮短了處理ERDY請求的時(shí)間,避免了訪問系統(tǒng)存儲(chǔ)器過程的繁雜,減小了USB主機(jī)控制器內(nèi)的SS鏈接Rx4報(bào)頭隊(duì)列緩沖器被存滿的可能性,提高了USB主機(jī)控制器的性能。通過結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)描述,本發(fā)明的上述和其它目的、特征、優(yōu)點(diǎn)將會(huì)變得更加清楚,其中圖1示出了使用NRDY/ERDY機(jī)制的傳統(tǒng)USB主機(jī)控制器的示意性框圖2是#^居本發(fā)明實(shí)施例的USB主機(jī)控制器的示意性框圖3是示出根據(jù)本發(fā)明實(shí)施例的NRDY地址列表的條目的圖4是示出根據(jù)本發(fā)明實(shí)施例的接收到NRDY事務(wù)分組時(shí)的處理的流程圖5是示出根據(jù)本發(fā)明實(shí)施例的接收到ERDY事務(wù)分組時(shí)的處理的流程圖。具體實(shí)施例方式下面將參照附圖來描述根據(jù)本發(fā)明實(shí)施例的USB主機(jī)控制器和控制方法。在附圖中,相同的參考標(biāo)號自始至終表示相同的元件。首先,參照圖2來描述根據(jù)本發(fā)明實(shí)施例的USB主機(jī)控制器。應(yīng)當(dāng)注意,圖2所示的USB主機(jī)控制器僅僅是與本發(fā)明的構(gòu)思有關(guān)的基于USB3.0協(xié)議與xHCI協(xié)議的USB主機(jī)控制器的一部分。如圖2所示,USB主^/L控制器400連接到系統(tǒng)存儲(chǔ)器300,并且經(jīng)由USB總線連接到USB設(shè)備200,USB設(shè)備200包括一個(gè)或多個(gè)端點(diǎn)201-1、201-2.....201-n。應(yīng)當(dāng)注意,可以將一個(gè)或多個(gè)USB設(shè)備連接到USB主機(jī)控制器400,但是由于它們的結(jié)構(gòu)和工作方式基本相同,因此為簡單起見,在圖2中只示出一個(gè)USB設(shè)備200。USB主機(jī)控制器400包括事務(wù)管理器401、調(diào)度管理器402以及SS鏈接Rx4報(bào)頭隊(duì)列緩沖器403。調(diào)度管理器402包括周期性/異步(Periodic/Async)控制器4021、NERDY控制器4022以及高速暫存緩沖器(scratchpadbuffer)4023。事務(wù)管理器401管理關(guān)于USB設(shè)備200的事務(wù),例如向USB設(shè)備200中的端點(diǎn)(為便于說明,,i設(shè)為端點(diǎn)201-1)發(fā)送請求,接收來自該端點(diǎn)的響應(yīng)消息/請求等等。所發(fā)送的請求可以是輸入請求或輸出請求,所接收的響應(yīng)消息/請求可以是NRDY響應(yīng)消息或ERDY請求。此外,如下文所述,當(dāng)調(diào)度管理器402發(fā)現(xiàn)NRDY地址列表已被存滿時(shí),事務(wù)管理器401響應(yīng)于來自調(diào)度管理器402的命令而暫停對連接到USB主機(jī)控制器400的所有USB設(shè)備的端點(diǎn)發(fā)送可能引起NRDY響應(yīng)消息的事務(wù)。如上文所述,當(dāng)端點(diǎn)201-1從USB主機(jī)控制器400接收到讀/寫數(shù)據(jù)的請求時(shí),如果端點(diǎn)201-1正處于忙碌狀態(tài),或者由于其它原因而沒有準(zhǔn)備好發(fā)送/接收所請求讀/寫的數(shù)據(jù),則端點(diǎn)201-1向USB主機(jī)控制器400發(fā)送NRDY事務(wù)分組,作為對該請求的響應(yīng)。該NRDY事務(wù)分組包括與端點(diǎn)201-1有關(guān)的端點(diǎn)信息(以下也稱為NRDY信息),其中包括用于標(biāo)識端點(diǎn)201-1所屬的USB設(shè)備200的"插槽ID"(SlotID)、用于標(biāo)識端點(diǎn)201-1的"設(shè)備上下文索引,,(DCI)、USB設(shè)備200的"設(shè)備地址"(DeviceAddress)、端點(diǎn)201-1的"端點(diǎn)號碼"(EndpointNumber)、以及表示該NRDY事務(wù)分組所針對的上述請求是輸入請求(讀請求)還是輸出請求(寫請求)的"方向"(Direction)。周期性/異步控制器4021向NERDY控制器4022發(fā)送用于將NRDY事務(wù)分組攜帶的NRDY信息加載到NRDY地址列表中的請求。稍后將詳細(xì)描述所述NRDY地址列表。此外,當(dāng)USB主機(jī)控制器400收到端點(diǎn)201-1發(fā)送的NRDY事務(wù)分組時(shí),會(huì)中斷正在進(jìn)行中的與端點(diǎn)201-1的數(shù)據(jù)傳輸,以待收到端點(diǎn)201-1發(fā)送的ERDY事務(wù)分組后再繼續(xù)it據(jù)傳輸。因此,在收到NRDY事務(wù)分組后,周期性/異步控制器4021將指示對應(yīng)傳輸斷點(diǎn)的位置信息存儲(chǔ)在高速暫存緩沖器4023中,以便當(dāng)USB主機(jī)控制器400收到端點(diǎn)201-1發(fā)送的ERDY事務(wù)分組,需繼續(xù)數(shù)據(jù)傳輸時(shí),可從之前收到NRDY事務(wù)分組時(shí)記錄的傳輸斷點(diǎn)接續(xù)數(shù)據(jù)傳輸。關(guān)于傳輸斷點(diǎn)的位置信息的具體格式及其在高速暫存緩沖器4023中的存儲(chǔ)方式為本領(lǐng)域技術(shù)人員的公知技術(shù),在此不再贅述。應(yīng)當(dāng)注意,盡管在圖2中周期性/異步控制器4021被示出為一個(gè)部件,但是也可以將其分為周期性控制器和異步控制器二者,并且由周期性控制器或異步控制器執(zhí)行上述功能。NERDY控制器4022包括控制單元40221和NRDY地址高速緩沖存儲(chǔ)器40222。NRDY地址高速緩沖存儲(chǔ)器40222用于存儲(chǔ)所述NRDY信息,即,關(guān)于端點(diǎn)201-1的端點(diǎn)信息。具體地,可以在NRDY地址高速緩沖存儲(chǔ)器40222中建立NRDY地址列表,并且作為該地址列表的條目來存儲(chǔ)NRDY信息。作為示例,該NRDY地址列表可以包括32個(gè)條目,每個(gè)條目的大小為26比特,用于存儲(chǔ)從一個(gè)NRDY事務(wù)分組提取的NRDY信息。所述條目可以采用圖3所示的格式,該格式中的各個(gè)字段的長度和含義下表1中給出。表1:NRDY地址列表?xiàng)l目中的各個(gè)字段含義<table>tableseeoriginaldocumentpage10</column></row><table>當(dāng)NERDY控制器4022接收到從周期性/異步控制器4021發(fā)送的加載NRDY信息的請求時(shí),控制單元40221將所述關(guān)于端點(diǎn)201-1的端點(diǎn)信息(即,NRDY信息)加載到NRDY地址列表的空閑條目中,并且將該條目的"V"標(biāo)志位設(shè)置為1。然后,控制單元40221檢查所述NRDY地址列表是否已被存滿,即,在32個(gè)條目中是否都已經(jīng)存儲(chǔ)了NRDY信息。如果NRDY地址列表已被存滿,則控制單元40221向事務(wù)管理器401發(fā)送命令,指示暫停對連接到USB主機(jī)控制器400的所有USB設(shè)備發(fā)送事務(wù),事務(wù)管理器401收到該命令后,即暫停所有可能引起NRDY響應(yīng)的事務(wù)。反之,如果NRDY地址列表沒有被存滿,則控制單元40221可以繼續(xù)處理其它要處理的事務(wù)。每當(dāng)從USB設(shè)備中的端點(diǎn)接收到NRDY事務(wù)分組時(shí),USB主機(jī)控制器都執(zhí)行上述過程,從而將相應(yīng)的NRDY信息存儲(chǔ)在NRDY地址高速緩沖存儲(chǔ)器40222中。如上所述,在某個(gè)端點(diǎn)發(fā)送了NRDY事務(wù)分組之后,如果該端點(diǎn)隨后變得能夠發(fā)送/接收所請求讀/寫的數(shù)據(jù),則該端點(diǎn)向USB主機(jī)控制器400發(fā)送ERDY請求,即ERDY事務(wù)分組。該ERDY事務(wù)分組包括用于表示該端點(diǎn)所屬的USB設(shè)備的地址的"設(shè)備地址"、該端點(diǎn)的"端點(diǎn)號碼"、用于表示該ERDY事務(wù)分組所針對的請求是輸入請求還是輸出請求的"方向"、以及其它信息。事務(wù)管理器401接收該ERDY事務(wù)分組,并傳輸給調(diào)度管理器402。然后,控制單元40221訪問NRDY地址高速緩沖存儲(chǔ)器40222,并且將該ERDY事務(wù)分組中的"設(shè)備地址"、"端點(diǎn)號碼"和"方向"分別與存儲(chǔ)在NRDY地址列表中的所有有效的NRDY信息的對應(yīng)項(xiàng)目逐一進(jìn)行比較,以便確定在該地址列表中是否存儲(chǔ)了與該ERDY事務(wù)分組匹配的NRDY信息。如果在NRDY地址列表中找到匹配的NRDY信息,則控制單元40221提取該條目中的NRDY信息,并將NRDY地址列表中存儲(chǔ)該NRDY信息的條目釋放,而后根據(jù)提取的該條目中的"插槽ID"和"設(shè)備上下文索引"字段,從高速暫存緩沖器4023讀取先前存儲(chǔ)的對應(yīng)的指示傳輸斷點(diǎn)的位置信息,使得事務(wù)管理器401從該傳輸斷點(diǎn)起重新開始執(zhí)行先前由于NRDY響應(yīng)而未能執(zhí)行的關(guān)于該端點(diǎn)的事務(wù)。SS鏈接Rx4報(bào)頭隊(duì)列緩沖器403與圖1所示的SS鏈接Rx4報(bào)頭隊(duì)列緩沖器101相同,用于暫時(shí)存儲(chǔ)由連接到USB主機(jī)控制器的所有USB設(shè)備發(fā)送的請求,并且在本實(shí)施例中被:沒置為最多容納4個(gè)ERDY請求。可以看到,在根據(jù)本發(fā)明實(shí)施例的USB主機(jī)控制器內(nèi)部設(shè)置了NRDY地址高速緩沖存儲(chǔ)器。USB主機(jī)控制器將從端點(diǎn)接收的NRDY事務(wù)分組攜帶的NRDY信息存儲(chǔ)在該高速緩沖存儲(chǔ)器中,而不是像傳統(tǒng)技術(shù)那樣存儲(chǔ)在系統(tǒng)存儲(chǔ)器中,從而減少了存儲(chǔ)NRDY信息所需的時(shí)間。當(dāng)接收到ERDY請求時(shí),USB主機(jī)控制器只需訪問該NRDY地址高速緩沖存儲(chǔ)器以尋找匹配的NRDY信息,而不需要訪問外部的系統(tǒng)存儲(chǔ)器,從而減少了響應(yīng)ERDY請求組的時(shí)間,并且減小了SS鏈接Rx4報(bào)頭隊(duì)列緩沖器403被存滿的可能性。在上文中,NRDY地址高速緩沖存儲(chǔ)器40222被示出為位于NERDY控制器4022中,但這不是限制性的。也可以將該NRDY地址高速緩沖存儲(chǔ)器放置在USB主機(jī)控制器內(nèi)的其它位置上。下面,將參照圖4來描述根據(jù)本發(fā)明實(shí)施例的接收到NRDY事務(wù)分組時(shí)的處理。圖4示出了該處理過程的流程圖。如圖4所示,在USB主機(jī)控制器400向USB設(shè)備200中的端點(diǎn)(假設(shè)為端點(diǎn)201-1)發(fā)送請求之后,在步驟S501中,事務(wù)管理器401接收到來自端點(diǎn)201-1的NRDY事務(wù)分組。然后,在步驟S502中,周浙l"生/異步控制器4021向NERDY控制器4022發(fā)送用于將NRDY事務(wù)分組攜帶的關(guān)于端點(diǎn)201-1的端點(diǎn)信息(即,NRDY信息)加載到NRDY地址列表中的請求。如上文所述,該NRDY信息包括"設(shè)備上下文索引"、"插槽ID"、"設(shè)備地址"、"端點(diǎn)號碼,,以及"方向"。接下來,在步驟S503中,周期性/異步控制器4021將指示對應(yīng)傳輸斷點(diǎn)的位置信息存儲(chǔ)在高速暫存緩沖器4023中。隨后,在步驟S504中,響應(yīng)于周期性/異步控制器4021發(fā)送的加載請求,NERDY控制器4022中的控制單元40221將從NRDY事務(wù)分組提取的所述NRDY信息加載到NRDY地址高速緩沖存儲(chǔ)器40222內(nèi)的NRDY地址列表中,作為該列表的一個(gè)條目。NTRDY地址列表及其條目的格式與上文所述的相同。然后,在步驟S505中,控制單元40221檢查所述NRDY地址列表是否已經(jīng)被存滿。如果該NRDY地址列表已經(jīng)被存滿,則在步驟S506中,控制單元40221向事務(wù)管理器401發(fā)送命令,指示暫停對連接到USB主機(jī)控制器200的所有USB設(shè)備發(fā)送事務(wù),事務(wù)管理器401收到該命令后,即暫停發(fā)送所有可能引起NRDY響應(yīng)的事務(wù),以防止NRDY地址列表溢出。在這種情況下,事務(wù)管理器401將一直等待到NRDY地址列表中的某個(gè)條目被釋放,才會(huì)繼續(xù)執(zhí)行其它事務(wù)。另一方面,當(dāng)在步驟S505中確定所述NRDY地址列表未被存滿時(shí),事務(wù)管理器401繼續(xù)執(zhí)行其它要處理的事務(wù)。圖4所示的各個(gè)步驟不一定都是必需的。例如,執(zhí)行步驟S505和S506的目的是為了防止NRDY地址列表溢出。然而,可以通過將NRDY地址列表的容量設(shè)置得足夠大來實(shí)現(xiàn)這一目的,此時(shí),不需要執(zhí)行步驟S505和步驟S506。此外,步驟S502和S503的^^丸行順序不限于圖4所示的順序,也可以同時(shí)執(zhí)行這兩個(gè)步驟,或者可以先執(zhí)行步驟S503再執(zhí)行步驟S502。通過將NRDY信息存儲(chǔ)在USB主機(jī)控制器內(nèi)部的NRDY地址高速緩沖存儲(chǔ)器中,與傳統(tǒng)技術(shù)相比,減少了存儲(chǔ)NRDY信息所需的時(shí)間,提高了USB主機(jī)控制器的性能。下面,將參照圖5來描述根據(jù)本發(fā)明實(shí)施例的接收到ERDY事務(wù)分組時(shí)的處理。圖5示出了該處理過程的流程圖。如圖5所示,在步驟S601,事務(wù)管理器401從USB設(shè)備200的端點(diǎn)(假設(shè)為端點(diǎn)201-1)接收ERDY事務(wù)分組。如上所述,該ERDY事務(wù)分組包括USB設(shè)備200的"設(shè)備地址"、該端點(diǎn)201-1的"端點(diǎn)號碼"、用于表示該ERDY事務(wù)分組所針對的請求是輸入請求還是輸出請求的"方向"、以及其它信息。在步驟S602中,NERDY控制器4022中的控制單元40221訪問NRDY地址高速緩沖存儲(chǔ)器40222,并且將ERDY事務(wù)分組中的信息(以下也稱為ERDY信息)與NRDY地址列表中的所有有效的NRDY信息進(jìn)行匹配,具體地,將該ERDY事務(wù)分組中的"設(shè)備地址"、"端點(diǎn)號碼"和"方向,,分別與存儲(chǔ)在NRDY地址列表中的所有有效的NRDY信息的對應(yīng)項(xiàng)目逐一進(jìn)行比較。然后,在步驟S603中,控制單元40221確定在KRDY地址列表中是否找到與該ERDY事務(wù)分組匹配的NRDY信息。如果在步驟S603中沒有找到匹配的NRDY信息,這表明USB主4幾控制器400沒有接收到端點(diǎn)201_1之前發(fā)送的NRDY響應(yīng)消息,或者USB主機(jī)控制器400之前沒有向端點(diǎn)201-1發(fā)送過請求。因此,在步驟S604中,控制單元40221向端點(diǎn)201-1報(bào)告錯(cuò)誤,然后該處理結(jié)束。另一方面,如果在步驟S603中找到匹配的NRDY信息,則在步驟S605中,控制單元40221提取該條目中的NRDY信息,并將NRDY地址列表中存儲(chǔ)該NRDY信息的對應(yīng)條目釋放,即,刪除該條目中存儲(chǔ)的NRDY信息。然后,在步驟S606中,控制單元40221根據(jù)事先提取的該條目中的"插槽ID"和"設(shè)備上下文索引"字段,從高速暫存緩沖器4023讀取先前存儲(chǔ)的對應(yīng)的指示傳輸斷點(diǎn)的位置信自、'A、o接下來,在步驟S607中,事務(wù)管理器401從所述傳輸斷點(diǎn)起重新開始執(zhí)行先前由于NRDY響應(yīng)而被未能執(zhí)行的關(guān)于端點(diǎn)201-1的事務(wù)。然后,:該過程結(jié)束。在執(zhí)行上述處理期間USB主機(jī)控制器從其它端點(diǎn)接收的請求被暫時(shí)存儲(chǔ)在SS鏈接Rx4報(bào)頭隊(duì)列緩沖器403中。可以看到,由于NRDY信息^皮存儲(chǔ)在USB主機(jī)控制器內(nèi)部的NRDY地址高速緩沖存儲(chǔ)器中,因此,當(dāng)接收到ERDY事務(wù)分組時(shí),USB主機(jī)控制器只需訪問該NRDY地址高速緩沖存儲(chǔ)器以尋找匹配的NRDY信息,而不需要像傳統(tǒng)技術(shù)那樣訪問外部的系統(tǒng)存儲(chǔ)器。這樣,減少了尋找匹配的NRDY信息所需的時(shí)間,免去了訪問系統(tǒng)存儲(chǔ)器過程的繁雜,加快了響應(yīng)ERDY請求的速度,并且減小了SS鏈接Rx4報(bào)頭隊(duì)列緩沖器被存滿的可能性。13測試表明,在傳統(tǒng)的USB主機(jī)控制器中,在系統(tǒng)存儲(chǔ)器中預(yù)先存儲(chǔ)了與所接收的ERDY事務(wù)分組匹配的NRDY信息的情況下,從接收到ERDY事務(wù)分組開始到重新開始執(zhí)行對于相應(yīng)端點(diǎn)的事務(wù)所耗費(fèi)的時(shí)間為幾毫秒,而在根據(jù)本發(fā)明實(shí)施例的USB主機(jī)控制器中,在NRDY地址高速緩沖存儲(chǔ)器中預(yù)先存儲(chǔ)了與所接收的ERDY事務(wù)分組匹配的NRDY信息的情況下,從接收到ERDY事務(wù)分組開始到重新開始執(zhí)行對于相應(yīng)端點(diǎn)的事務(wù)所耗費(fèi)的時(shí)間僅為幾十微秒??梢?,根據(jù)本發(fā)明實(shí)施例的USB主機(jī)控制器具有更高的性能。盡管在上文中已經(jīng)示出和描述了本發(fā)明的示例實(shí)施例,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在不背離權(quán)利要求及其等價(jià)物中限定的本發(fā)明的范圍和精神的情況下,可以對這些示例實(shí)施例做出各種形式和細(xì)節(jié)上的變化。權(quán)利要求1.一種USB主機(jī)控制器,連接到包括一個(gè)或多個(gè)端點(diǎn)的USB設(shè)備,并且向所述一個(gè)或多個(gè)端點(diǎn)中一第一端點(diǎn)發(fā)送一請求,該USB主機(jī)控制器包括一第一存儲(chǔ)單元;以及一第一控制單元,用于將所述第一端點(diǎn)響應(yīng)于所述請求而發(fā)送的一未就緒事務(wù)分組所攜帶的關(guān)于所述第一端點(diǎn)的端點(diǎn)信息存儲(chǔ)在所述第一存儲(chǔ)單元中,其中所述未就緒事務(wù)分組表示所述第一端點(diǎn)無法執(zhí)行所述請求。2.如權(quán)利要求1所述的USB主機(jī)控制器,其中,在所述第一存儲(chǔ)單元中以列表的形式存儲(chǔ)所述端點(diǎn)信息,并且其中,在將所述端點(diǎn)信息存儲(chǔ)在所述列表中之后,第一控制單元檢查所述列表是否已被存滿,如果所述列表已被存滿,則第一控制單元進(jìn)行控制使得暫停對于所述一個(gè)或多個(gè)端點(diǎn)的發(fā)送事務(wù)。3.如權(quán)利要求1所述的USB主機(jī)控制器,其中,還包括一第二存儲(chǔ)單元;以及一第二控制單元,用于在USB主機(jī)控制器接收到所述第一端點(diǎn)發(fā)送的所述未就緒事務(wù)分組時(shí),將一指示相應(yīng)的傳輸斷點(diǎn)的位置信息存儲(chǔ)在所述第二存儲(chǔ)單元中。4.如權(quán)利要求3所述的USB主機(jī)控制器,其中,當(dāng)USB主機(jī)控制器接收到由所述一個(gè)或多個(gè)端點(diǎn)中的一第二端點(diǎn)發(fā)送的就緒事務(wù)分組時(shí),所述第一控制單元檢查在所述第一存儲(chǔ)單元中是否存在與該就緒事務(wù)分組匹配的端點(diǎn)信息,并且當(dāng)發(fā)現(xiàn)匹配的端點(diǎn)信息時(shí),執(zhí)行對于所述第二端點(diǎn)的事務(wù)。5.如權(quán)利要求4所述的USB主機(jī)控制器,其中,所述第一控制單元從所述第二存儲(chǔ)單元讀取與所述匹配的端點(diǎn)信息相對應(yīng)的指示傳輸斷點(diǎn)的位置信息,并且從該傳輸斷點(diǎn)起執(zhí)行對于第二端點(diǎn)的事務(wù)。6.—種USB主機(jī)控制器,連接到包括一個(gè)或多個(gè)端點(diǎn)的USB設(shè)備,并且向所述一個(gè)或多個(gè)端點(diǎn)中一第一端點(diǎn)發(fā)送一請求,該USB主機(jī)控制器包括一第一存儲(chǔ)單元;以及一第一控制單元,用于將所述第一端點(diǎn)響應(yīng)于所述請求而發(fā)送的一未就緒事務(wù)分組所攜帶的關(guān)于所述第一端點(diǎn)的一端點(diǎn)信息存儲(chǔ)在所述第一存儲(chǔ)單元中,其中,當(dāng)USB主機(jī)控制器接收到由所述一個(gè)或多個(gè)端點(diǎn)中的一第二端點(diǎn)發(fā)送的一就緒事務(wù)分組時(shí),所述第一控制單元檢查在所述第一存儲(chǔ)單元中是否存在與該就緒事務(wù)分組匹配的端點(diǎn)信息,并且當(dāng)發(fā)現(xiàn)匹配的端點(diǎn)信息時(shí),執(zhí)行對于第二端點(diǎn)的事務(wù),其中所述未就緒事務(wù)分組表示所述第一端點(diǎn)無法執(zhí)行所述請求。7.如權(quán)利要求6所述的USB主機(jī)控制器,其中,在所述第一存儲(chǔ)單元中以列表的形式存儲(chǔ)所述端點(diǎn)信息,并且其中,在將所述端點(diǎn)信息存儲(chǔ)在所述列表中之后,第一控制單元檢查所述列表是否已被存滿,如果所述列表已被存滿,則第一控制單元進(jìn)行控制使得暫停對于所述一個(gè)或多個(gè)端點(diǎn)的發(fā)送事務(wù)。8.如權(quán)利要求7所述的USB主機(jī)控制器,其中,所述端點(diǎn)信息至少包括一設(shè)備上下文索引,一插槽ID,—設(shè)備地址,一端點(diǎn)號碼,以及一方向。9.如權(quán)利要求8所述的USB主機(jī)控制器,其中,所述第一控制單元檢查在所述第一存儲(chǔ)單元中是否存在與該就緒事務(wù)分組匹配的端點(diǎn)信息,是根據(jù)所述設(shè)備地址,所述端點(diǎn)號碼和所述方向來檢索所述列表,來找到匹配的端點(diǎn)信息。10.如權(quán)利要求6所述的USB主機(jī)控制器,其中,所述第一控制單元還乂火所述第一存儲(chǔ)單元?jiǎng)h除所述匹配的端點(diǎn)信息。11.一種USB主機(jī)控制方法,用于USB主機(jī)控制器,該USB主機(jī)控制器包括第一存儲(chǔ)單元,并且連接到包括一個(gè)或多個(gè)端點(diǎn)的USB設(shè)備,該控制方法包括以下步驟向所述一個(gè)或多個(gè)端點(diǎn)中一第一端點(diǎn)發(fā)送請求;以及將所述第一端點(diǎn)響應(yīng)于所述請求而發(fā)送的一未就緒事務(wù)分組所攜帶的關(guān)于第一端點(diǎn)的端點(diǎn)信息存儲(chǔ)在第一存儲(chǔ)單元中,其中所述未就緒事務(wù)分組表示所述第一端點(diǎn)無法執(zhí)行所述請求。12.如權(quán)利要求11所述的控制方法,其中,在所述第一存儲(chǔ)單元中以列表的形式存儲(chǔ)所述端點(diǎn)信息,并且所述方法還包括以下步驟在將所述端點(diǎn)信息存儲(chǔ)在所述列表中之后,檢查所述列表是否已被存滿,如果所述列表已被存滿,則暫停對于所述一個(gè)或多個(gè)端點(diǎn)的發(fā)送事務(wù)。13.如權(quán)利要求11所述的控制方法,還包括以下步驟在所述USB主機(jī)控制器接收到所述第一端點(diǎn)發(fā)送的所述未就緒事務(wù)分組時(shí),將指示相應(yīng)的傳輸斷點(diǎn)的位置信息存儲(chǔ)到所述USB主機(jī)控制器內(nèi)的一第二存儲(chǔ)單元中。14.如權(quán)利要求13所述的控制方法,還包括以下步驟當(dāng)所述USB主機(jī)控制器接收到由所述一個(gè)或多個(gè)端點(diǎn)中的一第二端點(diǎn)發(fā)送的一就緒事務(wù)分組時(shí),檢查在所述第一存儲(chǔ)單元中是否存在與該就緒事務(wù)分組匹配的端點(diǎn)信息,并且當(dāng)發(fā)現(xiàn)匹配的端點(diǎn)信息時(shí),執(zhí)行對于所述第二端點(diǎn)的事務(wù)。15.如權(quán)利要求14所述的控制方法,其中,所述執(zhí)行對于所述第二端點(diǎn)的事務(wù)的步驟包括從所述第二存儲(chǔ)單元讀取與所述匹配的端點(diǎn)信息相對應(yīng)的指示傳輸斷點(diǎn)的位置信息;以及從該傳輸斷點(diǎn)起執(zhí)行對于所述第二端點(diǎn)的事務(wù)。16.如權(quán)利要求14所述的控制方法,還包括以下步驟從第一存儲(chǔ)單元?jiǎng)h除所述匹配的端點(diǎn)信息。全文摘要提供了一種USB主機(jī)控制器和USB主機(jī)控制方法。該USB主機(jī)控制器連接到包括一個(gè)或多個(gè)端點(diǎn)的USB設(shè)備,并且向所述一個(gè)或多個(gè)端點(diǎn)中第一端點(diǎn)發(fā)送請求。該USB主機(jī)控制器包括第一存儲(chǔ)單元;以及第一控制單元,用于將第一端點(diǎn)響應(yīng)于所述請求而發(fā)送的未就緒事務(wù)分組所攜帶的關(guān)于第一端點(diǎn)的端點(diǎn)信息存儲(chǔ)在第一存儲(chǔ)單元中。通過在USB主機(jī)控制器內(nèi)設(shè)置存儲(chǔ)單元,可以減少存儲(chǔ)端點(diǎn)信息的時(shí)間以及響應(yīng)ERDY請求的時(shí)間,提高USB主機(jī)控制器的性能。文檔編號G06F13/42GK101673255SQ20091020537公開日2010年3月17日申請日期2009年10月21日優(yōu)先權(quán)日2009年10月21日發(fā)明者龐珊娜,惠志強(qiáng),笛戴,瑾賴申請人:威盛電子股份有限公司